@sankhyalabs/sankhyablocks 2.4.8 → 2.4.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/{SnkMessageBuilder-61f00e7f.js → SnkMessageBuilder-370e23ae.js} +24 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/sankhyablocks.cjs.js +1 -1
- package/dist/cjs/snk-application.cjs.entry.js +1 -1
- package/dist/cjs/snk-configurator_3.cjs.entry.js +44 -6
- package/dist/cjs/snk-crud.cjs.entry.js +6 -2
- package/dist/cjs/snk-data-unit.cjs.entry.js +1 -1
- package/dist/cjs/{snk-filter-bar_7.cjs.entry.js → snk-exporter-email-sender_8.cjs.entry.js} +133 -15
- package/dist/cjs/snk-filter-detail.cjs.entry.js +8 -1
- package/dist/cjs/snk-form.cjs.entry.js +1 -1
- package/dist/cjs/{taskbar-elements-b995b84d.js → taskbar-elements-3807c809.js} +3 -0
- package/dist/cjs/{taskbar-processor-6bd0d35c.js → taskbar-processor-6f3d2a75.js} +9 -7
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/snk-crud/snk-crud.js +23 -1
- package/dist/collection/components/snk-data-exporter/data/attachment.js +1 -0
- package/dist/collection/components/snk-data-exporter/data/email.js +1 -0
- package/dist/collection/components/snk-data-exporter/data/export-config.js +1 -0
- package/dist/collection/components/snk-data-exporter/data/export-result.js +1 -0
- package/dist/collection/components/snk-data-exporter/data/report.js +1 -0
- package/dist/collection/components/snk-data-exporter/exporter-email-sender/email-info-step.js +6 -0
- package/dist/collection/components/snk-data-exporter/exporter-email-sender/options-step.js +21 -0
- package/dist/collection/components/snk-data-exporter/exporter-email-sender/snk-exporter-email-sender.js +146 -0
- package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-detail.js +8 -1
- package/dist/collection/components/snk-filter-bar/filter-list/snk-filter-list.js +8 -6
- package/dist/collection/components/snk-grid/snk-grid.js +71 -6
- package/dist/collection/components/snk-grid/subcomponents/snk-grid-config/snk-grid-config.js +25 -8
- package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +3 -0
- package/dist/collection/components/snk-taskbar/processor/taskbar-processor.js +9 -7
- package/dist/collection/components/snk-taskbar/snk-taskbar.js +2 -1
- package/dist/collection/lib/message/SnkMessageBuilder.js +3 -1
- package/dist/collection/lib/message/resources/snk-exporter.msg.js +21 -0
- package/dist/collection/lib/message/resources/snk-taskbar.msg.js +1 -0
- package/dist/components/SnkMessageBuilder.js +24 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.js +1 -0
- package/dist/components/snk-crud.js +16 -5
- package/dist/components/snk-exporter-email-sender.d.ts +11 -0
- package/dist/components/snk-exporter-email-sender.js +6 -0
- package/dist/components/snk-exporter-email-sender2.js +141 -0
- package/dist/components/snk-filter-detail2.js +8 -1
- package/dist/components/snk-filter-list2.js +8 -6
- package/dist/components/snk-grid-config2.js +6 -8
- package/dist/components/snk-grid2.js +53 -9
- package/dist/components/snk-taskbar2.js +5 -1
- package/dist/components/taskbar-processor.js +9 -7
- package/dist/esm/{SnkMessageBuilder-f5ef87df.js → SnkMessageBuilder-7d583c9a.js} +24 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/sankhyablocks.js +1 -1
- package/dist/esm/snk-application.entry.js +1 -1
- package/dist/esm/snk-configurator_3.entry.js +44 -6
- package/dist/esm/snk-crud.entry.js +6 -2
- package/dist/esm/snk-data-unit.entry.js +1 -1
- package/dist/esm/{snk-filter-bar_7.entry.js → snk-exporter-email-sender_8.entry.js} +135 -18
- package/dist/esm/snk-filter-detail.entry.js +8 -1
- package/dist/esm/snk-form.entry.js +1 -1
- package/dist/esm/{taskbar-elements-a0a8c3ac.js → taskbar-elements-b2bbe275.js} +3 -0
- package/dist/esm/{taskbar-processor-aa6772c9.js → taskbar-processor-c2a99aba.js} +9 -7
- package/dist/sankhyablocks/{p-a72a0a5d.entry.js → p-1b7f87cf.entry.js} +1 -1
- package/dist/sankhyablocks/p-2445b586.entry.js +1 -0
- package/dist/sankhyablocks/{p-cd486089.entry.js → p-2664ae24.entry.js} +1 -1
- package/dist/sankhyablocks/p-5a3e0eb6.js +1 -0
- package/dist/sankhyablocks/{p-eb94df0b.entry.js → p-70e52fee.entry.js} +1 -1
- package/dist/sankhyablocks/p-c118ef2a.entry.js +1 -0
- package/dist/sankhyablocks/p-dbaad88c.js +1 -0
- package/dist/sankhyablocks/p-df53643b.entry.js +1 -0
- package/dist/sankhyablocks/p-e7f772ed.js +1 -0
- package/dist/sankhyablocks/{p-71997e4c.entry.js → p-fb96840c.entry.js} +1 -1
- package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
- package/dist/types/components/snk-crud/snk-crud.d.ts +4 -0
- package/dist/types/components/snk-data-exporter/data/attachment.d.ts +4 -0
- package/dist/types/components/snk-data-exporter/data/email.d.ts +7 -0
- package/dist/types/components/snk-data-exporter/data/export-config.d.ts +9 -0
- package/dist/types/components/snk-data-exporter/data/export-result.d.ts +8 -0
- package/dist/types/components/snk-data-exporter/data/report.d.ts +4 -0
- package/dist/types/components/snk-data-exporter/exporter-email-sender/email-info-step.d.ts +9 -0
- package/dist/types/components/snk-data-exporter/exporter-email-sender/options-step.d.ts +9 -0
- package/dist/types/components/snk-filter-bar/filter-item/snk-filter-detail.d.ts +1 -0
- package/dist/types/components/snk-filter-bar/filter-list/snk-filter-list.d.ts +1 -0
- package/dist/types/components/snk-grid/subcomponents/snk-grid-config/snk-grid-config.d.ts +6 -3
- package/dist/types/components/snk-taskbar/elements/taskbar-elements.d.ts +2 -1
- package/dist/types/components/snk-taskbar/processor/taskbar-processor.d.ts +1 -1
- package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +1 -0
- package/dist/types/components.d.ts +43 -0
- package/dist/types/lib/message/resources/snk-exporter.msg.d.ts +2 -0
- package/package.json +1 -1
- package/react/components.d.ts +1 -0
- package/react/components.js +1 -0
- package/react/components.js.map +1 -1
- package/dist/sankhyablocks/p-03f0a380.entry.js +0 -1
- package/dist/sankhyablocks/p-03f9c407.js +0 -1
- package/dist/sankhyablocks/p-4cbc4ae3.js +0 -1
- package/dist/sankhyablocks/p-877bd6cf.js +0 -1
- package/dist/sankhyablocks/p-e6e0efe7.entry.js +0 -1
- package/dist/sankhyablocks/p-f1de5d1f.entry.js +0 -1
- package/dist/types/components/snk-grid/snk-grid.d.ts +0 -70
|
@@ -69,6 +69,7 @@ const snkTaskbarMessages = {
|
|
|
69
69
|
titleGridMode: "Modo Grade",
|
|
70
70
|
titleFormMode: "Modo Formulário",
|
|
71
71
|
titleConfigurator: "Configurações",
|
|
72
|
+
titleExportar: "Exportar",
|
|
72
73
|
forbidden: "Permissão não liberada"
|
|
73
74
|
};
|
|
74
75
|
|
|
@@ -76,6 +77,27 @@ const crudUtilsMessages = {
|
|
|
76
77
|
errorArray: "CrudUtils.find deve receber um array de fields, ou uma lista separada por virgula.",
|
|
77
78
|
};
|
|
78
79
|
|
|
80
|
+
const snkExporterMessages = {
|
|
81
|
+
emailSenderTitle: "Enviar por email",
|
|
82
|
+
emailSenderBackButton: "Voltar",
|
|
83
|
+
emailSenderNextButton: "Avançar",
|
|
84
|
+
emailSenderCancelButton: "Cancelar",
|
|
85
|
+
emailSenderSendButton: "Enviar",
|
|
86
|
+
emailSenderOptStep_subtitle: "Primeiro, escolha o formato do arquivo",
|
|
87
|
+
emailSenderOptStep_lblFormat: "Formato:",
|
|
88
|
+
emailSenderOptStep_formatPDF: "PDF (.pdf)",
|
|
89
|
+
emailSenderOptStep_formatXLSX: "Planilha (.xlsx)",
|
|
90
|
+
emailSenderOptStep_export: "Exportar:",
|
|
91
|
+
emailSenderOptStep_allData: "Toda a grade",
|
|
92
|
+
emailSenderOptStep_currentPage: "Somente a página atual",
|
|
93
|
+
emailSenderOptStep_someRecords: "{{SELECTION_COUNT}} linhas selecionadas",
|
|
94
|
+
emailSenderOptStep_oneRecord: "Somente a linha selecionada",
|
|
95
|
+
emailSenderInfoStep_subtitle: "Informações de email",
|
|
96
|
+
emailSenderInfoStep_sendTo: "Enviar para",
|
|
97
|
+
emailSenderInfoStep_subject: "Assunto",
|
|
98
|
+
emailSenderInfoStep_message: "Mensagem"
|
|
99
|
+
};
|
|
100
|
+
|
|
79
101
|
const snkFormMessages = {
|
|
80
102
|
title: {
|
|
81
103
|
clone: "Duplicar registro",
|
|
@@ -197,7 +219,8 @@ class SnkMessageBuilder {
|
|
|
197
219
|
snkTabConfig: snkTabConfigMessages,
|
|
198
220
|
crudUtils: crudUtilsMessages,
|
|
199
221
|
snkGrid: snkGridMessages,
|
|
200
|
-
snkGridConfig: snkGridConfigMessages
|
|
222
|
+
snkGridConfig: snkGridConfigMessages,
|
|
223
|
+
snkExporter: snkExporterMessages
|
|
201
224
|
};
|
|
202
225
|
this._currentOperation = OperationMap.CLEAN;
|
|
203
226
|
this.loadAppMessages().then((msgs) => {
|
|
@@ -4,6 +4,7 @@ export { SnkConfigOptions as SnkConfigOptions } from '../types/components/snk-fo
|
|
|
4
4
|
export { SnkConfigurator as SnkConfigurator } from '../types/components/snk-configurator/snk-configurator';
|
|
5
5
|
export { SnkCrud as SnkCrud } from '../types/components/snk-crud/snk-crud';
|
|
6
6
|
export { SnkDataUnit as SnkDataUnit } from '../types/components/snk-data-unit/snk-data-unit';
|
|
7
|
+
export { SnkExporterEmailSender as SnkExporterEmailSender } from '../types/components/snk-data-exporter/exporter-email-sender/snk-exporter-email-sender';
|
|
7
8
|
export { SnkFieldConfig as SnkFieldConfig } from '../types/components/snk-form/subcomponents/snk-field-config/snk-field-config';
|
|
8
9
|
export { SnkFilterBar as SnkFilterBar } from '../types/components/snk-filter-bar/snk-filter-bar';
|
|
9
10
|
export { SnkFilterBinarySelect as SnkFilterBinarySelect } from '../types/components/snk-filter-bar/filter-item/editors/snk-filter-binary-select';
|
package/dist/components/index.js
CHANGED
|
@@ -4,6 +4,7 @@ export { SnkConfigOptions, defineCustomElement as defineCustomElementSnkConfigOp
|
|
|
4
4
|
export { SnkConfigurator, defineCustomElement as defineCustomElementSnkConfigurator } from './snk-configurator.js';
|
|
5
5
|
export { SnkCrud, defineCustomElement as defineCustomElementSnkCrud } from './snk-crud.js';
|
|
6
6
|
export { SnkDataUnit, defineCustomElement as defineCustomElementSnkDataUnit } from './snk-data-unit.js';
|
|
7
|
+
export { SnkExporterEmailSender, defineCustomElement as defineCustomElementSnkExporterEmailSender } from './snk-exporter-email-sender.js';
|
|
7
8
|
export { SnkFieldConfig, defineCustomElement as defineCustomElementSnkFieldConfig } from './snk-field-config.js';
|
|
8
9
|
export { SnkFilterBar, defineCustomElement as defineCustomElementSnkFilterBar } from './snk-filter-bar.js';
|
|
9
10
|
export { SnkFilterBinarySelect, defineCustomElement as defineCustomElementSnkFilterBinarySelect } from './snk-filter-binary-select.js';
|
|
@@ -2,8 +2,9 @@ import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/i
|
|
|
2
2
|
import { ApplicationContext, ElementIDUtils } from '@sankhyalabs/core';
|
|
3
3
|
import { V as VIEW_MODE } from './constants.js';
|
|
4
4
|
import { T as TaskbarElement, d as defineCustomElement$2 } from './snk-taskbar2.js';
|
|
5
|
-
import { d as defineCustomElement$
|
|
6
|
-
import { d as defineCustomElement$
|
|
5
|
+
import { d as defineCustomElement$h } from './snk-config-options2.js';
|
|
6
|
+
import { d as defineCustomElement$g } from './snk-configurator2.js';
|
|
7
|
+
import { d as defineCustomElement$f } from './snk-exporter-email-sender2.js';
|
|
7
8
|
import { d as defineCustomElement$e } from './snk-field-config2.js';
|
|
8
9
|
import { d as defineCustomElement$d } from './snk-filter-bar2.js';
|
|
9
10
|
import { d as defineCustomElement$c } from './snk-filter-detail2.js';
|
|
@@ -31,6 +32,10 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
31
32
|
* Determina se pode haver mais de uma linha selecionada na grade.
|
|
32
33
|
*/
|
|
33
34
|
this.multipleSelection = true;
|
|
35
|
+
/**
|
|
36
|
+
* Determina se haverá exportação de dados
|
|
37
|
+
*/
|
|
38
|
+
this.enableDataExporter = false;
|
|
34
39
|
}
|
|
35
40
|
/**
|
|
36
41
|
* Usado para alternar a visão entre GRID e FORM externamente.
|
|
@@ -109,7 +114,7 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
109
114
|
ElementIDUtils.addIDInfo(this._element, null, dataInfo);
|
|
110
115
|
}
|
|
111
116
|
render() {
|
|
112
|
-
return (h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "crud" }, h("stack-item", null, h("snk-grid", { ref: (ref) => this._snkGrid = ref, "data-element-id": "crud_grid", configName: this.configName, onGridDoubleClick: () => this.gridToForm(true), taskbarManager: this.taskbarManager, onActionClick: evt => this.executeAction(evt.detail), actionsList: this.actionsList, statusResolver: this.statusResolver, multipleSelection: this.multipleSelection }, h("slot", { name: "SnkGridHeader" }), h("slot", { name: "SnkGridFooter" }), h("slot", { name: "SnkGridTaskBar" }))), h("stack-item", null, h("snk-form", { ref: (ref) => this._snkForm = ref, "data-element-id": "crud_form", configName: this.configName, actionsList: this.actionsList, onExit: () => this.setViewMode(GRID_MODE), recordsValidator: this.recordsValidator, taskbarManager: this.taskbarManager, onActionClick: evt => this.executeAction(evt.detail) }, h("slot", { name: "SnkFormTaskBar" }))), h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._viewMode, onConfigSelected: (evt) => this.executeAction(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail) })));
|
|
117
|
+
return (h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "crud" }, h("stack-item", null, h("snk-grid", { ref: (ref) => this._snkGrid = ref, "data-element-id": "crud_grid", configName: this.configName, onGridDoubleClick: () => this.gridToForm(true), taskbarManager: this.taskbarManager, onActionClick: evt => this.executeAction(evt.detail), actionsList: this.actionsList, statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, enableDataExporter: this.enableDataExporter }, h("slot", { name: "SnkGridHeader" }), h("slot", { name: "SnkGridFooter" }), h("slot", { name: "SnkGridTaskBar" }))), h("stack-item", null, h("snk-form", { ref: (ref) => this._snkForm = ref, "data-element-id": "crud_form", configName: this.configName, actionsList: this.actionsList, onExit: () => this.setViewMode(GRID_MODE), recordsValidator: this.recordsValidator, taskbarManager: this.taskbarManager, onActionClick: evt => this.executeAction(evt.detail) }, h("slot", { name: "SnkFormTaskBar" }))), h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._viewMode, onConfigSelected: (evt) => this.executeAction(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail) })));
|
|
113
118
|
}
|
|
114
119
|
get _element() { return this; }
|
|
115
120
|
static get style() { return snkCrudCss; }
|
|
@@ -120,6 +125,7 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
120
125
|
"recordsValidator": [16],
|
|
121
126
|
"statusResolver": [16],
|
|
122
127
|
"multipleSelection": [4, "multiple-selection"],
|
|
128
|
+
"enableDataExporter": [4, "enable-data-exporter"],
|
|
123
129
|
"_dataUnit": [32],
|
|
124
130
|
"_dataState": [32],
|
|
125
131
|
"_viewMode": [32],
|
|
@@ -129,7 +135,7 @@ function defineCustomElement$1() {
|
|
|
129
135
|
if (typeof customElements === "undefined") {
|
|
130
136
|
return;
|
|
131
137
|
}
|
|
132
|
-
const components = ["snk-crud", "snk-config-options", "snk-configurator", "snk-field-config", "snk-filter-bar", "snk-filter-detail", "snk-filter-item", "snk-filter-list", "snk-filter-modal", "snk-form", "snk-form-config", "snk-grid", "snk-grid-config", "snk-select-box", "snk-tab-config", "snk-taskbar"];
|
|
138
|
+
const components = ["snk-crud", "snk-config-options", "snk-configurator", "snk-exporter-email-sender", "snk-field-config", "snk-filter-bar", "snk-filter-detail", "snk-filter-item", "snk-filter-list", "snk-filter-modal", "snk-form", "snk-form-config", "snk-grid", "snk-grid-config", "snk-select-box", "snk-tab-config", "snk-taskbar"];
|
|
133
139
|
components.forEach(tagName => { switch (tagName) {
|
|
134
140
|
case "snk-crud":
|
|
135
141
|
if (!customElements.get(tagName)) {
|
|
@@ -138,10 +144,15 @@ function defineCustomElement$1() {
|
|
|
138
144
|
break;
|
|
139
145
|
case "snk-config-options":
|
|
140
146
|
if (!customElements.get(tagName)) {
|
|
141
|
-
defineCustomElement$
|
|
147
|
+
defineCustomElement$h();
|
|
142
148
|
}
|
|
143
149
|
break;
|
|
144
150
|
case "snk-configurator":
|
|
151
|
+
if (!customElements.get(tagName)) {
|
|
152
|
+
defineCustomElement$g();
|
|
153
|
+
}
|
|
154
|
+
break;
|
|
155
|
+
case "snk-exporter-email-sender":
|
|
145
156
|
if (!customElements.get(tagName)) {
|
|
146
157
|
defineCustomElement$f();
|
|
147
158
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../types/components";
|
|
2
|
+
|
|
3
|
+
interface SnkExporterEmailSender extends Components.SnkExporterEmailSender, HTMLElement {}
|
|
4
|
+
export const SnkExporterEmailSender: {
|
|
5
|
+
prototype: SnkExporterEmailSender;
|
|
6
|
+
new (): SnkExporterEmailSender;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { S as SnkExporterEmailSender$1, d as defineCustomElement$1 } from './snk-exporter-email-sender2.js';
|
|
2
|
+
|
|
3
|
+
const SnkExporterEmailSender = SnkExporterEmailSender$1;
|
|
4
|
+
const defineCustomElement = defineCustomElement$1;
|
|
5
|
+
|
|
6
|
+
export { SnkExporterEmailSender, defineCustomElement };
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { h, proxyCustomElement, HTMLElement } from '@stencil/core/internal/client';
|
|
2
|
+
import { ElementIDUtils } from '@sankhyalabs/core';
|
|
3
|
+
|
|
4
|
+
const EmailInfoStep = ({ getMessage, changeInfo, data }) => {
|
|
5
|
+
return h("div", null,
|
|
6
|
+
h("ez-text-input", Object.assign({ label: `${getMessage("snkExporter.emailSenderInfoStep_sendTo")} (obrigatório) *`, required: true, value: data === null || data === void 0 ? void 0 : data.to, onEzChange: evt => changeInfo("to", evt.detail) }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo("sendTo")}` })),
|
|
7
|
+
h("ez-text-input", Object.assign({ label: `${getMessage("snkExporter.emailSenderInfoStep_subject")} (obrigatório) *`, required: true, value: data === null || data === void 0 ? void 0 : data.subject, onEzChange: evt => changeInfo("subject", evt.detail) }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo("subject")}` })),
|
|
8
|
+
h("ez-text-area", Object.assign({ label: getMessage("snkExporter.emailSenderInfoStep_message"), value: data === null || data === void 0 ? void 0 : data.message, onEzChange: evt => changeInfo("message", evt.detail) }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo("message")}` })),
|
|
9
|
+
((data === null || data === void 0 ? void 0 : data.attachments) || [])
|
|
10
|
+
.map((file, index) => h("ez-file-item", Object.assign({ class: "ez-padding-bottom--large", fileName: file.name, fileSize: file.size, canRemove: false }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo("fileItem_") + (index + 1)}` }))));
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
const OptionsStep = ({ getMessage, changeInfo, data }) => {
|
|
14
|
+
const selectionCount = (data === null || data === void 0 ? void 0 : data.selectedRows) || 0;
|
|
15
|
+
const formatOptions = [
|
|
16
|
+
{ label: getMessage("snkExporter.emailSenderOptStep_formatPDF"), value: "pdf" },
|
|
17
|
+
{ label: getMessage("snkExporter.emailSenderOptStep_formatXLSX"), value: "xlsx" }
|
|
18
|
+
];
|
|
19
|
+
const typeOptions = [
|
|
20
|
+
{ label: getMessage("snkExporter.emailSenderOptStep_allData"), value: "all" },
|
|
21
|
+
{ label: getMessage("snkExporter.emailSenderOptStep_currentPage"), value: "page" },
|
|
22
|
+
];
|
|
23
|
+
if (selectionCount > 0) {
|
|
24
|
+
const label = getMessage(selectionCount > 1 ? "snkExporter.emailSenderOptStep_someRecords" : "snkExporter.emailSenderOptStep_oneRecord", { SELECTION_COUNT: selectionCount });
|
|
25
|
+
typeOptions.push({
|
|
26
|
+
label,
|
|
27
|
+
value: "selection"
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
return h("div", null,
|
|
31
|
+
h("ez-radio-button", Object.assign({ class: "ez-margin-bottom--large" }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo("formato")}` }, { label: getMessage("snkExporter.emailSenderOptStep_lblFormat"), direction: "horizontal", value: (data === null || data === void 0 ? void 0 : data.format) || "pdf", onEzChange: evt => changeInfo("format", evt.detail), options: formatOptions })),
|
|
32
|
+
h("ez-radio-button", Object.assign({ class: "ez-margin-bottom--large" }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo("type")}` }, { label: getMessage("snkExporter.emailSenderOptStep_export"), value: (data === null || data === void 0 ? void 0 : data.type) || "all", onEzChange: evt => changeInfo("type", evt.detail), options: typeOptions })));
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const SnkExporterEmailSender = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
36
|
+
constructor() {
|
|
37
|
+
super();
|
|
38
|
+
this.__registerHost();
|
|
39
|
+
this._stepInfo = [
|
|
40
|
+
{
|
|
41
|
+
subTitle: "snkExporter.emailSenderOptStep_subtitle",
|
|
42
|
+
firstButton: "snkExporter.emailSenderCancelButton",
|
|
43
|
+
secondButton: "snkExporter.emailSenderNextButton",
|
|
44
|
+
firstButtonAction: () => this.close(),
|
|
45
|
+
secondButtonAction: () => this.changeStep(1)
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
subTitle: "snkExporter.emailSenderInfoStep_subtitle",
|
|
49
|
+
firstButton: "snkExporter.emailSenderBackButton",
|
|
50
|
+
secondButton: "snkExporter.emailSenderSendButton",
|
|
51
|
+
firstButtonAction: () => this.changeStep(0),
|
|
52
|
+
secondButtonAction: () => this.send(),
|
|
53
|
+
secondButtonEnabledTester: () => this.isFilled(),
|
|
54
|
+
secondButtonClass: "ez-button--primary"
|
|
55
|
+
}
|
|
56
|
+
];
|
|
57
|
+
this._opened = false;
|
|
58
|
+
this._currentStep = 0;
|
|
59
|
+
}
|
|
60
|
+
open(config) {
|
|
61
|
+
this._config = config;
|
|
62
|
+
this._opened = true;
|
|
63
|
+
this.changeStep(0);
|
|
64
|
+
return new Promise(accept => {
|
|
65
|
+
this._promiseResolver = accept;
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
getStepMessage(key) {
|
|
69
|
+
const stepInfo = this._stepInfo[this._currentStep] || {};
|
|
70
|
+
return this.getMessage(stepInfo[key]);
|
|
71
|
+
}
|
|
72
|
+
executeButtonAction(first) {
|
|
73
|
+
const stepInfo = this._stepInfo[this._currentStep] || {};
|
|
74
|
+
stepInfo[first ? "firstButtonAction" : "secondButtonAction"]();
|
|
75
|
+
}
|
|
76
|
+
checkButtonEnabled(first) {
|
|
77
|
+
const stepInfo = this._stepInfo[this._currentStep] || {};
|
|
78
|
+
const testFunction = stepInfo[first ? "firstButtonEnabledTester" : "secondButtonEnabledTester"];
|
|
79
|
+
if (testFunction) {
|
|
80
|
+
return testFunction();
|
|
81
|
+
}
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
changeStep(index) {
|
|
85
|
+
this._currentStep = index;
|
|
86
|
+
if (this._viewStack) {
|
|
87
|
+
this._viewStack.show(this._currentStep);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
send() {
|
|
91
|
+
const { format, type, email } = this._config;
|
|
92
|
+
this._promiseResolver({ format, type, email, report: undefined });
|
|
93
|
+
}
|
|
94
|
+
close() {
|
|
95
|
+
this._opened = false;
|
|
96
|
+
}
|
|
97
|
+
isFilled() {
|
|
98
|
+
var _a, _b;
|
|
99
|
+
return ((_a = this._config.email) === null || _a === void 0 ? void 0 : _a.to) && ((_b = this._config.email) === null || _b === void 0 ? void 0 : _b.subject) ? true : false;
|
|
100
|
+
}
|
|
101
|
+
updateEmailInfo(field, value) {
|
|
102
|
+
this._config = Object.assign(Object.assign({}, this._config), { email: Object.assign(Object.assign({}, this._config.email), { [field]: value }) });
|
|
103
|
+
}
|
|
104
|
+
updateConfigInfo(field, value) {
|
|
105
|
+
this._config = Object.assign(Object.assign({}, this._config), { [field]: value });
|
|
106
|
+
}
|
|
107
|
+
getSecondButtonClass() {
|
|
108
|
+
const stepInfo = this._stepInfo[this._currentStep] || {};
|
|
109
|
+
return stepInfo["secondButtonClass"] || "ez-button--secondary";
|
|
110
|
+
}
|
|
111
|
+
render() {
|
|
112
|
+
var _a;
|
|
113
|
+
ElementIDUtils.addIDInfoIfNotExists(this._element, 'snkExporterEmailSender');
|
|
114
|
+
return (h("ez-popup", { useHeader: false, size: "x-small", heightMode: "auto", opened: this._opened }, h("ez-modal-container", { onEzModalAction: evt => {
|
|
115
|
+
if (evt.detail === "CLOSE")
|
|
116
|
+
this.close();
|
|
117
|
+
}, modalTitle: this.getMessage("snkExporter.emailSenderTitle"), modalSubTitle: this.getStepMessage("subTitle") }, h("ez-view-stack", { ref: ref => this._viewStack = ref }, h("stack-item", null, h(OptionsStep, { getMessage: this.getMessage, data: this._config, changeInfo: (field, value) => this.updateConfigInfo(field, value) })), h("stack-item", null, h(EmailInfoStep, { getMessage: this.getMessage, data: (_a = this._config) === null || _a === void 0 ? void 0 : _a.email, changeInfo: (field, value) => this.updateEmailInfo(field, value) }))), h("div", { class: "ez-col ez-col--sd-12 ez-flex--justify-end ez-margin-vertical--small" }, h("ez-button", Object.assign({ class: "ez-button--tertiary ez-padding-right--medium", label: this.getStepMessage("firstButton"), onClick: () => this.executeButtonAction(true), enabled: this.checkButtonEnabled(true) }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo("firstButton")}` })), h("ez-button", Object.assign({ class: this.getSecondButtonClass(), label: this.getStepMessage("secondButton"), onClick: () => this.executeButtonAction(false), enabled: this.checkButtonEnabled(false) }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo("secondButton")}` }))))));
|
|
118
|
+
}
|
|
119
|
+
get _element() { return this; }
|
|
120
|
+
}, [0, "snk-exporter-email-sender", {
|
|
121
|
+
"getMessage": [16],
|
|
122
|
+
"_config": [32],
|
|
123
|
+
"_opened": [32],
|
|
124
|
+
"_currentStep": [32],
|
|
125
|
+
"open": [64]
|
|
126
|
+
}]);
|
|
127
|
+
function defineCustomElement() {
|
|
128
|
+
if (typeof customElements === "undefined") {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
const components = ["snk-exporter-email-sender"];
|
|
132
|
+
components.forEach(tagName => { switch (tagName) {
|
|
133
|
+
case "snk-exporter-email-sender":
|
|
134
|
+
if (!customElements.get(tagName)) {
|
|
135
|
+
customElements.define(tagName, SnkExporterEmailSender);
|
|
136
|
+
}
|
|
137
|
+
break;
|
|
138
|
+
} });
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
export { SnkExporterEmailSender as S, defineCustomElement as d };
|
|
@@ -55,7 +55,14 @@ const SnkFilterDetail = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
|
|
|
55
55
|
]);
|
|
56
56
|
}
|
|
57
57
|
buildIcon(title, iconName, action) {
|
|
58
|
-
return (h("button", { onClick: () => action(), class: "sc-snk-filter-bar snk-filter-item__editor-header-button" }, h("ez-icon", { title: title, iconName: iconName })));
|
|
58
|
+
return (h("button", { onClick: () => action(), class: "sc-snk-filter-bar snk-filter-item__editor-header-button", ref: elem => elem && this.buildIdButton(elem, title) }, h("ez-icon", Object.assign({ title: title, iconName: iconName }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo(`_${title}`)}` }))));
|
|
59
|
+
}
|
|
60
|
+
buildIdButton(buttonElement, title) {
|
|
61
|
+
if (!buttonElement)
|
|
62
|
+
return;
|
|
63
|
+
const dataElement = { id: title };
|
|
64
|
+
buttonElement.removeAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME);
|
|
65
|
+
ElementIDUtils.addIDInfoIfNotExists(buttonElement, "button", dataElement);
|
|
59
66
|
}
|
|
60
67
|
getNormalizedValue(params, value) {
|
|
61
68
|
return params.reduce((arrayValues, currentParam, index) => {
|
|
@@ -61,15 +61,17 @@ const SnkFilterList = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
|
|
|
61
61
|
this._popover.remove();
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
64
|
+
}
|
|
65
|
+
buildIdElement(buttonElement, name) {
|
|
66
|
+
if (!buttonElement)
|
|
67
|
+
return;
|
|
68
|
+
const dataElement = { id: name };
|
|
69
|
+
buttonElement.removeAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME);
|
|
70
|
+
ElementIDUtils.addIDInfoIfNotExists(buttonElement, "filterItemList", dataElement);
|
|
69
71
|
}
|
|
70
72
|
buildItemElement(item) {
|
|
71
73
|
const itemId = ++this._selectableItemsCount;
|
|
72
|
-
return (h("button", { id: `filter-item${itemId}`, onFocusin: () => this._preselection = itemId, class: `ez-col ez-col--sd-12 ez-align--middle ez-padding--small sc-snk-filter-bar snk-filter-bar__filter-list-item`, onClick: () => this.itemSelected(item.name), name: item.label, key: itemId }, item.iconName ? h("ez-icon", { iconName: item.iconName, size: "small", class: `ez-padding-right--extra-small sc-snk-filter-bar snk-filter-bar__filter-list-item__icon ${item.iconClass || ""}` }) : undefined, h("div", { class: `ez-text ez-text--medium ez-text--primary ez-padding--extra-small sc-snk-filter-bar snk-filter-bar__filter-list-item__label ${item.labelClass || ""}` }, item.label)));
|
|
74
|
+
return (h("button", { ref: elem => elem && this.buildIdElement(elem, item.label), id: `filter-item${itemId}`, onFocusin: () => this._preselection = itemId, class: `ez-col ez-col--sd-12 ez-align--middle ez-padding--small sc-snk-filter-bar snk-filter-bar__filter-list-item`, onClick: () => this.itemSelected(item.name), name: item.label, key: itemId }, item.iconName ? h("ez-icon", { iconName: item.iconName, size: "small", class: `ez-padding-right--extra-small sc-snk-filter-bar snk-filter-bar__filter-list-item__icon ${item.iconClass || ""}` }) : undefined, h("div", { class: `ez-text ez-text--medium ez-text--primary ez-padding--extra-small sc-snk-filter-bar snk-filter-bar__filter-list-item__label ${item.labelClass || ""}` }, item.label)));
|
|
73
75
|
}
|
|
74
76
|
itemSelected(itemName) {
|
|
75
77
|
if (itemName === SHOW_MORE_ITEM_NAME) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
|
|
2
|
-
import { StringUtils, ElementIDUtils
|
|
2
|
+
import { StringUtils, ElementIDUtils } from '@sankhyalabs/core';
|
|
3
3
|
import { ApplicationUtils, DialogType } from '@sankhyalabs/ezui/dist/collection/utils';
|
|
4
4
|
import { C as ConfigStorage } from './ConfigStorage.js';
|
|
5
5
|
import { O as ORDER_VALUES } from './constants.js';
|
|
@@ -21,7 +21,7 @@ const EzGridConfig = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
|
|
|
21
21
|
this._componenteInternalKey = Date.now();
|
|
22
22
|
/**
|
|
23
23
|
* Aba selecionada das configurações da grade.
|
|
24
|
-
|
|
24
|
+
*/
|
|
25
25
|
this.selectedIndex = 0;
|
|
26
26
|
}
|
|
27
27
|
/* Creation Methods */
|
|
@@ -30,10 +30,10 @@ const EzGridConfig = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
|
|
|
30
30
|
*/
|
|
31
31
|
async saveConfig(config) {
|
|
32
32
|
var _a;
|
|
33
|
-
if (config == undefined || ((_a = this.
|
|
33
|
+
if (config == undefined || ((_a = this.application) === null || _a === void 0 ? void 0 : _a.configName) == undefined) {
|
|
34
34
|
return;
|
|
35
35
|
}
|
|
36
|
-
ConfigStorage.saveGridConfig(config, this.
|
|
36
|
+
ConfigStorage.saveGridConfig(config, this.application.configName)
|
|
37
37
|
.then((response) => {
|
|
38
38
|
if ((response === null || response === void 0 ? void 0 : response.resource) != undefined) {
|
|
39
39
|
this.configChange.emit(config);
|
|
@@ -48,7 +48,7 @@ const EzGridConfig = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
|
|
|
48
48
|
* Para conhecer os detalhes do módulo, vide o arquivo neste projeto "/src/lib/message/resources/snk-grid.msg.ts"
|
|
49
49
|
*/
|
|
50
50
|
getMessage(key, params) {
|
|
51
|
-
return this.
|
|
51
|
+
return this.application.messagesBuilder.getMessage(key, params);
|
|
52
52
|
}
|
|
53
53
|
createOrderList() {
|
|
54
54
|
let newList = [];
|
|
@@ -467,9 +467,6 @@ const EzGridConfig = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
|
|
|
467
467
|
this.locateColumn(new KeyboardEvent("arrow-right", { key: "ArrowRight" }), this._searchElement.value);
|
|
468
468
|
}
|
|
469
469
|
}
|
|
470
|
-
componentWillLoad() {
|
|
471
|
-
this._application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
|
|
472
|
-
}
|
|
473
470
|
componentDidLoad() {
|
|
474
471
|
ElementIDUtils.addIDInfo(this._element);
|
|
475
472
|
}
|
|
@@ -481,6 +478,7 @@ const EzGridConfig = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
|
|
|
481
478
|
static get style() { return snkGridConfigCss; }
|
|
482
479
|
}, [2, "snk-grid-config", {
|
|
483
480
|
"selectedIndex": [1026, "selected-index"],
|
|
481
|
+
"application": [16],
|
|
484
482
|
"columns": [1040],
|
|
485
483
|
"config": [1040],
|
|
486
484
|
"saveConfig": [64]
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
|
|
2
|
-
import { ElementIDUtils } from '@sankhyalabs/core';
|
|
2
|
+
import { ApplicationContext, ElementIDUtils } from '@sankhyalabs/core';
|
|
3
3
|
import { T as TaskbarProcessor } from './taskbar-processor.js';
|
|
4
4
|
import { C as ConfigStorage } from './ConfigStorage.js';
|
|
5
|
+
import { T as TaskbarElement, d as defineCustomElement$1 } from './snk-taskbar2.js';
|
|
6
|
+
import { d as defineCustomElement$9 } from './snk-exporter-email-sender2.js';
|
|
5
7
|
import { d as defineCustomElement$8 } from './snk-filter-bar2.js';
|
|
6
8
|
import { d as defineCustomElement$7 } from './snk-filter-detail2.js';
|
|
7
9
|
import { d as defineCustomElement$6 } from './snk-filter-item2.js';
|
|
@@ -9,7 +11,6 @@ import { d as defineCustomElement$5 } from './snk-filter-list2.js';
|
|
|
9
11
|
import { d as defineCustomElement$4 } from './snk-filter-modal2.js';
|
|
10
12
|
import { d as defineCustomElement$3 } from './snk-grid-config2.js';
|
|
11
13
|
import { d as defineCustomElement$2 } from './snk-select-box2.js';
|
|
12
|
-
import { d as defineCustomElement$1 } from './snk-taskbar2.js';
|
|
13
14
|
|
|
14
15
|
const snkGridCss = ".snk-grid__container.sc-snk-grid{display:flex;height:100%;width:100%}.snk-grid__header.sc-snk-grid{display:flex;flex-wrap:nowrap;width:100%}.snk-grid__filter-bar.sc-snk-grid{width:100%}.snk-grid__header-divider.sc-snk-grid{margin-bottom:var(--space--small)}";
|
|
15
16
|
|
|
@@ -23,10 +24,14 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
23
24
|
"snkGridTopTaskbar": ["FORM_MODE", "CONFIGURATOR", "INSERT"]
|
|
24
25
|
});
|
|
25
26
|
this._headerTaskbarProcessor = new TaskbarProcessor({
|
|
26
|
-
"snkGridHeaderTaskbar.unselected": ["REFRESH"],
|
|
27
|
-
"snkGridHeaderTaskbar.selected": ["UPDATE", "CLONE", "REMOVE", "MORE_OPTIONS", "DIVIDER", "REFRESH"]
|
|
27
|
+
"snkGridHeaderTaskbar.unselected": ["REFRESH", "EXPORT"],
|
|
28
|
+
"snkGridHeaderTaskbar.selected": ["UPDATE", "CLONE", "REMOVE", "MORE_OPTIONS", "DIVIDER", "REFRESH", "EXPORT"]
|
|
28
29
|
});
|
|
29
30
|
this._popUpGridConfig = false;
|
|
31
|
+
/**
|
|
32
|
+
* Determina se haverá exportação de dados
|
|
33
|
+
*/
|
|
34
|
+
this.enableDataExporter = false;
|
|
30
35
|
}
|
|
31
36
|
/**
|
|
32
37
|
* Exibe a janela de configurações da grade.
|
|
@@ -52,6 +57,37 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
52
57
|
async setConfig(config) {
|
|
53
58
|
this.setGridConfig(config);
|
|
54
59
|
}
|
|
60
|
+
actionClickHandler(event) {
|
|
61
|
+
if (event.detail === TaskbarElement.EXPORT) {
|
|
62
|
+
// TODO: Quando o exportador de grades for implementado, essa ação
|
|
63
|
+
// vai fazer mostrar as opções disponíveis. Enviar por email será
|
|
64
|
+
// apenas mais uma
|
|
65
|
+
const selectedRows = this._dataState.selectedRecords.length;
|
|
66
|
+
const config = {
|
|
67
|
+
format: "pdf",
|
|
68
|
+
type: selectedRows > 0 ? "selection" : "all",
|
|
69
|
+
selectedRows,
|
|
70
|
+
email: {
|
|
71
|
+
attachments: [
|
|
72
|
+
{ name: "Movimentação Financeira.pdf", size: 1024 * 231 }
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
this._snkEmailSender.open(config)
|
|
77
|
+
.then((result) => {
|
|
78
|
+
this._application.message("resultado", JSON.stringify(result));
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Conforme mecanismo de mensagens, é possível customizar as mensagens dos blocos de construção
|
|
84
|
+
* através de um pequeno modulo na estrutura da aplicação:
|
|
85
|
+
* - Criar um arquivo no seguinte caminho: /messages/appmessages.msg.js.
|
|
86
|
+
* Para conhecer os detalhes do módulo, vide o arquivo neste projeto "/src/lib/message/resources/snk-grid.msg.ts"
|
|
87
|
+
*/
|
|
88
|
+
getMessage(key, params) {
|
|
89
|
+
return this._application.messagesBuilder.getMessage(key, params);
|
|
90
|
+
}
|
|
55
91
|
openGridConfig() {
|
|
56
92
|
this._grid.getColumnsState()
|
|
57
93
|
.then((gridColumns) => {
|
|
@@ -87,6 +123,7 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
87
123
|
});
|
|
88
124
|
}
|
|
89
125
|
componentWillLoad() {
|
|
126
|
+
this._application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
|
|
90
127
|
let parent = this._element.parentElement;
|
|
91
128
|
while (parent) {
|
|
92
129
|
if (parent.tagName.toUpperCase() === "SNK-DATA-UNIT") {
|
|
@@ -111,9 +148,10 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
111
148
|
this.loadConfig();
|
|
112
149
|
}
|
|
113
150
|
componentWillRender() {
|
|
151
|
+
const invisibleButtons = this.enableDataExporter ? [] : ["EXPORT"];
|
|
114
152
|
const headerTaskbarId = this._dataState && this._dataState.selectedRecords.length > 0 ? "snkGridHeaderTaskbar.selected" : "snkGridHeaderTaskbar.unselected";
|
|
115
|
-
this._headerTaskbarProcessor.process(headerTaskbarId, this.taskbarManager, this._dataState);
|
|
116
|
-
this._topTaskbarProcessor.process("snkGridTopTaskbar", this.taskbarManager, this._dataState);
|
|
153
|
+
this._headerTaskbarProcessor.process(headerTaskbarId, this.taskbarManager, this._dataState, undefined, invisibleButtons);
|
|
154
|
+
this._topTaskbarProcessor.process("snkGridTopTaskbar", this.taskbarManager, this._dataState, undefined, invisibleButtons);
|
|
117
155
|
}
|
|
118
156
|
addElementID() {
|
|
119
157
|
const dataInfo = { dataUnit: this._dataUnit };
|
|
@@ -123,7 +161,7 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
123
161
|
if (!this._dataUnit) {
|
|
124
162
|
return undefined;
|
|
125
163
|
}
|
|
126
|
-
return (h("div", { class: "snk-grid__container ez-flex ez-flex--column ez-flex-item--auto ez-padding--large" }, h("div", { class: "snk-grid__header ez-padding-bottom--medium ez-margin-bottom--medium" }, h("snk-filter-bar", { dataUnit: this._dataUnit, "data-element-id": "gridFilter", class: "snk-grid__filter-bar ez-align--top", configName: this.configName }), h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-grid__header-divider" }), h("snk-taskbar", { class: "ez-padding-left--medium", "data-element-id": "grid_top", key: "topTaskbar", configName: this.configName, dataUnit: this._dataUnit, buttons: this._topTaskbarProcessor.buttons, disabledButtons: this._topTaskbarProcessor.disabledButtons, customButtons: this._topTaskbarProcessor.customButtons, primaryButton: "INSERT" })), h("ez-grid", { ref: ref => this._grid = ref, "data-element-id": "embedded", dataUnit: this._dataUnit, key: "grid-" + this._snkDataUnit.entityName, config: this._gridConfig, onConfigChange: (evt) => { this.saveConfig(evt.detail); }, onEzDoubleClick: () => this.gridDoubleClick.emit(), statusResolver: this.statusResolver, multipleSelection: this.multipleSelection }, h("snk-taskbar", { dataUnit: this._dataUnit, "data-element-id": "grid_left", buttons: this._headerTaskbarProcessor.buttons, disabledButtons: this._headerTaskbarProcessor.disabledButtons, customButtons: this._headerTaskbarProcessor.customButtons, slot: "leftButtons", actionsList: this.actionsList })), h("div", { class: "ez-col ez-col--sd-12" }, h("slot", { name: "SnkGridFooter" })), h("ez-modal", { modalSize: "small", closeEsc: false, closeOutsideClick: false, opened: this._popUpGridConfig, onEzCloseModal: () => this.closeGridConfig() }, h("snk-grid-config", { ref: ref => this._snkGridConfig = ref, config: this._gridConfig, "data-element-id": this._element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME), selectedIndex: 0, onConfigChange: (evt) => this.changeConfig(evt.detail), onConfigCancel: () => this.closeGridConfig() }))));
|
|
164
|
+
return (h("div", { class: "snk-grid__container ez-flex ez-flex--column ez-flex-item--auto ez-padding--large" }, h("div", { class: "snk-grid__header ez-padding-bottom--medium ez-margin-bottom--medium" }, h("snk-filter-bar", { dataUnit: this._dataUnit, "data-element-id": "gridFilter", class: "snk-grid__filter-bar ez-align--top", configName: this.configName }), h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-grid__header-divider" }), h("snk-taskbar", { class: "ez-padding-left--medium", "data-element-id": "grid_top", key: "topTaskbar", configName: this.configName, dataUnit: this._dataUnit, buttons: this._topTaskbarProcessor.buttons, disabledButtons: this._topTaskbarProcessor.disabledButtons, customButtons: this._topTaskbarProcessor.customButtons, primaryButton: "INSERT" })), h("ez-grid", { ref: ref => this._grid = ref, "data-element-id": "embedded", dataUnit: this._dataUnit, key: "grid-" + this._snkDataUnit.entityName, config: this._gridConfig, onConfigChange: (evt) => { this.saveConfig(evt.detail); }, onEzDoubleClick: () => this.gridDoubleClick.emit(), statusResolver: this.statusResolver, multipleSelection: this.multipleSelection }, h("snk-taskbar", { dataUnit: this._dataUnit, "data-element-id": "grid_left", buttons: this._headerTaskbarProcessor.buttons, disabledButtons: this._headerTaskbarProcessor.disabledButtons, customButtons: this._headerTaskbarProcessor.customButtons, slot: "leftButtons", actionsList: this.actionsList })), h("div", { class: "ez-col ez-col--sd-12" }, h("slot", { name: "SnkGridFooter" })), h("snk-exporter-email-sender", { ref: ref => this._snkEmailSender = ref, getMessage: (key, params) => this.getMessage(key, params) }), h("ez-modal", { modalSize: "small", closeEsc: false, closeOutsideClick: false, opened: this._popUpGridConfig, onEzCloseModal: () => this.closeGridConfig() }, h("snk-grid-config", { ref: ref => this._snkGridConfig = ref, config: this._gridConfig, "data-element-id": this._element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME), application: this._application, selectedIndex: 0, onConfigChange: (evt) => this.changeConfig(evt.detail), onConfigCancel: () => this.closeGridConfig() }))));
|
|
127
165
|
}
|
|
128
166
|
get _element() { return this; }
|
|
129
167
|
static get style() { return snkGridCss; }
|
|
@@ -133,6 +171,7 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
133
171
|
"taskbarManager": [16],
|
|
134
172
|
"statusResolver": [16],
|
|
135
173
|
"multipleSelection": [4, "multiple-selection"],
|
|
174
|
+
"enableDataExporter": [4, "enable-data-exporter"],
|
|
136
175
|
"_dataUnit": [32],
|
|
137
176
|
"_dataState": [32],
|
|
138
177
|
"_gridConfig": [32],
|
|
@@ -140,18 +179,23 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
140
179
|
"showConfig": [64],
|
|
141
180
|
"hideConfig": [64],
|
|
142
181
|
"setConfig": [64]
|
|
143
|
-
}]);
|
|
182
|
+
}, [[0, "actionClick", "actionClickHandler"]]]);
|
|
144
183
|
function defineCustomElement() {
|
|
145
184
|
if (typeof customElements === "undefined") {
|
|
146
185
|
return;
|
|
147
186
|
}
|
|
148
|
-
const components = ["snk-grid", "snk-filter-bar", "snk-filter-detail", "snk-filter-item", "snk-filter-list", "snk-filter-modal", "snk-grid-config", "snk-select-box", "snk-taskbar"];
|
|
187
|
+
const components = ["snk-grid", "snk-exporter-email-sender", "snk-filter-bar", "snk-filter-detail", "snk-filter-item", "snk-filter-list", "snk-filter-modal", "snk-grid-config", "snk-select-box", "snk-taskbar"];
|
|
149
188
|
components.forEach(tagName => { switch (tagName) {
|
|
150
189
|
case "snk-grid":
|
|
151
190
|
if (!customElements.get(tagName)) {
|
|
152
191
|
customElements.define(tagName, SnkGrid);
|
|
153
192
|
}
|
|
154
193
|
break;
|
|
194
|
+
case "snk-exporter-email-sender":
|
|
195
|
+
if (!customElements.get(tagName)) {
|
|
196
|
+
defineCustomElement$9();
|
|
197
|
+
}
|
|
198
|
+
break;
|
|
155
199
|
case "snk-filter-bar":
|
|
156
200
|
if (!customElements.get(tagName)) {
|
|
157
201
|
defineCustomElement$8();
|
|
@@ -18,6 +18,7 @@ var TaskbarElement;
|
|
|
18
18
|
TaskbarElement["MORE_OPTIONS"] = "MORE_OPTIONS";
|
|
19
19
|
TaskbarElement["DIVIDER"] = "DIVIDER";
|
|
20
20
|
TaskbarElement["CONFIGURATOR"] = "CONFIGURATOR";
|
|
21
|
+
TaskbarElement["EXPORT"] = "EXPORT";
|
|
21
22
|
})(TaskbarElement || (TaskbarElement = {}));
|
|
22
23
|
var AuthorizationElements;
|
|
23
24
|
(function (AuthorizationElements) {
|
|
@@ -72,6 +73,8 @@ const buildElem = (element, className, dataElementId, getTitle, action, isEnable
|
|
|
72
73
|
return iconButton("list", element, className, dataElementId, title, action, isEnabled);
|
|
73
74
|
case TaskbarElement.CONFIGURATOR:
|
|
74
75
|
return iconButton("settings-inverted", element, className, dataElementId, title, action, isEnabled);
|
|
76
|
+
case TaskbarElement.EXPORT:
|
|
77
|
+
return iconButton("file-download", element, className, dataElementId, title, action, isEnabled);
|
|
75
78
|
case TaskbarElement.MORE_OPTIONS:
|
|
76
79
|
return actionButton(element, className, dataElementId, title, action, isEnabled, actions);
|
|
77
80
|
case TaskbarElement.DIVIDER:
|
|
@@ -115,7 +118,8 @@ const SnkTaskbar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
115
118
|
[TaskbarElement.SAVE]: "snkTaskbar.titleSave",
|
|
116
119
|
[TaskbarElement.GRID_MODE]: "snkTaskbar.titleGridMode",
|
|
117
120
|
[TaskbarElement.FORM_MODE]: "snkTaskbar.titleFormMode",
|
|
118
|
-
[TaskbarElement.CONFIGURATOR]: "snkTaskbar.titleConfigurator"
|
|
121
|
+
[TaskbarElement.CONFIGURATOR]: "snkTaskbar.titleConfigurator",
|
|
122
|
+
[TaskbarElement.EXPORT]: "snkTaskbar.titleExportar"
|
|
119
123
|
};
|
|
120
124
|
}
|
|
121
125
|
observeButtons() {
|
|
@@ -2,7 +2,7 @@ class TaskbarProcessor {
|
|
|
2
2
|
constructor(defaultButtons) {
|
|
3
3
|
this._defaultButtons = defaultButtons;
|
|
4
4
|
}
|
|
5
|
-
process(taskbarId, taskbarManager, dataState, disabledButtons = []) {
|
|
5
|
+
process(taskbarId, taskbarManager, dataState, disabledButtons = [], invisibleButtons = []) {
|
|
6
6
|
var _a;
|
|
7
7
|
this.customButtons = new Map();
|
|
8
8
|
this.buttons = "";
|
|
@@ -17,13 +17,15 @@ class TaskbarProcessor {
|
|
|
17
17
|
this.customButtons.set(customBtn.name, customBtn);
|
|
18
18
|
buttonName = customBtn.name;
|
|
19
19
|
}
|
|
20
|
-
if (!
|
|
21
|
-
this.
|
|
20
|
+
if (!invisibleButtons.includes(buttonName)) {
|
|
21
|
+
if (!this.isEnabled(taskbarId, taskbarManager, buttonName, dataState, disabledButtons)) {
|
|
22
|
+
this.disabledButtons.push(buttonName);
|
|
23
|
+
}
|
|
24
|
+
if (this.buttons.length > 0) {
|
|
25
|
+
this.buttons += ",";
|
|
26
|
+
}
|
|
27
|
+
this.buttons += buttonName;
|
|
22
28
|
}
|
|
23
|
-
if (this.buttons.length > 0) {
|
|
24
|
-
this.buttons += ",";
|
|
25
|
-
}
|
|
26
|
-
this.buttons += buttonName;
|
|
27
29
|
});
|
|
28
30
|
}
|
|
29
31
|
getButtonsArray(taskbarId, taskbarManager, dataState) {
|
|
@@ -69,6 +69,7 @@ const snkTaskbarMessages = {
|
|
|
69
69
|
titleGridMode: "Modo Grade",
|
|
70
70
|
titleFormMode: "Modo Formulário",
|
|
71
71
|
titleConfigurator: "Configurações",
|
|
72
|
+
titleExportar: "Exportar",
|
|
72
73
|
forbidden: "Permissão não liberada"
|
|
73
74
|
};
|
|
74
75
|
|
|
@@ -76,6 +77,27 @@ const crudUtilsMessages = {
|
|
|
76
77
|
errorArray: "CrudUtils.find deve receber um array de fields, ou uma lista separada por virgula.",
|
|
77
78
|
};
|
|
78
79
|
|
|
80
|
+
const snkExporterMessages = {
|
|
81
|
+
emailSenderTitle: "Enviar por email",
|
|
82
|
+
emailSenderBackButton: "Voltar",
|
|
83
|
+
emailSenderNextButton: "Avançar",
|
|
84
|
+
emailSenderCancelButton: "Cancelar",
|
|
85
|
+
emailSenderSendButton: "Enviar",
|
|
86
|
+
emailSenderOptStep_subtitle: "Primeiro, escolha o formato do arquivo",
|
|
87
|
+
emailSenderOptStep_lblFormat: "Formato:",
|
|
88
|
+
emailSenderOptStep_formatPDF: "PDF (.pdf)",
|
|
89
|
+
emailSenderOptStep_formatXLSX: "Planilha (.xlsx)",
|
|
90
|
+
emailSenderOptStep_export: "Exportar:",
|
|
91
|
+
emailSenderOptStep_allData: "Toda a grade",
|
|
92
|
+
emailSenderOptStep_currentPage: "Somente a página atual",
|
|
93
|
+
emailSenderOptStep_someRecords: "{{SELECTION_COUNT}} linhas selecionadas",
|
|
94
|
+
emailSenderOptStep_oneRecord: "Somente a linha selecionada",
|
|
95
|
+
emailSenderInfoStep_subtitle: "Informações de email",
|
|
96
|
+
emailSenderInfoStep_sendTo: "Enviar para",
|
|
97
|
+
emailSenderInfoStep_subject: "Assunto",
|
|
98
|
+
emailSenderInfoStep_message: "Mensagem"
|
|
99
|
+
};
|
|
100
|
+
|
|
79
101
|
const snkFormMessages = {
|
|
80
102
|
title: {
|
|
81
103
|
clone: "Duplicar registro",
|
|
@@ -197,7 +219,8 @@ class SnkMessageBuilder {
|
|
|
197
219
|
snkTabConfig: snkTabConfigMessages,
|
|
198
220
|
crudUtils: crudUtilsMessages,
|
|
199
221
|
snkGrid: snkGridMessages,
|
|
200
|
-
snkGridConfig: snkGridConfigMessages
|
|
222
|
+
snkGridConfig: snkGridConfigMessages,
|
|
223
|
+
snkExporter: snkExporterMessages
|
|
201
224
|
};
|
|
202
225
|
this._currentOperation = OperationMap.CLEAN;
|
|
203
226
|
this.loadAppMessages().then((msgs) => {
|