@sankhyalabs/sankhyablocks 8.15.0-rc.2 → 8.15.0-rc.20
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-302bbbd4.js → ConfigStorage-8d4e9d53.js} +70 -7
- package/dist/cjs/{DataFetcher-ba94ed5b.js → DataFetcher-99f0f6ed.js} +5 -3
- package/dist/cjs/{SnkFormConfigManager-71c4768e.js → SnkFormConfigManager-33995e92.js} +21 -13
- package/dist/cjs/{SnkMessageBuilder-e7dcf408.js → SnkMessageBuilder-66aa2557.js} +6 -1
- package/dist/cjs/SnkMultiSelectionListDataSource-d15f7aac.js +140 -0
- package/dist/cjs/{auth-fetcher-c8467c07.js → auth-fetcher-bb8e9ae4.js} +1 -1
- package/dist/cjs/{form-config-fetcher-df043d3d.js → form-config-fetcher-d73f4449.js} +13 -1
- package/dist/cjs/index-f9e81701.js +2 -10
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{pesquisa-fetcher-e4a7c4c3.js → pesquisa-fetcher-bdbbe9ac.js} +277 -61
- 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} +520 -5
- package/dist/cjs/snk-application.cjs.entry.js +13 -8
- package/dist/cjs/snk-attach.cjs.entry.js +67 -47
- package/dist/cjs/snk-crud.cjs.entry.js +16 -10
- package/dist/cjs/snk-data-exporter.cjs.entry.js +10 -6
- package/dist/cjs/{snk-data-unit-82c08a8c.js → snk-data-unit-41c29713.js} +1 -1
- package/dist/cjs/snk-data-unit.cjs.entry.js +2 -2
- package/dist/cjs/snk-detail-view.cjs.entry.js +9 -10
- package/dist/cjs/snk-entity-list.cjs.entry.js +5 -3
- package/dist/cjs/snk-filter-bar.cjs.entry.js +36 -5
- package/dist/cjs/snk-filter-detail.cjs.entry.js +4 -1
- package/dist/cjs/snk-filter-item.cjs.entry.js +10 -6
- package/dist/cjs/snk-filter-modal-item.cjs.entry.js +3 -3
- 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 +37 -22
- package/dist/cjs/{snk-guides-viewer-d32c096f.js → snk-guides-viewer-a8dd24a3.js} +15 -9
- package/dist/cjs/snk-guides-viewer.cjs.entry.js +7 -8
- 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-simple-crud.cjs.entry.js +249 -23
- package/dist/cjs/snk-taskbar.cjs.entry.js +123 -15
- package/dist/cjs/{taskbar-elements-01b85b99.js → taskbar-elements-3ecd1278.js} +9 -9
- package/dist/collection/collection-manifest.json +6 -6
- package/dist/collection/components/snk-application/__mocks__/snk-application.js +7 -0
- package/dist/collection/components/snk-application/snk-application.js +51 -11
- package/dist/collection/components/snk-attach/snk-attach.js +39 -24
- package/dist/collection/components/snk-attach/structure/builder/attach-crud-config.builder.js +1 -1
- package/dist/collection/components/snk-attach/structure/fetcher/factory/attach-fetcher-data-unit.factory.js +29 -22
- 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 +27 -3
- package/dist/collection/components/snk-data-exporter/snk-data-exporter.js +7 -3
- package/dist/collection/components/snk-entity-list/snk-entity-list.js +5 -3
- 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-detail.js +22 -1
- package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.js +28 -6
- package/dist/collection/components/snk-filter-bar/snk-filter-bar.css +24 -1
- package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +116 -2
- 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 +100 -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-simple-crud/regular-buttons.js +3 -0
- package/dist/collection/components/snk-simple-crud/snk-simple-crud.css +10 -2
- package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +414 -18
- package/dist/collection/components/snk-taskbar/elements/taskbar-actions-button/taskbar-actions-button.js +1 -1
- 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 +166 -14
- package/dist/collection/lib/configs/ConfigStorage.js +63 -3
- package/dist/collection/lib/dataUnit/InMemoryLoader.js +9 -40
- package/dist/collection/lib/dataUnit/dataUnitInMemoryUtils.js +33 -0
- package/dist/collection/lib/http/data-fetcher/DataFetcher.js +5 -3
- package/dist/collection/lib/http/data-fetcher/fetchers/form-config-fetcher.js +12 -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 +4 -11
- package/dist/collection/lib/message/resources/snk-data-exporter.msg.js +2 -1
- package/dist/collection/lib/message/resources/snk-simple-crud.msg.js +4 -0
- package/dist/collection/lib/utils/CrudUtils.js +13 -1
- package/dist/components/ConfigStorage.js +68 -5
- package/dist/components/DataFetcher.js +5 -3
- package/dist/components/SnkFormConfigManager.js +19 -11
- package/dist/components/SnkMessageBuilder.js +6 -1
- package/dist/components/dataunit-fetcher.js +45 -50
- package/dist/components/field-search.js +93 -3
- package/dist/components/form-config-fetcher.js +12 -0
- package/dist/components/index.d.ts +6 -6
- package/dist/components/snk-application2.js +9 -1
- package/dist/components/snk-attach2.js +115 -52
- package/dist/components/snk-crud.js +15 -3
- package/dist/components/snk-data-exporter2.js +7 -3
- package/dist/components/snk-detail-view2.js +40 -7
- package/dist/components/snk-entity-list.js +5 -3
- package/dist/components/snk-filter-bar2.js +38 -3
- package/dist/components/snk-filter-detail2.js +5 -1
- package/dist/components/snk-filter-item2.js +11 -6
- 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 +38 -17
- package/dist/components/snk-personalized-filter-editor.js +3 -1
- package/dist/components/snk-simple-crud2.js +310 -30
- package/dist/components/snk-taskbar2.js +139 -25
- package/dist/components/taskbar-actions-button2.js +1 -1
- package/dist/esm/{ConfigStorage-4151acc8.js → ConfigStorage-6e241cd7.js} +70 -7
- package/dist/esm/{DataFetcher-aa159c5a.js → DataFetcher-a650ae58.js} +5 -3
- package/dist/esm/{SnkFormConfigManager-5c7d3771.js → SnkFormConfigManager-7a4e678f.js} +21 -13
- package/dist/esm/{SnkMessageBuilder-0fb796b9.js → SnkMessageBuilder-0a4becdd.js} +6 -1
- package/dist/esm/SnkMultiSelectionListDataSource-7084f3b3.js +133 -0
- package/dist/esm/{auth-fetcher-c05dc474.js → auth-fetcher-8ec448b0.js} +1 -1
- package/dist/esm/{form-config-fetcher-36219cd3.js → form-config-fetcher-765b8498.js} +13 -1
- package/dist/esm/index-a7d3d3f1.js +2 -10
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{pesquisa-fetcher-fa0c2540.js → pesquisa-fetcher-96d2f351.js} +266 -54
- package/dist/esm/sankhyablocks.js +1 -1
- package/dist/esm/{snk-actions-button_2.entry.js → snk-actions-button_4.entry.js} +519 -6
- package/dist/esm/snk-application.entry.js +13 -8
- package/dist/esm/snk-attach.entry.js +66 -46
- package/dist/esm/snk-crud.entry.js +16 -10
- package/dist/esm/snk-data-exporter.entry.js +10 -6
- package/dist/esm/{snk-data-unit-5d201fb3.js → snk-data-unit-de1d140d.js} +1 -1
- package/dist/esm/snk-data-unit.entry.js +2 -2
- package/dist/esm/snk-detail-view.entry.js +9 -10
- package/dist/esm/snk-entity-list.entry.js +5 -3
- package/dist/esm/snk-filter-bar.entry.js +36 -5
- package/dist/esm/snk-filter-detail.entry.js +4 -1
- package/dist/esm/snk-filter-item.entry.js +10 -6
- package/dist/esm/snk-filter-modal-item.entry.js +3 -3
- 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 +38 -23
- package/dist/esm/{snk-guides-viewer-f49613c6.js → snk-guides-viewer-131e9660.js} +15 -9
- package/dist/esm/snk-guides-viewer.entry.js +7 -8
- 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-simple-crud.entry.js +250 -24
- package/dist/esm/snk-taskbar.entry.js +124 -16
- package/dist/esm/{taskbar-elements-d4d0b424.js → taskbar-elements-2473c8ac.js} +9 -9
- package/dist/sankhyablocks/p-004c356e.js +26 -0
- package/dist/sankhyablocks/p-0624f62d.js +56 -0
- package/dist/sankhyablocks/p-075bba4c.entry.js +1 -0
- package/dist/sankhyablocks/p-07a61550.entry.js +1 -0
- package/dist/sankhyablocks/p-103c5956.entry.js +1 -0
- package/dist/sankhyablocks/p-1048bd26.entry.js +1 -0
- package/dist/sankhyablocks/{p-e6380c60.js → p-125bb902.js} +1 -1
- package/dist/sankhyablocks/p-13ae1a89.entry.js +1 -0
- package/dist/sankhyablocks/p-19a56978.entry.js +1 -0
- package/dist/sankhyablocks/{p-e0fd9555.entry.js → p-24ed6ad6.entry.js} +1 -1
- package/dist/sankhyablocks/p-32556aa6.js +1 -0
- package/dist/sankhyablocks/p-33718dfc.entry.js +1 -0
- package/dist/sankhyablocks/p-34a7f2ab.js +65 -0
- package/dist/sankhyablocks/{p-f3d1c48e.js → p-52c8e589.js} +1 -1
- package/dist/sankhyablocks/p-54a5d52a.entry.js +1 -0
- package/dist/sankhyablocks/p-5833cff9.js +1 -0
- package/dist/sankhyablocks/p-5a2e016a.entry.js +1 -0
- package/dist/sankhyablocks/p-619c5f6f.entry.js +11 -0
- package/dist/sankhyablocks/p-6f560924.entry.js +1 -0
- package/dist/sankhyablocks/p-8967fa78.js +1 -0
- package/dist/sankhyablocks/p-a87149e4.entry.js +1 -0
- package/dist/sankhyablocks/{p-7f3c7b09.entry.js → p-ac77949b.entry.js} +1 -1
- package/dist/sankhyablocks/p-ae4fc9a9.js +1 -0
- package/dist/sankhyablocks/p-b10b9934.entry.js +1 -0
- package/dist/sankhyablocks/p-b11aa1e0.entry.js +1 -0
- package/dist/sankhyablocks/{p-9695f78b.js → p-be75153c.js} +1 -1
- package/dist/sankhyablocks/p-bf39bdb8.entry.js +1 -0
- package/dist/sankhyablocks/p-e8763234.entry.js +1 -0
- package/dist/sankhyablocks/p-efeca7ba.js +1 -0
- package/dist/sankhyablocks/p-f7d0fab9.entry.js +1 -0
- package/dist/sankhyablocks/p-f7d9d148.entry.js +1 -0
- package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
- package/dist/types/components/snk-actions-button/subcomponents/snk-actions-form.d.ts +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 +8 -0
- package/dist/types/components/snk-attach/snk-attach.d.ts +2 -1
- package/dist/types/components/snk-attach/structure/builder/attach-crud-config.builder.d.ts +10 -1
- package/dist/types/components/snk-attach/structure/fetcher/factory/attach-fetcher-data-unit.factory.d.ts +5 -4
- 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-detail.d.ts +4 -0
- package/dist/types/components/snk-filter-bar/filter-item/snk-filter-item.d.ts +6 -2
- package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +20 -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 +19 -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 +75 -3
- package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +34 -1
- package/dist/types/components.d.ts +226 -12
- package/dist/types/lib/configs/ConfigStorage.d.ts +21 -1
- package/dist/types/lib/dataUnit/InMemoryLoader.d.ts +0 -2
- package/dist/types/lib/dataUnit/dataUnitInMemoryUtils.d.ts +4 -0
- package/dist/types/lib/http/data-fetcher/fetchers/form-config-fetcher.d.ts +2 -0
- package/dist/types/lib/http/data-fetcher/fetchers/personalized-filter-fetcher.d.ts +2 -1
- package/dist/types/lib/utils/CrudUtils.d.ts +3 -0
- package/package.json +9 -2
- package/dist/cjs/PreloadManager-84466da6.js +0 -224
- package/dist/cjs/SnkMultiSelectionListDataSource-ba5838c2.js +0 -49
- 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/snk-grid-config.entry.js +0 -479
- package/dist/esm/snk-select-box.entry.js +0 -21
- package/dist/sankhyablocks/p-02e3a45b.entry.js +0 -1
- package/dist/sankhyablocks/p-05243555.js +0 -1
- package/dist/sankhyablocks/p-094c30cb.js +0 -1
- package/dist/sankhyablocks/p-0d7863ed.js +0 -26
- package/dist/sankhyablocks/p-0ec5b2e5.js +0 -1
- package/dist/sankhyablocks/p-1d75d9f9.entry.js +0 -1
- package/dist/sankhyablocks/p-2582537c.entry.js +0 -1
- package/dist/sankhyablocks/p-282789a6.entry.js +0 -1
- package/dist/sankhyablocks/p-374d03f6.js +0 -1
- package/dist/sankhyablocks/p-3b0e4e08.js +0 -65
- package/dist/sankhyablocks/p-40915359.entry.js +0 -1
- package/dist/sankhyablocks/p-573a07c5.js +0 -1
- package/dist/sankhyablocks/p-69efa80d.entry.js +0 -1
- package/dist/sankhyablocks/p-761ed32f.entry.js +0 -1
- package/dist/sankhyablocks/p-86801b08.entry.js +0 -1
- package/dist/sankhyablocks/p-96ef14f9.entry.js +0 -1
- package/dist/sankhyablocks/p-98674137.entry.js +0 -1
- package/dist/sankhyablocks/p-9b5944a4.entry.js +0 -1
- package/dist/sankhyablocks/p-9bdbc7d8.entry.js +0 -1
- package/dist/sankhyablocks/p-a52b9254.entry.js +0 -11
- package/dist/sankhyablocks/p-aa95fb2c.js +0 -56
- package/dist/sankhyablocks/p-ac384baf.entry.js +0 -1
- package/dist/sankhyablocks/p-b05ab13d.entry.js +0 -1
- package/dist/sankhyablocks/p-c22c1d8e.js +0 -1
- package/dist/sankhyablocks/p-c4874327.entry.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-d4f9ee17.entry.js +0 -1
- package/dist/sankhyablocks/p-d6317851.entry.js +0 -1
- /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/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
@@ -1,4 +1,4 @@
|
|
1
|
-
import { ApplicationContext, ElementIDUtils, StringUtils } from '@sankhyalabs/core';
|
1
|
+
import { ApplicationContext, ElementIDUtils, OverflowDirection, OverflowWatcher, StringUtils, OVERFLOWED_CLASS_NAME } from '@sankhyalabs/core';
|
2
2
|
import { h, Host } from '@stencil/core';
|
3
3
|
import { AuthorizationConfig } from '../snk-configurator/AuthorizationConfig';
|
4
4
|
import { AuthorizationElements, buildCustomButton, buildElem, TaskbarElement, VisibleWhenForbidden, } from './elements/taskbar-elements';
|
@@ -6,6 +6,9 @@ import { PresentationMode } from '../../lib/@types';
|
|
6
6
|
export class SnkTaskbar {
|
7
7
|
constructor() {
|
8
8
|
this.TASKBAR_ITEM_ID_PREFIX = 'TASKBAR_ITEM_';
|
9
|
+
this.TASKBAR_CUSTOM_ELEMENTS_CONTAINER_CLASS_NAME = 'taskbar-custom-elements-container';
|
10
|
+
this.ACTIONS_BUTTON_TAG = 'TASKBAR-ACTIONS-BUTTON';
|
11
|
+
this.NOT_OVERFLOW_ELEMENTS = ["moreOptions", "dataExporter_snkDataExporter", "actionsButton_snkActionsButton"];
|
9
12
|
this._titleKeyByElement = {
|
10
13
|
[TaskbarElement.UPDATE]: "snkTaskbar.titleUpdate",
|
11
14
|
[TaskbarElement.PREVIOUS]: "snkTaskbar.titlePrevious",
|
@@ -23,11 +26,17 @@ export class SnkTaskbar {
|
|
23
26
|
[TaskbarElement.ATTACH]: "snkTaskbar.titleAttach",
|
24
27
|
};
|
25
28
|
this._permissions = undefined;
|
29
|
+
this._overFlowedElements = [];
|
26
30
|
this._customElements = undefined;
|
27
31
|
this._customElementsId = undefined;
|
28
32
|
this._slotContainer = undefined;
|
33
|
+
this._hiddenActionsList = [];
|
34
|
+
this._lastWidth = undefined;
|
35
|
+
this._hasToUpdateOverFlow = false;
|
36
|
+
this.alignRigth = false;
|
29
37
|
this.customSlotId = "TASKBAR_CUSTOM_ELEMENTS";
|
30
38
|
this.customContainerId = undefined;
|
39
|
+
this.overflowStrategy = 'hiddenItems';
|
31
40
|
this.configName = undefined;
|
32
41
|
this.resourceID = undefined;
|
33
42
|
this.buttons = undefined;
|
@@ -41,6 +50,18 @@ export class SnkTaskbar {
|
|
41
50
|
}
|
42
51
|
observeButtons() {
|
43
52
|
this._definitions = undefined;
|
53
|
+
requestAnimationFrame(() => {
|
54
|
+
requestAnimationFrame(() => { var _a; return (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.forceUpdate(); });
|
55
|
+
});
|
56
|
+
}
|
57
|
+
observeDisabledButtons() {
|
58
|
+
var _a;
|
59
|
+
(_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.forceUpdate();
|
60
|
+
}
|
61
|
+
observeLastWidth(newValue, oldValue) {
|
62
|
+
if (oldValue === 0 && newValue !== 0) {
|
63
|
+
this._hasToUpdateOverFlow = true;
|
64
|
+
}
|
44
65
|
}
|
45
66
|
// Internal methods
|
46
67
|
elementsFromString(strButtons) {
|
@@ -136,12 +157,19 @@ export class SnkTaskbar {
|
|
136
157
|
}
|
137
158
|
const taskbarElement = TaskbarElement[def.toString()];
|
138
159
|
if (taskbarElement) {
|
139
|
-
return buildElem(def, className, this.getIdElemBtnNative(def), elem => this.getTitle(elem), elem => this.elementClick(elem), elem => this.isEnabled(elem), this.
|
160
|
+
return buildElem(def, className, this.getIdElemBtnNative(def), elem => this.getTitle(elem), elem => this.elementClick(elem), elem => this.isEnabled(elem), this.buildDynamicActionsList(), this.configName, this.presentationMode);
|
140
161
|
}
|
141
162
|
else {
|
142
163
|
return buildCustomButton(def, className, this.getIdElemBtnCustom(def), elem => this.elementClick(elem), elem => this.isEnabled(elem));
|
143
164
|
}
|
144
165
|
}
|
166
|
+
buildDynamicActionsList() {
|
167
|
+
var _a;
|
168
|
+
if (this._hiddenActionsList.length) {
|
169
|
+
return [...((_a = this.actionsList) !== null && _a !== void 0 ? _a : []), { type: 'divider', label: "", value: "" }, ...this._hiddenActionsList];
|
170
|
+
}
|
171
|
+
return this.actionsList;
|
172
|
+
}
|
145
173
|
getIdElemBtnNative(taskbarElem) {
|
146
174
|
return StringUtils.toCamelCase(taskbarElem);
|
147
175
|
}
|
@@ -182,11 +210,13 @@ export class SnkTaskbar {
|
|
182
210
|
});
|
183
211
|
}
|
184
212
|
addCustomElementContainer(elem) {
|
213
|
+
var _a;
|
185
214
|
const elementId = `${this.TASKBAR_ITEM_ID_PREFIX}${elem}`;
|
186
215
|
if (!this._customElementsId.includes(elementId)) {
|
187
216
|
this._customElementsId.push(elementId);
|
217
|
+
(_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.addNotOverFlowElement(elementId);
|
188
218
|
}
|
189
|
-
return h("span", { key: elementId, id: elementId });
|
219
|
+
return h("span", { class: "ez-padding-left--medium", key: elementId, id: elementId });
|
190
220
|
}
|
191
221
|
getCustomElements() {
|
192
222
|
var _a, _b;
|
@@ -216,20 +246,95 @@ export class SnkTaskbar {
|
|
216
246
|
this.getCustomElements();
|
217
247
|
}
|
218
248
|
componentWillRender() {
|
249
|
+
this.handleDefinitions();
|
250
|
+
this.validatePresentationMode();
|
251
|
+
this.updateOverFlowIfNeeded();
|
252
|
+
}
|
253
|
+
handleDefinitions() {
|
219
254
|
if (this._definitions == undefined && this._permissions) {
|
220
255
|
this._definitions = this.elementsFromString(this.buttons);
|
221
256
|
}
|
222
|
-
|
257
|
+
}
|
258
|
+
updateOverFlowIfNeeded() {
|
259
|
+
if (this._hasToUpdateOverFlow) {
|
260
|
+
requestAnimationFrame(() => { var _a; return (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.forceUpdate(); });
|
261
|
+
this._hasToUpdateOverFlow = false;
|
262
|
+
}
|
263
|
+
}
|
264
|
+
handleOverFlow(overFlowingElements) {
|
265
|
+
const elementsToHandle = overFlowingElements.filter(element => !this.hasToIgnoreOverFlow(element));
|
266
|
+
this.resetOverFlowedElements();
|
267
|
+
this.doOverFlowElements(elementsToHandle);
|
268
|
+
}
|
269
|
+
resetOverFlowedElements() {
|
270
|
+
this._overFlowedElements.forEach(element => {
|
271
|
+
element.classList.remove(OVERFLOWED_CLASS_NAME);
|
272
|
+
});
|
273
|
+
this._hiddenActionsList = [];
|
274
|
+
this._overFlowedElements = [];
|
275
|
+
}
|
276
|
+
doOverFlowElements(overFlowedElements) {
|
277
|
+
overFlowedElements.forEach(element => {
|
278
|
+
element.classList.add(OVERFLOWED_CLASS_NAME);
|
279
|
+
this._overFlowedElements.push(element);
|
280
|
+
this.addItemToActionList(element);
|
281
|
+
});
|
282
|
+
}
|
283
|
+
addItemToActionList(element) {
|
284
|
+
const taskbarElement = this.getTaskbarElementName(element);
|
285
|
+
if (taskbarElement && this.isEnabled(taskbarElement) && this.isAllowed(taskbarElement)) {
|
286
|
+
const optionItem = {
|
287
|
+
value: taskbarElement,
|
288
|
+
label: this.getTaskbarElementLabel(element),
|
289
|
+
iconName: this.getTaskbarElementIcon(element)
|
290
|
+
};
|
291
|
+
this._hiddenActionsList.push(optionItem);
|
292
|
+
}
|
293
|
+
}
|
294
|
+
getTaskbarElementName(element) {
|
295
|
+
var _a;
|
296
|
+
return (_a = element.getAttribute('data-taskbar-element')) !== null && _a !== void 0 ? _a : "";
|
297
|
+
}
|
298
|
+
getTaskbarElementIcon(element) {
|
299
|
+
var _a;
|
300
|
+
return (_a = element.getAttribute('data-taskbar-icon')) !== null && _a !== void 0 ? _a : "";
|
301
|
+
}
|
302
|
+
getTaskbarElementLabel(element) {
|
303
|
+
var _a;
|
304
|
+
return (_a = element.getAttribute('data-taskbar-label')) !== null && _a !== void 0 ? _a : "";
|
305
|
+
}
|
306
|
+
hasToIgnoreOverFlow(element) {
|
307
|
+
return element.classList.contains(this.TASKBAR_CUSTOM_ELEMENTS_CONTAINER_CLASS_NAME);
|
308
|
+
}
|
309
|
+
handleOverFlowStrategy() {
|
310
|
+
if (this.overflowStrategy === 'hiddenItems') {
|
311
|
+
this._overFlowWatcher = new OverflowWatcher(this.buildOverFlowWatcherParams());
|
312
|
+
}
|
313
|
+
}
|
314
|
+
buildOverFlowWatcherParams() {
|
315
|
+
return {
|
316
|
+
element: this._element,
|
317
|
+
callback: this.handleOverFlow.bind(this),
|
318
|
+
overFlowDirection: OverflowDirection.HORIZONTAL,
|
319
|
+
notOverFlow: this.NOT_OVERFLOW_ELEMENTS
|
320
|
+
};
|
223
321
|
}
|
224
322
|
componentDidLoad() {
|
225
323
|
const dataInfo = { dataUnit: this.dataUnit };
|
226
324
|
ElementIDUtils.addIDInfo(this._element, null, dataInfo);
|
325
|
+
this.handleOverFlowStrategy();
|
227
326
|
}
|
228
327
|
componentDidRender() {
|
229
328
|
this.appendCustomElementsInTaskbar();
|
329
|
+
this.updateLastWidth();
|
330
|
+
}
|
331
|
+
updateLastWidth() {
|
332
|
+
this._lastWidth = this._element.getBoundingClientRect().width;
|
230
333
|
}
|
231
334
|
disconnectedCallback() {
|
335
|
+
var _a;
|
232
336
|
this.unlinkAllCustomElements();
|
337
|
+
(_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.destroy();
|
233
338
|
}
|
234
339
|
unlinkAllCustomElements() {
|
235
340
|
var _a;
|
@@ -247,14 +352,9 @@ export class SnkTaskbar {
|
|
247
352
|
return undefined;
|
248
353
|
}
|
249
354
|
let index = 0;
|
250
|
-
return (h(Host,
|
251
|
-
var _a;
|
252
|
-
|
253
|
-
index = 0;
|
254
|
-
}
|
255
|
-
else {
|
256
|
-
index++;
|
257
|
-
}
|
355
|
+
return (h(Host, { class: this.getHostClasses() }, this.removeEmpty(this._definitions.map((elem) => {
|
356
|
+
var _a, _b;
|
357
|
+
index++;
|
258
358
|
if (TaskbarElement[elem]) {
|
259
359
|
return this.getElement(index, TaskbarElement[elem]);
|
260
360
|
}
|
@@ -264,8 +364,14 @@ export class SnkTaskbar {
|
|
264
364
|
if (this._customElements.has(elem)) {
|
265
365
|
return this.addCustomElementContainer(elem);
|
266
366
|
}
|
367
|
+
(_b = this._overFlowWatcher) === null || _b === void 0 ? void 0 : _b.addNotOverFlowElement(elem);
|
267
368
|
return h("slot", { name: elem });
|
268
|
-
})), h("div", { class:
|
369
|
+
})), h("div", { class: this.TASKBAR_CUSTOM_ELEMENTS_CONTAINER_CLASS_NAME }, h("slot", { name: this.customSlotId }))));
|
370
|
+
}
|
371
|
+
getHostClasses() {
|
372
|
+
if (this.overflowStrategy !== 'hiddenItems')
|
373
|
+
return 'no-wrap';
|
374
|
+
return `full-width ${this.alignRigth ? 'align-right' : ""}`;
|
269
375
|
}
|
270
376
|
static get is() { return "snk-taskbar"; }
|
271
377
|
static get encapsulation() { return "scoped"; }
|
@@ -281,6 +387,24 @@ export class SnkTaskbar {
|
|
281
387
|
}
|
282
388
|
static get properties() {
|
283
389
|
return {
|
390
|
+
"alignRigth": {
|
391
|
+
"type": "boolean",
|
392
|
+
"mutable": false,
|
393
|
+
"complexType": {
|
394
|
+
"original": "boolean",
|
395
|
+
"resolved": "boolean",
|
396
|
+
"references": {}
|
397
|
+
},
|
398
|
+
"required": false,
|
399
|
+
"optional": false,
|
400
|
+
"docs": {
|
401
|
+
"tags": [],
|
402
|
+
"text": "Usado para determinar O alinhamento dos items na taskbar."
|
403
|
+
},
|
404
|
+
"attribute": "align-rigth",
|
405
|
+
"reflect": false,
|
406
|
+
"defaultValue": "false"
|
407
|
+
},
|
284
408
|
"customSlotId": {
|
285
409
|
"type": "string",
|
286
410
|
"mutable": false,
|
@@ -316,6 +440,24 @@ export class SnkTaskbar {
|
|
316
440
|
"attribute": "custom-container-id",
|
317
441
|
"reflect": false
|
318
442
|
},
|
443
|
+
"overflowStrategy": {
|
444
|
+
"type": "string",
|
445
|
+
"mutable": false,
|
446
|
+
"complexType": {
|
447
|
+
"original": "'hiddenItems' | 'none'",
|
448
|
+
"resolved": "\"hiddenItems\" | \"none\"",
|
449
|
+
"references": {}
|
450
|
+
},
|
451
|
+
"required": false,
|
452
|
+
"optional": false,
|
453
|
+
"docs": {
|
454
|
+
"tags": [],
|
455
|
+
"text": "Define como ser\u00E1 o comportamento da taskbar quando ocorrer overflow"
|
456
|
+
},
|
457
|
+
"attribute": "overflow-strategy",
|
458
|
+
"reflect": false,
|
459
|
+
"defaultValue": "'hiddenItems'"
|
460
|
+
},
|
319
461
|
"configName": {
|
320
462
|
"type": "string",
|
321
463
|
"mutable": false,
|
@@ -515,9 +657,13 @@ export class SnkTaskbar {
|
|
515
657
|
static get states() {
|
516
658
|
return {
|
517
659
|
"_permissions": {},
|
660
|
+
"_overFlowedElements": {},
|
518
661
|
"_customElements": {},
|
519
662
|
"_customElementsId": {},
|
520
|
-
"_slotContainer": {}
|
663
|
+
"_slotContainer": {},
|
664
|
+
"_hiddenActionsList": {},
|
665
|
+
"_lastWidth": {},
|
666
|
+
"_hasToUpdateOverFlow": {}
|
521
667
|
};
|
522
668
|
}
|
523
669
|
static get events() {
|
@@ -543,6 +689,12 @@ export class SnkTaskbar {
|
|
543
689
|
return [{
|
544
690
|
"propName": "buttons",
|
545
691
|
"methodName": "observeButtons"
|
692
|
+
}, {
|
693
|
+
"propName": "disabledButtons",
|
694
|
+
"methodName": "observeDisabledButtons"
|
695
|
+
}, {
|
696
|
+
"propName": "_lastWidth",
|
697
|
+
"methodName": "observeLastWidth"
|
546
698
|
}];
|
547
699
|
}
|
548
700
|
}
|
@@ -2,18 +2,37 @@ import { FormConfigFetcher } from "../http/data-fetcher/fetchers/form-config-fet
|
|
2
2
|
import GridConfigFetcher from "../http/data-fetcher/fetchers/grid-config-fetcher";
|
3
3
|
import FilterBarConfigFetcher from "../http/data-fetcher/fetchers/filter-bar-config-fetcher";
|
4
4
|
import PersonalizedFilterFetcher from "../http/data-fetcher/fetchers/personalized-filter-fetcher";
|
5
|
-
var CONFIG_SOURCE;
|
5
|
+
export var CONFIG_SOURCE;
|
6
6
|
(function (CONFIG_SOURCE) {
|
7
7
|
CONFIG_SOURCE["form"] = "form";
|
8
8
|
CONFIG_SOURCE["grid"] = "grid";
|
9
9
|
CONFIG_SOURCE["filterBar"] = "filterBar";
|
10
10
|
})(CONFIG_SOURCE || (CONFIG_SOURCE = {}));
|
11
11
|
export class ConfigStorage {
|
12
|
-
static
|
12
|
+
static addFilterBarLegacyConfig(configName, legacyConfigName) {
|
13
|
+
this.validateConfigName(configName, legacyConfigName);
|
14
|
+
this.filterBarLegacyConfig.set(configName, legacyConfigName);
|
15
|
+
}
|
16
|
+
static addFormLegacyConfig(configName, legacyConfigName) {
|
17
|
+
this.validateConfigName(configName, legacyConfigName);
|
18
|
+
this.formLegacyConfig.set(configName, legacyConfigName);
|
19
|
+
}
|
20
|
+
static addGridLegacyConfig(configName, legacyConfigName) {
|
21
|
+
this.validateConfigName(configName, legacyConfigName);
|
22
|
+
this.gridLegacyConfig.set(configName, legacyConfigName);
|
23
|
+
}
|
24
|
+
static preload(resourceID, configName, legacyConfigs) {
|
25
|
+
if (configName && (legacyConfigs === null || legacyConfigs === void 0 ? void 0 : legacyConfigs.gridLegacyConfig)) {
|
26
|
+
ConfigStorage.addGridLegacyConfig(configName, legacyConfigs.gridLegacyConfig);
|
27
|
+
}
|
28
|
+
if (configName && (legacyConfigs === null || legacyConfigs === void 0 ? void 0 : legacyConfigs.formLegacyConfig)) {
|
29
|
+
ConfigStorage.addFormLegacyConfig(configName, legacyConfigs.formLegacyConfig);
|
30
|
+
}
|
13
31
|
ConfigStorage.loadFormConfig(configName, resourceID);
|
14
32
|
ConfigStorage.loadGridConfig(configName, resourceID);
|
15
33
|
}
|
16
34
|
static async loadFilterBarConfig(name, resourceID, urlParams) {
|
35
|
+
urlParams = this.handleLegacyConfig(name, CONFIG_SOURCE.filterBar, urlParams);
|
17
36
|
const cacheID = ConfigStorage.buildCacheID(name, CONFIG_SOURCE.filterBar, resourceID);
|
18
37
|
if (!ConfigStorage.configById.has(cacheID)) {
|
19
38
|
ConfigStorage.configById.set(cacheID, ConfigStorage.filterBarConfigFetcher.getConfig(resourceID, name, urlParams));
|
@@ -21,6 +40,7 @@ export class ConfigStorage {
|
|
21
40
|
return ConfigStorage.configById.get(cacheID);
|
22
41
|
}
|
23
42
|
static async loadFormConfig(name, resourceID) {
|
43
|
+
name = this.handleLegacyConfigAsString(name, CONFIG_SOURCE.form);
|
24
44
|
const cacheID = ConfigStorage.buildCacheID(name, CONFIG_SOURCE.form, resourceID);
|
25
45
|
if (!ConfigStorage.configById.has(cacheID)) {
|
26
46
|
ConfigStorage.configById.set(cacheID, ConfigStorage.formConfigFetcher.loadFormConfig(name, resourceID));
|
@@ -28,6 +48,7 @@ export class ConfigStorage {
|
|
28
48
|
return ConfigStorage.configById.get(cacheID);
|
29
49
|
}
|
30
50
|
static async loadGridConfig(name, resourceID) {
|
51
|
+
name = this.handleLegacyConfigAsString(name, CONFIG_SOURCE.grid);
|
31
52
|
const cacheID = ConfigStorage.buildCacheID(name, CONFIG_SOURCE.grid, resourceID);
|
32
53
|
if (!ConfigStorage.configById.has(cacheID)) {
|
33
54
|
ConfigStorage.configById.set(cacheID, ConfigStorage.gridConfigFetcher.getConfig(name, resourceID));
|
@@ -39,6 +60,7 @@ export class ConfigStorage {
|
|
39
60
|
return this.filterBarConfigFetcher.saveConfig(config, resourceID, name);
|
40
61
|
}
|
41
62
|
static async saveFormConfig(config, name, resourceID) {
|
63
|
+
name = this.handleLegacyConfigAsString(name, CONFIG_SOURCE.form);
|
42
64
|
await this.deleteFormConfigCache(name, resourceID);
|
43
65
|
return this.formConfigFetcher.saveConfig(config, name, resourceID);
|
44
66
|
}
|
@@ -53,7 +75,8 @@ export class ConfigStorage {
|
|
53
75
|
return this.gridConfigFetcher.saveConfig(config, name, resourceID);
|
54
76
|
}
|
55
77
|
static async loadPersonalizedFilter(filterId, resourceID, configName) {
|
56
|
-
|
78
|
+
const legacyConfigName = this.filterBarLegacyConfig.get(configName);
|
79
|
+
return this.personalizedFilterFetcher.loadPersonalizedFilter(resourceID, filterId, configName, legacyConfigName);
|
57
80
|
}
|
58
81
|
static async savePersonalizedFilter(personalizedFilter, resourceID, configName) {
|
59
82
|
//Ao criar ou alterar um filtro personalizado,
|
@@ -76,6 +99,38 @@ export class ConfigStorage {
|
|
76
99
|
static async deleteFilterBarConfigCache(name, resourceID) {
|
77
100
|
await this.deleteConfigCache(name, resourceID, CONFIG_SOURCE.filterBar);
|
78
101
|
}
|
102
|
+
static validateConfigName(configName, legacyConfigName) {
|
103
|
+
if (!configName)
|
104
|
+
throw Error(this.CONFIG_NAME_ERROR_MESSAGE);
|
105
|
+
if (!legacyConfigName)
|
106
|
+
throw Error(this.LEGACY_CONFIG_NAME_ERROR_MESSAGE);
|
107
|
+
}
|
108
|
+
static handleLegacyConfig(configName, configSource, urlParams) {
|
109
|
+
let legacyConfigName;
|
110
|
+
switch (configSource) {
|
111
|
+
case CONFIG_SOURCE.filterBar:
|
112
|
+
legacyConfigName = this.filterBarLegacyConfig.get(configName);
|
113
|
+
break;
|
114
|
+
case CONFIG_SOURCE.grid:
|
115
|
+
legacyConfigName = this.gridLegacyConfig.get(configName);
|
116
|
+
break;
|
117
|
+
case CONFIG_SOURCE.form:
|
118
|
+
legacyConfigName = this.formLegacyConfig.get(configName);
|
119
|
+
}
|
120
|
+
const params = urlParams ? Object.assign({}, urlParams) : {};
|
121
|
+
if (legacyConfigName) {
|
122
|
+
params['legacyResourceID'] = legacyConfigName;
|
123
|
+
}
|
124
|
+
return params;
|
125
|
+
}
|
126
|
+
static handleLegacyConfigAsString(name, source) {
|
127
|
+
const params = this.handleLegacyConfig(name, source);
|
128
|
+
const legacyResourceID = params['legacyResourceID'];
|
129
|
+
if (legacyResourceID) {
|
130
|
+
name = name + `?legacyResourceID=${legacyResourceID}`;
|
131
|
+
}
|
132
|
+
return name;
|
133
|
+
}
|
79
134
|
static async deleteConfigCache(name, resourceID, source) {
|
80
135
|
const cacheID = ConfigStorage.buildCacheID(name, source, resourceID);
|
81
136
|
this.configById.delete(cacheID);
|
@@ -87,6 +142,11 @@ export class ConfigStorage {
|
|
87
142
|
return `req_${source}_${name}_${resourceID}`;
|
88
143
|
}
|
89
144
|
}
|
145
|
+
ConfigStorage.CONFIG_NAME_ERROR_MESSAGE = "ConfigName precisa ser informado.";
|
146
|
+
ConfigStorage.LEGACY_CONFIG_NAME_ERROR_MESSAGE = "LegacyConfigName precisa ser informado.";
|
147
|
+
ConfigStorage.filterBarLegacyConfig = new Map();
|
148
|
+
ConfigStorage.formLegacyConfig = new Map();
|
149
|
+
ConfigStorage.gridLegacyConfig = new Map();
|
90
150
|
ConfigStorage.configById = new Map();
|
91
151
|
ConfigStorage.filterBarConfigFetcher = new FilterBarConfigFetcher();
|
92
152
|
ConfigStorage.formConfigFetcher = new FormConfigFetcher();
|
@@ -1,6 +1,5 @@
|
|
1
1
|
import { ChangeOperation, DataType, DataUnit, DateUtils, StringUtils, } from '@sankhyalabs/core';
|
2
|
-
import {
|
3
|
-
import PreloadManager from '../http/data-fetcher/fetchers/data-unit/cache/PreloadManager';
|
2
|
+
import { applyFilter, applySorting, buildPaginationInfo } from './dataUnitInMemoryUtils';
|
4
3
|
export default class InMemoryLoader {
|
5
4
|
constructor(metadata, records) {
|
6
5
|
this.metadata = metadata;
|
@@ -13,9 +12,13 @@ export default class InMemoryLoader {
|
|
13
12
|
this.dataUnit.loadMetadata().then(() => this.dataUnit.loadData());
|
14
13
|
}
|
15
14
|
getRecordsToLoad() {
|
16
|
-
if (this._initialRecords == undefined
|
15
|
+
if (this._initialRecords == undefined && this.dataUnit.records.length > 0) {
|
17
16
|
this._initialRecords = this.dataUnit.records;
|
18
17
|
}
|
18
|
+
const addedRecords = this.dataUnit.getAddedRecords();
|
19
|
+
if (addedRecords) {
|
20
|
+
return [...this._initialRecords, ...addedRecords];
|
21
|
+
}
|
19
22
|
return this._initialRecords;
|
20
23
|
}
|
21
24
|
get dataUnit() {
|
@@ -74,30 +77,9 @@ export default class InMemoryLoader {
|
|
74
77
|
return StringUtils.generateUUID();
|
75
78
|
}
|
76
79
|
inMemoryLoader(dataUnit, request, recordsIn) {
|
77
|
-
let records =
|
78
|
-
records =
|
79
|
-
return Promise.resolve({ records, paginationInfo: buildPaginationInfo(request,
|
80
|
-
}
|
81
|
-
applyFilter(records, dataUnit, filters) {
|
82
|
-
const columnFilters = ColumnFilterManager.getColumnFilters(filters, "");
|
83
|
-
if (columnFilters == undefined || columnFilters.size == 0) {
|
84
|
-
return records;
|
85
|
-
}
|
86
|
-
const filterFunciton = ColumnFilterManager.getFilterFunction(dataUnit, Array.from(columnFilters.values()));
|
87
|
-
if (filterFunciton == undefined) {
|
88
|
-
return records;
|
89
|
-
}
|
90
|
-
return records.filter(filterFunciton);
|
91
|
-
}
|
92
|
-
applySorting(records, dataUnit, sorting) {
|
93
|
-
if (sorting == undefined || sorting.length == 0) {
|
94
|
-
return records;
|
95
|
-
}
|
96
|
-
const sortingFunction = PreloadManager.getSortingFunction(dataUnit, sorting);
|
97
|
-
if (sortingFunction == undefined) {
|
98
|
-
return records;
|
99
|
-
}
|
100
|
-
return records.sort(sortingFunction);
|
80
|
+
let records = applyFilter(recordsIn, dataUnit, request.filters);
|
81
|
+
records = applySorting(records, dataUnit, request.sort);
|
82
|
+
return Promise.resolve({ records, paginationInfo: buildPaginationInfo(records, request.offset, request.limit) });
|
101
83
|
}
|
102
84
|
metadaLoader() {
|
103
85
|
return Promise.resolve(this._metadata);
|
@@ -130,16 +112,3 @@ export default class InMemoryLoader {
|
|
130
112
|
}
|
131
113
|
}
|
132
114
|
InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME = "InMemoryDataUnit";
|
133
|
-
function buildPaginationInfo({ offset, limit }, records) {
|
134
|
-
if (offset === undefined || limit === undefined) {
|
135
|
-
return undefined;
|
136
|
-
}
|
137
|
-
const lastRecord = Math.min(offset + limit, records.length);
|
138
|
-
return {
|
139
|
-
currentPage: Math.ceil(offset / limit),
|
140
|
-
firstRecord: offset,
|
141
|
-
lastRecord: lastRecord,
|
142
|
-
total: records.length,
|
143
|
-
hasMore: !!(records.length - lastRecord),
|
144
|
-
};
|
145
|
-
}
|
@@ -0,0 +1,33 @@
|
|
1
|
+
import { ColumnFilterManager } from '@sankhyalabs/ezui/dist/collection/components/ez-grid/utils';
|
2
|
+
import PreloadManager from '../http/data-fetcher/fetchers/data-unit/cache/PreloadManager';
|
3
|
+
export function applyFilter(records, dataUnit, filters) {
|
4
|
+
const columnFilters = ColumnFilterManager.getColumnFilters(filters, "");
|
5
|
+
if (!(columnFilters === null || columnFilters === void 0 ? void 0 : columnFilters.size)) {
|
6
|
+
return records;
|
7
|
+
}
|
8
|
+
const filterFunction = ColumnFilterManager.getFilterFunction(dataUnit, Array.from(columnFilters.values()));
|
9
|
+
if (filterFunction == undefined) {
|
10
|
+
return records;
|
11
|
+
}
|
12
|
+
return records.filter(filterFunction);
|
13
|
+
}
|
14
|
+
export function applySorting(records, dataUnit, sorting) {
|
15
|
+
if (sorting == undefined || sorting.length == 0) {
|
16
|
+
return records;
|
17
|
+
}
|
18
|
+
const sortingFunction = PreloadManager.getSortingFunction(dataUnit, sorting);
|
19
|
+
if (sortingFunction == undefined) {
|
20
|
+
return records;
|
21
|
+
}
|
22
|
+
return records.sort(sortingFunction);
|
23
|
+
}
|
24
|
+
export function buildPaginationInfo(records, offset = 0, limit = 0) {
|
25
|
+
const lastRecord = Math.min(offset + limit, records === null || records === void 0 ? void 0 : records.length);
|
26
|
+
return {
|
27
|
+
currentPage: limit === 0 ? 0 : Math.ceil(offset / limit),
|
28
|
+
firstRecord: offset,
|
29
|
+
lastRecord: lastRecord,
|
30
|
+
total: records === null || records === void 0 ? void 0 : records.length,
|
31
|
+
hasMore: !!((records === null || records === void 0 ? void 0 : records.length) - lastRecord),
|
32
|
+
};
|
33
|
+
}
|
@@ -275,7 +275,6 @@ export class DataFetcher {
|
|
275
275
|
if (http.readyState == 4 && http.status == 200) {
|
276
276
|
try {
|
277
277
|
const jsonResp = JSON.parse(http.responseText);
|
278
|
-
await this.processServiceBrokerClientEvents({ clientEvents: jsonResp === null || jsonResp === void 0 ? void 0 : jsonResp.clientEvents, serviceName, payloadJson, accept, reject });
|
279
278
|
/**
|
280
279
|
* Este trecho difere do projeto HTML5 devido à decisão de adotar uma abordagem síncrona para esta chamada. Isso é justificado pelo fato de que, no cenário em questão, a abordagem assíncrona teria impactos negativos.
|
281
280
|
*
|
@@ -286,8 +285,10 @@ export class DataFetcher {
|
|
286
285
|
if (this.isServiceBrokerError(jsonResp)) {
|
287
286
|
reject(this.processServiceBrokerErrorInfo(jsonResp));
|
288
287
|
}
|
289
|
-
else if (jsonResp.status == DataFetcher.SERVICE_BROKER_STATUS.SERVICE_CANCELED
|
290
|
-
|
288
|
+
else if (jsonResp.status == DataFetcher.SERVICE_BROKER_STATUS.SERVICE_CANCELED) {
|
289
|
+
if (jsonResp.statusMessage) {
|
290
|
+
console.debug(`[DataFetcher] ${jsonResp.statusMessage}`);
|
291
|
+
}
|
291
292
|
}
|
292
293
|
else {
|
293
294
|
accept(jsonResp.responseBody);
|
@@ -295,6 +296,7 @@ export class DataFetcher {
|
|
295
296
|
(_a = this.application) === null || _a === void 0 ? void 0 : _a.info(jsonResp.statusMessage);
|
296
297
|
}
|
297
298
|
}
|
299
|
+
this.processServiceBrokerClientEvents({ clientEvents: jsonResp === null || jsonResp === void 0 ? void 0 : jsonResp.clientEvents, serviceName, payloadJson, accept, reject });
|
298
300
|
}
|
299
301
|
catch (err) {
|
300
302
|
console.warn(`Erro ao executar serviço: ${err}`);
|
@@ -168,6 +168,18 @@ export class FormConfigFetcher extends ResourceFetcher {
|
|
168
168
|
}
|
169
169
|
return `cfg://${authority}/${resourceID}`;
|
170
170
|
}
|
171
|
+
async fetchLegacyConfigurableForm(configName) {
|
172
|
+
const payload = { 'requestBody': { 'config': { 'chave': configName, 'tipo': 'T' } } };
|
173
|
+
const response = await DataFetcher.get().callServiceBroker('SystemUtilsSP.getConf', JSON.stringify(payload));
|
174
|
+
if (ObjectUtils.isEmpty(response))
|
175
|
+
return undefined;
|
176
|
+
return this.buildLegacyConfigurableForm(response);
|
177
|
+
}
|
178
|
+
buildLegacyConfigurableForm(config) {
|
179
|
+
var _a, _b, _c;
|
180
|
+
const rawFields = (_c = (_b = (_a = config === null || config === void 0 ? void 0 : config.formConfig) === null || _a === void 0 ? void 0 : _a.layout) === null || _b === void 0 ? void 0 : _b.field) !== null && _c !== void 0 ? _c : [];
|
181
|
+
return { emptyConfig: false, fields: Array.isArray(rawFields) ? rawFields : [rawFields] };
|
182
|
+
}
|
171
183
|
}
|
172
184
|
export var UserConfigType;
|
173
185
|
(function (UserConfigType) {
|
@@ -52,7 +52,7 @@ export default class PersonalizedFilterFetcher {
|
|
52
52
|
assistent
|
53
53
|
}
|
54
54
|
}`);
|
55
|
-
this.templateByQuery.set("savePersonalizedFilter", gql `
|
55
|
+
this.templateByQuery.set("savePersonalizedFilter", gql `
|
56
56
|
mutation($name: String!, $filterAssistent: InputFilterAssistent!) {
|
57
57
|
$queryAlias$: savePersonalizedFilter(name: $name, filterAssistent: $filterAssistent) {
|
58
58
|
id
|
@@ -74,11 +74,11 @@ export default class PersonalizedFilterFetcher {
|
|
74
74
|
}
|
75
75
|
}`);
|
76
76
|
}
|
77
|
-
async loadPersonalizedFilter(resourceID, filterID, configName) {
|
77
|
+
async loadPersonalizedFilter(resourceID, filterID, configName, legacyConfigName) {
|
78
78
|
return new Promise((resolve, reject) => {
|
79
79
|
DataFetcher.get()
|
80
80
|
.callGraphQL({
|
81
|
-
values: { name: this.resolveURI(resourceID, configName) + "/" + filterID },
|
81
|
+
values: { name: this.resolveURI(resourceID, configName) + "/" + filterID + this.resolveLegacyConfigName(legacyConfigName) },
|
82
82
|
query: this.templateByQuery.get("fetchFilterAssistent"),
|
83
83
|
})
|
84
84
|
.then((resp) => {
|
@@ -90,6 +90,9 @@ export default class PersonalizedFilterFetcher {
|
|
90
90
|
});
|
91
91
|
});
|
92
92
|
}
|
93
|
+
resolveLegacyConfigName(legacyConfigName) {
|
94
|
+
return legacyConfigName ? `?legacyResourceID=${legacyConfigName}` : '';
|
95
|
+
}
|
93
96
|
async savePersonalizedFilter(personalizedFilter, resourceID, configName) {
|
94
97
|
if (!personalizedFilter || Object.keys(personalizedFilter).length == 0) {
|
95
98
|
return Promise.reject(new Error("personalizedFilter não pode ser vazio"));
|
@@ -50,7 +50,7 @@ export class PesquisaFetcher {
|
|
50
50
|
});
|
51
51
|
}
|
52
52
|
loadAdvancedSearch(entityName, argument, criteria, searchOptions) {
|
53
|
-
var _a, _b, _c;
|
53
|
+
var _a, _b, _c, _d;
|
54
54
|
const listenerResult = this.applySearchListener(SearchListenerType.beforeSearch, entityName, argument, criteria, searchOptions);
|
55
55
|
const values = {
|
56
56
|
argument: (listenerResult === null || listenerResult === void 0 ? void 0 : listenerResult.argument) || argument,
|
@@ -63,7 +63,7 @@ export class PesquisaFetcher {
|
|
63
63
|
$: (_a = values.criteria) === null || _a === void 0 ? void 0 : _a.expression
|
64
64
|
}
|
65
65
|
};
|
66
|
-
if (((_b = values.criteria) === null || _b === void 0 ? void 0 : _b.params.length) > 0) {
|
66
|
+
if (((_c = (_b = values.criteria) === null || _b === void 0 ? void 0 : _b.params) === null || _c === void 0 ? void 0 : _c.length) > 0) {
|
67
67
|
externalCriteria.params = {
|
68
68
|
param: values.criteria.params.map(param => {
|
69
69
|
let value = param.value;
|
@@ -86,18 +86,11 @@ export class PesquisaFetcher {
|
|
86
86
|
};
|
87
87
|
}
|
88
88
|
const options = searchOptions != undefined
|
89
|
-
? {
|
90
|
-
"pkFieldName": searchOptions.codeFieldName,
|
91
|
-
"label": searchOptions.descriptionFieldName,
|
92
|
-
"fieldName": searchOptions.codeFieldName,
|
93
|
-
"useDescriptionOptions": false,
|
94
|
-
"enableRowsCounter": true
|
95
|
-
}
|
96
|
-
: undefined;
|
89
|
+
? Object.assign(Object.assign({}, searchOptions), { "pkFieldName": searchOptions.codeFieldName, "label": searchOptions.descriptionFieldName, "fieldName": searchOptions.codeFieldName, "useDescriptionOptions": false, "enableRowsCounter": true }) : undefined;
|
97
90
|
const reqBody = {
|
98
91
|
"serviceName": serviceName,
|
99
92
|
"requestBody": {
|
100
|
-
"criteria": Object.assign({ "entityName": entityName, "compacted": false, "ignoreEntityCriteria": false, "limit": this._defaultPageSize, "query": { "$": values.argument }, "orderByDesc": false, "externalCriteria": externalCriteria, "localEntityName": (
|
93
|
+
"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 }),
|
101
94
|
"clientEventList": {
|
102
95
|
"clientEvent": []
|
103
96
|
}
|
@@ -16,7 +16,8 @@ export const snkDataExporterMessages = {
|
|
16
16
|
},
|
17
17
|
message: {
|
18
18
|
emailSuccess: "E-mail enviado com sucesso",
|
19
|
-
exportError: "
|
19
|
+
exportError: "Falha ao exportar dados",
|
20
|
+
unknownFailure: "O motivo da falha não pode ser identificado.",
|
20
21
|
exportPermission: "O usuário não possui permissão para exportar o arquivo.",
|
21
22
|
},
|
22
23
|
title: {
|
@@ -1,4 +1,8 @@
|
|
1
1
|
export const snkSimpleCrudMessages = {
|
2
2
|
findColumn: "Busca de colunas",
|
3
|
+
formConfigUnavaliable: {
|
4
|
+
title: "Aviso",
|
5
|
+
message: 'A opção "Configurar formulário" será disponibilizada em breve. Enquanto isso, acesse a configuração do fomulário através dos layouts anteriores, HTML5 ou Flex.'
|
6
|
+
}
|
3
7
|
};
|
4
8
|
export default snkSimpleCrudMessages;
|