@talxis/base-controls 1.2408.1 → 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.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/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 +1 -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-b7e6190d.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,33 @@
|
|
|
1
|
-
import{GridDependency
|
|
1
|
+
import { GridDependency } from '../core/model/GridDependency.js';
|
|
2
|
+
|
|
3
|
+
class Sorting extends GridDependency {
|
|
4
|
+
get(column) {
|
|
5
|
+
return {
|
|
6
|
+
value: this._dataset.sorting.find(x => x.name === column.key),
|
|
7
|
+
sort: (direction) => {
|
|
8
|
+
const sortMap = new Map(this._dataset.sorting.map(x => [x.name, x]));
|
|
9
|
+
//sorting across multiple columns is currently not supported in Portal
|
|
10
|
+
//@ts-ignore - types
|
|
11
|
+
if (window.TALXIS?.Portal) {
|
|
12
|
+
sortMap.clear();
|
|
13
|
+
}
|
|
14
|
+
sortMap.set(column.key, {
|
|
15
|
+
name: column.key,
|
|
16
|
+
sortDirection: direction
|
|
17
|
+
});
|
|
18
|
+
//Power Apps only allows setting of sorting like this - https://stackoverflow.com/questions/1232040/how-do-i-empty-an-array-in-javascript
|
|
19
|
+
//this is so stupid
|
|
20
|
+
while (this._dataset.sorting.length) {
|
|
21
|
+
this._dataset.sorting.pop();
|
|
22
|
+
}
|
|
23
|
+
for (const sort of sortMap.values()) {
|
|
24
|
+
this._dataset.sorting.push(sort);
|
|
25
|
+
}
|
|
26
|
+
this._dataset.refresh();
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export { Sorting };
|
|
33
|
+
//# sourceMappingURL=Sorting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Sorting.js","sources":["../../../../src/components/Grid/sorting/Sorting.ts"],"sourcesContent":["import { IGridColumn } from \"../core/interfaces/IGridColumn\";\nimport { GridDependency } from \"../core/model/GridDependency\";\nexport class Sorting extends GridDependency {\n public get(column: IGridColumn) {\n return {\n value: this._dataset.sorting.find(x => x.name === column.key),\n sort: (direction: ComponentFramework.PropertyHelper.DataSetApi.Types.SortDirection) => {\n const sortMap: Map<string, ComponentFramework.PropertyHelper.DataSetApi.SortStatus> = new Map(this._dataset.sorting.map(x => [x.name, x]));\n //sorting across multiple columns is currently not supported in Portal\n //@ts-ignore - types\n if(window.TALXIS?.Portal) {\n sortMap.clear();\n }\n sortMap.set(column.key, {\n name: column.key,\n sortDirection: direction\n })\n //Power Apps only allows setting of sorting like this - https://stackoverflow.com/questions/1232040/how-do-i-empty-an-array-in-javascript\n //this is so stupid\n while (this._dataset.sorting.length) {\n this._dataset.sorting.pop()\n }\n for (const sort of sortMap.values()) {\n this._dataset.sorting.push(sort);\n }\n this._dataset.refresh();\n }\n }\n }\n}"],"names":[],"mappings":";;AAEM,MAAO,OAAQ,SAAQ,cAAc,CAAA;AAChC,IAAA,GAAG,CAAC,MAAmB,EAAA;QAC1B,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,GAAG,CAAC;AAC7D,YAAA,IAAI,EAAE,CAAC,SAA2E,KAAI;gBAClF,MAAM,OAAO,GAAyE,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;;;AAG3I,gBAAA,IAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE;oBACtB,OAAO,CAAC,KAAK,EAAE,CAAC;AACnB,iBAAA;AACD,gBAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE;oBACpB,IAAI,EAAE,MAAM,CAAC,GAAG;AAChB,oBAAA,aAAa,EAAE,SAAS;AAC3B,iBAAA,CAAC,CAAA;;;AAGF,gBAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE;AACjC,oBAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA;AAC9B,iBAAA;AACD,gBAAA,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE;oBACjC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpC,iBAAA;AACD,gBAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;aAC3B;SACJ,CAAA;KACJ;AACJ;;;;"}
|
package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js
CHANGED
|
@@ -1 +1,120 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useState, useEffect } from 'react';
|
|
3
|
+
import { useTheme, ContextualMenuItemType, ContextualMenu } from '@fluentui/react';
|
|
4
|
+
import { DataType } from '../../../core/enums/DataType.js';
|
|
5
|
+
import { getColumnHeaderContextualMenuStyles } from './styles.js';
|
|
6
|
+
import { useGridInstance } from '../../../core/hooks/useGridInstance.js';
|
|
7
|
+
import { useColumnSortingController } from '../../controllers/useColumnSortingController.js';
|
|
8
|
+
import { useColumnFilterConditionController } from '../../../filtering/controller/useColumnFilterConditionController.js';
|
|
9
|
+
|
|
10
|
+
const SortingContextualMenu = (props) => {
|
|
11
|
+
const grid = useGridInstance();
|
|
12
|
+
const labels = grid.labels;
|
|
13
|
+
const styles = getColumnHeaderContextualMenuStyles(useTheme());
|
|
14
|
+
const { column, onDismiss } = { ...props };
|
|
15
|
+
const sorting = useColumnSortingController(column);
|
|
16
|
+
const condition = useColumnFilterConditionController(column);
|
|
17
|
+
const [items, setItems] = useState([]);
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
(async () => {
|
|
20
|
+
setItems(await getItems());
|
|
21
|
+
})();
|
|
22
|
+
}, [condition]);
|
|
23
|
+
const getTwoOptionsSortLabel = async (isDesc) => {
|
|
24
|
+
const [defaultValue, options] = await grid.metadata.getOptions(column);
|
|
25
|
+
if (!isDesc) {
|
|
26
|
+
return `${options[0].Label} ${labels['filtersortmenu-sorttwooption-joint']()} ${options[1].Label}`;
|
|
27
|
+
}
|
|
28
|
+
return `${options[1].Label} ${labels['filtersortmenu-sorttwooption-joint']()} ${options[0].Label}`;
|
|
29
|
+
};
|
|
30
|
+
const getLabel = async (isDesc) => {
|
|
31
|
+
switch (column.dataType) {
|
|
32
|
+
case DataType.WHOLE_NONE:
|
|
33
|
+
case DataType.DECIMAL:
|
|
34
|
+
case DataType.FP:
|
|
35
|
+
case DataType.CURRENCY: {
|
|
36
|
+
if (!isDesc) {
|
|
37
|
+
return labels['filtersortmenu-sortnumber-a-z']();
|
|
38
|
+
}
|
|
39
|
+
return labels['filtersortmenu-sortnumber-z-a']();
|
|
40
|
+
}
|
|
41
|
+
case DataType.DATE_AND_TIME_DATE_AND_TIME:
|
|
42
|
+
case DataType.DATE_AND_TIME_DATE_ONLY: {
|
|
43
|
+
if (!isDesc) {
|
|
44
|
+
return labels['filtersortmenu-sortdate-a-z']();
|
|
45
|
+
}
|
|
46
|
+
return labels['filtersortmenu-sortdate-z-a']();
|
|
47
|
+
}
|
|
48
|
+
case DataType.TWO_OPTIONS: {
|
|
49
|
+
return getTwoOptionsSortLabel(isDesc);
|
|
50
|
+
}
|
|
51
|
+
default: {
|
|
52
|
+
if (!isDesc) {
|
|
53
|
+
return labels['filtersortmenu-sorttext-a-z']();
|
|
54
|
+
}
|
|
55
|
+
return labels['filtersortmenu-sorttext-z-a']();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
const getItems = async () => {
|
|
60
|
+
if (!condition) {
|
|
61
|
+
return [];
|
|
62
|
+
}
|
|
63
|
+
const items = [
|
|
64
|
+
{
|
|
65
|
+
key: 'sort_asc',
|
|
66
|
+
checked: column.isSorted && !column.isSortedDescending,
|
|
67
|
+
disabled: !column.isSortable || column.dataType === DataType.MULTI_SELECT_OPTIONSET,
|
|
68
|
+
text: await getLabel(),
|
|
69
|
+
className: styles.item,
|
|
70
|
+
iconProps: {
|
|
71
|
+
iconName: 'SortUp'
|
|
72
|
+
},
|
|
73
|
+
onClick: () => sorting.sort(0)
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
key: 'sort_desc',
|
|
77
|
+
checked: column.isSorted && column.isSortedDescending,
|
|
78
|
+
disabled: !column.isSortable || column.dataType === DataType.MULTI_SELECT_OPTIONSET,
|
|
79
|
+
text: await getLabel(true),
|
|
80
|
+
className: styles.item,
|
|
81
|
+
iconProps: {
|
|
82
|
+
iconName: 'SortDown'
|
|
83
|
+
},
|
|
84
|
+
onClick: () => sorting.sort(1)
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
key: 'divider',
|
|
88
|
+
itemType: ContextualMenuItemType.Divider
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
key: 'filter',
|
|
92
|
+
className: styles.item,
|
|
93
|
+
disabled: !column.isFilterable,
|
|
94
|
+
text: labels['filtermenu-filterby'](),
|
|
95
|
+
iconProps: {
|
|
96
|
+
iconName: 'Filter'
|
|
97
|
+
},
|
|
98
|
+
onClick: (e) => onDismiss(e, false, true)
|
|
99
|
+
}
|
|
100
|
+
];
|
|
101
|
+
if (condition.isAppliedToDataset) {
|
|
102
|
+
items.push({
|
|
103
|
+
key: 'clearFilter',
|
|
104
|
+
text: labels['filtersortmenu-clearfilter'](),
|
|
105
|
+
iconProps: {
|
|
106
|
+
iconName: 'ClearFilter'
|
|
107
|
+
},
|
|
108
|
+
onClick: () => {
|
|
109
|
+
condition.remove();
|
|
110
|
+
condition.save();
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
return items;
|
|
115
|
+
};
|
|
116
|
+
return jsx(ContextualMenu, { ...props, items: items });
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
export { SortingContextualMenu };
|
|
120
|
+
//# sourceMappingURL=SortingContextualMenu.js.map
|
package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SortingContextualMenu.js","sources":["../../../../../../src/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { ContextualMenu, ContextualMenuItemType, IContextualMenuItem, IContextualMenuProps, useTheme } from '@fluentui/react';\nimport { IGridColumn } from '../../../core/interfaces/IGridColumn';\nimport { DataType } from '../../../core/enums/DataType';\nimport { getColumnHeaderContextualMenuStyles } from './styles';\nimport { useGridInstance } from '../../../core/hooks/useGridInstance';\nimport { useColumnSortingController } from '../../controllers/useColumnSortingController';\nimport { useColumnFilterConditionController } from '../../../filtering/controller/useColumnFilterConditionController';\n\nexport interface ISortingContextualMenu extends Omit<IContextualMenuProps, 'items'> {\n column: IGridColumn;\n onDismiss: (e?: Event | React.MouseEvent<Element, MouseEvent> | React.KeyboardEvent<Element>, dismissAll?: boolean, showFilterCallout?: boolean) => void;\n}\n\nexport const SortingContextualMenu = (props: ISortingContextualMenu) => {\n\n const grid = useGridInstance();\n const labels = grid.labels;\n const styles = getColumnHeaderContextualMenuStyles(useTheme());\n const {column, onDismiss} = {...props};\n const sorting = useColumnSortingController(column);\n const condition = useColumnFilterConditionController(column);\n const [items, setItems] = useState<IContextualMenuItem[]>([]);\n\n useEffect(() => {\n (async() => {\n setItems(await getItems())\n })();\n }, [condition]);\n\n const getTwoOptionsSortLabel = async (isDesc?: boolean) => {\n const [defaultValue, options] = await grid.metadata.getOptions(column);\n if(!isDesc) {\n return `${options[0].Label} ${labels['filtersortmenu-sorttwooption-joint']()} ${options[1].Label}`\n }\n return `${options[1].Label} ${labels['filtersortmenu-sorttwooption-joint']()} ${options[0].Label}`\n }\n const getLabel = async (isDesc?: boolean) => {\n switch (column.dataType) {\n case DataType.WHOLE_NONE:\n case DataType.DECIMAL:\n case DataType.FP:\n case DataType.CURRENCY: {\n if (!isDesc) {\n return labels['filtersortmenu-sortnumber-a-z']()\n }\n return labels['filtersortmenu-sortnumber-z-a']()\n }\n case DataType.DATE_AND_TIME_DATE_AND_TIME:\n case DataType.DATE_AND_TIME_DATE_ONLY: {\n if (!isDesc) {\n return labels['filtersortmenu-sortdate-a-z']()\n }\n return labels['filtersortmenu-sortdate-z-a']()\n }\n case DataType.TWO_OPTIONS: {\n return getTwoOptionsSortLabel(isDesc);\n }\n default: {\n if (!isDesc) {\n return labels['filtersortmenu-sorttext-a-z']()\n }\n return labels['filtersortmenu-sorttext-z-a']()\n }\n }\n }\n\n const getItems = async (): Promise<IContextualMenuItem[]> => {\n if(!condition) {\n return []\n }\n const items: IContextualMenuItem[] = [\n {\n key: 'sort_asc',\n checked: column.isSorted && !column.isSortedDescending,\n disabled: !column.isSortable || column.dataType === DataType.MULTI_SELECT_OPTIONSET,\n text: await getLabel(),\n className: styles.item,\n iconProps: {\n iconName: 'SortUp'\n },\n onClick: () => sorting.sort(0)\n },\n {\n key: 'sort_desc',\n checked: column.isSorted && column.isSortedDescending,\n disabled: !column.isSortable || column.dataType === DataType.MULTI_SELECT_OPTIONSET,\n text: await getLabel(true),\n className: styles.item,\n iconProps: {\n iconName: 'SortDown'\n },\n onClick: () => sorting.sort(1)\n },\n {\n key: 'divider',\n itemType: ContextualMenuItemType.Divider\n },\n {\n key: 'filter',\n className: styles.item,\n disabled: !column.isFilterable,\n text: labels['filtermenu-filterby'](),\n iconProps: {\n iconName: 'Filter'\n },\n onClick: (e) => onDismiss(e, false, true)\n }\n ];\n if (condition.isAppliedToDataset) {\n items.push({\n key: 'clearFilter',\n text: labels['filtersortmenu-clearfilter'](),\n iconProps: {\n iconName: 'ClearFilter'\n },\n onClick: () => {\n condition.remove();\n condition.save();\n }\n });\n }\n return items\n }\n return <ContextualMenu {...props} items={items} />;\n};"],"names":["_jsx"],"mappings":"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"}
|
|
@@ -1 +1,15 @@
|
|
|
1
|
-
import{mergeStyleSets
|
|
1
|
+
import { mergeStyleSets } from '@fluentui/react';
|
|
2
|
+
|
|
3
|
+
const getColumnHeaderContextualMenuStyles = (theme) => {
|
|
4
|
+
return mergeStyleSets({
|
|
5
|
+
item: {
|
|
6
|
+
'& .is-checked': {
|
|
7
|
+
backgroundColor: theme.semanticColors.buttonBackgroundHovered,
|
|
8
|
+
fontWeight: 600
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export { getColumnHeaderContextualMenuStyles };
|
|
15
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sources":["../../../../../../src/components/Grid/sorting/components/SortingContextualMenu/styles.ts"],"sourcesContent":["import { mergeStyleSets, ITheme } from \"@fluentui/react\";\n\nexport const getColumnHeaderContextualMenuStyles = (theme: ITheme) => {\n return mergeStyleSets({\n item: {\n '& .is-checked': {\n backgroundColor: theme.semanticColors.buttonBackgroundHovered,\n fontWeight: 600\n }\n }\n });\n};"],"names":[],"mappings":";;AAEa,MAAA,mCAAmC,GAAG,CAAC,KAAa,KAAI;AACjE,IAAA,OAAO,cAAc,CAAC;AAClB,QAAA,IAAI,EAAE;AACF,YAAA,eAAe,EAAE;AACb,gBAAA,eAAe,EAAE,KAAK,CAAC,cAAc,CAAC,uBAAuB;AAC7D,gBAAA,UAAU,EAAE,GAAG;AAClB,aAAA;AACJ,SAAA;AACJ,KAAA,CAAC,CAAC;AACP;;;;"}
|
|
@@ -1 +1,21 @@
|
|
|
1
|
-
import{useState
|
|
1
|
+
import { useState, useEffect } from 'react';
|
|
2
|
+
import { useGridInstance } from '../../core/hooks/useGridInstance.js';
|
|
3
|
+
|
|
4
|
+
const useColumnSortingController = (column) => {
|
|
5
|
+
const grid = useGridInstance();
|
|
6
|
+
const sorting = grid.sorting.get(column);
|
|
7
|
+
const getController = () => {
|
|
8
|
+
return {
|
|
9
|
+
value: sorting.value,
|
|
10
|
+
sort: (direction) => sorting.sort(direction)
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
const [controller, setController] = useState(() => getController());
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
setController(getController());
|
|
16
|
+
}, [sorting.value]);
|
|
17
|
+
return controller;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export { useColumnSortingController };
|
|
21
|
+
//# sourceMappingURL=useColumnSortingController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useColumnSortingController.js","sources":["../../../../../src/components/Grid/sorting/controllers/useColumnSortingController.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { useGridInstance } from \"../../core/hooks/useGridInstance\";\nimport { IGridColumn } from \"../../core/interfaces/IGridColumn\";\n\ninterface ISortingController {\n value: ComponentFramework.PropertyHelper.DataSetApi.SortStatus | undefined;\n sort: (sortDirection: ComponentFramework.PropertyHelper.DataSetApi.Types.SortDirection) => void;\n}\n\nexport const useColumnSortingController = (column: IGridColumn): ISortingController => {\n const grid = useGridInstance();\n const sorting = grid.sorting.get(column);\n\n const getController = (): ISortingController => {\n return {\n value: sorting.value,\n sort: (direction) => sorting.sort(direction)\n }\n }\n const [controller, setController] = useState<ISortingController>(() => getController())\n\n useEffect(() => {\n setController(getController())\n }, [sorting.value]);\n return controller;\n}\n"],"names":[],"mappings":";;;AASa,MAAA,0BAA0B,GAAG,CAAC,MAAmB,KAAwB;AAClF,IAAA,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEzC,MAAM,aAAa,GAAG,MAAyB;QAC3C,OAAO;YACH,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,IAAI,EAAE,CAAC,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;SAC/C,CAAA;AACL,KAAC,CAAA;AACD,IAAA,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAqB,MAAM,aAAa,EAAE,CAAC,CAAA;IAEvF,SAAS,CAAC,MAAK;AACX,QAAA,aAAa,CAAC,aAAa,EAAE,CAAC,CAAA;AAClC,KAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACpB,IAAA,OAAO,UAAU,CAAC;AACtB;;;;"}
|
|
@@ -1 +1,81 @@
|
|
|
1
|
-
const
|
|
1
|
+
const gridTranslations = {
|
|
2
|
+
"condition-none": { 1029: "Žádná", 1033: "None" },
|
|
3
|
+
"condition-equal": { 1029: "Je rovno", 1033: "Equals" },
|
|
4
|
+
"condition-notequal": { 1029: "Není rovno", 1033: "Does not equal" },
|
|
5
|
+
"condition-greaterthan": { 1029: "Větší než", 1033: "Greater than" },
|
|
6
|
+
"condition-lessthan": { 1029: "Menší než", 1033: "Less than" },
|
|
7
|
+
"condition-greaterequal": { 1029: "Větší než nebo rovno", 1033: "Greater than or equal to" },
|
|
8
|
+
"condition-lessequal": { 1029: "Menší než nebo rovno", 1033: "Less than or equal to" },
|
|
9
|
+
"condition-like": { 1029: "Obsahuje", 1033: "Contains" },
|
|
10
|
+
"condition-notlike": { 1029: "Neobsahuje", 1033: "Does not contain" },
|
|
11
|
+
"condition-null": { 1029: "Neobsahuje data", 1033: "Does not contain data" },
|
|
12
|
+
"condition-notnull": { 1029: "Obsahuje data", 1033: "Contains data" },
|
|
13
|
+
"condition-beginwith": { 1029: "Začíná na", 1033: "Begins with" },
|
|
14
|
+
"condition-doesnotbeginwith": { 1029: "Nezačíná na", 1033: "Does not begin with" },
|
|
15
|
+
"condition-endswith": { 1029: "Končí na", 1033: "Ends with" },
|
|
16
|
+
"condition-doesnotendwith": { 1029: "Nekončí na", 1033: "Does not end with" },
|
|
17
|
+
"condition-yesterday": { 1029: "Včera", 1033: "Yesterday" },
|
|
18
|
+
"condition-today": { 1029: "Dneska", 1033: "Today" },
|
|
19
|
+
"condition-tomorrow": { 1029: "Zítra", 1033: "Tomorrow" },
|
|
20
|
+
"condition-last7days": { 1029: "Posledních 7 dnů", 1033: "Last 7 days" },
|
|
21
|
+
"condition-next7days": { 1029: "Příštích 7 dnů", 1033: "Next 7 days" },
|
|
22
|
+
"condition-lastweek": { 1029: "Minulý týden", 1033: "Last week" },
|
|
23
|
+
"condition-thisweek": { 1029: "Tento týden", 1033: "This week" },
|
|
24
|
+
"condition-lastmonth": { 1029: "Minulý měsíc", 1033: "Last month" },
|
|
25
|
+
"condition-thismonth": { 1029: "Tento měsíc", 1033: "This month" },
|
|
26
|
+
"condition-on": { 1029: "V den", 1033: "On" },
|
|
27
|
+
"condition-onorbefore": { 1029: "Před dnem (včetně)", 1033: "On or before" },
|
|
28
|
+
"condition-onorafter": { 1029: "Po dni (včetně)", 1033: "On or after" },
|
|
29
|
+
"condition-lastyear": { 1029: "Poslední rok", 1033: "Last year" },
|
|
30
|
+
"condition-thisyear": { 1029: "Tento rok", 1033: "This year" },
|
|
31
|
+
"condition-lastxdays": { 1029: "Posledních X dnů", 1033: "Last X days" },
|
|
32
|
+
"condition-nextxdays": { 1029: "Příštích X dnů", 1033: "Next X days" },
|
|
33
|
+
"condition-lastxmonths": { 1029: "Posledních X měsíců", 1033: "Last X months" },
|
|
34
|
+
"condition-nextxmonths": { 1029: "Příštích X měsíců", 1033: "Next X months" },
|
|
35
|
+
"condition-contains": { 1029: "Obsahuje", 1033: "Contains" },
|
|
36
|
+
"condition-infiscalperiodandyear": { 1029: "Toto fiskální období a rok", 1033: "In fiscal period and year" },
|
|
37
|
+
"condition-above": { 1029: "Nad", 1033: "Above" },
|
|
38
|
+
"condition-under": { 1029: "Pod", 1033: "Under" },
|
|
39
|
+
"condition-notunder": { 1029: "Není pod", 1033: "Not under" },
|
|
40
|
+
"condition-aboveorequal": { 1029: "Je nad nebo se rovná", 1033: "Above or equal" },
|
|
41
|
+
"condition-underorequal": { 1029: "Je pod nebo se rovná", 1033: "Under or equal" },
|
|
42
|
+
"condition-containvalues": { 1029: "Obsahuje hodnoty", 1033: "Contain values" },
|
|
43
|
+
"condition-doesnotcontainvalues": { 1029: "Neobsahuje hodnoty", 1033: "Does not contain values" },
|
|
44
|
+
"filtermenu-filterby": { 1029: "Filtrovat podle", 1033: "Filter By" },
|
|
45
|
+
"filtermenu-applybutton": { 1029: "Použít", 1033: "Apply" },
|
|
46
|
+
"filtermenu-clearbutton": { 1029: "Vymazat", 1033: "Clear" },
|
|
47
|
+
"filtersortmenu-sorttext-a-z": { 1029: "Seřadit od A do Z", 1033: "Sort A to Z" },
|
|
48
|
+
"filtersortmenu-sorttext-z-a": { 1029: "Seřadit od Z do A", 1033: "Sort Z to A" },
|
|
49
|
+
"filtersortmenu-sortdate-a-z": { 1029: "Seřadit od nejstarších", 1033: "Sort older to newer" },
|
|
50
|
+
"filtersortmenu-sortdate-z-a": { 1029: "Seřadit od nejnovějších", 1033: "Sort newer to older" },
|
|
51
|
+
"filtersortmenu-sortnumber-a-z": { 1029: "Seřadit od nejmenších", 1033: "Sort smaller to larger" },
|
|
52
|
+
"filtersortmenu-sortnumber-z-a": { 1029: "Seřadit od největších", 1033: "Sort larger to smaller" },
|
|
53
|
+
"filtersortmenu-sorttwooption-a-z": { 1029: "Seřadit od nejmenších", 1033: "No to Yes" },
|
|
54
|
+
"filtersortmenu-sorttwooption-z-a": { 1029: "Seřadit od největších", 1033: "Yes to No" },
|
|
55
|
+
"filtersortmenu-sorttwooption-joint": { 1029: "až", 1033: "to" },
|
|
56
|
+
"filtersortmenu-filterby": { 1029: "Filtrovat podle", 1033: "Filter by" },
|
|
57
|
+
"filtersortmenu-clearfilter": { 1029: "Vymazat filtr", 1033: "Clear filter" },
|
|
58
|
+
"paging-of": { 1029: "z", 1033: "of" },
|
|
59
|
+
"paging-firstpage": { 1029: "První strana", 1033: "First page" },
|
|
60
|
+
"paging-previouspage": { 1029: "Předchozí", 1033: "Previous" },
|
|
61
|
+
"paging-page": { 1029: "Strana", 1033: "Page" },
|
|
62
|
+
"paging-nextpage": { 1029: "Další", 1033: "Next" },
|
|
63
|
+
"paging-lastpage": { 1029: "Poslední strana", 1033: "Last page" },
|
|
64
|
+
"paging-pages": { 1029: "{{start}} - {{end}} z {{recordcount}}", 1033: "{{start}} - {{end}} of {{recordcount}}" },
|
|
65
|
+
"norecordsfound": { 1029: 'Nenašli jsme nic, co by se zde dalo zobrazit.', 1033: 'No records found.' },
|
|
66
|
+
"saving-changenotification": { 1029: "Počet upravených záznamů: <b>{{numOfChanges}}</b>. Klikněte <u>zde</u> pro jejich zobrazení.", 1033: "Number of updated records: <b>{{numOfChanges}}</b>. Click <u>here</u> to review." },
|
|
67
|
+
"saving-save": { 1029: "Uložit", 1033: "Save" },
|
|
68
|
+
"saving-saving": { 1029: "Ukládání...", 1033: "Saving..." },
|
|
69
|
+
"saving-changepreview-title": { 1033: 'Number of updated rows: {{numOfChanges}}', 1029: 'Počet upravených záznamů: {{numOfChanges}}' },
|
|
70
|
+
"saving-validation-error": { 1029: 'Pro uložení záznamu je nutné opravit chybové hodnoty následujících sloupců: <b>{{columnDisplayNames}}</b>', 1033: 'Folowing columns have validation errors: <b>{{columnDisplayNames}}</b>' },
|
|
71
|
+
"validation-input-value": { 1029: 'Zadejte hodnotu', 1033: 'Please enter value.' },
|
|
72
|
+
"validation-email": { 1029: 'Neplatný formát emailové adresy.', 1033: 'Invalid Email address format.' },
|
|
73
|
+
"validation-url": { 1029: 'Neplatný formát webové adresy.', 1033: 'Invalid URL format.' },
|
|
74
|
+
"validation-date": { 1029: 'Neplatný formát datumu.', 1033: 'Invalid Date format.' },
|
|
75
|
+
"validation-number": { 1029: 'Neplatný formát čísla.', 1033: 'Invalid Number format.' },
|
|
76
|
+
"no-name": { 1029: '(Bez názvu)', 1033: '(No Name)' },
|
|
77
|
+
"download": { 1029: 'Stáhnout', 1033: 'Download' },
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
export { gridTranslations };
|
|
81
|
+
//# sourceMappingURL=translations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"translations.js","sources":["../../../src/components/Grid/translations.ts"],"sourcesContent":["export const gridTranslations = {\n \"condition-none\": { 1029: \"Žádná\", 1033: \"None\" },\n \"condition-equal\": { 1029: \"Je rovno\", 1033: \"Equals\" },\n \"condition-notequal\": { 1029: \"Není rovno\", 1033: \"Does not equal\" },\n \"condition-greaterthan\": { 1029: \"Větší než\", 1033: \"Greater than\" },\n \"condition-lessthan\": { 1029: \"Menší než\", 1033: \"Less than\" },\n \"condition-greaterequal\": { 1029: \"Větší než nebo rovno\", 1033: \"Greater than or equal to\" },\n \"condition-lessequal\": { 1029: \"Menší než nebo rovno\", 1033: \"Less than or equal to\" },\n \"condition-like\": { 1029: \"Obsahuje\", 1033: \"Contains\" },\n \"condition-notlike\": { 1029: \"Neobsahuje\", 1033: \"Does not contain\" },\n \"condition-null\": { 1029: \"Neobsahuje data\", 1033: \"Does not contain data\" },\n \"condition-notnull\": { 1029: \"Obsahuje data\", 1033: \"Contains data\" },\n \"condition-beginwith\": { 1029: \"Začíná na\", 1033: \"Begins with\" },\n \"condition-doesnotbeginwith\": { 1029: \"Nezačíná na\", 1033: \"Does not begin with\" },\n \"condition-endswith\": { 1029: \"Končí na\", 1033: \"Ends with\" },\n \"condition-doesnotendwith\": { 1029: \"Nekončí na\", 1033: \"Does not end with\" },\n \"condition-yesterday\": { 1029: \"Včera\", 1033: \"Yesterday\" },\n \"condition-today\": { 1029: \"Dneska\", 1033: \"Today\" },\n \"condition-tomorrow\": { 1029: \"Zítra\", 1033: \"Tomorrow\" },\n \"condition-last7days\": { 1029: \"Posledních 7 dnů\", 1033: \"Last 7 days\" },\n \"condition-next7days\": { 1029: \"Příštích 7 dnů\", 1033: \"Next 7 days\" },\n \"condition-lastweek\": { 1029: \"Minulý týden\", 1033: \"Last week\" },\n \"condition-thisweek\": { 1029: \"Tento týden\", 1033: \"This week\" },\n \"condition-lastmonth\": { 1029: \"Minulý měsíc\", 1033: \"Last month\" },\n \"condition-thismonth\": { 1029: \"Tento měsíc\", 1033: \"This month\" },\n \"condition-on\": { 1029: \"V den\", 1033: \"On\" },\n \"condition-onorbefore\": { 1029: \"Před dnem (včetně)\", 1033: \"On or before\" },\n \"condition-onorafter\": { 1029: \"Po dni (včetně)\", 1033: \"On or after\" },\n \"condition-lastyear\": { 1029: \"Poslední rok\", 1033: \"Last year\" },\n \"condition-thisyear\": { 1029: \"Tento rok\", 1033: \"This year\" },\n \"condition-lastxdays\": { 1029: \"Posledních X dnů\", 1033: \"Last X days\" },\n \"condition-nextxdays\": { 1029: \"Příštích X dnů\", 1033: \"Next X days\" },\n \"condition-lastxmonths\": { 1029: \"Posledních X měsíců\", 1033: \"Last X months\" },\n \"condition-nextxmonths\": { 1029: \"Příštích X měsíců\", 1033: \"Next X months\" },\n \"condition-contains\": { 1029: \"Obsahuje\", 1033: \"Contains\" },\n \"condition-infiscalperiodandyear\": { 1029: \"Toto fiskální období a rok\", 1033: \"In fiscal period and year\" },\n \"condition-above\": { 1029: \"Nad\", 1033: \"Above\" },\n \"condition-under\": { 1029: \"Pod\", 1033: \"Under\" },\n \"condition-notunder\": { 1029: \"Není pod\", 1033: \"Not under\" },\n \"condition-aboveorequal\": { 1029: \"Je nad nebo se rovná\", 1033: \"Above or equal\" },\n \"condition-underorequal\": { 1029: \"Je pod nebo se rovná\", 1033: \"Under or equal\" },\n \"condition-containvalues\": { 1029: \"Obsahuje hodnoty\", 1033: \"Contain values\" },\n \"condition-doesnotcontainvalues\": { 1029: \"Neobsahuje hodnoty\", 1033: \"Does not contain values\" },\n \"filtermenu-filterby\": { 1029: \"Filtrovat podle\", 1033: \"Filter By\" },\n \"filtermenu-applybutton\": { 1029: \"Použít\", 1033: \"Apply\" },\n \"filtermenu-clearbutton\": { 1029: \"Vymazat\", 1033: \"Clear\" },\n \"filtersortmenu-sorttext-a-z\": { 1029: \"Seřadit od A do Z\", 1033: \"Sort A to Z\" },\n \"filtersortmenu-sorttext-z-a\": { 1029: \"Seřadit od Z do A\", 1033: \"Sort Z to A\" },\n \"filtersortmenu-sortdate-a-z\": { 1029: \"Seřadit od nejstarších\", 1033: \"Sort older to newer\" },\n \"filtersortmenu-sortdate-z-a\": { 1029: \"Seřadit od nejnovějších\", 1033: \"Sort newer to older\" },\n \"filtersortmenu-sortnumber-a-z\": { 1029: \"Seřadit od nejmenších\", 1033: \"Sort smaller to larger\" },\n \"filtersortmenu-sortnumber-z-a\": { 1029: \"Seřadit od největších\", 1033: \"Sort larger to smaller\" },\n \"filtersortmenu-sorttwooption-a-z\": { 1029: \"Seřadit od nejmenších\", 1033: \"No to Yes\" },\n \"filtersortmenu-sorttwooption-z-a\": { 1029: \"Seřadit od největších\", 1033: \"Yes to No\" },\n \"filtersortmenu-sorttwooption-joint\": { 1029: \"až\", 1033: \"to\" },\n \"filtersortmenu-filterby\": { 1029: \"Filtrovat podle\", 1033: \"Filter by\" },\n \"filtersortmenu-clearfilter\": { 1029: \"Vymazat filtr\", 1033: \"Clear filter\" },\n \"paging-of\": { 1029: \"z\", 1033: \"of\" },\n \"paging-firstpage\": { 1029: \"První strana\", 1033: \"First page\" },\n \"paging-previouspage\": { 1029: \"Předchozí\", 1033: \"Previous\" },\n \"paging-page\": { 1029: \"Strana\", 1033: \"Page\" },\n \"paging-nextpage\": { 1029: \"Další\", 1033: \"Next\" },\n \"paging-lastpage\": { 1029: \"Poslední strana\", 1033: \"Last page\" },\n \"paging-pages\": {1029: \"{{start}} - {{end}} z {{recordcount}}\", 1033: \"{{start}} - {{end}} of {{recordcount}}\"},\n \"norecordsfound\": {1029: 'Nenašli jsme nic, co by se zde dalo zobrazit.', 1033: 'No records found.'},\n \"saving-changenotification\": {1029: \"Počet upravených záznamů: <b>{{numOfChanges}}</b>. Klikněte <u>zde</u> pro jejich zobrazení.\", 1033: \"Number of updated records: <b>{{numOfChanges}}</b>. Click <u>here</u> to review.\"},\n \"saving-save\": {1029: \"Uložit\", 1033: \"Save\"},\n \"saving-saving\": {1029: \"Ukládání...\", 1033: \"Saving...\"},\n \"saving-changepreview-title\": {1033: 'Number of updated rows: {{numOfChanges}}', 1029: 'Počet upravených záznamů: {{numOfChanges}}'},\n \"saving-validation-error\": {1029: 'Pro uložení záznamu je nutné opravit chybové hodnoty následujících sloupců: <b>{{columnDisplayNames}}</b>', 1033: 'Folowing columns have validation errors: <b>{{columnDisplayNames}}</b>'},\n \"validation-input-value\": {1029: 'Zadejte hodnotu', 1033: 'Please enter value.'},\n \"validation-email\": {1029: 'Neplatný formát emailové adresy.', 1033: 'Invalid Email address format.'},\n \"validation-url\": {1029: 'Neplatný formát webové adresy.', 1033: 'Invalid URL format.'},\n \"validation-date\": {1029: 'Neplatný formát datumu.', 1033: 'Invalid Date format.'},\n \"validation-number\": {1029: 'Neplatný formát čísla.', 1033: 'Invalid Number format.'},\n \"no-name\": {1029: '(Bez názvu)', 1033: '(No Name)'},\n \"download\": {1029: 'Stáhnout', 1033: 'Download'},\n};\n \n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1,25 @@
|
|
|
1
|
-
import{useMemo
|
|
1
|
+
import { useMemo, useState, useEffect } from 'react';
|
|
2
|
+
import { useGridInstance } from '../../core/hooks/useGridInstance.js';
|
|
3
|
+
import { ColumnValidation } from '../model/ColumnValidation.js';
|
|
4
|
+
|
|
5
|
+
const useColumnValidationController = (props) => {
|
|
6
|
+
const grid = useGridInstance();
|
|
7
|
+
const column = props.column;
|
|
8
|
+
const record = props.record;
|
|
9
|
+
const columnValidation = useMemo(() => { return new ColumnValidation(grid, column); }, []);
|
|
10
|
+
const [isValid, setIsValid] = useState(true);
|
|
11
|
+
const [errorMessage, setErrorMessage] = useState("");
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
if (!column.isEditable) {
|
|
14
|
+
//we are not doing validation for non-editable columns
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const [isValid, errorMessage] = columnValidation.validate(record.getValue(column.key));
|
|
18
|
+
setIsValid(isValid);
|
|
19
|
+
setErrorMessage(errorMessage);
|
|
20
|
+
}, [record.getValue(column.key)]);
|
|
21
|
+
return [isValid, errorMessage];
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export { useColumnValidationController };
|
|
25
|
+
//# sourceMappingURL=useRecordValidationController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRecordValidationController.js","sources":["../../../../../src/components/Grid/validation/controllers/useRecordValidationController.ts"],"sourcesContent":["import { useEffect, useMemo, useState } from \"react\";\nimport { useGridInstance } from \"../../core/hooks/useGridInstance\";\nimport { IGridColumn } from \"../../core/interfaces/IGridColumn\";\nimport { ColumnValidation } from \"../model/ColumnValidation\";\n\ninterface IRecordValidation {\n column: IGridColumn;\n record: ComponentFramework.PropertyHelper.DataSetApi.EntityRecord;\n}\n\nexport const useColumnValidationController = (props: IRecordValidation): [boolean, string] => {\n const grid = useGridInstance();\n const column = props.column;\n const record = props.record;\n const columnValidation = useMemo(() => {return new ColumnValidation(grid, column)}, []);\n\n const [isValid, setIsValid] = useState<boolean>(true);\n const [errorMessage, setErrorMessage] = useState<string>(\"\");\n\n useEffect(() => {\n if(!column.isEditable) {\n //we are not doing validation for non-editable columns\n return;\n }\n const [isValid, errorMessage] = columnValidation.validate(record.getValue(column.key));\n setIsValid(isValid);\n setErrorMessage(errorMessage);\n }, [record.getValue(column.key)]);\n\n return [isValid, errorMessage];\n}"],"names":[],"mappings":";;;;AAUa,MAAA,6BAA6B,GAAG,CAAC,KAAwB,KAAuB;AACzF,IAAA,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;AAC/B,IAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AAC5B,IAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAK,EAAE,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA,EAAC,EAAE,EAAE,CAAC,CAAC;IAExF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAU,IAAI,CAAC,CAAC;IACtD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAC;IAE7D,SAAS,CAAC,MAAK;AACX,QAAA,IAAG,CAAC,MAAM,CAAC,UAAU,EAAE;;YAEnB,OAAO;AACV,SAAA;AACD,QAAA,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACvF,UAAU,CAAC,OAAO,CAAC,CAAC;QACpB,eAAe,CAAC,YAAY,CAAC,CAAC;AAClC,KAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAElC,IAAA,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AACnC;;;;"}
|
|
@@ -1 +1,84 @@
|
|
|
1
|
-
import
|
|
1
|
+
import isEmail from 'validator/es/lib/isEmail';
|
|
2
|
+
import isURL from 'validator/es/lib/isURL';
|
|
3
|
+
import dayjs from 'dayjs';
|
|
4
|
+
import { DataType } from '../../core/enums/DataType.js';
|
|
5
|
+
import { GridDependency } from '../../core/model/GridDependency.js';
|
|
6
|
+
|
|
7
|
+
class ColumnValidation extends GridDependency {
|
|
8
|
+
constructor(grid, column, forceNullCheck) {
|
|
9
|
+
super(grid);
|
|
10
|
+
this._column = column;
|
|
11
|
+
this._forceNullCheck = forceNullCheck ?? false;
|
|
12
|
+
}
|
|
13
|
+
validate(value) {
|
|
14
|
+
const isNull = this._isNull(value);
|
|
15
|
+
if ((this._column.isRequired || this._forceNullCheck)) {
|
|
16
|
+
if (isNull) {
|
|
17
|
+
return [false, this._labels["validation-input-value"]()];
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//can be null
|
|
21
|
+
else if (isNull) {
|
|
22
|
+
return [true, ""];
|
|
23
|
+
}
|
|
24
|
+
switch (this._column.dataType) {
|
|
25
|
+
case DataType.WHOLE_NONE:
|
|
26
|
+
case DataType.DECIMAL:
|
|
27
|
+
case DataType.CURRENCY:
|
|
28
|
+
case DataType.WHOLE_DURATION: {
|
|
29
|
+
if (typeof value === 'string') {
|
|
30
|
+
return [false, this._labels["validation-number"]()];
|
|
31
|
+
}
|
|
32
|
+
break;
|
|
33
|
+
}
|
|
34
|
+
case DataType.SINGLE_LINE_EMAIL: {
|
|
35
|
+
value = `${value}`;
|
|
36
|
+
if (!isEmail(value)) {
|
|
37
|
+
return [false, this._labels["validation-email"]()];
|
|
38
|
+
}
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
case DataType.SINGLE_LINE_URL: {
|
|
42
|
+
value = `${value}`;
|
|
43
|
+
if (!isURL(value)) {
|
|
44
|
+
return [false, this._labels["validation-url"]()];
|
|
45
|
+
}
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
case DataType.DATE_AND_TIME_DATE_AND_TIME:
|
|
49
|
+
case DataType.DATE_AND_TIME_DATE_ONLY: {
|
|
50
|
+
const date = dayjs(value);
|
|
51
|
+
if (!date.isValid()) {
|
|
52
|
+
return [false, this._labels["validation-date"]()];
|
|
53
|
+
}
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
default: {
|
|
57
|
+
if (!value) {
|
|
58
|
+
return [false, this._labels["validation-input-value"]()];
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return [true, ""];
|
|
63
|
+
}
|
|
64
|
+
_isNull(value) {
|
|
65
|
+
if (value === undefined) {
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
if (value === null) {
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
if (value === "") {
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
if (value?.length === 0) {
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
get _labels() {
|
|
79
|
+
return this._grid.labels;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export { ColumnValidation };
|
|
84
|
+
//# sourceMappingURL=ColumnValidation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ColumnValidation.js","sources":["../../../../../src/components/Grid/validation/model/ColumnValidation.ts"],"sourcesContent":["import isEmail from \"validator/es/lib/isEmail\";\nimport isURL from \"validator/es/lib/isURL\";\nimport dayjs from \"dayjs\";\nimport { DataType } from \"../../core/enums/DataType\";\nimport { IGridColumn } from \"../../core/interfaces/IGridColumn\";\nimport { GridDependency } from \"../../core/model/GridDependency\";\nimport { Grid } from \"../../core/model/Grid\";\n\nexport class ColumnValidation extends GridDependency {\n private _column: IGridColumn;\n private _forceNullCheck: boolean;\n\n constructor(grid: Grid, column: IGridColumn, forceNullCheck?: boolean) {\n super(grid);\n this._column = column;\n this._forceNullCheck = forceNullCheck ?? false;\n }\n public validate(value: any): [boolean, string] {\n const isNull = this._isNull(value);\n if ((this._column.isRequired || this._forceNullCheck)) {\n if (isNull) {\n return [false, this._labels[\"validation-input-value\"]()]\n }\n }\n //can be null\n else if (isNull) {\n return [true, \"\"]\n }\n switch (this._column.dataType) {\n case DataType.WHOLE_NONE:\n case DataType.DECIMAL:\n case DataType.CURRENCY:\n case DataType.WHOLE_DURATION: {\n if (typeof value === 'string') {\n return [false, this._labels[\"validation-number\"]()]\n }\n break;\n }\n case DataType.SINGLE_LINE_EMAIL: {\n value = `${value}`;\n if (!isEmail(value)) {\n return [false, this._labels[\"validation-email\"]()]\n }\n break;\n }\n case DataType.SINGLE_LINE_URL: {\n value = `${value}`;\n if (!isURL(value)) {\n return [false, this._labels[\"validation-url\"]()]\n }\n break;\n }\n case DataType.DATE_AND_TIME_DATE_AND_TIME:\n case DataType.DATE_AND_TIME_DATE_ONLY: {\n const date = dayjs(value);\n if (!date.isValid()) {\n return [false, this._labels[\"validation-date\"]()]\n }\n break;\n }\n default: {\n if (!value) {\n return [false, this._labels[\"validation-input-value\"]()]\n }\n }\n }\n return [true, \"\"];\n }\n private _isNull(value: any) {\n if(value === undefined) {\n return true;\n }\n if (value === null) {\n return true;\n }\n if(value === \"\") {\n return true;\n }\n if(value?.length === 0) {\n return true;\n }\n }\n private get _labels() {\n return this._grid.labels;\n }\n}"],"names":[],"mappings":"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"}
|