@sankhyalabs/sankhyablocks 4.6.1 → 4.6.3
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/{SnkMessageBuilder-d147f088.js → SnkMessageBuilder-47185d5d.js} +1 -0
- package/dist/cjs/{constants-73803daf.js → constants-ae0ed870.js} +0 -2
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/sankhyablocks.cjs.js +1 -1
- package/dist/cjs/snk-application.cjs.entry.js +1 -1
- package/dist/cjs/snk-config-options.cjs.entry.js +1 -1
- package/dist/cjs/snk-configurator.cjs.entry.js +1 -1
- package/dist/cjs/snk-crud.cjs.entry.js +1 -1
- package/dist/cjs/snk-data-exporter.cjs.entry.js +1 -1
- package/dist/cjs/snk-data-unit.cjs.entry.js +50 -25
- package/dist/cjs/snk-detail-view.cjs.entry.js +13 -4
- package/dist/cjs/snk-field-config.cjs.entry.js +1 -1
- package/dist/cjs/snk-form-config.cjs.entry.js +2 -2
- package/dist/cjs/snk-grid-config.cjs.entry.js +1 -1
- package/dist/cjs/snk-grid.cjs.entry.js +18 -6
- package/dist/cjs/{snk-guides-viewer-5d3dca5d.js → snk-guides-viewer-cb02e675.js} +12 -4
- package/dist/cjs/snk-guides-viewer.cjs.entry.js +3 -3
- package/dist/cjs/snk-select-box.cjs.entry.js +1 -1
- package/dist/cjs/snk-simple-crud.cjs.entry.js +2 -2
- package/dist/cjs/snk-tab-config.cjs.entry.js +1 -1
- package/dist/cjs/{taskbar-processor-6f3d2a75.js → taskbar-processor-bce3f499.js} +1 -1
- package/dist/collection/components/snk-crud/subcomponents/snk-detail-view.js +15 -1
- package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +10 -2
- package/dist/collection/components/snk-data-unit/snk-data-unit.js +49 -24
- package/dist/collection/components/snk-form/subcomponents/snk-form-config/snk-form-config.js +1 -1
- package/dist/collection/components/snk-grid/snk-grid.js +17 -5
- package/dist/collection/components/snk-taskbar/processor/taskbar-processor.js +1 -1
- package/dist/collection/lib/message/resources/snk-form.msg.js +1 -0
- package/dist/components/SnkMessageBuilder.js +1 -0
- package/dist/components/constants.js +1 -2
- package/dist/components/snk-data-unit2.js +49 -24
- package/dist/components/snk-detail-view2.js +21 -3
- package/dist/components/snk-field-config2.js +1 -1
- package/dist/components/snk-form-config2.js +2 -2
- package/dist/components/snk-grid2.js +17 -5
- package/dist/components/snk-tab-config2.js +1 -1
- package/dist/components/taskbar-processor.js +1 -1
- package/dist/esm/{SnkMessageBuilder-0e1ffd61.js → SnkMessageBuilder-ec0850af.js} +1 -0
- package/dist/esm/{constants-9560e54f.js → constants-15617e7d.js} +1 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/sankhyablocks.js +1 -1
- package/dist/esm/snk-application.entry.js +1 -1
- package/dist/esm/snk-config-options.entry.js +1 -1
- package/dist/esm/snk-configurator.entry.js +1 -1
- package/dist/esm/snk-crud.entry.js +1 -1
- package/dist/esm/snk-data-exporter.entry.js +1 -1
- package/dist/esm/snk-data-unit.entry.js +50 -25
- package/dist/esm/snk-detail-view.entry.js +13 -4
- package/dist/esm/snk-field-config.entry.js +1 -1
- package/dist/esm/snk-form-config.entry.js +2 -2
- package/dist/esm/snk-grid-config.entry.js +1 -1
- package/dist/esm/snk-grid.entry.js +18 -6
- package/dist/esm/{snk-guides-viewer-6bb54367.js → snk-guides-viewer-b13cff0a.js} +12 -4
- package/dist/esm/snk-guides-viewer.entry.js +3 -3
- package/dist/esm/snk-select-box.entry.js +1 -1
- package/dist/esm/snk-simple-crud.entry.js +2 -2
- package/dist/esm/snk-tab-config.entry.js +1 -1
- package/dist/esm/{taskbar-processor-c2a99aba.js → taskbar-processor-94402e6e.js} +1 -1
- package/dist/sankhyablocks/p-0c0c086f.entry.js +1 -0
- package/dist/sankhyablocks/{p-9f00c061.entry.js → p-0d9f624f.entry.js} +1 -1
- package/dist/sankhyablocks/{p-8b0e8deb.entry.js → p-1374b0e2.entry.js} +1 -1
- package/dist/sankhyablocks/p-28c800b9.js +1 -0
- package/dist/sankhyablocks/{p-dbeac5db.entry.js → p-3169584f.entry.js} +1 -1
- package/dist/sankhyablocks/{p-9f2306ba.entry.js → p-31d4e5d4.entry.js} +1 -1
- package/dist/sankhyablocks/p-5afa5b01.entry.js +1 -0
- package/dist/sankhyablocks/{p-2a3996b0.entry.js → p-5b80ee28.entry.js} +1 -1
- package/dist/sankhyablocks/{p-cf9d1b55.entry.js → p-604e6970.entry.js} +1 -1
- package/dist/sankhyablocks/p-6181e6cb.entry.js +1 -0
- package/dist/sankhyablocks/{p-798cbc14.entry.js → p-64f21075.entry.js} +1 -1
- package/dist/sankhyablocks/p-94fef424.entry.js +1 -0
- package/dist/sankhyablocks/{p-869d6616.entry.js → p-af8cf505.entry.js} +1 -1
- package/dist/sankhyablocks/p-c2beb95c.js +1 -0
- package/dist/sankhyablocks/{p-86efa17d.entry.js → p-c88c4f80.entry.js} +1 -1
- package/dist/sankhyablocks/p-e1dbaecb.js +1 -0
- package/dist/sankhyablocks/p-f587a454.js +1 -0
- package/dist/sankhyablocks/{p-f83e3219.entry.js → p-f9ca6d74.entry.js} +1 -1
- package/dist/sankhyablocks/{p-b318cec6.entry.js → p-fa8a62f2.entry.js} +1 -1
- package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
- package/dist/types/components/snk-crud/subcomponents/snk-detail-view.d.ts +1 -0
- package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +8 -2
- package/dist/types/components/snk-grid/snk-grid.d.ts +1 -0
- package/package.json +1 -1
- package/dist/sankhyablocks/p-4bd183ba.entry.js +0 -1
- package/dist/sankhyablocks/p-4fb98039.entry.js +0 -1
- package/dist/sankhyablocks/p-5518d572.js +0 -1
- package/dist/sankhyablocks/p-5a3e0eb6.js +0 -1
- package/dist/sankhyablocks/p-7889d481.entry.js +0 -1
- package/dist/sankhyablocks/p-9bf0319f.js +0 -1
- package/dist/sankhyablocks/p-c0bfafcb.entry.js +0 -1
- package/dist/sankhyablocks/p-ecbfbb4a.js +0 -1
@@ -4,11 +4,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
5
5
|
const index = require('./index-21bd01e1.js');
|
6
6
|
const core = require('@sankhyalabs/core');
|
7
|
-
const constants = require('./constants-
|
7
|
+
const constants = require('./constants-ae0ed870.js');
|
8
8
|
const taskbarElements = require('./taskbar-elements-5e87cf44.js');
|
9
9
|
require('./DataFetcher-6acfc3a8.js');
|
10
10
|
const index$1 = require('./index-f400b1d6.js');
|
11
|
-
const taskbarProcessor = require('./taskbar-processor-
|
11
|
+
const taskbarProcessor = require('./taskbar-processor-bce3f499.js');
|
12
12
|
require('./index-fc7ca86c.js');
|
13
13
|
require('./_commonjsHelpers-537d719a.js');
|
14
14
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
5
|
const index = require('./index-21bd01e1.js');
|
6
6
|
const draggable_bundle = require('./draggable.bundle-82a25c06.js');
|
7
7
|
const core = require('@sankhyalabs/core');
|
8
|
-
const constants = require('./constants-
|
8
|
+
const constants = require('./constants-ae0ed870.js');
|
9
9
|
require('./_commonjsHelpers-537d719a.js');
|
10
10
|
|
11
11
|
const snkTabConfigCss = "@keyframes activate{0%{clip-path:inset(calc(100% - 3px) 50% 0px 50%)}100%{clip-path:inset(calc(100% - 3px) 0px 0px 0px)}}.sc-snk-tab-config-h{--snk-tab-config--backward-icon:url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"16px\" width=\"10px\"><path d=\"M 9.7808475,13.860393 3.9204526,8.0000004 9.7808475,2.0624965 7.9301965,0.28895552 0.21915255,8.0000004 7.9301965,15.711044 Z\"/></svg>');--snk-tab-config--forward-icon:url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"16px\" width=\"10px\"><path d=\"M 0.21915251,13.860393 6.0795475,8.0000007 0.21915251,2.0624968 2.0698036,0.28895588 9.7808475,8.0000007 2.0698036,15.711044 Z\"/></svg>');--snk-tab-config__lower-bar--background-color:var(--color--disable-primary, #e5eaf0);--snk-tab-config__lower-bar--border:2px solid var(--color--disable-primary, #e5eaf0);--snk-tab-config__tab--color:var(--text--primary, #626e82);--snk-tab-config__tab--font-family:var(--font-pattern, \"Roboto\");--snk-tab-config__tab--font-size:var(--title--small, 14px);--snk-tab-config__tab--padding:var(--space--small, 6px) var(--space--medium, 12px);--snk-tab-config__tab-is-active--color:var(--color--primary, #008561);--snk-tab-config__tab-hover--color:var(--color--secondary, #383c45);--snk-tab-config__tab-is-focused--border:1px dashed var(--color--primary, #008561);--snk-tab-config__tab-label--text-shadow:var(--text-shadow, 0 0 0 #353535, 0 0 1px transparent);--snk-tab-config__tab-label--margin-bottom:var(--space--extra-small, 3px);--snk-tab-config__new-button-icon--color:var(--color--secondary-700, #1C1D22);--snk-tab-config__forward-button--background-color:var(--text--primary, #626e82);--snk-tab-config__forward-button-hover--background-color:var(--color--primary, #008561);--snk-tab-config__left-icon--padding-right:var(--space--small, 6px);--snk-tab-config__left-icon--color:var(--text--disable, #AFB6C0);--snk-tab-config__tab-label-disabled--color:var(--text--disable, #AFB6C0);--snk-tab-config__slot--margin-left:var(--space--small, 6px);display:flex;position:relative;width:100%;overflow:hidden}.tab-config__scroll.sc-snk-tab-config{display:flex;width:100%;scroll-behavior:smooth;overflow-x:auto;scrollbar-width:none}.tab-config__lower-bar.sc-snk-tab-config{position:absolute;left:0%;right:0%;top:91%;bottom:0%;border-radius:2px;background-color:var(--snk-tab-config__lower-bar--background-color);border:var(--snk-tab-config__lower-bar--border)}.tab-config__tab.sc-snk-tab-config{display:flex;border:none;background-color:unset;cursor:pointer;align-items:center;justify-content:center;min-width:fit-content;color:var(--snk-tab-config__tab--color);font-family:var(--snk-tab-config__tab--font-family);font-size:var(--snk-tab-config__tab--font-size);padding:var(--snk-tab-config__tab--padding)}.tab-config__tab.sc-snk-tab-config:focus,.tab-config__forward-button.sc-snk-tab-config,.tab-config__backward-button.sc-snk-tab-config{outline:none}.tab-config__tab--is-active.sc-snk-tab-config{position:relative;color:var(--snk-tab-config__tab-is-active--color)}.tab-config__tab.sc-snk-tab-config:hover{color:var(--snk-tab-config__tab-hover--color)}.tab-config__tab--is-active.sc-snk-tab-config:hover{color:var(--snk-tab-config__tab-is-active--color)}.tab-config__tab--is-active.sc-snk-tab-config::after{content:\"\";position:absolute;width:100%;height:100%;clip-path:inset(calc(100% - 3px) 0px 0px 0px);animation:activate 0.25s ease-in-out;background-color:var(--snk-tab-config__tab-is-active--color)}.tab-config__tab--is-focused.sc-snk-tab-config{border:var(--snk-tab-config__tab-is-focused--border)}.tab-config__tab-label.sc-snk-tab-config{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-shadow:var(--snk-tab-config__tab-label--text-shadow);margin-bottom:var(--snk-tab-config__tab-label--margin-bottom)}.tab-config__forward-button.sc-snk-tab-config,.tab-config__backward-button.sc-snk-tab-config{position:absolute;z-index:1;display:flex;box-sizing:border-box;padding:0px;top:0px;right:0px;width:16px;height:100%;border:none;background-color:unset;cursor:pointer;justify-content:center;align-items:center}.tab-config__new-button.sc-snk-tab-config{position:absolute;z-index:1;display:flex;box-sizing:border-box;padding:0px;top:0px;right:0px;height:100%;border:none;background-color:unset;cursor:pointer;justify-content:center;align-items:center}.tab-config__new-button.sc-snk-tab-config ez-icon.sc-snk-tab-config{--ez-icon--color:var(--snk-tab-config__new-button-icon--color)}.tab-config__backward-button.sc-snk-tab-config{left:0px;box-shadow:10px 10px 5px 5px white;background:white}.tab-config__forward-button.sc-snk-tab-config{box-shadow:10px 10px 5px 20px white;background:white}.tab-config__forward-button.sc-snk-tab-config::after,.tab-config__backward-button.sc-snk-tab-config::after{content:'';display:flex;width:10px;height:16px;background-color:var(--snk-tab-config__forward-button--background-color)}.tab-config__forward-button.sc-snk-tab-config::after{-webkit-mask-image:var(--snk-tab-config--forward-icon);mask-image:var(--snk-tab-config--forward-icon)}.tab-config__backward-button.sc-snk-tab-config::after{-webkit-mask-image:var(--snk-tab-config--backward-icon);mask-image:var(--snk-tab-config--backward-icon)}.tab-config__forward-button.sc-snk-tab-config:hover::after,.tab-config__backward-button.sc-snk-tab-config:hover::after{background-color:var(--snk-tab-config__forward-button-hover--background-color)}.tab-config__new-button.sc-snk-tab-config:hover ez-icon.sc-snk-tab-config{--ez-icon--color:var(--snk-tab-config__forward-button-hover--background-color)}.tab-config__hidden.sc-snk-tab-config{display:none}.tab-config__scroll.sc-snk-tab-config::-webkit-scrollbar{display:none}.tab-config__left-icon.sc-snk-tab-config{padding-right:var(--snk-tab-config__left-icon--padding-right);--ez-icon--color:var(--snk-tab-config__left-icon--color)}.tab-config__left-icon--eye-off.sc-snk-tab-config{--ez-icon--color:var(--snk-tab-config__left-icon--color)}.tab-config__right-icon.sc-snk-tab-config{visibility:hidden;padding-left:var(--snk-tab-config__left-icon--padding-right)}.tab-config__tab.sc-snk-tab-config:hover .tab-config__right-icon.sc-snk-tab-config{visibility:visible}.tab-config__tab--is-active.sc-snk-tab-config .tab-config__right-icon.sc-snk-tab-config{visibility:visible;--ez-icon--color:var(--snk-tab-config__tab-is-active--color)}.tab-config__tab.sc-snk-tab-config:hover .tab-config__right-icon.sc-snk-tab-config{--ez-icon--color:var(--snk-tab-config__tab-hover--color)}.tab-config__tab--is-active.sc-snk-tab-config:hover .tab-config__right-icon.sc-snk-tab-config{--ez-icon--color:var(--snk-tab-config__tab-is-active--color)}.tab-config__actions-button.sc-snk-tab-config{--ez-actions-button__btn-action--min-width:100px;visibility:hidden;opacity:0;transition:visibility 1s linear, opacity 0.3s linear}.tab-config__tab.sc-snk-tab-config:hover .tab-config__actions-button.sc-snk-tab-config{visibility:visible;opacity:1;transition:visibility 0.2s linear, opacity 0.10s linear}[data-draggable-element].sc-snk-tab-config{cursor:grab}.tab-config__tab-label-disabled.sc-snk-tab-config{color:var(--snk-tab-config__tab-label-disabled--color)}.tab-config__slot.sc-snk-tab-config{margin-left:var(--snk-tab-config__slot--margin-left)}";
|
@@ -8,7 +8,7 @@ class TaskbarProcessor {
|
|
8
8
|
var _a;
|
9
9
|
this.customButtons = new Map();
|
10
10
|
this.buttons = "";
|
11
|
-
this.disabledButtons = [];
|
11
|
+
this.disabledButtons = [].concat(disabledButtons);
|
12
12
|
(_a = this.getButtonsArray(taskbarId, taskbarManager, dataState)) === null || _a === void 0 ? void 0 : _a.forEach(btnDef => {
|
13
13
|
let buttonName;
|
14
14
|
if (typeof btnDef === "string") {
|
@@ -7,6 +7,7 @@ import { VIEW_MODE } from '../../../lib/utils/constants';
|
|
7
7
|
import { SnkGuidesViewer } from './snk-guides-viewer';
|
8
8
|
export class SnkDetailView {
|
9
9
|
constructor() {
|
10
|
+
this._disabledButtons = undefined;
|
10
11
|
this.formConfigManager = undefined;
|
11
12
|
this.dataUnitName = undefined;
|
12
13
|
this.guideItemPath = undefined;
|
@@ -42,6 +43,14 @@ export class SnkDetailView {
|
|
42
43
|
if (closeInsertion) {
|
43
44
|
this.changeViewMode(VIEW_MODE.GRID);
|
44
45
|
}
|
46
|
+
const disabledButtons = [];
|
47
|
+
if (!this.dataState.hasPrevious) {
|
48
|
+
disabledButtons.push(TaskbarElement.PREVIOUS);
|
49
|
+
}
|
50
|
+
if (!this.dataState.hasNext) {
|
51
|
+
disabledButtons.push(TaskbarElement.NEXT);
|
52
|
+
}
|
53
|
+
this._disabledButtons = disabledButtons;
|
45
54
|
}
|
46
55
|
/**
|
47
56
|
* Muda o modo de visualização do componente entre VIEW_MODE.GRID e VIEW_MODE.FORM
|
@@ -177,7 +186,7 @@ export class SnkDetailView {
|
|
177
186
|
render() {
|
178
187
|
this.updateLabel();
|
179
188
|
//const cardConfig: IFormCardConfig = this._cardsState?.get(this.selectedForm);
|
180
|
-
return (h(Host, null, h("snk-data-unit", { dataUnitName: `${this.dataUnitName}`, onDataUnitReady: evt => this.dataUnitReadyHandler(evt), entityName: this.entityName, onDataStateChange: evt => this.dataState = evt.detail }, 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-flex 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 ez-size-height--full", ref: (ref) => this._snkGrid = ref, configName: this._configName, onGridDoubleClick: () => this.emitSwitchEvent(VIEW_MODE.FORM), onActionClick: evt => this.executeActionHandler(evt), presentationMode: PresentationMode.SECONDARY }))), 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(), label: this.label, levelPath: this._levelPath }, h("snk-taskbar", { key: "guideViewerTaskbar", class: "form-taskbar", "data-element-id": "guideViewer", configName: this._configName, buttons: "INSERT,PREVIOUS,NEXT,DIVIDER,CLONE,REMOVE,MORE_OPTIONS,DIVIDER,GRID_MODE,CONFIGURATOR", primaryButton: "INSERT", presentationMode: PresentationMode.SECONDARY, onActionClick: evt => this.executeActionHandler(evt), dataUnit: this.dataUnit })))))));
|
189
|
+
return (h(Host, null, h("snk-data-unit", { dataUnitName: `${this.dataUnitName}`, onDataUnitReady: evt => this.dataUnitReadyHandler(evt), entityName: this.entityName, onDataStateChange: evt => this.dataState = evt.detail }, 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-flex 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 ez-size-height--full", ref: (ref) => this._snkGrid = ref, configName: this._configName, onGridDoubleClick: () => this.emitSwitchEvent(VIEW_MODE.FORM), onActionClick: evt => this.executeActionHandler(evt), presentationMode: PresentationMode.SECONDARY }))), 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(), label: this.label, levelPath: this._levelPath }, h("snk-taskbar", { key: "guideViewerTaskbar", class: "form-taskbar", "data-element-id": "guideViewer", configName: this._configName, disabledButtons: this._disabledButtons, buttons: "INSERT,PREVIOUS,NEXT,DIVIDER,CLONE,REMOVE,MORE_OPTIONS,DIVIDER,GRID_MODE,CONFIGURATOR", primaryButton: "INSERT", presentationMode: PresentationMode.SECONDARY, onActionClick: evt => this.executeActionHandler(evt), dataUnit: this.dataUnit })))))));
|
181
190
|
}
|
182
191
|
static get is() { return "snk-detail-view"; }
|
183
192
|
static get encapsulation() { return "scoped"; }
|
@@ -346,6 +355,11 @@ export class SnkDetailView {
|
|
346
355
|
}
|
347
356
|
};
|
348
357
|
}
|
358
|
+
static get states() {
|
359
|
+
return {
|
360
|
+
"_disabledButtons": {}
|
361
|
+
};
|
362
|
+
}
|
349
363
|
static get events() {
|
350
364
|
return [{
|
351
365
|
"method": "snkDetailGuidesChange",
|
@@ -142,7 +142,7 @@ export class SnkGuidesViewer {
|
|
142
142
|
}
|
143
143
|
}
|
144
144
|
loadTaskbarProcessor() {
|
145
|
-
var _a;
|
145
|
+
var _a, _b;
|
146
146
|
const taskbarId = ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "snkGuideViewer.finish_edition" : "snkGuideViewer.regular";
|
147
147
|
const disabledButtons = [];
|
148
148
|
if (!this.dataState || !this.dataState.hasPrevious) {
|
@@ -151,6 +151,14 @@ export class SnkGuidesViewer {
|
|
151
151
|
if (!this.dataState || !this.dataState.hasNext) {
|
152
152
|
disabledButtons.push("NEXT");
|
153
153
|
}
|
154
|
+
if ((_b = this.dataState) === null || _b === void 0 ? void 0 : _b.selectionInfo) {
|
155
|
+
if (this.dataState.selectionInfo.length > 1) {
|
156
|
+
disabledButtons.push("CLONE");
|
157
|
+
}
|
158
|
+
if (this.dataState.selectionInfo.isAllRecords()) {
|
159
|
+
disabledButtons.push("REMOVE");
|
160
|
+
}
|
161
|
+
}
|
154
162
|
const btnsRegularMode = ["PREVIOUS", "NEXT", "DIVIDER", "CLONE", "REMOVE", "MORE_OPTIONS", "DIVIDER", "GRID_MODE", "CONFIGURATOR"];
|
155
163
|
if (this.presentationMode == PresentationMode.SECONDARY) {
|
156
164
|
btnsRegularMode.unshift("INSERT");
|
@@ -301,7 +309,7 @@ export class SnkGuidesViewer {
|
|
301
309
|
}
|
302
310
|
this.loadTaskbarProcessor();
|
303
311
|
const showGuides = this._guides && (this._guides.length > 1);
|
304
|
-
return (h("section", { class: "snk-guides-viewer" }, h("div", { class: "ez-row snk-guides-viewer__header" }, h("div", { class: "ez-col ez-col--sd-6 ez-col--tb-6 ez-flex--align-items-center ez-flex-item--align-center ez-padding-left--large", key: "header" }, h("ez-button", { onClick: () => this.exitViewer(), title: "
|
312
|
+
return (h("section", { class: "snk-guides-viewer" }, h("div", { class: "ez-row snk-guides-viewer__header" }, h("div", { class: "ez-col ez-col--sd-6 ez-col--tb-6 ez-flex--align-items-center ez-flex-item--align-center ez-padding-left--large", key: "header" }, h("ez-button", { onClick: () => this.exitViewer(), title: this.getMessage("snkCrud.goBackTitle"), mode: "icon", iconName: "arrow_back", class: "ez-padding-right--medium", size: "small" }), h("div", { class: "ez-flex ez-flex--column ez-flex-item--auto" }, h("h1", { class: "ez-title ez-title--primary ez-title--xlarge" }, this.getMessage("snkCrud.title")), ((_a = this._breadcrumbItems) === null || _a === void 0 ? void 0 : _a.length) > 1 &&
|
305
313
|
h("div", { class: "ez-margin-top--extra-small" }, h("ez-breadcrumb", Object.assign({ items: this._breadcrumbItems, onSelectedItem: (evt) => this.onBreadcrumbClickHandler(evt === null || evt === void 0 ? void 0 : evt.detail) }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo("breadcrumb")}` }))))), this.presentationMode != PresentationMode.SECONDARY && this.buildTaskBar()), h("div", { class: showGuides ? "snk-guides-viewer__container" : undefined }, showGuides && h("ez-guide-navigator", { ref: (ref) => this._guideNavigator = ref, class: "snk-guides-viewer__guide-navigator", items: this._guides, selectedId: this.selectedGuide ? this.selectedGuide.id : undefined, onEzChange: evt => this.updateSelectedGuideHandler(evt.detail) }), h("div", { class: "snk-guides-viewer__detail-container" }, SnkGuidesViewer.buildFixedForms(this.masterFormConfig, this._masterFormMetadata, (_b = this.selectedGuide) === null || _b === void 0 ? void 0 : _b.id, this.dataUnit, this.recordsValidator), this.getContent())), h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this.getConfigViewMode(), onConfigSelected: (evt) => this.changeConfigViewMode(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail) })));
|
306
314
|
}
|
307
315
|
static get is() { return "snk-guides-viewer"; }
|
@@ -2,7 +2,6 @@ import { Host, h } from '@stencil/core';
|
|
2
2
|
import { Action, ApplicationContext, ObjectUtils, DataType, JSUtils } from '@sankhyalabs/core';
|
3
3
|
import { ApplicationUtils, DialogType } from '@sankhyalabs/ezui/dist/collection/utils';
|
4
4
|
import { OperationMap } from '../../lib/message/SnkMessageBuilder';
|
5
|
-
import { ALL_RECORD } from '../../lib/utils/constants';
|
6
5
|
export class SnkDataUnit {
|
7
6
|
constructor() {
|
8
7
|
this._onDataUnitResolve = [];
|
@@ -23,21 +22,27 @@ export class SnkDataUnit {
|
|
23
22
|
this.cancelEdition.emit();
|
24
23
|
}
|
25
24
|
if (action.type === Action.RECORDS_REMOVED) {
|
26
|
-
let removeFinishMsg;
|
27
25
|
const cachedRecords = action.payload.cachedRecords;
|
26
|
+
let removeFinishMsg;
|
28
27
|
if ((cachedRecords === null || cachedRecords === void 0 ? void 0 : cachedRecords.length) > 1) {
|
29
28
|
removeFinishMsg = this.getMessage("snkDataUnit.removeAllInfo", { size: cachedRecords.length });
|
30
29
|
}
|
31
|
-
else if (cachedRecords === null || cachedRecords === void 0 ? void 0 : cachedRecords.some((record) => record.__record__id__ === ALL_RECORD)) {
|
32
|
-
const size = (_b = (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getPaginationInfo()) === null || _b === void 0 ? void 0 : _b.total;
|
33
|
-
removeFinishMsg = this.getMessage("snkDataUnit.removeAllInfo", { size });
|
34
|
-
}
|
35
30
|
else {
|
36
|
-
removeFinishMsg = this.getMessage("snkDataUnit.removeInfo", cachedRecords
|
31
|
+
removeFinishMsg = this.getMessage("snkDataUnit.removeInfo", action.payload.cachedRecords[0]);
|
37
32
|
}
|
38
33
|
if (removeFinishMsg != undefined) {
|
39
34
|
this.showSuccessMessage(removeFinishMsg);
|
40
35
|
}
|
36
|
+
const recordsCount = (_b = (_a = this.dataUnit.records) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
|
37
|
+
const paginationInfo = this.dataUnit.getPaginationInfo();
|
38
|
+
if (paginationInfo) {
|
39
|
+
if (recordsCount > 0 || paginationInfo.hasMore) {
|
40
|
+
this.dataUnit.gotoPage(paginationInfo.currentPage);
|
41
|
+
}
|
42
|
+
else {
|
43
|
+
this.dataUnit.gotoPage(0);
|
44
|
+
}
|
45
|
+
}
|
41
46
|
}
|
42
47
|
this._application.messagesBuilder.currentOperation = this.getMessageOperation();
|
43
48
|
};
|
@@ -99,8 +104,12 @@ export class SnkDataUnit {
|
|
99
104
|
*/
|
100
105
|
async getSelectedRecordsIDsInfo() {
|
101
106
|
var _a;
|
107
|
+
const selectionInfo = (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getSelectionInfo();
|
108
|
+
if (selectionInfo === null || selectionInfo === void 0 ? void 0 : selectionInfo.isAllRecords()) {
|
109
|
+
return [];
|
110
|
+
}
|
102
111
|
const selectedRecordsIDsInfo = [];
|
103
|
-
const selectedRecords =
|
112
|
+
const selectedRecords = selectionInfo === null || selectionInfo === void 0 ? void 0 : selectionInfo.records;
|
104
113
|
if ((selectedRecords === null || selectedRecords === void 0 ? void 0 : selectedRecords.length) > 0) {
|
105
114
|
selectedRecords.forEach(({ __record__id__ }) => {
|
106
115
|
if (!this.dataUnit.isNewRecord(__record__id__)) {
|
@@ -134,7 +143,7 @@ export class SnkDataUnit {
|
|
134
143
|
}
|
135
144
|
async interceptAction(action) {
|
136
145
|
return new Promise(resolve => {
|
137
|
-
var _a, _b
|
146
|
+
var _a, _b;
|
138
147
|
switch (action.type) {
|
139
148
|
case Action.RECORDS_ADDED:
|
140
149
|
if (this.isAllowed("INSERT")) {
|
@@ -212,14 +221,9 @@ export class SnkDataUnit {
|
|
212
221
|
if (this.isAllowed("REMOVE")) {
|
213
222
|
let multipleSelection = false;
|
214
223
|
let removeConfirmation = this.getMessage("snkDataUnit.removeConfirmation");
|
215
|
-
const
|
216
|
-
if ((
|
217
|
-
removeConfirmation = this.getMessage("snkDataUnit.removeAllConfirmation", { size:
|
218
|
-
multipleSelection = true;
|
219
|
-
}
|
220
|
-
else if (selectedRecords === null || selectedRecords === void 0 ? void 0 : selectedRecords.some((record) => record.__record__id__ === ALL_RECORD)) {
|
221
|
-
const size = (_d = (_c = this.dataUnit) === null || _c === void 0 ? void 0 : _c.getPaginationInfo()) === null || _d === void 0 ? void 0 : _d.total;
|
222
|
-
removeConfirmation = this.getMessage("snkDataUnit.removeAllConfirmation", { size });
|
224
|
+
const selection = (_b = this.dataUnit) === null || _b === void 0 ? void 0 : _b.getSelectionInfo();
|
225
|
+
if ((selection === null || selection === void 0 ? void 0 : selection.length) > 1) {
|
226
|
+
removeConfirmation = this.getMessage("snkDataUnit.removeAllConfirmation", { size: selection.length });
|
223
227
|
multipleSelection = true;
|
224
228
|
}
|
225
229
|
if (removeConfirmation == undefined) {
|
@@ -253,16 +257,18 @@ export class SnkDataUnit {
|
|
253
257
|
return this._permissions ? this._permissions.isSup || this._permissions[flag] : false;
|
254
258
|
}
|
255
259
|
buildDataState() {
|
256
|
-
|
260
|
+
const selectionInfo = this.dataUnit.getSelectionInfo();
|
261
|
+
return new DataStateImpl({
|
257
262
|
insertionMode: this.dataUnit.hasNewRecord(),
|
258
263
|
hasNext: this.dataUnit.hasNext(),
|
259
264
|
hasPrevious: this.dataUnit.hasPrevious(),
|
260
265
|
copyMode: this.dataUnit.hasCopiedRecord(),
|
261
266
|
isDirty: this.dataUnit.isDirty(),
|
262
267
|
hasDirtyRecords: this.dataUnit.hasDirtyRecords(),
|
263
|
-
selectedRecords:
|
268
|
+
selectedRecords: undefined,
|
269
|
+
selectionInfo,
|
264
270
|
selectedRecord: this.dataUnit.getSelectedRecord()
|
265
|
-
};
|
271
|
+
});
|
266
272
|
}
|
267
273
|
/**
|
268
274
|
* Conforme mecanismo de mensagens, é possível customizar as mensagens dos blocos de construção
|
@@ -277,10 +283,9 @@ export class SnkDataUnit {
|
|
277
283
|
return this._application.messagesBuilder.getMessage(key, params);
|
278
284
|
}
|
279
285
|
getMessageParams() {
|
280
|
-
//
|
281
|
-
//
|
282
|
-
|
283
|
-
return this.dataState.selectedRecords ? this.dataState.selectedRecords[0] : undefined;
|
286
|
+
//FIXME: Devido ao recurso de multiseleção do dataunit, precisaremos criar um mecanismo para
|
287
|
+
//oferecer todos os registros selecionados para a mensagem, pois mensagens podem ficar incorretas.
|
288
|
+
return this.dataState.selectedRecord;
|
284
289
|
}
|
285
290
|
getMessageOperation() {
|
286
291
|
if (this.dataState.copyMode) {
|
@@ -663,3 +668,23 @@ export class SnkDataUnit {
|
|
663
668
|
}];
|
664
669
|
}
|
665
670
|
}
|
671
|
+
class DataStateImpl {
|
672
|
+
constructor(datastate) {
|
673
|
+
this.copyMode = datastate.copyMode;
|
674
|
+
this.insertionMode = datastate.insertionMode;
|
675
|
+
this.isDirty = datastate.isDirty;
|
676
|
+
this.hasDirtyRecords = datastate.hasDirtyRecords;
|
677
|
+
this.hasNext = datastate.hasNext;
|
678
|
+
this.hasPrevious = datastate.hasPrevious;
|
679
|
+
this.selectionInfo = datastate.selectionInfo;
|
680
|
+
this.selectedRecord = datastate.selectedRecord;
|
681
|
+
}
|
682
|
+
get selectedRecords() {
|
683
|
+
var _a;
|
684
|
+
console.warn("SnkDataUnit: O método `selectedRecords` foi descontinuado. Use o método `selectionInfo`.");
|
685
|
+
if ((_a = this.selectionInfo) === null || _a === void 0 ? void 0 : _a.isAllRecords()) {
|
686
|
+
throw new Error("Erro interno: Impossível obter os registros selecionados. A seleção atual é virtual. Use o atributo `selectionInfo`.");
|
687
|
+
}
|
688
|
+
return this.selectionInfo.records;
|
689
|
+
}
|
690
|
+
}
|
package/dist/collection/components/snk-form/subcomponents/snk-form-config/snk-form-config.js
CHANGED
@@ -971,7 +971,7 @@ export class SnkFormConfig {
|
|
971
971
|
}
|
972
972
|
render() {
|
973
973
|
var _a, _b, _c, _d;
|
974
|
-
return (h(Host, null, h("div", { class: "ez-row ez-padding--medium" }, h("div", { class: "ez-col ez-col--sd-7 ez-col--tb-9 ez-align--middle" }, h("ez-button", { mode: "icon", iconName: "arrow_back", class: "ez-padding--small", size: "small", onClick: () => this.closeFormConfig(), id: "formConfigToBack" }), h("h1", { class: "ez-title ez-title--extra-large ez-padding--small" }, this.getMessage("snkFormConfig.title")), this._formConfigOptions &&
|
974
|
+
return (h(Host, null, h("div", { class: "ez-row ez-padding--medium" }, h("div", { class: "ez-col ez-col--sd-7 ez-col--tb-9 ez-align--middle" }, h("ez-button", { mode: "icon", title: this.getMessage("snkFormConfig.goBackTitle"), iconName: "arrow_back", class: "ez-padding--small", size: "small", onClick: () => this.closeFormConfig(), id: "formConfigToBack" }), h("h1", { class: "ez-title ez-title--extra-large ez-padding--small" }, this.getMessage("snkFormConfig.title")), this._formConfigOptions &&
|
975
975
|
h("ez-actions-button", { class: "form-config__actions-button ez-margin-left--medium", value: (_a = this._optionFormConfigSelected) === null || _a === void 0 ? void 0 : _a.origin, showLabel: true, displayIcon: "chevron-down", checkOption: true, size: "small", actions: this._formConfigOptions.map((option) => {
|
976
976
|
return { value: option.origin, label: option.name };
|
977
977
|
}), onEzAction: (evt) => this.controlSelectFormConfig(evt), id: "selectConfig" })), h("div", { class: "ez-col ez-col--sd-5 ez-col--tb-3 ez-align--middle ez-align--right" }, this._formConfigChanged === true && this._optionFormConfigChanged === false &&
|
@@ -142,7 +142,6 @@ export class SnkGrid {
|
|
142
142
|
}
|
143
143
|
async dataExporterProviderStore() {
|
144
144
|
var _a, _b;
|
145
|
-
const paginationInfo = this.getPaginationInfo();
|
146
145
|
const columnsMetadata = [];
|
147
146
|
const selectedIDs = await ((_a = this._snkDataUnit) === null || _a === void 0 ? void 0 : _a.getSelectedRecordsIDsInfo());
|
148
147
|
await ((_b = this._grid) === null || _b === void 0 ? void 0 : _b.getColumnsState().then(this.buildColumnsMetadata.bind(this, columnsMetadata)));
|
@@ -164,7 +163,7 @@ export class SnkGrid {
|
|
164
163
|
},
|
165
164
|
getSelectedNumber: () => {
|
166
165
|
var _a, _b;
|
167
|
-
return (_b = (_a = this._dataState) === null || _a === void 0 ? void 0 : _a.
|
166
|
+
return (_b = (_a = this._dataState) === null || _a === void 0 ? void 0 : _a.selectionInfo) === null || _b === void 0 ? void 0 : _b.length;
|
168
167
|
},
|
169
168
|
getTotalRecords: () => {
|
170
169
|
var _a, _b, _c;
|
@@ -175,7 +174,7 @@ export class SnkGrid {
|
|
175
174
|
return selectedIDs || [];
|
176
175
|
},
|
177
176
|
getOffset: () => {
|
178
|
-
return this.getExporterOffset(
|
177
|
+
return this.getExporterOffset(this.getPaginationInfo());
|
179
178
|
},
|
180
179
|
getLimit: () => {
|
181
180
|
var _a;
|
@@ -217,10 +216,23 @@ export class SnkGrid {
|
|
217
216
|
}
|
218
217
|
this.loadConfig();
|
219
218
|
}
|
219
|
+
getHeaderDisabledButtons() {
|
220
|
+
var _a;
|
221
|
+
const disabledButtons = [];
|
222
|
+
if ((_a = this._dataState) === null || _a === void 0 ? void 0 : _a.selectionInfo) {
|
223
|
+
if (this._dataState.selectionInfo.length > 1) {
|
224
|
+
disabledButtons.push("CLONE");
|
225
|
+
}
|
226
|
+
if (this._dataState.selectionInfo.isAllRecords()) {
|
227
|
+
disabledButtons.push("REMOVE");
|
228
|
+
}
|
229
|
+
}
|
230
|
+
return disabledButtons;
|
231
|
+
}
|
220
232
|
componentWillRender() {
|
221
233
|
const invisibleButtons = this._dataUnit && this._dataUnit.records.length > 0 ? [] : ["DATA_EXPORTER"];
|
222
|
-
const headerTaskbarId = this._dataState && this._dataState.
|
223
|
-
this._headerTaskbarProcessor.process(headerTaskbarId, this.taskbarManager, this._dataState,
|
234
|
+
const headerTaskbarId = this._dataState && this._dataState.selectionInfo.isEmpty() ? "snkGridHeaderTaskbar.unselected" : "snkGridHeaderTaskbar.selected";
|
235
|
+
this._headerTaskbarProcessor.process(headerTaskbarId, this.taskbarManager, this._dataState, this.getHeaderDisabledButtons(), invisibleButtons);
|
224
236
|
this._topTaskbarProcessor.process(this.getTopTaskBarId(this.presentationMode === PresentationMode.SECONDARY ? ".secondary" : ""), this.taskbarManager, this._dataState, undefined, invisibleButtons);
|
225
237
|
this.dataExporterProviderStore();
|
226
238
|
}
|
@@ -6,7 +6,7 @@ export default class TaskbarProcessor {
|
|
6
6
|
var _a;
|
7
7
|
this.customButtons = new Map();
|
8
8
|
this.buttons = "";
|
9
|
-
this.disabledButtons = [];
|
9
|
+
this.disabledButtons = [].concat(disabledButtons);
|
10
10
|
(_a = this.getButtonsArray(taskbarId, taskbarManager, dataState)) === null || _a === void 0 ? void 0 : _a.forEach(btnDef => {
|
11
11
|
let buttonName;
|
12
12
|
if (typeof btnDef === "string") {
|
@@ -1,6 +1,5 @@
|
|
1
1
|
const REPORT_LAUNCHER_RESOURCE_ID = "br.com.sankhya.controls.ReportLauncher";
|
2
2
|
const KEY_PORT_EXPORT = "global.porta.app.impressao";
|
3
|
-
const ALL_RECORD = "ALL_RECORD";
|
4
3
|
var VIEW_MODE;
|
5
4
|
(function (VIEW_MODE) {
|
6
5
|
VIEW_MODE[VIEW_MODE["GRID"] = 0] = "GRID";
|
@@ -99,4 +98,4 @@ var SIMPLE_CRUD_MODE;
|
|
99
98
|
SIMPLE_CRUD_MODE[SIMPLE_CRUD_MODE["IN_MEMORY"] = 1] = "IN_MEMORY";
|
100
99
|
})(SIMPLE_CRUD_MODE || (SIMPLE_CRUD_MODE = {}));
|
101
100
|
|
102
|
-
export {
|
101
|
+
export { ACTION_CONFIG as A, CONFIG_EVENTS as C, DEFAULT_TYPE as D, KEY_PORT_EXPORT as K, ORDER_VALUES as O, REPORT_LAUNCHER_RESOURCE_ID as R, SIMPLE_CRUD_MODE as S, TAGS_BY_TYPE as T, VIEW_MODE as V, WEB_CONNECTION as W, VARS_BY_TYPE as a, TAB_NAMES as b, KEY_EVENTS as c, TYPE_ACTIONS as d };
|
@@ -2,7 +2,6 @@ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/
|
|
2
2
|
import { Action, ObjectUtils, JSUtils, ApplicationContext, DataType } from '@sankhyalabs/core';
|
3
3
|
import { ApplicationUtils, DialogType } from '@sankhyalabs/ezui/dist/collection/utils';
|
4
4
|
import { O as OperationMap } from './SnkMessageBuilder.js';
|
5
|
-
import { A as ALL_RECORD } from './constants.js';
|
6
5
|
|
7
6
|
const snkDataUnitCss = ".sc-snk-data-unit-h{display:flex;flex-direction:column;height:100%;width:100%}";
|
8
7
|
|
@@ -32,21 +31,27 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
32
31
|
this.cancelEdition.emit();
|
33
32
|
}
|
34
33
|
if (action.type === Action.RECORDS_REMOVED) {
|
35
|
-
let removeFinishMsg;
|
36
34
|
const cachedRecords = action.payload.cachedRecords;
|
35
|
+
let removeFinishMsg;
|
37
36
|
if ((cachedRecords === null || cachedRecords === void 0 ? void 0 : cachedRecords.length) > 1) {
|
38
37
|
removeFinishMsg = this.getMessage("snkDataUnit.removeAllInfo", { size: cachedRecords.length });
|
39
38
|
}
|
40
|
-
else if (cachedRecords === null || cachedRecords === void 0 ? void 0 : cachedRecords.some((record) => record.__record__id__ === ALL_RECORD)) {
|
41
|
-
const size = (_b = (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getPaginationInfo()) === null || _b === void 0 ? void 0 : _b.total;
|
42
|
-
removeFinishMsg = this.getMessage("snkDataUnit.removeAllInfo", { size });
|
43
|
-
}
|
44
39
|
else {
|
45
|
-
removeFinishMsg = this.getMessage("snkDataUnit.removeInfo", cachedRecords
|
40
|
+
removeFinishMsg = this.getMessage("snkDataUnit.removeInfo", action.payload.cachedRecords[0]);
|
46
41
|
}
|
47
42
|
if (removeFinishMsg != undefined) {
|
48
43
|
this.showSuccessMessage(removeFinishMsg);
|
49
44
|
}
|
45
|
+
const recordsCount = (_b = (_a = this.dataUnit.records) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
|
46
|
+
const paginationInfo = this.dataUnit.getPaginationInfo();
|
47
|
+
if (paginationInfo) {
|
48
|
+
if (recordsCount > 0 || paginationInfo.hasMore) {
|
49
|
+
this.dataUnit.gotoPage(paginationInfo.currentPage);
|
50
|
+
}
|
51
|
+
else {
|
52
|
+
this.dataUnit.gotoPage(0);
|
53
|
+
}
|
54
|
+
}
|
50
55
|
}
|
51
56
|
this._application.messagesBuilder.currentOperation = this.getMessageOperation();
|
52
57
|
};
|
@@ -108,8 +113,12 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
108
113
|
*/
|
109
114
|
async getSelectedRecordsIDsInfo() {
|
110
115
|
var _a;
|
116
|
+
const selectionInfo = (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getSelectionInfo();
|
117
|
+
if (selectionInfo === null || selectionInfo === void 0 ? void 0 : selectionInfo.isAllRecords()) {
|
118
|
+
return [];
|
119
|
+
}
|
111
120
|
const selectedRecordsIDsInfo = [];
|
112
|
-
const selectedRecords =
|
121
|
+
const selectedRecords = selectionInfo === null || selectionInfo === void 0 ? void 0 : selectionInfo.records;
|
113
122
|
if ((selectedRecords === null || selectedRecords === void 0 ? void 0 : selectedRecords.length) > 0) {
|
114
123
|
selectedRecords.forEach(({ __record__id__ }) => {
|
115
124
|
if (!this.dataUnit.isNewRecord(__record__id__)) {
|
@@ -143,7 +152,7 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
143
152
|
}
|
144
153
|
async interceptAction(action) {
|
145
154
|
return new Promise(resolve => {
|
146
|
-
var _a, _b
|
155
|
+
var _a, _b;
|
147
156
|
switch (action.type) {
|
148
157
|
case Action.RECORDS_ADDED:
|
149
158
|
if (this.isAllowed("INSERT")) {
|
@@ -221,14 +230,9 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
221
230
|
if (this.isAllowed("REMOVE")) {
|
222
231
|
let multipleSelection = false;
|
223
232
|
let removeConfirmation = this.getMessage("snkDataUnit.removeConfirmation");
|
224
|
-
const
|
225
|
-
if ((
|
226
|
-
removeConfirmation = this.getMessage("snkDataUnit.removeAllConfirmation", { size:
|
227
|
-
multipleSelection = true;
|
228
|
-
}
|
229
|
-
else if (selectedRecords === null || selectedRecords === void 0 ? void 0 : selectedRecords.some((record) => record.__record__id__ === ALL_RECORD)) {
|
230
|
-
const size = (_d = (_c = this.dataUnit) === null || _c === void 0 ? void 0 : _c.getPaginationInfo()) === null || _d === void 0 ? void 0 : _d.total;
|
231
|
-
removeConfirmation = this.getMessage("snkDataUnit.removeAllConfirmation", { size });
|
233
|
+
const selection = (_b = this.dataUnit) === null || _b === void 0 ? void 0 : _b.getSelectionInfo();
|
234
|
+
if ((selection === null || selection === void 0 ? void 0 : selection.length) > 1) {
|
235
|
+
removeConfirmation = this.getMessage("snkDataUnit.removeAllConfirmation", { size: selection.length });
|
232
236
|
multipleSelection = true;
|
233
237
|
}
|
234
238
|
if (removeConfirmation == undefined) {
|
@@ -262,16 +266,18 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
262
266
|
return this._permissions ? this._permissions.isSup || this._permissions[flag] : false;
|
263
267
|
}
|
264
268
|
buildDataState() {
|
265
|
-
|
269
|
+
const selectionInfo = this.dataUnit.getSelectionInfo();
|
270
|
+
return new DataStateImpl({
|
266
271
|
insertionMode: this.dataUnit.hasNewRecord(),
|
267
272
|
hasNext: this.dataUnit.hasNext(),
|
268
273
|
hasPrevious: this.dataUnit.hasPrevious(),
|
269
274
|
copyMode: this.dataUnit.hasCopiedRecord(),
|
270
275
|
isDirty: this.dataUnit.isDirty(),
|
271
276
|
hasDirtyRecords: this.dataUnit.hasDirtyRecords(),
|
272
|
-
selectedRecords:
|
277
|
+
selectedRecords: undefined,
|
278
|
+
selectionInfo,
|
273
279
|
selectedRecord: this.dataUnit.getSelectedRecord()
|
274
|
-
};
|
280
|
+
});
|
275
281
|
}
|
276
282
|
/**
|
277
283
|
* Conforme mecanismo de mensagens, é possível customizar as mensagens dos blocos de construção
|
@@ -286,10 +292,9 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
286
292
|
return this._application.messagesBuilder.getMessage(key, params);
|
287
293
|
}
|
288
294
|
getMessageParams() {
|
289
|
-
//
|
290
|
-
//
|
291
|
-
|
292
|
-
return this.dataState.selectedRecords ? this.dataState.selectedRecords[0] : undefined;
|
295
|
+
//FIXME: Devido ao recurso de multiseleção do dataunit, precisaremos criar um mecanismo para
|
296
|
+
//oferecer todos os registros selecionados para a mensagem, pois mensagens podem ficar incorretas.
|
297
|
+
return this.dataState.selectedRecord;
|
293
298
|
}
|
294
299
|
getMessageOperation() {
|
295
300
|
if (this.dataState.copyMode) {
|
@@ -396,6 +401,26 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
396
401
|
"getDataUnit": [64],
|
397
402
|
"getSelectedRecordsIDsInfo": [64]
|
398
403
|
}]);
|
404
|
+
class DataStateImpl {
|
405
|
+
constructor(datastate) {
|
406
|
+
this.copyMode = datastate.copyMode;
|
407
|
+
this.insertionMode = datastate.insertionMode;
|
408
|
+
this.isDirty = datastate.isDirty;
|
409
|
+
this.hasDirtyRecords = datastate.hasDirtyRecords;
|
410
|
+
this.hasNext = datastate.hasNext;
|
411
|
+
this.hasPrevious = datastate.hasPrevious;
|
412
|
+
this.selectionInfo = datastate.selectionInfo;
|
413
|
+
this.selectedRecord = datastate.selectedRecord;
|
414
|
+
}
|
415
|
+
get selectedRecords() {
|
416
|
+
var _a;
|
417
|
+
console.warn("SnkDataUnit: O método `selectedRecords` foi descontinuado. Use o método `selectionInfo`.");
|
418
|
+
if ((_a = this.selectionInfo) === null || _a === void 0 ? void 0 : _a.isAllRecords()) {
|
419
|
+
throw new Error("Erro interno: Impossível obter os registros selecionados. A seleção atual é virtual. Use o atributo `selectionInfo`.");
|
420
|
+
}
|
421
|
+
return this.selectionInfo.records;
|
422
|
+
}
|
423
|
+
}
|
399
424
|
function defineCustomElement() {
|
400
425
|
if (typeof customElements === "undefined") {
|
401
426
|
return;
|
@@ -168,7 +168,7 @@ const SnkGuidesViewer = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
|
|
168
168
|
}
|
169
169
|
}
|
170
170
|
loadTaskbarProcessor() {
|
171
|
-
var _a;
|
171
|
+
var _a, _b;
|
172
172
|
const taskbarId = ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "snkGuideViewer.finish_edition" : "snkGuideViewer.regular";
|
173
173
|
const disabledButtons = [];
|
174
174
|
if (!this.dataState || !this.dataState.hasPrevious) {
|
@@ -177,6 +177,14 @@ const SnkGuidesViewer = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
|
|
177
177
|
if (!this.dataState || !this.dataState.hasNext) {
|
178
178
|
disabledButtons.push("NEXT");
|
179
179
|
}
|
180
|
+
if ((_b = this.dataState) === null || _b === void 0 ? void 0 : _b.selectionInfo) {
|
181
|
+
if (this.dataState.selectionInfo.length > 1) {
|
182
|
+
disabledButtons.push("CLONE");
|
183
|
+
}
|
184
|
+
if (this.dataState.selectionInfo.isAllRecords()) {
|
185
|
+
disabledButtons.push("REMOVE");
|
186
|
+
}
|
187
|
+
}
|
180
188
|
const btnsRegularMode = ["PREVIOUS", "NEXT", "DIVIDER", "CLONE", "REMOVE", "MORE_OPTIONS", "DIVIDER", "GRID_MODE", "CONFIGURATOR"];
|
181
189
|
if (this.presentationMode == PresentationMode.SECONDARY) {
|
182
190
|
btnsRegularMode.unshift("INSERT");
|
@@ -327,7 +335,7 @@ const SnkGuidesViewer = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
|
|
327
335
|
}
|
328
336
|
this.loadTaskbarProcessor();
|
329
337
|
const showGuides = this._guides && (this._guides.length > 1);
|
330
|
-
return (h("section", { class: "snk-guides-viewer" }, h("div", { class: "ez-row snk-guides-viewer__header" }, h("div", { class: "ez-col ez-col--sd-6 ez-col--tb-6 ez-flex--align-items-center ez-flex-item--align-center ez-padding-left--large", key: "header" }, h("ez-button", { onClick: () => this.exitViewer(), title: "
|
338
|
+
return (h("section", { class: "snk-guides-viewer" }, h("div", { class: "ez-row snk-guides-viewer__header" }, h("div", { class: "ez-col ez-col--sd-6 ez-col--tb-6 ez-flex--align-items-center ez-flex-item--align-center ez-padding-left--large", key: "header" }, h("ez-button", { onClick: () => this.exitViewer(), title: this.getMessage("snkCrud.goBackTitle"), mode: "icon", iconName: "arrow_back", class: "ez-padding-right--medium", size: "small" }), h("div", { class: "ez-flex ez-flex--column ez-flex-item--auto" }, h("h1", { class: "ez-title ez-title--primary ez-title--xlarge" }, this.getMessage("snkCrud.title")), ((_a = this._breadcrumbItems) === null || _a === void 0 ? void 0 : _a.length) > 1 &&
|
331
339
|
h("div", { class: "ez-margin-top--extra-small" }, h("ez-breadcrumb", Object.assign({ items: this._breadcrumbItems, onSelectedItem: (evt) => this.onBreadcrumbClickHandler(evt === null || evt === void 0 ? void 0 : evt.detail) }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo("breadcrumb")}` }))))), this.presentationMode != PresentationMode.SECONDARY && this.buildTaskBar()), h("div", { class: showGuides ? "snk-guides-viewer__container" : undefined }, showGuides && h("ez-guide-navigator", { ref: (ref) => this._guideNavigator = ref, class: "snk-guides-viewer__guide-navigator", items: this._guides, selectedId: this.selectedGuide ? this.selectedGuide.id : undefined, onEzChange: evt => this.updateSelectedGuideHandler(evt.detail) }), h("div", { class: "snk-guides-viewer__detail-container" }, SnkGuidesViewer.buildFixedForms(this.masterFormConfig, this._masterFormMetadata, (_b = this.selectedGuide) === null || _b === void 0 ? void 0 : _b.id, this.dataUnit, this.recordsValidator), this.getContent())), h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this.getConfigViewMode(), onConfigSelected: (evt) => this.changeConfigViewMode(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail) })));
|
332
340
|
}
|
333
341
|
static get watchers() { return {
|
@@ -475,6 +483,7 @@ const SnkDetailView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
|
|
475
483
|
this.__registerHost();
|
476
484
|
this.snkDetailGuidesChange = createEvent(this, "snkDetailGuidesChange", 7);
|
477
485
|
this.snkSwitchGuide = createEvent(this, "snkSwitchGuide", 7);
|
486
|
+
this._disabledButtons = undefined;
|
478
487
|
this.formConfigManager = undefined;
|
479
488
|
this.dataUnitName = undefined;
|
480
489
|
this.guideItemPath = undefined;
|
@@ -510,6 +519,14 @@ const SnkDetailView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
|
|
510
519
|
if (closeInsertion) {
|
511
520
|
this.changeViewMode(VIEW_MODE.GRID);
|
512
521
|
}
|
522
|
+
const disabledButtons = [];
|
523
|
+
if (!this.dataState.hasPrevious) {
|
524
|
+
disabledButtons.push(TaskbarElement.PREVIOUS);
|
525
|
+
}
|
526
|
+
if (!this.dataState.hasNext) {
|
527
|
+
disabledButtons.push(TaskbarElement.NEXT);
|
528
|
+
}
|
529
|
+
this._disabledButtons = disabledButtons;
|
513
530
|
}
|
514
531
|
/**
|
515
532
|
* Muda o modo de visualização do componente entre VIEW_MODE.GRID e VIEW_MODE.FORM
|
@@ -645,7 +662,7 @@ const SnkDetailView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
|
|
645
662
|
render() {
|
646
663
|
this.updateLabel();
|
647
664
|
//const cardConfig: IFormCardConfig = this._cardsState?.get(this.selectedForm);
|
648
|
-
return (h(Host, null, h("snk-data-unit", { dataUnitName: `${this.dataUnitName}`, onDataUnitReady: evt => this.dataUnitReadyHandler(evt), entityName: this.entityName, onDataStateChange: evt => this.dataState = evt.detail }, 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-flex 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 ez-size-height--full", ref: (ref) => this._snkGrid = ref, configName: this._configName, onGridDoubleClick: () => this.emitSwitchEvent(VIEW_MODE.FORM), onActionClick: evt => this.executeActionHandler(evt), presentationMode: PresentationMode.SECONDARY }))), 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(), label: this.label, levelPath: this._levelPath }, h("snk-taskbar", { key: "guideViewerTaskbar", class: "form-taskbar", "data-element-id": "guideViewer", configName: this._configName, buttons: "INSERT,PREVIOUS,NEXT,DIVIDER,CLONE,REMOVE,MORE_OPTIONS,DIVIDER,GRID_MODE,CONFIGURATOR", primaryButton: "INSERT", presentationMode: PresentationMode.SECONDARY, onActionClick: evt => this.executeActionHandler(evt), dataUnit: this.dataUnit })))))));
|
665
|
+
return (h(Host, null, h("snk-data-unit", { dataUnitName: `${this.dataUnitName}`, onDataUnitReady: evt => this.dataUnitReadyHandler(evt), entityName: this.entityName, onDataStateChange: evt => this.dataState = evt.detail }, 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-flex 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 ez-size-height--full", ref: (ref) => this._snkGrid = ref, configName: this._configName, onGridDoubleClick: () => this.emitSwitchEvent(VIEW_MODE.FORM), onActionClick: evt => this.executeActionHandler(evt), presentationMode: PresentationMode.SECONDARY }))), 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(), label: this.label, levelPath: this._levelPath }, h("snk-taskbar", { key: "guideViewerTaskbar", class: "form-taskbar", "data-element-id": "guideViewer", configName: this._configName, disabledButtons: this._disabledButtons, buttons: "INSERT,PREVIOUS,NEXT,DIVIDER,CLONE,REMOVE,MORE_OPTIONS,DIVIDER,GRID_MODE,CONFIGURATOR", primaryButton: "INSERT", presentationMode: PresentationMode.SECONDARY, onActionClick: evt => this.executeActionHandler(evt), dataUnit: this.dataUnit })))))));
|
649
666
|
}
|
650
667
|
static get watchers() { return {
|
651
668
|
"dataState": ["observerDataState"]
|
@@ -660,6 +677,7 @@ const SnkDetailView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
|
|
660
677
|
"dataUnit": [1040],
|
661
678
|
"selectedForm": [1025, "selected-form"],
|
662
679
|
"dataState": [1040],
|
680
|
+
"_disabledButtons": [32],
|
663
681
|
"changeViewMode": [64],
|
664
682
|
"configGrid": [64],
|
665
683
|
"showUp": [64]
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
|
2
2
|
import { ApplicationContext, ElementIDUtils } from '@sankhyalabs/core';
|
3
|
-
import {
|
3
|
+
import { A as ACTION_CONFIG } from './constants.js';
|
4
4
|
|
5
5
|
const snkFieldConfigCss = ".sc-snk-field-config-h{--snk-field-config--height:42px;--snk-field-config--width:100%;--snk-field-config__icon--width:48px;--snk-field-config-slim--height:32px;--snk-field-config--border-radius:var(--border--radius-medium, 12px);--snk-field-config--font-size:var(--text--medium, 14px);--snk-field-config--font-family:var(--font-pattern, Arial);--snk-field-config--font-weight:var(--text-weight--medium, 400);--snk-field-config--color:var(--title--primary, #000);--snk-field-config--padding-left:var(--space--medium, 6px);--snk-field-config__input--background-color:var(--background--medium, #e0e0e0);--snk-field-config__input--border:var(--border--medium, 2px solid);--snk-field-config__input--border-color:var(--background--xlight, #fff);--snk-field-config__required--color:var(--color--error, #FF0000);--snk-field-config__label--gap:var(--space--extra-small, 3px);--snk-field-config__transition--visibility:var(--transition, 0.2s linear);--snk-field-config__transition--opacity:var(--transition, 0.15s linear);--snk-field-config__config-popover--z-index:var(--more-visible, 2);--snk-field-config__config-outer-arrow--background-color:var(--color--secondary-200, #D2D3DA);--snk-field-config__draggable--padding-right:var(--space--small, 6px);display:flex;flex-wrap:wrap;position:relative;width:var(--snk-field-config--width)}.field-config.sc-snk-field-config{width:100%;box-sizing:border-box;display:flex;align-items:center;padding-left:var(--snk-field-config--padding-left);font-weight:var(--snk-field-config--font-weight);height:var(--snk-field-config--height);border-radius:var(--snk-field-config--border-radius);font-family:var(--snk-field-config--font-family);font-size:var(--snk-field-config--font-size);border:var(--snk-field-config__input--border);border-color:var(--snk-field-config__input--border-color);background-color:var(--snk-field-config__input--background-color);color:var(--snk-field-config--color)}.field-config__config-popover.sc-snk-field-config{width:40px;margin-left:auto;z-index:var(--snk-field-config__config-popover--z-index)}.field-config__label.sc-snk-field-config{display:flex;flex-direction:row-reverse;line-height:calc(var(--snk-field-config--font-size) + 2px);gap:var(--snk-field-config__label--gap)}.field-config__label-text.sc-snk-field-config{overflow:hidden;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;height:auto;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;display:-webkit-box;-o-text-overflow:ellipsis;text-overflow:ellipsis;word-break:break-word}.field-config__label-required.sc-snk-field-config{color:var(--snk-field-config__required--color)}.field-config__add.sc-snk-field-config{display:flex;margin-left:auto;visibility:hidden;opacity:0;transition:visibility var(--snk-field-config__transition--visibility), opacity var(--snk-field-config__transition--opacity)}.field-config__options.sc-snk-field-config{display:flex;margin-left:auto;visibility:hidden;opacity:0;transition:visibility var(--snk-field-config__transition--visibility), opacity var(--snk-field-config__transition--opacity)}.field-config__options--is-active.sc-snk-field-config{display:flex;visibility:visible;opacity:1}.field-config__remove-icon.sc-snk-field-config{margin-right:-15px}.field-config.sc-snk-field-config:hover .field-config__options.sc-snk-field-config{display:flex;visibility:visible;opacity:1}.field-config.sc-snk-field-config:hover .field-config__add.sc-snk-field-config{visibility:visible;opacity:1}.field-config__draggable.sc-snk-field-config{padding-right:var(--snk-field-config__draggable--padding-right)}.field-config__config-outer-arrow.sc-snk-field-config{clip-path:polygon(50% 0, 90% 100%, 10% 100%);border-radius:0.25em 0 0 0;width:30px;height:15px;padding-top:3px;border-bottom:1px solid #FFFFFF;background-color:var(--snk-field-config__config-outer-arrow--background-color)}.field-config__config-inner-arrow.sc-snk-field-config{background-color:#FFFFFF;clip-path:polygon(50% 0, 90% 100%, 10% 100%);border-radius:0.25em 0 0 0;width:30px;height:15px}.ez-box__container.sc-snk-field-config ez-collapsible-box.sc-snk-field-config{--snk-collapsible-box__header--padding-left:6px}ez-icon.sc-snk-field-config{--snk-icon--color:var(--snk-field-config--color)}ez-popover.sc-snk-field-config{--snk-popover__box--background-color:transparent;--snk-popover__box--box-shadow:none}.field-config__options.sc-snk-field-config ez-button.sc-snk-field-config{--snk-button--background-color:transparent;--snk-button--focus--border:none;--snk-button--focus--box-shadow:none}@media screen and (min-width: 1200px){.field-config__label.sc-snk-field-config{flex-direction:row}}";
|
6
6
|
|