@sankhyalabs/sankhyablocks 10.1.0-dev.2 → 10.1.0-dev.21

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 (318) hide show
  1. package/dist/cjs/{ConfigStorage-5a73e979.js → ConfigStorage-a4e1e518.js} +2 -2
  2. package/dist/cjs/{DataFetcher-eeb3b0b7.js → DataFetcher-0b6aa084.js} +34 -24
  3. package/dist/cjs/{FormConfigHelper-ebb77625.js → FormConfigHelper-28fe4668.js} +44 -0
  4. package/dist/cjs/{ISave-861e9d6d.js → ISave-2c455a77.js} +4 -4
  5. package/dist/cjs/{PersonalizedFilterUtils-7259cf65.js → PersonalizedFilterUtils-eccb267a.js} +13 -0
  6. package/dist/cjs/{SnkFormConfigManager-8d4fded8.js → SnkFormConfigManager-b8c81493.js} +7 -7
  7. package/dist/cjs/{SnkMultiSelectionListDataSource-3b93f6a6.js → SnkMultiSelectionListDataSource-03b58f5a.js} +5 -5
  8. package/dist/cjs/{auth-fetcher-8d8acd69.js → auth-fetcher-7e7796c9.js} +1 -1
  9. package/dist/cjs/config-header.cjs.entry.js +1 -1
  10. package/dist/cjs/configs-button.cjs.entry.js +1 -1
  11. package/dist/cjs/css-shim-a27d231b.js +6 -0
  12. package/dist/cjs/{dataunit-fetcher-1cea0695.js → dataunit-fetcher-8dffbcdf.js} +1 -1
  13. package/dist/cjs/dom-ff96a4bc.js +75 -0
  14. package/dist/cjs/field-config_2.cjs.entry.js +3 -3
  15. package/dist/cjs/fields-layout.cjs.entry.js +7 -4
  16. package/dist/cjs/fields-selector.cjs.entry.js +2 -2
  17. package/dist/cjs/{form-config-fetcher-f347f884.js → form-config-fetcher-5516d68a.js} +1 -1
  18. package/dist/cjs/guides-configurator.cjs.entry.js +6 -4
  19. package/dist/cjs/{index-1cf293c1.js → index-1894343a.js} +1515 -171
  20. package/dist/cjs/{index-13d05f03.js → index-f0fe7e6e.js} +90 -21
  21. package/dist/cjs/loader.cjs.js +16 -2
  22. package/dist/cjs/pesquisa-grid_2.cjs.entry.js +5 -5
  23. package/dist/cjs/sankhyablocks.cjs.js +132 -4
  24. package/dist/cjs/shadow-css-7e3e0ab1.js +389 -0
  25. package/dist/cjs/snk-actions-button_9.cjs.entry.js +6 -6
  26. package/dist/cjs/snk-actions-form.cjs.entry.js +1 -1
  27. package/dist/cjs/snk-application.cjs.entry.js +100 -70
  28. package/dist/cjs/snk-attach.cjs.entry.js +8 -8
  29. package/dist/cjs/snk-client-confirm.cjs.entry.js +1 -1
  30. package/dist/cjs/snk-configurator.cjs.entry.js +1 -1
  31. package/dist/cjs/snk-crud.cjs.entry.js +100 -9
  32. package/dist/cjs/snk-custom-slot-elements.cjs.entry.js +1 -1
  33. package/dist/cjs/snk-custom-slot-guide.cjs.entry.js +40 -0
  34. package/dist/cjs/snk-data-exporter.cjs.entry.js +6 -6
  35. package/dist/cjs/{snk-data-unit-de248308.js → snk-data-unit-036ce58c.js} +12 -3
  36. package/dist/cjs/snk-data-unit.cjs.entry.js +4 -4
  37. package/dist/cjs/snk-default-filter.cjs.entry.js +1 -1
  38. package/dist/cjs/snk-detail-view.cjs.entry.js +10 -10
  39. package/dist/cjs/snk-entity-list.cjs.entry.js +1 -1
  40. package/dist/cjs/snk-exporter-email-sender.cjs.entry.js +1 -1
  41. package/dist/cjs/snk-expression-group_2.cjs.entry.js +2 -2
  42. package/dist/cjs/snk-filter-advanced-mode_2.cjs.entry.js +2 -2
  43. package/dist/cjs/snk-filter-bar_4.cjs.entry.js +58 -25
  44. package/dist/cjs/snk-filter-binary-select.cjs.entry.js +1 -1
  45. package/dist/cjs/snk-filter-checkbox-list.cjs.entry.js +1 -1
  46. package/dist/cjs/snk-filter-detail.cjs.entry.js +2 -2
  47. package/dist/cjs/snk-filter-field-search_2.cjs.entry.js +2 -2
  48. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +4 -4
  49. package/dist/cjs/snk-filter-multi-select.cjs.entry.js +1 -1
  50. package/dist/cjs/snk-filter-number.cjs.entry.js +2 -2
  51. package/dist/cjs/snk-filter-period.cjs.entry.js +11 -6
  52. package/dist/cjs/snk-filter-search.cjs.entry.js +1 -1
  53. package/dist/cjs/snk-filter-text.cjs.entry.js +2 -2
  54. package/dist/cjs/snk-form-summary.cjs.entry.js +1 -1
  55. package/dist/cjs/snk-form-view.cjs.entry.js +1 -1
  56. package/dist/cjs/snk-form_2.cjs.entry.js +33 -10
  57. package/dist/cjs/snk-grid.cjs.entry.js +28 -19
  58. package/dist/cjs/{snk-guides-viewer-4ec3e7e1.js → snk-guides-viewer-164c063e.js} +86 -40
  59. package/dist/cjs/snk-guides-viewer.cjs.entry.js +10 -10
  60. package/dist/cjs/snk-personalized-filter-editor.cjs.entry.js +1 -1
  61. package/dist/cjs/snk-personalized-filter.cjs.entry.js +6 -6
  62. package/dist/cjs/snk-pesquisa.cjs.entry.js +17 -6
  63. package/dist/cjs/snk-print-selector.cjs.entry.js +1 -1
  64. package/dist/cjs/snk-simple-bar.cjs.entry.js +1 -1
  65. package/dist/cjs/snk-simple-crud.cjs.entry.js +14 -21
  66. package/dist/cjs/snk-taskbar.cjs.entry.js +67 -51
  67. package/dist/cjs/{taskbar-elements-fb5d1e08.js → taskbar-elements-8a80420e.js} +2 -2
  68. package/dist/cjs/teste-pesquisa.cjs.entry.js +1 -1
  69. package/dist/collection/collection-manifest.json +2 -1
  70. package/dist/collection/components/snk-application/search-strategy/exec-prepared-search-advaced-mode.js +27 -0
  71. package/dist/collection/components/snk-application/search-strategy/exec-prepared-search-plus.js +5 -25
  72. package/dist/collection/components/snk-application/snk-application.js +105 -44
  73. package/dist/collection/components/snk-attach/snk-attach.js +1 -1
  74. package/dist/collection/components/snk-crud/snk-crud.js +151 -2
  75. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +133 -34
  76. package/dist/collection/components/snk-custom-slot-guide/snk-custom-slot-guide.css +3 -0
  77. package/dist/collection/components/snk-custom-slot-guide/snk-custom-slot-guide.js +95 -0
  78. package/dist/collection/components/snk-data-unit/snk-data-unit.js +9 -0
  79. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-number.js +2 -2
  80. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-period.js +11 -6
  81. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-text.js +1 -1
  82. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.css +4 -0
  83. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.js +7 -1
  84. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.css +1 -0
  85. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.js +15 -4
  86. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +30 -13
  87. package/dist/collection/components/snk-form-config/FormConfigHelper.js +42 -0
  88. package/dist/collection/components/snk-form-config/SnkFormConfigManager.js +6 -6
  89. package/dist/collection/components/snk-form-config/field-item/field-config/field-config.css +1 -0
  90. package/dist/collection/components/snk-form-config/fields-layout/fields-layout.css +16 -0
  91. package/dist/collection/components/snk-form-config/fields-layout/fields-layout.js +6 -3
  92. package/dist/collection/components/snk-form-config/guides-configurator/guides-configurator.css +3 -3
  93. package/dist/collection/components/snk-form-config/guides-configurator/guides-configurator.js +5 -3
  94. package/dist/collection/components/snk-form-config/snk-form-config.js +53 -6
  95. package/dist/collection/components/snk-grid/snk-grid.css +12 -0
  96. package/dist/collection/components/snk-grid/snk-grid.js +39 -12
  97. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-param-config/utils/PersonalizedFilterUtils.js +13 -0
  98. package/dist/collection/components/snk-pesquisa/snk-pesquisa.css +5 -1
  99. package/dist/collection/components/snk-pesquisa/snk-pesquisa.js +43 -0
  100. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +23 -12
  101. package/dist/collection/components/snk-taskbar/snk-taskbar.js +87 -48
  102. package/dist/collection/lib/http/data-fetcher/fetchers/pesquisa-fetcher.js +3 -3
  103. package/dist/collection/lib/message/SnkMessageBuilder.js +11 -2
  104. package/dist/collection/lib/message/resources/en-us/snk-form.msg.js +7 -0
  105. package/dist/collection/lib/message/resources/es-es/snk-form.msg.js +7 -0
  106. package/dist/collection/lib/message/resources/pt-br/snk-form.msg.js +8 -1
  107. package/dist/collection/lib/message/resources/pt-br/snk-pesquisa.msg.js +1 -1
  108. package/dist/components/DataFetcher.js +34 -4
  109. package/dist/components/ISave.js +3 -3
  110. package/dist/components/PersonalizedFilterUtils.js +13 -0
  111. package/dist/components/SnkFormConfigManager.js +6 -6
  112. package/dist/components/field-config2.js +44 -2
  113. package/dist/components/fields-layout2.js +6 -3
  114. package/dist/components/guides-configurator2.js +5 -3
  115. package/dist/components/index.d.ts +1 -0
  116. package/dist/components/index.js +1 -0
  117. package/dist/components/index2.js +90 -21
  118. package/dist/components/snk-application2.js +94 -63
  119. package/dist/components/snk-attach2.js +1 -1
  120. package/dist/components/snk-crud.js +96 -1
  121. package/dist/components/snk-custom-slot-guide.d.ts +11 -0
  122. package/dist/components/snk-custom-slot-guide.js +55 -0
  123. package/dist/components/snk-data-unit2.js +9 -0
  124. package/dist/components/snk-detail-view2.js +81 -34
  125. package/dist/components/snk-filter-bar2.js +30 -13
  126. package/dist/components/snk-filter-item2.js +8 -2
  127. package/dist/components/snk-filter-modal2.js +16 -6
  128. package/dist/components/snk-filter-number.js +2 -2
  129. package/dist/components/snk-filter-period.js +10 -5
  130. package/dist/components/snk-filter-text.js +1 -1
  131. package/dist/components/snk-form-config2.js +29 -5
  132. package/dist/components/snk-grid2.js +22 -11
  133. package/dist/components/snk-pesquisa2.js +14 -2
  134. package/dist/components/snk-simple-crud2.js +6 -12
  135. package/dist/components/snk-taskbar2.js +66 -49
  136. package/dist/esm/{ConfigStorage-568dc227.js → ConfigStorage-39ac8fef.js} +2 -2
  137. package/dist/esm/{DataFetcher-743feb3b.js → DataFetcher-0b9da57d.js} +34 -4
  138. package/dist/esm/{FormConfigHelper-4e42f0b6.js → FormConfigHelper-d09669f3.js} +43 -1
  139. package/dist/esm/{ISave-345481c1.js → ISave-f1c9269b.js} +4 -4
  140. package/dist/esm/{PersonalizedFilterUtils-2db38ff2.js → PersonalizedFilterUtils-d2439a9a.js} +13 -0
  141. package/dist/esm/{SnkFormConfigManager-d61df0c8.js → SnkFormConfigManager-a87566c8.js} +7 -7
  142. package/dist/esm/{SnkMultiSelectionListDataSource-ca8d7a09.js → SnkMultiSelectionListDataSource-01b3744b.js} +5 -5
  143. package/dist/esm/{auth-fetcher-c353127d.js → auth-fetcher-acdc1cb4.js} +1 -1
  144. package/dist/esm/config-header.entry.js +1 -1
  145. package/dist/esm/configs-button.entry.js +1 -1
  146. package/dist/esm/css-shim-9f2d321e.js +4 -0
  147. package/dist/esm/{dataunit-fetcher-7f2c61ca.js → dataunit-fetcher-4c312b43.js} +1 -1
  148. package/dist/esm/dom-64053c71.js +73 -0
  149. package/dist/esm/field-config_2.entry.js +3 -3
  150. package/dist/esm/fields-layout.entry.js +7 -4
  151. package/dist/esm/fields-selector.entry.js +2 -2
  152. package/dist/esm/{form-config-fetcher-898d2dd1.js → form-config-fetcher-7cda6254.js} +1 -1
  153. package/dist/esm/guides-configurator.entry.js +6 -4
  154. package/dist/esm/{index-479e1293.js → index-04f73a26.js} +1507 -171
  155. package/dist/esm/{index-446f9341.js → index-ea250be6.js} +90 -21
  156. package/dist/esm/loader.js +17 -3
  157. package/dist/esm/pesquisa-grid_2.entry.js +5 -5
  158. package/dist/esm/sankhyablocks.js +133 -5
  159. package/dist/esm/shadow-css-98135883.js +387 -0
  160. package/dist/esm/snk-actions-button_9.entry.js +6 -6
  161. package/dist/esm/snk-actions-form.entry.js +1 -1
  162. package/dist/esm/snk-application.entry.js +100 -70
  163. package/dist/esm/snk-attach.entry.js +8 -8
  164. package/dist/esm/snk-client-confirm.entry.js +1 -1
  165. package/dist/esm/snk-configurator.entry.js +1 -1
  166. package/dist/esm/snk-crud.entry.js +100 -9
  167. package/dist/esm/snk-custom-slot-elements.entry.js +1 -1
  168. package/dist/esm/snk-custom-slot-guide.entry.js +36 -0
  169. package/dist/esm/snk-data-exporter.entry.js +6 -6
  170. package/dist/esm/{snk-data-unit-60b338c5.js → snk-data-unit-130021b3.js} +12 -3
  171. package/dist/esm/snk-data-unit.entry.js +4 -4
  172. package/dist/esm/snk-default-filter.entry.js +1 -1
  173. package/dist/esm/snk-detail-view.entry.js +10 -10
  174. package/dist/esm/snk-entity-list.entry.js +1 -1
  175. package/dist/esm/snk-exporter-email-sender.entry.js +1 -1
  176. package/dist/esm/snk-expression-group_2.entry.js +2 -2
  177. package/dist/esm/snk-filter-advanced-mode_2.entry.js +2 -2
  178. package/dist/esm/snk-filter-bar_4.entry.js +58 -25
  179. package/dist/esm/snk-filter-binary-select.entry.js +1 -1
  180. package/dist/esm/snk-filter-checkbox-list.entry.js +1 -1
  181. package/dist/esm/snk-filter-detail.entry.js +2 -2
  182. package/dist/esm/snk-filter-field-search_2.entry.js +2 -2
  183. package/dist/esm/snk-filter-modal-item.entry.js +4 -4
  184. package/dist/esm/snk-filter-multi-select.entry.js +1 -1
  185. package/dist/esm/snk-filter-number.entry.js +2 -2
  186. package/dist/esm/snk-filter-period.entry.js +11 -6
  187. package/dist/esm/snk-filter-search.entry.js +1 -1
  188. package/dist/esm/snk-filter-text.entry.js +2 -2
  189. package/dist/esm/snk-form-summary.entry.js +1 -1
  190. package/dist/esm/snk-form-view.entry.js +1 -1
  191. package/dist/esm/snk-form_2.entry.js +33 -10
  192. package/dist/esm/snk-grid.entry.js +28 -19
  193. package/dist/esm/{snk-guides-viewer-339e10b3.js → snk-guides-viewer-3fd18298.js} +86 -40
  194. package/dist/esm/snk-guides-viewer.entry.js +10 -10
  195. package/dist/esm/snk-personalized-filter-editor.entry.js +1 -1
  196. package/dist/esm/snk-personalized-filter.entry.js +6 -6
  197. package/dist/esm/snk-pesquisa.entry.js +17 -6
  198. package/dist/esm/snk-print-selector.entry.js +1 -1
  199. package/dist/esm/snk-simple-bar.entry.js +1 -1
  200. package/dist/esm/snk-simple-crud.entry.js +14 -21
  201. package/dist/esm/snk-taskbar.entry.js +68 -52
  202. package/dist/esm/{taskbar-elements-faaf5d8f.js → taskbar-elements-d1e63fb2.js} +2 -2
  203. package/dist/esm/teste-pesquisa.entry.js +1 -1
  204. package/dist/sankhyablocks/{p-7f7fe6c4.entry.js → p-0a160fb5.entry.js} +1 -1
  205. package/dist/sankhyablocks/{p-144da1d1.entry.js → p-12f595a6.entry.js} +1 -1
  206. package/dist/sankhyablocks/{p-162bddae.entry.js → p-175c9576.entry.js} +1 -1
  207. package/dist/sankhyablocks/p-18d66638.entry.js +1 -0
  208. package/dist/sankhyablocks/{p-1788d191.js → p-1f310bc6.js} +1 -1
  209. package/dist/sankhyablocks/{p-c4fcf1fb.entry.js → p-27e0cd68.entry.js} +1 -1
  210. package/dist/sankhyablocks/p-2a33d4cf.entry.js +1 -0
  211. package/dist/sankhyablocks/p-2ac55a5d.js +1 -0
  212. package/dist/sankhyablocks/{p-9a63f3f7.entry.js → p-2b882835.entry.js} +1 -1
  213. package/dist/sankhyablocks/{p-1f8cb438.entry.js → p-2c6be187.entry.js} +1 -1
  214. package/dist/sankhyablocks/p-2c9d0870.js +2 -0
  215. package/dist/sankhyablocks/{p-cb4343c4.entry.js → p-2cc2526e.entry.js} +1 -1
  216. package/dist/sankhyablocks/{p-75af335e.entry.js → p-2ebda226.entry.js} +1 -1
  217. package/dist/sankhyablocks/{p-093f58fa.entry.js → p-2f94cf87.entry.js} +1 -1
  218. package/dist/sankhyablocks/p-3a35917e.entry.js +1 -0
  219. package/dist/sankhyablocks/p-3a443150.entry.js +1 -0
  220. package/dist/sankhyablocks/{p-c90f337a.entry.js → p-3b6d8d33.entry.js} +1 -1
  221. package/dist/sankhyablocks/p-3db72758.entry.js +1 -0
  222. package/dist/sankhyablocks/{p-e8c49c12.js → p-48a5c311.js} +2 -2
  223. package/dist/sankhyablocks/p-52691b42.js +1 -0
  224. package/dist/sankhyablocks/{p-27482793.entry.js → p-5aae5c74.entry.js} +1 -1
  225. package/dist/sankhyablocks/p-6564180d.entry.js +1 -0
  226. package/dist/sankhyablocks/{p-6d241415.js → p-6768f176.js} +1 -1
  227. package/dist/sankhyablocks/p-68c1a093.js +1 -0
  228. package/dist/sankhyablocks/p-6d322b0a.js +1 -0
  229. package/dist/sankhyablocks/{p-7b3ca294.entry.js → p-7150eacf.entry.js} +1 -1
  230. package/dist/sankhyablocks/{p-825098c1.entry.js → p-752c57f4.entry.js} +1 -1
  231. package/dist/sankhyablocks/{p-49ddc27a.entry.js → p-752f4e29.entry.js} +1 -1
  232. package/dist/sankhyablocks/{p-e258de96.entry.js → p-76729994.entry.js} +1 -1
  233. package/dist/sankhyablocks/{p-7fc46290.js → p-7ee6b1bf.js} +1 -1
  234. package/dist/sankhyablocks/{p-27005fac.entry.js → p-877d9614.entry.js} +1 -1
  235. package/dist/sankhyablocks/p-8b4d6719.js +1 -0
  236. package/dist/sankhyablocks/{p-3d41f5a8.entry.js → p-8d946600.entry.js} +1 -1
  237. package/dist/sankhyablocks/{p-96d45943.entry.js → p-90ae6c2e.entry.js} +1 -1
  238. package/dist/sankhyablocks/p-94267a30.entry.js +1 -0
  239. package/dist/sankhyablocks/{p-59b8f277.js → p-998a9d6f.js} +1 -1
  240. package/dist/sankhyablocks/{p-21107f0d.entry.js → p-9c1ff75e.entry.js} +1 -1
  241. package/dist/sankhyablocks/{p-2fdac5e6.entry.js → p-9e109f5e.entry.js} +1 -1
  242. package/dist/sankhyablocks/{p-88ed2793.js → p-9e4555ab.js} +1 -1
  243. package/dist/sankhyablocks/p-a46ac091.js +1 -0
  244. package/dist/sankhyablocks/p-a73b6b00.js +1 -0
  245. package/dist/sankhyablocks/{p-164c822d.entry.js → p-acd2ba28.entry.js} +1 -1
  246. package/dist/sankhyablocks/{p-180716b2.entry.js → p-ae326d06.entry.js} +1 -1
  247. package/dist/sankhyablocks/p-b471bfab.entry.js +1 -0
  248. package/dist/sankhyablocks/p-b533edab.entry.js +1 -0
  249. package/dist/sankhyablocks/p-b555ce38.entry.js +1 -0
  250. package/dist/sankhyablocks/p-c2d33fc8.entry.js +1 -0
  251. package/dist/sankhyablocks/p-c3ec6642.js +19 -0
  252. package/dist/sankhyablocks/{p-91a9abb6.entry.js → p-c8043a53.entry.js} +1 -1
  253. package/dist/sankhyablocks/{p-c3dbf441.entry.js → p-cc64239c.entry.js} +1 -1
  254. package/dist/sankhyablocks/{p-b987e15d.js → p-cc9935af.js} +1 -1
  255. package/dist/sankhyablocks/{p-471b34f4.entry.js → p-cd00a3d1.entry.js} +1 -1
  256. package/dist/sankhyablocks/{p-b7e891cc.entry.js → p-cd40c8cf.entry.js} +1 -1
  257. package/dist/sankhyablocks/{p-bd203e8d.entry.js → p-cd412add.entry.js} +1 -1
  258. package/dist/sankhyablocks/{p-4c763b10.entry.js → p-d657f71f.entry.js} +1 -1
  259. package/dist/sankhyablocks/{p-e6b1c769.entry.js → p-d6dad5e4.entry.js} +1 -1
  260. package/dist/sankhyablocks/p-d714b6ca.js +1 -0
  261. package/dist/sankhyablocks/p-da455c82.js +12 -0
  262. package/dist/sankhyablocks/p-e30acdca.entry.js +1 -0
  263. package/dist/sankhyablocks/p-ec9027a7.entry.js +1 -0
  264. package/dist/sankhyablocks/p-ef9343c3.entry.js +1 -0
  265. package/dist/sankhyablocks/{p-667cab42.entry.js → p-f152ef98.entry.js} +1 -1
  266. package/dist/sankhyablocks/{p-7e250432.entry.js → p-f7170e10.entry.js} +1 -1
  267. package/dist/sankhyablocks/p-f8c5395a.entry.js +1 -0
  268. package/dist/sankhyablocks/{p-7345782c.entry.js → p-f921270b.entry.js} +1 -1
  269. package/dist/sankhyablocks/p-fa087ab2.entry.js +11 -0
  270. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  271. package/dist/types/components/snk-application/search-strategy/exec-prepared-search-advaced-mode.d.ts +5 -0
  272. package/dist/types/components/snk-application/snk-application.d.ts +9 -0
  273. package/dist/types/components/snk-crud/snk-crud.d.ts +22 -0
  274. package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +23 -0
  275. package/dist/types/components/snk-custom-slot-guide/snk-custom-slot-guide.d.ts +16 -0
  276. package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +1 -0
  277. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-period.d.ts +1 -0
  278. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-item.d.ts +1 -1
  279. package/dist/types/components/snk-filter-bar/filter-modal/snk-filter-modal.d.ts +2 -1
  280. package/dist/types/components/snk-form-config/FormConfigHelper.d.ts +6 -1
  281. package/dist/types/components/snk-form-config/SnkFormConfigManager.d.ts +1 -1
  282. package/dist/types/components/snk-form-config/fields-layout/fields-layout.d.ts +2 -2
  283. package/dist/types/components/snk-form-config/guides-configurator/guides-configurator.d.ts +1 -1
  284. package/dist/types/components/snk-form-config/snk-form-config.d.ts +9 -2
  285. package/dist/types/components/snk-grid/snk-grid.d.ts +6 -0
  286. package/dist/types/components/snk-personalized-filter/interfaces/IParameter.d.ts +1 -0
  287. package/dist/types/components/snk-pesquisa/snk-pesquisa.d.ts +8 -0
  288. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +4 -1
  289. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +12 -4
  290. package/dist/types/components.d.ts +113 -0
  291. package/dist/types/lib/http/data-fetcher/fetchers/pesquisa-fetcher.d.ts +1 -0
  292. package/package.json +1 -1
  293. package/react/components.d.ts +1 -0
  294. package/react/components.js +1 -0
  295. package/react/components.js.map +1 -1
  296. package/dist/sankhyablocks/p-0cf9aa38.js +0 -1
  297. package/dist/sankhyablocks/p-11346b8d.entry.js +0 -1
  298. package/dist/sankhyablocks/p-1649f51e.entry.js +0 -1
  299. package/dist/sankhyablocks/p-1d585081.js +0 -1
  300. package/dist/sankhyablocks/p-3ed04f0d.entry.js +0 -1
  301. package/dist/sankhyablocks/p-4759912d.entry.js +0 -1
  302. package/dist/sankhyablocks/p-55798617.js +0 -1
  303. package/dist/sankhyablocks/p-56948f00.entry.js +0 -11
  304. package/dist/sankhyablocks/p-60dd1d27.entry.js +0 -1
  305. package/dist/sankhyablocks/p-626b7a17.js +0 -1
  306. package/dist/sankhyablocks/p-8f73da95.js +0 -1
  307. package/dist/sankhyablocks/p-95c71f5e.entry.js +0 -1
  308. package/dist/sankhyablocks/p-988afe78.js +0 -1
  309. package/dist/sankhyablocks/p-9f2cdaab.entry.js +0 -1
  310. package/dist/sankhyablocks/p-9fe91526.js +0 -1
  311. package/dist/sankhyablocks/p-a5108625.entry.js +0 -1
  312. package/dist/sankhyablocks/p-aae4258d.entry.js +0 -1
  313. package/dist/sankhyablocks/p-af9d79e0.entry.js +0 -1
  314. package/dist/sankhyablocks/p-bb0de89c.entry.js +0 -1
  315. package/dist/sankhyablocks/p-d8d8169b.js +0 -2
  316. package/dist/sankhyablocks/p-e64958ba.entry.js +0 -1
  317. package/dist/sankhyablocks/p-f25c50f7.entry.js +0 -1
  318. package/dist/sankhyablocks/p-f8f29e1a.entry.js +0 -1
@@ -39,6 +39,8 @@ export const snkFormConfigMessages = {
39
39
  labelNewGroup: "Adicionar novo grupo",
40
40
  mainArea: "Área principal",
41
41
  tabGeneral: "Geral",
42
+ canNotEditCustomGuide: "Não é possível editar guias detalhe e guias personalizadas",
43
+ canNotEditDetailGuide: "Para realizar a configuração de uma tela de detalhes é necessário acessar a sua aba",
42
44
  createNewGroup: "Criar novo grupo",
43
45
  newGroup: "Criar novo grupo",
44
46
  noGuideSelected: "Selecione uma guia e comece a configurar",
@@ -66,6 +68,10 @@ export const snkFormConfigMessages = {
66
68
  title: "Atenção",
67
69
  message: "Selecione uma guia para iniciar a configuração!"
68
70
  },
71
+ canNotAddFieldToGuide: {
72
+ title: "Atenção",
73
+ message: "Não é possível adicionar campos à guias customizadas ou guias detalhe!"
74
+ },
69
75
  alert: {
70
76
  titleGroupExists: "Já existe um grupo com título",
71
77
  titleGroupEditing: "Há um <b>grupo<b/> em edição. <br/> Finalize a edição para salvar as configurações.",
@@ -96,10 +102,11 @@ export const snkFormConfigMessages = {
96
102
  createNewGuide: "Criar nova guia",
97
103
  noHiddenGuides: "Nenhuma guia oculta",
98
104
  noVisibleGuides: "Nenhuma guia visível",
105
+ canNotDeleteCustomGuide: "Não é possível excluir guias detalhe e guias personalizadas",
99
106
  actions: {
100
107
  hide: "Ocultar",
101
108
  show: "Tornar visível",
102
- delete: "Excluir"
109
+ delete: "Excluir",
103
110
  }
104
111
  }
105
112
  };
@@ -8,7 +8,7 @@ export const snkPesquisaMessages = {
8
8
  initialMessage: "Os resultados de sua pesquisa aparecerão aqui...",
9
9
  resultsFoundSingular: "1 registro encontrado",
10
10
  resultsFoundPlural: "{{COUNT}} registros encontrados",
11
- limitMessage: "Essa pesquisa foi limitada, existem mais resultados."
11
+ limitMessage: "Esta pesquisa foi limitada, existem mais resultados."
12
12
  },
13
13
  viewMode: {
14
14
  tableMode: "Modo grade",
@@ -7257,7 +7257,7 @@ const snkPesquisaMessages$2 = {
7257
7257
  initialMessage: "Os resultados de sua pesquisa aparecerão aqui...",
7258
7258
  resultsFoundSingular: "1 registro encontrado",
7259
7259
  resultsFoundPlural: "{{COUNT}} registros encontrados",
7260
- limitMessage: "Essa pesquisa foi limitada, existem mais resultados."
7260
+ limitMessage: "Esta pesquisa foi limitada, existem mais resultados."
7261
7261
  },
7262
7262
  viewMode: {
7263
7263
  tableMode: "Modo grade",
@@ -7438,6 +7438,8 @@ const snkFormConfigMessages$2 = {
7438
7438
  labelNewGroup: "Adicionar novo grupo",
7439
7439
  mainArea: "Área principal",
7440
7440
  tabGeneral: "Geral",
7441
+ canNotEditCustomGuide: "Não é possível editar guias detalhe e guias personalizadas",
7442
+ canNotEditDetailGuide: "Para realizar a configuração de uma tela de detalhes é necessário acessar a sua aba",
7441
7443
  createNewGroup: "Criar novo grupo",
7442
7444
  newGroup: "Criar novo grupo",
7443
7445
  noGuideSelected: "Selecione uma guia e comece a configurar",
@@ -7465,6 +7467,10 @@ const snkFormConfigMessages$2 = {
7465
7467
  title: "Atenção",
7466
7468
  message: "Selecione uma guia para iniciar a configuração!"
7467
7469
  },
7470
+ canNotAddFieldToGuide: {
7471
+ title: "Atenção",
7472
+ message: "Não é possível adicionar campos à guias customizadas ou guias detalhe!"
7473
+ },
7468
7474
  alert: {
7469
7475
  titleGroupExists: "Já existe um grupo com título",
7470
7476
  titleGroupEditing: "Há um <b>grupo<b/> em edição. <br/> Finalize a edição para salvar as configurações.",
@@ -7495,10 +7501,11 @@ const snkFormConfigMessages$2 = {
7495
7501
  createNewGuide: "Criar nova guia",
7496
7502
  noHiddenGuides: "Nenhuma guia oculta",
7497
7503
  noVisibleGuides: "Nenhuma guia visível",
7504
+ canNotDeleteCustomGuide: "Não é possível excluir guias detalhe e guias personalizadas",
7498
7505
  actions: {
7499
7506
  hide: "Ocultar",
7500
7507
  show: "Tornar visível",
7501
- delete: "Excluir"
7508
+ delete: "Excluir",
7502
7509
  }
7503
7510
  }
7504
7511
  };
@@ -8296,6 +8303,8 @@ const snkFormConfigMessages$1 = {
8296
8303
  labelNewGroup: "Add new group",
8297
8304
  mainArea: "Main area",
8298
8305
  tabGeneral: "General",
8306
+ canNotEditCustomGuide: "It is not possible to edit detail tabs and custom tabs",
8307
+ canNotEditDetailGuide: "To configure a detail screen, you must access its tab",
8299
8308
  createNewGroup: "Create new group",
8300
8309
  newGroup: "New group",
8301
8310
  noGuideSelected: "Select a tab and start configuring",
@@ -8323,6 +8332,10 @@ const snkFormConfigMessages$1 = {
8323
8332
  title: "Attention",
8324
8333
  message: "Select a guide to start configuration!"
8325
8334
  },
8335
+ canNotAddFieldToGuide: {
8336
+ title: "Attention",
8337
+ message: "It is not possible to add fields to detail tabs or custom tabs!"
8338
+ },
8326
8339
  alert: {
8327
8340
  titleGroupExists: "A group with this title already exists",
8328
8341
  titleGroupEditing: "There is a <b>group<b/> being edited. <br/> Finish editing to save the settings.",
@@ -8353,6 +8366,7 @@ const snkFormConfigMessages$1 = {
8353
8366
  createNewGuide: "Create new tab",
8354
8367
  noHiddenGuides: "No hidden tabs",
8355
8368
  noVisibleGuides: "No visible tabs",
8369
+ canNotDeleteCustomGuide: "Is not possible to detail detail tabs os a custom tabs",
8356
8370
  actions: {
8357
8371
  hide: "Hide",
8358
8372
  show: "Make visible",
@@ -9154,6 +9168,8 @@ const snkFormConfigMessages = {
9154
9168
  labelNewGroup: "Añadir nuevo grupo",
9155
9169
  mainArea: "Área principal",
9156
9170
  tabGeneral: "General",
9171
+ canNotEditCustomGuide: "No es posible editar pestañas de detalles y pestañas personalizadas",
9172
+ canNotEditDetailGuide: "Para realizar la configuración de una pantalla de detalles es necesario acceder a su pestaña",
9157
9173
  createNewGroup: "Crear nuevo grupo",
9158
9174
  newGroup: "Nuevo grupo",
9159
9175
  noGuideSelected: "Seleccione una pestaña y comience a configurar",
@@ -9181,6 +9197,10 @@ const snkFormConfigMessages = {
9181
9197
  title: "Atención",
9182
9198
  message: "¡Seleccione una guía para iniciar la configuración!"
9183
9199
  },
9200
+ canNotAddFieldToGuide: {
9201
+ title: "Atención",
9202
+ message: "¡No es posible agregar campos a pestañas de detalles o pestañas personalizadas!"
9203
+ },
9184
9204
  alert: {
9185
9205
  titleGroupExists: "Ya existe un grupo con título",
9186
9206
  titleGroupEditing: "Hay un <b>grupo<b/> en edición. <br/> Finalice la edición para guardar las configuraciones.",
@@ -9211,6 +9231,7 @@ const snkFormConfigMessages = {
9211
9231
  createNewGuide: "Crear nueva pestaña",
9212
9232
  noHiddenGuides: "No hay pestañas ocultas",
9213
9233
  noVisibleGuides: "No hay pestañas visibles",
9234
+ canNotDeleteCustomGuide: "No es posible eliminar pestañas de detalles o pestañas personalizadas",
9214
9235
  actions: {
9215
9236
  hide: "Ocultar",
9216
9237
  show: "Hacer visible",
@@ -9394,8 +9415,17 @@ class SnkMessageBuilder {
9394
9415
  const messagesUrl = await this._application.getApplicationPath();
9395
9416
  const langSuffix = (this._lang !== LangUtils.ELanguages.PT_BR) ? `-${this._lang}` : "";
9396
9417
  const fileUrl = `${messagesUrl}/messages/appmessages${langSuffix}.js`;
9397
- const module = await import(/* webpackIgnore: true */ fileUrl);
9398
- return module === null || module === void 0 ? void 0 : module.default;
9418
+ const response = await fetch(fileUrl);
9419
+ if (!response.ok) {
9420
+ throw new Error(`Não foi possível carregar as mensagens: ${response.status} ${response.statusText}`);
9421
+ }
9422
+ let scriptContent = await response.text();
9423
+ if (scriptContent.trim().startsWith('<!DOCTYPE') || scriptContent.trim().startsWith('<html')) {
9424
+ throw new Error('Não foi encontrado um arquivo de mensagens válido.');
9425
+ }
9426
+ scriptContent = scriptContent.replace(/export\s+default\s+/g, 'return ');
9427
+ const func = new Function(scriptContent);
9428
+ return func();
9399
9429
  }
9400
9430
  }
9401
9431
  var OperationMap;
@@ -162,7 +162,7 @@ class PesquisaFetcher {
162
162
  return result;
163
163
  }
164
164
  loadAdvancedSearch(entityName, argument, criteria, searchOptions, codeValue) {
165
- var _a, _b, _c, _d, _e;
165
+ var _a, _b, _c, _d, _e, _f;
166
166
  const listenerResult = this.applySearchListener(SearchListenerType.beforeSearch, entityName, argument, criteria, searchOptions);
167
167
  const values = {
168
168
  argument: (listenerResult === null || listenerResult === void 0 ? void 0 : listenerResult.argument) || argument,
@@ -201,11 +201,11 @@ class PesquisaFetcher {
201
201
  };
202
202
  }
203
203
  const options = searchOptions != undefined
204
- ? Object.assign(Object.assign({}, values === null || values === void 0 ? void 0 : values.searchOptions), { "pkFieldName": searchOptions.codeFieldName, "label": searchOptions.descriptionFieldName, "fieldName": searchOptions.codeFieldName, "useDescriptionOptions": false, "enableRowsCounter": true }) : undefined;
204
+ ? Object.assign(Object.assign({}, values === null || values === void 0 ? void 0 : values.searchOptions), { "pkFieldName": searchOptions.codeFieldName, "label": searchOptions.descriptionFieldName, "fieldName": searchOptions.codeFieldName, "useDescriptionOptions": false, "enableRowsCounter": true, "limit": searchOptions.limit }) : undefined;
205
205
  const reqBody = {
206
206
  "serviceName": serviceName,
207
207
  "requestBody": {
208
- "criteria": Object.assign({ "entityName": entityName, "compacted": false, "ignoreEntityCriteria": (_d = options === null || options === void 0 ? void 0 : options.ignoreEntityCriteria) !== null && _d !== void 0 ? _d : false, "limit": this._defaultPageSize, "orderByDesc": false, "externalCriteria": externalCriteria, "localEntityName": (_e = values.searchOptions) === null || _e === void 0 ? void 0 : _e.rootEntity }, { options }),
208
+ "criteria": Object.assign({ "entityName": entityName, "compacted": false, "ignoreEntityCriteria": (_d = options === null || options === void 0 ? void 0 : options.ignoreEntityCriteria) !== null && _d !== void 0 ? _d : false, "limit": (_e = options === null || options === void 0 ? void 0 : options.limit) !== null && _e !== void 0 ? _e : this._defaultPageSize, "orderByDesc": false, "externalCriteria": externalCriteria, "localEntityName": (_f = values.searchOptions) === null || _f === void 0 ? void 0 : _f.rootEntity }, { options }),
209
209
  "clientEventList": {
210
210
  "clientEvent": []
211
211
  }
@@ -123,6 +123,9 @@ class PersonalizedFilterUtils {
123
123
  }
124
124
  else if (DataType.DATE == type) {
125
125
  value = this.convertDataValue(value);
126
+ if (value === undefined) {
127
+ return;
128
+ }
126
129
  }
127
130
  else if (DataType.BOOLEAN == type) {
128
131
  value = value ? "S" : "N";
@@ -148,9 +151,19 @@ class PersonalizedFilterUtils {
148
151
  return `?:{entidade=${expressionItem.entityName || ""};campo=${expressionItem.fieldName || ""}}`;
149
152
  }
150
153
  static convertDataValue(value) {
154
+ if (value == null || value === '' || value === undefined) {
155
+ return;
156
+ }
151
157
  if (typeof value == 'string') {
158
+ const trimmedValue = value.trim();
159
+ if (trimmedValue === '' || trimmedValue === '/' || trimmedValue === ' / /') {
160
+ return;
161
+ }
152
162
  value = new Date(value);
153
163
  }
164
+ if (value instanceof Date && isNaN(value.getTime())) {
165
+ return;
166
+ }
154
167
  return DateUtils.formatDate(value);
155
168
  }
156
169
  /*
@@ -1,5 +1,5 @@
1
- import { C as ConfigStorage } from './ConfigStorage.js';
2
1
  import { ObjectUtils, StringUtils } from '@sankhyalabs/core';
2
+ import { C as ConfigStorage } from './ConfigStorage.js';
3
3
  import { F as FormConfigFetcher } from './form-config-fetcher.js';
4
4
  import { T as TAB_NAMES } from './constants.js';
5
5
 
@@ -83,7 +83,7 @@ class SnkFormConfigManager {
83
83
  return false;
84
84
  }
85
85
  getFieldsList(descriptionFilter, forceEmptyConfig = false) {
86
- var _a;
86
+ var _a, _b;
87
87
  const fields = (_a = this._config) === null || _a === void 0 ? void 0 : _a.fields;
88
88
  const hasConfig = this.hasConfig();
89
89
  if (hasConfig && !forceEmptyConfig) {
@@ -99,7 +99,7 @@ class SnkFormConfigManager {
99
99
  })
100
100
  .filter(field => this.isFieldVisible(field, descriptionFilter));
101
101
  }
102
- if (!this._dataUnit) {
102
+ if (!this._dataUnit || !((_b = this._dataUnit.metadata) === null || _b === void 0 ? void 0 : _b.fields)) {
103
103
  return [];
104
104
  }
105
105
  const filteredFields = this._dataUnit.metadata.fields
@@ -179,7 +179,7 @@ class SnkFormConfigManager {
179
179
  return Array.isArray(object) ? object : [object];
180
180
  }
181
181
  buildFormMetadataUITabs(config, forceEmptyConfig = false) {
182
- var _a;
182
+ var _a, _b, _c;
183
183
  const hasConfig = this.hasConfig(config);
184
184
  if (!forceEmptyConfig && (!this._dataUnit || hasConfig)) {
185
185
  return config;
@@ -188,10 +188,10 @@ class SnkFormConfigManager {
188
188
  config.tabs = this.parseObjectList(config.tabs);
189
189
  config.emptyConfig = false;
190
190
  config.defaultConfiguration = true;
191
- const fields = this._dataUnit.metadata.fields;
191
+ const fields = (_b = (_a = this._dataUnit.metadata) === null || _a === void 0 ? void 0 : _a.fields) !== null && _b !== void 0 ? _b : [];
192
192
  for (const currentField of fields) {
193
193
  const field = config.fields.find(field => field.name === currentField.name);
194
- const uiTabName = (_a = currentField.properties) === null || _a === void 0 ? void 0 : _a.UITabName;
194
+ const uiTabName = (_c = currentField.properties) === null || _c === void 0 ? void 0 : _c.UITabName;
195
195
  if (!uiTabName || uiTabName === TAB_NAMES.main) {
196
196
  continue;
197
197
  }
@@ -112,6 +112,48 @@ function buildGuides(config, mainArea) {
112
112
  tabs = initializeTabsNames(tabs);
113
113
  return handleMainTab(tabs, mainArea);
114
114
  }
115
+ function buildChildrenGuides(dataUnit, initialOrderIndex = 0, guidesList) {
116
+ var _a;
117
+ if (!dataUnit || !dataUnit.metadata) {
118
+ return [];
119
+ }
120
+ const children = ((_a = dataUnit.metadata) === null || _a === void 0 ? void 0 : _a.children) || [];
121
+ const childrenWithNoGuide = [];
122
+ for (const child of children) {
123
+ const guideOnConfig = guidesList.find(guide => child.label === guide.label);
124
+ if (guideOnConfig) {
125
+ guideOnConfig.isCustom = true;
126
+ continue;
127
+ }
128
+ childrenWithNoGuide.push({
129
+ label: child.label,
130
+ name: child.name,
131
+ visible: true,
132
+ isCustom: true,
133
+ order: initialOrderIndex++
134
+ });
135
+ }
136
+ return childrenWithNoGuide;
137
+ }
138
+ function buildCustomGuides(customGuidesList, guidesList) {
139
+ let initialOrderIndex = guidesList.length;
140
+ const customGuidesToAdd = getCustomGuidesNotIncludedInList(customGuidesList, guidesList);
141
+ return customGuidesToAdd.map(guide => {
142
+ return {
143
+ name: guide.id,
144
+ label: guide.label,
145
+ visible: true,
146
+ isCustom: true,
147
+ order: initialOrderIndex++
148
+ };
149
+ });
150
+ }
151
+ function isCustomGuideIncludedInList(guidesList, guide) {
152
+ return guidesList.some(fromList => fromList.name === guide.id || fromList.label === guide.label);
153
+ }
154
+ function getCustomGuidesNotIncludedInList(customGuidesList, guidesList) {
155
+ return customGuidesList.filter(guide => !isCustomGuideIncludedInList(guidesList, guide));
156
+ }
115
157
  function handleFieldsTabNames(allFields) {
116
158
  // Campos que não fazem parte de nenhuma aba ou da aba "Geral", devem ser movidos para a aba __main.
117
159
  return allFields.map(field => {
@@ -247,7 +289,7 @@ function buildFieldToSave(fieldConfig) {
247
289
  return fieldToSave;
248
290
  }
249
291
 
250
- const fieldConfigCss = ".field-config-container.sc-field-config{font-family:'Roboto';color:#2b3a54;display:flex;flex-direction:column;gap:10px;width:330px;justify-content:space-between}.header.sc-field-config{display:flex;font-weight:500;font-size:16px}.actions.sc-field-config{display:flex;align-items:flex-end;gap:12px}";
292
+ const fieldConfigCss = ".field-config-container.sc-field-config{font-family:'Roboto';color:#2b3a54;display:flex;flex-direction:column;gap:10px;width:330px;justify-content:space-between}.header.sc-field-config{display:flex;font-weight:500;font-size:16px}.actions.sc-field-config{display:flex;align-items:flex-end;justify-content:flex-end;gap:12px}";
251
293
 
252
294
  const FieldConfig = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
253
295
  constructor() {
@@ -521,4 +563,4 @@ function defineCustomElement() {
521
563
  } });
522
564
  }
523
565
 
524
- export { FieldConfig as F, ID_AVAILABLE_FIELDS as I, SORTABLE_PATH as S, getFieldsStructure as a, buildGuides as b, buildGuidesMap as c, defineCustomElement as d, getFieldsToSave as e, buildNewGuideName as f, getIconName as g, updateTabInFieldsFromGroupList as u };
566
+ export { FieldConfig as F, ID_AVAILABLE_FIELDS as I, SORTABLE_PATH as S, getFieldsStructure as a, buildGuides as b, buildChildrenGuides as c, defineCustomElement as d, buildCustomGuides as e, buildGuidesMap as f, getIconName as g, getFieldsToSave as h, buildNewGuideName as i, updateTabInFieldsFromGroupList as u };
@@ -1,12 +1,12 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, forceUpdate, h, Host } from '@stencil/core/internal/client';
2
2
  import { StringUtils, ObjectUtils } from '@sankhyalabs/core';
3
+ import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
3
4
  import { S as Sortable } from './sortable.esm.js';
4
- import { S as SORTABLE_PATH, a as getFieldsStructure, d as defineCustomElement$2, I as ID_AVAILABLE_FIELDS } from './field-config2.js';
5
5
  import { T as TAB_NAMES, G as GROUP_NAMES } from './constants.js';
6
- import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
6
+ import { S as SORTABLE_PATH, a as getFieldsStructure, d as defineCustomElement$2, I as ID_AVAILABLE_FIELDS } from './field-config2.js';
7
7
  import { d as defineCustomElement$1 } from './field-item2.js';
8
8
 
9
- const fieldsLayoutCss = ".sc-fields-layout-h{display:flex;padding:12px;box-shadow:var(--shadow--small, 0 0 16px rgba(0, 38, 111, 0.07));border-radius:var(--border--radius-medium, 6px);height:var(--snk-form-config-container-height);flex-direction:column}.layout-container.sc-fields-layout{container-type:inline-size;display:flex;flex-direction:column;overflow:auto;height:calc(100vh - 225px)}.guide-header.sc-fields-layout{display:flex;width:100%;font-size:20px;border-bottom:1px solid #dce0e8;margin-bottom:6px;align-items:center;height:45px}.guide-header.sc-fields-layout ez-button.sc-fields-layout{transition:all 0.2s ease-in-out;visibility:hidden;opacity:0}.guide-header.sc-fields-layout:hover ez-button.sc-fields-layout{visibility:visible;opacity:1}.guide-header-label.sc-fields-layout{display:block;padding:10px 0}.group-config.sc-fields-layout{padding:12px 0;display:flex;flex-direction:column;width:100%}.group-content.sc-fields-layout{display:grid;gap:12px;min-height:65px;width:100%;padding:6px 0;grid-template-columns:repeat(auto-fill, minmax(250px, 1fr))}.group-content.empty-content.sc-fields-layout{position:relative}.group-content.empty-content.sc-fields-layout::before{content:var(--empty-content-message, \"Arraste e solte um campo aqui\");color:#cbcfd7;font-size:16px;font-weight:500;text-align:center;position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;transition:opacity 0.3s;height:100%;box-sizing:border-box;padding:10px;background:#f9f9f9;border:1px dashed #dce0e8;border-radius:6px}.no-group-container.sc-fields-layout{padding:12px 0;width:100%;border-bottom:1px solid #dce0e8}.no-group-container.sc-fields-layout::before{content:var(--no-group-message, \"Inclua estes campos nos grupos ou deixe-os separados no topo do formulário\");width:100%;display:block;font-size:16px;font-weight:400;color:#AFB6C0;padding-bottom:12px}.add-group-container.sc-fields-layout{display:flex;align-items:center;border-top:1px solid #dce0e8;padding-top:22px;padding-bottom:12px;gap:6px;cursor:pointer;justify-content:center;width:100%;height:55px}.no-guide-selected.sc-fields-layout{display:block;margin:auto;font-size:24px;color:#AFB6C0;font-weight:500}.ghost.sc-fields-layout{opacity:.5;background:#c8fbe2}";
9
+ const fieldsLayoutCss = ".sc-fields-layout-h{display:flex;padding:12px;box-shadow:var(--shadow--small, 0 0 16px rgba(0, 38, 111, 0.07));border-radius:var(--border--radius-medium, 6px);height:var(--snk-form-config-container-height);flex-direction:column}.layout-container.sc-fields-layout{container-type:inline-size;display:flex;flex-direction:column;overflow:auto;height:calc(100vh - 225px)}.guide-header.sc-fields-layout{display:flex;width:100%;font-size:20px;border-bottom:1px solid #dce0e8;margin-bottom:6px;align-items:center;height:45px}.guide-header.sc-fields-layout ez-button.sc-fields-layout{transition:all 0.2s ease-in-out;visibility:hidden;opacity:0}.guide-header.sc-fields-layout:hover ez-button.sc-fields-layout{visibility:visible;opacity:1}.guide-header-label.sc-fields-layout{display:block;padding:10px 0}.group-config.sc-fields-layout{padding:12px 0;display:flex;flex-direction:column;width:100%}.group-content.sc-fields-layout{display:grid;gap:12px;min-height:65px;width:100%;padding:6px 0;grid-template-columns:repeat(auto-fill, minmax(250px, 1fr))}.group-content.empty-content.sc-fields-layout{position:relative}.group-content.empty-content.sc-fields-layout::before{content:var(--empty-content-message, \"Arraste e solte um campo aqui\");color:#cbcfd7;font-size:16px;font-weight:500;text-align:center;position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;transition:opacity 0.3s;height:100%;box-sizing:border-box;padding:10px;background:#f9f9f9;border:1px dashed #dce0e8;border-radius:6px}.no-group-container.sc-fields-layout{padding:12px 0;width:100%;border-bottom:1px solid #dce0e8}.no-group-container.sc-fields-layout::before{content:var(--no-group-message, \"Inclua estes campos nos grupos ou deixe-os separados no topo do formulário\");width:100%;display:block;font-size:16px;font-weight:400;color:#AFB6C0;padding-bottom:12px}.add-group-container.sc-fields-layout{display:flex;align-items:center;border-top:1px solid #dce0e8;padding-top:22px;padding-bottom:12px;gap:6px;cursor:pointer;justify-content:center;width:100%;height:55px}.no-guide-selected.sc-fields-layout{display:block;margin:auto;font-size:24px;color:#AFB6C0;font-weight:500}.message-container.sc-fields-layout{margin:auto;display:flex;flex-direction:column;justify-content:center;align-items:center}.message-config-detail.sc-fields-layout{display:block;margin:auto;font-size:var(--font-size--medium, 16px);color:#AFB6C0;font-weight:var(--font-weight--medium, 500)}.ghost.sc-fields-layout{opacity:.5;background:#c8fbe2}";
10
10
 
11
11
  const FieldLayoutComponent = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
12
12
  constructor() {
@@ -331,6 +331,9 @@ const FieldLayoutComponent = /*@__PURE__*/ proxyCustomElement(class extends HTML
331
331
  if (!this.selectedGuide) {
332
332
  return (h(Host, { class: 'ez-flex-item--auto ez-size-height--full ez-box ez-padding--medium content-container' }, h("span", { class: 'no-guide-selected' }, this.getMessage('snkFormConfig.form.noGuideSelected'))));
333
333
  }
334
+ if (this.selectedGuide.isCustom || this.selectedGuide.isDetail) {
335
+ return (h(Host, { class: 'ez-flex-item--auto ez-size-height--full ez-box ez-padding--medium content-container' }, h("div", { class: 'message-container' }, h("h1", { class: 'no-guide-selected' }, this.getMessage('snkFormConfig.form.canNotEditCustomGuide')), h("span", { class: 'message-config-detail' }, this.getMessage('snkFormConfig.form.canNotEditDetailGuide')))));
336
+ }
334
337
  return (h(Host, { class: 'ez-flex-item--auto ez-size-height--full ez-box ez-padding--medium content-container' }, this.renderGuideName(), h("div", { class: 'layout-container' }, h("ez-scroller", { direction: 'vertical', activeShadow: true }, h("div", { class: 'no-group-container' }, h("div", { id: GROUP_NAMES.noGroup, class: 'group-content', "data-group-name": GROUP_NAMES.noGroup }, this.renderFixedFields())), h("hr", null), h("div", { id: this.ID_GROUPS, class: 'groups-container' }, this.renderDraggableGroups()))), h("div", { class: 'add-group-container', onClick: this.handleAddGroup.bind(this) }, h("ez-icon", { slot: "leftIcon", iconName: "plus" }), h("span", null, this.getMessage('snkFormConfig.form.createNewGroup')))));
335
338
  }
336
339
  get el() { return this; }
@@ -1,10 +1,10 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
2
- import { S as Sortable } from './sortable.esm.js';
3
2
  import { ObjectUtils, ArrayUtils } from '@sankhyalabs/core';
4
3
  import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
4
+ import { S as Sortable } from './sortable.esm.js';
5
5
  import { T as TAB_NAMES } from './constants.js';
6
6
 
7
- const guidesConfiguratorCss = ".ezSidebarNavigator.sc-guides-configurator{--ez-sidebar-navigator--height:calc(100vh - 118px)}.navigator-container.sc-guides-configurator{height:calc(100vh - 175px);display:flex;flex-direction:column;justify-content:space-between}.collapsible-container.sc-guides-configurator{display:flex;flex-direction:column;gap:12px;flex-grow:1;max-height:calc(100vh - 240px);overflow:auto}.collapsible-item.sc-guides-configurator{padding:6px;border-radius:6px;border:1px solid #dce0e8}.add-button-container.sc-guides-configurator{display:flex;align-items:center;border-top:1px solid #dce0e8;padding-top:22px;gap:6px;cursor:pointer;justify-content:center}.add-button-container.sc-guides-configurator span.sc-guides-configurator{display:block}.guide-list.sc-guides-configurator{display:flex;flex-direction:column;width:100%;min-height:10px}.guide-list.hidden-empty-content.sc-guides-configurator::before{content:var(--no-hidden-guides-message, \"Nenhuma guia oculta\");display:block;font-size:16px;font-weight:400;color:#AFB6C0;margin:auto;padding:8px}.guide-list.visible-empty-content.sc-guides-configurator::before{content:var(--no-visible-guides-message, \"Nenhuma guia visível\");display:block;font-size:16px;font-weight:400;color:#AFB6C0;margin:auto;padding:8px}.item-label.sc-guides-configurator{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-grow:1}.guide-item.sc-guides-configurator{margin:0 3px;display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:5px 10px;border-radius:6px;transition:all 0.2s ease-in-out;height:32px}.guide-item.sc-guides-configurator .actions.sc-guides-configurator{display:flex;gap:8px;transition:0.2s ease-in-out;visibility:hidden;opacity:0}.guide-item.sc-guides-configurator:hover .actions.sc-guides-configurator{visibility:visible;opacity:1}ez-button.sc-guides-configurator{width:24px;align-items:center;justify-content:center;display:flex}.ghost.sc-guides-configurator{opacity:.5;background:#e2eaf4}.main-guide.sc-guides-configurator{padding:12px;margin:12px 0;border:1px solid #dce0e8;border-radius:6px;transition:all 0.2s ease-in-out}.guide-item.selected.sc-guides-configurator,.main-guide.selected.sc-guides-configurator{background:#E2F4EF}.guide-item.sc-guides-configurator:hover,.main-guide.sc-guides-configurator:hover{background:#f5fcfa}";
7
+ const guidesConfiguratorCss = ".ezSidebarNavigator.sc-guides-configurator{--ez-sidebar-navigator--height:calc(100vh - 118px)}.navigator-container.sc-guides-configurator{height:calc(100vh - 175px);display:flex;flex-direction:column;justify-content:space-between}.collapsible-container.sc-guides-configurator{display:flex;flex-direction:column;gap:12px;flex-grow:1;max-height:calc(100vh - 240px);overflow:auto}.collapsible-item.sc-guides-configurator{padding:6px;border-radius:6px;border:1px solid #dce0e8}.add-button-container.sc-guides-configurator{display:flex;align-items:center;border-top:1px solid #dce0e8;padding-top:22px;gap:6px;cursor:pointer;justify-content:center}.add-button-container.sc-guides-configurator span.sc-guides-configurator{display:block}.guide-list.sc-guides-configurator{display:flex;flex-direction:column;width:100%;min-height:10px}.guide-list.hidden-empty-content.sc-guides-configurator::before{content:var(--no-hidden-guides-message, \"Nenhuma guia oculta\");display:block;font-size:16px;font-weight:400;color:#AFB6C0;margin:auto;padding:8px}.guide-list.visible-empty-content.sc-guides-configurator::before{content:var(--no-visible-guides-message, \"Nenhuma guia visível\");display:block;font-size:16px;font-weight:400;color:#AFB6C0;margin:auto;padding:8px}.item-label.sc-guides-configurator{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-grow:1}.guide-item.sc-guides-configurator{margin:0 3px;display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:5px 10px;border-radius:6px;transition:all 0.2s ease-in-out;height:32px}.guide-item.sc-guides-configurator .actions.sc-guides-configurator{display:flex;gap:8px;transition:opacity 0.2s ease-in-out;display:none;opacity:0}.guide-item.sc-guides-configurator:hover .actions.sc-guides-configurator{display:flex;opacity:1}ez-button.sc-guides-configurator{width:24px;align-items:center;justify-content:center;display:flex}.ghost.sc-guides-configurator{opacity:.5;background:#e2eaf4}.main-guide.sc-guides-configurator{padding:12px;margin:12px 0;border:1px solid #dce0e8;border-radius:6px;transition:all 0.2s ease-in-out}.guide-item.selected.sc-guides-configurator,.main-guide.selected.sc-guides-configurator{background:#E2F4EF}.guide-item.sc-guides-configurator:hover,.main-guide.sc-guides-configurator:hover{background:#f5fcfa}";
8
8
 
9
9
  const GuidesConfigurator = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
10
10
  constructor() {
@@ -101,7 +101,9 @@ const GuidesConfigurator = /*@__PURE__*/ proxyCustomElement(class extends HTMLEl
101
101
  var _a;
102
102
  return (h("div", { key: guide.name, "data-guide-name": guide.name, title: guide.label, class: `guide-item ${((_a = this.selectedGuide) === null || _a === void 0 ? void 0 : _a.label) === guide.label ? 'selected' : ''} ${this.filterTerm.length ? 'disable-sort' : ''}`, onClick: e => this.handleSelectGuide(guide, e) }, h("span", null, h("ez-icon", { iconName: "drag-indicator", class: 'ez-margin-right--small' })), h("span", { class: 'item-label' }, guide.label), h("div", { class: 'actions' }, h("ez-button", { mode: "icon", class: "ez-button--tertiary", onClick: e => this.toggleGuideVisibility(guide, e), size: "medium", iconName: guide.visible ? 'eye-off' : 'eye', title: guide.visible ?
103
103
  this.getMessage('snkFormConfig.guidesConfigurator.actions.hide') :
104
- this.getMessage('snkFormConfig.guidesConfigurator.actions.show') }), h("ez-button", { mode: "icon", class: "ez-button--tertiary", onClick: e => this.handleDeleteGuide(guide, e), size: "medium", iconName: 'delete', title: this.getMessage('snkFormConfig.guidesConfigurator.actions.delete') }))));
104
+ this.getMessage('snkFormConfig.guidesConfigurator.actions.show') }), h("ez-button", { mode: "icon", class: "ez-button--tertiary", onClick: e => this.handleDeleteGuide(guide, e), size: "medium", isDisabled: guide.isCustom || guide.isDetail, iconName: 'delete', title: guide.isCustom || guide.isDetail ?
105
+ this.getMessage('snkFormConfig.guidesConfigurator.canNotDeleteCustomGuide') :
106
+ this.getMessage('snkFormConfig.guidesConfigurator.actions.delete') }))));
105
107
  });
106
108
  }
107
109
  getContainerElement(id) {
@@ -16,6 +16,7 @@ export { SnkActionsForm as SnkClientConfirm } from '../types/components/snk-acti
16
16
  export { SnkConfigurator as SnkConfigurator } from '../types/components/snk-configurator/snk-configurator';
17
17
  export { SnkCrud as SnkCrud } from '../types/components/snk-crud/snk-crud';
18
18
  export { SnkCustomSlotElements as SnkCustomSlotElements } from '../types/components/snk-custom-slot-elements/snk-custom-slot-elements';
19
+ export { SnkCustomSlotGuide as SnkCustomSlotGuide } from '../types/components/snk-custom-slot-guide/snk-custom-slot-guide';
19
20
  export { SnkDataExporter as SnkDataExporter } from '../types/components/snk-data-exporter/snk-data-exporter';
20
21
  export { SnkDataUnit as SnkDataUnit } from '../types/components/snk-data-unit/snk-data-unit';
21
22
  export { SnkDefaultFilter as SnkDefaultFilter } from '../types/components/snk-filter-bar/filter-modal/subcomponents/snk-default-filter/snk-default-filter';
@@ -16,6 +16,7 @@ export { SnkClientConfirm, defineCustomElement as defineCustomElementSnkClientCo
16
16
  export { SnkConfigurator, defineCustomElement as defineCustomElementSnkConfigurator } from './snk-configurator.js';
17
17
  export { SnkCrud, defineCustomElement as defineCustomElementSnkCrud } from './snk-crud.js';
18
18
  export { SnkCustomSlotElements, defineCustomElement as defineCustomElementSnkCustomSlotElements } from './snk-custom-slot-elements.js';
19
+ export { SnkCustomSlotGuide, defineCustomElement as defineCustomElementSnkCustomSlotGuide } from './snk-custom-slot-guide.js';
19
20
  export { SnkDataExporter, defineCustomElement as defineCustomElementSnkDataExporter } from './snk-data-exporter.js';
20
21
  export { SnkDataUnit, defineCustomElement as defineCustomElementSnkDataUnit } from './snk-data-unit.js';
21
22
  export { SnkDefaultFilter, defineCustomElement as defineCustomElementSnkDefaultFilter } from './snk-default-filter.js';
@@ -1,12 +1,13 @@
1
- import { getRenderingRef, forceUpdate } from '@stencil/core/internal/client';
1
+ import * as StencilCore from '@stencil/core/internal/client';
2
2
 
3
3
  const appendToMap = (map, propName, value) => {
4
- const items = map.get(propName);
5
- if (!items) {
6
- map.set(propName, [value]);
4
+ let refs = map.get(propName);
5
+ if (!refs) {
6
+ refs = [];
7
+ map.set(propName, refs);
7
8
  }
8
- else if (!items.includes(value)) {
9
- items.push(value);
9
+ if (!refs.some((ref) => ref.deref() === value)) {
10
+ refs.push(new WeakRef(value));
10
11
  }
11
12
  };
12
13
  const debounce = (fn, ms) => {
@@ -34,33 +35,54 @@ const debounce = (fn, ms) => {
34
35
  const isConnected = (maybeElement) => !('isConnected' in maybeElement) || maybeElement.isConnected;
35
36
  const cleanupElements = debounce((map) => {
36
37
  for (let key of map.keys()) {
37
- map.set(key, map.get(key).filter(isConnected));
38
+ const refs = map.get(key).filter((ref) => {
39
+ const elm = ref.deref();
40
+ return elm && isConnected(elm);
41
+ });
42
+ map.set(key, refs);
38
43
  }
39
44
  }, 2_000);
45
+ const core = StencilCore;
46
+ const forceUpdate = core.forceUpdate;
47
+ const getRenderingRef = core.getRenderingRef;
40
48
  const stencilSubscription = () => {
41
- if (typeof getRenderingRef !== 'function') {
49
+ if (typeof getRenderingRef !== 'function' || typeof forceUpdate !== 'function') {
42
50
  // If we are not in a stencil project, we do nothing.
43
51
  // This function is not really exported by @stencil/core.
44
52
  return {};
45
53
  }
54
+ const ensureForceUpdate = forceUpdate;
55
+ const ensureGetRenderingRef = getRenderingRef;
46
56
  const elmsToUpdate = new Map();
47
57
  return {
48
58
  dispose: () => elmsToUpdate.clear(),
49
59
  get: (propName) => {
50
- const elm = getRenderingRef();
60
+ const elm = ensureGetRenderingRef();
51
61
  if (elm) {
52
62
  appendToMap(elmsToUpdate, propName, elm);
53
63
  }
54
64
  },
55
65
  set: (propName) => {
56
- const elements = elmsToUpdate.get(propName);
57
- if (elements) {
58
- elmsToUpdate.set(propName, elements.filter(forceUpdate));
66
+ const refs = elmsToUpdate.get(propName);
67
+ if (refs) {
68
+ const nextRefs = refs.filter((ref) => {
69
+ const elm = ref.deref();
70
+ if (!elm)
71
+ return false;
72
+ return ensureForceUpdate(elm);
73
+ });
74
+ elmsToUpdate.set(propName, nextRefs);
59
75
  }
60
76
  cleanupElements(elmsToUpdate);
61
77
  },
62
78
  reset: () => {
63
- elmsToUpdate.forEach((elms) => elms.forEach(forceUpdate));
79
+ elmsToUpdate.forEach((refs) => {
80
+ refs.forEach((ref) => {
81
+ const elm = ref.deref();
82
+ if (elm)
83
+ ensureForceUpdate(elm);
84
+ });
85
+ });
64
86
  cleanupElements(elmsToUpdate);
65
87
  },
66
88
  };
@@ -68,8 +90,11 @@ const stencilSubscription = () => {
68
90
 
69
91
  const unwrap = (val) => (typeof val === 'function' ? val() : val);
70
92
  const createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) => {
71
- const unwrappedState = unwrap(defaultState);
72
- let states = new Map(Object.entries(unwrappedState ?? {}));
93
+ const resolveDefaultState = () => (unwrap(defaultState) ?? {});
94
+ const initialState = resolveDefaultState();
95
+ let states = new Map(Object.entries(initialState));
96
+ const proxyAvailable = typeof Proxy !== 'undefined';
97
+ const plainState = proxyAvailable ? null : {};
73
98
  const handlers = {
74
99
  dispose: [],
75
100
  get: [],
@@ -81,7 +106,10 @@ const createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) =>
81
106
  const reset = () => {
82
107
  // When resetting the state, the default state may be a function - unwrap it to invoke it.
83
108
  // otherwise, the state won't be properly reset
84
- states = new Map(Object.entries(unwrap(defaultState) ?? {}));
109
+ states = new Map(Object.entries(resolveDefaultState()));
110
+ if (!proxyAvailable) {
111
+ syncPlainStateKeys();
112
+ }
85
113
  handlers.reset.forEach((cb) => cb());
86
114
  };
87
115
  const dispose = () => {
@@ -98,12 +126,14 @@ const createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) =>
98
126
  const oldValue = states.get(propName);
99
127
  if (shouldUpdate(value, oldValue, propName)) {
100
128
  states.set(propName, value);
129
+ if (!proxyAvailable) {
130
+ ensurePlainProperty(propName);
131
+ }
101
132
  handlers.set.forEach((cb) => cb(propName, value, oldValue));
102
133
  }
103
134
  };
104
- const state = (typeof Proxy === 'undefined'
105
- ? {}
106
- : new Proxy(unwrappedState, {
135
+ const state = (proxyAvailable
136
+ ? new Proxy(initialState, {
107
137
  get(_, propName) {
108
138
  return get(propName);
109
139
  },
@@ -123,7 +153,11 @@ const createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) =>
123
153
  set(propName, value);
124
154
  return true;
125
155
  },
126
- }));
156
+ })
157
+ : (() => {
158
+ syncPlainStateKeys();
159
+ return plainState;
160
+ })());
127
161
  const on = (eventName, callback) => {
128
162
  handlers[eventName].push(callback);
129
163
  return () => {
@@ -136,7 +170,10 @@ const createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) =>
136
170
  cb(newValue);
137
171
  }
138
172
  };
139
- const resetHandler = () => cb(unwrap(defaultState)[propName]);
173
+ const resetHandler = () => {
174
+ const snapshot = resolveDefaultState();
175
+ cb(snapshot[propName]);
176
+ };
140
177
  // Register the handlers
141
178
  const unSet = on('set', setHandler);
142
179
  const unReset = on('reset', resetHandler);
@@ -179,6 +216,38 @@ const createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) =>
179
216
  changeListeners.delete(listener);
180
217
  }
181
218
  };
219
+ function ensurePlainProperty(key) {
220
+ if (proxyAvailable || !plainState) {
221
+ return;
222
+ }
223
+ if (Object.prototype.hasOwnProperty.call(plainState, key)) {
224
+ return;
225
+ }
226
+ Object.defineProperty(plainState, key, {
227
+ configurable: true,
228
+ enumerable: true,
229
+ get() {
230
+ return get(key);
231
+ },
232
+ set(value) {
233
+ set(key, value);
234
+ },
235
+ });
236
+ }
237
+ function syncPlainStateKeys() {
238
+ if (proxyAvailable || !plainState) {
239
+ return;
240
+ }
241
+ const knownKeys = new Set(states.keys());
242
+ for (const key of Object.keys(plainState)) {
243
+ if (!knownKeys.has(key)) {
244
+ delete plainState[key];
245
+ }
246
+ }
247
+ for (const key of knownKeys) {
248
+ ensurePlainProperty(key);
249
+ }
250
+ }
182
251
  return {
183
252
  state,
184
253
  get,