@sankhyalabs/sankhyablocks 10.1.0-dev.23 → 10.1.0-dev.25

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 (176) hide show
  1. package/dist/cjs/{ConfigStorage-a4e1e518.js → ConfigStorage-d9d24844.js} +2 -2
  2. package/dist/cjs/{DataFetcher-0b6aa084.js → DataFetcher-3a8ea521.js} +2 -2743
  3. package/dist/cjs/{ISave-2c455a77.js → ISave-a66bb65e.js} +1 -1
  4. package/dist/cjs/ImageUtils-5e3f406b.js +142 -0
  5. package/dist/cjs/{SnkFormConfigManager-b8c81493.js → SnkFormConfigManager-c88cf1e9.js} +2 -2
  6. package/dist/cjs/SnkMessageBuilder-d9558dba.js +2809 -0
  7. package/dist/cjs/{SnkMultiSelectionListDataSource-03b58f5a.js → SnkMultiSelectionListDataSource-a891430e.js} +4 -4
  8. package/dist/cjs/{auth-fetcher-7e7796c9.js → auth-fetcher-faa61f64.js} +1 -1
  9. package/dist/cjs/{dataunit-fetcher-8dffbcdf.js → dataunit-fetcher-4320f7ec.js} +3 -2
  10. package/dist/cjs/{form-config-fetcher-5516d68a.js → form-config-fetcher-72cf0e3d.js} +1 -1
  11. package/dist/cjs/index-1894343a.js +10 -2
  12. package/dist/cjs/loader.cjs.js +1 -1
  13. package/dist/cjs/pesquisa-grid_2.cjs.entry.js +5 -4
  14. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  15. package/dist/cjs/{snk-actions-button_9.cjs.entry.js → snk-actions-button_8.cjs.entry.js} +7 -56
  16. package/dist/cjs/snk-application.cjs.entry.js +8 -7
  17. package/dist/cjs/snk-attach.cjs.entry.js +7 -6
  18. package/dist/cjs/snk-crud.cjs.entry.js +7 -6
  19. package/dist/cjs/snk-data-exporter.cjs.entry.js +6 -5
  20. package/dist/cjs/{snk-data-unit-036ce58c.js → snk-data-unit-b54fdf9a.js} +11 -11
  21. package/dist/cjs/snk-data-unit.cjs.entry.js +4 -3
  22. package/dist/cjs/snk-detail-view.cjs.entry.js +15 -11
  23. package/dist/cjs/snk-filter-bar_4.cjs.entry.js +4 -3
  24. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +4 -3
  25. package/dist/cjs/snk-form-view.cjs.entry.js +72 -7
  26. package/dist/cjs/snk-form_2.cjs.entry.js +5 -4
  27. package/dist/cjs/snk-grid.cjs.entry.js +10 -7
  28. package/dist/cjs/{snk-guides-viewer-164c063e.js → snk-guides-viewer-4bbd697f.js} +10 -9
  29. package/dist/cjs/snk-guides-viewer.cjs.entry.js +8 -7
  30. package/dist/cjs/snk-image-input.cjs.entry.js +148 -0
  31. package/dist/cjs/snk-layout-form-config.cjs.entry.js +72 -0
  32. package/dist/cjs/snk-personalized-filter.cjs.entry.js +4 -3
  33. package/dist/cjs/snk-pesquisa.cjs.entry.js +5 -4
  34. package/dist/cjs/snk-simple-crud.cjs.entry.js +8 -7
  35. package/dist/collection/collection-manifest.json +6 -0
  36. package/dist/collection/components/snk-application/snk-application.js +1 -1
  37. package/dist/collection/components/snk-crud/snk-crud.js +2 -2
  38. package/dist/collection/components/snk-crud/subcomponents/GuideBuilder.js +1 -1
  39. package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js +4 -1
  40. package/dist/collection/components/snk-crud/subcomponents/snk-form-view.js +93 -8
  41. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +5 -4
  42. package/dist/collection/components/snk-grid/snk-grid.js +3 -1
  43. package/dist/collection/components/snk-image-input/snk-image-input.css +3 -0
  44. package/dist/collection/components/snk-image-input/snk-image-input.js +326 -0
  45. package/dist/collection/components/snk-image-input/utils/ImageUtils.js +133 -0
  46. package/dist/collection/components/snk-layout-form-config/snk-layout-form-config.js +1 -1
  47. package/dist/collection/components/snk-layout-form-config/snk-view-representation/snk-view-representation.js +1 -1
  48. package/dist/collection/lib/message/messageResourceEnUSUtils.js +2 -0
  49. package/dist/collection/lib/message/messageResourceEsESUtils.js +2 -0
  50. package/dist/collection/lib/message/messageResourcePtBRUtils.js +2 -0
  51. package/dist/collection/lib/message/resources/en-us/snk-crud.msg.js +1 -1
  52. package/dist/collection/lib/message/resources/en-us/snk-image-input.msg.js +11 -0
  53. package/dist/collection/lib/message/resources/en-us/snk-layout-form-config.msg.js +10 -2
  54. package/dist/collection/lib/message/resources/es-es/snk-crud.msg.js +1 -1
  55. package/dist/collection/lib/message/resources/es-es/snk-image-input.msg.js +11 -0
  56. package/dist/collection/lib/message/resources/es-es/snk-layout-form-config.msg.js +8 -0
  57. package/dist/collection/lib/message/resources/pt-br/snk-configurator.msg.js +1 -1
  58. package/dist/collection/lib/message/resources/pt-br/snk-crud.msg.js +1 -1
  59. package/dist/collection/lib/message/resources/pt-br/snk-image-input.msg.js +11 -0
  60. package/dist/collection/lib/message/resources/pt-br/snk-layout-form-config.msg.js +10 -2
  61. package/dist/components/DataFetcher.js +3 -2743
  62. package/dist/components/SnkMessageBuilder.js +2807 -0
  63. package/dist/components/dataunit-fetcher.js +2 -1
  64. package/dist/components/index.d.ts +1 -0
  65. package/dist/components/index.js +1 -0
  66. package/dist/components/snk-application2.js +2 -1
  67. package/dist/components/snk-attach2.js +2 -1
  68. package/dist/components/snk-crud.js +70 -64
  69. package/dist/components/snk-data-unit2.js +1 -1
  70. package/dist/components/snk-detail-view2.js +105 -89
  71. package/dist/components/snk-form-view2.js +82 -10
  72. package/dist/components/snk-grid2.js +3 -1
  73. package/dist/components/snk-image-input.d.ts +11 -0
  74. package/dist/components/snk-image-input.js +6 -0
  75. package/dist/components/snk-image-input2.js +302 -0
  76. package/dist/components/snk-layout-form-config2.js +1 -1
  77. package/dist/components/snk-view-representation2.js +1 -1
  78. package/dist/esm/{ConfigStorage-39ac8fef.js → ConfigStorage-d15d2014.js} +2 -2
  79. package/dist/esm/{DataFetcher-0b9da57d.js → DataFetcher-1dd7e8c0.js} +3 -2743
  80. package/dist/esm/{ISave-f1c9269b.js → ISave-498c4831.js} +1 -1
  81. package/dist/esm/ImageUtils-8fc8d905.js +136 -0
  82. package/dist/esm/{SnkFormConfigManager-a87566c8.js → SnkFormConfigManager-86befa68.js} +2 -2
  83. package/dist/esm/SnkMessageBuilder-c0bc4424.js +2807 -0
  84. package/dist/esm/{SnkMultiSelectionListDataSource-01b3744b.js → SnkMultiSelectionListDataSource-14633bf6.js} +4 -4
  85. package/dist/esm/{auth-fetcher-acdc1cb4.js → auth-fetcher-69cbda8d.js} +1 -1
  86. package/dist/esm/{dataunit-fetcher-4c312b43.js → dataunit-fetcher-3d5c4ae4.js} +2 -1
  87. package/dist/esm/{form-config-fetcher-7cda6254.js → form-config-fetcher-fcc7b62f.js} +1 -1
  88. package/dist/esm/index-04f73a26.js +10 -2
  89. package/dist/esm/loader.js +1 -1
  90. package/dist/esm/pesquisa-grid_2.entry.js +5 -4
  91. package/dist/esm/sankhyablocks.js +1 -1
  92. package/dist/esm/{snk-actions-button_9.entry.js → snk-actions-button_8.entry.js} +8 -56
  93. package/dist/esm/snk-application.entry.js +7 -6
  94. package/dist/esm/snk-attach.entry.js +6 -5
  95. package/dist/esm/snk-crud.entry.js +7 -6
  96. package/dist/esm/snk-data-exporter.entry.js +6 -5
  97. package/dist/esm/{snk-data-unit-130021b3.js → snk-data-unit-363c3551.js} +2 -2
  98. package/dist/esm/snk-data-unit.entry.js +4 -3
  99. package/dist/esm/snk-detail-view.entry.js +13 -9
  100. package/dist/esm/snk-filter-bar_4.entry.js +4 -3
  101. package/dist/esm/snk-filter-modal-item.entry.js +4 -3
  102. package/dist/esm/snk-form-view.entry.js +73 -8
  103. package/dist/esm/snk-form_2.entry.js +5 -4
  104. package/dist/esm/snk-grid.entry.js +10 -7
  105. package/dist/esm/{snk-guides-viewer-3fd18298.js → snk-guides-viewer-97708c80.js} +10 -9
  106. package/dist/esm/snk-guides-viewer.entry.js +8 -7
  107. package/dist/esm/snk-image-input.entry.js +144 -0
  108. package/dist/esm/snk-layout-form-config.entry.js +68 -0
  109. package/dist/esm/snk-personalized-filter.entry.js +4 -3
  110. package/dist/esm/snk-pesquisa.entry.js +5 -4
  111. package/dist/esm/snk-simple-crud.entry.js +8 -7
  112. package/dist/sankhyablocks/p-10cad767.entry.js +1 -0
  113. package/dist/sankhyablocks/p-18cc9111.entry.js +1 -0
  114. package/dist/sankhyablocks/{p-5e2dffc1.entry.js → p-1df34264.entry.js} +2 -2
  115. package/dist/sankhyablocks/p-27d6590e.js +1 -0
  116. package/dist/sankhyablocks/p-2a356340.entry.js +1 -0
  117. package/dist/sankhyablocks/{p-998a9d6f.js → p-2ccbbeec.js} +1 -1
  118. package/dist/sankhyablocks/p-30641d55.entry.js +1 -0
  119. package/dist/sankhyablocks/{p-48a5c311.js → p-32ad76cc.js} +2 -2
  120. package/dist/sankhyablocks/p-3b07c117.entry.js +1 -0
  121. package/dist/sankhyablocks/p-43d84207.entry.js +1 -0
  122. package/dist/sankhyablocks/p-48c580b9.entry.js +1 -0
  123. package/dist/sankhyablocks/p-4ff3b494.js +1 -0
  124. package/dist/sankhyablocks/p-685bc841.js +60 -0
  125. package/dist/sankhyablocks/{p-d714b6ca.js → p-7c4f4851.js} +1 -1
  126. package/dist/sankhyablocks/{p-2ac55a5d.js → p-7e9f8fa4.js} +1 -1
  127. package/dist/sankhyablocks/{p-1f310bc6.js → p-9114e869.js} +1 -1
  128. package/dist/sankhyablocks/p-a65559fe.entry.js +1 -0
  129. package/dist/sankhyablocks/{p-7ee6b1bf.js → p-a9839628.js} +1 -1
  130. package/dist/sankhyablocks/p-b2b56f04.js +1 -0
  131. package/dist/sankhyablocks/p-bb81a356.entry.js +1 -0
  132. package/dist/sankhyablocks/p-bdf0077f.js +1 -0
  133. package/dist/sankhyablocks/p-bf65dcc1.entry.js +1 -0
  134. package/dist/sankhyablocks/p-c6a97fda.entry.js +1 -0
  135. package/dist/sankhyablocks/p-c860552e.entry.js +1 -0
  136. package/dist/sankhyablocks/p-c9316c5d.entry.js +1 -0
  137. package/dist/sankhyablocks/p-e0a6818c.js +1 -0
  138. package/dist/sankhyablocks/p-e0e3914e.entry.js +1 -0
  139. package/dist/sankhyablocks/p-e973a5d4.entry.js +1 -0
  140. package/dist/sankhyablocks/p-ebce5394.entry.js +1 -0
  141. package/dist/sankhyablocks/p-fc5e95f4.entry.js +1 -0
  142. package/dist/sankhyablocks/p-fce86770.entry.js +1 -0
  143. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  144. package/dist/types/components/snk-application/snk-application.d.ts +1 -1
  145. package/dist/types/components/snk-crud/subcomponents/snk-form-view.d.ts +12 -0
  146. package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +1 -0
  147. package/dist/types/components/snk-image-input/snk-image-input.d.ts +56 -0
  148. package/dist/types/components/snk-image-input/utils/ImageUtils.d.ts +15 -0
  149. package/dist/types/components.d.ts +89 -0
  150. package/dist/types/lib/message/resources/en-us/snk-image-input.msg.d.ts +1 -0
  151. package/dist/types/lib/message/resources/es-es/snk-image-input.msg.d.ts +1 -0
  152. package/dist/types/lib/message/resources/pt-br/snk-image-input.msg.d.ts +1 -0
  153. package/package.json +1 -1
  154. package/react/components.d.ts +1 -0
  155. package/react/components.js +1 -0
  156. package/react/components.js.map +1 -1
  157. package/dist/sankhyablocks/p-12f595a6.entry.js +0 -1
  158. package/dist/sankhyablocks/p-18d66638.entry.js +0 -1
  159. package/dist/sankhyablocks/p-2a33d4cf.entry.js +0 -1
  160. package/dist/sankhyablocks/p-2c6be187.entry.js +0 -1
  161. package/dist/sankhyablocks/p-3a443150.entry.js +0 -1
  162. package/dist/sankhyablocks/p-3b6d8d33.entry.js +0 -1
  163. package/dist/sankhyablocks/p-3db72758.entry.js +0 -1
  164. package/dist/sankhyablocks/p-52691b42.js +0 -1
  165. package/dist/sankhyablocks/p-6768f176.js +0 -1
  166. package/dist/sankhyablocks/p-6d322b0a.js +0 -1
  167. package/dist/sankhyablocks/p-877d9614.entry.js +0 -1
  168. package/dist/sankhyablocks/p-94267a30.entry.js +0 -1
  169. package/dist/sankhyablocks/p-9e4555ab.js +0 -60
  170. package/dist/sankhyablocks/p-acd2ba28.entry.js +0 -1
  171. package/dist/sankhyablocks/p-b533edab.entry.js +0 -1
  172. package/dist/sankhyablocks/p-c2d33fc8.entry.js +0 -1
  173. package/dist/sankhyablocks/p-cd40c8cf.entry.js +0 -1
  174. package/dist/sankhyablocks/p-cd412add.entry.js +0 -1
  175. package/dist/sankhyablocks/p-d6dad5e4.entry.js +0 -1
  176. package/dist/sankhyablocks/p-f8c5395a.entry.js +0 -1
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  const core = require('@sankhyalabs/core');
4
- const DataFetcher = require('./DataFetcher-0b6aa084.js');
4
+ const DataFetcher = require('./DataFetcher-3a8ea521.js');
5
5
 
6
6
  function buildGridMetadata(rawValue) {
7
7
  const fieldsMetadata = buildFieldsMetadata(rawValue.fieldsMetadata);
@@ -0,0 +1,142 @@
1
+ 'use strict';
2
+
3
+ const core = require('@sankhyalabs/core');
4
+
5
+ async function base64ToBlob(base64) {
6
+ const response = await fetch(base64);
7
+ return await response.blob();
8
+ }
9
+ function buildFileKey(entityName, fieldName) {
10
+ if (entityName) {
11
+ return `${entityName}_${fieldName}`;
12
+ }
13
+ else {
14
+ return fieldName;
15
+ }
16
+ }
17
+ function hasSpecialCharacters(value) {
18
+ const specialChars = /[ !@#$%^&*()+\-=\[\]{};':"\\|,.<>\/?]/;
19
+ return specialChars.test(value);
20
+ }
21
+ /**
22
+ * Gera a URL base para upload de sessão
23
+ */
24
+ function getSessionUploadBaseUrl(fileKey, context = 'mge') {
25
+ let url = `/${context}/sessionUpload.${context}?sessionkey=${fileKey}`;
26
+ // Verifica se precisa processar caracteres especiais
27
+ if (canProcessSpecialKeys(context) && hasSpecialCharacters(fileKey)) {
28
+ url += `&encodedKey=${btoa(encodeURI(fileKey))}`;
29
+ }
30
+ return url;
31
+ }
32
+ /**
33
+ * Verifica se pode processar chaves especiais
34
+ * Baseado no método canProcessSpecialKeys do sessionfileupload.service.js
35
+ */
36
+ async function canProcessSpecialKeys(context) {
37
+ var _a;
38
+ const application = core.ApplicationContext.getContextValue("__SNK__APPLICATION__");
39
+ if (!application)
40
+ return false;
41
+ const resourceId = await ((_a = application.getResourceID) === null || _a === void 0 ? void 0 : _a.call(application)) || '';
42
+ const adPrefix = "br.com.sankhya.menu.adicional";
43
+ return context === 'mge' && resourceId.startsWith(adPrefix);
44
+ }
45
+ /**
46
+ * Constrói a URL de upload
47
+ * Baseado no método buildUploadURL do sessionfileupload.service.js
48
+ */
49
+ function buildUploadURL(fileKey) {
50
+ let url = getSessionUploadBaseUrl(fileKey);
51
+ url += "&fitem=S&salvar=S&useCache=N";
52
+ return url;
53
+ }
54
+ /**
55
+ * Faz upload de arquivo para a sessão usando XMLHttpRequest
56
+ * Baseado no método uploadSessionFile do sessionfileupload.service.js
57
+ */
58
+ async function sessionFileUpload(blob, entityName, fieldName, onProgress) {
59
+ const fileKey = buildFileKey(entityName, fieldName);
60
+ const uploadUrl = buildUploadURL(fileKey);
61
+ return new Promise((resolve, reject) => {
62
+ const formData = new FormData();
63
+ formData.append('arquivo', blob);
64
+ const http = new XMLHttpRequest();
65
+ http.addEventListener("load", () => {
66
+ if (http.status >= 200 && http.status < 300) {
67
+ resolve(`/mge/UPLOADING_${fileKey}.dbimage`);
68
+ }
69
+ else {
70
+ reject(new Error(`Upload failed: ${http.statusText}`));
71
+ }
72
+ });
73
+ http.addEventListener("error", () => {
74
+ reject(new Error('Upload error'));
75
+ });
76
+ if (onProgress) {
77
+ http.upload.addEventListener("progress", onProgress);
78
+ }
79
+ http.open("POST", uploadUrl);
80
+ http.send(formData);
81
+ });
82
+ }
83
+ function getUrlBase() {
84
+ return window.location.origin;
85
+ }
86
+ function getBaseUrl(pk, entityName, fieldName) {
87
+ if (!pk)
88
+ return undefined;
89
+ const baseUrl = getUrlBase();
90
+ let url = `${baseUrl}/mge/${entityName}@${fieldName}`;
91
+ for (const pkField in pk) {
92
+ url += `@${pkField}=${pk[pkField]}`;
93
+ }
94
+ url += '.dbimage';
95
+ return url;
96
+ }
97
+ function getPKs(dataUnit) {
98
+ if (!dataUnit) {
99
+ return undefined;
100
+ }
101
+ const pk = {};
102
+ const fields = dataUnit.metadata.fields;
103
+ const selectedRecord = dataUnit.getSelectedRecord();
104
+ fields.forEach((field) => {
105
+ if (field.properties['isPrimaryKey']) {
106
+ pk[field.name] = selectedRecord[field.name];
107
+ }
108
+ });
109
+ return pk;
110
+ }
111
+ async function imageBlobToBase64(blob) {
112
+ return new Promise((resolve, reject) => {
113
+ const reader = new FileReader();
114
+ reader.onloadend = () => {
115
+ resolve(reader.result);
116
+ };
117
+ reader.onerror = reject;
118
+ reader.readAsDataURL(blob);
119
+ });
120
+ }
121
+ async function downloadImage(pks, fieldName, entityName) {
122
+ const uploadUrl = getBaseUrl(pks, entityName, fieldName);
123
+ if (!uploadUrl) {
124
+ return;
125
+ }
126
+ try {
127
+ const response = await fetch(uploadUrl);
128
+ if (response.ok) {
129
+ const blob = await response.blob();
130
+ return await imageBlobToBase64(blob);
131
+ }
132
+ }
133
+ catch (error) {
134
+ console.error('Error downloading image:', error);
135
+ }
136
+ }
137
+
138
+ exports.base64ToBlob = base64ToBlob;
139
+ exports.buildFileKey = buildFileKey;
140
+ exports.downloadImage = downloadImage;
141
+ exports.getPKs = getPKs;
142
+ exports.sessionFileUpload = sessionFileUpload;
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  const core = require('@sankhyalabs/core');
4
- const ConfigStorage = require('./ConfigStorage-a4e1e518.js');
5
- const formConfigFetcher = require('./form-config-fetcher-5516d68a.js');
4
+ const ConfigStorage = require('./ConfigStorage-d9d24844.js');
5
+ const formConfigFetcher = require('./form-config-fetcher-72cf0e3d.js');
6
6
  const constants = require('./constants-6d82e405.js');
7
7
 
8
8
  class SnkFormConfigManager {