%%{init: {'themeVariables': { 'fontSize': '12px'}}}%%
graph TD
    classDef path fill:#eee,stroke:#000,color:#000
    classDef plan fill:#fff,stroke-width:1px,color:#000
    classDef itemplan fill:#fff,stroke-width:2px,color:#000
    classDef unbatchedplan fill:#dff,stroke-width:1px,color:#000
    classDef sideeffectplan fill:#fcc,stroke-width:2px,color:#000
    classDef bucket fill:#f6f6f6,color:#000,stroke-width:2px,text-align:left

    subgraph "Buckets for mutations/v4/polymorphic.relay.custom_delete"
    Bucket0("Bucket 0 (root)"):::bucket
    Bucket1("Bucket 1 (mutationField)<br />Deps: 9, 14, 38, 53, 168, 4, 136, 142, 148, 154, 160<br /><br />1: Lambda[13]<br />2: Object[15]<br />3: Lambda[17]<br />4: Object[19]<br />5: Lambda[21]<br />6: Object[23]<br />7: Lambda[25]<br />8: Object[27]<br />9: Lambda[29]<br />10: Object[31]<br />11: List[32]<br />12: Lambda[33]<br />13: Access[34]<br />14: PgSelect[35]<br />15: PgSelectRows[40]<br />16: First[39]<br />17: PgSelectSingle[41]<br />18: PgClassExpression[42]<br />19: PgFromExpression[47]<br />20: PgSelect[43]<br />21: PgSelectRows[49]<br />ᐳ: 48, 50, 51, 52"):::bucket
    Bucket2("Bucket 2 (nullableBoundary)<br />Deps: 168, 52, 4, 38, 136, 142, 148, 154, 160, 51<br /><br />ROOT Object{1}ᐸ{result}ᐳ[52]"):::bucket
    Bucket3("Bucket 3 (nullableBoundary)<br />Deps: 4, 38, 61, 168, 136, 142, 148, 154, 160<br /><br />ROOT __ValueᐸrootValueᐳ[4]"):::bucket
    Bucket4("Bucket 4 (nullableBoundary)<br />Deps: 38, 61, 168, 136, 142, 148, 154, 160<br /><br />ROOT Connection{2}ᐸ57ᐳ[61]<br />1: PgSelect[63]<br />2: PgSelectRows[64]"):::bucket
    Bucket5("Bucket 5 (listItem)<br />Deps: 38, 136, 142, 148, 154, 160<br /><br />ROOT __Item{5}ᐸ64ᐳ[65]"):::bucket
    Bucket6("Bucket 6 (polymorphic)<br />__typename: Lambda[70]<br />Deps: 70, 38, 67, 136, 142, 148, 154, 160, 69"):::bucket
    Bucket7("Bucket 7 (polymorphicPartition)<br />|RelationalTopic<br />Deps: 38, 67, 136, 69<br />ᐳRelationalTopic<br /><br />1: PgSelect[72]<br />2: PgSelectRows[81]<br />ᐳ: 80, 83, 137, 138, 139"):::bucket
    Bucket8("Bucket 8 (polymorphicPartition)<br />|RelationalPost<br />Deps: 38, 67, 142, 69<br />ᐳRelationalPost<br /><br />1: PgSelect[85]<br />2: PgSelectRows[94]<br />ᐳ: 93, 96, 143, 144, 145"):::bucket
    Bucket9("Bucket 9 (polymorphicPartition)<br />|RelationalDivider<br />Deps: 38, 67, 148, 69<br />ᐳRelationalDivider<br /><br />1: PgSelect[98]<br />2: PgSelectRows[107]<br />ᐳ: 106, 109, 149, 150, 151"):::bucket
    Bucket10("Bucket 10 (polymorphicPartition)<br />|RelationalChecklist<br />Deps: 38, 67, 154, 69<br />ᐳRelationalChecklist<br /><br />1: PgSelect[111]<br />2: PgSelectRows[120]<br />ᐳ: 119, 122, 155, 156, 157"):::bucket
    Bucket11("Bucket 11 (polymorphicPartition)<br />|RelationalChecklistItem<br />Deps: 38, 67, 160, 69<br />ᐳRelationalChecklistItem<br /><br />1: PgSelect[124]<br />2: PgSelectRows[133]<br />ᐳ: 132, 135, 161, 162, 163"):::bucket
    end
    Bucket0 --> Bucket1
    Bucket1 --> Bucket2
    Bucket2 --> Bucket3
    Bucket3 --> Bucket4
    Bucket4 --> Bucket5
    Bucket5 --> Bucket6
    Bucket6 --> Bucket7 & Bucket8 & Bucket9 & Bucket10 & Bucket11

    %% plan dependencies
    __InputObject6{{"__InputObject[6∈0] ➊"}}:::plan
    Constant167{{"Constant[167∈0] ➊<br />ᐸ'WyJyZWxhdGlvbmFsX3RvcGljcyIsMV0='ᐳ"}}:::plan
    Constant167 --> __InputObject6
    Object38{{"Object[38∈0] ➊<br />ᐸ{pgSettings,withPgClient}ᐳ"}}:::plan
    Access36{{"Access[36∈0] ➊<br />ᐸ2.pgSettingsᐳ"}}:::plan
    Access37{{"Access[37∈0] ➊<br />ᐸ2.withPgClientᐳ"}}:::plan
    Access36 & Access37 --> Object38
    Lambda9{{"Lambda[9∈0] ➊<br />ᐸdecodeNodeIdWithCodecsᐳ"}}:::plan
    Constant167 --> Lambda9
    List14{{"List[14∈0] ➊<br />ᐸ166ᐳ"}}:::plan
    Access166{{"Access[166∈0] ➊<br />ᐸ9.base64JSON.1ᐳ"}}:::plan
    Access166 -->|rejectNull| List14
    __Value2["__Value[2∈0] ➊<br />ᐸcontextᐳ"]:::plan
    __Value2 --> Access36
    __Value2 --> Access37
    ApplyInput53{{"ApplyInput[53∈0] ➊"}}:::plan
    __InputObject6 --> ApplyInput53
    Lambda9 --> Access166
    __Value4["__Value[4∈0] ➊<br />ᐸrootValueᐳ"]:::plan
    Constant136{{"Constant[136∈0] ➊<br />ᐸ'relational_topics'ᐳ"}}:::plan
    Constant142{{"Constant[142∈0] ➊<br />ᐸ'relational_posts'ᐳ"}}:::plan
    Constant148{{"Constant[148∈0] ➊<br />ᐸ'relational_dividers'ᐳ"}}:::plan
    Constant154{{"Constant[154∈0] ➊<br />ᐸ'relational_checklists'ᐳ"}}:::plan
    Constant160{{"Constant[160∈0] ➊<br />ᐸ'relational_checklist_items'ᐳ"}}:::plan
    Constant168{{"Constant[168∈0] ➊<br />ᐸ1ᐳ"}}:::plan
    List32{{"List[32∈1] ➊<br />ᐸ15,19,23,27,31ᐳ"}}:::plan
    Object15{{"Object[15∈1] ➊<br />ᐸ{match,pks}ᐳ"}}:::plan
    Object19{{"Object[19∈1] ➊<br />ᐸ{match,pks}ᐳ"}}:::plan
    Object23{{"Object[23∈1] ➊<br />ᐸ{match,pks}ᐳ"}}:::plan
    Object27{{"Object[27∈1] ➊<br />ᐸ{match,pks}ᐳ"}}:::plan
    Object31{{"Object[31∈1] ➊<br />ᐸ{match,pks}ᐳ"}}:::plan
    Object15 & Object19 & Object23 & Object27 & Object31 --> List32
    PgSelect43[["PgSelect[43∈1] ➊<br />ᐸcustom_delete_relational_item(mutation)ᐳ"]]:::sideeffectplan
    PgFromExpression47{{"PgFromExpression[47∈1] ➊"}}:::plan
    Object38 & PgFromExpression47 & ApplyInput53 --> PgSelect43
    Lambda13[["Lambda[13∈1] ➊"]]:::unbatchedplan
    Lambda13 & List14 --> Object15
    Lambda17[["Lambda[17∈1] ➊"]]:::unbatchedplan
    Lambda17 & List14 --> Object19
    Lambda21[["Lambda[21∈1] ➊"]]:::unbatchedplan
    Lambda21 & List14 --> Object23
    Lambda25[["Lambda[25∈1] ➊"]]:::unbatchedplan
    Lambda25 & List14 --> Object27
    Lambda29[["Lambda[29∈1] ➊"]]:::unbatchedplan
    Lambda29 & List14 --> Object31
    PgSelect35[["PgSelect[35∈1] ➊<br />ᐸrelational_itemsᐳ"]]:::plan
    Access34{{"Access[34∈1] ➊<br />ᐸ33.0ᐳ"}}:::plan
    Object38 & Access34 --> PgSelect35
    Lambda9 --> Lambda13
    Lambda9 --> Lambda17
    Lambda9 --> Lambda21
    Lambda9 --> Lambda25
    Lambda9 --> Lambda29
    Lambda33{{"Lambda[33∈1] ➊"}}:::plan
    List32 --> Lambda33
    Lambda33 --> Access34
    First39{{"First[39∈1] ➊"}}:::plan
    PgSelectRows40[["PgSelectRows[40∈1] ➊"]]:::plan
    PgSelectRows40 --> First39
    PgSelect35 --> PgSelectRows40
    PgSelectSingle41{{"PgSelectSingle[41∈1] ➊<br />ᐸrelational_itemsᐳ"}}:::plan
    First39 --> PgSelectSingle41
    PgClassExpression42{{"PgClassExpression[42∈1] ➊<br />ᐸ__relational_items__ᐳ"}}:::plan
    PgSelectSingle41 --> PgClassExpression42
    PgClassExpression42 --> PgFromExpression47
    First48{{"First[48∈1] ➊"}}:::plan
    PgSelectRows49[["PgSelectRows[49∈1] ➊"]]:::plan
    PgSelectRows49 --> First48
    PgSelect43 --> PgSelectRows49
    PgSelectSingle50{{"PgSelectSingle[50∈1] ➊<br />ᐸcustom_delete_relational_itemᐳ"}}:::plan
    First48 --> PgSelectSingle50
    PgClassExpression51{{"PgClassExpression[51∈1] ➊<br />ᐸ__custom_d...l_item__.vᐳ"}}:::plan
    PgSelectSingle50 --> PgClassExpression51
    Object52{{"Object[52∈1] ➊<br />ᐸ{result}ᐳ"}}:::plan
    PgClassExpression51 --> Object52
    Connection61{{"Connection[61∈2] ➊<br />ᐸ57ᐳ"}}:::plan
    Constant168 --> Connection61
    PgSelect63[["PgSelect[63∈4] ➊<br />ᐸrelational_itemsᐳ"]]:::plan
    Object38 & Connection61 & Constant168 --> PgSelect63
    PgSelectRows64[["PgSelectRows[64∈4] ➊"]]:::plan
    PgSelect63 --> PgSelectRows64
    __Item65[/"__Item[65∈5]<br />ᐸ64ᐳ"\]:::itemplan
    PgSelectRows64 ==> __Item65
    PgSelectSingle66{{"PgSelectSingle[66∈5]<br />ᐸrelational_itemsᐳ"}}:::plan
    __Item65 --> PgSelectSingle66
    PgClassExpression67{{"PgClassExpression[67∈5]<br />ᐸ__relation...ems__.”id”ᐳ"}}:::plan
    PgSelectSingle66 --> PgClassExpression67
    PgClassExpression69{{"PgClassExpression[69∈5]<br />ᐸ__relation...s__.”type”ᐳ"}}:::plan
    PgSelectSingle66 --> PgClassExpression69
    Lambda70{{"Lambda[70∈5]<br />ᐸRelationalItem_typeNameFromTypeᐳ"}}:::plan
    PgClassExpression69 --> Lambda70
    PgSelect72[["PgSelect[72∈7]<br />ᐸrelational_topicsᐳ<br />ᐳRelationalTopic"]]:::plan
    Object38 & PgClassExpression67 --> PgSelect72
    List138{{"List[138∈7]^<br />ᐸ136,137ᐳ"}}:::plan
    PgClassExpression137{{"PgClassExpression[137∈7]^<br />ᐸ__relation...c_item_id”ᐳ"}}:::plan
    Constant136 & PgClassExpression137 --> List138
    First80{{"First[80∈7]^"}}:::plan
    PgSelectRows81[["PgSelectRows[81∈7]^"]]:::plan
    PgSelectRows81 --> First80
    PgSelect72 --> PgSelectRows81
    PgSelectSingle83{{"PgSelectSingle[83∈7]^<br />ᐸrelational_topicsᐳ"}}:::plan
    First80 --> PgSelectSingle83
    PgSelectSingle83 --> PgClassExpression137
    Lambda139{{"Lambda[139∈7]^<br />ᐸbase64JSONEncodeᐳ"}}:::plan
    List138 --> Lambda139
    PgSelect85[["PgSelect[85∈8]<br />ᐸrelational_postsᐳ<br />ᐳRelationalPost"]]:::plan
    Object38 & PgClassExpression67 --> PgSelect85
    List144{{"List[144∈8]^<br />ᐸ142,143ᐳ"}}:::plan
    PgClassExpression143{{"PgClassExpression[143∈8]^<br />ᐸ__relation...t_item_id”ᐳ"}}:::plan
    Constant142 & PgClassExpression143 --> List144
    First93{{"First[93∈8]^"}}:::plan
    PgSelectRows94[["PgSelectRows[94∈8]^"]]:::plan
    PgSelectRows94 --> First93
    PgSelect85 --> PgSelectRows94
    PgSelectSingle96{{"PgSelectSingle[96∈8]^<br />ᐸrelational_postsᐳ"}}:::plan
    First93 --> PgSelectSingle96
    PgSelectSingle96 --> PgClassExpression143
    Lambda145{{"Lambda[145∈8]^<br />ᐸbase64JSONEncodeᐳ"}}:::plan
    List144 --> Lambda145
    PgSelect98[["PgSelect[98∈9]<br />ᐸrelational_dividersᐳ<br />ᐳRelationalDivider"]]:::plan
    Object38 & PgClassExpression67 --> PgSelect98
    List150{{"List[150∈9]^<br />ᐸ148,149ᐳ"}}:::plan
    PgClassExpression149{{"PgClassExpression[149∈9]^<br />ᐸ__relation...r_item_id”ᐳ"}}:::plan
    Constant148 & PgClassExpression149 --> List150
    First106{{"First[106∈9]^"}}:::plan
    PgSelectRows107[["PgSelectRows[107∈9]^"]]:::plan
    PgSelectRows107 --> First106
    PgSelect98 --> PgSelectRows107
    PgSelectSingle109{{"PgSelectSingle[109∈9]^<br />ᐸrelational_dividersᐳ"}}:::plan
    First106 --> PgSelectSingle109
    PgSelectSingle109 --> PgClassExpression149
    Lambda151{{"Lambda[151∈9]^<br />ᐸbase64JSONEncodeᐳ"}}:::plan
    List150 --> Lambda151
    PgSelect111[["PgSelect[111∈10]<br />ᐸrelational_checklistsᐳ<br />ᐳRelationalChecklist"]]:::plan
    Object38 & PgClassExpression67 --> PgSelect111
    List156{{"List[156∈10]^<br />ᐸ154,155ᐳ"}}:::plan
    PgClassExpression155{{"PgClassExpression[155∈10]^<br />ᐸ__relation...t_item_id”ᐳ"}}:::plan
    Constant154 & PgClassExpression155 --> List156
    First119{{"First[119∈10]^"}}:::plan
    PgSelectRows120[["PgSelectRows[120∈10]^"]]:::plan
    PgSelectRows120 --> First119
    PgSelect111 --> PgSelectRows120
    PgSelectSingle122{{"PgSelectSingle[122∈10]^<br />ᐸrelational_checklistsᐳ"}}:::plan
    First119 --> PgSelectSingle122
    PgSelectSingle122 --> PgClassExpression155
    Lambda157{{"Lambda[157∈10]^<br />ᐸbase64JSONEncodeᐳ"}}:::plan
    List156 --> Lambda157
    PgSelect124[["PgSelect[124∈11]<br />ᐸrelational_checklist_itemsᐳ<br />ᐳRelationalChecklistItem"]]:::plan
    Object38 & PgClassExpression67 --> PgSelect124
    List162{{"List[162∈11]^<br />ᐸ160,161ᐳ"}}:::plan
    PgClassExpression161{{"PgClassExpression[161∈11]^<br />ᐸ__relation...m_item_id”ᐳ"}}:::plan
    Constant160 & PgClassExpression161 --> List162
    First132{{"First[132∈11]^"}}:::plan
    PgSelectRows133[["PgSelectRows[133∈11]^"]]:::plan
    PgSelectRows133 --> First132
    PgSelect124 --> PgSelectRows133
    PgSelectSingle135{{"PgSelectSingle[135∈11]^<br />ᐸrelational_checklist_itemsᐳ"}}:::plan
    First132 --> PgSelectSingle135
    PgSelectSingle135 --> PgClassExpression161
    Lambda163{{"Lambda[163∈11]^<br />ᐸbase64JSONEncodeᐳ"}}:::plan
    List162 --> Lambda163

    %% define steps
    classDef bucket0 stroke:#696969
    class Bucket0,__Value2,__Value4,__InputObject6,Lambda9,List14,Access36,Access37,Object38,ApplyInput53,Constant136,Constant142,Constant148,Constant154,Constant160,Access166,Constant167,Constant168 bucket0
    classDef bucket1 stroke:#00bfff
    class Bucket1,Lambda13,Object15,Lambda17,Object19,Lambda21,Object23,Lambda25,Object27,Lambda29,Object31,List32,Lambda33,Access34,PgSelect35,First39,PgSelectRows40,PgSelectSingle41,PgClassExpression42,PgSelect43,PgFromExpression47,First48,PgSelectRows49,PgSelectSingle50,PgClassExpression51,Object52 bucket1
    classDef bucket2 stroke:#7f007f
    class Bucket2,Connection61 bucket2
    classDef bucket3 stroke:#ffa500
    class Bucket3 bucket3
    classDef bucket4 stroke:#0000ff
    class Bucket4,PgSelect63,PgSelectRows64 bucket4
    classDef bucket5 stroke:#7fff00
    class Bucket5,__Item65,PgSelectSingle66,PgClassExpression67,PgClassExpression69,Lambda70 bucket5
    classDef bucket6 stroke:#ff1493
    class Bucket6 bucket6
    classDef bucket7 stroke:#808000
    class Bucket7,PgSelect72,First80,PgSelectRows81,PgSelectSingle83,PgClassExpression137,List138,Lambda139 bucket7
    classDef bucket8 stroke:#dda0dd
    class Bucket8,PgSelect85,First93,PgSelectRows94,PgSelectSingle96,PgClassExpression143,List144,Lambda145 bucket8
    classDef bucket9 stroke:#ff0000
    class Bucket9,PgSelect98,First106,PgSelectRows107,PgSelectSingle109,PgClassExpression149,List150,Lambda151 bucket9
    classDef bucket10 stroke:#ffff00
    class Bucket10,PgSelect111,First119,PgSelectRows120,PgSelectSingle122,PgClassExpression155,List156,Lambda157 bucket10
    classDef bucket11 stroke:#00ffff
    class Bucket11,PgSelect124,First132,PgSelectRows133,PgSelectSingle135,PgClassExpression161,List162,Lambda163 bucket11

