@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.
Files changed (93) hide show
  1. package/dist/components/DatasetControl/DatasetControl.d.ts +1 -2
  2. package/dist/components/DatasetControl/DatasetControl.js.map +1 -1
  3. package/dist/components/DatasetControl/EditColumns/ColumnSelector/ColumnSelector.d.ts +5 -0
  4. package/dist/components/DatasetControl/EditColumns/ColumnSelector/ColumnSelector.js +70 -0
  5. package/dist/components/DatasetControl/EditColumns/ColumnSelector/ColumnSelector.js.map +1 -0
  6. package/dist/components/DatasetControl/EditColumns/ColumnSelector/styles.d.ts +7 -0
  7. package/dist/components/DatasetControl/EditColumns/ColumnSelector/styles.js +14 -0
  8. package/dist/components/DatasetControl/EditColumns/ColumnSelector/styles.js.map +1 -0
  9. package/dist/components/DatasetControl/EditColumns/EditColumns.d.ts +5 -0
  10. package/dist/components/DatasetControl/EditColumns/EditColumns.js +66 -0
  11. package/dist/components/DatasetControl/EditColumns/EditColumns.js.map +1 -0
  12. package/dist/components/DatasetControl/EditColumns/ScopeSelector/ScopeSelector.d.ts +1 -0
  13. package/dist/components/DatasetControl/EditColumns/ScopeSelector/ScopeSelector.js +35 -0
  14. package/dist/components/DatasetControl/EditColumns/ScopeSelector/ScopeSelector.js.map +1 -0
  15. package/dist/components/DatasetControl/EditColumns/Selector/Selector.d.ts +9 -0
  16. package/dist/components/DatasetControl/EditColumns/Selector/Selector.js +58 -0
  17. package/dist/components/DatasetControl/EditColumns/Selector/Selector.js.map +1 -0
  18. package/dist/components/DatasetControl/EditColumns/SortableItem/SortableItem.d.ts +4 -0
  19. package/dist/components/DatasetControl/EditColumns/SortableItem/SortableItem.js +32 -0
  20. package/dist/components/DatasetControl/EditColumns/SortableItem/SortableItem.js.map +1 -0
  21. package/dist/components/DatasetControl/EditColumns/SortableItem/styles.d.ts +26 -0
  22. package/dist/components/DatasetControl/EditColumns/SortableItem/styles.js +32 -0
  23. package/dist/components/DatasetControl/EditColumns/SortableItem/styles.js.map +1 -0
  24. package/dist/components/DatasetControl/EditColumns/styles.d.ts +50 -0
  25. package/dist/components/DatasetControl/EditColumns/styles.js +56 -0
  26. package/dist/components/DatasetControl/EditColumns/styles.js.map +1 -0
  27. package/dist/components/DatasetControl/EditColumns/useEditColumns.d.ts +4 -0
  28. package/dist/components/DatasetControl/EditColumns/useEditColumns.js +9 -0
  29. package/dist/components/DatasetControl/EditColumns/useEditColumns.js.map +1 -0
  30. package/dist/components/DatasetControl/Filtering/DatasetColumnFiltering.js +1 -1
  31. package/dist/components/DatasetControl/Header/Header.js +83 -45
  32. package/dist/components/DatasetControl/Header/Header.js.map +1 -1
  33. package/dist/components/DatasetControl/QuickFind/QuickFind.js +89 -29
  34. package/dist/components/DatasetControl/QuickFind/QuickFind.js.map +1 -1
  35. package/dist/components/DatasetControl/QuickFind/styles.d.ts +16 -0
  36. package/dist/components/DatasetControl/QuickFind/styles.js +16 -0
  37. package/dist/components/DatasetControl/QuickFind/styles.js.map +1 -1
  38. package/dist/components/DatasetControl/interfaces.d.ts +27 -4
  39. package/dist/components/DatasetControl/translations.d.ts +48 -0
  40. package/dist/components/DatasetControl/translations.js +13 -1
  41. package/dist/components/DatasetControl/translations.js.map +1 -1
  42. package/dist/components/DateTime/DateTime.d.ts +1 -2
  43. package/dist/components/DateTime/components/Calendar.d.ts +1 -2
  44. package/dist/components/Decimal/Decimal.d.ts +1 -2
  45. package/dist/components/Duration/Duration.d.ts +1 -2
  46. package/dist/components/Grid/cells/cell/Cell.d.ts +2 -3
  47. package/dist/components/Grid/cells/cell/content/CellContent.d.ts +1 -2
  48. package/dist/components/Grid/cells/cell/notifications/Notifications.d.ts +1 -2
  49. package/dist/components/Grid/cells/selection-cell/SelectionCell.d.ts +1 -2
  50. package/dist/components/Grid/cells/selection-cell/SelectionCell.js.map +1 -1
  51. package/dist/components/Grid/cells/selection-cell/record-save-error-callout/RecordSaveErrorCallout.d.ts +1 -2
  52. package/dist/components/Grid/column-headers/column-header/ColumnHeader.d.ts +1 -2
  53. package/dist/components/Grid/column-headers/column-header/ColumnHeaderContextualMenu.d.ts +1 -1
  54. package/dist/components/Grid/column-headers/column-header/FilterCallout.d.ts +1 -2
  55. package/dist/components/Grid/column-headers/record-selection-checkbox/RecordSelectionCheckbox.d.ts +1 -2
  56. package/dist/components/Grid/errors/FullWidthCellRendererError/FullWidthCellRendererError.d.ts +1 -2
  57. package/dist/components/Grid/grid/Grid.d.ts +1 -2
  58. package/dist/components/Grid/loading/full-row/FullRowLoading.d.ts +1 -2
  59. package/dist/components/Grid/overlays/empty-records/EmptyRecordsOverlay.d.ts +1 -2
  60. package/dist/components/Grid/overlays/loading/LoadingOverlay.d.ts +1 -2
  61. package/dist/components/GridCellRenderer/GridCellRenderer.d.ts +1 -2
  62. package/dist/components/GridCellRenderer/ValueRenderer/ValueRenderer.d.ts +1 -2
  63. package/dist/components/GridCellRenderer/ValueRenderer/styles.d.ts +174 -110
  64. package/dist/components/GridCellRenderer/ValueRenderer/styles.js +1 -0
  65. package/dist/components/GridCellRenderer/ValueRenderer/styles.js.map +1 -1
  66. package/dist/components/Lookup/Lookup.d.ts +1 -2
  67. package/dist/components/Lookup/components/RecordCreator.d.ts +1 -2
  68. package/dist/components/Lookup/components/TargetSelector.d.ts +1 -2
  69. package/dist/components/MultiSelectOptionSet/ColofulOptions/ColorfulOptions.d.ts +1 -2
  70. package/dist/components/MultiSelectOptionSet/MultiSelectOptionSet.d.ts +1 -2
  71. package/dist/components/NestedControlRenderer/NestedControlRenderer.d.ts +1 -2
  72. package/dist/components/OptionSet/OptionSet.d.ts +1 -2
  73. package/dist/components/OptionSet/shared.d.ts +1 -2
  74. package/dist/components/Ribbon/styles.d.ts +1 -0
  75. package/dist/components/Ribbon/styles.js +1 -0
  76. package/dist/components/Ribbon/styles.js.map +1 -1
  77. package/dist/components/TextField/TextField.d.ts +1 -2
  78. package/dist/components/TwoOptions/TwoOptions.d.ts +1 -2
  79. package/dist/hooks/useShouldRemount.d.ts +1 -0
  80. package/dist/hooks/useShouldRemount.js +14 -0
  81. package/dist/hooks/useShouldRemount.js.map +1 -0
  82. package/dist/index.d.ts +117 -18
  83. package/dist/utils/dataset/adapters/VirtualDatasetAdapter.d.ts +1 -0
  84. package/dist/utils/dataset/adapters/VirtualDatasetAdapter.js +3 -0
  85. package/dist/utils/dataset/adapters/VirtualDatasetAdapter.js.map +1 -1
  86. package/dist/utils/dataset-control/DatasetControl.d.ts +17 -2
  87. package/dist/utils/dataset-control/DatasetControl.js +19 -0
  88. package/dist/utils/dataset-control/DatasetControl.js.map +1 -1
  89. package/dist/utils/dataset-control/EditColumns.d.ts +48 -0
  90. package/dist/utils/dataset-control/EditColumns.js +140 -0
  91. package/dist/utils/dataset-control/EditColumns.js.map +1 -0
  92. package/dist/utils/theme/components/ThemeWrapper.d.ts +1 -1
  93. package/package.json +9 -4
@@ -19,6 +19,7 @@ const getMultilineStyles = () => {
19
19
  return {
20
20
  whiteSpace: 'normal',
21
21
  display: '-webkit-box',
22
+ //@ts-ignore
22
23
  '-webkit-box-orient': 'vertical',
23
24
  //@ts-ignore
24
25
  wordBreak: 'auto-phrase',
@@ -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 ...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 '-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;YACD,GAAG,WAAW,GAAG,kBAAkB,EAAE,GAAG,EAAE;AAC9C,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;AACtB,QAAA,oBAAoB,EAAE,UAAU;;AAEhC,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,oBAAoB,EAAE,GAAG;AACzB,QAAA,UAAU,EAAE,QAAQ;KACvB,CAAA;AACL,CAAC;;;;"}
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,3 +1,2 @@
1
- /// <reference types="react" />
2
1
  import { ILookup } from "./interfaces";
3
- export declare const Lookup: (props: ILookup) => JSX.Element;
2
+ export declare const Lookup: (props: ILookup) => import("react/jsx-runtime").JSX.Element;
@@ -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,3 +1,2 @@
1
- /// <reference types="react" />
2
1
  import { IOptionSet } from './interfaces';
3
- export declare const OptionSet: (props: IOptionSet) => JSX.Element;
2
+ export declare const OptionSet: (props: IOptionSet) => 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,6 +1,7 @@
1
1
  export declare const getRibbonStyles: () => import("@fluentui/react").IProcessedStyleSet<{
2
2
  container: {
3
3
  flex: number;
4
+ minWidth: number;
4
5
  };
5
6
  shimmerRoot: {
6
7
  width: string;
@@ -4,6 +4,7 @@ const getRibbonStyles = () => {
4
4
  return mergeStyleSets({
5
5
  container: {
6
6
  flex: 1,
7
+ minWidth: 0,
7
8
  },
8
9
  shimmerRoot: {
9
10
  width: '100%',
@@ -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;AACV,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;;;;"}
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;;;;"}
@@ -1,3 +1,2 @@
1
- /// <reference types="react" />
2
1
  import { ITextField } from './interfaces';
3
- export declare const TextField: (props: ITextField) => JSX.Element;
2
+ export declare const TextField: (props: ITextField) => import("react/jsx-runtime").JSX.Element;
@@ -1,3 +1,2 @@
1
- /// <reference types="react" />
2
1
  import { ITwoOptions } from './interfaces';
3
- export declare const TwoOptions: (props: ITwoOptions) => JSX.Element;
2
+ export declare const TwoOptions: (props: ITwoOptions) => import("react/jsx-runtime").JSX.Element;
@@ -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, EventEmitter, IInterceptor, ICommand, AggregationFunction, IColumn, IRecord, Dataset, IDataProvider, IRawRecord, IEventEmitter } from '@talxis/client-libraries';
5
- import { ITheme as ITheme$1, ThemeProviderProps, IShimmerProps, IButtonProps, IMessageBarProps, ILabelProps, IIconProps, ITextProps, ILinkProps, IImageProps, ISpinnerProps, IMessageBar, IToggleProps } from '@fluentui/react';
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 EventEmitter<IDatasetControlEvents> {
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
- textFieldProps: ITextFieldProps;
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 EventEmitter<IDatasetControlEvents> {
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;