Skip to content

Commit f9450c4

Browse files
feat(user-guide): implementa serviço po-user-guide
Adiciona o PoUserGuideService para criação e controle de guias de usuário na aplicação. O novo serviço permite configurar passos, definir opções globais e iniciar a execução de um guia de forma encadeada. Também disponibiliza eventos reativos para acompanhar o ciclo de vida do guia, como início, troca de passo e finalização. Inclui a estrutura base do serviço, opções de configuração, definição dos passos e integração com o módulo de serviços do PO-UI. Fixes DTHFUI-12986
1 parent 55dc251 commit f9450c4

33 files changed

Lines changed: 5377 additions & 6 deletions

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ speed-measure-plugin.json
2525
.settings/
2626
*.sublime-workspace
2727
.vscode
28+
.kiro
2829

2930
# IDE - VSCode
3031
.vscode

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@
8181
"@capacitor/network": "^5.0.7",
8282
"@po-ui/style": "21.17.0",
8383
"custom-idle-queue": "4.0.0",
84+
"driver.js": "^1.4.0",
8485
"echarts": "^5.6.0",
8586
"http-status-codes": "^2.3.0",
8687
"localforage": "1.10.0",
@@ -124,6 +125,7 @@
124125
"eslint-plugin-prefer-arrow": "latest",
125126
"eslint-plugin-react": "latest",
126127
"eslint-plugin-sonarjs": "latest",
128+
"fast-check": "4.8.0",
127129
"gulp": "^5.0.1",
128130
"gulp-clean": "^0.4.0",
129131
"gulp-tap": "^2.0.0",

projects/portal/docs/templates/samples/index.template.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
<div>
1919
{% for script in doc.scripts %}
2020
<label class="doc-label-path">{$ script.path $}</label>
21-
<pre appCodeHighlight class="typescript">{$ script.fileContents | escape | replace("{", "&#123;") | replace("@", "&#64;") | replace('}', "&#125;") $}</pre>
21+
<pre appCodeHighlight class="typescript">{$ script.fileContents | escape | replace('{{', "&#123; &#123;") | replace('}}', "&#125; &#125;") | replace("{", "&#123;") | replace("@", "&#64;") | replace('}', "&#125;") $}</pre>
2222
{% endfor %}
2323
</div>
2424
</po-tab>
@@ -27,7 +27,7 @@
2727
<div>
2828
{% for stylesheet in doc.stylesheets %}
2929
<label class="doc-label-path">{$ stylesheet.path $}</label>
30-
<pre appCodeHighlight class="css">{$ stylesheet.fileContents | escape | replace("{", "&#123;") | replace("@", "&#64;") | replace('}', "&#125;") $}</pre> {% endfor %}
30+
<pre appCodeHighlight class="css">{$ stylesheet.fileContents | escape | replace('{{', "&#123; &#123;") | replace('}}', "&#125; &#125;") | replace("{", "&#123;") | replace("@", "&#64;") | replace('}', "&#125;") $}</pre> {% endfor %}
3131
</div>
3232
</po-tab>
3333
{%- endif -%}
@@ -36,7 +36,7 @@
3636
<div>
3737
{% for test in doc.tests %}
3838
<label class="doc-label-path">{$ test.path $}</label>
39-
<pre appCodeHighlight class="test">{$ test.fileContents | escape | replace("{", "&#123;") | replace("@", "&#64;") | replace('}', "&#125;") $}</pre> {% endfor %}
39+
<pre appCodeHighlight class="test">{$ test.fileContents | escape | replace('{{', "&#123; &#123;") | replace('}}', "&#125; &#125;") | replace("{", "&#123;") | replace("@", "&#64;") | replace('}', "&#125;") $}</pre> {% endfor %}
4040
</div>
4141
</po-tab>
4242
{%- endif -%}

projects/ui/ng-package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@
44
"lib": {
55
"entryFile": "./src/public-api.ts"
66
},
7-
"allowedNonPeerDependencies": ["@angular/cdk", "@po-ui/style", "@po-ui/ng-schematics", "echarts"]
7+
"allowedNonPeerDependencies": ["@angular/cdk", "@po-ui/style", "@po-ui/ng-schematics", "echarts", "driver.js"]
88
}

projects/ui/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
"@angular/cdk": "~21.2.4",
2525
"@po-ui/style": "0.0.0-PLACEHOLDER",
2626
"@po-ui/ng-schematics": "0.0.0-PLACEHOLDER",
27+
"driver.js": "^1.4.0",
2728
"echarts": "^5.6.0",
2829
"tslib": "^2.6.2"
2930
},

projects/ui/src/lib/services/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ export * from './po-i18n/index';
1111
export * from './po-media-query/index';
1212
export * from './po-notification/index';
1313
export * from './po-theme/index';
14+
export * from './po-user-guide/index';

projects/ui/src/lib/services/po-theme/helpers/types/po-theme-dark-defaults.constant.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,7 @@ const poThemeDefaultDarkValues = {
218218
'--color-black-alpha-10': 'rgba(255, 255, 255, 0.1)',
219219
'--color-black-alpha-15': 'rgba(255, 255, 255, 0.15)',
220220
'--color-black-alpha-30': 'rgba(255, 255, 255, 0.3)',
221+
'--color-po-user-guide-overlay': 'var(--color-neutral-light-20)',
221222
'--color-primary-light-80': 'color-mix(in srgb, var(--color-brand-02-base) 80%, black)',
222223
'--color-primary-light-95': 'color-mix(in srgb, var(--color-brand-02-base) 95%, black)',
223224
'--color-primary-alpha-50': 'color-mix(in srgb, var(--color-brand-02-base) 50%, white)',
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export * from './po-user-guide-alignment.enum';
2+
export * from './po-user-guide-position.enum';
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
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 enum PoUserGuideAlignment {
12+
/** O popover é alinhado ao início do eixo da posição (topo ou esquerda, conforme a `PoUserGuidePosition`). */
13+
Start = 'start',
14+
15+
/** O popover é alinhado ao centro do eixo da posição. */
16+
Center = 'center',
17+
18+
/** O popover é alinhado ao final do eixo da posição (rodapé ou direita, conforme a `PoUserGuidePosition`). */
19+
End = 'end'
20+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
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 enum PoUserGuidePosition {
12+
/** O popover é renderizado acima do elemento destacado. */
13+
Top = 'top',
14+
15+
/** O popover é renderizado à direita do elemento destacado. */
16+
Right = 'right',
17+
18+
/** O popover é renderizado abaixo do elemento destacado. */
19+
Bottom = 'bottom',
20+
21+
/** O popover é renderizado à esquerda do elemento destacado. */
22+
Left = 'left',
23+
24+
/** O popover é renderizado sobreposto ao elemento destacado. */
25+
Over = 'over',
26+
27+
/** A posição é calculada automaticamente conforme o espaço disponível na viewport. */
28+
Auto = 'auto'
29+
}

0 commit comments

Comments
 (0)