@talxis/base-controls 1.2408.1 → 1.2408.3

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.
Files changed (254) hide show
  1. package/dist/components/DateTime/DateTime.js +133 -1
  2. package/dist/components/DateTime/DateTime.js.map +1 -0
  3. package/dist/components/DateTime/components/Calendar.js +63 -1
  4. package/dist/components/DateTime/components/Calendar.js.map +1 -0
  5. package/dist/components/DateTime/hooks/useDateTime.js +137 -1
  6. package/dist/components/DateTime/hooks/useDateTime.js.map +1 -0
  7. package/dist/components/DateTime/index.js +3 -1
  8. package/dist/components/DateTime/index.js.map +1 -0
  9. package/dist/components/DateTime/styles.js +37 -1
  10. package/dist/components/DateTime/styles.js.map +1 -0
  11. package/dist/components/DateTime/translations.js +23 -1
  12. package/dist/components/DateTime/translations.js.map +1 -0
  13. package/dist/components/Decimal/Decimal.js +200 -1
  14. package/dist/components/Decimal/Decimal.js.map +1 -0
  15. package/dist/components/Decimal/components/ArrowButtons.js +38 -1
  16. package/dist/components/Decimal/components/ArrowButtons.js.map +1 -0
  17. package/dist/components/Decimal/components/styles.js +26 -1
  18. package/dist/components/Decimal/components/styles.js.map +1 -0
  19. package/dist/components/Decimal/index.js +2 -1
  20. package/dist/components/Decimal/index.js.map +1 -0
  21. package/dist/components/Decimal/interfaces.d.ts +1 -1
  22. package/dist/components/Duration/Duration.js +132 -1
  23. package/dist/components/Duration/Duration.js.map +1 -0
  24. package/dist/components/Duration/durationOptions.d.ts +2 -0
  25. package/dist/components/Duration/durationOptions.js +27 -0
  26. package/dist/components/Duration/durationOptions.js.map +1 -0
  27. package/dist/components/Duration/index.js +2 -1
  28. package/dist/components/Duration/index.js.map +1 -0
  29. package/dist/components/Duration/translations.js +31 -1
  30. package/dist/components/Duration/translations.js.map +1 -0
  31. package/dist/components/Grid/Grid.js +30 -1
  32. package/dist/components/Grid/Grid.js.map +1 -0
  33. package/dist/components/Grid/GridContext.js +6 -1
  34. package/dist/components/Grid/GridContext.js.map +1 -0
  35. package/dist/components/Grid/constants.js +4 -1
  36. package/dist/components/Grid/constants.js.map +1 -0
  37. package/dist/components/Grid/core/components/AgGrid/AgGrid.js +85 -1
  38. package/dist/components/Grid/core/components/AgGrid/AgGrid.js.map +1 -0
  39. package/dist/components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/EmptyRecords.js +12 -1
  40. package/dist/components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/EmptyRecords.js.map +1 -0
  41. package/dist/components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/styles.js +23 -1
  42. package/dist/components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/styles.js.map +1 -0
  43. package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/LoadingOverlay.js +11 -1
  44. package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/LoadingOverlay.js.map +1 -0
  45. package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/styles.js +82 -1
  46. package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/styles.js.map +1 -0
  47. package/dist/components/Grid/core/components/AgGrid/controllers/useAgGridController.js +169 -1
  48. package/dist/components/Grid/core/components/AgGrid/controllers/useAgGridController.js.map +1 -0
  49. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js +116 -1
  50. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js.map +1 -0
  51. package/dist/components/Grid/core/components/AgGrid/styles.js +91 -1
  52. package/dist/components/Grid/core/components/AgGrid/styles.js.map +1 -0
  53. package/dist/components/Grid/core/components/Cell/Commands/Commands.js +29 -1
  54. package/dist/components/Grid/core/components/Cell/Commands/Commands.js.map +1 -0
  55. package/dist/components/Grid/core/components/Cell/Commands/Icon.js +14 -1
  56. package/dist/components/Grid/core/components/Cell/Commands/Icon.js.map +1 -0
  57. package/dist/components/Grid/core/components/Cell/Commands/styles.js +54 -1
  58. package/dist/components/Grid/core/components/Cell/Commands/styles.js.map +1 -0
  59. package/dist/components/Grid/core/components/Cell/Commands/useCommands.js +52 -1
  60. package/dist/components/Grid/core/components/Cell/Commands/useCommands.js.map +1 -0
  61. package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.js +148 -1
  62. package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.js.map +1 -0
  63. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.js +139 -1
  64. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.js.map +1 -0
  65. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.js +49 -1
  66. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.js.map +1 -0
  67. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/styles.js +27 -1
  68. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/styles.js.map +1 -0
  69. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.js +58 -1
  70. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.js.map +1 -0
  71. package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.js +60 -1
  72. package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.js.map +1 -0
  73. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.js +26 -1
  74. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.js.map +1 -0
  75. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/styles.js +19 -1
  76. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/styles.js.map +1 -0
  77. package/dist/components/Grid/core/components/ColumnHeader/styles.js +44 -1
  78. package/dist/components/Grid/core/components/ColumnHeader/styles.js.map +1 -0
  79. package/dist/components/Grid/core/components/Component/Component.js +53 -1
  80. package/dist/components/Grid/core/components/Component/Component.js.map +1 -0
  81. package/dist/components/Grid/core/components/Component/controller/useComponentController.js +31 -1
  82. package/dist/components/Grid/core/components/Component/controller/useComponentController.js.map +1 -0
  83. package/dist/components/Grid/core/components/Component/model/Component.js +225 -1
  84. package/dist/components/Grid/core/components/Component/model/Component.js.map +1 -0
  85. package/dist/components/Grid/core/components/Dialog/Constants.js +9 -1
  86. package/dist/components/Grid/core/components/Dialog/Constants.js.map +1 -0
  87. package/dist/components/Grid/core/components/Dialog/Styles.js +61 -1
  88. package/dist/components/Grid/core/components/Dialog/Styles.js.map +1 -0
  89. package/dist/components/Grid/core/components/Dialog/index.js +16 -1
  90. package/dist/components/Grid/core/components/Dialog/index.js.map +1 -0
  91. package/dist/components/Grid/core/components/Dialog/interfaces/index.js +1 -0
  92. package/dist/components/Grid/core/components/Dialog/interfaces/index.js.map +1 -0
  93. package/dist/components/Grid/core/components/Save/Save.js +47 -1
  94. package/dist/components/Grid/core/components/Save/Save.js.map +1 -0
  95. package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.js +39 -1
  96. package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.js.map +1 -0
  97. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/RecordGrids.js +136 -1
  98. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/RecordGrids.js.map +1 -0
  99. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/styles.js +54 -1
  100. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/styles.js.map +1 -0
  101. package/dist/components/Grid/core/components/Save/components/ChangeEditor/styles.js +37 -1
  102. package/dist/components/Grid/core/components/Save/components/ChangeEditor/styles.js.map +1 -0
  103. package/dist/components/Grid/core/components/Save/hooks/useSave.js +45 -1
  104. package/dist/components/Grid/core/components/Save/hooks/useSave.js.map +1 -0
  105. package/dist/components/Grid/core/components/Save/styles.js +44 -1
  106. package/dist/components/Grid/core/components/Save/styles.js.map +1 -0
  107. package/dist/components/Grid/core/controllers/useGridController.js +39 -1
  108. package/dist/components/Grid/core/controllers/useGridController.js.map +1 -0
  109. package/dist/components/Grid/core/enums/ConditionOperator.js +50 -1
  110. package/dist/components/Grid/core/enums/ConditionOperator.js.map +1 -0
  111. package/dist/components/Grid/core/enums/DataType.js +30 -1
  112. package/dist/components/Grid/core/enums/DataType.js.map +1 -0
  113. package/dist/components/Grid/core/hooks/useGridInstance.js +9 -1
  114. package/dist/components/Grid/core/hooks/useGridInstance.js.map +1 -0
  115. package/dist/components/Grid/core/hooks/useRefreshCallback.js +20 -1
  116. package/dist/components/Grid/core/hooks/useRefreshCallback.js.map +1 -0
  117. package/dist/components/Grid/core/hooks/useRerender.js +13 -1
  118. package/dist/components/Grid/core/hooks/useRerender.js.map +1 -0
  119. package/dist/components/Grid/core/model/Grid.js +249 -1
  120. package/dist/components/Grid/core/model/Grid.js.map +1 -0
  121. package/dist/components/Grid/core/model/GridDependency.js +28 -1
  122. package/dist/components/Grid/core/model/GridDependency.js.map +1 -0
  123. package/dist/components/Grid/core/model/Metadata.js +22 -1
  124. package/dist/components/Grid/core/model/Metadata.js.map +1 -0
  125. package/dist/components/Grid/core/services/RecordUpdateService/controllers/useRecordUpdateServiceController.js +25 -1
  126. package/dist/components/Grid/core/services/RecordUpdateService/controllers/useRecordUpdateServiceController.js.map +1 -0
  127. package/dist/components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.js +190 -1
  128. package/dist/components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.js.map +1 -0
  129. package/dist/components/Grid/filtering/components/FilterCallout/FilterCallout.js +50 -1
  130. package/dist/components/Grid/filtering/components/FilterCallout/FilterCallout.js.map +1 -0
  131. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionOperator/ConditionOperator.js +58 -1
  132. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionOperator/ConditionOperator.js.map +1 -0
  133. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.js +52 -1
  134. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.js.map +1 -0
  135. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.js +125 -1
  136. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.js.map +1 -0
  137. package/dist/components/Grid/filtering/components/FilterCallout/styles.js +40 -1
  138. package/dist/components/Grid/filtering/components/FilterCallout/styles.js.map +1 -0
  139. package/dist/components/Grid/filtering/constants.js +51 -1
  140. package/dist/components/Grid/filtering/constants.js.map +1 -0
  141. package/dist/components/Grid/filtering/controller/useColumnFilterConditionController.js +42 -1
  142. package/dist/components/Grid/filtering/controller/useColumnFilterConditionController.js.map +1 -0
  143. package/dist/components/Grid/filtering/model/Condition.js +297 -1
  144. package/dist/components/Grid/filtering/model/Condition.js.map +1 -0
  145. package/dist/components/Grid/filtering/model/Filtering.js +78 -1
  146. package/dist/components/Grid/filtering/model/Filtering.js.map +1 -0
  147. package/dist/components/Grid/filtering/utils/FilteringUtilts.js +195 -1
  148. package/dist/components/Grid/filtering/utils/FilteringUtilts.js.map +1 -0
  149. package/dist/components/Grid/index.js +2 -1
  150. package/dist/components/Grid/index.js.map +1 -0
  151. package/dist/components/Grid/paging/components/Paging/Paging.js +63 -1
  152. package/dist/components/Grid/paging/components/Paging/Paging.js.map +1 -0
  153. package/dist/components/Grid/paging/components/Paging/styles.js +41 -1
  154. package/dist/components/Grid/paging/components/Paging/styles.js.map +1 -0
  155. package/dist/components/Grid/paging/controllers/usePagingController.js +23 -1
  156. package/dist/components/Grid/paging/controllers/usePagingController.js.map +1 -0
  157. package/dist/components/Grid/paging/model/Paging.js +56 -1
  158. package/dist/components/Grid/paging/model/Paging.js.map +1 -0
  159. package/dist/components/Grid/selection/controllers/useSelectionController.js +17 -1
  160. package/dist/components/Grid/selection/controllers/useSelectionController.js.map +1 -0
  161. package/dist/components/Grid/selection/model/Selection.js +69 -1
  162. package/dist/components/Grid/selection/model/Selection.js.map +1 -0
  163. package/dist/components/Grid/sorting/Sorting.js +33 -1
  164. package/dist/components/Grid/sorting/Sorting.js.map +1 -0
  165. package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js +120 -1
  166. package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js.map +1 -0
  167. package/dist/components/Grid/sorting/components/SortingContextualMenu/styles.js +15 -1
  168. package/dist/components/Grid/sorting/components/SortingContextualMenu/styles.js.map +1 -0
  169. package/dist/components/Grid/sorting/controllers/useColumnSortingController.js +21 -1
  170. package/dist/components/Grid/sorting/controllers/useColumnSortingController.js.map +1 -0
  171. package/dist/components/Grid/translations.js +81 -1
  172. package/dist/components/Grid/translations.js.map +1 -0
  173. package/dist/components/Grid/validation/controllers/useRecordValidationController.js +25 -1
  174. package/dist/components/Grid/validation/controllers/useRecordValidationController.js.map +1 -0
  175. package/dist/components/Grid/validation/model/ColumnValidation.js +84 -1
  176. package/dist/components/Grid/validation/model/ColumnValidation.js.map +1 -0
  177. package/dist/components/Lookup/Lookup.js +201 -1
  178. package/dist/components/Lookup/Lookup.js.map +1 -0
  179. package/dist/components/Lookup/components/RecordCreator.js +37 -1
  180. package/dist/components/Lookup/components/RecordCreator.js.map +1 -0
  181. package/dist/components/Lookup/components/TargetSelector.js +19 -1
  182. package/dist/components/Lookup/components/TargetSelector.js.map +1 -0
  183. package/dist/components/Lookup/hooks/useFetchXml.js +27 -1
  184. package/dist/components/Lookup/hooks/useFetchXml.js.map +1 -0
  185. package/dist/components/Lookup/hooks/useLoadedEntities.js +20 -1
  186. package/dist/components/Lookup/hooks/useLoadedEntities.js.map +1 -0
  187. package/dist/components/Lookup/hooks/useLookup.js +111 -1
  188. package/dist/components/Lookup/hooks/useLookup.js.map +1 -0
  189. package/dist/components/Lookup/index.js +3 -1
  190. package/dist/components/Lookup/index.js.map +1 -0
  191. package/dist/components/Lookup/styles.js +98 -1
  192. package/dist/components/Lookup/styles.js.map +1 -0
  193. package/dist/components/Lookup/translations.js +33 -1
  194. package/dist/components/Lookup/translations.js.map +1 -0
  195. package/dist/components/MultiSelectOptionSet/MultiSelectOptionSet.js +74 -1
  196. package/dist/components/MultiSelectOptionSet/MultiSelectOptionSet.js.map +1 -0
  197. package/dist/components/MultiSelectOptionSet/index.js +2 -1
  198. package/dist/components/MultiSelectOptionSet/index.js.map +1 -0
  199. package/dist/components/OptionSet/OptionSet.js +61 -1
  200. package/dist/components/OptionSet/OptionSet.js.map +1 -0
  201. package/dist/components/OptionSet/index.js +2 -1
  202. package/dist/components/OptionSet/index.js.map +1 -0
  203. package/dist/components/TextField/TextField.js +113 -1
  204. package/dist/components/TextField/TextField.js.map +1 -0
  205. package/dist/components/TextField/index.js +2 -1
  206. package/dist/components/TextField/index.js.map +1 -0
  207. package/dist/components/TwoOptions/TwoOptions.js +36 -1
  208. package/dist/components/TwoOptions/TwoOptions.js.map +1 -0
  209. package/dist/components/TwoOptions/index.js +2 -1
  210. package/dist/components/TwoOptions/index.js.map +1 -0
  211. package/dist/constants.js +35 -1
  212. package/dist/constants.js.map +1 -0
  213. package/dist/hooks/index.js +7 -1
  214. package/dist/hooks/index.js.map +1 -0
  215. package/dist/hooks/useControl.js +95 -1
  216. package/dist/hooks/useControl.js.map +1 -0
  217. package/dist/hooks/useControlSizing.js +15 -1
  218. package/dist/hooks/useControlSizing.js.map +1 -0
  219. package/dist/hooks/useControlTheme.js +9 -1
  220. package/dist/hooks/useControlTheme.js.map +1 -0
  221. package/dist/hooks/useFocusIn.js +33 -1
  222. package/dist/hooks/useFocusIn.js.map +1 -0
  223. package/dist/hooks/useInputBasedControl.js +38 -1
  224. package/dist/hooks/useInputBasedControl.js.map +1 -0
  225. package/dist/hooks/useMouseOver.js +23 -1
  226. package/dist/hooks/useMouseOver.js.map +1 -0
  227. package/dist/index.d.ts +1 -1
  228. package/dist/index.js +19 -1
  229. package/dist/index.js.map +1 -0
  230. package/dist/interfaces/index.js +1 -0
  231. package/dist/interfaces/index.js.map +1 -0
  232. package/dist/utils/Numeral.js +64 -1
  233. package/dist/utils/Numeral.js.map +1 -0
  234. package/dist/utils/Theme.js +72 -1
  235. package/dist/utils/Theme.js.map +1 -0
  236. package/dist/utils/index.js +3 -1
  237. package/dist/utils/index.js.map +1 -0
  238. package/package.json +4 -2
  239. package/dist/Grid-b7e6190d.js +0 -1
  240. package/dist/components/DateTime/interfaces.js +0 -1
  241. package/dist/components/Decimal/interfaces.js +0 -1
  242. package/dist/components/Duration/interfaces.js +0 -1
  243. package/dist/components/Grid/core/interfaces/IGridColumn.js +0 -1
  244. package/dist/components/Grid/core/interfaces/IGridContext.js +0 -1
  245. package/dist/components/Grid/interfaces.js +0 -1
  246. package/dist/components/Lookup/interfaces.js +0 -1
  247. package/dist/components/MultiSelectOptionSet/interfaces.js +0 -1
  248. package/dist/components/OptionSet/interfaces.js +0 -1
  249. package/dist/components/TextField/interfaces.js +0 -1
  250. package/dist/components/TwoOptions/interfaces.js +0 -1
  251. package/dist/interfaces/context.js +0 -1
  252. package/dist/interfaces/parameters.js +0 -1
  253. package/dist/interfaces/property.js +0 -1
  254. package/dist/interfaces/theme.js +0 -1
@@ -1 +1,33 @@
1
- import{GridDependency as t}from"../core/model/GridDependency.js";class Sorting extends t{get(t){return{value:this._dataset.sorting.find((e=>e.name===t.key)),sort:e=>{var s;const o=new Map(this._dataset.sorting.map((t=>[t.name,t])));for((null===(s=window.TALXIS)||void 0===s?void 0:s.Portal)&&o.clear(),o.set(t.key,{name:t.key,sortDirection:e});this._dataset.sorting.length;)this._dataset.sorting.pop();for(const t of o.values())this._dataset.sorting.push(t);this._dataset.refresh()}}}}export{Sorting};
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;;;;"}
@@ -1 +1,120 @@
1
- import{__awaiter as e}from"tslib";import{jsx as t}from"react/jsx-runtime";import{useState as o,useEffect as r}from"react";import{useTheme as i,ContextualMenuItemType as s,ContextualMenu as n}from"@fluentui/react";import{DataType as a}from"../../../core/enums/DataType.js";import{getColumnHeaderContextualMenuStyles as l}from"./styles.js";import{useGridInstance as c}from"../../../core/hooks/useGridInstance.js";import{useColumnSortingController as m}from"../../controllers/useColumnSortingController.js";import{useColumnFilterConditionController as d}from"../../../filtering/controller/useColumnFilterConditionController.js";import"../../../GridContext.js";import"../../../core/hooks/useRefreshCallback.js";const u=u=>{const f=c(),p=f.labels,T=l(i()),{column:b,onDismiss:C}=Object.assign({},u),E=m(b),N=d(b),[_,v]=o([]);r((()=>{e(void 0,void 0,void 0,(function*(){v(yield D())}))}),[N]);const y=t=>e(void 0,void 0,void 0,(function*(){switch(b.dataType){case a.WHOLE_NONE:case a.DECIMAL:case a.FP:case a.CURRENCY:return t?p["filtersortmenu-sortnumber-z-a"]():p["filtersortmenu-sortnumber-a-z"]();case a.DATE_AND_TIME_DATE_AND_TIME:case a.DATE_AND_TIME_DATE_ONLY:return t?p["filtersortmenu-sortdate-z-a"]():p["filtersortmenu-sortdate-a-z"]();case a.TWO_OPTIONS:return(t=>e(void 0,void 0,void 0,(function*(){const[e,o]=yield f.metadata.getOptions(b);return t?`${o[1].Label} ${p["filtersortmenu-sorttwooption-joint"]()} ${o[0].Label}`:`${o[0].Label} ${p["filtersortmenu-sorttwooption-joint"]()} ${o[1].Label}`})))(t);default:return t?p["filtersortmenu-sorttext-z-a"]():p["filtersortmenu-sorttext-a-z"]()}})),D=()=>e(void 0,void 0,void 0,(function*(){if(!N)return[];const e=[{key:"sort_asc",checked:b.isSorted&&!b.isSortedDescending,disabled:!b.isSortable||b.dataType===a.MULTI_SELECT_OPTIONSET,text:yield y(),className:T.item,iconProps:{iconName:"SortUp"},onClick:()=>E.sort(0)},{key:"sort_desc",checked:b.isSorted&&b.isSortedDescending,disabled:!b.isSortable||b.dataType===a.MULTI_SELECT_OPTIONSET,text:yield y(!0),className:T.item,iconProps:{iconName:"SortDown"},onClick:()=>E.sort(1)},{key:"divider",itemType:s.Divider},{key:"filter",className:T.item,disabled:!b.isFilterable,text:p["filtermenu-filterby"](),iconProps:{iconName:"Filter"},onClick:e=>C(e,!1,!0)}];return N.isAppliedToDataset&&e.push({key:"clearFilter",text:p["filtersortmenu-clearfilter"](),iconProps:{iconName:"ClearFilter"},onClick:()=>{N.remove(),N.save()}}),e}));return t(n,Object.assign({},u,{items:_}))};export{u as SortingContextualMenu};
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
@@ -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 as o}from"@fluentui/react";const t=t=>o({item:{"& .is-checked":{backgroundColor:t.semanticColors.buttonBackgroundHovered,fontWeight:600}}});export{t as getColumnHeaderContextualMenuStyles};
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 as o,useEffect as r}from"react";import{useGridInstance as t}from"../../core/hooks/useGridInstance.js";import"../../GridContext.js";const e=e=>{const s=t().sorting.get(e),n=()=>({value:s.value,sort:o=>s.sort(o)}),[i,a]=o((()=>n()));return r((()=>{a(n())}),[s.value]),i};export{e as useColumnSortingController};
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 o={"condition-none":{1029:"Žádná",1033:"None"},"condition-equal":{1029:"Je rovno",1033:"Equals"},"condition-notequal":{1029:"Není rovno",1033:"Does not equal"},"condition-greaterthan":{1029:"Větší než",1033:"Greater than"},"condition-lessthan":{1029:"Menší než",1033:"Less than"},"condition-greaterequal":{1029:"Větší než nebo rovno",1033:"Greater than or equal to"},"condition-lessequal":{1029:"Menší než nebo rovno",1033:"Less than or equal to"},"condition-like":{1029:"Obsahuje",1033:"Contains"},"condition-notlike":{1029:"Neobsahuje",1033:"Does not contain"},"condition-null":{1029:"Neobsahuje data",1033:"Does not contain data"},"condition-notnull":{1029:"Obsahuje data",1033:"Contains data"},"condition-beginwith":{1029:"Začíná na",1033:"Begins with"},"condition-doesnotbeginwith":{1029:"Nezačíná na",1033:"Does not begin with"},"condition-endswith":{1029:"Končí na",1033:"Ends with"},"condition-doesnotendwith":{1029:"Nekončí na",1033:"Does not end with"},"condition-yesterday":{1029:"Včera",1033:"Yesterday"},"condition-today":{1029:"Dneska",1033:"Today"},"condition-tomorrow":{1029:"Zítra",1033:"Tomorrow"},"condition-last7days":{1029:"Posledních 7 dnů",1033:"Last 7 days"},"condition-next7days":{1029:"Příštích 7 dnů",1033:"Next 7 days"},"condition-lastweek":{1029:"Minulý týden",1033:"Last week"},"condition-thisweek":{1029:"Tento týden",1033:"This week"},"condition-lastmonth":{1029:"Minulý měsíc",1033:"Last month"},"condition-thismonth":{1029:"Tento měsíc",1033:"This month"},"condition-on":{1029:"V den",1033:"On"},"condition-onorbefore":{1029:"Před dnem (včetně)",1033:"On or before"},"condition-onorafter":{1029:"Po dni (včetně)",1033:"On or after"},"condition-lastyear":{1029:"Poslední rok",1033:"Last year"},"condition-thisyear":{1029:"Tento rok",1033:"This year"},"condition-lastxdays":{1029:"Posledních X dnů",1033:"Last X days"},"condition-nextxdays":{1029:"Příštích X dnů",1033:"Next X days"},"condition-lastxmonths":{1029:"Posledních X měsíců",1033:"Last X months"},"condition-nextxmonths":{1029:"Příštích X měsíců",1033:"Next X months"},"condition-contains":{1029:"Obsahuje",1033:"Contains"},"condition-infiscalperiodandyear":{1029:"Toto fiskální období a rok",1033:"In fiscal period and year"},"condition-above":{1029:"Nad",1033:"Above"},"condition-under":{1029:"Pod",1033:"Under"},"condition-notunder":{1029:"Není pod",1033:"Not under"},"condition-aboveorequal":{1029:"Je nad nebo se rovná",1033:"Above or equal"},"condition-underorequal":{1029:"Je pod nebo se rovná",1033:"Under or equal"},"condition-containvalues":{1029:"Obsahuje hodnoty",1033:"Contain values"},"condition-doesnotcontainvalues":{1029:"Neobsahuje hodnoty",1033:"Does not contain values"},"filtermenu-filterby":{1029:"Filtrovat podle",1033:"Filter By"},"filtermenu-applybutton":{1029:"Použít",1033:"Apply"},"filtermenu-clearbutton":{1029:"Vymazat",1033:"Clear"},"filtersortmenu-sorttext-a-z":{1029:"Seřadit od A do Z",1033:"Sort A to Z"},"filtersortmenu-sorttext-z-a":{1029:"Seřadit od Z do A",1033:"Sort Z to A"},"filtersortmenu-sortdate-a-z":{1029:"Seřadit od nejstarších",1033:"Sort older to newer"},"filtersortmenu-sortdate-z-a":{1029:"Seřadit od nejnovějších",1033:"Sort newer to older"},"filtersortmenu-sortnumber-a-z":{1029:"Seřadit od nejmenších",1033:"Sort smaller to larger"},"filtersortmenu-sortnumber-z-a":{1029:"Seřadit od největších",1033:"Sort larger to smaller"},"filtersortmenu-sorttwooption-a-z":{1029:"Seřadit od nejmenších",1033:"No to Yes"},"filtersortmenu-sorttwooption-z-a":{1029:"Seřadit od největších",1033:"Yes to No"},"filtersortmenu-sorttwooption-joint":{1029:"až",1033:"to"},"filtersortmenu-filterby":{1029:"Filtrovat podle",1033:"Filter by"},"filtersortmenu-clearfilter":{1029:"Vymazat filtr",1033:"Clear filter"},"paging-of":{1029:"z",1033:"of"},"paging-firstpage":{1029:"První strana",1033:"First page"},"paging-previouspage":{1029:"Předchozí",1033:"Previous"},"paging-page":{1029:"Strana",1033:"Page"},"paging-nextpage":{1029:"Další",1033:"Next"},"paging-lastpage":{1029:"Poslední strana",1033:"Last page"},"paging-pages":{1029:"{{start}} - {{end}} z {{recordcount}}",1033:"{{start}} - {{end}} of {{recordcount}}"},norecordsfound:{1029:"Nenašli jsme nic, co by se zde dalo zobrazit.",1033:"No records found."},"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."},"saving-save":{1029:"Uložit",1033:"Save"},"saving-saving":{1029:"Ukládání...",1033:"Saving..."},"saving-changepreview-title":{1033:"Number of updated rows: {{numOfChanges}}",1029:"Počet upravených záznamů: {{numOfChanges}}"},"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>"},"validation-input-value":{1029:"Zadejte hodnotu",1033:"Please enter value."},"validation-email":{1029:"Neplatný formát emailové adresy.",1033:"Invalid Email address format."},"validation-url":{1029:"Neplatný formát webové adresy.",1033:"Invalid URL format."},"validation-date":{1029:"Neplatný formát datumu.",1033:"Invalid Date format."},"validation-number":{1029:"Neplatný formát čísla.",1033:"Invalid Number format."},"no-name":{1029:"(Bez názvu)",1033:"(No Name)"},download:{1029:"Stáhnout",1033:"Download"}};export{o as gridTranslations};
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":"AAAa,MAAA,gBAAgB,GAAG;IAC5B,gBAAgB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;IACjD,iBAAiB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE;IACvD,oBAAoB,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,gBAAgB,EAAE;IACpE,uBAAuB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE;IACpE,oBAAoB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE;IAC9D,wBAAwB,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,0BAA0B,EAAE;IAC5F,qBAAqB,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,uBAAuB,EAAE;IACtF,gBAAgB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE;IACxD,mBAAmB,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,EAAE;IACrE,gBAAgB,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,uBAAuB,EAAE;IAC5E,mBAAmB,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE;IACrE,qBAAqB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE;IACjE,4BAA4B,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,qBAAqB,EAAE;IAClF,oBAAoB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE;IAC7D,0BAA0B,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;IAC7E,qBAAqB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE;IAC3D,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;IACpD,oBAAoB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE;IACzD,qBAAqB,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,aAAa,EAAE;IACxE,qBAAqB,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,EAAE;IACtE,oBAAoB,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE;IACjE,oBAAoB,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE;IAChE,qBAAqB,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE;IACnE,qBAAqB,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE;IAClE,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;IAC7C,sBAAsB,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,cAAc,EAAE;IAC5E,qBAAqB,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,aAAa,EAAE;IACvE,oBAAoB,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE;IACjE,oBAAoB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE;IAC9D,qBAAqB,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,aAAa,EAAE;IACxE,qBAAqB,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,EAAE;IACtE,uBAAuB,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,eAAe,EAAE;IAC/E,uBAAuB,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,eAAe,EAAE;IAC7E,oBAAoB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE;IAC5D,iCAAiC,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,IAAI,EAAE,2BAA2B,EAAE;IAC5G,iBAAiB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE;IACjD,iBAAiB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE;IACjD,oBAAoB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE;IAC7D,wBAAwB,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,gBAAgB,EAAE;IAClF,wBAAwB,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,gBAAgB,EAAE;IAClF,yBAAyB,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,gBAAgB,EAAE;IAC/E,gCAAgC,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,yBAAyB,EAAE;IACjG,qBAAqB,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,WAAW,EAAE;IACrE,wBAAwB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;IAC3D,wBAAwB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE;IAC5D,6BAA6B,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,aAAa,EAAE;IACjF,6BAA6B,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,aAAa,EAAE;IACjF,6BAA6B,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,qBAAqB,EAAE;IAC9F,6BAA6B,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,qBAAqB,EAAE;IAC/F,+BAA+B,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,wBAAwB,EAAE;IAClG,+BAA+B,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,wBAAwB,EAAE;IAClG,kCAAkC,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,WAAW,EAAE;IACxF,kCAAkC,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,WAAW,EAAE;IACxF,oCAAoC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;IAChE,yBAAyB,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,WAAW,EAAE;IACzE,4BAA4B,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE;IAC7E,WAAW,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE;IACtC,kBAAkB,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE;IAChE,qBAAqB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE;IAC9D,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;IAC/C,iBAAiB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;IAClD,iBAAiB,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,WAAW,EAAE;IACjE,cAAc,EAAE,EAAC,IAAI,EAAE,uCAAuC,EAAE,IAAI,EAAE,wCAAwC,EAAC;IAC/G,gBAAgB,EAAE,EAAC,IAAI,EAAE,+CAA+C,EAAE,IAAI,EAAE,mBAAmB,EAAC;IACpG,2BAA2B,EAAE,EAAC,IAAI,EAAE,8FAA8F,EAAE,IAAI,EAAE,kFAAkF,EAAC;IAC7N,aAAa,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAC;IAC7C,eAAe,EAAE,EAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAC;IACzD,4BAA4B,EAAE,EAAC,IAAI,EAAE,0CAA0C,EAAE,IAAI,EAAE,4CAA4C,EAAC;IACpI,yBAAyB,EAAE,EAAC,IAAI,EAAE,2GAA2G,EAAE,IAAI,EAAE,wEAAwE,EAAC;IAC9N,wBAAwB,EAAG,EAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,qBAAqB,EAAC;IACjF,kBAAkB,EAAG,EAAC,IAAI,EAAE,kCAAkC,EAAE,IAAI,EAAE,+BAA+B,EAAC;IACtG,gBAAgB,EAAG,EAAC,IAAI,EAAE,gCAAgC,EAAE,IAAI,EAAE,qBAAqB,EAAC;IACxF,iBAAiB,EAAE,EAAC,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,sBAAsB,EAAC;IAClF,mBAAmB,EAAE,EAAC,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,wBAAwB,EAAC;IACrF,SAAS,EAAE,EAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAC;IACnD,UAAU,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAC;;;;;"}
@@ -1 +1,25 @@
1
- import{useMemo as o,useState as e,useEffect as r}from"react";import{useGridInstance as t}from"../../core/hooks/useGridInstance.js";import{ColumnValidation as i}from"../model/ColumnValidation.js";import"../../GridContext.js";import"validator/es/lib/isEmail";import"validator/es/lib/isURL";import"dayjs";import"../../core/enums/DataType.js";import"../../core/model/GridDependency.js";const m=m=>{const s=t(),a=m.column,n=m.record,l=o((()=>new i(s,a)),[]),[d,p]=e(!0),[c,u]=e("");return r((()=>{if(!a.isEditable)return;const[o,e]=l.validate(n.getValue(a.key));p(o),u(e)}),[n.getValue(a.key)]),[d,c]};export{m as useColumnValidationController};
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 i from"validator/es/lib/isEmail";import e from"validator/es/lib/isURL";import l from"dayjs";import{DataType as a}from"../../core/enums/DataType.js";import{GridDependency as t}from"../../core/model/GridDependency.js";class ColumnValidation extends t{constructor(i,e,l){super(i),this._column=e,this._forceNullCheck=null!=l&&l}validate(t){const r=this._isNull(t);if(this._column.isRequired||this._forceNullCheck){if(r)return[!1,this._labels["validation-input-value"]()]}else if(r)return[!0,""];switch(this._column.dataType){case a.WHOLE_NONE:case a.DECIMAL:case a.CURRENCY:case a.WHOLE_DURATION:if("string"==typeof t)return[!1,this._labels["validation-number"]()];break;case a.SINGLE_LINE_EMAIL:if(!i(t=`${t}`))return[!1,this._labels["validation-email"]()];break;case a.SINGLE_LINE_URL:if(!e(t=`${t}`))return[!1,this._labels["validation-url"]()];break;case a.DATE_AND_TIME_DATE_AND_TIME:case a.DATE_AND_TIME_DATE_ONLY:if(!l(t).isValid())return[!1,this._labels["validation-date"]()];break;default:if(!t)return[!1,this._labels["validation-input-value"]()]}return[!0,""]}_isNull(i){return void 0===i||(null===i||(""===i||(0===(null==i?void 0:i.length)||void 0)))}get _labels(){return this._grid.labels}}export{ColumnValidation};
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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"}