@seniorsistemas/angular-components 19.9.3 → 19.9.4

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 (95) hide show
  1. package/checkbox/lib/checkbox/checkbox.component.d.ts +1 -6
  2. package/checkbox-list/lib/checkbox-list/checkbox-list.component.d.ts +8 -0
  3. package/content-generator/lib/content-generator/content-generator.component.d.ts +2 -2
  4. package/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.d.ts +2 -0
  5. package/drawer/README.md +9 -2
  6. package/drawer/lib/drawer/drawer.component.d.ts +12 -1
  7. package/editor/lib/editor/editor.component.d.ts +1 -1
  8. package/esm2022/button/lib/button/button.component.mjs +3 -3
  9. package/esm2022/checkbox/lib/checkbox/checkbox.component.mjs +3 -9
  10. package/esm2022/checkbox-list/lib/checkbox-list/checkbox-list.component.mjs +17 -5
  11. package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +9 -8
  12. package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.mjs +18 -3
  13. package/esm2022/drawer/lib/drawer/drawer.component.mjs +33 -11
  14. package/esm2022/drawer/lib/drawer/drawer.module.mjs +2 -2
  15. package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +3 -3
  16. package/esm2022/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.mjs +3 -3
  17. package/esm2022/dynamic-form/dynamic-form/form-field/fields/boolean/boolean-switch-field/boolean-switch-field.component.mjs +3 -3
  18. package/esm2022/dynamic-form/dynamic-form/form-field/fields/checkbox/checkbox-field.component.mjs +4 -3
  19. package/esm2022/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.mjs +3 -3
  20. package/esm2022/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.mjs +3 -3
  21. package/esm2022/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.mjs +3 -3
  22. package/esm2022/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.mjs +3 -3
  23. package/esm2022/editor/lib/editor/editor.component.mjs +8 -8
  24. package/esm2022/file-picker/lib/file-picker/file-picker.component.mjs +4 -4
  25. package/esm2022/global-search/lib/global-search/components/dropdown/global-search-dropdown-item.component.mjs +4 -4
  26. package/esm2022/global-search/lib/global-search/global-search.module.mjs +2 -2
  27. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +3 -3
  28. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.mjs +2 -3
  29. package/esm2022/paginator/lib/models/paginator.models.mjs +1 -1
  30. package/esm2022/paginator/lib/paginator/paginator.component.mjs +19 -13
  31. package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.mjs +19 -8
  32. package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.module.mjs +3 -4
  33. package/esm2022/select/lib/select/select.component.mjs +3 -3
  34. package/esm2022/side-sheet/lib/side-sheet/side-sheet.component.mjs +6 -5
  35. package/esm2022/slider/lib/slider/slider.component.mjs +3 -3
  36. package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.mjs +54 -8
  37. package/esm2022/star-rating/star-rating/star-rating.component.mjs +3 -3
  38. package/esm2022/table-header/lib/table-header/table-header-checkbox.component.mjs +14 -21
  39. package/esm2022/text-area/lib/text-area/text-area.component.mjs +3 -3
  40. package/esm2022/tooltip/lib/tooltip/tooltip.directive.mjs +3 -2
  41. package/esm2022/utils/lib/utils/utils.mjs +49 -3
  42. package/fesm2022/seniorsistemas-angular-components-button.mjs +2 -2
  43. package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
  44. package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs +16 -4
  45. package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs.map +1 -1
  46. package/fesm2022/seniorsistemas-angular-components-checkbox.mjs +2 -8
  47. package/fesm2022/seniorsistemas-angular-components-checkbox.mjs.map +1 -1
  48. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +8 -6
  49. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
  50. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +17 -2
  51. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +1 -1
  52. package/fesm2022/seniorsistemas-angular-components-drawer.mjs +32 -9
  53. package/fesm2022/seniorsistemas-angular-components-drawer.mjs.map +1 -1
  54. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +16 -16
  55. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
  56. package/fesm2022/seniorsistemas-angular-components-editor.mjs +7 -7
  57. package/fesm2022/seniorsistemas-angular-components-editor.mjs.map +1 -1
  58. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +3 -3
  59. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
  60. package/fesm2022/seniorsistemas-angular-components-global-search.mjs +3 -3
  61. package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
  62. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +3 -4
  63. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
  64. package/fesm2022/seniorsistemas-angular-components-paginator.mjs +18 -12
  65. package/fesm2022/seniorsistemas-angular-components-paginator.mjs.map +1 -1
  66. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +20 -9
  67. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
  68. package/fesm2022/seniorsistemas-angular-components-select.mjs +2 -2
  69. package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
  70. package/fesm2022/seniorsistemas-angular-components-side-sheet.mjs +5 -4
  71. package/fesm2022/seniorsistemas-angular-components-side-sheet.mjs.map +1 -1
  72. package/fesm2022/seniorsistemas-angular-components-slider.mjs +2 -2
  73. package/fesm2022/seniorsistemas-angular-components-slider.mjs.map +1 -1
  74. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs +53 -7
  75. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs.map +1 -1
  76. package/fesm2022/seniorsistemas-angular-components-star-rating.mjs +2 -2
  77. package/fesm2022/seniorsistemas-angular-components-star-rating.mjs.map +1 -1
  78. package/fesm2022/seniorsistemas-angular-components-table-header.mjs +13 -20
  79. package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +1 -1
  80. package/fesm2022/seniorsistemas-angular-components-text-area.mjs +2 -2
  81. package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
  82. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs +2 -1
  83. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs.map +1 -1
  84. package/fesm2022/seniorsistemas-angular-components-utils.mjs +49 -3
  85. package/fesm2022/seniorsistemas-angular-components-utils.mjs.map +1 -1
  86. package/global-search/lib/global-search/global-search.module.d.ts +1 -1
  87. package/package.json +7 -9
  88. package/paginator/lib/models/paginator.models.d.ts +1 -0
  89. package/paginator/lib/paginator/paginator.component.d.ts +3 -1
  90. package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.d.ts +3 -1
  91. package/side-sheet/README.md +4 -4
  92. package/side-sheet/lib/side-sheet/side-sheet.component.d.ts +1 -0
  93. package/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.d.ts +2 -1
  94. package/table-header/lib/table-header/table-header-checkbox.component.d.ts +1 -4
  95. package/utils/lib/utils/utils.d.ts +21 -0
package/package.json CHANGED
@@ -1,17 +1,15 @@
1
1
  {
2
2
  "name": "@seniorsistemas/angular-components",
3
- "version": "19.9.3",
3
+ "version": "19.9.4",
4
4
  "peerDependencies": {
5
5
  "@angular/cdk": "^18.2.14",
6
6
  "@angular/common": "^18.2.0",
7
7
  "@angular/core": "^18.2.0",
8
8
  "@ngx-translate/core": "^16.0.4",
9
9
  "moment": "^2.30.1",
10
- "@seniorsistemas/ng2-currency-mask": "~1.0.1",
11
10
  "@seniorsistemas/senior-platform-data": "^5.4.0",
12
11
  "ngx-cookie-service": "^18.0.0",
13
12
  "ngx-mask": "19.0.6",
14
- "ng2-currency-mask": "13.0.3",
15
13
  "primeng": "^18.0.2",
16
14
  "marked": "15.0.7",
17
15
  "cropperjs": "^1.6.2",
@@ -97,18 +95,18 @@
97
95
  "esm": "./esm2022/accordion/seniorsistemas-angular-components-accordion.mjs",
98
96
  "default": "./fesm2022/seniorsistemas-angular-components-accordion.mjs"
99
97
  },
100
- "./autocomplete": {
101
- "types": "./autocomplete/index.d.ts",
102
- "esm2022": "./esm2022/autocomplete/seniorsistemas-angular-components-autocomplete.mjs",
103
- "esm": "./esm2022/autocomplete/seniorsistemas-angular-components-autocomplete.mjs",
104
- "default": "./fesm2022/seniorsistemas-angular-components-autocomplete.mjs"
105
- },
106
98
  "./alert": {
107
99
  "types": "./alert/index.d.ts",
108
100
  "esm2022": "./esm2022/alert/seniorsistemas-angular-components-alert.mjs",
109
101
  "esm": "./esm2022/alert/seniorsistemas-angular-components-alert.mjs",
110
102
  "default": "./fesm2022/seniorsistemas-angular-components-alert.mjs"
111
103
  },
104
+ "./autocomplete": {
105
+ "types": "./autocomplete/index.d.ts",
106
+ "esm2022": "./esm2022/autocomplete/seniorsistemas-angular-components-autocomplete.mjs",
107
+ "esm": "./esm2022/autocomplete/seniorsistemas-angular-components-autocomplete.mjs",
108
+ "default": "./fesm2022/seniorsistemas-angular-components-autocomplete.mjs"
109
+ },
112
110
  "./badge": {
113
111
  "types": "./badge/index.d.ts",
114
112
  "esm2022": "./esm2022/badge/seniorsistemas-angular-components-badge.mjs",
@@ -9,6 +9,7 @@ export type PaginatorInternalButton = {
9
9
  clicked: (button: PaginatorInternalButton) => any;
10
10
  pageIndex?: number;
11
11
  icon?: string;
12
+ ariaLabelKey?: string;
12
13
  disabled?: boolean;
13
14
  validate?: Signal<boolean>;
14
15
  };
@@ -29,7 +29,9 @@ export declare class PaginatorComponent implements OnDestroy {
29
29
  private readonly MAX_PAGE_BUTTONS;
30
30
  private readonly hasPreviousPage;
31
31
  private readonly hasNextPage;
32
- protected readonly currentPage: import("@angular/core").WritableSignal<number>;
32
+ private readonly requestedPage;
33
+ /** @description Página atual, sempre reajustada para o intervalo válido de `[1, totalPages]`. */
34
+ protected readonly currentPage: import("@angular/core").Signal<number>;
33
35
  protected buttons: import("@angular/core").Signal<PaginatorInternalButton[]>;
34
36
  private readonly FIRST_PAGE_BUTTON;
35
37
  private readonly PREVIOUS_PAGE_BUTTON;
@@ -23,7 +23,7 @@ import * as i0 from "@angular/core";
23
23
  */
24
24
  export declare class ProfilePicturePickerComponent implements OnInit, ControlValueAccessor {
25
25
  private readonly imageCropperService;
26
- private readonly confirmationService;
26
+ private readonly confirmDialogService;
27
27
  private readonly translateService;
28
28
  /**
29
29
  * @description Título simples exibido quando nenhuma imagem está selecionada.
@@ -114,11 +114,13 @@ export declare class ProfilePicturePickerComponent implements OnInit, ControlVal
114
114
  */
115
115
  invalidFile: EventEmitter<FileValidationErrors>;
116
116
  get imageBase64(): string;
117
+ disabled: boolean;
117
118
  private _onChange?;
118
119
  private _onTouched?;
119
120
  writeValue(value: string | ProfilePicturePickerData): void;
120
121
  registerOnChange(onChange: (value: string | ProfilePicturePickerData) => void): void;
121
122
  registerOnTouched(onTouched: () => void): void;
123
+ setDisabledState(isDisabled: boolean): void;
122
124
  ngOnInit(): void;
123
125
  onDragOver(event: DragEvent): void;
124
126
  onDragLeave(event: DragEvent): void;
@@ -16,7 +16,7 @@ Painel que empurra o conteúdo adjacente para a esquerda, dividindo o espaço ho
16
16
 
17
17
  - Ações destrutivas ou de confirmação — prefira `ConfirmDialog`
18
18
  - Conteúdo crítico que exige atenção exclusiva, bloqueando toda a tela — prefira `Dialog`
19
- - Fechamento configurável por Escape, clique fora ou confirmação de fechamento — prefira `Sidebar`
19
+ - Fechamento configurável por Escape, clique fora ou confirmação de fechamento — prefira `Drawer`
20
20
  - Painel embutido no mesmo fluxo de layout, sem necessidade de overlay em mobile — prefira `SlideInBar`
21
21
 
22
22
  ## Instalação
@@ -173,12 +173,12 @@ protected editarCompleto(pedido: Pedido): void {
173
173
  - No modo overlay (< 1024px): `role="dialog"`, `aria-modal="true"` e `cdkTrapFocus` aprisionam o foco dentro do painel enquanto aberto
174
174
  - No modo push (>= 1024px): `role="complementary"`, sem aprisionamento de foco — o conteúdo ao lado continua totalmente navegável por teclado
175
175
  - O título recebe `aria-labelledby` com um id único por instância
176
- - Ao abrir, o foco é devolvido ao elemento que estava focado antes de abrir, quando o painel é fechado
177
- - O scroll da página é bloqueado automaticamente apenas no modo overlay, e restaurado ao fechar
176
+ - Ao fechar, o foco é devolvido ao elemento que estava focado antes da abertura
177
+ - O scroll da página é bloqueado automaticamente apenas no modo overlay, e restaurado ao fechar. O bloqueio é compartilhado com outros overlays da biblioteca (ex: `Drawer`) — fechar um não reativa o scroll enquanto outro ainda estiver aberto
178
178
  - Fecha somente pelo botão X do cabeçalho — não há fechamento por Escape ou clique fora, em nenhuma resolução
179
179
 
180
180
  ## Componentes relacionados
181
181
 
182
- - [`Sidebar`](../sidebar/README.md) — painel lateral que sobrepõe o conteúdo com backdrop, fechamento configurável por Esc/clique fora
182
+ - [`Drawer`](../drawer/README.md) — painel lateral que sobrepõe o conteúdo com backdrop, fechamento configurável por Esc/clique fora
183
183
  - [`Dialog`](../dialog/README.md) — modal centralizado para confirmações e conteúdo crítico
184
184
  - [`SlideInBar`](../slide-in-bar/README.md) — painel embutido no fluxo do layout, sem necessidade de overlay em mobile
@@ -53,6 +53,7 @@ export declare class SideSheetComponent {
53
53
  */
54
54
  protected readonly panelWidthClasses: import("@angular/core").Signal<"[@media(min-width:1024px)]:w-[400px] [@media(min-width:1366px)]:w-[max(400px,50vw)]" | "[@media(min-width:1024px)]:w-[400px] [@media(min-width:1920px)]:w-[480px] [@media(min-width:2560px)]:w-[560px] [@media(min-width:3440px)]:w-[640px]">;
55
55
  private _elementToRefocus;
56
+ private readonly _scrollLock;
56
57
  constructor();
57
58
  protected closeSideSheet(): void;
58
59
  private _matchesDesktop;
@@ -31,6 +31,7 @@ export declare class SpeechRecognitionComponent implements OnInit, OnDestroy {
31
31
  private readonly onDestroy$;
32
32
  private readonly VOICE_SPEEDS;
33
33
  private readonly keydownEventListener;
34
+ disabledSpeechRecognition: import("@angular/core").InputSignal<boolean>;
34
35
  disabled: boolean;
35
36
  isListeningUserVoice: boolean;
36
37
  voiceSpeed: number;
@@ -64,5 +65,5 @@ export declare class SpeechRecognitionComponent implements OnInit, OnDestroy {
64
65
  private speak;
65
66
  private get textToSpeech();
66
67
  static ɵfac: i0.ɵɵFactoryDeclaration<SpeechRecognitionComponent, never>;
67
- static ɵcmp: i0.ɵɵComponentDeclaration<SpeechRecognitionComponent, "s-speech-recognition", never, { "textAreaElement": { "alias": "textAreaElement"; "required": true; }; "keepContext": { "alias": "keepContext"; "required": false; }; "speechRecognitionPlaceholder": { "alias": "speechRecognitionPlaceholder"; "required": false; }; }, { "recognizedText": "recognizedText"; }, never, never, true, never>;
68
+ static ɵcmp: i0.ɵɵComponentDeclaration<SpeechRecognitionComponent, "s-speech-recognition", never, { "textAreaElement": { "alias": "textAreaElement"; "required": true; }; "keepContext": { "alias": "keepContext"; "required": false; }; "speechRecognitionPlaceholder": { "alias": "speechRecognitionPlaceholder"; "required": false; }; "disabledSpeechRecognition": { "alias": "disabledSpeechRecognition"; "required": false; "isSignal": true; }; }, { "recognizedText": "recognizedText"; }, never, never, true, never>;
68
69
  }
@@ -1,5 +1,4 @@
1
1
  import { OnDestroy, OnInit } from '@angular/core';
2
- import { CheckboxListData, CheckboxListState } from '@seniorsistemas/angular-components/checkbox-list';
3
2
  import { Table, TableService } from 'primeng/table';
4
3
  import * as i0 from "@angular/core";
5
4
  /**
@@ -28,10 +27,8 @@ export declare class TableHeaderCheckboxComponent implements OnInit, OnDestroy {
28
27
  rowProps?: string[];
29
28
  /** @description Quando `true`, usa o objeto completo da linha em vez de propriedades específicas. */
30
29
  useAllObject?: boolean;
31
- checkboxItems: CheckboxListData;
32
30
  checked: boolean;
33
31
  hasFocus: boolean;
34
- checkboxState: CheckboxListState;
35
32
  private _ngUnsubscribe;
36
33
  constructor();
37
34
  ngOnInit(): void;
@@ -39,7 +36,7 @@ export declare class TableHeaderCheckboxComponent implements OnInit, OnDestroy {
39
36
  onFocus(): void;
40
37
  onBlur(): void;
41
38
  isDisabled(): boolean;
42
- onClick(): void;
39
+ onClick(checked: boolean): void;
43
40
  updateCheckedState(): any;
44
41
  onToggleCheckbox(checked: boolean): void;
45
42
  isAllFilteredValuesChecked(): boolean;
@@ -23,6 +23,27 @@ export declare const isMousePositionOutsideOfElement: (event: MouseEvent | Point
23
23
  }) => boolean;
24
24
  export declare const getElementPositionInfo: (element: HTMLElement) => ElementPosition;
25
25
  export declare const getElementLeftoverContentAvailable: (element: HTMLElement) => ElementLeftoverPosition;
26
+ /**
27
+ * @description Libera um lock de scroll adquirido via `disableScroll`. Como múltiplos overlays
28
+ * (ex: Drawer, SideSheet) podem estar abertos ao mesmo tempo e todos chamam essa mesma função,
29
+ * o scroll só é de fato reativado quando o último lock pendente é liberado — e restaura o valor
30
+ * de `overflow` anterior ao primeiro `disableScroll`, em vez de sempre forçar `'auto'`.
31
+ */
26
32
  export declare const enableScroll: () => void;
33
+ /**
34
+ * @description Bloqueia o scroll da página. Contabiliza quantos overlays pediram o bloqueio
35
+ * simultaneamente, para que fechar um não reative o scroll enquanto outro ainda estiver aberto.
36
+ */
27
37
  export declare const disableScroll: () => void;
38
+ export type ScrollLock = {
39
+ lock: () => void;
40
+ unlock: () => void;
41
+ };
42
+ /**
43
+ * @description Cria um controle de lock de scroll para uma instância (ex: um componente de
44
+ * overlay). Chamar `lock`/`unlock` várias vezes seguidas é seguro — cada instância só chama
45
+ * `disableScroll`/`enableScroll` (que ela mesma adquiriu, evitando liberar o lock de outro overlay
46
+ * por engano) na primeira vez que necessário.
47
+ */
48
+ export declare const createScrollLock: () => ScrollLock;
28
49
  export declare function deepClone<T>(value: T, weakMap?: WeakMap<WeakKey, any>): T;