@topconsultnpm/sdkui-react 6.21.0-dev1.36 → 6.21.0-dev1.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/choosers/TMDataListItemChooser.js +3 -1
- package/lib/components/choosers/TMDynDataListItemChooser.d.ts +1 -1
- package/lib/components/choosers/TMDynDataListItemChooser.js +13 -11
- package/lib/components/editors/TMMetadataEditor.js +4 -3
- package/lib/components/features/search/TMSearchQueryEditor.js +13 -1
- package/lib/components/forms/TMChooserForm.js +25 -2
- package/lib/components/viewers/TMDataListItemViewer.d.ts +2 -1
- package/lib/components/viewers/TMDataListItemViewer.js +2 -2
- package/package.json +57 -57
|
@@ -4,6 +4,7 @@ import { SDK_Localizator, DataListCacheService } from '@topconsultnpm/sdk-ts';
|
|
|
4
4
|
import { StyledDivHorizontal } from '../base/Styled';
|
|
5
5
|
import { IconSearch, SDKUI_Localizator, TMImageLibrary } from '../../helper';
|
|
6
6
|
import TMSpinner from '../base/TMSpinner';
|
|
7
|
+
import TMTooltip from '../base/TMTooltip';
|
|
7
8
|
import TMSummary from '../editors/TMSummary';
|
|
8
9
|
import TMChooserForm from '../forms/TMChooserForm';
|
|
9
10
|
import TMDataListItemViewer from '../viewers/TMDataListItemViewer';
|
|
@@ -11,7 +12,8 @@ const TMDataListItemChooser = ({ labelColor, width = '100%', dataListId, icon, b
|
|
|
11
12
|
const [showChooser, setShowChooser] = useState(false);
|
|
12
13
|
const renderTemplate = () => {
|
|
13
14
|
const isPlaceholder = values?.[0] === placeHolder;
|
|
14
|
-
return (_jsxs(StyledDivHorizontal, { style: { width: '100%', color: isPlaceholder ? '#a9a9a9' : 'inherit' }, children: [values && values.length > 0 && _jsx(TMDataListItemViewer, { dataListId: dataListId, value: values?.[0]
|
|
15
|
+
return (_jsxs(StyledDivHorizontal, { style: { width: '100%', justifyContent: 'flex-start', color: isPlaceholder ? '#a9a9a9' : 'inherit' }, children: [values && values.length > 0 && _jsx(TMDataListItemViewer, { dataListId: dataListId, value: values?.[0], width: 'auto' }), values && values.length > 1 &&
|
|
16
|
+
_jsx(TMTooltip, { content: values.slice(1).join(', '), children: _jsx("p", { style: { marginLeft: '10px' }, children: `(+${values.length - 1} ${values.length == 2 ? 'altro' : 'altri'})` }) })] }));
|
|
15
17
|
};
|
|
16
18
|
const summaryInputRef = useRef(null);
|
|
17
19
|
return (_jsxs(_Fragment, { children: [_jsx(TMSummary, { ref: summaryInputRef, placeHolder: placeHolder, labelColor: labelColor, width: width, icon: icon, buttons: buttons, readOnly: readOnly, backgroundColor: backgroundColor, showBorder: showBorder, hasValue: values && values.length > 0, showClearButton: showClearButton, iconEditButton: _jsx(IconSearch, { fontSize: 16 }), onEditorClick: () => {
|
|
@@ -39,4 +39,4 @@ interface ITMDynDataListItemChooserFormProps extends ITMChooserFormProps<DataLis
|
|
|
39
39
|
dynDL?: DynamicDataListDescriptor;
|
|
40
40
|
searchResult?: SearchResultDescriptor;
|
|
41
41
|
}
|
|
42
|
-
export declare const TMDynDataListItemChooserForm:
|
|
42
|
+
export declare const TMDynDataListItemChooserForm: (props: ITMDynDataListItemChooserFormProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -82,7 +82,8 @@ const TMDynDataListItemChooser = ({ tid, md, width = '100%', titleForm, openChoo
|
|
|
82
82
|
};
|
|
83
83
|
const renderTemplate = () => {
|
|
84
84
|
const isPlaceholder = values?.[0] === placeHolder;
|
|
85
|
-
return (_jsxs(StyledDivHorizontal, { style: { width: '100%', color: isPlaceholder ? '#a9a9a9' : 'inherit' }, children: [dataSource && _jsxs(StyledDivHorizontal, { children: [getIcon(), _jsx("p", { style: { marginLeft: '5px' }, children: getDescription() })] }), values && values.length > 1 &&
|
|
85
|
+
return (_jsxs(StyledDivHorizontal, { style: { width: '100%', color: isPlaceholder ? '#a9a9a9' : 'inherit' }, children: [dataSource && _jsxs(StyledDivHorizontal, { children: [getIcon(), _jsx("p", { style: { marginLeft: '5px' }, children: getDescription() })] }), values && values.length > 1 &&
|
|
86
|
+
_jsx(TMTooltip, { content: values.slice(1).join(', '), children: _jsx("p", { style: { marginLeft: '10px' }, children: `(+${values.length - 1} ${values.length == 2 ? 'altro' : 'altri'})` }) })] }));
|
|
86
87
|
};
|
|
87
88
|
return (_jsxs(_Fragment, { children: [_jsx(TMSummary, { placeHolder: placeHolder, width: width, icon: icon, labelColor: labelColor, backgroundColor: backgroundColor, buttons: buttons, showBorder: showBorder, readOnly: readOnly, hasValue: values && values.length > 0, showClearButton: showClearButton, iconEditButton: _jsx(IconSearch, { fontSize: 16 }), onEditorClick: () => {
|
|
88
89
|
if (!readOnly) {
|
|
@@ -135,9 +136,10 @@ const TMDynDataListItemChooser = ({ tid, md, width = '100%', titleForm, openChoo
|
|
|
135
136
|
export default TMDynDataListItemChooser;
|
|
136
137
|
const cellRenderIcon = () => _jsx(IconDetails, {});
|
|
137
138
|
export const TMDynDataListItemChooserForm = (props) => {
|
|
139
|
+
const { TID, MID, layoutMode, dynDL, searchResult, selectedIDs, title, width, height, onChoose } = props;
|
|
138
140
|
// Generate unique keys for all columns
|
|
139
|
-
const uniqueKeys = generateUniqueColumnKeys(
|
|
140
|
-
const dataColumns =
|
|
141
|
+
const uniqueKeys = generateUniqueColumnKeys(searchResult?.dtdResult?.columns, searchResult?.fromTID);
|
|
142
|
+
const dataColumns = searchResult?.dtdResult?.columns?.map((col, index) => {
|
|
141
143
|
const isVisible = col.extendedProperties?.["Visibility"] != "Hidden";
|
|
142
144
|
const dataType = () => {
|
|
143
145
|
switch (col.dataType) {
|
|
@@ -149,23 +151,23 @@ export const TMDynDataListItemChooserForm = (props) => {
|
|
|
149
151
|
};
|
|
150
152
|
return { dataField: uniqueKeys[index], caption: col.caption, visible: isVisible, dataType: dataType(), format: col.dataType === DataColumnTypes.DateTime ? Globalization.getDateDisplayFormat() : "" };
|
|
151
153
|
});
|
|
152
|
-
const keyValue = uniqueKeys[
|
|
154
|
+
const keyValue = uniqueKeys[dynDL?.selectItemForValue ?? 0] ?? '';
|
|
153
155
|
const getItems = async (refreshCache) => {
|
|
154
|
-
if (!
|
|
156
|
+
if (!searchResult)
|
|
155
157
|
return [];
|
|
156
158
|
if (refreshCache)
|
|
157
159
|
DataListCacheService.RemoveAll();
|
|
158
160
|
TMSpinner.show({ description: `${SDKUI_Localizator.Loading} - ${SDK_Localizator.DataList} ...` });
|
|
159
|
-
let result = await SDK_Globals.tmSession?.NewSearchEngine().GetDynDataListValuesAsync(
|
|
161
|
+
let result = await SDK_Globals.tmSession?.NewSearchEngine().GetDynDataListValuesAsync(TID, MID, layoutMode, [])
|
|
160
162
|
.catch((err) => { TMSpinner.hide(); TMExceptionBoxManager.show({ exception: err }); });
|
|
161
163
|
TMSpinner.hide();
|
|
162
164
|
return result ? searchResultDescriptorToSimpleArray(result) ?? [] : [];
|
|
163
165
|
};
|
|
164
166
|
const getTitle = () => {
|
|
165
|
-
let
|
|
166
|
-
if (
|
|
167
|
-
|
|
168
|
-
return
|
|
167
|
+
let titleDataList = SDK_Localizator.DataList;
|
|
168
|
+
if (title)
|
|
169
|
+
titleDataList += `: ${title}`;
|
|
170
|
+
return titleDataList;
|
|
169
171
|
};
|
|
170
|
-
return (_jsx(TMChooserForm, { title: getTitle(), allowMultipleSelection: props.allowMultipleSelection, width:
|
|
172
|
+
return (_jsx(TMChooserForm, { title: getTitle(), allowMultipleSelection: props.allowMultipleSelection, width: width, height: height, keyName: keyValue ?? '', showDefaultColumns: false, hasShowId: false, columns: dataColumns, selectedIDs: selectedIDs, cellRenderIcon: cellRenderIcon, dataSource: searchResultDescriptorToSimpleArray(searchResult) ?? [], getItems: getItems, onClose: props.onClose, onChoose: (IDs) => onChoose?.(IDs) }));
|
|
171
173
|
};
|
|
@@ -79,11 +79,12 @@ const TMMetadataEditor = ({ isSelected = false, customLabel, isReadOnly, isLexPr
|
|
|
79
79
|
if (value?.startsWith("{@QueryParam") || value == "{@UserName}" || value == "{@UserID}" || queryOperator == QueryOperators.Custom || isEditable)
|
|
80
80
|
return _jsx(TMTextBox, { placeHolder: layoutMode === LayoutModes.Ark ? md?.defaultValue ?? '' : '', isModifiedWhen: isModifiedWhenInternal(), readOnly: isReadOnlyResult, label: (modulesWithLabelTop || showLabelTop) ? (customLabel ?? md?.nameLoc) : undefined, icon: showLabelTop ? icon : undefined, validationItems: validationItems, disabled: disabled, elementStyle: { width: '100%' }, type: 'text', maxLength: isEditable ? undefined : maxLength, autoFocus: autoFocus, value: value ?? '', onValueChanged: (e) => onValueChange?.(e.target.value), onBlur: (newValue) => onValueChanged?.(newValue) });
|
|
81
81
|
if (md?.dataDomain == MetadataDataDomains.DynamicDataList)
|
|
82
|
-
return _jsx(TMDynDataListItemChooser, { placeHolder: layoutMode === LayoutModes.Ark ? md?.defaultValue ?? '' : '', titleForm: md.nameLoc, readOnly: isReadOnlyResult, layoutMode: layoutMode, isModifiedWhen: isModifiedWhenInternal(), label: (modulesWithLabelTop || showLabelTop) ? (customLabel ?? md?.nameLoc) : undefined, icon: showLabelTop ? icon : undefined, validationItems: validationItems, disabled: disabled, md: md, tid: tid, openChooserBySingleClick: openChooserBySingleClick, queryParamsDynDataList: queryParamsDynDataList, onCascadeRefreshDynDataLists: onCascadeRefreshDynDataLists, onCascadeUpdateMIDs: onCascadeUpdateMIDs, elementStyle: { width: '100%' }, backgroundColor: TMColors.default_background, allowMultipleSelection: multipleSelectionIsenabled, values: value ?
|
|
83
|
-
|
|
82
|
+
return _jsx(TMDynDataListItemChooser, { placeHolder: layoutMode === LayoutModes.Ark ? md?.defaultValue ?? '' : '', titleForm: md.nameLoc, readOnly: isReadOnlyResult, layoutMode: layoutMode, isModifiedWhen: isModifiedWhenInternal(), label: (modulesWithLabelTop || showLabelTop) ? (customLabel ?? md?.nameLoc) : undefined, icon: showLabelTop ? icon : undefined, validationItems: validationItems, disabled: disabled, md: md, tid: tid, openChooserBySingleClick: openChooserBySingleClick, queryParamsDynDataList: queryParamsDynDataList, onCascadeRefreshDynDataLists: onCascadeRefreshDynDataLists, onCascadeUpdateMIDs: onCascadeUpdateMIDs, elementStyle: { width: '100%' }, backgroundColor: TMColors.default_background, allowMultipleSelection: multipleSelectionIsenabled, values: value ? value.split(',').filter(v => v.trim() !== '') : [], showClearButton: !isReadOnlyResult, onValueChanged: (IDs) => {
|
|
83
|
+
const filteredIDs = IDs?.filter(id => id.trim() !== '');
|
|
84
|
+
if (!filteredIDs || filteredIDs.length <= 0)
|
|
84
85
|
onValueChanged?.(undefined);
|
|
85
86
|
else
|
|
86
|
-
onValueChanged?.(
|
|
87
|
+
onValueChanged?.(filteredIDs.join(","));
|
|
87
88
|
}, updateIsModalOpen: updateIsModalOpen });
|
|
88
89
|
if (md?.dataDomain == MetadataDataDomains.DataList)
|
|
89
90
|
return _jsx(TMDataListItemChooser, { placeHolder: layoutMode === LayoutModes.Ark ? md?.defaultValue ?? '' : '', titleForm: md.nameLoc, readOnly: isReadOnlyResult, isModifiedWhen: isModifiedWhenInternal(), label: (modulesWithLabelTop || showLabelTop) ? (customLabel ?? md?.nameLoc) : undefined, icon: showLabelTop ? icon : undefined, validationItems: validationItems, disabled: disabled, elementStyle: { width: '100%' }, backgroundColor: TMColors.default_background, dataListId: md.dataListID, openChooserBySingleClick: openChooserBySingleClick, allowMultipleSelection: multipleSelectionIsenabled, values: value?.split(',').map((item) => !item.startsWith("'") ? item : item.slice(1, -1)) ?? [], showClearButton: !isReadOnlyResult, onValueChanged: (IDs) => {
|
|
@@ -148,6 +148,18 @@ const TMSearchWhereItemEditor = React.memo(({ whereItem, queryParamsDynDataList,
|
|
|
148
148
|
let dtd = await DcmtTypeListCacheService.GetAsync(whereItem.tid, true);
|
|
149
149
|
return dtd?.metadata?.find(o => o.id === whereItem.mid);
|
|
150
150
|
};
|
|
151
|
+
// Rimuove gli apici singoli da valori separati da virgola: 'msegato','plevolella' -> msegato,plevolella
|
|
152
|
+
const stripQuotes = (value) => {
|
|
153
|
+
if (!value || typeof value !== 'string')
|
|
154
|
+
return value;
|
|
155
|
+
return value.split(',').map(item => {
|
|
156
|
+
const trimmed = item.trim();
|
|
157
|
+
if (trimmed.startsWith("'") && trimmed.endsWith("'")) {
|
|
158
|
+
return trimmed.slice(1, -1);
|
|
159
|
+
}
|
|
160
|
+
return trimmed;
|
|
161
|
+
}).join(',');
|
|
162
|
+
};
|
|
151
163
|
const normalizeValue = (value, isForValue1 = true) => {
|
|
152
164
|
let newValues = [];
|
|
153
165
|
let newValue = value;
|
|
@@ -161,7 +173,7 @@ const TMSearchWhereItemEditor = React.memo(({ whereItem, queryParamsDynDataList,
|
|
|
161
173
|
}
|
|
162
174
|
onValueChanged?.(newValues);
|
|
163
175
|
};
|
|
164
|
-
return (_jsxs(StyledRowItem, { style: { marginBottom: 0, width: '100%' }, children: [showValue1 && _jsx(TMMetadataEditor, { openChooserBySingleClick: openChooserBySingleClick, isSelected: isSelected, tid: whereItem.tid, mid: whereItem.mid, layoutMode: LayoutModes.None, isEditable: isEditableList, value: whereItem.value1, queryOperator: whereItem.operator, queryParamsDynDataList: queryParamsDynDataList, autoFocus: autoFocus ?? false, containerElement: undefined, onValueChanged: (value) => { normalizeValue(value, true); }, onCascadeRefreshDynDataLists: onCascadeRefreshDynDataLists, onCascadeUpdateMIDs: onCascadeUpdateMIDs, updateIsModalOpen: updateIsModalOpen }), showValue2 && _jsx(TMMetadataEditor, { openChooserBySingleClick: openChooserBySingleClick, isSelected: isSelected, tid: whereItem.tid, mid: whereItem.mid, layoutMode: LayoutModes.None, isEditable: isEditableList, value: whereItem.value2, queryOperator: whereItem.operator, autoFocus: autoFocus ?? false, containerElement: undefined, onValueChanged: (value) => { normalizeValue(value, false); }, updateIsModalOpen: updateIsModalOpen })] }));
|
|
176
|
+
return (_jsxs(StyledRowItem, { style: { marginBottom: 0, width: '100%' }, children: [showValue1 && _jsx(TMMetadataEditor, { openChooserBySingleClick: openChooserBySingleClick, isSelected: isSelected, tid: whereItem.tid, mid: whereItem.mid, layoutMode: LayoutModes.None, isEditable: isEditableList, value: stripQuotes(whereItem.value1), queryOperator: whereItem.operator, queryParamsDynDataList: queryParamsDynDataList, autoFocus: autoFocus ?? false, containerElement: undefined, onValueChanged: (value) => { normalizeValue(value, true); }, onCascadeRefreshDynDataLists: onCascadeRefreshDynDataLists, onCascadeUpdateMIDs: onCascadeUpdateMIDs, updateIsModalOpen: updateIsModalOpen }), showValue2 && _jsx(TMMetadataEditor, { openChooserBySingleClick: openChooserBySingleClick, isSelected: isSelected, tid: whereItem.tid, mid: whereItem.mid, layoutMode: LayoutModes.None, isEditable: isEditableList, value: stripQuotes(whereItem.value2), queryOperator: whereItem.operator, autoFocus: autoFocus ?? false, containerElement: undefined, onValueChanged: (value) => { normalizeValue(value, false); }, updateIsModalOpen: updateIsModalOpen })] }));
|
|
165
177
|
});
|
|
166
178
|
const TMSearchWhereItemCard = React.memo(({ index, whereItem, isSelected, queryParamsDynDataList, showEditor, showCompleteMetadataName, showId, isEditableList, onWhereItemChange, onHideEditor, onCascadeRefreshDynDataLists, onCascadeUpdateMIDs, updateIsModalOpen }) => {
|
|
167
179
|
const [isOpen, setIsOpen] = useState(false);
|
|
@@ -16,17 +16,40 @@ const TMChooserForm = ({ children, title, allowMultipleSelection = false, allowA
|
|
|
16
16
|
const [selectedRowKeys, setSelectedRowKeys] = useState(selectedIDs ?? []);
|
|
17
17
|
const [focusedRowKey, setFocusedRowKey] = useState(selectedIDs?.[0]);
|
|
18
18
|
const [selectedRowCounter, setSelectedRowCounter] = useState([]);
|
|
19
|
+
// Helper per confronto case-insensitive
|
|
20
|
+
const includesCaseInsensitive = (arr, value) => {
|
|
21
|
+
if (!arr)
|
|
22
|
+
return false;
|
|
23
|
+
if (typeof value === 'string') {
|
|
24
|
+
return arr.some(item => typeof item === 'string' && item.toLowerCase() === value.toLowerCase());
|
|
25
|
+
}
|
|
26
|
+
return arr.includes(value);
|
|
27
|
+
};
|
|
19
28
|
useEffect(() => { doGetItems(false); }, [getItems]);
|
|
29
|
+
// Normalizza selectedRowKeys per corrispondere al case reale dei dati
|
|
30
|
+
const normalizeSelectedKeys = useCallback((items, keys) => {
|
|
31
|
+
return keys.map(key => {
|
|
32
|
+
if (typeof key === 'string') {
|
|
33
|
+
const match = items.find((item) => typeof item[keyName] === 'string' && item[keyName].toLowerCase() === key.toLowerCase());
|
|
34
|
+
return match ? match[keyName] : key;
|
|
35
|
+
}
|
|
36
|
+
return key;
|
|
37
|
+
});
|
|
38
|
+
}, [keyName]);
|
|
20
39
|
useEffect(() => {
|
|
40
|
+
const normalizedKeys = normalizeSelectedKeys(allItems, selectedRowKeys);
|
|
41
|
+
if (JSON.stringify(normalizedKeys) !== JSON.stringify(selectedRowKeys)) {
|
|
42
|
+
setSelectedRowKeys(normalizedKeys);
|
|
43
|
+
}
|
|
21
44
|
if (showOnlySelectedItems)
|
|
22
|
-
setFilteredItems(allItems.filter((o) =>
|
|
45
|
+
setFilteredItems(allItems.filter((o) => includesCaseInsensitive(normalizedKeys, o[keyName])));
|
|
23
46
|
else
|
|
24
47
|
setFilteredItems(allItems);
|
|
25
48
|
}, [showOnlySelectedItems, allItems, selectedRowKeys, keyName]);
|
|
26
49
|
useEffect(() => {
|
|
27
50
|
setSelectedRowCounter(selectedRowKeys);
|
|
28
51
|
}, [selectedRowKeys]);
|
|
29
|
-
const getSelectedIDs = () => { return filteredItems.filter((o) => selectedRowKeys
|
|
52
|
+
const getSelectedIDs = () => { return filteredItems.filter((o) => includesCaseInsensitive(selectedRowKeys, o[keyName])).map((item) => { return convertID ? convertID(item) : item[keyName]; }); };
|
|
30
53
|
const getFocusedIDs = () => { return filteredItems.filter((o) => o[keyName] == focusedRowKey).map((item) => { return convertID ? convertID(item) : item[keyName]; }); };
|
|
31
54
|
const renderTitle = () => { return title ? `${title} (${selectedRowCounter.length}/${filteredItems.length})` : SDKUI_Localizator.Select; };
|
|
32
55
|
const doGetItems = (refreshCache) => {
|
|
@@ -5,7 +5,8 @@ interface ITMDataListItemViewerProps {
|
|
|
5
5
|
value?: string | Date | number;
|
|
6
6
|
viewMode?: DataListViewModes;
|
|
7
7
|
showTooltip?: boolean;
|
|
8
|
+
width?: string;
|
|
8
9
|
}
|
|
9
|
-
declare const TMDataListItemViewer: ({ dataListId, value, viewMode, showTooltip }: ITMDataListItemViewerProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
10
|
+
declare const TMDataListItemViewer: ({ dataListId, value, viewMode, showTooltip, width }: ITMDataListItemViewerProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
10
11
|
export default TMDataListItemViewer;
|
|
11
12
|
export declare const cellRenderDataListItem: (data: DataGridTypes.ColumnCellTemplateData, dataListId?: number, viewMode?: DataListViewModes) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -5,7 +5,7 @@ import { SDKUI_Localizator } from '../../helper';
|
|
|
5
5
|
import TMTooltip from '../base/TMTooltip';
|
|
6
6
|
import { TMExceptionBoxManager } from '../base/TMPopUp';
|
|
7
7
|
import { useDataListItem } from '../../hooks/useDataListItem';
|
|
8
|
-
const TMDataListItemViewer = ({ dataListId, value, viewMode = DataListViewModes.ImageAndDescription, showTooltip = true }) => {
|
|
8
|
+
const TMDataListItemViewer = ({ dataListId, value, viewMode = DataListViewModes.ImageAndDescription, showTooltip = true, width = '100%' }) => {
|
|
9
9
|
const { loadDataListsAsync, getDataListItem, renderDataListCell, convertToDataListValue } = useDataListItem();
|
|
10
10
|
const [dataListItem, setDataListItem] = useState(undefined);
|
|
11
11
|
useEffect(() => {
|
|
@@ -36,7 +36,7 @@ const TMDataListItemViewer = ({ dataListId, value, viewMode = DataListViewModes.
|
|
|
36
36
|
return null;
|
|
37
37
|
}
|
|
38
38
|
const content = renderDataListCell(value, dataListId, viewMode);
|
|
39
|
-
return showTooltip ? (_jsx(TMTooltip, { content: dataListItem ? dataListItem.value : SDKUI_Localizator.ValueNotPresent, parentStyle: { width
|
|
39
|
+
return showTooltip ? (_jsx(TMTooltip, { content: dataListItem ? dataListItem.value : SDKUI_Localizator.ValueNotPresent, parentStyle: { width }, childStyle: { width }, children: content })) : content;
|
|
40
40
|
};
|
|
41
41
|
export default TMDataListItemViewer;
|
|
42
42
|
export const cellRenderDataListItem = (data, dataListId, viewMode) => {
|
package/package.json
CHANGED
|
@@ -1,57 +1,57 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@topconsultnpm/sdkui-react",
|
|
3
|
-
"version": "6.21.0-dev1.
|
|
4
|
-
"description": "",
|
|
5
|
-
"scripts": {
|
|
6
|
-
"test": "echo \"Error: no test specified\" && exit 1",
|
|
7
|
-
"clean": "powershell Remove-Item lib/ -recurse",
|
|
8
|
-
"copy-files": "copyfiles -u 1 src/assets/*.* src/assets/ImageLibrary/*.* src/assets/thumbnails/*.* src/assets/IconsS4t/*.* src/assets/Metadata/*.* src/css/tm-sdkui.css lib/",
|
|
9
|
-
"tm-build": "npm run clean && tsc && npm run copy-files",
|
|
10
|
-
"tm-watch": "tsc -w",
|
|
11
|
-
"tm-publish": "npm publish --tag latest",
|
|
12
|
-
"tm-publish_wl": "npm publish",
|
|
13
|
-
"storybook": "storybook dev -p 6006",
|
|
14
|
-
"build-storybook": "storybook build"
|
|
15
|
-
},
|
|
16
|
-
"author": "TopConsult",
|
|
17
|
-
"license": "ISC",
|
|
18
|
-
"devDependencies": {
|
|
19
|
-
"@chromatic-com/storybook": "^5.1.2",
|
|
20
|
-
"@storybook/addon-docs": "^10.3.5",
|
|
21
|
-
"@storybook/addon-onboarding": "^10.3.5",
|
|
22
|
-
"@storybook/react-vite": "^10.3.5",
|
|
23
|
-
"@types/htmlparser2": "^3.10.7",
|
|
24
|
-
"@types/node": "^24.12.2",
|
|
25
|
-
"@types/react": "^18.3.3",
|
|
26
|
-
"@types/react-dom": "^18.3.3",
|
|
27
|
-
"copyfiles": "^2.4.1",
|
|
28
|
-
"esbuild": "^0.25.0",
|
|
29
|
-
"react": "^18.3.1",
|
|
30
|
-
"react-dom": "^18.3.1",
|
|
31
|
-
"storybook": "^10.3.5",
|
|
32
|
-
"typescript": "^5.9.3",
|
|
33
|
-
"vite": "^6.1.1"
|
|
34
|
-
},
|
|
35
|
-
"main": "dist/cjs/index.js",
|
|
36
|
-
"types": "./index.d.ts",
|
|
37
|
-
"module": "lib/esm/index.js",
|
|
38
|
-
"files": [
|
|
39
|
-
"dist",
|
|
40
|
-
"lib"
|
|
41
|
-
],
|
|
42
|
-
"dependencies": {
|
|
43
|
-
"@topconsultnpm/sdk-ts": "6.21.0-dev1.
|
|
44
|
-
"buffer": "^6.0.3",
|
|
45
|
-
"devextreme": "^25.2.6",
|
|
46
|
-
"devextreme-react": "^25.2.6",
|
|
47
|
-
"exceljs": "^4.4.0",
|
|
48
|
-
"htmlparser2": "^10.0.0",
|
|
49
|
-
"pdfjs-dist": "5.4.296",
|
|
50
|
-
"react-pdf": "^10.3.0",
|
|
51
|
-
"react-router-dom": "^6.15.0",
|
|
52
|
-
"styled-components": "^6.1.1"
|
|
53
|
-
},
|
|
54
|
-
"overrides": {
|
|
55
|
-
"esbuild": "^0.25.0"
|
|
56
|
-
}
|
|
57
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@topconsultnpm/sdkui-react",
|
|
3
|
+
"version": "6.21.0-dev1.38",
|
|
4
|
+
"description": "",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
7
|
+
"clean": "powershell Remove-Item lib/ -recurse",
|
|
8
|
+
"copy-files": "copyfiles -u 1 src/assets/*.* src/assets/ImageLibrary/*.* src/assets/thumbnails/*.* src/assets/IconsS4t/*.* src/assets/Metadata/*.* src/css/tm-sdkui.css lib/",
|
|
9
|
+
"tm-build": "npm run clean && tsc && npm run copy-files",
|
|
10
|
+
"tm-watch": "tsc -w",
|
|
11
|
+
"tm-publish": "npm publish --tag latest",
|
|
12
|
+
"tm-publish_wl": "npm publish",
|
|
13
|
+
"storybook": "storybook dev -p 6006",
|
|
14
|
+
"build-storybook": "storybook build"
|
|
15
|
+
},
|
|
16
|
+
"author": "TopConsult",
|
|
17
|
+
"license": "ISC",
|
|
18
|
+
"devDependencies": {
|
|
19
|
+
"@chromatic-com/storybook": "^5.1.2",
|
|
20
|
+
"@storybook/addon-docs": "^10.3.5",
|
|
21
|
+
"@storybook/addon-onboarding": "^10.3.5",
|
|
22
|
+
"@storybook/react-vite": "^10.3.5",
|
|
23
|
+
"@types/htmlparser2": "^3.10.7",
|
|
24
|
+
"@types/node": "^24.12.2",
|
|
25
|
+
"@types/react": "^18.3.3",
|
|
26
|
+
"@types/react-dom": "^18.3.3",
|
|
27
|
+
"copyfiles": "^2.4.1",
|
|
28
|
+
"esbuild": "^0.25.0",
|
|
29
|
+
"react": "^18.3.1",
|
|
30
|
+
"react-dom": "^18.3.1",
|
|
31
|
+
"storybook": "^10.3.5",
|
|
32
|
+
"typescript": "^5.9.3",
|
|
33
|
+
"vite": "^6.1.1"
|
|
34
|
+
},
|
|
35
|
+
"main": "dist/cjs/index.js",
|
|
36
|
+
"types": "./index.d.ts",
|
|
37
|
+
"module": "lib/esm/index.js",
|
|
38
|
+
"files": [
|
|
39
|
+
"dist",
|
|
40
|
+
"lib"
|
|
41
|
+
],
|
|
42
|
+
"dependencies": {
|
|
43
|
+
"@topconsultnpm/sdk-ts": "6.21.0-dev1.5",
|
|
44
|
+
"buffer": "^6.0.3",
|
|
45
|
+
"devextreme": "^25.2.6",
|
|
46
|
+
"devextreme-react": "^25.2.6",
|
|
47
|
+
"exceljs": "^4.4.0",
|
|
48
|
+
"htmlparser2": "^10.0.0",
|
|
49
|
+
"pdfjs-dist": "5.4.296",
|
|
50
|
+
"react-pdf": "^10.3.0",
|
|
51
|
+
"react-router-dom": "^6.15.0",
|
|
52
|
+
"styled-components": "^6.1.1"
|
|
53
|
+
},
|
|
54
|
+
"overrides": {
|
|
55
|
+
"esbuild": "^0.25.0"
|
|
56
|
+
}
|
|
57
|
+
}
|