@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
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { IEditColumns } from "../../../utils/dataset-control/EditColumns";
3
+ export declare const EditColumnsContext: React.Context<IEditColumns>;
4
+ export declare const useEditColumns: () => IEditColumns;
@@ -0,0 +1,9 @@
1
+ import React, { useContext } from 'react';
2
+
3
+ const EditColumnsContext = React.createContext(null);
4
+ const useEditColumns = () => {
5
+ return useContext(EditColumnsContext);
6
+ };
7
+
8
+ export { EditColumnsContext, useEditColumns };
9
+ //# sourceMappingURL=useEditColumns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEditColumns.js","sources":["../../../../src/components/DatasetControl/EditColumns/useEditColumns.ts"],"sourcesContent":["import React from \"react\";\nimport { useContext } from \"react\"\nimport { IEditColumns } from \"../../../utils/dataset-control/EditColumns\";\n\nexport const EditColumnsContext = React.createContext<IEditColumns>(null as any);\n\nexport const useEditColumns = () => {\n return useContext(EditColumnsContext);\n}"],"names":[],"mappings":";;AAIa,MAAA,kBAAkB,GAAG,KAAK,CAAC,aAAa,CAAe,IAAW,EAAE;AAE1E,MAAM,cAAc,GAAG,MAAK;AAC/B,IAAA,OAAO,UAAU,CAAC,kBAAkB,CAAC,CAAC;AAC1C;;;;"}
@@ -6,8 +6,8 @@ import { DatasetColumnFilteringModel } from './DatasetColumnFilteringModel.js';
6
6
  import { useRerender } from '@talxis/react-components';
7
7
  import { getDatasetColumnFilteringStyles } from './styles.js';
8
8
  import { useDebouncedCallback } from 'use-debounce';
9
- import { useEventEmitter } from '../../../hooks/useEventEmitter.js';
10
9
  import { useControl } from '../../../hooks/useControl.js';
10
+ import { useEventEmitter } from '../../../hooks/useEventEmitter.js';
11
11
  import { OptionSet } from '../../OptionSet/OptionSet.js';
12
12
  import { NestedControlRenderer } from '../../NestedControlRenderer/NestedControlRenderer.js';
13
13
 
@@ -1,21 +1,25 @@
1
- import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
2
- import { MessageBarType, MessageBar } from '@fluentui/react';
1
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
+ import { CommandBarButton, MessageBarType, MessageBar } from '@fluentui/react';
3
3
  import { useModel } from '../useModel.js';
4
- import { useMemo } from 'react';
4
+ import { useMemo, useState } from 'react';
5
5
  import { getHeaderStyles } from './styles.js';
6
6
  import { useRerender } from '@talxis/react-components';
7
7
  import { QuickFind } from '../QuickFind/QuickFind.js';
8
8
  import { Ribbon } from '../../Ribbon/Ribbon.js';
9
9
  import { useEventEmitter } from '../../../hooks/useEventEmitter.js';
10
+ import { EditColumns } from '../EditColumns/EditColumns.js';
10
11
 
11
12
  const Header = (props) => {
12
13
  const model = useModel();
14
+ const labels = model.getLabels();
13
15
  const datasetControl = model.getDatasetControl();
14
16
  const dataset = datasetControl.getDataset();
15
17
  const rerender = useRerender();
16
18
  const styles = useMemo(() => getHeaderStyles(), []);
19
+ const [isEditColumnsPanelVisible, setIsEditColumnsPanelVisible] = useState(false);
17
20
  useEventEmitter(dataset, 'onLoading', rerender);
18
21
  useEventEmitter(datasetControl, 'onRecordCommandsLoaded', rerender);
22
+ useEventEmitter(datasetControl, 'onEditColumnsRequested', () => setIsEditColumnsPanelVisible(true));
19
23
  const isHeaderVisible = () => {
20
24
  switch (true) {
21
25
  case datasetControl.isQuickFindVisible():
@@ -29,6 +33,22 @@ const Header = (props) => {
29
33
  }
30
34
  }
31
35
  };
36
+ //will not be needed once we have a custom edit columns button in the ribbon
37
+ const getRightSideCommands = (isEditColumnsVisible, isEditFiltersVisible) => {
38
+ return [
39
+ ...(isEditColumnsVisible ? [{
40
+ key: 'column',
41
+ text: labels['edit-columns'](),
42
+ iconProps: { iconName: 'ColumnOptions' },
43
+ onClick: () => setIsEditColumnsPanelVisible(true)
44
+ }] : []),
45
+ ...(isEditFiltersVisible ? [{
46
+ key: 'filter',
47
+ text: labels['edit-filters'](),
48
+ iconProps: { iconName: 'Filter' }
49
+ }] : [])
50
+ ];
51
+ };
32
52
  return props.onRenderHeader({
33
53
  headerContainerProps: {
34
54
  className: styles.header
@@ -37,48 +57,66 @@ const Header = (props) => {
37
57
  onRenderRibbonQuickFindWrapper: (props, defaultRender) => defaultRender(props),
38
58
  onRenderUnsavedChangesMessageBar: (props, defaultRender) => defaultRender(props)
39
59
  }, (props) => {
40
- if (!isHeaderVisible()) {
41
- return jsx(Fragment, {});
42
- }
43
- return jsxs("div", { ...props.headerContainerProps, children: [props.onRenderRibbonQuickFindWrapper({
44
- ribbonQuickFindContainerProps: {
45
- className: styles.ribbonQuickFindContainer
46
- },
47
- isRibbonVisible: datasetControl.isRibbonVisible(),
48
- isQuickFindVisible: datasetControl.isQuickFindVisible(),
49
- onRenderQuickFind: (props, defaultRender) => defaultRender(props),
50
- onRenderRibbon: (props, defaultRender) => defaultRender(props)
51
- }, (props) => {
52
- return jsxs("div", { ...props.ribbonQuickFindContainerProps, children: [props.isRibbonVisible &&
53
- jsx(Ribbon, { context: {
54
- ...datasetControl.getPcfContext(),
55
- mode: {
56
- ...datasetControl.getPcfContext().mode,
57
- isControlDisabled: dataset.loading
58
- }
59
- }, onOverrideComponentProps: (ribbonProps) => {
60
- return {
61
- ...ribbonProps,
62
- onRender: props.onRenderRibbon
63
- };
64
- }, parameters: {
65
- Commands: {
66
- raw: datasetControl.retrieveRecordCommands(),
67
- },
68
- Loading: {
69
- raw: !datasetControl.areCommandsLoaded()
70
- }
71
- } }), props.isQuickFindVisible &&
72
- jsx(QuickFind, { onRenderQuickFind: props.onRenderQuickFind })] });
73
- }), dataset.error &&
74
- props.onRenderErrorMessageBar({
75
- messageBarProps: {
76
- messageBarType: MessageBarType.error
77
- },
78
- onRenderMessageBar: (props, defaultRender) => defaultRender(props)
79
- }, (props) => {
80
- return jsx(MessageBar, { ...props.messageBarProps, children: dataset.errorMessage });
81
- })] });
60
+ return jsxs(Fragment, { children: [isHeaderVisible() &&
61
+ jsxs("div", { ...props.headerContainerProps, children: [props.onRenderRibbonQuickFindWrapper({
62
+ ribbonQuickFindContainerProps: {
63
+ className: styles.ribbonQuickFindContainer
64
+ },
65
+ isRibbonVisible: datasetControl.isRibbonVisible(),
66
+ isQuickFindVisible: datasetControl.isQuickFindVisible(),
67
+ isEditColumnsVisible: datasetControl.isEditColumnsVisible(),
68
+ isViewSwitcherVisible: datasetControl.isViewSwitcherVisible(),
69
+ isEditFiltersVisible: datasetControl.isEditFiltersVisible(),
70
+ onRenderQuickFind: (props, defaultRender) => defaultRender(props),
71
+ onRenderRibbon: (props, defaultRender) => defaultRender(props)
72
+ }, (props) => {
73
+ return jsxs("div", { ...props.ribbonQuickFindContainerProps, children: [props.isViewSwitcherVisible &&
74
+ jsx(CommandBarButton, { text: "Current View" }), props.isRibbonVisible &&
75
+ jsx(Ribbon, { context: {
76
+ ...datasetControl.getPcfContext(),
77
+ mode: {
78
+ ...datasetControl.getPcfContext().mode,
79
+ isControlDisabled: dataset.loading
80
+ }
81
+ }, onOverrideComponentProps: (ribbonProps) => {
82
+ return {
83
+ ...ribbonProps,
84
+ onRender: (ribbonProps, defaultRender) => props.onRenderRibbon({
85
+ ...ribbonProps,
86
+ onRenderCommandBar: (commandBarProps, defaultRender) => {
87
+ return defaultRender({
88
+ ...commandBarProps,
89
+ styles: {
90
+ ...commandBarProps.styles,
91
+ primarySet: {
92
+ justifyContent: props.isViewSwitcherVisible ? 'flex-end' : 'flex-start'
93
+ }
94
+ },
95
+ items: [...commandBarProps.items, ...(props.isViewSwitcherVisible ? getRightSideCommands(props.isEditColumnsVisible, props.isEditFiltersVisible) : [])],
96
+ farItems: !props.isViewSwitcherVisible ? getRightSideCommands(props.isEditColumnsVisible, props.isEditFiltersVisible) : []
97
+ });
98
+ }
99
+ }, defaultRender)
100
+ };
101
+ }, parameters: {
102
+ Commands: {
103
+ raw: datasetControl.retrieveRecordCommands(),
104
+ },
105
+ Loading: {
106
+ raw: !datasetControl.areCommandsLoaded()
107
+ }
108
+ } }), props.isQuickFindVisible &&
109
+ jsx(QuickFind, { onRenderQuickFind: props.onRenderQuickFind })] });
110
+ }), dataset.error &&
111
+ props.onRenderErrorMessageBar({
112
+ messageBarProps: {
113
+ messageBarType: MessageBarType.error
114
+ },
115
+ onRenderMessageBar: (props, defaultRender) => defaultRender(props)
116
+ }, (props) => {
117
+ return jsx(MessageBar, { ...props.messageBarProps, children: dataset.errorMessage });
118
+ })] }), isEditColumnsPanelVisible &&
119
+ jsx("div", { style: { position: 'absolute' }, children: jsx(EditColumns, { onDismiss: () => setIsEditColumnsPanelVisible(false) }) })] });
82
120
  });
83
121
  };
84
122
 
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sources":["../../../../src/components/DatasetControl/Header/Header.tsx"],"sourcesContent":["import { MessageBar, MessageBarType } from \"@fluentui/react\";\nimport { IComponentProps } from \"../interfaces\";\nimport { useModel } from \"../useModel\";\nimport { useMemo } from \"react\";\nimport { getHeaderStyles } from \"./styles\";\nimport { useRerender } from \"@talxis/react-components\";\nimport { QuickFind } from \"../QuickFind/QuickFind\";\nimport { Ribbon } from \"../../Ribbon/Ribbon\";\nimport { useEventEmitter } from \"../../../hooks/useEventEmitter\";\nimport { IDataProviderEventListeners } from \"@talxis/client-libraries\";\nimport { IDatasetControlEvents } from \"../../../utils/dataset-control\";\n\nexport const Header = (props: { onRenderHeader: IComponentProps['onRenderHeader'] }) => {\n const model = useModel();\n const datasetControl = model.getDatasetControl();\n const dataset = datasetControl.getDataset();\n const rerender = useRerender();\n const styles = useMemo(() => getHeaderStyles(), []);\n useEventEmitter<IDataProviderEventListeners>(dataset, 'onLoading', rerender);\n useEventEmitter<IDatasetControlEvents>(datasetControl, 'onRecordCommandsLoaded', rerender);\n\n const isHeaderVisible = () => {\n switch (true) {\n case datasetControl.isQuickFindVisible():\n case dataset.error:\n case datasetControl.isRibbonVisible():\n {\n return true;\n }\n default: {\n return false;\n }\n }\n }\n\n return props.onRenderHeader({\n headerContainerProps: {\n className: styles.header\n },\n onRenderErrorMessageBar: (props, defaultRender) => defaultRender(props),\n onRenderRibbonQuickFindWrapper: (props, defaultRender) => defaultRender(props),\n onRenderUnsavedChangesMessageBar: (props, defaultRender) => defaultRender(props)\n }, (props) => {\n if (!isHeaderVisible()) {\n return <></>\n }\n return <div {...props.headerContainerProps}>\n {props.onRenderRibbonQuickFindWrapper({\n ribbonQuickFindContainerProps: {\n className: styles.ribbonQuickFindContainer\n },\n isRibbonVisible: datasetControl.isRibbonVisible(),\n isQuickFindVisible: datasetControl.isQuickFindVisible(),\n onRenderQuickFind: (props, defaultRender) => defaultRender(props),\n onRenderRibbon: (props, defaultRender) => defaultRender(props)\n }, (props) => {\n return <div {...props.ribbonQuickFindContainerProps}>\n {props.isRibbonVisible &&\n <Ribbon\n context={{\n ...datasetControl.getPcfContext(),\n mode: {\n ...datasetControl.getPcfContext().mode,\n isControlDisabled: dataset.loading\n }\n }}\n onOverrideComponentProps={(ribbonProps) => {\n return {\n ...ribbonProps,\n onRender: props.onRenderRibbon\n }\n }}\n parameters={{\n Commands: {\n raw: datasetControl.retrieveRecordCommands(),\n },\n Loading: {\n raw: !datasetControl.areCommandsLoaded()\n }\n }}\n />\n }\n {props.isQuickFindVisible &&\n <QuickFind\n onRenderQuickFind={props.onRenderQuickFind} />\n }\n </div>\n })}\n {dataset.error &&\n props.onRenderErrorMessageBar({\n messageBarProps: {\n messageBarType: MessageBarType.error\n },\n onRenderMessageBar: (props, defaultRender) => defaultRender(props)\n\n }, (props) => {\n return <MessageBar {...props.messageBarProps}>\n {dataset.errorMessage}\n </MessageBar>\n })\n }\n </div>\n })\n}"],"names":["_jsx","_jsxs"],"mappings":";;;;;;;;;;AAYa,MAAA,MAAM,GAAG,CAAC,KAA4D,KAAI;AACnF,IAAA,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;AACzB,IAAA,MAAM,cAAc,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC;AACjD,IAAA,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,EAAE,CAAC;AAC5C,IAAA,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;AAC/B,IAAA,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,eAAe,EAAE,EAAE,EAAE,CAAC,CAAC;AACpD,IAAA,eAAe,CAA8B,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;AAC7E,IAAA,eAAe,CAAwB,cAAc,EAAE,wBAAwB,EAAE,QAAQ,CAAC,CAAC;IAE3F,MAAM,eAAe,GAAG,MAAK;AACzB,QAAA,QAAQ,IAAI;AACR,YAAA,KAAK,cAAc,CAAC,kBAAkB,EAAE,CAAC;YACzC,KAAK,OAAO,CAAC,KAAK,CAAC;YACnB,KAAK,cAAc,CAAC,eAAe,EAAE;AACjC,gBAAA;AACI,oBAAA,OAAO,IAAI,CAAC;AACf,iBAAA;AACL,YAAA,SAAS;AACL,gBAAA,OAAO,KAAK,CAAC;AAChB,aAAA;AACJ,SAAA;AACL,KAAC,CAAA;IAED,OAAO,KAAK,CAAC,cAAc,CAAC;AACxB,QAAA,oBAAoB,EAAE;YAClB,SAAS,EAAE,MAAM,CAAC,MAAM;AAC3B,SAAA;QACD,uBAAuB,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,aAAa,CAAC,KAAK,CAAC;QACvE,8BAA8B,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,aAAa,CAAC,KAAK,CAAC;QAC9E,gCAAgC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,aAAa,CAAC,KAAK,CAAC;KACnF,EAAE,CAAC,KAAK,KAAI;QACT,IAAI,CAAC,eAAe,EAAE,EAAE;AACpB,YAAA,OAAOA,iBAAK,CAAA;AACf,SAAA;QACD,OAAOC,IAAA,CAAA,KAAA,EAAA,EAAA,GAAS,KAAK,CAAC,oBAAoB,aACrC,KAAK,CAAC,8BAA8B,CAAC;AAClC,oBAAA,6BAA6B,EAAE;wBAC3B,SAAS,EAAE,MAAM,CAAC,wBAAwB;AAC7C,qBAAA;AACD,oBAAA,eAAe,EAAE,cAAc,CAAC,eAAe,EAAE;AACjD,oBAAA,kBAAkB,EAAE,cAAc,CAAC,kBAAkB,EAAE;oBACvD,iBAAiB,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,aAAa,CAAC,KAAK,CAAC;oBACjE,cAAc,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,aAAa,CAAC,KAAK,CAAC;iBACjE,EAAE,CAAC,KAAK,KAAI;AACT,oBAAA,OAAOA,iBAAS,KAAK,CAAC,6BAA6B,EAC9C,QAAA,EAAA,CAAA,KAAK,CAAC,eAAe;gCAClBD,GAAC,CAAA,MAAM,EACH,EAAA,OAAO,EAAE;wCACL,GAAG,cAAc,CAAC,aAAa,EAAE;AACjC,wCAAA,IAAI,EAAE;AACF,4CAAA,GAAG,cAAc,CAAC,aAAa,EAAE,CAAC,IAAI;4CACtC,iBAAiB,EAAE,OAAO,CAAC,OAAO;AACrC,yCAAA;AACJ,qCAAA,EACD,wBAAwB,EAAE,CAAC,WAAW,KAAI;wCACtC,OAAO;AACH,4CAAA,GAAG,WAAW;4CACd,QAAQ,EAAE,KAAK,CAAC,cAAc;yCACjC,CAAA;qCACJ,EACD,UAAU,EAAE;AACR,wCAAA,QAAQ,EAAE;AACN,4CAAA,GAAG,EAAE,cAAc,CAAC,sBAAsB,EAAE;AAC/C,yCAAA;AACD,wCAAA,OAAO,EAAE;AACL,4CAAA,GAAG,EAAE,CAAC,cAAc,CAAC,iBAAiB,EAAE;AAC3C,yCAAA;qCACJ,EACH,CAAA,EAEL,KAAK,CAAC,kBAAkB;gCACrBA,GAAC,CAAA,SAAS,IACN,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAAI,CAAA,CAAA,EAAA,CAEpD,CAAA;AACV,iBAAC,CAAC,EACD,OAAO,CAAC,KAAK;oBACV,KAAK,CAAC,uBAAuB,CAAC;AAC1B,wBAAA,eAAe,EAAE;4BACb,cAAc,EAAE,cAAc,CAAC,KAAK;AACvC,yBAAA;wBACD,kBAAkB,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,aAAa,CAAC,KAAK,CAAC;qBAErE,EAAE,CAAC,KAAK,KAAI;wBACT,OAAOA,GAAA,CAAC,UAAU,EAAA,EAAA,GAAK,KAAK,CAAC,eAAe,EAAA,QAAA,EACvC,OAAO,CAAC,YAAY,EAAA,CACZ,CAAA;qBAChB,CAAC,IAEJ,CAAA;AACV,KAAC,CAAC,CAAA;AACN;;;;"}
1
+ {"version":3,"file":"Header.js","sources":["../../../../src/components/DatasetControl/Header/Header.tsx"],"sourcesContent":["import { CommandBarButton, MessageBar, MessageBarType } from \"@fluentui/react\";\nimport { IComponentProps } from \"../interfaces\";\nimport { useModel } from \"../useModel\";\nimport { useMemo, useState } from \"react\";\nimport { getHeaderStyles } from \"./styles\";\nimport { ICommandBarItemProps, useRerender } from \"@talxis/react-components\";\nimport { QuickFind } from \"../QuickFind/QuickFind\";\nimport { Ribbon } from \"../../Ribbon/Ribbon\";\nimport { useEventEmitter } from \"../../../hooks/useEventEmitter\";\nimport { IDataProviderEventListeners } from \"@talxis/client-libraries\";\nimport { IDatasetControlEvents } from \"../../../utils/dataset-control\";\nimport { EditColumns } from \"../EditColumns/EditColumns\";\n\nexport const Header = (props: { onRenderHeader: IComponentProps['onRenderHeader'] }) => {\n const model = useModel();\n const labels = model.getLabels();\n const datasetControl = model.getDatasetControl();\n const dataset = datasetControl.getDataset();\n const rerender = useRerender();\n const styles = useMemo(() => getHeaderStyles(), []);\n const [isEditColumnsPanelVisible, setIsEditColumnsPanelVisible] = useState<boolean>(false);\n useEventEmitter<IDataProviderEventListeners>(dataset, 'onLoading', rerender);\n useEventEmitter<IDatasetControlEvents>(datasetControl, 'onRecordCommandsLoaded', rerender);\n useEventEmitter<IDatasetControlEvents>(datasetControl, 'onEditColumnsRequested', () => setIsEditColumnsPanelVisible(true));\n\n const isHeaderVisible = () => {\n switch (true) {\n case datasetControl.isQuickFindVisible():\n case dataset.error:\n case datasetControl.isRibbonVisible():\n {\n return true;\n }\n default: {\n return false;\n }\n }\n }\n\n //will not be needed once we have a custom edit columns button in the ribbon\n const getRightSideCommands = (isEditColumnsVisible: boolean, isEditFiltersVisible: boolean): ICommandBarItemProps[] => {\n return [\n ...(isEditColumnsVisible ? [{\n key: 'column',\n text: labels['edit-columns'](),\n iconProps: { iconName: 'ColumnOptions' },\n onClick: () => setIsEditColumnsPanelVisible(true)\n }] : []),\n ...(isEditFiltersVisible ? [{\n key: 'filter',\n text: labels['edit-filters'](),\n iconProps: { iconName: 'Filter' }\n }] : [])];\n }\n\n return props.onRenderHeader({\n headerContainerProps: {\n className: styles.header\n },\n onRenderErrorMessageBar: (props, defaultRender) => defaultRender(props),\n onRenderRibbonQuickFindWrapper: (props, defaultRender) => defaultRender(props),\n onRenderUnsavedChangesMessageBar: (props, defaultRender) => defaultRender(props)\n }, (props) => {\n return <>\n {isHeaderVisible() &&\n <div {...props.headerContainerProps}>\n {props.onRenderRibbonQuickFindWrapper({\n ribbonQuickFindContainerProps: {\n className: styles.ribbonQuickFindContainer\n },\n isRibbonVisible: datasetControl.isRibbonVisible(),\n isQuickFindVisible: datasetControl.isQuickFindVisible(),\n isEditColumnsVisible: datasetControl.isEditColumnsVisible(),\n isViewSwitcherVisible: datasetControl.isViewSwitcherVisible(),\n isEditFiltersVisible: datasetControl.isEditFiltersVisible(),\n onRenderQuickFind: (props, defaultRender) => defaultRender(props),\n onRenderRibbon: (props, defaultRender) => defaultRender(props)\n }, (props) => {\n return <div {...props.ribbonQuickFindContainerProps}>\n {props.isViewSwitcherVisible &&\n <CommandBarButton text=\"Current View\" />\n }\n {props.isRibbonVisible &&\n <Ribbon\n context={{\n ...datasetControl.getPcfContext(),\n mode: {\n ...datasetControl.getPcfContext().mode,\n isControlDisabled: dataset.loading\n }\n }}\n onOverrideComponentProps={(ribbonProps) => {\n return {\n ...ribbonProps,\n onRender: (ribbonProps, defaultRender) => props.onRenderRibbon({\n ...ribbonProps,\n onRenderCommandBar: (commandBarProps, defaultRender) => {\n return defaultRender({\n ...commandBarProps,\n styles: {\n ...commandBarProps.styles,\n primarySet: {\n justifyContent: props.isViewSwitcherVisible ? 'flex-end' : 'flex-start'\n }\n },\n items: [...commandBarProps.items, ...(props.isViewSwitcherVisible ? getRightSideCommands(props.isEditColumnsVisible, props.isEditFiltersVisible) : [])],\n farItems: !props.isViewSwitcherVisible ? getRightSideCommands(props.isEditColumnsVisible, props.isEditFiltersVisible) : []\n })\n }\n }, defaultRender)\n }\n }}\n parameters={{\n Commands: {\n raw: datasetControl.retrieveRecordCommands(),\n },\n Loading: {\n raw: !datasetControl.areCommandsLoaded()\n }\n }}\n />\n }\n {props.isQuickFindVisible &&\n <QuickFind\n onRenderQuickFind={props.onRenderQuickFind} />\n }\n </div>\n })}\n {dataset.error &&\n props.onRenderErrorMessageBar({\n messageBarProps: {\n messageBarType: MessageBarType.error\n },\n onRenderMessageBar: (props, defaultRender) => defaultRender(props)\n\n }, (props) => {\n return <MessageBar {...props.messageBarProps}>\n {dataset.errorMessage}\n </MessageBar>\n })\n }\n </div>\n }\n {isEditColumnsPanelVisible &&\n <div style={{ position: 'absolute' }}>\n <EditColumns\n onDismiss={() => setIsEditColumnsPanelVisible(false)} />\n </div>\n }\n </>\n })\n}"],"names":["_jsxs","_Fragment","_jsx"],"mappings":"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"}
@@ -1,8 +1,9 @@
1
- import { jsx } from 'react/jsx-runtime';
1
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import { useState, useMemo, useEffect } from 'react';
3
3
  import { useModel } from '../useModel.js';
4
4
  import { TextField } from '@talxis/react-components';
5
5
  import { getQuickFindStyles } from './styles.js';
6
+ import { Callout, Text, FontIcon } from '@fluentui/react';
6
7
 
7
8
  const QuickFind = (props) => {
8
9
  const [query, setQuery] = useState('');
@@ -11,10 +12,15 @@ const QuickFind = (props) => {
11
12
  const dataProvider = dataset.getDataProvider();
12
13
  const labels = model.getLabels();
13
14
  const styles = useMemo(() => getQuickFindStyles(), []);
15
+ const id = useMemo(() => `quickfind-${crypto.randomUUID()}`, []);
16
+ const [isCalloutVisible, setIsCalloutVisible] = useState(false);
17
+ const quickFindColumns = dataProvider.getQuickFindColumns();
18
+ const isLikeQuery = query.startsWith('*');
14
19
  const onSearch = (query) => {
15
20
  dataProvider.executeWithUnsavedChangesBlocker(() => {
16
21
  setQuery(query ?? '');
17
22
  dataset.setSearchQuery?.(query ?? '');
23
+ setIsCalloutVisible(false);
18
24
  dataset.refresh();
19
25
  });
20
26
  };
@@ -27,36 +33,90 @@ const QuickFind = (props) => {
27
33
  setQuery(dataset.getSearchQuery?.() ?? '');
28
34
  }, [dataset.getSearchQuery?.()]);
29
35
  return props.onRenderQuickFind({
36
+ containerProps: {
37
+ id: id,
38
+ },
30
39
  onRenderTextField: (props, defaultRender) => defaultRender(props),
31
- textFieldProps: {
32
- value: query,
33
- placeholder: `${labels.search()} ${dataset.getMetadata()?.DisplayCollectionName ?? labels.records()}...`,
34
- styles: {
35
- root: styles.textFieldRoot,
36
- fieldGroup: styles.fieldGroup
37
- },
38
- disabled: dataset.loading,
39
- onChange: (e, newValue) => setQuery(newValue ?? ''),
40
- onKeyUp: onKeyUp,
41
- ...(query ? {
42
- deleteButtonProps: {
43
- key: 'delete',
44
- iconProps: {
45
- iconName: 'Cancel'
46
- },
47
- onClick: () => onSearch(undefined)
48
- }
49
- } : {}),
50
- suffixItems: [{
51
- key: 'search',
52
- iconProps: {
53
- iconName: 'Search'
54
- },
55
- onClick: () => onSearch(query)
56
- }]
57
- }
40
+ onRenderCalloutContainer: (props, defaultRender) => defaultRender(props),
58
41
  }, (props) => {
59
- return jsx(TextField, { ...props.textFieldProps });
42
+ return jsxs("div", { ...props.containerProps, children: [props.onRenderTextField({
43
+ value: query,
44
+ placeholder: `${labels.search()} ${dataset.getMetadata()?.DisplayCollectionName ?? labels.records()}...`,
45
+ styles: {
46
+ root: styles.textFieldRoot,
47
+ fieldGroup: styles.fieldGroup
48
+ },
49
+ disabled: dataset.loading || quickFindColumns.length === 0,
50
+ onClick: () => setIsCalloutVisible(true),
51
+ onBlur: () => setIsCalloutVisible(false),
52
+ onChange: (e, newValue) => setQuery(newValue ?? ''),
53
+ onKeyUp: onKeyUp,
54
+ ...(query ? {
55
+ deleteButtonProps: {
56
+ key: 'delete',
57
+ iconProps: {
58
+ iconName: 'Cancel'
59
+ },
60
+ onClick: () => onSearch(undefined)
61
+ }
62
+ } : {}),
63
+ suffixItems: [{
64
+ key: 'search',
65
+ iconProps: {
66
+ iconName: 'Search'
67
+ },
68
+ onClick: () => onSearch(query)
69
+ }]
70
+ }, (props) => {
71
+ return jsx(TextField, { ...props });
72
+ }), props.onRenderCalloutContainer({
73
+ style: { position: 'absolute' },
74
+ onRenderCallout: (props, defaultRender) => defaultRender(props),
75
+ isVisible: isCalloutVisible
76
+ }, (props) => {
77
+ if (props.isVisible) {
78
+ const { onRenderCallout, isVisible, ...divProps } = props;
79
+ return jsx("div", { ...divProps, children: onRenderCallout({
80
+ target: `#${id}`,
81
+ isVisible: isCalloutVisible && (quickFindColumns.length > 0 || isLikeQuery),
82
+ calloutMaxWidth: 250,
83
+ isLikeQuery: isLikeQuery,
84
+ styles: {
85
+ calloutMain: styles.calloutMain
86
+ },
87
+ hidden: false,
88
+ onDismiss: () => setIsCalloutVisible(false),
89
+ onRenderLikeOperatorWarning: (props, defaultRender) => defaultRender(props),
90
+ onRenderBegingsWithFilterInfo: (props, defaultRender) => defaultRender(props),
91
+ onRenderColumnsList: (props, defaultRender) => defaultRender(props)
92
+ }, (props) => {
93
+ const { onRenderLikeOperatorWarning, onRenderBegingsWithFilterInfo, onRenderColumnsList, isLikeQuery, ...calloutProps } = props;
94
+ return jsxs(Callout, { ...calloutProps, children: [props.isLikeQuery &&
95
+ props.onRenderLikeOperatorWarning({}, (props) => {
96
+ return jsxs(Text, { ...props, children: [jsx(FontIcon, { className: styles.calloutWarningIcon, iconName: "Warning" }), labels["quickfind-like-warning"]()] });
97
+ }), !props.isLikeQuery &&
98
+ props.onRenderBegingsWithFilterInfo({}, (props) => {
99
+ return jsxs(Text, { ...props, children: [labels["quickfind-search-use-filter"](), " ", jsx("span", { className: styles.calloutBoldText, children: labels["quickfind-search-starts-with"]() }), " ", labels["quickfind-search-on-these-columns"]()] });
100
+ }), props.onRenderColumnsList({
101
+ className: styles.calloutColumnsWrapper,
102
+ columns: quickFindColumns,
103
+ onRenderColumnLabel: (props, defaultRender) => defaultRender(props)
104
+ }, (props) => {
105
+ const { onRenderColumnLabel, columns, ...divProps } = props;
106
+ return jsx("div", { ...divProps, children: props.columns.map(col => {
107
+ return props.onRenderColumnLabel({
108
+ key: col.name
109
+ }, (props) => {
110
+ return jsx(Text, { ...props, children: jsx("span", { className: styles.calloutBoldText, children: col.displayName }) });
111
+ });
112
+ }) });
113
+ })] });
114
+ }) });
115
+ }
116
+ else {
117
+ return jsx(Fragment, {});
118
+ }
119
+ })] });
60
120
  });
61
121
  };
62
122
 
@@ -1 +1 @@
1
- {"version":3,"file":"QuickFind.js","sources":["../../../../src/components/DatasetControl/QuickFind/QuickFind.tsx"],"sourcesContent":["import { useEffect, useMemo, useState } from \"react\";\nimport { IRibbonQuickFindWrapperProps } from \"../interfaces\";\nimport { useModel } from \"../useModel\";\nimport { TextField } from \"@talxis/react-components\";\nimport { getQuickFindStyles } from \"./styles\";\nimport { IInternalDataProvider } from \"@talxis/client-libraries\";\n\nexport const QuickFind = (props: { onRenderQuickFind: IRibbonQuickFindWrapperProps['onRenderQuickFind'] }) => {\n const [query, setQuery] = useState<string>('');\n const model = useModel();\n const dataset = model.getDatasetControl().getDataset();\n const dataProvider = dataset.getDataProvider() as IInternalDataProvider;\n const labels = model.getLabels();\n const styles = useMemo(() => getQuickFindStyles(), []);\n\n const onSearch = (query?: string) => {\n dataProvider.executeWithUnsavedChangesBlocker(() => {\n setQuery(query ?? '');\n dataset.setSearchQuery?.(query ?? '');\n dataset.refresh();\n })\n }\n\n const onKeyUp = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n onSearch(query);\n }\n }\n\n useEffect(() => {\n setQuery(dataset.getSearchQuery?.() ?? '');\n }, [dataset.getSearchQuery?.()])\n\n return props.onRenderQuickFind({\n onRenderTextField: (props, defaultRender) => defaultRender(props),\n textFieldProps: {\n value: query,\n placeholder: `${labels.search()} ${dataset.getMetadata()?.DisplayCollectionName ?? labels.records()}...`,\n styles: {\n root: styles.textFieldRoot,\n fieldGroup: styles.fieldGroup\n },\n disabled: dataset.loading,\n onChange: (e, newValue) => setQuery(newValue ?? ''),\n onKeyUp: onKeyUp,\n ...(query ? {\n deleteButtonProps: {\n key: 'delete',\n iconProps: {\n iconName: 'Cancel'\n },\n onClick: () => onSearch(undefined)\n }\n } : {}),\n suffixItems: [{\n key: 'search',\n iconProps: {\n iconName: 'Search'\n },\n onClick: () => onSearch(query)\n }]\n\n\n }\n }, (props) => {\n return <TextField {...props.textFieldProps} />\n })\n}"],"names":["_jsx"],"mappings":";;;;;;AAOa,MAAA,SAAS,GAAG,CAAC,KAA+E,KAAI;IAC3G,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAC;AAC/C,IAAA,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,OAAO,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC,UAAU,EAAE,CAAC;AACvD,IAAA,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,EAA2B,CAAC;AACxE,IAAA,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;AACjC,IAAA,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,kBAAkB,EAAE,EAAE,EAAE,CAAC,CAAC;AAEvD,IAAA,MAAM,QAAQ,GAAG,CAAC,KAAc,KAAI;AAClC,QAAA,YAAY,CAAC,gCAAgC,CAAC,MAAK;AACjD,YAAA,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACtB,OAAO,CAAC,cAAc,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC;YACtC,OAAO,CAAC,OAAO,EAAE,CAAC;AACpB,SAAC,CAAC,CAAA;AACJ,KAAC,CAAA;AAED,IAAA,MAAM,OAAO,GAAG,CAAC,CAAwC,KAAI;AAC3D,QAAA,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE;YACrB,QAAQ,CAAC,KAAK,CAAC,CAAC;AACjB,SAAA;AACH,KAAC,CAAA;IAED,SAAS,CAAC,MAAK;QACb,QAAQ,CAAC,OAAO,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC,CAAC;KAC5C,EAAE,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC,CAAA;IAEhC,OAAO,KAAK,CAAC,iBAAiB,CAAC;QAC7B,iBAAiB,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,aAAa,CAAC,KAAK,CAAC;AACjE,QAAA,cAAc,EAAE;AACd,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,WAAW,EAAE,CAAG,EAAA,MAAM,CAAC,MAAM,EAAE,IAAI,OAAO,CAAC,WAAW,EAAE,EAAE,qBAAqB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAK,GAAA,CAAA;AACxG,YAAA,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM,CAAC,aAAa;gBAC1B,UAAU,EAAE,MAAM,CAAC,UAAU;AAC9B,aAAA;YACD,QAAQ,EAAE,OAAO,CAAC,OAAO;AACzB,YAAA,QAAQ,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;AACnD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,IAAI,KAAK,GAAG;AACV,gBAAA,iBAAiB,EAAE;AACjB,oBAAA,GAAG,EAAE,QAAQ;AACb,oBAAA,SAAS,EAAE;AACT,wBAAA,QAAQ,EAAE,QAAQ;AACnB,qBAAA;AACD,oBAAA,OAAO,EAAE,MAAM,QAAQ,CAAC,SAAS,CAAC;AACnC,iBAAA;aACF,GAAG,EAAE,CAAC;AACP,YAAA,WAAW,EAAE,CAAC;AACZ,oBAAA,GAAG,EAAE,QAAQ;AACb,oBAAA,SAAS,EAAE;AACT,wBAAA,QAAQ,EAAE,QAAQ;AACnB,qBAAA;AACD,oBAAA,OAAO,EAAE,MAAM,QAAQ,CAAC,KAAK,CAAC;iBAC/B,CAAC;AAGH,SAAA;KACF,EAAE,CAAC,KAAK,KAAI;AACX,QAAA,OAAOA,IAAC,SAAS,EAAA,EAAA,GAAK,KAAK,CAAC,cAAc,GAAI,CAAA;AAChD,KAAC,CAAC,CAAA;AACJ;;;;"}
1
+ {"version":3,"file":"QuickFind.js","sources":["../../../../src/components/DatasetControl/QuickFind/QuickFind.tsx"],"sourcesContent":["import { useEffect, useMemo, useState } from \"react\";\nimport { IRibbonQuickFindWrapperProps } from \"../interfaces\";\nimport { useModel } from \"../useModel\";\nimport { TextField } from \"@talxis/react-components\";\nimport { getQuickFindStyles } from \"./styles\";\nimport { IInternalDataProvider } from \"@talxis/client-libraries\";\nimport { Callout, FontIcon } from \"@fluentui/react\";\nimport { Text } from \"@fluentui/react\";\n\nexport const QuickFind = (props: { onRenderQuickFind: IRibbonQuickFindWrapperProps['onRenderQuickFind'] }) => {\n const [query, setQuery] = useState<string>('');\n const model = useModel();\n const dataset = model.getDatasetControl().getDataset();\n const dataProvider = dataset.getDataProvider() as IInternalDataProvider;\n const labels = model.getLabels();\n const styles = useMemo(() => getQuickFindStyles(), []);\n const id = useMemo(() => `quickfind-${crypto.randomUUID()}`, []);\n const [isCalloutVisible, setIsCalloutVisible] = useState<boolean>(false);\n const quickFindColumns = dataProvider.getQuickFindColumns();\n const isLikeQuery = query.startsWith('*');\n\n const onSearch = (query?: string) => {\n dataProvider.executeWithUnsavedChangesBlocker(() => {\n setQuery(query ?? '');\n dataset.setSearchQuery?.(query ?? '');\n setIsCalloutVisible(false);\n dataset.refresh();\n })\n }\n\n const onKeyUp = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n onSearch(query);\n }\n }\n\n useEffect(() => {\n setQuery(dataset.getSearchQuery?.() ?? '');\n }, [dataset.getSearchQuery?.()])\n\n return props.onRenderQuickFind({\n containerProps: {\n id: id,\n },\n onRenderTextField: (props, defaultRender) => defaultRender(props),\n onRenderCalloutContainer: (props, defaultRender) => defaultRender(props),\n }, (props) => {\n return <div {...props.containerProps}>\n {props.onRenderTextField({\n value: query,\n placeholder: `${labels.search()} ${dataset.getMetadata()?.DisplayCollectionName ?? labels.records()}...`,\n styles: {\n root: styles.textFieldRoot,\n fieldGroup: styles.fieldGroup\n },\n disabled: dataset.loading || quickFindColumns.length === 0,\n onClick: () => setIsCalloutVisible(true),\n onBlur: () => setIsCalloutVisible(false),\n onChange: (e, newValue) => setQuery(newValue ?? ''),\n onKeyUp: onKeyUp,\n ...(query ? {\n deleteButtonProps: {\n key: 'delete',\n iconProps: {\n iconName: 'Cancel'\n },\n onClick: () => onSearch(undefined)\n }\n } : {}),\n suffixItems: [{\n key: 'search',\n iconProps: {\n iconName: 'Search'\n },\n onClick: () => onSearch(query)\n }]\n }, (props) => {\n return <TextField {...props} />\n })}\n {props.onRenderCalloutContainer({\n style: { position: 'absolute' },\n onRenderCallout: (props, defaultRender) => defaultRender(props),\n isVisible: isCalloutVisible\n }, (props) => {\n if (props.isVisible) {\n const { onRenderCallout, isVisible, ...divProps } = props;\n return <div {...divProps}>\n {onRenderCallout({\n target: `#${id}`,\n isVisible: isCalloutVisible && (quickFindColumns.length > 0 || isLikeQuery),\n calloutMaxWidth: 250,\n isLikeQuery: isLikeQuery,\n styles: {\n calloutMain: styles.calloutMain\n },\n hidden: false,\n onDismiss: () => setIsCalloutVisible(false),\n onRenderLikeOperatorWarning: (props, defaultRender) => defaultRender(props),\n onRenderBegingsWithFilterInfo: (props, defaultRender) => defaultRender(props),\n onRenderColumnsList: (props, defaultRender) => defaultRender(props)\n }, (props) => {\n const { onRenderLikeOperatorWarning, onRenderBegingsWithFilterInfo, onRenderColumnsList, isLikeQuery, ...calloutProps } = props;\n return <Callout {...calloutProps}>\n {props.isLikeQuery &&\n props.onRenderLikeOperatorWarning({}, (props) => {\n return <Text {...props}><FontIcon className={styles.calloutWarningIcon} iconName=\"Warning\" />{labels[\"quickfind-like-warning\"]()}</Text>\n })\n }\n {!props.isLikeQuery && \n props.onRenderBegingsWithFilterInfo({}, (props) => {\n return <Text {...props}>{labels[\"quickfind-search-use-filter\"]()} <span className={styles.calloutBoldText}>{labels[\"quickfind-search-starts-with\"]()}</span> {labels[\"quickfind-search-on-these-columns\"]()}</Text>\n })\n }\n {props.onRenderColumnsList({\n className: styles.calloutColumnsWrapper,\n columns: quickFindColumns,\n onRenderColumnLabel: (props, defaultRender) => defaultRender(props)\n }, (props) => {\n const { onRenderColumnLabel, columns, ...divProps } = props;\n return <div {...divProps}>\n {props.columns.map(col => {\n return props.onRenderColumnLabel({\n key: col.name\n }, (props) => {\n return <Text {...props}><span className={styles.calloutBoldText}>{col.displayName}</span></Text>\n })\n })}\n </div>\n })}\n </Callout>\n })}\n </div>\n }\n else {\n return <></>\n }\n })}\n </div>\n })\n}"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -5,4 +5,20 @@ export declare const getQuickFindStyles: () => import("@fluentui/react").IProces
5
5
  fieldGroup: {
6
6
  width: number;
7
7
  };
8
+ calloutMain: {
9
+ padding: number;
10
+ };
11
+ calloutBoldText: {
12
+ fontWeight: number;
13
+ };
14
+ calloutColumnsWrapper: {
15
+ display: string;
16
+ flexDirection: string;
17
+ marginTop: number;
18
+ };
19
+ calloutWarningIcon: {
20
+ position: string;
21
+ top: number;
22
+ marginRight: number;
23
+ };
8
24
  }>;
@@ -7,6 +7,22 @@ const getQuickFindStyles = () => {
7
7
  },
8
8
  fieldGroup: {
9
9
  width: 230,
10
+ },
11
+ calloutMain: {
12
+ padding: 8
13
+ },
14
+ calloutBoldText: {
15
+ fontWeight: 600
16
+ },
17
+ calloutColumnsWrapper: {
18
+ display: 'flex',
19
+ flexDirection: 'column',
20
+ marginTop: 4
21
+ },
22
+ calloutWarningIcon: {
23
+ position: 'relative',
24
+ top: 1,
25
+ marginRight: 4
10
26
  }
11
27
  });
12
28
  };
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sources":["../../../../src/components/DatasetControl/QuickFind/styles.ts"],"sourcesContent":["import { mergeStyleSets } from \"@fluentui/react\"\n\nexport const getQuickFindStyles = () => {\n return mergeStyleSets({\n textFieldRoot: {\n marginLeft: 'auto'\n },\n fieldGroup: {\n width: 230,\n }\n })\n}"],"names":[],"mappings":";;AAEO,MAAM,kBAAkB,GAAG,MAAK;AACnC,IAAA,OAAO,cAAc,CAAC;AAClB,QAAA,aAAa,EAAE;AACX,YAAA,UAAU,EAAE,MAAM;AACrB,SAAA;AACD,QAAA,UAAU,EAAE;AACR,YAAA,KAAK,EAAE,GAAG;AACb,SAAA;AACJ,KAAA,CAAC,CAAA;AACN;;;;"}
1
+ {"version":3,"file":"styles.js","sources":["../../../../src/components/DatasetControl/QuickFind/styles.ts"],"sourcesContent":["import { mergeStyleSets } from \"@fluentui/react\"\n\nexport const getQuickFindStyles = () => {\n return mergeStyleSets({\n textFieldRoot: {\n marginLeft: 'auto'\n },\n fieldGroup: {\n width: 230,\n },\n calloutMain: {\n padding: 8\n },\n calloutBoldText: {\n fontWeight: 600\n },\n calloutColumnsWrapper: {\n display: 'flex',\n flexDirection: 'column',\n marginTop: 4\n },\n calloutWarningIcon: {\n position: 'relative',\n top: 1,\n marginRight: 4\n }\n })\n}"],"names":[],"mappings":";;AAEO,MAAM,kBAAkB,GAAG,MAAK;AACnC,IAAA,OAAO,cAAc,CAAC;AAClB,QAAA,aAAa,EAAE;AACX,YAAA,UAAU,EAAE,MAAM;AACrB,SAAA;AACD,QAAA,UAAU,EAAE;AACR,YAAA,KAAK,EAAE,GAAG;AACb,SAAA;AACD,QAAA,WAAW,EAAE;AACT,YAAA,OAAO,EAAE,CAAC;AACb,SAAA;AACD,QAAA,eAAe,EAAE;AACb,YAAA,UAAU,EAAE,GAAG;AAClB,SAAA;AACD,QAAA,qBAAqB,EAAE;AACnB,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,aAAa,EAAE,QAAQ;AACvB,YAAA,SAAS,EAAE,CAAC;AACf,SAAA;AACD,QAAA,kBAAkB,EAAE;AAChB,YAAA,QAAQ,EAAE,UAAU;AACpB,YAAA,GAAG,EAAE,CAAC;AACN,YAAA,WAAW,EAAE,CAAC;AACjB,SAAA;AACJ,KAAA,CAAC,CAAA;AACN;;;;"}
@@ -1,14 +1,15 @@
1
1
  /// <reference types="@types/powerapps-component-framework" />
2
- import { IButtonProps, IMessageBarProps, ThemeProviderProps } from "@fluentui/react";
2
+ import { IButtonProps, IMessageBarProps, ITextProps, ThemeProviderProps } from "@fluentui/react";
3
3
  import { ITranslation } from "../../hooks";
4
- import { IControl, IStringProperty } from "../../interfaces";
4
+ import { IControl, IStringProperty, ITwoOptionsProperty } from "../../interfaces";
5
5
  import { IGridOutputs, IGridParameters } from "../Grid";
6
6
  import { gridTranslations } from "../Grid/translations";
7
7
  import { datasetControlTranslations } from "./translations";
8
- import { ICommandBarProps, ITextFieldProps } from "@talxis/react-components";
8
+ import { ICalloutProps as ICalloutPropsBase, ICommandBarProps, ITextFieldProps } from "@talxis/react-components";
9
9
  import React from "react";
10
10
  import { IRibbonComponentProps } from "../Ribbon/interfaces";
11
11
  import { IDatasetControl } from "../../utils/dataset-control";
12
+ import { IColumn } from "@talxis/client-libraries";
12
13
  export interface IDatasetControlProps extends Omit<IControl<IDatasetControlParameters, IGridOutputs, Partial<ITranslation<typeof datasetControlTranslations & typeof gridTranslations>>, IDatasetControlComponentProps>, 'parameters' | 'context' | 'state'> {
13
14
  /**
14
15
  * Used to provide the Dataset control instance.
@@ -24,6 +25,7 @@ export interface IDatasetControlProps extends Omit<IControl<IDatasetControlParam
24
25
  }) => React.ReactElement<IControl<any, any, any, any>>;
25
26
  }
26
27
  export interface IDatasetControlParameters extends IGridParameters {
28
+ EnableEditColumns?: Omit<ITwoOptionsProperty, 'attributes'>;
27
29
  ClientApiWebresourceName?: IStringProperty;
28
30
  ClientApiFunctionName?: IStringProperty;
29
31
  }
@@ -60,6 +62,9 @@ export interface IRibbonQuickFindWrapperProps {
60
62
  ribbonQuickFindContainerProps: React.HTMLAttributes<HTMLDivElement>;
61
63
  isRibbonVisible: boolean;
62
64
  isQuickFindVisible: boolean;
65
+ isViewSwitcherVisible: boolean;
66
+ isEditColumnsVisible: boolean;
67
+ isEditFiltersVisible: boolean;
63
68
  onRenderQuickFind: (props: IQuickFindProps, defaultRender: (props: IQuickFindProps) => React.ReactElement) => React.ReactElement;
64
69
  onRenderRibbon: IRibbonComponentProps['onRender'];
65
70
  }
@@ -72,8 +77,26 @@ interface IUnsavedChangesMesssageBarProps {
72
77
  onRenderSaveBtn: (props: IButtonProps, defaultRender: (props: IButtonProps) => React.ReactElement) => React.ReactElement;
73
78
  onRenderDiscardBtn: (props: IButtonProps, defaultRender: (props: IButtonProps) => React.ReactElement) => React.ReactElement;
74
79
  }
80
+ interface IColumnList extends React.HTMLAttributes<HTMLDivElement> {
81
+ columns: IColumn[];
82
+ onRenderColumnLabel: (props: ITextProps & {
83
+ key: string;
84
+ }, defaultRender: (props: ITextProps) => React.ReactElement) => React.ReactElement;
85
+ }
86
+ interface ICalloutProps extends ICalloutPropsBase {
87
+ isVisible: boolean;
88
+ isLikeQuery: boolean;
89
+ onRenderLikeOperatorWarning: (props: ITextProps, defaultRender: (props: ITextProps) => React.ReactElement) => React.ReactElement;
90
+ onRenderBegingsWithFilterInfo: (props: ITextProps, defaultRender: (props: ITextProps) => React.ReactElement) => React.ReactElement;
91
+ onRenderColumnsList: (props: IColumnList, defaultRender: (props: IColumnList) => React.ReactElement) => React.ReactElement;
92
+ }
93
+ interface ICalloutContainer extends React.HTMLAttributes<HTMLDivElement> {
94
+ isVisible: boolean;
95
+ onRenderCallout: (props: ICalloutProps, defaultRender: (props: ICalloutProps) => React.ReactElement) => React.ReactElement;
96
+ }
75
97
  export interface IQuickFindProps {
76
- textFieldProps: ITextFieldProps;
98
+ containerProps: React.HTMLAttributes<HTMLDivElement>;
77
99
  onRenderTextField: (props: ITextFieldProps, defaultRender: (props: ITextFieldProps) => React.ReactElement) => React.ReactElement;
100
+ onRenderCalloutContainer: (props: ICalloutContainer, defaultRender: (props: ICalloutContainer) => React.ReactElement) => React.ReactElement;
78
101
  }
79
102
  export {};
@@ -7,6 +7,38 @@ export declare const datasetControlTranslations: {
7
7
  1029: string;
8
8
  1033: string;
9
9
  };
10
+ 'no-name': {
11
+ 1029: string;
12
+ 1033: string;
13
+ };
14
+ "column-source": {
15
+ 1029: string;
16
+ 1033: string;
17
+ };
18
+ "no-result-found": {
19
+ 1029: string;
20
+ 1033: string;
21
+ };
22
+ "add-column": {
23
+ 1029: string;
24
+ 1033: string;
25
+ };
26
+ cancel: {
27
+ 1029: string;
28
+ 1033: string;
29
+ };
30
+ 'edit-columns': {
31
+ 1029: string;
32
+ 1033: string;
33
+ };
34
+ 'edit-filters': {
35
+ 1029: string;
36
+ 1033: string;
37
+ };
38
+ save: {
39
+ 1029: string;
40
+ 1033: string;
41
+ };
10
42
  generalError: {
11
43
  1029: string;
12
44
  1033: string;
@@ -59,4 +91,20 @@ export declare const datasetControlTranslations: {
59
91
  1029: string;
60
92
  1033: string;
61
93
  };
94
+ "quickfind-like-warning": {
95
+ 1029: string;
96
+ 1033: string;
97
+ };
98
+ "quickfind-search-use-filter": {
99
+ 1029: string;
100
+ 1033: string;
101
+ };
102
+ "quickfind-search-starts-with": {
103
+ 1029: string;
104
+ 1033: string;
105
+ };
106
+ "quickfind-search-on-these-columns": {
107
+ 1029: string;
108
+ 1033: string;
109
+ };
62
110
  };