@talxis/base-controls 1.2602.4 → 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/DateTime/hooks/useDateTime.js +11 -3
- package/dist/components/DateTime/hooks/useDateTime.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
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
import { MemoryDataProvider, EventEmitter } from '@talxis/client-libraries';
|
|
2
|
+
import { RecordTree } from './record-tree/RecordTree.js';
|
|
3
|
+
import { ErrorHelper } from '../../../../utils/error-handling/ErrorHelper.js';
|
|
4
|
+
|
|
5
|
+
class TaskDataProvider extends MemoryDataProvider {
|
|
6
|
+
constructor(parameters) {
|
|
7
|
+
super({
|
|
8
|
+
dataSource: [],
|
|
9
|
+
metadata: { PrimaryIdAttribute: 'id' }
|
|
10
|
+
});
|
|
11
|
+
this._hasDataBeenLoaded = false;
|
|
12
|
+
this.taskEvents = new EventEmitter();
|
|
13
|
+
this._nativeColumns = parameters.nativeColumns;
|
|
14
|
+
this._taskTree = new RecordTree({
|
|
15
|
+
taskDataProvider: this
|
|
16
|
+
});
|
|
17
|
+
this._localizationService = parameters.localizationService;
|
|
18
|
+
this._strategy = parameters.strategy;
|
|
19
|
+
this._onFlatListEnabled = parameters.onIsFlatListEnabled;
|
|
20
|
+
}
|
|
21
|
+
getStrategy() {
|
|
22
|
+
return this._strategy;
|
|
23
|
+
}
|
|
24
|
+
getRootTaskId() {
|
|
25
|
+
return this._strategy.onGetRootTaskId?.() ?? null;
|
|
26
|
+
}
|
|
27
|
+
isTaskAddingEnabled() {
|
|
28
|
+
return this._strategy.onIsTaskAddingEnabled?.() ?? true;
|
|
29
|
+
}
|
|
30
|
+
isTaskEditingEnabled() {
|
|
31
|
+
return this._strategy.onIsTaskEditingEnabled?.() ?? true;
|
|
32
|
+
}
|
|
33
|
+
isTaskDeletingEnabled() {
|
|
34
|
+
return this._strategy.onIsTaskDeletingEnabled?.() ?? true;
|
|
35
|
+
}
|
|
36
|
+
getRecordTree() {
|
|
37
|
+
return this._taskTree;
|
|
38
|
+
}
|
|
39
|
+
isFlatListEnabled() {
|
|
40
|
+
return this._onFlatListEnabled();
|
|
41
|
+
}
|
|
42
|
+
getNativeColumns() {
|
|
43
|
+
return this._nativeColumns;
|
|
44
|
+
}
|
|
45
|
+
async fetchRawRecords(ids) {
|
|
46
|
+
return this._strategy.onGetRawRecords(ids);
|
|
47
|
+
}
|
|
48
|
+
onGetAvailableColumns() {
|
|
49
|
+
return this._strategy.onGetAvailableColumns();
|
|
50
|
+
}
|
|
51
|
+
onGetAvailableRelatedColumns() {
|
|
52
|
+
return this._strategy.onGetAvailableRelatedColumns();
|
|
53
|
+
}
|
|
54
|
+
async retrieveRecordCommand(options) {
|
|
55
|
+
return [];
|
|
56
|
+
}
|
|
57
|
+
onRecordSave(record) {
|
|
58
|
+
return this._strategy.onRecordSave(record);
|
|
59
|
+
}
|
|
60
|
+
updateTaskData(newData) {
|
|
61
|
+
const affectedParentIds = [];
|
|
62
|
+
let recordTreeChanged = false;
|
|
63
|
+
for (const updatedData of newData) {
|
|
64
|
+
const recordId = updatedData[this.getMetadata().PrimaryIdAttribute];
|
|
65
|
+
if (!recordId) {
|
|
66
|
+
throw new Error(`Updated data is missing record id. Data: ${JSON.stringify(updatedData)}`);
|
|
67
|
+
}
|
|
68
|
+
const record = this.getRecordsMap()[recordId];
|
|
69
|
+
const originalParentId = record.getValue(this.getNativeColumns().parentId)?.[0]?.id?.guid;
|
|
70
|
+
const originalStackRank = record.getValue(this.getNativeColumns().stackRank);
|
|
71
|
+
record.setRawData(updatedData);
|
|
72
|
+
const newParentId = record.getValue(this.getNativeColumns().parentId)?.[0]?.id?.guid;
|
|
73
|
+
const newStackRank = record.getValue(this.getNativeColumns().stackRank);
|
|
74
|
+
if (originalParentId !== newParentId) {
|
|
75
|
+
recordTreeChanged = true;
|
|
76
|
+
affectedParentIds.push(recordId, originalParentId, newParentId);
|
|
77
|
+
}
|
|
78
|
+
else if (originalStackRank !== newStackRank) {
|
|
79
|
+
recordTreeChanged = true;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
if (recordTreeChanged) {
|
|
83
|
+
this._taskTree.build();
|
|
84
|
+
this.taskEvents.dispatchEvent('onRecordTreeUpdated', affectedParentIds);
|
|
85
|
+
}
|
|
86
|
+
this.taskEvents.dispatchEvent('onTaskDataUpdated', newData);
|
|
87
|
+
}
|
|
88
|
+
getGroupedRecordDataProvider(groupedRecordId) {
|
|
89
|
+
const provider = new MemoryDataProvider({
|
|
90
|
+
dataSource: [],
|
|
91
|
+
metadata: { PrimaryIdAttribute: 'id' }
|
|
92
|
+
});
|
|
93
|
+
provider.getErrorMessage = () => this.getErrorMessage();
|
|
94
|
+
return provider;
|
|
95
|
+
}
|
|
96
|
+
async moveTask(movingFromTaskId, movingToTaskId, position) {
|
|
97
|
+
return ErrorHelper.executeWithErrorHandling({
|
|
98
|
+
operation: async () => {
|
|
99
|
+
this.taskEvents.dispatchEvent('onBeforeTaskMoved');
|
|
100
|
+
const result = await this._strategy.onMoveTask(movingFromTaskId, movingToTaskId, position);
|
|
101
|
+
if (result !== null)
|
|
102
|
+
this.updateTaskData(result);
|
|
103
|
+
this.taskEvents.dispatchEvent('onAfterTaskMoved', movingFromTaskId, movingToTaskId, position);
|
|
104
|
+
return result;
|
|
105
|
+
},
|
|
106
|
+
onError: (error, message) => this.taskEvents.dispatchEvent('onError', error, message)
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
async createTask(parentId) {
|
|
110
|
+
this.taskEvents.dispatchEvent('onBeforeTasksCreated', parentId);
|
|
111
|
+
return ErrorHelper.executeWithErrorHandling({
|
|
112
|
+
operation: async () => {
|
|
113
|
+
const rawRecord = await this._strategy.onCreateTask(parentId);
|
|
114
|
+
if (rawRecord)
|
|
115
|
+
this._createTasks([rawRecord], parentId);
|
|
116
|
+
this.taskEvents.dispatchEvent('onAfterTasksCreated', rawRecord ? [rawRecord] : null, parentId);
|
|
117
|
+
return rawRecord;
|
|
118
|
+
},
|
|
119
|
+
onError: (error, message) => this.taskEvents.dispatchEvent('onError', error, message)
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
async createTasksFromTemplate(templateId, parentId) {
|
|
123
|
+
this.taskEvents.dispatchEvent('onBeforeTasksCreated', parentId);
|
|
124
|
+
return ErrorHelper.executeWithErrorHandling({
|
|
125
|
+
operation: async () => {
|
|
126
|
+
const rawRecords = await this._strategy.onCreateTasksFromTemplate(templateId, parentId);
|
|
127
|
+
if (rawRecords)
|
|
128
|
+
this._createTasks(rawRecords, parentId);
|
|
129
|
+
this.taskEvents.dispatchEvent('onAfterTasksCreated', rawRecords, parentId);
|
|
130
|
+
return rawRecords;
|
|
131
|
+
},
|
|
132
|
+
onError: (error, message) => this.taskEvents.dispatchEvent('onError', error, message)
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
async createTemplateFromTask(taskId) {
|
|
136
|
+
this.taskEvents.dispatchEvent('onBeforeTemplateCreated', taskId);
|
|
137
|
+
return ErrorHelper.executeWithErrorHandling({
|
|
138
|
+
operation: async () => {
|
|
139
|
+
const rawRecord = await this._strategy.onCreateTemplateFromTask(taskId);
|
|
140
|
+
this.taskEvents.dispatchEvent('onAfterTemplateCreated', rawRecord);
|
|
141
|
+
return rawRecord;
|
|
142
|
+
},
|
|
143
|
+
onError: (error, message) => this.taskEvents.dispatchEvent('onError', error, message)
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
openDatasetItem(entityReference, context) {
|
|
147
|
+
if (!context || context?.columnName === this.getNativeColumns().subject) {
|
|
148
|
+
this.editTasks([entityReference.id.guid]);
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
this._strategy.onOpenDatasetItem(entityReference);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
getSorting() {
|
|
155
|
+
const sorting = super.getSorting();
|
|
156
|
+
if (sorting.length === 0) {
|
|
157
|
+
return [{
|
|
158
|
+
name: this._nativeColumns.stackRank,
|
|
159
|
+
sortDirection: 0
|
|
160
|
+
}];
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
return sorting;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
getSortedRecordIds() {
|
|
167
|
+
return this._taskTree.getSortedIds();
|
|
168
|
+
}
|
|
169
|
+
async deleteTasks(taskIds) {
|
|
170
|
+
this.taskEvents.dispatchEvent('onBeforeTasksDeleted', taskIds);
|
|
171
|
+
return ErrorHelper.executeWithErrorHandling({
|
|
172
|
+
operation: async () => {
|
|
173
|
+
const result = await this._strategy.onDeleteTasks(taskIds);
|
|
174
|
+
if (result !== null) {
|
|
175
|
+
const deletedTaskIds = result.deletedTaskIds;
|
|
176
|
+
await this.deleteRecords(deletedTaskIds);
|
|
177
|
+
this.setSelectedRecordIds(this.getSelectedRecordIds().filter(id => !deletedTaskIds.includes(id)));
|
|
178
|
+
this._taskTree.build();
|
|
179
|
+
this.taskEvents.dispatchEvent('onRecordTreeUpdated', deletedTaskIds);
|
|
180
|
+
}
|
|
181
|
+
this.taskEvents.dispatchEvent('onAfterTasksDeleted', result);
|
|
182
|
+
return result;
|
|
183
|
+
},
|
|
184
|
+
onError: (error, message) => this.taskEvents.dispatchEvent('onError', error, message)
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
async editTasks(taskIds) {
|
|
188
|
+
return ErrorHelper.executeWithErrorHandling({
|
|
189
|
+
operation: async () => {
|
|
190
|
+
this.taskEvents.dispatchEvent('onBeforeTasksEdited', taskIds);
|
|
191
|
+
const result = await this._strategy.onEditTasks(taskIds);
|
|
192
|
+
if (result !== null)
|
|
193
|
+
this.updateTaskData(result.updatedRecords);
|
|
194
|
+
this.taskEvents.dispatchEvent('onAfterTasksEdited', result);
|
|
195
|
+
return result;
|
|
196
|
+
},
|
|
197
|
+
onError: (error, message) => this.taskEvents.dispatchEvent('onError', error, message)
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
isRecordActive(recordId) {
|
|
201
|
+
return this._strategy.onIsRecordActive(recordId);
|
|
202
|
+
}
|
|
203
|
+
onOpenDatasetItem(entityReference) {
|
|
204
|
+
if (entityReference.etn === this.getEntityName()) {
|
|
205
|
+
this.editTasks([entityReference.id.guid]);
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
//@ts-ignore - typings
|
|
209
|
+
this._sourceDataProvider.onOpenDatasetItem(entityReference);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
async destroy() {
|
|
213
|
+
super.destroy();
|
|
214
|
+
this.taskEvents.clearEventListeners();
|
|
215
|
+
}
|
|
216
|
+
getQuickFindColumns() {
|
|
217
|
+
return this._strategy.onGetQuickFindColumns().map(columnName => {
|
|
218
|
+
return this.getColumnsMap()[columnName];
|
|
219
|
+
}).filter(col => col);
|
|
220
|
+
}
|
|
221
|
+
createGroupedRecordDataProvider(group) {
|
|
222
|
+
const children = this._taskTree.getNodeMap().get(group.getRecordId())?.directChildren ?? [];
|
|
223
|
+
return {
|
|
224
|
+
...this,
|
|
225
|
+
getRecords: () => children,
|
|
226
|
+
isError: () => this.isError(),
|
|
227
|
+
refresh: () => children
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
getPaging() {
|
|
231
|
+
const paging = super.getPaging();
|
|
232
|
+
paging.totalResultCount = this._taskTree.getTotalCount();
|
|
233
|
+
paging.pageSize = this._taskTree.getTotalCount();
|
|
234
|
+
return paging;
|
|
235
|
+
}
|
|
236
|
+
getRecords() {
|
|
237
|
+
const records = super.getRecords();
|
|
238
|
+
if (records.length === 0 || this._taskTree.getNodeMap().size === 0) {
|
|
239
|
+
return [];
|
|
240
|
+
}
|
|
241
|
+
return this._taskTree.getNodeMap().get(null)?.directChildren ?? [];
|
|
242
|
+
}
|
|
243
|
+
getAllRecords() {
|
|
244
|
+
return super.getRecords();
|
|
245
|
+
}
|
|
246
|
+
createNewDataProvider(eventBubbleOptions) {
|
|
247
|
+
return new TaskDataProvider({
|
|
248
|
+
localizationService: this._localizationService,
|
|
249
|
+
nativeColumns: this._nativeColumns,
|
|
250
|
+
strategy: this._strategy,
|
|
251
|
+
onIsFlatListEnabled: () => this._onFlatListEnabled(),
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
async refresh() {
|
|
255
|
+
if (!this._hasDataBeenLoaded) {
|
|
256
|
+
await this._loadDataFromStrategy();
|
|
257
|
+
this._hasDataBeenLoaded = true;
|
|
258
|
+
}
|
|
259
|
+
await super.refresh();
|
|
260
|
+
return this.getAllRecords();
|
|
261
|
+
}
|
|
262
|
+
dispatchEvent(event, ...args) {
|
|
263
|
+
if (event === 'onNewDataLoaded') {
|
|
264
|
+
this._taskTree.build();
|
|
265
|
+
}
|
|
266
|
+
return super.dispatchEvent(event, ...args);
|
|
267
|
+
}
|
|
268
|
+
getDataSync(pageNumber, pageSize, previousPageNumber, event) {
|
|
269
|
+
return {
|
|
270
|
+
data: this.getDataSource(),
|
|
271
|
+
hasNextPage: false,
|
|
272
|
+
totalRecordCount: this.getDataSource().length
|
|
273
|
+
};
|
|
274
|
+
}
|
|
275
|
+
async _loadDataFromStrategy() {
|
|
276
|
+
return ErrorHelper.executeWithErrorHandling({
|
|
277
|
+
operation: async () => {
|
|
278
|
+
const { columns, rawData, metadata } = await this._strategy.onInitialize(this);
|
|
279
|
+
this.setDataSource(rawData);
|
|
280
|
+
this.setMetadata(metadata);
|
|
281
|
+
this.setColumns(columns);
|
|
282
|
+
this.getPaging().setPageSize(rawData.length);
|
|
283
|
+
this.setEntityName(metadata.LogicalName);
|
|
284
|
+
},
|
|
285
|
+
onError: (error, message) => this.taskEvents.dispatchEvent('onError', error, message)
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
_createTasks(rawRecords, parentId) {
|
|
289
|
+
const records = [];
|
|
290
|
+
for (const rawRecord of rawRecords) {
|
|
291
|
+
const record = this.newRecord({
|
|
292
|
+
rawData: rawRecord,
|
|
293
|
+
recordId: rawRecord[this.getMetadata().PrimaryIdAttribute],
|
|
294
|
+
position: 'start',
|
|
295
|
+
});
|
|
296
|
+
const stackRankAttributeName = this.getNativeColumns().stackRank;
|
|
297
|
+
if (record.getValue(stackRankAttributeName) == null) {
|
|
298
|
+
console.warn(`Record with id ${record.getRecordId()} is missing stack rank value. Setting it to 0.`, record);
|
|
299
|
+
record.setValue(stackRankAttributeName, 0);
|
|
300
|
+
const newRawData = record.toRawData();
|
|
301
|
+
record.setRawData(newRawData);
|
|
302
|
+
}
|
|
303
|
+
records.push(record);
|
|
304
|
+
}
|
|
305
|
+
if (records.length > 0) {
|
|
306
|
+
this._taskTree.build();
|
|
307
|
+
this.taskEvents.dispatchEvent('onRecordTreeUpdated', [parentId]);
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
export { TaskDataProvider };
|
|
313
|
+
//# sourceMappingURL=TaskDataProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskDataProvider.js","sources":["../../../../../src/components/TaskGrid/data-providers/task-data-provider/TaskDataProvider.ts"],"sourcesContent":["import { EventEmitter, GetDataEvent, IAvailableColumnOptions, IAvailableRelatedColumn, IColumn, ICommand, IDataProvider, IDataProviderEventListeners, IEventBubbleOptions, IEventEmitter, IRawRecord, IRecord, IRecordSaveOperationResult, IRetrievedData, IRetrieveRecordCommandOptions, MemoryDataProvider, Operators, Type } from \"@talxis/client-libraries\";\nimport { IRecordTree, RecordTree } from \"./record-tree/RecordTree\";\nimport { ErrorHelper } from \"../../../../utils/error-handling\";\nimport { ILocalizationService, ITaskGridLabels } from \"../../labels\";\nimport { INativeColumns } from \"../../interfaces\";\n\nexport interface IFailedRecord {\n id: string;\n error: any;\n}\n\nexport type IDeleteTasksResult =\n | { success: true; deletedTaskIds: string[] }\n | { success: false; deletedTaskIds: string[]; errors: IFailedRecord[] };\n\nexport type IEditTasksResult =\n | { success: true; updatedRecords: IRawRecord[] }\n | { success: false; updatedRecords: IRawRecord[]; errors: IFailedRecord[] };\n\n\nexport interface ITaskDataProviderParameters {\n nativeColumns: INativeColumns;\n localizationService: ILocalizationService<ITaskGridLabels>;\n strategy: ITaskDataProviderStrategy;\n onIsFlatListEnabled: () => boolean;\n}\n\n/** Strategy interface that handles all data access and mutation operations for tasks. */\nexport interface ITaskDataProviderStrategy {\n /**\n * Called once on first load. Must return the initial columns, raw task records, and provider metadata.\n * An empty `ids` array instructs the strategy to fetch all records.\n */\n onGetRawRecords: (ids: string[]) => Promise<IRawRecord[]>;\n /** Called once on first load. Must return the initial columns, raw task records, and entity metadata. */\n onInitialize: (provider: ITaskDataProvider) => Promise<{ columns: IColumn[]; rawData: IRawRecord[]; metadata: any }>\n /** Returns all columns available for display in the grid (both native and custom). */\n onGetAvailableColumns: (options?: IAvailableColumnOptions) => Promise<IColumn[]>;\n /** Returns linked-entity columns that can be used for filtering and sorting. */\n onGetAvailableRelatedColumns: () => Promise<IAvailableRelatedColumn[]>;\n /** Returns the attribute names that are searched when the user types in the quick-find input. */\n onGetQuickFindColumns: () => string[];\n /** @returns The created task raw record, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */\n onCreateTask(parentTaskId?: string): Promise<IRawRecord | null>;\n /**\n * @returns Result indicating which tasks were deleted and which failed.\n * `success: true` means all tasks were deleted. `success: false` means some or all failed.\n * Throws on unexpected failure.\n */\n onDeleteTasks(taskIds: string[]): Promise<IDeleteTasksResult | null>;\n /** @returns The created template raw record, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */\n onCreateTemplateFromTask(taskId: string): Promise<IRawRecord | null>;\n /** @returns The created task raw records, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */\n onCreateTasksFromTemplate(templateId: string, parentTaskId?: string): Promise<IRawRecord[] | null>;\n /**\n * @returns Result indicating which tasks were updated and which failed, or `null` if the operation was cancelled by the user.\n * `success: true` means all tasks were updated. `success: false` means some or all failed.\n * Throws on unexpected failure.\n */\n onEditTasks(taskIds: string[]): Promise<IEditTasksResult | null>;\n /** Moves a task to a new position relative to another task. Returns the updated raw records, or `null` on cancellation. */\n onMoveTask(movingTaskId: string, movingToTaskId: string, position: 'above' | 'below' | 'child'): Promise<IRawRecord[] | null>;\n /** Persists inline cell edits for the given record. */\n onRecordSave(record: IRecord): Promise<IRecordSaveOperationResult>;\n /** Returns whether the given task record is currently active (non-completed). */\n onIsRecordActive(recordId: string): boolean;\n /** Opens the record detail view. Called when a user clicks a non-subject cell. */\n onOpenDatasetItem(entityReference: ComponentFramework.EntityReference, context?: { columnName?: string }): void;\n /** Return `false` to disable task creation (hide the *New* button). Defaults to `true`. */\n onIsTaskAddingEnabled?(): boolean;\n /** Return `false` to disable inline cell editing. Defaults to `true`. */\n onIsTaskEditingEnabled?(): boolean;\n /** Return `false` to disable task deletion (hide the *Delete* button). Defaults to `true`. */\n onIsTaskDeletingEnabled?(): boolean;\n /** When provided, the task tree is scoped to the subtree of the returned task id. */\n onGetRootTaskId?: () => string | undefined\n}\n\nexport interface ITaskDataProviderEventListener {\n onBeforeTemplateCreated: (taskId: string) => void;\n onAfterTemplateCreated: (record: IRawRecord | null) => void;\n onBeforeTasksDeleted: (taskIds: string[]) => void;\n onAfterTasksDeleted: (result: IDeleteTasksResult | null) => void;\n onBeforeTasksCreated: (parentId?: string) => void;\n onAfterTasksCreated: (records: IRawRecord[] | null, parentId?: string) => void;\n onBeforeTaskMoved: () => void;\n onAfterTaskMoved: (movingFromTaskId: string, movingToTaskId: string, position: 'above' | 'below' | 'child') => void;\n onBeforeTasksEdited: (taskIds: string[]) => void;\n onTaskDataUpdated: (data: IRawRecord[]) => void;\n onAfterTasksEdited: (result: IEditTasksResult | null) => void;\n onRecordTreeUpdated: (updatedParentIds: (string | undefined)[]) => void;\n onError: (error: any, message: string) => void;\n}\n\n/** Extended data provider interface for task records. Adds task-specific operations on top of `IDataProvider`. */\nexport interface ITaskDataProvider extends IDataProvider {\n /** EventEmitter for task lifecycle events (create, delete, edit, move, template, error). */\n taskEvents: IEventEmitter<ITaskDataProviderEventListener>;\n /** Returns the native column name mapping. */\n getNativeColumns(): INativeColumns;\n /** Returns all records regardless of current tree filtering or paging. */\n getAllRecords(): IRecord[];\n /** Returns the underlying strategy cast to the given type. */\n getStrategy<T extends ITaskDataProviderStrategy>(): T;\n /** Fetches raw task records by id via the strategy. Pass an empty array to fetch all. */\n fetchRawRecords(ids: string[]): Promise<IRawRecord[]>;\n /** Returns the current hierarchical record tree built from loaded task data. */\n getRecordTree(): IRecordTree;\n /** Applies updated raw record data in-place and rebuilds the tree if hierarchy changed. */\n updateTaskData(newData: IRawRecord[]): void;\n /**\n * @returns Result indicating which tasks were updated and which failed, or `null` if the operation was cancelled by the user.\n * `success: true` means all tasks were updated. `success: false` means some or all failed — `updatedRecords` still contains the records that succeeded.\n * Throws on unexpected failure.\n */\n editTasks(taskIds: string[]): Promise<IEditTasksResult | null>;\n /** @returns The created task raw record, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */\n createTask(parentTaskId?: string): Promise<IRawRecord | null>;\n /**\n * @returns Result indicating which tasks were deleted and which failed.\n * `success: true` means all tasks were deleted. `success: false` means some or all failed — `deletedTaskIds` still contains the ids that succeeded.\n * Throws on unexpected failure before any deletes could be attempted.\n */\n deleteTasks(taskIds: string[]): Promise<IDeleteTasksResult | null>;\n /** @returns The created template raw record, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */\n createTemplateFromTask(taskId: string): Promise<IRawRecord | null>;\n /** @returns The created task raw records, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */\n createTasksFromTemplate(templateId: string, parentId?: string): Promise<IRawRecord[] | null>;\n /** Returns `true` when the grid is displaying a flat list instead of a tree hierarchy. */\n isFlatListEnabled(): boolean;\n /** Returns `true` when task creation is allowed (from `ITaskDataProviderStrategy.onIsTaskAddingEnabled`). */\n isTaskAddingEnabled(): boolean;\n /** Returns `true` when inline cell editing is allowed (from `ITaskDataProviderStrategy.onIsTaskEditingEnabled`). */\n isTaskEditingEnabled(): boolean;\n /** Returns `true` when task deletion is allowed (from `ITaskDataProviderStrategy.onIsTaskDeletingEnabled`). */\n isTaskDeletingEnabled(): boolean;\n /** Returns the root task id when the tree is scoped to a subtree, or `null` for a full tree. */\n getRootTaskId: () => string | null;\n /** Moves a task to a position relative to another task. Returns the updated raw records, or `null` on cancellation. */\n moveTask(movingTaskId: string, movingToTaskId: string, position: 'above' | 'below' | 'child'): Promise<IRawRecord[] | null>;\n}\n\nexport class TaskDataProvider extends MemoryDataProvider implements ITaskDataProvider {\n private _nativeColumns: INativeColumns;\n private _localizationService: ILocalizationService<ITaskGridLabels>;\n private _hasDataBeenLoaded: boolean = false;\n private _taskTree: IRecordTree;\n private _strategy: ITaskDataProviderStrategy;\n private _onFlatListEnabled: () => boolean;\n public readonly taskEvents: EventEmitter<ITaskDataProviderEventListener> = new EventEmitter<ITaskDataProviderEventListener>();\n\n constructor(parameters: ITaskDataProviderParameters) {\n super({\n dataSource: [],\n metadata: { PrimaryIdAttribute: 'id' }\n })\n this._nativeColumns = parameters.nativeColumns;\n this._taskTree = new RecordTree({\n taskDataProvider: this\n })\n this._localizationService = parameters.localizationService;\n this._strategy = parameters.strategy;\n this._onFlatListEnabled = parameters.onIsFlatListEnabled;\n }\n\n public getStrategy<T extends ITaskDataProviderStrategy>(): T {\n return this._strategy as T;\n }\n\n public getRootTaskId(): string | null {\n return this._strategy.onGetRootTaskId?.() ?? null;\n }\n\n public isTaskAddingEnabled(): boolean {\n return this._strategy.onIsTaskAddingEnabled?.() ?? true;\n }\n\n public isTaskEditingEnabled(): boolean {\n return this._strategy.onIsTaskEditingEnabled?.() ?? true;\n }\n\n public isTaskDeletingEnabled(): boolean {\n return this._strategy.onIsTaskDeletingEnabled?.() ?? true;\n }\n\n public getRecordTree(): IRecordTree {\n return this._taskTree;\n }\n\n public isFlatListEnabled(): boolean {\n return this._onFlatListEnabled();\n }\n\n public getNativeColumns(): INativeColumns {\n return this._nativeColumns;\n }\n\n public async fetchRawRecords(ids: string[]) {\n return this._strategy.onGetRawRecords(ids);\n }\n\n public onGetAvailableColumns(): Promise<IColumn[]> {\n return this._strategy.onGetAvailableColumns();\n }\n\n public onGetAvailableRelatedColumns(): Promise<IAvailableRelatedColumn[]> {\n return this._strategy.onGetAvailableRelatedColumns();\n }\n\n public async retrieveRecordCommand(options?: IRetrieveRecordCommandOptions): Promise<ICommand[]> {\n return [];\n }\n\n public onRecordSave(record: IRecord): Promise<IRecordSaveOperationResult> {\n return this._strategy.onRecordSave(record);\n }\n\n public updateTaskData(newData: IRawRecord[]) {\n const affectedParentIds: (string | undefined)[] = [];\n let recordTreeChanged = false;\n\n for (const updatedData of newData) {\n const recordId = updatedData[this.getMetadata().PrimaryIdAttribute];\n if (!recordId) {\n throw new Error(`Updated data is missing record id. Data: ${JSON.stringify(updatedData)}`);\n }\n const record = this.getRecordsMap()[recordId];\n const originalParentId = record.getValue(this.getNativeColumns().parentId)?.[0]?.id?.guid;\n const originalStackRank = record.getValue(this.getNativeColumns().stackRank);\n record.setRawData(updatedData);\n const newParentId = record.getValue(this.getNativeColumns().parentId)?.[0]?.id?.guid;\n const newStackRank = record.getValue(this.getNativeColumns().stackRank);\n if (originalParentId !== newParentId) {\n recordTreeChanged = true;\n affectedParentIds.push(recordId, originalParentId, newParentId);\n } else if (originalStackRank !== newStackRank) {\n recordTreeChanged = true;\n }\n }\n if (recordTreeChanged) {\n this._taskTree.build();\n this.taskEvents.dispatchEvent('onRecordTreeUpdated', affectedParentIds);\n }\n this.taskEvents.dispatchEvent('onTaskDataUpdated', newData);\n }\n\n\n public getGroupedRecordDataProvider(groupedRecordId: string): IDataProvider | null {\n const provider = new MemoryDataProvider({\n dataSource: [],\n metadata: { PrimaryIdAttribute: 'id' }\n })\n provider.getErrorMessage = () => this.getErrorMessage();\n return provider;\n }\n\n public async moveTask(movingFromTaskId: string, movingToTaskId: string, position: \"above\" | \"below\" | \"child\"): Promise<IRawRecord[] | null> {\n return ErrorHelper.executeWithErrorHandling({\n operation: async () => {\n this.taskEvents.dispatchEvent('onBeforeTaskMoved');\n const result = await this._strategy.onMoveTask(movingFromTaskId, movingToTaskId, position);\n if (result !== null) this.updateTaskData(result);\n this.taskEvents.dispatchEvent('onAfterTaskMoved', movingFromTaskId, movingToTaskId, position);\n return result;\n },\n onError: (error, message) => this.taskEvents.dispatchEvent('onError', error, message)\n })\n }\n\n public async createTask(parentId?: string): Promise<IRawRecord | null> {\n this.taskEvents.dispatchEvent('onBeforeTasksCreated', parentId);\n return ErrorHelper.executeWithErrorHandling({\n operation: async () => {\n const rawRecord = await this._strategy.onCreateTask(parentId);\n if (rawRecord) this._createTasks([rawRecord], parentId);\n this.taskEvents.dispatchEvent('onAfterTasksCreated', rawRecord ? [rawRecord] : null, parentId);\n return rawRecord;\n },\n onError: (error, message) => this.taskEvents.dispatchEvent('onError', error, message)\n });\n }\n\n public async createTasksFromTemplate(templateId: string, parentId?: string): Promise<IRawRecord[] | null> {\n this.taskEvents.dispatchEvent('onBeforeTasksCreated', parentId);\n return ErrorHelper.executeWithErrorHandling({\n operation: async () => {\n const rawRecords = await this._strategy.onCreateTasksFromTemplate(templateId, parentId);\n if (rawRecords) this._createTasks(rawRecords, parentId);\n this.taskEvents.dispatchEvent('onAfterTasksCreated', rawRecords, parentId);\n return rawRecords;\n },\n onError: (error, message) => this.taskEvents.dispatchEvent('onError', error, message)\n })\n }\n\n public async createTemplateFromTask(taskId: string): Promise<IRawRecord | null> {\n this.taskEvents.dispatchEvent('onBeforeTemplateCreated', taskId);\n return ErrorHelper.executeWithErrorHandling({\n operation: async () => {\n const rawRecord = await this._strategy.onCreateTemplateFromTask(taskId);\n this.taskEvents.dispatchEvent('onAfterTemplateCreated', rawRecord);\n return rawRecord;\n },\n onError: (error, message) => this.taskEvents.dispatchEvent('onError', error, message)\n });\n }\n\n public openDatasetItem(entityReference: ComponentFramework.EntityReference, context?: { columnName?: string }): void {\n if (!context || context?.columnName === this.getNativeColumns().subject) {\n this.editTasks([entityReference.id.guid]);\n }\n else {\n this._strategy.onOpenDatasetItem(entityReference);\n }\n }\n\n public getSorting(): ComponentFramework.PropertyHelper.DataSetApi.SortStatus[] {\n const sorting = super.getSorting();\n if (sorting.length === 0) {\n return [{\n name: this._nativeColumns.stackRank,\n sortDirection: 0\n }];\n }\n else {\n return sorting;\n }\n }\n\n public getSortedRecordIds(): string[] {\n return this._taskTree.getSortedIds();\n }\n\n public async deleteTasks(taskIds: string[]): Promise<IDeleteTasksResult | null> {\n this.taskEvents.dispatchEvent('onBeforeTasksDeleted', taskIds);\n return ErrorHelper.executeWithErrorHandling({\n operation: async () => {\n const result = await this._strategy.onDeleteTasks(taskIds);\n if (result !== null) {\n const deletedTaskIds = result.deletedTaskIds;\n await this.deleteRecords(deletedTaskIds);\n this.setSelectedRecordIds(this.getSelectedRecordIds().filter(id => !deletedTaskIds.includes(id)));\n this._taskTree.build();\n this.taskEvents.dispatchEvent('onRecordTreeUpdated', deletedTaskIds);\n }\n this.taskEvents.dispatchEvent('onAfterTasksDeleted', result);\n return result;\n },\n onError: (error, message) => this.taskEvents.dispatchEvent('onError', error, message)\n })\n }\n\n public async editTasks(taskIds: string[]): Promise<IEditTasksResult | null> {\n return ErrorHelper.executeWithErrorHandling({\n operation: async () => {\n this.taskEvents.dispatchEvent('onBeforeTasksEdited', taskIds);\n const result = await this._strategy.onEditTasks(taskIds);\n if (result !== null) this.updateTaskData(result.updatedRecords);\n this.taskEvents.dispatchEvent('onAfterTasksEdited', result);\n return result;\n },\n onError: (error, message) => this.taskEvents.dispatchEvent('onError', error, message)\n })\n }\n\n public isRecordActive(recordId: string): boolean {\n return this._strategy.onIsRecordActive(recordId);\n }\n\n public onOpenDatasetItem(entityReference: ComponentFramework.EntityReference): void {\n if (entityReference.etn === this.getEntityName()) {\n this.editTasks([entityReference.id.guid]);\n }\n else {\n //@ts-ignore - typings\n this._sourceDataProvider.onOpenDatasetItem(entityReference);\n }\n }\n\n public async destroy(): Promise<void> {\n super.destroy();\n this.taskEvents.clearEventListeners();\n }\n\n public getQuickFindColumns(): IColumn[] {\n return this._strategy.onGetQuickFindColumns().map(columnName => {\n return this.getColumnsMap()[columnName];\n }).filter(col => col) as IColumn[];\n }\n\n public createGroupedRecordDataProvider(group: IRecord): IDataProvider {\n const children = this._taskTree.getNodeMap().get(group.getRecordId())?.directChildren ?? [];\n return {\n ...this,\n getRecords: () => children,\n isError: () => this.isError(),\n refresh: () => children\n } as IDataProvider;\n }\n\n public getPaging() {\n const paging = super.getPaging();\n paging.totalResultCount = this._taskTree.getTotalCount()\n paging.pageSize = this._taskTree.getTotalCount();\n return paging;\n }\n\n public getRecords(): IRecord[] {\n const records = super.getRecords();\n if (records.length === 0 || this._taskTree.getNodeMap().size === 0) {\n return [];\n }\n return this._taskTree.getNodeMap().get(null as any)?.directChildren ?? [];\n }\n\n public getAllRecords(): IRecord[] {\n return super.getRecords();\n }\n\n public createNewDataProvider(eventBubbleOptions?: IEventBubbleOptions): IDataProvider {\n return new TaskDataProvider({\n localizationService: this._localizationService,\n nativeColumns: this._nativeColumns,\n strategy: this._strategy,\n onIsFlatListEnabled: () => this._onFlatListEnabled(),\n });\n }\n public async refresh(): Promise<IRecord[]> {\n if (!this._hasDataBeenLoaded) {\n await this._loadDataFromStrategy();\n this._hasDataBeenLoaded = true;\n }\n await super.refresh();\n return this.getAllRecords();\n }\n\n public dispatchEvent<K extends keyof IDataProviderEventListeners>(event: K, ...args: Parameters<IDataProviderEventListeners[K]>): boolean {\n if(event === 'onNewDataLoaded') {\n this._taskTree.build();\n }\n return super.dispatchEvent(event, ...args);\n }\n\n public getDataSync(pageNumber: number, pageSize: number, previousPageNumber: number, event: GetDataEvent): IRetrievedData {\n return {\n data: this.getDataSource(),\n hasNextPage: false,\n totalRecordCount: this.getDataSource().length\n }\n }\n\n private async _loadDataFromStrategy() {\n return ErrorHelper.executeWithErrorHandling({\n operation: async () => {\n const { columns, rawData, metadata } = await this._strategy.onInitialize(this);\n this.setDataSource(rawData);\n this.setMetadata(metadata);\n this.setColumns(columns);\n this.getPaging().setPageSize(rawData.length);\n this.setEntityName(metadata.LogicalName);\n },\n onError: (error, message) => this.taskEvents.dispatchEvent('onError', error, message)\n })\n }\n\n private _createTasks(rawRecords: IRawRecord[], parentId?: string) {\n const records: IRecord[] = [];\n for (const rawRecord of rawRecords) {\n const record = this.newRecord({\n rawData: rawRecord,\n recordId: rawRecord[this.getMetadata().PrimaryIdAttribute],\n position: 'start',\n },);\n const stackRankAttributeName = this.getNativeColumns().stackRank;\n if (record.getValue(stackRankAttributeName) == null) {\n console.warn(`Record with id ${record.getRecordId()} is missing stack rank value. Setting it to 0.`, record);\n record.setValue(stackRankAttributeName, 0);\n const newRawData = record.toRawData()\n record.setRawData(newRawData);\n }\n records.push(record);\n }\n if (records.length > 0) {\n this._taskTree.build();\n this.taskEvents.dispatchEvent('onRecordTreeUpdated', [parentId]);\n }\n }\n}"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './TaskDataProvider';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/components/TaskGrid/data-providers/task-data-provider/record-tree/RecordTree.d.ts
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { IRecord } from "@talxis/client-libraries";
|
|
2
|
+
import { ITaskDataProvider } from "../TaskDataProvider";
|
|
3
|
+
interface ITreeNode {
|
|
4
|
+
directChildren: IRecord[];
|
|
5
|
+
allChildren: IRecord[];
|
|
6
|
+
pathIds: string[];
|
|
7
|
+
pathStrings: string[];
|
|
8
|
+
index: number;
|
|
9
|
+
parent?: IRecord;
|
|
10
|
+
}
|
|
11
|
+
interface IRecordTreeParameters {
|
|
12
|
+
taskDataProvider: ITaskDataProvider;
|
|
13
|
+
}
|
|
14
|
+
export interface IRecordTree {
|
|
15
|
+
build(): Map<string, ITreeNode>;
|
|
16
|
+
getNodeMap(): Map<string, ITreeNode>;
|
|
17
|
+
getNode(recordId: string | null): ITreeNode;
|
|
18
|
+
getTotalCount(): number;
|
|
19
|
+
isFlat(): boolean;
|
|
20
|
+
hasChildren(recordId: string): boolean;
|
|
21
|
+
getMatchingRecords(): {
|
|
22
|
+
[recordId: string]: IRecord;
|
|
23
|
+
};
|
|
24
|
+
getSortedIds(): string[];
|
|
25
|
+
}
|
|
26
|
+
export declare class RecordTree implements IRecordTree {
|
|
27
|
+
private _nodeMap;
|
|
28
|
+
private _sortingMap;
|
|
29
|
+
private _matchingRecordsMap;
|
|
30
|
+
private _isFlat;
|
|
31
|
+
private _totalUniqueRecords;
|
|
32
|
+
private _sortedRecordIds;
|
|
33
|
+
private _records;
|
|
34
|
+
private _recordsMap;
|
|
35
|
+
private _taskDataProvider;
|
|
36
|
+
constructor(parameters: IRecordTreeParameters);
|
|
37
|
+
getNodeMap(): Map<string, ITreeNode>;
|
|
38
|
+
getTotalCount(): number;
|
|
39
|
+
isFlat(): boolean;
|
|
40
|
+
getMatchingRecords(): {
|
|
41
|
+
[recordId: string]: IRecord;
|
|
42
|
+
};
|
|
43
|
+
getNode(recordId: string | null): ITreeNode;
|
|
44
|
+
hasChildren(recordId: string): boolean;
|
|
45
|
+
getSortedIds(): string[];
|
|
46
|
+
build(): Map<string, ITreeNode>;
|
|
47
|
+
private _buildMatchingRecords;
|
|
48
|
+
private _buildSortingMap;
|
|
49
|
+
private _createBaseProvider;
|
|
50
|
+
private _buildPathForRecord;
|
|
51
|
+
private _patchRecordPaths;
|
|
52
|
+
private _getNativeColumns;
|
|
53
|
+
private _getTaskDataProvider;
|
|
54
|
+
}
|
|
55
|
+
export {};
|