@talxis/base-controls 1.2502.1 → 1.2503.2
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/DatasetControl.js +21 -34
- package/dist/components/DatasetControl/DatasetControl.js.map +1 -1
- package/dist/components/DatasetControl/ErrorBoundary.js +33 -0
- package/dist/components/DatasetControl/ErrorBoundary.js.map +1 -0
- package/dist/components/DatasetControl/QuickFind/QuickFind.d.ts +10 -0
- package/dist/components/DatasetControl/QuickFind/QuickFind.js +38 -0
- package/dist/components/DatasetControl/QuickFind/QuickFind.js.map +1 -0
- package/dist/components/DatasetControl/styles.d.ts +3 -1
- package/dist/components/DatasetControl/styles.js +2 -2
- package/dist/components/DatasetControl/styles.js.map +1 -1
- package/dist/components/DatasetControl/translations.d.ts +8 -0
- package/dist/components/DatasetControl/translations.js +3 -1
- package/dist/components/DatasetControl/translations.js.map +1 -1
- package/dist/components/DateTime/DateTime.js +2 -1
- package/dist/components/DateTime/DateTime.js.map +1 -1
- package/dist/components/DateTime/components/Calendar.d.ts +2 -1
- package/dist/components/DateTime/components/Calendar.js +4 -4
- package/dist/components/DateTime/components/Calendar.js.map +1 -1
- package/dist/components/DateTime/hooks/useDateTime.js +18 -17
- package/dist/components/DateTime/hooks/useDateTime.js.map +1 -1
- package/dist/components/Decimal/Decimal.js +5 -1
- package/dist/components/Decimal/Decimal.js.map +1 -1
- package/dist/components/Duration/Duration.js +49 -26
- package/dist/components/Duration/Duration.js.map +1 -1
- package/dist/components/Grid/Grid.js +1 -1
- package/dist/components/Grid/Grid.js.map +1 -1
- package/dist/components/Grid/core/components/AgGrid/AgGrid.js +78 -174
- package/dist/components/Grid/core/components/AgGrid/AgGrid.js.map +1 -1
- package/dist/components/Grid/core/components/AgGrid/context.d.ts +3 -0
- package/dist/components/Grid/core/components/AgGrid/context.js +6 -0
- package/dist/components/Grid/core/components/AgGrid/context.js.map +1 -0
- package/dist/components/Grid/core/components/AgGrid/model/AgGrid.d.ts +40 -5
- package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js +235 -49
- package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js.map +1 -1
- package/dist/components/Grid/core/components/AgGrid/model/Comparator.d.ts +9 -0
- package/dist/components/Grid/core/components/AgGrid/model/Comparator.js +86 -0
- package/dist/components/Grid/core/components/AgGrid/model/Comparator.js.map +1 -0
- package/dist/components/Grid/core/components/AgGrid/styles.d.ts +28 -32
- package/dist/components/Grid/core/components/AgGrid/styles.js +31 -35
- package/dist/components/Grid/core/components/AgGrid/styles.js.map +1 -1
- package/dist/components/Grid/core/components/Cell/Cell.d.ts +13 -0
- package/dist/components/Grid/core/components/Cell/Cell.js +145 -0
- package/dist/components/Grid/core/components/Cell/Cell.js.map +1 -0
- package/dist/components/Grid/core/components/Cell/CellContent/CellContent.d.ts +3 -0
- package/dist/components/Grid/core/components/Cell/CellContent/CellContent.js +212 -0
- package/dist/components/Grid/core/components/Cell/CellContent/CellContent.js.map +1 -0
- package/dist/components/Grid/core/components/Cell/CellContent/styles.d.ts +33 -0
- package/dist/components/Grid/core/components/Cell/CellContent/styles.js +39 -0
- package/dist/components/Grid/core/components/Cell/CellContent/styles.js.map +1 -0
- package/dist/components/Grid/core/components/Cell/Commands/Commands.js.map +1 -1
- package/dist/components/Grid/core/components/Cell/Notifications/Notifications.d.ts +12 -0
- package/dist/components/Grid/core/components/Cell/Notifications/Notifications.js +112 -0
- package/dist/components/Grid/core/components/Cell/Notifications/Notifications.js.map +1 -0
- package/dist/components/Grid/core/components/Cell/Notifications/styles.d.ts +39 -0
- package/dist/components/Grid/core/components/Cell/Notifications/styles.js +46 -0
- package/dist/components/Grid/core/components/Cell/Notifications/styles.js.map +1 -0
- package/dist/components/Grid/core/components/Cell/styles.d.ts +40 -0
- package/dist/components/Grid/core/components/Cell/styles.js +59 -0
- package/dist/components/Grid/core/components/Cell/styles.js.map +1 -0
- package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.js +3 -2
- package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.js.map +1 -1
- package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.js +31 -13
- package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.js.map +1 -1
- package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/styles.d.ts +3 -2
- package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/styles.js +5 -4
- package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/styles.js.map +1 -1
- package/dist/components/Grid/core/components/ColumnHeader/styles.d.ts +3 -1
- package/dist/components/Grid/core/components/ColumnHeader/styles.js +4 -2
- package/dist/components/Grid/core/components/ColumnHeader/styles.js.map +1 -1
- package/dist/components/Grid/core/components/Save/Save.js +5 -6
- package/dist/components/Grid/core/components/Save/Save.js.map +1 -1
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.js +10 -7
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.js.map +1 -1
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.d.ts +1 -0
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.js +26 -7
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.js.map +1 -1
- package/dist/components/Grid/core/controllers/useGridController.js +8 -2
- package/dist/components/Grid/core/controllers/useGridController.js.map +1 -1
- package/dist/components/Grid/core/interfaces/IGridColumn.d.ts +2 -0
- package/dist/components/Grid/core/model/Grid.d.ts +16 -7
- package/dist/components/Grid/core/model/Grid.js +230 -45
- package/dist/components/Grid/core/model/Grid.js.map +1 -1
- package/dist/components/Grid/core/model/Metadata.d.ts +2 -1
- package/dist/components/Grid/core/services/KeyListener.d.ts +2 -0
- package/dist/components/Grid/core/services/KeyListener.js +6 -3
- package/dist/components/Grid/core/services/KeyListener.js.map +1 -1
- package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.js +3 -3
- package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.js.map +1 -1
- package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.d.ts +19 -7
- package/dist/components/Grid/{core/components/Component → filtering/components/FilterCallout/components/LegacyControlRendering}/Component.d.ts +2 -2
- package/dist/components/Grid/{core/components/Component → filtering/components/FilterCallout/components/LegacyControlRendering}/Component.js +9 -9
- package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/Component.js.map +1 -0
- package/dist/components/Grid/{core/components/Component → filtering/components/FilterCallout/components/LegacyControlRendering}/controller/useComponentController.d.ts +2 -2
- package/dist/components/Grid/{core/components/Component → filtering/components/FilterCallout/components/LegacyControlRendering}/controller/useComponentController.js +1 -1
- package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/controller/useComponentController.js.map +1 -0
- package/dist/components/Grid/{core/components/Component → filtering/components/FilterCallout/components/LegacyControlRendering}/model/Component.d.ts +2 -2
- package/dist/components/Grid/{core/components/Component → filtering/components/FilterCallout/components/LegacyControlRendering}/model/Component.js +15 -19
- package/dist/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/model/Component.js.map +1 -0
- package/dist/components/Grid/filtering/model/Condition.js +1 -1
- package/dist/components/Grid/filtering/model/Condition.js.map +1 -1
- package/dist/components/Grid/selection/model/Selection.d.ts +3 -4
- package/dist/components/Grid/selection/model/Selection.js +8 -26
- package/dist/components/Grid/selection/model/Selection.js.map +1 -1
- package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js +1 -1
- package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js.map +1 -1
- package/dist/components/GridCellRenderer/DefaultContentRenderer/DefaultContentRenderer.d.ts +2 -0
- package/dist/components/GridCellRenderer/DefaultContentRenderer/DefaultContentRenderer.js +11 -0
- package/dist/components/GridCellRenderer/DefaultContentRenderer/DefaultContentRenderer.js.map +1 -0
- package/dist/components/GridCellRenderer/DefaultContentRenderer/index.d.ts +1 -0
- package/dist/components/GridCellRenderer/DefaultContentRenderer/index.js +2 -0
- package/dist/components/GridCellRenderer/DefaultContentRenderer/index.js.map +1 -0
- package/dist/components/GridCellRenderer/GridCellRenderer.d.ts +3 -0
- package/dist/components/GridCellRenderer/GridCellRenderer.js +252 -0
- package/dist/components/GridCellRenderer/GridCellRenderer.js.map +1 -0
- package/dist/components/GridCellRenderer/OptionSet/OptionSet.d.ts +5 -0
- package/dist/components/GridCellRenderer/OptionSet/OptionSet.js +69 -0
- package/dist/components/GridCellRenderer/OptionSet/OptionSet.js.map +1 -0
- package/dist/components/GridCellRenderer/OptionSet/index.d.ts +1 -0
- package/dist/components/GridCellRenderer/OptionSet/index.js +2 -0
- package/dist/components/GridCellRenderer/OptionSet/index.js.map +1 -0
- package/dist/components/{Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet → GridCellRenderer/OptionSet}/styles.d.ts +10 -12
- package/dist/components/GridCellRenderer/OptionSet/styles.js +29 -0
- package/dist/components/GridCellRenderer/OptionSet/styles.js.map +1 -0
- package/dist/components/GridCellRenderer/index.d.ts +1 -0
- package/dist/components/GridCellRenderer/index.js +2 -0
- package/dist/components/GridCellRenderer/index.js.map +1 -0
- package/dist/components/GridCellRenderer/interfaces.d.ts +53 -0
- package/dist/components/GridCellRenderer/styles.d.ts +72 -0
- package/dist/components/GridCellRenderer/styles.js +105 -0
- package/dist/components/GridCellRenderer/styles.js.map +1 -0
- package/dist/components/GridCellRenderer/translations.d.ts +6 -0
- package/dist/components/GridCellRenderer/translations.js +11 -0
- package/dist/components/GridCellRenderer/translations.js.map +1 -0
- package/dist/components/GridCellRenderer/useComponentProps.d.ts +6 -0
- package/dist/components/GridCellRenderer/useComponentProps.js +10 -0
- package/dist/components/GridCellRenderer/useComponentProps.js.map +1 -0
- package/dist/components/Lookup/Lookup.js +8 -3
- package/dist/components/Lookup/Lookup.js.map +1 -1
- package/dist/components/Lookup/styles.d.ts +19 -7
- package/dist/components/Lookup/styles.js +22 -8
- package/dist/components/Lookup/styles.js.map +1 -1
- package/dist/components/MultiSelectOptionSet/MultiSelectOptionSet.js +51 -28
- package/dist/components/MultiSelectOptionSet/MultiSelectOptionSet.js.map +1 -1
- package/dist/components/NestedControlRenderer/NestedControl.d.ts +86 -0
- package/dist/components/NestedControlRenderer/NestedControl.js +456 -0
- package/dist/components/NestedControlRenderer/NestedControl.js.map +1 -0
- package/dist/components/NestedControlRenderer/NestedControlError.d.ts +4 -0
- package/dist/components/NestedControlRenderer/NestedControlError.js +13 -0
- package/dist/components/NestedControlRenderer/NestedControlError.js.map +1 -0
- package/dist/components/NestedControlRenderer/NestedControlRenderer.d.ts +3 -0
- package/dist/components/NestedControlRenderer/NestedControlRenderer.js +194 -0
- package/dist/components/NestedControlRenderer/NestedControlRenderer.js.map +1 -0
- package/dist/components/NestedControlRenderer/index.d.ts +1 -0
- package/dist/components/NestedControlRenderer/index.js +2 -0
- package/dist/components/NestedControlRenderer/index.js.map +1 -0
- package/dist/components/NestedControlRenderer/interfaces.d.ts +122 -0
- package/dist/components/NestedControlRenderer/manifest/Control.d.ts +16 -0
- package/dist/components/NestedControlRenderer/manifest/Control.js +40 -0
- package/dist/components/NestedControlRenderer/manifest/Control.js.map +1 -0
- package/dist/components/NestedControlRenderer/manifest/Manifest.d.ts +5 -0
- package/dist/components/NestedControlRenderer/manifest/Manifest.js +12 -0
- package/dist/components/NestedControlRenderer/manifest/Manifest.js.map +1 -0
- package/dist/components/NestedControlRenderer/manifest/TypeGroup.d.ts +6 -0
- package/dist/components/NestedControlRenderer/manifest/TypeGroup.js +13 -0
- package/dist/components/NestedControlRenderer/manifest/TypeGroup.js.map +1 -0
- package/dist/components/NestedControlRenderer/manifest/index.d.ts +1 -0
- package/dist/components/NestedControlRenderer/manifest/index.js +2 -0
- package/dist/components/NestedControlRenderer/manifest/index.js.map +1 -0
- package/dist/components/NestedControlRenderer/manifest/property/Property.d.ts +16 -0
- package/dist/components/NestedControlRenderer/manifest/property/Property.js +34 -0
- package/dist/components/NestedControlRenderer/manifest/property/Property.js.map +1 -0
- package/dist/components/NestedControlRenderer/manifest/property/Value.d.ts +8 -0
- package/dist/components/NestedControlRenderer/manifest/property/Value.js +12 -0
- package/dist/components/NestedControlRenderer/manifest/property/Value.js.map +1 -0
- package/dist/components/NestedControlRenderer/properties/DateProperty.d.ts +5 -0
- package/dist/components/NestedControlRenderer/properties/DateProperty.js +20 -0
- package/dist/components/NestedControlRenderer/properties/DateProperty.js.map +1 -0
- package/dist/components/NestedControlRenderer/properties/FileProperty.d.ts +5 -0
- package/dist/components/NestedControlRenderer/properties/FileProperty.js +14 -0
- package/dist/components/NestedControlRenderer/properties/FileProperty.js.map +1 -0
- package/dist/components/NestedControlRenderer/properties/LookupProperty.d.ts +6 -0
- package/dist/components/NestedControlRenderer/properties/LookupProperty.js +35 -0
- package/dist/components/NestedControlRenderer/properties/LookupProperty.js.map +1 -0
- package/dist/components/NestedControlRenderer/properties/NumberProperty.d.ts +5 -0
- package/dist/components/NestedControlRenderer/properties/NumberProperty.js +15 -0
- package/dist/components/NestedControlRenderer/properties/NumberProperty.js.map +1 -0
- package/dist/components/NestedControlRenderer/properties/OptionSetProperty.d.ts +5 -0
- package/dist/components/NestedControlRenderer/properties/OptionSetProperty.js +22 -0
- package/dist/components/NestedControlRenderer/properties/OptionSetProperty.js.map +1 -0
- package/dist/components/NestedControlRenderer/properties/Property.d.ts +17 -0
- package/dist/components/NestedControlRenderer/properties/Property.js +46 -0
- package/dist/components/NestedControlRenderer/properties/Property.js.map +1 -0
- package/dist/components/NestedControlRenderer/properties/TextProperty.d.ts +5 -0
- package/dist/components/NestedControlRenderer/properties/TextProperty.js +15 -0
- package/dist/components/NestedControlRenderer/properties/TextProperty.js.map +1 -0
- package/dist/components/NestedControlRenderer/styles.d.ts +14 -0
- package/dist/components/NestedControlRenderer/styles.js +21 -0
- package/dist/components/NestedControlRenderer/styles.js.map +1 -0
- package/dist/components/NestedControlRenderer/translations.d.ts +14 -0
- package/dist/components/NestedControlRenderer/translations.js +19 -0
- package/dist/components/NestedControlRenderer/translations.js.map +1 -0
- package/dist/components/OptionSet/OptionSet.js +3 -3
- package/dist/components/OptionSet/OptionSet.js.map +1 -1
- package/dist/components/OptionSet/useComboBoxTheme.js +17 -17
- package/dist/components/OptionSet/useComboBoxTheme.js.map +1 -1
- package/dist/components/TextField/TextField.js.map +1 -1
- package/dist/components/TextField/interfaces.d.ts +2 -2
- package/dist/components/TwoOptions/TwoOptions.js +2 -1
- package/dist/components/TwoOptions/TwoOptions.js.map +1 -1
- package/dist/components/index.d.ts +13 -0
- package/dist/components/index.js +15 -0
- package/dist/components/index.js.map +1 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.js +1 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useControl.d.ts +1 -7
- package/dist/hooks/useControl.js +12 -40
- package/dist/hooks/useControl.js.map +1 -1
- package/dist/hooks/useControlLabels.d.ts +14 -0
- package/dist/hooks/useControlLabels.js +47 -0
- package/dist/hooks/useControlLabels.js.map +1 -0
- package/dist/hooks/useInputBasedControl.d.ts +2 -1
- package/dist/hooks/useInputBasedControl.js +3 -5
- package/dist/hooks/useInputBasedControl.js.map +1 -1
- package/dist/hooks/usePrevious.d.ts +1 -0
- package/dist/index.d.ts +456 -140
- package/dist/index.js +7 -2
- package/dist/index.js.map +1 -1
- package/dist/interfaces/context.d.ts +2 -1
- package/dist/interfaces/index.d.ts +1 -1
- package/dist/interfaces/property.d.ts +5 -0
- package/dist/utils/BaseControls.d.ts +16 -0
- package/dist/utils/BaseControls.js +82 -0
- package/dist/utils/BaseControls.js.map +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/theme/ControlTheme.d.ts +1 -1
- package/dist/utils/theme/ControlTheme.js +1 -1
- package/dist/utils/theme/ControlTheme.js.map +1 -1
- package/dist/utils/theme/components/ThemeWrapper.d.ts +9 -0
- package/dist/utils/theme/components/ThemeWrapper.js +11 -0
- package/dist/utils/theme/components/ThemeWrapper.js.map +1 -0
- package/dist/utils/theme/components/index.d.ts +1 -0
- package/dist/utils/theme/components/index.js +2 -0
- package/dist/utils/theme/components/index.js.map +1 -0
- package/dist/utils/theme/hooks/useControlTheme.d.ts +1 -1
- package/dist/utils/theme/hooks/useControlTheme.js.map +1 -1
- package/dist/utils/theme/index.d.ts +1 -0
- package/dist/utils/theme/index.js +1 -0
- package/dist/utils/theme/index.js.map +1 -1
- package/package.json +3 -3
- package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.d.ts +0 -10
- package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.js +0 -82
- package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.js.map +0 -1
- package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/Notifications.d.ts +0 -11
- package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/Notifications.js +0 -93
- package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/Notifications.js.map +0 -1
- package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/styles.d.ts +0 -36
- package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/styles.js +0 -42
- package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/styles.js.map +0 -1
- package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.d.ts +0 -11
- package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.js +0 -221
- package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.js.map +0 -1
- package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.d.ts +0 -10
- package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.js +0 -49
- package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.js.map +0 -1
- package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/styles.js +0 -27
- package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/styles.js.map +0 -1
- package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.d.ts +0 -99
- package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.js +0 -123
- package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.js.map +0 -1
- package/dist/components/Grid/core/components/Component/Component.js.map +0 -1
- package/dist/components/Grid/core/components/Component/controller/useComponentController.js.map +0 -1
- package/dist/components/Grid/core/components/Component/model/Component.js.map +0 -1
- package/dist/components/Grid/core/model/Metadata.js +0 -26
- package/dist/components/Grid/core/model/Metadata.js.map +0 -1
- package/dist/components/Grid/selection/controllers/useSelectionController.d.ts +0 -11
- package/dist/components/Grid/selection/controllers/useSelectionController.js +0 -21
- package/dist/components/Grid/selection/controllers/useSelectionController.js.map +0 -1
- package/dist/hooks/useRerender.d.ts +0 -1
- package/dist/hooks/useRerender.js +0 -9
- package/dist/hooks/useRerender.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Grid.js","sources":["../../../../../src/components/Grid/core/model/Grid.ts"],"sourcesContent":["import { Attribute, Constants, DataTypes, IColumn, IDataset, IRecord } from \"@talxis/client-libraries\";\nimport { Filtering } from \"../../filtering/model/Filtering\";\nimport { IGrid } from \"../../interfaces\";\nimport { Paging } from \"../../paging/model/Paging\";\nimport { Selection } from \"../../selection/model/Selection\";\nimport { Sorting } from \"../../sorting/Sorting\";\nimport { DataType } from \"../enums/DataType\";\nimport { KeyHoldListener } from \"../services/KeyListener\";\nimport { Metadata } from \"./Metadata\";\nimport { CHECKBOX_COLUMN_KEY } from \"../../constants\";\nimport { IGridColumn } from \"../interfaces/IGridColumn\";\n\nconst DEFAULT_ROW_HEIGHT = 42;\n\nexport class Grid {\n private _props: IGrid;\n private _dataset: IDataset\n private _pcfContext: ComponentFramework.Context<any>;\n private _columns: IGridColumn[] = [];\n //used for optimization\n private _previousRecordsReference: {\n [id: string]: IRecord;\n } = {};\n //TODO: fix types\n private _labels: any;\n private _shouldRerender: boolean = false;\n private _records: IRecord[] = [];\n //TODO: the dependencies might not have fully loaded grid\n //need to make sure that the grid is initialized before creating them\n private _dependencies: {\n filtering: Filtering,\n sorting: Sorting,\n metadata: Metadata,\n selection: Selection,\n paging: Paging,\n };\n private _maxHeight: number;\n private _minHeight: number = 150;\n private _initialPageSize: number;\n //this is temp, should be moved to AgGrid class, useAgGridInstance should also be created, similar to useGridInstance\n private _refreshGlobalCheckBox: () => void = () => {};\n public readonly keyHoldListener: KeyHoldListener;\n\n constructor(props: IGrid, labels: any, keyHoldListener: KeyHoldListener) {\n this._props = props;\n this._dataset = props.parameters.Grid;\n this._pcfContext = props.context;\n this._labels = labels;\n this.keyHoldListener = keyHoldListener;\n\n this._dependencies = {\n filtering: new Filtering(this),\n selection: new Selection(this),\n metadata: new Metadata(this),\n sorting: new Sorting(this),\n paging: new Paging(this),\n }\n this._initialPageSize = this.paging.pageSize;\n this._maxHeight = this._getMaxHeight();\n\n };\n public get isNavigationEnabled() {\n //enabled by default\n return this.parameters.EnableNavigation?.raw !== false;\n }\n public get isEditable() {\n return this._columns.find(x => x.isEditable) ? true : false;\n }\n public get parameters() {\n return this._props.parameters\n }\n public get error() {\n return this._dataset.error;\n }\n public get errorMessage() {\n return this._dataset.errorMessage\n }\n public get labels() {\n return this._labels;\n }\n public get dataset() {\n return this._dataset;\n }\n public get pcfContext() {\n return this._pcfContext;\n }\n public get props() {\n return this._props;\n }\n public get columns() {\n return this._columns;\n }\n public get records() {\n return this._records\n }\n public get sorting() {\n return this._dependencies.sorting;\n }\n public get metadata() {\n return this._dependencies.metadata;\n }\n public get filtering() {\n return this._dependencies.filtering;\n }\n public get selection() {\n return this._dependencies.selection;\n }\n public get paging() {\n return this._dependencies.paging;\n }\n public get shouldRerender() {\n return this._shouldRerender;\n }\n public get loading() {\n return this._dataset.loading;\n }\n public get state() {\n return this._props.state;\n }\n public get useContainerAsHeight() {\n return this.parameters.UseContainerAsHeight?.raw === true;\n }\n public get enableOptionSetColors() {\n return this.parameters.EnableOptionSetColors?.raw === true;\n }\n public get linking() {\n return this.dataset.linking;\n }\n public get inlineRibbonButtonIds() {\n const idString = this.parameters.InlineRibbonButtonIds?.raw;\n if (!idString) {\n return undefined;\n }\n return idString.split(',');\n }\n\n public get rowHeight() {\n let height = this.parameters.RowHeight?.raw;\n if(!height) {\n height = DEFAULT_ROW_HEIGHT;\n }\n return height;\n }\n\n public get height() {\n let height = this._maxHeight;\n if (this.parameters.Height?.raw) {\n return this.parameters.Height?.raw;\n }\n if (this._records.length === 0) {\n height = this._minHeight;\n }\n else if (this._records.length <= this._initialPageSize) {\n height = this._records.length * this.rowHeight;\n }\n if (height > this._maxHeight) {\n height = this._maxHeight;\n }\n return `${height}px`;\n\n }\n\n public openDatasetItem(entityReference: ComponentFramework.EntityReference) {\n this._dataset.openDatasetItem(entityReference);\n const clickedRecord = this.records.find(x => x.getRecordId() === entityReference.id.guid);\n //we need to make sure the item we are opening gets selected in order for the\n //OnOpenRecord ribbon scripts to work correctly\n //if no record found we have clicked a lookup, no selection should be happening in that case\n if (clickedRecord) {\n this.selection.toggle(clickedRecord, true, true, true);\n }\n }\n\n public updateDependencies(props: IGrid): void {\n this._props = props;\n this._dataset = props.parameters.Grid;\n this._pcfContext = props.context;\n //THIS COULD MAKE GRID STOP WORKING IN POWER APPS!\n if (this._previousRecordsReference !== this._dataset.records) {\n this._records = Object.values(this._dataset.records);\n this._previousRecordsReference = this._dataset.records;\n }\n Object.values(this._dependencies).map(dep => {\n dep.onDependenciesUpdated()\n })\n this._shouldRerender = !this.shouldRerender;\n }\n public async refreshColumns(): Promise<IGridColumn[]> {\n const gridColumns: IGridColumn[] = [];\n for (const column of this._dataset.columns) {\n const sorted = this._dataset.sorting?.find(sort => sort.name === column.name);\n const gridColumn: IGridColumn = {\n ...column,\n isEditable: await this._isColumnEditable(column),\n isRequired: await this._isColumnRequired(column),\n isFilterable: await this._isColumnFilterable(column),\n disableSorting: !this._isColumnSortable(column),\n isSortedDescending: sorted?.sortDirection === 1 ? true : false,\n isResizable: true,\n isSorted: sorted ? true : false,\n isFiltered: false\n }\n const condition = await this.filtering.condition(gridColumn);\n gridColumn.isFiltered = condition.isAppliedToDataset;\n gridColumns.push(gridColumn);\n }\n if (this.selection.type !== undefined) {\n gridColumns.unshift({\n name: CHECKBOX_COLUMN_KEY,\n alias: CHECKBOX_COLUMN_KEY,\n dataType: DataTypes.SingleLineText,\n displayName: '',\n isEditable: false,\n isFilterable: false,\n isFiltered: false,\n isRequired: false,\n isResizable: false,\n disableSorting: true,\n isSorted: false,\n isSortedDescending: false,\n order: 0,\n visualSizeFactor: 45,\n });\n }\n this._columns = gridColumns;\n return gridColumns;\n }\n\n public setRefreshGlobalCheckBox(refreshGlobalCheckBox: () => void) {\n this._refreshGlobalCheckBox = refreshGlobalCheckBox;\n }\n\n public refreshGlobalCheckBox() {\n this._refreshGlobalCheckBox();\n }\n\n public getTotalVisibleColumnsWidth(): number {\n let totalWidth = 0;\n this._columns.filter(x => !x.isHidden).map(col => {\n totalWidth = totalWidth + col.visualSizeFactor;\n })\n return totalWidth;\n }\n\n private async _isColumnEditable(column: IColumn): Promise<boolean> {\n //only allow editing if specifically allowed\n if (!this._props.parameters.EnableEditing?.raw) {\n return false;\n }\n if (column.name === Constants.RIBBON_BUTTONS_COLUMN_NAME) {\n return false;\n }\n //these field types do not support editing\n switch (column.dataType) {\n case DataType.FILE:\n case DataType.IMAGE: {\n return false;\n }\n }\n const attributeName = Attribute.GetNameFromAlias(column.name);\n const metadata = await this.metadata.get(column.name);\n return metadata.Attributes.get(attributeName)?.attributeDescriptor?.IsValidForUpdate ?? false;\n }\n\n private async _isColumnRequired(column: IColumn): Promise<boolean> {\n if (!this.parameters.EnableEditing?.raw) {\n return false;\n }\n if (column.name === Constants.RIBBON_BUTTONS_COLUMN_NAME) {\n return false;\n }\n const metadata = await this.metadata.get(column.name);\n const attributeName = Attribute.GetNameFromAlias(column.name);\n const requiredLevel = metadata.Attributes.get(attributeName)?.attributeDescriptor?.RequiredLevel;\n if (requiredLevel === 1 || requiredLevel === 2) {\n return true;\n }\n return false;\n }\n private _isColumnSortable(column: IColumn): boolean {\n if (column.name.endsWith('__virtual')) {\n return false;\n }\n if (this._props.parameters.EnableSorting?.raw === false) {\n return false;\n }\n if (column.name === Constants.RIBBON_BUTTONS_COLUMN_NAME) {\n return false;\n }\n switch (column.dataType) {\n case DataType.IMAGE: {\n return false;\n }\n }\n if(column.disableSorting === undefined) {\n return true;\n }\n return !column.disableSorting;\n }\n private async _isColumnFilterable(column: IColumn): Promise<boolean> {\n if (column.name.endsWith('__virtual')) {\n return false;\n }\n if (this.props.parameters.EnableFiltering?.raw === false) {\n return false;\n }\n if (column.name === Constants.RIBBON_BUTTONS_COLUMN_NAME) {\n return false;\n }\n const metadata = await this.metadata.get(column.name);\n const attributeName = Attribute.GetNameFromAlias(column.name);\n return metadata.Attributes.get(attributeName)?.attributeDescriptor?.isFilterable ?? true;\n }\n private _getMaxHeight(): number {\n let maxHeight = this._initialPageSize * this.rowHeight;\n if (maxHeight > 600) {\n maxHeight = 600;\n }\n return maxHeight;\n }\n}"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Grid.js","sources":["../../../../../src/components/Grid/core/model/Grid.ts"],"sourcesContent":["import { Attribute, Client, Constants, DataType, DataTypes, IColumn, ICustomColumnControl, IDataset, IRecord, Sanitizer } from \"@talxis/client-libraries\";\nimport { Filtering } from \"../../filtering/model/Filtering\";\nimport { IGrid } from \"../../interfaces\";\nimport { Paging } from \"../../paging/model/Paging\";\nimport { Selection } from \"../../selection/model/Selection\";\nimport { Sorting } from \"../../sorting/Sorting\";\nimport { KeyHoldListener } from \"../services/KeyListener\";\nimport { CHECKBOX_COLUMN_KEY } from \"../../constants\";\nimport { IGridColumn } from \"../interfaces/IGridColumn\";\nimport { BaseControls } from \"../../../../utils\";\nimport { IBinding } from \"../../../NestedControlRenderer/interfaces\";\nimport { merge } from \"merge-anything\";\n\nconst DEFAULT_ROW_HEIGHT = 42;\n\nexport class Grid {\n private _props: IGrid;\n private _dataset: IDataset\n private _pcfContext: ComponentFramework.Context<any>;\n private _columns: IGridColumn[] = [];\n //used for optimization\n private _previousRecordsReference: {\n [id: string]: IRecord;\n } = {};\n //TODO: fix types\n private _labels: any;\n private _shouldRerender: boolean = false;\n private _records: IRecord[] = [];\n //TODO: the dependencies might not have fully loaded grid\n //need to make sure that the grid is initialized before creating them\n private _dependencies: {\n filtering: Filtering,\n sorting: Sorting,\n selection: Selection,\n paging: Paging,\n };\n private _maxHeight: number;\n private _minHeight: number = 150;\n private _initialPageSize: number;\n private _usesNestedPcfs: boolean = false;\n private _client = new Client();\n\n public readonly keyHoldListener: KeyHoldListener;\n\n constructor(props: IGrid, labels: any, keyHoldListener: KeyHoldListener) {\n this._props = props;\n this._dataset = props.parameters.Grid;\n this._pcfContext = props.context;\n this._labels = labels;\n this.keyHoldListener = keyHoldListener;\n\n this._dependencies = {\n filtering: new Filtering(this),\n selection: new Selection(this),\n sorting: new Sorting(this),\n paging: new Paging(this),\n }\n this._initialPageSize = this.paging.pageSize;\n this._maxHeight = this._getMaxHeight();\n\n };\n public get isNavigationEnabled() {\n //enabled by default\n return this.parameters.EnableNavigation?.raw !== false;\n }\n public get isEditable() {\n return this._columns.find(x => x.isEditable) ? true : false;\n }\n public get parameters() {\n return this._props.parameters\n }\n public get error() {\n return this._dataset.error;\n }\n public get errorMessage() {\n return this._dataset.errorMessage\n }\n public get labels() {\n return this._labels;\n }\n public get dataset() {\n return this._dataset;\n }\n public get pcfContext() {\n return this._pcfContext;\n }\n public get props() {\n return this._props;\n }\n public get columns() {\n return this._columns;\n }\n public get records() {\n return this._records\n }\n public get sorting() {\n return this._dependencies.sorting;\n }\n public get filtering() {\n return this._dependencies.filtering;\n }\n public get selection() {\n return this._dependencies.selection;\n }\n public get paging() {\n return this._dependencies.paging;\n }\n public get shouldRerender() {\n return this._shouldRerender;\n }\n public get loading() {\n return this._dataset.loading;\n }\n public get state() {\n return this._props.state;\n }\n public get useContainerAsHeight() {\n return this.parameters.UseContainerAsHeight?.raw === true;\n }\n public get enableOptionSetColors() {\n return this.parameters.EnableOptionSetColors?.raw === true;\n }\n public get linking() {\n return this.dataset.linking;\n }\n public get inlineRibbonButtonIds() {\n const idString = this.parameters.InlineRibbonButtonIds?.raw;\n if (!idString) {\n return undefined;\n }\n return idString.split(',');\n }\n\n public get rowHeight() {\n let height = this.parameters.RowHeight?.raw;\n if (!height) {\n height = DEFAULT_ROW_HEIGHT;\n }\n return height;\n }\n\n public get height() {\n let height = this._maxHeight;\n if (this.parameters.Height?.raw) {\n return this.parameters.Height?.raw;\n }\n if (this._records.length === 0) {\n height = this._minHeight;\n }\n else if (this._records.length <= this._initialPageSize) {\n height = this._records.length * this.rowHeight;\n }\n if (height > this._maxHeight) {\n height = this._maxHeight;\n }\n return `${height}px`;\n\n }\n\n public getClient() {\n return this._client;\n }\n\n public updateDependencies(props: IGrid): void {\n this._props = props;\n this._dataset = props.parameters.Grid;\n this._pcfContext = props.context;\n if (this._previousRecordsReference !== this._dataset.records) {\n this._records = Object.values(this._dataset.records);\n this._previousRecordsReference = this._dataset.records;\n }\n Object.values(this._dependencies).map(dep => {\n dep.onDependenciesUpdated()\n })\n this._shouldRerender = !this.shouldRerender;\n }\n public async refreshColumns(): Promise<IGridColumn[]> {\n const gridColumns: IGridColumn[] = [];\n for (const column of this._dataset.columns) {\n const sorted = this._dataset.sorting?.find(sort => sort.name === column.name);\n const gridColumn: IGridColumn = {\n ...column,\n alignment: this.getColumnAlignment(column),\n isEditable: this._isColumnEditable(column),\n isRequired: this._isColumnRequired(column),\n isFilterable: this._isColumnFilterable(column),\n disableSorting: !this._isColumnSortable(column),\n isSortedDescending: sorted?.sortDirection === 1 ? true : false,\n isResizable: true,\n isSorted: sorted ? true : false,\n isFiltered: false,\n getEntityName: () => this._getColumnEntityName(column.name)\n }\n const condition = await this.filtering.condition(gridColumn);\n gridColumn.isFiltered = condition.isAppliedToDataset;\n gridColumns.push(gridColumn);\n }\n if (this.selection.type !== undefined) {\n gridColumns.unshift({\n name: CHECKBOX_COLUMN_KEY,\n alias: CHECKBOX_COLUMN_KEY,\n dataType: DataTypes.SingleLineText,\n alignment: 'center',\n displayName: '',\n isEditable: false,\n isFilterable: false,\n isFiltered: false,\n isRequired: false,\n isResizable: false,\n disableSorting: true,\n isSorted: false,\n isSortedDescending: false,\n order: 0,\n visualSizeFactor: 45,\n getEntityName: () => this._getColumnEntityName(CHECKBOX_COLUMN_KEY)\n });\n }\n this._columns = gridColumns;\n return gridColumns;\n }\n\n public getTotalVisibleColumnsWidth(): number {\n let totalWidth = 0;\n this._columns.filter(x => !x.isHidden).map(col => {\n totalWidth = totalWidth + (col.visualSizeFactor ?? 0);\n })\n return totalWidth;\n }\n\n public onNotifyOutputChanged(record: IRecord, column: IColumn, editing: boolean, newValue: any, rerenderCell: () => void) {\n record.setValue(column.name, newValue);\n if (!editing) {\n this.pcfContext.factory.requestRender();\n return;\n }\n setTimeout(() => {\n rerenderCell();\n }, 0);\n }\n\n public setUsesNestedPcfs() {\n this._usesNestedPcfs = true;\n }\n\n public getBindings(record: IRecord, column: IColumn, control: ICustomColumnControl) {\n const columnInfo = record.getColumnInfo(column.name);\n const bindings: { [name: string]: IBinding } = {\n 'value': {\n isStatic: false,\n type: column.dataType as any,\n value: this._getBindingValue(record, column),\n formattedValue: record.getFormattedValue(column.name),\n error: columnInfo.error,\n errorMessage: columnInfo.errorMessage,\n onNotifyOutputChanged: () => { },\n metadata: {\n onOverrideMetadata: () => column.metadata\n }\n },\n 'IsCellCustomizer': {\n isStatic: true,\n type: DataTypes.TwoOptions,\n value: true\n }\n }\n if (control.bindings) {\n Object.entries(control.bindings).map(([name, binding]) => {\n bindings[name] = {\n isStatic: true,\n type: binding.type!,\n value: binding.value\n }\n })\n }\n return bindings;\n }\n\n public getControl(column: IColumn, record: IRecord, editing: boolean): Required<ICustomColumnControl> {\n //file and image currently do not support editor, always force cell renderers\n switch (column.dataType) {\n case 'File':\n case 'Image': {\n return {\n name: 'GridCellRenderer',\n appliesTo: 'both',\n bindings: {}\n }\n }\n }\n const defaultControl: Required<ICustomColumnControl> = {\n name: editing ? BaseControls.GetControlNameForDataType(column.dataType as DataType) : 'GridCellRenderer',\n appliesTo: 'both',\n bindings: {}\n };\n const customControls = record.getColumnInfo(column.name).ui.getCustomControls([defaultControl]);\n const appliesToValue = editing ? 'editor' : 'renderer';\n const customControl = customControls.find(\n control => control.appliesTo === 'both' || control.appliesTo === appliesToValue\n );\n if (customControl) {\n return merge(defaultControl, customControl) as Required<ICustomColumnControl>;\n }\n\n return defaultControl;\n }\n\n public getParameters(record: IRecord, column: IGridColumn, editing: boolean) {\n const parameters: any = {\n Dataset: {\n raw: this.dataset,\n type: DataTypes.Object\n },\n Record: {\n raw: record,\n type: DataTypes.Object\n },\n Column: {\n raw: column,\n type: DataTypes.Object\n }\n }\n parameters.EnableNavigation = {\n raw: this.isNavigationEnabled,\n type: DataTypes.TwoOptions\n }\n parameters.ColumnAlignment = {\n raw: column.alignment,\n type: DataTypes.SingleLineText\n }\n parameters.IsPrimaryColumn = {\n raw: column.isPrimary,\n type: DataTypes.TwoOptions\n }\n parameters.ShowErrorMessage = {\n raw: false,\n type: DataTypes.TwoOptions\n }\n parameters.CellType = {\n raw: editing ? 'editor' : 'renderer',\n type: DataTypes.SingleLineText\n }\n if (editing) {\n parameters.AutoFocus = {\n raw: true,\n type: DataTypes.TwoOptions\n }\n }\n switch (column.dataType) {\n case 'Lookup.Customer':\n case 'Lookup.Owner':\n case 'Lookup.Regarding':\n case 'Lookup.Simple': {\n parameters.IsInlineNewEnabled = {\n raw: false,\n type: DataTypes.TwoOptions\n }\n break;\n }\n case 'SingleLine.Email':\n case 'SingleLine.Phone':\n case 'SingleLine.URL': {\n parameters.EnableTypeSuffix = {\n raw: false,\n type: DataTypes.TwoOptions\n }\n break;\n }\n case 'OptionSet':\n case 'TwoOptions':\n case 'MultiSelectPicklist': {\n parameters.EnableOptionSetColors = {\n raw: this.enableOptionSetColors,\n type: DataTypes.TwoOptions\n }\n break;\n }\n }\n return parameters;\n }\n public getColumnAlignment(column: IColumn) {\n if (column.alignment) {\n return column.alignment;\n }\n switch (column.dataType) {\n case DataTypes.WholeNone:\n case DataTypes.Decimal:\n case DataTypes.Currency: {\n return 'right';\n }\n }\n if (column.type === 'action') {\n return 'right';\n }\n return 'left';\n }\n\n public destroy() {\n this._previousRecordsReference = {};\n this._records.length = 0;\n this.keyHoldListener.destroy();\n //@ts-ignore - internal types\n //if any nested PCF has been loaded and we are in Power Apps, do a page refresh to prevent memory leaks\n if (this._usesNestedPcfs && !this._client.isTalxisPortal()) {\n //location.reload();\n }\n }\n\n private _getBindingValue(record: IRecord, column: IColumn) {\n let value = record.getValue(column.name);\n switch (column.dataType) {\n //getValue always returns string for TwoOptions\n case 'TwoOptions': {\n value = value == '1' ? true : false\n break;\n }\n //getValue always returns string for OptionSet\n case 'OptionSet': {\n value = value ? parseInt(value) : null;\n break;\n }\n case 'MultiSelectPicklist': {\n value = value ? value.split(',').map((x: string) => parseInt(x)) : null;\n break;\n }\n case 'Lookup.Simple':\n case 'Lookup.Customer':\n case 'Lookup.Owner':\n case 'Lookup.Regarding': {\n //our implementation returns array, Power Apps returns object\n if (value && !Array.isArray(value)) {\n value = [value];\n }\n value = value?.map((x: ComponentFramework.EntityReference) => Sanitizer.Lookup.getLookupValue(x))\n break;\n }\n }\n return value;\n }\n\n private _isColumnEditable(column: IColumn): boolean {\n //only allow editing if specifically allowed\n if (!this._props.parameters.EnableEditing?.raw) {\n return false;\n }\n if (column.name === Constants.RIBBON_BUTTONS_COLUMN_NAME) {\n return false;\n }\n //these field types do not support editing\n switch (column.dataType) {\n case DataTypes.File:\n case DataTypes.Image: {\n return false;\n }\n }\n return column.metadata?.IsValidForUpdate ?? false;\n }\n\n private _isColumnRequired(column: IColumn): boolean {\n if (!this.parameters.EnableEditing?.raw) {\n return false;\n }\n if (column.name === Constants.RIBBON_BUTTONS_COLUMN_NAME) {\n return false;\n }\n const requiredLevel = column.metadata?.RequiredLevel;\n if (requiredLevel === 1 || requiredLevel === 2) {\n return true;\n }\n return false;\n }\n private _isColumnSortable(column: IColumn): boolean {\n if (column.name.endsWith('__virtual')) {\n return false;\n }\n if (this._props.parameters.EnableSorting?.raw === false) {\n return false;\n }\n if (column.name === Constants.RIBBON_BUTTONS_COLUMN_NAME) {\n return false;\n }\n switch (column.dataType) {\n case DataTypes.Image: {\n return false;\n }\n }\n if (column.disableSorting === undefined) {\n return true;\n }\n return !column.disableSorting;\n }\n private _isColumnFilterable(column: IColumn): boolean {\n if (column.name.endsWith('__virtual')) {\n return false;\n }\n if (this.props.parameters.EnableFiltering?.raw === false) {\n return false;\n }\n if (column.name === Constants.RIBBON_BUTTONS_COLUMN_NAME) {\n return false;\n }\n return column.metadata?.isFilterable ?? true;\n }\n private _getMaxHeight(): number {\n let maxHeight = this._initialPageSize * this.rowHeight;\n if (maxHeight > 600) {\n maxHeight = 600;\n }\n return maxHeight;\n }\n private _getColumnEntityName(columnName: string) {\n const entityAliasName = Attribute.GetLinkedEntityAlias(columnName);\n if (!entityAliasName) {\n return this.dataset.getTargetEntityType();\n }\n return this.dataset.linking.getLinkedEntities().find(x => x.alias === entityAliasName)!.name;\n }\n}"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/// <reference types="@types/powerapps-component-framework" />
|
|
2
|
+
import { IAttributeMetadata } from "@talxis/client-libraries";
|
|
2
3
|
import { GridDependency } from "./GridDependency";
|
|
3
4
|
export declare class Metadata extends GridDependency {
|
|
4
|
-
get(columnName: string):
|
|
5
|
+
get(columnName: string): Partial<IAttributeMetadata>;
|
|
5
6
|
getOptions(columnName: string): Promise<[number | boolean, ComponentFramework.PropertyHelper.OptionMetadata[]]>;
|
|
6
7
|
}
|
|
@@ -2,8 +2,10 @@ class KeyHoldListener {
|
|
|
2
2
|
constructor() {
|
|
3
3
|
this._currentlyHeldKey = null;
|
|
4
4
|
this._keyDownHandlers = new Set();
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
this._onKeyDownRef = (e) => this._onKeyDown(e);
|
|
6
|
+
this._onKeyUpRef = (e) => this._onKeyUp(e);
|
|
7
|
+
window.addEventListener('keydown', this._onKeyDownRef);
|
|
8
|
+
window.addEventListener('keyup', this._onKeyUpRef);
|
|
7
9
|
}
|
|
8
10
|
getHeldKey() {
|
|
9
11
|
return this._currentlyHeldKey;
|
|
@@ -20,7 +22,8 @@ class KeyHoldListener {
|
|
|
20
22
|
}
|
|
21
23
|
destroy() {
|
|
22
24
|
this._keyDownHandlers.clear();
|
|
23
|
-
window.removeEventListener('keydown', this.
|
|
25
|
+
window.removeEventListener('keydown', this._onKeyDownRef);
|
|
26
|
+
window.removeEventListener('keyup', this._onKeyUpRef);
|
|
24
27
|
}
|
|
25
28
|
}
|
|
26
29
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyListener.js","sources":["../../../../../src/components/Grid/core/services/KeyListener.ts"],"sourcesContent":["export class KeyHoldListener {\n private _currentlyHeldKey: string | null = null;\n private _keyDownHandlers: Set<(e: KeyboardEvent) => void> = new Set();\n constructor() {\n window.addEventListener('keydown', this.
|
|
1
|
+
{"version":3,"file":"KeyListener.js","sources":["../../../../../src/components/Grid/core/services/KeyListener.ts"],"sourcesContent":["export class KeyHoldListener {\n private _currentlyHeldKey: string | null = null;\n private _keyDownHandlers: Set<(e: KeyboardEvent) => void> = new Set();\n private _onKeyDownRef: (e: KeyboardEvent) => void;\n private _onKeyUpRef: (e: KeyboardEvent) => void;\n\n constructor() {\n this._onKeyDownRef = (e) => this._onKeyDown(e);\n this._onKeyUpRef = (e) => this._onKeyUp(e);\n window.addEventListener('keydown', this._onKeyDownRef);\n window.addEventListener('keyup', this._onKeyUpRef);\n }\n public getHeldKey(): string | null {\n return this._currentlyHeldKey;\n }\n public addOnKeyDownHandler(handler: (e: KeyboardEvent) => void) {\n this._keyDownHandlers.add(handler);\n }\n private _onKeyDown(e: KeyboardEvent) {\n this._currentlyHeldKey = e.key;\n [...this._keyDownHandlers.values()].map(handler => handler(e));\n }\n private _onKeyUp(e: KeyboardEvent) {\n this._currentlyHeldKey = null;\n }\n destroy() {\n this._keyDownHandlers.clear();\n window.removeEventListener('keydown', this._onKeyDownRef);\n window.removeEventListener('keyup', this._onKeyUpRef);\n }\n}"],"names":[],"mappings":"MAAa,eAAe,CAAA;AAMxB,IAAA,WAAA,GAAA;QALQ,IAAiB,CAAA,iBAAA,GAAkB,IAAI,CAAC;AACxC,QAAA,IAAA,CAAA,gBAAgB,GAAoC,IAAI,GAAG,EAAE,CAAC;AAKlE,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC/C,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACvD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACtD;IACM,UAAU,GAAA;QACb,OAAO,IAAI,CAAC,iBAAiB,CAAC;KACjC;AACM,IAAA,mBAAmB,CAAC,OAAmC,EAAA;AAC1D,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;KACtC;AACO,IAAA,UAAU,CAAC,CAAgB,EAAA;AAC/B,QAAA,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,GAAG,CAAC;QAC/B,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;KAClE;AACO,IAAA,QAAQ,CAAC,CAAgB,EAAA;AAC7B,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;KACjC;IACD,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1D,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACzD;AACJ;;;;"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsx, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { useRef, useMemo, useEffect } from 'react';
|
|
3
|
-
import { Component } from '../../../../../core/components/Component/Component.js';
|
|
4
3
|
import { useColumnFilterConditionController } from '../../../../controller/useColumnFilterConditionController.js';
|
|
5
4
|
import { ConditionComponentValue } from './model/ConditionComponentValue.js';
|
|
6
5
|
import { MemoryDataProvider, DataTypes } from '@talxis/client-libraries';
|
|
7
|
-
import {
|
|
6
|
+
import { Component } from '../LegacyControlRendering/Component.js';
|
|
7
|
+
import { useRerender } from '@talxis/react-components';
|
|
8
8
|
|
|
9
9
|
const ConditionValue = (props) => {
|
|
10
10
|
const condition = useColumnFilterConditionController(props.column);
|
|
@@ -45,7 +45,7 @@ const InternalConditionValue = (controller) => {
|
|
|
45
45
|
memoryProvider.setMetadata({
|
|
46
46
|
PrimaryIdAttribute: "id"
|
|
47
47
|
});
|
|
48
|
-
const record = memoryProvider.
|
|
48
|
+
const record = memoryProvider.refreshSync()[0];
|
|
49
49
|
return record;
|
|
50
50
|
}, []);
|
|
51
51
|
record.setValue(column.name, conditionComponentValue.get());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConditionValue.js","sources":["../../../../../../../../src/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef } from \"react\";\nimport {
|
|
1
|
+
{"version":3,"file":"ConditionValue.js","sources":["../../../../../../../../src/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef } from \"react\";\nimport { IGridColumn } from \"../../../../../core/interfaces/IGridColumn\";\nimport { IColumnFilterConditionController, useColumnFilterConditionController } from \"../../../../controller/useColumnFilterConditionController\";\nimport { ConditionComponentValue } from \"./model/ConditionComponentValue\";\nimport { DataTypes, MemoryDataProvider } from \"@talxis/client-libraries\";\nimport { Component } from \"../LegacyControlRendering/Component\";\nimport { useRerender } from \"@talxis/react-components\";\n\ninterface IConditionValue {\n column: IGridColumn;\n}\n\nexport const ConditionValue = (props: IConditionValue) => {\n const condition = useColumnFilterConditionController(props.column);\n if (!condition) {\n return <></>\n }\n return <InternalConditionValue {...condition} />\n}\n\nconst InternalConditionValue = (controller: IColumnFilterConditionController) => {\n const componentContainerRef = useRef<HTMLDivElement>(null);\n const controllerRef = useRef<IColumnFilterConditionController>(controller);\n const firstRenderRef = useRef(true);\n controllerRef.current = controller;\n const conditionComponentValue = useMemo(() => new ConditionComponentValue(controllerRef), []);\n const column = conditionComponentValue.column;\n const rerender = useRerender();\n\n const record = useMemo(() => {\n const memoryProvider = new MemoryDataProvider(\n [\n {\n [column.name]: conditionComponentValue.get() ?? undefined,\n id: \"id\",\n },\n ]\n );\n memoryProvider.setColumns([\n {\n ...column,\n metadata: { ...(column.metadata as any), RequiredLevel: 0 },\n },\n {\n name: \"id\",\n displayName: \"\",\n dataType: DataTypes.SingleLineText,\n alias: \"id\",\n order: 0,\n visualSizeFactor: 0,\n },\n ]);\n memoryProvider.setMetadata({\n PrimaryIdAttribute: \"id\"\n })\n const record = memoryProvider.refreshSync()[0];\n return record;\n }, []);\n\n record.setValue(column.name, conditionComponentValue.get())\n\n useEffect(() => {\n if (conditionComponentValue.get() === null) {\n const input = componentContainerRef.current?.querySelector('input')\n input?.focus()\n }\n if (!firstRenderRef.current) {\n record.expressions?.setRequiredLevelExpression(column.name, () => 'required');\n }\n if (firstRenderRef.current) {\n firstRenderRef.current = false;\n }\n }, [conditionComponentValue.get()])\n\n useEffect(() => {\n if (!controller.value.valid) {\n record?.expressions?.setRequiredLevelExpression(column.name, () => 'required');\n rerender();\n }\n }, [controller.value.valid])\n\n\n return (\n <div ref={componentContainerRef}>\n <Component\n column={column}\n record={record}\n onNotifyOutputChanged={(value) => conditionComponentValue.set(value)}\n onOverrideControlProps={(props) => {\n return {\n ...props,\n parameters: {\n ...props.parameters,\n MultipleEnabled: {\n raw: true\n },\n IsInlineNewEnabled: {\n raw: false\n },\n ShowErrorMessage: {\n raw: true\n },\n value: {\n ...props.parameters.value,\n getAllViews: async (entityName: string) => {\n return props.parameters.value.getAllViews(entityName, 1);\n }\n }\n }\n }\n }}\n />\n </div>\n )\n}\n"],"names":["_jsx"],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
+
/// <reference types="@types/xrm" />
|
|
2
3
|
import { IColumnFilterConditionController } from "../../../../../controller/useColumnFilterConditionController";
|
|
3
4
|
export declare class ConditionComponentValue {
|
|
4
5
|
private _columnFilterConditionControllerRef;
|
|
@@ -12,15 +13,26 @@ export declare class ConditionComponentValue {
|
|
|
12
13
|
isFiltered: boolean;
|
|
13
14
|
isSortedDescending: boolean;
|
|
14
15
|
isResizable: boolean;
|
|
15
|
-
|
|
16
|
+
alignment: "left" | "right" | "center" | undefined;
|
|
17
|
+
getEntityName: () => string;
|
|
18
|
+
name: string;
|
|
19
|
+
metadata?: Partial<Omit<Xrm.Metadata.AttributeMetadata, "OptionSet"> & {
|
|
20
|
+
[key: string]: any;
|
|
21
|
+
OptionSet: {
|
|
22
|
+
Color: string;
|
|
23
|
+
Label: string;
|
|
24
|
+
Value: number;
|
|
25
|
+
}[];
|
|
26
|
+
}> | undefined;
|
|
16
27
|
type?: "data" | "action" | undefined;
|
|
17
28
|
isDraggable?: boolean | undefined;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
29
|
+
oneClickEdit?: boolean | undefined;
|
|
30
|
+
controls?: import("@talxis/client-libraries").ICustomColumnControl[] | undefined;
|
|
31
|
+
displayName?: string | undefined;
|
|
32
|
+
dataType?: string | undefined;
|
|
33
|
+
alias?: string | undefined;
|
|
34
|
+
order?: number | undefined;
|
|
35
|
+
visualSizeFactor?: number | undefined;
|
|
24
36
|
isHidden?: boolean | undefined;
|
|
25
37
|
isPrimary?: boolean | undefined;
|
|
26
38
|
disableSorting?: boolean | undefined;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { IGridColumn } from "../../interfaces/IGridColumn";
|
|
3
|
-
import { IControl } from "../../../../../interfaces/context";
|
|
4
2
|
import { IRecord } from "@talxis/client-libraries";
|
|
3
|
+
import { IControl } from "../../../../../../../interfaces";
|
|
4
|
+
import { IGridColumn } from "../../../../../core/interfaces/IGridColumn";
|
|
5
5
|
export interface IControlProps {
|
|
6
6
|
column: IGridColumn;
|
|
7
7
|
record: IRecord;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
-
import {
|
|
3
|
-
import { Decimal } from '../../../../Decimal/Decimal.js';
|
|
4
|
-
import { Lookup } from '../../../../Lookup/Lookup.js';
|
|
5
|
-
import { MultiSelectOptionSet } from '../../../../MultiSelectOptionSet/MultiSelectOptionSet.js';
|
|
6
|
-
import { OptionSet } from '../../../../OptionSet/OptionSet.js';
|
|
7
|
-
import { TextField } from '../../../../TextField/TextField.js';
|
|
8
|
-
import { TwoOptions } from '../../../../TwoOptions/TwoOptions.js';
|
|
9
|
-
import { Duration } from '../../../../Duration/Duration.js';
|
|
10
|
-
import { DataType } from '../../enums/DataType.js';
|
|
2
|
+
import { DataType } from '../../../../../core/enums/DataType.js';
|
|
11
3
|
import { useComponentController } from './controller/useComponentController.js';
|
|
4
|
+
import { TextField } from '../../../../../../TextField/TextField.js';
|
|
5
|
+
import { Duration } from '../../../../../../Duration/Duration.js';
|
|
6
|
+
import { Lookup } from '../../../../../../Lookup/Lookup.js';
|
|
7
|
+
import { Decimal } from '../../../../../../Decimal/Decimal.js';
|
|
8
|
+
import { DateTime } from '../../../../../../DateTime/DateTime.js';
|
|
9
|
+
import { MultiSelectOptionSet } from '../../../../../../MultiSelectOptionSet/MultiSelectOptionSet.js';
|
|
10
|
+
import { TwoOptions } from '../../../../../../TwoOptions/TwoOptions.js';
|
|
11
|
+
import { OptionSet } from '../../../../../../OptionSet/OptionSet.js';
|
|
12
12
|
|
|
13
13
|
const Component = (props) => {
|
|
14
14
|
const controller = useComponentController(props);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Component.js","sources":["../../../../../../../../src/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/Component.tsx"],"sourcesContent":["import { IRecord } from \"@talxis/client-libraries\";\nimport { IControl } from \"../../../../../../../interfaces\";\nimport { DateTime } from \"../../../../../../DateTime\";\nimport { Decimal } from \"../../../../../../Decimal\";\nimport { Duration } from \"../../../../../../Duration\";\nimport { Lookup } from \"../../../../../../Lookup\";\nimport { MultiSelectOptionSet } from \"../../../../../../MultiSelectOptionSet\";\nimport { OptionSet } from \"../../../../../../OptionSet\";\nimport { TwoOptions } from \"../../../../../../TwoOptions\";\nimport { DataType } from \"../../../../../core/enums/DataType\";\nimport { IGridColumn } from \"../../../../../core/interfaces/IGridColumn\";\nimport { useComponentController } from \"./controller/useComponentController\";\nimport { TextField } from \"../../../../../../TextField\";\n\nexport interface IControlProps {\n column: IGridColumn;\n record: IRecord\n onNotifyOutputChanged: (value: any) => void;\n onOverrideControlProps?: (props: IControl<any, any, any, any>) => IControl<any, any, any, any>;\n}\n\nexport const Component = (props: IControlProps) => {\n const controller = useComponentController(props);\n const {column, componentProps} = {...controller};\n if(!column) {\n return <></>\n }\n switch(column.dataType) {\n case DataType.TWO_OPTIONS: {\n return <TwoOptions {...componentProps!} />\n }\n case DataType.OPTIONSET: {\n return <OptionSet {...componentProps!} />\n }\n case DataType.MULTI_SELECT_OPTIONSET: {\n return <MultiSelectOptionSet {...componentProps!} />\n }\n case DataType.DATE_AND_TIME_DATE_AND_TIME:\n case DataType.DATE_AND_TIME_DATE_ONLY: {\n return <DateTime {...componentProps!} />\n }\n case DataType.DECIMAL:\n case DataType.WHOLE_NONE:\n case DataType.CURRENCY: {\n return <Decimal {...componentProps!} />\n }\n case DataType.LOOKUP_SIMPLE:\n case DataType.LOOKUP_OWNER:\n case DataType.LOOKUP_CUSTOMER: {\n return <Lookup {...componentProps!} />\n }\n case DataType.WHOLE_DURATION: {\n return <Duration {...componentProps!} />\n }\n default: {\n return <TextField {...componentProps!} />\n }\n }\n}"],"names":["_jsx"],"mappings":";;;;;;;;;;;;AAqBa,MAAA,SAAS,GAAG,CAAC,KAAoB,KAAI;AAC9C,IAAA,MAAM,UAAU,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACjD,MAAM,EAAC,MAAM,EAAE,cAAc,EAAC,GAAG,EAAC,GAAG,UAAU,EAAC,CAAC;IACjD,IAAG,CAAC,MAAM,EAAE;AACR,QAAA,OAAOA,iBAAK,CAAA;AACf,KAAA;IACD,QAAO,MAAM,CAAC,QAAQ;AAClB,QAAA,KAAK,QAAQ,CAAC,WAAW,EAAE;AACvB,YAAA,OAAOA,GAAC,CAAA,UAAU,EAAK,EAAA,GAAA,cAAe,GAAI,CAAA;AAC7C,SAAA;AACD,QAAA,KAAK,QAAQ,CAAC,SAAS,EAAE;AACrB,YAAA,OAAOA,GAAC,CAAA,SAAS,EAAK,EAAA,GAAA,cAAe,GAAI,CAAA;AAC5C,SAAA;AACD,QAAA,KAAK,QAAQ,CAAC,sBAAsB,EAAE;AAClC,YAAA,OAAOA,GAAC,CAAA,oBAAoB,EAAK,EAAA,GAAA,cAAe,GAAI,CAAA;AACvD,SAAA;QACD,KAAK,QAAQ,CAAC,2BAA2B,CAAC;AAC1C,QAAA,KAAK,QAAQ,CAAC,uBAAuB,EAAE;AACnC,YAAA,OAAOA,GAAC,CAAA,QAAQ,EAAK,EAAA,GAAA,cAAe,GAAI,CAAA;AAC3C,SAAA;QACD,KAAK,QAAQ,CAAC,OAAO,CAAC;QACtB,KAAK,QAAQ,CAAC,UAAU,CAAC;AACzB,QAAA,KAAK,QAAQ,CAAC,QAAQ,EAAE;AACpB,YAAA,OAAOA,GAAC,CAAA,OAAO,EAAK,EAAA,GAAA,cAAe,GAAI,CAAA;AAC1C,SAAA;QACD,KAAK,QAAQ,CAAC,aAAa,CAAC;QAC5B,KAAK,QAAQ,CAAC,YAAY,CAAC;AAC3B,QAAA,KAAK,QAAQ,CAAC,eAAe,EAAE;AAC3B,YAAA,OAAOA,GAAC,CAAA,MAAM,EAAK,EAAA,GAAA,cAAe,GAAI,CAAA;AACzC,SAAA;AACD,QAAA,KAAK,QAAQ,CAAC,cAAc,EAAE;AAC1B,YAAA,OAAOA,GAAC,CAAA,QAAQ,EAAK,EAAA,GAAA,cAAe,GAAI,CAAA;AAC3C,SAAA;AACD,QAAA,SAAS;AACL,YAAA,OAAOA,GAAC,CAAA,SAAS,EAAK,EAAA,GAAA,cAAe,GAAI,CAAA;AAC5C,SAAA;AACJ,KAAA;AACL;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { IControlProps } from "../Component";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { IGridColumn } from "../../../../../../core/interfaces/IGridColumn";
|
|
3
|
+
import { IControl } from "../../../../../../../../interfaces";
|
|
4
4
|
interface IControlController {
|
|
5
5
|
column: IGridColumn;
|
|
6
6
|
componentProps: IControl<any, any, any, any>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useMemo, useState, useRef, useEffect } from 'react';
|
|
2
2
|
import { Component } from '../model/Component.js';
|
|
3
|
-
import { useGridInstance } from '
|
|
3
|
+
import { useGridInstance } from '../../../../../../core/hooks/useGridInstance.js';
|
|
4
4
|
|
|
5
5
|
const useComponentController = (props) => {
|
|
6
6
|
const grid = useGridInstance();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useComponentController.js","sources":["../../../../../../../../../src/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/controller/useComponentController.ts"],"sourcesContent":["import { useEffect, useMemo,useRef,useState } from \"react\"\nimport { IControlProps } from \"../Component\";\nimport { Component } from '../model/Component';\nimport { IGridColumn } from \"../../../../../../core/interfaces/IGridColumn\";\nimport { IControl } from \"../../../../../../../../interfaces\";\nimport { useGridInstance } from \"../../../../../../core/hooks/useGridInstance\";\n\ninterface IControlController {\n column: IGridColumn;\n componentProps: IControl<any, any, any, any>;\n}\n\nexport const useComponentController = (props: IControlProps): IControlController | undefined => {\n const grid = useGridInstance();\n const component = useMemo(() => new Component(grid), []);\n const [controller, setController] = useState<IControlController>();\n const mountedRef = useRef<boolean>(true);\n \n useEffect(() => {\n (async () => {\n const componentProps = await component.getControlProps(props);\n if(!mountedRef.current) {\n return;\n }\n setController({\n column: props.column,\n componentProps: componentProps\n })\n })();\n }, [props]);\n\n useEffect(() => {\n return () => {\n mountedRef.current = false;\n }\n }, []);\n\n return controller;\n}"],"names":[],"mappings":";;;;AAYa,MAAA,sBAAsB,GAAG,CAAC,KAAoB,KAAoC;AAC3F,IAAA,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;AAC/B,IAAA,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACzD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,EAAsB,CAAC;AACnE,IAAA,MAAM,UAAU,GAAG,MAAM,CAAU,IAAI,CAAC,CAAC;IAEzC,SAAS,CAAC,MAAK;QACX,CAAC,YAAW;YACR,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAC9D,YAAA,IAAG,CAAC,UAAU,CAAC,OAAO,EAAE;gBACpB,OAAO;AACV,aAAA;AACD,YAAA,aAAa,CAAC;gBACV,MAAM,EAAE,KAAK,CAAC,MAAM;AACpB,gBAAA,cAAc,EAAE,cAAc;AACjC,aAAA,CAAC,CAAA;SACL,GAAG,CAAC;AACT,KAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,SAAS,CAAC,MAAK;AACX,QAAA,OAAO,MAAK;AACR,YAAA,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC;AAC/B,SAAC,CAAA;KACJ,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,OAAO,UAAU,CAAC;AACtB;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { GridDependency } from "../../../model/GridDependency";
|
|
1
|
+
import { GridDependency } from "../../../../../../core/model/GridDependency";
|
|
3
2
|
import { IControlProps } from "../Component";
|
|
3
|
+
import { IControl } from "../../../../../../../../interfaces";
|
|
4
4
|
export declare class Component extends GridDependency {
|
|
5
5
|
private _debouncedGetLookupValue;
|
|
6
6
|
private static _lookupSavedQueriesCache;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import dayjs from 'dayjs';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { GridDependency } from '../../../../../../core/model/GridDependency.js';
|
|
3
|
+
import { Attribute, Sanitizer } from '@talxis/client-libraries';
|
|
4
|
+
import { DataType } from '../../../../../../core/enums/DataType.js';
|
|
5
5
|
|
|
6
6
|
const debounce = (func, wait) => {
|
|
7
7
|
let timeout = null;
|
|
@@ -28,18 +28,14 @@ class Component extends GridDependency {
|
|
|
28
28
|
const value = this._getComponentValue(column, record.getValue(column.name));
|
|
29
29
|
const formattedValue = record.getFormattedValue(column.name);
|
|
30
30
|
const validation = record.getColumnInfo(column.name);
|
|
31
|
-
const onOverrideControlProps = (
|
|
32
|
-
|
|
33
|
-
overridenProps.parameters = record.ui?.getCellEditorParameters(column.name, overridenProps.parameters) ?? overridenProps.parameters;
|
|
34
|
-
return overridenProps;
|
|
35
|
-
};
|
|
36
|
-
const attributeName = Attribute.GetNameFromAlias(column.name);
|
|
31
|
+
const onOverrideControlProps = (props) => props;
|
|
32
|
+
Attribute.GetNameFromAlias(column.name);
|
|
37
33
|
switch (column.dataType) {
|
|
38
34
|
case DataType.LOOKUP_SIMPLE:
|
|
39
35
|
case DataType.LOOKUP_OWNER:
|
|
40
36
|
case DataType.LOOKUP_CUSTOMER: {
|
|
41
|
-
const columnMetadata =
|
|
42
|
-
const targets = columnMetadata
|
|
37
|
+
const columnMetadata = column.metadata;
|
|
38
|
+
const targets = columnMetadata?.Targets ?? [];
|
|
43
39
|
//@ts-ignore - typings
|
|
44
40
|
if (column.dataType === DataType.LOOKUP_OWNER && window.TALXIS.Portal) {
|
|
45
41
|
targets.push('systemuser', 'team');
|
|
@@ -85,7 +81,7 @@ class Component extends GridDependency {
|
|
|
85
81
|
}
|
|
86
82
|
case DataType.TWO_OPTIONS: {
|
|
87
83
|
const twoOptionsValue = value;
|
|
88
|
-
const
|
|
84
|
+
const options = column.metadata?.OptionSet ?? [];
|
|
89
85
|
return onOverrideControlProps({
|
|
90
86
|
context: this._pcfContext,
|
|
91
87
|
parameters: {
|
|
@@ -103,7 +99,7 @@ class Component extends GridDependency {
|
|
|
103
99
|
}
|
|
104
100
|
case DataType.OPTIONSET: {
|
|
105
101
|
const optionSetValue = value;
|
|
106
|
-
const
|
|
102
|
+
const options = column.metadata?.OptionSet ?? [];
|
|
107
103
|
return onOverrideControlProps({
|
|
108
104
|
context: this._pcfContext,
|
|
109
105
|
parameters: {
|
|
@@ -120,7 +116,7 @@ class Component extends GridDependency {
|
|
|
120
116
|
});
|
|
121
117
|
}
|
|
122
118
|
case DataType.MULTI_SELECT_OPTIONSET: {
|
|
123
|
-
const
|
|
119
|
+
const options = column.metadata?.OptionSet ?? [];
|
|
124
120
|
const optionSetValue = value;
|
|
125
121
|
return onOverrideControlProps({
|
|
126
122
|
context: this._pcfContext,
|
|
@@ -140,7 +136,7 @@ class Component extends GridDependency {
|
|
|
140
136
|
case DataType.DATE_AND_TIME_DATE_AND_TIME:
|
|
141
137
|
case DataType.DATE_AND_TIME_DATE_ONLY: {
|
|
142
138
|
const dateTimeValue = value;
|
|
143
|
-
const metadata =
|
|
139
|
+
const metadata = column.metadata;
|
|
144
140
|
const date = dayjs(dateTimeValue);
|
|
145
141
|
return onOverrideControlProps({
|
|
146
142
|
context: this._pcfContext,
|
|
@@ -150,7 +146,7 @@ class Component extends GridDependency {
|
|
|
150
146
|
error: validation?.error === false,
|
|
151
147
|
errorMessage: validation?.errorMessage ?? "",
|
|
152
148
|
attributes: {
|
|
153
|
-
Behavior: metadata
|
|
149
|
+
Behavior: metadata?.Behavior,
|
|
154
150
|
Format: column.dataType
|
|
155
151
|
}
|
|
156
152
|
}
|
|
@@ -163,8 +159,8 @@ class Component extends GridDependency {
|
|
|
163
159
|
case DataType.CURRENCY:
|
|
164
160
|
case DataType.WHOLE_DURATION: {
|
|
165
161
|
const decimalValue = value;
|
|
166
|
-
const metadata =
|
|
167
|
-
const precision = metadata
|
|
162
|
+
const metadata = column.metadata;
|
|
163
|
+
const precision = metadata?.Precision;
|
|
168
164
|
return onOverrideControlProps({
|
|
169
165
|
context: this._pcfContext,
|
|
170
166
|
parameters: {
|
|
@@ -236,7 +232,7 @@ class Component extends GridDependency {
|
|
|
236
232
|
_getComponentValue(column, value) {
|
|
237
233
|
switch (column.dataType) {
|
|
238
234
|
//getValue always returns string for TwoOptions
|
|
239
|
-
case
|
|
235
|
+
case DataType.TWO_OPTIONS: {
|
|
240
236
|
value = value == '1' ? true : false;
|
|
241
237
|
break;
|
|
242
238
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Component.js","sources":["../../../../../../../../../src/components/Grid/filtering/components/FilterCallout/components/LegacyControlRendering/model/Component.ts"],"sourcesContent":["import dayjs from \"dayjs\";\nimport { GridDependency } from \"../../../../../../core/model/GridDependency\";\nimport { IControlProps } from \"../Component\";\nimport { IControl } from \"../../../../../../../../interfaces\";\nimport { Attribute, Sanitizer } from \"@talxis/client-libraries\";\nimport { DataType } from \"../../../../../../core/enums/DataType\";\nimport { ILookup } from \"../../../../../../../Lookup\";\nimport { ITwoOptions } from \"../../../../../../../TwoOptions\";\nimport { IOptionSet } from \"../../../../../../../OptionSet\";\nimport { IMultiSelectOptionSet } from \"../../../../../../../MultiSelectOptionSet\";\nimport { IDateTime } from \"../../../../../../../DateTime\";\nimport { IDecimal } from \"../../../../../../../Decimal\";\nimport { ITextField } from \"../../../../../../../TextField\";\nimport { IGridColumn } from \"../../../../../../core/interfaces/IGridColumn\";\n\nconst debounce = (func: (...args: any[]) => Promise<any>, wait: number) => {\n let timeout: NodeJS.Timeout | null = null;\n let promiseCache: Promise<any> | null = null;\n\n return async (...args: any[]) => {\n if (!promiseCache) {\n promiseCache = func(...args);\n }\n\n if (timeout) clearTimeout(timeout);\n\n timeout = setTimeout(() => {\n promiseCache = null;\n }, wait);\n\n return promiseCache;\n };\n};\n\nexport class Component extends GridDependency {\n private _debouncedGetLookupValue = debounce(this._getLookupValue.bind(this), 50);\n private static _lookupSavedQueriesCache = new Map<string, Promise<ComponentFramework.WebApi.Entity>>;\n\n public async getControlProps(props: IControlProps): Promise<IControl<any, any, any, any>> {\n const { column, onNotifyOutputChanged, record} = { ...props };\n const value = this._getComponentValue(column, record.getValue(column.name));\n const formattedValue = record.getFormattedValue(column.name);\n const validation = record.getColumnInfo(column.name);\n const onOverrideControlProps = (props: IControl<any, any, any, any>) => props;\n const attributeName = Attribute.GetNameFromAlias(column.name);\n switch (column.dataType) {\n case DataType.LOOKUP_SIMPLE:\n case DataType.LOOKUP_OWNER:\n case DataType.LOOKUP_CUSTOMER: {\n const columnMetadata = column.metadata\n const targets = columnMetadata?.Targets ?? [];\n //@ts-ignore - typings\n if (column.dataType === DataType.LOOKUP_OWNER && window.TALXIS.Portal) {\n targets.push('systemuser', 'team')\n }\n let displayName = \"\";\n if(targets.length === 1) {\n displayName = (await this._pcfContext.utils.getEntityMetadata(targets[0])).DisplayName;\n }\n const result = {\n context: this._pcfContext,\n parameters: {\n value: {\n getAllViews: async (entityName: string, __queryType: number = 64) => {\n const cacheKey = `${entityName}_${__queryType}`\n if (!Component._lookupSavedQueriesCache.get(cacheKey)) {\n Component._lookupSavedQueriesCache.set(cacheKey, new Promise(async (resolve) => {\n const response = await this._pcfContext.webAPI.retrieveMultipleRecords('savedquery', `?$filter=returnedtypecode eq '${entityName}' and querytype eq ${__queryType} and isdefault eq true&$select=name,savedqueryid,fetchxml`);\n resolve(response.entities[0])\n }))\n }\n const result = await Component._lookupSavedQueriesCache.get(cacheKey)!;\n return [\n {\n isDefault: true,\n viewName: result.name,\n viewId: result.savedqueryid,\n fetchXml: result.fetchxml\n }\n ]\n },\n raw: await this._debouncedGetLookupValue(targets, value),\n attributes: {\n Targets: targets,\n DisplayName: displayName\n },\n error: validation?.error === false,\n errorMessage: validation?.errorMessage ?? \"\",\n }\n },\n onNotifyOutputChanged: (outputs) => onNotifyOutputChanged(outputs.value)\n\n } as ILookup;\n return onOverrideControlProps(result);\n }\n case DataType.TWO_OPTIONS: {\n const twoOptionsValue = value as boolean | undefined | null;\n const options = column.metadata?.OptionSet ?? [];\n return onOverrideControlProps({\n context: this._pcfContext,\n parameters: {\n value: {\n raw: twoOptionsValue === true ? true : false,\n error: validation?.error === false,\n errorMessage: validation?.errorMessage ?? \"\",\n attributes: {\n Options: options\n }\n }\n },\n onNotifyOutputChanged: (outputs) => onNotifyOutputChanged(outputs.value)\n } as ITwoOptions)\n }\n case DataType.OPTIONSET: {\n const optionSetValue = value as number | null | undefined;\n const options = column.metadata?.OptionSet ?? [];\n return onOverrideControlProps({\n context: this._pcfContext,\n parameters: {\n value: {\n raw: optionSetValue ?? null,\n error: validation?.error === false,\n errorMessage: validation?.errorMessage ?? \"\",\n attributes: {\n Options: options\n }\n },\n },\n onNotifyOutputChanged: (outputs) => onNotifyOutputChanged(outputs.value)\n } as IOptionSet);\n }\n case DataType.MULTI_SELECT_OPTIONSET: {\n const options = column.metadata?.OptionSet ?? [];\n const optionSetValue = value as number[] | null | undefined;\n return onOverrideControlProps({\n context: this._pcfContext,\n parameters: {\n value: {\n raw: optionSetValue ?? null,\n error: validation?.error === false,\n errorMessage: validation?.errorMessage ?? \"\",\n attributes: {\n Options: options\n }\n }\n },\n onNotifyOutputChanged: (outputs) => onNotifyOutputChanged(outputs.value)\n } as IMultiSelectOptionSet);\n }\n case DataType.DATE_AND_TIME_DATE_AND_TIME:\n case DataType.DATE_AND_TIME_DATE_ONLY: {\n const dateTimeValue = value as Date | null | undefined;\n const metadata = column.metadata;\n const date = dayjs(dateTimeValue);\n return onOverrideControlProps({\n context: this._pcfContext,\n parameters: {\n value: {\n raw: date.isValid() ? date.toDate() : dateTimeValue,\n error: validation?.error === false,\n errorMessage: validation?.errorMessage ?? \"\",\n attributes: {\n Behavior: metadata?.Behavior,\n Format: column.dataType\n }\n }\n },\n onNotifyOutputChanged: (outputs) => onNotifyOutputChanged(outputs.value)\n \n } as IDateTime);\n }\n case DataType.WHOLE_NONE:\n case DataType.DECIMAL:\n case DataType.CURRENCY:\n case DataType.WHOLE_DURATION: {\n const decimalValue = value as number | null | undefined\n const metadata = column.metadata\n const precision = metadata?.Precision;\n return onOverrideControlProps({\n context: this._pcfContext,\n parameters: {\n value: {\n raw: decimalValue ?? null,\n error: validation?.error === false,\n //formatted value is only used for currency => there is no way to get the currency symbol so the formatCurrency method is useless\n formatted: formattedValue,\n errorMessage: validation?.errorMessage ?? \"\",\n type: column.dataType,\n attributes: {\n Precision: precision\n }\n },\n NotifyOutputChangedOnUnmount: {\n //duration is ComboBox => no need to do this\n raw: column.dataType !== DataType.WHOLE_DURATION,\n }\n },\n onNotifyOutputChanged: (outputs) => onNotifyOutputChanged(outputs.value)\n\n } as IDecimal);\n }\n default: {\n return onOverrideControlProps({\n context: this._pcfContext,\n parameters: {\n isResizable: {\n raw: false\n },\n NotifyOutputChangedOnUnmount: {\n raw: true,\n },\n value: {\n raw: value,\n type: column.dataType,\n error: validation?.error === false,\n errorMessage: validation?.errorMessage ?? \"\"\n }\n },\n onNotifyOutputChanged: (outputs) => onNotifyOutputChanged(outputs.value)\n } as ITextField);\n }\n }\n }\n private async _getLookupValue(targets: string[], value: ComponentFramework.LookupValue[] | null | undefined): Promise<ComponentFramework.LookupValue[]> {\n if (!value || value.length === 0) {\n return [];\n }\n //this is case from filters where we only have the id to work it => we need to go through targets and search for the records\n if (!value[0].entityType) {\n for (const lookup of value) {\n for (const target of targets) {\n try {\n const lookupEntityMetadata = await this._pcfContext.utils.getEntityMetadata(target, []);\n const response = await this._pcfContext.webAPI.retrieveRecord(target, lookup.id, `?$select=${lookupEntityMetadata.PrimaryNameAttribute}`);\n lookup.entityType = target;\n lookup.name = response[lookupEntityMetadata.PrimaryNameAttribute];\n break;\n }\n catch (err) {\n continue;\n }\n }\n }\n }\n return value;\n }\n\n\n //map because getValue API does not return values 1:1 to PCF bindings\n private _getComponentValue(column: IGridColumn, value: any) {\n switch(column.dataType) {\n //getValue always returns string for TwoOptions\n case DataType.TWO_OPTIONS: {\n value = value == '1' ? true : false\n break;\n }\n //getValue always returns string for OptionSet\n case DataType.OPTIONSET: {\n value = value ? parseInt(value) : null;\n break;\n }\n case DataType.MULTI_SELECT_OPTIONSET: {\n value = value ? value.split(',').map((x: string) => parseInt(x)) : null;\n break;\n }\n case DataType.LOOKUP_SIMPLE:\n case DataType.LOOKUP_CUSTOMER:\n case DataType.LOOKUP_OWNER: {\n //our implementation returns array, Power Apps returns object\n if(value && !Array.isArray(value)) {\n value = [value];\n }\n value = value?.map((x: ComponentFramework.EntityReference) => Sanitizer.Lookup.getLookupValue(x))\n break;\n }\n }\n return value;\n }\n}"],"names":[],"mappings":"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"}
|
|
@@ -151,7 +151,7 @@ class Condition extends GridDependency {
|
|
|
151
151
|
memoryProvider.setMetadata({
|
|
152
152
|
PrimaryIdAttribute: 'id'
|
|
153
153
|
});
|
|
154
|
-
const record = memoryProvider.
|
|
154
|
+
const record = memoryProvider.refreshSync()[0];
|
|
155
155
|
record.expressions?.setRequiredLevelExpression(this._column.name, () => 'required');
|
|
156
156
|
return !record.getColumnInfo(this._column.name).error;
|
|
157
157
|
}
|