@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,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-f1d3e4da.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-f1d3e4da.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,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-f1d3e4da.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 };
@@ -1,51 +0,0 @@
1
- import { DataUnit } from '@sankhyalabs/core';
2
- import { SnkApplication } from '../snk-application/snk-application';
3
- import { SnkFilterItemConfig } from './filter-item/snk-filter-item';
4
- import { FilterProvider, Filter } from '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
5
- import { ListItem } from './filter-list/snk-filter-list';
6
- export declare class SnkFilterBar implements FilterProvider {
7
- _element: HTMLElement;
8
- _application: SnkApplication;
9
- _updateSequence: Array<string>;
10
- _calculateSortIndex: (item: SnkFilterItemConfig) => number;
11
- _filtersComparator: (a: SnkFilterItemConfig, b: SnkFilterItemConfig) => number;
12
- /**
13
- * Recebe o DataUnit do ambiente. Se não for informado, procura pela referência
14
- * do SnkDataUnit. Necessário para se registrar como provedor de filtros.
15
- */
16
- dataUnit: DataUnit;
17
- /**
18
- * Eventualmente poderemos ter mais de uma barra de filtros. Essa propriedade
19
- * serve para separar a configuração de cada uma.
20
- */
21
- configName: string;
22
- /**
23
- * Lista de todos os filtros disponíveis ao usuário.
24
- */
25
- filterConfig: Array<SnkFilterItemConfig>;
26
- /**
27
- * Conforme mecanismo de mensagens, é possível customizar as mensagens dos blocos de construção
28
- * através de um pequeno modulo na estrutura da aplicação:
29
- * - Criar um arquivo no seguinte caminho: /messages/appmessages.msg.js.
30
- * Para conhecer os detalhes do módulo, vide o arquivo neste projeto "/src/lib/message/resources/snk-filter-bar.msg.ts"
31
- */
32
- private getMessage;
33
- getFilter(_dataUnit: string): Array<Filter>;
34
- buildDUFilter(item: SnkFilterItemConfig): {
35
- name: string;
36
- expression: any;
37
- params: any[];
38
- };
39
- componentWillLoad(): void;
40
- getFilterItems(): Array<HTMLElement>;
41
- calculateUpdateSequence(item: SnkFilterItemConfig): void;
42
- filterChangeListener(evt: CustomEvent): void;
43
- normalizeItem(item: SnkFilterItemConfig): SnkFilterItemConfig;
44
- updateFilter(newItem: SnkFilterItemConfig, clear?: boolean): boolean;
45
- getAddListItems(): Array<ListItem>;
46
- getActiveClass(): "" | "sc-snk-filter-bar snk-filter-bar__filter-list-items-button--active";
47
- getAppliedListItems(): Array<ListItem>;
48
- addFilterHandler(itemName: string): void;
49
- appliedFilterHandler(itemName: string): void;
50
- render(): any;
51
- }