amis 1.6.5-beta.4 → 1.8.0-beta.1
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/Schema.d.ts +3 -2
- package/lib/Schema.js +0 -1
- package/lib/Schema.js.map +2 -2
- package/lib/components/Alert2.js +4 -2
- package/lib/components/Alert2.js.map +2 -2
- package/lib/components/Avatar.d.ts +20 -20
- package/lib/components/Card.d.ts +20 -20
- package/lib/components/CityArea.js +3 -0
- package/lib/components/CityArea.js.map +2 -2
- package/lib/components/DatePicker.d.ts +3 -0
- package/lib/components/DatePicker.js +41 -7
- package/lib/components/DatePicker.js.map +2 -2
- package/lib/components/ListGroup.d.ts +21 -21
- package/lib/components/PopUp.js +2 -1
- package/lib/components/PopUp.js.map +2 -2
- package/lib/components/Progress.js +12 -9
- package/lib/components/Progress.js.map +2 -2
- package/lib/components/Range.js.map +2 -2
- package/lib/components/Tabs.d.ts +27 -23
- package/lib/components/Tabs.js +37 -22
- package/lib/components/Tabs.js.map +2 -2
- package/lib/components/TooltipWrapper.d.ts +21 -20
- package/lib/components/TooltipWrapper.js +2 -2
- package/lib/components/TooltipWrapper.js.map +2 -2
- package/lib/components/calendar/Calendar.js +16 -12
- package/lib/components/calendar/Calendar.js.map +2 -2
- package/lib/components/formula/Editor.d.ts +3 -1
- package/lib/components/formula/Editor.js +20 -2
- package/lib/components/formula/Editor.js.map +2 -2
- package/lib/components/formula/Picker.d.ts +5 -0
- package/lib/components/formula/Picker.js +19 -4
- package/lib/components/formula/Picker.js.map +2 -2
- package/lib/components/icons.js +2 -0
- package/lib/components/icons.js.map +2 -2
- package/lib/factory.js +2 -2
- package/lib/factory.js.map +2 -2
- package/lib/icons/trash.js +10 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/index.js.map +2 -2
- package/lib/renderers/Action.d.ts +1 -1
- package/lib/renderers/Action.js.map +2 -2
- package/lib/renderers/ButtonGroup.d.ts +2 -2
- package/lib/renderers/ButtonGroup.js.map +1 -1
- package/lib/renderers/Dialog.d.ts +4 -0
- package/lib/renderers/Dialog.js +4 -3
- package/lib/renderers/Dialog.js.map +2 -2
- package/lib/renderers/DropDownButton.d.ts +2 -0
- package/lib/renderers/DropDownButton.js +13 -4
- package/lib/renderers/DropDownButton.js.map +2 -2
- package/lib/renderers/Form/Combo.d.ts +4 -3
- package/lib/renderers/Form/Combo.js +81 -32
- package/lib/renderers/Form/Combo.js.map +2 -2
- package/lib/renderers/Form/InputCity.js +4 -1
- package/lib/renderers/Form/InputCity.js.map +2 -2
- package/lib/renderers/Form/InputColor.js +3 -1
- package/lib/renderers/Form/InputColor.js.map +2 -2
- package/lib/renderers/Form/InputDate.js +3 -1
- package/lib/renderers/Form/InputDate.js.map +2 -2
- package/lib/renderers/Form/InputDateRange.js +3 -1
- package/lib/renderers/Form/InputDateRange.js.map +2 -2
- package/lib/renderers/Form/InputExcel.d.ts +4 -0
- package/lib/renderers/Form/InputExcel.js +33 -6
- package/lib/renderers/Form/InputExcel.js.map +2 -2
- package/lib/renderers/Form/InputFile.d.ts +4 -1
- package/lib/renderers/Form/InputFile.js +9 -0
- package/lib/renderers/Form/InputFile.js.map +2 -2
- package/lib/renderers/Form/InputFormula.d.ts +4 -0
- package/lib/renderers/Form/InputFormula.js +2 -2
- package/lib/renderers/Form/InputFormula.js.map +2 -2
- package/lib/renderers/Form/InputImage.d.ts +4 -1
- package/lib/renderers/Form/InputImage.js +12 -2
- package/lib/renderers/Form/InputImage.js.map +2 -2
- package/lib/renderers/Form/InputRange.d.ts +27 -9
- package/lib/renderers/Form/InputRange.js +88 -23
- package/lib/renderers/Form/InputRange.js.map +2 -2
- package/lib/renderers/Form/InputTable.js +4 -2
- package/lib/renderers/Form/InputTable.js.map +2 -2
- package/lib/renderers/Form/Select.js +3 -1
- package/lib/renderers/Form/Select.js.map +2 -2
- package/lib/renderers/Form/Switch.d.ts +7 -6
- package/lib/renderers/Form/Switch.js +4 -1
- package/lib/renderers/Form/Switch.js.map +2 -2
- package/lib/renderers/Log.js +2 -1
- package/lib/renderers/Log.js.map +2 -2
- package/lib/renderers/Page.js +2 -3
- package/lib/renderers/Page.js.map +2 -2
- package/lib/renderers/PopOver.js +1 -1
- package/lib/renderers/PopOver.js.map +2 -2
- package/lib/renderers/Progress.d.ts +1 -1
- package/lib/renderers/Progress.js +1 -1
- package/lib/renderers/Progress.js.map +2 -2
- package/lib/renderers/Table/TableRow.js +1 -1
- package/lib/renderers/Table/TableRow.js.map +2 -2
- package/lib/renderers/Tabs.d.ts +10 -2
- package/lib/renderers/Tabs.js +3 -3
- package/lib/renderers/Tabs.js.map +2 -2
- package/lib/renderers/TooltipWrapper.d.ts +104 -0
- package/lib/renderers/TooltipWrapper.js +59 -0
- package/lib/renderers/TooltipWrapper.js.map +13 -0
- package/lib/renderers/Video.d.ts +6 -0
- package/lib/renderers/Video.js +13 -6
- package/lib/renderers/Video.js.map +2 -2
- package/lib/store/table.js +1 -1
- package/lib/store/table.js.map +2 -2
- package/lib/themes/ang-ie11.css +242 -46
- package/lib/themes/ang.css +250 -41
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +242 -46
- package/lib/themes/antd.css +250 -41
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +231 -35
- package/lib/themes/cxd.css +252 -42
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +242 -46
- package/lib/themes/dark.css +250 -41
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default-ie11.css +231 -35
- package/lib/themes/default.css +252 -42
- package/lib/themes/default.css.map +1 -1
- package/package.json +1 -1
- package/schema.json +15871 -608
- package/scss/_properties.scss +23 -12
- package/scss/components/_alert.scss +1 -1
- package/scss/components/_button-group.scss +15 -0
- package/scss/components/_city-area.scss +2 -0
- package/scss/components/_formula.scss +18 -0
- package/scss/components/_popup.scss +13 -3
- package/scss/components/_progress.scss +3 -8
- package/scss/components/_tabs.scss +145 -13
- package/scss/components/_tooltip.scss +72 -0
- package/scss/components/form/_date.scss +13 -0
- package/scss/components/form/_number.scss +2 -0
- package/scss/components/form/_switch.scss +1 -3
- package/scss/themes/_cxd-variables.scss +2 -1
- package/sdk/ang-ie11.css +287 -48
- package/sdk/ang.css +295 -43
- package/sdk/antd-ie11.css +287 -48
- package/sdk/antd.css +295 -43
- 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/cxd-ie11.css +276 -37
- package/sdk/cxd.css +297 -44
- package/sdk/dark-ie11.css +287 -48
- package/sdk/dark.css +295 -43
- 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 +17 -17
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +276 -37
- package/sdk/sdk.css +297 -44
- package/sdk/sdk.js +1251 -1247
- 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/Schema.ts +5 -2
- package/src/components/Alert2.tsx +9 -3
- package/src/components/CityArea.tsx +3 -0
- package/src/components/DatePicker.tsx +56 -18
- package/src/components/PopUp.tsx +6 -5
- package/src/components/Progress.tsx +8 -12
- package/src/components/Range.tsx +7 -1
- package/src/components/Tabs.tsx +51 -21
- package/src/components/TooltipWrapper.tsx +4 -1
- package/src/components/calendar/Calendar.tsx +17 -12
- package/src/components/formula/Editor.tsx +34 -3
- package/src/components/formula/Picker.tsx +28 -1
- package/src/components/icons.tsx +2 -0
- package/src/factory.tsx +2 -2
- package/src/icons/trash.svg +8 -0
- package/src/index.tsx +1 -0
- package/src/renderers/Action.tsx +2 -1
- package/src/renderers/ButtonGroup.tsx +2 -2
- package/src/renderers/Dialog.tsx +17 -3
- package/src/renderers/DropDownButton.tsx +14 -3
- package/src/renderers/Form/Combo.tsx +84 -26
- package/src/renderers/Form/InputCity.tsx +13 -1
- package/src/renderers/Form/InputColor.tsx +2 -0
- package/src/renderers/Form/InputDate.tsx +2 -0
- package/src/renderers/Form/InputDateRange.tsx +2 -0
- package/src/renderers/Form/InputExcel.tsx +27 -5
- package/src/renderers/Form/InputFile.tsx +13 -1
- package/src/renderers/Form/InputFormula.tsx +7 -0
- package/src/renderers/Form/InputImage.tsx +32 -12
- package/src/renderers/Form/InputRange.tsx +95 -40
- package/src/renderers/Form/InputTable.tsx +6 -2
- package/src/renderers/Form/Select.tsx +2 -0
- package/src/renderers/Form/Switch.tsx +16 -9
- package/src/renderers/Log.tsx +2 -1
- package/src/renderers/Page.tsx +1 -2
- package/src/renderers/PopOver.tsx +1 -1
- package/src/renderers/Progress.tsx +2 -2
- package/src/renderers/Table/TableRow.tsx +1 -1
- package/src/renderers/Tabs.tsx +16 -4
- package/src/renderers/TooltipWrapper.tsx +219 -0
- package/src/renderers/Video.tsx +21 -6
- package/src/store/table.ts +1 -1
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/components/calendar/Calendar.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": "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",
|
9
|
+
"mappings": ";;;AAAA;;GAEG;AACH,6DAA0B;AAC1B,uFAA0D;AAC1D,uEAA4B;AAC5B,+DAA4B;AAC5B,qCAAoE;AACpE,6CAAuE;AAwBvE,IAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9B,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;CACb,CAAC,CAAC;AAoEH;IAA6B,+CAG5B;IAkOC,wBAAY,KAAU;QAAtB,YACE,kBAAM,KAAK,CAAC,SAYb;QAvBD,oBAAc,GAAG;YACf,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,CAAC;YACR,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;YACV,YAAY,EAAE,CAAC;SAChB,CAAC;QAiBF,iBAAW,GAAG,UAAC,OAAY;YACzB,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;gBAC/B,OAAO,MAAM,CAAC;aACf;iBAAM,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC3C,OAAO,QAAQ,CAAC;aACjB;iBAAM,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC3C,OAAO,UAAU,CAAC;aACnB;iBAAM,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC3C,OAAO,OAAO,CAAC;aAChB;YAED,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QAEF,oBAAc,GAAG;YACf,SAAS,EAAE;gBACT,OAAO;gBACP,aAAa;gBACb,WAAW;gBACX,aAAa;gBACb,YAAY;gBACZ,iBAAiB;aAClB;YACD,SAAS,EAAE,CAAC,UAAU,EAAE,cAAc,EAAE,UAAU,CAAC;YACnD,QAAQ,EAAE;gBACR,SAAS;gBACT,SAAS;gBACT,UAAU;gBACV,SAAS;gBACT,cAAc;gBACd,oBAAoB;gBACpB,aAAa;gBACb,oBAAoB;aACrB;SACF,CAAC;QA2CF,cAAQ,GAAG,UAAC,IAAY;YACtB,OAAO;gBACL,KAAI,CAAC,QAAQ,CAAC,EAAC,WAAW,EAAE,IAAI,EAAC,CAAC,CAAC;YACrC,CAAC,CAAC;QACJ,CAAC,CAAC;QAEF,kBAAY,GAAG,UAAC,MAAc,EAAE,IAAY,EAAE,UAAmB;YAC/D,OAAO;gBACL,KAAI,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;YACxD,CAAC,CAAC;QACJ,CAAC,CAAC;QAEF,aAAO,GAAG,UAAC,MAAc,EAAE,IAAY,EAAE,UAAmB;YAC1D,OAAO;gBACL,KAAI,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;YACnD,CAAC,CAAC;QACJ,CAAC,CAAC;QAYF,oBAAc,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;QAEjE,aAAO,GAAG,UAAC,IAAoB,EAAE,KAAU;YACzC,IAAI,KAAK,GAAG,KAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAC/C,KAAK,GAAG,KAAI,CAAC,KAAK,EAClB,IAAI,GAAG,CAAC,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EACrD,QAAQ,CAAC;YAEX,8CAA8C;YAC9C,2BAA2B;YAC3B,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;YAClB,OAAO,KAAK,GAAG,KAAI,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBAClD,QAAQ,GAAG,KAAI,CAAC,cAAc,CAAC,KAAK,CAAmB,CAAC;gBACxD,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;aAClC;YAED,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,EAAE;gBACrB,KAAI,CAAC,QAAQ,CAAC;oBACZ,YAAY,EAAE,IAAI;oBAClB,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAqB,CAAC;iBACrD,CAAC,CAAC;aACJ;YACD,KAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC,CAAC;QAEF,aAAO,GAAG,UAAC,IAAmC;YAC5C,uBAAuB;YACvB,IAAM,aAAa,GACjB,KAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ;gBAChC,CAAC,OAAO,CAAC,IAAI,CAAE,KAAI,CAAC,KAAK,CAAC,WAAsB,IAAI,EAAE,CAAC,CAAC;YAC1D,IAAM,SAAS,GAAG;gBAChB,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;gBACxC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;gBACvC,QAAQ,EAAE,EAAE;aACb,CAAC;YAEF,IAAK,KAAI,CAAC,KAAK,CAAC,QAAgB,KAAK,UAAU,EAAE;gBAC/C,SAAS,CAAC,IAAI,GAAG,UAAU,CAAC;aAC7B;YAED,OAAO,UAAC,CAAM;gBACZ,KAAI,CAAC,QAAQ,CAAC;oBACZ,QAAQ,EACN,KAAI,CAAC,KAAK,CAAC,QAAQ;yBAChB,KAAK,EAAE,CACP,IAAI,CAAC,CACJ,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAEpE,CAAC,OAAO,CAAC,IAAI,CAAC;oBACf,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC;iBAC7B,CAAC,CAAC;YACL,CAAC,CAAC;QACJ,CAAC,CAAC;QAEF,wBAAkB,GAAG,UAAC,CAAmB,EAAE,KAAe;YACxD,IAAM,IAAI,GAAQ,KAAI,CAAC;YACvB,IAAI,MAAM,GAAG,CAAC,CAAC,aAAa,EAC1B,QAAQ,GAAG,CAAC,EACZ,QAAQ,GAAG,KAAI,CAAC,KAAK,CAAC,QAAQ,EAC9B,WAAW,GAAG,KAAI,CAAC,KAAK,CAAC,YAAY,IAAI,QAAQ,EACjD,IAAS,CAAC;YAEZ,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC7C,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAAE,QAAQ,GAAG,CAAC,CAAC;qBACvD,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;gBAElE,IAAI,GAAG,QAAQ;qBACZ,KAAK,EAAE;qBACP,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,QAAQ,CAAC;qBAClC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,CAAE,EAAE,EAAE,CAAC,CAAC,CAAC;aAC3D;iBAAM,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE;gBACtD,IAAI,GAAG,QAAQ;qBACZ,KAAK,EAAE;qBACP,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,CAAE,EAAE,EAAE,CAAC,CAAC;qBACvD,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;aAC7B;iBAAM,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE;gBACxD,IAAI,GAAG,QAAQ;qBACZ,KAAK,EAAE;qBACP,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,CAAE,EAAE,EAAE,CAAC,CAAC;qBACzD,OAAO,CAAC,SAAS,CAAC;qBAClB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;aAC7B;iBAAM,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE;gBACrD,IAAI,GAAG,QAAQ;qBACZ,KAAK,EAAE;qBACP,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;qBAC1B,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;qBACxB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,CAAE,EAAE,EAAE,CAAC,CAAC,CAAC;aAC3D;YAED,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CACA,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,EAC1B,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,EAC7B,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,EAC7B,YAAY,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC;YAE5C,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,EAAE;gBACrB,IAAI,IAAI,GAAG,CAAC,CAAC,KAAI,CAAC,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,CAAC;gBAChD,IAAI,CAAC,IAAI,EAAE;oBACT,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBACzB;gBAED,KAAI,CAAC,QAAQ,CAAC;oBACZ,YAAY,EAAE,IAAI;oBAClB,QAAQ,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;oBACxC,UAAU,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,KAAI,CAAC,KAAK,CAAC,WAAW,CAAC;oBAChD,IAAI,EAAE,IAAI;iBACX,CAAC,CAAC;aACJ;iBAAM;gBACL,KAAI,CAAC,QAAQ,CAAC;oBACZ,YAAY,EAAE,IAAI;oBAClB,QAAQ,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;oBACxC,UAAU,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,KAAI,CAAC,KAAK,CAAC,WAAW,CAAC;iBACjD,CAAC,CAAC;gBACH,IAAI,KAAI,CAAC,KAAK,CAAC,aAAa,IAAI,KAAK,EAAE;oBACrC,IAAI,CAAC,aAAa,EAAE,CAAC;iBACtB;aACF;YAED,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC;QAEF,qBAAe,GAAG,UAAC,WAA0B;;YACrC,IAAA,KAAkB,WAAW,CAAC,QAAQ,EAAE,EAAvC,KAAK,WAAA,EAAE,MAAM,YAA0B,CAAC;YAC/C,IAAM,aAAa,GAAG,MAAA,KAAI,CAAC,KAAK,CAAC,OAAO,0CAAE,QAAQ,EAAE,CAAC;YACrD,IAAM,aAAa,GAAG,MAAA,KAAI,CAAC,KAAK,CAAC,OAAO,0CAAE,QAAQ,EAAE,CAAC;YAErD,IAAM,YAAY,GAAG;gBACnB,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG;gBACtD,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG;aACvD,CAAC;YACF,IAAM,aAAa,GAAG;gBACpB,GAAG,EAAE,KAAK,MAAK,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,CAAA,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBAC/D,GAAG,EAAE,KAAK,MAAK,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,CAAA,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aAC/D,CAAC;YACF,IAAM,YAAY,GAAG;gBACnB,GAAG,EACD,KAAK,MAAK,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,CAAA,IAAI,MAAM,MAAK,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,CAAA;oBAChE,CAAC,CAAC,aAAa,CAAC,IAAI;oBACpB,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE;gBAC/B,GAAG,EACD,KAAK,MAAK,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,CAAA,IAAI,MAAM,MAAK,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,CAAA;oBAChE,CAAC,CAAC,aAAa,CAAC,IAAI;oBACpB,CAAC,CAAC,CAAC;aACR,CAAC;YACF,OAAO;gBACL,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,aAAa;gBACpB,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,EAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAC;gBACxB,OAAO,EAAE,EAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAC;gBAC1B,OAAO,EAAE,EAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAC;aAC3B,CAAC;QACJ,CAAC,CAAC;QAEF,cAAQ,GAAG,UAAC,KAAa,EAAE,IAAc;YACvC,IAAI,GAAG,GAAG,KAAK,GAAG,EAAE,CAAC;YACrB,OAAO,GAAG,CAAC,MAAM,GAAG,KAAI,CAAC,cAAc,CAAC,IAAI,CAAC;gBAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;YAC/D,OAAO,GAAG,CAAC;QACb,CAAC,CAAC;QAEF,gBAAU,GAAG,UAAC,KAAiB,EAAE,YAA0B;YACzD,IAAM,OAAO,GAAgC,EAAE,CAAC;YAChD,KAAK,CAAC,GAAG,CAAC,UAAC,IAAc;gBACvB,IAAM,OAAO,GAAG,IAAA,iBAAQ,EACtB,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,EACtB,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,EACtB,CAAC,CACF,CAAC,GAAG,CAAC,UAAA,IAAI;oBACR,OAAO;wBACL,IAAI,EACF,IAAI,KAAK,OAAO;4BACd,CAAC,CAAC,KAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC;4BAC/B,CAAC,CAAC,KAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;wBAC/B,KAAK,EAAE,IAAI;qBACZ,CAAC;gBACJ,CAAC,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,EAAC,OAAO,SAAA,EAAC,CAAC,CAAC;YAC1B,CAAC,CAAC,CAAC;YACH,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;QAEF,eAAS,GAAG,UAAC,KAAe,EAAE,KAAe;YAC3C,IAAM,WAAW,GAAG,CAClB,KAAI,CAAC,KAAK,CAAC,YAAY;gBACvB,KAAI,CAAC,KAAK,CAAC,QAAQ;gBACnB,IAAA,gBAAM,GAAE,CACT,CAAC,KAAK,EAAE,CAAC;YACV,IAAM,IAAI,GAAG,IAAA,kCAAyB,EAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;YAElE,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,EAAE;gBACrB,KAAI,CAAC,QAAQ,CAAC;oBACZ,YAAY,EAAE,IAAI;oBAClB,UAAU,EAAE,IAAK,CAAC,MAAM,CAAC,KAAI,CAAC,KAAK,CAAC,WAAqB,CAAC;iBAC3D,CAAC,CAAC;aACJ;YACD,KAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACjD,KAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAC7C,CAAC,CAAC;QA3TA,IAAM,KAAK,GAAQ,KAAI,CAAC,iBAAiB,CAAC,KAAI,CAAC,KAAK,CAAC,CAAC;QAEtD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;YAC5B,KAAK,CAAC,IAAI,GAAG,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC;SAChC;QAED,KAAK,CAAC,WAAW,GAAG,KAAI,CAAC,KAAK,CAAC,UAAU;YACvC,CAAC,CAAC,KAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,IAAI,MAAM;YACjD,CAAC,CAAC,KAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC;QAElC,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC;;IACrB,CAAC;IA3ND,mCAAU,GAAV,UAAW,KAA0B;QACnC,IAAI,OAAO,GAAQ;YACf,IAAI,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE;YAC5B,IAAI,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE;SAC7B,EACD,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;QACvE,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE;YACzB,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;SAC3C;aAAM,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC,IAAI,EAAE;YACvD,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC;SACnB;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE;YACzB,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;SAC5C;QAED,OAAO,CAAC,QAAQ;YACd,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI;gBAC1B,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,IAAI;gBACnC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;QAEnC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,2CAAkB,GAAlB,UAAmB,SAA8B;QAC/C,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAClC,YAAY,GAAQ,EAAE,CAAC;QACzB,IACE,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK;YAC/B,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,QAAQ,EACxD;YACA,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;SAC9C;QAED,cAAc;QACd,yCAAyC;QACzC,6CAA6C;QAC7C,sCAAsC;QACtC,gBAAgB;QAChB,iCAAiC;QACjC,gDAAgD;QAChD,QAAQ;QACR,iCAAiC;QACjC,aAAa;QACb,2CAA2C;QAC3C,MAAM;QACN,IAAI;QAEJ,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ,EAAE;YACzC,YAAY,CAAC,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC;SAC3C;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,EAAE;YACrC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACvB,IAAI,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACvE,YAAY,CAAC,QAAQ,GAAG,eAAe,CAAC;aACzC;YACD,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;gBAC3B,IAAI,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY;qBAC9C,KAAK,EAAE;qBACP,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACxB,YAAY,CAAC,YAAY,GAAG,mBAAmB,CAAC;gBAChD,YAAY,CAAC,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;aACxE;SACF;QAED,IACE,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC,GAAG;YAC3B,KAAK,CAAC,eAAe,KAAK,SAAS,CAAC,eAAe,EACnD;YACA,IAAI,KAAK,CAAC,GAAG,EAAE;gBACb,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ;oBACrB,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC;gBAC5D,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;oBAC3B,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC;oBAClE,YAAY,CAAC,UAAU,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,CACxD,OAAO,CAAC,QAAQ,CACjB,CAAC;iBACH;aACF;iBAAM,IAAI,KAAK,CAAC,eAAe,EAAE;gBAChC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ;oBACrB,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ;yBACxC,KAAK,EAAE;wBACR,oDAAoD;yBACnD,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;gBAC/B,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;oBAC3B,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY;yBAChD,KAAK,EAAE;wBACR,aAAa;yBACZ,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;oBAC7B,YAAY,CAAC,UAAU,GAAG,YAAY,CAAC,YAAY;yBAChD,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC;yBACzB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;iBAC7B;aACF;iBAAM;gBACL,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ;oBACrB,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC;gBAC9D,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;oBAC3B,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC;oBACpE,YAAY,CAAC,UAAU,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,CACxD,OAAO,CAAC,QAAQ,CACjB,CAAC;iBACH;aACF;SACF;QAED,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ,EAAE;YACzC,YAAY,CAAC,QAAQ,GAAG,IAAA,gBAAM,EAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SAChD;QAED,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE;YACpC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;SAC7B;QAED,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAED,gCAAO,GAAP,UAAQ,KAA0B;QAChC,IAAI,GAAG,GAAG,OAAO,CAAC;QAElB,aAAa;QACb,IAAI,KAAK,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,gBAAM,CAAC,EAAE,EAAE;YAC1D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,GAAG;gBACD,GAAG,CAAC,KAAK,CACP,mDAAmD;oBACjD,KAAK,CAAC,eAAe;oBACrB,iDAAiD,CACpD,CAAC;SACL;IACH,CAAC;IAED,oCAAW,GAAX,UAAY,IAAU,EAAE,MAAe,EAAE,KAAW;QAClD,KAAK,GAAG,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,GAAG,IAAI,CAAC;QAEb,IAAI,KAAK,CAAC,GAAG,EAAE;YACb,CAAC,GAAG,gBAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;SACnD;aAAM,IAAI,KAAK,CAAC,eAAe,EAAE;YAChC,kBAAkB;YAClB,CAAC,GAAG,gBAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;SACpD;aAAM;YACL,CAAC,GAAG,IAAA,gBAAM,EAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;SAC/C;QAED,IAAI,KAAK,CAAC,MAAM;YAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACzC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,kCAAS,GAAT,UAAU,IAAS,EAAE,OAAY;QAC/B,IAAI,UAAU,CAAC;QAEf,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YAClC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;aACnD,IAAI,IAAI;YAAE,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAEnD,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;YAAE,UAAU,GAAG,IAAI,CAAC;QAE3D,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,0CAAiB,GAAjB,UAAkB,KAA0B;QAC1C,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAClC,IAAI,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,YAAY,IAAI,EAAE,EAC9C,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,UAAU,CAAC;QAEb,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE7C,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEnD,QAAQ,GAAG,YAAY;YACrB,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;YACvC,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;gBACnC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAExC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAErC,IAAI,YAAY;YAAE,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;aAChE,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YAAE,UAAU,GAAG,EAAE,CAAC;;YACrD,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;QAE7B,OAAO;YACL,QAAQ,EAAE,QAAQ;YAClB,WAAW,EAAE,OAAO,CAAC,QAAQ;YAC7B,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,YAAY;YAC1B,UAAU,EAAE,UAAU;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC;IACJ,CAAC;IA+DD,0CAAiB,GAAjB;QAAA,iBAuCC;QAtCC,IAAI,EAAE,GAAQ,IAAI,EAChB,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EACrC,KAAK,GAAQ,EAAC,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,IAAI,EAAC,CAAC;QACpE,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,IAAI;YAClD,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,IAAI;YAClD,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,IAAI;YACjD,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAElD;YACE,aAAa;YACb,UAAU;YACV,SAAS;YACT,iBAAiB;YACjB,aAAa;YACb,UAAU;YACV,UAAU;YACV,WAAW;YACX,YAAY;YACZ,SAAS;YACT,SAAS;YACT,WAAW;YACX,WAAW;YACX,iBAAiB;YACjB,YAAY;YACZ,UAAU;YACV,aAAa;YACb,aAAa;YACb,OAAO;SACR,CAAC,OAAO,CAAC,UAAA,GAAG,IAAI,OAAA,CAAC,KAAK,CAAC,GAAG,CAAC,GAAI,KAAI,CAAC,KAAa,CAAC,GAAG,CAAC,CAAC,EAAvC,CAAuC,CAAC,CAAC;QAE1D,OAAO,KAAK,CAAC;IACf,CAAC;IAoBD,mCAAU,GAAV,UAAW,EAAU,EAAE,MAAc,EAAE,IAAY,EAAE,UAAmB;QACtE,IAAI,MAAM,GAAG,EAAE,EACb,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC;QAElD,aAAa;QACb,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAE1D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAyMD,+BAAM,GAAN;;QACE,IAAM,SAAS,GAAG,2BAA8B,CAAC;QACjD,IAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE3C,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,UAAU,EAAE;YACtC,KAAgD;gBAC9C,UAAU;gBACV,IAAI,CAAC,KAAK,CAAC,aAAa;aACzB,EAHA,SAAS,CAAC,QAAQ,QAAA,EAAE,SAAS,CAAC,aAAa,QAAA,CAG1C;SACH;aAAM,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,EAAE;YAC1C,SAAS,CAAC,QAAQ,GAAG,OAAO,CAAC;SAC9B;aAAM,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE;YAC3C,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAC/B;QAED,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACrC,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QACjD,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACvC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAEnC,OAAO,CACL,uCAAK,SAAS,EAAE,IAAA,oBAAE,EAAC,uBAAuB,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;YAC/D,uCAAK,GAAG,EAAC,IAAI,EAAC,SAAS,EAAC,WAAW;gBACjC,8BAAC,SAAS,IAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,GAAI,CAC7D,CACF,CACP,CAAC;IACJ,CAAC;IACH,qBAAC;AAAD,CAAC,AAhkBD,CAA6B,eAAK,CAAC,SAAS,GAgkB3C;AAED,IAAM,QAAQ,GAAQ,IAAA,iBAAS,EAAC,cAAqB,CAAC,CAAC;AACvD,kBAAe,QAAoD,CAAC",
|
10
10
|
"sourcesContent": [
|
11
|
-
"/**\n * @file 基于 react-datetime 改造。\n */\nimport React from 'react';\nimport CustomCalendarContainer from './CalendarContainer';\nimport cx from 'classnames';\nimport moment from 'moment';\nimport {themeable, ThemeOutterProps, ThemeProps} from '../../theme';\nimport {convertArrayValueToMoment, getRange} from '../../utils/helper';\nimport {PickerOption} from '../PickerColumn';\n\nexport type DateType =\n | 'year'\n | 'month'\n | 'date'\n | 'hours'\n | 'minutes'\n | 'seconds';\nexport interface BoundaryObject {\n max: number;\n min: number;\n}\n\nexport interface DateBoundary {\n year: BoundaryObject;\n month: BoundaryObject;\n date: BoundaryObject;\n hours: BoundaryObject;\n minutes: BoundaryObject;\n seconds: BoundaryObject;\n}\n\nconst viewModes = Object.freeze({\n YEARS: 'years',\n MONTHS: 'months',\n DAYS: 'days',\n TIME: 'time'\n});\n\ninterface BaseDatePickerProps {\n className?: string;\n value?: any;\n defaultValue?: any;\n viewMode?: 'years' | 'months' | 'days' | 'time' | 'quarters';\n dateFormat?: boolean | string;\n inputFormat?: boolean | string;\n timeFormat?: boolean | string;\n input?: boolean;\n locale: string;\n date?: any;\n isValidDate?: (\n currentDate: moment.Moment,\n selected?: moment.Moment\n ) => boolean;\n onViewModeChange?: (type: string) => void;\n requiredConfirm?: boolean;\n onClose?: () => void;\n onChange?: (value: any) => void;\n isEndDate?: boolean;\n minDate?: moment.Moment;\n maxDate?: moment.Moment;\n viewDate?: moment.Moment;\n renderMonth?: (props: any, month: number, year: number, date: any) => void;\n renderDay?: (\n props: any,\n currentDate: moment.Moment,\n selectedDate: moment.Moment\n ) => JSX.Element;\n renderQuarter?: (\n props: any,\n quartar: number,\n year?: number,\n date?: moment.Moment\n ) => JSX.Element;\n schedules?: Array<{\n startTime: Date;\n endTime: Date;\n content: string | React.ReactElement;\n color?: string;\n }>;\n largeMode?: boolean;\n onScheduleClick?: (scheduleData: any) => void;\n hideHeader?: boolean;\n updateOn?: string;\n useMobileUI?: boolean;\n embed?: boolean;\n closeOnSelect?: boolean;\n showToolbar?: boolean;\n open?: boolean;\n utc?: boolean;\n displayTimeZone?: string;\n timeConstraints?: any;\n}\n\ninterface BaseDatePickerState {\n inputFormat?: boolean | string;\n currentView: string;\n viewDate: moment.Moment;\n selectedDate: moment.Moment;\n inputValue?: string;\n open?: boolean;\n}\n\ntype AllowedSetTime = 'hours' | 'minutes' | 'seconds' | 'milliseconds';\n\nclass BaseDatePicker extends React.Component<\n BaseDatePickerProps,\n BaseDatePickerState\n> {\n tzWarning: boolean;\n\n static defaultProps: {\n className: '';\n defaultValue: '';\n inputProps: {};\n input: true;\n onFocus: () => {};\n onBlur: () => {};\n onChange: () => {};\n timeFormat: true;\n timeConstraints: {};\n dateFormat: true;\n strictParsing: true;\n closeOnSelect: false;\n closeOnTab: true;\n utc: false;\n };\n\n getFormats(props: BaseDatePickerProps) {\n let formats: any = {\n date: props.dateFormat || '',\n time: props.timeFormat || ''\n },\n locale = this.localMoment(props.date, undefined, props).localeData();\n if (formats.date === true) {\n formats.date = locale.longDateFormat('L');\n } else if (this.getUpdateOn(formats) !== viewModes.DAYS) {\n formats.time = '';\n }\n\n if (formats.time === true) {\n formats.time = locale.longDateFormat('LT');\n }\n\n formats.datetime =\n formats.date && formats.time\n ? formats.date + ' ' + formats.time\n : formats.date || formats.time;\n\n return formats;\n }\n\n componentDidUpdate(prevProps: BaseDatePickerProps) {\n const props = this.props;\n let formats = this.getFormats(props),\n updatedState: any = {};\n if (\n props.value !== prevProps.value ||\n formats.datetime !== this.getFormats(prevProps).datetime\n ) {\n updatedState = this.getStateFromProps(props);\n }\n\n if (updatedState.open === undefined) {\n if (typeof props.open !== 'undefined') {\n updatedState.open = props.open;\n } else if (\n prevProps.closeOnSelect &&\n this.state.currentView !== viewModes.TIME\n ) {\n updatedState.open = false;\n } else {\n updatedState.open = this.state.open;\n }\n }\n\n if (props.viewMode !== prevProps.viewMode) {\n updatedState.currentView = props.viewMode;\n }\n\n if (props.locale !== prevProps.locale) {\n if (this.state.viewDate) {\n var updatedViewDate = this.state.viewDate.clone().locale(props.locale);\n updatedState.viewDate = updatedViewDate;\n }\n if (this.state.selectedDate) {\n var updatedSelectedDate = this.state.selectedDate\n .clone()\n .locale(props.locale);\n updatedState.selectedDate = updatedSelectedDate;\n updatedState.inputValue = updatedSelectedDate.format(formats.datetime);\n }\n }\n\n if (\n props.utc !== prevProps.utc ||\n props.displayTimeZone !== prevProps.displayTimeZone\n ) {\n if (props.utc) {\n if (this.state.viewDate)\n updatedState.viewDate = this.state.viewDate.clone().utc();\n if (this.state.selectedDate) {\n updatedState.selectedDate = this.state.selectedDate.clone().utc();\n updatedState.inputValue = updatedState.selectedDate.format(\n formats.datetime\n );\n }\n } else if (props.displayTimeZone) {\n if (this.state.viewDate)\n updatedState.viewDate = this.state.viewDate\n .clone()\n // @ts-ignore 其实目前不支持,需要自己 import \"moment-timezone\";\n .tz(props.displayTimeZone);\n if (this.state.selectedDate) {\n updatedState.selectedDate = this.state.selectedDate\n .clone()\n // @ts-ignore\n .tz(props.displayTimeZone);\n updatedState.inputValue = updatedState.selectedDate\n .tz(props.displayTimeZone)\n .format(formats.datetime);\n }\n } else {\n if (this.state.viewDate)\n updatedState.viewDate = this.state.viewDate.clone().local();\n if (this.state.selectedDate) {\n updatedState.selectedDate = this.state.selectedDate.clone().local();\n updatedState.inputValue = updatedState.selectedDate.format(\n formats.datetime\n );\n }\n }\n }\n\n if (props.viewDate !== prevProps.viewDate) {\n updatedState.viewDate = moment(props.viewDate);\n }\n\n this.checkTZ(props);\n }\n\n checkTZ(props: BaseDatePickerProps) {\n var con = console;\n\n // @ts-ignore\n if (props.displayTimeZone && !this.tzWarning && !moment.tz) {\n this.tzWarning = true;\n con &&\n con.error(\n 'react-datetime: displayTimeZone prop with value \"' +\n props.displayTimeZone +\n '\" is used but moment.js timezone is not loaded.'\n );\n }\n }\n\n localMoment(date?: any, format?: string, props?: any) {\n props = props || this.props;\n var m = null;\n\n if (props.utc) {\n m = moment.utc(date, format, props.strictParsing);\n } else if (props.displayTimeZone) {\n // @ts-ignore 以后再修\n m = moment.tz(date, format, props.displayTimeZone);\n } else {\n m = moment(date, format, props.strictParsing);\n }\n\n if (props.locale) m.locale(props.locale);\n return m;\n }\n\n parseDate(date: any, formats: any) {\n var parsedDate;\n\n if (date && typeof date === 'string')\n parsedDate = this.localMoment(date, formats.datetime);\n else if (date) parsedDate = this.localMoment(date);\n\n if (parsedDate && !parsedDate.isValid()) parsedDate = null;\n\n return parsedDate;\n }\n\n getStateFromProps(props: BaseDatePickerProps) {\n var formats = this.getFormats(props),\n date = props.value || props.defaultValue || '',\n selectedDate,\n viewDate,\n updateOn,\n inputValue;\n\n selectedDate = this.parseDate(date, formats);\n\n viewDate = this.parseDate(props.viewDate, formats);\n\n viewDate = selectedDate\n ? selectedDate.clone().startOf('month')\n : viewDate\n ? viewDate.clone().startOf('month')\n : this.localMoment().startOf('month');\n\n updateOn = this.getUpdateOn(formats);\n\n if (selectedDate) inputValue = selectedDate.format(formats.datetime);\n else if (date.isValid && !date.isValid()) inputValue = '';\n else inputValue = date || '';\n\n return {\n updateOn: updateOn,\n inputFormat: formats.datetime,\n viewDate: viewDate,\n selectedDate: selectedDate,\n inputValue: inputValue,\n open: props.open\n };\n }\n\n timeCellLength = {\n year: 4,\n month: 2,\n date: 2,\n hours: 2,\n minutes: 2,\n seconds: 2,\n milliseconds: 3\n };\n\n constructor(props: any) {\n super(props);\n const state: any = this.getStateFromProps(this.props);\n\n if (state.open === undefined) {\n state.open = !this.props.input;\n }\n\n state.currentView = this.props.dateFormat\n ? this.props.viewMode || state.updateOn || 'days'\n : this.props.viewMode || 'time';\n\n this.state = state;\n }\n\n getUpdateOn = (formats: any) => {\n if (formats.date.match(/[lLD]/)) {\n return 'days';\n } else if (formats.date.indexOf('M') !== -1) {\n return 'months';\n } else if (formats.date.indexOf('Q') !== -1) {\n return 'quarters';\n } else if (formats.date.indexOf('Y') !== -1) {\n return 'years';\n }\n\n return 'days';\n };\n\n componentProps = {\n fromProps: [\n 'value',\n 'isValidDate',\n 'renderDay',\n 'renderMonth',\n 'renderYear',\n 'timeConstraints'\n ],\n fromState: ['viewDate', 'selectedDate', 'updateOn'],\n fromThis: [\n 'setDate',\n 'setTime',\n 'showView',\n 'addTime',\n 'subtractTime',\n 'updateSelectedDate',\n 'localMoment',\n 'handleClickOutside'\n ]\n };\n\n getComponentProps() {\n let me: any = this,\n formats = this.getFormats(this.props),\n props: any = {dateFormat: formats.date, timeFormat: formats.time};\n this.componentProps.fromProps.forEach(function (name) {\n props[name] = me.props[name];\n });\n this.componentProps.fromState.forEach(function (name) {\n props[name] = me.state[name];\n });\n this.componentProps.fromThis.forEach(function (name) {\n props[name] = me[name];\n });\n\n props.setDateTimeState = this.setState.bind(this);\n\n [\n 'inputFormat',\n 'onChange',\n 'onClose',\n 'requiredConfirm',\n 'classPrefix',\n 'prevIcon',\n 'nextIcon',\n 'isEndDate',\n 'classnames',\n 'minDate',\n 'maxDate',\n 'schedules',\n 'largeMode',\n 'onScheduleClick',\n 'hideHeader',\n 'updateOn',\n 'useMobileUI',\n 'showToolbar',\n 'embed'\n ].forEach(key => (props[key] = (this.props as any)[key]));\n\n return props;\n }\n\n showView = (view: string) => {\n return () => {\n this.setState({currentView: view});\n };\n };\n\n subtractTime = (amount: string, type: string, toSelected: boolean) => {\n return () => {\n this.updateTime('subtract', amount, type, toSelected);\n };\n };\n\n addTime = (amount: string, type: string, toSelected: boolean) => {\n return () => {\n this.updateTime('add', amount, type, toSelected);\n };\n };\n\n updateTime(op: string, amount: string, type: string, toSelected: boolean) {\n var update = {},\n date = toSelected ? 'selectedDate' : 'viewDate';\n\n // @ts-ignore\n update[date] = this.state[date].clone()[op](amount, type);\n\n this.setState(update);\n }\n\n allowedSetTime = ['hours', 'minutes', 'seconds', 'milliseconds'];\n\n setTime = (type: AllowedSetTime, value: any) => {\n var index = this.allowedSetTime.indexOf(type) + 1,\n state = this.state,\n date = (state.selectedDate || state.viewDate).clone(),\n nextType;\n\n // It is needed to set all the time properties\n // to not to reset the time\n date[type](value);\n for (; index < this.allowedSetTime.length; index++) {\n nextType = this.allowedSetTime[index] as AllowedSetTime;\n date[nextType](date[nextType]());\n }\n\n if (!this.props.value) {\n this.setState({\n selectedDate: date,\n inputValue: date.format(state.inputFormat as string)\n });\n }\n this.props.onChange && this.props.onChange(date);\n };\n\n setDate = (type: 'month' | 'year' | 'quarters') => {\n // todo 没看懂这个是啥意思,好像没啥用\n const currentShould =\n this.props.viewMode === 'months' &&\n !/^mm$/i.test((this.props.inputFormat as string) || '');\n const nextViews = {\n month: currentShould ? 'months' : 'days',\n year: currentShould ? 'months' : 'days',\n quarters: ''\n };\n\n if ((this.props.viewMode as any) === 'quarters') {\n nextViews.year = 'quarters';\n }\n\n return (e: any) => {\n this.setState({\n viewDate: (\n this.state.viewDate\n .clone()\n [type](\n parseInt(e.target.closest('td').getAttribute('data-value'), 10)\n ) as moment.Moment\n ).startOf(type),\n currentView: nextViews[type]\n });\n };\n };\n\n updateSelectedDate = (e: React.MouseEvent, close?: boolean) => {\n const that: any = this;\n let target = e.currentTarget,\n modifier = 0,\n viewDate = this.state.viewDate,\n currentDate = this.state.selectedDate || viewDate,\n date: any;\n\n if (target.className.indexOf('rdtDay') !== -1) {\n if (target.className.indexOf('rdtNew') !== -1) modifier = 1;\n else if (target.className.indexOf('rdtOld') !== -1) modifier = -1;\n\n date = viewDate\n .clone()\n .month(viewDate.month() + modifier)\n .date(parseInt(target.getAttribute('data-value')!, 10));\n } else if (target.className.indexOf('rdtMonth') !== -1) {\n date = viewDate\n .clone()\n .month(parseInt(target.getAttribute('data-value')!, 10))\n .date(currentDate.date());\n } else if (target.className.indexOf('rdtQuarter') !== -1) {\n date = viewDate\n .clone()\n .quarter(parseInt(target.getAttribute('data-value')!, 10))\n .startOf('quarter')\n .date(currentDate.date());\n } else if (target.className.indexOf('rdtYear') !== -1) {\n date = viewDate\n .clone()\n .month(currentDate.month())\n .date(currentDate.date())\n .year(parseInt(target.getAttribute('data-value')!, 10));\n }\n\n date\n ?.hours(currentDate.hours())\n .minutes(currentDate.minutes())\n .seconds(currentDate.seconds())\n .milliseconds(currentDate.milliseconds());\n\n if (!this.props.value) {\n var open = !(this.props.closeOnSelect && close);\n if (!open) {\n that.props.onBlur(date);\n }\n\n this.setState({\n selectedDate: date,\n viewDate: date?.clone().startOf('month'),\n inputValue: date?.format(this.state.inputFormat),\n open: open\n });\n } else {\n this.setState({\n selectedDate: date,\n viewDate: date?.clone().startOf('month'),\n inputValue: date?.format(this.state.inputFormat)\n });\n if (this.props.closeOnSelect && close) {\n that.closeCalendar();\n }\n }\n\n that.props.onChange(date);\n };\n\n getDateBoundary = (currentDate: moment.Moment) => {\n const {years, months} = currentDate.toObject();\n const maxDateObject = this.props.maxDate?.toObject();\n const minDateObject = this.props.minDate?.toObject();\n\n const yearBoundary = {\n max: maxDateObject ? maxDateObject.years : years + 100,\n min: minDateObject ? minDateObject.years : years - 100\n };\n const monthBoundary = {\n max: years === maxDateObject?.years ? maxDateObject.months : 11,\n min: years === minDateObject?.years ? minDateObject.months : 0\n };\n const dateBoundary = {\n max:\n years === maxDateObject?.years && months === maxDateObject?.months\n ? maxDateObject.date\n : currentDate.daysInMonth(),\n min:\n years === minDateObject?.years && months === minDateObject?.months\n ? minDateObject.date\n : 1\n };\n return {\n year: yearBoundary,\n month: monthBoundary,\n date: dateBoundary,\n hours: {max: 23, min: 0},\n minutes: {max: 59, min: 0},\n seconds: {max: 59, min: 0}\n };\n };\n\n timeCell = (value: number, type: DateType) => {\n let str = value + '';\n while (str.length < this.timeCellLength[type]) str = '0' + str;\n return str;\n };\n\n getColumns = (types: DateType[], dateBoundary: DateBoundary) => {\n const columns: {options: PickerOption[]}[] = [];\n types.map((type: DateType) => {\n const options = getRange(\n dateBoundary[type].min,\n dateBoundary[type].max,\n 1\n ).map(item => {\n return {\n text:\n type === 'month'\n ? this.timeCell(item + 1, type)\n : this.timeCell(item, type),\n value: item\n };\n });\n columns.push({options});\n });\n return columns;\n };\n\n onConfirm = (value: number[], types: string[]) => {\n const currentDate = (\n this.state.selectedDate ||\n this.state.viewDate ||\n moment()\n ).clone();\n const date = convertArrayValueToMoment(value, types, currentDate);\n\n if (!this.props.value) {\n this.setState({\n selectedDate: date,\n inputValue: date!.format(this.state.inputFormat as string)\n });\n }\n this.props.onChange && this.props.onChange(date);\n this.props.onClose && this.props.onClose();\n };\n\n render() {\n const Component = CustomCalendarContainer as any;\n const viewProps = this.getComponentProps();\n\n if (this.props.viewMode === 'quarters') {\n [viewProps.updateOn, viewProps.renderQuarter] = [\n 'quarters',\n this.props.renderQuarter\n ];\n } else if (this.props.viewMode === 'years') {\n viewProps.updateOn = 'years';\n } else if (this.props.viewMode === 'months') {\n viewProps.updateOn = 'months';\n }\n\n viewProps.onConfirm = this.onConfirm;\n viewProps.getDateBoundary = this.getDateBoundary;\n viewProps.getColumns = this.getColumns;\n viewProps.timeCell = this.timeCell;\n\n return (\n <div className={cx('rdt rdtStatic rdtOpen', this.props.className)}>\n <div key=\"dt\" className=\"rdtPicker\">\n <Component view={this.state.currentView} viewProps={viewProps} />\n </div>\n </div>\n );\n }\n}\n\nconst Calendar: any = themeable(BaseDatePicker as any);\nexport default Calendar as React.ComponentType<BaseDatePickerProps>;\n"
|
11
|
+
"/**\n * @file 基于 react-datetime 改造。\n */\nimport React from 'react';\nimport CustomCalendarContainer from './CalendarContainer';\nimport cx from 'classnames';\nimport moment from 'moment';\nimport {themeable, ThemeOutterProps, ThemeProps} from '../../theme';\nimport {convertArrayValueToMoment, getRange} from '../../utils/helper';\nimport {PickerOption} from '../PickerColumn';\n\nexport type DateType =\n | 'year'\n | 'month'\n | 'date'\n | 'hours'\n | 'minutes'\n | 'seconds';\nexport interface BoundaryObject {\n max: number;\n min: number;\n}\n\nexport interface DateBoundary {\n year: BoundaryObject;\n month: BoundaryObject;\n date: BoundaryObject;\n hours: BoundaryObject;\n minutes: BoundaryObject;\n seconds: BoundaryObject;\n}\n\nconst viewModes = Object.freeze({\n YEARS: 'years',\n MONTHS: 'months',\n DAYS: 'days',\n TIME: 'time'\n});\n\ninterface BaseDatePickerProps {\n className?: string;\n value?: any;\n defaultValue?: any;\n viewMode?: 'years' | 'months' | 'days' | 'time' | 'quarters';\n dateFormat?: boolean | string;\n inputFormat?: boolean | string;\n timeFormat?: boolean | string;\n input?: boolean;\n locale: string;\n date?: any;\n isValidDate?: (\n currentDate: moment.Moment,\n selected?: moment.Moment\n ) => boolean;\n onViewModeChange?: (type: string) => void;\n requiredConfirm?: boolean;\n onClose?: () => void;\n onChange?: (value: any) => void;\n isEndDate?: boolean;\n minDate?: moment.Moment;\n maxDate?: moment.Moment;\n viewDate?: moment.Moment;\n renderMonth?: (props: any, month: number, year: number, date: any) => void;\n renderDay?: (\n props: any,\n currentDate: moment.Moment,\n selectedDate: moment.Moment\n ) => JSX.Element;\n renderQuarter?: (\n props: any,\n quartar: number,\n year?: number,\n date?: moment.Moment\n ) => JSX.Element;\n schedules?: Array<{\n startTime: Date;\n endTime: Date;\n content: string | React.ReactElement;\n color?: string;\n }>;\n largeMode?: boolean;\n onScheduleClick?: (scheduleData: any) => void;\n hideHeader?: boolean;\n updateOn?: string;\n useMobileUI?: boolean;\n embed?: boolean;\n closeOnSelect?: boolean;\n showToolbar?: boolean;\n open?: boolean;\n utc?: boolean;\n displayTimeZone?: string;\n timeConstraints?: any;\n}\n\ninterface BaseDatePickerState {\n inputFormat?: boolean | string;\n currentView: string;\n viewDate: moment.Moment;\n selectedDate: moment.Moment;\n inputValue?: string;\n open?: boolean;\n}\n\ntype AllowedSetTime = 'hours' | 'minutes' | 'seconds' | 'milliseconds';\n\nclass BaseDatePicker extends React.Component<\n BaseDatePickerProps,\n BaseDatePickerState\n> {\n tzWarning: boolean;\n\n static defaultProps: {\n className: '';\n defaultValue: '';\n inputProps: {};\n input: true;\n onFocus: () => {};\n onBlur: () => {};\n onChange: () => {};\n timeFormat: true;\n timeConstraints: {};\n dateFormat: true;\n strictParsing: true;\n closeOnSelect: false;\n closeOnTab: true;\n utc: false;\n };\n\n getFormats(props: BaseDatePickerProps) {\n let formats: any = {\n date: props.dateFormat || '',\n time: props.timeFormat || ''\n },\n locale = this.localMoment(props.date, undefined, props).localeData();\n if (formats.date === true) {\n formats.date = locale.longDateFormat('L');\n } else if (this.getUpdateOn(formats) !== viewModes.DAYS) {\n formats.time = '';\n }\n\n if (formats.time === true) {\n formats.time = locale.longDateFormat('LT');\n }\n\n formats.datetime =\n formats.date && formats.time\n ? formats.date + ' ' + formats.time\n : formats.date || formats.time;\n\n return formats;\n }\n\n componentDidUpdate(prevProps: BaseDatePickerProps) {\n const props = this.props;\n let formats = this.getFormats(props),\n updatedState: any = {};\n if (\n props.value !== prevProps.value ||\n formats.datetime !== this.getFormats(prevProps).datetime\n ) {\n updatedState = this.getStateFromProps(props);\n }\n\n // open 是外部控制了\n // if (updatedState.open === undefined) {\n // if (typeof props.open !== 'undefined') {\n // updatedState.open = props.open;\n // } else if (\n // prevProps.closeOnSelect &&\n // this.state.currentView !== viewModes.TIME\n // ) {\n // updatedState.open = false;\n // } else {\n // updatedState.open = this.state.open;\n // }\n // }\n\n if (props.viewMode !== prevProps.viewMode) {\n updatedState.currentView = props.viewMode;\n }\n\n if (props.locale !== prevProps.locale) {\n if (this.state.viewDate) {\n var updatedViewDate = this.state.viewDate.clone().locale(props.locale);\n updatedState.viewDate = updatedViewDate;\n }\n if (this.state.selectedDate) {\n var updatedSelectedDate = this.state.selectedDate\n .clone()\n .locale(props.locale);\n updatedState.selectedDate = updatedSelectedDate;\n updatedState.inputValue = updatedSelectedDate.format(formats.datetime);\n }\n }\n\n if (\n props.utc !== prevProps.utc ||\n props.displayTimeZone !== prevProps.displayTimeZone\n ) {\n if (props.utc) {\n if (this.state.viewDate)\n updatedState.viewDate = this.state.viewDate.clone().utc();\n if (this.state.selectedDate) {\n updatedState.selectedDate = this.state.selectedDate.clone().utc();\n updatedState.inputValue = updatedState.selectedDate.format(\n formats.datetime\n );\n }\n } else if (props.displayTimeZone) {\n if (this.state.viewDate)\n updatedState.viewDate = this.state.viewDate\n .clone()\n // @ts-ignore 其实目前不支持,需要自己 import \"moment-timezone\";\n .tz(props.displayTimeZone);\n if (this.state.selectedDate) {\n updatedState.selectedDate = this.state.selectedDate\n .clone()\n // @ts-ignore\n .tz(props.displayTimeZone);\n updatedState.inputValue = updatedState.selectedDate\n .tz(props.displayTimeZone)\n .format(formats.datetime);\n }\n } else {\n if (this.state.viewDate)\n updatedState.viewDate = this.state.viewDate.clone().local();\n if (this.state.selectedDate) {\n updatedState.selectedDate = this.state.selectedDate.clone().local();\n updatedState.inputValue = updatedState.selectedDate.format(\n formats.datetime\n );\n }\n }\n }\n\n if (props.viewDate !== prevProps.viewDate) {\n updatedState.viewDate = moment(props.viewDate);\n }\n\n if (Object.keys(updatedState).length) {\n this.setState(updatedState);\n }\n\n this.checkTZ(props);\n }\n\n checkTZ(props: BaseDatePickerProps) {\n var con = console;\n\n // @ts-ignore\n if (props.displayTimeZone && !this.tzWarning && !moment.tz) {\n this.tzWarning = true;\n con &&\n con.error(\n 'react-datetime: displayTimeZone prop with value \"' +\n props.displayTimeZone +\n '\" is used but moment.js timezone is not loaded.'\n );\n }\n }\n\n localMoment(date?: any, format?: string, props?: any) {\n props = props || this.props;\n var m = null;\n\n if (props.utc) {\n m = moment.utc(date, format, props.strictParsing);\n } else if (props.displayTimeZone) {\n // @ts-ignore 以后再修\n m = moment.tz(date, format, props.displayTimeZone);\n } else {\n m = moment(date, format, props.strictParsing);\n }\n\n if (props.locale) m.locale(props.locale);\n return m;\n }\n\n parseDate(date: any, formats: any) {\n var parsedDate;\n\n if (date && typeof date === 'string')\n parsedDate = this.localMoment(date, formats.datetime);\n else if (date) parsedDate = this.localMoment(date);\n\n if (parsedDate && !parsedDate.isValid()) parsedDate = null;\n\n return parsedDate;\n }\n\n getStateFromProps(props: BaseDatePickerProps) {\n var formats = this.getFormats(props),\n date = props.value || props.defaultValue || '',\n selectedDate,\n viewDate,\n updateOn,\n inputValue;\n\n selectedDate = this.parseDate(date, formats);\n\n viewDate = this.parseDate(props.viewDate, formats);\n\n viewDate = selectedDate\n ? selectedDate.clone().startOf('month')\n : viewDate\n ? viewDate.clone().startOf('month')\n : this.localMoment().startOf('month');\n\n updateOn = this.getUpdateOn(formats);\n\n if (selectedDate) inputValue = selectedDate.format(formats.datetime);\n else if (date.isValid && !date.isValid()) inputValue = '';\n else inputValue = date || '';\n\n return {\n updateOn: updateOn,\n inputFormat: formats.datetime,\n viewDate: viewDate,\n selectedDate: selectedDate,\n inputValue: inputValue,\n open: props.open\n };\n }\n\n timeCellLength = {\n year: 4,\n month: 2,\n date: 2,\n hours: 2,\n minutes: 2,\n seconds: 2,\n milliseconds: 3\n };\n\n constructor(props: any) {\n super(props);\n const state: any = this.getStateFromProps(this.props);\n\n if (state.open === undefined) {\n state.open = !this.props.input;\n }\n\n state.currentView = this.props.dateFormat\n ? this.props.viewMode || state.updateOn || 'days'\n : this.props.viewMode || 'time';\n\n this.state = state;\n }\n\n getUpdateOn = (formats: any) => {\n if (formats.date.match(/[lLD]/)) {\n return 'days';\n } else if (formats.date.indexOf('M') !== -1) {\n return 'months';\n } else if (formats.date.indexOf('Q') !== -1) {\n return 'quarters';\n } else if (formats.date.indexOf('Y') !== -1) {\n return 'years';\n }\n\n return 'days';\n };\n\n componentProps = {\n fromProps: [\n 'value',\n 'isValidDate',\n 'renderDay',\n 'renderMonth',\n 'renderYear',\n 'timeConstraints'\n ],\n fromState: ['viewDate', 'selectedDate', 'updateOn'],\n fromThis: [\n 'setDate',\n 'setTime',\n 'showView',\n 'addTime',\n 'subtractTime',\n 'updateSelectedDate',\n 'localMoment',\n 'handleClickOutside'\n ]\n };\n\n getComponentProps() {\n let me: any = this,\n formats = this.getFormats(this.props),\n props: any = {dateFormat: formats.date, timeFormat: formats.time};\n this.componentProps.fromProps.forEach(function (name) {\n props[name] = me.props[name];\n });\n this.componentProps.fromState.forEach(function (name) {\n props[name] = me.state[name];\n });\n this.componentProps.fromThis.forEach(function (name) {\n props[name] = me[name];\n });\n\n props.setDateTimeState = this.setState.bind(this);\n\n [\n 'inputFormat',\n 'onChange',\n 'onClose',\n 'requiredConfirm',\n 'classPrefix',\n 'prevIcon',\n 'nextIcon',\n 'isEndDate',\n 'classnames',\n 'minDate',\n 'maxDate',\n 'schedules',\n 'largeMode',\n 'onScheduleClick',\n 'hideHeader',\n 'updateOn',\n 'useMobileUI',\n 'showToolbar',\n 'embed'\n ].forEach(key => (props[key] = (this.props as any)[key]));\n\n return props;\n }\n\n showView = (view: string) => {\n return () => {\n this.setState({currentView: view});\n };\n };\n\n subtractTime = (amount: string, type: string, toSelected: boolean) => {\n return () => {\n this.updateTime('subtract', amount, type, toSelected);\n };\n };\n\n addTime = (amount: string, type: string, toSelected: boolean) => {\n return () => {\n this.updateTime('add', amount, type, toSelected);\n };\n };\n\n updateTime(op: string, amount: string, type: string, toSelected: boolean) {\n var update = {},\n date = toSelected ? 'selectedDate' : 'viewDate';\n\n // @ts-ignore\n update[date] = this.state[date].clone()[op](amount, type);\n\n this.setState(update);\n }\n\n allowedSetTime = ['hours', 'minutes', 'seconds', 'milliseconds'];\n\n setTime = (type: AllowedSetTime, value: any) => {\n var index = this.allowedSetTime.indexOf(type) + 1,\n state = this.state,\n date = (state.selectedDate || state.viewDate).clone(),\n nextType;\n\n // It is needed to set all the time properties\n // to not to reset the time\n date[type](value);\n for (; index < this.allowedSetTime.length; index++) {\n nextType = this.allowedSetTime[index] as AllowedSetTime;\n date[nextType](date[nextType]());\n }\n\n if (!this.props.value) {\n this.setState({\n selectedDate: date,\n inputValue: date.format(state.inputFormat as string)\n });\n }\n this.props.onChange && this.props.onChange(date);\n };\n\n setDate = (type: 'month' | 'year' | 'quarters') => {\n // todo 没看懂这个是啥意思,好像没啥用\n const currentShould =\n this.props.viewMode === 'months' &&\n !/^mm$/i.test((this.props.inputFormat as string) || '');\n const nextViews = {\n month: currentShould ? 'months' : 'days',\n year: currentShould ? 'months' : 'days',\n quarters: ''\n };\n\n if ((this.props.viewMode as any) === 'quarters') {\n nextViews.year = 'quarters';\n }\n\n return (e: any) => {\n this.setState({\n viewDate: (\n this.state.viewDate\n .clone()\n [type](\n parseInt(e.target.closest('td').getAttribute('data-value'), 10)\n ) as moment.Moment\n ).startOf(type),\n currentView: nextViews[type]\n });\n };\n };\n\n updateSelectedDate = (e: React.MouseEvent, close?: boolean) => {\n const that: any = this;\n let target = e.currentTarget,\n modifier = 0,\n viewDate = this.state.viewDate,\n currentDate = this.state.selectedDate || viewDate,\n date: any;\n\n if (target.className.indexOf('rdtDay') !== -1) {\n if (target.className.indexOf('rdtNew') !== -1) modifier = 1;\n else if (target.className.indexOf('rdtOld') !== -1) modifier = -1;\n\n date = viewDate\n .clone()\n .month(viewDate.month() + modifier)\n .date(parseInt(target.getAttribute('data-value')!, 10));\n } else if (target.className.indexOf('rdtMonth') !== -1) {\n date = viewDate\n .clone()\n .month(parseInt(target.getAttribute('data-value')!, 10))\n .date(currentDate.date());\n } else if (target.className.indexOf('rdtQuarter') !== -1) {\n date = viewDate\n .clone()\n .quarter(parseInt(target.getAttribute('data-value')!, 10))\n .startOf('quarter')\n .date(currentDate.date());\n } else if (target.className.indexOf('rdtYear') !== -1) {\n date = viewDate\n .clone()\n .month(currentDate.month())\n .date(currentDate.date())\n .year(parseInt(target.getAttribute('data-value')!, 10));\n }\n\n date\n ?.hours(currentDate.hours())\n .minutes(currentDate.minutes())\n .seconds(currentDate.seconds())\n .milliseconds(currentDate.milliseconds());\n\n if (!this.props.value) {\n var open = !(this.props.closeOnSelect && close);\n if (!open) {\n that.props.onBlur(date);\n }\n\n this.setState({\n selectedDate: date,\n viewDate: date?.clone().startOf('month'),\n inputValue: date?.format(this.state.inputFormat),\n open: open\n });\n } else {\n this.setState({\n selectedDate: date,\n viewDate: date?.clone().startOf('month'),\n inputValue: date?.format(this.state.inputFormat)\n });\n if (this.props.closeOnSelect && close) {\n that.closeCalendar();\n }\n }\n\n that.props.onChange(date);\n };\n\n getDateBoundary = (currentDate: moment.Moment) => {\n const {years, months} = currentDate.toObject();\n const maxDateObject = this.props.maxDate?.toObject();\n const minDateObject = this.props.minDate?.toObject();\n\n const yearBoundary = {\n max: maxDateObject ? maxDateObject.years : years + 100,\n min: minDateObject ? minDateObject.years : years - 100\n };\n const monthBoundary = {\n max: years === maxDateObject?.years ? maxDateObject.months : 11,\n min: years === minDateObject?.years ? minDateObject.months : 0\n };\n const dateBoundary = {\n max:\n years === maxDateObject?.years && months === maxDateObject?.months\n ? maxDateObject.date\n : currentDate.daysInMonth(),\n min:\n years === minDateObject?.years && months === minDateObject?.months\n ? minDateObject.date\n : 1\n };\n return {\n year: yearBoundary,\n month: monthBoundary,\n date: dateBoundary,\n hours: {max: 23, min: 0},\n minutes: {max: 59, min: 0},\n seconds: {max: 59, min: 0}\n };\n };\n\n timeCell = (value: number, type: DateType) => {\n let str = value + '';\n while (str.length < this.timeCellLength[type]) str = '0' + str;\n return str;\n };\n\n getColumns = (types: DateType[], dateBoundary: DateBoundary) => {\n const columns: {options: PickerOption[]}[] = [];\n types.map((type: DateType) => {\n const options = getRange(\n dateBoundary[type].min,\n dateBoundary[type].max,\n 1\n ).map(item => {\n return {\n text:\n type === 'month'\n ? this.timeCell(item + 1, type)\n : this.timeCell(item, type),\n value: item\n };\n });\n columns.push({options});\n });\n return columns;\n };\n\n onConfirm = (value: number[], types: string[]) => {\n const currentDate = (\n this.state.selectedDate ||\n this.state.viewDate ||\n moment()\n ).clone();\n const date = convertArrayValueToMoment(value, types, currentDate);\n\n if (!this.props.value) {\n this.setState({\n selectedDate: date,\n inputValue: date!.format(this.state.inputFormat as string)\n });\n }\n this.props.onChange && this.props.onChange(date);\n this.props.onClose && this.props.onClose();\n };\n\n render() {\n const Component = CustomCalendarContainer as any;\n const viewProps = this.getComponentProps();\n\n if (this.props.viewMode === 'quarters') {\n [viewProps.updateOn, viewProps.renderQuarter] = [\n 'quarters',\n this.props.renderQuarter\n ];\n } else if (this.props.viewMode === 'years') {\n viewProps.updateOn = 'years';\n } else if (this.props.viewMode === 'months') {\n viewProps.updateOn = 'months';\n }\n\n viewProps.onConfirm = this.onConfirm;\n viewProps.getDateBoundary = this.getDateBoundary;\n viewProps.getColumns = this.getColumns;\n viewProps.timeCell = this.timeCell;\n\n return (\n <div className={cx('rdt rdtStatic rdtOpen', this.props.className)}>\n <div key=\"dt\" className=\"rdtPicker\">\n <Component view={this.state.currentView} viewProps={viewProps} />\n </div>\n </div>\n );\n }\n}\n\nconst Calendar: any = themeable(BaseDatePicker as any);\nexport default Calendar as React.ComponentType<BaseDatePickerProps>;\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -74,7 +74,9 @@ export declare class FormulaEditor extends React.Component<FormulaEditorProps, F
|
|
74
74
|
[propName: string]: any;
|
75
75
|
}>): FuncGroup[];
|
76
76
|
static defaultProps: Pick<FormulaEditorProps, 'functions' | 'variables' | 'evalMode'>;
|
77
|
-
static highlightValue(value: string, variables: Array<VariableItem>, functions: Array<FuncGroup>):
|
77
|
+
static highlightValue(value: string, variables: Array<VariableItem>, functions: Array<FuncGroup>): {
|
78
|
+
html: string;
|
79
|
+
} | undefined;
|
78
80
|
componentWillUnmount(): void;
|
79
81
|
handleFocus(): void;
|
80
82
|
handleBlur(): void;
|
@@ -42,8 +42,26 @@ var FormulaEditor = /** @class */ (function (_super) {
|
|
42
42
|
return funcs;
|
43
43
|
};
|
44
44
|
FormulaEditor.highlightValue = function (value, variables, functions) {
|
45
|
-
|
46
|
-
|
45
|
+
if (!Array.isArray(variables) || !variables.length || !value) {
|
46
|
+
return;
|
47
|
+
}
|
48
|
+
var varMap = {};
|
49
|
+
(0, helper_1.eachTree)(variables, function (item) { return item.value && (varMap[item.value] = item.label); });
|
50
|
+
var vars = Object.keys(varMap).sort(function (a, b) { return b.length - a.length; });
|
51
|
+
var content = value || '';
|
52
|
+
// 标记方法调用
|
53
|
+
content = content.replace(/([A-Z]+)\s*\(/g, function (_, func, pos) {
|
54
|
+
return _ === null || _ === void 0 ? void 0 : _.replace(func, "<span class=\"c-func\">".concat(func, "</span>"));
|
55
|
+
});
|
56
|
+
vars.forEach(function (v) {
|
57
|
+
var from = 0;
|
58
|
+
var idx = -1;
|
59
|
+
while (~(idx = content.indexOf(v, from))) {
|
60
|
+
content = content.replace(v, "<span class=\"c-field\">".concat(varMap[v], "</span>"));
|
61
|
+
from = idx + v.length;
|
62
|
+
}
|
63
|
+
});
|
64
|
+
return { html: content };
|
47
65
|
};
|
48
66
|
FormulaEditor.prototype.componentWillUnmount = function () {
|
49
67
|
var _a;
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/components/formula/Editor.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA;;GAEG;AACH,6DAA0B;AAC1B,iDAA8C;AAC9C,6CAAmC;AACnC,6CAA0C;AAE1C,mCAAsD;AACtD,qEAAkC;AAClC,+CAA4C;AAC5C,0EAA6C;AAC7C,
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"/**\n * @file 公式编辑器\n */\nimport React from 'react';\nimport {uncontrollable} from 'uncontrollable';\nimport {parse} from 'amis-formula';\nimport {doc} from 'amis-formula/dist/doc';\n\nimport {FormulaPlugin, editorFactory} from './plugin';\nimport FuncList from './FuncList';\nimport {VariableList} from './VariableList';\nimport CodeMirrorEditor from '../CodeMirror';\nimport {autobind} from '../../utils/helper';\nimport {themeable, ThemeProps} from '../../theme';\nimport {localeable, LocaleProps} from '../../locale';\n\nexport interface VariableItem {\n label: string;\n value?: string;\n children?: Array<VariableItem>;\n type: '';\n tag?: string;\n selectMode?: 'tree' | 'tabs';\n}\n\nexport interface FuncGroup {\n groupName: string;\n items: Array<FuncItem>;\n}\n\nexport interface FuncItem {\n name: string;\n [propName: string]: any;\n}\n\nexport interface FormulaEditorProps extends ThemeProps, LocaleProps {\n onChange?: (value: string) => void;\n value: string;\n /**\n * evalMode 即直接就是表达式,否则\n * 需要 ${这里面才是表达式}\n * 默认为 true\n */\n evalMode?: boolean;\n\n /**\n * 用于提示的变量集合,默认为空\n */\n variables: Array<VariableItem>;\n\n /**\n * 变量展现模式,可选值:'tabs' | 'tree'\n */\n variableMode?: 'tabs' | 'tree';\n\n /**\n * 函数集合,默认不需要传,即 amis-formula 里面那个函数\n * 如果有扩充,则需要传。\n */\n functions: Array<FuncGroup>;\n\n /**\n * 顶部标题,默认为表达式\n */\n header: string;\n\n variableClassName?: string;\n\n functionClassName?: string;\n}\n\nexport interface FunctionsProps {\n name: string;\n items: FunctionProps[];\n}\n\nexport interface FunctionProps {\n name: string;\n intro: string;\n usage: string;\n example: string;\n}\n\nexport interface FormulaState {\n focused: boolean;\n}\n\nexport class FormulaEditor extends React.Component<\n FormulaEditorProps,\n FormulaState\n> {\n state: FormulaState = {\n focused: false\n };\n editorPlugin?: FormulaPlugin;\n\n static buildDefaultFunctions(\n doc: Array<{\n namespace: string;\n name: string;\n [propName: string]: any;\n }>\n ) {\n const funcs: Array<FuncGroup> = [];\n\n doc.forEach(item => {\n const namespace = item.namespace || 'Others';\n let exists = funcs.find(item => item.groupName === namespace);\n if (!exists) {\n exists = {\n groupName: namespace,\n items: []\n };\n funcs.push(exists);\n }\n exists.items.push(item);\n });\n\n return funcs;\n }\n\n static defaultProps: Pick<\n FormulaEditorProps,\n 'functions' | 'variables' | 'evalMode'\n > = {\n functions: FormulaEditor.buildDefaultFunctions(doc),\n variables: [],\n evalMode: true\n };\n\n static highlightValue(\n value: string,\n variables: Array<VariableItem>,\n functions: Array<FuncGroup>\n ) {\n //
|
11
|
+
"/**\n * @file 公式编辑器\n */\nimport React from 'react';\nimport {uncontrollable} from 'uncontrollable';\nimport {parse} from 'amis-formula';\nimport {doc} from 'amis-formula/dist/doc';\n\nimport {FormulaPlugin, editorFactory} from './plugin';\nimport FuncList from './FuncList';\nimport {VariableList} from './VariableList';\nimport CodeMirrorEditor from '../CodeMirror';\nimport {autobind, eachTree} from '../../utils/helper';\nimport {themeable, ThemeProps} from '../../theme';\nimport {localeable, LocaleProps} from '../../locale';\n\nexport interface VariableItem {\n label: string;\n value?: string;\n children?: Array<VariableItem>;\n type: '';\n tag?: string;\n selectMode?: 'tree' | 'tabs';\n}\n\nexport interface FuncGroup {\n groupName: string;\n items: Array<FuncItem>;\n}\n\nexport interface FuncItem {\n name: string;\n [propName: string]: any;\n}\n\nexport interface FormulaEditorProps extends ThemeProps, LocaleProps {\n onChange?: (value: string) => void;\n value: string;\n /**\n * evalMode 即直接就是表达式,否则\n * 需要 ${这里面才是表达式}\n * 默认为 true\n */\n evalMode?: boolean;\n\n /**\n * 用于提示的变量集合,默认为空\n */\n variables: Array<VariableItem>;\n\n /**\n * 变量展现模式,可选值:'tabs' | 'tree'\n */\n variableMode?: 'tabs' | 'tree';\n\n /**\n * 函数集合,默认不需要传,即 amis-formula 里面那个函数\n * 如果有扩充,则需要传。\n */\n functions: Array<FuncGroup>;\n\n /**\n * 顶部标题,默认为表达式\n */\n header: string;\n\n variableClassName?: string;\n\n functionClassName?: string;\n}\n\nexport interface FunctionsProps {\n name: string;\n items: FunctionProps[];\n}\n\nexport interface FunctionProps {\n name: string;\n intro: string;\n usage: string;\n example: string;\n}\n\nexport interface FormulaState {\n focused: boolean;\n}\n\nexport class FormulaEditor extends React.Component<\n FormulaEditorProps,\n FormulaState\n> {\n state: FormulaState = {\n focused: false\n };\n editorPlugin?: FormulaPlugin;\n\n static buildDefaultFunctions(\n doc: Array<{\n namespace: string;\n name: string;\n [propName: string]: any;\n }>\n ) {\n const funcs: Array<FuncGroup> = [];\n\n doc.forEach(item => {\n const namespace = item.namespace || 'Others';\n let exists = funcs.find(item => item.groupName === namespace);\n if (!exists) {\n exists = {\n groupName: namespace,\n items: []\n };\n funcs.push(exists);\n }\n exists.items.push(item);\n });\n\n return funcs;\n }\n\n static defaultProps: Pick<\n FormulaEditorProps,\n 'functions' | 'variables' | 'evalMode'\n > = {\n functions: FormulaEditor.buildDefaultFunctions(doc),\n variables: [],\n evalMode: true\n };\n\n static highlightValue(\n value: string,\n variables: Array<VariableItem>,\n functions: Array<FuncGroup>\n ) {\n if (!Array.isArray(variables) || !variables.length || !value) {\n return;\n }\n\n const varMap: {\n [propname: string]: string;\n } = {};\n\n eachTree(\n variables,\n item => item.value && (varMap[item.value] = item.label)\n );\n const vars = Object.keys(varMap).sort((a, b) => b.length - a.length);\n let content = value || '';\n\n // 标记方法调用\n content = content.replace(/([A-Z]+)\\s*\\(/g, (_, func, pos) => {\n return _?.replace(func, `<span class=\"c-func\">${func}</span>`);\n });\n\n vars.forEach(v => {\n let from = 0;\n let idx = -1;\n while (~(idx = content.indexOf(v, from))) {\n content = content.replace(\n v,\n `<span class=\"c-field\">${varMap[v]}</span>`\n );\n from = idx + v.length;\n }\n });\n\n return {html: content};\n }\n\n componentWillUnmount() {\n this.editorPlugin?.dispose();\n }\n\n @autobind\n handleFocus() {\n this.setState({\n focused: true\n });\n }\n\n @autobind\n handleBlur() {\n this.setState({\n focused: false\n });\n }\n\n @autobind\n insertValue(value: any, type: 'variable' | 'func') {\n this.editorPlugin?.insertContent(value, type);\n }\n\n @autobind\n handleEditorMounted(cm: any, editor: any) {\n this.editorPlugin = new FormulaPlugin(editor, cm, () => this.props);\n }\n\n @autobind\n validate() {\n const value = this.props.value;\n\n try {\n value\n ? parse(value, {\n evalMode: this.props.evalMode\n })\n : null;\n } catch (e) {\n return e.message;\n }\n\n return;\n }\n\n @autobind\n handleFunctionSelect(item: FuncItem) {\n this.editorPlugin?.insertContent(`${item.name}`, 'func');\n }\n\n @autobind\n handleVariableSelect(item: VariableItem) {\n this.editorPlugin?.insertContent(\n {\n key: item.value,\n name: item.label\n },\n 'variable'\n );\n }\n\n @autobind\n handleOnChange(value: any) {\n const onChange = this.props.onChange;\n onChange?.(value);\n }\n\n @autobind\n editorFactory(dom: HTMLElement, cm: any) {\n return editorFactory(dom, cm, this.props);\n }\n\n render() {\n const {\n variables,\n header,\n value,\n functions,\n variableMode,\n translate: __,\n classnames: cx,\n variableClassName,\n functionClassName,\n classPrefix\n } = this.props;\n const {focused} = this.state;\n return (\n <div\n className={cx(`FormulaEditor`, {\n 'is-focused': focused\n })}\n >\n <section className={cx(`FormulaEditor-content`)}>\n <header className={cx(`FormulaEditor-header`)}>\n {__(header || 'FormulaEditor.title')}\n </header>\n\n <CodeMirrorEditor\n className={cx('FormulaEditor-editor')}\n value={value}\n onChange={this.handleOnChange}\n editorFactory={this.editorFactory}\n editorDidMount={this.handleEditorMounted}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n />\n </section>\n\n <section className={cx('FormulaEditor-settings')}>\n <div className={cx('FormulaEditor-panel')}>\n <div className={cx('FormulaEditor-panel-header')}>\n {__('FormulaEditor.variable')}\n </div>\n <div className={cx('FormulaEditor-panel-body')}>\n <VariableList\n classPrefix={classPrefix}\n className={cx(\n 'FormulaEditor-VariableList',\n 'FormulaEditor-VariableList-root',\n variableClassName\n )}\n selectMode={variableMode}\n data={variables}\n onSelect={this.handleVariableSelect}\n />\n </div>\n </div>\n\n <FuncList\n className={functionClassName}\n title={__('FormulaEditor.function')}\n data={functions}\n onSelect={this.handleFunctionSelect}\n />\n </section>\n </div>\n );\n }\n}\n\nexport default uncontrollable(\n themeable(localeable(FormulaEditor)),\n {\n value: 'onChange'\n },\n ['validate']\n);\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -36,6 +36,10 @@ export interface FormulaPickerProps extends FormulaEditorProps {
|
|
36
36
|
* 禁用状态
|
37
37
|
*/
|
38
38
|
disabled?: boolean;
|
39
|
+
/**
|
40
|
+
* 是否允许输入,否需要点击fx在弹窗中输入
|
41
|
+
*/
|
42
|
+
allowInput?: boolean;
|
39
43
|
/**
|
40
44
|
* 占位文本
|
41
45
|
*/
|
@@ -55,6 +59,7 @@ export interface FormulaPickerProps extends FormulaEditorProps {
|
|
55
59
|
}
|
56
60
|
export declare class FormulaPicker extends React.Component<FormulaPickerProps> {
|
57
61
|
handleConfirm(value: any): void;
|
62
|
+
renderFormulaValue(item: any): "" | JSX.Element;
|
58
63
|
render(): JSX.Element;
|
59
64
|
}
|
60
65
|
declare const _default: {
|
@@ -4,10 +4,11 @@ exports.FormulaPicker = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
5
5
|
var uncontrollable_1 = require("uncontrollable");
|
6
6
|
var react_1 = (0, tslib_1.__importDefault)(require("react"));
|
7
|
+
var Editor_1 = require("./Editor");
|
7
8
|
var helper_1 = require("../../utils/helper");
|
8
9
|
var icon_1 = require("../../utils/icon");
|
9
10
|
var PickerContainer_1 = (0, tslib_1.__importDefault)(require("../PickerContainer"));
|
10
|
-
var
|
11
|
+
var Editor_2 = (0, tslib_1.__importDefault)(require("./Editor"));
|
11
12
|
var ResultBox_1 = (0, tslib_1.__importDefault)(require("../ResultBox"));
|
12
13
|
var Button_1 = (0, tslib_1.__importDefault)(require("../Button"));
|
13
14
|
var icons_1 = require("../icons");
|
@@ -23,9 +24,17 @@ var FormulaPicker = /** @class */ (function (_super) {
|
|
23
24
|
var _a, _b;
|
24
25
|
(_b = (_a = this.props).onChange) === null || _b === void 0 ? void 0 : _b.call(_a, value);
|
25
26
|
};
|
27
|
+
FormulaPicker.prototype.renderFormulaValue = function (item) {
|
28
|
+
var _a = this.props, allowInput = _a.allowInput, cx = _a.classnames;
|
29
|
+
var html = { __html: item.html };
|
30
|
+
if (allowInput) {
|
31
|
+
return '';
|
32
|
+
}
|
33
|
+
return (react_1.default.createElement("div", { className: cx('FormulaPicker-ResultBox'), dangerouslySetInnerHTML: html }));
|
34
|
+
};
|
26
35
|
FormulaPicker.prototype.render = function () {
|
27
36
|
var _this = this;
|
28
|
-
var _a = this.props, cx = _a.classnames, value = _a.value, __ = _a.translate, disabled = _a.disabled, className = _a.className, onChange = _a.onChange, size = _a.size, borderMode = _a.borderMode, placeholder = _a.placeholder, mode = _a.mode, btnLabel = _a.btnLabel, level = _a.level, btnSize = _a.btnSize, icon = _a.icon, title = _a.title, clearable = _a.clearable, variables = _a.variables, functions = _a.functions, rest = (0, tslib_1.__rest)(_a, ["classnames", "value", "translate", "disabled", "className", "onChange", "size", "borderMode", "placeholder", "mode", "btnLabel", "level", "btnSize", "icon", "title", "clearable", "variables", "functions"]);
|
37
|
+
var _a = this.props, cx = _a.classnames, value = _a.value, __ = _a.translate, disabled = _a.disabled, allowInput = _a.allowInput, className = _a.className, onChange = _a.onChange, size = _a.size, borderMode = _a.borderMode, placeholder = _a.placeholder, mode = _a.mode, btnLabel = _a.btnLabel, level = _a.level, btnSize = _a.btnSize, icon = _a.icon, title = _a.title, clearable = _a.clearable, variables = _a.variables, functions = _a.functions, rest = (0, tslib_1.__rest)(_a, ["classnames", "value", "translate", "disabled", "allowInput", "className", "onChange", "size", "borderMode", "placeholder", "mode", "btnLabel", "level", "btnSize", "icon", "title", "clearable", "variables", "functions"]);
|
29
38
|
if ((0, tpl_builtin_1.isPureVariable)(variables)) {
|
30
39
|
// 如果 variables 是 ${xxx} 这种形式,将其处理成实际的值
|
31
40
|
variables = (0, tpl_builtin_1.resolveVariableAndFilter)(variables, this.props.data, '| raw');
|
@@ -37,7 +46,7 @@ var FormulaPicker = /** @class */ (function (_super) {
|
|
37
46
|
var iconElement = (0, icon_1.generateIcon)(cx, icon, 'Icon');
|
38
47
|
return (react_1.default.createElement(PickerContainer_1.default, { title: __(title || 'FormulaEditor.title'), headerClassName: "font-bold", bodyRender: function (_a) {
|
39
48
|
var onClose = _a.onClose, value = _a.value, onChange = _a.onChange;
|
40
|
-
return (react_1.default.createElement(
|
49
|
+
return (react_1.default.createElement(Editor_2.default, (0, tslib_1.__assign)({}, rest, { variables: variables, functions: functions, value: value, onChange: onChange })));
|
41
50
|
}, value: value, onConfirm: this.handleConfirm, size: 'md' }, function (_a) {
|
42
51
|
var _b, _c, _d;
|
43
52
|
var _e, _f;
|
@@ -51,7 +60,7 @@ var FormulaPicker = /** @class */ (function (_super) {
|
|
51
60
|
_c['is-filled'] = !!value,
|
52
61
|
_c)) })),
|
53
62
|
react_1.default.createElement("span", { className: cx('FormulaPicker-label') }, __(btnLabel || 'FormulaEditor.btnLabel')))) : (react_1.default.createElement(react_1.default.Fragment, null,
|
54
|
-
react_1.default.createElement(ResultBox_1.default, { className: cx('FormulaPicker-input', isOpened ? 'is-active' : ''), allowInput:
|
63
|
+
react_1.default.createElement(ResultBox_1.default, { className: cx('FormulaPicker-input', isOpened ? 'is-active' : ''), allowInput: allowInput, clearable: clearable, value: value, result: Editor_1.FormulaEditor.highlightValue(value, variables, functions), itemRender: _this.renderFormulaValue, onResultChange: helper_1.noop, onChange: _this.handleConfirm, disabled: disabled, borderMode: borderMode, placeholder: placeholder }),
|
55
64
|
react_1.default.createElement(Button_1.default, { className: cx('FormulaPicker-action'), onClick: onClick },
|
56
65
|
react_1.default.createElement(icons_1.Icon, { icon: "function", className: cx('FormulaPicker-icon', 'icon', (_d = {},
|
57
66
|
_d['is-filled'] = !!value,
|
@@ -64,6 +73,12 @@ var FormulaPicker = /** @class */ (function (_super) {
|
|
64
73
|
(0, tslib_1.__metadata)("design:paramtypes", [Object]),
|
65
74
|
(0, tslib_1.__metadata)("design:returntype", void 0)
|
66
75
|
], FormulaPicker.prototype, "handleConfirm", null);
|
76
|
+
(0, tslib_1.__decorate)([
|
77
|
+
helper_1.autobind,
|
78
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
79
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Object]),
|
80
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
81
|
+
], FormulaPicker.prototype, "renderFormulaValue", null);
|
67
82
|
return FormulaPicker;
|
68
83
|
}(react_1.default.Component));
|
69
84
|
exports.FormulaPicker = FormulaPicker;
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/components/formula/Picker.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA,iDAA8C;AAC9C,6DAA0B;
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import {uncontrollable} from 'uncontrollable';\nimport React from 'react';\nimport {FormulaEditor, FormulaEditorProps} from './Editor';\nimport {autobind, noop} from '../../utils/helper';\nimport {generateIcon} from '../../utils/icon';\nimport PickerContainer from '../PickerContainer';\nimport Editor from './Editor';\nimport ResultBox from '../ResultBox';\nimport Button from '../Button';\nimport {Icon} from '../icons';\nimport {themeable} from '../../theme';\nimport {localeable} from '../../locale';\n\nimport type {SchemaIcon} from '../../Schema';\nimport {\n resolveVariableAndFilter,\n isPureVariable\n} from '../../utils/tpl-builtin';\n\nexport interface FormulaPickerProps extends FormulaEditorProps {\n // 新的属性?\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';\n\n /**\n * 编辑器标题\n */\n title?: string;\n\n /**\n * 按钮图标\n */\n icon?: SchemaIcon;\n\n /**\n * 控件模式\n */\n mode?: 'button' | 'input-button';\n\n /**\n * 边框模式,全边框,还是半边框,或者没边框。\n */\n borderMode?: 'full' | 'half' | 'none';\n\n /**\n * 按钮Label,inputMode为button时生效\n */\n btnLabel?: string;\n\n /**\n * 按钮样式\n */\n level?:\n | 'info'\n | 'success'\n | 'warning'\n | 'danger'\n | 'link'\n | 'primary'\n | 'dark'\n | 'light';\n\n /**\n * 按钮大小\n */\n btnSize?: 'xs' | 'sm' | 'md' | 'lg';\n\n /**\n * 禁用状态\n */\n disabled?: boolean;\n\n /**\n * 占位文本\n */\n placeholder?: string;\n\n /**\n * 可清除\n */\n clearable?: boolean;\n\n /**\n * 支持通过上下文变量配置value\n */\n source?: string;\n\n /**\n * 外层透传的 data,和source配合使用\n */\n data?: any;\n}\n\nexport class FormulaPicker extends React.Component<FormulaPickerProps> {\n @autobind\n handleConfirm(value: any) {\n this.props.onChange?.(value);\n }\n\n render() {\n let {\n classnames: cx,\n value,\n translate: __,\n disabled,\n className,\n onChange,\n size,\n borderMode,\n placeholder,\n mode,\n btnLabel,\n level,\n btnSize,\n icon,\n title,\n clearable,\n variables,\n functions,\n ...rest\n } = this.props;\n if (isPureVariable(variables)) {\n // 如果 variables 是 ${xxx} 这种形式,将其处理成实际的值\n variables = resolveVariableAndFilter(variables, this.props.data, '| raw');\n }\n\n if (isPureVariable(functions)) {\n // 如果 functions 是 ${xxx} 这种形式,将其处理成实际的值\n functions = resolveVariableAndFilter(functions, this.props.data, '| raw');\n }\n const iconElement = generateIcon(cx, icon, 'Icon');\n\n return (\n <PickerContainer\n title={__(title || 'FormulaEditor.title')}\n headerClassName=\"font-bold\"\n bodyRender={({onClose, value, onChange}) => {\n return (\n <Editor\n {...rest}\n variables={variables}\n functions={functions}\n value={value}\n onChange={onChange}\n />\n );\n }}\n value={value}\n onConfirm={this.handleConfirm}\n size={'md'}\n >\n {({onClick, isOpened}) => (\n <div className={cx('FormulaPicker', className)}>\n {mode === 'button' ? (\n <Button\n className={cx('FormulaPicker-action', 'w-full')}\n level={level}\n size={btnSize}\n onClick={onClick}\n >\n {iconElement ? (\n React.cloneElement(iconElement, {\n className: cx(\n iconElement?.props?.className ?? '',\n 'FormulaPicker-icon',\n {\n ['is-filled']: !!value\n }\n )\n })\n ) : (\n <Icon\n icon=\"function\"\n className={cx('FormulaPicker-icon', 'icon', {\n ['is-filled']: !!value\n })}\n />\n )}\n <span className={cx('FormulaPicker-label')}>\n {__(btnLabel || 'FormulaEditor.btnLabel')}\n </span>\n </Button>\n ) : (\n <>\n <ResultBox\n className={cx(\n 'FormulaPicker-input',\n isOpened ? 'is-active' : ''\n )}\n allowInput\n clearable={clearable}\n value={value}\n onResultChange={noop}\n onChange={this.handleConfirm}\n disabled={disabled}\n borderMode={borderMode}\n placeholder={placeholder}\n />\n\n <Button\n className={cx('FormulaPicker-action')}\n onClick={onClick}\n >\n <Icon\n icon=\"function\"\n className={cx('FormulaPicker-icon', 'icon', {\n ['is-filled']: !!value\n })}\n />\n </Button>\n </>\n )}\n </div>\n )}\n </PickerContainer>\n );\n }\n}\n\nexport default themeable(\n localeable(\n uncontrollable(FormulaPicker, {\n value: 'onChange'\n })\n )\n);\n"
|
11
|
+
"import {uncontrollable} from 'uncontrollable';\nimport React from 'react';\nimport {FormulaEditor, FormulaEditorProps} from './Editor';\nimport {autobind, noop} from '../../utils/helper';\nimport {generateIcon} from '../../utils/icon';\nimport PickerContainer from '../PickerContainer';\nimport Editor from './Editor';\nimport ResultBox from '../ResultBox';\nimport Button from '../Button';\nimport {Icon} from '../icons';\nimport {themeable} from '../../theme';\nimport {localeable} from '../../locale';\n\nimport type {SchemaIcon} from '../../Schema';\nimport {\n resolveVariableAndFilter,\n isPureVariable\n} from '../../utils/tpl-builtin';\n\nexport interface FormulaPickerProps extends FormulaEditorProps {\n // 新的属性?\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';\n\n /**\n * 编辑器标题\n */\n title?: string;\n\n /**\n * 按钮图标\n */\n icon?: SchemaIcon;\n\n /**\n * 控件模式\n */\n mode?: 'button' | 'input-button';\n\n /**\n * 边框模式,全边框,还是半边框,或者没边框。\n */\n borderMode?: 'full' | 'half' | 'none';\n\n /**\n * 按钮Label,inputMode为button时生效\n */\n btnLabel?: string;\n\n /**\n * 按钮样式\n */\n level?:\n | 'info'\n | 'success'\n | 'warning'\n | 'danger'\n | 'link'\n | 'primary'\n | 'dark'\n | 'light';\n\n /**\n * 按钮大小\n */\n btnSize?: 'xs' | 'sm' | 'md' | 'lg';\n\n /**\n * 禁用状态\n */\n disabled?: boolean;\n\n /**\n * 是否允许输入,否需要点击fx在弹窗中输入\n */\n allowInput?: boolean;\n\n /**\n * 占位文本\n */\n placeholder?: string;\n\n /**\n * 可清除\n */\n clearable?: boolean;\n\n /**\n * 支持通过上下文变量配置value\n */\n source?: string;\n\n /**\n * 外层透传的 data,和source配合使用\n */\n data?: any;\n}\n\nexport class FormulaPicker extends React.Component<FormulaPickerProps> {\n @autobind\n handleConfirm(value: any) {\n this.props.onChange?.(value);\n }\n\n @autobind\n renderFormulaValue(item: any) {\n const {allowInput, classnames: cx} = this.props;\n const html = {__html: item.html};\n if (allowInput) {\n return '';\n }\n return (\n <div\n className={cx('FormulaPicker-ResultBox')}\n dangerouslySetInnerHTML={html}\n ></div>\n );\n }\n\n render() {\n let {\n classnames: cx,\n value,\n translate: __,\n disabled,\n allowInput,\n className,\n onChange,\n size,\n borderMode,\n placeholder,\n mode,\n btnLabel,\n level,\n btnSize,\n icon,\n title,\n clearable,\n variables,\n functions,\n ...rest\n } = this.props;\n if (isPureVariable(variables)) {\n // 如果 variables 是 ${xxx} 这种形式,将其处理成实际的值\n variables = resolveVariableAndFilter(variables, this.props.data, '| raw');\n }\n\n if (isPureVariable(functions)) {\n // 如果 functions 是 ${xxx} 这种形式,将其处理成实际的值\n functions = resolveVariableAndFilter(functions, this.props.data, '| raw');\n }\n const iconElement = generateIcon(cx, icon, 'Icon');\n\n return (\n <PickerContainer\n title={__(title || 'FormulaEditor.title')}\n headerClassName=\"font-bold\"\n bodyRender={({onClose, value, onChange}) => {\n return (\n <Editor\n {...rest}\n variables={variables}\n functions={functions}\n value={value}\n onChange={onChange}\n />\n );\n }}\n value={value}\n onConfirm={this.handleConfirm}\n size={'md'}\n >\n {({onClick, isOpened}) => (\n <div className={cx('FormulaPicker', className)}>\n {mode === 'button' ? (\n <Button\n className={cx('FormulaPicker-action', 'w-full')}\n level={level}\n size={btnSize}\n onClick={onClick}\n >\n {iconElement ? (\n React.cloneElement(iconElement, {\n className: cx(\n iconElement?.props?.className ?? '',\n 'FormulaPicker-icon',\n {\n ['is-filled']: !!value\n }\n )\n })\n ) : (\n <Icon\n icon=\"function\"\n className={cx('FormulaPicker-icon', 'icon', {\n ['is-filled']: !!value\n })}\n />\n )}\n <span className={cx('FormulaPicker-label')}>\n {__(btnLabel || 'FormulaEditor.btnLabel')}\n </span>\n </Button>\n ) : (\n <>\n <ResultBox\n className={cx(\n 'FormulaPicker-input',\n isOpened ? 'is-active' : ''\n )}\n allowInput={allowInput}\n clearable={clearable}\n value={value}\n result={FormulaEditor.highlightValue(\n value,\n variables,\n functions\n )}\n itemRender={this.renderFormulaValue}\n onResultChange={noop}\n onChange={this.handleConfirm}\n disabled={disabled}\n borderMode={borderMode}\n placeholder={placeholder}\n />\n\n <Button\n className={cx('FormulaPicker-action')}\n onClick={onClick}\n >\n <Icon\n icon=\"function\"\n className={cx('FormulaPicker-icon', 'icon', {\n ['is-filled']: !!value\n })}\n />\n </Button>\n </>\n )}\n </div>\n )}\n </PickerContainer>\n );\n }\n}\n\nexport default themeable(\n localeable(\n uncontrollable(FormulaPicker, {\n value: 'onChange'\n })\n )\n);\n"
|
12
12
|
]
|
13
13
|
}
|
package/lib/components/icons.js
CHANGED
@@ -101,6 +101,7 @@ exports.FunctionIcon = function_svg_1.default;
|
|
101
101
|
var input_clear_svg_1 = (0, tslib_1.__importDefault)(require("../icons/input-clear.js"));
|
102
102
|
exports.InputClearIcon = input_clear_svg_1.default;
|
103
103
|
var slider_handle_icon_svg_1 = (0, tslib_1.__importDefault)(require("../icons/slider-handle-icon.js"));
|
104
|
+
var trash_svg_1 = (0, tslib_1.__importDefault)(require("../icons/trash.js"));
|
104
105
|
// 兼容原来的用法,后续不直接试用。
|
105
106
|
exports.closeIcon = react_1.default.createElement(close_svg_1.default, null);
|
106
107
|
exports.unDoIcon = react_1.default.createElement(undo_svg_1.default, null);
|
@@ -205,6 +206,7 @@ registerIcon('slider-handle', slider_handle_icon_svg_1.default);
|
|
205
206
|
registerIcon('cloud-upload', cloud_upload_svg_1.default);
|
206
207
|
registerIcon('image', image_svg_1.default);
|
207
208
|
registerIcon('refresh', refresh_svg_1.default);
|
209
|
+
registerIcon('trash', trash_svg_1.default);
|
208
210
|
function Icon(_a) {
|
209
211
|
var icon = _a.icon, className = _a.className, rest = (0, tslib_1.__rest)(_a, ["icon", "className"]);
|
210
212
|
// jest 运行环境下,把指定的 icon 也输出到 snapshot 中。
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/components/icons.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA;;;;GAIG;AACH,6DAA0B;AAE1B,8EAA2C;
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"/**\n * @file Icon\n * @description\n * @author fex\n */\nimport React from 'react';\n\nimport CloseIcon from '../icons/close.svg';\nimport CloseSmallIcon from '../icons/close-small.svg';\nimport StatusCloseIcon from '../icons/status-close.svg';\nimport UnDoIcon from '../icons/undo.svg';\nimport ReDoIcon from '../icons/redo.svg';\nimport EnterIcon from '../icons/enter.svg';\nimport VolumeIcon from '../icons/volume.svg';\nimport MuteIcon from '../icons/mute.svg';\nimport PlayIcon from '../icons/play.svg';\nimport PauseIcon from '../icons/pause.svg';\nimport LeftArrowIcon from '../icons/left-arrow.svg';\nimport RightArrowIcon from '../icons/right-arrow.svg';\nimport CheckIcon from '../icons/check.svg';\nimport PlusIcon from '../icons/plus.svg';\nimport MinusIcon from '../icons/minus.svg';\nimport PencilIcon from '../icons/pencil.svg';\nimport ViewIcon from '../icons/view.svg';\nimport RemoveIcon from '../icons/remove.svg';\nimport RetryIcon from '../icons/retry.svg';\nimport UploadIcon from '../icons/upload.svg';\nimport DownloadIcon from '../icons/download.svg';\nimport FileIcon from '../icons/file.svg';\nimport StatusSuccessIcon from '../icons/status-success.svg';\nimport StatusFailIcon from '../icons/status-fail.svg';\nimport StatusInfoIcon from '../icons/status-info.svg';\nimport StatusWarningIcon from '../icons/status-warning.svg';\nimport SuccessIcon from '../icons/success.svg';\nimport FailIcon from '../icons/fail.svg';\nimport SearchIcon from '../icons/search.svg';\nimport BackIcon from '../icons/back.svg';\nimport MoveIcon from '../icons/move.svg';\nimport InfoIcon from '../icons/info.svg';\nimport LocationIcon from '../icons/location.svg';\nimport DragBarIcon from '../icons/drag-bar.svg';\nimport ReloadIcon from '../icons/reload.svg';\nimport ExchangeIcon from '../icons/exchange.svg';\nimport ColmunsIcon from '../icons/columns.svg';\nimport CalendarIcon from '../icons/calendar.svg';\nimport ClockIcon from '../icons/clock.svg';\nimport TreeDownIcon from '../icons/tree-down.svg';\nimport CloudUploadIcon from '../icons/cloud-upload.svg';\nimport ImageIcon from '../icons/image.svg';\nimport RefreshIcon from '../icons/refresh.svg';\n\nimport CopyIcon from '../icons/copy.svg';\nimport FilterIcon from '../icons/filter.svg';\nimport CaretIcon from '../icons/caret.svg';\nimport RightArrowBoldIcon from '../icons/right-arrow-bold.svg';\nimport ColumnFilterIcon from '../icons/column-filter.svg';\nimport ZoomInIcon from '../icons/zoom-in.svg';\nimport ZoomOutIcon from '../icons/zoom-out.svg';\nimport QuestionIcon from '../icons/question.svg';\nimport QuestionMarkIcon from '../icons/question-mark.svg';\nimport WindowRestoreIcon from '../icons/window-restore.svg';\nimport InfoCircleIcon from '../icons/info-circle.svg';\nimport WarningIcon from '../icons/warning.svg';\nimport WarningMarkIcon from '../icons/warning-mark.svg';\nimport ScheduleIcon from '../icons/schedule.svg';\nimport HomeIcon from '../icons/home.svg';\nimport FolderIcon from '../icons/folder.svg';\nimport SortDefaultIcon from '../icons/sort-default.svg';\nimport SortAscIcon from '../icons/sort-asc.svg';\nimport SortDescIcon from '../icons/sort-desc.svg';\nimport SettingIcon from '../icons/setting.svg';\nimport PlusCicleIcon from '../icons/plus-cicle.svg';\nimport EllipsisVIcon from '../icons/ellipsis-v.svg';\nimport ExpandAltIcon from '../icons/expand-alt.svg';\nimport CompressAltIcon from '../icons/compress-alt.svg';\nimport TransparentIcon from '../icons/transparent.svg';\nimport LoadingOutline from '../icons/loading-outline.svg';\nimport Star from '../icons/star.svg';\nimport AlertSuccess from '../icons/alert-success.svg';\nimport AlertInfo from '../icons/alert-info.svg';\nimport AlertWarning from '../icons/alert-warning.svg';\nimport AlertDanger from '../icons/alert-danger.svg';\nimport FunctionIcon from '../icons/function.svg';\nimport InputClearIcon from '../icons/input-clear.svg';\nimport SliderHandleIcon from '../icons/slider-handle-icon.svg';\n\n// 兼容原来的用法,后续不直接试用。\n\nexport const closeIcon = <CloseIcon />;\nexport const unDoIcon = <UnDoIcon />;\nexport const reDoIcon = <ReDoIcon />;\nexport const enterIcon = <EnterIcon />;\nexport const volumeIcon = <VolumeIcon />;\nexport const muteIcon = <MuteIcon />;\nexport const playIcon = <PlayIcon />;\nexport const pauseIcon = <PauseIcon />;\nexport const leftArrowIcon = <LeftArrowIcon />;\nexport const rightArrowIcon = <RightArrowIcon />;\nconst iconFactory: {\n [propName: string]: React.ReactType<{}>;\n} = {};\n\nexport function getIcon(key: string) {\n return iconFactory[key];\n}\n\nexport function hasIcon(iconName: string) {\n return !!getIcon(iconName);\n}\n\nexport function registerIcon(key: string, component: React.ReactType<{}>) {\n iconFactory[key] = component;\n}\n\nregisterIcon('close', CloseIcon);\nregisterIcon('close-small', CloseSmallIcon);\nregisterIcon('status-close', StatusCloseIcon);\nregisterIcon('undo', UnDoIcon);\nregisterIcon('redo', ReDoIcon);\nregisterIcon('enter', EnterIcon);\nregisterIcon('volume', VolumeIcon);\nregisterIcon('mute', MuteIcon);\nregisterIcon('play', PlayIcon);\nregisterIcon('pause', PauseIcon);\nregisterIcon('left-arrow', LeftArrowIcon);\nregisterIcon('right-arrow', RightArrowIcon);\nregisterIcon('prev', LeftArrowIcon);\nregisterIcon('next', RightArrowIcon);\nregisterIcon('check', CheckIcon);\nregisterIcon('plus', PlusIcon);\nregisterIcon('add', PlusIcon);\nregisterIcon('minus', MinusIcon);\nregisterIcon('pencil', PencilIcon);\nregisterIcon('view', ViewIcon);\nregisterIcon('remove', RemoveIcon);\nregisterIcon('retry', RetryIcon);\nregisterIcon('upload', UploadIcon);\nregisterIcon('download', DownloadIcon);\nregisterIcon('file', FileIcon);\nregisterIcon('status-success', StatusSuccessIcon);\nregisterIcon('status-fail', StatusFailIcon);\nregisterIcon('status-info', StatusInfoIcon);\nregisterIcon('status-warning', StatusWarningIcon);\nregisterIcon('success', SuccessIcon);\nregisterIcon('fail', FailIcon);\nregisterIcon('warning', WarningIcon);\nregisterIcon('warning-mark', WarningMarkIcon);\nregisterIcon('search', SearchIcon);\nregisterIcon('back', BackIcon);\nregisterIcon('move', MoveIcon);\nregisterIcon('info', InfoIcon);\nregisterIcon('info-circle', InfoCircleIcon);\nregisterIcon('location', LocationIcon);\nregisterIcon('drag-bar', DragBarIcon);\nregisterIcon('reload', ReloadIcon);\nregisterIcon('exchange', ExchangeIcon);\nregisterIcon('columns', ColmunsIcon);\nregisterIcon('calendar', CalendarIcon);\nregisterIcon('clock', ClockIcon);\nregisterIcon('copy', CopyIcon);\nregisterIcon('filter', FilterIcon);\nregisterIcon('column-filter', ColumnFilterIcon);\nregisterIcon('caret', CaretIcon);\nregisterIcon('right-arrow-bold', RightArrowBoldIcon);\nregisterIcon('zoom-in', ZoomInIcon);\nregisterIcon('zoom-out', ZoomOutIcon);\nregisterIcon('question', QuestionIcon);\nregisterIcon('question-mark', QuestionMarkIcon);\nregisterIcon('window-restore', WindowRestoreIcon);\nregisterIcon('schedule', ScheduleIcon);\nregisterIcon('home', HomeIcon);\nregisterIcon('folder', FolderIcon);\nregisterIcon('sort-default', SortDefaultIcon);\nregisterIcon('sort-asc', SortAscIcon);\nregisterIcon('sort-desc', SortDescIcon);\nregisterIcon('setting', SettingIcon);\nregisterIcon('plus-cicle', PlusCicleIcon);\nregisterIcon('ellipsis-v', EllipsisVIcon);\nregisterIcon('expand-alt', ExpandAltIcon);\nregisterIcon('compress-alt', CompressAltIcon);\nregisterIcon('transparent', TransparentIcon);\nregisterIcon('loading-outline', LoadingOutline);\nregisterIcon('star', Star);\nregisterIcon('alert-success', AlertSuccess);\nregisterIcon('alert-info', AlertInfo);\nregisterIcon('alert-warning', AlertWarning);\nregisterIcon('alert-danger', AlertDanger);\nregisterIcon('tree-down', TreeDownIcon);\nregisterIcon('function', FunctionIcon);\nregisterIcon('input-clear', InputClearIcon);\nregisterIcon('slider-handle', SliderHandleIcon);\nregisterIcon('cloud-upload', CloudUploadIcon);\nregisterIcon('image', ImageIcon);\nregisterIcon('refresh', RefreshIcon);\n\nexport function Icon({\n icon,\n className,\n ...rest\n}: {\n icon: string;\n} & React.ComponentProps<any>) {\n // jest 运行环境下,把指定的 icon 也输出到 snapshot 中。\n if (typeof jest !== 'undefined') {\n rest.icon = icon;\n }\n\n const Component = getIcon(icon);\n return Component ? (\n <Component {...rest} className={`${className || ''} icon-${icon}`} />\n ) : (\n <span className=\"text-danger\">没有 icon {icon}</span>\n );\n}\n\nexport {\n InputClearIcon,\n CloseIcon,\n UnDoIcon,\n ReDoIcon,\n EnterIcon,\n VolumeIcon,\n MuteIcon,\n PlayIcon,\n PauseIcon,\n LeftArrowIcon,\n RightArrowIcon,\n CheckIcon,\n PlusIcon,\n MinusIcon,\n PencilIcon,\n FunctionIcon\n};\n"
|
11
|
+
"/**\n * @file Icon\n * @description\n * @author fex\n */\nimport React from 'react';\n\nimport CloseIcon from '../icons/close.svg';\nimport CloseSmallIcon from '../icons/close-small.svg';\nimport StatusCloseIcon from '../icons/status-close.svg';\nimport UnDoIcon from '../icons/undo.svg';\nimport ReDoIcon from '../icons/redo.svg';\nimport EnterIcon from '../icons/enter.svg';\nimport VolumeIcon from '../icons/volume.svg';\nimport MuteIcon from '../icons/mute.svg';\nimport PlayIcon from '../icons/play.svg';\nimport PauseIcon from '../icons/pause.svg';\nimport LeftArrowIcon from '../icons/left-arrow.svg';\nimport RightArrowIcon from '../icons/right-arrow.svg';\nimport CheckIcon from '../icons/check.svg';\nimport PlusIcon from '../icons/plus.svg';\nimport MinusIcon from '../icons/minus.svg';\nimport PencilIcon from '../icons/pencil.svg';\nimport ViewIcon from '../icons/view.svg';\nimport RemoveIcon from '../icons/remove.svg';\nimport RetryIcon from '../icons/retry.svg';\nimport UploadIcon from '../icons/upload.svg';\nimport DownloadIcon from '../icons/download.svg';\nimport FileIcon from '../icons/file.svg';\nimport StatusSuccessIcon from '../icons/status-success.svg';\nimport StatusFailIcon from '../icons/status-fail.svg';\nimport StatusInfoIcon from '../icons/status-info.svg';\nimport StatusWarningIcon from '../icons/status-warning.svg';\nimport SuccessIcon from '../icons/success.svg';\nimport FailIcon from '../icons/fail.svg';\nimport SearchIcon from '../icons/search.svg';\nimport BackIcon from '../icons/back.svg';\nimport MoveIcon from '../icons/move.svg';\nimport InfoIcon from '../icons/info.svg';\nimport LocationIcon from '../icons/location.svg';\nimport DragBarIcon from '../icons/drag-bar.svg';\nimport ReloadIcon from '../icons/reload.svg';\nimport ExchangeIcon from '../icons/exchange.svg';\nimport ColmunsIcon from '../icons/columns.svg';\nimport CalendarIcon from '../icons/calendar.svg';\nimport ClockIcon from '../icons/clock.svg';\nimport TreeDownIcon from '../icons/tree-down.svg';\nimport CloudUploadIcon from '../icons/cloud-upload.svg';\nimport ImageIcon from '../icons/image.svg';\nimport RefreshIcon from '../icons/refresh.svg';\n\nimport CopyIcon from '../icons/copy.svg';\nimport FilterIcon from '../icons/filter.svg';\nimport CaretIcon from '../icons/caret.svg';\nimport RightArrowBoldIcon from '../icons/right-arrow-bold.svg';\nimport ColumnFilterIcon from '../icons/column-filter.svg';\nimport ZoomInIcon from '../icons/zoom-in.svg';\nimport ZoomOutIcon from '../icons/zoom-out.svg';\nimport QuestionIcon from '../icons/question.svg';\nimport QuestionMarkIcon from '../icons/question-mark.svg';\nimport WindowRestoreIcon from '../icons/window-restore.svg';\nimport InfoCircleIcon from '../icons/info-circle.svg';\nimport WarningIcon from '../icons/warning.svg';\nimport WarningMarkIcon from '../icons/warning-mark.svg';\nimport ScheduleIcon from '../icons/schedule.svg';\nimport HomeIcon from '../icons/home.svg';\nimport FolderIcon from '../icons/folder.svg';\nimport SortDefaultIcon from '../icons/sort-default.svg';\nimport SortAscIcon from '../icons/sort-asc.svg';\nimport SortDescIcon from '../icons/sort-desc.svg';\nimport SettingIcon from '../icons/setting.svg';\nimport PlusCicleIcon from '../icons/plus-cicle.svg';\nimport EllipsisVIcon from '../icons/ellipsis-v.svg';\nimport ExpandAltIcon from '../icons/expand-alt.svg';\nimport CompressAltIcon from '../icons/compress-alt.svg';\nimport TransparentIcon from '../icons/transparent.svg';\nimport LoadingOutline from '../icons/loading-outline.svg';\nimport Star from '../icons/star.svg';\nimport AlertSuccess from '../icons/alert-success.svg';\nimport AlertInfo from '../icons/alert-info.svg';\nimport AlertWarning from '../icons/alert-warning.svg';\nimport AlertDanger from '../icons/alert-danger.svg';\nimport FunctionIcon from '../icons/function.svg';\nimport InputClearIcon from '../icons/input-clear.svg';\nimport SliderHandleIcon from '../icons/slider-handle-icon.svg';\nimport TrashIcon from '../icons/trash.svg';\n\n// 兼容原来的用法,后续不直接试用。\n\nexport const closeIcon = <CloseIcon />;\nexport const unDoIcon = <UnDoIcon />;\nexport const reDoIcon = <ReDoIcon />;\nexport const enterIcon = <EnterIcon />;\nexport const volumeIcon = <VolumeIcon />;\nexport const muteIcon = <MuteIcon />;\nexport const playIcon = <PlayIcon />;\nexport const pauseIcon = <PauseIcon />;\nexport const leftArrowIcon = <LeftArrowIcon />;\nexport const rightArrowIcon = <RightArrowIcon />;\nconst iconFactory: {\n [propName: string]: React.ReactType<{}>;\n} = {};\n\nexport function getIcon(key: string) {\n return iconFactory[key];\n}\n\nexport function hasIcon(iconName: string) {\n return !!getIcon(iconName);\n}\n\nexport function registerIcon(key: string, component: React.ReactType<{}>) {\n iconFactory[key] = component;\n}\n\nregisterIcon('close', CloseIcon);\nregisterIcon('close-small', CloseSmallIcon);\nregisterIcon('status-close', StatusCloseIcon);\nregisterIcon('undo', UnDoIcon);\nregisterIcon('redo', ReDoIcon);\nregisterIcon('enter', EnterIcon);\nregisterIcon('volume', VolumeIcon);\nregisterIcon('mute', MuteIcon);\nregisterIcon('play', PlayIcon);\nregisterIcon('pause', PauseIcon);\nregisterIcon('left-arrow', LeftArrowIcon);\nregisterIcon('right-arrow', RightArrowIcon);\nregisterIcon('prev', LeftArrowIcon);\nregisterIcon('next', RightArrowIcon);\nregisterIcon('check', CheckIcon);\nregisterIcon('plus', PlusIcon);\nregisterIcon('add', PlusIcon);\nregisterIcon('minus', MinusIcon);\nregisterIcon('pencil', PencilIcon);\nregisterIcon('view', ViewIcon);\nregisterIcon('remove', RemoveIcon);\nregisterIcon('retry', RetryIcon);\nregisterIcon('upload', UploadIcon);\nregisterIcon('download', DownloadIcon);\nregisterIcon('file', FileIcon);\nregisterIcon('status-success', StatusSuccessIcon);\nregisterIcon('status-fail', StatusFailIcon);\nregisterIcon('status-info', StatusInfoIcon);\nregisterIcon('status-warning', StatusWarningIcon);\nregisterIcon('success', SuccessIcon);\nregisterIcon('fail', FailIcon);\nregisterIcon('warning', WarningIcon);\nregisterIcon('warning-mark', WarningMarkIcon);\nregisterIcon('search', SearchIcon);\nregisterIcon('back', BackIcon);\nregisterIcon('move', MoveIcon);\nregisterIcon('info', InfoIcon);\nregisterIcon('info-circle', InfoCircleIcon);\nregisterIcon('location', LocationIcon);\nregisterIcon('drag-bar', DragBarIcon);\nregisterIcon('reload', ReloadIcon);\nregisterIcon('exchange', ExchangeIcon);\nregisterIcon('columns', ColmunsIcon);\nregisterIcon('calendar', CalendarIcon);\nregisterIcon('clock', ClockIcon);\nregisterIcon('copy', CopyIcon);\nregisterIcon('filter', FilterIcon);\nregisterIcon('column-filter', ColumnFilterIcon);\nregisterIcon('caret', CaretIcon);\nregisterIcon('right-arrow-bold', RightArrowBoldIcon);\nregisterIcon('zoom-in', ZoomInIcon);\nregisterIcon('zoom-out', ZoomOutIcon);\nregisterIcon('question', QuestionIcon);\nregisterIcon('question-mark', QuestionMarkIcon);\nregisterIcon('window-restore', WindowRestoreIcon);\nregisterIcon('schedule', ScheduleIcon);\nregisterIcon('home', HomeIcon);\nregisterIcon('folder', FolderIcon);\nregisterIcon('sort-default', SortDefaultIcon);\nregisterIcon('sort-asc', SortAscIcon);\nregisterIcon('sort-desc', SortDescIcon);\nregisterIcon('setting', SettingIcon);\nregisterIcon('plus-cicle', PlusCicleIcon);\nregisterIcon('ellipsis-v', EllipsisVIcon);\nregisterIcon('expand-alt', ExpandAltIcon);\nregisterIcon('compress-alt', CompressAltIcon);\nregisterIcon('transparent', TransparentIcon);\nregisterIcon('loading-outline', LoadingOutline);\nregisterIcon('star', Star);\nregisterIcon('alert-success', AlertSuccess);\nregisterIcon('alert-info', AlertInfo);\nregisterIcon('alert-warning', AlertWarning);\nregisterIcon('alert-danger', AlertDanger);\nregisterIcon('tree-down', TreeDownIcon);\nregisterIcon('function', FunctionIcon);\nregisterIcon('input-clear', InputClearIcon);\nregisterIcon('slider-handle', SliderHandleIcon);\nregisterIcon('cloud-upload', CloudUploadIcon);\nregisterIcon('image', ImageIcon);\nregisterIcon('refresh', RefreshIcon);\nregisterIcon('trash', TrashIcon);\n\nexport function Icon({\n icon,\n className,\n ...rest\n}: {\n icon: string;\n} & React.ComponentProps<any>) {\n // jest 运行环境下,把指定的 icon 也输出到 snapshot 中。\n if (typeof jest !== 'undefined') {\n rest.icon = icon;\n }\n\n const Component = getIcon(icon);\n return Component ? (\n <Component {...rest} className={`${className || ''} icon-${icon}`} />\n ) : (\n <span className=\"text-danger\">没有 icon {icon}</span>\n );\n}\n\nexport {\n InputClearIcon,\n CloseIcon,\n UnDoIcon,\n ReDoIcon,\n EnterIcon,\n VolumeIcon,\n MuteIcon,\n PlayIcon,\n PauseIcon,\n LeftArrowIcon,\n RightArrowIcon,\n CheckIcon,\n PlusIcon,\n MinusIcon,\n PencilIcon,\n FunctionIcon\n};\n"
|
12
12
|
]
|
13
13
|
}
|
package/lib/factory.js
CHANGED
@@ -327,14 +327,14 @@ function render(schema, props, options, pathPrefix) {
|
|
327
327
|
// 进行文本替换
|
328
328
|
if (env.replaceText && (0, helper_1.isObject)(env.replaceText)) {
|
329
329
|
var replaceKeys_1 = Object.keys(env.replaceText);
|
330
|
-
replaceKeys_1.sort().
|
330
|
+
replaceKeys_1.sort(function (a, b) { return b.length - a.length; }); // 避免用户将短的放前面
|
331
331
|
var replaceTextIgnoreKeys_1 = new Set(env.replaceTextIgnoreKeys || []);
|
332
332
|
(0, helper_1.JSONTraverse)(schema, function (value, key, object) {
|
333
333
|
if (typeof value === 'string' && !replaceTextIgnoreKeys_1.has(key)) {
|
334
334
|
for (var _i = 0, replaceKeys_2 = replaceKeys_1; _i < replaceKeys_2.length; _i++) {
|
335
335
|
var replaceKey = replaceKeys_2[_i];
|
336
336
|
if (~value.indexOf(replaceKey)) {
|
337
|
-
object[key] = value.replaceAll(replaceKey, env.replaceText[replaceKey]);
|
337
|
+
value = object[key] = value.replaceAll(replaceKey, env.replaceText[replaceKey]);
|
338
338
|
}
|
339
339
|
}
|
340
340
|
}
|