@sankhyalabs/sankhyablocks 1.3.31-beta.2 → 1.3.31-beta.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.
Files changed (68) hide show
  1. package/dist/cjs/{index-1133bc2a.js → index-e42cb45d.js} +448 -9
  2. package/dist/cjs/loader.cjs.js +2 -2
  3. package/dist/cjs/sankhyablocks.cjs.js +2 -2
  4. package/dist/cjs/snk-application.cjs.entry.js +105 -79
  5. package/dist/cjs/snk-data-unit.cjs.entry.js +144 -0
  6. package/dist/cjs/snk-form.cjs.entry.js +95 -0
  7. package/dist/cjs/snk-grid.cjs.entry.js +64 -0
  8. package/dist/cjs/snk-pesquisa.cjs.entry.js +1 -1
  9. package/dist/cjs/snk-taskbar.cjs.entry.js +159 -0
  10. package/dist/cjs/taskbar-elements-bfa647c7.js +68 -0
  11. package/dist/cjs/teste-pesquisa.cjs.entry.js +1 -1
  12. package/dist/collection/collection-manifest.json +4 -0
  13. package/dist/collection/components/snk-application/snk-application.js +52 -5
  14. package/dist/collection/components/snk-data-unit/snk-data-unit.css +6 -0
  15. package/dist/collection/components/snk-data-unit/snk-data-unit.js +325 -0
  16. package/dist/collection/components/snk-form/snk-form.css +3 -0
  17. package/dist/collection/components/snk-form/snk-form.js +194 -0
  18. package/dist/collection/components/snk-grid/snk-grid.css +5 -0
  19. package/dist/collection/components/snk-grid/snk-grid.js +128 -0
  20. package/dist/collection/components/snk-taskbar/component/snk-popup-button.js +7 -0
  21. package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +63 -0
  22. package/dist/collection/components/snk-taskbar/snk-taskbar.css +3 -0
  23. package/dist/collection/components/snk-taskbar/snk-taskbar.js +268 -0
  24. package/dist/collection/lib/http/data-fetcher/fetchers/dataunit-fetcher.js +32 -21
  25. package/dist/collection/lib/http/data-fetcher/fetchers/grid-config-fetcher.js +4 -3
  26. package/dist/components/snk-application2.js +105 -78
  27. package/dist/components/snk-data-unit.d.ts +11 -0
  28. package/dist/components/snk-data-unit.js +165 -0
  29. package/dist/components/snk-form.d.ts +11 -0
  30. package/dist/components/snk-form.js +121 -0
  31. package/dist/components/snk-grid.d.ts +11 -0
  32. package/dist/components/snk-grid.js +88 -0
  33. package/dist/components/snk-taskbar.d.ts +11 -0
  34. package/dist/components/snk-taskbar.js +6 -0
  35. package/dist/components/snk-taskbar2.js +239 -0
  36. package/dist/esm/{index-ffda6382.js → index-02c04e0f.js} +448 -10
  37. package/dist/esm/loader.js +2 -2
  38. package/dist/esm/sankhyablocks.js +2 -2
  39. package/dist/esm/snk-application.entry.js +105 -79
  40. package/dist/esm/snk-data-unit.entry.js +140 -0
  41. package/dist/esm/snk-form.entry.js +91 -0
  42. package/dist/esm/snk-grid.entry.js +60 -0
  43. package/dist/esm/snk-pesquisa.entry.js +1 -1
  44. package/dist/esm/snk-taskbar.entry.js +155 -0
  45. package/dist/esm/taskbar-elements-fe7cbf0e.js +66 -0
  46. package/dist/esm/teste-pesquisa.entry.js +1 -1
  47. package/dist/sankhyablocks/p-09e48ff8.entry.js +1 -0
  48. package/dist/sankhyablocks/{p-2a7b4cb3.entry.js → p-376004ef.entry.js} +1 -1
  49. package/dist/sankhyablocks/p-37b06977.entry.js +1 -0
  50. package/dist/sankhyablocks/p-64e2471c.js +1 -0
  51. package/dist/sankhyablocks/p-b80352ac.entry.js +69 -0
  52. package/dist/sankhyablocks/p-c156b1da.entry.js +1 -0
  53. package/dist/sankhyablocks/p-cc9c348a.entry.js +1 -0
  54. package/dist/sankhyablocks/p-db215c74.js +2 -0
  55. package/dist/sankhyablocks/{p-d62412bb.entry.js → p-e38386b1.entry.js} +1 -1
  56. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  57. package/dist/types/components/snk-application/snk-application.d.ts +3 -1
  58. package/dist/types/components/snk-taskbar/component/snk-popup-button.d.ts +12 -0
  59. package/dist/types/components/snk-taskbar/elements/taskbar-elements.d.ts +24 -0
  60. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +28 -0
  61. package/dist/types/components.d.ts +112 -1
  62. package/dist/types/lib/http/data-fetcher/fetchers/grid-config-fetcher.d.ts +1 -1
  63. package/package.json +5 -5
  64. package/react/components.d.ts +4 -0
  65. package/react/components.js +4 -0
  66. package/react/components.js.map +1 -1
  67. package/dist/sankhyablocks/p-e6e91d5f.entry.js +0 -69
  68. 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-e42cb45d.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-e42cb45d.js');
6
+ const core = require('@sankhyalabs/core');
7
+ const taskbarElements = require('./taskbar-elements-bfa647c7.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-1133bc2a.js');
5
+ const index = require('./index-e42cb45d.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-e42cb45d.js');
6
+ const core = require('@sankhyalabs/core');
7
+ const taskbarElements = require('./taskbar-elements-bfa647c7.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-e42cb45d.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;
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-1133bc2a.js');
5
+ const index = require('./index-e42cb45d.js');
6
6
  const core = require('@sankhyalabs/core');
7
7
 
8
8
  const testePesquisaCss = ":host{display:block}";
@@ -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"
@@ -0,0 +1,6 @@
1
+ :host {
2
+ display: flex;
3
+ flex-direction: column;
4
+ height: 100%;
5
+ }
6
+