@sankhyalabs/sankhyablocks 1.3.31-beta.2 → 1.3.31-beta.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/{index-1133bc2a.js → index-ebe8245e.js} +453 -9
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/sankhyablocks.cjs.js +2 -2
- package/dist/cjs/snk-application.cjs.entry.js +109 -79
- package/dist/cjs/snk-data-unit.cjs.entry.js +174 -0
- package/dist/cjs/snk-form.cjs.entry.js +95 -0
- package/dist/cjs/snk-grid.cjs.entry.js +64 -0
- package/dist/cjs/snk-pesquisa.cjs.entry.js +1 -1
- package/dist/cjs/snk-taskbar.cjs.entry.js +159 -0
- package/dist/cjs/taskbar-elements-589a3744.js +68 -0
- package/dist/cjs/teste-pesquisa.cjs.entry.js +1 -1
- package/dist/collection/collection-manifest.json +4 -0
- package/dist/collection/components/snk-application/snk-application.js +52 -5
- package/dist/collection/components/snk-data-unit/snk-data-unit.css +6 -0
- package/dist/collection/components/snk-data-unit/snk-data-unit.js +429 -0
- package/dist/collection/components/snk-form/snk-form.css +3 -0
- package/dist/collection/components/snk-form/snk-form.js +194 -0
- package/dist/collection/components/snk-grid/snk-grid.css +5 -0
- package/dist/collection/components/snk-grid/snk-grid.js +128 -0
- package/dist/collection/components/snk-taskbar/component/snk-popup-button.js +7 -0
- package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +63 -0
- package/dist/collection/components/snk-taskbar/snk-taskbar.css +3 -0
- package/dist/collection/components/snk-taskbar/snk-taskbar.js +268 -0
- package/dist/collection/lib/http/data-fetcher/fetchers/dataunit-fetcher.js +36 -21
- package/dist/collection/lib/http/data-fetcher/fetchers/grid-config-fetcher.js +4 -3
- package/dist/components/snk-application2.js +109 -78
- package/dist/components/snk-data-unit.d.ts +11 -0
- package/dist/components/snk-data-unit.js +198 -0
- package/dist/components/snk-form.d.ts +11 -0
- package/dist/components/snk-form.js +121 -0
- package/dist/components/snk-grid.d.ts +11 -0
- package/dist/components/snk-grid.js +88 -0
- package/dist/components/snk-taskbar.d.ts +11 -0
- package/dist/components/snk-taskbar.js +6 -0
- package/dist/components/snk-taskbar2.js +239 -0
- package/dist/esm/{index-ffda6382.js → index-7565ae23.js} +453 -10
- package/dist/esm/loader.js +2 -2
- package/dist/esm/sankhyablocks.js +2 -2
- package/dist/esm/snk-application.entry.js +109 -79
- package/dist/esm/snk-data-unit.entry.js +170 -0
- package/dist/esm/snk-form.entry.js +91 -0
- package/dist/esm/snk-grid.entry.js +60 -0
- package/dist/esm/snk-pesquisa.entry.js +1 -1
- package/dist/esm/snk-taskbar.entry.js +155 -0
- package/dist/esm/taskbar-elements-b6822601.js +66 -0
- package/dist/esm/teste-pesquisa.entry.js +1 -1
- package/dist/sankhyablocks/p-306224bf.entry.js +1 -0
- package/dist/sankhyablocks/p-4ee1e12b.js +1 -0
- package/dist/sankhyablocks/{p-d62412bb.entry.js → p-6d82d7fd.entry.js} +1 -1
- package/dist/sankhyablocks/p-88278b85.entry.js +1 -0
- package/dist/sankhyablocks/p-90b832f7.js +2 -0
- package/dist/sankhyablocks/p-a4b2fa10.entry.js +69 -0
- package/dist/sankhyablocks/{p-2a7b4cb3.entry.js → p-bb31ea2a.entry.js} +1 -1
- package/dist/sankhyablocks/p-bb8d8fe7.entry.js +1 -0
- package/dist/sankhyablocks/p-e7ade160.entry.js +1 -0
- package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
- package/dist/types/components/snk-application/snk-application.d.ts +3 -1
- package/dist/types/components/snk-taskbar/component/snk-popup-button.d.ts +12 -0
- package/dist/types/components/snk-taskbar/elements/taskbar-elements.d.ts +24 -0
- package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +28 -0
- package/dist/types/components.d.ts +119 -1
- package/dist/types/lib/http/data-fetcher/fetchers/grid-config-fetcher.d.ts +1 -1
- package/package.json +5 -5
- package/react/components.d.ts +4 -0
- package/react/components.js +4 -0
- package/react/components.js.map +1 -1
- package/dist/sankhyablocks/p-e6e91d5f.entry.js +0 -69
- package/dist/sankhyablocks/p-edcb9d8e.js +0 -2
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
const index = require('./index-ebe8245e.js');
|
|
6
|
+
const core = require('@sankhyalabs/core');
|
|
7
|
+
|
|
8
|
+
const snkFormCss = ".sc-snk-form-h{display:block}";
|
|
9
|
+
|
|
10
|
+
const SnkForm = class {
|
|
11
|
+
constructor(hostRef) {
|
|
12
|
+
index.registerInstance(this, hostRef);
|
|
13
|
+
this.exit = index.createEvent(this, "exit", 7);
|
|
14
|
+
this.actionClick = index.createEvent(this, "actionClick", 7);
|
|
15
|
+
}
|
|
16
|
+
getFormConfig() {
|
|
17
|
+
return (this._dataState && this._dataState.insertionMode ? this._insertionFormConfig : this._editionFormConfig);
|
|
18
|
+
}
|
|
19
|
+
getInsertionHiddenFields(formConfig) {
|
|
20
|
+
const hiddenFields = [];
|
|
21
|
+
formConfig === null || formConfig === void 0 ? void 0 : formConfig.forEach(cfg => {
|
|
22
|
+
const def = this._dataUnit.getField(cfg.name);
|
|
23
|
+
if (def === null || def === void 0 ? void 0 : def.readOnly) {
|
|
24
|
+
hiddenFields.push(cfg.name);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
return hiddenFields;
|
|
28
|
+
}
|
|
29
|
+
exitForm() {
|
|
30
|
+
if (this._dataUnit.isDirty()) {
|
|
31
|
+
this._dataUnit.cancelEdition({ after: () => this.exit.emit() });
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
this.exit.emit();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
getDisabledButtons() {
|
|
38
|
+
const disabled = [];
|
|
39
|
+
if (!this._dataState.hasPrevious) {
|
|
40
|
+
disabled.push("PREVIOUS");
|
|
41
|
+
}
|
|
42
|
+
if (!this._dataState.hasNext) {
|
|
43
|
+
disabled.push("NEXT");
|
|
44
|
+
}
|
|
45
|
+
return disabled;
|
|
46
|
+
}
|
|
47
|
+
componentWillLoad() {
|
|
48
|
+
let parent = this._element.parentElement;
|
|
49
|
+
while (parent) {
|
|
50
|
+
if (parent.tagName.toUpperCase() === "SNK-DATA-UNIT") {
|
|
51
|
+
this._snkDataUnit = parent;
|
|
52
|
+
this._dataUnit = this._snkDataUnit.dataUnit;
|
|
53
|
+
this._dataState = this._snkDataUnit.dataState;
|
|
54
|
+
if (!this._dataUnit) {
|
|
55
|
+
this._snkDataUnit.addEventListener("dataUnitReady", (evt) => {
|
|
56
|
+
this._dataUnit = evt.detail;
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
this._snkDataUnit.addEventListener("dataStateChange", (evt) => {
|
|
60
|
+
this._dataState = evt.detail;
|
|
61
|
+
});
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
parent = parent.parentElement;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
componentWillRender() {
|
|
68
|
+
if (this._dataUnit && !this._configLoaded) {
|
|
69
|
+
const snkApplication = core.ApplicationContext.getContextValue("__SNK__APPLICATION__");
|
|
70
|
+
if (snkApplication) {
|
|
71
|
+
snkApplication.loadFormConfig(this.configName).then(cfg => {
|
|
72
|
+
this._configLoaded = true;
|
|
73
|
+
this._editionFormConfig = cfg;
|
|
74
|
+
this._insertionFormConfig = cfg.filter(fieldCfg => {
|
|
75
|
+
const def = this._dataUnit.getField(fieldCfg.name);
|
|
76
|
+
if (def === null || def === void 0 ? void 0 : def.readOnly) {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
return true;
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
render() {
|
|
86
|
+
if (!this._configLoaded || !this._dataUnit || !this._dataState) {
|
|
87
|
+
return undefined;
|
|
88
|
+
}
|
|
89
|
+
return (index.h("section", { class: "ez-padding--large" }, index.h("div", { class: "ez-row ez-padding-bottom--medium" }, index.h("div", { class: "ez-col ez-col--sd-6 ez-col--tb-6", key: "formHeader" }, index.h("ez-button", { mode: "icon", iconName: "arrow_back", class: "ez-padding-right--medium", size: "small", onClick: () => this.exitForm() }), index.h("h1", { class: "ez-title ez-title--primary ez-title--xlarge ez-align--middle" }, this.formTitle)), index.h("div", { class: "ez-col ez-col--sd-6 ez-col--tb-6 ez-align--right" }, index.h("snk-taskbar", { key: "formTaskbar", buttons: this._dataState.isDirty ? "CANCEL,SAVE" : "PREVIOUS,NEXT,DIVIDER,CLONE,REMOVE,MORE_OPTIONS,DIVIDER,GRID_MODE,INSERT", primaryButton: this._dataState.isDirty ? "SAVE" : "INSERT", disabledButtons: this.getDisabledButtons(), actionsList: this.actionsList, dataUnit: this._dataUnit }))), index.h("div", { class: "ez-padding--small" }), index.h("section", null, index.h("div", { class: "ez-row" }, index.h("div", { class: "ez-col ez-col--sd-12" }, index.h("ez-form", { key: "ezForm" + this._snkDataUnit.entityName, dataUnit: this._dataUnit, config: this.getFormConfig() }))))));
|
|
90
|
+
}
|
|
91
|
+
get _element() { return index.getElement(this); }
|
|
92
|
+
};
|
|
93
|
+
SnkForm.style = snkFormCss;
|
|
94
|
+
|
|
95
|
+
exports.snk_form = SnkForm;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
const index = require('./index-ebe8245e.js');
|
|
6
|
+
const core = require('@sankhyalabs/core');
|
|
7
|
+
const taskbarElements = require('./taskbar-elements-589a3744.js');
|
|
8
|
+
|
|
9
|
+
const snkGridCss = ".sc-snk-grid-h{display:flex;height:100%;width:100%}";
|
|
10
|
+
|
|
11
|
+
const SnkGrid = class {
|
|
12
|
+
constructor(hostRef) {
|
|
13
|
+
index.registerInstance(this, hostRef);
|
|
14
|
+
this.actionClick = index.createEvent(this, "actionClick", 7);
|
|
15
|
+
}
|
|
16
|
+
getHeaderButtons() {
|
|
17
|
+
return this._dataState && this._dataState.selectedRecords.length > 0 ? "UPDATE,CLONE,REMOVE,MORE_OPTIONS,DIVIDER,REFRESH" : "REFRESH";
|
|
18
|
+
}
|
|
19
|
+
actionClickHandler(evt) {
|
|
20
|
+
if (evt.detail === taskbarElements.TaskbarElement.CONFIG_GRID && this._grid) {
|
|
21
|
+
this._grid.openGridConfig();
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
componentWillLoad() {
|
|
25
|
+
let parent = this._element.parentElement;
|
|
26
|
+
while (parent) {
|
|
27
|
+
if (parent.tagName.toUpperCase() === "SNK-DATA-UNIT") {
|
|
28
|
+
this._snkDataUnit = parent;
|
|
29
|
+
this._dataUnit = this._snkDataUnit.dataUnit;
|
|
30
|
+
if (!this._dataUnit) {
|
|
31
|
+
this._snkDataUnit.addEventListener("dataUnitReady", (evt) => {
|
|
32
|
+
this._dataUnit = evt.detail;
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
this._snkDataUnit.addEventListener("dataStateChange", (evt) => {
|
|
36
|
+
this._dataState = evt.detail;
|
|
37
|
+
});
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
parent = parent.parentElement;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
componentWillRender() {
|
|
44
|
+
if (this._dataUnit && !this._configLoaded) {
|
|
45
|
+
const snkApplication = core.ApplicationContext.getContextValue("__SNK__APPLICATION__");
|
|
46
|
+
if (snkApplication) {
|
|
47
|
+
snkApplication.loadGridConfig(this.configName).then(cfg => {
|
|
48
|
+
this._gridConfig = cfg;
|
|
49
|
+
this._configLoaded = true;
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
render() {
|
|
55
|
+
if (!this._configLoaded || !this._dataUnit) {
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
58
|
+
return (index.h("div", { class: "ez-flex ez-flex--column ez-flex-item--auto ez-padding--large" }, index.h("div", { class: "ez-row ez-padding-bottom--medium ez-margin-bottom--medium" }, index.h("div", { class: "ez-col ez-col--sd-9 ez-col--tb-9 ez-align--bottom" }, index.h("slot", null)), index.h("div", { class: "ez-col ez-col--sd-3 ez-col--tb-3 ez-align--right" }, index.h("snk-taskbar", { onActionClick: evt => this.actionClickHandler(evt), key: "topTaskbar", dataUnit: this._dataUnit, buttons: "FORM_MODE,CONFIG_GRID,INSERT", primaryButton: "INSERT" }))), index.h("ez-grid", { ref: ref => this._grid = ref, dataUnit: this._dataUnit, key: "grid-" + this._snkDataUnit.entityName, config: this._gridConfig }, index.h("snk-taskbar", { dataUnit: this._dataUnit, buttons: this.getHeaderButtons(), slot: "leftButtons", actionsList: this.actionsList }))));
|
|
59
|
+
}
|
|
60
|
+
get _element() { return index.getElement(this); }
|
|
61
|
+
};
|
|
62
|
+
SnkGrid.style = snkGridCss;
|
|
63
|
+
|
|
64
|
+
exports.snk_grid = SnkGrid;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
const index = require('./index-
|
|
5
|
+
const index = require('./index-ebe8245e.js');
|
|
6
6
|
const core = require('@sankhyalabs/core');
|
|
7
7
|
|
|
8
8
|
const snkPesquisaCss = ".sc-snk-pesquisa-h{--snk-pesquisa--font-size:var(--text--medium, 14px);--snk-pesquisa--font-family:var(--font-pattern, Arial);--snk-pesquisa--font-weight:var(--text-weight--medium, 400);--snk-pesquisa__records--color:var(--text--primary, #626e82);--snk-pesquisa__records--padding-vertical:var(--space--medium, 12px);--snk-pesquisa__content--padding-right:var(--space--small, 6px);--snk-pesquisa__content-scrollbar--background-color:var(--text--primary, #626e82);--snk-pesquisa__content-scrollbar--border-radius:var(--border--radius-medium, 12px);--snk-pesquisa__content-scrollbar--width:var(--space--medium, 12px) display: block;max-height:100%;height:100%;display:flex;flex-direction:column;overflow-y:auto}.snk-pesquisa.sc-snk-pesquisa{display:flex;flex-direction:column;height:100%}.snk-pesquisa__input.sc-snk-pesquisa{display:flex;width:100%;box-sizing:border-box;padding-top:4px;padding-right:4px}.snk-pesquisa__input-close.sc-snk-pesquisa{cursor:pointer}.snk-pesquisa__content.sc-snk-pesquisa{display:flex;flex-direction:column;height:100%;overflow-y:auto;padding-right:var(--snk-pesquisa__content--padding-right)}.snk-pesquisa__content.sc-snk-pesquisa::-webkit-scrollbar-track{background-color:#f0f2f5;border-radius:var(--snk-pesquisa__content-scrollbar--border-radius)}.snk-pesquisa__content.sc-snk-pesquisa::-webkit-scrollbar-thumb{background-color:var(--snk-pesquisa__content-scrollbar--background-color);border-radius:var(--snk-pesquisa__content-scrollbar--border-radius)}.snk-pesquisa__content.sc-snk-pesquisa::-webkit-scrollbar{background-color:#f0f2f5;width:var(--snk-pesquisa__content-scrollbar--width);max-width:var(--snk-pesquisa__content-scrollbar--width);min-width:var(--snk-pesquisa__content-scrollbar--width)}.snk-pesquisa__records.sc-snk-pesquisa{font-family:var(--snk-pesquisa--font-family);font-weight:var(--snk-pesquisa--font-weight);font-size:var(--snk-pesquisa--font-size);color:var(--snk-pesquisa__records--color);padding-bottom:var(--snk-pesquisa__records--padding-vertical);padding-top:var(--snk-pesquisa__records--padding-vertical)}";
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
const index = require('./index-ebe8245e.js');
|
|
6
|
+
const core = require('@sankhyalabs/core');
|
|
7
|
+
const taskbarElements = require('./taskbar-elements-589a3744.js');
|
|
8
|
+
|
|
9
|
+
const SnkPopupButton = ({ className, title, source, opened, setOpened, actionClick }) => {
|
|
10
|
+
return (index.h("div", { class: "ez-flex " + className },
|
|
11
|
+
index.h("ez-button", { id: "moreOptionsButton", title: title, mode: "icon", iconName: "dots-vertical", size: "small", onClick: () => setOpened(true) }),
|
|
12
|
+
index.h("ez-popover", { opened: opened, autoClose: true, innerElement: ["moreOptionsButton", "moreOptionsDiv"], onEzVisibilityChange: (event) => setOpened(event.detail) },
|
|
13
|
+
index.h("div", { id: "moreOptionsDiv", class: "ez-padding--small" }, source.map((option, index$1) => index.h("ez-button", { className: "btn-options", size: "small", label: option.label, key: index$1, onClick: () => actionClick(option) }))))));
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const snkTaskbarCss = ".sc-snk-taskbar-h{display:flex}";
|
|
17
|
+
|
|
18
|
+
const SnkTaskbar = class {
|
|
19
|
+
constructor(hostRef) {
|
|
20
|
+
index.registerInstance(this, hostRef);
|
|
21
|
+
this.actionClick = index.createEvent(this, "actionClick", 7);
|
|
22
|
+
this._moreOptionsOpened = false;
|
|
23
|
+
}
|
|
24
|
+
observeButtons() {
|
|
25
|
+
this._definitions = undefined;
|
|
26
|
+
}
|
|
27
|
+
// Internal methods
|
|
28
|
+
elementsFromString(strButtons) {
|
|
29
|
+
const elements = [];
|
|
30
|
+
if (strButtons) {
|
|
31
|
+
strButtons.split(",").forEach(buttonName => {
|
|
32
|
+
buttonName = buttonName.trim();
|
|
33
|
+
if (this.isAllowed(buttonName)) {
|
|
34
|
+
elements.push(buttonName.trim());
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
return elements;
|
|
39
|
+
}
|
|
40
|
+
isAllowed(buttonName) {
|
|
41
|
+
if (taskbarElements.AuthorizationElements[buttonName]) {
|
|
42
|
+
return this._permissions ? this._permissions.isSup || this._permissions[buttonName] : false;
|
|
43
|
+
}
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
getTitle(element) {
|
|
47
|
+
const pt_br = {
|
|
48
|
+
[taskbarElements.TaskbarElement.UPDATE]: "Editar",
|
|
49
|
+
[taskbarElements.TaskbarElement.PREVIOUS]: "Anterior",
|
|
50
|
+
[taskbarElements.TaskbarElement.NEXT]: "Próximo",
|
|
51
|
+
[taskbarElements.TaskbarElement.REFRESH]: "Atualizar",
|
|
52
|
+
[taskbarElements.TaskbarElement.CLONE]: "Duplicar",
|
|
53
|
+
[taskbarElements.TaskbarElement.REMOVE]: "Excluir",
|
|
54
|
+
[taskbarElements.TaskbarElement.MORE_OPTIONS]: "Mais Opções",
|
|
55
|
+
[taskbarElements.TaskbarElement.INSERT]: "Cadastrar",
|
|
56
|
+
[taskbarElements.TaskbarElement.CANCEL]: "Cancelar",
|
|
57
|
+
[taskbarElements.TaskbarElement.SAVE]: "Salvar",
|
|
58
|
+
[taskbarElements.TaskbarElement.GRID_MODE]: "Modo Grade",
|
|
59
|
+
[taskbarElements.TaskbarElement.CONFIG_GRID]: "Configuração da grade",
|
|
60
|
+
[taskbarElements.TaskbarElement.FORM_MODE]: "Modo Formulário"
|
|
61
|
+
};
|
|
62
|
+
return pt_br[element] ? pt_br[element] : "";
|
|
63
|
+
}
|
|
64
|
+
elementClick(elem) {
|
|
65
|
+
if (this.dataUnit) {
|
|
66
|
+
switch (elem) {
|
|
67
|
+
case taskbarElements.TaskbarElement.PREVIOUS:
|
|
68
|
+
this.dataUnit.previousRecord();
|
|
69
|
+
break;
|
|
70
|
+
case taskbarElements.TaskbarElement.NEXT:
|
|
71
|
+
this.dataUnit.nextRecord();
|
|
72
|
+
break;
|
|
73
|
+
case taskbarElements.TaskbarElement.REFRESH:
|
|
74
|
+
this.dataUnit.loadData();
|
|
75
|
+
break;
|
|
76
|
+
case taskbarElements.TaskbarElement.CLONE:
|
|
77
|
+
this.dataUnit.copySelected();
|
|
78
|
+
break;
|
|
79
|
+
case taskbarElements.TaskbarElement.REMOVE:
|
|
80
|
+
this.dataUnit.removeSelectedRecords();
|
|
81
|
+
break;
|
|
82
|
+
case taskbarElements.TaskbarElement.INSERT:
|
|
83
|
+
this.dataUnit.addRecord();
|
|
84
|
+
break;
|
|
85
|
+
case taskbarElements.TaskbarElement.CANCEL:
|
|
86
|
+
this.dataUnit.cancelEdition();
|
|
87
|
+
break;
|
|
88
|
+
case taskbarElements.TaskbarElement.SAVE:
|
|
89
|
+
this.dataUnit.saveData();
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
this.actionClick.emit(elem);
|
|
94
|
+
}
|
|
95
|
+
actionClickHandler(act) {
|
|
96
|
+
this._moreOptionsOpened = false;
|
|
97
|
+
this.actionClick.emit(act.key);
|
|
98
|
+
}
|
|
99
|
+
isEnabled(elem) {
|
|
100
|
+
return !(this.disabledButtons && this.disabledButtons.includes(elem));
|
|
101
|
+
}
|
|
102
|
+
getElement(index$1, def) {
|
|
103
|
+
let element;
|
|
104
|
+
let className = def === this.primaryButton ? "ez-button--primary " : "";
|
|
105
|
+
if (index$1 > 1) {
|
|
106
|
+
className += "ez-padding-left--medium";
|
|
107
|
+
}
|
|
108
|
+
if (def === taskbarElements.TaskbarElement.MORE_OPTIONS) {
|
|
109
|
+
element = this.actionsList ? index.h(SnkPopupButton, { className: className, title: this.getTitle(def), source: this.actionsList, opened: this._moreOptionsOpened, setOpened: opened => this._moreOptionsOpened = opened, actionClick: act => this.actionClickHandler(act) }) : undefined;
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
element = taskbarElements.buildElem(def, className, elem => this.getTitle(elem), elem => this.elementClick(elem), elem => this.isEnabled(elem));
|
|
113
|
+
}
|
|
114
|
+
return element;
|
|
115
|
+
}
|
|
116
|
+
// Lifecycle
|
|
117
|
+
componentWillRender() {
|
|
118
|
+
if (this._permissions === undefined) {
|
|
119
|
+
const snkApplication = core.ApplicationContext.getContextValue("__SNK__APPLICATION__");
|
|
120
|
+
if (snkApplication) {
|
|
121
|
+
snkApplication.getAllAccess().then(access => this._permissions = access);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
this._permissions = {};
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
if (this._definitions == undefined) {
|
|
129
|
+
this._definitions = this.elementsFromString(this.buttons);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
render() {
|
|
134
|
+
if (this._definitions === undefined) {
|
|
135
|
+
return undefined;
|
|
136
|
+
}
|
|
137
|
+
let index$1 = 0;
|
|
138
|
+
return (index.h(index.Host, null, this._definitions.map((btn) => {
|
|
139
|
+
if (btn === taskbarElements.TaskbarElement.DIVIDER) {
|
|
140
|
+
index$1 = 0;
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
index$1++;
|
|
144
|
+
}
|
|
145
|
+
if (taskbarElements.TaskbarElement[btn]) {
|
|
146
|
+
return this.getElement(index$1, taskbarElements.TaskbarElement[btn]);
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
return index.h("slot", { name: btn });
|
|
150
|
+
}
|
|
151
|
+
})));
|
|
152
|
+
}
|
|
153
|
+
static get watchers() { return {
|
|
154
|
+
"buttons": ["observeButtons"]
|
|
155
|
+
}; }
|
|
156
|
+
};
|
|
157
|
+
SnkTaskbar.style = snkTaskbarCss;
|
|
158
|
+
|
|
159
|
+
exports.snk_taskbar = SnkTaskbar;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const index = require('./index-ebe8245e.js');
|
|
4
|
+
|
|
5
|
+
exports.TaskbarElement = void 0;
|
|
6
|
+
(function (TaskbarElement) {
|
|
7
|
+
TaskbarElement["PREVIOUS"] = "PREVIOUS";
|
|
8
|
+
TaskbarElement["NEXT"] = "NEXT";
|
|
9
|
+
TaskbarElement["REFRESH"] = "REFRESH";
|
|
10
|
+
TaskbarElement["UPDATE"] = "UPDATE";
|
|
11
|
+
TaskbarElement["CLONE"] = "CLONE";
|
|
12
|
+
TaskbarElement["REMOVE"] = "REMOVE";
|
|
13
|
+
TaskbarElement["INSERT"] = "INSERT";
|
|
14
|
+
TaskbarElement["CANCEL"] = "CANCEL";
|
|
15
|
+
TaskbarElement["SAVE"] = "SAVE";
|
|
16
|
+
TaskbarElement["GRID_MODE"] = "GRID_MODE";
|
|
17
|
+
TaskbarElement["FORM_MODE"] = "FORM_MODE";
|
|
18
|
+
TaskbarElement["CONFIG_GRID"] = "CONFIG_GRID";
|
|
19
|
+
TaskbarElement["MORE_OPTIONS"] = "MORE_OPTIONS";
|
|
20
|
+
TaskbarElement["DIVIDER"] = "DIVIDER";
|
|
21
|
+
})(exports.TaskbarElement || (exports.TaskbarElement = {}));
|
|
22
|
+
exports.AuthorizationElements = void 0;
|
|
23
|
+
(function (AuthorizationElements) {
|
|
24
|
+
AuthorizationElements["UPDATE"] = "UPDATE";
|
|
25
|
+
AuthorizationElements["CLONE"] = "CLONE";
|
|
26
|
+
AuthorizationElements["REMOVE"] = "REMOVE";
|
|
27
|
+
AuthorizationElements["INSERT"] = "INSERT";
|
|
28
|
+
AuthorizationElements["CONFIG_GRID"] = "CONFIG_GRID";
|
|
29
|
+
})(exports.AuthorizationElements || (exports.AuthorizationElements = {}));
|
|
30
|
+
const buildElem = (element, className, getTitle, action, isEnabled) => {
|
|
31
|
+
switch (element) {
|
|
32
|
+
case exports.TaskbarElement.PREVIOUS:
|
|
33
|
+
return iconButton("chevron-left", element, className, getTitle, action, isEnabled);
|
|
34
|
+
case exports.TaskbarElement.NEXT:
|
|
35
|
+
return iconButton("chevron-right", element, className, getTitle, action, isEnabled);
|
|
36
|
+
case exports.TaskbarElement.REFRESH:
|
|
37
|
+
return iconButton("sync", element, className, getTitle, action, isEnabled);
|
|
38
|
+
case exports.TaskbarElement.UPDATE:
|
|
39
|
+
return iconButton("edit", element, className, getTitle, action, isEnabled);
|
|
40
|
+
case exports.TaskbarElement.CLONE:
|
|
41
|
+
return iconButton("copy", element, className, getTitle, action, isEnabled);
|
|
42
|
+
case exports.TaskbarElement.REMOVE:
|
|
43
|
+
return iconButton("delete", element, className, getTitle, action, isEnabled);
|
|
44
|
+
case exports.TaskbarElement.INSERT:
|
|
45
|
+
return iconTextButton("plus", element, className, getTitle, action, isEnabled);
|
|
46
|
+
case exports.TaskbarElement.CANCEL:
|
|
47
|
+
return index.h("ez-button", { label: getTitle(element), size: "small", enabled: isEnabled(element), onClick: () => action(element) });
|
|
48
|
+
case exports.TaskbarElement.SAVE:
|
|
49
|
+
return iconTextButton("save", element, className, getTitle, action, isEnabled);
|
|
50
|
+
case exports.TaskbarElement.GRID_MODE:
|
|
51
|
+
return iconButton("table", element, className, getTitle, action, isEnabled);
|
|
52
|
+
case exports.TaskbarElement.FORM_MODE:
|
|
53
|
+
return iconButton("list", element, className, getTitle, action, isEnabled);
|
|
54
|
+
case exports.TaskbarElement.CONFIG_GRID:
|
|
55
|
+
return iconButton("settings-inverted", element, className, getTitle, action, isEnabled);
|
|
56
|
+
case exports.TaskbarElement.DIVIDER:
|
|
57
|
+
return index.h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-horizontal--medium" });
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
function iconButton(iconName, element, className, getTitle, action, isEnabled) {
|
|
61
|
+
return index.h("ez-button", { key: iconName, title: getTitle(element), mode: "icon", size: "small", class: className, iconName: iconName, enabled: isEnabled(element), onClick: () => action(element) });
|
|
62
|
+
}
|
|
63
|
+
function iconTextButton(iconName, element, className, getTitle, action, isEnabled) {
|
|
64
|
+
return index.h("ez-button", { key: iconName, title: getTitle(element), label: getTitle(element), size: "small", class: className, enabled: isEnabled(element), onClick: () => action(element) },
|
|
65
|
+
index.h("ez-icon", { class: "ez-padding-right--small", slot: "leftIcon", iconName: iconName }));
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
exports.buildElem = buildElem;
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"entries": [
|
|
3
3
|
"./components/snk-application/snk-application.js",
|
|
4
|
+
"./components/snk-data-unit/snk-data-unit.js",
|
|
5
|
+
"./components/snk-taskbar/snk-taskbar.js",
|
|
6
|
+
"./components/snk-form/snk-form.js",
|
|
7
|
+
"./components/snk-grid/snk-grid.js",
|
|
4
8
|
"./components/snk-pesquisa/snk-pesquisa.js",
|
|
5
9
|
"./components/teste-pesquisa/teste-pesquisa.js"
|
|
6
10
|
],
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Component, h, Method, Event } from "@stencil/core";
|
|
2
2
|
import { DataType, ErrorTracking } from "@sankhyalabs/core";
|
|
3
|
+
import { DependencyType } from "@sankhyalabs/core";
|
|
3
4
|
import DataUnitFetcher from "../../lib/http/data-fetcher/fetchers/dataunit-fetcher";
|
|
4
5
|
import { DataFetcher } from "../../lib/http/data-fetcher/DataFetcher";
|
|
5
6
|
import UrlUtils from "../../lib/utils/urlutils";
|
|
@@ -10,13 +11,13 @@ import { FormConfigFetcher } from "../../lib/http/data-fetcher/fetchers/form-con
|
|
|
10
11
|
import { ApplicationContext } from "@sankhyalabs/core";
|
|
11
12
|
import GridConfigFetcher from "../../lib/http/data-fetcher/fetchers/grid-config-fetcher";
|
|
12
13
|
import { PesquisaFetcher } from "../../lib/http/data-fetcher/fetchers/pesquisa-fetcher";
|
|
13
|
-
import { DependencyType } from "@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata";
|
|
14
14
|
import AuthFetcher, { AutorizationType } from "../../lib/http/data-fetcher/fetchers/auth-fetcher";
|
|
15
15
|
import MGEAuthorization from '../../lib/auth/mgeauthorization.module';
|
|
16
16
|
import { SnkErrorHandler } from "./errorhandler/snk-error-handler";
|
|
17
17
|
import { agGridLicense } from '../../lib/licenses/sankhyalicense.module';
|
|
18
18
|
export class SnkApplication {
|
|
19
19
|
constructor() {
|
|
20
|
+
this._duCache = new Map();
|
|
20
21
|
this._requestListener = new RequestListenerLoadingBar();
|
|
21
22
|
}
|
|
22
23
|
get parameters() {
|
|
@@ -177,6 +178,22 @@ export class SnkApplication {
|
|
|
177
178
|
dataUnit.loadMetadata().then(() => resolve(dataUnit));
|
|
178
179
|
});
|
|
179
180
|
}
|
|
181
|
+
async getOrCreateDataUnit(entityName, dataUnitName) {
|
|
182
|
+
return new Promise((resolve, reject) => {
|
|
183
|
+
const dataUnit = this._duCache.get(dataUnitName);
|
|
184
|
+
if (dataUnit) {
|
|
185
|
+
resolve(dataUnit);
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
this.createDataunit(entityName).then(dataUnit => {
|
|
189
|
+
if (dataUnitName) {
|
|
190
|
+
this._duCache.set(dataUnitName, dataUnit);
|
|
191
|
+
}
|
|
192
|
+
resolve(dataUnit);
|
|
193
|
+
}).catch(reason => reject(reason));
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
}
|
|
180
197
|
async getResourceID() {
|
|
181
198
|
return Promise.resolve(this.resourceID);
|
|
182
199
|
}
|
|
@@ -195,8 +212,8 @@ export class SnkApplication {
|
|
|
195
212
|
async loadFormConfig(name) {
|
|
196
213
|
return this.formConfigFetcher.loadFormConfig(name, this.resourceID);
|
|
197
214
|
}
|
|
198
|
-
async loadGridConfig() {
|
|
199
|
-
return this.gridConfigFetcher.getConfig(this.resourceID);
|
|
215
|
+
async loadGridConfig(name) {
|
|
216
|
+
return this.gridConfigFetcher.getConfig(name, this.resourceID);
|
|
200
217
|
}
|
|
201
218
|
async saveGridConfig(config) {
|
|
202
219
|
return this.gridConfigFetcher.saveConfig(config, this.resourceID);
|
|
@@ -311,6 +328,7 @@ export class SnkApplication {
|
|
|
311
328
|
});
|
|
312
329
|
ApplicationContext.setContextValue("__EZUI__GRID_LICENSE__", agGridLicense);
|
|
313
330
|
ErrorTracking.init();
|
|
331
|
+
ApplicationContext.setContextValue("__SNK__APPLICATION__", this);
|
|
314
332
|
}
|
|
315
333
|
connectedCallback() {
|
|
316
334
|
DataFetcher.addRequestListener(this._requestListener);
|
|
@@ -690,6 +708,32 @@ export class SnkApplication {
|
|
|
690
708
|
"tags": []
|
|
691
709
|
}
|
|
692
710
|
},
|
|
711
|
+
"getOrCreateDataUnit": {
|
|
712
|
+
"complexType": {
|
|
713
|
+
"signature": "(entityName: string, dataUnitName: string) => Promise<DataUnit>",
|
|
714
|
+
"parameters": [{
|
|
715
|
+
"tags": [],
|
|
716
|
+
"text": ""
|
|
717
|
+
}, {
|
|
718
|
+
"tags": [],
|
|
719
|
+
"text": ""
|
|
720
|
+
}],
|
|
721
|
+
"references": {
|
|
722
|
+
"Promise": {
|
|
723
|
+
"location": "global"
|
|
724
|
+
},
|
|
725
|
+
"DataUnit": {
|
|
726
|
+
"location": "import",
|
|
727
|
+
"path": "@sankhyalabs/core"
|
|
728
|
+
}
|
|
729
|
+
},
|
|
730
|
+
"return": "Promise<DataUnit>"
|
|
731
|
+
},
|
|
732
|
+
"docs": {
|
|
733
|
+
"text": "",
|
|
734
|
+
"tags": []
|
|
735
|
+
}
|
|
736
|
+
},
|
|
693
737
|
"getResourceID": {
|
|
694
738
|
"complexType": {
|
|
695
739
|
"signature": "() => Promise<string>",
|
|
@@ -859,8 +903,11 @@ export class SnkApplication {
|
|
|
859
903
|
},
|
|
860
904
|
"loadGridConfig": {
|
|
861
905
|
"complexType": {
|
|
862
|
-
"signature": "() => Promise<EzGridConfig>",
|
|
863
|
-
"parameters": [
|
|
906
|
+
"signature": "(name: string) => Promise<EzGridConfig>",
|
|
907
|
+
"parameters": [{
|
|
908
|
+
"tags": [],
|
|
909
|
+
"text": ""
|
|
910
|
+
}],
|
|
864
911
|
"references": {
|
|
865
912
|
"Promise": {
|
|
866
913
|
"location": "global"
|