@sankhyalabs/sankhyablocks 5.5.0 → 5.6.0
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-26da04f7.js → SnkMessageBuilder-e64dce7f.js} +14 -0
- package/dist/cjs/index-8d94b7e0.js +7 -0
- package/dist/cjs/index-de79181a.js +201 -0
- 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-attach.cjs.entry.js +2 -1
- package/dist/cjs/snk-crud.cjs.entry.js +2 -1
- package/dist/cjs/snk-data-exporter.cjs.entry.js +2 -2
- package/dist/cjs/{snk-data-unit-c43df27b.js → snk-data-unit-85d6565e.js} +1 -1
- package/dist/cjs/snk-data-unit.cjs.entry.js +2 -2
- package/dist/cjs/snk-detail-view.cjs.entry.js +4 -3
- package/dist/cjs/snk-expression-item.cjs.entry.js +213 -0
- package/dist/cjs/snk-filter-field-search_2.cjs.entry.js +435 -0
- package/dist/cjs/snk-grid.cjs.entry.js +3 -2
- package/dist/cjs/{snk-guides-viewer-e6a65393.js → snk-guides-viewer-9784c527.js} +1 -1
- package/dist/cjs/snk-guides-viewer.cjs.entry.js +3 -2
- package/dist/cjs/snk-personalized-filter.cjs.entry.js +126 -0
- package/dist/cjs/snk-simple-bar_2.cjs.entry.js +2 -1
- package/dist/cjs/snk-taskbar.cjs.entry.js +2 -1
- package/dist/cjs/taskbar-elements-bc2598f9.js +118 -0
- package/dist/collection/collection-manifest.json +2 -0
- package/dist/collection/components/snk-filter-field-search/snk-filter-field-search.js +62 -69
- package/dist/collection/components/snk-personalized-filter/snk-personalized-filter.css +4 -0
- package/dist/collection/components/snk-personalized-filter/snk-personalized-filter.js +87 -0
- package/dist/collection/components/snk-personalized-filter/subcomponents/snk-expression-item/filter-operands/filter-operands.js +34 -0
- package/dist/collection/components/snk-personalized-filter/subcomponents/snk-expression-item/snk-expression-item.css +97 -0
- package/dist/collection/components/snk-personalized-filter/subcomponents/snk-expression-item/snk-expression-item.js +298 -0
- package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-param-config/snk-filter-param-config.js +2 -2
- package/dist/collection/lib/http/data-fetcher/fetchers/personalized-filter-fetcher.js +63 -0
- package/dist/collection/lib/message/SnkMessageBuilder.js +2 -0
- package/dist/collection/lib/message/resources/snk-personalized-filter.msg.js +12 -0
- package/dist/collection/lib/store/index.js +2 -1
- package/dist/components/SnkMessageBuilder.js +14 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.js +2 -0
- package/dist/components/index2.js +1 -1
- package/dist/components/index3.js +199 -0
- package/dist/components/snk-data-exporter2.js +1 -1
- package/dist/components/snk-expression-item.d.ts +11 -0
- package/dist/components/snk-expression-item.js +6 -0
- package/dist/components/snk-expression-item2.js +241 -0
- package/dist/components/snk-filter-field-search.js +1 -200
- package/dist/{esm/snk-filter-field-search.entry.js → components/snk-filter-field-search2.js} +65 -38
- package/dist/components/snk-filter-param-config.js +1 -273
- package/dist/{esm/snk-filter-param-config.entry.js → components/snk-filter-param-config2.js} +35 -11
- package/dist/components/snk-grid2.js +2 -1
- package/dist/components/snk-personalized-filter.d.ts +11 -0
- package/dist/components/snk-personalized-filter.js +158 -0
- package/dist/components/snk-taskbar2.js +3 -197
- package/dist/esm/{SnkMessageBuilder-7a9392e6.js → SnkMessageBuilder-f3590f65.js} +14 -0
- package/dist/esm/{index-6519a79e.js → index-507e19ec.js} +1 -1
- package/dist/esm/index-620ac460.js +7 -0
- package/dist/esm/index-8efbf198.js +199 -0
- 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-attach.entry.js +3 -2
- package/dist/esm/snk-crud.entry.js +3 -2
- package/dist/esm/snk-data-exporter.entry.js +3 -3
- package/dist/esm/{snk-data-unit-f9e4c694.js → snk-data-unit-50b1660c.js} +1 -1
- package/dist/esm/snk-data-unit.entry.js +2 -2
- package/dist/esm/snk-detail-view.entry.js +5 -4
- package/dist/esm/snk-expression-item.entry.js +209 -0
- package/dist/esm/snk-filter-field-search_2.entry.js +430 -0
- package/dist/esm/snk-grid.entry.js +3 -2
- package/dist/esm/{snk-guides-viewer-62a9f74d.js → snk-guides-viewer-4d12f268.js} +2 -2
- package/dist/esm/snk-guides-viewer.entry.js +4 -3
- package/dist/esm/snk-personalized-filter.entry.js +122 -0
- package/dist/esm/snk-simple-bar_2.entry.js +3 -2
- package/dist/esm/snk-taskbar.entry.js +3 -2
- package/dist/esm/taskbar-elements-e6af3e93.js +115 -0
- package/dist/sankhyablocks/p-1dcfd32a.entry.js +1 -0
- package/dist/sankhyablocks/p-27e264d9.entry.js +1 -0
- package/dist/sankhyablocks/p-343699ad.entry.js +1 -0
- package/dist/sankhyablocks/{p-f2223502.js → p-3d3263b4.js} +1 -1
- package/dist/sankhyablocks/{p-b2523981.entry.js → p-3fbe2d69.entry.js} +1 -1
- package/dist/sankhyablocks/p-433dfa63.entry.js +1 -0
- package/dist/sankhyablocks/{p-f132e371.js → p-4c2015a9.js} +1 -1
- package/dist/sankhyablocks/p-4eefe631.entry.js +1 -0
- package/dist/sankhyablocks/p-6a02e236.js +1 -0
- package/dist/sankhyablocks/p-8bdf5e57.entry.js +1 -0
- package/dist/sankhyablocks/{p-a412992c.entry.js → p-c4417efb.entry.js} +1 -1
- package/dist/sankhyablocks/{p-92a0fca4.js → p-c9477950.js} +1 -1
- package/dist/sankhyablocks/{p-aeffd219.js → p-ccd26e3a.js} +1 -1
- package/dist/sankhyablocks/p-d410f45a.js +1 -0
- package/dist/sankhyablocks/p-df8f13b4.entry.js +1 -0
- package/dist/sankhyablocks/p-e9f42525.entry.js +1 -0
- package/dist/sankhyablocks/p-f344b811.entry.js +1 -0
- package/dist/sankhyablocks/p-f4184ce7.js +1 -0
- package/dist/sankhyablocks/p-fd4ed40a.entry.js +1 -0
- package/dist/sankhyablocks/p-ff96b509.entry.js +27 -0
- package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
- package/dist/types/components/snk-filter-field-search/interfaces/index.d.ts +14 -4
- package/dist/types/components/snk-filter-field-search/snk-filter-field-search.d.ts +13 -10
- package/dist/types/components/snk-personalized-filter/snk-personalized-filter.d.ts +20 -0
- package/dist/types/components/snk-personalized-filter/subcomponents/snk-expression-item/filter-operands/filter-operands.d.ts +9 -0
- package/dist/types/components/snk-personalized-filter/subcomponents/snk-expression-item/snk-expression-item.d.ts +54 -0
- package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-param-config/interfaces/IExpressionItem.d.ts +4 -2
- package/dist/types/components.d.ts +83 -9
- package/dist/types/lib/http/data-fetcher/fetchers/personalized-filter-fetcher.d.ts +7 -0
- package/dist/types/lib/message/resources/snk-personalized-filter.msg.d.ts +1 -0
- package/dist/types/lib/store/index.d.ts +1 -0
- package/package.json +1 -1
- package/react/components.d.ts +2 -0
- package/react/components.js +2 -0
- package/react/components.js.map +1 -1
- package/dist/cjs/snk-filter-field-search.cjs.entry.js +0 -185
- package/dist/cjs/snk-filter-param-config.cjs.entry.js +0 -256
- package/dist/cjs/taskbar-elements-80285601.js +0 -313
- package/dist/esm/taskbar-elements-055ba1ad.js +0 -309
- package/dist/sankhyablocks/p-4512cc6c.entry.js +0 -1
- package/dist/sankhyablocks/p-5cbbe1f7.entry.js +0 -1
- package/dist/sankhyablocks/p-63d01871.entry.js +0 -1
- package/dist/sankhyablocks/p-741b00ef.entry.js +0 -1
- package/dist/sankhyablocks/p-79d22df0.entry.js +0 -1
- package/dist/sankhyablocks/p-93d8fe00.entry.js +0 -1
- package/dist/sankhyablocks/p-999d1953.entry.js +0 -1
- package/dist/sankhyablocks/p-c3efd4eb.entry.js +0 -1
- package/dist/sankhyablocks/p-ebe876f5.entry.js +0 -1
- package/dist/sankhyablocks/p-ed438690.js +0 -1
- package/dist/sankhyablocks/p-f3d0c744.entry.js +0 -1
@@ -5,10 +5,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
5
|
const index = require('./index-21bd01e1.js');
|
6
6
|
const core = require('@sankhyalabs/core');
|
7
7
|
const UnitMetadata = require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
|
8
|
-
const taskbarElements = require('./taskbar-elements-
|
8
|
+
const taskbarElements = require('./taskbar-elements-bc2598f9.js');
|
9
9
|
const ConfigStorage = require('./ConfigStorage-91adf3fe.js');
|
10
10
|
const index$1 = require('./index-f400b1d6.js');
|
11
11
|
const taskbarProcessor = require('./taskbar-processor-bce3f499.js');
|
12
|
+
const index$2 = require('./index-de79181a.js');
|
12
13
|
require('./form-config-fetcher-fa19680a.js');
|
13
14
|
require('./DataFetcher-a9d0228f.js');
|
14
15
|
require('./_commonjsHelpers-537d719a.js');
|
@@ -209,7 +210,7 @@ const SnkGrid = class {
|
|
209
210
|
return (_c = (_b = (_a = this._dataUnit) === null || _a === void 0 ? void 0 : _a.records) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.__record__id__;
|
210
211
|
}
|
211
212
|
};
|
212
|
-
|
213
|
+
index$2.store.set("exporterProviders", Object.assign(Object.assign({}, index$2.store.get("exporterProviders")), { [this.configName]: dataExporterProvider }));
|
213
214
|
}
|
214
215
|
addElementID() {
|
215
216
|
const dataInfo = { dataUnit: this._dataUnit };
|
@@ -5,7 +5,7 @@ const core = require('@sankhyalabs/core');
|
|
5
5
|
const SnkFormConfigManager = require('./SnkFormConfigManager-e1a10283.js');
|
6
6
|
const form = require('@sankhyalabs/ezui/dist/collection/utils/form');
|
7
7
|
const taskbarProcessor = require('./taskbar-processor-bce3f499.js');
|
8
|
-
const taskbarElements = require('./taskbar-elements-
|
8
|
+
const taskbarElements = require('./taskbar-elements-bc2598f9.js');
|
9
9
|
const constants = require('./constants-3787fa32.js');
|
10
10
|
require('./DataFetcher-a9d0228f.js');
|
11
11
|
require('./pesquisa-fetcher-954b74c3.js');
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
4
4
|
|
5
|
-
const snkGuidesViewer = require('./snk-guides-viewer-
|
5
|
+
const snkGuidesViewer = require('./snk-guides-viewer-9784c527.js');
|
6
6
|
require('./index-21bd01e1.js');
|
7
7
|
require('@sankhyalabs/core');
|
8
8
|
require('./SnkFormConfigManager-e1a10283.js');
|
@@ -12,8 +12,9 @@ require('./DataFetcher-a9d0228f.js');
|
|
12
12
|
require('./_commonjsHelpers-537d719a.js');
|
13
13
|
require('@sankhyalabs/ezui/dist/collection/utils/form');
|
14
14
|
require('./taskbar-processor-bce3f499.js');
|
15
|
-
require('./taskbar-elements-
|
15
|
+
require('./taskbar-elements-bc2598f9.js');
|
16
16
|
require('./index-f400b1d6.js');
|
17
|
+
require('./index-de79181a.js');
|
17
18
|
require('./constants-3787fa32.js');
|
18
19
|
require('./pesquisa-fetcher-954b74c3.js');
|
19
20
|
|
@@ -0,0 +1,126 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
4
|
+
|
5
|
+
const index = require('./index-21bd01e1.js');
|
6
|
+
const DataFetcher = require('./DataFetcher-a9d0228f.js');
|
7
|
+
const index$1 = require('./index-f400b1d6.js');
|
8
|
+
const index$2 = require('./index-de79181a.js');
|
9
|
+
const core = require('@sankhyalabs/core');
|
10
|
+
require('./_commonjsHelpers-537d719a.js');
|
11
|
+
|
12
|
+
class PersonalizedFilterFetcher {
|
13
|
+
constructor() {
|
14
|
+
this.templateByQuery = new Map();
|
15
|
+
this.buildTemplates();
|
16
|
+
}
|
17
|
+
buildTemplates() {
|
18
|
+
const query = DataFetcher.dist.gql `
|
19
|
+
query($name: String!) {
|
20
|
+
$queryAlias$: fetchFilterFields(name: $name){
|
21
|
+
currentLink {
|
22
|
+
description
|
23
|
+
uri
|
24
|
+
}
|
25
|
+
links {
|
26
|
+
description
|
27
|
+
uri
|
28
|
+
fieldCount
|
29
|
+
}
|
30
|
+
fields {
|
31
|
+
name
|
32
|
+
description
|
33
|
+
uri
|
34
|
+
onlyDate
|
35
|
+
dataType
|
36
|
+
userInterface
|
37
|
+
properties {
|
38
|
+
name
|
39
|
+
value
|
40
|
+
}
|
41
|
+
}
|
42
|
+
}
|
43
|
+
}
|
44
|
+
`;
|
45
|
+
this.templateByQuery.set("fetchFilterFields", query);
|
46
|
+
}
|
47
|
+
loadFields(uri) {
|
48
|
+
return new Promise((resolve, reject) => {
|
49
|
+
DataFetcher.DataFetcher.get()
|
50
|
+
.callGraphQL({
|
51
|
+
values: { name: uri },
|
52
|
+
query: this.templateByQuery.get("fetchFilterFields"),
|
53
|
+
})
|
54
|
+
.then((resp) => {
|
55
|
+
let fields = resp.fields;
|
56
|
+
for (const field of fields) {
|
57
|
+
if (Array.isArray(field.properties) && field.properties.length > 0 && field.userInterface === "SEARCH") {
|
58
|
+
const propertiesConvertedObject = field.properties.reduce((accumulator, prop) => {
|
59
|
+
accumulator[prop.name] = prop.value;
|
60
|
+
return accumulator;
|
61
|
+
}, {});
|
62
|
+
field.properties = propertiesConvertedObject;
|
63
|
+
}
|
64
|
+
}
|
65
|
+
resolve(Object.assign(Object.assign({}, resp), { fields: fields }));
|
66
|
+
})
|
67
|
+
.catch((error) => {
|
68
|
+
reject(error);
|
69
|
+
});
|
70
|
+
});
|
71
|
+
}
|
72
|
+
}
|
73
|
+
|
74
|
+
const snkPersonalizedFilterCss = ":host{display:flex}";
|
75
|
+
|
76
|
+
const SnkPersonalizedFilter = class {
|
77
|
+
constructor(hostRef) {
|
78
|
+
index.registerInstance(this, hostRef);
|
79
|
+
this._personalizedFilterFetcher = new PersonalizedFilterFetcher();
|
80
|
+
this._dataSourceFetcher = {
|
81
|
+
fetchData: async (entity) => {
|
82
|
+
let entityURI = entity === null || entity === void 0 ? void 0 : entity.uri;
|
83
|
+
if (core.StringUtils.isEmpty(entityURI)) {
|
84
|
+
entityURI = "dd://Financeiro/br.com.sankhya.fin.cad.receber"; //TODO: Receber como prop
|
85
|
+
}
|
86
|
+
return await this._personalizedFilterFetcher.loadFields(entityURI);
|
87
|
+
}
|
88
|
+
};
|
89
|
+
this.items = {
|
90
|
+
entityName: "Financeiro",
|
91
|
+
fieldName: "CODBCO",
|
92
|
+
description: "Financeiro >> Banco",
|
93
|
+
type: index$1.FilterUserConfigTypes.DECIMAL,
|
94
|
+
expression: "Financeiro.CODBCO",
|
95
|
+
operand: index$1.FilterOperand.EQUAL,
|
96
|
+
paramVariable: false,
|
97
|
+
value: "61",
|
98
|
+
systemConfig: null,
|
99
|
+
userConfig: null
|
100
|
+
};
|
101
|
+
this.handleFilterItemChange = (changes) => {
|
102
|
+
console.log("Campo do ExpressionItem alterado");
|
103
|
+
console.log(changes);
|
104
|
+
};
|
105
|
+
this.handleFilterItemRemove = (expression) => {
|
106
|
+
console.log("Event de deleção disparado");
|
107
|
+
console.log(expression);
|
108
|
+
};
|
109
|
+
this.messagesBuilder = undefined;
|
110
|
+
}
|
111
|
+
componentWillLoad() {
|
112
|
+
if (index$2.store.get("filterFieldsDataSource") == undefined) {
|
113
|
+
index$2.store.set("filterFieldsDataSource", this._dataSourceFetcher);
|
114
|
+
}
|
115
|
+
if (!this.messagesBuilder) {
|
116
|
+
const snkApp = core.ApplicationContext.getContextValue("__SNK__APPLICATION__");
|
117
|
+
this.messagesBuilder = snkApp === null || snkApp === void 0 ? void 0 : snkApp.messagesBuilder;
|
118
|
+
}
|
119
|
+
}
|
120
|
+
render() {
|
121
|
+
return (index.h(index.Host, null, index.h("div", null, index.h("snk-expression-item", { expression: this.items, canRemove: true, onEzFilterItemChange: (evt) => this.handleFilterItemChange(evt.detail), onEzFilterItemRemove: (evt) => this.handleFilterItemRemove(evt.detail), messagesBuilder: this.messagesBuilder }))));
|
122
|
+
}
|
123
|
+
};
|
124
|
+
SnkPersonalizedFilter.style = snkPersonalizedFilterCss;
|
125
|
+
|
126
|
+
exports.snk_personalized_filter = SnkPersonalizedFilter;
|
@@ -5,11 +5,12 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
5
|
const index = require('./index-21bd01e1.js');
|
6
6
|
const core = require('@sankhyalabs/core');
|
7
7
|
const constants = require('./constants-3787fa32.js');
|
8
|
-
const taskbarElements = require('./taskbar-elements-
|
8
|
+
const taskbarElements = require('./taskbar-elements-bc2598f9.js');
|
9
9
|
require('./DataFetcher-a9d0228f.js');
|
10
10
|
require('./pesquisa-fetcher-954b74c3.js');
|
11
11
|
const index$1 = require('./index-f400b1d6.js');
|
12
12
|
const taskbarProcessor = require('./taskbar-processor-bce3f499.js');
|
13
|
+
require('./index-de79181a.js');
|
13
14
|
require('./_commonjsHelpers-537d719a.js');
|
14
15
|
|
15
16
|
const snkSimpleBarCss = ".sc-snk-simple-bar-h{display:flex;height:100%;width:100%}.simple-bar__container.sc-snk-simple-bar{flex:1;display:flex;align-items:stretch;gap:var(--space--small)}.simple-bar__left-slot.sc-snk-simple-bar{min-width:280px;flex:1;display:flex;align-items:center}.simple-bar__right-slot.sc-snk-simple-bar{flex:1;display:flex;align-items:center;justify-content:flex-end}.simple-bar__column.sc-snk-simple-bar{flex:1;display:flex;flex-direction:column}";
|
@@ -5,8 +5,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
5
|
const index = require('./index-21bd01e1.js');
|
6
6
|
const core = require('@sankhyalabs/core');
|
7
7
|
const AuthorizationConfig = require('./AuthorizationConfig-79ffae4b.js');
|
8
|
-
const taskbarElements = require('./taskbar-elements-
|
8
|
+
const taskbarElements = require('./taskbar-elements-bc2598f9.js');
|
9
9
|
const index$1 = require('./index-f400b1d6.js');
|
10
|
+
require('./index-de79181a.js');
|
10
11
|
|
11
12
|
const snkTaskbarCss = ".sc-snk-taskbar-h{display:flex}";
|
12
13
|
|
@@ -0,0 +1,118 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const index = require('./index-21bd01e1.js');
|
4
|
+
const index$2 = require('./index-f400b1d6.js');
|
5
|
+
const index$1 = require('./index-de79181a.js');
|
6
|
+
|
7
|
+
exports.TaskbarElement = void 0;
|
8
|
+
(function (TaskbarElement) {
|
9
|
+
TaskbarElement["PREVIOUS"] = "PREVIOUS";
|
10
|
+
TaskbarElement["NEXT"] = "NEXT";
|
11
|
+
TaskbarElement["REFRESH"] = "REFRESH";
|
12
|
+
TaskbarElement["UPDATE"] = "UPDATE";
|
13
|
+
TaskbarElement["CLONE"] = "CLONE";
|
14
|
+
TaskbarElement["REMOVE"] = "REMOVE";
|
15
|
+
TaskbarElement["INSERT"] = "INSERT";
|
16
|
+
TaskbarElement["CANCEL"] = "CANCEL";
|
17
|
+
TaskbarElement["SAVE"] = "SAVE";
|
18
|
+
TaskbarElement["GRID_MODE"] = "GRID_MODE";
|
19
|
+
TaskbarElement["FORM_MODE"] = "FORM_MODE";
|
20
|
+
TaskbarElement["MORE_OPTIONS"] = "MORE_OPTIONS";
|
21
|
+
TaskbarElement["DIVIDER"] = "DIVIDER";
|
22
|
+
TaskbarElement["CONFIGURATOR"] = "CONFIGURATOR";
|
23
|
+
TaskbarElement["DATA_EXPORTER"] = "DATA_EXPORTER";
|
24
|
+
TaskbarElement["ATTACH"] = "ATTACH";
|
25
|
+
})(exports.TaskbarElement || (exports.TaskbarElement = {}));
|
26
|
+
exports.AuthorizationElements = void 0;
|
27
|
+
(function (AuthorizationElements) {
|
28
|
+
AuthorizationElements["UPDATE"] = "UPDATE";
|
29
|
+
AuthorizationElements["CLONE"] = "CLONE";
|
30
|
+
AuthorizationElements["REMOVE"] = "REMOVE";
|
31
|
+
AuthorizationElements["INSERT"] = "INSERT";
|
32
|
+
AuthorizationElements["CONFIGURATOR"] = "CONFIGURATOR";
|
33
|
+
})(exports.AuthorizationElements || (exports.AuthorizationElements = {}));
|
34
|
+
exports.VisibleWhenForbidden = void 0;
|
35
|
+
(function (VisibleWhenForbidden) {
|
36
|
+
VisibleWhenForbidden["CONFIGURATOR"] = "CONFIGURATOR";
|
37
|
+
})(exports.VisibleWhenForbidden || (exports.VisibleWhenForbidden = {}));
|
38
|
+
const buildCustomButton = (def, className, dataElementId, action, isEnabled) => {
|
39
|
+
const { hint, text, iconName } = def;
|
40
|
+
if (iconName) {
|
41
|
+
if (text) {
|
42
|
+
return iconTextButton(iconName, def.name, className, dataElementId, hint, text, action, isEnabled);
|
43
|
+
}
|
44
|
+
else {
|
45
|
+
return iconButton(iconName, def.name, className, dataElementId, hint, action, isEnabled);
|
46
|
+
}
|
47
|
+
}
|
48
|
+
else {
|
49
|
+
return textButton(def.name, className, dataElementId, text, hint, action, isEnabled);
|
50
|
+
}
|
51
|
+
};
|
52
|
+
const buildElem = (element, className, dataElementId, getTitle, action, isEnabled, actions, configName, presentationMode) => {
|
53
|
+
var _a;
|
54
|
+
const title = getTitle(element);
|
55
|
+
switch (element) {
|
56
|
+
case exports.TaskbarElement.PREVIOUS:
|
57
|
+
return iconButton("chevron-left", element, className, dataElementId, title, action, isEnabled);
|
58
|
+
case exports.TaskbarElement.NEXT:
|
59
|
+
return iconButton("chevron-right", element, className, dataElementId, title, action, isEnabled);
|
60
|
+
case exports.TaskbarElement.REFRESH:
|
61
|
+
return iconButton("sync", element, className, dataElementId, title, action, isEnabled);
|
62
|
+
case exports.TaskbarElement.UPDATE:
|
63
|
+
return iconButton("edit", element, className, dataElementId, title, action, isEnabled);
|
64
|
+
case exports.TaskbarElement.CLONE:
|
65
|
+
return iconButton("copy", element, className, dataElementId, title, action, isEnabled);
|
66
|
+
case exports.TaskbarElement.REMOVE:
|
67
|
+
return iconButton("delete", element, className, dataElementId, title, action, isEnabled);
|
68
|
+
case exports.TaskbarElement.INSERT:
|
69
|
+
if (presentationMode === index$2.PresentationMode.PRIMARY) {
|
70
|
+
return iconTextButton("plus", element, className, dataElementId, title, title, action, isEnabled);
|
71
|
+
}
|
72
|
+
else {
|
73
|
+
return iconButton("plus", element, className, dataElementId, title, action, isEnabled);
|
74
|
+
}
|
75
|
+
case exports.TaskbarElement.CANCEL:
|
76
|
+
return textButton(element, className, dataElementId, title, title, action, isEnabled);
|
77
|
+
case exports.TaskbarElement.SAVE:
|
78
|
+
if (presentationMode === index$2.PresentationMode.PRIMARY) {
|
79
|
+
return iconTextButton("save", element, className, dataElementId, title, title, action, isEnabled);
|
80
|
+
}
|
81
|
+
else {
|
82
|
+
return iconButton("save", element, className, dataElementId, title, action, isEnabled);
|
83
|
+
}
|
84
|
+
case exports.TaskbarElement.GRID_MODE:
|
85
|
+
return iconButton("table", element, className, dataElementId, title, action, isEnabled);
|
86
|
+
case exports.TaskbarElement.FORM_MODE:
|
87
|
+
return iconButton("list", element, className, dataElementId, title, action, isEnabled);
|
88
|
+
case exports.TaskbarElement.CONFIGURATOR:
|
89
|
+
return iconButton("settings-inverted", element, className, dataElementId, title, action, isEnabled);
|
90
|
+
case exports.TaskbarElement.MORE_OPTIONS:
|
91
|
+
return actionButton(element, className, dataElementId, title, action, isEnabled, actions);
|
92
|
+
case exports.TaskbarElement.DIVIDER:
|
93
|
+
return index.h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-horizontal--medium", "data-taskbar-divider": true });
|
94
|
+
case exports.TaskbarElement.DATA_EXPORTER:
|
95
|
+
const provider = (_a = index$1.store.get("exporterProviders")) === null || _a === void 0 ? void 0 : _a[configName];
|
96
|
+
return index.h("snk-data-exporter", { class: className, provider: provider, "data-element-id": dataElementId });
|
97
|
+
case exports.TaskbarElement.ATTACH:
|
98
|
+
return iconButton("anexo", element, className, dataElementId, title, action, isEnabled);
|
99
|
+
}
|
100
|
+
};
|
101
|
+
function textButton(name, className, dataElementId, text, title, action, isEnabled) {
|
102
|
+
return index.h("ez-button", { title: title, label: text, size: "small", class: className, "data-element-id": dataElementId, enabled: isEnabled(name), onClick: () => action(name) });
|
103
|
+
}
|
104
|
+
function iconButton(iconName, name, className, dataElementId, title, action, isEnabled) {
|
105
|
+
return index.h("ez-button", { title: title, mode: "icon", size: "small", class: className, "data-element-id": dataElementId, iconName: iconName, enabled: isEnabled(name), onClick: () => action(name) });
|
106
|
+
}
|
107
|
+
function iconTextButton(iconName, name, className, dataElementId, text, title, action, isEnabled) {
|
108
|
+
return index.h("ez-button", { title: title, label: text, size: "small", class: className, "data-element-id": dataElementId, enabled: isEnabled(name), onClick: () => action(name) },
|
109
|
+
index.h("ez-icon", { class: "ez-padding-right--small", slot: "leftIcon", iconName: iconName }));
|
110
|
+
}
|
111
|
+
function actionButton(element, className, dataElementId, title, action, isEnabled, actions) {
|
112
|
+
return actions && actions.length > 0
|
113
|
+
? index.h("ez-actions-button", { title: title, size: "small", "data-element-id": dataElementId, arrowActive: true, class: className, enabled: isEnabled(element), onEzAction: (evt) => action(evt.detail.value), actions: actions })
|
114
|
+
: undefined;
|
115
|
+
}
|
116
|
+
|
117
|
+
exports.buildCustomButton = buildCustomButton;
|
118
|
+
exports.buildElem = buildElem;
|
@@ -34,6 +34,8 @@
|
|
34
34
|
"./components/snk-grid/snk-grid.js",
|
35
35
|
"./components/snk-grid/subcomponents/snk-grid-config/snk-grid-config.js",
|
36
36
|
"./components/snk-grid/subcomponents/snk-select-box/snk-select-box.js",
|
37
|
+
"./components/snk-personalized-filter/snk-personalized-filter.js",
|
38
|
+
"./components/snk-personalized-filter/subcomponents/snk-expression-item/snk-expression-item.js",
|
37
39
|
"./components/snk-personalized-filter/subcomponents/snk-filter-param-config/snk-filter-param-config.js",
|
38
40
|
"./components/snk-pesquisa/snk-pesquisa.js",
|
39
41
|
"./components/snk-simple-bar/snk-simple-bar.js",
|
@@ -6,61 +6,63 @@ const SNK_CONTEXT_KEY = "__SNK__APPLICATION__";
|
|
6
6
|
export class SnkFilterFieldSearch {
|
7
7
|
constructor() {
|
8
8
|
this._filterMetadataStorage = new Map();
|
9
|
-
this.
|
9
|
+
this._currentMetadata = null;
|
10
10
|
this._filterText = "";
|
11
11
|
this._isLoading = false;
|
12
12
|
this.searchable = true;
|
13
|
+
this.fieldsDataSource = undefined;
|
13
14
|
this.breadcrumbItems = [];
|
14
15
|
this.linkItems = [];
|
15
16
|
this.fieldItems = [];
|
16
17
|
}
|
17
18
|
/**
|
18
|
-
*
|
19
|
-
*
|
20
|
-
*
|
21
|
-
|
22
|
-
* @throws {Error} - Quando o link atual não for do tipo link.
|
23
|
-
*/
|
24
|
-
async setDataSource(currentLink, fetchData) {
|
19
|
+
* Realiza a abertura do componente e faz a primeira carga
|
20
|
+
* de dados.
|
21
|
+
* */
|
22
|
+
async show() {
|
25
23
|
var _a;
|
24
|
+
(_a = this._ezPopover) === null || _a === void 0 ? void 0 : _a.show();
|
25
|
+
return this.loadData();
|
26
|
+
}
|
27
|
+
/**
|
28
|
+
* Filtra a fonte de dados do componente.
|
29
|
+
* @param {string} filterText - Texto para filtrar a fonte de dados.
|
30
|
+
* @throws {Error} - Quando o componente estiver com a propriedade searchable como true.
|
31
|
+
*/
|
32
|
+
async applyFilter(filterText) {
|
33
|
+
if (this.searchable)
|
34
|
+
throw new Error('This method is not available when searchable is true');
|
35
|
+
this.handleFilterChange(filterText);
|
36
|
+
}
|
37
|
+
async loadData() {
|
26
38
|
this._isLoading = true;
|
27
|
-
let metadata
|
39
|
+
let metadata;
|
40
|
+
if (this._currentLink != undefined) {
|
41
|
+
metadata = this._filterMetadataStorage.get(this._currentLink.uri);
|
42
|
+
}
|
28
43
|
if (!metadata) {
|
29
|
-
metadata = await fetchData(
|
30
|
-
this.
|
44
|
+
metadata = await this.fieldsDataSource.fetchData(this._currentLink);
|
45
|
+
this._currentLink = metadata.currentLink;
|
46
|
+
this._filterMetadataStorage.set(this._currentLink.uri, metadata);
|
31
47
|
}
|
32
48
|
const { fields, links } = metadata || {};
|
33
49
|
if (!Array.isArray(fields) || !Array.isArray(links))
|
34
50
|
throw new Error('Invalid metadata');
|
35
|
-
|
36
|
-
throw new Error('The current link must be a link type');
|
37
|
-
this._dataSource = metadata;
|
38
|
-
this._currentLink = currentLink;
|
51
|
+
this._currentMetadata = metadata;
|
39
52
|
this.mapDataSourceToLinkItems();
|
40
53
|
this.mapDataSourceToFieldItems();
|
41
54
|
this._isLoading = false;
|
42
|
-
(_a = this._ezPopover) === null || _a === void 0 ? void 0 : _a.show();
|
43
55
|
this._ezFieldList.scrollToTop();
|
44
56
|
this._ezLinkList.scrollToTop();
|
45
57
|
}
|
46
|
-
/**
|
47
|
-
* Filtra a fonte de dados do componente.
|
48
|
-
* @param {string} filterText - Texto para filtrar a fonte de dados.
|
49
|
-
* @throws {Error} - Quando o componente estiver com a propriedade searchable como true.
|
50
|
-
*/
|
51
|
-
async filterDataSource(filterText) {
|
52
|
-
if (this.searchable)
|
53
|
-
throw new Error('This method is not available when searchable is true');
|
54
|
-
this.handleFilterChange(filterText);
|
55
|
-
}
|
56
58
|
mapDataSourceToLinkItems() {
|
57
59
|
var _a;
|
58
|
-
const { links } = this.
|
60
|
+
const { links } = this._currentMetadata;
|
59
61
|
const filterLinkLabelMessage = this.getMessage('snkFilterFieldSearch.linkLabel', { link: (_a = this._currentLink) === null || _a === void 0 ? void 0 : _a.description });
|
60
62
|
const items = links.map(link => (Object.assign({ label: link.description }, link)));
|
61
63
|
this.linkItems = [{
|
62
64
|
group: filterLinkLabelMessage,
|
63
|
-
items
|
65
|
+
items,
|
64
66
|
}];
|
65
67
|
if (this.breadcrumbItems.length === 0) {
|
66
68
|
this.breadcrumbItems = [Object.assign({ id: JSUtils.generateUUID(), label: this._currentLink.description }, this._currentLink)];
|
@@ -68,7 +70,7 @@ export class SnkFilterFieldSearch {
|
|
68
70
|
}
|
69
71
|
mapDataSourceToFieldItems() {
|
70
72
|
var _a;
|
71
|
-
const { fields } = this.
|
73
|
+
const { fields } = this._currentMetadata;
|
72
74
|
const filterFieldLabelMessage = this.getMessage('snkFilterFieldSearch.fieldLabel', { link: (_a = this._currentLink) === null || _a === void 0 ? void 0 : _a.description });
|
73
75
|
const filteredFields = fields.filter(field => {
|
74
76
|
if (!this._currentLink)
|
@@ -100,7 +102,10 @@ export class SnkFilterFieldSearch {
|
|
100
102
|
else {
|
101
103
|
this.breadcrumbItems = [...this.breadcrumbItems, Object.assign({ id: JSUtils.generateUUID(), label: item.description }, item)];
|
102
104
|
}
|
103
|
-
|
105
|
+
const selectedItem = Object.assign(Object.assign({}, item), { type: SelectedItemType.LINK });
|
106
|
+
this._currentLink = selectedItem;
|
107
|
+
this.ezSelectFilterItem.emit(selectedItem);
|
108
|
+
this.loadData();
|
104
109
|
}
|
105
110
|
handleSelectField({ detail: item }) {
|
106
111
|
var _a;
|
@@ -141,7 +146,7 @@ export class SnkFilterFieldSearch {
|
|
141
146
|
render() {
|
142
147
|
var _a;
|
143
148
|
const searchLabelMessage = this.getMessage('snkFilterFieldSearch.searchLabel');
|
144
|
-
return (h("ez-popover", Object.assign({ ref: (el) => this._ezPopover = el, role: "dialog", "aria-hidden": !((_a = this._ezPopover) === null || _a === void 0 ? void 0 : _a.opened) }, this.getElementID('EzPopover')), h("div", { class: "snk-filter-field-search__container" }, h("header", { class: "snk-filter-field-search__header" }, this.searchable && !!searchLabelMessage && (h("ez-filter-input", Object.assign({ class: "snk-filter-field-search__input", label: searchLabelMessage, asyncSearch: true, canShowError: false, onEzSearching: (event) => this.handleFilterChange.bind(this)(event.detail), "aria-label": searchLabelMessage, "aria-required": "false", "aria-invalid": "false" }, this.getElementID('EzFilterInput')))), this.breadcrumbItems.length > 0 && (h("ez-breadcrumb", Object.assign({ items: this.breadcrumbItems, onSelectedItem: this.handleSelectLink.bind(this), role: "navigation", "aria-current": "step" }, this.getElementID('EzBreadcrumb')))), h("hr", { class: "ez-divider-horizontal ez-margin-vertical--medium" })), h("section", { class: "snk-filter-field-search__section" }, h("ez-list", Object.assign({ ref: (el) => this._ezLinkList = el, class: "snk-filter-field-search__list", id: "filterLinkList", useGroups: true, dataSource: this.linkItems, onEzSelectItem: this.handleSelectLink.bind(this), hoverFeedback: true, ezSelectable: true, itemSlotBuilder: ({ fieldCount }) => h("ez-badge", { label: fieldCount }), "aria-describedby": "filterLinkLabel" }, this.getElementID('EzListLinks'))), h("ez-list", Object.assign({ ref: (el) => this._ezFieldList = el, class: "snk-filter-field-search__list", id: "filterFieldList", useGroups: true, dataSource: this.fieldItems, onEzSelectItem: this.handleSelectField.bind(this), hoverFeedback: true, ezSelectable: true, itemSlotBuilder: ListItem, "aria-describedby": "filterFieldLabel" }, this.getElementID('EzListFields')))))));
|
149
|
+
return (h("ez-popover", Object.assign({ ref: (el) => this._ezPopover = el, role: "dialog", overlayType: "none", "aria-hidden": !((_a = this._ezPopover) === null || _a === void 0 ? void 0 : _a.opened) }, this.getElementID('EzPopover')), h("div", { class: "snk-filter-field-search__container" }, h("header", { class: "snk-filter-field-search__header" }, this.searchable && !!searchLabelMessage && (h("ez-filter-input", Object.assign({ class: "snk-filter-field-search__input", label: searchLabelMessage, asyncSearch: true, canShowError: false, onEzSearching: (event) => this.handleFilterChange.bind(this)(event.detail), "aria-label": searchLabelMessage, "aria-required": "false", "aria-invalid": "false" }, this.getElementID('EzFilterInput')))), this.breadcrumbItems.length > 0 && (h("ez-breadcrumb", Object.assign({ items: this.breadcrumbItems, onSelectedItem: this.handleSelectLink.bind(this), role: "navigation", "aria-current": "step" }, this.getElementID('EzBreadcrumb')))), h("hr", { class: "ez-divider-horizontal ez-margin-vertical--medium" })), h("section", { class: "snk-filter-field-search__section" }, h("ez-list", Object.assign({ ref: (el) => this._ezLinkList = el, class: "snk-filter-field-search__list", id: "filterLinkList", useGroups: true, dataSource: this.linkItems, onEzSelectItem: this.handleSelectLink.bind(this), hoverFeedback: true, ezSelectable: true, itemSlotBuilder: ({ fieldCount }) => h("ez-badge", { label: fieldCount }), "aria-describedby": "filterLinkLabel" }, this.getElementID('EzListLinks'))), h("ez-list", Object.assign({ ref: (el) => this._ezFieldList = el, class: "snk-filter-field-search__list", id: "filterFieldList", useGroups: true, dataSource: this.fieldItems, onEzSelectItem: this.handleSelectField.bind(this), hoverFeedback: true, ezSelectable: true, itemSlotBuilder: ListItem, "aria-describedby": "filterFieldLabel" }, this.getElementID('EzListFields')))))));
|
145
150
|
}
|
146
151
|
static get is() { return "snk-filter-field-search"; }
|
147
152
|
static get encapsulation() { return "scoped"; }
|
@@ -174,6 +179,26 @@ export class SnkFilterFieldSearch {
|
|
174
179
|
"attribute": "searchable",
|
175
180
|
"reflect": false,
|
176
181
|
"defaultValue": "true"
|
182
|
+
},
|
183
|
+
"fieldsDataSource": {
|
184
|
+
"type": "unknown",
|
185
|
+
"mutable": false,
|
186
|
+
"complexType": {
|
187
|
+
"original": "FilterFieldsDataSource",
|
188
|
+
"resolved": "FilterFieldsDataSource",
|
189
|
+
"references": {
|
190
|
+
"FilterFieldsDataSource": {
|
191
|
+
"location": "import",
|
192
|
+
"path": "./interfaces"
|
193
|
+
}
|
194
|
+
}
|
195
|
+
},
|
196
|
+
"required": false,
|
197
|
+
"optional": false,
|
198
|
+
"docs": {
|
199
|
+
"tags": [],
|
200
|
+
"text": "Define a fonte de dados que o componente vai utilizar\npara carregamento dos campos."
|
201
|
+
}
|
177
202
|
}
|
178
203
|
};
|
179
204
|
}
|
@@ -216,55 +241,23 @@ export class SnkFilterFieldSearch {
|
|
216
241
|
}
|
217
242
|
static get methods() {
|
218
243
|
return {
|
219
|
-
"
|
244
|
+
"show": {
|
220
245
|
"complexType": {
|
221
|
-
"signature": "(
|
222
|
-
"parameters": [
|
223
|
-
"tags": [{
|
224
|
-
"name": "param",
|
225
|
-
"text": "currentLink - Link atual da entidade."
|
226
|
-
}],
|
227
|
-
"text": "- Link atual da entidade."
|
228
|
-
}, {
|
229
|
-
"tags": [{
|
230
|
-
"name": "param",
|
231
|
-
"text": "fetchData - callback que executa a busca de dados."
|
232
|
-
}],
|
233
|
-
"text": "- callback que executa a busca de dados."
|
234
|
-
}],
|
246
|
+
"signature": "() => Promise<void>",
|
247
|
+
"parameters": [],
|
235
248
|
"references": {
|
236
249
|
"Promise": {
|
237
250
|
"location": "global"
|
238
|
-
},
|
239
|
-
"IFilterLink": {
|
240
|
-
"location": "import",
|
241
|
-
"path": "./interfaces"
|
242
|
-
},
|
243
|
-
"DataFetcher": {
|
244
|
-
"location": "import",
|
245
|
-
"path": "./interfaces"
|
246
251
|
}
|
247
252
|
},
|
248
253
|
"return": "Promise<void>"
|
249
254
|
},
|
250
255
|
"docs": {
|
251
|
-
"text": "
|
252
|
-
"tags": [
|
253
|
-
"name": "param",
|
254
|
-
"text": "currentLink - Link atual da entidade."
|
255
|
-
}, {
|
256
|
-
"name": "param",
|
257
|
-
"text": "fetchData - callback que executa a busca de dados."
|
258
|
-
}, {
|
259
|
-
"name": "throws",
|
260
|
-
"text": "{Error} - Quando os metadados n\u00E3o forem v\u00E1lidos."
|
261
|
-
}, {
|
262
|
-
"name": "throws",
|
263
|
-
"text": "{Error} - Quando o link atual n\u00E3o for do tipo link."
|
264
|
-
}]
|
256
|
+
"text": "Realiza a abertura do componente e faz a primeira carga \nde dados.",
|
257
|
+
"tags": []
|
265
258
|
}
|
266
259
|
},
|
267
|
-
"
|
260
|
+
"applyFilter": {
|
268
261
|
"complexType": {
|
269
262
|
"signature": "(filterText: string) => Promise<void>",
|
270
263
|
"parameters": [{
|
@@ -0,0 +1,87 @@
|
|
1
|
+
import { h, Host } from '@stencil/core';
|
2
|
+
import PersonalizedFilterFetcher from "../../lib/http/data-fetcher/fetchers/personalized-filter-fetcher";
|
3
|
+
import { FilterOperand, FilterUserConfigTypes } from "../../lib/@types";
|
4
|
+
import store from '../../lib/store';
|
5
|
+
import { ApplicationContext, StringUtils } from '@sankhyalabs/core';
|
6
|
+
export class SnkPersonalizedFilter {
|
7
|
+
constructor() {
|
8
|
+
this._personalizedFilterFetcher = new PersonalizedFilterFetcher();
|
9
|
+
this._dataSourceFetcher = {
|
10
|
+
fetchData: async (entity) => {
|
11
|
+
let entityURI = entity === null || entity === void 0 ? void 0 : entity.uri;
|
12
|
+
if (StringUtils.isEmpty(entityURI)) {
|
13
|
+
entityURI = "dd://Financeiro/br.com.sankhya.fin.cad.receber"; //TODO: Receber como prop
|
14
|
+
}
|
15
|
+
return await this._personalizedFilterFetcher.loadFields(entityURI);
|
16
|
+
}
|
17
|
+
};
|
18
|
+
this.items = {
|
19
|
+
entityName: "Financeiro",
|
20
|
+
fieldName: "CODBCO",
|
21
|
+
description: "Financeiro >> Banco",
|
22
|
+
type: FilterUserConfigTypes.DECIMAL,
|
23
|
+
expression: "Financeiro.CODBCO",
|
24
|
+
operand: FilterOperand.EQUAL,
|
25
|
+
paramVariable: false,
|
26
|
+
value: "61",
|
27
|
+
systemConfig: null,
|
28
|
+
userConfig: null
|
29
|
+
};
|
30
|
+
this.handleFilterItemChange = (changes) => {
|
31
|
+
console.log("Campo do ExpressionItem alterado");
|
32
|
+
console.log(changes);
|
33
|
+
};
|
34
|
+
this.handleFilterItemRemove = (expression) => {
|
35
|
+
console.log("Event de deleção disparado");
|
36
|
+
console.log(expression);
|
37
|
+
};
|
38
|
+
this.messagesBuilder = undefined;
|
39
|
+
}
|
40
|
+
componentWillLoad() {
|
41
|
+
if (store.get("filterFieldsDataSource") == undefined) {
|
42
|
+
store.set("filterFieldsDataSource", this._dataSourceFetcher);
|
43
|
+
}
|
44
|
+
if (!this.messagesBuilder) {
|
45
|
+
const snkApp = ApplicationContext.getContextValue("__SNK__APPLICATION__");
|
46
|
+
this.messagesBuilder = snkApp === null || snkApp === void 0 ? void 0 : snkApp.messagesBuilder;
|
47
|
+
}
|
48
|
+
}
|
49
|
+
render() {
|
50
|
+
return (h(Host, null, h("div", null, h("snk-expression-item", { expression: this.items, canRemove: true, onEzFilterItemChange: (evt) => this.handleFilterItemChange(evt.detail), onEzFilterItemRemove: (evt) => this.handleFilterItemRemove(evt.detail), messagesBuilder: this.messagesBuilder }))));
|
51
|
+
}
|
52
|
+
static get is() { return "snk-personalized-filter"; }
|
53
|
+
static get originalStyleUrls() {
|
54
|
+
return {
|
55
|
+
"$": ["snk-personalized-filter.css"]
|
56
|
+
};
|
57
|
+
}
|
58
|
+
static get styleUrls() {
|
59
|
+
return {
|
60
|
+
"$": ["snk-personalized-filter.css"]
|
61
|
+
};
|
62
|
+
}
|
63
|
+
static get properties() {
|
64
|
+
return {
|
65
|
+
"messagesBuilder": {
|
66
|
+
"type": "unknown",
|
67
|
+
"mutable": true,
|
68
|
+
"complexType": {
|
69
|
+
"original": "SnkMessageBuilder",
|
70
|
+
"resolved": "SnkMessageBuilder",
|
71
|
+
"references": {
|
72
|
+
"SnkMessageBuilder": {
|
73
|
+
"location": "import",
|
74
|
+
"path": "../../lib/message/SnkMessageBuilder"
|
75
|
+
}
|
76
|
+
}
|
77
|
+
},
|
78
|
+
"required": false,
|
79
|
+
"optional": false,
|
80
|
+
"docs": {
|
81
|
+
"tags": [],
|
82
|
+
"text": "Respons\u00E1vel por flexibilizar e padronizar o uso de mensagens nos blocos de constru\u00E7\u00E3o."
|
83
|
+
}
|
84
|
+
}
|
85
|
+
};
|
86
|
+
}
|
87
|
+
}
|