@po-ui/ng-components 21.17.0 → 21.19.0

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.
Files changed (54) hide show
  1. package/fesm2022/{po-ui-ng-components-po-chart-modal-table.component-BkH0bb8j.mjs → po-ui-ng-components-po-chart-modal-table.component-CzvA7U-U.mjs} +4 -4
  2. package/fesm2022/{po-ui-ng-components-po-chart-modal-table.component-BkH0bb8j.mjs.map → po-ui-ng-components-po-chart-modal-table.component-CzvA7U-U.mjs.map} +1 -1
  3. package/fesm2022/po-ui-ng-components.mjs +14353 -11386
  4. package/fesm2022/po-ui-ng-components.mjs.map +1 -1
  5. package/lib/components/po-calendar/po-calendar-base.component.d.ts +54 -44
  6. package/lib/components/po-calendar/po-calendar-mode.enum.d.ts +2 -1
  7. package/lib/components/po-calendar/po-calendar.component.d.ts +7 -2
  8. package/lib/components/po-calendar/services/po-calendar.service.d.ts +1 -0
  9. package/lib/components/po-dynamic/po-dynamic-form/interfaces/po-dynamic-form-field.interface.d.ts +28 -8
  10. package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-fields/po-dynamic-form-fields-base.component.d.ts +7 -0
  11. package/lib/components/po-field/index.d.ts +2 -0
  12. package/lib/components/po-field/po-datetimepicker/po-datetimepicker-base.component.d.ts +509 -0
  13. package/lib/components/po-field/po-datetimepicker/po-datetimepicker.component.d.ts +130 -0
  14. package/lib/components/po-field/po-datetimepicker/po-datetimepicker.literals.d.ts +42 -0
  15. package/lib/components/po-field/po-datetimepicker/po-datetimepicker.module.d.ts +7 -0
  16. package/lib/components/po-field/po-field.module.d.ts +1 -1
  17. package/lib/components/po-timer/po-timer.component.d.ts +2 -2
  18. package/lib/services/index.d.ts +1 -0
  19. package/lib/services/po-theme/helpers/types/po-theme-dark-defaults-AA.constant.d.ts +1 -0
  20. package/lib/services/po-theme/helpers/types/po-theme-dark-defaults.constant.d.ts +1 -0
  21. package/lib/services/po-user-guide/enums/index.d.ts +2 -0
  22. package/lib/services/po-user-guide/enums/po-user-guide-alignment.enum.d.ts +18 -0
  23. package/lib/services/po-user-guide/enums/po-user-guide-position.enum.d.ts +24 -0
  24. package/lib/services/po-user-guide/index.d.ts +6 -0
  25. package/lib/services/po-user-guide/interfaces/index.d.ts +6 -0
  26. package/lib/services/po-user-guide/interfaces/po-user-guide-end-event.interface.d.ts +46 -0
  27. package/lib/services/po-user-guide/interfaces/po-user-guide-literals.interface.d.ts +19 -0
  28. package/lib/services/po-user-guide/interfaces/po-user-guide-options.interface.d.ts +195 -0
  29. package/lib/services/po-user-guide/interfaces/po-user-guide-start-event.interface.d.ts +39 -0
  30. package/lib/services/po-user-guide/interfaces/po-user-guide-step-change-event.interface.d.ts +54 -0
  31. package/lib/services/po-user-guide/interfaces/po-user-guide-step.interface.d.ts +173 -0
  32. package/lib/services/po-user-guide/po-user-guide-base.service.d.ts +365 -0
  33. package/lib/services/po-user-guide/po-user-guide-scroll-lock.d.ts +55 -0
  34. package/lib/services/po-user-guide/po-user-guide.literals.d.ts +7 -0
  35. package/lib/services/po-user-guide/po-user-guide.module.d.ts +2 -0
  36. package/lib/services/po-user-guide/po-user-guide.service.d.ts +174 -0
  37. package/package.json +5 -4
  38. package/po-ui-ng-components-21.19.0.tgz +0 -0
  39. package/schematics/ng-add/index.js +1 -1
  40. package/schematics/ng-update/v14/index.js +1 -1
  41. package/schematics/ng-update/v15/index.js +1 -1
  42. package/schematics/ng-update/v16/index.js +1 -1
  43. package/schematics/ng-update/v17/index.js +1 -1
  44. package/schematics/ng-update/v18/index.js +2 -2
  45. package/schematics/ng-update/v19/index.js +2 -2
  46. package/schematics/ng-update/v2/index.js +1 -1
  47. package/schematics/ng-update/v20/index.js +2 -2
  48. package/schematics/ng-update/v21/index.js +1 -1
  49. package/schematics/ng-update/v3/index.js +1 -1
  50. package/schematics/ng-update/v4/index.js +1 -1
  51. package/schematics/ng-update/v5/index.js +1 -1
  52. package/schematics/ng-update/v6/index.js +1 -1
  53. package/types/po-ui-ng-components.d.ts +17321 -15514
  54. package/po-ui-ng-components-21.17.0.tgz +0 -0
@@ -1,6 +1,6 @@
1
- import { AfterViewInit, AfterViewChecked, ElementRef, EventEmitter, OnChanges, OnDestroy, OnInit, QueryList, SimpleChanges } from '@angular/core';
2
- import { PoButtonComponent } from '../po-button/po-button.component';
1
+ import { OnInit, OnChanges, OnDestroy, QueryList, ElementRef, EventEmitter, SimpleChanges, AfterViewInit, AfterViewChecked } from '@angular/core';
3
2
  import { PoTimerBaseComponent } from './po-timer-base.component';
3
+ import { PoButtonComponent } from '../po-button/po-button.component';
4
4
  /** Tipo dos eixos das colunas. */
5
5
  type PoTimerColumnType = 'hour' | 'minute' | 'second' | 'period';
6
6
  /**
@@ -10,3 +10,4 @@ export * from './po-i18n/index';
10
10
  export * from './po-media-query/index';
11
11
  export * from './po-notification/index';
12
12
  export * from './po-theme/index';
13
+ export * from './po-user-guide/index';
@@ -85,6 +85,7 @@ declare const poThemeDefaultDarkValuesAA: {
85
85
  '--color-black-alpha-10': string;
86
86
  '--color-black-alpha-15': string;
87
87
  '--color-black-alpha-30': string;
88
+ '--color-po-user-guide-overlay': string;
88
89
  '--color-primary-light-80': string;
89
90
  '--color-primary-light-95': string;
90
91
  '--color-primary-alpha-50': string;
@@ -89,6 +89,7 @@ declare const poThemeDefaultDarkValues: {
89
89
  '--color-black-alpha-10': string;
90
90
  '--color-black-alpha-15': string;
91
91
  '--color-black-alpha-30': string;
92
+ '--color-po-user-guide-overlay': string;
92
93
  '--color-primary-light-80': string;
93
94
  '--color-primary-light-95': string;
94
95
  '--color-primary-alpha-50': string;
@@ -0,0 +1,2 @@
1
+ export * from './po-user-guide-alignment.enum';
2
+ export * from './po-user-guide-position.enum';
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @usedBy PoUserGuideService
3
+ *
4
+ * @description
5
+ *
6
+ * *Enum* que define o alinhamento do popover do tour ao longo do eixo da posição configurada,
7
+ * utilizado na propriedade `align` de `PoUserGuideStep`.
8
+ *
9
+ * > Quando o valor não é informado, é aplicado o padrão `PoUserGuideAlignment.Start`.
10
+ */
11
+ export declare enum PoUserGuideAlignment {
12
+ /** O popover é alinhado ao início do eixo da posição (topo ou esquerda, conforme a `PoUserGuidePosition`). */
13
+ Start = "start",
14
+ /** O popover é alinhado ao centro do eixo da posição. */
15
+ Center = "center",
16
+ /** O popover é alinhado ao final do eixo da posição (rodapé ou direita, conforme a `PoUserGuidePosition`). */
17
+ End = "end"
18
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @usedBy PoUserGuideService
3
+ *
4
+ * @description
5
+ *
6
+ * *Enum* que define a posição preferida do popover do tour em relação ao elemento destacado,
7
+ * utilizado na propriedade `position` de `PoUserGuideStep`.
8
+ *
9
+ * > Quando o valor não é informado, é aplicado o padrão `PoUserGuidePosition.Auto`.
10
+ */
11
+ export declare enum PoUserGuidePosition {
12
+ /** O popover é renderizado acima do elemento destacado. */
13
+ Top = "top",
14
+ /** O popover é renderizado à direita do elemento destacado. */
15
+ Right = "right",
16
+ /** O popover é renderizado abaixo do elemento destacado. */
17
+ Bottom = "bottom",
18
+ /** O popover é renderizado à esquerda do elemento destacado. */
19
+ Left = "left",
20
+ /** O popover é renderizado sobreposto ao elemento destacado. */
21
+ Over = "over",
22
+ /** A posição é calculada automaticamente conforme o espaço disponível na viewport. */
23
+ Auto = "auto"
24
+ }
@@ -0,0 +1,6 @@
1
+ export * from './po-user-guide-base.service';
2
+ export * from './enums/index';
3
+ export * from './interfaces/index';
4
+ export * from './po-user-guide.literals';
5
+ export * from './po-user-guide.module';
6
+ export * from './po-user-guide.service';
@@ -0,0 +1,6 @@
1
+ export * from './po-user-guide-end-event.interface';
2
+ export * from './po-user-guide-literals.interface';
3
+ export * from './po-user-guide-options.interface';
4
+ export * from './po-user-guide-start-event.interface';
5
+ export * from './po-user-guide-step-change-event.interface';
6
+ export * from './po-user-guide-step.interface';
@@ -0,0 +1,46 @@
1
+ /**
2
+ * @usedBy PoUserGuideService
3
+ *
4
+ * @description
5
+ *
6
+ * Interface que descreve o evento emitido pelo `PoUserGuideService` no encerramento da execução de um tour guiado.
7
+ *
8
+ * É publicado no `Observable` `PoUserGuideService.tourEnd$` exatamente uma vez por execução, sempre após a
9
+ * emissão do último `PoUserGuideStepChangeEvent` em `PoUserGuideService.stepChange$` e após a limpeza do estado
10
+ * interno do serviço.
11
+ *
12
+ * As aplicações consumidoras podem assinar `tourEnd$` para registrar telemetria de conclusão ou de
13
+ * abandono do tour, executar limpezas de UI ou disparar lógica de negócio dependente do encerramento
14
+ * da jornada do usuário.
15
+ */
16
+ export interface PoUserGuideEndEvent {
17
+ /**
18
+ * @description
19
+ *
20
+ * Motivo do encerramento do tour.
21
+ *
22
+ * Valores aceitos:
23
+ *
24
+ * - `completed`: o usuário avançou além do último passo do tour, concluindo a jornada por completo.
25
+ * - `closed`: o tour foi encerrado antes da conclusão, seja pelo usuário (tecla `Esc`, botão "Fechar"
26
+ * ou clique fora do popover quando `PoUserGuideOptions.allowClose` está habilitado) ou pela aplicação
27
+ * consumidora através das chamadas a `PoUserGuideService.close` ou `PoUserGuideService.exit`.
28
+ */
29
+ reason: 'completed' | 'closed';
30
+ /**
31
+ * @description
32
+ *
33
+ * Índice, com base zero, do último passo ativo antes do encerramento do tour.
34
+ *
35
+ * Quando `reason` é `'completed'`, corresponde ao índice do último passo da lista (`totalSteps - 1`).
36
+ * Quando `reason` é `'closed'`, corresponde ao índice do passo que estava em exibição
37
+ * no momento do encerramento.
38
+ */
39
+ lastIndex: number;
40
+ /**
41
+ * @description
42
+ *
43
+ * Total de passos configurados no tour, equivalente ao tamanho do array passado a `PoUserGuideService.setSteps`.
44
+ */
45
+ totalSteps: number;
46
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @usedBy PoUserGuideService
3
+ *
4
+ * @description
5
+ *
6
+ * Interface para definição das literais usadas no `po-user-guide`.
7
+ */
8
+ export interface PoUserGuideLiterals {
9
+ /** Label padrão do botão "Próximo" aplicado a todos os passos do tour. */
10
+ next?: string;
11
+ /** Label padrão do botão "Anterior" aplicado a todos os passos do tour. */
12
+ previous?: string;
13
+ /** Label padrão do botão "Finalizar" aplicado ao último passo do tour. */
14
+ done?: string;
15
+ /** Label padrão do botão "Fechar" (X) exibido no canto do popover do tour. */
16
+ close?: string;
17
+ /** Template padrão do texto de progresso exibido no popover (ex: `{ {current} } de { {total} }`). */
18
+ progressTemplate?: string;
19
+ }
@@ -0,0 +1,195 @@
1
+ import { PoUserGuideLiterals } from './po-user-guide-literals.interface';
2
+ import { PoUserGuideStepChangeEvent } from './po-user-guide-step-change-event.interface';
3
+ /**
4
+ * @usedBy PoUserGuideService
5
+ *
6
+ * @description
7
+ *
8
+ * Interface que descreve as opções globais de configuração do tour guiado executado pelo `PoUserGuideService`.
9
+ *
10
+ * Os valores informados são aplicados a toda a execução do tour e podem ser sobrescritos pontualmente
11
+ * em cada `PoUserGuideStep` através das propriedades específicas de *labels* (`nextLabel`, `previousLabel`,
12
+ * `doneLabel`) — neste caso, o valor declarado no passo prevalece sobre o valor declarado nas opções globais.
13
+ *
14
+ */
15
+ export interface PoUserGuideOptions {
16
+ /**
17
+ * @optional
18
+ *
19
+ * @description
20
+ *
21
+ * Permite que o usuário encerre o tour clicando fora do popover ou utilizando o botão "Fechar" (X).
22
+ *
23
+ * Quando definido como `false`, o tour somente pode ser encerrado de forma programática (por exemplo,
24
+ * através do método `close()` do `PoUserGuideService`) ou ao avançar além do último passo.
25
+ *
26
+ * @default `true`
27
+ */
28
+ allowClose?: boolean;
29
+ /**
30
+ * @optional
31
+ *
32
+ * @description
33
+ *
34
+ * Quando `true`, mantém a rolagem da página totalmente livre durante o tour.
35
+ *
36
+ * O valor padrão `false` (ou a omissão da propriedade) preserva o comportamento padrão de
37
+ * bloqueio: a rolagem do `document.documentElement` e do `document.body` é desabilitada
38
+ * enquanto o tour estiver ativo e restaurada integralmente ao seu término.
39
+ *
40
+ * @default `false`
41
+ */
42
+ allowScroll?: boolean;
43
+ /**
44
+ * @optional
45
+ *
46
+ * @description
47
+ *
48
+ * Exibe o indicador textual de progresso do tour no popover (por exemplo, `1 de 5`).
49
+ *
50
+ * O texto pode ser personalizado através da propriedade `progressTemplate`.
51
+ *
52
+ * @default `true`
53
+ */
54
+ showProgress?: boolean;
55
+ /**
56
+ * @optional
57
+ *
58
+ * @description
59
+ *
60
+ * Habilita/desabilita o controle do tour por teclado (valor padrão: `true`).
61
+ * Se configurado como `false`, o controle por teclado é desabilitado.
62
+ *
63
+ * Quando ativo, são interpretadas as seguintes teclas:
64
+ *
65
+ * - `Esc`: encerra o tour (equivalente a `close()`).
66
+ * - `→` (seta para a direita) ou `Enter`: avança para o próximo passo (equivalente a `next()`).
67
+ * - `←` (seta para a esquerda): retrocede para o passo anterior (equivalente a `previous()`).
68
+ *
69
+ * @default `true`
70
+ */
71
+ keyboardControl?: boolean;
72
+ /**
73
+ * @optional
74
+ *
75
+ * @description
76
+ *
77
+ * Define a opacidade do *overlay* que escurece a página ao redor do elemento destacado.
78
+ *
79
+ * O valor deve estar contido no intervalo `[0, 1]`, sendo `0` totalmente transparente e `1` totalmente opaco.
80
+ * Valores fora deste intervalo são ajustados (*clamped*) para os limites mais próximos.
81
+ *
82
+ * @default `0.7`
83
+ */
84
+ overlayOpacity?: number;
85
+ /**
86
+ * @optional
87
+ *
88
+ * @description
89
+ *
90
+ * *Label* padrão do botão "Próximo" aplicado a todos os passos do tour.
91
+ *
92
+ * Pode ser sobrescrito individualmente por passo através de `PoUserGuideStep.nextLabel`.
93
+ *
94
+ * @default `Próximo`
95
+ */
96
+ nextLabel?: string;
97
+ /**
98
+ * @optional
99
+ *
100
+ * @description
101
+ *
102
+ * *Label* padrão do botão "Anterior" aplicado a todos os passos do tour.
103
+ *
104
+ * Pode ser sobrescrito individualmente por passo através de `PoUserGuideStep.previousLabel`.
105
+ *
106
+ * @default `Anterior`
107
+ */
108
+ previousLabel?: string;
109
+ /**
110
+ * @optional
111
+ *
112
+ * @description
113
+ *
114
+ * *Label* padrão do botão "Finalizar" aplicado ao último passo do tour.
115
+ *
116
+ * Pode ser sobrescrito individualmente por passo através de `PoUserGuideStep.doneLabel`.
117
+ *
118
+ * @default `Finalizar`
119
+ */
120
+ doneLabel?: string;
121
+ /**
122
+ * @optional
123
+ *
124
+ * @description
125
+ *
126
+ * *Label* padrão do botão "Fechar" (X) exibido no canto do popover do tour.
127
+ *
128
+ * @default `Fechar`
129
+ */
130
+ closeLabel?: string;
131
+ /**
132
+ * @optional
133
+ *
134
+ * @description
135
+ *
136
+ * Template do texto de progresso exibido no popover quando `showProgress` está habilitado.
137
+ *
138
+ * Aceita os seguintes *placeholders*, que são substituídos em tempo de renderização:
139
+ *
140
+ * - `current`: número do passo atual, com base 1 (ou seja, o primeiro passo é exibido como `1`).
141
+ * - `total`: número total de passos do tour.
142
+ *
143
+ * Quando o template informado não contém nenhum dos *placeholders* suportados, o texto é exibido
144
+ * literalmente e um aviso é registrado em `console.warn`.
145
+ *
146
+ * @default `{ {current} } de { {total} }`
147
+ */
148
+ progressTemplate?: string;
149
+ /**
150
+ * @optional
151
+ *
152
+ * @description
153
+ *
154
+ * Classe CSS adicional aplicada ao elemento raiz do popover do tour.
155
+ *
156
+ * Útil para customizações pontuais sem alterar o tema global do PO UI. A classe padrão `po-user-guide-popover`
157
+ * é sempre aplicada e preservada — o valor informado é concatenado a ela.
158
+ */
159
+ popoverClass?: string;
160
+ /**
161
+ * @optional
162
+ *
163
+ * @description
164
+ *
165
+ * Objeto com as literais usadas no `po-user-guide`.
166
+ *
167
+ * Permite customizar os textos dos botões de navegação e o template de progresso do tour.
168
+ * Quando omitido, as literais são traduzidas automaticamente de acordo com o idioma do
169
+ * [`PoI18nService`](/documentation/po-i18n) ou do browser.
170
+ *
171
+ * Exemplo passando apenas as literais que deseja customizar:
172
+ *
173
+ * ```
174
+ * const customLiterals: PoUserGuideLiterals = {
175
+ * next: 'Avançar',
176
+ * done: 'Concluir'
177
+ * };
178
+ * ```
179
+ */
180
+ literals?: PoUserGuideLiterals;
181
+ /**
182
+ * @optional
183
+ *
184
+ * @description
185
+ *
186
+ * Função de *callback* invocada a cada mudança de passo durante a execução do tour.
187
+ *
188
+ * Recebe como argumento um evento `PoUserGuideStepChangeEvent` contendo o passo ativo, seu índice, a direção
189
+ * da transição (`'next'`, `'previous'`, `'goto'` ou `'start'`) e o total de passos do tour.
190
+ *
191
+ * O *callback* é executado antes da emissão do evento correspondente em `PoUserGuideService.stepChange$`,
192
+ * permitindo a aplicação consumidora reagir à transição antes que outros assinantes do `Observable` sejam notificados.
193
+ */
194
+ onStepChange?: (event: PoUserGuideStepChangeEvent) => void;
195
+ }
@@ -0,0 +1,39 @@
1
+ /**
2
+ * @usedBy PoUserGuideService
3
+ *
4
+ * @description
5
+ *
6
+ * Interface que descreve o evento emitido pelo `PoUserGuideService` no início da execução de um tour guiado.
7
+ *
8
+ * É publicado no `Observable` `PoUserGuideService.tourStart$` exatamente uma vez por execução, imediatamente
9
+ * após a configuração da instância do tour e antes da emissão do primeiro `PoUserGuideStepChangeEvent` em
10
+ * `PoUserGuideService.stepChange$`.
11
+ *
12
+ * As aplicações consumidoras podem assinar `tourStart$` para registrar telemetria do início do tour,
13
+ * exibir mensagens contextuais ou disparar lógica de negócio dependente do início da jornada do usuário.
14
+ */
15
+ export interface PoUserGuideStartEvent {
16
+ /**
17
+ * @description
18
+ *
19
+ * Total de passos configurados no tour, equivalente ao tamanho do array passado a `PoUserGuideService.setSteps`.
20
+ */
21
+ totalSteps: number;
22
+ /**
23
+ * @description
24
+ *
25
+ * Índice do passo inicial do tour, com base zero.
26
+ *
27
+ * Corresponde ao argumento `startIndex` informado a `PoUserGuideService.start`. Quando o método é invocado
28
+ * sem argumentos, o valor é `0`.
29
+ */
30
+ startIndex: number;
31
+ /**
32
+ * @description
33
+ *
34
+ * Marca de tempo, em milissegundos, do momento de emissão do evento, obtida a partir de `Date.now()`.
35
+ *
36
+ * Útil para correlacionar o início do tour com outros eventos de telemetria da aplicação.
37
+ */
38
+ timestamp: number;
39
+ }
@@ -0,0 +1,54 @@
1
+ import { PoUserGuideStep } from './po-user-guide-step.interface';
2
+ /**
3
+ * @usedBy PoUserGuideService
4
+ *
5
+ * @description
6
+ *
7
+ * Interface que descreve o evento emitido pelo `PoUserGuideService` a cada mudança de passo durante a execução do tour.
8
+ *
9
+ * É publicado no `Observable` `PoUserGuideService.stepChange$` toda vez que o passo ativo é alterado, seja por
10
+ * interação do usuário (cliques nos botões "Próximo"/"Anterior" ou navegação por teclado) ou por chamada
11
+ * programática aos métodos `next`, `previous`, `goTo` e `start` do `PoUserGuideService`.
12
+ *
13
+ * As aplicações consumidoras podem assinar `stepChange$` para reagir à navegação do usuário, atualizar a
14
+ * UI conforme o passo ativo, registrar telemetria de progresso ou disparar lógica de negócio contextual.
15
+ */
16
+ export interface PoUserGuideStepChangeEvent {
17
+ /**
18
+ * @description
19
+ *
20
+ * Passo do tour que se tornou ativo após a transição.
21
+ *
22
+ * Corresponde ao elemento da lista `steps` (configurada via `PoUserGuideService.setSteps`) cujo índice é
23
+ * igual ao valor de `index` neste evento.
24
+ */
25
+ step: PoUserGuideStep;
26
+ /**
27
+ * @description
28
+ *
29
+ * Índice, com base zero, do passo ativo após a transição.
30
+ *
31
+ * Está sempre contido no intervalo `[0, totalSteps - 1]`.
32
+ */
33
+ index: number;
34
+ /**
35
+ * @description
36
+ *
37
+ * Direção da transição que originou a mudança de passo.
38
+ *
39
+ * Valores aceitos:
40
+ *
41
+ * - `next`: a transição foi originada pelo método `PoUserGuideService.next` ou pelo botão "Próximo" do popover.
42
+ * - `previous`: a transição foi originada pelo método `PoUserGuideService.previous` ou pelo botão "Anterior" do popover.
43
+ * - `goto`: a transição foi originada pela chamada ao método `PoUserGuideService.goTo` com um índice arbitrário.
44
+ * - `start`: a transição corresponde à exibição do primeiro passo logo após a inicialização do tour
45
+ * pelo método `PoUserGuideService.start`.
46
+ */
47
+ direction: 'next' | 'previous' | 'goto' | 'start';
48
+ /**
49
+ * @description
50
+ *
51
+ * Total de passos configurados no tour, equivalente ao tamanho do array passado a `PoUserGuideService.setSteps`.
52
+ */
53
+ totalSteps: number;
54
+ }
@@ -0,0 +1,173 @@
1
+ import { PoUserGuideAlignment } from '../enums/po-user-guide-alignment.enum';
2
+ import { PoUserGuidePosition } from '../enums/po-user-guide-position.enum';
3
+ /**
4
+ * @usedBy PoUserGuideService
5
+ *
6
+ * @description
7
+ *
8
+ * Interface que descreve um passo individual do tour guiado executado pelo `PoUserGuideService`.
9
+ *
10
+ * Cada passo representa uma parada do tour, com um elemento opcional a ser destacado na página,
11
+ * conteúdo textual ou em HTML, configurações de posicionamento do popover, *labels* específicos
12
+ * dos botões de navegação e *hooks* de ciclo de vida do passo.
13
+ *
14
+ * > A propriedade `content` é a única obrigatória e corresponde ao corpo do popover apresentado ao usuário.
15
+ */
16
+ export interface PoUserGuideStep {
17
+ /**
18
+ * @optional
19
+ *
20
+ * @description
21
+ *
22
+ * Elemento da página que o passo deve destacar.
23
+ *
24
+ * Aceita um seletor CSS válido (`'#id'`, `'.class'`, `'tag'`, `'.container > .item'`) ou uma referência direta a um `HTMLElement`
25
+ * (por exemplo, obtida via `@ViewChild` ou `ElementRef.nativeElement`).
26
+ *
27
+ * > **Recomendação:** ao destacar componentes do PO UI, prefira selecionar pela *tag* do componente
28
+ * > (por exemplo, `'po-button'`) em vez de classes internas (como `'.po-button'`). As classes internas
29
+ * > são detalhes de implementação e podem ser alteradas ou removidas entre versões, quebrando o tour.
30
+ *
31
+ * Quando a propriedade é omitida, o popover é exibido como um modal centralizado na viewport, sem destacar
32
+ * nenhum elemento da página.
33
+ */
34
+ element?: string | HTMLElement;
35
+ /**
36
+ * @optional
37
+ *
38
+ * @description
39
+ *
40
+ * Título exibido no cabeçalho do popover do passo.
41
+ *
42
+ * Quando omitido, o popover é renderizado apenas com o conteúdo definido em `content`.
43
+ */
44
+ title?: string;
45
+ /**
46
+ * @description
47
+ *
48
+ * Conteúdo principal do passo, exibido no corpo do popover. Aceita texto puro ou HTML.
49
+ *
50
+ * > **Aviso de segurança:** por padrão, o PO UI sanitiza o conteúdo HTML recebido antes de repassá-lo
51
+ * > ao popover do tour, reduzindo o risco de vulnerabilidades de *Cross-Site Scripting* (XSS).
52
+ * >
53
+ * > Mesmo com essa proteção, recomenda-se que aplicações consumidoras evitem enviar conteúdo HTML
54
+ * > proveniente de fontes não confiáveis sem validação prévia, como entradas de usuário ou dados externos.
55
+ * > A sanitização realizada pelo PO UI atua como uma camada de segurança, mas não substitui boas práticas
56
+ * > de validação e controle dos dados na origem.
57
+ */
58
+ content: string;
59
+ /**
60
+ * @optional
61
+ *
62
+ * @description
63
+ *
64
+ * Posição preferida do popover em relação ao elemento destacado.
65
+ *
66
+ * Valores aceitos:
67
+ *
68
+ * - `top`: o popover é renderizado acima do elemento destacado.
69
+ * - `right`: o popover é renderizado à direita do elemento destacado.
70
+ * - `bottom`: o popover é renderizado abaixo do elemento destacado.
71
+ * - `left`: o popover é renderizado à esquerda do elemento destacado.
72
+ * - `over`: o popover é renderizado sobreposto ao elemento destacado.
73
+ * - `auto`: a posição é calculada automaticamente conforme o espaço disponível na viewport.
74
+ *
75
+ * @default auto`
76
+ */
77
+ position?: PoUserGuidePosition;
78
+ /**
79
+ * @optional
80
+ *
81
+ * @description
82
+ *
83
+ * Alinhamento do popover ao longo do eixo da posição configurada em `position`.
84
+ *
85
+ * Valores aceitos: 'start' | 'center' | 'end'
86
+ *
87
+ * @default `start`
88
+ */
89
+ align?: PoUserGuideAlignment;
90
+ /**
91
+ * @optional
92
+ *
93
+ * @description
94
+ *
95
+ * Sobrescreve o *label* do botão "Próximo" exclusivamente para este passo.
96
+ *
97
+ * Quando omitido, é utilizado o valor configurado em `PoUserGuideOptions.nextLabel` ou o padrão do PO UI (`Próximo`).
98
+ */
99
+ nextLabel?: string;
100
+ /**
101
+ * @optional
102
+ *
103
+ * @description
104
+ *
105
+ * Sobrescreve o *label* do botão "Anterior" exclusivamente para este passo.
106
+ *
107
+ * Quando omitido, é utilizado o valor configurado em `PoUserGuideOptions.previousLabel` ou o padrão do PO UI (`Anterior`).
108
+ */
109
+ previousLabel?: string;
110
+ /**
111
+ * @optional
112
+ *
113
+ * @description
114
+ *
115
+ * Sobrescreve o *label* do botão "Finalizar" exclusivamente para este passo.
116
+ *
117
+ * Quando omitido, é utilizado o valor configurado em `PoUserGuideOptions.doneLabel` ou o padrão do PO UI (`Finalizar`).
118
+ */
119
+ doneLabel?: string;
120
+ /**
121
+ * @optional
122
+ *
123
+ * @description
124
+ *
125
+ * Lista que filtra quais botões de navegação devem ser exibidos no popover deste passo.
126
+ *
127
+ * Aceita qualquer combinação dos valores `'next'`, `'previous'` e `'close'`. Apenas os botões presentes
128
+ * na lista são renderizados, permitindo, por exemplo, ocultar o botão "Anterior" no primeiro passo
129
+ * ou exibir somente o botão "Fechar" em um passo final.
130
+ *
131
+ * Quando a propriedade é omitida, todos os botões padrão (`'next'`, `'previous'` e `'close'`) são exibidos.
132
+ * Quando informada como array vazio, nenhum botão de navegação é exibido — o controle do tour passa a ser
133
+ * 100% programático via `next()`, `previous()`, `goTo()` e `close()` do `PoUserGuideService`.
134
+ */
135
+ showButtons?: Array<'next' | 'previous' | 'close'>;
136
+ /**
137
+ * @optional
138
+ *
139
+ * @description
140
+ *
141
+ * *Hook* executado imediatamente antes de o passo ser destacado na página, sincronamente à transição.
142
+ *
143
+ * Recebe como argumentos o próprio passo (`step`) e o seu índice (`index`, com base zero) na lista de passos
144
+ * configurada via `PoUserGuideService.setSteps`.
145
+ *
146
+ * Útil para preparar a UI antes do destaque (por exemplo, abrir um menu lateral que contém o elemento alvo).
147
+ */
148
+ onBeforeHighlight?: (step: PoUserGuideStep, index: number) => void;
149
+ /**
150
+ * @optional
151
+ *
152
+ * @description
153
+ *
154
+ * *Hook* executado imediatamente após o passo ser destacado na página.
155
+ *
156
+ * Recebe como argumentos o próprio passo (`step`) e o seu índice (`index`, com base zero) na lista de passos.
157
+ *
158
+ * Útil para registrar telemetria de visualização ou disparar lógica de negócio dependente da exibição do passo.
159
+ */
160
+ onHighlighted?: (step: PoUserGuideStep, index: number) => void;
161
+ /**
162
+ * @optional
163
+ *
164
+ * @description
165
+ *
166
+ * *Hook* executado quando o passo deixa de estar ativo, seja por avanço, retrocesso ou encerramento do tour.
167
+ *
168
+ * Recebe como argumentos o próprio passo (`step`) e o seu índice (`index`, com base zero) na lista de passos.
169
+ *
170
+ * Útil para reverter alterações de UI realizadas em `onBeforeHighlight` ou `onHighlighted`.
171
+ */
172
+ onDeselected?: (step: PoUserGuideStep, index: number) => void;
173
+ }