@talxis/base-controls 1.2407.1 → 1.2408.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 (43) hide show
  1. package/dist/Grid-b7e6190d.js +1 -0
  2. package/dist/components/DateTime/DateTime.js +1 -1
  3. package/dist/components/DateTime/components/Calendar.d.ts +1 -1
  4. package/dist/components/DateTime/interfaces.d.ts +11 -1
  5. package/dist/components/Decimal/Decimal.js +1 -1
  6. package/dist/components/Duration/Duration.js +1 -1
  7. package/dist/components/Duration/index.js +1 -1
  8. package/dist/components/Grid/Grid.js +1 -1
  9. package/dist/components/Grid/core/components/AgGrid/AgGrid.js +1 -1
  10. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js +1 -1
  11. package/dist/components/Grid/core/components/AgGrid/styles.d.ts +14 -4
  12. package/dist/components/Grid/core/components/AgGrid/styles.js +1 -1
  13. package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.js +1 -1
  14. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.js +1 -1
  15. package/dist/components/Grid/core/components/Component/Component.d.ts +2 -2
  16. package/dist/components/Grid/core/components/Component/Component.js +1 -1
  17. package/dist/components/Grid/core/components/Component/model/Component.d.ts +0 -1
  18. package/dist/components/Grid/core/components/Component/model/Component.js +1 -1
  19. package/dist/components/Grid/core/components/Save/Save.js +1 -1
  20. package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.js +1 -1
  21. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/RecordGrids.js +1 -1
  22. package/dist/components/Grid/core/enums/DataType.d.ts +1 -0
  23. package/dist/components/Grid/core/enums/DataType.js +1 -1
  24. package/dist/components/Grid/core/model/Grid.js +1 -1
  25. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionOperator/ConditionOperator.js +1 -1
  26. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.js +1 -1
  27. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.js +1 -1
  28. package/dist/components/Grid/filtering/model/Condition.js +1 -1
  29. package/dist/components/Grid/index.js +1 -1
  30. package/dist/components/Lookup/Lookup.js +1 -1
  31. package/dist/components/Lookup/styles.d.ts +1 -0
  32. package/dist/components/Lookup/styles.js +1 -1
  33. package/dist/components/TextField/TextField.js +1 -1
  34. package/dist/components/TwoOptions/TwoOptions.js +1 -1
  35. package/dist/index.d.ts +11 -1
  36. package/dist/index.js +1 -1
  37. package/dist/interfaces/context.d.ts +1 -1
  38. package/dist/utils/Theme.d.ts +1 -1
  39. package/dist/utils/Theme.js +1 -1
  40. package/dist/utils/index.js +1 -1
  41. package/package.json +3 -3
  42. package/dist/Grid-7ed3dd4c.js +0 -1
  43. package/stats.html +0 -4842
@@ -1 +1 @@
1
- import"tslib";import"react/jsx-runtime";export{R as RecordGrids}from"../../../../../../../../../Grid-7ed3dd4c.js";import"../../../../../../hooks/useGridInstance.js";import"@fluentui/react";import"./styles.js";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-migration-v8-v9";import"../../../../../../../../../hooks/useControlSizing.js";import"../../../../../../model/Grid.js";import"../../../../../../../constants.js";import"../../../../../../../filtering/model/Filtering.js";import"../../../../../../model/GridDependency.js";import"../../../../../../../filtering/model/Condition.js";import"../../../../../../enums/ConditionOperator.js";import"../../../../../../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"../../../../../../services/RecordUpdateService/model/RecordUpdateService.js";import"lodash";import"numeral";import"../../../../../../../../../utils/Numeral.js";import"../../../../../../model/Metadata.js";import"@ag-grid-community/react";import"../../../../../../../selection/controllers/useSelectionController.js";import"../../../../../../../GridContext.js";import"../../../../../AgGrid/styles.js";import"../../../../../AgGrid/controllers/useAgGridController.js";import"../../../../../../controllers/useGridController.js";import"../../../../../Cell/EditableCell/EditableCell.js";import"../../../../../../services/RecordUpdateService/controllers/useRecordUpdateServiceController.js";import"../../../../../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"../../../../../Component/controller/useComponentController.js";import"../../../../../Component/model/Component.js";import"../../../../../Cell/ReadOnlyCell/ReadOnlyCell.js";import"../../../../../Cell/ReadOnlyCell/styles.js";import"../../../../../Cell/Commands/Commands.js";import"../../../../../Cell/Commands/useCommands.js";import"../../../../../Cell/Commands/Icon.js";import"external-svg-loader";import"../../../../../Cell/Commands/styles.js";import"../../../../../Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.js";import"../../../../../Cell/ReadOnlyCell/ReadOnlyOptionSet/styles.js";import"color";import"../../../../../../../validation/controllers/useRecordValidationController.js";import"../../../../../../hooks/useRerender.js";import"../../../../../ColumnHeader/ColumnHeader.js";import"../../../../../../../filtering/components/FilterCallout/FilterCallout.js";import"../../../../../../../filtering/components/FilterCallout/styles.js";import"../../../../../../../filtering/controller/useColumnFilterConditionController.js";import"../../../../../../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"../../../../../ColumnHeader/styles.js";import"../../../../../ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.js";import"../../../../../ColumnHeader/components/GlobalCheckbox/styles.js";import"../../../../../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"../../../../../AgGrid/components/EmptyRecordsOverlay/EmptyRecords.js";import"../../../../../AgGrid/components/EmptyRecordsOverlay/styles.js";import"../../../../hooks/useSave.js";import"../../../../styles.js";import"../../../../../Dialog/index.js";import"../../../../../Dialog/Constants.js";import"../../../../../Dialog/Styles.js";import"../../../../../../../translations.js";import"../../styles.js";import"../../../../../AgGrid/components/LoadingOverlay/LoadingOverlay.js";import"../../../../../AgGrid/components/LoadingOverlay/styles.js";
1
+ import"tslib";import"react/jsx-runtime";export{R as RecordGrids}from"../../../../../../../../../Grid-b7e6190d.js";import"../../../../../../hooks/useGridInstance.js";import"@fluentui/react";import"./styles.js";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-migration-v8-v9";import"../../../../../../../../../hooks/useControlSizing.js";import"../../../../../../model/Grid.js";import"../../../../../../../constants.js";import"../../../../../../../filtering/model/Filtering.js";import"../../../../../../model/GridDependency.js";import"../../../../../../../filtering/model/Condition.js";import"../../../../../../enums/ConditionOperator.js";import"../../../../../../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"../../../../../../services/RecordUpdateService/model/RecordUpdateService.js";import"lodash";import"numeral";import"../../../../../../../../../utils/Numeral.js";import"../../../../../../model/Metadata.js";import"@ag-grid-community/react";import"../../../../../../../selection/controllers/useSelectionController.js";import"../../../../../../../GridContext.js";import"../../../../../AgGrid/styles.js";import"../../../../../AgGrid/controllers/useAgGridController.js";import"../../../../../../controllers/useGridController.js";import"../../../../../Cell/EditableCell/EditableCell.js";import"../../../../../../services/RecordUpdateService/controllers/useRecordUpdateServiceController.js";import"../../../../../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"../../../../../Component/controller/useComponentController.js";import"../../../../../Component/model/Component.js";import"../../../../../Cell/ReadOnlyCell/ReadOnlyCell.js";import"../../../../../Cell/ReadOnlyCell/styles.js";import"../../../../../Cell/Commands/Commands.js";import"../../../../../Cell/Commands/useCommands.js";import"../../../../../Cell/Commands/Icon.js";import"external-svg-loader";import"../../../../../Cell/Commands/styles.js";import"../../../../../Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.js";import"../../../../../Cell/ReadOnlyCell/ReadOnlyOptionSet/styles.js";import"color";import"../../../../../../../validation/controllers/useRecordValidationController.js";import"../../../../../../hooks/useRerender.js";import"../../../../../ColumnHeader/ColumnHeader.js";import"../../../../../../../filtering/components/FilterCallout/FilterCallout.js";import"../../../../../../../filtering/components/FilterCallout/styles.js";import"../../../../../../../filtering/controller/useColumnFilterConditionController.js";import"../../../../../../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"../../../../../ColumnHeader/styles.js";import"../../../../../ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.js";import"../../../../../ColumnHeader/components/GlobalCheckbox/styles.js";import"../../../../../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"../../../../../AgGrid/components/EmptyRecordsOverlay/EmptyRecords.js";import"../../../../../AgGrid/components/EmptyRecordsOverlay/styles.js";import"../../../../hooks/useSave.js";import"../../../../styles.js";import"../../../../../Dialog/index.js";import"../../../../../Dialog/Constants.js";import"../../../../../Dialog/Styles.js";import"../../../../../../../translations.js";import"../../styles.js";import"../../../../../AgGrid/components/LoadingOverlay/LoadingOverlay.js";import"../../../../../AgGrid/components/LoadingOverlay/styles.js";
@@ -16,6 +16,7 @@ export declare enum DataType {
16
16
  TWO_OPTIONS = "TwoOptions",
17
17
  LOOKUP_SIMPLE = "Lookup.Simple",
18
18
  LOOKUP_OWNER = "Lookup.Owner",
19
+ LOOKUP_CUSTOMER = "Lookup.Customer",
19
20
  WHOLE_LANGUAGE = "Whole.Language",
20
21
  WHOLE_DURATION = "Whole.Duration",
21
22
  WHOLE_TIMEZONE = "Whole.TimeZone",
@@ -1 +1 @@
1
- var E;!function(E){E.SINGLE_LINE_TEXT="SingleLine.Text",E.SINGLE_LINE_TEXT_AREA="SingleLine.TextArea",E.SINGLE_LINE_EMAIL="SingleLine.Email",E.SINGLE_LINE_PHONE="SingleLine.Phone",E.SINGLE_LINE_URL="SingleLine.URL",E.MULTIPLE="Multiple",E.WHOLE_NONE="Whole.None",E.DECIMAL="Decimal",E.FP="FP",E.DATE_AND_TIME_DATE_AND_TIME="DateAndTime.DateAndTime",E.DATE_AND_TIME_DATE_ONLY="DateAndTime.DateOnly",E.CURRENCY="Currency",E.OPTIONSET="OptionSet",E.MULTI_SELECT_OPTIONSET="MultiSelectPicklist",E.TWO_OPTIONS="TwoOptions",E.LOOKUP_SIMPLE="Lookup.Simple",E.LOOKUP_OWNER="Lookup.Owner",E.WHOLE_LANGUAGE="Whole.Language",E.WHOLE_DURATION="Whole.Duration",E.WHOLE_TIMEZONE="Whole.TimeZone",E.FILE="File",E.IMAGE="Image"}(E||(E={}));export{E as DataType};
1
+ var E;!function(E){E.SINGLE_LINE_TEXT="SingleLine.Text",E.SINGLE_LINE_TEXT_AREA="SingleLine.TextArea",E.SINGLE_LINE_EMAIL="SingleLine.Email",E.SINGLE_LINE_PHONE="SingleLine.Phone",E.SINGLE_LINE_URL="SingleLine.URL",E.MULTIPLE="Multiple",E.WHOLE_NONE="Whole.None",E.DECIMAL="Decimal",E.FP="FP",E.DATE_AND_TIME_DATE_AND_TIME="DateAndTime.DateAndTime",E.DATE_AND_TIME_DATE_ONLY="DateAndTime.DateOnly",E.CURRENCY="Currency",E.OPTIONSET="OptionSet",E.MULTI_SELECT_OPTIONSET="MultiSelectPicklist",E.TWO_OPTIONS="TwoOptions",E.LOOKUP_SIMPLE="Lookup.Simple",E.LOOKUP_OWNER="Lookup.Owner",E.LOOKUP_CUSTOMER="Lookup.Customer",E.WHOLE_LANGUAGE="Whole.Language",E.WHOLE_DURATION="Whole.Duration",E.WHOLE_TIMEZONE="Whole.TimeZone",E.FILE="File",E.IMAGE="Image"}(E||(E={}));export{E as DataType};
@@ -1 +1 @@
1
- import{__awaiter as e}from"tslib";import{RIBBON_COLUMN_KEY as t}from"../../constants.js";import{Filtering as i}from"../../filtering/model/Filtering.js";import{Paging as r}from"../../paging/model/Paging.js";import{Selection as s}from"../../selection/model/Selection.js";import{Sorting as n}from"../../sorting/Sorting.js";import{DataType as o}from"../enums/DataType.js";import{RecordUpdateService as a}from"../services/RecordUpdateService/model/RecordUpdateService.js";import{Metadata as d}from"./Metadata.js";import"./GridDependency.js";import"../../filtering/model/Condition.js";import"../enums/ConditionOperator.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"fast-deep-equal/es6";import"lodash";import"numeral";import"../../../../utils/Numeral.js";class Grid{constructor(e,t){this._columns=[],this._records=[],this._shouldRerender=!1,this._props=e,this._dataset=e.parameters.Grid,this._pcfContext=e.context,this._labels=t,this._dependencies={recordUpdateService:new a(this),filtering:new i(this),selection:new s(this),metadata:new d(this),sorting:new n(this),paging:new r(this)}}get isNavigationEnabled(){var e;return!1!==(null===(e=this.parameters.EnableNavigation)||void 0===e?void 0:e.raw)}get isEditable(){return!!this._columns.find((e=>e.isEditable))}get parameters(){return this._props.parameters}get error(){return this._dataset.error}get errorMessage(){return this._dataset.errorMessage}get labels(){return this._labels}get dataset(){return this._dataset}get pcfContext(){return this._pcfContext}get props(){return this._props}get columns(){return this._columns}get records(){return this._records}get recordUpdateService(){return this._dependencies.recordUpdateService}get sorting(){return this._dependencies.sorting}get metadata(){return this._dependencies.metadata}get filtering(){return this._dependencies.filtering}get selection(){return this._dependencies.selection}get paging(){return this._dependencies.paging}get shouldRerender(){return this._shouldRerender}get loading(){return this._dataset.loading}get state(){return this._props.state}get useContainerAsHeight(){var e;return!0===(null===(e=this.parameters.UseContainerAsHeight)||void 0===e?void 0:e.raw)}get enableOptionSetColors(){var e;return!0===(null===(e=this.parameters.EnableOptionSetColors)||void 0===e?void 0:e.raw)}get linking(){return this.dataset.linking}get inlineRibbonButtonIds(){var e;const t=null===(e=this.parameters.InlineRibbonButtonIds)||void 0===e?void 0:e.raw;if(t)return t.split(",")}openDatasetItem(e){this._dataset.openDatasetItem(e);const t=this._records.find((t=>t.getRecordId()===e.id.guid));t&&this.selection.toggle(t,!0,!0,!0)}updateDependencies(e){this._props=e,this._dataset=e.parameters.Grid,this._pcfContext=e.context;for(const[e,t]of Object.entries(this._dependencies))t.onDependenciesUpdated();this._shouldRerender=!this.shouldRerender}refreshColumns(){var i,r,s,n,a,d;return e(this,void 0,void 0,(function*(){const e=[];for(const l of this._dataset.columns){const u=null===(i=this._dataset.sorting)||void 0===i?void 0:i.find((e=>e.name===l.name)),p=(null===(r=l.name)||void 0===r?void 0:r.includes("."))?l.name.split(".")[0]:null,m=p?l.name.split(".")[1]:l.name,c=p?`${p}.${m}`:m;switch(l.dataType){case o.FILE:case o.IMAGE:if(p)continue}const h={entityAliasName:p,attributeName:m,key:p?`${p}.${m}`:m,isPrimary:l.isPrimary,dataType:l.dataType,displayName:l.displayName,isEditable:l.isEditable,isFilterable:this._isColumnFilterable(l),isRequired:l.isRequired,isSortable:this._isColumnSortable(l),isSorted:!!u,isSortedDescending:1===(null==u?void 0:u.sortDirection),width:(null===(a=null===(n=null===(s=this.state)||void 0===s?void 0:s.columnSizing)||void 0===n?void 0:n.columnSizingModel)||void 0===a?void 0:a.find((e=>e.colId===c)).width)||l.visualSizeFactor,isResizable:null===(d=l.isResizable)||void 0===d||d},g=yield this.filtering.condition(h);h.isFiltered=g.isAppliedToDataset,h.isEditable=yield this._isColumnEditable(h),h.isRequired=yield this._isColumnRequired(h),h.key===t&&(h.isFilterable=!1,h.isSortable=!1),e.push(h)}return void 0!==this.selection.type&&e.unshift({key:"__checkbox",attributeName:"__checkbox",width:45,isResizable:!1}),this._columns=e,e}))}refreshRecords(){const e=[];for(const[t,i]of Object.entries(this._dataset.records))e.push(i);return this._records=e,e}_isColumnEditable(t){var i,r,s;return e(this,void 0,void 0,(function*(){if("boolean"==typeof t.isEditable)return t.isEditable;if(!(null===(i=this._props.parameters.EnableEditing)||void 0===i?void 0:i.raw))return!1;if(t.entityAliasName)return!1;switch(t.dataType){case o.FILE:case o.IMAGE:return!1}const e=yield this._pcfContext.utils.getEntityMetadata(this._dataset.getTargetEntityType(),[t.attributeName]);return null!==(s=null===(r=e.Attributes.get(t.attributeName))||void 0===r?void 0:r.attributeDescriptor.IsValidForUpdate)&&void 0!==s&&s}))}_isColumnRequired(t){var i,r;return e(this,void 0,void 0,(function*(){if("boolean"==typeof t.isRequired)return t.isRequired;if(!(null===(i=this.parameters.EnableEditing)||void 0===i?void 0:i.raw))return!1;const e=yield this.metadata.get(t),s=null===(r=e.Attributes.get(t.attributeName))||void 0===r?void 0:r.attributeDescriptor.RequiredLevel;return 1===s||2===s}))}_isColumnSortable(e){var t;return!1!==(null===(t=this._props.parameters.EnableSorting)||void 0===t?void 0:t.raw)&&(e.dataType!==o.IMAGE&&!e.disableSorting)}_isColumnFilterable(e){var t,i;return!1!==(null===(t=this.props.parameters.EnableFiltering)||void 0===t?void 0:t.raw)&&(null===(i=e.isFilterable)||void 0===i||i)}}export{Grid};
1
+ import{__awaiter as e}from"tslib";import{RIBBON_COLUMN_KEY as t}from"../../constants.js";import{Filtering as i}from"../../filtering/model/Filtering.js";import{Paging as r}from"../../paging/model/Paging.js";import{Selection as s}from"../../selection/model/Selection.js";import{Sorting as n}from"../../sorting/Sorting.js";import{DataType as o}from"../enums/DataType.js";import{RecordUpdateService as a}from"../services/RecordUpdateService/model/RecordUpdateService.js";import{Metadata as d}from"./Metadata.js";import"./GridDependency.js";import"../../filtering/model/Condition.js";import"../enums/ConditionOperator.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"fast-deep-equal/es6";import"lodash";import"numeral";import"../../../../utils/Numeral.js";class Grid{constructor(e,t){this._columns=[],this._records=[],this._shouldRerender=!1,this._props=e,this._dataset=e.parameters.Grid,this._pcfContext=e.context,this._labels=t,this._dependencies={recordUpdateService:new a(this),filtering:new i(this),selection:new s(this),metadata:new d(this),sorting:new n(this),paging:new r(this)}}get isNavigationEnabled(){var e;return!1!==(null===(e=this.parameters.EnableNavigation)||void 0===e?void 0:e.raw)}get isEditable(){return!!this._columns.find((e=>e.isEditable))}get parameters(){return this._props.parameters}get error(){return this._dataset.error}get errorMessage(){return this._dataset.errorMessage}get labels(){return this._labels}get dataset(){return this._dataset}get pcfContext(){return this._pcfContext}get props(){return this._props}get columns(){return this._columns}get records(){return this._records}get recordUpdateService(){return this._dependencies.recordUpdateService}get sorting(){return this._dependencies.sorting}get metadata(){return this._dependencies.metadata}get filtering(){return this._dependencies.filtering}get selection(){return this._dependencies.selection}get paging(){return this._dependencies.paging}get shouldRerender(){return this._shouldRerender}get loading(){return this._dataset.loading}get state(){return this._props.state}get useContainerAsHeight(){var e;return!0===(null===(e=this.parameters.UseContainerAsHeight)||void 0===e?void 0:e.raw)}get enableOptionSetColors(){var e;return!0===(null===(e=this.parameters.EnableOptionSetColors)||void 0===e?void 0:e.raw)}get linking(){return this.dataset.linking}get inlineRibbonButtonIds(){var e;const t=null===(e=this.parameters.InlineRibbonButtonIds)||void 0===e?void 0:e.raw;if(t)return t.split(",")}openDatasetItem(e){this._dataset.openDatasetItem(e);const t=this._records.find((t=>t.getRecordId()===e.id.guid));t&&this.selection.toggle(t,!0,!0,!0)}updateDependencies(e){this._props=e,this._dataset=e.parameters.Grid,this._pcfContext=e.context;for(const[e,t]of Object.entries(this._dependencies))t.onDependenciesUpdated();this._shouldRerender=!this.shouldRerender}refreshColumns(){var i,r,s,n,a,d,l;return e(this,void 0,void 0,(function*(){const e=[];for(const u of this._dataset.columns){const p=null===(i=this._dataset.sorting)||void 0===i?void 0:i.find((e=>e.name===u.name)),m=(null===(r=u.name)||void 0===r?void 0:r.includes("."))?u.name.split(".")[0]:null,c=m?u.name.split(".")[1]:u.name,h=m?`${m}.${c}`:c;switch(u.dataType){case o.FILE:case o.IMAGE:if(m)continue}const g={entityAliasName:m,attributeName:c,key:m?`${m}.${c}`:c,isPrimary:u.isPrimary,dataType:u.dataType,displayName:u.displayName,isEditable:u.isEditable,isFilterable:this._isColumnFilterable(u),isRequired:u.isRequired,isSortable:this._isColumnSortable(u),isSorted:!!p,isSortedDescending:1===(null==p?void 0:p.sortDirection),width:(null===(d=null===(a=null===(n=null===(s=this.state)||void 0===s?void 0:s.columnSizing)||void 0===n?void 0:n.columnSizingModel)||void 0===a?void 0:a.find((e=>e.colId===h)))||void 0===d?void 0:d.width)||u.visualSizeFactor,isResizable:null===(l=u.isResizable)||void 0===l||l},v=yield this.filtering.condition(g);g.isFiltered=v.isAppliedToDataset,g.isEditable=yield this._isColumnEditable(g),g.isRequired=yield this._isColumnRequired(g),g.key===t&&(g.isFilterable=!1,g.isSortable=!1),e.push(g)}return void 0!==this.selection.type&&e.unshift({key:"__checkbox",attributeName:"__checkbox",width:45,isResizable:!1}),this._columns=e,e}))}refreshRecords(){const e=[];for(const[t,i]of Object.entries(this._dataset.records))e.push(i);return this._records=e,e}_isColumnEditable(t){var i,r,s;return e(this,void 0,void 0,(function*(){if("boolean"==typeof t.isEditable)return t.isEditable;if(!(null===(i=this._props.parameters.EnableEditing)||void 0===i?void 0:i.raw))return!1;if(t.entityAliasName)return!1;switch(t.dataType){case o.FILE:case o.IMAGE:return!1}const e=yield this._pcfContext.utils.getEntityMetadata(this._dataset.getTargetEntityType(),[t.attributeName]);return null!==(s=null===(r=e.Attributes.get(t.attributeName))||void 0===r?void 0:r.attributeDescriptor.IsValidForUpdate)&&void 0!==s&&s}))}_isColumnRequired(t){var i,r;return e(this,void 0,void 0,(function*(){if("boolean"==typeof t.isRequired)return t.isRequired;if(!(null===(i=this.parameters.EnableEditing)||void 0===i?void 0:i.raw))return!1;const e=yield this.metadata.get(t),s=null===(r=e.Attributes.get(t.attributeName))||void 0===r?void 0:r.attributeDescriptor.RequiredLevel;return 1===s||2===s}))}_isColumnSortable(e){var t;return!1!==(null===(t=this._props.parameters.EnableSorting)||void 0===t?void 0:t.raw)&&(e.dataType!==o.IMAGE&&!e.disableSorting)}_isColumnFilterable(e){var t,i;return!1!==(null===(t=this.props.parameters.EnableFiltering)||void 0===t?void 0:t.raw)&&(null===(i=e.isFilterable)||void 0===i||i)}}export{Grid};
@@ -1 +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};
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{useTheme as s}from"@fluentui/react";import{FilteringUtils as a}from"../../../../utils/FilteringUtilts.js";import{useGridInstance as i}from"../../../../../core/hooks/useGridInstance.js";import{useColumnFilterConditionController as n}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 c=c=>{const{column:p}=Object.assign({},c),m=a.condition().operator(),l=i(),u=n(p),E=s();return u?e(o,Object.assign({},c,{underlined:E.effects.underlined,selectedKey:u.operator.get(),shouldRestoreFocus:!1,options:(()=>{let e=m.textFieldOperators;switch(p.dataType){case r.WHOLE_NONE:case r.DECIMAL:case r.FP:case r.WHOLE_DURATION:case r.CURRENCY:e=m.numberOperators;break;case r.DATE_AND_TIME_DATE_AND_TIME:case r.DATE_AND_TIME_DATE_ONLY:e=m.dateOperators;break;case r.MULTI_SELECT_OPTIONSET:e=m.multipleOptionSetOperators;break;case r.FILE:case r.IMAGE:e=m.fileOperators}return e.map((e=>({key:e.type,text:l.labels[e.key]()})))})(),useComboBoxAsMenuWidth:!0,styles:{callout:{maxHeight:"300px !important"}},onChange:(e,t)=>{u.operator.set(t.key)}})):e(t,{})};export{c as ConditionOperator};
@@ -1 +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};
1
+ import{__awaiter as o}from"tslib";import{jsx as t,Fragment as e}from"react/jsx-runtime";import{useRef as i,useMemo as r,useEffect as s}from"react";import{Component as n}from"../../../../../core/components/Component/Component.js";import{useColumnFilterConditionController as m}from"../../../../controller/useColumnFilterConditionController.js";import{ConditionComponentValue as p}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"../../../../../../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 l=o=>{const i=m(o.column);return i?t(a,Object.assign({},i)):t(e,{})},a=e=>{const m=i(null),l=i(e);l.current=e;const a=r((()=>new p(l)),[]),u=a.column;return s((()=>{var o;if(null===a.get()){const t=null===(o=m.current)||void 0===o?void 0:o.querySelector("input");null==t||t.focus()}}),[a.get()]),t("div",Object.assign({ref:m},{children:t(n,{column:u,value:a.get(),onNotifyOutputChanged:o=>a.set(o),onOverrideControlProps:t=>Object.assign(Object.assign({},t),{parameters:Object.assign(Object.assign({},t.parameters),{MultipleEnabled:{raw:!0},IsInlineNewEnabled:{raw:!1},ShowErrorMessage:{raw:!0},value:Object.assign(Object.assign({},t.parameters.value),{getAllViews:e=>o(void 0,void 0,void 0,(function*(){return t.parameters.value.getAllViews(e,1)}))})})})})}))};export{l as ConditionValue};
@@ -1 +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};
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:case o.LOOKUP_CUSTOMER: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:case o.LOOKUP_CUSTOMER: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};
@@ -1 +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};
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.LOOKUP_CUSTOMER: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:case e.LOOKUP_CUSTOMER: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:case e.LOOKUP_CUSTOMER: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};
@@ -1 +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
+ export{G as Grid}from"../../Grid-b7e6190d.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 +1 @@
1
- import{__awaiter as e}from"tslib";import{jsxs as t,Fragment as o,jsx as r}from"react/jsx-runtime";import{useLookup as i}from"./hooks/useLookup.js";import{useRef as n,useState as s,useEffect as a}from"react";import{ThemeProvider as l}from"@fluentui/react";import{TagPicker as u}from"@talxis/react-components";import{TargetSelector as d}from"./components/TargetSelector.js";import{useMouseOver as c}from"../../hooks/useMouseOver.js";import{getLookupStyles as m}from"./styles.js";import{RecordCreator as p}from"./components/RecordCreator.js";import{useFocusIn as v}from"../../hooks/useFocusIn.js";import{useControlSizing as g}from"../../hooks/useControlSizing.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"./translations.js";import"./hooks/useFetchXml.js";import"@talxis/client-libraries";import"@fluentui/react/lib/Text";import"./hooks/useLoadedEntities.js";const y=y=>{var f,h,b,k;const j=y.context,T=n(null),S=n(null),C=!0===(null===(f=y.parameters.MultipleEnabled)||void 0===f?void 0:f.raw)?1/0:1,{height:x}=g(y.context.mode),[E,N,w,I,L,M,P]=i(y),_=m(P,1===C,x),O=c(T),D=v(T,100),F=n(!0),R=n(!1),[q,A]=s("---");a((()=>{F.current?F.current=!1:S.current.state.suggestionsVisible&&V()}),[N]),a((()=>{const e=e=>{var t;if(!j.mode.isControlDisabled&&"Backspace"===e.key){const e=null===(t=T.current)||void 0===t?void 0:t.querySelector('[class*="TALXIS__tag-picker__root"]');document.activeElement===e&&1===E.length&&(I.select(void 0),setTimeout((()=>{var e;null===(e=S.current)||void 0===e||e.focusInput()}),200))}};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}}),[E]),a((()=>{var e;!0===(null===(e=y.parameters.AutoFocus)||void 0===e?void 0:e.raw)&&B()}),[]);const B=()=>{var e,t,o,r,i;(null===(t=null===(e=S.current)||void 0===e?void 0:e.items)||void 0===t?void 0:t.length)!==C?null===(i=S.current)||void 0===i||i.focusInput():null===(r=null===(o=T.current)||void 0===o?void 0:o.querySelector('[class*="TALXIS__tag-picker__root"]'))||void 0===r||r.focus()},V=()=>e(void 0,void 0,void 0,(function*(){S.current.suggestionStore.updateSuggestions([]),S.current.setState({suggestionsVisible:!0,suggestionsLoading:!0});const e=yield X(S.current.input.current.value);S.current.updateSuggestionsList(e),S.current.setState({isMostRecentlyUsedVisible:!1,suggestionsVisible:!0,moreSuggestionsAvailable:!1})})),X=(t,o)=>e(void 0,void 0,void 0,(function*(){var e;const r=yield M(t),i=[];for(const t of r){if(null==o?void 0:o.find((e=>e.key===t.id)))continue;const r=yield null===(e=N.find((e=>e.entityName===t.entityType)))||void 0===e?void 0:e.metadata;i.push({key:t.id,text:t.name||w.noName(),secondaryText:null==r?void 0:r.DisplayName,"data-entity":t.entityType})}return i}));let z={ref:S,underlined:P.effects.underlined,readOnly:j.mode.isControlDisabled,resolveDelay:200,stackItems:1===C,errorMessage:y.parameters.value.errorMessage,hideErrorMessage:!(null===(h=y.parameters.ShowErrorMessage)||void 0===h?void 0:h.raw),pickerCalloutProps:{layerProps:{eventBubblingEnabled:!0},className:_.suggestions},inputProps:{placeholder:q,onMouseEnter:()=>{j.mode.isControlDisabled||A(`${w.placeholder()} ${y.parameters.value.attributes.DisplayName}`)},onMouseLeave:()=>{A("---")}},pickerSuggestionsProps:{loadingText:w.searching(),noResultsFoundText:w.noRecordsFound(),suggestionsHeaderText:t(o,{children:[!1!==(null===(b=y.parameters.IsInlineNewEnabled)||void 0===b?void 0:b.raw)&&r(p,{labels:w,entities:N,onCreateRecord:I.create}),y.parameters.value.attributes.Targets.length>1&&r(d,{labels:w,entities:N,onEntitySelected:e=>{L(e)}})]})},transparent:1===C,onChange:e=>{I.select(null==e?void 0:e.map((e=>({entityType:e["data-entity"],id:e.key,name:e.text}))))},searchBtnProps:{key:"search",iconProps:{iconName:"Search"}},selectedItems:E.map((e=>{var t;return{key:e.id,text:e.name||w.noName(),"data-entity":e.entityType,"data-navigation-enabled":!1!==(null===(t=y.parameters.EnableNavigation)||void 0===t?void 0:t.raw),onClick:()=>{var t;!1!==(null===(t=y.parameters.EnableNavigation)||void 0===t?void 0:t.raw)&&j.navigation.openForm({entityName:e.entityType,entityId:e.id})},deleteButtonProps:O||D||C>1?{key:"delete",iconProps:{iconName:"ChromeClose",styles:{root:{fontSize:12,width:16}}},onClick:()=>{R.current=!1,I.deselect(e),setTimeout((()=>{B()}),200)}}:void 0}})),itemLimit:C,onResolveSuggestions:X};return z=Object.assign(Object.assign({},z),null===(k=y.onOverrideComponentProps)||void 0===k?void 0:k.call(y,z)),r(l,Object.assign({applyTo:"none",theme:P,className:_.root,ref:T},{children:r(u,Object.assign({},z))}))};export{y as Lookup};
1
+ import{__awaiter as e}from"tslib";import{jsxs as t,Fragment as o,jsx as r}from"react/jsx-runtime";import{useLookup as i}from"./hooks/useLookup.js";import{useRef as n,useState as s,useEffect as a}from"react";import{ThemeProvider as l}from"@fluentui/react";import{TagPicker as u}from"@talxis/react-components";import{TargetSelector as d}from"./components/TargetSelector.js";import{useMouseOver as c}from"../../hooks/useMouseOver.js";import{getLookupStyles as m}from"./styles.js";import{RecordCreator as p}from"./components/RecordCreator.js";import{useFocusIn as v}from"../../hooks/useFocusIn.js";import{useControlSizing as g}from"../../hooks/useControlSizing.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"./translations.js";import"./hooks/useFetchXml.js";import"@talxis/client-libraries";import"@fluentui/react/lib/Text";import"./hooks/useLoadedEntities.js";const y=y=>{var f,h,k,b;const T=y.context,j=n(null),S=n(null),C=!0===(null===(f=y.parameters.MultipleEnabled)||void 0===f?void 0:f.raw)?1/0:1,{height:x}=g(y.context.mode),[E,N,w,I,L,M,P]=i(y),D=m(P,1===C,x),F=c(j),R=v(j,100),_=n(!0),O=n(!1),[q,B]=s("---"),V=null!==(h=y.onOverrideComponentProps)&&void 0!==h?h:e=>e;a((()=>{_.current?_.current=!1:S.current.state.suggestionsVisible&&$()}),[N]),a((()=>{const e=e=>{var t;if(!T.mode.isControlDisabled&&"Backspace"===e.key){const e=null===(t=j.current)||void 0===t?void 0:t.querySelector('[class*="TALXIS__tag-picker__root"]');document.activeElement===e&&1===E.length&&(I.select(void 0),setTimeout((()=>{var e;null===(e=S.current)||void 0===e||e.focusInput()}),200))}};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}}),[E]),a((()=>{var e;!0===(null===(e=y.parameters.AutoFocus)||void 0===e?void 0:e.raw)&&A()}),[]);const A=()=>{var e,t,o,r;if((null===(t=null===(e=S.current)||void 0===e?void 0:e.items)||void 0===t?void 0:t.length)===C){const e=null===(o=j.current)||void 0===o?void 0:o.querySelector(":scope>div");return null==e||e.click(),void(null==e||e.focus())}null===(r=S.current)||void 0===r||r.focusInput()},$=()=>e(void 0,void 0,void 0,(function*(){S.current.suggestionStore.updateSuggestions([]),S.current.setState({suggestionsVisible:!0,suggestionsLoading:!0});const e=yield z(S.current.input.current.value);S.current.updateSuggestionsList(e),S.current.setState({isMostRecentlyUsedVisible:!1,suggestionsVisible:!0,moreSuggestionsAvailable:!1})})),z=(t,o)=>e(void 0,void 0,void 0,(function*(){var e;const r=yield M(t),i=[];for(const t of r){if(null==o?void 0:o.find((e=>e.key===t.id)))continue;const r=yield null===(e=N.find((e=>e.entityName===t.entityType)))||void 0===e?void 0:e.metadata;i.push({key:t.id,text:t.name||w.noName(),secondaryText:null==r?void 0:r.DisplayName,"data-entity":t.entityType})}return i})),X=V({ref:S,underlined:P.effects.underlined,readOnly:T.mode.isControlDisabled,resolveDelay:200,stackItems:1===C,errorMessage:y.parameters.value.errorMessage,hideErrorMessage:!(null===(k=y.parameters.ShowErrorMessage)||void 0===k?void 0:k.raw),pickerCalloutProps:{layerProps:{eventBubblingEnabled:!0},className:D.suggestions},inputProps:{placeholder:q,onMouseEnter:()=>{T.mode.isControlDisabled||B(`${w.placeholder()} ${y.parameters.value.attributes.DisplayName}`)},onMouseLeave:()=>{B("---")}},pickerSuggestionsProps:{loadingText:w.searching(),noResultsFoundText:w.noRecordsFound(),suggestionsHeaderText:t(o,{children:[!1!==(null===(b=y.parameters.IsInlineNewEnabled)||void 0===b?void 0:b.raw)&&r(p,{labels:w,entities:N,onCreateRecord:I.create}),y.parameters.value.attributes.Targets.length>1&&r(d,{labels:w,entities:N,onEntitySelected:e=>{L(e)}})]})},transparent:1===C,onChange:e=>{I.select(null==e?void 0:e.map((e=>({entityType:e["data-entity"],id:e.key,name:e.text}))))},searchBtnProps:{key:"search",iconProps:{iconName:"Search"}},selectedItems:E.map((e=>{var t;return{key:e.id,text:e.name||w.noName(),"data-entity":e.entityType,"data-navigation-enabled":!1!==(null===(t=y.parameters.EnableNavigation)||void 0===t?void 0:t.raw),onClick:()=>{var t;!1!==(null===(t=y.parameters.EnableNavigation)||void 0===t?void 0:t.raw)&&T.navigation.openForm({entityName:e.entityType,entityId:e.id})},deleteButtonProps:F||R||C>1?{key:"delete",iconProps:{iconName:"ChromeClose",styles:{root:{fontSize:12,width:16}}},onClick:()=>{O.current=!1,I.deselect(e),setTimeout((()=>{A()}),200)}}:void 0}})),itemLimit:C,onResolveSuggestions:z});return r(l,Object.assign({applyTo:"none",theme:P,className:`talxis__lookupControl ${D.root}`,ref:j},{children:r(u,Object.assign({},X))}))};export{y as Lookup};
@@ -28,6 +28,7 @@ export declare const getTargetSelectorStyles: (theme: ITheme) => import("@fluent
28
28
  };
29
29
  }>;
30
30
  export declare const getLookupStyles: (theme: ITheme, isSingleSelect: boolean, height?: number) => import("@fluentui/react").IProcessedStyleSet<{
31
+ displayName: string;
31
32
  root: {
32
33
  '[data-navigation-enabled="true"]': {
33
34
  '.ms-Button-label': {
@@ -1 +1 @@
1
- import{mergeStyleSets as t}from"@fluentui/react";const e=e=>t({targetSelector:{display:"flex",paddingLeft:8,paddingRight:8,paddingBottom:8,gap:8,paddingTop:8,">span":{lineHeight:15,minWidth:"fit-content",color:e.semanticColors.listText,fontWeight:600}},targetSelectorLinks:{display:"flex",gap:5,flexWrap:"wrap"},targetSelectorLink:{color:e.palette.blackTranslucent40,'&[data-selected="true"]':{color:e.semanticColors.link,fontWeight:600}}}),n=(e,n,i)=>{const o=(t=>{if(-1!==t&&0!==t)return t})(i);return t({root:{'[data-navigation-enabled="true"]':{".ms-Button-label":{color:`${e.semanticColors.link} !important`,fontWeight:600,marginLeft:2},":hover":{textDecoration:"underline",cursor:"pointer !important"}},".ms-BasePicker-itemsWrapper .ms-CommandBar.ms-CommandBar":{height:o&&n?o-6:void 0},".ms-BasePicker-text":{minHeight:null!=o?o:32,height:"min-content",paddingRight:n?void 0:36,alignItems:"baseline",input:{alignSelf:"center"}},".TALXIS__input-buttons__root":{height:o&&o-3+"px !important"}},suggestions:{".ms-Suggestions-title":{padding:0,display:"flex",flexDirection:"column"}},createRecordBtn:{height:38,width:"100%",".ms-Button-menuIcon":{display:"none"},">.ms-Button-flexContainer.ms-Button-flexContainer":{justifyContent:"flex-start"},".ms-Button-textContainer":{flexGrow:"initial",">span":{fontWeight:600}}}})};export{n as getLookupStyles,e as getTargetSelectorStyles};
1
+ import{mergeStyleSets as t}from"@fluentui/react";const e=e=>t({targetSelector:{display:"flex",paddingLeft:8,paddingRight:8,paddingBottom:8,gap:8,paddingTop:8,">span":{lineHeight:15,minWidth:"fit-content",color:e.semanticColors.listText,fontWeight:600}},targetSelectorLinks:{display:"flex",gap:5,flexWrap:"wrap"},targetSelectorLink:{color:e.palette.blackTranslucent40,'&[data-selected="true"]':{color:e.semanticColors.link,fontWeight:600}}}),n=(e,n,i)=>{const o=(t=>{if(-1!==t&&0!==t)return t})(i);return t({displayName:"talxis__lookupControl",root:{'[data-navigation-enabled="true"]':{".ms-Button-label":{color:`${e.semanticColors.link} !important`,fontWeight:600,marginLeft:2},":hover":{textDecoration:"underline",cursor:"pointer !important"}},".ms-BasePicker-itemsWrapper .ms-CommandBar.ms-CommandBar":{height:o&&n?o-6:void 0},".ms-BasePicker-text":{minHeight:null!=o?o:32,height:"min-content",paddingRight:n?void 0:36,alignItems:"baseline",input:{alignSelf:"center"}},".TALXIS__input-buttons__root":{height:o&&o-3+"px !important"}},suggestions:{".ms-Suggestions-title":{padding:0,display:"flex",flexDirection:"column"}},createRecordBtn:{height:38,width:"100%",".ms-Button-menuIcon":{display:"none"},">.ms-Button-flexContainer.ms-Button-flexContainer":{justifyContent:"flex-start"},".ms-Button-textContainer":{flexGrow:"initial",">span":{fontWeight:600}}}})};export{n as getLookupStyles,e as getTargetSelectorStyles};
@@ -1 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import{TextField as o}from"@talxis/react-components";import{useRef as r,useMemo as i}from"react";import{useInputBasedControl as n}from"../../hooks/useInputBasedControl.js";import{ThemeProvider as t}from"@fluentui/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-migration-v8-v9";import"../../hooks/useControlSizing.js";const l=l=>{var s,a,u,d,c,p;const m=l.context,h=l.parameters,v=h.value,g=r(null),{value:y,sizing:f,theme:w,setValue:b,onNotifyOutputChanged:k}=n("TextField",l);let C={underlined:w.effects.underlined,readOnly:m.mode.isControlDisabled,resizable:!1,type:i((()=>(()=>{switch(v.type){case"SingleLine.Email":return"email";case"SingleLine.URL":return"url";case"SingleLine.Phone":return"tel"}return"text"})()),[v.type]),multiline:"Multiple"===h.value.type,autoFocus:null===(s=h.AutoFocus)||void 0===s?void 0:s.raw,elementRef:g,styles:{fieldGroup:{height:f.height,width:f.width}},borderless:!1===(null===(a=h.EnableBorder)||void 0===a?void 0:a.raw),errorMessage:v.errorMessage,hideErrorMessage:!(null===(u=h.ShowErrorMessage)||void 0===u?void 0:u.raw),suffixItems:i((()=>(()=>{var e;if(!1===(null===(e=h.EnableTypeSuffix)||void 0===e?void 0:e.raw))return;const o=v.error||!v.raw;switch(v.type){case"SingleLine.Email":return[{key:"sendMail",disabled:o,iconProps:{iconName:"Mail"},href:`mailto:${v.raw}`}];case"SingleLine.Phone":return[{key:"call",disabled:o,iconProps:{iconName:"Phone"},href:`tel:${v.raw}`}];case"SingleLine.URL":return[{key:"goToPage",disabled:o,iconProps:{iconName:"Globe"},target:"_blank",href:v.raw}]}})()),[v.raw,v.error]),deleteButtonProps:!0===(null===(d=h.EnableDeleteButton)||void 0===d?void 0:d.raw)?{key:"delete",showOnlyOnHover:!0,iconProps:{iconName:"Delete"},onClick:()=>b(void 0)}:void 0,clickToCopyProps:!0===(null===(c=h.EnableCopyButton)||void 0===c?void 0:c.raw)?{key:"copy",showOnlyOnHover:!0,iconProps:{iconName:"Copy"}}:void 0,value:null!=y?y:"",onBlur:()=>{k({value:null!=y?y:void 0})},onChange:(e,o)=>{b(o)}};return C=Object.assign(Object.assign({},C),null===(p=l.onOverrideComponentProps)||void 0===p?void 0:p.call(l,C)),e(t,Object.assign({applyTo:"none",theme:w},{children:e(o,Object.assign({},C))}))};export{l as TextField};
1
+ import{jsx as e}from"react/jsx-runtime";import{TextField as o}from"@talxis/react-components";import{useMemo as r}from"react";import{useInputBasedControl as i}from"../../hooks/useInputBasedControl.js";import{ThemeProvider as t}from"@fluentui/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-migration-v8-v9";import"../../hooks/useControlSizing.js";const n=n=>{var l,a,s,u,d,p,m;const c=n.context,v=n.parameters,h=v.value,g=null!==(l=n.onOverrideComponentProps)&&void 0!==l?l:e=>e,{value:y,sizing:f,theme:w,setValue:b,onNotifyOutputChanged:k}=i("TextField",n),C=g({underlined:w.effects.underlined,readOnly:c.mode.isControlDisabled,resizable:!1,type:r((()=>(()=>{switch(h.type){case"SingleLine.Email":return"email";case"SingleLine.URL":return"url";case"SingleLine.Phone":return"tel"}return"text"})()),[h.type]),multiline:"Multiple"===v.value.type,autoFocus:null===(a=v.AutoFocus)||void 0===a?void 0:a.raw,styles:{fieldGroup:{height:f.height,width:f.width}},borderless:!1===(null===(s=v.EnableBorder)||void 0===s?void 0:s.raw),errorMessage:h.errorMessage,hideErrorMessage:!(null===(u=v.ShowErrorMessage)||void 0===u?void 0:u.raw),suffixItems:r((()=>(()=>{var e;if(!1===(null===(e=v.EnableTypeSuffix)||void 0===e?void 0:e.raw))return;const o=h.error||!h.raw;switch(h.type){case"SingleLine.Email":return[{key:"sendMail",disabled:o,iconProps:{iconName:"Mail"},href:`mailto:${h.raw}`}];case"SingleLine.Phone":return[{key:"call",disabled:o,iconProps:{iconName:"Phone"},href:`tel:${h.raw}`}];case"SingleLine.URL":return[{key:"goToPage",disabled:o,iconProps:{iconName:"Globe"},target:"_blank",href:h.raw}]}})()),[h.raw,h.error,null===(d=v.EnableTypeSuffix)||void 0===d?void 0:d.raw]),deleteButtonProps:!0===(null===(p=v.EnableDeleteButton)||void 0===p?void 0:p.raw)?{key:"delete",showOnlyOnHover:!0,iconProps:{iconName:"Delete"},onClick:()=>b(void 0)}:void 0,clickToCopyProps:!0===(null===(m=v.EnableCopyButton)||void 0===m?void 0:m.raw)?{key:"copy",showOnlyOnHover:!0,iconProps:{iconName:"Copy"}}:void 0,value:null!=y?y:"",onBlur:()=>{k({value:null!=y?y:void 0})},onChange:(e,o)=>{b(o)}});return e(t,Object.assign({style:"Multiple"===v.value.type?{height:"100%"}:void 0,applyTo:"none",theme:w},{children:e(o,Object.assign({},C))}))};export{n as TextField};
@@ -1 +1 @@
1
- import{jsx as o}from"react/jsx-runtime";import{Toggle as t}from"@fluentui/react";import{useControl as e}from"../../hooks/useControl.js";import{useRef as i,useEffect as r}from"react";import"../../utils/Theme.js";import"fast-deep-equal/es6";import"merge-anything";import"liquidjs";import"../../hooks/useControlTheme.js";import"@fluentui/react-migration-v8-v9";import"../../hooks/useControlSizing.js";const n=n=>{var s,a;const l=n.parameters,m=l.value,u=m.attributes.Options,{sizing:d,onNotifyOutputChanged:p,theme:h}=e("TwoOptions",n),c=n.context,f=i(null);r((()=>{var o;!0===(null===(o=l.AutoFocus)||void 0===o?void 0:o.raw)&&f.current.focus()}),[]);return o(t,{styles:{root:{height:d.height,width:d.width,marginBottom:0},container:{alignItems:"center"}},theme:h,checked:m.raw,componentRef:f,disabled:c.mode.isControlDisabled,inlineLabel:!0,onText:(null===(s=u.find((o=>1===o.Value)))||void 0===s?void 0:s.Label)||"Yes",offText:(null===(a=u.find((o=>0===o.Value)))||void 0===a?void 0:a.Label)||"No",onChange:(o,t)=>(o=>{p({value:o})})(t)})};export{n as TwoOptions};
1
+ import{jsx as e}from"react/jsx-runtime";import{ThemeProvider as o,Toggle as t}from"@fluentui/react";import{useControl as i}from"../../hooks/useControl.js";import{useRef as n,useEffect as r}from"react";import"../../utils/Theme.js";import"fast-deep-equal/es6";import"merge-anything";import"liquidjs";import"../../hooks/useControlTheme.js";import"@fluentui/react-migration-v8-v9";import"../../hooks/useControlSizing.js";const s=s=>{var a,l;const m=s.parameters,u=m.value,p=u.attributes.Options,{sizing:d,onNotifyOutputChanged:h,theme:c}=i("TwoOptions",s),f=s.context,g=n(null);r((()=>{var e;!0===(null===(e=m.AutoFocus)||void 0===e?void 0:e.raw)&&g.current.focus()}),[]);return e(o,Object.assign({theme:c,applyTo:"none"},{children:e(t,{styles:{root:{height:d.height,width:d.width,marginBottom:0},container:{alignItems:"center"}},theme:c,checked:u.raw,componentRef:g,disabled:f.mode.isControlDisabled,inlineLabel:!0,onText:(null===(a=p.find((e=>1===e.Value)))||void 0===a?void 0:a.Label)||"Yes",offText:(null===(l=p.find((e=>0===e.Value)))||void 0===l?void 0:l.Label)||"No",onChange:(e,o)=>(e=>{h({value:e})})(o)})}))};export{s as TwoOptions};
package/dist/index.d.ts CHANGED
@@ -20,7 +20,7 @@ interface IControl<TParameters, TOutputs, TTranslations, TComponentProps> {
20
20
  /**
21
21
  * Allows you to override the props of the internal component that the control uses for UI rendering. Might not work on every control. ONLY USE WHEN ABSOLUTELY NECESSARY AND CONSULT YOUR INTENTIONS WITH BRY!
22
22
  */
23
- onOverrideComponentProps?: (props: TComponentProps) => Partial<TComponentProps>;
23
+ onOverrideComponentProps?: (props: TComponentProps) => TComponentProps;
24
24
  }
25
25
  type ITranslations<T> = {
26
26
  [Property in keyof T]: T[Property] extends string[] ? string[] : string;
@@ -587,6 +587,16 @@ interface IDateTime extends IControl<IDateTimeParameters, IDateTimeOutputs, Part
587
587
  }
588
588
  interface IDateTimeParameters extends IInputParameters {
589
589
  value: IDateTimeProperty;
590
+ EnableMonthPicker?: ITwoOptionsProperty;
591
+ EnableDayPicker?: ITwoOptionsProperty;
592
+ /**
593
+ * JSON array of dates that should not be selectable, example: ['2019-01-10', '2019-01-11']
594
+ */
595
+ RestrictedDates?: IStringProperty;
596
+ /**
597
+ * JSON array of week days that should not be selectable (0 = Sunday,...6 = Saturday), example: [0,2,3]
598
+ */
599
+ RestrictedDaysOfWeek?: IStringProperty;
590
600
  }
591
601
  interface IDateTimeOutputs extends IOutputs$1 {
592
602
  value?: Date;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- export{useControl}from"./hooks/useControl.js";export{useControlSizing}from"./hooks/useControlSizing.js";export{useFocusIn}from"./hooks/useFocusIn.js";export{useInputBasedControl}from"./hooks/useInputBasedControl.js";export{useMouseOver}from"./hooks/useMouseOver.js";export{useControlTheme}from"./hooks/useControlTheme.js";export{DateTime}from"./components/DateTime/DateTime.js";export{useDateTime}from"./components/DateTime/hooks/useDateTime.js";export{Decimal}from"./components/Decimal/Decimal.js";export{Duration}from"./components/Duration/Duration.js";export{G as Grid}from"./Grid-7ed3dd4c.js";export{Lookup}from"./components/Lookup/Lookup.js";export{useLookup}from"./components/Lookup/hooks/useLookup.js";export{MultiSelectOptionSet}from"./components/MultiSelectOptionSet/MultiSelectOptionSet.js";export{OptionSet}from"./components/OptionSet/OptionSet.js";export{TextField}from"./components/TextField/TextField.js";export{TwoOptions}from"./components/TwoOptions/TwoOptions.js";export{Numeral}from"./utils/Numeral.js";import"react";import"fast-deep-equal/es6";import"merge-anything";import"liquidjs";import"./utils/Theme.js";import"@fluentui/react";import"@fluentui/react-migration-v8-v9";import"react/jsx-runtime";import"./components/DateTime/styles.js";import"./components/DateTime/components/Calendar.js";import"@fluentui/react/lib/Calendar";import"@talxis/react-components";import"dayjs";import"dayjs/plugin/utc";import"dayjs/plugin/customParseFormat";import"./components/DateTime/translations.js";import"numeral";import"./constants.js";import"./components/Decimal/components/ArrowButtons.js";import"./components/Decimal/components/styles.js";import"./components/Duration/translations.js";import"./components/Grid/core/model/Grid.js";import"tslib";import"./components/Grid/constants.js";import"./components/Grid/filtering/model/Filtering.js";import"./components/Grid/core/model/GridDependency.js";import"./components/Grid/filtering/model/Condition.js";import"./components/Grid/core/enums/ConditionOperator.js";import"./components/Grid/core/enums/DataType.js";import"./components/Grid/validation/model/ColumnValidation.js";import"validator/es/lib/isEmail";import"validator/es/lib/isURL";import"./components/Grid/filtering/utils/FilteringUtilts.js";import"./components/Grid/filtering/constants.js";import"./components/Grid/paging/model/Paging.js";import"./components/Grid/selection/model/Selection.js";import"./components/Grid/sorting/Sorting.js";import"./components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.js";import"lodash";import"./components/Grid/core/model/Metadata.js";import"@ag-grid-community/react";import"./components/Grid/selection/controllers/useSelectionController.js";import"./components/Grid/core/hooks/useGridInstance.js";import"./components/Grid/GridContext.js";import"./components/Grid/core/components/AgGrid/styles.js";import"./components/Grid/core/components/AgGrid/controllers/useAgGridController.js";import"./components/Grid/core/controllers/useGridController.js";import"./components/Grid/core/components/Cell/EditableCell/EditableCell.js";import"./components/Grid/core/services/RecordUpdateService/controllers/useRecordUpdateServiceController.js";import"./components/Grid/core/components/Component/Component.js";import"./components/Grid/core/components/Component/controller/useComponentController.js";import"./components/Grid/core/components/Component/model/Component.js";import"./components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.js";import"./components/Grid/core/components/Cell/ReadOnlyCell/styles.js";import"./components/Grid/core/components/Cell/Commands/Commands.js";import"./components/Grid/core/components/Cell/Commands/useCommands.js";import"./components/Grid/core/components/Cell/Commands/Icon.js";import"external-svg-loader";import"./components/Grid/core/components/Cell/Commands/styles.js";import"@talxis/client-libraries";import"./components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.js";import"./components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/styles.js";import"color";import"./components/Grid/validation/controllers/useRecordValidationController.js";import"./components/Grid/core/hooks/useRerender.js";import"./components/Grid/core/components/ColumnHeader/ColumnHeader.js";import"./components/Grid/filtering/components/FilterCallout/FilterCallout.js";import"./components/Grid/filtering/components/FilterCallout/styles.js";import"./components/Grid/filtering/controller/useColumnFilterConditionController.js";import"./components/Grid/core/hooks/useRefreshCallback.js";import"./components/Grid/filtering/components/FilterCallout/components/ConditionOperator/ConditionOperator.js";import"./components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.js";import"./components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.js";import"./components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js";import"./components/Grid/sorting/components/SortingContextualMenu/styles.js";import"./components/Grid/sorting/controllers/useColumnSortingController.js";import"./components/Grid/core/components/ColumnHeader/styles.js";import"./components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.js";import"./components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/styles.js";import"./components/Grid/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"./components/Grid/paging/controllers/usePagingController.js";import"./components/Grid/paging/components/Paging/Paging.js";import"./components/Grid/paging/components/Paging/styles.js";import"./components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/EmptyRecords.js";import"./components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/styles.js";import"./components/Grid/core/components/Save/hooks/useSave.js";import"./components/Grid/core/components/Save/styles.js";import"./components/Grid/core/components/Dialog/index.js";import"./components/Grid/core/components/Dialog/Constants.js";import"./components/Grid/core/components/Dialog/Styles.js";import"./components/Grid/translations.js";import"./components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/styles.js";import"./components/Grid/core/components/Save/components/ChangeEditor/styles.js";import"./components/Grid/core/components/AgGrid/components/LoadingOverlay/LoadingOverlay.js";import"./components/Grid/core/components/AgGrid/components/LoadingOverlay/styles.js";import"./components/Lookup/components/TargetSelector.js";import"@fluentui/react/lib/Text";import"./components/Lookup/styles.js";import"./components/Lookup/hooks/useLoadedEntities.js";import"./components/Lookup/components/RecordCreator.js";import"./components/Lookup/translations.js";import"./components/Lookup/hooks/useFetchXml.js";
1
+ export{useControl}from"./hooks/useControl.js";export{useControlSizing}from"./hooks/useControlSizing.js";export{useFocusIn}from"./hooks/useFocusIn.js";export{useInputBasedControl}from"./hooks/useInputBasedControl.js";export{useMouseOver}from"./hooks/useMouseOver.js";export{useControlTheme}from"./hooks/useControlTheme.js";export{DateTime}from"./components/DateTime/DateTime.js";export{useDateTime}from"./components/DateTime/hooks/useDateTime.js";export{Decimal}from"./components/Decimal/Decimal.js";export{Duration}from"./components/Duration/Duration.js";export{G as Grid}from"./Grid-b7e6190d.js";export{Lookup}from"./components/Lookup/Lookup.js";export{useLookup}from"./components/Lookup/hooks/useLookup.js";export{MultiSelectOptionSet}from"./components/MultiSelectOptionSet/MultiSelectOptionSet.js";export{OptionSet}from"./components/OptionSet/OptionSet.js";export{TextField}from"./components/TextField/TextField.js";export{TwoOptions}from"./components/TwoOptions/TwoOptions.js";export{Numeral}from"./utils/Numeral.js";import"react";import"fast-deep-equal/es6";import"merge-anything";import"liquidjs";import"./utils/Theme.js";import"@fluentui/react";import"@fluentui/react-migration-v8-v9";import"react/jsx-runtime";import"./components/DateTime/styles.js";import"./components/DateTime/components/Calendar.js";import"@fluentui/react/lib/Calendar";import"@talxis/react-components";import"dayjs";import"dayjs/plugin/utc";import"dayjs/plugin/customParseFormat";import"./components/DateTime/translations.js";import"numeral";import"./constants.js";import"./components/Decimal/components/ArrowButtons.js";import"./components/Decimal/components/styles.js";import"./components/Duration/translations.js";import"./components/Grid/core/model/Grid.js";import"tslib";import"./components/Grid/constants.js";import"./components/Grid/filtering/model/Filtering.js";import"./components/Grid/core/model/GridDependency.js";import"./components/Grid/filtering/model/Condition.js";import"./components/Grid/core/enums/ConditionOperator.js";import"./components/Grid/core/enums/DataType.js";import"./components/Grid/validation/model/ColumnValidation.js";import"validator/es/lib/isEmail";import"validator/es/lib/isURL";import"./components/Grid/filtering/utils/FilteringUtilts.js";import"./components/Grid/filtering/constants.js";import"./components/Grid/paging/model/Paging.js";import"./components/Grid/selection/model/Selection.js";import"./components/Grid/sorting/Sorting.js";import"./components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.js";import"lodash";import"./components/Grid/core/model/Metadata.js";import"@ag-grid-community/react";import"./components/Grid/selection/controllers/useSelectionController.js";import"./components/Grid/core/hooks/useGridInstance.js";import"./components/Grid/GridContext.js";import"./components/Grid/core/components/AgGrid/styles.js";import"./components/Grid/core/components/AgGrid/controllers/useAgGridController.js";import"./components/Grid/core/controllers/useGridController.js";import"./components/Grid/core/components/Cell/EditableCell/EditableCell.js";import"./components/Grid/core/services/RecordUpdateService/controllers/useRecordUpdateServiceController.js";import"./components/Grid/core/components/Component/Component.js";import"./components/Grid/core/components/Component/controller/useComponentController.js";import"./components/Grid/core/components/Component/model/Component.js";import"./components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.js";import"./components/Grid/core/components/Cell/ReadOnlyCell/styles.js";import"./components/Grid/core/components/Cell/Commands/Commands.js";import"./components/Grid/core/components/Cell/Commands/useCommands.js";import"./components/Grid/core/components/Cell/Commands/Icon.js";import"external-svg-loader";import"./components/Grid/core/components/Cell/Commands/styles.js";import"@talxis/client-libraries";import"./components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.js";import"./components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/styles.js";import"color";import"./components/Grid/validation/controllers/useRecordValidationController.js";import"./components/Grid/core/hooks/useRerender.js";import"./components/Grid/core/components/ColumnHeader/ColumnHeader.js";import"./components/Grid/filtering/components/FilterCallout/FilterCallout.js";import"./components/Grid/filtering/components/FilterCallout/styles.js";import"./components/Grid/filtering/controller/useColumnFilterConditionController.js";import"./components/Grid/core/hooks/useRefreshCallback.js";import"./components/Grid/filtering/components/FilterCallout/components/ConditionOperator/ConditionOperator.js";import"./components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.js";import"./components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.js";import"./components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js";import"./components/Grid/sorting/components/SortingContextualMenu/styles.js";import"./components/Grid/sorting/controllers/useColumnSortingController.js";import"./components/Grid/core/components/ColumnHeader/styles.js";import"./components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.js";import"./components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/styles.js";import"./components/Grid/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"./components/Grid/paging/controllers/usePagingController.js";import"./components/Grid/paging/components/Paging/Paging.js";import"./components/Grid/paging/components/Paging/styles.js";import"./components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/EmptyRecords.js";import"./components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/styles.js";import"./components/Grid/core/components/Save/hooks/useSave.js";import"./components/Grid/core/components/Save/styles.js";import"./components/Grid/core/components/Dialog/index.js";import"./components/Grid/core/components/Dialog/Constants.js";import"./components/Grid/core/components/Dialog/Styles.js";import"./components/Grid/translations.js";import"./components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/styles.js";import"./components/Grid/core/components/Save/components/ChangeEditor/styles.js";import"./components/Grid/core/components/AgGrid/components/LoadingOverlay/LoadingOverlay.js";import"./components/Grid/core/components/AgGrid/components/LoadingOverlay/styles.js";import"./components/Lookup/components/TargetSelector.js";import"@fluentui/react/lib/Text";import"./components/Lookup/styles.js";import"./components/Lookup/hooks/useLoadedEntities.js";import"./components/Lookup/components/RecordCreator.js";import"./components/Lookup/translations.js";import"./components/Lookup/hooks/useFetchXml.js";
@@ -15,7 +15,7 @@ export interface IControl<TParameters, TOutputs, TTranslations, TComponentProps>
15
15
  /**
16
16
  * Allows you to override the props of the internal component that the control uses for UI rendering. Might not work on every control. ONLY USE WHEN ABSOLUTELY NECESSARY AND CONSULT YOUR INTENTIONS WITH BRY!
17
17
  */
18
- onOverrideComponentProps?: (props: TComponentProps) => Partial<TComponentProps>;
18
+ onOverrideComponentProps?: (props: TComponentProps) => TComponentProps;
19
19
  }
20
20
  export type ITranslations<T> = {
21
21
  [Property in keyof T]: T[Property] extends string[] ? string[] : string;
@@ -1,4 +1,4 @@
1
1
  /// <reference types="powerapps-component-framework" />
2
2
  import { ITheme } from '../interfaces/theme';
3
3
  export declare const getControlTheme: (fluentDesignLanguage?: ComponentFramework.FluentDesignState) => ITheme;
4
- export declare const normalizeLayerComponentColors: (theme: ITheme) => ITheme;
4
+ export declare const normalizeComponentStyling: (theme: ITheme) => ITheme;
@@ -1 +1 @@
1
- import{createTheme as e,getTheme as t}from"@fluentui/react";import{createV8Theme as o}from"@fluentui/react-migration-v8-v9";const n=e({palette:{white:"#ffffff"}}),r=e=>{var n,r,i,c,l,u;const a=t();if(!e)return Object.assign(Object.assign({},a),{effects:Object.assign(Object.assign({},a.effects),{underlined:!1})});const m=o(e.brand,e.tokenTheme);return m.semanticColors.inputBackground=null!==(n=e.tokenTheme.inputBackground)&&void 0!==n?n:e.tokenTheme.colorNeutralBackground1Hover,m.semanticColors.inputBorder=null!==(r=e.tokenTheme.inputBorder)&&void 0!==r?r:"transparent",m.semanticColors.inputBorderHovered=null!==(i=e.tokenTheme.inputBorderHovered)&&void 0!==i?i:m.semanticColors.inputBorder,m.semanticColors.inputText=null!==(c=e.tokenTheme.inputText)&&void 0!==c?c:m.semanticColors.inputText,m.semanticColors.inputPlaceholderText=null!==(l=e.tokenTheme.inputPlaceholderText)&&void 0!==l?l:m.semanticColors.inputText,m.semanticColors.inputTextHovered=m.semanticColors.inputText,m.effects.underlined=null!==(u=e.tokenTheme.underlined)&&void 0!==u&&u,m.components={Checkbox:{styles:{root:{":hover .ms-Checkbox-checkbox":{borderColor:"inherit"}}}}},s(m)},s=e=>{const t=Object.assign({},e.semanticColors),o=n;for(const t of Object.keys(o.semanticColors))(t.startsWith("menu")||t.startsWith("list"))&&(e.semanticColors[t]=o.semanticColors[t]);return e.semanticColors.menuIcon=t.menuIcon,e};export{r as getControlTheme,s as normalizeLayerComponentColors};
1
+ import{createTheme as e,getTheme as o}from"@fluentui/react";import{createV8Theme as t}from"@fluentui/react-migration-v8-v9";const n=e({palette:{white:"#ffffff"}}),r=e=>{var n,r,i,c,l,a,u;const d=o();if(!e)return Object.assign(Object.assign({},d),{effects:Object.assign(Object.assign({},d.effects),{underlined:!1}),semanticColors:Object.assign(Object.assign({},d.semanticColors),{inputBorder:"transparent"})});const m=t(e.brand,e.tokenTheme);return m.semanticColors.inputBackground=null!==(n=e.tokenTheme.inputBackground)&&void 0!==n?n:e.tokenTheme.colorNeutralBackground1Hover,m.semanticColors.inputBorder=null!==(r=e.tokenTheme.inputBorder)&&void 0!==r?r:"transparent",m.semanticColors.inputBorderHovered=null!==(i=e.tokenTheme.inputBorderHovered)&&void 0!==i?i:m.semanticColors.inputBorder,m.semanticColors.inputText=null!==(c=e.tokenTheme.inputText)&&void 0!==c?c:m.semanticColors.inputText,m.semanticColors.inputPlaceholderText=null!==(l=e.tokenTheme.inputPlaceholderText)&&void 0!==l?l:m.semanticColors.inputText,m.semanticColors.inputTextHovered=null!==(a=e.tokenTheme.inputTextHovered)&&void 0!==a?a:m.semanticColors.inputText,m.effects.underlined=null===(u=e.tokenTheme.underlined)||void 0===u||u,s(m)},s=e=>{e.components={Checkbox:{styles:e=>({root:{":hover .ms-Checkbox-checkbox":{borderColor:e.checked?void 0:"inherit"}}})},Toggle:{styles:o=>({pill:{backgroundColor:o.checked?void 0:e.semanticColors.inputBackground,":hover":{borderColor:o.checked?void 0:o.theme.semanticColors.smallInputBorder}}})}};const o=Object.assign({},e.semanticColors),t=n;for(const o of Object.keys(t.semanticColors))(o.startsWith("menu")||o.startsWith("list"))&&(e.semanticColors[o]=t.semanticColors[o]);return e.semanticColors.menuIcon=o.menuIcon,e};export{r as getControlTheme,s as normalizeComponentStyling};
@@ -1 +1 @@
1
- export{Numeral}from"./Numeral.js";export{getControlTheme,normalizeLayerComponentColors}from"./Theme.js";import"numeral";import"@fluentui/react";import"@fluentui/react-migration-v8-v9";
1
+ export{Numeral}from"./Numeral.js";export{getControlTheme,normalizeComponentStyling}from"./Theme.js";import"numeral";import"@fluentui/react";import"@fluentui/react-migration-v8-v9";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@talxis/base-controls",
3
- "version": "1.2407.1",
3
+ "version": "1.2408.1",
4
4
  "description": "Set of React components that natively work with Power Apps Component Framework API's",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -48,7 +48,7 @@
48
48
  "build-documentation": "build-storybook",
49
49
  "lint": "eslint \"./src/**\"",
50
50
  "lint:fix": "eslint \"./src/**\" --fix",
51
- "yalc": "rollup -c && yalc publish"
51
+ "yalc": "rollup -c && yalc publish --sig"
52
52
  },
53
53
  "eslintConfig": {
54
54
  "extends": [
@@ -76,7 +76,7 @@
76
76
  "@fluentui/react": "^8.119.1",
77
77
  "@fluentui/react-migration-v8-v9": "^9.6.20",
78
78
  "@talxis/client-libraries": "^1.2407.2",
79
- "@talxis/react-components": "1.2407.1",
79
+ "@talxis/react-components": "^1.2408.1",
80
80
  "color": "^4.2.3",
81
81
  "dayjs": "^1.11.10",
82
82
  "external-svg-loader": "^1.7.1",
@@ -1 +0,0 @@
1
- import{jsxs as e,jsx as o,Fragment as r}from"react/jsx-runtime";import{useEffect as t,useState as n,useRef as s,useMemo as i}from"react";import{useControl as a}from"./hooks/useControl.js";import"./utils/Theme.js";import{Grid as c}from"./components/Grid/core/model/Grid.js";import{AgGridReact as d}from"@ag-grid-community/react";import{useTheme as l,Text as m,Icon as g,DialogFooter as p,PrimaryButton as u,Spinner as v,SpinnerSize as b,MessageBar as f,MessageBarType as j,CommandBarButton as O}from"@fluentui/react";import{useSelectionController as h}from"./components/Grid/selection/controllers/useSelectionController.js";import{useGridInstance as C}from"./components/Grid/core/hooks/useGridInstance.js";import{getGridStyles as G}from"./components/Grid/core/components/AgGrid/styles.js";import{useAgGridController as R}from"./components/Grid/core/components/AgGrid/controllers/useAgGridController.js";import{Paging as y}from"./components/Grid/paging/components/Paging/Paging.js";import{EmptyRecords as w}from"./components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/EmptyRecords.js";import{useSave as S}from"./components/Grid/core/components/Save/hooks/useSave.js";import{getSaveStyles as N}from"./components/Grid/core/components/Save/styles.js";import{useRecordUpdateServiceController as E}from"./components/Grid/core/services/RecordUpdateService/controllers/useRecordUpdateServiceController.js";import I from"./components/Grid/core/components/Dialog/index.js";import{__awaiter as x}from"tslib";import{gridTranslations as P}from"./components/Grid/translations.js";import{GridContext as D}from"./components/Grid/GridContext.js";import{getRecordGridStyles as V}from"./components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/styles.js";import{getChangeEditorStyles as M}from"./components/Grid/core/components/Save/components/ChangeEditor/styles.js";import{LoadingOverlay as k}from"./components/Grid/core/components/AgGrid/components/LoadingOverlay/LoadingOverlay.js";import{usePagingController as F}from"./components/Grid/paging/controllers/usePagingController.js";const T=r=>{const t=C(),n=Object.assign({},r.record),s=V(l()),i={context:Object.assign(Object.assign({},t.pcfContext),{mode:Object.assign(Object.assign({},t.pcfContext.mode),{setControlState:e=>!1})}),state:{},parameters:{EnableFiltering:{raw:!1},EnablePagination:{raw:!1},EnableSorting:{raw:!1},EnableNavigation:{raw:!1},SelectableRows:{type:"static",raw:"none"},Grid:Object.assign(Object.assign({},t.dataset),{sorting:[],columns:[...n.columns.values()],filtering:Object.assign(Object.assign({},t.dataset.filtering),{getFilter:()=>({conditions:[],filterOperator:0})}),getSelectedRecordIds:()=>[],paging:Object.assign(Object.assign({},t.dataset.paging),{pageSize:1})})}},a=(()=>{const e=[];for(const o of n.columns.values())n.isValid(o.name)||e.push(o);return e})(),c=a.length>0;return e("div",Object.assign({className:s.root},{children:[e("div",Object.assign({className:s.readOnlyGrid},{children:[o("div",Object.assign({className:s.gridTitleWrapper},{children:o(m,Object.assign({title:n.getOriginalFormattedPrimaryNameValue(),variant:"large"},{children:n.getOriginalFormattedPrimaryNameValue()}))})),o(L,Object.assign({},i,{parameters:Object.assign(Object.assign({},i.parameters),{ChangeEditorMode:{raw:"read",error:c},Grid:Object.assign(Object.assign({},i.parameters.Grid),{error:c,errorMessage:c?t.labels["saving-validation-error"]({columnDisplayNames:a.map((e=>e.displayName)).join(", ")}):void 0,records:{[n.getRecordId()]:(e=>({getFormattedValue:o=>e.getOriginalFormattedValue(o),getRecordId:()=>e.getRecordId(),getNamedReference:()=>e.getNamedReference(),getValue:o=>e.getOriginalValue(o),save:()=>x(void 0,void 0,void 0,(function*(){yield e.save(),t.pcfContext.factory.requestRender()})),setValue:(o,r)=>{e.clear(),t.pcfContext.factory.requestRender()}}))(n)}})})}))]})),o(g,{iconName:"DoubleChevronDown8"}),o("div",Object.assign({className:s.editableGrid},{children:o(L,Object.assign({},i,{parameters:Object.assign(Object.assign({},i.parameters),{ChangeEditorMode:{raw:"edit"},EnableEditing:{raw:!0},Grid:Object.assign(Object.assign({},i.parameters.Grid),{records:{[n.getRecordId()]:(e=>({getFormattedValue:o=>e.getFormattedValue(o),getRecordId:()=>e.getRecordId(),getNamedReference:()=>e.getNamedReference(),getValue:o=>e.getValue(o),save:()=>{throw new Error("Should not be called!")},setValue:(o,r)=>{e.setValue(o,r),t.pcfContext.factory.requestRender()}}))(n)}})})}))}))]}))},A=r=>{const n=C().labels,s=E(),{isSaving:i,saveBtnProps:a,save:c}=S(),d=s.updatedRecords,m=M(l());return t((()=>{var e;0===d.length&&(null===(e=r.onDismiss)||void 0===e||e.call(r))}),[d]),e(I,Object.assign({},r,{width:1e3,minWidth:"80%",modalProps:{isBlocking:!0,className:m.root,layerProps:{eventBubblingEnabled:!0}},dialogContentProps:{showCloseButton:!0,title:n["saving-changepreview-title"]({numOfChanges:d.length})},hidden:!1},{children:[o("div",Object.assign({className:m.recordGrids},{children:d.map((e=>o(T,{record:e},e.getRecordId())))})),o(p,{children:o(u,Object.assign({className:m.saveBtn,text:a.text,disabled:a.disabled,onClick:()=>c()},{children:i&&o(v,{size:b.small})}))})]}))},B=()=>{const t=C(),s=t.labels,i=N(),{isDirty:a,updatedRecords:c,hasInvalidRecords:d,clearAll:l}=E(),{isSaving:m,saveBtnProps:g,save:p}=S(),[u,h]=n(!1);return e(r,{children:[o("div",Object.assign({onClick:()=>{a&&h(!0)},className:i.root,"data-dirty":a},{children:o(f,Object.assign({messageBarType:d?j.error:j.info,actions:e("div",Object.assign({className:i.actions},{children:[o(O,{text:m?g.text:void 0,disabled:g.disabled,onRenderIcon:m?()=>o(v,{size:b.small}):void 0,iconProps:{iconName:g.iconName},onClick:e=>{e.stopPropagation(),p()}}),o(O,{disabled:g.disabled&&!d&&!t.props.parameters.ChangeEditorMode,iconProps:{iconName:"Delete"},onClick:e=>{e.stopPropagation(),l()}})]})),isMultiline:!1},{children:a&&o("span",{className:i.notificationText,dangerouslySetInnerHTML:{__html:s["saving-changenotification"]({numOfChanges:c.length})}})}))})),u&&o(A,{onDismiss:e=>{"Escape"!==(null==e?void 0:e.code)&&h(!1)}})]})},_=()=>{var t,n;const i=C(),a=h(),c=s(),m=s(null),g=l();let{agColumns:p,records:u,maxNumberOfVisibleRecords:v,stateRef:b,getTotalColumnsWidth:O,onGridReady:S}=R(c);const N=F(),E=G(g,v,i.useContainerAsHeight),I=()=>{const e=(()=>{var e,o;const r=null===(e=m.current)||void 0===e?void 0:e.querySelector(".ag-root-wrapper");return null!==(o=null==r?void 0:r.clientWidth)&&void 0!==o?o:0})();e>O()&&c.current.sizeColumnsToFit()};return o("div",Object.assign({ref:m,className:`${E.root} ag-theme-balham`},{children:p.length>0&&e(r,{children:[(i.isEditable&&"edit"!==(null===(t=i.parameters.ChangeEditorMode)||void 0===t?void 0:t.raw)||"read"===(null===(n=i.parameters.ChangeEditorMode)||void 0===n?void 0:n.raw))&&o(B,{}),i.error&&o(f,Object.assign({messageBarType:j.error},{children:o("span",{dangerouslySetInnerHTML:{__html:i.errorMessage}})})),o(d,{animateRows:!0,rowSelection:i.selection.type,noRowsOverlayComponent:w,loadingOverlayComponent:k,suppressDragLeaveHidesColumns:!0,onColumnMoved:e=>{e.finished&&(e=>{var o;const r=null===(o=e.api.getState().columnOrder)||void 0===o?void 0:o.orderedColIds.filter((e=>!0));r&&i.pcfContext.factory.fireEvent("__updateColumnOrder",r)})(e)},reactiveCustomComponents:!0,onRowSelected:e=>{e.source.includes("api")||"gridInitializing"===e.source||a.toggle(e.data,e.node.isSelected())},onCellDoubleClicked:e=>{i.isNavigationEnabled&&!i.isEditable&&i.openDatasetItem(e.data.getNamedReference())},onCellMouseOver:e=>{var o;"__checkbox"===e.colDef.colId&&(null===(o=c.current)||void 0===o||o.setGridOption("suppressRowClickSelection",!0))},onCellMouseOut:e=>{var o;null===(o=c.current)||void 0===o||o.setGridOption("suppressRowClickSelection",!1)},getRowId:e=>e.data.getRecordId(),onGridReady:e=>{var o;c.current=e.api,i.loading&&(null===(o=c.current)||void 0===o||o.showLoadingOverlay()),I(),S()},initialState:b.current,onStateUpdated:e=>b.current=Object.assign(Object.assign({},b.current),e.state),rowHeight:42,columnDefs:p,rowData:u}),N.isEnabled&&o(y,{})]})}))},L=e=>{const{labels:r}=a("Grid",e,P),t=i((()=>({gridInstance:new c(e,r)})),[]);return t.gridInstance.updateDependencies(e),o(D.Provider,Object.assign({value:t},{children:o(_,{})}))};export{_ as A,A as C,L as G,T as R,B as S};