@sankhyalabs/sankhyablocks 0.0.0-bugfix-dev-KB-47082.0 → 0.0.0-bugfix-dev-KB-46492.1
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/{SnkMessageBuilder-e7dcf408.js → SnkMessageBuilder-141aa18d.js} +2 -1
- package/dist/cjs/SnkMultiSelectionListDataSource-5213120b.js +140 -0
- package/dist/cjs/index-f9e81701.js +2 -10
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{pesquisa-fetcher-c416a6b7.js → pesquisa-fetcher-94f6b316.js} +231 -20
- 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} +517 -2
- package/dist/cjs/snk-application.cjs.entry.js +2 -3
- package/dist/cjs/snk-attach.cjs.entry.js +3 -4
- package/dist/cjs/snk-crud.cjs.entry.js +2 -3
- package/dist/cjs/snk-data-exporter.cjs.entry.js +7 -3
- package/dist/cjs/{snk-data-unit-82c08a8c.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 +5 -6
- package/dist/cjs/snk-form-config.cjs.entry.js +6 -0
- package/dist/cjs/snk-form.cjs.entry.js +1 -1
- package/dist/cjs/snk-grid.cjs.entry.js +10 -19
- package/dist/cjs/{snk-guides-viewer-bd69fce4.js → snk-guides-viewer-c7293cfa.js} +2 -3
- package/dist/cjs/snk-guides-viewer.cjs.entry.js +3 -4
- package/dist/cjs/snk-personalized-filter-editor.cjs.entry.js +3 -1
- package/dist/cjs/snk-simple-crud.cjs.entry.js +147 -16
- package/dist/cjs/snk-taskbar.cjs.entry.js +6 -1
- package/dist/collection/collection-manifest.json +6 -6
- 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.js +1 -1
- package/dist/collection/components/snk-data-exporter/snk-data-exporter.js +5 -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-form/snk-form.js +1 -1
- package/dist/collection/components/{snk-form/subcomponents/snk-form-config → snk-form-config}/snk-form-config.js +11 -5
- package/dist/collection/components/snk-grid/snk-grid.js +5 -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/snk-simple-crud.css +5 -0
- package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +226 -14
- package/dist/collection/components/snk-taskbar/snk-taskbar.js +7 -0
- package/dist/collection/lib/http/data-fetcher/fetchers/pesquisa-fetcher.js +1 -8
- 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/SnkMessageBuilder.js +2 -1
- package/dist/components/dataunit-fetcher.js +1 -8
- package/dist/components/field-search.js +93 -3
- package/dist/components/index.d.ts +6 -6
- package/dist/components/snk-attach2.js +54 -12
- package/dist/components/snk-data-exporter2.js +5 -1
- package/dist/components/snk-detail-view2.js +29 -4
- package/dist/components/snk-form-config2.js +7 -1
- package/dist/components/snk-grid-config2.js +128 -102
- package/dist/components/snk-grid2.js +10 -17
- package/dist/components/snk-personalized-filter-editor.js +3 -1
- package/dist/components/snk-simple-crud2.js +204 -24
- package/dist/components/snk-taskbar2.js +6 -1
- package/dist/esm/{SnkMessageBuilder-0fb796b9.js → SnkMessageBuilder-9747ddd2.js} +2 -1
- package/dist/esm/SnkMultiSelectionListDataSource-7e7eada5.js +133 -0
- package/dist/esm/index-a7d3d3f1.js +2 -10
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{pesquisa-fetcher-ab16a2e8.js → pesquisa-fetcher-f05a12ca.js} +222 -12
- package/dist/esm/sankhyablocks.js +1 -1
- package/dist/esm/{snk-actions-button_2.entry.js → snk-actions-button_4.entry.js} +516 -3
- package/dist/esm/snk-application.entry.js +2 -3
- package/dist/esm/snk-attach.entry.js +2 -3
- package/dist/esm/snk-crud.entry.js +2 -3
- package/dist/esm/snk-data-exporter.entry.js +7 -3
- package/dist/esm/{snk-data-unit-5d201fb3.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 +5 -6
- package/dist/esm/snk-form-config.entry.js +7 -1
- package/dist/esm/snk-form.entry.js +1 -1
- package/dist/esm/snk-grid.entry.js +11 -20
- package/dist/esm/{snk-guides-viewer-fde82cc1.js → snk-guides-viewer-47443f7c.js} +2 -3
- package/dist/esm/snk-guides-viewer.entry.js +3 -4
- package/dist/esm/snk-personalized-filter-editor.entry.js +3 -1
- package/dist/esm/snk-simple-crud.entry.js +148 -17
- package/dist/esm/snk-taskbar.entry.js +6 -1
- package/dist/sankhyablocks/p-0c9dd95e.entry.js +1 -0
- package/dist/sankhyablocks/p-183efaa1.entry.js +1 -0
- package/dist/sankhyablocks/p-20b46647.entry.js +1 -0
- package/dist/sankhyablocks/p-2897fb8c.js +1 -0
- package/dist/sankhyablocks/{p-05243555.js → p-2936303b.js} +1 -1
- package/dist/sankhyablocks/p-30735d1e.entry.js +1 -0
- package/dist/sankhyablocks/p-3c5b7cfc.entry.js +1 -0
- package/dist/sankhyablocks/p-6ae58da0.js +1 -0
- package/dist/sankhyablocks/{p-fcdcb0e2.entry.js → p-746fc99e.entry.js} +1 -1
- package/dist/sankhyablocks/p-7e05bd83.entry.js +1 -0
- package/dist/sankhyablocks/p-99b1926b.entry.js +1 -0
- package/dist/sankhyablocks/{p-f3d1c48e.js → p-9a5d1b39.js} +1 -1
- package/dist/sankhyablocks/p-9fb97691.entry.js +1 -0
- package/dist/sankhyablocks/p-b11aa1e0.entry.js +1 -0
- package/dist/sankhyablocks/{p-fd0a8d68.entry.js → p-c4bcdd4b.entry.js} +3 -3
- package/dist/sankhyablocks/p-d78d4062.js +65 -0
- package/dist/sankhyablocks/p-e7dbe53a.entry.js +1 -0
- package/dist/sankhyablocks/p-eefe9954.entry.js +1 -0
- package/dist/sankhyablocks/p-fca66dda.entry.js +1 -0
- package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
- 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 +1 -1
- package/dist/types/components/snk-form/snk-form.d.ts +1 -1
- package/dist/types/components/{snk-form/subcomponents/snk-form-config → snk-form-config}/snk-form-config.d.ts +4 -3
- package/dist/types/components/snk-grid/snk-grid.d.ts +0 -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/snk-simple-crud.d.ts +46 -1
- package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +1 -0
- package/dist/types/components.d.ts +26 -10
- package/dist/types/lib/utils/CrudUtils.d.ts +3 -0
- package/package.json +1 -1
- 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-094c30cb.js +0 -1
- package/dist/sankhyablocks/p-11ad137d.entry.js +0 -1
- package/dist/sankhyablocks/p-3e91d5ea.entry.js +0 -1
- package/dist/sankhyablocks/p-57212bb5.js +0 -1
- package/dist/sankhyablocks/p-5f5b58b6.entry.js +0 -1
- package/dist/sankhyablocks/p-84bb8f47.entry.js +0 -1
- package/dist/sankhyablocks/p-8c13d8d6.entry.js +0 -1
- package/dist/sankhyablocks/p-91b7f78a.entry.js +0 -1
- package/dist/sankhyablocks/p-98674137.entry.js +0 -1
- package/dist/sankhyablocks/p-b7004423.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-c6247955.js +0 -65
- package/dist/sankhyablocks/p-c758265f.entry.js +0 -1
- package/dist/sankhyablocks/p-d4802f81.entry.js +0 -1
- package/dist/sankhyablocks/p-e3bd000e.entry.js +0 -1
- package/dist/sankhyablocks/p-fb842329.entry.js +0 -1
- package/dist/sankhyablocks/p-fdc4cb9b.entry.js +0 -1
- /package/dist/cjs/{SnkFormConfigManager-3621bfc4.js → SnkFormConfigManager-0ffd098d.js} +0 -0
- /package/dist/collection/components/{snk-form → snk-form-config}/SnkFormConfigManager.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/esm/{SnkFormConfigManager-692e20c7.js → SnkFormConfigManager-dd450734.js} +0 -0
- /package/dist/sankhyablocks/{p-725d04ba.js → p-9ea14b61.js} +0 -0
- /package/dist/types/components/{snk-form → snk-form-config}/SnkFormConfigManager.d.ts +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
|
@@ -10,10 +10,12 @@ import { SnkMessageBuilder } from '../../lib/message/SnkMessageBuilder';
|
|
|
10
10
|
import { IGridConfig } from '@sankhyalabs/ezui/dist/types/components/ez-grid/controller/EzGridController';
|
|
11
11
|
import SnkMultiSelectionListDataSource from '../snk-grid/filtercolumn/SnkMultiSelectionListDataSource';
|
|
12
12
|
import { IAction } from '@sankhyalabs/ezui/dist/types/utils';
|
|
13
|
+
import { SnkFormConfigManager } from '../snk-form-config/SnkFormConfigManager';
|
|
13
14
|
export declare class SnkSimpleCrud {
|
|
14
15
|
private readonly REGULAR_DEFAULT_BTNS;
|
|
15
16
|
private readonly REGULAR_SELECTED_BTNS;
|
|
16
17
|
_viewStack: HTMLEzViewStackElement;
|
|
18
|
+
_snkConfigurator: HTMLSnkConfiguratorElement;
|
|
17
19
|
_snkGrid: HTMLSnkGridElement;
|
|
18
20
|
_inMemoryLoader: InMemoryLoader;
|
|
19
21
|
_metadata: UnitMetadata;
|
|
@@ -22,11 +24,19 @@ export declare class SnkSimpleCrud {
|
|
|
22
24
|
_fieldSearch: HTMLEzSearchElement;
|
|
23
25
|
_moreOptions: HTMLEzActionsButtonElement;
|
|
24
26
|
_grid: HTMLEzGridElement;
|
|
27
|
+
_snkGridConfig: HTMLSnkGridConfigElement;
|
|
25
28
|
_keyDownHandler: (event: KeyboardEvent) => Promise<void>;
|
|
29
|
+
_resourceID: string;
|
|
30
|
+
_formConfigManager: SnkFormConfigManager;
|
|
31
|
+
_gridConfigAlreadyLoaded: boolean;
|
|
32
|
+
_formConfigAlreadyLoaded: boolean;
|
|
26
33
|
private _element;
|
|
34
|
+
_showPopUpGridConfig: boolean;
|
|
35
|
+
_showFormConfig: boolean;
|
|
27
36
|
_currentViewMode: VIEW_MODE;
|
|
28
37
|
_config: {};
|
|
29
38
|
_fieldToGetFocus: string;
|
|
39
|
+
_customContainerId: string;
|
|
30
40
|
dataState: DataState;
|
|
31
41
|
dataUnit: DataUnit;
|
|
32
42
|
mode: SIMPLE_CRUD_MODE;
|
|
@@ -54,6 +64,14 @@ export declare class SnkSimpleCrud {
|
|
|
54
64
|
* Responsável por notificar quando ocorrer a renderização de itens do formulário.
|
|
55
65
|
*/
|
|
56
66
|
formItemsReady: EventEmitter<Array<HTMLElement>>;
|
|
67
|
+
/**
|
|
68
|
+
* Emitido quando salva a configuração no configurator do CRUD.
|
|
69
|
+
*/
|
|
70
|
+
configuratorSave: EventEmitter<any>;
|
|
71
|
+
/**
|
|
72
|
+
* Emitido quando cancela o salvamento da configuração no configurator do CRUD.
|
|
73
|
+
*/
|
|
74
|
+
configuratorCancel: EventEmitter<any>;
|
|
57
75
|
/**
|
|
58
76
|
* Gerenciador das barras de tarefas. É possível determinar botões específicos
|
|
59
77
|
* ou mesmo gerenciar o estado dos botões.
|
|
@@ -75,7 +93,14 @@ export declare class SnkSimpleCrud {
|
|
|
75
93
|
* Usado para salvar as configurações dos blocos de construção.
|
|
76
94
|
*/
|
|
77
95
|
configName: string;
|
|
96
|
+
/**
|
|
97
|
+
* Usado para exibir os botões de ação do snk-configurator.
|
|
98
|
+
*/
|
|
99
|
+
showConfiguratorButtons: boolean;
|
|
78
100
|
_taskbarProcessor: TaskbarProcessor;
|
|
101
|
+
private getButtons;
|
|
102
|
+
private addConfigButton;
|
|
103
|
+
private get application();
|
|
79
104
|
resolveInMemoryBtns(taskbarButtons: Array<string>): Array<string>;
|
|
80
105
|
/**
|
|
81
106
|
* Usado para alternar a visão entre GRID e FORM externamente.
|
|
@@ -84,7 +109,12 @@ export declare class SnkSimpleCrud {
|
|
|
84
109
|
actionClickListener(evt: CustomEvent): void;
|
|
85
110
|
onModeChange(): void;
|
|
86
111
|
observeDataState(newValue: DataState, oldValue: DataState): void;
|
|
87
|
-
|
|
112
|
+
private openConfig;
|
|
113
|
+
private openGridConfig;
|
|
114
|
+
private openFormConfig;
|
|
115
|
+
private loadGridConfig;
|
|
116
|
+
private loadFormConfig;
|
|
117
|
+
componentWillRender(): Promise<void>;
|
|
88
118
|
componentWillLoad(): void;
|
|
89
119
|
configDatasource(): void;
|
|
90
120
|
getTaskBarId(): string;
|
|
@@ -92,10 +122,19 @@ export declare class SnkSimpleCrud {
|
|
|
92
122
|
setMetadata(metadata: UnitMetadata): Promise<void>;
|
|
93
123
|
setRecords(records: Array<Record>): Promise<void>;
|
|
94
124
|
getRecords(): Promise<Array<Record>>;
|
|
125
|
+
/**
|
|
126
|
+
* Usado para abrir o configurator do CRUD
|
|
127
|
+
*/
|
|
128
|
+
openConfigurator(): Promise<void>;
|
|
129
|
+
/**
|
|
130
|
+
* Usado para fechar o configurator do CRUD
|
|
131
|
+
*/
|
|
132
|
+
closeConfigurator(): Promise<void>;
|
|
95
133
|
processMetadata(): void;
|
|
96
134
|
onDataStateChange(evt: any): void;
|
|
97
135
|
getTaskBarDisabledButtons(): Array<string>;
|
|
98
136
|
handleCancelEdit(): void;
|
|
137
|
+
private handleConfiguratorEvent;
|
|
99
138
|
getColumnSearch(actionButton: any, item: IAction): HTMLElement;
|
|
100
139
|
private onSelectField;
|
|
101
140
|
getFieldSearch(actionButton: any, item: IAction): HTMLElement;
|
|
@@ -111,5 +150,11 @@ export declare class SnkSimpleCrud {
|
|
|
111
150
|
private clearFieldToFocusHandler;
|
|
112
151
|
connectedCallback(): void;
|
|
113
152
|
disconnectedCallback(): void;
|
|
153
|
+
private gridConfigChangeHandler;
|
|
154
|
+
private modalConfigChangeHandler;
|
|
155
|
+
private setGridConfig;
|
|
156
|
+
private setFormConfig;
|
|
157
|
+
private closeGridConfig;
|
|
158
|
+
private closeFormConfig;
|
|
114
159
|
render(): any;
|
|
115
160
|
}
|
|
@@ -28,7 +28,7 @@ import { EzGridColumn, IGridConfig, IStatusResolver, StatusResolverFunction } fr
|
|
|
28
28
|
import { IExporterProvider } from "./components/snk-data-exporter/interfaces/IExporterProvider";
|
|
29
29
|
import { DataState } from "./components/snk-data-unit/snk-data-unit";
|
|
30
30
|
import { IRecordID } from "./components/snk-data-exporter/interfaces/IRecordID";
|
|
31
|
-
import { SnkFormConfigManager } from "./components/snk-form/SnkFormConfigManager";
|
|
31
|
+
import { SnkFormConfigManager } from "./components/snk-form-config/SnkFormConfigManager";
|
|
32
32
|
import { IGuideItem } from "@sankhyalabs/ezui/dist/types/components/ez-guide-navigator/interfaces";
|
|
33
33
|
import { DataState as DataState1 } from "./components/snk-data-unit/snk-data-unit";
|
|
34
34
|
import { GuideBuilder } from "./components/snk-crud/subcomponents/GuideBuilder";
|
|
@@ -54,7 +54,7 @@ import { PresentationMode as PresentationMode1 } from "./lib/@types";
|
|
|
54
54
|
import { PrintSelectorResponse } from "./components/snk-print-selector/snk-print-selector";
|
|
55
55
|
import { PendingPrintJobData } from "./lib/utils/PrintUtils";
|
|
56
56
|
import { IBreadcrumbItem } from "@sankhyalabs/ezui/dist/types/components/ez-breadcrumb/ez-breadcrumb";
|
|
57
|
-
import { ITab } from "./components/snk-form/subcomponents/snk-tab-config/snk-tab-config";
|
|
57
|
+
import { ITab } from "./components/snk-form-config/subcomponents/snk-tab-config/snk-tab-config";
|
|
58
58
|
import { Action as Action1, CustomButton } from "./components/snk-taskbar/snk-taskbar";
|
|
59
59
|
export namespace Components {
|
|
60
60
|
interface SnkActionsButton {
|
|
@@ -1258,10 +1258,6 @@ export namespace Components {
|
|
|
1258
1258
|
"useEnterLikeTab": boolean;
|
|
1259
1259
|
}
|
|
1260
1260
|
interface SnkGridConfig {
|
|
1261
|
-
/**
|
|
1262
|
-
* Referência para o SnkApplication
|
|
1263
|
-
*/
|
|
1264
|
-
"application": SnkApplication;
|
|
1265
1261
|
/**
|
|
1266
1262
|
* Colunas da grade.
|
|
1267
1263
|
*/
|
|
@@ -1437,6 +1433,10 @@ export namespace Components {
|
|
|
1437
1433
|
* Ações a serem colocadas no botão "Mais opções" do componente snk-taskbar.
|
|
1438
1434
|
*/
|
|
1439
1435
|
"actionsList": Array<Action>;
|
|
1436
|
+
/**
|
|
1437
|
+
* Usado para fechar o configurator do CRUD
|
|
1438
|
+
*/
|
|
1439
|
+
"closeConfigurator": () => Promise<void>;
|
|
1440
1440
|
/**
|
|
1441
1441
|
* Usado para salvar as configurações dos blocos de construção.
|
|
1442
1442
|
*/
|
|
@@ -1459,8 +1459,16 @@ export namespace Components {
|
|
|
1459
1459
|
* Determina se pode haver mais de uma linha selecionada na grade.
|
|
1460
1460
|
*/
|
|
1461
1461
|
"multipleSelection": boolean;
|
|
1462
|
+
/**
|
|
1463
|
+
* Usado para abrir o configurator do CRUD
|
|
1464
|
+
*/
|
|
1465
|
+
"openConfigurator": () => Promise<void>;
|
|
1462
1466
|
"setMetadata": (metadata: UnitMetadata) => Promise<void>;
|
|
1463
1467
|
"setRecords": (records: Array<Record>) => Promise<void>;
|
|
1468
|
+
/**
|
|
1469
|
+
* Usado para exibir os botões de ação do snk-configurator.
|
|
1470
|
+
*/
|
|
1471
|
+
"showConfiguratorButtons": boolean;
|
|
1464
1472
|
/**
|
|
1465
1473
|
* Gerenciador das barras de tarefas. É possível determinar botões específicos ou mesmo gerenciar o estado dos botões.
|
|
1466
1474
|
*/
|
|
@@ -3121,10 +3129,6 @@ declare namespace LocalJSX {
|
|
|
3121
3129
|
"useEnterLikeTab"?: boolean;
|
|
3122
3130
|
}
|
|
3123
3131
|
interface SnkGridConfig {
|
|
3124
|
-
/**
|
|
3125
|
-
* Referência para o SnkApplication
|
|
3126
|
-
*/
|
|
3127
|
-
"application"?: SnkApplication;
|
|
3128
3132
|
/**
|
|
3129
3133
|
* Colunas da grade.
|
|
3130
3134
|
*/
|
|
@@ -3348,6 +3352,14 @@ declare namespace LocalJSX {
|
|
|
3348
3352
|
* Emitido sempre que houver click de botão ou ação.
|
|
3349
3353
|
*/
|
|
3350
3354
|
"onActionClick"?: (event: SnkSimpleCrudCustomEvent<string>) => void;
|
|
3355
|
+
/**
|
|
3356
|
+
* Emitido quando cancela o salvamento da configuração no configurator do CRUD.
|
|
3357
|
+
*/
|
|
3358
|
+
"onConfiguratorCancel"?: (event: SnkSimpleCrudCustomEvent<any>) => void;
|
|
3359
|
+
/**
|
|
3360
|
+
* Emitido quando salva a configuração no configurator do CRUD.
|
|
3361
|
+
*/
|
|
3362
|
+
"onConfiguratorSave"?: (event: SnkSimpleCrudCustomEvent<any>) => void;
|
|
3351
3363
|
/**
|
|
3352
3364
|
* Emitido quando há qualquer mudança de estado no DataUnit.
|
|
3353
3365
|
*/
|
|
@@ -3360,6 +3372,10 @@ declare namespace LocalJSX {
|
|
|
3360
3372
|
* Responsável por notificar quando ocorrer a renderização de itens do formulário.
|
|
3361
3373
|
*/
|
|
3362
3374
|
"onFormItemsReady"?: (event: SnkSimpleCrudCustomEvent<Array<HTMLElement>>) => void;
|
|
3375
|
+
/**
|
|
3376
|
+
* Usado para exibir os botões de ação do snk-configurator.
|
|
3377
|
+
*/
|
|
3378
|
+
"showConfiguratorButtons"?: boolean;
|
|
3363
3379
|
/**
|
|
3364
3380
|
* Gerenciador das barras de tarefas. É possível determinar botões específicos ou mesmo gerenciar o estado dos botões.
|
|
3365
3381
|
*/
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
import { DataUnit } from '@sankhyalabs/core';
|
|
2
|
+
import { IGridConfig } from '@sankhyalabs/ezui/dist/types/components/ez-grid/controller/EzGridController';
|
|
1
3
|
export interface CrudFindResult {
|
|
2
4
|
fields: Map<string, string>;
|
|
3
5
|
}
|
|
4
6
|
export declare class CrudUtils {
|
|
7
|
+
static assertDefaultSorting(gridConfig: IGridConfig, dataUnit: DataUnit): void;
|
|
5
8
|
static find(entityName: string, fields: Array<string>, criteria: Map<string, string>, onlyFirst: boolean, criteriaExpression: string, orderBy: string): Promise<unknown>;
|
|
6
9
|
}
|
package/package.json
CHANGED
|
@@ -1,224 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const core = require('@sankhyalabs/core');
|
|
4
|
-
const utils = require('@sankhyalabs/ezui/dist/collection/components/ez-grid/utils');
|
|
5
|
-
|
|
6
|
-
class ArrayRepository {
|
|
7
|
-
constructor(equalsFunction) {
|
|
8
|
-
this._list = [];
|
|
9
|
-
this._equalsFunction = equalsFunction;
|
|
10
|
-
}
|
|
11
|
-
async load(filterFunction, sortingFunction, offset, limit) {
|
|
12
|
-
let result = [].concat(this._list);
|
|
13
|
-
if (filterFunction != undefined) {
|
|
14
|
-
result = this._list.filter(item => filterFunction(item));
|
|
15
|
-
}
|
|
16
|
-
if (sortingFunction != undefined) {
|
|
17
|
-
result = result.sort(sortingFunction);
|
|
18
|
-
}
|
|
19
|
-
const count = result.length;
|
|
20
|
-
if (limit != undefined) {
|
|
21
|
-
const start = offset || 0;
|
|
22
|
-
const end = limit ? start + limit : result.length;
|
|
23
|
-
result = result.slice(start, end);
|
|
24
|
-
}
|
|
25
|
-
return Promise.resolve({ result, count });
|
|
26
|
-
}
|
|
27
|
-
async distict(itemProcessor) {
|
|
28
|
-
const processedItems = [];
|
|
29
|
-
let hasEmpty = false;
|
|
30
|
-
for (const item of this._list) {
|
|
31
|
-
const processedItem = itemProcessor(item);
|
|
32
|
-
if (processedItem == undefined) {
|
|
33
|
-
continue;
|
|
34
|
-
}
|
|
35
|
-
if (processedItem.value == undefined) {
|
|
36
|
-
hasEmpty = true;
|
|
37
|
-
continue;
|
|
38
|
-
}
|
|
39
|
-
processedItems.push(processedItem);
|
|
40
|
-
}
|
|
41
|
-
if (hasEmpty) {
|
|
42
|
-
processedItems.push({ key: "", value: null });
|
|
43
|
-
}
|
|
44
|
-
return Promise.resolve(new Map(processedItems.map(item => [item.key, item.value])));
|
|
45
|
-
}
|
|
46
|
-
async push(items) {
|
|
47
|
-
this._list.push(...items);
|
|
48
|
-
}
|
|
49
|
-
async clear() {
|
|
50
|
-
this._list = [];
|
|
51
|
-
}
|
|
52
|
-
async delete(items) {
|
|
53
|
-
this._list = this._list.filter(item => {
|
|
54
|
-
for (const removed of items) {
|
|
55
|
-
if (this._equalsFunction(item, removed)) {
|
|
56
|
-
return false;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
return true;
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
async update(items) {
|
|
63
|
-
this._list = this._list.map(existingItem => {
|
|
64
|
-
const newItem = items.find(newItem => this._equalsFunction(existingItem, newItem));
|
|
65
|
-
return newItem == undefined ? existingItem : newItem;
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
async insert(itemReference, items) {
|
|
69
|
-
const itemPosition = this._list.indexOf(itemReference);
|
|
70
|
-
if (itemPosition == -1) {
|
|
71
|
-
this._list.push(...items);
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
this._list = this._list.slice(0, itemPosition).concat(items).concat(this._list.slice(itemPosition));
|
|
75
|
-
}
|
|
76
|
-
isOperating() {
|
|
77
|
-
return true;
|
|
78
|
-
}
|
|
79
|
-
async isEmpty() {
|
|
80
|
-
return Promise.resolve(this._list.length === 0);
|
|
81
|
-
}
|
|
82
|
-
async count() {
|
|
83
|
-
return Promise.resolve(this._list.length);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
class PreloadManager {
|
|
88
|
-
static setLoadingStatus(dataUnit, loadingInProgress) {
|
|
89
|
-
this._loadingStatus.set(dataUnit.name, loadingInProgress);
|
|
90
|
-
}
|
|
91
|
-
static isCacheEnabled(_dataUnit) {
|
|
92
|
-
return true;
|
|
93
|
-
}
|
|
94
|
-
static cacheRecords(dataUnit, records, resetDatabase, loadingInProgress) {
|
|
95
|
-
PreloadManager.setLoadingStatus(dataUnit, loadingInProgress);
|
|
96
|
-
if (PreloadManager.isCacheEnabled(dataUnit)) {
|
|
97
|
-
this.getRepository(dataUnit).push(records);
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
if (resetDatabase) {
|
|
101
|
-
this._repositories.delete(dataUnit.name);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
static getSortingFunction(dataUnit, sorting) {
|
|
106
|
-
if (sorting == undefined || sorting.length == 0) {
|
|
107
|
-
return undefined;
|
|
108
|
-
}
|
|
109
|
-
return (recordA, recordB) => {
|
|
110
|
-
for (const sort of sorting) {
|
|
111
|
-
const result = core.FieldComparator.compare(dataUnit.getField(sort.field), recordA, recordB, sort.mode === core.SortMode.ASC);
|
|
112
|
-
if (result != 0) {
|
|
113
|
-
return result;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
static async getDistinct(dataUnit, fieldName) {
|
|
119
|
-
if (!PreloadManager.isCacheEnabled(dataUnit)) {
|
|
120
|
-
return Promise.resolve(utils.ColumnFilterManager.compileDistinct(fieldName, dataUnit));
|
|
121
|
-
}
|
|
122
|
-
let filterFunction;
|
|
123
|
-
const request = dataUnit.getLastLoadRequest();
|
|
124
|
-
if (request != undefined) {
|
|
125
|
-
const columnFilters = utils.ColumnFilterManager.getColumnFilters(request.filters, fieldName);
|
|
126
|
-
filterFunction = utils.ColumnFilterManager.getFilterFunction(dataUnit, Array.from(columnFilters.values()));
|
|
127
|
-
}
|
|
128
|
-
return new Promise((accept, reject) => {
|
|
129
|
-
PreloadManager.getRepository(dataUnit).distict(record => {
|
|
130
|
-
if (filterFunction != undefined && !filterFunction(record)) {
|
|
131
|
-
return undefined;
|
|
132
|
-
}
|
|
133
|
-
const fieldValue = record[fieldName];
|
|
134
|
-
if (fieldValue == undefined) {
|
|
135
|
-
return { key: null, value: null };
|
|
136
|
-
}
|
|
137
|
-
const value = fieldValue.value != undefined ? fieldValue.value : fieldValue;
|
|
138
|
-
return { key: dataUnit.getFormattedValue(fieldName, fieldValue), value };
|
|
139
|
-
})
|
|
140
|
-
.then(result => {
|
|
141
|
-
if (result == undefined) {
|
|
142
|
-
accept(undefined);
|
|
143
|
-
return;
|
|
144
|
-
}
|
|
145
|
-
accept(Array.from(result.entries()).map(([label, value]) => ({ label, value, check: true })));
|
|
146
|
-
})
|
|
147
|
-
.catch(reason => reject(reason));
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
static async loadData(dataUnit, request, loadFromServer) {
|
|
151
|
-
try {
|
|
152
|
-
if (PreloadManager.isCacheEnabled(dataUnit)) {
|
|
153
|
-
let useCache = request.source === "EZ_GRID_LOADING_SOURCE" || request.source === core.DataUnit.CHANGING_PAGE_LOADING_SOURCE;
|
|
154
|
-
if (useCache) {
|
|
155
|
-
const isCacheEmpty = await PreloadManager.getRepository(dataUnit).isEmpty();
|
|
156
|
-
if (!isCacheEmpty) {
|
|
157
|
-
return PreloadManager.loadFromCache(dataUnit, request);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
//Como não vamos aproveitar o cache, ele precisa ser limpo.
|
|
161
|
-
PreloadManager.getRepository(dataUnit).clear().catch(() => { });
|
|
162
|
-
}
|
|
163
|
-
return loadFromServer(dataUnit, request);
|
|
164
|
-
}
|
|
165
|
-
catch (error) {
|
|
166
|
-
console.error(error);
|
|
167
|
-
return Promise.reject(error);
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
static insertRecords(dataUnit, reference, records) {
|
|
171
|
-
if (PreloadManager.isCacheEnabled(dataUnit)) {
|
|
172
|
-
PreloadManager.getRepository(dataUnit).insert(reference, records);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
static updateRecords(dataUnit, records) {
|
|
176
|
-
if (PreloadManager.isCacheEnabled(dataUnit)) {
|
|
177
|
-
PreloadManager.getRepository(dataUnit).update(records);
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
static removeRecords(dataUnit, records) {
|
|
181
|
-
if (PreloadManager.isCacheEnabled(dataUnit)) {
|
|
182
|
-
PreloadManager.getRepository(dataUnit).delete(records);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
static async countRecords(dataUnit) {
|
|
186
|
-
if (PreloadManager.isCacheEnabled(dataUnit)) {
|
|
187
|
-
return PreloadManager.getRepository(dataUnit).count();
|
|
188
|
-
}
|
|
189
|
-
return Promise.resolve(0);
|
|
190
|
-
}
|
|
191
|
-
static getRepository(dataUnit) {
|
|
192
|
-
const name = dataUnit.name;
|
|
193
|
-
if (!PreloadManager._repositories.has(name)) {
|
|
194
|
-
PreloadManager._repositories.set(name, new ArrayRepository((recordA, recordB) => recordA.__record__id__ === recordB.__record__id__));
|
|
195
|
-
}
|
|
196
|
-
return PreloadManager._repositories.get(name);
|
|
197
|
-
}
|
|
198
|
-
static async loadFromCache(dataUnit, request) {
|
|
199
|
-
return new Promise((accept, reject) => {
|
|
200
|
-
const columnFilters = utils.ColumnFilterManager.getColumnFilters(request.filters, "");
|
|
201
|
-
const { limit, offset, sort } = request;
|
|
202
|
-
PreloadManager.getRepository(dataUnit)
|
|
203
|
-
.load(utils.ColumnFilterManager.getFilterFunction(dataUnit, Array.from(columnFilters.values())), PreloadManager.getSortingFunction(dataUnit, sort), offset, limit)
|
|
204
|
-
.then(loadResult => {
|
|
205
|
-
const stillLoading = PreloadManager._loadingStatus.get(dataUnit.name);
|
|
206
|
-
const { count, result: records } = loadResult;
|
|
207
|
-
const firstRecord = count == 0 ? 0 : offset + 1;
|
|
208
|
-
const lastRecord = offset + Math.min(records.length, limit);
|
|
209
|
-
const currentPage = offset / limit;
|
|
210
|
-
const paginationInfo = {
|
|
211
|
-
count, currentPage, firstRecord, lastRecord,
|
|
212
|
-
hasMore: stillLoading || (lastRecord < count),
|
|
213
|
-
total: stillLoading ? undefined : count
|
|
214
|
-
};
|
|
215
|
-
accept({ records, paginationInfo });
|
|
216
|
-
})
|
|
217
|
-
.catch(reason => reject(reason));
|
|
218
|
-
});
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
PreloadManager._repositories = new Map();
|
|
222
|
-
PreloadManager._loadingStatus = new Map();
|
|
223
|
-
|
|
224
|
-
exports.PreloadManager = PreloadManager;
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const core = require('@sankhyalabs/core');
|
|
4
|
-
const InMemoryFilterColumnDataSource = require('@sankhyalabs/ezui/dist/collection/components/ez-grid/utils/InMemoryFilterColumnDataSource');
|
|
5
|
-
const PreloadManager = require('./PreloadManager-84466da6.js');
|
|
6
|
-
|
|
7
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
8
|
-
|
|
9
|
-
const InMemoryFilterColumnDataSource__default = /*#__PURE__*/_interopDefaultLegacy(InMemoryFilterColumnDataSource);
|
|
10
|
-
|
|
11
|
-
class SnkMultiSelectionListDataSource {
|
|
12
|
-
setDataUnit(dataUnit) {
|
|
13
|
-
this._dataUnit = dataUnit;
|
|
14
|
-
}
|
|
15
|
-
setApplication(application) {
|
|
16
|
-
this._application = application;
|
|
17
|
-
}
|
|
18
|
-
formatLabel(fieldName, value) {
|
|
19
|
-
const { userInterface } = this._dataUnit.getField(fieldName);
|
|
20
|
-
if (userInterface === core.UserInterface.DATETIME) {
|
|
21
|
-
return core.DateUtils.formatDate(this._dataUnit.valueFromString(fieldName, value));
|
|
22
|
-
}
|
|
23
|
-
return String(this._dataUnit.getFormattedValue(fieldName, value));
|
|
24
|
-
}
|
|
25
|
-
async getStaticOptions(fieldName) {
|
|
26
|
-
if (fieldName == undefined) {
|
|
27
|
-
return Promise.resolve(undefined);
|
|
28
|
-
}
|
|
29
|
-
return Promise.resolve(await PreloadManager.PreloadManager.getDistinct(this._dataUnit, fieldName));
|
|
30
|
-
}
|
|
31
|
-
fetchData(filterTerm, fieldName) {
|
|
32
|
-
return new Promise(resolve => {
|
|
33
|
-
this._application.executeSelectDistinct(this._dataUnit, fieldName, filterTerm).then(result => {
|
|
34
|
-
resolve(result.map(item => {
|
|
35
|
-
const field = this._dataUnit.getField(fieldName);
|
|
36
|
-
if (field.userInterface === core.UserInterface.SEARCH) {
|
|
37
|
-
return Object.assign(Object.assign({}, JSON.parse(item)), { check: true });
|
|
38
|
-
}
|
|
39
|
-
return { value: item, label: this.formatLabel(fieldName, item), check: true };
|
|
40
|
-
}));
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
sortItems(fieldName, items) {
|
|
45
|
-
return InMemoryFilterColumnDataSource__default['default'].defaultSorterMultSelectionOption(this._dataUnit, fieldName, items);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
exports.SnkMultiSelectionListDataSource = SnkMultiSelectionListDataSource;
|