@talxis/base-controls 1.2601.3 → 1.2601.5
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/DatasetControl/DatasetControl.d.ts +1 -2
- package/dist/components/DatasetControl/DatasetControl.js.map +1 -1
- package/dist/components/DatasetControl/EditColumns/ColumnSelector/ColumnSelector.d.ts +5 -0
- package/dist/components/DatasetControl/EditColumns/ColumnSelector/ColumnSelector.js +70 -0
- package/dist/components/DatasetControl/EditColumns/ColumnSelector/ColumnSelector.js.map +1 -0
- package/dist/components/DatasetControl/EditColumns/ColumnSelector/styles.d.ts +7 -0
- package/dist/components/DatasetControl/EditColumns/ColumnSelector/styles.js +14 -0
- package/dist/components/DatasetControl/EditColumns/ColumnSelector/styles.js.map +1 -0
- package/dist/components/DatasetControl/EditColumns/EditColumns.d.ts +5 -0
- package/dist/components/DatasetControl/EditColumns/EditColumns.js +66 -0
- package/dist/components/DatasetControl/EditColumns/EditColumns.js.map +1 -0
- package/dist/components/DatasetControl/EditColumns/ScopeSelector/ScopeSelector.d.ts +1 -0
- package/dist/components/DatasetControl/EditColumns/ScopeSelector/ScopeSelector.js +35 -0
- package/dist/components/DatasetControl/EditColumns/ScopeSelector/ScopeSelector.js.map +1 -0
- package/dist/components/DatasetControl/EditColumns/Selector/Selector.d.ts +9 -0
- package/dist/components/DatasetControl/EditColumns/Selector/Selector.js +58 -0
- package/dist/components/DatasetControl/EditColumns/Selector/Selector.js.map +1 -0
- package/dist/components/DatasetControl/EditColumns/SortableItem/SortableItem.d.ts +4 -0
- package/dist/components/DatasetControl/EditColumns/SortableItem/SortableItem.js +32 -0
- package/dist/components/DatasetControl/EditColumns/SortableItem/SortableItem.js.map +1 -0
- package/dist/components/DatasetControl/EditColumns/SortableItem/styles.d.ts +26 -0
- package/dist/components/DatasetControl/EditColumns/SortableItem/styles.js +32 -0
- package/dist/components/DatasetControl/EditColumns/SortableItem/styles.js.map +1 -0
- package/dist/components/DatasetControl/EditColumns/styles.d.ts +50 -0
- package/dist/components/DatasetControl/EditColumns/styles.js +56 -0
- package/dist/components/DatasetControl/EditColumns/styles.js.map +1 -0
- package/dist/components/DatasetControl/EditColumns/useEditColumns.d.ts +4 -0
- package/dist/components/DatasetControl/EditColumns/useEditColumns.js +9 -0
- package/dist/components/DatasetControl/EditColumns/useEditColumns.js.map +1 -0
- package/dist/components/DatasetControl/Filtering/DatasetColumnFiltering.js +1 -1
- package/dist/components/DatasetControl/Header/Header.js +83 -45
- package/dist/components/DatasetControl/Header/Header.js.map +1 -1
- package/dist/components/DatasetControl/QuickFind/QuickFind.js +89 -29
- package/dist/components/DatasetControl/QuickFind/QuickFind.js.map +1 -1
- package/dist/components/DatasetControl/QuickFind/styles.d.ts +16 -0
- package/dist/components/DatasetControl/QuickFind/styles.js +16 -0
- package/dist/components/DatasetControl/QuickFind/styles.js.map +1 -1
- package/dist/components/DatasetControl/interfaces.d.ts +27 -4
- package/dist/components/DatasetControl/translations.d.ts +48 -0
- package/dist/components/DatasetControl/translations.js +13 -1
- package/dist/components/DatasetControl/translations.js.map +1 -1
- package/dist/components/DateTime/DateTime.d.ts +1 -2
- package/dist/components/DateTime/components/Calendar.d.ts +1 -2
- package/dist/components/Decimal/Decimal.d.ts +1 -2
- package/dist/components/Duration/Duration.d.ts +1 -2
- package/dist/components/Grid/cells/cell/Cell.d.ts +2 -3
- package/dist/components/Grid/cells/cell/content/CellContent.d.ts +1 -2
- package/dist/components/Grid/cells/cell/notifications/Notifications.d.ts +1 -2
- package/dist/components/Grid/cells/selection-cell/SelectionCell.d.ts +1 -2
- package/dist/components/Grid/cells/selection-cell/SelectionCell.js.map +1 -1
- package/dist/components/Grid/cells/selection-cell/record-save-error-callout/RecordSaveErrorCallout.d.ts +1 -2
- package/dist/components/Grid/column-headers/column-header/ColumnHeader.d.ts +1 -2
- package/dist/components/Grid/column-headers/column-header/ColumnHeaderContextualMenu.d.ts +1 -1
- package/dist/components/Grid/column-headers/column-header/FilterCallout.d.ts +1 -2
- package/dist/components/Grid/column-headers/record-selection-checkbox/RecordSelectionCheckbox.d.ts +1 -2
- package/dist/components/Grid/errors/FullWidthCellRendererError/FullWidthCellRendererError.d.ts +1 -2
- package/dist/components/Grid/grid/Grid.d.ts +1 -2
- package/dist/components/Grid/loading/full-row/FullRowLoading.d.ts +1 -2
- package/dist/components/Grid/overlays/empty-records/EmptyRecordsOverlay.d.ts +1 -2
- package/dist/components/Grid/overlays/loading/LoadingOverlay.d.ts +1 -2
- package/dist/components/GridCellRenderer/GridCellRenderer.d.ts +1 -2
- package/dist/components/GridCellRenderer/ValueRenderer/ValueRenderer.d.ts +1 -2
- package/dist/components/GridCellRenderer/ValueRenderer/styles.d.ts +174 -110
- package/dist/components/GridCellRenderer/ValueRenderer/styles.js +1 -0
- package/dist/components/GridCellRenderer/ValueRenderer/styles.js.map +1 -1
- package/dist/components/Lookup/Lookup.d.ts +1 -2
- package/dist/components/Lookup/components/RecordCreator.d.ts +1 -2
- package/dist/components/Lookup/components/TargetSelector.d.ts +1 -2
- package/dist/components/MultiSelectOptionSet/ColofulOptions/ColorfulOptions.d.ts +1 -2
- package/dist/components/MultiSelectOptionSet/MultiSelectOptionSet.d.ts +1 -2
- package/dist/components/NestedControlRenderer/NestedControlRenderer.d.ts +1 -2
- package/dist/components/OptionSet/OptionSet.d.ts +1 -2
- package/dist/components/OptionSet/shared.d.ts +1 -2
- package/dist/components/Ribbon/styles.d.ts +1 -0
- package/dist/components/Ribbon/styles.js +1 -0
- package/dist/components/Ribbon/styles.js.map +1 -1
- package/dist/components/TextField/TextField.d.ts +1 -2
- package/dist/components/TwoOptions/TwoOptions.d.ts +1 -2
- package/dist/hooks/useShouldRemount.d.ts +1 -0
- package/dist/hooks/useShouldRemount.js +14 -0
- package/dist/hooks/useShouldRemount.js.map +1 -0
- package/dist/index.d.ts +117 -18
- package/dist/utils/dataset/adapters/VirtualDatasetAdapter.d.ts +1 -0
- package/dist/utils/dataset/adapters/VirtualDatasetAdapter.js +3 -0
- package/dist/utils/dataset/adapters/VirtualDatasetAdapter.js.map +1 -1
- package/dist/utils/dataset-control/DatasetControl.d.ts +17 -2
- package/dist/utils/dataset-control/DatasetControl.js +19 -0
- package/dist/utils/dataset-control/DatasetControl.js.map +1 -1
- package/dist/utils/dataset-control/EditColumns.d.ts +48 -0
- package/dist/utils/dataset-control/EditColumns.js +140 -0
- package/dist/utils/dataset-control/EditColumns.js.map +1 -0
- package/dist/utils/theme/components/ThemeWrapper.d.ts +1 -1
- package/package.json +9 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sources":["../../../../src/components/GridCellRenderer/ValueRenderer/styles.ts"],"sourcesContent":["import { ITheme, mergeStyleSets } from \"@fluentui/react\"\nimport { CSSProperties } from \"react\";\n\ninterface IDeps {\n theme: ITheme;\n isMultiline: boolean;\n makeBold: boolean;\n}\n\nexport const getValueRendererStyles = (deps: IDeps) => {\n const { isMultiline, theme } = deps;\n return mergeStyleSets({\n text: {\n fontSize: 'inherit',\n ...isMultiline ? getMultilineStyles() : {},\n },\n link: {\n
|
|
1
|
+
{"version":3,"file":"styles.js","sources":["../../../../src/components/GridCellRenderer/ValueRenderer/styles.ts"],"sourcesContent":["import { ITheme, mergeStyleSets } from \"@fluentui/react\"\nimport { CSSProperties } from \"react\";\n\ninterface IDeps {\n theme: ITheme;\n isMultiline: boolean;\n makeBold: boolean;\n}\n\nexport const getValueRendererStyles = (deps: IDeps) => {\n const { isMultiline, theme } = deps;\n return mergeStyleSets({\n text: {\n fontSize: 'inherit',\n ...isMultiline ? getMultilineStyles() : {},\n },\n link: {\n ...isMultiline ? getMultilineStyles() : {},\n },\n placeholder: {\n color: theme.semanticColors.disabledText\n }\n })\n}\n\nconst getMultilineStyles = (): CSSProperties => {\n return {\n whiteSpace: 'normal',\n display: '-webkit-box',\n //@ts-ignore\n '-webkit-box-orient': 'vertical',\n //@ts-ignore\n wordBreak: 'auto-phrase',\n '-webkit-line-clamp': '6',\n lineHeight: 'normal'\n }\n}"],"names":[],"mappings":";;AASa,MAAA,sBAAsB,GAAG,CAAC,IAAW,KAAI;AAClD,IAAA,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;AACpC,IAAA,OAAO,cAAc,CAAC;AAClB,QAAA,IAAI,EAAE;AACF,YAAA,QAAQ,EAAE,SAAS;YACnB,GAAG,WAAW,GAAG,kBAAkB,EAAE,GAAG,EAAE;AAC7C,SAAA;AACD,QAAA,IAAI,EAAE;YACF,GAAG,WAAW,GAAG,kBAAkB,EAAE,GAAG,EAAE;AAC7C,SAAA;AACD,QAAA,WAAW,EAAE;AACT,YAAA,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,YAAY;AAC3C,SAAA;AACJ,KAAA,CAAC,CAAA;AACN,EAAC;AAED,MAAM,kBAAkB,GAAG,MAAoB;IAC3C,OAAO;AACH,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,OAAO,EAAE,aAAa;;AAEtB,QAAA,oBAAoB,EAAE,UAAU;;AAEhC,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,oBAAoB,EAAE,GAAG;AACzB,QAAA,UAAU,EAAE,QAAQ;KACvB,CAAA;AACL,CAAC;;;;"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import { IEntity, ILookupTranslations } from "../interfaces";
|
|
3
2
|
import { StringProps } from '../../../types';
|
|
4
3
|
interface IRecordCreator {
|
|
@@ -6,5 +5,5 @@ interface IRecordCreator {
|
|
|
6
5
|
entities: IEntity[];
|
|
7
6
|
onCreateRecord: (entityName: string) => void;
|
|
8
7
|
}
|
|
9
|
-
export declare const RecordCreator: (props: IRecordCreator) => JSX.Element;
|
|
8
|
+
export declare const RecordCreator: (props: IRecordCreator) => import("react/jsx-runtime").JSX.Element;
|
|
10
9
|
export {};
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import { IEntity } from '../interfaces';
|
|
3
2
|
interface ITargetSelector {
|
|
4
3
|
labels: any;
|
|
5
4
|
entities: IEntity[];
|
|
6
5
|
onEntitySelected: (entityName: string | null) => void;
|
|
7
6
|
}
|
|
8
|
-
export declare const TargetSelector: (props: ITargetSelector) => JSX.Element;
|
|
7
|
+
export declare const TargetSelector: (props: ITargetSelector) => import("react/jsx-runtime").JSX.Element;
|
|
9
8
|
export {};
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import { IContext, IMultiSelectOptionSetProperty } from "../../../interfaces";
|
|
3
2
|
interface IColorfulOptionsProps {
|
|
4
3
|
value: IMultiSelectOptionSetProperty;
|
|
5
4
|
context: IContext;
|
|
6
5
|
}
|
|
7
|
-
export declare const ColorfulOptions: (props: IColorfulOptionsProps) => JSX.Element;
|
|
6
|
+
export declare const ColorfulOptions: (props: IColorfulOptionsProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
7
|
export {};
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import { IMultiSelectOptionSet } from './interfaces';
|
|
3
|
-
export declare const MultiSelectOptionSet: (props: IMultiSelectOptionSet) => JSX.Element;
|
|
2
|
+
export declare const MultiSelectOptionSet: (props: IMultiSelectOptionSet) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import { INestedControlRenderer } from './interfaces';
|
|
3
|
-
export declare const NestedControlRenderer: (props: INestedControlRenderer) => JSX.Element;
|
|
2
|
+
export declare const NestedControlRenderer: (props: INestedControlRenderer) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/// <reference types="@types/powerapps-component-framework" />
|
|
2
|
-
/// <reference types="react" />
|
|
3
2
|
import { IComboBoxOption, ITheme } from "@fluentui/react";
|
|
4
|
-
export declare const onRenderColorfulOption: (options: ComponentFramework.PropertyHelper.OptionMetadata[], option: IComboBoxOption | undefined, theme: ITheme) => JSX.Element | null;
|
|
3
|
+
export declare const onRenderColorfulOption: (options: ComponentFramework.PropertyHelper.OptionMetadata[], option: IComboBoxOption | undefined, theme: ITheme) => import("react/jsx-runtime").JSX.Element | null;
|
|
5
4
|
export declare const getIsColorFeatureEnabled: (enableColors: boolean | undefined, options: ComponentFramework.PropertyHelper.OptionMetadata[]) => boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sources":["../../../src/components/Ribbon/styles.ts"],"sourcesContent":["import { mergeStyleSets } from \"@fluentui/react\"\n\nexport const getRibbonStyles = () => {\n return mergeStyleSets({\n container: {\n flex: 1,\n },\n shimmerRoot: {\n width: '100%',\n },\n shimmerWrapper: {\n height: 44\n },\n commandBtnRoot: {\n 'img': {\n width: 18\n }\n }\n })\n}"],"names":[],"mappings":";;AAEO,MAAM,eAAe,GAAG,MAAK;AAChC,IAAA,OAAO,cAAc,CAAC;AAClB,QAAA,SAAS,EAAE;AACP,YAAA,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"styles.js","sources":["../../../src/components/Ribbon/styles.ts"],"sourcesContent":["import { mergeStyleSets } from \"@fluentui/react\"\n\nexport const getRibbonStyles = () => {\n return mergeStyleSets({\n container: {\n flex: 1,\n minWidth: 0,\n },\n shimmerRoot: {\n width: '100%',\n },\n shimmerWrapper: {\n height: 44\n },\n commandBtnRoot: {\n 'img': {\n width: 18\n }\n }\n })\n}"],"names":[],"mappings":";;AAEO,MAAM,eAAe,GAAG,MAAK;AAChC,IAAA,OAAO,cAAc,CAAC;AAClB,QAAA,SAAS,EAAE;AACP,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,QAAQ,EAAE,CAAC;AACd,SAAA;AACD,QAAA,WAAW,EAAE;AACT,YAAA,KAAK,EAAE,MAAM;AAChB,SAAA;AACD,QAAA,cAAc,EAAE;AACZ,YAAA,MAAM,EAAE,EAAE;AACb,SAAA;AACD,QAAA,cAAc,EAAE;AACZ,YAAA,KAAK,EAAE;AACH,gBAAA,KAAK,EAAE,EAAE;AACZ,aAAA;AACJ,SAAA;AACJ,KAAA,CAAC,CAAA;AACN;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const useShouldRemount: () => [boolean, () => void];
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React, { useEffect } from 'react';
|
|
2
|
+
|
|
3
|
+
const useShouldRemount = () => {
|
|
4
|
+
const [shouldRemount, setShouldRemount] = React.useState(false);
|
|
5
|
+
useEffect(() => {
|
|
6
|
+
if (shouldRemount) {
|
|
7
|
+
setShouldRemount(false);
|
|
8
|
+
}
|
|
9
|
+
}, [shouldRemount]);
|
|
10
|
+
return [shouldRemount, () => setShouldRemount(true)];
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export { useShouldRemount };
|
|
14
|
+
//# sourceMappingURL=useShouldRemount.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useShouldRemount.js","sources":["../../src/hooks/useShouldRemount.ts"],"sourcesContent":["import React, { useEffect } from \"react\";\n\nexport const useShouldRemount = (): [boolean, () => void] => {\n const [shouldRemount, setShouldRemount] = React.useState(false);\n\n useEffect(() => {\n if(shouldRemount) {\n setShouldRemount(false);\n }\n }, [shouldRemount]);\n\n return [shouldRemount, () => setShouldRemount(true)];;\n}"],"names":[],"mappings":";;AAEO,MAAM,gBAAgB,GAAG,MAA4B;AACxD,IAAA,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhE,SAAS,CAAC,MAAK;AACX,QAAA,IAAG,aAAa,EAAE;YACd,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC3B,SAAA;AACL,KAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,OAAO,CAAC,aAAa,EAAE,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;AACzD;;;;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/// <reference types="@types/powerapps-component-framework" />
|
|
2
2
|
/// <reference types="react" />
|
|
3
|
-
import { ITheme, ICommandBarProps, ITextFieldProps, IDatePickerProps, ITagPickerProps, IComboBoxProps } from '@talxis/react-components';
|
|
4
|
-
import { DeepPartial, DataType, IDataset,
|
|
5
|
-
import { ITheme as ITheme$1, ThemeProviderProps, IShimmerProps, IButtonProps, IMessageBarProps, ILabelProps, IIconProps,
|
|
3
|
+
import { ITheme, ICommandBarProps, ITextFieldProps, ICalloutProps as ICalloutProps$1, IDatePickerProps, ITagPickerProps, IComboBoxProps } from '@talxis/react-components';
|
|
4
|
+
import { DeepPartial, DataType, IDataset, IEventEmitter, IColumn, IAvailableRelatedColumn, IInterceptor, ICommand, AggregationFunction, IRecord, Dataset, IDataProvider, IRawRecord } from '@talxis/client-libraries';
|
|
5
|
+
import { ITheme as ITheme$1, ThemeProviderProps, IShimmerProps, IButtonProps, IMessageBarProps, ITextProps, ILabelProps, IIconProps, ILinkProps, IImageProps, ISpinnerProps, IMessageBar, IToggleProps } from '@fluentui/react';
|
|
6
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
6
7
|
import React$1 from 'react';
|
|
7
8
|
import { AgGridReactProps } from '@ag-grid-community/react';
|
|
8
9
|
|
|
@@ -109,7 +110,7 @@ interface IThemeWrapper extends ThemeProviderProps {
|
|
|
109
110
|
fluentDesignLanguage?: ComponentFramework.FluentDesignState;
|
|
110
111
|
children?: React$1.ReactNode;
|
|
111
112
|
}
|
|
112
|
-
declare const ThemeWrapper: (props: IThemeWrapper) => JSX.Element;
|
|
113
|
+
declare const ThemeWrapper: (props: IThemeWrapper) => react_jsx_runtime.JSX.Element;
|
|
113
114
|
|
|
114
115
|
type BaseControl = 'TextField' | 'OptionSet' | 'MultiSelectOptionSet' | 'DateTime' | 'Decimal' | 'Duration' | 'GridCellRenderer' | 'Lookup' | 'TwoOptions' | 'GridCellRenderer' | 'Grid' | 'DatasetControl' | 'NestedControl' | 'GridColumnHeader' | 'Ribbon' | 'GridInlineRibbon';
|
|
115
116
|
declare class BaseControls {
|
|
@@ -373,7 +374,7 @@ interface IGridParameters extends IParameters {
|
|
|
373
374
|
interface IGridOutputs extends IOutputs$1 {
|
|
374
375
|
}
|
|
375
376
|
|
|
376
|
-
declare const Grid: (props: IGrid) => JSX.Element;
|
|
377
|
+
declare const Grid: (props: IGrid) => react_jsx_runtime.JSX.Element;
|
|
377
378
|
|
|
378
379
|
declare const datasetControlTranslations: {
|
|
379
380
|
search: {
|
|
@@ -384,6 +385,38 @@ declare const datasetControlTranslations: {
|
|
|
384
385
|
1029: string;
|
|
385
386
|
1033: string;
|
|
386
387
|
};
|
|
388
|
+
'no-name': {
|
|
389
|
+
1029: string;
|
|
390
|
+
1033: string;
|
|
391
|
+
};
|
|
392
|
+
"column-source": {
|
|
393
|
+
1029: string;
|
|
394
|
+
1033: string;
|
|
395
|
+
};
|
|
396
|
+
"no-result-found": {
|
|
397
|
+
1029: string;
|
|
398
|
+
1033: string;
|
|
399
|
+
};
|
|
400
|
+
"add-column": {
|
|
401
|
+
1029: string;
|
|
402
|
+
1033: string;
|
|
403
|
+
};
|
|
404
|
+
cancel: {
|
|
405
|
+
1029: string;
|
|
406
|
+
1033: string;
|
|
407
|
+
};
|
|
408
|
+
'edit-columns': {
|
|
409
|
+
1029: string;
|
|
410
|
+
1033: string;
|
|
411
|
+
};
|
|
412
|
+
'edit-filters': {
|
|
413
|
+
1029: string;
|
|
414
|
+
1033: string;
|
|
415
|
+
};
|
|
416
|
+
save: {
|
|
417
|
+
1029: string;
|
|
418
|
+
1033: string;
|
|
419
|
+
};
|
|
387
420
|
generalError: {
|
|
388
421
|
1029: string;
|
|
389
422
|
1033: string;
|
|
@@ -436,6 +469,22 @@ declare const datasetControlTranslations: {
|
|
|
436
469
|
1029: string;
|
|
437
470
|
1033: string;
|
|
438
471
|
};
|
|
472
|
+
"quickfind-like-warning": {
|
|
473
|
+
1029: string;
|
|
474
|
+
1033: string;
|
|
475
|
+
};
|
|
476
|
+
"quickfind-search-use-filter": {
|
|
477
|
+
1029: string;
|
|
478
|
+
1033: string;
|
|
479
|
+
};
|
|
480
|
+
"quickfind-search-starts-with": {
|
|
481
|
+
1029: string;
|
|
482
|
+
1033: string;
|
|
483
|
+
};
|
|
484
|
+
"quickfind-search-on-these-columns": {
|
|
485
|
+
1029: string;
|
|
486
|
+
1033: string;
|
|
487
|
+
};
|
|
439
488
|
};
|
|
440
489
|
|
|
441
490
|
interface IRibbonComponentProps {
|
|
@@ -448,14 +497,36 @@ interface IComponentProps$2 {
|
|
|
448
497
|
onRenderCommandBar: (props: ICommandBarProps, defaultRender: (props: ICommandBarProps) => React.ReactElement) => React.ReactElement;
|
|
449
498
|
}
|
|
450
499
|
|
|
500
|
+
interface IEditColumnsEvents {
|
|
501
|
+
onColumnAdded: (column: IColumn) => void;
|
|
502
|
+
onColumnsChanged: (newColumns: IColumn[]) => void;
|
|
503
|
+
onRelatedEntityColumnChanged: (relatedEntityColumn: IColumn | null) => void;
|
|
504
|
+
}
|
|
505
|
+
interface IEditColumns extends IEventEmitter<IEditColumnsEvents> {
|
|
506
|
+
save(): void;
|
|
507
|
+
getColumns(): (IColumn & {
|
|
508
|
+
id: string;
|
|
509
|
+
})[];
|
|
510
|
+
deleteColumn(name: string): void;
|
|
511
|
+
addColumn(column: IColumn): void;
|
|
512
|
+
getAvailableColumns(query?: string): Promise<IColumn[]>;
|
|
513
|
+
getAvailableRelatedColumns(query?: string): Promise<IAvailableRelatedColumn[]>;
|
|
514
|
+
selectRelatedEntityColumn(column: IAvailableRelatedColumn): void;
|
|
515
|
+
onColumnMoved(draggedColumnId: string, targetColumnId: string): void;
|
|
516
|
+
getMainEntityColumn(): IAvailableRelatedColumn;
|
|
517
|
+
}
|
|
518
|
+
|
|
451
519
|
interface IDatasetControlEvents {
|
|
452
520
|
onRecordCommandsLoaded: () => void;
|
|
521
|
+
onRemountRequested: () => void;
|
|
522
|
+
onEditColumnsRequested: () => void;
|
|
453
523
|
onInitialized: () => void;
|
|
454
524
|
}
|
|
455
525
|
interface IDatasetControlInterceptors {
|
|
456
526
|
onInitialize: () => Promise<void>;
|
|
457
527
|
}
|
|
458
|
-
interface IDatasetControl extends
|
|
528
|
+
interface IDatasetControl extends IEventEmitter<IDatasetControlEvents> {
|
|
529
|
+
editColumns: IEditColumns;
|
|
459
530
|
setInterceptor<K extends keyof IDatasetControlInterceptors>(event: K, interceptor: IInterceptor<IDatasetControlInterceptors, K>): void;
|
|
460
531
|
isPaginationVisible(): boolean;
|
|
461
532
|
isRecordCountVisible(): boolean;
|
|
@@ -470,7 +541,12 @@ interface IDatasetControl extends EventEmitter<IDatasetControlEvents> {
|
|
|
470
541
|
loadCommands(ids: string[]): Promise<void>;
|
|
471
542
|
retrieveRecordCommands(): ICommand[];
|
|
472
543
|
areCommandsLoaded(): boolean;
|
|
544
|
+
isEditColumnsVisible(): boolean;
|
|
545
|
+
isViewSwitcherVisible(): boolean;
|
|
546
|
+
isEditFiltersVisible(): boolean;
|
|
547
|
+
requestEditColumns(): void;
|
|
473
548
|
destroy(): void;
|
|
549
|
+
requestRemount(): void;
|
|
474
550
|
init(): Promise<void>;
|
|
475
551
|
getState(): ComponentFramework.Dictionary;
|
|
476
552
|
saveState(): void;
|
|
@@ -491,6 +567,7 @@ interface IDatasetControlProps extends Omit<IControl<IDatasetControlParameters,
|
|
|
491
567
|
}) => React$1.ReactElement<IControl<any, any, any, any>>;
|
|
492
568
|
}
|
|
493
569
|
interface IDatasetControlParameters extends IGridParameters {
|
|
570
|
+
EnableEditColumns?: Omit<ITwoOptionsProperty, 'attributes'>;
|
|
494
571
|
ClientApiWebresourceName?: IStringProperty;
|
|
495
572
|
ClientApiFunctionName?: IStringProperty;
|
|
496
573
|
}
|
|
@@ -527,6 +604,9 @@ interface IRibbonQuickFindWrapperProps {
|
|
|
527
604
|
ribbonQuickFindContainerProps: React$1.HTMLAttributes<HTMLDivElement>;
|
|
528
605
|
isRibbonVisible: boolean;
|
|
529
606
|
isQuickFindVisible: boolean;
|
|
607
|
+
isViewSwitcherVisible: boolean;
|
|
608
|
+
isEditColumnsVisible: boolean;
|
|
609
|
+
isEditFiltersVisible: boolean;
|
|
530
610
|
onRenderQuickFind: (props: IQuickFindProps, defaultRender: (props: IQuickFindProps) => React$1.ReactElement) => React$1.ReactElement;
|
|
531
611
|
onRenderRibbon: IRibbonComponentProps['onRender'];
|
|
532
612
|
}
|
|
@@ -539,12 +619,30 @@ interface IUnsavedChangesMesssageBarProps {
|
|
|
539
619
|
onRenderSaveBtn: (props: IButtonProps, defaultRender: (props: IButtonProps) => React$1.ReactElement) => React$1.ReactElement;
|
|
540
620
|
onRenderDiscardBtn: (props: IButtonProps, defaultRender: (props: IButtonProps) => React$1.ReactElement) => React$1.ReactElement;
|
|
541
621
|
}
|
|
622
|
+
interface IColumnList extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
623
|
+
columns: IColumn[];
|
|
624
|
+
onRenderColumnLabel: (props: ITextProps & {
|
|
625
|
+
key: string;
|
|
626
|
+
}, defaultRender: (props: ITextProps) => React$1.ReactElement) => React$1.ReactElement;
|
|
627
|
+
}
|
|
628
|
+
interface ICalloutProps extends ICalloutProps$1 {
|
|
629
|
+
isVisible: boolean;
|
|
630
|
+
isLikeQuery: boolean;
|
|
631
|
+
onRenderLikeOperatorWarning: (props: ITextProps, defaultRender: (props: ITextProps) => React$1.ReactElement) => React$1.ReactElement;
|
|
632
|
+
onRenderBegingsWithFilterInfo: (props: ITextProps, defaultRender: (props: ITextProps) => React$1.ReactElement) => React$1.ReactElement;
|
|
633
|
+
onRenderColumnsList: (props: IColumnList, defaultRender: (props: IColumnList) => React$1.ReactElement) => React$1.ReactElement;
|
|
634
|
+
}
|
|
635
|
+
interface ICalloutContainer extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
636
|
+
isVisible: boolean;
|
|
637
|
+
onRenderCallout: (props: ICalloutProps, defaultRender: (props: ICalloutProps) => React$1.ReactElement) => React$1.ReactElement;
|
|
638
|
+
}
|
|
542
639
|
interface IQuickFindProps {
|
|
543
|
-
|
|
640
|
+
containerProps: React$1.HTMLAttributes<HTMLDivElement>;
|
|
544
641
|
onRenderTextField: (props: ITextFieldProps, defaultRender: (props: ITextFieldProps) => React$1.ReactElement) => React$1.ReactElement;
|
|
642
|
+
onRenderCalloutContainer: (props: ICalloutContainer, defaultRender: (props: ICalloutContainer) => React$1.ReactElement) => React$1.ReactElement;
|
|
545
643
|
}
|
|
546
644
|
|
|
547
|
-
declare const DatasetControl: (props: IDatasetControlProps) => JSX.Element;
|
|
645
|
+
declare const DatasetControl: (props: IDatasetControlProps) => react_jsx_runtime.JSX.Element;
|
|
548
646
|
|
|
549
647
|
interface IParameters$1 {
|
|
550
648
|
[key: string]: IProperty | undefined;
|
|
@@ -609,7 +707,7 @@ interface IDateTimeOutputs extends IOutputs$1 {
|
|
|
609
707
|
value?: Date;
|
|
610
708
|
}
|
|
611
709
|
|
|
612
|
-
declare const DateTime: (componentProps: IDateTime) => JSX.Element;
|
|
710
|
+
declare const DateTime: (componentProps: IDateTime) => react_jsx_runtime.JSX.Element;
|
|
613
711
|
|
|
614
712
|
declare const useDateTime: (props: IDateTime, ref: React.RefObject<HTMLDivElement>) => [boolean, ITheme, ITranslation<Partial<ITranslations<{
|
|
615
713
|
time: {
|
|
@@ -651,7 +749,7 @@ interface IDecimalOutputs extends IOutputs$1 {
|
|
|
651
749
|
value?: number;
|
|
652
750
|
}
|
|
653
751
|
|
|
654
|
-
declare const Decimal: (props: IDecimal) => JSX.Element;
|
|
752
|
+
declare const Decimal: (props: IDecimal) => react_jsx_runtime.JSX.Element;
|
|
655
753
|
|
|
656
754
|
declare const gridGroupCellRendererTranslations: {
|
|
657
755
|
download: {
|
|
@@ -755,7 +853,7 @@ interface IFileRendererProps {
|
|
|
755
853
|
onRenderLink: (props: ILinkProps, defaultRender: (props: ILinkProps) => React.ReactElement) => React.ReactElement;
|
|
756
854
|
}
|
|
757
855
|
|
|
758
|
-
declare const GridCellRenderer: (props: IGridCellRenderer) => JSX.Element;
|
|
856
|
+
declare const GridCellRenderer: (props: IGridCellRenderer) => react_jsx_runtime.JSX.Element;
|
|
759
857
|
|
|
760
858
|
declare const lookupTranslations: {
|
|
761
859
|
search: {
|
|
@@ -857,7 +955,7 @@ interface ICell {
|
|
|
857
955
|
LabelId?: string;
|
|
858
956
|
}
|
|
859
957
|
|
|
860
|
-
declare const Lookup: (props: ILookup) => JSX.Element;
|
|
958
|
+
declare const Lookup: (props: ILookup) => react_jsx_runtime.JSX.Element;
|
|
861
959
|
|
|
862
960
|
declare const useLookup: (props: ILookup) => [ComponentFramework.LookupValue[], IEntity[], ITranslation<Partial<ITranslations<{
|
|
863
961
|
search: {
|
|
@@ -909,7 +1007,7 @@ interface IMultiSelectOptionSetOutputs extends IOutputs$1 {
|
|
|
909
1007
|
value?: number[];
|
|
910
1008
|
}
|
|
911
1009
|
|
|
912
|
-
declare const MultiSelectOptionSet: (props: IMultiSelectOptionSet) => JSX.Element;
|
|
1010
|
+
declare const MultiSelectOptionSet: (props: IMultiSelectOptionSet) => react_jsx_runtime.JSX.Element;
|
|
913
1011
|
|
|
914
1012
|
interface IOptions {
|
|
915
1013
|
onGetBindings: () => {
|
|
@@ -1131,7 +1229,7 @@ interface IControlStates {
|
|
|
1131
1229
|
isControlDisabled?: boolean;
|
|
1132
1230
|
}
|
|
1133
1231
|
|
|
1134
|
-
declare const NestedControlRenderer: (props: INestedControlRenderer) => JSX.Element;
|
|
1232
|
+
declare const NestedControlRenderer: (props: INestedControlRenderer) => react_jsx_runtime.JSX.Element;
|
|
1135
1233
|
|
|
1136
1234
|
interface IOptionSet extends IControl<IOptionSetParameters, IOptionSetOutputs, any, IComboBoxProps> {
|
|
1137
1235
|
}
|
|
@@ -1143,7 +1241,7 @@ interface IOptionSetOutputs extends IOutputs$1 {
|
|
|
1143
1241
|
value?: number;
|
|
1144
1242
|
}
|
|
1145
1243
|
|
|
1146
|
-
declare const OptionSet: (props: IOptionSet) => JSX.Element;
|
|
1244
|
+
declare const OptionSet: (props: IOptionSet) => react_jsx_runtime.JSX.Element;
|
|
1147
1245
|
|
|
1148
1246
|
interface ITextField extends IControl<ITextFieldParameters, ITextFieldOutputs, any, ITextFieldProps> {
|
|
1149
1247
|
}
|
|
@@ -1156,7 +1254,7 @@ interface ITextFieldOutputs extends IOutputs$1 {
|
|
|
1156
1254
|
value?: string;
|
|
1157
1255
|
}
|
|
1158
1256
|
|
|
1159
|
-
declare const TextField: (props: ITextField) => JSX.Element;
|
|
1257
|
+
declare const TextField: (props: ITextField) => react_jsx_runtime.JSX.Element;
|
|
1160
1258
|
|
|
1161
1259
|
interface ITwoOptions extends IControl<ITwoOptionsParameters, ITwoOptionsOutputs, any, IToggleProps> {
|
|
1162
1260
|
}
|
|
@@ -1168,7 +1266,7 @@ interface ITwoOptionsOutputs extends IOutputs$1 {
|
|
|
1168
1266
|
value?: boolean;
|
|
1169
1267
|
}
|
|
1170
1268
|
|
|
1171
|
-
declare const TwoOptions: (props: ITwoOptions) => JSX.Element;
|
|
1269
|
+
declare const TwoOptions: (props: ITwoOptions) => react_jsx_runtime.JSX.Element;
|
|
1172
1270
|
|
|
1173
1271
|
declare const getDefaultDurationTranslations: () => {
|
|
1174
1272
|
minute: {
|
|
@@ -1206,7 +1304,7 @@ interface IDurationOutputs extends IOutputs$1 {
|
|
|
1206
1304
|
value?: number;
|
|
1207
1305
|
}
|
|
1208
1306
|
|
|
1209
|
-
declare const Duration: (props: IDuration) => JSX.Element;
|
|
1307
|
+
declare const Duration: (props: IDuration) => react_jsx_runtime.JSX.Element;
|
|
1210
1308
|
|
|
1211
1309
|
interface IGridInlineRibbon extends IControl<IRibbonParameters, any, any, IGridInlineRibbonComponentProps> {
|
|
1212
1310
|
}
|
|
@@ -1321,6 +1419,7 @@ interface IInputs {
|
|
|
1321
1419
|
EnableOptionSetColors?: ComponentFramework.PropertyTypes.EnumProperty<"true" | "false">;
|
|
1322
1420
|
EnableAggregation?: ComponentFramework.PropertyTypes.EnumProperty<"true" | "false">;
|
|
1323
1421
|
EnableGrouping?: ComponentFramework.PropertyTypes.EnumProperty<"true" | "false">;
|
|
1422
|
+
EnableEditColumns?: ComponentFramework.PropertyTypes.EnumProperty<"true" | "false">;
|
|
1324
1423
|
EnableAutoSave?: ComponentFramework.PropertyTypes.EnumProperty<"true" | "false">;
|
|
1325
1424
|
EnableCommandBar?: ComponentFramework.PropertyTypes.EnumProperty<"true" | "false">;
|
|
1326
1425
|
EnableZebra?: ComponentFramework.PropertyTypes.EnumProperty<"true" | "false">;
|
|
@@ -23,6 +23,7 @@ interface IInputs {
|
|
|
23
23
|
EnableOptionSetColors?: ComponentFramework.PropertyTypes.EnumProperty<"true" | "false">;
|
|
24
24
|
EnableAggregation?: ComponentFramework.PropertyTypes.EnumProperty<"true" | "false">;
|
|
25
25
|
EnableGrouping?: ComponentFramework.PropertyTypes.EnumProperty<"true" | "false">;
|
|
26
|
+
EnableEditColumns?: ComponentFramework.PropertyTypes.EnumProperty<"true" | "false">;
|
|
26
27
|
EnableAutoSave?: ComponentFramework.PropertyTypes.EnumProperty<"true" | "false">;
|
|
27
28
|
EnableCommandBar?: ComponentFramework.PropertyTypes.EnumProperty<"true" | "false">;
|
|
28
29
|
EnableZebra?: ComponentFramework.PropertyTypes.EnumProperty<"true" | "false">;
|
|
@@ -126,6 +126,9 @@ class VirtualDatasetAdapter {
|
|
|
126
126
|
EnableQuickFind: {
|
|
127
127
|
raw: this._context.parameters.EnableQuickFind?.raw === 'true'
|
|
128
128
|
},
|
|
129
|
+
EnableEditColumns: {
|
|
130
|
+
raw: this._context.parameters.EnableEditColumns?.raw === 'true'
|
|
131
|
+
},
|
|
129
132
|
EnableAggregation: {
|
|
130
133
|
raw: this._context.parameters.EnableAggregation?.raw === 'true',
|
|
131
134
|
},
|
|
@@ -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, IDataset, Interceptors, IRawRecord, MemoryDataProvider } from \"@talxis/client-libraries\";\nimport { IDatasetControlParameters, IDatasetControlProps } from \"../../../components\";\nimport { DatasetControl, IDatasetControl } from \"../../dataset-control\";\n\ninterface IOutputs {\n DatasetControl?: any;\n}\n\ninterface IInputs {\n Data: ComponentFramework.PropertyTypes.StringProperty | {\n raw: IRawRecord[]\n }\n EntityMetadata: ComponentFramework.PropertyTypes.StringProperty;\n DataProvider: ComponentFramework.PropertyTypes.EnumProperty<\"Memory\" | \"FetchXml\">;\n EnableQuickFind?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n Columns?: ComponentFramework.PropertyTypes.StringProperty;\n Height?: ComponentFramework.PropertyTypes.StringProperty;\n RowHeight?: ComponentFramework.PropertyTypes.WholeNumberProperty;\n EnableEditing?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnablePagination?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableFiltering?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableSorting?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableNavigation?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableOptionSetColors?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableAggregation?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableGrouping?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableAutoSave?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableCommandBar?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableZebra?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableGroupedColumnsPinning?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnablePageSizeSwitcher?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableRecordCount?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n HomePageGridClientApiRibbonButtonId?: ComponentFramework.PropertyTypes.StringProperty;\n InlineRibbonButtonIds?: ComponentFramework.PropertyTypes.StringProperty;\n DefaultExpandedGroupLevel?: ComponentFramework.PropertyTypes.WholeNumberProperty;\n SelectableRows?: ComponentFramework.PropertyTypes.EnumProperty<\"none\" | \"single\" | \"multiple\">;\n GroupingType?: ComponentFramework.PropertyTypes.EnumProperty<\"nested\" | \"flat\">;\n IsLocalHarnessDebugMode?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n ClientApiWebresourceName?: ComponentFramework.PropertyTypes.StringProperty;\n ClientApiFunctionName?: ComponentFramework.PropertyTypes.StringProperty;\n}\n\ninterface IVirtualDatasetAdapterOptions {\n /**\n * Runs a promise that is awaited when the dataset control is initialized, before loading the first data.\n */\n onInitialize?: (dataset: IDataset) => Promise<void>;\n /**\n * If provided, this function is called when the dataset is initialized and awaited before loading first data.\n */\n CustomDataProviderClass?: new (...args: any) => IDataProvider;\n}\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 _context!: ComponentFramework.Context<IInputs, IOutputs>;\n private _dataset!: Dataset<IDataProvider>;\n private _container!: HTMLDivElement;\n private _options?: IVirtualDatasetAdapterOptions\n private _initialized: boolean = false;\n private _state: ComponentFramework.Dictionary = {};\n private _datasetControl!: IDatasetControl;\n\n constructor(options?: IVirtualDatasetAdapterOptions) {\n this._options = options;\n }\n\n public init(context: ComponentFramework.Context<IInputs, IOutputs>, container: HTMLDivElement, state: ComponentFramework.Dictionary) {\n this._container = container;\n this._context = context;\n this._state = state ?? {};\n if (!context.parameters.Data.raw) {\n this._createDummyDatasetControl();\n return this;\n }\n const dataProvider = this._getDataProviderInstance();\n this._dataset = new Dataset(dataProvider);\n //loads parameter columns\n this._dataset.setMetadata(this._getEntityMetadata());\n this._dataset.setDataSource(context.parameters.Data.raw);\n this._datasetControl = new DatasetControl({\n state: this._state,\n //@ts-ignore - typings\n controlId: this._context.utils._customControlProperties?.controlId,\n onGetPcfContext: () => this._context,\n onGetParameters: () => this._getDatasetControlParameters()\n });\n this._datasetControl.setInterceptor('onInitialize', async (parameters, defaultAction) => {\n //preloads dataset\n await defaultAction(parameters);\n //sets columns after preload\n this._dataset.setColumns(this._getColumns());\n await this._options?.onInitialize?.(this.getDataset());\n });\n if (this._context.parameters.Height?.raw === '100%') {\n this._container.classList.add(this._getFullTabStyles());\n }\n this._initialized = true;\n }\n\n /**\n * @param {?() => void} [onRenderEmptyData] - Only called when the data parameter is set to `null`. This should usually not happen since it's a required parameter, but Power Apps can pass null in certain scenarios (for example on a form with new record).\n */\n public updateView(context: ComponentFramework.Context<IInputs, IOutputs>, onRenderComponent: (datasetControlProps: Omit<IDatasetControlProps, 'onGetControlComponent'>) => void, onRenderEmptyData?: () => void) {\n this._context = context;\n if (!context.parameters.Data.raw) {\n return onRenderEmptyData?.()\n }\n //if not yet initialized, initialize, can happen if we start without data\n if (!this._initialized) {\n this.init(context, this._container, this._state);\n }\n return onRenderComponent({\n onGetDatasetControlInstance: () => this._datasetControl\n });\n }\n\n public getDataset(): Dataset<IDataProvider> {\n return this._dataset;\n }\n\n public getDatasetControl(): IDatasetControl {\n return this._datasetControl;\n }\n\n private _isEditingEnabled(): boolean {\n return this._context.parameters.EnableEditing?.raw === 'true';\n }\n\n private _isAutoSaveEnabled(): boolean {\n return this._context.parameters.EnableAutoSave?.raw === 'true';\n }\n\n private _isCommandBarEnabled(): boolean {\n return this._context.parameters.EnableCommandBar?.raw !== 'false'\n }\n\n private _createDummyDatasetControl() {\n this._datasetControl = new DatasetControl({\n state: this._state,\n //@ts-ignore - typings\n controlId: this._context.utils._customControlProperties?.controlId,\n onGetPcfContext: () => this._context,\n onGetParameters: () => {\n return {\n ...this._getDatasetControlParameters(),\n Grid: new Dataset(new MemoryDataProvider([], { PrimaryIdAttribute: 'id' }))\n }\n }\n });\n }\n\n private _getDatasetControlParameters(): IDatasetControlParameters {\n return {\n Grid: this.getDataset(),\n EnableEditing: {\n raw: this._isEditingEnabled()\n },\n EnableCommandBar: {\n raw: this._isCommandBarEnabled()\n },\n EnableAutoSave: {\n raw: this._isAutoSaveEnabled()\n },\n EnablePagination: {\n raw: this._context.parameters.EnablePagination?.raw !== 'false'\n },\n EnableFiltering: {\n raw: this._context.parameters.EnableFiltering?.raw !== 'false'\n },\n EnableSorting: {\n raw: this._context.parameters.EnableSorting?.raw !== 'false'\n },\n EnableNavigation: {\n raw: this._context.parameters.EnableNavigation?.raw !== 'false'\n },\n EnableOptionSetColors: {\n raw: this._context.parameters.EnableOptionSetColors?.raw === 'true'\n },\n SelectableRows: {\n raw: this._context.parameters.SelectableRows?.raw ?? 'single'\n },\n RowHeight: {\n raw: this._context.parameters.RowHeight?.raw ?? 42\n },\n //quick find is always handled by platform\n EnableQuickFind: {\n raw: this._context.parameters.EnableQuickFind?.raw === 'true'\n },\n EnableAggregation: {\n raw: this._context.parameters.EnableAggregation?.raw === 'true',\n },\n EnableGrouping: {\n raw: this._context.parameters.EnableGrouping?.raw === 'true'\n },\n Height: {\n raw: this._context.parameters.Height?.raw ?? null\n },\n InlineRibbonButtonIds: {\n raw: this._context.parameters.InlineRibbonButtonIds?.raw ?? null\n },\n EnableZebra: {\n raw: this._context.parameters.EnableZebra?.raw !== 'false'\n },\n DefaultExpandedGroupLevel: {\n raw: this._context.parameters.DefaultExpandedGroupLevel?.raw ?? null\n },\n EnableRecordCount: {\n raw: this._context.parameters.EnableRecordCount?.raw !== 'false'\n },\n EnableGroupedColumnsPinning: {\n raw: this._context.parameters.EnableGroupedColumnsPinning?.raw !== 'false'\n },\n EnablePageSizeSwitcher: {\n raw: this._context.parameters.EnablePageSizeSwitcher?.raw !== 'false'\n },\n GroupingType: {\n raw: this._context.parameters.GroupingType?.raw ?? 'nested'\n },\n IsLocalHarnessDebugMode: this._context.parameters.IsLocalHarnessDebugMode,\n ClientApiWebresourceName: {\n raw: this._context.parameters.ClientApiWebresourceName?.raw ?? null\n },\n ClientApiFunctionName: {\n raw: this._context.parameters.ClientApiFunctionName?.raw ?? null\n }\n }\n }\n\n private _getDataProviderInstance(): IDataProvider {\n if (this._options?.CustomDataProviderClass) {\n return new this._options.CustomDataProviderClass(this._context.parameters.Data.raw);\n }\n switch (this._context.parameters.DataProvider.raw) {\n case \"FetchXml\": {\n return new FetchXmlDataProvider(this._context.parameters.Data.raw as string)\n }\n case 'Memory': {\n return new MemoryDataProvider(this._context.parameters.Data.raw!, this._getEntityMetadata())\n }\n }\n }\n\n private _getColumns() {\n try {\n const parameterColumns = this._context.parameters.Columns?.raw;\n const columns: IColumn[] = Array.isArray(parameterColumns) ? parameterColumns : JSON.parse(parameterColumns ?? \"[]\");\n return this._getMergedColumns(columns);\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<string, IColumn>(this._dataset.columns.map((col: IColumn) => [col.name, col]));\n const stateColumnsMap = new Map<string, IColumn>(this._state?.DatasetControlState?.columns?.map((col: IColumn) => [col.name, col]) ?? []);\n //if we have state, return it\n if (stateColumnsMap.size > 0) {\n return [...stateColumnsMap.values()];\n }\n //no state, save to load from parameters\n else {\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 }\n return [...columnsMap.values()];\n }\n\n private _getEntityMetadata() {\n const parameterMetadata = this._context.parameters.EntityMetadata.raw;\n if (parameterMetadata) {\n return JSON.parse(parameterMetadata);\n }\n return {};\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, IDataset, Interceptors, IRawRecord, MemoryDataProvider } from \"@talxis/client-libraries\";\nimport { IDatasetControlParameters, IDatasetControlProps } from \"../../../components\";\nimport { DatasetControl, IDatasetControl } from \"../../dataset-control\";\n\ninterface IOutputs {\n DatasetControl?: any;\n}\n\ninterface IInputs {\n Data: ComponentFramework.PropertyTypes.StringProperty | {\n raw: IRawRecord[]\n }\n EntityMetadata: ComponentFramework.PropertyTypes.StringProperty;\n DataProvider: ComponentFramework.PropertyTypes.EnumProperty<\"Memory\" | \"FetchXml\">;\n EnableQuickFind?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n Columns?: ComponentFramework.PropertyTypes.StringProperty;\n Height?: ComponentFramework.PropertyTypes.StringProperty;\n RowHeight?: ComponentFramework.PropertyTypes.WholeNumberProperty;\n EnableEditing?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnablePagination?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableFiltering?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableSorting?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableNavigation?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableOptionSetColors?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableAggregation?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableGrouping?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableEditColumns?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableAutoSave?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableCommandBar?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableZebra?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableGroupedColumnsPinning?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnablePageSizeSwitcher?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n EnableRecordCount?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n HomePageGridClientApiRibbonButtonId?: ComponentFramework.PropertyTypes.StringProperty;\n InlineRibbonButtonIds?: ComponentFramework.PropertyTypes.StringProperty;\n DefaultExpandedGroupLevel?: ComponentFramework.PropertyTypes.WholeNumberProperty;\n SelectableRows?: ComponentFramework.PropertyTypes.EnumProperty<\"none\" | \"single\" | \"multiple\">;\n GroupingType?: ComponentFramework.PropertyTypes.EnumProperty<\"nested\" | \"flat\">;\n IsLocalHarnessDebugMode?: ComponentFramework.PropertyTypes.EnumProperty<\"true\" | \"false\">;\n ClientApiWebresourceName?: ComponentFramework.PropertyTypes.StringProperty;\n ClientApiFunctionName?: ComponentFramework.PropertyTypes.StringProperty;\n}\n\ninterface IVirtualDatasetAdapterOptions {\n /**\n * Runs a promise that is awaited when the dataset control is initialized, before loading the first data.\n */\n onInitialize?: (dataset: IDataset) => Promise<void>;\n /**\n * If provided, this function is called when the dataset is initialized and awaited before loading first data.\n */\n CustomDataProviderClass?: new (...args: any) => IDataProvider;\n}\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 _context!: ComponentFramework.Context<IInputs, IOutputs>;\n private _dataset!: Dataset<IDataProvider>;\n private _container!: HTMLDivElement;\n private _options?: IVirtualDatasetAdapterOptions\n private _initialized: boolean = false;\n private _state: ComponentFramework.Dictionary = {};\n private _datasetControl!: IDatasetControl;\n\n constructor(options?: IVirtualDatasetAdapterOptions) {\n this._options = options;\n }\n\n public init(context: ComponentFramework.Context<IInputs, IOutputs>, container: HTMLDivElement, state: ComponentFramework.Dictionary) {\n this._container = container;\n this._context = context;\n this._state = state ?? {};\n if (!context.parameters.Data.raw) {\n this._createDummyDatasetControl();\n return this;\n }\n const dataProvider = this._getDataProviderInstance();\n this._dataset = new Dataset(dataProvider);\n //loads parameter columns\n this._dataset.setMetadata(this._getEntityMetadata());\n this._dataset.setDataSource(context.parameters.Data.raw);\n this._datasetControl = new DatasetControl({\n state: this._state,\n //@ts-ignore - typings\n controlId: this._context.utils._customControlProperties?.controlId,\n onGetPcfContext: () => this._context,\n onGetParameters: () => this._getDatasetControlParameters()\n });\n this._datasetControl.setInterceptor('onInitialize', async (parameters, defaultAction) => {\n //preloads dataset\n await defaultAction(parameters);\n //sets columns after preload\n this._dataset.setColumns(this._getColumns());\n await this._options?.onInitialize?.(this.getDataset());\n });\n if (this._context.parameters.Height?.raw === '100%') {\n this._container.classList.add(this._getFullTabStyles());\n }\n this._initialized = true;\n }\n\n /**\n * @param {?() => void} [onRenderEmptyData] - Only called when the data parameter is set to `null`. This should usually not happen since it's a required parameter, but Power Apps can pass null in certain scenarios (for example on a form with new record).\n */\n public updateView(context: ComponentFramework.Context<IInputs, IOutputs>, onRenderComponent: (datasetControlProps: Omit<IDatasetControlProps, 'onGetControlComponent'>) => void, onRenderEmptyData?: () => void) {\n this._context = context;\n if (!context.parameters.Data.raw) {\n return onRenderEmptyData?.()\n }\n //if not yet initialized, initialize, can happen if we start without data\n if (!this._initialized) {\n this.init(context, this._container, this._state);\n }\n return onRenderComponent({\n onGetDatasetControlInstance: () => this._datasetControl\n });\n }\n\n public getDataset(): Dataset<IDataProvider> {\n return this._dataset;\n }\n\n public getDatasetControl(): IDatasetControl {\n return this._datasetControl;\n }\n\n private _isEditingEnabled(): boolean {\n return this._context.parameters.EnableEditing?.raw === 'true';\n }\n\n private _isAutoSaveEnabled(): boolean {\n return this._context.parameters.EnableAutoSave?.raw === 'true';\n }\n\n private _isCommandBarEnabled(): boolean {\n return this._context.parameters.EnableCommandBar?.raw !== 'false'\n }\n\n private _createDummyDatasetControl() {\n this._datasetControl = new DatasetControl({\n state: this._state,\n //@ts-ignore - typings\n controlId: this._context.utils._customControlProperties?.controlId,\n onGetPcfContext: () => this._context,\n onGetParameters: () => {\n return {\n ...this._getDatasetControlParameters(),\n Grid: new Dataset(new MemoryDataProvider([], { PrimaryIdAttribute: 'id' }))\n }\n }\n });\n }\n\n private _getDatasetControlParameters(): IDatasetControlParameters {\n return {\n Grid: this.getDataset(),\n EnableEditing: {\n raw: this._isEditingEnabled()\n },\n EnableCommandBar: {\n raw: this._isCommandBarEnabled()\n },\n EnableAutoSave: {\n raw: this._isAutoSaveEnabled()\n },\n EnablePagination: {\n raw: this._context.parameters.EnablePagination?.raw !== 'false'\n },\n EnableFiltering: {\n raw: this._context.parameters.EnableFiltering?.raw !== 'false'\n },\n EnableSorting: {\n raw: this._context.parameters.EnableSorting?.raw !== 'false'\n },\n EnableNavigation: {\n raw: this._context.parameters.EnableNavigation?.raw !== 'false'\n },\n EnableOptionSetColors: {\n raw: this._context.parameters.EnableOptionSetColors?.raw === 'true'\n },\n SelectableRows: {\n raw: this._context.parameters.SelectableRows?.raw ?? 'single'\n },\n RowHeight: {\n raw: this._context.parameters.RowHeight?.raw ?? 42\n },\n //quick find is always handled by platform\n EnableQuickFind: {\n raw: this._context.parameters.EnableQuickFind?.raw === 'true'\n },\n EnableEditColumns: {\n raw: this._context.parameters.EnableEditColumns?.raw === 'true'\n },\n EnableAggregation: {\n raw: this._context.parameters.EnableAggregation?.raw === 'true',\n },\n EnableGrouping: {\n raw: this._context.parameters.EnableGrouping?.raw === 'true'\n },\n Height: {\n raw: this._context.parameters.Height?.raw ?? null\n },\n InlineRibbonButtonIds: {\n raw: this._context.parameters.InlineRibbonButtonIds?.raw ?? null\n },\n EnableZebra: {\n raw: this._context.parameters.EnableZebra?.raw !== 'false'\n },\n DefaultExpandedGroupLevel: {\n raw: this._context.parameters.DefaultExpandedGroupLevel?.raw ?? null\n },\n EnableRecordCount: {\n raw: this._context.parameters.EnableRecordCount?.raw !== 'false'\n },\n EnableGroupedColumnsPinning: {\n raw: this._context.parameters.EnableGroupedColumnsPinning?.raw !== 'false'\n },\n EnablePageSizeSwitcher: {\n raw: this._context.parameters.EnablePageSizeSwitcher?.raw !== 'false'\n },\n GroupingType: {\n raw: this._context.parameters.GroupingType?.raw ?? 'nested'\n },\n IsLocalHarnessDebugMode: this._context.parameters.IsLocalHarnessDebugMode,\n ClientApiWebresourceName: {\n raw: this._context.parameters.ClientApiWebresourceName?.raw ?? null\n },\n ClientApiFunctionName: {\n raw: this._context.parameters.ClientApiFunctionName?.raw ?? null\n }\n }\n }\n\n private _getDataProviderInstance(): IDataProvider {\n if (this._options?.CustomDataProviderClass) {\n return new this._options.CustomDataProviderClass(this._context.parameters.Data.raw);\n }\n switch (this._context.parameters.DataProvider.raw) {\n case \"FetchXml\": {\n return new FetchXmlDataProvider(this._context.parameters.Data.raw as string)\n }\n case 'Memory': {\n return new MemoryDataProvider(this._context.parameters.Data.raw!, this._getEntityMetadata())\n }\n }\n }\n\n private _getColumns() {\n try {\n const parameterColumns = this._context.parameters.Columns?.raw;\n const columns: IColumn[] = Array.isArray(parameterColumns) ? parameterColumns : JSON.parse(parameterColumns ?? \"[]\");\n return this._getMergedColumns(columns);\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<string, IColumn>(this._dataset.columns.map((col: IColumn) => [col.name, col]));\n const stateColumnsMap = new Map<string, IColumn>(this._state?.DatasetControlState?.columns?.map((col: IColumn) => [col.name, col]) ?? []);\n //if we have state, return it\n if (stateColumnsMap.size > 0) {\n return [...stateColumnsMap.values()];\n }\n //no state, save to load from parameters\n else {\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 }\n return [...columnsMap.values()];\n }\n\n private _getEntityMetadata() {\n const parameterMetadata = this._context.parameters.EntityMetadata.raw;\n if (parameterMetadata) {\n return JSON.parse(parameterMetadata);\n }\n return {};\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,6 +1,7 @@
|
|
|
1
1
|
/// <reference types="@types/powerapps-component-framework" />
|
|
2
|
-
import { EventEmitter, ICommand, IDataset, IInterceptor } from "@talxis/client-libraries";
|
|
2
|
+
import { EventEmitter, ICommand, IDataset, IEventEmitter, IInterceptor } from "@talxis/client-libraries";
|
|
3
3
|
import { IDatasetControlParameters } from "../../components/DatasetControl/interfaces";
|
|
4
|
+
import { IEditColumns } from "./EditColumns";
|
|
4
5
|
interface IDatasetControlOptions {
|
|
5
6
|
state: ComponentFramework.Dictionary;
|
|
6
7
|
controlId: string;
|
|
@@ -9,12 +10,15 @@ interface IDatasetControlOptions {
|
|
|
9
10
|
}
|
|
10
11
|
export interface IDatasetControlEvents {
|
|
11
12
|
onRecordCommandsLoaded: () => void;
|
|
13
|
+
onRemountRequested: () => void;
|
|
14
|
+
onEditColumnsRequested: () => void;
|
|
12
15
|
onInitialized: () => void;
|
|
13
16
|
}
|
|
14
17
|
interface IDatasetControlInterceptors {
|
|
15
18
|
onInitialize: () => Promise<void>;
|
|
16
19
|
}
|
|
17
|
-
export interface IDatasetControl extends
|
|
20
|
+
export interface IDatasetControl extends IEventEmitter<IDatasetControlEvents> {
|
|
21
|
+
editColumns: IEditColumns;
|
|
18
22
|
setInterceptor<K extends keyof IDatasetControlInterceptors>(event: K, interceptor: IInterceptor<IDatasetControlInterceptors, K>): void;
|
|
19
23
|
isPaginationVisible(): boolean;
|
|
20
24
|
isRecordCountVisible(): boolean;
|
|
@@ -29,7 +33,12 @@ export interface IDatasetControl extends EventEmitter<IDatasetControlEvents> {
|
|
|
29
33
|
loadCommands(ids: string[]): Promise<void>;
|
|
30
34
|
retrieveRecordCommands(): ICommand[];
|
|
31
35
|
areCommandsLoaded(): boolean;
|
|
36
|
+
isEditColumnsVisible(): boolean;
|
|
37
|
+
isViewSwitcherVisible(): boolean;
|
|
38
|
+
isEditFiltersVisible(): boolean;
|
|
39
|
+
requestEditColumns(): void;
|
|
32
40
|
destroy(): void;
|
|
41
|
+
requestRemount(): void;
|
|
33
42
|
init(): Promise<void>;
|
|
34
43
|
getState(): ComponentFramework.Dictionary;
|
|
35
44
|
saveState(): void;
|
|
@@ -43,6 +52,7 @@ export declare class DatasetControl extends EventEmitter<IDatasetControlEvents>
|
|
|
43
52
|
private _debouncedLoadRecordCommands;
|
|
44
53
|
private _interceptors;
|
|
45
54
|
constructor(options: IDatasetControlOptions);
|
|
55
|
+
get editColumns(): IEditColumns;
|
|
46
56
|
setInterceptor<K extends keyof IDatasetControlInterceptors>(event: K, interceptor: IInterceptor<IDatasetControlInterceptors, K>): void;
|
|
47
57
|
isPaginationVisible(): boolean;
|
|
48
58
|
isRecordCountVisible(): boolean;
|
|
@@ -50,6 +60,10 @@ export declare class DatasetControl extends EventEmitter<IDatasetControlEvents>
|
|
|
50
60
|
isQuickFindVisible(): boolean;
|
|
51
61
|
isAutoSaveEnabled(): boolean;
|
|
52
62
|
isRibbonVisible(): boolean;
|
|
63
|
+
requestEditColumns(): void;
|
|
64
|
+
isViewSwitcherVisible(): boolean;
|
|
65
|
+
isEditColumnsVisible(): boolean;
|
|
66
|
+
isEditFiltersVisible(): boolean;
|
|
53
67
|
getHeight(): string | null;
|
|
54
68
|
getDataset(): IDataset;
|
|
55
69
|
getPcfContext(): ComponentFramework.Context<any, any>;
|
|
@@ -57,6 +71,7 @@ export declare class DatasetControl extends EventEmitter<IDatasetControlEvents>
|
|
|
57
71
|
retrieveRecordCommands(): ICommand[];
|
|
58
72
|
areCommandsLoaded(): boolean;
|
|
59
73
|
destroy(): void;
|
|
74
|
+
requestRemount(): void;
|
|
60
75
|
init(): Promise<void>;
|
|
61
76
|
getParameters(): IDatasetControlParameters;
|
|
62
77
|
getState(): ComponentFramework.Dictionary;
|