@sankhyalabs/sankhyablocks 9.2.0-dev.4 → 9.2.0-dev.6

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.
@@ -27,7 +27,7 @@ export declare class SnkForm {
27
27
  */
28
28
  messagesBuilder: SnkMessageBuilder;
29
29
  /**
30
- * Chave da configuração legado do formulário.
30
+ * Chave da configuração legada do formulário.
31
31
  */
32
32
  formLegacyConfigName: string;
33
33
  /**
@@ -35,33 +35,58 @@ export declare class SnkForm {
35
35
  */
36
36
  resourceID: string;
37
37
  /**
38
- * Emitido quando o botão de voltar é acionado.
38
+ * @deprecated Esta propriedade foi descontinuada. Ela não tem mais efeito sobre o componente.
39
39
  */
40
40
  exit: EventEmitter<void>;
41
41
  /**
42
- * Emitido sempre que houver click de botão ou ação.
42
+ * @deprecated Esta propriedade foi descontinuada. Ela não tem mais efeito sobre o componente.
43
43
  */
44
44
  actionClick: EventEmitter<string>;
45
45
  /**
46
46
  * Responsável por notificar quando ocorrer a renderização de itens do formulário.
47
+ * OBS: Emitido no subcomponente snk-form-view
47
48
  */
48
49
  formItemsReady: EventEmitter<Array<HTMLElement>>;
49
50
  /**
50
51
  * Exibe a janela de configurações do formulário.
52
+ * @async
53
+ * @returns {Promise<void>}
51
54
  */
52
55
  showConfig(): Promise<void>;
53
56
  /**
54
57
  * Fecha a janela de configurações do formulário.
58
+ * @async
59
+ * @returns {Promise<void>}
55
60
  */
56
61
  hideConfig(): Promise<void>;
57
62
  /**
58
- * Registra um editor customizado para campos da grade e formulário.
63
+ * Registra um editor customizado para campos do formulário.
64
+ * @async
65
+ * @param {string} fieldName - Nome do campo.
66
+ * @param {ICustomEditor} customEditor - Editor customizado.
67
+ * @returns {Promise<void>}
59
68
  */
60
69
  addCustomEditor(fieldName: string, customEditor: ICustomEditor): Promise<void>;
61
70
  /**
62
71
  * Altera/adiciona uma propriedade nos metadados do campo.
72
+ * @async
73
+ * @param {string} fieldName - Nome do campo.
74
+ * @param {string} propName - Nome da propriedade.
75
+ * @param {any} value - Valor da propriedade.
76
+ * @returns {Promise<void>}
63
77
  */
64
78
  setFieldProp(fieldName: string, propName: string, value: any): Promise<void>;
79
+ /**
80
+ * Valida o formulário.
81
+ * @async
82
+ * @returns {Promise<void>}
83
+ * @description
84
+ * Este método executa a validação do formulário, verificando se todos os campos estão
85
+ * preenchidos corretamente de acordo com as regras definidas.
86
+ * Se a validação falhar, uma exceção será lançada com os detalhes dos erros encontrados.
87
+ * Caso contrário, o método será resolvido sem erros.
88
+ */
89
+ validate(): Promise<void>;
65
90
  private closeConfig;
66
91
  private dataunitReady;
67
92
  private setCustomEditors;
@@ -26,79 +26,81 @@ export declare class SnkTaskbar {
26
26
  _hasToUpdateOverFlow: boolean;
27
27
  _isWaitingForSave: boolean;
28
28
  /**
29
- * Usado para determinar O alinhamento dos items na taskbar.
29
+ * @description Define o alinhamento dos itens da barra de tarefas à direita.
30
30
  */
31
31
  alignRigth: boolean;
32
32
  /**
33
- * Usado para determinar o identificador do slot que recebe elementos personalizados.
33
+ * @description Define o identificador do slot que recebe elementos personalizados.
34
34
  */
35
35
  customSlotId: string;
36
36
  /**
37
- * Usado para determinar o identificador do container na DOM que é responsavel por guardar os elementos personalizados
37
+ * @description Define o identificador do contêiner na DOM que é responsável por guardar os elementos personalizados
38
38
  * que não podem ser passados por slot.
39
- *
40
- * Exemplo: Elementos customizados na Taskbar da aba de detalhes.
39
+ * @example
40
+ * Elementos customizados na Taskbar da aba de detalhes.
41
41
  */
42
42
  customContainerId: string;
43
43
  /**
44
- * Define como será o comportamento da taskbar quando ocorrer overflow
44
+ * @description Define como será o comportamento da barra de tarefas quando ocorrer um overflow de itens.
45
45
  */
46
46
  overflowStrategy: 'hiddenItems' | 'none';
47
47
  /**
48
- * Usado para guardar ou recuperar as configurações do formulário.
48
+ * @description Nome da configuração usada para salvar ou recuperar as configurações do formulário. Também é utilizado como fallback para a chave de armazenamento do exportador de dados.
49
49
  */
50
50
  configName: string;
51
51
  /**
52
- * Identificador de recursos como configurações e acesso.
52
+ * @description Identificador de recursos, como configurações e permissões de acesso.
53
53
  */
54
54
  resourceID: string;
55
55
  /**
56
- * Lista separada por virgula, contendo todos os elementos a serem criados.
56
+ * @description Lista de botões, separados por vírgula, que define todos os elementos a serem criados na barra de tarefas.
57
57
  */
58
58
  buttons: string;
59
59
  /**
60
- * Mapa com definição de botões personalizados. A chave do mapa deve ser
61
- * passada na lista "buttons" no lugar onde o botão irá aparecer.
60
+ * @description Mapa com definições de botões personalizados. A chave do mapa deve ser informada na propriedade `buttons` no local onde o botão deve ser renderizado.
62
61
  */
63
62
  customButtons: Map<string, CustomButton>;
64
63
  /**
65
- * Lista de ações que devem ser usadas no botão "Mais opções" do componente snk-taskbar.
64
+ * @description Lista de ações a serem exibidas no botão "Mais opções".
66
65
  */
67
66
  actionsList: Array<Action>;
68
67
  /**
69
- * Lista de ações que devem ser usadas no botão "Mais opções" do componente snk-taskbar.
68
+ * @description Lista de ações que devem ser usadas no botão "Mais opções" do componente snk-taskbar.
70
69
  */
71
70
  actionsSettingsList: Array<Action>;
72
71
  /**
73
- * Determina qual botão deve ter aparência primária.
72
+ * @description Define qual botão deve ter a aparência de destaque (primário).
74
73
  */
75
74
  primaryButton: string;
76
75
  /**
77
- * Array contendo todos os botões a serem desabilitados.
76
+ * @description Array contendo os identificadores de todos os botões que devem ser desabilitados.
78
77
  */
79
78
  disabledButtons: Array<string>;
80
79
  /**
81
- * Instância do DataUnit.
80
+ * @description Instância do `DataUnit` com a qual a barra de tarefas irá interagir para realizar operações de dados (ex: salvar, próximo, anterior).
82
81
  */
83
82
  dataUnit: DataUnit;
84
83
  /**
85
- * Altera o modo de apresentação dos botões do snk-taskbar.
84
+ * @description Altera o modo de apresentação dos botões da barra de tarefas.
86
85
  */
87
86
  presentationMode: PresentationMode;
88
87
  /**
89
- * Responsável por flexibilizar e padronizar o uso de mensagens nos blocos de construção.
88
+ * @description Responsável por flexibilizar e padronizar o uso de mensagens nos blocos de construção.
90
89
  */
91
90
  messagesBuilder: SnkMessageBuilder;
92
91
  /**
93
- * Emitido sempre que houver click de botão ou ação.
92
+ * @description Emitido sempre que um botão ou uma ação da barra de tarefas é clicado.
93
+ * @eventProperty
94
94
  */
95
95
  actionClick: EventEmitter<string>;
96
96
  /**
97
- * Emitido sempre que um save é iniciado pela taskbar.
97
+ * @description Emitido quando uma ação de salvar é iniciada pela barra de tarefas, indicando um estado de bloqueio para evitar ações concorrentes.
98
+ * @eventProperty
98
99
  */
99
100
  taskbarSaveLocker: EventEmitter<void>;
100
101
  /**
101
- * Emitido sempre que o ocorre alguma action que libera o save.
102
+ * @description Emitido quando a ação de salvar é concluída ou cancelada, liberando o estado de bloqueio.
103
+ * @eventProperty
102
104
  */
103
105
  taskbarSaveUnlocker: EventEmitter<void>;
104
106
  handleCustomSlotElementsLoaded(event: CustomEvent): void;
@@ -1554,7 +1554,11 @@ export namespace Components {
1554
1554
  }
1555
1555
  interface SnkForm {
1556
1556
  /**
1557
- * Registra um editor customizado para campos da grade e formulário.
1557
+ * Registra um editor customizado para campos do formulário.
1558
+ * @async
1559
+ * @param fieldName - Nome do campo.
1560
+ * @param customEditor - Editor customizado.
1561
+ * @returns
1558
1562
  */
1559
1563
  "addCustomEditor": (fieldName: string, customEditor: ICustomEditor) => Promise<void>;
1560
1564
  /**
@@ -1562,11 +1566,13 @@ export namespace Components {
1562
1566
  */
1563
1567
  "configName": string;
1564
1568
  /**
1565
- * Chave da configuração legado do formulário.
1569
+ * Chave da configuração legada do formulário.
1566
1570
  */
1567
1571
  "formLegacyConfigName": string;
1568
1572
  /**
1569
1573
  * Fecha a janela de configurações do formulário.
1574
+ * @async
1575
+ * @returns
1570
1576
  */
1571
1577
  "hideConfig": () => Promise<void>;
1572
1578
  /**
@@ -1583,12 +1589,26 @@ export namespace Components {
1583
1589
  "resourceID": string;
1584
1590
  /**
1585
1591
  * Altera/adiciona uma propriedade nos metadados do campo.
1592
+ * @async
1593
+ * @param fieldName - Nome do campo.
1594
+ * @param propName - Nome da propriedade.
1595
+ * @param value - Valor da propriedade.
1596
+ * @returns
1586
1597
  */
1587
1598
  "setFieldProp": (fieldName: string, propName: string, value: any) => Promise<void>;
1588
1599
  /**
1589
1600
  * Exibe a janela de configurações do formulário.
1601
+ * @async
1602
+ * @returns
1590
1603
  */
1591
1604
  "showConfig": () => Promise<void>;
1605
+ /**
1606
+ * Valida o formulário.
1607
+ * @async
1608
+ * @returns
1609
+ * @description Este método executa a validação do formulário, verificando se todos os campos estão preenchidos corretamente de acordo com as regras definidas. Se a validação falhar, uma exceção será lançada com os detalhes dos erros encontrados. Caso contrário, o método será resolvido sem erros.
1610
+ */
1611
+ "validate": () => Promise<void>;
1592
1612
  }
1593
1613
  interface SnkFormConfig {
1594
1614
  /**
@@ -2309,63 +2329,64 @@ export namespace Components {
2309
2329
  }
2310
2330
  interface SnkTaskbar {
2311
2331
  /**
2312
- * Lista de ações que devem ser usadas no botão "Mais opções" do componente snk-taskbar.
2332
+ * @description Lista de ações a serem exibidas no botão "Mais opções".
2313
2333
  */
2314
2334
  "actionsList": Array<Action>;
2315
2335
  /**
2316
- * Lista de ações que devem ser usadas no botão "Mais opções" do componente snk-taskbar.
2336
+ * @description Lista de ações que devem ser usadas no botão "Mais opções" do componente snk-taskbar.
2317
2337
  */
2318
2338
  "actionsSettingsList": Array<Action>;
2319
2339
  /**
2320
- * Usado para determinar O alinhamento dos items na taskbar.
2340
+ * @description Define o alinhamento dos itens da barra de tarefas à direita.
2321
2341
  */
2322
2342
  "alignRigth": boolean;
2323
2343
  /**
2324
- * Lista separada por virgula, contendo todos os elementos a serem criados.
2344
+ * @description Lista de botões, separados por vírgula, que define todos os elementos a serem criados na barra de tarefas.
2325
2345
  */
2326
2346
  "buttons": string;
2327
2347
  /**
2328
- * Usado para guardar ou recuperar as configurações do formulário.
2348
+ * @description Nome da configuração usada para salvar ou recuperar as configurações do formulário. Também é utilizado como fallback para a chave de armazenamento do exportador de dados.
2329
2349
  */
2330
2350
  "configName": string;
2331
2351
  /**
2332
- * Mapa com definição de botões personalizados. A chave do mapa deve ser passada na lista "buttons" no lugar onde o botão irá aparecer.
2352
+ * @description Mapa com definições de botões personalizados. A chave do mapa deve ser informada na propriedade `buttons` no local onde o botão deve ser renderizado.
2333
2353
  */
2334
2354
  "customButtons": Map<string, CustomButton>;
2335
2355
  /**
2336
- * Usado para determinar o identificador do container na DOM que é responsavel por guardar os elementos personalizados que não podem ser passados por slot. Exemplo: Elementos customizados na Taskbar da aba de detalhes.
2356
+ * @description Define o identificador do contêiner na DOM que é responsável por guardar os elementos personalizados que não podem ser passados por slot.
2357
+ * @example Elementos customizados na Taskbar da aba de detalhes.
2337
2358
  */
2338
2359
  "customContainerId": string;
2339
2360
  /**
2340
- * Usado para determinar o identificador do slot que recebe elementos personalizados.
2361
+ * @description Define o identificador do slot que recebe elementos personalizados.
2341
2362
  */
2342
2363
  "customSlotId": string;
2343
2364
  /**
2344
- * Instância do DataUnit.
2365
+ * @description Instância do `DataUnit` com a qual a barra de tarefas irá interagir para realizar operações de dados (ex: salvar, próximo, anterior).
2345
2366
  */
2346
2367
  "dataUnit": DataUnit;
2347
2368
  /**
2348
- * Array contendo todos os botões a serem desabilitados.
2369
+ * @description Array contendo os identificadores de todos os botões que devem ser desabilitados.
2349
2370
  */
2350
2371
  "disabledButtons": Array<string>;
2351
2372
  /**
2352
- * Responsável por flexibilizar e padronizar o uso de mensagens nos blocos de construção.
2373
+ * @description Responsável por flexibilizar e padronizar o uso de mensagens nos blocos de construção.
2353
2374
  */
2354
2375
  "messagesBuilder": SnkMessageBuilder;
2355
2376
  /**
2356
- * Define como será o comportamento da taskbar quando ocorrer overflow
2377
+ * @description Define como será o comportamento da barra de tarefas quando ocorrer um overflow de itens.
2357
2378
  */
2358
2379
  "overflowStrategy": 'hiddenItems' | 'none';
2359
2380
  /**
2360
- * Altera o modo de apresentação dos botões do snk-taskbar.
2381
+ * @description Altera o modo de apresentação dos botões da barra de tarefas.
2361
2382
  */
2362
2383
  "presentationMode": PresentationMode1;
2363
2384
  /**
2364
- * Determina qual botão deve ter aparência primária.
2385
+ * @description Define qual botão deve ter a aparência de destaque (primário).
2365
2386
  */
2366
2387
  "primaryButton": string;
2367
2388
  /**
2368
- * Identificador de recursos como configurações e acesso.
2389
+ * @description Identificador de recursos, como configurações e permissões de acesso.
2369
2390
  */
2370
2391
  "resourceID": string;
2371
2392
  }
@@ -4147,7 +4168,7 @@ declare namespace LocalJSX {
4147
4168
  */
4148
4169
  "configName"?: string;
4149
4170
  /**
4150
- * Chave da configuração legado do formulário.
4171
+ * Chave da configuração legada do formulário.
4151
4172
  */
4152
4173
  "formLegacyConfigName"?: string;
4153
4174
  /**
@@ -4155,15 +4176,15 @@ declare namespace LocalJSX {
4155
4176
  */
4156
4177
  "messagesBuilder"?: SnkMessageBuilder;
4157
4178
  /**
4158
- * Emitido sempre que houver click de botão ou ação.
4179
+ * @deprecated Esta propriedade foi descontinuada. Ela não tem mais efeito sobre o componente.
4159
4180
  */
4160
4181
  "onActionClick"?: (event: SnkFormCustomEvent<string>) => void;
4161
4182
  /**
4162
- * Emitido quando o botão de voltar é acionado.
4183
+ * @deprecated Esta propriedade foi descontinuada. Ela não tem mais efeito sobre o componente.
4163
4184
  */
4164
4185
  "onExit"?: (event: SnkFormCustomEvent<void>) => void;
4165
4186
  /**
4166
- * Responsável por notificar quando ocorrer a renderização de itens do formulário.
4187
+ * Responsável por notificar quando ocorrer a renderização de itens do formulário. OBS: Emitido no subcomponente snk-form-view
4167
4188
  */
4168
4189
  "onFormItemsReady"?: (event: SnkFormCustomEvent<Array<HTMLElement>>) => void;
4169
4190
  /**
@@ -4832,75 +4853,79 @@ declare namespace LocalJSX {
4832
4853
  }
4833
4854
  interface SnkTaskbar {
4834
4855
  /**
4835
- * Lista de ações que devem ser usadas no botão "Mais opções" do componente snk-taskbar.
4856
+ * @description Lista de ações a serem exibidas no botão "Mais opções".
4836
4857
  */
4837
4858
  "actionsList"?: Array<Action>;
4838
4859
  /**
4839
- * Lista de ações que devem ser usadas no botão "Mais opções" do componente snk-taskbar.
4860
+ * @description Lista de ações que devem ser usadas no botão "Mais opções" do componente snk-taskbar.
4840
4861
  */
4841
4862
  "actionsSettingsList"?: Array<Action>;
4842
4863
  /**
4843
- * Usado para determinar O alinhamento dos items na taskbar.
4864
+ * @description Define o alinhamento dos itens da barra de tarefas à direita.
4844
4865
  */
4845
4866
  "alignRigth"?: boolean;
4846
4867
  /**
4847
- * Lista separada por virgula, contendo todos os elementos a serem criados.
4868
+ * @description Lista de botões, separados por vírgula, que define todos os elementos a serem criados na barra de tarefas.
4848
4869
  */
4849
4870
  "buttons"?: string;
4850
4871
  /**
4851
- * Usado para guardar ou recuperar as configurações do formulário.
4872
+ * @description Nome da configuração usada para salvar ou recuperar as configurações do formulário. Também é utilizado como fallback para a chave de armazenamento do exportador de dados.
4852
4873
  */
4853
4874
  "configName"?: string;
4854
4875
  /**
4855
- * Mapa com definição de botões personalizados. A chave do mapa deve ser passada na lista "buttons" no lugar onde o botão irá aparecer.
4876
+ * @description Mapa com definições de botões personalizados. A chave do mapa deve ser informada na propriedade `buttons` no local onde o botão deve ser renderizado.
4856
4877
  */
4857
4878
  "customButtons"?: Map<string, CustomButton>;
4858
4879
  /**
4859
- * Usado para determinar o identificador do container na DOM que é responsavel por guardar os elementos personalizados que não podem ser passados por slot. Exemplo: Elementos customizados na Taskbar da aba de detalhes.
4880
+ * @description Define o identificador do contêiner na DOM que é responsável por guardar os elementos personalizados que não podem ser passados por slot.
4881
+ * @example Elementos customizados na Taskbar da aba de detalhes.
4860
4882
  */
4861
4883
  "customContainerId"?: string;
4862
4884
  /**
4863
- * Usado para determinar o identificador do slot que recebe elementos personalizados.
4885
+ * @description Define o identificador do slot que recebe elementos personalizados.
4864
4886
  */
4865
4887
  "customSlotId"?: string;
4866
4888
  /**
4867
- * Instância do DataUnit.
4889
+ * @description Instância do `DataUnit` com a qual a barra de tarefas irá interagir para realizar operações de dados (ex: salvar, próximo, anterior).
4868
4890
  */
4869
4891
  "dataUnit"?: DataUnit;
4870
4892
  /**
4871
- * Array contendo todos os botões a serem desabilitados.
4893
+ * @description Array contendo os identificadores de todos os botões que devem ser desabilitados.
4872
4894
  */
4873
4895
  "disabledButtons"?: Array<string>;
4874
4896
  /**
4875
- * Responsável por flexibilizar e padronizar o uso de mensagens nos blocos de construção.
4897
+ * @description Responsável por flexibilizar e padronizar o uso de mensagens nos blocos de construção.
4876
4898
  */
4877
4899
  "messagesBuilder"?: SnkMessageBuilder;
4878
4900
  /**
4879
- * Emitido sempre que houver click de botão ou ação.
4901
+ * @description Emitido sempre que um botão ou uma ação da barra de tarefas é clicado.
4902
+ * @eventProperty
4880
4903
  */
4881
4904
  "onActionClick"?: (event: SnkTaskbarCustomEvent<string>) => void;
4882
4905
  /**
4883
- * Emitido sempre que um save é iniciado pela taskbar.
4906
+ * @description Emitido quando uma ação de salvar é iniciada pela barra de tarefas, indicando um estado de bloqueio para evitar ações concorrentes.
4907
+ * @eventProperty
4884
4908
  */
4885
4909
  "onTaskbarSaveLocker"?: (event: SnkTaskbarCustomEvent<void>) => void;
4886
4910
  /**
4887
- * Emitido sempre que o ocorre alguma action que libera o save.
4911
+ * @description Emitido quando a ação de salvar é concluída ou cancelada, liberando o estado de bloqueio.
4912
+ * @eventProperty
4888
4913
  */
4889
4914
  "onTaskbarSaveUnlocker"?: (event: SnkTaskbarCustomEvent<void>) => void;
4890
4915
  /**
4891
- * Define como será o comportamento da taskbar quando ocorrer overflow
4916
+ * @description Define como será o comportamento da barra de tarefas quando ocorrer um overflow de itens.
4892
4917
  */
4893
4918
  "overflowStrategy"?: 'hiddenItems' | 'none';
4894
4919
  /**
4895
- * Altera o modo de apresentação dos botões do snk-taskbar.
4920
+ * @description Altera o modo de apresentação dos botões da barra de tarefas.
4896
4921
  */
4897
4922
  "presentationMode"?: PresentationMode1;
4898
4923
  /**
4899
- * Determina qual botão deve ter aparência primária.
4924
+ * @description Define qual botão deve ter a aparência de destaque (primário).
4900
4925
  */
4901
4926
  "primaryButton"?: string;
4902
4927
  /**
4903
- * Identificador de recursos como configurações e acesso.
4928
+ * @description Identificador de recursos, como configurações e permissões de acesso.
4904
4929
  */
4905
4930
  "resourceID"?: string;
4906
4931
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sankhyalabs/sankhyablocks",
3
- "version": "9.2.0-dev.4",
3
+ "version": "9.2.0-dev.6",
4
4
  "description": "Stencil Component Starter",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",
@@ -1 +0,0 @@
1
- import{r as i,c as t,h as s,g as e,H as h}from"./p-d8d8169b.js";import{ElementIDUtils as a,ObjectUtils as o,ApplicationContext as n}from"@sankhyalabs/core";import{S as d}from"./p-1210500e.js";import{R as l}from"./p-688dcb4c.js";import{buildFormConfigFromDataUnit as r}from"@sankhyalabs/ezui/dist/collection/utils/form";import{b as c,a as f,g,u as m,c as u}from"./p-8f73da95.js";import{a as v,G as p}from"./p-9019a32f.js";import{ApplicationUtils as C}from"@sankhyalabs/ezui/dist/collection/utils";import{U as b}from"./p-c6331595.js";import"./p-3dba3468.js";import"./p-0dac8fef.js";import"./p-8d884fab.js";import"@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata";import"./p-ff1990ad.js";const y=class{constructor(s){i(this,s),this.exit=t(this,"exit",7),this.actionClick=t(this,"actionClick",7),this.formItemsReady=t(this,"formItemsReady",7),this._customEditors=new Map,this._dataUnit=void 0,this._dataState=void 0,this._showFormConfig=!1,this._configManager=void 0,this.configName=void 0,this.recordsValidator=void 0,this.messagesBuilder=void 0,this.formLegacyConfigName=void 0,this.resourceID=void 0}async showConfig(){this._showFormConfig=!0}async hideConfig(){this._showFormConfig=!1}async addCustomEditor(i,t){if(this._form)return void this._form.addCustomEditor(i,t);const s=new Map(this._customEditors);s.set(i,t),this._customEditors=s}async setFieldProp(i,t,s){await this._form.setFieldProp(i,t,s)}closeConfig(){this.hideConfig()}dataunitReady(){a.addIDInfo(this._element,null,{dataUnit:this._dataUnit})}setCustomEditors(){if(this._form)for(const[i,t]of this._customEditors)this._form.addCustomEditor(i,t),this._customEditors.delete(i)}async componentDidRender(){this.setCustomEditors()}async componentWillLoad(){let i=this._element.parentElement;for(;i;){if("SNK-DATA-UNIT"===i.tagName.toUpperCase()){this._snkDataUnit=i,this._dataUnit=this._snkDataUnit.dataUnit,this._dataState=this._snkDataUnit.dataState,this._dataUnit?this.dataunitReady():this._snkDataUnit.addEventListener("dataUnitReady",(i=>{this._dataUnit=i.detail})),this._snkDataUnit.addEventListener("dataStateChange",this.handleDataStateChange.bind(this));break}i=i.parentElement}null==this.resourceID&&(this.resourceID=await l.getResourceID()),this._configManager=new d(this.configName,this.resourceID,void 0,this._dataUnit),this.addFormLegacyConfig(),await this._configManager.loadConfig()}async handleDataStateChange(i){var t;this._dataState=i.detail;const s=await this._snkDataUnit.getFieldsWithRmPrecision();for(const i of s||[]){if(!i)continue;const s=null===(t=this._dataState.rowMetadata)||void 0===t?void 0:t.getProp("rm_precision",i);(s||0===s)&&(await this.setFieldProp(i,"precision",s),await this.setFieldProp(i,"prettyPrecision",s))}}addFormLegacyConfig(){this.formLegacyConfigName&&this._configManager.addFormLegacyConfig(this.formLegacyConfigName)}render(){if(this._dataUnit&&this._dataState)return s("section",null,s("div",{class:"ez-row"},s("div",{class:"ez-col ez-col--sd-12"},s("ez-form",{ref:i=>this._form=i,key:"ezForm"+this._snkDataUnit.entityName,"data-element-id":"embedded",dataUnit:this._dataUnit,config:this._configManager.getConfig(this._dataUnit),recordsValidator:this.recordsValidator,class:this._showFormConfig?"snk-form__form--hidden":""}),this._showFormConfig&&s("snk-form-config",{messagesBuilder:this.messagesBuilder,dataUnit:this._dataUnit,configManager:this._configManager,onConfigClose:()=>this.closeConfig()}))))}get _element(){return e(this)}};y.style=".sc-snk-form-h{--snk-form__header--min-height:94px;display:block}.snk-form__form--hidden.sc-snk-form{display:none}";const k=class{constructor(s){i(this,s),this.configClose=t(this,"configClose",7),this.configChange=t(this,"configChange",7),this.guidesMap=new Map,this.availableFields=[],this.guidesList=[],this.groupsList=[],this.selectedGuide=void 0,this._formConfig={},this.configOptions=[],this.originalConfigSelected=void 0,this.configSelected=void 0,this.hasChanges=!1,this.optionConfigChanged=!1,this.dataUnit=void 0,this.configManager=void 0,this.ignoreReadOnlyFormFields=void 0,this.messagesBuilder=void 0}handleFieldConfigChanged(){this.hasChanges=!0}async handleFormConfigOptionSelected({detail:i}){this.configSelected=i,await this.loadConfigByUser(),this.selectedGuide=void 0,this.optionConfigChanged=!o.equals(this.configSelected,this.originalConfigSelected),this.configSelected.origin===b.DEFAULT&&(this.hasChanges=!1)}async handleAddFieldToGuide({detail:i}){var t;this.selectedGuide?(this.availableFields=[...this.availableFields.filter((t=>t.name!==i.name))],await(null===(t=this.refFieldsLayout)||void 0===t?void 0:t.addFieldToLayout(i))):this.showNoGuideSelectedDialog()}async handleSetFieldAsAvailable({detail:i}){this.availableFields.some((t=>t.name===i.name))||(this.availableFields=[...this.availableFields,i])}async handleRemoveFieldFromAvailable({detail:i}){this.availableFields=this.availableFields.filter((t=>t.name!==i.name))}observeSelectedGuide(i){var t;const s=null!==(t=this.guidesMap.get(null==i?void 0:i.name))&&void 0!==t?t:[];this.groupsList=[...s]}observeConfigManager(){this.loadFormConfig()}showNoGuideSelectedDialog(){const i=this.getMessage("snkFormConfig.noGuideSelected.title"),t=this.getMessage("snkFormConfig.noGuideSelected.message");C.alert(i,t)}getMessage(i,t){return this.messagesBuilder.getMessage(i,t)}async initializeUserConfig(){if(null!=this.configManager)try{const i=await this.configManager.fetchUserAvailableConfigs();this.configOptions=i;const t=null==this._formConfig||this._formConfig.defaultConfiguration?b.DEFAULT:b.USER;this.configSelected=i.find((i=>i.origin===t)),this.originalConfigSelected=i.find((i=>i.origin===t))}catch(i){console.error(this.getMessage("snkFormConfig.errors.failFetchUserConfig")),console.error(i)}}async loadConfigByUser(){this.configManager&&this.configSelected&&(this.isConfigDefaultSelected()?await this.handleLoadDefaultConfig():this.loadFormConfig())}async handleLoadDefaultConfig(){const i=await this.configManager.fetchDefaultConfig();if(i)return void this.loadFormConfig(i);const t=this.configManager.getEmptyConfig();t&&this.loadFormConfig(t)}isConfigDefaultSelected(){return this.configSelected.origin===b.DEFAULT}loadFormConfig(i){this._formConfig=i||this.getConfig(),this.loadGuides(),this.initializeAvailableFields()}initializeAvailableFields(){var i;if(null==(null===(i=this._formConfig)||void 0===i?void 0:i.fields))return;const t=[...this._formConfig.fields];this.availableFields=this.dataUnit.metadata.fields.filter((({name:i,visible:s,properties:e})=>{const h=t.some((({name:t})=>t===i));return h||!0!==e.visibleOnConfig||s?!0===s&&!1===h:e.visibleOnConfig}))}loadGuides(){var i;this.guidesList=[...c(this._formConfig,this.getMessage("snkFormConfig.form.mainArea"))],this.guidesMap=f(null===(i=this._formConfig)||void 0===i?void 0:i.fields,this.guidesList,this.dataUnit,this.getMessage("snkFormConfig.form.tabGeneral"))}getConfig(){let i=this.configManager.getConfig(this.dataUnit,!1);return i.fields&&0===i.fields.length&&(i=void 0),null==i&&(i=r(this.dataUnit)),o.copy(i)}handleSelectGuide({detail:i}){this.selectedGuide=i}handleLayoutChanged({detail:i}){this.hasChanges=!0,this.groupsList=[...i],this.guidesMap.set(this.selectedGuide.name,[...i])}getIsDefaultConfig(){var i;return(null===(i=this.configSelected)||void 0===i?void 0:i.origin)===b.DEFAULT&&!0===this.optionConfigChanged&&!1===this.hasChanges}getTabsToSave(){return this.guidesList.map((i=>({name:i.name,label:i.name===v.main?i.name:i.label,order:i.name===v.main?0:i.order,visible:i.visible})))}async handleSaveConfig(){var i;const t=await this.configManager.saveConfig(this.buildConfigToSave());this.configSelected=null===(i=this.configOptions)||void 0===i?void 0:i.find((i=>i.origin===(this.hasChanges?b.USER:b.DEFAULT))),this.originalConfigSelected=this.configSelected,this.hasChanges=!1,this.optionConfigChanged=!1,C.info(this.getMessage("snkFormConfig.info.successfullyConfigSaved"),{iconName:"check"}),this.configChange.emit(t)}buildConfigToSave(){if(this.getIsDefaultConfig()){const i=this._formConfig;return i.defaultConfiguration=!0,i}const i=o.copy(this._formConfig);return i.tabs=this.getTabsToSave(),i.fields=g(this.guidesMap),i.defaultConfiguration=!1,i}handleAvailableFieldListChanged({detail:i}){this.availableFields=[...i]}handleSetFieldListAsAvailable({detail:i}){this.availableFields=[...this.availableFields,...i]}handleGuideDeleted({detail:i}){var t,s;const e=i.name,h=null!==(t=this.guidesMap.get(e))&&void 0!==t?t:[],a=[];h.forEach((i=>a.push(...i.fields))),this.availableFields=[...this.availableFields,...a],this.guidesList=[...this.guidesList.filter((i=>i.name!==e))],this.guidesMap.delete(e),(null===(s=this.selectedGuide)||void 0===s?void 0:s.name)===e&&(this.selectedGuide=void 0),this.hasChanges=!0}handleGuideListChanged({detail:i}){this.hasChanges=!0,this.guidesList=[...i]}handleGuideRenamed({detail:i}){var t;const s=null!==(t=this.guidesMap.get(this.selectedGuide.name))&&void 0!==t?t:[],e=m(s,i);this.guidesMap.delete(this.selectedGuide.name),this.guidesMap.set(i,e);const h={name:i,label:i,visible:this.selectedGuide.visible,order:this.selectedGuide.order};this.guidesList=[...this.guidesList.map((i=>i.name===this.selectedGuide.name?h:i))],this.groupsList=[...e],this.selectedGuide=h,this.hasChanges=!0}handleCreateNewGuide(){const i=u(this.guidesList,this.getMessage.bind(this)),t={name:i,label:i,visible:!0,order:this.guidesList.length+1},s={name:p.noGroup,fields:[]};this.guidesList=[...this.guidesList,t],this.guidesMap.set(i,[s]),this.selectedGuide=t,this.hasChanges=!0}getGuideNames(){return[...this.guidesList.map((i=>i.name.toLowerCase())),this.getMessage("snkFormConfig.form.mainArea").toLowerCase()]}async componentWillRender(){if(null==this.messagesBuilder){const i=n.getContextValue("__SNK__APPLICATION__");this.messagesBuilder=i.messagesBuilder}}async componentWillLoad(){this.loadFormConfig(),await this.initializeUserConfig()}render(){return s(h,null,s("config-header",{configOptions:this.configOptions,selectedConfig:this.configSelected,messagesBuilder:this.messagesBuilder,hasChanges:this.hasChanges,optionConfigChanged:this.optionConfigChanged,onConfigClose:()=>this.configClose.emit(),onSaveConfig:async()=>await this.handleSaveConfig()}),s("div",{class:"ez-padding--medium"},s("div",{class:"ez-flex sidebarNavigator__container"},s("guides-configurator",{messagesBuilder:this.messagesBuilder,guidesList:this.guidesList,selectedGuide:this.selectedGuide,onGuideSelected:this.handleSelectGuide.bind(this),onGuideListChanged:this.handleGuideListChanged.bind(this),onCreateNewGuide:this.handleCreateNewGuide.bind(this),onGuideDeleted:this.handleGuideDeleted.bind(this)}),s("fields-layout",{ref:i=>this.refFieldsLayout=i,selectedGuide:this.selectedGuide,guideNames:this.getGuideNames(),groupsList:this.groupsList,messagesBuilder:this.messagesBuilder,dataUnit:this.dataUnit,onGuideRenamed:this.handleGuideRenamed.bind(this),onLayoutChanged:this.handleLayoutChanged.bind(this),onSetFieldListAsAvailable:this.handleSetFieldListAsAvailable.bind(this)}),s("fields-selector",{dataUnit:this.dataUnit,availableFields:this.availableFields,onFieldListChanged:this.handleAvailableFieldListChanged.bind(this),messagesBuilder:this.messagesBuilder}))))}static get watchers(){return{selectedGuide:["observeSelectedGuide"],configManager:["observeConfigManager"]}}};k.style='.sc-snk-form-config-h{display:flex;flex-direction:column;height:100vh;width:100vw;font-family:var(--font-pattern, "Roboto");background:white;color:#2b3a54;--snk-form-config-container-height:calc(100vh - 95px);outline:none}.sidebarNavigator__container.sc-snk-form-config{height:var(--snk-form-config-container-height);gap:20px;align-items:flex-start}.guide-header.sc-snk-form-config{display:flex;width:100%;padding-bottom:12px;border-bottom:1px solid #dce0e8;height:30px;font-weight:500;font-size:16px}';export{y as snk_form,k as snk_form_config}