@sankhyalabs/sankhyablocks 1.4.0-beta.1 → 1.4.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/dist/cjs/{SnkMessageBuilder-7717f1e4.js → SnkMessageBuilder-d8215915.js} +14 -119
  2. package/dist/cjs/{filter-item-type.enum-e2e1bc5b.js → filter-item-type.enum-3daf58d3.js} +2 -0
  3. package/dist/cjs/{index-b0b676c5.js → index-6fcf07f3.js} +159 -1515
  4. package/dist/cjs/loader.cjs.js +2 -18
  5. package/dist/cjs/sankhyablocks.cjs.js +4 -116
  6. package/dist/cjs/snk-application.cjs.entry.js +84 -230
  7. package/dist/cjs/snk-crud.cjs.entry.js +3 -3
  8. package/dist/cjs/snk-data-unit.cjs.entry.js +24 -32
  9. package/dist/cjs/snk-filter-bar_5.cjs.entry.js +902 -0
  10. package/dist/cjs/snk-filter-binary-select.cjs.entry.js +2 -2
  11. package/dist/cjs/snk-filter-detail.cjs.entry.js +38 -3
  12. package/dist/cjs/snk-filter-multi-select.cjs.entry.js +2 -2
  13. package/dist/cjs/snk-filter-number.cjs.entry.js +2 -2
  14. package/dist/cjs/snk-filter-period.cjs.entry.js +2 -2
  15. package/dist/cjs/snk-filter-personalized.cjs.entry.js +90 -0
  16. package/dist/cjs/snk-filter-search.cjs.entry.js +4 -4
  17. package/dist/cjs/snk-filter-text.cjs.entry.js +1 -1
  18. package/dist/cjs/{snk-form.cjs.entry.js → snk-form_2.cjs.entry.js} +119 -5
  19. package/dist/cjs/snk-pesquisa.cjs.entry.js +5 -5
  20. package/dist/cjs/{taskbar-elements-283c737e.js → taskbar-elements-aedfeae6.js} +1 -1
  21. package/dist/cjs/teste-pesquisa.cjs.entry.js +5 -5
  22. package/dist/collection/collection-manifest.json +2 -0
  23. package/dist/collection/components/snk-application/snk-application.js +54 -7
  24. package/dist/collection/components/snk-crud/snk-crud.js +2 -4
  25. package/dist/collection/components/snk-data-unit/snk-data-unit.js +0 -27
  26. package/dist/collection/components/snk-filter-bar/filter-item/dataunitfilter/data-unit-filter-builder.js +100 -0
  27. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-personalized.js +161 -0
  28. package/dist/collection/components/snk-filter-bar/filter-item/filter-item-type.enum.js +2 -0
  29. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-detail.js +36 -1
  30. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.js +32 -9
  31. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.js +196 -0
  32. package/dist/collection/components/snk-filter-bar/snk-filter-bar.css +22 -0
  33. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +238 -139
  34. package/dist/collection/components/snk-grid/snk-grid.js +2 -4
  35. package/dist/collection/lib/http/data-fetcher/fetchers/filter-bar-config-fetcher.js +18 -10
  36. package/dist/collection/lib/message/resources/snk-filter-bar.msg.js +14 -2
  37. package/dist/components/SnkMessageBuilder.js +15 -119
  38. package/dist/components/filter-item-type.enum.js +2 -0
  39. package/dist/components/index.d.ts +2 -0
  40. package/dist/components/index.js +2 -4
  41. package/dist/components/snk-application2.js +47 -191
  42. package/dist/components/snk-crud.js +16 -10
  43. package/dist/components/snk-data-unit.js +3 -12
  44. package/dist/components/snk-filter-bar2.js +342 -146
  45. package/dist/components/snk-filter-detail2.js +36 -1
  46. package/dist/components/snk-filter-item2.js +33 -10
  47. package/dist/components/snk-filter-list2.js +1 -1
  48. package/dist/components/snk-filter-modal.d.ts +11 -0
  49. package/dist/components/snk-filter-modal.js +6 -0
  50. package/dist/components/snk-filter-modal2.js +58 -0
  51. package/dist/components/snk-filter-personalized.d.ts +11 -0
  52. package/dist/components/snk-filter-personalized.js +108 -0
  53. package/dist/components/snk-filter-search.js +1 -1
  54. package/dist/components/snk-form2.js +1 -1
  55. package/dist/components/snk-grid2.js +16 -10
  56. package/dist/components/snk-pesquisa2.js +1 -1
  57. package/dist/components/snk-taskbar2.js +1 -1
  58. package/dist/components/teste-pesquisa.js +1 -1
  59. package/dist/{sankhyablocks/SnkMessageBuilder-a7da466b.js → esm/SnkMessageBuilder-35a20271.js} +15 -119
  60. package/dist/esm/{filter-item-type.enum-61fbf80a.js → filter-item-type.enum-a79b2fa8.js} +2 -0
  61. package/dist/{sankhyablocks/index-2b4d2d14.js → esm/index-81dda3cf.js} +160 -1508
  62. package/dist/esm/loader.js +2 -18
  63. package/dist/esm/sankhyablocks.js +4 -116
  64. package/dist/esm/snk-application.entry.js +46 -192
  65. package/dist/esm/snk-crud.entry.js +2 -2
  66. package/dist/esm/snk-data-unit.entry.js +4 -12
  67. package/dist/esm/snk-filter-bar_5.entry.js +894 -0
  68. package/dist/esm/snk-filter-binary-select.entry.js +2 -2
  69. package/dist/esm/snk-filter-detail.entry.js +38 -3
  70. package/dist/esm/snk-filter-multi-select.entry.js +2 -2
  71. package/dist/esm/snk-filter-number.entry.js +2 -2
  72. package/dist/esm/snk-filter-period.entry.js +2 -2
  73. package/dist/esm/snk-filter-personalized.entry.js +86 -0
  74. package/dist/esm/snk-filter-search.entry.js +3 -3
  75. package/dist/esm/snk-filter-text.entry.js +1 -1
  76. package/dist/esm/{snk-form.entry.js → snk-form_2.entry.js} +117 -4
  77. package/dist/esm/snk-pesquisa.entry.js +2 -2
  78. package/dist/{sankhyablocks/taskbar-elements-35d64ff9.js → esm/taskbar-elements-38eb5d51.js} +1 -1
  79. package/dist/esm/teste-pesquisa.entry.js +2 -2
  80. package/dist/sankhyablocks/index.esm.js +0 -1
  81. package/dist/sankhyablocks/p-0352c0e2.entry.js +1 -0
  82. package/dist/sankhyablocks/p-07ebda01.entry.js +1 -0
  83. package/dist/sankhyablocks/p-322c0df2.entry.js +1 -0
  84. package/dist/sankhyablocks/p-46caa101.entry.js +1 -0
  85. package/dist/sankhyablocks/p-473cedf9.entry.js +1 -0
  86. package/dist/sankhyablocks/p-586e2522.js +1 -0
  87. package/dist/sankhyablocks/p-86f15ffe.js +1 -0
  88. package/dist/sankhyablocks/p-8f3c5709.entry.js +1 -0
  89. package/dist/sankhyablocks/p-97009a2c.entry.js +1 -0
  90. package/dist/sankhyablocks/p-9be74b46.entry.js +74 -0
  91. package/dist/sankhyablocks/p-9dd2b8cb.js +1 -0
  92. package/dist/sankhyablocks/p-a8b59c61.entry.js +1 -0
  93. package/dist/sankhyablocks/p-aecf3e0a.entry.js +1 -0
  94. package/dist/sankhyablocks/p-c1c3b5d8.entry.js +1 -0
  95. package/dist/sankhyablocks/p-c78cb79a.entry.js +1 -0
  96. package/dist/sankhyablocks/p-c9eec639.entry.js +1 -0
  97. package/dist/sankhyablocks/p-dc482a42.entry.js +1 -0
  98. package/dist/sankhyablocks/p-fac2b6a9.js +2 -0
  99. package/dist/sankhyablocks/p-fb705f81.entry.js +1 -0
  100. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -129
  101. package/dist/types/components/snk-application/snk-application.d.ts +4 -1
  102. package/dist/types/components/snk-filter-bar/filter-item/dataunitfilter/data-unit-filter-builder.d.ts +4 -0
  103. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-personalized.d.ts +23 -0
  104. package/dist/types/components/snk-filter-bar/filter-item/filter-item-type.enum.d.ts +3 -1
  105. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-detail.d.ts +2 -0
  106. package/dist/types/components/snk-filter-bar/filter-modal/snk-filter-modal.d.ts +23 -0
  107. package/dist/types/components.d.ts +56 -8
  108. package/package.json +3 -3
  109. package/react/components.d.ts +19 -0
  110. package/react/components.js +19 -0
  111. package/react/components.js.map +1 -1
  112. package/dist/cjs/app-globals-3a1e7e63.js +0 -5
  113. package/dist/cjs/css-shim-b8158822.js +0 -6
  114. package/dist/cjs/dom-36862b77.js +0 -75
  115. package/dist/cjs/index-02201bc9.js +0 -2397
  116. package/dist/cjs/shadow-css-346c0795.js +0 -389
  117. package/dist/cjs/snk-filter-bar.cjs.entry.js +0 -278
  118. package/dist/cjs/snk-filter-item.cjs.entry.js +0 -154
  119. package/dist/cjs/snk-filter-list.cjs.entry.js +0 -91
  120. package/dist/cjs/snk-grid.cjs.entry.js +0 -79
  121. package/dist/cjs/snk-taskbar.cjs.entry.js +0 -160
  122. package/dist/cjs/taskbar-processor-6bd0d35c.js +0 -47
  123. package/dist/components/index2.js +0 -2384
  124. package/dist/esm/SnkMessageBuilder-a7da466b.js +0 -303
  125. package/dist/esm/app-globals-0f993ce5.js +0 -3
  126. package/dist/esm/css-shim-b3f2ee8d.js +0 -4
  127. package/dist/esm/dom-665d6011.js +0 -73
  128. package/dist/esm/index-2b4d2d14.js +0 -3262
  129. package/dist/esm/index-f1d3e4da.js +0 -2384
  130. package/dist/esm/shadow-css-b18e99d7.js +0 -387
  131. package/dist/esm/snk-filter-bar.entry.js +0 -274
  132. package/dist/esm/snk-filter-item.entry.js +0 -150
  133. package/dist/esm/snk-filter-list.entry.js +0 -87
  134. package/dist/esm/snk-grid.entry.js +0 -75
  135. package/dist/esm/snk-taskbar.entry.js +0 -156
  136. package/dist/esm/taskbar-elements-35d64ff9.js +0 -90
  137. package/dist/esm/taskbar-processor-aa6772c9.js +0 -45
  138. package/dist/sankhyablocks/app-globals-0f993ce5.js +0 -3
  139. package/dist/sankhyablocks/css-shim-b3f2ee8d.js +0 -4
  140. package/dist/sankhyablocks/dom-665d6011.js +0 -73
  141. package/dist/sankhyablocks/filter-item-type.enum-61fbf80a.js +0 -12
  142. package/dist/sankhyablocks/index-f1d3e4da.js +0 -2384
  143. package/dist/sankhyablocks/shadow-css-b18e99d7.js +0 -387
  144. package/dist/sankhyablocks/snk-application.entry.js +0 -8148
  145. package/dist/sankhyablocks/snk-crud.entry.js +0 -66
  146. package/dist/sankhyablocks/snk-data-unit.entry.js +0 -276
  147. package/dist/sankhyablocks/snk-filter-bar.entry.js +0 -274
  148. package/dist/sankhyablocks/snk-filter-binary-select.entry.js +0 -43
  149. package/dist/sankhyablocks/snk-filter-detail.entry.js +0 -45
  150. package/dist/sankhyablocks/snk-filter-item.entry.js +0 -150
  151. package/dist/sankhyablocks/snk-filter-list.entry.js +0 -87
  152. package/dist/sankhyablocks/snk-filter-multi-select.entry.js +0 -19
  153. package/dist/sankhyablocks/snk-filter-number.entry.js +0 -20
  154. package/dist/sankhyablocks/snk-filter-period.entry.js +0 -33
  155. package/dist/sankhyablocks/snk-filter-search.entry.js +0 -40
  156. package/dist/sankhyablocks/snk-filter-text.entry.js +0 -18
  157. package/dist/sankhyablocks/snk-form.entry.js +0 -129
  158. package/dist/sankhyablocks/snk-grid.entry.js +0 -75
  159. package/dist/sankhyablocks/snk-pesquisa.entry.js +0 -311
  160. package/dist/sankhyablocks/snk-taskbar.entry.js +0 -156
  161. package/dist/sankhyablocks/taskbar-processor-aa6772c9.js +0 -45
  162. package/dist/sankhyablocks/teste-pesquisa.entry.js +0 -33
  163. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +0 -51
@@ -1,5 +1,5 @@
1
- import { r as registerInstance, h, f as Host } from './index-2b4d2d14.js';
2
- import { F as FilterItemType } from './filter-item-type.enum-61fbf80a.js';
1
+ import { r as registerInstance, h, H as Host } from './index-81dda3cf.js';
2
+ import { F as FilterItemType } from './filter-item-type.enum-a79b2fa8.js';
3
3
 
4
4
  const SnkFilterBinarySelect = class {
5
5
  constructor(hostRef) {
@@ -1,5 +1,6 @@
1
- import { r as registerInstance, e as createEvent, h, f as Host } from './index-2b4d2d14.js';
2
- import { F as FilterItemType } from './filter-item-type.enum-61fbf80a.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host } from './index-81dda3cf.js';
2
+ import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
3
+ import { F as FilterItemType } from './filter-item-type.enum-a79b2fa8.js';
3
4
 
4
5
  const SnkFilterDetail = class {
5
6
  constructor(hostRef) {
@@ -21,6 +22,8 @@ const SnkFilterDetail = class {
21
22
  return "snk-filter-search";
22
23
  case FilterItemType.NUMBER:
23
24
  return "snk-filter-number";
25
+ case FilterItemType.PERSONALIZED:
26
+ return "snk-filter-personalized";
24
27
  }
25
28
  return "snk-filter-text";
26
29
  }
@@ -36,9 +39,41 @@ const SnkFilterDetail = class {
36
39
  h("ez-icon", { title: this.getMessage(this.config.fixed ? "snkFilterBar.unpinFilter" : "snkFilterBar.pinFilter"), class: "ez-margin-left--small sc-snk-filter-bar snk-filter-item__editor-header-button", iconName: this.config.fixed ? "un-pin" : "push-pin", onClick: () => this.changeConfig(Object.assign(Object.assign({}, this.config), { fixed: !this.config.fixed })) })
37
40
  ]);
38
41
  }
42
+ apply() {
43
+ var _a;
44
+ let isValid = true;
45
+ const value = this._editor["value"];
46
+ /* WARNING: Temporário. Isso só está sendo feito até desconsiderar os parametros não informados para PersonalizedFilter*/
47
+ if (value != undefined && this.config.type === FilterItemType.PERSONALIZED) {
48
+ const params = ((_a = this.config.props.personalizedFilter) === null || _a === void 0 ? void 0 : _a.parameters) || [];
49
+ if (params.length > 1) {
50
+ if (params.length > value.length) {
51
+ isValid = false;
52
+ }
53
+ else {
54
+ value.forEach(item => {
55
+ if (item == undefined) {
56
+ isValid = false;
57
+ }
58
+ });
59
+ }
60
+ }
61
+ if (!isValid) {
62
+ this.keepOpened = true;
63
+ ApplicationUtils.alert("Filtro parcialmente preenchido", "Favor completar todas as informações do filtro.").then(() => setTimeout(() => this.keepOpened = false, 1));
64
+ }
65
+ }
66
+ /* WARNING: Temporário.*/
67
+ if (isValid) {
68
+ this.changeConfig(Object.assign(Object.assign({}, this.config), { value: value }));
69
+ }
70
+ }
71
+ clear() {
72
+ this.changeConfig(Object.assign(Object.assign({}, this.config), { value: undefined }));
73
+ }
39
74
  render() {
40
75
  const ContentEditor = this.getContentEditor();
41
- return (h(Host, null, h("div", { class: "col ez-col--sd-12 ez-align--right ez-padding-medium ez-flex--align-items-center" }, h("div", { class: "ez-text ez-title ez-title--small ez-padding--small sc-snk-filter-bar snk-filter-item__editor-header" }, this.config.detailTitle), this.getPopUpHeaderButtons()), h(ContentEditor, { ref: ref => this._editor = ref, value: this.config.value, config: this.config, fix: () => this.keepOpened = true, unfix: () => this.keepOpened = false }), h("hr", { class: "sc-snk-filter-bar snk-filter__popover-rule" }), h("div", { class: "ez-col ez-col--sd-12 ez-align--right" }, h("ez-button", { label: this.getMessage("snkFilterBar.cleanFilter"), onClick: () => this.changeConfig(Object.assign(Object.assign({}, this.config), { value: undefined })) }), h("ez-button", { label: this.getMessage("snkFilterBar.applyFilter"), onClick: () => this.changeConfig(Object.assign(Object.assign({}, this.config), { value: this._editor["value"] })), class: "ez-button--primary ez-padding-left--medium" }))));
76
+ return (h(Host, null, h("div", { class: "col ez-col--sd-12 ez-align--right ez-padding-medium ez-flex--align-items-center" }, h("div", { class: "ez-text ez-title ez-title--small ez-padding--small sc-snk-filter-bar snk-filter-item__editor-header" }, this.config.detailTitle), this.getPopUpHeaderButtons()), h(ContentEditor, { ref: ref => this._editor = ref, value: this.config.value, config: this.config, fix: () => this.keepOpened = true, unfix: () => this.keepOpened = false }), h("hr", { class: "sc-snk-filter-bar snk-filter__popover-rule" }), h("div", { class: "ez-col ez-col--sd-12 ez-align--right" }, h("ez-button", { label: this.getMessage("snkFilterBar.cleanFilter"), onClick: () => this.clear(), size: "small" }), h("ez-button", { label: this.getMessage("snkFilterBar.applyFilter"), onClick: () => this.apply(), size: "small", class: "ez-button--primary ez-padding-left--medium" }))));
42
77
  }
43
78
  };
44
79
 
@@ -1,5 +1,5 @@
1
- import { r as registerInstance, h } from './index-2b4d2d14.js';
2
- import { F as FilterItemType } from './filter-item-type.enum-61fbf80a.js';
1
+ import { r as registerInstance, h } from './index-81dda3cf.js';
2
+ import { F as FilterItemType } from './filter-item-type.enum-a79b2fa8.js';
3
3
 
4
4
  const SnkFilterMultiSelect = class {
5
5
  constructor(hostRef) {
@@ -1,5 +1,5 @@
1
- import { r as registerInstance, h } from './index-2b4d2d14.js';
2
- import { F as FilterItemType } from './filter-item-type.enum-61fbf80a.js';
1
+ import { r as registerInstance, h } from './index-81dda3cf.js';
2
+ import { F as FilterItemType } from './filter-item-type.enum-a79b2fa8.js';
3
3
 
4
4
  const SnkFilterPeriod = class {
5
5
  constructor(hostRef) {
@@ -1,5 +1,5 @@
1
- import { r as registerInstance, h } from './index-2b4d2d14.js';
2
- import { F as FilterItemType } from './filter-item-type.enum-61fbf80a.js';
1
+ import { r as registerInstance, h } from './index-81dda3cf.js';
2
+ import { F as FilterItemType } from './filter-item-type.enum-a79b2fa8.js';
3
3
 
4
4
  const SnkFilterPeriod = class {
5
5
  constructor(hostRef) {
@@ -0,0 +1,86 @@
1
+ import { r as registerInstance, h, H as Host } from './index-81dda3cf.js';
2
+ import { UserInterface, ApplicationContext } from '@sankhyalabs/core';
3
+ import { convertType } from '@sankhyalabs/core/dist/dataunit/metadata/DataType';
4
+ import { F as FilterItemType } from './filter-item-type.enum-a79b2fa8.js';
5
+
6
+ const SnkFilterPersonalized = class {
7
+ constructor(hostRef) {
8
+ registerInstance(this, hostRef);
9
+ }
10
+ getValue(param, index) {
11
+ if (this.value && index >= 0 && index < this.value.length) {
12
+ const rawValue = this.value[index];
13
+ if (param.type === UserInterface.SEARCH) {
14
+ return rawValue;
15
+ }
16
+ return convertType(param.dataType, rawValue);
17
+ }
18
+ return undefined;
19
+ }
20
+ setValue(index, value) {
21
+ if (this.value == undefined) {
22
+ this.value = Array(index).fill(null);
23
+ }
24
+ else {
25
+ this.value = [...this.value];
26
+ }
27
+ this.value[index] = value;
28
+ if (this.value.filter(item => item != undefined).length == 0) {
29
+ this.value = null;
30
+ }
31
+ }
32
+ doSearch(mode, argument, param) {
33
+ const application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
34
+ if (this.fix) {
35
+ this.fix();
36
+ }
37
+ return new Promise((resolve, reject) => {
38
+ application.executePreparedSearch(mode, argument, param.searchContext)
39
+ .then(result => {
40
+ resolve(result);
41
+ if (this.unfix) {
42
+ this.unfix();
43
+ }
44
+ }).catch(reason => {
45
+ reject(reason);
46
+ if (this.unfix) {
47
+ this.unfix();
48
+ }
49
+ });
50
+ });
51
+ }
52
+ getParamsInterface() {
53
+ var _a, _b, _c;
54
+ const params = (_c = (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.props) === null || _b === void 0 ? void 0 : _b.personalizedFilter) === null || _c === void 0 ? void 0 : _c.parameters;
55
+ return params.map((param, index) => {
56
+ var _a;
57
+ switch (param.type) {
58
+ case UserInterface.SEARCH:
59
+ return h("ez-search", { suppressEmptyOption: true, value: this.getValue(param, index), onEzChange: evt => this.setValue(index, evt.detail), label: param.label, optionLoader: ({ mode, argument }) => this.doSearch(mode, argument, param) });
60
+ case UserInterface.SWITCH:
61
+ case UserInterface.CHECKBOX:
62
+ const mode = UserInterface.SWITCH === param.type ? "switch" : "regular";
63
+ return h("ez-check", { class: "ez-padding-bottom--medium", mode: mode, value: this.getValue(param, index), label: param.label, onEzChange: evt => this.setValue(index, evt.detail) });
64
+ case UserInterface.DECIMALNUMBER:
65
+ case UserInterface.INTEGERNUMBER:
66
+ return h("ez-number-input", { label: param.label, value: this.getValue(param, index), precision: (_a = param.props) === null || _a === void 0 ? void 0 : _a.precision, onEzChange: evt => this.setValue(index, evt.detail) });
67
+ case UserInterface.OPTIONSELECTOR:
68
+ return h("ez-combo-box", { label: param.label, value: this.getValue(param, index), options: param.options, onEzChange: evt => { var _a; return this.setValue(index, (_a = evt.detail) === null || _a === void 0 ? void 0 : _a.value); } });
69
+ case UserInterface.DATE:
70
+ return h("ez-date-input", { label: param.label, value: this.getValue(param, index), onEzChange: evt => this.setValue(index, evt.detail) });
71
+ case UserInterface.DATETIME:
72
+ return h("ez-date-time-input", { label: param.label, value: this.getValue(param, index), onEzChange: evt => this.setValue(index, evt.detail) });
73
+ default:
74
+ return h("ez-text-input", { label: param.label, value: this.getValue(param, index), onEzChange: evt => this.setValue(index, evt.detail) });
75
+ }
76
+ });
77
+ }
78
+ render() {
79
+ if (!this.config || this.config.type !== FilterItemType.PERSONALIZED) {
80
+ return undefined;
81
+ }
82
+ return (h(Host, null, this.getParamsInterface()));
83
+ }
84
+ };
85
+
86
+ export { SnkFilterPersonalized as snk_filter_personalized };
@@ -1,6 +1,6 @@
1
- import { r as registerInstance, h } from './index-2b4d2d14.js';
2
- import { A as ApplicationContext } from './index-f1d3e4da.js';
3
- import { F as FilterItemType } from './filter-item-type.enum-61fbf80a.js';
1
+ import { r as registerInstance, h } from './index-81dda3cf.js';
2
+ import { ApplicationContext } from '@sankhyalabs/core';
3
+ import { F as FilterItemType } from './filter-item-type.enum-a79b2fa8.js';
4
4
 
5
5
  const SnkFilterSearch = class {
6
6
  constructor(hostRef) {
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, h } from './index-2b4d2d14.js';
1
+ import { r as registerInstance, h } from './index-81dda3cf.js';
2
2
 
3
3
  const SnkFilterText = class {
4
4
  constructor(hostRef) {
@@ -1,6 +1,50 @@
1
- import { r as registerInstance, e as createEvent, h, g as getElement } from './index-2b4d2d14.js';
2
- import { A as ApplicationContext } from './index-f1d3e4da.js';
3
- import { T as TaskbarProcessor } from './taskbar-processor-aa6772c9.js';
1
+ import { r as registerInstance, c as createEvent, h, g as getElement } from './index-81dda3cf.js';
2
+ import { ApplicationContext } from '@sankhyalabs/core';
3
+ import { T as TaskbarElement } from './taskbar-elements-38eb5d51.js';
4
+
5
+ class TaskbarProcessor {
6
+ constructor(defaultButtons) {
7
+ this._defaultButtons = defaultButtons;
8
+ }
9
+ process(taskbarId, taskbarManager, dataState, disabledButtons = []) {
10
+ var _a;
11
+ this.customButtons = new Map();
12
+ this.buttons = "";
13
+ this.disabledButtons = [];
14
+ (_a = this.getButtonsArray(taskbarId, taskbarManager, dataState)) === null || _a === void 0 ? void 0 : _a.forEach(btnDef => {
15
+ let buttonName;
16
+ if (typeof btnDef === "string") {
17
+ buttonName = btnDef;
18
+ }
19
+ else {
20
+ const customBtn = btnDef;
21
+ this.customButtons.set(customBtn.name, customBtn);
22
+ buttonName = customBtn.name;
23
+ }
24
+ if (!this.isEnabled(taskbarId, taskbarManager, buttonName, dataState, disabledButtons)) {
25
+ this.disabledButtons.push(buttonName);
26
+ }
27
+ if (this.buttons.length > 0) {
28
+ this.buttons += ",";
29
+ }
30
+ this.buttons += buttonName;
31
+ });
32
+ }
33
+ getButtonsArray(taskbarId, taskbarManager, dataState) {
34
+ const defaults = this._defaultButtons[taskbarId];
35
+ if (taskbarManager) {
36
+ return taskbarManager.getButtons(taskbarId, dataState, [...defaults]);
37
+ }
38
+ return defaults;
39
+ }
40
+ isEnabled(taskbarId, taskbarManager, buttonName, dataState, disabled) {
41
+ const originalValue = disabled.includes(buttonName) ? false : true;
42
+ if (taskbarManager && taskbarManager.isEnabled) {
43
+ return taskbarManager.isEnabled(taskbarId, dataState, buttonName, originalValue);
44
+ }
45
+ return originalValue;
46
+ }
47
+ }
4
48
 
5
49
  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
50
 
@@ -126,4 +170,73 @@ const SnkForm = class {
126
170
  };
127
171
  SnkForm.style = snkFormCss;
128
172
 
129
- export { SnkForm as snk_form };
173
+ 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)}";
174
+
175
+ const SnkGrid = class {
176
+ constructor(hostRef) {
177
+ registerInstance(this, hostRef);
178
+ this.actionClick = createEvent(this, "actionClick", 7);
179
+ this.gridDoubleClick = createEvent(this, "gridDoubleClick", 7);
180
+ this._topTaskbarProcessor = new TaskbarProcessor({
181
+ "snkGridTopTaskbar": ["FORM_MODE", "CONFIG_GRID", "INSERT"]
182
+ });
183
+ this._headerTaskbarProcessor = new TaskbarProcessor({
184
+ "snkGridHeaderTaskbar.unselected": ["REFRESH"],
185
+ "snkGridHeaderTaskbar.selected": ["UPDATE", "CLONE", "REMOVE", "MORE_OPTIONS", "DIVIDER", "REFRESH"]
186
+ });
187
+ }
188
+ actionClickHandler(evt) {
189
+ if (evt.detail === TaskbarElement.CONFIG_GRID && this._grid) {
190
+ this._grid.openGridConfig();
191
+ }
192
+ }
193
+ saveConfig(config) {
194
+ const snkApplication = ApplicationContext.getContextValue("__SNK__APPLICATION__");
195
+ if (snkApplication) {
196
+ snkApplication.saveGridConfig(config);
197
+ }
198
+ }
199
+ componentWillLoad() {
200
+ const snkApplication = ApplicationContext.getContextValue("__SNK__APPLICATION__");
201
+ if (snkApplication) {
202
+ snkApplication.loadGridConfig(this.configName).then(cfg => {
203
+ this._gridConfig = cfg;
204
+ this._configLoaded = true;
205
+ });
206
+ //Forçamos a carga dos acessos pra aproveitar a request inicial.
207
+ snkApplication.getAllAccess();
208
+ }
209
+ let parent = this._element.parentElement;
210
+ while (parent) {
211
+ if (parent.tagName.toUpperCase() === "SNK-DATA-UNIT") {
212
+ this._snkDataUnit = parent;
213
+ this._dataUnit = this._snkDataUnit.dataUnit;
214
+ if (!this._dataUnit) {
215
+ this._snkDataUnit.addEventListener("dataUnitReady", (evt) => {
216
+ this._dataUnit = evt.detail;
217
+ });
218
+ }
219
+ this._snkDataUnit.addEventListener("dataStateChange", (evt) => {
220
+ this._dataState = evt.detail;
221
+ });
222
+ break;
223
+ }
224
+ parent = parent.parentElement;
225
+ }
226
+ }
227
+ componentWillRender() {
228
+ const headerTaskbarId = this._dataState && this._dataState.selectedRecords.length > 0 ? "snkGridHeaderTaskbar.selected" : "snkGridHeaderTaskbar.unselected";
229
+ this._headerTaskbarProcessor.process(headerTaskbarId, this.taskbarManager, this._dataState);
230
+ this._topTaskbarProcessor.process("snkGridTopTaskbar", this.taskbarManager, this._dataState);
231
+ }
232
+ render() {
233
+ if (!this._configLoaded || !this._dataUnit) {
234
+ return undefined;
235
+ }
236
+ 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, 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", onActionClick: evt => this.actionClickHandler(evt), key: "topTaskbar", 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, dataUnit: this._dataUnit, key: "grid-" + this._snkDataUnit.entityName, config: this._gridConfig, onConfigChange: evt => { this.saveConfig(evt.detail); }, onEzDoubleClick: () => this.gridDoubleClick.emit(), statusResolver: this.statusResolver }, h("snk-taskbar", { dataUnit: this._dataUnit, 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" }))));
237
+ }
238
+ get _element() { return getElement(this); }
239
+ };
240
+ SnkGrid.style = snkGridCss;
241
+
242
+ export { SnkForm as snk_form, SnkGrid as snk_grid };
@@ -1,5 +1,5 @@
1
- import { r as registerInstance, h, f as Host } from './index-2b4d2d14.js';
2
- import { O as ObjectUtils, S as StringUtils } from './index-f1d3e4da.js';
1
+ import { r as registerInstance, h, H as Host } from './index-81dda3cf.js';
2
+ import { ObjectUtils, StringUtils } from '@sankhyalabs/core';
3
3
 
4
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
 
@@ -1,4 +1,4 @@
1
- import { h } from './index-2b4d2d14.js';
1
+ import { h } from './index-81dda3cf.js';
2
2
 
3
3
  var TaskbarElement;
4
4
  (function (TaskbarElement) {
@@ -1,5 +1,5 @@
1
- import { r as registerInstance, h } from './index-2b4d2d14.js';
2
- import { D as DataUnit, b as DataType, U as UserInterface } from './index-f1d3e4da.js';
1
+ import { r as registerInstance, h } from './index-81dda3cf.js';
2
+ import { DataUnit, DataType, UserInterface } from '@sankhyalabs/core';
3
3
 
4
4
  const testePesquisaCss = ":host{display:block}";
5
5
 
@@ -1 +0,0 @@
1
-
@@ -0,0 +1 @@
1
+ import{r as a,h as e}from"./p-fac2b6a9.js";import{DataUnit as r,DataType as o,UserInterface as i}from"@sankhyalabs/core";const s=class{constructor(e){a(this,e)}componentWillLoad(){this.dataUnit=new r("testes_com_formulario"),this.dataUnit.metadata={name:"dd://br.com.sankhya.fin.cad.movimentacaoFinanceira/Financeiro",label:"Parceiro",fields:[{name:"CODPARC",label:"Parceiro",dataType:o.NUMBER,userInterface:i.SEARCH,required:!0,properties:{ENTITYNAME:"Parceiro"}}]}}render(){return e("snk-application",null,e("ez-form",{dataUnit:this.dataUnit}))}};s.style=":host{display:block}";export{s as teste_pesquisa}
@@ -0,0 +1 @@
1
+ import{r as s,h as t,H as e}from"./p-fac2b6a9.js";import{F as i}from"./p-9dd2b8cb.js";const r=class{constructor(t){s(this,t)}isSelected(s){return null==this.value||this.value===s}ezChangeListener(s){s.detail||this.assertCheckedOption(s.target),this.updateValue()}assertCheckedOption(s){s===this._checkOne?this._checkTwo.value=!0:this._checkOne.value=!0}updateValue(){if(this._checkOne.value&&this._checkTwo.value)this.value=void 0;else{const[s,t]=this.config.props.options;this.value=this._checkOne.value?s.name:t.name}}render(){if(!this.config||this.config.type!==i.BINARY_SELECT)return;const[s,r]=this.config.props.options;return t(e,null,t("ez-check",{label:s.label,class:"sc-snk-filter-bar editor__ez-check",ref:s=>this._checkOne=s,value:this.isSelected(s.name)}),t("ez-check",{label:r.label,class:"sc-snk-filter-bar editor__ez-check",ref:s=>this._checkTwo=s,value:this.isSelected(r.name)}))}};export{r as snk_filter_binary_select}
@@ -0,0 +1 @@
1
+ import{r as t,c as i,h as s,g as a}from"./p-fac2b6a9.js";import{ApplicationContext as n}from"@sankhyalabs/core";const e=class{constructor(s){t(this,s),this.actionClick=i(this,"actionClick",7)}async gridToForm(t=!1){this._backToGrid=!t&&0===await this._viewStack.getSelectedIndex(),this._viewStack.show(1)}async executeAction(t){"GRID_MODE"===t?this._viewStack.show(0):"FORM_MODE"!==t&&"UPDATE"!==t||this.gridToForm("UPDATE"!==t)}insertionModeHandler(){this.gridToForm()}cancelHandler(){this._backToGrid&&this._viewStack.show(0)}componentWillLoad(){let t=this._element.parentElement;for(;t;){if("SNK-DATA-UNIT"===t.tagName.toUpperCase()){this._snkDataUnit=t,this._snkDataUnit.addEventListener("insertionMode",(()=>this.insertionModeHandler())),this._snkDataUnit.addEventListener("cancelEdition",(()=>this.cancelHandler())),this._dataUnit=this._snkDataUnit.dataUnit,this._dataState=this._snkDataUnit.dataState,this._dataUnit||this._snkDataUnit.addEventListener("dataUnitReady",(t=>{this._dataUnit=t.detail})),this._snkDataUnit.addEventListener("dataStateChange",(t=>{this._dataState=t.detail}));break}t=t.parentElement}if(!this.configName){const t=n.getContextValue("__SNK__APPLICATION__");this.configName=t.configName}}render(){return s("ez-view-stack",{ref:t=>this._viewStack=t},s("stack-item",null,s("snk-grid",{configName:this.configName,onGridDoubleClick:()=>this.gridToForm(!0),taskbarManager:this.taskbarManager,onActionClick:t=>this.executeAction(t.detail),actionsList:this.actionsList,statusResolver:this.statusResolver},s("slot",{name:"SnkGridHeader"}),s("slot",{name:"SnkGridFooter"}),s("slot",{name:"SnkGridTaskBar"}))),s("stack-item",null,s("snk-form",{configName:this.configName,actionsList:this.actionsList,onExit:()=>this._viewStack.show(0),recordsValidator:this.recordsValidator,taskbarManager:this.taskbarManager,onActionClick:t=>this.executeAction(t.detail)},s("slot",{name:"SnkFormTaskBar"}))))}get _element(){return a(this)}};e.style=".sc-snk-crud-h{display:flex;flex-direction:column;height:100%;width:100%}";export{e as snk_crud}
@@ -0,0 +1 @@
1
+ import{r as t,h as e}from"./p-fac2b6a9.js";const s=class{constructor(e){t(this,e)}ezChangeListener(t){this.value=t.detail}render(){if(this.config)return e("ez-text-input",{label:this.config.label,value:this.config.value})}};export{s as snk_filter_text}
@@ -0,0 +1 @@
1
+ import{r as s,h as t}from"./p-fac2b6a9.js";import{ApplicationContext as r}from"@sankhyalabs/core";import{F as i}from"./p-9dd2b8cb.js";const e=class{constructor(t){s(this,t)}ezChangeListener(s){this.value=this._searchInput.value}doSearch(s,t){const i=r.getContextValue("__SNK__APPLICATION__");return this.fix&&this.fix(),new Promise(((r,e)=>{i.executePreparedSearch(s,t,this.config.props.searchContext).then((s=>{r(s),this.unfix&&this.unfix()})).catch((s=>{e(s),this.unfix&&this.unfix()}))}))}render(){if(this.config&&this.config.type===i.SEARCH)return t("ez-search",{suppressEmptyOption:!0,value:this.config.value,label:this.config.label,ref:s=>this._searchInput=s,optionLoader:({mode:s,argument:t})=>this.doSearch(s,t)})}};export{e as snk_filter_search}
@@ -0,0 +1 @@
1
+ const e={saveInfo:{clone:"Duplicação realizada!",insert:"Inclusão realizada!",update:"Aleração realizada!"},cancelInfo:{clone:"Duplicação descartada!",insert:"A inclusão descartada!",update:"A edição foi descartada!"},removeInfo:"Registro removido com sucesso!",cancelConfirmationTitle:"Aviso",cancelConfirmation:"As alterações realizadas serão descartadas<br/><br/><b>Você realmente gostaria de cancelar?",removeConfirmationTitle:"Excluir",removeConfirmation:"Deseja realmente excluir o registro atual?",forbidden:"Sem permissão",forbiddenUpdate:"Não é possível fazer alterações. Verifique as permissões de acesso.",forbiddenInsert:"Não é possível incluir. Verifique as permissões de acesso.",forbiddenClone:"Não é possível duplicar. Verifique as permissões de acesso.",forbiddenRemove:"Não é possível remover. Verifique as permissões de acesso."},i={addFilter:"Adicionar filtro",pinFilter:"Fixar filtro",unpinFilter:"Desfixar filtro",removeFilter:"Remover filtro",cleanFilter:"Limpar",applyFilter:"Aplicar",findFilter:"Buscar filtros...",findField:"Buscar filtros...",modalFindFilter:"Buscar filtro",emptyFiltersList:"Não há filtros disponíveis",emptyAppliedFiltersList:"Não há filtros aplicados",customFilter:"Filtro personalizado",defaultFilter:"Filtro padrão",failToLoadConfig:"Falha ao buscar configuração de filtros",clearAllFilters:"Limpar todos os filtros",successfullyCleaned:"Filtro limpo com sucesso!",activeFilter:"{{ACTIVE_FILTERS}} filtro aplicado",activeFilters:"{{ACTIVE_FILTERS}} filtros aplicados",noActiveFilters:"Nenhum filtro aplicado",modalDefaultFilterTitle:"Filtro padrão",modalInfoTextEditDefault:"Use o layout antigo para editar o seu filtro padrão, em breve traremos uma nova experiência.",modalInfoTextCreateDefault:"Use o layout antigo para criar o seu filtro padrão, em breve traremos uma nova experiência.",modalPersonalizedFilterTitle:"Filtro personalizado",modalPersonalizedFilterSubTitle:"Gerencie seus filtros",modalInfoTextCreateEditPersonalized:"Use o layout antigo para criar ou editar filtros, em breve traremos uma nova experiência",modalOkButtonLabel:"Aplicar",modalCancelButtonLabel:"Limpar"},r={title:{clone:"Duplicar registro",insert:"Cadastrar registro",update:"Alterar registro",clean:"{{ENTITY_NAME}}"},goBackTitle:"Voltar"},a={titleUpdate:"Editar",titlePrevious:"Anterior",titleNext:"Próximo",titleRefresh:"Atualizar",titleClone:"Duplicar",titleRemove:"Excluir",titleMoreOptions:"Mais Opções",titleInsert:"Cadastrar",titleCancel:"Cancelar",titleSave:"Salvar",titleGridMode:"Modo Grade",titleFormMode:"Modo Formulário",titleConfigGrid:"Configuração da grade",forbidden:"Permissão não liberada"};class o{constructor(){this._defaults={snkDataUnit:e,snkForm:r,snkTaskbar:a,snkFilterBar:i},this._currentOperation=t.CLEAN,this.loadAppMessages().then((e=>{this._appMessages=e}),(e=>{console.info("O arquivo de mensagens personalizadas não foi encontrado no caminho /messages/appmessages.js",e)}))}set currentOperation(e){this._currentOperation=e}getMessage(e,i){if(null==e)return;var r=e.split(".");let a=this.resolveMessage(r,this._appMessages);if(null==a&&(a=this.resolveMessage(r,this._defaults)),this.customMessageBuilder){const r=this.customMessageBuilder(e,a,i);a=r.message,i=r.params}return this.postProcess(a,i)}resolveMessage(e,i){if(null==i)return;const r=i[e[0]];return r?this.isOperationSensitive(r)?r[this._currentOperation]:1===e.length||null==r||"string"==typeof r?r:this.resolveMessage(e.slice(1),r):void 0}isOperationSensitive(e){return null!=e[t.CLONE]||null!=e[t.INSERT]||null!=e[t.UPDATE]||null!=e[t.CLEAN]}postProcess(e,i){if(e){const r=/(.*?)\{\{(.+?)\}\}/g;let a,o="",t=e;for(;null!==(a=r.exec(e));){const[r,s,l]=a,n=a.index+r.length;t=n<e.length?e.substring(n):"";let d=i?i[l]:void 0;null==d&&(d=""),o+=s+d}return o+t}return e}loadAppMessages(){return new Promise(((e,i)=>{const r="dev"!==window.applicationenv?`/${window.MGE_MODULE_NAME}/labsApps/${window.APPLICATION_NAME}/build/messages/appmessages.js`:"/messages/appmessages.js";import(r).then((i=>{e(i.default)})).catch((e=>{i(e)}))}))}}var t;!function(e){e.CLONE="clone",e.INSERT="insert",e.UPDATE="update",e.CLEAN="clean"}(t||(t={}));export{t as O,o as S}
@@ -0,0 +1 @@
1
+ import{h as e}from"./p-fac2b6a9.js";var t,n,a;!function(e){e.PREVIOUS="PREVIOUS",e.NEXT="NEXT",e.REFRESH="REFRESH",e.UPDATE="UPDATE",e.CLONE="CLONE",e.REMOVE="REMOVE",e.INSERT="INSERT",e.CANCEL="CANCEL",e.SAVE="SAVE",e.GRID_MODE="GRID_MODE",e.FORM_MODE="FORM_MODE",e.CONFIG_GRID="CONFIG_GRID",e.MORE_OPTIONS="MORE_OPTIONS",e.DIVIDER="DIVIDER"}(t||(t={})),function(e){e.UPDATE="UPDATE",e.CLONE="CLONE",e.REMOVE="REMOVE",e.INSERT="INSERT",e.CONFIG_GRID="CONFIG_GRID"}(n||(n={})),function(e){e.CONFIG_GRID="CONFIG_GRID"}(a||(a={}));const s=(e,t,n,a)=>{const{hint:s,text:r,iconName:o}=e;return o?r?l(o,e.name,t,s,r,n,a):i(o,e.name,t,s,n,a):c(e.name,t,r,s,n,a)},r=(n,a,s,r,o,u)=>{const E=s(n);switch(n){case t.PREVIOUS:return i("chevron-left",n,a,E,r,o);case t.NEXT:return i("chevron-right",n,a,E,r,o);case t.REFRESH:return i("sync",n,a,E,r,o);case t.UPDATE:return i("edit",n,a,E,r,o);case t.CLONE:return i("copy",n,a,E,r,o);case t.REMOVE:return i("delete",n,a,E,r,o);case t.INSERT:return l("plus",n,a,E,E,r,o);case t.CANCEL:return c(n,a,E,E,r,o);case t.SAVE:return l("save",n,a,E,E,r,o);case t.GRID_MODE:return i("table",n,a,E,r,o);case t.FORM_MODE:return i("list",n,a,E,r,o);case t.CONFIG_GRID:return i("settings-inverted",n,a,E,r,o);case t.MORE_OPTIONS:return u&&u.length>0?e("ez-actions-button",{title:E,size:"small",class:a,enabled:o(n),onEzAction:e=>r(e.detail.value),actions:u}):void 0;case t.DIVIDER:return e("hr",{class:"ez-divider-vertical ez-divider--dark ez-margin-horizontal--medium"})}};function c(t,n,a,s,r,c){return e("ez-button",{title:s,label:a,size:"small",class:n,enabled:c(t),onClick:()=>r(t)})}function i(t,n,a,s,r,c){return e("ez-button",{name:t,title:s,mode:"icon",size:"small",class:a,iconName:t,enabled:c(n),onClick:()=>r(n)})}function l(t,n,a,s,r,c,i){return e("ez-button",{name:t,title:r,label:s,size:"small",class:a,enabled:i(n),onClick:()=>c(n)},e("ez-icon",{class:"ez-padding-right--small",slot:"leftIcon",iconName:t}))}export{n as A,t as T,a as V,s as a,r as b}
@@ -0,0 +1 @@
1
+ import{r as t,c as s,h as i,g as e,H as a}from"./p-fac2b6a9.js";import{Action as n,ApplicationContext as h}from"@sankhyalabs/core";import{ApplicationUtils as o,DialogType as r}from"@sankhyalabs/ezui/dist/collection/utils";import{O as c}from"./p-586e2522.js";const l=class{constructor(i){t(this,i),this.dataStateChange=s(this,"dataStateChange",7),this.dataUnitReady=s(this,"dataUnitReady",7),this.insertionMode=s(this,"insertionMode",7),this.cancelEdition=s(this,"cancelEdition",7),this._onDataUnitResolve=[],this.pageSize=150,this._dataUnitObserver=t=>{const s={insertionMode:!1,hasNext:this.dataUnit.hasNext(),hasPrevious:this.dataUnit.hasPrevious(),copyMode:!1,isDirty:this.dataUnit.isDirty(),hasDirtyRecords:this.dataUnit.hasDirtyRecords(),selectedRecords:this.dataUnit.getSelectedRecords()};if(this.dataUnit.records.forEach((t=>{t.__record__id__.startsWith("NEW_")&&(s.insertionMode=!0,s.copyMode||(s.copyMode=null!=t.__record__source__id__))})),this.dataState=s,t.type===n.DATA_SAVED){const s=this.getMessage("snkDataUnit.saveInfo",t.payload.records[0]);null!=s&&this.showSuccessMessage(s)}if(t.type!==n.RECORDS_ADDED&&t.type!==n.RECORDS_COPIED||this.insertionMode.emit(),t.type===n.EDITION_CANCELED){this.cancelEdition.emit();const t=this.getMessage("snkDataUnit.cancelInfo");null!=t&&this.showSuccessMessage(t)}if(t.type===n.RECORDS_REMOVED){const s=this.getMessage("snkDataUnit.removeInfo",t.payload.cachedRecords[0]);null!=s&&this.showSuccessMessage(s)}this._application.messagesBuilder.currentOperation=this.getMessageOperation()}}observePageSize(){this.dataUnit&&(this.dataUnit.pageSize=this.pageSize)}observeDataUnitName(t,s){s!=t&&(this.dataUnit=void 0,this.dataUnitName=t,this.loadDataUnit())}observeEntityName(t,s){s!=t&&(this.dataUnit=void 0,this.entityName=t,this.loadDataUnit())}observeDataState(t,s){s!=t&&this.dataStateChange.emit(t)}observeDataUnit(){this.dataUnitReady.emit(this.dataUnit)}async getDataUnit(){return new Promise((t=>{this.dataUnit?t(this.dataUnit):this._onDataUnitResolve.push(t)}))}async interceptAction(t){return new Promise((s=>{switch(t.type){case n.RECORDS_ADDED:this.isAllowed("INSERT")?s(t):o.info(this.getMessage("snkDataUnit.forbiddenInsert"));break;case n.RECORDS_COPIED:this.isAllowed("CLONE")?s(t):o.info(this.getMessage("snkDataUnit.forbiddenClone"));break;case n.DATA_CHANGED:case n.CHANGING_DATA:this.isAllowed("UPDATE")?s(t):(this.dataUnit.cancelEdition(),o.alert(this.getMessage("snkDataUnit.forbidden"),this.getMessage("snkDataUnit.forbiddenUpdate")));break;case n.SAVING_DATA:if(this.beforeSave){const i=this.beforeSave(this.dataUnit);i instanceof Promise?i.then((i=>s(i?t:void 0))):s(i?t:void 0)}else s(t);break;case n.DATA_SAVED:this.afterSave?this.afterSave(this.dataUnit):s(t);break;case n.EDITION_CANCELED:if(this.dataState.hasDirtyRecords){const i=this.getMessage("snkDataUnit.cancelConfirmation");if(null==i)s(t);else{const e=this.getMessage("snkDataUnit.cancelConfirmationTitle");o.confirm(e,i).then((i=>s(i?t:void 0)))}}else s(t);break;case n.REMOVING_RECORDS:if(this.isAllowed("REMOVE")){const i=this.getMessage("snkDataUnit.removeConfirmation");if(null==i)s(t);else{const e=this.getMessage("snkDataUnit.removeConfirmationTitle");o.confirm(e,i,"delete",r.CRITICAL,{btnConfirmDanger:!0}).then((i=>s(i?t:void 0)))}}else o.info(this.getMessage("snkDataUnit.forbiddenRemove"));break;default:s(t)}}))}showSuccessMessage(t){o.info(t,{iconName:"check"})}isAllowed(t){return!!this._permissions&&(this._permissions.isSup||this._permissions[t])}getMessage(t,s){return s||(s=this.getMessageParams()),this._application.messagesBuilder.getMessage(t,s)}getMessageParams(){return this.dataState.selectedRecords?this.dataState.selectedRecords[0]:void 0}getMessageOperation(){return this.dataState.copyMode?c.CLONE:this.dataState.insertionMode?c.INSERT:this.dataState.isDirty?c.UPDATE:c.CLEAN}async loadDataUnit(){if(!this.dataUnit&&this._application&&this.entityName){const t=this.dataUnitName?this.dataUnitName:this.entityName;let s;for(this.dataUnit=await this._application.getDataUnit(this.entityName,t),this.dataUnit.pageSize=this.pageSize,this.dataUnit.unsubscribe(this._dataUnitObserver),this.dataUnit.addInterceptor(this),this.dataUnit.subscribe(this._dataUnitObserver);s=this._onDataUnitResolve.pop();)s(this.dataUnit)}}componentWillLoad(){this._application=h.getContextValue("__SNK__APPLICATION__"),this._application.getAllAccess().then((t=>this._permissions=t))}componentDidLoad(){this.loadDataUnit()}render(){return i(a,null)}get element(){return e(this)}static get watchers(){return{pageSize:["observePageSize"],dataUnitName:["observeDataUnitName"],entityName:["observeEntityName"],dataState:["observeDataState"],dataUnit:["observeDataUnit"]}}};l.style=".sc-snk-data-unit-h{display:flex;flex-direction:column;height:100%}";export{l as snk_data_unit}
@@ -0,0 +1 @@
1
+ import{r as s,c as t,h as i,g as e}from"./p-fac2b6a9.js";import{ApplicationContext as a}from"@sankhyalabs/core";import{T as r}from"./p-86f15ffe.js";class n{constructor(s){this._defaultButtons=s}process(s,t,i,e=[]){var a;this.customButtons=new Map,this.buttons="",this.disabledButtons=[],null===(a=this.getButtonsArray(s,t,i))||void 0===a||a.forEach((a=>{let r;if("string"==typeof a)r=a;else{const s=a;this.customButtons.set(s.name,s),r=s.name}this.isEnabled(s,t,r,i,e)||this.disabledButtons.push(r),this.buttons.length>0&&(this.buttons+=","),this.buttons+=r}))}getButtonsArray(s,t,i){const e=this._defaultButtons[s];return t?t.getButtons(s,i,[...e]):e}isEnabled(s,t,i,e,a){const r=!a.includes(i);return t&&t.isEnabled?t.isEnabled(s,e,i,r):r}}const o=class{constructor(i){s(this,i),this.exit=t(this,"exit",7),this.actionClick=t(this,"actionClick",7),this._taskbarProcessor=new n({"snkForm.regular":["PREVIOUS","NEXT","DIVIDER","CLONE","REMOVE","MORE_OPTIONS","DIVIDER","GRID_MODE","INSERT"],"snkForm.finish_edition":["CANCEL","SAVE"]})}getFormConfig(){return this._dataState&&this._dataState.insertionMode?this._insertionFormConfig:this._editionFormConfig}getInsertionHiddenFields(s){const t=[];return null==s||s.forEach((s=>{const i=this._dataUnit.getField(s.name);(null==i?void 0:i.readOnly)&&t.push(s.name)})),t}exitForm(){this._dataUnit.isDirty()?this._dataUnit.cancelEdition({after:()=>this.exit.emit()}):this.exit.emit()}getDisabledButtons(){const s=[];return this._dataState.hasPrevious||s.push("PREVIOUS"),this._dataState.hasNext||s.push("NEXT"),s}loadInsertionConfig(){this._dataUnit&&this._configLoaded&&(this._insertionFormConfig=this._editionFormConfig.filter((s=>{const t=this._dataUnit.getField(s.name);return!(null==t?void 0:t.readOnly)})))}getMessage(s){return this._application.messagesBuilder.getMessage(s,this.getMessageParams())}getMessageParams(){var s;return(null===(s=this._dataState)||void 0===s?void 0:s.selectedRecords)?this._dataState.selectedRecords[0]:void 0}componentWillLoad(){this._application=a.getContextValue("__SNK__APPLICATION__"),this._application&&(this._application.loadFormConfig(this.configName).then((s=>{this._configLoaded=!0,this._editionFormConfig=s,this.loadInsertionConfig()})),this._application.getAllAccess());let s=this._element.parentElement;for(;s;){if("SNK-DATA-UNIT"===s.tagName.toUpperCase()){this._snkDataUnit=s,this._dataUnit=this._snkDataUnit.dataUnit,this._dataState=this._snkDataUnit.dataState,this._dataUnit?this.loadInsertionConfig():this._snkDataUnit.addEventListener("dataUnitReady",(s=>{this._dataUnit=s.detail,this.loadInsertionConfig()})),this._snkDataUnit.addEventListener("dataStateChange",(s=>{this._dataState=s.detail}));break}s=s.parentElement}}componentWillRender(){var s;const t=(null===(s=this._dataState)||void 0===s?void 0:s.isDirty)?"snkForm.finish_edition":"snkForm.regular",i=[];this._dataState&&this._dataState.hasPrevious||i.push("PREVIOUS"),this._dataState&&this._dataState.hasNext||i.push("NEXT"),this._taskbarProcessor.process(t,this.taskbarManager,this._dataState,i)}render(){var s;if(this._configLoaded&&this._dataUnit&&this._dataState)return i("section",{class:"snk-form"},i("div",{class:"snk-form__header snk-form__header--fixed ez-row"},i("div",{class:"ez-col ez-col--sd-6 ez-col--tb-6",key:"formHeader"},i("ez-button",{title:this.getMessage("snkForm.goBackTitle"),mode:"icon",iconName:"arrow_back",class:"ez-padding-right--medium",size:"small",onClick:()=>this.exitForm()}),i("h1",{class:"ez-title ez-title--primary ez-title--xlarge ez-align--middle"},this.getMessage("snkForm.title"))),i("div",{class:"ez-col ez-col--sd-6 ez-col--tb-6 ez-align--right"},i("snk-taskbar",{key:"formTaskbar",buttons:this._taskbarProcessor.buttons,disabledButtons:this._taskbarProcessor.disabledButtons,customButtons:this._taskbarProcessor.customButtons,actionsList:this.actionsList,primaryButton:(null===(s=this._dataState)||void 0===s?void 0:s.isDirty)?"SAVE":"INSERT",dataUnit:this._dataUnit}))),i("section",null,i("div",{class:"ez-row"},i("div",{class:"ez-col ez-col--sd-12"},i("ez-form",{key:"ezForm"+this._snkDataUnit.entityName,dataUnit:this._dataUnit,config:this.getFormConfig(),recordsValidator:this.recordsValidator})))))}get _element(){return e(this)}};o.style=".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))}";const h=class{constructor(i){s(this,i),this.actionClick=t(this,"actionClick",7),this.gridDoubleClick=t(this,"gridDoubleClick",7),this._topTaskbarProcessor=new n({snkGridTopTaskbar:["FORM_MODE","CONFIG_GRID","INSERT"]}),this._headerTaskbarProcessor=new n({"snkGridHeaderTaskbar.unselected":["REFRESH"],"snkGridHeaderTaskbar.selected":["UPDATE","CLONE","REMOVE","MORE_OPTIONS","DIVIDER","REFRESH"]})}actionClickHandler(s){s.detail===r.CONFIG_GRID&&this._grid&&this._grid.openGridConfig()}saveConfig(s){const t=a.getContextValue("__SNK__APPLICATION__");t&&t.saveGridConfig(s)}componentWillLoad(){const s=a.getContextValue("__SNK__APPLICATION__");s&&(s.loadGridConfig(this.configName).then((s=>{this._gridConfig=s,this._configLoaded=!0})),s.getAllAccess());let t=this._element.parentElement;for(;t;){if("SNK-DATA-UNIT"===t.tagName.toUpperCase()){this._snkDataUnit=t,this._dataUnit=this._snkDataUnit.dataUnit,this._dataUnit||this._snkDataUnit.addEventListener("dataUnitReady",(s=>{this._dataUnit=s.detail})),this._snkDataUnit.addEventListener("dataStateChange",(s=>{this._dataState=s.detail}));break}t=t.parentElement}}componentWillRender(){this._headerTaskbarProcessor.process(this._dataState&&this._dataState.selectedRecords.length>0?"snkGridHeaderTaskbar.selected":"snkGridHeaderTaskbar.unselected",this.taskbarManager,this._dataState),this._topTaskbarProcessor.process("snkGridTopTaskbar",this.taskbarManager,this._dataState)}render(){if(this._configLoaded&&this._dataUnit)return i("div",{class:"snk-grid__container ez-flex ez-flex--column ez-flex-item--auto ez-padding--large"},i("div",{class:"snk-grid__header ez-padding-bottom--medium ez-margin-bottom--medium"},i("snk-filter-bar",{dataUnit:this._dataUnit,class:"snk-grid__filter-bar ez-align--top",configName:this.configName}),i("hr",{class:"ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-grid__header-divider"}),i("snk-taskbar",{class:"ez-padding-left--medium",onActionClick:s=>this.actionClickHandler(s),key:"topTaskbar",dataUnit:this._dataUnit,buttons:this._topTaskbarProcessor.buttons,disabledButtons:this._topTaskbarProcessor.disabledButtons,customButtons:this._topTaskbarProcessor.customButtons,primaryButton:"INSERT"})),i("ez-grid",{ref:s=>this._grid=s,dataUnit:this._dataUnit,key:"grid-"+this._snkDataUnit.entityName,config:this._gridConfig,onConfigChange:s=>{this.saveConfig(s.detail)},onEzDoubleClick:()=>this.gridDoubleClick.emit(),statusResolver:this.statusResolver},i("snk-taskbar",{dataUnit:this._dataUnit,buttons:this._headerTaskbarProcessor.buttons,disabledButtons:this._headerTaskbarProcessor.disabledButtons,customButtons:this._headerTaskbarProcessor.customButtons,slot:"leftButtons",actionsList:this.actionsList})),i("div",{class:"ez-col ez-col--sd-12"},i("slot",{name:"SnkGridFooter"})))}get _element(){return e(this)}};h.style=".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)}";export{o as snk_form,h as snk_grid}