@sankhyalabs/sankhyablocks 10.1.0-dev.51 → 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 +8 -2
- package/dist/cjs/snk-grid.cjs.entry.js +2 -2
- 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 +6 -0
- 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/components/ContinuousInsertUtils.js +67 -20
- package/dist/components/snk-crud.js +14 -0
- package/dist/components/snk-detail-view2.js +8 -2
- package/dist/components/snk-grid2.js +1 -1
- 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 +8 -2
- package/dist/esm/snk-grid.entry.js +2 -2
- 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-95b36bd3.entry.js → p-0a4cdcde.entry.js} +1 -1
- 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-f1bbf065.entry.js → p-bd3c1aaa.entry.js} +1 -1
- 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 +1 -0
- package/dist/types/components/snk-data-exporter/interfaces/IExporterProvider.d.ts +8 -0
- package/package.json +1 -1
- package/dist/sankhyablocks/p-134702f6.entry.js +0 -1
- package/dist/sankhyablocks/p-9e77e136.js +0 -1
|
@@ -168,41 +168,35 @@ class CommonsExporter {
|
|
|
168
168
|
return this.columnsState;
|
|
169
169
|
}
|
|
170
170
|
async buildColumnsMetadata(gridColumns) {
|
|
171
|
-
var _a
|
|
171
|
+
var _a;
|
|
172
172
|
const columnsMetadata = [];
|
|
173
|
+
const searchPlusDescriptionIds = this.collectSearchPlusDescriptionIds(gridColumns);
|
|
173
174
|
for (const column of gridColumns) {
|
|
175
|
+
if (this.isHiddenColumn(column)) {
|
|
176
|
+
continue;
|
|
177
|
+
}
|
|
174
178
|
/**
|
|
175
|
-
*
|
|
179
|
+
* A grid adiciona uma coluna auxiliar para a descrição de campos SEARCHPLUS
|
|
180
|
+
* (ex.: "ENTITYNAME.DESCRIPTIONFIELD"). A descrição já é emitida ao processar
|
|
181
|
+
* o próprio SEARCHPLUS, então pulamos a auxiliar para evitar duplicar a coluna.
|
|
176
182
|
*/
|
|
177
|
-
if (
|
|
183
|
+
if (searchPlusDescriptionIds.has(column.name)) {
|
|
178
184
|
continue;
|
|
179
185
|
}
|
|
180
186
|
const fieldData = (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getField(column.name);
|
|
181
187
|
const customFormatter = await this.grid.getCustomValueFormatter(column.name);
|
|
182
|
-
const
|
|
183
|
-
const
|
|
184
|
-
const labelColumn = isUserInterfaceSEARCH ? "Cód. " : column.label;
|
|
185
|
-
let descriptionColumn = undefined;
|
|
188
|
+
const isSearchField = this.isSearchUserInterface(fieldData);
|
|
189
|
+
const labelColumn = isSearchField ? "Cód. " : column.label;
|
|
186
190
|
let columnData = {
|
|
187
191
|
id: column.name,
|
|
188
192
|
label: labelColumn,
|
|
189
|
-
width:
|
|
193
|
+
width: isSearchField ? (labelColumn.length * this.DEFAULT_FONT_SIZE) : column.width,
|
|
190
194
|
type: fieldData === null || fieldData === void 0 ? void 0 : fieldData.dataType,
|
|
191
195
|
userInterface: fieldData === null || fieldData === void 0 ? void 0 : fieldData.userInterface,
|
|
192
196
|
customFormatter
|
|
193
197
|
};
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
const mergedFrom = fieldData.properties.mergedFrom;
|
|
197
|
-
const descriptionField = `${fieldData.properties.ENTITYNAME}.${fieldData.properties.DESCRIPTIONFIELD}`;
|
|
198
|
-
descriptionColumn = {
|
|
199
|
-
id: `${mergedFrom ? (mergedFrom + ".") : ""}${descriptionField}`,
|
|
200
|
-
label: labelDescription,
|
|
201
|
-
width: isUserInterfaceSEARCH && labelDescription ? (labelDescription.length * this.DEFAULT_FONT_SIZE - widthColumnDefault) : column.width,
|
|
202
|
-
type: core.DataType.TEXT,
|
|
203
|
-
userInterface: UnitMetadata.UserInterface.LONGTEXT,
|
|
204
|
-
descriptionFrom: fieldData.name
|
|
205
|
-
};
|
|
198
|
+
let descriptionColumn = isSearchField ? this.buildDescriptionColumn(fieldData, column) : undefined;
|
|
199
|
+
if (descriptionColumn) {
|
|
206
200
|
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);
|
|
207
201
|
columnData = Object.assign(Object.assign({}, columnData), { width: newWidth === null || newWidth === void 0 ? void 0 : newWidth.codWidth });
|
|
208
202
|
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) });
|
|
@@ -213,6 +207,59 @@ class CommonsExporter {
|
|
|
213
207
|
}
|
|
214
208
|
return columnsMetadata || [];
|
|
215
209
|
}
|
|
210
|
+
collectSearchPlusDescriptionIds(gridColumns) {
|
|
211
|
+
var _a;
|
|
212
|
+
const descriptionIds = new Set();
|
|
213
|
+
for (const column of gridColumns) {
|
|
214
|
+
if (this.isHiddenColumn(column)) {
|
|
215
|
+
continue;
|
|
216
|
+
}
|
|
217
|
+
const fieldData = (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getField(column.name);
|
|
218
|
+
if (!this.isSearchUserInterface(fieldData)) {
|
|
219
|
+
continue;
|
|
220
|
+
}
|
|
221
|
+
const descriptionId = this.buildDescriptionColumnId(fieldData);
|
|
222
|
+
if (descriptionId) {
|
|
223
|
+
descriptionIds.add(descriptionId);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
return descriptionIds;
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* TODO: Analisar e criar uma melhor forma de tratar essa validação do "RECDESP".
|
|
230
|
+
*/
|
|
231
|
+
isHiddenColumn(column) {
|
|
232
|
+
return column.hidden && column.name !== "RECDESP";
|
|
233
|
+
}
|
|
234
|
+
isSearchUserInterface(fieldData) {
|
|
235
|
+
return (fieldData === null || fieldData === void 0 ? void 0 : fieldData.userInterface) === UnitMetadata.UserInterface.SEARCH
|
|
236
|
+
|| (fieldData === null || fieldData === void 0 ? void 0 : fieldData.userInterface) === UnitMetadata.UserInterface.SEARCHPLUS;
|
|
237
|
+
}
|
|
238
|
+
buildDescriptionColumnId(fieldData) {
|
|
239
|
+
const properties = fieldData === null || fieldData === void 0 ? void 0 : fieldData.properties;
|
|
240
|
+
if ((properties === null || properties === void 0 ? void 0 : properties.DESCRIPTIONFIELD) == undefined) {
|
|
241
|
+
return undefined;
|
|
242
|
+
}
|
|
243
|
+
const descriptionField = `${properties.ENTITYNAME}.${properties.DESCRIPTIONFIELD}`;
|
|
244
|
+
return properties.mergedFrom ? `${properties.mergedFrom}.${descriptionField}` : descriptionField;
|
|
245
|
+
}
|
|
246
|
+
buildDescriptionColumn(fieldData, column) {
|
|
247
|
+
var _a;
|
|
248
|
+
const id = this.buildDescriptionColumnId(fieldData);
|
|
249
|
+
if (!id) {
|
|
250
|
+
return undefined;
|
|
251
|
+
}
|
|
252
|
+
const labelDescription = (_a = fieldData === null || fieldData === void 0 ? void 0 : fieldData.properties) === null || _a === void 0 ? void 0 : _a.DESCRIPTIONENTITY;
|
|
253
|
+
const widthColumnDefault = 60;
|
|
254
|
+
return {
|
|
255
|
+
id,
|
|
256
|
+
label: labelDescription,
|
|
257
|
+
width: labelDescription ? (labelDescription.length * this.DEFAULT_FONT_SIZE - widthColumnDefault) : column.width,
|
|
258
|
+
type: core.DataType.TEXT,
|
|
259
|
+
userInterface: UnitMetadata.UserInterface.LONGTEXT,
|
|
260
|
+
descriptionFrom: fieldData.name
|
|
261
|
+
};
|
|
262
|
+
}
|
|
216
263
|
getWidthByMetaData(maxWidth, widthCod, widthDescription) {
|
|
217
264
|
const totalCurrentWidth = widthCod + widthDescription;
|
|
218
265
|
const codPercentage = widthCod / totalCurrentWidth;
|
|
@@ -118,6 +118,16 @@ function insertCustomButtonsBeforeSpacer(buttons, customButtons) {
|
|
|
118
118
|
}
|
|
119
119
|
return [...customButtons, ...buttons];
|
|
120
120
|
}
|
|
121
|
+
function buildNavigationDisabledBtns(dataState) {
|
|
122
|
+
const navigationDisabled = [];
|
|
123
|
+
if (!(dataState === null || dataState === void 0 ? void 0 : dataState.hasPrevious)) {
|
|
124
|
+
navigationDisabled.push(taskbarElements.TaskbarElement.PREVIOUS);
|
|
125
|
+
}
|
|
126
|
+
if (!(dataState === null || dataState === void 0 ? void 0 : dataState.hasNext)) {
|
|
127
|
+
navigationDisabled.push(taskbarElements.TaskbarElement.NEXT);
|
|
128
|
+
}
|
|
129
|
+
return navigationDisabled;
|
|
130
|
+
}
|
|
121
131
|
function buildNativeTaskbarManager(currentViewMode, mergeTaskbarManager, messagesBuilder) {
|
|
122
132
|
var _a, _b;
|
|
123
133
|
const CUSTOM_BUTTONS = [
|
|
@@ -188,6 +198,10 @@ function buildNativeTaskbarManager(currentViewMode, mergeTaskbarManager, message
|
|
|
188
198
|
if (!hasSelectedRecord && buttonsRequiringSelection.includes(buttonName)) {
|
|
189
199
|
return false;
|
|
190
200
|
}
|
|
201
|
+
const navigationDisabled = buildNavigationDisabledBtns(dataState);
|
|
202
|
+
if (navigationDisabled.includes(buttonName)) {
|
|
203
|
+
return false;
|
|
204
|
+
}
|
|
191
205
|
return (_a = mergeTaskbarManager === null || mergeTaskbarManager === void 0 ? void 0 : mergeTaskbarManager.isEnabled(_, dataState, buttonName, originalValue)) !== null && _a !== void 0 ? _a : originalValue;
|
|
192
206
|
},
|
|
193
207
|
getMoreOptions(taskbarId, configName, dataState, currentActions) {
|
|
@@ -16,7 +16,7 @@ require('./filter-item-type.enum-a7ffdaa6.js');
|
|
|
16
16
|
require('./form-config-fetcher-45d1964c.js');
|
|
17
17
|
const constants = require('./constants-6d82e405.js');
|
|
18
18
|
const taskbarElements = require('./taskbar-elements-80eddec8.js');
|
|
19
|
-
const snkGuidesViewer = require('./snk-guides-viewer-
|
|
19
|
+
const snkGuidesViewer = require('./snk-guides-viewer-8e7a503b.js');
|
|
20
20
|
const SnkMessageBuilder = require('./SnkMessageBuilder-a9300ebe.js');
|
|
21
21
|
const utils = require('@sankhyalabs/ezui/dist/collection/utils');
|
|
22
22
|
require('./ConfigStorage-a1fab5ca.js');
|
|
@@ -76,7 +76,7 @@ class GuideBuilder {
|
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
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% -
|
|
79
|
+
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}";
|
|
80
80
|
|
|
81
81
|
const SnkDetailView = class {
|
|
82
82
|
constructor(hostRef) {
|
|
@@ -324,6 +324,12 @@ const SnkDetailView = class {
|
|
|
324
324
|
this.addErrorBadgeToBranchGuide();
|
|
325
325
|
}
|
|
326
326
|
else if (action.type === core.Action.DATA_LOADED) {
|
|
327
|
+
this.handleDataLoaded();
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
handleDataLoaded() {
|
|
331
|
+
var _a;
|
|
332
|
+
if (!((_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getSelectedRecord())) {
|
|
327
333
|
this.dataUnit.selectFirst();
|
|
328
334
|
}
|
|
329
335
|
}
|
|
@@ -8,7 +8,7 @@ const DataUnit = require('@sankhyalabs/core/dist/dataunit/DataUnit');
|
|
|
8
8
|
const utils = require('@sankhyalabs/ezui/dist/collection/utils');
|
|
9
9
|
require('./DataFetcher-384d2ce8.js');
|
|
10
10
|
require('./ISave-ecbe9336.js');
|
|
11
|
-
const SnkMultiSelectionListDataSource = require('./SnkMultiSelectionListDataSource-
|
|
11
|
+
const SnkMultiSelectionListDataSource = require('./SnkMultiSelectionListDataSource-d341dd02.js');
|
|
12
12
|
const index$1 = require('./index-e3e39724.js');
|
|
13
13
|
require('@sankhyalabs/ezui/dist/collection/utils/constants');
|
|
14
14
|
require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
|
|
@@ -84,7 +84,7 @@ class ServerSideExporterProvider extends SnkMultiSelectionListDataSource.Commons
|
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
-
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-
|
|
87
|
+
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)}";
|
|
88
88
|
|
|
89
89
|
const SnkGrid = class {
|
|
90
90
|
constructor(hostRef) {
|
|
@@ -8,7 +8,7 @@ const constants = require('./constants-6d82e405.js');
|
|
|
8
8
|
const SnkFormConfigManager = require('./SnkFormConfigManager-44386305.js');
|
|
9
9
|
const taskbarElements = require('./taskbar-elements-80eddec8.js');
|
|
10
10
|
|
|
11
|
-
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:
|
|
11
|
+
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}";
|
|
12
12
|
|
|
13
13
|
const FORM_NAME_PREFIX = "__FORM:";
|
|
14
14
|
const SnkGuidesViewer = class {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
const snkGuidesViewer = require('./snk-guides-viewer-
|
|
5
|
+
const snkGuidesViewer = require('./snk-guides-viewer-8e7a503b.js');
|
|
6
6
|
require('./index-1894343a.js');
|
|
7
7
|
require('@sankhyalabs/core');
|
|
8
8
|
require('@sankhyalabs/ezui/dist/collection/utils');
|
|
@@ -9,7 +9,7 @@ const constants = require('./constants-6d82e405.js');
|
|
|
9
9
|
const taskbarElements = require('./taskbar-elements-80eddec8.js');
|
|
10
10
|
require('./DataFetcher-384d2ce8.js');
|
|
11
11
|
require('./ISave-ecbe9336.js');
|
|
12
|
-
const SnkMultiSelectionListDataSource = require('./SnkMultiSelectionListDataSource-
|
|
12
|
+
const SnkMultiSelectionListDataSource = require('./SnkMultiSelectionListDataSource-d341dd02.js');
|
|
13
13
|
const index$1 = require('./index-e3e39724.js');
|
|
14
14
|
require('@sankhyalabs/ezui/dist/collection/utils/constants');
|
|
15
15
|
require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
|
package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js
CHANGED
|
@@ -251,6 +251,12 @@ export class SnkDetailView {
|
|
|
251
251
|
this.addErrorBadgeToBranchGuide();
|
|
252
252
|
}
|
|
253
253
|
else if (action.type === DUAction.DATA_LOADED) {
|
|
254
|
+
this.handleDataLoaded();
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
handleDataLoaded() {
|
|
258
|
+
var _a;
|
|
259
|
+
if (!((_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getSelectedRecord())) {
|
|
254
260
|
this.dataUnit.selectFirst();
|
|
255
261
|
}
|
|
256
262
|
}
|
|
@@ -37,6 +37,16 @@ function insertCustomButtonsBeforeSpacer(buttons, customButtons) {
|
|
|
37
37
|
}
|
|
38
38
|
return [...customButtons, ...buttons];
|
|
39
39
|
}
|
|
40
|
+
function buildNavigationDisabledBtns(dataState) {
|
|
41
|
+
const navigationDisabled = [];
|
|
42
|
+
if (!(dataState === null || dataState === void 0 ? void 0 : dataState.hasPrevious)) {
|
|
43
|
+
navigationDisabled.push(TaskbarElement.PREVIOUS);
|
|
44
|
+
}
|
|
45
|
+
if (!(dataState === null || dataState === void 0 ? void 0 : dataState.hasNext)) {
|
|
46
|
+
navigationDisabled.push(TaskbarElement.NEXT);
|
|
47
|
+
}
|
|
48
|
+
return navigationDisabled;
|
|
49
|
+
}
|
|
40
50
|
export function buildNativeTaskbarManager(currentViewMode, mergeTaskbarManager, messagesBuilder) {
|
|
41
51
|
var _a, _b;
|
|
42
52
|
const CUSTOM_BUTTONS = [
|
|
@@ -107,6 +117,10 @@ export function buildNativeTaskbarManager(currentViewMode, mergeTaskbarManager,
|
|
|
107
117
|
if (!hasSelectedRecord && buttonsRequiringSelection.includes(buttonName)) {
|
|
108
118
|
return false;
|
|
109
119
|
}
|
|
120
|
+
const navigationDisabled = buildNavigationDisabledBtns(dataState);
|
|
121
|
+
if (navigationDisabled.includes(buttonName)) {
|
|
122
|
+
return false;
|
|
123
|
+
}
|
|
110
124
|
return (_a = mergeTaskbarManager === null || mergeTaskbarManager === void 0 ? void 0 : mergeTaskbarManager.isEnabled(_, dataState, buttonName, originalValue)) !== null && _a !== void 0 ? _a : originalValue;
|
|
111
125
|
},
|
|
112
126
|
getMoreOptions(taskbarId, configName, dataState, currentActions) {
|
|
@@ -17,41 +17,35 @@ export class CommonsExporter {
|
|
|
17
17
|
return this.columnsState;
|
|
18
18
|
}
|
|
19
19
|
async buildColumnsMetadata(gridColumns) {
|
|
20
|
-
var _a
|
|
20
|
+
var _a;
|
|
21
21
|
const columnsMetadata = [];
|
|
22
|
+
const searchPlusDescriptionIds = this.collectSearchPlusDescriptionIds(gridColumns);
|
|
22
23
|
for (const column of gridColumns) {
|
|
24
|
+
if (this.isHiddenColumn(column)) {
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
23
27
|
/**
|
|
24
|
-
*
|
|
28
|
+
* A grid adiciona uma coluna auxiliar para a descrição de campos SEARCHPLUS
|
|
29
|
+
* (ex.: "ENTITYNAME.DESCRIPTIONFIELD"). A descrição já é emitida ao processar
|
|
30
|
+
* o próprio SEARCHPLUS, então pulamos a auxiliar para evitar duplicar a coluna.
|
|
25
31
|
*/
|
|
26
|
-
if (
|
|
32
|
+
if (searchPlusDescriptionIds.has(column.name)) {
|
|
27
33
|
continue;
|
|
28
34
|
}
|
|
29
35
|
const fieldData = (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getField(column.name);
|
|
30
36
|
const customFormatter = await this.grid.getCustomValueFormatter(column.name);
|
|
31
|
-
const
|
|
32
|
-
const
|
|
33
|
-
const labelColumn = isUserInterfaceSEARCH ? "Cód. " : column.label;
|
|
34
|
-
let descriptionColumn = undefined;
|
|
37
|
+
const isSearchField = this.isSearchUserInterface(fieldData);
|
|
38
|
+
const labelColumn = isSearchField ? "Cód. " : column.label;
|
|
35
39
|
let columnData = {
|
|
36
40
|
id: column.name,
|
|
37
41
|
label: labelColumn,
|
|
38
|
-
width:
|
|
42
|
+
width: isSearchField ? (labelColumn.length * this.DEFAULT_FONT_SIZE) : column.width,
|
|
39
43
|
type: fieldData === null || fieldData === void 0 ? void 0 : fieldData.dataType,
|
|
40
44
|
userInterface: fieldData === null || fieldData === void 0 ? void 0 : fieldData.userInterface,
|
|
41
45
|
customFormatter
|
|
42
46
|
};
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
const mergedFrom = fieldData.properties.mergedFrom;
|
|
46
|
-
const descriptionField = `${fieldData.properties.ENTITYNAME}.${fieldData.properties.DESCRIPTIONFIELD}`;
|
|
47
|
-
descriptionColumn = {
|
|
48
|
-
id: `${mergedFrom ? (mergedFrom + ".") : ""}${descriptionField}`,
|
|
49
|
-
label: labelDescription,
|
|
50
|
-
width: isUserInterfaceSEARCH && labelDescription ? (labelDescription.length * this.DEFAULT_FONT_SIZE - widthColumnDefault) : column.width,
|
|
51
|
-
type: DataType.TEXT,
|
|
52
|
-
userInterface: UserInterface.LONGTEXT,
|
|
53
|
-
descriptionFrom: fieldData.name
|
|
54
|
-
};
|
|
47
|
+
let descriptionColumn = isSearchField ? this.buildDescriptionColumn(fieldData, column) : undefined;
|
|
48
|
+
if (descriptionColumn) {
|
|
55
49
|
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);
|
|
56
50
|
columnData = Object.assign(Object.assign({}, columnData), { width: newWidth === null || newWidth === void 0 ? void 0 : newWidth.codWidth });
|
|
57
51
|
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) });
|
|
@@ -63,6 +57,59 @@ export class CommonsExporter {
|
|
|
63
57
|
;
|
|
64
58
|
return columnsMetadata || [];
|
|
65
59
|
}
|
|
60
|
+
collectSearchPlusDescriptionIds(gridColumns) {
|
|
61
|
+
var _a;
|
|
62
|
+
const descriptionIds = new Set();
|
|
63
|
+
for (const column of gridColumns) {
|
|
64
|
+
if (this.isHiddenColumn(column)) {
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
const fieldData = (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getField(column.name);
|
|
68
|
+
if (!this.isSearchUserInterface(fieldData)) {
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
const descriptionId = this.buildDescriptionColumnId(fieldData);
|
|
72
|
+
if (descriptionId) {
|
|
73
|
+
descriptionIds.add(descriptionId);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return descriptionIds;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* TODO: Analisar e criar uma melhor forma de tratar essa validação do "RECDESP".
|
|
80
|
+
*/
|
|
81
|
+
isHiddenColumn(column) {
|
|
82
|
+
return column.hidden && column.name !== "RECDESP";
|
|
83
|
+
}
|
|
84
|
+
isSearchUserInterface(fieldData) {
|
|
85
|
+
return (fieldData === null || fieldData === void 0 ? void 0 : fieldData.userInterface) === UserInterface.SEARCH
|
|
86
|
+
|| (fieldData === null || fieldData === void 0 ? void 0 : fieldData.userInterface) === UserInterface.SEARCHPLUS;
|
|
87
|
+
}
|
|
88
|
+
buildDescriptionColumnId(fieldData) {
|
|
89
|
+
const properties = fieldData === null || fieldData === void 0 ? void 0 : fieldData.properties;
|
|
90
|
+
if ((properties === null || properties === void 0 ? void 0 : properties.DESCRIPTIONFIELD) == undefined) {
|
|
91
|
+
return undefined;
|
|
92
|
+
}
|
|
93
|
+
const descriptionField = `${properties.ENTITYNAME}.${properties.DESCRIPTIONFIELD}`;
|
|
94
|
+
return properties.mergedFrom ? `${properties.mergedFrom}.${descriptionField}` : descriptionField;
|
|
95
|
+
}
|
|
96
|
+
buildDescriptionColumn(fieldData, column) {
|
|
97
|
+
var _a;
|
|
98
|
+
const id = this.buildDescriptionColumnId(fieldData);
|
|
99
|
+
if (!id) {
|
|
100
|
+
return undefined;
|
|
101
|
+
}
|
|
102
|
+
const labelDescription = (_a = fieldData === null || fieldData === void 0 ? void 0 : fieldData.properties) === null || _a === void 0 ? void 0 : _a.DESCRIPTIONENTITY;
|
|
103
|
+
const widthColumnDefault = 60;
|
|
104
|
+
return {
|
|
105
|
+
id,
|
|
106
|
+
label: labelDescription,
|
|
107
|
+
width: labelDescription ? (labelDescription.length * this.DEFAULT_FONT_SIZE - widthColumnDefault) : column.width,
|
|
108
|
+
type: DataType.TEXT,
|
|
109
|
+
userInterface: UserInterface.LONGTEXT,
|
|
110
|
+
descriptionFrom: fieldData.name
|
|
111
|
+
};
|
|
112
|
+
}
|
|
66
113
|
getWidthByMetaData(maxWidth, widthCod, widthDescription) {
|
|
67
114
|
const totalCurrentWidth = widthCod + widthDescription;
|
|
68
115
|
const codPercentage = widthCod / totalCurrentWidth;
|
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
:host {
|
|
2
2
|
--snk-grid-min-height: 300px;
|
|
3
|
-
--snk-grid-padding:
|
|
3
|
+
--snk-grid-padding: unset;
|
|
4
|
+
--snk-grid-margin: var(--space--small);
|
|
5
|
+
--snk-grid-box-shadow: var(--shadow--small);
|
|
6
|
+
--snk-grid__header-padding: unset;
|
|
4
7
|
}
|
|
5
8
|
|
|
6
9
|
.snk-grid__container {
|
|
7
10
|
display: flex;
|
|
8
11
|
height: 100%;
|
|
9
12
|
width: calc(100% - var(--space--12, 12px));
|
|
10
|
-
|
|
11
|
-
margin: var(--snk-grid-padding);
|
|
13
|
+
margin: var(--snk-grid-margin);
|
|
12
14
|
outline: none;
|
|
13
15
|
border: 1px solid var(--color--strokes, #E1E2E5);
|
|
14
16
|
border-radius: var(--border--radius-12, 12px);
|
|
15
|
-
box-shadow: var(--shadow
|
|
17
|
+
box-shadow: var(--snk-grid-box-shadow);
|
|
18
|
+
padding: var(--snk-grid-padding);
|
|
16
19
|
|
|
17
20
|
--snk-grid-header--min-height: var(--space--52);
|
|
18
21
|
}
|
|
@@ -24,6 +27,8 @@
|
|
|
24
27
|
justify-content: flex-end;
|
|
25
28
|
align-items: flex-start;
|
|
26
29
|
min-height: var(--snk-grid-header--min-height);
|
|
30
|
+
padding-top: var(--snk-grid__header-padding);
|
|
31
|
+
padding-right: var(--snk-grid__header-padding);
|
|
27
32
|
}
|
|
28
33
|
|
|
29
34
|
.snk-grid__filter-bar {
|
|
@@ -60,4 +65,4 @@
|
|
|
60
65
|
background-color: var(--background--xlight, #FFF);
|
|
61
66
|
border-top: 1px solid var(--color--strokes, #E1E2E5);
|
|
62
67
|
border-radius: 0 0 var(--border--radius-medium) var(--border--radius-medium);
|
|
63
|
-
}
|
|
68
|
+
}
|
|
@@ -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) {
|