amis 1.9.1-beta.3 → 1.9.1-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/SchemaRenderer.js +6 -9
- package/lib/SchemaRenderer.js.map +2 -2
- package/lib/actions/CmptAction.js +4 -4
- package/lib/actions/CmptAction.js.map +2 -2
- package/lib/components/WithRemoteConfig.d.ts +2 -2
- package/lib/components/WithRemoteConfig.js +6 -3
- package/lib/components/WithRemoteConfig.js.map +2 -2
- package/lib/components/table/ItemActionsWrapper.d.ts +10 -0
- package/lib/components/table/ItemActionsWrapper.js +25 -0
- package/lib/components/table/ItemActionsWrapper.js.map +13 -0
- package/lib/components/table/index.d.ts +48 -41
- package/lib/components/table/index.js +46 -18
- package/lib/components/table/index.js.map +2 -2
- package/lib/index.js +1 -1
- package/lib/renderers/Form/JSONSchema.js +3 -3
- package/lib/renderers/Form/JSONSchema.js.map +2 -2
- package/lib/renderers/Form/Options.js +11 -5
- package/lib/renderers/Form/Options.js.map +2 -2
- package/lib/renderers/Form/wrapControl.js.map +2 -2
- package/lib/renderers/Table-v2/index.d.ts +14 -2
- package/lib/renderers/Table-v2/index.js +33 -3
- package/lib/renderers/Table-v2/index.js.map +2 -2
- package/package.json +1 -1
- package/schema.json +13 -2
- package/sdk/barcode.js +51 -51
- package/sdk/charts.js +14 -14
- package/sdk/codemirror.js +7 -7
- package/sdk/color-picker.js +65 -65
- package/sdk/cropperjs.js +2 -2
- package/sdk/exceljs.js +1 -1
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +1 -1
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +16 -16
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk.js +1299 -1297
- package/sdk/thirds/hls.js/hls.js +1 -1
- package/sdk/thirds/mpegts.js/mpegts.js +1 -1
- package/sdk/tinymce.js +57 -57
- package/src/SchemaRenderer.tsx +1 -4
- package/src/actions/CmptAction.ts +4 -4
- package/src/components/WithRemoteConfig.tsx +20 -11
- package/src/components/table/ItemActionsWrapper.tsx +32 -0
- package/src/components/table/index.tsx +115 -58
- package/src/renderers/Form/JSONSchema.tsx +3 -3
- package/src/renderers/Form/Options.tsx +17 -7
- package/src/renderers/Form/wrapControl.tsx +0 -1
- package/src/renderers/Table-v2/index.tsx +65 -2
| @@ -6,8 +6,8 @@ | |
| 6 6 | 
             
                    "/src/components/table/index.tsx"
         | 
| 7 7 | 
             
                ],
         | 
| 8 8 | 
             
                "names": [],
         | 
| 9 | 
            -
                "mappings": ";AAAA;;;GAGG;;;;AAEH,6DAA0B;AAC1B,uCAAsC;AACtC,oFAAiD;AACjD,kEAA+B;AAC/B,wEAAqC;AACrC,sEAAmC;AACnC,kFAA+C;AAC/C,4EAAyC;AACzC,uEAAkC;AAElC,qCAAgE;AAChE,uCAAqD;AACrD,6CAAgE;AAChE,kCAA8B;AAC9B,sEAAmC;AACnC,oEAAiC;AAEjC,6EAA0C;AAC1C,iFAA8C;AAC9C,iFAA8C;AAC9C,6DAA0B;AAuI1B,SAAS,oBAAoB,CAAC,OAA2B;IACvD,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QACpB,OAAO,CAAC,OAAO,CAAC,UAAA,CAAC;YACf,IAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,QAAQ,GAAG,KAAK,EAAE;gBACpB,QAAQ,GAAG,KAAK,CAAC;aAClB;QACH,CAAC,CAAC,CAAC;IAEL,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,MAAmB;IACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;QACpE,OAAO,CAAC,CAAC;KACV;IAED,OAAO,CAAC,GAAG,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,YAAY,CAAC,MAAmB;IACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;QACpE,OAAO,CAAC,CAAC;KACV;IAED,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAA,IAAI,IAAI,OAAA,CAAC,cAAc,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAtC,CAAsC,CAAC,CAAC;IAExE,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,SAAS,YAAY,CACnB,OAAgC,EAChC,SAA4B,EAC5B,SAAkC,EAClC,KAAiB,EACjB,EAAW,EACX,KAAwB;IALxB,wBAAA,EAAA,YAAgC;IAEhC,0BAAA,EAAA,cAAkC;IAClC,sBAAA,EAAA,SAAiB;IAIjB,IAAM,QAAQ,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC/C,+CAA+C;IAC/C,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QACpB,OAAO,CAAC,OAAO,CAAC,UAAA,MAAM;YACpB,IAAM,OAAO,GAAG,EAAE,IAAI,IAAA,aAAI,GAAE,CAAC;YAC7B,IAAI,aAAa,GAAG,CAAC,CAAC;YACtB,IAAI,MAAM,CAAC,QAAQ,EAAE;gBACnB,aAAa,GAAG,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;aACvD;YACD,IAAM,SAAS,mDACV,MAAM,KACT,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,aAAa,GAAG,KAAK,EAC7D,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,EAC7B,OAAO,SAAA,EACP,KAAK,OAAA,GACN,CAAC;YACF,IAAM,QAAQ,mDACT,MAAM,KACT,OAAO,SAAA,GACR,CAAC;YACF,IAAI,KAAK,EAAE;gBACT,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;gBACxB,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;aACxB;YAED,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;gBACrB,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;aACvB;YACD,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjC,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjD,YAAY,CACV,MAAM,CAAC,QAAQ,EACf,SAAS,EACT,SAAS,EACT,KAAK,GAAG,CAAC,EACT,OAAO,EACP,MAAM,CAAC,KAAK,CACb,CAAC;aACH;iBAAM;gBACE,IAAA,QAAQ,GAAa,QAAQ,SAArB,EAAK,IAAI,uBAAI,QAAQ,EAA9B,YAAmB,CAAD,CAAa;gBACrC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACtB;QACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAmC;IAC5D,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC;AAC5C,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAmC;IAC7D,OAAO,KAAK,KAAK,OAAO,CAAC;AAC3B,CAAC;AAED,SAAS,oBAAoB,CAC3B,IAAoB,EACpB,KAAa,EACb,OAA2B;IAE3B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;QAC9B,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;YAChE,IAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAgB,CAAC;YACnC,KAAK,IAAI,GAAG,CAAC,WAAW,CAAC;SAC1B;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CACzB,IAAoB,EACpB,KAAa,EACb,OAA2B;IAE3B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;QAC5C,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;YACjE,IAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAgB,CAAC;YACnC,KAAK,IAAI,GAAG,CAAC,WAAW,CAAC;SAC1B;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,OAA2B;IACjD,OAAO,IAAA,cAAI,EAAC,OAAO,EAAE,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,KAAK,EAAZ,CAAY,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,iBAAiB,CAAC,OAA4B;IACrD,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,EAAE,CAAC;KACX;IACD,IAAM,IAAI,GAAwB,EAAE,CAAC;IACrC,IAAM,KAAK,GAAwB,EAAE,CAAC;IACtC,OAAO,CAAC,OAAO,CAAC,UAAA,IAAI;QAClB,IAAI,IAAA,iBAAQ,EAAC,IAAI,CAAC,EAAE;YAClB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClB;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACjB;IACH,CAAC,CAAC,CAAC;IACH,mCAAQ,KAAK,GAAK,IAAI,QAAE;AAC1B,CAAC;AAED,IAAM,gBAAgB,GAAG,EAAE,CAAC;AAE5B;IAA2B,sCAA2C;IAWpE,eAAY,KAAiB;;QAA7B,YACE,kBAAM,KAAK,CAAC,SAyBb;QAkBD,cAAQ,GAAoC,eAAK,CAAC,SAAS,EAAE,CAAC;QAC9D,cAAQ,GAA6C,eAAK,CAAC,SAAS,EAAE,CAAC;QACvE,cAAQ,GAA6C,eAAK,CAAC,SAAS,EAAE,CAAC;QACvE,gBAAU,GAAoC,eAAK,CAAC,SAAS,EAAE,CAAC;QAChE,eAAS,GAAoC,eAAK,CAAC,SAAS,EAAE,CAAC;QAC/D,aAAO,GAAoC,eAAK,CAAC,SAAS,EAAE,CAAC;QAC7D,cAAQ,GAA6C,eAAK,CAAC,SAAS,EAAE,CAAC;QACvE,aAAO,GAAoC,eAAK,CAAC,SAAS,EAAE,CAAC;QAhD3D,KAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY;YACpC,CAAC,CAAC,KAAI,CAAC,eAAe,CAClB,KAAK,CAAC,UAAU,EAChB,MAAA,KAAK,CAAC,YAAY,0CAAE,eAAe,CACpC;YACH,CAAC,CAAC,EAAE,CAAC;QAEP,KAAI,CAAC,KAAK,GAAG;YACX,eAAe,EAAE,KAAK,CAAC,YAAY;gBACjC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,EAAH,CAAG,CAAC,IAAI,EAAE;gBAC1D,CAAC,CAAC,EAAE;YACN,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE;YAClC,eAAe,4DACV,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,SAChE,CAAC,KAAK,CAAC,UAAU;gBAClB,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,sBAAsB,IAAI,EAAE;gBAC/C,CAAC,CAAC,EAAE,CAAC,OACR;YACD,SAAS,EAAE,EAAE;SACd,CAAC;QAEF,KAAI,CAAC,oBAAoB,GAAG,KAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;QACjE,KAAI,CAAC,mBAAmB,GAAG,KAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;;IACjE,CAAC;IAED,mCAAmB,GAAnB;QACE,OAAO,IAAA,uBAAW,EAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAuBD,4BAAY,GAAZ;;QACE,IAAM,SAAS,GAAG,CAAA,MAAA,MAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,0CAAE,QAAQ,CAAC,CAAC,CAAC,0CAAE,QAAQ,KAAI,EAAE,CAAC;QACrE,IAAM,SAAS,GAAe,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,IAAM,KAAK,GAAQ,SAAS,CAAC,CAAC,CAAC,CAAC;YAChC,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;SACjD;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,+BAAe,GAAf,UACE,UAAsB,EACtB,eAAuC;QAFzC,iBAiBC;QAbC,IAAM,YAAY,GAAe,EAAE,CAAC;QACpC,UAAU,CAAC,OAAO,CAAC,UAAA,IAAI;YACrB,IACE,IAAA,cAAI,EACF,eAAe,EACf,UAAA,GAAG,IAAI,OAAA,GAAG,KAAK,IAAI,CAAC,KAAI,CAAC,uBAAuB,EAAE,CAAC,EAA5C,CAA4C,CACpD,EACD;gBACA,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACzB;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,oCAAoB,GAApB;QACE,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAK,IAAI,CAAC,QAAQ,CAAC,OAAuB,CAAC;QACzE,IAAM,SAAS,kCAAO,IAAI,CAAC,SAAS,OAAC,CAAC;QACtC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC9C,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,+BAAe,GAAf;QAAA,iBAUC;QATC,IAAI,CAAC,QAAQ,CAAC,EAAC,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,EAAC,EAAE;YAC9C,IAAI,cAAc,CAAC,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;gBACtC,IAAM,QAAQ,GACZ,KAAI,CAAC,QAAQ,IAAK,KAAI,CAAC,QAAQ,CAAC,OAAuB,CAAC;gBAC1D,IAAM,SAAS,GAAG,KAAI,CAAC,SAAS,CAAC;gBACjC,KAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBAC9C,KAAI,CAAC,oBAAoB,EAAE,CAAC;aAC7B;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iCAAiB,GAAjB;QAAA,iBA2DC;;QA1DC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;YACtB,OAAO;SACR;QAED,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;YACtC,IAAM,SAAS,GACb,IAAI,CAAC,SAAS,IAAK,IAAI,CAAC,SAAS,CAAC,OAAuB,CAAC;YAC5D,IAAI,SAAS,EAAE;gBACb,IAAM,UAAU,GAAG,SAAS,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;gBAC3D,UAAU;oBACR,UAAU,CAAC,CAAC,CAAC;oBACb,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;aACjD;YAED,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAK,IAAI,CAAC,QAAQ,CAAC,OAAuB,CAAC;YACzE,QAAQ,IAAI,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;SACtD;QAED,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;YAC9C,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAClC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAC1E;aAAM;YACL,OAAO,GAAG,MAAA,IAAI,CAAC,SAAS,0CAAE,OAAO,CAAC;YAElC,uBAAuB;YACvB,IAAM,aAAa,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACrD,aAAa,CAAC,OAAO,CACnB,UAAA,GAAG;gBACD,OAAA,GAAG;oBACH,GAAG,CAAC,OAAO;oBACX,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;YAF9D,CAE8D,CACjE,CAAC;YACF,SAAS;YACT,IAAM,aAAa,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrC,aAAa,CAAC,OAAO,CACnB,UAAA,GAAG;gBACD,OAAA,GAAG;oBACH,GAAG,CAAC,OAAO;oBACX,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;YAFrE,CAEqE,CACxE,CAAC;SACH;QACD,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAExC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;YACxB,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;YACxB,MAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,0CAAE,gBAAgB,CACrC,SAAS,EACT,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAChC,CAAC;SACH;QAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,kCAAkB,GAAlB,UAAmB,SAAqB,EAAE,SAAqB;QAA/D,iBAmFC;;QAlFC,WAAW;QACX,IAAI,CAAC,IAAA,iBAAO,EAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;YACzD,IAAI,CAAC,QAAQ,CAAC,EAAC,UAAU,iCAAM,IAAI,CAAC,KAAK,CAAC,UAAU,OAAC,EAAC,EAAE;gBACtD,OAAA,KAAI,CAAC,eAAe,EAAE;YAAtB,CAAsB,CACvB,CAAC,CAAC,gBAAgB;SACpB;QAED,aAAa;QACb,IAAI,CAAC,IAAA,iBAAO,EAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE;YACnE,cAAc;YACd,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CACtC,IAAI,CAAC,KAAK,CAAC,UAAU,EACrB,IAAI,CAAC,KAAK,CAAC,eAAe,CAC3B,CAAC;YAEK,IAAA,YAAY,GAAI,IAAI,CAAC,KAAK,aAAd,CAAe;YAClC,YAAY;gBACV,YAAY,CAAC,QAAQ;gBACrB,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAEvE,IAAI,CAAC,QAAQ,CAAC;gBACZ,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAChD,UAAC,GAAG,EAAE,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAApB,CAAoB,CACpC;aACF,CAAC,CAAC;SACJ;QAED,gBAAgB;QAChB,IACE,CAAC,IAAA,iBAAO,EACN,MAAA,SAAS,CAAC,YAAY,0CAAE,eAAe,EACvC,MAAA,IAAI,CAAC,KAAK,CAAC,YAAY,0CAAE,eAAe,CACzC,EACD;YACA,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;gBAC3B,IAAI,CAAC,QAAQ,CAAC;oBACZ,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe;iBACzD,CAAC,CAAC;gBACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CACtC,IAAI,CAAC,KAAK,CAAC,UAAU,EACrB,IAAI,CAAC,KAAK,CAAC,eAAe,CAC3B,CAAC;aACH;SACF;QAED,gBAAgB;QAChB,IACE,CAAC,IAAA,iBAAO,EACN,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,UAAU,0CAAE,eAAe,EACtC,MAAA,IAAI,CAAC,KAAK,CAAC,UAAU,0CAAE,eAAe,CACvC,EACD;YACA,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;gBACzB,IAAI,CAAC,QAAQ,CAAC;oBACZ,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,IAAI,EAAE;iBAC7D,CAAC,CAAC;aACJ;SACF;QAED,WAAW;QACX,IAAI,CAAC,IAAA,iBAAO,EAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE;YACnE,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;gBACnB,IAAA,KAAmC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAvD,oBAAoB,0BAAA,EAAE,UAAQ,cAAyB,CAAC;gBAC/D,IAAM,cAAY,GAAe,EAAE,CAAC;gBACpC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,UAAA,IAAI;oBAChC,IACE,IAAA,cAAI,EACF,KAAI,CAAC,KAAK,CAAC,eAAe,EAC1B,UAAA,GAAG,IAAI,OAAA,GAAG,IAAI,IAAI,CAAC,UAAQ,IAAI,KAAK,CAAC,EAA9B,CAA8B,CACtC,EACD;wBACA,cAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBACzB;gBACH,CAAC,CAAC,CAAC;gBACH,oBAAoB,IAAI,oBAAoB,CAAC,cAAY,CAAC,CAAC;aAC5D;SACF;QAED,gBAAgB;QAChB,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAC1C,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC3B;IACH,CAAC;IAED,oCAAoB,GAApB;QAAA,iBAyBC;QAxBC,IAAI,CAAC,UAAU;YACb,IAAI,CAAC,UAAU,CAAC,OAAO;YACvB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,mBAAmB,CACzC,QAAQ,EACR,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CACrC,CAAC;QAEJ,IAAM,aAAa,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACrD,aAAa,CAAC,OAAO,CACnB,UAAA,GAAG;YACD,OAAA,GAAG;gBACH,GAAG,CAAC,OAAO;gBACX,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;QAFjE,CAEiE,CACpE,CAAC;QAEF,IAAM,aAAa,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrC,aAAa,CAAC,OAAO,CACnB,UAAA,GAAG;YACD,OAAA,GAAG;gBACH,GAAG,CAAC,OAAO;gBACX,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,QAAQ,EAAE,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;QAFxE,CAEwE,CAC3E,CAAC;QAEF,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,wBAAQ,GAAR,UAAS,SAAiB,EAAE,OAAe,EAAE,IAAS;QAC9C,IAAA,KAAwB,IAAI,CAAC,KAAK,EAAjC,MAAM,YAAA,EAAE,WAAW,iBAAc,CAAC;QACzC,yBAAyB;QACzB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE;YACrD,SAAS,GAAG,SAAS,GAAG,CAAC,CAAC;SAC3B;QAED,IAAM,KAAK,GAAG,OAAO,GAAG,SAAS,CAAC;QAElC,IAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAC/C,IAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAEjD,IAAM,UAAU,GAAG,IAAA,mBAAS,EAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACpD,IAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,IAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACxD,IAAI,IAAI,GAAe,UAAU,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,OAAO,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE;YAC7B,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;YAChD,CAAC,EAAE,CAAC;SACL;QAED,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3B,IAAM,GAAG,GAAG,IAAA,mBAAS,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;SACvC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4BAAY,GAAZ;QAAA,iBA8CC;QA7CO,IAAA,KAA2B,IAAI,CAAC,KAAK,EAAxB,EAAE,gBAAA,EAAE,MAAM,YAAc,CAAC;QAE5C,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAsB,EAAE;YACjE,KAAK,EAAE,OAAO;YACd,SAAS,EAAE,GAAG;YACd,MAAM,EAAE,WAAI,EAAE,CAAC,gBAAgB,CAAC,CAAE;YAClC,UAAU,EAAE,aAAa;YACzB,MAAM,EAAE,UAAC,CAAM;gBACb,IAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;gBAC1B,IAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;gBAE1B,IACE,OAAO;oBACP,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAG,EAAE,CAAC,mBAAmB,CAAC,CAAE,CAAC,EACxD;oBACA,OAAO,KAAK,CAAC;iBACd;gBAED,IAAM,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;gBACzD,IAAM,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;gBAEzD,qBAAqB;gBACrB,wBAAwB;gBACxB,IAAI,aAAa,KAAK,aAAa,EAAE;oBACnC,OAAO,KAAK,CAAC;iBACd;gBAED,OAAO,IAAI,CAAC;YACd,CAAC;YACD,KAAK,EAAE,UAAO,CAAM;;;;;4BAClB,OAAO;4BACP,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,EAAE;gCAC7B,sBAAO;6BACR;4BAEM,MAAM,GAAI,IAAI,CAAC,KAAK,OAAd,CAAe;iCACxB,MAAM,EAAN,wBAAM;4BACF,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;4BACzC,qBAAM,MAAM,CAAC,IAAI,CAAC,EAAA;;4BAA9B,SAAS,GAAG,SAAkB;4BACpC,IAAI,SAAS,EAAE;gCACb,sBAAO;6BACR;;;;;iBAEJ;SACF,CAAC,CAAC;IACL,CAAC;IAED,+BAAe,GAAf;QACE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC3C,CAAC;IAED,kCAAkB,GAAlB;QAAA,iBA0BC;;QAzBC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACrB,uDAAuD;YACvD,IAAI,QAAM,GAAG,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,OAAO,0CAAE,aAAa,CAAC;YACpD,UAAU,CAAC;gBACT,OACE,QAAM;oBACN,MAAM,CAAC,gBAAgB,CAAC,QAAM,EAAE,IAAI,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC;wBAChE,MAAM,EACR;oBACA,QAAM,GAAG,QAAM,CAAC,aAAa,CAAC;iBAC/B;gBACD,IACE,QAAM;oBACN,MAAM,CAAC,gBAAgB,CAAC,QAAM,EAAE,IAAI,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC;wBAChE,MAAM,EACR;oBACA,IAAM,UAAU,GAAG,MAAM;yBACtB,gBAAgB,CAAC,QAAM,EAAE,IAAI,CAAC;yBAC9B,gBAAgB,CAAC,aAAa,CAAC,CAAC;oBACnC,IAAI,UAAU,IAAI,KAAI,CAAC,SAAS,IAAI,KAAI,CAAC,SAAS,CAAC,OAAO,EAAE;wBAC1D,KAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,UAAU,CAAC;qBACrD;iBACF;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,wBAAwB;IACxB,8BAAc,GAAd,UAAe,GAAgB,EAAE,OAA2B;;QACnD,IAAY,EAAE,GAAI,IAAI,CAAC,KAAK,WAAd,CAAe;QAEpC,IAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,IAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAgB,CAAC;YACvC,IAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE;gBAC5B,GAAG,CAAC,KAAK,CAAC,IAAI;oBACZ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,QAAQ,EAAE,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;aACnE;iBAAM,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE;gBACpC,GAAG,CAAC,KAAK,CAAC,KAAK;oBACb,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC;wBACrB,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI;wBACjD,CAAC,CAAC,GAAG,CAAC;aACX;SACF;QACD,kBAAkB;QAClB,IAAI,SAAS,GAAG,IAAA,uBAAa,EAAC,OAAO,EAAE,UAAA,MAAM;YAC3C,OAAA,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC;QAA/B,CAA+B,CAChC,CAAC;QACF,IAAI,SAAS,GAAG,CAAC,CAAC,EAAE;YAClB,MAAA,QAAQ,CAAC,SAAS,CAAC,0CAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAC,CAAC;SACpE;QACD,iBAAiB;QACjB,IAAI,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,UAAA,MAAM;YACvC,OAAA,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC;QAAhC,CAAgC,CACjC,CAAC;QACF,IAAI,UAAU,GAAG,CAAC,CAAC,EAAE;YACnB,MAAA,QAAQ,CAAC,UAAU,CAAC,0CAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC,CAAC;YACtE,IAAI,UAAU,GAAG,CAAC,EAAE;gBAClB,MAAA,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC,0CAAE,SAAS,CAAC,GAAG,CACrC,EAAE,CAAC,iCAAiC,CAAC,CACtC,CAAC;aACH;SACF;IACH,CAAC;IAED,mCAAmC;IACnC,8BAAc,GAAd,UAAe,OAAmB;QAC1B,IAAA,KAAwC,IAAI,CAAC,KAAK,EAAjD,YAAY,kBAAA,EAAE,UAAU,gBAAA,EAAE,SAAS,eAAc,CAAC;QACzD,IAAI,SAAS,EAAE;YACb,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SACrB;aAAM;YACL,IAAI,UAAU,EAAE;gBACd,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;aAC7B;YACD,IAAI,YAAY,EAAE;gBAChB,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;aAC/B;SACF;IACH,CAAC;IAED,mCAAmB,GAAnB,UAAoB,KAAkB,EAAE,OAAmB;QACzD,IAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,IAAM,IAAI,kCAAO,OAAO,CAAC,CAAC,CAAC,OAAC,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,EAAE;gBACX,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;aAC3B;YAED,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAgB,EAAE,IAAI,CAAC,CAAC;SACvD;IACH,CAAC;IAED,mCAAmB,GAAnB,UAAoB,KAAkB,EAAE,OAAmB;QAClD,IAAY,EAAE,GAAI,IAAI,CAAC,KAAK,WAAd,CAAe;QACpC,IAAM,QAAQ,GAAG,IAAA,gBAAM,EACrB,KAAK,CAAC,QAAQ,EACd,UAAA,KAAK;YACH,OAAA,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC;gBAClD,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC;QADhD,CACgD,CACnD,CAAC;QACF,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAgB,EAAE,OAAO,CAAC,CAAC;SAC1D;IACH,CAAC;IAED,qCAAqB,GAArB,UACE,QAAyC,EACzC,OAAmB;QAEnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAgB,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;SAC7D;IACH,CAAC;IAED,yCAAyB,GAAzB,UAA0B,KAAkB;QACnC,IAAA,WAAW,GAAI,IAAI,CAAC,KAAK,YAAd,CAAe;QACjC,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;YAC9B,IAAM,OAAO,GAAG,iBAAiB,CAAC,WAAkC,CAAC,CAAC;YACtE,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;SACrD;IACH,CAAC;IAED,yCAAyB,GAAzB,UAA0B,KAAkB;QACpC,IAAA,KAAgC,IAAI,CAAC,KAAK,EAAzC,WAAW,iBAAA,EAAc,EAAE,gBAAc,CAAC;QACjD,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;YAC9B,IAAM,OAAO,GAAG,iBAAiB,CAAC,WAAkC,CAAC,CAAC;YACtE,IAAM,QAAQ,GAAG,IAAA,gBAAM,EAAC,KAAK,CAAC,QAAQ,EAAE,UAAA,KAAK;gBAC3C,OAAA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC;YAAjD,CAAiD,CAClD,CAAC;YACF,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;SAC/C;IACH,CAAC;IAED,8BAAc,GAAd,UAAe,SAAyB;QAChC,IAAA,KAAwD,IAAI,CAAC,KAAK,EAAjE,YAAY,kBAAA,EAAc,EAAE,gBAAA,EAAE,UAAU,gBAAA,EAAE,SAAS,eAAc,CAAC;QAEzE,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC9C,IAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE9C,OAAO,CACL;YACG,SAAS,CAAC,CAAC,CAAC,CACX,uCACE,SAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAC/B,KAAK,EAAE,EAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,EAAC,GAClC,CACR,CAAC,CAAC,CAAC,IAAI;YACP,CAAC,SAAS,IAAI,YAAY,CAAC,CAAC,CAAC,CAC5B,uCACE,SAAS,EAAE,EAAE,CAAC,qBAAqB,CAAC,EACpC,KAAK,EAAE;oBACL,KAAK,EAAE,CAAC,YAAY,CAAC,WAAW,IAAI,gBAAgB,CAAC,GAAG,IAAI;iBAC7D,GACI,CACR,CAAC,CAAC,CAAC,IAAI;YACP,CAAC,SAAS,IAAI,YAAY,CAAC,CAAC,CAAC,CAC5B,uCACE,SAAS,EAAE,EAAE,CAAC,kBAAkB,CAAC,EACjC,KAAK,EAAE;oBACL,KAAK,EAAE,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,WAAW,KAAI,gBAAgB,CAAC,GAAG,IAAI;iBAC5D,GACI,CACR,CAAC,CAAC,CAAC,IAAI;YACP,SAAS,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,KAAK;gBACzB,IAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;gBACrE,OAAO,CACL,uCACE,GAAG,EAAE,KAAK,EACV,KAAK,EAAE,EAAC,KAAK,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,EAAC,EAChE,SAAS,EACP,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,yBAAkB,IAAI,CAAC,SAAS,CAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAEzD,CACR,CAAC;YACJ,CAAC,CAAC,CACO,CACZ,CAAC;IACJ,CAAC;IAED,iCAAiB,GAAjB,UAAkB,KAA4B,EAAE,GAAW;QACzD,WAAW;QACX,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC;QACjC,UAAU;QACV,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,KAAK,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;IACnC,CAAC;IAED,+BAAe,GAAf,UAAgB,KAA4B;QAA5C,iBA2EC;;QA1EC,UAAU;QACV,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,EAAE;YACtC,WAAW;YACX,IAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;YAClD,IAAM,SAAS,kCAAO,IAAI,CAAC,SAAS,OAAC,CAAC;YACtC,IAAI,KAAK,GACP,SAAS,CAAC,SAAS,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,GAAG,KAAK,KAAI,CAAC,SAAS,EAAxB,CAAwB,CAAC;gBAClD,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAE7B,IAAM,QAAQ,GACZ,MAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,0CAAE,oBAAoB,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YAC7D,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBACxC,IAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAgB,CAAC;gBACtD,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC;aAClC;YAED,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,IAAI,QAAQ,EAAE;gBACZ,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC,YAAY;gBACjC,MAAM;gBACN,IAAI,QAAQ,GAAG,CAAC,EAAE;oBAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACjD,IAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAgB,CAAC;wBAClD,iBAAiB;wBACjB,qBAAqB;wBACrB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;4BAC5B,WAAW,IAAI,KAAK,CAAC,WAAW,GAAG,gBAAgB,CAAC;yBACrD;qBACF;oBACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;wBAC5B,IAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAgB,CAAC;wBACtD,QAAQ,GAAG,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;wBAC1D,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;qBACrC;iBACF;qBAAM;oBACL,MAAM;oBACN,IAAM,WAAW,GAAG,EAAE,CAAC;oBACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACjD,IAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAgB,CAAC;wBAClD,iBAAiB;wBACjB,qBAAqB;wBACrB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;4BAC5B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;yBACzB;qBACF;oBACD,WAAW,GAAG,gBAAgB,GAAG,YAAY,CAAC;oBAC9C,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;wBAC5B,IAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAgB,CAAC;wBACtD,QAAQ,GAAG,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;wBAC1D,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;qBACrC;oBACD,IAAM,KAAG,GACP,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC;oBACjE,WAAW,CAAC,OAAO,CAAC,UAAA,CAAC;wBACnB,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,WAAW,GAAG,KAAG,GAAG,IAAI,CAAC;oBAC7C,CAAC,CAAC,CAAC;iBACJ;aACF;YAED,IAAM,MAAM,GAAG,IAAA,cAAI,EAAC,SAAS,EAAE,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,GAAG,KAAK,KAAI,CAAC,SAAS,EAAxB,CAAwB,CAAC,CAAC;YAC9D,2BAA2B;YAC3B,WAAW;YACX,YAAY;YACZ,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,IAAI,QAAQ,EAAE;gBACtC,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC;aACzB;YAED,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAE3B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACrB;QACD,KAAK,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;IACnC,CAAC;IAED,2BAAW,GAAX;QAAA,iBAwMC;QAvMO,IAAA,KAUF,IAAI,CAAC,KAAK,EATZ,YAAY,kBAAA,EACZ,UAAU,gBAAA,EACE,EAAE,gBAAA,EACd,MAAM,YAAA,EACN,UAAU,gBAAA,EACV,SAAS,eAAA,EACT,SAAS,eAAA,EACT,WAAW,iBAAA,EACX,QAAQ,cACI,CAAC;QAEf,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,aAAa;QACb,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,SAAS,CAAC,OAAO,CAAC,UAAA,OAAO;YACvB,IAAI,OAAO,CAAC,MAAM,GAAG,QAAQ,EAAE;gBAC7B,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;aAC3B;QACH,CAAC,CAAC,CAAC;QACH,IAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAChD,IAAM,QAAQ,GACZ,YAAY,IAAI,YAAY,CAAC,gBAAgB;YAC3C,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,UAAC,IAAI,EAAE,KAAK;gBACvC,IAAM,KAAK,GAAG,YAAY,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACzD,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;YACzB,CAAC,CAAC;YACJ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QAE5B,IAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE9C,IAAI,UAAU,GAAkB,EAAE,CAAC;QACnC,IAAI,OAAO,GAAe,EAAE,CAAC;QAC7B,QAAQ,CAAC,OAAO,CAAC,UAAA,IAAI;YACnB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,IAAI,CAAC,UAAU,IAAI,KAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBAC5C,UAAU,6DAAO,UAAU,SAAK,KAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAC,CAAC;gBAChE,IAAI,CAAC,KAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,OAAO,CAAC,UAAC,IAAS;oBACnD,OAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAlB,CAAkB,CACnB,CAAC;aACH;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,CACL,yCAAO,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,IACpD,SAAS,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,KAAK;YACzB,OAAO,CACL,sCAAI,GAAG,EAAE,UAAU,GAAG,KAAK;gBACxB,SAAS,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAC1B,8BAAC,cAAI,IACH,gBAAgB,EAAC,IAAI,EACrB,OAAO,EAAE,SAAS,CAAC,MAAM,EACzB,SAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,GACzB,CACT,CAAC,CAAC,CAAC,IAAI;gBACP,CAAC,SAAS,IAAI,YAAY,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAC3C,8BAAC,cAAI,IACH,gBAAgB,EAAC,IAAI,EACrB,OAAO,EAAE,SAAS,CAAC,MAAM,EACzB,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EACvC,SAAS,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAE/B,YAAY,CAAC,IAAI,KAAK,OAAO;oBAC5B,CAAC,CAAC;wBACE,8BAAC,kBAAQ,IACP,GAAG,EAAC,UAAU,EACd,OAAO,EACL,KAAI,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;gCACrC,KAAI,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM;oCAC/B,UAAU,CAAC,MAAM,EAErB,OAAO,EAAE,KAAI,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAC9C,QAAQ,EAAE,UAAM,KAAK;;;;;;4CAEnB,IAAI,KAAK,EAAE;gDACT,UAAU,GAAG,QAAQ,CAAC,MAAM,CAC1B,UAAA,IAAI,IAAI,OAAA,CAAC,KAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAA1B,CAA0B,CACnC,CAAC;6CACH;iDAAM;gDACL,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;6CAChC;4CACK,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;4CACpC,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;iDAC5C,WAAW,EAAX,wBAAW;4CACK,qBAAM,WAAW,CACjC,KAAK,EACL,eAAe,EACf,YAAY,EACZ,UAAU,CACX,EAAA;;4CALK,SAAS,GAAG,SAKjB;4CACD,IAAI,SAAS,EAAE;gDACb,sBAAO;6CACR;;;4CAGH,IAAI,CAAC,QAAQ,CAAC,EAAC,eAAe,iBAAA,EAAC,CAAC,CAAC;;;;iCAClC,GACS;wBACZ,YAAY,CAAC,UAAU;4BACvB,YAAY,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACnC,8BAAC,wBAAc,IACb,GAAG,EAAC,gBAAgB,EACpB,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,YAAY,CAAC,UAAU,EACnC,gBAAgB,EAAE,KAAI,CAAC,mBAAmB,GAC1B,CACnB,CAAC,CAAC,CAAC,IAAI;qBACT;oBACH,CAAC,CAAC,IAAI,CACH,CACR,CAAC,CAAC,CAAC,IAAI;gBACP,CAAC,SAAS,IAAI,YAAY,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAC3C,8BAAC,cAAI,IACH,gBAAgB,EAAC,IAAI,EACrB,OAAO,EAAE,SAAS,CAAC,MAAM,EACzB,KAAK,EAAE,UAAU,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EACnD,SAAS,EAAE,EAAE,CAAC,4BAA4B,CAAC,GACrC,CACT,CAAC,CAAC,CAAC,IAAI;gBACP,IAAI,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,CAAC;oBAChB,IAAI,IAAI,GAAG,IAAI,CAAC;oBAChB,IAAI,IAAI,CAAC,MAAM,EAAE;wBACf,IAAI,GAAG,CACL,8BAAC,sBAAY,IACX,MAAM,EAAE,IAAI,EACZ,MAAM,EACJ,MAAM;gCACJ,CAAC,CAAC,MAAM;gCACR,CAAC,CAAC,UAAC,OAAkB;oCACjB,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE;wCACrC,IAAI,OAAO,CAAC,OAAO,EAAE;4CACnB,IAAM,QAAQ,kCAAO,KAAI,CAAC,KAAK,CAAC,UAAU,OAAC,CAAC;4CAC5C,KAAI,CAAC,QAAQ,CAAC;gDACZ,UAAU,EAAE,QAAQ,CAAC,IAAI,CACvB,IAAI,CAAC,MAAoC,CAC1C;6CACF,CAAC,CAAC;yCACJ;6CAAM;4CACL,KAAI,CAAC,QAAQ,CAAC,EAAC,UAAU,iCAAM,UAAU,OAAC,EAAC,CAAC,CAAC;yCAC9C;qCACF;gCACH,CAAC,GAEO,CACjB,CAAC;qBACH;oBAED,IAAI,MAAM,GAAG,IAAI,CAAC;oBAClB,IAAI,IAAI,CAAC,cAAc,EAAE;wBACvB,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;qBAC9B;yBAAM,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;wBAClD,MAAM,GAAG,CACP,8BAAC,wBAAc,IACb,MAAM,EAAE,IAAI,EACZ,gBAAgB,EAAE,KAAI,CAAC,mBAAmB,EAC1C,QAAQ,EAAE,QAAQ,GACF,CACnB,CAAC;qBACH;oBAED,IAAM,QAAQ,GAAG,CACf;wBACG,IAAI;wBACJ,MAAM;wBACN,SAAS,CAAC,CAAC,CAAC,CACX,qCACE,SAAS,EAAE,EAAE,CAAC,uBAAuB,CAAC,EACtC,WAAW,EAAE,UAAA,CAAC,IAAI,OAAA,KAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAnC,CAAmC,GAClD,CACN,CAAC,CAAC,CAAC,IAAI,CACH,CACR,CAAC;oBAEF,OAAO,CACL,8BAAC,cAAI,IACH,gBAAgB,EAAC,IAAI,EACrB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,GAAG,EAAE,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAC7B,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAChD,SAAS,EAAE,EAAE,CAAC;4BACZ,iBAAiB,EACf,CAAC,KAAK,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC;yBAC9C,CAAC,EACF,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,KAAK,EAAE,IAAI,CAAC,KAAK,IAEhB,OAAO,IAAI,CAAC,KAAK,KAAK,UAAU;wBAC/B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;wBACtB,CAAC,CAAC,IAAI,CAAC,KAAK,CACT,CACR,CAAC;gBACJ,CAAC,CAAC,CACC,CACN,CAAC;QACJ,CAAC,CAAC,CACI,CACT,CAAC;IACJ,CAAC;IAED,0BAAU,GAAV,UAAW,KAA6B,EAAE,MAAY,EAAE,QAAiB;QACjE,IAAA,KAAwB,IAAI,CAAC,KAAK,EAAjC,YAAY,kBAAA,EAAE,KAAK,WAAc,CAAC;QAEzC,IAAI,YAAY,IAAI,YAAY,CAAC,IAAI,IAAI,YAAY,CAAC,QAAQ,EAAE;YAC9D,IAAM,YAAU,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAElD,IAAM,UAAU,GAAG,CAAC,CAAC,IAAA,cAAI,EACvB,IAAI,CAAC,KAAK,CAAC,eAAe,EAC1B,UAAA,GAAG,IAAI,OAAA,GAAG,KAAK,MAAM,CAAC,YAAU,CAAC,EAA1B,CAA0B,CAClC,CAAC;YAEF,IAAI,CAAC,iBAAiB,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;SAC7C;QAED,IAAI,MAAM,IAAI,KAAK,EAAE;YACnB,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;SAC/D;IACH,CAAC;IAED,+BAAe,GAAf,UACE,KAA6B,EAC7B,MAAY,EACZ,QAAiB;QAEX,IAAA,KAA0B,IAAI,CAAC,KAAK,EAAvB,EAAE,gBAAA,EAAE,KAAK,WAAc,CAAC;QAE3C,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC1B,OAAO,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,EAAE;YACxC,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;SAC/B;QAED,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE;YAClE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC/C,IAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC9B,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,mBAAmB;aAClE;SACF;QAED,IAAI,MAAM,IAAI,KAAK,EAAE;YACnB,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;SACzE;IACH,CAAC;IAED,+BAAe,GAAf,UACE,KAA6B,EAC7B,MAAY,EACZ,QAAiB;QAEX,IAAA,KAA0B,IAAI,CAAC,KAAK,EAAvB,EAAE,gBAAA,EAAE,KAAK,WAAc,CAAC;QAE3C,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC1B,OAAO,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,EAAE;YACxC,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;SAC/B;QAED,IAAI,MAAM,EAAE;YACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC/C,IAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC9B,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC;aACjD;SACF;QAED,IAAI,MAAM,IAAI,KAAK,EAAE;YACnB,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;SACzE;IACH,CAAC;IAED,2BAAW,GAAX,UAAY,IAAS;QACZ,IAAA,eAAe,GAAI,IAAI,CAAC,KAAK,gBAAd,CAAe;QAC9B,IAAA,UAAU,GAAI,IAAI,CAAC,KAAK,WAAd,CAAe;QAChC,IAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,CAAC,EAAC,eAAe,4DAAM,eAAe,UAAE,GAAG,SAAC,EAAC,CAAC,CAAC;QAC5D,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,MAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA,CAAC;IAC3D,CAAC;IAED,6BAAa,GAAb,UAAc,IAAS;QACd,IAAA,eAAe,GAAI,IAAI,CAAC,KAAK,gBAAd,CAAe;QAC9B,IAAA,UAAU,GAAI,IAAI,CAAC,KAAK,WAAd,CAAe;QAChC,IAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAC/C,sBAAsB;QACtB,IAAI,CAAC,QAAQ,CAAC,EAAC,eAAe,EAAE,eAAe,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,IAAI,GAAG,EAAR,CAAQ,CAAC,EAAC,CAAC,CAAC;QACxE,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,MAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA,CAAC;IAC5D,CAAC;IAED,qCAAqB,GAArB;QACS,IAAA,kBAAkB,GAAI,IAAI,CAAC,KAAK,mBAAd,CAAe;QAExC,OAAO,kBAAkB,IAAI,UAAU,CAAC;IAC1C,CAAC;IAED,uCAAuB,GAAvB;QACS,IAAA,YAAY,GAAI,IAAI,CAAC,KAAK,aAAd,CAAe;QAElC,OAAO,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,CAAC;IAED,qCAAqB,GAArB;QACQ,IAAA,KAAyB,IAAI,CAAC,KAAK,EAAlC,UAAU,gBAAA,EAAE,QAAQ,cAAc,CAAC;QAE1C,OAAO,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,KAAI,QAAQ,IAAI,KAAK,CAAC;IACnD,CAAC;IAED,8BAAc,GAAd,UAAe,IAAS;QACtB,IAAM,GAAG,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACvE,CAAC;IAED,YAAY;IACZ,+BAAe,GAAf,UAAgB,IAAS,EAAE,QAAgB;QAClC,IAAA,UAAU,GAAI,IAAI,CAAC,KAAK,WAAd,CAAe;QAEhC,OAAO,CACL,UAAU;YACV,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CACzC,CAAC;IACJ,CAAC;IAED,mBAAmB;IACnB,mCAAmB,GAAnB,UAAoB,IAAS;QAA7B,iBAgBC;QAfC,IAAI,IAAI,GAAkB,EAAE,CAAC;QAE7B,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;YAC7B,IAAM,GAAG,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACzC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CACf,UAAC,IAAS;gBACR,OAAA,CAAC,IAAI,wFACA,IAAI,SACJ,KAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;oBACjC,IAAI,CAAC,KAAI,CAAC,uBAAuB,EAAE,CAAC;yBACrC,CAAC;YAJF,CAIE,CACL,CAAC;SACH;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8BAAc,GAAd,UAAe,IAAS;QACtB,IAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;QACnD,IAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAEpD,OAAO,CACL,IAAA,sBAAY,EAAC,eAAe,4DACvB,YAAY;YACf,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;kBACpC,CAAC,MAAM,GAAG,CAAC,CACd,CAAC;IACJ,CAAC;IAED,sCAAsB,GAAtB,UAAuB,IAAS;QAC9B,IAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;QACnD,IAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACpD,IAAM,MAAM,GAAG,IAAA,sBAAY,EAAC,eAAe,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC;QAElE,OAAO,MAAM,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,gCAAgB,GAAhB,UAAiB,UAAmB,EAAE,MAAW;QACxC,IAAY,EAAE,GAAI,IAAI,CAAC,KAAK,WAAd,CAAe;QAEpC,OAAO,UAAU,CAAC,CAAC,CAAC,CAClB,qCACE,SAAS,EAAE,EAAE,CAAC,iBAAiB,EAAE,WAAW,CAAC,EAC7C,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;YAE9C,8BAAC,YAAI,IAAC,IAAI,EAAC,kBAAkB,EAAC,SAAS,EAAC,MAAM,GAAG,CAC/C,CACL,CAAC,CAAC,CAAC,CACF,qCACE,SAAS,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAChC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;YAE5C,8BAAC,YAAI,IAAC,IAAI,EAAC,kBAAkB,EAAC,SAAS,EAAC,MAAM,GAAG,CAC/C,CACL,CAAC;IACJ,CAAC;IAEK,iCAAiB,GAAvB,UAAwB,KAAc,EAAE,IAAS;;;;;;;wBACzC,KAA2B,IAAI,CAAC,KAAK,EAApC,YAAY,kBAAA,EAAE,QAAQ,cAAA,CAAe;wBAEtC,UAAU,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;wBAC5C,OAAO,GAAG,YAAY,IAAI,YAAY,CAAC,IAAI,KAAK,OAAO,CAAC;6BAE1D,QAAQ,EAAR,wBAAQ;wBACQ,qBAAM,QAAQ,CAC9B,IAAI,EACJ,KAAK,EACL,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,KAAK,CAAC,eAAe,CAC3B,EAAA;;wBALK,SAAS,GAAG,SAKjB;wBACD,IAAI,SAAS,EAAE;4BACb,sBAAO;yBACR;;;wBAGH,IAAI,KAAK,EAAE;4BACT,IAAI,OAAO,EAAE;gCACX,IAAI,CAAC,QAAQ,CAAC,EAAC,eAAe,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAC,CAAC,CAAC;6BACtD;iCAAM;gCACL,IAAI,CAAC,QAAQ,CAAC,UAAA,SAAS,IAAI,OAAA,CAAC;oCAC1B,eAAe,EAAE,qFACZ,SAAS,CAAC,eAAe;wCAC5B,IAAI,CAAC,UAAU,CAAC;+CACb,KAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QACjC,MAAM,CAAC,UAAC,GAAG,EAAE,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAApB,CAAoB,CAAC;iCAC9C,CAAC,EANyB,CAMzB,CAAC,CAAC;6BACL;yBACF;6BAAM;4BACL,IAAI,CAAC,OAAO,EAAE;gCACZ,IAAI,CAAC,QAAQ,CAAC;oCACZ,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAChD,UAAA,GAAG;wCACD,OAAA,CAAC,4BAAC,IAAI,CAAC,UAAU,CAAC,GAAK,KAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAE,QAAQ,CAC7D,GAAG,CACJ;oCAFD,CAEC,CACJ;iCACF,CAAC,CAAC;6BACJ;yBACF;;;;;KACF;IAED,yBAAS,GAAT,UAAU,IAAS,EAAE,QAAgB,EAAE,MAAqB;QAA5D,iBAoLC;QAnLO,IAAA,KAQF,IAAI,CAAC,KAAK,EAPA,EAAE,gBAAA,EACd,YAAY,kBAAA,EACZ,UAAU,gBAAA,EACV,SAAS,eAAA,EACT,UAAU,gBAAA,EACV,YAAY,kBAAA,EACZ,UAAU,gBAAA,CAAC,YAAY;QACX,CAAC;QAEf,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC9C,IAAM,UAAU,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAClD,IAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE5C,WAAW;QACX,IAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC7D,iBAAiB;QACjB,IAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAEjD,IAAM,UAAU,GAAG,CAAC,CAAC,IAAA,cAAI,EACvB,IAAI,CAAC,KAAK,CAAC,eAAe,EAC1B,UAAA,GAAG,IAAI,OAAA,GAAG,IAAI,IAAI,CAAC,KAAI,CAAC,qBAAqB,EAAE,CAAC,EAAzC,CAAyC,CACjD,CAAC,CAAC,oBAAoB;QAEvB,SAAS;QACT,IAAM,SAAS,GACb,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAClB,wCACE,SAAS,EAAE,EAAE,CAAC,kBAAkB,EAAE,uBAAgB,MAAM,CAAC,MAAM,CAAE,CAAC,EAClE,KAAK,EAAE,EAAC,WAAW,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,EAAC,GACjD,CACT,CAAC,CAAC,CAAC,IAAI,CAAC;QAEX,IAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,CAAC;;YAClC,IAAM,MAAM,GACV,IAAI,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU;gBAC9C,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAChD,CAAC,CAAC,IAAI,CAAC;YACX,IAAI,KAAK,GAAG,EAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAC,CAAC;YACrC,IAAI,QAAQ,GAAG,MAAM,CAAC;YACtB,IAAI,MAAM,IAAI,IAAA,iBAAQ,EAAC,MAAM,CAAC,EAAE;gBAC9B,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;gBACrB,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;gBAC3B,uBAAuB;gBACvB,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,IAAI,eAAe,IAAI,cAAc,EAAE;oBAC1D,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC;iBACrB;aACF;YACD,OAAO,KAAK,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACzD,8BAAC,cAAI,0BACH,GAAG,EAAE,CAAC,IACF,KAAK,IACT,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAChD,MAAM,EAAE,IAAI,EACZ,OAAO,EAAE,IAAI,CAAC,OAAO;gBAErB,uCACE,SAAS,EAAE,EAAE,CAAC,oBAAoB;wBAChC,GAAC,EAAE,CAAC,2BAA2B,CAAC,IAC9B,CAAC,KAAK,CAAC;4BACP,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,cAAc,CAAC,CAAC;wBAC1D,GAAC,EAAE,CAAC,4BAAqB,UAAU,CAAE,CAAC,IAAG,CAAC,CAAC,UAAU;4BACrD;oBAED,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;oBAC/C,CAAC,KAAK,CAAC,IAAI,cAAc;wBACxB,CAAC,CAAC,KAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC;wBACzC,CAAC,CAAC,IAAI;oBACP,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAC/B,CACD,CACR,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAM,iBAAiB,GACrB,YAAY,IAAI,OAAO,YAAY,KAAK,UAAU;YAChD,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC;YAC9B,CAAC,CAAC,EAAE,CAAC;QAET,eAAe;QACf,oCAAoC;QACpC,6BAA6B;QAC7B,IAAM,aAAa,GACjB,YAAY,IAAI,YAAY,CAAC,gBAAgB;YAC3C,CAAC,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC;YAC/C,CAAC,CAAC,EAAE,CAAC;QAET,IAAM,oBAAoB,GACxB,UAAU;YACV,UAAU,CAAC,oBAAoB;YAC/B,OAAO,UAAU,CAAC,oBAAoB,KAAK,UAAU;YACnD,CAAC,CAAC,UAAU,CAAC,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC;YACjD,CAAC,CAAC,EAAE,CAAC;QACT,IAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE7C,IAAM,QAAQ,GACZ,CAAC,SAAS,IAAI,eAAe,IAAI,UAAU,CAAC,CAAC,CAAC,CAC5C,sCACE,GAAG,EAAC,UAAU,EACd,SAAS,EAAE,EAAE,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;YAEzD,8BAAC,cAAI,IAAC,OAAO,EAAE,SAAS,CAAC,MAAM,GAAG,QAAQ,IACvC,UAAU;gBACX,UAAU,CAAC,iBAAiB;gBAC5B,OAAO,UAAU,CAAC,iBAAiB,KAAK,UAAU;gBAChD,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC;gBAC9C,CAAC,CAAC,IAAI,CACH,CACJ,CACN,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAC5C,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,UAAC,IAAS,EAAE,KAAa;YACzC,OAAO,KAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,4DAAM,MAAM,UAAE,QAAQ,UAAE,CAAC;QAC5D,CAAC,CAAC,CACH,CAAC,CAAC,CAAC,IAAI,CAAC;QAEX,IAAM,SAAS,GAAG,CAAC,CAAC,IAAA,cAAI,EACtB,IAAI,CAAC,KAAK,CAAC,eAAe,EAC1B,UAAA,GAAG,IAAI,OAAA,GAAG,KAAK,IAAI,CAAC,UAAU,CAAC,EAAxB,CAAwB,CAChC,CAAC;QACF,IAAM,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAE7D,OAAO;YACL,sCACE,GAAG,EAAE,QAAQ,eACF,QAAQ,gBACP,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAC5B,SAAS,EAAE,EAAE,CACX,WAAW,EACX,0BAAmB,MAAM,CAAC,MAAM,CAAE,EAClC,iBAAiB,EACjB;oBACE,oBAAoB,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ;iBAC/C,CACF,EACD,YAAY,EAAE,UAAA,CAAC,IAAI,OAAA,KAAI,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAvC,CAAuC,EAC1D,YAAY,EAAE,UAAA,CAAC,IAAI,OAAA,KAAI,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAvC,CAAuC,EAC1D,OAAO,EAAE,UAAA,CAAC,IAAI,OAAA,KAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAlC,CAAkC;gBAE/C,SAAS,CAAC,CAAC,CAAC,CACX,8BAAC,cAAI,IAAC,SAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC;oBACnC,8BAAC,YAAI,IAAC,IAAI,EAAC,UAAU,EAAC,SAAS,EAAC,MAAM,GAAQ,CACzC,CACR,CAAC,CAAC,CAAC,IAAI;gBACP,CAAC,SAAS,IAAI,YAAY,CAAC,CAAC,CAAC,CAC5B,8BAAC,cAAI,IACH,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EACvC,SAAS,EAAE,EAAE,CAAC,iBAAiB,CAAC;oBAEhC,8BAAC,kBAAQ,0BACP,IAAI,EAAE,gBAAgB,EACtB,IAAI,EAAE,YAAY,CAAC,IAAI,IAAI,UAAU,EACrC,OAAO,EAAE,kBAAkB,IAAI,CAAC,SAAS,EACzC,OAAO,EAAE,kBAAkB,IAAI,SAAS,EACxC,QAAQ,EAAE,UAAC,KAAK,EAAE,KAAK;4BACrB,IAAI,CAAC,CAAC,YAAY,IAAI,YAAY,CAAC,QAAQ,CAAC,EAAE;gCAC5C,KAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;6BACrC;4BAED,KAAK,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;wBACnC,CAAC,IACG,aAAa,EACP,CACP,CACR,CAAC,CAAC,CAAC,IAAI;gBACP,CAAC,SAAS,IAAI,YAAY,CAAC,CAAC,CAAC,CAC5B,8BAAC,cAAI,IACH,KAAK,EAAE,UAAU,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EACnD,SAAS,EAAE,EAAE,CAAC,6BAA6B,CAAC,IAE3C,eAAe,IAAI,cAAc;oBAChC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC;oBACzC,CAAC,CAAC,IAAI,CACH,CACR,CAAC,CAAC,CAAC,IAAI;gBACP,KAAK,CACH;YACL,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,2BAAW,GAAX;QAAA,iBAkCC;QAjCO,IAAA,KAMF,IAAI,CAAC,KAAK,EALA,EAAE,gBAAA,EACd,WAAW,iBAAA,EACX,MAAM,YAAA,EACN,WAAW,iBAAA,EACX,MAAM,YACM,CAAC;QAEf,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAM,UAAU,GAAG,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC;QACtC,IAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC5C,OAAO,CACL,yCAAO,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC;YACpD,CAAC,UAAU,IAAI,CAAC,MAAM,IAAI,WAAW;gBACpC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC;gBACpC,CAAC,CAAC,IAAI;YACP,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAC/B,sCAAI,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC;gBAC/C,8BAAC,cAAI,IAAC,OAAO,EAAE,SAAS,CAAC,MAAM,GAAG,QAAQ;oBACxC,uCAAK,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,IAC9B,OAAO,WAAW,KAAK,UAAU;wBAChC,CAAC,CAAC,WAAW,EAAE;wBACf,CAAC,CAAC,WAAW,CACX,CACD,CACJ,CACN,CAAC,CAAC,CAAC,CACF,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,KAAK;gBACpC,OAAO,KAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACzC,CAAC,CAAC,CACH,CACK,CACT,CAAC;IACJ,CAAC;IAED,iCAAiB,GAAjB;QACS,IAAA,UAAU,GAAI,IAAI,CAAC,KAAK,WAAd,CAAe;QAEhC,sBAAsB;QACtB,YAAY;QACZ,OAAO,CAAC,CAAC,UAAU,CAAC;IACtB,CAAC;IAED,6BAAa,GAAb;QAAA,iBAGC;QAFQ,IAAA,UAAU,GAAI,IAAI,CAAC,KAAK,WAAd,CAAe;QAChC,OAAO,CAAC,CAAC,IAAA,cAAI,EAAC,UAAU,EAAE,UAAA,IAAI,IAAI,OAAA,KAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAzB,CAAyB,CAAC,CAAC;IAC/D,CAAC;IAED,mCAAmB,GAAnB;QACQ,IAAA,KAA4B,IAAI,CAAC,KAAK,EAArC,SAAS,eAAA,EAAE,YAAY,kBAAc,CAAC;QAE7C,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,SAAS,EAAE;YACb,KAAK,EAAE,CAAC;SACT;aAAM;YACL,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;gBAC5B,KAAK,EAAE,CAAC;aACT;YACD,IAAI,YAAY,EAAE;gBAChB,KAAK,EAAE,CAAC;aACT;SACF;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gCAAgB,GAAhB,UAAiB,OAAY;QAA7B,iBAmEC;QAlEO,IAAA,KAA+B,IAAI,CAAC,KAAK,EAA5B,EAAE,gBAAA,EAAE,UAAU,gBAAc,CAAC;QAChD,IAAM,KAAK,GAA2B,EAAE,CAAC;QACzC,IAAM,GAAG,GAA2B,EAAE,CAAC;QACvC,IAAI,QAAQ,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE1C,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YACpB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,KAAK;gBACvB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;oBACd,CAAC,CAAC,GAAG,CAAC,IAAI,CACN,sCACE,YAAY,EAAE,UAAA,CAAC,IAAI,OAAA,KAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAvB,CAAuB,EAC1C,YAAY,EAAE,UAAA,CAAC,IAAI,OAAA,KAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAvB,CAAuB,EAC1C,GAAG,EAAE,aAAa,GAAG,KAAK,EAC1B,SAAS,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAEjC,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC;wBACV,oCAAoC;wBACpC,IAAM,OAAO,GACX,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;wBACpD,OAAO,CACL,8BAAC,cAAI,IACH,GAAG,EAAE,kBAAkB,GAAG,CAAC,EAC3B,KAAK,EAAE,CAAC,CAAC,KAAK,EACd,OAAO,EAAE,OAAO,IAEf,OAAO,CAAC,CAAC,MAAM,KAAK,UAAU;4BAC7B,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;4BACtB,CAAC,CAAC,CAAC,CAAC,MAAM,CACP,CACR,CAAC;oBACJ,CAAC,CAAC,CACC,CACN;oBACH,CAAC,CAAC,KAAK,CAAC,IAAI,CACR,8BAAC,cAAI,IACH,GAAG,EAAE,eAAe,GAAG,KAAK,EAC5B,KAAK,EAAE,CAAC,CAAC,KAAK,EACd,OAAO,EACL,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAG7D,OAAO,CAAC,CAAC,MAAM,KAAK,UAAU;wBAC7B,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;wBACtB,CAAC,CAAC,CAAC,CAAC,MAAM,CACP,CACR,CAAC;YACR,CAAC,CAAC;YACJ,CAAC,CAAC,IAAI,CAAC;QAET,OAAO,OAAO;YACZ,CAAC,CAAC,OAAO,OAAO,KAAK,UAAU;gBAC7B,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;gBACrB,CAAC;oBACG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACjB,sCACE,YAAY,EAAE,UAAA,CAAC,IAAI,OAAA,KAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAvB,CAAuB,EAC1C,YAAY,EAAE,UAAA,CAAC,IAAI,OAAA,KAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAvB,CAAuB,EAC1C,GAAG,EAAC,aAAa,EACjB,SAAS,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAEjC,KAAK,CACH,CACN,CAAC,CAAC,CAAC,IAAI;mBACL,GAAG,OACP;YACL,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAED,2BAAW,GAAX;QACQ,IAAA,KAAgC,IAAI,CAAC,KAAK,EAA7B,EAAE,gBAAA,EAAE,WAAW,iBAAc,CAAC;QACjD,OAAO,CACL,yCAAO,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,eAAe,CAAC,IACtD,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAC7B,CACT,CAAC;IACJ,CAAC;IAED,8BAAc,GAAd,UAAe,GAAgB;QACtB,IAAY,EAAE,GAAI,IAAI,CAAC,KAAK,WAAd,CAAe;QAC7B,IAAA,UAAU,GAA8B,GAAG,WAAjC,EAAE,WAAW,GAAiB,GAAG,YAApB,EAAE,WAAW,GAAI,GAAG,YAAP,CAAQ;QACnD,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAEpC,IAAM,SAAS,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC;QACxC,IAAI,UAAU,GAAG,CAAC,EAAE;YAClB,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;SACjC;aAAM;YACL,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACpC;QAED,IAAM,UAAU,GAAG,EAAE,CAAC,kBAAkB,CAAC,CAAC;QAC1C,IAAI,UAAU,GAAG,WAAW,GAAG,WAAW,EAAE;YAC1C,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;SAClC;aAAM;YACL,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACrC;IACH,CAAC;IAED,oCAAoB,GAApB,UAAqB,KAA6B;QAChD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,uBAAO,GAAP,UAAQ,KAAiB;QACjB,IAAA,KACJ,KAAoD,EAD/C,aAAa,mBAAA,EAAE,MAAM,YAC0B,CAAC;QACvD,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,aAAa,CAAC;gBACjB,MAAM,EAAE,aAAa;gBACrB,UAAU,EAAE,aAAa,CAAC,UAAU,GAAG,MAAM;aAC9C,CAAC,CAAC;YAEH,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB;IACH,CAAC;IAED,6BAAa,GAAb,UAAc,KAAoD;QAChE,IAAM,aAAa,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAE5D,IAAA,MAAM,GAAgB,KAAK,OAArB,EAAE,UAAU,GAAI,KAAK,WAAT,CAAU;QAEnC,aAAa,CAAC,OAAO,CAAC,UAAA,GAAG;YACvB,IAAM,OAAO,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC;YACnC,IAAI,OAAO,IAAI,OAAO,KAAK,MAAM,EAAE;gBACjC,OAAO,CAAC,UAAU,GAAG,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC;aACtD;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,6BAAa,GAAb;QACQ,IAAA,KAA4B,IAAI,CAAC,KAAK,EAAzB,EAAE,gBAAA,EAAE,OAAO,aAAc,CAAC;QAC7C,OAAO,CACL,uCAAK,SAAS,EAAE,EAAE,CAAC,eAAe,CAAC,IAChC,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,8BAAC,iBAAO,OAAW,CAAC,CAAC,CAAC,OAAO,CACzD,CACP,CAAC;IACJ,CAAC;IAED,2BAAW,GAAX;QACQ,IAAA,KAMF,IAAI,CAAC,KAAK,EALZ,MAAM,YAAA,EACN,WAAW,iBAAA,EACX,OAAO,aAAA,EACP,UAAU,gBAAA,EACE,EAAE,gBACF,CAAC;QAEf,qCAAqC;QACrC,IAAM,UAAU,GAAG,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC;QAEtC,OAAO,CACL,uCACE,GAAG,EAAE,IAAI,CAAC,UAAU,EACpB,SAAS,EAAE,EAAE,CAAC,eAAe,CAAC,EAC9B,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAC,QAAQ,EAAE,aAAa,EAAC,CAAC,CAAC,CAAC,EAAE;YAElD,yCACE,KAAK,EACH,UAAU;oBACR,CAAC,CAAC,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,WAAW,EAAE,OAAO,EAAC;oBAChD,CAAC,CAAC,EAAC,WAAW,EAAE,MAAM,EAAC,EAE3B,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC;gBAE3B,IAAI,CAAC,cAAc,EAAE;gBACrB,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI;gBACtC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI;gBACpC,CAAC,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAC9C;YACP,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAClC,CACP,CAAC;IACJ,CAAC;IAED,uCAAuB,GAAvB;;QACQ,IAAA,KAMF,IAAI,CAAC,KAAK,EALZ,MAAM,YAAA,EACN,WAAW,iBAAA,EACX,MAAM,YAAA,EACN,UAAU,gBAAA,EACE,EAAE,gBACF,CAAC;QAEf,IAAM,KAAK,GAAG,EAAC,QAAQ,EAAE,QAAQ,EAAC,CAAC;QACnC,IAAI,CAAC,CAAC,MAAM,EAAE;YACZ,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAC,GAAG,EAAE,CAAC,EAAC,CAAC,CAAC;SAChC;QAED,IAAM,UAAU,GAAG,EAAE,CAAC;QACtB,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;YACpC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE;gBACxB,KAAK,EAAE,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM;gBACpD,WAAW,EAAE,OAAO;aACrB,CAAC,CAAC;SACJ;QAED,OAAO,CACL,uCACE,GAAG,EAAE,IAAI,CAAC,SAAS,EACnB,SAAS,EAAE,EAAE,CAAC,cAAc;gBAC1B,GAAC,EAAE,CAAC,qBAAqB,CAAC,IAAG,CAAC,CAAC,MAAM;oBACrC,EACF,KAAK,EAAE,KAAK;YAEZ,yCAAO,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,UAAU;gBACnD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;gBACzC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI;gBACtC,WAAW,CAAC,CAAC,CAAC,CACb,6CAAQ,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAS,CACpD,CAAC,CAAC,CAAC,IAAI,CACF,CACJ,CACP,CAAC;IACJ,CAAC;IAED,qCAAqB,GAArB;QACQ,IAAA,KAA2B,IAAI,CAAC,KAAK,EAApC,MAAM,YAAA,EAAc,EAAE,gBAAc,CAAC;QAE5C,IAAM,KAAK,GAAG,EAAE,CAAC;QACjB,IAAM,UAAU,GAAG,EAAE,CAAC;QACtB,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;YACpC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;gBACnB,QAAQ,EAAE,aAAa;gBACvB,SAAS,EAAE,MAAM,CAAC,CAAC;aACpB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE;gBACxB,KAAK,EAAE,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM;gBACpD,WAAW,EAAE,OAAO;aACrB,CAAC,CAAC;SACJ;QAED,OAAO,CACL,uCAAK,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK;YAC/D,yCAAO,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,UAAU;gBACnD,IAAI,CAAC,cAAc,EAAE;gBACrB,IAAI,CAAC,WAAW,EAAE,CACb,CACJ,CACP,CAAC;IACJ,CAAC;IAED,qCAAqB,GAArB;QACQ,IAAA,KAA2B,IAAI,CAAC,KAAK,EAApC,MAAM,YAAA,EAAc,EAAE,gBAAc,CAAC;QAE5C,OAAO,CACL,uCACE,GAAG,EAAE,IAAI,CAAC,OAAO,EACjB,SAAS,EAAE,EAAE,CAAC,eAAe,CAAC,EAC9B,KAAK,EAAE,EAAC,QAAQ,EAAE,QAAQ,EAAC;YAE3B,yCACE,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,EAC5B,KAAK,EAAE,EAAC,KAAK,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,CAAC,IAAG,IAAI,IAAI,MAAM,EAAE,WAAW,EAAE,OAAO,EAAC,IAE/D,IAAI,CAAC,WAAW,EAAE,CACb,CACJ,CACP,CAAC;IACJ,CAAC;IAED,iCAAiB,GAAjB;QACQ,IAAA,KAAyC,IAAI,CAAC,KAAK,EAAlD,WAAW,iBAAA,EAAE,OAAO,aAAA,EAAc,EAAE,gBAAc,CAAC;QAE1D,OAAO,CACL,uCAAK,SAAS,EAAE,EAAE,CAAC,iBAAiB,CAAC;YAClC,IAAI,CAAC,uBAAuB,EAAE;YAC9B,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,IAAI;YAC9C,CAAC,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,IAAI;YAC7D,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAClC,CACP,CAAC;IACJ,CAAC;IAED,sBAAM,GAAN;;QACQ,IAAA,KAWF,IAAI,CAAC,KAAK,EAVZ,KAAK,WAAA,EACL,MAAM,YAAA,EACN,SAAS,eAAA,EACT,MAAM,YAAA,EACN,IAAI,UAAA,EACJ,QAAQ,cAAA,EACR,SAAS,eAAA,EACT,OAAO,aAAA,EACP,MAAM,YAAA,EACM,EAAE,gBACF,CAAC;QAEf,uBAAuB;QACvB,IAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAClC,UAAA,IAAI,IAAI,OAAA,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAA,qBAAY,EAAC,IAAI,CAAC,UAAU,CAAC,EAAlD,CAAkD,CAC3D,CAAC;QAEF,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAE5D,YAAY;QACZ,IAAM,UAAU,GAAG,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC;QACtC,YAAY;QACZ,IAAM,UAAU,GAAG,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC;QAEtC,OAAO,CACL,uCACE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAClB,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS;gBACjC,GAAC,EAAE,CAAC,yBAAyB,CAAC,IAAG,UAAU;gBAC3C,GAAC,EAAE,CAAC,gBAAS,IAAI,CAAE,CAAC,IAAG,IAAI;gBAC3B,GAAC,EAAE,CAAC,gBAAgB,CAAC,IAAG,QAAQ;gBAChC,GAAC,EAAE,CAAC,iBAAiB,CAAC,IAAG,SAAS;oBAClC;YAED,KAAK,CAAC,CAAC,CAAC,CACP,uCAAK,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,IAC9B,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAC1C,CACP,CAAC,CAAC,CAAC,IAAI;YAEP,UAAU,IAAI,MAAM,CAAC,CAAC,CAAC,CACtB,IAAI,CAAC,iBAAiB,EAAE,CACzB,CAAC,CAAC,CAAC,CACF,uCAAK,SAAS,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAG,IAAI,CAAC,WAAW,EAAE,CAAO,CAClE;YAEA,MAAM,CAAC,CAAC,CAAC,CACR,uCAAK,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,IAC/B,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAC7C,CACP,CAAC,CAAC,CAAC,IAAI,CACJ,CACP,CAAC;IACJ,CAAC;IAzmDM,kBAAY,GAAG;QACpB,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,EAAE;QACb,UAAU,EAAE,EAAE;QACd,OAAO,EAAE,EAAE;QACX,UAAU,EAAE,EAAE;QACd,WAAW,EAAE,MAAM;QACnB,UAAU,EAAE,IAAI;KACjB,CAAC;IAkmDJ,YAAC;CAAA,AA3mDD,CAA2B,eAAK,CAAC,aAAa,GA2mD7C;AA3mDY,sBAAK;AA6mDlB,kBAAe,IAAA,iBAAS,EAAC,IAAA,mBAAU,EAAC,KAAK,CAAC,CAAC,CAAC",
         | 
| 9 | 
            +
                "mappings": "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",
         | 
| 10 10 | 
             
                "sourcesContent": [
         | 
| 11 | 
            -
                    "/**\n * @file Table\n * @author fex\n */\n\nimport React from 'react';\nimport {findDOMNode} from 'react-dom';\nimport findLastIndex from 'lodash/findLastIndex';\nimport find from 'lodash/find';\nimport isEqual from 'lodash/isEqual';\nimport filter from 'lodash/filter';\nimport intersection from 'lodash/intersection';\nimport cloneDeep from 'lodash/cloneDeep';\nimport Sortable from 'sortablejs';\n\nimport {themeable, ClassNamesFn, ThemeProps} from '../../theme';\nimport {localeable, LocaleProps} from '../../locale';\nimport {isObject, isBreakpoint, guid} from '../../utils/helper';\nimport {Icon} from '../icons';\nimport CheckBox from '../Checkbox';\nimport Spinner from '../Spinner';\n\nimport HeadCellSort from './HeadCellSort';\nimport HeadCellFilter from './HeadCellFilter';\nimport HeadCellSelect from './HeadCellSelect';\nimport Cell from './Cell';\n\nexport interface ColumnProps {\n  title: string | React.ReactNode | Function;\n  key: string;\n  className?: string;\n  children?: Array<ColumnProps>;\n  render: Function;\n  fixed?: boolean | string;\n  width?: number | string;\n  sorter?: (a: any, b: any) => number | boolean; // 设置为true时,执行onSort,否则执行前端排序\n  sortOrder?: string; // 升序ascend、降序descend\n  filters?: Array<any>; // 筛选数据源,配置了数据源才展示\n  filterMode?: string; // menu/tree 默认menu 先只支持menu\n  filterMultiple?: boolean; // 是否支持多选\n  filteredValue?: Array<string>;\n  filtered?: boolean;\n  filterDropdown?: Function | React.ReactNode; // 列筛选 filterDropdown的优先级更高 和filters两者不能并存\n  align?: string; // left/right/center\n  breakpoint?: '*' | 'xs' | 'sm' | 'md' | 'lg';\n}\n\nexport interface ThProps extends ColumnProps {\n  rowSpan: number;\n  colSpan: number;\n  groupId: string; // 随机生成表头分组的id\n  depth: number; // 表头分组层级\n}\n\nexport interface TdProps extends ColumnProps {\n  rowSpan: number;\n  colSpan: number;\n  groupId: string; // 随机生成表头分组的id\n}\n\nexport interface RowSelectionOptionProps {\n  key: string;\n  text: string;\n  onSelect: Function;\n}\n\nexport interface RowSelectionProps {\n  type: string;\n  rowClick: boolean; // 点击复选框选中还是点击整行选中\n  fixed: boolean; // 只能固定在左边\n  selectedRowKeys: Array<string | number>;\n  keyField?: string; // 默认是key,可自定义\n  columnWidth?: number;\n  selections?: Array<RowSelectionOptionProps>;\n  onChange?: Function;\n  getCheckboxProps: Function;\n}\n\nexport interface ExpandableProps {\n  expandedRowKeys?: Array<string | number>;\n  keyField: string; // 默认是key,可自定义\n  columnWidth?: number;\n  rowExpandable: Function;\n  defaultExpandedRowKeys?: Array<string | number>;\n  onExpand?: Function;\n  onExpandedRowsChange?: Function;\n  expandedRowRender?: Function;\n  expandedRowClassName?: Function;\n  expandIcon?: Function;\n  fixed?: boolean;\n}\n\nexport interface SummaryProps {\n  colSpan: number; // 手动控制列合并 先不支持列合并\n  fixed: string | boolean; // 手动设置左固定还是右固定\n  render: Function | React.ReactNode;\n}\n\nexport interface OnRowProps {\n  onRowMouseEnter?: Function;\n  onRowMouseLeave?: Function;\n  onRowClick?: Function;\n}\n\nexport interface SortProps {\n  orderBy: string;\n  order: string;\n}\n\nexport interface TableProps extends ThemeProps, LocaleProps {\n  title: string | React.ReactNode | Function;\n  footer: string | React.ReactNode | Function;\n  className?: string;\n  dataSource: Array<any>;\n  classnames: ClassNamesFn;\n  columns: Array<ColumnProps>;\n  scroll?: ScrollProps;\n  rowSelection?: RowSelectionProps;\n  onSort?: Function;\n  expandable?: ExpandableProps;\n  bordered?: boolean;\n  size?: string; // large | default | small\n  headSummary?:\n    | Function\n    | React.ReactNode\n    | Array<SummaryProps | Array<SummaryProps>>;\n  footSummary?:\n    | Function\n    | React.ReactNode\n    | Array<SummaryProps | Array<SummaryProps>>;\n  draggable?: boolean;\n  onDrag?: Function;\n  resizable?: boolean; // 列宽调整\n  placeholder?: string | React.ReactNode | Function; // 数据为空展示\n  loading?: boolean | string | React.ReactNode; // 数据加载中\n  sticky?: boolean; // 粘性头部\n  onFilter?: Function; // 筛选/过滤函数\n  childrenColumnName?: string; // 控制数据源哪一列作为嵌套数据,不想支持,就随便设置一个不存在的值,默认是children\n  keyField?: string; // 展开嵌套数据的时候,用哪个字段做唯一标识\n  indentSize: number; // 树形展示时 设置缩进值\n  onRow?: OnRowProps; // 行操作事件\n  rowClassName?: Function;\n  lineHeight?: string; // 可设置large、middle固定高度,不设置则跟随内容\n  showHeader?: boolean; // 是否展示表头\n  onSelect?: Function;\n  onSelectAll?: Function;\n}\n\nexport interface ScrollProps {\n  x: number | string | true;\n  y: number | string;\n}\n\nexport interface TableState {\n  selectedRowKeys: Array<string | number>;\n  dataSource: Array<any>;\n  expandedRowKeys: Array<string | number>;\n  colWidths: Array<number>;\n}\n\nfunction getMaxLevelThRowSpan(columns: Array<ColumnProps>) {\n  let maxLevel = 0;\n\n  Array.isArray(columns) &&\n    columns.forEach(c => {\n      const level = getThRowSpan(c);\n      if (maxLevel < level) {\n        maxLevel = level;\n      }\n    });\n\n  return maxLevel;\n}\n\nfunction getThRowSpan(column: ColumnProps) {\n  if (!column.children || (column.children && !column.children.length)) {\n    return 1;\n  }\n\n  return 1 + getMaxLevelThRowSpan(column.children);\n}\n\nfunction getThColSpan(column: ColumnProps) {\n  if (!column.children || (column.children && !column.children.length)) {\n    return 1;\n  }\n\n  let childrenLength = 0;\n  column.children.forEach(item => (childrenLength += getThColSpan(item)));\n\n  return childrenLength;\n}\n\nfunction buildColumns(\n  columns: Array<ColumnProps> = [],\n  thColumns: Array<Array<any>>,\n  tdColumns: Array<ColumnProps> = [],\n  depth: number = 0,\n  id?: string,\n  fixed?: boolean | string\n) {\n  const maxLevel = getMaxLevelThRowSpan(columns);\n  // 在处理表头时,如果父级column设置了fixed属性,那么所有children保持一致\n  Array.isArray(columns) &&\n    columns.forEach(column => {\n      const groupId = id || guid();\n      let childMaxLevel = 0;\n      if (column.children) {\n        childMaxLevel = getMaxLevelThRowSpan(column.children);\n      }\n      const newColumn = {\n        ...column,\n        rowSpan: childMaxLevel ? 1 : maxLevel - childMaxLevel + depth,\n        colSpan: getThColSpan(column),\n        groupId,\n        depth\n      };\n      const tdColumn = {\n        ...column,\n        groupId\n      };\n      if (fixed) {\n        newColumn.fixed = fixed;\n        tdColumn.fixed = fixed;\n      }\n\n      if (!thColumns[depth]) {\n        thColumns[depth] = [];\n      }\n      thColumns[depth].push(newColumn);\n      if (column.children && column.children.length > 0) {\n        buildColumns(\n          column.children,\n          thColumns,\n          tdColumns,\n          depth + 1,\n          groupId,\n          column.fixed\n        );\n      } else {\n        const {children, ...rest} = tdColumn;\n        tdColumns.push(rest);\n      }\n    });\n}\n\nfunction isFixedLeftColumn(fixed: boolean | string | undefined) {\n  return fixed === true || fixed === 'left';\n}\n\nfunction isFixedRightColumn(fixed: boolean | string | undefined) {\n  return fixed === 'right';\n}\n\nfunction getPreviousLeftWidth(\n  doms: HTMLCollection,\n  index: number,\n  columns: Array<ColumnProps>\n) {\n  let width = 0;\n  for (let i = 0; i < index; i++) {\n    if (columns && columns[i] && isFixedLeftColumn(columns[i].fixed)) {\n      const dom = doms[i] as HTMLElement;\n      width += dom.offsetWidth;\n    }\n  }\n  return width;\n}\n\nfunction getAfterRightWidth(\n  doms: HTMLCollection,\n  index: number,\n  columns: Array<ColumnProps>\n) {\n  let width = 0;\n  for (let i = doms.length - 0; i > index; i--) {\n    if (columns && columns[i] && isFixedRightColumn(columns[i].fixed)) {\n      const dom = doms[i] as HTMLElement;\n      width += dom.offsetWidth;\n    }\n  }\n  return width;\n}\n\nfunction hasFixedColumn(columns: Array<ColumnProps>) {\n  return find(columns, column => column.fixed);\n}\n\nfunction getSummaryColumns(summary: Array<SummaryProps>) {\n  if (!summary) {\n    return [];\n  }\n  const last: Array<SummaryProps> = [];\n  const first: Array<SummaryProps> = [];\n  summary.forEach(item => {\n    if (isObject(item)) {\n      first.push(item);\n    } else if (Array.isArray(item)) {\n      last.push(item);\n    }\n  });\n  return [first, ...last];\n}\n\nconst DefaultCellWidth = 40;\n\nexport class Table extends React.PureComponent<TableProps, TableState> {\n  static defaultProps = {\n    title: '',\n    className: '',\n    dataSource: [],\n    columns: [],\n    indentSize: 15,\n    placeholder: '暂无数据',\n    showHeader: true\n  };\n\n  constructor(props: TableProps) {\n    super(props);\n\n    this.selectedRows = props.rowSelection\n      ? this.getSelectedRows(\n          props.dataSource,\n          props.rowSelection?.selectedRowKeys\n        )\n      : [];\n\n    this.state = {\n      selectedRowKeys: props.rowSelection\n        ? props.rowSelection.selectedRowKeys.map(key => key) || []\n        : [],\n      dataSource: props.dataSource || [], // 为了支持前端搜索\n      expandedRowKeys: [\n        ...(props.expandable ? props.expandable.expandedRowKeys || [] : []),\n        ...(props.expandable\n          ? props.expandable.defaultExpandedRowKeys || []\n          : [])\n      ],\n      colWidths: []\n    };\n\n    this.onTableContentScroll = this.onTableContentScroll.bind(this);\n    this.getPopOverContainer = this.getPopOverContainer.bind(this);\n  }\n\n  getPopOverContainer() {\n    return findDOMNode(this);\n  }\n\n  // 表头配置\n  thColumns: Array<Array<ThProps>>;\n  // 表格配置\n  tdColumns: Array<TdProps>;\n  // 表格当前选中行\n  selectedRows: Array<any>;\n  // 拖拽排序\n  sortable: Sortable;\n  // 记录点击起始横坐标\n  resizeStart: number;\n  resizeKey: string;\n\n  tableDom: React.RefObject<HTMLDivElement> = React.createRef();\n  theadDom: React.RefObject<HTMLTableSectionElement> = React.createRef();\n  tbodyDom: React.RefObject<HTMLTableSectionElement> = React.createRef();\n  contentDom: React.RefObject<HTMLDivElement> = React.createRef();\n  headerDom: React.RefObject<HTMLDivElement> = React.createRef();\n  bodyDom: React.RefObject<HTMLDivElement> = React.createRef();\n  tfootDom: React.RefObject<HTMLTableSectionElement> = React.createRef();\n  footDom: React.RefObject<HTMLDivElement> = React.createRef();\n\n  getColWidths() {\n    const childrens = this.tbodyDom.current?.children[0]?.children || [];\n    const colWidths: Array<any> = new Array(childrens ? childrens.length : 0);\n\n    for (let i = 0; i < childrens.length; i++) {\n      const child: any = childrens[i];\n      colWidths[i] = child ? child.offsetWidth : null;\n    }\n\n    return colWidths;\n  }\n\n  getSelectedRows(\n    dataSource: Array<any>,\n    selectedRowKeys: Array<string | number>\n  ) {\n    const selectedRows: Array<any> = [];\n    dataSource.forEach(data => {\n      if (\n        find(\n          selectedRowKeys,\n          key => key === data[this.getRowSelectionKeyField()]\n        )\n      ) {\n        selectedRows.push(data);\n      }\n    });\n\n    return selectedRows;\n  }\n\n  updateTableBodyFixed() {\n    const tbodyDom = this.tbodyDom && (this.tbodyDom.current as HTMLElement);\n    const tdColumns = [...this.tdColumns];\n    this.updateTbodyFixedRow(tbodyDom, tdColumns);\n    this.updateHeadSummaryFixedRow(tbodyDom);\n  }\n\n  updateColWidths() {\n    this.setState({colWidths: this.getColWidths()}, () => {\n      if (hasFixedColumn(this.props.columns)) {\n        const theadDom =\n          this.theadDom && (this.theadDom.current as HTMLElement);\n        const thColumns = this.thColumns;\n        this.updateTheadFixedRow(theadDom, thColumns);\n        this.updateTableBodyFixed();\n      }\n    });\n  }\n\n  componentDidMount() {\n    if (this.props.loading) {\n      return;\n    }\n\n    if (hasFixedColumn(this.props.columns)) {\n      const headerDom =\n        this.headerDom && (this.headerDom.current as HTMLElement);\n      if (headerDom) {\n        const headerBody = headerDom.getElementsByTagName('tbody');\n        headerBody &&\n          headerBody[0] &&\n          this.updateHeadSummaryFixedRow(headerBody[0]);\n      }\n\n      const tfootDom = this.tfootDom && (this.tfootDom.current as HTMLElement);\n      tfootDom && this.updateFootSummaryFixedRow(tfootDom);\n    }\n\n    let current = null;\n    if (this.contentDom && this.contentDom.current) {\n      current = this.contentDom.current;\n      current.addEventListener('scroll', this.onTableContentScroll.bind(this));\n    } else {\n      current = this.headerDom?.current;\n\n      // overflow设置为hidden的情况\n      const hiddenDomRefs = [this.headerDom, this.footDom];\n      hiddenDomRefs.forEach(\n        ref =>\n          ref &&\n          ref.current &&\n          ref.current.addEventListener('wheel', this.onWheel.bind(this))\n      );\n      // 横向同步滚动\n      const scrollDomRefs = [this.bodyDom];\n      scrollDomRefs.forEach(\n        ref =>\n          ref &&\n          ref.current &&\n          ref.current.addEventListener('scroll', this.onTableScroll.bind(this))\n      );\n    }\n    current && this.updateTableDom(current);\n\n    if (this.props.draggable) {\n      this.initDragging();\n    }\n\n    if (this.props.resizable) {\n      this.theadDom.current?.addEventListener(\n        'mouseup',\n        this.onResizeMouseUp.bind(this)\n      );\n    }\n\n    this.updateStickyHeader();\n\n    this.updateColWidths();\n  }\n\n  componentDidUpdate(prevProps: TableProps, prevState: TableState) {\n    // 数据源发生了变化\n    if (!isEqual(prevProps.dataSource, this.props.dataSource)) {\n      this.setState({dataSource: [...this.props.dataSource]}, () =>\n        this.updateColWidths()\n      ); // 异步加载数据需求再更新一次\n    }\n\n    // 选择项发生了变化触发\n    if (!isEqual(prevState.selectedRowKeys, this.state.selectedRowKeys)) {\n      // 更新保存的已选择行数据\n      this.selectedRows = this.getSelectedRows(\n        this.state.dataSource,\n        this.state.selectedRowKeys\n      );\n\n      const {rowSelection} = this.props;\n      rowSelection &&\n        rowSelection.onChange &&\n        rowSelection.onChange(this.state.selectedRowKeys, this.selectedRows);\n\n      this.setState({\n        selectedRowKeys: this.state.selectedRowKeys.filter(\n          (key, i, a) => a.indexOf(key) === i\n        )\n      });\n    }\n\n    // 外部传入的选择项发生了变化\n    if (\n      !isEqual(\n        prevProps.rowSelection?.selectedRowKeys,\n        this.props.rowSelection?.selectedRowKeys\n      )\n    ) {\n      if (this.props.rowSelection) {\n        this.setState({\n          selectedRowKeys: this.props.rowSelection.selectedRowKeys\n        });\n        this.selectedRows = this.getSelectedRows(\n          this.state.dataSource,\n          this.state.selectedRowKeys\n        );\n      }\n    }\n\n    // 外部传入的展开项发生了变化\n    if (\n      !isEqual(\n        prevProps?.expandable?.expandedRowKeys,\n        this.props.expandable?.expandedRowKeys\n      )\n    ) {\n      if (this.props.expandable) {\n        this.setState({\n          expandedRowKeys: this.props.expandable.expandedRowKeys || []\n        });\n      }\n    }\n\n    // 展开行变化时触发\n    if (!isEqual(prevState.expandedRowKeys, this.state.expandedRowKeys)) {\n      if (this.props.expandable) {\n        const {onExpandedRowsChange, keyField} = this.props.expandable;\n        const expandedRows: Array<any> = [];\n        this.state.dataSource.forEach(item => {\n          if (\n            find(\n              this.state.expandedRowKeys,\n              key => key == item[keyField || 'key']\n            )\n          ) {\n            expandedRows.push(item);\n          }\n        });\n        onExpandedRowsChange && onExpandedRowsChange(expandedRows);\n      }\n    }\n\n    // sticky属性发生了变化\n    if (prevProps.sticky !== this.props.sticky) {\n      this.updateStickyHeader();\n    }\n  }\n\n  componentWillUnmount() {\n    this.contentDom &&\n      this.contentDom.current &&\n      this.contentDom.current.removeEventListener(\n        'scroll',\n        this.onTableContentScroll.bind(this)\n      );\n\n    const hiddenDomRefs = [this.headerDom, this.footDom];\n    hiddenDomRefs.forEach(\n      ref =>\n        ref &&\n        ref.current &&\n        ref.current.removeEventListener('wheel', this.onWheel.bind(this))\n    );\n\n    const scrollDomRefs = [this.bodyDom];\n    scrollDomRefs.forEach(\n      ref =>\n        ref &&\n        ref.current &&\n        ref.current.removeEventListener('scroll', this.onTableScroll.bind(this))\n    );\n\n    this.destroyDragging();\n  }\n\n  exchange(fromIndex: number, toIndex: number, item: any) {\n    const {scroll, headSummary} = this.props;\n    // 如果有头部总结行 fromIndex就会+1\n    if ((!scroll || (scroll && !scroll.y)) && headSummary) {\n      fromIndex = fromIndex - 1;\n    }\n\n    const index = toIndex - fromIndex;\n\n    const levels = item.getAttribute('row-levels');\n    const rowIndex = +item.getAttribute('row-index');\n\n    const dataSource = cloneDeep(this.state.dataSource);\n    const levelsArray = levels ? levels.split(',') : [];\n    const childrenColumnName = this.getChildrenColumnName();\n    let data: Array<any> = dataSource;\n    let i = 0;\n    while (i < levelsArray.length) {\n      data = data[levelsArray[i]][childrenColumnName];\n      i++;\n    }\n\n    if (data && data.length > 0) {\n      const row = cloneDeep(data[rowIndex]);\n      data.splice(rowIndex, 1);\n      data.splice(rowIndex + index, 0, row);\n    }\n\n    return data;\n  }\n\n  initDragging() {\n    const {classnames: cx, onDrag} = this.props;\n\n    this.sortable = new Sortable(this.tbodyDom.current as HTMLElement, {\n      group: 'table',\n      animation: 150,\n      handle: `.${cx('Table-dragCell')}`,\n      ghostClass: 'is-dragging',\n      onMove: (e: any) => {\n        const dragged = e.dragged;\n        const related = e.related;\n\n        if (\n          related &&\n          related.classList.contains(`${cx('Table-summary-row')}`)\n        ) {\n          return false;\n        }\n\n        const draggedLevels = dragged.getAttribute('row-levels');\n        const relatedLevels = related.getAttribute('row-levels');\n\n        // 嵌套展示 不属于同一层的 不允许拖动\n        // 否则涉及到试图的更新,比如子元素都被拖完了\n        if (draggedLevels !== relatedLevels) {\n          return false;\n        }\n\n        return true;\n      },\n      onEnd: async (e: any) => {\n        // 没有移动\n        if (e.newIndex === e.oldIndex) {\n          return;\n        }\n\n        const {onDrag} = this.props;\n        if (onDrag) {\n          const data = this.exchange(e.oldIndex, e.newIndex, e.item);\n          const prevented = await onDrag(data);\n          if (prevented) {\n            return;\n          }\n        }\n      }\n    });\n  }\n\n  destroyDragging() {\n    this.sortable && this.sortable.destroy();\n  }\n\n  updateStickyHeader() {\n    if (this.props.sticky) {\n      // 如果设置了sticky 如果父元素设置了overflow: auto top值还需要考虑padding值\n      let parent = this.headerDom?.current?.parentElement;\n      setTimeout(() => {\n        while (\n          parent &&\n          window.getComputedStyle(parent, null).getPropertyValue('overflow') !==\n            'auto'\n        ) {\n          parent = parent.parentElement;\n        }\n        if (\n          parent &&\n          window.getComputedStyle(parent, null).getPropertyValue('overflow') ===\n            'auto'\n        ) {\n          const paddingTop = window\n            .getComputedStyle(parent, null)\n            .getPropertyValue('padding-top');\n          if (paddingTop && this.headerDom && this.headerDom.current) {\n            this.headerDom.current.style.top = '-' + paddingTop;\n          }\n        }\n      });\n    }\n  }\n\n  // 更新一个tr下的td的left和class\n  updateFixedRow(row: HTMLElement, columns: Array<ColumnProps>) {\n    const {classnames: cx} = this.props;\n\n    const children = row.children;\n    for (let i = 0; i < children.length; i++) {\n      const dom = children[i] as HTMLElement;\n      const fixed = columns[i] ? columns[i].fixed || '' : '';\n      if (isFixedLeftColumn(fixed)) {\n        dom.style.left =\n          i > 0 ? getPreviousLeftWidth(children, i, columns) + 'px' : '0';\n      } else if (isFixedRightColumn(fixed)) {\n        dom.style.right =\n          i < children.length - 1\n            ? getAfterRightWidth(children, i, columns) + 'px'\n            : '0';\n      }\n    }\n    // 最后一个左fixed的添加样式\n    let leftIndex = findLastIndex(columns, column =>\n      isFixedLeftColumn(column.fixed)\n    );\n    if (leftIndex > -1) {\n      children[leftIndex]?.classList.add(cx('Table-cell-fix-left-last'));\n    }\n    // 第一个右fixed的添加样式\n    let rightIndex = columns.findIndex(column =>\n      isFixedRightColumn(column.fixed)\n    );\n    if (rightIndex > -1) {\n      children[rightIndex]?.classList.add(cx('Table-cell-fix-right-first'));\n      if (rightIndex > 0) {\n        children[rightIndex - 1]?.classList.add(\n          cx('Table-cell-fix-right-first-prev')\n        );\n      }\n    }\n  }\n\n  // 在可选、可展开、可拖拽的情况下,补充column,方便fix处理\n  prependColumns(columns: Array<any>) {\n    const {rowSelection, expandable, draggable} = this.props;\n    if (draggable) {\n      columns.unshift({});\n    } else {\n      if (expandable) {\n        columns.unshift(expandable);\n      }\n      if (rowSelection) {\n        columns.unshift(rowSelection);\n      }\n    }\n  }\n\n  updateTheadFixedRow(thead: HTMLElement, columns: Array<any>) {\n    const children = thead.children;\n    for (let i = 0; i < children.length; i++) {\n      const cols = [...columns[i]];\n      if (i === 0) {\n        this.prependColumns(cols);\n      }\n\n      this.updateFixedRow(children[i] as HTMLElement, cols);\n    }\n  }\n\n  updateTbodyFixedRow(tbody: HTMLElement, columns: Array<any>) {\n    const {classnames: cx} = this.props;\n    const children = filter(\n      tbody.children,\n      child =>\n        !child.classList.contains(cx('Table-summary-row')) &&\n        !child.classList.contains(cx('Table-empty-row'))\n    );\n    this.prependColumns(columns);\n    for (let i = 0; i < children.length; i++) {\n      this.updateFixedRow(children[i] as HTMLElement, columns);\n    }\n  }\n\n  updateSummaryFixedRow(\n    children: HTMLCollection | Array<Element>,\n    columns: Array<any>\n  ) {\n    for (let i = 0; i < children.length; i++) {\n      this.updateFixedRow(children[i] as HTMLElement, columns[i]);\n    }\n  }\n\n  updateFootSummaryFixedRow(tfoot: HTMLElement) {\n    const {footSummary} = this.props;\n    if (Array.isArray(footSummary)) {\n      const columns = getSummaryColumns(footSummary as Array<SummaryProps>);\n      this.updateSummaryFixedRow(tfoot.children, columns);\n    }\n  }\n\n  updateHeadSummaryFixedRow(tbody: HTMLElement) {\n    const {headSummary, classnames: cx} = this.props;\n    if (Array.isArray(headSummary)) {\n      const columns = getSummaryColumns(headSummary as Array<SummaryProps>);\n      const children = filter(tbody.children, child =>\n        child.classList.contains(cx('Table-summary-row'))\n      );\n      this.updateSummaryFixedRow(children, columns);\n    }\n  }\n\n  renderColGroup(colWidths?: Array<number>) {\n    const {rowSelection, classnames: cx, expandable, draggable} = this.props;\n\n    const tdColumns = this.tdColumns;\n    const isExpandable = this.isExpandableTable();\n    const extraCount = this.getExtraColumnCount();\n\n    return (\n      <colgroup>\n        {draggable ? (\n          <col\n            className={cx('Table-drag-col')}\n            style={{width: DefaultCellWidth + 'px'}}\n          ></col>\n        ) : null}\n        {!draggable && rowSelection ? (\n          <col\n            className={cx('Table-selection-col')}\n            style={{\n              width: (rowSelection.columnWidth || DefaultCellWidth) + 'px'\n            }}\n          ></col>\n        ) : null}\n        {!draggable && isExpandable ? (\n          <col\n            className={cx('Table-expand-col')}\n            style={{\n              width: (expandable?.columnWidth || DefaultCellWidth) + 'px'\n            }}\n          ></col>\n        ) : null}\n        {tdColumns.map((data, index) => {\n          const width = colWidths ? colWidths[index + extraCount] : data.width;\n          return (\n            <col\n              key={index}\n              style={{width: typeof width === 'number' ? width + 'px' : width}}\n              className={\n                data.className ? cx(`Table-colgroup-${data.className}`) : ''\n              }\n            ></col>\n          );\n        })}\n      </colgroup>\n    );\n  }\n\n  onResizeMouseDown(event: React.MouseEvent<any>, key: string) {\n    // 点击记录起始坐标\n    this.resizeStart = event.clientX;\n    // 记录点击的列名\n    this.resizeKey = key;\n    event && event.stopPropagation();\n  }\n\n  onResizeMouseUp(event: React.MouseEvent<any>) {\n    // 点击了调整列宽\n    if (this.resizeStart && this.resizeKey) {\n      // 计算横向移动距离\n      const distance = event.clientX - this.resizeStart;\n      const tdColumns = [...this.tdColumns];\n      let index =\n        tdColumns.findIndex(c => c.key === this.resizeKey) +\n        this.getExtraColumnCount();\n\n      const colGroup =\n        this.tableDom.current?.getElementsByTagName('colgroup')[0];\n      let currentWidth = 0;\n      if (colGroup && colGroup.children[index]) {\n        const child = colGroup.children[index] as HTMLElement;\n        currentWidth = child.offsetWidth;\n      }\n\n      let newWidth = 0;\n      if (colGroup) {\n        let maxDistance = 0; // 最多可以移动的距离\n        // 调宽列\n        if (distance > 0) {\n          for (let i = 0; i < colGroup.children.length; i++) {\n            const child = colGroup.children[i] as HTMLElement;\n            // 自适应列 保证有一个最小宽度\n            // 如果都设置了固定宽度 那一个都拖不动\n            if (!this.tdColumns[i].width) {\n              maxDistance += child.offsetWidth - DefaultCellWidth;\n            }\n          }\n          if (colGroup.children[index]) {\n            const child = colGroup.children[index] as HTMLElement;\n            newWidth = currentWidth + Math.min(distance, maxDistance);\n            child.style.width = newWidth + 'px';\n          }\n        } else {\n          // 缩短列\n          const autoColumns = [];\n          for (let i = 0; i < colGroup.children.length; i++) {\n            const child = colGroup.children[i] as HTMLElement;\n            // 自适应列 保证有一个最小宽度\n            // 如果都设置了固定宽度 那一个都拖不动\n            if (!this.tdColumns[i].width) {\n              autoColumns.push(child);\n            }\n          }\n          maxDistance = DefaultCellWidth - currentWidth;\n          if (colGroup.children[index]) {\n            const child = colGroup.children[index] as HTMLElement;\n            newWidth = currentWidth + Math.max(distance, maxDistance);\n            child.style.width = newWidth + 'px';\n          }\n          const gap =\n            Math.abs(Math.max(distance, maxDistance)) / autoColumns.length;\n          autoColumns.forEach(c => {\n            c.style.width = c.offsetWidth + gap + 'px';\n          });\n        }\n      }\n\n      const column = find(tdColumns, c => c.key === this.resizeKey);\n      // 只有通过配置设置过的宽度保存到tdColumns\n      // 自动分配的不保存\n      // 这样可以一直调整了\n      if (column && column.width && newWidth) {\n        column.width = newWidth;\n      }\n\n      this.tdColumns = tdColumns;\n\n      this.resizeStart = 0;\n      this.resizeKey = '';\n    }\n    event && event.stopPropagation();\n  }\n\n  renderTHead() {\n    const {\n      rowSelection,\n      dataSource,\n      classnames: cx,\n      onSort,\n      expandable,\n      draggable,\n      resizable,\n      onSelectAll,\n      onFilter\n    } = this.props;\n\n    const thColumns = this.thColumns;\n    // 获取一行最多th个数\n    let maxCount = 0;\n    thColumns.forEach(columns => {\n      if (columns.length > maxCount) {\n        maxCount = columns.length;\n      }\n    });\n    const keyField = this.getRowSelectionKeyField();\n    const dataList =\n      rowSelection && rowSelection.getCheckboxProps\n        ? this.state.dataSource.filter((data, index) => {\n            const props = rowSelection.getCheckboxProps(data, index);\n            return !props.disabled;\n          })\n        : this.state.dataSource;\n\n    const isExpandable = this.isExpandableTable();\n\n    let allRowKeys: Array<string> = [];\n    let allRows: Array<any> = [];\n    dataList.forEach(data => {\n      allRowKeys.push(data[keyField]);\n      allRows.push(data);\n      if (!expandable && this.hasChildrenRow(data)) {\n        allRowKeys = [...allRowKeys, ...this.getDataChildrenKeys(data)];\n        data[this.getChildrenColumnName()].forEach((item: any) =>\n          allRows.push(item)\n        );\n      }\n    });\n\n    return (\n      <thead ref={this.theadDom} className={cx('Table-thead')}>\n        {thColumns.map((data, index) => {\n          return (\n            <tr key={'th-cell-' + index}>\n              {draggable && index === 0 ? (\n                <Cell\n                  wrapperComponent=\"th\"\n                  rowSpan={thColumns.length}\n                  className={cx('Table-dragCell')}\n                ></Cell>\n              ) : null}\n              {!draggable && rowSelection && index === 0 ? (\n                <Cell\n                  wrapperComponent=\"th\"\n                  rowSpan={thColumns.length}\n                  fixed={rowSelection.fixed ? 'left' : ''}\n                  className={cx('Table-checkCell')}\n                >\n                  {rowSelection.type !== 'radio'\n                    ? [\n                        <CheckBox\n                          key=\"checkAll\"\n                          partial={\n                            this.state.selectedRowKeys.length > 0 &&\n                            this.state.selectedRowKeys.length <\n                              allRowKeys.length\n                          }\n                          checked={this.state.selectedRowKeys.length > 0}\n                          onChange={async value => {\n                            let changeRows;\n                            if (value) {\n                              changeRows = dataList.filter(\n                                data => !this.hasCheckedRows(data)\n                              );\n                            } else {\n                              changeRows = this.selectedRows;\n                            }\n                            const selectedRows = value ? allRows : [];\n                            const selectedRowKeys = value ? allRowKeys : [];\n                            if (onSelectAll) {\n                              const prevented = await onSelectAll(\n                                value,\n                                selectedRowKeys,\n                                selectedRows,\n                                changeRows\n                              );\n                              if (prevented) {\n                                return;\n                              }\n                            }\n\n                            this.setState({selectedRowKeys});\n                          }}\n                        ></CheckBox>,\n                        rowSelection.selections &&\n                        rowSelection.selections.length > 0 ? (\n                          <HeadCellSelect\n                            key=\"checkSelection\"\n                            keys={allRowKeys}\n                            selections={rowSelection.selections}\n                            popOverContainer={this.getPopOverContainer}\n                          ></HeadCellSelect>\n                        ) : null\n                      ]\n                    : null}\n                </Cell>\n              ) : null}\n              {!draggable && isExpandable && index === 0 ? (\n                <Cell\n                  wrapperComponent=\"th\"\n                  rowSpan={thColumns.length}\n                  fixed={expandable && expandable.fixed ? 'left' : ''}\n                  className={cx('Table-row-expand-icon-cell')}\n                ></Cell>\n              ) : null}\n              {data.map((item, i) => {\n                let sort = null;\n                if (item.sorter) {\n                  sort = (\n                    <HeadCellSort\n                      column={item}\n                      onSort={\n                        onSort\n                          ? onSort\n                          : (payload: SortProps) => {\n                              if (typeof item.sorter === 'function') {\n                                if (payload.orderBy) {\n                                  const sortList = [...this.state.dataSource];\n                                  this.setState({\n                                    dataSource: sortList.sort(\n                                      item.sorter as (a: any, b: any) => number\n                                    )\n                                  });\n                                } else {\n                                  this.setState({dataSource: [...dataSource]});\n                                }\n                              }\n                            }\n                      }\n                    ></HeadCellSort>\n                  );\n                }\n\n                let filter = null;\n                if (item.filterDropdown) {\n                  filter = item.filterDropdown;\n                } else if (item.filters && item.filters.length > 0) {\n                  filter = (\n                    <HeadCellFilter\n                      column={item}\n                      popOverContainer={this.getPopOverContainer}\n                      onFilter={onFilter}\n                    ></HeadCellFilter>\n                  );\n                }\n\n                const children = (\n                  <span>\n                    {sort}\n                    {filter}\n                    {resizable ? (\n                      <i\n                        className={cx('Table-thead-resizable')}\n                        onMouseDown={e => this.onResizeMouseDown(e, item.key)}\n                      ></i>\n                    ) : null}\n                  </span>\n                );\n\n                return (\n                  <Cell\n                    wrapperComponent=\"th\"\n                    rowSpan={item.rowSpan}\n                    colSpan={item.colSpan}\n                    key={'cell' + (item.key || i)}\n                    fixed={item.fixed === true ? 'left' : item.fixed}\n                    className={cx({\n                      'Table-cell-last':\n                        i === maxCount - 1 && i === data.length - 1\n                    })}\n                    groupId={item.groupId}\n                    depth={item.depth}\n                  >\n                    {typeof item.title === 'function'\n                      ? item.title(children)\n                      : item.title}\n                  </Cell>\n                );\n              })}\n            </tr>\n          );\n        })}\n      </thead>\n    );\n  }\n\n  onRowClick(event: React.ChangeEvent<any>, record?: any, rowIndex?: number) {\n    const {rowSelection, onRow} = this.props;\n\n    if (rowSelection && rowSelection.type && rowSelection.rowClick) {\n      const defaultKey = this.getRowSelectionKeyField();\n\n      const isSelected = !!find(\n        this.state.selectedRowKeys,\n        key => key === record[defaultKey]\n      );\n\n      this.selectedSingleRow(!isSelected, record);\n    }\n\n    if (record && onRow) {\n      onRow.onRowClick && onRow.onRowClick(event, record, rowIndex);\n    }\n  }\n\n  onRowMouseEnter(\n    event: React.ChangeEvent<any>,\n    record?: any,\n    rowIndex?: number\n  ) {\n    const {classnames: cx, onRow} = this.props;\n\n    let parent = event.target;\n    while (parent && parent.tagName !== 'TR') {\n      parent = parent.parentElement;\n    }\n\n    if (parent && !parent.classList.contains(cx('Table-row-disabled'))) {\n      for (let i = 0; i < parent.children.length; i++) {\n        const td = parent.children[i];\n        td.classList.add(cx('Table-cell-row-hover')); // 保证有列fixed的时候样式一致\n      }\n    }\n\n    if (record && onRow) {\n      onRow.onRowMouseEnter && onRow.onRowMouseEnter(event, record, rowIndex);\n    }\n  }\n\n  onRowMouseLeave(\n    event: React.ChangeEvent<any>,\n    record?: any,\n    rowIndex?: number\n  ) {\n    const {classnames: cx, onRow} = this.props;\n\n    let parent = event.target;\n    while (parent && parent.tagName !== 'TR') {\n      parent = parent.parentElement;\n    }\n\n    if (parent) {\n      for (let i = 0; i < parent.children.length; i++) {\n        const td = parent.children[i];\n        td.classList.remove(cx('Table-cell-row-hover'));\n      }\n    }\n\n    if (record && onRow) {\n      onRow.onRowMouseLeave && onRow.onRowMouseLeave(event, record, rowIndex);\n    }\n  }\n\n  onExpandRow(data: any) {\n    const {expandedRowKeys} = this.state;\n    const {expandable} = this.props;\n    const key = data[this.getExpandableKeyField()];\n    this.setState({expandedRowKeys: [...expandedRowKeys, key]});\n    expandable?.onExpand && expandable?.onExpand(true, data);\n  }\n\n  onCollapseRow(data: any) {\n    const {expandedRowKeys} = this.state;\n    const {expandable} = this.props;\n    const key = data[this.getExpandableKeyField()];\n    // 还是得模糊匹配 否则'3'、3匹配不上\n    this.setState({expandedRowKeys: expandedRowKeys.filter(k => k != key)});\n    expandable?.onExpand && expandable?.onExpand(false, data);\n  }\n\n  getChildrenColumnName() {\n    const {childrenColumnName} = this.props;\n\n    return childrenColumnName || 'children';\n  }\n\n  getRowSelectionKeyField() {\n    const {rowSelection} = this.props;\n\n    return rowSelection ? rowSelection.keyField || 'key' : '';\n  }\n\n  getExpandableKeyField() {\n    const {expandable, keyField} = this.props;\n\n    return expandable?.keyField || keyField || 'key';\n  }\n\n  hasChildrenRow(data: any) {\n    const key = this.getChildrenColumnName();\n    return data[key] && Array.isArray(data[key]) && data[key].length > 0;\n  }\n\n  // 展开和嵌套不能共存\n  isExpandableRow(data: any, rowIndex: number) {\n    const {expandable} = this.props;\n\n    return (\n      expandable &&\n      expandable.rowExpandable &&\n      expandable.rowExpandable(data, rowIndex)\n    );\n  }\n\n  // 获取当前行数据所有子行的key值\n  getDataChildrenKeys(data: any) {\n    let keys: Array<string> = [];\n\n    if (this.hasChildrenRow(data)) {\n      const key = this.getChildrenColumnName();\n      data[key].forEach(\n        (item: any) =>\n          (keys = [\n            ...keys,\n            ...this.getDataChildrenKeys(item),\n            item[this.getRowSelectionKeyField()]\n          ])\n      );\n    }\n\n    return keys;\n  }\n\n  hasCheckedRows(data: any) {\n    const selectedRowKeys = this.state.selectedRowKeys;\n    const childrenKeys = this.getDataChildrenKeys(data);\n\n    return (\n      intersection(selectedRowKeys, [\n        ...childrenKeys,\n        data[this.getRowSelectionKeyField()]\n      ]).length > 0\n    );\n  }\n\n  hasCheckedChildrenRows(data: any) {\n    const selectedRowKeys = this.state.selectedRowKeys;\n    const childrenKeys = this.getDataChildrenKeys(data);\n    const length = intersection(selectedRowKeys, childrenKeys).length;\n\n    return length > 0;\n  }\n\n  getExpandedIcons(isExpanded: boolean, record: any) {\n    const {classnames: cx} = this.props;\n\n    return isExpanded ? (\n      <i\n        className={cx('Table-expandBtn', 'is-active')}\n        onClick={this.onCollapseRow.bind(this, record)}\n      >\n        <Icon icon=\"right-arrow-bold\" className=\"icon\" />\n      </i>\n    ) : (\n      <i\n        className={cx('Table-expandBtn')}\n        onClick={this.onExpandRow.bind(this, record)}\n      >\n        <Icon icon=\"right-arrow-bold\" className=\"icon\" />\n      </i>\n    );\n  }\n\n  async selectedSingleRow(value: boolean, data: any) {\n    const {rowSelection, onSelect} = this.props;\n\n    const defaultKey = this.getRowSelectionKeyField();\n    const isRadio = rowSelection && rowSelection.type === 'radio';\n\n    if (onSelect) {\n      const prevented = await onSelect(\n        data,\n        value,\n        this.selectedRows,\n        this.state.selectedRowKeys\n      );\n      if (prevented) {\n        return;\n      }\n    }\n\n    if (value) {\n      if (isRadio) {\n        this.setState({selectedRowKeys: [data[defaultKey]]});\n      } else {\n        this.setState(prevState => ({\n          selectedRowKeys: [\n            ...prevState.selectedRowKeys,\n            data[defaultKey],\n            ...this.getDataChildrenKeys(data)\n          ].filter((key, i, a) => a.indexOf(key) === i)\n        }));\n      }\n    } else {\n      if (!isRadio) {\n        this.setState({\n          selectedRowKeys: this.state.selectedRowKeys.filter(\n            key =>\n              ![data[defaultKey], ...this.getDataChildrenKeys(data)].includes(\n                key\n              )\n          )\n        });\n      }\n    }\n  }\n\n  renderRow(data: any, rowIndex: number, levels: Array<number>) {\n    const {\n      classnames: cx,\n      rowSelection,\n      expandable,\n      draggable,\n      indentSize,\n      rowClassName,\n      lineHeight // 是否设置了固定行高\n    } = this.props;\n\n    const tdColumns = this.tdColumns;\n    const isExpandable = this.isExpandableTable();\n    const defaultKey = this.getRowSelectionKeyField();\n    const colCount = this.getExtraColumnCount();\n\n    // 当前行是否可展开\n    const isExpandableRow = this.isExpandableRow(data, rowIndex);\n    // 当前行是否有children\n    const hasChildrenRow = this.hasChildrenRow(data);\n\n    const isExpanded = !!find(\n      this.state.expandedRowKeys,\n      key => key == data[this.getExpandableKeyField()]\n    ); // == 匹配 否则'3'、3匹配不上\n\n    // 设置缩进效果\n    const indentDom =\n      levels.length > 0 ? (\n        <span\n          className={cx('Table-row-indent', `indent-level-${levels.length}`)}\n          style={{paddingLeft: indentSize * levels.length + 'px'}}\n        ></span>\n      ) : null;\n\n    const cells = tdColumns.map((item, i) => {\n      const render =\n        item.render && typeof item.render === 'function'\n          ? item.render(data[item.key], data, rowIndex, i)\n          : null;\n      let props = {rowSpan: 1, colSpan: 1};\n      let children = render;\n      if (render && isObject(render)) {\n        props = render.props;\n        children = render.children;\n        // 如果合并行 且有展开行,那么合并行不生效\n        if (props.rowSpan > 1 && isExpandableRow && hasChildrenRow) {\n          props.rowSpan === 1;\n        }\n      }\n      return props.rowSpan === 0 || props.colSpan === 0 ? null : (\n        <Cell\n          key={i}\n          {...props}\n          fixed={item.fixed === true ? 'left' : item.fixed}\n          column={item}\n          groupId={item.groupId}\n        >\n          <div\n            className={cx('Table-cell-wrapper', {\n              [cx('Table-cell-wrapper-prefix')]:\n                i === 0 &&\n                (!!indentDom || (levels.length === 0 && hasChildrenRow)),\n              [cx(`Table-cell-height-${lineHeight}`)]: !!lineHeight\n            })}\n          >\n            {i === 0 && levels.length > 0 ? indentDom : null}\n            {i === 0 && hasChildrenRow\n              ? this.getExpandedIcons(isExpanded, data)\n              : null}\n            {render ? children : data[item.key]}\n          </div>\n        </Cell>\n      );\n    });\n\n    const rowClassNameClass =\n      rowClassName && typeof rowClassName === 'function'\n        ? rowClassName(data, rowIndex)\n        : '';\n\n    // 可展开和嵌套不能同时支持\n    // 设置了expandable 数据源里有children也就不生效了\n    // 拖拽排序 可选、可展开都先不支持了,可以支持嵌套展示\n    const checkboxProps =\n      rowSelection && rowSelection.getCheckboxProps\n        ? rowSelection.getCheckboxProps(data, rowIndex)\n        : {};\n\n    const expandedRowClassName =\n      expandable &&\n      expandable.expandedRowClassName &&\n      typeof expandable.expandedRowClassName === 'function'\n        ? expandable.expandedRowClassName(data, rowIndex)\n        : '';\n    const dataKey = this.getChildrenColumnName();\n\n    const children =\n      !draggable && isExpandableRow && isExpanded ? (\n        <tr\n          key=\"expanded\"\n          className={cx('Table-expanded-row', expandedRowClassName)}\n        >\n          <Cell colSpan={tdColumns.length + colCount}>\n            {expandable &&\n            expandable.expandedRowRender &&\n            typeof expandable.expandedRowRender === 'function'\n              ? expandable.expandedRowRender(data, rowIndex)\n              : null}\n          </Cell>\n        </tr>\n      ) : this.hasChildrenRow(data) && isExpanded ? (\n        data[dataKey].map((item: any, index: number) => {\n          return this.renderRow(item, index, [...levels, rowIndex]);\n        })\n      ) : null;\n\n    const isChecked = !!find(\n      this.state.selectedRowKeys,\n      key => key === data[defaultKey]\n    );\n    const hasChildrenChecked = this.hasCheckedChildrenRows(data);\n\n    return [\n      <tr\n        key={rowIndex}\n        row-index={rowIndex}\n        row-levels={levels.join(',')}\n        className={cx(\n          'Table-row',\n          `Table-row-level-${levels.length}`,\n          rowClassNameClass,\n          {\n            'Table-row-disabled': !!checkboxProps.disabled\n          }\n        )}\n        onMouseEnter={e => this.onRowMouseEnter(e, data, rowIndex)}\n        onMouseLeave={e => this.onRowMouseLeave(e, data, rowIndex)}\n        onClick={e => this.onRowClick(e, data, rowIndex)}\n      >\n        {draggable ? (\n          <Cell className={cx('Table-dragCell')}>\n            <Icon icon=\"drag-bar\" className=\"icon\"></Icon>\n          </Cell>\n        ) : null}\n        {!draggable && rowSelection ? (\n          <Cell\n            fixed={rowSelection.fixed ? 'left' : ''}\n            className={cx('Table-checkCell')}\n          >\n            <CheckBox\n              name={'Table-checkbox'}\n              type={rowSelection.type || 'checkbox'}\n              partial={hasChildrenChecked && !isChecked}\n              checked={hasChildrenChecked || isChecked}\n              onChange={(value, shift) => {\n                if (!(rowSelection && rowSelection.rowClick)) {\n                  this.selectedSingleRow(value, data);\n                }\n\n                event && event.stopPropagation();\n              }}\n              {...checkboxProps}\n            ></CheckBox>\n          </Cell>\n        ) : null}\n        {!draggable && isExpandable ? (\n          <Cell\n            fixed={expandable && expandable.fixed ? 'left' : ''}\n            className={cx('Table-cell-expand-icon-cell')}\n          >\n            {isExpandableRow || hasChildrenRow\n              ? this.getExpandedIcons(isExpanded, data)\n              : null}\n          </Cell>\n        ) : null}\n        {cells}\n      </tr>,\n      children\n    ];\n  }\n\n  renderTBody() {\n    const {\n      classnames: cx,\n      headSummary,\n      scroll,\n      placeholder,\n      sticky\n    } = this.props;\n\n    const tdColumns = this.tdColumns;\n    const hasScrollY = scroll && scroll.y;\n    const colCount = this.getExtraColumnCount();\n    return (\n      <tbody ref={this.tbodyDom} className={cx('Table-tbody')}>\n        {!hasScrollY && !sticky && headSummary\n          ? this.renderSummaryRow(headSummary)\n          : null}\n        {!this.state.dataSource.length ? (\n          <tr className={cx('Table-row', 'Table-empty-row')}>\n            <Cell colSpan={tdColumns.length + colCount}>\n              <div className={cx('Table-empty')}>\n                {typeof placeholder === 'function'\n                  ? placeholder()\n                  : placeholder}\n              </div>\n            </Cell>\n          </tr>\n        ) : (\n          this.state.dataSource.map((data, index) => {\n            return this.renderRow(data, index, []);\n          })\n        )}\n      </tbody>\n    );\n  }\n\n  isExpandableTable() {\n    const {expandable} = this.props;\n\n    // 设置了expandable 优先级更高\n    // 就不支持默认嵌套了\n    return !!expandable;\n  }\n\n  isNestedTable() {\n    const {dataSource} = this.props;\n    return !!find(dataSource, item => this.hasChildrenRow(item));\n  }\n\n  getExtraColumnCount() {\n    const {draggable, rowSelection} = this.props;\n\n    let count = 0;\n    if (draggable) {\n      count++;\n    } else {\n      if (this.isExpandableTable()) {\n        count++;\n      }\n      if (rowSelection) {\n        count++;\n      }\n    }\n\n    return count;\n  }\n\n  renderSummaryRow(summary: any) {\n    const {classnames: cx, dataSource} = this.props;\n    const cells: Array<React.ReactNode> = [];\n    const trs: Array<React.ReactNode> = [];\n    let colCount = this.getExtraColumnCount();\n\n    Array.isArray(summary)\n      ? summary.forEach((s, index) => {\n          Array.isArray(s)\n            ? trs.push(\n                <tr\n                  onMouseEnter={e => this.onRowMouseEnter(e)}\n                  onMouseLeave={e => this.onRowMouseLeave(e)}\n                  key={'summary-tr-' + index}\n                  className={cx('Table-summary-row')}\n                >\n                  {s.map((d, i) => {\n                    // 将操作列自动添加到第一列,用户的colSpan只需要关心实际的列数\n                    const colSpan =\n                      i === 0 ? (d.colSpan || 1) + colCount : d.colSpan;\n                    return (\n                      <Cell\n                        key={'summary-tr-cell-' + i}\n                        fixed={d.fixed}\n                        colSpan={colSpan}\n                      >\n                        {typeof d.render === 'function'\n                          ? d.render(dataSource)\n                          : d.render}\n                      </Cell>\n                    );\n                  })}\n                </tr>\n              )\n            : cells.push(\n                <Cell\n                  key={'summary-cell-' + index}\n                  fixed={s.fixed}\n                  colSpan={\n                    cells.length === 0 ? (s.colSpan || 1) + colCount : s.colSpan\n                  }\n                >\n                  {typeof s.render === 'function'\n                    ? s.render(dataSource)\n                    : s.render}\n                </Cell>\n              );\n        })\n      : null;\n\n    return summary\n      ? typeof summary === 'function'\n        ? summary(dataSource)\n        : [\n            cells.length > 0 ? (\n              <tr\n                onMouseEnter={e => this.onRowMouseEnter(e)}\n                onMouseLeave={e => this.onRowMouseLeave(e)}\n                key=\"summary-row\"\n                className={cx('Table-summary-row')}\n              >\n                {cells}\n              </tr>\n            ) : null,\n            ...trs\n          ]\n      : null;\n  }\n\n  renderTFoot() {\n    const {classnames: cx, footSummary} = this.props;\n    return (\n      <tfoot ref={this.tfootDom} className={cx('Table-summary')}>\n        {this.renderSummaryRow(footSummary)}\n      </tfoot>\n    );\n  }\n\n  updateTableDom(dom: HTMLElement) {\n    const {classnames: cx} = this.props;\n    const {scrollLeft, scrollWidth, offsetWidth} = dom;\n    const table = this.tableDom.current;\n\n    const leftCalss = cx('Table-ping-left');\n    if (scrollLeft > 0) {\n      table?.classList.add(leftCalss);\n    } else {\n      table?.classList.remove(leftCalss);\n    }\n\n    const rightClass = cx('Table-ping-right');\n    if (scrollLeft + offsetWidth < scrollWidth) {\n      table?.classList.add(rightClass);\n    } else {\n      table?.classList.remove(rightClass);\n    }\n  }\n\n  onTableContentScroll(event: React.ChangeEvent<any>) {\n    this.updateTableDom(event.target);\n  }\n\n  onWheel(event: WheelEvent) {\n    const {currentTarget, deltaX} =\n      event as unknown as React.WheelEvent<HTMLDivElement>;\n    if (deltaX) {\n      this.onTableScroll({\n        target: currentTarget,\n        scrollLeft: currentTarget.scrollLeft + deltaX\n      });\n\n      event.preventDefault();\n    }\n  }\n\n  onTableScroll(event: {target: HTMLDivElement; scrollLeft?: number}) {\n    const scrollDomRefs = [this.headerDom, this.bodyDom, this.footDom];\n\n    const {target, scrollLeft} = event;\n\n    scrollDomRefs.forEach(ref => {\n      const current = ref && ref.current;\n      if (current && current !== target) {\n        current.scrollLeft = scrollLeft || target.scrollLeft;\n      }\n    });\n\n    this.updateTableDom(target);\n  }\n\n  renderLoading() {\n    const {classnames: cx, loading} = this.props;\n    return (\n      <div className={cx('Table-loading')}>\n        {typeof loading === 'boolean' ? <Spinner></Spinner> : loading}\n      </div>\n    );\n  }\n\n  renderTable() {\n    const {\n      scroll,\n      footSummary,\n      loading,\n      showHeader,\n      classnames: cx\n    } = this.props;\n\n    // 设置了横向滚动轴 则table的table-layout为fixed\n    const hasScrollX = scroll && scroll.x;\n\n    return (\n      <div\n        ref={this.contentDom}\n        className={cx('Table-content')}\n        style={hasScrollX ? {overflow: 'auto hidden'} : {}}\n      >\n        <table\n          style={\n            hasScrollX\n              ? {width: scroll.x + 'px', tableLayout: 'fixed'}\n              : {tableLayout: 'auto'}\n          }\n          className={cx('Table-table')}\n        >\n          {this.renderColGroup()}\n          {showHeader ? this.renderTHead() : null}\n          {!loading ? this.renderTBody() : null}\n          {!loading && footSummary ? this.renderTFoot() : null}\n        </table>\n        {loading ? this.renderLoading() : null}\n      </div>\n    );\n  }\n\n  renderScrollTableHeader() {\n    const {\n      scroll,\n      headSummary,\n      sticky,\n      showHeader,\n      classnames: cx\n    } = this.props;\n\n    const style = {overflow: 'hidden'};\n    if (!!sticky) {\n      Object.assign(style, {top: 0});\n    }\n\n    const tableStyle = {};\n    if (scroll && (scroll.y || scroll.x)) {\n      Object.assign(tableStyle, {\n        width: scroll && scroll.x ? scroll.x + 'px' : '100%',\n        tableLayout: 'fixed'\n      });\n    }\n\n    return (\n      <div\n        ref={this.headerDom}\n        className={cx('Table-header', {\n          [cx('Table-sticky-holder')]: !!sticky\n        })}\n        style={style}\n      >\n        <table className={cx('Table-table')} style={tableStyle}>\n          {this.renderColGroup(this.state.colWidths)}\n          {showHeader ? this.renderTHead() : null}\n          {headSummary ? (\n            <tbody>{this.renderSummaryRow(headSummary)}</tbody>\n          ) : null}\n        </table>\n      </div>\n    );\n  }\n\n  renderScrollTableBody() {\n    const {scroll, classnames: cx} = this.props;\n\n    const style = {};\n    const tableStyle = {};\n    if (scroll && (scroll.y || scroll.x)) {\n      Object.assign(style, {\n        overflow: 'auto scroll',\n        maxHeight: scroll.y\n      });\n\n      Object.assign(tableStyle, {\n        width: scroll && scroll.x ? scroll.x + 'px' : '100%',\n        tableLayout: 'fixed'\n      });\n    }\n\n    return (\n      <div ref={this.bodyDom} className={cx('Table-body')} style={style}>\n        <table className={cx('Table-table')} style={tableStyle}>\n          {this.renderColGroup()}\n          {this.renderTBody()}\n        </table>\n      </div>\n    );\n  }\n\n  renderScrollTableFoot() {\n    const {scroll, classnames: cx} = this.props;\n\n    return (\n      <div\n        ref={this.footDom}\n        className={cx('Table-summary')}\n        style={{overflow: 'hidden'}}\n      >\n        <table\n          className={cx('Table-table')}\n          style={{width: scroll?.x + 'px' || '100%', tableLayout: 'fixed'}}\n        >\n          {this.renderTFoot()}\n        </table>\n      </div>\n    );\n  }\n\n  renderScrollTable() {\n    const {footSummary, loading, classnames: cx} = this.props;\n\n    return (\n      <div className={cx('Table-container')}>\n        {this.renderScrollTableHeader()}\n        {!loading ? this.renderScrollTableBody() : null}\n        {!loading && footSummary ? this.renderScrollTableFoot() : null}\n        {loading ? this.renderLoading() : null}\n      </div>\n    );\n  }\n\n  render() {\n    const {\n      title,\n      footer,\n      className,\n      scroll,\n      size,\n      bordered,\n      resizable,\n      columns,\n      sticky,\n      classnames: cx\n    } = this.props;\n\n    // 过滤掉设置了breakpoint属性的列\n    const filterColumns = columns.filter(\n      item => !item.breakpoint || !isBreakpoint(item.breakpoint)\n    );\n\n    this.thColumns = [];\n    this.tdColumns = [];\n    buildColumns(filterColumns, this.thColumns, this.tdColumns);\n\n    // 是否设置了纵向滚动\n    const hasScrollY = scroll && scroll.y;\n    // 是否设置了横向滚动\n    const hasScrollX = scroll && scroll.x;\n\n    return (\n      <div\n        ref={this.tableDom}\n        className={cx('Table-v2', className, {\n          [cx('Table-scroll-horizontal')]: hasScrollX,\n          [cx(`Table-${size}`)]: size,\n          [cx('Table-bordered')]: bordered,\n          [cx('Table-resizable')]: resizable\n        })}\n      >\n        {title ? (\n          <div className={cx('Table-title')}>\n            {typeof title === 'function' ? title() : title}\n          </div>\n        ) : null}\n\n        {hasScrollY || sticky ? (\n          this.renderScrollTable()\n        ) : (\n          <div className={cx('Table-container')}>{this.renderTable()}</div>\n        )}\n\n        {footer ? (\n          <div className={cx('Table-footer')}>\n            {typeof footer === 'function' ? footer() : footer}\n          </div>\n        ) : null}\n      </div>\n    );\n  }\n}\n\nexport default themeable(localeable(Table));\n"
         | 
| 11 | 
            +
                    "/**\n * @file Table\n * @author fex\n */\n\nimport React from 'react';\nimport {findDOMNode} from 'react-dom';\nimport findLastIndex from 'lodash/findLastIndex';\nimport find from 'lodash/find';\nimport isEqual from 'lodash/isEqual';\nimport filter from 'lodash/filter';\nimport intersection from 'lodash/intersection';\nimport cloneDeep from 'lodash/cloneDeep';\nimport Sortable from 'sortablejs';\n\nimport {themeable, ClassNamesFn, ThemeProps} from '../../theme';\nimport {localeable, LocaleProps} from '../../locale';\nimport {isObject, isBreakpoint, guid} from '../../utils/helper';\nimport {Icon} from '../icons';\nimport CheckBox from '../Checkbox';\nimport Spinner from '../Spinner';\n\nimport HeadCellSort from './HeadCellSort';\nimport HeadCellFilter from './HeadCellFilter';\nimport HeadCellSelect from './HeadCellSelect';\nimport ItemActionsWrapper from './ItemActionsWrapper';\nimport Cell from './Cell';\n\nexport interface ColumnProps {\n  title: string | React.ReactNode | Function;\n  key: string;\n  className?: Function;\n  children?: Array<ColumnProps>;\n  render: Function;\n  fixed?: boolean | string;\n  width?: number | string;\n  sorter?: (a: any, b: any) => number | boolean; // 设置为true时,执行onSort,否则执行前端排序\n  sortOrder?: string; // 升序ascend、降序descend\n  filters?: Array<any>; // 筛选数据源,配置了数据源才展示\n  filterMode?: string; // menu/tree 默认menu 先只支持menu\n  filterMultiple?: boolean; // 是否支持多选\n  filteredValue?: Array<string>;\n  filtered?: boolean;\n  filterDropdown?: Function | React.ReactNode; // 列筛选 filterDropdown的优先级更高 和filters两者不能并存\n  align?: string; // left/right/center\n  breakpoint?: '*' | 'xs' | 'sm' | 'md' | 'lg';\n}\n\nexport interface ThProps extends ColumnProps {\n  rowSpan: number;\n  colSpan: number;\n  groupId: string; // 随机生成表头分组的id\n  depth: number; // 表头分组层级\n}\n\nexport interface TdProps extends ColumnProps {\n  rowSpan: number;\n  colSpan: number;\n  groupId: string; // 随机生成表头分组的id\n}\n\nexport interface RowSelectionOptionProps {\n  key: string;\n  text: string;\n  onSelect: Function;\n}\n\nexport interface RowSelectionProps {\n  type: string;\n  rowClick: boolean; // 点击复选框选中还是点击整行选中\n  fixed: boolean; // 只能固定在左边\n  selectedRowKeys: Array<string | number>;\n  keyField?: string; // 默认是key,可自定义\n  columnWidth?: number;\n  selections?: Array<RowSelectionOptionProps>;\n  onChange?: Function;\n  getCheckboxProps: Function;\n}\n\nexport interface ExpandableProps {\n  expandedRowKeys?: Array<string | number>;\n  keyField: string; // 默认是key,可自定义\n  columnWidth?: number;\n  rowExpandable: Function;\n  defaultExpandedRowKeys?: Array<string | number>;\n  onExpand?: Function;\n  onExpandedRowsChange?: Function;\n  expandedRowRender?: Function;\n  expandedRowClassName?: Function;\n  expandIcon?: Function;\n  fixed?: boolean;\n}\n\nexport interface SummaryProps {\n  colSpan: number; // 手动控制列合并 先不支持列合并\n  fixed: string | boolean; // 手动设置左固定还是右固定\n  render: Function | React.ReactNode;\n}\n\nexport interface OnRowProps {\n  onRowMouseEnter?: Function;\n  onRowMouseLeave?: Function;\n  onRowClick?: Function;\n}\n\nexport interface SortProps {\n  orderBy: string;\n  order: string;\n}\n\nexport interface TableProps extends ThemeProps, LocaleProps {\n  title: string | React.ReactNode | Function;\n  footer: string | React.ReactNode | Function;\n  className?: string;\n  dataSource: Array<any>;\n  classnames: ClassNamesFn;\n  columns: Array<ColumnProps>;\n  scroll?: ScrollProps;\n  rowSelection?: RowSelectionProps;\n  onSort?: Function;\n  expandable?: ExpandableProps;\n  bordered?: boolean;\n  size?: string; // large | default | small\n  headSummary?:\n    | Function\n    | React.ReactNode\n    | Array<SummaryProps | Array<SummaryProps>>;\n  footSummary?:\n    | Function\n    | React.ReactNode\n    | Array<SummaryProps | Array<SummaryProps>>;\n  draggable?: boolean;\n  onDrag?: Function;\n  resizable?: boolean; // 列宽调整\n  placeholder?: string | React.ReactNode | Function; // 数据为空展示\n  loading?: boolean | string | React.ReactNode; // 数据加载中\n  sticky?: boolean; // 粘性头部\n  onFilter?: Function; // 筛选/过滤函数\n  childrenColumnName?: string; // 控制数据源哪一列作为嵌套数据,不想支持,就随便设置一个不存在的值,默认是children\n  keyField?: string; // 展开嵌套数据的时候,用哪个字段做唯一标识\n  indentSize: number; // 树形展示时 设置缩进值\n  onRow?: OnRowProps; // 行操作事件\n  rowClassName?: Function;\n  lineHeight?: string; // 可设置large、middle固定高度,不设置则跟随内容\n  showHeader?: boolean; // 是否展示表头\n  onSelect?: Function;\n  onSelectAll?: Function;\n  itemActions?: Function;\n}\n\nexport interface ScrollProps {\n  x: number | string | true;\n  y: number | string;\n}\n\nexport interface TableState {\n  selectedRowKeys: Array<string | number>;\n  dataSource: Array<any>;\n  expandedRowKeys: Array<string | number>;\n  colWidths: Array<number>;\n  hoverRow: {\n    rowIndex?: number,\n    record: any,\n    target: HTMLTableRowElement\n  } | null;\n}\n\nfunction getMaxLevelThRowSpan(columns: Array<ColumnProps>) {\n  let maxLevel = 0;\n\n  Array.isArray(columns) &&\n    columns.forEach(c => {\n      const level = getThRowSpan(c);\n      if (maxLevel < level) {\n        maxLevel = level;\n      }\n    });\n\n  return maxLevel;\n}\n\nfunction getThRowSpan(column: ColumnProps) {\n  if (!column.children || (column.children && !column.children.length)) {\n    return 1;\n  }\n\n  return 1 + getMaxLevelThRowSpan(column.children);\n}\n\nfunction getThColSpan(column: ColumnProps) {\n  if (!column.children || (column.children && !column.children.length)) {\n    return 1;\n  }\n\n  let childrenLength = 0;\n  column.children.forEach(item => (childrenLength += getThColSpan(item)));\n\n  return childrenLength;\n}\n\nfunction buildColumns(\n  columns: Array<ColumnProps> = [],\n  thColumns: Array<Array<any>>,\n  tdColumns: Array<ColumnProps> = [],\n  depth: number = 0,\n  id?: string,\n  fixed?: boolean | string\n) {\n  const maxLevel = getMaxLevelThRowSpan(columns);\n  // 在处理表头时,如果父级column设置了fixed属性,那么所有children保持一致\n  Array.isArray(columns) &&\n    columns.forEach(column => {\n      const groupId = id || guid();\n      let childMaxLevel = 0;\n      if (column.children) {\n        childMaxLevel = getMaxLevelThRowSpan(column.children);\n      }\n      const newColumn = {\n        ...column,\n        rowSpan: childMaxLevel ? 1 : maxLevel - childMaxLevel + depth,\n        colSpan: getThColSpan(column),\n        groupId,\n        depth\n      };\n      const tdColumn = {\n        ...column,\n        groupId\n      };\n      if (fixed) {\n        newColumn.fixed = fixed;\n        tdColumn.fixed = fixed;\n      }\n\n      if (!thColumns[depth]) {\n        thColumns[depth] = [];\n      }\n      thColumns[depth].push(newColumn);\n      if (column.children && column.children.length > 0) {\n        buildColumns(\n          column.children,\n          thColumns,\n          tdColumns,\n          depth + 1,\n          groupId,\n          column.fixed\n        );\n      } else {\n        const {children, ...rest} = tdColumn;\n        tdColumns.push(rest);\n      }\n    });\n}\n\nfunction isFixedLeftColumn(fixed: boolean | string | undefined) {\n  return fixed === true || fixed === 'left';\n}\n\nfunction isFixedRightColumn(fixed: boolean | string | undefined) {\n  return fixed === 'right';\n}\n\nfunction getPreviousLeftWidth(\n  doms: HTMLCollection,\n  index: number,\n  columns: Array<ColumnProps>\n) {\n  let width = 0;\n  for (let i = 0; i < index; i++) {\n    if (columns && columns[i] && isFixedLeftColumn(columns[i].fixed)) {\n      const dom = doms[i] as HTMLElement;\n      width += dom.offsetWidth;\n    }\n  }\n  return width;\n}\n\nfunction getAfterRightWidth(\n  doms: HTMLCollection,\n  index: number,\n  columns: Array<ColumnProps>\n) {\n  let width = 0;\n  for (let i = doms.length - 0; i > index; i--) {\n    if (columns && columns[i] && isFixedRightColumn(columns[i].fixed)) {\n      const dom = doms[i] as HTMLElement;\n      width += dom.offsetWidth;\n    }\n  }\n  return width;\n}\n\nfunction hasFixedColumn(columns: Array<ColumnProps>) {\n  return find(columns, column => column.fixed);\n}\n\nfunction getSummaryColumns(summary: Array<SummaryProps>) {\n  if (!summary) {\n    return [];\n  }\n  const last: Array<SummaryProps> = [];\n  const first: Array<SummaryProps> = [];\n  summary.forEach(item => {\n    if (isObject(item)) {\n      first.push(item);\n    } else if (Array.isArray(item)) {\n      last.push(item);\n    }\n  });\n  return [first, ...last];\n}\n\nconst DefaultCellWidth = 40;\n\nexport class Table extends React.PureComponent<TableProps, TableState> {\n  static defaultProps = {\n    title: '',\n    className: '',\n    dataSource: [],\n    columns: [],\n    indentSize: 15,\n    placeholder: '暂无数据',\n    showHeader: true\n  };\n\n  constructor(props: TableProps) {\n    super(props);\n\n    this.selectedRows = props.rowSelection\n      ? this.getSelectedRows(\n          props.dataSource,\n          props.rowSelection?.selectedRowKeys\n        )\n      : [];\n\n    this.state = {\n      selectedRowKeys: props.rowSelection\n        ? props.rowSelection.selectedRowKeys.map(key => key) || []\n        : [],\n      dataSource: props.dataSource || [], // 为了支持前端搜索\n      expandedRowKeys: [\n        ...(props.expandable ? props.expandable.expandedRowKeys || [] : []),\n        ...(props.expandable\n          ? props.expandable.defaultExpandedRowKeys || []\n          : [])\n      ],\n      colWidths: [],\n      hoverRow: null\n    };\n\n    this.onTableContentScroll = this.onTableContentScroll.bind(this);\n    this.getPopOverContainer = this.getPopOverContainer.bind(this);\n  }\n\n  getPopOverContainer() {\n    return findDOMNode(this);\n  }\n\n  // 表头配置\n  thColumns: Array<Array<ThProps>>;\n  // 表格配置\n  tdColumns: Array<TdProps>;\n  // 表格当前选中行\n  selectedRows: Array<any>;\n  // 拖拽排序\n  sortable: Sortable;\n  // 记录点击起始横坐标\n  resizeStart: number;\n  resizeKey: string;\n\n  tableDom: React.RefObject<HTMLDivElement> = React.createRef();\n  theadDom: React.RefObject<HTMLTableSectionElement> = React.createRef();\n  tbodyDom: React.RefObject<HTMLTableSectionElement> = React.createRef();\n  contentDom: React.RefObject<HTMLDivElement> = React.createRef();\n  headerDom: React.RefObject<HTMLDivElement> = React.createRef();\n  bodyDom: React.RefObject<HTMLDivElement> = React.createRef();\n  tfootDom: React.RefObject<HTMLTableSectionElement> = React.createRef();\n  footDom: React.RefObject<HTMLDivElement> = React.createRef();\n\n  getColWidths() {\n    const childrens = this.tbodyDom.current?.children[0]?.children || [];\n    const colWidths: Array<any> = new Array(childrens ? childrens.length : 0);\n\n    for (let i = 0; i < childrens.length; i++) {\n      const child: any = childrens[i];\n      colWidths[i] = child ? child.offsetWidth : null;\n    }\n\n    return colWidths;\n  }\n\n  getSelectedRows(\n    dataSource: Array<any>,\n    selectedRowKeys: Array<string | number>\n  ) {\n    const selectedRows: Array<any> = [];\n    dataSource.forEach(data => {\n      if (\n        find(\n          selectedRowKeys,\n          key => key === data[this.getRowSelectionKeyField()]\n        )\n      ) {\n        selectedRows.push(data);\n      }\n    });\n\n    return selectedRows;\n  }\n\n  updateTableBodyFixed() {\n    const tbodyDom = this.tbodyDom && (this.tbodyDom.current as HTMLElement);\n    const tdColumns = [...this.tdColumns];\n    this.updateTbodyFixedRow(tbodyDom, tdColumns);\n    this.updateHeadSummaryFixedRow(tbodyDom);\n  }\n\n  updateColWidths() {\n    this.setState({colWidths: this.getColWidths()}, () => {\n      if (hasFixedColumn(this.props.columns)) {\n        const theadDom =\n          this.theadDom && (this.theadDom.current as HTMLElement);\n        const thColumns = this.thColumns;\n        this.updateTheadFixedRow(theadDom, thColumns);\n        this.updateTableBodyFixed();\n      }\n    });\n  }\n\n  componentDidMount() {\n    if (this.props.loading) {\n      return;\n    }\n\n    if (hasFixedColumn(this.props.columns)) {\n      const headerDom =\n        this.headerDom && (this.headerDom.current as HTMLElement);\n      if (headerDom) {\n        const headerBody = headerDom.getElementsByTagName('tbody');\n        headerBody &&\n          headerBody[0] &&\n          this.updateHeadSummaryFixedRow(headerBody[0]);\n      }\n\n      const tfootDom = this.tfootDom && (this.tfootDom.current as HTMLElement);\n      tfootDom && this.updateFootSummaryFixedRow(tfootDom);\n    }\n\n    let current = null;\n    if (this.contentDom && this.contentDom.current) {\n      current = this.contentDom.current;\n      current.addEventListener('scroll', this.onTableContentScroll.bind(this));\n    } else {\n      current = this.headerDom?.current;\n\n      // overflow设置为hidden的情况\n      const hiddenDomRefs = [this.headerDom, this.footDom];\n      hiddenDomRefs.forEach(\n        ref =>\n          ref &&\n          ref.current &&\n          ref.current.addEventListener('wheel', this.onWheel.bind(this))\n      );\n      // 横向同步滚动\n      const scrollDomRefs = [this.bodyDom];\n      scrollDomRefs.forEach(\n        ref =>\n          ref &&\n          ref.current &&\n          ref.current.addEventListener('scroll', this.onTableScroll.bind(this))\n      );\n    }\n    current && this.updateTableDom(current);\n\n    if (this.props.draggable) {\n      this.initDragging();\n    }\n\n    if (this.props.resizable) {\n      this.theadDom.current?.addEventListener(\n        'mouseup',\n        this.onResizeMouseUp.bind(this)\n      );\n    }\n\n    this.updateStickyHeader();\n\n    this.updateColWidths();\n  }\n\n  componentDidUpdate(prevProps: TableProps, prevState: TableState) {\n    // 数据源发生了变化\n    if (!isEqual(prevProps.dataSource, this.props.dataSource)) {\n      this.setState({dataSource: [...this.props.dataSource]}, () =>\n        this.updateColWidths()\n      ); // 异步加载数据需求再更新一次\n    }\n\n    // 选择项发生了变化触发\n    if (!isEqual(prevState.selectedRowKeys, this.state.selectedRowKeys)) {\n      // 更新保存的已选择行数据\n      this.selectedRows = this.getSelectedRows(\n        this.state.dataSource,\n        this.state.selectedRowKeys\n      );\n\n      const {rowSelection} = this.props;\n      rowSelection &&\n        rowSelection.onChange &&\n        rowSelection.onChange(this.state.selectedRowKeys, this.selectedRows);\n\n      this.setState({\n        selectedRowKeys: this.state.selectedRowKeys.filter(\n          (key, i, a) => a.indexOf(key) === i\n        )\n      });\n    }\n\n    // 外部传入的选择项发生了变化\n    if (\n      !isEqual(\n        prevProps.rowSelection?.selectedRowKeys,\n        this.props.rowSelection?.selectedRowKeys\n      )\n    ) {\n      if (this.props.rowSelection) {\n        this.setState({\n          selectedRowKeys: this.props.rowSelection.selectedRowKeys\n        });\n        this.selectedRows = this.getSelectedRows(\n          this.state.dataSource,\n          this.state.selectedRowKeys\n        );\n      }\n    }\n\n    // 外部传入的展开项发生了变化\n    if (\n      !isEqual(\n        prevProps?.expandable?.expandedRowKeys,\n        this.props.expandable?.expandedRowKeys\n      )\n    ) {\n      if (this.props.expandable) {\n        this.setState({\n          expandedRowKeys: this.props.expandable.expandedRowKeys || []\n        });\n      }\n    }\n\n    // 展开行变化时触发\n    if (!isEqual(prevState.expandedRowKeys, this.state.expandedRowKeys)) {\n      if (this.props.expandable) {\n        const {onExpandedRowsChange, keyField} = this.props.expandable;\n        const expandedRows: Array<any> = [];\n        this.state.dataSource.forEach(item => {\n          if (\n            find(\n              this.state.expandedRowKeys,\n              key => key == item[keyField || 'key']\n            )\n          ) {\n            expandedRows.push(item);\n          }\n        });\n        onExpandedRowsChange && onExpandedRowsChange(expandedRows);\n      }\n    }\n\n    // sticky属性发生了变化\n    if (prevProps.sticky !== this.props.sticky) {\n      this.updateStickyHeader();\n    }\n  }\n\n  componentWillUnmount() {\n    this.contentDom &&\n      this.contentDom.current &&\n      this.contentDom.current.removeEventListener(\n        'scroll',\n        this.onTableContentScroll.bind(this)\n      );\n\n    const hiddenDomRefs = [this.headerDom, this.footDom];\n    hiddenDomRefs.forEach(\n      ref =>\n        ref &&\n        ref.current &&\n        ref.current.removeEventListener('wheel', this.onWheel.bind(this))\n    );\n\n    const scrollDomRefs = [this.bodyDom];\n    scrollDomRefs.forEach(\n      ref =>\n        ref &&\n        ref.current &&\n        ref.current.removeEventListener('scroll', this.onTableScroll.bind(this))\n    );\n\n    this.destroyDragging();\n  }\n\n  exchange(fromIndex: number, toIndex: number, item: any) {\n    const {scroll, headSummary} = this.props;\n    // 如果有头部总结行 fromIndex就会+1\n    if ((!scroll || (scroll && !scroll.y)) && headSummary) {\n      fromIndex = fromIndex - 1;\n    }\n\n    const index = toIndex - fromIndex;\n\n    const levels = item.getAttribute('row-levels');\n    const rowIndex = +item.getAttribute('row-index');\n\n    const dataSource = cloneDeep(this.state.dataSource);\n    const levelsArray = levels ? levels.split(',') : [];\n    const childrenColumnName = this.getChildrenColumnName();\n    let data: Array<any> = dataSource;\n    let i = 0;\n    while (i < levelsArray.length) {\n      data = data[levelsArray[i]][childrenColumnName];\n      i++;\n    }\n\n    if (data && data.length > 0) {\n      const row = cloneDeep(data[rowIndex]);\n      data.splice(rowIndex, 1);\n      data.splice(rowIndex + index, 0, row);\n    }\n\n    return data;\n  }\n\n  initDragging() {\n    const {classnames: cx, onDrag} = this.props;\n\n    this.sortable = new Sortable(this.tbodyDom.current as HTMLElement, {\n      group: 'table',\n      animation: 150,\n      handle: `.${cx('Table-dragCell')}`,\n      ghostClass: 'is-dragging',\n      onMove: (e: any) => {\n        const dragged = e.dragged;\n        const related = e.related;\n\n        if (\n          related &&\n          related.classList.contains(`${cx('Table-summary-row')}`)\n        ) {\n          return false;\n        }\n\n        const draggedLevels = dragged.getAttribute('row-levels');\n        const relatedLevels = related.getAttribute('row-levels');\n\n        // 嵌套展示 不属于同一层的 不允许拖动\n        // 否则涉及到试图的更新,比如子元素都被拖完了\n        if (draggedLevels !== relatedLevels) {\n          return false;\n        }\n\n        return true;\n      },\n      onEnd: async (e: any) => {\n        // 没有移动\n        if (e.newIndex === e.oldIndex) {\n          return;\n        }\n\n        const {onDrag} = this.props;\n        if (onDrag) {\n          const data = this.exchange(e.oldIndex, e.newIndex, e.item);\n          const prevented = await onDrag(data);\n          if (prevented) {\n            return;\n          }\n        }\n      }\n    });\n  }\n\n  destroyDragging() {\n    this.sortable && this.sortable.destroy();\n  }\n\n  updateStickyHeader() {\n    if (this.props.sticky) {\n      // 如果设置了sticky 如果父元素设置了overflow: auto top值还需要考虑padding值\n      let parent = this.headerDom?.current?.parentElement;\n      setTimeout(() => {\n        while (\n          parent &&\n          window.getComputedStyle(parent, null).getPropertyValue('overflow') !==\n            'auto'\n        ) {\n          parent = parent.parentElement;\n        }\n        if (\n          parent &&\n          window.getComputedStyle(parent, null).getPropertyValue('overflow') ===\n            'auto'\n        ) {\n          const paddingTop = window\n            .getComputedStyle(parent, null)\n            .getPropertyValue('padding-top');\n          if (paddingTop && this.headerDom && this.headerDom.current) {\n            this.headerDom.current.style.top = '-' + paddingTop;\n          }\n        }\n      });\n    }\n  }\n\n  // 更新一个tr下的td的left和class\n  updateFixedRow(row: HTMLElement, columns: Array<ColumnProps>) {\n    const {classnames: cx} = this.props;\n\n    const children = row.children;\n    for (let i = 0; i < children.length; i++) {\n      const dom = children[i] as HTMLElement;\n      const fixed = columns[i] ? columns[i].fixed || '' : '';\n      if (isFixedLeftColumn(fixed)) {\n        dom.style.left =\n          i > 0 ? getPreviousLeftWidth(children, i, columns) + 'px' : '0';\n      } else if (isFixedRightColumn(fixed)) {\n        dom.style.right =\n          i < children.length - 1\n            ? getAfterRightWidth(children, i, columns) + 'px'\n            : '0';\n      }\n    }\n    // 最后一个左fixed的添加样式\n    let leftIndex = findLastIndex(columns, column =>\n      isFixedLeftColumn(column.fixed)\n    );\n    if (leftIndex > -1) {\n      children[leftIndex]?.classList.add(cx('Table-cell-fix-left-last'));\n    }\n    // 第一个右fixed的添加样式\n    let rightIndex = columns.findIndex(column =>\n      isFixedRightColumn(column.fixed)\n    );\n    if (rightIndex > -1) {\n      children[rightIndex]?.classList.add(cx('Table-cell-fix-right-first'));\n      if (rightIndex > 0) {\n        children[rightIndex - 1]?.classList.add(\n          cx('Table-cell-fix-right-first-prev')\n        );\n      }\n    }\n  }\n\n  // 在可选、可展开、可拖拽的情况下,补充column,方便fix处理\n  prependColumns(columns: Array<any>) {\n    const {rowSelection, expandable, draggable} = this.props;\n    if (draggable) {\n      columns.unshift({});\n    } else {\n      if (expandable) {\n        columns.unshift(expandable);\n      }\n      if (rowSelection) {\n        columns.unshift(rowSelection);\n      }\n    }\n  }\n\n  updateTheadFixedRow(thead: HTMLElement, columns: Array<any>) {\n    const children = thead.children;\n    for (let i = 0; i < children.length; i++) {\n      const cols = [...columns[i]];\n      if (i === 0) {\n        this.prependColumns(cols);\n      }\n\n      this.updateFixedRow(children[i] as HTMLElement, cols);\n    }\n  }\n\n  updateTbodyFixedRow(tbody: HTMLElement, columns: Array<any>) {\n    const {classnames: cx} = this.props;\n    const children = filter(\n      tbody.children,\n      child =>\n        !child.classList.contains(cx('Table-summary-row')) &&\n        !child.classList.contains(cx('Table-empty-row'))\n    );\n    this.prependColumns(columns);\n    for (let i = 0; i < children.length; i++) {\n      this.updateFixedRow(children[i] as HTMLElement, columns);\n    }\n  }\n\n  updateSummaryFixedRow(\n    children: HTMLCollection | Array<Element>,\n    columns: Array<any>\n  ) {\n    for (let i = 0; i < children.length; i++) {\n      this.updateFixedRow(children[i] as HTMLElement, columns[i]);\n    }\n  }\n\n  updateFootSummaryFixedRow(tfoot: HTMLElement) {\n    const {footSummary} = this.props;\n    if (Array.isArray(footSummary)) {\n      const columns = getSummaryColumns(footSummary as Array<SummaryProps>);\n      this.updateSummaryFixedRow(tfoot.children, columns);\n    }\n  }\n\n  updateHeadSummaryFixedRow(tbody: HTMLElement) {\n    const {headSummary, classnames: cx} = this.props;\n    if (Array.isArray(headSummary)) {\n      const columns = getSummaryColumns(headSummary as Array<SummaryProps>);\n      const children = filter(tbody.children, child =>\n        child.classList.contains(cx('Table-summary-row'))\n      );\n      this.updateSummaryFixedRow(children, columns);\n    }\n  }\n\n  renderColGroup(colWidths?: Array<number>) {\n    const {rowSelection, classnames: cx, expandable, draggable} = this.props;\n\n    const tdColumns = this.tdColumns;\n    const isExpandable = this.isExpandableTable();\n    const extraCount = this.getExtraColumnCount();\n\n    return (\n      <colgroup>\n        {draggable ? (\n          <col\n            className={cx('Table-drag-col')}\n            style={{width: DefaultCellWidth + 'px'}}\n          ></col>\n        ) : null}\n        {!draggable && rowSelection ? (\n          <col\n            className={cx('Table-selection-col')}\n            style={{\n              width: (rowSelection.columnWidth || DefaultCellWidth) + 'px'\n            }}\n          ></col>\n        ) : null}\n        {!draggable && isExpandable ? (\n          <col\n            className={cx('Table-expand-col')}\n            style={{\n              width: (expandable?.columnWidth || DefaultCellWidth) + 'px'\n            }}\n          ></col>\n        ) : null}\n        {tdColumns.map((data, index) => {\n          const width = colWidths ? colWidths[index + extraCount] : data.width;\n          return (\n            <col\n              key={index}\n              style={{width: typeof width === 'number' ? width + 'px' : width}}\n              className={\n                data.className ? cx(`Table-colgroup-${data.className}`) : ''\n              }\n            ></col>\n          );\n        })}\n      </colgroup>\n    );\n  }\n\n  onResizeMouseDown(event: React.MouseEvent<any>, key: string) {\n    // 点击记录起始坐标\n    this.resizeStart = event.clientX;\n    // 记录点击的列名\n    this.resizeKey = key;\n    event && event.stopPropagation();\n  }\n\n  onResizeMouseUp(event: React.MouseEvent<any>) {\n    // 点击了调整列宽\n    if (this.resizeStart && this.resizeKey) {\n      // 计算横向移动距离\n      const distance = event.clientX - this.resizeStart;\n      const tdColumns = [...this.tdColumns];\n      let index =\n        tdColumns.findIndex(c => c.key === this.resizeKey) +\n        this.getExtraColumnCount();\n\n      const colGroup =\n        this.tableDom.current?.getElementsByTagName('colgroup')[0];\n      let currentWidth = 0;\n      if (colGroup && colGroup.children[index]) {\n        const child = colGroup.children[index] as HTMLElement;\n        currentWidth = child.offsetWidth;\n      }\n\n      let newWidth = 0;\n      if (colGroup) {\n        let maxDistance = 0; // 最多可以移动的距离\n        // 调宽列\n        if (distance > 0) {\n          for (let i = 0; i < colGroup.children.length; i++) {\n            const child = colGroup.children[i] as HTMLElement;\n            // 自适应列 保证有一个最小宽度\n            // 如果都设置了固定宽度 那一个都拖不动\n            if (!this.tdColumns[i].width) {\n              maxDistance += child.offsetWidth - DefaultCellWidth;\n            }\n          }\n          if (colGroup.children[index]) {\n            const child = colGroup.children[index] as HTMLElement;\n            newWidth = currentWidth + Math.min(distance, maxDistance);\n            child.style.width = newWidth + 'px';\n          }\n        } else {\n          // 缩短列\n          const autoColumns = [];\n          for (let i = 0; i < colGroup.children.length; i++) {\n            const child = colGroup.children[i] as HTMLElement;\n            // 自适应列 保证有一个最小宽度\n            // 如果都设置了固定宽度 那一个都拖不动\n            if (!this.tdColumns[i].width) {\n              autoColumns.push(child);\n            }\n          }\n          maxDistance = DefaultCellWidth - currentWidth;\n          if (colGroup.children[index]) {\n            const child = colGroup.children[index] as HTMLElement;\n            newWidth = currentWidth + Math.max(distance, maxDistance);\n            child.style.width = newWidth + 'px';\n          }\n          const gap =\n            Math.abs(Math.max(distance, maxDistance)) / autoColumns.length;\n          autoColumns.forEach(c => {\n            c.style.width = c.offsetWidth + gap + 'px';\n          });\n        }\n      }\n\n      const column = find(tdColumns, c => c.key === this.resizeKey);\n      // 只有通过配置设置过的宽度保存到tdColumns\n      // 自动分配的不保存\n      // 这样可以一直调整了\n      if (column && column.width && newWidth) {\n        column.width = newWidth;\n      }\n\n      this.tdColumns = tdColumns;\n\n      this.resizeStart = 0;\n      this.resizeKey = '';\n    }\n    event && event.stopPropagation();\n  }\n\n  renderTHead() {\n    const {\n      rowSelection,\n      dataSource,\n      classnames: cx,\n      onSort,\n      expandable,\n      draggable,\n      resizable,\n      onSelectAll,\n      onFilter\n    } = this.props;\n\n    const thColumns = this.thColumns;\n    // 获取一行最多th个数\n    let maxCount = 0;\n    thColumns.forEach(columns => {\n      if (columns.length > maxCount) {\n        maxCount = columns.length;\n      }\n    });\n    const keyField = this.getRowSelectionKeyField();\n    const dataList =\n      rowSelection && rowSelection.getCheckboxProps\n        ? this.state.dataSource.filter((data, index) => {\n            const props = rowSelection.getCheckboxProps(data, index);\n            return !props.disabled;\n          })\n        : this.state.dataSource;\n\n    const isExpandable = this.isExpandableTable();\n\n    let allRowKeys: Array<string> = [];\n    let allRows: Array<any> = [];\n    dataList.forEach(data => {\n      allRowKeys.push(data[keyField]);\n      allRows.push(data);\n      if (!expandable && this.hasChildrenRow(data)) {\n        allRowKeys = [...allRowKeys, ...this.getDataChildrenKeys(data)];\n        data[this.getChildrenColumnName()].forEach((item: any) =>\n          allRows.push(item)\n        );\n      }\n    });\n\n    return (\n      <thead ref={this.theadDom} className={cx('Table-thead')}>\n        {thColumns.map((data, index) => {\n          return (\n            <tr key={'th-cell-' + index}>\n              {draggable && index === 0 ? (\n                <Cell\n                  wrapperComponent=\"th\"\n                  rowSpan={thColumns.length}\n                  className={cx('Table-dragCell')}\n                ></Cell>\n              ) : null}\n              {!draggable && rowSelection && index === 0 ? (\n                <Cell\n                  wrapperComponent=\"th\"\n                  rowSpan={thColumns.length}\n                  fixed={rowSelection.fixed ? 'left' : ''}\n                  className={cx('Table-checkCell')}\n                >\n                  {rowSelection.type !== 'radio'\n                    ? [\n                        <CheckBox\n                          key=\"checkAll\"\n                          partial={\n                            this.state.selectedRowKeys.length > 0 &&\n                            this.state.selectedRowKeys.length <\n                              allRowKeys.length\n                          }\n                          checked={this.state.selectedRowKeys.length > 0}\n                          onChange={async value => {\n                            let changeRows;\n                            if (value) {\n                              changeRows = dataList.filter(\n                                data => !this.hasCheckedRows(data)\n                              );\n                            } else {\n                              changeRows = this.selectedRows;\n                            }\n                            const selectedRows = value ? allRows : [];\n                            const selectedRowKeys = value ? allRowKeys : [];\n                            if (onSelectAll) {\n                              const prevented = await onSelectAll(\n                                value,\n                                selectedRowKeys,\n                                selectedRows,\n                                changeRows\n                              );\n                              if (prevented) {\n                                return;\n                              }\n                            }\n\n                            this.setState({selectedRowKeys});\n                          }}\n                        ></CheckBox>,\n                        rowSelection.selections &&\n                        rowSelection.selections.length > 0 ? (\n                          <HeadCellSelect\n                            key=\"checkSelection\"\n                            keys={allRowKeys}\n                            selections={rowSelection.selections}\n                            popOverContainer={this.getPopOverContainer}\n                          ></HeadCellSelect>\n                        ) : null\n                      ]\n                    : null}\n                </Cell>\n              ) : null}\n              {!draggable && isExpandable && index === 0 ? (\n                <Cell\n                  wrapperComponent=\"th\"\n                  rowSpan={thColumns.length}\n                  fixed={expandable && expandable.fixed ? 'left' : ''}\n                  className={cx('Table-row-expand-icon-cell')}\n                ></Cell>\n              ) : null}\n              {data.map((item, i) => {\n                let sort = null;\n                if (item.sorter) {\n                  sort = (\n                    <HeadCellSort\n                      column={item}\n                      onSort={\n                        onSort\n                          ? onSort\n                          : (payload: SortProps) => {\n                              if (typeof item.sorter === 'function') {\n                                if (payload.orderBy) {\n                                  const sortList = [...this.state.dataSource];\n                                  this.setState({\n                                    dataSource: sortList.sort(\n                                      item.sorter as (a: any, b: any) => number\n                                    )\n                                  });\n                                } else {\n                                  this.setState({dataSource: [...dataSource]});\n                                }\n                              }\n                            }\n                      }\n                    ></HeadCellSort>\n                  );\n                }\n\n                let filter = null;\n                if (item.filterDropdown) {\n                  filter = item.filterDropdown;\n                } else if (item.filters && item.filters.length > 0) {\n                  filter = (\n                    <HeadCellFilter\n                      column={item}\n                      popOverContainer={this.getPopOverContainer}\n                      onFilter={onFilter}\n                    ></HeadCellFilter>\n                  );\n                }\n\n            const children = (\n              <span>\n                {sort}\n                  {filter}\n                  {resizable ? (\n                    <i\n                      className={cx('Table-thead-resizable')}\n                      onMouseDown={e => this.onResizeMouseDown(e, item.key)}\n                    ></i>\n                  ) : null}\n              </span>\n            );\n\n            return (\n              <Cell\n                wrapperComponent=\"th\"\n                rowSpan={item.rowSpan}\n                colSpan={item.colSpan}\n                key={`cell-${i}`}\n                fixed={item.fixed === true ? 'left' : item.fixed}\n                className={cx({\n                  'Table-cell-last':\n                    i === maxCount - 1 && i === data.length - 1\n                })}\n                groupId={item.groupId}\n                depth={item.depth}\n              >\n                  {typeof item.title === 'function'\n                    ? item.title(children)\n                    : item.title}\n              </Cell>\n            );\n          })}\n        </tr>\n        );\n      })}\n    </thead>\n    );\n  }\n\n  onRowClick(event: React.ChangeEvent<any>, record?: any, rowIndex?: number) {\n    const {rowSelection, onRow} = this.props;\n\n    if (rowSelection && rowSelection.type && rowSelection.rowClick) {\n      const defaultKey = this.getRowSelectionKeyField();\n\n      const isSelected = !!find(\n        this.state.selectedRowKeys,\n        key => key === record[defaultKey]\n      );\n\n      this.selectedSingleRow(!isSelected, record);\n    }\n\n    if (record && onRow) {\n      onRow.onRowClick && onRow.onRowClick(event, record, rowIndex);\n    }\n  }\n\n  onRowMouseEnter(\n    event: React.ChangeEvent<any>,\n    record?: any,\n    rowIndex?: number\n  ) {\n    const {classnames: cx, onRow} = this.props;\n\n    let parent = event.target;\n    while (parent && parent.tagName !== 'TR') {\n      parent = parent.parentElement;\n    }\n\n    if (parent && !parent.classList.contains(cx('Table-row-disabled'))) {\n      for (let i = 0; i < parent.children.length; i++) {\n        const td = parent.children[i];\n        td.classList.add(cx('Table-cell-row-hover')); // 保证有列fixed的时候样式一致\n      }\n    }\n\n    if (record) {\n      let target = event.target;\n      if (target.tagName !== 'TR') {\n        target = target.closest('tr');\n      }\n\n      this.setState({hoverRow: {target, rowIndex, record}}, () => {\n        if (onRow) {\n          onRow.onRowMouseEnter && onRow.onRowMouseEnter(event, record, rowIndex);\n        }\n      });\n    }\n  }\n\n  onRowMouseLeave(\n    event: React.ChangeEvent<any>,\n    record?: any,\n    rowIndex?: number\n  ) {\n    const {classnames: cx, onRow} = this.props;\n\n    let parent = event.target;\n    while (parent && parent.tagName !== 'TR') {\n      parent = parent.parentElement;\n    }\n\n    if (parent) {\n      for (let i = 0; i < parent.children.length; i++) {\n        const td = parent.children[i];\n        td.classList.remove(cx('Table-cell-row-hover'));\n      }\n    }\n\n    if (record) {\n      if (onRow) {\n        onRow.onRowMouseLeave && onRow.onRowMouseLeave(event, record, rowIndex);\n      }\n    }\n  }\n\n  onMouseLeave(event: React.ChangeEvent<any>) {\n    this.setState({hoverRow: null});\n  }\n\n  onExpandRow(data: any) {\n    const {expandedRowKeys} = this.state;\n    const {expandable} = this.props;\n    const key = data[this.getExpandableKeyField()];\n    this.setState({expandedRowKeys: [...expandedRowKeys, key]});\n    expandable?.onExpand && expandable?.onExpand(true, data);\n  }\n\n  onCollapseRow(data: any) {\n    const {expandedRowKeys} = this.state;\n    const {expandable} = this.props;\n    const key = data[this.getExpandableKeyField()];\n    // 还是得模糊匹配 否则'3'、3匹配不上\n    this.setState({expandedRowKeys: expandedRowKeys.filter(k => k != key)});\n    expandable?.onExpand && expandable?.onExpand(false, data);\n  }\n\n  getChildrenColumnName() {\n    const {childrenColumnName} = this.props;\n\n    return childrenColumnName || 'children';\n  }\n\n  getRowSelectionKeyField() {\n    const {rowSelection} = this.props;\n\n    return rowSelection ? rowSelection.keyField || 'key' : '';\n  }\n\n  getExpandableKeyField() {\n    const {expandable, keyField} = this.props;\n\n    return expandable?.keyField || keyField || 'key';\n  }\n\n  hasChildrenRow(data: any) {\n    const key = this.getChildrenColumnName();\n    return data[key] && Array.isArray(data[key]) && data[key].length > 0;\n  }\n\n  // 展开和嵌套不能共存\n  isExpandableRow(data: any, rowIndex: number) {\n    const {expandable} = this.props;\n\n    return (\n      expandable &&\n      expandable.rowExpandable &&\n      expandable.rowExpandable(data, rowIndex)\n    );\n  }\n\n  // 获取当前行数据所有子行的key值\n  getDataChildrenKeys(data: any) {\n    let keys: Array<string> = [];\n\n    if (this.hasChildrenRow(data)) {\n      const key = this.getChildrenColumnName();\n      data[key].forEach(\n        (item: any) =>\n          (keys = [\n            ...keys,\n            ...this.getDataChildrenKeys(item),\n            item[this.getRowSelectionKeyField()]\n          ])\n      );\n    }\n\n    return keys;\n  }\n\n  hasCheckedRows(data: any) {\n    const selectedRowKeys = this.state.selectedRowKeys;\n    const childrenKeys = this.getDataChildrenKeys(data);\n\n    return (\n      intersection(selectedRowKeys, [\n        ...childrenKeys,\n        data[this.getRowSelectionKeyField()]\n      ]).length > 0\n    );\n  }\n\n  hasCheckedChildrenRows(data: any) {\n    const selectedRowKeys = this.state.selectedRowKeys;\n    const childrenKeys = this.getDataChildrenKeys(data);\n    const length = intersection(selectedRowKeys, childrenKeys).length;\n\n    return length > 0;\n  }\n\n  getExpandedIcons(isExpanded: boolean, record: any) {\n    const {classnames: cx} = this.props;\n\n    return isExpanded ? (\n      <i\n        className={cx('Table-expandBtn', 'is-active')}\n        onClick={this.onCollapseRow.bind(this, record)}\n      >\n        <Icon icon=\"right-arrow-bold\" className=\"icon\" />\n      </i>\n    ) : (\n      <i\n        className={cx('Table-expandBtn')}\n        onClick={this.onExpandRow.bind(this, record)}\n      >\n        <Icon icon=\"right-arrow-bold\" className=\"icon\" />\n      </i>\n    );\n  }\n\n  async selectedSingleRow(value: boolean, data: any) {\n    const {rowSelection, onSelect} = this.props;\n\n    const defaultKey = this.getRowSelectionKeyField();\n    const isRadio = rowSelection && rowSelection.type === 'radio';\n\n    if (onSelect) {\n      const prevented = await onSelect(\n        data,\n        value,\n        this.selectedRows,\n        this.state.selectedRowKeys\n      );\n      if (prevented) {\n        return;\n      }\n    }\n\n    if (value) {\n      if (isRadio) {\n        this.setState({selectedRowKeys: [data[defaultKey]]});\n      } else {\n        this.setState(prevState => ({\n          selectedRowKeys: [\n            ...prevState.selectedRowKeys,\n            data[defaultKey],\n            ...this.getDataChildrenKeys(data)\n          ].filter((key, i, a) => a.indexOf(key) === i)\n        }));\n      }\n    } else {\n      if (!isRadio) {\n        this.setState({\n          selectedRowKeys: this.state.selectedRowKeys.filter(\n            key =>\n              ![data[defaultKey], ...this.getDataChildrenKeys(data)].includes(\n                key\n              )\n          )\n        });\n      }\n    }\n  }\n\n  renderRow(data: any, rowIndex: number, levels: Array<number>) {\n    const {\n      classnames: cx,\n      rowSelection,\n      expandable,\n      draggable,\n      indentSize,\n      rowClassName,\n      lineHeight // 是否设置了固定行高\n    } = this.props;\n\n    const tdColumns = this.tdColumns;\n    const isExpandable = this.isExpandableTable();\n    const defaultKey = this.getRowSelectionKeyField();\n    const colCount = this.getExtraColumnCount();\n\n    // 当前行是否可展开\n    const isExpandableRow = this.isExpandableRow(data, rowIndex);\n    // 当前行是否有children\n    const hasChildrenRow = this.hasChildrenRow(data);\n\n    const isExpanded = !!find(\n      this.state.expandedRowKeys,\n      key => key == data[this.getExpandableKeyField()]\n    ); // == 匹配 否则'3'、3匹配不上\n\n    // 设置缩进效果\n    const indentDom =\n      levels.length > 0 ? (\n        <span\n          className={cx('Table-row-indent', `indent-level-${levels.length}`)}\n          style={levels.length > 0\n            ? {paddingLeft: (indentSize * levels.length) + 'px'} : {}}\n        ></span>\n      ) : null;\n\n    const cells = tdColumns.map((item, i) => {\n      const render =\n        item.render && typeof item.render === 'function'\n          ? item.render(data[item.key], data, rowIndex, i)\n          : null;\n      let props = {rowSpan: 1, colSpan: 1};\n      let children = render;\n      if (render && isObject(render)) {\n        props = render.props;\n        children = render.children;\n        // 如果合并行 且有展开行,那么合并行不生效\n        if (props.rowSpan > 1 && isExpandableRow && hasChildrenRow) {\n          props.rowSpan === 1;\n        }\n      }\n\n      const className = typeof item.className === 'function'\n        ? item.className(data, rowIndex) : ''\n      return props.rowSpan === 0 || props.colSpan === 0 ? null : (\n        <Cell\n          key={i}\n          {...props}\n          fixed={item.fixed === true ? 'left' : item.fixed}\n          column={item}\n          groupId={item.groupId}\n          className={cx({\n            [`${className}`]: !!className\n          })}\n        >\n          <div className={cx('Table-cell-wrapper', {\n            [cx('Table-cell-wrapper-prefix')]:\n              i === 0 &&\n                (!!indentDom || levels.length === 0 && hasChildrenRow),\n            [cx(`Table-cell-height-${lineHeight}`)]: !!lineHeight\n          })}>\n            {i === 0 && levels.length > 0 ? indentDom : null}\n            {i === 0 && hasChildrenRow\n              ? this.getExpandedIcons(isExpanded, data)\n              : null}\n            {render ? children : data[item.key]}\n          </div>\n        </Cell>\n      );\n    });\n\n    const rowClassNameClass =\n      rowClassName && typeof rowClassName === 'function'\n        ? rowClassName(data, rowIndex)\n        : '';\n\n    // 可展开和嵌套不能同时支持\n    // 设置了expandable 数据源里有children也就不生效了\n    // 拖拽排序 可选、可展开都先不支持了,可以支持嵌套展示\n    const checkboxProps =\n      rowSelection && rowSelection.getCheckboxProps\n        ? rowSelection.getCheckboxProps(data, rowIndex)\n        : {};\n\n    const expandedRowClassName =\n      expandable &&\n      expandable.expandedRowClassName &&\n      typeof expandable.expandedRowClassName === 'function'\n        ? expandable.expandedRowClassName(data, rowIndex)\n        : '';\n    const dataKey = this.getChildrenColumnName();\n\n    const children =\n      !draggable && isExpandableRow && isExpanded ? (\n        <tr\n          key=\"expanded\"\n          className={cx('Table-expanded-row', expandedRowClassName)}\n        >\n          <Cell colSpan={tdColumns.length + colCount}>\n            {expandable &&\n            expandable.expandedRowRender &&\n            typeof expandable.expandedRowRender === 'function'\n              ? expandable.expandedRowRender(data, rowIndex)\n              : null}\n          </Cell>\n        </tr>\n      ) : this.hasChildrenRow(data) && isExpanded ? (\n        data[dataKey].map((item: any, index: number) => {\n          return this.renderRow(item, index, [...levels, rowIndex]);\n        })\n      ) : null;\n\n    const isChecked = !!find(\n      this.state.selectedRowKeys,\n      key => key === data[defaultKey]\n    );\n    const hasChildrenChecked = this.hasCheckedChildrenRows(data);\n\n    return [\n      <tr\n        key={rowIndex}\n        row-index={rowIndex}\n        row-levels={levels.join(',')}\n        className={cx(\n          'Table-row',\n          `Table-row-level-${levels.length}`,\n          rowClassNameClass,\n          {\n            'Table-row-disabled': !!checkboxProps.disabled\n          }\n        )}\n        onMouseEnter={e => this.onRowMouseEnter(e, data, rowIndex)}\n        onMouseLeave={e => this.onRowMouseLeave(e, data, rowIndex)}\n        onClick={e => this.onRowClick(e, data, rowIndex)}\n      >\n        {draggable ? (\n          <Cell className={cx('Table-dragCell')}>\n            <Icon icon=\"drag-bar\" className=\"icon\"></Icon>\n          </Cell>\n        ) : null}\n        {!draggable && rowSelection ? (\n          <Cell\n            fixed={rowSelection.fixed ? 'left' : ''}\n            className={cx('Table-checkCell')}\n          >\n            <CheckBox\n              name={'Table-checkbox'}\n              type={rowSelection.type || 'checkbox'}\n              partial={hasChildrenChecked && !isChecked}\n              checked={hasChildrenChecked || isChecked}\n              onChange={(value, shift) => {\n                if (!(rowSelection && rowSelection.rowClick)) {\n                  this.selectedSingleRow(value, data);\n                }\n\n                event && event.stopPropagation();\n              }}\n              {...checkboxProps}\n            ></CheckBox>\n          </Cell>\n        ) : null}\n        {!draggable && isExpandable ? (\n          <Cell\n            fixed={expandable && expandable.fixed ? 'left' : ''}\n            className={cx('Table-cell-expand-icon-cell')}\n          >\n            {isExpandableRow || hasChildrenRow\n              ? this.getExpandedIcons(isExpanded, data)\n              : null}\n          </Cell>\n        ) : null}\n        {cells}\n      </tr>,\n      children\n    ];\n  }\n\n  renderTBody() {\n    const {\n      classnames: cx,\n      headSummary,\n      scroll,\n      placeholder,\n      sticky\n    } = this.props;\n\n    const tdColumns = this.tdColumns;\n    const hasScrollY = scroll && scroll.y;\n    const colCount = this.getExtraColumnCount();\n    return (\n      <tbody ref={this.tbodyDom} className={cx('Table-tbody')}>\n        {!hasScrollY && !sticky && headSummary\n          ? this.renderSummaryRow(headSummary)\n          : null}\n        {!this.state.dataSource.length ? (\n          <tr className={cx('Table-row', 'Table-empty-row')}>\n            <Cell colSpan={tdColumns.length + colCount}>\n              <div className={cx('Table-empty')}>\n                {typeof placeholder === 'function'\n                  ? placeholder()\n                  : placeholder}\n              </div>\n            </Cell>\n          </tr>\n        ) : (\n          this.state.dataSource.map((data, index) => {\n            return this.renderRow(data, index, []);\n          })\n        )}\n      </tbody>\n    );\n  }\n\n  isExpandableTable() {\n    const {expandable} = this.props;\n\n    // 设置了expandable 优先级更高\n    // 就不支持默认嵌套了\n    return !!expandable;\n  }\n\n  isNestedTable() {\n    const {dataSource} = this.props;\n    return !!find(dataSource, item => this.hasChildrenRow(item));\n  }\n\n  getExtraColumnCount() {\n    const {draggable, rowSelection} = this.props;\n\n    let count = 0;\n    if (draggable) {\n      count++;\n    } else {\n      if (this.isExpandableTable()) {\n        count++;\n      }\n      if (rowSelection) {\n        count++;\n      }\n    }\n\n    return count;\n  }\n\n  renderSummaryRow(summary: any) {\n    const {classnames: cx, dataSource} = this.props;\n    const cells: Array<React.ReactNode> = [];\n    const trs: Array<React.ReactNode> = [];\n    let colCount = this.getExtraColumnCount();\n\n    Array.isArray(summary)\n      ? summary.forEach((s, index) => {\n          Array.isArray(s)\n            ? trs.push(\n                <tr\n                  onMouseEnter={e => this.onRowMouseEnter(e)}\n                  onMouseLeave={e => this.onRowMouseLeave(e)}\n                  key={'summary-tr-' + index}\n                  className={cx('Table-summary-row')}\n                >\n                  {s.map((d, i) => {\n                    // 将操作列自动添加到第一列,用户的colSpan只需要关心实际的列数\n                    const colSpan =\n                      i === 0 ? (d.colSpan || 1) + colCount : d.colSpan;\n                    return (\n                      <Cell\n                        key={'summary-tr-cell-' + i}\n                        fixed={d.fixed}\n                        colSpan={colSpan}\n                      >\n                        {typeof d.render === 'function'\n                          ? d.render(dataSource)\n                          : d.render}\n                      </Cell>\n                    );\n                  })}\n                </tr>\n              )\n            : cells.push(\n                <Cell\n                  key={'summary-cell-' + index}\n                  fixed={s.fixed}\n                  colSpan={\n                    cells.length === 0 ? (s.colSpan || 1) + colCount : s.colSpan\n                  }\n                >\n                  {typeof s.render === 'function'\n                    ? s.render(dataSource)\n                    : s.render}\n                </Cell>\n              );\n        })\n      : null;\n\n    return summary\n      ? typeof summary === 'function'\n        ? summary(dataSource)\n        : [\n            cells.length > 0 ? (\n              <tr\n                onMouseEnter={e => this.onRowMouseEnter(e)}\n                onMouseLeave={e => this.onRowMouseLeave(e)}\n                key=\"summary-row\"\n                className={cx('Table-summary-row')}\n              >\n                {cells}\n              </tr>\n            ) : null,\n            ...trs\n          ]\n      : null;\n  }\n\n  renderTFoot() {\n    const {classnames: cx, footSummary} = this.props;\n    return (\n      <tfoot ref={this.tfootDom} className={cx('Table-summary')}>\n        {this.renderSummaryRow(footSummary)}\n      </tfoot>\n    );\n  }\n\n  updateTableDom(dom: HTMLElement) {\n    const {classnames: cx} = this.props;\n    const {scrollLeft, scrollWidth, offsetWidth} = dom;\n    const table = this.tableDom.current;\n\n    const leftCalss = cx('Table-ping-left');\n    if (scrollLeft > 0) {\n      table?.classList.add(leftCalss);\n    } else {\n      table?.classList.remove(leftCalss);\n    }\n\n    const rightClass = cx('Table-ping-right');\n    if (scrollLeft + offsetWidth < scrollWidth) {\n      table?.classList.add(rightClass);\n    } else {\n      table?.classList.remove(rightClass);\n    }\n  }\n\n  onTableContentScroll(event: React.ChangeEvent<any>) {\n    this.updateTableDom(event.target);\n  }\n\n  onWheel(event: WheelEvent) {\n    const {currentTarget, deltaX} =\n      event as unknown as React.WheelEvent<HTMLDivElement>;\n    if (deltaX) {\n      this.onTableScroll({\n        target: currentTarget,\n        scrollLeft: currentTarget.scrollLeft + deltaX\n      });\n\n      event.preventDefault();\n    }\n  }\n\n  onTableScroll(event: {target: HTMLDivElement; scrollLeft?: number}) {\n    const scrollDomRefs = [this.headerDom, this.bodyDom, this.footDom];\n\n    const {target, scrollLeft} = event;\n\n    scrollDomRefs.forEach(ref => {\n      const current = ref && ref.current;\n      if (current && current !== target) {\n        current.scrollLeft = scrollLeft || target.scrollLeft;\n      }\n    });\n\n    this.updateTableDom(target);\n  }\n\n  renderLoading() {\n    const {classnames: cx, loading} = this.props;\n    return (\n      <div className={cx('Table-loading')}>\n        {typeof loading === 'boolean' ? <Spinner></Spinner> : loading}\n      </div>\n    );\n  }\n\n  renderTable() {\n    const {\n      scroll,\n      footSummary,\n      loading,\n      showHeader,\n      itemActions,\n      classnames: cx\n    } = this.props;\n\n    // 设置了横向滚动轴 则table的table-layout为fixed\n    const hasScrollX = scroll && scroll.x;\n    const hoverRow = this.state.hoverRow;\n\n    return (\n      <div\n        ref={this.contentDom}\n        className={cx('Table-content')}\n        style={hasScrollX ? {overflow: 'auto hidden'} : {}}\n        onMouseLeave={this.onMouseLeave.bind(this)}\n      >\n        {itemActions && hoverRow\n          ? <ItemActionsWrapper\n              dom={hoverRow.target}\n              classnames={cx}>\n                {typeof itemActions === 'function'\n                  ? itemActions(hoverRow.record, hoverRow.rowIndex) : null}\n              </ItemActionsWrapper> : null}\n        <table\n          style={\n            hasScrollX\n              ? {width: scroll.x + 'px', tableLayout: 'fixed'}\n              : {tableLayout: 'auto'}\n          }\n          className={cx('Table-table')}\n        >\n          {this.renderColGroup()}\n          {showHeader ? this.renderTHead() : null}\n          {!loading ? this.renderTBody() : null}\n          {!loading && footSummary ? this.renderTFoot() : null}\n        </table>\n        {loading ? this.renderLoading() : null}\n      </div>\n    );\n  }\n\n  renderScrollTableHeader() {\n    const {\n      scroll,\n      headSummary,\n      sticky,\n      showHeader,\n      classnames: cx\n    } = this.props;\n\n    const style = {overflow: 'hidden'};\n    if (!!sticky) {\n      Object.assign(style, {top: 0});\n    }\n\n    const tableStyle = {};\n    if (scroll && (scroll.y || scroll.x)) {\n      Object.assign(tableStyle, {\n        width: scroll && scroll.x ? scroll.x + 'px' : '100%',\n        tableLayout: 'fixed'\n      });\n    }\n\n    return (\n      <div\n        ref={this.headerDom}\n        className={cx('Table-header', {\n          [cx('Table-sticky-holder')]: !!sticky\n        })}\n        style={style}\n      >\n        <table className={cx('Table-table')} style={tableStyle}>\n          {this.renderColGroup(this.state.colWidths)}\n          {showHeader ? this.renderTHead() : null}\n          {headSummary ? (\n            <tbody>{this.renderSummaryRow(headSummary)}</tbody>\n          ) : null}\n        </table>\n      </div>\n    );\n  }\n\n  renderScrollTableBody() {\n    const {\n      scroll,\n      itemActions,\n      classnames: cx\n    } = this.props;\n\n    const style = {};\n    const tableStyle = {};\n    if (scroll && (scroll.y || scroll.x)) {\n      Object.assign(style, {\n        overflow: 'auto scroll',\n        maxHeight: scroll.y\n      });\n\n      Object.assign(tableStyle, {\n        width: scroll && scroll.x ? scroll.x + 'px' : '100%',\n        tableLayout: 'fixed'\n      });\n    }\n\n    const hoverRow = this.state.hoverRow;\n\n    return (\n      <div\n        ref={this.bodyDom}\n        className={cx('Table-body')}\n        style={style}\n        onMouseLeave={this.onMouseLeave.bind(this)}>\n        {itemActions && hoverRow\n          ? <ItemActionsWrapper\n              dom={hoverRow.target}\n              classnames={cx}>\n                {typeof itemActions === 'function'\n                  ? itemActions(hoverRow.record, hoverRow.rowIndex) : null}\n              </ItemActionsWrapper> : null}\n          <table\n            className={cx('Table-table')}\n            style={tableStyle}>\n            {this.renderColGroup()}\n            {this.renderTBody()}\n          </table>\n      </div>\n    );\n  }\n\n  renderScrollTableFoot() {\n    const {scroll, classnames: cx} = this.props;\n\n    return (\n      <div\n        ref={this.footDom}\n        className={cx('Table-summary')}\n        style={{overflow: 'hidden'}}\n      >\n        <table\n          className={cx('Table-table')}\n          style={{width: scroll?.x + 'px' || '100%', tableLayout: 'fixed'}}\n        >\n          {this.renderTFoot()}\n        </table>\n      </div>\n    );\n  }\n\n  renderScrollTable() {\n    const {footSummary, loading, classnames: cx} = this.props;\n\n    return (\n      <div className={cx('Table-container')}>\n        {this.renderScrollTableHeader()}\n        {!loading ? this.renderScrollTableBody() : null}\n        {!loading && footSummary ? this.renderScrollTableFoot() : null}\n        {loading ? this.renderLoading() : null}\n      </div>\n    );\n  }\n\n  render() {\n    const {\n      title,\n      footer,\n      className,\n      scroll,\n      size,\n      bordered,\n      resizable,\n      columns,\n      sticky,\n      classnames: cx\n    } = this.props;\n\n    // 过滤掉设置了breakpoint属性的列\n    const filterColumns = columns.filter(\n      item => !item.breakpoint || !isBreakpoint(item.breakpoint)\n    );\n\n    this.thColumns = [];\n    this.tdColumns = [];\n    buildColumns(filterColumns, this.thColumns, this.tdColumns);\n\n    // 是否设置了纵向滚动\n    const hasScrollY = scroll && scroll.y;\n    // 是否设置了横向滚动\n    const hasScrollX = scroll && scroll.x;\n\n    return (\n      <div\n        ref={this.tableDom}\n        className={cx('Table-v2', className, {\n          [cx('Table-scroll-horizontal')]: hasScrollX,\n          [cx(`Table-${size}`)]: size,\n          [cx('Table-bordered')]: bordered,\n          [cx('Table-resizable')]: resizable\n        })}\n      >\n        {title ? (\n          <div className={cx('Table-title')}>\n            {typeof title === 'function' ? title() : title}\n          </div>\n        ) : null}\n\n        {hasScrollY || sticky ? (\n          this.renderScrollTable()\n        ) : (\n          <div className={cx('Table-container')}>{this.renderTable()}</div>\n        )}\n\n        {footer ? (\n          <div className={cx('Table-footer')}>\n            {typeof footer === 'function' ? footer() : footer}\n          </div>\n        ) : null}\n      </div>\n    );\n  }\n}\n\nexport default themeable(localeable(Table));\n"
         | 
| 12 12 | 
             
                ]
         | 
| 13 13 | 
             
            }
         | 
    
        package/lib/index.js
    CHANGED
    
    | @@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); | |
| 3 3 | 
             
            exports.registerLocale = exports.setDefaultLocale = exports.getDefaultLocale = exports.classnames = exports.getClassPrefix = exports.classPrefix = exports.getTheme = exports.theme = exports.setDefaultTheme = exports.validateObject = exports.validate = exports.ScopedContext = exports.Scoped = exports.registerIcon = exports.Icon = exports.setIconVendor = exports.resolveVariableAndFilter = exports.resolveVariable = exports.relativeValueRe = exports.filterDate = exports.filterSchema = exports.resolveRenderer = exports.registerOptionsControl = exports.registerFormItem = exports.getRenderers = exports.unRegisterRenderer = exports.registerRenderer = exports.getRendererByName = exports.normalizeOptions = exports.str2rules = exports.addRule = exports.setCustomEvalExpression = exports.setCustomEvalJs = exports.evalJS = exports.evalExpression = exports.registerTplEnginer = exports.registerFilter = exports.resizeSensor = exports.utils = exports.filter = exports.buildApi = exports.wrapFetcher = exports.OptionsControl = exports.FormItemWrap = exports.FormItem = exports.RegisterStore = exports.Renderer = exports.updateEnv = exports.clearStoresCache = exports.render = void 0;
         | 
| 4 4 | 
             
            exports.DataScope = exports.DataSchema = exports.animation = exports.makeTranslator = void 0;
         | 
| 5 5 | 
             
            var tslib_1 = require("tslib");
         | 
| 6 | 
            -
            /** @license amis v1.9.1-beta. | 
| 6 | 
            +
            /** @license amis v1.9.1-beta.4
         | 
| 7 7 | 
             
             *
         | 
| 8 8 | 
             
             * Copyright Baidu
         | 
| 9 9 | 
             
             *
         | 
| @@ -8,10 +8,10 @@ var index_1 = (0, tslib_1.__importDefault)(require("../../components/json-schema | |
| 8 8 | 
             
            var WithRemoteConfig_1 = require("../../components/WithRemoteConfig");
         | 
| 9 9 | 
             
            var EnhancedInputJSONSchema = (0, WithRemoteConfig_1.withRemoteConfig)({
         | 
| 10 10 | 
             
                sourceField: 'schema',
         | 
| 11 | 
            -
                injectedPropsFilter: function (props) {
         | 
| 11 | 
            +
                injectedPropsFilter: function (injectedProps, props) {
         | 
| 12 12 | 
             
                    return {
         | 
| 13 | 
            -
                        schema:  | 
| 14 | 
            -
                        loading:  | 
| 13 | 
            +
                        schema: injectedProps.config,
         | 
| 14 | 
            +
                        loading: injectedProps.loading
         | 
| 15 15 | 
             
                    };
         | 
| 16 16 | 
             
                }
         | 
| 17 17 | 
             
            })(index_1.default);
         | 
| @@ -6,8 +6,8 @@ | |
| 6 6 | 
             
                    "/src/renderers/Form/JSONSchema.tsx"
         | 
| 7 7 | 
             
                ],
         | 
| 8 8 | 
             
                "names": [],
         | 
| 9 | 
            -
                "mappings": ";;;;AAAA,6DAA0B;AAC1B,+BAAmE;AAEnE,0FAAiE;AAMjE,sEAAmE;AAyBnE,IAAM,uBAAuB,GAAG,IAAA,mCAAgB,EAAC;IAC/C,WAAW,EAAE,QAAQ;IACrB,mBAAmB,EAAE, | 
| 9 | 
            +
                "mappings": ";;;;AAAA,6DAA0B;AAC1B,+BAAmE;AAEnE,0FAAiE;AAMjE,sEAAmE;AAyBnE,IAAM,uBAAuB,GAAG,IAAA,mCAAgB,EAAC;IAC/C,WAAW,EAAE,QAAQ;IACrB,mBAAmB,EAAE,UAAC,aAAa,EAAE,KAAK;QACxC,OAAO;YACL,MAAM,EAAE,aAAa,CAAC,MAAM;YAC5B,OAAO,EAAE,aAAa,CAAC,OAAO;SAC/B,CAAC;IACJ,CAAC;CACF,CAAC,CAAC,eAAsB,CAAC,CAAC;AAC3B;IAA+C,kDAAoC;IAAnF;;IAMA,CAAC;IALC,kCAAM,GAAN;QACE,IAAU,IAAI,uBAAI,IAAI,CAAC,KAAK,EAAtB,EAAS,CAAa,CAAC;QAE7B,OAAO,8BAAC,uBAAuB,4BAAK,IAAI,EAAI,CAAC;IAC/C,CAAC;IACH,wBAAC;AAAD,CAAC,AAND,CAA+C,eAAK,CAAC,aAAa,GAMjE;;AAMD;IAAwC,mDAAiB;IAAzD;;IAA2D,CAAC;IAA/C,kBAAkB;QAJ9B,IAAA,eAAQ,EAAC;YACR,IAAI,EAAE,aAAa;YACnB,UAAU,EAAE,KAAK;SAClB,CAAC;OACW,kBAAkB,CAA6B;IAAD,yBAAC;CAAA,AAA5D,CAAwC,iBAAiB,GAAG;AAA/C,gDAAkB",
         | 
| 10 10 | 
             
                "sourcesContent": [
         | 
| 11 | 
            -
                    "import React from 'react';\nimport {FormItem, FormControlProps, FormBaseControl} from './Item';\nimport {autobind, isObjectShallowModified} from '../../utils/helper';\nimport InputJSONSchema from '../../components/json-schema/index';\nimport {\n  isPureVariable,\n  resolveVariableAndFilter\n} from '../../utils/tpl-builtin';\nimport {isApiOutdated, isEffectiveApi} from '../../utils/api';\nimport {withRemoteConfig} from '../../components/WithRemoteConfig';\n\n/**\n * JSON Schema\n * 文档:https://baidu.gitee.io/amis/docs/components/form/json-schema\n */\nexport interface JSONSchemaControlSchema extends FormBaseControl {\n  /**\n   * 指定为 JSON Schema\n   */\n  type: 'json-schema';\n\n  /**\n   * json-schema 详情,支持关联上下文数据\n   */\n  schema?: any;\n}\n\nexport interface JSONSchemaProps\n  extends FormControlProps,\n    Omit<\n      JSONSchemaControlSchema,\n      'type' | 'className' | 'descriptionClassName' | 'inputClassName'\n    > {}\n\nconst EnhancedInputJSONSchema = withRemoteConfig({\n  sourceField: 'schema',\n  injectedPropsFilter: props => {\n    return {\n      schema:  | 
| 11 | 
            +
                    "import React from 'react';\nimport {FormItem, FormControlProps, FormBaseControl} from './Item';\nimport {autobind, isObjectShallowModified} from '../../utils/helper';\nimport InputJSONSchema from '../../components/json-schema/index';\nimport {\n  isPureVariable,\n  resolveVariableAndFilter\n} from '../../utils/tpl-builtin';\nimport {isApiOutdated, isEffectiveApi} from '../../utils/api';\nimport {withRemoteConfig} from '../../components/WithRemoteConfig';\n\n/**\n * JSON Schema\n * 文档:https://baidu.gitee.io/amis/docs/components/form/json-schema\n */\nexport interface JSONSchemaControlSchema extends FormBaseControl {\n  /**\n   * 指定为 JSON Schema\n   */\n  type: 'json-schema';\n\n  /**\n   * json-schema 详情,支持关联上下文数据\n   */\n  schema?: any;\n}\n\nexport interface JSONSchemaProps\n  extends FormControlProps,\n    Omit<\n      JSONSchemaControlSchema,\n      'type' | 'className' | 'descriptionClassName' | 'inputClassName'\n    > {}\n\nconst EnhancedInputJSONSchema = withRemoteConfig({\n  sourceField: 'schema',\n  injectedPropsFilter: (injectedProps, props) => {\n    return {\n      schema: injectedProps.config,\n      loading: injectedProps.loading\n    };\n  }\n})(InputJSONSchema as any);\nexport default class JSONSchemaControl extends React.PureComponent<JSONSchemaProps> {\n  render() {\n    const {...rest} = this.props;\n\n    return <EnhancedInputJSONSchema {...rest} />;\n  }\n}\n\n@FormItem({\n  type: 'json-schema',\n  strictMode: false\n})\nexport class JSONSchemaRenderer extends JSONSchemaControl {}\n"
         | 
| 12 12 | 
             
                ]
         | 
| 13 13 | 
             
            }
         |