@sankhyalabs/sankhyablocks 1.4.0-beta.2 → 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 (140) hide show
  1. package/dist/cjs/{index-b0b676c5.js → index-6fcf07f3.js} +159 -1515
  2. package/dist/cjs/loader.cjs.js +2 -18
  3. package/dist/cjs/sankhyablocks.cjs.js +4 -116
  4. package/dist/cjs/snk-application.cjs.entry.js +50 -214
  5. package/dist/cjs/snk-crud.cjs.entry.js +3 -3
  6. package/dist/cjs/snk-data-unit.cjs.entry.js +23 -23
  7. package/dist/cjs/snk-filter-bar_5.cjs.entry.js +902 -0
  8. package/dist/cjs/snk-filter-binary-select.cjs.entry.js +1 -1
  9. package/dist/cjs/snk-filter-detail.cjs.entry.js +3 -3
  10. package/dist/cjs/snk-filter-multi-select.cjs.entry.js +1 -1
  11. package/dist/cjs/snk-filter-number.cjs.entry.js +1 -1
  12. package/dist/cjs/snk-filter-period.cjs.entry.js +1 -1
  13. package/dist/cjs/snk-filter-personalized.cjs.entry.js +23 -22
  14. package/dist/cjs/snk-filter-search.cjs.entry.js +3 -3
  15. package/dist/cjs/snk-filter-text.cjs.entry.js +1 -1
  16. package/dist/cjs/{snk-form.cjs.entry.js → snk-form_2.cjs.entry.js} +119 -5
  17. package/dist/cjs/snk-pesquisa.cjs.entry.js +5 -5
  18. package/dist/cjs/{taskbar-elements-283c737e.js → taskbar-elements-aedfeae6.js} +1 -1
  19. package/dist/cjs/teste-pesquisa.cjs.entry.js +5 -5
  20. package/dist/components/index.js +0 -4
  21. package/dist/components/snk-application2.js +10 -174
  22. package/dist/components/snk-crud.js +1 -1
  23. package/dist/components/snk-data-unit.js +2 -2
  24. package/dist/components/snk-filter-bar2.js +4 -2
  25. package/dist/components/snk-filter-detail2.js +1 -1
  26. package/dist/components/snk-filter-item2.js +1 -1
  27. package/dist/components/snk-filter-list2.js +1 -1
  28. package/dist/components/snk-filter-modal2.js +4 -19
  29. package/dist/components/snk-filter-personalized.js +2 -1
  30. package/dist/components/snk-filter-search.js +1 -1
  31. package/dist/components/snk-form2.js +1 -1
  32. package/dist/components/snk-grid2.js +1 -1
  33. package/dist/components/snk-pesquisa2.js +1 -1
  34. package/dist/components/snk-taskbar2.js +1 -1
  35. package/dist/components/teste-pesquisa.js +1 -1
  36. package/dist/{sankhyablocks/index-2b4d2d14.js → esm/index-81dda3cf.js} +160 -1508
  37. package/dist/esm/loader.js +2 -18
  38. package/dist/esm/sankhyablocks.js +4 -116
  39. package/dist/esm/snk-application.entry.js +11 -175
  40. package/dist/esm/snk-crud.entry.js +2 -2
  41. package/dist/esm/snk-data-unit.entry.js +3 -3
  42. package/dist/esm/{snk-filter-bar.entry.js → snk-filter-bar_5.entry.js} +436 -4
  43. package/dist/esm/snk-filter-binary-select.entry.js +1 -1
  44. package/dist/esm/snk-filter-detail.entry.js +2 -2
  45. package/dist/esm/snk-filter-multi-select.entry.js +1 -1
  46. package/dist/esm/snk-filter-number.entry.js +1 -1
  47. package/dist/esm/snk-filter-period.entry.js +1 -1
  48. package/dist/esm/snk-filter-personalized.entry.js +3 -2
  49. package/dist/esm/snk-filter-search.entry.js +2 -2
  50. package/dist/esm/snk-filter-text.entry.js +1 -1
  51. package/dist/{sankhyablocks/snk-form.entry.js → esm/snk-form_2.entry.js} +117 -4
  52. package/dist/esm/snk-pesquisa.entry.js +2 -2
  53. package/dist/esm/{taskbar-elements-35d64ff9.js → taskbar-elements-38eb5d51.js} +1 -1
  54. package/dist/esm/teste-pesquisa.entry.js +2 -2
  55. package/dist/sankhyablocks/index.esm.js +0 -1
  56. package/dist/sankhyablocks/p-0352c0e2.entry.js +1 -0
  57. package/dist/sankhyablocks/p-07ebda01.entry.js +1 -0
  58. package/dist/sankhyablocks/p-322c0df2.entry.js +1 -0
  59. package/dist/sankhyablocks/p-46caa101.entry.js +1 -0
  60. package/dist/sankhyablocks/p-473cedf9.entry.js +1 -0
  61. package/dist/sankhyablocks/p-586e2522.js +1 -0
  62. package/dist/sankhyablocks/p-86f15ffe.js +1 -0
  63. package/dist/sankhyablocks/p-8f3c5709.entry.js +1 -0
  64. package/dist/sankhyablocks/p-97009a2c.entry.js +1 -0
  65. package/dist/sankhyablocks/p-9be74b46.entry.js +74 -0
  66. package/dist/sankhyablocks/p-9dd2b8cb.js +1 -0
  67. package/dist/sankhyablocks/p-a8b59c61.entry.js +1 -0
  68. package/dist/sankhyablocks/p-aecf3e0a.entry.js +1 -0
  69. package/dist/sankhyablocks/p-c1c3b5d8.entry.js +1 -0
  70. package/dist/sankhyablocks/p-c78cb79a.entry.js +1 -0
  71. package/dist/sankhyablocks/p-c9eec639.entry.js +1 -0
  72. package/dist/sankhyablocks/p-dc482a42.entry.js +1 -0
  73. package/dist/sankhyablocks/p-fac2b6a9.js +2 -0
  74. package/dist/sankhyablocks/p-fb705f81.entry.js +1 -0
  75. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -129
  76. package/package.json +1 -1
  77. package/react/components.d.ts +19 -0
  78. package/react/components.js +19 -0
  79. package/react/components.js.map +1 -1
  80. package/dist/cjs/app-globals-3a1e7e63.js +0 -5
  81. package/dist/cjs/css-shim-b8158822.js +0 -6
  82. package/dist/cjs/dom-36862b77.js +0 -75
  83. package/dist/cjs/index-84fe3b86.js +0 -20
  84. package/dist/cjs/index-93965c41.js +0 -141
  85. package/dist/cjs/index-e90ae303.js +0 -2408
  86. package/dist/cjs/shadow-css-346c0795.js +0 -389
  87. package/dist/cjs/snk-filter-bar.cjs.entry.js +0 -466
  88. package/dist/cjs/snk-filter-item.cjs.entry.js +0 -177
  89. package/dist/cjs/snk-filter-list.cjs.entry.js +0 -91
  90. package/dist/cjs/snk-filter-modal.cjs.entry.js +0 -37
  91. package/dist/cjs/snk-grid.cjs.entry.js +0 -79
  92. package/dist/cjs/snk-taskbar.cjs.entry.js +0 -160
  93. package/dist/cjs/taskbar-processor-6bd0d35c.js +0 -47
  94. package/dist/components/index2.js +0 -2394
  95. package/dist/components/index3.js +0 -139
  96. package/dist/esm/app-globals-0f993ce5.js +0 -3
  97. package/dist/esm/css-shim-b3f2ee8d.js +0 -4
  98. package/dist/esm/dom-665d6011.js +0 -73
  99. package/dist/esm/index-2b4d2d14.js +0 -3262
  100. package/dist/esm/index-5992b7e6.js +0 -139
  101. package/dist/esm/index-c683b2b0.js +0 -2394
  102. package/dist/esm/index-c71285cb.js +0 -17
  103. package/dist/esm/shadow-css-b18e99d7.js +0 -387
  104. package/dist/esm/snk-filter-item.entry.js +0 -173
  105. package/dist/esm/snk-filter-list.entry.js +0 -87
  106. package/dist/esm/snk-filter-modal.entry.js +0 -33
  107. package/dist/esm/snk-form.entry.js +0 -129
  108. package/dist/esm/snk-grid.entry.js +0 -75
  109. package/dist/esm/snk-taskbar.entry.js +0 -156
  110. package/dist/esm/taskbar-processor-aa6772c9.js +0 -45
  111. package/dist/sankhyablocks/SnkMessageBuilder-35a20271.js +0 -199
  112. package/dist/sankhyablocks/app-globals-0f993ce5.js +0 -3
  113. package/dist/sankhyablocks/css-shim-b3f2ee8d.js +0 -4
  114. package/dist/sankhyablocks/dom-665d6011.js +0 -73
  115. package/dist/sankhyablocks/filter-item-type.enum-a79b2fa8.js +0 -14
  116. package/dist/sankhyablocks/index-5992b7e6.js +0 -139
  117. package/dist/sankhyablocks/index-c683b2b0.js +0 -2394
  118. package/dist/sankhyablocks/index-c71285cb.js +0 -17
  119. package/dist/sankhyablocks/shadow-css-b18e99d7.js +0 -387
  120. package/dist/sankhyablocks/snk-application.entry.js +0 -8166
  121. package/dist/sankhyablocks/snk-crud.entry.js +0 -66
  122. package/dist/sankhyablocks/snk-data-unit.entry.js +0 -268
  123. package/dist/sankhyablocks/snk-filter-bar.entry.js +0 -462
  124. package/dist/sankhyablocks/snk-filter-binary-select.entry.js +0 -43
  125. package/dist/sankhyablocks/snk-filter-detail.entry.js +0 -80
  126. package/dist/sankhyablocks/snk-filter-item.entry.js +0 -173
  127. package/dist/sankhyablocks/snk-filter-list.entry.js +0 -87
  128. package/dist/sankhyablocks/snk-filter-modal.entry.js +0 -33
  129. package/dist/sankhyablocks/snk-filter-multi-select.entry.js +0 -19
  130. package/dist/sankhyablocks/snk-filter-number.entry.js +0 -20
  131. package/dist/sankhyablocks/snk-filter-period.entry.js +0 -33
  132. package/dist/sankhyablocks/snk-filter-personalized.entry.js +0 -85
  133. package/dist/sankhyablocks/snk-filter-search.entry.js +0 -40
  134. package/dist/sankhyablocks/snk-filter-text.entry.js +0 -18
  135. package/dist/sankhyablocks/snk-grid.entry.js +0 -75
  136. package/dist/sankhyablocks/snk-pesquisa.entry.js +0 -311
  137. package/dist/sankhyablocks/snk-taskbar.entry.js +0 -156
  138. package/dist/sankhyablocks/taskbar-elements-35d64ff9.js +0 -90
  139. package/dist/sankhyablocks/taskbar-processor-aa6772c9.js +0 -45
  140. package/dist/sankhyablocks/teste-pesquisa.entry.js +0 -33
@@ -1,311 +0,0 @@
1
- import { r as registerInstance, h, f as Host } from './index-2b4d2d14.js';
2
- import { O as ObjectUtils, S as StringUtils } from './index-c683b2b0.js';
3
-
4
- const snkPesquisaCss = ".sc-snk-pesquisa-h{--snk-pesquisa--font-size:var(--text--medium, 14px);--snk-pesquisa--font-family:var(--font-pattern, Arial);--snk-pesquisa--font-weight:var(--text-weight--medium, 400);--snk-pesquisa__records--color:var(--text--primary, #626e82);--snk-pesquisa__records--padding-vertical:var(--space--medium, 12px);--snk-pesquisa__content--padding-right:var(--space--small, 6px);--snk-pesquisa__content-scrollbar--background-color-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
-
6
- const SnkPesquisa = class {
7
- constructor(hostRef) {
8
- registerInstance(this, hostRef);
9
- this._mdByName = {};
10
- this._startHighlightTag = "<span class='card-item__highlight'>";
11
- this._endHighlightTag = "</span>";
12
- this._specialCharsRegex = /[[.\-\$\+\*,_\&\(\)%\/\\#@!:\|\=\'\"]/gmi;
13
- this._charsWithAccentuation = "ÁÉÍÓÚ_ÃÕ_ÂÊÎÔÛ_ÀÈÌÒÙ_Ü_Ç_áéíóú_ãõ_âêîôû_àèìòù_ü_ç";
14
- this._charsWithoutAccentuation = "AEIOU_AO_AEIOU_AEIOU_U_C_aeiou_ao_aeiou_aeiou_u_c";
15
- this._changeDeboucingTimeout = null;
16
- this._limitCharsToSearch = 3;
17
- this._deboucingTime = 450;
18
- this._startLoading = false;
19
- }
20
- observeArgument() {
21
- if (this._textInput) {
22
- this._textInput.value = this.argument;
23
- }
24
- }
25
- clearSearch() {
26
- this.argument = "";
27
- this._itemList = undefined;
28
- }
29
- buildDetails(fields, item) {
30
- let details = {};
31
- for (let index = 0; (index < fields.length); index++) {
32
- const field = fields[index];
33
- const itemValue = item[field.fieldName];
34
- const optionValue = field.options ? field.options[itemValue] || itemValue : itemValue;
35
- details[field.description] = this.highlightValue(item['__matchFields'], optionValue, fields, true);
36
- }
37
- return details;
38
- }
39
- buildFirstFields(matchFields, fields, qtyFields = 6) {
40
- if (matchFields && Array.isArray(matchFields)) {
41
- matchFields.forEach((matchField) => {
42
- let fieldMD = this.removeReference(fields, this._mdByName[matchField]);
43
- if (fieldMD) {
44
- fields.unshift(fieldMD);
45
- }
46
- });
47
- }
48
- fields = fields.slice(0, qtyFields);
49
- return fields;
50
- }
51
- doSearch(argument) {
52
- if (this.searchLoader && typeof this.searchLoader === "function") {
53
- this._startLoading = true;
54
- this.searchLoader(argument)
55
- .then((resp) => {
56
- this._startLoading = false;
57
- if (resp) {
58
- resp = ObjectUtils.stringToObject(resp.json.$);
59
- let descriptionField = resp.descriptionField;
60
- let pkField = resp.pkField;
61
- if (descriptionField && pkField) {
62
- let newItemList = [];
63
- resp.data.forEach((item) => {
64
- var _a;
65
- let fieldsMetadata = this.filterFieldsMetadata(resp, item);
66
- let fields = this.buildFirstFields(item['__matchFields'], fieldsMetadata);
67
- let exibitionItem = {
68
- key: this.highlightValue(item['__matchFields'], (_a = item[pkField]) === null || _a === void 0 ? void 0 : _a.toString(), fields, true),
69
- title: this.highlightValue(item['__matchFields'], item[descriptionField], fields, true),
70
- details: this.buildDetails(fields, item)
71
- };
72
- newItemList.push(exibitionItem);
73
- });
74
- this._itemList = newItemList;
75
- }
76
- }
77
- }).catch((error) => {
78
- this._startLoading = false;
79
- this._itemList = [];
80
- console.warn(error);
81
- });
82
- }
83
- }
84
- filterFieldsMetadata(resp, item) {
85
- let fieldsMetadata = resp.fieldsMetadata.filter((field) => {
86
- let accept = !StringUtils.isEmpty(item[field.fieldName]) &&
87
- field.visible !== false &&
88
- field.type !== 'B' &&
89
- resp.pkField !== field.fieldName &&
90
- resp.descriptionField !== field.fieldName &&
91
- (field.isPrimaryKey || !field.isLinkField) &&
92
- !(field.type === 'S' && field.presentationType === 'H');
93
- if (accept) {
94
- this._mdByName[field.fieldName] = field;
95
- }
96
- //Condição que trata o problema de trazer imagem no entityCard na pesquisa de registros
97
- if (typeof item[field.fieldName] === 'string' && (item[field.fieldName].indexOf('<img') > -1 || item[field.fieldName].indexOf('<svg') > -1)) {
98
- return false;
99
- }
100
- return accept;
101
- });
102
- return fieldsMetadata;
103
- }
104
- removeAtIndex(array, index) {
105
- if (index >= 0 && index < array.length) {
106
- return array.splice(index, 1)[0];
107
- }
108
- }
109
- removeReference(array, obj) {
110
- let index = this.indexOf(array, obj);
111
- return this.removeAtIndex(array, index);
112
- }
113
- indexOf(arr, obj) {
114
- let index = -1;
115
- if (Array.isArray(arr)) {
116
- this.find(arr, (item, i) => {
117
- index = i;
118
- return this.equals(obj, item);
119
- });
120
- }
121
- return index;
122
- }
123
- equals(obj1, obj2) {
124
- return ObjectUtils.objectToString(obj1) === ObjectUtils.objectToString(obj2);
125
- }
126
- find(arr, checkerFn) {
127
- if (arr) {
128
- for (let i = 0, length = arr.length; i < length; i++) {
129
- if (checkerFn(arr[i], i, arr)) {
130
- return arr[i];
131
- }
132
- }
133
- }
134
- else {
135
- return undefined;
136
- }
137
- }
138
- /**
139
- matchFields-> array __matchFields do data
140
- value -> termo que está sendo pesquisao
141
- fieldMD -> metadados retornados pelo serviço de pesquisa
142
- forceMatch -> força a pesquisa mesmo que não tenha __matchFields no metadado
143
- */
144
- highlightValue(matchFields, value, fieldMD, forceMatch) {
145
- let valueAux = this.replaceHtmlEntities(value);
146
- if (this.argument && (forceMatch || this.isIn(matchFields, fieldMD.fieldName))) {
147
- const argumentNumber = this.getArgumentNumber();
148
- let replacements = (isNaN(argumentNumber) ? this.argument : argumentNumber.toString()).split(/%|,|\s+/);
149
- let lastMatchIndex = 0;
150
- let cleanText = this.replaceAccentuatedChars(valueAux);
151
- replacements.forEach((r) => {
152
- if (r) {
153
- r = this.replaceAccentuatedChars(r);
154
- let specialChars = this.getSpecialCharacters(r);
155
- if (specialChars != undefined && specialChars.length > 0) {
156
- r = this.removeSpecialCharacters(r);
157
- }
158
- if (fieldMD.mask || fieldMD.uiType === 'CGC_CPF' || fieldMD.uiType === 'Phone') {
159
- //Fazemos isso para descondirerar os caracteres especiais de formatação da string
160
- r = r.split('').join('\\.?\\-?\\/?\\(?\\)?');
161
- }
162
- let regex = new RegExp(r, "ig");
163
- regex.lastIndex = lastMatchIndex;
164
- let match = regex.exec(cleanText);
165
- if (match && match.length > 0) {
166
- lastMatchIndex = match.index;
167
- let sizeMatch = match[0].length;
168
- let txtToColor = valueAux.substring(lastMatchIndex, lastMatchIndex + sizeMatch);
169
- let txtColored = (txtToColor === null || txtToColor === void 0 ? void 0 : txtToColor.trim()) ? this._startHighlightTag + txtToColor + this._endHighlightTag : '';
170
- let start = valueAux.substring(0, lastMatchIndex);
171
- let end = valueAux.substring(lastMatchIndex + sizeMatch);
172
- valueAux = start + txtColored + end;
173
- lastMatchIndex = lastMatchIndex + txtColored.length;
174
- cleanText = this.replaceAccentuatedChars(valueAux);
175
- }
176
- }
177
- });
178
- }
179
- return valueAux;
180
- }
181
- replaceHtmlEntities(source) {
182
- if (source == undefined) {
183
- return source;
184
- }
185
- return String(source)
186
- .replace(/&/g, '&amp;')
187
- .replace(/</g, '&lt;')
188
- .replace(/>/g, '&gt;')
189
- .replace(/"/g, '&quot;');
190
- }
191
- replaceAccentuatedChars(source) {
192
- if (source == undefined) {
193
- return source;
194
- }
195
- const replaceList = ['&amp;', '&lt;', '&gt;', '&quot;'];
196
- const sourceAux = this.replaceToSpace(source, replaceList);
197
- return sourceAux.replace(/[^\w ]/g, (char) => {
198
- let index = this._charsWithAccentuation.indexOf(char);
199
- if (index > -1) {
200
- char = this._charsWithoutAccentuation.charAt(index);
201
- }
202
- return char || '';
203
- });
204
- }
205
- replaceToSpace(source, replaceList = []) {
206
- if (source == undefined) {
207
- return source;
208
- }
209
- replaceList.forEach((word) => {
210
- const wordAux = new RegExp(word, 'g');
211
- let whiteSpace = '';
212
- for (let i = 0; i < word.length; i++) {
213
- whiteSpace += ' ';
214
- }
215
- source = String(source).replace(wordAux, whiteSpace);
216
- });
217
- return source;
218
- }
219
- isIn(arr, obj) {
220
- return this.indexOf(arr, obj) > -1;
221
- }
222
- getSpecialCharacters(str) {
223
- let match;
224
- let charList = [];
225
- while ((match = this._specialCharsRegex.exec(str))) {
226
- charList.push(str[match.index]);
227
- }
228
- return charList;
229
- }
230
- removeSpecialCharacters(str) {
231
- let specialChars = this.getSpecialCharacters(str);
232
- specialChars.forEach((ch) => {
233
- str = this.replaceAll(str, ch, '');
234
- });
235
- return str;
236
- }
237
- replaceAll(str, strFrom, strTo) {
238
- let pos = (str != undefined ? str : '').indexOf(strFrom);
239
- while (pos > -1) {
240
- str = str.replace(strFrom, strTo);
241
- pos = str.indexOf(strFrom);
242
- }
243
- return (str);
244
- }
245
- getArgumentNumber() {
246
- return Number(this.argument || undefined);
247
- }
248
- createOption(detail) {
249
- const { key, title } = detail;
250
- const startHighlight = new RegExp(this._startHighlightTag, 'g');
251
- const endHighlight = new RegExp(this._endHighlightTag, 'g');
252
- const option = {
253
- value: key === null || key === void 0 ? void 0 : key.replace(startHighlight, '').replace(endHighlight, ''),
254
- label: title === null || title === void 0 ? void 0 : title.replace(startHighlight, '').replace(endHighlight, '')
255
- };
256
- this.selectItem(option);
257
- }
258
- onChangeValue(event) {
259
- this.clearDeboucingTimeout();
260
- if (this._startLoading) {
261
- this._changeDeboucingTimeout = setTimeout(() => {
262
- this.onChangeValue(event);
263
- }, this._deboucingTime);
264
- return;
265
- }
266
- this.argument = (event.detail || "").trim();
267
- const argumentNumber = this.getArgumentNumber();
268
- if (this.argument && (!isNaN(argumentNumber) || this.argument.length >= this._limitCharsToSearch)) {
269
- this._changeDeboucingTimeout = setTimeout(() => {
270
- this.doSearch(isNaN(argumentNumber) ? this.argument : argumentNumber.toString());
271
- }, this._deboucingTime);
272
- }
273
- else {
274
- this._itemList = undefined;
275
- }
276
- }
277
- clearDeboucingTimeout() {
278
- if (this._changeDeboucingTimeout) {
279
- clearTimeout(this._changeDeboucingTimeout);
280
- this._changeDeboucingTimeout = undefined;
281
- }
282
- }
283
- onClickSearch() {
284
- this.doSearch((this.argument || "").trim());
285
- }
286
- getMessageView() {
287
- return this._startLoading
288
- ? 'Aguarde, buscando registros...'
289
- : this._itemList
290
- ? this._itemList.length >= 1
291
- ? `${this._itemList.length} ${this._itemList.length > 1
292
- ? 'registros encontrados'
293
- : 'registro encontrado'}`
294
- : 'Nenhum registro encontrado'
295
- : 'Os resultados de sua pesquisa aparecerão aqui...';
296
- }
297
- render() {
298
- var _a;
299
- return (h(Host, null, h("div", { class: "snk-pesquisa" }, h("div", { class: "snk-pesquisa__input" }, h("ez-text-input", { label: "Buscar", class: "ez-margin-right--medium", canShowError: false, ref: (ref) => this._textInput = ref, onEzChange: (event) => this.onChangeValue(event), value: this.argument }, h("ez-icon", { slot: "leftIcon", iconName: "search" }), this.argument && ((_a = this._textInput) === null || _a === void 0 ? void 0 : _a.value)
300
- ? h("button", { slot: "rightIcon", class: "snk-pesquisa__btn", onClick: () => this.clearSearch() }, h("ez-icon", { iconName: "close" }))
301
- : undefined), h("ez-button", { class: "ez-button--primary", label: "Pesquisar", onClick: () => this.onClickSearch() })), h("label", { class: "snk-pesquisa__records" }, this.getMessageView()), h("div", { class: "snk-pesquisa__content" }, this._itemList && this._itemList.map((item) => {
302
- return (h("ez-card-item", { onEzClick: (event) => this.createOption(event.detail), item: item }));
303
- })))));
304
- }
305
- static get watchers() { return {
306
- "argument": ["observeArgument"]
307
- }; }
308
- };
309
- SnkPesquisa.style = snkPesquisaCss;
310
-
311
- export { SnkPesquisa as snk_pesquisa };
@@ -1,156 +0,0 @@
1
- import { r as registerInstance, e as createEvent, h, f as Host } from './index-2b4d2d14.js';
2
- import { A as ApplicationContext } from './index-c683b2b0.js';
3
- import { T as TaskbarElement, V as VisibleWhenForbidden, A as AuthorizationElements, b as buildElem, a as buildCustomButton } from './taskbar-elements-35d64ff9.js';
4
-
5
- const snkTaskbarCss = ".sc-snk-taskbar-h{display:flex}";
6
-
7
- const SnkTaskbar = class {
8
- constructor(hostRef) {
9
- registerInstance(this, hostRef);
10
- this.actionClick = createEvent(this, "actionClick", 7);
11
- this._titleKeyByElement = {
12
- [TaskbarElement.UPDATE]: "snkTaskbar.titleUpdate",
13
- [TaskbarElement.PREVIOUS]: "snkTaskbar.titlePrevious",
14
- [TaskbarElement.NEXT]: "snkTaskbar.titleNext",
15
- [TaskbarElement.REFRESH]: "snkTaskbar.titleRefresh",
16
- [TaskbarElement.CLONE]: "snkTaskbar.titleClone",
17
- [TaskbarElement.REMOVE]: "snkTaskbar.titleRemove",
18
- [TaskbarElement.MORE_OPTIONS]: "snkTaskbar.titleMoreOptions",
19
- [TaskbarElement.INSERT]: "snkTaskbar.titleInsert",
20
- [TaskbarElement.CANCEL]: "snkTaskbar.titleCancel",
21
- [TaskbarElement.SAVE]: "snkTaskbar.titleSave",
22
- [TaskbarElement.GRID_MODE]: "snkTaskbar.titleGridMode",
23
- [TaskbarElement.CONFIG_GRID]: "snkTaskbar.titleConfigGrid",
24
- [TaskbarElement.FORM_MODE]: "snkTaskbar.titleFormMode"
25
- };
26
- }
27
- observeButtons() {
28
- this._definitions = undefined;
29
- }
30
- // Internal methods
31
- elementsFromString(strButtons) {
32
- const elements = [];
33
- if (strButtons) {
34
- strButtons.split(",").forEach(buttonName => {
35
- buttonName = buttonName.trim();
36
- if (VisibleWhenForbidden[buttonName] || this.isAllowed(buttonName)) {
37
- elements.push(buttonName.trim());
38
- }
39
- });
40
- }
41
- return elements;
42
- }
43
- isAllowed(buttonName) {
44
- if (AuthorizationElements[buttonName]) {
45
- return this._permissions ? this._permissions.isSup || this._permissions[buttonName] : false;
46
- }
47
- return true;
48
- }
49
- /**
50
- * Conforme mecanismo de mensagens, é possível customizar as mensagens dos blocos de construção
51
- * através de um pequeno modulo na estrutura da aplicação:
52
- * - Criar um arquivo no seguinte caminho: /messages/appmessages.msg.js.
53
- * Para conhecer os detalhes do módulo, vide o arquivo neste projeto "/src/lib/message/resources/snk-taskbar.msg.ts"
54
- */
55
- getTitle(element) {
56
- let key;
57
- if (this.isAllowed(element)) {
58
- key = this._titleKeyByElement[element];
59
- }
60
- else {
61
- key = "snkTaskbar.forbidden";
62
- }
63
- return key ? this._application.messagesBuilder.getMessage(key, {}) : "";
64
- }
65
- elementClick(elem) {
66
- if (this.dataUnit) {
67
- switch (elem) {
68
- case TaskbarElement.PREVIOUS:
69
- this.dataUnit.previousRecord();
70
- break;
71
- case TaskbarElement.NEXT:
72
- this.dataUnit.nextRecord();
73
- break;
74
- case TaskbarElement.REFRESH:
75
- this.dataUnit.loadData();
76
- break;
77
- case TaskbarElement.CLONE:
78
- this.dataUnit.copySelected();
79
- break;
80
- case TaskbarElement.REMOVE:
81
- this.dataUnit.removeSelectedRecords();
82
- break;
83
- case TaskbarElement.INSERT:
84
- this.dataUnit.addRecord();
85
- break;
86
- case TaskbarElement.CANCEL:
87
- this.dataUnit.cancelEdition();
88
- break;
89
- case TaskbarElement.SAVE:
90
- this.dataUnit.saveData();
91
- break;
92
- }
93
- }
94
- this.actionClick.emit(elem);
95
- }
96
- isEnabled(elem) {
97
- if (!this.isAllowed(elem)) {
98
- return false;
99
- }
100
- return !(this.disabledButtons && this.disabledButtons.includes(elem));
101
- }
102
- getElement(index, def) {
103
- let className = def === this.primaryButton ? "ez-button--primary " : "";
104
- if (index > 1) {
105
- className += "ez-padding-left--medium";
106
- }
107
- if (TaskbarElement[def.toString()]) {
108
- return buildElem(def, className, elem => this.getTitle(elem), elem => this.elementClick(elem), elem => this.isEnabled(elem), this.actionsList);
109
- }
110
- else {
111
- return buildCustomButton(def, className, elem => this.elementClick(elem), elem => this.isEnabled(elem));
112
- }
113
- }
114
- // Lifecycle
115
- componentWillLoad() {
116
- this._application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
117
- if (this._application) {
118
- this._application.getAllAccess().then(access => this._permissions = access);
119
- }
120
- else {
121
- this._permissions = {};
122
- }
123
- }
124
- componentWillRender() {
125
- if (this._definitions == undefined && this._permissions) {
126
- this._definitions = this.elementsFromString(this.buttons);
127
- }
128
- }
129
- render() {
130
- if (this._definitions === undefined) {
131
- return undefined;
132
- }
133
- let index = 0;
134
- return (h(Host, null, this._definitions.map((elem) => {
135
- if (elem === TaskbarElement.DIVIDER) {
136
- index = 0;
137
- }
138
- else {
139
- index++;
140
- }
141
- if (TaskbarElement[elem]) {
142
- return this.getElement(index, TaskbarElement[elem]);
143
- }
144
- if (this.customButtons.has(elem)) {
145
- return this.getElement(index, this.customButtons.get(elem));
146
- }
147
- return h("slot", { name: elem });
148
- })));
149
- }
150
- static get watchers() { return {
151
- "buttons": ["observeButtons"]
152
- }; }
153
- };
154
- SnkTaskbar.style = snkTaskbarCss;
155
-
156
- export { SnkTaskbar as snk_taskbar };
@@ -1,90 +0,0 @@
1
- import { h } from './index-2b4d2d14.js';
2
-
3
- var TaskbarElement;
4
- (function (TaskbarElement) {
5
- TaskbarElement["PREVIOUS"] = "PREVIOUS";
6
- TaskbarElement["NEXT"] = "NEXT";
7
- TaskbarElement["REFRESH"] = "REFRESH";
8
- TaskbarElement["UPDATE"] = "UPDATE";
9
- TaskbarElement["CLONE"] = "CLONE";
10
- TaskbarElement["REMOVE"] = "REMOVE";
11
- TaskbarElement["INSERT"] = "INSERT";
12
- TaskbarElement["CANCEL"] = "CANCEL";
13
- TaskbarElement["SAVE"] = "SAVE";
14
- TaskbarElement["GRID_MODE"] = "GRID_MODE";
15
- TaskbarElement["FORM_MODE"] = "FORM_MODE";
16
- TaskbarElement["CONFIG_GRID"] = "CONFIG_GRID";
17
- TaskbarElement["MORE_OPTIONS"] = "MORE_OPTIONS";
18
- TaskbarElement["DIVIDER"] = "DIVIDER";
19
- })(TaskbarElement || (TaskbarElement = {}));
20
- var AuthorizationElements;
21
- (function (AuthorizationElements) {
22
- AuthorizationElements["UPDATE"] = "UPDATE";
23
- AuthorizationElements["CLONE"] = "CLONE";
24
- AuthorizationElements["REMOVE"] = "REMOVE";
25
- AuthorizationElements["INSERT"] = "INSERT";
26
- AuthorizationElements["CONFIG_GRID"] = "CONFIG_GRID";
27
- })(AuthorizationElements || (AuthorizationElements = {}));
28
- var VisibleWhenForbidden;
29
- (function (VisibleWhenForbidden) {
30
- VisibleWhenForbidden["CONFIG_GRID"] = "CONFIG_GRID";
31
- })(VisibleWhenForbidden || (VisibleWhenForbidden = {}));
32
- const buildCustomButton = (def, className, action, isEnabled) => {
33
- const { hint, text, iconName } = def;
34
- if (iconName) {
35
- if (text) {
36
- return iconTextButton(iconName, def.name, className, hint, text, action, isEnabled);
37
- }
38
- else {
39
- return iconButton(iconName, def.name, className, hint, action, isEnabled);
40
- }
41
- }
42
- else {
43
- return textButton(def.name, className, text, hint, action, isEnabled);
44
- }
45
- };
46
- const buildElem = (element, className, getTitle, action, isEnabled, actions) => {
47
- const title = getTitle(element);
48
- switch (element) {
49
- case TaskbarElement.PREVIOUS:
50
- return iconButton("chevron-left", element, className, title, action, isEnabled);
51
- case TaskbarElement.NEXT:
52
- return iconButton("chevron-right", element, className, title, action, isEnabled);
53
- case TaskbarElement.REFRESH:
54
- return iconButton("sync", element, className, title, action, isEnabled);
55
- case TaskbarElement.UPDATE:
56
- return iconButton("edit", element, className, title, action, isEnabled);
57
- case TaskbarElement.CLONE:
58
- return iconButton("copy", element, className, title, action, isEnabled);
59
- case TaskbarElement.REMOVE:
60
- return iconButton("delete", element, className, title, action, isEnabled);
61
- case TaskbarElement.INSERT:
62
- return iconTextButton("plus", element, className, title, title, action, isEnabled);
63
- case TaskbarElement.CANCEL:
64
- return textButton(element, className, title, title, action, isEnabled);
65
- case TaskbarElement.SAVE:
66
- return iconTextButton("save", element, className, title, title, action, isEnabled);
67
- case TaskbarElement.GRID_MODE:
68
- return iconButton("table", element, className, title, action, isEnabled);
69
- case TaskbarElement.FORM_MODE:
70
- return iconButton("list", element, className, title, action, isEnabled);
71
- case TaskbarElement.CONFIG_GRID:
72
- return iconButton("settings-inverted", element, className, title, action, isEnabled);
73
- case TaskbarElement.MORE_OPTIONS:
74
- return actions && actions.length > 0 ? h("ez-actions-button", { title: title, size: "small", class: className, enabled: isEnabled(element), onEzAction: (evt) => action(evt.detail.value), actions: actions }) : undefined;
75
- case TaskbarElement.DIVIDER:
76
- return h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-horizontal--medium" });
77
- }
78
- };
79
- function textButton(name, className, text, title, action, isEnabled) {
80
- return h("ez-button", { title: title, label: text, size: "small", class: className, enabled: isEnabled(name), onClick: () => action(name) });
81
- }
82
- function iconButton(iconName, name, className, title, action, isEnabled) {
83
- return h("ez-button", { name: iconName, title: title, mode: "icon", size: "small", class: className, iconName: iconName, enabled: isEnabled(name), onClick: () => action(name) });
84
- }
85
- function iconTextButton(iconName, name, className, text, title, action, isEnabled) {
86
- return h("ez-button", { name: iconName, title: title, label: text, size: "small", class: className, enabled: isEnabled(name), onClick: () => action(name) },
87
- h("ez-icon", { class: "ez-padding-right--small", slot: "leftIcon", iconName: iconName }));
88
- }
89
-
90
- export { AuthorizationElements as A, TaskbarElement as T, VisibleWhenForbidden as V, buildCustomButton as a, buildElem as b };
@@ -1,45 +0,0 @@
1
- class TaskbarProcessor {
2
- constructor(defaultButtons) {
3
- this._defaultButtons = defaultButtons;
4
- }
5
- process(taskbarId, taskbarManager, dataState, disabledButtons = []) {
6
- var _a;
7
- this.customButtons = new Map();
8
- this.buttons = "";
9
- this.disabledButtons = [];
10
- (_a = this.getButtonsArray(taskbarId, taskbarManager, dataState)) === null || _a === void 0 ? void 0 : _a.forEach(btnDef => {
11
- let buttonName;
12
- if (typeof btnDef === "string") {
13
- buttonName = btnDef;
14
- }
15
- else {
16
- const customBtn = btnDef;
17
- this.customButtons.set(customBtn.name, customBtn);
18
- buttonName = customBtn.name;
19
- }
20
- if (!this.isEnabled(taskbarId, taskbarManager, buttonName, dataState, disabledButtons)) {
21
- this.disabledButtons.push(buttonName);
22
- }
23
- if (this.buttons.length > 0) {
24
- this.buttons += ",";
25
- }
26
- this.buttons += buttonName;
27
- });
28
- }
29
- getButtonsArray(taskbarId, taskbarManager, dataState) {
30
- const defaults = this._defaultButtons[taskbarId];
31
- if (taskbarManager) {
32
- return taskbarManager.getButtons(taskbarId, dataState, [...defaults]);
33
- }
34
- return defaults;
35
- }
36
- isEnabled(taskbarId, taskbarManager, buttonName, dataState, disabled) {
37
- const originalValue = disabled.includes(buttonName) ? false : true;
38
- if (taskbarManager && taskbarManager.isEnabled) {
39
- return taskbarManager.isEnabled(taskbarId, dataState, buttonName, originalValue);
40
- }
41
- return originalValue;
42
- }
43
- }
44
-
45
- export { TaskbarProcessor as T };
@@ -1,33 +0,0 @@
1
- import { r as registerInstance, h } from './index-2b4d2d14.js';
2
- import { D as DataUnit, b as DataType, U as UserInterface } from './index-c683b2b0.js';
3
-
4
- const testePesquisaCss = ":host{display:block}";
5
-
6
- const TestePesquisa = class {
7
- constructor(hostRef) {
8
- registerInstance(this, hostRef);
9
- }
10
- componentWillLoad() {
11
- this.dataUnit = new DataUnit("testes_com_formulario");
12
- this.dataUnit.metadata = {
13
- name: "dd://br.com.sankhya.fin.cad.movimentacaoFinanceira/Financeiro",
14
- label: "Parceiro",
15
- fields: [
16
- {
17
- name: "CODPARC",
18
- label: "Parceiro",
19
- dataType: DataType.NUMBER,
20
- userInterface: UserInterface.SEARCH,
21
- required: true,
22
- properties: { ENTITYNAME: "Parceiro" }
23
- }
24
- ]
25
- };
26
- }
27
- render() {
28
- return (h("snk-application", null, h("ez-form", { dataUnit: this.dataUnit })));
29
- }
30
- };
31
- TestePesquisa.style = testePesquisaCss;
32
-
33
- export { TestePesquisa as teste_pesquisa };