@nokecy/qc-ui 1.1.37 → 1.1.39
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/README.md +25 -25
- package/dist/cjs/ConfirmPro/index.js +4 -4
- package/dist/cjs/RuleBuilder/LogicSelector.js +7 -7
- package/dist/cjs/RuleBuilder/RuleBuilderContainer.js +27 -27
- package/dist/cjs/RuleBuilder/RuleCard.js +6 -6
- package/dist/cjs/RuleBuilder/RuleGroupEditor.js +7 -7
- package/dist/cjs/RuleBuilder/constants/operators.js +18 -18
- package/dist/cjs/RuleBuilder/context/RuleBuilderContext.js +38 -38
- package/dist/cjs/RuleBuilder/inputs/BetweenValueInput.js +5 -5
- package/dist/cjs/RuleBuilder/inputs/MultiValueInput.js +5 -5
- package/dist/cjs/RuleBuilder/inputs/SingleValueInput.js +8 -8
- package/dist/cjs/RuleBuilder/inputs/ValueInput.js +8 -8
- package/dist/cjs/RuleBuilder/selectors/FieldSelector.js +5 -5
- package/dist/cjs/RuleBuilder/selectors/OperatorSelector.js +5 -5
- package/dist/cjs/RuleBuilder/styles/index.module.less +443 -443
- package/dist/cjs/RuleBuilder/styles/index.module.less.d.ts +43 -43
- package/dist/cjs/RuleBuilder/types/index.js +42 -42
- package/dist/cjs/RuleBuilder/utils/pathHelpers.js +47 -47
- package/dist/cjs/RuleBuilder/utils/ruleHelpers.js +31 -31
- package/dist/cjs/RuleBuilder/utils/validation.js +22 -22
- package/dist/cjs/ag-grid-plus/_utils/boolSelect.js +5 -5
- package/dist/cjs/ag-grid-plus/_utils/processColumnGroups.js +9 -9
- package/dist/cjs/ag-grid-plus/ag-grid-theme-builder.css +352 -352
- package/dist/cjs/ag-grid-plus/ag-gridPlus.js +96 -85
- package/dist/cjs/ag-grid-plus/context/gridContext.js +19 -19
- package/dist/cjs/ag-grid-plus/context/useSchemeDataFlow.js +93 -57
- package/dist/cjs/ag-grid-plus/context/useSchemeManager.js +213 -172
- package/dist/cjs/ag-grid-plus/errors/ErrorBoundary.js +8 -8
- package/dist/cjs/ag-grid-plus/errors/types.js +14 -14
- package/dist/cjs/ag-grid-plus/hooks/useAgGridCalculation.js +45 -45
- package/dist/cjs/ag-grid-plus/hooks/useAgGridData.js +44 -44
- package/dist/cjs/ag-grid-plus/hooks/useGridPlusColumnState.js +3 -3
- package/dist/cjs/ag-grid-plus/hooks/useGridState.js +36 -36
- package/dist/cjs/ag-grid-plus/index.less +50 -50
- package/dist/cjs/ag-grid-plus/queryForm/index.less +72 -72
- package/dist/cjs/ag-grid-plus/setting/ColumnConfigForm.js +11 -11
- package/dist/cjs/ag-grid-plus/setting/ColumnConfigTable.js +3 -3
- package/dist/cjs/ag-grid-plus/setting/ColumnNameCellRenderer.js +10 -10
- package/dist/cjs/ag-grid-plus/setting/ColumnSetting.js +81 -65
- package/dist/cjs/ag-grid-plus/setting/DebounceInputs.js +9 -9
- package/dist/cjs/ag-grid-plus/setting/MoveNodeModal.js +7 -7
- package/dist/cjs/ag-grid-plus/setting/NameColumnRenderer.js +6 -6
- package/dist/cjs/ag-grid-plus/setting/QuerySchemeManager.js +34 -34
- package/dist/cjs/ag-grid-plus/setting/columnGroupUtils.js +89 -78
- package/dist/cjs/ag-grid-plus/setting/performanceMonitor.js +5 -5
- package/dist/cjs/ag-grid-plus/shared/storage/backendApiAdapter.js +46 -46
- package/dist/cjs/ag-grid-plus/shared/storage/localStorageAdapter.js +39 -39
- package/dist/cjs/ag-grid-plus/shared/utils/schemeDataMigration.js +18 -18
- package/dist/cjs/ag-grid-plus/theme.js +3 -3
- package/dist/cjs/ag-grid-plus/toolBar/index.js +4 -4
- package/dist/cjs/ag-grid-plus/utils/columnProcessors.js +52 -52
- package/dist/cjs/ag-grid-plus/utils/constants.js +22 -22
- package/dist/cjs/ag-grid-plus/utils/entityExtensionColumns.js +20 -20
- package/dist/cjs/ag-grid-plus/utils/logger.js +2 -2
- package/dist/cjs/ag-grid-plus/utils/sanitize.js +10 -10
- package/dist/cjs/ag-grid-plus/utils.js +3 -3
- package/dist/cjs/array-table/arrayAddBtn.js +26 -17
- package/dist/cjs/array-table/columnHelper.js +43 -43
- package/dist/cjs/array-table/hooks.d.ts +2 -1
- package/dist/cjs/array-table/hooks.js +34 -52
- package/dist/cjs/array-table/index.js +145 -66
- package/dist/cjs/array-table/preview.js +1 -1
- package/dist/cjs/array-table/readOnlyFormatters.d.ts +28 -0
- package/dist/cjs/array-table/readOnlyFormatters.js +113 -0
- package/dist/cjs/array-table/utils.d.ts +2 -2
- package/dist/cjs/array-table/utils.js +165 -13
- package/dist/cjs/components/RegexEditor/core/RegexEditor.js +32 -32
- package/dist/cjs/components/RegexEditor/core/RegexEditor.less +119 -119
- package/dist/cjs/components/RegexEditor/core/extensions/errorMarker.js +52 -52
- package/dist/cjs/components/RegexEditor/hooks/useRegexTester.js +48 -48
- package/dist/cjs/components/RegexEditor/hooks/useRegexValidation.js +54 -54
- package/dist/cjs/components/RegexEditor/hooks/useTemplateManager.js +5 -5
- package/dist/cjs/components/RegexEditor/templates/TemplateSelector.js +28 -28
- package/dist/cjs/components/RegexEditor/templates/builtinTemplates.js +24 -24
- package/dist/cjs/components/RegexEditor/templates/storage.js +29 -29
- package/dist/cjs/components/RegexEditor/templates/templateManager.js +29 -29
- package/dist/cjs/components/RegexEditor/templates/types.js +74 -74
- package/dist/cjs/components/RegexEditor/validation/complexity.js +40 -40
- package/dist/cjs/components/RegexEditor/validation/parser.js +47 -47
- package/dist/cjs/components/RegexEditor/validation/validator.js +54 -54
- package/dist/cjs/components/RegexEditor/visualizer/FlagsSelector.js +19 -19
- package/dist/cjs/components/RegexEditor/visualizer/MatchItem.js +20 -20
- package/dist/cjs/components/RegexEditor/visualizer/RegexRailroadDiagram.js +15 -15
- package/dist/cjs/components/RegexEditor/visualizer/RegexTester.js +17 -17
- package/dist/cjs/components/RegexEditor/visualizer/astToRailroad.js +11 -11
- package/dist/cjs/components/RegexEditor/visualizer/utils.js +92 -92
- package/dist/cjs/dashboard/dashboard/components/toolbar/style/index.less +49 -49
- package/dist/cjs/dashboard/dashboard/index.less +173 -173
- package/dist/cjs/dashboard/dashboard/utils.js +4 -4
- package/dist/cjs/dashboard/utils.js +8 -8
- package/dist/cjs/dashboard/widget/index.less +7 -7
- package/dist/cjs/dashboard/widget/selector/index.less +172 -172
- package/dist/cjs/deleteConfirm/index.js +17 -17
- package/dist/cjs/draggableModal/index.js +4 -4
- package/dist/cjs/draggableModal/style.less +122 -122
- package/dist/cjs/editable/index.js +19 -2
- package/dist/cjs/formDesigner/FormDesigner.js +3 -2
- package/dist/cjs/formDesigner/arrayTable/styles.less +2 -2
- package/dist/cjs/formDesigner/index.less +2 -2
- package/dist/cjs/formDesigner/preWidgets/index.d.ts +1 -10
- package/dist/cjs/formDesigner/preWidgets/index.js +1 -100
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty.d.ts +11 -0
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty.js +70 -0
- package/dist/cjs/fullScreenAlert/index.js +13 -13
- package/dist/cjs/fullScreenAlert/index.less +133 -133
- package/dist/cjs/generatedListPage/ConfigurableToolbar.js +2 -2
- package/dist/cjs/generatedListPage/GeneratedListPage.js +20 -20
- package/dist/cjs/generatedListPage/OptionsColumn.js +3 -3
- package/dist/cjs/generatedListPage/PerformanceMonitor.js +9 -9
- package/dist/cjs/generatedListPage/RequestManager.js +39 -39
- package/dist/cjs/generatedListPage/_utils/AccessWrapper.js +6 -6
- package/dist/cjs/generatedListPage/_utils/defaultHandlers.js +14 -14
- package/dist/cjs/generatedListPage/usePermissionCheck.js +27 -27
- package/dist/cjs/generatedListPage/useRequestManager.js +20 -20
- package/dist/cjs/importModal/index.js +4 -4
- package/dist/cjs/standardFormDialog/FormValidation.js +45 -45
- package/dist/cjs/standardFormDialog/PortalManager.js +46 -46
- package/dist/cjs/standardFormDialog/StandardFormDialog.js +20 -20
- package/dist/cjs/standardFormDialog/useStandardFormSchema.js +24 -24
- package/dist/cjs/toolBar/index.less +25 -25
- package/dist/cjs/types/railroad-diagrams.d.ts +59 -59
- package/dist/cjs/types/regexp-tree.d.ts +175 -175
- package/dist/esm/ConfirmPro/index.js +4 -4
- package/dist/esm/RuleBuilder/LogicSelector.js +7 -7
- package/dist/esm/RuleBuilder/RuleBuilderContainer.js +27 -27
- package/dist/esm/RuleBuilder/RuleCard.js +6 -6
- package/dist/esm/RuleBuilder/RuleGroupEditor.js +7 -7
- package/dist/esm/RuleBuilder/constants/operators.js +18 -18
- package/dist/esm/RuleBuilder/context/RuleBuilderContext.js +38 -38
- package/dist/esm/RuleBuilder/index.js +6 -6
- package/dist/esm/RuleBuilder/inputs/BetweenValueInput.js +5 -5
- package/dist/esm/RuleBuilder/inputs/MultiValueInput.js +5 -5
- package/dist/esm/RuleBuilder/inputs/SingleValueInput.js +8 -8
- package/dist/esm/RuleBuilder/inputs/ValueInput.js +8 -8
- package/dist/esm/RuleBuilder/selectors/FieldSelector.js +5 -5
- package/dist/esm/RuleBuilder/selectors/OperatorSelector.js +5 -5
- package/dist/esm/RuleBuilder/styles/index.module.less +443 -443
- package/dist/esm/RuleBuilder/styles/index.module.less.d.ts +43 -43
- package/dist/esm/RuleBuilder/types/index.js +42 -42
- package/dist/esm/RuleBuilder/utils/pathHelpers.js +47 -47
- package/dist/esm/RuleBuilder/utils/ruleHelpers.js +31 -31
- package/dist/esm/RuleBuilder/utils/validation.js +22 -22
- package/dist/esm/ag-grid-plus/_utils/boolSelect.js +5 -5
- package/dist/esm/ag-grid-plus/_utils/processColumnGroups.js +9 -9
- package/dist/esm/ag-grid-plus/ag-grid-theme-builder.css +352 -352
- package/dist/esm/ag-grid-plus/ag-gridPlus.js +96 -85
- package/dist/esm/ag-grid-plus/context/gridContext.js +19 -19
- package/dist/esm/ag-grid-plus/context/useSchemeDataFlow.js +93 -57
- package/dist/esm/ag-grid-plus/context/useSchemeManager.js +213 -172
- package/dist/esm/ag-grid-plus/errors/ErrorBoundary.js +8 -8
- package/dist/esm/ag-grid-plus/errors/types.js +14 -14
- package/dist/esm/ag-grid-plus/hooks/index.js +2 -2
- package/dist/esm/ag-grid-plus/hooks/useAgGridCalculation.js +45 -45
- package/dist/esm/ag-grid-plus/hooks/useAgGridData.js +44 -44
- package/dist/esm/ag-grid-plus/hooks/useGridPlusColumnState.js +3 -3
- package/dist/esm/ag-grid-plus/hooks/useGridState.js +36 -36
- package/dist/esm/ag-grid-plus/index.less +50 -50
- package/dist/esm/ag-grid-plus/queryForm/index.less +72 -72
- package/dist/esm/ag-grid-plus/setting/ColumnConfigForm.js +11 -11
- package/dist/esm/ag-grid-plus/setting/ColumnConfigTable.js +3 -3
- package/dist/esm/ag-grid-plus/setting/ColumnNameCellRenderer.js +10 -10
- package/dist/esm/ag-grid-plus/setting/ColumnSetting.js +81 -65
- package/dist/esm/ag-grid-plus/setting/DebounceInputs.js +9 -9
- package/dist/esm/ag-grid-plus/setting/MoveNodeModal.js +7 -7
- package/dist/esm/ag-grid-plus/setting/NameColumnRenderer.js +6 -6
- package/dist/esm/ag-grid-plus/setting/QuerySchemeManager.js +34 -34
- package/dist/esm/ag-grid-plus/setting/columnGroupUtils.js +89 -76
- package/dist/esm/ag-grid-plus/setting/performanceMonitor.js +5 -5
- package/dist/esm/ag-grid-plus/shared/storage/backendApiAdapter.js +46 -46
- package/dist/esm/ag-grid-plus/shared/storage/localStorageAdapter.js +39 -39
- package/dist/esm/ag-grid-plus/shared/utils/schemeDataMigration.js +18 -18
- package/dist/esm/ag-grid-plus/theme.js +3 -3
- package/dist/esm/ag-grid-plus/toolBar/index.js +4 -4
- package/dist/esm/ag-grid-plus/utils/columnProcessors.js +52 -52
- package/dist/esm/ag-grid-plus/utils/constants.js +22 -22
- package/dist/esm/ag-grid-plus/utils/entityExtensionColumns.js +20 -20
- package/dist/esm/ag-grid-plus/utils/logger.js +2 -2
- package/dist/esm/ag-grid-plus/utils/sanitize.js +10 -10
- package/dist/esm/ag-grid-plus/utils.js +3 -3
- package/dist/esm/array-table/arrayAddBtn.js +26 -17
- package/dist/esm/array-table/columnHelper.js +43 -43
- package/dist/esm/array-table/hooks.d.ts +2 -1
- package/dist/esm/array-table/hooks.js +34 -52
- package/dist/esm/array-table/index.js +147 -68
- package/dist/esm/array-table/preview.js +2 -2
- package/dist/esm/array-table/readOnlyFormatters.d.ts +28 -0
- package/dist/esm/array-table/readOnlyFormatters.js +107 -0
- package/dist/esm/array-table/utils.d.ts +2 -2
- package/dist/esm/array-table/utils.js +165 -13
- package/dist/esm/components/RegexEditor/core/RegexEditor.js +32 -32
- package/dist/esm/components/RegexEditor/core/RegexEditor.less +119 -119
- package/dist/esm/components/RegexEditor/core/extensions/errorMarker.js +52 -52
- package/dist/esm/components/RegexEditor/hooks/index.js +4 -4
- package/dist/esm/components/RegexEditor/hooks/useRegexTester.js +48 -48
- package/dist/esm/components/RegexEditor/hooks/useRegexValidation.js +54 -54
- package/dist/esm/components/RegexEditor/hooks/useTemplateManager.js +5 -5
- package/dist/esm/components/RegexEditor/templates/TemplateSelector.js +28 -28
- package/dist/esm/components/RegexEditor/templates/builtinTemplates.js +24 -24
- package/dist/esm/components/RegexEditor/templates/index.js +2 -2
- package/dist/esm/components/RegexEditor/templates/storage.js +29 -29
- package/dist/esm/components/RegexEditor/templates/templateManager.js +29 -29
- package/dist/esm/components/RegexEditor/templates/types.js +74 -74
- package/dist/esm/components/RegexEditor/validation/complexity.js +40 -40
- package/dist/esm/components/RegexEditor/validation/parser.js +47 -47
- package/dist/esm/components/RegexEditor/validation/validator.js +54 -54
- package/dist/esm/components/RegexEditor/visualizer/FlagsSelector.js +19 -19
- package/dist/esm/components/RegexEditor/visualizer/MatchItem.js +20 -20
- package/dist/esm/components/RegexEditor/visualizer/RegexRailroadDiagram.js +15 -15
- package/dist/esm/components/RegexEditor/visualizer/RegexTester.js +17 -17
- package/dist/esm/components/RegexEditor/visualizer/astToRailroad.js +11 -11
- package/dist/esm/components/RegexEditor/visualizer/index.js +5 -5
- package/dist/esm/components/RegexEditor/visualizer/utils.js +92 -92
- package/dist/esm/dashboard/dashboard/components/toolbar/style/index.less +49 -49
- package/dist/esm/dashboard/dashboard/index.less +173 -173
- package/dist/esm/dashboard/dashboard/utils.js +4 -4
- package/dist/esm/dashboard/utils.js +8 -8
- package/dist/esm/dashboard/widget/index.less +7 -7
- package/dist/esm/dashboard/widget/selector/index.less +172 -172
- package/dist/esm/deleteConfirm/index.js +17 -17
- package/dist/esm/draggableModal/index.js +4 -4
- package/dist/esm/draggableModal/style.less +122 -122
- package/dist/esm/editable/index.js +19 -2
- package/dist/esm/formDesigner/FormDesigner.js +3 -2
- package/dist/esm/formDesigner/arrayTable/styles.less +2 -2
- package/dist/esm/formDesigner/index.less +2 -2
- package/dist/esm/formDesigner/preWidgets/index.d.ts +1 -10
- package/dist/esm/formDesigner/preWidgets/index.js +1 -10
- package/dist/esm/formDesigner/preWidgets/preDefineProperty.d.ts +11 -0
- package/dist/esm/formDesigner/preWidgets/{preDefineProperty1/preview.js → preDefineProperty.js} +49 -30
- package/dist/esm/fullScreenAlert/index.js +13 -13
- package/dist/esm/fullScreenAlert/index.less +133 -133
- package/dist/esm/generatedListPage/ConfigurableToolbar.js +2 -2
- package/dist/esm/generatedListPage/GeneratedListPage.js +20 -20
- package/dist/esm/generatedListPage/OptionsColumn.js +3 -3
- package/dist/esm/generatedListPage/PerformanceMonitor.js +9 -9
- package/dist/esm/generatedListPage/RequestManager.js +39 -39
- package/dist/esm/generatedListPage/_utils/AccessWrapper.js +6 -6
- package/dist/esm/generatedListPage/_utils/defaultHandlers.js +14 -14
- package/dist/esm/generatedListPage/index.js +9 -9
- package/dist/esm/generatedListPage/usePermissionCheck.js +27 -27
- package/dist/esm/generatedListPage/useRequestManager.js +20 -20
- package/dist/esm/importModal/index.js +4 -4
- package/dist/esm/standardFormDialog/FormValidation.js +45 -45
- package/dist/esm/standardFormDialog/PortalManager.js +46 -46
- package/dist/esm/standardFormDialog/StandardFormDialog.js +20 -20
- package/dist/esm/standardFormDialog/useStandardFormSchema.js +24 -24
- package/dist/esm/standardFormDialog/withStandardForm.d.ts +2 -2
- package/dist/esm/toolBar/index.less +25 -25
- package/dist/esm/types/railroad-diagrams.d.ts +59 -59
- package/dist/esm/types/regexp-tree.d.ts +175 -175
- package/dist/umd/qc-ui.min.js +1 -1
- package/package.json +90 -90
- package/dist/cjs/ag-grid-plus/shared/hooks/useSchemeManager.d.ts +0 -66
- package/dist/cjs/ag-grid-plus/shared/hooks/useSchemeManager.js +0 -648
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty1/index.d.ts +0 -1
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty1/index.js +0 -16
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty1/preview.d.ts +0 -5
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty1/preview.js +0 -51
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty10/index.d.ts +0 -1
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty10/index.js +0 -16
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty10/preview.d.ts +0 -5
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty10/preview.js +0 -50
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty2/index.d.ts +0 -1
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty2/index.js +0 -16
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty2/preview.d.ts +0 -5
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty2/preview.js +0 -50
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty3/index.d.ts +0 -1
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty3/index.js +0 -16
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty3/preview.d.ts +0 -5
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty3/preview.js +0 -50
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty4/index.d.ts +0 -1
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty4/index.js +0 -16
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty4/preview.d.ts +0 -5
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty4/preview.js +0 -50
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty5/index.d.ts +0 -1
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty5/index.js +0 -16
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty5/preview.d.ts +0 -5
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty5/preview.js +0 -50
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty6/index.d.ts +0 -1
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty6/index.js +0 -16
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty6/preview.d.ts +0 -5
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty6/preview.js +0 -50
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty7/index.d.ts +0 -1
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty7/index.js +0 -16
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty7/preview.d.ts +0 -5
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty7/preview.js +0 -50
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty8/index.d.ts +0 -1
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty8/index.js +0 -16
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty8/preview.d.ts +0 -5
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty8/preview.js +0 -50
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty9/index.d.ts +0 -1
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty9/index.js +0 -16
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty9/preview.d.ts +0 -5
- package/dist/cjs/formDesigner/preWidgets/preDefineProperty9/preview.js +0 -50
- package/dist/esm/ag-grid-plus/shared/hooks/useSchemeManager.d.ts +0 -66
- package/dist/esm/ag-grid-plus/shared/hooks/useSchemeManager.js +0 -643
- package/dist/esm/formDesigner/preWidgets/preDefineProperty1/index.d.ts +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty1/index.js +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty1/preview.d.ts +0 -5
- package/dist/esm/formDesigner/preWidgets/preDefineProperty10/index.d.ts +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty10/index.js +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty10/preview.d.ts +0 -5
- package/dist/esm/formDesigner/preWidgets/preDefineProperty10/preview.js +0 -43
- package/dist/esm/formDesigner/preWidgets/preDefineProperty2/index.d.ts +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty2/index.js +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty2/preview.d.ts +0 -5
- package/dist/esm/formDesigner/preWidgets/preDefineProperty2/preview.js +0 -43
- package/dist/esm/formDesigner/preWidgets/preDefineProperty3/index.d.ts +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty3/index.js +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty3/preview.d.ts +0 -5
- package/dist/esm/formDesigner/preWidgets/preDefineProperty3/preview.js +0 -43
- package/dist/esm/formDesigner/preWidgets/preDefineProperty4/index.d.ts +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty4/index.js +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty4/preview.d.ts +0 -5
- package/dist/esm/formDesigner/preWidgets/preDefineProperty4/preview.js +0 -43
- package/dist/esm/formDesigner/preWidgets/preDefineProperty5/index.d.ts +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty5/index.js +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty5/preview.d.ts +0 -5
- package/dist/esm/formDesigner/preWidgets/preDefineProperty5/preview.js +0 -43
- package/dist/esm/formDesigner/preWidgets/preDefineProperty6/index.d.ts +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty6/index.js +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty6/preview.d.ts +0 -5
- package/dist/esm/formDesigner/preWidgets/preDefineProperty6/preview.js +0 -43
- package/dist/esm/formDesigner/preWidgets/preDefineProperty7/index.d.ts +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty7/index.js +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty7/preview.d.ts +0 -5
- package/dist/esm/formDesigner/preWidgets/preDefineProperty7/preview.js +0 -43
- package/dist/esm/formDesigner/preWidgets/preDefineProperty8/index.d.ts +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty8/index.js +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty8/preview.d.ts +0 -5
- package/dist/esm/formDesigner/preWidgets/preDefineProperty8/preview.js +0 -43
- package/dist/esm/formDesigner/preWidgets/preDefineProperty9/index.d.ts +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty9/index.js +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty9/preview.d.ts +0 -5
- package/dist/esm/formDesigner/preWidgets/preDefineProperty9/preview.js +0 -43
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
3
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
4
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
5
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
5
6
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
6
7
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
7
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
8
8
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
9
9
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
10
10
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
11
11
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
12
12
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
13
13
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
14
|
-
import React, { Fragment, useEffect, useRef, useState, useMemo } from "react";
|
|
14
|
+
import React, { Fragment, useEffect, useRef, useState, useCallback, useMemo } from "react";
|
|
15
15
|
import { AgGridReact } from "ag-grid-react";
|
|
16
16
|
import { useField, observer, RecursionField } from "@formily/react";
|
|
17
17
|
import { useFieldSchema } from "@formily/react";
|
|
18
18
|
import { connect, mapProps, mapReadPretty } from "@formily/react";
|
|
19
19
|
import uniqueId from "lodash/uniqueId";
|
|
20
|
-
import { useAddition,
|
|
20
|
+
import { useAddition, buildArrayTableColumns, useArrayTableSources, useArrayTableActions, isColumnComponent } from "./utils";
|
|
21
21
|
import { useCellFocus, useKeyboardNavigation, useRowDrag } from "./hooks";
|
|
22
22
|
import ArrayBase from "./arrayBase";
|
|
23
23
|
import ArrayAddBtn from "./arrayAddBtn";
|
|
@@ -30,8 +30,20 @@ import { flatConfigToColumnState, flatConfigToGridState } from "../ag-grid-plus/
|
|
|
30
30
|
import { agGridTheme } from "../ag-grid-plus/theme";
|
|
31
31
|
import { useGridSchemes } from "../ag-grid-plus";
|
|
32
32
|
|
|
33
|
+
// array-table 派生主题:去掉单元格聚焦/选区视觉(行内编辑更干净)。
|
|
34
|
+
// focusShadow -> 聚焦光环
|
|
35
|
+
// rangeSelectionBorder -> 单格点击形成的 1×1 选区蓝边
|
|
36
|
+
// rangeSelectionBackground -> 选区淡蓝填充
|
|
37
|
+
// 仅去视觉,不动焦点功能——键盘导航/点击进编辑仍依赖 cell focus。共用主题不受影响。@author nokecy
|
|
38
|
+
var arrayTableTheme = agGridTheme.withParams({
|
|
39
|
+
focusShadow: 'none',
|
|
40
|
+
rangeSelectionBorderColor: 'transparent',
|
|
41
|
+
rangeSelectionBackgroundColor: 'transparent'
|
|
42
|
+
});
|
|
43
|
+
|
|
33
44
|
//@ts-ignore
|
|
34
45
|
var ArrayTableInner = observer(function (props) {
|
|
46
|
+
var _addition$props;
|
|
35
47
|
var height = props.height,
|
|
36
48
|
gridKey = props.gridKey;
|
|
37
49
|
|
|
@@ -45,6 +57,10 @@ var ArrayTableInner = observer(function (props) {
|
|
|
45
57
|
isAdd = _useState2[0],
|
|
46
58
|
setIsAdd = _useState2[1];
|
|
47
59
|
var apiRef = useRef();
|
|
60
|
+
// 懒挂载激活态:存放已激活(点击/导航进过)的单元格 key(`rowId:colId`),供 LazyAgField 经 context 读取。@author nokecy
|
|
61
|
+
var activeCellsRef = useRef(new Set());
|
|
62
|
+
// 无 _id/id 的外部数据按对象引用分配稳定 rowId(避免 getRowId 返回 undefined)。@author nokecy
|
|
63
|
+
var rowIdMapRef = useRef(new WeakMap());
|
|
48
64
|
var ref = useRef();
|
|
49
65
|
var field = useField();
|
|
50
66
|
var _useState3 = useState(undefined),
|
|
@@ -62,10 +78,14 @@ var ArrayTableInner = observer(function (props) {
|
|
|
62
78
|
// 通过 JSON.stringify 比较内容,只有内容真正变化时才返回新引用
|
|
63
79
|
var sourcesKey = useMemo(function () {
|
|
64
80
|
return JSON.stringify(rawSources.map(function (s) {
|
|
81
|
+
var _s$columnProps$header, _s$columnProps, _s$columnProps2;
|
|
65
82
|
return {
|
|
66
83
|
name: s.name,
|
|
67
|
-
display: s.display
|
|
68
|
-
//
|
|
84
|
+
display: s.display,
|
|
85
|
+
// 列标题可由 reactions 运行时改写,纳入 key 才能让 stableColumnDefs 跟着重建。
|
|
86
|
+
// 宽度/隐藏/固定由 applyColumnState(方案)管,故意不纳入,避免行编辑时列状态被重置。
|
|
87
|
+
// 可编辑性:带 x-reactions 的列在 buildArrayTableColumns 里已强制走 AgField 全树(尊重运行时 pattern),无需进 key。@author nokecy
|
|
88
|
+
headerName: (_s$columnProps$header = (_s$columnProps = s.columnProps) === null || _s$columnProps === void 0 ? void 0 : _s$columnProps.headerName) !== null && _s$columnProps$header !== void 0 ? _s$columnProps$header : (_s$columnProps2 = s.columnProps) === null || _s$columnProps2 === void 0 ? void 0 : _s$columnProps2.title
|
|
69
89
|
};
|
|
70
90
|
}));
|
|
71
91
|
}, [rawSources]);
|
|
@@ -83,8 +103,6 @@ var ArrayTableInner = observer(function (props) {
|
|
|
83
103
|
// 使用自定义 hooks
|
|
84
104
|
var _useCellFocus = useCellFocus(),
|
|
85
105
|
focusInputInCell = _useCellFocus.focusInputInCell;
|
|
86
|
-
var _useKeyboardNavigatio = useKeyboardNavigation(ref, dataSource, focusInputInCell),
|
|
87
|
-
handleCellKeyDown = _useKeyboardNavigatio.handleCellKeyDown;
|
|
88
106
|
var _useRowDrag = useRowDrag(field),
|
|
89
107
|
handleRowDragMove = _useRowDrag.handleRowDragMove;
|
|
90
108
|
|
|
@@ -112,14 +130,14 @@ var ArrayTableInner = observer(function (props) {
|
|
|
112
130
|
updatedAt: undefined
|
|
113
131
|
});
|
|
114
132
|
|
|
115
|
-
/**
|
|
116
|
-
* 【关键优化】使用 useMemo 稳定 columnDefs 引用
|
|
117
|
-
* 只在基础列定义(sources)变化时更新,避免数据变化导致列重置
|
|
118
|
-
* 列的状态(宽度、顺序、隐藏等)由方案通过 applyColumnState 控制,不需要通过 columnDefs 传递
|
|
133
|
+
/**
|
|
134
|
+
* 【关键优化】使用 useMemo 稳定 columnDefs 引用
|
|
135
|
+
* 只在基础列定义(sources)变化时更新,避免数据变化导致列重置
|
|
136
|
+
* 列的状态(宽度、顺序、隐藏等)由方案通过 applyColumnState 控制,不需要通过 columnDefs 传递
|
|
119
137
|
*/
|
|
120
138
|
var stableColumnDefs = useMemo(function () {
|
|
121
139
|
// 只依赖 sources,不依赖 dataSource 和 field.value
|
|
122
|
-
var cols =
|
|
140
|
+
var cols = buildArrayTableColumns([], field, sources);
|
|
123
141
|
//@ts-ignore
|
|
124
142
|
if (cols.length > 0 && props.onRowDrag) {
|
|
125
143
|
//@ts-ignore
|
|
@@ -128,13 +146,54 @@ var ArrayTableInner = observer(function (props) {
|
|
|
128
146
|
return cols;
|
|
129
147
|
}, [sources, props.onRowDrag]); // 移除 field 依赖,避免数据变化时重新计算
|
|
130
148
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
149
|
+
// 懒挂载:把激活态 Set 通过 AG-Grid context 暴露给 LazyAgField(引用稳定,原地 mutate)。@author nokecy
|
|
150
|
+
var gridContext = useMemo(function () {
|
|
151
|
+
return {
|
|
152
|
+
activeCells: activeCellsRef.current
|
|
153
|
+
};
|
|
154
|
+
}, []);
|
|
155
|
+
|
|
156
|
+
// 走懒挂载渲染器的列 id 集合(供点击/键盘导航判断是否需要激活)。@author nokecy
|
|
157
|
+
var lazyColIds = useMemo(function () {
|
|
158
|
+
return new Set(stableColumnDefs.filter(function (c) {
|
|
159
|
+
var _c$cellRendererParams;
|
|
160
|
+
return c === null || c === void 0 || (_c$cellRendererParams = c.cellRendererParams) === null || _c$cellRendererParams === void 0 ? void 0 : _c$cellRendererParams.lazyEditable;
|
|
161
|
+
}).map(function (c) {
|
|
162
|
+
return c.field;
|
|
163
|
+
}));
|
|
164
|
+
}, [stableColumnDefs]);
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* 激活某个懒挂载单元格:加入激活集合并强制重渲该格 -> LazyAgField 改挂 AgField 全树。
|
|
168
|
+
* 返回 true 表示「本次新激活」(调用方需等挂载完成再聚焦);false 表示无需激活(非懒列/新增行/已激活)。@author nokecy
|
|
169
|
+
*/
|
|
170
|
+
var activateCell = useCallback(function (api, node, colId) {
|
|
171
|
+
var _node$data;
|
|
172
|
+
if (!api || !node || !colId) return false;
|
|
173
|
+
if (!lazyColIds.has(colId)) return false; // 非懒列(已是 AgField/纯文本)
|
|
174
|
+
if ((_node$data = node.data) !== null && _node$data !== void 0 && _node$data._isNew) return false; // 新增行本就 eager 挂着
|
|
175
|
+
var key = "".concat(node.id, ":").concat(colId);
|
|
176
|
+
if (activeCellsRef.current.has(key)) return false; // 已激活
|
|
177
|
+
activeCellsRef.current.add(key);
|
|
178
|
+
api.refreshCells({
|
|
179
|
+
rowNodes: [node],
|
|
180
|
+
columns: [colId],
|
|
181
|
+
force: true
|
|
182
|
+
});
|
|
183
|
+
return true;
|
|
184
|
+
}, [lazyColIds]);
|
|
185
|
+
|
|
186
|
+
// 键盘导航 hook 需要 activateCell(导航进懒列时先挂载再聚焦),故置于其后。@author nokecy
|
|
187
|
+
var _useKeyboardNavigatio = useKeyboardNavigation(ref, dataSource, focusInputInCell, activateCell),
|
|
188
|
+
handleCellKeyDown = _useKeyboardNavigatio.handleCellKeyDown;
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* 方案自动加载
|
|
192
|
+
*
|
|
193
|
+
* 参考 ag-gridPlus 优化方案:
|
|
194
|
+
* 1. 使用 Promise 链确保顺序执行,避免竞态条件
|
|
195
|
+
* 2. 使用双重 RAF 确保渲染完成
|
|
196
|
+
* 3. 完整的错误处理和清理机制
|
|
138
197
|
*/
|
|
139
198
|
useEffect(function () {
|
|
140
199
|
// 检查必要条件
|
|
@@ -148,7 +207,7 @@ var ArrayTableInner = observer(function (props) {
|
|
|
148
207
|
if (isSameScheme && isSameVersion) {
|
|
149
208
|
return;
|
|
150
209
|
}
|
|
151
|
-
|
|
210
|
+
|
|
152
211
|
// 使用 Promise 链确保顺序执行,避免竞态条件
|
|
153
212
|
var cancelled = false;
|
|
154
213
|
Promise.resolve().then(function () {
|
|
@@ -161,12 +220,13 @@ var ArrayTableInner = observer(function (props) {
|
|
|
161
220
|
|
|
162
221
|
// 如果包含分组,先更新 columnDefs
|
|
163
222
|
if (hasGroups) {
|
|
164
|
-
|
|
223
|
+
// 传入 stableColumnDefs 作为原始定义,保留 cellRenderer(AgField/LazyAgField)及其
|
|
224
|
+
// cellRendererParams——否则分组方案重建出的是裸列,单元格退化为纯文本、编辑失效。@author nokecy
|
|
225
|
+
var gridColumnDefs = flatConfigToGridState(currentScheme.columnConfig, stableColumnDefs);
|
|
165
226
|
gridApiState.setGridOption('columnDefs', gridColumnDefs);
|
|
166
227
|
}
|
|
167
228
|
|
|
168
229
|
// 2. 应用列状态(列顺序、宽度、隐藏、固定等)
|
|
169
|
-
|
|
170
230
|
var columnState = flatConfigToColumnState(currentScheme.columnConfig);
|
|
171
231
|
gridApiState.applyColumnState({
|
|
172
232
|
state: columnState,
|
|
@@ -236,17 +296,20 @@ var ArrayTableInner = observer(function (props) {
|
|
|
236
296
|
marginBottom: 5
|
|
237
297
|
}
|
|
238
298
|
}, addition ? /*#__PURE__*/React.createElement(ArrayAddBtn, _extends({
|
|
239
|
-
arrayField: field,
|
|
240
|
-
schema: schema,
|
|
241
|
-
defaultValue: {
|
|
242
|
-
_id: uniqueId(),
|
|
243
|
-
_isNew: true
|
|
244
|
-
},
|
|
245
299
|
title: "新增",
|
|
246
300
|
onAdd: function onAdd() {
|
|
247
301
|
setIsAdd(true);
|
|
248
302
|
}
|
|
249
|
-
}, addition.props
|
|
303
|
+
}, addition.props, {
|
|
304
|
+
// 框架关键属性钉在 spread 之后:不可被 addition.props 覆盖;
|
|
305
|
+
// defaultValue 合并自定义字段但始终携带 _id/_isNew 标记。@author nokecy
|
|
306
|
+
arrayField: field,
|
|
307
|
+
schema: schema,
|
|
308
|
+
defaultValue: _objectSpread({
|
|
309
|
+
_id: uniqueId(),
|
|
310
|
+
_isNew: true
|
|
311
|
+
}, ((_addition$props = addition.props) === null || _addition$props === void 0 ? void 0 : _addition$props.defaultValue) || {})
|
|
312
|
+
})) : null, actions.map(function (column, key) {
|
|
250
313
|
return /*#__PURE__*/React.createElement(RecursionField, {
|
|
251
314
|
schema: column.schema,
|
|
252
315
|
name: key,
|
|
@@ -264,7 +327,8 @@ var ArrayTableInner = observer(function (props) {
|
|
|
264
327
|
minHeight: 0
|
|
265
328
|
}
|
|
266
329
|
}, /*#__PURE__*/React.createElement(AgGridReact, {
|
|
267
|
-
theme:
|
|
330
|
+
theme: arrayTableTheme,
|
|
331
|
+
context: gridContext,
|
|
268
332
|
onGridReady: function onGridReady(params) {
|
|
269
333
|
params.api.hidePopupMenu();
|
|
270
334
|
apiRef.current = params.api;
|
|
@@ -284,15 +348,20 @@ var ArrayTableInner = observer(function (props) {
|
|
|
284
348
|
},
|
|
285
349
|
onCellKeyDown: handleCellKeyDown,
|
|
286
350
|
onCellClicked: function onCellClicked(event) {
|
|
287
|
-
var _event$
|
|
288
|
-
//
|
|
289
|
-
var
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
351
|
+
var _event$colDef;
|
|
352
|
+
// 懒挂载:点击懒列存量格时先激活挂树,等挂载完成再聚焦进编辑;否则沿用原即时聚焦。@author nokecy
|
|
353
|
+
var node = event.node;
|
|
354
|
+
var colId = (_event$colDef = event.colDef) === null || _event$colDef === void 0 ? void 0 : _event$colDef.field;
|
|
355
|
+
var justActivated = activateCell(event.api, node, colId);
|
|
356
|
+
var rowIndex = node === null || node === void 0 ? void 0 : node.rowIndex;
|
|
357
|
+
var focus = function focus() {
|
|
358
|
+
var _ref$current, _event$event;
|
|
359
|
+
// 行虚拟化下 DOM 顺序与 rowIndex 不一致,按 row-index + col-id 属性精确定位刚渲染的格 @author nokecy
|
|
360
|
+
var gridCell = justActivated && rowIndex != null ? (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.querySelector(".ag-row[row-index=\"".concat(rowIndex, "\"] .ag-cell[col-id=\"").concat(colId, "\"]")) : (_event$event = event.event) === null || _event$event === void 0 || (_event$event = _event$event.target) === null || _event$event === void 0 ? void 0 : _event$event.closest('.ag-cell');
|
|
361
|
+
if (gridCell) focusInputInCell(gridCell);
|
|
362
|
+
};
|
|
363
|
+
// 新激活需等 AgField(RecursionField/Editable) 挂载完成,给足时间;否则原 10ms。@author nokecy
|
|
364
|
+
setTimeout(focus, justActivated ? 80 : 10);
|
|
296
365
|
},
|
|
297
366
|
onRowDragMove: handleRowDragMove,
|
|
298
367
|
onRowDataUpdated: function onRowDataUpdated(e) {
|
|
@@ -319,8 +388,18 @@ var ArrayTableInner = observer(function (props) {
|
|
|
319
388
|
}
|
|
320
389
|
},
|
|
321
390
|
getRowId: function getRowId(_ref) {
|
|
391
|
+
var _data$_id;
|
|
322
392
|
var data = _ref.data;
|
|
323
|
-
|
|
393
|
+
var id = (_data$_id = data === null || data === void 0 ? void 0 : data._id) !== null && _data$_id !== void 0 ? _data$_id : data === null || data === void 0 ? void 0 : data.id;
|
|
394
|
+
if (id != null) return String(id);
|
|
395
|
+
// 既无 _id 也无 id 的外部数据:按对象引用从 WeakMap 取/分配稳定 id。
|
|
396
|
+
// 不能用 uniqueId 直返(每次调用都变会让 AG-Grid 行身份错乱),也不能改写 data(触发 Formily 反应)。@author nokecy
|
|
397
|
+
var gen = rowIdMapRef.current.get(data);
|
|
398
|
+
if (!gen) {
|
|
399
|
+
gen = uniqueId('row_');
|
|
400
|
+
rowIdMapRef.current.set(data, gen);
|
|
401
|
+
}
|
|
402
|
+
return gen;
|
|
324
403
|
}
|
|
325
404
|
// rowDragEntireRow={true}
|
|
326
405
|
// onRowDragEnd={(event) => {
|
|
@@ -352,34 +431,34 @@ var ArrayTableInner = observer(function (props) {
|
|
|
352
431
|
});
|
|
353
432
|
ArrayTableInner.displayName = "ArrayTableInner";
|
|
354
433
|
|
|
355
|
-
/**
|
|
356
|
-
* ArrayTable 组件
|
|
357
|
-
*
|
|
358
|
-
* 注意:需要在外部使用 GridPlusContext.Provider 包裹以提供方案管理功能
|
|
359
|
-
*
|
|
360
|
-
* @example
|
|
361
|
-
* ```tsx
|
|
362
|
-
* const adapter = useMemo(() => new LocalStorageSchemeAdapter({
|
|
363
|
-
* storageKey: `array-table-schemes-${gridKey}`
|
|
364
|
-
* }), [gridKey]);
|
|
365
|
-
*
|
|
366
|
-
* const schemeManager = useSchemeManager({ adapter, autoLoad: true });
|
|
367
|
-
*
|
|
368
|
-
* const contextValue = useMemo(() => ({
|
|
369
|
-
* extensibleColumns: [],
|
|
370
|
-
* columnState: undefined,
|
|
371
|
-
* onSaveColumnState: () => {},
|
|
372
|
-
* applyToGlobal: () => {},
|
|
373
|
-
* resetCurrent: () => {},
|
|
374
|
-
* resetAll: () => {},
|
|
375
|
-
* queryFormItems: [],
|
|
376
|
-
* ...schemeManager
|
|
377
|
-
* }), [schemeManager]);
|
|
378
|
-
*
|
|
379
|
-
* <GridPlusContext.Provider value={contextValue}>
|
|
380
|
-
* <ArrayTable gridKey="my-table" height={400} />
|
|
381
|
-
* </GridPlusContext.Provider>
|
|
382
|
-
* ```
|
|
434
|
+
/**
|
|
435
|
+
* ArrayTable 组件
|
|
436
|
+
*
|
|
437
|
+
* 注意:需要在外部使用 GridPlusContext.Provider 包裹以提供方案管理功能
|
|
438
|
+
*
|
|
439
|
+
* @example
|
|
440
|
+
* ```tsx
|
|
441
|
+
* const adapter = useMemo(() => new LocalStorageSchemeAdapter({
|
|
442
|
+
* storageKey: `array-table-schemes-${gridKey}`
|
|
443
|
+
* }), [gridKey]);
|
|
444
|
+
*
|
|
445
|
+
* const schemeManager = useSchemeManager({ adapter, autoLoad: true });
|
|
446
|
+
*
|
|
447
|
+
* const contextValue = useMemo(() => ({
|
|
448
|
+
* extensibleColumns: [],
|
|
449
|
+
* columnState: undefined,
|
|
450
|
+
* onSaveColumnState: () => {},
|
|
451
|
+
* applyToGlobal: () => {},
|
|
452
|
+
* resetCurrent: () => {},
|
|
453
|
+
* resetAll: () => {},
|
|
454
|
+
* queryFormItems: [],
|
|
455
|
+
* ...schemeManager
|
|
456
|
+
* }), [schemeManager]);
|
|
457
|
+
*
|
|
458
|
+
* <GridPlusContext.Provider value={contextValue}>
|
|
459
|
+
* <ArrayTable gridKey="my-table" height={400} />
|
|
460
|
+
* </GridPlusContext.Provider>
|
|
461
|
+
* ```
|
|
383
462
|
*/
|
|
384
463
|
//@ts-ignore
|
|
385
464
|
var ArrayTable = ArrayTableInner;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { useField } from "@formily/react";
|
|
3
|
-
import {
|
|
3
|
+
import { buildArrayTableColumns, useArrayTableSources } from "./utils";
|
|
4
4
|
import { AgGridPlus } from "../ag-grid-plus";
|
|
5
5
|
//@ts-ignore
|
|
6
6
|
var ArrayTable = function ArrayTable(props) {
|
|
@@ -8,7 +8,7 @@ var ArrayTable = function ArrayTable(props) {
|
|
|
8
8
|
var field = useField();
|
|
9
9
|
var dataSource = Array.isArray(field.value) ? field.value.slice() : [];
|
|
10
10
|
var sources = useArrayTableSources();
|
|
11
|
-
var columns =
|
|
11
|
+
var columns = buildArrayTableColumns(dataSource, field, sources);
|
|
12
12
|
return /*#__PURE__*/React.createElement("div", {
|
|
13
13
|
style: {
|
|
14
14
|
height: height ? height : 400
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 只读列「纯文本快路径」格式化器注册表
|
|
3
|
+
*
|
|
4
|
+
* 背景:ArrayTable 每个可见单元格默认挂一棵完整 Formily 字段树(AgField),
|
|
5
|
+
* 行虚拟化滚动时整行销毁重建,列多必然掉帧。只读列没有编辑/校验/写回,
|
|
6
|
+
* 完全可以不挂 Formily 树、改用 AG-Grid 的 valueFormatter 出纯文本。
|
|
7
|
+
*
|
|
8
|
+
* 本注册表负责「内层组件类型 -> 显示文本」的映射。命中返回格式化器,
|
|
9
|
+
* 未命中返回 null —— 调用方据此安全回退 AgField(正确优先于速度)。
|
|
10
|
+
*
|
|
11
|
+
* 取舍:这是 Formily readPretty 之外的一份精简显示逻辑,可能与定制 readPretty
|
|
12
|
+
* 发散。靠「未命中即回退 + 消费方可 registerReadOnlyFormatter 扩展」控制风险。
|
|
13
|
+
*
|
|
14
|
+
* @author nokecy
|
|
15
|
+
*/
|
|
16
|
+
export type ReadOnlyFormatterCtx = {
|
|
17
|
+
/** 列的 x-component-props(headerName/width/options/format 等) */
|
|
18
|
+
columnProps: any;
|
|
19
|
+
/** 内层数据字段的 schema(可读 enum / x-component-props) */
|
|
20
|
+
fieldSchema: any;
|
|
21
|
+
};
|
|
22
|
+
export type ReadOnlyFormatter = (value: any, ctx: ReadOnlyFormatterCtx) => string;
|
|
23
|
+
/** 消费方扩展自定义只读列的显示逻辑 */
|
|
24
|
+
export declare const registerReadOnlyFormatter: (component: string, formatter: ReadOnlyFormatter) => void;
|
|
25
|
+
/**
|
|
26
|
+
* 取某组件类型的只读格式化器。命中返回函数,未命中返回 null(调用方回退 AgField)。
|
|
27
|
+
*/
|
|
28
|
+
export declare const getReadOnlyFormatter: (component: string | undefined) => ReadOnlyFormatter | null;
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
/**
|
|
3
|
+
* 只读列「纯文本快路径」格式化器注册表
|
|
4
|
+
*
|
|
5
|
+
* 背景:ArrayTable 每个可见单元格默认挂一棵完整 Formily 字段树(AgField),
|
|
6
|
+
* 行虚拟化滚动时整行销毁重建,列多必然掉帧。只读列没有编辑/校验/写回,
|
|
7
|
+
* 完全可以不挂 Formily 树、改用 AG-Grid 的 valueFormatter 出纯文本。
|
|
8
|
+
*
|
|
9
|
+
* 本注册表负责「内层组件类型 -> 显示文本」的映射。命中返回格式化器,
|
|
10
|
+
* 未命中返回 null —— 调用方据此安全回退 AgField(正确优先于速度)。
|
|
11
|
+
*
|
|
12
|
+
* 取舍:这是 Formily readPretty 之外的一份精简显示逻辑,可能与定制 readPretty
|
|
13
|
+
* 发散。靠「未命中即回退 + 消费方可 registerReadOnlyFormatter 扩展」控制风险。
|
|
14
|
+
*
|
|
15
|
+
* @author nokecy
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/** 从字段 schema / 列 props 里尽量取到 Select 的可选项(value->label 映射用) */
|
|
19
|
+
var resolveOptions = function resolveOptions(ctx) {
|
|
20
|
+
var _ref, _ref2, _ref3, _fieldSchema$enum, _fieldSchema$xCompon, _fieldSchema$xCompon2;
|
|
21
|
+
var columnProps = ctx.columnProps,
|
|
22
|
+
fieldSchema = ctx.fieldSchema;
|
|
23
|
+
var candidate = (_ref = (_ref2 = (_ref3 = (_fieldSchema$enum = fieldSchema === null || fieldSchema === void 0 ? void 0 : fieldSchema.enum) !== null && _fieldSchema$enum !== void 0 ? _fieldSchema$enum : fieldSchema === null || fieldSchema === void 0 || (_fieldSchema$xCompon = fieldSchema['x-component-props']) === null || _fieldSchema$xCompon === void 0 ? void 0 : _fieldSchema$xCompon.options) !== null && _ref3 !== void 0 ? _ref3 : fieldSchema === null || fieldSchema === void 0 || (_fieldSchema$xCompon2 = fieldSchema['x-component-props']) === null || _fieldSchema$xCompon2 === void 0 ? void 0 : _fieldSchema$xCompon2.dataSource) !== null && _ref2 !== void 0 ? _ref2 : columnProps === null || columnProps === void 0 ? void 0 : columnProps.options) !== null && _ref !== void 0 ? _ref : columnProps === null || columnProps === void 0 ? void 0 : columnProps.dataSource;
|
|
24
|
+
return Array.isArray(candidate) ? candidate : [];
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
/** 单个值映射成 label:兼容 labelInValue 对象、{label,value} 选项、原始值 */
|
|
28
|
+
var mapOptionLabel = function mapOptionLabel(value, options) {
|
|
29
|
+
var _ref4, _value$label, _ref5, _hit$label;
|
|
30
|
+
if (value == null) return '';
|
|
31
|
+
// labelInValue: 值本身就是 { label, value }
|
|
32
|
+
if (_typeof(value) === 'object') return String((_ref4 = (_value$label = value.label) !== null && _value$label !== void 0 ? _value$label : value.value) !== null && _ref4 !== void 0 ? _ref4 : '');
|
|
33
|
+
// 严格相等优先;退一步按 String 宽松比对,容忍后端类型漂移(如返回 "0" 而 enum 存数字 0)
|
|
34
|
+
var hit = options.find(function (o) {
|
|
35
|
+
var ov = o && _typeof(o) === 'object' ? o.value : o;
|
|
36
|
+
return ov === value || String(ov) === String(value);
|
|
37
|
+
});
|
|
38
|
+
if (hit && _typeof(hit) === 'object') return String((_ref5 = (_hit$label = hit.label) !== null && _hit$label !== void 0 ? _hit$label : hit.value) !== null && _ref5 !== void 0 ? _ref5 : value);
|
|
39
|
+
return String(value);
|
|
40
|
+
};
|
|
41
|
+
var textFormatter = function textFormatter(value) {
|
|
42
|
+
return value == null ? '' : String(value);
|
|
43
|
+
};
|
|
44
|
+
var selectFormatter = function selectFormatter(value, ctx) {
|
|
45
|
+
if (value == null) return '';
|
|
46
|
+
var options = resolveOptions(ctx);
|
|
47
|
+
// 多选:数组 -> 逗号拼接
|
|
48
|
+
if (Array.isArray(value)) {
|
|
49
|
+
return value.map(function (v) {
|
|
50
|
+
return mapOptionLabel(v, options);
|
|
51
|
+
}).filter(Boolean).join(', ');
|
|
52
|
+
}
|
|
53
|
+
return mapOptionLabel(value, options);
|
|
54
|
+
};
|
|
55
|
+
var dateFormatter = function dateFormatter(value, ctx) {
|
|
56
|
+
var _ref6, _ctx$columnProps$form, _ctx$columnProps, _ctx$fieldSchema;
|
|
57
|
+
if (value == null || value === '') return '';
|
|
58
|
+
var fmt = (_ref6 = (_ctx$columnProps$form = (_ctx$columnProps = ctx.columnProps) === null || _ctx$columnProps === void 0 ? void 0 : _ctx$columnProps.format) !== null && _ctx$columnProps$form !== void 0 ? _ctx$columnProps$form : (_ctx$fieldSchema = ctx.fieldSchema) === null || _ctx$fieldSchema === void 0 || (_ctx$fieldSchema = _ctx$fieldSchema['x-component-props']) === null || _ctx$fieldSchema === void 0 ? void 0 : _ctx$fieldSchema.format) !== null && _ref6 !== void 0 ? _ref6 : 'YYYY-MM-DD';
|
|
59
|
+
// 值多为 dayjs 对象(有 .format)或已格式化的字符串;不强引 dayjs,保持轻量
|
|
60
|
+
if (value && typeof value.format === 'function') return value.format(fmt);
|
|
61
|
+
return String(value);
|
|
62
|
+
};
|
|
63
|
+
var booleanFormatter = function booleanFormatter(value, ctx) {
|
|
64
|
+
var _ctx$fieldSchema$xCo, _ctx$fieldSchema2, _props$checkedChildre, _props$unCheckedChild;
|
|
65
|
+
if (value == null || value === '') return '';
|
|
66
|
+
var props = (_ctx$fieldSchema$xCo = (_ctx$fieldSchema2 = ctx.fieldSchema) === null || _ctx$fieldSchema2 === void 0 ? void 0 : _ctx$fieldSchema2['x-component-props']) !== null && _ctx$fieldSchema$xCo !== void 0 ? _ctx$fieldSchema$xCo : {};
|
|
67
|
+
var truthy = (_props$checkedChildre = props.checkedChildren) !== null && _props$checkedChildre !== void 0 ? _props$checkedChildre : '是';
|
|
68
|
+
var falsy = (_props$unCheckedChild = props.unCheckedChildren) !== null && _props$unCheckedChild !== void 0 ? _props$unCheckedChild : '否';
|
|
69
|
+
return value ? String(truthy) : String(falsy);
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* 内置注册表。key 为 Formily x-component 名。
|
|
74
|
+
* 未列出的组件类型 -> getReadOnlyFormatter 返回 null -> 回退 AgField。
|
|
75
|
+
*/
|
|
76
|
+
var registry = {
|
|
77
|
+
Input: textFormatter,
|
|
78
|
+
'Input.TextArea': textFormatter,
|
|
79
|
+
Password: textFormatter,
|
|
80
|
+
Text: textFormatter,
|
|
81
|
+
Preview: textFormatter,
|
|
82
|
+
NumberPicker: textFormatter,
|
|
83
|
+
InputNumber: textFormatter,
|
|
84
|
+
Select: selectFormatter,
|
|
85
|
+
TreeSelect: selectFormatter,
|
|
86
|
+
Cascader: selectFormatter,
|
|
87
|
+
'Radio.Group': selectFormatter,
|
|
88
|
+
'Checkbox.Group': selectFormatter,
|
|
89
|
+
DatePicker: dateFormatter,
|
|
90
|
+
TimePicker: dateFormatter,
|
|
91
|
+
Switch: booleanFormatter,
|
|
92
|
+
Checkbox: booleanFormatter
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
/** 消费方扩展自定义只读列的显示逻辑 */
|
|
96
|
+
export var registerReadOnlyFormatter = function registerReadOnlyFormatter(component, formatter) {
|
|
97
|
+
registry[component] = formatter;
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* 取某组件类型的只读格式化器。命中返回函数,未命中返回 null(调用方回退 AgField)。
|
|
102
|
+
*/
|
|
103
|
+
export var getReadOnlyFormatter = function getReadOnlyFormatter(component) {
|
|
104
|
+
var _registry$component;
|
|
105
|
+
if (!component) return null;
|
|
106
|
+
return (_registry$component = registry[component]) !== null && _registry$component !== void 0 ? _registry$component : null;
|
|
107
|
+
};
|
|
@@ -6,6 +6,6 @@ import { ObservableColumnSource } from './interface';
|
|
|
6
6
|
declare const isColumnComponent: (schema: Schema) => boolean;
|
|
7
7
|
declare const useArrayTableSources: () => ObservableColumnSource[];
|
|
8
8
|
declare const useArrayTableActions: () => ObservableColumnSource[];
|
|
9
|
-
declare const
|
|
9
|
+
declare const buildArrayTableColumns: (dataSource: any[], field: ArrayField, sources: ObservableColumnSource[]) => AgGridReactProps['columnDefs'];
|
|
10
10
|
declare const useAddition: () => React.JSX.Element | null;
|
|
11
|
-
export { isColumnComponent, useArrayTableSources, useArrayTableActions,
|
|
11
|
+
export { isColumnComponent, useArrayTableSources, useArrayTableActions, buildArrayTableColumns, useAddition };
|