@talxis/base-controls 1.2506.4 → 1.2506.6

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 (50) hide show
  1. package/dist/components/Grid/aggregation/Aggregation.d.ts +18 -0
  2. package/dist/components/Grid/aggregation/Aggregation.js +129 -0
  3. package/dist/components/Grid/aggregation/Aggregation.js.map +1 -0
  4. package/dist/components/Grid/core/components/AgGrid/AgGrid.js +6 -3
  5. package/dist/components/Grid/core/components/AgGrid/AgGrid.js.map +1 -1
  6. package/dist/components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/EmptyRecords.js.map +1 -1
  7. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js +18 -8
  8. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js.map +1 -1
  9. package/dist/components/Grid/core/components/AgGrid/styles.d.ts +4 -0
  10. package/dist/components/Grid/core/components/AgGrid/styles.js +4 -0
  11. package/dist/components/Grid/core/components/AgGrid/styles.js.map +1 -1
  12. package/dist/components/Grid/core/components/Cell/Cell.js +14 -1
  13. package/dist/components/Grid/core/components/Cell/Cell.js.map +1 -1
  14. package/dist/components/Grid/core/components/Cell/CellContent/CellContent.js +5 -0
  15. package/dist/components/Grid/core/components/Cell/CellContent/CellContent.js.map +1 -1
  16. package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.js +1 -1
  17. package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.js.map +1 -1
  18. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.js +10 -2
  19. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.js.map +1 -1
  20. package/dist/components/Grid/core/interfaces/IGridColumn.d.ts +1 -0
  21. package/dist/components/Grid/core/model/Grid.d.ts +3 -0
  22. package/dist/components/Grid/core/model/Grid.js +36 -13
  23. package/dist/components/Grid/core/model/Grid.js.map +1 -1
  24. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.d.ts +3 -0
  25. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.js +1 -1
  26. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.js.map +1 -1
  27. package/dist/components/Grid/filtering/model/Condition.js +1 -1
  28. package/dist/components/Grid/filtering/model/Condition.js.map +1 -1
  29. package/dist/components/Grid/interfaces.d.ts +1 -0
  30. package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js +58 -34
  31. package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js.map +1 -1
  32. package/dist/components/Grid/translations.d.ts +36 -0
  33. package/dist/components/Grid/translations.js +13 -1
  34. package/dist/components/Grid/translations.js.map +1 -1
  35. package/dist/components/GridCellRenderer/GridCellRenderer.js +37 -5
  36. package/dist/components/GridCellRenderer/GridCellRenderer.js.map +1 -1
  37. package/dist/components/GridCellRenderer/interfaces.d.ts +5 -2
  38. package/dist/components/GridCellRenderer/styles.d.ts +15 -2
  39. package/dist/components/GridCellRenderer/styles.js +15 -2
  40. package/dist/components/GridCellRenderer/styles.js.map +1 -1
  41. package/dist/components/GridCellRenderer/translations.d.ts +24 -0
  42. package/dist/components/GridCellRenderer/translations.js +24 -0
  43. package/dist/components/GridCellRenderer/translations.js.map +1 -1
  44. package/dist/components/NestedControlRenderer/properties/OptionSetProperty.js +0 -4
  45. package/dist/components/NestedControlRenderer/properties/OptionSetProperty.js.map +1 -1
  46. package/dist/index.d.ts +66 -6
  47. package/dist/utils/dataset/adapters/DatasetAdapter.d.ts +0 -4
  48. package/dist/utils/dataset/adapters/DatasetAdapter.js.map +1 -1
  49. package/dist/utils/dataset/adapters/VirtualDatasetAdapter.js.map +1 -1
  50. package/package.json +4 -4
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  /// <reference types="@types/powerapps-component-framework" />
2
2
  /// <reference types="react" />
3
3
  import { ITheme, ITextFieldProps, IDatePickerProps, ICommandBarProps, ITagPickerProps, IComboBoxProps } from '@talxis/react-components';
4
- import { DeepPartial, DataType, IDataset, Dataset, IDataProvider, PowerAppsDatasetProvider, IColumn, IRecord, ICommand } from '@talxis/client-libraries';
5
- import { ITheme as ITheme$1, ThemeProviderProps, ITextProps, ILinkProps, IIconProps, IImageProps, ISpinnerProps, IShimmerProps, IMessageBar, IButtonProps, IToggleProps } from '@fluentui/react';
4
+ import { DeepPartial, DataType, IDataset, Dataset, IDataProvider, PowerAppsDatasetProvider, AggregationFunction, IColumn, IRecord, ICommand } from '@talxis/client-libraries';
5
+ import { ITheme as ITheme$1, ThemeProviderProps, ITextProps, ILinkProps, ILabelProps, IIconProps, IImageProps, ISpinnerProps, IShimmerProps, IMessageBar, IButtonProps, IToggleProps } from '@fluentui/react';
6
6
  import React$1 from 'react';
7
7
  import { AgGridReactProps } from '@ag-grid-community/react';
8
8
 
@@ -128,10 +128,6 @@ declare class BaseControls {
128
128
  }
129
129
 
130
130
  interface IInputs {
131
- Columns: ComponentFramework.PropertyTypes.StringProperty;
132
- HomePageGridClientApiRibbonButtonId: ComponentFramework.PropertyTypes.StringProperty;
133
- InlineRibbonButtonIds: ComponentFramework.PropertyTypes.StringProperty;
134
- Height: ComponentFramework.PropertyTypes.StringProperty;
135
131
  [key: string]: any;
136
132
  }
137
133
  interface IOutputs$3 {
@@ -600,6 +596,38 @@ declare const gridTranslations: {
600
596
  1029: string;
601
597
  1033: string;
602
598
  };
599
+ "filtersortmenu-total-none": {
600
+ 1029: string;
601
+ 1033: string;
602
+ };
603
+ "filtersortmenu-total-avg": {
604
+ 1029: string;
605
+ 1033: string;
606
+ };
607
+ "filtersortmenu-total-max": {
608
+ 1029: string;
609
+ 1033: string;
610
+ };
611
+ "filtersortmenu-total-min": {
612
+ 1029: string;
613
+ 1033: string;
614
+ };
615
+ "filtersortmenu-total-sum": {
616
+ 1029: string;
617
+ 1033: string;
618
+ };
619
+ "filtersortmenu-total-count": {
620
+ 1029: string;
621
+ 1033: string;
622
+ };
623
+ "filtersortmenu-total-countcolumn": {
624
+ 1029: string;
625
+ 1033: string;
626
+ };
627
+ "filtersortmenu-total": {
628
+ 1029: string;
629
+ 1033: string;
630
+ };
603
631
  norecordsfound: {
604
632
  1029: string;
605
633
  1033: string;
@@ -692,6 +720,10 @@ declare const gridTranslations: {
692
720
  1029: string;
693
721
  1033: string;
694
722
  };
723
+ "error-2147750198": {
724
+ 1029: string;
725
+ 1033: string;
726
+ };
695
727
  };
696
728
 
697
729
  interface IGridComponentProps {
@@ -713,6 +745,7 @@ interface IGridParameters extends IParameters$1 {
713
745
  EnableChangeEditor?: Omit<ITwoOptionsProperty, 'attributes'>;
714
746
  EnableMultiEdit?: Omit<ITwoOptionsProperty, 'attributes'>;
715
747
  EnableZebra?: Omit<ITwoOptionsProperty, 'attributes'>;
748
+ EnableAggregation?: Omit<ITwoOptionsProperty, 'attributes'>;
716
749
  RowHeight?: Omit<IWholeNumberProperty, 'attributes'>;
717
750
  EnablePageSizeSwitcher?: Omit<ITwoOptionsProperty, 'attributes'>;
718
751
  Height?: IStringProperty;
@@ -935,6 +968,30 @@ declare const getDefaultGridRendererTranslations: () => {
935
968
  1029: string;
936
969
  1033: string;
937
970
  };
971
+ max: {
972
+ 1029: string;
973
+ 1033: string;
974
+ };
975
+ min: {
976
+ 1029: string;
977
+ 1033: string;
978
+ };
979
+ avg: {
980
+ 1029: string;
981
+ 1033: string;
982
+ };
983
+ sum: {
984
+ 1029: string;
985
+ 1033: string;
986
+ };
987
+ count: {
988
+ 1029: string;
989
+ 1033: string;
990
+ };
991
+ countcolumn: {
992
+ 1029: string;
993
+ 1033: string;
994
+ };
938
995
  };
939
996
 
940
997
  interface IGridCellRenderer extends IControl<IGridCellRendererParameters, {}, ReturnType<typeof getDefaultGridRendererTranslations>, IGridCellRendererComponentProps> {
@@ -946,6 +1003,7 @@ interface IGridCellRendererParameters extends IParameters$1 {
946
1003
  EnableNavigation: Omit<ITwoOptionsProperty, 'attributes'>;
947
1004
  PrefixIcon?: IStringProperty;
948
1005
  SuffixIcon?: IStringProperty;
1006
+ AggregationFunction: Omit<ComponentFramework.PropertyTypes.EnumProperty<AggregationFunction | null>, 'type'>;
949
1007
  Column: {
950
1008
  raw: IColumn;
951
1009
  };
@@ -977,7 +1035,9 @@ interface IGridCellRendererComponentProps {
977
1035
  onGetLinkProps: (props: ILinkProps) => ILinkProps;
978
1036
  onGetRecordCommandsProps: (props: IRecordCommandsProps) => IRecordCommandsProps;
979
1037
  onRenderContent: (defaultRenderer: () => JSX.Element) => JSX.Element;
1038
+ onRenderAggregationLabel: (props: ILabelProps, defaultRenderer: (props: ILabelProps) => React.ReactElement) => React.ReactElement;
980
1039
  rootContainerProps: ThemeProviderProps;
1040
+ prefixSuffixWrapperProps: React.HTMLAttributes<HTMLDivElement>;
981
1041
  contentWrapperProps: React.HTMLAttributes<HTMLDivElement>;
982
1042
  textProps: ITextProps;
983
1043
  fileProps: {
@@ -1,10 +1,6 @@
1
1
  /// <reference types="@types/powerapps-component-framework" />
2
2
  import { Dataset, IDataProvider, IDataset, PowerAppsDatasetProvider } from "@talxis/client-libraries";
3
3
  interface IInputs {
4
- Columns: ComponentFramework.PropertyTypes.StringProperty;
5
- HomePageGridClientApiRibbonButtonId: ComponentFramework.PropertyTypes.StringProperty;
6
- InlineRibbonButtonIds: ComponentFramework.PropertyTypes.StringProperty;
7
- Height: ComponentFramework.PropertyTypes.StringProperty;
8
4
  [key: string]: any;
9
5
  }
10
6
  interface IOutputs {
@@ -1 +1 @@
1
- {"version":3,"file":"DatasetAdapter.js","sources":["../../../../src/utils/dataset/adapters/DatasetAdapter.ts"],"sourcesContent":["import { Client, Dataset, FetchXmlBuilder, IColumn, IDataProvider, IDataset, PowerAppsDatasetProvider } from \"@talxis/client-libraries\";\nimport { mergeStyles } from \"@fluentui/react\";\n\ninterface IInputs {\n Columns: ComponentFramework.PropertyTypes.StringProperty;\n HomePageGridClientApiRibbonButtonId: ComponentFramework.PropertyTypes.StringProperty;\n InlineRibbonButtonIds: ComponentFramework.PropertyTypes.StringProperty;\n Height: ComponentFramework.PropertyTypes.StringProperty;\n [key: string]: any\n}\n\ninterface IOutputs {\n DatasetControl?: any;\n}\n\ninterface IParameterGetters {\n onGetDataset: () => ComponentFramework.PropertyTypes.DataSet | IDataset;\n onGetColumns?: () => string | null\n onGetHeight?: () => string | null\n onGetHomePageGridClientApiRibbonButtonId?: () => string | null;\n onGetInlineRibbonButtonIds?: () => string | null;\n /**\n * Callback that gets triggered and awaited before the dataset is initialized. Useful for setting initialization code that needs to run before the dataset is ready.\n */\n onInitialize?: () => void | Promise<void>\n}\n\nexport class DatasetAdapter {\n private _container!: HTMLDivElement;\n private _dataset!: Dataset<IDataProvider>;\n private _context!: ComponentFramework.Context<IInputs, IOutputs>;\n private _lastUsedColumns?: string | null;\n private _pendingForceRefresh: boolean = false;\n private _powerAppsDatasetProvider?: PowerAppsDatasetProvider;\n private _client = new Client();\n private _notifyOutputChanged!: () => void;\n private _resolveGetOutputs!: (value: boolean | PromiseLike<boolean>) => void;\n private _getOutputsPromise: Promise<boolean> = new Promise(resolve => {\n this._resolveGetOutputs = resolve;\n });\n private _initialRender: boolean = true;\n private _homePageGridClientApiRibbonButtonId?: string | null;\n private _parameters!: IParameterGetters;\n private _datasetPropertyName!: string;\n\n public init(context: ComponentFramework.Context<IInputs, IOutputs>, notifyOutputChanged: () => void, container: HTMLDivElement, parameters: IParameterGetters) {\n this._container = container;\n this._context = context;\n this._parameters = parameters;\n this._datasetPropertyName = this._getDatasetPropertyName();\n this._lastUsedColumns = this._parameters.onGetColumns?.();\n this._homePageGridClientApiRibbonButtonId = this._parameters.onGetHomePageGridClientApiRibbonButtonId?.();\n this._notifyOutputChanged = notifyOutputChanged;\n this._powerAppsDatasetProvider = this._getPowerAppsDatasetProvider();\n this._dataset = this.getDataset() as any;\n if (this._powerAppsDatasetProvider) {\n this._dataset.setColumns(this._parameters.onGetDataset().columns);\n }\n this._dataset.setColumns(this._getColumns());\n\n if (this.getHeight() === '100%') {\n this._container.classList.add(this._getFullHeightStyles())\n }\n this._notifyOutputChanged();\n this._onDatasetInit();\n }\n\n /**\n * Returns true if the control should re-render or false if it should not.\n */\n public updateView(context: ComponentFramework.Context<IInputs, IOutputs>) {\n this._context = context;\n //refresh in PowerApps is broken, sometimes the paging will return broken (-100) or not updated\n //calling loadExactPage after refresh occures fixes that (results in more API calls, but whan can you do)\n if (this._getRefreshStatus() === 1 && !this._initialRender) {\n return this._forceRefresh();\n }\n this._refreshOnChange([\n {\n previousValue: this._dataset.getDataSource(),\n currentValue: this._getCurrentFetchXml(),\n beforeRefreshCallback: () => this._dataset.setDataSource(this._getCurrentFetchXml())\n },\n {\n previousValue: this._lastUsedColumns!,\n currentValue: this._parameters.onGetColumns?.(),\n beforeRefreshCallback: () => this._dataset.setColumns(this._getColumns())\n }, {\n previousValue: false,\n currentValue: this._pendingForceRefresh,\n beforeRefreshCallback: () => this._pendingForceRefresh = false\n }\n ])\n this._lastUsedColumns = this._parameters.onGetColumns?.();\n this._initialRender = false;\n }\n\n public getDataset() {\n if (this._dataset) {\n return this._dataset;\n }\n if (this._powerAppsDatasetProvider) {\n return new Dataset(this._powerAppsDatasetProvider, {\n isVirtual: false\n });\n }\n return this._parameters.onGetDataset();\n }\n\n public getOutputs(): IOutputs {\n this._resolveGetOutputs(true);\n return {\n DatasetControl: this._dataset\n }\n }\n\n public destroy(): void {\n //@ts-ignore - typings\n delete window.Xrm[this._getGlobalDatasetInstanceName()];\n if (this._powerAppsDatasetProvider) {\n this._dataset.destroy();\n }\n }\n\n public getHeight(): string | null {\n if (this._isHomePageGrid()) {\n return '100%';\n }\n return this._parameters.onGetHeight?.() ?? null;\n }\n\n private async _onDatasetInit() {\n const initializationCallback = async () => {\n await this._getOutputsPromise;\n await this._parameters.onInitialize?.();\n if (this._isHomePageGrid() && this._homePageGridClientApiRibbonButtonId) {\n //@ts-ignore - typings\n window.Xrm[this._getGlobalDatasetInstanceName()] = this._dataset;\n //@ts-ignore\n const commands = await this._parameters.onGetDataset().retrieveRecordCommand([], [this._homePageGridClientApiRibbonButtonId]);\n if (commands.length === 0) {\n this._context.navigation.openErrorDialog({\n message: `Could not find ribbon button ${this._homePageGridClientApiRibbonButtonId}. Client API will not be enabled.`\n })\n }\n else {\n await commands[0].execute();\n }\n }\n }\n if (this._client.isTalxisPortal()) {\n this._dataset.setInterceptor('onInitialize', () => initializationCallback());\n }\n else {\n await initializationCallback();\n this._powerAppsDatasetProvider?.setPendingChangeFromOutside();\n this._dataset.paging.loadExactPage(this._dataset.paging.pageNumber);\n }\n }\n\n private _getColumns() {\n try {\n const parameterColumns: IColumn[] = JSON.parse(this._parameters.onGetColumns?.() ?? '[]');\n return this._getMergedColumns(parameterColumns);\n }\n catch (err) {\n console.error(err)\n return this._dataset.columns;\n }\n }\n\n private _getMergedColumns(parameterColumns: IColumn[]): IColumn[] {\n const columnsMap = new Map(this._dataset.getDataProvider().getColumns().map(col => [col.name, col]));\n parameterColumns.map(parameterCol => {\n const col = columnsMap.get(parameterCol.name);\n if (col) {\n columnsMap.set(col.name, {\n ...col,\n ...parameterCol\n })\n }\n else {\n columnsMap.set(parameterCol.name, parameterCol);\n }\n })\n return [...columnsMap.values()]\n }\n\n private _getFullHeightStyles() {\n return mergeStyles({\n display: 'flex',\n flexDirection: 'column',\n flexGrow: 1\n })\n }\n\n private _getCurrentFetchXml(): string {\n if (this._client.isTalxisPortal()) {\n return this._dataset.getDataSource();\n }\n //@ts-ignore - typings\n return this._getNormalizedFetchXml(this._context.factory._customControlProperties.dynamicData.parameters[this._datasetPropertyName].cachedQueryState.fetchXml)\n }\n\n private _isHomePageGrid(): boolean {\n //@ts-ignore - typings\n return this._context.utils._customControlProperties.contextString === 'grid';\n }\n private _refreshOnChange(objectsToCompare: { currentValue: any, previousValue: any, beforeRefreshCallback?: () => void }[]) {\n let shouldRefresh = false;\n objectsToCompare.map(obj => {\n if (obj.currentValue != obj.previousValue) {\n shouldRefresh = true;\n obj.beforeRefreshCallback?.();\n }\n })\n if (shouldRefresh) {\n this._powerAppsDatasetProvider?.setPendingChangeFromOutside();\n this._dataset.paging.loadExactPage(this._dataset.paging.pageNumber);\n }\n queueMicrotask(() => {\n this._powerAppsDatasetProvider?.resolveDataRefresh();\n })\n }\n\n private _getGlobalDatasetInstanceName() {\n //@ts-ignore\n return `talxis_grid_${this._context.utils._customControlProperties.id}`;\n }\n\n private _getNormalizedFetchXml(fetchXmlString: string): string {\n const fetchXml = FetchXmlBuilder.fetch.fromXml(fetchXmlString)\n fetchXml.savedqueryid = \"\";\n fetchXml.userqueryid = \"\";\n return fetchXml.toXml();\n }\n\n private _setViewColumns(ids: string[]) {\n //@ts-ignore - typings\n this._context.factory.fireEvent('setViewColumns', ids);\n }\n\n private _getRefreshStatus(): number {\n if (this._client.isTalxisPortal()) {\n //dummy refresh status\n return 0;\n }\n //@ts-ignore - typings\n return this._context.utils._customControlProperties.dynamicData.parameters[this._datasetPropertyName].refreshingStatus;\n }\n\n private _forceRefresh() {\n this._pendingForceRefresh = true;\n setTimeout(() => {\n this._parameters.onGetDataset().paging.loadExactPage(1);\n }, 100);\n return false;\n }\n\n private _getPowerAppsDatasetProvider() {\n //instead check if it's instance of our dataset?\n if (this._client.isTalxisPortal()) {\n return undefined;\n }\n return new PowerAppsDatasetProvider(this._getCurrentFetchXml(), () => <any>this._parameters.onGetDataset(), {\n onColumnsChanged: (ids) => this._setViewColumns(ids)\n });\n }\n\n private _getDatasetPropertyName(): string {\n for (const key of Object.keys(this._context.parameters)) {\n if (this._context.parameters[key].records) {\n return key;\n }\n }\n throw new Error(\"Dataset property not found in context parameters\");\n }\n\n}"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DatasetAdapter.js","sources":["../../../../src/utils/dataset/adapters/DatasetAdapter.ts"],"sourcesContent":["import { Client, Dataset, FetchXmlBuilder, IColumn, IDataProvider, IDataset, PowerAppsDatasetProvider } from \"@talxis/client-libraries\";\nimport { mergeStyles } from \"@fluentui/react\";\n\ninterface IInputs {\n [key: string]: any\n}\n\ninterface IOutputs {\n DatasetControl?: any;\n}\n\ninterface IParameterGetters {\n onGetDataset: () => ComponentFramework.PropertyTypes.DataSet | IDataset;\n onGetColumns?: () => string | null\n onGetHeight?: () => string | null\n onGetHomePageGridClientApiRibbonButtonId?: () => string | null;\n onGetInlineRibbonButtonIds?: () => string | null;\n /**\n * Callback that gets triggered and awaited before the dataset is initialized. Useful for setting initialization code that needs to run before the dataset is ready.\n */\n onInitialize?: () => void | Promise<void>\n}\n\nexport class DatasetAdapter {\n private _container!: HTMLDivElement;\n private _dataset!: Dataset<IDataProvider>;\n private _context!: ComponentFramework.Context<IInputs, IOutputs>;\n private _lastUsedColumns?: string | null;\n private _pendingForceRefresh: boolean = false;\n private _powerAppsDatasetProvider?: PowerAppsDatasetProvider;\n private _client = new Client();\n private _notifyOutputChanged!: () => void;\n private _resolveGetOutputs!: (value: boolean | PromiseLike<boolean>) => void;\n private _getOutputsPromise: Promise<boolean> = new Promise(resolve => {\n this._resolveGetOutputs = resolve;\n });\n private _initialRender: boolean = true;\n private _homePageGridClientApiRibbonButtonId?: string | null;\n private _parameters!: IParameterGetters;\n private _datasetPropertyName!: string;\n\n public init(context: ComponentFramework.Context<IInputs, IOutputs>, notifyOutputChanged: () => void, container: HTMLDivElement, parameters: IParameterGetters) {\n this._container = container;\n this._context = context;\n this._parameters = parameters;\n this._datasetPropertyName = this._getDatasetPropertyName();\n this._lastUsedColumns = this._parameters.onGetColumns?.();\n this._homePageGridClientApiRibbonButtonId = this._parameters.onGetHomePageGridClientApiRibbonButtonId?.();\n this._notifyOutputChanged = notifyOutputChanged;\n this._powerAppsDatasetProvider = this._getPowerAppsDatasetProvider();\n this._dataset = this.getDataset() as any;\n if (this._powerAppsDatasetProvider) {\n this._dataset.setColumns(this._parameters.onGetDataset().columns);\n }\n this._dataset.setColumns(this._getColumns());\n\n if (this.getHeight() === '100%') {\n this._container.classList.add(this._getFullHeightStyles())\n }\n this._notifyOutputChanged();\n this._onDatasetInit();\n }\n\n /**\n * Returns true if the control should re-render or false if it should not.\n */\n public updateView(context: ComponentFramework.Context<IInputs, IOutputs>) {\n this._context = context;\n //refresh in PowerApps is broken, sometimes the paging will return broken (-100) or not updated\n //calling loadExactPage after refresh occures fixes that (results in more API calls, but whan can you do)\n if (this._getRefreshStatus() === 1 && !this._initialRender) {\n return this._forceRefresh();\n }\n this._refreshOnChange([\n {\n previousValue: this._dataset.getDataSource(),\n currentValue: this._getCurrentFetchXml(),\n beforeRefreshCallback: () => this._dataset.setDataSource(this._getCurrentFetchXml())\n },\n {\n previousValue: this._lastUsedColumns!,\n currentValue: this._parameters.onGetColumns?.(),\n beforeRefreshCallback: () => this._dataset.setColumns(this._getColumns())\n }, {\n previousValue: false,\n currentValue: this._pendingForceRefresh,\n beforeRefreshCallback: () => this._pendingForceRefresh = false\n }\n ])\n this._lastUsedColumns = this._parameters.onGetColumns?.();\n this._initialRender = false;\n }\n\n public getDataset() {\n if (this._dataset) {\n return this._dataset;\n }\n if (this._powerAppsDatasetProvider) {\n return new Dataset(this._powerAppsDatasetProvider, {\n isVirtual: false\n });\n }\n return this._parameters.onGetDataset();\n }\n\n public getOutputs(): IOutputs {\n this._resolveGetOutputs(true);\n return {\n DatasetControl: this._dataset\n }\n }\n\n public destroy(): void {\n //@ts-ignore - typings\n delete window.Xrm[this._getGlobalDatasetInstanceName()];\n if (this._powerAppsDatasetProvider) {\n this._dataset.destroy();\n }\n }\n\n public getHeight(): string | null {\n if (this._isHomePageGrid()) {\n return '100%';\n }\n return this._parameters.onGetHeight?.() ?? null;\n }\n\n private async _onDatasetInit() {\n const initializationCallback = async () => {\n await this._getOutputsPromise;\n await this._parameters.onInitialize?.();\n if (this._isHomePageGrid() && this._homePageGridClientApiRibbonButtonId) {\n //@ts-ignore - typings\n window.Xrm[this._getGlobalDatasetInstanceName()] = this._dataset;\n //@ts-ignore\n const commands = await this._parameters.onGetDataset().retrieveRecordCommand([], [this._homePageGridClientApiRibbonButtonId]);\n if (commands.length === 0) {\n this._context.navigation.openErrorDialog({\n message: `Could not find ribbon button ${this._homePageGridClientApiRibbonButtonId}. Client API will not be enabled.`\n })\n }\n else {\n await commands[0].execute();\n }\n }\n }\n if (this._client.isTalxisPortal()) {\n this._dataset.setInterceptor('onInitialize', () => initializationCallback());\n }\n else {\n await initializationCallback();\n this._powerAppsDatasetProvider?.setPendingChangeFromOutside();\n this._dataset.paging.loadExactPage(this._dataset.paging.pageNumber);\n }\n }\n\n private _getColumns() {\n try {\n const parameterColumns: IColumn[] = JSON.parse(this._parameters.onGetColumns?.() ?? '[]');\n return this._getMergedColumns(parameterColumns);\n }\n catch (err) {\n console.error(err)\n return this._dataset.columns;\n }\n }\n\n private _getMergedColumns(parameterColumns: IColumn[]): IColumn[] {\n const columnsMap = new Map(this._dataset.getDataProvider().getColumns().map(col => [col.name, col]));\n parameterColumns.map(parameterCol => {\n const col = columnsMap.get(parameterCol.name);\n if (col) {\n columnsMap.set(col.name, {\n ...col,\n ...parameterCol\n })\n }\n else {\n columnsMap.set(parameterCol.name, parameterCol);\n }\n })\n return [...columnsMap.values()]\n }\n\n private _getFullHeightStyles() {\n return mergeStyles({\n display: 'flex',\n flexDirection: 'column',\n flexGrow: 1\n })\n }\n\n private _getCurrentFetchXml(): string {\n if (this._client.isTalxisPortal()) {\n return this._dataset.getDataSource();\n }\n //@ts-ignore - typings\n return this._getNormalizedFetchXml(this._context.factory._customControlProperties.dynamicData.parameters[this._datasetPropertyName].cachedQueryState.fetchXml)\n }\n\n private _isHomePageGrid(): boolean {\n //@ts-ignore - typings\n return this._context.utils._customControlProperties.contextString === 'grid';\n }\n private _refreshOnChange(objectsToCompare: { currentValue: any, previousValue: any, beforeRefreshCallback?: () => void }[]) {\n let shouldRefresh = false;\n objectsToCompare.map(obj => {\n if (obj.currentValue != obj.previousValue) {\n shouldRefresh = true;\n obj.beforeRefreshCallback?.();\n }\n })\n if (shouldRefresh) {\n this._powerAppsDatasetProvider?.setPendingChangeFromOutside();\n this._dataset.paging.loadExactPage(this._dataset.paging.pageNumber);\n }\n queueMicrotask(() => {\n this._powerAppsDatasetProvider?.resolveDataRefresh();\n })\n }\n\n private _getGlobalDatasetInstanceName() {\n //@ts-ignore\n return `talxis_grid_${this._context.utils._customControlProperties.id}`;\n }\n\n private _getNormalizedFetchXml(fetchXmlString: string): string {\n const fetchXml = FetchXmlBuilder.fetch.fromXml(fetchXmlString)\n fetchXml.savedqueryid = \"\";\n fetchXml.userqueryid = \"\";\n return fetchXml.toXml();\n }\n\n private _setViewColumns(ids: string[]) {\n //@ts-ignore - typings\n this._context.factory.fireEvent('setViewColumns', ids);\n }\n\n private _getRefreshStatus(): number {\n if (this._client.isTalxisPortal()) {\n //dummy refresh status\n return 0;\n }\n //@ts-ignore - typings\n return this._context.utils._customControlProperties.dynamicData.parameters[this._datasetPropertyName].refreshingStatus;\n }\n\n private _forceRefresh() {\n this._pendingForceRefresh = true;\n setTimeout(() => {\n this._parameters.onGetDataset().paging.loadExactPage(1);\n }, 100);\n return false;\n }\n\n private _getPowerAppsDatasetProvider() {\n //instead check if it's instance of our dataset?\n if (this._client.isTalxisPortal()) {\n return undefined;\n }\n return new PowerAppsDatasetProvider(this._getCurrentFetchXml(), () => <any>this._parameters.onGetDataset(), {\n onColumnsChanged: (ids) => this._setViewColumns(ids)\n });\n }\n\n private _getDatasetPropertyName(): string {\n for (const key of Object.keys(this._context.parameters)) {\n if (this._context.parameters[key].records) {\n return key;\n }\n }\n throw new Error(\"Dataset property not found in context parameters\");\n }\n\n}"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualDatasetAdapter.js","sources":["../../../../src/utils/dataset/adapters/VirtualDatasetAdapter.ts"],"sourcesContent":["import { mergeStyles } from \"@fluentui/react\";\nimport { Dataset, FetchXmlDataProvider, IColumn, IDataProvider, MemoryDataProvider } from \"@talxis/client-libraries\";\n\ninterface IOutputs {\n DatasetControl?: any;\n}\n\ninterface IParameterGetters {\n dataProviderType: \"Memory\" | \"FetchXml\" | 'Custom';\n onGetData: () => string | null;\n onGetColumns: () => string | null;\n onGetEntityMetadata: () => string | null;\n customDataProvider?: IDataProvider;\n onGetHeight?: () => string | null;\n /**\n * Callback that gets triggered and awaited before the dataset is initialized. Useful for setting initialization code that needs to run before the dataset is ready.\n */\n onInitialize?: () => void | Promise<void>\n}\n\n/**\n * Helper class that holds boilerplate code for handling a virtual dataset in PCF, like syncing data, columns, and metadata from parameters.\n *\n */\nexport class VirtualDatasetAdapter {\n private _providerClasses = {\n 'FetchXml': FetchXmlDataProvider,\n 'Memory': MemoryDataProvider\n };\n private _dataset!: Dataset<IDataProvider>;\n private _parsedData: any = null;\n private _lastUsedColumns: string | null = null;\n private _lastUsedData: string | null = null;\n private _lastUsedMetadata: string | null = null;\n private _dataProviderClass!: (typeof this._providerClasses[keyof typeof this._providerClasses]);\n private _container!: HTMLDivElement;\n private _notifyOutputChanged!: () => void;\n private _resolveGetOutputs!: (value: boolean | PromiseLike<boolean>) => void;\n private _getOutputsPromise: Promise<boolean> = new Promise(resolve => {\n this._resolveGetOutputs = resolve;\n });\n private _parameters!: IParameterGetters;\n\n public init(notifyOutputChanged: () => void, container: HTMLDivElement, parameters: IParameterGetters) {\n this._parameters = parameters;\n this._notifyOutputChanged = notifyOutputChanged;\n this._container = container;\n let dataProvider: any = null;\n if(parameters.dataProviderType !== 'Custom') {\n //@ts-ignore - typings\n this._dataProviderClass = this._providerClasses[this._parameters.dataProviderType];\n dataProvider = new this._dataProviderClass(this._getData(), this._getEntityMetadata());\n }\n else {\n dataProvider = this._parameters.customDataProvider;\n }\n //@ts-ignore - typings\n this._dataset = new Dataset(dataProvider);\n this._dataset.setColumns(this._getColumns());\n this._dataset.setMetadata(this._getEntityMetadata());\n\n if (this._parameters.onGetHeight?.() === '100%') {\n this._container.classList.add(this._getFullTabStyles());\n }\n this._lastUsedColumns = this._parameters.onGetColumns();\n this._lastUsedData = this._parameters.onGetData();\n this._lastUsedMetadata = this._parameters.onGetEntityMetadata();\n this._notifyOutputChanged();\n this._onDatasetInit();\n return this;\n }\n\n public updateView(): void {\n this._parsedData = null;\n this._refreshOnChange([\n {\n previousValue: this._lastUsedColumns,\n currentValue: this._parameters.onGetColumns(),\n beforeRefreshCallback: () => this._dataset.setColumns(this._getColumns())\n },\n {\n previousValue: this._lastUsedData,\n currentValue: this._parameters.onGetData(),\n beforeRefreshCallback: () => {\n this._dataset.setDataSource(this._getData());\n this._dataset.setColumns(this._getColumns());\n }\n },\n {\n previousValue: this._lastUsedMetadata,\n currentValue: this._parameters.onGetEntityMetadata(),\n beforeRefreshCallback: () => this._dataset.setMetadata(this._getEntityMetadata())\n }\n ]);\n this._lastUsedColumns = this._parameters.onGetColumns();\n this._lastUsedData = this._parameters.onGetData();\n this._lastUsedMetadata = this._parameters.onGetEntityMetadata();\n }\n\n public getDataset(): Dataset<IDataProvider> {\n return this._dataset;\n }\n\n public destroy(): void {\n this._dataset.destroy();\n }\n\n public getOutputs(): IOutputs {\n this._resolveGetOutputs(true);\n return {\n DatasetControl: this.getDataset()\n };\n }\n\n private _onDatasetInit() {\n this.getDataset().setInterceptor('onInitialize', async () => {\n await this._getOutputsPromise;\n await this._parameters.onInitialize?.();\n })\n }\n\n private _getData() {\n if (this._parsedData) {\n return this._parsedData;\n }\n this._parsedData = this._dataProviderClass.GetParsedData(this._parameters.onGetData());\n return this._parsedData;\n }\n\n private _getColumns() {\n try {\n const parameterColumns: IColumn[] = JSON.parse(this._parameters.onGetColumns() ?? \"[]\");\n if (this._shouldMergeColumns()) {\n return this._getMergedColumns(parameterColumns);\n }\n return parameterColumns;\n }\n catch (err) {\n console.error(err);\n return this._dataset.columns;\n }\n }\n\n private _shouldMergeColumns(): boolean {\n if (this._dataset.getDataProvider() instanceof FetchXmlDataProvider) {\n const fetchXml = this._parameters.onGetData();\n if (fetchXml?.includes('savedqueryid') || fetchXml?.includes('userqueryid')) {\n return true;\n }\n }\n return false;\n }\n\n private _getMergedColumns(parameterColumns: IColumn[]): IColumn[] {\n const columnsMap = new Map(this._dataset.columns.map(col => [col.name, col]));\n parameterColumns.forEach(parameterCol => {\n const col = columnsMap.get(parameterCol.name);\n if (col) {\n columnsMap.set(col.name, {\n ...col,\n ...parameterCol\n });\n } else {\n columnsMap.set(parameterCol.name, parameterCol);\n }\n });\n return [...columnsMap.values()];\n }\n\n private _getEntityMetadata() {\n try {\n return JSON.parse(this._parameters.onGetEntityMetadata() ?? \"{}\");\n }\n catch (err) {\n console.error(err);\n return this._dataset.getMetadata();\n }\n }\n\n private _refreshOnChange(objectsToCompare: { currentValue: string | null, previousValue: string | null, beforeRefreshCallback?: () => void }[]) {\n let shouldRefresh = false;\n objectsToCompare.forEach(obj => {\n if (obj.currentValue !== obj.previousValue) {\n shouldRefresh = true;\n obj.beforeRefreshCallback?.();\n }\n });\n if (shouldRefresh) {\n this._dataset.paging.loadExactPage(this._dataset.paging.pageNumber);\n }\n }\n\n private _getFullTabStyles() {\n return mergeStyles({\n display: 'flex',\n flexDirection: 'column',\n flexGrow: 1\n });\n }\n}"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VirtualDatasetAdapter.js","sources":["../../../../src/utils/dataset/adapters/VirtualDatasetAdapter.ts"],"sourcesContent":["import { mergeStyles } from \"@fluentui/react\";\nimport { Dataset, FetchXmlDataProvider, IColumn, IDataProvider, MemoryDataProvider } from \"@talxis/client-libraries\";\n\ninterface IOutputs {\n DatasetControl?: any;\n}\n\ninterface IParameterGetters {\n dataProviderType: \"Memory\" | \"FetchXml\" | 'Custom';\n onGetData: () => string | null;\n onGetColumns: () => string | null;\n onGetEntityMetadata: () => string | null;\n customDataProvider?: IDataProvider;\n onGetHeight?: () => string | null;\n /**\n * Callback that gets triggered and awaited before the dataset is initialized. Useful for setting initialization code that needs to run before the dataset is ready.\n */\n onInitialize?: () => void | Promise<void>;\n}\n\n/**\n * Helper class that holds boilerplate code for handling a virtual dataset in PCF, like syncing data, columns, and metadata from parameters.\n *\n */\nexport class VirtualDatasetAdapter {\n private _providerClasses = {\n 'FetchXml': FetchXmlDataProvider,\n 'Memory': MemoryDataProvider\n };\n private _dataset!: Dataset<IDataProvider>;\n private _parsedData: any = null;\n private _lastUsedColumns: string | null = null;\n private _lastUsedData: string | null = null;\n private _lastUsedMetadata: string | null = null;\n private _dataProviderClass!: (typeof this._providerClasses[keyof typeof this._providerClasses]);\n private _container!: HTMLDivElement;\n private _notifyOutputChanged!: () => void;\n private _resolveGetOutputs!: (value: boolean | PromiseLike<boolean>) => void;\n private _getOutputsPromise: Promise<boolean> = new Promise(resolve => {\n this._resolveGetOutputs = resolve;\n });\n private _parameters!: IParameterGetters;\n\n public init(notifyOutputChanged: () => void, container: HTMLDivElement, parameters: IParameterGetters) {\n this._parameters = parameters;\n this._notifyOutputChanged = notifyOutputChanged;\n this._container = container;\n let dataProvider: any = null;\n if(parameters.dataProviderType !== 'Custom') {\n //@ts-ignore - typings\n this._dataProviderClass = this._providerClasses[this._parameters.dataProviderType];\n dataProvider = new this._dataProviderClass(this._getData(), this._getEntityMetadata());\n }\n else {\n dataProvider = this._parameters.customDataProvider;\n }\n //@ts-ignore - typings\n this._dataset = new Dataset(dataProvider);\n this._dataset.setColumns(this._getColumns());\n this._dataset.setMetadata(this._getEntityMetadata());\n\n if (this._parameters.onGetHeight?.() === '100%') {\n this._container.classList.add(this._getFullTabStyles());\n }\n this._lastUsedColumns = this._parameters.onGetColumns();\n this._lastUsedData = this._parameters.onGetData();\n this._lastUsedMetadata = this._parameters.onGetEntityMetadata();\n this._notifyOutputChanged();\n this._onDatasetInit();\n return this;\n }\n\n public updateView(): void {\n this._parsedData = null;\n this._refreshOnChange([\n {\n previousValue: this._lastUsedColumns,\n currentValue: this._parameters.onGetColumns(),\n beforeRefreshCallback: () => this._dataset.setColumns(this._getColumns())\n },\n {\n previousValue: this._lastUsedData,\n currentValue: this._parameters.onGetData(),\n beforeRefreshCallback: () => {\n this._dataset.setDataSource(this._getData());\n this._dataset.setColumns(this._getColumns());\n }\n },\n {\n previousValue: this._lastUsedMetadata,\n currentValue: this._parameters.onGetEntityMetadata(),\n beforeRefreshCallback: () => this._dataset.setMetadata(this._getEntityMetadata())\n }\n ]);\n this._lastUsedColumns = this._parameters.onGetColumns();\n this._lastUsedData = this._parameters.onGetData();\n this._lastUsedMetadata = this._parameters.onGetEntityMetadata();\n }\n\n public getDataset(): Dataset<IDataProvider> {\n return this._dataset;\n }\n\n public destroy(): void {\n this._dataset.destroy();\n }\n\n public getOutputs(): IOutputs {\n this._resolveGetOutputs(true);\n return {\n DatasetControl: this.getDataset()\n };\n }\n\n private _onDatasetInit() {\n this.getDataset().setInterceptor('onInitialize', async () => {\n await this._getOutputsPromise;\n await this._parameters.onInitialize?.();\n })\n }\n\n private _getData() {\n if (this._parsedData) {\n return this._parsedData;\n }\n this._parsedData = this._dataProviderClass.GetParsedData(this._parameters.onGetData());\n return this._parsedData;\n }\n\n private _getColumns() {\n try {\n const parameterColumns: IColumn[] = JSON.parse(this._parameters.onGetColumns() ?? \"[]\");\n if (this._shouldMergeColumns()) {\n return this._getMergedColumns(parameterColumns);\n }\n return parameterColumns;\n }\n catch (err) {\n console.error(err);\n return this._dataset.columns;\n }\n }\n\n private _shouldMergeColumns(): boolean {\n if (this._dataset.getDataProvider() instanceof FetchXmlDataProvider) {\n const fetchXml = this._parameters.onGetData();\n if (fetchXml?.includes('savedqueryid') || fetchXml?.includes('userqueryid')) {\n return true;\n }\n }\n return false;\n }\n\n private _getMergedColumns(parameterColumns: IColumn[]): IColumn[] {\n const columnsMap = new Map(this._dataset.columns.map(col => [col.name, col]));\n parameterColumns.forEach(parameterCol => {\n const col = columnsMap.get(parameterCol.name);\n if (col) {\n columnsMap.set(col.name, {\n ...col,\n ...parameterCol\n });\n } else {\n columnsMap.set(parameterCol.name, parameterCol);\n }\n });\n return [...columnsMap.values()];\n }\n\n private _getEntityMetadata() {\n try {\n return JSON.parse(this._parameters.onGetEntityMetadata() ?? \"{}\");\n }\n catch (err) {\n console.error(err);\n return this._dataset.getMetadata();\n }\n }\n\n private _refreshOnChange(objectsToCompare: { currentValue: string | null, previousValue: string | null, beforeRefreshCallback?: () => void }[]) {\n let shouldRefresh = false;\n objectsToCompare.forEach(obj => {\n if (obj.currentValue !== obj.previousValue) {\n shouldRefresh = true;\n obj.beforeRefreshCallback?.();\n }\n });\n if (shouldRefresh) {\n this._dataset.paging.loadExactPage(this._dataset.paging.pageNumber);\n }\n }\n\n private _getFullTabStyles() {\n return mergeStyles({\n display: 'flex',\n flexDirection: 'column',\n flexGrow: 1\n });\n }\n}"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@talxis/base-controls",
3
- "version": "1.2506.4",
3
+ "version": "1.2506.6",
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",
@@ -82,13 +82,13 @@
82
82
  "merge-anything": "^5.1.7",
83
83
  "numeral": "^2.0.6",
84
84
  "use-debounce": "^10.0.1",
85
- "validator": "^13.11.9"
85
+ "validator": "^13.11.9",
86
+ "@talxis/client-libraries": "^1.2506.3"
86
87
  },
87
88
  "peerDependencies": {
88
89
  "@fluentui/react": "<=8.121.5",
89
- "@talxis/client-libraries": "^1.2506.1",
90
90
  "@talxis/react-components": "^1.2503.4",
91
91
  "react": "^16.8.6 || ^17.0.2",
92
92
  "react-dom": "^16.8.6 || ^17.0.2"
93
93
  }
94
- }
94
+ }