@talxis/base-controls 1.2603.1 → 1.2604.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/DatasetControl/EditColumns/ColumnSelector/ColumnSelector.js +4 -4
- package/dist/components/DatasetControl/EditColumns/ColumnSelector/ColumnSelector.js.map +1 -1
- package/dist/components/DatasetControl/EditColumns/Selector/Selector.js +2 -2
- package/dist/components/DatasetControl/EditColumns/Selector/Selector.js.map +1 -1
- package/dist/components/DatasetControl/EditColumns/useEditColumns.js +2 -2
- package/dist/components/DatasetControl/EditColumns/useEditColumns.js.map +1 -1
- package/dist/components/DatasetControl/Filtering/DatasetColumnFiltering.js +2 -2
- package/dist/components/DatasetControl/Filtering/DatasetColumnFiltering.js.map +1 -1
- package/dist/components/DatasetControl/Header/Header.js +1 -0
- package/dist/components/DatasetControl/Header/Header.js.map +1 -1
- package/dist/components/DatasetControl/interfaces.d.ts +1 -0
- package/dist/components/DatasetControl/useModel.js +3 -3
- package/dist/components/DatasetControl/useModel.js.map +1 -1
- package/dist/components/Grid/cells/cell/content/CellContent.js +8 -8
- package/dist/components/Grid/cells/cell/content/CellContent.js.map +1 -1
- package/dist/components/Grid/grid/GridModel.js +1 -1
- package/dist/components/Grid/grid/GridModel.js.map +1 -1
- package/dist/components/Grid/grid/ag-grid/AgGridModel.js +5 -8
- package/dist/components/Grid/grid/ag-grid/AgGridModel.js.map +1 -1
- package/dist/components/GridCellRenderer/ValueRenderer/FileRenderer/FileRenderer.js +3 -3
- package/dist/components/GridCellRenderer/ValueRenderer/FileRenderer/FileRenderer.js.map +1 -1
- package/dist/components/GridCellRenderer/properties/Property.js +3 -1
- package/dist/components/GridCellRenderer/properties/Property.js.map +1 -1
- package/dist/components/GridCellRenderer/useModel.js +3 -3
- package/dist/components/GridCellRenderer/useModel.js.map +1 -1
- package/dist/components/MultiSelectOptionSet/MultiSelectOptionSet.js +2 -2
- package/dist/components/MultiSelectOptionSet/MultiSelectOptionSet.js.map +1 -1
- package/dist/components/NestedControlRenderer/NestedControlRenderer.js +2 -2
- package/dist/components/NestedControlRenderer/NestedControlRenderer.js.map +1 -1
- package/dist/components/TaskGrid/TaskGrid.d.ts +12 -0
- package/dist/components/TaskGrid/TaskGrid.js +75 -0
- package/dist/components/TaskGrid/TaskGrid.js.map +1 -0
- package/dist/components/TaskGrid/TaskGridDatasetControl.d.ts +81 -0
- package/dist/components/TaskGrid/TaskGridDatasetControl.js +335 -0
- package/dist/components/TaskGrid/TaskGridDatasetControl.js.map +1 -0
- package/dist/components/TaskGrid/TaskGridDatasetControlFactory.d.ts +21 -0
- package/dist/components/TaskGrid/TaskGridDatasetControlFactory.js +55 -0
- package/dist/components/TaskGrid/TaskGridDatasetControlFactory.js.map +1 -0
- package/dist/components/TaskGrid/components/components.d.ts +8 -0
- package/dist/components/TaskGrid/components/components.js +11 -0
- package/dist/components/TaskGrid/components/components.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/Grid.d.ts +2 -0
- package/dist/components/TaskGrid/components/grid/Grid.js +42 -0
- package/dist/components/TaskGrid/components/grid/Grid.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/cell-headers/tree-expand-collapse-header/TreeExpandCollapseHeader.d.ts +2 -0
- package/dist/components/TaskGrid/components/grid/cell-headers/tree-expand-collapse-header/TreeExpandCollapseHeader.js +34 -0
- package/dist/components/TaskGrid/components/grid/cell-headers/tree-expand-collapse-header/TreeExpandCollapseHeader.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/cell-headers/tree-expand-collapse-header/index.d.ts +1 -0
- package/dist/components/TaskGrid/components/grid/cell-headers/tree-expand-collapse-header/index.js +2 -0
- package/dist/components/TaskGrid/components/grid/cell-headers/tree-expand-collapse-header/index.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/cell-headers/tree-expand-collapse-header/styles.d.ts +17 -0
- package/dist/components/TaskGrid/components/grid/cell-headers/tree-expand-collapse-header/styles.js +24 -0
- package/dist/components/TaskGrid/components/grid/cell-headers/tree-expand-collapse-header/styles.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/cell-renderers/add-task-button/AddTaskButton.d.ts +2 -0
- package/dist/components/TaskGrid/components/grid/cell-renderers/add-task-button/AddTaskButton.js +81 -0
- package/dist/components/TaskGrid/components/grid/cell-renderers/add-task-button/AddTaskButton.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/cell-renderers/add-task-button/index.d.ts +1 -0
- package/dist/components/TaskGrid/components/grid/cell-renderers/add-task-button/index.js +2 -0
- package/dist/components/TaskGrid/components/grid/cell-renderers/add-task-button/index.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/cell-renderers/add-task-button/styles.d.ts +25 -0
- package/dist/components/TaskGrid/components/grid/cell-renderers/add-task-button/styles.js +32 -0
- package/dist/components/TaskGrid/components/grid/cell-renderers/add-task-button/styles.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/PercentComplete.d.ts +2 -0
- package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/PercentComplete.js +22 -0
- package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/PercentComplete.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/index.d.ts +1 -0
- package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/index.js +2 -0
- package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/index.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/styles.d.ts +23 -0
- package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/styles.js +30 -0
- package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/styles.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/grid-customizer/GridCustomizer.d.ts +71 -0
- package/dist/components/TaskGrid/components/grid/grid-customizer/GridCustomizer.js +308 -0
- package/dist/components/TaskGrid/components/grid/grid-customizer/GridCustomizer.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/grid-customizer/index.d.ts +1 -0
- package/dist/components/TaskGrid/components/grid/grid-customizer/index.js +2 -0
- package/dist/components/TaskGrid/components/grid/grid-customizer/index.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/grid-drag-handler/GridDragHandler.d.ts +30 -0
- package/dist/components/TaskGrid/components/grid/grid-drag-handler/GridDragHandler.js +80 -0
- package/dist/components/TaskGrid/components/grid/grid-drag-handler/GridDragHandler.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/grid-drag-handler/index.d.ts +1 -0
- package/dist/components/TaskGrid/components/grid/grid-drag-handler/index.js +2 -0
- package/dist/components/TaskGrid/components/grid/grid-drag-handler/index.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/group-cell/GroupCell.d.ts +7 -0
- package/dist/components/TaskGrid/components/grid/group-cell/GroupCell.js +70 -0
- package/dist/components/TaskGrid/components/grid/group-cell/GroupCell.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/group-cell/index.d.ts +1 -0
- package/dist/components/TaskGrid/components/grid/group-cell/index.js +2 -0
- package/dist/components/TaskGrid/components/grid/group-cell/index.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/group-cell/styles.d.ts +35 -0
- package/dist/components/TaskGrid/components/grid/group-cell/styles.js +41 -0
- package/dist/components/TaskGrid/components/grid/group-cell/styles.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/index.d.ts +3 -0
- package/dist/components/TaskGrid/components/grid/index.js +4 -0
- package/dist/components/TaskGrid/components/grid/index.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/multi-record-selector/MultiRecordSelector.d.ts +17 -0
- package/dist/components/TaskGrid/components/grid/multi-record-selector/MultiRecordSelector.js +92 -0
- package/dist/components/TaskGrid/components/grid/multi-record-selector/MultiRecordSelector.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/multi-record-selector/index.d.ts +2 -0
- package/dist/components/TaskGrid/components/grid/multi-record-selector/index.js +3 -0
- package/dist/components/TaskGrid/components/grid/multi-record-selector/index.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/record-selector/RecordSelector.d.ts +10 -0
- package/dist/components/TaskGrid/components/grid/record-selector/RecordSelector.js +120 -0
- package/dist/components/TaskGrid/components/grid/record-selector/RecordSelector.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/record-selector/index.d.ts +1 -0
- package/dist/components/TaskGrid/components/grid/record-selector/index.js +2 -0
- package/dist/components/TaskGrid/components/grid/record-selector/index.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/record-selector/styles.d.ts +54 -0
- package/dist/components/TaskGrid/components/grid/record-selector/styles.js +60 -0
- package/dist/components/TaskGrid/components/grid/record-selector/styles.js.map +1 -0
- package/dist/components/TaskGrid/components/header/Header.d.ts +8 -0
- package/dist/components/TaskGrid/components/header/Header.js +148 -0
- package/dist/components/TaskGrid/components/header/Header.js.map +1 -0
- package/dist/components/TaskGrid/components/header/command-bar/CommandBar.d.ts +2 -0
- package/dist/components/TaskGrid/components/header/command-bar/CommandBar.js +9 -0
- package/dist/components/TaskGrid/components/header/command-bar/CommandBar.js.map +1 -0
- package/dist/components/TaskGrid/components/header/command-bar/index.d.ts +1 -0
- package/dist/components/TaskGrid/components/header/command-bar/index.js +2 -0
- package/dist/components/TaskGrid/components/header/command-bar/index.js.map +1 -0
- package/dist/components/TaskGrid/components/header/edit-columns/CommandBar/CommandBar.d.ts +2 -0
- package/dist/components/TaskGrid/components/header/edit-columns/CommandBar/CommandBar.js +23 -0
- package/dist/components/TaskGrid/components/header/edit-columns/CommandBar/CommandBar.js.map +1 -0
- package/dist/components/TaskGrid/components/header/edit-columns/EditColumns.d.ts +5 -0
- package/dist/components/TaskGrid/components/header/edit-columns/EditColumns.js +99 -0
- package/dist/components/TaskGrid/components/header/edit-columns/EditColumns.js.map +1 -0
- package/dist/components/TaskGrid/components/header/edit-columns/OptionCommandBar/OptionCommandBar.d.ts +2 -0
- package/dist/components/TaskGrid/components/header/edit-columns/OptionCommandBar/OptionCommandBar.js +51 -0
- package/dist/components/TaskGrid/components/header/edit-columns/OptionCommandBar/OptionCommandBar.js.map +1 -0
- package/dist/components/TaskGrid/components/header/edit-columns/OptionCommandBar/styles.d.ts +11 -0
- package/dist/components/TaskGrid/components/header/edit-columns/OptionCommandBar/styles.js +18 -0
- package/dist/components/TaskGrid/components/header/edit-columns/OptionCommandBar/styles.js.map +1 -0
- package/dist/components/TaskGrid/components/header/edit-columns/SortableItemCommandBar/SortableItemCommandBar.d.ts +2 -0
- package/dist/components/TaskGrid/components/header/edit-columns/SortableItemCommandBar/SortableItemCommandBar.js +27 -0
- package/dist/components/TaskGrid/components/header/edit-columns/SortableItemCommandBar/SortableItemCommandBar.js.map +1 -0
- package/dist/components/TaskGrid/components/header/edit-columns/styles.d.ts +8 -0
- package/dist/components/TaskGrid/components/header/edit-columns/styles.js +15 -0
- package/dist/components/TaskGrid/components/header/edit-columns/styles.js.map +1 -0
- package/dist/components/TaskGrid/components/header/edit-columns/useTaskGridEditColumns.d.ts +9 -0
- package/dist/components/TaskGrid/components/header/edit-columns/useTaskGridEditColumns.js +9 -0
- package/dist/components/TaskGrid/components/header/edit-columns/useTaskGridEditColumns.js.map +1 -0
- package/dist/components/TaskGrid/components/header/settings-callout/SettingsCallout.d.ts +1 -0
- package/dist/components/TaskGrid/components/header/settings-callout/SettingsCallout.js +24 -0
- package/dist/components/TaskGrid/components/header/settings-callout/SettingsCallout.js.map +1 -0
- package/dist/components/TaskGrid/components/header/settings-callout/index.d.ts +1 -0
- package/dist/components/TaskGrid/components/header/settings-callout/index.js +2 -0
- package/dist/components/TaskGrid/components/header/settings-callout/index.js.map +1 -0
- package/dist/components/TaskGrid/components/header/settings-callout/styles.d.ts +5 -0
- package/dist/components/TaskGrid/components/header/settings-callout/styles.js +12 -0
- package/dist/components/TaskGrid/components/header/settings-callout/styles.js.map +1 -0
- package/dist/components/TaskGrid/components/header/styles.d.ts +15 -0
- package/dist/components/TaskGrid/components/header/styles.js +22 -0
- package/dist/components/TaskGrid/components/header/styles.js.map +1 -0
- package/dist/components/TaskGrid/components/header/view-switcher/ViewSwitcher.d.ts +1 -0
- package/dist/components/TaskGrid/components/header/view-switcher/ViewSwitcher.js +104 -0
- package/dist/components/TaskGrid/components/header/view-switcher/ViewSwitcher.js.map +1 -0
- package/dist/components/TaskGrid/components/header/view-switcher/create-view-dialog/CreateViewDialog.d.ts +5 -0
- package/dist/components/TaskGrid/components/header/view-switcher/create-view-dialog/CreateViewDialog.js +66 -0
- package/dist/components/TaskGrid/components/header/view-switcher/create-view-dialog/CreateViewDialog.js.map +1 -0
- package/dist/components/TaskGrid/components/header/view-switcher/create-view-dialog/index.d.ts +1 -0
- package/dist/components/TaskGrid/components/header/view-switcher/create-view-dialog/index.js +2 -0
- package/dist/components/TaskGrid/components/header/view-switcher/create-view-dialog/index.js.map +1 -0
- package/dist/components/TaskGrid/components/header/view-switcher/index.d.ts +1 -0
- package/dist/components/TaskGrid/components/header/view-switcher/index.js +2 -0
- package/dist/components/TaskGrid/components/header/view-switcher/index.js.map +1 -0
- package/dist/components/TaskGrid/components/header/view-switcher/styles.d.ts +18 -0
- package/dist/components/TaskGrid/components/header/view-switcher/styles.js +24 -0
- package/dist/components/TaskGrid/components/header/view-switcher/styles.js.map +1 -0
- package/dist/components/TaskGrid/components/header/view-switcher/view-manager/ViewManageDialog.d.ts +5 -0
- package/dist/components/TaskGrid/components/header/view-switcher/view-manager/ViewManageDialog.js +54 -0
- package/dist/components/TaskGrid/components/header/view-switcher/view-manager/ViewManageDialog.js.map +1 -0
- package/dist/components/TaskGrid/components/header/view-switcher/view-manager/ViewManager.d.ts +18 -0
- package/dist/components/TaskGrid/components/header/view-switcher/view-manager/ViewManager.js +95 -0
- package/dist/components/TaskGrid/components/header/view-switcher/view-manager/ViewManager.js.map +1 -0
- package/dist/components/TaskGrid/components/header/view-switcher/view-manager/index.d.ts +1 -0
- package/dist/components/TaskGrid/components/header/view-switcher/view-manager/index.js +2 -0
- package/dist/components/TaskGrid/components/header/view-switcher/view-manager/index.js.map +1 -0
- package/dist/components/TaskGrid/components/header/view-switcher/view-manager/styles.d.ts +18 -0
- package/dist/components/TaskGrid/components/header/view-switcher/view-manager/styles.js +25 -0
- package/dist/components/TaskGrid/components/header/view-switcher/view-manager/styles.js.map +1 -0
- package/dist/components/TaskGrid/components/index.d.ts +1 -0
- package/dist/components/TaskGrid/components/index.js +2 -0
- package/dist/components/TaskGrid/components/index.js.map +1 -0
- package/dist/components/TaskGrid/components/skeleton/Skeleton.d.ts +4 -0
- package/dist/components/TaskGrid/components/skeleton/Skeleton.js +32 -0
- package/dist/components/TaskGrid/components/skeleton/Skeleton.js.map +1 -0
- package/dist/components/TaskGrid/components/skeleton/index.d.ts +1 -0
- package/dist/components/TaskGrid/components/skeleton/index.js +2 -0
- package/dist/components/TaskGrid/components/skeleton/index.js.map +1 -0
- package/dist/components/TaskGrid/components/skeleton/styles.d.ts +92 -0
- package/dist/components/TaskGrid/components/skeleton/styles.js +100 -0
- package/dist/components/TaskGrid/components/skeleton/styles.js.map +1 -0
- package/dist/components/TaskGrid/context.d.ts +22 -0
- package/dist/components/TaskGrid/context.js +53 -0
- package/dist/components/TaskGrid/context.js.map +1 -0
- package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/CustomColumnsDataProvider.d.ts +50 -0
- package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/CustomColumnsDataProvider.js +45 -0
- package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/CustomColumnsDataProvider.js.map +1 -0
- package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/TalxisCustomColumnsDataProviderStrategy.d.ts +33 -0
- package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/TalxisCustomColumnsDataProviderStrategy.js +227 -0
- package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/TalxisCustomColumnsDataProviderStrategy.js.map +1 -0
- package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/index.d.ts +2 -0
- package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/index.js +3 -0
- package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/index.js.map +1 -0
- package/dist/components/TaskGrid/data-providers/index.d.ts +3 -0
- package/dist/components/TaskGrid/data-providers/index.js +6 -0
- package/dist/components/TaskGrid/data-providers/index.js.map +1 -0
- package/dist/components/TaskGrid/data-providers/saved-query-data-provider/SavedQueryDataProvider.d.ts +125 -0
- package/dist/components/TaskGrid/data-providers/saved-query-data-provider/SavedQueryDataProvider.js +192 -0
- package/dist/components/TaskGrid/data-providers/saved-query-data-provider/SavedQueryDataProvider.js.map +1 -0
- package/dist/components/TaskGrid/data-providers/saved-query-data-provider/TalxisSavedQueryDataProvider.d.ts +21 -0
- package/dist/components/TaskGrid/data-providers/saved-query-data-provider/TalxisSavedQueryDataProvider.js +97 -0
- package/dist/components/TaskGrid/data-providers/saved-query-data-provider/TalxisSavedQueryDataProvider.js.map +1 -0
- package/dist/components/TaskGrid/data-providers/saved-query-data-provider/index.d.ts +2 -0
- package/dist/components/TaskGrid/data-providers/saved-query-data-provider/index.js +3 -0
- package/dist/components/TaskGrid/data-providers/saved-query-data-provider/index.js.map +1 -0
- package/dist/components/TaskGrid/data-providers/task-data-provider/TaskDataProvider.d.ts +213 -0
- package/dist/components/TaskGrid/data-providers/task-data-provider/TaskDataProvider.js +313 -0
- package/dist/components/TaskGrid/data-providers/task-data-provider/TaskDataProvider.js.map +1 -0
- package/dist/components/TaskGrid/data-providers/task-data-provider/index.d.ts +1 -0
- package/dist/components/TaskGrid/data-providers/task-data-provider/index.js +2 -0
- package/dist/components/TaskGrid/data-providers/task-data-provider/index.js.map +1 -0
- package/dist/components/TaskGrid/data-providers/task-data-provider/record-tree/RecordTree.d.ts +55 -0
- package/dist/components/TaskGrid/data-providers/task-data-provider/record-tree/RecordTree.js +304 -0
- package/dist/components/TaskGrid/data-providers/task-data-provider/record-tree/RecordTree.js.map +1 -0
- package/dist/components/TaskGrid/data-providers/task-data-provider/record-tree/index.d.ts +1 -0
- package/dist/components/TaskGrid/data-providers/task-data-provider/record-tree/index.js +2 -0
- package/dist/components/TaskGrid/data-providers/task-data-provider/record-tree/index.js.map +1 -0
- package/dist/components/TaskGrid/data-providers/task-data-provider/record-tree/patchDataBuilderPrepare.d.ts +5 -0
- package/dist/components/TaskGrid/data-providers/task-data-provider/record-tree/patchDataBuilderPrepare.js +16 -0
- package/dist/components/TaskGrid/data-providers/task-data-provider/record-tree/patchDataBuilderPrepare.js.map +1 -0
- package/dist/components/TaskGrid/index.d.ts +3 -0
- package/dist/components/TaskGrid/index.js +3 -0
- package/dist/components/TaskGrid/index.js.map +1 -0
- package/dist/components/TaskGrid/interfaces.d.ts +161 -0
- package/dist/components/TaskGrid/labels.d.ts +92 -0
- package/dist/components/TaskGrid/labels.js +94 -0
- package/dist/components/TaskGrid/labels.js.map +1 -0
- package/dist/components/TaskGrid/styles.d.ts +65 -0
- package/dist/components/TaskGrid/styles.js +72 -0
- package/dist/components/TaskGrid/styles.js.map +1 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.js +2 -0
- package/dist/components/index.js.map +1 -1
- package/dist/hooks/useIsMounted.js +3 -3
- package/dist/hooks/useIsMounted.js.map +1 -1
- package/dist/hooks/useShouldRemount.js +2 -2
- package/dist/hooks/useShouldRemount.js.map +1 -1
- package/dist/index.d.ts +640 -34
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/utils/dataset/adapters/VirtualDatasetAdapter.js +11 -3
- package/dist/utils/dataset/adapters/VirtualDatasetAdapter.js.map +1 -1
- package/dist/utils/dataset-control/DatasetControl.js +4 -1
- package/dist/utils/dataset-control/DatasetControl.js.map +1 -1
- package/dist/utils/error-handling/ErrorHelper.d.ts +7 -0
- package/dist/utils/error-handling/ErrorHelper.js +40 -0
- package/dist/utils/error-handling/ErrorHelper.js.map +1 -0
- package/dist/utils/error-handling/index.d.ts +1 -0
- package/dist/utils/error-handling/index.js +2 -0
- package/dist/utils/error-handling/index.js.map +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/package.json +5 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridModel.js","sources":["../../../../src/components/Grid/grid/GridModel.ts"],"sourcesContent":["import { AggregationFunction, DataProvider, DataType, DataTypes, FieldValue, Filtering, Formatting, Grouping, IColumn, ICustomColumnControl, ICustomColumnFormatting, IDataProvider, IDataset, IGroupByMetadata, IInternalDataProvider, IRecord, Sanitizer, Sorting, TotalRow } from \"@talxis/client-libraries\";\nimport { merge } from \"merge-anything\";\nimport { ITheme, Theming } from \"@talxis/react-components\";\nimport { getTheme } from \"@fluentui/react\";\nimport { gridTranslations } from \"../translations\";\nimport { ITranslation } from \"../../../hooks\";\nimport { IBinding } from \"../../NestedControlRenderer/interfaces\";\nimport { BaseControls, IFluentDesignState } from \"../../../utils\";\nimport { IGrid, IGridParameters } from \"../interfaces\";\nimport { CHECKBOX_COLUMN_KEY } from \"../constants\";\nimport { Type as FilterType } from \"@talxis/client-libraries\";\nimport hotkeys from 'hotkeys-js';\n\nconst DEFAULT_ROW_HEIGHT = 42;\n\ninterface IGridDependencies {\n labels: Required<ITranslation<typeof gridTranslations>>;\n onGetProps: () => IGrid;\n theme?: ITheme;\n}\n\ninterface IPCFContext extends Omit<ComponentFramework.Context<any, any>, 'fluentDesignLanguage'> {\n fluentDesignLanguage?: IFluentDesignState\n}\n\nexport interface IGridColumn extends IColumn {\n isRequired: boolean;\n isEditable: boolean;\n isFilterable: boolean;\n isSorted: boolean;\n isFiltered: boolean;\n canBeAggregated: boolean;\n canBeGrouped: boolean;\n isSortedDescending: boolean;\n isResizable: boolean;\n alignment: IColumn['alignment'],\n}\n\nexport class GridModel {\n public readonly oddRowCellTheme: ITheme;\n public readonly evenRowCellTheme: ITheme;\n private _getProps: () => IGrid;\n private _labels: Required<ITranslation<typeof gridTranslations>>;\n private _theme: ITheme;\n private _sorting: Sorting;\n private _totalRow: TotalRow\n private _grouping: Grouping;\n private _filtering: Filtering;\n private _nestedProviderPagingLimitNotificationId: string | null = null;\n private _cachedGridColumnsMap: Map<string, IGridColumn> = new Map();\n\n constructor({ onGetProps, labels, theme }: IGridDependencies) {\n this._getProps = onGetProps;\n this._labels = labels;\n this._theme = theme ?? getTheme();\n this.oddRowCellTheme = Theming.GenerateThemeV8(this._theme.palette.themePrimary, this._theme.palette.neutralLighterAlt, this._theme.semanticColors.bodyText);\n this.evenRowCellTheme = Theming.GenerateThemeV8(this._theme.palette.themePrimary, this._theme.palette.white, this._theme.semanticColors.bodyText);\n const provider = this.getDataset().getDataProvider();\n this._sorting = new Sorting(provider);\n this._totalRow = new TotalRow(provider);\n this._filtering = new Filtering(provider, FieldValue);\n this._grouping = new Grouping(provider);\n this._registerEventListeners();\n hotkeys('*', (event, handler) => {\n })\n }\n\n public getDataset(): IDataset {\n return this._getProps().parameters.Grid;\n }\n\n public getPcfContext(): IPCFContext {\n return this._getProps().context;\n }\n\n public getState() {\n return this._getProps().state;\n }\n\n public getParameters(): IGridParameters {\n return this._getProps().parameters;\n }\n public getLabels(): Required<ITranslation<typeof gridTranslations>> {\n return this._labels;\n }\n public isZebraEnabled(): boolean {\n return this._getProps().parameters.EnableZebra?.raw !== false;\n }\n public isNavigationEnabled(): boolean {\n return this.getParameters().EnableNavigation?.raw !== false;\n }\n public isAutoSaveEnabled(): boolean {\n return this._dataset.getDataProvider().getProperty('autoSave') === true\n }\n public isGroupedColumnsPinnedEnabled(): boolean {\n return this.getParameters().EnableGroupedColumnsPinning?.raw !== false;\n }\n public getInlineRibbonButtonIds(): string | null {\n return this.getParameters().InlineRibbonButtonIds?.raw ?? null;\n }\n public isEditingEnabled(): boolean {\n return this.getParameters().EnableEditing?.raw === true;\n }\n public getGroupType(): 'nested' | 'flat' {\n return this.getDataset().getDataProvider().getProperty('groupingType');\n }\n public optionSetColorsEnabled(): boolean {\n return this.getParameters().EnableOptionSetColors?.raw === true;\n }\n public getDefaultExpandedGroupLevel(): number {\n return this.getParameters().DefaultExpandedGroupLevel?.raw ?? -1;\n }\n public getLicenseKey(): string | null {\n return this.getParameters().LicenseKey?.raw ?? null;\n }\n public getDefaultRowHeight(): number {\n const height = this.getParameters().RowHeight?.raw;\n if (height) {\n return height;\n }\n return DEFAULT_ROW_HEIGHT;\n }\n\n public getSelectionType(): 'none' | 'single' | 'multiple' {\n switch (this.getParameters().SelectableRows?.raw) {\n case undefined:\n case null: {\n return 'multiple'\n }\n }\n return this.getParameters().SelectableRows!.raw;\n }\n public getControl(column: IColumn, record: IRecord, editing: boolean): Required<ICustomColumnControl> {\n editing = record.getSummarizationType() === 'aggregation' ? false : editing;\n //file and image currently do not support editor, always force cell renderers\n switch (column.dataType) {\n case 'File':\n case 'Image': {\n return {\n name: 'GridCellRenderer',\n appliesTo: 'both',\n bindings: {}\n }\n }\n }\n const defaultControl: Required<ICustomColumnControl> = {\n name: (() => {\n if (record.getSummarizationType() === 'aggregation') {\n return 'GridCellRenderer';\n }\n if (column.name === DataProvider.CONST.RIBBON_BUTTONS_COLUMN_NAME) {\n return BaseControls.GridInlineRibbon;\n }\n if (editing) {\n return BaseControls.GetControlNameForDataType(column.dataType as DataType)\n }\n return 'GridCellRenderer';\n })(),\n appliesTo: 'both',\n bindings: {}\n };\n const customControls = record.getColumnInfo(column.name).ui.getCustomControls([defaultControl]);\n const appliesToValue = editing ? 'editor' : 'renderer';\n const customControl = customControls.find(\n control => control.appliesTo === 'both' || control.appliesTo === appliesToValue\n );\n if (customControl) {\n return merge(defaultControl, customControl) as Required<ICustomColumnControl>;\n }\n\n return defaultControl;\n }\n\n public getBindings(record: IRecord, column: IColumn, control: ICustomColumnControl) {\n const columnInfo = record.getColumnInfo(column.name);\n const bindings: { [name: string]: IBinding } = {\n 'value': {\n isStatic: false,\n type: column.dataType as any,\n value: this.getControlValue(record, column),\n formattedValue: this.getRecordFormattedValue(record, column).value,\n error: columnInfo.error,\n errorMessage: columnInfo.errorMessage,\n onNotifyOutputChanged: () => { },\n metadata: {\n onOverrideMetadata: () => column.metadata\n }\n },\n 'IsCellCustomizer': {\n isStatic: true,\n type: DataTypes.TwoOptions,\n value: true\n }\n }\n if (control.bindings) {\n Object.entries(control.bindings).map(([name, binding]) => {\n bindings[name] = {\n isStatic: true,\n type: binding.type!,\n value: binding.value\n }\n })\n }\n return bindings;\n }\n\n public getFieldBindingParameters(record: IRecord, column: IColumn, editing: boolean) {\n //make sure we have IColumn, not IGridColumn\n column = record.getDataProvider().getColumnsMap()[column.name]!;\n const summarizationType = record.getDataProvider().getSummarizationType();\n const value = this.getRecordValue(record, column);\n const formattedValue = this.getRecordFormattedValue(record, column);\n const aggregationColumn = record.getDataProvider().getColumnsMap()[column.aggregation?.alias!];\n const parameters: any = {\n Dataset: {\n raw: this.getDataset(),\n type: DataTypes.Object\n },\n Record: {\n raw: record,\n type: DataTypes.Object\n },\n Column: {\n raw: column,\n type: DataTypes.Object\n }\n }\n parameters.AggregatedValue = {\n raw: value.aggregatedValue,\n formatted: formattedValue.aggregatedValue,\n type: aggregationColumn?.dataType ?? DataTypes.Decimal\n }\n parameters.EnableNavigation = {\n raw: (() => {\n if (!this.isNavigationEnabled()) {\n return false;\n }\n if (summarizationType === 'aggregation') {\n return false;\n }\n else if (summarizationType === 'grouping') {\n switch (column.dataType) {\n case DataTypes.LookupCustomer:\n case DataTypes.LookupRegarding:\n case DataTypes.LookupOwner:\n case DataTypes.LookupSimple:\n case DataTypes.File:\n case DataTypes.Image:\n case DataTypes.SingleLineEmail:\n case DataTypes.SingleLineUrl:\n case DataTypes.SingleLinePhone: {\n return true;\n }\n default: {\n return false;\n }\n }\n }\n else {\n return true;\n }\n })(),\n type: DataTypes.TwoOptions\n }\n parameters.ColumnAlignment = {\n raw: column.alignment,\n type: DataTypes.SingleLineText\n }\n parameters.IsPrimaryColumn = {\n raw: column.isPrimary,\n type: DataTypes.TwoOptions\n }\n parameters.ShowErrorMessage = {\n raw: false,\n type: DataTypes.TwoOptions\n }\n parameters.CellType = {\n raw: editing ? 'editor' : 'renderer',\n type: DataTypes.SingleLineText\n }\n parameters.AutoFocus = {\n raw: editing,\n type: DataTypes.TwoOptions\n }\n parameters.AggregationFunction = {\n raw: summarizationType === 'aggregation' ? aggregationColumn?.aggregation?.aggregationFunction : null,\n type: DataTypes.SingleLineText\n }\n parameters.PrefixIcon = {\n raw: null,\n type: DataTypes.SingleLineText\n }\n parameters.SuffixIcon = {\n raw: null,\n type: DataTypes.SingleLineText\n }\n parameters.IsInlineNewEnabled = {\n raw: false,\n type: DataTypes.TwoOptions\n }\n parameters.EnableTypeSuffix = {\n raw: false,\n type: DataTypes.TwoOptions\n }\n parameters.EnableOptionSetColors = {\n raw: this.optionSetColorsEnabled(),\n type: DataTypes.TwoOptions\n }\n parameters.CommandButtonIds = {\n raw: this.getInlineRibbonButtonIds(),\n type: DataTypes.SingleLineText\n }\n parameters.ShouldUnmountWhenOutputChanges = {\n raw: (() => {\n //by default, leave cell editor opened for these types since\n // they can output partial changes as values\n switch (column.dataType) {\n case 'DateAndTime.DateAndTime':\n case 'MultiSelectPicklist': {\n return false;\n }\n default: {\n return true;\n }\n }\n })(),\n type: DataTypes.TwoOptions\n }\n return parameters;\n }\n\n public isColumnExpandable(record: IRecord, column: IColumn): boolean {\n const groupBy = record.getDataProvider().grouping.getGroupBys()[0];\n return groupBy?.columnName === column.name\n }\n\n public getFieldFormatting(record: IRecord, columnName: string): Required<ICustomColumnFormatting> {\n const defaultTheme = this.getDefaultCellTheme(record);\n const defaultBackgroundColor = defaultTheme.semanticColors.bodyBackground;;\n\n // Handle checkbox column specifically\n if (columnName === CHECKBOX_COLUMN_KEY || !record) {\n return {\n primaryColor: this._theme.palette.themePrimary,\n backgroundColor: defaultBackgroundColor,\n textColor: Theming.GetTextColorForBackground(defaultBackgroundColor),\n className: '',\n themeOverride: {}\n };\n }\n\n const customFormatting = record.getColumnInfo(columnName).ui.getCustomFormatting(defaultTheme) ?? {};\n\n // Prepare the result with defaults\n const result: Required<ICustomColumnFormatting> = {\n backgroundColor: customFormatting.backgroundColor ?? defaultBackgroundColor,\n primaryColor: customFormatting.primaryColor ?? this._theme.palette.themePrimary,\n textColor: customFormatting.textColor ?? '',\n className: customFormatting.className ?? '',\n themeOverride: customFormatting.themeOverride ?? {}\n };\n\n // Apply background-specific adjustments\n if (result.backgroundColor !== defaultBackgroundColor) {\n result.themeOverride = merge({}, {\n fonts: {\n medium: {\n fontWeight: 600\n }\n }\n }, result.themeOverride);\n\n if (!customFormatting.primaryColor) {\n result.primaryColor = Theming.GetTextColorForBackground(result.backgroundColor);\n }\n }\n\n // Ensure text color is set\n if (!result.textColor) {\n result.textColor = Theming.GetTextColorForBackground(result.backgroundColor);\n }\n\n return result;\n }\n\n public getDefaultCellTheme(record: IRecord): ITheme {\n const isEven = record.getIndex() % 2 === 0;\n const summarizationType = record.getDataProvider().getSummarizationType();\n if (summarizationType !== 'none') {\n return this.oddRowCellTheme;\n }\n //child of a group record\n else if (record.getDataProvider().getParentDataProvider()) {\n return this.evenRowCellTheme;\n }\n else if (isEven || !this.isZebraEnabled()) {\n return this.evenRowCellTheme;\n }\n else {\n return this.oddRowCellTheme;\n }\n }\n\n public getGridColumns(): IGridColumn[] {\n this._cachedGridColumnsMap.clear();\n const gridColumns: IGridColumn[] = this.getDataset().columns.map(column => {\n const gridColumn = this.getGridColumnByName(column.name, true);\n this._cachedGridColumnsMap.set(gridColumn.name, gridColumn);\n return gridColumn;\n });\n return gridColumns;\n }\n\n public getColumnByName(columnName: string): IColumn {\n return this.getDataset().getDataProvider().getColumnsMap()[columnName]!;\n }\n\n public getGridColumnByName(columnName: string, force?: boolean): IGridColumn {\n if (!force) {\n const column = this._cachedGridColumnsMap.get(columnName);\n if (!column) {\n throw new Error(`Column with name ${columnName} not found in grid columns cache.`);\n }\n return column;\n }\n else {\n const column = this.getDataset().getColumnsMap()[columnName];\n const sorted = this.getDataset().sorting?.find(sort => sort.name === column.name);\n return {\n ...column,\n alignment: column.alignment!,\n isFiltered: this._filtering.getColumnFilter(column.name).isAppliedToDataset(),\n isEditable: this._isColumnEditable(column),\n isRequired: this._isColumnRequired(column),\n canBeGrouped: this._isColumnGroupable(column),\n isFilterable: this._isColumnFilterable(column),\n disableSorting: !this._isColumnSortable(column),\n canBeAggregated: this._canColumnBeAggregated(column),\n isSortedDescending: sorted?.sortDirection === 1 ? true : false,\n isResizable: true,\n isSorted: sorted ? true : false\n }\n }\n }\n\n public getRecordValue(record: IRecord, column: IColumn | string) {\n return this._getRecordValue(record, column, false);\n }\n public getRecordFormattedValue(record: IRecord, column: IColumn | string) {\n return this._getRecordValue(record, column, true);\n }\n //returns record value in a form that is compatible with PCF typings\n public getControlValue(record: IRecord, column: IColumn | string): any {\n const columnName = typeof column === 'string' ? column : column.name;\n column = record.getDataProvider().getColumnsMap()[columnName]!;\n //can be the aggregated value\n let value = this.getRecordValue(record, column).value;\n switch (column.dataType) {\n //getValue always returns string for TwoOptions\n case 'TwoOptions': {\n if (typeof value === 'string') {\n value = value == '1' ? true : false\n }\n break;\n }\n //getValue always returns string for OptionSet\n case 'OptionSet': {\n value = value ? parseInt(value) : null;\n break;\n }\n case 'MultiSelectPicklist': {\n value = value ? value.split(',').map((x: string) => parseInt(x)) : null;\n break;\n }\n case 'Lookup.Simple':\n case 'Lookup.Customer':\n case 'Lookup.Owner':\n case 'Lookup.Regarding': {\n //our implementation returns array, Power Apps returns object\n if (value && !Array.isArray(value)) {\n value = [value];\n }\n value = value?.map((x: ComponentFramework.EntityReference) => Sanitizer.Lookup.getLookupValue(x))\n break;\n }\n }\n return value;\n }\n\n public isRecordSelectionDisabled(record: IRecord): boolean {\n const dataProvider = record.getDataProvider();\n const level = dataProvider.getNestingLevel();\n const groupBys = this.getDataset().grouping.getGroupBys();\n if (this.getGroupType() === 'nested' && level < groupBys.length - 1) {\n return true;\n }\n if (dataProvider.getSummarizationType() === 'grouping' && this.getSelectionType() === 'single') {\n return true;\n }\n return false;\n }\n\n public isColumnEditable(columnName: string, record?: IRecord): boolean {\n let isEditable = true;\n const mainDatasetColumn = this.getDataset().getDataProvider().getColumnsMap()[columnName]!;\n let column = mainDatasetColumn;\n if (record) {\n column = record.getDataProvider().getColumnsMap()[columnName]!;\n }\n switch (true) {\n case !this.isEditingEnabled():\n case record?.isSaving():\n case column.oneClickEdit: {\n isEditable = false;\n break;\n }\n }\n switch (column.name) {\n case DataProvider.CONST.CHECKBOX_COLUMN_KEY:\n case DataProvider.CONST.RIBBON_BUTTONS_COLUMN_NAME: {\n isEditable = false;\n break;\n }\n }\n //these field types do not support editing\n switch (column.dataType) {\n case DataTypes.File:\n case DataTypes.Image: {\n isEditable = false;\n break;\n }\n }\n //if the column is not editable, return false\n if (!isEditable) {\n return false\n }\n else {\n //columns is editable and we are not asking for record\n if (!record) {\n return true;\n }\n //column is editable, but we need to check if the record is editable\n else return this._isRecordFieldEditable(record, column);\n }\n }\n\n public addAggregation(columnName: string, aggregationFunction: AggregationFunction) {\n this._getInternalDataProvider().executeWithUnsavedChangesBlocker(() => {\n this._setAggregationDecorator(() => {\n this._totalRow.addAggregation(columnName, aggregationFunction)\n })\n })\n }\n public removeAggregation(alias: string) {\n this._getInternalDataProvider().executeWithUnsavedChangesBlocker(() => {\n this._setAggregationDecorator(() => {\n this._totalRow.removeAggregation(alias);\n })\n })\n }\n public toggleColumnGroup(columnName: string) {\n this._getInternalDataProvider().executeWithUnsavedChangesBlocker(() => {\n const column = this.getDataset().getDataProvider().getColumnsMap()[columnName]!;\n if (column.grouping?.isGrouped) {\n this._grouping.ungroupColumn(column.grouping.alias!);\n }\n else {\n this._grouping.groupColumn(column.name);\n }\n this._dataset.refresh();\n })\n }\n\n public getColumnFilter(columnName: string) {\n return this._filtering.getColumnFilter(columnName);\n }\n\n public removeColumnFilter(columnName: string, saveToDataset?: boolean) {\n this._filtering.removeColumnFilter(columnName);\n if (!saveToDataset) {\n return;\n }\n this._getInternalDataProvider().executeWithUnsavedChangesBlocker(() => {\n const filterExpression = this._filtering.getFilterExpression(FilterType.And.Value);\n if (!filterExpression) {\n throw new Error('Unexpected error when clearing column filter.');\n }\n this._dataset.filtering.setFilter(filterExpression);\n this._dataset.refresh();\n })\n }\n\n public sortColumn(columnName: string, descending?: boolean) {\n this._getInternalDataProvider().executeWithUnsavedChangesBlocker(() => {\n this._sorting.getColumnSorting(columnName).setSortValue(descending ? 1 : 0, hotkeys.getPressedKeyString().includes('⇧'));\n this._dataset.refresh();\n })\n }\n\n public clearColumnSorting(columnName: string) {\n this._getInternalDataProvider().executeWithUnsavedChangesBlocker(() => {\n this._sorting.getColumnSorting(columnName).clear();\n this._dataset.refresh();\n })\n }\n public getTotalRow() {\n return this._totalRow;\n }\n public getFiltering() {\n return this._filtering;\n }\n public isSelectionModifierKeyPressed(): boolean {\n const pressedKeys = hotkeys.getPressedKeyString().join(',');\n switch (true) {\n case pressedKeys.includes('⇧'):\n case pressedKeys.includes('ctrl'):\n case pressedKeys.includes('⌘'): {\n return true;\n }\n default: {\n return false;\n }\n }\n }\n\n public getColumnSortingLabel(columnName: string, descending?: boolean): string {\n const column = this.getDataset().getDataProvider().getColumnsMap()[columnName]!;\n switch (column.dataType) {\n case DataTypes.WholeNone:\n case DataTypes.Decimal:\n case DataTypes.WholeDuration:\n case DataTypes.Currency: {\n if (!descending) {\n return this._labels['filtersortmenu-sortnumber-a-z']()\n }\n return this._labels['filtersortmenu-sortnumber-z-a']()\n }\n case DataTypes.DateAndTimeDateAndTime:\n case DataTypes.DateAndTimeDateOnly: {\n if (!descending) {\n return this._labels['filtersortmenu-sortdate-a-z']()\n }\n return this._labels['filtersortmenu-sortdate-z-a']()\n }\n case DataTypes.TwoOptions: {\n const options = column.metadata?.OptionSet ?? [];\n if (!descending) {\n return `${options[0].Label} ${this._labels['filtersortmenu-sorttwooption-joint']()} ${options[1].Label}`\n }\n return `${options[1].Label} ${this._labels['filtersortmenu-sorttwooption-joint']()} ${options[0].Label}`\n }\n default: {\n if (!descending) {\n return this._labels['filtersortmenu-sorttext-a-z']()\n }\n return this._labels['filtersortmenu-sorttext-z-a']()\n }\n }\n\n }\n\n public destroy() {\n if (this._nestedProviderPagingLimitNotificationId) {\n window.Xrm.App.clearGlobalNotification(this._nestedProviderPagingLimitNotificationId);\n }\n hotkeys.unbind();\n }\n\n private _getInternalDataProvider(): IInternalDataProvider {\n return this.getDataset().getDataProvider() as IInternalDataProvider;\n }\n\n private _setAggregationDecorator(fn: () => void) {\n fn();\n if (this._dataset.grouping.getGroupBys().length > 0) {\n this._dataset.refresh();\n }\n else {\n this._totalRow?.refresh();\n }\n }\n\n private _getRecordValue(record: IRecord, column: IColumn | string, formatted: boolean): { value: any; aggregatedValue: any } {\n if (!record) {\n return {\n value: null,\n aggregatedValue: null\n }\n }\n const columnName = typeof column === 'string' ? column : column.name;\n column = record.getDataProvider().getColumnsMap()[columnName]!;\n if (!column) {\n return {\n value: null,\n aggregatedValue: null\n }\n }\n const method = formatted ? 'getFormattedValue' : 'getValue';\n const groupBy = record.getDataProvider().grouping.getGroupBy(column.grouping?.alias!);\n const aggregation = record.getDataProvider().aggregation.getAggregation(column.aggregation?.alias!);\n\n let value = record[method](columnName);\n let aggregatedValue = null;\n\n if (groupBy) {\n value = record[method](groupBy.alias);\n }\n if (aggregation) {\n aggregatedValue = record[method](aggregation.alias);\n }\n return {\n value: value,\n aggregatedValue: aggregatedValue\n }\n }\n\n private _isRecordFieldEditable(record: IRecord, column: IColumn): boolean {\n const columnInfo = record.getColumnInfo(column.name);\n //if editable not defined, return true since column is editable in this case\n return columnInfo?.security.editable ?? true;\n }\n\n private _isColumnRequired(column: IColumn): boolean {\n if (!this.getParameters().EnableEditing?.raw) {\n return false;\n }\n switch (column.metadata?.RequiredLevel) {\n case 1:\n case 2: {\n return true;\n }\n default: {\n return false;\n }\n }\n }\n private _isColumnSortable(column: IColumn): boolean {\n //sorting enabled by default\n if (this.getParameters().EnableSorting?.raw === false) {\n return false;\n }\n return !column.disableSorting;\n }\n private _isColumnFilterable(column: IColumn): boolean {\n //filtering enabled by default\n if (this.getParameters().EnableFiltering?.raw === false) {\n return false;\n }\n if (!column.metadata?.SupportedFilterConditionOperators || column.metadata.SupportedFilterConditionOperators.length === 0) {\n return false;\n }\n return true;\n }\n\n private _isColumnGroupable(column: IColumn): boolean {\n //grouping disabled by default\n if (this.getParameters().EnableGrouping?.raw !== true) {\n return false;\n }\n return !!column.metadata?.CanBeGrouped;\n }\n\n private _isColumnEditable(column: IColumn): boolean {\n //editing disabled by default\n if (this.getParameters().EnableEditing?.raw !== true) {\n return false;\n }\n return !!column.metadata?.IsValidForUpdate;\n }\n\n private _canColumnBeAggregated(column: IColumn): boolean {\n //aggregations disabled by default\n if (this.getParameters().EnableAggregation?.raw !== true) {\n return false;\n }\n if (!column.metadata?.SupportedAggregations || column.metadata.SupportedAggregations.length === 0) {\n return false;\n }\n return true;\n }\n\n private _registerEventListeners() {\n this._dataset.addEventListener('onAfterRecordSaved', () => this._refreshTotalRowOnAutoSave());\n this._dataset.addEventListener('onAfterSaved', () => this._totalRow.refresh());\n this._dataset.addEventListener('onNestedProviderPagingLimitReached', () => this._showNestedProviderPagingLimitNotification());\n this._setGroupingInterceptor();\n }\n\n //TODO: use control notification instead\n private async _showNestedProviderPagingLimitNotification() {\n if (!this._nestedProviderPagingLimitNotificationId) {\n this._nestedProviderPagingLimitNotificationId = await window.Xrm.App.addGlobalNotification({\n level: 4,\n message: this.getLabels()['maximumGroupChildrenLimitReached']({ maxGroupChildren: Formatting.Get().formatInteger(5000) }),\n type: 2\n });\n }\n }\n private _refreshTotalRowOnAutoSave() {\n if (this.isAutoSaveEnabled()) {\n this._totalRow.refresh()\n }\n }\n\n //this method makes sure that the grouping is only applied to the first grouping column\n //this allows for nested grouping to work correctly\n private _setGroupingInterceptor() {\n if (this.getGroupType() === 'flat') {\n return;\n }\n let originalSortedGrouping: IGroupByMetadata[] = [];\n let originalAggregation: IGroupByMetadata[] = [];\n this._dataset.addEventListener('onBeforeNewDataLoaded', () => {\n originalSortedGrouping = this._dataset.grouping.getGroupBys().sort((a, b) => {\n const colA = this._dataset.getDataProvider().getColumnsMap()[a.columnName]!;\n const colB = this._dataset.getDataProvider().getColumnsMap()[b.columnName]!;\n return colA.order! - colB.order!;\n });\n originalAggregation = this._dataset.aggregation.getAggregations();\n if (originalSortedGrouping.length > 1) {\n this._dataset.grouping.clear();\n const groupBy = originalSortedGrouping[0];\n this._dataset.grouping.addGroupBy(groupBy);\n //clear all grouping aggregations except the first one\n for (let i = 1; i < originalSortedGrouping.length; i++) {\n const column = this._dataset.getDataProvider().getColumnsMap()[originalSortedGrouping[i].columnName];\n this._dataset.aggregation.removeAggregation(column?.aggregation?.alias!);\n }\n }\n })\n this._dataset.addEventListener('onNewDataLoaded', () => {\n originalSortedGrouping.map((group) => {\n this._dataset.grouping.addGroupBy(group);\n })\n originalAggregation.map((aggr: any) => {\n this._dataset.aggregation.addAggregation(aggr);\n })\n })\n }\n\n private get _dataset() {\n return this.getDataset();\n }\n}"],"names":["FilterType"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GridModel.js","sources":["../../../../src/components/Grid/grid/GridModel.ts"],"sourcesContent":["import { AggregationFunction, DataProvider, DataType, DataTypes, FieldValue, Filtering, Formatting, Grouping, IColumn, ICustomColumnControl, ICustomColumnFormatting, IDataProvider, IDataset, IGroupByMetadata, IInternalDataProvider, IRecord, Sanitizer, Sorting, TotalRow } from \"@talxis/client-libraries\";\nimport { merge } from \"merge-anything\";\nimport { ITheme, Theming } from \"@talxis/react-components\";\nimport { getTheme } from \"@fluentui/react\";\nimport { gridTranslations } from \"../translations\";\nimport { ITranslation } from \"../../../hooks\";\nimport { IBinding } from \"../../NestedControlRenderer/interfaces\";\nimport { BaseControls, IFluentDesignState } from \"../../../utils\";\nimport { IGrid, IGridParameters } from \"../interfaces\";\nimport { CHECKBOX_COLUMN_KEY } from \"../constants\";\nimport { Type as FilterType } from \"@talxis/client-libraries\";\nimport hotkeys from 'hotkeys-js';\n\nconst DEFAULT_ROW_HEIGHT = 42;\n\ninterface IGridDependencies {\n labels: Required<ITranslation<typeof gridTranslations>>;\n onGetProps: () => IGrid;\n theme?: ITheme;\n}\n\ninterface IPCFContext extends Omit<ComponentFramework.Context<any, any>, 'fluentDesignLanguage'> {\n fluentDesignLanguage?: IFluentDesignState\n}\n\nexport interface IGridColumn extends IColumn {\n isRequired: boolean;\n isEditable: boolean;\n isFilterable: boolean;\n isSorted: boolean;\n isFiltered: boolean;\n canBeAggregated: boolean;\n canBeGrouped: boolean;\n isSortedDescending: boolean;\n isResizable: boolean;\n alignment: IColumn['alignment'],\n}\n\nexport class GridModel {\n public readonly oddRowCellTheme: ITheme;\n public readonly evenRowCellTheme: ITheme;\n private _getProps: () => IGrid;\n private _labels: Required<ITranslation<typeof gridTranslations>>;\n private _theme: ITheme;\n private _sorting: Sorting;\n private _totalRow: TotalRow\n private _grouping: Grouping;\n private _filtering: Filtering;\n private _nestedProviderPagingLimitNotificationId: string | null = null;\n private _cachedGridColumnsMap: Map<string, IGridColumn> = new Map();\n\n constructor({ onGetProps, labels, theme }: IGridDependencies) {\n this._getProps = onGetProps;\n this._labels = labels;\n this._theme = theme ?? getTheme();\n this.oddRowCellTheme = Theming.GenerateThemeV8(this._theme.palette.themePrimary, this._theme.palette.neutralLighterAlt, this._theme.semanticColors.bodyText);\n this.evenRowCellTheme = Theming.GenerateThemeV8(this._theme.palette.themePrimary, this._theme.palette.white, this._theme.semanticColors.bodyText);\n const provider = this.getDataset().getDataProvider();\n this._sorting = new Sorting(provider);\n this._totalRow = new TotalRow(provider);\n this._filtering = new Filtering(provider, FieldValue);\n this._grouping = new Grouping(provider);\n this._registerEventListeners();\n hotkeys('*', (event, handler) => {\n })\n }\n\n public getDataset(): IDataset {\n return this._getProps().parameters.Grid;\n }\n\n public getPcfContext(): IPCFContext {\n return this._getProps().context;\n }\n\n public getState() {\n return this._getProps().state;\n }\n\n public getParameters(): IGridParameters {\n return this._getProps().parameters;\n }\n public getLabels(): Required<ITranslation<typeof gridTranslations>> {\n return this._labels;\n }\n public isZebraEnabled(): boolean {\n return this._getProps().parameters.EnableZebra?.raw !== false;\n }\n public isNavigationEnabled(): boolean {\n return this.getParameters().EnableNavigation?.raw !== false;\n }\n public isAutoSaveEnabled(): boolean {\n return this.getParameters().EnableAutoSave?.raw === true;\n }\n public isGroupedColumnsPinnedEnabled(): boolean {\n return this.getParameters().EnableGroupedColumnsPinning?.raw !== false;\n }\n public getInlineRibbonButtonIds(): string | null {\n return this.getParameters().InlineRibbonButtonIds?.raw ?? null;\n }\n public isEditingEnabled(): boolean {\n return this.getParameters().EnableEditing?.raw === true;\n }\n public getGroupType(): 'nested' | 'flat' {\n return this.getDataset().getDataProvider().getProperty('groupingType');\n }\n public optionSetColorsEnabled(): boolean {\n return this.getParameters().EnableOptionSetColors?.raw === true;\n }\n public getDefaultExpandedGroupLevel(): number {\n return this.getParameters().DefaultExpandedGroupLevel?.raw ?? -1;\n }\n public getLicenseKey(): string | null {\n return this.getParameters().LicenseKey?.raw ?? null;\n }\n public getDefaultRowHeight(): number {\n const height = this.getParameters().RowHeight?.raw;\n if (height) {\n return height;\n }\n return DEFAULT_ROW_HEIGHT;\n }\n\n public getSelectionType(): 'none' | 'single' | 'multiple' {\n switch (this.getParameters().SelectableRows?.raw) {\n case undefined:\n case null: {\n return 'multiple'\n }\n }\n return this.getParameters().SelectableRows!.raw;\n }\n public getControl(column: IColumn, record: IRecord, editing: boolean): Required<ICustomColumnControl> {\n editing = record.getSummarizationType() === 'aggregation' ? false : editing;\n //file and image currently do not support editor, always force cell renderers\n switch (column.dataType) {\n case 'File':\n case 'Image': {\n return {\n name: 'GridCellRenderer',\n appliesTo: 'both',\n bindings: {}\n }\n }\n }\n const defaultControl: Required<ICustomColumnControl> = {\n name: (() => {\n if (record.getSummarizationType() === 'aggregation') {\n return 'GridCellRenderer';\n }\n if (column.name === DataProvider.CONST.RIBBON_BUTTONS_COLUMN_NAME) {\n return BaseControls.GridInlineRibbon;\n }\n if (editing) {\n return BaseControls.GetControlNameForDataType(column.dataType as DataType)\n }\n return 'GridCellRenderer';\n })(),\n appliesTo: 'both',\n bindings: {}\n };\n const customControls = record.getColumnInfo(column.name).ui.getCustomControls([defaultControl]);\n const appliesToValue = editing ? 'editor' : 'renderer';\n const customControl = customControls.find(\n control => control.appliesTo === 'both' || control.appliesTo === appliesToValue\n );\n if (customControl) {\n return merge(defaultControl, customControl) as Required<ICustomColumnControl>;\n }\n\n return defaultControl;\n }\n\n public getBindings(record: IRecord, column: IColumn, control: ICustomColumnControl) {\n const columnInfo = record.getColumnInfo(column.name);\n const bindings: { [name: string]: IBinding } = {\n 'value': {\n isStatic: false,\n type: column.dataType as any,\n value: this.getControlValue(record, column),\n formattedValue: this.getRecordFormattedValue(record, column).value,\n error: columnInfo.error,\n errorMessage: columnInfo.errorMessage,\n onNotifyOutputChanged: () => { },\n metadata: {\n onOverrideMetadata: () => column.metadata\n }\n },\n 'IsCellCustomizer': {\n isStatic: true,\n type: DataTypes.TwoOptions,\n value: true\n }\n }\n if (control.bindings) {\n Object.entries(control.bindings).map(([name, binding]) => {\n bindings[name] = {\n isStatic: true,\n type: binding.type!,\n value: binding.value\n }\n })\n }\n return bindings;\n }\n\n public getFieldBindingParameters(record: IRecord, column: IColumn, editing: boolean) {\n //make sure we have IColumn, not IGridColumn\n column = record.getDataProvider().getColumnsMap()[column.name]!;\n const summarizationType = record.getDataProvider().getSummarizationType();\n const value = this.getRecordValue(record, column);\n const formattedValue = this.getRecordFormattedValue(record, column);\n const aggregationColumn = record.getDataProvider().getColumnsMap()[column.aggregation?.alias!];\n const parameters: any = {\n Dataset: {\n raw: this.getDataset(),\n type: DataTypes.Object\n },\n Record: {\n raw: record,\n type: DataTypes.Object\n },\n Column: {\n raw: column,\n type: DataTypes.Object\n }\n }\n parameters.AggregatedValue = {\n raw: value.aggregatedValue,\n formatted: formattedValue.aggregatedValue,\n type: aggregationColumn?.dataType ?? DataTypes.Decimal\n }\n parameters.EnableNavigation = {\n raw: (() => {\n if (!this.isNavigationEnabled()) {\n return false;\n }\n if (summarizationType === 'aggregation') {\n return false;\n }\n else if (summarizationType === 'grouping') {\n switch (column.dataType) {\n case DataTypes.LookupCustomer:\n case DataTypes.LookupRegarding:\n case DataTypes.LookupOwner:\n case DataTypes.LookupSimple:\n case DataTypes.File:\n case DataTypes.Image:\n case DataTypes.SingleLineEmail:\n case DataTypes.SingleLineUrl:\n case DataTypes.SingleLinePhone: {\n return true;\n }\n default: {\n return false;\n }\n }\n }\n else {\n return true;\n }\n })(),\n type: DataTypes.TwoOptions\n }\n parameters.ColumnAlignment = {\n raw: column.alignment,\n type: DataTypes.SingleLineText\n }\n parameters.IsPrimaryColumn = {\n raw: column.isPrimary,\n type: DataTypes.TwoOptions\n }\n parameters.ShowErrorMessage = {\n raw: false,\n type: DataTypes.TwoOptions\n }\n parameters.CellType = {\n raw: editing ? 'editor' : 'renderer',\n type: DataTypes.SingleLineText\n }\n parameters.AutoFocus = {\n raw: editing,\n type: DataTypes.TwoOptions\n }\n parameters.AggregationFunction = {\n raw: summarizationType === 'aggregation' ? aggregationColumn?.aggregation?.aggregationFunction : null,\n type: DataTypes.SingleLineText\n }\n parameters.PrefixIcon = {\n raw: null,\n type: DataTypes.SingleLineText\n }\n parameters.SuffixIcon = {\n raw: null,\n type: DataTypes.SingleLineText\n }\n parameters.IsInlineNewEnabled = {\n raw: false,\n type: DataTypes.TwoOptions\n }\n parameters.EnableTypeSuffix = {\n raw: false,\n type: DataTypes.TwoOptions\n }\n parameters.EnableOptionSetColors = {\n raw: this.optionSetColorsEnabled(),\n type: DataTypes.TwoOptions\n }\n parameters.CommandButtonIds = {\n raw: this.getInlineRibbonButtonIds(),\n type: DataTypes.SingleLineText\n }\n parameters.ShouldUnmountWhenOutputChanges = {\n raw: (() => {\n //by default, leave cell editor opened for these types since\n // they can output partial changes as values\n switch (column.dataType) {\n case 'DateAndTime.DateAndTime':\n case 'MultiSelectPicklist': {\n return false;\n }\n default: {\n return true;\n }\n }\n })(),\n type: DataTypes.TwoOptions\n }\n return parameters;\n }\n\n public isColumnExpandable(record: IRecord, column: IColumn): boolean {\n const groupBy = record.getDataProvider().grouping.getGroupBys()[0];\n return groupBy?.columnName === column.name\n }\n\n public getFieldFormatting(record: IRecord, columnName: string): Required<ICustomColumnFormatting> {\n const defaultTheme = this.getDefaultCellTheme(record);\n const defaultBackgroundColor = defaultTheme.semanticColors.bodyBackground;;\n\n // Handle checkbox column specifically\n if (columnName === CHECKBOX_COLUMN_KEY || !record) {\n return {\n primaryColor: this._theme.palette.themePrimary,\n backgroundColor: defaultBackgroundColor,\n textColor: Theming.GetTextColorForBackground(defaultBackgroundColor),\n className: '',\n themeOverride: {}\n };\n }\n\n const customFormatting = record.getColumnInfo(columnName).ui.getCustomFormatting(defaultTheme) ?? {};\n\n // Prepare the result with defaults\n const result: Required<ICustomColumnFormatting> = {\n backgroundColor: customFormatting.backgroundColor ?? defaultBackgroundColor,\n primaryColor: customFormatting.primaryColor ?? this._theme.palette.themePrimary,\n textColor: customFormatting.textColor ?? '',\n className: customFormatting.className ?? '',\n themeOverride: customFormatting.themeOverride ?? {}\n };\n\n // Apply background-specific adjustments\n if (result.backgroundColor !== defaultBackgroundColor) {\n result.themeOverride = merge({}, {\n fonts: {\n medium: {\n fontWeight: 600\n }\n }\n }, result.themeOverride);\n\n if (!customFormatting.primaryColor) {\n result.primaryColor = Theming.GetTextColorForBackground(result.backgroundColor);\n }\n }\n\n // Ensure text color is set\n if (!result.textColor) {\n result.textColor = Theming.GetTextColorForBackground(result.backgroundColor);\n }\n\n return result;\n }\n\n public getDefaultCellTheme(record: IRecord): ITheme {\n const isEven = record.getIndex() % 2 === 0;\n const summarizationType = record.getDataProvider().getSummarizationType();\n if (summarizationType !== 'none') {\n return this.oddRowCellTheme;\n }\n //child of a group record\n else if (record.getDataProvider().getParentDataProvider()) {\n return this.evenRowCellTheme;\n }\n else if (isEven || !this.isZebraEnabled()) {\n return this.evenRowCellTheme;\n }\n else {\n return this.oddRowCellTheme;\n }\n }\n\n public getGridColumns(): IGridColumn[] {\n this._cachedGridColumnsMap.clear();\n const gridColumns: IGridColumn[] = this.getDataset().columns.map(column => {\n const gridColumn = this.getGridColumnByName(column.name, true);\n this._cachedGridColumnsMap.set(gridColumn.name, gridColumn);\n return gridColumn;\n });\n return gridColumns;\n }\n\n public getColumnByName(columnName: string): IColumn {\n return this.getDataset().getDataProvider().getColumnsMap()[columnName]!;\n }\n\n public getGridColumnByName(columnName: string, force?: boolean): IGridColumn {\n if (!force) {\n const column = this._cachedGridColumnsMap.get(columnName);\n if (!column) {\n throw new Error(`Column with name ${columnName} not found in grid columns cache.`);\n }\n return column;\n }\n else {\n const column = this.getDataset().getColumnsMap()[columnName];\n const sorted = this.getDataset().sorting?.find(sort => sort.name === column.name);\n return {\n ...column,\n alignment: column.alignment!,\n isFiltered: this._filtering.getColumnFilter(column.name).isAppliedToDataset(),\n isEditable: this._isColumnEditable(column),\n isRequired: this._isColumnRequired(column),\n canBeGrouped: this._isColumnGroupable(column),\n isFilterable: this._isColumnFilterable(column),\n disableSorting: !this._isColumnSortable(column),\n canBeAggregated: this._canColumnBeAggregated(column),\n isSortedDescending: sorted?.sortDirection === 1 ? true : false,\n isResizable: true,\n isSorted: sorted ? true : false\n }\n }\n }\n\n public getRecordValue(record: IRecord, column: IColumn | string) {\n return this._getRecordValue(record, column, false);\n }\n public getRecordFormattedValue(record: IRecord, column: IColumn | string) {\n return this._getRecordValue(record, column, true);\n }\n //returns record value in a form that is compatible with PCF typings\n public getControlValue(record: IRecord, column: IColumn | string): any {\n const columnName = typeof column === 'string' ? column : column.name;\n column = record.getDataProvider().getColumnsMap()[columnName]!;\n //can be the aggregated value\n let value = this.getRecordValue(record, column).value;\n switch (column.dataType) {\n //getValue always returns string for TwoOptions\n case 'TwoOptions': {\n if (typeof value === 'string') {\n value = value == '1' ? true : false\n }\n break;\n }\n //getValue always returns string for OptionSet\n case 'OptionSet': {\n value = value ? parseInt(value) : null;\n break;\n }\n case 'MultiSelectPicklist': {\n value = value ? value.split(',').map((x: string) => parseInt(x)) : null;\n break;\n }\n case 'Lookup.Simple':\n case 'Lookup.Customer':\n case 'Lookup.Owner':\n case 'Lookup.Regarding': {\n //our implementation returns array, Power Apps returns object\n if (value && !Array.isArray(value)) {\n value = [value];\n }\n value = value?.map((x: ComponentFramework.EntityReference) => Sanitizer.Lookup.getLookupValue(x))\n break;\n }\n }\n return value;\n }\n\n public isRecordSelectionDisabled(record: IRecord): boolean {\n const dataProvider = record.getDataProvider();\n const level = dataProvider.getNestingLevel();\n const groupBys = this.getDataset().grouping.getGroupBys();\n if (this.getGroupType() === 'nested' && level < groupBys.length - 1) {\n return true;\n }\n if (dataProvider.getSummarizationType() === 'grouping' && this.getSelectionType() === 'single') {\n return true;\n }\n return false;\n }\n\n public isColumnEditable(columnName: string, record?: IRecord): boolean {\n let isEditable = true;\n const mainDatasetColumn = this.getDataset().getDataProvider().getColumnsMap()[columnName]!;\n let column = mainDatasetColumn;\n if (record) {\n column = record.getDataProvider().getColumnsMap()[columnName]!;\n }\n switch (true) {\n case !this.isEditingEnabled():\n case record?.isSaving():\n case column.oneClickEdit: {\n isEditable = false;\n break;\n }\n }\n switch (column.name) {\n case DataProvider.CONST.CHECKBOX_COLUMN_KEY:\n case DataProvider.CONST.RIBBON_BUTTONS_COLUMN_NAME: {\n isEditable = false;\n break;\n }\n }\n //these field types do not support editing\n switch (column.dataType) {\n case DataTypes.File:\n case DataTypes.Image: {\n isEditable = false;\n break;\n }\n }\n //if the column is not editable, return false\n if (!isEditable) {\n return false\n }\n else {\n //columns is editable and we are not asking for record\n if (!record) {\n return true;\n }\n //column is editable, but we need to check if the record is editable\n else return this._isRecordFieldEditable(record, column);\n }\n }\n\n public addAggregation(columnName: string, aggregationFunction: AggregationFunction) {\n this._getInternalDataProvider().executeWithUnsavedChangesBlocker(() => {\n this._setAggregationDecorator(() => {\n this._totalRow.addAggregation(columnName, aggregationFunction)\n })\n })\n }\n public removeAggregation(alias: string) {\n this._getInternalDataProvider().executeWithUnsavedChangesBlocker(() => {\n this._setAggregationDecorator(() => {\n this._totalRow.removeAggregation(alias);\n })\n })\n }\n public toggleColumnGroup(columnName: string) {\n this._getInternalDataProvider().executeWithUnsavedChangesBlocker(() => {\n const column = this.getDataset().getDataProvider().getColumnsMap()[columnName]!;\n if (column.grouping?.isGrouped) {\n this._grouping.ungroupColumn(column.grouping.alias!);\n }\n else {\n this._grouping.groupColumn(column.name);\n }\n this._dataset.refresh();\n })\n }\n\n public getColumnFilter(columnName: string) {\n return this._filtering.getColumnFilter(columnName);\n }\n\n public removeColumnFilter(columnName: string, saveToDataset?: boolean) {\n this._filtering.removeColumnFilter(columnName);\n if (!saveToDataset) {\n return;\n }\n this._getInternalDataProvider().executeWithUnsavedChangesBlocker(() => {\n const filterExpression = this._filtering.getFilterExpression(FilterType.And.Value);\n if (!filterExpression) {\n throw new Error('Unexpected error when clearing column filter.');\n }\n this._dataset.filtering.setFilter(filterExpression);\n this._dataset.refresh();\n })\n }\n\n public sortColumn(columnName: string, descending?: boolean) {\n this._getInternalDataProvider().executeWithUnsavedChangesBlocker(() => {\n this._sorting.getColumnSorting(columnName).setSortValue(descending ? 1 : 0, hotkeys.getPressedKeyString().includes('⇧'));\n this._dataset.refresh();\n })\n }\n\n public clearColumnSorting(columnName: string) {\n this._getInternalDataProvider().executeWithUnsavedChangesBlocker(() => {\n this._sorting.getColumnSorting(columnName).clear();\n this._dataset.refresh();\n })\n }\n public getTotalRow() {\n return this._totalRow;\n }\n public getFiltering() {\n return this._filtering;\n }\n public isSelectionModifierKeyPressed(): boolean {\n const pressedKeys = hotkeys.getPressedKeyString().join(',');\n switch (true) {\n case pressedKeys.includes('⇧'):\n case pressedKeys.includes('ctrl'):\n case pressedKeys.includes('⌘'): {\n return true;\n }\n default: {\n return false;\n }\n }\n }\n\n public getColumnSortingLabel(columnName: string, descending?: boolean): string {\n const column = this.getDataset().getDataProvider().getColumnsMap()[columnName]!;\n switch (column.dataType) {\n case DataTypes.WholeNone:\n case DataTypes.Decimal:\n case DataTypes.WholeDuration:\n case DataTypes.Currency: {\n if (!descending) {\n return this._labels['filtersortmenu-sortnumber-a-z']()\n }\n return this._labels['filtersortmenu-sortnumber-z-a']()\n }\n case DataTypes.DateAndTimeDateAndTime:\n case DataTypes.DateAndTimeDateOnly: {\n if (!descending) {\n return this._labels['filtersortmenu-sortdate-a-z']()\n }\n return this._labels['filtersortmenu-sortdate-z-a']()\n }\n case DataTypes.TwoOptions: {\n const options = column.metadata?.OptionSet ?? [];\n if (!descending) {\n return `${options[0].Label} ${this._labels['filtersortmenu-sorttwooption-joint']()} ${options[1].Label}`\n }\n return `${options[1].Label} ${this._labels['filtersortmenu-sorttwooption-joint']()} ${options[0].Label}`\n }\n default: {\n if (!descending) {\n return this._labels['filtersortmenu-sorttext-a-z']()\n }\n return this._labels['filtersortmenu-sorttext-z-a']()\n }\n }\n\n }\n\n public destroy() {\n if (this._nestedProviderPagingLimitNotificationId) {\n window.Xrm.App.clearGlobalNotification(this._nestedProviderPagingLimitNotificationId);\n }\n hotkeys.unbind();\n }\n\n private _getInternalDataProvider(): IInternalDataProvider {\n return this.getDataset().getDataProvider() as IInternalDataProvider;\n }\n\n private _setAggregationDecorator(fn: () => void) {\n fn();\n if (this._dataset.grouping.getGroupBys().length > 0) {\n this._dataset.refresh();\n }\n else {\n this._totalRow?.refresh();\n }\n }\n\n private _getRecordValue(record: IRecord, column: IColumn | string, formatted: boolean): { value: any; aggregatedValue: any } {\n if (!record) {\n return {\n value: null,\n aggregatedValue: null\n }\n }\n const columnName = typeof column === 'string' ? column : column.name;\n column = record.getDataProvider().getColumnsMap()[columnName]!;\n if (!column) {\n return {\n value: null,\n aggregatedValue: null\n }\n }\n const method = formatted ? 'getFormattedValue' : 'getValue';\n const groupBy = record.getDataProvider().grouping.getGroupBy(column.grouping?.alias!);\n const aggregation = record.getDataProvider().aggregation.getAggregation(column.aggregation?.alias!);\n\n let value = record[method](columnName);\n let aggregatedValue = null;\n\n if (groupBy) {\n value = record[method](groupBy.alias);\n }\n if (aggregation) {\n aggregatedValue = record[method](aggregation.alias);\n }\n return {\n value: value,\n aggregatedValue: aggregatedValue\n }\n }\n\n private _isRecordFieldEditable(record: IRecord, column: IColumn): boolean {\n const columnInfo = record.getColumnInfo(column.name);\n //if editable not defined, return true since column is editable in this case\n return columnInfo?.security.editable ?? true;\n }\n\n private _isColumnRequired(column: IColumn): boolean {\n if (!this.getParameters().EnableEditing?.raw) {\n return false;\n }\n switch (column.metadata?.RequiredLevel) {\n case 1:\n case 2: {\n return true;\n }\n default: {\n return false;\n }\n }\n }\n private _isColumnSortable(column: IColumn): boolean {\n //sorting enabled by default\n if (this.getParameters().EnableSorting?.raw === false) {\n return false;\n }\n return !column.disableSorting;\n }\n private _isColumnFilterable(column: IColumn): boolean {\n //filtering enabled by default\n if (this.getParameters().EnableFiltering?.raw === false) {\n return false;\n }\n if (!column.metadata?.SupportedFilterConditionOperators || column.metadata.SupportedFilterConditionOperators.length === 0) {\n return false;\n }\n return true;\n }\n\n private _isColumnGroupable(column: IColumn): boolean {\n //grouping disabled by default\n if (this.getParameters().EnableGrouping?.raw !== true) {\n return false;\n }\n return !!column.metadata?.CanBeGrouped;\n }\n\n private _isColumnEditable(column: IColumn): boolean {\n //editing disabled by default\n if (this.getParameters().EnableEditing?.raw !== true) {\n return false;\n }\n return !!column.metadata?.IsValidForUpdate;\n }\n\n private _canColumnBeAggregated(column: IColumn): boolean {\n //aggregations disabled by default\n if (this.getParameters().EnableAggregation?.raw !== true) {\n return false;\n }\n if (!column.metadata?.SupportedAggregations || column.metadata.SupportedAggregations.length === 0) {\n return false;\n }\n return true;\n }\n\n private _registerEventListeners() {\n this._dataset.addEventListener('onAfterRecordSaved', () => this._refreshTotalRowOnAutoSave());\n this._dataset.addEventListener('onAfterSaved', () => this._totalRow.refresh());\n this._dataset.addEventListener('onNestedProviderPagingLimitReached', () => this._showNestedProviderPagingLimitNotification());\n this._setGroupingInterceptor();\n }\n\n //TODO: use control notification instead\n private async _showNestedProviderPagingLimitNotification() {\n if (!this._nestedProviderPagingLimitNotificationId) {\n this._nestedProviderPagingLimitNotificationId = await window.Xrm.App.addGlobalNotification({\n level: 4,\n message: this.getLabels()['maximumGroupChildrenLimitReached']({ maxGroupChildren: Formatting.Get().formatInteger(5000) }),\n type: 2\n });\n }\n }\n private _refreshTotalRowOnAutoSave() {\n if (this.isAutoSaveEnabled()) {\n this._totalRow.refresh()\n }\n }\n\n //this method makes sure that the grouping is only applied to the first grouping column\n //this allows for nested grouping to work correctly\n private _setGroupingInterceptor() {\n if (this.getGroupType() === 'flat') {\n return;\n }\n let originalSortedGrouping: IGroupByMetadata[] = [];\n let originalAggregation: IGroupByMetadata[] = [];\n this._dataset.addEventListener('onBeforeNewDataLoaded', () => {\n originalSortedGrouping = this._dataset.grouping.getGroupBys().sort((a, b) => {\n const colA = this._dataset.getDataProvider().getColumnsMap()[a.columnName]!;\n const colB = this._dataset.getDataProvider().getColumnsMap()[b.columnName]!;\n return colA.order! - colB.order!;\n });\n originalAggregation = this._dataset.aggregation.getAggregations();\n if (originalSortedGrouping.length > 1) {\n this._dataset.grouping.clear();\n const groupBy = originalSortedGrouping[0];\n this._dataset.grouping.addGroupBy(groupBy);\n //clear all grouping aggregations except the first one\n for (let i = 1; i < originalSortedGrouping.length; i++) {\n const column = this._dataset.getDataProvider().getColumnsMap()[originalSortedGrouping[i].columnName];\n this._dataset.aggregation.removeAggregation(column?.aggregation?.alias!);\n }\n }\n })\n this._dataset.addEventListener('onNewDataLoaded', () => {\n originalSortedGrouping.map((group) => {\n this._dataset.grouping.addGroupBy(group);\n })\n originalAggregation.map((aggr: any) => {\n this._dataset.aggregation.addAggregation(aggr);\n })\n })\n }\n\n private get _dataset() {\n return this.getDataset();\n }\n}"],"names":["FilterType"],"mappings":"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"}
|
|
@@ -163,6 +163,9 @@ class AgGridModel extends EventEmitter {
|
|
|
163
163
|
}
|
|
164
164
|
onNotifyOutputChanged(record, columnName, value, parameters) {
|
|
165
165
|
record.setValue(columnName, value);
|
|
166
|
+
if (this.getGrid().isAutoSaveEnabled()) {
|
|
167
|
+
record.save();
|
|
168
|
+
}
|
|
166
169
|
const { ShouldUnmountWhenOutputChanges } = parameters;
|
|
167
170
|
if (ShouldUnmountWhenOutputChanges?.raw) {
|
|
168
171
|
this.executeWithGridApi(gridApi => gridApi.stopEditing());
|
|
@@ -398,16 +401,10 @@ class AgGridModel extends EventEmitter {
|
|
|
398
401
|
return true;
|
|
399
402
|
}
|
|
400
403
|
else if (this._canExpandRowGroupsByDefault()) {
|
|
401
|
-
|
|
402
|
-
return true;
|
|
403
|
-
}
|
|
404
|
-
else {
|
|
405
|
-
return false;
|
|
406
|
-
}
|
|
404
|
+
return params.rowNode.level <= this._grid.getDefaultExpandedGroupLevel();
|
|
407
405
|
}
|
|
408
|
-
else
|
|
406
|
+
else
|
|
409
407
|
return false;
|
|
410
|
-
}
|
|
411
408
|
}
|
|
412
409
|
_onColumnMoved(e) {
|
|
413
410
|
const movedColumn = this._grid.getDataset().getDataProvider().getColumnsMap()[e.column?.getColId()];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgGridModel.js","sources":["../../../../../src/components/Grid/grid/ag-grid/AgGridModel.ts"],"sourcesContent":["import { CellClickedEvent, CellDoubleClickedEvent, ColDef, ColumnMovedEvent, ColumnResizedEvent, GridApi, IRowNode, IsFullWidthRowParams, IsServerSideGroupOpenByDefaultParams, ModuleRegistry, SelectionChangedEvent, SuppressKeyboardEventParams, ValueFormatterParams, ValueGetterParams } from \"@ag-grid-community/core\";\nimport debounce from 'debounce';\nimport { GridModel, IGridColumn } from \"../GridModel\";\nimport { Client, DataProvider, EventEmitter, IAddControlNotificationOptions, IColumn, IColumnInfo, IControlParameters, ICustomColumnComponent, ICustomColumnControl, ICustomColumnFormatting, IDataProvider, IRecord, Operators } from \"@talxis/client-libraries\";\nimport { NestedControl } from \"../../../NestedControlRenderer/NestedControl\";\nimport { Cell } from \"../../cells/cell/Cell\";\nimport { ColumnHeader } from \"../../column-headers/column-header/ColumnHeader\";\nimport { CHECKBOX_COLUMN_KEY } from \"../../constants\";\nimport { Comparator } from \"../ValueComparator\";\nimport { ServerSideDatasource } from \"./ServerSideDatasource\";\nimport { RecordSelectionCheckBox } from \"../../column-headers/record-selection-checkbox/RecordSelectionCheckbox\";\nimport { RowGroupingModule } from \"@ag-grid-enterprise/row-grouping\";\nimport { ServerSideRowModelModule } from \"@ag-grid-enterprise/server-side-row-model\";\nimport { ClipboardModule } from \"@ag-grid-enterprise/clipboard\";\nimport { FullRowLoading } from \"../../loading/full-row/FullRowLoading\";\nimport { FullWidthCellRendererError } from \"../../errors/FullWidthCellRendererError/FullWidthCellRendererError\";\nimport { LicenseManager } from \"@ag-grid-enterprise/core\";\nimport { SelectionCell } from \"../../cells/selection-cell/SelectionCell\";\nModuleRegistry.registerModules([RowGroupingModule, ServerSideRowModelModule, ClipboardModule,]);\n\ninterface IAgGridTestDependencies {\n grid: GridModel;\n getContainer: () => HTMLDivElement;\n}\n\nexport interface IAgGridModelEvents {\n onRefresh: () => void;\n}\n\n\nexport interface ICellValues {\n notifications: IAddControlNotificationOptions[];\n customFormatting: Required<ICustomColumnFormatting>;\n customControl: Required<ICustomColumnControl>;\n customComponent: ICustomColumnComponent;\n loading: boolean;\n value: any;\n aggregatedValue: any;\n error: boolean;\n height: number;\n errorMessage: string;\n parameters: IControlParameters;\n columnAlignment: Required<IColumn['alignment']>;\n editing: boolean;\n editable: boolean;\n disabled: boolean;\n saving: boolean;\n}\n\nexport class AgGridModel extends EventEmitter<IAgGridModelEvents> {\n private _grid: GridModel;\n private _dataSource: ServerSideDatasource;\n private _gridApi: GridApi | undefined;\n private _hasUserResizedColumns: boolean = false;\n private _getContainer: () => HTMLDivElement;\n private _debouncedColumnResized: debounce.DebouncedFunction<(e: ColumnResizedEvent<IRecord>) => void>;\n private _debouncedSetSelectedNodes: debounce.DebouncedFunction<(ids: string[]) => void>;\n private _expandedRowGroupIds: string[] = [];\n private _hasUserExpandedRowGroups: boolean = false;\n private _isLoadingNestedProviders: boolean = false;\n private _idsToAddToExpandGroupState = new Set<string>();\n private _intervals: NodeJS.Timeout[] = [];\n\n\n constructor({ grid, getContainer }: IAgGridTestDependencies) {\n super();\n this._grid = grid;\n this._getContainer = getContainer;\n this._dataSource = new ServerSideDatasource(this);\n this._debouncedColumnResized = debounce((e: ColumnResizedEvent<IRecord>) => this._onColumnResized(e));\n this._debouncedSetSelectedNodes = debounce((ids) => this._setSelectedNodes(ids), 0);\n this._localHarnessDebugSetup();\n const licenseKey = this._grid.getLicenseKey();\n if (licenseKey) {\n LicenseManager.setLicenseKey(licenseKey);\n }\n }\n\n public getColumns(gridColumns: IGridColumn[]): ColDef[] {\n if (this._grid.getDataset().grouping.getGroupBys().length > 0 && !this._grid.isGroupedColumnsPinnedEnabled()) {\n this._sortColumns(gridColumns);\n }\n const agColumns: ColDef[] = [];\n for (const column of gridColumns) {\n if (column.isHidden) {\n continue;\n }\n const agColumn: ColDef = {\n colId: column.name,\n field: column.name,\n headerName: column.displayName,\n width: column.visualSizeFactor,\n sortable: !column.disableSorting,\n lockPinned: true,\n resizable: column.isResizable,\n autoHeaderHeight: true,\n autoHeight: this._isColumnAutoHeightEnabled(column),\n suppressMovable: column.isDraggable === false ? true : false,\n pinned: this._isColumnPinned(column),\n headerComponentParams: {\n baseColumn: column\n },\n rowGroup: column.grouping?.isGrouped,\n cellRendererParams: (p: any) => {\n return {\n ...this._getCellParameters(p.data, column),\n isCellEditor: false\n }\n },\n cellEditorParams: (p: any) => {\n return {\n ...this._getCellParameters(p.data, column),\n isCellEditor: true\n }\n },\n editable: (p) => this._isCellEditorEnabled(column.name, p.data),\n equals: (valueA: ICellValues, valueB: ICellValues) => new Comparator().isEqual(valueA, valueB),\n headerComponent: ColumnHeader,\n cellRenderer: Cell,\n cellEditor: Cell,\n valueGetter: (p: ValueGetterParams<IRecord>) => this._valueGetter(p, column),\n valueFormatter: (p: ValueFormatterParams<IRecord>) => this._valueFormatter(p),\n suppressKeyboardEvent: (p) => this._suppressKeyboardEvent(p, column),\n onCellDoubleClicked: (e: CellDoubleClickedEvent<IRecord>) => this._onCellDoubleClick(e),\n }\n agColumns.push(agColumn);\n }\n if (this._grid.getSelectionType() !== 'none' || this._grid.isEditingEnabled()) {\n agColumns.unshift(this._createCheckBoxColumn())\n }\n return agColumns;\n }\n\n public executeWithGridApi(callback: (gridApi: GridApi) => void) {\n if (!this._gridApi || this._gridApi.isDestroyed()) {\n return;\n }\n return callback(this._gridApi);\n }\n\n public init(gridApi: GridApi) {\n this._gridApi = gridApi;\n this._registerEventListeners();\n this._setGridOptions();\n this._setCurrentColumns();\n if (!this._grid.getDataset().loading) {\n //we need to call this here since the events already fired before the grid api was ready\n this._onNewDataLoaded();\n this._setTotalRow();\n }\n }\n\n public getGrid(): GridModel {\n return this._grid;\n }\n\n public getSelectionType(): 'single' | 'multiple' | undefined {\n switch (this._grid.getSelectionType()) {\n case 'none': {\n return undefined;\n }\n case 'single': {\n return 'single';\n }\n case 'multiple': {\n return 'multiple';\n }\n }\n }\n\n public toggleGroup(node: IRowNode<IRecord>) {\n node.setExpanded(!node.expanded);\n //clears the expanded rows in memory so it does not interfere with the next group expansion\n this._expandedRowGroupIds = [];\n this._hasUserExpandedRowGroups = true;\n }\n\n public getRecordSelectionState(node: IRowNode<IRecord>): 'checked' | 'unchecked' | 'indeterminate' {\n const record = node.data!;\n const dataProvider = record.getDataProvider();\n const childDataProvider = dataProvider.getGroupedRecordDataProvider(record.getRecordId());\n let result: 'checked' | 'unchecked' | 'indeterminate';\n if (childDataProvider) {\n if (node.isSelected()) {\n result = 'checked';\n }\n else {\n if (childDataProvider.getSelectedRecordIds().length === 0) {\n result = 'unchecked';\n }\n else {\n result = 'indeterminate';\n }\n }\n }\n else {\n result = node.isSelected() ? 'checked' : 'unchecked';\n }\n if (record.getSummarizationType() === 'grouping') {\n if (result === 'unchecked') {\n this._idsToAddToExpandGroupState.delete(record.getRecordId());\n }\n else {\n this._idsToAddToExpandGroupState.add(record.getRecordId());\n }\n }\n return result;\n }\n\n public onNotifyOutputChanged(record: IRecord, columnName: string, value: any, parameters: any) {\n record.setValue(columnName, value);\n const { ShouldUnmountWhenOutputChanges } = parameters;\n if (ShouldUnmountWhenOutputChanges?.raw) {\n this.executeWithGridApi(gridApi => gridApi.stopEditing());\n }\n }\n\n private _localHarnessDebugSetup() {\n if (this._grid.getParameters().IsLocalHarnessDebugMode?.raw === 'true') {\n window.addEventListener('visibilitychange', () => {\n this._saveState();\n })\n }\n }\n\n private _createCheckBoxColumn(): ColDef {\n return {\n colId: DataProvider.CONST.CHECKBOX_COLUMN_KEY,\n field: DataProvider.CONST.CHECKBOX_COLUMN_KEY,\n headerName: '',\n width: 40,\n lockPinned: true,\n resizable: false,\n pinned: 'left',\n headerComponent: RecordSelectionCheckBox,\n cellRenderer: SelectionCell,\n suppressSizeToFit: true,\n suppressMovable: true,\n valueGetter: () => null,\n valueFormatter: () => '',\n cellRendererParams: (p: any) => {\n return {\n record: p.data\n }\n }\n }\n }\n\n private _sortColumns(columns: IGridColumn[]): IGridColumn[] {\n return columns.sort((a, b) => {\n // If both columns have the same grouping status, maintain original order (return 0)\n if ((a.grouping?.isGrouped || false) === (b.grouping?.isGrouped || false)) {\n return 0;\n }\n // If a is grouped, it should come first\n if (a.grouping?.isGrouped) {\n return -1;\n }\n // If b is grouped, it should come first\n if (b.grouping?.isGrouped) {\n return 1;\n }\n // Default case, should never reach here given the first condition\n return 0;\n });\n }\n\n private _onDestroyed() {\n this._intervals.forEach(interval => clearInterval(interval));\n this._saveState();\n }\n\n private _setCurrentColumns() {\n const gridColumns = this._grid.getGridColumns();\n this.executeWithGridApi(gridApi => gridApi.setGridOption('columnDefs', this.getColumns(gridColumns)));\n this._autoSizeColumns();\n }\n\n private _isColumnAutoHeightEnabled(column: IGridColumn): boolean {\n return !!column.autoHeight\n }\n\n private _onCellDoubleClick(e: CellDoubleClickedEvent<IRecord>) {\n const column = this._dataset.getDataProvider().getColumnsMap()[e.colDef.colId!]!\n switch (true) {\n case !this._grid.isNavigationEnabled():\n //do not navigate on editable columns\n case this._grid.isColumnEditable(column.name, e.data):\n //do not navigate on aggregated/grouped rows\n case e.data?.getSummarizationType() !== 'none':\n //do not navigate on checkbox column\n case column.name === DataProvider.CONST.CHECKBOX_COLUMN_KEY: {\n break;\n }\n default: {\n const record = e.data!;\n record.getDataProvider().openDatasetItem(record.getNamedReference());\n }\n }\n }\n\n private _saveState() {\n this.executeWithGridApi(gridApi => {\n const { rowSelection, columnOrder, ...gridState } = gridApi.getState();\n const selectedGroupIds = this._grid.getDataset().getSelectedRecordIds({ includeGroupRecordIds: true }).filter(id => id.startsWith(DataProvider.CONST.GROUP_PREFIX));\n const expandedRowGroupIds = new Set<string>([...selectedGroupIds, ...this._idsToAddToExpandGroupState.values()]);\n if (expandedRowGroupIds.size > 0) {\n gridState.rowGroupExpansion = {\n expandedRowGroupIds: [...expandedRowGroupIds.values()]\n }\n }\n const state = this.getGrid().getState() || {};\n state.AgGridState = gridState;\n this.getGrid().getPcfContext().mode.setControlState(state);\n });\n }\n\n private _isColumnPinned(column: IGridColumn) {\n switch (true) {\n case column.grouping?.isGrouped && this._grid.isGroupedColumnsPinnedEnabled(): {\n return true;\n }\n default: {\n return false;\n }\n }\n }\n\n private _getCellParameters(record: IRecord, column: IGridColumn) {\n return {\n baseColumn: column,\n record: record\n }\n }\n\n private _scrollToTop() {\n this.executeWithGridApi(gridApi => gridApi.ensureIndexVisible(0, 'top'));\n }\n\n private _canExpandRowGroupsByDefault(): boolean {\n if (this._hasUserExpandedRowGroups) {\n return false;\n }\n else {\n return true;\n }\n }\n\n private _suppressKeyboardEvent(params: SuppressKeyboardEventParams<IRecord, any>, column: IGridColumn): boolean {\n if (column.oneClickEdit) {\n return true;\n }\n return false;\n }\n\n private _registerEventListeners() {\n this._dataset.addEventListener('onLoading', (isLoading: boolean) => this._setLoadingOverlay(this._dataset.loading));\n this._dataset.addEventListener('onRecordsSelected', (ids: string[]) => this._debouncedSetSelectedNodes(ids));\n this._dataset.addEventListener('onNewDataLoaded', () => this._onNewDataLoaded());\n this._dataset.addEventListener('onRenderRequested', () => this.executeWithGridApi(gridApi => gridApi.refreshCells()));\n this._dataset.addEventListener('onFirstDataLoaded', () => this._setTotalRow());\n this.executeWithGridApi(gridApi => {\n gridApi.addEventListener('gridSizeChanged', () => this._autoSizeColumns());\n gridApi.addEventListener('firstDataRendered', () => this._autoSizeColumns());\n gridApi.addEventListener('selectionChanged', (e: SelectionChangedEvent) => this._onSelectionChanged(e));\n gridApi.addEventListener('columnResized', (e: any) => this._debouncedColumnResized(e));\n gridApi.addEventListener('modelUpdated', () => {\n if (this._grid.getDataset().loading) {\n this._setLoadingOverlay(true);\n }\n this._setGridHeight();\n });\n gridApi.addEventListener('columnMoved', (e: ColumnMovedEvent<IRecord>) => this._onColumnMoved(e));\n gridApi.addEventListener('firstDataRendered', () => this._handleSelectionFromState());\n gridApi.addEventListener('gridPreDestroyed', () => this._onDestroyed());\n });\n }\n\n private _setTotalRow() {\n const totalRowDataProvider = this._grid.getTotalRow().getDataProvider();\n totalRowDataProvider.addEventListener('onLoading', () => this._setPinnedRowData());\n totalRowDataProvider.addEventListener('onError', () => this._setPinnedRowData());\n this._setPinnedRowData();\n }\n\n private _setGridOptions() {\n this.executeWithGridApi(gridApi => {\n gridApi.setGridOption('serverSideDatasource', this._dataSource);\n gridApi.setGridOption('isServerSideGroupOpenByDefault', (params) => this._syncExpandedRowGroups(params));\n gridApi.setGridOption('loadingCellRenderer', FullRowLoading)\n gridApi.setGridOption('suppressDragLeaveHidesColumns', true);\n gridApi.setGridOption('isFullWidthRow', (params) => this._isFullWidthRow(params));\n gridApi.setGridOption('fullWidthCellRenderer', FullWidthCellRendererError);\n gridApi.setGridOption('fullWidthCellRendererParams', (params: IsFullWidthRowParams<IRecord>) => this._getFullWidthCellRendererParams(params))\n gridApi.setGridOption('suppressCopyRowsToClipboard', true);\n gridApi.setGridOption('animateRows', false);\n gridApi.setGridOption('groupDisplayType', 'custom');\n });\n }\n\n private _isFullWidthRow(params: IsFullWidthRowParams<IRecord>): boolean {\n const provider = params.rowNode.data?.getDataProvider();\n switch (true) {\n case provider?.getSummarizationType() === 'aggregation' && provider.isError(): {\n return true;\n }\n default: {\n return false;\n }\n }\n }\n\n //this should only be triggered when we load the grid with some item pre-selected from state\n //e.g. navigating to a record and coming back to the grid\n private _handleSelectionFromState() {\n const selectedRecordIds = this._grid.getDataset().getSelectedRecordIds();\n this._grid.getDataset().clearSelectedRecordIds();\n let isScrolledToMiddle = false;\n const localIntervals: NodeJS.Timeout[] = [];\n const resolvedProviderSet = new Set<IDataProvider>();\n for (const id of selectedRecordIds) {\n const interval = setInterval(() => {\n const record = this._grid.getDataset().getDataProvider().getRecordsMap()[id];\n if (record) {\n clearInterval(interval);\n const provider = record.getDataProvider();\n if (!resolvedProviderSet.has(provider)) {\n const recordIdsToSelect = selectedRecordIds.filter(id => provider.getRecordsMap()[id])\n provider.setSelectedRecordIds(recordIdsToSelect);\n resolvedProviderSet.add(provider);\n }\n if (!isScrolledToMiddle) {\n const middleSelectedRecordId = selectedRecordIds[Math.floor(selectedRecordIds.length / 2)]\n this.executeWithGridApi(gridApi => {\n const node = gridApi.getRowNode(middleSelectedRecordId);\n if (node) {\n isScrolledToMiddle = true;\n gridApi.ensureNodeVisible(node!, 'middle');\n }\n });\n }\n }\n }, 100);\n localIntervals.push(interval);\n this._intervals.push(interval);\n }\n //abandon the selection after 5 seconds\n //this could be done better by detecting if we are done loading all providers\n setTimeout(() => {\n localIntervals.forEach(interval => clearInterval(interval));\n }, 5000);\n }\n\n private _getFullWidthCellRendererParams(params: IsFullWidthRowParams<IRecord>) {\n //@ts-ignore - typings seem to be incorrect\n const provider = params.node.data?.getDataProvider()\n return {\n errorMessage: provider?.getErrorMessage()\n }\n }\n\n private _syncExpandedRowGroups(params: IsServerSideGroupOpenByDefaultParams): boolean {\n if (this._expandedRowGroupIds.includes(params.rowNode.id!)) {\n return true\n }\n else if (this._canExpandRowGroupsByDefault()) {\n if (params.rowNode.level <= this._grid.getDefaultExpandedGroupLevel()) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n }\n\n private _onColumnMoved(e: ColumnMovedEvent<IRecord>) {\n const movedColumn = this._grid.getDataset().getDataProvider().getColumnsMap()[e.column?.getColId()!];\n if (!e.finished || e.source !== 'uiColumnMoved') {\n return;\n }\n let order = 0;\n const newColumnsMap = new Map<string, IColumn>(this._grid.getDataset().columns.map(col => [col.name, col]));\n for (const colId of e.api.getState().columnOrder?.orderedColIds!) {\n if (newColumnsMap.has(colId)) {\n newColumnsMap.set(colId, { ...newColumnsMap.get(colId)!, order: order++ });\n }\n }\n this._dataset.setColumns([...newColumnsMap.values()]);\n if (movedColumn?.grouping?.isGrouped) {\n this._dataset.refresh();\n }\n }\n\n private _onNewDataLoaded() {\n this._refreshServerSideModel();\n this._setCurrentColumns();\n this._setNoRowsOverlay();\n this._scrollToTop();\n }\n\n private _refreshServerSideModel() {\n this.executeWithGridApi(gridApi => {\n this._expandedRowGroupIds = gridApi.getState()?.rowGroupExpansion?.expandedRowGroupIds ?? [];\n gridApi.refreshServerSide({\n purge: true\n })\n });\n }\n\n private _calculateGridHeight(): string {\n const defaultRowHeight = this._grid.getDefaultRowHeight();\n let offset = 35;\n if (this._dataset.grouping.getGroupBys().length > 0) {\n offset += 30;\n }\n if (this._grid.getParameters().Height?.raw) {\n return this._grid.getParameters().Height!.raw!;\n }\n else {\n let totalRowHeight = 0;\n let numberOfRecords = 0;\n this.executeWithGridApi(gridApi => {\n const renderedNodes = gridApi.getRenderedNodes();\n totalRowHeight = renderedNodes.reduce((acc, node) => acc + (node.rowHeight ?? defaultRowHeight), 0);\n numberOfRecords = renderedNodes.length;\n });\n if (numberOfRecords <= 15) {\n const headerHeight = this._getContainer().querySelector('.ag-header-row')?.clientHeight ?? 0;\n return `${totalRowHeight + headerHeight + offset}px`;\n }\n else {\n return `${defaultRowHeight * 17 + offset}px`;\n }\n }\n }\n private _setGridHeight() {\n setTimeout(() => {\n const container = this._getContainer();\n if (container) {\n container.style.height = this._calculateGridHeight();\n }\n }, 100);\n }\n\n private _onColumnResized(e: ColumnResizedEvent<IRecord>) {\n if (e.source === 'uiColumnResized') {\n this._hasUserResizedColumns = true;\n this._updateColumnVisualSizeFactor(e);\n }\n }\n\n private _autoSizeColumns() {\n if (this._hasUserResizedColumns) {\n return;\n }\n this.executeWithGridApi(gridApi => {\n gridApi.sizeColumnsToFit({\n columnLimits: this._grid.getDataset().columns.map(col => {\n return {\n key: col.name,\n minWidth: col.visualSizeFactor\n }\n })\n });\n });\n }\n\n private _updateColumnVisualSizeFactor(e: ColumnResizedEvent<IRecord>) {\n const resizedColumnKey = e.column?.getColId();\n if (!resizedColumnKey) {\n return;\n }\n const columns = this._grid.getDataset().columns; const newColumns = columns.map(col => {\n if (col.name === resizedColumnKey) {\n return {\n ...col,\n visualSizeFactor: e.column?.getActualWidth()!\n }\n }\n return col;\n })\n this._grid.getDataset().setColumns(newColumns);\n }\n\n private _onSelectionChanged(e: SelectionChangedEvent<IRecord>) {\n switch (true) {\n case e.source === 'api':\n case e.source === 'apiSelectAll': {\n return;\n }\n }\n let selectedNodes: IRowNode<IRecord>[] = [];\n this.executeWithGridApi(gridApi => {\n selectedNodes = gridApi.getSelectedNodes();\n });\n //if we click a grouped record, do not propagate the selection to children\n const providerSelectedRecordIdsMap = new Map<IDataProvider, string[]>();\n selectedNodes.map(node => {\n const record = node.data!;\n const provider = record.getDataProvider();\n if (!providerSelectedRecordIdsMap.has(provider)) {\n providerSelectedRecordIdsMap.set(provider, []);\n }\n providerSelectedRecordIdsMap.get(provider)!.push(record.getRecordId());\n })\n providerSelectedRecordIdsMap.forEach((ids, provider) => {\n provider.setSelectedRecordIds(ids);\n });\n }\n\n private async _setSelectedNodes(ids: string[]) {\n //interval to prevent infinite loading\n const checkLoadingNestedProviders = setInterval(() => {\n if (this._isLoadingNestedProviders && !this._areChildProvidersLoading()) {\n this._isLoadingNestedProviders = false;\n this._dataset.getDataProvider().setLoading(false);\n clearInterval(checkLoadingNestedProviders);\n }\n }, 500);\n this._intervals.push(checkLoadingNestedProviders);\n if (!this._isLoadingNestedProviders && this._areChildProvidersLoading()) {\n this._isLoadingNestedProviders = true;\n this._dataset.getDataProvider().setLoading(true);\n }\n else if (this._isLoadingNestedProviders && !this._areChildProvidersLoading()) {\n this._isLoadingNestedProviders = false;\n this._dataset.getDataProvider().setLoading(false);\n clearInterval(checkLoadingNestedProviders);\n }\n this.executeWithGridApi(gridApi => {\n gridApi.setServerSideSelectionState({\n selectAll: false,\n toggledNodes: this._grid.getDataset().getDataProvider().getSelectedRecordIds({ includeGroupRecordIds: true })\n })\n gridApi.refreshCells({\n columns: [CHECKBOX_COLUMN_KEY],\n force: true\n })\n });\n }\n\n private _areChildProvidersLoading(): boolean {\n const childProviders = this._dataset.getDataProvider().getGroupedRecordDataProviders(true).filter(x => x.getParentRecordId());\n return childProviders.some(provider => provider.isLoading());\n }\n\n private _valueFormatter(p: ValueFormatterParams<IRecord>): string {\n const formattedValue = this._grid.getRecordFormattedValue(p.data!, p.colDef.colId!);\n return formattedValue.value ?? formattedValue.aggregatedValue;\n }\n\n private _valueGetter(p: ValueGetterParams<IRecord>, column: IGridColumn) {\n const record = p.data!;\n let editing: boolean = false;\n const columnInfo = record.getColumnInfo(column.name) as IColumnInfo;\n //i hate this, there is no other way to get the information if we are in edit mode or not\n if (Error().stack!.includes('startEditing')) {\n editing = true;\n }\n const customControl = this._grid.getControl(column, record, editing || !!column.oneClickEdit);\n\n const control = new NestedControl({\n onGetBindings: () => this._grid.getBindings(record, column, customControl),\n parentPcfContext: this._grid.getPcfContext(),\n });\n const parameters = columnInfo.ui.getControlParameters({\n ...this._grid.getFieldBindingParameters(record, column, editing),\n ...control.getParameters(),\n })\n if (column.oneClickEdit && record.getSummarizationType() === 'none') {\n editing = true;\n }\n const value = this._grid.getRecordValue(record, column);\n return {\n notifications: columnInfo.ui.getNotifications(),\n value: value.value,\n customFormatting: this._grid.getFieldFormatting(record, column.name),\n customControl: customControl,\n error: columnInfo.error,\n aggregatedValue: value.aggregatedValue,\n loading: columnInfo.ui.isLoading(),\n errorMessage: columnInfo.errorMessage,\n editable: columnInfo.security.editable,\n editing: editing,\n parameters: parameters,\n saving: record.isSaving(),\n columnAlignment: column.alignment,\n customComponent: columnInfo.ui.getCustomControlComponent()\n } as ICellValues;\n }\n\n private _setPinnedRowData() {\n const totalRecord = this._grid.getTotalRow().getTotalRowRecord();\n this.executeWithGridApi(gridApi => gridApi.setGridOption('pinnedBottomRowData', totalRecord ? [totalRecord] : []));\n }\n\n private _setLoadingOverlay(isLoading: boolean) {\n if (!isLoading) {\n return this.executeWithGridApi(gridApi => gridApi.hideOverlay());\n }\n this.executeWithGridApi(gridApi => gridApi.showLoadingOverlay());\n }\n\n private _setNoRowsOverlay() {\n setTimeout(() => {\n if (this._grid.getDataset().loading) {\n return;\n }\n this.executeWithGridApi(gridApi => {\n gridApi.hideOverlay();\n if (this._grid.getDataset().getDataProvider().getRecords().length === 0) {\n gridApi.showNoRowsOverlay();\n }\n });\n }, 0);\n }\n\n private _isCellEditorEnabled(columnName: string, record: IRecord): boolean {\n\n const column = this._grid.getGridColumnByName(columnName); // check column eligibility for cell editor\n switch (true) {\n //never allow cell editor for oneClickEdit - everything is handled by cell renderer in this case\n case column.oneClickEdit:\n //never allow cell editor for non-editable columns\n case !column.isEditable: {\n return false;\n }\n }\n return record.getColumnInfo(column.name).security.editable;\n }\n\n private get _dataset() {\n return this._grid.getDataset();\n }\n}"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AgGridModel.js","sources":["../../../../../src/components/Grid/grid/ag-grid/AgGridModel.ts"],"sourcesContent":["import { CellClickedEvent, CellDoubleClickedEvent, ColDef, ColumnMovedEvent, ColumnResizedEvent, GridApi, IRowNode, IsFullWidthRowParams, IsServerSideGroupOpenByDefaultParams, ModuleRegistry, SelectionChangedEvent, SuppressKeyboardEventParams, ValueFormatterParams, ValueGetterParams } from \"@ag-grid-community/core\";\nimport debounce from 'debounce';\nimport { GridModel, IGridColumn } from \"../GridModel\";\nimport { Client, DataProvider, EventEmitter, IAddControlNotificationOptions, IColumn, IColumnInfo, IControlParameters, ICustomColumnComponent, ICustomColumnControl, ICustomColumnFormatting, IDataProvider, IRecord, Operators } from \"@talxis/client-libraries\";\nimport { NestedControl } from \"../../../NestedControlRenderer/NestedControl\";\nimport { Cell } from \"../../cells/cell/Cell\";\nimport { ColumnHeader } from \"../../column-headers/column-header/ColumnHeader\";\nimport { CHECKBOX_COLUMN_KEY } from \"../../constants\";\nimport { Comparator } from \"../ValueComparator\";\nimport { ServerSideDatasource } from \"./ServerSideDatasource\";\nimport { RecordSelectionCheckBox } from \"../../column-headers/record-selection-checkbox/RecordSelectionCheckbox\";\nimport { RowGroupingModule } from \"@ag-grid-enterprise/row-grouping\";\nimport { ServerSideRowModelModule } from \"@ag-grid-enterprise/server-side-row-model\";\nimport { ClipboardModule } from \"@ag-grid-enterprise/clipboard\";\nimport { FullRowLoading } from \"../../loading/full-row/FullRowLoading\";\nimport { FullWidthCellRendererError } from \"../../errors/FullWidthCellRendererError/FullWidthCellRendererError\";\nimport { LicenseManager } from \"@ag-grid-enterprise/core\";\nimport { SelectionCell } from \"../../cells/selection-cell/SelectionCell\";\nModuleRegistry.registerModules([RowGroupingModule, ServerSideRowModelModule, ClipboardModule,]);\n\ninterface IAgGridTestDependencies {\n grid: GridModel;\n getContainer: () => HTMLDivElement;\n}\n\nexport interface IAgGridModelEvents {\n onRefresh: () => void;\n}\n\n\nexport interface ICellValues {\n notifications: IAddControlNotificationOptions[];\n customFormatting: Required<ICustomColumnFormatting>;\n customControl: Required<ICustomColumnControl>;\n customComponent: ICustomColumnComponent;\n loading: boolean;\n value: any;\n aggregatedValue: any;\n error: boolean;\n height: number;\n errorMessage: string;\n parameters: IControlParameters;\n columnAlignment: Required<IColumn['alignment']>;\n editing: boolean;\n editable: boolean;\n disabled: boolean;\n saving: boolean;\n}\n\nexport class AgGridModel extends EventEmitter<IAgGridModelEvents> {\n private _grid: GridModel;\n private _dataSource: ServerSideDatasource;\n private _gridApi: GridApi | undefined;\n private _hasUserResizedColumns: boolean = false;\n private _getContainer: () => HTMLDivElement;\n private _debouncedColumnResized: debounce.DebouncedFunction<(e: ColumnResizedEvent<IRecord>) => void>;\n private _debouncedSetSelectedNodes: debounce.DebouncedFunction<(ids: string[]) => void>;\n private _expandedRowGroupIds: string[] = [];\n private _hasUserExpandedRowGroups: boolean = false;\n private _isLoadingNestedProviders: boolean = false;\n private _idsToAddToExpandGroupState = new Set<string>();\n private _intervals: NodeJS.Timeout[] = [];\n\n\n constructor({ grid, getContainer }: IAgGridTestDependencies) {\n super();\n this._grid = grid;\n this._getContainer = getContainer;\n this._dataSource = new ServerSideDatasource(this);\n this._debouncedColumnResized = debounce((e: ColumnResizedEvent<IRecord>) => this._onColumnResized(e));\n this._debouncedSetSelectedNodes = debounce((ids) => this._setSelectedNodes(ids), 0);\n this._localHarnessDebugSetup();\n const licenseKey = this._grid.getLicenseKey();\n if (licenseKey) {\n LicenseManager.setLicenseKey(licenseKey);\n }\n }\n\n public getColumns(gridColumns: IGridColumn[]): ColDef[] {\n if (this._grid.getDataset().grouping.getGroupBys().length > 0 && !this._grid.isGroupedColumnsPinnedEnabled()) {\n this._sortColumns(gridColumns);\n }\n const agColumns: ColDef[] = [];\n for (const column of gridColumns) {\n if (column.isHidden) {\n continue;\n }\n const agColumn: ColDef = {\n colId: column.name,\n field: column.name,\n headerName: column.displayName,\n width: column.visualSizeFactor,\n sortable: !column.disableSorting,\n lockPinned: true,\n resizable: column.isResizable,\n autoHeaderHeight: true,\n autoHeight: this._isColumnAutoHeightEnabled(column),\n suppressMovable: column.isDraggable === false ? true : false,\n pinned: this._isColumnPinned(column),\n headerComponentParams: {\n baseColumn: column\n },\n rowGroup: column.grouping?.isGrouped,\n cellRendererParams: (p: any) => {\n return {\n ...this._getCellParameters(p.data, column),\n isCellEditor: false\n }\n },\n cellEditorParams: (p: any) => {\n return {\n ...this._getCellParameters(p.data, column),\n isCellEditor: true\n }\n },\n editable: (p) => this._isCellEditorEnabled(column.name, p.data),\n equals: (valueA: ICellValues, valueB: ICellValues) => new Comparator().isEqual(valueA, valueB),\n headerComponent: ColumnHeader,\n cellRenderer: Cell,\n cellEditor: Cell,\n valueGetter: (p: ValueGetterParams<IRecord>) => this._valueGetter(p, column),\n valueFormatter: (p: ValueFormatterParams<IRecord>) => this._valueFormatter(p),\n suppressKeyboardEvent: (p) => this._suppressKeyboardEvent(p, column),\n onCellDoubleClicked: (e: CellDoubleClickedEvent<IRecord>) => this._onCellDoubleClick(e),\n }\n agColumns.push(agColumn);\n }\n if (this._grid.getSelectionType() !== 'none' || this._grid.isEditingEnabled()) {\n agColumns.unshift(this._createCheckBoxColumn())\n }\n return agColumns;\n }\n\n public executeWithGridApi(callback: (gridApi: GridApi) => void) {\n if (!this._gridApi || this._gridApi.isDestroyed()) {\n return;\n }\n return callback(this._gridApi);\n }\n\n public init(gridApi: GridApi) {\n this._gridApi = gridApi;\n this._registerEventListeners();\n this._setGridOptions();\n this._setCurrentColumns();\n if (!this._grid.getDataset().loading) {\n //we need to call this here since the events already fired before the grid api was ready\n this._onNewDataLoaded();\n this._setTotalRow();\n }\n }\n\n public getGrid(): GridModel {\n return this._grid;\n }\n\n public getSelectionType(): 'single' | 'multiple' | undefined {\n switch (this._grid.getSelectionType()) {\n case 'none': {\n return undefined;\n }\n case 'single': {\n return 'single';\n }\n case 'multiple': {\n return 'multiple';\n }\n }\n }\n\n public toggleGroup(node: IRowNode<IRecord>) {\n node.setExpanded(!node.expanded);\n //clears the expanded rows in memory so it does not interfere with the next group expansion\n this._expandedRowGroupIds = [];\n this._hasUserExpandedRowGroups = true;\n }\n\n public getRecordSelectionState(node: IRowNode<IRecord>): 'checked' | 'unchecked' | 'indeterminate' {\n const record = node.data!;\n const dataProvider = record.getDataProvider();\n const childDataProvider = dataProvider.getGroupedRecordDataProvider(record.getRecordId());\n let result: 'checked' | 'unchecked' | 'indeterminate';\n if (childDataProvider) {\n if (node.isSelected()) {\n result = 'checked';\n }\n else {\n if (childDataProvider.getSelectedRecordIds().length === 0) {\n result = 'unchecked';\n }\n else {\n result = 'indeterminate';\n }\n }\n }\n else {\n result = node.isSelected() ? 'checked' : 'unchecked';\n }\n if (record.getSummarizationType() === 'grouping') {\n if (result === 'unchecked') {\n this._idsToAddToExpandGroupState.delete(record.getRecordId());\n }\n else {\n this._idsToAddToExpandGroupState.add(record.getRecordId());\n }\n }\n return result;\n }\n\n public onNotifyOutputChanged(record: IRecord, columnName: string, value: any, parameters: any) {\n record.setValue(columnName, value);\n if(this.getGrid().isAutoSaveEnabled()) {\n record.save();\n }\n const { ShouldUnmountWhenOutputChanges } = parameters;\n if (ShouldUnmountWhenOutputChanges?.raw) {\n this.executeWithGridApi(gridApi => gridApi.stopEditing());\n }\n }\n\n private _localHarnessDebugSetup() {\n if (this._grid.getParameters().IsLocalHarnessDebugMode?.raw === 'true') {\n window.addEventListener('visibilitychange', () => {\n this._saveState();\n })\n }\n }\n\n private _createCheckBoxColumn(): ColDef {\n return {\n colId: DataProvider.CONST.CHECKBOX_COLUMN_KEY,\n field: DataProvider.CONST.CHECKBOX_COLUMN_KEY,\n headerName: '',\n width: 40,\n lockPinned: true,\n resizable: false,\n pinned: 'left',\n headerComponent: RecordSelectionCheckBox,\n cellRenderer: SelectionCell,\n suppressSizeToFit: true,\n suppressMovable: true,\n valueGetter: () => null,\n valueFormatter: () => '',\n cellRendererParams: (p: any) => {\n return {\n record: p.data\n }\n }\n }\n }\n\n private _sortColumns(columns: IGridColumn[]): IGridColumn[] {\n return columns.sort((a, b) => {\n // If both columns have the same grouping status, maintain original order (return 0)\n if ((a.grouping?.isGrouped || false) === (b.grouping?.isGrouped || false)) {\n return 0;\n }\n // If a is grouped, it should come first\n if (a.grouping?.isGrouped) {\n return -1;\n }\n // If b is grouped, it should come first\n if (b.grouping?.isGrouped) {\n return 1;\n }\n // Default case, should never reach here given the first condition\n return 0;\n });\n }\n\n private _onDestroyed() {\n this._intervals.forEach(interval => clearInterval(interval));\n this._saveState();\n }\n\n private _setCurrentColumns() {\n const gridColumns = this._grid.getGridColumns();\n this.executeWithGridApi(gridApi => gridApi.setGridOption('columnDefs', this.getColumns(gridColumns)));\n this._autoSizeColumns();\n }\n\n private _isColumnAutoHeightEnabled(column: IGridColumn): boolean {\n return !!column.autoHeight\n }\n\n private _onCellDoubleClick(e: CellDoubleClickedEvent<IRecord>) {\n const column = this._dataset.getDataProvider().getColumnsMap()[e.colDef.colId!]!\n switch (true) {\n case !this._grid.isNavigationEnabled():\n //do not navigate on editable columns\n case this._grid.isColumnEditable(column.name, e.data):\n //do not navigate on aggregated/grouped rows\n case e.data?.getSummarizationType() !== 'none':\n //do not navigate on checkbox column\n case column.name === DataProvider.CONST.CHECKBOX_COLUMN_KEY: {\n break;\n }\n default: {\n const record = e.data!;\n record.getDataProvider().openDatasetItem(record.getNamedReference());\n }\n }\n }\n\n private _saveState() {\n this.executeWithGridApi(gridApi => {\n const { rowSelection, columnOrder, ...gridState } = gridApi.getState();\n const selectedGroupIds = this._grid.getDataset().getSelectedRecordIds({ includeGroupRecordIds: true }).filter(id => id.startsWith(DataProvider.CONST.GROUP_PREFIX));\n const expandedRowGroupIds = new Set<string>([...selectedGroupIds, ...this._idsToAddToExpandGroupState.values()]);\n if (expandedRowGroupIds.size > 0) {\n gridState.rowGroupExpansion = {\n expandedRowGroupIds: [...expandedRowGroupIds.values()]\n }\n }\n const state = this.getGrid().getState() || {};\n state.AgGridState = gridState;\n this.getGrid().getPcfContext().mode.setControlState(state);\n });\n }\n\n private _isColumnPinned(column: IGridColumn) {\n switch (true) {\n case column.grouping?.isGrouped && this._grid.isGroupedColumnsPinnedEnabled(): {\n return true;\n }\n default: {\n return false;\n }\n }\n }\n\n private _getCellParameters(record: IRecord, column: IGridColumn) {\n return {\n baseColumn: column,\n record: record\n }\n }\n\n private _scrollToTop() {\n this.executeWithGridApi(gridApi => gridApi.ensureIndexVisible(0, 'top'));\n }\n\n private _canExpandRowGroupsByDefault(): boolean {\n if (this._hasUserExpandedRowGroups) {\n return false;\n }\n else {\n return true;\n }\n }\n\n private _suppressKeyboardEvent(params: SuppressKeyboardEventParams<IRecord, any>, column: IGridColumn): boolean {\n if (column.oneClickEdit) {\n return true;\n }\n return false;\n }\n\n private _registerEventListeners() {\n this._dataset.addEventListener('onLoading', (isLoading: boolean) => this._setLoadingOverlay(this._dataset.loading));\n this._dataset.addEventListener('onRecordsSelected', (ids: string[]) => this._debouncedSetSelectedNodes(ids));\n this._dataset.addEventListener('onNewDataLoaded', () => this._onNewDataLoaded());\n this._dataset.addEventListener('onRenderRequested', () => this.executeWithGridApi(gridApi => gridApi.refreshCells()));\n this._dataset.addEventListener('onFirstDataLoaded', () => this._setTotalRow());\n this.executeWithGridApi(gridApi => {\n gridApi.addEventListener('gridSizeChanged', () => this._autoSizeColumns());\n gridApi.addEventListener('firstDataRendered', () => this._autoSizeColumns());\n gridApi.addEventListener('selectionChanged', (e: SelectionChangedEvent) => this._onSelectionChanged(e));\n gridApi.addEventListener('columnResized', (e: any) => this._debouncedColumnResized(e));\n gridApi.addEventListener('modelUpdated', () => {\n if (this._grid.getDataset().loading) {\n this._setLoadingOverlay(true);\n }\n this._setGridHeight();\n });\n gridApi.addEventListener('columnMoved', (e: ColumnMovedEvent<IRecord>) => this._onColumnMoved(e));\n gridApi.addEventListener('firstDataRendered', () => this._handleSelectionFromState());\n gridApi.addEventListener('gridPreDestroyed', () => this._onDestroyed());\n });\n }\n\n private _setTotalRow() {\n const totalRowDataProvider = this._grid.getTotalRow().getDataProvider();\n totalRowDataProvider.addEventListener('onLoading', () => this._setPinnedRowData());\n totalRowDataProvider.addEventListener('onError', () => this._setPinnedRowData());\n this._setPinnedRowData();\n }\n\n private _setGridOptions() {\n this.executeWithGridApi(gridApi => {\n gridApi.setGridOption('serverSideDatasource', this._dataSource);\n gridApi.setGridOption('isServerSideGroupOpenByDefault', (params) => this._syncExpandedRowGroups(params));\n gridApi.setGridOption('loadingCellRenderer', FullRowLoading)\n gridApi.setGridOption('suppressDragLeaveHidesColumns', true);\n gridApi.setGridOption('isFullWidthRow', (params) => this._isFullWidthRow(params));\n gridApi.setGridOption('fullWidthCellRenderer', FullWidthCellRendererError);\n gridApi.setGridOption('fullWidthCellRendererParams', (params: IsFullWidthRowParams<IRecord>) => this._getFullWidthCellRendererParams(params))\n gridApi.setGridOption('suppressCopyRowsToClipboard', true);\n gridApi.setGridOption('animateRows', false);\n gridApi.setGridOption('groupDisplayType', 'custom');\n });\n }\n\n private _isFullWidthRow(params: IsFullWidthRowParams<IRecord>): boolean {\n const provider = params.rowNode.data?.getDataProvider();\n switch (true) {\n case provider?.getSummarizationType() === 'aggregation' && provider.isError(): {\n return true;\n }\n default: {\n return false;\n }\n }\n }\n\n //this should only be triggered when we load the grid with some item pre-selected from state\n //e.g. navigating to a record and coming back to the grid\n private _handleSelectionFromState() {\n const selectedRecordIds = this._grid.getDataset().getSelectedRecordIds();\n this._grid.getDataset().clearSelectedRecordIds();\n let isScrolledToMiddle = false;\n const localIntervals: NodeJS.Timeout[] = [];\n const resolvedProviderSet = new Set<IDataProvider>();\n for (const id of selectedRecordIds) {\n const interval = setInterval(() => {\n const record = this._grid.getDataset().getDataProvider().getRecordsMap()[id];\n if (record) {\n clearInterval(interval);\n const provider = record.getDataProvider();\n if (!resolvedProviderSet.has(provider)) {\n const recordIdsToSelect = selectedRecordIds.filter(id => provider.getRecordsMap()[id])\n provider.setSelectedRecordIds(recordIdsToSelect);\n resolvedProviderSet.add(provider);\n }\n if (!isScrolledToMiddle) {\n const middleSelectedRecordId = selectedRecordIds[Math.floor(selectedRecordIds.length / 2)]\n this.executeWithGridApi(gridApi => {\n const node = gridApi.getRowNode(middleSelectedRecordId);\n if (node) {\n isScrolledToMiddle = true;\n gridApi.ensureNodeVisible(node!, 'middle');\n }\n });\n }\n }\n }, 100);\n localIntervals.push(interval);\n this._intervals.push(interval);\n }\n //abandon the selection after 5 seconds\n //this could be done better by detecting if we are done loading all providers\n setTimeout(() => {\n localIntervals.forEach(interval => clearInterval(interval));\n }, 5000);\n }\n\n private _getFullWidthCellRendererParams(params: IsFullWidthRowParams<IRecord>) {\n //@ts-ignore - typings seem to be incorrect\n const provider = params.node.data?.getDataProvider()\n return {\n errorMessage: provider?.getErrorMessage()\n }\n }\n\n private _syncExpandedRowGroups(params: IsServerSideGroupOpenByDefaultParams): boolean {\n if (this._expandedRowGroupIds.includes(params.rowNode.id!)) {\n return true\n }\n else if (this._canExpandRowGroupsByDefault()) {\n return params.rowNode.level <= this._grid.getDefaultExpandedGroupLevel();\n }\n else return false;\n }\n\n private _onColumnMoved(e: ColumnMovedEvent<IRecord>) {\n const movedColumn = this._grid.getDataset().getDataProvider().getColumnsMap()[e.column?.getColId()!];\n if (!e.finished || e.source !== 'uiColumnMoved') {\n return;\n }\n let order = 0;\n const newColumnsMap = new Map<string, IColumn>(this._grid.getDataset().columns.map(col => [col.name, col]));\n for (const colId of e.api.getState().columnOrder?.orderedColIds!) {\n if (newColumnsMap.has(colId)) {\n newColumnsMap.set(colId, { ...newColumnsMap.get(colId)!, order: order++ });\n }\n }\n this._dataset.setColumns([...newColumnsMap.values()]);\n if (movedColumn?.grouping?.isGrouped) {\n this._dataset.refresh();\n }\n }\n\n private _onNewDataLoaded() {\n this._refreshServerSideModel();\n this._setCurrentColumns();\n this._setNoRowsOverlay();\n this._scrollToTop();\n }\n\n private _refreshServerSideModel() {\n this.executeWithGridApi(gridApi => {\n this._expandedRowGroupIds = gridApi.getState()?.rowGroupExpansion?.expandedRowGroupIds ?? [];\n gridApi.refreshServerSide({\n purge: true\n })\n });\n }\n\n private _calculateGridHeight(): string {\n const defaultRowHeight = this._grid.getDefaultRowHeight();\n let offset = 35;\n if (this._dataset.grouping.getGroupBys().length > 0) {\n offset += 30;\n }\n if (this._grid.getParameters().Height?.raw) {\n return this._grid.getParameters().Height!.raw!;\n }\n else {\n let totalRowHeight = 0;\n let numberOfRecords = 0;\n this.executeWithGridApi(gridApi => {\n const renderedNodes = gridApi.getRenderedNodes();\n totalRowHeight = renderedNodes.reduce((acc, node) => acc + (node.rowHeight ?? defaultRowHeight), 0);\n numberOfRecords = renderedNodes.length;\n });\n if (numberOfRecords <= 15) {\n const headerHeight = this._getContainer().querySelector('.ag-header-row')?.clientHeight ?? 0;\n return `${totalRowHeight + headerHeight + offset}px`;\n }\n else {\n return `${defaultRowHeight * 17 + offset}px`;\n }\n }\n }\n private _setGridHeight() {\n setTimeout(() => {\n const container = this._getContainer();\n if (container) {\n container.style.height = this._calculateGridHeight();\n }\n }, 100);\n }\n\n private _onColumnResized(e: ColumnResizedEvent<IRecord>) {\n if (e.source === 'uiColumnResized') {\n this._hasUserResizedColumns = true;\n this._updateColumnVisualSizeFactor(e);\n }\n }\n\n private _autoSizeColumns() {\n if (this._hasUserResizedColumns) {\n return;\n }\n this.executeWithGridApi(gridApi => {\n gridApi.sizeColumnsToFit({\n columnLimits: this._grid.getDataset().columns.map(col => {\n return {\n key: col.name,\n minWidth: col.visualSizeFactor\n }\n })\n });\n });\n }\n\n private _updateColumnVisualSizeFactor(e: ColumnResizedEvent<IRecord>) {\n const resizedColumnKey = e.column?.getColId();\n if (!resizedColumnKey) {\n return;\n }\n const columns = this._grid.getDataset().columns; const newColumns = columns.map(col => {\n if (col.name === resizedColumnKey) {\n return {\n ...col,\n visualSizeFactor: e.column?.getActualWidth()!\n }\n }\n return col;\n })\n this._grid.getDataset().setColumns(newColumns);\n }\n\n private _onSelectionChanged(e: SelectionChangedEvent<IRecord>) {\n switch (true) {\n case e.source === 'api':\n case e.source === 'apiSelectAll': {\n return;\n }\n }\n let selectedNodes: IRowNode<IRecord>[] = [];\n this.executeWithGridApi(gridApi => {\n selectedNodes = gridApi.getSelectedNodes();\n });\n //if we click a grouped record, do not propagate the selection to children\n const providerSelectedRecordIdsMap = new Map<IDataProvider, string[]>();\n selectedNodes.map(node => {\n const record = node.data!;\n const provider = record.getDataProvider();\n if (!providerSelectedRecordIdsMap.has(provider)) {\n providerSelectedRecordIdsMap.set(provider, []);\n }\n providerSelectedRecordIdsMap.get(provider)!.push(record.getRecordId());\n })\n providerSelectedRecordIdsMap.forEach((ids, provider) => {\n provider.setSelectedRecordIds(ids);\n });\n }\n\n private async _setSelectedNodes(ids: string[]) {\n //interval to prevent infinite loading\n const checkLoadingNestedProviders = setInterval(() => {\n if (this._isLoadingNestedProviders && !this._areChildProvidersLoading()) {\n this._isLoadingNestedProviders = false;\n this._dataset.getDataProvider().setLoading(false);\n clearInterval(checkLoadingNestedProviders);\n }\n }, 500);\n this._intervals.push(checkLoadingNestedProviders);\n if (!this._isLoadingNestedProviders && this._areChildProvidersLoading()) {\n this._isLoadingNestedProviders = true;\n this._dataset.getDataProvider().setLoading(true);\n }\n else if (this._isLoadingNestedProviders && !this._areChildProvidersLoading()) {\n this._isLoadingNestedProviders = false;\n this._dataset.getDataProvider().setLoading(false);\n clearInterval(checkLoadingNestedProviders);\n }\n this.executeWithGridApi(gridApi => {\n gridApi.setServerSideSelectionState({\n selectAll: false,\n toggledNodes: this._grid.getDataset().getDataProvider().getSelectedRecordIds({ includeGroupRecordIds: true })\n })\n gridApi.refreshCells({\n columns: [CHECKBOX_COLUMN_KEY],\n force: true\n })\n });\n }\n\n private _areChildProvidersLoading(): boolean {\n const childProviders = this._dataset.getDataProvider().getGroupedRecordDataProviders(true).filter(x => x.getParentRecordId());\n return childProviders.some(provider => provider.isLoading());\n }\n\n private _valueFormatter(p: ValueFormatterParams<IRecord>): string {\n const formattedValue = this._grid.getRecordFormattedValue(p.data!, p.colDef.colId!);\n return formattedValue.value ?? formattedValue.aggregatedValue;\n }\n\n private _valueGetter(p: ValueGetterParams<IRecord>, column: IGridColumn) {\n const record = p.data!;\n let editing: boolean = false;\n const columnInfo = record.getColumnInfo(column.name) as IColumnInfo;\n //i hate this, there is no other way to get the information if we are in edit mode or not\n if (Error().stack!.includes('startEditing')) {\n editing = true;\n }\n const customControl = this._grid.getControl(column, record, editing || !!column.oneClickEdit);\n\n const control = new NestedControl({\n onGetBindings: () => this._grid.getBindings(record, column, customControl),\n parentPcfContext: this._grid.getPcfContext(),\n });\n const parameters = columnInfo.ui.getControlParameters({\n ...this._grid.getFieldBindingParameters(record, column, editing),\n ...control.getParameters(),\n })\n if (column.oneClickEdit && record.getSummarizationType() === 'none') {\n editing = true;\n }\n const value = this._grid.getRecordValue(record, column);\n return {\n notifications: columnInfo.ui.getNotifications(),\n value: value.value,\n customFormatting: this._grid.getFieldFormatting(record, column.name),\n customControl: customControl,\n error: columnInfo.error,\n aggregatedValue: value.aggregatedValue,\n loading: columnInfo.ui.isLoading(),\n errorMessage: columnInfo.errorMessage,\n editable: columnInfo.security.editable,\n editing: editing,\n parameters: parameters,\n saving: record.isSaving(),\n columnAlignment: column.alignment,\n customComponent: columnInfo.ui.getCustomControlComponent()\n } as ICellValues;\n }\n\n private _setPinnedRowData() {\n const totalRecord = this._grid.getTotalRow().getTotalRowRecord();\n this.executeWithGridApi(gridApi => gridApi.setGridOption('pinnedBottomRowData', totalRecord ? [totalRecord] : []));\n }\n\n private _setLoadingOverlay(isLoading: boolean) {\n if (!isLoading) {\n return this.executeWithGridApi(gridApi => gridApi.hideOverlay());\n }\n this.executeWithGridApi(gridApi => gridApi.showLoadingOverlay());\n }\n\n private _setNoRowsOverlay() {\n setTimeout(() => {\n if (this._grid.getDataset().loading) {\n return;\n }\n this.executeWithGridApi(gridApi => {\n gridApi.hideOverlay();\n if (this._grid.getDataset().getDataProvider().getRecords().length === 0) {\n gridApi.showNoRowsOverlay();\n }\n });\n }, 0);\n }\n\n private _isCellEditorEnabled(columnName: string, record: IRecord): boolean {\n\n const column = this._grid.getGridColumnByName(columnName); // check column eligibility for cell editor\n switch (true) {\n //never allow cell editor for oneClickEdit - everything is handled by cell renderer in this case\n case column.oneClickEdit:\n //never allow cell editor for non-editable columns\n case !column.isEditable: {\n return false;\n }\n }\n return record.getColumnInfo(column.name).security.editable;\n }\n\n private get _dataset() {\n return this._grid.getDataset();\n }\n}"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
-
import
|
|
2
|
+
import React__default, { useMemo } from 'react';
|
|
3
3
|
import { useModel } from '../../useModel.js';
|
|
4
4
|
import { Link, SpinnerSize, Image, Icon } from '@fluentui/react';
|
|
5
5
|
import { getFileRendererStyles } from './styles.js';
|
|
@@ -8,8 +8,8 @@ import { Spinner } from '@talxis/react-components';
|
|
|
8
8
|
const FileRenderer = (props) => {
|
|
9
9
|
const model = useModel();
|
|
10
10
|
const styles = useMemo(() => getFileRendererStyles(), []);
|
|
11
|
-
const [isFileDownloading, setIsFileDownloading] =
|
|
12
|
-
const [thumbnailFailedToLoad, setThumbnailFailedToLoad] =
|
|
11
|
+
const [isFileDownloading, setIsFileDownloading] = React__default.useState(false);
|
|
12
|
+
const [thumbnailFailedToLoad, setThumbnailFailedToLoad] = React__default.useState(false);
|
|
13
13
|
const onLinkClick = async (e) => {
|
|
14
14
|
if (model.shouldUsePortalDownload()) {
|
|
15
15
|
e.preventDefault();
|