@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.
- package/dist/cjs/{ConfigStorage-5a73e979.js → ConfigStorage-a4e1e518.js} +2 -2
- package/dist/cjs/{DataFetcher-eeb3b0b7.js → DataFetcher-0b6aa084.js} +34 -24
- package/dist/cjs/{FormConfigHelper-ebb77625.js → FormConfigHelper-28fe4668.js} +44 -0
- package/dist/cjs/{ISave-861e9d6d.js → ISave-2c455a77.js} +4 -4
- package/dist/cjs/{PersonalizedFilterUtils-7259cf65.js → PersonalizedFilterUtils-eccb267a.js} +13 -0
- package/dist/cjs/{SnkFormConfigManager-8d4fded8.js → SnkFormConfigManager-b8c81493.js} +7 -7
- package/dist/cjs/{SnkMultiSelectionListDataSource-3b93f6a6.js → SnkMultiSelectionListDataSource-03b58f5a.js} +5 -5
- package/dist/cjs/{auth-fetcher-8d8acd69.js → auth-fetcher-7e7796c9.js} +1 -1
- package/dist/cjs/config-header.cjs.entry.js +1 -1
- package/dist/cjs/configs-button.cjs.entry.js +1 -1
- package/dist/cjs/css-shim-a27d231b.js +6 -0
- package/dist/cjs/{dataunit-fetcher-1cea0695.js → dataunit-fetcher-8dffbcdf.js} +1 -1
- package/dist/cjs/dom-ff96a4bc.js +75 -0
- package/dist/cjs/field-config_2.cjs.entry.js +3 -3
- package/dist/cjs/fields-layout.cjs.entry.js +7 -4
- package/dist/cjs/fields-selector.cjs.entry.js +2 -2
- package/dist/cjs/{form-config-fetcher-f347f884.js → form-config-fetcher-5516d68a.js} +1 -1
- package/dist/cjs/guides-configurator.cjs.entry.js +6 -4
- package/dist/cjs/{index-1cf293c1.js → index-1894343a.js} +1515 -171
- package/dist/cjs/{index-13d05f03.js → index-f0fe7e6e.js} +90 -21
- package/dist/cjs/loader.cjs.js +16 -2
- package/dist/cjs/pesquisa-grid_2.cjs.entry.js +5 -5
- package/dist/cjs/sankhyablocks.cjs.js +132 -4
- package/dist/cjs/shadow-css-7e3e0ab1.js +389 -0
- package/dist/cjs/snk-actions-button_9.cjs.entry.js +6 -6
- package/dist/cjs/snk-actions-form.cjs.entry.js +1 -1
- package/dist/cjs/snk-application.cjs.entry.js +100 -70
- package/dist/cjs/snk-attach.cjs.entry.js +8 -8
- package/dist/cjs/snk-client-confirm.cjs.entry.js +1 -1
- package/dist/cjs/snk-configurator.cjs.entry.js +1 -1
- package/dist/cjs/snk-crud.cjs.entry.js +100 -9
- package/dist/cjs/snk-custom-slot-elements.cjs.entry.js +1 -1
- package/dist/cjs/snk-custom-slot-guide.cjs.entry.js +40 -0
- package/dist/cjs/snk-data-exporter.cjs.entry.js +6 -6
- package/dist/cjs/{snk-data-unit-de248308.js → snk-data-unit-036ce58c.js} +12 -3
- package/dist/cjs/snk-data-unit.cjs.entry.js +4 -4
- package/dist/cjs/snk-default-filter.cjs.entry.js +1 -1
- package/dist/cjs/snk-detail-view.cjs.entry.js +10 -10
- package/dist/cjs/snk-entity-list.cjs.entry.js +1 -1
- package/dist/cjs/snk-exporter-email-sender.cjs.entry.js +1 -1
- package/dist/cjs/snk-expression-group_2.cjs.entry.js +2 -2
- package/dist/cjs/snk-filter-advanced-mode_2.cjs.entry.js +2 -2
- package/dist/cjs/snk-filter-bar_4.cjs.entry.js +58 -25
- package/dist/cjs/snk-filter-binary-select.cjs.entry.js +1 -1
- package/dist/cjs/snk-filter-checkbox-list.cjs.entry.js +1 -1
- package/dist/cjs/snk-filter-detail.cjs.entry.js +2 -2
- package/dist/cjs/snk-filter-field-search_2.cjs.entry.js +2 -2
- package/dist/cjs/snk-filter-modal-item.cjs.entry.js +4 -4
- package/dist/cjs/snk-filter-multi-select.cjs.entry.js +1 -1
- package/dist/cjs/snk-filter-number.cjs.entry.js +2 -2
- package/dist/cjs/snk-filter-period.cjs.entry.js +11 -6
- package/dist/cjs/snk-filter-search.cjs.entry.js +1 -1
- package/dist/cjs/snk-filter-text.cjs.entry.js +2 -2
- package/dist/cjs/snk-form-summary.cjs.entry.js +1 -1
- package/dist/cjs/snk-form-view.cjs.entry.js +1 -1
- package/dist/cjs/snk-form_2.cjs.entry.js +33 -10
- package/dist/cjs/snk-grid.cjs.entry.js +28 -19
- package/dist/cjs/{snk-guides-viewer-4ec3e7e1.js → snk-guides-viewer-164c063e.js} +86 -40
- package/dist/cjs/snk-guides-viewer.cjs.entry.js +10 -10
- package/dist/cjs/snk-personalized-filter-editor.cjs.entry.js +1 -1
- package/dist/cjs/snk-personalized-filter.cjs.entry.js +6 -6
- package/dist/cjs/snk-pesquisa.cjs.entry.js +17 -6
- package/dist/cjs/snk-print-selector.cjs.entry.js +1 -1
- package/dist/cjs/snk-simple-bar.cjs.entry.js +1 -1
- package/dist/cjs/snk-simple-crud.cjs.entry.js +14 -21
- package/dist/cjs/snk-taskbar.cjs.entry.js +67 -51
- package/dist/cjs/{taskbar-elements-fb5d1e08.js → taskbar-elements-8a80420e.js} +2 -2
- package/dist/cjs/teste-pesquisa.cjs.entry.js +1 -1
- package/dist/collection/collection-manifest.json +2 -1
- package/dist/collection/components/snk-application/search-strategy/exec-prepared-search-advaced-mode.js +27 -0
- package/dist/collection/components/snk-application/search-strategy/exec-prepared-search-plus.js +5 -25
- package/dist/collection/components/snk-application/snk-application.js +105 -44
- package/dist/collection/components/snk-attach/snk-attach.js +1 -1
- package/dist/collection/components/snk-crud/snk-crud.js +151 -2
- package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +133 -34
- package/dist/collection/components/snk-custom-slot-guide/snk-custom-slot-guide.css +3 -0
- package/dist/collection/components/snk-custom-slot-guide/snk-custom-slot-guide.js +95 -0
- package/dist/collection/components/snk-data-unit/snk-data-unit.js +9 -0
- package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-number.js +2 -2
- package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-period.js +11 -6
- package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-text.js +1 -1
- package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.css +4 -0
- package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.js +7 -1
- package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.css +1 -0
- package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.js +15 -4
- package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +30 -13
- package/dist/collection/components/snk-form-config/FormConfigHelper.js +42 -0
- package/dist/collection/components/snk-form-config/SnkFormConfigManager.js +6 -6
- package/dist/collection/components/snk-form-config/field-item/field-config/field-config.css +1 -0
- package/dist/collection/components/snk-form-config/fields-layout/fields-layout.css +16 -0
- package/dist/collection/components/snk-form-config/fields-layout/fields-layout.js +6 -3
- package/dist/collection/components/snk-form-config/guides-configurator/guides-configurator.css +3 -3
- package/dist/collection/components/snk-form-config/guides-configurator/guides-configurator.js +5 -3
- package/dist/collection/components/snk-form-config/snk-form-config.js +53 -6
- package/dist/collection/components/snk-grid/snk-grid.css +12 -0
- package/dist/collection/components/snk-grid/snk-grid.js +39 -12
- package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-param-config/utils/PersonalizedFilterUtils.js +13 -0
- package/dist/collection/components/snk-pesquisa/snk-pesquisa.css +5 -1
- package/dist/collection/components/snk-pesquisa/snk-pesquisa.js +43 -0
- package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +23 -12
- package/dist/collection/components/snk-taskbar/snk-taskbar.js +87 -48
- package/dist/collection/lib/http/data-fetcher/fetchers/pesquisa-fetcher.js +3 -3
- package/dist/collection/lib/message/SnkMessageBuilder.js +11 -2
- package/dist/collection/lib/message/resources/en-us/snk-form.msg.js +7 -0
- package/dist/collection/lib/message/resources/es-es/snk-form.msg.js +7 -0
- package/dist/collection/lib/message/resources/pt-br/snk-form.msg.js +8 -1
- package/dist/collection/lib/message/resources/pt-br/snk-pesquisa.msg.js +1 -1
- package/dist/components/DataFetcher.js +34 -4
- package/dist/components/ISave.js +3 -3
- package/dist/components/PersonalizedFilterUtils.js +13 -0
- package/dist/components/SnkFormConfigManager.js +6 -6
- package/dist/components/field-config2.js +44 -2
- package/dist/components/fields-layout2.js +6 -3
- package/dist/components/guides-configurator2.js +5 -3
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.js +1 -0
- package/dist/components/index2.js +90 -21
- package/dist/components/snk-application2.js +94 -63
- package/dist/components/snk-attach2.js +1 -1
- package/dist/components/snk-crud.js +96 -1
- package/dist/components/snk-custom-slot-guide.d.ts +11 -0
- package/dist/components/snk-custom-slot-guide.js +55 -0
- package/dist/components/snk-data-unit2.js +9 -0
- package/dist/components/snk-detail-view2.js +81 -34
- package/dist/components/snk-filter-bar2.js +30 -13
- package/dist/components/snk-filter-item2.js +8 -2
- package/dist/components/snk-filter-modal2.js +16 -6
- package/dist/components/snk-filter-number.js +2 -2
- package/dist/components/snk-filter-period.js +10 -5
- package/dist/components/snk-filter-text.js +1 -1
- package/dist/components/snk-form-config2.js +29 -5
- package/dist/components/snk-grid2.js +22 -11
- package/dist/components/snk-pesquisa2.js +14 -2
- package/dist/components/snk-simple-crud2.js +6 -12
- package/dist/components/snk-taskbar2.js +66 -49
- package/dist/esm/{ConfigStorage-568dc227.js → ConfigStorage-39ac8fef.js} +2 -2
- package/dist/esm/{DataFetcher-743feb3b.js → DataFetcher-0b9da57d.js} +34 -4
- package/dist/esm/{FormConfigHelper-4e42f0b6.js → FormConfigHelper-d09669f3.js} +43 -1
- package/dist/esm/{ISave-345481c1.js → ISave-f1c9269b.js} +4 -4
- package/dist/esm/{PersonalizedFilterUtils-2db38ff2.js → PersonalizedFilterUtils-d2439a9a.js} +13 -0
- package/dist/esm/{SnkFormConfigManager-d61df0c8.js → SnkFormConfigManager-a87566c8.js} +7 -7
- package/dist/esm/{SnkMultiSelectionListDataSource-ca8d7a09.js → SnkMultiSelectionListDataSource-01b3744b.js} +5 -5
- package/dist/esm/{auth-fetcher-c353127d.js → auth-fetcher-acdc1cb4.js} +1 -1
- package/dist/esm/config-header.entry.js +1 -1
- package/dist/esm/configs-button.entry.js +1 -1
- package/dist/esm/css-shim-9f2d321e.js +4 -0
- package/dist/esm/{dataunit-fetcher-7f2c61ca.js → dataunit-fetcher-4c312b43.js} +1 -1
- package/dist/esm/dom-64053c71.js +73 -0
- package/dist/esm/field-config_2.entry.js +3 -3
- package/dist/esm/fields-layout.entry.js +7 -4
- package/dist/esm/fields-selector.entry.js +2 -2
- package/dist/esm/{form-config-fetcher-898d2dd1.js → form-config-fetcher-7cda6254.js} +1 -1
- package/dist/esm/guides-configurator.entry.js +6 -4
- package/dist/esm/{index-479e1293.js → index-04f73a26.js} +1507 -171
- package/dist/esm/{index-446f9341.js → index-ea250be6.js} +90 -21
- package/dist/esm/loader.js +17 -3
- package/dist/esm/pesquisa-grid_2.entry.js +5 -5
- package/dist/esm/sankhyablocks.js +133 -5
- package/dist/esm/shadow-css-98135883.js +387 -0
- package/dist/esm/snk-actions-button_9.entry.js +6 -6
- package/dist/esm/snk-actions-form.entry.js +1 -1
- package/dist/esm/snk-application.entry.js +100 -70
- package/dist/esm/snk-attach.entry.js +8 -8
- package/dist/esm/snk-client-confirm.entry.js +1 -1
- package/dist/esm/snk-configurator.entry.js +1 -1
- package/dist/esm/snk-crud.entry.js +100 -9
- package/dist/esm/snk-custom-slot-elements.entry.js +1 -1
- package/dist/esm/snk-custom-slot-guide.entry.js +36 -0
- package/dist/esm/snk-data-exporter.entry.js +6 -6
- package/dist/esm/{snk-data-unit-60b338c5.js → snk-data-unit-130021b3.js} +12 -3
- package/dist/esm/snk-data-unit.entry.js +4 -4
- package/dist/esm/snk-default-filter.entry.js +1 -1
- package/dist/esm/snk-detail-view.entry.js +10 -10
- package/dist/esm/snk-entity-list.entry.js +1 -1
- package/dist/esm/snk-exporter-email-sender.entry.js +1 -1
- package/dist/esm/snk-expression-group_2.entry.js +2 -2
- package/dist/esm/snk-filter-advanced-mode_2.entry.js +2 -2
- package/dist/esm/snk-filter-bar_4.entry.js +58 -25
- package/dist/esm/snk-filter-binary-select.entry.js +1 -1
- package/dist/esm/snk-filter-checkbox-list.entry.js +1 -1
- package/dist/esm/snk-filter-detail.entry.js +2 -2
- package/dist/esm/snk-filter-field-search_2.entry.js +2 -2
- package/dist/esm/snk-filter-modal-item.entry.js +4 -4
- package/dist/esm/snk-filter-multi-select.entry.js +1 -1
- package/dist/esm/snk-filter-number.entry.js +2 -2
- package/dist/esm/snk-filter-period.entry.js +11 -6
- package/dist/esm/snk-filter-search.entry.js +1 -1
- package/dist/esm/snk-filter-text.entry.js +2 -2
- package/dist/esm/snk-form-summary.entry.js +1 -1
- package/dist/esm/snk-form-view.entry.js +1 -1
- package/dist/esm/snk-form_2.entry.js +33 -10
- package/dist/esm/snk-grid.entry.js +28 -19
- package/dist/esm/{snk-guides-viewer-339e10b3.js → snk-guides-viewer-3fd18298.js} +86 -40
- package/dist/esm/snk-guides-viewer.entry.js +10 -10
- package/dist/esm/snk-personalized-filter-editor.entry.js +1 -1
- package/dist/esm/snk-personalized-filter.entry.js +6 -6
- package/dist/esm/snk-pesquisa.entry.js +17 -6
- package/dist/esm/snk-print-selector.entry.js +1 -1
- package/dist/esm/snk-simple-bar.entry.js +1 -1
- package/dist/esm/snk-simple-crud.entry.js +14 -21
- package/dist/esm/snk-taskbar.entry.js +68 -52
- package/dist/esm/{taskbar-elements-faaf5d8f.js → taskbar-elements-d1e63fb2.js} +2 -2
- package/dist/esm/teste-pesquisa.entry.js +1 -1
- package/dist/sankhyablocks/{p-7f7fe6c4.entry.js → p-0a160fb5.entry.js} +1 -1
- package/dist/sankhyablocks/{p-144da1d1.entry.js → p-12f595a6.entry.js} +1 -1
- package/dist/sankhyablocks/{p-162bddae.entry.js → p-175c9576.entry.js} +1 -1
- package/dist/sankhyablocks/p-18d66638.entry.js +1 -0
- package/dist/sankhyablocks/{p-1788d191.js → p-1f310bc6.js} +1 -1
- package/dist/sankhyablocks/{p-c4fcf1fb.entry.js → p-27e0cd68.entry.js} +1 -1
- package/dist/sankhyablocks/p-2a33d4cf.entry.js +1 -0
- package/dist/sankhyablocks/p-2ac55a5d.js +1 -0
- package/dist/sankhyablocks/{p-9a63f3f7.entry.js → p-2b882835.entry.js} +1 -1
- package/dist/sankhyablocks/{p-1f8cb438.entry.js → p-2c6be187.entry.js} +1 -1
- package/dist/sankhyablocks/p-2c9d0870.js +2 -0
- package/dist/sankhyablocks/{p-cb4343c4.entry.js → p-2cc2526e.entry.js} +1 -1
- package/dist/sankhyablocks/{p-75af335e.entry.js → p-2ebda226.entry.js} +1 -1
- package/dist/sankhyablocks/{p-093f58fa.entry.js → p-2f94cf87.entry.js} +1 -1
- package/dist/sankhyablocks/p-3a35917e.entry.js +1 -0
- package/dist/sankhyablocks/p-3a443150.entry.js +1 -0
- package/dist/sankhyablocks/{p-c90f337a.entry.js → p-3b6d8d33.entry.js} +1 -1
- package/dist/sankhyablocks/p-3db72758.entry.js +1 -0
- package/dist/sankhyablocks/{p-e8c49c12.js → p-48a5c311.js} +2 -2
- package/dist/sankhyablocks/p-52691b42.js +1 -0
- package/dist/sankhyablocks/{p-27482793.entry.js → p-5aae5c74.entry.js} +1 -1
- package/dist/sankhyablocks/p-6564180d.entry.js +1 -0
- package/dist/sankhyablocks/{p-6d241415.js → p-6768f176.js} +1 -1
- package/dist/sankhyablocks/p-68c1a093.js +1 -0
- package/dist/sankhyablocks/p-6d322b0a.js +1 -0
- package/dist/sankhyablocks/{p-7b3ca294.entry.js → p-7150eacf.entry.js} +1 -1
- package/dist/sankhyablocks/{p-825098c1.entry.js → p-752c57f4.entry.js} +1 -1
- package/dist/sankhyablocks/{p-49ddc27a.entry.js → p-752f4e29.entry.js} +1 -1
- package/dist/sankhyablocks/{p-e258de96.entry.js → p-76729994.entry.js} +1 -1
- package/dist/sankhyablocks/{p-7fc46290.js → p-7ee6b1bf.js} +1 -1
- package/dist/sankhyablocks/{p-27005fac.entry.js → p-877d9614.entry.js} +1 -1
- package/dist/sankhyablocks/p-8b4d6719.js +1 -0
- package/dist/sankhyablocks/{p-3d41f5a8.entry.js → p-8d946600.entry.js} +1 -1
- package/dist/sankhyablocks/{p-96d45943.entry.js → p-90ae6c2e.entry.js} +1 -1
- package/dist/sankhyablocks/p-94267a30.entry.js +1 -0
- package/dist/sankhyablocks/{p-59b8f277.js → p-998a9d6f.js} +1 -1
- package/dist/sankhyablocks/{p-21107f0d.entry.js → p-9c1ff75e.entry.js} +1 -1
- package/dist/sankhyablocks/{p-2fdac5e6.entry.js → p-9e109f5e.entry.js} +1 -1
- package/dist/sankhyablocks/{p-88ed2793.js → p-9e4555ab.js} +1 -1
- package/dist/sankhyablocks/p-a46ac091.js +1 -0
- package/dist/sankhyablocks/p-a73b6b00.js +1 -0
- package/dist/sankhyablocks/{p-164c822d.entry.js → p-acd2ba28.entry.js} +1 -1
- package/dist/sankhyablocks/{p-180716b2.entry.js → p-ae326d06.entry.js} +1 -1
- package/dist/sankhyablocks/p-b471bfab.entry.js +1 -0
- package/dist/sankhyablocks/p-b533edab.entry.js +1 -0
- package/dist/sankhyablocks/p-b555ce38.entry.js +1 -0
- package/dist/sankhyablocks/p-c2d33fc8.entry.js +1 -0
- package/dist/sankhyablocks/p-c3ec6642.js +19 -0
- package/dist/sankhyablocks/{p-91a9abb6.entry.js → p-c8043a53.entry.js} +1 -1
- package/dist/sankhyablocks/{p-c3dbf441.entry.js → p-cc64239c.entry.js} +1 -1
- package/dist/sankhyablocks/{p-b987e15d.js → p-cc9935af.js} +1 -1
- package/dist/sankhyablocks/{p-471b34f4.entry.js → p-cd00a3d1.entry.js} +1 -1
- package/dist/sankhyablocks/{p-b7e891cc.entry.js → p-cd40c8cf.entry.js} +1 -1
- package/dist/sankhyablocks/{p-bd203e8d.entry.js → p-cd412add.entry.js} +1 -1
- package/dist/sankhyablocks/{p-4c763b10.entry.js → p-d657f71f.entry.js} +1 -1
- package/dist/sankhyablocks/{p-e6b1c769.entry.js → p-d6dad5e4.entry.js} +1 -1
- package/dist/sankhyablocks/p-d714b6ca.js +1 -0
- package/dist/sankhyablocks/p-da455c82.js +12 -0
- package/dist/sankhyablocks/p-e30acdca.entry.js +1 -0
- package/dist/sankhyablocks/p-ec9027a7.entry.js +1 -0
- package/dist/sankhyablocks/p-ef9343c3.entry.js +1 -0
- package/dist/sankhyablocks/{p-667cab42.entry.js → p-f152ef98.entry.js} +1 -1
- package/dist/sankhyablocks/{p-7e250432.entry.js → p-f7170e10.entry.js} +1 -1
- package/dist/sankhyablocks/p-f8c5395a.entry.js +1 -0
- package/dist/sankhyablocks/{p-7345782c.entry.js → p-f921270b.entry.js} +1 -1
- package/dist/sankhyablocks/p-fa087ab2.entry.js +11 -0
- package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
- package/dist/types/components/snk-application/search-strategy/exec-prepared-search-advaced-mode.d.ts +5 -0
- package/dist/types/components/snk-application/snk-application.d.ts +9 -0
- package/dist/types/components/snk-crud/snk-crud.d.ts +22 -0
- package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +23 -0
- package/dist/types/components/snk-custom-slot-guide/snk-custom-slot-guide.d.ts +16 -0
- package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +1 -0
- package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-period.d.ts +1 -0
- package/dist/types/components/snk-filter-bar/filter-item/snk-filter-item.d.ts +1 -1
- package/dist/types/components/snk-filter-bar/filter-modal/snk-filter-modal.d.ts +2 -1
- package/dist/types/components/snk-form-config/FormConfigHelper.d.ts +6 -1
- package/dist/types/components/snk-form-config/SnkFormConfigManager.d.ts +1 -1
- package/dist/types/components/snk-form-config/fields-layout/fields-layout.d.ts +2 -2
- package/dist/types/components/snk-form-config/guides-configurator/guides-configurator.d.ts +1 -1
- package/dist/types/components/snk-form-config/snk-form-config.d.ts +9 -2
- package/dist/types/components/snk-grid/snk-grid.d.ts +6 -0
- package/dist/types/components/snk-personalized-filter/interfaces/IParameter.d.ts +1 -0
- package/dist/types/components/snk-pesquisa/snk-pesquisa.d.ts +8 -0
- package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +4 -1
- package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +12 -4
- package/dist/types/components.d.ts +113 -0
- package/dist/types/lib/http/data-fetcher/fetchers/pesquisa-fetcher.d.ts +1 -0
- package/package.json +1 -1
- package/react/components.d.ts +1 -0
- package/react/components.js +1 -0
- package/react/components.js.map +1 -1
- package/dist/sankhyablocks/p-0cf9aa38.js +0 -1
- package/dist/sankhyablocks/p-11346b8d.entry.js +0 -1
- package/dist/sankhyablocks/p-1649f51e.entry.js +0 -1
- package/dist/sankhyablocks/p-1d585081.js +0 -1
- package/dist/sankhyablocks/p-3ed04f0d.entry.js +0 -1
- package/dist/sankhyablocks/p-4759912d.entry.js +0 -1
- package/dist/sankhyablocks/p-55798617.js +0 -1
- package/dist/sankhyablocks/p-56948f00.entry.js +0 -11
- package/dist/sankhyablocks/p-60dd1d27.entry.js +0 -1
- package/dist/sankhyablocks/p-626b7a17.js +0 -1
- package/dist/sankhyablocks/p-8f73da95.js +0 -1
- package/dist/sankhyablocks/p-95c71f5e.entry.js +0 -1
- package/dist/sankhyablocks/p-988afe78.js +0 -1
- package/dist/sankhyablocks/p-9f2cdaab.entry.js +0 -1
- package/dist/sankhyablocks/p-9fe91526.js +0 -1
- package/dist/sankhyablocks/p-a5108625.entry.js +0 -1
- package/dist/sankhyablocks/p-aae4258d.entry.js +0 -1
- package/dist/sankhyablocks/p-af9d79e0.entry.js +0 -1
- package/dist/sankhyablocks/p-bb0de89c.entry.js +0 -1
- package/dist/sankhyablocks/p-d8d8169b.js +0 -2
- package/dist/sankhyablocks/p-e64958ba.entry.js +0 -1
- package/dist/sankhyablocks/p-f25c50f7.entry.js +0 -1
- 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: "
|
|
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: "
|
|
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
|
|
9398
|
-
|
|
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;
|
package/dist/components/ISave.js
CHANGED
|
@@ -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": (
|
|
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 = (
|
|
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,
|
|
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 {
|
|
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;
|
|
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:
|
|
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';
|
package/dist/components/index.js
CHANGED
|
@@ -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
|
|
1
|
+
import * as StencilCore from '@stencil/core/internal/client';
|
|
2
2
|
|
|
3
3
|
const appendToMap = (map, propName, value) => {
|
|
4
|
-
|
|
5
|
-
if (!
|
|
6
|
-
|
|
4
|
+
let refs = map.get(propName);
|
|
5
|
+
if (!refs) {
|
|
6
|
+
refs = [];
|
|
7
|
+
map.set(propName, refs);
|
|
7
8
|
}
|
|
8
|
-
|
|
9
|
-
|
|
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
|
-
|
|
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 =
|
|
60
|
+
const elm = ensureGetRenderingRef();
|
|
51
61
|
if (elm) {
|
|
52
62
|
appendToMap(elmsToUpdate, propName, elm);
|
|
53
63
|
}
|
|
54
64
|
},
|
|
55
65
|
set: (propName) => {
|
|
56
|
-
const
|
|
57
|
-
if (
|
|
58
|
-
|
|
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((
|
|
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
|
|
72
|
-
|
|
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(
|
|
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 = (
|
|
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 = () =>
|
|
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,
|