@po-ui/ng-components 21.28.0 → 21.30.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 (46) hide show
  1. package/fesm2022/{po-ui-ng-components-po-chart-modal-table.component-CIfW0N91.mjs → po-ui-ng-components-po-chart-modal-table.component-BEh4YifL.mjs} +4 -4
  2. package/fesm2022/{po-ui-ng-components-po-chart-modal-table.component-CIfW0N91.mjs.map → po-ui-ng-components-po-chart-modal-table.component-BEh4YifL.mjs.map} +1 -1
  3. package/fesm2022/po-ui-ng-components.mjs +2035 -1278
  4. package/fesm2022/po-ui-ng-components.mjs.map +1 -1
  5. package/lib/components/po-dynamic/po-dynamic-form/interfaces/po-dynamic-form-field.interface.d.ts +28 -0
  6. package/lib/components/po-field/index.d.ts +3 -0
  7. package/lib/components/po-field/po-checkbox/po-checkbox-base.component.d.ts +16 -0
  8. package/lib/components/po-field/po-checkbox-group/po-checkbox-group-base.component.d.ts +16 -0
  9. package/lib/components/po-field/po-combo/po-combo-base.component.d.ts +16 -0
  10. package/lib/components/po-field/po-combo/po-combo.component.d.ts +1 -0
  11. package/lib/components/po-field/po-datepicker/po-datepicker-base.component.d.ts +16 -0
  12. package/lib/components/po-field/po-datepicker-range/po-datepicker-range-base.component.d.ts +16 -0
  13. package/lib/components/po-field/po-datetimepicker/po-datetimepicker-base.component.d.ts +16 -0
  14. package/lib/components/po-field/po-decimal/interfaces/po-decimal-format-parsed.interface.d.ts +16 -0
  15. package/lib/components/po-field/po-decimal/interfaces/po-decimal-format-result.interface.d.ts +12 -0
  16. package/lib/components/po-field/po-decimal/po-decimal.component.d.ts +42 -1
  17. package/lib/components/po-field/po-decimal/utils/po-decimal-format.util.d.ts +47 -0
  18. package/lib/components/po-field/po-input/po-input-base.component.d.ts +7 -1
  19. package/lib/components/po-field/po-lookup/po-lookup-base.component.d.ts +16 -0
  20. package/lib/components/po-field/po-multiselect/po-multiselect-base.component.d.ts +16 -0
  21. package/lib/components/po-field/po-radio-group/po-radio-group-base.component.d.ts +16 -0
  22. package/lib/components/po-field/po-select/po-select.component.d.ts +16 -0
  23. package/lib/components/po-field/po-switch/po-switch.component.d.ts +17 -1
  24. package/lib/components/po-field/po-timepicker/po-timepicker-base.component.d.ts +16 -0
  25. package/lib/pipes/index.d.ts +1 -0
  26. package/lib/pipes/po-decimal/index.d.ts +2 -0
  27. package/lib/pipes/po-decimal/po-decimal.module.d.ts +2 -0
  28. package/lib/pipes/po-decimal/po-decimal.pipe.d.ts +15 -0
  29. package/package.json +4 -4
  30. package/po-ui-ng-components-21.30.0.tgz +0 -0
  31. package/schematics/ng-add/index.js +1 -1
  32. package/schematics/ng-update/v14/index.js +1 -1
  33. package/schematics/ng-update/v15/index.js +1 -1
  34. package/schematics/ng-update/v16/index.js +1 -1
  35. package/schematics/ng-update/v17/index.js +1 -1
  36. package/schematics/ng-update/v18/index.js +2 -2
  37. package/schematics/ng-update/v19/index.js +2 -2
  38. package/schematics/ng-update/v2/index.js +1 -1
  39. package/schematics/ng-update/v20/index.js +2 -2
  40. package/schematics/ng-update/v21/index.js +1 -1
  41. package/schematics/ng-update/v3/index.js +1 -1
  42. package/schematics/ng-update/v4/index.js +1 -1
  43. package/schematics/ng-update/v5/index.js +1 -1
  44. package/schematics/ng-update/v6/index.js +1 -1
  45. package/types/po-ui-ng-components.d.ts +383 -17
  46. package/po-ui-ng-components-21.28.0.tgz +0 -0
@@ -117,6 +117,8 @@ export interface PoDynamicFormField extends PoDynamicField {
117
117
  *
118
118
  * **Componente compatível:** `po-input`.
119
119
  * > também é atribuído ao utilizar a propriedade `type: time`.
120
+ *
121
+ * > Incompatível com `po-decimal`.
120
122
  */
121
123
  mask?: string;
122
124
  /**
@@ -167,17 +169,23 @@ export interface PoDynamicFormField extends PoDynamicField {
167
169
  /** Quantidade máxima de casas decimais.
168
170
  *
169
171
  * > Esta propriedade só pode ser utilizada quando o `type` for *currency* ou *decimal*.
172
+ *
173
+ * > Quando utilizado com `displayFormat`, será respeitado o valor **mais restritivo** entre esta propriedade e o número de casas decimais definido no formato.
170
174
  */
171
175
  decimalsLength?: number;
172
176
  /** Quantidade máxima de dígitos antes do separador decimal. O valor máximo permitido é 13
173
177
  *
174
178
  * > Esta propriedade só pode ser utilizada quando o `type` for *currency* ou *decimal*.
179
+ *
180
+ * > Quando utilizado com `displayFormat`, será respeitado o valor **mais restritivo** entre esta propriedade e o número de dígitos inteiros definido no formato.
175
181
  */
176
182
  thousandMaxlength?: number;
177
183
  /**
178
184
  * Regex para validação do campo.
179
185
  *
180
186
  * **Componentes compatíveis:** `po-input`, `po-password`.
187
+ *
188
+ * > Incompatível com `po-decimal`.
181
189
  * */
182
190
  pattern?: string;
183
191
  /**
@@ -379,6 +387,26 @@ export interface PoDynamicFormField extends PoDynamicField {
379
387
  * **Componentes compatíveis:** `po-datepicker`, `po-datetimepicker`, `po-timepicker`, `po-lookup`.
380
388
  */
381
389
  format?: string | Array<string>;
390
+ /**
391
+ * Define uma máscara de formatação numérica avançada para o campo.
392
+ *
393
+ * Simbologia suportada:
394
+ * - `9`: Dígito obrigatório (preenche com zero à esquerda no blur);
395
+ * - `>`: Supressão de zero à esquerda (dígito não obrigatório);
396
+ * - `<`: Decimal flutuante, supressão de zeros à direita (dígito não obrigatório);
397
+ * - `.`: Separador decimal (convertido conforme locale);
398
+ * - `,`: Separador de milhar/grupo (convertido conforme locale);
399
+ * - `-`: Sinal negativo (deve ser o primeiro caractere do formato).
400
+ *
401
+ * > Quando utilizado com `decimalsLength` ou `thousandMaxlength`, será respeitado o valor **mais restritivo** entre a propriedade e o formato.
402
+ *
403
+ * Exemplos: `'>>>,>>>,>>9.99'`, `'->>9.99'`, `'999.9'`
404
+ *
405
+ * > Esta propriedade só pode ser utilizada quando o `type` for *currency* ou *decimal*.
406
+ *
407
+ * **Componente compatível:** `po-decimal`.
408
+ */
409
+ displayFormat?: string;
382
410
  /**
383
411
  * Nome da propriedade do objeto retornado que será utilizado como descrição do campo.
384
412
  *
@@ -21,6 +21,9 @@ export * from './po-datepicker-range/po-datepicker-range.component';
21
21
  export * from './po-datetimepicker/po-datetimepicker.component';
22
22
  export * from './po-datetimepicker/po-datetimepicker.module';
23
23
  export * from './po-decimal/po-decimal.component';
24
+ export * from './po-decimal/utils/po-decimal-format.util';
25
+ export * from './po-decimal/interfaces/po-decimal-format-parsed.interface';
26
+ export * from './po-decimal/interfaces/po-decimal-format-result.interface';
24
27
  export * from './po-email/po-email.component';
25
28
  export * from './po-input/po-input.component';
26
29
  export * from './po-input/po-mask';
@@ -162,6 +162,20 @@ export declare abstract class PoCheckboxBaseComponent implements ControlValueAcc
162
162
  * Evento disparado quando o valor do *checkbox* for alterado.
163
163
  */
164
164
  change: EventEmitter<any>;
165
+ /**
166
+ * @optional
167
+ *
168
+ * @description
169
+ *
170
+ * Evento disparado sempre que o valor do model é alterado, seja por interação do usuário
171
+ * ou por atualização programática (ex: `setValue`, `patchValue`, carregamento assíncrono).
172
+ *
173
+ * Diferentemente do `p-change`, que é disparado apenas por interação do usuário,
174
+ * o `p-change-model` cobre todos os cenários de alteração de valor.
175
+ *
176
+ * Não emite quando o novo valor é idêntico ao anterior (deduplicação automática).
177
+ */
178
+ changeModel: EventEmitter<any>;
165
179
  /**
166
180
  * @optional
167
181
  *
@@ -175,6 +189,7 @@ export declare abstract class PoCheckboxBaseComponent implements ControlValueAcc
175
189
  disabladTabindex: boolean;
176
190
  displayAdditionalHelp: boolean;
177
191
  id: string;
192
+ modelLastUpdate: any;
178
193
  propagateChange: any;
179
194
  onTouched: any;
180
195
  private _disabled?;
@@ -240,6 +255,7 @@ export declare abstract class PoCheckboxBaseComponent implements ControlValueAcc
240
255
  registerOnChange(fn: any): void;
241
256
  registerOnTouched(fn: any): void;
242
257
  writeValue(value: any): void;
258
+ controlChangeModelEmitter(value: any): void;
243
259
  private applySizeBasedOnA11y;
244
260
  protected abstract changeModelValue(value: boolean | null): any;
245
261
  }
@@ -212,6 +212,20 @@ export declare class PoCheckboxGroupBaseComponent implements ControlValueAccesso
212
212
  * Evento disparado ao alterar valor do campo
213
213
  */
214
214
  change: EventEmitter<any>;
215
+ /**
216
+ * @optional
217
+ *
218
+ * @description
219
+ *
220
+ * Evento disparado sempre que o valor do model é alterado, seja por interação do usuário
221
+ * ou por atualização programática (ex: `setValue`, `patchValue`, carregamento assíncrono).
222
+ *
223
+ * Diferentemente do `p-change`, que é disparado apenas por interação do usuário,
224
+ * o `p-change-model` cobre todos os cenários de alteração de valor.
225
+ *
226
+ * Não emite quando o novo valor é idêntico ao anterior (deduplicação automática).
227
+ */
228
+ changeModel: EventEmitter<any>;
215
229
  /**
216
230
  * @optional
217
231
  *
@@ -225,6 +239,7 @@ export declare class PoCheckboxGroupBaseComponent implements ControlValueAccesso
225
239
  checkedOptionsList: any;
226
240
  displayAdditionalHelp: boolean;
227
241
  mdColumns: number;
242
+ modelLastUpdate: any;
228
243
  propagateChange: any;
229
244
  validatorChange: any;
230
245
  private _columns;
@@ -329,6 +344,7 @@ export declare class PoCheckboxGroupBaseComponent implements ControlValueAccesso
329
344
  registerOnChange(fn: any): void;
330
345
  registerOnTouched(fn: any): void;
331
346
  writeValue(optionsModel: any): void;
347
+ controlChangeModelEmitter(value: any): void;
332
348
  registerOnValidatorChange(fn: () => void): void;
333
349
  validate(abstractControl: AbstractControl): {
334
350
  [key: string]: any;
@@ -314,6 +314,20 @@ export declare abstract class PoComboBaseComponent implements ControlValueAccess
314
314
  * > Pode-se optar pelo recebimento do objeto selecionado ao invés do model através da propriedade `p-emit-object-value`.
315
315
  */
316
316
  change: EventEmitter<any>;
317
+ /**
318
+ * @optional
319
+ *
320
+ * @description
321
+ *
322
+ * Evento disparado sempre que o valor do model é alterado, seja por interação do usuário
323
+ * ou por atualização programática (ex: `setValue`, `patchValue`, carregamento assíncrono).
324
+ *
325
+ * Diferentemente do `p-change`, que é disparado apenas por interação do usuário,
326
+ * o `p-change-model` cobre todos os cenários de alteração de valor.
327
+ *
328
+ * Não emite quando o novo valor é idêntico ao anterior (deduplicação automática).
329
+ */
330
+ changeModel: EventEmitter<any>;
317
331
  /**
318
332
  * @optional
319
333
  *
@@ -395,6 +409,7 @@ export declare abstract class PoComboBaseComponent implements ControlValueAccess
395
409
  isFirstFilter: boolean;
396
410
  isFiltering: boolean;
397
411
  keyupSubscribe: any;
412
+ modelLastUpdate: any;
398
413
  onModelChange: any;
399
414
  previousSearchValue: string;
400
415
  selectedOption: any;
@@ -677,6 +692,7 @@ export declare abstract class PoComboBaseComponent implements ControlValueAccess
677
692
  private isGroupTitle;
678
693
  private updateOptionsSelectedState;
679
694
  callModelChange(value: any): any;
695
+ controlChangeModelEmitter(value: any): void;
680
696
  isEqual(value: any, inputValue: any): boolean;
681
697
  mapSizeToIcon(size: string): string;
682
698
  searchForLabel(search: string, options: Array<any>, filterMode: PoComboFilterMode): void;
@@ -64,6 +64,7 @@ export declare class PoComboComponent extends PoComboBaseComponent implements Af
64
64
  outerContainer: ElementRef;
65
65
  containerElement: ElementRef;
66
66
  contentElement: ElementRef;
67
+ fieldContainerInput: ElementRef;
67
68
  iconElement: ElementRef;
68
69
  inputEl: ElementRef;
69
70
  poListbox: PoListBoxComponent;
@@ -239,6 +239,20 @@ export declare abstract class PoDatepickerBaseComponent implements ControlValueA
239
239
  * > Essa propriedade está **depreciada** e será removida na versão `23.x.x`. Recomendamos utilizar a propriedade `p-helper` que oferece mais recursos e flexibilidade.
240
240
  */
241
241
  additionalHelp: EventEmitter<any>;
242
+ /**
243
+ * @optional
244
+ *
245
+ * @description
246
+ *
247
+ * Evento disparado sempre que o valor do model é alterado, seja por interação do usuário
248
+ * ou por atualização programática (ex: `setValue`, `patchValue`, carregamento assíncrono).
249
+ *
250
+ * Diferentemente do `p-change`, que é disparado apenas por interação do usuário,
251
+ * o `p-change-model` cobre todos os cenários de alteração de valor.
252
+ *
253
+ * Não emite quando o novo valor é idêntico ao anterior (deduplicação automática).
254
+ */
255
+ changeModel: EventEmitter<any>;
242
256
  /**
243
257
  * @optional
244
258
  *
@@ -286,6 +300,7 @@ export declare abstract class PoDatepickerBaseComponent implements ControlValueA
286
300
  * @default `false`
287
301
  */
288
302
  labelTextWrap: import("@angular/core").InputSignal<boolean>;
303
+ modelLastUpdate: any;
289
304
  offset: number;
290
305
  protected firstStart: boolean;
291
306
  protected hour: string;
@@ -468,6 +483,7 @@ export declare abstract class PoDatepickerBaseComponent implements ControlValueA
468
483
  formatToDate(value: Date): string;
469
484
  controlModel(date: Date): void;
470
485
  callOnChange(value: any, retry?: boolean): void;
486
+ controlChangeModelEmitter(value: any): void;
471
487
  mapSizeToIcon(size: string): string;
472
488
  setDisabledState(isDisabled: boolean): void;
473
489
  registerOnChange(func: any): void;
@@ -290,6 +290,20 @@ export declare abstract class PoDatepickerRangeBaseComponent implements ControlV
290
290
  * Evento disparado ao alterar valor do campo.
291
291
  */
292
292
  onChange: EventEmitter<any>;
293
+ /**
294
+ * @optional
295
+ *
296
+ * @description
297
+ *
298
+ * Evento disparado sempre que o valor do model é alterado, seja por interação do usuário
299
+ * ou por atualização programática (ex: `setValue`, `patchValue`, carregamento assíncrono).
300
+ *
301
+ * Diferentemente do `p-change`, que é disparado apenas por interação do usuário,
302
+ * o `p-change-model` cobre todos os cenários de alteração de valor.
303
+ *
304
+ * Não emite quando o novo valor é idêntico ao anterior (deduplicação automática).
305
+ */
306
+ changeModel: EventEmitter<any>;
293
307
  /**
294
308
  * @optional
295
309
  *
@@ -301,6 +315,7 @@ export declare abstract class PoDatepickerRangeBaseComponent implements ControlV
301
315
  errorMessage: string;
302
316
  dateRange: PoDatepickerRange;
303
317
  displayAdditionalHelp: boolean;
318
+ modelLastUpdate: any;
304
319
  protected format: any;
305
320
  protected isDateRangeInputFormatValid: boolean;
306
321
  protected isStartDateRangeInputValid: boolean;
@@ -514,6 +529,7 @@ export declare abstract class PoDatepickerRangeBaseComponent implements ControlV
514
529
  protected buildMask(format?: string): PoMask;
515
530
  protected dateFormatFailed(value: string): boolean;
516
531
  protected updateModel(value: any): void;
532
+ controlChangeModelEmitter(value: any): void;
517
533
  protected validateModel(value: any): void;
518
534
  protected verifyValidDate(startDate: string, endDate: string): boolean;
519
535
  private convertPatternDateFormat;
@@ -456,6 +456,21 @@ export declare abstract class PoDatetimepickerBaseComponent implements ControlVa
456
456
  * Evento disparado quando uma tecla é pressionada enquanto o foco está no componente.
457
457
  */
458
458
  keydown: EventEmitter<KeyboardEvent>;
459
+ /**
460
+ * @optional
461
+ *
462
+ * @description
463
+ *
464
+ * Evento disparado sempre que o valor do model é alterado, seja por interação do usuário
465
+ * ou por atualização programática (ex: `setValue`, `patchValue`, carregamento assíncrono).
466
+ *
467
+ * Diferentemente do `p-change`, que é disparado apenas por interação do usuário,
468
+ * o `p-change-model` cobre todos os cenários de alteração de valor.
469
+ *
470
+ * Não emite quando o novo valor é idêntico ao anterior (deduplicação automática).
471
+ */
472
+ changeModel: EventEmitter<any>;
473
+ modelLastUpdate: any;
459
474
  constructor(languageService: PoLanguageService);
460
475
  writeValue(value: any): void;
461
476
  registerOnChange(fn: any): void;
@@ -487,6 +502,7 @@ export declare abstract class PoDatetimepickerBaseComponent implements ControlVa
487
502
  getModelValue(): string;
488
503
  getTimezoneOffset(date?: Date): string;
489
504
  callOnChange(value: any, retry?: boolean): void;
505
+ controlChangeModelEmitter(value: any): void;
490
506
  controlModel(): void;
491
507
  formatTimeForDisplay(time: string): string;
492
508
  protected buildMask(format?: string): PoMask;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @docsPrivate
3
+ *
4
+ * @description
5
+ *
6
+ * Resultado do parsing de uma string de formato numérico.
7
+ */
8
+ export interface PoDecimalFormatParsed {
9
+ integerFormat: Array<string>;
10
+ decimalFormat: Array<string>;
11
+ groupSeparatorPositions: Array<number>;
12
+ allowNegative: boolean;
13
+ integerDigitCount: number;
14
+ decimalDigitCount: number;
15
+ originalFormat: string;
16
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @docsPrivate
3
+ *
4
+ * @description
5
+ *
6
+ * Resultado da aplicação do formato numérico a um valor.
7
+ */
8
+ export interface PoDecimalFormatResult {
9
+ viewValue: string;
10
+ modelValue: number | undefined;
11
+ isValid: boolean;
12
+ }
@@ -1,4 +1,4 @@
1
- import { AfterViewInit, ElementRef, OnDestroy, OnInit, OnChanges, SimpleChanges } from '@angular/core';
1
+ import { AfterViewInit, ElementRef, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
2
2
  import { AbstractControl } from '@angular/forms';
3
3
  import { PoInputBaseComponent } from '../po-input/po-input-base.component';
4
4
  /**
@@ -39,6 +39,11 @@ import { PoInputBaseComponent } from '../po-input/po-input-base.component';
39
39
  * <file name="sample-po-decimal-hourly-wage-reactive-form/sample-po-decimal-hourly-wage-reactive-form.component.html"> </file>
40
40
  * <file name="sample-po-decimal-hourly-wage-reactive-form/sample-po-decimal-hourly-wage-reactive-form.component.ts"> </file>
41
41
  * </example>
42
+ *
43
+ * <example name="po-decimal-display-format" title="PO Decimal - Display Format">
44
+ * <file name="sample-po-decimal-display-format/sample-po-decimal-display-format.component.html"> </file>
45
+ * <file name="sample-po-decimal-display-format/sample-po-decimal-display-format.component.ts"> </file>
46
+ * </example>
42
47
  */
43
48
  export declare class PoDecimalComponent extends PoInputBaseComponent implements AfterViewInit, OnInit, OnDestroy, OnChanges {
44
49
  private readonly el;
@@ -72,6 +77,7 @@ export declare class PoDecimalComponent extends PoInputBaseComponent implements
72
77
  * - A soma total de `p-decimals-length` com `p-thousand-maxlength` limita-se à 16;
73
78
  * - Esta propriedade sobrepõe apenas o valor **padrão** de `p-thousand-maxlength`;
74
79
  * - Caso `p-thousand-maxlength` tenha um valor definido, esta propriedade poderá receber apenas o valor restante do limite total (16).
80
+ * - Quando utilizado com `p-display-format`, será respeitado o valor **mais restritivo** entre esta propriedade e o número de casas decimais definido no formato.
75
81
  *
76
82
  * @default `2`
77
83
  */
@@ -88,6 +94,8 @@ export declare class PoDecimalComponent extends PoInputBaseComponent implements
88
94
  * - O valor máximo permitido é 13;
89
95
  * - A soma total de `p-decimals-length` com `p-thousand-maxlength` limita-se à 16;
90
96
  * - Esta propriedade sobrepõe o valor definido em `p-decimals-length`.
97
+ * - Quando utilizado com `p-display-format`, será respeitado o valor **mais restritivo** entre esta propriedade e o número de dígitos inteiros definido no
98
+ * formato.
91
99
  *
92
100
  * @default `13`
93
101
  */
@@ -105,6 +113,31 @@ export declare class PoDecimalComponent extends PoInputBaseComponent implements
105
113
  *
106
114
  */
107
115
  set locale(locale: string);
116
+ /**
117
+ * @optional
118
+ *
119
+ * @description
120
+ *
121
+ * Define uma máscara de formatação numérica avançada para o campo.
122
+ *
123
+ * Simbologia suportada:
124
+ * - `9`: Dígito obrigatório (preenche com zero à esquerda no blur);
125
+ * - `>`: Supressão de zero à esquerda (dígito não obrigatório);
126
+ * - `<`: Decimal flutuante, supressão de zeros à direita (dígito não obrigatório);
127
+ * - `,` e `.`: Separadores de milhar/grupo e decimal (convertidos conforme `p-locale`);
128
+ * - `-`: Sinal negativo (deve ser o primeiro caractere do formato).
129
+ *
130
+ * > **Importante:**
131
+ * - A formatação via `p-display-format` é apenas visual; o valor do model é sempre o número puro.
132
+ * - Quando o valor pré-preenchido não atende ao formato (overflow ou negativo sem `-`), o campo exibe com a formatação padrão do `po-decimal` (separadores de milhar + `p-decimals-length` casas decimais).
133
+ * - Quando `p-decimals-length` ou `p-thousand-maxlength` são definidos, será respeitado o valor **mais restritivo** entre o formato e a propriedade.
134
+ * - Incompatível com `p-mask`, `p-mask-format-model`, `p-mask-no-length-validation` e `p-pattern`.
135
+ *
136
+ * Exemplos de formato: `>>>,>>>,>>9.99`, `->>,>>9.99`, `999.9`, `>>>,>>9.9<<<<<<`
137
+ *
138
+ */
139
+ readonly displayFormat: import("@angular/core").InputSignal<string>;
140
+ private readonly formatParsed;
108
141
  /**
109
142
  * @optional
110
143
  *
@@ -152,6 +185,14 @@ export declare class PoDecimalComponent extends PoInputBaseComponent implements
152
185
  hideAdditionalHelp: boolean;
153
186
  helperSettings?: any;
154
187
  };
188
+ private applyFormatOnBlur;
189
+ private resolveViewValue;
190
+ private applyFormatOnBlurAndSetView;
191
+ private formatMaskWithAblPositions;
192
+ private validateFormatOnInput;
193
+ private getEffectiveFormatParsed;
194
+ private getModelValueFromView;
195
+ private refreshOnPropertyChange;
155
196
  private containsComma;
156
197
  private containsMoreThanOneDecimalSeparator;
157
198
  private controlChangeEmitter;
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Formatação numérica avançada para o po-decimal.
3
+ *
4
+ * Simbologia suportada:
5
+ * 9 - Dígito obrigatório (preenche com zero)
6
+ * > - Supressão de zero à esquerda
7
+ * < - Supressão de zeros à direita (decimal flutuante)
8
+ * , - Separador de grupo (convertido conforme locale)
9
+ * . - Separador decimal (convertido conforme locale)
10
+ * - - Sinal negativo (primeiro caractere)
11
+ */
12
+ import { PoDecimalFormatParsed } from '../interfaces/po-decimal-format-parsed.interface';
13
+ import { PoDecimalFormatResult } from '../interfaces/po-decimal-format-result.interface';
14
+ export { PoDecimalFormatParsed } from '../interfaces/po-decimal-format-parsed.interface';
15
+ export { PoDecimalFormatResult } from '../interfaces/po-decimal-format-result.interface';
16
+ /**
17
+ * Aplica o formato ao valor numérico, gerando a representação visual.
18
+ *
19
+ * @returns viewValue formatado + flag de validação (overflow = isValid false)
20
+ */
21
+ export declare function applyDecimalFormat(value: number | undefined | null, parsed: PoDecimalFormatParsed, decimalSeparator: string, thousandSeparator: string): PoDecimalFormatResult;
22
+ /**
23
+ * Deriva os limites de dígitos do formato para compatibilidade com p-decimals-length / p-thousand-maxlength.
24
+ */
25
+ export declare function getFormatLimits(parsed: PoDecimalFormatParsed): {
26
+ decimalsLength: number;
27
+ thousandMaxlength: number;
28
+ } | null;
29
+ /**
30
+ * Faz o parsing da string de formato numérico.
31
+ *
32
+ * Regra: '.' no formato = separador decimal, ',' = separador de grupo.
33
+ * Sem '.' = formato puramente inteiro.
34
+ */
35
+ export declare function parseDecimalFormat(format: string): PoDecimalFormatParsed;
36
+ /**
37
+ * Valida se o valor digitado cabe no formato (usado durante input em tempo real).
38
+ */
39
+ export declare function validateAgainstFormat(rawValue: string, parsed: PoDecimalFormatParsed, decimalSeparator: string): boolean;
40
+ /**
41
+ * Insere separadores de grupo baseando-se nas posições do formato original,
42
+ * calculando da direita para a esquerda. Funciona tanto com formato truncado
43
+ * (quando p-thousand-maxlength restringe) quanto em tamanho completo.
44
+ *
45
+ * Aceita digits como Array<string> (blur, com placeholders) ou string (digitação).
46
+ */
47
+ export declare function insertGroupSeparatorsFromRight(digits: Array<string> | string, parsed: PoDecimalFormatParsed, thousandSeparator: string): string;
@@ -308,7 +308,13 @@ export declare abstract class PoInputBaseComponent implements ControlValueAccess
308
308
  *
309
309
  * @description
310
310
  *
311
- * Evento disparado ao alterar valor do model.
311
+ * Evento disparado sempre que o valor do model é alterado, seja por interação do usuário
312
+ * ou por atualização programática (ex: `setValue`, `patchValue`, carregamento assíncrono).
313
+ *
314
+ * Diferentemente do `p-change`, que é disparado apenas por interação do usuário,
315
+ * o `p-change-model` cobre todos os cenários de alteração de valor.
316
+ *
317
+ * Não emite quando o novo valor é idêntico ao anterior (deduplicação automática).
312
318
  */
313
319
  changeModel: EventEmitter<any>;
314
320
  /**
@@ -470,6 +470,20 @@ export declare abstract class PoLookupBaseComponent implements ControlValueAcces
470
470
  * Por parâmetro será passado o novo valor.
471
471
  */
472
472
  change: EventEmitter<any>;
473
+ /**
474
+ * @optional
475
+ *
476
+ * @description
477
+ *
478
+ * Evento disparado sempre que o valor do model é alterado, seja por interação do usuário
479
+ * ou por atualização programática (ex: `setValue`, `patchValue`, carregamento assíncrono).
480
+ *
481
+ * Diferentemente do `p-change`, que é disparado apenas por interação do usuário,
482
+ * o `p-change-model` cobre todos os cenários de alteração de valor.
483
+ *
484
+ * Não emite quando o novo valor é idêntico ao anterior (deduplicação automática).
485
+ */
486
+ changeModel: EventEmitter<any>;
473
487
  /**
474
488
  * @optional
475
489
  *
@@ -492,6 +506,7 @@ export declare abstract class PoLookupBaseComponent implements ControlValueAcces
492
506
  columnRestoreManager: EventEmitter<string[]>;
493
507
  displayAdditionalHelp: boolean;
494
508
  service: any;
509
+ modelLastUpdate: any;
495
510
  protected selectedOptions: any[];
496
511
  protected getSubscription: Subscription;
497
512
  protected keysDescription: Array<any>;
@@ -636,6 +651,7 @@ export declare abstract class PoLookupBaseComponent implements ControlValueAcces
636
651
  registerOnTouched(func: any): void;
637
652
  selectValue(valueSelected: any): void;
638
653
  callOnChange(value: any): void;
654
+ controlChangeModelEmitter(value: any): void;
639
655
  mapSizeToIcon(size: string): string;
640
656
  searchById(value: any): void;
641
657
  validate(abstractControl: AbstractControl): {
@@ -233,6 +233,20 @@ export declare abstract class PoMultiselectBaseComponent implements ControlValue
233
233
  * Pode ser informada uma função que será disparada quando houver alterações no ngModel.
234
234
  */
235
235
  change: EventEmitter<any>;
236
+ /**
237
+ * @optional
238
+ *
239
+ * @description
240
+ *
241
+ * Evento disparado sempre que o valor do model é alterado, seja por interação do usuário
242
+ * ou por atualização programática (ex: `setValue`, `patchValue`, carregamento assíncrono).
243
+ *
244
+ * Diferentemente do `p-change`, que é disparado apenas por interação do usuário,
245
+ * o `p-change-model` cobre todos os cenários de alteração de valor.
246
+ *
247
+ * Não emite quando o novo valor é idêntico ao anterior (deduplicação automática).
248
+ */
249
+ changeModel: EventEmitter<any>;
236
250
  /**
237
251
  * @optional
238
252
  *
@@ -306,6 +320,7 @@ export declare abstract class PoMultiselectBaseComponent implements ControlValue
306
320
  service: PoMultiselectFilterService;
307
321
  defaultService: PoMultiselectFilterService;
308
322
  displayAdditionalHelp: boolean;
323
+ modelLastUpdate: any;
309
324
  protected onModelTouched: any;
310
325
  protected clickOutListener: () => void;
311
326
  protected resizeListener: () => void;
@@ -585,6 +600,7 @@ export declare abstract class PoMultiselectBaseComponent implements ControlValue
585
600
  updateList(options: Array<PoMultiselectOption | any>): void;
586
601
  callOnChange(selectedOptions: Array<PoMultiselectOption | any>): void;
587
602
  eventChange(selectedOptions: any): void;
603
+ controlChangeModelEmitter(value: any): void;
588
604
  getValuesFromOptions(selectedOptions: Array<PoMultiselectOption | any>): any[];
589
605
  getLabelByValue(value: any): any;
590
606
  mapSizeToIcon(size: string): string;
@@ -214,6 +214,20 @@ export declare abstract class PoRadioGroupBaseComponent implements ControlValueA
214
214
  * Evento ao alterar valor do campo.
215
215
  */
216
216
  change: EventEmitter<any>;
217
+ /**
218
+ * @optional
219
+ *
220
+ * @description
221
+ *
222
+ * Evento disparado sempre que o valor do model é alterado, seja por interação do usuário
223
+ * ou por atualização programática (ex: `setValue`, `patchValue`, carregamento assíncrono).
224
+ *
225
+ * Diferentemente do `p-change`, que é disparado apenas por interação do usuário,
226
+ * o `p-change-model` cobre todos os cenários de alteração de valor.
227
+ *
228
+ * Não emite quando o novo valor é idêntico ao anterior (deduplicação automática).
229
+ */
230
+ changeModel: EventEmitter<any>;
217
231
  /**
218
232
  * @optional
219
233
  *
@@ -224,6 +238,7 @@ export declare abstract class PoRadioGroupBaseComponent implements ControlValueA
224
238
  keydown: EventEmitter<KeyboardEvent>;
225
239
  displayAdditionalHelp: boolean;
226
240
  mdColumns: number;
241
+ modelLastUpdate: any;
227
242
  value: any;
228
243
  protected readonly cd: ChangeDetectorRef;
229
244
  protected onTouched: any;
@@ -305,6 +320,7 @@ export declare abstract class PoRadioGroupBaseComponent implements ControlValueA
305
320
  set size(value: string);
306
321
  get size(): string;
307
322
  protected onThemeChange(): void;
323
+ controlChangeModelEmitter(value: any): void;
308
324
  changeValue(changedValue: any): void;
309
325
  setDisabledState(isDisabled: boolean): void;
310
326
  registerOnChange(fn: any): void;
@@ -88,6 +88,20 @@ export declare class PoSelectComponent extends PoFieldValidateModel<any> impleme
88
88
  * Evento disparado ao sair do campo.
89
89
  */
90
90
  blur: EventEmitter<any>;
91
+ /**
92
+ * @optional
93
+ *
94
+ * @description
95
+ *
96
+ * Evento disparado sempre que o valor do model é alterado, seja por interação do usuário
97
+ * ou por atualização programática (ex: `setValue`, `patchValue`, carregamento assíncrono).
98
+ *
99
+ * Diferentemente do `p-change`, que é disparado apenas por interação do usuário,
100
+ * o `p-change-model` cobre todos os cenários de alteração de valor.
101
+ *
102
+ * Não emite quando o novo valor é idêntico ao anterior (deduplicação automática).
103
+ */
104
+ changeModel: EventEmitter<any>;
91
105
  /**
92
106
  * @optional
93
107
  *
@@ -155,6 +169,7 @@ export declare class PoSelectComponent extends PoFieldValidateModel<any> impleme
155
169
  displayValue: any;
156
170
  id: string;
157
171
  modelValue: any;
172
+ modelLastUpdate: any;
158
173
  selectedValue: any;
159
174
  optionsDefault: any[];
160
175
  listGroupOptions: any[];
@@ -345,6 +360,7 @@ export declare class PoSelectComponent extends PoFieldValidateModel<any> impleme
345
360
  hideAdditionalHelp: boolean;
346
361
  helperSettings?: any;
347
362
  };
363
+ controlChangeModelEmitter(value: any): void;
348
364
  private isEqual;
349
365
  private findOptionValue;
350
366
  private getValueUpdate;
@@ -1,4 +1,4 @@
1
- import { AfterViewInit, ElementRef, OnDestroy, OnChanges, SimpleChanges } from '@angular/core';
1
+ import { AfterViewInit, ElementRef, EventEmitter, OnDestroy, OnChanges, SimpleChanges } from '@angular/core';
2
2
  import { AbstractControl, ValidationErrors, Validator } from '@angular/forms';
3
3
  import { PoFieldModel } from '../po-field.model';
4
4
  import { PoSwitchLabelPosition } from './po-switch-label-position.enum';
@@ -262,6 +262,21 @@ export declare class PoSwitchComponent extends PoFieldModel<any> implements Vali
262
262
  * @default `false`
263
263
  */
264
264
  labelTextWrap: import("@angular/core").InputSignal<boolean>;
265
+ /**
266
+ * @optional
267
+ *
268
+ * @description
269
+ *
270
+ * Evento disparado sempre que o valor do model é alterado, seja por interação do usuário
271
+ * ou por atualização programática (ex: `setValue`, `patchValue`, carregamento assíncrono).
272
+ *
273
+ * Diferentemente do `p-change`, que é disparado apenas por interação do usuário,
274
+ * o `p-change-model` cobre todos os cenários de alteração de valor.
275
+ *
276
+ * Não emite quando o novo valor é idêntico ao anterior (deduplicação automática).
277
+ */
278
+ changeModel: EventEmitter<any>;
279
+ modelLastUpdate: any;
265
280
  private readonly el;
266
281
  private readonly injectOptions;
267
282
  private control;
@@ -327,5 +342,6 @@ export declare class PoSwitchComponent extends PoFieldModel<any> implements Vali
327
342
  * ```
328
343
  */
329
344
  showAdditionalHelp(): boolean;
345
+ controlChangeModelEmitter(value: any): void;
330
346
  private applySizeBasedOnA11y;
331
347
  }