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