@talxis/base-controls 1.2406.16 → 1.2407.1

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 (206) hide show
  1. package/dist/Grid-7ed3dd4c.js +1 -0
  2. package/dist/components/DateTime/DateTime.js +1 -1
  3. package/dist/components/DateTime/components/Calendar.d.ts +8 -3
  4. package/dist/components/DateTime/components/Calendar.js +1 -0
  5. package/dist/components/DateTime/hooks/useDateTime.d.ts +29 -4
  6. package/dist/components/DateTime/hooks/useDateTime.js +1 -0
  7. package/dist/components/DateTime/index.d.ts +3 -0
  8. package/dist/components/DateTime/index.js +1 -0
  9. package/dist/components/DateTime/interfaces.d.ts +4 -25
  10. package/dist/components/DateTime/interfaces.js +1 -0
  11. package/dist/components/DateTime/styles.d.ts +1 -4
  12. package/dist/components/DateTime/styles.js +1 -0
  13. package/dist/components/DateTime/translations.d.ts +19 -3
  14. package/dist/components/DateTime/translations.js +1 -0
  15. package/dist/components/Decimal/Decimal.js +1 -1
  16. package/dist/components/Decimal/components/ArrowButtons.d.ts +10 -0
  17. package/dist/components/Decimal/components/ArrowButtons.js +1 -0
  18. package/dist/components/Decimal/components/styles.d.ts +20 -0
  19. package/dist/components/Decimal/components/styles.js +1 -0
  20. package/dist/components/Decimal/index.d.ts +2 -0
  21. package/dist/components/Decimal/index.js +1 -0
  22. package/dist/components/Decimal/interfaces.d.ts +5 -5
  23. package/dist/components/Decimal/interfaces.js +1 -0
  24. package/dist/components/Duration/Duration.js +1 -1
  25. package/dist/components/Duration/index.d.ts +2 -0
  26. package/dist/components/Duration/index.js +1 -0
  27. package/dist/components/Duration/interfaces.d.ts +6 -24
  28. package/dist/components/Duration/interfaces.js +1 -0
  29. package/dist/components/Duration/translations.d.ts +26 -2
  30. package/dist/components/Duration/translations.js +1 -0
  31. package/dist/components/Grid/Grid.d.ts +1 -3
  32. package/dist/components/Grid/Grid.js +1 -10
  33. package/dist/components/Grid/GridContext.d.ts +3 -0
  34. package/dist/components/Grid/GridContext.js +1 -0
  35. package/dist/components/Grid/constants.js +1 -0
  36. package/dist/components/Grid/core/components/AgGrid/AgGrid.js +1 -0
  37. package/dist/components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/EmptyRecords.js +1 -0
  38. package/dist/components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/styles.js +1 -0
  39. package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/LoadingOverlay.js +1 -0
  40. package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/styles.js +1 -0
  41. package/dist/components/Grid/core/components/AgGrid/controllers/useAgGridController.d.ts +1 -1
  42. package/dist/components/Grid/core/components/AgGrid/controllers/useAgGridController.js +1 -0
  43. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.d.ts +1 -1
  44. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js +1 -0
  45. package/dist/components/Grid/core/components/AgGrid/styles.js +1 -0
  46. package/dist/components/Grid/core/components/Cell/Commands/Commands.d.ts +1 -1
  47. package/dist/components/Grid/core/components/Cell/Commands/Commands.js +1 -0
  48. package/dist/components/Grid/core/components/Cell/Commands/Icon.js +1 -0
  49. package/dist/components/Grid/core/components/Cell/Commands/styles.js +1 -0
  50. package/dist/components/Grid/core/components/Cell/Commands/useCommands.d.ts +1 -1
  51. package/dist/components/Grid/core/components/Cell/Commands/useCommands.js +1 -0
  52. package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.d.ts +1 -1
  53. package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.js +1 -0
  54. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.js +1 -0
  55. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.d.ts +1 -1
  56. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.js +1 -0
  57. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/styles.js +1 -0
  58. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.js +1 -0
  59. package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.js +1 -0
  60. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.js +1 -0
  61. package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/styles.js +1 -0
  62. package/dist/components/Grid/core/components/ColumnHeader/styles.js +1 -0
  63. package/dist/components/Grid/core/components/Component/Component.d.ts +2 -2
  64. package/dist/components/Grid/core/components/Component/Component.js +1 -0
  65. package/dist/components/Grid/core/components/Component/controller/useComponentController.d.ts +5 -5
  66. package/dist/components/Grid/core/components/Component/controller/useComponentController.js +1 -0
  67. package/dist/components/Grid/core/components/Component/model/Component.d.ts +3 -3
  68. package/dist/components/Grid/core/components/Component/model/Component.js +1 -0
  69. package/dist/components/Grid/core/components/Dialog/Constants.js +1 -0
  70. package/dist/components/Grid/core/components/Dialog/Styles.js +1 -0
  71. package/dist/components/Grid/core/components/Dialog/index.js +1 -0
  72. package/dist/components/Grid/core/components/Dialog/interfaces/index.d.ts +6 -0
  73. package/dist/components/Grid/core/components/Dialog/interfaces/index.js +1 -0
  74. package/dist/components/Grid/core/components/Save/Save.js +1 -0
  75. package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.js +1 -0
  76. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/RecordGrids.js +1 -0
  77. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/styles.js +1 -0
  78. package/dist/components/Grid/core/components/Save/components/ChangeEditor/styles.js +1 -0
  79. package/dist/components/Grid/core/components/Save/hooks/useSave.js +1 -0
  80. package/dist/components/Grid/core/components/Save/styles.js +1 -0
  81. package/dist/components/Grid/core/controllers/useGridController.js +1 -0
  82. package/dist/components/Grid/core/enums/ConditionOperator.js +1 -0
  83. package/dist/components/Grid/core/enums/DataType.js +1 -0
  84. package/dist/components/Grid/core/hooks/useGridInstance.js +1 -0
  85. package/dist/components/Grid/core/hooks/useRefreshCallback.js +1 -0
  86. package/dist/components/Grid/core/hooks/useRerender.js +1 -0
  87. package/dist/components/Grid/core/interfaces/IGridColumn.js +1 -0
  88. package/dist/components/Grid/core/interfaces/IGridContext.js +1 -0
  89. package/dist/components/Grid/core/model/Grid.d.ts +5 -6
  90. package/dist/components/Grid/core/model/Grid.js +1 -0
  91. package/dist/components/Grid/core/model/GridDependency.d.ts +3 -3
  92. package/dist/components/Grid/core/model/GridDependency.js +1 -0
  93. package/dist/components/Grid/core/model/Metadata.d.ts +1 -1
  94. package/dist/components/Grid/core/model/Metadata.js +1 -0
  95. package/dist/components/Grid/core/services/RecordUpdateService/controllers/useRecordUpdateServiceController.js +1 -0
  96. package/dist/components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.js +1 -0
  97. package/dist/components/Grid/filtering/components/FilterCallout/FilterCallout.js +1 -0
  98. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionOperator/ConditionOperator.js +1 -0
  99. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.js +1 -0
  100. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.js +1 -0
  101. package/dist/components/Grid/filtering/components/FilterCallout/styles.js +1 -0
  102. package/dist/components/Grid/filtering/constants.js +1 -0
  103. package/dist/components/Grid/filtering/controller/useColumnFilterConditionController.js +1 -0
  104. package/dist/components/Grid/filtering/model/Condition.d.ts +1 -1
  105. package/dist/components/Grid/filtering/model/Condition.js +1 -0
  106. package/dist/components/Grid/filtering/model/Filtering.js +1 -0
  107. package/dist/components/Grid/filtering/utils/FilteringUtilts.js +1 -0
  108. package/dist/components/Grid/index.d.ts +2 -0
  109. package/dist/components/Grid/index.js +1 -0
  110. package/dist/components/Grid/interfaces.d.ts +6 -233
  111. package/dist/components/Grid/interfaces.js +1 -0
  112. package/dist/components/Grid/paging/components/Paging/Paging.js +1 -0
  113. package/dist/components/Grid/paging/components/Paging/styles.js +1 -0
  114. package/dist/components/Grid/paging/controllers/usePagingController.js +1 -0
  115. package/dist/components/Grid/paging/model/Paging.js +1 -0
  116. package/dist/components/Grid/selection/controllers/useSelectionController.js +1 -0
  117. package/dist/components/Grid/selection/model/Selection.d.ts +1 -1
  118. package/dist/components/Grid/selection/model/Selection.js +1 -0
  119. package/dist/components/Grid/sorting/Sorting.d.ts +1 -1
  120. package/dist/components/Grid/sorting/Sorting.js +1 -0
  121. package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js +1 -0
  122. package/dist/components/Grid/sorting/components/SortingContextualMenu/styles.js +1 -0
  123. package/dist/components/Grid/sorting/controllers/useColumnSortingController.d.ts +1 -1
  124. package/dist/components/Grid/sorting/controllers/useColumnSortingController.js +1 -0
  125. package/dist/components/Grid/translations.d.ts +306 -2
  126. package/dist/components/Grid/translations.js +1 -0
  127. package/dist/components/Grid/validation/controllers/useRecordValidationController.d.ts +1 -1
  128. package/dist/components/Grid/validation/controllers/useRecordValidationController.js +1 -0
  129. package/dist/components/Grid/validation/model/ColumnValidation.js +1 -0
  130. package/dist/components/Lookup/Lookup.js +1 -1
  131. package/dist/components/Lookup/components/RecordCreator.js +1 -0
  132. package/dist/components/Lookup/components/TargetSelector.d.ts +2 -3
  133. package/dist/components/Lookup/components/TargetSelector.js +1 -0
  134. package/dist/components/Lookup/hooks/useFetchXml.d.ts +1 -1
  135. package/dist/components/Lookup/hooks/useFetchXml.js +1 -0
  136. package/dist/components/Lookup/hooks/useLoadedEntities.js +1 -0
  137. package/dist/components/Lookup/hooks/useLookup.d.ts +35 -5
  138. package/dist/components/Lookup/hooks/useLookup.js +1 -0
  139. package/dist/components/Lookup/index.d.ts +3 -0
  140. package/dist/components/Lookup/index.js +1 -0
  141. package/dist/components/Lookup/interfaces.d.ts +5 -23
  142. package/dist/components/Lookup/interfaces.js +1 -0
  143. package/dist/components/Lookup/styles.d.ts +7 -15
  144. package/dist/components/Lookup/styles.js +1 -0
  145. package/dist/components/Lookup/translations.d.ts +30 -2
  146. package/dist/components/Lookup/translations.js +1 -0
  147. package/dist/components/MultiSelectOptionSet/MultiSelectOptionSet.js +1 -1
  148. package/dist/components/MultiSelectOptionSet/index.d.ts +2 -0
  149. package/dist/components/MultiSelectOptionSet/index.js +1 -0
  150. package/dist/components/MultiSelectOptionSet/interfaces.d.ts +5 -4
  151. package/dist/components/MultiSelectOptionSet/interfaces.js +1 -0
  152. package/dist/components/OptionSet/OptionSet.js +1 -1
  153. package/dist/components/OptionSet/index.d.ts +2 -0
  154. package/dist/components/OptionSet/index.js +1 -0
  155. package/dist/components/OptionSet/interfaces.d.ts +5 -6
  156. package/dist/components/OptionSet/interfaces.js +1 -0
  157. package/dist/components/TextField/TextField.js +1 -1
  158. package/dist/components/TextField/index.d.ts +2 -0
  159. package/dist/components/TextField/index.js +1 -0
  160. package/dist/components/TextField/interfaces.d.ts +4 -5
  161. package/dist/components/TextField/interfaces.js +1 -0
  162. package/dist/components/TwoOptions/TwoOptions.js +1 -1
  163. package/dist/components/TwoOptions/index.js +1 -0
  164. package/dist/components/TwoOptions/interfaces.d.ts +3 -4
  165. package/dist/components/TwoOptions/interfaces.js +1 -0
  166. package/dist/constants.js +1 -0
  167. package/dist/hooks/index.d.ts +6 -1
  168. package/dist/hooks/index.js +1 -1
  169. package/dist/hooks/useControl.d.ts +23 -0
  170. package/dist/hooks/useControl.js +1 -0
  171. package/dist/hooks/useControlSizing.d.ts +5 -0
  172. package/dist/hooks/useControlSizing.js +1 -0
  173. package/dist/hooks/useControlTheme.d.ts +3 -0
  174. package/dist/hooks/useControlTheme.js +1 -0
  175. package/dist/hooks/useFocusIn.d.ts +1 -1
  176. package/dist/hooks/useFocusIn.js +1 -1
  177. package/dist/hooks/{useInputBasedComponent.d.ts → useInputBasedControl.d.ts} +6 -6
  178. package/dist/hooks/useInputBasedControl.js +1 -0
  179. package/dist/index.d.ts +793 -14
  180. package/dist/index.js +1 -0
  181. package/dist/interfaces/context.d.ts +9 -7
  182. package/dist/interfaces/context.js +1 -0
  183. package/dist/interfaces/index.js +1 -0
  184. package/dist/interfaces/parameters.d.ts +6 -2
  185. package/dist/interfaces/parameters.js +1 -0
  186. package/dist/interfaces/property.d.ts +1 -1
  187. package/dist/interfaces/property.js +1 -0
  188. package/dist/interfaces/theme.d.ts +6 -0
  189. package/dist/interfaces/theme.js +1 -0
  190. package/dist/utils/Numeral.d.ts +1 -1
  191. package/dist/{Numeral-a0284afb.js → utils/Numeral.js} +1 -1
  192. package/dist/utils/Theme.d.ts +4 -0
  193. package/dist/utils/Theme.js +1 -0
  194. package/dist/utils/index.d.ts +2 -0
  195. package/dist/utils/index.js +1 -0
  196. package/package.json +25 -26
  197. package/stats.html +4842 -0
  198. package/dist/Lookup-4b87c562.js +0 -1
  199. package/dist/components/Lookup/lib.d.ts +0 -1164
  200. package/dist/components/TextField/hooks/useTextField.d.ts +0 -1
  201. package/dist/hooks/useComponent.d.ts +0 -15
  202. package/dist/hooks/useComponent.js +0 -1
  203. package/dist/hooks/useComponentSizing.d.ts +0 -5
  204. package/dist/hooks/useComponentSizing.js +0 -1
  205. package/dist/hooks/useInputBasedComponent.js +0 -1
  206. package/dist/types/index.d.ts +0 -3
@@ -0,0 +1 @@
1
+ import{__awaiter as e}from"tslib";import t from"fast-deep-equal/es6";import{cloneDeep as r}from"lodash";import a from"numeral";import{Numeral as i}from"../../../../../../utils/Numeral.js";import{ColumnValidation as s}from"../../../../validation/model/ColumnValidation.js";import{DataType as d}from"../../../enums/DataType.js";import{GridDependency as o}from"../../../model/GridDependency.js";import"validator/es/lib/isEmail";import"validator/es/lib/isURL";import"dayjs";class RecordUpdateService extends o{constructor(t){var r;super(t),this._updatedRecords=new Map,this._internalRecordMap=new Map;const a=null===(r=this._grid.state)||void 0===r?void 0:r.__updatedRecords;a&&(null==a?void 0:a.length)>0&&a[0].getRecordId&&(this._updatedRecords=new Map(a.map((t=>{const r=t.clear,a=t.setValue,i=t.save;return t.clear=()=>{this._updatedRecords.delete(t.getRecordId()),r(),this._pcfContext.factory.requestRender()},t.save=()=>e(this,void 0,void 0,(function*(){const e=yield i();return e&&this._updatedRecords.delete(t.getRecordId()),[...t.columns.values()].map((e=>{var r;null===(r=this._internalRecordMap.get(t.getRecordId()))||void 0===r||r.setValue(e.name,t.getValue(e.name))})),e})),t.setValue=(e,t)=>{a(e,t),this._pcfContext.factory.requestRender()},[t.getRecordId(),t]}))))}get updatedRecords(){if(this._isReadOnlyChangeEditor()&&0===this._updatedRecords.size){const e=this._grid.records[0];for(const t of this._grid.columns)this.record(e.getRecordId()).setValue(t.key,e.getValue(t.key),!0)}return[...this._updatedRecords.values()]}get isDirty(){return this._updatedRecords.size>0}get hasInvalidRecords(){return!![...this._updatedRecords.values()].find((e=>{for(const t of e.columns.values())if(!e.isValid(t.name))return!0;return!1}))}record(t){return{get:()=>this._updatedRecords.get(t),setValue:(a,i,d)=>{if(!d&&this._isEqual(a,this._internalRecordMap.get(t).getValue(a),i))return;const o=this._updatedRecords.get(t);if(o)o.columns.set(a,this._getEntityColumnByKey(a));else{const i=r(this._internalRecordMap.get(t));this._updatedRecords.set(t,{columns:new Map([[a,this._getEntityColumnByKey(a)]]),getRecordId:()=>t,getValue:e=>{var r;return null===(r=this._internalRecordMap.get(t))||void 0===r?void 0:r.getValue(e)},getFormattedValue:e=>{var r;return null===(r=this._internalRecordMap.get(t))||void 0===r?void 0:r.getFormattedValue(e)},getNamedReference:()=>i.getNamedReference(),getOriginalValue:e=>i.getValue(e),getOriginalFormattedValue:e=>i.getFormattedValue(e),getOriginalFormattedPrimaryNameValue:()=>{let e=this._dataset.columns.find((e=>e.isPrimary));e||(e=this._dataset.columns[0]);let t=i.getFormattedValue(e.name);return t||(t=this._grid.labels["no-name"]()),t},setValue:(e,r)=>{var a;null===(a=this._internalRecordMap.get(t))||void 0===a||a.setValue(e,r)},isValid:e=>{var r;const a=this._grid.columns.find((t=>t.key===e));if(!a)return!0;const[i,d]=new s(this._grid,a).validate(null===(r=this._internalRecordMap.get(t))||void 0===r?void 0:r.getValue(e));return i},clear:()=>{var e;const r=[...this._updatedRecords.get(t).columns.values()];this._updatedRecords.delete(t);for(const a of r)null===(e=this._internalRecordMap.get(t))||void 0===e||e.setValue(a.name,i.getValue(a.name))},save:()=>e(this,void 0,void 0,(function*(){var e;try{yield null===(e=this._internalRecordMap.get(t))||void 0===e?void 0:e.save(),this._updatedRecords.delete(t)}catch(e){return this._grid.pcfContext.navigation.openErrorDialog({message:"An error occurred during saving. Some of you changes might now have been saved.",details:e.message}),!1}return!0}))})}if(!d){const e=this._updatedRecords.get(t);null==e||e.setValue(a,i)}}}}saveAll(){return e(this,void 0,void 0,(function*(){const e=[];for(const t of this._updatedRecords.values())e.push(t.save());return!(yield Promise.all(e)).find((e=>!1===e))}))}clearAll(){return e(this,void 0,void 0,(function*(){for(const e of this._updatedRecords.values())e.clear()}))}onDependenciesUpdated(){for(const[e,t]of Object.entries(this._grid.dataset.records))this._internalRecordMap.set(e,t)}_getEntityColumnByKey(e){const t=this._grid.columns.find((t=>t.key===e));return this._dataset.columns.find((e=>t.entityAliasName?e.name===t.attributeName&&e.alias===t.entityAliasName:e.name===t.attributeName))}_isReadOnlyChangeEditor(){var e;return"read"===(null===(e=this._grid.props.parameters.ChangeEditorMode)||void 0===e?void 0:e.raw)}_isEqual(e,r,s){const o=this._grid.columns.find((t=>t.key===e));return(null==o?void 0:o.dataType)===d.CURRENCY&&(i.currency(this._grid.pcfContext.userSettings.numberFormattingInfo),(s=a(s).value())===r)||(r==s||t(r,s))}}export{RecordUpdateService};
@@ -0,0 +1 @@
1
+ import{__awaiter as o}from"tslib";import{jsxs as t,jsx as e,Fragment as i}from"react/jsx-runtime";import*as s from"react";import{Callout as r,Text as n,IconButton as m,PrimaryButton as l,Button as p}from"@fluentui/react";import{filterCalloutStyles as a}from"./styles.js";import{useColumnFilterConditionController as u}from"../../controller/useColumnFilterConditionController.js";import{FilteringUtils as c}from"../../utils/FilteringUtilts.js";import{ConditionOperator as j}from"./components/ConditionOperator/ConditionOperator.js";import{ConditionValue as d}from"./components/ConditionValue/ConditionValue.js";import{useGridInstance as C}from"../../../core/hooks/useGridInstance.js";import"../../../core/hooks/useRefreshCallback.js";import"../../../core/enums/ConditionOperator.js";import"../../constants.js";import"@talxis/react-components";import"../../../core/enums/DataType.js";import"../../../core/components/Component/Component.js";import"../../../../DateTime/DateTime.js";import"../../../../DateTime/styles.js";import"../../../../DateTime/hooks/useDateTime.js";import"../../../../../hooks/useInputBasedControl.js";import"../../../../../hooks/useControl.js";import"fast-deep-equal/es6";import"merge-anything";import"liquidjs";import"../../../../../hooks/useControlTheme.js";import"../../../../../utils/Theme.js";import"@fluentui/react-migration-v8-v9";import"../../../../../hooks/useControlSizing.js";import"dayjs";import"dayjs/plugin/utc";import"dayjs/plugin/customParseFormat";import"../../../../DateTime/translations.js";import"../../../../DateTime/components/Calendar.js";import"@fluentui/react/lib/Calendar";import"../../../../Decimal/Decimal.js";import"numeral";import"../../../../../utils/Numeral.js";import"../../../../../constants.js";import"../../../../Decimal/components/ArrowButtons.js";import"../../../../Decimal/components/styles.js";import"../../../../Lookup/Lookup.js";import"../../../../Lookup/hooks/useLookup.js";import"../../../../Lookup/translations.js";import"../../../../Lookup/hooks/useFetchXml.js";import"@talxis/client-libraries";import"../../../../Lookup/components/TargetSelector.js";import"@fluentui/react/lib/Text";import"../../../../Lookup/styles.js";import"../../../../Lookup/hooks/useLoadedEntities.js";import"../../../../../hooks/useMouseOver.js";import"../../../../Lookup/components/RecordCreator.js";import"../../../../../hooks/useFocusIn.js";import"../../../../MultiSelectOptionSet/MultiSelectOptionSet.js";import"../../../../OptionSet/OptionSet.js";import"../../../../TextField/TextField.js";import"../../../../TwoOptions/TwoOptions.js";import"../../../../Duration/Duration.js";import"../../../../Duration/translations.js";import"../../../core/components/Component/controller/useComponentController.js";import"../../../core/components/Component/model/Component.js";import"../../../validation/model/ColumnValidation.js";import"validator/es/lib/isEmail";import"validator/es/lib/isURL";import"../../../core/model/GridDependency.js";import"../../../GridContext.js";import"./components/ConditionValue/model/ConditionComponentValue.js";const h=h=>{const{column:k,onDismiss:f}=Object.assign({},h),v=u(k),b=C(),D=s.useRef();D.current=v;const g=null==v?void 0:v.operator.get(),O=null==v?void 0:v.value.get(),T=c.condition();return s.useEffect((()=>()=>{var o;null===(o=D.current)||void 0===o||o.clear()}),[]),t(r,Object.assign({},h,{calloutWidth:230,className:a.root},{children:[t("div",Object.assign({className:a.header},{children:[e(n,Object.assign({className:a.title,variant:"mediumPlus"},{children:b.labels["filtermenu-filterby"]()})),e(m,{onClick:()=>f(),iconProps:{iconName:"ChromeClose"}})]})),v&&t(i,{children:[t("div",Object.assign({className:a.controls},{children:[e(j,{column:k}),T.value(g).isEditable&&e(d,{column:k})]})),t("div",Object.assign({className:a.footer},{children:[e(l,{text:b.labels["filtermenu-applybutton"](),onClick:()=>o(void 0,void 0,void 0,(function*(){(yield v.save())&&h.onDismiss()}))}),T.value(g).isEditable&&e(p,{text:b.labels["filtermenu-clearbutton"](),disabled:(()=>{switch(O){case null:case void 0:case"":return!0}return!1})(),onClick:()=>{v.value.set(null)}})]}))]})]}))};export{h as FilterCallout};
@@ -0,0 +1 @@
1
+ import{jsx as e,Fragment as t}from"react/jsx-runtime";import{ComboBox as o}from"@talxis/react-components";import{DataType as r}from"../../../../../core/enums/DataType.js";import{FilteringUtils as s}from"../../../../utils/FilteringUtilts.js";import{useGridInstance as a}from"../../../../../core/hooks/useGridInstance.js";import{useColumnFilterConditionController as i}from"../../../../controller/useColumnFilterConditionController.js";import"../../../../../core/enums/ConditionOperator.js";import"../../../../constants.js";import"react";import"../../../../../GridContext.js";import"tslib";import"../../../../../core/hooks/useRefreshCallback.js";const n=n=>{const{column:c}=Object.assign({},n),p=s.condition().operator(),m=a(),l=i(c);return l?e(o,Object.assign({},n,{selectedKey:l.operator.get(),shouldRestoreFocus:!1,options:(()=>{let e=p.textFieldOperators;switch(c.dataType){case r.WHOLE_NONE:case r.DECIMAL:case r.FP:case r.WHOLE_DURATION:case r.CURRENCY:e=p.numberOperators;break;case r.DATE_AND_TIME_DATE_AND_TIME:case r.DATE_AND_TIME_DATE_ONLY:e=p.dateOperators;break;case r.MULTI_SELECT_OPTIONSET:e=p.multipleOptionSetOperators;break;case r.FILE:case r.IMAGE:e=p.fileOperators}return e.map((e=>({key:e.type,text:m.labels[e.key]()})))})(),useComboBoxAsMenuWidth:!0,styles:{callout:{maxHeight:"300px !important"}},onChange:(e,t)=>{l.operator.set(t.key)}})):e(t,{})};export{n as ConditionOperator};
@@ -0,0 +1 @@
1
+ import{jsx as o,Fragment as t}from"react/jsx-runtime";import{useRef as e,useMemo as i,useEffect as r}from"react";import{Component as s}from"../../../../../core/components/Component/Component.js";import{useColumnFilterConditionController as n}from"../../../../controller/useColumnFilterConditionController.js";import{ConditionComponentValue as m}from"./model/ConditionComponentValue.js";import"../../../../../../DateTime/DateTime.js";import"@fluentui/react";import"../../../../../../DateTime/styles.js";import"../../../../../../DateTime/hooks/useDateTime.js";import"../../../../../../../hooks/useInputBasedControl.js";import"../../../../../../../hooks/useControl.js";import"fast-deep-equal/es6";import"merge-anything";import"liquidjs";import"../../../../../../../hooks/useControlTheme.js";import"../../../../../../../utils/Theme.js";import"@fluentui/react-migration-v8-v9";import"../../../../../../../hooks/useControlSizing.js";import"dayjs";import"dayjs/plugin/utc";import"dayjs/plugin/customParseFormat";import"../../../../../../DateTime/translations.js";import"../../../../../../DateTime/components/Calendar.js";import"@fluentui/react/lib/Calendar";import"@talxis/react-components";import"../../../../../../Decimal/Decimal.js";import"numeral";import"../../../../../../../utils/Numeral.js";import"../../../../../../../constants.js";import"../../../../../../Decimal/components/ArrowButtons.js";import"../../../../../../Decimal/components/styles.js";import"../../../../../../Lookup/Lookup.js";import"tslib";import"../../../../../../Lookup/hooks/useLookup.js";import"../../../../../../Lookup/translations.js";import"../../../../../../Lookup/hooks/useFetchXml.js";import"@talxis/client-libraries";import"../../../../../../Lookup/components/TargetSelector.js";import"@fluentui/react/lib/Text";import"../../../../../../Lookup/styles.js";import"../../../../../../Lookup/hooks/useLoadedEntities.js";import"../../../../../../../hooks/useMouseOver.js";import"../../../../../../Lookup/components/RecordCreator.js";import"../../../../../../../hooks/useFocusIn.js";import"../../../../../../MultiSelectOptionSet/MultiSelectOptionSet.js";import"../../../../../../OptionSet/OptionSet.js";import"../../../../../../TextField/TextField.js";import"../../../../../../TwoOptions/TwoOptions.js";import"../../../../../../Duration/Duration.js";import"../../../../../../Duration/translations.js";import"../../../../../core/enums/DataType.js";import"../../../../../core/components/Component/controller/useComponentController.js";import"../../../../../core/components/Component/model/Component.js";import"../../../../../validation/model/ColumnValidation.js";import"validator/es/lib/isEmail";import"validator/es/lib/isURL";import"../../../../../core/model/GridDependency.js";import"../../../../../core/hooks/useGridInstance.js";import"../../../../../GridContext.js";import"../../../../../core/hooks/useRefreshCallback.js";import"../../../../../core/enums/ConditionOperator.js";import"../../../../utils/FilteringUtilts.js";import"../../../../constants.js";const p=e=>{const i=n(e.column);return i?o(l,Object.assign({},i)):o(t,{})},l=t=>{const n=e(null),p=e(t);p.current=t;const l=i((()=>new m(p)),[]),a=l.column;return r((()=>{var o;if(null===l.get()){const t=null===(o=n.current)||void 0===o?void 0:o.querySelector("input");null==t||t.focus()}}),[l.get()]),o("div",Object.assign({ref:n},{children:o(s,{column:a,value:l.get(),onNotifyOutputChanged:o=>l.set(o),additionalParameters:{MultipleEnabled:{raw:!0},IsInlineNewEnabled:{raw:!1}}})}))};export{p as ConditionValue};
@@ -0,0 +1 @@
1
+ import t from"dayjs";import{DatasetConditionOperator as e}from"../../../../../../core/enums/ConditionOperator.js";import{DataType as o}from"../../../../../../core/enums/DataType.js";import{FilteringUtils as i}from"../../../../../utils/FilteringUtilts.js";import"../../../../../constants.js";class ConditionComponentValue{constructor(t){this._conditionUtils=i.condition(),this._columnFilterConditionControllerRef=t}get column(){const t=Object.assign({},this._columnFilterConditionController.column);switch(t.isRequired=!1,this._columnFilterConditionController.value.valid||(t.isRequired=!0),this._columnFilterConditionController.column.dataType){case o.OPTIONSET:case o.TWO_OPTIONS:t.dataType=o.MULTI_SELECT_OPTIONSET;break;case o.SINGLE_LINE_EMAIL:case o.SINGLE_LINE_URL:t.dataType=o.SINGLE_LINE_TEXT;break;case o.DATE_AND_TIME_DATE_AND_TIME:t.dataType=o.DATE_AND_TIME_DATE_ONLY}return this._conditionUtils.operator(this._operator.get()).allowsOnlyNumber,this._conditionUtils.operator(this._operator.get()).allowsOnlyNumber&&(t.dataType=o.WHOLE_NONE),this._conditionUtils.operator(this._operator.get()).allowsOnlyFreeText&&(t.dataType=o.SINGLE_LINE_TEXT),t}get(){let t=this._value.get();if(!t)return null;switch(this.column.dataType){case o.MULTI_SELECT_OPTIONSET:return"string"==typeof t&&(t=[t]),t.map((t=>parseInt(t)));case o.LOOKUP_OWNER:case o.LOOKUP_SIMPLE:return"string"==typeof t&&(t=[t]),t.map((t=>({entityType:"",name:"",id:t})))}return t}set(i){var r;switch(this.column.dataType){case o.DATE_AND_TIME_DATE_AND_TIME:case o.DATE_AND_TIME_DATE_ONLY:i instanceof Date&&(i=t(i).format("YYYY-MM-DD"));break;case o.MULTI_SELECT_OPTIONSET:switch(this._operator.get()){case e.Equal:case e.NotEqual:if(1===(null==i?void 0:i.length))return i=i[0].toString(),void this._value.set(i)}for(let t=0;t<(null==i?void 0:i.length);t++)i[t]=i[t].toString();return void this._value.set(i);case o.LOOKUP_OWNER:case o.LOOKUP_SIMPLE:if((null==i?void 0:i.length)>1){i=i.map((t=>t.id));break}i=null===(r=i[0])||void 0===r?void 0:r.id}this._value.set(i)}get _columnFilterConditionController(){return this._columnFilterConditionControllerRef.current}get _value(){return this._columnFilterConditionController.value}get _operator(){return this._columnFilterConditionController.operator}}export{ConditionComponentValue};
@@ -0,0 +1 @@
1
+ import{mergeStyleSets as o}from"@fluentui/react";const t=o({controls:{display:"flex",flexDirection:"column",gap:10,flexGrow:1},root:{minHeight:200,padding:16,".ms-Callout-main":{display:"flex",flexDirection:"column",gap:10},'.TALXIS__combobox__root, [class*="TALXIS__textfield__root"], [class*="TALXIS__tag-picker__root"]':{padding:"0x !important"}},title:{fontWeight:600,flexGrow:1},header:{display:"flex",i:{fontSize:12}},footer:{display:"flex",gap:10,justifyContent:"flex-end"}});export{t as filterCalloutStyles};
@@ -0,0 +1 @@
1
+ import{DatasetConditionOperator as e}from"../core/enums/ConditionOperator.js";const t=[{type:e.None,key:"condition-none"},{type:e.Equal,key:"condition-equal"},{type:e.NotEqual,key:"condition-notequal"},{type:e.GreaterThan,key:"condition-greaterthan"},{type:e.LessThan,key:"condition-lessthan"},{type:e.GreaterEqual,key:"condition-greaterequal"},{type:e.LessEqual,key:"condition-lessequal"},{type:e.Like,key:"condition-like"},{type:e.NotLike,key:"condition-notlike"},{type:e.In,key:"condition-in"},{type:e.NotIn,key:"condition-notin"},{type:e.Null,key:"condition-null"},{type:e.NotNull,key:"condition-notnull"},{type:e.Yesterday,key:"condition-yesterday"},{type:e.Today,key:"condition-today"},{type:e.Tomorrow,key:"condition-tomorrow"},{type:e.Last7Days,key:"condition-last7days"},{type:e.Next7Days,key:"condition-next7days"},{type:e.LastWeek,key:"condition-lastweek"},{type:e.ThisWeek,key:"condition-thisweek"},{type:e.LastMonth,key:"condition-lastmonth"},{type:e.ThisMonth,key:"condition-thismonth"},{type:e.On,key:"condition-on"},{type:e.OnOrBefore,key:"condition-onorbefore"},{type:e.OnOrAfter,key:"condition-onorafter"},{type:e.LastYear,key:"condition-lastyear"},{type:e.ThisYear,key:"condition-thisyear"},{type:e.LastXDays,key:"condition-lastxdays"},{type:e.NextXDays,key:"condition-nextxdays"},{type:e.LastXMonths,key:"condition-lastxmonths"},{type:e.NextXMonths,key:"condition-nextxmonths"},{type:e.Contains,key:"condition-contains"},{type:e.BeginWith,key:"condition-beginwith"},{type:e.DoesNotBeginWith,key:"condition-doesnotbeginwith"},{type:e.EndsWith,key:"condition-endswith"},{type:e.DoesNotEndWith,key:"condition-doesnotendwith"},{type:e.InFiscalPeriodAndYear,key:"condition-infiscalperiodandyear"},{type:e.Above,key:"condition-above"},{type:e.Under,key:"condition-under"},{type:e.NotUnder,key:"condition-notunder"},{type:e.AboveOrEqual,key:"condition-aboveorequal"},{type:e.UnderOrEqual,key:"condition-underorequal"},{type:e.ContainValues,key:"condition-containvalues"},{type:e.DoesNotContainValues,key:"condition-doesnotcontainvalues"}];export{t as OPERATORS};
@@ -0,0 +1 @@
1
+ import{__awaiter as o}from"tslib";import{useMemo as e,useState as t,useEffect as i}from"react";import{useGridInstance as r}from"../../core/hooks/useGridInstance.js";import{useRefreshCallback as s}from"../../core/hooks/useRefreshCallback.js";import"../../GridContext.js";const l=l=>{const n=r().filtering,a=e((()=>n.condition(l)),[]),[d,v]=t(),c=()=>o(void 0,void 0,void 0,(function*(){const o=yield a;v((e=>Object.assign(Object.assign({},e),{isAppliedToDataset:o.isAppliedToDataset,column:null==o?void 0:o.column,operator:{get:()=>o.operator.get(),set:e=>o.operator.set(e)},value:{valid:o.isValid,get:()=>o.value.get(),set:e=>o.value.set(e)},remove:()=>null==o?void 0:o.remove(),save:()=>null==o?void 0:o.save(),clear:()=>null==o?void 0:o.clear()})))}));return s(a,c),i((()=>{o(void 0,void 0,void 0,(function*(){c()}))}),[]),d||null};export{l as useColumnFilterConditionController};
@@ -1,4 +1,4 @@
1
- /// <reference types="@types/powerapps-component-framework" />
1
+ /// <reference types="powerapps-component-framework" />
2
2
  import { DatasetConditionOperator } from "../../core/enums/ConditionOperator";
3
3
  import { IGridColumn } from "../../core/interfaces/IGridColumn";
4
4
  import { Grid } from "../../core/model/Grid";
@@ -0,0 +1 @@
1
+ import{__awaiter as i}from"tslib";import{DatasetConditionOperator as t}from"../../core/enums/ConditionOperator.js";import{DataType as e}from"../../core/enums/DataType.js";import{GridDependency as o}from"../../core/model/GridDependency.js";import{ColumnValidation as s}from"../../validation/model/ColumnValidation.js";import{FilteringUtils as n}from"../utils/FilteringUtilts.js";import"validator/es/lib/isEmail";import"validator/es/lib/isURL";import"dayjs";import"../constants.js";class Condition extends o{constructor(i,t){switch(super(i),this._isAppliedToDataset=!1,this._conditionExpression={},this._conditionUtils=n.condition(),this._isValid=!0,this._initialized=!1,this._column=Object.assign({},t),this._column.dataType){case e.SINGLE_LINE_EMAIL:case e.SINGLE_LINE_URL:this._column.dataType=e.SINGLE_LINE_TEXT}return new Proxy(this,{get:(i,t)=>{if("init"!==t&&!i._initialized)throw new Error("Condition has not been initialized. Make sure to call the init() method on the condition object before any operations.");return"function"==typeof i[t]?i[t].bind(i):i[t]}})}init(){return i(this,void 0,void 0,(function*(){return this._inicializationPromise||(this._inicializationPromise=new Promise((t=>i(this,void 0,void 0,(function*(){const[i,e]=yield this._getConditionFromFilterExpression();e?(this._isAppliedToDataset=!0,this._conditionExpression=i.get(e)):this._conditionExpression=this._getDefault(),this._conditionExpression.conditionOperator=this._operatorDecorator(this._conditionExpression.conditionOperator,this._conditionExpression.value,!0),this._conditionExpression.value=this._valueDecorator(this._conditionExpression.conditionOperator,this._conditionExpression.value,!0),this._conditionExpression.attributeName=yield this._attributeNameDecorator(this._conditionExpression.conditionOperator,this._conditionExpression.attributeName,!0),t(!0),this._initialized=!0}))))),this._inicializationPromise}))}get isRemoved(){return this._isRemoved}get column(){return this._column}get isAppliedToDataset(){return this._isAppliedToDataset}get isValid(){return this._isValid}getExpression(){return i(this,void 0,void 0,(function*(){const i=Object.assign({},this._conditionExpression);return i.conditionOperator=this._operatorDecorator(this._conditionExpression.conditionOperator,this._conditionExpression.value),i.value=this._valueDecorator(this._conditionExpression.conditionOperator,this._conditionExpression.value),i.attributeName=yield this._attributeNameDecorator(this._conditionExpression.conditionOperator,this._conditionExpression.attributeName),i}))}save(){return i(this,void 0,void 0,(function*(){if(!(yield this.value.isValid()))return this._isValid=!1,this._triggerRefreshCallbacks(),!1;const i=this._filterExpression;if(this._isAppliedToDataset||this._isRemoved){const[t,e]=yield this._getConditionFromFilterExpression();t.delete(e),i.conditions=[...t.values()]}return this._isRemoved||i.conditions.push(yield this.getExpression()),this._dataset.filtering.setFilter(i),!0}))}remove(){this._isRemoved=!0}clear(){this._inicializationPromise=void 0}get operator(){return{get:()=>this._get("operator"),set:i=>{const t=this._conditionExpression.conditionOperator;this._set("operator",i,null);if(this._conditionUtils.value(i).isManuallyEditable!==this._conditionUtils.value(t).isManuallyEditable)switch(this._column.dataType){case e.MULTI_SELECT_OPTIONSET:case e.OPTIONSET:case e.TWO_OPTIONS:case e.LOOKUP_SIMPLE:case e.LOOKUP_OWNER:case e.DATE_AND_TIME_DATE_AND_TIME:case e.DATE_AND_TIME_DATE_ONLY:this._conditionExpression.value=""}}}}get value(){return{get:()=>this._get("value"),set:i=>this._set("value",void 0,i),isValid:()=>i(this,void 0,void 0,(function*(){if(this._conditionUtils.operator(this.operator.get()).doesNotAllowValue)return!0;const[i,t]=yield new s(this._grid,this._column,!0).validate(yield this.value.get());return i}))}}_get(i){return"operator"===i?this._conditionExpression.conditionOperator:this._conditionExpression.value}_set(i,t,e){this._isValid=!0,"operator"===i?this._conditionExpression.conditionOperator=t:this._conditionExpression.value=e,this._triggerRefreshCallbacks()}_attributeNameDecorator(t,o,s){return i(this,void 0,void 0,(function*(){if(!this._conditionUtils.value(t).isManuallyEditable)return o;switch(this._column.dataType){case e.OPTIONSET:case e.TWO_OPTIONS:case e.LOOKUP_OWNER:case e.LOOKUP_SIMPLE:return s?o.endsWith("name")?o.slice(0,-4):o:o.endsWith("name")?o:`${o}name`;default:return o}}))}_valueDecorator(i,e,o){switch(i){case t.BeginWith:case t.DoesNotBeginWith:return o?e.slice(0,-1):`${e}%`;case t.EndsWith:case t.DoesNotEndWith:return o?e.slice(1):`%${e}`;case t.Like:case t.NotLike:return o?e.slice(1,-1):`%${e}%`;default:return e}}_operatorDecorator(i,o,s){switch(this._column.dataType){case e.MULTI_SELECT_OPTIONSET:case e.OPTIONSET:case e.TWO_OPTIONS:case e.LOOKUP_OWNER:case e.LOOKUP_SIMPLE:if("string"!=typeof o){if(s)switch(i){case t.In:return t.Equal;case t.NotIn:return t.NotEqual}switch(i){case t.Equal:return t.In;case t.NotEqual:return t.NotIn}}else switch(i){case t.In:return t.Equal;case t.NotIn:return t.NotEqual}}return i}_getDefault(){const i={attributeName:this._column.attributeName,conditionOperator:t.Equal,entityAliasName:this._column.entityAliasName,value:""};switch(this._column.dataType){case e.DATE_AND_TIME_DATE_AND_TIME:case e.DATE_AND_TIME_DATE_ONLY:i.conditionOperator=t.On;break;case e.IMAGE:case e.FILE:i.conditionOperator=t.NotNull}return i}get _filterExpression(){var i;return null!==(i=structuredClone(this._dataset.filtering.getFilter()))&&void 0!==i?i:{conditions:[],filterOperator:0}}_getConditionFromFilterExpression(){return i(this,void 0,void 0,(function*(){const i=new Map(this._filterExpression.conditions.map((i=>[i.attributeName,i])));for(const t of i.values()){if((yield this._attributeNameDecorator(t.conditionOperator,t.attributeName,!0))===this._column.attributeName)return[i,t.attributeName]}return[i,""]}))}}export{Condition};
@@ -0,0 +1 @@
1
+ import{__awaiter as i}from"tslib";import{GridDependency as t}from"../../core/model/GridDependency.js";import{Condition as e}from"./Condition.js";import"../../core/enums/ConditionOperator.js";import"../../core/enums/DataType.js";import"../../validation/model/ColumnValidation.js";import"validator/es/lib/isEmail";import"validator/es/lib/isURL";import"dayjs";import"../utils/FilteringUtilts.js";import"../constants.js";class Filtering extends t{constructor(){super(...arguments),this._conditions=new Map}save(){return i(this,void 0,void 0,(function*(){const i=this._filterExpression;for(const t of this._conditions.values()){if(!t.value.isValid())return!1;const e=yield t.getExpression();(t.isAppliedToDataset||t.isRemoved)&&(i.conditions=this._filterExpression.conditions.filter((i=>this._getColumnKeyFromCondition(i)!==t.column.key))),t.isRemoved||i.conditions.push(e)}return this.clear(),this._dataset.filtering.setFilter(i),this._dataset.refresh(),!0}))}clear(){this._conditions.clear()}condition(t){return i(this,void 0,void 0,(function*(){const o=t.key;this._conditions.get(o)||this._conditions.set(o,new e(this._grid,t));const s=new Proxy(this._conditions.get(o),{get:(t,e)=>"save"===e?()=>i(this,void 0,void 0,(function*(){const i=yield t.save();return i&&(this._conditions.delete(t.column.key),this._dataset.refresh()),i})):("clear"===e&&this._conditions.delete(t.column.key),"function"==typeof t[e]?t[e].bind(t):t[e])});return yield s.init(),s}))}get _filterExpression(){var i;return null!==(i=structuredClone(this._grid.dataset.filtering.getFilter()))&&void 0!==i?i:{conditions:[],filterOperator:0}}_getColumnKeyFromCondition(i){return i.entityAliasName?`${i.entityAliasName}.${i.attributeName}`:i.attributeName}}export{Filtering};
@@ -0,0 +1 @@
1
+ import{DatasetConditionOperator as e}from"../../core/enums/ConditionOperator.js";import{OPERATORS as s}from"../constants.js";class FilteringUtils{static condition(){return{operator:a=>({textFieldOperators:s.filter((s=>{switch(s.type){case e.Equal:case e.NotEqual:case e.Like:case e.NotLike:case e.BeginWith:case e.DoesNotBeginWith:case e.EndsWith:case e.DoesNotEndWith:case e.NotNull:case e.Null:return!0;default:return!1}})),numberOperators:s.filter((s=>{switch(s.type){case e.Equal:case e.NotEqual:case e.GreaterThan:case e.GreaterEqual:case e.LessThan:case e.LessEqual:case e.NotNull:case e.Null:return!0;default:return!1}})),dateOperators:s.filter((s=>{switch(s.type){case e.On:case e.OnOrAfter:case e.OnOrBefore:case e.Today:case e.Yesterday:case e.Tomorrow:case e.ThisWeek:case e.ThisMonth:case e.ThisYear:case e.Next7Days:case e.NextXDays:case e.NextXMonths:case e.LastWeek:case e.Last7Days:case e.LastMonth:case e.LastYear:case e.LastXDays:case e.LastXMonths:case e.NotNull:case e.Null:return!0;default:return!1}})),multipleOptionSetOperators:s.filter((s=>{switch(s.type){case e.Equal:case e.NotEqual:case e.ContainValues:case e.DoesNotContainValues:case e.Null:case e.NotNull:return!0;default:return!1}})),fileOperators:s.filter((s=>{switch(s.type){case e.Null:case e.NotNull:return!0;default:return!1}})),allowsOnlyFreeText:(()=>{switch(a){case e.BeginWith:case e.DoesNotBeginWith:case e.EndsWith:case e.DoesNotEndWith:case e.Like:case e.NotLike:return!0}return!1})(),allowsOnlyNumber:(()=>{switch(a){case e.LastXDays:case e.LastXMonths:case e.NextXMonths:case e.NextXDays:return!0}return!1})(),doesNotAllowValue:(()=>{switch(a){case e.Null:case e.NotNull:case e.Today:case e.Yesterday:case e.Tomorrow:case e.ThisWeek:case e.ThisMonth:case e.ThisYear:case e.LastWeek:case e.Last7Days:case e.LastMonth:case e.LastYear:case e.Next7Days:return!0;default:return!1}})()}),value:s=>({isEditable:(()=>{switch(s){case e.Null:case e.NotNull:case e.Today:case e.Yesterday:case e.Tomorrow:case e.ThisMonth:case e.ThisWeek:case e.InFiscalPeriodAndYear:case e.Next7Days:case e.LastWeek:case e.Last7Days:case e.LastMonth:case e.LastYear:return!1}return!0})(),isManuallyEditable:(()=>{switch(s){case e.Like:case e.NotLike:case e.BeginWith:case e.DoesNotBeginWith:case e.EndsWith:case e.DoesNotEndWith:case e.LastXDays:case e.LastXMonths:case e.NextXMonths:case e.NextXDays:return!0}return!1})()})}}}export{FilteringUtils};
@@ -0,0 +1,2 @@
1
+ export * from './Grid';
2
+ export * from './interfaces';
@@ -0,0 +1 @@
1
+ export{G as Grid}from"../../Grid-7ed3dd4c.js";import"react/jsx-runtime";import"react";import"../../hooks/useControl.js";import"fast-deep-equal/es6";import"merge-anything";import"liquidjs";import"../../hooks/useControlTheme.js";import"../../utils/Theme.js";import"@fluentui/react";import"@fluentui/react-migration-v8-v9";import"../../hooks/useControlSizing.js";import"./core/model/Grid.js";import"tslib";import"./constants.js";import"./filtering/model/Filtering.js";import"./core/model/GridDependency.js";import"./filtering/model/Condition.js";import"./core/enums/ConditionOperator.js";import"./core/enums/DataType.js";import"./validation/model/ColumnValidation.js";import"validator/es/lib/isEmail";import"validator/es/lib/isURL";import"dayjs";import"./filtering/utils/FilteringUtilts.js";import"./filtering/constants.js";import"./paging/model/Paging.js";import"./selection/model/Selection.js";import"./sorting/Sorting.js";import"./core/services/RecordUpdateService/model/RecordUpdateService.js";import"lodash";import"numeral";import"../../utils/Numeral.js";import"./core/model/Metadata.js";import"@ag-grid-community/react";import"./selection/controllers/useSelectionController.js";import"./core/hooks/useGridInstance.js";import"./GridContext.js";import"./core/components/AgGrid/styles.js";import"./core/components/AgGrid/controllers/useAgGridController.js";import"./core/controllers/useGridController.js";import"./core/components/Cell/EditableCell/EditableCell.js";import"./core/services/RecordUpdateService/controllers/useRecordUpdateServiceController.js";import"./core/components/Component/Component.js";import"../DateTime/DateTime.js";import"../DateTime/styles.js";import"../DateTime/hooks/useDateTime.js";import"../../hooks/useInputBasedControl.js";import"dayjs/plugin/utc";import"dayjs/plugin/customParseFormat";import"../DateTime/translations.js";import"../DateTime/components/Calendar.js";import"@fluentui/react/lib/Calendar";import"@talxis/react-components";import"../Decimal/Decimal.js";import"../../constants.js";import"../Decimal/components/ArrowButtons.js";import"../Decimal/components/styles.js";import"../Lookup/Lookup.js";import"../Lookup/hooks/useLookup.js";import"../Lookup/translations.js";import"../Lookup/hooks/useFetchXml.js";import"@talxis/client-libraries";import"../Lookup/components/TargetSelector.js";import"@fluentui/react/lib/Text";import"../Lookup/styles.js";import"../Lookup/hooks/useLoadedEntities.js";import"../../hooks/useMouseOver.js";import"../Lookup/components/RecordCreator.js";import"../../hooks/useFocusIn.js";import"../MultiSelectOptionSet/MultiSelectOptionSet.js";import"../OptionSet/OptionSet.js";import"../TextField/TextField.js";import"../TwoOptions/TwoOptions.js";import"../Duration/Duration.js";import"../Duration/translations.js";import"./core/components/Component/controller/useComponentController.js";import"./core/components/Component/model/Component.js";import"./core/components/Cell/ReadOnlyCell/ReadOnlyCell.js";import"./core/components/Cell/ReadOnlyCell/styles.js";import"./core/components/Cell/Commands/Commands.js";import"./core/components/Cell/Commands/useCommands.js";import"./core/components/Cell/Commands/Icon.js";import"external-svg-loader";import"./core/components/Cell/Commands/styles.js";import"./core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.js";import"./core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/styles.js";import"color";import"./validation/controllers/useRecordValidationController.js";import"./core/hooks/useRerender.js";import"./core/components/ColumnHeader/ColumnHeader.js";import"./filtering/components/FilterCallout/FilterCallout.js";import"./filtering/components/FilterCallout/styles.js";import"./filtering/controller/useColumnFilterConditionController.js";import"./core/hooks/useRefreshCallback.js";import"./filtering/components/FilterCallout/components/ConditionOperator/ConditionOperator.js";import"./filtering/components/FilterCallout/components/ConditionValue/ConditionValue.js";import"./filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.js";import"./sorting/components/SortingContextualMenu/SortingContextualMenu.js";import"./sorting/components/SortingContextualMenu/styles.js";import"./sorting/controllers/useColumnSortingController.js";import"./core/components/ColumnHeader/styles.js";import"./core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.js";import"./core/components/ColumnHeader/components/GlobalCheckbox/styles.js";import"./core/components/AgGrid/model/AgGrid.js";import"@ag-grid-community/core";import"@ag-grid-community/client-side-row-model";import"use-debounce";import"@ag-grid-community/styles/ag-grid.css";import"@ag-grid-community/styles/ag-theme-balham.css";import"./paging/controllers/usePagingController.js";import"./paging/components/Paging/Paging.js";import"./paging/components/Paging/styles.js";import"./core/components/AgGrid/components/EmptyRecordsOverlay/EmptyRecords.js";import"./core/components/AgGrid/components/EmptyRecordsOverlay/styles.js";import"./core/components/Save/hooks/useSave.js";import"./core/components/Save/styles.js";import"./core/components/Dialog/index.js";import"./core/components/Dialog/Constants.js";import"./core/components/Dialog/Styles.js";import"./translations.js";import"./core/components/Save/components/ChangeEditor/components/RecordGrids/styles.js";import"./core/components/Save/components/ChangeEditor/styles.js";import"./core/components/AgGrid/components/LoadingOverlay/LoadingOverlay.js";import"./core/components/AgGrid/components/LoadingOverlay/styles.js";
@@ -1,7 +1,10 @@
1
- /// <reference types="@types/powerapps-component-framework" />
1
+ /// <reference types="powerapps-component-framework" />
2
+ import { AgGridReactProps } from "@ag-grid-community/react";
3
+ import { ITranslation } from "../../hooks";
2
4
  import { IDatasetProperty, IParameters, IStringProperty, ITwoOptionsProperty } from "../../interfaces";
3
- import { IComponent, IOutputs, ITranslations } from "../../interfaces/context";
4
- export interface IGrid extends IComponent<IGridParameters, IGridOutputs, IGridTranslations> {
5
+ import { IControl, IOutputs } from "../../interfaces/context";
6
+ import { gridTranslations } from "./translations";
7
+ export interface IGrid extends IControl<IGridParameters, IGridOutputs, Partial<ITranslation<typeof gridTranslations>>, AgGridReactProps> {
5
8
  }
6
9
  export interface IEntityColumn extends ComponentFramework.PropertyHelper.DataSetApi.Column {
7
10
  isResizable?: boolean;
@@ -27,233 +30,3 @@ export interface IGridParameters extends IParameters {
27
30
  }
28
31
  export interface IGridOutputs extends IOutputs {
29
32
  }
30
- export interface IGridTranslations extends ITranslations {
31
- "condition-none": {
32
- [LCID: number]: string;
33
- };
34
- "condition-equal": {
35
- [LCID: number]: string;
36
- };
37
- "condition-notequal": {
38
- [LCID: number]: string;
39
- };
40
- "condition-greaterthan": {
41
- [LCID: number]: string;
42
- };
43
- "condition-lessthan": {
44
- [LCID: number]: string;
45
- };
46
- "condition-greaterequal": {
47
- [LCID: number]: string;
48
- };
49
- "condition-lessequal": {
50
- [LCID: number]: string;
51
- };
52
- "condition-like": {
53
- [LCID: number]: string;
54
- };
55
- "condition-notlike": {
56
- [LCID: number]: string;
57
- };
58
- "condition-null": {
59
- [LCID: number]: string;
60
- };
61
- "condition-notnull": {
62
- [LCID: number]: string;
63
- };
64
- "condition-beginwith": {
65
- [LCID: number]: string;
66
- };
67
- "condition-doesnotbeginwith": {
68
- [LCID: number]: string;
69
- };
70
- "condition-endswith": {
71
- [LCID: number]: string;
72
- };
73
- "condition-doesnotendwith": {
74
- [LCID: number]: string;
75
- };
76
- "condition-yesterday": {
77
- [LCID: number]: string;
78
- };
79
- "condition-today": {
80
- [LCID: number]: string;
81
- };
82
- "condition-tomorrow": {
83
- [LCID: number]: string;
84
- };
85
- "condition-last7days": {
86
- [LCID: number]: string;
87
- };
88
- "condition-next7days": {
89
- [LCID: number]: string;
90
- };
91
- "condition-lastweek": {
92
- [LCID: number]: string;
93
- };
94
- "condition-thisweek": {
95
- [LCID: number]: string;
96
- };
97
- "condition-lastmonth": {
98
- [LCID: number]: string;
99
- };
100
- "condition-thismonth": {
101
- [LCID: number]: string;
102
- };
103
- "condition-on": {
104
- [LCID: number]: string;
105
- };
106
- "condition-onorbefore": {
107
- [LCID: number]: string;
108
- };
109
- "condition-onorafter": {
110
- [LCID: number]: string;
111
- };
112
- "condition-lastyear": {
113
- [LCID: number]: string;
114
- };
115
- "condition-thisyear": {
116
- [LCID: number]: string;
117
- };
118
- "condition-lastxdays": {
119
- [LCID: number]: string;
120
- };
121
- "condition-nextxdays": {
122
- [LCID: number]: string;
123
- };
124
- "condition-lastxmonths": {
125
- [LCID: number]: string;
126
- };
127
- "condition-nextxmonths": {
128
- [LCID: number]: string;
129
- };
130
- "condition-contains": {
131
- [LCID: number]: string;
132
- };
133
- "condition-infiscalperiodandyear": {
134
- [LCID: number]: string;
135
- };
136
- "condition-above": {
137
- [LCID: number]: string;
138
- };
139
- "condition-under": {
140
- [LCID: number]: string;
141
- };
142
- "condition-notunder": {
143
- [LCID: number]: string;
144
- };
145
- "condition-aboveorequal": {
146
- [LCID: number]: string;
147
- };
148
- "condition-underorequal": {
149
- [LCID: number]: string;
150
- };
151
- "condition-containvalues": {
152
- [LCID: number]: string;
153
- };
154
- "condition-doesnotcontainvalues": {
155
- [LCID: number]: string;
156
- };
157
- "filtermenu-filterby": {
158
- [LCID: number]: string;
159
- };
160
- "filtermenu-applybutton": {
161
- [LCID: number]: string;
162
- };
163
- "filtermenu-clearbutton": {
164
- [LCID: number]: string;
165
- };
166
- "filtersortmenu-sorttext-a-z": {
167
- [LCID: number]: string;
168
- };
169
- "filtersortmenu-sorttext-z-a": {
170
- [LCID: number]: string;
171
- };
172
- "filtersortmenu-sortdate-a-z": {
173
- [LCID: number]: string;
174
- };
175
- "filtersortmenu-sortdate-z-a": {
176
- [LCID: number]: string;
177
- };
178
- "filtersortmenu-sortnumber-a-z": {
179
- [LCID: number]: string;
180
- };
181
- "filtersortmenu-sortnumber-z-a": {
182
- [LCID: number]: string;
183
- };
184
- "filtersortmenu-sorttwooption-a-z": {
185
- [LCID: number]: string;
186
- };
187
- "filtersortmenu-sorttwooption-z-a": {
188
- [LCID: number]: string;
189
- };
190
- "filtersortmenu-sorttwooption-joint": {
191
- [LCID: number]: string;
192
- };
193
- "filtersortmenu-filterby": {
194
- [LCID: number]: string;
195
- };
196
- "filtersortmenu-clearfilter": {
197
- [LCID: number]: string;
198
- };
199
- "paging-pages": {
200
- [LCID: number]: string;
201
- };
202
- "paging-of": {
203
- [LCID: number]: string;
204
- };
205
- "paging-firstpage": {
206
- [LCID: number]: string;
207
- };
208
- "paging-previouspage": {
209
- [LCID: number]: string;
210
- };
211
- "paging-page": {
212
- [LCID: number]: string;
213
- };
214
- "paging-nextpage": {
215
- [LCID: number]: string;
216
- };
217
- "paging-lastpage": {
218
- [LCID: number]: string;
219
- };
220
- "norecordsfound": {
221
- [LCID: number]: string;
222
- };
223
- "saving-changenotification": {
224
- [LCID: number]: string;
225
- };
226
- "saving-save": {
227
- [LCID: number]: string;
228
- };
229
- "saving-saving": {
230
- [LCID: number]: string;
231
- };
232
- "saving-changepreview-title": {
233
- [LCID: number]: string;
234
- };
235
- "saving-validation-error": {
236
- [LCID: number]: string;
237
- };
238
- "validation-input-value": {
239
- [LCID: number]: string;
240
- };
241
- "validation-email": {
242
- [LCID: number]: string;
243
- };
244
- "validation-url": {
245
- [LCID: number]: string;
246
- };
247
- "validation-date": {
248
- [LCID: number]: string;
249
- };
250
- "validation-number": {
251
- [LCID: number]: string;
252
- };
253
- "no-name": {
254
- [LCID: number]: string;
255
- };
256
- "download": {
257
- [LCID: number]: string;
258
- };
259
- }
@@ -0,0 +1 @@
1
+
@@ -0,0 +1 @@
1
+ import{jsxs as e,jsx as t}from"react/jsx-runtime";import{useTheme as a,CommandBarButton as r,ContextualMenuItemType as o,CommandBar as i}from"@fluentui/react";import{useGridInstance as s}from"../../../core/hooks/useGridInstance.js";import{usePagingController as n}from"../../controllers/usePagingController.js";import{getPagingStyles as c}from"./styles.js";import"react";import"../../../GridContext.js";const l=()=>{const l=s().labels,p=n(),m=c(a());return e("div",Object.assign({className:m.root},{children:[t("div",Object.assign({className:m.pageSizeBtnWrapper},{children:t(r,{text:l["paging-pages"]({start:p.pageFirstRecordOrder,end:p.pageLastRecordOrder,recordcount:p.totalResultCount>=0?p.totalResultCount:"5000+"}),menuProps:{items:[{key:"header",itemType:o.Header,text:"Počet záznamů na stránce"},{key:"divider",itemType:o.Divider},...["25","50","75","100","250"].map((e=>({key:e,text:e,checked:parseInt(e)===p.pageSize,className:m.pageSizeOption,onClick:()=>p.setPageSize(parseInt(e))})))]}})})),t(i,{className:m.pagination,items:[],farItems:[{key:"FirstPage",iconOnly:!0,iconProps:{iconName:"DoubleChevronLeft"},disabled:!p.hasPreviousPage,onClick:()=>p.reset()},{key:"PreviousPage",iconOnly:!0,iconProps:{iconName:"Back"},disabled:!p.hasPreviousPage,onClick:()=>p.loadPreviousPage()},{key:"CurrentPage",text:`${l["paging-page"]()} ${p.pageNumber.toString()}`,className:m.currentPageBtn,disabled:!0},{key:"NextPage",iconOnly:!0,iconProps:{iconName:"Forward"},disabled:!p.hasNextPage,onClick:()=>p.loadNextPage()}]})]}))};export{l as Paging};
@@ -0,0 +1 @@
1
+ import{mergeStyleSets as t}from"@fluentui/react";const e=e=>t({root:{display:"flex",flexWrap:"wrap",justifyContent:"center"},pagination:{".ms-CommandBar":{paddingLeft:0,paddingRight:0}},currentPageBtn:{".ms-Button-label":{color:e.semanticColors.bodyText}},pageSizeBtnWrapper:{flexGrow:1,display:"flex",".ms-Button-label":{whiteSpace:"nowrap"},".ms-Button":{height:44}},pageSizeOption:{"& .is-checked":{backgroundColor:e.semanticColors.buttonBackgroundHovered,fontWeight:600}}});export{e as getPagingStyles};
@@ -0,0 +1 @@
1
+ import{useGridInstance as e}from"../../core/hooks/useGridInstance.js";import"react";import"../../GridContext.js";const a=()=>{const a=e().paging;return{pageNumber:a.pageNumber,pageSize:a.pageSize,totalResultCount:a.totalResultCount,hasPreviousPage:a.hasPreviousPage,hasNextPage:a.hasNextPage,pageFirstRecordOrder:a.pageFirstRecordOrder,pageLastRecordOrder:a.pageLastRecordOrder,isEnabled:a.isEnabled,loadExactPage:e=>a.loadExactPage(e),loadNextPage:()=>a.loadNextPage(),loadPreviousPage:()=>a.loadPreviousPage(),setPageSize:e=>a.setPageSize(e),reset:()=>a.reset()}};export{a as usePagingController};
@@ -0,0 +1 @@
1
+ import{GridDependency as e}from"../../core/model/GridDependency.js";class Paging extends e{get pageNumber(){return this._dataset.paging.pageNumber}get pageSize(){return this._dataset.paging.pageSize}get totalResultCount(){return this._dataset.paging.totalResultCount}get hasPreviousPage(){return this._dataset.paging.hasPreviousPage}get hasNextPage(){return this._dataset.paging.hasNextPage}get pageFirstRecordOrder(){return(this.pageNumber-1)*this.pageSize+(0===this.totalResultCount?0:1)}get pageLastRecordOrder(){const e=this.pageNumber*this.pageSize;return e>this.totalResultCount?this.totalResultCount:e}get isEnabled(){var e;return!1!==(null===(e=this._grid.parameters.EnablePagination)||void 0===e?void 0:e.raw)}loadNextPage(){this.loadExactPage(this.pageNumber+1)}loadPreviousPage(){this.loadExactPage(this.pageNumber-1)}loadExactPage(e){this._dataset.paging.loadExactPage(e)}setPageSize(e){var t;this._dataset.paging.setPageSize(e),this._dataset.refresh(),(null===(t=window.TALXIS)||void 0===t?void 0:t.Portal)||this._dataset.refresh()}reset(){this._dataset.paging.reset()}}export{Paging};
@@ -0,0 +1 @@
1
+ import{useGridInstance as e}from"../../core/hooks/useGridInstance.js";import"react";import"../../GridContext.js";const t=()=>{const t=e().selection;return{type:t.type,selectedRecordIds:t.selectedRecordIds,allRecordsSelected:t.allRecordsSelected,toggle:(e,l)=>t.toggle(e,l),clear:()=>t.clear(),selectAll:()=>t.selectAll()}};export{t as useSelectionController};
@@ -1,4 +1,4 @@
1
- /// <reference types="@types/powerapps-component-framework" />
1
+ /// <reference types="powerapps-component-framework" />
2
2
  import { GridDependency } from "../../core/model/GridDependency";
3
3
  export declare class Selection extends GridDependency {
4
4
  private _selectedRecordIdsSet;
@@ -0,0 +1 @@
1
+ import{GridDependency as e}from"../../core/model/GridDependency.js";class Selection extends e{constructor(){super(...arguments),this._selectedRecordIdsSet=new Set,this.debounceTimer=null}toggle(e,t,s,d){const c=e.getRecordId();this.debounceTimer||(this._selectedRecordIdsSet=new Set(this.selectedRecordIds)),s&&this._selectedRecordIdsSet.clear(),!1===t?this._selectedRecordIdsSet.delete(c):("single"===this.type&&this._selectedRecordIdsSet.clear(),this._selectedRecordIdsSet.add(c)),null!==this.debounceTimer&&clearTimeout(this.debounceTimer),d?this._setSelectedRecords():this.debounceTimer=setTimeout((()=>{this._setSelectedRecords()}),0)}get selectedRecordIds(){return this._dataset.getSelectedRecordIds()}get allRecordsSelected(){return this.selectedRecordIds.length===this._dataset.sortedRecordIds.length}get type(){var e,t;switch(null===(e=this._grid.props.parameters.SelectableRows)||void 0===e?void 0:e.raw){case void 0:case null:return"multiple";case"none":return;default:return null===(t=this._grid.props.parameters.SelectableRows)||void 0===t?void 0:t.raw}}clear(){this._grid.dataset.setSelectedRecordIds([])}selectAll(){this._grid.dataset.setSelectedRecordIds(this._dataset.sortedRecordIds)}_setSelectedRecords(){this._grid.dataset.setSelectedRecordIds([...this._selectedRecordIdsSet.values()]),this.debounceTimer=null,this._selectedRecordIdsSet=new Set}}export{Selection};
@@ -1,4 +1,4 @@
1
- /// <reference types="@types/powerapps-component-framework" />
1
+ /// <reference types="powerapps-component-framework" />
2
2
  import { IGridColumn } from "../core/interfaces/IGridColumn";
3
3
  import { GridDependency } from "../core/model/GridDependency";
4
4
  export declare class Sorting extends GridDependency {
@@ -0,0 +1 @@
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};
@@ -0,0 +1 @@
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};
@@ -0,0 +1 @@
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,4 +1,4 @@
1
- /// <reference types="@types/powerapps-component-framework" />
1
+ /// <reference types="powerapps-component-framework" />
2
2
  import { IGridColumn } from "../../core/interfaces/IGridColumn";
3
3
  interface ISortingController {
4
4
  value: ComponentFramework.PropertyHelper.DataSetApi.SortStatus | undefined;
@@ -0,0 +1 @@
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};