@talxis/base-controls 1.2605.1 → 1.2605.2-alpha
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/OptionText/OptionText.js +1 -2
- package/dist/components/DatasetControl/EditColumns/OptionText/OptionText.js.map +1 -1
- package/dist/components/Lookup/Lookup.js +4 -1
- package/dist/components/Lookup/Lookup.js.map +1 -1
- package/dist/components/Lookup/hooks/useLookup.d.ts +4 -0
- package/dist/components/Lookup/translations.d.ts +4 -0
- package/dist/components/Lookup/translations.js +4 -0
- package/dist/components/Lookup/translations.js.map +1 -1
- package/dist/components/TaskGrid/TaskGrid.js +3 -4
- package/dist/components/TaskGrid/TaskGrid.js.map +1 -1
- package/dist/components/TaskGrid/TaskGridDatasetControl.d.ts +16 -5
- package/dist/components/TaskGrid/TaskGridDatasetControl.js +32 -13
- package/dist/components/TaskGrid/TaskGridDatasetControl.js.map +1 -1
- package/dist/components/TaskGrid/TaskGridDatasetControlFactory.d.ts +3 -2
- package/dist/components/TaskGrid/TaskGridDatasetControlFactory.js +7 -5
- package/dist/components/TaskGrid/TaskGridDatasetControlFactory.js.map +1 -1
- package/dist/components/TaskGrid/components/grid/cell-renderers/add-task-button/AddTaskButton.js +3 -8
- package/dist/components/TaskGrid/components/grid/cell-renderers/add-task-button/AddTaskButton.js.map +1 -1
- package/dist/components/TaskGrid/components/grid/cell-renderers/lookup-many/LookupManyCellRenderer.d.ts +7 -0
- package/dist/components/TaskGrid/components/grid/cell-renderers/lookup-many/LookupManyCellRenderer.js +99 -0
- package/dist/components/TaskGrid/components/grid/cell-renderers/lookup-many/LookupManyCellRenderer.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/cell-renderers/lookup-many/index.d.ts +1 -0
- package/dist/components/TaskGrid/components/grid/cell-renderers/lookup-many/index.js +2 -0
- package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/PercentComplete.d.ts +1 -0
- package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/PercentComplete.js +2 -1
- package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/PercentComplete.js.map +1 -1
- package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/index.js +1 -1
- package/dist/components/TaskGrid/components/grid/grid-customizer/GridCustomizer.d.ts +2 -7
- package/dist/components/TaskGrid/components/grid/grid-customizer/GridCustomizer.js +44 -18
- package/dist/components/TaskGrid/components/grid/grid-customizer/GridCustomizer.js.map +1 -1
- package/dist/components/TaskGrid/components/grid/grid-drag-handler/GridDragHandler.js.map +1 -1
- package/dist/components/TaskGrid/components/grid/lookup-many/LookupMany.d.ts +13 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/LookupMany.js +82 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/LookupMany.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/ColorfulLookupMany.d.ts +5 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/ColorfulLookupMany.js +12 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/ColorfulLookupMany.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/index.d.ts +2 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/index.js +13 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/index.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/multi-value-container/MultiValueContainer.d.ts +3 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/multi-value-container/MultiValueContainer.js +17 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/multi-value-container/MultiValueContainer.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/multi-value-container/index.d.ts +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/multi-value-container/index.js +2 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/option/Option.d.ts +3 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/option/Option.js +17 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/option/Option.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/option/index.d.ts +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/option/index.js +2 -0
- package/dist/components/TaskGrid/{data-providers/custom-columns-data-provider → components/grid/lookup-many/colorful-lookup-many/components/option}/index.js.map +1 -1
- package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/option/styles.d.ts +14 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/option/styles.js +21 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/option/styles.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/context.d.ts +4 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/context.js +9 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/context.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/index.d.ts +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/index.js +2 -0
- package/dist/components/TaskGrid/{data-providers/saved-query-data-provider → components/grid/lookup-many/colorful-lookup-many}/index.js.map +1 -1
- package/dist/components/TaskGrid/components/grid/lookup-many/components/index.d.ts +10 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/index.js +15 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/index.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-container/MultiValueContainer.d.ts +3 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-container/MultiValueContainer.js +15 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-container/MultiValueContainer.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-container/index.d.ts +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-container/index.js +2 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-container/index.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-container/styles.d.ts +18 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-container/styles.js +24 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-container/styles.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-label/MultiValueLabel.d.ts +3 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-label/MultiValueLabel.js +21 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-label/MultiValueLabel.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-label/index.d.ts +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-label/index.js +2 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-label/index.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-label/styles.d.ts +15 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-label/styles.js +22 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-label/styles.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-remove/MultiValueRemove.d.ts +3 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-remove/MultiValueRemove.js +18 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-remove/MultiValueRemove.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-remove/styles.d.ts +22 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-remove/styles.js +28 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-remove/styles.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/context.d.ts +4 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/context.js +9 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/context.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/index.d.ts +4 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/index.js +5 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/index.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/PeopleLookupMany.d.ts +5 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/PeopleLookupMany.js +12 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/PeopleLookupMany.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/index.d.ts +2 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/index.js +13 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/index.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-label/MultiValueLabel.d.ts +3 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-label/MultiValueLabel.js +17 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-label/MultiValueLabel.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-label/index.d.ts +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-label/index.js +2 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-label/index.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-label/styles.d.ts +5 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-label/styles.js +6 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-label/styles.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/option/Option.d.ts +3 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/option/Option.js +16 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/option/Option.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/option/index.d.ts +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/option/index.js +2 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/option/index.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/option/styles.d.ts +10 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/option/styles.js +11 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/option/styles.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/context.d.ts +4 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/context.js +9 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/context.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/index.d.ts +1 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/index.js +2 -0
- package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/index.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/multi-record-selector/MultiRecordSelector.d.ts +1 -0
- package/dist/components/TaskGrid/components/grid/multi-record-selector/MultiRecordSelector.js +27 -14
- package/dist/components/TaskGrid/components/grid/multi-record-selector/MultiRecordSelector.js.map +1 -1
- package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-container/MultiValueContainer.d.ts +3 -0
- package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-container/MultiValueContainer.js +13 -0
- package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-container/MultiValueContainer.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-container/styles.d.ts +18 -0
- package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-container/styles.js +24 -0
- package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-container/styles.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-label/MultiValueLabel.d.ts +3 -0
- package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-label/MultiValueLabel.js +19 -0
- package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-label/MultiValueLabel.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-label/styles.d.ts +12 -0
- package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-label/styles.js +19 -0
- package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-label/styles.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-remove/MultiValueRemove.d.ts +3 -0
- package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-remove/MultiValueRemove.js +16 -0
- package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-remove/MultiValueRemove.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-remove/styles.d.ts +22 -0
- package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-remove/styles.js +28 -0
- package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-remove/styles.js.map +1 -0
- package/dist/components/TaskGrid/components/grid/multi-record-selector/components/option/Option.d.ts +3 -0
- package/dist/components/TaskGrid/components/grid/multi-record-selector/components/option/styles.d.ts +16 -0
- package/dist/components/TaskGrid/components/grid/multi-record-selector/styles.d.ts +3 -0
- package/dist/components/TaskGrid/components/grid/multi-record-selector/styles.js +15 -0
- package/dist/components/TaskGrid/components/grid/multi-record-selector/styles.js.map +1 -0
- package/dist/components/TaskGrid/components/header/Header.js +5 -4
- package/dist/components/TaskGrid/components/header/Header.js.map +1 -1
- package/dist/components/TaskGrid/components/header/edit-columns/EditColumns.js.map +1 -1
- package/dist/components/TaskGrid/components/header/view-switcher/create-view-dialog/CreateViewDialog.js.map +1 -1
- package/dist/components/TaskGrid/components/header/view-switcher/view-manager/ViewManager.js.map +1 -1
- package/dist/components/TaskGrid/context.d.ts +5 -4
- package/dist/components/TaskGrid/context.js.map +1 -1
- package/dist/components/TaskGrid/extensions/LexoRank.d.ts +7 -0
- package/dist/components/TaskGrid/extensions/dataverse/DataverseCustomColumnsStrategy.d.ts +69 -0
- package/dist/components/TaskGrid/{data-providers/custom-columns-data-provider/TalxisCustomColumnsDataProviderStrategy.js → extensions/dataverse/DataverseCustomColumnsStrategy.js} +35 -3
- package/dist/components/TaskGrid/extensions/dataverse/DataverseCustomColumnsStrategy.js.map +1 -0
- package/dist/components/TaskGrid/extensions/dataverse/DataverseGridCustomizerStrategy.d.ts +20 -0
- package/dist/components/TaskGrid/extensions/dataverse/DataverseGridCustomizerStrategy.js +42 -0
- package/dist/components/TaskGrid/extensions/dataverse/DataverseGridCustomizerStrategy.js.map +1 -0
- package/dist/components/TaskGrid/extensions/dataverse/DataverseSavedQueryStrategy.d.ts +49 -0
- package/dist/components/TaskGrid/{data-providers/saved-query-data-provider/TalxisSavedQueryDataProvider.js → extensions/dataverse/DataverseSavedQueryStrategy.js} +37 -15
- package/dist/components/TaskGrid/extensions/dataverse/DataverseSavedQueryStrategy.js.map +1 -0
- package/dist/components/TaskGrid/extensions/dataverse/DataverseTaskGridDescriptor.d.ts +100 -0
- package/dist/components/TaskGrid/extensions/dataverse/DataverseTaskGridDescriptor.js +145 -0
- package/dist/components/TaskGrid/extensions/dataverse/DataverseTaskGridDescriptor.js.map +1 -0
- package/dist/components/TaskGrid/extensions/dataverse/DataverseTaskStrategy.d.ts +122 -0
- package/dist/components/TaskGrid/extensions/dataverse/DataverseTaskStrategy.js +453 -0
- package/dist/components/TaskGrid/extensions/dataverse/DataverseTaskStrategy.js.map +1 -0
- package/dist/components/TaskGrid/extensions/dataverse/index.d.ts +5 -0
- package/dist/components/TaskGrid/extensions/dataverse/index.js +6 -0
- package/dist/components/TaskGrid/extensions/dataverse/lookup-many/LookupManyHandler.d.ts +49 -0
- package/dist/components/TaskGrid/extensions/dataverse/lookup-many/LookupManyHandler.js +145 -0
- package/dist/components/TaskGrid/extensions/dataverse/lookup-many/LookupManyHandler.js.map +1 -0
- package/dist/components/TaskGrid/extensions/dataverse/lookup-many/cell-renderer/FetchXmlDataProviderFactory.d.ts +11 -0
- package/dist/components/TaskGrid/extensions/dataverse/lookup-many/cell-renderer/FetchXmlDataProviderFactory.js +16 -0
- package/dist/components/TaskGrid/extensions/dataverse/lookup-many/cell-renderer/FetchXmlDataProviderFactory.js.map +1 -0
- package/dist/components/TaskGrid/extensions/dataverse/lookup-many/cell-renderer/FetchXmlLookupManyCellRenderer.d.ts +2 -0
- package/dist/components/TaskGrid/extensions/dataverse/lookup-many/cell-renderer/FetchXmlLookupManyCellRenderer.js +29 -0
- package/dist/components/TaskGrid/extensions/dataverse/lookup-many/cell-renderer/FetchXmlLookupManyCellRenderer.js.map +1 -0
- package/dist/components/TaskGrid/interfaces.d.ts +30 -12
- package/dist/components/TaskGrid/labels.d.ts +1 -15
- package/dist/components/TaskGrid/labels.js +2 -16
- package/dist/components/TaskGrid/labels.js.map +1 -1
- package/dist/components/TaskGrid/{data-providers/custom-columns-data-provider → providers/custom-columns}/CustomColumnsDataProvider.d.ts +5 -1
- package/dist/components/TaskGrid/providers/custom-columns/CustomColumnsDataProvider.js.map +1 -0
- package/dist/components/TaskGrid/providers/custom-columns/index.d.ts +1 -0
- package/dist/components/TaskGrid/providers/custom-columns/index.js +2 -0
- package/dist/components/TaskGrid/providers/custom-columns/index.js.map +1 -0
- package/dist/components/TaskGrid/providers/index.d.ts +3 -0
- package/dist/components/TaskGrid/providers/index.js +4 -0
- package/dist/components/TaskGrid/providers/index.js.map +1 -0
- package/dist/components/TaskGrid/{data-providers/saved-query-data-provider → providers/saved-query}/SavedQueryDataProvider.d.ts +13 -8
- package/dist/components/TaskGrid/{data-providers/saved-query-data-provider → providers/saved-query}/SavedQueryDataProvider.js +87 -50
- package/dist/components/TaskGrid/providers/saved-query/SavedQueryDataProvider.js.map +1 -0
- package/dist/components/TaskGrid/providers/saved-query/index.d.ts +1 -0
- package/dist/components/TaskGrid/providers/saved-query/index.js +2 -0
- package/dist/components/TaskGrid/providers/saved-query/index.js.map +1 -0
- package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/TaskDataProvider.d.ts +15 -22
- package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/TaskDataProvider.js +35 -26
- package/dist/components/TaskGrid/providers/task/TaskDataProvider.js.map +1 -0
- package/dist/components/TaskGrid/providers/task/index.js.map +1 -0
- package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/record-tree/RecordTree.js +2 -0
- package/dist/components/TaskGrid/providers/task/record-tree/RecordTree.js.map +1 -0
- package/dist/components/TaskGrid/providers/task/record-tree/index.js.map +1 -0
- package/dist/components/TaskGrid/providers/task/record-tree/patchDataBuilderPrepare.js.map +1 -0
- package/dist/index.d.ts +177 -165
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/utils/dataset/adapters/VirtualDatasetAdapter.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/localization/LocalizationService.d.ts +15 -0
- package/dist/utils/localization/LocalizationService.js +17 -0
- package/dist/utils/localization/LocalizationService.js.map +1 -0
- package/dist/utils/localization/index.d.ts +1 -0
- package/dist/utils/localization/index.js +2 -0
- package/dist/utils/localization/index.js.map +1 -0
- package/package.json +5 -4
- package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/CustomColumnsDataProvider.js.map +0 -1
- package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/TalxisCustomColumnsDataProviderStrategy.d.ts +0 -33
- package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/TalxisCustomColumnsDataProviderStrategy.js.map +0 -1
- package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/index.d.ts +0 -2
- package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/index.js +0 -3
- package/dist/components/TaskGrid/data-providers/index.d.ts +0 -3
- package/dist/components/TaskGrid/data-providers/index.js +0 -6
- package/dist/components/TaskGrid/data-providers/saved-query-data-provider/SavedQueryDataProvider.js.map +0 -1
- package/dist/components/TaskGrid/data-providers/saved-query-data-provider/TalxisSavedQueryDataProvider.d.ts +0 -21
- package/dist/components/TaskGrid/data-providers/saved-query-data-provider/TalxisSavedQueryDataProvider.js.map +0 -1
- package/dist/components/TaskGrid/data-providers/saved-query-data-provider/index.d.ts +0 -2
- package/dist/components/TaskGrid/data-providers/saved-query-data-provider/index.js +0 -3
- package/dist/components/TaskGrid/data-providers/task-data-provider/TaskDataProvider.js.map +0 -1
- package/dist/components/TaskGrid/data-providers/task-data-provider/record-tree/RecordTree.js.map +0 -1
- package/dist/components/TaskGrid/data-providers/task-data-provider/record-tree/patchDataBuilderPrepare.js.map +0 -1
- /package/dist/components/TaskGrid/{data-providers/task-data-provider → components/grid/cell-renderers/lookup-many}/index.js.map +0 -0
- /package/dist/components/TaskGrid/{data-providers/task-data-provider/record-tree → components/grid/lookup-many/colorful-lookup-many/components/multi-value-container}/index.js.map +0 -0
- /package/dist/components/TaskGrid/{data-providers → extensions/dataverse}/index.js.map +0 -0
- /package/dist/components/TaskGrid/{data-providers/custom-columns-data-provider → providers/custom-columns}/CustomColumnsDataProvider.js +0 -0
- /package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/index.d.ts +0 -0
- /package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/index.js +0 -0
- /package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/record-tree/RecordTree.d.ts +0 -0
- /package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/record-tree/index.d.ts +0 -0
- /package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/record-tree/index.js +0 -0
- /package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/record-tree/patchDataBuilderPrepare.d.ts +0 -0
- /package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/record-tree/patchDataBuilderPrepare.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"labels.js","sources":["../../../src/components/TaskGrid/labels.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"labels.js","sources":["../../../src/components/TaskGrid/labels.ts"],"sourcesContent":["export interface ITaskGridLabels {\n name: string;\n no: string;\n yes: string;\n ok: string;\n confirm: string;\n confirmation: string;\n myViews: string;\n systemViews: string;\n saveAsNew: string;\n saveExisting: string;\n manageViews: string;\n deleteView: string;\n cancel: string;\n save: string;\n loading: string;\n reordering: string;\n search: string;\n editColumns: string;\n allTasks: string;\n new: string;\n bulkEdit: string;\n settings: string;\n 'reorderingTaskDialog.text.children': string;\n 'reorderingTaskDialog.text.above': string;\n 'reorderingTaskDialog.text.below': string;\n 'reorderingTaskTemplateDialog.text.children': string;\n 'reorderingTaskTemplateDialog.text.topLevel': string;\n 'reorderingTaskDialog.manyChildrenWarning': string;\n creatingTemplateFromTasks: string;\n creatingTasksFromTemplate: string;\n templateCreatedSuccessfully: string;\n description: string;\n noTaskTemplates: string;\n path: string;\n addChild: string;\n addCustomColumn: string;\n confirmColumnDelete: string;\n confirmColumnEdit: string;\n loadingTemplates: string;\n taskFromTemplate: string;\n templateFromTask: string;\n loadingMilestones: string;\n chooseExisting: string;\n noMilestones: string;\n loadingContracts: string;\n createFromContract: string;\n noContracts: string;\n createManually: string;\n newRecord: string;\n filterByKeyword: string;\n deleteSelected: string;\n showHierarchy: string;\n 'confirmDialog.deleteSelectedRows.text': string;\n topLevel: string;\n canNotDeleteCompleted: string;\n canNotDeletedRecordsWithChild: string;\n canNotEditCompletedTask: string;\n selectMaximumOneTask: string;\n hideInactiveTasks: string;\n successfulOperationDialogTitle: string;\n warningDialogTitle: string;\n informationDialogTitle: string;\n couldNotFindRecord: string;\n wrongBaseRecord: string;\n fillRecordId: string;\n fillEntityName: string;\n fillFetchXml: string;\n myTemplates: string;\n publicTemplates: string;\n updatingTasks: string;\n deletingTasks: string;\n deletingTasksError: string;\n noRecordsFound: string;\n unexpectedErrorOccurred: string;\n deletingUserQueriesError: string;\n}\n\nexport const TASK_GRID_LABELS: ITaskGridLabels = {\n name: 'Name',\n no: 'No',\n yes: 'Yes',\n ok: 'Ok',\n path: 'Path',\n confirm: 'Confirm',\n confirmation: 'Confirmation',\n myViews: 'My views',\n systemViews: 'System views',\n saveAsNew: 'Save as new view',\n saveExisting: 'Save changes to current view',\n manageViews: 'Manage views',\n deleteView: \"Are you sure you want to delete this view? You can't undo this action.\",\n cancel: 'Cancel',\n save: 'Save',\n loading: 'Loading...',\n reordering: 'Reordering',\n search: 'Search',\n editColumns: 'Edit columns',\n allTasks: 'All Tasks',\n new: 'New',\n bulkEdit: 'Edit',\n settings: 'Settings',\n 'reorderingTaskDialog.text.children': 'Do you want to make \"{{ baseRecord }}\" children of \"{{ overBaseRecord }}\"?',\n 'reorderingTaskDialog.text.above': 'Do you want to move \"{{ baseRecord }}\" above \"{{ overBaseRecord }}\"?',\n 'reorderingTaskDialog.text.below': 'Do you want to move \"{{ baseRecord }}\" below \"{{ overBaseRecord }}\"?',\n 'reorderingTaskTemplateDialog.text.children': 'Do you want to make \"{{ baseRecord }}\" children of \"{{ overBaseRecord }}\"?',\n 'reorderingTaskTemplateDialog.text.topLevel': 'Do you want to make \"{{ baseRecord }}\" top-level template?',\n 'reorderingTaskDialog.manyChildrenWarning': 'You are about to move {{ numberOfRecords }} records. Do you wish to continue?',\n creatingTemplateFromTasks: 'Creating template from task...',\n creatingTasksFromTemplate: 'Creating tasks from template...',\n templateCreatedSuccessfully: 'Template was created successfully.',\n description: 'Description',\n noTaskTemplates: 'No task templates',\n addChild: 'Add Child',\n addCustomColumn: 'Create Custom Column',\n confirmColumnDelete: 'Do you want to delete the selected column?',\n confirmColumnEdit: 'To edit the column, all data needs to be reloaded. Do you want to continue?',\n loadingTemplates: 'Loading templates...',\n taskFromTemplate: 'Task From Template',\n templateFromTask: 'Template From Task',\n loadingMilestones: 'Loading milestones...',\n chooseExisting: 'Choose existing',\n noMilestones: 'No milestones',\n loadingContracts: 'Loading contracts...',\n createFromContract: 'Create from contract',\n noContracts: 'No contracts',\n createManually: 'Create manually',\n newRecord: 'New Record',\n filterByKeyword: 'Filter by keyword',\n deleteSelected: 'Delete',\n showHierarchy: 'Show hierarchy',\n 'confirmDialog.deleteSelectedRows.text': 'Are you sure you want to delete selected rows?',\n topLevel: 'Top-level',\n canNotDeleteCompleted: \"You can't delete completed one.\",\n canNotDeletedRecordsWithChild: \"You can't delete records with children.\",\n canNotEditCompletedTask: \"You can't edit completed task.\",\n selectMaximumOneTask: 'Select maximum one task.',\n hideInactiveTasks: 'Hide inactive tasks',\n successfulOperationDialogTitle: 'Success',\n warningDialogTitle: 'Warning',\n informationDialogTitle: 'Information',\n couldNotFindRecord: 'Could not find base record from the fetch xml!',\n wrongBaseRecord: 'Base record has to be task or task template entity!',\n fillRecordId: 'Fill record id to retrieve base records!',\n fillEntityName: 'Fill entity name to retrieve base records!',\n fillFetchXml: 'Fill fetch xml to retrieve base records!',\n myTemplates: 'My Templates',\n publicTemplates: 'Public Templates',\n updatingTasks: 'Updating task...',\n deletingTasks: 'Deleting task...',\n deletingTasksError: 'Some tasks could not be deleted due to following reasons:',\n deletingUserQueriesError: 'Some views could not be deleted due to following reasons:',\n noRecordsFound: 'No records found.',\n unexpectedErrorOccurred: 'Unexpected error occurred.',\n}"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IColumn, IEventEmitter } from "@talxis/client-libraries";
|
|
1
|
+
import { IColumn, IEventEmitter, IRawRecord } from "@talxis/client-libraries";
|
|
2
2
|
/** Strategy interface for managing user-defined (dynamic) column definitions. */
|
|
3
3
|
export interface ICustomColumnsStrategy {
|
|
4
4
|
/** @returns The created column name, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */
|
|
@@ -11,6 +11,10 @@ export interface ICustomColumnsStrategy {
|
|
|
11
11
|
onRefresh: () => Promise<IColumn[]>;
|
|
12
12
|
/** Returns the currently loaded custom columns synchronously without a network fetch. */
|
|
13
13
|
onGetColumns: () => IColumn[];
|
|
14
|
+
/** Fetches the raw records for custom columns. */
|
|
15
|
+
onGetRawRecords: () => Promise<IRawRecord[]>;
|
|
16
|
+
/** Fetches a single raw record by its ID. */
|
|
17
|
+
onGetRawRecord: (recordId: string) => Promise<IRawRecord>;
|
|
14
18
|
}
|
|
15
19
|
/** Manages the lifecycle of dynamic (user-defined) columns and wraps the strategy with error handling. */
|
|
16
20
|
export interface ICustomColumnsDataProvider {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CustomColumnsDataProvider.js","sources":["../../../../../src/components/TaskGrid/providers/custom-columns/CustomColumnsDataProvider.ts"],"sourcesContent":["import { DatasetConstants, IColumn, IEventEmitter, EventEmitter, IRawRecord } from \"@talxis/client-libraries\";\nimport { ErrorHelper } from \"../../../../utils\";\n\n\n/** Strategy interface for managing user-defined (dynamic) column definitions. */\nexport interface ICustomColumnsStrategy {\n /** @returns The created column name, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */\n onCreateColumn: () => Promise<string | null>;\n /** @returns The deleted column name, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */\n onDeleteColumn: (columnName: string) => Promise<string | null>;\n /** @returns The updated column name, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */\n onUpdateColumn: (columnName: string) => Promise<string | null>;\n /** Fetches/reloads all custom column definitions and returns the resolved `IColumn[]`. */\n onRefresh: () => Promise<IColumn[]>;\n /** Returns the currently loaded custom columns synchronously without a network fetch. */\n onGetColumns: () => IColumn[];\n /** Fetches the raw records for custom columns. */\n onGetRawRecords: () => Promise<IRawRecord[]>;\n /** Fetches a single raw record by its ID. */\n onGetRawRecord: (recordId: string) => Promise<IRawRecord>;\n}\n\n/** Manages the lifecycle of dynamic (user-defined) columns and wraps the strategy with error handling. */\nexport interface ICustomColumnsDataProvider {\n /** EventEmitter for error events raised by column operations. */\n events: IEventEmitter<ICustomColumnsDataProviderEvents>;\n /** @returns The created column name, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */\n createColumn: () => Promise<string | null>;\n /** @returns The deleted column name, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */\n deleteColumn: (columnName: string) => Promise<string | null>;\n /** @returns The updated column name, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */\n updateColumn: (columnName: string) => Promise<string | null>;\n /** Refreshes the list of custom columns from the underlying strategy. */\n refresh: () => Promise<IColumn[]>;\n /** Returns the currently cached list of custom columns. */\n getColumns: () => IColumn[];\n /** Returns the underlying strategy cast to the given type for strategy-specific operations. */\n getStrategy<T extends ICustomColumnsStrategy>(): T;\n /** Returns `true` when the given column name is a custom (dynamic) column. */\n isCustomColumn: (columnName: string) => boolean;\n destroy: () => void;\n}\n\nexport interface ICustomColumnsDataProviderEvents {\n onError: (error: any, message: string) => void;\n}\n\nexport class CustomColumnsDataProvider implements ICustomColumnsDataProvider {\n private _strategy: ICustomColumnsStrategy;\n public events: IEventEmitter<ICustomColumnsDataProviderEvents> = new EventEmitter();\n\n constructor(strategy: ICustomColumnsStrategy) {\n this._strategy = strategy;\n }\n public getStrategy<T extends ICustomColumnsStrategy>(): T {\n return this._strategy as T;\n }\n public async createColumn(): Promise<string | null> {\n return ErrorHelper.executeWithErrorHandling({\n operation: () => this._strategy.onCreateColumn(),\n onError: (error, message) => this.events.dispatchEvent('onError', error, message)\n })\n }\n public async deleteColumn(columnName: string): Promise<string | null> {\n return ErrorHelper.executeWithErrorHandling({\n operation: () => this._strategy.onDeleteColumn(columnName),\n onError: (error, message) => this.events.dispatchEvent('onError', error, message)\n })\n }\n public async updateColumn(columnName: string): Promise<string | null> {\n return ErrorHelper.executeWithErrorHandling({\n operation: () => this._strategy.onUpdateColumn(columnName),\n onError: (error, message) => this.events.dispatchEvent('onError', error, message)\n })\n }\n public destroy(): void {\n this.events.clearEventListeners();\n }\n public getColumns(): IColumn[] {\n return this._strategy.onGetColumns();\n }\n public async refresh(): Promise<IColumn[]> {\n return await this._strategy.onRefresh();\n }\n public isCustomColumn(columnName: string): boolean {\n return columnName.endsWith(DatasetConstants.CUSTOM_COLUMN_NAME_SUFFIX);\n }\n}"],"names":[],"mappings":";;;MA+Ca,yBAAyB,CAAA;AAIlC,IAAA,WAAA,CAAY,QAAgC,EAAA;AAFrC,QAAA,IAAA,CAAA,MAAM,GAAoD,IAAI,YAAY,EAAE,CAAC;AAGhF,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;KAC7B;IACM,WAAW,GAAA;QACd,OAAO,IAAI,CAAC,SAAc,CAAC;KAC9B;AACM,IAAA,MAAM,YAAY,GAAA;QACrB,OAAO,WAAW,CAAC,wBAAwB,CAAC;YACxC,SAAS,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE;AAChD,YAAA,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC;AACpF,SAAA,CAAC,CAAA;KACL;IACM,MAAM,YAAY,CAAC,UAAkB,EAAA;QACxC,OAAO,WAAW,CAAC,wBAAwB,CAAC;YACxC,SAAS,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC;AAC1D,YAAA,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC;AACpF,SAAA,CAAC,CAAA;KACL;IACM,MAAM,YAAY,CAAC,UAAkB,EAAA;QACxC,OAAO,WAAW,CAAC,wBAAwB,CAAC;YACxC,SAAS,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC;AAC1D,YAAA,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC;AACpF,SAAA,CAAC,CAAA;KACL;IACM,OAAO,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;KACrC;IACM,UAAU,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;KACxC;AACM,IAAA,MAAM,OAAO,GAAA;AAChB,QAAA,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;KAC3C;AACM,IAAA,cAAc,CAAC,UAAkB,EAAA;QACpC,OAAO,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,CAAC;KAC1E;AACJ;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './CustomColumnsDataProvider';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { TaskDataProvider } from './task/TaskDataProvider.js';
|
|
2
|
+
export { PATH_COLUMN_NAME, SavedQueryDataProvider } from './saved-query/SavedQueryDataProvider.js';
|
|
3
|
+
export { CustomColumnsDataProvider } from './custom-columns/CustomColumnsDataProvider.js';
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
/// <reference types="@types/powerapps-component-framework" />
|
|
2
2
|
import { EventEmitter, IColumn, IEventEmitter } from "@talxis/client-libraries";
|
|
3
|
-
import { ITaskDataProvider } from "../task
|
|
4
|
-
import { ICustomColumnsDataProvider } from "../custom-columns
|
|
3
|
+
import { ITaskDataProvider } from "../task";
|
|
4
|
+
import { ICustomColumnsDataProvider } from "../custom-columns/CustomColumnsDataProvider";
|
|
5
5
|
import { INativeColumns } from "../../interfaces";
|
|
6
|
+
import { ILocalizationService } from "../../../../utils";
|
|
7
|
+
import { ITaskGridLabels } from "../../labels";
|
|
6
8
|
export interface ICreateUserQueryParams {
|
|
7
9
|
name: string;
|
|
8
10
|
provider: ITaskDataProvider;
|
|
@@ -43,7 +45,9 @@ export interface ISavedQueryMetadata {
|
|
|
43
45
|
linking?: ComponentFramework.PropertyHelper.DataSetApi.LinkEntityExposedExpression[];
|
|
44
46
|
isFlatListEnabled?: boolean;
|
|
45
47
|
searchQuery?: string | undefined;
|
|
48
|
+
quickFindColumns?: string[];
|
|
46
49
|
}
|
|
50
|
+
export declare const PATH_COLUMN_NAME = "path__virtual";
|
|
47
51
|
/** Strategy interface for loading and persisting system and user-defined saved views (queries). */
|
|
48
52
|
export interface ISavedQueryStrategy {
|
|
49
53
|
/** Returns the built-in (non-deletable) views. At least one system query must be returned. */
|
|
@@ -82,14 +86,11 @@ export interface ISavedQueryDataProvider {
|
|
|
82
86
|
deleteUserQueries: (queryIds: string[]) => Promise<IDeletedUserQueriesResult>;
|
|
83
87
|
/** Fetches system and user queries from the strategy and sets the initial active query. */
|
|
84
88
|
refresh: () => Promise<void>;
|
|
85
|
-
/** Ensures all required native columns (subject, parentId, stackRank, path, stateCode) are present in the provided columns array. */
|
|
86
|
-
includeRequiredColumns: (columns: IColumn[]) => void;
|
|
87
|
-
/** Enforces column constraints: subject is never hidden; path column is always read-only. */
|
|
88
|
-
harmonizeColumns: (columns: IColumn[]) => void;
|
|
89
89
|
destroy: () => void;
|
|
90
90
|
}
|
|
91
91
|
interface ISavedQueryDataProviderParameters {
|
|
92
92
|
nativeColumns: INativeColumns;
|
|
93
|
+
localizationService: ILocalizationService<ITaskGridLabels>;
|
|
93
94
|
customColumnsDataProvider?: ICustomColumnsDataProvider;
|
|
94
95
|
preferredQuery?: Partial<ISavedQuery> & {
|
|
95
96
|
id: string;
|
|
@@ -102,6 +103,8 @@ export declare class SavedQueryDataProvider implements ISavedQueryDataProvider {
|
|
|
102
103
|
private _userQueries;
|
|
103
104
|
private _customColumnsDataProvider?;
|
|
104
105
|
private _nativeColumns;
|
|
106
|
+
private _localizationService;
|
|
107
|
+
private _systemQueriesColumnsMap;
|
|
105
108
|
private _preferredQuery?;
|
|
106
109
|
queryEvents: EventEmitter<ISavedQueryDataProviderEvents>;
|
|
107
110
|
constructor(strategy: ISavedQueryStrategy, parameters: ISavedQueryDataProviderParameters);
|
|
@@ -115,11 +118,13 @@ export declare class SavedQueryDataProvider implements ISavedQueryDataProvider {
|
|
|
115
118
|
deleteUserQueries(queryIds: string[]): Promise<IDeletedUserQueriesResult>;
|
|
116
119
|
destroy(): Promise<void>;
|
|
117
120
|
refresh(): Promise<void>;
|
|
121
|
+
private _processQueries;
|
|
122
|
+
private _includeRequiredColumns;
|
|
123
|
+
private _harmonizeColumns;
|
|
124
|
+
private _includePathColumn;
|
|
118
125
|
private _getMetadataForSavedQuery;
|
|
119
126
|
private _addPropToMetadataQueryCol;
|
|
120
127
|
private _isCustomColumnResolvable;
|
|
121
128
|
private _parseSavedQueryMetadata;
|
|
122
|
-
includeRequiredColumns(columns: IColumn[]): void;
|
|
123
|
-
harmonizeColumns(columns: IColumn[]): void;
|
|
124
129
|
}
|
|
125
130
|
export {};
|
|
@@ -1,16 +1,19 @@
|
|
|
1
|
-
import { EventEmitter } from '@talxis/client-libraries';
|
|
1
|
+
import { EventEmitter, DataTypes } from '@talxis/client-libraries';
|
|
2
2
|
import { ErrorHelper } from '../../../../utils/error-handling/ErrorHelper.js';
|
|
3
3
|
|
|
4
|
-
const
|
|
4
|
+
const PATH_COLUMN_NAME = 'path__virtual';
|
|
5
|
+
const REQUIRED_COLUMNS = ['subject', 'parentId', 'stackRank', 'stateCode'];
|
|
5
6
|
class SavedQueryDataProvider {
|
|
6
7
|
constructor(strategy, parameters) {
|
|
7
8
|
this._systemQueries = [];
|
|
8
9
|
this._userQueries = [];
|
|
10
|
+
this._systemQueriesColumnsMap = new Map();
|
|
9
11
|
this.queryEvents = new EventEmitter();
|
|
10
12
|
this._strategy = strategy;
|
|
11
13
|
this._preferredQuery = parameters.preferredQuery;
|
|
12
14
|
this._nativeColumns = parameters.nativeColumns;
|
|
13
15
|
this._customColumnsDataProvider = parameters.customColumnsDataProvider;
|
|
16
|
+
this._localizationService = parameters.localizationService;
|
|
14
17
|
}
|
|
15
18
|
getSystemQueries() {
|
|
16
19
|
return this._systemQueries;
|
|
@@ -32,10 +35,7 @@ class SavedQueryDataProvider {
|
|
|
32
35
|
if (!query) {
|
|
33
36
|
throw new Error(`Query with id ${id} not found. Make sure to call refresh() and wait for it to complete before accessing the saved query.`);
|
|
34
37
|
}
|
|
35
|
-
return
|
|
36
|
-
...query,
|
|
37
|
-
...this._parseSavedQueryMetadata(query)
|
|
38
|
-
};
|
|
38
|
+
return query;
|
|
39
39
|
}
|
|
40
40
|
async updateUserQuery(provider) {
|
|
41
41
|
this.queryEvents.dispatchEvent('onBeforeUserQueryUpdated', this.getCurrentQuery().id);
|
|
@@ -86,20 +86,79 @@ class SavedQueryDataProvider {
|
|
|
86
86
|
async refresh() {
|
|
87
87
|
const systemQueries = await this._strategy.onGetSystemQueries();
|
|
88
88
|
const userQueries = await this._strategy.onGetUserQueries();
|
|
89
|
+
if (systemQueries.length === 0) {
|
|
90
|
+
throw new Error('At least one system query is required');
|
|
91
|
+
}
|
|
92
|
+
this._includePathColumn(systemQueries[0].columns);
|
|
89
93
|
const allQueries = [...systemQueries, ...userQueries];
|
|
90
94
|
this._systemQueries = systemQueries;
|
|
91
95
|
this._userQueries = userQueries;
|
|
92
|
-
|
|
93
|
-
|
|
96
|
+
this._systemQueriesColumnsMap = new Map(systemQueries.flatMap(query => query.columns.map(col => [col.name, col])));
|
|
97
|
+
const preferredQueryInAllQueries = allQueries.find(q => q.id === this._preferredQuery?.id);
|
|
98
|
+
this._currentQuery = preferredQueryInAllQueries ?? userQueries[0] ?? systemQueries[0];
|
|
99
|
+
//preferred query might have some required columns missing
|
|
100
|
+
this._currentQuery = this._processQueries([{
|
|
101
|
+
...this._currentQuery,
|
|
102
|
+
...(preferredQueryInAllQueries ? this._preferredQuery : {}),
|
|
103
|
+
}])[0];
|
|
104
|
+
}
|
|
105
|
+
_processQueries(queries) {
|
|
106
|
+
return queries.map(query => {
|
|
107
|
+
this._includeRequiredColumns(query.columns);
|
|
108
|
+
this._harmonizeColumns(query.columns);
|
|
109
|
+
return {
|
|
110
|
+
...query,
|
|
111
|
+
...this._parseSavedQueryMetadata(query)
|
|
112
|
+
};
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
_includeRequiredColumns(columns) {
|
|
116
|
+
const allQueries = [...this.getSystemQueries(), ...this.getUserQueries()];
|
|
117
|
+
const allQueryColumns = [...new Map(allQueries.flatMap(query => query.columns.map(col => [col.name, col]))).values()];
|
|
118
|
+
for (const requiredColumnName of REQUIRED_COLUMNS) {
|
|
119
|
+
const mappedRequiredColumnName = this._nativeColumns[requiredColumnName];
|
|
120
|
+
if (!columns.find(col => col.name === mappedRequiredColumnName)) {
|
|
121
|
+
const columnFromQueries = allQueryColumns.find(col => col.name === mappedRequiredColumnName);
|
|
122
|
+
if (!columnFromQueries) {
|
|
123
|
+
throw new Error(`Required column ${mappedRequiredColumnName} is missing from both current query and all available queries`);
|
|
124
|
+
}
|
|
125
|
+
columns.push({
|
|
126
|
+
...columnFromQueries,
|
|
127
|
+
isHidden: true
|
|
128
|
+
});
|
|
129
|
+
}
|
|
94
130
|
}
|
|
95
|
-
this.
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
131
|
+
this._includePathColumn(columns);
|
|
132
|
+
}
|
|
133
|
+
_harmonizeColumns(columns) {
|
|
134
|
+
for (const column of columns) {
|
|
135
|
+
switch (column.name) {
|
|
136
|
+
case this._nativeColumns.subject: {
|
|
137
|
+
column.isHidden = false;
|
|
138
|
+
break;
|
|
139
|
+
}
|
|
140
|
+
case this._nativeColumns.path: {
|
|
141
|
+
column.metadata = {
|
|
142
|
+
...column.metadata,
|
|
143
|
+
IsValidForUpdate: false
|
|
144
|
+
};
|
|
145
|
+
break;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
_includePathColumn(columns) {
|
|
151
|
+
if (!columns.find(col => col.name === PATH_COLUMN_NAME)) {
|
|
152
|
+
columns.push({
|
|
153
|
+
name: PATH_COLUMN_NAME,
|
|
154
|
+
dataType: DataTypes.Multiple,
|
|
155
|
+
displayName: this._localizationService.getLocalizedString('path'),
|
|
156
|
+
isVirtual: true,
|
|
157
|
+
visualSizeFactor: 300,
|
|
158
|
+
isHidden: true
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
return columns;
|
|
103
162
|
}
|
|
104
163
|
_getMetadataForSavedQuery(provider) {
|
|
105
164
|
return {
|
|
@@ -108,6 +167,7 @@ class SavedQueryDataProvider {
|
|
|
108
167
|
linking: provider.getLinking(),
|
|
109
168
|
searchQuery: provider.getSearchQuery(),
|
|
110
169
|
isFlatListEnabled: provider.isFlatListEnabled(),
|
|
170
|
+
quickFindColumns: provider.getQuickFindColumns().map(col => col.name),
|
|
111
171
|
columns: [
|
|
112
172
|
...provider.getColumns().map((col) => {
|
|
113
173
|
const newCol = {
|
|
@@ -136,11 +196,19 @@ class SavedQueryDataProvider {
|
|
|
136
196
|
}
|
|
137
197
|
_parseSavedQueryMetadata(metadata) {
|
|
138
198
|
const parsed = metadata;
|
|
199
|
+
// Enrich partial column definitions with full definitions from system queries
|
|
200
|
+
let columns = parsed.columns.map(col => {
|
|
201
|
+
const systemCol = this._systemQueriesColumnsMap.get(col.name);
|
|
202
|
+
if (!systemCol && col.isVirtual) {
|
|
203
|
+
throw new Error(`Virtual column ${col.name} is missing from system queries. Make sure all virtual columns are included in the system queries returned by the strategy's onGetSystemQueries method.`);
|
|
204
|
+
}
|
|
205
|
+
return systemCol ? { ...systemCol, ...col, metadata: { ...systemCol.metadata, ...col.metadata } } : col;
|
|
206
|
+
});
|
|
139
207
|
if (!this._customColumnsDataProvider) {
|
|
140
|
-
return parsed;
|
|
208
|
+
return { ...parsed, columns };
|
|
141
209
|
}
|
|
142
210
|
const customColumnsMap = new Map(this._customColumnsDataProvider.getColumns().map(col => [col.name, col]));
|
|
143
|
-
|
|
211
|
+
columns = columns.filter(col => this._isCustomColumnResolvable(col.name, customColumnsMap));
|
|
144
212
|
columns = columns.map(col => {
|
|
145
213
|
const customCol = customColumnsMap.get(col.name);
|
|
146
214
|
return customCol ? { ...customCol, ...col, metadata: { ...customCol.metadata, ...col.metadata } } : col;
|
|
@@ -155,38 +223,7 @@ class SavedQueryDataProvider {
|
|
|
155
223
|
} : undefined
|
|
156
224
|
};
|
|
157
225
|
}
|
|
158
|
-
includeRequiredColumns(columns) {
|
|
159
|
-
const allQueries = [...this.getSystemQueries(), ...this.getUserQueries()];
|
|
160
|
-
const allQueryColumns = [...new Map(allQueries.flatMap(query => query.columns.map(col => [col.name, col]))).values()];
|
|
161
|
-
for (const requiredColumnName of REQUIRED_COLUMNS) {
|
|
162
|
-
const mappedRequiredColumnName = this._nativeColumns[requiredColumnName];
|
|
163
|
-
if (!columns.find(col => col.name === mappedRequiredColumnName)) {
|
|
164
|
-
const columnFromQueries = allQueryColumns.find(col => col.name === mappedRequiredColumnName);
|
|
165
|
-
if (!columnFromQueries) {
|
|
166
|
-
throw new Error(`Required column ${mappedRequiredColumnName} is missing from both current query and all available queries`);
|
|
167
|
-
}
|
|
168
|
-
columns.push(columnFromQueries);
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
harmonizeColumns(columns) {
|
|
173
|
-
for (const column of columns) {
|
|
174
|
-
switch (column.name) {
|
|
175
|
-
case this._nativeColumns.subject: {
|
|
176
|
-
column.isHidden = false;
|
|
177
|
-
break;
|
|
178
|
-
}
|
|
179
|
-
case this._nativeColumns.path: {
|
|
180
|
-
column.metadata = {
|
|
181
|
-
...column.metadata,
|
|
182
|
-
IsValidForUpdate: false
|
|
183
|
-
};
|
|
184
|
-
break;
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
226
|
}
|
|
190
227
|
|
|
191
|
-
export { SavedQueryDataProvider };
|
|
228
|
+
export { PATH_COLUMN_NAME, SavedQueryDataProvider };
|
|
192
229
|
//# sourceMappingURL=SavedQueryDataProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SavedQueryDataProvider.js","sources":["../../../../../src/components/TaskGrid/providers/saved-query/SavedQueryDataProvider.ts"],"sourcesContent":["import { DataTypes, EventEmitter, IColumn, IEventEmitter, IFetchXmlDataProviderColumn } from \"@talxis/client-libraries\";\nimport { ITaskDataProvider } from \"../task\";\nimport { ICustomColumnsDataProvider } from \"../custom-columns/CustomColumnsDataProvider\";\nimport { INativeColumns } from \"../../interfaces\";\nimport { ErrorHelper, ILocalizationService } from \"../../../../utils\";\nimport { ITaskGridLabels } from \"../../labels\";\n\n\nexport interface ICreateUserQueryParams {\n name: string;\n provider: ITaskDataProvider;\n description?: string;\n}\n\nexport interface IUpdateUserQueryParams {\n queryId: string;\n queryMetadata: ISavedQueryMetadata;\n}\n\nexport interface ISavedQueryDataProviderEvents {\n onBeforeUserQueriesDeleted: (queryIds: string[]) => void;\n onAfterUserQueriesDeleted: (result: IDeletedUserQueriesResult) => void;\n onBeforeUserQueryUpdated: (queryId: string) => void;\n onAfterUserQueryUpdated: (result: string | null) => void;\n onBeforeUserQueryCreated: (queryName: string) => void;\n onAfterUserQueryCreated: (result: string | null) => void;\n onError: (error: any, message: string) => void;\n}\n\nexport type IDeletedUserQueriesResult = { success: true; deletedQueryIds: string[] } | { success: false; deletedQueryIds: string[]; errors: { queryId: string; error: any }[] };\n\n\nexport interface ISavedQuery extends ISavedQueryMetadata {\n id: string;\n name: string;\n}\n\nexport interface ISavedQueryMetadata {\n columns: IColumn[]\n sorting?: ComponentFramework.PropertyHelper.DataSetApi.SortStatus[];\n filtering?: ComponentFramework.PropertyHelper.DataSetApi.FilterExpression;\n linking?: ComponentFramework.PropertyHelper.DataSetApi.LinkEntityExposedExpression[];\n isFlatListEnabled?: boolean;\n searchQuery?: string | undefined;\n quickFindColumns?: string[];\n}\n\nexport const PATH_COLUMN_NAME = 'path__virtual';\nconst REQUIRED_COLUMNS = ['subject', 'parentId', 'stackRank', 'stateCode'];\n\n/** Strategy interface for loading and persisting system and user-defined saved views (queries). */\nexport interface ISavedQueryStrategy {\n /** Returns the built-in (non-deletable) views. At least one system query must be returned. */\n onGetSystemQueries: () => Promise<ISavedQuery[]>;\n /** Returns views saved by the current user. */\n onGetUserQueries: () => Promise<ISavedQuery[]>;\n /** Deletes the specified user views. Returns a per-query success/failure result. */\n onDeleteUserQueries: (queryIds: string[]) => Promise<IDeletedUserQueriesResult>;\n /** @returns The updated query id, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */\n onUpdateUserQuery: (currentQuery: ISavedQuery) => Promise<string | null>;\n /** @returns The created query id, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */\n onCreateUserQuery: (newQuery: { name: string; description?: string }, currentQuery: ISavedQuery) => Promise<string | null>;\n}\n\n/** Manages system and user-defined saved views and exposes view lifecycle operations. */\nexport interface ISavedQueryDataProvider {\n /** EventEmitter for saved-query lifecycle events (create, update, delete, errors). */\n queryEvents: IEventEmitter<ISavedQueryDataProviderEvents>;\n /** Returns the full list of non-deletable system views. */\n getSystemQueries: () => ISavedQuery[];\n /** Returns the full list of user-created views. */\n getUserQueries: () => ISavedQuery[];\n /** Returns the currently active saved query. Throws if `refresh` has not been called yet. */\n getCurrentQuery: () => ISavedQuery;\n /** Looks up a query by id across system and user queries. Throws if not found. */\n getSavedQuery(id: string): ISavedQuery;\n /** @returns The created query id, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */\n createUserQuery: (params: ICreateUserQueryParams) => Promise<string | null>;\n /** Returns `true` when the given query id belongs to a user view (as opposed to a system view). */\n isUserQuery: (queryId: string) => boolean;\n /** @returns The updated query id, or `null` if the operation was cancelled by the user. Throws on unexpected failure. */\n updateUserQuery: (provider: ITaskDataProvider) => Promise<string | null>;\n /** Deletes the specified user views. Returns a per-query success/failure result. */\n deleteUserQueries: (queryIds: string[]) => Promise<IDeletedUserQueriesResult>;\n /** Fetches system and user queries from the strategy and sets the initial active query. */\n refresh: () => Promise<void>;\n\n destroy: () => void;\n}\n\ninterface ISavedQueryDataProviderParameters {\n nativeColumns: INativeColumns;\n localizationService: ILocalizationService<ITaskGridLabels>;\n customColumnsDataProvider?: ICustomColumnsDataProvider;\n preferredQuery?: Partial<ISavedQuery> & { id: string };\n}\n\nexport class SavedQueryDataProvider implements ISavedQueryDataProvider {\n private _strategy: ISavedQueryStrategy\n private _systemQueries: ISavedQuery[] = [];\n private _currentQuery?: ISavedQuery;\n private _userQueries: ISavedQuery[] = [];\n private _customColumnsDataProvider?: ICustomColumnsDataProvider;\n private _nativeColumns: INativeColumns;\n private _localizationService: ILocalizationService<ITaskGridLabels>;\n private _systemQueriesColumnsMap: Map<string, IColumn> = new Map();\n private _preferredQuery?: Partial<ISavedQuery> & { id: string };\n public queryEvents = new EventEmitter<ISavedQueryDataProviderEvents>();\n\n constructor(strategy: ISavedQueryStrategy, parameters: ISavedQueryDataProviderParameters) {\n this._strategy = strategy;\n this._preferredQuery = parameters.preferredQuery;\n this._nativeColumns = parameters.nativeColumns;\n this._customColumnsDataProvider = parameters.customColumnsDataProvider;\n this._localizationService = parameters.localizationService;\n }\n\n public getSystemQueries(): ISavedQuery[] {\n return this._systemQueries;\n }\n\n public getUserQueries(): ISavedQuery[] {\n return this._userQueries;\n }\n\n public getCurrentQuery(): ISavedQuery {\n if (!this._currentQuery) {\n throw new Error('Current query is not set. Make sure to call refresh() and wait for it to complete before accessing the current query.');\n }\n return this._currentQuery;\n }\n\n public isUserQuery(queryId: string): boolean {\n return this._userQueries.some(q => q.id === queryId);\n }\n\n public getSavedQuery(id: string): ISavedQuery {\n const query = [...this._systemQueries, ...this._userQueries].find(q => q.id === id);\n if (!query) {\n throw new Error(`Query with id ${id} not found. Make sure to call refresh() and wait for it to complete before accessing the saved query.`);\n }\n return query;\n }\n\n public async updateUserQuery(provider: ITaskDataProvider): Promise<string | null> {\n this.queryEvents.dispatchEvent('onBeforeUserQueryUpdated', this.getCurrentQuery().id);\n return ErrorHelper.executeWithErrorHandling({\n operation: async () => {\n const result = await this._strategy.onUpdateUserQuery({\n ...this.getCurrentQuery(),\n ...this._getMetadataForSavedQuery(provider)\n\n });\n this.queryEvents.dispatchEvent('onAfterUserQueryUpdated', result);\n return result;\n },\n onError: (error, message) => this.queryEvents.dispatchEvent('onError', error, message)\n })\n }\n\n public async createUserQuery(params: ICreateUserQueryParams): Promise<string | null> {\n const { name, description, provider } = params;\n this.queryEvents.dispatchEvent('onBeforeUserQueryCreated', name);\n return ErrorHelper.executeWithErrorHandling({\n operation: async () => {\n const result = await this._strategy.onCreateUserQuery({\n name: name,\n description: description,\n }, {\n ...this.getCurrentQuery(),\n ...this._getMetadataForSavedQuery(provider)\n })\n this.queryEvents.dispatchEvent('onAfterUserQueryCreated', result);\n return result;\n },\n onError: (error, message) => this.queryEvents.dispatchEvent('onError', error, message)\n })\n }\n\n public async deleteUserQueries(queryIds: string[]): Promise<IDeletedUserQueriesResult> {\n this.queryEvents.dispatchEvent('onBeforeUserQueriesDeleted', queryIds);\n return ErrorHelper.executeWithErrorHandling({\n operation: async () => {\n const result = await this._strategy.onDeleteUserQueries(queryIds);\n this.queryEvents.dispatchEvent('onAfterUserQueriesDeleted', result);\n return result;\n },\n onError: (error, message) => this.queryEvents.dispatchEvent('onError', error, message)\n })\n }\n\n public async destroy() {\n this.queryEvents.clearEventListeners();\n }\n\n public async refresh() {\n const systemQueries = await this._strategy.onGetSystemQueries();\n const userQueries = await this._strategy.onGetUserQueries();\n if (systemQueries.length === 0) {\n throw new Error('At least one system query is required');\n }\n this._includePathColumn(systemQueries[0].columns);\n const allQueries = [...systemQueries, ...userQueries];\n this._systemQueries = systemQueries\n this._userQueries = userQueries;\n this._systemQueriesColumnsMap = new Map(systemQueries.flatMap(query => query.columns.map(col => [col.name, col])));\n\n const preferredQueryInAllQueries = allQueries.find(q => q.id === this._preferredQuery?.id);\n this._currentQuery = preferredQueryInAllQueries ?? userQueries[0] ?? systemQueries[0];\n //preferred query might have some required columns missing\n this._currentQuery = this._processQueries([{\n ...this._currentQuery,\n ...(preferredQueryInAllQueries ? this._preferredQuery : {}),\n }])[0];\n }\n\n private _processQueries(queries: ISavedQuery[]) {\n return queries.map(query => {\n this._includeRequiredColumns(query.columns);\n this._harmonizeColumns(query.columns);\n return {\n ...query,\n ...this._parseSavedQueryMetadata(query)\n }\n })\n }\n\n private _includeRequiredColumns(columns: IColumn[]) {\n const allQueries = [...this.getSystemQueries(), ...this.getUserQueries()];\n const allQueryColumns = [...new Map(allQueries.flatMap(query => query.columns.map(col => [col.name, col]))).values()];\n for (const requiredColumnName of REQUIRED_COLUMNS) {\n const mappedRequiredColumnName = this._nativeColumns[requiredColumnName as keyof INativeColumns];\n if (!columns.find(col => col.name === mappedRequiredColumnName)) {\n const columnFromQueries = allQueryColumns.find(col => col.name === mappedRequiredColumnName);\n if (!columnFromQueries) {\n throw new Error(`Required column ${mappedRequiredColumnName} is missing from both current query and all available queries`);\n }\n columns.push({\n ...columnFromQueries,\n isHidden: true\n });\n }\n }\n this._includePathColumn(columns);\n }\n\n private _harmonizeColumns(columns: IColumn[]) {\n for (const column of columns) {\n switch (column.name) {\n case this._nativeColumns.subject: {\n column.isHidden = false;\n break;\n }\n case this._nativeColumns.path: {\n column.metadata = {\n ...column.metadata,\n IsValidForUpdate: false\n }\n break;\n }\n }\n }\n }\n\n private _includePathColumn(columns: IColumn[]) {\n if (!columns.find(col => col.name === PATH_COLUMN_NAME)) {\n columns.push({\n name: PATH_COLUMN_NAME,\n dataType: DataTypes.Multiple,\n displayName: this._localizationService.getLocalizedString('path'),\n isVirtual: true,\n visualSizeFactor: 300,\n isHidden: true\n })\n }\n return columns;\n }\n\n private _getMetadataForSavedQuery(provider: ITaskDataProvider): ISavedQueryMetadata {\n return {\n sorting: provider.getSorting(),\n filtering: provider.getFiltering() ?? undefined,\n linking: provider.getLinking(),\n searchQuery: provider.getSearchQuery(),\n isFlatListEnabled: provider.isFlatListEnabled(),\n quickFindColumns: provider.getQuickFindColumns().map(col => col.name),\n columns: [\n ...provider.getColumns().map((col: any) => {\n const newCol = {\n name: col.name,\n isHidden: col.isHidden,\n dataType: col.dataType,\n order: col.order,\n visualSizeFactor: col.visualSizeFactor,\n metadata: {}\n }\n this._addPropToMetadataQueryCol(newCol, 'isVirtual', col.isVirtual);\n this._addPropToMetadataQueryCol(newCol, 'autoHeight', col.autoHeight);\n return newCol;\n })\n ]\n }\n }\n\n private _addPropToMetadataQueryCol(col: IFetchXmlDataProviderColumn, propName: keyof IColumn, propValue: any) {\n if (propValue != undefined) {\n (col as any)[propName] = propValue;\n }\n }\n\n private _isCustomColumnResolvable(name: string, customColumnsMap: Map<string, IColumn>): boolean {\n return !this._customColumnsDataProvider!.isCustomColumn(name) ||\n !!customColumnsMap.get(name);\n }\n\n\n private _parseSavedQueryMetadata(metadata: ISavedQueryMetadata): ISavedQueryMetadata {\n const parsed = metadata;\n\n // Enrich partial column definitions with full definitions from system queries\n let columns = parsed.columns.map(col => {\n const systemCol = this._systemQueriesColumnsMap.get(col.name);\n if (!systemCol && col.isVirtual) {\n throw new Error(`Virtual column ${col.name} is missing from system queries. Make sure all virtual columns are included in the system queries returned by the strategy's onGetSystemQueries method.`);\n }\n return systemCol ? { ...systemCol, ...col, metadata: { ...systemCol.metadata, ...col.metadata } } : col;\n });\n\n if (!this._customColumnsDataProvider) {\n return { ...parsed, columns };\n }\n\n const customColumnsMap = new Map(this._customColumnsDataProvider.getColumns().map(col => [col.name, col]));\n columns = columns.filter(col => this._isCustomColumnResolvable(col.name, customColumnsMap));\n columns = columns.map(col => {\n const customCol = customColumnsMap.get(col.name);\n return customCol ? { ...customCol, ...col, metadata: { ...customCol.metadata, ...col.metadata } } : col;\n });\n\n return {\n ...parsed,\n sorting: parsed.sorting?.filter(sort => this._isCustomColumnResolvable(sort.name, customColumnsMap)),\n columns: columns,\n filtering: parsed.filtering ? {\n ...parsed.filtering,\n conditions: parsed.filtering.conditions.filter(condition => this._isCustomColumnResolvable(condition.attributeName, customColumnsMap))\n } : undefined\n };\n }\n}"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './SavedQueryDataProvider';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
/// <reference types="@types/powerapps-component-framework" />
|
|
2
2
|
import { EventEmitter, GetDataEvent, IAvailableColumnOptions, IAvailableRelatedColumn, IColumn, ICommand, IDataProvider, IDataProviderEventListeners, IEventBubbleOptions, IEventEmitter, IRawRecord, IRecord, IRecordSaveOperationResult, IRetrievedData, IRetrieveRecordCommandOptions, MemoryDataProvider } from "@talxis/client-libraries";
|
|
3
3
|
import { IRecordTree } from "./record-tree/RecordTree";
|
|
4
|
-
import { ILocalizationService
|
|
4
|
+
import { ILocalizationService } from "../../../../utils";
|
|
5
|
+
import { ITaskGridLabels } from "../../labels";
|
|
5
6
|
import { INativeColumns } from "../../interfaces";
|
|
7
|
+
import { ISavedQueryDataProvider } from "../saved-query";
|
|
6
8
|
export interface IFailedRecord {
|
|
7
9
|
id: string;
|
|
8
10
|
error: any;
|
|
@@ -27,13 +29,13 @@ export interface ITaskDataProviderParameters {
|
|
|
27
29
|
nativeColumns: INativeColumns;
|
|
28
30
|
localizationService: ILocalizationService<ITaskGridLabels>;
|
|
29
31
|
strategy: ITaskDataProviderStrategy;
|
|
32
|
+
savedQueryDataProvider: ISavedQueryDataProvider;
|
|
30
33
|
onIsFlatListEnabled: () => boolean;
|
|
31
34
|
}
|
|
32
35
|
/** Strategy interface that handles all data access and mutation operations for tasks. */
|
|
33
36
|
export interface ITaskDataProviderStrategy {
|
|
34
37
|
/**
|
|
35
|
-
* Called
|
|
36
|
-
* An empty `ids` array instructs the strategy to fetch all records.
|
|
38
|
+
* Called when the provider needs to retrieve latest data for specific tasks to synchronize the grid with the server.
|
|
37
39
|
*/
|
|
38
40
|
onGetRawRecords: (ids: string[]) => Promise<IRawRecord[]>;
|
|
39
41
|
/** Called once on first load. Must return the initial columns, raw task records, and entity metadata. */
|
|
@@ -75,13 +77,7 @@ export interface ITaskDataProviderStrategy {
|
|
|
75
77
|
/** Opens the record detail view. Called when a user clicks a non-subject cell. */
|
|
76
78
|
onOpenDatasetItem(entityReference: ComponentFramework.EntityReference, context?: {
|
|
77
79
|
columnName?: string;
|
|
78
|
-
}): void
|
|
79
|
-
/** Return `false` to disable task creation (hide the *New* button). Defaults to `true`. */
|
|
80
|
-
onIsTaskAddingEnabled?(): boolean;
|
|
81
|
-
/** Return `false` to disable inline cell editing. Defaults to `true`. */
|
|
82
|
-
onIsTaskEditingEnabled?(): boolean;
|
|
83
|
-
/** Return `false` to disable task deletion (hide the *Delete* button). Defaults to `true`. */
|
|
84
|
-
onIsTaskDeletingEnabled?(): boolean;
|
|
80
|
+
}): Promise<void>;
|
|
85
81
|
/** When provided, the task tree is scoped to the subtree of the returned task id. */
|
|
86
82
|
onGetRootTaskId?: () => string | undefined;
|
|
87
83
|
}
|
|
@@ -98,6 +94,8 @@ export interface ITaskDataProviderEventListener {
|
|
|
98
94
|
onTaskDataUpdated: (data: IRawRecord[]) => void;
|
|
99
95
|
onAfterTasksEdited: (result: IEditTasksResult | null) => void;
|
|
100
96
|
onRecordTreeUpdated: (updatedParentIds: (string | undefined)[]) => void;
|
|
97
|
+
onBeforeDatasetItemOpened: (entityReference: ComponentFramework.EntityReference) => void;
|
|
98
|
+
onAfterDatasetItemOpened: (entityReference: ComponentFramework.EntityReference) => void;
|
|
101
99
|
onError: (error: any, message: string) => void;
|
|
102
100
|
}
|
|
103
101
|
/** Extended data provider interface for task records. Adds task-specific operations on top of `IDataProvider`. */
|
|
@@ -137,11 +135,6 @@ export interface ITaskDataProvider extends IDataProvider {
|
|
|
137
135
|
/** Returns `true` when the grid is displaying a flat list instead of a tree hierarchy. */
|
|
138
136
|
isFlatListEnabled(): boolean;
|
|
139
137
|
/** Returns `true` when task creation is allowed (from `ITaskDataProviderStrategy.onIsTaskAddingEnabled`). */
|
|
140
|
-
isTaskAddingEnabled(): boolean;
|
|
141
|
-
/** Returns `true` when inline cell editing is allowed (from `ITaskDataProviderStrategy.onIsTaskEditingEnabled`). */
|
|
142
|
-
isTaskEditingEnabled(): boolean;
|
|
143
|
-
/** Returns `true` when task deletion is allowed (from `ITaskDataProviderStrategy.onIsTaskDeletingEnabled`). */
|
|
144
|
-
isTaskDeletingEnabled(): boolean;
|
|
145
138
|
/** Returns the root task id when the tree is scoped to a subtree, or `null` for a full tree. */
|
|
146
139
|
getRootTaskId: () => string | null;
|
|
147
140
|
/** Moves a task to a position relative to another task. Returns the updated raw records, or `null` on cancellation. */
|
|
@@ -153,19 +146,20 @@ export declare class TaskDataProvider extends MemoryDataProvider implements ITas
|
|
|
153
146
|
private _hasDataBeenLoaded;
|
|
154
147
|
private _taskTree;
|
|
155
148
|
private _strategy;
|
|
149
|
+
private _savedQueryDataProvider;
|
|
156
150
|
private _onFlatListEnabled;
|
|
157
151
|
readonly taskEvents: EventEmitter<ITaskDataProviderEventListener>;
|
|
158
152
|
constructor(parameters: ITaskDataProviderParameters);
|
|
159
153
|
getStrategy<T extends ITaskDataProviderStrategy>(): T;
|
|
160
154
|
getRootTaskId(): string | null;
|
|
161
|
-
isTaskAddingEnabled(): boolean;
|
|
162
|
-
isTaskEditingEnabled(): boolean;
|
|
163
|
-
isTaskDeletingEnabled(): boolean;
|
|
164
155
|
getRecordTree(): IRecordTree;
|
|
165
156
|
isFlatListEnabled(): boolean;
|
|
166
157
|
getNativeColumns(): INativeColumns;
|
|
167
158
|
fetchRawRecords(ids: string[]): Promise<IRawRecord[]>;
|
|
168
|
-
onGetAvailableColumns(
|
|
159
|
+
onGetAvailableColumns(options?: {
|
|
160
|
+
entityName?: string;
|
|
161
|
+
}): Promise<IColumn[]>;
|
|
162
|
+
private _getColumnsWithUnusedVirtualColumns;
|
|
169
163
|
onGetAvailableRelatedColumns(): Promise<IAvailableRelatedColumn[]>;
|
|
170
164
|
retrieveRecordCommand(options?: IRetrieveRecordCommandOptions): Promise<ICommand[]>;
|
|
171
165
|
onRecordSave(record: IRecord): Promise<IRecordSaveOperationResult>;
|
|
@@ -175,15 +169,14 @@ export declare class TaskDataProvider extends MemoryDataProvider implements ITas
|
|
|
175
169
|
createTask(parentId?: string): Promise<IRawRecord | null>;
|
|
176
170
|
createTasksFromTemplate(templateId: string, parentId?: string): Promise<IRawRecord[] | null>;
|
|
177
171
|
createTemplateFromTask(taskId: string): Promise<IRawRecord | null>;
|
|
178
|
-
|
|
172
|
+
onOpenDatasetItem(entityReference: ComponentFramework.EntityReference, context?: {
|
|
179
173
|
columnName?: string;
|
|
180
|
-
}): void
|
|
174
|
+
}): Promise<void>;
|
|
181
175
|
getSorting(): ComponentFramework.PropertyHelper.DataSetApi.SortStatus[];
|
|
182
176
|
getSortedRecordIds(): string[];
|
|
183
177
|
deleteTasks(taskIds: string[]): Promise<IDeleteTasksResult | null>;
|
|
184
178
|
editTasks(taskIds: string[]): Promise<IEditTasksResult | null>;
|
|
185
179
|
isRecordActive(recordId: string): boolean;
|
|
186
|
-
onOpenDatasetItem(entityReference: ComponentFramework.EntityReference): void;
|
|
187
180
|
destroy(): Promise<void>;
|
|
188
181
|
getQuickFindColumns(): IColumn[];
|
|
189
182
|
createGroupedRecordDataProvider(group: IRecord): IDataProvider;
|