@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":"TaskGridDatasetControlFactory.js","sources":["../../../src/components/TaskGrid/TaskGridDatasetControlFactory.ts"],"sourcesContent":["import { Dataset } from \"@talxis/client-libraries\";\nimport { ITaskDataProvider, TaskDataProvider } from \"./
|
|
1
|
+
{"version":3,"file":"TaskGridDatasetControlFactory.js","sources":["../../../src/components/TaskGrid/TaskGridDatasetControlFactory.ts"],"sourcesContent":["import { Dataset } from \"@talxis/client-libraries\";\nimport { ITaskDataProvider, TaskDataProvider } from \"./providers/task\";\nimport { ILocalizationService } from \"../../utils\";\nimport { ITaskGridLabels } from \"./labels\";\nimport { ISavedQuery, ISavedQueryDataProvider, PATH_COLUMN_NAME, SavedQueryDataProvider } from \"./providers/saved-query\";\nimport { CustomColumnsDataProvider } from \"./providers/custom-columns/CustomColumnsDataProvider\";\nimport { ITaskGridDatasetControl, ITaskGridDescriptor } from \"./interfaces\";\nimport { TaskGridDatasetControl } from \"./TaskGridDatasetControl\";\n\nexport interface ITaskGridState {\n savedQuery?: Partial<ISavedQuery> & { id: string; linking?: ComponentFramework.PropertyHelper.DataSetApi.LinkEntityExposedExpression[] };\n}\n\ninterface ITaskGridDatasetControlFactoryParameters {\n state: ITaskGridState;\n taskGridDescriptor: ITaskGridDescriptor;\n localizationService: ILocalizationService<ITaskGridLabels>;\n onGetPcfContext: () => ComponentFramework.Context<any>;\n}\n\nexport class TaskGridDatasetControlFactory {\n //makes sure the instance is created after the dependencies are loaded, and handles creation of data providers and dataset\n public static async createInstance(parameters: ITaskGridDatasetControlFactoryParameters): Promise<ITaskGridDatasetControl> {\n let taskDataProvider: ITaskDataProvider;\n await parameters.taskGridDescriptor.onLoadDependencies?.();\n\n const customColumnsStrategy = parameters.taskGridDescriptor.onCreateCustomColumnsStrategy?.();\n let customColumnsDataProvider: CustomColumnsDataProvider | undefined;\n if (customColumnsStrategy) {\n customColumnsDataProvider = new CustomColumnsDataProvider(customColumnsStrategy);\n }\n await customColumnsDataProvider?.refresh();\n\n const savedQueryStrategy = parameters.taskGridDescriptor.onCreateSavedQueryStrategy();\n const savedQueryDataProvider = new SavedQueryDataProvider(savedQueryStrategy, {\n localizationService: parameters.localizationService,\n nativeColumns: { ...parameters.taskGridDescriptor.onGetFieldMapping(), path: PATH_COLUMN_NAME },\n customColumnsDataProvider: customColumnsDataProvider,\n preferredQuery: parameters.state.savedQuery,\n })\n const templateDataProvider = parameters.taskGridDescriptor.onCreateTemplateDataProvider?.();\n await savedQueryDataProvider.refresh();\n\n const taskStrategy = parameters.taskGridDescriptor.onCreateTaskStrategy({\n templateDataProvider: templateDataProvider,\n customColumnsDataProvider: customColumnsDataProvider,\n })\n\n taskDataProvider = new TaskDataProvider({\n localizationService: parameters.localizationService,\n nativeColumns: { ...parameters.taskGridDescriptor.onGetFieldMapping(), path: PATH_COLUMN_NAME },\n strategy: taskStrategy,\n savedQueryDataProvider: savedQueryDataProvider,\n onIsFlatListEnabled: () => TaskGridDatasetControlFactory._getIsFlatlistEnabled(parameters, savedQueryDataProvider)\n });\n\n const dataset = new Dataset(taskDataProvider);\n\n return new TaskGridDatasetControl({\n dataset,\n state: parameters.state,\n taskGridDescriptor: parameters.taskGridDescriptor,\n templateDataProvider: templateDataProvider,\n localizationService: parameters.localizationService,\n savedQueryDataProvider: savedQueryDataProvider,\n customColumnsDataProvider: customColumnsDataProvider,\n onGetPcfContext: () => parameters.onGetPcfContext(),\n });\n }\n\n private static _getIsFlatlistEnabled(parameters: ITaskGridDatasetControlFactoryParameters, savedQueryDataProvider: ISavedQueryDataProvider): boolean {\n const currentQueryId = savedQueryDataProvider.getCurrentQuery().id;\n return parameters.state.savedQuery?.isFlatListEnabled ?? savedQueryDataProvider.getSavedQuery(currentQueryId).isFlatListEnabled ?? false;\n }\n\n}"],"names":[],"mappings":";;;;;;MAoBa,6BAA6B,CAAA;;AAE/B,IAAA,aAAa,cAAc,CAAC,UAAoD,EAAA;AACnF,QAAA,IAAI,gBAAmC,CAAC;AACxC,QAAA,MAAM,UAAU,CAAC,kBAAkB,CAAC,kBAAkB,IAAI,CAAC;QAE3D,MAAM,qBAAqB,GAAG,UAAU,CAAC,kBAAkB,CAAC,6BAA6B,IAAI,CAAC;AAC9F,QAAA,IAAI,yBAAgE,CAAC;AACrE,QAAA,IAAI,qBAAqB,EAAE;AACvB,YAAA,yBAAyB,GAAG,IAAI,yBAAyB,CAAC,qBAAqB,CAAC,CAAC;AACpF,SAAA;AACD,QAAA,MAAM,yBAAyB,EAAE,OAAO,EAAE,CAAC;QAE3C,MAAM,kBAAkB,GAAG,UAAU,CAAC,kBAAkB,CAAC,0BAA0B,EAAE,CAAC;AACtF,QAAA,MAAM,sBAAsB,GAAG,IAAI,sBAAsB,CAAC,kBAAkB,EAAE;YAC1E,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;AACnD,YAAA,aAAa,EAAE,EAAE,GAAG,UAAU,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE;AAC/F,YAAA,yBAAyB,EAAE,yBAAyB;AACpD,YAAA,cAAc,EAAE,UAAU,CAAC,KAAK,CAAC,UAAU;AAC9C,SAAA,CAAC,CAAA;QACF,MAAM,oBAAoB,GAAG,UAAU,CAAC,kBAAkB,CAAC,4BAA4B,IAAI,CAAC;AAC5F,QAAA,MAAM,sBAAsB,CAAC,OAAO,EAAE,CAAC;AAEvC,QAAA,MAAM,YAAY,GAAG,UAAU,CAAC,kBAAkB,CAAC,oBAAoB,CAAC;AACpE,YAAA,oBAAoB,EAAE,oBAAoB;AAC1C,YAAA,yBAAyB,EAAE,yBAAyB;AACvD,SAAA,CAAC,CAAA;QAEF,gBAAgB,GAAG,IAAI,gBAAgB,CAAC;YACpC,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;AACnD,YAAA,aAAa,EAAE,EAAE,GAAG,UAAU,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE;AAC/F,YAAA,QAAQ,EAAE,YAAY;AACtB,YAAA,sBAAsB,EAAE,sBAAsB;YAC9C,mBAAmB,EAAE,MAAM,6BAA6B,CAAC,qBAAqB,CAAC,UAAU,EAAE,sBAAsB,CAAC;AACrH,SAAA,CAAC,CAAC;AAEH,QAAA,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAE9C,OAAO,IAAI,sBAAsB,CAAC;YAC9B,OAAO;YACP,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;AACjD,YAAA,oBAAoB,EAAE,oBAAoB;YAC1C,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;AACnD,YAAA,sBAAsB,EAAE,sBAAsB;AAC9C,YAAA,yBAAyB,EAAE,yBAAyB;AACpD,YAAA,eAAe,EAAE,MAAM,UAAU,CAAC,eAAe,EAAE;AACtD,SAAA,CAAC,CAAC;KACN;AAEO,IAAA,OAAO,qBAAqB,CAAC,UAAoD,EAAE,sBAA+C,EAAA;QACtI,MAAM,cAAc,GAAG,sBAAsB,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC;AACnE,QAAA,OAAO,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,iBAAiB,IAAI,sBAAsB,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,iBAAiB,IAAI,KAAK,CAAC;KAC5I;AAEJ;;;;"}
|
package/dist/components/TaskGrid/components/grid/cell-renderers/add-task-button/AddTaskButton.js
CHANGED
|
@@ -12,7 +12,8 @@ const AddTaskButton = (props) => {
|
|
|
12
12
|
const datasetControl = useDatasetControl();
|
|
13
13
|
const localizationService = useLocalizationService();
|
|
14
14
|
const [isButtonMounted, setIsButtonMounted] = React.useState(true);
|
|
15
|
-
const isTaskAddingEnabled =
|
|
15
|
+
const isTaskAddingEnabled = datasetControl.isTaskCreatingEnabled();
|
|
16
|
+
const isTemplatingEnabled = datasetControl.isTemplatingEnabled();
|
|
16
17
|
const addTaskFromTemplate = async (templateId) => {
|
|
17
18
|
//this needs to be done so the button menu does not overlay the dialog
|
|
18
19
|
setIsButtonMounted(false);
|
|
@@ -64,13 +65,7 @@ const AddTaskButton = (props) => {
|
|
|
64
65
|
return jsx("div", { className: styles.uneditableIconContainer, title: localizationService.getLocalizedString('canNotEditCompletedTask'), children: jsx(Icon, { className: styles.uneditableIcon, iconName: 'Uneditable' }) });
|
|
65
66
|
}
|
|
66
67
|
else if (isButtonVisible()) {
|
|
67
|
-
return jsx(IconButton, { className: `${styles.addTaskBtnRoot} talxis_task-grid_add-task-button`, iconProps: {
|
|
68
|
-
iconName: 'Add'
|
|
69
|
-
}, menuProps: {
|
|
70
|
-
items: getMenuItems()
|
|
71
|
-
}, styles: {
|
|
72
|
-
menuIcon: styles.addTaskMenuIcon
|
|
73
|
-
} });
|
|
68
|
+
return jsx(IconButton, { className: `${styles.addTaskBtnRoot} talxis_task-grid_add-task-button`, iconProps: { iconName: 'Add' }, onClick: !isTemplatingEnabled ? () => taskDataProvider.createTask(record.getRecordId()) : undefined, menuProps: isTemplatingEnabled ? { items: getMenuItems() } : undefined, styles: { menuIcon: styles.addTaskMenuIcon } });
|
|
74
69
|
}
|
|
75
70
|
else {
|
|
76
71
|
return jsx(Fragment, {});
|
package/dist/components/TaskGrid/components/grid/cell-renderers/add-task-button/AddTaskButton.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddTaskButton.js","sources":["../../../../../../../src/components/TaskGrid/components/grid/cell-renderers/add-task-button/AddTaskButton.tsx"],"sourcesContent":["import { ContextualMenuItemType, Icon, IconButton, IContextualMenuItem } from \"@fluentui/react\"\nimport { ICellProps } from \"../../../../../Grid/cells/cell/Cell\"\nimport * as React from \"react\"\nimport { getAddTaskButtonStyles } from \"./styles\";\nimport { IRecord } from \"@talxis/client-libraries\";\nimport { RecordSelector } from \"../../record-selector/RecordSelector\";\nimport { useDatasetControl, useLocalizationService, useTaskDataProvider, useTaskGridDescriptor } from \"../../../../context\";\n\nexport const AddTaskButton = (props: ICellProps) => {\n const styles = React.useMemo(() => getAddTaskButtonStyles(), []);\n const record: IRecord = props.data;\n const taskDataProvider = useTaskDataProvider();\n const datasetControl = useDatasetControl();\n const localizationService = useLocalizationService();\n const [isButtonMounted, setIsButtonMounted] = React.useState(true);\n const isTaskAddingEnabled =
|
|
1
|
+
{"version":3,"file":"AddTaskButton.js","sources":["../../../../../../../src/components/TaskGrid/components/grid/cell-renderers/add-task-button/AddTaskButton.tsx"],"sourcesContent":["import { ContextualMenuItemType, Icon, IconButton, IContextualMenuItem } from \"@fluentui/react\"\nimport { ICellProps } from \"../../../../../Grid/cells/cell/Cell\"\nimport * as React from \"react\"\nimport { getAddTaskButtonStyles } from \"./styles\";\nimport { IRecord } from \"@talxis/client-libraries\";\nimport { RecordSelector } from \"../../record-selector/RecordSelector\";\nimport { useDatasetControl, useLocalizationService, useTaskDataProvider, useTaskGridDescriptor } from \"../../../../context\";\n\nexport const AddTaskButton = (props: ICellProps) => {\n const styles = React.useMemo(() => getAddTaskButtonStyles(), []);\n const record: IRecord = props.data;\n const taskDataProvider = useTaskDataProvider();\n const datasetControl = useDatasetControl();\n const localizationService = useLocalizationService();\n const [isButtonMounted, setIsButtonMounted] = React.useState(true);\n const isTaskAddingEnabled = datasetControl.isTaskCreatingEnabled();\n const isTemplatingEnabled = datasetControl.isTemplatingEnabled();\n\n const addTaskFromTemplate = async (templateId: string) => {\n //this needs to be done so the button menu does not overlay the dialog\n setIsButtonMounted(false);\n await taskDataProvider.createTasksFromTemplate(templateId, record.getRecordId());\n setIsButtonMounted(true);\n }\n\n const isButtonVisible = (): boolean => {\n if (taskDataProvider.isFlatListEnabled() || !isTaskAddingEnabled) {\n return false;\n }\n return isButtonMounted;\n }\n\n const getMenuItems = (): IContextualMenuItem[] => {\n const isTemplatingEnabled = datasetControl.isTemplatingEnabled();\n return [{\n key: 'addChild',\n text: localizationService.getLocalizedString('addChild'),\n iconProps: {\n iconName: 'Add'\n },\n onClick: () => { taskDataProvider.createTask(record.getRecordId()) }\n },\n {\n key: 'divider',\n itemType: ContextualMenuItemType.Divider\n },\n ...(!isTemplatingEnabled ? [] : [{\n key: 'taskFromTemplate',\n text: localizationService.getLocalizedString('taskFromTemplate'),\n iconProps: {\n iconName: 'PageList'\n },\n subMenuProps: {\n items: [{\n key: 'dummy'\n }],\n onRenderMenuList: () => <RecordSelector\n provider={datasetControl.getTemplateDataProvider()}\n onRenderRecord={(props, defautRender) => {\n return defautRender({\n ...props,\n iconProps: {\n iconName: 'AddToShoppingList'\n }\n })\n }}\n onRecordSelected={addTaskFromTemplate} />\n }\n }])];\n }\n\n if (!record.isActive()) {\n return <div className={styles.uneditableIconContainer} title={localizationService.getLocalizedString('canNotEditCompletedTask')}>\n <Icon\n className={styles.uneditableIcon}\n iconName='Uneditable'\n />\n </div>\n }\n else if (isButtonVisible()) {\n return <IconButton\n className={`${styles.addTaskBtnRoot} talxis_task-grid_add-task-button`}\n iconProps={{ iconName: 'Add' }}\n onClick={!isTemplatingEnabled ? () => taskDataProvider.createTask(record.getRecordId()) : undefined}\n menuProps={isTemplatingEnabled ? { items: getMenuItems() } : undefined}\n styles={{ menuIcon: styles.addTaskMenuIcon }} />\n }\n else {\n return <></>\n }\n\n}"],"names":["_jsx"],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { IDataProvider } from "@talxis/client-libraries";
|
|
2
|
+
import { ICellProps } from "../../../../../Grid/cells/cell/Cell";
|
|
3
|
+
interface ICellRendererProps extends ICellProps {
|
|
4
|
+
dataProvider: IDataProvider;
|
|
5
|
+
}
|
|
6
|
+
export declare const LookupManyCellRenderer: (props: ICellRendererProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import React__default, { useCallback, useEffect } from 'react';
|
|
3
|
+
import AsyncSelect from 'react-select/async';
|
|
4
|
+
import { useTaskDataProvider } from '../../../../context.js';
|
|
5
|
+
import { LookupMany } from '../../lookup-many/LookupMany.js';
|
|
6
|
+
import { PeopleLookupMany } from '../../lookup-many/people-lookup-many/PeopleLookupMany.js';
|
|
7
|
+
import { ColorfulLookupMany } from '../../lookup-many/colorful-lookup-many/ColorfulLookupMany.js';
|
|
8
|
+
|
|
9
|
+
var ControlName;
|
|
10
|
+
(function (ControlName) {
|
|
11
|
+
ControlName["LookupMany"] = "LookupMany";
|
|
12
|
+
ControlName["PeopleLookupMany"] = "PeopleLookupMany";
|
|
13
|
+
ControlName["ColorfulLookupMany"] = "ColorfulLookupMany";
|
|
14
|
+
})(ControlName || (ControlName = {}));
|
|
15
|
+
const LookupManyCellRenderer = (props) => {
|
|
16
|
+
const { api, baseColumn, dataProvider } = props;
|
|
17
|
+
const record = props.data;
|
|
18
|
+
const [isDisabled, setIsDisabled] = React__default.useState(true);
|
|
19
|
+
const customControl = record.getColumnInfo(baseColumn.name).ui.getCustomControls([])?.[0];
|
|
20
|
+
const controlName = customControl.name ?? ControlName.LookupMany;
|
|
21
|
+
const bindings = customControl?.bindings;
|
|
22
|
+
const provider = useTaskDataProvider();
|
|
23
|
+
const value = record.getValue(props.colDef.colId);
|
|
24
|
+
const onSelectionChange = (selectedRecords) => {
|
|
25
|
+
record.setValue(props.colDef.colId, selectedRecords);
|
|
26
|
+
record.save();
|
|
27
|
+
api.refreshCells({
|
|
28
|
+
rowNodes: [props.node],
|
|
29
|
+
columns: [props.colDef.colId],
|
|
30
|
+
force: true
|
|
31
|
+
});
|
|
32
|
+
};
|
|
33
|
+
const onRecordOpen = (entityReference) => {
|
|
34
|
+
provider.openDatasetItem(entityReference, {
|
|
35
|
+
columnName: baseColumn.name
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
const onMenuClose = () => {
|
|
39
|
+
setIsDisabled(true);
|
|
40
|
+
};
|
|
41
|
+
const getComponentProps = () => {
|
|
42
|
+
return {
|
|
43
|
+
dataProvider,
|
|
44
|
+
selectedRecords: value,
|
|
45
|
+
isDisabled,
|
|
46
|
+
onRecordSelect: onSelectionChange,
|
|
47
|
+
onRecordOpen,
|
|
48
|
+
components: {
|
|
49
|
+
onRenderSelect: (selectProps) => jsx(AsyncSelect, { ...selectProps, autoFocus: true, openMenuOnFocus: true, openMenuOnClick: true, styles: {
|
|
50
|
+
...selectProps.styles,
|
|
51
|
+
control: (base, props) => {
|
|
52
|
+
return {
|
|
53
|
+
...selectProps.styles?.control?.(base, props),
|
|
54
|
+
maxHeight: 200,
|
|
55
|
+
overflow: 'auto',
|
|
56
|
+
border: 'none',
|
|
57
|
+
background: 'none',
|
|
58
|
+
boxShadow: 'none',
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
}, onMenuClose: () => {
|
|
62
|
+
selectProps.onMenuClose?.();
|
|
63
|
+
onMenuClose();
|
|
64
|
+
} })
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
const getComponent = () => {
|
|
69
|
+
switch (controlName) {
|
|
70
|
+
case ControlName.ColorfulLookupMany:
|
|
71
|
+
return jsx(ColorfulLookupMany, { colorPropertyName: bindings?.ColorPropertyName?.value, ...getComponentProps() });
|
|
72
|
+
case ControlName.PeopleLookupMany:
|
|
73
|
+
return jsx(PeopleLookupMany, { ...getComponentProps(), imageUrlPropertyName: bindings?.ImageUrlPropertyName?.value });
|
|
74
|
+
default: {
|
|
75
|
+
return jsx(LookupMany, { ...getComponentProps() });
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
const onSwitchToEditMode = useCallback(() => {
|
|
80
|
+
if (props.value.editable) {
|
|
81
|
+
setIsDisabled(false);
|
|
82
|
+
}
|
|
83
|
+
setTimeout(() => {
|
|
84
|
+
const element = props.eGridCell.querySelector('[data-value]');
|
|
85
|
+
element?.dispatchEvent(new MouseEvent('mousedown', { bubbles: true, button: 0 }));
|
|
86
|
+
element?.dispatchEvent(new MouseEvent('mouseup', { bubbles: true, button: 0 }));
|
|
87
|
+
});
|
|
88
|
+
}, [props.value.editable]);
|
|
89
|
+
useEffect(() => {
|
|
90
|
+
props.eGridCell.addEventListener('dblclick', onSwitchToEditMode);
|
|
91
|
+
return () => {
|
|
92
|
+
props.eGridCell.removeEventListener('dblclick', onSwitchToEditMode);
|
|
93
|
+
};
|
|
94
|
+
}, [onSwitchToEditMode]);
|
|
95
|
+
return jsx("div", { children: getComponent() });
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
export { LookupManyCellRenderer };
|
|
99
|
+
//# sourceMappingURL=LookupManyCellRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LookupManyCellRenderer.js","sources":["../../../../../../../src/components/TaskGrid/components/grid/cell-renderers/lookup-many/LookupManyCellRenderer.tsx"],"sourcesContent":["import { IDataProvider, IRecord } from \"@talxis/client-libraries\";\nimport { useTaskDataProvider } from \"../../../../..\";\nimport React, { useCallback, useEffect } from \"react\";\nimport AsyncSelect from \"react-select/async\";\nimport { ICellProps } from \"../../../../../Grid/cells/cell/Cell\";\nimport { ColorfulLookupMany, ILookupManyProps, LookupMany, PeopleLookupMany } from \"../../lookup-many\";\n\ninterface ICellRendererProps extends ICellProps {\n dataProvider: IDataProvider;\n}\n\nenum ControlName {\n LookupMany = 'LookupMany',\n PeopleLookupMany = 'PeopleLookupMany',\n ColorfulLookupMany = 'ColorfulLookupMany',\n}\n\nexport const LookupManyCellRenderer = (props: ICellRendererProps) => {\n const { api, baseColumn, dataProvider } = props;\n const record: IRecord = props.data;\n const [isDisabled, setIsDisabled] = React.useState(true);\n const customControl = record.getColumnInfo(baseColumn.name).ui.getCustomControls([])?.[0];\n const controlName = customControl.name ?? ControlName.LookupMany as ControlName;\n const bindings = customControl?.bindings;\n const provider = useTaskDataProvider();\n const value: ComponentFramework.EntityReference[] | undefined = record.getValue(props.colDef!.colId!) as ComponentFramework.EntityReference[] | undefined;\n\n const onSelectionChange = (selectedRecords: ComponentFramework.EntityReference[]) => {\n record.setValue(props.colDef!.colId!, selectedRecords);\n record.save();\n api.refreshCells({\n rowNodes: [props.node],\n columns: [props.colDef!.colId!],\n force: true\n });\n }\n\n const onRecordOpen = (entityReference: ComponentFramework.EntityReference) => {\n provider.openDatasetItem(entityReference, {\n columnName: baseColumn.name\n });\n }\n\n const onMenuClose = () => {\n setIsDisabled(true);\n }\n\n const getComponentProps = (): ILookupManyProps => {\n return {\n dataProvider,\n selectedRecords: value,\n isDisabled,\n onRecordSelect: onSelectionChange,\n onRecordOpen,\n components: {\n onRenderSelect: (selectProps) =>\n <AsyncSelect {...selectProps}\n autoFocus\n openMenuOnFocus\n openMenuOnClick\n styles={{\n ...selectProps.styles,\n control: (base, props) => {\n return {\n ...selectProps.styles?.control?.(base, props),\n maxHeight: 200,\n overflow: 'auto',\n border: 'none',\n background: 'none',\n boxShadow: 'none',\n }\n }\n }}\n onMenuClose={() => {\n selectProps.onMenuClose?.();\n onMenuClose();\n }} />\n }\n }\n }\n\n const getComponent = (): JSX.Element => {\n switch (controlName) {\n case ControlName.ColorfulLookupMany:\n return <ColorfulLookupMany\n colorPropertyName={bindings?.ColorPropertyName?.value}\n {...getComponentProps()}\n />\n case ControlName.PeopleLookupMany:\n return <PeopleLookupMany\n {...getComponentProps()}\n imageUrlPropertyName={bindings?.ImageUrlPropertyName?.value}\n />\n default: {\n return <LookupMany\n {...getComponentProps()}\n />\n }\n }\n }\n const onSwitchToEditMode = useCallback(() => {\n if (props.value.editable) {\n setIsDisabled(false);\n }\n setTimeout(() => {\n const element = props.eGridCell.querySelector('[data-value]');\n element?.dispatchEvent(new MouseEvent('mousedown', { bubbles: true, button: 0 }));\n element?.dispatchEvent(new MouseEvent('mouseup', { bubbles: true, button: 0 }));\n })\n }, [props.value.editable]);\n\n useEffect(() => {\n props.eGridCell.addEventListener('dblclick', onSwitchToEditMode);\n return () => {\n props.eGridCell.removeEventListener('dblclick', onSwitchToEditMode);\n }\n }, [onSwitchToEditMode]);\n\n return <div>\n {getComponent()}\n </div>\n}"],"names":["React","_jsx"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './LookupManyCellRenderer';
|
package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/PercentComplete.js
CHANGED
|
@@ -4,6 +4,7 @@ import { Cell } from '../../../../../Grid/cells/cell/Cell.js';
|
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import { getPercentCompleteStyles } from './styles.js';
|
|
6
6
|
|
|
7
|
+
const PERCENT_COMPLETE_CONTROL_NAME = "PercentComplete";
|
|
7
8
|
const PercentComplete = (props) => {
|
|
8
9
|
const value = props.value.value;
|
|
9
10
|
const formattedValue = props.valueFormatted;
|
|
@@ -18,5 +19,5 @@ const PercentComplete = (props) => {
|
|
|
18
19
|
}, description: formattedValue, percentComplete: value !== null ? value / 100 : 0 }) });
|
|
19
20
|
};
|
|
20
21
|
|
|
21
|
-
export { PercentComplete };
|
|
22
|
+
export { PERCENT_COMPLETE_CONTROL_NAME, PercentComplete };
|
|
22
23
|
//# sourceMappingURL=PercentComplete.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PercentComplete.js","sources":["../../../../../../../src/components/TaskGrid/components/grid/cell-renderers/percent-complete/PercentComplete.tsx"],"sourcesContent":["import { ProgressIndicator } from \"@fluentui/react\";\nimport { Cell, ICellProps } from \"../../../../../Grid/cells/cell/Cell\";\nimport * as React from \"react\";\nimport { getPercentCompleteStyles } from \"./styles\";\n\nexport const PercentComplete = (props: ICellProps) => {\n const value = props.value.value;\n const formattedValue = props.valueFormatted;\n const styles = React.useMemo(() => getPercentCompleteStyles(), []);\n \n if(props.value.loading) {\n return <Cell {...props} />\n }\n return <div className={styles.root}>\n <ProgressIndicator\n barHeight={5}\n styles={{\n root: styles.progressIndicatorRoot,\n itemProgress: styles.itemProgress,\n itemDescription: styles.itemDescription\n }}\n description={formattedValue}\n percentComplete={value !== null ? value / 100 : 0}\n />\n </div>\n}"],"names":["_jsx"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"PercentComplete.js","sources":["../../../../../../../src/components/TaskGrid/components/grid/cell-renderers/percent-complete/PercentComplete.tsx"],"sourcesContent":["import { ProgressIndicator } from \"@fluentui/react\";\nimport { Cell, ICellProps } from \"../../../../../Grid/cells/cell/Cell\";\nimport * as React from \"react\";\nimport { getPercentCompleteStyles } from \"./styles\";\n\nexport const PERCENT_COMPLETE_CONTROL_NAME = \"PercentComplete\";\n\nexport const PercentComplete = (props: ICellProps) => {\n const value = props.value.value;\n const formattedValue = props.valueFormatted;\n const styles = React.useMemo(() => getPercentCompleteStyles(), []);\n \n if(props.value.loading) {\n return <Cell {...props} />\n }\n return <div className={styles.root}>\n <ProgressIndicator\n barHeight={5}\n styles={{\n root: styles.progressIndicatorRoot,\n itemProgress: styles.itemProgress,\n itemDescription: styles.itemDescription\n }}\n description={formattedValue}\n percentComplete={value !== null ? value / 100 : 0}\n />\n </div>\n}"],"names":["_jsx"],"mappings":";;;;;;AAKO,MAAM,6BAA6B,GAAG,kBAAkB;AAElD,MAAA,eAAe,GAAG,CAAC,KAAiB,KAAI;AACjD,IAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;AAChC,IAAA,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;AAC5C,IAAA,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,wBAAwB,EAAE,EAAE,EAAE,CAAC,CAAC;AAEnE,IAAA,IAAG,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE;AACpB,QAAA,OAAOA,GAAC,CAAA,IAAI,EAAK,EAAA,GAAA,KAAK,GAAI,CAAA;AAC7B,KAAA;AACD,IAAA,OAAOA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,IAAI,EAAA,QAAA,EAC9BA,GAAC,CAAA,iBAAiB,IACd,SAAS,EAAE,CAAC,EACZ,MAAM,EAAE;gBACJ,IAAI,EAAE,MAAM,CAAC,qBAAqB;gBAClC,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,eAAe,EAAE,MAAM,CAAC,eAAe;aAC1C,EACD,WAAW,EAAE,cAAc,EAC3B,eAAe,EAAE,KAAK,KAAK,IAAI,GAAG,KAAK,GAAG,GAAG,GAAG,CAAC,EAClD,CAAA,EAAA,CACD,CAAA;AACV;;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { PercentComplete } from './PercentComplete.js';
|
|
1
|
+
export { PERCENT_COMPLETE_CONTROL_NAME, PercentComplete } from './PercentComplete.js';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ColDef as ColDefBase, GridApi as GridApiBase, RowClassRules as RowClassRulesBase } from "@ag-grid-community/core";
|
|
2
|
-
import { ITaskDataProvider } from "../../../
|
|
2
|
+
import { ITaskDataProvider } from "../../../providers/task";
|
|
3
3
|
import { IRecord } from "@talxis/client-libraries";
|
|
4
4
|
import { ITaskGridDatasetControl } from "../../../interfaces";
|
|
5
5
|
export declare const ADD_TASK_COLUMN_NAME = "addTask";
|
|
@@ -14,12 +14,6 @@ export interface IGridCustomizerStrategy {
|
|
|
14
14
|
onGetColumnDefinitions?: (columnDefs: ColDef[]) => ColDef[];
|
|
15
15
|
/** Receives the default row class rules map and may return an extended or overridden version. */
|
|
16
16
|
onGetRowClassRules?: (rules: RowClassRules) => RowClassRules;
|
|
17
|
-
/** Return a custom cell renderer component for the given column definition, or `undefined` to use the default. */
|
|
18
|
-
onGetCellRenderer?: (colDef: ColDef) => any;
|
|
19
|
-
/** Return a custom cell editor component for the given column definition, or `undefined` to use the default. */
|
|
20
|
-
onGetCellEditor?: (colDef: ColDef) => any;
|
|
21
|
-
/** Receives the raw AG Grid `GridApi` instance, useful if the strategy needs to retain a reference. */
|
|
22
|
-
onRetrieveGridApi?: (gridApi: GridApi) => void;
|
|
23
17
|
}
|
|
24
18
|
/** Provides access to the AG Grid instance and the TaskGrid control to code running inside `IGridCustomizerStrategy`. */
|
|
25
19
|
export interface IGridCustomizer {
|
|
@@ -58,6 +52,7 @@ export declare class GridCustomizer implements IGridCustomizer {
|
|
|
58
52
|
private _isServerSideGroupOpenByDefault;
|
|
59
53
|
private _injectAddTaskColumn;
|
|
60
54
|
private _getColumnDefinitions;
|
|
55
|
+
private _getCustomControlForColumn;
|
|
61
56
|
private _getColumnPriority;
|
|
62
57
|
private _getRowClassRules;
|
|
63
58
|
private _getPathToParent;
|
|
@@ -2,8 +2,8 @@ import { DatasetConstants } from '@talxis/client-libraries';
|
|
|
2
2
|
import { GridDragHandler } from '../grid-drag-handler/GridDragHandler.js';
|
|
3
3
|
import { AddTaskButton } from '../cell-renderers/add-task-button/AddTaskButton.js';
|
|
4
4
|
import { TreeExpandCollapseHeader } from '../cell-headers/tree-expand-collapse-header/TreeExpandCollapseHeader.js';
|
|
5
|
-
import { PercentComplete } from '../cell-renderers/percent-complete/PercentComplete.js';
|
|
6
5
|
import { GroupCell } from '../group-cell/GroupCell.js';
|
|
6
|
+
import { PERCENT_COMPLETE_CONTROL_NAME, PercentComplete } from '../cell-renderers/percent-complete/PercentComplete.js';
|
|
7
7
|
|
|
8
8
|
const ADD_TASK_COLUMN_NAME = 'addTask';
|
|
9
9
|
class GridCustomizer {
|
|
@@ -39,9 +39,24 @@ class GridCustomizer {
|
|
|
39
39
|
parentNode.setExpanded(true);
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
-
|
|
43
|
-
this.
|
|
44
|
-
|
|
42
|
+
setTimeout(() => {
|
|
43
|
+
const primaryIdAttribute = this._taskDataProvider.getMetadata().PrimaryIdAttribute;
|
|
44
|
+
const recordId = records[0][primaryIdAttribute];
|
|
45
|
+
const node = this._gridApi.getRowNode(recordId);
|
|
46
|
+
if (!node)
|
|
47
|
+
return;
|
|
48
|
+
if (records.length === 1 && this._datasetControl.isInlineCreateEnabled()) {
|
|
49
|
+
const rowIndex = node.rowIndex;
|
|
50
|
+
this._gridApi.startEditingCell({
|
|
51
|
+
rowIndex: rowIndex,
|
|
52
|
+
colKey: this._nativeColumns.subject
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
this._gridApi.setFocusedCell(node.rowIndex, this._nativeColumns.subject);
|
|
57
|
+
this._gridApi.ensureNodeVisible(node);
|
|
58
|
+
}
|
|
59
|
+
}, 100);
|
|
45
60
|
};
|
|
46
61
|
this._onAfterTaskDataUpdated = (newData) => {
|
|
47
62
|
const recordIdsSet = new Set(newData.map(item => item[this._taskDataProvider.getMetadata().PrimaryIdAttribute]));
|
|
@@ -92,7 +107,7 @@ class GridCustomizer {
|
|
|
92
107
|
break;
|
|
93
108
|
}
|
|
94
109
|
case 'isServerSideGroupOpenByDefault': {
|
|
95
|
-
originalSetGridOption(key, (params) => this._isServerSideGroupOpenByDefault(params));
|
|
110
|
+
originalSetGridOption(key, (params) => this._isServerSideGroupOpenByDefault(params, (params) => value(params)));
|
|
96
111
|
break;
|
|
97
112
|
}
|
|
98
113
|
default: {
|
|
@@ -101,15 +116,19 @@ class GridCustomizer {
|
|
|
101
116
|
}
|
|
102
117
|
};
|
|
103
118
|
}
|
|
104
|
-
_isServerSideGroupOpenByDefault(params) {
|
|
105
|
-
if (!params.data) {
|
|
119
|
+
_isServerSideGroupOpenByDefault(params, defaultAction) {
|
|
120
|
+
if (!params.data || this._taskDataProvider.isFlatListEnabled()) {
|
|
106
121
|
return false;
|
|
107
122
|
}
|
|
108
123
|
const matchingRecords = this._taskDataProvider.getRecordTree().getMatchingRecords();
|
|
109
|
-
|
|
124
|
+
const result = !matchingRecords[params.data.getRecordId()];
|
|
125
|
+
if (result) {
|
|
126
|
+
return result;
|
|
127
|
+
}
|
|
128
|
+
return defaultAction(params);
|
|
110
129
|
}
|
|
111
130
|
_injectAddTaskColumn(columnDefs) {
|
|
112
|
-
if (!columnDefs.find(colDef => colDef.colId === ADD_TASK_COLUMN_NAME)) {
|
|
131
|
+
if (!this._taskDataProvider.isFlatListEnabled() && !columnDefs.find(colDef => colDef.colId === ADD_TASK_COLUMN_NAME)) {
|
|
113
132
|
columnDefs.push({
|
|
114
133
|
colId: ADD_TASK_COLUMN_NAME,
|
|
115
134
|
headerName: '',
|
|
@@ -130,6 +149,9 @@ class GridCustomizer {
|
|
|
130
149
|
for (const colDef of columnDefs) {
|
|
131
150
|
colDef.onCellDoubleClicked = () => { };
|
|
132
151
|
const columnName = colDef.colId;
|
|
152
|
+
const column = this._taskDataProvider.getColumnsMap()[columnName];
|
|
153
|
+
const customCellRenderer = this._getCustomControlForColumn('renderer', column);
|
|
154
|
+
const customCellEditor = this._getCustomControlForColumn('editor', column);
|
|
133
155
|
switch (columnName) {
|
|
134
156
|
case this._nativeColumns.subject: {
|
|
135
157
|
colDef.cellRenderer = GroupCell;
|
|
@@ -140,20 +162,22 @@ class GridCustomizer {
|
|
|
140
162
|
colDef.lockPosition = true;
|
|
141
163
|
break;
|
|
142
164
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
165
|
+
}
|
|
166
|
+
if (customCellRenderer === PERCENT_COMPLETE_CONTROL_NAME) {
|
|
167
|
+
colDef.cellRenderer = PercentComplete;
|
|
168
|
+
}
|
|
169
|
+
if (customCellEditor === PERCENT_COMPLETE_CONTROL_NAME) {
|
|
170
|
+
colDef.cellEditor = PercentComplete;
|
|
147
171
|
}
|
|
148
172
|
}
|
|
149
173
|
columnDefs.sort((a, b) => this._getColumnPriority(a) - this._getColumnPriority(b));
|
|
150
174
|
columnDefs = this._strategy?.onGetColumnDefinitions?.(columnDefs) ?? columnDefs;
|
|
151
|
-
for (const colDef of columnDefs) {
|
|
152
|
-
colDef.cellRenderer = this._strategy?.onGetCellRenderer?.(colDef) ?? colDef.cellRenderer;
|
|
153
|
-
colDef.cellEditor = this._strategy?.onGetCellEditor?.(colDef) ?? colDef.cellEditor;
|
|
154
|
-
}
|
|
155
175
|
return columnDefs;
|
|
156
176
|
}
|
|
177
|
+
_getCustomControlForColumn(role, column) {
|
|
178
|
+
const control = column?.controls?.find(c => c.appliesTo === role || c.appliesTo === 'both');
|
|
179
|
+
return control?.name ?? null;
|
|
180
|
+
}
|
|
157
181
|
_getColumnPriority(col) {
|
|
158
182
|
if (col.colId === DatasetConstants.CHECKBOX_COLUMN_KEY)
|
|
159
183
|
return 0;
|
|
@@ -287,7 +311,9 @@ class GridCustomizer {
|
|
|
287
311
|
addIndex: addIndex !== null ? addIndex : undefined,
|
|
288
312
|
});
|
|
289
313
|
if (position === 'child') {
|
|
290
|
-
|
|
314
|
+
setTimeout(() => {
|
|
315
|
+
overNode.setExpanded(true);
|
|
316
|
+
}, 0);
|
|
291
317
|
}
|
|
292
318
|
this._gridApi.refreshCells({
|
|
293
319
|
columns: [this._nativeColumns.subject],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridCustomizer.js","sources":["../../../../../../src/components/TaskGrid/components/grid/grid-customizer/GridCustomizer.ts"],"sourcesContent":["import { ColDef as ColDefBase, GridApi as GridApiBase, IRowNode, IsServerSideGroupOpenByDefaultParams, RowClassRules as RowClassRulesBase } from \"@ag-grid-community/core\";\nimport { ITaskDataProvider } from \"../../../data-providers/task-data-provider\";\nimport { DatasetConstants, IRawRecord, IRecord } from \"@talxis/client-libraries\";\nimport { GridDragHandler, IDragOperation } from \"../grid-drag-handler\";\nimport { GroupCell } from \"../group-cell\";\nimport { TreeExpandCollapseHeader } from \"../cell-headers/tree-expand-collapse-header\";\nimport { AddTaskButton } from \"../cell-renderers/add-task-button\";\nimport { ILocalizationService, ITaskGridLabels } from \"../../../labels\";\nimport { PercentComplete } from \"../cell-renderers/percent-complete\";\nimport { INativeColumns, ITaskGridDatasetControl } from \"../../../interfaces\";\n\nexport const ADD_TASK_COLUMN_NAME = 'addTask';\n\nexport type ColDef = ColDefBase<IRecord>;\nexport type GridApi = GridApiBase<IRecord>;\nexport type RowClassRules = RowClassRulesBase<IRecord>;\n\n\n/** Strategy interface for deep customization of the AG Grid instance inside TaskGrid. */\nexport interface IGridCustomizerStrategy {\n /** Called once after the grid is ready. Use to call `customizer.registerExpressionDecorator` or perform other one-time setup. */\n onInitialize: (customizer: IGridCustomizer) => void;\n /** Receives the computed column definitions and may return a modified array. */\n onGetColumnDefinitions?: (columnDefs: ColDef[]) => ColDef[];\n /** Receives the default row class rules map and may return an extended or overridden version. */\n onGetRowClassRules?: (rules: RowClassRules) => RowClassRules;\n /** Return a custom cell renderer component for the given column definition, or `undefined` to use the default. */\n onGetCellRenderer?: (colDef: ColDef) => any;\n /** Return a custom cell editor component for the given column definition, or `undefined` to use the default. */\n onGetCellEditor?: (colDef: ColDef) => any;\n /** Receives the raw AG Grid `GridApi` instance, useful if the strategy needs to retain a reference. */\n onRetrieveGridApi?: (gridApi: GridApi) => void;\n}\n\n/** Provides access to the AG Grid instance and the TaskGrid control to code running inside `IGridCustomizerStrategy`. */\nexport interface IGridCustomizer {\n /** Returns the underlying AG Grid `GridApi`. */\n getGridApi(): GridApi;\n /** Returns the `ITaskDataProvider` that backs the grid data layer. */\n getTaskDataProvider(): ITaskDataProvider;\n /** Returns the `ITaskGridDatasetControl` runtime control interface. */\n getDatasetControl(): ITaskGridDatasetControl;\n /**\n * Registers a column-expression decorator only when the given column exists in the current columns map.\n * Prevents errors when registering decorators for columns that may not be present in all views.\n */\n registerExpressionDecorator(columnName: string, registrator: () => void): void;\n}\n\nexport interface IGridCustomizerParameters {\n gridApi: GridApi;\n datasetControl: ITaskGridDatasetControl;\n strategy?: IGridCustomizerStrategy;\n}\n\nexport class GridCustomizer implements IGridCustomizer {\n private _taskDataProvider: ITaskDataProvider;\n private _gridApi: GridApi;\n private _gridDragHandler: GridDragHandler;\n private _localizationService: ILocalizationService<ITaskGridLabels>;\n private _nativeColumns: INativeColumns;\n private _pcfContext: ComponentFramework.Context<any>;\n private _datasetControl: ITaskGridDatasetControl;\n private _strategy?: IGridCustomizerStrategy;\n\n constructor(parameters: IGridCustomizerParameters) {\n this._datasetControl = parameters.datasetControl;\n this._taskDataProvider = this._datasetControl.getDataProvider();\n this._gridApi = parameters.gridApi;\n this._localizationService = this._datasetControl.getLocalizationService();\n this._nativeColumns = this._datasetControl.getNativeColumns();\n this._strategy = parameters.strategy;\n this._pcfContext = this._datasetControl.getPcfContext();\n\n this._gridDragHandler = new GridDragHandler({\n gridApi: this._gridApi,\n datasetControl: this._datasetControl\n });\n this._patchGridApi();\n this._registerEventListeners();\n this._gridApi.setGridOption('rowClassRules', this._getRowClassRules());\n this._strategy?.onInitialize?.(this);\n }\n\n public getDatasetControl(): ITaskGridDatasetControl {\n return this._datasetControl;\n }\n\n public getGridApi(): GridApi {\n return this._gridApi;\n }\n\n public getTaskDataProvider(): ITaskDataProvider {\n return this._taskDataProvider;\n }\n\n //makes sure we do not try to register an expression for a column that does not exist\n public registerExpressionDecorator(columnName: string, registrator: () => void) {\n if (columnName && this._taskDataProvider.getColumnsMap()[columnName]) {\n registrator();\n }\n }\n\n private _patchGridApi() {\n const originalSetGridOption = this._gridApi.setGridOption.bind(this._gridApi);\n this._gridApi.setGridOption = (key: any, value: any): void => {\n switch (key) {\n case 'columnDefs': {\n const columnDefs = this._getColumnDefinitions(value);\n originalSetGridOption(key, columnDefs);\n break;\n }\n case 'isServerSideGroupOpenByDefault': {\n originalSetGridOption(key, (params: IsServerSideGroupOpenByDefaultParams) => this._isServerSideGroupOpenByDefault(params));\n break;\n }\n default: {\n originalSetGridOption(key, value);\n }\n }\n }\n }\n\n private _isServerSideGroupOpenByDefault(params: IsServerSideGroupOpenByDefaultParams) {\n if (!params.data) {\n return false;\n }\n const matchingRecords = this._taskDataProvider.getRecordTree().getMatchingRecords();\n return !matchingRecords[params.data.getRecordId()];\n }\n\n private _injectAddTaskColumn(columnDefs: ColDef[]) {\n if (!columnDefs.find(colDef => colDef.colId === ADD_TASK_COLUMN_NAME)) {\n columnDefs.push({\n colId: ADD_TASK_COLUMN_NAME,\n headerName: '',\n pinned: 'left',\n width: 50,\n resizable: false,\n lockPinned: true,\n lockPosition: true,\n suppressMovable: true,\n suppressSizeToFit: true,\n cellRenderer: AddTaskButton,\n headerComponent: TreeExpandCollapseHeader\n })\n }\n }\n\n private _getColumnDefinitions(columnDefs: ColDef[]) {\n this._injectAddTaskColumn(columnDefs);\n for (const colDef of columnDefs) {\n colDef.onCellDoubleClicked = () => { }\n const columnName = colDef.colId as string;\n switch (columnName) {\n case this._nativeColumns.subject: {\n colDef.cellRenderer = GroupCell;\n colDef.pinned = 'left';\n break;\n }\n case DatasetConstants.CHECKBOX_COLUMN_KEY: {\n colDef.lockPosition = true;\n break;\n }\n case this._nativeColumns.percentComplete: {\n colDef.cellRenderer = PercentComplete;\n break\n }\n }\n }\n\n columnDefs.sort((a, b) => this._getColumnPriority(a) - this._getColumnPriority(b));\n columnDefs = this._strategy?.onGetColumnDefinitions?.(columnDefs) ?? columnDefs;\n for (const colDef of columnDefs) {\n colDef.cellRenderer = this._strategy?.onGetCellRenderer?.(colDef) ?? colDef.cellRenderer;\n colDef.cellEditor = this._strategy?.onGetCellEditor?.(colDef) ?? colDef.cellEditor;\n }\n return columnDefs;\n\n }\n\n private _getColumnPriority(col: ColDef): number {\n if (col.colId === DatasetConstants.CHECKBOX_COLUMN_KEY) return 0;\n if (col.colId === ADD_TASK_COLUMN_NAME) return 1;\n if (col.field === this._nativeColumns.subject) return 2;\n return 3;\n }\n\n private _getRowClassRules(): RowClassRules {\n const rules: RowClassRules = {\n 'talxis_task-grid_row--drag-over-middle': (params) => {\n return !!params.data?.isActive() && this._getNodeDragOverSection(params.node) === 'middle'\n },\n 'talxis_task-grid_row--drag-over-top': (params) => {\n return this._getNodeDragOverSection(params.node) === 'top'\n },\n 'talxis_task-grid_row--drag-over-bottom': (params) => {\n return this._getNodeDragOverSection(params.node) === 'bottom'\n },\n 'talxis_task-grid_row--inactive': (params) => {\n return !params.data?.isActive()\n },\n 'talxis_task-grid_row--unmatched-parent': (params) => {\n if (params.data) {\n const matchingRecordsMap = this._taskDataProvider.getRecordTree().getMatchingRecords();\n return !matchingRecordsMap[params.data!.getRecordId()]\n }\n else {\n return false;\n }\n }\n }\n return this._strategy?.onGetRowClassRules?.(rules) ?? rules;\n }\n\n private _getPathToParent(node: IRowNode<IRecord> | null): string[] {\n const path: string[] = [];\n let parent = node?.parent;\n while (parent) {\n path.push(parent.id!);\n parent = parent.parent;\n }\n return path.filter(id => id).reverse();\n }\n\n //undefined means we should target top level\n private _onRecordTreeUpdated = (affectedIds: (string | undefined)[]) => {\n for (const id of affectedIds) {\n if (!id) {\n this._gridApi.refreshServerSide();\n }\n else {\n const node = this._gridApi.getRowNode(id)!;\n this._gridApi.refreshServerSide({\n route: this._getPathToParent(node)\n });\n this._gridApi.refreshServerSide({\n route: [...this._getPathToParent(node), id]\n })\n }\n }\n this._gridApi.refreshCells({\n columns: [this._nativeColumns.subject],\n force: true\n });\n this._taskDataProvider.requestRender();\n }\n\n private _getNodeDragOverSection(node: IRowNode<IRecord>): IDragOperation['dragOverSection'] | null {\n const pendingDragOperation = this._gridDragHandler.getPendingDragOperation();\n if (!pendingDragOperation) {\n return null;\n }\n else {\n const isCurrentNode = pendingDragOperation.overNode === node;\n const isDraggedNode = pendingDragOperation.draggedNode === pendingDragOperation.overNode;\n if (isCurrentNode && !isDraggedNode) {\n return pendingDragOperation.dragOverSection;\n }\n else {\n return null;\n }\n }\n }\n\n private async _onDragEnd(dragOperation: IDragOperation) {\n if (this._isDragOperationAllowed(dragOperation)) {\n this._moveTask(dragOperation);\n }\n }\n\n private _isDragOperationAllowed(dragOperation: IDragOperation): boolean {\n const { draggedNode, overNode } = dragOperation;\n // Check if either node is null/undefined\n if (!draggedNode || !overNode) {\n return false;\n }\n if (draggedNode === overNode) {\n return false;\n }\n if (!overNode.data?.isActive() && dragOperation.dragOverSection === 'middle') {\n return false;\n }\n\n let parent = overNode.parent;\n while (parent) {\n if (parent === draggedNode) {\n return false;\n }\n parent = parent.parent;\n }\n return true;\n }\n\n private _getPositionFromDragOverSection(dragOverSection: IDragOperation['dragOverSection']): 'above' | 'below' | 'child' {\n switch (dragOverSection) {\n case 'top': {\n return 'above';\n }\n case 'bottom': {\n return 'below';\n }\n case 'middle': {\n return 'child';\n }\n }\n }\n\n private async _moveTask(dragOperation: IDragOperation) {\n const { draggedNode, overNode, dragOverSection } = dragOperation;\n const position = this._getPositionFromDragOverSection(dragOverSection);\n this._taskDataProvider.moveTask(draggedNode.id!, overNode.id!, position);\n }\n\n private _moveInto(movingFromRecordId: string, movingToRecordId: string, position: 'child' | 'above' | 'below') {\n const draggedRecordNode = this._taskDataProvider.getRecordTree().getNode(movingFromRecordId);\n const draggedRecord = this._taskDataProvider.getRecordsMap()[movingFromRecordId];\n const draggedNode = this._gridApi.getRowNode(movingFromRecordId)!;\n const overNode = this._gridApi.getRowNode(movingToRecordId)!;\n\n let addIndex: number | null = draggedRecordNode.index;\n\n //first remove from old location\n this._gridApi.applyServerSideTransaction({\n route: this._getPathToParent(draggedNode),\n remove: [draggedRecord],\n });\n\n //update the store where dragged parent node is (so the arrow can disappear if needed)\n this._gridApi.applyServerSideTransaction({\n route: this._getPathToParent(draggedNode.parent),\n update: [draggedNode.data],\n });\n\n //update the store where over node is (so the arrow can appear if needed)\n this._gridApi.applyServerSideTransaction({\n route: this._getPathToParent(overNode),\n update: [overNode.data],\n });\n //then add to new location\n this._gridApi.applyServerSideTransaction({\n // i need to set route to parent of over node\n route: [...this._getPathToParent(overNode), ...(position === 'child' ? [overNode.id!] : [])],\n add: [draggedRecord],\n addIndex: addIndex !== null ? addIndex : undefined,\n });\n\n if (position === 'child') {\n overNode.setExpanded(true);\n }\n this._gridApi.refreshCells({\n columns: [this._nativeColumns.subject],\n force: true\n });\n this._taskDataProvider.clearSelectedRecordIds();\n }\n\n\n private _onAfterTasksCreated = (records: IRawRecord[] | null, parentId?: string) => {\n if (!records || records.length === 0) return;\n if (parentId) {\n const parentNode = this._gridApi.getRowNode(parentId);\n if (parentNode && !parentNode.expanded) {\n parentNode.setExpanded(true);\n }\n }\n if (!parentId) {\n this._gridApi.ensureIndexVisible(0);\n }\n }\n\n private _onAfterTaskDataUpdated = (newData: IRawRecord[]) => {\n const recordIdsSet = new Set(newData.map(item => item[this._taskDataProvider.getMetadata().PrimaryIdAttribute]));\n const nodes = this._gridApi.getRenderedNodes().filter(node => recordIdsSet.has(node.id!));\n this._gridApi.refreshCells({\n rowNodes: nodes,\n force: true\n })\n }\n\n private _registerEventListeners() {\n this._taskDataProvider.taskEvents.addEventListener('onAfterTaskMoved', (movingFromTaskId, movingToTaskId, position) => this._moveInto(movingFromTaskId, movingToTaskId, position));\n this._taskDataProvider.taskEvents.addEventListener('onAfterTasksCreated', (records, parentId) => this._onAfterTasksCreated(records, parentId));\n this._taskDataProvider.taskEvents.addEventListener('onRecordTreeUpdated', (updatedParentIds) => this._onRecordTreeUpdated(updatedParentIds));\n this._taskDataProvider.taskEvents.addEventListener('onTaskDataUpdated', (newData) => this._onAfterTaskDataUpdated(newData));\n this._gridDragHandler.addEventListener('onDragEnd', (dragOperation) => this._onDragEnd(dragOperation));\n }\n}"],"names":[],"mappings":";;;;;;;AAWO,MAAM,oBAAoB,GAAG,UAAU;MA4CjC,cAAc,CAAA;AAUvB,IAAA,WAAA,CAAY,UAAqC,EAAA;;AAiKzC,QAAA,IAAA,CAAA,oBAAoB,GAAG,CAAC,WAAmC,KAAI;AACnE,YAAA,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE;gBAC1B,IAAI,CAAC,EAAE,EAAE;AACL,oBAAA,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;AACrC,iBAAA;AACI,qBAAA;oBACD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAE,CAAC;AAC3C,oBAAA,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;AAC5B,wBAAA,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;AACrC,qBAAA,CAAC,CAAC;AACH,oBAAA,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;wBAC5B,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;AAC9C,qBAAA,CAAC,CAAA;AACL,iBAAA;AACJ,aAAA;AACD,YAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;AACvB,gBAAA,OAAO,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;AACtC,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;AAC3C,SAAC,CAAA;AAgHO,QAAA,IAAA,CAAA,oBAAoB,GAAG,CAAC,OAA4B,EAAE,QAAiB,KAAI;AAC/E,YAAA,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;AAC7C,YAAA,IAAI,QAAQ,EAAE;gBACV,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACtD,gBAAA,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;AACpC,oBAAA,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAChC,iBAAA;AACJ,aAAA;YACD,IAAI,CAAC,QAAQ,EAAE;AACX,gBAAA,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;AACvC,aAAA;AACL,SAAC,CAAA;AAEO,QAAA,IAAA,CAAA,uBAAuB,GAAG,CAAC,OAAqB,KAAI;YACxD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;YACjH,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAG,CAAC,CAAC,CAAC;AAC1F,YAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;AACvB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA,CAAC,CAAA;AACN,SAAC,CAAA;AAxTG,QAAA,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,cAAc,CAAC;QACjD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC;AAChE,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,eAAe,CAAC,sBAAsB,EAAE,CAAC;QAC1E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,CAAC;AAC9D,QAAA,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;AAExD,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,eAAe,CAAC;YACxC,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,cAAc,EAAE,IAAI,CAAC,eAAe;AACvC,SAAA,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAC/B,QAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,eAAe,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC,CAAC;KACxC;IAEM,iBAAiB,GAAA;QACpB,OAAO,IAAI,CAAC,eAAe,CAAC;KAC/B;IAEM,UAAU,GAAA;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;IAEM,mBAAmB,GAAA;QACtB,OAAO,IAAI,CAAC,iBAAiB,CAAC;KACjC;;IAGM,2BAA2B,CAAC,UAAkB,EAAE,WAAuB,EAAA;QAC1E,IAAI,UAAU,IAAI,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,UAAU,CAAC,EAAE;AAClE,YAAA,WAAW,EAAE,CAAC;AACjB,SAAA;KACJ;IAEO,aAAa,GAAA;AACjB,QAAA,MAAM,qBAAqB,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9E,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,CAAC,GAAQ,EAAE,KAAU,KAAU;AACzD,YAAA,QAAQ,GAAG;gBACP,KAAK,YAAY,EAAE;oBACf,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AACrD,oBAAA,qBAAqB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;oBACvC,MAAM;AACT,iBAAA;gBACD,KAAK,gCAAgC,EAAE;AACnC,oBAAA,qBAAqB,CAAC,GAAG,EAAE,CAAC,MAA4C,KAAK,IAAI,CAAC,+BAA+B,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC3H,MAAM;AACT,iBAAA;AACD,gBAAA,SAAS;AACL,oBAAA,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACrC,iBAAA;AACJ,aAAA;AACL,SAAC,CAAA;KACJ;AAEO,IAAA,+BAA+B,CAAC,MAA4C,EAAA;AAChF,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AACd,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;QACD,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,kBAAkB,EAAE,CAAC;QACpF,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;KACtD;AAEO,IAAA,oBAAoB,CAAC,UAAoB,EAAA;AAC7C,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,KAAK,oBAAoB,CAAC,EAAE;YACnE,UAAU,CAAC,IAAI,CAAC;AACZ,gBAAA,KAAK,EAAE,oBAAoB;AAC3B,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,KAAK,EAAE,EAAE;AACT,gBAAA,SAAS,EAAE,KAAK;AAChB,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,YAAY,EAAE,IAAI;AAClB,gBAAA,eAAe,EAAE,IAAI;AACrB,gBAAA,iBAAiB,EAAE,IAAI;AACvB,gBAAA,YAAY,EAAE,aAAa;AAC3B,gBAAA,eAAe,EAAE,wBAAwB;AAC5C,aAAA,CAAC,CAAA;AACL,SAAA;KACJ;AAEO,IAAA,qBAAqB,CAAC,UAAoB,EAAA;AAC9C,QAAA,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;AACtC,QAAA,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE;AAC7B,YAAA,MAAM,CAAC,mBAAmB,GAAG,MAAK,GAAI,CAAA;AACtC,YAAA,MAAM,UAAU,GAAG,MAAM,CAAC,KAAe,CAAC;AAC1C,YAAA,QAAQ,UAAU;AACd,gBAAA,KAAK,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;AAC9B,oBAAA,MAAM,CAAC,YAAY,GAAG,SAAS,CAAC;AAChC,oBAAA,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;oBACvB,MAAM;AACT,iBAAA;AACD,gBAAA,KAAK,gBAAgB,CAAC,mBAAmB,EAAE;AACvC,oBAAA,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;oBAC3B,MAAM;AACT,iBAAA;AACD,gBAAA,KAAK,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE;AACtC,oBAAA,MAAM,CAAC,YAAY,GAAG,eAAe,CAAC;oBACtC,MAAK;AACR,iBAAA;AACJ,aAAA;AACJ,SAAA;QAED,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;AACnF,QAAA,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,sBAAsB,GAAG,UAAU,CAAC,IAAI,UAAU,CAAC;AAChF,QAAA,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE;AAC7B,YAAA,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,iBAAiB,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC;AACzF,YAAA,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,eAAe,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC;AACtF,SAAA;AACD,QAAA,OAAO,UAAU,CAAC;KAErB;AAEO,IAAA,kBAAkB,CAAC,GAAW,EAAA;AAClC,QAAA,IAAI,GAAG,CAAC,KAAK,KAAK,gBAAgB,CAAC,mBAAmB;AAAE,YAAA,OAAO,CAAC,CAAC;AACjE,QAAA,IAAI,GAAG,CAAC,KAAK,KAAK,oBAAoB;AAAE,YAAA,OAAO,CAAC,CAAC;QACjD,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,OAAO;AAAE,YAAA,OAAO,CAAC,CAAC;AACxD,QAAA,OAAO,CAAC,CAAC;KACZ;IAEO,iBAAiB,GAAA;AACrB,QAAA,MAAM,KAAK,GAAkB;AACzB,YAAA,wCAAwC,EAAE,CAAC,MAAM,KAAI;AACjD,gBAAA,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAA;aAC7F;AACD,YAAA,qCAAqC,EAAE,CAAC,MAAM,KAAI;gBAC9C,OAAO,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,CAAA;aAC7D;AACD,YAAA,wCAAwC,EAAE,CAAC,MAAM,KAAI;gBACjD,OAAO,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAA;aAChE;AACD,YAAA,gCAAgC,EAAE,CAAC,MAAM,KAAI;AACzC,gBAAA,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAA;aAClC;AACD,YAAA,wCAAwC,EAAE,CAAC,MAAM,KAAI;gBACjD,IAAI,MAAM,CAAC,IAAI,EAAE;oBACb,MAAM,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,kBAAkB,EAAE,CAAC;oBACvF,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAK,CAAC,WAAW,EAAE,CAAC,CAAA;AACzD,iBAAA;AACI,qBAAA;AACD,oBAAA,OAAO,KAAK,CAAC;AAChB,iBAAA;aACJ;SACJ,CAAA;QACD,OAAO,IAAI,CAAC,SAAS,EAAE,kBAAkB,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC;KAC/D;AAEO,IAAA,gBAAgB,CAAC,IAA8B,EAAA;QACnD,MAAM,IAAI,GAAa,EAAE,CAAC;AAC1B,QAAA,IAAI,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC;AAC1B,QAAA,OAAO,MAAM,EAAE;AACX,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAG,CAAC,CAAC;AACtB,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC1B,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;KAC1C;AAyBO,IAAA,uBAAuB,CAAC,IAAuB,EAAA;QACnD,MAAM,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,EAAE,CAAC;QAC7E,IAAI,CAAC,oBAAoB,EAAE;AACvB,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AACI,aAAA;AACD,YAAA,MAAM,aAAa,GAAG,oBAAoB,CAAC,QAAQ,KAAK,IAAI,CAAC;YAC7D,MAAM,aAAa,GAAG,oBAAoB,CAAC,WAAW,KAAK,oBAAoB,CAAC,QAAQ,CAAC;AACzF,YAAA,IAAI,aAAa,IAAI,CAAC,aAAa,EAAE;gBACjC,OAAO,oBAAoB,CAAC,eAAe,CAAC;AAC/C,aAAA;AACI,iBAAA;AACD,gBAAA,OAAO,IAAI,CAAC;AACf,aAAA;AACJ,SAAA;KACJ;IAEO,MAAM,UAAU,CAAC,aAA6B,EAAA;AAClD,QAAA,IAAI,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,EAAE;AAC7C,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;AACjC,SAAA;KACJ;AAEO,IAAA,uBAAuB,CAAC,aAA6B,EAAA;AACzD,QAAA,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC;;AAEhD,QAAA,IAAI,CAAC,WAAW,IAAI,CAAC,QAAQ,EAAE;AAC3B,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;QACD,IAAI,WAAW,KAAK,QAAQ,EAAE;AAC1B,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AACD,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,aAAa,CAAC,eAAe,KAAK,QAAQ,EAAE;AAC1E,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAED,QAAA,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC7B,QAAA,OAAO,MAAM,EAAE;YACX,IAAI,MAAM,KAAK,WAAW,EAAE;AACxB,gBAAA,OAAO,KAAK,CAAC;AAChB,aAAA;AACD,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC1B,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACf;AAEO,IAAA,+BAA+B,CAAC,eAAkD,EAAA;AACtF,QAAA,QAAQ,eAAe;YACnB,KAAK,KAAK,EAAE;AACR,gBAAA,OAAO,OAAO,CAAC;AAClB,aAAA;YACD,KAAK,QAAQ,EAAE;AACX,gBAAA,OAAO,OAAO,CAAC;AAClB,aAAA;YACD,KAAK,QAAQ,EAAE;AACX,gBAAA,OAAO,OAAO,CAAC;AAClB,aAAA;AACJ,SAAA;KACJ;IAEO,MAAM,SAAS,CAAC,aAA6B,EAAA;QACjD,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,aAAa,CAAC;QACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,+BAA+B,CAAC,eAAe,CAAC,CAAC;AACvE,QAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAG,EAAE,QAAQ,CAAC,EAAG,EAAE,QAAQ,CAAC,CAAC;KAC5E;AAEO,IAAA,SAAS,CAAC,kBAA0B,EAAE,gBAAwB,EAAE,QAAqC,EAAA;AACzG,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC7F,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,kBAAkB,CAAC,CAAC;QACjF,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,CAAE,CAAC;QAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,gBAAgB,CAAE,CAAC;AAE7D,QAAA,IAAI,QAAQ,GAAkB,iBAAiB,CAAC,KAAK,CAAC;;AAGtD,QAAA,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC;AACrC,YAAA,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC;YACzC,MAAM,EAAE,CAAC,aAAa,CAAC;AAC1B,SAAA,CAAC,CAAC;;AAGH,QAAA,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YACrC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC;AAChD,YAAA,MAAM,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;AAC7B,SAAA,CAAC,CAAC;;AAGH,QAAA,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC;AACrC,YAAA,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;AACtC,YAAA,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC1B,SAAA,CAAC,CAAC;;AAEH,QAAA,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC;;AAErC,YAAA,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,IAAI,QAAQ,KAAK,OAAO,GAAG,CAAC,QAAQ,CAAC,EAAG,CAAC,GAAG,EAAE,CAAC,CAAC;YAC5F,GAAG,EAAE,CAAC,aAAa,CAAC;YACpB,QAAQ,EAAE,QAAQ,KAAK,IAAI,GAAG,QAAQ,GAAG,SAAS;AACrD,SAAA,CAAC,CAAC;QAEH,IAAI,QAAQ,KAAK,OAAO,EAAE;AACtB,YAAA,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC9B,SAAA;AACD,QAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;AACvB,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;AACtC,YAAA,KAAK,EAAE,IAAI;AACd,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,CAAC;KACnD;IAyBO,uBAAuB,GAAA;AAC3B,QAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,CAAC,gBAAgB,EAAE,cAAc,EAAE,QAAQ,KAAK,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnL,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC/I,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,CAAC,gBAAgB,KAAK,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC7I,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5H,QAAA,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,aAAa,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;KAC1G;AACJ;;;;"}
|
|
1
|
+
{"version":3,"file":"GridCustomizer.js","sources":["../../../../../../src/components/TaskGrid/components/grid/grid-customizer/GridCustomizer.ts"],"sourcesContent":["import { ColDef as ColDefBase, GridApi as GridApiBase, IRowNode, IsServerSideGroupOpenByDefaultParams, RowClassRules as RowClassRulesBase } from \"@ag-grid-community/core\";\nimport { ITaskDataProvider } from \"../../../providers/task\";\nimport { DatasetConstants, IColumn, IRawRecord, IRecord } from \"@talxis/client-libraries\";\nimport { GridDragHandler, IDragOperation } from \"../grid-drag-handler\";\nimport { GroupCell } from \"../group-cell\";\nimport { TreeExpandCollapseHeader } from \"../cell-headers/tree-expand-collapse-header\";\nimport { AddTaskButton } from \"../cell-renderers/add-task-button\";\nimport { ILocalizationService } from \"../../../../../utils\";\nimport { ITaskGridLabels } from \"../../../labels\";\nimport { PERCENT_COMPLETE_CONTROL_NAME, PercentComplete } from \"../cell-renderers/percent-complete\";\nimport { INativeColumns, ITaskGridDatasetControl } from \"../../../interfaces\";\n\nexport const ADD_TASK_COLUMN_NAME = 'addTask';\n\nexport type ColDef = ColDefBase<IRecord>;\nexport type GridApi = GridApiBase<IRecord>;\nexport type RowClassRules = RowClassRulesBase<IRecord>;\n\n\n/** Strategy interface for deep customization of the AG Grid instance inside TaskGrid. */\nexport interface IGridCustomizerStrategy {\n /** Called once after the grid is ready. Use to call `customizer.registerExpressionDecorator` or perform other one-time setup. */\n onInitialize: (customizer: IGridCustomizer) => void;\n /** Receives the computed column definitions and may return a modified array. */\n onGetColumnDefinitions?: (columnDefs: ColDef[]) => ColDef[];\n /** Receives the default row class rules map and may return an extended or overridden version. */\n onGetRowClassRules?: (rules: RowClassRules) => RowClassRules;\n}\n\n/** Provides access to the AG Grid instance and the TaskGrid control to code running inside `IGridCustomizerStrategy`. */\nexport interface IGridCustomizer {\n /** Returns the underlying AG Grid `GridApi`. */\n getGridApi(): GridApi;\n /** Returns the `ITaskDataProvider` that backs the grid data layer. */\n getTaskDataProvider(): ITaskDataProvider;\n /** Returns the `ITaskGridDatasetControl` runtime control interface. */\n getDatasetControl(): ITaskGridDatasetControl;\n /**\n * Registers a column-expression decorator only when the given column exists in the current columns map.\n * Prevents errors when registering decorators for columns that may not be present in all views.\n */\n registerExpressionDecorator(columnName: string, registrator: () => void): void;\n}\n\nexport interface IGridCustomizerParameters {\n gridApi: GridApi;\n datasetControl: ITaskGridDatasetControl;\n strategy?: IGridCustomizerStrategy;\n}\n\nexport class GridCustomizer implements IGridCustomizer {\n private _taskDataProvider: ITaskDataProvider;\n private _gridApi: GridApi;\n private _gridDragHandler: GridDragHandler;\n private _localizationService: ILocalizationService<ITaskGridLabels>;\n private _nativeColumns: INativeColumns;\n private _pcfContext: ComponentFramework.Context<any>;\n private _datasetControl: ITaskGridDatasetControl;\n private _strategy?: IGridCustomizerStrategy;\n\n constructor(parameters: IGridCustomizerParameters) {\n this._datasetControl = parameters.datasetControl;\n this._taskDataProvider = this._datasetControl.getDataProvider();\n this._gridApi = parameters.gridApi;\n this._localizationService = this._datasetControl.getLocalizationService();\n this._nativeColumns = this._datasetControl.getNativeColumns();\n this._strategy = parameters.strategy;\n this._pcfContext = this._datasetControl.getPcfContext();\n\n this._gridDragHandler = new GridDragHandler({\n gridApi: this._gridApi,\n datasetControl: this._datasetControl\n });\n this._patchGridApi();\n this._registerEventListeners();\n this._gridApi.setGridOption('rowClassRules', this._getRowClassRules());\n this._strategy?.onInitialize?.(this);\n }\n\n public getDatasetControl(): ITaskGridDatasetControl {\n return this._datasetControl;\n }\n\n public getGridApi(): GridApi {\n return this._gridApi;\n }\n\n public getTaskDataProvider(): ITaskDataProvider {\n return this._taskDataProvider;\n }\n\n //makes sure we do not try to register an expression for a column that does not exist\n public registerExpressionDecorator(columnName: string, registrator: () => void) {\n if (columnName && this._taskDataProvider.getColumnsMap()[columnName]) {\n registrator();\n }\n }\n\n private _patchGridApi() {\n const originalSetGridOption = this._gridApi.setGridOption.bind(this._gridApi);\n this._gridApi.setGridOption = (key: any, value: any): void => {\n switch (key) {\n case 'columnDefs': {\n const columnDefs = this._getColumnDefinitions(value);\n originalSetGridOption(key, columnDefs);\n break;\n }\n case 'isServerSideGroupOpenByDefault': {\n originalSetGridOption(key, (params: IsServerSideGroupOpenByDefaultParams) => this._isServerSideGroupOpenByDefault(params, (params) => value(params)));\n break;\n }\n default: {\n originalSetGridOption(key, value);\n }\n }\n }\n }\n\n private _isServerSideGroupOpenByDefault(params: IsServerSideGroupOpenByDefaultParams, defaultAction: (params: IsServerSideGroupOpenByDefaultParams) => boolean): boolean {\n if (!params.data || this._taskDataProvider.isFlatListEnabled()) {\n return false\n }\n const matchingRecords = this._taskDataProvider.getRecordTree().getMatchingRecords();\n const result = !matchingRecords[params.data.getRecordId()];\n if(result) {\n return result;\n }\n return defaultAction(params);\n }\n\n private _injectAddTaskColumn(columnDefs: ColDef[]) {\n if (!this._taskDataProvider.isFlatListEnabled() && !columnDefs.find(colDef => colDef.colId === ADD_TASK_COLUMN_NAME)) {\n columnDefs.push({\n colId: ADD_TASK_COLUMN_NAME,\n headerName: '',\n pinned: 'left',\n width: 50,\n resizable: false,\n lockPinned: true,\n lockPosition: true,\n suppressMovable: true,\n suppressSizeToFit: true,\n cellRenderer: AddTaskButton,\n headerComponent: TreeExpandCollapseHeader\n })\n }\n }\n\n private _getColumnDefinitions(columnDefs: ColDef[]) {\n this._injectAddTaskColumn(columnDefs);\n for (const colDef of columnDefs) {\n colDef.onCellDoubleClicked = () => { }\n const columnName = colDef.colId as string;\n const column = this._taskDataProvider.getColumnsMap()[columnName];\n const customCellRenderer = this._getCustomControlForColumn('renderer', column);\n const customCellEditor = this._getCustomControlForColumn('editor', column);\n switch (columnName) {\n case this._nativeColumns.subject: {\n colDef.cellRenderer = GroupCell;\n colDef.pinned = 'left';\n break;\n }\n case DatasetConstants.CHECKBOX_COLUMN_KEY: {\n colDef.lockPosition = true;\n break;\n }\n }\n if(customCellRenderer === PERCENT_COMPLETE_CONTROL_NAME) {\n colDef.cellRenderer = PercentComplete;\n }\n if(customCellEditor === PERCENT_COMPLETE_CONTROL_NAME) {\n colDef.cellEditor = PercentComplete;\n }\n }\n\n columnDefs.sort((a, b) => this._getColumnPriority(a) - this._getColumnPriority(b));\n columnDefs = this._strategy?.onGetColumnDefinitions?.(columnDefs) ?? columnDefs;\n return columnDefs;\n\n }\n\n private _getCustomControlForColumn(role: 'editor' | 'renderer', column?: IColumn): string | null {\n const control = column?.controls?.find(c => c.appliesTo === role || c.appliesTo === 'both');\n return control?.name ?? null;\n }\n\n private _getColumnPriority(col: ColDef): number {\n if (col.colId === DatasetConstants.CHECKBOX_COLUMN_KEY) return 0;\n if (col.colId === ADD_TASK_COLUMN_NAME) return 1;\n if (col.field === this._nativeColumns.subject) return 2;\n return 3;\n }\n\n private _getRowClassRules(): RowClassRules {\n const rules: RowClassRules = {\n 'talxis_task-grid_row--drag-over-middle': (params) => {\n return !!params.data?.isActive() && this._getNodeDragOverSection(params.node) === 'middle'\n },\n 'talxis_task-grid_row--drag-over-top': (params) => {\n return this._getNodeDragOverSection(params.node) === 'top'\n },\n 'talxis_task-grid_row--drag-over-bottom': (params) => {\n return this._getNodeDragOverSection(params.node) === 'bottom'\n },\n 'talxis_task-grid_row--inactive': (params) => {\n return !params.data?.isActive()\n },\n 'talxis_task-grid_row--unmatched-parent': (params) => {\n if (params.data) {\n const matchingRecordsMap = this._taskDataProvider.getRecordTree().getMatchingRecords();\n return !matchingRecordsMap[params.data!.getRecordId()]\n }\n else {\n return false;\n }\n }\n }\n return this._strategy?.onGetRowClassRules?.(rules) ?? rules;\n }\n\n private _getPathToParent(node: IRowNode<IRecord> | null): string[] {\n const path: string[] = [];\n let parent = node?.parent;\n while (parent) {\n path.push(parent.id!);\n parent = parent.parent;\n }\n return path.filter(id => id).reverse();\n }\n\n //undefined means we should target top level\n private _onRecordTreeUpdated = (affectedIds: (string | undefined)[]) => {\n for (const id of affectedIds) {\n if (!id) {\n this._gridApi.refreshServerSide();\n }\n else {\n const node = this._gridApi.getRowNode(id)!;\n this._gridApi.refreshServerSide({\n route: this._getPathToParent(node)\n });\n this._gridApi.refreshServerSide({\n route: [...this._getPathToParent(node), id]\n })\n }\n }\n this._gridApi.refreshCells({\n columns: [this._nativeColumns.subject],\n force: true\n });\n this._taskDataProvider.requestRender();\n }\n\n private _getNodeDragOverSection(node: IRowNode<IRecord>): IDragOperation['dragOverSection'] | null {\n const pendingDragOperation = this._gridDragHandler.getPendingDragOperation();\n if (!pendingDragOperation) {\n return null;\n }\n else {\n const isCurrentNode = pendingDragOperation.overNode === node;\n const isDraggedNode = pendingDragOperation.draggedNode === pendingDragOperation.overNode;\n if (isCurrentNode && !isDraggedNode) {\n return pendingDragOperation.dragOverSection;\n }\n else {\n return null;\n }\n }\n }\n\n private async _onDragEnd(dragOperation: IDragOperation) {\n if (this._isDragOperationAllowed(dragOperation)) {\n this._moveTask(dragOperation);\n }\n }\n\n private _isDragOperationAllowed(dragOperation: IDragOperation): boolean {\n const { draggedNode, overNode } = dragOperation;\n // Check if either node is null/undefined\n if (!draggedNode || !overNode) {\n return false;\n }\n if (draggedNode === overNode) {\n return false;\n }\n if (!overNode.data?.isActive() && dragOperation.dragOverSection === 'middle') {\n return false;\n }\n\n let parent = overNode.parent;\n while (parent) {\n if (parent === draggedNode) {\n return false;\n }\n parent = parent.parent;\n }\n return true;\n }\n\n private _getPositionFromDragOverSection(dragOverSection: IDragOperation['dragOverSection']): 'above' | 'below' | 'child' {\n switch (dragOverSection) {\n case 'top': {\n return 'above';\n }\n case 'bottom': {\n return 'below';\n }\n case 'middle': {\n return 'child';\n }\n }\n }\n\n private async _moveTask(dragOperation: IDragOperation) {\n const { draggedNode, overNode, dragOverSection } = dragOperation;\n const position = this._getPositionFromDragOverSection(dragOverSection);\n this._taskDataProvider.moveTask(draggedNode.id!, overNode.id!, position);\n }\n\n private _moveInto(movingFromRecordId: string, movingToRecordId: string, position: 'child' | 'above' | 'below') {\n const draggedRecordNode = this._taskDataProvider.getRecordTree().getNode(movingFromRecordId);\n const draggedRecord = this._taskDataProvider.getRecordsMap()[movingFromRecordId];\n const draggedNode = this._gridApi.getRowNode(movingFromRecordId)!;\n const overNode = this._gridApi.getRowNode(movingToRecordId)!;\n\n let addIndex: number | null = draggedRecordNode.index;\n\n //first remove from old location\n this._gridApi.applyServerSideTransaction({\n route: this._getPathToParent(draggedNode),\n remove: [draggedRecord],\n });\n\n //update the store where dragged parent node is (so the arrow can disappear if needed)\n this._gridApi.applyServerSideTransaction({\n route: this._getPathToParent(draggedNode.parent),\n update: [draggedNode.data],\n });\n\n //update the store where over node is (so the arrow can appear if needed)\n this._gridApi.applyServerSideTransaction({\n route: this._getPathToParent(overNode),\n update: [overNode.data],\n });\n //then add to new location\n this._gridApi.applyServerSideTransaction({\n // i need to set route to parent of over node\n route: [...this._getPathToParent(overNode), ...(position === 'child' ? [overNode.id!] : [])],\n add: [draggedRecord],\n addIndex: addIndex !== null ? addIndex : undefined,\n });\n\n if (position === 'child') {\n setTimeout(() => {\n overNode.setExpanded(true);\n }, 0);\n }\n this._gridApi.refreshCells({\n columns: [this._nativeColumns.subject],\n force: true\n });\n this._taskDataProvider.clearSelectedRecordIds();\n }\n\n\n private _onAfterTasksCreated = (records: IRawRecord[] | null, parentId?: string) => {\n if (!records || records.length === 0) return;\n if (parentId) {\n const parentNode = this._gridApi.getRowNode(parentId);\n if (parentNode && !parentNode.expanded) {\n parentNode.setExpanded(true);\n }\n }\n setTimeout(() => {\n const primaryIdAttribute = this._taskDataProvider.getMetadata().PrimaryIdAttribute;\n const recordId = records[0][primaryIdAttribute] as string;\n const node = this._gridApi.getRowNode(recordId);\n if (!node) return;\n if (records.length === 1 && this._datasetControl.isInlineCreateEnabled()) {\n const rowIndex = node.rowIndex!;\n this._gridApi.startEditingCell({\n rowIndex: rowIndex,\n colKey: this._nativeColumns.subject\n });\n }\n else {\n this._gridApi.setFocusedCell(node!.rowIndex!, this._nativeColumns.subject);\n this._gridApi.ensureNodeVisible(node!);\n }\n }, 100);\n }\n\n\n private _onAfterTaskDataUpdated = (newData: IRawRecord[]) => {\n const recordIdsSet = new Set(newData.map(item => item[this._taskDataProvider.getMetadata().PrimaryIdAttribute]));\n const nodes = this._gridApi.getRenderedNodes().filter(node => recordIdsSet.has(node.id!));\n this._gridApi.refreshCells({\n rowNodes: nodes,\n force: true\n })\n }\n\n private _registerEventListeners() {\n this._taskDataProvider.taskEvents.addEventListener('onAfterTaskMoved', (movingFromTaskId, movingToTaskId, position) => this._moveInto(movingFromTaskId, movingToTaskId, position));\n this._taskDataProvider.taskEvents.addEventListener('onAfterTasksCreated', (records, parentId) => this._onAfterTasksCreated(records, parentId));\n this._taskDataProvider.taskEvents.addEventListener('onRecordTreeUpdated', (updatedParentIds) => this._onRecordTreeUpdated(updatedParentIds));\n this._taskDataProvider.taskEvents.addEventListener('onTaskDataUpdated', (newData) => this._onAfterTaskDataUpdated(newData));\n this._gridDragHandler.addEventListener('onDragEnd', (dragOperation) => this._onDragEnd(dragOperation));\n }\n}"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridDragHandler.js","sources":["../../../../../../src/components/TaskGrid/components/grid/grid-drag-handler/GridDragHandler.ts"],"sourcesContent":["import { GridApi, IRowNode, RowDragEvent } from \"@ag-grid-community/core\";\nimport { EventEmitter, IRecord } from \"@talxis/client-libraries\";\nimport { ITaskDataProvider } from \"../../../
|
|
1
|
+
{"version":3,"file":"GridDragHandler.js","sources":["../../../../../../src/components/TaskGrid/components/grid/grid-drag-handler/GridDragHandler.ts"],"sourcesContent":["import { GridApi, IRowNode, RowDragEvent } from \"@ag-grid-community/core\";\nimport { EventEmitter, IRecord } from \"@talxis/client-libraries\";\nimport { ITaskDataProvider } from \"../../../providers/task\";\nimport { INativeColumns, ITaskGridDatasetControl } from \"../../../interfaces\";\n\ninterface IGridDragHandlerParameters {\n datasetControl: ITaskGridDatasetControl;\n gridApi: GridApi<IRecord>;\n}\n\nexport interface IDragOperation {\n overNode: IRowNode<IRecord>;\n draggedNode: IRowNode<IRecord>;\n dragOverSection: 'top' | 'middle' | 'bottom';\n}\n\ninterface IGridDragHandlerEvents {\n onDragEnd: (dragOperation: IDragOperation) => void;\n}\n\nexport class GridDragHandler extends EventEmitter<IGridDragHandlerEvents> {\n private _gridApi: GridApi<IRecord>;\n private _dataProvider: ITaskDataProvider;\n private _dragOperation: IDragOperation | null = null;\n private _nativeColumns: INativeColumns;\n private _datasetControl: ITaskGridDatasetControl;\n \n constructor(parameters: IGridDragHandlerParameters) {\n super();\n this._gridApi = parameters.gridApi;\n this._dataProvider = parameters.datasetControl.getDataProvider();\n this._datasetControl = parameters.datasetControl;\n this._nativeColumns = parameters.datasetControl.getNativeColumns();\n this._gridApi.setGridOption('rowDragEntireRow', true);\n this._gridApi.setGridOption('onRowDragMove', (e) => this._onRowDragMove(e));\n this._gridApi.setGridOption('onRowDragEnd', (e) => this._onRowDragEnd(e));\n this._dataProvider.addEventListener('onBeforeNewDataLoaded', () => this._toggleRowDragging())\n }\n\n public getPendingDragOperation(): IDragOperation | null {\n return this._dragOperation;\n }\n\n private _determineDragOverSection(y: number, overNode?: IRowNode<IRecord>): IDragOperation['dragOverSection'] {\n const { rowHeight, rowTop } = overNode!;\n const rowY = y - rowTop!;\n const thirdHeight = rowHeight! / 3;\n\n if (rowY <= thirdHeight) {\n return 'top';\n } else if (rowY <= 2 * thirdHeight) {\n return 'middle'\n } else {\n return 'bottom';\n }\n }\n\n private _onRowDragEnd(e: RowDragEvent<IRecord, any>) {\n this.dispatchEvent('onDragEnd', this._dragOperation!);\n this._dragOperation = null;\n this._refreshRowClasses(e.overNode);\n }\n\n\n private _onRowDragMove(e: RowDragEvent<IRecord, any>) {\n const { overNode, node, y } = e;\n const dragOverSection = this._determineDragOverSection(y, overNode);\n setTimeout(() => {\n const currentOverNode = this._dragOperation?.overNode;\n if (currentOverNode === overNode && dragOverSection === 'middle' && !overNode?.expanded && this._dataProvider.getRecordTree().hasChildren(overNode!.data!.getRecordId())) {\n overNode?.setExpanded(true);\n }\n }, 1000);\n if (this._dragOperation && this._dragOperation.overNode !== overNode) {\n // Refresh previous over node to remove drag classes\n this._refreshRowClasses(this._dragOperation.overNode);\n }\n this._dragOperation = {\n overNode: overNode!,\n draggedNode: node,\n dragOverSection: dragOverSection\n };\n this._refreshRowClasses(overNode);\n }\n\n private _refreshRowClasses(node?: IRowNode<IRecord>) {\n if (!node) {\n return;\n }\n //@ts-ignore - typings - getGroupKeys missing in type\n const keys = [...node.getGroupKeys()].slice(0, -1);\n this._gridApi.applyServerSideTransactionAsync({\n route: keys,\n update: [node.data]\n })\n }\n\n private _toggleRowDragging() {\n const sorting = this._dataProvider.getSorting();\n const isFlatListEnabled = this._dataProvider.isFlatListEnabled();\n const isSortedByNonStackRank = sorting.length > 0 && sorting[0].name !== this._nativeColumns.stackRank;\n const isRowDraggingEnabled = this._datasetControl.isRowDraggingEnabled();\n\n const canDrag = isRowDraggingEnabled && !isFlatListEnabled && !isSortedByNonStackRank;\n this._gridApi.setGridOption('rowDragEntireRow', canDrag);\n }\n}"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="@types/powerapps-component-framework" />
|
|
2
|
+
import { IDataProvider } from '@talxis/client-libraries';
|
|
3
|
+
import { ILookupManyComponents } from './components';
|
|
4
|
+
export interface ILookupManyProps {
|
|
5
|
+
dataProvider: IDataProvider;
|
|
6
|
+
selectedRecordHeight?: number;
|
|
7
|
+
isDisabled?: boolean;
|
|
8
|
+
selectedRecords?: ComponentFramework.EntityReference[];
|
|
9
|
+
components?: Partial<ILookupManyComponents>;
|
|
10
|
+
onRecordSelect?: (selectedRecords: ComponentFramework.EntityReference[]) => void;
|
|
11
|
+
onRecordOpen?: (record: ComponentFramework.EntityReference) => void;
|
|
12
|
+
}
|
|
13
|
+
export declare const LookupMany: (props: ILookupManyProps) => import("react/jsx-runtime").JSX.Element;
|