@topconsultnpm/sdkui-react-beta 6.13.15 → 6.13.16

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.
@@ -15,6 +15,7 @@ export interface ITMPanelProps extends ITMRightSidebarProps {
15
15
  onBack?: () => void;
16
16
  onClose?: () => void;
17
17
  onHeaderDoubleClick?: () => void;
18
+ onMaximize?: (isMaximized: boolean) => void;
18
19
  }
19
20
  declare const TMPanel: React.FC<ITMPanelProps>;
20
21
  export default TMPanel;
@@ -69,7 +69,7 @@ const StyledInnerPanelDiv = styled.div `
69
69
  outline: none;
70
70
  }
71
71
  `;
72
- const TMPanel = ({ allowMaximize = true, items = [], onItemClick, selectedItem, showPanel, color, backgroundColor, backgroundColorContainer, children, showHeader = true, title, totalItems, displayedItemsCount, toolbar, padding = '5px', onBack, onClose, onHeaderDoubleClick }) => {
72
+ const TMPanel = ({ allowMaximize = true, items = [], onItemClick, selectedItem, showPanel, color, backgroundColor, backgroundColorContainer, children, showHeader = true, title, totalItems, displayedItemsCount, toolbar, padding = '5px', onBack, onClose, onHeaderDoubleClick, onMaximize }) => {
73
73
  const [isActive, setIsActive] = useState(false);
74
74
  const [isMaximized, setIsMaximized] = useState(false);
75
75
  const [minWidth, setMinWidth] = useState(undefined);
@@ -79,7 +79,17 @@ const TMPanel = ({ allowMaximize = true, items = [], onItemClick, selectedItem,
79
79
  setMinWidth(titleRowRef.current.offsetWidth);
80
80
  }
81
81
  }, [title, displayedItemsCount, totalItems, onBack]);
82
- return (_jsxs(StyledPanelContainer, { "$isMaximized": isMaximized, style: minWidth ? { minWidth } : undefined, children: [showHeader &&
82
+ // handler for external maximize management
83
+ const handleMaximize = () => {
84
+ setIsMaximized(prevState => {
85
+ const newValue = !prevState;
86
+ if (onMaximize) {
87
+ onMaximize(newValue);
88
+ }
89
+ return newValue;
90
+ });
91
+ };
92
+ return (_jsxs(StyledPanelContainer, { "$isMaximized": onMaximize ? false : isMaximized, style: minWidth ? { minWidth } : undefined, children: [showHeader &&
83
93
  _jsx(StyledPanelHeader, { "$backgroundColor": backgroundColor, "$color": color, "$isActive": isActive, onDoubleClick: () => { if (onHeaderDoubleClick)
84
94
  onHeaderDoubleClick(); }, tabIndex: -1, onFocus: () => setIsActive(true), onBlur: () => setIsActive(false), onClick: () => setIsActive(true), children: _jsxs("div", { style: { display: 'flex', flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between', width: '100%' }, children: [_jsxs("div", { ref: titleRowRef, style: { display: 'flex', flexDirection: 'row', alignItems: 'center', gap: '8px' }, children: [onBack &&
85
95
  _jsx(TMButton, { btnStyle: 'icon', icon: _jsx(IconArrowLeft, {}), caption: SDKUI_Localizator.Back, onClick: onBack }), _jsx("div", { style: { display: 'flex', flexDirection: 'row', alignItems: 'center' }, children: _jsxs("p", { style: {
@@ -93,7 +103,7 @@ const TMPanel = ({ allowMaximize = true, items = [], onItemClick, selectedItem,
93
103
  ? ` (${totalItems})`
94
104
  : ''] }) })] }), _jsxs("div", { style: { display: 'flex', flexDirection: 'row', alignItems: 'center', gap: '5px' }, children: [toolbar, allowMaximize && _jsx(TMButton, { color: 'primaryOutline', caption: isMaximized ? SDKUI_Localizator.Minimize : SDKUI_Localizator.Maximize, icon: isMaximized
95
105
  ? _jsx(IconWindowMinimize, { fontSize: 16 })
96
- : _jsx(IconWindowMaximize, { fontSize: 16 }), btnStyle: 'icon', onClick: () => setIsMaximized(m => !m) }), onClose && _jsx(TMButton, { color: 'primaryOutline', caption: SDKUI_Localizator.Close, icon: _jsx(IconClearButton, {}), btnStyle: 'icon', onClick: () => { setIsMaximized(false); onClose?.(); } })] })] }) }), _jsxs(StyledPanelContent, { "$height": showHeader ? "calc(100% - 40px)" : "100%", "$padding": padding, "$backgroundColor": backgroundColorContainer ?? `#FFFFFF`, tabIndex: -1, onFocus: () => setIsActive(true), onBlur: () => setIsActive(false), onClick: () => setIsActive(true), children: [_jsx(StyledInnerPanelDiv, { style: { width: items.length > 0 ? 'calc(100% - 30px)' : '100%' }, tabIndex: -1, onFocus: () => setIsActive(true), onBlur: () => setIsActive(false), onClick: () => setIsActive(true), children: children }), items.length > 0 &&
106
+ : _jsx(IconWindowMaximize, { fontSize: 16 }), btnStyle: 'icon', onClick: handleMaximize }), onClose && _jsx(TMButton, { color: 'primaryOutline', caption: SDKUI_Localizator.Close, icon: _jsx(IconClearButton, {}), btnStyle: 'icon', onClick: () => { setIsMaximized(false); onClose?.(); } })] })] }) }), _jsxs(StyledPanelContent, { "$height": showHeader ? "calc(100% - 40px)" : "100%", "$padding": padding, "$backgroundColor": backgroundColorContainer ?? `#FFFFFF`, tabIndex: -1, onFocus: () => setIsActive(true), onBlur: () => setIsActive(false), onClick: () => setIsActive(true), children: [_jsx(StyledInnerPanelDiv, { style: { width: items.length > 0 ? 'calc(100% - 30px)' : '100%' }, tabIndex: -1, onFocus: () => setIsActive(true), onBlur: () => setIsActive(false), onClick: () => setIsActive(true), children: children }), items.length > 0 &&
97
107
  _jsx(TMRightSidebar, { items: items, onItemClick: onItemClick, selectedItem: selectedItem, showPanel: showPanel })] })] }));
98
108
  };
99
109
  export default TMPanel;
@@ -7,6 +7,7 @@ interface ITMDistinctValues {
7
7
  separator?: string;
8
8
  allowAppendMode?: boolean;
9
9
  showHeader?: boolean;
10
+ isModal?: boolean;
10
11
  onSelectionChanged?: (e: DistinctValuesEventArgs) => void;
11
12
  onClosePanelCallback?: () => void;
12
13
  }
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useCallback, useEffect, useMemo, useState } from 'react';
3
3
  import { LayoutModes, MetadataDataDomains, AccessLevels, MetadataDataTypes, SDK_Globals, DcmtTypeListCacheService, DataColumnTypes } from '@topconsultnpm/sdk-ts-beta';
4
4
  import styled from 'styled-components';
@@ -9,9 +9,10 @@ import { TMExceptionBoxManager } from '../base/TMPopUp';
9
9
  import TMSpinner from '../base/TMSpinner';
10
10
  import TMCheckBox from '../editors/TMCheckBox';
11
11
  import TMPanel from '../base/TMPanel';
12
+ import TMModal from '../base/TMModal';
12
13
  const StyledDistinctValues = styled.div `display: flex; flex-direction: column; height: 100%; overflow: hidden; gap: 10px;`;
13
14
  const StyledPanelContainer = styled.div ` width: 100%; height: 100%; padding: 20px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; `;
14
- const TMDistinctValues = ({ tid, mid, layoutMode = LayoutModes.None, allowAppendMode = true, showHeader = true, separator = " ", onSelectionChanged, onClosePanelCallback }) => {
15
+ const TMDistinctValues = ({ tid, mid, layoutMode = LayoutModes.None, allowAppendMode = true, showHeader = true, isModal, separator = " ", onSelectionChanged, onClosePanelCallback }) => {
15
16
  const [focusedItem, setFocusedItem] = useState();
16
17
  const [dataSource, setDataSource] = useState([]);
17
18
  const [isAppendMode, setIsAppendMode] = useState(false);
@@ -141,8 +142,13 @@ const TMDistinctValues = ({ tid, mid, layoutMode = LayoutModes.None, allowAppend
141
142
  return false;
142
143
  return md.dataDomain === undefined || md.dataDomain === MetadataDataDomains.None;
143
144
  };
144
- return (_jsx(TMPanel, { title: SDKUI_Localizator.DistinctValues + (md?.nameLoc ? ` (${md?.nameLoc})` : ''), showHeader: showHeader, onClose: onClosePanelCallback, children: showPrompt
145
- ? _jsxs(StyledPanelContainer, { children: [_jsx(IconDataList, { fontSize: 96 }), _jsxs("p", { children: ["Caricare i valori distinti di ", _jsx("strong", { children: `"${md?.nameLoc}" ` }), "? "] }), _jsx(TMButton, { caption: SDKUI_Localizator.Yes, onClick: handleLoadData, showTooltip: false })] })
146
- : _jsxs(StyledDistinctValues, { children: [isVisibleAppend() && _jsx(TMCheckBox, { elementStyle: { position: 'absolute', right: '15px', top: '15px', zIndex: 10000 }, label: 'Accoda', value: isAppendMode, onValueChanged: () => { setIsAppendMode(!isAppendMode); } }), _jsx(TMDataGrid, { focusedRowKey: focusedItem ? focusedItem.rowIndex : undefined, selection: { showCheckBoxesMode: 'none' }, searchPanel: { highlightCaseSensitive: true, visible: true }, dataColumns: customColumns, dataSource: dataSource, keyExpr: 'rowIndex', height: 'calc(100%)', onFocusedRowChanged: onFocusedRowChanged, paging: { pageSize: 30 }, summary: customSummary })] }) }));
145
+ const renderContent = () => {
146
+ return (_jsx(_Fragment, { children: showPrompt
147
+ ? _jsxs(StyledPanelContainer, { children: [_jsx(IconDataList, { fontSize: 96 }), _jsxs("p", { children: ["Caricare i valori distinti di ", _jsx("strong", { children: `"${md?.nameLoc}" ` }), "? "] }), _jsx(TMButton, { caption: SDKUI_Localizator.Yes, onClick: handleLoadData, showTooltip: false })] })
148
+ : _jsxs(StyledDistinctValues, { children: [isVisibleAppend() && _jsx(TMCheckBox, { elementStyle: { position: 'absolute', right: '15px', top: '15px', zIndex: 10000 }, label: 'Accoda', value: isAppendMode, onValueChanged: () => { setIsAppendMode(!isAppendMode); } }), _jsx(TMDataGrid, { focusedRowKey: focusedItem ? focusedItem.rowIndex : undefined, selection: { showCheckBoxesMode: 'none' }, searchPanel: { highlightCaseSensitive: true, visible: true }, dataColumns: customColumns, dataSource: dataSource, keyExpr: 'rowIndex', height: 'calc(100%)', onFocusedRowChanged: onFocusedRowChanged, paging: { pageSize: 30 }, summary: customSummary })] }) }));
149
+ };
150
+ return (_jsx(_Fragment, { children: isModal
151
+ ? _jsx(TMModal, { title: SDKUI_Localizator.DistinctValues + (md?.nameLoc ? ` (${md?.nameLoc})` : ''), height: '600px', width: '500px', resizable: true, onClose: onClosePanelCallback, children: renderContent() })
152
+ : _jsx(TMPanel, { title: SDKUI_Localizator.DistinctValues + (md?.nameLoc ? ` (${md?.nameLoc})` : ''), showHeader: showHeader, onClose: onClosePanelCallback, children: renderContent() }) }));
147
153
  };
148
154
  export default TMDistinctValues;
@@ -13,7 +13,7 @@ export declare enum AdvancedMenuButtons {
13
13
  FormulaEditor = 2,
14
14
  DistinctValues = 3
15
15
  }
16
- type AdvancedMenuClickEventArgs = {
16
+ export type AdvancedMenuClickEventArgs = {
17
17
  tid: number | undefined;
18
18
  mid: number | undefined;
19
19
  button: AdvancedMenuButtons;
@@ -1,18 +1,17 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { useCallback, useEffect, useState } from 'react';
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback, useEffect, useMemo, useState } from 'react';
3
3
  import { SavedQueryCacheService, DcmtTypeListCacheService, SDK_Localizator } from '@topconsultnpm/sdk-ts-beta';
4
4
  import TMSavedQuerySelector from './TMSavedQuerySelector';
5
5
  import TMTreeSelector from './TMTreeSelector';
6
6
  import { TabPanel, Item } from 'devextreme-react/tab-panel';
7
7
  import TMSearchQueryPanel, { refreshLastSearch } from './TMSearchQueryPanel';
8
- import { getSysAllDcmtsSQD, IconDataList, IconProgressReady, IconSavedQuery, IconTree, SDKUI_Globals, SDKUI_Localizator } from '../../../helper';
9
- import { TMLayoutItem, TMSplitterLayout } from '../../base/TMLayout';
10
- import TMPanel from '../../base/TMPanel';
8
+ import { getSysAllDcmtsSQD, IconProgressReady, IconSavedQuery, IconTree, SDKUI_Globals, SDKUI_Localizator } from '../../../helper';
11
9
  import TMSearchResult from './TMSearchResult';
12
10
  import TMRecentsManager from '../../grids/TMRecentsManager';
13
11
  import { SearchResultContext } from '../../../ts';
14
12
  import { useDeviceType, DeviceType } from '../../base/TMDeviceProvider';
15
13
  import { StyledMultiViewPanel } from '../../base/Styled';
14
+ import TMPanelManagerMatrix from '../../base/TMPanelManagerMatrix';
16
15
  var TMSearchViews;
17
16
  (function (TMSearchViews) {
18
17
  TMSearchViews[TMSearchViews["None"] = 0] = "None";
@@ -28,14 +27,151 @@ const TMSearch = ({ inputTID, inputSqdID, isExpertMode = SDKUI_Globals.userSetti
28
27
  const [searchResult, setSearchResult] = useState([]);
29
28
  const [mruTIDs, setMruTIDs] = useState([]);
30
29
  const [currentSearchView, setCurrentSearchView] = useState(TMSearchViews.None);
31
- const [showDistinctValuesPanel, setShowDistinctValuesPanel] = useState(false);
32
- const [showTreesPanel, setShowTreesPanel] = useState(true);
33
- const [showRecentsPanel, setShowRecentsPanel] = useState(true);
34
- const [showSavedQueryPanel, setShowSavedQueryPanel] = useState(true);
35
30
  const [currentSQDMode, setCurrentSQDMode] = useState(1);
36
- const [focusedTidMid, setFocusedTidMid] = useState();
37
31
  const [lastQdSearched, setLastQdSearched] = useState();
38
32
  const deviceType = useDeviceType();
33
+ const panelMatrixMap = new Map([
34
+ [
35
+ "column-0",
36
+ {
37
+ width: "20%",
38
+ rows: [
39
+ {
40
+ id: 'treeSelector',
41
+ height: '100%',
42
+ width: '100%',
43
+ content: (togglePanelVisibility) => _jsx(TMTreeSelector, { onClose: () => togglePanelVisibility({
44
+ id: 'toolbar-item-treeSelector',
45
+ icon: 'optionsgear',
46
+ tooltipName: 'treeSelector',
47
+ panelManagerMatrixRowId: 'treeSelector',
48
+ }), onSelectedTIDChanged: (tid) => {
49
+ setCurrentTID(tid);
50
+ if (tid && mruTIDs.includes(tid))
51
+ setCurrentMruTID(tid);
52
+ else
53
+ setCurrentMruTID(0);
54
+ } }),
55
+ hidden: false
56
+ }
57
+ ],
58
+ }
59
+ ],
60
+ [
61
+ "column-1",
62
+ {
63
+ width: "20%",
64
+ rows: [
65
+ {
66
+ id: 'recentsManager',
67
+ height: '100%',
68
+ width: '100%',
69
+ content: _jsx(TMRecentsManager, { mruTIDs: mruTIDs, currentMruTID: currentMruTID, deviceType: deviceType, onSelectedTID: (tid) => { setCurrentMruTID(tid); setCurrentTID(tid); }, onDeletedTID: (tid) => {
70
+ let newMruTIDS = mruTIDs.slice();
71
+ let index = newMruTIDS.findIndex(o => o == tid);
72
+ if (index >= 0)
73
+ newMruTIDS.splice(index, 1);
74
+ SDKUI_Globals.userSettings.searchSettings.mruTIDs = newMruTIDS.filter(tid => tid != undefined && tid != null);
75
+ setMruTIDs(newMruTIDS);
76
+ } }),
77
+ hidden: false,
78
+ panel: {
79
+ title: "Scorciatoie",
80
+ totalItems: mruTIDs.length
81
+ }
82
+ }
83
+ ],
84
+ }
85
+ ],
86
+ [
87
+ "column-2",
88
+ {
89
+ width: "40%",
90
+ rows: [
91
+ {
92
+ id: 'searchQueryPanel',
93
+ height: '100%',
94
+ width: '100%',
95
+ content: _jsx(TMSearchQueryPanel, { isExpertMode: isExpertMode, fromDTD: fromDTD, SQD: currentSQD, onBack: deviceType !== DeviceType.DESKTOP ? () => { setCurrentTID(0); } : undefined, onSearchCompleted: (searchResult, qd) => {
96
+ setSearchResult(searchResult);
97
+ if (searchResult.length <= 0)
98
+ return;
99
+ setLastQdSearched(qd);
100
+ setCurrentSearchView(TMSearchViews.Result);
101
+ // Salvataggio ultimi 10 TIDs
102
+ let fromTID = searchResult?.[0].fromTID;
103
+ let newMruTIDS = mruTIDs.slice();
104
+ let index = newMruTIDS.findIndex(o => o == fromTID);
105
+ if (index >= 0)
106
+ newMruTIDS.splice(index, 1);
107
+ if (newMruTIDS.length >= 10)
108
+ newMruTIDS.splice(0, 1);
109
+ newMruTIDS.push(fromTID);
110
+ setMruTIDs(newMruTIDS);
111
+ setCurrentMruTID(fromTID);
112
+ SDKUI_Globals.userSettings.searchSettings.mruTIDs = newMruTIDS.filter(tid => tid != undefined && tid != null);
113
+ }, onSqdSaved: async (newSqd) => {
114
+ await loadDataSQDsAsync(true, newSqd.masterTID);
115
+ await setSQDAsync(newSqd);
116
+ } }),
117
+ hidden: false
118
+ }
119
+ ],
120
+ }
121
+ ],
122
+ [
123
+ "column-4",
124
+ {
125
+ width: "20%",
126
+ rows: [
127
+ {
128
+ id: 'savedQuery',
129
+ height: '100%',
130
+ width: '100%',
131
+ content: _jsxs(TabPanel, { width: "100%", height: "100%", showNavButtons: true, repaintChangesOnly: true, selectedIndex: currentSQDMode, onSelectedIndexChange: (index) => setCurrentSQDMode(index), children: [(currentTID || currentSQD) ? _jsx(Item, { title: fromDTD?.nameLoc, children: _jsx(TMSavedQuerySelector, { allowShowSearch: false, items: filteredByTIDSQDs, selectedId: currentSQD?.id, onRefreshData: () => { loadDataSQDsAsync(true); }, onItemClick: (sqd) => onSQDItemClick(sqd, setSQDAsync), onDeleted: (sqd) => onSQDDeleted(sqd, sqd.id == currentSQD?.id ? filteredByTIDSQDs.find(o => o.id == 1) : currentSQD, setSQDAsync) }) }) : _jsx(_Fragment, {}), _jsx(Item, { title: SDKUI_Localizator.Alls2, children: _jsx(TMSavedQuerySelector, { allowShowSearch: true, items: allSQDs, manageDefault: false,
132
+ // selectedId={currentSQD?.id}
133
+ onItemClick: (sqd) => onSQDItemClick(sqd, setSQDAsync), onDeleted: (sqd) => onSQDDeleted(sqd, sqd.id == currentSQD?.id ? undefined : currentSQD, setSQDAsync) }) })] }),
134
+ hidden: false,
135
+ panel: {
136
+ title: SDK_Localizator.SavedQueries
137
+ }
138
+ }
139
+ ],
140
+ }
141
+ ]
142
+ ]);
143
+ const toolbar = useMemo(() => {
144
+ return {
145
+ items: [
146
+ {
147
+ id: 'toolbar-item-treeSelector',
148
+ icon: _jsx(IconTree, {}),
149
+ tooltipName: 'treeSelector',
150
+ panelManagerMatrixRowId: 'treeSelector',
151
+ },
152
+ {
153
+ id: 'toolbar-item-recentsManager',
154
+ icon: _jsx(IconProgressReady, {}),
155
+ tooltipName: 'recentsManager',
156
+ panelManagerMatrixRowId: 'recentsManager',
157
+ },
158
+ {
159
+ id: 'toolbar-item-searchQueryPanel',
160
+ icon: _jsx(IconProgressReady, {}),
161
+ tooltipName: 'searchQueryPanel',
162
+ panelManagerMatrixRowId: 'searchQueryPanel',
163
+ visible: deviceType === DeviceType.MOBILE
164
+ },
165
+ {
166
+ id: 'toolbar-item-savedQuery',
167
+ icon: _jsx(IconSavedQuery, {}),
168
+ tooltipName: 'savedQuery',
169
+ panelManagerMatrixRowId: 'savedQuery',
170
+ // alternativePanelManagerMatrixRowId: ['distinctValues']
171
+ }
172
+ ]
173
+ };
174
+ }, [deviceType]);
39
175
  useEffect(() => {
40
176
  setMruTIDs(SDKUI_Globals.userSettings.searchSettings.mruTIDs);
41
177
  loadDataSQDsAsync(false);
@@ -123,67 +259,7 @@ const TMSearch = ({ inputTID, inputSqdID, isExpertMode = SDKUI_Globals.userSetti
123
259
  if (sqdToBeSet)
124
260
  await setSqdAsync?.(sqdToBeSet);
125
261
  }, []);
126
- const rightSidebarItems = [
127
- { icon: _jsx(IconTree, {}), id: 'trees', visibleName: 'Alberi', isActive: showTreesPanel, visible: true },
128
- { icon: _jsx(IconProgressReady, {}), id: 'recents', visibleName: 'Recenti', isActive: showRecentsPanel, visible: true, },
129
- { icon: _jsx(IconSavedQuery, {}), id: 'savedquery', visibleName: 'Ricerche rapide', isActive: showSavedQueryPanel, visible: true },
130
- { icon: _jsx(IconDataList, {}), id: 'DistinctValues', visibleName: 'Valori distiniti', isActive: showDistinctValuesPanel, disabled: !focusedTidMid, visible: true }
131
- ];
132
- const rightSidebarItemClickHandler = (item) => {
133
- switch (item.toLowerCase()) {
134
- case 'trees':
135
- setShowTreesPanel(!showTreesPanel);
136
- break;
137
- case 'recents':
138
- setShowRecentsPanel(!showRecentsPanel);
139
- break;
140
- case 'savedquery':
141
- setShowSavedQueryPanel(!showSavedQueryPanel);
142
- break;
143
- case 'distinctvalues':
144
- setShowDistinctValuesPanel(!showDistinctValuesPanel);
145
- break;
146
- default: break;
147
- }
148
- };
149
- return (_jsxs(_Fragment, { children: [_jsx(StyledMultiViewPanel, { "$isVisible": currentSearchView === TMSearchViews.None, children: _jsxs(TMSplitterLayout, { direction: 'horizontal', overflow: 'visible', showSeparator: deviceType !== DeviceType.MOBILE && showTreesPanel, separatorSize: SDKUI_Globals.userSettings.themeSettings.gutters, separatorColor: 'transparent', separatorActiveColor: 'transparent', min: ['0', '0'], start: (deviceType === DeviceType.MOBILE) ? ['100%', '0%'] : showTreesPanel ? ['20%', '80%'] : ['0%', '100%'], children: [deviceType !== DeviceType.MOBILE &&
150
- _jsx(TMTreeSelector, { onClose: () => setShowTreesPanel(false), onSelectedTIDChanged: (tid) => {
151
- setCurrentTID(tid);
152
- if (tid && mruTIDs.includes(tid))
153
- setCurrentMruTID(tid);
154
- else
155
- setCurrentMruTID(0);
156
- } }), _jsxs(TMSplitterLayout, { direction: 'horizontal', overflow: 'visible', showSeparator: deviceType !== DeviceType.MOBILE && showSavedQueryPanel && !showDistinctValuesPanel, separatorSize: SDKUI_Globals.userSettings.themeSettings.gutters, separatorColor: 'transparent', separatorActiveColor: 'transparent', min: ['0', '0'], start: (deviceType === DeviceType.MOBILE || showDistinctValuesPanel) ? ['100%', '0%'] : ((showSavedQueryPanel) ? ['70%', '30%'] : ['100%', '0%']), children: [_jsx(TMLayoutItem, { children: _jsxs(TMSplitterLayout, { direction: 'horizontal', overflow: 'visible', showSeparator: deviceType !== DeviceType.MOBILE && showRecentsPanel, separatorSize: SDKUI_Globals.userSettings.themeSettings.gutters, separatorColor: 'transparent', separatorActiveColor: 'transparent', min: ['0', '0'], start: deviceType === DeviceType.DESKTOP ? (showRecentsPanel ? ['30%', '70%'] : ['0%', '100%']) : (currentTID ? ['0%', '100%'] : ['100%', '0%']), children: [_jsx(TMPanel, { title: "Scorciatoie", totalItems: mruTIDs.length, onClose: () => setShowRecentsPanel(false), children: _jsx(TMRecentsManager, { mruTIDs: mruTIDs, currentMruTID: currentMruTID, deviceType: deviceType, onSelectedTID: (tid) => { setCurrentMruTID(tid); setCurrentTID(tid); }, onDeletedTID: (tid) => {
157
- let newMruTIDS = mruTIDs.slice();
158
- let index = newMruTIDS.findIndex(o => o == tid);
159
- if (index >= 0)
160
- newMruTIDS.splice(index, 1);
161
- SDKUI_Globals.userSettings.searchSettings.mruTIDs = newMruTIDS.filter(tid => tid != undefined && tid != null);
162
- setMruTIDs(newMruTIDS);
163
- } }) }), _jsx(TMSearchQueryPanel, { isExpertMode: isExpertMode, fromDTD: fromDTD, SQD: currentSQD, isOpenDistinctValuesPanel: showDistinctValuesPanel, rightSidebarItems: rightSidebarItems, onBack: deviceType !== DeviceType.DESKTOP ? () => { setCurrentTID(0); } : undefined, onFocusedMetadataChanged: setFocusedTidMid, onRightSidebarItemClick: rightSidebarItemClickHandler, onCloseDistinctValuesPanel: () => setShowDistinctValuesPanel(false), onSearchCompleted: (searchResult, qd) => {
164
- setSearchResult(searchResult);
165
- if (searchResult.length <= 0)
166
- return;
167
- setLastQdSearched(qd);
168
- setCurrentSearchView(TMSearchViews.Result);
169
- // Salvataggio ultimi 10 TIDs
170
- let fromTID = searchResult?.[0].fromTID;
171
- let newMruTIDS = mruTIDs.slice();
172
- let index = newMruTIDS.findIndex(o => o == fromTID);
173
- if (index >= 0)
174
- newMruTIDS.splice(index, 1);
175
- if (newMruTIDS.length >= 10)
176
- newMruTIDS.splice(0, 1);
177
- newMruTIDS.push(fromTID);
178
- setMruTIDs(newMruTIDS);
179
- setCurrentMruTID(fromTID);
180
- SDKUI_Globals.userSettings.searchSettings.mruTIDs = newMruTIDS.filter(tid => tid != undefined && tid != null);
181
- }, onSqdSaved: async (newSqd) => {
182
- await loadDataSQDsAsync(true, newSqd.masterTID);
183
- await setSQDAsync(newSqd);
184
- } })] }) }), _jsx(StyledMultiViewPanel, { "$isVisible": !showDistinctValuesPanel, children: _jsx(TMLayoutItem, { children: _jsx(TMPanel, { title: SDK_Localizator.SavedQueries, onClose: () => setShowSavedQueryPanel(false), children: _jsxs(TabPanel, { width: "100%", height: "100%", showNavButtons: true, repaintChangesOnly: true, selectedIndex: currentSQDMode, onSelectedIndexChange: (index) => setCurrentSQDMode(index), children: [(currentTID || currentSQD) ? _jsx(Item, { title: fromDTD?.nameLoc, children: _jsx(TMSavedQuerySelector, { allowShowSearch: false, items: filteredByTIDSQDs, selectedId: currentSQD?.id, onRefreshData: () => { loadDataSQDsAsync(true); }, onItemClick: (sqd) => onSQDItemClick(sqd, setSQDAsync), onDeleted: (sqd) => onSQDDeleted(sqd, sqd.id == currentSQD?.id ? filteredByTIDSQDs.find(o => o.id == 1) : currentSQD, setSQDAsync) }) }) : _jsx(_Fragment, {}), _jsx(Item, { title: SDKUI_Localizator.Alls2, children: _jsx(TMSavedQuerySelector, { allowShowSearch: true, items: allSQDs, manageDefault: false,
185
- // selectedId={currentSQD?.id}
186
- onItemClick: (sqd) => onSQDItemClick(sqd, setSQDAsync), onDeleted: (sqd) => onSQDDeleted(sqd, sqd.id == currentSQD?.id ? undefined : currentSQD, setSQDAsync) }) })] }) }) }) })] })] }) }), _jsx(StyledMultiViewPanel, { "$isVisible": currentSearchView === TMSearchViews.Result, children: searchResult.length > 0 &&
262
+ return (_jsxs(_Fragment, { children: [_jsx(StyledMultiViewPanel, { "$isVisible": currentSearchView === TMSearchViews.None, children: _jsx(TMPanelManagerMatrix, { panelMatrixMap: panelMatrixMap, toolbar: toolbar, initialMobilePanelID: "recentsManager" }) }), _jsx(StyledMultiViewPanel, { "$isVisible": currentSearchView === TMSearchViews.Result, children: searchResult.length > 0 &&
187
263
  _jsx(TMSearchResult, { context: SearchResultContext.METADATA_SEARCH, searchResults: searchResult, onRefreshAfterAddDcmtToFavs: onRefreshAfterAddDcmtToFavs, onRefreshSearchAsync: async () => {
188
264
  // setSearchResult([]);
189
265
  setSearchResult(await refreshLastSearch(lastQdSearched) ?? []);
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import { DcmtTypeDescriptor, QueryDescriptor } from '@topconsultnpm/sdk-ts-beta';
3
3
  import { TID_MID } from '../../../ts';
4
+ import { AdvancedMenuClickEventArgs } from '../../editors/TMMetadataValues';
4
5
  interface ITMSearchQueryEditorProps {
5
6
  qd: QueryDescriptor | undefined;
6
7
  fromDTD?: DcmtTypeDescriptor;
@@ -9,6 +10,7 @@ interface ITMSearchQueryEditorProps {
9
10
  showAllMdWhere?: boolean;
10
11
  isOpenDistinctValuesPanel: boolean;
11
12
  onQdChanged?: (qd: QueryDescriptor) => void;
13
+ onAdvancedMenuClick?: (e: AdvancedMenuClickEventArgs) => void;
12
14
  onFocusedMetadataChanged?: (tid_mid: TID_MID | undefined) => void;
13
15
  }
14
16
  declare const TMSearchQueryEditor: React.FunctionComponent<ITMSearchQueryEditorProps>;
@@ -13,6 +13,7 @@ import { FormulaHelper } from '../../editors/TMFormulaEditor';
13
13
  import TMMetadataEditor, { useMetadataEditableList } from '../../editors/TMMetadataEditor';
14
14
  import { colorOperator, StyledItemWrapper, StyledRowItem } from '../../query/TMQueryEditor';
15
15
  import { TMMidViewer } from '../../viewers/TMMidViewer';
16
+ import { AdvancedMenuButtons } from '../../editors/TMMetadataValues';
16
17
  const StyledMetadataListItem = styled.div `
17
18
  padding: 5px;
18
19
  border-radius: 8px;
@@ -27,7 +28,7 @@ const StyledMetadataListItem = styled.div `
27
28
  cursor: pointer;
28
29
  }
29
30
  `;
30
- const TMSearchQueryEditor = ({ qd, fromDTD, dcmtTypesList = [], isOpenDistinctValuesPanel, isExpertMode = SDKUI_Globals.userSettings.advancedSettings.expertMode === 1, showAllMdWhere, onQdChanged, onFocusedMetadataChanged }) => {
31
+ const TMSearchQueryEditor = ({ qd, fromDTD, dcmtTypesList = [], isOpenDistinctValuesPanel, isExpertMode = SDKUI_Globals.userSettings.advancedSettings.expertMode === 1, showAllMdWhere, onQdChanged, onFocusedMetadataChanged, onAdvancedMenuClick }) => {
31
32
  const [dynDataListsToBeRefreshed, setDynDataListsToBeRefreshed] = useState([]);
32
33
  const [showDistinctValuesPanel, setShowDistinctValuesPanel] = useState(false);
33
34
  const [currentEditingMID, setCurrentEditingMID] = useState(0);
@@ -134,10 +135,27 @@ const TMSearchQueryEditor = ({ qd, fromDTD, dcmtTypesList = [], isOpenDistinctVa
134
135
  let md = dtd.metadata?.find(o => o.id == mid);
135
136
  if (!md)
136
137
  return [];
137
- let menu = [
138
- { text: isEditable ? SDKUI_Localizator.Restore : SDKUI_Localizator.MakeEditable, icon: isEditable ? _jsx(IconUndo, {}) : _jsx(IconPencil, {}), onClick: () => { addOrRemoveEditableList(mid); } },
139
- { text: SDKUI_Localizator.DistinctValues, icon: _jsx(IconDataList, {}), onClick: () => { handleMetadataSelection(tid, mid); setShowDistinctValuesPanel(!showDistinctValuesPanel); } }
140
- ];
138
+ let menu = [];
139
+ // Show MakeEditable/Restore only if isExpertMode is true
140
+ if (isExpertMode) {
141
+ menu.push({
142
+ text: isEditable ? SDKUI_Localizator.Restore : SDKUI_Localizator.MakeEditable,
143
+ icon: isEditable ? _jsx(IconUndo, {}) : _jsx(IconPencil, {}),
144
+ onClick: () => {
145
+ addOrRemoveEditableList(mid);
146
+ onAdvancedMenuClick?.({ tid: tid, mid: mid, button: AdvancedMenuButtons.MakeEditable });
147
+ }
148
+ });
149
+ }
150
+ menu.push({
151
+ text: SDKUI_Localizator.DistinctValues,
152
+ icon: _jsx(IconDataList, {}),
153
+ onClick: () => {
154
+ handleMetadataSelection(tid, mid);
155
+ setShowDistinctValuesPanel(!showDistinctValuesPanel);
156
+ onAdvancedMenuClick?.({ tid: tid, mid: mid, button: AdvancedMenuButtons.DistinctValues });
157
+ }
158
+ });
141
159
  return menu;
142
160
  };
143
161
  return (_jsx(_Fragment, { children: deviceType === DeviceType.MOBILE ?
@@ -202,7 +220,7 @@ const TMSearchQueryEditor = ({ qd, fromDTD, dcmtTypesList = [], isOpenDistinctVa
202
220
  ? _jsx(IconFunction, { color: "#1a89d3", fontSize: 14, style: { position: "absolute", top: '-5px', left: '-10px' } })
203
221
  : (isEditableList(whereItem.mid))
204
222
  ? _jsx(IconPencil, { color: "#138603", fontSize: 14, style: { position: "absolute", top: '-5px', left: '-10px' } })
205
- : _jsx(_Fragment, {})] }), isExpertMode && _jsx("div", { style: { gridColumn: 4 }, children: _jsx(TMDropDownMenu, { backgroundColor: 'white', color: TMColors.button_icon, borderRadius: '3px', content: _jsx(TMButton, { btnStyle: 'icon', icon: _jsx(IconMenuVertical, {}), showTooltip: false }), items: getAdvancedMenuItems(whereItem.tid, whereItem.mid) }) })] }, `${whereItem.tid}_${whereItem.mid}_${index}`));
223
+ : _jsx(_Fragment, {})] }), _jsx("div", { style: { gridColumn: 4 }, children: _jsx(TMDropDownMenu, { backgroundColor: 'white', color: TMColors.button_icon, borderRadius: '3px', content: _jsx(TMButton, { btnStyle: 'icon', icon: _jsx(IconMenuVertical, {}), showTooltip: false }), items: getAdvancedMenuItems(whereItem.tid, whereItem.mid) }) })] }, `${whereItem.tid}_${whereItem.mid}_${index}`));
206
224
  }) }) }));
207
225
  };
208
226
  export default TMSearchQueryEditor;
@@ -5,14 +5,12 @@ import { ITMRightSidebarItem } from '../../base/TMRightSidebar';
5
5
  interface ITMSearchQueryPanelProps {
6
6
  fromDTD?: DcmtTypeDescriptor;
7
7
  SQD?: SavedQueryDescriptor;
8
- isOpenDistinctValuesPanel?: boolean;
9
8
  rightSidebarItems?: ITMRightSidebarItem[];
10
9
  isExpertMode?: boolean;
11
10
  onBack?: () => void;
12
11
  onRightSidebarItemClick?: (item: string) => void;
13
12
  onSqdSaved?: (newSqd: SavedQueryDescriptor) => void;
14
13
  onFocusedMetadataChanged?: (tid_mid: TID_MID | undefined) => void;
15
- onCloseDistinctValuesPanel?: () => void;
16
14
  onSearchCompleted?: (searchResult: SearchResultDescriptor[], qd: QueryDescriptor | undefined) => void;
17
15
  }
18
16
  declare const TMSearchQueryPanel: React.FunctionComponent<ITMSearchQueryPanelProps>;
@@ -8,12 +8,12 @@ import { getDcmtTypesByQdAsync, SDKUI_Localizator, getQD, IconMenuVertical, Icon
8
8
  import { useQueryParametersDialog } from '../../../hooks/useQueryParametersDialog';
9
9
  import { FormModes } from '../../../ts';
10
10
  import { TMColors } from '../../../utils/theme';
11
- import { StyledModalContainer, StyledMultiViewPanel } from '../../base/Styled';
11
+ import { StyledModalContainer } from '../../base/Styled';
12
12
  import ShowAlert from '../../base/TMAlert';
13
13
  import TMButton from '../../base/TMButton';
14
14
  import { useDeviceType, DeviceType } from '../../base/TMDeviceProvider';
15
15
  import TMDropDownMenu from '../../base/TMDropDownMenu';
16
- import TMLayoutContainer, { TMSplitterLayout, TMLayoutItem } from '../../base/TMLayout';
16
+ import TMLayoutContainer, { TMLayoutItem } from '../../base/TMLayout';
17
17
  import { TMExceptionBoxManager } from '../../base/TMPopUp';
18
18
  import TMSpinner from '../../base/TMSpinner';
19
19
  import TMPanel from '../../base/TMPanel';
@@ -21,7 +21,8 @@ import TMDistinctValues from '../../choosers/TMDistinctValues';
21
21
  import { TMMetadataChooserForm } from '../../choosers/TMMetadataChooser';
22
22
  import TMQueryEditor from '../../query/TMQueryEditor';
23
23
  import TMSavedQueryForm from './TMSavedQueryForm';
24
- const TMSearchQueryPanel = ({ fromDTD, rightSidebarItems, isExpertMode = SDKUI_Globals.userSettings.advancedSettings.expertMode === 1, isOpenDistinctValuesPanel = false, SQD, onRightSidebarItemClick, onSearchCompleted, onFocusedMetadataChanged, onCloseDistinctValuesPanel, onSqdSaved, onBack }) => {
24
+ import { AdvancedMenuButtons } from '../../editors/TMMetadataValues';
25
+ const TMSearchQueryPanel = ({ fromDTD, rightSidebarItems, isExpertMode = SDKUI_Globals.userSettings.advancedSettings.expertMode === 1, SQD, onRightSidebarItemClick, onSearchCompleted, onFocusedMetadataChanged, onSqdSaved, onBack }) => {
25
26
  const [confirmQueryParams, ConfirmQueryParamsDialog] = useQueryParametersDialog();
26
27
  const [qd, setQd] = useState();
27
28
  const [lastQdParams, setLastQdParams] = useState([]);
@@ -33,6 +34,7 @@ const TMSearchQueryPanel = ({ fromDTD, rightSidebarItems, isExpertMode = SDKUI_G
33
34
  const [showFiltersConfig, setShowFiltersConfig] = useState(false);
34
35
  const [showOutputConfig, setShowOutputConfig] = useState(false);
35
36
  const [showOrderByConfig, setShowOrderByConfig] = useState(false);
37
+ const [showDistinctValuesPanel, setShowDistinctValuesPanel] = useState(false);
36
38
  const [focusedTidMid, setFocusedTidMid] = useState();
37
39
  const deviceType = useDeviceType();
38
40
  let initialMaxItems = deviceType === DeviceType.MOBILE ? 8 : 12;
@@ -98,7 +100,7 @@ const TMSearchQueryPanel = ({ fromDTD, rightSidebarItems, isExpertMode = SDKUI_G
98
100
  }
99
101
  }
100
102
  };
101
- return (_jsxs(TMSplitterLayout, { direction: 'horizontal', overflow: 'visible', showSeparator: deviceType !== DeviceType.MOBILE && isOpenDistinctValuesPanel, separatorSize: 20, separatorColor: 'transparent', separatorActiveColor: 'transparent', min: ['0', '0'], start: deviceType === DeviceType.MOBILE ? ['100%', '0%'] : (isOpenDistinctValuesPanel ? ['55%', '45%'] : ['100%', '0%']), children: [_jsxs(TMPanel, { title: fromDTD?.nameLoc ?? SDKUI_Localizator.Search_Metadata, items: rightSidebarItems, onItemClick: onRightSidebarItemClick, onBack: onBack, toolbar: _jsx(_Fragment, { children: (SQD && !showSqdForm) ?
103
+ return (_jsxs(_Fragment, { children: [_jsxs(TMPanel, { title: fromDTD?.nameLoc ?? SDKUI_Localizator.Search_Metadata, items: rightSidebarItems, onItemClick: onRightSidebarItemClick, onBack: onBack, toolbar: _jsx(_Fragment, { children: (SQD && !showSqdForm) ?
102
104
  _jsx(TMDropDownMenu, { backgroundColor: 'white', borderRadius: '3px', content: _jsx(TMButton, { btnStyle: 'icon', caption: 'Altro', icon: _jsx(IconMenuVertical, { color: 'white' }), showTooltip: false }), items: [
103
105
  { icon: _jsx(IconAddCircleOutline, {}), text: SDKUI_Localizator.SavedQueryNew, onClick: () => { openSqdForm(FormModes.Create); } },
104
106
  { icon: _jsx(IconEdit, {}), text: SDKUI_Localizator.SavedQueryUpdate, disabled: (SQD && SQD.id == 1), onClick: () => { openSqdForm(FormModes.Update); } },
@@ -112,7 +114,11 @@ const TMSearchQueryPanel = ({ fromDTD, rightSidebarItems, isExpertMode = SDKUI_G
112
114
  ? _jsxs("div", { style: { height: '100%', width: '100%', position: 'relative', display: 'flex', flexDirection: 'column', gap: 5 }, children: [showAdvancedSearch
113
115
  ? _jsx(TMQueryEditor, { formMode: FormModes.Update, showToolbar: false, inputData: qd, validateSelect: true, showApply: false, onQDChanged: (newQd) => { if (!deepCompare(qd, newQd))
114
116
  setQd(newQd); } })
115
- : _jsx(TMSearchQueryEditor, { qd: qd, fromDTD: fromDTD, dcmtTypesList: dcmtTypesList, isOpenDistinctValuesPanel: isOpenDistinctValuesPanel, isExpertMode: isExpertMode, showAllMdWhere: showAllMdWhere, onFocusedMetadataChanged: setFocusedTidMid, onQdChanged: (newQd) => { if (!deepCompare(qd, newQd))
117
+ : _jsx(TMSearchQueryEditor, { qd: qd, fromDTD: fromDTD, dcmtTypesList: dcmtTypesList, isOpenDistinctValuesPanel: showDistinctValuesPanel, isExpertMode: isExpertMode, showAllMdWhere: showAllMdWhere, onFocusedMetadataChanged: setFocusedTidMid, onAdvancedMenuClick: (e) => {
118
+ if (e.button === AdvancedMenuButtons.DistinctValues) {
119
+ setShowDistinctValuesPanel(true);
120
+ }
121
+ }, onQdChanged: (newQd) => { if (!deepCompare(qd, newQd))
116
122
  setQd(newQd); } }), _jsxs("div", { style: { display: 'flex', justifyContent: 'center', alignItems: 'center', gap: '80px', padding: '15px', position: 'relative' }, children: [_jsxs("div", { style: { display: 'flex', justifyContent: 'center', alignItems: 'center', gap: '8px' }, children: [_jsx(TMButton, { btnStyle: 'advanced', icon: _jsx(IconSearch, {}), showTooltip: false, caption: SDKUI_Localizator.Search, onClick: async () => await searchAsync(qd, showAdvancedSearch), advancedColor: '#f09c0a' }), _jsx(TMButton, { btnStyle: 'advanced', showTooltip: false, caption: SDKUI_Localizator.Clear, icon: _jsx(IconClear, {}), advancedColor: TMColors.primaryColor, onClick: clearFilters })] }), (!showAdvancedSearch && qd?.where && qd?.where?.length > initialMaxItems) && _jsx(TMButton, { elementStyle: { position: 'absolute', right: '10px' }, btnStyle: 'icon', caption: showAllMdWhere ? "Mostra meno" : `Mostra tutti i metadati (+${qd?.where?.length - initialMaxItems})`, icon: showAllMdWhere ?
117
123
  _jsx("div", { style: { backgroundColor: TMColors.primaryColor, minWidth: '30px', minHeight: '30px', borderRadius: '10px', display: 'flex', alignItems: 'center', justifyContent: 'center' }, children: _jsx("p", { style: { color: 'white' }, children: `-${qd?.where?.length - initialMaxItems}` }) }) :
118
124
  _jsx("div", { style: { backgroundColor: TMColors.primaryColor, minWidth: '30px', minHeight: '30px', borderRadius: '10px', display: 'flex', alignItems: 'center', justifyContent: 'center' }, children: _jsx("p", { style: { color: 'white' }, children: `+${qd?.where?.length - initialMaxItems}` }) }), onClick: () => setShowAllMdWhere(!showAllMdWhere) })] }), showFiltersConfig &&
@@ -191,7 +197,8 @@ const TMSearchQueryPanel = ({ fromDTD, rightSidebarItems, isExpertMode = SDKUI_G
191
197
  } })] })
192
198
  :
193
199
  _jsxs(TMLayoutContainer, { gap: 30, alignItems: 'center', justifyContent: 'center', children: [_jsxs(TMLayoutItem, { width: 'max-content', height: 'max-content', children: [" ", _jsxs(StyledToppyTextContainer, { children: [" ", _jsxs(StyledToppyText, { children: [" ", 'Selezionare un tipo documento o ricerca rapida', " "] }), " "] }), " "] }), _jsxs(TMLayoutItem, { width: 'max-content', height: 'max-content', children: [" ", _jsx("img", { src: Logo, width: 120, alt: '' }), " "] })] }), showSqdForm &&
194
- _jsx(StyledModalContainer, { style: { backgroundColor: `${TMColors.backgroundColorHeader}12` }, children: _jsx(TMSavedQueryForm, { height: '50%', width: '50%', id: formModeSqdForm === FormModes.Create ? -1 : SQD?.id, title: 'Ricerca rapida', formMode: formModeSqdForm, showBackButton: true, qd: qd, isAdvancedSearch: showAdvancedSearch, isModal: false, onClose: () => { setShowSqdForm(false); }, onSaved: onSqdSaved }) })] }), _jsx(StyledMultiViewPanel, { "$isVisible": isOpenDistinctValuesPanel, children: _jsx(TMDistinctValues, { tid: focusedTidMid?.tid, mid: focusedTidMid?.mid, separator: ',', onClosePanelCallback: onCloseDistinctValuesPanel, onSelectionChanged: (e) => {
200
+ _jsx(StyledModalContainer, { style: { backgroundColor: `${TMColors.backgroundColorHeader}12` }, children: _jsx(TMSavedQueryForm, { height: '50%', width: '50%', id: formModeSqdForm === FormModes.Create ? -1 : SQD?.id, title: 'Ricerca rapida', formMode: formModeSqdForm, showBackButton: true, qd: qd, isAdvancedSearch: showAdvancedSearch, isModal: false, onClose: () => { setShowSqdForm(false); }, onSaved: onSqdSaved }) })] }), showDistinctValuesPanel &&
201
+ _jsx(TMDistinctValues, { isModal: true, tid: focusedTidMid?.tid, mid: focusedTidMid?.mid, separator: ',', onClosePanelCallback: () => setShowDistinctValuesPanel(false), onSelectionChanged: (e) => {
195
202
  if (!e)
196
203
  return;
197
204
  let wi = qd?.where?.find(o => o.tid === focusedTidMid?.tid && o.mid === focusedTidMid?.mid);
@@ -206,7 +213,7 @@ const TMSearchQueryPanel = ({ fromDTD, rightSidebarItems, isExpertMode = SDKUI_G
206
213
  return wi;
207
214
  });
208
215
  setQd({ ...qd, where: whereCopy });
209
- } }) })] }));
216
+ } })] }));
210
217
  };
211
218
  export default TMSearchQueryPanel;
212
219
  const searchByQdAsync = async (qdInput, searchParams) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@topconsultnpm/sdkui-react-beta",
3
- "version": "6.13.15",
3
+ "version": "6.13.16",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1",