@sankhyalabs/sankhyablocks 1.3.30 → 1.3.31-beta.10
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-c6671817.js} +416 -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 +280 -107
- package/dist/cjs/snk-crud.cjs.entry.js +64 -0
- package/dist/cjs/snk-data-unit.cjs.entry.js +218 -0
- package/dist/cjs/snk-form_2.cjs.entry.js +170 -0
- package/dist/cjs/snk-pesquisa.cjs.entry.js +6 -3
- package/dist/cjs/snk-taskbar.cjs.entry.js +140 -0
- package/dist/cjs/taskbar-elements-7f99f0c9.js +70 -0
- package/dist/cjs/teste-pesquisa.cjs.entry.js +1 -1
- package/dist/collection/collection-manifest.json +5 -0
- package/dist/collection/components/snk-application/errorhandler/snk-error-handler.js +2 -2
- package/dist/collection/components/snk-application/snk-application.js +237 -62
- package/dist/collection/components/snk-crud/snk-crud.css +5 -0
- package/dist/collection/components/snk-crud/snk-crud.js +149 -0
- package/dist/collection/components/snk-data-unit/snk-data-unit.css +6 -0
- package/dist/collection/components/snk-data-unit/snk-data-unit.js +492 -0
- package/dist/collection/components/snk-form/snk-form.css +34 -0
- package/dist/collection/components/snk-form/snk-form.js +230 -0
- package/dist/collection/components/snk-grid/snk-grid.css +5 -0
- package/dist/collection/components/snk-grid/snk-grid.js +148 -0
- package/dist/collection/components/snk-pesquisa/snk-pesquisa.css +56 -13
- package/dist/collection/components/snk-pesquisa/snk-pesquisa.js +5 -1
- package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +65 -0
- package/dist/collection/components/snk-taskbar/snk-taskbar.css +3 -0
- package/dist/collection/components/snk-taskbar/snk-taskbar.js +252 -0
- package/dist/collection/lib/http/data-fetcher/fetchers/dataunit-fetcher.js +52 -21
- package/dist/collection/lib/http/data-fetcher/fetchers/grid-config-fetcher.js +4 -3
- package/dist/collection/lib/http/data-fetcher/fetchers/pesquisa-fetcher.js +2 -0
- package/dist/components/snk-application2.js +280 -106
- package/dist/components/snk-crud.d.ts +11 -0
- package/dist/components/snk-crud.js +102 -0
- package/dist/components/snk-data-unit.d.ts +11 -0
- package/dist/components/snk-data-unit.js +242 -0
- package/dist/components/snk-form.d.ts +11 -0
- package/dist/components/snk-form.js +6 -0
- package/dist/components/snk-form2.js +134 -0
- package/dist/components/snk-grid.d.ts +11 -0
- package/dist/components/snk-grid.js +6 -0
- package/dist/components/snk-grid2.js +91 -0
- package/dist/components/snk-pesquisa2.js +5 -2
- package/dist/components/snk-taskbar.d.ts +11 -0
- package/dist/components/snk-taskbar.js +6 -0
- package/dist/components/snk-taskbar2.js +221 -0
- package/dist/esm/{index-ffda6382.js → index-6a83ac96.js} +416 -10
- package/dist/esm/loader.js +2 -2
- package/dist/esm/sankhyablocks.js +2 -2
- package/dist/esm/snk-application.entry.js +280 -107
- package/dist/esm/snk-crud.entry.js +60 -0
- package/dist/esm/snk-data-unit.entry.js +214 -0
- package/dist/esm/snk-form_2.entry.js +165 -0
- package/dist/esm/snk-pesquisa.entry.js +6 -3
- package/dist/esm/snk-taskbar.entry.js +136 -0
- package/dist/esm/taskbar-elements-e0b8a285.js +68 -0
- package/dist/esm/teste-pesquisa.entry.js +1 -1
- package/dist/sankhyablocks/p-18fe0469.entry.js +69 -0
- package/dist/sankhyablocks/p-4c7b32d6.entry.js +1 -0
- package/dist/sankhyablocks/p-5b5afdbe.entry.js +1 -0
- package/dist/sankhyablocks/p-7fe9e5c2.entry.js +1 -0
- package/dist/sankhyablocks/p-8650ae26.entry.js +1 -0
- package/dist/sankhyablocks/p-a5439706.js +1 -0
- package/dist/sankhyablocks/p-c3d20542.entry.js +1 -0
- package/dist/sankhyablocks/p-cd1dc099.js +2 -0
- package/dist/sankhyablocks/{p-2a7b4cb3.entry.js → p-d25637c9.entry.js} +1 -1
- package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
- package/dist/types/components/snk-application/snk-application.d.ts +103 -15
- package/dist/types/components/snk-taskbar/elements/taskbar-elements.d.ts +25 -0
- package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +45 -0
- package/dist/types/components.d.ts +381 -6
- package/dist/types/lib/http/data-fetcher/fetchers/dataunit-fetcher.d.ts +2 -0
- package/dist/types/lib/http/data-fetcher/fetchers/grid-config-fetcher.d.ts +3 -3
- package/package.json +5 -5
- package/react/components.d.ts +5 -0
- package/react/components.js +5 -0
- package/react/components.js.map +1 -1
- package/dist/sankhyablocks/p-d62412bb.entry.js +0 -1
- package/dist/sankhyablocks/p-e6e91d5f.entry.js +0 -69
- package/dist/sankhyablocks/p-edcb9d8e.js +0 -2
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../types/components";
|
|
2
|
+
|
|
3
|
+
interface SnkCrud extends Components.SnkCrud, HTMLElement {}
|
|
4
|
+
export const SnkCrud: {
|
|
5
|
+
prototype: SnkCrud;
|
|
6
|
+
new (): SnkCrud;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
|
|
2
|
+
import { d as defineCustomElement$4 } from './snk-form2.js';
|
|
3
|
+
import { d as defineCustomElement$3 } from './snk-grid2.js';
|
|
4
|
+
import { d as defineCustomElement$2 } from './snk-taskbar2.js';
|
|
5
|
+
|
|
6
|
+
const snkCrudCss = ".sc-snk-crud-h{display:flex;height:100%;width:100%}";
|
|
7
|
+
|
|
8
|
+
const GRID_MODE = 0;
|
|
9
|
+
const FORM_MODE = 1;
|
|
10
|
+
const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
11
|
+
constructor() {
|
|
12
|
+
super();
|
|
13
|
+
this.__registerHost();
|
|
14
|
+
}
|
|
15
|
+
async gridToForm(keepFormMode = false) {
|
|
16
|
+
this._backToGrid = !keepFormMode && await this._viewStack.getSelectedIndex() === GRID_MODE;
|
|
17
|
+
this._viewStack.show(FORM_MODE);
|
|
18
|
+
}
|
|
19
|
+
async executeAction(act) {
|
|
20
|
+
if (act === "GRID_MODE") {
|
|
21
|
+
this._viewStack.show(GRID_MODE);
|
|
22
|
+
}
|
|
23
|
+
else if (act === "FORM_MODE" || act === "UPDATE") {
|
|
24
|
+
this.gridToForm(act !== "UPDATE");
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
insertionModeHandler() {
|
|
28
|
+
this.gridToForm();
|
|
29
|
+
}
|
|
30
|
+
cancelHandler() {
|
|
31
|
+
if (this._backToGrid) {
|
|
32
|
+
this._viewStack.show(GRID_MODE);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
componentWillLoad() {
|
|
36
|
+
let parent = this._element.parentElement;
|
|
37
|
+
while (parent) {
|
|
38
|
+
if (parent.tagName.toUpperCase() === "SNK-DATA-UNIT") {
|
|
39
|
+
this._snkDataUnit = parent;
|
|
40
|
+
this._snkDataUnit.addEventListener("insertionMode", () => this.insertionModeHandler());
|
|
41
|
+
this._snkDataUnit.addEventListener("cancelEdition", () => this.cancelHandler());
|
|
42
|
+
this._dataUnit = this._snkDataUnit.dataUnit;
|
|
43
|
+
this._dataState = this._snkDataUnit.dataState;
|
|
44
|
+
if (!this._dataUnit) {
|
|
45
|
+
this._snkDataUnit.addEventListener("dataUnitReady", (evt) => {
|
|
46
|
+
this._dataUnit = evt.detail;
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
this._snkDataUnit.addEventListener("dataStateChange", (evt) => {
|
|
50
|
+
this._dataState = evt.detail;
|
|
51
|
+
});
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
parent = parent.parentElement;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
render() {
|
|
58
|
+
return (h("ez-view-stack", { ref: (ref) => this._viewStack = ref }, h("stack-item", null, h("snk-grid", { configName: this.configName, onGridDoubleClick: () => this.gridToForm(true), onActionClick: evt => this.executeAction(evt.detail), actionsList: this.actionsList }, h("slot", null))), h("stack-item", null, h("snk-form", { formTitle: this.formTitle, configName: this.configName, actionsList: this.actionsList, onExit: () => this._viewStack.show(GRID_MODE), recordsValidator: this.recordsValidator, onActionClick: evt => this.executeAction(evt.detail) }))));
|
|
59
|
+
}
|
|
60
|
+
get _element() { return this; }
|
|
61
|
+
static get style() { return snkCrudCss; }
|
|
62
|
+
}, [6, "snk-crud", {
|
|
63
|
+
"configName": [1, "config-name"],
|
|
64
|
+
"formTitle": [1, "form-title"],
|
|
65
|
+
"actionsList": [16],
|
|
66
|
+
"recordsValidator": [8, "records-validator"],
|
|
67
|
+
"_dataUnit": [32],
|
|
68
|
+
"_dataState": [32]
|
|
69
|
+
}]);
|
|
70
|
+
function defineCustomElement$1() {
|
|
71
|
+
if (typeof customElements === "undefined") {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const components = ["snk-crud", "snk-form", "snk-grid", "snk-taskbar"];
|
|
75
|
+
components.forEach(tagName => { switch (tagName) {
|
|
76
|
+
case "snk-crud":
|
|
77
|
+
if (!customElements.get(tagName)) {
|
|
78
|
+
customElements.define(tagName, SnkCrud$1);
|
|
79
|
+
}
|
|
80
|
+
break;
|
|
81
|
+
case "snk-form":
|
|
82
|
+
if (!customElements.get(tagName)) {
|
|
83
|
+
defineCustomElement$4();
|
|
84
|
+
}
|
|
85
|
+
break;
|
|
86
|
+
case "snk-grid":
|
|
87
|
+
if (!customElements.get(tagName)) {
|
|
88
|
+
defineCustomElement$3();
|
|
89
|
+
}
|
|
90
|
+
break;
|
|
91
|
+
case "snk-taskbar":
|
|
92
|
+
if (!customElements.get(tagName)) {
|
|
93
|
+
defineCustomElement$2();
|
|
94
|
+
}
|
|
95
|
+
break;
|
|
96
|
+
} });
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
const SnkCrud = SnkCrud$1;
|
|
100
|
+
const defineCustomElement = defineCustomElement$1;
|
|
101
|
+
|
|
102
|
+
export { SnkCrud, defineCustomElement };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../types/components";
|
|
2
|
+
|
|
3
|
+
interface SnkDataUnit extends Components.SnkDataUnit, HTMLElement {}
|
|
4
|
+
export const SnkDataUnit: {
|
|
5
|
+
prototype: SnkDataUnit;
|
|
6
|
+
new (): SnkDataUnit;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
|
|
2
|
+
import { Action, ApplicationContext } from '@sankhyalabs/core';
|
|
3
|
+
import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
|
|
4
|
+
|
|
5
|
+
const snkDataUnitCss = ".sc-snk-data-unit-h{display:flex;flex-direction:column;height:100%}";
|
|
6
|
+
|
|
7
|
+
const SnkDataUnit$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
8
|
+
constructor() {
|
|
9
|
+
super();
|
|
10
|
+
this.__registerHost();
|
|
11
|
+
this.dataStateChange = createEvent(this, "dataStateChange", 7);
|
|
12
|
+
this.dataUnitReady = createEvent(this, "dataUnitReady", 7);
|
|
13
|
+
this.insertionMode = createEvent(this, "insertionMode", 7);
|
|
14
|
+
this.cancelEdition = createEvent(this, "cancelEdition", 7);
|
|
15
|
+
this._onDataUnitResolve = [];
|
|
16
|
+
/**
|
|
17
|
+
* Determina quantas linhas são retornadas por página
|
|
18
|
+
*/
|
|
19
|
+
this.pageSize = 150;
|
|
20
|
+
/**
|
|
21
|
+
* Quando ativada essa propriedade faz com que haja uma carga imediata no DataUnit
|
|
22
|
+
*/
|
|
23
|
+
this.autoLoad = true;
|
|
24
|
+
this._dataUnitObserver = (action) => {
|
|
25
|
+
let msg;
|
|
26
|
+
if (!this.isTransitionAction(action.type)) {
|
|
27
|
+
msg = this.getActionInfo(action.type);
|
|
28
|
+
}
|
|
29
|
+
if (msg) {
|
|
30
|
+
ApplicationUtils.info(msg);
|
|
31
|
+
}
|
|
32
|
+
if (action.type === Action.RECORDS_ADDED || action.type === Action.RECORDS_COPIED) {
|
|
33
|
+
this.insertionMode.emit();
|
|
34
|
+
}
|
|
35
|
+
if (action.type === Action.EDITION_CANCELED) {
|
|
36
|
+
this.cancelEdition.emit();
|
|
37
|
+
}
|
|
38
|
+
const duState = {
|
|
39
|
+
insertionMode: false,
|
|
40
|
+
hasNext: this.dataUnit.hasNext(),
|
|
41
|
+
hasPrevious: this.dataUnit.hasPrevious(),
|
|
42
|
+
copyMode: false,
|
|
43
|
+
isDirty: this.dataUnit.isDirty(),
|
|
44
|
+
hasDirtyRecords: this.dataUnit.hasDirtyRecords(),
|
|
45
|
+
selectedRecords: this.dataUnit.getSelectedRecords()
|
|
46
|
+
};
|
|
47
|
+
this.dataUnit.records.forEach(r => {
|
|
48
|
+
if (r.__record__id__.startsWith('NEW_')) {
|
|
49
|
+
duState.insertionMode = true;
|
|
50
|
+
duState.copyMode || (duState.copyMode = r['__record__source__id__'] != undefined);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
this.dataState = duState;
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
observePageSize() {
|
|
57
|
+
if (this.dataUnit) {
|
|
58
|
+
this.dataUnit.pageSize = this.pageSize;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
observeDataUnitName(newValue, oldValue) {
|
|
62
|
+
if (oldValue != newValue) {
|
|
63
|
+
this.dataUnit = undefined;
|
|
64
|
+
this.dataUnitName = newValue;
|
|
65
|
+
this.loadDataUnit();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
observeEntityName(newValue, oldValue) {
|
|
69
|
+
if (oldValue != newValue) {
|
|
70
|
+
this.dataUnit = undefined;
|
|
71
|
+
this.entityName = newValue;
|
|
72
|
+
this.loadDataUnit();
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
observeDataState(newValue, oldValue) {
|
|
76
|
+
if (oldValue != newValue) {
|
|
77
|
+
this.dataStateChange.emit(newValue);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
observeDataUnit() {
|
|
81
|
+
this.dataUnitReady.emit(this.dataUnit);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Pode-se obter o dataUnit através desse método. Outra forma, é ouvir o evento de
|
|
85
|
+
*
|
|
86
|
+
* @returns dataUnit
|
|
87
|
+
*/
|
|
88
|
+
async getDataUnit() {
|
|
89
|
+
return new Promise((resolve) => {
|
|
90
|
+
if (this.dataUnit) {
|
|
91
|
+
resolve(this.dataUnit);
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
this._onDataUnitResolve.push(resolve);
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
async interceptAction(action) {
|
|
99
|
+
return new Promise(resolve => {
|
|
100
|
+
switch (action.type) {
|
|
101
|
+
case Action.SAVING_DATA:
|
|
102
|
+
if (this.beforeSave) {
|
|
103
|
+
const continueAction = this.beforeSave(this.dataUnit);
|
|
104
|
+
if (continueAction instanceof Promise) {
|
|
105
|
+
continueAction.then(result => resolve(result ? action : undefined));
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
resolve(continueAction ? action : undefined);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
resolve(action);
|
|
113
|
+
}
|
|
114
|
+
break;
|
|
115
|
+
case Action.DATA_SAVED:
|
|
116
|
+
if (this.afterSave) {
|
|
117
|
+
this.afterSave(this.dataUnit);
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
resolve(action);
|
|
121
|
+
}
|
|
122
|
+
break;
|
|
123
|
+
case Action.EDITION_CANCELED:
|
|
124
|
+
if (this.dataState.hasDirtyRecords) {
|
|
125
|
+
ApplicationUtils.confirm(this.i18n("components.warning"), this.i18n("components.confirmCancelEdition"))
|
|
126
|
+
.then((result) => resolve(result ? action : undefined));
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
resolve(action);
|
|
130
|
+
}
|
|
131
|
+
break;
|
|
132
|
+
case Action.REMOVING_RECORDS:
|
|
133
|
+
let msg = undefined;
|
|
134
|
+
if (this.messageBuilder) {
|
|
135
|
+
msg = this.messageBuilder(action.type, this.dataState, this.dataUnit);
|
|
136
|
+
}
|
|
137
|
+
ApplicationUtils.confirm(this.i18n("components.delete"), msg || this.i18n("components.confirmRemoveRecord"), "delete", true, { btnConfirmDanger: true })
|
|
138
|
+
.then((result) => resolve(result ? action : undefined));
|
|
139
|
+
break;
|
|
140
|
+
default:
|
|
141
|
+
resolve(action);
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
isTransitionAction(action) {
|
|
146
|
+
switch (action) {
|
|
147
|
+
case Action.LOADING_METADATA:
|
|
148
|
+
case Action.LOADING_DATA:
|
|
149
|
+
case Action.SAVING_DATA:
|
|
150
|
+
case Action.REMOVING_RECORDS:
|
|
151
|
+
case Action.CHANGING_DATA:
|
|
152
|
+
return true;
|
|
153
|
+
default:
|
|
154
|
+
return false;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
getActionInfo(action) {
|
|
158
|
+
if (this.messageBuilder) {
|
|
159
|
+
return this.messageBuilder(action, this.dataState, this.dataUnit);
|
|
160
|
+
}
|
|
161
|
+
if (action === Action.EDITION_CANCELED) {
|
|
162
|
+
return this.i18n("components.editionCanceled");
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
async loadDataUnit() {
|
|
166
|
+
if (!this.dataUnit) {
|
|
167
|
+
const app = ApplicationContext.getContextValue("__SNK__APPLICATION__");
|
|
168
|
+
if (app && this.entityName) {
|
|
169
|
+
const cacheName = this.dataUnitName ? this.dataUnitName : this.entityName;
|
|
170
|
+
this.dataUnit = await app.getDataUnit(this.entityName, cacheName);
|
|
171
|
+
this.dataUnit.pageSize = this.pageSize;
|
|
172
|
+
this.dataUnit.unsubscribe(this._dataUnitObserver);
|
|
173
|
+
this.dataUnit.addInterceptor(this);
|
|
174
|
+
this.dataUnit.subscribe(this._dataUnitObserver);
|
|
175
|
+
let resolver;
|
|
176
|
+
while (resolver = this._onDataUnitResolve.pop()) {
|
|
177
|
+
resolver(this.dataUnit);
|
|
178
|
+
}
|
|
179
|
+
if (this.autoLoad) {
|
|
180
|
+
this.dataUnit.loadData();
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
i18n(key) {
|
|
186
|
+
const pt_br = {
|
|
187
|
+
"components.warning": "Aviso",
|
|
188
|
+
"components.delete": "Excluir",
|
|
189
|
+
"components.confirmRemoveRecord": "Deseja realmente excluir o registro atual?",
|
|
190
|
+
"components.confirmCancelEdition": "As alterações realizadas serão descartadas<br/><br/><b>Você realmente gostaria de sair?</b>",
|
|
191
|
+
"components.editionCanceled": "Todas as alterações foram descartadas.",
|
|
192
|
+
};
|
|
193
|
+
return pt_br[key];
|
|
194
|
+
}
|
|
195
|
+
//---------------------------------------------
|
|
196
|
+
// Lifecycle web component
|
|
197
|
+
//---------------------------------------------
|
|
198
|
+
componentWillLoad() {
|
|
199
|
+
this.loadDataUnit();
|
|
200
|
+
}
|
|
201
|
+
render() {
|
|
202
|
+
return (h(Host, null));
|
|
203
|
+
}
|
|
204
|
+
get element() { return this; }
|
|
205
|
+
static get watchers() { return {
|
|
206
|
+
"pageSize": ["observePageSize"],
|
|
207
|
+
"dataUnitName": ["observeDataUnitName"],
|
|
208
|
+
"entityName": ["observeEntityName"],
|
|
209
|
+
"dataState": ["observeDataState"],
|
|
210
|
+
"dataUnit": ["observeDataUnit"]
|
|
211
|
+
}; }
|
|
212
|
+
static get style() { return snkDataUnitCss; }
|
|
213
|
+
}, [2, "snk-data-unit", {
|
|
214
|
+
"dataState": [1040],
|
|
215
|
+
"dataUnitName": [1, "data-unit-name"],
|
|
216
|
+
"entityName": [1, "entity-name"],
|
|
217
|
+
"pageSize": [2, "page-size"],
|
|
218
|
+
"dataUnit": [1040],
|
|
219
|
+
"messageBuilder": [16],
|
|
220
|
+
"beforeSave": [16],
|
|
221
|
+
"afterSave": [16],
|
|
222
|
+
"autoLoad": [4, "auto-load"],
|
|
223
|
+
"getDataUnit": [64]
|
|
224
|
+
}]);
|
|
225
|
+
function defineCustomElement$1() {
|
|
226
|
+
if (typeof customElements === "undefined") {
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
const components = ["snk-data-unit"];
|
|
230
|
+
components.forEach(tagName => { switch (tagName) {
|
|
231
|
+
case "snk-data-unit":
|
|
232
|
+
if (!customElements.get(tagName)) {
|
|
233
|
+
customElements.define(tagName, SnkDataUnit$1);
|
|
234
|
+
}
|
|
235
|
+
break;
|
|
236
|
+
} });
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
const SnkDataUnit = SnkDataUnit$1;
|
|
240
|
+
const defineCustomElement = defineCustomElement$1;
|
|
241
|
+
|
|
242
|
+
export { SnkDataUnit, defineCustomElement };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../types/components";
|
|
2
|
+
|
|
3
|
+
interface SnkForm extends Components.SnkForm, HTMLElement {}
|
|
4
|
+
export const SnkForm: {
|
|
5
|
+
prototype: SnkForm;
|
|
6
|
+
new (): SnkForm;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
|
|
2
|
+
import { ApplicationContext } from '@sankhyalabs/core';
|
|
3
|
+
import { d as defineCustomElement$1 } from './snk-taskbar2.js';
|
|
4
|
+
|
|
5
|
+
const snkFormCss = ".sc-snk-form-h{display:block}.snk-form.sc-snk-form{position:relative;padding:var(--space--large);padding-top:var(--space--medium)}.snk-form__header.sc-snk-form{position:relative;padding-top:var(--space--medium);padding-bottom:var(--space--medium);margin-bottom:var(--space--medium)}.snk-form__header--fixed.sc-snk-form{position:sticky;top:0;background:var(--background--body);z-index:var(--more-visible, 2);padding-left:var(--space--large);padding-right:var(--space--large);margin-left:calc(var(--space--large) * -1);margin-right:calc(var(--space--large) * -1);width:calc(100% + (var(--space--large) * 2))}";
|
|
6
|
+
|
|
7
|
+
const SnkForm = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
8
|
+
constructor() {
|
|
9
|
+
super();
|
|
10
|
+
this.__registerHost();
|
|
11
|
+
this.exit = createEvent(this, "exit", 7);
|
|
12
|
+
this.actionClick = createEvent(this, "actionClick", 7);
|
|
13
|
+
}
|
|
14
|
+
getFormConfig() {
|
|
15
|
+
return (this._dataState && this._dataState.insertionMode ? this._insertionFormConfig : this._editionFormConfig);
|
|
16
|
+
}
|
|
17
|
+
getInsertionHiddenFields(formConfig) {
|
|
18
|
+
const hiddenFields = [];
|
|
19
|
+
formConfig === null || formConfig === void 0 ? void 0 : formConfig.forEach(cfg => {
|
|
20
|
+
const def = this._dataUnit.getField(cfg.name);
|
|
21
|
+
if (def === null || def === void 0 ? void 0 : def.readOnly) {
|
|
22
|
+
hiddenFields.push(cfg.name);
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
return hiddenFields;
|
|
26
|
+
}
|
|
27
|
+
exitForm() {
|
|
28
|
+
if (this._dataUnit.isDirty()) {
|
|
29
|
+
this._dataUnit.cancelEdition({ after: () => this.exit.emit() });
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
this.exit.emit();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
getDisabledButtons() {
|
|
36
|
+
const disabled = [];
|
|
37
|
+
if (!this._dataState.hasPrevious) {
|
|
38
|
+
disabled.push("PREVIOUS");
|
|
39
|
+
}
|
|
40
|
+
if (!this._dataState.hasNext) {
|
|
41
|
+
disabled.push("NEXT");
|
|
42
|
+
}
|
|
43
|
+
return disabled;
|
|
44
|
+
}
|
|
45
|
+
loadInsertionConfig() {
|
|
46
|
+
if (this._dataUnit && this._configLoaded) {
|
|
47
|
+
this._insertionFormConfig = this._editionFormConfig.filter(fieldCfg => {
|
|
48
|
+
const def = this._dataUnit.getField(fieldCfg.name);
|
|
49
|
+
if (def === null || def === void 0 ? void 0 : def.readOnly) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
return true;
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
i18n(key) {
|
|
57
|
+
const pt_br = {
|
|
58
|
+
"components.back": "Voltar"
|
|
59
|
+
};
|
|
60
|
+
return pt_br[key];
|
|
61
|
+
}
|
|
62
|
+
componentWillLoad() {
|
|
63
|
+
const snkApplication = ApplicationContext.getContextValue("__SNK__APPLICATION__");
|
|
64
|
+
if (snkApplication) {
|
|
65
|
+
snkApplication.loadFormConfig(this.configName).then(cfg => {
|
|
66
|
+
this._configLoaded = true;
|
|
67
|
+
this._editionFormConfig = cfg;
|
|
68
|
+
this.loadInsertionConfig();
|
|
69
|
+
});
|
|
70
|
+
//Forçamos a carga dos acessos pra aproveitar a request inicial.
|
|
71
|
+
snkApplication.getAllAccess();
|
|
72
|
+
}
|
|
73
|
+
let parent = this._element.parentElement;
|
|
74
|
+
while (parent) {
|
|
75
|
+
if (parent.tagName.toUpperCase() === "SNK-DATA-UNIT") {
|
|
76
|
+
this._snkDataUnit = parent;
|
|
77
|
+
this._dataUnit = this._snkDataUnit.dataUnit;
|
|
78
|
+
this._dataState = this._snkDataUnit.dataState;
|
|
79
|
+
if (this._dataUnit) {
|
|
80
|
+
this.loadInsertionConfig();
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
this._snkDataUnit.addEventListener("dataUnitReady", (evt) => {
|
|
84
|
+
this._dataUnit = evt.detail;
|
|
85
|
+
this.loadInsertionConfig();
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
this._snkDataUnit.addEventListener("dataStateChange", (evt) => {
|
|
89
|
+
this._dataState = evt.detail;
|
|
90
|
+
});
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
parent = parent.parentElement;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
render() {
|
|
97
|
+
if (!this._configLoaded || !this._dataUnit || !this._dataState) {
|
|
98
|
+
return undefined;
|
|
99
|
+
}
|
|
100
|
+
return (h("section", { class: "snk-form" }, h("div", { class: "snk-form__header snk-form__header--fixed ez-row" }, h("div", { class: "ez-col ez-col--sd-6 ez-col--tb-6", key: "formHeader" }, h("ez-button", { title: this.i18n("components.back"), mode: "icon", iconName: "arrow_back", class: "ez-padding-right--medium", size: "small", onClick: () => this.exitForm() }), h("h1", { class: "ez-title ez-title--primary ez-title--xlarge ez-align--middle" }, this.formTitle)), h("div", { class: "ez-col ez-col--sd-6 ez-col--tb-6 ez-align--right" }, 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 }))), h("section", null, h("div", { class: "ez-row" }, h("div", { class: "ez-col ez-col--sd-12" }, h("ez-form", { key: "ezForm" + this._snkDataUnit.entityName, dataUnit: this._dataUnit, config: this.getFormConfig(), recordsValidator: this.recordsValidator }))))));
|
|
101
|
+
}
|
|
102
|
+
get _element() { return this; }
|
|
103
|
+
static get style() { return snkFormCss; }
|
|
104
|
+
}, [2, "snk-form", {
|
|
105
|
+
"formTitle": [1, "form-title"],
|
|
106
|
+
"configName": [1, "config-name"],
|
|
107
|
+
"recordsValidator": [8, "records-validator"],
|
|
108
|
+
"actionsList": [16],
|
|
109
|
+
"_dataUnit": [32],
|
|
110
|
+
"_configLoaded": [32],
|
|
111
|
+
"_dataState": [32],
|
|
112
|
+
"_editionFormConfig": [32],
|
|
113
|
+
"_insertionFormConfig": [32]
|
|
114
|
+
}]);
|
|
115
|
+
function defineCustomElement() {
|
|
116
|
+
if (typeof customElements === "undefined") {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
const components = ["snk-form", "snk-taskbar"];
|
|
120
|
+
components.forEach(tagName => { switch (tagName) {
|
|
121
|
+
case "snk-form":
|
|
122
|
+
if (!customElements.get(tagName)) {
|
|
123
|
+
customElements.define(tagName, SnkForm);
|
|
124
|
+
}
|
|
125
|
+
break;
|
|
126
|
+
case "snk-taskbar":
|
|
127
|
+
if (!customElements.get(tagName)) {
|
|
128
|
+
defineCustomElement$1();
|
|
129
|
+
}
|
|
130
|
+
break;
|
|
131
|
+
} });
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
export { SnkForm as S, defineCustomElement as d };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../types/components";
|
|
2
|
+
|
|
3
|
+
interface SnkGrid extends Components.SnkGrid, HTMLElement {}
|
|
4
|
+
export const SnkGrid: {
|
|
5
|
+
prototype: SnkGrid;
|
|
6
|
+
new (): SnkGrid;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
|
|
2
|
+
import { ApplicationContext } from '@sankhyalabs/core';
|
|
3
|
+
import { T as TaskbarElement, d as defineCustomElement$1 } from './snk-taskbar2.js';
|
|
4
|
+
|
|
5
|
+
const snkGridCss = ".sc-snk-grid-h{display:flex;height:100%;width:100%}";
|
|
6
|
+
|
|
7
|
+
const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
8
|
+
constructor() {
|
|
9
|
+
super();
|
|
10
|
+
this.__registerHost();
|
|
11
|
+
this.actionClick = createEvent(this, "actionClick", 7);
|
|
12
|
+
this.gridDoubleClick = createEvent(this, "gridDoubleClick", 7);
|
|
13
|
+
}
|
|
14
|
+
getHeaderButtons() {
|
|
15
|
+
return this._dataState && this._dataState.selectedRecords.length > 0 ? "UPDATE,CLONE,REMOVE,MORE_OPTIONS,DIVIDER,REFRESH" : "REFRESH";
|
|
16
|
+
}
|
|
17
|
+
actionClickHandler(evt) {
|
|
18
|
+
if (evt.detail === TaskbarElement.CONFIG_GRID && this._grid) {
|
|
19
|
+
this._grid.openGridConfig();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
saveConfig(config) {
|
|
23
|
+
const snkApplication = ApplicationContext.getContextValue("__SNK__APPLICATION__");
|
|
24
|
+
if (snkApplication) {
|
|
25
|
+
snkApplication.saveGridConfig(config);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
componentWillLoad() {
|
|
29
|
+
const snkApplication = ApplicationContext.getContextValue("__SNK__APPLICATION__");
|
|
30
|
+
if (snkApplication) {
|
|
31
|
+
snkApplication.loadGridConfig(this.configName).then(cfg => {
|
|
32
|
+
this._gridConfig = cfg;
|
|
33
|
+
this._configLoaded = true;
|
|
34
|
+
});
|
|
35
|
+
//Forçamos a carga dos acessos pra aproveitar a request inicial.
|
|
36
|
+
snkApplication.getAllAccess();
|
|
37
|
+
}
|
|
38
|
+
let parent = this._element.parentElement;
|
|
39
|
+
while (parent) {
|
|
40
|
+
if (parent.tagName.toUpperCase() === "SNK-DATA-UNIT") {
|
|
41
|
+
this._snkDataUnit = parent;
|
|
42
|
+
this._dataUnit = this._snkDataUnit.dataUnit;
|
|
43
|
+
if (!this._dataUnit) {
|
|
44
|
+
this._snkDataUnit.addEventListener("dataUnitReady", (evt) => {
|
|
45
|
+
this._dataUnit = evt.detail;
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
this._snkDataUnit.addEventListener("dataStateChange", (evt) => {
|
|
49
|
+
this._dataState = evt.detail;
|
|
50
|
+
});
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
parent = parent.parentElement;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
render() {
|
|
57
|
+
if (!this._configLoaded || !this._dataUnit) {
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
return (h("div", { class: "ez-flex ez-flex--column ez-flex-item--auto ez-padding--large" }, h("div", { class: "ez-row ez-padding-bottom--medium ez-margin-bottom--medium" }, h("div", { class: "ez-col ez-col--sd-9 ez-col--tb-9 ez-align--bottom" }, h("slot", null)), h("div", { class: "ez-col ez-col--sd-3 ez-col--tb-3 ez-align--right" }, h("snk-taskbar", { onActionClick: evt => this.actionClickHandler(evt), key: "topTaskbar", dataUnit: this._dataUnit, buttons: "FORM_MODE,CONFIG_GRID,INSERT", primaryButton: "INSERT" }))), h("ez-grid", { ref: ref => this._grid = ref, dataUnit: this._dataUnit, key: "grid-" + this._snkDataUnit.entityName, config: this._gridConfig, onConfigChange: evt => { this.saveConfig(evt.detail); }, onEzDoubleClick: () => this.gridDoubleClick.emit() }, h("snk-taskbar", { dataUnit: this._dataUnit, buttons: this.getHeaderButtons(), slot: "leftButtons", actionsList: this.actionsList }))));
|
|
61
|
+
}
|
|
62
|
+
get _element() { return this; }
|
|
63
|
+
static get style() { return snkGridCss; }
|
|
64
|
+
}, [6, "snk-grid", {
|
|
65
|
+
"configName": [1, "config-name"],
|
|
66
|
+
"actionsList": [16],
|
|
67
|
+
"_dataUnit": [32],
|
|
68
|
+
"_configLoaded": [32],
|
|
69
|
+
"_dataState": [32],
|
|
70
|
+
"_gridConfig": [32]
|
|
71
|
+
}]);
|
|
72
|
+
function defineCustomElement() {
|
|
73
|
+
if (typeof customElements === "undefined") {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
const components = ["snk-grid", "snk-taskbar"];
|
|
77
|
+
components.forEach(tagName => { switch (tagName) {
|
|
78
|
+
case "snk-grid":
|
|
79
|
+
if (!customElements.get(tagName)) {
|
|
80
|
+
customElements.define(tagName, SnkGrid);
|
|
81
|
+
}
|
|
82
|
+
break;
|
|
83
|
+
case "snk-taskbar":
|
|
84
|
+
if (!customElements.get(tagName)) {
|
|
85
|
+
defineCustomElement$1();
|
|
86
|
+
}
|
|
87
|
+
break;
|
|
88
|
+
} });
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export { SnkGrid as S, defineCustomElement as d };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
2
2
|
import { ObjectUtils, StringUtils } from '@sankhyalabs/core';
|
|
3
3
|
|
|
4
|
-
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(--
|
|
4
|
+
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-primary:var(--scrollbar--primary, #2B3A54);--snk-pesquisa__content-scrollbar--background-color-secondary:var(--scrollbar--secondary, #E5EAF0);--snk-pesquisa__content-scrollbar--border-radius:var(--border--radius-small, 6px);--snk-pesquisa__content-scrollbar--width:var(--space--medium, 12px);--snk-pesquisa__btn--color:var(--title--primary, #2B3A54);--snk-pesquisa__btn-disabled--color:var(--text--disable, #AFB6C0);--snk-pesquisa__btn-hover--color:var(--color--primary, #4e4e4e);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.sc-snk-pesquisa ez-icon.sc-snk-pesquisa{--ez-icon--color:inherit;font-weight:var(--text-weight--large, 600)}.snk-pesquisa__content.sc-snk-pesquisa{display:flex;flex-direction:column;height:100%;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--snk-pesquisa__content-scrollbar--background-color-primary) var(--snk-pesquisa__content-scrollbar--background-color-secondary);padding-right:var(--snk-pesquisa__content--padding-right)}.snk-pesquisa__content.sc-snk-pesquisa::-webkit-scrollbar-track{background-color:var(--snk-pesquisa__content-scrollbar--background-color-secondary);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-primary);border-radius:var(--snk-pesquisa__content-scrollbar--border-radius)}.snk-pesquisa__content.sc-snk-pesquisa::-webkit-scrollbar{background-color:var(--snk-pesquisa__content-scrollbar--background-color-secondary);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)}.snk-pesquisa__btn.sc-snk-pesquisa{outline:none;border:none;background:none;cursor:pointer;color:var(--snk-pesquisa__btn--color)}.snk-pesquisa__btn.sc-snk-pesquisa:disabled{cursor:unset;color:var(--snk-pesquisa__btn-disabled--color)}.snk-pesquisa__btn.sc-snk-pesquisa:disabled:hover{cursor:unset;color:var(--snk-pesquisa__btn-disabled--color)}.snk-pesquisa__btn.sc-snk-pesquisa:hover{color:var(--snk-pesquisa__btn-hover--color)}";
|
|
5
5
|
|
|
6
6
|
const SnkPesquisa = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
7
7
|
constructor() {
|
|
@@ -296,7 +296,10 @@ const SnkPesquisa = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
296
296
|
: 'Os resultados de sua pesquisa aparecerão aqui...';
|
|
297
297
|
}
|
|
298
298
|
render() {
|
|
299
|
-
|
|
299
|
+
var _a;
|
|
300
|
+
return (h(Host, null, h("div", { class: "snk-pesquisa" }, h("div", { class: "snk-pesquisa__input" }, h("ez-text-input", { label: "Buscar", class: "ez-margin-right--medium", canShowError: false, ref: (ref) => this._textInput = ref, onEzChange: (event) => this.onChangeValue(event), value: this.argument }, h("ez-icon", { slot: "leftIcon", iconName: "search" }), this.argument && ((_a = this._textInput) === null || _a === void 0 ? void 0 : _a.value)
|
|
301
|
+
? h("button", { slot: "rightIcon", class: "snk-pesquisa__btn", onClick: () => this.clearSearch() }, h("ez-icon", { iconName: "close" }))
|
|
302
|
+
: undefined), h("ez-button", { class: "ez-button--primary", label: "Pesquisar", onClick: () => this.onClickSearch() })), h("label", { class: "snk-pesquisa__records" }, this.getMessageView()), h("div", { class: "snk-pesquisa__content" }, this._itemList && this._itemList.map((item) => {
|
|
300
303
|
return (h("ez-card-item", { onEzClick: (event) => this.createOption(event.detail), item: item }));
|
|
301
304
|
})))));
|
|
302
305
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../types/components";
|
|
2
|
+
|
|
3
|
+
interface SnkTaskbar extends Components.SnkTaskbar, HTMLElement {}
|
|
4
|
+
export const SnkTaskbar: {
|
|
5
|
+
prototype: SnkTaskbar;
|
|
6
|
+
new (): SnkTaskbar;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|