@sankhyalabs/sankhyablocks 8.15.0-dev.4 → 8.15.0-dev.40
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-8009ecb2.js → ConfigStorage-34be11ce.js} +94 -21
- package/dist/cjs/{DataFetcher-ba94ed5b.js → DataFetcher-99f0f6ed.js} +5 -3
- package/dist/cjs/{ISave-d68ce3cd.js → ISave-e91b70a7.js} +1 -0
- package/dist/cjs/{SnkFormConfigManager-7d850fbc.js → SnkFormConfigManager-531a191c.js} +21 -13
- package/dist/cjs/{SnkMessageBuilder-7293d0ad.js → SnkMessageBuilder-141aa18d.js} +15 -1
- package/dist/cjs/SnkMultiSelectionListDataSource-5213120b.js +140 -0
- package/dist/cjs/{auth-fetcher-c8467c07.js → auth-fetcher-5161d082.js} +1 -1
- package/dist/cjs/{form-config-fetcher-df043d3d.js → form-config-fetcher-9f1a13ca.js} +1 -1
- package/dist/cjs/index-f9e81701.js +2 -10
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{dataunit-fetcher-de65b9fc.js → pesquisa-fetcher-94f6b316.js} +472 -46
- package/dist/cjs/sankhyablocks.cjs.js +1 -1
- package/dist/cjs/{snk-actions-button_2.cjs.entry.js → snk-actions-button_4.cjs.entry.js} +538 -8
- package/dist/cjs/snk-application.cjs.entry.js +44 -10
- package/dist/cjs/snk-attach.cjs.entry.js +398 -61
- package/dist/cjs/snk-crud.cjs.entry.js +17 -12
- package/dist/cjs/snk-data-exporter.cjs.entry.js +9 -5
- package/dist/cjs/{snk-data-unit-1bc69073.js → snk-data-unit-6026a9f7.js} +1 -1
- package/dist/cjs/snk-data-unit.cjs.entry.js +2 -2
- package/dist/cjs/snk-detail-view.cjs.entry.js +10 -12
- package/dist/cjs/snk-entity-list.cjs.entry.js +5 -3
- package/dist/cjs/snk-filter-bar.cjs.entry.js +49 -10
- package/dist/cjs/snk-filter-item.cjs.entry.js +3 -0
- package/dist/cjs/snk-filter-modal-item.cjs.entry.js +3 -3
- package/dist/cjs/snk-filter-modal.cjs.entry.js +2 -1
- package/dist/cjs/snk-filter-multi-select.cjs.entry.js +2 -1
- package/dist/cjs/snk-form-config.cjs.entry.js +47 -27
- package/dist/cjs/snk-form.cjs.entry.js +11 -4
- package/dist/cjs/snk-grid.cjs.entry.js +40 -22
- package/dist/cjs/{snk-guides-viewer-7f9b6d94.js → snk-guides-viewer-76b4c346.js} +17 -12
- package/dist/cjs/snk-guides-viewer.cjs.entry.js +8 -10
- package/dist/cjs/snk-personalized-filter-editor.cjs.entry.js +3 -1
- package/dist/cjs/snk-personalized-filter.cjs.entry.js +3 -3
- package/dist/cjs/snk-pesquisa.cjs.entry.js +1 -1
- package/dist/cjs/snk-simple-crud.cjs.entry.js +236 -27
- package/dist/cjs/snk-taskbar.cjs.entry.js +100 -14
- package/dist/cjs/{taskbar-elements-01b85b99.js → taskbar-elements-3ecd1278.js} +9 -9
- package/dist/collection/collection-manifest.json +7 -7
- package/dist/collection/components/snk-application/__mocks__/snk-application.js +7 -0
- package/dist/collection/components/snk-application/snk-application.js +85 -2
- package/dist/collection/components/snk-attach/snk-attach.js +194 -38
- package/dist/collection/components/snk-attach/structure/{crud-config-builder.js → builder/anexo-sistema-crud-config.builder.js} +1 -1
- package/dist/collection/components/snk-attach/structure/builder/attach-crud-config.builder.js +62 -0
- package/dist/collection/components/snk-attach/structure/{taskbar-builder.js → builder/taskbar-builder.js} +1 -1
- package/dist/collection/components/snk-attach/structure/fetcher/facade/fetcher.facade.js +1 -0
- package/dist/collection/components/snk-attach/structure/{data-unit-builder.js → fetcher/factory/anexo-sistema-data-unit.factory.js} +14 -11
- package/dist/collection/components/snk-attach/structure/fetcher/factory/attach-fetcher-data-unit.factory.js +111 -0
- package/dist/collection/components/snk-attach/structure/index.js +6 -3
- package/dist/collection/components/snk-crud/snk-crud.js +95 -3
- package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js +2 -2
- package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.css +11 -2
- package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +28 -4
- package/dist/collection/components/snk-data-exporter/snk-data-exporter.js +6 -2
- package/dist/collection/components/snk-entity-list/snk-entity-list.js +5 -3
- package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-multi-select.js +2 -1
- package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-personalized-filter-editor/snk-personalized-filter-editor.js +3 -1
- package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.js +3 -0
- package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.js +19 -1
- package/dist/collection/components/snk-filter-bar/snk-filter-bar.css +23 -1
- package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +142 -5
- package/dist/collection/components/snk-filter-bar/utils/SnkFilterModalFactory.js +3 -1
- package/dist/collection/components/snk-form/snk-form.js +25 -1
- package/dist/collection/components/{snk-form → snk-form-config}/SnkFormConfigManager.js +20 -12
- package/dist/collection/components/{snk-form/subcomponents/snk-form-config → snk-form-config}/snk-form-config.js +50 -30
- package/dist/collection/components/snk-grid/snk-grid.js +103 -16
- package/dist/collection/components/{snk-grid/subcomponents/snk-grid-config → snk-grid-config}/snk-grid-config.js +130 -123
- package/dist/collection/components/{snk-grid/subcomponents → snk-grid-config}/snk-select-box/snk-select-box.js +1 -1
- package/dist/collection/components/snk-pesquisa/snk-pesquisa.css +2 -4
- package/dist/collection/components/snk-simple-crud/regular-buttons.js +3 -0
- package/dist/collection/components/snk-simple-crud/snk-simple-crud.css +5 -0
- package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +403 -18
- package/dist/collection/components/snk-taskbar/elements/taskbar-actions-button/taskbar-actions-button.js +18 -2
- package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +9 -9
- package/dist/collection/components/snk-taskbar/snk-taskbar.css +17 -0
- package/dist/collection/components/snk-taskbar/snk-taskbar.js +139 -13
- package/dist/collection/lib/configs/ConfigStorage.js +86 -16
- package/dist/collection/lib/dataUnit/InMemoryLoader.js +1 -1
- package/dist/collection/lib/http/data-fetcher/DataFetcher.js +5 -3
- package/dist/collection/lib/http/data-fetcher/fetchers/{attach-fetcher.js → AttachFetcher/anexo-sistema-fetcher.js} +16 -15
- package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/attach-fetcher.js +90 -0
- package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/facade/attach-fetcher.facade.js +1 -0
- package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/index.js +2 -0
- package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/interfaces/IDelete.js +1 -0
- package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/interfaces/IDownloadKey.js +1 -0
- package/dist/collection/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/ISave.js +1 -0
- package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/dataunit-fetcher.js +31 -3
- package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.js +48 -29
- package/dist/collection/lib/http/data-fetcher/fetchers/parameters-fecher.js +21 -0
- package/dist/collection/lib/http/data-fetcher/fetchers/personalized-filter-fetcher.js +6 -3
- package/dist/collection/lib/http/data-fetcher/fetchers/pesquisa-fetcher.js +11 -12
- package/dist/collection/lib/index.js +1 -1
- package/dist/collection/lib/message/resources/snk-attach.msg.js +13 -0
- package/dist/collection/lib/message/resources/snk-data-exporter.msg.js +2 -1
- package/dist/collection/lib/utils/CrudUtils.js +13 -1
- package/dist/components/ConfigStorage.js +92 -19
- package/dist/components/DataFetcher.js +5 -3
- package/dist/components/SnkFormConfigManager.js +19 -11
- package/dist/components/SnkMessageBuilder.js +15 -1
- package/dist/components/dataunit-fetcher.js +91 -45
- package/dist/components/field-search.js +93 -3
- package/dist/components/index.d.ts +6 -6
- package/dist/components/snk-actions-button2.js +1 -0
- package/dist/components/snk-application2.js +41 -2
- package/dist/components/snk-attach2.js +454 -68
- package/dist/components/snk-crud.js +15 -3
- package/dist/components/snk-data-exporter2.js +6 -2
- package/dist/components/snk-detail-view2.js +41 -8
- package/dist/components/snk-entity-list.js +5 -3
- package/dist/components/snk-filter-bar2.js +52 -8
- package/dist/components/snk-filter-item2.js +3 -0
- package/dist/components/snk-filter-modal.js +4 -2
- package/dist/components/snk-filter-multi-select.js +2 -1
- package/dist/components/snk-form-config2.js +46 -26
- package/dist/components/snk-form.js +8 -0
- package/dist/components/snk-grid-config2.js +128 -102
- package/dist/components/snk-grid2.js +41 -17
- package/dist/components/snk-personalized-filter-editor.js +3 -1
- package/dist/components/snk-pesquisa2.js +1 -1
- package/dist/components/snk-simple-crud2.js +293 -29
- package/dist/components/snk-taskbar2.js +114 -24
- package/dist/components/taskbar-actions-button2.js +18 -2
- package/dist/esm/{ConfigStorage-1244b8b0.js → ConfigStorage-101a2b4c.js} +94 -21
- package/dist/esm/{DataFetcher-aa159c5a.js → DataFetcher-a650ae58.js} +5 -3
- package/dist/esm/{ISave-4412b20c.js → ISave-d8c8bc59.js} +1 -0
- package/dist/esm/{SnkFormConfigManager-9be0e7d4.js → SnkFormConfigManager-02ecf57f.js} +21 -13
- package/dist/esm/{SnkMessageBuilder-ca843d1b.js → SnkMessageBuilder-9747ddd2.js} +15 -1
- package/dist/esm/SnkMultiSelectionListDataSource-7e7eada5.js +133 -0
- package/dist/esm/{auth-fetcher-c05dc474.js → auth-fetcher-17dc5b5e.js} +1 -1
- package/dist/esm/{form-config-fetcher-36219cd3.js → form-config-fetcher-f121f880.js} +1 -1
- package/dist/esm/index-a7d3d3f1.js +2 -10
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{dataunit-fetcher-e218c6d2.js → pesquisa-fetcher-f05a12ca.js} +462 -38
- package/dist/esm/sankhyablocks.js +1 -1
- package/dist/esm/{snk-actions-button_2.entry.js → snk-actions-button_4.entry.js} +537 -9
- package/dist/esm/snk-application.entry.js +43 -9
- package/dist/esm/snk-attach.entry.js +398 -61
- package/dist/esm/snk-crud.entry.js +17 -12
- package/dist/esm/snk-data-exporter.entry.js +9 -5
- package/dist/esm/{snk-data-unit-6208ebf0.js → snk-data-unit-4c343635.js} +1 -1
- package/dist/esm/snk-data-unit.entry.js +2 -2
- package/dist/esm/snk-detail-view.entry.js +10 -12
- package/dist/esm/snk-entity-list.entry.js +5 -3
- package/dist/esm/snk-filter-bar.entry.js +49 -10
- package/dist/esm/snk-filter-item.entry.js +3 -0
- package/dist/esm/snk-filter-modal-item.entry.js +3 -3
- package/dist/esm/snk-filter-modal.entry.js +2 -1
- package/dist/esm/snk-filter-multi-select.entry.js +2 -1
- package/dist/esm/snk-form-config.entry.js +48 -28
- package/dist/esm/snk-form.entry.js +11 -4
- package/dist/esm/snk-grid.entry.js +41 -23
- package/dist/esm/{snk-guides-viewer-9d5e073f.js → snk-guides-viewer-90ca9105.js} +17 -12
- package/dist/esm/snk-guides-viewer.entry.js +8 -10
- package/dist/esm/snk-personalized-filter-editor.entry.js +3 -1
- package/dist/esm/snk-personalized-filter.entry.js +3 -3
- package/dist/esm/snk-pesquisa.entry.js +1 -1
- package/dist/esm/snk-simple-crud.entry.js +236 -27
- package/dist/esm/snk-taskbar.entry.js +101 -15
- package/dist/esm/{taskbar-elements-d4d0b424.js → taskbar-elements-2473c8ac.js} +9 -9
- package/dist/sankhyablocks/p-1f3174cb.entry.js +1 -0
- package/dist/sankhyablocks/p-1fa5a18c.entry.js +11 -0
- package/dist/sankhyablocks/p-20b46647.entry.js +1 -0
- package/dist/sankhyablocks/{p-9e7d65a4.js → p-21749402.js} +1 -1
- package/dist/sankhyablocks/p-2897fb8c.js +1 -0
- package/dist/sankhyablocks/{p-ff6064e7.js → p-2936303b.js} +1 -1
- package/dist/sankhyablocks/p-2cfe0c2c.entry.js +1 -0
- package/dist/sankhyablocks/p-33718dfc.entry.js +1 -0
- package/dist/sankhyablocks/p-384fd6ae.js +1 -0
- package/dist/sankhyablocks/p-50783a8b.js +1 -0
- package/dist/sankhyablocks/p-5c0b53ce.js +56 -0
- package/dist/sankhyablocks/p-663ff67b.entry.js +1 -0
- package/dist/sankhyablocks/{p-f514913b.entry.js → p-6b28cc74.entry.js} +1 -1
- package/dist/sankhyablocks/p-70a4af56.entry.js +1 -0
- package/dist/sankhyablocks/p-7c501259.entry.js +1 -0
- package/dist/sankhyablocks/{p-3520c088.entry.js → p-7ddd95b6.entry.js} +1 -1
- package/dist/sankhyablocks/p-7e05bd83.entry.js +1 -0
- package/dist/sankhyablocks/p-7f97fee2.entry.js +1 -0
- package/dist/sankhyablocks/p-8111f63f.entry.js +1 -0
- package/dist/sankhyablocks/{p-6977a26c.entry.js → p-86801b08.entry.js} +1 -1
- package/dist/sankhyablocks/{p-32f0935f.js → p-9a5d1b39.js} +1 -1
- package/dist/sankhyablocks/{p-0d7863ed.js → p-a13ccb86.js} +1 -1
- package/dist/sankhyablocks/p-ae4fc9a9.js +1 -0
- package/dist/sankhyablocks/p-b11aa1e0.entry.js +1 -0
- package/dist/sankhyablocks/p-b41a622a.entry.js +1 -0
- package/dist/sankhyablocks/p-ba4871b5.entry.js +1 -0
- package/dist/sankhyablocks/{p-9695f78b.js → p-be75153c.js} +1 -1
- package/dist/sankhyablocks/p-bf2acf72.entry.js +1 -0
- package/dist/sankhyablocks/p-d01ceda6.entry.js +1 -0
- package/dist/sankhyablocks/{p-247a8b36.entry.js → p-d1791da2.entry.js} +1 -1
- package/dist/sankhyablocks/p-d304659d.entry.js +1 -0
- package/dist/sankhyablocks/p-d78d4062.js +65 -0
- package/dist/sankhyablocks/p-e7dbe53a.entry.js +1 -0
- package/dist/sankhyablocks/p-fad4c2fe.js +1 -0
- package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
- package/dist/types/components/snk-application/__mocks__/snk-application.d.ts +3 -0
- package/dist/types/components/snk-application/snk-application.d.ts +15 -0
- package/dist/types/components/snk-attach/{structure/crud-config-builder.d.ts → interfaces/ICrudConfig.d.ts} +1 -2
- package/dist/types/components/snk-attach/interfaces/TFetcherType.d.ts +1 -0
- package/dist/types/components/snk-attach/snk-attach.d.ts +28 -6
- package/dist/types/components/snk-attach/structure/builder/anexo-sistema-crud-config.builder.d.ts +2 -0
- package/dist/types/components/snk-attach/structure/builder/attach-crud-config.builder.d.ts +31 -0
- package/dist/types/components/snk-attach/structure/{taskbar-builder.d.ts → builder/taskbar-builder.d.ts} +1 -1
- package/dist/types/components/snk-attach/structure/fetcher/facade/fetcher.facade.d.ts +11 -0
- package/dist/types/components/snk-attach/structure/fetcher/factory/anexo-sistema-data-unit.factory.d.ts +17 -0
- package/dist/types/components/snk-attach/structure/fetcher/factory/attach-fetcher-data-unit.factory.d.ts +15 -0
- package/dist/types/components/snk-attach/structure/index.d.ts +6 -3
- package/dist/types/components/snk-crud/snk-crud.d.ts +21 -0
- package/dist/types/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.d.ts +1 -1
- package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +6 -1
- 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 +5 -0
- package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +24 -1
- package/dist/types/components/snk-filter-bar/utils/SnkFilterModalFactory.d.ts +3 -1
- package/dist/types/components/snk-form/snk-form.d.ts +6 -1
- package/dist/types/components/{snk-form → snk-form-config}/SnkFormConfigManager.d.ts +2 -1
- package/dist/types/components/{snk-form/subcomponents/snk-form-config → snk-form-config}/snk-form-config.d.ts +5 -3
- package/dist/types/components/snk-grid/snk-grid.d.ts +20 -1
- package/dist/types/components/{snk-grid/subcomponents/snk-grid-config → snk-grid-config}/snk-grid-config.d.ts +11 -6
- package/dist/types/components/{snk-grid/subcomponents → snk-grid-config}/snk-select-box/snk-select-box.d.ts +1 -1
- package/dist/types/components/snk-simple-crud/regular-buttons.d.ts +3 -0
- package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +76 -4
- package/dist/types/components/snk-taskbar/elements/taskbar-actions-button/taskbar-actions-button.d.ts +1 -0
- package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +28 -1
- package/dist/types/components.d.ts +273 -12
- package/dist/types/lib/configs/ConfigStorage.d.ts +25 -1
- package/dist/types/lib/http/data-fetcher/DataFetcher.d.ts +1 -1
- package/dist/types/lib/http/data-fetcher/fetchers/{attach-fetcher.d.ts → AttachFetcher/anexo-sistema-fetcher.d.ts} +3 -2
- package/dist/types/lib/http/data-fetcher/fetchers/AttachFetcher/attach-fetcher.d.ts +11 -0
- package/dist/types/lib/http/data-fetcher/fetchers/AttachFetcher/facade/attach-fetcher.facade.d.ts +8 -0
- package/dist/types/lib/http/data-fetcher/fetchers/AttachFetcher/index.d.ts +3 -0
- package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/ISave.d.ts +2 -1
- package/dist/types/lib/http/data-fetcher/fetchers/data-unit/dataunit-fetcher.d.ts +2 -0
- package/dist/types/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.d.ts +2 -0
- package/dist/types/lib/http/data-fetcher/fetchers/parameters-fecher.d.ts +1 -0
- package/dist/types/lib/http/data-fetcher/fetchers/personalized-filter-fetcher.d.ts +2 -1
- package/dist/types/lib/index.d.ts +1 -1
- package/dist/types/lib/utils/CrudUtils.d.ts +3 -0
- package/package.json +15 -6
- package/dist/cjs/PreloadManager-84466da6.js +0 -224
- package/dist/cjs/SnkMultiSelectionListDataSource-ba5838c2.js +0 -49
- package/dist/cjs/pesquisa-fetcher-ef050a47.js +0 -167
- package/dist/cjs/snk-grid-config.cjs.entry.js +0 -483
- package/dist/cjs/snk-select-box.cjs.entry.js +0 -25
- package/dist/esm/PreloadManager-c1c2f2b4.js +0 -222
- package/dist/esm/SnkMultiSelectionListDataSource-44494b0e.js +0 -43
- package/dist/esm/pesquisa-fetcher-dd3ca0a5.js +0 -165
- package/dist/esm/snk-grid-config.entry.js +0 -479
- package/dist/esm/snk-select-box.entry.js +0 -21
- package/dist/sankhyablocks/p-0874adb5.entry.js +0 -1
- package/dist/sankhyablocks/p-094c30cb.js +0 -1
- package/dist/sankhyablocks/p-0d084a0f.entry.js +0 -1
- package/dist/sankhyablocks/p-11081798.entry.js +0 -1
- package/dist/sankhyablocks/p-143425c0.entry.js +0 -1
- package/dist/sankhyablocks/p-20726710.entry.js +0 -1
- package/dist/sankhyablocks/p-374d03f6.js +0 -1
- package/dist/sankhyablocks/p-4775a293.entry.js +0 -1
- package/dist/sankhyablocks/p-4b0938f6.entry.js +0 -1
- package/dist/sankhyablocks/p-585294ee.js +0 -56
- package/dist/sankhyablocks/p-69efa80d.entry.js +0 -1
- package/dist/sankhyablocks/p-776ee8e3.js +0 -1
- package/dist/sankhyablocks/p-7f9d6b5d.entry.js +0 -11
- package/dist/sankhyablocks/p-809f367d.entry.js +0 -1
- package/dist/sankhyablocks/p-8437508f.js +0 -1
- package/dist/sankhyablocks/p-98674137.entry.js +0 -1
- package/dist/sankhyablocks/p-a87229cd.entry.js +0 -1
- package/dist/sankhyablocks/p-a9e5b094.entry.js +0 -1
- package/dist/sankhyablocks/p-ba627e85.js +0 -60
- package/dist/sankhyablocks/p-c22c1d8e.js +0 -1
- package/dist/sankhyablocks/p-c758265f.entry.js +0 -1
- package/dist/sankhyablocks/p-cb7419e0.entry.js +0 -1
- package/dist/sankhyablocks/p-d1007720.entry.js +0 -1
- package/dist/sankhyablocks/p-d4f9ee17.entry.js +0 -1
- package/dist/sankhyablocks/p-d9bb09b3.js +0 -6
- package/dist/sankhyablocks/p-e3132789.entry.js +0 -1
- package/dist/sankhyablocks/p-e6380c60.js +0 -1
- package/dist/sankhyablocks/p-f2056f66.entry.js +0 -1
- package/dist/sankhyablocks/p-fd8814b9.entry.js +0 -1
- package/dist/types/components/snk-attach/structure/data-unit-builder.d.ts +0 -15
- /package/dist/collection/{lib/http/data-fetcher/fetchers/fecthAttach/interfaces/IDelete.js → components/snk-attach/interfaces/ICrudConfig.js} +0 -0
- /package/dist/collection/{lib/http/data-fetcher/fetchers/fecthAttach/interfaces/IDownloadKey.js → components/snk-attach/interfaces/TFetcherType.js} +0 -0
- /package/dist/collection/components/{snk-form/subcomponents/snk-form-config → snk-form-config}/snk-form-config.css +0 -0
- /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-config-options/snk-config-options.css +0 -0
- /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-config-options/snk-config-options.js +0 -0
- /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-field-config/snk-field-config.css +0 -0
- /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-field-config/snk-field-config.js +0 -0
- /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-tab-config/snk-tab-config.css +0 -0
- /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-tab-config/snk-tab-config.js +0 -0
- /package/dist/collection/components/{snk-grid/subcomponents/snk-grid-config → snk-grid-config}/snk-grid-config.css +0 -0
- /package/dist/collection/components/{snk-grid/subcomponents → snk-grid-config}/snk-select-box/snk-select-box.css +0 -0
- /package/dist/collection/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/index.js +0 -0
- /package/dist/types/components/{snk-form → snk-form-config}/subcomponents/snk-config-options/snk-config-options.d.ts +0 -0
- /package/dist/types/components/{snk-form → snk-form-config}/subcomponents/snk-field-config/snk-field-config.d.ts +0 -0
- /package/dist/types/components/{snk-form → snk-form-config}/subcomponents/snk-tab-config/snk-tab-config.d.ts +0 -0
- /package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/IDelete.d.ts +0 -0
- /package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/IDownloadKey.d.ts +0 -0
- /package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/index.d.ts +0 -0
@@ -1,12 +1,229 @@
|
|
1
1
|
'use strict';
|
2
2
|
|
3
3
|
const core = require('@sankhyalabs/core');
|
4
|
-
const DataFetcher = require('./DataFetcher-
|
4
|
+
const DataFetcher = require('./DataFetcher-99f0f6ed.js');
|
5
5
|
const constants = require('@sankhyalabs/ezui/dist/collection/utils/constants');
|
6
6
|
const UnitMetadata = require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
|
7
|
-
const PreloadManager = require('./PreloadManager-84466da6.js');
|
8
|
-
const ResourceIDUtils = require('./ResourceIDUtils-5ff86aa7.js');
|
9
7
|
const utils = require('@sankhyalabs/ezui/dist/collection/components/ez-grid/utils');
|
8
|
+
const ResourceIDUtils = require('./ResourceIDUtils-5ff86aa7.js');
|
9
|
+
|
10
|
+
class ArrayRepository {
|
11
|
+
constructor(equalsFunction) {
|
12
|
+
this._list = [];
|
13
|
+
this._equalsFunction = equalsFunction;
|
14
|
+
}
|
15
|
+
async load(filterFunction, sortingFunction, offset, limit) {
|
16
|
+
let result = [].concat(this._list);
|
17
|
+
if (filterFunction != undefined) {
|
18
|
+
result = this._list.filter(item => filterFunction(item));
|
19
|
+
}
|
20
|
+
if (sortingFunction != undefined) {
|
21
|
+
result = result.sort(sortingFunction);
|
22
|
+
}
|
23
|
+
const count = result.length;
|
24
|
+
if (limit != undefined) {
|
25
|
+
const start = offset || 0;
|
26
|
+
const end = limit ? start + limit : result.length;
|
27
|
+
result = result.slice(start, end);
|
28
|
+
}
|
29
|
+
return Promise.resolve({ result, count });
|
30
|
+
}
|
31
|
+
async distict(itemProcessor) {
|
32
|
+
const processedItems = [];
|
33
|
+
let hasEmpty = false;
|
34
|
+
for (const item of this._list) {
|
35
|
+
const processedItem = itemProcessor(item);
|
36
|
+
if (processedItem == undefined) {
|
37
|
+
continue;
|
38
|
+
}
|
39
|
+
if (processedItem.value == undefined) {
|
40
|
+
hasEmpty = true;
|
41
|
+
continue;
|
42
|
+
}
|
43
|
+
processedItems.push(processedItem);
|
44
|
+
}
|
45
|
+
if (hasEmpty) {
|
46
|
+
processedItems.push({ key: "", value: null });
|
47
|
+
}
|
48
|
+
return Promise.resolve(new Map(processedItems.map(item => [item.key, item.value])));
|
49
|
+
}
|
50
|
+
async push(items) {
|
51
|
+
this._list.push(...items);
|
52
|
+
}
|
53
|
+
async clear() {
|
54
|
+
this._list = [];
|
55
|
+
}
|
56
|
+
async delete(items) {
|
57
|
+
this._list = this._list.filter(item => {
|
58
|
+
for (const removed of items) {
|
59
|
+
if (this._equalsFunction(item, removed)) {
|
60
|
+
return false;
|
61
|
+
}
|
62
|
+
}
|
63
|
+
return true;
|
64
|
+
});
|
65
|
+
}
|
66
|
+
async update(items) {
|
67
|
+
this._list = this._list.map(existingItem => {
|
68
|
+
const newItem = items.find(newItem => this._equalsFunction(existingItem, newItem));
|
69
|
+
return newItem == undefined ? existingItem : newItem;
|
70
|
+
});
|
71
|
+
}
|
72
|
+
async insert(itemReference, items) {
|
73
|
+
const itemPosition = this._list.indexOf(itemReference);
|
74
|
+
if (itemPosition == -1) {
|
75
|
+
this._list.push(...items);
|
76
|
+
return;
|
77
|
+
}
|
78
|
+
this._list = this._list.slice(0, itemPosition).concat(items).concat(this._list.slice(itemPosition));
|
79
|
+
}
|
80
|
+
isOperating() {
|
81
|
+
return true;
|
82
|
+
}
|
83
|
+
async isEmpty() {
|
84
|
+
return Promise.resolve(this._list.length === 0);
|
85
|
+
}
|
86
|
+
async count() {
|
87
|
+
return Promise.resolve(this._list.length);
|
88
|
+
}
|
89
|
+
}
|
90
|
+
|
91
|
+
class PreloadManager {
|
92
|
+
static setLoadingStatus(dataUnit, loadingInProgress) {
|
93
|
+
this._loadingStatus.set(dataUnit.name, loadingInProgress);
|
94
|
+
}
|
95
|
+
static isCacheEnabled(_dataUnit) {
|
96
|
+
return true;
|
97
|
+
}
|
98
|
+
static cacheRecords(dataUnit, records, resetDatabase, loadingInProgress) {
|
99
|
+
PreloadManager.setLoadingStatus(dataUnit, loadingInProgress);
|
100
|
+
if (PreloadManager.isCacheEnabled(dataUnit)) {
|
101
|
+
this.getRepository(dataUnit).push(records);
|
102
|
+
}
|
103
|
+
else {
|
104
|
+
if (resetDatabase) {
|
105
|
+
this._repositories.delete(dataUnit.name);
|
106
|
+
}
|
107
|
+
}
|
108
|
+
}
|
109
|
+
static getSortingFunction(dataUnit, sorting) {
|
110
|
+
if (sorting == undefined || sorting.length == 0) {
|
111
|
+
return undefined;
|
112
|
+
}
|
113
|
+
return (recordA, recordB) => {
|
114
|
+
for (const sort of sorting) {
|
115
|
+
const result = core.FieldComparator.compare(dataUnit.getField(sort.field), recordA, recordB, sort.mode === core.SortMode.ASC);
|
116
|
+
if (result != 0) {
|
117
|
+
return result;
|
118
|
+
}
|
119
|
+
}
|
120
|
+
};
|
121
|
+
}
|
122
|
+
static async getDistinct(dataUnit, fieldName) {
|
123
|
+
if (!PreloadManager.isCacheEnabled(dataUnit)) {
|
124
|
+
return Promise.resolve(utils.ColumnFilterManager.compileDistinct(fieldName, dataUnit));
|
125
|
+
}
|
126
|
+
let filterFunction;
|
127
|
+
const request = dataUnit.getLastLoadRequest();
|
128
|
+
if (request != undefined) {
|
129
|
+
const columnFilters = utils.ColumnFilterManager.getColumnFilters(request.filters, fieldName);
|
130
|
+
filterFunction = utils.ColumnFilterManager.getFilterFunction(dataUnit, Array.from(columnFilters.values()));
|
131
|
+
}
|
132
|
+
return new Promise((accept, reject) => {
|
133
|
+
PreloadManager.getRepository(dataUnit).distict(record => {
|
134
|
+
if (filterFunction != undefined && !filterFunction(record)) {
|
135
|
+
return undefined;
|
136
|
+
}
|
137
|
+
const fieldValue = record[fieldName];
|
138
|
+
if (fieldValue == undefined) {
|
139
|
+
return { key: null, value: null };
|
140
|
+
}
|
141
|
+
const value = fieldValue.value != undefined ? fieldValue.value : fieldValue;
|
142
|
+
return { key: dataUnit.getFormattedValue(fieldName, fieldValue), value };
|
143
|
+
})
|
144
|
+
.then(result => {
|
145
|
+
if (result == undefined) {
|
146
|
+
accept(undefined);
|
147
|
+
return;
|
148
|
+
}
|
149
|
+
accept(Array.from(result.entries()).map(([label, value]) => ({ label, value, check: true })));
|
150
|
+
})
|
151
|
+
.catch(reason => reject(reason));
|
152
|
+
});
|
153
|
+
}
|
154
|
+
static async loadData(dataUnit, request, loadFromServer) {
|
155
|
+
try {
|
156
|
+
if (PreloadManager.isCacheEnabled(dataUnit)) {
|
157
|
+
let useCache = request.source === "EZ_GRID_LOADING_SOURCE" || request.source === core.DataUnit.CHANGING_PAGE_LOADING_SOURCE;
|
158
|
+
if (useCache) {
|
159
|
+
const isCacheEmpty = await PreloadManager.getRepository(dataUnit).isEmpty();
|
160
|
+
if (!isCacheEmpty) {
|
161
|
+
return PreloadManager.loadFromCache(dataUnit, request);
|
162
|
+
}
|
163
|
+
}
|
164
|
+
//Como não vamos aproveitar o cache, ele precisa ser limpo.
|
165
|
+
PreloadManager.getRepository(dataUnit).clear().catch(() => { });
|
166
|
+
}
|
167
|
+
return loadFromServer(dataUnit, request);
|
168
|
+
}
|
169
|
+
catch (error) {
|
170
|
+
console.error(error);
|
171
|
+
return Promise.reject(error);
|
172
|
+
}
|
173
|
+
}
|
174
|
+
static insertRecords(dataUnit, reference, records) {
|
175
|
+
if (PreloadManager.isCacheEnabled(dataUnit)) {
|
176
|
+
PreloadManager.getRepository(dataUnit).insert(reference, records);
|
177
|
+
}
|
178
|
+
}
|
179
|
+
static updateRecords(dataUnit, records) {
|
180
|
+
if (PreloadManager.isCacheEnabled(dataUnit)) {
|
181
|
+
PreloadManager.getRepository(dataUnit).update(records);
|
182
|
+
}
|
183
|
+
}
|
184
|
+
static removeRecords(dataUnit, records) {
|
185
|
+
if (PreloadManager.isCacheEnabled(dataUnit)) {
|
186
|
+
PreloadManager.getRepository(dataUnit).delete(records);
|
187
|
+
}
|
188
|
+
}
|
189
|
+
static async countRecords(dataUnit) {
|
190
|
+
if (PreloadManager.isCacheEnabled(dataUnit)) {
|
191
|
+
return PreloadManager.getRepository(dataUnit).count();
|
192
|
+
}
|
193
|
+
return Promise.resolve(0);
|
194
|
+
}
|
195
|
+
static getRepository(dataUnit) {
|
196
|
+
const name = dataUnit.name;
|
197
|
+
if (!PreloadManager._repositories.has(name)) {
|
198
|
+
PreloadManager._repositories.set(name, new ArrayRepository((recordA, recordB) => recordA.__record__id__ === recordB.__record__id__));
|
199
|
+
}
|
200
|
+
return PreloadManager._repositories.get(name);
|
201
|
+
}
|
202
|
+
static async loadFromCache(dataUnit, request) {
|
203
|
+
return new Promise((accept, reject) => {
|
204
|
+
const columnFilters = utils.ColumnFilterManager.getColumnFilters(request.filters, "");
|
205
|
+
const { limit, offset, sort } = request;
|
206
|
+
PreloadManager.getRepository(dataUnit)
|
207
|
+
.load(utils.ColumnFilterManager.getFilterFunction(dataUnit, Array.from(columnFilters.values())), PreloadManager.getSortingFunction(dataUnit, sort), offset, limit)
|
208
|
+
.then(loadResult => {
|
209
|
+
const stillLoading = PreloadManager._loadingStatus.get(dataUnit.name);
|
210
|
+
const { count, result: records } = loadResult;
|
211
|
+
const firstRecord = count == 0 ? 0 : offset + 1;
|
212
|
+
const lastRecord = offset + Math.min(records.length, limit);
|
213
|
+
const currentPage = offset / limit;
|
214
|
+
const paginationInfo = {
|
215
|
+
count, currentPage, firstRecord, lastRecord,
|
216
|
+
hasMore: stillLoading || (lastRecord < count),
|
217
|
+
total: stillLoading ? undefined : count
|
218
|
+
};
|
219
|
+
accept({ records, paginationInfo });
|
220
|
+
})
|
221
|
+
.catch(reason => reject(reason));
|
222
|
+
});
|
223
|
+
}
|
224
|
+
}
|
225
|
+
PreloadManager._repositories = new Map();
|
226
|
+
PreloadManager._loadingStatus = new Map();
|
10
227
|
|
11
228
|
class InMemoryLoader {
|
12
229
|
constructor(metadata, records) {
|
@@ -20,7 +237,7 @@ class InMemoryLoader {
|
|
20
237
|
this.dataUnit.loadMetadata().then(() => this.dataUnit.loadData());
|
21
238
|
}
|
22
239
|
getRecordsToLoad() {
|
23
|
-
if (this._initialRecords == undefined
|
240
|
+
if (this._initialRecords == undefined || this.dataUnit.records.length > 0) {
|
24
241
|
this._initialRecords = this.dataUnit.records;
|
25
242
|
}
|
26
243
|
return this._initialRecords;
|
@@ -100,7 +317,7 @@ class InMemoryLoader {
|
|
100
317
|
if (sorting == undefined || sorting.length == 0) {
|
101
318
|
return records;
|
102
319
|
}
|
103
|
-
const sortingFunction = PreloadManager.
|
320
|
+
const sortingFunction = PreloadManager.getSortingFunction(dataUnit, sorting);
|
104
321
|
if (sortingFunction == undefined) {
|
105
322
|
return records;
|
106
323
|
}
|
@@ -155,30 +372,39 @@ class DatasetStrategy {
|
|
155
372
|
canSlice() {
|
156
373
|
return false;
|
157
374
|
}
|
375
|
+
processSortingSide(request, dataUnit, serverSideFilters) {
|
376
|
+
const localSorting = [];
|
377
|
+
const serverSorting = [];
|
378
|
+
if (request.sort != undefined) {
|
379
|
+
if (serverSideFilters.length === 0) {
|
380
|
+
return { localSorting: request.sort, serverSorting: [] };
|
381
|
+
}
|
382
|
+
for (const sort of request.sort) {
|
383
|
+
const descriptor = dataUnit.getField(sort.field);
|
384
|
+
const local = descriptor != undefined
|
385
|
+
&& descriptor.properties != undefined
|
386
|
+
&& descriptor.properties.calculated === "true";
|
387
|
+
if (local) {
|
388
|
+
localSorting.push(sort);
|
389
|
+
}
|
390
|
+
else {
|
391
|
+
serverSorting.push(sort);
|
392
|
+
}
|
393
|
+
}
|
394
|
+
}
|
395
|
+
return { localSorting, serverSorting };
|
396
|
+
}
|
158
397
|
async load(dataUnit, request, loadingInfo) {
|
398
|
+
var _a, _b;
|
159
399
|
if (dataUnit.metadata == undefined) {
|
160
400
|
return Promise.resolve({ records: [], loadingInfo });
|
161
401
|
}
|
162
402
|
try {
|
163
|
-
const
|
164
|
-
const serverSorting =
|
165
|
-
if (request.sort != undefined) {
|
166
|
-
for (const sort of request.sort) {
|
167
|
-
const descriptor = dataUnit.getField(sort.field);
|
168
|
-
const local = descriptor != undefined
|
169
|
-
&& descriptor.properties != undefined
|
170
|
-
&& descriptor.properties.calculated === "true";
|
171
|
-
if (local) {
|
172
|
-
localSorting.push(sort);
|
173
|
-
}
|
174
|
-
else {
|
175
|
-
serverSorting.push(sort);
|
176
|
-
}
|
177
|
-
}
|
178
|
-
}
|
403
|
+
const serverSideFilters = (_b = (_a = request.filters) === null || _a === void 0 ? void 0 : _a.filter(filter => !filter.name.startsWith("FILTRO_COLUNA_"))) !== null && _b !== void 0 ? _b : [];
|
404
|
+
const { localSorting, serverSorting } = this.processSortingSide(request, dataUnit, serverSideFilters);
|
179
405
|
const fields = this.getFieldsList(dataUnit);
|
180
406
|
const serviceName = "DatasetSP.loadRecords";
|
181
|
-
const requestBody = this.buildRequestBody(serviceName, fields, dataUnit, request, loadingInfo, serverSorting);
|
407
|
+
const requestBody = this.buildRequestBody(serviceName, fields, dataUnit, request, loadingInfo, serverSorting, serverSideFilters);
|
182
408
|
const params = loadingInfo.quiet ? { urlParams: { quietMode: "true" } } : undefined;
|
183
409
|
const { result: responseRecords, pagerID: pagerId } = await DataFetcher.DataFetcher.get().callServiceBroker(serviceName, requestBody, params);
|
184
410
|
const records = this.processRecords(dataUnit, fields, responseRecords);
|
@@ -200,13 +426,21 @@ class DatasetStrategy {
|
|
200
426
|
getFieldsList(dataUnit) {
|
201
427
|
let fields = ["__record__id__", "__record__label__"];
|
202
428
|
dataUnit.metadata.fields.forEach((descriptor) => {
|
203
|
-
if (descriptor.standAlone)
|
429
|
+
if (descriptor.standAlone)
|
204
430
|
return;
|
205
|
-
}
|
206
431
|
fields = fields.concat(this.getFieldNames(descriptor));
|
207
432
|
});
|
208
433
|
return fields;
|
209
434
|
}
|
435
|
+
getStandAloneFieldsList(dataUnit) {
|
436
|
+
let fields = {};
|
437
|
+
dataUnit.metadata.fields.forEach((currentField) => {
|
438
|
+
if (!currentField.standAlone)
|
439
|
+
return;
|
440
|
+
fields = Object.assign(Object.assign({}, fields), { [currentField.name]: { fieldType: currentField.dataType, userType: currentField.userInterface } });
|
441
|
+
});
|
442
|
+
return fields;
|
443
|
+
}
|
210
444
|
getFieldNames(descriptor) {
|
211
445
|
const descriptionField = this.getSearchDescriptionField(descriptor);
|
212
446
|
if (descriptionField == undefined) {
|
@@ -214,7 +448,7 @@ class DatasetStrategy {
|
|
214
448
|
}
|
215
449
|
return [descriptor.name, descriptionField];
|
216
450
|
}
|
217
|
-
buildRequestBody(serviceName, fields, dataUnit, request, loadingInfo, sorting) {
|
451
|
+
buildRequestBody(serviceName, fields, dataUnit, request, loadingInfo, sorting, serverSideFilters) {
|
218
452
|
const dataSetID = dataUnit.dataUnitId;
|
219
453
|
const dataUnitName = dataUnit.name;
|
220
454
|
const entityName = DataUnitFetcher.parseDataUnitName(dataUnitName).entityName;
|
@@ -229,14 +463,11 @@ class DatasetStrategy {
|
|
229
463
|
totalRecordsCount: loadingInfo.count,
|
230
464
|
pagerID: loadingInfo.pagerId,
|
231
465
|
standAlone: false,
|
232
|
-
standAloneFieldsMD: {
|
233
|
-
__record__id__: { "fieldType": "S", "userType": "P" },
|
234
|
-
__record__label__: { "fieldType": "S", "userType": "P" }
|
235
|
-
},
|
466
|
+
standAloneFieldsMD: Object.assign({ __record__id__: { "fieldType": "S", "userType": "P" }, __record__label__: { "fieldType": "S", "userType": "P" } }, this.getStandAloneFieldsList(dataUnit)),
|
236
467
|
tryJoinedFields: true,
|
237
468
|
parallelLoader: useParallelLoader,
|
238
469
|
crudListener: `br.com.sankhya.bff.${this.getModuleName()}.BFFDataUnitDatasetAdapter`,
|
239
|
-
txProperties: this.getTxProperties(
|
470
|
+
txProperties: this.getTxProperties(dataUnit, request, sorting, serverSideFilters),
|
240
471
|
useDefaultRowsLimit: false
|
241
472
|
}
|
242
473
|
};
|
@@ -247,12 +478,10 @@ class DatasetStrategy {
|
|
247
478
|
const moduleName = app.getModuleName();
|
248
479
|
return moduleName.replace("-bff", "");
|
249
480
|
}
|
250
|
-
getTxProperties(
|
251
|
-
var _a, _b;
|
481
|
+
getTxProperties(dataUnit, request, sorting, serverSideFilters) {
|
252
482
|
const txProperties = {
|
253
|
-
"__DATA_UNIT_ADAPTER__[dataUnitName]":
|
483
|
+
"__DATA_UNIT_ADAPTER__[dataUnitName]": dataUnit.name
|
254
484
|
};
|
255
|
-
const serverSideFilters = (_b = (_a = request.filters) === null || _a === void 0 ? void 0 : _a.filter(filter => !filter.name.startsWith("FILTRO_COLUNA_"))) !== null && _b !== void 0 ? _b : [];
|
256
485
|
if (serverSideFilters.length !== 0) {
|
257
486
|
txProperties["__DATA_UNIT_ADAPTER__[criteria]"] = JSON.stringify(serverSideFilters);
|
258
487
|
}
|
@@ -262,6 +491,13 @@ class DatasetStrategy {
|
|
262
491
|
if (request.parentRecordId != undefined) {
|
263
492
|
txProperties["__DATA_UNIT_ADAPTER__[parentRecordId]"] = request.parentRecordId;
|
264
493
|
}
|
494
|
+
const loaderProps = dataUnit.getGlobalLoaderProps();
|
495
|
+
if (loaderProps == undefined || loaderProps.size === 0) {
|
496
|
+
return txProperties;
|
497
|
+
}
|
498
|
+
Array.from(loaderProps.entries()).forEach(([name, value]) => {
|
499
|
+
txProperties[name] = value;
|
500
|
+
});
|
265
501
|
return txProperties;
|
266
502
|
}
|
267
503
|
processRecords(dataUnit, fields, responseRecords) {
|
@@ -325,7 +561,7 @@ class DataUnitDataLoader {
|
|
325
561
|
static async loadData(dataUnit, request) {
|
326
562
|
return new Promise((resolve, reject) => {
|
327
563
|
DataUnitDataLoader.debounce(dataUnit, () => {
|
328
|
-
PreloadManager.
|
564
|
+
PreloadManager.loadData(dataUnit, request, this.loadFromServer)
|
329
565
|
.then(resp => resolve(resp))
|
330
566
|
.catch(reason => reject(reason));
|
331
567
|
});
|
@@ -362,8 +598,8 @@ class DataUnitDataLoader {
|
|
362
598
|
return Promise.resolve(undefined);
|
363
599
|
}
|
364
600
|
const recreateCache = !dataLoader.canSlice() || responseLoadingInfo.count === 0;
|
365
|
-
PreloadManager.
|
366
|
-
if (PreloadManager.
|
601
|
+
PreloadManager.cacheRecords(dataUnit, records, recreateCache, responseLoadingInfo.loadingInProgress);
|
602
|
+
if (PreloadManager.isCacheEnabled(dataUnit) && responseLoadingInfo.loadingInProgress) {
|
367
603
|
const newRequest = Object.assign(Object.assign({}, request), { offset: responseLoadingInfo.count });
|
368
604
|
const newLoadingInfo = Object.assign(Object.assign({}, responseLoadingInfo), { pageNumber: (responseLoadingInfo.pageNumber || 0) + 1, quiet: true });
|
369
605
|
this.callLoader(dataUnit, newRequest, newLoadingInfo, dataLoader)
|
@@ -373,7 +609,7 @@ class DataUnitDataLoader {
|
|
373
609
|
return Promise.resolve(result);
|
374
610
|
}
|
375
611
|
static afterLoadingPage(dataUnit, loadingInfo) {
|
376
|
-
PreloadManager.
|
612
|
+
PreloadManager.setLoadingStatus(dataUnit, loadingInfo.loadingInProgress);
|
377
613
|
const dataUnitPagination = dataUnit.getPaginationInfo();
|
378
614
|
if (dataUnitPagination == undefined) {
|
379
615
|
return;
|
@@ -520,9 +756,9 @@ class DataUnitFetcher {
|
|
520
756
|
return { entityName: parts[1], resourceID: parts[2] };
|
521
757
|
}
|
522
758
|
getDataUnit(entityName, resourceID, parentDataUnit, configName) {
|
523
|
-
if (PreloadManager.
|
759
|
+
if (PreloadManager.applicationResourceID == undefined) {
|
524
760
|
//Por falta de um lugar melhor pra iniciar essa variável, fazemos isso aqui.
|
525
|
-
ResourceIDUtils.ResourceIDUtils.getResourceID().then(resourceID => PreloadManager.
|
761
|
+
ResourceIDUtils.ResourceIDUtils.getResourceID().then(resourceID => PreloadManager.applicationResourceID = resourceID);
|
526
762
|
}
|
527
763
|
const duName = `dd://${entityName}/${resourceID}${configName ? "/" + configName : ""}`;
|
528
764
|
const dataUnit = parentDataUnit != undefined ? parentDataUnit.getChildDataunit(duName) : new core.DataUnit(duName);
|
@@ -591,14 +827,41 @@ class DataUnitFetcher {
|
|
591
827
|
});
|
592
828
|
});
|
593
829
|
}
|
830
|
+
addTransientProperties(dataUnit, updatingFields) {
|
831
|
+
const loaderProps = dataUnit.getGlobalLoaderProps();
|
832
|
+
if (loaderProps == undefined || loaderProps.size === 0) {
|
833
|
+
return updatingFields;
|
834
|
+
}
|
835
|
+
if (updatingFields == undefined) {
|
836
|
+
updatingFields = {};
|
837
|
+
}
|
838
|
+
Array.from(loaderProps.entries()).forEach(([name, value]) => {
|
839
|
+
updatingFields[`transient.${name}`] = value;
|
840
|
+
});
|
841
|
+
return updatingFields;
|
842
|
+
}
|
843
|
+
getUpdatingFields(dataUnit, originalUpdatingFields) {
|
844
|
+
if (originalUpdatingFields == undefined) {
|
845
|
+
return;
|
846
|
+
}
|
847
|
+
const updatingFields = Object.assign({}, originalUpdatingFields);
|
848
|
+
Object.keys(updatingFields).forEach(key => {
|
849
|
+
const descriptor = dataUnit.getField(key);
|
850
|
+
if (descriptor != undefined && descriptor.standAlone) {
|
851
|
+
delete updatingFields[key];
|
852
|
+
}
|
853
|
+
});
|
854
|
+
return this.addTransientProperties(dataUnit, updatingFields);
|
855
|
+
}
|
594
856
|
saveData(dataUnit, duChanges) {
|
595
857
|
const updatedRecordsIds = [];
|
596
858
|
const addedRecordsIds = [];
|
597
859
|
const changes = duChanges.map((change) => {
|
598
|
-
const { dataUnit: changeDU, record,
|
860
|
+
const { dataUnit: changeDU, record, operation } = change;
|
599
861
|
const dataUnitInstance = core.DataUnitStorage.get(changeDU);
|
862
|
+
const updatingFields = this.getUpdatingFields(dataUnitInstance, change.updatingFields);
|
600
863
|
let parsedUpdatingFields;
|
601
|
-
if (updatingFields) {
|
864
|
+
if (updatingFields != undefined) {
|
602
865
|
parsedUpdatingFields = Object.entries(updatingFields).map(([fieldName, value]) => {
|
603
866
|
const descriptor = dataUnitInstance.getField(fieldName);
|
604
867
|
const dataType = descriptor ? descriptor.dataType : core.DataType.TEXT;
|
@@ -646,7 +909,8 @@ class DataUnitFetcher {
|
|
646
909
|
}
|
647
910
|
responseRecord.fields.forEach(({ name, value }) => {
|
648
911
|
var _a;
|
649
|
-
|
912
|
+
const valueFromString = (_a = dataUnitInstance === null || dataUnitInstance === void 0 ? void 0 : dataUnitInstance.valueFromString) === null || _a === void 0 ? void 0 : _a.call(dataUnitInstance, name, value);
|
913
|
+
duRecord[name] = (valueFromString !== undefined) ? valueFromString : value;
|
650
914
|
});
|
651
915
|
dataUnitRecords.push(duRecord);
|
652
916
|
});
|
@@ -667,10 +931,10 @@ class DataUnitFetcher {
|
|
667
931
|
});
|
668
932
|
if (addedRecords.length > 0) {
|
669
933
|
const firstRecord = dataUnit.records[0];
|
670
|
-
PreloadManager.
|
934
|
+
PreloadManager.insertRecords(dataUnit, firstRecord, addedRecords);
|
671
935
|
}
|
672
936
|
const updatedRecords = toUpdate.map(recordId => (Object.assign({}, recordsById.get(recordId))));
|
673
|
-
PreloadManager.
|
937
|
+
PreloadManager.updateRecords(dataUnit, updatedRecords);
|
674
938
|
}
|
675
939
|
getTransientInfo(dataUnit, recordID) {
|
676
940
|
const { records } = dataUnit.getSelectionInfo();
|
@@ -687,7 +951,7 @@ class DataUnitFetcher {
|
|
687
951
|
query: this.templateByQuery.get("saveData"),
|
688
952
|
})
|
689
953
|
.then((_resp) => {
|
690
|
-
PreloadManager.
|
954
|
+
PreloadManager.removeRecords(dataUnit, dataUnit.records.filter(record => recordIds.includes(record.__record__id__)));
|
691
955
|
resolve(recordIds);
|
692
956
|
})
|
693
957
|
.catch((error) => {
|
@@ -721,5 +985,167 @@ class DataUnitFetcher {
|
|
721
985
|
}
|
722
986
|
}
|
723
987
|
|
988
|
+
class PesquisaFetcher {
|
989
|
+
constructor() {
|
990
|
+
this._defaultPageSize = 100;
|
991
|
+
this._templateByQuery = new Map();
|
992
|
+
this._searchListenersByDataUnit = new Map();
|
993
|
+
this.buldTemplates();
|
994
|
+
}
|
995
|
+
buldTemplates() {
|
996
|
+
this._templateByQuery.set("search", DataFetcher.dist.gql `query($entityName: String! $argument: String $criteria: InputSearchCriteria $options: InputSearchOptions) {
|
997
|
+
$queryAlias$: search(entityName: $entityName argument: $argument criteria: $criteria options: $options){
|
998
|
+
value
|
999
|
+
label
|
1000
|
+
}
|
1001
|
+
}`);
|
1002
|
+
}
|
1003
|
+
loadSearchOptions(entityName, argument, criteria, options) {
|
1004
|
+
var _a;
|
1005
|
+
const cleanText = (argument === null || argument === void 0 ? void 0 : argument.toString().trim()) || undefined;
|
1006
|
+
argument = isNaN(Number(cleanText)) && cleanText ? `%${cleanText}` : cleanText;
|
1007
|
+
criteria === null || criteria === void 0 ? void 0 : criteria.params.forEach(param => {
|
1008
|
+
if (param.dataType === core.DataType.OBJECT) {
|
1009
|
+
param.value = JSON.stringify(param.value);
|
1010
|
+
}
|
1011
|
+
});
|
1012
|
+
const listenerResult = this.applySearchListener(SearchListenerType.beforeSearch, entityName, argument, criteria, options);
|
1013
|
+
const values = {
|
1014
|
+
argument: (listenerResult === null || listenerResult === void 0 ? void 0 : listenerResult.argument) || argument,
|
1015
|
+
entityName,
|
1016
|
+
criteria: (listenerResult === null || listenerResult === void 0 ? void 0 : listenerResult.criteria) || criteria,
|
1017
|
+
options: (listenerResult === null || listenerResult === void 0 ? void 0 : listenerResult.searchOptions) || options,
|
1018
|
+
};
|
1019
|
+
if (values.options) {
|
1020
|
+
(_a = values.options) === null || _a === void 0 ? true : delete _a.dataUnitId;
|
1021
|
+
}
|
1022
|
+
return new Promise((resolve, reject) => {
|
1023
|
+
DataFetcher.DataFetcher.get()
|
1024
|
+
.callGraphQL({
|
1025
|
+
values,
|
1026
|
+
query: this._templateByQuery.get("search"),
|
1027
|
+
})
|
1028
|
+
.then((result) => {
|
1029
|
+
resolve(result);
|
1030
|
+
})
|
1031
|
+
.catch((error) => {
|
1032
|
+
reject(error);
|
1033
|
+
});
|
1034
|
+
});
|
1035
|
+
}
|
1036
|
+
loadAdvancedSearch(entityName, argument, criteria, searchOptions) {
|
1037
|
+
var _a, _b, _c, _d;
|
1038
|
+
const listenerResult = this.applySearchListener(SearchListenerType.beforeSearch, entityName, argument, criteria, searchOptions);
|
1039
|
+
const values = {
|
1040
|
+
argument: (listenerResult === null || listenerResult === void 0 ? void 0 : listenerResult.argument) || argument,
|
1041
|
+
criteria: (listenerResult === null || listenerResult === void 0 ? void 0 : listenerResult.criteria) || criteria,
|
1042
|
+
searchOptions: (listenerResult === null || listenerResult === void 0 ? void 0 : listenerResult.searchOptions) || searchOptions,
|
1043
|
+
};
|
1044
|
+
const serviceName = "PesquisaSP.getSuggestion";
|
1045
|
+
const externalCriteria = {
|
1046
|
+
query: {
|
1047
|
+
$: (_a = values.criteria) === null || _a === void 0 ? void 0 : _a.expression
|
1048
|
+
}
|
1049
|
+
};
|
1050
|
+
if (((_c = (_b = values.criteria) === null || _b === void 0 ? void 0 : _b.params) === null || _c === void 0 ? void 0 : _c.length) > 0) {
|
1051
|
+
externalCriteria.params = {
|
1052
|
+
param: values.criteria.params.map(param => {
|
1053
|
+
let value = param.value;
|
1054
|
+
if (typeof value === "string") {
|
1055
|
+
const match = /CTX\{([^}]+)\}/.exec(value);
|
1056
|
+
if (match) {
|
1057
|
+
value = core.ApplicationContext.getContextValue(`__SNK__APPLICATION__FILTER__CONTEXT(${match[1]})__`);
|
1058
|
+
}
|
1059
|
+
}
|
1060
|
+
let type = param.dataType;
|
1061
|
+
if (type === core.DataType.OBJECT) {
|
1062
|
+
value = value.value;
|
1063
|
+
type = "S";
|
1064
|
+
}
|
1065
|
+
else {
|
1066
|
+
type = convertParamType(param.dataType);
|
1067
|
+
}
|
1068
|
+
return { $: value, type };
|
1069
|
+
})
|
1070
|
+
};
|
1071
|
+
}
|
1072
|
+
const options = searchOptions != undefined
|
1073
|
+
? Object.assign(Object.assign({}, searchOptions), { "pkFieldName": searchOptions.codeFieldName, "label": searchOptions.descriptionFieldName, "fieldName": searchOptions.codeFieldName, "useDescriptionOptions": false, "enableRowsCounter": true }) : undefined;
|
1074
|
+
const reqBody = {
|
1075
|
+
"serviceName": serviceName,
|
1076
|
+
"requestBody": {
|
1077
|
+
"criteria": Object.assign({ "entityName": entityName, "compacted": false, "ignoreEntityCriteria": false, "limit": this._defaultPageSize, "query": { "$": values.argument }, "orderByDesc": false, "externalCriteria": externalCriteria, "localEntityName": (_d = values.searchOptions) === null || _d === void 0 ? void 0 : _d.rootEntity }, { options }),
|
1078
|
+
"clientEventList": {
|
1079
|
+
"clientEvent": []
|
1080
|
+
}
|
1081
|
+
}
|
1082
|
+
};
|
1083
|
+
return new Promise((resolve, reject) => {
|
1084
|
+
DataFetcher.DataFetcher.get()
|
1085
|
+
.callServiceBroker("PesquisaSP.getSuggestion", JSON.stringify(reqBody))
|
1086
|
+
.then(result => resolve(result))
|
1087
|
+
.catch(error => reject(error));
|
1088
|
+
});
|
1089
|
+
}
|
1090
|
+
addSearchListener(entityName, dataUnitID, listener) {
|
1091
|
+
var _a;
|
1092
|
+
const dataUnitSearchListeners = this._searchListenersByDataUnit.get(dataUnitID) || [];
|
1093
|
+
const entityListener = dataUnitSearchListeners.find(currentListener => currentListener.entity === entityName);
|
1094
|
+
if (!entityListener) {
|
1095
|
+
this._searchListenersByDataUnit.set(dataUnitID, [...dataUnitSearchListeners, { entity: entityName, listener }]);
|
1096
|
+
}
|
1097
|
+
else {
|
1098
|
+
for (const type of Object.keys(listener)) {
|
1099
|
+
if (type in entityListener.listener) {
|
1100
|
+
const listenerFunctionIsEquals = ((_a = entityListener.listener[type]) === null || _a === void 0 ? void 0 : _a.toString()) === listener[type].toString();
|
1101
|
+
if (listenerFunctionIsEquals)
|
1102
|
+
continue;
|
1103
|
+
entityListener.listener[type] = listener[type];
|
1104
|
+
}
|
1105
|
+
}
|
1106
|
+
}
|
1107
|
+
return () => {
|
1108
|
+
const newListeners = dataUnitSearchListeners.filter(currentListener => currentListener.entity !== entityName);
|
1109
|
+
if (!newListeners.length) {
|
1110
|
+
this._searchListenersByDataUnit.delete(dataUnitID);
|
1111
|
+
return;
|
1112
|
+
}
|
1113
|
+
this._searchListenersByDataUnit.set(dataUnitID, newListeners);
|
1114
|
+
};
|
1115
|
+
}
|
1116
|
+
applySearchListener(listenerType, entityName, argument, criteria, searchOptions) {
|
1117
|
+
var _a;
|
1118
|
+
const dataUnitId = searchOptions === null || searchOptions === void 0 ? void 0 : searchOptions.dataUnitId;
|
1119
|
+
if (!dataUnitId)
|
1120
|
+
return;
|
1121
|
+
const entityListener = (_a = this._searchListenersByDataUnit.get(dataUnitId)) === null || _a === void 0 ? void 0 : _a.find(({ entity }) => entity === entityName);
|
1122
|
+
if (!entityListener)
|
1123
|
+
return;
|
1124
|
+
const { listener } = entityListener;
|
1125
|
+
if (!(listenerType in listener))
|
1126
|
+
return;
|
1127
|
+
return listener[listenerType]({ argument, criteria, searchOptions });
|
1128
|
+
}
|
1129
|
+
}
|
1130
|
+
function convertParamType(dataType) {
|
1131
|
+
//Alerta: Cuidado pra não contaminar o DataType com a implementação
|
1132
|
+
//atual da pesquisa... em geral, somente inteiros,
|
1133
|
+
//data (com ou sem hora) e string são realmente relevantes
|
1134
|
+
switch (dataType) {
|
1135
|
+
case core.DataType.NUMBER:
|
1136
|
+
return "I";
|
1137
|
+
case core.DataType.DATE:
|
1138
|
+
return "D";
|
1139
|
+
default:
|
1140
|
+
return "S";
|
1141
|
+
}
|
1142
|
+
}
|
1143
|
+
var SearchListenerType;
|
1144
|
+
(function (SearchListenerType) {
|
1145
|
+
SearchListenerType["beforeSearch"] = "beforeSearch";
|
1146
|
+
})(SearchListenerType || (SearchListenerType = {}));
|
1147
|
+
|
724
1148
|
exports.DataUnitFetcher = DataUnitFetcher;
|
725
1149
|
exports.InMemoryLoader = InMemoryLoader;
|
1150
|
+
exports.PesquisaFetcher = PesquisaFetcher;
|
1151
|
+
exports.PreloadManager = PreloadManager;
|