@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.
- package/dist/components/Grid/aggregation/Aggregation.d.ts +18 -0
- package/dist/components/Grid/aggregation/Aggregation.js +129 -0
- package/dist/components/Grid/aggregation/Aggregation.js.map +1 -0
- package/dist/components/Grid/core/components/AgGrid/AgGrid.js +6 -3
- package/dist/components/Grid/core/components/AgGrid/AgGrid.js.map +1 -1
- package/dist/components/Grid/core/components/AgGrid/components/EmptyRecordsOverlay/EmptyRecords.js.map +1 -1
- package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js +18 -8
- package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js.map +1 -1
- package/dist/components/Grid/core/components/AgGrid/styles.d.ts +4 -0
- package/dist/components/Grid/core/components/AgGrid/styles.js +4 -0
- package/dist/components/Grid/core/components/AgGrid/styles.js.map +1 -1
- package/dist/components/Grid/core/components/Cell/Cell.js +14 -1
- package/dist/components/Grid/core/components/Cell/Cell.js.map +1 -1
- package/dist/components/Grid/core/components/Cell/CellContent/CellContent.js +5 -0
- package/dist/components/Grid/core/components/Cell/CellContent/CellContent.js.map +1 -1
- package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.js +1 -1
- package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.js.map +1 -1
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.js +10 -2
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.js.map +1 -1
- package/dist/components/Grid/core/interfaces/IGridColumn.d.ts +1 -0
- package/dist/components/Grid/core/model/Grid.d.ts +3 -0
- package/dist/components/Grid/core/model/Grid.js +36 -13
- package/dist/components/Grid/core/model/Grid.js.map +1 -1
- package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.d.ts +3 -0
- package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.js +1 -1
- package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.js.map +1 -1
- package/dist/components/Grid/filtering/model/Condition.js +1 -1
- package/dist/components/Grid/filtering/model/Condition.js.map +1 -1
- package/dist/components/Grid/interfaces.d.ts +1 -0
- package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js +58 -34
- package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js.map +1 -1
- package/dist/components/Grid/translations.d.ts +36 -0
- package/dist/components/Grid/translations.js +13 -1
- package/dist/components/Grid/translations.js.map +1 -1
- package/dist/components/GridCellRenderer/GridCellRenderer.js +37 -5
- package/dist/components/GridCellRenderer/GridCellRenderer.js.map +1 -1
- package/dist/components/GridCellRenderer/interfaces.d.ts +5 -2
- package/dist/components/GridCellRenderer/styles.d.ts +15 -2
- package/dist/components/GridCellRenderer/styles.js +15 -2
- package/dist/components/GridCellRenderer/styles.js.map +1 -1
- package/dist/components/GridCellRenderer/translations.d.ts +24 -0
- package/dist/components/GridCellRenderer/translations.js +24 -0
- package/dist/components/GridCellRenderer/translations.js.map +1 -1
- package/dist/components/NestedControlRenderer/properties/OptionSetProperty.js +0 -4
- package/dist/components/NestedControlRenderer/properties/OptionSetProperty.js.map +1 -1
- package/dist/index.d.ts +66 -6
- package/dist/utils/dataset/adapters/DatasetAdapter.d.ts +0 -4
- package/dist/utils/dataset/adapters/DatasetAdapter.js.map +1 -1
- package/dist/utils/dataset/adapters/VirtualDatasetAdapter.js.map +1 -1
- 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.
|
|
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
|
+
}
|