@talxis/base-controls 1.2407.2 → 1.2408.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/DateTime/DateTime.js +133 -1
- package/dist/components/DateTime/DateTime.js.map +1 -0
- package/dist/components/DateTime/components/Calendar.d.ts +1 -1
- package/dist/components/DateTime/components/Calendar.js +63 -1
- package/dist/components/DateTime/components/Calendar.js.map +1 -0
- package/dist/components/DateTime/hooks/useDateTime.js +137 -1
- package/dist/components/DateTime/hooks/useDateTime.js.map +1 -0
- package/dist/components/DateTime/index.js +3 -1
- package/dist/components/DateTime/index.js.map +1 -0
- package/dist/components/DateTime/interfaces.d.ts +11 -1
- package/dist/components/DateTime/styles.js +37 -1
- package/dist/components/DateTime/styles.js.map +1 -0
- package/dist/components/DateTime/translations.js +23 -1
- package/dist/components/DateTime/translations.js.map +1 -0
- package/dist/components/Decimal/Decimal.js +200 -1
- package/dist/components/Decimal/Decimal.js.map +1 -0
- package/dist/components/Decimal/components/ArrowButtons.js +38 -1
- package/dist/components/Decimal/components/ArrowButtons.js.map +1 -0
- package/dist/components/Decimal/components/styles.js +26 -1
- package/dist/components/Decimal/components/styles.js.map +1 -0
- package/dist/components/Decimal/index.js +2 -1
- package/dist/components/Decimal/index.js.map +1 -0
- package/dist/components/Decimal/interfaces.d.ts +1 -1
- package/dist/components/Duration/Duration.js +132 -1
- package/dist/components/Duration/Duration.js.map +1 -0
- package/dist/components/Duration/durationOptions.d.ts +2 -0
- package/dist/components/Duration/durationOptions.js +27 -0
- package/dist/components/Duration/durationOptions.js.map +1 -0
- package/dist/components/Duration/index.js +2 -1
- package/dist/components/Duration/index.js.map +1 -0
- package/dist/components/Duration/translations.js +31 -1
- package/dist/components/Duration/translations.js.map +1 -0
- package/dist/components/Grid/Grid.js +30 -1
- package/dist/components/Grid/Grid.js.map +1 -0
- package/dist/components/Grid/GridContext.js +6 -1
- package/dist/components/Grid/GridContext.js.map +1 -0
- package/dist/components/Grid/constants.js +4 -1
- package/dist/components/Grid/constants.js.map +1 -0
- package/dist/components/Grid/core/components/AgGrid/AgGrid.js +85 -1
- package/dist/components/Grid/core/components/AgGrid/AgGrid.js.map +1 -0
- package/dist/components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/EmptyRecords.js +12 -1
- package/dist/components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/EmptyRecords.js.map +1 -0
- package/dist/components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/styles.js +23 -1
- package/dist/components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/styles.js.map +1 -0
- package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/LoadingOverlay.js +11 -1
- package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/LoadingOverlay.js.map +1 -0
- package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/styles.js +82 -1
- package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/styles.js.map +1 -0
- package/dist/components/Grid/core/components/AgGrid/controllers/useAgGridController.js +169 -1
- package/dist/components/Grid/core/components/AgGrid/controllers/useAgGridController.js.map +1 -0
- package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js +116 -1
- package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js.map +1 -0
- package/dist/components/Grid/core/components/AgGrid/styles.js +91 -1
- package/dist/components/Grid/core/components/AgGrid/styles.js.map +1 -0
- package/dist/components/Grid/core/components/Cell/Commands/Commands.js +29 -1
- package/dist/components/Grid/core/components/Cell/Commands/Commands.js.map +1 -0
- package/dist/components/Grid/core/components/Cell/Commands/Icon.js +14 -1
- package/dist/components/Grid/core/components/Cell/Commands/Icon.js.map +1 -0
- package/dist/components/Grid/core/components/Cell/Commands/styles.js +54 -1
- package/dist/components/Grid/core/components/Cell/Commands/styles.js.map +1 -0
- package/dist/components/Grid/core/components/Cell/Commands/useCommands.js +52 -1
- package/dist/components/Grid/core/components/Cell/Commands/useCommands.js.map +1 -0
- package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.js +148 -1
- package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.js.map +1 -0
- package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.js +139 -1
- package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.js.map +1 -0
- package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.js +49 -1
- package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.js.map +1 -0
- package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/styles.js +27 -1
- package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/styles.js.map +1 -0
- package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.js +58 -1
- package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.js.map +1 -0
- package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.js +60 -1
- package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.js.map +1 -0
- package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.js +26 -1
- package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.js.map +1 -0
- package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/styles.js +19 -1
- package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/styles.js.map +1 -0
- package/dist/components/Grid/core/components/ColumnHeader/styles.js +44 -1
- package/dist/components/Grid/core/components/ColumnHeader/styles.js.map +1 -0
- package/dist/components/Grid/core/components/Component/Component.js +53 -1
- package/dist/components/Grid/core/components/Component/Component.js.map +1 -0
- package/dist/components/Grid/core/components/Component/controller/useComponentController.js +31 -1
- package/dist/components/Grid/core/components/Component/controller/useComponentController.js.map +1 -0
- package/dist/components/Grid/core/components/Component/model/Component.js +225 -1
- package/dist/components/Grid/core/components/Component/model/Component.js.map +1 -0
- package/dist/components/Grid/core/components/Dialog/Constants.js +9 -1
- package/dist/components/Grid/core/components/Dialog/Constants.js.map +1 -0
- package/dist/components/Grid/core/components/Dialog/Styles.js +61 -1
- package/dist/components/Grid/core/components/Dialog/Styles.js.map +1 -0
- package/dist/components/Grid/core/components/Dialog/index.js +16 -1
- package/dist/components/Grid/core/components/Dialog/index.js.map +1 -0
- package/dist/components/Grid/core/components/Dialog/interfaces/index.js +1 -0
- package/dist/components/Grid/core/components/Dialog/interfaces/index.js.map +1 -0
- package/dist/components/Grid/core/components/Save/Save.js +47 -1
- package/dist/components/Grid/core/components/Save/Save.js.map +1 -0
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.js +39 -1
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.js.map +1 -0
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/RecordGrids.js +136 -1
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/RecordGrids.js.map +1 -0
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/styles.js +54 -1
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/styles.js.map +1 -0
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/styles.js +37 -1
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/styles.js.map +1 -0
- package/dist/components/Grid/core/components/Save/hooks/useSave.js +45 -1
- package/dist/components/Grid/core/components/Save/hooks/useSave.js.map +1 -0
- package/dist/components/Grid/core/components/Save/styles.js +44 -1
- package/dist/components/Grid/core/components/Save/styles.js.map +1 -0
- package/dist/components/Grid/core/controllers/useGridController.js +39 -1
- package/dist/components/Grid/core/controllers/useGridController.js.map +1 -0
- package/dist/components/Grid/core/enums/ConditionOperator.js +50 -1
- package/dist/components/Grid/core/enums/ConditionOperator.js.map +1 -0
- package/dist/components/Grid/core/enums/DataType.js +30 -1
- package/dist/components/Grid/core/enums/DataType.js.map +1 -0
- package/dist/components/Grid/core/hooks/useGridInstance.js +9 -1
- package/dist/components/Grid/core/hooks/useGridInstance.js.map +1 -0
- package/dist/components/Grid/core/hooks/useRefreshCallback.js +20 -1
- package/dist/components/Grid/core/hooks/useRefreshCallback.js.map +1 -0
- package/dist/components/Grid/core/hooks/useRerender.js +13 -1
- package/dist/components/Grid/core/hooks/useRerender.js.map +1 -0
- package/dist/components/Grid/core/model/Grid.js +249 -1
- package/dist/components/Grid/core/model/Grid.js.map +1 -0
- package/dist/components/Grid/core/model/GridDependency.js +28 -1
- package/dist/components/Grid/core/model/GridDependency.js.map +1 -0
- package/dist/components/Grid/core/model/Metadata.js +22 -1
- package/dist/components/Grid/core/model/Metadata.js.map +1 -0
- package/dist/components/Grid/core/services/RecordUpdateService/controllers/useRecordUpdateServiceController.js +25 -1
- package/dist/components/Grid/core/services/RecordUpdateService/controllers/useRecordUpdateServiceController.js.map +1 -0
- package/dist/components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.js +190 -1
- package/dist/components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.js.map +1 -0
- package/dist/components/Grid/filtering/components/FilterCallout/FilterCallout.js +50 -1
- package/dist/components/Grid/filtering/components/FilterCallout/FilterCallout.js.map +1 -0
- package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionOperator/ConditionOperator.js +58 -1
- package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionOperator/ConditionOperator.js.map +1 -0
- package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.js +52 -1
- package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.js.map +1 -0
- package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.js +125 -1
- package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.js.map +1 -0
- package/dist/components/Grid/filtering/components/FilterCallout/styles.js +40 -1
- package/dist/components/Grid/filtering/components/FilterCallout/styles.js.map +1 -0
- package/dist/components/Grid/filtering/constants.js +51 -1
- package/dist/components/Grid/filtering/constants.js.map +1 -0
- package/dist/components/Grid/filtering/controller/useColumnFilterConditionController.js +42 -1
- package/dist/components/Grid/filtering/controller/useColumnFilterConditionController.js.map +1 -0
- package/dist/components/Grid/filtering/model/Condition.js +297 -1
- package/dist/components/Grid/filtering/model/Condition.js.map +1 -0
- package/dist/components/Grid/filtering/model/Filtering.js +78 -1
- package/dist/components/Grid/filtering/model/Filtering.js.map +1 -0
- package/dist/components/Grid/filtering/utils/FilteringUtilts.js +195 -1
- package/dist/components/Grid/filtering/utils/FilteringUtilts.js.map +1 -0
- package/dist/components/Grid/index.js +2 -1
- package/dist/components/Grid/index.js.map +1 -0
- package/dist/components/Grid/paging/components/Paging/Paging.js +63 -1
- package/dist/components/Grid/paging/components/Paging/Paging.js.map +1 -0
- package/dist/components/Grid/paging/components/Paging/styles.js +41 -1
- package/dist/components/Grid/paging/components/Paging/styles.js.map +1 -0
- package/dist/components/Grid/paging/controllers/usePagingController.js +23 -1
- package/dist/components/Grid/paging/controllers/usePagingController.js.map +1 -0
- package/dist/components/Grid/paging/model/Paging.js +56 -1
- package/dist/components/Grid/paging/model/Paging.js.map +1 -0
- package/dist/components/Grid/selection/controllers/useSelectionController.js +17 -1
- package/dist/components/Grid/selection/controllers/useSelectionController.js.map +1 -0
- package/dist/components/Grid/selection/model/Selection.js +69 -1
- package/dist/components/Grid/selection/model/Selection.js.map +1 -0
- package/dist/components/Grid/sorting/Sorting.js +33 -1
- package/dist/components/Grid/sorting/Sorting.js.map +1 -0
- package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js +120 -1
- package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js.map +1 -0
- package/dist/components/Grid/sorting/components/SortingContextualMenu/styles.js +15 -1
- package/dist/components/Grid/sorting/components/SortingContextualMenu/styles.js.map +1 -0
- package/dist/components/Grid/sorting/controllers/useColumnSortingController.js +21 -1
- package/dist/components/Grid/sorting/controllers/useColumnSortingController.js.map +1 -0
- package/dist/components/Grid/translations.js +81 -1
- package/dist/components/Grid/translations.js.map +1 -0
- package/dist/components/Grid/validation/controllers/useRecordValidationController.js +25 -1
- package/dist/components/Grid/validation/controllers/useRecordValidationController.js.map +1 -0
- package/dist/components/Grid/validation/model/ColumnValidation.js +84 -1
- package/dist/components/Grid/validation/model/ColumnValidation.js.map +1 -0
- package/dist/components/Lookup/Lookup.js +201 -1
- package/dist/components/Lookup/Lookup.js.map +1 -0
- package/dist/components/Lookup/components/RecordCreator.js +37 -1
- package/dist/components/Lookup/components/RecordCreator.js.map +1 -0
- package/dist/components/Lookup/components/TargetSelector.js +19 -1
- package/dist/components/Lookup/components/TargetSelector.js.map +1 -0
- package/dist/components/Lookup/hooks/useFetchXml.js +27 -1
- package/dist/components/Lookup/hooks/useFetchXml.js.map +1 -0
- package/dist/components/Lookup/hooks/useLoadedEntities.js +20 -1
- package/dist/components/Lookup/hooks/useLoadedEntities.js.map +1 -0
- package/dist/components/Lookup/hooks/useLookup.js +111 -1
- package/dist/components/Lookup/hooks/useLookup.js.map +1 -0
- package/dist/components/Lookup/index.js +3 -1
- package/dist/components/Lookup/index.js.map +1 -0
- package/dist/components/Lookup/styles.js +98 -1
- package/dist/components/Lookup/styles.js.map +1 -0
- package/dist/components/Lookup/translations.js +33 -1
- package/dist/components/Lookup/translations.js.map +1 -0
- package/dist/components/MultiSelectOptionSet/MultiSelectOptionSet.js +74 -1
- package/dist/components/MultiSelectOptionSet/MultiSelectOptionSet.js.map +1 -0
- package/dist/components/MultiSelectOptionSet/index.js +2 -1
- package/dist/components/MultiSelectOptionSet/index.js.map +1 -0
- package/dist/components/OptionSet/OptionSet.js +61 -1
- package/dist/components/OptionSet/OptionSet.js.map +1 -0
- package/dist/components/OptionSet/index.js +2 -1
- package/dist/components/OptionSet/index.js.map +1 -0
- package/dist/components/TextField/TextField.js +113 -1
- package/dist/components/TextField/TextField.js.map +1 -0
- package/dist/components/TextField/index.js +2 -1
- package/dist/components/TextField/index.js.map +1 -0
- package/dist/components/TwoOptions/TwoOptions.js +36 -1
- package/dist/components/TwoOptions/TwoOptions.js.map +1 -0
- package/dist/components/TwoOptions/index.js +2 -1
- package/dist/components/TwoOptions/index.js.map +1 -0
- package/dist/constants.js +35 -1
- package/dist/constants.js.map +1 -0
- package/dist/hooks/index.js +7 -1
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useControl.js +95 -1
- package/dist/hooks/useControl.js.map +1 -0
- package/dist/hooks/useControlSizing.js +15 -1
- package/dist/hooks/useControlSizing.js.map +1 -0
- package/dist/hooks/useControlTheme.js +9 -1
- package/dist/hooks/useControlTheme.js.map +1 -0
- package/dist/hooks/useFocusIn.js +33 -1
- package/dist/hooks/useFocusIn.js.map +1 -0
- package/dist/hooks/useInputBasedControl.js +38 -1
- package/dist/hooks/useInputBasedControl.js.map +1 -0
- package/dist/hooks/useMouseOver.js +23 -1
- package/dist/hooks/useMouseOver.js.map +1 -0
- package/dist/index.d.ts +11 -1
- package/dist/index.js +19 -1
- package/dist/index.js.map +1 -0
- package/dist/interfaces/index.js +1 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/utils/Numeral.js +64 -1
- package/dist/utils/Numeral.js.map +1 -0
- package/dist/utils/Theme.js +72 -1
- package/dist/utils/Theme.js.map +1 -0
- package/dist/utils/index.js +3 -1
- package/dist/utils/index.js.map +1 -0
- package/package.json +4 -2
- package/dist/Grid-574c3822.js +0 -1
- package/dist/components/DateTime/interfaces.js +0 -1
- package/dist/components/Decimal/interfaces.js +0 -1
- package/dist/components/Duration/interfaces.js +0 -1
- package/dist/components/Grid/core/interfaces/IGridColumn.js +0 -1
- package/dist/components/Grid/core/interfaces/IGridContext.js +0 -1
- package/dist/components/Grid/interfaces.js +0 -1
- package/dist/components/Lookup/interfaces.js +0 -1
- package/dist/components/MultiSelectOptionSet/interfaces.js +0 -1
- package/dist/components/OptionSet/interfaces.js +0 -1
- package/dist/components/TextField/interfaces.js +0 -1
- package/dist/components/TwoOptions/interfaces.js +0 -1
- package/dist/interfaces/context.js +0 -1
- package/dist/interfaces/parameters.js +0 -1
- package/dist/interfaces/property.js +0 -1
- package/dist/interfaces/theme.js +0 -1
|
@@ -1 +1,30 @@
|
|
|
1
|
-
var
|
|
1
|
+
var DataType;
|
|
2
|
+
(function (DataType) {
|
|
3
|
+
DataType["SINGLE_LINE_TEXT"] = "SingleLine.Text";
|
|
4
|
+
DataType["SINGLE_LINE_TEXT_AREA"] = "SingleLine.TextArea";
|
|
5
|
+
DataType["SINGLE_LINE_EMAIL"] = "SingleLine.Email";
|
|
6
|
+
DataType["SINGLE_LINE_PHONE"] = "SingleLine.Phone";
|
|
7
|
+
DataType["SINGLE_LINE_URL"] = "SingleLine.URL";
|
|
8
|
+
DataType["MULTIPLE"] = "Multiple";
|
|
9
|
+
DataType["WHOLE_NONE"] = "Whole.None";
|
|
10
|
+
DataType["DECIMAL"] = "Decimal";
|
|
11
|
+
DataType["FP"] = "FP";
|
|
12
|
+
DataType["DATE_AND_TIME_DATE_AND_TIME"] = "DateAndTime.DateAndTime";
|
|
13
|
+
DataType["DATE_AND_TIME_DATE_ONLY"] = "DateAndTime.DateOnly";
|
|
14
|
+
DataType["CURRENCY"] = "Currency";
|
|
15
|
+
DataType["OPTIONSET"] = "OptionSet";
|
|
16
|
+
DataType["MULTI_SELECT_OPTIONSET"] = "MultiSelectPicklist";
|
|
17
|
+
DataType["TWO_OPTIONS"] = "TwoOptions";
|
|
18
|
+
DataType["LOOKUP_SIMPLE"] = "Lookup.Simple";
|
|
19
|
+
DataType["LOOKUP_OWNER"] = "Lookup.Owner";
|
|
20
|
+
DataType["LOOKUP_CUSTOMER"] = "Lookup.Customer";
|
|
21
|
+
// Not supported in pcf dataset - https://learn.microsoft.com/en-us/power-apps/developer/component-framework/manifest-schema-reference/property-set#value-elements-that-are-not-supported
|
|
22
|
+
DataType["WHOLE_LANGUAGE"] = "Whole.Language";
|
|
23
|
+
DataType["WHOLE_DURATION"] = "Whole.Duration";
|
|
24
|
+
DataType["WHOLE_TIMEZONE"] = "Whole.TimeZone";
|
|
25
|
+
DataType["FILE"] = "File";
|
|
26
|
+
DataType["IMAGE"] = "Image";
|
|
27
|
+
})(DataType || (DataType = {}));
|
|
28
|
+
|
|
29
|
+
export { DataType };
|
|
30
|
+
//# sourceMappingURL=DataType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataType.js","sources":["../../../../../src/components/Grid/core/enums/DataType.ts"],"sourcesContent":["export enum DataType {\n SINGLE_LINE_TEXT = 'SingleLine.Text',\n SINGLE_LINE_TEXT_AREA = 'SingleLine.TextArea',\n SINGLE_LINE_EMAIL = 'SingleLine.Email',\n SINGLE_LINE_PHONE = 'SingleLine.Phone',\n SINGLE_LINE_URL = 'SingleLine.URL',\n MULTIPLE = 'Multiple',\n WHOLE_NONE = 'Whole.None',\n DECIMAL = 'Decimal',\n FP = 'FP',\n DATE_AND_TIME_DATE_AND_TIME = 'DateAndTime.DateAndTime',\n DATE_AND_TIME_DATE_ONLY = 'DateAndTime.DateOnly',\n CURRENCY = 'Currency',\n OPTIONSET = 'OptionSet',\n MULTI_SELECT_OPTIONSET = 'MultiSelectPicklist',\n TWO_OPTIONS = 'TwoOptions',\n LOOKUP_SIMPLE = 'Lookup.Simple',\n LOOKUP_OWNER = 'Lookup.Owner',\n LOOKUP_CUSTOMER = 'Lookup.Customer',\n // Not supported in pcf dataset - https://learn.microsoft.com/en-us/power-apps/developer/component-framework/manifest-schema-reference/property-set#value-elements-that-are-not-supported\n WHOLE_LANGUAGE = 'Whole.Language',\n WHOLE_DURATION = 'Whole.Duration',\n WHOLE_TIMEZONE = 'Whole.TimeZone',\n FILE = 'File',\n IMAGE = 'Image',\n }"],"names":[],"mappings":"IAAY,SAyBT;AAzBH,CAAA,UAAY,QAAQ,EAAA;AAChB,IAAA,QAAA,CAAA,kBAAA,CAAA,GAAA,iBAAoC,CAAA;AACpC,IAAA,QAAA,CAAA,uBAAA,CAAA,GAAA,qBAA6C,CAAA;AAC7C,IAAA,QAAA,CAAA,mBAAA,CAAA,GAAA,kBAAsC,CAAA;AACtC,IAAA,QAAA,CAAA,mBAAA,CAAA,GAAA,kBAAsC,CAAA;AACtC,IAAA,QAAA,CAAA,iBAAA,CAAA,GAAA,gBAAkC,CAAA;AAClC,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,QAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,QAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,QAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,QAAA,CAAA,6BAAA,CAAA,GAAA,yBAAuD,CAAA;AACvD,IAAA,QAAA,CAAA,yBAAA,CAAA,GAAA,sBAAgD,CAAA;AAChD,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,QAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,QAAA,CAAA,wBAAA,CAAA,GAAA,qBAA8C,CAAA;AAC9C,IAAA,QAAA,CAAA,aAAA,CAAA,GAAA,YAA0B,CAAA;AAC1B,IAAA,QAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/B,IAAA,QAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,QAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;;AAEnC,IAAA,QAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACjC,IAAA,QAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACjC,IAAA,QAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACjC,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,QAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EAzBS,QAAQ,KAAR,QAAQ,GAyBjB,EAAA,CAAA,CAAA;;;;"}
|
|
@@ -1 +1,9 @@
|
|
|
1
|
-
import{useContext
|
|
1
|
+
import { useContext } from 'react';
|
|
2
|
+
import { GridContext } from '../../GridContext.js';
|
|
3
|
+
|
|
4
|
+
const useGridInstance = () => {
|
|
5
|
+
return useContext(GridContext).gridInstance;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
export { useGridInstance };
|
|
9
|
+
//# sourceMappingURL=useGridInstance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useGridInstance.js","sources":["../../../../../src/components/Grid/core/hooks/useGridInstance.ts"],"sourcesContent":["import { useContext } from \"react\"\nimport { GridContext } from \"../../GridContext\";\nimport { Grid } from \"../model/Grid\";\n\nexport const useGridInstance = (): Grid => {\n return useContext(GridContext).gridInstance;\n}"],"names":[],"mappings":";;;AAIO,MAAM,eAAe,GAAG,MAAW;AACtC,IAAA,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC;AAChD;;;;"}
|
|
@@ -1 +1,20 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import { useMemo, useEffect } from 'react';
|
|
2
|
+
|
|
3
|
+
const useRefreshCallback = (model, refreshCallback) => {
|
|
4
|
+
const id = useMemo(() => crypto.randomUUID(), []);
|
|
5
|
+
useEffect(() => {
|
|
6
|
+
(async () => {
|
|
7
|
+
const _model = await model;
|
|
8
|
+
_model.addRefreshCallback(id, refreshCallback);
|
|
9
|
+
})();
|
|
10
|
+
return () => {
|
|
11
|
+
(async () => {
|
|
12
|
+
const _model = await model;
|
|
13
|
+
_model.removeRefreshCallback(id);
|
|
14
|
+
})();
|
|
15
|
+
};
|
|
16
|
+
}, []);
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export { useRefreshCallback };
|
|
20
|
+
//# sourceMappingURL=useRefreshCallback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRefreshCallback.js","sources":["../../../../../src/components/Grid/core/hooks/useRefreshCallback.ts"],"sourcesContent":["import { useEffect, useMemo } from \"react\";\nimport { GridDependency } from \"../model/GridDependency\";\n\nexport const useRefreshCallback = (model: GridDependency | Promise<GridDependency>, refreshCallback: () => any) => {\n const id = useMemo(() => crypto.randomUUID(), [])\n useEffect(() => {\n (async () => {\n const _model = await model;\n _model.addRefreshCallback(id, refreshCallback);\n })();\n return () => {\n (async () => {\n const _model = await model;\n _model.removeRefreshCallback(id);\n \n })();\n }\n }, []);\n};"],"names":[],"mappings":";;MAGa,kBAAkB,GAAG,CAAC,KAA+C,EAAE,eAA0B,KAAI;AAC9G,IAAA,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,MAAM,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,CAAA;IACjD,SAAS,CAAC,MAAK;QACX,CAAC,YAAW;AACR,YAAA,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC;AAC3B,YAAA,MAAM,CAAC,kBAAkB,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;SAClD,GAAG,CAAC;AACL,QAAA,OAAO,MAAK;YACR,CAAC,YAAW;AACR,gBAAA,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC;AAC3B,gBAAA,MAAM,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;aAEpC,GAAG,CAAC;AACT,SAAC,CAAA;KACJ,EAAE,EAAE,CAAC,CAAC;AACX;;;;"}
|
|
@@ -1 +1,13 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import { useState } from 'react';
|
|
2
|
+
|
|
3
|
+
const useRerender = () => {
|
|
4
|
+
const [rerender, setRerender] = useState(0);
|
|
5
|
+
const renderDecorator = async (fn) => {
|
|
6
|
+
await fn?.();
|
|
7
|
+
setRerender(c => c + 1);
|
|
8
|
+
};
|
|
9
|
+
return [rerender, renderDecorator];
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export { useRerender };
|
|
13
|
+
//# sourceMappingURL=useRerender.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRerender.js","sources":["../../../../../src/components/Grid/core/hooks/useRerender.ts"],"sourcesContent":["import { useEffect, useState } from \"react\"\n\nexport const useRerender = (): [\n number,\n (fn?: () => any | Promise<any>) => void\n] => {\n const [rerender, setRerender] = useState<number>(0);\n\n const renderDecorator = async (fn?: () => any | Promise<any>) => {\n await fn?.();\n setRerender(c => c + 1);\n }\n\n return [rerender, renderDecorator];\n}"],"names":[],"mappings":";;AAEO,MAAM,WAAW,GAAG,MAGvB;IACA,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAS,CAAC,CAAC,CAAC;AAEpD,IAAA,MAAM,eAAe,GAAG,OAAO,EAA6B,KAAI;QAC5D,MAAM,EAAE,IAAI,CAAC;QACb,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5B,KAAC,CAAA;AAED,IAAA,OAAO,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;AACvC;;;;"}
|
|
@@ -1 +1,249 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import { RIBBON_COLUMN_KEY } from '../../constants.js';
|
|
2
|
+
import { Filtering } from '../../filtering/model/Filtering.js';
|
|
3
|
+
import { Paging } from '../../paging/model/Paging.js';
|
|
4
|
+
import { Selection } from '../../selection/model/Selection.js';
|
|
5
|
+
import { Sorting } from '../../sorting/Sorting.js';
|
|
6
|
+
import { DataType } from '../enums/DataType.js';
|
|
7
|
+
import { RecordUpdateService } from '../services/RecordUpdateService/model/RecordUpdateService.js';
|
|
8
|
+
import { Metadata } from './Metadata.js';
|
|
9
|
+
|
|
10
|
+
class Grid {
|
|
11
|
+
constructor(props, labels) {
|
|
12
|
+
this._columns = [];
|
|
13
|
+
this._records = [];
|
|
14
|
+
this._shouldRerender = false;
|
|
15
|
+
this._props = props;
|
|
16
|
+
this._dataset = props.parameters.Grid;
|
|
17
|
+
this._pcfContext = props.context;
|
|
18
|
+
this._labels = labels;
|
|
19
|
+
this._dependencies = {
|
|
20
|
+
recordUpdateService: new RecordUpdateService(this),
|
|
21
|
+
filtering: new Filtering(this),
|
|
22
|
+
selection: new Selection(this),
|
|
23
|
+
metadata: new Metadata(this),
|
|
24
|
+
sorting: new Sorting(this),
|
|
25
|
+
paging: new Paging(this)
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
;
|
|
29
|
+
get isNavigationEnabled() {
|
|
30
|
+
//enabled by default
|
|
31
|
+
return this.parameters.EnableNavigation?.raw !== false;
|
|
32
|
+
}
|
|
33
|
+
get isEditable() {
|
|
34
|
+
return this._columns.find(x => x.isEditable) ? true : false;
|
|
35
|
+
}
|
|
36
|
+
get parameters() {
|
|
37
|
+
return this._props.parameters;
|
|
38
|
+
}
|
|
39
|
+
get error() {
|
|
40
|
+
return this._dataset.error;
|
|
41
|
+
}
|
|
42
|
+
get errorMessage() {
|
|
43
|
+
return this._dataset.errorMessage;
|
|
44
|
+
}
|
|
45
|
+
get labels() {
|
|
46
|
+
return this._labels;
|
|
47
|
+
}
|
|
48
|
+
get dataset() {
|
|
49
|
+
return this._dataset;
|
|
50
|
+
}
|
|
51
|
+
get pcfContext() {
|
|
52
|
+
return this._pcfContext;
|
|
53
|
+
}
|
|
54
|
+
get props() {
|
|
55
|
+
return this._props;
|
|
56
|
+
}
|
|
57
|
+
get columns() {
|
|
58
|
+
return this._columns;
|
|
59
|
+
}
|
|
60
|
+
get records() {
|
|
61
|
+
return this._records;
|
|
62
|
+
}
|
|
63
|
+
get recordUpdateService() {
|
|
64
|
+
return this._dependencies.recordUpdateService;
|
|
65
|
+
}
|
|
66
|
+
get sorting() {
|
|
67
|
+
return this._dependencies.sorting;
|
|
68
|
+
}
|
|
69
|
+
get metadata() {
|
|
70
|
+
return this._dependencies.metadata;
|
|
71
|
+
}
|
|
72
|
+
get filtering() {
|
|
73
|
+
return this._dependencies.filtering;
|
|
74
|
+
}
|
|
75
|
+
get selection() {
|
|
76
|
+
return this._dependencies.selection;
|
|
77
|
+
}
|
|
78
|
+
get paging() {
|
|
79
|
+
return this._dependencies.paging;
|
|
80
|
+
}
|
|
81
|
+
get shouldRerender() {
|
|
82
|
+
return this._shouldRerender;
|
|
83
|
+
}
|
|
84
|
+
get loading() {
|
|
85
|
+
return this._dataset.loading;
|
|
86
|
+
}
|
|
87
|
+
get state() {
|
|
88
|
+
return this._props.state;
|
|
89
|
+
}
|
|
90
|
+
get useContainerAsHeight() {
|
|
91
|
+
return this.parameters.UseContainerAsHeight?.raw === true;
|
|
92
|
+
}
|
|
93
|
+
get enableOptionSetColors() {
|
|
94
|
+
return this.parameters.EnableOptionSetColors?.raw === true;
|
|
95
|
+
}
|
|
96
|
+
get linking() {
|
|
97
|
+
return this.dataset.linking;
|
|
98
|
+
}
|
|
99
|
+
get inlineRibbonButtonIds() {
|
|
100
|
+
const idString = this.parameters.InlineRibbonButtonIds?.raw;
|
|
101
|
+
if (!idString) {
|
|
102
|
+
return undefined;
|
|
103
|
+
}
|
|
104
|
+
return idString.split(',');
|
|
105
|
+
}
|
|
106
|
+
openDatasetItem(entityReference) {
|
|
107
|
+
this._dataset.openDatasetItem(entityReference);
|
|
108
|
+
const clickedRecord = this._records.find(x => x.getRecordId() === entityReference.id.guid);
|
|
109
|
+
//we need to make sure the item we are opening gets selected in order for the
|
|
110
|
+
//OnOpenRecord ribbon scripts to work correctly
|
|
111
|
+
//if no record found we have clicked a lookup, no selection should be happening in that case
|
|
112
|
+
if (clickedRecord) {
|
|
113
|
+
this.selection.toggle(clickedRecord, true, true, true);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
updateDependencies(props) {
|
|
117
|
+
this._props = props;
|
|
118
|
+
this._dataset = props.parameters.Grid;
|
|
119
|
+
this._pcfContext = props.context;
|
|
120
|
+
for (const [key, dependency] of Object.entries(this._dependencies)) {
|
|
121
|
+
dependency.onDependenciesUpdated();
|
|
122
|
+
}
|
|
123
|
+
this._shouldRerender = !this.shouldRerender;
|
|
124
|
+
}
|
|
125
|
+
async refreshColumns() {
|
|
126
|
+
const gridColumns = [];
|
|
127
|
+
for (const column of this._dataset.columns) {
|
|
128
|
+
const sorted = this._dataset.sorting?.find(sort => sort.name === column.name);
|
|
129
|
+
const entityAliasName = column.name?.includes('.') ? column.name.split('.')[0] : null;
|
|
130
|
+
const attributeName = entityAliasName ? column.name.split('.')[1] : column.name;
|
|
131
|
+
const key = entityAliasName ? `${entityAliasName}.${attributeName}` : attributeName;
|
|
132
|
+
switch (column.dataType) {
|
|
133
|
+
case DataType.FILE:
|
|
134
|
+
case DataType.IMAGE: {
|
|
135
|
+
if (entityAliasName) {
|
|
136
|
+
//we do not support file fields with linked entities
|
|
137
|
+
//the getValue API throws an error in Power Apps
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
const gridColumn = {
|
|
143
|
+
entityAliasName: entityAliasName,
|
|
144
|
+
attributeName: attributeName,
|
|
145
|
+
key: entityAliasName ? `${entityAliasName}.${attributeName}` : attributeName,
|
|
146
|
+
isPrimary: column.isPrimary,
|
|
147
|
+
dataType: column.dataType,
|
|
148
|
+
displayName: column.displayName,
|
|
149
|
+
isEditable: column.isEditable,
|
|
150
|
+
isFilterable: this._isColumnFilterable(column),
|
|
151
|
+
isRequired: column.isRequired,
|
|
152
|
+
isSortable: this._isColumnSortable(column),
|
|
153
|
+
isSorted: sorted ? true : false,
|
|
154
|
+
isSortedDescending: sorted?.sortDirection === 1 ? true : false,
|
|
155
|
+
width: this.state?.columnSizing?.columnSizingModel?.find((x) => x.colId === key)?.width || column.visualSizeFactor,
|
|
156
|
+
isResizable: column.isResizable ?? true,
|
|
157
|
+
};
|
|
158
|
+
const condition = await this.filtering.condition(gridColumn);
|
|
159
|
+
gridColumn.isFiltered = condition.isAppliedToDataset;
|
|
160
|
+
gridColumn.isEditable = await this._isColumnEditable(gridColumn);
|
|
161
|
+
gridColumn.isRequired = await this._isColumnRequired(gridColumn);
|
|
162
|
+
if (gridColumn.key === RIBBON_COLUMN_KEY) {
|
|
163
|
+
gridColumn.isFilterable = false;
|
|
164
|
+
gridColumn.isSortable = false;
|
|
165
|
+
}
|
|
166
|
+
gridColumns.push(gridColumn);
|
|
167
|
+
}
|
|
168
|
+
/* gridColumns.unshift({
|
|
169
|
+
key: RIBBON_COLUMN_KEY,
|
|
170
|
+
attributeName: RIBBON_COLUMN_KEY,
|
|
171
|
+
}) */
|
|
172
|
+
if (this.selection.type !== undefined) {
|
|
173
|
+
gridColumns.unshift({
|
|
174
|
+
key: '__checkbox',
|
|
175
|
+
attributeName: '__checkbox',
|
|
176
|
+
width: 45,
|
|
177
|
+
isResizable: false
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
this._columns = gridColumns;
|
|
181
|
+
return gridColumns;
|
|
182
|
+
}
|
|
183
|
+
refreshRecords() {
|
|
184
|
+
const records = [];
|
|
185
|
+
for (const [_, record] of Object.entries(this._dataset.records)) {
|
|
186
|
+
records.push(record);
|
|
187
|
+
}
|
|
188
|
+
this._records = records;
|
|
189
|
+
return records;
|
|
190
|
+
}
|
|
191
|
+
async _isColumnEditable(column) {
|
|
192
|
+
//top priority, overriden through props
|
|
193
|
+
if (typeof column.isEditable === 'boolean') {
|
|
194
|
+
return column.isEditable;
|
|
195
|
+
}
|
|
196
|
+
//only allow editing if specifically allowed
|
|
197
|
+
if (!this._props.parameters.EnableEditing?.raw) {
|
|
198
|
+
return false;
|
|
199
|
+
}
|
|
200
|
+
//we are not supporting editing for linked entities
|
|
201
|
+
if (column.entityAliasName) {
|
|
202
|
+
return false;
|
|
203
|
+
}
|
|
204
|
+
//these field types do not support editing
|
|
205
|
+
switch (column.dataType) {
|
|
206
|
+
case DataType.FILE:
|
|
207
|
+
case DataType.IMAGE: {
|
|
208
|
+
return false;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
const metadata = await this._pcfContext.utils.getEntityMetadata(this._dataset.getTargetEntityType(), [column.attributeName]);
|
|
212
|
+
//IsEditable is not available in Power Apps
|
|
213
|
+
return metadata.Attributes.get(column.attributeName)?.attributeDescriptor.IsValidForUpdate ?? false;
|
|
214
|
+
}
|
|
215
|
+
async _isColumnRequired(column) {
|
|
216
|
+
if (typeof column.isRequired === 'boolean') {
|
|
217
|
+
return column.isRequired;
|
|
218
|
+
}
|
|
219
|
+
if (!this.parameters.EnableEditing?.raw) {
|
|
220
|
+
return false;
|
|
221
|
+
}
|
|
222
|
+
const metadata = await this.metadata.get(column);
|
|
223
|
+
const requiredLevel = metadata.Attributes.get(column.attributeName)?.attributeDescriptor.RequiredLevel;
|
|
224
|
+
if (requiredLevel === 1 || requiredLevel === 2) {
|
|
225
|
+
return true;
|
|
226
|
+
}
|
|
227
|
+
return false;
|
|
228
|
+
}
|
|
229
|
+
_isColumnSortable(column) {
|
|
230
|
+
if (this._props.parameters.EnableSorting?.raw === false) {
|
|
231
|
+
return false;
|
|
232
|
+
}
|
|
233
|
+
switch (column.dataType) {
|
|
234
|
+
case DataType.IMAGE: {
|
|
235
|
+
return false;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
return !column.disableSorting;
|
|
239
|
+
}
|
|
240
|
+
_isColumnFilterable(column) {
|
|
241
|
+
if (this.props.parameters.EnableFiltering?.raw === false) {
|
|
242
|
+
return false;
|
|
243
|
+
}
|
|
244
|
+
return column.isFilterable ?? true;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
export { Grid };
|
|
249
|
+
//# sourceMappingURL=Grid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Grid.js","sources":["../../../../../src/components/Grid/core/model/Grid.ts"],"sourcesContent":["import { IDatasetProperty } from \"../../../../interfaces\";\nimport { RIBBON_COLUMN_KEY } from \"../../constants\";\nimport { Filtering } from \"../../filtering/model/Filtering\";\nimport { IEntityColumn, IEntityRecord, 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 { IGridColumn } from \"../interfaces/IGridColumn\";\nimport { RecordUpdateService } from \"../services/RecordUpdateService/model/RecordUpdateService\";\nimport { Metadata } from \"./Metadata\";\n\nexport class Grid {\n private _props: IGrid;\n private _dataset: IDatasetProperty\n private _pcfContext: ComponentFramework.Context<any>;\n private _columns: IGridColumn[] = [];\n private _records: IEntityRecord[] = [];\n //TODO: fix\n private _labels: any;\n private _shouldRerender: boolean = false;\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 recordUpdateService: RecordUpdateService,\n filtering: Filtering,\n sorting: Sorting,\n metadata: Metadata,\n selection: Selection,\n paging: Paging\n };\n constructor(props: IGrid, labels: any) {\n this._props = props;\n this._dataset = props.parameters.Grid;\n this._pcfContext = props.context;\n this._labels = labels;\n\n this._dependencies = {\n recordUpdateService: new RecordUpdateService(this),\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\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 recordUpdateService() {\n return this._dependencies.recordUpdateService;\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 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 for (const [key, dependency] of Object.entries(this._dependencies)) {\n dependency.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 entityAliasName = column.name?.includes('.') ? column.name.split('.')[0] : null;\n const attributeName = entityAliasName ? column.name.split('.')[1] : column.name;\n const key = entityAliasName ? `${entityAliasName}.${attributeName}` : attributeName;\n switch (column.dataType) {\n case DataType.FILE:\n case DataType.IMAGE: {\n if (entityAliasName) {\n //we do not support file fields with linked entities\n //the getValue API throws an error in Power Apps\n continue;\n }\n }\n }\n const gridColumn = {\n entityAliasName: entityAliasName,\n attributeName: attributeName,\n key: entityAliasName ? `${entityAliasName}.${attributeName}` : attributeName,\n isPrimary: column.isPrimary,\n dataType: column.dataType as DataType,\n displayName: column.displayName,\n isEditable: column.isEditable,\n isFilterable: this._isColumnFilterable(column),\n isRequired: column.isRequired,\n isSortable: this._isColumnSortable(column),\n isSorted: sorted ? true : false,\n isSortedDescending: sorted?.sortDirection === 1 ? true : false,\n width: this.state?.columnSizing?.columnSizingModel?.find((x: any) => x.colId === key)?.width || column.visualSizeFactor,\n isResizable: column.isResizable ?? true,\n } as IGridColumn;\n\n const condition = await this.filtering.condition(gridColumn);\n gridColumn.isFiltered = condition.isAppliedToDataset;\n gridColumn.isEditable = await this._isColumnEditable(gridColumn);\n gridColumn.isRequired = await this._isColumnRequired(gridColumn);\n\n if (gridColumn.key === RIBBON_COLUMN_KEY) {\n gridColumn.isFilterable = false;\n gridColumn.isSortable = false;\n }\n gridColumns.push(gridColumn);\n }\n/* gridColumns.unshift({\n key: RIBBON_COLUMN_KEY,\n attributeName: RIBBON_COLUMN_KEY,\n }) */\n if (this.selection.type !== undefined) {\n gridColumns.unshift({\n key: '__checkbox',\n attributeName: '__checkbox',\n width: 45,\n isResizable: false\n })\n }\n this._columns = gridColumns;\n return gridColumns;\n }\n\n public refreshRecords(): IEntityRecord[] {\n const records = [];\n for (const [_, record] of Object.entries(this._dataset.records)) {\n records.push(record);\n }\n this._records = records;\n return records\n }\n\n private async _isColumnEditable(column: IGridColumn): Promise<boolean> {\n //top priority, overriden through props\n if (typeof column.isEditable === 'boolean') {\n return column.isEditable\n }\n //only allow editing if specifically allowed\n if (!this._props.parameters.EnableEditing?.raw) {\n return false;\n }\n //we are not supporting editing for linked entities\n if (column.entityAliasName) {\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 metadata = await this._pcfContext.utils.getEntityMetadata(this._dataset.getTargetEntityType(), [column.attributeName]);\n //IsEditable is not available in Power Apps\n return metadata.Attributes.get(column.attributeName)?.attributeDescriptor.IsValidForUpdate ?? false;\n }\n\n private async _isColumnRequired(column: IGridColumn) {\n if (typeof column.isRequired === 'boolean') {\n return column.isRequired;\n }\n if (!this.parameters.EnableEditing?.raw) {\n return false;\n }\n const metadata = await this.metadata.get(column);\n const requiredLevel = metadata.Attributes.get(column.attributeName)?.attributeDescriptor.RequiredLevel;\n if (requiredLevel === 1 || requiredLevel === 2) {\n return true;\n }\n return false;\n }\n private _isColumnSortable(column: IEntityColumn) {\n if (this._props.parameters.EnableSorting?.raw === false) {\n return false;\n }\n switch (column.dataType) {\n case DataType.IMAGE: {\n return false;\n }\n }\n return !column.disableSorting;\n }\n private _isColumnFilterable(column: IEntityColumn) {\n if (this.props.parameters.EnableFiltering?.raw === false) {\n return false;\n }\n return column.isFilterable ?? true;\n }\n}"],"names":[],"mappings":"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"}
|
|
@@ -1 +1,28 @@
|
|
|
1
|
-
class GridDependency
|
|
1
|
+
class GridDependency {
|
|
2
|
+
constructor(grid) {
|
|
3
|
+
this._refreshCallbacks = new Map();
|
|
4
|
+
this._grid = grid;
|
|
5
|
+
}
|
|
6
|
+
addRefreshCallback(id, callback) {
|
|
7
|
+
this._refreshCallbacks.set(id, callback);
|
|
8
|
+
}
|
|
9
|
+
removeRefreshCallback(id) {
|
|
10
|
+
this._refreshCallbacks.delete(id);
|
|
11
|
+
}
|
|
12
|
+
onDependenciesUpdated() {
|
|
13
|
+
}
|
|
14
|
+
_triggerRefreshCallbacks() {
|
|
15
|
+
for (const refreshCallback of this._refreshCallbacks.values()) {
|
|
16
|
+
refreshCallback();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
get _dataset() {
|
|
20
|
+
return this._grid.dataset;
|
|
21
|
+
}
|
|
22
|
+
get _pcfContext() {
|
|
23
|
+
return this._grid.pcfContext;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export { GridDependency };
|
|
28
|
+
//# sourceMappingURL=GridDependency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GridDependency.js","sources":["../../../../../src/components/Grid/core/model/GridDependency.ts"],"sourcesContent":["import { Grid } from \"./Grid\";\n\nexport class GridDependency {\n protected _grid: Grid;\n protected _refreshCallbacks: Map<string, () => any> = new Map();\n \n constructor(grid: Grid) {\n this._grid = grid;\n }\n\n public addRefreshCallback(id: string, callback: () => any) {\n this._refreshCallbacks.set(id, callback);\n }\n\n public removeRefreshCallback(id: string) {\n this._refreshCallbacks.delete(id);\n }\n\n public onDependenciesUpdated() {\n\n }\n\n protected _triggerRefreshCallbacks() {\n for(const refreshCallback of this._refreshCallbacks.values()) {\n refreshCallback();\n }\n }\n protected get _dataset() {\n return this._grid.dataset;\n }\n protected get _pcfContext() {\n return this._grid.pcfContext;\n }\n}"],"names":[],"mappings":"MAEa,cAAc,CAAA;AAIvB,IAAA,WAAA,CAAY,IAAU,EAAA;AAFZ,QAAA,IAAA,CAAA,iBAAiB,GAA2B,IAAI,GAAG,EAAE,CAAC;AAG5D,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;KACrB;IAEM,kBAAkB,CAAC,EAAU,EAAE,QAAmB,EAAA;QACrD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;KAC5C;AAEM,IAAA,qBAAqB,CAAC,EAAU,EAAA;AACnC,QAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;KACrC;IAEM,qBAAqB,GAAA;KAE3B;IAES,wBAAwB,GAAA;QAC9B,KAAI,MAAM,eAAe,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,EAAE;AAC1D,YAAA,eAAe,EAAE,CAAC;AACrB,SAAA;KACJ;AACD,IAAA,IAAc,QAAQ,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;KAC7B;AACD,IAAA,IAAc,WAAW,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;KAChC;AACJ;;;;"}
|
|
@@ -1 +1,22 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import { GridDependency } from './GridDependency.js';
|
|
2
|
+
|
|
3
|
+
class Metadata extends GridDependency {
|
|
4
|
+
async get(column) {
|
|
5
|
+
if (column.entityAliasName) {
|
|
6
|
+
const linkedEntity = this._grid.dataset.linking.getLinkedEntities().find(x => x.alias === column.entityAliasName);
|
|
7
|
+
return await this._grid.pcfContext.utils.getEntityMetadata(linkedEntity.name, [column.attributeName]);
|
|
8
|
+
}
|
|
9
|
+
else {
|
|
10
|
+
return await this._grid.pcfContext.utils.getEntityMetadata(this._grid.dataset.getTargetEntityType(), [column.attributeName]);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
async getOptions(column) {
|
|
14
|
+
const columnMetadata = await this.get(column);
|
|
15
|
+
const options = columnMetadata.Attributes.get(column.attributeName).attributeDescriptor.OptionSet;
|
|
16
|
+
const defaultValue = columnMetadata.Attributes.get(column.attributeName).DefaultFormValue;
|
|
17
|
+
return [defaultValue, options];
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export { Metadata };
|
|
22
|
+
//# sourceMappingURL=Metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Metadata.js","sources":["../../../../../src/components/Grid/core/model/Metadata.ts"],"sourcesContent":["import { IGridColumn } from \"../interfaces/IGridColumn\";\nimport { GridDependency } from \"./GridDependency\";\n\nexport class Metadata extends GridDependency {\n public async get(column: IGridColumn): Promise<ComponentFramework.PropertyHelper.EntityMetadata> {\n if(column.entityAliasName) {\n const linkedEntity = this._grid.dataset.linking.getLinkedEntities().find(x => x.alias === column.entityAliasName)!;\n return await this._grid.pcfContext.utils.getEntityMetadata(linkedEntity.name, [column.attributeName]);\n }\n else {\n return await this._grid.pcfContext.utils.getEntityMetadata(this._grid.dataset.getTargetEntityType(), [column.attributeName]);\n }\n }\n public async getOptions(column: IGridColumn): Promise<[number | boolean, ComponentFramework.PropertyHelper.OptionMetadata[]]> {\n const columnMetadata = await this.get(column);\n const options = columnMetadata.Attributes.get(column.attributeName).attributeDescriptor.OptionSet as ComponentFramework.PropertyHelper.OptionMetadata[]\n const defaultValue = columnMetadata.Attributes.get(column.attributeName).DefaultFormValue as number | boolean;\n return [defaultValue, options];\n }\n}\n"],"names":[],"mappings":";;AAGM,MAAO,QAAS,SAAQ,cAAc,CAAA;IACjC,MAAM,GAAG,CAAC,MAAmB,EAAA;QAChC,IAAG,MAAM,CAAC,eAAe,EAAE;YACvB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,eAAe,CAAE,CAAC;YACnH,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AACzG,SAAA;AACI,aAAA;YACD,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AAChI,SAAA;KACJ;IACM,MAAM,UAAU,CAAC,MAAmB,EAAA;QACvC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC9C,QAAA,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,mBAAmB,CAAC,SAA+D,CAAA;AACvJ,QAAA,MAAM,YAAY,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,gBAAoC,CAAC;AAC9G,QAAA,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;KAClC;AACJ;;;;"}
|
|
@@ -1 +1,25 @@
|
|
|
1
|
-
import{useGridInstance
|
|
1
|
+
import { useGridInstance } from '../../../hooks/useGridInstance.js';
|
|
2
|
+
|
|
3
|
+
const useRecordUpdateServiceController = () => {
|
|
4
|
+
const grid = useGridInstance();
|
|
5
|
+
const recordUpdateService = grid.recordUpdateService;
|
|
6
|
+
return {
|
|
7
|
+
isDirty: recordUpdateService.isDirty,
|
|
8
|
+
hasInvalidRecords: recordUpdateService.hasInvalidRecords,
|
|
9
|
+
updatedRecords: [...recordUpdateService.updatedRecords.values()],
|
|
10
|
+
saveAll: () => recordUpdateService.saveAll(),
|
|
11
|
+
clearAll: () => recordUpdateService.clearAll(),
|
|
12
|
+
record: (recordId) => {
|
|
13
|
+
const record = recordUpdateService.record(recordId);
|
|
14
|
+
return {
|
|
15
|
+
get: () => record.get(),
|
|
16
|
+
setValue: (columnName, value) => {
|
|
17
|
+
record.setValue(columnName, value);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export { useRecordUpdateServiceController };
|
|
25
|
+
//# sourceMappingURL=useRecordUpdateServiceController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRecordUpdateServiceController.js","sources":["../../../../../../../src/components/Grid/core/services/RecordUpdateService/controllers/useRecordUpdateServiceController.ts"],"sourcesContent":["import { useGridInstance } from \"../../../hooks/useGridInstance\";\nimport { IUpdatedRecord } from \"../model/RecordUpdateService\";\n\ninterface IRecordUpdateServiceController {\n isDirty: boolean,\n hasInvalidRecords: boolean\n updatedRecords: IUpdatedRecord[];\n saveAll: () => Promise<boolean>;\n clearAll: () => void,\n record(recordId: string): {\n get: () => IUpdatedRecord | undefined\n setValue: (columnName: string, value: any) => void\n }\n}\n\nexport const useRecordUpdateServiceController = (): IRecordUpdateServiceController => {\n const grid = useGridInstance();\n const recordUpdateService = grid.recordUpdateService;\n \n return {\n isDirty: recordUpdateService.isDirty,\n hasInvalidRecords: recordUpdateService.hasInvalidRecords,\n updatedRecords: [...recordUpdateService.updatedRecords.values()],\n saveAll: () => recordUpdateService.saveAll(),\n clearAll: () => recordUpdateService.clearAll(),\n record: (recordId: string) => {\n const record = recordUpdateService.record(recordId);\n return {\n get: () => record.get(),\n setValue: (columnName: string, value: any) => {\n record.setValue(columnName, value)\n } \n }\n }\n }\n}"],"names":[],"mappings":";;AAeO,MAAM,gCAAgC,GAAG,MAAqC;AACjF,IAAA,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;AAC/B,IAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;IAErD,OAAO;QACH,OAAO,EAAE,mBAAmB,CAAC,OAAO;QACpC,iBAAiB,EAAE,mBAAmB,CAAC,iBAAiB;QACxD,cAAc,EAAE,CAAC,GAAG,mBAAmB,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;AAChE,QAAA,OAAO,EAAE,MAAM,mBAAmB,CAAC,OAAO,EAAE;AAC5C,QAAA,QAAQ,EAAE,MAAM,mBAAmB,CAAC,QAAQ,EAAE;AAC9C,QAAA,MAAM,EAAE,CAAC,QAAgB,KAAI;YACzB,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACpD,OAAO;AACH,gBAAA,GAAG,EAAE,MAAM,MAAM,CAAC,GAAG,EAAE;AACvB,gBAAA,QAAQ,EAAE,CAAC,UAAkB,EAAE,KAAU,KAAI;AACzC,oBAAA,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;iBACrC;aACJ,CAAA;SACJ;KACJ,CAAA;AACL;;;;"}
|