@sankhyalabs/sankhyablocks 9.2.0-dev.12 → 9.2.0-dev.14
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/loader.cjs.js +1 -1
- package/dist/cjs/sankhyablocks.cjs.js +1 -1
- package/dist/cjs/snk-filter-bar_4.cjs.entry.js +3 -0
- package/dist/cjs/snk-grid.cjs.entry.js +3 -0
- package/dist/cjs/snk-personalized-filter.cjs.entry.js +10 -2
- package/dist/cjs/snk-simple-crud.cjs.entry.js +45 -8
- package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +23 -0
- package/dist/collection/components/snk-grid/snk-grid.js +19 -0
- package/dist/collection/components/snk-personalized-filter/snk-personalized-filter.js +83 -21
- package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +414 -119
- package/dist/components/snk-filter-bar2.js +4 -0
- package/dist/components/snk-grid2.js +4 -0
- package/dist/components/snk-personalized-filter2.js +10 -2
- package/dist/components/snk-simple-crud2.js +45 -8
- package/dist/esm/loader.js +1 -1
- package/dist/esm/sankhyablocks.js +1 -1
- package/dist/esm/snk-filter-bar_4.entry.js +3 -0
- package/dist/esm/snk-grid.entry.js +3 -0
- package/dist/esm/snk-personalized-filter.entry.js +10 -2
- package/dist/esm/snk-simple-crud.entry.js +45 -8
- package/dist/sankhyablocks/p-51464e95.entry.js +1 -0
- package/dist/sankhyablocks/p-cf7063a4.entry.js +1 -0
- package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
- package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +1 -0
- package/dist/types/components/snk-grid/snk-grid.d.ts +1 -0
- package/dist/types/components/snk-personalized-filter/snk-personalized-filter.d.ts +53 -5
- package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +100 -43
- package/dist/types/components.d.ts +183 -70
- package/package.json +1 -1
- package/dist/sankhyablocks/p-012208e0.entry.js +0 -1
- package/dist/sankhyablocks/p-49436976.entry.js +0 -1
@@ -52,6 +52,7 @@ import { IExportConfig } from "./components/snk-data-exporter/data/export-config
|
|
52
52
|
import { IExpressionGroup, IExpressionItem } from "./components/snk-personalized-filter/interfaces/IExpressionItem";
|
53
53
|
import { IPersonalizedFilter } from "./components/snk-personalized-filter/interfaces/IPersonalizedFilter";
|
54
54
|
import { SnkApplication } from "./components/snk-application/snk-application";
|
55
|
+
import { Filter as Filter1 } from "@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata";
|
55
56
|
import { SnkFilterModalFactoryParams } from "./components/snk-filter-bar/utils/SnkFilterModalFactory";
|
56
57
|
import { EPresentationMode } from "./components/snk-filter-bar/filter-item/editors/enum/presentationMode";
|
57
58
|
import { FilterFieldsDataSource, IFilterField, IFilterLink } from "./components/snk-filter-field-search/interfaces";
|
@@ -1252,6 +1253,7 @@ export namespace Components {
|
|
1252
1253
|
* @returns O item de filtro correspondente ou undefined se não for encontrado.
|
1253
1254
|
*/
|
1254
1255
|
"getFilterItem": (id: string) => Promise<SnkFilterItemConfig | undefined>;
|
1256
|
+
"getFilters": () => Promise<Filter1[]>;
|
1255
1257
|
/**
|
1256
1258
|
* @description Responsável por flexibilizar e padronizar o uso de mensagens nos blocos de construção.
|
1257
1259
|
*/
|
@@ -1869,6 +1871,7 @@ export namespace Components {
|
|
1869
1871
|
* Validador responsável por verificar a integridade dos dados de um registro.
|
1870
1872
|
*/
|
1871
1873
|
"recordsValidator": IRecordValidator;
|
1874
|
+
"refreshColumnFilterDataSource": () => Promise<void>;
|
1872
1875
|
/**
|
1873
1876
|
* Recarrega a configuração da grade.
|
1874
1877
|
* @description Este método força o recarregamento da configuração da grade a partir do `ConfigStorage`. A operação é assíncrona, mas o método não aguarda sua conclusão.
|
@@ -2087,28 +2090,40 @@ export namespace Components {
|
|
2087
2090
|
}
|
2088
2091
|
interface SnkPersonalizedFilter {
|
2089
2092
|
/**
|
2090
|
-
* Nome da configuração
|
2093
|
+
* Nome da configuração, utilizado para distinguir múltiplas instâncias do componente.
|
2094
|
+
* @property
|
2091
2095
|
*/
|
2092
2096
|
"configName": string;
|
2097
|
+
/**
|
2098
|
+
* Cria um novo filtro personalizado caso não exista nenhum.
|
2099
|
+
* @method
|
2100
|
+
* @returns
|
2101
|
+
*/
|
2093
2102
|
"createPersonalizedFilter": () => Promise<void>;
|
2094
2103
|
/**
|
2095
|
-
*
|
2104
|
+
* URI da entidade utilizada para buscar os campos disponíveis para filtro.
|
2105
|
+
* @property
|
2096
2106
|
*/
|
2097
2107
|
"entityUri": string;
|
2098
2108
|
/**
|
2099
|
-
*
|
2109
|
+
* Identificador do filtro a ser carregado.
|
2110
|
+
* @property
|
2100
2111
|
*/
|
2101
2112
|
"filterId": string;
|
2102
2113
|
/**
|
2103
|
-
*
|
2114
|
+
* Indica se o filtro é o filtro padrão do sistema.
|
2115
|
+
* @property
|
2116
|
+
* @default false
|
2104
2117
|
*/
|
2105
2118
|
"isDefaultFilter": boolean;
|
2106
2119
|
/**
|
2107
2120
|
* Responsável por flexibilizar e padronizar o uso de mensagens nos blocos de construção.
|
2121
|
+
* @property
|
2108
2122
|
*/
|
2109
2123
|
"messagesBuilder": SnkMessageBuilder;
|
2110
2124
|
/**
|
2111
|
-
*
|
2125
|
+
* Identificador do recurso utilizado para salvar e recuperar filtros.
|
2126
|
+
* @property
|
2112
2127
|
*/
|
2113
2128
|
"resourceID": string;
|
2114
2129
|
}
|
@@ -2193,138 +2208,196 @@ export namespace Components {
|
|
2193
2208
|
}
|
2194
2209
|
interface SnkSimpleCrud {
|
2195
2210
|
/**
|
2196
|
-
* Ações a serem colocadas no botão "Mais opções" do componente snk-taskbar.
|
2211
|
+
* @description Ações a serem colocadas no botão "Mais opções" do componente snk-taskbar.
|
2197
2212
|
*/
|
2198
2213
|
"actionsList": Array<Action>;
|
2199
2214
|
/**
|
2200
|
-
* Registra um editor customizado para campos da grade e formulário.
|
2215
|
+
* @description Registra um editor customizado para campos da grade e do formulário.
|
2216
|
+
* @param fieldName - O nome do campo.
|
2217
|
+
* @param customEditor - A instância do editor customizado.
|
2218
|
+
* @returns
|
2201
2219
|
*/
|
2202
2220
|
"addCustomEditor": (fieldName: string, customEditor: ICustomEditor) => Promise<void>;
|
2203
2221
|
/**
|
2204
|
-
* Registra um formatador de valores para uma coluna da
|
2222
|
+
* @description Registra um formatador de valores para uma coluna da grade.
|
2223
|
+
* @param columnName - O nome da coluna.
|
2224
|
+
* @param customFormatter - A instância do formatador customizado.
|
2225
|
+
* @returns
|
2205
2226
|
*/
|
2206
2227
|
"addCustomValueFormatter": (columnName: string, customFormatter: ICustomFormatter) => Promise<void>;
|
2207
2228
|
/**
|
2208
|
-
* Registra um
|
2229
|
+
* @description Registra um renderizador customizado para colunas da grade.
|
2230
|
+
* @param fieldName - O nome do campo.
|
2231
|
+
* @param customRender - A instância do renderizador customizado.
|
2232
|
+
* @returns
|
2209
2233
|
*/
|
2210
2234
|
"addGridCustomRender": (fieldName: string, customRender: ICustomRender) => Promise<void>;
|
2211
2235
|
/**
|
2212
|
-
* Define se a
|
2236
|
+
* @description Define se a grade será focada ao ser carregada.
|
2213
2237
|
*/
|
2214
2238
|
"autoFocus"?: boolean;
|
2215
2239
|
/**
|
2216
|
-
* Define se a carga dos dados será feita assim que o componente for carregado.
|
2240
|
+
* @description Define se a carga dos dados será feita assim que o componente for carregado.
|
2217
2241
|
*/
|
2218
2242
|
"autoLoad"?: boolean;
|
2219
2243
|
/**
|
2220
|
-
* Usado para fechar o
|
2244
|
+
* @description Usado para fechar o configurador do CRUD.
|
2245
|
+
* @returns
|
2221
2246
|
*/
|
2222
2247
|
"closeConfigurator": () => Promise<void>;
|
2223
2248
|
/**
|
2224
|
-
* Usado para salvar as configurações dos blocos de construção.
|
2249
|
+
* @description Usado para salvar as configurações dos blocos de construção.
|
2225
2250
|
*/
|
2226
2251
|
"configName": string;
|
2252
|
+
/**
|
2253
|
+
* @description Estado atual dos dados.
|
2254
|
+
*/
|
2227
2255
|
"dataState": DataState1;
|
2256
|
+
/**
|
2257
|
+
* @description Instância do DataUnit a ser utilizada pelo componente.
|
2258
|
+
*/
|
2228
2259
|
"dataUnit": DataUnit;
|
2229
2260
|
/**
|
2230
|
-
* Define a chave customizada para sobrescrever as mensagens (
|
2261
|
+
* @description Define a chave customizada para sobrescrever as mensagens (não pegando pela entidade).
|
2231
2262
|
*/
|
2232
2263
|
"domainMessagesBuilder": string;
|
2264
|
+
/**
|
2265
|
+
* @description Habilita a inserção contínua de registros.
|
2266
|
+
*/
|
2233
2267
|
"enableContinuousInsert": boolean;
|
2234
2268
|
/**
|
2235
|
-
* Ativa inserção de registros no modo grade.
|
2269
|
+
* @description Ativa a inserção de registros no modo grade.
|
2236
2270
|
*/
|
2237
2271
|
"enableGridInsert"?: boolean;
|
2238
2272
|
/**
|
2239
|
-
* Define se o componente deve usar o LockManager para controle de carregamento da aplicação
|
2273
|
+
* @description Define se o componente deve usar o LockManager para controle de carregamento da aplicação.
|
2240
2274
|
*/
|
2241
2275
|
"enableLockManagerLoadingComp"?: boolean;
|
2242
2276
|
/**
|
2243
|
-
* Ativa o gerenciamento de locks na grade pela Taskbar.
|
2277
|
+
* @description Ativa o gerenciamento de locks na grade pela Taskbar.
|
2244
2278
|
*/
|
2245
2279
|
"enableLockManagerTaskbarClick"?: boolean;
|
2246
2280
|
/**
|
2247
|
-
* Define o nome da entidade que o componente vai utilizar para fazer as operações de CRUD
|
2281
|
+
* @description Define o nome da entidade que o componente vai utilizar para fazer as operações de CRUD.
|
2248
2282
|
*/
|
2249
2283
|
"entityName": string;
|
2284
|
+
/**
|
2285
|
+
* @description Configuração do formulário.
|
2286
|
+
*/
|
2250
2287
|
"formConfig": IFormConfig;
|
2251
2288
|
/**
|
2252
|
-
* Chave da configuração
|
2289
|
+
* @description Chave da configuração legada do formulário.
|
2253
2290
|
*/
|
2254
2291
|
"formLegacyConfigName": string;
|
2292
|
+
/**
|
2293
|
+
* @description Obtém os registros do DataUnit.
|
2294
|
+
* @returns Uma promessa que resolve com a lista de registros.
|
2295
|
+
*/
|
2255
2296
|
"getRecords": () => Promise<Array<Record>>;
|
2256
2297
|
/**
|
2257
|
-
* Usado para alternar a visão entre GRID e FORM externamente.
|
2298
|
+
* @description Usado para alternar a visão entre GRID e FORM externamente.
|
2299
|
+
* @param view - A visão para a qual navegar.
|
2300
|
+
* @returns
|
2258
2301
|
*/
|
2259
2302
|
"goToView": (view: VIEW_MODE) => Promise<void>;
|
2303
|
+
/**
|
2304
|
+
* @description Configuração da grade.
|
2305
|
+
*/
|
2260
2306
|
"gridConfig": IGridConfig;
|
2261
2307
|
/**
|
2262
|
-
* Chave da configuração
|
2308
|
+
* @description Chave da configuração legada da grade.
|
2263
2309
|
*/
|
2264
2310
|
"gridLegacyConfigName": string;
|
2265
2311
|
/**
|
2266
|
-
* Ignora os campos "somente leitura" no modo de inserção.
|
2312
|
+
* @description Ignora os campos "somente leitura" no modo de inserção.
|
2267
2313
|
*/
|
2268
2314
|
"ignoreReadOnlyFormFields": boolean;
|
2269
2315
|
/**
|
2270
|
-
* Define se o LayoutFormConfig será exibido no configurador.
|
2316
|
+
* @description Define se o LayoutFormConfig será exibido no configurador.
|
2271
2317
|
*/
|
2272
2318
|
"layoutFormConfig": boolean;
|
2273
2319
|
/**
|
2274
|
-
* Responsável por flexibilizar e padronizar o uso de mensagens nos blocos de construção.
|
2320
|
+
* @description Responsável por flexibilizar e padronizar o uso de mensagens nos blocos de construção.
|
2275
2321
|
*/
|
2276
2322
|
"messagesBuilder": SnkMessageBuilder;
|
2323
|
+
/**
|
2324
|
+
* @description Define o modo de operação do CRUD (servidor ou em memória).
|
2325
|
+
*/
|
2277
2326
|
"mode": SIMPLE_CRUD_MODE;
|
2278
2327
|
/**
|
2279
|
-
* Habilita a edição de múltiplos registros simultâneos.
|
2328
|
+
* @description Habilita a edição de múltiplos registros simultâneos.
|
2280
2329
|
*/
|
2281
2330
|
"multipleEditionEnabled": boolean;
|
2282
2331
|
/**
|
2283
|
-
* Determina se pode haver mais de uma linha selecionada na grade.
|
2332
|
+
* @description Determina se pode haver mais de uma linha selecionada na grade.
|
2284
2333
|
*/
|
2285
2334
|
"multipleSelection": boolean;
|
2286
2335
|
/**
|
2287
|
-
* Usado para abrir o
|
2336
|
+
* @description Usado para abrir o configurador do CRUD.
|
2337
|
+
* @returns
|
2288
2338
|
*/
|
2289
2339
|
"openConfigurator": () => Promise<void>;
|
2290
2340
|
/**
|
2291
|
-
* Altera visualmente as sombras e bordas do componente Quando false
|
2341
|
+
* @description Altera visualmente as sombras e bordas do componente. Quando `false`, aplica o padrão de sombras ao componente (utilizar quando for o elemento principal do layout). Quando `true`, aplica o padrão de contorno ao componente (utilizar quando estiver contido em outro elemento como um painel ou pop-up).
|
2292
2342
|
*/
|
2293
2343
|
"outlineMode"?: boolean;
|
2294
2344
|
/**
|
2295
|
-
* Determina quantas linhas são retornadas por página.
|
2345
|
+
* @description Determina quantas linhas são retornadas por página.
|
2296
2346
|
*/
|
2297
2347
|
"pageSize": number;
|
2298
2348
|
/**
|
2299
|
-
* Define
|
2349
|
+
* @description Define o modo de exibição do contador de paginação.
|
2300
2350
|
*/
|
2301
2351
|
"paginationCounterMode"?: 'show' | 'hidden' | 'auto';
|
2302
2352
|
/**
|
2303
|
-
* Remove o formatador de valores de uma coluna da
|
2353
|
+
* @description Remove o formatador de valores de uma coluna da grade.
|
2354
|
+
* @param columnName - O nome da coluna.
|
2355
|
+
* @returns
|
2304
2356
|
*/
|
2305
2357
|
"removeCustomValueFormatter": (columnName: string) => Promise<void>;
|
2306
2358
|
/**
|
2307
|
-
* Identificador de recursos como configurações e acesso.
|
2359
|
+
* @description Identificador de recursos como configurações e acesso.
|
2308
2360
|
*/
|
2309
2361
|
"resourceID": string;
|
2310
2362
|
/**
|
2311
|
-
* Altera/adiciona uma propriedade nos metadados do campo.
|
2363
|
+
* @description Altera/adiciona uma propriedade nos metadados do campo.
|
2364
|
+
* @param fieldName - O nome do campo.
|
2365
|
+
* @param propName - O nome da propriedade.
|
2366
|
+
* @param value - O valor da propriedade.
|
2367
|
+
* @returns
|
2312
2368
|
*/
|
2313
2369
|
"setFieldProp": (fieldName: string, propName: string, value: any) => Promise<void>;
|
2370
|
+
/**
|
2371
|
+
* @description Define os metadados do DataUnit.
|
2372
|
+
* @param metadata - Os metadados a serem definidos.
|
2373
|
+
* @returns
|
2374
|
+
*/
|
2314
2375
|
"setMetadata": (metadata: UnitMetadata) => Promise<void>;
|
2376
|
+
/**
|
2377
|
+
* @description Define os registros do DataUnit.
|
2378
|
+
* @param records - Os registros a serem definidos.
|
2379
|
+
* @returns
|
2380
|
+
*/
|
2315
2381
|
"setRecords": (records: Array<Record>) => Promise<void>;
|
2316
2382
|
/**
|
2317
|
-
* Usado para exibir os botões de ação do snk-configurator.
|
2383
|
+
* @description Usado para exibir os botões de ação do snk-configurator.
|
2318
2384
|
*/
|
2319
2385
|
"showConfiguratorButtons": boolean;
|
2320
2386
|
/**
|
2321
|
-
* Gerenciador das barras de tarefas. É possível determinar botões específicos ou mesmo gerenciar o estado dos botões.
|
2387
|
+
* @description Gerenciador das barras de tarefas. É possível determinar botões específicos ou mesmo gerenciar o estado dos botões.
|
2322
2388
|
*/
|
2323
2389
|
"taskbarManager": TaskbarManager;
|
2390
|
+
/**
|
2391
|
+
* @description Atualiza a configuração do formulário.
|
2392
|
+
* @returns
|
2393
|
+
*/
|
2324
2394
|
"updateConfig": () => Promise<void>;
|
2395
|
+
/**
|
2396
|
+
* @description Determina se será usada mensagem de confirmação padrão na tentativa de cancelar a edição.
|
2397
|
+
*/
|
2325
2398
|
"useCancelConfirm": boolean;
|
2326
2399
|
/**
|
2327
|
-
* Quando verdadeiro, o ENTER fará a navegação como se fosse a tecla TAB na grade.
|
2400
|
+
* @description Quando verdadeiro, o ENTER fará a navegação como se fosse a tecla TAB na grade.
|
2328
2401
|
*/
|
2329
2402
|
"useEnterLikeTab": boolean;
|
2330
2403
|
}
|
@@ -4623,30 +4696,49 @@ declare namespace LocalJSX {
|
|
4623
4696
|
}
|
4624
4697
|
interface SnkPersonalizedFilter {
|
4625
4698
|
/**
|
4626
|
-
* Nome da configuração
|
4699
|
+
* Nome da configuração, utilizado para distinguir múltiplas instâncias do componente.
|
4700
|
+
* @property
|
4627
4701
|
*/
|
4628
4702
|
"configName"?: string;
|
4629
4703
|
/**
|
4630
|
-
*
|
4704
|
+
* URI da entidade utilizada para buscar os campos disponíveis para filtro.
|
4705
|
+
* @property
|
4631
4706
|
*/
|
4632
4707
|
"entityUri"?: string;
|
4633
4708
|
/**
|
4634
|
-
*
|
4709
|
+
* Identificador do filtro a ser carregado.
|
4710
|
+
* @property
|
4635
4711
|
*/
|
4636
4712
|
"filterId"?: string;
|
4637
4713
|
/**
|
4638
|
-
*
|
4714
|
+
* Indica se o filtro é o filtro padrão do sistema.
|
4715
|
+
* @property
|
4716
|
+
* @default false
|
4639
4717
|
*/
|
4640
4718
|
"isDefaultFilter"?: boolean;
|
4641
4719
|
/**
|
4642
4720
|
* Responsável por flexibilizar e padronizar o uso de mensagens nos blocos de construção.
|
4721
|
+
* @property
|
4643
4722
|
*/
|
4644
4723
|
"messagesBuilder"?: SnkMessageBuilder;
|
4724
|
+
/**
|
4725
|
+
* Evento emitido após salvar as alterações do filtro personalizado.
|
4726
|
+
* @event
|
4727
|
+
*/
|
4645
4728
|
"onEzAfterSave"?: (event: SnkPersonalizedFilterCustomEvent<void>) => void;
|
4729
|
+
/**
|
4730
|
+
* Evento emitido ao cancelar a personalização do filtro.
|
4731
|
+
* @event
|
4732
|
+
*/
|
4646
4733
|
"onEzCancel"?: (event: SnkPersonalizedFilterCustomEvent<void>) => void;
|
4734
|
+
/**
|
4735
|
+
* Evento emitido ao salvar as alterações do filtro personalizado.
|
4736
|
+
* @event
|
4737
|
+
*/
|
4647
4738
|
"onEzSave"?: (event: SnkPersonalizedFilterCustomEvent<string>) => void;
|
4648
4739
|
/**
|
4649
|
-
*
|
4740
|
+
* Identificador do recurso utilizado para salvar e recuperar filtros.
|
4741
|
+
* @property
|
4650
4742
|
*/
|
4651
4743
|
"resourceID"?: string;
|
4652
4744
|
}
|
@@ -4745,126 +4837,147 @@ declare namespace LocalJSX {
|
|
4745
4837
|
}
|
4746
4838
|
interface SnkSimpleCrud {
|
4747
4839
|
/**
|
4748
|
-
* Ações a serem colocadas no botão "Mais opções" do componente snk-taskbar.
|
4840
|
+
* @description Ações a serem colocadas no botão "Mais opções" do componente snk-taskbar.
|
4749
4841
|
*/
|
4750
4842
|
"actionsList"?: Array<Action>;
|
4751
4843
|
/**
|
4752
|
-
* Define se a
|
4844
|
+
* @description Define se a grade será focada ao ser carregada.
|
4753
4845
|
*/
|
4754
4846
|
"autoFocus"?: boolean;
|
4755
4847
|
/**
|
4756
|
-
* Define se a carga dos dados será feita assim que o componente for carregado.
|
4848
|
+
* @description Define se a carga dos dados será feita assim que o componente for carregado.
|
4757
4849
|
*/
|
4758
4850
|
"autoLoad"?: boolean;
|
4759
4851
|
/**
|
4760
|
-
* Usado para salvar as configurações dos blocos de construção.
|
4852
|
+
* @description Usado para salvar as configurações dos blocos de construção.
|
4761
4853
|
*/
|
4762
4854
|
"configName"?: string;
|
4855
|
+
/**
|
4856
|
+
* @description Estado atual dos dados.
|
4857
|
+
*/
|
4763
4858
|
"dataState"?: DataState1;
|
4859
|
+
/**
|
4860
|
+
* @description Instância do DataUnit a ser utilizada pelo componente.
|
4861
|
+
*/
|
4764
4862
|
"dataUnit"?: DataUnit;
|
4765
4863
|
/**
|
4766
|
-
* Define a chave customizada para sobrescrever as mensagens (
|
4864
|
+
* @description Define a chave customizada para sobrescrever as mensagens (não pegando pela entidade).
|
4767
4865
|
*/
|
4768
4866
|
"domainMessagesBuilder"?: string;
|
4867
|
+
/**
|
4868
|
+
* @description Habilita a inserção contínua de registros.
|
4869
|
+
*/
|
4769
4870
|
"enableContinuousInsert"?: boolean;
|
4770
4871
|
/**
|
4771
|
-
* Ativa inserção de registros no modo grade.
|
4872
|
+
* @description Ativa a inserção de registros no modo grade.
|
4772
4873
|
*/
|
4773
4874
|
"enableGridInsert"?: boolean;
|
4774
4875
|
/**
|
4775
|
-
* Define se o componente deve usar o LockManager para controle de carregamento da aplicação
|
4876
|
+
* @description Define se o componente deve usar o LockManager para controle de carregamento da aplicação.
|
4776
4877
|
*/
|
4777
4878
|
"enableLockManagerLoadingComp"?: boolean;
|
4778
4879
|
/**
|
4779
|
-
* Ativa o gerenciamento de locks na grade pela Taskbar.
|
4880
|
+
* @description Ativa o gerenciamento de locks na grade pela Taskbar.
|
4780
4881
|
*/
|
4781
4882
|
"enableLockManagerTaskbarClick"?: boolean;
|
4782
4883
|
/**
|
4783
|
-
* Define o nome da entidade que o componente vai utilizar para fazer as operações de CRUD
|
4884
|
+
* @description Define o nome da entidade que o componente vai utilizar para fazer as operações de CRUD.
|
4784
4885
|
*/
|
4785
4886
|
"entityName"?: string;
|
4887
|
+
/**
|
4888
|
+
* @description Configuração do formulário.
|
4889
|
+
*/
|
4786
4890
|
"formConfig"?: IFormConfig;
|
4787
4891
|
/**
|
4788
|
-
* Chave da configuração
|
4892
|
+
* @description Chave da configuração legada do formulário.
|
4789
4893
|
*/
|
4790
4894
|
"formLegacyConfigName"?: string;
|
4895
|
+
/**
|
4896
|
+
* @description Configuração da grade.
|
4897
|
+
*/
|
4791
4898
|
"gridConfig"?: IGridConfig;
|
4792
4899
|
/**
|
4793
|
-
* Chave da configuração
|
4900
|
+
* @description Chave da configuração legada da grade.
|
4794
4901
|
*/
|
4795
4902
|
"gridLegacyConfigName"?: string;
|
4796
4903
|
/**
|
4797
|
-
* Ignora os campos "somente leitura" no modo de inserção.
|
4904
|
+
* @description Ignora os campos "somente leitura" no modo de inserção.
|
4798
4905
|
*/
|
4799
4906
|
"ignoreReadOnlyFormFields"?: boolean;
|
4800
4907
|
/**
|
4801
|
-
* Define se o LayoutFormConfig será exibido no configurador.
|
4908
|
+
* @description Define se o LayoutFormConfig será exibido no configurador.
|
4802
4909
|
*/
|
4803
4910
|
"layoutFormConfig"?: boolean;
|
4804
4911
|
/**
|
4805
|
-
* Responsável por flexibilizar e padronizar o uso de mensagens nos blocos de construção.
|
4912
|
+
* @description Responsável por flexibilizar e padronizar o uso de mensagens nos blocos de construção.
|
4806
4913
|
*/
|
4807
4914
|
"messagesBuilder"?: SnkMessageBuilder;
|
4915
|
+
/**
|
4916
|
+
* @description Define o modo de operação do CRUD (servidor ou em memória).
|
4917
|
+
*/
|
4808
4918
|
"mode"?: SIMPLE_CRUD_MODE;
|
4809
4919
|
/**
|
4810
|
-
* Habilita a edição de múltiplos registros simultâneos.
|
4920
|
+
* @description Habilita a edição de múltiplos registros simultâneos.
|
4811
4921
|
*/
|
4812
4922
|
"multipleEditionEnabled"?: boolean;
|
4813
4923
|
/**
|
4814
|
-
* Determina se pode haver mais de uma linha selecionada na grade.
|
4924
|
+
* @description Determina se pode haver mais de uma linha selecionada na grade.
|
4815
4925
|
*/
|
4816
4926
|
"multipleSelection"?: boolean;
|
4817
4927
|
/**
|
4818
|
-
* Emitido sempre que houver
|
4928
|
+
* @description Emitido sempre que houver clique de botão ou ação na barra de tarefas.
|
4819
4929
|
*/
|
4820
4930
|
"onActionClick"?: (event: SnkSimpleCrudCustomEvent<string>) => void;
|
4821
4931
|
/**
|
4822
|
-
* Emitido quando
|
4932
|
+
* @description Emitido quando o salvamento da configuração no configurador do CRUD é cancelado.
|
4823
4933
|
*/
|
4824
4934
|
"onConfiguratorCancel"?: (event: SnkSimpleCrudCustomEvent<any>) => void;
|
4825
4935
|
/**
|
4826
|
-
* Emitido quando
|
4936
|
+
* @description Emitido quando a configuração no configurador do CRUD é salva.
|
4827
4937
|
*/
|
4828
4938
|
"onConfiguratorSave"?: (event: SnkSimpleCrudCustomEvent<any>) => void;
|
4829
4939
|
/**
|
4830
|
-
* Emitido quando há qualquer mudança de estado no DataUnit.
|
4940
|
+
* @description Emitido quando há qualquer mudança de estado no DataUnit.
|
4831
4941
|
*/
|
4832
4942
|
"onDataStateChange"?: (event: SnkSimpleCrudCustomEvent<DataState1>) => void;
|
4833
4943
|
/**
|
4834
|
-
* Emitido quando o DataUnit está pronto.
|
4944
|
+
* @description Emitido quando o DataUnit está pronto.
|
4835
4945
|
*/
|
4836
4946
|
"onDataUnitReady"?: (event: SnkSimpleCrudCustomEvent<DataUnit>) => void;
|
4837
4947
|
/**
|
4838
|
-
* Responsável por notificar quando ocorrer a renderização de itens do formulário.
|
4948
|
+
* @description Responsável por notificar quando ocorrer a renderização de itens do formulário.
|
4839
4949
|
*/
|
4840
4950
|
"onFormItemsReady"?: (event: SnkSimpleCrudCustomEvent<Array<HTMLElement>>) => void;
|
4841
4951
|
/**
|
4842
|
-
* Altera visualmente as sombras e bordas do componente Quando false
|
4952
|
+
* @description Altera visualmente as sombras e bordas do componente. Quando `false`, aplica o padrão de sombras ao componente (utilizar quando for o elemento principal do layout). Quando `true`, aplica o padrão de contorno ao componente (utilizar quando estiver contido em outro elemento como um painel ou pop-up).
|
4843
4953
|
*/
|
4844
4954
|
"outlineMode"?: boolean;
|
4845
4955
|
/**
|
4846
|
-
* Determina quantas linhas são retornadas por página.
|
4956
|
+
* @description Determina quantas linhas são retornadas por página.
|
4847
4957
|
*/
|
4848
4958
|
"pageSize"?: number;
|
4849
4959
|
/**
|
4850
|
-
* Define
|
4960
|
+
* @description Define o modo de exibição do contador de paginação.
|
4851
4961
|
*/
|
4852
4962
|
"paginationCounterMode"?: 'show' | 'hidden' | 'auto';
|
4853
4963
|
/**
|
4854
|
-
* Identificador de recursos como configurações e acesso.
|
4964
|
+
* @description Identificador de recursos como configurações e acesso.
|
4855
4965
|
*/
|
4856
4966
|
"resourceID"?: string;
|
4857
4967
|
/**
|
4858
|
-
* Usado para exibir os botões de ação do snk-configurator.
|
4968
|
+
* @description Usado para exibir os botões de ação do snk-configurator.
|
4859
4969
|
*/
|
4860
4970
|
"showConfiguratorButtons"?: boolean;
|
4861
4971
|
/**
|
4862
|
-
* Gerenciador das barras de tarefas. É possível determinar botões específicos ou mesmo gerenciar o estado dos botões.
|
4972
|
+
* @description Gerenciador das barras de tarefas. É possível determinar botões específicos ou mesmo gerenciar o estado dos botões.
|
4863
4973
|
*/
|
4864
4974
|
"taskbarManager"?: TaskbarManager;
|
4975
|
+
/**
|
4976
|
+
* @description Determina se será usada mensagem de confirmação padrão na tentativa de cancelar a edição.
|
4977
|
+
*/
|
4865
4978
|
"useCancelConfirm"?: boolean;
|
4866
4979
|
/**
|
4867
|
-
* Quando verdadeiro, o ENTER fará a navegação como se fosse a tecla TAB na grade.
|
4980
|
+
* @description Quando verdadeiro, o ENTER fará a navegação como se fosse a tecla TAB na grade.
|
4868
4981
|
*/
|
4869
4982
|
"useEnterLikeTab"?: boolean;
|
4870
4983
|
}
|
package/package.json
CHANGED
@@ -1 +0,0 @@
|
|
1
|
-
import{r as t,c as i,h as e,H as s,g as r}from"./p-d8d8169b.js";import{DataType as l,StringUtils as a,ObjectUtils as n,ElementIDUtils as o,ErrorException as h,ApplicationContext as d,LockManager as c,LockManagerOperation as u,DateUtils as f,MaskFormatter as m,FloatingManager as p,ArrayUtils as v}from"@sankhyalabs/core";import{EzScrollDirection as b}from"@sankhyalabs/ezui/dist/collection/components/ez-scroller/EzScrollDirection";import{C as k}from"./p-3dba3468.js";import{toString as g}from"@sankhyalabs/core/dist/dataunit/metadata/DataType";import{F as _}from"./p-ff1990ad.js";import{F,D as z}from"./p-84345e7a.js";import{F as x}from"./p-fa80e546.js";import{ApplicationUtils as y}from"@sankhyalabs/ezui/dist/collection/utils";import{P as w}from"./p-988afe78.js";import{ModalAction as C}from"@sankhyalabs/ezui/dist/collection/components/ez-modal-container";import{F as I}from"./p-b568c1d4.js";import{A as $}from"./p-6a4b21dd.js";import"./p-c6331595.js";import"./p-0dac8fef.js";import"./p-8d884fab.js";import"@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata";function N(t){let i="";return t.forEach(((t,e)=>{var s;i+=` ${e>0?null!==(s=t.operand)&&void 0!==s?s:"OR":""} ${t.expression}`})),i.trim()}class L{constructor({filterConfig:t,configName:i,onComplete:e,getMessage:s,disablePersonalizedFilter:r,onAddPersonalizedFilter:l,onEditPersonalizedFilter:a,onDeletePersonalizedFilter:n}){this._filterConfig=t,this._configName=i,this._onComplete=e,this._getMessage=s,this._disablePersonalizedFilter=r,this._addPersonalizedFilterFn=l,this._editPersonalizedFilterFn=a,this._onDeletePersonalizedFilter=n}applyFilters(t){this._onComplete(t),this._closeModal()}buildFilterModal(){const t=document.createElement("snk-filter-modal");return t.className="ez-size-height--full",t.filters=this._filterConfig,t.configName=this._configName,t.disablePersonalizedFilter=this._disablePersonalizedFilter,t.getMessage=this._getMessage.bind(this),t.applyFilters=this.applyFilters.bind(this),t.closeModal=()=>this._closeModal(),t.addPersonalizedFilter=t=>this._addPersonalizedFilterFn(t),t.editPersonalizedFilter=(t,i)=>this._editPersonalizedFilterFn(t,i),t.deletePersonalizedFilter=(t,i,e)=>this._onDeletePersonalizedFilter(t,i,e),t}async showModal(){const t={content:this.buildFilterModal(),position:"right",heightMode:"full",closeOutsideClick:!1,useScrimLight:!0};this._closeModal=await y.showModal(t)}async closeModal(){this._closeModal()}}const T=class{constructor(e){t(this,e),this.configUpdated=i(this,"configUpdated",7),this._updateSequence=[],this._loadingPending=!1,this._configUpdated=!1,this._firstLoad=!0,this._pendingVariables=!1,this._isDefaultFilter=!1,this._customfiltersToBeUpdated=[],this._resolveLoading=void 0,this._calculateSortIndex=t=>{if(!t.visible)return 0;if(t.hardFixed)return 1e6;let i=t.fixed?1e5:0;return i+=this.hasValidValue(t)?1e4:0,i+=this._updateSequence.lastIndexOf(t.id)+1,i},this._filtersComparator=(t,i)=>this._calculateSortIndex(i)-this._calculateSortIndex(t),this.enableLockManagerLoadingComp=!1,this.customFilterBarConfig=void 0,this.dataUnit=void 0,this.title=void 0,this.configName=void 0,this.resourceID=void 0,this.mode="regular",this.filterConfig=void 0,this.messagesBuilder=void 0,this.disablePersonalizedFilter=void 0,this.filterBarLegacyConfigName=void 0,this.autoLoad=void 0,this.afterApplyConfig=void 0,this.allowDefault=void 0,this.scrollerLocked=!1,this.showPersonalizedFilter=!1,this.personalizedFilterId=void 0}hasValidValue(t){return null!=t.value&&(!Array.isArray(t.value)||t.value.some((t=>!0===t.check)))}observeFilterConfig(t,i){n.equals(t,i)||this.handleFilterConfigsChanged(i,t)}handleFilterConfigsChanged(t,i){if(null!=t&&null==i)this._loadingPending=!0,this._configUpdated=!0;else{const e=new Map(t?t.map((t=>[t.id,t])):void 0);0===e.size&&i.length>0?(this._loadingPending=!0,this._configUpdated=!1):i.forEach((t=>{const i=e.get(t.id);if(null!=i){if(this._configUpdated=this._configUpdated||n.objectToString(i)!=n.objectToString(t),this._loadingPending=this._loadingPending||n.objectToString(i.value)!==n.objectToString(t.value),!this._loadingPending){const e=n.objectToString(i.groupedItems)!=n.objectToString(t.groupedItems);this._configUpdated=this._configUpdated||e,this._loadingPending=this._loadingPending||e}}else this._configUpdated=!0,this._loadingPending=this._loadingPending||null!=t.value}))}(this._loadingPending||this._configUpdated)&&this.configUpdated.emit(i),this.processAfterUpdateConfig()}async reload(){this.loadConfigFromStorage(!0)}async getFilterItem(t){const i=this.filterConfig.find((i=>i.id===t));return Promise.resolve(n.copy(i))}async updateFilterItem(t){return-1==this.filterConfig.findIndex((i=>i.id===t.id))?(console.warn("[SnkFilterBar.updateFilterItem] "+this.getMessage("snkFilterBar.filterItem.updateFilterItemNotFound")),Promise.resolve()):(this._loadingPending=!0,this.updateFilter(t),Promise.resolve())}async addFilterItem(t){return this.filterConfig.findIndex((i=>i.id===t.id))>-1?(console.warn("[SnkFilterBar.addFilterItem] "+this.getMessage("snkFilterBar.filterItem.addFilterItemExists")),Promise.resolve()):(this.filterConfig.push(t),this._loadingPending=!0,this.updateFilter(t),Promise.resolve())}async removeFilterItem(t){const i=this.filterConfig.findIndex((i=>i.id===t));if(-1==i)return console.warn("[SnkFilterBar.removeFilterItem] "+this.getMessage("snkFilterBar.filterItem.removeFilterItemNotFound")),Promise.resolve(void 0);const e=this.filterConfig[i];return this.filterConfig=this.filterConfig.filter((i=>i.id!==t)),Promise.resolve(e)}componentDidLoad(){this._element&&o.addIDInfo(this._element,null,{dataUnit:this.dataUnit})}processPendingFilter(){if(this._pendingVariables){const t=this._element.querySelector("#filter-PERSONALIZED_FILTER_GROUP");t&&t.showUp(!0).then((()=>{this.processAfterUpdateConfig()}))}else this.processAfterUpdateConfig()}getPersonalizedFilterItem(){return this.filterConfig.find((t=>t.type===_.PERSONALIZED))}async processAfterUpdateConfig(){var t;if(this._loadingPending){if(await this._application.isLoadedByPk()&&!this._configUpdated)return;const t=this.getPersonalizedFilterItem();if(this._pendingVariables=!w.validateVariableValues(t),this._pendingVariables)return;this._loadingPending=!1,this.doLoadData(null!=this.dataUnit.getLastLoadRequest())}this._configUpdated&&(this._configUpdated=!1,k.saveFilterBarConfig(this.filterConfig,this.configName,this.resourceID),null===(t=this.afterApplyConfig)||void 0===t||t.call(this))}async doLoadData(t=!1){try{if(this._firstLoad&&!1===this.autoLoad)return;if(this._firstLoad&&!t&&void 0===this.autoLoad&&!await this._application.getBooleanParam("global.carregar.registros.iniciar.tela"))return;this.dataUnit.loadData(void 0,void 0,!0)}finally{this._firstLoad=!1}}getMessage(t,i,e){var s;return null==this.messagesBuilder&&this._application&&(this.messagesBuilder=this._application.messagesBuilder),(null===(s=this.messagesBuilder)||void 0===s?void 0:s.getMessage(t,i))||e}getFilter(t){var i;const e=[];return null===(i=this.filterConfig)||void 0===i||i.filter((t=>this.isActiveFilter(t))).forEach((t=>{const i=(t=>{switch(t.type){case _.DEFAULT_FILTER:return function(t){return{name:t.id,expression:t.props.expression,params:[]}}(t);case _.BINARY_SELECT:return function(t){const{id:i,value:e,props:s}=t;return{name:i,expression:s.options.find((t=>t.name===e)).expression,params:[]}}(t);case _.MULTI_SELECT:return function(t){const{id:i,value:e,props:s}=t;return{name:i,expression:s.expression,params:[{name:i,dataType:l.TEXT,value:e}]}}(t);case _.MULTI_LIST:return function(t){const{id:i,value:e,props:s}=t,r=(null!==(o=null!==(n=null==(a=e)?void 0:a.elements)&&void 0!==n?n:null==a?void 0:a.members)&&void 0!==o?o:a).filter((t=>null==t?void 0:t.check)).map((({id:t})=>Number.isNaN(+t)?String(t):Number(t)));var a,n,o;if(r.length>0)return{name:i,expression:s.expression,params:[{name:i,dataType:l.TEXT,value:JSON.stringify(r)}]}}(t);case _.PERIOD:return function(t){const{id:i,value:e,props:s}=t;let{end:r,start:a}=e;"string"==typeof r&&(r=new Date(r)),"string"==typeof a&&(a=new Date(a));const n=[];let o;return r&&a?(o=s.expression.fullfill,n.push({name:`${i}.START`,dataType:l.DATE,value:g(l.DATE,a)},{name:`${i}.END`,dataType:l.DATE,value:g(l.DATE,r)})):a?(o=s.expression.onlystart,n.push({name:i,dataType:l.DATE,value:g(l.DATE,a)})):(o=s.expression.onlyend,n.push({name:i,dataType:l.DATE,value:g(l.DATE,r)})),{name:i,expression:o,params:n}}(t);case _.SEARCH:return function(t){const{id:i,value:e,props:s}=t;return{name:i,expression:s.expression,params:[{name:i,dataType:l.TEXT,value:g(l.TEXT,null==e?void 0:e.value)}]}}(t);case _.TEXT:return function(t){let{id:i,value:e,props:s}=t;const r=s.expression;var n,o;return a.isEmpty(s.likeAs)||(n=e,e="CONTANIS"===(o=s.likeAs)?`%${n}%`:"STARTS_WITH"===o?`${n}%`:"ENDS_WITH"===o?`%${n}`:n),{name:i,expression:r,params:[{name:i,dataType:l.TEXT,value:g(l.TEXT,e)}]}}(t);case _.NUMBER:return function(t){const{id:i,value:e,props:s}=t;if(s.variation===x.INTERVAL){const{start:t,end:r}=null!=e?e:{start:0,end:0};if(!isNaN(t)&&!isNaN(r))return{name:i,expression:s.intervalExpression.fullfill,params:[{name:`${i}.START`,dataType:l.NUMBER,value:g(l.NUMBER,t)},{name:`${i}.END`,dataType:l.NUMBER,value:g(l.NUMBER,r)}]};if(!isNaN(t))return{name:i,expression:s.intervalExpression.onlystart,params:[{name:i,dataType:l.NUMBER,value:g(l.NUMBER,t)}]};if(!isNaN(r))return{name:i,expression:s.intervalExpression.onlyend,params:[{name:i,dataType:l.NUMBER,value:g(l.NUMBER,r)}]}}return{name:i,expression:s.expression,params:[{name:i,dataType:l.NUMBER,value:g(l.NUMBER,e)}]}}(t);case _.PERSONALIZED:return function(t){const{id:i,groupedItems:e=[]}=t,s=e.filter((t=>!!t.visible)).map((t=>{var i;const e=t.props.expression,s=((null===(i=t.props.personalizedFilter)||void 0===i?void 0:i.parameters)||[]).map(((i,e)=>{const s=Array.from(t.value||0),r=i.dataType;let a=e>=0&&e<s.length?s[e]:null;return null!=a&&"object"==typeof a&&"value"in a&&(a=a.value),null==a&&r===l.BOOLEAN&&(a=!1),{name:i.name,dataType:r,value:"string"==typeof a?a:g(r,a)}}));return{expression:e,name:t.id,params:s}}));return{name:i,expression:s.map((t=>`(${t.expression})`)).join(` ${F.AND} `),params:s.flatMap((t=>t.params))}}(t);case _.CHECK_BOX_LIST:return function(t){var i;const{id:e,value:s,props:r}=t,l=Object.entries(null!=s?s:{}).filter((([t,i])=>!0===i)).map((([t,i])=>t));return{name:e,expression:N(null===(i=r.options)||void 0===i?void 0:i.filter((t=>l.includes(t.name)))),params:[]}}(t);default:return}})(t);i&&e.push(i)})),e}isActiveFilter(t){return t.type===_.DEFAULT_FILTER||this.filterActiveFilter(t)&&(t.groupedItems||null!=t.value)}async registryFilterProvider(){this.dataUnit.addFilterProvider(this),this.filterConfig&&await this.doLoadData()}itemFocused(t){this._element.querySelectorAll("snk-filter-item,snk-filter-list").forEach((i=>{i.id===t?"snk-filter-item"===i.tagName.toLowerCase()&&i.getClientRects()[0].x<0&&i.scrollIntoView({behavior:"auto",inline:"nearest"}):i.hideDetail()}))}filterActiveFilter(t){return t.visible||t.removalBlocked}filterPersonalizedItems(t){return t.type===_.PERSONALIZED}getPersonalizedFilterVariableItems(){return this.filterConfig.filter(this.filterPersonalizedItems).map((t=>{const i=`filter-${t.id}`;return e("snk-filter-item",{key:t.id,id:i,config:Object.assign({},t),onFocusin:()=>this.itemFocused(i),onVisibleChanged:t=>this.scrollerLocked=t.detail,onFilterChange:t=>this.updateFilter(t.detail),getMessage:(t,i)=>this.getMessage(t,i),showChips:!1})}))}getFilterItems(){const t=[],i=[];this.filterConfig.sort(((t,i)=>this._filtersComparator(t,i))).filter(this.filterActiveFilter).forEach(((s,r)=>{const l=`filter-${(s=n.copy(s)).id}`,a=e("snk-filter-item",{onVisibleChanged:t=>this.scrollerLocked=t.detail,onFilterChange:t=>this.updateFilter(t.detail),onFocusin:()=>this.itemFocused(l),id:l,config:s,class:r>0?"ez-padding-left--medium":"",getMessage:(t,i)=>this.getMessage(t,i),key:s.id});return s.fixed||s.hardFixed?t.push(a):i.push(a),a}));const s=[];return s.push(...t),t.length>0&&i.length>0&&s.push(e("hr",{class:"ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-filter-bar__divider"})),s.push(...i),s}calculateUpdateSequence(t){t&&(this._updateSequence=this._updateSequence.filter((i=>t.id!==i)),this._updateSequence.push(t.id))}normalizeItem(t){const i=Object.assign({},t);return["props","value","hardFixed","fixed"].forEach((t=>{null==i[t]&&delete i[t]})),""===t.value&&delete t.value,i}updateFilter(t){this.filterConfig=this.filterConfig.map((i=>(t=this.normalizeItem(t),i.id===t.id?(n.objectToString(i)!=n.objectToString(t)&&this.calculateUpdateSequence(t),t):i))).sort(((t,i)=>this._filtersComparator(t,i)))}loadPermitions(){this._application.isUserSup().then((t=>this.allowDefault=t))}addFilterBarLegacyConfigName(){this.filterBarLegacyConfigName&&k.addFilterBarLegacyConfig(this.configName,this.filterBarLegacyConfigName)}async loadConfigFromStorage(t){try{let i;t&&await k.deleteFilterBarConfigCache(this.configName,this.resourceID),i=this.customFilterBarConfig?await this.customFilterBarConfig(this.configName,this.resourceID,{contextURI:this.dataUnit.name}):await k.loadFilterBarConfig(this.configName,this.resourceID,{contextURI:this.dataUnit.name}),this.filterConfig=i.map((t=>this.normalizeItem(t))),this.filterConfig.sort(((t,i)=>this._filtersComparator(t,i)))}catch(t){throw new h(this.getMessage("snkFilterBar.failToLoadConfig"),t)}}async attachDataUnit(){if(null==this.dataUnit){let t=this._element.parentElement;for(;t;)if("SNK-DATA-UNIT"===t.tagName.toUpperCase()){const i=t;this.dataUnit=i.dataUnit,this.dataUnit?await this.registryFilterProvider():i.addEventListener("dataUnitReady",(async t=>{this.dataUnit=t.detail,await this.registryFilterProvider()}));break}t=t.parentElement}else await this.registryFilterProvider()}filterChangeListener(t){this.updateFilter(t.detail)}async showFilterModal(){let t=n.copy(this.filterConfig);t=t.sort(((t,i)=>t.originOrder-i.originOrder)),this._filterModalFactory=new L({filterConfig:t,configName:this.configName,onComplete:t=>{var i;this.filterConfig=t.map(this.normalizeItem).sort(((t,i)=>this._filtersComparator(t,i))),null===(i=this.afterApplyConfig)||void 0===i||i.call(this)},disablePersonalizedFilter:this.disablePersonalizedFilter,getMessage:(t,i)=>this.getMessage(t,i),onAddPersonalizedFilter:t=>this.addPersonalizedFilter(t),onEditPersonalizedFilter:(t,i)=>this.editPersonalizedFilter(t,i),onDeletePersonalizedFilter:(t,i,e)=>this.deletePersonalizedFilter(t,_.PERSONALIZED,i,e)}),await this._filterModalFactory.showModal()}addPersonalizedFilter(t=!1){this._filterModalFactory.closeModal(),this._isDefaultFilter=t,this.personalizedFilterId=void 0,this.showPersonalizedFilter=!0,window.requestAnimationFrame((()=>{this._elPersonalizedFilter.createPersonalizedFilter()}))}editPersonalizedFilter(t,i=!1){this._filterModalFactory.closeModal(),this._isDefaultFilter=i,this.showPersonalizedFilter=!0,this.personalizedFilterId=t}deletePersonalizedFilter(t,i,e,s=!1){if(s)return k.removeDefaultFilter(t,this.resourceID,e),void(this._isDefaultFilter=!1);i===_.PERSONALIZED&&k.removePersonalizedFilter(t,this.resourceID,e)}handleHidePersonalizedFilter(t){t?this.loadConfigFromStorage().then((()=>{this.hidePersonalizedFilter()})):this.hidePersonalizedFilter()}hidePersonalizedFilter(){this.personalizedFilterId=void 0,this.showPersonalizedFilter=!1,this._isDefaultFilter=!1}async componentWillLoad(){var t;try{if(this._application=d.getContextValue("__SNK__APPLICATION__"),await this.attachDataUnit(),this._application){if(this._application.enableLockManagerLoadingApp&&this.enableLockManagerLoadingComp){const t=c.addLockManagerCtxId(this._element);this._resolveLoading=c.lock(t,u.APP_LOADING)}await Promise.all([this.loadPermitions(),this.addFilterBarLegacyConfigName(),this.loadConfigFromStorage()])}}finally{null===(t=this._resolveLoading)||void 0===t||t.call(this)}}componentDidRender(){this.processPendingFilter()}render(){if(this.dataUnit&&this.filterConfig&&0!==this.filterConfig.length)return this.showPersonalizedFilter?e("snk-personalized-filter",{class:"filter-bar__personalized-filter",filterId:this.personalizedFilterId,ref:t=>this._elPersonalizedFilter=t,isDefaultFilter:this._isDefaultFilter,onEzCancel:()=>this.handleHidePersonalizedFilter(!1),onEzAfterSave:()=>this.handleHidePersonalizedFilter(!0),entityUri:this.dataUnit.name,configName:this.configName,resourceID:this.resourceID}):"regular"!==this.mode?e(s,{"data-mode":this.mode},this.getPersonalizedFilterVariableItems(),"button"===this.mode&&e("ez-button",{class:"ez-margin-left--medium",size:"small",label:this.getMessage("snkFilterBar.filters",void 0,this.getMessage("snkFilterBar.filters")),onClick:this.showFilterModal.bind(this)})):e(s,null,e("div",null,e("span",{class:"snk-filter-bar__title",title:this.title,"data-tooltip":this.title,"data-flow":"bottom"},this.title)),e("ez-scroller",{class:"snk-filter-bar__scroller",direction:b.HORIZONTAL,activeShadow:!0,locked:this.scrollerLocked},e("section",{class:"snk-filter-bar__filter-item-container"},this.getFilterItems())),e("ez-button",{class:"ez-padding-left--medium ez-margin-top--extra-small",size:"small",label:this.getMessage("snkFilterBar.filters",void 0,this.getMessage("snkFilterBar.filters")),onClick:this.showFilterModal.bind(this)},e("ez-icon",{slot:"leftIcon",iconName:"plus",class:"ez-padding-right--small"})))}get _element(){return r(this)}static get watchers(){return{filterConfig:["observeFilterConfig"]}}};T.style='.sc-snk-filter-bar-h{display:grid;grid-template-columns:1fr minmax(100px, 100%) 1fr 1fr;--snk-personalized-filter--z-index:var(--elevation--20, 20);--snk-personalized-filter--background-color:var(--background--xlight, #fff)}.snk-filter-bar__title.sc-snk-filter-bar{max-width:260px;display:inline-block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:16px;font-family:var(--font-pattern, Arial);font-weight:var(--text-weight--large, 600);color:var(--color--title-primary, #2B3A54);margin-top:12px}[data-mode="hidden"].sc-snk-filter-bar-h{width:0px;height:0px}[data-mode="button"].sc-snk-filter-bar-h{grid-template-columns:1fr;width:fit-content}.snk-filter__popover-container.sc-snk-filter-bar{display:flex;cursor:auto}.filter-bar__personalized-filter.sc-snk-filter-bar{display:flex;flex-direction:column;position:fixed;top:0;left:0;width:100%;height:100%;overflow:auto;z-index:var(--snk-personalized-filter--z-index);background-color:var(--snk-personalized-filter--background-color)}.snk-filter__popover.sc-snk-filter-bar{display:flex;flex-direction:column;position:absolute;width:fit-content;height:fit-content;min-width:265px;background-color:var(--background--xlight, #fff);border-radius:var(--border--radius-medium, 12px);box-shadow:var(--shadow, 0px 0px 16px 0px #000)}.snk-filter-item__editor-header.sc-snk-filter-bar{flex-grow:1;font-weight:var(--text-weight--medium, 400);color:var(--color--title-primary, #2B3A54)}.snk-filter__popover-rule.sc-snk-filter-bar{border-style:solid;border-color:var(--color--disable-secondary, #F2F5F8);border-radius:1px;border-width:1px;width:100%}.editor__ez-check.sc-snk-filter-bar{--ez-check__label--padding-left:0}.snk-filter-item__editor-header-button.sc-snk-filter-bar{cursor:pointer;background-color:transparent;border:none;padding:3px;outline-color:var(--color--primary)}.snk-filter-bar__divider.sc-snk-filter-bar{margin-bottom:var(--space--small);height:80%}.snk-filter-bar__filter-item-container.sc-snk-filter-bar{display:flex;align-items:start;margin:var(--space--2, 2px) 0}.snk-filter-bar__scroller.sc-snk-filter-bar .sc-snk-filter-bar:first-child{margin-left:var(--space-extra-small, 3px)}.snk-filter-bar__filter-list-items-container.sc-snk-filter-bar{overflow-y:auto;max-height:360px;margin-top:var(--space--small, 6px)}.snk-filter-bar__filter-list-item.sc-snk-filter-bar{cursor:pointer;border-radius:var(--border--radius-small, 6px);border:none;background-color:transparent}.snk-filter-bar__filter-list-item__label.sc-snk-filter-bar{color:var(--title--primary)}.snk-filter-bar__filter-list-item__label--secondary.sc-snk-filter-bar{color:var(--text--primary)}.snk-filter-bar__filter-list-item__icon.sc-snk-filter-bar{--ez-icon--color:var(--title--primary)}.snk-filter-bar__filter-list-item__icon--secondary.sc-snk-filter-bar{--ez-icon--color:var(--text--secondary)}.snk-filter-bar__filter-list-item.sc-snk-filter-bar:focus-visible{outline:none;background-color:var(--background--medium)}.snk-filter-bar__filter-list-item.sc-snk-filter-bar:hover{background-color:var(--background--medium)}.snk-filter-bar__filter-list-items-container--empty.sc-snk-filter-bar{width:100%;height:100px;display:flex;justify-content:center;align-self:center;align-items:center}.snk-filter-bar__filter-list-items-button--active.sc-snk-filter-bar{position:relative}.snk-filter-bar__filter-list-items-button--active.sc-snk-filter-bar::after{display:flex;position:absolute;content:"";width:8px;height:8px;top:7px;left:17px;background-color:var(--icon--alert--color, #008561);border-radius:50%}.snk-filter-bar__filter-modal-item.sc-snk-filter-bar{--modal-item-border-width:2px;display:flex;flex-direction:row;margin-left:var(--modal-item-border-width);border-radius:var(--border--radius-medium, 12px);background-color:var(--background--medium, #f0f3f7);border:none;width:100%}.snk-filter-bar__filter-modal-item.sc-snk-filter-bar:focus-visible{outline:var(--color--primary) solid var(--modal-item-border-width)}.snk-filter-bar__filter-modal-item__check.sc-snk-filter-bar{width:auto}.snk-filter-bar__filter-modal-item__label.sc-snk-filter-bar{font-weight:var(--text-weight--medium)}.snk-filter-bar__filter-modal-content.sc-snk-filter-bar{display:grid;grid-template-rows:auto auto 1fr auto;width:99%;height:100%}';const A=class{constructor(e){t(this,e),this.visibleChanged=i(this,"visibleChanged",7),this.filterChange=i(this,"filterChange",3),this.detailIsVisible=void 0,this.config=void 0,this.getMessage=void 0,this.showChips=!0}observeDetailIsVisible(t){this.visibleChanged.emit(t)}filterChangeListener(){this.hideDetail()}async showUp(t=!1){var i;this._filterItemElement.scrollIntoView({behavior:"auto",block:"nearest",inline:"nearest"}),t&&(await(null===(i=this._chipElement)||void 0===i?void 0:i.setBlur()),await this._popover.showUnder(this._chipElement))}async hideDetail(){await this._popover.hide()}getConfigChanges(){var t;const i=this.config;(null===(t=i.groupedItems)||void 0===t?void 0:t.length)&&(i.visible=!1,i.groupedItems=i.groupedItems.map((t=>Object.assign(Object.assign({},t),{visible:!1}))));const e=i.type===_.MULTI_LIST&&Array.isArray(i.value)?i.value.map((t=>Object.assign(Object.assign({},t),{check:!1}))):void 0;return Object.assign(Object.assign({},i),{value:e})}clearFilter(t){if(null==t||t.stopPropagation(),this.canClearFilter()){const t=this.getConfigChanges();this.filterChange.emit(t)}else this.togglePopover()}async togglePopover(t){null==t||t.preventDefault(),null==t||t.stopPropagation(),this.detailIsVisible?await this.hideDetail():await this.showUp(!0)}getLabel(t=!1){var i,e;const{type:s,value:r,label:l,props:a,groupedItems:n=[]}=this.config;if(r||n.length){if(s===_.BINARY_SELECT){const[i,e]=a.options,s=this.getMessage("snkFilterBar.binarySelectTooltip");if(i.name===r)return t?`${s} ${String(i.label).toLowerCase()}`:i.label;if(e.name===r)return t?`${s} ${String(e.label).toLowerCase()}`:e.label}if(s===_.MULTI_SELECT)return`${l}: ${a.options.find((t=>t.value===r)).label}`;if(s===_.PERIOD){let{end:i,start:e}=r;"string"==typeof i&&(i=new Date(i),i.setMinutes(i.getMinutes()+i.getTimezoneOffset())),"string"==typeof e&&(e=new Date(e),e.setMinutes(e.getMinutes()+e.getTimezoneOffset()));const s=new Intl.DateTimeFormat("pt-BR");if(i&&e){const s=e.getFullYear()===i.getFullYear(),r=Object.assign({day:"2-digit",month:"2-digit"},(!s||t)&&{year:"2-digit"}),a=f.formatDate(e,r),n=f.formatDate(i,r);return t?this.getMessage("snkFilterBar.fullPeriodTooltip",{LABEL:l,START_LABEL:a,END_LABEL:n}):`${l}: ${a} → ${n}`}return e?`${l}: ${this.getMessage("snkFilterBar.onlyStartToltip")} ${s.format(e)}`:i?`${l}: ${this.getMessage("snkFilterBar.onlyEndToltip")} ${s.format(i)}`:l}if(s===_.SEARCH)return`${l}: ${r.value} - ${r.label}`;if(s===_.PERSONALIZED){const t=this.calculateActiveCount(n);return t<=0?l:`${l}: ${this.getMessage("snkFilterBar.personalizedCount",{activeCount:t})}`}if(s===_.MULTI_LIST){const e=(null!==(i=r.elements)&&void 0!==i?i:r).filter((t=>null==t?void 0:t.check));return this.getLabelFromCheckedOptions(e,l,t)}if(s===_.CHECK_BOX_LIST){const i=Object.entries(null!=r?r:{}).filter((([t,i])=>!0===i)).map((([t,i])=>t)),s=(null!==(e=a.options)&&void 0!==e?e:[]).filter((t=>i.includes(t.name)));return this.getLabelFromCheckedOptions(s,l,t)}if(s===_.NUMBER&&a.variation===x.INTERVAL){const{start:t,end:i}=r;if(!isNaN(t)&&!isNaN(i))return this.getMessage("snkFilterBar.fullIntervalTooltip",{LABEL:l,START_LABEL:t,END_LABEL:i});if(!isNaN(t))return`${l}: ${this.getMessage("snkFilterBar.onlyStartToltip")} ${Number(t)}`;if(!isNaN(i))return`${l}: ${this.getMessage("snkFilterBar.onlyEndToltip")} ${Number(i)}`}return this.config.mask?`${l}: ${new m(this.config.mask).format(r)}`:`${l}: ${r}`}return l}getLabelFromCheckedOptions(t,i,e){const s=t.length;return 0===s?`${i}`:s>1?e?`${i}: ${t.map((t=>t.label)).join(",")}`:`${i}: ${s} ${this.getMessage("snkFilterBar.multiListToltip")}`:`${i}: ${t[0].label}`}calculateActiveCount(t){return t.reduce(((t,i)=>i.visible?t+1:t),0)}componentDidLoad(){this._filterItemElement&&(o.addIDInfo(this._filterItemElement),this._idSnkFilterDetail=`filterDetail_${this.config.id}`)}canClearFilter(){const{value:t,groupedItems:i=[]}=this.config;return null!=t&&this.config.type===_.MULTI_LIST?t.some((t=>t.check)):void 0!==t||i.some((t=>t.visible))}getRightIconName(){return this.canClearFilter()?"close":this.detailIsVisible?"chevron-up":"chevron-down"}getLeftIconName(){switch(this.config.type){case _.PERIOD:return"calendar";case _.PERSONALIZED:return"tune"}}hasActiveElements(t){var i,e,s;return(null===(s=null===(e=null!==(i=null==t?void 0:t.elements)&&void 0!==i?i:t)||void 0===e?void 0:e.filter((t=>null==t?void 0:t.check)))||void 0===s?void 0:s.length)>0}hasActiveValue(t){return t.type!==_.MULTI_LIST&&void 0!==t.value||this.hasActiveElements(t.value)}getEnabledChip(){if(this.detailIsVisible)return!0;if(this.config.type===_.PERSONALIZED){const{groupedItems:t=[]}=this.config;return t.some((t=>t.visible))}return this.hasActiveValue(this.config)}handleVisibilityPopover(t){this.detailIsVisible=t.detail}render(){const t=this.getLeftIconName();return e(s,null,this.showChips&&e("ez-chip",{id:this.config.id,ref:t=>this._chipElement=t,label:this.getLabel(),value:this.getEnabledChip(),onClick:t=>this.togglePopover(t),disableAutoUpdateValue:!0,type:"secondary"},t&&e("ez-icon",{ref:t=>this._leftIconElement=t,iconName:t,slot:"leftIcon"}),e("ez-icon",{ref:t=>this._rightIconElement=t,iconName:this.getRightIconName(),slot:"rightIcon",id:"removeFilter",onClick:t=>this.clearFilter(t)})),e("ez-popover-core",{ref:t=>this._popover=t,onEzVisibilityChange:t=>this.handleVisibilityPopover(t)},e("snk-filter-detail",{key:this.config.id,config:this.config,getMessage:this.getMessage,class:"sc-snk-filter-bar snk-filter__popover ez-padding--small ez-elevation--16","data-element-id":this._idSnkFilterDetail,showHardFixed:this.showChips})))}get _filterItemElement(){return r(this)}static get watchers(){return{detailIsVisible:["observeDetailIsVisible"]}}};A.style="ez-popover-core.sc-snk-filter-item{--ez-popover__box--z-index:var(--elevation--20, 20);--ez-popover__box--overlay-z-index:var(--elevation--16, 16)}";const P="__SHOWMORE__",D=class{constructor(e){t(this,e),this.snkItemSelected=i(this,"snkItemSelected",7),this._preselection=-1,this.innerClickCheck=(t,i)=>i.id!=p.MODAL_ELEMENT_ID||(this._detailIsVisible=!1,!1),this._filterArgument=void 0,this._showAll=void 0,this.label=void 0,this.iconName=void 0,this.items=void 0,this.getMessage=void 0,this.emptyText=void 0,this.findFilterText=void 0,this.buttonClass=void 0}showDetail(){this._preselection=-1,this._floatingID=p.float(this._popover,this._popoverContainer,{autoClose:!0,innerClickTest:this.innerClickCheck,backClickListener:()=>this.onListCloseCallback(),useOverlay:!0}),this._detailIsVisible=!0,this._showAll=!1,this._filterArgument="",this._filterInput.setFocus()}async hideDetail(){null!=this._floatingID&&p.close(this._floatingID)}onListCloseCallback(){this._floatingID=void 0,this._detailIsVisible=!1}buttonClick(){this._detailIsVisible?this.hideDetail():this.showDetail()}componentDidLoad(){this._element&&o.addIDInfo(this._element)}componentDidRender(){null==this._floatingID&&this._popover&&this._popover.remove()}buildIdElement(t,i){if(!t)return;const e={id:i};t.removeAttribute(o.DATA_ELEMENT_ID_ATTRIBUTE_NAME),o.addIDInfoIfNotExists(t,"filterItemList",e)}buildItemElement(t){const i=++this._selectableItemsCount;return e("button",{ref:i=>i&&this.buildIdElement(i,t.label),id:`filter-item${i}`,onFocusin:()=>this._preselection=i,class:"ez-col ez-col--sd-12 ez-align--middle ez-padding--small sc-snk-filter-bar snk-filter-bar__filter-list-item",onClick:()=>this.itemSelected(t.name),name:t.label,key:i},t.iconName?e("ez-icon",{iconName:t.iconName,size:"small",class:`ez-padding-right--extra-small sc-snk-filter-bar snk-filter-bar__filter-list-item__icon ${t.iconClass||""}`}):void 0,e("div",{class:`ez-text ez-text--medium ez-text--primary ez-padding--extra-small sc-snk-filter-bar snk-filter-bar__filter-list-item__label ${t.labelClass||""}`},t.label))}itemSelected(t){t===P?this._showAll=!0:(this.hideDetail(),this.snkItemSelected.emit(t))}getFilterItems(){const t=this.items?v.applyStringFilter(this._filterArgument,this.items.filter((t=>"FILTER"===t.kind))):[];return 0===t.length?e("div",{class:"ez-text ez-text--medium ez-text--primary ez-padding--extra-small sc-snk-filter-bar snk-filter-bar__filter-list-items-container--empty"},this.emptyText):(!this._filterArgument&&!this._showAll&&t.length>6&&(t.splice(5),t.push({kind:"INTERNAL",label:this.getMessage("snkFilterList.showMore"),iconName:"dots-horizontal",name:P,iconClass:"snk-filter-bar__filter-list-item__icon--secondary",labelClass:"snk-filter-bar__filter-list-item__label--secondary"})),this._selectableItemsCount=0,e("div",{class:"sc-snk-filter-bar snk-filter-bar__filter-list-items-container"},t.map((t=>this.buildItemElement(t)))))}getFooterItems(){return this.items.filter((t=>"FOOTER"===t.kind))}keyDownHandler(t){switch(t.key){case"ArrowDown":this.changePreselection(this._preselection+1),t.stopImmediatePropagation(),t.stopPropagation(),t.preventDefault();break;case"ArrowUp":this.changePreselection(this._preselection-1),t.stopImmediatePropagation(),t.stopPropagation(),t.preventDefault()}}changePreselection(t){if(t<0&&(t=this._selectableItemsCount),this._preselection=t>this._selectableItemsCount?0:t,0===this._preselection)this._filterInput.setFocus();else{const t=this._element.querySelector(`#filter-item${this._preselection}`);t&&t.focus()}}render(){return e(s,{class:"ez-flex ez-flex--column"},e("ez-button",{class:this.buttonClass,label:this.label,onClick:()=>this.buttonClick(),mode:this.iconName?"icon":void 0,iconName:this.iconName,size:"small"},e("slot",{name:"leftIcon"})),e("section",{class:"ez-margin-top--small sc-snk-filter-bar snk-filter__popover-container",ref:t=>this._popoverContainer=t},e("div",{class:"sc-snk-filter-bar snk-filter__popover ez-padding--small ez-elevation--4",ref:t=>this._popover=t},e("ez-filter-input",{ref:t=>this._filterInput=t,"data-element-id":"serachFilters",mode:"slim",label:this.findFilterText,value:this._filterArgument,onEzChange:t=>this._filterArgument=t.detail,onFocus:()=>this._preselection=0}),this.getFilterItems(),e("hr",{class:"sc-snk-filter-bar snk-filter__popover-rule"}),this.items?this.getFooterItems().map((t=>this.buildItemElement(t))):void 0)))}get _element(){return r(this)}},S=class{constructor(i){t(this,i),this.getMessage=void 0,this.configName=void 0,this.filters=void 0,this.applyFilters=void 0,this.closeModal=void 0,this.addPersonalizedFilter=void 0,this.editPersonalizedFilter=void 0,this.deletePersonalizedFilter=void 0,this.filtersToDelete=[],this.filterDefaultToDelete=void 0,this.disablePersonalizedFilter=void 0}deletePersonalizedFilterListener(t){this.filtersToDelete.push(t.detail)}getCustomMessage(t,i){var e;return null===(e=this.getMessage)||void 0===e?void 0:e.call(this,`snkFilterBar.filterModal.${t}`,i)}handleClearAll(){const{customFilters:t,quickFilters:i,otherFilters:e,multiListFilters:s}=this.filters.reduce(((t,i)=>i.type===_.MULTI_LIST?(t.multiListFilters.push(i),t):i.filterType===I.QUICK_FILTER?(t.quickFilters.push(i),t):i.filterType===I.CUSTOM_FILTER?(t.customFilters.push(i),t):i.filterType===I.OTHER_FILTERS?(t.otherFilters.push(i),t):t),{quickFilters:[],customFilters:[],otherFilters:[],multiListFilters:[]});this.handleClearFilterList(i),this.handleClearCustomFilters(t),this.handleClearOthersFilters(e),s.forEach((t=>this.handleClearSigleFilter(t)))}handleClearOthersFilters(t){this.filters=this.filters.map((i=>t.includes(i)?Object.assign(Object.assign({},i),{value:void 0}):i))}handleClearCustomFilters(t){this.filters.forEach(((i,e)=>{i.filterType===I.CUSTOM_FILTER&&(this.filters[e]=this.clearAllCustomFilter(t).shift())}))}clearAllCustomFilter(t){return t.map((t=>{const i=Object.assign({},t);return delete i.value,i.visible=!1,i.groupedItems&&(i.groupedItems=this.clearAllCustomFilter(i.groupedItems)),i}))}hasChangeToSave(){return n.objectToString(this.filters)!==n.objectToString(this._originalFilterConfig)}handleClose(){if(this.hasChangeToSave())return y.confirm(this.getCustomMessage("validations.notSaved.title"),this.getCustomMessage("validations.notSaved.message")).then((t=>{t&&this.closeModal()}));this.closeModal()}handleApplyFilters(){const t=this.filters.find((t=>t.filterType===I.CUSTOM_FILTER||t.filterType===I.DEFAULT_FILTER));this.isValidCustomFilter(t)&&this.applyFilters(this.filters),this.filtersToDelete.length>0&&(this.filtersToDelete.forEach((t=>{this.deletePersonalizedFilter(t,this.configName)})),this.filtersToDelete=[]),this.filterDefaultToDelete&&(this.deletePersonalizedFilter(this.filterDefaultToDelete,this.configName,!0),this._defaultFilter=void 0,this.filterDefaultToDelete=void 0)}isValidCustomFilter(t){return!!w.validateVariableValues(t)||(y.alert(this.getCustomMessage("validations.notFullFilled.title"),this.getCustomMessage("validations.notFullFilled.message")),!1)}modalActionListener(t){switch(t.detail){case C.CANCEL:this.handleClearAll();break;case C.OK:this.handleApplyFilters();break;case C.CLOSE:this.handleClose()}}handleFilterChange(t){this.filters=this.filters.map((i=>i.id===t.id?t:i))}handleClearFilterList(t){this.filters=this.filters.map((i=>t.includes(i)?Object.assign(Object.assign({},i),{value:void 0}):i))}handleClearSigleFilter(t){if(_.MULTI_LIST===t.type){let i=n.copy(t);this.uncheckFilterValues(i.value);const e=n.copy(this.filters),s=e.findIndex((i=>i.id===t.id));return e.splice(s,1,i),void(this.filters=n.copy(e))}if(_.CHECK_BOX_LIST===t.type){const i=n.copy(this.filters);return i.find((i=>i.id===t.id)).value=void 0,void(this.filters=n.copy(i))}this.filters.find((i=>i.id===t.id)).value=void 0,this.filters=n.copy(this.filters)}uncheckFilterValues(t){return t.forEach((t=>{t&&(t.check=!1)})),t}renderFilterItem(t,i){return e("snk-filter-modal-item",{class:i?"ez-col ez-col--sd-12":"ez-col ez-col--sd-6 ez-padding--small",filterItem:t,configName:this.configName,onFilterChange:t=>this.handleFilterChange(t.detail),onEditPersonalizedFilter:t=>this.editPersonalizedFilter(t.detail),onAddPersonalizedFilter:()=>this.addPersonalizedFilter()})}isDefaultFilterNumberVariation(t){var i;return t.type===_.NUMBER&&(!t.props.variation||(null===(i=t.props)||void 0===i?void 0:i.variation)===x.DEFAULT)}mountFiltersLines(t){let i=0,e=!1;const s={};for(let r=0;r<t.length;r++){s[i]=s[i]||[];const l=t[r],a=r===t.length-1,n=l.type===_.TEXT||this.isDefaultFilterNumberVariation(l),o=!a&&(t[r+1].type===_.TEXT||this.isDefaultFilterNumberVariation(t[r+1]));n&&o||e?(s[i].push(l),e=s[i].length<2,2===s[i].length&&++i):(s[i]=s[i]||[],s[i].push(l),++i)}return Object.values(s)}renderFilterLine(t){const i=1===t.length;return t.map((t=>this.renderFilterItem(t,i)))}getIformedFiltersCount(t){let i=0;return t.forEach((t=>{var e,s,r,l,a,n;_.MULTI_LIST!==t.type?_.CHECK_BOX_LIST!==t.type?null==t.groupedItems?t.value&&i++:i=t.groupedItems.filter((t=>t.visible)).length:i+=Object.entries(null!==(n=t.value)&&void 0!==n?n:{}).filter((([t,i])=>!0===i)).map((([t,i])=>t)).length:i+=null!==(a=null===(l=null===(r=null!==(s=null===(e=t.value)||void 0===e?void 0:e.elements)&&void 0!==s?s:t.value)||void 0===r?void 0:r.filter((t=>null==t?void 0:t.check)))||void 0===l?void 0:l.length)&&void 0!==a?a:0})),i}renderCollapsibleFilterBox(t,i,s,r=!0){if(!i.length)return null;const l=this.getIformedFiltersCount(i),a=this.mountFiltersLines(i);return e("ez-collapsible-box",{class:"snk-filter-modal__collapsible-box",headerSize:"medium",value:!0,label:t},!!l&&e("ez-badge",{class:"ez-badge--primary-subtle",slot:"rightSlot",label:null==l?void 0:l.toString()}),e("div",{class:"ez-row snk-filter-modal__rendered-items"},a.map(this.renderFilterLine.bind(this))),r&&e("div",{class:"ez-flex ez-flex--justify-end grow"},e("ez-button",{class:"ez-button--tertiary",size:"medium",label:this.getCustomMessage("clearModal"),onClick:()=>s?this.handleClearSigleFilter(i[0]):this.handleClearFilterList(i)})))}handleDeleteFilter(){this._application.confirm(this.getMessage("snkPersonalizedFilter.deleteConfirm.title"),this.getMessage("snkPersonalizedFilter.info.deleteDefaultFilterConfirm"),"alert-circle-inverted","critical").then((t=>{t&&(this.filterDefaultToDelete=this._defaultFilter,this.filters=this.filters.filter((t=>t.id!==I.DEFAULT_FILTER)))}))}handleActionSelectedDefaultFilter({detail:t}){switch(t){case $.CREATE:this.addPersonalizedFilter(!0);break;case $.EDIT:this.editPersonalizedFilter(this._defaultFilter.id,!0);break;case $.REMOVE:this.handleDeleteFilter()}}getCustomFilter(t){return t.filter((t=>t.filterType===I.CUSTOM_FILTER))}getDefaultFilter(t){return t.find((t=>t.id===z.id))}componentWillLoad(){this._application=d.getContextValue("__SNK__APPLICATION__")}componentWillRender(){this._modalTitle=this.getCustomMessage("title"),this._okButtonLabel=this.getCustomMessage("okButtonLabel"),this._cancelButtonLabel=this.getCustomMessage("cancelButtonLabel")}componentDidLoad(){this._originalFilterConfig||(this._originalFilterConfig=this.filters)}render(){this._defaultFilter=this.getDefaultFilter(this.filters);const t=this.getCustomFilter(this.filters),i=this.filters.filter((t=>t.filterType===I.QUICK_FILTER)),s=this.filters.filter((t=>t.filterType===I.OTHER_FILTERS));return e("ez-modal-container",{class:"snk-filter-modal__container",modalTitle:this._modalTitle,cancelButtonLabel:this._cancelButtonLabel,okButtonLabel:this._okButtonLabel,onEzModalAction:this.modalActionListener.bind(this)},e("div",{class:"snk-filter-modal__content ez-col--sd-12"},e("snk-default-filter",{getMessage:this.getCustomMessage.bind(this),hasDefaultFilter:!!this._defaultFilter,onActionSelected:this.handleActionSelectedDefaultFilter.bind(this)}),!this.disablePersonalizedFilter&&this.renderCollapsibleFilterBox(this.getCustomMessage("customFilters"),t,!1,!1),this.renderCollapsibleFilterBox(this.getCustomMessage("quickFilters"),i,!1),s.map((t=>this.renderCollapsibleFilterBox(t.label,[t],!0)))))}};S.style="ez-modal{--ez-modal-content-padding:24px 12px}.snk-filter-modal__container{width:344px;max-width:344px;min-width:344px;overflow:hidden}.snk-filter-modal__content{display:flex;flex-direction:column;gap:var(--space--medium, 12px);padding-right:var(--space--3xs, 4px)}.snk-filter-modal__collapsible-box{border:var(--border--small, 1px solid) var(--color--strokes, #DCE0E8);border-radius:var(--border--radius-medium);padding:var(--space--medium, 12px) var(--space--small, 6px)}.snk-filter-modal__rendered-items{max-height:760px;overflow-x:hidden;overflow-y:auto}.snk-filter-modal__rendered-items::-webkit-scrollbar{width:var(--space--small);min-width:var(--space--small);max-width:var(--space--small)}";export{T as snk_filter_bar,A as snk_filter_item,D as snk_filter_list,S as snk_filter_modal}
|