@topconsultnpm/sdkui-react 6.22.0-dev4.2 → 6.22.0-dev4.20

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 (150) hide show
  1. package/lib/components/NewComponents/ContextMenu/styles.d.ts +43 -45
  2. package/lib/components/NewComponents/FloatingMenuBar/styles.d.ts +60 -67
  3. package/lib/components/base/Styled.d.ts +77 -93
  4. package/lib/components/base/TMAlert.d.ts +2 -1
  5. package/lib/components/base/TMAlert.js +7 -6
  6. package/lib/components/base/TMCounterBar.d.ts +2 -2
  7. package/lib/components/base/TMCounterContainer.d.ts +4 -3
  8. package/lib/components/base/TMCounterContainer.js +16 -1
  9. package/lib/components/base/TMCustomButton.d.ts +1 -1
  10. package/lib/components/base/TMDataGrid.js +24 -4
  11. package/lib/components/base/TMDataGridExportForm.d.ts +1 -2
  12. package/lib/components/base/TMFileManager.d.ts +1 -2
  13. package/lib/components/base/TMFileManagerDataGridView.d.ts +1 -2
  14. package/lib/components/base/TMFileManagerThumbnailItems.d.ts +1 -1
  15. package/lib/components/base/TMFileManagerThumbnailsView.d.ts +1 -1
  16. package/lib/components/base/TMFileManagerUtils.d.ts +6 -4
  17. package/lib/components/base/TMLayout.d.ts +4 -4
  18. package/lib/components/base/TMList.d.ts +1 -2
  19. package/lib/components/base/TMListView.d.ts +1 -1
  20. package/lib/components/base/TMSpinner.d.ts +2 -3
  21. package/lib/components/base/TMTab.d.ts +3 -4
  22. package/lib/components/base/TMTabControl.js +208 -208
  23. package/lib/components/base/TMTooltip.d.ts +1 -1
  24. package/lib/components/base/TMTreeView.d.ts +8 -14
  25. package/lib/components/base/TMUserAvatar.d.ts +1 -2
  26. package/lib/components/base/TMVilViewer.d.ts +1 -2
  27. package/lib/components/base/TMWaitPanel.d.ts +2 -3
  28. package/lib/components/base/waitPanel/TMWaitPanelManager.d.ts +16 -6
  29. package/lib/components/base/waitPanel/TMWaitPanelManager.js +55 -2
  30. package/lib/components/base/waitPanel/TMWaitPanelView.d.ts +6 -2
  31. package/lib/components/base/waitPanel/TMWaitPanelView.js +75 -3
  32. package/lib/components/choosers/TMDistinctValues.js +3 -3
  33. package/lib/components/choosers/TMDynDataListItemChooser.d.ts +1 -1
  34. package/lib/components/choosers/TMInvoiceRetrieveFormats.d.ts +1 -2
  35. package/lib/components/choosers/TMOrderRetrieveFormats.d.ts +1 -2
  36. package/lib/components/choosers/TMQuickSearchInfo.d.ts +1 -2
  37. package/lib/components/choosers/TMRelationChooser.d.ts +3 -3
  38. package/lib/components/choosers/TMUserChooser.d.ts +3 -2
  39. package/lib/components/choosers/TMUserChooser.js +3 -3
  40. package/lib/components/editors/TMEditorStyled.d.ts +42 -20
  41. package/lib/components/editors/TMFormulaEditor.d.ts +1 -1
  42. package/lib/components/editors/TMHtmlContentDisplay.d.ts +1 -2
  43. package/lib/components/editors/TMHtmlEditor.d.ts +1 -2
  44. package/lib/components/editors/TMTreeDropDown.d.ts +1 -1
  45. package/lib/components/features/assistant/TMHelpOnLineChat.d.ts +0 -1
  46. package/lib/components/features/assistant/TMHelpOnLineChat.js +8 -161
  47. package/lib/components/features/assistant/TMToppyDraggableHelpCenter.d.ts +1 -1
  48. package/lib/components/features/blog/TMBlogCommentForm.d.ts +1 -2
  49. package/lib/components/features/documents/TMDcmtForm.d.ts +6 -1
  50. package/lib/components/features/documents/TMDcmtForm.js +42 -7
  51. package/lib/components/features/documents/TMDcmtFormActionButtons.d.ts +1 -1
  52. package/lib/components/features/documents/TMDcmtFormActionButtons.js +5 -2
  53. package/lib/components/features/documents/TMDcmtIcon.d.ts +1 -2
  54. package/lib/components/features/documents/TMDcmtPreview.d.ts +8 -8
  55. package/lib/components/features/documents/TMDcmtPreview.js +16 -7
  56. package/lib/components/features/documents/TMDcmtTasks.d.ts +1 -2
  57. package/lib/components/features/documents/TMDragDropOverlay.d.ts +1 -1
  58. package/lib/components/features/documents/TMFileUploader.js +21 -21
  59. package/lib/components/features/documents/TMMasterDetailDcmts.d.ts +2 -0
  60. package/lib/components/features/documents/TMMasterDetailDcmts.js +14 -5
  61. package/lib/components/features/documents/TMMasterInfoFields.d.ts +1 -2
  62. package/lib/components/features/documents/TMMergeToPdfForm.d.ts +1 -2
  63. package/lib/components/features/documents/TMMergeToPdfForm.js +5 -4
  64. package/lib/components/features/documents/TMMultiMasterDetailDcmtsForm.d.ts +1 -2
  65. package/lib/components/features/documents/TMMultiMasterDetailDcmtsUtils.d.ts +4 -4
  66. package/lib/components/features/search/TMDcmtCheckoutInfoForm.d.ts +1 -2
  67. package/lib/components/features/search/TMMetadataOutputForm.d.ts +1 -2
  68. package/lib/components/features/search/TMMetadataSorterForm.d.ts +1 -2
  69. package/lib/components/features/search/TMSavedQuerySelector.d.ts +2 -2
  70. package/lib/components/features/search/TMSearch.d.ts +1 -2
  71. package/lib/components/features/search/TMSearchQueryPanel.d.ts +3 -9
  72. package/lib/components/features/search/TMSearchResult.js +121 -91
  73. package/lib/components/features/search/TMSearchResultFloatingActionButton.d.ts +1 -1
  74. package/lib/components/features/search/TMSignatureInfoContent.d.ts +1 -2
  75. package/lib/components/features/search/TMViewHistoryDcmt.d.ts +1 -2
  76. package/lib/components/features/search/TMViewHistoryDcmt.js +1 -1
  77. package/lib/components/features/tasks/TMTaskForm.d.ts +1 -1
  78. package/lib/components/features/tasks/TMTaskFormUtils.d.ts +10 -10
  79. package/lib/components/features/tasks/TMTasksAgenda.d.ts +1 -1
  80. package/lib/components/features/tasks/TMTasksCalendar.d.ts +1 -1
  81. package/lib/components/features/tasks/TMTasksHeader.d.ts +1 -1
  82. package/lib/components/features/tasks/TMTasksPanelContent.d.ts +1 -1
  83. package/lib/components/features/tasks/TMTasksUtilsView.d.ts +5 -5
  84. package/lib/components/features/tasks/TMTasksView.d.ts +1 -1
  85. package/lib/components/features/tasks/TMTasksView.js +15 -9
  86. package/lib/components/features/wg/TMWGsCopyMoveForm.d.ts +2 -3
  87. package/lib/components/features/wg/TMWGsCopyMoveForm.js +8 -4
  88. package/lib/components/features/workflow/TMWorkflowPopup.d.ts +7 -8
  89. package/lib/components/features/workflow/TMWorkflowPopup.js +1 -1
  90. package/lib/components/features/workflow/diagram/WorkitemRecipientsEditor.d.ts +1 -3
  91. package/lib/components/forms/Login/ChangePasswordInputs.d.ts +1 -3
  92. package/lib/components/forms/Login/Chooser.d.ts +2 -2
  93. package/lib/components/forms/TMChooserForm.d.ts +1 -2
  94. package/lib/components/forms/TMSaveForm.d.ts +4 -4
  95. package/lib/components/grids/TMBlogAttachments.d.ts +1 -2
  96. package/lib/components/grids/TMBlogHeader.d.ts +1 -1
  97. package/lib/components/grids/TMBlogsPost.d.ts +1 -1
  98. package/lib/components/grids/TMBlogsPost.js +1 -1
  99. package/lib/components/grids/TMBlogsPostUtils.d.ts +9 -9
  100. package/lib/components/grids/TMValidationItemsList.d.ts +1 -2
  101. package/lib/components/layout/panelManager/TMPanelManagerContainer.d.ts +1 -2
  102. package/lib/components/layout/panelManager/TMPanelManagerContainer.js +12 -12
  103. package/lib/components/layout/panelManager/TMPanelManagerContext.d.ts +2 -2
  104. package/lib/components/layout/panelManager/TMPanelManagerLoader.d.ts +1 -2
  105. package/lib/components/layout/panelManager/TMPanelManagerToolbar.d.ts +6 -5
  106. package/lib/components/layout/panelManager/TMPanelManagerWithPersistenceProvider.d.ts +2 -2
  107. package/lib/components/layout/panelManager/TMPanelWrapper.d.ts +2 -2
  108. package/lib/components/pages/TMPage.d.ts +1 -1
  109. package/lib/components/pages/TMPage.js +13 -5
  110. package/lib/components/query/TMQueryEditor.d.ts +10 -14
  111. package/lib/components/settings/SettingsAppearance.d.ts +1 -2
  112. package/lib/components/sidebar/TMAboutApp.d.ts +1 -2
  113. package/lib/components/sidebar/TMCommandsPanel.d.ts +4 -4
  114. package/lib/components/sidebar/TMHeader.d.ts +3 -3
  115. package/lib/components/viewers/TMDataListItemViewer.d.ts +2 -3
  116. package/lib/components/viewers/TMDataUserIdItemViewer.d.ts +2 -3
  117. package/lib/components/viewers/TMMidViewer.d.ts +2 -2
  118. package/lib/components/viewers/TMTidViewer.d.ts +2 -2
  119. package/lib/helper/SDKUI_Globals.d.ts +7 -4
  120. package/lib/helper/SDKUI_Globals.js +7 -4
  121. package/lib/helper/SDKUI_Localizator.d.ts +13 -6
  122. package/lib/helper/SDKUI_Localizator.js +121 -51
  123. package/lib/helper/TMAppUpdatedModal.d.ts +1 -2
  124. package/lib/helper/TMAppUpdatedModal.js +93 -93
  125. package/lib/helper/TMCommandsContextMenu.d.ts +1 -1
  126. package/lib/helper/TMIcons.d.ts +282 -281
  127. package/lib/helper/TMIcons.js +4 -1
  128. package/lib/helper/TMPdfViewer.d.ts +1 -2
  129. package/lib/helper/TMToppyMessage.d.ts +2 -2
  130. package/lib/helper/TMUtils.d.ts +4 -10
  131. package/lib/helper/checkinCheckoutManager.js +2 -3
  132. package/lib/helper/helpers.d.ts +1 -1
  133. package/lib/helper/queryHelper.d.ts +15 -2
  134. package/lib/helper/queryHelper.js +52 -1
  135. package/lib/hooks/useCaseFlowApprove.js +31 -6
  136. package/lib/hooks/useCheckInOutOperations.js +2 -3
  137. package/lib/hooks/useDcmtOperations.js +24 -16
  138. package/lib/hooks/useDocumentOperations.d.ts +2 -0
  139. package/lib/hooks/useDocumentOperations.js +7 -7
  140. package/lib/hooks/useInputDialog.d.ts +1 -2
  141. package/lib/hooks/useMultiMasterDetailDcmts.js +10 -6
  142. package/lib/services/caseflow/CaseFlowService.d.ts +33 -3
  143. package/lib/services/caseflow/CaseFlowService.js +71 -44
  144. package/lib/services/caseflow/caseFlowNameCache.d.ts +5 -0
  145. package/lib/services/caseflow/caseFlowNameCache.js +19 -0
  146. package/lib/services/platform_services.d.ts +2 -3
  147. package/package.json +69 -69
  148. package/lib/components/features/assistant/dataset/Designer-Suggested-Questions.json +0 -102
  149. package/lib/components/features/assistant/dataset/Login-Suggested-Questions.json +0 -32
  150. package/lib/components/features/assistant/dataset/Surfer-Suggested-Questions.json +0 -102
@@ -1,6 +1,24 @@
1
- import { SDK_Globals, BlogPost, CaseFlowDcmt, CaseFlowInstanceDescriptor, CaseFlowParticipant, CaseFlowWIOperationDescriptor, MetadataValueDescriptor, CF_ParticipantRoles, CF_States, CF_WIOperations, CF_WorkItemCategories, CF_WorkItemStates, UserListCacheService, DcmtTypeListCacheService, } from '@topconsultnpm/sdk-ts';
1
+ import { SDK_Globals, BlogPost, CaseFlowDcmt, CaseFlowInstanceDescriptor, CaseFlowInstanceSearchDescriptor, CaseFlowParticipant, CaseFlowWIOperationDescriptor, MetadataValueDescriptor, CF_ParticipantRoles, CF_States, CF_WIOperations, CF_WorkItemCategories, CF_WorkItemStates, UserListCacheService, DcmtTypeListCacheService, } from '@topconsultnpm/sdk-ts';
2
2
  import { CaseFlowTemplateCacheService } from './CaseFlowTemplateCacheService';
3
- import { getTemplateNameSync, primeTemplateName, primeTemplateNames, primeActionNames } from './caseFlowNameCache';
3
+ import { primeTemplateName, primeTemplateNames, primeActionNames } from './caseFlowNameCache';
4
+ /** Numero massimo di pratiche restituite da una ricerca, se non indicato. */
5
+ export const CASEFLOW_SEARCH_DEFAULT_MAX_RESULTS = 500;
6
+ /**
7
+ * Tetto di `maxResults`. Il server non restituisce mai più di 5000 pratiche e
8
+ * se ne chiede una in più per sapere se il risultato è troncato: oltre 4999
9
+ * il troncamento non sarebbe più riconoscibile.
10
+ */
11
+ export const CASEFLOW_SEARCH_MAX_RESULTS = 4999;
12
+ /**
13
+ * Giorno `YYYY-MM-DD` come mezzanotte UTC. Il client lo invia con
14
+ * `toISOString()` e il server ne usa solo la data: una mezzanotte locale
15
+ * (`new Date(2026, 8, 30)` in Italia = `2026-09-29T22:00Z`) finirebbe sul
16
+ * giorno precedente.
17
+ */
18
+ function toUtcDay(day) {
19
+ const m = /^(\d{4})-(\d{2})-(\d{2})/.exec(day ?? '');
20
+ return m ? new Date(Date.UTC(Number(m[1]), Number(m[2]) - 1, Number(m[3]))) : undefined;
21
+ }
4
22
  export class CaseFlowService {
5
23
  // ----- Template / tipi documento (invariati: cache condivise) ------------
6
24
  /** Elenco dei template reali (via CaseFlowTemplateCacheService). */
@@ -105,50 +123,59 @@ export class CaseFlowService {
105
123
  const all = await this.loadAllInstances();
106
124
  return all.filter(cf => cf.ownerID === userId);
107
125
  }
108
- /** Ricerca avanzata sulle istanze applicando i filtri indicati. */
126
+ /**
127
+ * Ricerca avanzata sulle istanze, eseguita dal server (`usp_Cfi_Search`):
128
+ * restituisce solo le pratiche visibili all'utente che soddisfano i
129
+ * criteri, già con la copertina. Tutti i confronti di testo sono
130
+ * "contiene", senza distinzione fra maiuscole e minuscole.
131
+ *
132
+ * Per riconoscere un risultato troncato si chiede al server una pratica
133
+ * in più di `maxResults`: se arriva, la si scarta e `truncated` vale true.
134
+ */
109
135
  static async searchCaseflows(criteria) {
110
- const all = await this.loadAllInstances();
111
- const lowerIncludes = (haystack, needle) => (haystack ?? '').toLowerCase().includes(needle.toLowerCase());
112
- return all.filter(cf => {
113
- if (criteria.templateId != null && cf.cftid !== criteria.templateId)
114
- return false;
115
- if (criteria.name && !lowerIncludes(cf.name, criteria.name))
116
- return false;
117
- if (criteria.description && !lowerIncludes(cf.description, criteria.description))
118
- return false;
119
- if (criteria.state && cf.state !== criteria.state)
120
- return false;
121
- if (criteria.dateFrom) {
122
- const from = new Date(criteria.dateFrom);
123
- if (cf.creationTime && cf.creationTime < from)
124
- return false;
125
- }
126
- if (criteria.dateTo) {
127
- const to = new Date(criteria.dateTo);
128
- if (cf.creationTime && cf.creationTime > to)
129
- return false;
130
- }
131
- if (criteria.metadataFilters && criteria.metadataFilters.length > 0) {
132
- for (const mf of criteria.metadataFilters) {
133
- if (!mf.value.trim())
134
- continue;
135
- const cfMeta = (cf.cover ?? []).find(m => m.mid === mf.mid);
136
- if (!cfMeta || !lowerIncludes(cfMeta.value, mf.value))
137
- return false;
138
- }
139
- }
140
- if (criteria.freeTextMetadata && criteria.freeTextMetadata.trim()) {
141
- const needle = criteria.freeTextMetadata.trim();
142
- const matchesCommon = lowerIncludes(cf.name, needle)
143
- || lowerIncludes(cf.description, needle)
144
- || lowerIncludes(cf.ownerName, needle)
145
- || lowerIncludes(getTemplateNameSync(cf.cftid), needle);
146
- const matchesMeta = (cf.cover ?? []).some(m => lowerIncludes(m.value, needle) || lowerIncludes(m.metadataName, needle));
147
- if (!matchesCommon && !matchesMeta)
148
- return false;
136
+ const engine = SDK_Globals.tmSession?.NewCaseFlowInstanceEngine();
137
+ if (!engine)
138
+ return { items: [], truncated: false };
139
+ const max = Math.min(Math.max(Math.trunc(criteria.maxResults ?? CASEFLOW_SEARCH_DEFAULT_MAX_RESULTS), 1), CASEFLOW_SEARCH_MAX_RESULTS);
140
+ const text = (s) => s?.trim() || undefined;
141
+ const filter = new CaseFlowInstanceSearchDescriptor();
142
+ filter.cftid = criteria.templateId ?? 0;
143
+ filter.name = text(criteria.name);
144
+ filter.description = text(criteria.description);
145
+ filter.state = criteria.state;
146
+ filter.dateFrom = toUtcDay(criteria.dateFrom);
147
+ filter.dateTo = toUtcDay(criteria.dateTo);
148
+ filter.freeText = text(criteria.freeTextMetadata);
149
+ const metadataFilters = (criteria.metadataFilters ?? [])
150
+ .filter(mf => mf.value.trim())
151
+ .map(mf => MetadataValueDescriptor.fromJS({ mid: mf.mid, value: mf.value.trim() }));
152
+ filter.metadataFilters = metadataFilters.length > 0 ? metadataFilters : undefined;
153
+ filter.top = max + 1;
154
+ const list = (await engine.SearchAsync(filter)) ?? [];
155
+ const truncated = list.length > max;
156
+ const items = truncated ? list.slice(0, max) : list;
157
+ // Il server restituisce la copertina con i soli MID e valori: i nomi
158
+ // dei metadati vengono dalla copertina del modello. Lo stesso giro
159
+ // popola le cache dei nomi di modello e azioni usate in rendering.
160
+ const cftids = [...new Set(items.map(i => i.cftid).filter((c) => c != null))];
161
+ const templates = new Map();
162
+ await Promise.all(cftids.map(async (cftid) => {
163
+ const tpl = await CaseFlowTemplateCacheService.GetAsync(cftid);
164
+ if (!tpl)
165
+ return;
166
+ templates.set(cftid, tpl);
167
+ primeTemplateName(tpl.id, tpl.name);
168
+ primeActionNames(tpl);
169
+ }));
170
+ for (const inst of items) {
171
+ const tplCover = inst.cftid != null ? templates.get(inst.cftid)?.cover : undefined;
172
+ for (const m of inst.cover ?? []) {
173
+ if (!m.metadataName)
174
+ m.metadataName = tplCover?.find(md => md.id === m.mid)?.name;
149
175
  }
150
- return true;
151
- });
176
+ }
177
+ await this.resolveUserNames(items);
178
+ return { items, truncated };
152
179
  }
153
180
  /** WorkItem pendenti assegnati all'utente, raggruppati per istanza. */
154
181
  static async getMyPendingWorkItems(userId) {
@@ -30,3 +30,8 @@ export declare function primeActionNames(template?: CaseFlowTemplateDescriptor |
30
30
  * l'azione non lavora su un documento (o il template non è ancora risolto).
31
31
  */
32
32
  export declare function getActionTidSync(cftid?: number, actionID?: number): number | undefined;
33
+ /**
34
+ * true se l'azione del template chiude la pratica (`isFinal`). Con il template
35
+ * non ancora risolto ritorna false.
36
+ */
37
+ export declare function isFinalActionSync(cftid?: number, actionID?: number): boolean;
@@ -95,6 +95,11 @@ export function primeActionNames(template) {
95
95
  actionNameCache.set(actionKey(cftid, a.id), a.name ?? '');
96
96
  if (a.actionTID != null && a.actionTID > 0)
97
97
  actionTidCache.set(actionKey(cftid, a.id), a.actionTID);
98
+ // Il template può essere stato modificato: la chiave va anche tolta.
99
+ if (a.isFinal)
100
+ finalActionKeys.add(actionKey(cftid, a.id));
101
+ else
102
+ finalActionKeys.delete(actionKey(cftid, a.id));
98
103
  }
99
104
  }
100
105
  // ---- TID documento per azione (per template) --------------------------------
@@ -114,3 +119,17 @@ export function getActionTidSync(cftid, actionID) {
114
119
  return undefined;
115
120
  return actionTidCache.get(actionKey(cftid, actionID));
116
121
  }
122
+ // ---- Azioni che chiudono la pratica (per template) ---------------------------
123
+ //
124
+ // Anche `isFinal` vive solo SUL TEMPLATE: sull'azione d'istanza arriva sempre
125
+ // false. Popolata da {@link primeActionNames} come le cache qui sopra.
126
+ const finalActionKeys = new Set();
127
+ /**
128
+ * true se l'azione del template chiude la pratica (`isFinal`). Con il template
129
+ * non ancora risolto ritorna false.
130
+ */
131
+ export function isFinalActionSync(cftid, actionID) {
132
+ if (cftid == null || actionID == null)
133
+ return false;
134
+ return finalActionKeys.has(actionKey(cftid, actionID));
135
+ }
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import { JobTypes, ObjectClasses, ProcessDescriptor, DcmtTypeDescriptor } from "@topconsultnpm/sdk-ts";
3
2
  export declare class PlatformObjectService {
4
3
  static readonly retrieveAllAsync: (objClass: ObjectClasses, refreshCache?: boolean) => Promise<import("@topconsultnpm/sdk-ts").AreaDescriptor[] | import("@topconsultnpm/sdk-ts").NotificationDescriptor[] | import("@topconsultnpm/sdk-ts").RelationDescriptor[] | import("@topconsultnpm/sdk-ts").TaskDescriptor[] | import("@topconsultnpm/sdk-ts").WorkingGroupDescriptor[] | undefined>;
@@ -14,6 +13,6 @@ export declare class PlatformObjectService {
14
13
  static readonly createAsync: (objClass: ObjectClasses, jobType: JobTypes, d: any) => Promise<number | undefined>;
15
14
  static readonly deleteAsync: (objClass: ObjectClasses, id: number) => Promise<number | undefined>;
16
15
  static readonly getName: (objClass: ObjectClasses, jobType?: JobTypes, isPlural?: boolean) => string;
17
- static readonly getIcon: (objClass: ObjectClasses, d: any) => React.JSX.Element;
18
- static readonly getTooltip: (objClass: ObjectClasses, d: any) => React.JSX.Element | null;
16
+ static readonly getIcon: (objClass: ObjectClasses, d: any) => import("react/jsx-runtime").JSX.Element;
17
+ static readonly getTooltip: (objClass: ObjectClasses, d: any) => import("react/jsx-runtime").JSX.Element | null;
19
18
  }
package/package.json CHANGED
@@ -1,71 +1,71 @@
1
1
  {
2
- "name": "@topconsultnpm/sdkui-react",
3
- "version": "6.22.0-dev4.2",
4
- "description": "",
5
- "scripts": {
6
- "test": "echo \"Error: no test specified\" \u0026\u0026 exit 1",
7
- "clean": "node -e \"const fs=require(\u0027fs\u0027);fs.rmSync(\u0027lib\u0027,{recursive:true,force:true});fs.mkdirSync(\u0027lib\u0027)\"",
8
- "copy-files": "cpx \"src/{assets/*.*,assets/ImageLibrary/*.*,assets/thumbnails/*.*,assets/IconsS4t/*.*,assets/Metadata/*.*,css/tm-sdkui.css}\" lib",
9
- "tm-license": "devextreme-license --out src/devextreme-license.ts --force \u0026\u0026 node scripts/check-license.js",
10
- "pretm-build": "npm run tm-license",
11
- "tm-build": "npm run clean \u0026\u0026 tsc \u0026\u0026 npm run copy-files",
12
- "tm-watch": "tsc -w",
13
- "tm-publish": "npm publish --tag latest",
14
- "tm-publish_wl": "npm publish",
15
- "prestorybook": "npm run tm-license",
16
- "storybook": "storybook dev -p 6006",
17
- "prebuild-storybook": "npm run tm-license",
18
- "build-storybook": "storybook build"
19
- },
20
- "author": "TopConsult",
21
- "license": "ISC",
22
- "devDependencies": {
23
- "@chromatic-com/storybook": "^5.2.1",
24
- "@storybook/addon-docs": "^10.5.3",
25
- "@storybook/addon-onboarding": "^10.5.3",
26
- "@storybook/react-vite": "^10.5.3",
27
- "@types/node": "^24.12.2",
28
- "@types/react": "^18.3.3",
29
- "@types/react-dom": "^18.3.3",
30
- "cpx2": "^9.0.0",
31
- "react": "^18.3.1",
32
- "react-dom": "^18.3.1",
33
- "storybook": "^10.5.3",
34
- "typescript": "^7.0.2",
35
- "vite": "^8.1.5"
36
- },
37
- "main": "dist/cjs/index.js",
38
- "types": "./index.d.ts",
39
- "module": "lib/esm/index.js",
40
- "files": [
41
- "dist",
42
- "lib"
43
- ],
44
- "dependencies": {
45
- "react-pdf": "^10.4.1",
46
- "@zip.js/zip.js": "2.8.26",
47
- "pdf-lib": "^1.17.1",
48
- "devextreme-exceljs-fork": "^4.4.13",
49
- "buffer": "^6.0.3",
50
- "@topconsultnpm/sdk-ts": "6.22.0-t3",
51
- "react-window": "^2.2.7",
52
- "devextreme": "^26.1.4",
53
- "htmlparser2": "^10.0.0",
54
- "styled-components": "^6.1.1",
55
- "devextreme-react": "^26.1.4"
56
- },
57
- "overrides": {
58
- "esbuild": "^0.25.0",
59
- "devextreme-exceljs-fork": {
60
- "archiver": "^8.0.0"
61
- },
62
- "quill-delta": {
63
- "lodash.isequal": "npm:fast-deep-equal@^3.1.3"
64
- }
65
- },
66
- "allowScripts": {
67
- "core-js@3.49.0": true,
68
- "esbuild@0.25.12": true,
69
- "inferno@8.2.3": true
70
- }
2
+ "name": "@topconsultnpm/sdkui-react",
3
+ "version": "6.22.0-dev4.20",
4
+ "description": "",
5
+ "scripts": {
6
+ "test": "echo \"Error: no test specified\" && exit 1",
7
+ "clean": "node -e \"const fs=require('fs');fs.rmSync('lib',{recursive:true,force:true});fs.mkdirSync('lib')\"",
8
+ "copy-files": "cpx \"src/{assets/*.*,assets/ImageLibrary/*.*,assets/thumbnails/*.*,assets/IconsS4t/*.*,assets/Metadata/*.*,css/tm-sdkui.css}\" lib",
9
+ "tm-license": "devextreme-license --out src/devextreme-license.ts --force && node scripts/check-license.js",
10
+ "pretm-build": "npm run tm-license",
11
+ "tm-build": "npm run clean && tsc && npm run copy-files",
12
+ "tm-watch": "tsc -w",
13
+ "tm-publish": "npm publish --tag latest",
14
+ "tm-publish_wl": "npm publish",
15
+ "prestorybook": "npm run tm-license",
16
+ "storybook": "storybook dev -p 6006",
17
+ "prebuild-storybook": "npm run tm-license",
18
+ "build-storybook": "storybook build"
19
+ },
20
+ "author": "TopConsult",
21
+ "license": "ISC",
22
+ "devDependencies": {
23
+ "@chromatic-com/storybook": "^5.2.1",
24
+ "@storybook/addon-docs": "^10.5.3",
25
+ "@storybook/addon-onboarding": "^10.5.3",
26
+ "@storybook/react-vite": "^10.5.3",
27
+ "@types/node": "^24.12.2",
28
+ "@types/react": "^18.3.3",
29
+ "@types/react-dom": "^18.3.3",
30
+ "cpx2": "^9.0.0",
31
+ "react": "^18.3.1",
32
+ "react-dom": "^18.3.1",
33
+ "storybook": "^10.5.3",
34
+ "typescript": "^7.0.2",
35
+ "vite": "^8.1.5"
36
+ },
37
+ "main": "dist/cjs/index.js",
38
+ "types": "./index.d.ts",
39
+ "module": "lib/esm/index.js",
40
+ "files": [
41
+ "dist",
42
+ "lib"
43
+ ],
44
+ "dependencies": {
45
+ "@topconsultnpm/sdk-ts": "6.22.0-dev4.3",
46
+ "@zip.js/zip.js": "2.8.26",
47
+ "buffer": "^6.0.3",
48
+ "devextreme": "^26.1.4",
49
+ "devextreme-exceljs-fork": "^4.4.13",
50
+ "devextreme-react": "^26.1.4",
51
+ "htmlparser2": "^10.0.0",
52
+ "pdf-lib": "^1.17.1",
53
+ "react-pdf": "^10.4.1",
54
+ "react-window": "^2.2.7",
55
+ "styled-components": "^6.1.1"
56
+ },
57
+ "overrides": {
58
+ "esbuild": "^0.25.0",
59
+ "devextreme-exceljs-fork": {
60
+ "archiver": "^8.0.0"
61
+ },
62
+ "quill-delta": {
63
+ "lodash.isequal": "npm:fast-deep-equal@^3.1.3"
64
+ }
65
+ },
66
+ "allowScripts": {
67
+ "core-js@3.49.0": true,
68
+ "esbuild@0.25.12": true,
69
+ "inferno@8.2.3": true
70
+ }
71
71
  }
@@ -1,102 +0,0 @@
1
- [
2
- "Come metto un tipo documento dentro un albero?",
3
- "Perché l'area di appoggio non mostra i file?",
4
- "Che differenza c'è fra uno a molti e molti a molti?",
5
- "A che servono i tre pulsanti della pagina certificati?",
6
- "Che differenza c'è fra firma e marca temporale?",
7
- "Posso cambiare il percorso di un disco?",
8
- "Come esporto la configurazione?",
9
- "Che differenza c'è fra la finestra dell'errore e il contatore rosso?",
10
- "Ho archiviato un documento ma la ricerca libera non lo trova, perché?",
11
- "Perché un gruppo non ha l'elenco degli utenti?",
12
- "Come importo una configurazione?",
13
- "Perché il cestino è grigio nei server LDAP?",
14
- "Cosa succede ai documenti se elimino un valore di una lista dati?",
15
- "Perché il cestino è grigio nei server di marca temporale?",
16
- "Cosa sono i parametri fra parentesi graffe?",
17
- "Come impedisco di riusare le vecchie password?",
18
- "Perché la griglia dei permessi è vuota?",
19
- "Che differenza c'è fra Direct e LoadBalance?",
20
- "Quali campi ha un tipo serbatoio?",
21
- "Come capisco se un utente sta davvero lavorando?",
22
- "Perché il cestino è grigio nei server di firma?",
23
- "Come aggiungo un campo a un tipo documento?",
24
- "Quanti documenti ci sono in archivio?",
25
- "A che serve «Usa autenticazione sicura» su un utente?",
26
- "In che formato vengono mostrate le fatture elettroniche?",
27
- "Come definisco quali documenti entrano in una vista?",
28
- "Dove trovo la vista approvativa di un workflow?",
29
- "Perché salva è grigio negli alberi?",
30
- "Perché salva è grigio nelle aree di appoggio?",
31
- "Perché la correlazione funziona solo in un verso?",
32
- "Perché la firma non riesce pur essendo tutto compilato?",
33
- "Perché non riesco a creare il certificato?",
34
- "Che differenza c'è fra disco e area di appoggio?",
35
- "Come esporto un tipo documento con tutto ciò che gli serve?",
36
- "Che cosa vuol dire «Proseguendo le modifiche apportate andranno perse»?",
37
- "A che serve la coda della ricerca full text?",
38
- "Come metto una persona in un gruppo?",
39
- "Come importo un tipo documento che usa liste dati che qui non esistono?",
40
- "Dove metto utente e password del dominio?",
41
- "Perché salva è grigio nelle liste dati?",
42
- "Posso usare un certificatore diverso dai tre proposti?",
43
- "Come faccio ripartire il protocollo da 1 ogni anno?",
44
- "Come faccio scadere le password?",
45
- "Cosa vuol dire autorizzato e non autorizzato?",
46
- "Che cos'è un «Login SAP» e a che cosa serve?",
47
- "Perché salva è grigio nei tipi serbatoio?",
48
- "Dove trovo l'ID di sessione da dare all'assistenza?",
49
- "Quali campi ha un server di firma?",
50
- "Dove finiscono i file di questo tipo documento?",
51
- "Quanti documenti sono senza file?",
52
- "Ho creato un utente ma non vede niente, perché?",
53
- "Perché il link di un documento non funziona?",
54
- "Perché la stessa vista mostra cose diverse a persone diverse?",
55
- "Che differenza c'è fra partecipante e responsabile?",
56
- "Che cos'è un albero e a che cosa serve?",
57
- "Che cos'è un'area di appoggio e a che cosa serve?",
58
- "Perché dice «nessuna proprietà da definire»?",
59
- "A che cosa servono «OTP Provider» e «OTP ID» del certificato?",
60
- "Come aggiungo spazio all'archivio?",
61
- "Perché dopo l'importazione i gruppi non vedono nulla?",
62
- "Perché a volte è «Campo Obbligatorio» con la maiuscola?",
63
- "Perché questo gruppo non si lascia modificare?",
64
- "Devo importare tutto il file?",
65
- "Perché salva è grigio nel server LDAP?",
66
- "Che cos'è una lista dati e a che cosa serve?",
67
- "Perché salva è grigio nel server di marca temporale?",
68
- "Perché il numeratore dà sempre lo stesso numero?",
69
- "A cosa servono i tre puntini nella cella dei permessi?",
70
- "Dove si configura il collegamento a SAP?",
71
- "Che differenza c'è fra serbatoio, disco e area di appoggio?",
72
- "Quali colonne ha l'elenco delle sessioni?",
73
- "Dove si configura il servizio che manda il codice OTP?",
74
- "Che differenza c'è fra chiave primaria e indice univoco?",
75
- "Perché un utente non riesce più ad accedere?",
76
- "Come faccio vedere un documento a chi non ha un'utenza?",
77
- "Perché la linguetta «Metadati» di un tipo documento è obbligatoria?",
78
- "Perché la modifica al workflow non ha effetto?",
79
- "Perché non riesco a salvare un albero nuovo?",
80
- "Quali campi servono per un'area di appoggio?",
81
- "Come risolvo l'errore sulla seconda query di una correlazione?",
82
- "Perché salva è grigio nel certificato di firma?",
83
- "Cosa succede ai documenti se elimino il disco?",
84
- "Dove cambio il nome del file di esportazione?",
85
- "Perché il salvataggio riesce ma l'oggetto non funziona?",
86
- "Che cos'è un gruppo e perché i permessi si danno ai gruppi?",
87
- "Perché non vedo il pulsante delle opzioni di importazione?",
88
- "Che cos'è un server LDAP?",
89
- "Perché la lista nuova non compare da nessuna parte?",
90
- "Che cos'è un server di marca temporale?",
91
- "Che cos'è un numeratore e a che cosa serve?",
92
- "Perché non trovo l'oggetto nella griglia dei permessi?",
93
- "Posso recuperare un profilo eliminato?",
94
- "Dove si creano i tipi serbatoio?",
95
- "Come faccio uscire qualcuno dall'applicazione?",
96
- "Come provo che un server di firma funzioni?",
97
- "Che cosa sono le opzioni del tipo documento?",
98
- "Che cos'è il numero rosso nella scheda?",
99
- "In che lingua vede il documento chi riceve il link?",
100
- "Perché una vista ha meno opzioni di un tipo documento?",
101
- "Che differenza c'è fra errore e avviso?"
102
- ]
@@ -1,32 +0,0 @@
1
- [
2
- "Che cos'è la schermata di accesso?",
3
- "Quanti passaggi servono per entrare e come torno indietro?",
4
- "Che cos'è il punto di accesso?",
5
- "Come verifico che il punto di accesso risponda?",
6
- "Che cos'è l'archivio documentale che mi viene chiesto?",
7
- "Come si sceglie da un elenco a tendina o a finestra?",
8
- "Quali sono le cinque modalità di autenticazione?",
9
- "A che cosa servono i campi nome utente e password?",
10
- "Che cos'è l'accesso «per conto di»?",
11
- "Quali campi sono obbligatori per accedere?",
12
- "Quali controlli ci sono sul cambio e sul recupero della password?",
13
- "Che cos'è l'autenticazione a più fattori?",
14
- "Come si compilano le sei caselle del codice?",
15
- "Quali comandi ho accanto alle caselle del codice?",
16
- "Come ottengo il codice per posta elettronica o da applicazione?",
17
- "Quando compaiono «Cambia password» e «Password dimenticata»?",
18
- "Come si cambia la password dalla schermata di accesso?",
19
- "Ho dimenticato la password, come la recupero?",
20
- "Quali requisiti deve avere la nuova password?",
21
- "Che cosa sono gli accessi rapidi?",
22
- "Come creo un accesso rapido prima di entrare?",
23
- "Com'è fatto il pannello degli accessi rapidi?",
24
- "Come personalizzo nome, icona e colore di un accesso rapido?",
25
- "Come esporto e importo gli accessi rapidi?",
26
- "Come cambio la lingua della schermata di accesso?",
27
- "Quali versioni sono indicate nella schermata?",
28
- "Che cosa vogliono dire i messaggi della schermata di accesso?",
29
- "L'accesso non riesce: come capisco il motivo?",
30
- "Come accedo a TopMedia da telefono?",
31
- "La password nuova non viene accettata, perché?"
32
- ]
@@ -1,102 +0,0 @@
1
- [
2
- "Che cos'è l'Archiviazione?",
3
- "Che cosa succede facendo clic su un risultato?",
4
- "Che cosa significa tipo documento?",
5
- "Che cosa sono i metadati di output?",
6
- "Che cosa cambia negli elenchi e nelle finestre su Mobile?",
7
- "Che cos'è la ricerca naturale?",
8
- "Come effettuo una ricerca?",
9
- "Come apro la sezione Ricerca?",
10
- "Dove trovo i tipi documento in archiviazione?",
11
- "A cosa servono i metadati?",
12
- "Che cos'è un filtro di ricerca?",
13
- "Come si apre la ricerca naturale?",
14
- "In quale sezione di Surfer si cercano i documenti?",
15
- "Che cos'è la ricerca avanzata?",
16
- "Posso vedere il contenuto del file che sto archiviando?",
17
- "A cosa serve il tipo documento?",
18
- "Quali operatori di ricerca esistono?",
19
- "Come evito errori di battitura?",
20
- "Che cos'è la scheda del documento?",
21
- "Devo convertire il file prima di archiviarlo?",
22
- "Che cosa sono i metadati?",
23
- "Che cos'è l'ordinamento del risultato?",
24
- "Come cerco documenti di un certo periodo?",
25
- "Come vengono nominati i file copiati?",
26
- "Come scelgo il tipo documento da archiviare?",
27
- "Che cos'è la ricerca per metadati?",
28
- "Come cerco i documenti di oggi?",
29
- "Che cos'è l'editor delle formule?",
30
- "Dove metto il file da archiviare?",
31
- "Che cos'è un documento in Surfer?",
32
- "Come personalizzo i pannelli della ricerca?",
33
- "Come si apre il pannello «Impostazioni» e come è fatto?",
34
- "Come archivio una fattura elettronica?",
35
- "Cosa vuol dire prendere in carico un documento?",
36
- "Come aggiungo una colonna al risultato?",
37
- "Che cosa vedo dopo la ricerca?",
38
- "Che cosa sono i documenti master e dettaglio?",
39
- "Come ordino cliccando sulla colonna?",
40
- "Che cosa sono i metadati di sistema?",
41
- "Come non reimposto ogni volta i filtri?",
42
- "Come riconosco il tipo di dato di un metadato?",
43
- "Perché non posso modificare la ricerca?",
44
- "Che cos'è una vista e perché è scritta in rosso?",
45
- "Come unisco due ricerche?",
46
- "Che cos'è Toppy e in quanti modi compare nella Ricerca?",
47
- "Come scarico un documento?",
48
- "A cosa serve il check out?",
49
- "Come elimino un documento dall'archivio?",
50
- "Come prendo in carico un documento?",
51
- "Come esporto i risultati?",
52
- "Come metto un documento tra i preferiti?",
53
- "Come aggiorno i risultati?",
54
- "Dove sono finiti i documenti che avevo trovato?",
55
- "Come faccio a rivedere le ricerche rapide?",
56
- "Come scelgo il tipo documento dall'albero?",
57
- "Come cambio l'albero che si apre all'inizio?",
58
- "Come pulisco l'elenco delle scorciatoie?",
59
- "Come filtro l'elenco dei tipi documento?",
60
- "Perché non posso eliminare una ricerca?",
61
- "Come faccio partire sempre la stessa ricerca?",
62
- "Come richiamo una ricerca dalla pagina iniziale?",
63
- "Come annullo le modifiche ai filtri?",
64
- "Come aggiungo un campo di ricerca che non c'è?",
65
- "Come scelgo quali colonne vedere nel risultato?",
66
- "Come stabilisco la priorità dell'ordinamento?",
67
- "Come faccio partire subito una ricerca salvata?",
68
- "Come aggiungo un comando alla barra flottante?",
69
- "Come leggo il documento senza aprirlo?",
70
- "Come trovo un documento nei risultati?",
71
- "Come tolgo una colonna dalla vista?",
72
- "Come sostituisco il file?",
73
- "Come firmo un documento?",
74
- "Come trasformo un documento in pdf?",
75
- "Come cambio un valore su tanti documenti?",
76
- "Come trovo il documento principale?",
77
- "Come collego due documenti?",
78
- "Come archivio un documento simile?",
79
- "Come tengo aperta l'anteprima?",
80
- "Come faccio vedere l'anteprima dei file grandi?",
81
- "Come copio i file in una cartella?",
82
- "Come unisco più documenti?",
83
- "Perché la ricerca full text non lo trova?",
84
- "Come tolgo un documento dal gruppo di lavoro?",
85
- "Chi ha preso il documento in passato?",
86
- "Dove vedo i documenti condivisi?",
87
- "Come assegno un compito su un documento?",
88
- "Come scarico gli allegati di una fattura?",
89
- "Come scarico la lista dei documenti?",
90
- "Come cambio i dati di un documento?",
91
- "Come archivio partendo da una ricerca?",
92
- "Come faccio una ricerca complessa?",
93
- "Perché il risultato non è quello che mi aspetto?",
94
- "Come cerco una parola dentro i documenti?",
95
- "Come chiedo a Toppy di trovare un documento?",
96
- "Come copio i dati della firma?",
97
- "Chi ha modificato il documento e quando?",
98
- "Come risalgo dalla fattura all'ordine?",
99
- "Come imposto una ricerca per trovare un documento?",
100
- "Dove si cercano i documenti di un certo tipo?",
101
- "Come vedo la cronologia dei check out di un documento?"
102
- ]