amis 1.9.0-beta.12 → 1.9.0-beta.15
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 +4 -2
- package/lib/Schema.js.map +1 -1
- package/lib/SchemaRenderer.d.ts +2 -2
- package/lib/SchemaRenderer.js +3 -3
- package/lib/SchemaRenderer.js.map +2 -2
- package/lib/actions/Action.d.ts +8 -6
- package/lib/actions/Action.js.map +2 -2
- package/lib/actions/AjaxAction.d.ts +10 -7
- package/lib/actions/AjaxAction.js +27 -21
- package/lib/actions/AjaxAction.js.map +2 -2
- package/lib/actions/BreakAction.d.ts +2 -2
- package/lib/actions/BreakAction.js.map +1 -1
- package/lib/actions/BroadcastAction.d.ts +3 -3
- package/lib/actions/BroadcastAction.js +3 -2
- package/lib/actions/BroadcastAction.js.map +2 -2
- package/lib/actions/CmptAction.d.ts +2 -2
- package/lib/actions/CmptAction.js +7 -9
- package/lib/actions/CmptAction.js.map +2 -2
- package/lib/actions/ContinueAction.d.ts +2 -2
- package/lib/actions/ContinueAction.js.map +1 -1
- package/lib/actions/CopyAction.d.ts +7 -4
- package/lib/actions/CopyAction.js +8 -6
- package/lib/actions/CopyAction.js.map +2 -2
- package/lib/actions/CustomAction.d.ts +2 -2
- package/lib/actions/CustomAction.js.map +1 -1
- package/lib/actions/DialogAction.d.ts +14 -8
- package/lib/actions/DialogAction.js +6 -6
- package/lib/actions/DialogAction.js.map +2 -2
- package/lib/actions/DrawerAction.d.ts +3 -3
- package/lib/actions/DrawerAction.js.map +1 -1
- package/lib/actions/EmailAction.d.ts +10 -7
- package/lib/actions/EmailAction.js +4 -5
- package/lib/actions/EmailAction.js.map +2 -2
- package/lib/actions/LinkAction.d.ts +19 -11
- package/lib/actions/LinkAction.js +6 -5
- package/lib/actions/LinkAction.js.map +2 -2
- package/lib/actions/LoopAction.d.ts +6 -3
- package/lib/actions/LoopAction.js +22 -20
- package/lib/actions/LoopAction.js.map +2 -2
- package/lib/actions/PageAction.d.ts +8 -5
- package/lib/actions/PageAction.js +3 -2
- package/lib/actions/PageAction.js.map +2 -2
- package/lib/actions/ParallelAction.d.ts +2 -2
- package/lib/actions/ParallelAction.js.map +1 -1
- package/lib/actions/SwitchAction.d.ts +2 -2
- package/lib/actions/SwitchAction.js.map +1 -1
- package/lib/actions/ToastAction.d.ts +2 -2
- package/lib/actions/ToastAction.js +6 -4
- package/lib/actions/ToastAction.js.map +2 -2
- package/lib/components/Editor.d.ts +84 -84
- package/lib/components/InputBox.js +1 -1
- package/lib/components/InputBox.js.map +2 -2
- package/lib/components/Pagination.d.ts +1175 -0
- package/lib/components/Pagination.js +274 -0
- package/lib/components/Pagination.js.map +13 -0
- package/lib/components/PickerContainer.d.ts +1 -0
- package/lib/components/PickerContainer.js +3 -2
- package/lib/components/PickerContainer.js.map +2 -2
- package/lib/components/Rating.js +11 -9
- package/lib/components/Rating.js.map +2 -2
- package/lib/components/Select.js +3 -3
- package/lib/components/Select.js.map +2 -2
- package/lib/components/Tag.d.ts +148 -0
- package/lib/components/Tag.js +96 -0
- package/lib/components/Tag.js.map +13 -0
- package/lib/components/TooltipWrapper.d.ts +25 -21
- package/lib/components/TooltipWrapper.js +11 -1
- package/lib/components/TooltipWrapper.js.map +2 -2
- package/lib/components/TransferDropDown.d.ts +85 -84
- package/lib/components/TransferDropDown.js +2 -2
- package/lib/components/TransferDropDown.js.map +2 -2
- package/lib/components/Tree.d.ts +84 -84
- package/lib/components/formula/VariableList.d.ts +1 -0
- package/lib/components/formula/VariableList.js.map +2 -2
- package/lib/components/icons.js +2 -0
- package/lib/components/icons.js.map +2 -2
- package/lib/components/index.d.ts +4 -1
- package/lib/components/index.js +7 -1
- package/lib/components/index.js.map +2 -2
- package/lib/components/schema-editor/Array.d.ts +11 -0
- package/lib/components/schema-editor/Array.js +66 -0
- package/lib/components/schema-editor/Array.js.map +13 -0
- package/lib/components/schema-editor/Common.d.ts +29 -0
- package/lib/components/schema-editor/Common.js +69 -0
- package/lib/components/schema-editor/Common.js.map +13 -0
- package/lib/components/schema-editor/Item.d.ts +9 -0
- package/lib/components/schema-editor/Item.js +31 -0
- package/lib/components/schema-editor/Item.js.map +13 -0
- package/lib/components/schema-editor/Object.d.ts +44 -0
- package/lib/components/schema-editor/Object.js +191 -0
- package/lib/components/schema-editor/Object.js.map +13 -0
- package/lib/components/schema-editor/SchemaVariableList.d.ts +316 -0
- package/lib/components/schema-editor/SchemaVariableList.js +74 -0
- package/lib/components/schema-editor/SchemaVariableList.js.map +13 -0
- package/lib/components/schema-editor/SchemaVariableListPicker.d.ts +305 -0
- package/lib/components/schema-editor/SchemaVariableListPicker.js +32 -0
- package/lib/components/schema-editor/SchemaVariableListPicker.js.map +13 -0
- package/lib/components/schema-editor/index.d.ts +520 -0
- package/lib/components/schema-editor/index.js +118 -0
- package/lib/components/schema-editor/index.js.map +13 -0
- package/lib/components/table/Cell.d.ts +930 -0
- package/lib/components/table/Cell.js +36 -0
- package/lib/components/table/Cell.js.map +13 -0
- package/lib/components/table/HeadCellDropDown.d.ts +514 -0
- package/lib/components/table/HeadCellDropDown.js +52 -0
- package/lib/components/table/HeadCellDropDown.js.map +13 -0
- package/lib/components/table/HeadCellFilter.d.ts +771 -0
- package/lib/components/table/HeadCellFilter.js +106 -0
- package/lib/components/table/HeadCellFilter.js.map +13 -0
- package/lib/components/table/HeadCellSelect.d.ts +672 -0
- package/lib/components/table/HeadCellSelect.js +46 -0
- package/lib/components/table/HeadCellSelect.js.map +13 -0
- package/lib/components/table/HeadCellSort.d.ts +498 -0
- package/lib/components/table/HeadCellSort.js +67 -0
- package/lib/components/table/HeadCellSort.js.map +13 -0
- package/lib/components/table/index.d.ts +1355 -0
- package/lib/components/table/index.js +1095 -0
- package/lib/components/table/index.js.map +13 -0
- package/lib/env.d.ts +2 -4
- package/lib/env.js.map +2 -2
- package/lib/factory.js +0 -95
- package/lib/factory.js.map +2 -2
- package/lib/icons/dot.js +11 -0
- package/lib/index.d.ts +6 -1
- package/lib/index.js +9 -2
- package/lib/index.js.map +2 -2
- package/lib/locale/de-DE.js +18 -1
- package/lib/locale/de-DE.js.map +2 -2
- package/lib/locale/en-US.js +18 -1
- package/lib/locale/en-US.js.map +2 -2
- package/lib/locale/zh-CN.js +20 -1
- package/lib/locale/zh-CN.js.map +2 -2
- package/lib/renderers/Action.js +0 -2
- package/lib/renderers/Action.js.map +2 -2
- package/lib/renderers/Carousel.d.ts +5 -1
- package/lib/renderers/Carousel.js +18 -5
- package/lib/renderers/Carousel.js.map +2 -2
- package/lib/renderers/Form/ButtonGroupSelect.d.ts +2 -0
- package/lib/renderers/Form/ButtonGroupSelect.js +7 -0
- package/lib/renderers/Form/ButtonGroupSelect.js.map +2 -2
- package/lib/renderers/Form/Checkbox.js +3 -4
- package/lib/renderers/Form/Checkbox.js.map +2 -2
- package/lib/renderers/Form/Checkboxes.d.ts +2 -1
- package/lib/renderers/Form/Checkboxes.js +19 -14
- package/lib/renderers/Form/Checkboxes.js.map +2 -2
- package/lib/renderers/Form/Combo.js +23 -4
- package/lib/renderers/Form/Combo.js.map +2 -2
- package/lib/renderers/Form/DiffEditor.d.ts +126 -18
- package/lib/renderers/Form/Editor.d.ts +412 -112
- package/lib/renderers/Form/Editor.js +10 -1
- package/lib/renderers/Form/Editor.js.map +2 -2
- package/lib/renderers/Form/InputExcel.js +6 -1
- package/lib/renderers/Form/InputExcel.js.map +2 -2
- package/lib/renderers/Form/InputFile.js +1 -2
- package/lib/renderers/Form/InputFile.js.map +2 -2
- package/lib/renderers/Form/InputTree.js +1 -1
- package/lib/renderers/Form/InputTree.js.map +2 -2
- package/lib/renderers/Form/Item.d.ts +0 -6
- package/lib/renderers/Form/JSONSchemaEditor.d.ts +41 -0
- package/lib/renderers/Form/JSONSchemaEditor.js +33 -0
- package/lib/renderers/Form/JSONSchemaEditor.js.map +13 -0
- package/lib/renderers/Form/ListSelect.d.ts +2 -0
- package/lib/renderers/Form/ListSelect.js +7 -0
- package/lib/renderers/Form/ListSelect.js.map +2 -2
- package/lib/renderers/Form/Options.js +1 -0
- package/lib/renderers/Form/Options.js.map +2 -2
- package/lib/renderers/Form/Select.js +12 -1
- package/lib/renderers/Form/Select.js.map +2 -2
- package/lib/renderers/Form/TabsTransfer.d.ts +1 -1
- package/lib/renderers/Form/TabsTransfer.js +2 -2
- package/lib/renderers/Form/TabsTransfer.js.map +2 -2
- package/lib/renderers/Form/TreeSelect.d.ts +4 -0
- package/lib/renderers/Form/TreeSelect.js +2 -2
- package/lib/renderers/Form/TreeSelect.js.map +2 -2
- package/lib/renderers/Form/wrapControl.js +10 -5
- package/lib/renderers/Form/wrapControl.js.map +2 -2
- package/lib/renderers/Pagination.d.ts +49 -30
- package/lib/renderers/Pagination.js +3 -132
- package/lib/renderers/Pagination.js.map +2 -2
- package/lib/renderers/Table/HeadCellSearchDropdown.js +0 -1
- package/lib/renderers/Table/HeadCellSearchDropdown.js.map +2 -2
- package/lib/renderers/Table-v2/HeadCellSearchDropdown.d.ts +29 -0
- package/lib/renderers/Table-v2/HeadCellSearchDropdown.js +158 -0
- package/lib/renderers/Table-v2/HeadCellSearchDropdown.js.map +13 -0
- package/lib/renderers/Table-v2/TableCell.d.ts +6 -0
- package/lib/renderers/Table-v2/TableCell.js +28 -0
- package/lib/renderers/Table-v2/TableCell.js.map +13 -0
- package/lib/renderers/Table-v2/index.d.ts +256 -0
- package/lib/renderers/Table-v2/index.js +548 -0
- package/lib/renderers/Table-v2/index.js.map +13 -0
- package/lib/renderers/Tabs.js +1 -1
- package/lib/renderers/Tabs.js.map +2 -2
- package/lib/renderers/Tag.d.ts +66 -0
- package/lib/renderers/Tag.js +53 -0
- package/lib/renderers/Tag.js.map +13 -0
- package/lib/renderers/Wizard.js +3 -3
- package/lib/renderers/Wizard.js.map +2 -2
- package/lib/schemaExtend.js +24 -30
- package/lib/schemaExtend.js.map +2 -2
- package/lib/store/combo.d.ts +140 -20
- package/lib/store/form.d.ts +56 -8
- package/lib/store/formItem.d.ts +3 -1
- package/lib/store/formItem.js +3 -1
- package/lib/store/formItem.js.map +2 -2
- package/lib/store/index.js +2 -0
- package/lib/store/index.js.map +2 -2
- package/lib/store/table-v2.d.ts +308 -0
- package/lib/store/table-v2.js +452 -0
- package/lib/store/table-v2.js.map +13 -0
- package/lib/store/table.d.ts +112 -16
- package/lib/store/table.js +1 -1
- package/lib/store/table.js.map +2 -2
- package/lib/themes/ang-ie11.css +1686 -120
- package/lib/themes/ang.css +1807 -208
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +1667 -101
- package/lib/themes/antd.css +1789 -201
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +1662 -97
- package/lib/themes/cxd.css +1983 -394
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +1667 -101
- package/lib/themes/dark.css +1789 -201
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default-ie11.css +1662 -97
- package/lib/themes/default.css +1983 -394
- package/lib/themes/default.css.map +1 -1
- package/lib/utils/DataSchema.d.ts +25 -0
- package/lib/utils/DataSchema.js +104 -0
- package/lib/utils/DataSchema.js.map +13 -0
- package/lib/utils/DataScope.d.ts +23 -0
- package/lib/utils/DataScope.js +140 -0
- package/lib/utils/DataScope.js.map +13 -0
- package/lib/utils/handleAction.js +1 -1
- package/lib/utils/handleAction.js.map +2 -2
- package/lib/utils/renderer-event.d.ts +8 -2
- package/lib/utils/renderer-event.js +102 -1
- package/lib/utils/renderer-event.js.map +2 -2
- package/package.json +3 -2
- package/schema.json +1476 -469
- package/scss/_properties.scss +69 -0
- package/scss/components/_button.scss +37 -39
- package/scss/components/_context-menu.scss +3 -18
- package/scss/components/_json-schema-editor.scss +126 -0
- package/scss/components/_pagination.scss +104 -23
- package/scss/components/_result-box.scss +2 -2
- package/scss/components/_table-v2.scss +912 -0
- package/scss/components/_tag.scss +177 -0
- package/scss/components/form/_selection.scss +1 -14
- package/scss/components/form/_text.scss +1 -1
- package/scss/themes/_antd-variables.scss +0 -13
- package/scss/themes/_common.scss +3 -0
- package/scss/themes/_cxd-variables.scss +7 -17
- package/scss/themes/_dark-variables.scss +0 -13
- package/scss/themes/cxd.scss +1 -1
- package/sdk/ang-ie11.css +2240 -227
- package/sdk/ang.css +2905 -859
- package/sdk/antd-ie11.css +2233 -220
- package/sdk/antd.css +2905 -870
- 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 +2223 -211
- package/sdk/cxd.css +2911 -875
- package/sdk/dark-ie11.css +2233 -220
- package/sdk/dark.css +2905 -870
- package/sdk/exceljs.js +1 -1
- package/sdk/locale/de-DE.js +18 -1
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +1 -1
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +16 -16
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +2223 -211
- package/sdk/sdk.css +2911 -875
- package/sdk/sdk.js +1326 -1270
- 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 +7 -0
- package/src/SchemaRenderer.tsx +4 -5
- package/src/actions/Action.ts +7 -6
- package/src/actions/AjaxAction.ts +33 -24
- package/src/actions/BreakAction.ts +2 -2
- package/src/actions/BroadcastAction.ts +6 -5
- package/src/actions/CmptAction.ts +5 -6
- package/src/actions/ContinueAction.ts +2 -2
- package/src/actions/CopyAction.ts +14 -8
- package/src/actions/CustomAction.ts +2 -2
- package/src/actions/DialogAction.ts +16 -10
- package/src/actions/DrawerAction.ts +3 -3
- package/src/actions/EmailAction.ts +12 -12
- package/src/actions/LinkAction.ts +34 -14
- package/src/actions/LoopAction.ts +13 -8
- package/src/actions/PageAction.ts +9 -6
- package/src/actions/ParallelAction.ts +2 -2
- package/src/actions/SwitchAction.ts +2 -2
- package/src/actions/ToastAction.ts +9 -5
- package/src/components/InputBox.tsx +1 -0
- package/src/components/Pagination.tsx +446 -0
- package/src/components/PickerContainer.tsx +8 -5
- package/src/components/Rating.tsx +16 -9
- package/src/components/Select.tsx +3 -3
- package/src/components/Tag.tsx +179 -0
- package/src/components/TooltipWrapper.tsx +14 -1
- package/src/components/TransferDropDown.tsx +3 -0
- package/src/components/formula/VariableList.tsx +1 -0
- package/src/components/icons.tsx +2 -0
- package/src/components/index.tsx +7 -1
- package/src/components/schema-editor/Array.tsx +95 -0
- package/src/components/schema-editor/Common.tsx +138 -0
- package/src/components/schema-editor/Item.tsx +36 -0
- package/src/components/schema-editor/Object.tsx +299 -0
- package/src/components/schema-editor/SchemaVariableList.tsx +97 -0
- package/src/components/schema-editor/SchemaVariableListPicker.tsx +66 -0
- package/src/components/schema-editor/index.tsx +211 -0
- package/src/components/table/Cell.tsx +70 -0
- package/src/components/table/HeadCellDropDown.tsx +115 -0
- package/src/components/table/HeadCellFilter.tsx +193 -0
- package/src/components/table/HeadCellSelect.tsx +86 -0
- package/src/components/table/HeadCellSort.tsx +102 -0
- package/src/components/table/index.tsx +1681 -0
- package/src/env.tsx +7 -14
- package/src/factory.tsx +3 -106
- package/src/icons/dot.svg +11 -0
- package/src/index.tsx +8 -1
- package/src/locale/de-DE.ts +18 -1
- package/src/locale/en-US.ts +18 -1
- package/src/locale/zh-CN.ts +20 -1
- package/src/renderers/Action.tsx +1 -1
- package/src/renderers/Carousel.tsx +21 -6
- package/src/renderers/Form/ButtonGroupSelect.tsx +10 -1
- package/src/renderers/Form/Checkbox.tsx +4 -4
- package/src/renderers/Form/Checkboxes.tsx +31 -25
- package/src/renderers/Form/Combo.tsx +20 -4
- package/src/renderers/Form/Editor.tsx +15 -1
- package/src/renderers/Form/InputExcel.tsx +6 -1
- package/src/renderers/Form/InputFile.tsx +1 -2
- package/src/renderers/Form/InputTree.tsx +1 -1
- package/src/renderers/Form/JSONSchemaEditor.tsx +67 -0
- package/src/renderers/Form/ListSelect.tsx +9 -1
- package/src/renderers/Form/Options.tsx +1 -1
- package/src/renderers/Form/Select.tsx +7 -0
- package/src/renderers/Form/TabsTransfer.tsx +2 -2
- package/src/renderers/Form/TreeSelect.tsx +8 -1
- package/src/renderers/Form/wrapControl.tsx +11 -5
- package/src/renderers/Pagination.tsx +65 -253
- package/src/renderers/Table/HeadCellSearchDropdown.tsx +0 -1
- package/src/renderers/Table-v2/HeadCellSearchDropdown.tsx +244 -0
- package/src/renderers/Table-v2/TableCell.tsx +19 -0
- package/src/renderers/Table-v2/index.tsx +1140 -0
- package/src/renderers/Tabs.tsx +1 -1
- package/src/renderers/Tag.tsx +128 -0
- package/src/renderers/Wizard.tsx +3 -3
- package/src/schemaExtend.ts +24 -28
- package/src/store/formItem.ts +5 -1
- package/src/store/index.ts +2 -0
- package/src/store/table-v2.ts +646 -0
- package/src/store/table.ts +1 -1
- package/src/utils/DataSchema.ts +131 -0
- package/src/utils/DataScope.ts +190 -0
- package/src/utils/handleAction.ts +1 -1
- package/src/utils/renderer-event.ts +113 -2
package/lib/store/table.js
CHANGED
package/lib/store/table.js.map
CHANGED
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/store/table.ts"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": "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",
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import {\n types,\n getParent,\n SnapshotIn,\n flow,\n getEnv,\n getRoot,\n IAnyModelType,\n isAlive,\n Instance\n} from 'mobx-state-tree';\nimport {iRendererStore} from './iRenderer';\nimport {resolveVariable, resolveVariableAndFilter} from '../utils/tpl-builtin';\nimport isEqual from 'lodash/isEqual';\nimport find from 'lodash/find';\nimport sortBy from 'lodash/sortBy';\nimport {\n isBreakpoint,\n createObject,\n isObject,\n isVisible,\n guid,\n findTree,\n flattenTree,\n eachTree,\n difference,\n immutableExtends,\n extendObject,\n hasVisibleExpression,\n filterTree\n} from '../utils/helper';\nimport {evalExpression} from '../utils/tpl';\nimport {IFormStore} from './form';\nimport {getStoreById} from './manager';\n\nimport type {SchemaObject} from '../Schema';\n\n/**\n * 内部列的数量 '__checkme' | '__dragme' | '__expandme'\n */\nconst PARTITION_INDEX = 3;\n\nexport const Column = types\n .model('Column', {\n label: types.optional(types.frozen(), undefined),\n type: types.optional(types.string, 'plain'),\n name: types.maybe(types.string),\n value: types.frozen(),\n groupName: '',\n toggled: false,\n toggable: true,\n expandable: false,\n checkdisable: false,\n isPrimary: false,\n searchable: types.maybe(types.frozen()),\n enableSearch: true,\n sortable: false,\n filterable: types.optional(types.frozen(), undefined),\n fixed: '',\n index: 0,\n rawIndex: 0,\n breakpoint: types.optional(types.frozen(), undefined),\n pristine: types.optional(types.frozen(), undefined),\n remark: types.optional(types.frozen(), undefined),\n className: types.union(types.string, types.frozen())\n })\n .actions(self => ({\n toggleToggle() {\n self.toggled = !self.toggled;\n const table = getParent(self, 2) as ITableStore;\n\n if (!table.activeToggaleColumns.length) {\n self.toggled = true;\n }\n\n table.persistSaveToggledColumns();\n },\n\n setToggled(value: boolean) {\n self.toggled = value;\n },\n\n setEnableSearch(value: boolean) {\n self.enableSearch = value;\n\n const table = getParent(self, 2) as ITableStore;\n table.persistSaveToggledColumns();\n }\n }));\n\nexport type IColumn = Instance<typeof Column>;\nexport type SColumn = SnapshotIn<typeof Column>;\n\nexport const Row = types\n .model('Row', {\n storeType: 'Row',\n id: types.identifier,\n parentId: '',\n key: types.string,\n pristine: types.frozen({} as any),\n data: types.frozen({} as any),\n rowSpans: types.frozen({} as any),\n index: types.number,\n newIndex: types.number,\n path: '', // 行数据的位置\n expandable: false,\n checkdisable: false,\n isHover: false,\n children: types.optional(\n types.array(types.late((): IAnyModelType => Row)),\n []\n ),\n depth: types.number // 当前children位于第几层,便于使用getParent获取最顶层TableStore\n })\n .views(self => ({\n get checked(): boolean {\n return (getParent(self, self.depth * 2) as ITableStore).isSelected(\n self as IRow\n );\n },\n\n get modified() {\n if (!self.data) {\n return false;\n }\n\n return Object.keys(self.data).some(\n key => !isEqual(self.data[key], self.pristine[key])\n );\n },\n\n getDataWithModifiedChilden() {\n let data = {\n ...self.data\n };\n\n if (data.children && self.children) {\n data.children = self.children.map(item =>\n item.getDataWithModifiedChilden()\n );\n }\n\n return data;\n },\n\n get collapsed(): boolean {\n const table = getParent(self, self.depth * 2) as ITableStore;\n if (table.dragging) {\n return true;\n }\n\n let from: IRow = self as any;\n\n while (from && (from as any) !== table) {\n if (!table.isExpanded(from)) {\n return true;\n }\n\n from = getParent(from, 2);\n }\n\n return false;\n },\n\n get expanded(): boolean {\n return !this.collapsed;\n },\n\n get moved() {\n return self.index !== self.newIndex;\n },\n\n get locals(): any {\n let children: Array<any> | null = null;\n if (self.children.length) {\n children = self.children.map(item => item.locals);\n }\n\n const parent = getParent(self, 2) as ITableStore;\n return createObject(\n extendObject((getParent(self, self.depth * 2) as ITableStore).data, {\n index: self.index,\n // todo 以后再支持多层,目前先一层\n parent: parent.storeType === Row.name ? parent.data : undefined\n }),\n children\n ? {\n ...self.data,\n children\n }\n : self.data\n );\n },\n\n get checkable(): boolean {\n const table = getParent(self, self.depth * 2) as ITableStore;\n return table && table.itemCheckableOn\n ? evalExpression(table.itemCheckableOn, (self as IRow).locals)\n : true;\n },\n\n get draggable(): boolean {\n const table = getParent(self, self.depth * 2) as ITableStore;\n return table && table.itemDraggableOn\n ? evalExpression(table.itemDraggableOn, (self as IRow).locals)\n : true;\n }\n }))\n .actions(self => ({\n toggle() {\n (getParent(self, self.depth * 2) as ITableStore).toggle(self as IRow);\n },\n\n toggleExpanded() {\n (getParent(self, self.depth * 2) as ITableStore).toggleExpanded(\n self as IRow\n );\n },\n\n change(values: object, savePristine?: boolean) {\n self.data = immutableExtends(self.data, values);\n savePristine && (self.pristine = self.data);\n },\n\n reset() {\n self.newIndex = self.index;\n self.data = self.pristine;\n },\n\n setCheckdisable(bool: boolean) {\n self.checkdisable = bool;\n },\n\n setIsHover(value: boolean) {\n self.isHover = value;\n },\n\n replaceWith(data: any) {\n Object.keys(data).forEach(key => {\n if (key !== 'id') {\n (self as any)[key] = data[key];\n }\n });\n\n if (Array.isArray(data.children)) {\n const arr = data.children;\n const pool = arr.concat();\n\n // 把多的删了先\n if (self.children.length > arr.length) {\n self.children.splice(arr.length, self.children.length - arr.length);\n }\n\n let index = 0;\n const len = self.children.length;\n while (pool.length) {\n // 因为父级id未更新,所以需要将子级的parentId正确指向父级id\n const item = {\n ...pool.shift(),\n parentId: self.id\n }!;\n\n if (index < len) {\n self.children[index].replaceWith(item);\n } else {\n const row = Row.create(item);\n self.children.push(row);\n }\n index++;\n }\n }\n }\n }));\n\nexport type IRow = Instance<typeof Row>;\nexport type SRow = SnapshotIn<typeof Row>;\n\nexport const TableStore = iRendererStore\n .named('TableStore')\n .props({\n columns: types.array(Column),\n rows: types.array(Row),\n selectedRows: types.array(types.reference(Row)),\n expandedRows: types.array(types.string),\n primaryField: 'id',\n orderBy: '',\n orderDir: types.optional(\n types.union(types.literal('asc'), types.literal('desc')),\n 'asc'\n ),\n draggable: false,\n dragging: false,\n selectable: false,\n multiple: true,\n footable: types.frozen(),\n expandConfig: types.frozen(),\n isNested: false,\n columnsTogglable: types.optional(\n types.union(types.boolean, types.literal('auto')),\n 'auto'\n ),\n itemCheckableOn: '',\n itemDraggableOn: '',\n hideCheckToggler: false,\n combineNum: 0,\n combineFromIndex: 0,\n formsRef: types.optional(types.array(types.frozen()), []),\n maxKeepItemSelectionLength: 0,\n keepItemSelectionOnPageChange: false\n })\n .views(self => {\n function getColumnsExceptBuiltinTypes() {\n return self.columns.filter(item => !/^__/.test(item.type));\n }\n\n function getForms() {\n return self.formsRef.map(item => ({\n store: getStoreById(item.id) as IFormStore,\n rowIndex: item.rowIndex\n }));\n }\n\n function getFilteredColumns() {\n return self.columns.filter(\n item =>\n item &&\n isVisible(\n item.pristine,\n hasVisibleExpression(item.pristine) ? self.data : {}\n ) &&\n (item.type === '__checkme'\n ? self.selectable &&\n !self.dragging &&\n !self.hideCheckToggler &&\n self.rows.length\n : item.type === '__dragme'\n ? self.dragging\n : item.type === '__expandme'\n ? (getFootableColumns().length || self.isNested) && !self.dragging\n : (item.toggled || !item.toggable) &&\n (!self.footable ||\n !item.breakpoint ||\n !isBreakpoint(item.breakpoint)))\n );\n }\n\n function getFootableColumns() {\n return self.columns.filter(item =>\n item.type === '__checkme' ||\n item.type === '__dragme' ||\n item.type === '__expandme'\n ? false\n : (item.toggled || !item.toggable) &&\n self.footable &&\n item.breakpoint &&\n isBreakpoint(item.breakpoint)\n );\n }\n\n function getLeftFixedColumns() {\n if (self.dragging) {\n return [];\n }\n\n let columns = getFilteredColumns().filter(item => item.fixed === 'left');\n\n // 有才带过去,没有就不带了\n if (columns.length) {\n columns = getFilteredColumns().filter(\n item => item.fixed === 'left' || /^__/.test(item.type)\n );\n }\n\n return columns;\n }\n\n function getRightFixedColumns() {\n if (self.dragging) {\n return [];\n }\n\n return getFilteredColumns().filter(item => item.fixed === 'right');\n }\n\n function isSelected(row: IRow): boolean {\n return !!~self.selectedRows.indexOf(row);\n }\n\n function isExpanded(row: IRow): boolean {\n return self.expandedRows.includes(row.id);\n }\n\n function getTogglable() {\n if (self.columnsTogglable === 'auto') {\n return self.columns.filter(item => !/^__/.test(item.type)).length > 5;\n }\n\n return self.columnsTogglable;\n }\n\n function getToggableColumns() {\n return self.columns.filter(\n item => isVisible(item.pristine, self.data) && item.toggable !== false\n );\n }\n\n function getActiveToggableColumns() {\n return getToggableColumns().filter(item => item.toggled);\n }\n\n function getModifiedRows(rows: IRow[] = [], modifiedRows: IRow[] = []) {\n rows = rows && rows.length ? rows : self.rows;\n rows.forEach((item: IRow) => {\n if (item.children && item.children.length) {\n getModifiedRows(item.children, modifiedRows);\n }\n let diff = difference(item.data, item.pristine);\n let hasDifference = Object.keys(diff).length;\n if (hasDifference) {\n modifiedRows.push(item);\n }\n });\n return modifiedRows;\n }\n\n function getModified() {\n return getModifiedRows().length;\n }\n\n function getMovedRows() {\n return flattenTree(self.rows).filter((item: IRow) => item.moved);\n }\n\n function getMoved() {\n return getMovedRows().length;\n }\n\n function getHovedRow(): IRow | undefined {\n return flattenTree<IRow>(self.rows).find((item: IRow) => item.isHover);\n }\n\n function getUnSelectedRows() {\n return flattenTree<IRow>(self.rows).filter((item: IRow) => !item.checked);\n }\n\n function getData(superData: any): any {\n return createObject(superData, {\n items: self.rows.map(item => item.data),\n selectedItems: self.selectedRows.map(item => item.data),\n unSelectedItems: getUnSelectedRows().map(item => item.data)\n });\n }\n\n function hasColumnHidden() {\n return self.columns.findIndex(column => !column.toggled) !== -1;\n }\n\n function getColumnGroup() {\n const columns = getFilteredColumns();\n const len = columns.length;\n\n if (!len) {\n return [];\n }\n\n const groups: Array<{\n label: string;\n index: number;\n colSpan: number;\n rowSpan: number;\n has: Array<any>;\n }> = [\n {\n label: columns[0].groupName,\n colSpan: 1,\n rowSpan: 1,\n index: columns[0].index,\n has: [columns[0]]\n }\n ];\n\n // 如果是勾选栏,让它和下一列合并。\n if (columns[0].type === '__checkme' && columns[1]) {\n groups[0].label = columns[1].groupName;\n }\n\n for (let i = 1; i < len; i++) {\n let prev = groups[groups.length - 1];\n const current = columns[i];\n\n if (\n current.groupName === prev.label ||\n resolveVariableAndFilter(current.groupName, self.data) ===\n resolveVariableAndFilter(prev.label, self.data)\n ) {\n prev.colSpan++;\n prev.has.push(current);\n } else {\n groups.push({\n label: current.groupName,\n colSpan: 1,\n rowSpan: 1,\n index: current.index,\n has: [current]\n });\n }\n }\n\n if (groups.length === 1 && !groups[0].label) {\n groups.pop();\n }\n\n return groups.map(item => {\n const rowSpan =\n !item.label ||\n (item.has.length === 1 && item.label === item.has[0].label)\n ? 2\n : 1;\n return {\n ...item,\n rowSpan,\n label: rowSpan === 2 ? item.label || item.has[0].label : item.label\n };\n });\n }\n\n function getFirstToggledColumnIndex() {\n const column = self.columns.find(\n column => !/^__/.test(column.type) && column.toggled\n );\n\n return column == null ? null : column.index;\n }\n\n function getSearchableColumns() {\n return self.columns.filter(column => column.searchable);\n }\n\n return {\n get columnsData() {\n return getColumnsExceptBuiltinTypes();\n },\n\n get forms() {\n return getForms();\n },\n\n get searchableColumns() {\n return getSearchableColumns();\n },\n\n get activedSearchableColumns() {\n return getSearchableColumns().filter(column => column.enableSearch);\n },\n\n get filteredColumns() {\n return getFilteredColumns();\n },\n\n get footableColumns() {\n return getFootableColumns();\n },\n\n get leftFixedColumns() {\n return getLeftFixedColumns();\n },\n\n get rightFixedColumns() {\n return getRightFixedColumns();\n },\n\n get toggableColumns() {\n return getToggableColumns();\n },\n\n get activeToggaleColumns() {\n return getActiveToggableColumns();\n },\n\n get someChecked() {\n return !!self.selectedRows.length;\n },\n\n get allChecked(): boolean {\n return !!(\n self.selectedRows.length ===\n (self as ITableStore).checkableRows.length &&\n (self as ITableStore).checkableRows.length\n );\n },\n\n isSelected,\n\n get allExpanded() {\n return !!(\n self.expandedRows.length === this.expandableRows.length &&\n this.expandableRows.length\n );\n },\n\n isExpanded,\n\n get toggable() {\n return getTogglable();\n },\n\n get modified() {\n return getModified();\n },\n\n get modifiedRows() {\n return getModifiedRows();\n },\n\n get unSelectedRows() {\n return getUnSelectedRows();\n },\n\n get checkableRows() {\n return flattenTree<IRow>(self.rows).filter(\n (item: IRow) => item.checkable\n );\n },\n\n get expandableRows() {\n return self.rows.filter(item => item.expandable);\n },\n\n get moved() {\n return getMoved();\n },\n\n get movedRows() {\n return getMovedRows();\n },\n\n get hoverRow() {\n return getHovedRow();\n },\n\n get disabledHeadCheckbox() {\n const selectedLength = self.data?.selectedItems.length;\n const maxLength = self.maxKeepItemSelectionLength;\n\n if (!self.data || !self.keepItemSelectionOnPageChange || !maxLength) {\n return false;\n }\n\n return maxLength === selectedLength;\n },\n\n get firstToggledColumnIndex() {\n return getFirstToggledColumnIndex();\n },\n\n getData,\n\n get columnGroup() {\n return getColumnGroup();\n },\n\n getRowById(id: string) {\n return findTree(self.rows, item => item.id === id);\n },\n\n getItemsByName(name: string): any {\n return this.forms\n .filter(form => form.rowIndex === parseInt(name, 10))\n .map(item => item.store);\n },\n\n // 是否隐藏了某列\n hasColumnHidden() {\n return hasColumnHidden();\n },\n\n getExpandedRows() {\n const list: Array<IRow> = [];\n\n eachTree(self.rows, i => {\n if (self.expandedRows.includes(i.id)) {\n list.push(i as any);\n }\n });\n\n return list;\n }\n };\n })\n .actions(self => {\n function update(config: Partial<STableStore>) {\n config.primaryField !== void 0 &&\n (self.primaryField = config.primaryField);\n config.selectable !== void 0 && (self.selectable = config.selectable);\n config.columnsTogglable !== void 0 &&\n (self.columnsTogglable = config.columnsTogglable);\n config.draggable !== void 0 && (self.draggable = config.draggable);\n\n if (typeof config.orderBy === 'string') {\n setOrderByInfo(\n config.orderBy,\n config.orderDir === 'desc' ? 'desc' : 'asc'\n );\n }\n\n config.multiple !== void 0 && (self.multiple = config.multiple);\n config.footable !== void 0 && (self.footable = config.footable);\n config.expandConfig !== void 0 &&\n (self.expandConfig = config.expandConfig);\n config.itemCheckableOn !== void 0 &&\n (self.itemCheckableOn = config.itemCheckableOn);\n config.itemDraggableOn !== void 0 &&\n (self.itemDraggableOn = config.itemDraggableOn);\n config.hideCheckToggler !== void 0 &&\n (self.hideCheckToggler = !!config.hideCheckToggler);\n\n config.combineNum !== void 0 &&\n (self.combineNum = parseInt(config.combineNum as any, 10) || 0);\n config.combineFromIndex !== void 0 &&\n (self.combineFromIndex =\n parseInt(config.combineFromIndex as any, 10) || 0);\n\n config.maxKeepItemSelectionLength !== void 0 &&\n (self.maxKeepItemSelectionLength = config.maxKeepItemSelectionLength);\n config.keepItemSelectionOnPageChange !== void 0 &&\n (self.keepItemSelectionOnPageChange =\n config.keepItemSelectionOnPageChange);\n\n if (config.columns && Array.isArray(config.columns)) {\n let columns: Array<SColumn> = config.columns\n .filter(column => column)\n .concat();\n if (!columns.length) {\n columns.push({\n type: 'text',\n label: '空'\n });\n }\n\n // 更新列顺序,afterCreate生命周期中更新columns不会触发组件的render\n const key = getPersistDataKey(columns);\n const data = localStorage.getItem(key);\n let tableMetaData = null;\n\n if (data) {\n try {\n tableMetaData = JSON.parse(data);\n } catch (error) {}\n\n const order = tableMetaData?.columnOrder;\n\n if (Array.isArray(order) && order.length != 0) {\n columns = sortBy(columns, (item, index) =>\n order.indexOf(item.name || item.label || index)\n );\n }\n }\n\n columns.unshift({\n type: '__expandme',\n toggable: false,\n className: 'Table-expandCell'\n });\n\n columns.unshift({\n type: '__checkme',\n fixed: 'left',\n toggable: false,\n className: 'Table-checkCell'\n });\n\n columns.unshift({\n type: '__dragme',\n toggable: false,\n className: 'Table-dragCell'\n });\n\n columns = columns.map((item, index) => ({\n ...item,\n index,\n rawIndex: index - PARTITION_INDEX,\n type: item.type || 'plain',\n pristine: item,\n toggled: item.toggled !== false,\n breakpoint: item.breakpoint,\n isPrimary: index === PARTITION_INDEX,\n className: item.className || ''\n }));\n\n self.columns.replace(columns as any);\n }\n }\n\n function updateColumns(columns: Array<SColumn>) {\n if (columns && Array.isArray(columns)) {\n columns = columns.filter(column => column).concat();\n\n if (!columns.length) {\n columns.push({\n type: 'text',\n label: '空'\n });\n }\n\n columns.unshift({\n type: '__expandme',\n toggable: false,\n className: 'Table-expandCell'\n });\n\n columns.unshift({\n type: '__checkme',\n fixed: 'left',\n toggable: false,\n className: 'Table-checkCell'\n });\n\n columns.unshift({\n type: '__dragme',\n toggable: false,\n className: 'Table-dragCell'\n });\n\n columns = columns.map((item, index) => ({\n ...item,\n index,\n rawIndex: index - PARTITION_INDEX,\n type: item.type || 'plain',\n pristine: item.pristine || item,\n toggled: item.toggled !== false,\n breakpoint: item.breakpoint,\n isPrimary: index === PARTITION_INDEX\n }));\n\n self.columns.replace(columns as any);\n persistSaveToggledColumns();\n }\n }\n\n function combineCell(arr: Array<SRow>, keys: Array<string>): Array<SRow> {\n if (!keys.length || !arr.length) {\n return arr;\n }\n\n const key: string = keys.shift() as string;\n let rowIndex = 0;\n let row = arr[rowIndex];\n row.rowSpans[key] = 1;\n let value = resolveVariable(key, row.data);\n for (let i = 1, len = arr.length; i < len; i++) {\n const current = arr[i];\n if (isEqual(resolveVariable(key, current.data), value)) {\n row.rowSpans[key] += 1;\n current.rowSpans[key] = 0;\n } else {\n if (row.rowSpans[key] > 1) {\n combineCell(arr.slice(rowIndex, i), keys.concat());\n }\n\n rowIndex = i;\n row = current;\n row.rowSpans[key] = 1;\n value = resolveVariable(key, row.data);\n }\n }\n\n if (row.rowSpans[key] > 1 && keys.length) {\n combineCell(arr.slice(rowIndex, arr.length), keys.concat());\n }\n\n return arr;\n }\n\n function autoCombineCell(\n arr: Array<SRow>,\n columns: Array<IColumn>,\n maxCount: number,\n fromIndex = 0\n ): Array<SRow> {\n if (!columns.length || !maxCount || !arr.length) {\n return arr;\n }\n // 如果是嵌套模式,通常第一列都是存在差异的,所以从第二列开始。\n fromIndex =\n fromIndex ||\n (arr.some(item => Array.isArray(item.children) && item.children.length)\n ? 1\n : 0);\n\n const keys: Array<string> = [];\n const len = columns.length;\n for (let i = 0; i < len; i++) {\n const column = columns[i];\n\n // maxCount 可能比实际配置的 columns 还有多。\n if (!column) {\n break;\n }\n\n if ('__' === column.type.substring(0, 2)) {\n maxCount++;\n continue;\n }\n\n const key = column.name;\n if (!key) {\n break;\n }\n keys.push(key);\n }\n\n while (fromIndex--) {\n keys.shift();\n }\n\n while (keys.length > maxCount) {\n keys.pop();\n }\n\n return combineCell(arr, keys);\n }\n\n function initChildren(\n children: Array<any>,\n depth: number,\n pindex: number,\n parentId: string,\n path: string = ''\n ): any {\n depth += 1;\n return children.map((item, index) => {\n item = isObject(item)\n ? item\n : {\n item\n };\n const id = item.__id ?? guid();\n\n return {\n // id: String(item && (item as any)[self.primaryField] || `${pindex}-${depth}-${key}`),\n id: String(id),\n parentId: String(parentId),\n key: String(`${pindex}-${depth}-${index}`),\n path: `${path}${index}`,\n depth: depth,\n index: index,\n newIndex: index,\n pristine: item,\n data: item,\n rowSpans: {},\n children:\n item && Array.isArray(item.children)\n ? initChildren(\n item.children,\n depth,\n index,\n id,\n `${path}${index}.`\n )\n : [],\n expandable: !!(\n (item && Array.isArray(item.children) && item.children.length) ||\n (self.footable && self.footableColumns.length)\n )\n };\n });\n }\n\n function initRows(\n rows: Array<any>,\n getEntryId?: (entry: any, index: number) => string,\n reUseRow?: boolean\n ) {\n self.selectedRows.clear();\n // self.expandedRows.clear();\n\n let arr: Array<SRow> = rows.map((item, index) => {\n if (!isObject(item)) {\n item = {\n item\n };\n }\n\n let id = String(\n getEntryId ? getEntryId(item, index) : item.__id ?? guid()\n );\n return {\n // id: getEntryId ? getEntryId(item, key) : String(item && (item as any)[self.primaryField] || `${key}-1-${key}`),\n id: id,\n key: String(`${index}-1-${index}`),\n depth: 1, // 最大父节点默认为第一层,逐层叠加\n index: index,\n newIndex: index,\n pristine: item,\n path: `${index}`,\n data: item,\n rowSpans: {},\n children:\n item && Array.isArray(item.children)\n ? initChildren(item.children, 1, index, id, `${index}.`)\n : [],\n expandable: !!(\n (item && Array.isArray(item.children) && item.children.length) ||\n (self.footable && self.footableColumns.length)\n )\n };\n });\n\n if (self.combineNum) {\n arr = autoCombineCell(\n arr,\n self.columns,\n self.combineNum,\n self.combineFromIndex\n );\n }\n\n replaceRow(arr, reUseRow);\n self.isNested = self.rows.some(item => item.children.length);\n\n const expand = self.footable && self.footable.expand;\n if (\n expand === 'first' ||\n (self.expandConfig && self.expandConfig.expand === 'first')\n ) {\n self.rows.length && self.expandedRows.push(self.rows[0].id);\n } else if (\n (expand === 'all' && !self.footable.accordion) ||\n (self.expandConfig &&\n self.expandConfig.expand === 'all' &&\n !self.expandConfig.accordion)\n ) {\n self.expandedRows.replace(self.rows.map(item => item.id));\n }\n\n self.dragging = false;\n }\n\n // 尽可能的复用 row\n function replaceRow(arr: Array<SRow>, reUseRow?: boolean) {\n if (reUseRow === false) {\n self.rows.replace(arr.map(item => Row.create(item)));\n return;\n }\n\n const pool = arr.concat();\n\n // 把多的删了先\n if (self.rows.length > arr.length) {\n self.rows.splice(arr.length, self.rows.length - arr.length);\n }\n\n let index = 0;\n const len = self.rows.length;\n while (pool.length) {\n const item = pool.shift()!;\n\n if (index < len) {\n self.rows[index].replaceWith(item);\n } else {\n const row = Row.create(item);\n self.rows.push(row);\n }\n index++;\n }\n }\n\n function updateSelected(selected: Array<any>, valueField?: string) {\n self.selectedRows.clear();\n\n eachTree(self.rows, item => {\n if (~selected.indexOf(item.pristine)) {\n self.selectedRows.push(item.id);\n } else if (\n find(\n selected,\n a =>\n a[valueField || 'value'] &&\n a[valueField || 'value'] == item.pristine[valueField || 'value']\n )\n ) {\n self.selectedRows.push(item.id);\n }\n });\n\n updateCheckDisable();\n }\n\n function toggleAll() {\n const maxLength = self.maxKeepItemSelectionLength;\n const keep = self.keepItemSelectionOnPageChange;\n\n if (self.allChecked) {\n self.selectedRows.clear();\n } else {\n const selectedItems = self.data?.selectedItems;\n\n if (\n keep &&\n maxLength &&\n selectedItems &&\n maxLength >= selectedItems.length\n ) {\n const restCheckableRows = self.checkableRows.filter(\n item => !item.checked\n );\n const checkableRows = restCheckableRows.filter(\n (item, i) => i < maxLength - selectedItems.length\n );\n\n self.selectedRows.replace([...self.selectedRows, ...checkableRows]);\n } else {\n self.selectedRows.replace(self.checkableRows);\n }\n }\n }\n\n // 记录最近一次点击的多选框,主要用于 shift 多选时判断上一个选的是什么\n let lastCheckedRow: any = null;\n\n function toggle(row: IRow) {\n if (!row.checkable) {\n return;\n }\n\n lastCheckedRow = row;\n\n const idx = self.selectedRows.indexOf(row);\n\n if (self.multiple) {\n ~idx ? self.selectedRows.splice(idx, 1) : self.selectedRows.push(row);\n } else {\n ~idx\n ? self.selectedRows.splice(idx, 1)\n : self.selectedRows.replace([row]);\n }\n }\n\n // 按住 shift 的时候点击选项\n function toggleShift(row: IRow) {\n // 如果是同一个或非 multiple 模式下就和不用 shift 一样\n if (!lastCheckedRow || row === lastCheckedRow || !self.multiple) {\n toggle(row);\n return;\n }\n\n const maxLength = self.maxKeepItemSelectionLength;\n const checkableRows = self.checkableRows;\n const lastCheckedRowIndex = checkableRows.findIndex(\n row => row === lastCheckedRow\n );\n const rowIndex = checkableRows.findIndex(rowItem => row === rowItem);\n const minIndex =\n lastCheckedRowIndex > rowIndex ? rowIndex : lastCheckedRowIndex;\n const maxIndex =\n lastCheckedRowIndex > rowIndex ? lastCheckedRowIndex : rowIndex;\n\n const rows = checkableRows.slice(minIndex, maxIndex);\n rows.push(row); // 将当前行也加入进行判断\n for (const rowItem of rows) {\n const idx = self.selectedRows.indexOf(rowItem);\n if (idx === -1) {\n // 如果上一个是选中状态,则将之间的所有 check 都变成可选\n if (lastCheckedRow.checked) {\n if (maxLength) {\n if (self.selectedRows.length < maxLength) {\n self.selectedRows.push(rowItem);\n }\n } else {\n self.selectedRows.push(rowItem);\n }\n }\n } else {\n if (!lastCheckedRow.checked) {\n self.selectedRows.splice(idx, 1);\n }\n }\n }\n\n lastCheckedRow = row;\n }\n\n function updateCheckDisable() {\n if (!self.data) {\n return;\n }\n const maxLength = self.maxKeepItemSelectionLength;\n const selectedItems = self.data.selectedItems;\n\n self.selectedRows.map(item => item.setCheckdisable(false));\n if (maxLength && maxLength <= selectedItems.length) {\n self.unSelectedRows.map(\n item => !item.checked && item.setCheckdisable(true)\n );\n } else {\n self.unSelectedRows.map(\n item => item.checkdisable && item.setCheckdisable(false)\n );\n }\n }\n\n function clear() {\n self.selectedRows.clear();\n }\n\n function toggleExpandAll() {\n if (self.allExpanded) {\n self.expandedRows.clear();\n } else {\n self.expandedRows.replace(\n self.rows.filter(item => item.expandable).map(item => item.id)\n );\n }\n }\n\n function toggleExpanded(row: IRow) {\n const idx = self.expandedRows.indexOf(row.id);\n\n if (~idx) {\n self.expandedRows.splice(idx, 1);\n } else if (self.footable && self.footable.accordion) {\n self.expandedRows.replace([row.id]);\n } else if (self.expandConfig && self.expandConfig.accordion) {\n let rows = self\n .getExpandedRows()\n .filter(item => item.depth !== row.depth);\n rows.push(row);\n self.expandedRows.replace(rows.map(item => item.id));\n } else {\n self.expandedRows.push(row.id);\n }\n }\n\n function collapseAllAtDepth(depth: number) {\n let rows = self.getExpandedRows().filter(item => item.depth !== depth);\n self.expandedRows.replace(rows.map(item => item.id));\n }\n\n function setOrderByInfo(key: string, direction: 'asc' | 'desc') {\n self.orderBy = key;\n self.orderDir = direction;\n }\n\n function reset() {\n self.rows.forEach(item => item.reset());\n let rows = self.rows.concat();\n eachTree(rows, item => {\n if (item.children) {\n let rows = item.children.concat().sort((a, b) => a.index - b.index);\n rows.forEach(item => item.reset());\n item.children.replace(rows);\n }\n });\n rows.forEach(item => item.reset());\n rows = rows.sort((a, b) => a.index - b.index);\n self.rows.replace(rows);\n self.dragging = false;\n }\n\n function toggleDragging() {\n self.dragging = !self.dragging;\n }\n\n function stopDragging() {\n self.dragging = false;\n }\n\n function exchange(fromIndex: number, toIndex: number, item?: IRow) {\n item = item || self.rows[fromIndex];\n\n if (item.parentId) {\n const parent: IRow = self.getRowById(item.parentId) as any;\n const offset = parent.children.indexOf(item) - fromIndex;\n toIndex += offset;\n fromIndex += offset;\n\n const newRows = parent.children.concat();\n newRows.splice(fromIndex, 1);\n newRows.splice(toIndex, 0, item);\n newRows.forEach((item, index) => (item.newIndex = index));\n parent.children.replace(newRows);\n return;\n }\n\n const newRows = self.rows.concat();\n newRows.splice(fromIndex, 1);\n newRows.splice(toIndex, 0, item);\n\n newRows.forEach((item, index) => (item.newIndex = index));\n self.rows.replace(newRows);\n }\n\n /**\n * 前端持久化记录列排序,查询字段,显示列信息\n */\n function persistSaveToggledColumns() {\n const key = getPersistDataKey(self.columnsData);\n\n localStorage.setItem(\n key,\n JSON.stringify({\n // 可显示列index\n toggledColumnIndex: self.activeToggaleColumns.map(item => item.index),\n // 列排序,name,label可能不存在\n columnOrder: self.columnsData.map(\n item => item.name || item.label || item.rawIndex\n ),\n // 已激活的可查询列\n enabledSearchableColumn: self.activedSearchableColumns.map(\n item => item.name\n )\n })\n );\n }\n\n function addForm(form: IFormStore, rowIndex: number) {\n self.formsRef.push({\n id: form.id,\n rowIndex\n });\n }\n\n function toggleAllColumns() {\n if (self.activeToggaleColumns.length) {\n if (self.activeToggaleColumns.length === self.toggableColumns.length) {\n self.toggableColumns.map(column => column.setToggled(false));\n } else {\n self.toggableColumns.map(column => column.setToggled(true));\n }\n } else {\n // 如果没有一个激活的,那就改成全选\n self.toggableColumns.map(column => column.setToggled(true));\n }\n persistSaveToggledColumns();\n }\n\n function getPersistDataKey(columns: any[]) {\n // 这里的columns使用除了__开头的所有列\n // sort保证存储和读取的key值保持一致\n return (\n location.pathname +\n self.path +\n sortBy(\n columns.map((item, index) => item.name || item.label || index)\n ).join('-')\n );\n }\n\n return {\n update,\n updateColumns,\n initRows,\n updateSelected,\n toggleAll,\n toggle,\n toggleShift,\n toggleExpandAll,\n toggleExpanded,\n collapseAllAtDepth,\n clear,\n setOrderByInfo,\n reset,\n toggleDragging,\n stopDragging,\n exchange,\n addForm,\n toggleAllColumns,\n persistSaveToggledColumns,\n\n // events\n afterCreate() {\n setTimeout(() => {\n if (!isAlive(self)) {\n return;\n }\n const key = getPersistDataKey(self.columnsData);\n const data = localStorage.getItem(key);\n\n if (data) {\n const tableMetaData = JSON.parse(data);\n const toggledColumns = isObject(tableMetaData)\n ? tableMetaData?.toggledColumnIndex\n : tableMetaData; // 兼容之前的类型\n\n self.toggableColumns.forEach(item =>\n item.setToggled(!!~toggledColumns.indexOf(item.index))\n );\n\n self.searchableColumns.forEach(item => {\n item.setEnableSearch(\n !!~(tableMetaData?.enabledSearchableColumn ?? []).indexOf(\n item.name\n )\n );\n });\n }\n }, 200);\n }\n };\n });\n\nexport type ITableStore = Instance<typeof TableStore>;\nexport type STableStore = SnapshotIn<typeof TableStore>;\n"
|
11
|
+
"import {\n types,\n getParent,\n SnapshotIn,\n flow,\n getEnv,\n getRoot,\n IAnyModelType,\n isAlive,\n Instance\n} from 'mobx-state-tree';\nimport {iRendererStore} from './iRenderer';\nimport {resolveVariable, resolveVariableAndFilter} from '../utils/tpl-builtin';\nimport isEqual from 'lodash/isEqual';\nimport find from 'lodash/find';\nimport sortBy from 'lodash/sortBy';\nimport {\n isBreakpoint,\n createObject,\n isObject,\n isVisible,\n guid,\n findTree,\n flattenTree,\n eachTree,\n difference,\n immutableExtends,\n extendObject,\n hasVisibleExpression,\n filterTree\n} from '../utils/helper';\nimport {evalExpression} from '../utils/tpl';\nimport {IFormStore} from './form';\nimport {getStoreById} from './manager';\n\nimport type {SchemaObject} from '../Schema';\n\n/**\n * 内部列的数量 '__checkme' | '__dragme' | '__expandme'\n */\nconst PARTITION_INDEX = 3;\n\nexport const Column = types\n .model('Column', {\n label: types.optional(types.frozen(), undefined),\n type: types.optional(types.string, 'plain'),\n name: types.maybe(types.string),\n value: types.frozen(),\n groupName: '',\n toggled: false,\n toggable: true,\n expandable: false,\n checkdisable: false,\n isPrimary: false,\n searchable: types.maybe(types.frozen()),\n enableSearch: true,\n sortable: false,\n filterable: types.optional(types.frozen(), undefined),\n fixed: '',\n index: 0,\n rawIndex: 0,\n breakpoint: types.optional(types.frozen(), undefined),\n pristine: types.optional(types.frozen(), undefined),\n remark: types.optional(types.frozen(), undefined),\n className: types.union(types.string, types.frozen())\n })\n .actions(self => ({\n toggleToggle() {\n self.toggled = !self.toggled;\n const table = getParent(self, 2) as ITableStore;\n\n if (!table.activeToggaleColumns.length) {\n self.toggled = true;\n }\n\n table.persistSaveToggledColumns();\n },\n\n setToggled(value: boolean) {\n self.toggled = value;\n },\n\n setEnableSearch(value: boolean) {\n self.enableSearch = value;\n\n const table = getParent(self, 2) as ITableStore;\n table.persistSaveToggledColumns();\n }\n }));\n\nexport type IColumn = Instance<typeof Column>;\nexport type SColumn = SnapshotIn<typeof Column>;\n\nexport const Row = types\n .model('Row', {\n storeType: 'Row',\n id: types.identifier,\n parentId: '',\n key: types.string,\n pristine: types.frozen({} as any),\n data: types.frozen({} as any),\n rowSpans: types.frozen({} as any),\n index: types.number,\n newIndex: types.number,\n path: '', // 行数据的位置\n expandable: false,\n checkdisable: false,\n isHover: false,\n children: types.optional(\n types.array(types.late((): IAnyModelType => Row)),\n []\n ),\n depth: types.number // 当前children位于第几层,便于使用getParent获取最顶层TableStore\n })\n .views(self => ({\n get checked(): boolean {\n return (getParent(self, self.depth * 2) as ITableStore).isSelected(\n self as IRow\n );\n },\n\n get modified() {\n if (!self.data) {\n return false;\n }\n\n return Object.keys(self.data).some(\n key => !isEqual(self.data[key], self.pristine[key])\n );\n },\n\n getDataWithModifiedChilden() {\n let data = {\n ...self.data\n };\n\n if (data.children && self.children) {\n data.children = self.children.map(item =>\n item.getDataWithModifiedChilden()\n );\n }\n\n return data;\n },\n\n get collapsed(): boolean {\n const table = getParent(self, self.depth * 2) as ITableStore;\n if (table.dragging) {\n return true;\n }\n\n let from: IRow = self as any;\n\n while (from && (from as any) !== table) {\n if (!table.isExpanded(from)) {\n return true;\n }\n\n from = getParent(from, 2);\n }\n\n return false;\n },\n\n get expanded(): boolean {\n return !this.collapsed;\n },\n\n get moved() {\n return self.index !== self.newIndex;\n },\n\n get locals(): any {\n let children: Array<any> | null = null;\n if (self.children.length) {\n children = self.children.map(item => item.locals);\n }\n\n const parent = getParent(self, 2) as ITableStore;\n return createObject(\n extendObject((getParent(self, self.depth * 2) as ITableStore).data, {\n index: self.index,\n // todo 以后再支持多层,目前先一层\n parent: parent.storeType === Row.name ? parent.data : undefined\n }),\n children\n ? {\n ...self.data,\n children\n }\n : self.data\n );\n },\n\n get checkable(): boolean {\n const table = getParent(self, self.depth * 2) as ITableStore;\n return table && table.itemCheckableOn\n ? evalExpression(table.itemCheckableOn, (self as IRow).locals)\n : true;\n },\n\n get draggable(): boolean {\n const table = getParent(self, self.depth * 2) as ITableStore;\n return table && table.itemDraggableOn\n ? evalExpression(table.itemDraggableOn, (self as IRow).locals)\n : true;\n }\n }))\n .actions(self => ({\n toggle() {\n (getParent(self, self.depth * 2) as ITableStore).toggle(self as IRow);\n },\n\n toggleExpanded() {\n (getParent(self, self.depth * 2) as ITableStore).toggleExpanded(\n self as IRow\n );\n },\n\n change(values: object, savePristine?: boolean) {\n self.data = immutableExtends(self.data, values);\n savePristine && (self.pristine = self.data);\n },\n\n reset() {\n self.newIndex = self.index;\n self.data = self.pristine;\n },\n\n setCheckdisable(bool: boolean) {\n self.checkdisable = bool;\n },\n\n setIsHover(value: boolean) {\n self.isHover = value;\n },\n\n replaceWith(data: any) {\n Object.keys(data).forEach(key => {\n if (key !== 'id') {\n (self as any)[key] = data[key];\n }\n });\n\n if (Array.isArray(data.children)) {\n const arr = data.children;\n const pool = arr.concat();\n\n // 把多的删了先\n if (self.children.length > arr.length) {\n self.children.splice(arr.length, self.children.length - arr.length);\n }\n\n let index = 0;\n const len = self.children.length;\n while (pool.length) {\n // 因为父级id未更新,所以需要将子级的parentId正确指向父级id\n const item = {\n ...pool.shift(),\n parentId: self.id\n }!;\n\n if (index < len) {\n self.children[index].replaceWith(item);\n } else {\n const row = Row.create(item);\n self.children.push(row);\n }\n index++;\n }\n }\n }\n }));\n\nexport type IRow = Instance<typeof Row>;\nexport type SRow = SnapshotIn<typeof Row>;\n\nexport const TableStore = iRendererStore\n .named('TableStore')\n .props({\n columns: types.array(Column),\n rows: types.array(Row),\n selectedRows: types.array(types.reference(Row)),\n expandedRows: types.array(types.string),\n primaryField: 'id',\n orderBy: '',\n orderDir: types.optional(\n types.union(types.literal('asc'), types.literal('desc')),\n 'asc'\n ),\n draggable: false,\n dragging: false,\n selectable: false,\n multiple: true,\n footable: types.frozen(),\n expandConfig: types.frozen(),\n isNested: false,\n columnsTogglable: types.optional(\n types.union(types.boolean, types.literal('auto')),\n 'auto'\n ),\n itemCheckableOn: '',\n itemDraggableOn: '',\n hideCheckToggler: false,\n combineNum: 0,\n combineFromIndex: 0,\n formsRef: types.optional(types.array(types.frozen()), []),\n maxKeepItemSelectionLength: 0,\n keepItemSelectionOnPageChange: false\n })\n .views(self => {\n function getColumnsExceptBuiltinTypes() {\n return self.columns.filter(item => !/^__/.test(item.type));\n }\n\n function getForms() {\n return self.formsRef.map(item => ({\n store: getStoreById(item.id) as IFormStore,\n rowIndex: item.rowIndex\n }));\n }\n\n function getFilteredColumns() {\n return self.columns.filter(\n item =>\n item &&\n isVisible(\n item.pristine,\n hasVisibleExpression(item.pristine) ? self.data : {}\n ) &&\n (item.type === '__checkme'\n ? self.selectable &&\n !self.dragging &&\n !self.hideCheckToggler &&\n self.rows.length\n : item.type === '__dragme'\n ? self.dragging\n : item.type === '__expandme'\n ? (getFootableColumns().length || self.isNested) && !self.dragging\n : (item.toggled || !item.toggable) &&\n (!self.footable ||\n !item.breakpoint ||\n !isBreakpoint(item.breakpoint)))\n );\n }\n\n function getFootableColumns() {\n return self.columns.filter(item =>\n item.type === '__checkme' ||\n item.type === '__dragme' ||\n item.type === '__expandme'\n ? false\n : (item.toggled || !item.toggable) &&\n self.footable &&\n item.breakpoint &&\n isBreakpoint(item.breakpoint)\n );\n }\n\n function getLeftFixedColumns() {\n if (self.dragging) {\n return [];\n }\n\n let columns = getFilteredColumns().filter(item => item.fixed === 'left');\n\n // 有才带过去,没有就不带了\n if (columns.length) {\n columns = getFilteredColumns().filter(\n item => item.fixed === 'left' || /^__/.test(item.type)\n );\n }\n\n return columns;\n }\n\n function getRightFixedColumns() {\n if (self.dragging) {\n return [];\n }\n\n return getFilteredColumns().filter(item => item.fixed === 'right');\n }\n\n function isSelected(row: IRow): boolean {\n return !!~self.selectedRows.indexOf(row);\n }\n\n function isExpanded(row: IRow): boolean {\n return self.expandedRows.includes(row.id);\n }\n\n function getTogglable() {\n if (self.columnsTogglable === 'auto') {\n return self.columns.filter(item => !/^__/.test(item.type)).length > 5;\n }\n\n return self.columnsTogglable;\n }\n\n function getToggableColumns() {\n return self.columns.filter(\n item => isVisible(item.pristine, self.data) && item.toggable !== false\n );\n }\n\n function getActiveToggableColumns() {\n return getToggableColumns().filter(item => item.toggled);\n }\n\n function getModifiedRows(rows: IRow[] = [], modifiedRows: IRow[] = []) {\n rows = rows && rows.length ? rows : self.rows;\n rows.forEach((item: IRow) => {\n if (item.children && item.children.length) {\n getModifiedRows(item.children, modifiedRows);\n }\n let diff = difference(item.data, item.pristine);\n let hasDifference = Object.keys(diff).length;\n if (hasDifference) {\n modifiedRows.push(item);\n }\n });\n return modifiedRows;\n }\n\n function getModified() {\n return getModifiedRows().length;\n }\n\n function getMovedRows() {\n return flattenTree(self.rows).filter((item: IRow) => item.moved);\n }\n\n function getMoved() {\n return getMovedRows().length;\n }\n\n function getHovedRow(): IRow | undefined {\n return flattenTree<IRow>(self.rows).find((item: IRow) => item.isHover);\n }\n\n function getUnSelectedRows() {\n return flattenTree<IRow>(self.rows).filter((item: IRow) => !item.checked);\n }\n\n function getData(superData: any): any {\n return createObject(superData, {\n items: self.rows.map(item => item.data),\n selectedItems: self.selectedRows.map(item => item.data),\n unSelectedItems: getUnSelectedRows().map(item => item.data)\n });\n }\n\n function hasColumnHidden() {\n return self.columns.findIndex(column => !column.toggled) !== -1;\n }\n\n function getColumnGroup() {\n const columns = getFilteredColumns();\n const len = columns.length;\n\n if (!len) {\n return [];\n }\n\n const groups: Array<{\n label: string;\n index: number;\n colSpan: number;\n rowSpan: number;\n has: Array<any>;\n }> = [\n {\n label: columns[0].groupName,\n colSpan: 1,\n rowSpan: 1,\n index: columns[0].index,\n has: [columns[0]]\n }\n ];\n\n // 如果是勾选栏,让它和下一列合并。\n if (columns[0].type === '__checkme' && columns[1]) {\n groups[0].label = columns[1].groupName;\n }\n\n for (let i = 1; i < len; i++) {\n let prev = groups[groups.length - 1];\n const current = columns[i];\n\n if (\n current.groupName === prev.label ||\n resolveVariableAndFilter(current.groupName, self.data) ===\n resolveVariableAndFilter(prev.label, self.data)\n ) {\n prev.colSpan++;\n prev.has.push(current);\n } else {\n groups.push({\n label: current.groupName || ' ', // 如果中间没有配置groupName,那么样式会错乱,这里加一个空白字符,当做一个占位表头\n colSpan: 1,\n rowSpan: 1,\n index: current.index,\n has: [current]\n });\n }\n }\n\n if (groups.length === 1 && !groups[0].label) {\n groups.pop();\n }\n\n return groups.map(item => {\n const rowSpan =\n !item.label ||\n (item.has.length === 1 && item.label === item.has[0].label)\n ? 2\n : 1;\n return {\n ...item,\n rowSpan,\n label: rowSpan === 2 ? item.label || item.has[0].label : item.label\n };\n });\n }\n\n function getFirstToggledColumnIndex() {\n const column = self.columns.find(\n column => !/^__/.test(column.type) && column.toggled\n );\n\n return column == null ? null : column.index;\n }\n\n function getSearchableColumns() {\n return self.columns.filter(column => column.searchable);\n }\n\n return {\n get columnsData() {\n return getColumnsExceptBuiltinTypes();\n },\n\n get forms() {\n return getForms();\n },\n\n get searchableColumns() {\n return getSearchableColumns();\n },\n\n get activedSearchableColumns() {\n return getSearchableColumns().filter(column => column.enableSearch);\n },\n\n get filteredColumns() {\n return getFilteredColumns();\n },\n\n get footableColumns() {\n return getFootableColumns();\n },\n\n get leftFixedColumns() {\n return getLeftFixedColumns();\n },\n\n get rightFixedColumns() {\n return getRightFixedColumns();\n },\n\n get toggableColumns() {\n return getToggableColumns();\n },\n\n get activeToggaleColumns() {\n return getActiveToggableColumns();\n },\n\n get someChecked() {\n return !!self.selectedRows.length;\n },\n\n get allChecked(): boolean {\n return !!(\n self.selectedRows.length ===\n (self as ITableStore).checkableRows.length &&\n (self as ITableStore).checkableRows.length\n );\n },\n\n isSelected,\n\n get allExpanded() {\n return !!(\n self.expandedRows.length === this.expandableRows.length &&\n this.expandableRows.length\n );\n },\n\n isExpanded,\n\n get toggable() {\n return getTogglable();\n },\n\n get modified() {\n return getModified();\n },\n\n get modifiedRows() {\n return getModifiedRows();\n },\n\n get unSelectedRows() {\n return getUnSelectedRows();\n },\n\n get checkableRows() {\n return flattenTree<IRow>(self.rows).filter(\n (item: IRow) => item.checkable\n );\n },\n\n get expandableRows() {\n return self.rows.filter(item => item.expandable);\n },\n\n get moved() {\n return getMoved();\n },\n\n get movedRows() {\n return getMovedRows();\n },\n\n get hoverRow() {\n return getHovedRow();\n },\n\n get disabledHeadCheckbox() {\n const selectedLength = self.data?.selectedItems.length;\n const maxLength = self.maxKeepItemSelectionLength;\n\n if (!self.data || !self.keepItemSelectionOnPageChange || !maxLength) {\n return false;\n }\n\n return maxLength === selectedLength;\n },\n\n get firstToggledColumnIndex() {\n return getFirstToggledColumnIndex();\n },\n\n getData,\n\n get columnGroup() {\n return getColumnGroup();\n },\n\n getRowById(id: string) {\n return findTree(self.rows, item => item.id === id);\n },\n\n getItemsByName(name: string): any {\n return this.forms\n .filter(form => form.rowIndex === parseInt(name, 10))\n .map(item => item.store);\n },\n\n // 是否隐藏了某列\n hasColumnHidden() {\n return hasColumnHidden();\n },\n\n getExpandedRows() {\n const list: Array<IRow> = [];\n\n eachTree(self.rows, i => {\n if (self.expandedRows.includes(i.id)) {\n list.push(i as any);\n }\n });\n\n return list;\n }\n };\n })\n .actions(self => {\n function update(config: Partial<STableStore>) {\n config.primaryField !== void 0 &&\n (self.primaryField = config.primaryField);\n config.selectable !== void 0 && (self.selectable = config.selectable);\n config.columnsTogglable !== void 0 &&\n (self.columnsTogglable = config.columnsTogglable);\n config.draggable !== void 0 && (self.draggable = config.draggable);\n\n if (typeof config.orderBy === 'string') {\n setOrderByInfo(\n config.orderBy,\n config.orderDir === 'desc' ? 'desc' : 'asc'\n );\n }\n\n config.multiple !== void 0 && (self.multiple = config.multiple);\n config.footable !== void 0 && (self.footable = config.footable);\n config.expandConfig !== void 0 &&\n (self.expandConfig = config.expandConfig);\n config.itemCheckableOn !== void 0 &&\n (self.itemCheckableOn = config.itemCheckableOn);\n config.itemDraggableOn !== void 0 &&\n (self.itemDraggableOn = config.itemDraggableOn);\n config.hideCheckToggler !== void 0 &&\n (self.hideCheckToggler = !!config.hideCheckToggler);\n\n config.combineNum !== void 0 &&\n (self.combineNum = parseInt(config.combineNum as any, 10) || 0);\n config.combineFromIndex !== void 0 &&\n (self.combineFromIndex =\n parseInt(config.combineFromIndex as any, 10) || 0);\n\n config.maxKeepItemSelectionLength !== void 0 &&\n (self.maxKeepItemSelectionLength = config.maxKeepItemSelectionLength);\n config.keepItemSelectionOnPageChange !== void 0 &&\n (self.keepItemSelectionOnPageChange =\n config.keepItemSelectionOnPageChange);\n\n if (config.columns && Array.isArray(config.columns)) {\n let columns: Array<SColumn> = config.columns\n .filter(column => column)\n .concat();\n if (!columns.length) {\n columns.push({\n type: 'text',\n label: '空'\n });\n }\n\n // 更新列顺序,afterCreate生命周期中更新columns不会触发组件的render\n const key = getPersistDataKey(columns);\n const data = localStorage.getItem(key);\n let tableMetaData = null;\n\n if (data) {\n try {\n tableMetaData = JSON.parse(data);\n } catch (error) {}\n\n const order = tableMetaData?.columnOrder;\n\n if (Array.isArray(order) && order.length != 0) {\n columns = sortBy(columns, (item, index) =>\n order.indexOf(item.name || item.label || index)\n );\n }\n }\n\n columns.unshift({\n type: '__expandme',\n toggable: false,\n className: 'Table-expandCell'\n });\n\n columns.unshift({\n type: '__checkme',\n fixed: 'left',\n toggable: false,\n className: 'Table-checkCell'\n });\n\n columns.unshift({\n type: '__dragme',\n toggable: false,\n className: 'Table-dragCell'\n });\n\n columns = columns.map((item, index) => ({\n ...item,\n index,\n rawIndex: index - PARTITION_INDEX,\n type: item.type || 'plain',\n pristine: item,\n toggled: item.toggled !== false,\n breakpoint: item.breakpoint,\n isPrimary: index === PARTITION_INDEX,\n className: item.className || ''\n }));\n\n self.columns.replace(columns as any);\n }\n }\n\n function updateColumns(columns: Array<SColumn>) {\n if (columns && Array.isArray(columns)) {\n columns = columns.filter(column => column).concat();\n\n if (!columns.length) {\n columns.push({\n type: 'text',\n label: '空'\n });\n }\n\n columns.unshift({\n type: '__expandme',\n toggable: false,\n className: 'Table-expandCell'\n });\n\n columns.unshift({\n type: '__checkme',\n fixed: 'left',\n toggable: false,\n className: 'Table-checkCell'\n });\n\n columns.unshift({\n type: '__dragme',\n toggable: false,\n className: 'Table-dragCell'\n });\n\n columns = columns.map((item, index) => ({\n ...item,\n index,\n rawIndex: index - PARTITION_INDEX,\n type: item.type || 'plain',\n pristine: item.pristine || item,\n toggled: item.toggled !== false,\n breakpoint: item.breakpoint,\n isPrimary: index === PARTITION_INDEX\n }));\n\n self.columns.replace(columns as any);\n persistSaveToggledColumns();\n }\n }\n\n function combineCell(arr: Array<SRow>, keys: Array<string>): Array<SRow> {\n if (!keys.length || !arr.length) {\n return arr;\n }\n\n const key: string = keys.shift() as string;\n let rowIndex = 0;\n let row = arr[rowIndex];\n row.rowSpans[key] = 1;\n let value = resolveVariable(key, row.data);\n for (let i = 1, len = arr.length; i < len; i++) {\n const current = arr[i];\n if (isEqual(resolveVariable(key, current.data), value)) {\n row.rowSpans[key] += 1;\n current.rowSpans[key] = 0;\n } else {\n if (row.rowSpans[key] > 1) {\n combineCell(arr.slice(rowIndex, i), keys.concat());\n }\n\n rowIndex = i;\n row = current;\n row.rowSpans[key] = 1;\n value = resolveVariable(key, row.data);\n }\n }\n\n if (row.rowSpans[key] > 1 && keys.length) {\n combineCell(arr.slice(rowIndex, arr.length), keys.concat());\n }\n\n return arr;\n }\n\n function autoCombineCell(\n arr: Array<SRow>,\n columns: Array<IColumn>,\n maxCount: number,\n fromIndex = 0\n ): Array<SRow> {\n if (!columns.length || !maxCount || !arr.length) {\n return arr;\n }\n // 如果是嵌套模式,通常第一列都是存在差异的,所以从第二列开始。\n fromIndex =\n fromIndex ||\n (arr.some(item => Array.isArray(item.children) && item.children.length)\n ? 1\n : 0);\n\n const keys: Array<string> = [];\n const len = columns.length;\n for (let i = 0; i < len; i++) {\n const column = columns[i];\n\n // maxCount 可能比实际配置的 columns 还有多。\n if (!column) {\n break;\n }\n\n if ('__' === column.type.substring(0, 2)) {\n maxCount++;\n continue;\n }\n\n const key = column.name;\n if (!key) {\n break;\n }\n keys.push(key);\n }\n\n while (fromIndex--) {\n keys.shift();\n }\n\n while (keys.length > maxCount) {\n keys.pop();\n }\n\n return combineCell(arr, keys);\n }\n\n function initChildren(\n children: Array<any>,\n depth: number,\n pindex: number,\n parentId: string,\n path: string = ''\n ): any {\n depth += 1;\n return children.map((item, index) => {\n item = isObject(item)\n ? item\n : {\n item\n };\n const id = item.__id ?? guid();\n\n return {\n // id: String(item && (item as any)[self.primaryField] || `${pindex}-${depth}-${key}`),\n id: String(id),\n parentId: String(parentId),\n key: String(`${pindex}-${depth}-${index}`),\n path: `${path}${index}`,\n depth: depth,\n index: index,\n newIndex: index,\n pristine: item,\n data: item,\n rowSpans: {},\n children:\n item && Array.isArray(item.children)\n ? initChildren(\n item.children,\n depth,\n index,\n id,\n `${path}${index}.`\n )\n : [],\n expandable: !!(\n (item && Array.isArray(item.children) && item.children.length) ||\n (self.footable && self.footableColumns.length)\n )\n };\n });\n }\n\n function initRows(\n rows: Array<any>,\n getEntryId?: (entry: any, index: number) => string,\n reUseRow?: boolean\n ) {\n self.selectedRows.clear();\n // self.expandedRows.clear();\n\n let arr: Array<SRow> = rows.map((item, index) => {\n if (!isObject(item)) {\n item = {\n item\n };\n }\n\n let id = String(\n getEntryId ? getEntryId(item, index) : item.__id ?? guid()\n );\n return {\n // id: getEntryId ? getEntryId(item, key) : String(item && (item as any)[self.primaryField] || `${key}-1-${key}`),\n id: id,\n key: String(`${index}-1-${index}`),\n depth: 1, // 最大父节点默认为第一层,逐层叠加\n index: index,\n newIndex: index,\n pristine: item,\n path: `${index}`,\n data: item,\n rowSpans: {},\n children:\n item && Array.isArray(item.children)\n ? initChildren(item.children, 1, index, id, `${index}.`)\n : [],\n expandable: !!(\n (item && Array.isArray(item.children) && item.children.length) ||\n (self.footable && self.footableColumns.length)\n )\n };\n });\n\n if (self.combineNum) {\n arr = autoCombineCell(\n arr,\n self.columns,\n self.combineNum,\n self.combineFromIndex\n );\n }\n\n replaceRow(arr, reUseRow);\n self.isNested = self.rows.some(item => item.children.length);\n\n const expand = self.footable && self.footable.expand;\n if (\n expand === 'first' ||\n (self.expandConfig && self.expandConfig.expand === 'first')\n ) {\n self.rows.length && self.expandedRows.push(self.rows[0].id);\n } else if (\n (expand === 'all' && !self.footable.accordion) ||\n (self.expandConfig &&\n self.expandConfig.expand === 'all' &&\n !self.expandConfig.accordion)\n ) {\n self.expandedRows.replace(self.rows.map(item => item.id));\n }\n\n self.dragging = false;\n }\n\n // 尽可能的复用 row\n function replaceRow(arr: Array<SRow>, reUseRow?: boolean) {\n if (reUseRow === false) {\n self.rows.replace(arr.map(item => Row.create(item)));\n return;\n }\n\n const pool = arr.concat();\n\n // 把多的删了先\n if (self.rows.length > arr.length) {\n self.rows.splice(arr.length, self.rows.length - arr.length);\n }\n\n let index = 0;\n const len = self.rows.length;\n while (pool.length) {\n const item = pool.shift()!;\n\n if (index < len) {\n self.rows[index].replaceWith(item);\n } else {\n const row = Row.create(item);\n self.rows.push(row);\n }\n index++;\n }\n }\n\n function updateSelected(selected: Array<any>, valueField?: string) {\n self.selectedRows.clear();\n\n eachTree(self.rows, item => {\n if (~selected.indexOf(item.pristine)) {\n self.selectedRows.push(item.id);\n } else if (\n find(\n selected,\n a =>\n a[valueField || 'value'] &&\n a[valueField || 'value'] == item.pristine[valueField || 'value']\n )\n ) {\n self.selectedRows.push(item.id);\n }\n });\n\n updateCheckDisable();\n }\n\n function toggleAll() {\n const maxLength = self.maxKeepItemSelectionLength;\n const keep = self.keepItemSelectionOnPageChange;\n\n if (self.allChecked) {\n self.selectedRows.clear();\n } else {\n const selectedItems = self.data?.selectedItems;\n\n if (\n keep &&\n maxLength &&\n selectedItems &&\n maxLength >= selectedItems.length\n ) {\n const restCheckableRows = self.checkableRows.filter(\n item => !item.checked\n );\n const checkableRows = restCheckableRows.filter(\n (item, i) => i < maxLength - selectedItems.length\n );\n\n self.selectedRows.replace([...self.selectedRows, ...checkableRows]);\n } else {\n self.selectedRows.replace(self.checkableRows);\n }\n }\n }\n\n // 记录最近一次点击的多选框,主要用于 shift 多选时判断上一个选的是什么\n let lastCheckedRow: any = null;\n\n function toggle(row: IRow) {\n if (!row.checkable) {\n return;\n }\n\n lastCheckedRow = row;\n\n const idx = self.selectedRows.indexOf(row);\n\n if (self.multiple) {\n ~idx ? self.selectedRows.splice(idx, 1) : self.selectedRows.push(row);\n } else {\n ~idx\n ? self.selectedRows.splice(idx, 1)\n : self.selectedRows.replace([row]);\n }\n }\n\n // 按住 shift 的时候点击选项\n function toggleShift(row: IRow) {\n // 如果是同一个或非 multiple 模式下就和不用 shift 一样\n if (!lastCheckedRow || row === lastCheckedRow || !self.multiple) {\n toggle(row);\n return;\n }\n\n const maxLength = self.maxKeepItemSelectionLength;\n const checkableRows = self.checkableRows;\n const lastCheckedRowIndex = checkableRows.findIndex(\n row => row === lastCheckedRow\n );\n const rowIndex = checkableRows.findIndex(rowItem => row === rowItem);\n const minIndex =\n lastCheckedRowIndex > rowIndex ? rowIndex : lastCheckedRowIndex;\n const maxIndex =\n lastCheckedRowIndex > rowIndex ? lastCheckedRowIndex : rowIndex;\n\n const rows = checkableRows.slice(minIndex, maxIndex);\n rows.push(row); // 将当前行也加入进行判断\n for (const rowItem of rows) {\n const idx = self.selectedRows.indexOf(rowItem);\n if (idx === -1) {\n // 如果上一个是选中状态,则将之间的所有 check 都变成可选\n if (lastCheckedRow.checked) {\n if (maxLength) {\n if (self.selectedRows.length < maxLength) {\n self.selectedRows.push(rowItem);\n }\n } else {\n self.selectedRows.push(rowItem);\n }\n }\n } else {\n if (!lastCheckedRow.checked) {\n self.selectedRows.splice(idx, 1);\n }\n }\n }\n\n lastCheckedRow = row;\n }\n\n function updateCheckDisable() {\n if (!self.data) {\n return;\n }\n const maxLength = self.maxKeepItemSelectionLength;\n const selectedItems = self.data.selectedItems;\n\n self.selectedRows.map(item => item.setCheckdisable(false));\n if (maxLength && maxLength <= selectedItems.length) {\n self.unSelectedRows.map(\n item => !item.checked && item.setCheckdisable(true)\n );\n } else {\n self.unSelectedRows.map(\n item => item.checkdisable && item.setCheckdisable(false)\n );\n }\n }\n\n function clear() {\n self.selectedRows.clear();\n }\n\n function toggleExpandAll() {\n if (self.allExpanded) {\n self.expandedRows.clear();\n } else {\n self.expandedRows.replace(\n self.rows.filter(item => item.expandable).map(item => item.id)\n );\n }\n }\n\n function toggleExpanded(row: IRow) {\n const idx = self.expandedRows.indexOf(row.id);\n\n if (~idx) {\n self.expandedRows.splice(idx, 1);\n } else if (self.footable && self.footable.accordion) {\n self.expandedRows.replace([row.id]);\n } else if (self.expandConfig && self.expandConfig.accordion) {\n let rows = self\n .getExpandedRows()\n .filter(item => item.depth !== row.depth);\n rows.push(row);\n self.expandedRows.replace(rows.map(item => item.id));\n } else {\n self.expandedRows.push(row.id);\n }\n }\n\n function collapseAllAtDepth(depth: number) {\n let rows = self.getExpandedRows().filter(item => item.depth !== depth);\n self.expandedRows.replace(rows.map(item => item.id));\n }\n\n function setOrderByInfo(key: string, direction: 'asc' | 'desc') {\n self.orderBy = key;\n self.orderDir = direction;\n }\n\n function reset() {\n self.rows.forEach(item => item.reset());\n let rows = self.rows.concat();\n eachTree(rows, item => {\n if (item.children) {\n let rows = item.children.concat().sort((a, b) => a.index - b.index);\n rows.forEach(item => item.reset());\n item.children.replace(rows);\n }\n });\n rows.forEach(item => item.reset());\n rows = rows.sort((a, b) => a.index - b.index);\n self.rows.replace(rows);\n self.dragging = false;\n }\n\n function toggleDragging() {\n self.dragging = !self.dragging;\n }\n\n function stopDragging() {\n self.dragging = false;\n }\n\n function exchange(fromIndex: number, toIndex: number, item?: IRow) {\n item = item || self.rows[fromIndex];\n\n if (item.parentId) {\n const parent: IRow = self.getRowById(item.parentId) as any;\n const offset = parent.children.indexOf(item) - fromIndex;\n toIndex += offset;\n fromIndex += offset;\n\n const newRows = parent.children.concat();\n newRows.splice(fromIndex, 1);\n newRows.splice(toIndex, 0, item);\n newRows.forEach((item, index) => (item.newIndex = index));\n parent.children.replace(newRows);\n return;\n }\n\n const newRows = self.rows.concat();\n newRows.splice(fromIndex, 1);\n newRows.splice(toIndex, 0, item);\n\n newRows.forEach((item, index) => (item.newIndex = index));\n self.rows.replace(newRows);\n }\n\n /**\n * 前端持久化记录列排序,查询字段,显示列信息\n */\n function persistSaveToggledColumns() {\n const key = getPersistDataKey(self.columnsData);\n\n localStorage.setItem(\n key,\n JSON.stringify({\n // 可显示列index\n toggledColumnIndex: self.activeToggaleColumns.map(item => item.index),\n // 列排序,name,label可能不存在\n columnOrder: self.columnsData.map(\n item => item.name || item.label || item.rawIndex\n ),\n // 已激活的可查询列\n enabledSearchableColumn: self.activedSearchableColumns.map(\n item => item.name\n )\n })\n );\n }\n\n function addForm(form: IFormStore, rowIndex: number) {\n self.formsRef.push({\n id: form.id,\n rowIndex\n });\n }\n\n function toggleAllColumns() {\n if (self.activeToggaleColumns.length) {\n if (self.activeToggaleColumns.length === self.toggableColumns.length) {\n self.toggableColumns.map(column => column.setToggled(false));\n } else {\n self.toggableColumns.map(column => column.setToggled(true));\n }\n } else {\n // 如果没有一个激活的,那就改成全选\n self.toggableColumns.map(column => column.setToggled(true));\n }\n persistSaveToggledColumns();\n }\n\n function getPersistDataKey(columns: any[]) {\n // 这里的columns使用除了__开头的所有列\n // sort保证存储和读取的key值保持一致\n return (\n location.pathname +\n self.path +\n sortBy(\n columns.map((item, index) => item.name || item.label || index)\n ).join('-')\n );\n }\n\n return {\n update,\n updateColumns,\n initRows,\n updateSelected,\n toggleAll,\n toggle,\n toggleShift,\n toggleExpandAll,\n toggleExpanded,\n collapseAllAtDepth,\n clear,\n setOrderByInfo,\n reset,\n toggleDragging,\n stopDragging,\n exchange,\n addForm,\n toggleAllColumns,\n persistSaveToggledColumns,\n\n // events\n afterCreate() {\n setTimeout(() => {\n if (!isAlive(self)) {\n return;\n }\n const key = getPersistDataKey(self.columnsData);\n const data = localStorage.getItem(key);\n\n if (data) {\n const tableMetaData = JSON.parse(data);\n const toggledColumns = isObject(tableMetaData)\n ? tableMetaData?.toggledColumnIndex\n : tableMetaData; // 兼容之前的类型\n\n self.toggableColumns.forEach(item =>\n item.setToggled(!!~toggledColumns.indexOf(item.index))\n );\n\n self.searchableColumns.forEach(item => {\n item.setEnableSearch(\n !!~(tableMetaData?.enabledSearchableColumn ?? []).indexOf(\n item.name\n )\n );\n });\n }\n }, 200);\n }\n };\n });\n\nexport type ITableStore = Instance<typeof TableStore>;\nexport type STableStore = SnapshotIn<typeof TableStore>;\n"
|
12
12
|
]
|
13
13
|
}
|