@seniorsistemas/angular-components 19.9.8 → 19.9.10
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/card/lib/card/card.component.d.ts +6 -2
- package/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.d.ts +0 -1
- package/datepicker/README.md +6 -2
- package/datepicker/lib/datepicker/date-segment-input.d.ts +7 -1
- package/datepicker/lib/datepicker/datepicker.component.d.ts +137 -3
- package/dialog/lib/src/dialog/services/dialog.service.d.ts +2 -0
- package/esm2022/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.mjs +3 -3
- package/esm2022/autocomplete/lib/autocomplete/autocomplete.component.mjs +8 -3
- package/esm2022/autocomplete/lib/autocomplete/components/autocomplete-chip/autocomplete-chip.component.mjs +4 -3
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2022/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.component.mjs +4 -2
- package/esm2022/button/lib/button/button.component.mjs +3 -3
- package/esm2022/card/lib/card/card.component.mjs +13 -5
- package/esm2022/checkbox/lib/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/checkbox-list/lib/checkbox-list/checkbox-list.component.mjs +3 -3
- package/esm2022/chips/lib/chips/chip-item/chip-item.component.mjs +3 -3
- package/esm2022/chips/lib/chips/chips/chips.component.mjs +3 -3
- package/esm2022/code-editor/lib/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-style.mjs +3 -2
- package/esm2022/collapse-link/lib/collapse-link/collapse-link.component.mjs +3 -3
- package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.mjs +14 -9
- package/esm2022/datepicker/lib/datepicker/date-segment-input.mjs +19 -2
- package/esm2022/datepicker/lib/datepicker/datepicker.component.mjs +405 -38
- package/esm2022/dialog/lib/src/dialog/dialog.component.mjs +3 -3
- package/esm2022/dialog/lib/src/dialog/services/dialog.service.mjs +13 -1
- package/esm2022/drawer/lib/drawer/drawer.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.mjs +3 -3
- package/esm2022/editor/lib/editor/editor.component.mjs +3 -3
- package/esm2022/editor/lib/editor/toolbar-button/editor-toolbar-button.component.mjs +3 -3
- package/esm2022/fieldset/lib/fieldset/fieldset.component.mjs +3 -3
- package/esm2022/file-picker/lib/file-picker/file-picker.component.mjs +3 -3
- package/esm2022/gantt/lib/gantt/components/gantt/bar.mjs +2 -1
- package/esm2022/gantt/lib/gantt/gantt.component.mjs +3 -3
- package/esm2022/global-search/lib/global-search/global-search.component.mjs +16 -25
- package/esm2022/grid-menu/lib/grid-menu/components/grid-menu-item/grid-menu-item.component.mjs +3 -3
- package/esm2022/input-text/lib/input-text/input-text.directive.mjs +3 -3
- package/esm2022/lib/locale/fallback.mjs +47 -13
- package/esm2022/navigation-button/lib/navigation-button/navigation-button.component.mjs +3 -3
- package/esm2022/object-card/lib/object-card/object-card.component.mjs +3 -3
- package/esm2022/paginator/lib/paginator/paginator.component.mjs +3 -3
- package/esm2022/pin-code-field/lib/pin-code-field/pin-code-field.component.mjs +3 -3
- package/esm2022/radio-button/lib/radio-button/radio-button.component.mjs +4 -10
- package/esm2022/rating-scale/lib/rating-scale/rating-scale.component.mjs +3 -3
- package/esm2022/select/lib/select/components/select-option/select-option.component.mjs +31 -3
- package/esm2022/select/lib/select/select.component.mjs +240 -23
- package/esm2022/select-button/lib/select-button/components/select-button-item/select-button-item.component.mjs +3 -3
- package/esm2022/shared/lib/accessibility/datepicker-no-period-tab.directive.mjs +6 -6
- package/esm2022/side-sheet/lib/side-sheet/side-sheet.component.mjs +3 -3
- package/esm2022/slider/lib/slider/slider.component.mjs +67 -65
- package/esm2022/slider/lib/slider/slider.module.mjs +2 -2
- package/esm2022/split-button/lib/split-button/split-button.component.mjs +3 -3
- package/esm2022/star-rating/star-rating/star-rating.component.mjs +3 -3
- package/esm2022/stepper/lib/stepper/stepper.component.mjs +3 -3
- package/esm2022/switch/lib/switch/switch.component.mjs +5 -19
- package/esm2022/tabs/lib/tabs/tabs.component.mjs +3 -3
- package/esm2022/text-area/lib/text-area/text-area.component.mjs +3 -3
- package/esm2022/thumbnail/lib/thumbnail/thumbnail.component.mjs +10 -3
- package/esm2022/thumbnails/lib/thumbnails/components/thumbnail-item/thumbnail-item.component.mjs +3 -3
- package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.mjs +3 -3
- package/esm2022/tiered-menu/lib/tiered-menu/services/tiered-menu.global.service.mjs +4 -3
- package/esm2022/tile/lib/tile/tile.component.mjs +3 -3
- package/esm2022/tree/lib/tree/components/tree-node-item/tree-node-item.component.mjs +20 -3
- package/esm2022/workspace-switch/lib/workspace-switch/workspace-switch.component.mjs +3 -3
- package/fesm2022/seniorsistemas-angular-components-accordion.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-accordion.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs +10 -5
- package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs +5 -3
- package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-button.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-card.mjs +12 -4
- package/fesm2022/seniorsistemas-angular-components-card.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-checkbox.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-checkbox.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-chips.mjs +4 -4
- package/fesm2022/seniorsistemas-angular-components-chips.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-code-editor.mjs +2 -1
- package/fesm2022/seniorsistemas-angular-components-code-editor.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +13 -8
- package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-datepicker.mjs +422 -38
- package/fesm2022/seniorsistemas-angular-components-datepicker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-dialog.mjs +14 -2
- package/fesm2022/seniorsistemas-angular-components-dialog.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-drawer.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-drawer.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +12 -12
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-editor.mjs +4 -4
- package/fesm2022/seniorsistemas-angular-components-editor.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-fieldset.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-fieldset.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-gantt.mjs +3 -2
- package/fesm2022/seniorsistemas-angular-components-gantt.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-global-search.mjs +14 -23
- package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-input-text.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-input-text.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-object-card.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-object-card.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-paginator.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-paginator.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-radio-button.mjs +3 -9
- package/fesm2022/seniorsistemas-angular-components-radio-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-select-button.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-select-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-select.mjs +269 -24
- package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-shared.mjs +5 -5
- package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-side-sheet.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-side-sheet.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-slider.mjs +67 -65
- package/fesm2022/seniorsistemas-angular-components-slider.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-split-button.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-split-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-star-rating.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-star-rating.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-stepper.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-stepper.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-switch.mjs +4 -18
- package/fesm2022/seniorsistemas-angular-components-switch.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tabs.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-tabs.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs +9 -2
- package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs +5 -4
- package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tile.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-tile.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tree.mjs +20 -3
- package/fesm2022/seniorsistemas-angular-components-tree.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components.mjs +46 -12
- package/fesm2022/seniorsistemas-angular-components.mjs.map +1 -1
- package/global-search/lib/global-search/global-search.component.d.ts +7 -3
- package/package.json +1 -1
- package/radio-button/lib/radio-button/radio-button.component.d.ts +0 -1
- package/select/README.md +16 -3
- package/select/lib/select/components/select-option/select-option.component.d.ts +23 -1
- package/select/lib/select/select.component.d.ts +111 -17
- package/slider/lib/slider/slider.component.d.ts +25 -7
- package/styles.css +5 -0
- package/switch/lib/switch/switch.component.d.ts +0 -2
- package/thumbnail/lib/thumbnail/thumbnail.component.d.ts +1 -0
- package/tree/lib/tree/components/tree-node-item/tree-node-item.component.d.ts +4 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AfterViewInit, OnDestroy, OnInit } from '@angular/core';
|
|
1
|
+
import { AfterViewInit, OnDestroy, OnInit, Signal } from '@angular/core';
|
|
2
2
|
import { ControlValueAccessor, FormControl, FormGroup } from '@angular/forms';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
interface InternalDropdownOption<T> {
|
|
@@ -69,7 +69,7 @@ export declare class SelectComponent<T> implements ControlValueAccessor, OnInit,
|
|
|
69
69
|
* Prioriza o valor explícito de `ariaLabelledBy`; caso contrário, usa o id de um
|
|
70
70
|
* `<label for="...">` externo associado ao host (detectado em runtime).
|
|
71
71
|
*/
|
|
72
|
-
readonly resolvedAriaLabelledBy:
|
|
72
|
+
readonly resolvedAriaLabelledBy: Signal<string>;
|
|
73
73
|
value: import("@angular/core").WritableSignal<InternalDropdownOption<T> | null>;
|
|
74
74
|
values: import("@angular/core").WritableSignal<InternalDropdownOption<T>[]>;
|
|
75
75
|
filterValue: import("@angular/core").WritableSignal<string>;
|
|
@@ -83,17 +83,23 @@ export declare class SelectComponent<T> implements ControlValueAccessor, OnInit,
|
|
|
83
83
|
* na lista de valores selecionados, e `false` caso contrário.
|
|
84
84
|
* @returns {boolean} `true` se todas as opções filtradas estão selecionadas, `false` caso contrário.
|
|
85
85
|
*/
|
|
86
|
-
allSelected:
|
|
86
|
+
allSelected: Signal<boolean>;
|
|
87
|
+
/**
|
|
88
|
+
* Label de acessibilidade do checkbox "Selecionar Todos", contextual ao estado atual —
|
|
89
|
+
* reportado: sem `ariaLabel` explícito, o leitor de tela só anunciava "checkbox, não
|
|
90
|
+
* marcado", sem indicar a ação (selecionar ou desmarcar todas as opções).
|
|
91
|
+
*/
|
|
92
|
+
readonly selectAllCheckboxAriaLabel: Signal<any>;
|
|
87
93
|
/**
|
|
88
94
|
* Retorna o item atualmente focado na lista de opções filtradas.
|
|
89
95
|
* @returns O dado do item focado ou `null` caso nenhum item esteja focado.
|
|
90
96
|
*/
|
|
91
|
-
focusedItem:
|
|
97
|
+
focusedItem: Signal<NonNullable<T> | null>;
|
|
92
98
|
/**
|
|
93
99
|
* Retorna o item atualmente focado na lista de opções filtradas.
|
|
94
100
|
* @returns O dado do item focado ou `null` caso nenhum item esteja focado.
|
|
95
101
|
*/
|
|
96
|
-
focusedOptionId:
|
|
102
|
+
focusedOptionId: Signal<string | null>;
|
|
97
103
|
/**
|
|
98
104
|
* Computa e retorna a lista interna de opções do dropdown.
|
|
99
105
|
* - Se as opções estiverem agrupadas (`group()` retorna verdadeiro),
|
|
@@ -101,7 +107,7 @@ export declare class SelectComponent<T> implements ControlValueAccessor, OnInit,
|
|
|
101
107
|
* - Caso contrário, retorna as opções com IDs adicionados.
|
|
102
108
|
* @returns Um array de `InternalDropdownOption<T>` representando as opções disponíveis para o componente select.
|
|
103
109
|
*/
|
|
104
|
-
internalOptions:
|
|
110
|
+
internalOptions: Signal<InternalDropdownOption<T>[]>;
|
|
105
111
|
/**
|
|
106
112
|
* Retorna uma string representando a seleção atual do componente.
|
|
107
113
|
* - Se o modo múltiplo estiver ativado e mais de um item estiver selecionado,
|
|
@@ -110,21 +116,21 @@ export declare class SelectComponent<T> implements ControlValueAccessor, OnInit,
|
|
|
110
116
|
* - Se o modo múltiplo não estiver ativado, retorna o rótulo do item selecionado ou uma string vazia caso nenhum item esteja selecionado.
|
|
111
117
|
* @returns {string} Texto representando a seleção atual.
|
|
112
118
|
*/
|
|
113
|
-
print:
|
|
119
|
+
print: Signal<any>;
|
|
114
120
|
/**
|
|
115
121
|
* Indica se o seletor está "limpo", ou seja, sem nenhum valor selecionado.
|
|
116
122
|
* - No modo múltiplo (`multiple`), retorna `true` se não houver nenhum valor selecionado (`values` está vazio).
|
|
117
123
|
* - No modo simples, retorna `true` se não houver valor selecionado (`value` é falsy).
|
|
118
124
|
* @returns `true` se não houver seleção, `false` caso contrário.
|
|
119
125
|
*/
|
|
120
|
-
isClean:
|
|
126
|
+
isClean: Signal<boolean>;
|
|
121
127
|
/**
|
|
122
128
|
* Computed que indica se o estado de seleção "Selecionar Todos" está indeterminado.
|
|
123
129
|
* Retorna `true` quando nem todos os itens filtrados estão selecionados e nem todos estão desmarcados,
|
|
124
130
|
* ou seja, quando há uma seleção parcial dos itens disponíveis.
|
|
125
131
|
* @returns {boolean} `true` se a seleção for parcial, `false` caso contrário.
|
|
126
132
|
*/
|
|
127
|
-
selectAllIsIndeterminate:
|
|
133
|
+
selectAllIsIndeterminate: Signal<boolean>;
|
|
128
134
|
/**
|
|
129
135
|
* Retorna uma lista de opções filtradas com base no valor de busca (`filterValue`) e nos critérios definidos.
|
|
130
136
|
* - Se o filtro estiver desabilitado ou o valor de busca estiver vazio, retorna todas as opções.
|
|
@@ -132,19 +138,43 @@ export declare class SelectComponent<T> implements ControlValueAccessor, OnInit,
|
|
|
132
138
|
* - Ignora opções que possuem a propriedade `grouper` definida.
|
|
133
139
|
* @returns As opções filtradas conforme o valor de busca e critérios de filtro.
|
|
134
140
|
*/
|
|
135
|
-
filteredOptions:
|
|
141
|
+
filteredOptions: Signal<InternalDropdownOption<T>[]>;
|
|
142
|
+
/**
|
|
143
|
+
* Mapeia o id de cada opção que é a PRIMEIRA de um grupo (`group()` habilitado) ao texto
|
|
144
|
+
* anunciado via `aria-describedby` (ex.: "Agrupado por América do Sul"). O agrupador visual
|
|
145
|
+
* tem `role="presentation"` (silencioso pro leitor de tela) — reportado: ao navegar pra
|
|
146
|
+
* dentro de um grupo, nada indicava a que grupo a opção pertencia. Só a primeira opção de
|
|
147
|
+
* cada grupo recebe o anúncio, pra não repetir a cada opção subsequente do mesmo grupo.
|
|
148
|
+
*/
|
|
149
|
+
readonly groupAnnouncements: Signal<Map<string, string>>;
|
|
150
|
+
/**
|
|
151
|
+
* Mapeia o id de cada opção à sua posição (`posinset`) e ao tamanho total do conjunto
|
|
152
|
+
* (`setsize`), ignorando agrupadores (que não são `role="option"`). Necessário porque, com
|
|
153
|
+
* `virtualScroll`, só uma janela de opções existe de fato no DOM a cada momento — sem
|
|
154
|
+
* `aria-posinset`/`aria-setsize` explícitos, o leitor de tela tenta inferir a posição
|
|
155
|
+
* contando os `role="option"` irmãos presentes no DOM, o que fica errado pra uma lista
|
|
156
|
+
* virtualizada (reportado via NVDA: ao selecionar a 3ª opção de uma lista de ~240 países
|
|
157
|
+
* com `virtualScroll`, o anúncio de posição "voltava" pra 1 antes de se corrigir).
|
|
158
|
+
*/
|
|
159
|
+
readonly optionPositions: Signal<Map<string, {
|
|
160
|
+
posinset: number;
|
|
161
|
+
setsize: number;
|
|
162
|
+
}>>;
|
|
136
163
|
readonly filterForm: FormGroup<{
|
|
137
164
|
filter: FormControl<string>;
|
|
138
165
|
}>;
|
|
139
166
|
private readonly _containerDiv;
|
|
140
167
|
private readonly _filterInput;
|
|
141
168
|
private readonly _selectAllCheckbox;
|
|
169
|
+
private readonly _dropdownPanel;
|
|
142
170
|
private _onChange;
|
|
143
171
|
private _onTouched;
|
|
144
172
|
private _clickableLabel;
|
|
145
173
|
private readonly _translateService;
|
|
146
174
|
private readonly _hostRef;
|
|
147
175
|
private readonly _renderer;
|
|
176
|
+
private readonly _injector;
|
|
177
|
+
private readonly _liveAnnouncer;
|
|
148
178
|
constructor();
|
|
149
179
|
ngOnInit(): void;
|
|
150
180
|
ngAfterViewInit(): void;
|
|
@@ -194,6 +224,13 @@ export declare class SelectComponent<T> implements ControlValueAccessor, OnInit,
|
|
|
194
224
|
* Sempre notifica as mudanças e marca o componente como tocado.
|
|
195
225
|
*/
|
|
196
226
|
selectItem(item: InternalDropdownOption<T>): void;
|
|
227
|
+
/**
|
|
228
|
+
* Anuncia via `LiveAnnouncer` a opção selecionada/desmarcada. Necessário porque, na prática,
|
|
229
|
+
* nem todo navegador/leitor de tela anuncia sozinho a mudança de `aria-selected` da opção
|
|
230
|
+
* apontada por `aria-activedescendant` (reportado via NVDA no Chrome: nenhuma mensagem era
|
|
231
|
+
* ouvida ao selecionar).
|
|
232
|
+
*/
|
|
233
|
+
private _announceOptionToggle;
|
|
197
234
|
/**
|
|
198
235
|
* Limpa o valor selecionado no componente select.
|
|
199
236
|
* Se o componente estiver desabilitado, não executa nenhuma ação.
|
|
@@ -226,16 +263,33 @@ export declare class SelectComponent<T> implements ControlValueAccessor, OnInit,
|
|
|
226
263
|
* Manipula eventos de teclado no input de filtro do overlay.
|
|
227
264
|
* - 'ArrowDown': Move o foco para a primeira opção da lista.
|
|
228
265
|
* - 'ArrowUp': Move o foco para a última opção da lista.
|
|
266
|
+
* - 'Tab' (sem Shift): Move o foco para a próxima opção da lista, em vez de deixar o Tab
|
|
267
|
+
* nativo tentar sair do overlay (as opções não são elementos tabuláveis, então o Tab
|
|
268
|
+
* nativo "vazava" o foco pra fora do painel sem nunca alcançar a lista).
|
|
229
269
|
* - 'Escape': Fecha o dropdown e retorna o foco ao combobox.
|
|
230
|
-
* - 'Enter': Seleciona a opção focada, se houver.
|
|
270
|
+
* - 'Enter' / 'Espaço': Seleciona a opção focada, se houver. Espaço só é interceptado
|
|
271
|
+
* quando já existe uma opção com foco virtual (`focusedIndex() >= 0`) — sem uma opção
|
|
272
|
+
* focada, o espaço é deixado passar pro comportamento nativo do `<input>` (digitar um
|
|
273
|
+
* espaço, necessário pra buscas com múltiplas palavras).
|
|
231
274
|
* @param event O evento de teclado disparado no input de filtro.
|
|
232
275
|
*/
|
|
233
276
|
onFilterKeyDown(event: KeyboardEvent): void;
|
|
277
|
+
/**
|
|
278
|
+
* Manipula o evento de teclado no botão "Limpar filtro" do overlay.
|
|
279
|
+
* É o último controle real (tabulável) do overlay antes da lista de opções — sem
|
|
280
|
+
* interceptar o Tab aqui, ele "vazava" o foco pra fora do painel sem nunca alcançar a
|
|
281
|
+
* lista, já que as opções não são elementos tabuláveis (foco virtual via
|
|
282
|
+
* aria-activedescendant).
|
|
283
|
+
* @param event O evento de teclado disparado no botão.
|
|
284
|
+
*/
|
|
285
|
+
onClearFilterButtonKeyDown(event: KeyboardEvent): void;
|
|
234
286
|
/**
|
|
235
287
|
* Manipula eventos de teclado para navegação e seleção de opções no componente select.
|
|
236
288
|
* - 'ArrowDown': Move o foco para a próxima opção disponível.
|
|
237
289
|
* - 'ArrowUp': Move o foco para a opção anterior.
|
|
238
|
-
* - 'Tab':
|
|
290
|
+
* - 'Tab'/'Shift+Tab': Com o dropdown aberto e sem filtro, navega entre as opções (mesmo
|
|
291
|
+
* efeito de ArrowDown/ArrowUp) em vez de fechar o painel e "vazar" o foco pro próximo
|
|
292
|
+
* campo da página sem o usuário nunca ter alcançado as opções.
|
|
239
293
|
* - 'Enter': Seleciona a opção focada se o dropdown estiver aberto, ou alterna a abertura do dropdown.
|
|
240
294
|
* - 'Escape': Fecha o dropdown.
|
|
241
295
|
* - ' ': (barra de espaço) Seleciona a opção focada se o dropdown estiver aberto, ou alterna a abertura do dropdown.
|
|
@@ -249,6 +303,25 @@ export declare class SelectComponent<T> implements ControlValueAccessor, OnInit,
|
|
|
249
303
|
* @returns O rótulo da opção como uma string.
|
|
250
304
|
*/
|
|
251
305
|
getOptionLabel(option: T): string;
|
|
306
|
+
/**
|
|
307
|
+
* Retorna o texto de anúncio de grupo (ex.: "Agrupado por América do Sul") pra uma opção,
|
|
308
|
+
* caso ela seja a primeira do seu grupo — ver `groupAnnouncements`.
|
|
309
|
+
* @param optionId Id da opção interna.
|
|
310
|
+
* @returns O texto de anúncio, ou `null` se a opção não for a primeira do grupo.
|
|
311
|
+
*/
|
|
312
|
+
groupAnnouncementFor(optionId: string): string | null;
|
|
313
|
+
/**
|
|
314
|
+
* Retorna a posição (1-based) de uma opção dentro do conjunto navegável — ver `optionPositions`.
|
|
315
|
+
* @param optionId Id da opção interna.
|
|
316
|
+
* @returns A posição, ou `null` se a opção não for encontrada (ex.: é um agrupador).
|
|
317
|
+
*/
|
|
318
|
+
optionPosinsetFor(optionId: string): number | null;
|
|
319
|
+
/**
|
|
320
|
+
* Retorna o tamanho total do conjunto navegável ao qual uma opção pertence — ver `optionPositions`.
|
|
321
|
+
* @param optionId Id da opção interna.
|
|
322
|
+
* @returns O tamanho total, ou `null` se a opção não for encontrada (ex.: é um agrupador).
|
|
323
|
+
*/
|
|
324
|
+
optionSetsizeFor(optionId: string): number | null;
|
|
252
325
|
/**
|
|
253
326
|
* Função de trackBy utilizada em blocos @for para otimizar a renderização de listas.
|
|
254
327
|
* Retorna o identificador único (`id`) de cada item do tipo `InternalDropdownOption<T>`.
|
|
@@ -270,6 +343,14 @@ export declare class SelectComponent<T> implements ControlValueAccessor, OnInit,
|
|
|
270
343
|
* Após a alteração, notifica a mudança de valor.
|
|
271
344
|
*/
|
|
272
345
|
toggleSelectAll(): void;
|
|
346
|
+
/**
|
|
347
|
+
* Anuncia via `LiveAnnouncer` o resultado de "Selecionar Todos"/"Limpar Todos". Necessário
|
|
348
|
+
* porque o checkbox que dispara a ação tem foco real e anuncia seu próprio `aria-checked`
|
|
349
|
+
* normalmente, mas as N opções afetadas (que não estão focadas) não — ao contrário do toggle
|
|
350
|
+
* de uma opção individual, cujo `aria-selected` já é lido pelo leitor de tela porque ela é o
|
|
351
|
+
* elemento apontado por `aria-activedescendant` no momento da mudança.
|
|
352
|
+
*/
|
|
353
|
+
private _announceSelectAllToggle;
|
|
273
354
|
/**
|
|
274
355
|
* Retorna o rótulo (label) de uma opção fornecida.
|
|
275
356
|
* Este método utiliza a propriedade definida por `optionLabel` para extrair o valor do rótulo da opção.
|
|
@@ -318,15 +399,28 @@ export declare class SelectComponent<T> implements ControlValueAccessor, OnInit,
|
|
|
318
399
|
/**
|
|
319
400
|
* Fecha o dropdown de opções do componente select.
|
|
320
401
|
* Este método oculta as opções disponíveis e redefine o índice do item focado para -1,
|
|
321
|
-
* indicando que nenhum item está atualmente focado.
|
|
322
|
-
*
|
|
402
|
+
* indicando que nenhum item está atualmente focado. Se o foco estava dentro do painel
|
|
403
|
+
* sendo fechado (ex.: campo de filtro), devolve o foco pro container/combobox — nunca
|
|
404
|
+
* força o foco se ele já estiver em outro lugar (ex.: opção escolhida via clique do mouse
|
|
405
|
+
* sem filtro, onde o foco DOM nunca saiu do combobox por causa do aria-activedescendant).
|
|
406
|
+
* `protected` (não `private`) porque também é chamado a partir do template
|
|
407
|
+
* (`backdropClick`/`detach` do `cdkConnectedOverlay`).
|
|
323
408
|
*/
|
|
324
|
-
|
|
409
|
+
protected _closeDropdown(): void;
|
|
325
410
|
/**
|
|
326
411
|
* Adiciona um identificador único a cada opção fornecida.
|
|
327
412
|
* Para cada item no array de opções, gera um objeto `InternalDropdownOption` contendo o dado original
|
|
328
|
-
* e um campo `id` único baseado no timestamp atual e no índice do
|
|
329
|
-
* (detectado pela presença de um array `items`), adiciona também a
|
|
413
|
+
* e um campo `id` único baseado no `componentId` desta instância, no timestamp atual e no índice do
|
|
414
|
+
* item. Caso a opção seja um grupo (detectado pela presença de um array `items`), adiciona também a
|
|
415
|
+
* propriedade `grouper: true`.
|
|
416
|
+
*
|
|
417
|
+
* O `componentId` é obrigatório no prefixo: `Date.now()` sozinho tem resolução de apenas 1ms, e duas
|
|
418
|
+
* instâncias de `s-select` na mesma página frequentemente inicializam dentro do mesmo milissegundo
|
|
419
|
+
* (confirmado via teste manual — reportado via NVDA: uma opção já selecionada em OUTRO `s-select` da
|
|
420
|
+
* página era anunciada em vez da opção de fato clicada). Sem o `componentId`, os ids colidiam entre
|
|
421
|
+
* instâncias diferentes (`id_<mesmo-timestamp>_0` em ambas), e `aria-activedescendant`/`getElementById`
|
|
422
|
+
* resolviam pro elemento errado — de outro select. O timestamp continua no id (além do `componentId`)
|
|
423
|
+
* pra manter ids únicos entre recomputações da MESMA instância quando `options()` muda de referência.
|
|
330
424
|
* @private
|
|
331
425
|
* @param options Array de opções do tipo `T` a serem processadas.
|
|
332
426
|
* @returns Um array de objetos `InternalDropdownOption<T>` com identificadores únicos.
|
|
@@ -113,19 +113,35 @@ export declare class SliderComponent implements OnInit, AfterViewInit, ControlVa
|
|
|
113
113
|
*/
|
|
114
114
|
private mapRangeValuesForSlider;
|
|
115
115
|
private activeMouseDown;
|
|
116
|
-
private focusActive;
|
|
117
116
|
ngOnInit(): void;
|
|
118
117
|
ngOnChanges(changes: SimpleChanges): void;
|
|
119
118
|
ngAfterViewInit(): void;
|
|
120
|
-
|
|
119
|
+
/**
|
|
120
|
+
* Handles arrow-key navigation for a single thumb. Each thumb owns its own keydown
|
|
121
|
+
* handler (instead of a shared `document:keydown` listener) so that Left/Right only
|
|
122
|
+
* move the thumb that currently has keyboard focus — never both at once.
|
|
123
|
+
*/
|
|
124
|
+
onThumbKeydown(event: KeyboardEvent, thumb: 'start' | 'end'): void;
|
|
125
|
+
/**
|
|
126
|
+
* Returns the current user-facing value represented by the given thumb.
|
|
127
|
+
*/
|
|
128
|
+
getThumbValue(thumb: 'start' | 'end'): number;
|
|
129
|
+
/**
|
|
130
|
+
* The "start" thumb can never move past the "end" thumb, so its effective minimum
|
|
131
|
+
* stays at `min` but its maximum is capped by the "end" thumb's current value.
|
|
132
|
+
*/
|
|
133
|
+
getThumbMin(thumb: 'start' | 'end'): number;
|
|
134
|
+
/**
|
|
135
|
+
* Mirror of {@link getThumbMin}: the "end" thumb's minimum is capped by the "start"
|
|
136
|
+
* thumb's current value, so the two thumbs can never cross each other.
|
|
137
|
+
*/
|
|
138
|
+
getThumbMax(thumb: 'start' | 'end'): number;
|
|
121
139
|
get tooltipStartText(): string;
|
|
122
140
|
get tooltipEndText(): string;
|
|
123
141
|
writeValue(obj: number | [number, number]): void;
|
|
124
142
|
registerOnChange(fn: (value: number | [number, number]) => void): void;
|
|
125
143
|
registerOnTouched(fn: () => void): void;
|
|
126
144
|
setDisabledState(isDisabled: boolean): void;
|
|
127
|
-
onFocusIn(): void;
|
|
128
|
-
onBlur(): void;
|
|
129
145
|
onTrackClick(evt: MouseEvent): void;
|
|
130
146
|
onProgressMouseDown(evt: MouseEvent): void;
|
|
131
147
|
onMouseDown(_: MouseEvent, thumb: 'start' | 'end'): void;
|
|
@@ -159,9 +175,11 @@ export declare class SliderComponent implements OnInit, AfterViewInit, ControlVa
|
|
|
159
175
|
* @returns The key that corresponds to the closest mapped value.
|
|
160
176
|
*/
|
|
161
177
|
private getClosestValueFromMapSlider;
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
178
|
+
/**
|
|
179
|
+
* Moves only the given thumb by one `step`, clamped so it never crosses the other
|
|
180
|
+
* thumb (start ≤ end always) nor the slider's global `min`/`max`.
|
|
181
|
+
*/
|
|
182
|
+
private _incrementOrDecrementSingleThumb;
|
|
165
183
|
private _incrementOrDecrementEndValue;
|
|
166
184
|
private get needParseValues();
|
|
167
185
|
static ɵfac: i0.ɵɵFactoryDeclaration<SliderComponent, never>;
|
package/styles.css
CHANGED
|
@@ -37,8 +37,6 @@ export declare class SwitchComponent implements ControlValueAccessor {
|
|
|
37
37
|
switchRef: ElementRef;
|
|
38
38
|
private _onChange?;
|
|
39
39
|
private _onTouched?;
|
|
40
|
-
onFocusIn(): void;
|
|
41
|
-
onFocusOut(): void;
|
|
42
40
|
writeValue(value: boolean): void;
|
|
43
41
|
registerOnChange(onChange: (value: boolean) => void): void;
|
|
44
42
|
registerOnTouched(onTouched: (value: boolean) => void): void;
|
|
@@ -43,6 +43,7 @@ export declare class ThumbnailComponent implements AfterViewInit, OnDestroy {
|
|
|
43
43
|
isBrand: boolean;
|
|
44
44
|
private ngUnsubscribe;
|
|
45
45
|
ngOnDestroy(): void;
|
|
46
|
+
onContainerKeydown(event: KeyboardEvent): void;
|
|
46
47
|
ngAfterViewInit(): void;
|
|
47
48
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThumbnailComponent, never>;
|
|
48
49
|
static ɵcmp: i0.ɵɵComponentDeclaration<ThumbnailComponent, "s-thumbnail", never, { "id": { "alias": "id"; "required": false; }; "size": { "alias": "size"; "required": false; }; "imageSource": { "alias": "imageSource"; "required": false; }; "imageFallback": { "alias": "imageFallback"; "required": false; }; "imageAlt": { "alias": "imageAlt"; "required": false; }; "iconClass": { "alias": "iconClass"; "required": false; }; "hasAction": { "alias": "hasAction"; "required": false; }; "actionIconClass": { "alias": "actionIconClass"; "required": false; }; "isTile": { "alias": "isTile"; "required": false; }; "isBrand": { "alias": "isBrand"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
@@ -4,6 +4,7 @@ import * as i0 from "@angular/core";
|
|
|
4
4
|
export declare class TreeNodeItemComponent {
|
|
5
5
|
private readonly cdr;
|
|
6
6
|
private readonly translateService;
|
|
7
|
+
private readonly elementRef;
|
|
7
8
|
readonly ariaLevel: import("@angular/core").InputSignal<number>;
|
|
8
9
|
readonly showCheckbox: import("@angular/core").InputSignal<boolean>;
|
|
9
10
|
treeNodeItem: InternalTreeNodeItem;
|
|
@@ -20,6 +21,9 @@ export declare class TreeNodeItemComponent {
|
|
|
20
21
|
get ariaLabel(): string;
|
|
21
22
|
expandNode(): void;
|
|
22
23
|
collapseNode(): void;
|
|
24
|
+
focusNextNode(event: Event): void;
|
|
25
|
+
focusPreviousNode(event: Event): void;
|
|
26
|
+
private moveFocus;
|
|
23
27
|
onCheckboxEnter(node: InternalTreeNodeItem): void;
|
|
24
28
|
handleTreeNodeItemClick(event: Event, treeNodeItem?: InternalTreeNodeItem): void;
|
|
25
29
|
handleTreeNodeItemClicked({ event, item }: {
|