@sankhyalabs/sankhyablocks 10.1.0-dev.4 → 10.1.0-dev.5
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/{ConfigStorage-b29e31be.js → ConfigStorage-72f34bd4.js} +2 -2
- package/dist/cjs/{DataFetcher-ed9d97ea.js → DataFetcher-991b0349.js} +19 -1
- package/dist/cjs/{FormConfigHelper-ebb77625.js → FormConfigHelper-e253a418.js} +42 -0
- package/dist/cjs/{ISave-81eb2fbc.js → ISave-ebf6b4ed.js} +1 -1
- package/dist/cjs/{SnkFormConfigManager-6838389c.js → SnkFormConfigManager-cdbb29d4.js} +4 -4
- package/dist/cjs/{SnkMultiSelectionListDataSource-1e804147.js → SnkMultiSelectionListDataSource-011bec79.js} +4 -4
- package/dist/cjs/{auth-fetcher-cc28d847.js → auth-fetcher-c3cac878.js} +1 -1
- package/dist/cjs/{dataunit-fetcher-ab1cc071.js → dataunit-fetcher-8bf469e7.js} +1 -1
- package/dist/cjs/field-config_2.cjs.entry.js +1 -1
- package/dist/cjs/fields-layout.cjs.entry.js +4 -1
- package/dist/cjs/fields-selector.cjs.entry.js +1 -1
- package/dist/cjs/{form-config-fetcher-f0897eb5.js → form-config-fetcher-c7af90d8.js} +1 -1
- package/dist/cjs/guides-configurator.cjs.entry.js +3 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/pesquisa-grid_2.cjs.entry.js +4 -4
- package/dist/cjs/sankhyablocks.cjs.js +1 -1
- package/dist/cjs/snk-actions-button_9.cjs.entry.js +5 -5
- package/dist/cjs/snk-application.cjs.entry.js +6 -6
- package/dist/cjs/snk-attach.cjs.entry.js +5 -5
- package/dist/cjs/snk-crud.cjs.entry.js +9 -7
- package/dist/cjs/snk-data-exporter.cjs.entry.js +5 -5
- package/dist/cjs/{snk-data-unit-68992932.js → snk-data-unit-7d587ad5.js} +2 -2
- package/dist/cjs/snk-data-unit.cjs.entry.js +3 -3
- package/dist/cjs/snk-detail-view.cjs.entry.js +7 -7
- package/dist/cjs/snk-filter-bar_4.cjs.entry.js +3 -3
- package/dist/cjs/snk-filter-modal-item.cjs.entry.js +3 -3
- package/dist/cjs/snk-form_2.cjs.entry.js +22 -9
- package/dist/cjs/snk-grid.cjs.entry.js +6 -6
- package/dist/cjs/{snk-guides-viewer-8b841753.js → snk-guides-viewer-366d5c32.js} +90 -28
- package/dist/cjs/snk-guides-viewer.cjs.entry.js +7 -7
- package/dist/cjs/snk-personalized-filter.cjs.entry.js +3 -3
- package/dist/cjs/snk-pesquisa.cjs.entry.js +4 -4
- package/dist/cjs/snk-simple-crud.cjs.entry.js +7 -7
- package/dist/cjs/snk-taskbar.cjs.entry.js +56 -44
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/snk-crud/snk-crud.js +29 -2
- package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +124 -23
- package/dist/collection/components/snk-form-config/FormConfigHelper.js +40 -0
- package/dist/collection/components/snk-form-config/SnkFormConfigManager.js +3 -3
- package/dist/collection/components/snk-form-config/fields-layout/fields-layout.js +3 -0
- package/dist/collection/components/snk-form-config/guides-configurator/guides-configurator.js +3 -1
- package/dist/collection/components/snk-form-config/snk-form-config.js +43 -6
- package/dist/collection/components/snk-taskbar/snk-taskbar.js +58 -44
- package/dist/collection/lib/message/resources/en-us/snk-form.msg.js +6 -0
- package/dist/collection/lib/message/resources/es-es/snk-form.msg.js +6 -0
- package/dist/collection/lib/message/resources/pt-br/snk-form.msg.js +7 -1
- package/dist/components/DataFetcher.js +19 -1
- package/dist/components/SnkFormConfigManager.js +3 -3
- package/dist/components/field-config2.js +41 -1
- package/dist/components/fields-layout2.js +3 -0
- package/dist/components/guides-configurator2.js +3 -1
- package/dist/components/snk-crud.js +6 -2
- package/dist/components/snk-detail-view2.js +86 -23
- package/dist/components/snk-form-config2.js +19 -5
- package/dist/components/snk-taskbar2.js +57 -45
- package/dist/esm/{ConfigStorage-13d80e36.js → ConfigStorage-22324b6b.js} +2 -2
- package/dist/esm/{DataFetcher-f4ccd9f3.js → DataFetcher-450828a0.js} +19 -1
- package/dist/esm/{FormConfigHelper-4e42f0b6.js → FormConfigHelper-e89ca25c.js} +41 -1
- package/dist/esm/{ISave-288fa9df.js → ISave-61153166.js} +1 -1
- package/dist/esm/{SnkFormConfigManager-3ee2937b.js → SnkFormConfigManager-b5a92e12.js} +4 -4
- package/dist/esm/{SnkMultiSelectionListDataSource-5d3a93f2.js → SnkMultiSelectionListDataSource-d7ce2e54.js} +4 -4
- package/dist/esm/{auth-fetcher-59ab0c67.js → auth-fetcher-eef9d01e.js} +1 -1
- package/dist/esm/{dataunit-fetcher-c4f9f222.js → dataunit-fetcher-da9596f6.js} +1 -1
- package/dist/esm/field-config_2.entry.js +1 -1
- package/dist/esm/fields-layout.entry.js +4 -1
- package/dist/esm/fields-selector.entry.js +1 -1
- package/dist/esm/{form-config-fetcher-6a00fe9e.js → form-config-fetcher-8d0a5e1c.js} +1 -1
- package/dist/esm/guides-configurator.entry.js +3 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/pesquisa-grid_2.entry.js +4 -4
- package/dist/esm/sankhyablocks.js +1 -1
- package/dist/esm/snk-actions-button_9.entry.js +5 -5
- package/dist/esm/snk-application.entry.js +6 -6
- package/dist/esm/snk-attach.entry.js +5 -5
- package/dist/esm/snk-crud.entry.js +9 -7
- package/dist/esm/snk-data-exporter.entry.js +5 -5
- package/dist/esm/{snk-data-unit-0edeb967.js → snk-data-unit-99616a07.js} +2 -2
- package/dist/esm/snk-data-unit.entry.js +3 -3
- package/dist/esm/snk-detail-view.entry.js +7 -7
- package/dist/esm/snk-filter-bar_4.entry.js +3 -3
- package/dist/esm/snk-filter-modal-item.entry.js +3 -3
- package/dist/esm/snk-form_2.entry.js +22 -9
- package/dist/esm/snk-grid.entry.js +6 -6
- package/dist/esm/{snk-guides-viewer-9cd4d20f.js → snk-guides-viewer-240de636.js} +90 -28
- package/dist/esm/snk-guides-viewer.entry.js +7 -7
- package/dist/esm/snk-personalized-filter.entry.js +3 -3
- package/dist/esm/snk-pesquisa.entry.js +4 -4
- package/dist/esm/snk-simple-crud.entry.js +7 -7
- package/dist/esm/snk-taskbar.entry.js +57 -45
- package/dist/sankhyablocks/{p-1c2971e4.js → p-002d4d2b.js} +1 -1
- package/dist/sankhyablocks/{p-ae108ffd.entry.js → p-0948dc0a.entry.js} +1 -1
- package/dist/sankhyablocks/{p-7b3ca294.entry.js → p-0b9a42ad.entry.js} +1 -1
- package/dist/sankhyablocks/p-118c221e.js +1 -0
- package/dist/sankhyablocks/{p-dc851b6e.entry.js → p-1a9c5684.entry.js} +1 -1
- package/dist/sankhyablocks/p-1d589380.entry.js +1 -0
- package/dist/sankhyablocks/{p-d9c54991.js → p-28f50632.js} +1 -1
- package/dist/sankhyablocks/p-39be771c.js +1 -0
- package/dist/sankhyablocks/{p-26e0f63c.entry.js → p-4963dd2a.entry.js} +1 -1
- package/dist/sankhyablocks/p-55f6fef2.entry.js +1 -0
- package/dist/sankhyablocks/p-56f16390.entry.js +1 -0
- package/dist/sankhyablocks/{p-5304753a.js → p-58683e28.js} +2 -2
- package/dist/sankhyablocks/{p-11346b8d.entry.js → p-5ea893c5.entry.js} +1 -1
- package/dist/sankhyablocks/{p-f15478a1.js → p-62aef37a.js} +1 -1
- package/dist/sankhyablocks/{p-34f447ba.entry.js → p-62e9b9b8.entry.js} +1 -1
- package/dist/sankhyablocks/{p-e9021f79.entry.js → p-669bb869.entry.js} +1 -1
- package/dist/sankhyablocks/{p-6180de07.entry.js → p-6ee2ca7a.entry.js} +1 -1
- package/dist/sankhyablocks/p-7cac3870.entry.js +1 -0
- package/dist/sankhyablocks/{p-78ff8734.js → p-7d6f1285.js} +1 -1
- package/dist/sankhyablocks/{p-53599b26.js → p-840fb68c.js} +1 -1
- package/dist/sankhyablocks/{p-b4322b87.entry.js → p-86e54841.entry.js} +1 -1
- package/dist/sankhyablocks/{p-34df7eca.entry.js → p-88b337fe.entry.js} +1 -1
- package/dist/sankhyablocks/{p-3d021bef.entry.js → p-91005a00.entry.js} +1 -1
- package/dist/sankhyablocks/p-92cfc028.js +1 -0
- package/dist/sankhyablocks/{p-44939a0e.entry.js → p-ada013c0.entry.js} +1 -1
- package/dist/sankhyablocks/{p-9317942f.js → p-c35fc941.js} +1 -1
- package/dist/sankhyablocks/p-c98c79c3.entry.js +1 -0
- package/dist/sankhyablocks/{p-1858c023.entry.js → p-cadf4846.entry.js} +1 -1
- package/dist/sankhyablocks/{p-38e56b68.entry.js → p-e91c3c57.entry.js} +1 -1
- package/dist/sankhyablocks/{p-f8f29e1a.entry.js → p-ea729922.entry.js} +1 -1
- package/dist/sankhyablocks/p-ec5fbad8.js +1 -0
- package/dist/sankhyablocks/{p-80014119.entry.js → p-f5e942b7.entry.js} +1 -1
- package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
- package/dist/types/components/snk-crud/snk-crud.d.ts +6 -0
- package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +22 -0
- package/dist/types/components/snk-form-config/FormConfigHelper.d.ts +5 -0
- package/dist/types/components/snk-form-config/SnkFormConfigManager.d.ts +1 -1
- package/dist/types/components/snk-form-config/snk-form-config.d.ts +8 -2
- package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +6 -3
- package/dist/types/components.d.ts +30 -0
- package/package.json +1 -1
- package/dist/sankhyablocks/p-0e279e7a.js +0 -1
- package/dist/sankhyablocks/p-3abeeefa.entry.js +0 -1
- package/dist/sankhyablocks/p-557368df.entry.js +0 -1
- package/dist/sankhyablocks/p-583151c5.entry.js +0 -1
- package/dist/sankhyablocks/p-8f73da95.js +0 -1
- package/dist/sankhyablocks/p-a2ed1ebd.entry.js +0 -1
- package/dist/sankhyablocks/p-a5108625.entry.js +0 -1
- package/dist/sankhyablocks/p-a644a956.js +0 -1
- package/dist/sankhyablocks/p-bb2f5f38.js +0 -1
@@ -12,6 +12,8 @@ const FORM_NAME_PREFIX = "__FORM:";
|
|
12
12
|
export class SnkGuidesViewer {
|
13
13
|
constructor() {
|
14
14
|
this._guideBuilders = new Map();
|
15
|
+
this.CUSTOM_GUIDE_ID_PREFIX = "CUSTOM_GUIDE_";
|
16
|
+
this.CUSTOM_GUIDE_DATA_CUSTOM_ID = "CUSTOM_GUIDE";
|
15
17
|
this.dataUnit = undefined;
|
16
18
|
this.dataState = undefined;
|
17
19
|
this.configName = undefined;
|
@@ -30,6 +32,7 @@ export class SnkGuidesViewer {
|
|
30
32
|
this.enableGridInsert = false;
|
31
33
|
this.ignoreReadOnlyFormFields = undefined;
|
32
34
|
this.getCustomTitle = undefined;
|
35
|
+
this.customGuidesConfig = [];
|
33
36
|
this._hasToCreateFieldSearch = true;
|
34
37
|
this._breadcrumbItems = [];
|
35
38
|
this._guides = undefined;
|
@@ -44,6 +47,9 @@ export class SnkGuidesViewer {
|
|
44
47
|
observeDataUnit() {
|
45
48
|
this.loadGuides(true);
|
46
49
|
}
|
50
|
+
observeFormConfigManager(value) {
|
51
|
+
this.formConfigVisibilityChanged.emit(!!value);
|
52
|
+
}
|
47
53
|
observeDataState(newValue, oldValue) {
|
48
54
|
var _a, _b, _c, _d, _e, _f;
|
49
55
|
const newRecordsIds = (_b = (_a = newValue === null || newValue === void 0 ? void 0 : newValue.selectionInfo) === null || _a === void 0 ? void 0 : _a.recordIds) !== null && _b !== void 0 ? _b : (_c = newValue === null || newValue === void 0 ? void 0 : newValue.selectedRecord) === null || _c === void 0 ? void 0 : _c['__record__id__'];
|
@@ -142,7 +148,7 @@ export class SnkGuidesViewer {
|
|
142
148
|
if (!this._configManager.isLoaded) {
|
143
149
|
return;
|
144
150
|
}
|
145
|
-
this._masterFormMetadata = buildFormMetadata(this.masterFormConfig, this.dataUnit, true);
|
151
|
+
this._masterFormMetadata = buildFormMetadata(this.masterFormConfig, this.dataUnit, true, this.customGuidesConfig);
|
146
152
|
const allSheets = this._masterFormMetadata.getAllSheets();
|
147
153
|
const currentRecord = this.dataUnit.getSelectedRecord();
|
148
154
|
const disableDetails = this.hasToDisableDetails(currentRecord);
|
@@ -288,38 +294,67 @@ export class SnkGuidesViewer {
|
|
288
294
|
return `${this.entityPath}/${entityName}`;
|
289
295
|
}
|
290
296
|
getContent() {
|
291
|
-
var _a, _b, _c, _d, _e;
|
292
297
|
if (!this.selectedGuide) {
|
293
298
|
return;
|
294
299
|
}
|
295
300
|
const guideId = this.selectedGuide.id;
|
296
|
-
|
301
|
+
if (this.isCustomGuide(guideId)) {
|
302
|
+
return h("div", { "data-custom-id": `${this.CUSTOM_GUIDE_DATA_CUSTOM_ID}`, "data-reserved-slot-id": guideId, id: this.buildCustomGuideContainerId(guideId) });
|
303
|
+
}
|
297
304
|
const levels = guideId.split("::");
|
298
305
|
const currentLevel = levels.pop();
|
299
306
|
const childEntityName = FormMetadata.getDetailName(currentLevel);
|
300
307
|
let detailId = guideId;
|
301
|
-
if (childEntityName
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
308
|
+
if (this.isDetailGuide(childEntityName, levels)) {
|
309
|
+
return this.buildDetailGuideContent(guideId, detailId, levels, childEntityName);
|
310
|
+
}
|
311
|
+
return this.buildFormViewGuideContent(guideId);
|
312
|
+
}
|
313
|
+
buildCustomGuideContainerId(guideId) {
|
314
|
+
return `${this.CUSTOM_GUIDE_ID_PREFIX}${guideId}`;
|
315
|
+
}
|
316
|
+
buildFormViewGuideContent(cardId) {
|
317
|
+
var _a, _b, _c, _d;
|
318
|
+
const sheet = this._masterFormMetadata.getSheet(cardId);
|
319
|
+
if (!sheet)
|
320
|
+
return;
|
321
|
+
const cardConfig = (_b = (_a = this.masterFormConfig) === null || _a === void 0 ? void 0 : _a.cardsState) === null || _b === void 0 ? void 0 : _b.get(cardId);
|
322
|
+
return (h("snk-form-view", { ref: ref => this._mainForm = ref, fixed: cardConfig === null || cardConfig === void 0 ? void 0 : cardConfig.fixed, summaryFields: (_d = (_c = this.masterFormConfig) === null || _c === void 0 ? void 0 : _c.summary) === null || _d === void 0 ? void 0 : _d.get(cardId), name: cardId, label: sheet.label, fields: sheet.fields, dataUnit: this.dataUnit, formMetadata: this._masterFormMetadata, recordsValidator: this.recordsValidator, fieldToFocus: this._fieldToGetFocus, key: cardId, onSnkRequestClearFieldToFocus: _ => this.clearFieldToFocusHandler(), customEditors: this._customEditors, fieldsProps: this._fieldsProps, fieldSearch: this._fieldSearch }, this.presentationMode == PresentationMode.SECONDARY && this.buildTaskBar()));
|
323
|
+
}
|
324
|
+
isDetailGuide(childEntityName, levels) {
|
325
|
+
return childEntityName || levels.length > 0;
|
326
|
+
}
|
327
|
+
buildDetailGuideContent(guideId, detailId, levels, childEntityName) {
|
328
|
+
var _a;
|
329
|
+
let formName;
|
330
|
+
let detailBranch;
|
331
|
+
if (guideId.includes(FORM_NAME_PREFIX)) {
|
332
|
+
[detailId, formName] = guideId.split(FORM_NAME_PREFIX);
|
333
|
+
const pathSize = ((_a = this._breadcrumbItems) === null || _a === void 0 ? void 0 : _a.length) || 0;
|
334
|
+
detailBranch = pathSize > 1 ? this._breadcrumbItems[pathSize - 2] : this.selectedGuide;
|
313
335
|
}
|
314
336
|
else {
|
315
|
-
|
316
|
-
const sheet = this._masterFormMetadata.getSheet(cardId);
|
317
|
-
if (sheet) {
|
318
|
-
const cardConfig = (_c = (_b = this.masterFormConfig) === null || _b === void 0 ? void 0 : _b.cardsState) === null || _c === void 0 ? void 0 : _c.get(cardId);
|
319
|
-
content = h("snk-form-view", { ref: ref => this._mainForm = ref, fixed: cardConfig === null || cardConfig === void 0 ? void 0 : cardConfig.fixed, summaryFields: (_e = (_d = this.masterFormConfig) === null || _d === void 0 ? void 0 : _d.summary) === null || _e === void 0 ? void 0 : _e.get(cardId), name: cardId, label: sheet.label, fields: sheet.fields, dataUnit: this.dataUnit, formMetadata: this._masterFormMetadata, recordsValidator: this.recordsValidator, fieldToFocus: this._fieldToGetFocus, key: guideId, onSnkRequestClearFieldToFocus: _ => this.clearFieldToFocusHandler(), customEditors: this._customEditors, fieldsProps: this._fieldsProps, fieldSearch: this._fieldSearch }, this.presentationMode == PresentationMode.SECONDARY && this.buildTaskBar());
|
320
|
-
}
|
337
|
+
detailBranch = this.selectedGuide;
|
321
338
|
}
|
322
|
-
return
|
339
|
+
return this.wrapDetail(levels, h("snk-detail-view", { ref: (ref) => this._currentDetail = ref, dataUnitName: this.getDataUnitName(levels, childEntityName), onSnkDetailGuidesChange: (evt) => this.updateGuide(evt.detail), entityName: childEntityName, selectedForm: formName, branchGuide: detailBranch, guideItemPath: this._breadcrumbItems, key: `detail${detailId}`, canEdit: this.canEdit, onSnkSwitchGuide: evt => this._guideNavigator.selectGuide(evt.detail), resourceID: this.resourceID, taskbarCustomContainerId: this.detailTaskbarCustomContainerId, customEditors: this._customEditors, customRenders: this._customRenders, presentationMode: this.presentationMode }));
|
340
|
+
}
|
341
|
+
isCustomGuide(guideId) {
|
342
|
+
var _a;
|
343
|
+
return (_a = this.customGuidesConfig) === null || _a === void 0 ? void 0 : _a.map(g => g.id).includes(guideId);
|
344
|
+
}
|
345
|
+
attachCustomGuideInView() {
|
346
|
+
//As guias customizadas ficam em slots reservados na DOM e
|
347
|
+
// precisam ser acessadas via querySelector e colocadas no container correto na view.
|
348
|
+
var _a;
|
349
|
+
const guideId = (_a = this.selectedGuide) === null || _a === void 0 ? void 0 : _a.id;
|
350
|
+
if (!this.isCustomGuide(guideId))
|
351
|
+
return;
|
352
|
+
const customGuideSlot = document.querySelector(`#${guideId}`);
|
353
|
+
const customGuideElement = customGuideSlot === null || customGuideSlot === void 0 ? void 0 : customGuideSlot.firstElementChild;
|
354
|
+
const customGuideViewContainer = document.querySelector(`#${this.buildCustomGuideContainerId(guideId)}`);
|
355
|
+
if (!customGuideElement || !customGuideViewContainer)
|
356
|
+
return;
|
357
|
+
customGuideViewContainer.appendChild(customGuideElement);
|
323
358
|
}
|
324
359
|
onBreadcrumbClickHandler(item) {
|
325
360
|
if ((item === null || item === void 0 ? void 0 : item.id) == undefined) {
|
@@ -402,7 +437,29 @@ export class SnkGuidesViewer {
|
|
402
437
|
this.addFormLegacyConfigName();
|
403
438
|
this._configManager.loadConfig();
|
404
439
|
}
|
440
|
+
componentWillRender() {
|
441
|
+
this.detachCustomGuideFromView();
|
442
|
+
}
|
443
|
+
detachCustomGuideFromView() {
|
444
|
+
// Antes de cada renderização, o componente remove a guia customizada da view
|
445
|
+
// e a coloca de volta no slot reservado na DOM para que não seja perdida sua referência.
|
446
|
+
if (!this.customGuidesConfig || this.customGuidesConfig.length === 0)
|
447
|
+
return;
|
448
|
+
const viewCustomGuideContainer = this._element.querySelector(`[data-custom-id="${this.CUSTOM_GUIDE_DATA_CUSTOM_ID}"]`);
|
449
|
+
const reservedSlotId = viewCustomGuideContainer === null || viewCustomGuideContainer === void 0 ? void 0 : viewCustomGuideContainer.getAttribute('data-reserved-slot-id');
|
450
|
+
if (!(viewCustomGuideContainer === null || viewCustomGuideContainer === void 0 ? void 0 : viewCustomGuideContainer.hasChildNodes()) || !reservedSlotId)
|
451
|
+
return;
|
452
|
+
const customGuideReservedSlot = document.querySelector(`#${reservedSlotId}`);
|
453
|
+
const customGuideElement = viewCustomGuideContainer === null || viewCustomGuideContainer === void 0 ? void 0 : viewCustomGuideContainer.firstElementChild;
|
454
|
+
if (!customGuideReservedSlot || !customGuideElement)
|
455
|
+
return;
|
456
|
+
customGuideReservedSlot.appendChild(customGuideElement);
|
457
|
+
}
|
405
458
|
componentDidRender() {
|
459
|
+
var _a;
|
460
|
+
if (this.isCustomGuide((_a = this.selectedGuide) === null || _a === void 0 ? void 0 : _a.id)) {
|
461
|
+
this.attachCustomGuideInView();
|
462
|
+
}
|
406
463
|
if (!this._guideHasChanged) {
|
407
464
|
return;
|
408
465
|
}
|
@@ -531,6 +588,9 @@ export class SnkGuidesViewer {
|
|
531
588
|
const labels = selectedRecords.map(record => this.messagesBuilder.getMessage("snkCrud.title", record));
|
532
589
|
return `[${labels.join(", ")}]`;
|
533
590
|
}
|
591
|
+
getCustomGuidesConfig() {
|
592
|
+
return this._currentDetail ? [] : this.customGuidesConfig;
|
593
|
+
}
|
534
594
|
componentDidLoad() {
|
535
595
|
this.dataUnit.subscribe(this.dataUnitActionHandler.bind(this));
|
536
596
|
this.initKeyboardManager();
|
@@ -550,7 +610,7 @@ export class SnkGuidesViewer {
|
|
550
610
|
render() {
|
551
611
|
var _a, _b;
|
552
612
|
if (this._formEditorConfigManager != undefined) {
|
553
|
-
return (h("snk-form-config", { ref: ref => this._container = ref, tabindex: -1, dataUnit: this._formEditorDataUnit, messagesBuilder: this.messagesBuilder, configManager: this._formEditorConfigManager, onConfigClose: () => this._formEditorConfigManager = null }));
|
613
|
+
return (h("snk-form-config", { ref: ref => this._container = ref, tabindex: -1, dataUnit: this._formEditorDataUnit, messagesBuilder: this.messagesBuilder, configManager: this._formEditorConfigManager, onConfigClose: () => this._formEditorConfigManager = null, customGuidesConfig: this.getCustomGuidesConfig() }));
|
554
614
|
}
|
555
615
|
if (!this.dataUnit || !this._configManager.isLoaded) {
|
556
616
|
return;
|
@@ -924,6 +984,29 @@ export class SnkGuidesViewer {
|
|
924
984
|
"tags": [],
|
925
985
|
"text": "Fornece uma fun\u00E7\u00E3o para obter um t\u00EDtulo customizado do formul\u00E1rio."
|
926
986
|
}
|
987
|
+
},
|
988
|
+
"customGuidesConfig": {
|
989
|
+
"type": "unknown",
|
990
|
+
"mutable": false,
|
991
|
+
"complexType": {
|
992
|
+
"original": "Array<CustomGuideItem>",
|
993
|
+
"resolved": "CustomGuideItem[]",
|
994
|
+
"references": {
|
995
|
+
"Array": {
|
996
|
+
"location": "global"
|
997
|
+
},
|
998
|
+
"CustomGuideItem": {
|
999
|
+
"location": "local"
|
1000
|
+
}
|
1001
|
+
}
|
1002
|
+
},
|
1003
|
+
"required": false,
|
1004
|
+
"optional": true,
|
1005
|
+
"docs": {
|
1006
|
+
"tags": [],
|
1007
|
+
"text": "Fornece as informa\u00E7\u00F5es das guias personalizadas."
|
1008
|
+
},
|
1009
|
+
"defaultValue": "[]"
|
927
1010
|
}
|
928
1011
|
};
|
929
1012
|
}
|
@@ -962,6 +1045,21 @@ export class SnkGuidesViewer {
|
|
962
1045
|
}
|
963
1046
|
}
|
964
1047
|
}
|
1048
|
+
}, {
|
1049
|
+
"method": "formConfigVisibilityChanged",
|
1050
|
+
"name": "formConfigVisibilityChanged",
|
1051
|
+
"bubbles": true,
|
1052
|
+
"cancelable": true,
|
1053
|
+
"composed": true,
|
1054
|
+
"docs": {
|
1055
|
+
"tags": [],
|
1056
|
+
"text": "Emitido quando a visibilidade do configurador do formul\u00E1rio \u00E9 alterada."
|
1057
|
+
},
|
1058
|
+
"complexType": {
|
1059
|
+
"original": "boolean",
|
1060
|
+
"resolved": "boolean",
|
1061
|
+
"references": {}
|
1062
|
+
}
|
965
1063
|
}, {
|
966
1064
|
"method": "exit",
|
967
1065
|
"name": "exit",
|
@@ -1159,6 +1257,9 @@ export class SnkGuidesViewer {
|
|
1159
1257
|
return [{
|
1160
1258
|
"propName": "dataUnit",
|
1161
1259
|
"methodName": "observeDataUnit"
|
1260
|
+
}, {
|
1261
|
+
"propName": "_formEditorConfigManager",
|
1262
|
+
"methodName": "observeFormConfigManager"
|
1162
1263
|
}, {
|
1163
1264
|
"propName": "dataState",
|
1164
1265
|
"methodName": "observeDataState"
|
@@ -108,6 +108,46 @@ export function buildGuides(config, mainArea) {
|
|
108
108
|
tabs = initializeTabsNames(tabs);
|
109
109
|
return handleMainTab(tabs, mainArea);
|
110
110
|
}
|
111
|
+
export function buildChildrenGuides(dataUnit, initialOrderIndex = 0, guidesList) {
|
112
|
+
var _a;
|
113
|
+
if (!dataUnit || !dataUnit.metadata) {
|
114
|
+
return [];
|
115
|
+
}
|
116
|
+
const children = ((_a = dataUnit.metadata) === null || _a === void 0 ? void 0 : _a.children) || [];
|
117
|
+
const childrenWithNoGuide = [];
|
118
|
+
for (const child of children) {
|
119
|
+
if (guidesList.some((guide) => child.label === guide.label)) {
|
120
|
+
continue;
|
121
|
+
}
|
122
|
+
childrenWithNoGuide.push({
|
123
|
+
label: child.label,
|
124
|
+
name: child.name,
|
125
|
+
visible: true,
|
126
|
+
isCustom: true,
|
127
|
+
order: initialOrderIndex++
|
128
|
+
});
|
129
|
+
}
|
130
|
+
return childrenWithNoGuide;
|
131
|
+
}
|
132
|
+
export function buildCustomGuides(customGuidesList, guidesList) {
|
133
|
+
let initialOrderIndex = guidesList.length;
|
134
|
+
const customGuidesToAdd = getCustomGuidesNotIncludedInList(customGuidesList, guidesList);
|
135
|
+
return customGuidesToAdd.map(guide => {
|
136
|
+
return {
|
137
|
+
name: guide.id,
|
138
|
+
label: guide.label,
|
139
|
+
visible: true,
|
140
|
+
isCustom: true,
|
141
|
+
order: initialOrderIndex++
|
142
|
+
};
|
143
|
+
});
|
144
|
+
}
|
145
|
+
function isCustomGuideIncludedInList(guidesList, guide) {
|
146
|
+
return guidesList.some(fromList => fromList.name === guide.id || fromList.label === guide.label);
|
147
|
+
}
|
148
|
+
function getCustomGuidesNotIncludedInList(customGuidesList, guidesList) {
|
149
|
+
return customGuidesList.filter(guide => !isCustomGuideIncludedInList(guidesList, guide));
|
150
|
+
}
|
111
151
|
function handleFieldsTabNames(allFields) {
|
112
152
|
// Campos que não fazem parte de nenhuma aba ou da aba "Geral", devem ser movidos para a aba __main.
|
113
153
|
return allFields.map(field => {
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import { ConfigStorage } from '../../lib/configs/ConfigStorage';
|
2
1
|
import { ObjectUtils, StringUtils } from '@sankhyalabs/core';
|
2
|
+
import { ConfigStorage } from '../../lib/configs/ConfigStorage';
|
3
3
|
import { FormConfigFetcher } from '../../lib/http/data-fetcher/fetchers/form-config-fetcher';
|
4
4
|
import { TAB_NAMES } from '../../lib/utils/constants';
|
5
5
|
export class SnkFormConfigManager {
|
@@ -82,7 +82,7 @@ export class SnkFormConfigManager {
|
|
82
82
|
return false;
|
83
83
|
}
|
84
84
|
getFieldsList(descriptionFilter, forceEmptyConfig = false) {
|
85
|
-
var _a;
|
85
|
+
var _a, _b;
|
86
86
|
const fields = (_a = this._config) === null || _a === void 0 ? void 0 : _a.fields;
|
87
87
|
const hasConfig = this.hasConfig();
|
88
88
|
if (hasConfig && !forceEmptyConfig) {
|
@@ -98,7 +98,7 @@ export class SnkFormConfigManager {
|
|
98
98
|
})
|
99
99
|
.filter(field => this.isFieldVisible(field, descriptionFilter));
|
100
100
|
}
|
101
|
-
if (!this._dataUnit) {
|
101
|
+
if (!this._dataUnit || !((_b = this._dataUnit.metadata) === null || _b === void 0 ? void 0 : _b.fields)) {
|
102
102
|
return [];
|
103
103
|
}
|
104
104
|
const filteredFields = this._dataUnit.metadata.fields
|
@@ -320,6 +320,9 @@ export class FieldLayoutComponent {
|
|
320
320
|
if (!this.selectedGuide) {
|
321
321
|
return (h(Host, { class: 'ez-flex-item--auto ez-size-height--full ez-box ez-padding--medium content-container' }, h("span", { class: 'no-guide-selected' }, this.getMessage('snkFormConfig.form.noGuideSelected'))));
|
322
322
|
}
|
323
|
+
if (this.selectedGuide.isCustom || this.selectedGuide.isDetail) {
|
324
|
+
return (h(Host, { class: 'ez-flex-item--auto ez-size-height--full ez-box ez-padding--medium content-container' }, h("span", { class: 'no-guide-selected' }, this.getMessage('snkFormConfig.form.canNotEditCustomGuide'))));
|
325
|
+
}
|
323
326
|
return (h(Host, { class: 'ez-flex-item--auto ez-size-height--full ez-box ez-padding--medium content-container' }, this.renderGuideName(), h("div", { class: 'layout-container' }, h("ez-scroller", { direction: 'vertical', activeShadow: true }, h("div", { class: 'no-group-container' }, h("div", { id: GROUP_NAMES.noGroup, class: 'group-content', "data-group-name": GROUP_NAMES.noGroup }, this.renderFixedFields())), h("hr", null), h("div", { id: this.ID_GROUPS, class: 'groups-container' }, this.renderDraggableGroups()))), h("div", { class: 'add-group-container', onClick: this.handleAddGroup.bind(this) }, h("ez-icon", { slot: "leftIcon", iconName: "plus" }), h("span", null, this.getMessage('snkFormConfig.form.createNewGroup')))));
|
324
327
|
}
|
325
328
|
static get is() { return "fields-layout"; }
|
package/dist/collection/components/snk-form-config/guides-configurator/guides-configurator.js
CHANGED
@@ -92,7 +92,9 @@ export class GuidesConfigurator {
|
|
92
92
|
var _a;
|
93
93
|
return (h("div", { key: guide.name, "data-guide-name": guide.name, title: guide.label, class: `guide-item ${((_a = this.selectedGuide) === null || _a === void 0 ? void 0 : _a.label) === guide.label ? 'selected' : ''} ${this.filterTerm.length ? 'disable-sort' : ''}`, onClick: e => this.handleSelectGuide(guide, e) }, h("span", null, h("ez-icon", { iconName: "drag-indicator", class: 'ez-margin-right--small' })), h("span", { class: 'item-label' }, guide.label), h("div", { class: 'actions' }, h("ez-button", { mode: "icon", class: "ez-button--tertiary", onClick: e => this.toggleGuideVisibility(guide, e), size: "medium", iconName: guide.visible ? 'eye-off' : 'eye', title: guide.visible ?
|
94
94
|
this.getMessage('snkFormConfig.guidesConfigurator.actions.hide') :
|
95
|
-
this.getMessage('snkFormConfig.guidesConfigurator.actions.show') }), h("ez-button", { mode: "icon", class: "ez-button--tertiary", onClick: e => this.handleDeleteGuide(guide, e), size: "medium", iconName: 'delete', title:
|
95
|
+
this.getMessage('snkFormConfig.guidesConfigurator.actions.show') }), h("ez-button", { mode: "icon", class: "ez-button--tertiary", onClick: e => this.handleDeleteGuide(guide, e), size: "medium", isDisabled: guide.isCustom || guide.isDetail, iconName: 'delete', title: guide.isCustom || guide.isDetail ?
|
96
|
+
this.getMessage('snkFormConfig.guidesConfigurator.canNotDeleteCustomGuide') :
|
97
|
+
this.getMessage('snkFormConfig.guidesConfigurator.actions.delete') }))));
|
96
98
|
});
|
97
99
|
}
|
98
100
|
getContainerElement(id) {
|
@@ -1,10 +1,10 @@
|
|
1
|
-
import { h, Host } from '@stencil/core';
|
2
1
|
import { ApplicationContext, ObjectUtils } from '@sankhyalabs/core';
|
3
2
|
import { buildFormConfigFromDataUnit } from '@sankhyalabs/ezui/dist/collection/utils/form';
|
4
|
-
import {
|
5
|
-
import { GROUP_NAMES, TAB_NAMES } from '../../lib/utils/constants';
|
3
|
+
import { h, Host } from '@stencil/core';
|
6
4
|
import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
|
7
5
|
import { UserConfigType } from '../../lib/http/data-fetcher/fetchers/form-config-fetcher';
|
6
|
+
import { GROUP_NAMES, TAB_NAMES } from '../../lib/utils/constants';
|
7
|
+
import { buildChildrenGuides, buildCustomGuides, buildGuides, buildGuidesMap, buildNewGuideName, getFieldsToSave, updateTabInFieldsFromGroupList, } from './FormConfigHelper';
|
8
8
|
export class SnkFormConfig {
|
9
9
|
constructor() {
|
10
10
|
this.guidesMap = new Map();
|
@@ -22,6 +22,7 @@ export class SnkFormConfig {
|
|
22
22
|
this.configManager = undefined;
|
23
23
|
this.ignoreReadOnlyFormFields = undefined;
|
24
24
|
this.messagesBuilder = undefined;
|
25
|
+
this.customGuidesConfig = [];
|
25
26
|
}
|
26
27
|
handleFieldConfigChanged() {
|
27
28
|
this.hasChanges = true;
|
@@ -41,6 +42,10 @@ export class SnkFormConfig {
|
|
41
42
|
this.showNoGuideSelectedDialog();
|
42
43
|
return;
|
43
44
|
}
|
45
|
+
if (this.selectedGuide.isCustom || this.selectedGuide.isDetail) {
|
46
|
+
this.showCanNotAddFieldToGuideDialog();
|
47
|
+
return;
|
48
|
+
}
|
44
49
|
this.availableFields = [...this.availableFields.filter(f => f.name !== fieldItem.name)];
|
45
50
|
await ((_a = this.refFieldsLayout) === null || _a === void 0 ? void 0 : _a.addFieldToLayout(fieldItem));
|
46
51
|
}
|
@@ -66,6 +71,11 @@ export class SnkFormConfig {
|
|
66
71
|
const message = this.getMessage('snkFormConfig.noGuideSelected.message');
|
67
72
|
ApplicationUtils.alert(title, message);
|
68
73
|
}
|
74
|
+
showCanNotAddFieldToGuideDialog() {
|
75
|
+
const title = this.getMessage('snkFormConfig.canNotAddFieldToGuide.title');
|
76
|
+
const message = this.getMessage('snkFormConfig.canNotAddFieldToGuide.message');
|
77
|
+
ApplicationUtils.alert(title, message);
|
78
|
+
}
|
69
79
|
/**
|
70
80
|
* Conforme mecanismo de mensagens, é possível customizar as mensagens dos blocos de construção
|
71
81
|
* através de um pequeno modulo na estrutura da aplicação:
|
@@ -138,9 +148,12 @@ export class SnkFormConfig {
|
|
138
148
|
});
|
139
149
|
}
|
140
150
|
loadGuides() {
|
141
|
-
var _a;
|
142
|
-
this.guidesList = [
|
143
|
-
this.
|
151
|
+
var _a, _b, _c, _d;
|
152
|
+
this.guidesList = [];
|
153
|
+
this.guidesList.push(...buildGuides(this._formConfig, this.getMessage('snkFormConfig.form.mainArea')));
|
154
|
+
this.guidesList.push(...buildChildrenGuides(this.dataUnit, (_c = (_b = (_a = this._formConfig) === null || _a === void 0 ? void 0 : _a.tabs) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0, this.guidesList));
|
155
|
+
this.guidesList.push(...buildCustomGuides(this.customGuidesConfig, this.guidesList));
|
156
|
+
this.guidesMap = buildGuidesMap((_d = this._formConfig) === null || _d === void 0 ? void 0 : _d.fields, this.guidesList, this.dataUnit, this.getMessage('snkFormConfig.form.tabGeneral'));
|
144
157
|
}
|
145
158
|
getConfig() {
|
146
159
|
let config = this.configManager.getConfig(this.dataUnit, false);
|
@@ -368,6 +381,30 @@ export class SnkFormConfig {
|
|
368
381
|
"tags": [],
|
369
382
|
"text": "Respons\u00E1vel por flexibilizar e padronizar o uso de mensagens nos blocos de constru\u00E7\u00E3o."
|
370
383
|
}
|
384
|
+
},
|
385
|
+
"customGuidesConfig": {
|
386
|
+
"type": "unknown",
|
387
|
+
"mutable": false,
|
388
|
+
"complexType": {
|
389
|
+
"original": "Array<CustomGuideItem>",
|
390
|
+
"resolved": "CustomGuideItem[]",
|
391
|
+
"references": {
|
392
|
+
"Array": {
|
393
|
+
"location": "global"
|
394
|
+
},
|
395
|
+
"CustomGuideItem": {
|
396
|
+
"location": "import",
|
397
|
+
"path": "../snk-crud/subcomponents/snk-guides-viewer"
|
398
|
+
}
|
399
|
+
}
|
400
|
+
},
|
401
|
+
"required": false,
|
402
|
+
"optional": true,
|
403
|
+
"docs": {
|
404
|
+
"tags": [],
|
405
|
+
"text": "Informa\u00E7\u00F5es das guias personalizadas."
|
406
|
+
},
|
407
|
+
"defaultValue": "[]"
|
371
408
|
}
|
372
409
|
};
|
373
410
|
}
|
@@ -1,8 +1,8 @@
|
|
1
|
-
import { Action as DUAction,
|
1
|
+
import { ApplicationContext, Action as DUAction, ElementIDUtils, LockManager, LockManagerOperation, OverflowDirection, OVERFLOWED_CLASS_NAME, OverflowWatcher, SilentException, StringUtils, } from '@sankhyalabs/core';
|
2
2
|
import { h, Host } from '@stencil/core';
|
3
|
+
import { PresentationMode } from '../../lib/@types';
|
3
4
|
import { AuthorizationConfig } from '../snk-configurator/AuthorizationConfig';
|
4
5
|
import { AuthorizationElements, buildCustomButton, buildElem, TaskbarElement, VisibleWhenForbidden, } from './elements/taskbar-elements';
|
5
|
-
import { PresentationMode } from '../../lib/@types';
|
6
6
|
export class SnkTaskbar {
|
7
7
|
constructor() {
|
8
8
|
this.TASKBAR_ITEM_ID_PREFIX = 'TASKBAR_ITEM_';
|
@@ -11,6 +11,7 @@ export class SnkTaskbar {
|
|
11
11
|
this.TASKBAR_CUSTOM_ELEMENTS = 'taskbar-custom-elements-container';
|
12
12
|
this.TASKBAR_ADDITIONAL_SLOT_CONTAINER_CLASS_NAME = 'taskbar-additional-slot-container';
|
13
13
|
this.TASKBAR_ADDITIONAL_SLOT = 'taskbar-additional-slot-container';
|
14
|
+
this._dataUnitInitialized = false;
|
14
15
|
this._titleKeyByElement = {
|
15
16
|
[TaskbarElement.UPDATE_MULTIPLE]: "snkTaskbar.titleUpdateMultiple",
|
16
17
|
[TaskbarElement.UPDATE]: "snkTaskbar.titleUpdate",
|
@@ -109,6 +110,17 @@ export class SnkTaskbar {
|
|
109
110
|
this.taskbarSaveUnlocker.emit();
|
110
111
|
}
|
111
112
|
}
|
113
|
+
observeDataUnit(newValue) {
|
114
|
+
this.initializeDataUnit(newValue);
|
115
|
+
}
|
116
|
+
initializeDataUnit(dataUnit) {
|
117
|
+
if (!!dataUnit && !this._dataUnitInitialized) {
|
118
|
+
this._dataUnitInitialized = true;
|
119
|
+
const dataInfo = { dataUnit: this.dataUnit };
|
120
|
+
ElementIDUtils.addIDInfo(this._element, null, dataInfo);
|
121
|
+
this.dataUnit.subscribe(this.onSaveEvent);
|
122
|
+
}
|
123
|
+
}
|
112
124
|
// Internal methods
|
113
125
|
elementsFromString(strButtons) {
|
114
126
|
const elements = [];
|
@@ -154,45 +166,46 @@ export class SnkTaskbar {
|
|
154
166
|
}
|
155
167
|
elementClick(elem) {
|
156
168
|
LockManager.whenResolve(this._element, LockManagerOperation.TASKBAR_CLICK).then(() => {
|
157
|
-
if (this.dataUnit) {
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
169
|
+
if (!this.dataUnit) {
|
170
|
+
return;
|
171
|
+
}
|
172
|
+
switch (elem) {
|
173
|
+
case TaskbarElement.PREVIOUS:
|
174
|
+
this.dataUnit.previousRecord();
|
175
|
+
break;
|
176
|
+
case TaskbarElement.NEXT:
|
177
|
+
this.dataUnit.nextRecord();
|
178
|
+
break;
|
179
|
+
case TaskbarElement.REFRESH:
|
180
|
+
this.dataUnit.loadData();
|
181
|
+
break;
|
182
|
+
case TaskbarElement.CLONE:
|
183
|
+
this.dataUnit.copySelected();
|
184
|
+
break;
|
185
|
+
case TaskbarElement.REMOVE:
|
186
|
+
this.dataUnit.removeSelectedRecords();
|
187
|
+
break;
|
188
|
+
case TaskbarElement.INSERT:
|
189
|
+
this.dataUnit.addRecord();
|
190
|
+
break;
|
191
|
+
case TaskbarElement.CANCEL:
|
192
|
+
this.dataUnit.cancelEdition();
|
193
|
+
break;
|
194
|
+
case TaskbarElement.SAVE:
|
195
|
+
if (!this._isWaitingForSave) {
|
196
|
+
this._isWaitingForSave = true;
|
197
|
+
this.dataUnit.saveData().catch((err) => {
|
198
|
+
if (err instanceof SilentException) {
|
199
|
+
return;
|
200
|
+
}
|
201
|
+
else {
|
202
|
+
throw err;
|
203
|
+
}
|
204
|
+
}).finally(() => {
|
205
|
+
this._isWaitingForSave = false;
|
206
|
+
});
|
207
|
+
}
|
208
|
+
break;
|
196
209
|
}
|
197
210
|
if (this.isEnabled(elem))
|
198
211
|
this.actionClick.emit(elem);
|
@@ -391,10 +404,8 @@ export class SnkTaskbar {
|
|
391
404
|
};
|
392
405
|
}
|
393
406
|
componentDidLoad() {
|
394
|
-
|
395
|
-
ElementIDUtils.addIDInfo(this._element, null, dataInfo);
|
407
|
+
this.initializeDataUnit(this.dataUnit);
|
396
408
|
this.handleOverFlowStrategy();
|
397
|
-
this.dataUnit.subscribe(this.onSaveEvent);
|
398
409
|
}
|
399
410
|
componentDidRender() {
|
400
411
|
this.appendCustomElementsInTaskbar();
|
@@ -914,6 +925,9 @@ export class SnkTaskbar {
|
|
914
925
|
}, {
|
915
926
|
"propName": "_isWaitingForSave",
|
916
927
|
"methodName": "observeIsWaitingForSave"
|
928
|
+
}, {
|
929
|
+
"propName": "dataUnit",
|
930
|
+
"methodName": "observeDataUnit"
|
917
931
|
}];
|
918
932
|
}
|
919
933
|
static get listeners() {
|
@@ -39,6 +39,7 @@ export const snkFormConfigMessages = {
|
|
39
39
|
labelNewGroup: "Add new group",
|
40
40
|
mainArea: "Main area",
|
41
41
|
tabGeneral: "General",
|
42
|
+
canNotEditCustomGuide: "It is not possible to edit detail tabs and custom tabs",
|
42
43
|
createNewGroup: "Create new group",
|
43
44
|
newGroup: "New group",
|
44
45
|
noGuideSelected: "Select a tab and start configuring",
|
@@ -66,6 +67,10 @@ export const snkFormConfigMessages = {
|
|
66
67
|
title: "Attention",
|
67
68
|
message: "Select a guide to start configuration!"
|
68
69
|
},
|
70
|
+
canNotAddFieldToGuide: {
|
71
|
+
title: "Attention",
|
72
|
+
message: "It is not possible to add fields to detail tabs or custom tabs!"
|
73
|
+
},
|
69
74
|
alert: {
|
70
75
|
titleGroupExists: "A group with this title already exists",
|
71
76
|
titleGroupEditing: "There is a <b>group<b/> being edited. <br/> Finish editing to save the settings.",
|
@@ -96,6 +101,7 @@ export const snkFormConfigMessages = {
|
|
96
101
|
createNewGuide: "Create new tab",
|
97
102
|
noHiddenGuides: "No hidden tabs",
|
98
103
|
noVisibleGuides: "No visible tabs",
|
104
|
+
canNotDeleteCustomGuide: "Is not possible to detail detail tabs os a custom tabs",
|
99
105
|
actions: {
|
100
106
|
hide: "Hide",
|
101
107
|
show: "Make visible",
|
@@ -39,6 +39,7 @@ export const snkFormConfigMessages = {
|
|
39
39
|
labelNewGroup: "Añadir nuevo grupo",
|
40
40
|
mainArea: "Área principal",
|
41
41
|
tabGeneral: "General",
|
42
|
+
canNotEditCustomGuide: "No es posible editar pestañas de detalles y pestañas personalizadas",
|
42
43
|
createNewGroup: "Crear nuevo grupo",
|
43
44
|
newGroup: "Nuevo grupo",
|
44
45
|
noGuideSelected: "Seleccione una pestaña y comience a configurar",
|
@@ -66,6 +67,10 @@ export const snkFormConfigMessages = {
|
|
66
67
|
title: "Atención",
|
67
68
|
message: "¡Seleccione una guía para iniciar la configuración!"
|
68
69
|
},
|
70
|
+
canNotAddFieldToGuide: {
|
71
|
+
title: "Atención",
|
72
|
+
message: "¡No es posible agregar campos a pestañas de detalles o pestañas personalizadas!"
|
73
|
+
},
|
69
74
|
alert: {
|
70
75
|
titleGroupExists: "Ya existe un grupo con título",
|
71
76
|
titleGroupEditing: "Hay un <b>grupo<b/> en edición. <br/> Finalice la edición para guardar las configuraciones.",
|
@@ -96,6 +101,7 @@ export const snkFormConfigMessages = {
|
|
96
101
|
createNewGuide: "Crear nueva pestaña",
|
97
102
|
noHiddenGuides: "No hay pestañas ocultas",
|
98
103
|
noVisibleGuides: "No hay pestañas visibles",
|
104
|
+
canNotDeleteCustomGuide: "No es posible eliminar pestañas de detalles o pestañas personalizadas",
|
99
105
|
actions: {
|
100
106
|
hide: "Ocultar",
|
101
107
|
show: "Hacer visible",
|
@@ -39,6 +39,7 @@ export const snkFormConfigMessages = {
|
|
39
39
|
labelNewGroup: "Adicionar novo grupo",
|
40
40
|
mainArea: "Área principal",
|
41
41
|
tabGeneral: "Geral",
|
42
|
+
canNotEditCustomGuide: "Não é possível editar guias detalhe e guias personalizadas",
|
42
43
|
createNewGroup: "Criar novo grupo",
|
43
44
|
newGroup: "Criar novo grupo",
|
44
45
|
noGuideSelected: "Selecione uma guia e comece a configurar",
|
@@ -66,6 +67,10 @@ export const snkFormConfigMessages = {
|
|
66
67
|
title: "Atenção",
|
67
68
|
message: "Selecione uma guia para iniciar a configuração!"
|
68
69
|
},
|
70
|
+
canNotAddFieldToGuide: {
|
71
|
+
title: "Atenção",
|
72
|
+
message: "Não é possível adicionar campos à guias customizadas ou guias detalhe!"
|
73
|
+
},
|
69
74
|
alert: {
|
70
75
|
titleGroupExists: "Já existe um grupo com título",
|
71
76
|
titleGroupEditing: "Há um <b>grupo<b/> em edição. <br/> Finalize a edição para salvar as configurações.",
|
@@ -96,10 +101,11 @@ export const snkFormConfigMessages = {
|
|
96
101
|
createNewGuide: "Criar nova guia",
|
97
102
|
noHiddenGuides: "Nenhuma guia oculta",
|
98
103
|
noVisibleGuides: "Nenhuma guia visível",
|
104
|
+
canNotDeleteCustomGuide: "Não é possível excluir guias detalhe e guias personalizadas",
|
99
105
|
actions: {
|
100
106
|
hide: "Ocultar",
|
101
107
|
show: "Tornar visível",
|
102
|
-
delete: "Excluir"
|
108
|
+
delete: "Excluir",
|
103
109
|
}
|
104
110
|
}
|
105
111
|
};
|