@sankhyalabs/sankhyablocks 10.1.0-dev.50 → 10.1.0-dev.52
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/dist/cjs/{SnkMultiSelectionListDataSource-293bc3d2.js → SnkMultiSelectionListDataSource-d341dd02.js} +67 -20
- package/dist/cjs/snk-crud.cjs.entry.js +14 -0
- package/dist/cjs/snk-detail-view.cjs.entry.js +17 -3
- package/dist/cjs/snk-grid.cjs.entry.js +12 -3
- package/dist/cjs/{snk-guides-viewer-b4ca3437.js → snk-guides-viewer-8e7a503b.js} +1 -1
- package/dist/cjs/snk-guides-viewer.cjs.entry.js +1 -1
- package/dist/cjs/snk-simple-crud.cjs.entry.js +1 -1
- package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.css +4 -1
- package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js +17 -3
- package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.css +1 -1
- package/dist/collection/components/snk-crud/utils/taskbarUtils.js +14 -0
- package/dist/collection/components/snk-data-exporter/interfaces/IExporterProvider.js +67 -20
- package/dist/collection/components/snk-grid/snk-grid.css +10 -5
- package/dist/collection/components/snk-grid/snk-grid.js +10 -1
- package/dist/components/ContinuousInsertUtils.js +67 -20
- package/dist/components/snk-crud.js +14 -0
- package/dist/components/snk-detail-view2.js +17 -3
- package/dist/components/snk-grid2.js +11 -2
- package/dist/esm/{SnkMultiSelectionListDataSource-f6cabd15.js → SnkMultiSelectionListDataSource-18abafb1.js} +67 -20
- package/dist/esm/snk-crud.entry.js +14 -0
- package/dist/esm/snk-detail-view.entry.js +17 -3
- package/dist/esm/snk-grid.entry.js +12 -3
- package/dist/esm/{snk-guides-viewer-cc37535b.js → snk-guides-viewer-adf39ea2.js} +1 -1
- package/dist/esm/snk-guides-viewer.entry.js +1 -1
- package/dist/esm/snk-simple-crud.entry.js +1 -1
- package/dist/sankhyablocks/p-0a4cdcde.entry.js +1 -0
- package/dist/sankhyablocks/p-3d294185.entry.js +1 -0
- package/dist/sankhyablocks/{p-fec88660.entry.js → p-57c184a2.entry.js} +1 -1
- package/dist/sankhyablocks/p-5c250661.js +1 -0
- package/dist/sankhyablocks/{p-771b137e.js → p-b1bb4cf1.js} +1 -1
- package/dist/sankhyablocks/p-bd3c1aaa.entry.js +1 -0
- package/dist/sankhyablocks/{p-33492640.entry.js → p-dbdbb77a.entry.js} +1 -1
- package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
- package/dist/types/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.d.ts +2 -1
- package/dist/types/components/snk-data-exporter/interfaces/IExporterProvider.d.ts +8 -0
- package/dist/types/components/snk-grid/snk-grid.d.ts +1 -0
- package/package.json +1 -1
- package/dist/sankhyablocks/p-134702f6.entry.js +0 -1
- package/dist/sankhyablocks/p-7ad91135.entry.js +0 -1
- package/dist/sankhyablocks/p-9e77e136.js +0 -1
- package/dist/sankhyablocks/p-c0d6a821.entry.js +0 -1
|
@@ -250,41 +250,35 @@ class CommonsExporter {
|
|
|
250
250
|
return this.columnsState;
|
|
251
251
|
}
|
|
252
252
|
async buildColumnsMetadata(gridColumns) {
|
|
253
|
-
var _a
|
|
253
|
+
var _a;
|
|
254
254
|
const columnsMetadata = [];
|
|
255
|
+
const searchPlusDescriptionIds = this.collectSearchPlusDescriptionIds(gridColumns);
|
|
255
256
|
for (const column of gridColumns) {
|
|
257
|
+
if (this.isHiddenColumn(column)) {
|
|
258
|
+
continue;
|
|
259
|
+
}
|
|
256
260
|
/**
|
|
257
|
-
*
|
|
261
|
+
* A grid adiciona uma coluna auxiliar para a descrição de campos SEARCHPLUS
|
|
262
|
+
* (ex.: "ENTITYNAME.DESCRIPTIONFIELD"). A descrição já é emitida ao processar
|
|
263
|
+
* o próprio SEARCHPLUS, então pulamos a auxiliar para evitar duplicar a coluna.
|
|
258
264
|
*/
|
|
259
|
-
if (
|
|
265
|
+
if (searchPlusDescriptionIds.has(column.name)) {
|
|
260
266
|
continue;
|
|
261
267
|
}
|
|
262
268
|
const fieldData = (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getField(column.name);
|
|
263
269
|
const customFormatter = await this.grid.getCustomValueFormatter(column.name);
|
|
264
|
-
const
|
|
265
|
-
const
|
|
266
|
-
const labelColumn = isUserInterfaceSEARCH ? "Cód. " : column.label;
|
|
267
|
-
let descriptionColumn = undefined;
|
|
270
|
+
const isSearchField = this.isSearchUserInterface(fieldData);
|
|
271
|
+
const labelColumn = isSearchField ? "Cód. " : column.label;
|
|
268
272
|
let columnData = {
|
|
269
273
|
id: column.name,
|
|
270
274
|
label: labelColumn,
|
|
271
|
-
width:
|
|
275
|
+
width: isSearchField ? (labelColumn.length * this.DEFAULT_FONT_SIZE) : column.width,
|
|
272
276
|
type: fieldData === null || fieldData === void 0 ? void 0 : fieldData.dataType,
|
|
273
277
|
userInterface: fieldData === null || fieldData === void 0 ? void 0 : fieldData.userInterface,
|
|
274
278
|
customFormatter
|
|
275
279
|
};
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
const mergedFrom = fieldData.properties.mergedFrom;
|
|
279
|
-
const descriptionField = `${fieldData.properties.ENTITYNAME}.${fieldData.properties.DESCRIPTIONFIELD}`;
|
|
280
|
-
descriptionColumn = {
|
|
281
|
-
id: `${mergedFrom ? (mergedFrom + ".") : ""}${descriptionField}`,
|
|
282
|
-
label: labelDescription,
|
|
283
|
-
width: isUserInterfaceSEARCH && labelDescription ? (labelDescription.length * this.DEFAULT_FONT_SIZE - widthColumnDefault) : column.width,
|
|
284
|
-
type: DataType.TEXT,
|
|
285
|
-
userInterface: UserInterface$1.LONGTEXT,
|
|
286
|
-
descriptionFrom: fieldData.name
|
|
287
|
-
};
|
|
280
|
+
let descriptionColumn = isSearchField ? this.buildDescriptionColumn(fieldData, column) : undefined;
|
|
281
|
+
if (descriptionColumn) {
|
|
288
282
|
const newWidth = this.getWidthByMetaData(column === null || column === void 0 ? void 0 : column.width, columnData === null || columnData === void 0 ? void 0 : columnData.width, descriptionColumn === null || descriptionColumn === void 0 ? void 0 : descriptionColumn.width);
|
|
289
283
|
columnData = Object.assign(Object.assign({}, columnData), { width: newWidth === null || newWidth === void 0 ? void 0 : newWidth.codWidth });
|
|
290
284
|
descriptionColumn = Object.assign(Object.assign({}, descriptionColumn), { width: newWidth === null || newWidth === void 0 ? void 0 : newWidth.descWidth, label: (descriptionColumn === null || descriptionColumn === void 0 ? void 0 : descriptionColumn.label) || (column === null || column === void 0 ? void 0 : column.label) });
|
|
@@ -295,6 +289,59 @@ class CommonsExporter {
|
|
|
295
289
|
}
|
|
296
290
|
return columnsMetadata || [];
|
|
297
291
|
}
|
|
292
|
+
collectSearchPlusDescriptionIds(gridColumns) {
|
|
293
|
+
var _a;
|
|
294
|
+
const descriptionIds = new Set();
|
|
295
|
+
for (const column of gridColumns) {
|
|
296
|
+
if (this.isHiddenColumn(column)) {
|
|
297
|
+
continue;
|
|
298
|
+
}
|
|
299
|
+
const fieldData = (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getField(column.name);
|
|
300
|
+
if (!this.isSearchUserInterface(fieldData)) {
|
|
301
|
+
continue;
|
|
302
|
+
}
|
|
303
|
+
const descriptionId = this.buildDescriptionColumnId(fieldData);
|
|
304
|
+
if (descriptionId) {
|
|
305
|
+
descriptionIds.add(descriptionId);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
return descriptionIds;
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* TODO: Analisar e criar uma melhor forma de tratar essa validação do "RECDESP".
|
|
312
|
+
*/
|
|
313
|
+
isHiddenColumn(column) {
|
|
314
|
+
return column.hidden && column.name !== "RECDESP";
|
|
315
|
+
}
|
|
316
|
+
isSearchUserInterface(fieldData) {
|
|
317
|
+
return (fieldData === null || fieldData === void 0 ? void 0 : fieldData.userInterface) === UserInterface$1.SEARCH
|
|
318
|
+
|| (fieldData === null || fieldData === void 0 ? void 0 : fieldData.userInterface) === UserInterface$1.SEARCHPLUS;
|
|
319
|
+
}
|
|
320
|
+
buildDescriptionColumnId(fieldData) {
|
|
321
|
+
const properties = fieldData === null || fieldData === void 0 ? void 0 : fieldData.properties;
|
|
322
|
+
if ((properties === null || properties === void 0 ? void 0 : properties.DESCRIPTIONFIELD) == undefined) {
|
|
323
|
+
return undefined;
|
|
324
|
+
}
|
|
325
|
+
const descriptionField = `${properties.ENTITYNAME}.${properties.DESCRIPTIONFIELD}`;
|
|
326
|
+
return properties.mergedFrom ? `${properties.mergedFrom}.${descriptionField}` : descriptionField;
|
|
327
|
+
}
|
|
328
|
+
buildDescriptionColumn(fieldData, column) {
|
|
329
|
+
var _a;
|
|
330
|
+
const id = this.buildDescriptionColumnId(fieldData);
|
|
331
|
+
if (!id) {
|
|
332
|
+
return undefined;
|
|
333
|
+
}
|
|
334
|
+
const labelDescription = (_a = fieldData === null || fieldData === void 0 ? void 0 : fieldData.properties) === null || _a === void 0 ? void 0 : _a.DESCRIPTIONENTITY;
|
|
335
|
+
const widthColumnDefault = 60;
|
|
336
|
+
return {
|
|
337
|
+
id,
|
|
338
|
+
label: labelDescription,
|
|
339
|
+
width: labelDescription ? (labelDescription.length * this.DEFAULT_FONT_SIZE - widthColumnDefault) : column.width,
|
|
340
|
+
type: DataType.TEXT,
|
|
341
|
+
userInterface: UserInterface$1.LONGTEXT,
|
|
342
|
+
descriptionFrom: fieldData.name
|
|
343
|
+
};
|
|
344
|
+
}
|
|
298
345
|
getWidthByMetaData(maxWidth, widthCod, widthDescription) {
|
|
299
346
|
const totalCurrentWidth = widthCod + widthDescription;
|
|
300
347
|
const codPercentage = widthCod / totalCurrentWidth;
|
|
@@ -149,6 +149,16 @@ function insertCustomButtonsBeforeSpacer(buttons, customButtons) {
|
|
|
149
149
|
}
|
|
150
150
|
return [...customButtons, ...buttons];
|
|
151
151
|
}
|
|
152
|
+
function buildNavigationDisabledBtns(dataState) {
|
|
153
|
+
const navigationDisabled = [];
|
|
154
|
+
if (!(dataState === null || dataState === void 0 ? void 0 : dataState.hasPrevious)) {
|
|
155
|
+
navigationDisabled.push(TaskbarElement.PREVIOUS);
|
|
156
|
+
}
|
|
157
|
+
if (!(dataState === null || dataState === void 0 ? void 0 : dataState.hasNext)) {
|
|
158
|
+
navigationDisabled.push(TaskbarElement.NEXT);
|
|
159
|
+
}
|
|
160
|
+
return navigationDisabled;
|
|
161
|
+
}
|
|
152
162
|
function buildNativeTaskbarManager(currentViewMode, mergeTaskbarManager, messagesBuilder) {
|
|
153
163
|
var _a, _b;
|
|
154
164
|
const CUSTOM_BUTTONS = [
|
|
@@ -219,6 +229,10 @@ function buildNativeTaskbarManager(currentViewMode, mergeTaskbarManager, message
|
|
|
219
229
|
if (!hasSelectedRecord && buttonsRequiringSelection.includes(buttonName)) {
|
|
220
230
|
return false;
|
|
221
231
|
}
|
|
232
|
+
const navigationDisabled = buildNavigationDisabledBtns(dataState);
|
|
233
|
+
if (navigationDisabled.includes(buttonName)) {
|
|
234
|
+
return false;
|
|
235
|
+
}
|
|
222
236
|
return (_a = mergeTaskbarManager === null || mergeTaskbarManager === void 0 ? void 0 : mergeTaskbarManager.isEnabled(_, dataState, buttonName, originalValue)) !== null && _a !== void 0 ? _a : originalValue;
|
|
223
237
|
},
|
|
224
238
|
getMoreOptions(taskbarId, configName, dataState, currentActions) {
|
|
@@ -56,7 +56,7 @@ import { d as defineCustomElement$3 } from './taskbar-actions-button2.js';
|
|
|
56
56
|
import { d as defineCustomElement$2 } from './taskbar-split-button2.js';
|
|
57
57
|
import { d as defineCustomElement$j } from './snk-form-config2.js';
|
|
58
58
|
|
|
59
|
-
const snkGuidesViewerCss = ".sc-snk-guides-viewer-h{--snk-guides-viewer--space-large:var(--space--large, 24px);--snk-guides-viewer--space-small:var(--space--2xs, 8px);--snk-guides-viewer__header--min-height:132px;--snk-guides-viewer__header--z-index:var(--more-visible, 2);--snk-guides-viewer__header--background-color:var(--background--body, #fafcff);--snk-guides-viewer__guide-navigator--width:340px;--snk-workspace--header-height:40px;display:block;outline:none}ez-guide-navigator.sc-snk-guides-viewer{--ez-guide-navigator--border-radius:var(--space--12, 12px)}snk-form-view.sc-snk-guides-viewer{width:100%}stack-item.snk-guides-viewer.sc-snk-guides-viewer{display:grid}stack-item.sc-snk-guides-viewer.sc-snk-guides-viewer{display:grid;min-height:100%}.snk-guides-viewer.sc-snk-guides-viewer{position:relative;padding:0 var(--snk-guides-viewer--space-small);padding-bottom:var(--snk-guides-viewer--space-small)}.snk-guides-viewer__detail-container.sc-snk-guides-viewer{display:flex;row-gap:24px;flex-direction:column;max-height:calc(100vh - var(--snk-guides-viewer__header--min-height));overflow-y:auto}.snk-guides-viewer__header.sc-snk-guides-viewer{position:sticky;align-items:center;top:0;z-index:var(--snk-guides-viewer__header--z-index);background-color:var(--snk-guides-viewer__header--background-color);min-height:var(--snk-guides-viewer__header--min-height);width:calc(100% + (var(--snk-guides-viewer--space-large) * 2));padding-left:var(--snk-guides-viewer--space-large);padding-right:var(--snk-guides-viewer--space-large);padding-top:var(--snk-guides-viewer--space-large);padding-bottom:var(--snk-guides-viewer--space-small);margin-left:calc(var(--snk-guides-viewer--space-large) * -1);margin-right:calc(var(--snk-guides-viewer--space-large) * -1);margin-bottom:var(--snk-guides-viewer--space-small)}.snk-guides-viewer__header-breadcrumb.sc-snk-guides-viewer{width:25%;display:flex}.snk-guides-viewer__header-taskbar.sc-snk-guides-viewer{width:75%}.snk-guides-viewer__container.sc-snk-guides-viewer{display:grid;grid-template-columns:minmax(0, auto) minmax(0, 100%);height:100%;column-gap:var(--snk-guides-viewer--space-small)}.snk-guides-viewer__guide-navigator.sc-snk-guides-viewer{position:sticky;top:var(--snk-guides-viewer--space-small);height:
|
|
59
|
+
const snkGuidesViewerCss = ".sc-snk-guides-viewer-h{--snk-guides-viewer--space-large:var(--space--large, 24px);--snk-guides-viewer--space-small:var(--space--2xs, 8px);--snk-guides-viewer__header--min-height:132px;--snk-guides-viewer__header--z-index:var(--more-visible, 2);--snk-guides-viewer__header--background-color:var(--background--body, #fafcff);--snk-guides-viewer__guide-navigator--width:340px;--snk-workspace--header-height:40px;display:block;outline:none}ez-guide-navigator.sc-snk-guides-viewer{--ez-guide-navigator--border-radius:var(--space--12, 12px)}snk-form-view.sc-snk-guides-viewer{width:100%}stack-item.snk-guides-viewer.sc-snk-guides-viewer{display:grid}stack-item.sc-snk-guides-viewer.sc-snk-guides-viewer{display:grid;min-height:100%}.snk-guides-viewer.sc-snk-guides-viewer{position:relative;padding:0 var(--snk-guides-viewer--space-small);padding-bottom:var(--snk-guides-viewer--space-small)}.snk-guides-viewer__detail-container.sc-snk-guides-viewer{display:flex;row-gap:24px;flex-direction:column;max-height:calc(100vh - var(--snk-guides-viewer__header--min-height));overflow-y:auto}.snk-guides-viewer__header.sc-snk-guides-viewer{position:sticky;align-items:center;top:0;z-index:var(--snk-guides-viewer__header--z-index);background-color:var(--snk-guides-viewer__header--background-color);min-height:var(--snk-guides-viewer__header--min-height);width:calc(100% + (var(--snk-guides-viewer--space-large) * 2));padding-left:var(--snk-guides-viewer--space-large);padding-right:var(--snk-guides-viewer--space-large);padding-top:var(--snk-guides-viewer--space-large);padding-bottom:var(--snk-guides-viewer--space-small);margin-left:calc(var(--snk-guides-viewer--space-large) * -1);margin-right:calc(var(--snk-guides-viewer--space-large) * -1);margin-bottom:var(--snk-guides-viewer--space-small)}.snk-guides-viewer__header-breadcrumb.sc-snk-guides-viewer{width:25%;display:flex}.snk-guides-viewer__header-taskbar.sc-snk-guides-viewer{width:75%}.snk-guides-viewer__container.sc-snk-guides-viewer{display:grid;grid-template-columns:minmax(0, auto) minmax(0, 100%);height:100%;column-gap:var(--snk-guides-viewer--space-small)}.snk-guides-viewer__guide-navigator.sc-snk-guides-viewer{position:sticky;top:var(--snk-guides-viewer--space-small);height:calc(100vh - var(--snk-guides-viewer__header--min-height))}.snk-guides-viewer__guide-navigator[open].sc-snk-guides-viewer{width:var(--snk-guides-viewer__guide-navigator--width);max-width:var(--snk-guides-viewer__guide-navigator--width);min-width:var(--snk-guides-viewer__guide-navigator--width)}.snk-guides-viewer__detail-content.sc-snk-guides-viewer{min-height:100%;align-items:flex-start;align-content:flex-start}";
|
|
60
60
|
|
|
61
61
|
const FORM_NAME_PREFIX = "__FORM:";
|
|
62
62
|
const SnkGuidesViewer = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
@@ -899,7 +899,7 @@ class GuideBuilder {
|
|
|
899
899
|
}
|
|
900
900
|
}
|
|
901
901
|
|
|
902
|
-
const snkDetailViewCss = ".sc-snk-detail-view-h{display:flex;row-gap:24px;flex-direction:column;width:100%;height:100%}.level-path.sc-snk-detail-view{color:var(--color--title-primary, #2B3A54);font-weight:var(--text-weight--medium, 400);padding-right:3px}.form-taskbar.sc-snk-detail-view{padding-bottom:var(--space--medium)}.grid-container.sc-snk-detail-view{background-color:#FFF;min-height:100px;height:100%}.detail-header.sc-snk-detail-view{padding-bottom:0}snk-data-unit.sc-snk-detail-view{flex:1}snk-grid.sc-snk-detail-view{height:calc(100% -
|
|
902
|
+
const snkDetailViewCss = ".sc-snk-detail-view-h{display:flex;row-gap:24px;flex-direction:column;width:100%;height:100%}.level-path.sc-snk-detail-view{color:var(--color--title-primary, #2B3A54);font-weight:var(--text-weight--medium, 400);padding-right:3px}.form-taskbar.sc-snk-detail-view{padding-bottom:var(--space--medium)}.grid-container.sc-snk-detail-view{background-color:#FFF;min-height:100px;height:100%}.detail-header.sc-snk-detail-view{padding-bottom:0}snk-data-unit.sc-snk-detail-view{flex:1}snk-grid.sc-snk-detail-view{height:calc(100% - 56px);--snk-grid__header-padding:var(--space--4, 4px);--snk-grid-padding:var(--space--8, 8px);--snk-grid-box-shadow:unset}";
|
|
903
903
|
|
|
904
904
|
const SnkDetailView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
905
905
|
constructor() {
|
|
@@ -1086,6 +1086,9 @@ const SnkDetailView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
|
|
|
1086
1086
|
return [];
|
|
1087
1087
|
}
|
|
1088
1088
|
emitSwitchEvent(mode) {
|
|
1089
|
+
if (mode === VIEW_MODE.GRID) {
|
|
1090
|
+
this.dataUnit.isMultipleEdition = false;
|
|
1091
|
+
}
|
|
1089
1092
|
const guideId = mode === VIEW_MODE.GRID ? this.stripFormPattern(this.branchGuide.id) : this.getFormGuideId();
|
|
1090
1093
|
if (guideId) {
|
|
1091
1094
|
this.snkSwitchGuide.emit(guideId);
|
|
@@ -1096,6 +1099,11 @@ const SnkDetailView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
|
|
|
1096
1099
|
this.emitSwitchEvent(VIEW_MODE.GRID);
|
|
1097
1100
|
evt.stopPropagation();
|
|
1098
1101
|
}
|
|
1102
|
+
if (evt.detail === TaskbarElement.UPDATE_MULTIPLE) {
|
|
1103
|
+
this.dataUnit.isMultipleEdition = true;
|
|
1104
|
+
this.emitSwitchEvent(VIEW_MODE.FORM);
|
|
1105
|
+
evt.stopPropagation();
|
|
1106
|
+
}
|
|
1099
1107
|
if (evt.detail === TaskbarElement.FORM_MODE || evt.detail === TaskbarElement.UPDATE) {
|
|
1100
1108
|
this.emitSwitchEvent(VIEW_MODE.FORM);
|
|
1101
1109
|
evt.stopPropagation();
|
|
@@ -1140,6 +1148,12 @@ const SnkDetailView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
|
|
|
1140
1148
|
this.addErrorBadgeToBranchGuide();
|
|
1141
1149
|
}
|
|
1142
1150
|
else if (action.type === Action.DATA_LOADED) {
|
|
1151
|
+
this.handleDataLoaded();
|
|
1152
|
+
}
|
|
1153
|
+
}
|
|
1154
|
+
handleDataLoaded() {
|
|
1155
|
+
var _a;
|
|
1156
|
+
if (!((_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getSelectedRecord())) {
|
|
1143
1157
|
this.dataUnit.selectFirst();
|
|
1144
1158
|
}
|
|
1145
1159
|
}
|
|
@@ -1196,7 +1210,7 @@ const SnkDetailView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
|
|
|
1196
1210
|
render() {
|
|
1197
1211
|
this.updateLabel();
|
|
1198
1212
|
//const cardConfig: IFormCardConfig = this._cardsState?.get(this.selectedForm);
|
|
1199
|
-
return (h(Host, null, h("snk-data-unit", { ref: (el) => this._snkDataUnit = el, dataUnitName: `${this.dataUnitName}`, onDataUnitReady: evt => this.dataUnitReadyHandler(evt), entityName: this.entityName, onDataStateChange: this.handleDataStateChange.bind(this), ignoreSaveMessage: this._currentView === VIEW_MODE.GRID, messagesBuilder: this.messagesBuilder, configName: this._configName }, h("ez-view-stack", { ref: (ref) => this.updateViewStack(ref) }, h("stack-item", null, h("div", { class: "ez-box ez-box--shadow grid-container" }, h("div", { class: "ez-title--primary ez-size-width--full ez-padding--large detail-header" }, h("div", { class: "ez-flex ez-text ez-text--bold ez-flex--justify-start ez-flex--align-items-center" }, this._levelPath ? h("span", { class: "level-path" }, this._levelPath + " /") : undefined, this.label)), h("snk-grid", { class: "ez-size-width--full", ref: (ref) => this._snkGrid = ref, configName: this._configName, messagesBuilder: this.messagesBuilder, onGridDoubleClick: () => this.emitSwitchEvent(VIEW_MODE.FORM), onActionClick: (evt) => this.executeActionHandler(evt), presentationMode: this.presentationMode, canEdit: this.canEdit, isDetail: true, taskbarCustomContainerId: this.taskbarCustomContainerId, gridHeaderCustomSlotId: "DETAIL_GRID_HEADER_CUSTOM_ELEMENTS", topTaskbarCustomSlotId: "DETAIL_GRID_TASKBAR_CUSTOM_ELEMENTS", outlineMode: false, enableGridInsert: true, autoLoad: true }))), h("stack-item", null, h("snk-form-view", { ref: (ref) => this._snkFormView = ref, canExpand: false, canFix: false, name: this.selectedForm, formMetadata: this._formMetadata, dataUnit: this.dataUnit, fields: this.getFormFields(), fieldToFocus: this._fieldToGetFocus, label: this.label, levelPath: this._levelPath, onFormItemsReady: ({ detail: formItems }) => this.formItemsReady.emit(formItems), onSnkRequestClearFieldToFocus: this.clearFieldToFocusHandler.bind(this), fieldSearch: this._fieldSearch, entityPath: this.entityName }, h("snk-taskbar", { key: "guideViewerTaskbar", class: "form-taskbar", "data-element-id": "guideViewer", configName: this._configName, messagesBuilder: this.messagesBuilder, disabledButtons: this._disabledButtons, buttons: "INSERT,PREVIOUS,NEXT,DIVIDER,CLONE,REMOVE,MORE_OPTIONS,ACTIONS_BUTTON,DIVIDER,GRID_MODE,CONFIGURATOR", primaryButton: "INSERT", presentationMode: this.presentationMode, onActionClick: evt => this.executeActionHandler(evt), dataUnit: this.dataUnit, resourceID: this.resourceID, customContainerId: this.taskbarCustomContainerId, customSlotId: "DETAIL_TASKBAR_CUSTOM_ELEMENTS", actionsSettingsList: this.getSettingsListForm() }, h("slot", { name: "DETAIL_TASKBAR_CUSTOM_ELEMENTS" }))))), h("snk-attach", { ref: (ref) => this._snkAttach = ref, registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this.entityName }))));
|
|
1213
|
+
return (h(Host, null, h("snk-data-unit", { ref: (el) => this._snkDataUnit = el, dataUnitName: `${this.dataUnitName}`, onDataUnitReady: evt => this.dataUnitReadyHandler(evt), entityName: this.entityName, onDataStateChange: this.handleDataStateChange.bind(this), ignoreSaveMessage: this._currentView === VIEW_MODE.GRID, messagesBuilder: this.messagesBuilder, configName: this._configName }, h("ez-view-stack", { ref: (ref) => this.updateViewStack(ref) }, h("stack-item", null, h("div", { class: "ez-box ez-box--shadow grid-container" }, h("div", { class: "ez-title--primary ez-size-width--full ez-padding--large detail-header" }, h("div", { class: "ez-flex ez-text ez-text--bold ez-flex--justify-start ez-flex--align-items-center" }, this._levelPath ? h("span", { class: "level-path" }, this._levelPath + " /") : undefined, this.label)), h("snk-grid", { class: "ez-size-width--full", ref: (ref) => this._snkGrid = ref, configName: this._configName, messagesBuilder: this.messagesBuilder, onGridDoubleClick: () => this.emitSwitchEvent(VIEW_MODE.FORM), onActionClick: (evt) => this.executeActionHandler(evt), presentationMode: this.presentationMode, canEdit: this.canEdit, isDetail: true, taskbarCustomContainerId: this.taskbarCustomContainerId, gridHeaderCustomSlotId: "DETAIL_GRID_HEADER_CUSTOM_ELEMENTS", topTaskbarCustomSlotId: "DETAIL_GRID_TASKBAR_CUSTOM_ELEMENTS", outlineMode: false, enableGridInsert: true, autoLoad: true, multipleEditionEnabled: true, multipleSelection: true }))), h("stack-item", null, h("snk-form-view", { ref: (ref) => this._snkFormView = ref, canExpand: false, canFix: false, name: this.selectedForm, formMetadata: this._formMetadata, dataUnit: this.dataUnit, fields: this.getFormFields(), fieldToFocus: this._fieldToGetFocus, label: this.label, levelPath: this._levelPath, onFormItemsReady: ({ detail: formItems }) => this.formItemsReady.emit(formItems), onSnkRequestClearFieldToFocus: this.clearFieldToFocusHandler.bind(this), fieldSearch: this._fieldSearch, entityPath: this.entityName }, h("snk-taskbar", { key: "guideViewerTaskbar", class: "form-taskbar", "data-element-id": "guideViewer", configName: this._configName, messagesBuilder: this.messagesBuilder, disabledButtons: this._disabledButtons, buttons: "INSERT,PREVIOUS,NEXT,DIVIDER,CLONE,REMOVE,MORE_OPTIONS,ACTIONS_BUTTON,DIVIDER,GRID_MODE,CONFIGURATOR", primaryButton: "INSERT", presentationMode: this.presentationMode, onActionClick: evt => this.executeActionHandler(evt), dataUnit: this.dataUnit, resourceID: this.resourceID, customContainerId: this.taskbarCustomContainerId, customSlotId: "DETAIL_TASKBAR_CUSTOM_ELEMENTS", actionsSettingsList: this.getSettingsListForm() }, h("slot", { name: "DETAIL_TASKBAR_CUSTOM_ELEMENTS" }))))), h("snk-attach", { ref: (ref) => this._snkAttach = ref, registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this.entityName }))));
|
|
1200
1214
|
}
|
|
1201
1215
|
get _element() { return this; }
|
|
1202
1216
|
static get watchers() { return {
|
|
@@ -92,7 +92,7 @@ class ServerSideExporterProvider extends CommonsExporter {
|
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
94
|
|
|
95
|
-
const snkGridCss = ".sc-snk-grid-h{--snk-grid-min-height:300px;--snk-grid-padding:var(--space--small)}.snk-grid__container.sc-snk-grid{display:flex;height:100%;width:calc(100% - var(--space--12, 12px));margin:var(--snk-grid-
|
|
95
|
+
const snkGridCss = ".sc-snk-grid-h{--snk-grid-min-height:300px;--snk-grid-padding:unset;--snk-grid-margin:var(--space--small);--snk-grid-box-shadow:var(--shadow--small);--snk-grid__header-padding:unset}.snk-grid__container.sc-snk-grid{display:flex;height:100%;width:calc(100% - var(--space--12, 12px));margin:var(--snk-grid-margin);outline:none;border:1px solid var(--color--strokes, #E1E2E5);border-radius:var(--border--radius-12, 12px);box-shadow:var(--snk-grid-box-shadow);padding:var(--snk-grid-padding);--snk-grid-header--min-height:var(--space--52)}.snk-grid__header.sc-snk-grid{width:100%;display:flex;flex-wrap:nowrap;justify-content:flex-end;align-items:flex-start;min-height:var(--snk-grid-header--min-height);padding-top:var(--snk-grid__header-padding);padding-right:var(--snk-grid__header-padding)}.snk-grid__filter-bar.sc-snk-grid{width:100%}.snk-grid__header-divider.sc-snk-grid{margin-bottom:var(--space--medium);margin-right:var(--space--0);align-self:stretch}.snk-grid__header.sc-snk-grid snk-taskbar.sc-snk-grid{display:flex;align-items:flex-start;min-height:var(--snk-grid-header--min-height)}.snk-grid__header.sc-snk-grid ez-tooltip.sc-snk-grid{width:auto;margin-inline:var(--space--8, 8px)}.snk-grid__table.sc-snk-grid{min-height:var(--snk-grid-min-height)}.snk-grid-container__without-shadow.sc-snk-grid{--ezgrid__container--shadow:unset}.snk-grid-container__footer.sc-snk-grid{background-color:var(--background--xlight, #FFF);border-top:1px solid var(--color--strokes, #E1E2E5);border-radius:0 0 var(--border--radius-medium) var(--border--radius-medium)}";
|
|
96
96
|
|
|
97
97
|
const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
98
98
|
constructor() {
|
|
@@ -116,7 +116,7 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
116
116
|
'snkGridHeaderTaskbar.unselected': ['REFRESH', 'DATA_EXPORTER', 'ACTIONS_BUTTON', 'MORE_OPTIONS'],
|
|
117
117
|
'snkGridHeaderTaskbar.selected': this.getGridHeaderSelectedBtns(),
|
|
118
118
|
'snkGridHeaderTaskbar.detail.unselected': ['REFRESH', 'ACTIONS_BUTTON', 'MORE_OPTIONS'],
|
|
119
|
-
'snkGridHeaderTaskbar.detail.selected':
|
|
119
|
+
'snkGridHeaderTaskbar.detail.selected': this.getDetailGridSelectedBtns(),
|
|
120
120
|
'snkGridHeaderTaskbar.singleTaskbar.unselected': ['INSERT', 'FORM_MODE', 'CONFIGURATOR', 'REFRESH', 'DATA_EXPORTER', 'ACTIONS_BUTTON', 'MORE_OPTIONS'],
|
|
121
121
|
'snkGridHeaderTaskbar.singleTaskbar.selected': ['UPDATE', 'CLONE', 'REMOVE', 'MORE_OPTIONS', 'DIVIDER', 'ATTACH', 'FORM_MODE', 'CONFIGURATOR', 'REFRESH', 'DATA_EXPORTER', 'ACTIONS_BUTTON'],
|
|
122
122
|
'snkGridHeaderTaskbar.singleTaskbar.detail.unselected': ['INSERT', 'FORM_MODE', 'CONFIGURATOR', 'REFRESH', 'ACTIONS_BUTTON', 'MORE_OPTIONS'],
|
|
@@ -183,6 +183,15 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
183
183
|
this.hideHeader = false;
|
|
184
184
|
this.hideGridTaskbar = false;
|
|
185
185
|
}
|
|
186
|
+
getDetailGridSelectedBtns() {
|
|
187
|
+
const btns = [
|
|
188
|
+
TaskbarElement.UPDATE, TaskbarElement.ATTACH, TaskbarElement.CLONE, TaskbarElement.MORE_OPTIONS,
|
|
189
|
+
TaskbarElement.DIVIDER, TaskbarElement.REFRESH, TaskbarElement.ACTIONS_BUTTON
|
|
190
|
+
];
|
|
191
|
+
if (this.multipleEditionEnabled)
|
|
192
|
+
btns.unshift(TaskbarElement.UPDATE_MULTIPLE);
|
|
193
|
+
return btns;
|
|
194
|
+
}
|
|
186
195
|
getGridHeaderSelectedBtns() {
|
|
187
196
|
const btns = [
|
|
188
197
|
TaskbarElement.UPDATE, TaskbarElement.CLONE, TaskbarElement.REMOVE,
|
|
@@ -162,41 +162,35 @@ class CommonsExporter {
|
|
|
162
162
|
return this.columnsState;
|
|
163
163
|
}
|
|
164
164
|
async buildColumnsMetadata(gridColumns) {
|
|
165
|
-
var _a
|
|
165
|
+
var _a;
|
|
166
166
|
const columnsMetadata = [];
|
|
167
|
+
const searchPlusDescriptionIds = this.collectSearchPlusDescriptionIds(gridColumns);
|
|
167
168
|
for (const column of gridColumns) {
|
|
169
|
+
if (this.isHiddenColumn(column)) {
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
168
172
|
/**
|
|
169
|
-
*
|
|
173
|
+
* A grid adiciona uma coluna auxiliar para a descrição de campos SEARCHPLUS
|
|
174
|
+
* (ex.: "ENTITYNAME.DESCRIPTIONFIELD"). A descrição já é emitida ao processar
|
|
175
|
+
* o próprio SEARCHPLUS, então pulamos a auxiliar para evitar duplicar a coluna.
|
|
170
176
|
*/
|
|
171
|
-
if (
|
|
177
|
+
if (searchPlusDescriptionIds.has(column.name)) {
|
|
172
178
|
continue;
|
|
173
179
|
}
|
|
174
180
|
const fieldData = (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getField(column.name);
|
|
175
181
|
const customFormatter = await this.grid.getCustomValueFormatter(column.name);
|
|
176
|
-
const
|
|
177
|
-
const
|
|
178
|
-
const labelColumn = isUserInterfaceSEARCH ? "Cód. " : column.label;
|
|
179
|
-
let descriptionColumn = undefined;
|
|
182
|
+
const isSearchField = this.isSearchUserInterface(fieldData);
|
|
183
|
+
const labelColumn = isSearchField ? "Cód. " : column.label;
|
|
180
184
|
let columnData = {
|
|
181
185
|
id: column.name,
|
|
182
186
|
label: labelColumn,
|
|
183
|
-
width:
|
|
187
|
+
width: isSearchField ? (labelColumn.length * this.DEFAULT_FONT_SIZE) : column.width,
|
|
184
188
|
type: fieldData === null || fieldData === void 0 ? void 0 : fieldData.dataType,
|
|
185
189
|
userInterface: fieldData === null || fieldData === void 0 ? void 0 : fieldData.userInterface,
|
|
186
190
|
customFormatter
|
|
187
191
|
};
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
const mergedFrom = fieldData.properties.mergedFrom;
|
|
191
|
-
const descriptionField = `${fieldData.properties.ENTITYNAME}.${fieldData.properties.DESCRIPTIONFIELD}`;
|
|
192
|
-
descriptionColumn = {
|
|
193
|
-
id: `${mergedFrom ? (mergedFrom + ".") : ""}${descriptionField}`,
|
|
194
|
-
label: labelDescription,
|
|
195
|
-
width: isUserInterfaceSEARCH && labelDescription ? (labelDescription.length * this.DEFAULT_FONT_SIZE - widthColumnDefault) : column.width,
|
|
196
|
-
type: DataType.TEXT,
|
|
197
|
-
userInterface: UserInterface.LONGTEXT,
|
|
198
|
-
descriptionFrom: fieldData.name
|
|
199
|
-
};
|
|
192
|
+
let descriptionColumn = isSearchField ? this.buildDescriptionColumn(fieldData, column) : undefined;
|
|
193
|
+
if (descriptionColumn) {
|
|
200
194
|
const newWidth = this.getWidthByMetaData(column === null || column === void 0 ? void 0 : column.width, columnData === null || columnData === void 0 ? void 0 : columnData.width, descriptionColumn === null || descriptionColumn === void 0 ? void 0 : descriptionColumn.width);
|
|
201
195
|
columnData = Object.assign(Object.assign({}, columnData), { width: newWidth === null || newWidth === void 0 ? void 0 : newWidth.codWidth });
|
|
202
196
|
descriptionColumn = Object.assign(Object.assign({}, descriptionColumn), { width: newWidth === null || newWidth === void 0 ? void 0 : newWidth.descWidth, label: (descriptionColumn === null || descriptionColumn === void 0 ? void 0 : descriptionColumn.label) || (column === null || column === void 0 ? void 0 : column.label) });
|
|
@@ -207,6 +201,59 @@ class CommonsExporter {
|
|
|
207
201
|
}
|
|
208
202
|
return columnsMetadata || [];
|
|
209
203
|
}
|
|
204
|
+
collectSearchPlusDescriptionIds(gridColumns) {
|
|
205
|
+
var _a;
|
|
206
|
+
const descriptionIds = new Set();
|
|
207
|
+
for (const column of gridColumns) {
|
|
208
|
+
if (this.isHiddenColumn(column)) {
|
|
209
|
+
continue;
|
|
210
|
+
}
|
|
211
|
+
const fieldData = (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getField(column.name);
|
|
212
|
+
if (!this.isSearchUserInterface(fieldData)) {
|
|
213
|
+
continue;
|
|
214
|
+
}
|
|
215
|
+
const descriptionId = this.buildDescriptionColumnId(fieldData);
|
|
216
|
+
if (descriptionId) {
|
|
217
|
+
descriptionIds.add(descriptionId);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
return descriptionIds;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* TODO: Analisar e criar uma melhor forma de tratar essa validação do "RECDESP".
|
|
224
|
+
*/
|
|
225
|
+
isHiddenColumn(column) {
|
|
226
|
+
return column.hidden && column.name !== "RECDESP";
|
|
227
|
+
}
|
|
228
|
+
isSearchUserInterface(fieldData) {
|
|
229
|
+
return (fieldData === null || fieldData === void 0 ? void 0 : fieldData.userInterface) === UserInterface.SEARCH
|
|
230
|
+
|| (fieldData === null || fieldData === void 0 ? void 0 : fieldData.userInterface) === UserInterface.SEARCHPLUS;
|
|
231
|
+
}
|
|
232
|
+
buildDescriptionColumnId(fieldData) {
|
|
233
|
+
const properties = fieldData === null || fieldData === void 0 ? void 0 : fieldData.properties;
|
|
234
|
+
if ((properties === null || properties === void 0 ? void 0 : properties.DESCRIPTIONFIELD) == undefined) {
|
|
235
|
+
return undefined;
|
|
236
|
+
}
|
|
237
|
+
const descriptionField = `${properties.ENTITYNAME}.${properties.DESCRIPTIONFIELD}`;
|
|
238
|
+
return properties.mergedFrom ? `${properties.mergedFrom}.${descriptionField}` : descriptionField;
|
|
239
|
+
}
|
|
240
|
+
buildDescriptionColumn(fieldData, column) {
|
|
241
|
+
var _a;
|
|
242
|
+
const id = this.buildDescriptionColumnId(fieldData);
|
|
243
|
+
if (!id) {
|
|
244
|
+
return undefined;
|
|
245
|
+
}
|
|
246
|
+
const labelDescription = (_a = fieldData === null || fieldData === void 0 ? void 0 : fieldData.properties) === null || _a === void 0 ? void 0 : _a.DESCRIPTIONENTITY;
|
|
247
|
+
const widthColumnDefault = 60;
|
|
248
|
+
return {
|
|
249
|
+
id,
|
|
250
|
+
label: labelDescription,
|
|
251
|
+
width: labelDescription ? (labelDescription.length * this.DEFAULT_FONT_SIZE - widthColumnDefault) : column.width,
|
|
252
|
+
type: DataType.TEXT,
|
|
253
|
+
userInterface: UserInterface.LONGTEXT,
|
|
254
|
+
descriptionFrom: fieldData.name
|
|
255
|
+
};
|
|
256
|
+
}
|
|
210
257
|
getWidthByMetaData(maxWidth, widthCod, widthDescription) {
|
|
211
258
|
const totalCurrentWidth = widthCod + widthDescription;
|
|
212
259
|
const codPercentage = widthCod / totalCurrentWidth;
|
|
@@ -114,6 +114,16 @@ function insertCustomButtonsBeforeSpacer(buttons, customButtons) {
|
|
|
114
114
|
}
|
|
115
115
|
return [...customButtons, ...buttons];
|
|
116
116
|
}
|
|
117
|
+
function buildNavigationDisabledBtns(dataState) {
|
|
118
|
+
const navigationDisabled = [];
|
|
119
|
+
if (!(dataState === null || dataState === void 0 ? void 0 : dataState.hasPrevious)) {
|
|
120
|
+
navigationDisabled.push(TaskbarElement.PREVIOUS);
|
|
121
|
+
}
|
|
122
|
+
if (!(dataState === null || dataState === void 0 ? void 0 : dataState.hasNext)) {
|
|
123
|
+
navigationDisabled.push(TaskbarElement.NEXT);
|
|
124
|
+
}
|
|
125
|
+
return navigationDisabled;
|
|
126
|
+
}
|
|
117
127
|
function buildNativeTaskbarManager(currentViewMode, mergeTaskbarManager, messagesBuilder) {
|
|
118
128
|
var _a, _b;
|
|
119
129
|
const CUSTOM_BUTTONS = [
|
|
@@ -184,6 +194,10 @@ function buildNativeTaskbarManager(currentViewMode, mergeTaskbarManager, message
|
|
|
184
194
|
if (!hasSelectedRecord && buttonsRequiringSelection.includes(buttonName)) {
|
|
185
195
|
return false;
|
|
186
196
|
}
|
|
197
|
+
const navigationDisabled = buildNavigationDisabledBtns(dataState);
|
|
198
|
+
if (navigationDisabled.includes(buttonName)) {
|
|
199
|
+
return false;
|
|
200
|
+
}
|
|
187
201
|
return (_a = mergeTaskbarManager === null || mergeTaskbarManager === void 0 ? void 0 : mergeTaskbarManager.isEnabled(_, dataState, buttonName, originalValue)) !== null && _a !== void 0 ? _a : originalValue;
|
|
188
202
|
},
|
|
189
203
|
getMoreOptions(taskbarId, configName, dataState, currentActions) {
|
|
@@ -12,7 +12,7 @@ import './filter-item-type.enum-d45e026f.js';
|
|
|
12
12
|
import './form-config-fetcher-b44b2727.js';
|
|
13
13
|
import { V as VIEW_MODE } from './constants-7b422de0.js';
|
|
14
14
|
import { T as TaskbarElement } from './taskbar-elements-63651ca7.js';
|
|
15
|
-
import { S as SnkGuidesViewer } from './snk-guides-viewer-
|
|
15
|
+
import { S as SnkGuidesViewer } from './snk-guides-viewer-adf39ea2.js';
|
|
16
16
|
import { S as SnkMessageBuilder } from './SnkMessageBuilder-1eb7a1af.js';
|
|
17
17
|
import { buildFieldSearch, SHORTCUT_SEARCH_FIELD } from '@sankhyalabs/ezui/dist/collection/utils';
|
|
18
18
|
import './ConfigStorage-76872695.js';
|
|
@@ -72,7 +72,7 @@ class GuideBuilder {
|
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
-
const snkDetailViewCss = ".sc-snk-detail-view-h{display:flex;row-gap:24px;flex-direction:column;width:100%;height:100%}.level-path.sc-snk-detail-view{color:var(--color--title-primary, #2B3A54);font-weight:var(--text-weight--medium, 400);padding-right:3px}.form-taskbar.sc-snk-detail-view{padding-bottom:var(--space--medium)}.grid-container.sc-snk-detail-view{background-color:#FFF;min-height:100px;height:100%}.detail-header.sc-snk-detail-view{padding-bottom:0}snk-data-unit.sc-snk-detail-view{flex:1}snk-grid.sc-snk-detail-view{height:calc(100% -
|
|
75
|
+
const snkDetailViewCss = ".sc-snk-detail-view-h{display:flex;row-gap:24px;flex-direction:column;width:100%;height:100%}.level-path.sc-snk-detail-view{color:var(--color--title-primary, #2B3A54);font-weight:var(--text-weight--medium, 400);padding-right:3px}.form-taskbar.sc-snk-detail-view{padding-bottom:var(--space--medium)}.grid-container.sc-snk-detail-view{background-color:#FFF;min-height:100px;height:100%}.detail-header.sc-snk-detail-view{padding-bottom:0}snk-data-unit.sc-snk-detail-view{flex:1}snk-grid.sc-snk-detail-view{height:calc(100% - 56px);--snk-grid__header-padding:var(--space--4, 4px);--snk-grid-padding:var(--space--8, 8px);--snk-grid-box-shadow:unset}";
|
|
76
76
|
|
|
77
77
|
const SnkDetailView = class {
|
|
78
78
|
constructor(hostRef) {
|
|
@@ -258,6 +258,9 @@ const SnkDetailView = class {
|
|
|
258
258
|
return [];
|
|
259
259
|
}
|
|
260
260
|
emitSwitchEvent(mode) {
|
|
261
|
+
if (mode === VIEW_MODE.GRID) {
|
|
262
|
+
this.dataUnit.isMultipleEdition = false;
|
|
263
|
+
}
|
|
261
264
|
const guideId = mode === VIEW_MODE.GRID ? this.stripFormPattern(this.branchGuide.id) : this.getFormGuideId();
|
|
262
265
|
if (guideId) {
|
|
263
266
|
this.snkSwitchGuide.emit(guideId);
|
|
@@ -268,6 +271,11 @@ const SnkDetailView = class {
|
|
|
268
271
|
this.emitSwitchEvent(VIEW_MODE.GRID);
|
|
269
272
|
evt.stopPropagation();
|
|
270
273
|
}
|
|
274
|
+
if (evt.detail === TaskbarElement.UPDATE_MULTIPLE) {
|
|
275
|
+
this.dataUnit.isMultipleEdition = true;
|
|
276
|
+
this.emitSwitchEvent(VIEW_MODE.FORM);
|
|
277
|
+
evt.stopPropagation();
|
|
278
|
+
}
|
|
271
279
|
if (evt.detail === TaskbarElement.FORM_MODE || evt.detail === TaskbarElement.UPDATE) {
|
|
272
280
|
this.emitSwitchEvent(VIEW_MODE.FORM);
|
|
273
281
|
evt.stopPropagation();
|
|
@@ -312,6 +320,12 @@ const SnkDetailView = class {
|
|
|
312
320
|
this.addErrorBadgeToBranchGuide();
|
|
313
321
|
}
|
|
314
322
|
else if (action.type === Action.DATA_LOADED) {
|
|
323
|
+
this.handleDataLoaded();
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
handleDataLoaded() {
|
|
327
|
+
var _a;
|
|
328
|
+
if (!((_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getSelectedRecord())) {
|
|
315
329
|
this.dataUnit.selectFirst();
|
|
316
330
|
}
|
|
317
331
|
}
|
|
@@ -368,7 +382,7 @@ const SnkDetailView = class {
|
|
|
368
382
|
render() {
|
|
369
383
|
this.updateLabel();
|
|
370
384
|
//const cardConfig: IFormCardConfig = this._cardsState?.get(this.selectedForm);
|
|
371
|
-
return (h(Host, null, h("snk-data-unit", { ref: (el) => this._snkDataUnit = el, dataUnitName: `${this.dataUnitName}`, onDataUnitReady: evt => this.dataUnitReadyHandler(evt), entityName: this.entityName, onDataStateChange: this.handleDataStateChange.bind(this), ignoreSaveMessage: this._currentView === VIEW_MODE.GRID, messagesBuilder: this.messagesBuilder, configName: this._configName }, h("ez-view-stack", { ref: (ref) => this.updateViewStack(ref) }, h("stack-item", null, h("div", { class: "ez-box ez-box--shadow grid-container" }, h("div", { class: "ez-title--primary ez-size-width--full ez-padding--large detail-header" }, h("div", { class: "ez-flex ez-text ez-text--bold ez-flex--justify-start ez-flex--align-items-center" }, this._levelPath ? h("span", { class: "level-path" }, this._levelPath + " /") : undefined, this.label)), h("snk-grid", { class: "ez-size-width--full", ref: (ref) => this._snkGrid = ref, configName: this._configName, messagesBuilder: this.messagesBuilder, onGridDoubleClick: () => this.emitSwitchEvent(VIEW_MODE.FORM), onActionClick: (evt) => this.executeActionHandler(evt), presentationMode: this.presentationMode, canEdit: this.canEdit, isDetail: true, taskbarCustomContainerId: this.taskbarCustomContainerId, gridHeaderCustomSlotId: "DETAIL_GRID_HEADER_CUSTOM_ELEMENTS", topTaskbarCustomSlotId: "DETAIL_GRID_TASKBAR_CUSTOM_ELEMENTS", outlineMode: false, enableGridInsert: true, autoLoad: true }))), h("stack-item", null, h("snk-form-view", { ref: (ref) => this._snkFormView = ref, canExpand: false, canFix: false, name: this.selectedForm, formMetadata: this._formMetadata, dataUnit: this.dataUnit, fields: this.getFormFields(), fieldToFocus: this._fieldToGetFocus, label: this.label, levelPath: this._levelPath, onFormItemsReady: ({ detail: formItems }) => this.formItemsReady.emit(formItems), onSnkRequestClearFieldToFocus: this.clearFieldToFocusHandler.bind(this), fieldSearch: this._fieldSearch, entityPath: this.entityName }, h("snk-taskbar", { key: "guideViewerTaskbar", class: "form-taskbar", "data-element-id": "guideViewer", configName: this._configName, messagesBuilder: this.messagesBuilder, disabledButtons: this._disabledButtons, buttons: "INSERT,PREVIOUS,NEXT,DIVIDER,CLONE,REMOVE,MORE_OPTIONS,ACTIONS_BUTTON,DIVIDER,GRID_MODE,CONFIGURATOR", primaryButton: "INSERT", presentationMode: this.presentationMode, onActionClick: evt => this.executeActionHandler(evt), dataUnit: this.dataUnit, resourceID: this.resourceID, customContainerId: this.taskbarCustomContainerId, customSlotId: "DETAIL_TASKBAR_CUSTOM_ELEMENTS", actionsSettingsList: this.getSettingsListForm() }, h("slot", { name: "DETAIL_TASKBAR_CUSTOM_ELEMENTS" }))))), h("snk-attach", { ref: (ref) => this._snkAttach = ref, registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this.entityName }))));
|
|
385
|
+
return (h(Host, null, h("snk-data-unit", { ref: (el) => this._snkDataUnit = el, dataUnitName: `${this.dataUnitName}`, onDataUnitReady: evt => this.dataUnitReadyHandler(evt), entityName: this.entityName, onDataStateChange: this.handleDataStateChange.bind(this), ignoreSaveMessage: this._currentView === VIEW_MODE.GRID, messagesBuilder: this.messagesBuilder, configName: this._configName }, h("ez-view-stack", { ref: (ref) => this.updateViewStack(ref) }, h("stack-item", null, h("div", { class: "ez-box ez-box--shadow grid-container" }, h("div", { class: "ez-title--primary ez-size-width--full ez-padding--large detail-header" }, h("div", { class: "ez-flex ez-text ez-text--bold ez-flex--justify-start ez-flex--align-items-center" }, this._levelPath ? h("span", { class: "level-path" }, this._levelPath + " /") : undefined, this.label)), h("snk-grid", { class: "ez-size-width--full", ref: (ref) => this._snkGrid = ref, configName: this._configName, messagesBuilder: this.messagesBuilder, onGridDoubleClick: () => this.emitSwitchEvent(VIEW_MODE.FORM), onActionClick: (evt) => this.executeActionHandler(evt), presentationMode: this.presentationMode, canEdit: this.canEdit, isDetail: true, taskbarCustomContainerId: this.taskbarCustomContainerId, gridHeaderCustomSlotId: "DETAIL_GRID_HEADER_CUSTOM_ELEMENTS", topTaskbarCustomSlotId: "DETAIL_GRID_TASKBAR_CUSTOM_ELEMENTS", outlineMode: false, enableGridInsert: true, autoLoad: true, multipleEditionEnabled: true, multipleSelection: true }))), h("stack-item", null, h("snk-form-view", { ref: (ref) => this._snkFormView = ref, canExpand: false, canFix: false, name: this.selectedForm, formMetadata: this._formMetadata, dataUnit: this.dataUnit, fields: this.getFormFields(), fieldToFocus: this._fieldToGetFocus, label: this.label, levelPath: this._levelPath, onFormItemsReady: ({ detail: formItems }) => this.formItemsReady.emit(formItems), onSnkRequestClearFieldToFocus: this.clearFieldToFocusHandler.bind(this), fieldSearch: this._fieldSearch, entityPath: this.entityName }, h("snk-taskbar", { key: "guideViewerTaskbar", class: "form-taskbar", "data-element-id": "guideViewer", configName: this._configName, messagesBuilder: this.messagesBuilder, disabledButtons: this._disabledButtons, buttons: "INSERT,PREVIOUS,NEXT,DIVIDER,CLONE,REMOVE,MORE_OPTIONS,ACTIONS_BUTTON,DIVIDER,GRID_MODE,CONFIGURATOR", primaryButton: "INSERT", presentationMode: this.presentationMode, onActionClick: evt => this.executeActionHandler(evt), dataUnit: this.dataUnit, resourceID: this.resourceID, customContainerId: this.taskbarCustomContainerId, customSlotId: "DETAIL_TASKBAR_CUSTOM_ELEMENTS", actionsSettingsList: this.getSettingsListForm() }, h("slot", { name: "DETAIL_TASKBAR_CUSTOM_ELEMENTS" }))))), h("snk-attach", { ref: (ref) => this._snkAttach = ref, registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this.entityName }))));
|
|
372
386
|
}
|
|
373
387
|
get _element() { return getElement(this); }
|
|
374
388
|
static get watchers() { return {
|
|
@@ -4,7 +4,7 @@ import { SelectionMode } from '@sankhyalabs/core/dist/dataunit/DataUnit';
|
|
|
4
4
|
import { buildFieldSearch } from '@sankhyalabs/ezui/dist/collection/utils';
|
|
5
5
|
import './DataFetcher-e60f8d53.js';
|
|
6
6
|
import './ISave-4929c071.js';
|
|
7
|
-
import { C as CommonsExporter, T as TaskbarProcessor, a as CrudUtils, S as SnkMultiSelectionListDataSource, R as RmPrecisionCustomValueFormatter, b as ClientSideExporterProvider } from './SnkMultiSelectionListDataSource-
|
|
7
|
+
import { C as CommonsExporter, T as TaskbarProcessor, a as CrudUtils, S as SnkMultiSelectionListDataSource, R as RmPrecisionCustomValueFormatter, b as ClientSideExporterProvider } from './SnkMultiSelectionListDataSource-18abafb1.js';
|
|
8
8
|
import { P as PresentationMode, E as ExporterStrategy } from './index-b40568ff.js';
|
|
9
9
|
import '@sankhyalabs/ezui/dist/collection/utils/constants';
|
|
10
10
|
import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
|
|
@@ -80,7 +80,7 @@ class ServerSideExporterProvider extends CommonsExporter {
|
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
const snkGridCss = ".sc-snk-grid-h{--snk-grid-min-height:300px;--snk-grid-padding:var(--space--small)}.snk-grid__container.sc-snk-grid{display:flex;height:100%;width:calc(100% - var(--space--12, 12px));margin:var(--snk-grid-
|
|
83
|
+
const snkGridCss = ".sc-snk-grid-h{--snk-grid-min-height:300px;--snk-grid-padding:unset;--snk-grid-margin:var(--space--small);--snk-grid-box-shadow:var(--shadow--small);--snk-grid__header-padding:unset}.snk-grid__container.sc-snk-grid{display:flex;height:100%;width:calc(100% - var(--space--12, 12px));margin:var(--snk-grid-margin);outline:none;border:1px solid var(--color--strokes, #E1E2E5);border-radius:var(--border--radius-12, 12px);box-shadow:var(--snk-grid-box-shadow);padding:var(--snk-grid-padding);--snk-grid-header--min-height:var(--space--52)}.snk-grid__header.sc-snk-grid{width:100%;display:flex;flex-wrap:nowrap;justify-content:flex-end;align-items:flex-start;min-height:var(--snk-grid-header--min-height);padding-top:var(--snk-grid__header-padding);padding-right:var(--snk-grid__header-padding)}.snk-grid__filter-bar.sc-snk-grid{width:100%}.snk-grid__header-divider.sc-snk-grid{margin-bottom:var(--space--medium);margin-right:var(--space--0);align-self:stretch}.snk-grid__header.sc-snk-grid snk-taskbar.sc-snk-grid{display:flex;align-items:flex-start;min-height:var(--snk-grid-header--min-height)}.snk-grid__header.sc-snk-grid ez-tooltip.sc-snk-grid{width:auto;margin-inline:var(--space--8, 8px)}.snk-grid__table.sc-snk-grid{min-height:var(--snk-grid-min-height)}.snk-grid-container__without-shadow.sc-snk-grid{--ezgrid__container--shadow:unset}.snk-grid-container__footer.sc-snk-grid{background-color:var(--background--xlight, #FFF);border-top:1px solid var(--color--strokes, #E1E2E5);border-radius:0 0 var(--border--radius-medium) var(--border--radius-medium)}";
|
|
84
84
|
|
|
85
85
|
const SnkGrid = class {
|
|
86
86
|
constructor(hostRef) {
|
|
@@ -103,7 +103,7 @@ const SnkGrid = class {
|
|
|
103
103
|
'snkGridHeaderTaskbar.unselected': ['REFRESH', 'DATA_EXPORTER', 'ACTIONS_BUTTON', 'MORE_OPTIONS'],
|
|
104
104
|
'snkGridHeaderTaskbar.selected': this.getGridHeaderSelectedBtns(),
|
|
105
105
|
'snkGridHeaderTaskbar.detail.unselected': ['REFRESH', 'ACTIONS_BUTTON', 'MORE_OPTIONS'],
|
|
106
|
-
'snkGridHeaderTaskbar.detail.selected':
|
|
106
|
+
'snkGridHeaderTaskbar.detail.selected': this.getDetailGridSelectedBtns(),
|
|
107
107
|
'snkGridHeaderTaskbar.singleTaskbar.unselected': ['INSERT', 'FORM_MODE', 'CONFIGURATOR', 'REFRESH', 'DATA_EXPORTER', 'ACTIONS_BUTTON', 'MORE_OPTIONS'],
|
|
108
108
|
'snkGridHeaderTaskbar.singleTaskbar.selected': ['UPDATE', 'CLONE', 'REMOVE', 'MORE_OPTIONS', 'DIVIDER', 'ATTACH', 'FORM_MODE', 'CONFIGURATOR', 'REFRESH', 'DATA_EXPORTER', 'ACTIONS_BUTTON'],
|
|
109
109
|
'snkGridHeaderTaskbar.singleTaskbar.detail.unselected': ['INSERT', 'FORM_MODE', 'CONFIGURATOR', 'REFRESH', 'ACTIONS_BUTTON', 'MORE_OPTIONS'],
|
|
@@ -170,6 +170,15 @@ const SnkGrid = class {
|
|
|
170
170
|
this.hideHeader = false;
|
|
171
171
|
this.hideGridTaskbar = false;
|
|
172
172
|
}
|
|
173
|
+
getDetailGridSelectedBtns() {
|
|
174
|
+
const btns = [
|
|
175
|
+
TaskbarElement.UPDATE, TaskbarElement.ATTACH, TaskbarElement.CLONE, TaskbarElement.MORE_OPTIONS,
|
|
176
|
+
TaskbarElement.DIVIDER, TaskbarElement.REFRESH, TaskbarElement.ACTIONS_BUTTON
|
|
177
|
+
];
|
|
178
|
+
if (this.multipleEditionEnabled)
|
|
179
|
+
btns.unshift(TaskbarElement.UPDATE_MULTIPLE);
|
|
180
|
+
return btns;
|
|
181
|
+
}
|
|
173
182
|
getGridHeaderSelectedBtns() {
|
|
174
183
|
const btns = [
|
|
175
184
|
TaskbarElement.UPDATE, TaskbarElement.CLONE, TaskbarElement.REMOVE,
|
|
@@ -6,7 +6,7 @@ import { V as VIEW_MODE } from './constants-7b422de0.js';
|
|
|
6
6
|
import { S as SnkFormConfigManager } from './SnkFormConfigManager-83f6b22f.js';
|
|
7
7
|
import { T as TaskbarElement } from './taskbar-elements-63651ca7.js';
|
|
8
8
|
|
|
9
|
-
const snkGuidesViewerCss = ".sc-snk-guides-viewer-h{--snk-guides-viewer--space-large:var(--space--large, 24px);--snk-guides-viewer--space-small:var(--space--2xs, 8px);--snk-guides-viewer__header--min-height:132px;--snk-guides-viewer__header--z-index:var(--more-visible, 2);--snk-guides-viewer__header--background-color:var(--background--body, #fafcff);--snk-guides-viewer__guide-navigator--width:340px;--snk-workspace--header-height:40px;display:block;outline:none}ez-guide-navigator.sc-snk-guides-viewer{--ez-guide-navigator--border-radius:var(--space--12, 12px)}snk-form-view.sc-snk-guides-viewer{width:100%}stack-item.snk-guides-viewer.sc-snk-guides-viewer{display:grid}stack-item.sc-snk-guides-viewer.sc-snk-guides-viewer{display:grid;min-height:100%}.snk-guides-viewer.sc-snk-guides-viewer{position:relative;padding:0 var(--snk-guides-viewer--space-small);padding-bottom:var(--snk-guides-viewer--space-small)}.snk-guides-viewer__detail-container.sc-snk-guides-viewer{display:flex;row-gap:24px;flex-direction:column;max-height:calc(100vh - var(--snk-guides-viewer__header--min-height));overflow-y:auto}.snk-guides-viewer__header.sc-snk-guides-viewer{position:sticky;align-items:center;top:0;z-index:var(--snk-guides-viewer__header--z-index);background-color:var(--snk-guides-viewer__header--background-color);min-height:var(--snk-guides-viewer__header--min-height);width:calc(100% + (var(--snk-guides-viewer--space-large) * 2));padding-left:var(--snk-guides-viewer--space-large);padding-right:var(--snk-guides-viewer--space-large);padding-top:var(--snk-guides-viewer--space-large);padding-bottom:var(--snk-guides-viewer--space-small);margin-left:calc(var(--snk-guides-viewer--space-large) * -1);margin-right:calc(var(--snk-guides-viewer--space-large) * -1);margin-bottom:var(--snk-guides-viewer--space-small)}.snk-guides-viewer__header-breadcrumb.sc-snk-guides-viewer{width:25%;display:flex}.snk-guides-viewer__header-taskbar.sc-snk-guides-viewer{width:75%}.snk-guides-viewer__container.sc-snk-guides-viewer{display:grid;grid-template-columns:minmax(0, auto) minmax(0, 100%);height:100%;column-gap:var(--snk-guides-viewer--space-small)}.snk-guides-viewer__guide-navigator.sc-snk-guides-viewer{position:sticky;top:var(--snk-guides-viewer--space-small);height:
|
|
9
|
+
const snkGuidesViewerCss = ".sc-snk-guides-viewer-h{--snk-guides-viewer--space-large:var(--space--large, 24px);--snk-guides-viewer--space-small:var(--space--2xs, 8px);--snk-guides-viewer__header--min-height:132px;--snk-guides-viewer__header--z-index:var(--more-visible, 2);--snk-guides-viewer__header--background-color:var(--background--body, #fafcff);--snk-guides-viewer__guide-navigator--width:340px;--snk-workspace--header-height:40px;display:block;outline:none}ez-guide-navigator.sc-snk-guides-viewer{--ez-guide-navigator--border-radius:var(--space--12, 12px)}snk-form-view.sc-snk-guides-viewer{width:100%}stack-item.snk-guides-viewer.sc-snk-guides-viewer{display:grid}stack-item.sc-snk-guides-viewer.sc-snk-guides-viewer{display:grid;min-height:100%}.snk-guides-viewer.sc-snk-guides-viewer{position:relative;padding:0 var(--snk-guides-viewer--space-small);padding-bottom:var(--snk-guides-viewer--space-small)}.snk-guides-viewer__detail-container.sc-snk-guides-viewer{display:flex;row-gap:24px;flex-direction:column;max-height:calc(100vh - var(--snk-guides-viewer__header--min-height));overflow-y:auto}.snk-guides-viewer__header.sc-snk-guides-viewer{position:sticky;align-items:center;top:0;z-index:var(--snk-guides-viewer__header--z-index);background-color:var(--snk-guides-viewer__header--background-color);min-height:var(--snk-guides-viewer__header--min-height);width:calc(100% + (var(--snk-guides-viewer--space-large) * 2));padding-left:var(--snk-guides-viewer--space-large);padding-right:var(--snk-guides-viewer--space-large);padding-top:var(--snk-guides-viewer--space-large);padding-bottom:var(--snk-guides-viewer--space-small);margin-left:calc(var(--snk-guides-viewer--space-large) * -1);margin-right:calc(var(--snk-guides-viewer--space-large) * -1);margin-bottom:var(--snk-guides-viewer--space-small)}.snk-guides-viewer__header-breadcrumb.sc-snk-guides-viewer{width:25%;display:flex}.snk-guides-viewer__header-taskbar.sc-snk-guides-viewer{width:75%}.snk-guides-viewer__container.sc-snk-guides-viewer{display:grid;grid-template-columns:minmax(0, auto) minmax(0, 100%);height:100%;column-gap:var(--snk-guides-viewer--space-small)}.snk-guides-viewer__guide-navigator.sc-snk-guides-viewer{position:sticky;top:var(--snk-guides-viewer--space-small);height:calc(100vh - var(--snk-guides-viewer__header--min-height))}.snk-guides-viewer__guide-navigator[open].sc-snk-guides-viewer{width:var(--snk-guides-viewer__guide-navigator--width);max-width:var(--snk-guides-viewer__guide-navigator--width);min-width:var(--snk-guides-viewer__guide-navigator--width)}.snk-guides-viewer__detail-content.sc-snk-guides-viewer{min-height:100%;align-items:flex-start;align-content:flex-start}";
|
|
10
10
|
|
|
11
11
|
const FORM_NAME_PREFIX = "__FORM:";
|
|
12
12
|
const SnkGuidesViewer = class {
|
|
@@ -5,7 +5,7 @@ import { V as VIEW_MODE, S as SIMPLE_CRUD_MODE } from './constants-7b422de0.js';
|
|
|
5
5
|
import { T as TaskbarElement } from './taskbar-elements-63651ca7.js';
|
|
6
6
|
import './DataFetcher-e60f8d53.js';
|
|
7
7
|
import './ISave-4929c071.js';
|
|
8
|
-
import { S as SnkMultiSelectionListDataSource, T as TaskbarProcessor, R as RmPrecisionCustomValueFormatter, a as CrudUtils, b as ClientSideExporterProvider } from './SnkMultiSelectionListDataSource-
|
|
8
|
+
import { S as SnkMultiSelectionListDataSource, T as TaskbarProcessor, R as RmPrecisionCustomValueFormatter, a as CrudUtils, b as ClientSideExporterProvider } from './SnkMultiSelectionListDataSource-18abafb1.js';
|
|
9
9
|
import { P as PresentationMode } from './index-b40568ff.js';
|
|
10
10
|
import '@sankhyalabs/ezui/dist/collection/utils/constants';
|
|
11
11
|
import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as t,e as i,i as s,h as e,f as a,g as o}from"./p-2c9d0870.js";import{Action as h,StringUtils as n,KeyboardManager as r}from"@sankhyalabs/core";import{S as d}from"./p-ab5e12fa.js";import{FormMetadata as l,buildFormMetadata as c}from"@sankhyalabs/ezui/dist/collection/utils/form";import"./p-2af8aca3.js";import"./p-4f7adf97.js";import{P as u}from"./p-0f3698af.js";import"@sankhyalabs/ezui/dist/collection/utils/constants";import"@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata";import"./p-6e278003.js";import"./p-ff1990ad.js";import"./p-3870748a.js";import{V as m}from"./p-9019a32f.js";import{T as v}from"./p-3072136e.js";import{S as p}from"./p-b1bb4cf1.js";import{S as g}from"./p-554c0e54.js";import{buildFieldSearch as f,SHORTCUT_SEARCH_FIELD as b}from"@sankhyalabs/ezui/dist/collection/utils";import"./p-3c990841.js";import"./p-8d884fab.js";import"@sankhyalabs/ezui/dist/collection/components/ez-grid/utils";import"@sankhyalabs/core/dist/utils/SortingUtils";import"./p-688dcb4c.js";import"./p-a73b6b00.js";class k{constructor(t,i,s,e){this._parentGuide=t,this._formMetadata=i,this._dataUnit=s,this._messageBuilder=e,this._messageBuilder||(this._messageBuilder=new g)}get id(){return this._parentGuide.id}getMessage(t,i){return this._messageBuilder.getMessage(t,i)}buildGuideItem(t){const i=Object.assign({},this._parentGuide);delete i.expanded,delete i.children;const s=this._dataUnit.getSelectedRecord();if(!s)return i;const e=this._dataUnit.isNewRecord(s.__record__id__),a=Array.from(this._formMetadata.getAllSheets().values()).map((i=>{const{name:s,label:a}=i,o=null!=l.getDetailName(s.split("::").pop()),h=o&&e,n=this._parentGuide.id,r=o?`${n}::${s}`:`${n}__FORM:${s}`;return o&&t.has(r)&&!h?t.get(r).buildGuideItem(t):{id:r,label:a,disabled:h,tooltip:h?this.getMessage("snkCrud.guide.tooltip.disabledDetail"):void 0}})),o=a.shift();return o.label=e?this.getMessage("snkCrud.newRecord"):s.__record__label__,o.children=a,i.children=[o],i}}const w=class{constructor(s){t(this,s),this.snkDetailGuidesChange=i(this,"snkDetailGuidesChange",7),this.snkSwitchGuide=i(this,"snkSwitchGuide",7),this.formItemsReady=i(this,"formItemsReady",7),this._disabledButtons=void 0,this._currentView=void 0,this.attachmentRegisterKey=void 0,this._fieldToGetFocus=void 0,this._hasToCreateFieldSearch=!0,this.formConfigManager=void 0,this.dataUnitName=void 0,this.resourceID=void 0,this.guideItemPath=void 0,this.entityName=void 0,this.label=void 0,this.dataUnit=void 0,this.selectedForm=void 0,this.dataState=void 0,this.messagesBuilder=void 0,this.branchGuide=void 0,this.canEdit=!0,this.taskbarCustomContainerId=void 0,this.customEditors=void 0,this.customRenders=void 0,this.presentationMode=u.SECONDARY}observeDataUnit(t,i){null==t||t.subscribe(this.dataUnitActionHandler.bind(this)),null==i||i.unsubscribe(this.dataUnitActionHandler)}observerDataState(t,i){const s=!(null==i?void 0:i.insertionMode)&&(null==t?void 0:t.insertionMode),e=(null==i?void 0:i.insertionMode)&&!(null==t?void 0:t.insertionMode);if((s||e)&&this.loadMetadata(),null==this._formMetadata)return;const a=null==t?void 0:t.selectedRecord,o=null==i?void 0:i.selectedRecord;(null==a?void 0:a.__record__id__)!==(null==o?void 0:o.__record__id__)&&this.snkDetailGuidesChange.emit(new k(this.branchGuide,this._formMetadata,this.dataUnit,this.messagesBuilder)),s&&setTimeout((()=>{this.changeViewMode(m.FORM)}),0),e&&this.changeViewMode(m.GRID);const h=[];this.dataState.hasPrevious||h.push(v.PREVIOUS),this.dataState.hasNext||h.push(v.NEXT),this.dataState.insertionMode&&h.push(v.INSERT),this._disabledButtons=h}async changeViewMode(t){this.emitSwitchEvent(t)}async configGrid(){this._snkGrid&&this._snkGrid.showConfig()}async showUp(){this._snkFormView&&this._snkFormView.showUp(),this._snkGrid&&this._snkGrid.scrollIntoView({behavior:"smooth",block:"start"})}async addCustomEditor(t,i){var s;const e=this.normalizeBranchGuideId(null===(s=this.branchGuide)||void 0===s?void 0:s.id);this._snkGrid.addCustomEditor(t,i,e),this._snkFormView.addCustomEditor(t,i,e)}async observerPropsCustomEditor(t){for(const i in t)await this.addCustomEditor(i,t[i])}async addGridCustomRender(t,i){var s;const e=this.normalizeBranchGuideId(null===(s=this.branchGuide)||void 0===s?void 0:s.id);await this._snkGrid.addGridCustomRender(t,i,e)}onContentCardChanged(t){p.updateContentCard(t.detail.formName,t.detail.cardConfig,t.detail.propertyChanged,this.formConfigManager).then((()=>s(this))),t.stopPropagation()}async observeCustomRenders(t){for(const i in t){const s=t[i];await this.addGridCustomRender(i,s)}}updateLabel(){const t=this.guideItemPath?this.guideItemPath.length:0;if(t>0){const i=t>0?this.guideItemPath.map((t=>t.label)):void 0;this.label=i.pop(),this._levelPath=i.length>0?i.join(" / "):void 0}else this.label="",this._levelPath=void 0}getFormGuideId(t){var i;if(!t){if(null==(null===(i=this.dataState)||void 0===i?void 0:i.selectedRecord))return;const s=Array.from(this._formMetadata.getAllSheets().keys());if(!s||0==s.length)return;t=s[0]}return`${this.stripFormPattern(this.branchGuide.id)}__FORM:${t}`}stripFormPattern(t){return t.replace(w.REGEX_FORM_ID,"")}loadMetadata(){if(!this.dataUnit)return;if(!this.formConfigManager.isLoaded)return;const t=this.formConfigManager.getConfig(this.dataUnit);this._formMetadata=c(null==t||0===t.fields.length?void 0:t,this.dataUnit,!0)}dataUnitReadyHandler(t){this.dataUnit=t.detail,this.loadMetadata()}updateViewStack(t){var i,s;this._viewStack=t,this._currentView=this.selectedForm?1:0,null===(s=null===(i=this._viewStack)||void 0===i?void 0:i.show)||void 0===s||s.call(i,this._currentView)}getFormFields(){return this.selectedForm&&this._formMetadata?this._formMetadata.getSheet(this.selectedForm).fields:[]}emitSwitchEvent(t){t===m.GRID&&(this.dataUnit.isMultipleEdition=!1);const i=t===m.GRID?this.stripFormPattern(this.branchGuide.id):this.getFormGuideId();i&&this.snkSwitchGuide.emit(i)}executeActionHandler(t){t.detail===v.GRID_MODE&&(this.emitSwitchEvent(m.GRID),t.stopPropagation()),t.detail===v.UPDATE_MULTIPLE&&(this.dataUnit.isMultipleEdition=!0,this.emitSwitchEvent(m.FORM),t.stopPropagation()),t.detail!==v.FORM_MODE&&t.detail!==v.UPDATE||(this.emitSwitchEvent(m.FORM),t.stopPropagation()),t.detail===v.ATTACH&&(this._snkAttach.open(),t.stopPropagation())}async getAttachmentRegisterKey(){if(this._snkDataUnit)return(await this._snkDataUnit.getSelectedRecordsIDsInfo()).map((({value:t})=>t)).join("_")}async handleDataStateChange({detail:t}){this.dataState=t,void 0!==t.selectedRecord&&this._snkDataUnit&&(this.attachmentRegisterKey=await this.getAttachmentRegisterKey())}componentWillLoad(){this._configName=`dynaform.${this.entityName}`,this.formConfigManager=new d(this._configName,this.resourceID,(()=>this.loadMetadata()),this.dataUnit),this.formConfigManager.loadConfig(),null==this.messagesBuilder&&(this.messagesBuilder=new g(this.entityName))}async componentDidLoad(){await this.observerPropsCustomEditor(this.customEditors),await this.observeCustomRenders(this.customRenders),this.initKeyboardManager()}disconnectedCallback(){var t;null===(t=this._keyboardManager)||void 0===t||t.unbindAllShortcutKeys()}async dataUnitActionHandler(t){t.type===h.FIELD_INVALIDATED?this.addErrorBadgeToBranchGuide():t.type===h.DATA_LOADED&&this.handleDataLoaded()}handleDataLoaded(){var t;(null===(t=this.dataUnit)||void 0===t?void 0:t.getSelectedRecord())||this.dataUnit.selectFirst()}addErrorBadgeToBranchGuide(){this.branchGuide=Object.assign(Object.assign({},this.branchGuide),{badge:"error"}),this.snkDetailGuidesChange.emit(new k(this.branchGuide,this._formMetadata,this.dataUnit,this.messagesBuilder))}normalizeBranchGuideId(t){return null==t?void 0:t.replace(/child\[(.*?)\]/g,"$1").replace(/::/g,">")}getSettingsListForm(){return[{value:n.generateUUID(),label:this.messagesBuilder.getMessage("snkCrud.findColumn",void 0),disableCloseOnSelect:!0,eagerInitialize:!0,itemBuilder:(t,i)=>this.getFieldsSearch(i)}]}getFieldsSearch(t){return(null==this._fieldSearch||this._hasToCreateFieldSearch)&&(this._hasToCreateFieldSearch=!1,this._fieldSearch=f(t,(({argument:t})=>this.fieldsOptionLoader(t)),(t=>this.onSelectField(t)))),this._fieldSearch}fieldsOptionLoader(t){const i=null==t?void 0:t.toLowerCase(),s=this.getFormFields().map((t=>{var i;return null===(i=this.dataUnit)||void 0===i?void 0:i.getField(t.name)})).filter((t=>{var s,e;return(null===(s=t.name)||void 0===s?void 0:s.toLowerCase().includes(i))||(null===(e=t.label)||void 0===e?void 0:e.toLowerCase().includes(i))})).map((t=>({value:t.name,label:t.label})));return Promise.resolve(s)}onSelectField(t){null!=t&&(this._fieldToGetFocus=t.value)}clearFieldToFocusHandler(){this._fieldToGetFocus=void 0}async initKeyboardManager(){this._keyboardManager=new r({propagate:!1,element:this._element}),this._keyboardManager.bind(b,(async()=>{await this._snkFormView.showSearchField()}),{description:this.messagesBuilder.getMessage("snkSimpleCrud.findFields"),element:this._element})}render(){return this.updateLabel(),e(a,null,e("snk-data-unit",{ref:t=>this._snkDataUnit=t,dataUnitName:`${this.dataUnitName}`,onDataUnitReady:t=>this.dataUnitReadyHandler(t),entityName:this.entityName,onDataStateChange:this.handleDataStateChange.bind(this),ignoreSaveMessage:this._currentView===m.GRID,messagesBuilder:this.messagesBuilder,configName:this._configName},e("ez-view-stack",{ref:t=>this.updateViewStack(t)},e("stack-item",null,e("div",{class:"ez-box ez-box--shadow grid-container"},e("div",{class:"ez-title--primary ez-size-width--full ez-padding--large detail-header"},e("div",{class:"ez-flex ez-text ez-text--bold ez-flex--justify-start ez-flex--align-items-center"},this._levelPath?e("span",{class:"level-path"},this._levelPath+" /"):void 0,this.label)),e("snk-grid",{class:"ez-size-width--full",ref:t=>this._snkGrid=t,configName:this._configName,messagesBuilder:this.messagesBuilder,onGridDoubleClick:()=>this.emitSwitchEvent(m.FORM),onActionClick:t=>this.executeActionHandler(t),presentationMode:this.presentationMode,canEdit:this.canEdit,isDetail:!0,taskbarCustomContainerId:this.taskbarCustomContainerId,gridHeaderCustomSlotId:"DETAIL_GRID_HEADER_CUSTOM_ELEMENTS",topTaskbarCustomSlotId:"DETAIL_GRID_TASKBAR_CUSTOM_ELEMENTS",outlineMode:!1,enableGridInsert:!0,autoLoad:!0,multipleEditionEnabled:!0,multipleSelection:!0}))),e("stack-item",null,e("snk-form-view",{ref:t=>this._snkFormView=t,canExpand:!1,canFix:!1,name:this.selectedForm,formMetadata:this._formMetadata,dataUnit:this.dataUnit,fields:this.getFormFields(),fieldToFocus:this._fieldToGetFocus,label:this.label,levelPath:this._levelPath,onFormItemsReady:({detail:t})=>this.formItemsReady.emit(t),onSnkRequestClearFieldToFocus:this.clearFieldToFocusHandler.bind(this),fieldSearch:this._fieldSearch,entityPath:this.entityName},e("snk-taskbar",{key:"guideViewerTaskbar",class:"form-taskbar","data-element-id":"guideViewer",configName:this._configName,messagesBuilder:this.messagesBuilder,disabledButtons:this._disabledButtons,buttons:"INSERT,PREVIOUS,NEXT,DIVIDER,CLONE,REMOVE,MORE_OPTIONS,ACTIONS_BUTTON,DIVIDER,GRID_MODE,CONFIGURATOR",primaryButton:"INSERT",presentationMode:this.presentationMode,onActionClick:t=>this.executeActionHandler(t),dataUnit:this.dataUnit,resourceID:this.resourceID,customContainerId:this.taskbarCustomContainerId,customSlotId:"DETAIL_TASKBAR_CUSTOM_ELEMENTS",actionsSettingsList:this.getSettingsListForm()},e("slot",{name:"DETAIL_TASKBAR_CUSTOM_ELEMENTS"}))))),e("snk-attach",{ref:t=>this._snkAttach=t,registerKey:this.attachmentRegisterKey,messagesBuilder:this.messagesBuilder,entityName:this.entityName})))}get _element(){return o(this)}static get watchers(){return{dataUnit:["observeDataUnit"],dataState:["observerDataState"],customEditors:["observerPropsCustomEditor"],customRenders:["observeCustomRenders"]}}};w.REGEX_FORM_ID=/__FORM:[^:]+/g,w.style=".sc-snk-detail-view-h{display:flex;row-gap:24px;flex-direction:column;width:100%;height:100%}.level-path.sc-snk-detail-view{color:var(--color--title-primary, #2B3A54);font-weight:var(--text-weight--medium, 400);padding-right:3px}.form-taskbar.sc-snk-detail-view{padding-bottom:var(--space--medium)}.grid-container.sc-snk-detail-view{background-color:#FFF;min-height:100px;height:100%}.detail-header.sc-snk-detail-view{padding-bottom:0}snk-data-unit.sc-snk-detail-view{flex:1}snk-grid.sc-snk-detail-view{height:calc(100% - 56px);--snk-grid__header-padding:var(--space--4, 4px);--snk-grid-padding:var(--space--8, 8px);--snk-grid-box-shadow:unset}";export{w as snk_detail_view}
|