@sankhyalabs/sankhyablocks 5.10.0 → 5.10.2
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/snk-attach.cjs.entry.js +3 -2
- package/dist/cjs/snk-data-exporter.cjs.entry.js +2 -2
- package/dist/cjs/snk-detail-view.cjs.entry.js +2 -2
- package/dist/cjs/snk-entity-list.cjs.entry.js +2 -1
- package/dist/cjs/snk-filter-field-search_2.cjs.entry.js +5 -3
- package/dist/cjs/snk-filter-modal.cjs.entry.js +2 -2
- package/dist/cjs/snk-form-view.cjs.entry.js +1 -1
- package/dist/cjs/snk-grid.cjs.entry.js +7 -6
- package/dist/cjs/{snk-guides-viewer-b2d40bc4.js → snk-guides-viewer-0ab3746e.js} +1 -1
- package/dist/cjs/snk-guides-viewer.cjs.entry.js +1 -1
- package/dist/cjs/snk-simple-bar_2.cjs.entry.js +1 -0
- package/dist/collection/collection-manifest.json +2 -17
- package/dist/collection/components/snk-attach/snk-attach.js +3 -2
- package/dist/collection/components/snk-attach/structure/index.js +1 -1
- package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js +1 -1
- package/dist/collection/components/snk-crud/subcomponents/snk-form-view.js +1 -1
- package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +1 -1
- package/dist/collection/components/snk-data-exporter/snk-data-exporter.js +2 -2
- package/dist/collection/components/snk-entity-list/snk-entity-list.js +2 -1
- package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.js +2 -2
- package/dist/collection/components/snk-filter-field-search/snk-filter-field-search.js +1 -1
- package/dist/collection/components/snk-filter-field-search/subcomponents/list-item.js +1 -1
- package/dist/collection/components/snk-grid/snk-grid.js +7 -6
- package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-param-config/snk-filter-param-config.js +3 -1
- package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +15 -0
- package/dist/components/snk-attach2.js +3 -2
- package/dist/components/snk-data-exporter2.js +2 -2
- package/dist/components/snk-detail-view2.js +2 -2
- package/dist/components/snk-entity-list.js +2 -1
- package/dist/components/snk-filter-field-search2.js +2 -2
- package/dist/components/snk-filter-modal.js +2 -2
- package/dist/components/snk-filter-param-config2.js +3 -1
- package/dist/components/snk-form-view2.js +1 -1
- package/dist/components/snk-grid2.js +7 -6
- package/dist/components/snk-simple-crud2.js +1 -0
- package/dist/esm/snk-attach.entry.js +3 -2
- package/dist/esm/snk-data-exporter.entry.js +2 -2
- package/dist/esm/snk-detail-view.entry.js +2 -2
- package/dist/esm/snk-entity-list.entry.js +2 -1
- package/dist/esm/snk-filter-field-search_2.entry.js +5 -3
- package/dist/esm/snk-filter-modal.entry.js +2 -2
- package/dist/esm/snk-form-view.entry.js +1 -1
- package/dist/esm/snk-grid.entry.js +7 -6
- package/dist/esm/{snk-guides-viewer-11a02781.js → snk-guides-viewer-767f5a74.js} +1 -1
- package/dist/esm/snk-guides-viewer.entry.js +1 -1
- package/dist/esm/snk-simple-bar_2.entry.js +1 -0
- package/dist/sankhyablocks/{p-7f0afee1.js → p-551165d8.js} +1 -1
- package/dist/sankhyablocks/{p-71215dc2.entry.js → p-56d70073.entry.js} +1 -1
- package/dist/sankhyablocks/p-78de64fb.entry.js +1 -0
- package/dist/sankhyablocks/{p-8819be14.entry.js → p-7956b9dd.entry.js} +1 -1
- package/dist/sankhyablocks/p-9e50681c.entry.js +1 -0
- package/dist/sankhyablocks/p-ba511f48.entry.js +1 -0
- package/dist/sankhyablocks/p-c8095917.entry.js +1 -0
- package/dist/sankhyablocks/p-de9caf1e.entry.js +1 -0
- package/dist/sankhyablocks/{p-4eae2812.entry.js → p-ec1c64be.entry.js} +1 -1
- package/dist/sankhyablocks/{p-1c836fad.entry.js → p-f3241ada.entry.js} +1 -1
- package/dist/sankhyablocks/{p-554e2f83.entry.js → p-f43629f3.entry.js} +1 -1
- package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
- package/dist/types/components/snk-application/snk-application.d.ts +259 -0
- package/dist/types/components/snk-attach/structure/crud-config-builder.d.ts +1 -1
- package/dist/types/components/snk-attach/structure/data-unit-builder.d.ts +1 -2
- package/dist/types/components/snk-attach/structure/index.d.ts +1 -1
- package/dist/types/components/snk-crud/snk-crud.d.ts +79 -0
- package/dist/types/components/snk-data-exporter/exporter-email-sender/snk-exporter-email-sender.d.ts +40 -0
- package/dist/types/components/snk-data-exporter/interfaces/IExporterProvider.d.ts +1 -1
- package/dist/types/components/snk-entity-list/snk-entity-list.d.ts +2 -5
- package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-binary-select.d.ts +36 -0
- package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-multi-select.d.ts +28 -0
- package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-number.d.ts +28 -0
- package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-period.d.ts +47 -0
- package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-search.d.ts +30 -0
- package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-text.d.ts +24 -0
- package/dist/types/components/snk-filter-bar/filter-item/snk-filter-detail.d.ts +44 -0
- package/dist/types/components/snk-filter-bar/filter-list/snk-filter-list.d.ts +74 -0
- package/dist/types/components/snk-grid/snk-grid.d.ts +97 -0
- package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +68 -0
- package/dist/types/components.d.ts +4 -0
- package/package.json +1 -1
- package/dist/sankhyablocks/p-83765829.entry.js +0 -1
- package/dist/sankhyablocks/p-c842c6f1.entry.js +0 -1
- package/dist/sankhyablocks/p-c93aab6a.entry.js +0 -1
- package/dist/sankhyablocks/p-d66bfdef.entry.js +0 -1
- package/dist/sankhyablocks/p-e9f42525.entry.js +0 -1
@@ -0,0 +1,47 @@
|
|
1
|
+
import { EventEmitter } from '../../../../stencil-public-runtime';
|
2
|
+
import { SnkFilterItemConfig } from '../snk-filter-item';
|
3
|
+
import { EPresentationMode } from './enum/presentationMode';
|
4
|
+
export declare class SnkFilterPeriod {
|
5
|
+
_element: HTMLElement;
|
6
|
+
_startDate: HTMLEzDateInputElement;
|
7
|
+
_endDate: HTMLEzDateInputElement;
|
8
|
+
_startDateLabel: string;
|
9
|
+
_endDateLabel: string;
|
10
|
+
/**
|
11
|
+
* Define as configurações do componente snk-filter-period
|
12
|
+
*/
|
13
|
+
config: SnkFilterItemConfig;
|
14
|
+
/**
|
15
|
+
* Usado pra flexibilizar os verbetes e mensagens de acordo com o SnkMessageBuilder.
|
16
|
+
*/
|
17
|
+
getMessage: (key: string, props?: any) => string;
|
18
|
+
/**
|
19
|
+
* Define o valor do componente snk-filter-period
|
20
|
+
*/
|
21
|
+
value: any;
|
22
|
+
/**
|
23
|
+
* Define a variação do componente
|
24
|
+
*/
|
25
|
+
presentationMode: EPresentationMode;
|
26
|
+
/**
|
27
|
+
* Emitido quando acontece a alteração de valor do componente snk-filter-period
|
28
|
+
*/
|
29
|
+
ezChangeListener(): void;
|
30
|
+
/**
|
31
|
+
* Emitido quando o valor do filtro é alterado.
|
32
|
+
*/
|
33
|
+
valueChanged: EventEmitter<any>;
|
34
|
+
componentDidLoad(): void;
|
35
|
+
getDate(prop: string): Date;
|
36
|
+
/**
|
37
|
+
* Exibe o componente snk-filter-period
|
38
|
+
*/
|
39
|
+
show(): Promise<void>;
|
40
|
+
buildLabel(): any;
|
41
|
+
componentWillLoad(): void;
|
42
|
+
render(): any;
|
43
|
+
}
|
44
|
+
export interface Period {
|
45
|
+
start?: Date;
|
46
|
+
end?: Date;
|
47
|
+
}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
import { IOption } from '@sankhyalabs/ezui/dist/types/components/ez-combo-box/ez-combo-box';
|
2
|
+
import { EventEmitter } from '../../../../stencil-public-runtime';
|
3
|
+
import { SnkFilterItemConfig } from '../snk-filter-item';
|
4
|
+
export declare class SnkFilterSearch {
|
5
|
+
_element: HTMLElement;
|
6
|
+
/**
|
7
|
+
* Define as configurações do componente snk-filter-search
|
8
|
+
*/
|
9
|
+
config: SnkFilterItemConfig;
|
10
|
+
/**
|
11
|
+
* Define o valor do componente snk-filter-search
|
12
|
+
*/
|
13
|
+
value: IOption;
|
14
|
+
_searchInput: HTMLEzSearchElement;
|
15
|
+
/**
|
16
|
+
* Emitido quando acontece a alteração de valor do componente snk-filter-search
|
17
|
+
*/
|
18
|
+
ezChangeListener(_evt: CustomEvent): void;
|
19
|
+
/**
|
20
|
+
* Emitido quando o valor do filtro é alterado.
|
21
|
+
*/
|
22
|
+
valueChanged: EventEmitter<any>;
|
23
|
+
componentDidLoad(): void;
|
24
|
+
doSearch(mode: string, argument: string): Promise<Array<IOption> | IOption>;
|
25
|
+
/**
|
26
|
+
* Exibe o componente snk-filter-search
|
27
|
+
*/
|
28
|
+
show(): Promise<void>;
|
29
|
+
render(): any;
|
30
|
+
}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { EventEmitter } from '../../../../stencil-public-runtime';
|
2
|
+
import { SnkFilterItemConfig } from '../snk-filter-item';
|
3
|
+
export declare class SnkFilterText {
|
4
|
+
_element: HTMLElement;
|
5
|
+
_textInputElement: HTMLEzTextInputElement;
|
6
|
+
/**
|
7
|
+
* Define as configurações do componente snk-filter-text.
|
8
|
+
*/
|
9
|
+
config: SnkFilterItemConfig;
|
10
|
+
/**
|
11
|
+
* Define o valor do componente snk-filter-text.
|
12
|
+
*/
|
13
|
+
value: string;
|
14
|
+
/**
|
15
|
+
* Emitido quando acontece a alteração de valor do componente snk-filter-text.
|
16
|
+
*/
|
17
|
+
ezChangeListener(evt: CustomEvent): void;
|
18
|
+
/**
|
19
|
+
* Emitido quando o valor do filtro é alterado.
|
20
|
+
*/
|
21
|
+
valueChanged: EventEmitter<any>;
|
22
|
+
componentDidLoad(): void;
|
23
|
+
render(): any;
|
24
|
+
}
|
@@ -0,0 +1,44 @@
|
|
1
|
+
import { EventEmitter } from '../../../stencil-public-runtime';
|
2
|
+
import { SnkFilterItemConfig } from './snk-filter-item';
|
3
|
+
import { FilterParameter } from './editors/snk-filter-personalized';
|
4
|
+
import { SnkApplication } from '../../snk-application/snk-application';
|
5
|
+
export declare class SnkFilterDetail {
|
6
|
+
_element: HTMLElement;
|
7
|
+
_editor: HTMLElement;
|
8
|
+
_applyButton: HTMLEzButtonElement;
|
9
|
+
_idContentEditor: string;
|
10
|
+
_application: SnkApplication;
|
11
|
+
/**
|
12
|
+
* Define as configurações do componente snk-filter-detail.
|
13
|
+
*/
|
14
|
+
config: SnkFilterItemConfig;
|
15
|
+
/**
|
16
|
+
* Usado pra flexibilizar os verbetes e mensagens de acordo com o SnkMessageBuilder.
|
17
|
+
*/
|
18
|
+
getMessage: (key: string, props?: any) => string;
|
19
|
+
/**
|
20
|
+
* Emitido quando há uma alteração nos filtros.
|
21
|
+
*/
|
22
|
+
filterChange: EventEmitter<SnkFilterItemConfig>;
|
23
|
+
/**
|
24
|
+
* Exibe o componente snk-filter-detail.
|
25
|
+
*/
|
26
|
+
show(): Promise<void>;
|
27
|
+
observeConfig(): void;
|
28
|
+
componentDidLoad(): void;
|
29
|
+
changeConfig(newConfig: SnkFilterItemConfig): void;
|
30
|
+
getContentEditor(): string;
|
31
|
+
removeItem(): void;
|
32
|
+
getPopUpHeaderButtons(): any;
|
33
|
+
buildIcon(title: string, iconName: string, action: Function): any;
|
34
|
+
buildIdButton(buttonElement: HTMLButtonElement, title: string): void;
|
35
|
+
getNormalizedValue(params: Array<FilterParameter>, value: Array<any>): any[];
|
36
|
+
apply(): void;
|
37
|
+
validateAllFilled(paramsCount: number, value: Array<any>): boolean;
|
38
|
+
clear(): void;
|
39
|
+
onKeyDonwListener(event: KeyboardEvent): void;
|
40
|
+
private buildRightSlot;
|
41
|
+
private removeValueFromConfig;
|
42
|
+
saveConfig(newConfig: any): void;
|
43
|
+
render(): any;
|
44
|
+
}
|
@@ -0,0 +1,74 @@
|
|
1
|
+
import { EventEmitter } from '../../../stencil-public-runtime';
|
2
|
+
export declare class SnkFilterList {
|
3
|
+
_element: HTMLElement;
|
4
|
+
_popoverContainer: HTMLElement;
|
5
|
+
_popover: HTMLElement;
|
6
|
+
_filterInput: HTMLEzFilterInputElement;
|
7
|
+
_floatingID: number;
|
8
|
+
_detailIsVisible: boolean;
|
9
|
+
_selectableItemsCount: number;
|
10
|
+
_preselection: number;
|
11
|
+
_filterArgument: string;
|
12
|
+
_showAll: boolean;
|
13
|
+
/**
|
14
|
+
* Define o label usado no ez-button do filtro.
|
15
|
+
*/
|
16
|
+
label: string;
|
17
|
+
/**
|
18
|
+
* Define o ícone usado no ez-button do filtro.
|
19
|
+
*/
|
20
|
+
iconName: string;
|
21
|
+
/**
|
22
|
+
* Guarda a lista de filtros.
|
23
|
+
*/
|
24
|
+
items: Array<ListItem>;
|
25
|
+
/**
|
26
|
+
* Usado pra flexibilizar os verbetes e mensagens de acordo com o SnkMessageBuilder.
|
27
|
+
*/
|
28
|
+
getMessage: (key: string, props?: any) => string;
|
29
|
+
/**
|
30
|
+
* Define o texto exibido quando a lista está vazia.
|
31
|
+
*/
|
32
|
+
emptyText: string;
|
33
|
+
/**
|
34
|
+
* Define o texto exibido no componente de busca.
|
35
|
+
*/
|
36
|
+
findFilterText: string;
|
37
|
+
/**
|
38
|
+
* Define a classe CSS a ser adicionada no botão (usado principalmente para sinalizar o filtro aplicado).
|
39
|
+
*/
|
40
|
+
buttonClass: string;
|
41
|
+
/**
|
42
|
+
* Disparado quando um item da lista é clicado.
|
43
|
+
*/
|
44
|
+
snkItemSelected: EventEmitter<string>;
|
45
|
+
private showDetail;
|
46
|
+
innerClickCheck: (_floatingContainer: HTMLElement, node: HTMLElement) => boolean;
|
47
|
+
/**
|
48
|
+
* Oculta os detalhes do componente snk-filter-list.
|
49
|
+
*/
|
50
|
+
hideDetail(): Promise<void>;
|
51
|
+
private onListCloseCallback;
|
52
|
+
private buttonClick;
|
53
|
+
componentDidLoad(): void;
|
54
|
+
componentDidRender(): void;
|
55
|
+
buildIdElement(buttonElement: HTMLButtonElement, name: string): void;
|
56
|
+
buildItemElement(item: InternalListItem): HTMLElement;
|
57
|
+
itemSelected(itemName: string): void;
|
58
|
+
getFilterItems(): any;
|
59
|
+
getFooterItems(): ListItem[];
|
60
|
+
keyDownHandler(event: KeyboardEvent): void;
|
61
|
+
changePreselection(newSelection: number): void;
|
62
|
+
render(): any;
|
63
|
+
}
|
64
|
+
export interface ListItem {
|
65
|
+
label: string;
|
66
|
+
name: string;
|
67
|
+
kind: string;
|
68
|
+
iconName?: string;
|
69
|
+
}
|
70
|
+
interface InternalListItem extends ListItem {
|
71
|
+
iconClass?: string;
|
72
|
+
labelClass?: string;
|
73
|
+
}
|
74
|
+
export {};
|
@@ -0,0 +1,97 @@
|
|
1
|
+
import { EventEmitter } from '../../stencil-public-runtime';
|
2
|
+
import { DataUnit } from '@sankhyalabs/core';
|
3
|
+
import { IGridConfig, IStatusResolver, StatusResolverFunction } from '@sankhyalabs/ezui/dist/types/components/ez-grid/controller/EzGridController';
|
4
|
+
import { DataState } from '../snk-data-unit/snk-data-unit';
|
5
|
+
import { Action, TaskbarManager } from '../snk-taskbar/snk-taskbar';
|
6
|
+
import { SnkApplication } from '../snk-application/snk-application';
|
7
|
+
import { PresentationMode } from '../../lib/@types';
|
8
|
+
import TaskbarProcessor from '../snk-taskbar/processor/taskbar-processor';
|
9
|
+
import { SnkMessageBuilder } from '../../lib/message/SnkMessageBuilder';
|
10
|
+
export declare class SnkGrid {
|
11
|
+
_grid: HTMLEzGridElement;
|
12
|
+
_snkDataUnit: HTMLSnkDataUnitElement;
|
13
|
+
_snkGridConfig: HTMLSnkGridConfigElement;
|
14
|
+
_snkEmailSender: HTMLSnkExporterEmailSenderElement;
|
15
|
+
_snkFilterBar: HTMLSnkFilterBarElement;
|
16
|
+
_dataUnitLoadLockerResolver?: Function;
|
17
|
+
_topTaskbarProcessor: TaskbarProcessor;
|
18
|
+
_headerTaskbarProcessor: TaskbarProcessor;
|
19
|
+
_element: HTMLElement;
|
20
|
+
_dataUnit: DataUnit;
|
21
|
+
_dataState: DataState;
|
22
|
+
_gridConfig: IGridConfig;
|
23
|
+
_popUpGridConfig: boolean;
|
24
|
+
_application: SnkApplication;
|
25
|
+
/**
|
26
|
+
* Nome usado para salvar/recuperar a configuração.
|
27
|
+
*/
|
28
|
+
configName: string;
|
29
|
+
/**
|
30
|
+
* Lista de ações que devem ser usadas no botão "Mais opções" do componente snk-taskbar.
|
31
|
+
*/
|
32
|
+
actionsList: Array<Action>;
|
33
|
+
/**
|
34
|
+
* Determina se a grade está vinculada a um detalhe.
|
35
|
+
*/
|
36
|
+
isDetail: boolean;
|
37
|
+
/**
|
38
|
+
* Gerenciador das barras de tarefas. É possível determinar botões específicos
|
39
|
+
* ou mesmo gerenciar o estado dos botões.
|
40
|
+
*/
|
41
|
+
taskbarManager: TaskbarManager;
|
42
|
+
/**
|
43
|
+
* Configuração do valor da coluna de status.
|
44
|
+
* Exemplo: '{ "RECDESP": { "-1" : "#BD0025", "1" : "#157A00" } }'
|
45
|
+
*/
|
46
|
+
statusResolver: IStatusResolver | StatusResolverFunction;
|
47
|
+
/**
|
48
|
+
* Determina se pode haver mais de uma linha selecionada.
|
49
|
+
*/
|
50
|
+
multipleSelection: boolean;
|
51
|
+
/**
|
52
|
+
* Altera o modo de apresentação dos botões do snk-taskbar.
|
53
|
+
*/
|
54
|
+
presentationMode: PresentationMode;
|
55
|
+
/**
|
56
|
+
* Responsável por flexibilizar e padronizar o uso de mensagens nos blocos de construção.
|
57
|
+
*/
|
58
|
+
messagesBuilder: SnkMessageBuilder;
|
59
|
+
/**
|
60
|
+
* Emitido sempre que houver click de botão ou ação.
|
61
|
+
*/
|
62
|
+
actionClick: EventEmitter<string>;
|
63
|
+
/**
|
64
|
+
* Emitido sempre que houver duplo click na grade.
|
65
|
+
*/
|
66
|
+
gridDoubleClick: EventEmitter<void>;
|
67
|
+
/**
|
68
|
+
* Exibe a janela de configurações da grade.
|
69
|
+
*/
|
70
|
+
showConfig(): Promise<void>;
|
71
|
+
/**
|
72
|
+
* Fecha a janela de configurações da grade.
|
73
|
+
*/
|
74
|
+
hideConfig(): Promise<void>;
|
75
|
+
/**
|
76
|
+
* Atribui o valor da configuração da grade.
|
77
|
+
*/
|
78
|
+
setConfig(config: IGridConfig): Promise<void>;
|
79
|
+
private openGridConfig;
|
80
|
+
private closeGridConfig;
|
81
|
+
private setGridConfig;
|
82
|
+
private loadConfig;
|
83
|
+
private gridConfigChangeHandler;
|
84
|
+
private modalConfigChangeHandler;
|
85
|
+
private buildColumnsMetadata;
|
86
|
+
private getPaginationInfo;
|
87
|
+
private getExporterOffset;
|
88
|
+
private dataExporterProviderStore;
|
89
|
+
private addElementID;
|
90
|
+
componentWillLoad(): void;
|
91
|
+
getHeaderDisabledButtons(): Array<string>;
|
92
|
+
componentWillRender(): void;
|
93
|
+
getTopTaskBarId(sufix: string): string;
|
94
|
+
private getPrimaryButton;
|
95
|
+
private onEzGridReady;
|
96
|
+
render(): any;
|
97
|
+
}
|
@@ -0,0 +1,68 @@
|
|
1
|
+
import { DataUnit, Record, UnitMetadata } from '@sankhyalabs/core';
|
2
|
+
import { EventEmitter } from '../../stencil-public-runtime';
|
3
|
+
import { VIEW_MODE, SIMPLE_CRUD_MODE } from '../../lib/utils/constants';
|
4
|
+
import { DataState } from '../snk-data-unit/snk-data-unit';
|
5
|
+
import TaskbarProcessor from '../snk-taskbar/processor/taskbar-processor';
|
6
|
+
import { TaskbarManager } from '../snk-taskbar/snk-taskbar';
|
7
|
+
import InMemoryLoader from '../../lib/dataUnit/InMemoryLoader';
|
8
|
+
import { IFormConfig } from '@sankhyalabs/ezui/dist/types/utils/form/interfaces';
|
9
|
+
import { SnkMessageBuilder } from '../../lib/message/SnkMessageBuilder';
|
10
|
+
import { IGridConfig } from '@sankhyalabs/ezui/dist/types/components/ez-grid/controller/EzGridController';
|
11
|
+
export declare class SnkSimpleCrud {
|
12
|
+
private readonly REGULAR_DEFAULT_BTNS;
|
13
|
+
private readonly REGULAR_SELECTED_BTNS;
|
14
|
+
_viewStack: HTMLEzViewStackElement;
|
15
|
+
_snkGrid: HTMLSnkGridElement;
|
16
|
+
_inMemoryLoader: InMemoryLoader;
|
17
|
+
_metadata: UnitMetadata;
|
18
|
+
private _element;
|
19
|
+
_currentViewMode: VIEW_MODE;
|
20
|
+
_config: {};
|
21
|
+
dataState: DataState;
|
22
|
+
dataUnit: DataUnit;
|
23
|
+
mode: SIMPLE_CRUD_MODE;
|
24
|
+
gridConfig: IGridConfig;
|
25
|
+
formConfig: IFormConfig;
|
26
|
+
useCancelConfirm: boolean;
|
27
|
+
/**
|
28
|
+
* Emitido quando há qualquer mudança de estado no DataUnit.
|
29
|
+
*/
|
30
|
+
dataStateChange: EventEmitter<DataState>;
|
31
|
+
/**
|
32
|
+
* Emitido quando o DataUnit está pronto.
|
33
|
+
*/
|
34
|
+
dataUnitReady: EventEmitter<DataUnit>;
|
35
|
+
/**
|
36
|
+
* Emitido sempre que houver click de botão ou ação.
|
37
|
+
*/
|
38
|
+
actionClick: EventEmitter<string>;
|
39
|
+
/**
|
40
|
+
* Gerenciador das barras de tarefas. É possível determinar botões específicos
|
41
|
+
* ou mesmo gerenciar o estado dos botões.
|
42
|
+
*/
|
43
|
+
taskbarManager: TaskbarManager;
|
44
|
+
/**
|
45
|
+
* Responsável por flexibilizar e padronizar o uso de mensagens nos blocos de construção.
|
46
|
+
*/
|
47
|
+
messagesBuilder: SnkMessageBuilder;
|
48
|
+
_taskbarProcessor: TaskbarProcessor;
|
49
|
+
resolveInMemoryBtns(taskbarButtons: Array<string>): Array<string>;
|
50
|
+
/**
|
51
|
+
* Usado para alternar a visão entre GRID e FORM externamente.
|
52
|
+
*/
|
53
|
+
goToView(view: VIEW_MODE): Promise<void>;
|
54
|
+
actionClickListener(evt: CustomEvent): void;
|
55
|
+
onModeChange(): void;
|
56
|
+
observeDataState(newValue: DataState, oldValue: DataState): void;
|
57
|
+
componentWillRender(): void;
|
58
|
+
componentWillLoad(): void;
|
59
|
+
getTaskBarId(): string;
|
60
|
+
initInMemoryDataUnit(): void;
|
61
|
+
setMetadata(metadata: UnitMetadata): Promise<void>;
|
62
|
+
setRecords(records: Array<Record>): Promise<void>;
|
63
|
+
getRecords(): Promise<Array<Record>>;
|
64
|
+
processMetadata(): void;
|
65
|
+
onDataStateChange(evt: any): void;
|
66
|
+
getTaskBarDisabledButtons(): Array<string>;
|
67
|
+
render(): any;
|
68
|
+
}
|
@@ -2321,6 +2321,10 @@ declare namespace LocalJSX {
|
|
2321
2321
|
*/
|
2322
2322
|
"messagesBuilder"?: SnkMessageBuilder;
|
2323
2323
|
"mode"?: SIMPLE_CRUD_MODE;
|
2324
|
+
/**
|
2325
|
+
* Emitido sempre que houver click de botão ou ação.
|
2326
|
+
*/
|
2327
|
+
"onActionClick"?: (event: SnkSimpleCrudCustomEvent<string>) => void;
|
2324
2328
|
/**
|
2325
2329
|
* Emitido quando há qualquer mudança de estado no DataUnit.
|
2326
2330
|
*/
|
package/package.json
CHANGED
@@ -1 +0,0 @@
|
|
1
|
-
import{r as t,c as s,h as e,g as i}from"./p-b9667fbe.js";import{ElementIDUtils as r,ApplicationContext as a,DataUnit as n,StringUtils as o,SortMode as l,DataType as h,ChangeOperation as d,ObjectUtils as m,UserInterface as c}from"@sankhyalabs/core";import{c as u,S as p}from"./p-17375123.js";import{T as b}from"./p-d410f45a.js";import"./p-41d92871.js";import"./p-11028eba.js";import{P as g}from"./p-4c2015a9.js";import{T as k}from"./p-39082fc3.js";import"./p-6a02e236.js";import"./p-112455b1.js";const f=class{constructor(e){t(this,e),this.clickBreadcrumbItem=s(this,"clickBreadcrumbItem",3),this.exit=s(this,"exit",3),this.label=void 0,this.breadcrumbItens=void 0,this.messagesBuilder=void 0}getMessage(t,s){var e;return this.messagesBuilder?this.messagesBuilder.getMessage(t,s):(null===(e=this._application)||void 0===e?void 0:e.messagesBuilder)?this._application.messagesBuilder.getMessage(t,s):void 0}componentDidLoad(){this._element&&(r.addIDInfo(this._element),this._application=a.getContextValue("__SNK__APPLICATION__"))}render(){return e("div",{class:"simple-bar__container ez-margin-vertical--medium ez-padding--extra-small"},e("div",{class:"simple-bar__left-slot"},e("ez-button",{class:"ez-padding-right--medium",title:this.getMessage("snkSimpleBar.backTitle"),mode:"icon",iconName:"arrow_back",size:"medium",onClick:()=>this.exit.emit()}),e("div",{class:"simple-bar__column"},e("h1",{class:"ez-title ez-title--primary ez-title--extra-large"},this.label),e("ez-breadcrumb",{items:this.breadcrumbItens,onSelectedItem:({detail:t})=>this.clickBreadcrumbItem.emit(t)}))),e("div",{class:"simple-bar__right-slot"},e("slot",{name:"rightSlot"})))}get _element(){return i(this)}};f.style=".sc-snk-simple-bar-h{display:flex;height:100%;width:100%}.simple-bar__container.sc-snk-simple-bar{flex:1;display:flex;align-items:stretch;gap:var(--space--small)}.simple-bar__left-slot.sc-snk-simple-bar{min-width:280px;flex:1;display:flex;align-items:center}.simple-bar__right-slot.sc-snk-simple-bar{flex:1;display:flex;align-items:center;justify-content:flex-end}.simple-bar__column.sc-snk-simple-bar{flex:1;display:flex;flex-direction:column}";class v{constructor(t,s){this.records=s||[],this.metadata=t,this._dataUnit=new n("InMemoryDataUnit"),this._dataUnit.metadataLoader=()=>this.metadaLoader(),this._dataUnit.dataLoader=(t,s)=>this.dataLoader(t,s),this._dataUnit.saveLoader=(t,s)=>this.saveLoader(t,s),this._dataUnit.removeLoader=(t,s)=>this.removeLoader(t,s),this.dataUnit.loadMetadata().then((()=>this.dataUnit.loadData()))}get dataUnit(){return this._dataUnit}get records(){return this._records}set records(t){this._records=null==t?void 0:t.map((t=>(t.__record__id__||(t.__record__id__=this.generateUniqueId()),t))),this._dataUnit&&(this._dataUnit.records=[...this._records])}get metadata(){return this._metadata}set metadata(t){this._metadata=t,this._dataUnit&&(this._dataUnit.metadata=this._metadata)}generateUniqueId(){return o.generateUUID()}metadaLoader(){return Promise.resolve(this._metadata)}dataLoader(t,s){let e=[...this._records];return s.sort&&s.sort.forEach((t=>{e=e.sort(((s,e)=>{const i=s[t.field],r=e[t.field];return this.getSortFn(t.dataType)(i,r)*(t.mode==l.ASC?1:-1)}))})),Promise.resolve({records:e})}getSortFn(t){switch(t){case h.NUMBER:return this.sortNumber;case h.DATE:return this.sortDate;case h.OBJECT:return this.sortObject;default:return o.compare}}sortObject(t,s){return o.compare(t.label,s.label)}sortNumber(t,s){return t-s}sortDate(t,s){let e=t.getTime(),i=s.getTime();return e===i?0:e<i?-1:1}saveLoader(t,s){return new Promise((t=>{let e=[];s.forEach((t=>{let{record:s,updatingFields:i,operation:r}=t,a=!1;r!==d.INSERT&&r!==d.COPY||(s.__old__id__=s.__record__id__,s.__record__id__=this.generateUniqueId(),a=!0);const n=Object.assign(Object.assign({},s),i);if(a)this.records.push(n);else{const t=this.records.findIndex((t=>t.__record__id__==n.__record__id__));this.records[t]=n}e.push(n)})),t(e)}))}removeLoader(t,s){return new Promise((t=>{this._records=this._records.filter((t=>!s.includes(t.__record__id__))),t(s)}))}}const _=class{constructor(e){t(this,e),this.dataStateChange=s(this,"dataStateChange",3),this.dataUnitReady=s(this,"dataUnitReady",3),this.REGULAR_DEFAULT_BTNS=["INSERT","REFRESH","PREVIOUS","NEXT","DIVIDER"],this.REGULAR_SELECTED_BTNS=["INSERT","REFRESH","PREVIOUS","NEXT","DIVIDER","CLONE","REMOVE","DIVIDER"],this._taskbarProcessor=new k({"snkSimpleCrudTaskbar.form_regular":this.resolveInMemoryBtns(this.REGULAR_DEFAULT_BTNS).concat(b.GRID_MODE),"snkSimpleCrudTaskbar.grid_regular":this.resolveInMemoryBtns(this.REGULAR_DEFAULT_BTNS).concat(b.FORM_MODE),"snkSimpleCrudTaskbar.form_selected":this.resolveInMemoryBtns(this.REGULAR_SELECTED_BTNS).concat(b.GRID_MODE),"snkSimpleCrudTaskbar.grid_selected":this.resolveInMemoryBtns(this.REGULAR_SELECTED_BTNS).concat(b.FORM_MODE),"snkSimpleCrudTaskbar.finish_edition":["CANCEL","SAVE"]}),this._currentViewMode=u.GRID,this._config=void 0,this.dataState=void 0,this.dataUnit=void 0,this.mode=p.SERVER,this.gridConfig=void 0,this.formConfig=void 0,this.useCancelConfirm=!0,this.taskbarManager=void 0,this.messagesBuilder=void 0}resolveInMemoryBtns(t){const s=[...t];return this.mode===p.IN_MEMORY&&s.splice(1,1),s}async goToView(t){this._currentViewMode=t,this._viewStack&&this._viewStack.show(t)}actionClickListener(t){const s=t.detail;s===b.GRID_MODE?this.goToView(u.GRID):s===b.FORM_MODE&&this.goToView(u.FORM),t.stopPropagation()}onModeChange(){this.mode==p.IN_MEMORY&&this.initInMemoryDataUnit()}observeDataState(t,s){m.objectToString(s)!=m.objectToString(t)&&this.dataStateChange.emit(t)}componentWillRender(){this._taskbarProcessor.process(this.getTaskBarId(),this.taskbarManager,this.dataState,this.getTaskBarDisabledButtons())}componentWillLoad(){this.processMetadata(),this.onModeChange()}getTaskBarId(){var t,s,e;return(null===(t=this.dataState)||void 0===t?void 0:t.isDirty)?"snkSimpleCrudTaskbar.finish_edition":(null===(s=this.dataState)||void 0===s?void 0:s.selectionInfo)&&!this.dataState.selectionInfo.isAllRecords()&&(null===(e=this.dataState.selectionInfo.records)||void 0===e?void 0:e.length)>0?this._currentViewMode===u.GRID?"snkSimpleCrudTaskbar.grid_selected":"snkSimpleCrudTaskbar.form_selected":this._currentViewMode===u.GRID?"snkSimpleCrudTaskbar.grid_regular":"snkSimpleCrudTaskbar.form_regular"}initInMemoryDataUnit(){this._inMemoryLoader=new v(this._metadata),this.dataUnit=this._inMemoryLoader.dataUnit,this.dataUnitReady.emit(this.dataUnit)}setMetadata(t){return this._inMemoryLoader?this._inMemoryLoader.metadata=t:this.dataUnit&&(this.dataUnit.metadata=t),Promise.resolve()}setRecords(t){return this._inMemoryLoader?this._inMemoryLoader.records=t:this.dataUnit&&(this.dataUnit.records=t),Promise.resolve()}getRecords(){return Promise.resolve(this.dataUnit.records)}processMetadata(){const t=this._element.querySelectorAll("snk-field-metadata"),s=[],e={fields:[],emptyConfig:!1};t.forEach((t=>{const i={name:t.getAttribute("name")||t.getAttribute("label"),label:t.getAttribute("label"),dataType:h[t.getAttribute("dataType")]||h.TEXT,userInterface:c[t.getAttribute("userInterface")]||c.SHORTTEXT,readOnly:"true"==t.getAttribute("readOnly"),required:"true"==t.getAttribute("required"),tab:t.getAttribute("tab")||void 0,visible:"false"!=t.getAttribute("visible")};e.fields.push({name:i.name,tab:i.tab,visible:i.visible}),s.push(i)})),s.length>0&&(this.formConfig||(this.formConfig=e),this._metadata={name:"SimpleCrud",label:"SimpleCrud",fields:s})}onDataStateChange(t){this.dataState=Object.assign({},t.detail)}getTaskBarDisabledButtons(){var t,s;const e=[];return(null===(t=this.dataState)||void 0===t?void 0:t.hasNext)||e.push(b.NEXT),(null===(s=this.dataState)||void 0===s?void 0:s.hasPrevious)||e.push(b.PREVIOUS),e}render(){var t;return e("snk-data-unit",{class:"simple-crud__container",dataUnit:this.dataUnit,useCancelConfirm:this.useCancelConfirm,onDataStateChange:t=>this.onDataStateChange(t),onInsertionMode:()=>this.goToView(u.FORM),onDataUnitReady:t=>this.dataUnitReady.emit(t.detail),onMessagesBuilderUpdated:t=>this.messagesBuilder=t.detail},e("header",null,e("slot",{name:"snkSimpleCrudHeader"})),e("section",{class:"ez-flex ez-box ez-box--shadow"},e("snk-taskbar",{class:"simple-crud__taskbar ez-box ez-box--shadow ez-padding--medium",dataUnit:this.dataUnit,primaryButton:(null===(t=this.dataState)||void 0===t?void 0:t.isDirty)?"SAVE":"INSERT","data-element-id":"grid_left",messagesBuilder:this.messagesBuilder,buttons:this._taskbarProcessor.buttons,disabledButtons:this._taskbarProcessor.disabledButtons,customButtons:this._taskbarProcessor.customButtons,slot:"leftButtons",presentationMode:g.SECONDARY}),e("ez-view-stack",{class:"ez-flex ez-flex--column",ref:t=>this._viewStack=t,"data-element-id":"simple-crud"},e("stack-item",null,e("ez-grid",{dataUnit:this.dataUnit,onEzDoubleClick:()=>this.goToView(u.FORM),config:this.gridConfig,"no-header":!0},e("div",{slot:"footer"},e("slot",{name:"snkSimpleCrudFooter"})))),e("stack-item",null,e("ez-form",{dataUnit:this.dataUnit,config:this.formConfig})))))}get _element(){return i(this)}static get watchers(){return{mode:["onModeChange"],dataState:["observeDataState"]}}};_.style=".sc-snk-simple-crud-h{display:flex;height:100%;width:100%}.simple-crud__container.sc-snk-simple-crud{display:grid;grid-template-rows:auto;row-gap:12px;height:100%;width:100%}.simple-crud__taskbar.sc-snk-simple-crud{z-index:var(--more-visible, 2);margin-bottom:var(--space--medium)}ez-grid.sc-snk-simple-crud{--ez-grid__container--shadow:none;min-height:300px}ez-form.sc-snk-simple-crud{min-height:300px}";export{f as snk_simple_bar,_ as snk_simple_crud}
|
@@ -1 +0,0 @@
|
|
1
|
-
import{r as i,c as t,h as l,H as s}from"./p-b9667fbe.js";import{ApplicationContext as o}from"@sankhyalabs/core";const n=class{constructor(l){i(this,l),this.valueChanged=t(this,"valueChanged",7),this.saveConfig=t(this,"saveConfig",7),this._searchValue=void 0,this._ezListSource=[],this.config=void 0,this.rightListSlotBuilder=void 0,this.maxHeightList=""}async reloadList(){this.loadListSource(),this.saveConfig.emit(this.config)}observeConfig(){var i,t;null===(t=null===(i=this._searchElement)||void 0===i?void 0:i.clearValue)||void 0===t||t.call(i)}ezListChangeListener(i){var t,l,s,o;null===(s=null!==(t=this.config.value)&&void 0!==t?t:null===(l=this.config.value)||void 0===l?void 0:l.elements)||void 0===s||s.forEach((t=>{var l,s;t&&t.id===(null===(l=i.detail)||void 0===l?void 0:l.id)&&(t.check=null===(s=i.detail)||void 0===s?void 0:s.check)})),this.saveConfig.emit(this.config),this.valueChanged.emit(null===(o=this.config)||void 0===o?void 0:o.value)}loadListSource(){var i,t,l,s,o,n,e,v;this._ezListSource=[],null===(v=null!==(o=null!==(t=null===(i=this.config)||void 0===i?void 0:i.value)&&void 0!==t?t:null===(s=null===(l=this.config)||void 0===l?void 0:l.value)||void 0===s?void 0:s.elements)&&void 0!==o?o:null===(e=null===(n=this.config)||void 0===n?void 0:n.value)||void 0===e?void 0:e.members)||void 0===v||v.forEach((i=>{i&&this._ezListSource.push({label:`${i.id} - ${i.label}`,check:i.check,id:i.id})}))}componentDidLoad(){var i,t,l,s,n,e,v,d,a,h,r,u;let c=null!==(e=null!==(l=null===(t=null===(i=this.config)||void 0===i?void 0:i.value)||void 0===t?void 0:t.elements)&&void 0!==l?l:null===(n=null===(s=this.config)||void 0===s?void 0:s.value)||void 0===n?void 0:n.members)&&void 0!==e?e:null===(v=this.config)||void 0===v?void 0:v.value,f=[];Array.isArray(c)?f=c:f.push(null===(a=null===(d=this.config)||void 0===d?void 0:d.value)||void 0===a?void 0:a.members),this.config.value=f,this._entityName=null===(u=null===(r=null===(h=this.config)||void 0===h?void 0:h.props)||void 0===r?void 0:r.searchContext)||void 0===u?void 0:u.entity,this._application=o.getContextValue("__SNK__APPLICATION__"),this.loadListSource()}optionLoader({mode:i,argument:t}){var l,s,o,n;if(void 0===this._application)return;const e=null===(o=null===(s=null===(l=this.config)||void 0===l?void 0:l.props)||void 0===s?void 0:s.searchContext)||void 0===o?void 0:o.searchOptions,v={entityDescription:null===(n=this.config)||void 0===n?void 0:n.label,entity:this._entityName,searchOptions:e};return this._application.executePreparedSearch(i,t,v)}onEzSearchChange(i){var t,l,s,o,n,e,v,d;null!=i.detail&&void 0===(null===(n=null!==(s=null!==(t=this.config.value)&&void 0!==t?t:null===(l=this.config.value)||void 0===l?void 0:l.elements)&&void 0!==s?s:null===(o=this.config.value)||void 0===o?void 0:o.members)||void 0===n?void 0:n.find((t=>{var l;return(null==t?void 0:t.id)==(null===(l=i.detail)||void 0===l?void 0:l.value)})))&&(this.config=Object.assign(Object.assign({},this.config),{value:[...null!==(v=null===(e=this.config)||void 0===e?void 0:e.value)&&void 0!==v?v:[],{id:i.detail.value,check:!0,label:i.detail.label}]}),this.loadListSource(),this.saveConfig.emit(this.config),this.valueChanged.emit(null===(d=this.config)||void 0===d?void 0:d.value))}getMessage(i,t){var l;return null===(l=this._application)||void 0===l?void 0:l.messagesBuilder.getMessage(i,t)}render(){var i;return l(s,null,l("ez-search",{ref:i=>this._searchElement=i,optionLoader:i=>this.optionLoader(i),value:this._searchValue,label:null===(i=this.config)||void 0===i?void 0:i.label,onEzChange:i=>this.onEzSearchChange(i)}),l("label",{class:"label"},this.getMessage("snkEntityList.selected")),l("div",{style:this.maxHeightList?{"max-height":this.maxHeightList}:{},class:{"snk-entity-list--overflow":!!this.maxHeightList}},l("ez-list",{ref:i=>this._ezList=i,id:"snkEntityList",listMode:"check",dataSource:this._ezListSource,hoverFeedback:!0,itemSlotBuilder:this.rightListSlotBuilder,onEzCheckChange:i=>this.ezListChangeListener(i)})))}static get watchers(){return{config:["observeConfig"]}}};n.style=".sc-snk-entity-list-h{--snk-entity-list--label--font-size:var(--text--medium, 14px);--snk-entity-list--label--font-family:var(--font-pattern, Arial);--snk-entity-list--label--color:var(--title--primary, #000);--snk-entity-list--label--disabled--color:var(--text--disable, #AFB6C0)}.label.sc-snk-entity-list{flex-shrink:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--snk-entity-list--label--color);font-size:var(--snk-entity-list--label--font-size);font-family:var(--snk-entity-list--label--font-family);cursor:default;padding-left:var(--space--small);padding-bottom:var(--space--extra-small)}.snk-entity-list--overflow.sc-snk-entity-list{overflow:auto}.snk-entity-list--overflow.sc-snk-entity-list::-webkit-scrollbar{width:var(--space--small);min-width:var(--space--small);max-width:var(--space--small)}";export{n as snk_entity_list}
|
@@ -1 +0,0 @@
|
|
1
|
-
import{r as t,h as e,H as i,g as s}from"./p-b9667fbe.js";import{ObjectUtils as o,ApplicationContext as r,ElementIDUtils as n}from"@sankhyalabs/core";import{ApplicationUtils as l,DialogType as a}from"@sankhyalabs/ezui/dist/collection/utils";import{D as d,a as h,b as c}from"./p-4c2015a9.js";import{d as p,W as u,R as m}from"./p-17375123.js";import{D as v}from"./p-41d92871.js";import{S as x}from"./p-3e17b147.js";import"./p-112455b1.js";import"./p-c74fca58.js";class f{constructor(t,e){this._selectedNumber=0,this._getMessage=t,this._selectedNumber=e}setExportOption(t,e){const i=this.getExportGroupName();t===d.EXPORT_TO_PDF&&e.push(this.getExportToPDF(i)),t===d.EXPORT_TO_XLS&&e.push(this.getExportToXLS(i)),this.setExportCurrentPage(t,e),this.setExportByEmail(t,e)}setExportCurrentPage(t,e){var i;const s=[d.EXPORT_PAGE_TO_PDF,d.EXPORT_PAGE_TO_XLS];if(t===d.EXPORT_CURRENT_PAGE&&e.push(this.getCurrentPage()),s.includes(t)){let s=e.find((t=>t.id===d.EXPORT_CURRENT_PAGE));null==s&&(e.push(this.getCurrentPage()),s=e.find((t=>t.id===d.EXPORT_CURRENT_PAGE))),(null===(i=null==s?void 0:s.children)||void 0===i?void 0:i.length)||(s.children=[]),t===d.EXPORT_PAGE_TO_PDF&&s.children.push(this.getExportPageToPDF()),t===d.EXPORT_PAGE_TO_XLS&&s.children.push(this.getExportPageToXLS())}}setExportByEmail(t,e){t===d.EXPORT_BY_EMAIL&&e.push(this.getExportByEmail())}getExportToPDF(t){return{id:d.EXPORT_TO_PDF,label:"PDF (.pdf)",group:t}}getExportToXLS(t){return{id:d.EXPORT_TO_XLS,label:`${this._getMessage("snkDataExporter.label.spreadsheet")} (.xlsx)`,group:t}}getCurrentPage(){return{id:d.EXPORT_CURRENT_PAGE,label:this._getMessage("snkDataExporter.label.currentPage"),group:this._getMessage("snkDataExporter.group.custom")}}getExportPageToPDF(){return{id:d.EXPORT_PAGE_TO_PDF,label:"PDF (.pdf)"}}getExportPageToXLS(){return{id:d.EXPORT_PAGE_TO_XLS,label:`${this._getMessage("snkDataExporter.label.spreadsheet")} (.xlsx)`}}getExportByEmail(){return{id:d.EXPORT_BY_EMAIL,label:`${this._getMessage("snkDataExporter.label.sendByEmail")}...`}}getExportGroupName(){return 1===this._selectedNumber?this._getMessage("snkDataExporter.group.export.selectedLine"):this._selectedNumber>1?this._getMessage("snkDataExporter.group.export.multiSelected").replace("{0}",this._selectedNumber.toString()):this._getMessage("snkDataExporter.group.export.default")}}function E(t){var{methodName:e}=t,i=function(t,e){var i={};for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&e.indexOf(s)<0&&(i[s]=t[s]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(s=Object.getOwnPropertySymbols(t);o<s.length;o++)e.indexOf(s[o])<0&&Object.prototype.propertyIsEnumerable.call(t,s[o])&&(i[s[o]]=t[s[o]])}return i}(t,["methodName"]);const s=`mgefin-bff@DataExporterSPBean.${e}`,r={serviceName:s,requestBody:i};return new Promise(((t,e)=>{v.get().callServiceBroker(s,o.objectToString(r)).then((e=>t(function(t){var e;const i=null===(e=null==t?void 0:t.json)||void 0===e?void 0:e.$;if(null!=i)return o.stringToObject(i)}(e)))).catch((t=>e(t)))}))}const b=5e3,k=class{constructor(e){t(this,e),this._selectedNumber=0,this._customPrefix="$custom$",this._items=[],this._showDropdown=!1,this._releasedToExport=[d.EXPORT_TO_PDF,d.EXPORT_TO_XLS,d.EXPORT_BY_EMAIL,d.EXPORT_PDF_TO_EMAIL,d.EXPORT_XLS_TO_EMAIL,d.EXPORT_PAGE_TO_PDF,d.EXPORT_PAGE_TO_XLS],this.provider=null,this.messagesBuilder=void 0}async exportByEmail(){const t=this._selectedNumber;this._snkEmailSender.open({type:t>0?"selection":"all",selectedRows:t,email:{attachments:[{name:this._appLabel}]},resolver:({type:t,format:e,email:{to:i,subject:s,message:o}})=>{var r;const n=null!==(r=h[null==e?void 0:e.toUpperCase()])&&void 0!==r?r:h.PDF;this.resolveExporter({type:t,methodName:n,to:i,subject:s,message:o,fileName:this._appLabel,titleGrid:this._appLabel},(()=>{this._snkEmailSender.close(),l.info(this.getMessage("snkDataExporter.message.emailSuccess"),{iconName:"check"})}))}})}getMessage(t,e){if(null==this.messagesBuilder){const t=x.getNearestInstance(this._element);t&&(this.messagesBuilder=t.messagesBuilder)}return this.messagesBuilder.getMessage(t,e)}positionDropdown(){var t;const e=null===(t=this._ezButton)||void 0===t?void 0:t.getBoundingClientRect();null!=e&&null!=this._dropdownParent&&(this._dropdownParent.style.top=e.y+e.height+5+"px",this._dropdownParent.style.left=e.x+"px")}closeDropdown(t){const e=null==t?void 0:t.target;null!=e&&(e.closest(".snk-data-exporter")||(this._showDropdown=!1))}setEvents(){document.removeEventListener("click",this.closeDropdown.bind(this)),document.addEventListener("click",this.closeDropdown.bind(this)),document.removeEventListener("scroll",this.positionDropdown.bind(this)),document.addEventListener("scroll",this.positionDropdown.bind(this))}controlDropdown(){this._showDropdown=!this._showDropdown}resolveExporter(t,e){if(null==this.provider||null==t||null==e)return;const i=this.provider.getFilters(),s=this.provider.getColumnsMetadata(),o=this.provider.getOrders(),r=this.provider.getResourceURI(),n=this.provider.getSelectedIDs(),a=t.exportOption,h=[d.EXPORT_PAGE_TO_PDF,d.EXPORT_PAGE_TO_XLS];delete t.exportOption;let c=Object.assign({filters:i,columns:s,sort:o,resourceURI:r,selectedIDs:n.slice(0,b)},t);if(h.includes(a)||"page"==t.type){const t=this.provider.getOffset(),e=this.provider.getLimit();c=Object.assign(Object.assign({},c),{offset:t,limit:e,selectedIDs:[]})}else"all"==t.type&&(c=Object.assign(Object.assign({},c),{offset:0,limit:b,selectedIDs:[]}));E(c).then((t=>e(t))).catch((t=>l.error(this.getMessage("snkDataExporter.message.exportError"),t?t.statusMessage:this.getMessage("snkDataExporter.message.exportError"))))}getOptionKey(t){return Object.keys(d).find((e=>d[e]===t))}dispatchExporter(t){var e;const i=this.getOptionKey(t),s=null!==(e=c[i])&&void 0!==e?e:c.EXPORT_TO_PDF,o=c[i]===c.EXPORT_TO_XLS;this.resolveExporter({methodName:d[`EXPORT_TO_${s}`],fileName:this._appLabel,titleGrid:this._appLabel,exportOption:t,limit:b},(t=>{!function({fileSessionKey:t,canPrint:e,canExport:i,useAppPrint:s,isDownload:o}){const n=r.getContextValue("__SNK__APPLICATION__");if(s&&!o)return function(t,e,i,s){null==s||s.webConnection(p,u.methods.PDF_VIEWER,{chaveArquivo:t,permiteImprimir:e?"S":"N",permiteExportar:i?"S":"N",contentType:"S"})}(t,e,i,n);window.open(`${window.location.protocol}//${window.location.hostname}:${window.location.port}/mge/visualizadorArquivos.mge?chaveArquivo=${t}${o?"&download=S":""}`),l.info(function(t){var e;return null===(e=null==t?void 0:t.messagesBuilder)||void 0===e?void 0:e.getMessage("fileViewer.message.exportSuccess",void 0)}(n),{iconName:"check"})}(Object.assign(Object.assign({},t),{fileType:s,isDownload:o}))}))}async processExporter(t){var e,i,s,o;const r=null==t?void 0:t.detail,n=[d.EXPORT_PAGE_TO_PDF,d.EXPORT_PAGE_TO_XLS],h=null===(e=null==r?void 0:r.id)||void 0===e?void 0:e.includes(this._customPrefix);if((null==r?void 0:r.id)===d.EXPORT_CURRENT_PAGE)return;const c=null===(i=this.provider)||void 0===i?void 0:i.getSelectedIDs(),p=null===(s=this.provider)||void 0===s?void 0:s.getTotalRecords(),u=null===(o=this.provider)||void 0===o?void 0:o.getLimit();let m=!1;if(n.includes(null==r?void 0:r.id)&&u<=b||h?m=!1:(null==c?void 0:c.length)?m=c.length>b:p>b&&(m=!0),m){const t=b.toLocaleString("pt-BR",{minimumFractionDigits:0}),e={title:this.getMessage("snkDataExporter.limitExceeded.title"),description:`\n ${this.getMessage("snkDataExporter.limitExceeded.description",{limit:t})}\n <br/><br/>\n <b>\n ${this.getMessage("snkDataExporter.limitExceeded.subdescription")}\n </b>\n `,cancel:this.getMessage("snkDataExporter.limitExceeded.cancel"),confirm:this.getMessage("snkDataExporter.limitExceeded.continue")};if(!await l.confirm(e.title,e.description,null,a.WARN,{labelCancel:e.cancel,labelConfirm:e.confirm}))return}if(h)return this.openPersonalizedReports(r.id),void(this._showDropdown=!1);this._releasedToExport.includes(null==r?void 0:r.id)&&(r.id===d.EXPORT_BY_EMAIL?this.exportByEmail():this.dispatchExporter(r.id),this._showDropdown=!1)}loadItems(){const t=[];this._releasedToExport.forEach((e=>{var i;null===(i=this._itemBuilder)||void 0===i||i.setExportOption(e,t)})),this.loadPersonalizedItems(t)}async loadPersonalizedItems(t){var e;const i=null===(e=this.provider)||void 0===e?void 0:e.getRecordID();if(null==i)return void(this._items=t);const s=await function(t){const e="mgefin-bff@DataExporterSPBean.getPersonalizedReports",i={serviceName:e,requestBody:t};return new Promise(((t,s)=>v.get().callServiceBroker(e,o.objectToString(i)).then((e=>t(function(t){var e;const i=null===(e=null==t?void 0:t.json)||void 0===e?void 0:e.$;if(null!=i)return o.stringToObject(i)}(e)))).catch((t=>s(t)))))}({recordID:i});null==s||s.forEach((e=>{t.push({id:`${this._customPrefix}_${e.ID}`,label:e.label,group:this.getMessage("snkDataExporter.group.custom")})})),this._items=t}openPersonalizedReports(t){var e;const i=[],s=(null==t?void 0:t.replace(this._customPrefix,""))||"";null===(e=this.provider)||void 0===e||e.getSelectedIDs().forEach((({name:t,type:e,value:s},o)=>{const r=[];r.fields=[],0===o&&(i[`PK_${t}`]={type:e,value:s},i.pks=[]),r.fields.push({nome:t,tipo:e,valor:s}),i.pks.push(r)})),this._application.openApp(`${m}${s}`,i)}loadDropdown(){var t,e;this._selectedNumber=(null===(e=null===(t=this.provider)||void 0===t?void 0:t.getSelectedIDs())||void 0===e?void 0:e.length)||0,this._itemBuilder=new f(this.getMessage.bind(this),this._selectedNumber),this.loadItems()}getElementID(t){return{[n.DATA_ELEMENT_ID_ATTRIBUTE_NAME]:n.getInternalIDInfo(t)}}canShowDropdown(){var t;return this._showDropdown&&(null===(t=this._items)||void 0===t?void 0:t.length)>0}componentWillLoad(){var t;this._application=r.getContextValue("__SNK__APPLICATION__"),null===(t=this._application)||void 0===t||t.getAppLabel().then((t=>this._appLabel=t)),this.setEvents()}componentDidLoad(){null!=this._element&&(n.addIDInfo(this._element),this.positionDropdown())}componentWillUpdate(){var t;this._showDropdown&&!(null===(t=this._items)||void 0===t?void 0:t.length)&&this.loadDropdown()}componentDidUpdate(){var t;this._showDropdown?this.positionDropdown():(null===(t=this._items)||void 0===t?void 0:t.length)>0&&(this._items=[])}render(){return e(i,null,e("div",{class:`snk-data-exporter\n ${this.canShowDropdown()?" snk-data-exporter--overlap":""}\n `},e("ez-button",Object.assign({ref:t=>this._ezButton=t,iconName:"file-download",size:"small",mode:"icon",title:this.getMessage("snkDataExporter.group.export.title"),onClick:()=>this.controlDropdown()},this.getElementID("button"))),e("div",Object.assign({ref:t=>this._dropdownParent=t,class:`snk-data-exporter__dropdown\n ${this.canShowDropdown()?"snk-data-exporter__dropdown--show":""}\n `},this.getElementID("dropdown")),this.canShowDropdown()&&e("ez-dropdown",Object.assign({items:this._items,onEzClick:t=>this.processExporter(t)},this.getElementID("dropdown"))))),this.canShowDropdown()&&e("div",Object.assign({class:"ez-scrim ez-scrim--light"},this.getElementID("ezScrim"))),e("snk-exporter-email-sender",Object.assign({ref:t=>this._snkEmailSender=t,getMessage:(t,e)=>this.getMessage(t,e)},this.getElementID("snkExporterEmailSender"))))}get _element(){return s(this)}};k.style=".sc-snk-data-exporter-h{--snk-data-exporter--z-index:var(--most-visible, 3);display:flex;width:fit-content;height:fit-content}.snk-data-exporter.sc-snk-data-exporter{display:flex;width:fit-content;height:fit-content}.snk-data-exporter--overlap.sc-snk-data-exporter{z-index:var(--snk-data-exporter--z-index)}.snk-data-exporter__dropdown.sc-snk-data-exporter{display:none}.snk-data-exporter__dropdown--show.sc-snk-data-exporter{display:flex;flex-direction:column;position:fixed}.snk-data-exporter__dropdown.sc-snk-data-exporter>ez-dropdown.sc-snk-data-exporter{position:relative}";export{k as snk_data_exporter}
|
@@ -1 +0,0 @@
|
|
1
|
-
import{r as i,c as t,h as s,g as e}from"./p-b9667fbe.js";import{ElementIDUtils as d,ApplicationContext as r,DataType as a}from"@sankhyalabs/core";import{UserInterface as n}from"@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata";import{T as o}from"./p-d410f45a.js";import{C as l}from"./p-b1c02726.js";import{P as h}from"./p-4c2015a9.js";import{T as c}from"./p-39082fc3.js";import{s as u}from"./p-6a02e236.js";import"./p-2ea933b2.js";import"./p-41d92871.js";import"./p-112455b1.js";import"./p-79f78e10.js";import"./p-6c2c71ca.js";import"./p-584d7212.js";const v=class{constructor(s){i(this,s),this.actionClick=t(this,"actionClick",7),this.gridDoubleClick=t(this,"gridDoubleClick",7),this._topTaskbarProcessor=new c({"snkGridTopTaskbar.regular":["FORM_MODE","CONFIGURATOR","INSERT"],"snkGridTopTaskbar.regular.secondary":["FORM_MODE","CONFIGURATOR","INSERT"],"snkGridTopTaskbar.finish_edition":["CANCEL","SAVE"],"snkGridTopTaskbar.finish_edition.secondary":[]}),this._headerTaskbarProcessor=new c({"snkGridHeaderTaskbar.unselected":["REFRESH","DATA_EXPORTER"],"snkGridHeaderTaskbar.selected":["UPDATE","CLONE","REMOVE","MORE_OPTIONS","DIVIDER","ATTACH","REFRESH","DATA_EXPORTER"],"snkGridHeaderTaskbar.detail.unselected":["REFRESH"],"snkGridHeaderTaskbar.detail.selected":["UPDATE","ATTACH","CLONE","REMOVE","MORE_OPTIONS","DIVIDER","REFRESH"]}),this._dataUnit=void 0,this._dataState=void 0,this._gridConfig=void 0,this._popUpGridConfig=!1,this.configName=void 0,this.actionsList=void 0,this.isDetail=void 0,this.taskbarManager=void 0,this.statusResolver=void 0,this.multipleSelection=void 0,this.presentationMode=h.PRIMARY,this.messagesBuilder=void 0}async showConfig(){null!=this._grid&&this.openGridConfig()}async hideConfig(){null!=this._grid&&this.closeGridConfig()}async setConfig(i){this.setGridConfig(i)}openGridConfig(){this._grid.getColumnsState().then((i=>{this._snkGridConfig.columns=i.filter((i=>i.name)),this._snkGridConfig.selectedIndex=0,this._popUpGridConfig=!0}))}closeGridConfig(){this._popUpGridConfig=!1}setGridConfig(i){this._gridConfig=i}loadConfig(){l.get().then((i=>{i.loadGridConfig(this.configName).then((i=>{this.setGridConfig(i)})).catch((i=>{console.warn(i)}))}))}gridConfigChangeHandler(i){l.saveGridConfig(i.detail,this.configName),i.stopPropagation()}modalConfigChangeHandler(i){const t=i.detail;this._grid.setColumnsState(t.columns).then((()=>{this.setGridConfig(t),this.closeGridConfig(),this.dataExporterProviderStore()})),i.stopPropagation()}buildColumnsMetadata(i,t){return null==t||t.forEach((t=>{var s,e;if(t.hidden&&"RECDESP"!==t.name)return;const d=null===(s=this._dataUnit)||void 0===s?void 0:s.getField(t.name);if(i.push({label:t.label,id:t.name,width:t.width,type:null==d?void 0:d.dataType,userInterface:null==d?void 0:d.userInterface}),null!=(null===(e=null==d?void 0:d.properties)||void 0===e?void 0:e.DESCRIPTIONFIELD)){const t=d.properties.mergedFrom;i.push({label:d.properties.DESCRIPTIONENTITY,id:`${t?t+".":""}${d.properties.ENTITYNAME}.${d.properties.DESCRIPTIONFIELD}`,width:200,type:a.TEXT,userInterface:n.LONGTEXT})}})),i||[]}getPaginationInfo(){var i;return null===(i=this._dataUnit)||void 0===i?void 0:i.getPaginationInfo()}getExporterOffset(i){if(null==i)return;const t=i.firstRecord;return t>0?t-1:t}async dataExporterProviderStore(){var i,t;const s=[],e=await(null===(i=this._snkDataUnit)||void 0===i?void 0:i.getSelectedRecordsIDsInfo());await(null===(t=this._grid)||void 0===t?void 0:t.getColumnsState().then(this.buildColumnsMetadata.bind(this,s)));const d={getFilters:()=>{var i;return null===(i=this._dataUnit)||void 0===i?void 0:i.getAppliedFilters()},getColumnsMetadata:()=>s,getOrders:()=>{var i;return null===(i=this._dataUnit)||void 0===i?void 0:i.getSort()},getResourceURI:()=>{var i;return null===(i=this._dataUnit)||void 0===i?void 0:i.name},getSelectedNumber:()=>{var i,t;return null===(t=null===(i=this._dataState)||void 0===i?void 0:i.selectionInfo)||void 0===t?void 0:t.length},getTotalRecords:()=>{var i,t,s;const{total:e}=(null===(i=this._dataUnit)||void 0===i?void 0:i.getPaginationInfo())||{};return null!=e?e:null===(s=null===(t=this._dataUnit)||void 0===t?void 0:t.records)||void 0===s?void 0:s.length},getSelectedIDs:()=>e||[],getOffset:()=>this.getExporterOffset(this.getPaginationInfo()),getLimit:()=>{var i;return null===(i=this._dataUnit)||void 0===i?void 0:i.pageSize},getRecordID:()=>{var i,t,s;return null===(s=null===(t=null===(i=this._dataUnit)||void 0===i?void 0:i.records)||void 0===t?void 0:t[0])||void 0===s?void 0:s.__record__id__}};u.set("exporterProviders",Object.assign(Object.assign({},u.get("exporterProviders")),{[this.configName]:d}))}addElementID(){d.addIDInfo(this._element,null,{dataUnit:this._dataUnit})}componentWillLoad(){this._application=r.getContextValue("__SNK__APPLICATION__");let i=this._element.parentElement;for(;i;){if("SNK-DATA-UNIT"===i.tagName.toUpperCase()){this._snkDataUnit=i,this._dataUnit=this._snkDataUnit.dataUnit,this._dataUnit?(this._dataUnitLoadLockerResolver=this._dataUnit.addLoadingLocker(),this.addElementID()):this._snkDataUnit.addEventListener("dataUnitReady",(i=>{this._dataUnit=i.detail,this._dataUnitLoadLockerResolver=this._dataUnit.addLoadingLocker(),this.addElementID()})),this._snkDataUnit.addEventListener("dataStateChange",(i=>{this._dataState=i.detail}));break}i=i.parentElement}this.loadConfig()}getHeaderDisabledButtons(){var i;const t=[];return(null===(i=this._dataState)||void 0===i?void 0:i.selectionInfo)&&(this._dataState.selectionInfo.length>1&&t.push(o.CLONE,"ATTACH"),this._dataState.selectionInfo.isAllRecords()&&t.push("REMOVE")),t}componentWillRender(){var i;const t=this._dataUnit&&this._dataUnit.records.length>0?[]:["DATA_EXPORTER"];let s;s=this._dataState&&(null===(i=this._dataState.selectionInfo)||void 0===i?void 0:i.length)?this.isDetail?"snkGridHeaderTaskbar.detail.selected":"snkGridHeaderTaskbar.selected":this.isDetail?"snkGridHeaderTaskbar.detail.unselected":"snkGridHeaderTaskbar.unselected",this._headerTaskbarProcessor.process(s,this.taskbarManager,this._dataState,this.getHeaderDisabledButtons(),t),this._topTaskbarProcessor.process(this.getTopTaskBarId(this.presentationMode===h.SECONDARY?".secondary":""),this.taskbarManager,this._dataState,void 0,t),this.dataExporterProviderStore()}getTopTaskBarId(i){var t;return(null===(t=this._dataState)||void 0===t?void 0:t.isDirty)?`snkGridTopTaskbar.finish_edition${i}`:`snkGridTopTaskbar.regular${i}`}getPrimaryButton(){return this.presentationMode===h.PRIMARY?"INSERT":""}onEzGridReady(){var i;null===(i=this._dataUnitLoadLockerResolver)||void 0===i||i.call(this),this._dataUnitLoadLockerResolver=void 0}render(){var i,t;if(this._dataUnit)return s("div",{class:"snk-grid__container ez-flex ez-flex--column ez-flex-item--auto ez-padding--large"},s("div",{class:"snk-grid__header ez-margin-bottom--medium"},s("snk-filter-bar",{ref:i=>this._snkFilterBar=i,dataUnit:this._dataUnit,"data-element-id":"gridFilter",class:"snk-grid__filter-bar ez-align--top",configName:this.configName,messagesBuilder:this.messagesBuilder}),(null===(t=null===(i=this._snkFilterBar)||void 0===i?void 0:i.filterConfig)||void 0===t?void 0:t.length)>0&&s("hr",{class:"ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-grid__header-divider"}),s("snk-taskbar",{class:"ez-padding-left--medium","data-element-id":"grid_top",key:"topTaskbar",configName:this.configName,dataUnit:this._dataUnit,messagesBuilder:this.messagesBuilder,buttons:this._topTaskbarProcessor.buttons,disabledButtons:this._topTaskbarProcessor.disabledButtons,customButtons:this._topTaskbarProcessor.customButtons,primaryButton:this.getPrimaryButton()})),s("ez-grid",{ref:i=>this._grid=i,class:(this.presentationMode===h.SECONDARY?"snk-grid-container__without-shadow ":"")+"snk-grid__table","data-element-id":"embedded",dataUnit:this._dataUnit,key:"grid-"+this._snkDataUnit.entityName,config:this._gridConfig,onConfigChange:i=>{this.gridConfigChangeHandler(i)},onEzDoubleClick:()=>this.gridDoubleClick.emit(),statusResolver:this.statusResolver,multipleSelection:this.multipleSelection,onComponentReady:()=>this.onEzGridReady()},s("snk-taskbar",{dataUnit:this._dataUnit,configName:this.configName,messagesBuilder:this.messagesBuilder,"data-element-id":"grid_left",buttons:this._headerTaskbarProcessor.buttons,disabledButtons:this._headerTaskbarProcessor.disabledButtons,customButtons:this._headerTaskbarProcessor.customButtons,slot:"leftButtons",actionsList:this.actionsList})),s("div",{class:"ez-col ez-col--sd-12"},s("slot",{name:"SnkGridFooter"})),s("ez-modal",{modalSize:"small",closeEsc:!1,closeOutsideClick:!1,opened:this._popUpGridConfig,onEzCloseModal:()=>this.closeGridConfig()},s("snk-grid-config",{ref:i=>this._snkGridConfig=i,config:this._gridConfig,"data-element-id":this._element.getAttribute(d.DATA_ELEMENT_ID_ATTRIBUTE_NAME),application:this._application,selectedIndex:0,configName:this.configName,onConfigChange:i=>this.modalConfigChangeHandler(i),onConfigCancel:()=>this.closeGridConfig()})))}get _element(){return e(this)}};v.style=".snk-grid__container.sc-snk-grid{display:flex;height:100%;width:100%}.snk-grid__header.sc-snk-grid{display:flex;flex-wrap:nowrap;width:100%}.snk-grid__filter-bar.sc-snk-grid{width:100%}.snk-grid__header-divider.sc-snk-grid{margin-bottom:var(--space--medium)}.snk-grid__table.sc-snk-grid{min-height:300px}.snk-grid-container__without-shadow.sc-snk-grid{--ezgrid__container--shadow:unset}";export{v as snk_grid}
|
@@ -1 +0,0 @@
|
|
1
|
-
import{h as e,r as i,c as t,g as s}from"./p-b9667fbe.js";import{S as l}from"./p-f4184ce7.js";import{UserInterface as a,JSUtils as n,ElementIDUtils as r,ApplicationContext as o,StringUtils as h,DataType as c}from"@sankhyalabs/core";import{ModalAction as d}from"@sankhyalabs/ezui/dist/collection/components/ez-modal-container";import{c as u,d as f,e as p,F as m}from"./p-4c2015a9.js";const v={[a.SHORTTEXT]:"text",[a.LONGTEXT]:"text",[a.INTEGERNUMBER]:"number",[a.DECIMALNUMBER]:"number",[a.DATE]:"calendar",[a.DATETIME]:"calendar",[a.SWITCH]:"boolean",[a.CHECKBOX]:"check-circle-inverted",[a.OPTIONSELECTOR]:"list",[a.SEARCH]:"search",[a.HTML]:"tag_code",[a.IMAGE]:"png",[a.FILE]:"edit-file",[a.TIME]:"timer-outline",[a.ELAPSEDTIME]:"timer",[a.MASKEDTEXT]:"text",[a.PASSWORD]:"email"},b=({userInterface:i,description:t})=>e("ez-icon",{iconName:v[i],className:"ez-padding-left--small",title:t}),g="__SNK__APPLICATION__",k=class{constructor(e){i(this,e),this.ezSelectFilterItem=t(this,"ezSelectFilterItem",7),this._filterMetadataStorage=new Map,this._currentMetadata=null,this._filterText="",this._isLoading=!1,this.searchable=!0,this.fieldsDataSource=void 0,this.breadcrumbItems=[],this.linkItems=[],this.fieldItems=[]}async show(){var e;return null===(e=this._ezPopover)||void 0===e||e.show(),this.loadData()}async applyFilter(e){if(this.searchable)throw new Error("This method is not available when searchable is true");this.handleFilterChange(e)}async loadData(){let e;this._isLoading=!0,null!=this._currentLink&&(e=this._filterMetadataStorage.get(this._currentLink.uri)),e||(e=await this.fieldsDataSource.fetchData(this._currentLink),this._currentLink=e.currentLink,this._filterMetadataStorage.set(this._currentLink.uri,e));const{fields:i,links:t}=e||{};if(!Array.isArray(i)||!Array.isArray(t))throw new Error("Invalid metadata");this._currentMetadata=e,this.mapDataSourceToLinkItems(),this.mapDataSourceToFieldItems(),this._isLoading=!1,this._ezFieldList.scrollToTop(),this._ezLinkList.scrollToTop()}mapDataSourceToLinkItems(){var e;const{links:i}=this._currentMetadata,t=this.getMessage("snkFilterFieldSearch.linkLabel",{link:null===(e=this._currentLink)||void 0===e?void 0:e.description}),s=i.map((e=>Object.assign({label:e.description},e)));this.linkItems=[{group:t,items:s}],0===this.breadcrumbItems.length&&(this.breadcrumbItems=[Object.assign({id:n.generateUUID(),label:this._currentLink.description},this._currentLink)])}mapDataSourceToFieldItems(){var e;const{fields:i}=this._currentMetadata,t=this.getMessage("snkFilterFieldSearch.fieldLabel",{link:null===(e=this._currentLink)||void 0===e?void 0:e.description}),s=i.filter((e=>{if(!this._currentLink)return!0;const i=e.description.toLowerCase().includes(this._filterText.toLowerCase()),t=e.name.toLowerCase().includes(this._filterText.toLowerCase());return i||t})).map((e=>Object.assign({label:e.description},e)));this.fieldItems=[{group:t,items:s}]}handleFilterChange(e){this._isLoading||(this._filterText=e,this.mapDataSourceToFieldItems())}handleSelectLink({detail:e}){if(this._isLoading)return;const i=this.breadcrumbItems.findIndex((i=>i.id===e.id));e.cache=this._filterMetadataStorage.has(e.uri),this.breadcrumbItems=i>-1?this.breadcrumbItems.slice(0,i+1):[...this.breadcrumbItems,Object.assign({id:n.generateUUID(),label:e.description},e)];const t=Object.assign(Object.assign({},e),{type:l.LINK});this._currentLink=t,this.ezSelectFilterItem.emit(t),this.loadData()}handleSelectField({detail:e}){var i;const t=this.breadcrumbItems.map((e=>e.label)).join(">>"),s=Object.assign(Object.assign({},e),{type:l.FIELD,path:`${t} >> ${e.description}`});this.ezSelectFilterItem.emit(s),null===(i=this._ezPopover)||void 0===i||i.hide()}getElementID(e){return{[r.DATA_ELEMENT_ID_ATTRIBUTE_NAME]:r.getInternalIDInfo(e)}}getMessage(e,i){var t,s,l;return this._application||(this._application=o.getContextValue(g)),null===(l=null===(s=null===(t=this._application)||void 0===t?void 0:t.messagesBuilder)||void 0===s?void 0:s.getMessage)||void 0===l?void 0:l.call(s,e,i)}componentWillLoad(){this._application=o.getContextValue(g)}componentDidLoad(){r.addIDInfoIfNotExists(this._ezPopover,"popover")}disconnectedCallback(){var e;this._filterMetadataStorage.clear(),null===(e=this._ezPopover)||void 0===e||e.hide()}render(){var i;const t=this.getMessage("snkFilterFieldSearch.searchLabel");return e("ez-popover",Object.assign({ref:e=>this._ezPopover=e,role:"dialog",overlayType:"none","aria-hidden":!(null===(i=this._ezPopover)||void 0===i?void 0:i.opened)},this.getElementID("EzPopover")),e("div",{class:"snk-filter-field-search__container"},e("header",{class:"snk-filter-field-search__header"},this.searchable&&!!t&&e("ez-filter-input",Object.assign({class:"snk-filter-field-search__input",label:t,asyncSearch:!0,canShowError:!1,onEzSearching:e=>this.handleFilterChange.bind(this)(e.detail),"aria-label":t,"aria-required":"false","aria-invalid":"false"},this.getElementID("EzFilterInput"))),this.breadcrumbItems.length>0&&e("ez-breadcrumb",Object.assign({items:this.breadcrumbItems,onSelectedItem:this.handleSelectLink.bind(this),role:"navigation","aria-current":"step"},this.getElementID("EzBreadcrumb"))),e("hr",{class:"ez-divider-horizontal ez-margin-vertical--medium"})),e("section",{class:"snk-filter-field-search__section"},e("ez-list",Object.assign({ref:e=>this._ezLinkList=e,class:"snk-filter-field-search__list",id:"filterLinkList",useGroups:!0,dataSource:this.linkItems,onEzSelectItem:this.handleSelectLink.bind(this),hoverFeedback:!0,ezSelectable:!0,itemSlotBuilder:({fieldCount:i})=>e("ez-badge",{label:i}),"aria-describedby":"filterLinkLabel"},this.getElementID("EzListLinks"))),e("ez-list",Object.assign({ref:e=>this._ezFieldList=e,class:"snk-filter-field-search__list",id:"filterFieldList",useGroups:!0,dataSource:this.fieldItems,onEzSelectItem:this.handleSelectField.bind(this),hoverFeedback:!0,ezSelectable:!0,itemSlotBuilder:b,"aria-describedby":"filterFieldLabel"},this.getElementID("EzListFields"))))))}};k.style=".sc-snk-filter-field-search-h{--snk-filter-field-search--container-width:468px;--snk-filter-field-search--container-height:322px}.snk-filter-field-search__container.sc-snk-filter-field-search{display:flex;flex-direction:column;padding:var(--space--medium);width:var(--snk-filter-field-search--container-width);height:var(--snk-filter-field-search--container-height)}.snk-filter-field-search__section.sc-snk-filter-field-search{display:grid;grid-template-columns:1fr 1fr;place-items:flex-start;overflow:hidden;gap:var(--space--small)}.snk-filter-field-search__input.sc-snk-filter-field-search{margin-bottom:var(--space--medium)}.snk-filter-field-search__list_container.sc-snk-filter-field-search{display:flex;flex-direction:column}.snk-filter-field-search__list.sc-snk-filter-field-search{overflow-y:auto}";class z{static buildFilterExpression(e){if(null==e)return;const i=this.buildVariableParameterValue(e);let t=e.expression||"";switch(e.operand){case u.IN:t+=` ${e.operand} (${i})`;break;case u.NULL:case u.NOT_NULL:t+=` IS ${i}`;break;case u.LIKE:t+=` LIKE '%${i}%'`;break;case u.START_WITH:t+=` LIKE '${i}%'`;break;case u.FINISHED_WITH:t+=` LIKE '%${i}'`;break;default:t+=` ${e.operand} ${i}`}return t}static buildVariableParameterValue(e){if(null!=e){if(null!=e.systemConfig){const i=e.systemConfig;return`?:{entidade=${i.entity||""};campo=${i.fieldName||""}}`}if(null!=e.userConfig){const i=e.userConfig;return`?:{desc=${i.description||""};tipo=${i.type||""}}`}return`?:{entidade=${e.entityName||""};campo=${e.fieldName||""}}`}}}const C=class{constructor(e){i(this,e),this._opened=!1,this._configType=f.SYSTEM_CONFIG,this._expressionItem=void 0,this._informedInstance=!1,this._canSave=!1,this.messagesBuilder=void 0}open(e){return this._opened=!0,this._expressionItem=e,this.loadValues(),new Promise((e=>{this._promiseResolver=e}))}close(){return this._opened=!1,new Promise((e=>{this._promiseResolver=e}))}getMessage(e,i){var t;return null===(t=this.messagesBuilder)||void 0===t?void 0:t.getMessage(e,i)}getConfigValue(e,i,t=""){var s,l,a;return(null===(l=null===(s=this._expressionItem)||void 0===s?void 0:s[e])||void 0===l?void 0:l[i])||(null===(a=this._expressionItem)||void 0===a?void 0:a[t||i])}loadValues(){var e;const i=this.getConfigValue("systemConfig","entity","entityName"),t=this.getConfigValue("systemConfig","fieldName"),s=this.getConfigValue("userConfig","description"),l=this.getConfigValue("userConfig","type");this._configType=null!=(null===(e=this._expressionItem)||void 0===e?void 0:e.userConfig)?f.USER_CONFIG:f.SYSTEM_CONFIG,h.isEmpty(i)||h.isEmpty(t)||(this._instanceElement.value={value:i,label:""},this._fieldElement.value={value:t,label:""}),h.isEmpty(s)||h.isEmpty(l)||(this._descriptionElement.value=s,this._typeElement.value=l),this.buildFilterExpression()}changeDefinitionUsed(e){if(this._configType=null!=e?e:f.SYSTEM_CONFIG,this._configType===f.SYSTEM_CONFIG){const e=this.getConfigValue("systemConfig","entity","entityName"),i=this.getConfigValue("systemConfig","fieldName");this._instanceElement.value=this._instanceElement.value||{value:e,label:""},this._fieldElement.value=this._fieldElement.value||{value:i,label:""}}else if(this._configType===f.USER_CONFIG){const e=this.getConfigValue("userConfig","description"),i=this.getConfigValue("userConfig","type");this._descriptionElement.value=this._descriptionElement.value||e,this._typeElement.value=this._typeElement.value||i}this.buildFilterExpression()}getTypeValue(){var e;const i=null===(e=this._typeElement)||void 0===e?void 0:e.value;return(null==i?void 0:i.value)||i}getExpressionValues(){var e,i,t,s,l;let a,n;return this._configType===f.SYSTEM_CONFIG?a={entity:null===(i=null===(e=this._instanceElement)||void 0===e?void 0:e.value)||void 0===i?void 0:i.value,fieldName:null===(s=null===(t=this._fieldElement)||void 0===t?void 0:t.value)||void 0===s?void 0:s.value}:this._configType===f.USER_CONFIG&&(n={description:null===(l=this._descriptionElement)||void 0===l?void 0:l.value,type:this.getTypeValue()}),Object.assign(Object.assign(Object.assign({},this._expressionItem),{systemConfig:a}),{userConfig:n})}isEnabled(e){return this._configType===e}isInformedInstance(){var e,i;return!h.isEmpty(null===(i=null===(e=this._instanceElement)||void 0===e?void 0:e.value)||void 0===i?void 0:i.value)}save(){var e;this._expressionItem=Object.assign(Object.assign({},this.getExpressionValues()),{expression:null===(e=this._expressionElement)||void 0===e?void 0:e.value}),this._promiseResolver(this._expressionItem),this._opened=!1}buildFilterExpression(){var e;this._informedInstance=this.isInformedInstance();const i=z.buildFilterExpression(this.getExpressionValues());this._expressionElement.value=i||(null===(e=this._expressionItem)||void 0===e?void 0:e.expression),this._canSave=this.getCanSave()}handleChangeInstance(){this._informedInstance=this.isInformedInstance(),null==this._fieldElement||h.isEmpty(this._fieldElement.value)||(this._fieldElement.value=null),this.buildFilterExpression()}getInstanceCriteria(){var e,i;const t=null===(i=null===(e=this._instanceElement)||void 0===e?void 0:e.value)||void 0===i?void 0:i.value;return{expression:"this.NOMETAB = (SELECT NOMETAB FROM TDDINS WHERE NOMEINSTANCIA = ?)",params:[{name:"NOMEINSTANCIA",dataType:c.TEXT,value:t}]}}onSearch({mode:e,argument:i},t){if(null==this._application)return;const s=t===p.FIELD,l=s?this.getInstanceCriteria():void 0,a=this.getMessage("snkFilterParamConfig.label"+(s?"Field":"Instance"));return this._application.executePreparedSearch(e,i,{entity:t,entityDescription:a,criteria:l,searchOptions:{descriptionFieldName:s?"DESCRCAMPO":"DESCRINSTANCIA",codeFieldName:s?"NOMECAMPO":"NOMEINSTANCIA",showInactives:!1}})}getElementID(e){return{[r.DATA_ELEMENT_ID_ATTRIBUTE_NAME]:r.getInternalIDInfo(e)}}getCanSave(){var e;if(this._configType===f.USER_CONFIG){const i=null===(e=this._descriptionElement)||void 0===e?void 0:e.value,t=this.getTypeValue();return!h.isEmpty(i)&&!h.isEmpty(t)}return!0}componentWillLoad(){this._application=o.getContextValue("__SNK__APPLICATION__")}render(){return r.addIDInfoIfNotExists(this._element,"snkFilterParamConfig"),e("ez-popup",Object.assign({useHeader:!1,size:"small",heightMode:"auto",opened:this._opened},this.getElementID("popup")),e("ez-modal-container",Object.assign({onEzModalAction:e=>{e.detail===d.CLOSE&&this.close()},modalTitle:this.getMessage("snkFilterParamConfig.modalTitle")},this.getElementID("modalContainer")),e("div",{class:"ez-flex"},e("div",{class:"ez-col ez-col--sd-6 ez-flex--column"},e("ez-radio-button",Object.assign({value:this._configType,onEzChange:e=>this.changeDefinitionUsed(e.detail)},this.getElementID("systemConfigOption")),e("ez-radio-button-option",{label:this.getMessage("snkFilterParamConfig.labelSystemConfig"),value:f.SYSTEM_CONFIG})),e("ez-search",Object.assign({ref:e=>this._instanceElement=e,label:this.getMessage("snkFilterParamConfig.labelInstance"),enabled:this.isEnabled(f.SYSTEM_CONFIG),suppressEmptyOption:!0,showOptionValue:!1,showSelectedValue:!1,onEzChange:()=>this.handleChangeInstance(),optionLoader:e=>this.onSearch(e,p.INSTANCE)},this.getElementID("configFindEntity"))),e("ez-search",Object.assign({ref:e=>this._fieldElement=e,label:this.getMessage("snkFilterParamConfig.labelField"),enabled:this.isEnabled(f.SYSTEM_CONFIG)&&this._informedInstance,suppressEmptyOption:!0,showOptionValue:!1,showSelectedValue:!1,onEzChange:()=>this.buildFilterExpression(),optionLoader:e=>this.onSearch(e,p.FIELD)},this.getElementID("configFindField")))),e("div",{class:"ez-flex ez-padding--medium"},e("hr",{class:"ez-divider-vertical"})),e("div",{class:"ez-col ez-col--sd-6 ez-flex--column"},e("ez-radio-button",Object.assign({value:this._configType,onEzChange:e=>this.changeDefinitionUsed(e.detail)},this.getElementID("userConfigOption")),e("ez-radio-button-option",{label:this.getMessage("snkFilterParamConfig.labelUserConfig"),value:f.USER_CONFIG})),e("ez-text-input",Object.assign({ref:e=>this._descriptionElement=e,label:this.getMessage("snkFilterParamConfig.labelDescription"),enabled:this.isEnabled(f.USER_CONFIG),onEzChange:()=>this.buildFilterExpression()},this.getElementID("configParamLabel"))),e("ez-combo-box",Object.assign({ref:e=>this._typeElement=e,label:this.getMessage("snkFilterParamConfig.labelType"),enabled:this.isEnabled(f.USER_CONFIG),suppressEmptyOption:!0,onEzChange:()=>this.buildFilterExpression()},this.getElementID("configParamType")),Object.keys(m).map((i=>e("option",{value:m[i]},this.getMessage(`snkFilterParamConfig.labelTypeValues.${i.toLowerCase()}`))))))),e("ez-text-area",Object.assign({ref:e=>this._expressionElement=e,class:"snk-filter-param-config__expression",label:this.getMessage("snkFilterParamConfig.labelExpression"),enabled:!1},this.getElementID("presentationExpression"))),e("div",{class:"ez-col ez-col--sd-12 ez-flex--justify-end ez-margin-vertical--small"},e("ez-button",Object.assign({class:"ez-padding-right--medium",label:this.getMessage("snkFilterParamConfig.labelCancel"),onClick:()=>this.close()},this.getElementID("cancelEditParam"))),e("ez-button",Object.assign({class:"ez-button--primary",label:this.getMessage("snkFilterParamConfig.labelSave"),onClick:()=>this.save(),enabled:this._canSave},this.getElementID("saveEditParam"))))))}get _element(){return s(this)}};C.style=":host{--snk-filter-param-config__expression--color:var(--title--primary, #2b3a54);display:flex;position:relative}.snk-filter-param-config__expression{--text-area__input--disabled--color:var(--snk-filter-param-config__expression--color)}";export{k as snk_filter_field_search,C as snk_filter_param_config}
|