@po-ui/ng-components 21.26.0 → 21.28.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 (30) hide show
  1. package/fesm2022/po-ui-ng-components.mjs +167 -219
  2. package/fesm2022/po-ui-ng-components.mjs.map +1 -1
  3. package/lib/components/po-calendar/po-calendar-wrapper/po-calendar-wrapper.component.d.ts +1 -0
  4. package/lib/components/po-calendar/po-calendar.component.d.ts +2 -0
  5. package/lib/components/po-field/po-datetimepicker/po-datetimepicker-base.component.d.ts +0 -3
  6. package/lib/components/po-field/po-datetimepicker/po-datetimepicker.component.d.ts +8 -2
  7. package/lib/components/po-field/po-field.module.d.ts +1 -1
  8. package/lib/components/po-field/po-input/po-input.component.d.ts +6 -0
  9. package/lib/components/po-field/po-timepicker/po-timepicker.component.d.ts +1 -0
  10. package/lib/components/po-header/interfaces/po-header-action-tool.interface.d.ts +32 -0
  11. package/lib/components/po-header/interfaces/po-header-user.interface.d.ts +28 -0
  12. package/lib/components/po-popup/po-popup-base.component.d.ts +1 -0
  13. package/package.json +4 -4
  14. package/po-ui-ng-components-21.28.0.tgz +0 -0
  15. package/schematics/ng-add/index.js +1 -1
  16. package/schematics/ng-update/v14/index.js +1 -1
  17. package/schematics/ng-update/v15/index.js +1 -1
  18. package/schematics/ng-update/v16/index.js +1 -1
  19. package/schematics/ng-update/v17/index.js +1 -1
  20. package/schematics/ng-update/v18/index.js +2 -2
  21. package/schematics/ng-update/v19/index.js +2 -2
  22. package/schematics/ng-update/v2/index.js +1 -1
  23. package/schematics/ng-update/v20/index.js +2 -2
  24. package/schematics/ng-update/v21/index.js +1 -1
  25. package/schematics/ng-update/v3/index.js +1 -1
  26. package/schematics/ng-update/v4/index.js +1 -1
  27. package/schematics/ng-update/v5/index.js +1 -1
  28. package/schematics/ng-update/v6/index.js +1 -1
  29. package/types/po-ui-ng-components.d.ts +82 -8
  30. package/po-ui-ng-components-21.26.0.tgz +0 -0
@@ -4850,8 +4850,9 @@ class PoPopupBaseComponent {
4850
4850
  }
4851
4851
  closeEvent = new EventEmitter();
4852
4852
  clickItem = new EventEmitter();
4853
+ openEvent = new EventEmitter();
4853
4854
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoPopupBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
4854
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.19", type: PoPopupBaseComponent, isStandalone: true, inputs: { templateIcon: ["p-template-icon", "templateIcon"], actions: ["p-actions", "actions"], hideArrow: ["p-hide-arrow", "hideArrow"], isCornerAlign: ["p-is-corner-align", "isCornerAlign"], position: ["p-position", "position"], customPositions: ["p-custom-positions", "customPositions"], size: ["p-size", "size"], target: ["p-target", "target"] }, outputs: { closeEvent: "p-close", clickItem: "p-click-item" }, ngImport: i0 });
4855
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.19", type: PoPopupBaseComponent, isStandalone: true, inputs: { templateIcon: ["p-template-icon", "templateIcon"], actions: ["p-actions", "actions"], hideArrow: ["p-hide-arrow", "hideArrow"], isCornerAlign: ["p-is-corner-align", "isCornerAlign"], position: ["p-position", "position"], customPositions: ["p-custom-positions", "customPositions"], size: ["p-size", "size"], target: ["p-target", "target"] }, outputs: { closeEvent: "p-close", clickItem: "p-click-item", openEvent: "p-open" }, ngImport: i0 });
4855
4856
  }
4856
4857
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoPopupBaseComponent, decorators: [{
4857
4858
  type: Directive
@@ -4885,6 +4886,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
4885
4886
  }], clickItem: [{
4886
4887
  type: Output,
4887
4888
  args: ['p-click-item']
4889
+ }], openEvent: [{
4890
+ type: Output,
4891
+ args: ['p-open']
4888
4892
  }] } });
4889
4893
 
4890
4894
  var PoItemListType;
@@ -9039,6 +9043,7 @@ class PoPopupComponent extends PoPopupBaseComponent {
9039
9043
  this.showPopup = true;
9040
9044
  this.changeDetector.detectChanges();
9041
9045
  this.validateInitialContent();
9046
+ this.openEvent.emit();
9042
9047
  }
9043
9048
  returnBooleanValue(popupAction, property) {
9044
9049
  return PoUtils.isTypeof(popupAction[property], 'function')
@@ -15439,7 +15444,6 @@ class PoCalendarWrapperComponent {
15439
15444
  size;
15440
15445
  hideTodayButton = false;
15441
15446
  hasPresets = false;
15442
- // Template customizado para o header do calendário. Para uso interno do datepicker/datepicker-range.
15443
15447
  headerTemplate;
15444
15448
  _locale;
15445
15449
  set locale(value) {
@@ -15451,9 +15455,9 @@ class PoCalendarWrapperComponent {
15451
15455
  }
15452
15456
  headerChange = new EventEmitter();
15453
15457
  selectDate = new EventEmitter();
15458
+ selectTodayEvent = new EventEmitter();
15454
15459
  hoverDateSource = new Subject();
15455
15460
  hoverDate = this.hoverDateSource.pipe(debounceTime$1(100));
15456
- // Evento para fechar o calendário. Para uso interno do datepicker/datepicker-range.
15457
15461
  closeCalendar = new EventEmitter();
15458
15462
  currentYear;
15459
15463
  displayYear;
@@ -15726,7 +15730,6 @@ class PoCalendarWrapperComponent {
15726
15730
  }
15727
15731
  return index === this.focusedDayIndex ? 0 : -1;
15728
15732
  }
15729
- // --- 4. Navegação (Setas) ---
15730
15733
  onNextMonth() {
15731
15734
  const newMonth = this.displayMonthNumber < 11 ? this.displayMonthNumber + 1 : 0;
15732
15735
  const newYear = this.displayMonthNumber < 11 ? this.displayYear : this.displayYear + 1;
@@ -15770,6 +15773,7 @@ class PoCalendarWrapperComponent {
15770
15773
  this.hoverDateSource.next(null);
15771
15774
  }
15772
15775
  onSelectToday() {
15776
+ this.selectTodayEvent.emit();
15773
15777
  this.onSelectDate(this.today);
15774
15778
  if (this.displayMonthNumber !== this.today.getMonth() || this.displayYear !== this.today.getFullYear()) {
15775
15779
  this.updateDisplay(this.today.getFullYear(), this.today.getMonth());
@@ -15830,7 +15834,6 @@ class PoCalendarWrapperComponent {
15830
15834
  return key === 'Enter' || key === ' ';
15831
15835
  }
15832
15836
  handleSelectKey(day, index) {
15833
- // Bloqueia seleção de dias desabilitados
15834
15837
  if (this.isDayDisabled(day)) {
15835
15838
  return;
15836
15839
  }
@@ -16177,7 +16180,7 @@ class PoCalendarWrapperComponent {
16177
16180
  return `${index}:${weekDay}`;
16178
16181
  }
16179
16182
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoCalendarWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16180
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: PoCalendarWrapperComponent, isStandalone: false, selector: "po-calendar-wrapper", inputs: { value: ["p-value", "value"], mode: ["p-mode", "mode"], responsive: ["p-responsive", "responsive"], partType: ["p-part-type", "partType"], range: ["p-range", "range"], activateDate: ["p-activate-date", "activateDate"], selectedValue: ["p-selected-value", "selectedValue"], minDate: ["p-min-date", "minDate"], maxDate: ["p-max-date", "maxDate"], hoverValue: ["p-hover-value", "hoverValue"], size: ["p-size", "size"], hideTodayButton: ["p-hide-today-button", "hideTodayButton"], hasPresets: ["p-presets", "hasPresets"], headerTemplate: ["p-header-template", "headerTemplate"], locale: ["p-locale", "locale"] }, outputs: { headerChange: "p-header-change", selectDate: "p-select-date", hoverDate: "p-hover-date", closeCalendar: "p-close-calendar" }, host: { listeners: { "keydown": "onHostKeydown($event)" } }, providers: [PoCalendarService], usesOnChanges: true, ngImport: i0, template: "<div class=\"po-calendar-wrapper\">\n @if (isDayVisible) {\n <ng-container>\n @if (templateContext) {\n <po-calendar-header\n (p-previous)=\"onPreviousMonth()\"\n (p-next)=\"onNextMonth()\"\n [p-display-month]=\"displayMonth\"\n [p-display-year]=\"displayYear\"\n [p-template-context]=\"templateContext\"\n [p-header-template]=\"headerTemplate || internalComboTemplate\"\n [p-size]=\"size\"\n [p-locale]=\"locale\"\n >\n </po-calendar-header>\n }\n\n <div class=\"po-calendar-content\">\n <div class=\"po-calendar-labels\">\n @for (weekDay of displayWeekDays; track trackByWeekDay($index, weekDay)) {\n <div class=\"po-calendar-label\">\n {{ weekDay }}\n </div>\n }\n </div>\n\n <div class=\"po-calendar-content-list-day\">\n @for (day of displayDays; track trackByDay($index, day); let i = $index) {\n <div\n class=\"po-calendar-day\"\n [ngClass]=\"getDayBackgroundColor(day)\"\n (click)=\"onSelectDate(day)\"\n (mouseenter)=\"onMouseEnter(day)\"\n (mouseleave)=\"onMouseLeave()\"\n (keydown)=\"onDayKeydown($event, day, i)\"\n [tabindex]=\"getDayTabIndex(day, i)\"\n attr-calendar\n [attr.data-other-month]=\"day.getMonth() !== displayMonthNumber\"\n [attr.data-day-index]=\"i\"\n >\n <span [ngClass]=\"getDayForegroundColor(day)\">\n {{ day.getDate() }}\n </span>\n </div>\n }\n </div>\n </div>\n </ng-container>\n }\n\n @if (isMonthVisible) {\n <ng-container>\n <po-calendar-header\n (p-previous)=\"updateYear(-1)\"\n (p-next)=\"updateYear(1)\"\n [p-template-context]=\"templateContext\"\n [p-header-template]=\"headerTemplate || internalComboTemplate\"\n [p-size]=\"size\"\n [p-locale]=\"locale\"\n >\n </po-calendar-header>\n\n <div class=\"po-calendar-content\">\n <div class=\"po-calendar-labels\">\n <div class=\"po-calendar-label\">\n {{ monthLabel }}\n </div>\n </div>\n <div class=\"po-calendar-content-list-month\">\n @for (month of displayMonths; track trackByMonth($index, month); let i = $index) {\n <div\n class=\"po-calendar-month\"\n [ngClass]=\"getBackgroundColor(i, displayMonthNumber)\"\n (click)=\"onSelectMonth(displayYear, i)\"\n attr-calendar\n >\n <span [ngClass]=\"getForegroundColor(i, displayMonthNumber)\">\n {{ month }}\n </span>\n </div>\n }\n </div>\n </div>\n </ng-container>\n }\n\n @if (isYearVisible) {\n <ng-container>\n <po-calendar-header\n (p-previous)=\"updateYear(-10)\"\n (p-next)=\"updateYear(10)\"\n [p-template-context]=\"templateContext\"\n [p-header-template]=\"headerTemplate || internalComboTemplate\"\n [p-size]=\"size\"\n [p-locale]=\"locale\"\n >\n </po-calendar-header>\n\n <div class=\"po-calendar-content\">\n <div class=\"po-calendar-labels\">\n <div class=\"po-calendar-label\">\n {{ yearLabel }}\n </div>\n </div>\n\n <div class=\"po-calendar-content-list-year\">\n @for (year of displayDecade; track trackByYear($index, year)) {\n <div\n class=\"po-calendar-year\"\n [ngClass]=\"getBackgroundColor(year, currentYear)\"\n (click)=\"onSelectYear(year, displayMonthNumber)\"\n attr-calendar\n >\n <span [ngClass]=\"getForegroundColor(year, currentYear)\">\n {{ year }}\n </span>\n </div>\n }\n </div>\n </div>\n </ng-container>\n }\n @if (!responsive || (responsive && !hasPresets)) {\n <po-calendar-footer\n [p-label-clear]=\"displayToClean\"\n [p-label-today]=\"displayToday\"\n [p-hide-today-button]=\"hideTodayButton\"\n [p-size]=\"size\"\n [p-responsive]=\"responsive\"\n [p-today-disabled]=\"isTodayUnavailable()\"\n (p-clear)=\"onClear()\"\n (p-select-today)=\"onSelectToday()\"\n (p-close-calendar)=\"onFooterCloseCalendar()\"\n ></po-calendar-footer>\n }\n</div>\n\n<ng-template #internalComboTemplate let-combo>\n <po-combo\n #monthCombo\n class=\"po-combo-first\"\n [name]=\"'month-' + comboKey\"\n [p-clean]=\"false\"\n [p-remove-initial-filter]=\"true\"\n [ngModel]=\"combo.monthIndex\"\n [p-options]=\"combo.monthsOptions\"\n (p-change)=\"combo.updateDate(combo.year, $event)\"\n (p-blur)=\"combo.onComboBlur(monthCombo)\"\n [p-size]=\"size\"\n >\n </po-combo>\n\n <po-combo\n #yearCombo\n class=\"po-combo-last\"\n [name]=\"'year-' + comboKey\"\n [p-clean]=\"false\"\n [p-remove-initial-filter]=\"true\"\n [ngModel]=\"combo.year\"\n [p-options]=\"combo.yearsOptions\"\n (p-change)=\"combo.updateDate($event, combo.monthIndex)\"\n (p-blur)=\"combo.onComboBlur(yearCombo)\"\n [p-size]=\"size\"\n >\n </po-combo>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PoComboComponent, selector: "po-combo" }, { kind: "component", type: PoCalendarFooterComponent, selector: "po-calendar-footer", inputs: ["p-size", "p-label-clear", "p-label-today", "p-responsive", "p-today-disabled", "p-hide-today-button"], outputs: ["p-clear", "p-select-today", "p-close-calendar"] }, { kind: "component", type: PoCalendarHeaderComponent, selector: "po-calendar-header", inputs: ["p-hide-previous", "p-hide-next", "p-display-month", "p-display-year", "p-display-month-label", "p-month-options", "p-header-template", "p-template-context", "p-size", "p-locale"], outputs: ["p-previous", "p-next", "p-select-month", "p-select-year"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16183
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: PoCalendarWrapperComponent, isStandalone: false, selector: "po-calendar-wrapper", inputs: { value: ["p-value", "value"], mode: ["p-mode", "mode"], responsive: ["p-responsive", "responsive"], partType: ["p-part-type", "partType"], range: ["p-range", "range"], activateDate: ["p-activate-date", "activateDate"], selectedValue: ["p-selected-value", "selectedValue"], minDate: ["p-min-date", "minDate"], maxDate: ["p-max-date", "maxDate"], hoverValue: ["p-hover-value", "hoverValue"], size: ["p-size", "size"], hideTodayButton: ["p-hide-today-button", "hideTodayButton"], hasPresets: ["p-presets", "hasPresets"], headerTemplate: ["p-header-template", "headerTemplate"], locale: ["p-locale", "locale"] }, outputs: { headerChange: "p-header-change", selectDate: "p-select-date", selectTodayEvent: "p-select-today", hoverDate: "p-hover-date", closeCalendar: "p-close-calendar" }, host: { listeners: { "keydown": "onHostKeydown($event)" } }, providers: [PoCalendarService], usesOnChanges: true, ngImport: i0, template: "<div class=\"po-calendar-wrapper\">\n @if (isDayVisible) {\n <ng-container>\n @if (templateContext) {\n <po-calendar-header\n (p-previous)=\"onPreviousMonth()\"\n (p-next)=\"onNextMonth()\"\n [p-display-month]=\"displayMonth\"\n [p-display-year]=\"displayYear\"\n [p-template-context]=\"templateContext\"\n [p-header-template]=\"headerTemplate || internalComboTemplate\"\n [p-size]=\"size\"\n [p-locale]=\"locale\"\n >\n </po-calendar-header>\n }\n\n <div class=\"po-calendar-content\">\n <div class=\"po-calendar-labels\">\n @for (weekDay of displayWeekDays; track trackByWeekDay($index, weekDay)) {\n <div class=\"po-calendar-label\">\n {{ weekDay }}\n </div>\n }\n </div>\n\n <div class=\"po-calendar-content-list-day\">\n @for (day of displayDays; track trackByDay($index, day); let i = $index) {\n <div\n class=\"po-calendar-day\"\n [ngClass]=\"getDayBackgroundColor(day)\"\n (click)=\"onSelectDate(day)\"\n (mouseenter)=\"onMouseEnter(day)\"\n (mouseleave)=\"onMouseLeave()\"\n (keydown)=\"onDayKeydown($event, day, i)\"\n [tabindex]=\"getDayTabIndex(day, i)\"\n attr-calendar\n [attr.data-other-month]=\"day.getMonth() !== displayMonthNumber\"\n [attr.data-day-index]=\"i\"\n >\n <span [ngClass]=\"getDayForegroundColor(day)\">\n {{ day.getDate() }}\n </span>\n </div>\n }\n </div>\n </div>\n </ng-container>\n }\n\n @if (isMonthVisible) {\n <ng-container>\n <po-calendar-header\n (p-previous)=\"updateYear(-1)\"\n (p-next)=\"updateYear(1)\"\n [p-template-context]=\"templateContext\"\n [p-header-template]=\"headerTemplate || internalComboTemplate\"\n [p-size]=\"size\"\n [p-locale]=\"locale\"\n >\n </po-calendar-header>\n\n <div class=\"po-calendar-content\">\n <div class=\"po-calendar-labels\">\n <div class=\"po-calendar-label\">\n {{ monthLabel }}\n </div>\n </div>\n <div class=\"po-calendar-content-list-month\">\n @for (month of displayMonths; track trackByMonth($index, month); let i = $index) {\n <div\n class=\"po-calendar-month\"\n [ngClass]=\"getBackgroundColor(i, displayMonthNumber)\"\n (click)=\"onSelectMonth(displayYear, i)\"\n attr-calendar\n >\n <span [ngClass]=\"getForegroundColor(i, displayMonthNumber)\">\n {{ month }}\n </span>\n </div>\n }\n </div>\n </div>\n </ng-container>\n }\n\n @if (isYearVisible) {\n <ng-container>\n <po-calendar-header\n (p-previous)=\"updateYear(-10)\"\n (p-next)=\"updateYear(10)\"\n [p-template-context]=\"templateContext\"\n [p-header-template]=\"headerTemplate || internalComboTemplate\"\n [p-size]=\"size\"\n [p-locale]=\"locale\"\n >\n </po-calendar-header>\n\n <div class=\"po-calendar-content\">\n <div class=\"po-calendar-labels\">\n <div class=\"po-calendar-label\">\n {{ yearLabel }}\n </div>\n </div>\n\n <div class=\"po-calendar-content-list-year\">\n @for (year of displayDecade; track trackByYear($index, year)) {\n <div\n class=\"po-calendar-year\"\n [ngClass]=\"getBackgroundColor(year, currentYear)\"\n (click)=\"onSelectYear(year, displayMonthNumber)\"\n attr-calendar\n >\n <span [ngClass]=\"getForegroundColor(year, currentYear)\">\n {{ year }}\n </span>\n </div>\n }\n </div>\n </div>\n </ng-container>\n }\n @if (!responsive || (responsive && !hasPresets)) {\n <po-calendar-footer\n [p-label-clear]=\"displayToClean\"\n [p-label-today]=\"displayToday\"\n [p-hide-today-button]=\"hideTodayButton\"\n [p-size]=\"size\"\n [p-responsive]=\"responsive\"\n [p-today-disabled]=\"isTodayUnavailable()\"\n (p-clear)=\"onClear()\"\n (p-select-today)=\"onSelectToday()\"\n (p-close-calendar)=\"onFooterCloseCalendar()\"\n ></po-calendar-footer>\n }\n</div>\n\n<ng-template #internalComboTemplate let-combo>\n <po-combo\n #monthCombo\n class=\"po-combo-first\"\n [name]=\"'month-' + comboKey\"\n [p-clean]=\"false\"\n [p-remove-initial-filter]=\"true\"\n [ngModel]=\"combo.monthIndex\"\n [p-options]=\"combo.monthsOptions\"\n (p-change)=\"combo.updateDate(combo.year, $event)\"\n (p-blur)=\"combo.onComboBlur(monthCombo)\"\n [p-size]=\"size\"\n >\n </po-combo>\n\n <po-combo\n #yearCombo\n class=\"po-combo-last\"\n [name]=\"'year-' + comboKey\"\n [p-clean]=\"false\"\n [p-remove-initial-filter]=\"true\"\n [ngModel]=\"combo.year\"\n [p-options]=\"combo.yearsOptions\"\n (p-change)=\"combo.updateDate($event, combo.monthIndex)\"\n (p-blur)=\"combo.onComboBlur(yearCombo)\"\n [p-size]=\"size\"\n >\n </po-combo>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PoComboComponent, selector: "po-combo" }, { kind: "component", type: PoCalendarFooterComponent, selector: "po-calendar-footer", inputs: ["p-size", "p-label-clear", "p-label-today", "p-responsive", "p-today-disabled", "p-hide-today-button"], outputs: ["p-clear", "p-select-today", "p-close-calendar"] }, { kind: "component", type: PoCalendarHeaderComponent, selector: "po-calendar-header", inputs: ["p-hide-previous", "p-hide-next", "p-display-month", "p-display-year", "p-display-month-label", "p-month-options", "p-header-template", "p-template-context", "p-size", "p-locale"], outputs: ["p-previous", "p-next", "p-select-month", "p-select-year"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16181
16184
  }
16182
16185
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoCalendarWrapperComponent, decorators: [{
16183
16186
  type: Component,
@@ -16233,6 +16236,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
16233
16236
  }], selectDate: [{
16234
16237
  type: Output,
16235
16238
  args: ['p-select-date']
16239
+ }], selectTodayEvent: [{
16240
+ type: Output,
16241
+ args: ['p-select-today']
16236
16242
  }], hoverDate: [{
16237
16243
  type: Output,
16238
16244
  args: ['p-hover-date']
@@ -16397,6 +16403,7 @@ class PoCalendarComponent extends PoCalendarBaseComponent {
16397
16403
  selectedIndexYear = null;
16398
16404
  selectedMonth;
16399
16405
  selectedYear;
16406
+ isTodayPresetSelection = false;
16400
16407
  _isRange = signal(false, ...(ngDevMode ? [{ debugName: "_isRange" }] : /* istanbul ignore next */ []));
16401
16408
  _rangePresetsValue = signal(false, ...(ngDevMode ? [{ debugName: "_rangePresetsValue" }] : /* istanbul ignore next */ []));
16402
16409
  _rangePresetOptionsValue = signal(undefined, ...(ngDevMode ? [{ debugName: "_rangePresetOptionsValue" }] : /* istanbul ignore next */ []));
@@ -16425,7 +16432,6 @@ class PoCalendarComponent extends PoCalendarBaseComponent {
16425
16432
  }
16426
16433
  const customPresets = hasCustomPresets ? rangePresetOptions : [];
16427
16434
  const combined = [...defaultPresets, ...customPresets];
16428
- // Regra: o preset "today" é obrigatório e deve estar presente mesmo com apenas presets customizados
16429
16435
  if (combined.length > 0 && !combined.some(p => p.label.toLowerCase() === 'today')) {
16430
16436
  const todayPreset = PO_CALENDAR_DEFAULT_RANGE_PRESETS.find(p => p.label === 'today');
16431
16437
  if (todayPreset) {
@@ -16644,9 +16650,9 @@ class PoCalendarComponent extends PoCalendarBaseComponent {
16644
16650
  this.value = newValue;
16645
16651
  const newModel = this.convertDateToISO(this.value);
16646
16652
  this.updateModel(newModel);
16647
- this.change.emit(newModel);
16648
- // Em modo date-time, se a data selecionada é "hoje", define a hora atual no timer
16649
- if (this.isDateTime && this.timerComponent && this.poCalendarService.isToday(selectedDate)) {
16653
+ if (this.isDateTime && this.timerComponent && this.isTodayPresetSelection) {
16654
+ this.close.emit();
16655
+ this.change.emit(newModel);
16650
16656
  const now = new Date();
16651
16657
  const hours = ('0' + now.getHours()).slice(-2);
16652
16658
  const minutes = ('0' + now.getMinutes()).slice(-2);
@@ -16654,16 +16660,26 @@ class PoCalendarComponent extends PoCalendarBaseComponent {
16654
16660
  const currentTime = this.showSeconds ? `${hours}:${minutes}:${seconds}` : `${hours}:${minutes}`;
16655
16661
  this.timerComponent.writeValue(currentTime);
16656
16662
  this.changeTime.emit(currentTime);
16663
+ this.isTodayPresetSelection = false;
16664
+ }
16665
+ else {
16666
+ this.change.emit(newModel);
16657
16667
  }
16658
16668
  }
16659
16669
  onHoverDate(date) {
16660
16670
  this.hoverValue = date;
16661
16671
  }
16672
+ onSelectTodayPreset() {
16673
+ this.isTodayPresetSelection = true;
16674
+ }
16662
16675
  onHeaderChange({ month, year }, partType) {
16663
16676
  this.updateActivateDateFromHeaderChange(month, year, partType);
16664
16677
  this.changeMonthYear.emit({ month, year });
16665
16678
  }
16666
16679
  onCloseCalendar() {
16680
+ if (this.isDateTime) {
16681
+ return;
16682
+ }
16667
16683
  this.change.emit(this.value);
16668
16684
  this.close.emit();
16669
16685
  }
@@ -16725,7 +16741,6 @@ class PoCalendarComponent extends PoCalendarBaseComponent {
16725
16741
  }
16726
16742
  return 1; // Presente
16727
16743
  };
16728
- // Ordena em ASC: Futuro → Presente → Passado, proximidade crescente dentro de cada grupo
16729
16744
  const sorted = [...presets].sort((a, b) => {
16730
16745
  const rangeA = a.dateRange(today);
16731
16746
  const rangeB = b.dateRange(today);
@@ -16741,7 +16756,6 @@ class PoCalendarComponent extends PoCalendarBaseComponent {
16741
16756
  return distA - distB;
16742
16757
  });
16743
16758
  const resolvedOrder = order ?? this.rangePresetsOrder;
16744
- // DESC: inverte completamente a lista (Passado → Presente → Futuro, mais distante primeiro)
16745
16759
  return resolvedOrder === 'desc' ? sorted.reverse() : sorted;
16746
16760
  }
16747
16761
  normalizeDate(date) {
@@ -16890,11 +16904,11 @@ class PoCalendarComponent extends PoCalendarBaseComponent {
16890
16904
  }
16891
16905
  }
16892
16906
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoCalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16893
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: PoCalendarComponent, isStandalone: false, selector: "po-calendar", providers: providers$7, viewQueries: [{ propertyName: "timerComponent", first: true, predicate: ["timer"], descendants: true }, { propertyName: "yearOptions", predicate: ["yearOption"], descendants: true }, { propertyName: "monthOptions", predicate: ["monthOption"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (isMonthYear) {\n <div class=\"po-calendar po-calendar-month-year\">\n <ng-container *ngTemplateOutlet=\"calendarMonth\"></ng-container>\n <ng-container *ngTemplateOutlet=\"calendarYear\"></ng-container>\n </div>\n} @else if (isYear) {\n <div class=\"po-calendar po-calendar-year\">\n <ng-container *ngTemplateOutlet=\"calendarYear\"></ng-container>\n </div>\n} @else if (isRange) {\n <div\n class=\"po-calendar\"\n [class.po-calendar-with-presets]=\"effectivePresets().length > 0\"\n [class.po-calendar-mobile]=\"isResponsive || widthWithPresets\"\n [class.po-calendar-responsive]=\"!isResponsive && widthWithPresets\"\n >\n @if (effectivePresets().length > 0 && !isResponsive && !widthWithPresets) {\n <po-calendar-preset-list\n [p-presets]=\"effectivePresets()\"\n [p-locale]=\"locale\"\n [p-selected-preset]=\"selectedPresetLabel\"\n [p-size]=\"size\"\n (p-select-preset)=\"onPresetSelected($event)\"\n (p-close-calendar)=\"onCloseCalendar()\"\n ></po-calendar-preset-list>\n }\n <ng-container *ngTemplateOutlet=\"calendarWrapper; context: { partType: 'start' }\"></ng-container>\n @if (effectivePresets().length > 0 && (isResponsive || widthWithPresets)) {\n <po-calendar-preset-list\n [p-presets]=\"effectivePresets()\"\n [p-locale]=\"locale\"\n [p-selected-preset]=\"selectedPresetLabel\"\n [p-size]=\"size\"\n [p-responsive]=\"true\"\n (p-select-preset)=\"onPresetSelected($event)\"\n (p-close-calendar)=\"onCloseCalendar()\"\n ></po-calendar-preset-list>\n\n <po-calendar-footer\n [p-size]=\"size\"\n [p-responsive]=\"isResponsive\"\n [p-hide-today-button]=\"true\"\n [p-label-clear]=\"displayToClean\"\n (p-clear)=\"onSelectDate($event)\"\n (p-close-calendar)=\"onCloseCalendar()\"\n ></po-calendar-footer>\n }\n </div>\n} @else {\n <div\n [class.po-calendar-date-time]=\"isDateTime\"\n [class.po-calendar-three-columns]=\"showSeconds || format === '12'\"\n [class.po-calendar-four-columns]=\"showSeconds && format === '12'\"\n >\n <div class=\"po-calendar\">\n <ng-container *ngTemplateOutlet=\"calendarWrapper; context: { partType: 'single' }\"></ng-container>\n </div>\n @if (isDateTime) {\n <ng-container *ngTemplateOutlet=\"calendarTimer\"></ng-container>\n }\n </div>\n}\n\n<ng-template #calendarWrapper let-partType=\"partType\">\n <po-calendar-wrapper\n [p-value]=\"getValue(partType)\"\n [p-activate-date]=\"getActivateDate(partType)\"\n [p-locale]=\"locale\"\n [p-min-date]=\"minDate\"\n [p-presets]=\"effectivePresets().length > 0\"\n [p-max-date]=\"maxDate\"\n [p-part-type]=\"partType\"\n [p-range]=\"isRange\"\n [p-responsive]=\"isResponsive || widthWithPresets\"\n [p-selected-value]=\"value\"\n [p-hover-value]=\"hoverValue\"\n [p-hide-today-button]=\"effectivePresets().length > 0\"\n (p-header-change)=\"onHeaderChange($event, partType)\"\n (p-select-date)=\"onSelectDate($event, partType)\"\n (p-hover-date)=\"onHoverDate($event)\"\n (p-close-calendar)=\"onCloseCalendar()\"\n [p-header-template]=\"headerTemplate\"\n [p-size]=\"size\"\n >\n </po-calendar-wrapper>\n</ng-template>\n\n<ng-template #calendarMonth>\n <ul class=\"po-calendar-months\">\n @for (month of displayMonths; track month; let i = $index) {\n <li class=\"po-calendar-month-item\">\n <po-button\n #monthOption\n [class.po-button-selected]=\"i === selectedIndexMonth\"\n role=\"option\"\n p-kind=\"tertiary\"\n p-label=\"{{ month }}\"\n [attr.aria-selected]=\"i === selectedIndexMonth\"\n [p-tabindex]=\"i === focusedIndex ? 0 : -1\"\n [p-size]=\"size\"\n [p-disabled]=\"isMonthDisabled(i)\"\n (p-click)=\"selectMonth(i, $event, true)\"\n (keydown)=\"onKeydownMonth($event, i)\"\n ></po-button>\n </li>\n }\n </ul>\n</ng-template>\n\n<ng-template #calendarYear>\n <ul class=\"po-calendar-years\">\n @for (year of displayYears; track year; let i = $index) {\n <li class=\"po-calendar-year-item\">\n <po-button\n #yearOption\n [class.po-button-selected]=\"i === selectedIndexYear\"\n role=\"option\"\n p-kind=\"tertiary\"\n p-label=\"{{ year }}\"\n [attr.aria-selected]=\"i === selectedIndexYear\"\n [p-tabindex]=\"i === focusedIndex ? 0 : -1\"\n [p-size]=\"size\"\n [p-disabled]=\"isYearDisabled(year)\"\n (p-click)=\"selectYear(i, $event, true, year)\"\n (keydown)=\"onKeydownYear($event, i)\"\n >\n </po-button>\n </li>\n }\n </ul>\n</ng-template>\n\n<ng-template #calendarTimer>\n <div class=\"po-calendar-vertical-divider\"></div>\n <po-timer\n #timer\n [p-format]=\"format\"\n [p-locale]=\"locale\"\n [p-min-time]=\"minTime\"\n [p-max-time]=\"maxTime\"\n [p-minute-interval]=\"minuteInterval\"\n [p-second-interval]=\"secondInterval\"\n [p-show-seconds]=\"showSeconds\"\n [p-size]=\"size\"\n (p-change)=\"onTimeChange($event)\"\n (p-boundary-tab)=\"onTimerBoundaryTab($event)\"\n ></po-timer>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PoButtonComponent, selector: "po-button" }, { kind: "component", type: PoTimerComponent, selector: "po-timer", outputs: ["p-boundary-tab"] }, { kind: "component", type: PoCalendarFooterComponent, selector: "po-calendar-footer", inputs: ["p-size", "p-label-clear", "p-label-today", "p-responsive", "p-today-disabled", "p-hide-today-button"], outputs: ["p-clear", "p-select-today", "p-close-calendar"] }, { kind: "component", type: PoCalendarWrapperComponent, selector: "po-calendar-wrapper", inputs: ["p-value", "p-mode", "p-responsive", "p-part-type", "p-range", "p-activate-date", "p-selected-value", "p-min-date", "p-max-date", "p-hover-value", "p-size", "p-hide-today-button", "p-presets", "p-header-template", "p-locale"], outputs: ["p-header-change", "p-select-date", "p-hover-date", "p-close-calendar"] }, { kind: "component", type: PoCalendarPresetListComponent, selector: "po-calendar-preset-list", inputs: ["p-size", "p-presets", "p-selected-preset", "p-responsive", "p-locale"], outputs: ["p-close-calendar", "p-select-preset"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16907
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: PoCalendarComponent, isStandalone: false, selector: "po-calendar", providers: providers$7, viewQueries: [{ propertyName: "timerComponent", first: true, predicate: ["timer"], descendants: true }, { propertyName: "yearOptions", predicate: ["yearOption"], descendants: true }, { propertyName: "monthOptions", predicate: ["monthOption"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (isMonthYear) {\n <div class=\"po-calendar po-calendar-month-year\">\n <ng-container *ngTemplateOutlet=\"calendarMonth\"></ng-container>\n <ng-container *ngTemplateOutlet=\"calendarYear\"></ng-container>\n </div>\n} @else if (isYear) {\n <div class=\"po-calendar po-calendar-year\">\n <ng-container *ngTemplateOutlet=\"calendarYear\"></ng-container>\n </div>\n} @else if (isRange) {\n <div\n class=\"po-calendar\"\n [class.po-calendar-with-presets]=\"effectivePresets().length > 0\"\n [class.po-calendar-mobile]=\"isResponsive || widthWithPresets\"\n [class.po-calendar-responsive]=\"!isResponsive && widthWithPresets\"\n >\n @if (effectivePresets().length > 0 && !isResponsive && !widthWithPresets) {\n <po-calendar-preset-list\n [p-presets]=\"effectivePresets()\"\n [p-locale]=\"locale\"\n [p-selected-preset]=\"selectedPresetLabel\"\n [p-size]=\"size\"\n (p-select-preset)=\"onPresetSelected($event)\"\n (p-close-calendar)=\"onCloseCalendar()\"\n ></po-calendar-preset-list>\n }\n <ng-container *ngTemplateOutlet=\"calendarWrapper; context: { partType: 'start' }\"></ng-container>\n @if (effectivePresets().length > 0 && (isResponsive || widthWithPresets)) {\n <po-calendar-preset-list\n [p-presets]=\"effectivePresets()\"\n [p-locale]=\"locale\"\n [p-selected-preset]=\"selectedPresetLabel\"\n [p-size]=\"size\"\n [p-responsive]=\"true\"\n (p-select-preset)=\"onPresetSelected($event)\"\n (p-close-calendar)=\"onCloseCalendar()\"\n ></po-calendar-preset-list>\n\n <po-calendar-footer\n [p-size]=\"size\"\n [p-responsive]=\"isResponsive\"\n [p-hide-today-button]=\"true\"\n [p-label-clear]=\"displayToClean\"\n (p-clear)=\"onSelectDate($event)\"\n (p-close-calendar)=\"onCloseCalendar()\"\n ></po-calendar-footer>\n }\n </div>\n} @else {\n <div\n [class.po-calendar-date-time]=\"isDateTime\"\n [class.po-calendar-three-columns]=\"showSeconds || format === '12'\"\n [class.po-calendar-four-columns]=\"showSeconds && format === '12'\"\n >\n <div class=\"po-calendar\">\n <ng-container *ngTemplateOutlet=\"calendarWrapper; context: { partType: 'single' }\"></ng-container>\n </div>\n @if (isDateTime) {\n <ng-container *ngTemplateOutlet=\"calendarTimer\"></ng-container>\n }\n </div>\n}\n\n<ng-template #calendarWrapper let-partType=\"partType\">\n <po-calendar-wrapper\n [p-value]=\"getValue(partType)\"\n [p-activate-date]=\"getActivateDate(partType)\"\n [p-locale]=\"locale\"\n [p-min-date]=\"minDate\"\n [p-presets]=\"effectivePresets().length > 0\"\n [p-max-date]=\"maxDate\"\n [p-part-type]=\"partType\"\n [p-range]=\"isRange\"\n [p-responsive]=\"isResponsive || widthWithPresets\"\n [p-selected-value]=\"value\"\n [p-hover-value]=\"hoverValue\"\n [p-hide-today-button]=\"effectivePresets().length > 0\"\n (p-header-change)=\"onHeaderChange($event, partType)\"\n (p-select-date)=\"onSelectDate($event, partType)\"\n (p-select-today)=\"onSelectTodayPreset()\"\n (p-hover-date)=\"onHoverDate($event)\"\n (p-close-calendar)=\"onCloseCalendar()\"\n [p-header-template]=\"headerTemplate\"\n [p-size]=\"size\"\n >\n </po-calendar-wrapper>\n</ng-template>\n\n<ng-template #calendarMonth>\n <ul class=\"po-calendar-months\">\n @for (month of displayMonths; track month; let i = $index) {\n <li class=\"po-calendar-month-item\">\n <po-button\n #monthOption\n [class.po-button-selected]=\"i === selectedIndexMonth\"\n role=\"option\"\n p-kind=\"tertiary\"\n p-label=\"{{ month }}\"\n [attr.aria-selected]=\"i === selectedIndexMonth\"\n [p-tabindex]=\"i === focusedIndex ? 0 : -1\"\n [p-size]=\"size\"\n [p-disabled]=\"isMonthDisabled(i)\"\n (p-click)=\"selectMonth(i, $event, true)\"\n (keydown)=\"onKeydownMonth($event, i)\"\n ></po-button>\n </li>\n }\n </ul>\n</ng-template>\n\n<ng-template #calendarYear>\n <ul class=\"po-calendar-years\">\n @for (year of displayYears; track year; let i = $index) {\n <li class=\"po-calendar-year-item\">\n <po-button\n #yearOption\n [class.po-button-selected]=\"i === selectedIndexYear\"\n role=\"option\"\n p-kind=\"tertiary\"\n p-label=\"{{ year }}\"\n [attr.aria-selected]=\"i === selectedIndexYear\"\n [p-tabindex]=\"i === focusedIndex ? 0 : -1\"\n [p-size]=\"size\"\n [p-disabled]=\"isYearDisabled(year)\"\n (p-click)=\"selectYear(i, $event, true, year)\"\n (keydown)=\"onKeydownYear($event, i)\"\n >\n </po-button>\n </li>\n }\n </ul>\n</ng-template>\n\n<ng-template #calendarTimer>\n <div class=\"po-calendar-vertical-divider\"></div>\n <po-timer\n #timer\n [p-format]=\"format\"\n [p-locale]=\"locale\"\n [p-min-time]=\"minTime\"\n [p-max-time]=\"maxTime\"\n [p-minute-interval]=\"minuteInterval\"\n [p-second-interval]=\"secondInterval\"\n [p-show-seconds]=\"showSeconds\"\n [p-size]=\"size\"\n (p-change)=\"onTimeChange($event)\"\n (p-boundary-tab)=\"onTimerBoundaryTab($event)\"\n ></po-timer>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PoButtonComponent, selector: "po-button" }, { kind: "component", type: PoTimerComponent, selector: "po-timer", outputs: ["p-boundary-tab"] }, { kind: "component", type: PoCalendarFooterComponent, selector: "po-calendar-footer", inputs: ["p-size", "p-label-clear", "p-label-today", "p-responsive", "p-today-disabled", "p-hide-today-button"], outputs: ["p-clear", "p-select-today", "p-close-calendar"] }, { kind: "component", type: PoCalendarWrapperComponent, selector: "po-calendar-wrapper", inputs: ["p-value", "p-mode", "p-responsive", "p-part-type", "p-range", "p-activate-date", "p-selected-value", "p-min-date", "p-max-date", "p-hover-value", "p-size", "p-hide-today-button", "p-presets", "p-header-template", "p-locale"], outputs: ["p-header-change", "p-select-date", "p-select-today", "p-hover-date", "p-close-calendar"] }, { kind: "component", type: PoCalendarPresetListComponent, selector: "po-calendar-preset-list", inputs: ["p-size", "p-presets", "p-selected-preset", "p-responsive", "p-locale"], outputs: ["p-close-calendar", "p-select-preset"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16894
16908
  }
16895
16909
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoCalendarComponent, decorators: [{
16896
16910
  type: Component,
16897
- args: [{ selector: 'po-calendar', changeDetection: ChangeDetectionStrategy.OnPush, providers: providers$7, standalone: false, template: "@if (isMonthYear) {\n <div class=\"po-calendar po-calendar-month-year\">\n <ng-container *ngTemplateOutlet=\"calendarMonth\"></ng-container>\n <ng-container *ngTemplateOutlet=\"calendarYear\"></ng-container>\n </div>\n} @else if (isYear) {\n <div class=\"po-calendar po-calendar-year\">\n <ng-container *ngTemplateOutlet=\"calendarYear\"></ng-container>\n </div>\n} @else if (isRange) {\n <div\n class=\"po-calendar\"\n [class.po-calendar-with-presets]=\"effectivePresets().length > 0\"\n [class.po-calendar-mobile]=\"isResponsive || widthWithPresets\"\n [class.po-calendar-responsive]=\"!isResponsive && widthWithPresets\"\n >\n @if (effectivePresets().length > 0 && !isResponsive && !widthWithPresets) {\n <po-calendar-preset-list\n [p-presets]=\"effectivePresets()\"\n [p-locale]=\"locale\"\n [p-selected-preset]=\"selectedPresetLabel\"\n [p-size]=\"size\"\n (p-select-preset)=\"onPresetSelected($event)\"\n (p-close-calendar)=\"onCloseCalendar()\"\n ></po-calendar-preset-list>\n }\n <ng-container *ngTemplateOutlet=\"calendarWrapper; context: { partType: 'start' }\"></ng-container>\n @if (effectivePresets().length > 0 && (isResponsive || widthWithPresets)) {\n <po-calendar-preset-list\n [p-presets]=\"effectivePresets()\"\n [p-locale]=\"locale\"\n [p-selected-preset]=\"selectedPresetLabel\"\n [p-size]=\"size\"\n [p-responsive]=\"true\"\n (p-select-preset)=\"onPresetSelected($event)\"\n (p-close-calendar)=\"onCloseCalendar()\"\n ></po-calendar-preset-list>\n\n <po-calendar-footer\n [p-size]=\"size\"\n [p-responsive]=\"isResponsive\"\n [p-hide-today-button]=\"true\"\n [p-label-clear]=\"displayToClean\"\n (p-clear)=\"onSelectDate($event)\"\n (p-close-calendar)=\"onCloseCalendar()\"\n ></po-calendar-footer>\n }\n </div>\n} @else {\n <div\n [class.po-calendar-date-time]=\"isDateTime\"\n [class.po-calendar-three-columns]=\"showSeconds || format === '12'\"\n [class.po-calendar-four-columns]=\"showSeconds && format === '12'\"\n >\n <div class=\"po-calendar\">\n <ng-container *ngTemplateOutlet=\"calendarWrapper; context: { partType: 'single' }\"></ng-container>\n </div>\n @if (isDateTime) {\n <ng-container *ngTemplateOutlet=\"calendarTimer\"></ng-container>\n }\n </div>\n}\n\n<ng-template #calendarWrapper let-partType=\"partType\">\n <po-calendar-wrapper\n [p-value]=\"getValue(partType)\"\n [p-activate-date]=\"getActivateDate(partType)\"\n [p-locale]=\"locale\"\n [p-min-date]=\"minDate\"\n [p-presets]=\"effectivePresets().length > 0\"\n [p-max-date]=\"maxDate\"\n [p-part-type]=\"partType\"\n [p-range]=\"isRange\"\n [p-responsive]=\"isResponsive || widthWithPresets\"\n [p-selected-value]=\"value\"\n [p-hover-value]=\"hoverValue\"\n [p-hide-today-button]=\"effectivePresets().length > 0\"\n (p-header-change)=\"onHeaderChange($event, partType)\"\n (p-select-date)=\"onSelectDate($event, partType)\"\n (p-hover-date)=\"onHoverDate($event)\"\n (p-close-calendar)=\"onCloseCalendar()\"\n [p-header-template]=\"headerTemplate\"\n [p-size]=\"size\"\n >\n </po-calendar-wrapper>\n</ng-template>\n\n<ng-template #calendarMonth>\n <ul class=\"po-calendar-months\">\n @for (month of displayMonths; track month; let i = $index) {\n <li class=\"po-calendar-month-item\">\n <po-button\n #monthOption\n [class.po-button-selected]=\"i === selectedIndexMonth\"\n role=\"option\"\n p-kind=\"tertiary\"\n p-label=\"{{ month }}\"\n [attr.aria-selected]=\"i === selectedIndexMonth\"\n [p-tabindex]=\"i === focusedIndex ? 0 : -1\"\n [p-size]=\"size\"\n [p-disabled]=\"isMonthDisabled(i)\"\n (p-click)=\"selectMonth(i, $event, true)\"\n (keydown)=\"onKeydownMonth($event, i)\"\n ></po-button>\n </li>\n }\n </ul>\n</ng-template>\n\n<ng-template #calendarYear>\n <ul class=\"po-calendar-years\">\n @for (year of displayYears; track year; let i = $index) {\n <li class=\"po-calendar-year-item\">\n <po-button\n #yearOption\n [class.po-button-selected]=\"i === selectedIndexYear\"\n role=\"option\"\n p-kind=\"tertiary\"\n p-label=\"{{ year }}\"\n [attr.aria-selected]=\"i === selectedIndexYear\"\n [p-tabindex]=\"i === focusedIndex ? 0 : -1\"\n [p-size]=\"size\"\n [p-disabled]=\"isYearDisabled(year)\"\n (p-click)=\"selectYear(i, $event, true, year)\"\n (keydown)=\"onKeydownYear($event, i)\"\n >\n </po-button>\n </li>\n }\n </ul>\n</ng-template>\n\n<ng-template #calendarTimer>\n <div class=\"po-calendar-vertical-divider\"></div>\n <po-timer\n #timer\n [p-format]=\"format\"\n [p-locale]=\"locale\"\n [p-min-time]=\"minTime\"\n [p-max-time]=\"maxTime\"\n [p-minute-interval]=\"minuteInterval\"\n [p-second-interval]=\"secondInterval\"\n [p-show-seconds]=\"showSeconds\"\n [p-size]=\"size\"\n (p-change)=\"onTimeChange($event)\"\n (p-boundary-tab)=\"onTimerBoundaryTab($event)\"\n ></po-timer>\n</ng-template>\n" }]
16911
+ args: [{ selector: 'po-calendar', changeDetection: ChangeDetectionStrategy.OnPush, providers: providers$7, standalone: false, template: "@if (isMonthYear) {\n <div class=\"po-calendar po-calendar-month-year\">\n <ng-container *ngTemplateOutlet=\"calendarMonth\"></ng-container>\n <ng-container *ngTemplateOutlet=\"calendarYear\"></ng-container>\n </div>\n} @else if (isYear) {\n <div class=\"po-calendar po-calendar-year\">\n <ng-container *ngTemplateOutlet=\"calendarYear\"></ng-container>\n </div>\n} @else if (isRange) {\n <div\n class=\"po-calendar\"\n [class.po-calendar-with-presets]=\"effectivePresets().length > 0\"\n [class.po-calendar-mobile]=\"isResponsive || widthWithPresets\"\n [class.po-calendar-responsive]=\"!isResponsive && widthWithPresets\"\n >\n @if (effectivePresets().length > 0 && !isResponsive && !widthWithPresets) {\n <po-calendar-preset-list\n [p-presets]=\"effectivePresets()\"\n [p-locale]=\"locale\"\n [p-selected-preset]=\"selectedPresetLabel\"\n [p-size]=\"size\"\n (p-select-preset)=\"onPresetSelected($event)\"\n (p-close-calendar)=\"onCloseCalendar()\"\n ></po-calendar-preset-list>\n }\n <ng-container *ngTemplateOutlet=\"calendarWrapper; context: { partType: 'start' }\"></ng-container>\n @if (effectivePresets().length > 0 && (isResponsive || widthWithPresets)) {\n <po-calendar-preset-list\n [p-presets]=\"effectivePresets()\"\n [p-locale]=\"locale\"\n [p-selected-preset]=\"selectedPresetLabel\"\n [p-size]=\"size\"\n [p-responsive]=\"true\"\n (p-select-preset)=\"onPresetSelected($event)\"\n (p-close-calendar)=\"onCloseCalendar()\"\n ></po-calendar-preset-list>\n\n <po-calendar-footer\n [p-size]=\"size\"\n [p-responsive]=\"isResponsive\"\n [p-hide-today-button]=\"true\"\n [p-label-clear]=\"displayToClean\"\n (p-clear)=\"onSelectDate($event)\"\n (p-close-calendar)=\"onCloseCalendar()\"\n ></po-calendar-footer>\n }\n </div>\n} @else {\n <div\n [class.po-calendar-date-time]=\"isDateTime\"\n [class.po-calendar-three-columns]=\"showSeconds || format === '12'\"\n [class.po-calendar-four-columns]=\"showSeconds && format === '12'\"\n >\n <div class=\"po-calendar\">\n <ng-container *ngTemplateOutlet=\"calendarWrapper; context: { partType: 'single' }\"></ng-container>\n </div>\n @if (isDateTime) {\n <ng-container *ngTemplateOutlet=\"calendarTimer\"></ng-container>\n }\n </div>\n}\n\n<ng-template #calendarWrapper let-partType=\"partType\">\n <po-calendar-wrapper\n [p-value]=\"getValue(partType)\"\n [p-activate-date]=\"getActivateDate(partType)\"\n [p-locale]=\"locale\"\n [p-min-date]=\"minDate\"\n [p-presets]=\"effectivePresets().length > 0\"\n [p-max-date]=\"maxDate\"\n [p-part-type]=\"partType\"\n [p-range]=\"isRange\"\n [p-responsive]=\"isResponsive || widthWithPresets\"\n [p-selected-value]=\"value\"\n [p-hover-value]=\"hoverValue\"\n [p-hide-today-button]=\"effectivePresets().length > 0\"\n (p-header-change)=\"onHeaderChange($event, partType)\"\n (p-select-date)=\"onSelectDate($event, partType)\"\n (p-select-today)=\"onSelectTodayPreset()\"\n (p-hover-date)=\"onHoverDate($event)\"\n (p-close-calendar)=\"onCloseCalendar()\"\n [p-header-template]=\"headerTemplate\"\n [p-size]=\"size\"\n >\n </po-calendar-wrapper>\n</ng-template>\n\n<ng-template #calendarMonth>\n <ul class=\"po-calendar-months\">\n @for (month of displayMonths; track month; let i = $index) {\n <li class=\"po-calendar-month-item\">\n <po-button\n #monthOption\n [class.po-button-selected]=\"i === selectedIndexMonth\"\n role=\"option\"\n p-kind=\"tertiary\"\n p-label=\"{{ month }}\"\n [attr.aria-selected]=\"i === selectedIndexMonth\"\n [p-tabindex]=\"i === focusedIndex ? 0 : -1\"\n [p-size]=\"size\"\n [p-disabled]=\"isMonthDisabled(i)\"\n (p-click)=\"selectMonth(i, $event, true)\"\n (keydown)=\"onKeydownMonth($event, i)\"\n ></po-button>\n </li>\n }\n </ul>\n</ng-template>\n\n<ng-template #calendarYear>\n <ul class=\"po-calendar-years\">\n @for (year of displayYears; track year; let i = $index) {\n <li class=\"po-calendar-year-item\">\n <po-button\n #yearOption\n [class.po-button-selected]=\"i === selectedIndexYear\"\n role=\"option\"\n p-kind=\"tertiary\"\n p-label=\"{{ year }}\"\n [attr.aria-selected]=\"i === selectedIndexYear\"\n [p-tabindex]=\"i === focusedIndex ? 0 : -1\"\n [p-size]=\"size\"\n [p-disabled]=\"isYearDisabled(year)\"\n (p-click)=\"selectYear(i, $event, true, year)\"\n (keydown)=\"onKeydownYear($event, i)\"\n >\n </po-button>\n </li>\n }\n </ul>\n</ng-template>\n\n<ng-template #calendarTimer>\n <div class=\"po-calendar-vertical-divider\"></div>\n <po-timer\n #timer\n [p-format]=\"format\"\n [p-locale]=\"locale\"\n [p-min-time]=\"minTime\"\n [p-max-time]=\"maxTime\"\n [p-minute-interval]=\"minuteInterval\"\n [p-second-interval]=\"secondInterval\"\n [p-show-seconds]=\"showSeconds\"\n [p-size]=\"size\"\n (p-change)=\"onTimeChange($event)\"\n (p-boundary-tab)=\"onTimerBoundaryTab($event)\"\n ></po-timer>\n</ng-template>\n" }]
16898
16912
  }], ctorParameters: () => [], propDecorators: { timerComponent: [{
16899
16913
  type: ViewChild,
16900
16914
  args: ['timer']
@@ -29690,12 +29704,9 @@ class PoDatetimepickerBaseComponent {
29690
29704
  _size = undefined;
29691
29705
  _date;
29692
29706
  _timeValue = '';
29693
- previousValue;
29694
29707
  _resolvedMinDate;
29695
29708
  _resolvedMaxDate;
29696
29709
  hasValidatorRequired;
29697
- hour = 'T00:00:00-00:00';
29698
- isExtendedISO = false;
29699
29710
  objMask;
29700
29711
  onChangeModel = null;
29701
29712
  onTouchedModel = null;
@@ -30083,7 +30094,6 @@ class PoDatetimepickerBaseComponent {
30083
30094
  else {
30084
30095
  this._locale = this.shortLanguage;
30085
30096
  }
30086
- // Recalcula o formato de data baseado no locale (se não foi definido explicitamente)
30087
30097
  this._format = this.resolveFormat();
30088
30098
  this.objMask = this.buildMask(replaceFormatSeparator(this.format, this.languageService.getDateSeparator(this.localeInput())));
30089
30099
  this.refreshValue(this._date);
@@ -30167,7 +30177,6 @@ class PoDatetimepickerBaseComponent {
30167
30177
  this.processStringValue(value);
30168
30178
  }
30169
30179
  this.refreshValue(this._date);
30170
- // Normaliza o model para ISO 8601 se o valor recebido era Date ou string válida
30171
30180
  if (this._date && this._timeValue) {
30172
30181
  this.callOnChange(this.getModelValue());
30173
30182
  }
@@ -30198,11 +30207,9 @@ class PoDatetimepickerBaseComponent {
30198
30207
  if (this.requiredFailed(c.value)) {
30199
30208
  return { required: { valid: false } };
30200
30209
  }
30201
- // Validação de range de data (p-min-date / p-max-date)
30202
30210
  if (this._date && !this.isDateInRange()) {
30203
30211
  return { date: { valid: false } };
30204
30212
  }
30205
- // Validação de range de hora (p-min-time / p-max-time)
30206
30213
  if (this._timeValue && !this.isTimeInRange(this._timeValue)) {
30207
30214
  return { time: { valid: false } };
30208
30215
  }
@@ -30221,15 +30228,9 @@ class PoDatetimepickerBaseComponent {
30221
30228
  set timeValue(value) {
30222
30229
  this._timeValue = value;
30223
30230
  }
30224
- // Retorna o formato de data efetivo, considerando:
30225
- // 1. Valor explícito de `p-date-format`
30226
- // 2. Formato padrão do locale
30227
30231
  get format() {
30228
30232
  return this._format || this.resolveFormat();
30229
30233
  }
30230
- // Retorna o formato de hora efetivo, considerando:
30231
- // 1. Valor explícito de `p-format` (timerFormat)
30232
- // 2. Formato padrão do locale (12h para en, 24h para pt/es/ru)
30233
30234
  get resolvedTimerFormat() {
30234
30235
  const explicit = this.timerFormat();
30235
30236
  if (explicit) {
@@ -30238,7 +30239,6 @@ class PoDatetimepickerBaseComponent {
30238
30239
  const localeTimeFormat = PoDatetimepickerTimeFormatByLocale[this.locale] || '24';
30239
30240
  return localeTimeFormat === '12' ? PoTimerFormat.Format12 : PoTimerFormat.Format24;
30240
30241
  }
30241
- // Indica se o formato de hora é 12h (AM/PM).
30242
30242
  get is12HourFormat() {
30243
30243
  return this.resolvedTimerFormat === PoTimerFormat.Format12;
30244
30244
  }
@@ -30275,27 +30275,6 @@ class PoDatetimepickerBaseComponent {
30275
30275
  mapSizeToIcon(size) {
30276
30276
  return mapInputSizeToLoadingIcon(size);
30277
30277
  }
30278
- // Retorna o valor do model no formato ISO 8601 combinando data e hora com timezone local.
30279
- //
30280
- // Formato de saída: `yyyy-mm-ddTHH:mm:ss+/-HH:mm` ou `yyyy-mm-ddTHH:mm+/-HH:mm`.
30281
- //
30282
- // O componente opera internamente em **local timezone**:
30283
- // - O valor exibido ao usuário é sempre em horário local.
30284
- // - O valor emitido no model inclui o offset do timezone local para que consumidores
30285
- // possam converter para UTC ou outro timezone conforme necessário.
30286
- // - Ao receber um valor via `writeValue`, strings ISO com timezone são convertidas
30287
- // para horário local antes de serem armazenadas.
30288
- // - Objetos `Date` do JavaScript já representam instantes em UTC internamente,
30289
- // mas são exibidos em horário local — o componente segue esse comportamento.
30290
- //
30291
- // Exemplos de saída (timezone -03:00 / Brasília):
30292
- // - `2026-05-09T14:30:00-03:00`
30293
- // - `2026-05-09T14:30-03:00`
30294
- //
30295
- // Considerações sobre horário de verão:
30296
- // - O offset é calculado no momento da emissão do valor, usando `Date.getTimezoneOffset()`
30297
- // da data selecionada. Isso garante que o offset correto seja aplicado mesmo quando
30298
- // a data selecionada está em período de horário de verão diferente do momento atual.
30299
30278
  getModelValue() {
30300
30279
  if (!this._date) {
30301
30280
  return '';
@@ -30305,12 +30284,6 @@ class PoDatetimepickerBaseComponent {
30305
30284
  const timezone = this.getTimezoneOffset(this._date);
30306
30285
  return `${dateISO}T${time}${timezone}`;
30307
30286
  }
30308
- // Retorna o offset do timezone local no formato `+/-HH:mm`.
30309
- //
30310
- // Usa a data informada para calcular o offset, garantindo que o horário de verão
30311
- // seja considerado corretamente (o offset pode variar conforme a data).
30312
- //
30313
- // @param date Data de referência para cálculo do offset.
30314
30287
  getTimezoneOffset(date) {
30315
30288
  const referenceDate = date || new Date();
30316
30289
  const offset = referenceDate.getTimezoneOffset();
@@ -30320,32 +30293,22 @@ class PoDatetimepickerBaseComponent {
30320
30293
  const minutes = ('00' + (offsetAbsolute % 60)).slice(-2);
30321
30294
  return `${sign}${hours}:${minutes}`;
30322
30295
  }
30323
- // Executa a função onChange propagando o valor para o formulário.
30324
30296
  callOnChange(value, retry = true) {
30325
30297
  if (this.onChangeModel) {
30326
30298
  this.onChangeModel(value);
30327
- this.previousValue = value;
30328
30299
  }
30329
30300
  else if (retry) {
30330
30301
  setTimeout(() => this.callOnChange(value, false));
30331
30302
  }
30332
30303
  }
30333
- // Atualiza o model com o valor combinado de data e hora.
30334
30304
  controlModel() {
30335
30305
  const modelValue = this.getModelValue();
30336
30306
  this.callOnChange(modelValue || '');
30337
30307
  }
30338
- // Formata o horário para exibição, incluindo AM/PM quando em formato 12h.
30339
- //
30340
- // @param time Horário no formato HH:mm ou HH:mm:ss (24h interno)
30341
- // @returns Horário formatado para exibição (ex: "02:30" ou "14:30")
30342
- // Nota: Para formato 12h, retorna apenas a parte numérica (sem AM/PM).
30343
- // O período é exibido no input separado gerenciado pelo componente.
30344
30308
  formatTimeForDisplay(time) {
30345
30309
  if (!time) {
30346
30310
  return this.is12HourFormat ? '12:00' : '00:00';
30347
30311
  }
30348
- // Trunca segundos se showSeconds está desabilitado
30349
30312
  const parts = time.split(':');
30350
30313
  if (!this.showSeconds() && parts.length > 2) {
30351
30314
  time = `${parts[0]}:${parts[1]}`;
@@ -30353,7 +30316,6 @@ class PoDatetimepickerBaseComponent {
30353
30316
  if (!this.is12HourFormat) {
30354
30317
  return time;
30355
30318
  }
30356
- // Converte de 24h para 12h (sem AM/PM — o período é gerenciado separadamente)
30357
30319
  let hours = Number.parseInt(parts[0], 10);
30358
30320
  const minutes = parts[1];
30359
30321
  const seconds = this.showSeconds() && parts.length > 2 ? parts[2] : null;
@@ -30367,13 +30329,8 @@ class PoDatetimepickerBaseComponent {
30367
30329
  return seconds ? `${hoursStr}:${minutes}:${seconds}` : `${hoursStr}:${minutes}`;
30368
30330
  }
30369
30331
  // --- Protected / Private ---
30370
- // Constrói a máscara para o input de datetime.
30371
- // Formato resultante: "99/99/9999 99:99" (24h e 12h)
30372
- // Com segundos: "99/99/9999 99:99:99"
30373
- // Nota: O sufixo AM/PM em formato 12h é gerenciado separadamente (não faz parte da máscara).
30374
30332
  buildMask(format = this.format) {
30375
30333
  let mask = format.toUpperCase();
30376
- // Parte da data
30377
30334
  mask = mask.replace(/DD/g, '99');
30378
30335
  mask = mask.replace(/MM/g, '99');
30379
30336
  mask = mask.replace(/YYYY/g, '9999');
@@ -30384,7 +30341,6 @@ class PoDatetimepickerBaseComponent {
30384
30341
  else {
30385
30342
  mask += ' 99:99';
30386
30343
  }
30387
- // AM/PM NÃO é incluído na máscara — é gerenciado como sufixo fixo no componente.
30388
30344
  return new PoMask(mask, true);
30389
30345
  }
30390
30346
  validateModel(value) {
@@ -30392,24 +30348,18 @@ class PoDatetimepickerBaseComponent {
30392
30348
  this.validatorChange();
30393
30349
  }
30394
30350
  }
30395
- // Retorna a data mínima resolvida (cacheada).
30396
30351
  get resolvedMinDate() {
30397
30352
  return this._resolvedMinDate;
30398
30353
  }
30399
- // Retorna a data máxima resolvida (cacheada).
30400
30354
  get resolvedMaxDate() {
30401
30355
  return this._resolvedMaxDate;
30402
30356
  }
30403
- // Verifica se a data selecionada está dentro do intervalo [minDate, maxDate].
30404
- // Segue o mesmo padrão do po-datepicker: `PoUtils.validateDateRange`.
30405
30357
  isDateInRange() {
30406
30358
  if (!this._date) {
30407
30359
  return true;
30408
30360
  }
30409
30361
  return PoUtils.validateDateRange(this._date, this.resolvedMinDate, this.resolvedMaxDate);
30410
30362
  }
30411
- // Verifica se o horário selecionado está dentro do intervalo [minTime, maxTime].
30412
- // Segue o mesmo padrão do po-timepicker: converte para segundos e compara.
30413
30363
  isTimeInRange(time) {
30414
30364
  if (!time) {
30415
30365
  return true;
@@ -30431,7 +30381,6 @@ class PoDatetimepickerBaseComponent {
30431
30381
  }
30432
30382
  return true;
30433
30383
  }
30434
- // Converte uma string de horário (HH:mm ou HH:mm:ss) para total de segundos.
30435
30384
  timeToSeconds(time) {
30436
30385
  const parts = time.split(':');
30437
30386
  const hours = Number.parseInt(parts[0], 10) || 0;
@@ -30439,7 +30388,6 @@ class PoDatetimepickerBaseComponent {
30439
30388
  const seconds = parts.length >= 3 ? Number.parseInt(parts[2], 10) || 0 : 0;
30440
30389
  return hours * 3600 + minutes * 60 + seconds;
30441
30390
  }
30442
- // Resolve o formato de data efetivo baseado no input explícito ou no locale.
30443
30391
  resolveFormat() {
30444
30392
  const explicit = this.dateFormat?.();
30445
30393
  if (explicit) {
@@ -30450,37 +30398,23 @@ class PoDatetimepickerBaseComponent {
30450
30398
  }
30451
30399
  return PoDatetimepickerFormatByLocale[this.locale] || poDatepickerFormatDefault;
30452
30400
  }
30453
- // Processa um valor string recebido via writeValue.
30454
- // Formatos aceitos:
30455
- // - `yyyy-mm-ddTHH:mm:ss+/-HH:mm` (ISO 8601 com timezone)
30456
- // - `yyyy-mm-ddTHH:mm:ssZ` (UTC)
30457
- // - `yyyy-mm-ddTHH:mm:ss` (sem timezone, interpretado como local)
30458
- // - `yyyy-mm-ddTHH:mm` (sem segundos)
30459
- // - `yyyy-mm-dd` (apenas data, hora assume 00:00)
30460
- //
30461
- // Quando o valor contém timezone, é convertido para horário local antes de ser armazenado.
30462
- // Isso garante que o valor exibido ao usuário sempre represente o horário local.
30463
30401
  processStringValue(value) {
30464
30402
  if (value.includes('T')) {
30465
30403
  const tIndex = value.indexOf('T');
30466
30404
  const datePart = value.substring(0, tIndex);
30467
30405
  const timeAndTz = value.substring(tIndex + 1);
30468
- // Tenta fazer parse completo via Date para respeitar timezone
30469
30406
  const fullDate = new Date(value);
30470
30407
  if (!isNaN(fullDate.getTime())) {
30471
- // Parse bem-sucedido — Date converte automaticamente para local timezone
30472
30408
  this._date = new Date(fullDate.getFullYear(), fullDate.getMonth(), fullDate.getDate());
30473
30409
  this._timeValue = this.extractTimeFromDate(fullDate);
30474
30410
  }
30475
30411
  else {
30476
- // Fallback: parse manual sem timezone
30477
30412
  const parsedDate = convertIsoToDate(datePart, false, false);
30478
30413
  this._date = parsedDate;
30479
30414
  this._timeValue = this.normalizeTimePart(timeAndTz);
30480
30415
  }
30481
30416
  }
30482
30417
  else {
30483
- // Apenas data (yyyy-mm-dd)
30484
30418
  const parsedDate = convertIsoToDate(value, false, false);
30485
30419
  this._date = parsedDate;
30486
30420
  this._timeValue = '00:00';
@@ -30494,7 +30428,7 @@ class PoDatetimepickerBaseComponent {
30494
30428
  const hours = ('0' + date.getHours()).slice(-2);
30495
30429
  const minutes = ('0' + date.getMinutes()).slice(-2);
30496
30430
  const seconds = ('0' + date.getSeconds()).slice(-2);
30497
- if (this.showSeconds() && seconds !== '00') {
30431
+ if (this.showSeconds()) {
30498
30432
  return `${hours}:${minutes}:${seconds}`;
30499
30433
  }
30500
30434
  return `${hours}:${minutes}`;
@@ -30575,13 +30509,11 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
30575
30509
  iconDatepicker;
30576
30510
  calendarComponent;
30577
30511
  inputEl;
30578
- iconClean;
30579
30512
  dialogPicker;
30580
30513
  helperEl;
30581
30514
  datetimepickerField;
30582
30515
  renderer = inject(Renderer2);
30583
30516
  cd = inject(ChangeDetectorRef);
30584
- poCalendarService = inject(PoCalendarService);
30585
30517
  controlPosition = inject(PoControlPositionService);
30586
30518
  id = `po-datetimepicker[${uuid()}]`;
30587
30519
  displayAdditionalHelp = false;
@@ -30593,6 +30525,8 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
30593
30525
  clickListener;
30594
30526
  eventResizeListener;
30595
30527
  valueBeforeChange = '';
30528
+ hadValueOnOpen = false;
30529
+ isTodayPresetInProgress = false;
30596
30530
  constructor() {
30597
30531
  const languageService = inject(PoLanguageService);
30598
30532
  const el = inject(ElementRef);
@@ -30623,6 +30557,8 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
30623
30557
  }
30624
30558
  if (!this.visible) {
30625
30559
  this.visible = true;
30560
+ this.hadValueOnOpen = !!(this.date && this.timeValue);
30561
+ this.syncDateFromInput();
30626
30562
  this.setCalendarPosition();
30627
30563
  this.initializeListeners();
30628
30564
  this.syncCalendarAndTimer();
@@ -30684,25 +30620,51 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
30684
30620
  }
30685
30621
  this.objMask?.keyup($event);
30686
30622
  if (this.objMask?.valueToModel || this.objMask?.valueToModel === '') {
30687
- const inputValue = this.inputEl.nativeElement.value;
30688
- const minLength = this.getExpectedInputLength();
30689
- if (this.objMask.valueToModel.length >= minLength) {
30690
- this.parseInputAndSync(inputValue);
30691
- }
30692
- else {
30693
- this.date = undefined;
30694
- this.timeValue = '';
30695
- this.controlModel();
30696
- this.syncCalendarAndTimer();
30623
+ this.processKeyupWithMask();
30624
+ }
30625
+ else {
30626
+ this.clearDateTimeState();
30627
+ this.syncCalendarAndTimer();
30628
+ }
30629
+ }
30630
+ processKeyupWithMask() {
30631
+ const inputValue = this.inputEl.nativeElement.value;
30632
+ const minLength = this.getExpectedInputLength();
30633
+ if (this.objMask.valueToModel.length >= minLength) {
30634
+ this.tryParseCompleteInput(inputValue);
30635
+ }
30636
+ else {
30637
+ this.clearDateTimeState();
30638
+ this.controlModel();
30639
+ this.syncCalendarAndTimer();
30640
+ }
30641
+ }
30642
+ tryParseCompleteInput(inputValue) {
30643
+ const parsed = this.parseDateTimeFromInput(inputValue);
30644
+ if (parsed) {
30645
+ this.date = parsed.date;
30646
+ this.timeValue = this.normalizeTimeWithSeconds(parsed.time);
30647
+ if (this.is12HourFormat) {
30648
+ const hours = Number.parseInt(parsed.time.split(':')[0], 10);
30649
+ this.currentPeriod = hours >= 12 ? 'PM' : 'AM';
30697
30650
  }
30651
+ this.controlModel();
30652
+ this.syncCalendarAndTimer();
30698
30653
  }
30699
30654
  else {
30700
- this.date = undefined;
30701
- this.timeValue = '';
30655
+ this.clearDateTimeState();
30656
+ this.controlModel();
30702
30657
  this.syncCalendarAndTimer();
30703
30658
  }
30704
30659
  }
30660
+ clearDateTimeState() {
30661
+ this.date = undefined;
30662
+ this.timeValue = '';
30663
+ }
30705
30664
  onKeydown($event) {
30665
+ if ($event?.target === this.inputEl?.nativeElement) {
30666
+ this.keydown.emit($event);
30667
+ }
30706
30668
  if (this.isReadonly) {
30707
30669
  return;
30708
30670
  }
@@ -30714,7 +30676,6 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
30714
30676
  }
30715
30677
  if ($event?.target === this.inputEl?.nativeElement) {
30716
30678
  this.objMask?.keydown($event);
30717
- this.keydown.emit($event);
30718
30679
  }
30719
30680
  }
30720
30681
  onInputFocus() {
@@ -30723,8 +30684,6 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
30723
30684
  onPeriodBlur() {
30724
30685
  this.isInputFocused = false;
30725
30686
  }
30726
- // Chamado ao sair do campo (blur).
30727
- // Finaliza a edição, valida o valor e sincroniza com o calendário/timer.
30728
30687
  eventOnBlur($event) {
30729
30688
  this.isInputFocused = false;
30730
30689
  this.onTouchedModel?.();
@@ -30767,7 +30726,6 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
30767
30726
  }
30768
30727
  }
30769
30728
  }
30770
- // Chamado ao clicar no input.
30771
30729
  eventOnClick($event) {
30772
30730
  if (this.verifyMobile()) {
30773
30731
  $event.target.blur();
@@ -30777,14 +30735,11 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
30777
30735
  this.objMask?.click($event);
30778
30736
  }
30779
30737
  }
30780
- // Chamado ao clicar em qualquer parte do wrapper do campo.
30781
- // Foca o input principal se o clique não foi no period input ou nos ícones.
30782
30738
  onFieldClick($event) {
30783
30739
  if (this.isDisabled || this.isReadonly) {
30784
30740
  return;
30785
30741
  }
30786
30742
  const target = $event.target;
30787
- // Se clicou no period input ou nos botões, não redireciona
30788
30743
  if (target.closest('.po-datetimepicker-field-period') || target.closest('.po-field-icon-container-right')) {
30789
30744
  return;
30790
30745
  }
@@ -30799,27 +30754,25 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
30799
30754
  this.closeCalendar(false);
30800
30755
  }
30801
30756
  }
30802
- // Chamado quando Tab/Shift+Tab atinge a borda do timer (última ou primeira coluna).
30803
- // Quando direction é 'forward' (Tab na última coluna), fecha o calendário e foca no botão toggle.
30804
30757
  onTimerBoundaryTab(event) {
30805
30758
  if (event.direction === 'forward') {
30806
30759
  event.event.preventDefault();
30807
30760
  this.closeCalendar(false);
30808
30761
  }
30809
30762
  }
30810
- // Sobrescreve writeValue para sincronizar valueBeforeChange,
30763
+ onCalendarClose() {
30764
+ this.isTodayPresetInProgress = true;
30765
+ this.closeCalendar(false);
30766
+ }
30811
30767
  writeValue(value) {
30812
30768
  super.writeValue(value);
30813
30769
  this.valueBeforeChange = this.getModelValue();
30814
30770
  }
30815
- // Atualiza o valor exibido no input quando o model muda externamente (writeValue)
30816
- // ou quando o locale muda em runtime.
30817
30771
  refreshValue(value) {
30818
30772
  if (!this.inputEl) {
30819
30773
  return;
30820
30774
  }
30821
30775
  if (value && value instanceof Date && !Number.isNaN(value.getTime())) {
30822
- // Atualiza o período atual com base no horário armazenado (formato 24h)
30823
30776
  if (this.is12HourFormat && this.timeValue) {
30824
30777
  const hours = Number.parseInt(this.timeValue.split(':')[0], 10);
30825
30778
  this.currentPeriod = hours >= 12 ? 'PM' : 'AM';
@@ -30829,35 +30782,26 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
30829
30782
  else if (!value) {
30830
30783
  this.inputEl.nativeElement.value = '';
30831
30784
  }
30832
- // Se value é inválido (NaN), não altera o input — mantém o valor atual
30833
30785
  this.cd?.markForCheck();
30834
30786
  }
30835
- // Chamado quando o timer emite uma mudança de horário.
30836
- // Atualiza o valor, propaga o model, emite p-change e fecha o calendário.
30837
- // Só processa se já há data válida selecionada (seleção completa = data + hora).
30838
30787
  onTimeChange(time) {
30839
30788
  if (!time) {
30840
30789
  return;
30841
30790
  }
30842
- this.timeValue = time;
30791
+ this.timeValue = this.normalizeTimeWithSeconds(time);
30843
30792
  if (this.date && !Number.isNaN(this.date.getTime())) {
30844
30793
  this.controlModel();
30845
30794
  this.refreshValue(this.date);
30846
30795
  this.emitChangeIfDifferent(this.getModelValue());
30847
- this.closeCalendar(true);
30796
+ if (this.isTodayPresetInProgress) {
30797
+ this.isTodayPresetInProgress = false;
30798
+ }
30799
+ else if (!this.hadValueOnOpen) {
30800
+ this.closeCalendar(true);
30801
+ }
30848
30802
  this.cd.markForCheck();
30849
30803
  }
30850
30804
  }
30851
- // Chamado quando o calendário emite uma mudança de data.
30852
- //
30853
- // Distingue entre:
30854
- // - "Limpar": calendar emite change('') — string vazia
30855
- // - Tab/close interno: calendar emite change(null) — ignorar
30856
- // - Seleção de data: calendar emite change('yyyy-mm-dd') — processar
30857
- //
30858
- // Ao selecionar uma data, NÃO emite p-change nem propaga model com hora 00:00.
30859
- // O p-change só será emitido quando o timer completar a seleção (data + hora).
30860
- // Exceção: "Hoje" define data+hora simultaneamente, então emite e fecha.
30861
30805
  onDateChange(date) {
30862
30806
  if (date === null || date === undefined) {
30863
30807
  return;
@@ -30868,44 +30812,35 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
30868
30812
  this.callOnChange('');
30869
30813
  this.emitChangeIfDifferent('');
30870
30814
  this.refreshValue(undefined);
30871
- this.closeCalendar(true);
30815
+ this.closeCalendar(false);
30872
30816
  this.cd.markForCheck();
30873
30817
  return;
30874
30818
  }
30875
- // date vem no formato ISO yyyy-mm-dd do po-calendar
30876
30819
  const parsedDate = new Date(date + 'T00:00:00');
30877
30820
  if (Number.isNaN(parsedDate.getTime())) {
30878
30821
  return;
30879
30822
  }
30880
30823
  this.date = parsedDate;
30881
- // "Hoje" — hora já foi definida via p-change-time antes deste evento.
30882
- // Emite model completo e fecha.
30883
- if (this.poCalendarService.isToday(parsedDate) && this.timeValue) {
30884
- this.controlModel();
30885
- this.refreshValue(this.date);
30886
- this.emitChangeIfDifferent(this.getModelValue());
30887
- this.closeCalendar(true);
30824
+ if (this.isTodayPresetInProgress) {
30888
30825
  return;
30889
30826
  }
30890
- // Se já existe hora preenchida, a seleção de data atualiza o model
30891
- // imediatamente mas mantém o calendário aberto para possível ajuste de hora.
30892
30827
  if (this.timeValue) {
30893
30828
  this.controlModel();
30894
30829
  this.refreshValue(this.date);
30895
30830
  this.emitChangeIfDifferent(this.getModelValue());
30896
30831
  return;
30897
30832
  }
30898
- // Seleção de data sem hora — apenas atualiza o display
30899
- // (aguarda seleção de hora no timer para completar)
30900
30833
  this.refreshValue(this.date);
30901
30834
  }
30902
- // Chamado ao clicar no botão de limpar (po-clean no input).
30903
- // Limpa data, hora, input e reseta o calendário/timer.
30904
30835
  clear(triggeredByKeyboard = false) {
30905
30836
  this.date = undefined;
30906
30837
  this.timeValue = '';
30907
30838
  this.currentPeriod = 'AM';
30908
30839
  this.inputEl.nativeElement.value = '';
30840
+ if (this.objMask) {
30841
+ this.objMask.valueToModel = '';
30842
+ this.objMask.valueToInput = '';
30843
+ }
30909
30844
  if (triggeredByKeyboard) {
30910
30845
  setTimeout(() => {
30911
30846
  this.focus();
@@ -30984,7 +30919,6 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
30984
30919
  dateFormatted = dateFormatted.replace('mm', month);
30985
30920
  dateFormatted = dateFormatted.replace('yyyy', year);
30986
30921
  dateFormatted = dateFormatted.replace(/\//g, separator);
30987
- // Se não há hora selecionada, exibe placeholders vazios para indicar que falta preencher
30988
30922
  if (!time) {
30989
30923
  const timePlaceholder = this.showSeconds() ? '--:--:--' : '--:--';
30990
30924
  return `${dateFormatted} ${timePlaceholder}`;
@@ -30992,16 +30926,11 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
30992
30926
  const timeDisplay = this.formatTimeForDisplay(time);
30993
30927
  return `${dateFormatted} ${timeDisplay}`;
30994
30928
  }
30995
- // Faz o parse do valor digitado no input e sincroniza com o calendário e timer.
30996
- //
30997
- // Formato esperado: "dd/mm/yyyy HH:mm" ou "mm/dd/yyyy HH:mm" (conforme locale)
30998
- // Para 12h: "dd/mm/yyyy hh:mm AM/PM"
30999
30929
  parseInputAndSync(inputValue) {
31000
30930
  const parsed = this.parseDateTimeFromInput(inputValue);
31001
30931
  if (parsed) {
31002
30932
  this.date = parsed.date;
31003
- this.timeValue = parsed.time;
31004
- // Sincroniza currentPeriod com o horário parseado (formato 24h)
30933
+ this.timeValue = this.normalizeTimeWithSeconds(parsed.time);
31005
30934
  if (this.is12HourFormat) {
31006
30935
  const hours = Number.parseInt(parsed.time.split(':')[0], 10);
31007
30936
  this.currentPeriod = hours >= 12 ? 'PM' : 'AM';
@@ -31015,30 +30944,24 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
31015
30944
  this.callOnChange(this.literals.invalidDatetime);
31016
30945
  }
31017
30946
  }
31018
- // Extrai data e hora de uma string formatada conforme o locale.
31019
30947
  parseDateTimeFromInput(inputValue) {
31020
30948
  if (!inputValue) {
31021
30949
  return null;
31022
30950
  }
31023
- // Separa a parte de data da parte de hora pelo espaço
31024
- // Formato: "dd/mm/yyyy HH:mm" ou "dd/mm/yyyy hh:mm AM"
31025
30951
  const separator = this.languageService.getDateSeparator(this.localeInput());
31026
- const datePartLength = 10; // dd/mm/yyyy sempre tem 10 chars (com separador)
30952
+ const datePartLength = 10;
31027
30953
  const datePart = inputValue.substring(0, datePartLength);
31028
- const timePart = inputValue.substring(datePartLength + 1).trim(); // +1 para o espaço
31029
- // Parse da data
30954
+ const timePart = inputValue.substring(datePartLength + 1).trim();
31030
30955
  const date = this.getDateFromFormattedString(datePart, separator);
31031
30956
  if (!date) {
31032
30957
  return null;
31033
30958
  }
31034
- // Parse da hora
31035
30959
  const time = this.parseTimeFromInput(timePart);
31036
30960
  if (!time) {
31037
30961
  return null;
31038
30962
  }
31039
30963
  return { date, time };
31040
30964
  }
31041
- // Converte uma string de data formatada (ex: "09/05/2026") em um objeto Date.
31042
30965
  getDateFromFormattedString(dateStr, separator) {
31043
30966
  const format = this.format.replace(/\//g, separator);
31044
30967
  const dayIndex = format.indexOf('dd');
@@ -31060,7 +30983,6 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
31060
30983
  }
31061
30984
  return date;
31062
30985
  }
31063
- // Converte uma string de hora (ex: "14:30" ou "02:30 PM") em formato 24h "HH:mm" ou "HH:mm:ss".
31064
30986
  parseTimeFromInput(timeStr) {
31065
30987
  if (!timeStr) {
31066
30988
  return null;
@@ -31069,8 +30991,6 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
31069
30991
  }
31070
30992
  parse12HourTime(timeStr) {
31071
30993
  const periodMatch = /(AM|PM)$/i.exec(timeStr);
31072
- // Se o período está na string (ex: "02:30 PM"), usa-o diretamente.
31073
- // Caso contrário, usa o currentPeriod do input separado.
31074
30994
  const period = periodMatch ? periodMatch[1].toUpperCase() : this.currentPeriod;
31075
30995
  const timeOnly = periodMatch ? timeStr.replace(/(AM|PM)/i, '').trim() : timeStr.trim();
31076
30996
  const parts = timeOnly.split(':');
@@ -31126,6 +31046,9 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
31126
31046
  }
31127
31047
  return `${hoursStr}:${minutesStr}:${this.padTime(seconds)}`;
31128
31048
  }
31049
+ if (this.showSeconds()) {
31050
+ return null;
31051
+ }
31129
31052
  return `${hoursStr}:${minutesStr}`;
31130
31053
  }
31131
31054
  isValidSeconds(seconds) {
@@ -31134,15 +31057,43 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
31134
31057
  padTime(value) {
31135
31058
  return ('0' + value).slice(-2);
31136
31059
  }
31137
- // Sincroniza o calendário e o timer com os valores internos de date e timeValue.
31060
+ normalizeTimeWithSeconds(time) {
31061
+ if (!time || !this.showSeconds()) {
31062
+ return time;
31063
+ }
31064
+ const parts = time.split(':');
31065
+ if (parts.length === 2) {
31066
+ return `${time}:00`;
31067
+ }
31068
+ return time;
31069
+ }
31070
+ syncDateFromInput() {
31071
+ if (this.date) {
31072
+ return;
31073
+ }
31074
+ const inputValue = this.inputEl?.nativeElement?.value;
31075
+ if (!inputValue || inputValue.length < 10) {
31076
+ return;
31077
+ }
31078
+ const separator = this.languageService.getDateSeparator(this.localeInput());
31079
+ const fullParsed = this.parseDateTimeFromInput(inputValue);
31080
+ if (fullParsed) {
31081
+ this.date = fullParsed.date;
31082
+ this.timeValue = this.normalizeTimeWithSeconds(fullParsed.time);
31083
+ return;
31084
+ }
31085
+ const datePart = inputValue.substring(0, 10);
31086
+ const parsedDate = this.getDateFromFormattedString(datePart, separator);
31087
+ if (parsedDate) {
31088
+ this.date = parsedDate;
31089
+ }
31090
+ }
31138
31091
  syncCalendarAndTimer() {
31139
31092
  if (!this.calendarComponent) {
31140
31093
  return;
31141
31094
  }
31142
31095
  if (this.date) {
31143
- // Sincroniza o calendário com a data selecionada
31144
31096
  this.calendarComponent.writeValue(this.date);
31145
- // Sincroniza o timer com o horário
31146
31097
  if (this.calendarComponent.timerComponent && this.timeValue) {
31147
31098
  this.calendarComponent.timerComponent.writeValue(this.timeValue);
31148
31099
  }
@@ -31151,24 +31102,19 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
31151
31102
  }
31152
31103
  }
31153
31104
  else {
31154
- // Sem data válida — reseta o calendário e o timer
31155
31105
  this.calendarComponent.writeValue(null);
31156
31106
  if (this.calendarComponent.timerComponent) {
31157
31107
  this.calendarComponent.timerComponent.writeValue(null);
31158
31108
  }
31159
31109
  }
31160
31110
  }
31161
- // Retorna o comprimento mínimo esperado do input (sem formatação) para considerar completo.
31162
- // Formato 24h: ddmmyyyyHHmm = 12 chars (ou 14 com segundos)
31163
- // Formato 12h: ddmmyyyyHHmm = 12 chars (ou 14 com segundos) — AM/PM é sufixo fixo, não conta.
31164
31111
  getExpectedInputLength() {
31165
- let length = 12; // ddmmyyyy + HHmm
31112
+ let length = 16;
31166
31113
  if (this.showSeconds()) {
31167
- length += 2; // ss
31114
+ length += 3;
31168
31115
  }
31169
31116
  return length;
31170
31117
  }
31171
- // --- Position ---
31172
31118
  setCalendarPosition() {
31173
31119
  this.setDialogPickerStyleDisplay('block');
31174
31120
  this.adjustCalendarPosition();
@@ -31187,7 +31133,6 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
31187
31133
  });
31188
31134
  }
31189
31135
  }
31190
- // --- Listeners ---
31191
31136
  initializeListeners() {
31192
31137
  this.clickListener = this.renderer.listen('document', 'click', (event) => {
31193
31138
  this.wasClickedOnPicker(event);
@@ -31231,8 +31176,6 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
31231
31176
  this.onchange.emit(value);
31232
31177
  }
31233
31178
  }
31234
- // --- Período AM/PM (input separado) ---
31235
- // Chamado quando uma tecla é pressionada no input de período AM/PM.
31236
31179
  onPeriodKeydown(event) {
31237
31180
  if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {
31238
31181
  event.preventDefault();
@@ -31245,32 +31188,25 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
31245
31188
  event.preventDefault();
31246
31189
  return;
31247
31190
  }
31248
- // Shift+Tab: volta para o input principal
31249
31191
  if (event.key === 'Tab' && event.shiftKey) {
31250
31192
  event.preventDefault();
31251
31193
  this.focus();
31252
31194
  return;
31253
31195
  }
31254
- // Tab: avança para o clean ou botão do calendário
31255
31196
  if (event.key === 'Tab' && !event.shiftKey) {
31256
- // Permite o fluxo natural de tab (para clean/botão)
31257
31197
  return;
31258
31198
  }
31259
- // Bloqueia qualquer outra digitação (o período é read-only toggle)
31260
31199
  if (event.key.length === 1) {
31261
31200
  event.preventDefault();
31262
31201
  }
31263
31202
  }
31264
- // Chamado ao clicar no input de período AM/PM — alterna o período.
31265
31203
  onPeriodClick(event) {
31266
31204
  if (!this.isReadonly && !this.isDisabled) {
31267
31205
  this.togglePeriod();
31268
31206
  }
31269
31207
  }
31270
- // Alterna o período entre AM e PM e atualiza o model.
31271
31208
  togglePeriod() {
31272
31209
  this.currentPeriod = this.currentPeriod === 'AM' ? 'PM' : 'AM';
31273
- // Reparse o input para atualizar o model com o novo período
31274
31210
  const inputValue = this.inputEl.nativeElement.value;
31275
31211
  const minLength = this.getExpectedInputLength();
31276
31212
  if (this.objMask?.valueToModel && this.objMask.valueToModel.length >= minLength) {
@@ -31281,11 +31217,11 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
31281
31217
  }
31282
31218
  }
31283
31219
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoDatetimepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
31284
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: PoDatetimepickerComponent, isStandalone: false, selector: "po-datetimepicker", host: { listeners: { "keyup": "onKeyup($event)", "keydown": "onKeydown($event)" } }, providers: providers$6, viewQueries: [{ propertyName: "iconDatepicker", first: true, predicate: ["iconCalendar"], descendants: true }, { propertyName: "calendarComponent", first: true, predicate: ["calendar"], descendants: true }, { propertyName: "inputEl", first: true, predicate: ["inp"], descendants: true, read: ElementRef, static: true }, { propertyName: "iconClean", first: true, predicate: ["iconClean"], descendants: true, read: ElementRef }, { propertyName: "dialogPicker", first: true, predicate: ["dialogPicker"], descendants: true, read: ElementRef }, { propertyName: "helperEl", first: true, predicate: ["helperEl"], descendants: true, read: PoHelperComponent }, { propertyName: "datetimepickerField", first: true, predicate: ["datetimepickerField"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0, template: "@let poHelper = setHelper(label());\n<po-field-container\n [class.po-date-picker-container-disabled]=\"isDisabled\"\n [p-id]=\"id\"\n [p-label]=\"label()\"\n [p-disabled]=\"isDisabled\"\n [p-optional]=\"optional()\"\n [p-required]=\"isRequired\"\n [p-show-required]=\"showRequired()\"\n [p-helper]=\"label() ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label() ? displayAdditionalHelp : undefined\"\n [p-size]=\"hostSize\"\n [p-text-wrap]=\"labelTextWrap()\"\n [p-compact-label]=\"compactLabel()\"\n>\n <div #outerContainer>\n <div\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n class=\"po-field-container-content po-field-container-content-datetimepicker\"\n >\n <div class=\"po-field-container-input\">\n <div\n #datetimepickerField\n class=\"po-datetimepicker-field po-input\"\n [class.po-input-icon-right]=\"isClean && dateTimeInputValue && !isDisabled && !isReadonly\"\n [class.po-datetimepicker-field-disabled]=\"isDisabled\"\n [class.po-datetimepicker-field-readonly]=\"isReadonly\"\n [class.po-datetimepicker-field-focused]=\"isInputFocused\"\n [attr.data-inactive-component]=\"isDisabled || isReadonly\"\n [attr.p-size]=\"hostSize\"\n (keydown)=\"onFieldClick($event)\"\n (click)=\"onFieldClick($event)\"\n >\n <div\n class=\"po-datetimepicker-field-segment\"\n [attr.data-value]=\"dateTimeInputValue || placeholderValue || ' '\"\n >\n <input\n #inp\n type=\"text\"\n class=\"po-datetimepicker-inner-input\"\n [attr.data-focused-element]=\"!isDisabled\"\n [attr.name]=\"name()\"\n [id]=\"id\"\n [autocomplete]=\"isNoAutocomplete\"\n [disabled]=\"isDisabled\"\n [placeholder]=\"isDisabled ? '' : placeholderValue\"\n [readonly]=\"isReadonly\"\n [required]=\"isRequired\"\n [attr.data-append-in-body]=\"appendBox()\"\n (blur)=\"eventOnBlur($event)\"\n (click)=\"eventOnClick($event)\"\n (focus)=\"onInputFocus()\"\n />\n </div>\n @if (is12HourFormat && dateTimeInputValue) {\n <div\n class=\"po-datetimepicker-field-segment po-datetimepicker-field-period\"\n [attr.data-value]=\"currentPeriod\"\n >\n <input\n class=\"po-datetimepicker-segment-input po-datetimepicker-period-input\"\n type=\"text\"\n maxlength=\"2\"\n readonly\n [value]=\"currentPeriod\"\n [disabled]=\"isDisabled\"\n [attr.tabindex]=\"isDisabled || isReadonly ? -1 : 0\"\n role=\"spinbutton\"\n [attr.aria-label]=\"currentPeriod\"\n (keydown)=\"onPeriodKeydown($event)\"\n (click)=\"onPeriodClick($event)\"\n (focus)=\"onInputFocus()\"\n (blur)=\"onPeriodBlur()\"\n />\n </div>\n }\n @if (loading()) {\n <po-loading-icon [p-size]=\"mapSizeToIcon(hostSize)\"></po-loading-icon>\n } @else {\n <div class=\"po-field-icon-container-right\">\n @if (isClean && dateTimeInputValue && !isDisabled && !isReadonly) {\n <po-clean\n #iconClean\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"literals.clean\"\n class=\"po-icon-input\"\n p-icon=\"ICON_FILL_CLEAR_CONTENT\"\n [p-element-ref]=\"inputEl\"\n [p-size]=\"hostSize\"\n (p-change-event)=\"clear()\"\n (keydown.enter)=\"clear(true); $event.preventDefault()\"\n (keydown.space)=\"clear(true); $event.preventDefault()\"\n >\n </po-clean>\n <div class=\"po-button-vertical-divider\"></div>\n }\n <po-button\n #iconCalendar\n class=\"po-datetimepicker-button\"\n [class.po-button-tertiary-danger]=\"getErrorPattern()\"\n p-icon=\"ICON_CALENDAR_DOTS\"\n p-kind=\"tertiary\"\n [p-disabled]=\"isDisabled || isReadonly\"\n [p-size]=\"hostSize\"\n (p-click)=\"togglePicker(false)\"\n (keydown)=\"eventOnButtonKeydown($event)\"\n >\n </po-button>\n </div>\n }\n </div>\n </div>\n @if ((!this.label() && poHelperComponent()) || (!this.label() && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"hostSize\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"isDisabled\"\n [p-append-in-body]=\"appendBox()\"\n >\n </po-helper>\n }\n </div>\n\n @if (appendBox()) {\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"true\"\n [cdkConnectedOverlayDisableClose]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"sharedCalendarContent\"></ng-container>\n </ng-template>\n } @else {\n <ng-container *ngTemplateOutlet=\"sharedCalendarContent\"></ng-container>\n }\n </div>\n\n @if (!isReadonly) {\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox()\"\n [p-help]=\"help()\"\n [p-disabled]=\"isDisabled\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-error-limit]=\"errorLimit()\"\n [p-size]=\"hostSize\"\n ></po-field-container-bottom>\n }\n</po-field-container>\n\n<ng-template #sharedCalendarContent>\n <div #dialogPicker [class.po-datetimepicker-popup-calendar]=\"!verifyMobile()\" tabindex=\"-1\" [hidden]=\"!visible\">\n @if (verifyMobile()) {\n <div class=\"po-datetimepicker-calendar-overlay\"></div>\n }\n <po-calendar\n #calendar\n [class.po-datetimepicker-calendar-mobile]=\"verifyMobile()\"\n p-mode=\"date-time\"\n [p-size]=\"hostSize\"\n [p-locale]=\"locale\"\n [p-format]=\"resolvedTimerFormat\"\n [p-min-date]=\"resolvedMinDate\"\n [p-max-date]=\"resolvedMaxDate\"\n [p-max-time]=\"maxTime()\"\n [p-min-time]=\"minTime()\"\n [p-minute-interval]=\"minuteInterval()\"\n [p-second-interval]=\"secondInterval()\"\n [p-show-seconds]=\"showSeconds()\"\n (p-change)=\"onDateChange($event)\"\n (p-change-time)=\"onTimeChange($event)\"\n (p-change-month-year)=\"adjustCalendarPosition()\"\n (p-timer-boundary-tab)=\"onTimerBoundaryTab($event)\"\n (keydown)=\"eventOnCalendarKeydown($event)\"\n ></po-calendar>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation", "cdkConnectedOverlayUsePopover", "cdkConnectedOverlayMatchWidth", "cdkConnectedOverlay"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i2$1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: PoCleanComponent, selector: "po-clean" }, { kind: "component", type: PoHelperComponent, selector: "po-helper" }, { kind: "component", type: PoButtonComponent, selector: "po-button" }, { kind: "component", type: PoLoadingIconComponent, selector: "po-loading-icon", inputs: ["p-neutral-color", "p-size", "p-in-overlay"] }, { kind: "component", type: PoCalendarComponent, selector: "po-calendar" }, { kind: "component", type: PoFieldContainerBottomComponent, selector: "po-field-container-bottom", inputs: ["p-append-in-body", "p-disabled", "p-error-pattern", "p-error-limit", "p-help", "p-size", "p-helper", "p-show-helper"] }, { kind: "component", type: PoFieldContainerComponent, selector: "po-field-container", inputs: ["p-disabled", "p-id", "p-label", "p-help", "p-helper", "p-show-helper", "p-text-wrap", "p-optional", "p-required", "p-show-required", "p-size", "p-compact-label"] }] });
31220
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: PoDatetimepickerComponent, isStandalone: false, selector: "po-datetimepicker", host: { listeners: { "keyup": "onKeyup($event)", "keydown": "onKeydown($event)" } }, providers: providers$6, viewQueries: [{ propertyName: "iconDatepicker", first: true, predicate: ["iconCalendar"], descendants: true }, { propertyName: "calendarComponent", first: true, predicate: ["calendar"], descendants: true }, { propertyName: "inputEl", first: true, predicate: ["inp"], descendants: true, read: ElementRef, static: true }, { propertyName: "dialogPicker", first: true, predicate: ["dialogPicker"], descendants: true, read: ElementRef }, { propertyName: "helperEl", first: true, predicate: ["helperEl"], descendants: true, read: PoHelperComponent }, { propertyName: "datetimepickerField", first: true, predicate: ["datetimepickerField"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0, template: "@let poHelper = setHelper(label());\n<po-field-container\n [class.po-date-picker-container-disabled]=\"isDisabled\"\n [p-id]=\"id\"\n [p-label]=\"label()\"\n [p-disabled]=\"isDisabled\"\n [p-optional]=\"optional()\"\n [p-required]=\"isRequired\"\n [p-show-required]=\"showRequired()\"\n [p-helper]=\"label() ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label() ? displayAdditionalHelp : undefined\"\n [p-size]=\"hostSize\"\n [p-text-wrap]=\"labelTextWrap()\"\n [p-compact-label]=\"compactLabel()\"\n>\n <div #outerContainer>\n <div\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n class=\"po-field-container-content po-field-container-content-datetimepicker\"\n >\n <div class=\"po-field-container-input\">\n <div\n #datetimepickerField\n class=\"po-datetimepicker-field po-input\"\n [class.po-input-icon-right]=\"isClean && dateTimeInputValue && !isDisabled && !isReadonly\"\n [class.po-datetimepicker-field-disabled]=\"isDisabled\"\n [class.po-datetimepicker-field-readonly]=\"isReadonly\"\n [class.po-datetimepicker-field-focused]=\"isInputFocused\"\n [attr.data-inactive-component]=\"isDisabled || isReadonly\"\n [attr.p-size]=\"hostSize\"\n (keydown)=\"onFieldClick($event)\"\n (click)=\"onFieldClick($event)\"\n >\n <div\n class=\"po-datetimepicker-field-segment\"\n [attr.data-value]=\"dateTimeInputValue || placeholderValue || ' '\"\n >\n <input\n #inp\n type=\"text\"\n class=\"po-datetimepicker-inner-input\"\n [attr.data-focused-element]=\"!isDisabled\"\n [attr.name]=\"name()\"\n [id]=\"id\"\n [autocomplete]=\"isNoAutocomplete\"\n [disabled]=\"isDisabled\"\n [placeholder]=\"isDisabled ? '' : placeholderValue\"\n [readonly]=\"isReadonly\"\n [required]=\"isRequired\"\n [attr.data-append-in-body]=\"appendBox()\"\n (blur)=\"eventOnBlur($event)\"\n (click)=\"eventOnClick($event)\"\n (focus)=\"onInputFocus()\"\n />\n </div>\n @if (is12HourFormat && dateTimeInputValue) {\n <div\n class=\"po-datetimepicker-field-segment po-datetimepicker-field-period\"\n [attr.data-value]=\"currentPeriod\"\n >\n <input\n class=\"po-datetimepicker-segment-input po-datetimepicker-period-input\"\n type=\"text\"\n maxlength=\"2\"\n readonly\n [value]=\"currentPeriod\"\n [disabled]=\"isDisabled\"\n [attr.tabindex]=\"isDisabled || isReadonly ? -1 : 0\"\n role=\"spinbutton\"\n [attr.aria-label]=\"currentPeriod\"\n (keydown)=\"onPeriodKeydown($event)\"\n (click)=\"onPeriodClick($event)\"\n (focus)=\"onInputFocus()\"\n (blur)=\"onPeriodBlur()\"\n />\n </div>\n }\n @if (loading()) {\n <po-loading-icon [p-size]=\"mapSizeToIcon(hostSize)\"></po-loading-icon>\n } @else {\n <div class=\"po-field-icon-container-right\">\n @if (isClean && dateTimeInputValue && !isDisabled && !isReadonly) {\n <po-clean\n #iconClean\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"literals.clean\"\n class=\"po-icon-input\"\n p-icon=\"ICON_FILL_CLEAR_CONTENT\"\n [p-element-ref]=\"inputEl\"\n [p-size]=\"hostSize\"\n (p-change-event)=\"clear()\"\n (keydown.enter)=\"clear(true); $event.preventDefault()\"\n (keydown.space)=\"clear(true); $event.preventDefault()\"\n >\n </po-clean>\n <div class=\"po-button-vertical-divider\"></div>\n }\n <po-button\n #iconCalendar\n class=\"po-datetimepicker-button\"\n [class.po-button-tertiary-danger]=\"getErrorPattern()\"\n p-icon=\"ICON_CALENDAR_DOTS\"\n p-kind=\"tertiary\"\n [p-disabled]=\"isDisabled || isReadonly\"\n [p-size]=\"hostSize\"\n (p-click)=\"togglePicker(false)\"\n (keydown)=\"eventOnButtonKeydown($event)\"\n >\n </po-button>\n </div>\n }\n </div>\n </div>\n @if ((!this.label() && poHelperComponent()) || (!this.label() && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"hostSize\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"isDisabled\"\n [p-append-in-body]=\"appendBox()\"\n >\n </po-helper>\n }\n </div>\n\n @if (appendBox()) {\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"true\"\n [cdkConnectedOverlayDisableClose]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"sharedCalendarContent\"></ng-container>\n </ng-template>\n } @else {\n <ng-container *ngTemplateOutlet=\"sharedCalendarContent\"></ng-container>\n }\n </div>\n\n @if (!isReadonly) {\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox()\"\n [p-help]=\"help()\"\n [p-disabled]=\"isDisabled\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-error-limit]=\"errorLimit()\"\n [p-size]=\"hostSize\"\n ></po-field-container-bottom>\n }\n</po-field-container>\n\n<ng-template #sharedCalendarContent>\n <div #dialogPicker [class.po-datetimepicker-popup-calendar]=\"!verifyMobile()\" tabindex=\"-1\" [hidden]=\"!visible\">\n @if (verifyMobile()) {\n <div class=\"po-datetimepicker-calendar-overlay\"></div>\n }\n <po-calendar\n #calendar\n [class.po-datetimepicker-calendar-mobile]=\"verifyMobile()\"\n p-mode=\"date-time\"\n [p-size]=\"hostSize\"\n [p-locale]=\"locale\"\n [p-format]=\"resolvedTimerFormat\"\n [p-min-date]=\"resolvedMinDate\"\n [p-max-date]=\"resolvedMaxDate\"\n [p-max-time]=\"maxTime()\"\n [p-min-time]=\"minTime()\"\n [p-minute-interval]=\"minuteInterval()\"\n [p-second-interval]=\"secondInterval()\"\n [p-show-seconds]=\"showSeconds()\"\n (p-change)=\"onDateChange($event)\"\n (p-change-time)=\"onTimeChange($event)\"\n (p-close)=\"onCalendarClose()\"\n (p-change-month-year)=\"adjustCalendarPosition()\"\n (p-timer-boundary-tab)=\"onTimerBoundaryTab($event)\"\n (keydown)=\"eventOnCalendarKeydown($event)\"\n ></po-calendar>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation", "cdkConnectedOverlayUsePopover", "cdkConnectedOverlayMatchWidth", "cdkConnectedOverlay"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i2$1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: PoCleanComponent, selector: "po-clean" }, { kind: "component", type: PoHelperComponent, selector: "po-helper" }, { kind: "component", type: PoButtonComponent, selector: "po-button" }, { kind: "component", type: PoLoadingIconComponent, selector: "po-loading-icon", inputs: ["p-neutral-color", "p-size", "p-in-overlay"] }, { kind: "component", type: PoCalendarComponent, selector: "po-calendar" }, { kind: "component", type: PoFieldContainerBottomComponent, selector: "po-field-container-bottom", inputs: ["p-append-in-body", "p-disabled", "p-error-pattern", "p-error-limit", "p-help", "p-size", "p-helper", "p-show-helper"] }, { kind: "component", type: PoFieldContainerComponent, selector: "po-field-container", inputs: ["p-disabled", "p-id", "p-label", "p-help", "p-helper", "p-show-helper", "p-text-wrap", "p-optional", "p-required", "p-show-required", "p-size", "p-compact-label"] }] });
31285
31221
  }
31286
31222
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoDatetimepickerComponent, decorators: [{
31287
31223
  type: Component,
31288
- args: [{ selector: 'po-datetimepicker', providers: providers$6, standalone: false, template: "@let poHelper = setHelper(label());\n<po-field-container\n [class.po-date-picker-container-disabled]=\"isDisabled\"\n [p-id]=\"id\"\n [p-label]=\"label()\"\n [p-disabled]=\"isDisabled\"\n [p-optional]=\"optional()\"\n [p-required]=\"isRequired\"\n [p-show-required]=\"showRequired()\"\n [p-helper]=\"label() ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label() ? displayAdditionalHelp : undefined\"\n [p-size]=\"hostSize\"\n [p-text-wrap]=\"labelTextWrap()\"\n [p-compact-label]=\"compactLabel()\"\n>\n <div #outerContainer>\n <div\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n class=\"po-field-container-content po-field-container-content-datetimepicker\"\n >\n <div class=\"po-field-container-input\">\n <div\n #datetimepickerField\n class=\"po-datetimepicker-field po-input\"\n [class.po-input-icon-right]=\"isClean && dateTimeInputValue && !isDisabled && !isReadonly\"\n [class.po-datetimepicker-field-disabled]=\"isDisabled\"\n [class.po-datetimepicker-field-readonly]=\"isReadonly\"\n [class.po-datetimepicker-field-focused]=\"isInputFocused\"\n [attr.data-inactive-component]=\"isDisabled || isReadonly\"\n [attr.p-size]=\"hostSize\"\n (keydown)=\"onFieldClick($event)\"\n (click)=\"onFieldClick($event)\"\n >\n <div\n class=\"po-datetimepicker-field-segment\"\n [attr.data-value]=\"dateTimeInputValue || placeholderValue || ' '\"\n >\n <input\n #inp\n type=\"text\"\n class=\"po-datetimepicker-inner-input\"\n [attr.data-focused-element]=\"!isDisabled\"\n [attr.name]=\"name()\"\n [id]=\"id\"\n [autocomplete]=\"isNoAutocomplete\"\n [disabled]=\"isDisabled\"\n [placeholder]=\"isDisabled ? '' : placeholderValue\"\n [readonly]=\"isReadonly\"\n [required]=\"isRequired\"\n [attr.data-append-in-body]=\"appendBox()\"\n (blur)=\"eventOnBlur($event)\"\n (click)=\"eventOnClick($event)\"\n (focus)=\"onInputFocus()\"\n />\n </div>\n @if (is12HourFormat && dateTimeInputValue) {\n <div\n class=\"po-datetimepicker-field-segment po-datetimepicker-field-period\"\n [attr.data-value]=\"currentPeriod\"\n >\n <input\n class=\"po-datetimepicker-segment-input po-datetimepicker-period-input\"\n type=\"text\"\n maxlength=\"2\"\n readonly\n [value]=\"currentPeriod\"\n [disabled]=\"isDisabled\"\n [attr.tabindex]=\"isDisabled || isReadonly ? -1 : 0\"\n role=\"spinbutton\"\n [attr.aria-label]=\"currentPeriod\"\n (keydown)=\"onPeriodKeydown($event)\"\n (click)=\"onPeriodClick($event)\"\n (focus)=\"onInputFocus()\"\n (blur)=\"onPeriodBlur()\"\n />\n </div>\n }\n @if (loading()) {\n <po-loading-icon [p-size]=\"mapSizeToIcon(hostSize)\"></po-loading-icon>\n } @else {\n <div class=\"po-field-icon-container-right\">\n @if (isClean && dateTimeInputValue && !isDisabled && !isReadonly) {\n <po-clean\n #iconClean\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"literals.clean\"\n class=\"po-icon-input\"\n p-icon=\"ICON_FILL_CLEAR_CONTENT\"\n [p-element-ref]=\"inputEl\"\n [p-size]=\"hostSize\"\n (p-change-event)=\"clear()\"\n (keydown.enter)=\"clear(true); $event.preventDefault()\"\n (keydown.space)=\"clear(true); $event.preventDefault()\"\n >\n </po-clean>\n <div class=\"po-button-vertical-divider\"></div>\n }\n <po-button\n #iconCalendar\n class=\"po-datetimepicker-button\"\n [class.po-button-tertiary-danger]=\"getErrorPattern()\"\n p-icon=\"ICON_CALENDAR_DOTS\"\n p-kind=\"tertiary\"\n [p-disabled]=\"isDisabled || isReadonly\"\n [p-size]=\"hostSize\"\n (p-click)=\"togglePicker(false)\"\n (keydown)=\"eventOnButtonKeydown($event)\"\n >\n </po-button>\n </div>\n }\n </div>\n </div>\n @if ((!this.label() && poHelperComponent()) || (!this.label() && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"hostSize\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"isDisabled\"\n [p-append-in-body]=\"appendBox()\"\n >\n </po-helper>\n }\n </div>\n\n @if (appendBox()) {\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"true\"\n [cdkConnectedOverlayDisableClose]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"sharedCalendarContent\"></ng-container>\n </ng-template>\n } @else {\n <ng-container *ngTemplateOutlet=\"sharedCalendarContent\"></ng-container>\n }\n </div>\n\n @if (!isReadonly) {\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox()\"\n [p-help]=\"help()\"\n [p-disabled]=\"isDisabled\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-error-limit]=\"errorLimit()\"\n [p-size]=\"hostSize\"\n ></po-field-container-bottom>\n }\n</po-field-container>\n\n<ng-template #sharedCalendarContent>\n <div #dialogPicker [class.po-datetimepicker-popup-calendar]=\"!verifyMobile()\" tabindex=\"-1\" [hidden]=\"!visible\">\n @if (verifyMobile()) {\n <div class=\"po-datetimepicker-calendar-overlay\"></div>\n }\n <po-calendar\n #calendar\n [class.po-datetimepicker-calendar-mobile]=\"verifyMobile()\"\n p-mode=\"date-time\"\n [p-size]=\"hostSize\"\n [p-locale]=\"locale\"\n [p-format]=\"resolvedTimerFormat\"\n [p-min-date]=\"resolvedMinDate\"\n [p-max-date]=\"resolvedMaxDate\"\n [p-max-time]=\"maxTime()\"\n [p-min-time]=\"minTime()\"\n [p-minute-interval]=\"minuteInterval()\"\n [p-second-interval]=\"secondInterval()\"\n [p-show-seconds]=\"showSeconds()\"\n (p-change)=\"onDateChange($event)\"\n (p-change-time)=\"onTimeChange($event)\"\n (p-change-month-year)=\"adjustCalendarPosition()\"\n (p-timer-boundary-tab)=\"onTimerBoundaryTab($event)\"\n (keydown)=\"eventOnCalendarKeydown($event)\"\n ></po-calendar>\n </div>\n</ng-template>\n" }]
31224
+ args: [{ selector: 'po-datetimepicker', providers: providers$6, standalone: false, template: "@let poHelper = setHelper(label());\n<po-field-container\n [class.po-date-picker-container-disabled]=\"isDisabled\"\n [p-id]=\"id\"\n [p-label]=\"label()\"\n [p-disabled]=\"isDisabled\"\n [p-optional]=\"optional()\"\n [p-required]=\"isRequired\"\n [p-show-required]=\"showRequired()\"\n [p-helper]=\"label() ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label() ? displayAdditionalHelp : undefined\"\n [p-size]=\"hostSize\"\n [p-text-wrap]=\"labelTextWrap()\"\n [p-compact-label]=\"compactLabel()\"\n>\n <div #outerContainer>\n <div\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n class=\"po-field-container-content po-field-container-content-datetimepicker\"\n >\n <div class=\"po-field-container-input\">\n <div\n #datetimepickerField\n class=\"po-datetimepicker-field po-input\"\n [class.po-input-icon-right]=\"isClean && dateTimeInputValue && !isDisabled && !isReadonly\"\n [class.po-datetimepicker-field-disabled]=\"isDisabled\"\n [class.po-datetimepicker-field-readonly]=\"isReadonly\"\n [class.po-datetimepicker-field-focused]=\"isInputFocused\"\n [attr.data-inactive-component]=\"isDisabled || isReadonly\"\n [attr.p-size]=\"hostSize\"\n (keydown)=\"onFieldClick($event)\"\n (click)=\"onFieldClick($event)\"\n >\n <div\n class=\"po-datetimepicker-field-segment\"\n [attr.data-value]=\"dateTimeInputValue || placeholderValue || ' '\"\n >\n <input\n #inp\n type=\"text\"\n class=\"po-datetimepicker-inner-input\"\n [attr.data-focused-element]=\"!isDisabled\"\n [attr.name]=\"name()\"\n [id]=\"id\"\n [autocomplete]=\"isNoAutocomplete\"\n [disabled]=\"isDisabled\"\n [placeholder]=\"isDisabled ? '' : placeholderValue\"\n [readonly]=\"isReadonly\"\n [required]=\"isRequired\"\n [attr.data-append-in-body]=\"appendBox()\"\n (blur)=\"eventOnBlur($event)\"\n (click)=\"eventOnClick($event)\"\n (focus)=\"onInputFocus()\"\n />\n </div>\n @if (is12HourFormat && dateTimeInputValue) {\n <div\n class=\"po-datetimepicker-field-segment po-datetimepicker-field-period\"\n [attr.data-value]=\"currentPeriod\"\n >\n <input\n class=\"po-datetimepicker-segment-input po-datetimepicker-period-input\"\n type=\"text\"\n maxlength=\"2\"\n readonly\n [value]=\"currentPeriod\"\n [disabled]=\"isDisabled\"\n [attr.tabindex]=\"isDisabled || isReadonly ? -1 : 0\"\n role=\"spinbutton\"\n [attr.aria-label]=\"currentPeriod\"\n (keydown)=\"onPeriodKeydown($event)\"\n (click)=\"onPeriodClick($event)\"\n (focus)=\"onInputFocus()\"\n (blur)=\"onPeriodBlur()\"\n />\n </div>\n }\n @if (loading()) {\n <po-loading-icon [p-size]=\"mapSizeToIcon(hostSize)\"></po-loading-icon>\n } @else {\n <div class=\"po-field-icon-container-right\">\n @if (isClean && dateTimeInputValue && !isDisabled && !isReadonly) {\n <po-clean\n #iconClean\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"literals.clean\"\n class=\"po-icon-input\"\n p-icon=\"ICON_FILL_CLEAR_CONTENT\"\n [p-element-ref]=\"inputEl\"\n [p-size]=\"hostSize\"\n (p-change-event)=\"clear()\"\n (keydown.enter)=\"clear(true); $event.preventDefault()\"\n (keydown.space)=\"clear(true); $event.preventDefault()\"\n >\n </po-clean>\n <div class=\"po-button-vertical-divider\"></div>\n }\n <po-button\n #iconCalendar\n class=\"po-datetimepicker-button\"\n [class.po-button-tertiary-danger]=\"getErrorPattern()\"\n p-icon=\"ICON_CALENDAR_DOTS\"\n p-kind=\"tertiary\"\n [p-disabled]=\"isDisabled || isReadonly\"\n [p-size]=\"hostSize\"\n (p-click)=\"togglePicker(false)\"\n (keydown)=\"eventOnButtonKeydown($event)\"\n >\n </po-button>\n </div>\n }\n </div>\n </div>\n @if ((!this.label() && poHelperComponent()) || (!this.label() && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"hostSize\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"isDisabled\"\n [p-append-in-body]=\"appendBox()\"\n >\n </po-helper>\n }\n </div>\n\n @if (appendBox()) {\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"true\"\n [cdkConnectedOverlayDisableClose]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"sharedCalendarContent\"></ng-container>\n </ng-template>\n } @else {\n <ng-container *ngTemplateOutlet=\"sharedCalendarContent\"></ng-container>\n }\n </div>\n\n @if (!isReadonly) {\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox()\"\n [p-help]=\"help()\"\n [p-disabled]=\"isDisabled\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-error-limit]=\"errorLimit()\"\n [p-size]=\"hostSize\"\n ></po-field-container-bottom>\n }\n</po-field-container>\n\n<ng-template #sharedCalendarContent>\n <div #dialogPicker [class.po-datetimepicker-popup-calendar]=\"!verifyMobile()\" tabindex=\"-1\" [hidden]=\"!visible\">\n @if (verifyMobile()) {\n <div class=\"po-datetimepicker-calendar-overlay\"></div>\n }\n <po-calendar\n #calendar\n [class.po-datetimepicker-calendar-mobile]=\"verifyMobile()\"\n p-mode=\"date-time\"\n [p-size]=\"hostSize\"\n [p-locale]=\"locale\"\n [p-format]=\"resolvedTimerFormat\"\n [p-min-date]=\"resolvedMinDate\"\n [p-max-date]=\"resolvedMaxDate\"\n [p-max-time]=\"maxTime()\"\n [p-min-time]=\"minTime()\"\n [p-minute-interval]=\"minuteInterval()\"\n [p-second-interval]=\"secondInterval()\"\n [p-show-seconds]=\"showSeconds()\"\n (p-change)=\"onDateChange($event)\"\n (p-change-time)=\"onTimeChange($event)\"\n (p-close)=\"onCalendarClose()\"\n (p-change-month-year)=\"adjustCalendarPosition()\"\n (p-timer-boundary-tab)=\"onTimerBoundaryTab($event)\"\n (keydown)=\"eventOnCalendarKeydown($event)\"\n ></po-calendar>\n </div>\n</ng-template>\n" }]
31289
31225
  }], ctorParameters: () => [], propDecorators: { iconDatepicker: [{
31290
31226
  type: ViewChild,
31291
31227
  args: ['iconCalendar']
@@ -31295,9 +31231,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
31295
31231
  }], inputEl: [{
31296
31232
  type: ViewChild,
31297
31233
  args: ['inp', { read: ElementRef, static: true }]
31298
- }], iconClean: [{
31299
- type: ViewChild,
31300
- args: ['iconClean', { read: ElementRef }]
31301
31234
  }], dialogPicker: [{
31302
31235
  type: ViewChild,
31303
31236
  args: ['dialogPicker', { read: ElementRef, static: false }]
@@ -32238,6 +32171,15 @@ class PoTimepickerComponent extends PoTimepickerBaseComponent {
32238
32171
  get isPlaceholder() {
32239
32172
  return !this.hourDisplay && !this.minuteDisplay && (!this.showSeconds || !this.secondDisplay);
32240
32173
  }
32174
+ get showSeparator() {
32175
+ if (!this.placeholder?.trim()) {
32176
+ return true;
32177
+ }
32178
+ if (this.hasValue()) {
32179
+ return true;
32180
+ }
32181
+ return this.placeholder.includes(':');
32182
+ }
32241
32183
  get customPlaceholderSegments() {
32242
32184
  if (!this.placeholder?.trim()) {
32243
32185
  return [];
@@ -33275,7 +33217,7 @@ class PoTimepickerComponent extends PoTimepickerBaseComponent {
33275
33217
  multi: true
33276
33218
  },
33277
33219
  PoControlPositionService
33278
- ], viewQueries: [{ propertyName: "dialogPicker", first: true, predicate: ["dialogPicker"], descendants: true, read: ElementRef }, { propertyName: "iconTimepicker", first: true, predicate: ["iconTimepicker"], descendants: true }, { propertyName: "inputEl", first: true, predicate: ["inp"], descendants: true, read: ElementRef, static: true }, { propertyName: "minuteInputEl", first: true, predicate: ["minuteInput"], descendants: true, read: ElementRef }, { propertyName: "secondInputEl", first: true, predicate: ["secondInput"], descendants: true, read: ElementRef }, { propertyName: "timepickerFieldEl", first: true, predicate: ["timepickerField"], descendants: true, read: ElementRef }, { propertyName: "iconClean", first: true, predicate: ["iconClean"], descendants: true, read: ElementRef }, { propertyName: "helperEl", first: true, predicate: ["helperEl"], descendants: true, read: PoHelperComponent }, { propertyName: "timerComponent", first: true, predicate: ["timer"], descendants: true }, { propertyName: "periodInputEl", first: true, predicate: ["periodInput"], descendants: true, read: ElementRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@let poHelper = setHelper(label);\n<po-field-container\n [class.po-timepicker-container-disabled]=\"isDisabled\"\n [p-disabled]=\"isDisabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n [p-compact-label]=\"compactLabel()\"\n>\n <div #outerContainer>\n <div cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\" class=\"po-field-container-content\">\n <div class=\"po-field-container-input\">\n <div\n #timepickerField\n class=\"po-timepicker-field po-input\"\n [class.po-input-icon-right]=\"clean && hasValue() && !isDisabled\"\n [class.po-timepicker-field-disabled]=\"isDisabled\"\n [class.po-timepicker-field-readonly]=\"readonly\"\n [class.po-timepicker-field-focused]=\"isSegmentFocused\"\n [class.po-timepicker-field-placeholder]=\"isPlaceholder\"\n [attr.data-inactive-component]=\"isDisabled || readonly\"\n [attr.p-size]=\"size\"\n [attr.data-append-in-body]=\"appendBox\"\n [attr.aria-label]=\"label || literals.field\"\n role=\"group\"\n (click)=\"onFieldClick($event)\"\n (keydown)=\"onKeyDown($event)\"\n >\n <div class=\"po-timepicker-field-segment\" [attr.data-value]=\"hourDisplay || hourPlaceholder || ' '\">\n <input\n #inp\n class=\"po-timepicker-segment-input\"\n maxlength=\"2\"\n type=\"text\"\n inputmode=\"numeric\"\n role=\"spinbutton\"\n [attr.aria-label]=\"literals.hour\"\n [attr.aria-valuenow]=\"hourDisplay ? +hourDisplay : null\"\n [attr.aria-valuemin]=\"is12HourFormat ? 1 : 0\"\n [attr.aria-valuemax]=\"is12HourFormat ? 12 : 23\"\n [attr.aria-valuetext]=\"hourDisplay || null\"\n [attr.data-focused-element]=\"!isDisabled\"\n [attr.name]=\"name\"\n [autocomplete]=\"autocomplete\"\n [disabled]=\"isDisabled\"\n [id]=\"id\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [placeholder]=\"isDisabled ? '' : hourPlaceholder\"\n (input)=\"onSegmentInput($event, 'hour')\"\n (blur)=\"onSegmentBlur($event)\"\n (focus)=\"onSegmentFocus()\"\n (click)=\"eventOnClick($event)\"\n (keydown)=\"onSegmentKeydown($event, 'hour')\"\n />\n </div>\n\n <div class=\"po-timepicker-field-separator\">:</div>\n\n <div class=\"po-timepicker-field-segment\" [attr.data-value]=\"minuteDisplay || minutePlaceholder || ' '\">\n <input\n #minuteInput\n class=\"po-timepicker-segment-input\"\n maxlength=\"2\"\n type=\"text\"\n inputmode=\"numeric\"\n role=\"spinbutton\"\n [attr.aria-label]=\"literals.minute\"\n [attr.aria-valuenow]=\"minuteDisplay ? +minuteDisplay : null\"\n aria-valuemin=\"0\"\n aria-valuemax=\"59\"\n [attr.aria-valuetext]=\"minuteDisplay || null\"\n [disabled]=\"isDisabled\"\n [readonly]=\"readonly\"\n [placeholder]=\"isDisabled ? '' : minutePlaceholder\"\n (input)=\"onSegmentInput($event, 'minute')\"\n (blur)=\"onSegmentBlur($event)\"\n (focus)=\"onSegmentFocus()\"\n (click)=\"eventOnClick($event)\"\n (keydown)=\"onSegmentKeydown($event, 'minute')\"\n />\n </div>\n\n @if (showSeconds) {\n <div class=\"po-timepicker-field-separator\">:</div>\n\n <div class=\"po-timepicker-field-segment\" [attr.data-value]=\"secondDisplay || secondPlaceholder || ' '\">\n <input\n #secondInput\n class=\"po-timepicker-segment-input\"\n maxlength=\"2\"\n type=\"text\"\n inputmode=\"numeric\"\n role=\"spinbutton\"\n [attr.aria-label]=\"literals.second\"\n [attr.aria-valuenow]=\"secondDisplay ? +secondDisplay : null\"\n aria-valuemin=\"0\"\n aria-valuemax=\"59\"\n [attr.aria-valuetext]=\"secondDisplay || null\"\n [disabled]=\"isDisabled\"\n [readonly]=\"readonly\"\n [placeholder]=\"isDisabled ? '' : secondPlaceholder\"\n (input)=\"onSegmentInput($event, 'second')\"\n (blur)=\"onSegmentBlur($event)\"\n (focus)=\"onSegmentFocus()\"\n (click)=\"eventOnClick($event)\"\n (keydown)=\"onSegmentKeydown($event, 'second')\"\n />\n </div>\n }\n\n @if (is12HourFormat) {\n <div\n class=\"po-timepicker-field-segment po-timepicker-field-period\"\n [attr.data-value]=\"periodDisplay || 'AM'\"\n >\n <input\n #periodInput\n class=\"po-timepicker-segment-input po-timepicker-period-input\"\n maxlength=\"2\"\n type=\"text\"\n [value]=\"periodDisplay || 'AM'\"\n [disabled]=\"isDisabled\"\n [attr.tabindex]=\"isDisabled || readonly ? -1 : 0\"\n role=\"spinbutton\"\n [attr.aria-label]=\"periodDisplay || 'AM'\"\n (keydown)=\"onPeriodSegmentKeydown($event)\"\n (click)=\"onPeriodSegmentClick($event)\"\n (blur)=\"onSegmentBlur($event)\"\n (focus)=\"onSegmentFocus()\"\n />\n </div>\n }\n\n @if (loading) {\n <po-loading-icon [p-size]=\"mapSizeToIcon(size)\"></po-loading-icon>\n } @else {\n <div class=\"po-field-icon-container-right\">\n @if (clean && hasValue() && !isDisabled && !readonly) {\n <po-clean\n #iconClean\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"literals.clean\"\n class=\"po-icon-input\"\n p-icon=\"ICON_FILL_CLEAR_CONTENT\"\n [p-element-ref]=\"cleanElementRef\"\n [p-size]=\"size\"\n (p-change-event)=\"clear()\"\n (keydown)=\"handleCleanKeyboardTab($event)\"\n (keydown.enter)=\"clearAndFocus(); $event.preventDefault()\"\n (keydown.space)=\"clearAndFocus(); $event.preventDefault()\"\n >\n </po-clean>\n <div class=\"po-button-vertical-divider\"></div>\n }\n <po-button\n #iconTimepicker\n class=\"po-timepicker-button\"\n [class.po-button-tertiary-danger]=\"getErrorPattern()\"\n p-icon=\"ICON_CLOCK\"\n p-kind=\"tertiary\"\n [p-aria-label]=\"literals.open\"\n [p-disabled]=\"isDisabled || readonly\"\n [p-size]=\"size\"\n (keydown)=\"onKeyPress($event)\"\n (keydown.tab)=\"handleTimepickerButtonKeyboardTab($event)\"\n (p-click)=\"togglePicker(false)\"\n >\n </po-button>\n </div>\n }\n </div>\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"isDisabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n\n @if (appendBox) {\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"true\"\n [cdkConnectedOverlayDisableClose]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"sharedTimerContent\"></ng-container>\n </ng-template>\n } @else {\n <ng-container *ngTemplateOutlet=\"sharedTimerContent\"></ng-container>\n }\n\n <ng-template #sharedTimerContent>\n @if (visible) {\n <div #dialogPicker [class.po-timepicker-popup-timer]=\"!verifyMobile()\" tabindex=\"-1\">\n @if (verifyMobile()) {\n <div class=\"po-timepicker-timer-overlay\"></div>\n }\n <po-timer\n #timer\n [class.po-timepicker-timer-mobile]=\"verifyMobile()\"\n [p-format]=\"format\"\n [p-locale]=\"locale\"\n [p-show-seconds]=\"showSeconds\"\n [p-minute-interval]=\"minuteInterval\"\n [p-second-interval]=\"secondInterval\"\n [p-min-time]=\"minTime\"\n [p-max-time]=\"maxTime\"\n [p-size]=\"size\"\n [p-value]=\"timeValue\"\n (p-change)=\"timerSelected($event)\"\n (p-boundary-tab)=\"onTimerBoundaryTab($event)\"\n (keydown)=\"onTimerKeyDown($event)\"\n (focusout)=\"onTimerFocusOut($event)\"\n ></po-timer>\n </div>\n }\n </ng-template>\n\n <span class=\"po-sr-only\" aria-live=\"polite\" aria-atomic=\"true\">{{ ariaLiveMessage }}</span>\n </div>\n\n @if (!readonly) {\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"isDisabled\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-error-limit]=\"errorLimit\"\n [p-size]=\"size\"\n ></po-field-container-bottom>\n }\n</po-field-container>\n", dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PoFieldContainerBottomComponent, selector: "po-field-container-bottom", inputs: ["p-append-in-body", "p-disabled", "p-error-pattern", "p-error-limit", "p-help", "p-size", "p-helper", "p-show-helper"] }, { kind: "component", type: PoFieldContainerComponent, selector: "po-field-container", inputs: ["p-disabled", "p-id", "p-label", "p-help", "p-helper", "p-show-helper", "p-text-wrap", "p-optional", "p-required", "p-show-required", "p-size", "p-compact-label"] }, { kind: "directive", type: i2$1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation", "cdkConnectedOverlayUsePopover", "cdkConnectedOverlayMatchWidth", "cdkConnectedOverlay"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i2$1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: PoCleanComponent, selector: "po-clean" }, { kind: "component", type: PoLoadingIconComponent, selector: "po-loading-icon", inputs: ["p-neutral-color", "p-size", "p-in-overlay"] }, { kind: "component", type: PoTimerComponent, selector: "po-timer", outputs: ["p-boundary-tab"] }, { kind: "component", type: PoButtonComponent, selector: "po-button" }, { kind: "component", type: PoHelperComponent, selector: "po-helper" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
33220
+ ], viewQueries: [{ propertyName: "dialogPicker", first: true, predicate: ["dialogPicker"], descendants: true, read: ElementRef }, { propertyName: "iconTimepicker", first: true, predicate: ["iconTimepicker"], descendants: true }, { propertyName: "inputEl", first: true, predicate: ["inp"], descendants: true, read: ElementRef, static: true }, { propertyName: "minuteInputEl", first: true, predicate: ["minuteInput"], descendants: true, read: ElementRef }, { propertyName: "secondInputEl", first: true, predicate: ["secondInput"], descendants: true, read: ElementRef }, { propertyName: "timepickerFieldEl", first: true, predicate: ["timepickerField"], descendants: true, read: ElementRef }, { propertyName: "iconClean", first: true, predicate: ["iconClean"], descendants: true, read: ElementRef }, { propertyName: "helperEl", first: true, predicate: ["helperEl"], descendants: true, read: PoHelperComponent }, { propertyName: "timerComponent", first: true, predicate: ["timer"], descendants: true }, { propertyName: "periodInputEl", first: true, predicate: ["periodInput"], descendants: true, read: ElementRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@let poHelper = setHelper(label);\n<po-field-container\n [class.po-timepicker-container-disabled]=\"isDisabled\"\n [p-disabled]=\"isDisabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n [p-compact-label]=\"compactLabel()\"\n>\n <div #outerContainer>\n <div cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\" class=\"po-field-container-content\">\n <div class=\"po-field-container-input\">\n <div\n #timepickerField\n class=\"po-timepicker-field po-input\"\n [class.po-input-icon-right]=\"clean && hasValue() && !isDisabled\"\n [class.po-timepicker-field-disabled]=\"isDisabled\"\n [class.po-timepicker-field-readonly]=\"readonly\"\n [class.po-timepicker-field-focused]=\"isSegmentFocused\"\n [class.po-timepicker-field-placeholder]=\"isPlaceholder\"\n [attr.data-inactive-component]=\"isDisabled || readonly\"\n [attr.p-size]=\"size\"\n [attr.data-append-in-body]=\"appendBox\"\n [attr.aria-label]=\"label || literals.field\"\n role=\"group\"\n (click)=\"onFieldClick($event)\"\n (keydown)=\"onKeyDown($event)\"\n >\n <div class=\"po-timepicker-field-segment\" [attr.data-value]=\"hourDisplay || hourPlaceholder || ' '\">\n <input\n #inp\n class=\"po-timepicker-segment-input\"\n maxlength=\"2\"\n type=\"text\"\n inputmode=\"numeric\"\n role=\"spinbutton\"\n [attr.aria-label]=\"literals.hour\"\n [attr.aria-valuenow]=\"hourDisplay ? +hourDisplay : null\"\n [attr.aria-valuemin]=\"is12HourFormat ? 1 : 0\"\n [attr.aria-valuemax]=\"is12HourFormat ? 12 : 23\"\n [attr.aria-valuetext]=\"hourDisplay || null\"\n [attr.data-focused-element]=\"!isDisabled\"\n [attr.name]=\"name\"\n [autocomplete]=\"autocomplete\"\n [disabled]=\"isDisabled\"\n [id]=\"id\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [placeholder]=\"isDisabled ? '' : hourPlaceholder\"\n (input)=\"onSegmentInput($event, 'hour')\"\n (blur)=\"onSegmentBlur($event)\"\n (focus)=\"onSegmentFocus()\"\n (click)=\"eventOnClick($event)\"\n (keydown)=\"onSegmentKeydown($event, 'hour')\"\n />\n </div>\n\n <div class=\"po-timepicker-field-separator\" [class.po-timepicker-field-separator-hidden]=\"!showSeparator\">\n :\n </div>\n\n <div class=\"po-timepicker-field-segment\" [attr.data-value]=\"minuteDisplay || minutePlaceholder || ' '\">\n <input\n #minuteInput\n class=\"po-timepicker-segment-input\"\n maxlength=\"2\"\n type=\"text\"\n inputmode=\"numeric\"\n role=\"spinbutton\"\n [attr.aria-label]=\"literals.minute\"\n [attr.aria-valuenow]=\"minuteDisplay ? +minuteDisplay : null\"\n aria-valuemin=\"0\"\n aria-valuemax=\"59\"\n [attr.aria-valuetext]=\"minuteDisplay || null\"\n [disabled]=\"isDisabled\"\n [readonly]=\"readonly\"\n [placeholder]=\"isDisabled ? '' : minutePlaceholder\"\n (input)=\"onSegmentInput($event, 'minute')\"\n (blur)=\"onSegmentBlur($event)\"\n (focus)=\"onSegmentFocus()\"\n (click)=\"eventOnClick($event)\"\n (keydown)=\"onSegmentKeydown($event, 'minute')\"\n />\n </div>\n\n @if (showSeconds) {\n <div class=\"po-timepicker-field-separator\" [class.po-timepicker-field-separator-hidden]=\"!showSeparator\">\n :\n </div>\n\n <div class=\"po-timepicker-field-segment\" [attr.data-value]=\"secondDisplay || secondPlaceholder || ' '\">\n <input\n #secondInput\n class=\"po-timepicker-segment-input\"\n maxlength=\"2\"\n type=\"text\"\n inputmode=\"numeric\"\n role=\"spinbutton\"\n [attr.aria-label]=\"literals.second\"\n [attr.aria-valuenow]=\"secondDisplay ? +secondDisplay : null\"\n aria-valuemin=\"0\"\n aria-valuemax=\"59\"\n [attr.aria-valuetext]=\"secondDisplay || null\"\n [disabled]=\"isDisabled\"\n [readonly]=\"readonly\"\n [placeholder]=\"isDisabled ? '' : secondPlaceholder\"\n (input)=\"onSegmentInput($event, 'second')\"\n (blur)=\"onSegmentBlur($event)\"\n (focus)=\"onSegmentFocus()\"\n (click)=\"eventOnClick($event)\"\n (keydown)=\"onSegmentKeydown($event, 'second')\"\n />\n </div>\n }\n\n @if (is12HourFormat && hasValue()) {\n <div\n class=\"po-timepicker-field-segment po-timepicker-field-period\"\n [attr.data-value]=\"periodDisplay || 'AM'\"\n >\n <input\n #periodInput\n class=\"po-timepicker-segment-input po-timepicker-period-input\"\n maxlength=\"2\"\n type=\"text\"\n [value]=\"periodDisplay || 'AM'\"\n [disabled]=\"isDisabled\"\n [attr.tabindex]=\"isDisabled || readonly ? -1 : 0\"\n role=\"spinbutton\"\n [attr.aria-label]=\"periodDisplay || 'AM'\"\n (keydown)=\"onPeriodSegmentKeydown($event)\"\n (click)=\"onPeriodSegmentClick($event)\"\n (blur)=\"onSegmentBlur($event)\"\n (focus)=\"onSegmentFocus()\"\n />\n </div>\n }\n\n @if (loading) {\n <po-loading-icon [p-size]=\"mapSizeToIcon(size)\"></po-loading-icon>\n } @else {\n <div class=\"po-field-icon-container-right\">\n @if (clean && hasValue() && !isDisabled && !readonly) {\n <po-clean\n #iconClean\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"literals.clean\"\n class=\"po-icon-input\"\n p-icon=\"ICON_FILL_CLEAR_CONTENT\"\n [p-element-ref]=\"cleanElementRef\"\n [p-size]=\"size\"\n (p-change-event)=\"clear()\"\n (keydown)=\"handleCleanKeyboardTab($event)\"\n (keydown.enter)=\"clearAndFocus(); $event.preventDefault()\"\n (keydown.space)=\"clearAndFocus(); $event.preventDefault()\"\n >\n </po-clean>\n <div class=\"po-button-vertical-divider\"></div>\n }\n <po-button\n #iconTimepicker\n class=\"po-timepicker-button\"\n [class.po-button-tertiary-danger]=\"getErrorPattern()\"\n p-icon=\"ICON_CLOCK\"\n p-kind=\"tertiary\"\n [p-aria-label]=\"literals.open\"\n [p-disabled]=\"isDisabled || readonly\"\n [p-size]=\"size\"\n (keydown)=\"onKeyPress($event)\"\n (keydown.tab)=\"handleTimepickerButtonKeyboardTab($event)\"\n (p-click)=\"togglePicker(false)\"\n >\n </po-button>\n </div>\n }\n </div>\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"isDisabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n\n @if (appendBox) {\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"true\"\n [cdkConnectedOverlayDisableClose]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"sharedTimerContent\"></ng-container>\n </ng-template>\n } @else {\n <ng-container *ngTemplateOutlet=\"sharedTimerContent\"></ng-container>\n }\n\n <ng-template #sharedTimerContent>\n @if (visible) {\n <div #dialogPicker [class.po-timepicker-popup-timer]=\"!verifyMobile()\" tabindex=\"-1\">\n @if (verifyMobile()) {\n <div class=\"po-timepicker-timer-overlay\"></div>\n }\n <po-timer\n #timer\n [class.po-timepicker-timer-mobile]=\"verifyMobile()\"\n [p-format]=\"format\"\n [p-locale]=\"locale\"\n [p-show-seconds]=\"showSeconds\"\n [p-minute-interval]=\"minuteInterval\"\n [p-second-interval]=\"secondInterval\"\n [p-min-time]=\"minTime\"\n [p-max-time]=\"maxTime\"\n [p-size]=\"size\"\n [p-value]=\"timeValue\"\n (p-change)=\"timerSelected($event)\"\n (p-boundary-tab)=\"onTimerBoundaryTab($event)\"\n (keydown)=\"onTimerKeyDown($event)\"\n (focusout)=\"onTimerFocusOut($event)\"\n ></po-timer>\n </div>\n }\n </ng-template>\n\n <span class=\"po-sr-only\" aria-live=\"polite\" aria-atomic=\"true\">{{ ariaLiveMessage }}</span>\n </div>\n\n @if (!readonly) {\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"isDisabled\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-error-limit]=\"errorLimit\"\n [p-size]=\"size\"\n ></po-field-container-bottom>\n }\n</po-field-container>\n", dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PoFieldContainerBottomComponent, selector: "po-field-container-bottom", inputs: ["p-append-in-body", "p-disabled", "p-error-pattern", "p-error-limit", "p-help", "p-size", "p-helper", "p-show-helper"] }, { kind: "component", type: PoFieldContainerComponent, selector: "po-field-container", inputs: ["p-disabled", "p-id", "p-label", "p-help", "p-helper", "p-show-helper", "p-text-wrap", "p-optional", "p-required", "p-show-required", "p-size", "p-compact-label"] }, { kind: "directive", type: i2$1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation", "cdkConnectedOverlayUsePopover", "cdkConnectedOverlayMatchWidth", "cdkConnectedOverlay"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i2$1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: PoCleanComponent, selector: "po-clean" }, { kind: "component", type: PoLoadingIconComponent, selector: "po-loading-icon", inputs: ["p-neutral-color", "p-size", "p-in-overlay"] }, { kind: "component", type: PoTimerComponent, selector: "po-timer", outputs: ["p-boundary-tab"] }, { kind: "component", type: PoButtonComponent, selector: "po-button" }, { kind: "component", type: PoHelperComponent, selector: "po-helper" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
33279
33221
  }
33280
33222
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoTimepickerComponent, decorators: [{
33281
33223
  type: Component,
@@ -33291,7 +33233,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
33291
33233
  multi: true
33292
33234
  },
33293
33235
  PoControlPositionService
33294
- ], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@let poHelper = setHelper(label);\n<po-field-container\n [class.po-timepicker-container-disabled]=\"isDisabled\"\n [p-disabled]=\"isDisabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n [p-compact-label]=\"compactLabel()\"\n>\n <div #outerContainer>\n <div cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\" class=\"po-field-container-content\">\n <div class=\"po-field-container-input\">\n <div\n #timepickerField\n class=\"po-timepicker-field po-input\"\n [class.po-input-icon-right]=\"clean && hasValue() && !isDisabled\"\n [class.po-timepicker-field-disabled]=\"isDisabled\"\n [class.po-timepicker-field-readonly]=\"readonly\"\n [class.po-timepicker-field-focused]=\"isSegmentFocused\"\n [class.po-timepicker-field-placeholder]=\"isPlaceholder\"\n [attr.data-inactive-component]=\"isDisabled || readonly\"\n [attr.p-size]=\"size\"\n [attr.data-append-in-body]=\"appendBox\"\n [attr.aria-label]=\"label || literals.field\"\n role=\"group\"\n (click)=\"onFieldClick($event)\"\n (keydown)=\"onKeyDown($event)\"\n >\n <div class=\"po-timepicker-field-segment\" [attr.data-value]=\"hourDisplay || hourPlaceholder || ' '\">\n <input\n #inp\n class=\"po-timepicker-segment-input\"\n maxlength=\"2\"\n type=\"text\"\n inputmode=\"numeric\"\n role=\"spinbutton\"\n [attr.aria-label]=\"literals.hour\"\n [attr.aria-valuenow]=\"hourDisplay ? +hourDisplay : null\"\n [attr.aria-valuemin]=\"is12HourFormat ? 1 : 0\"\n [attr.aria-valuemax]=\"is12HourFormat ? 12 : 23\"\n [attr.aria-valuetext]=\"hourDisplay || null\"\n [attr.data-focused-element]=\"!isDisabled\"\n [attr.name]=\"name\"\n [autocomplete]=\"autocomplete\"\n [disabled]=\"isDisabled\"\n [id]=\"id\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [placeholder]=\"isDisabled ? '' : hourPlaceholder\"\n (input)=\"onSegmentInput($event, 'hour')\"\n (blur)=\"onSegmentBlur($event)\"\n (focus)=\"onSegmentFocus()\"\n (click)=\"eventOnClick($event)\"\n (keydown)=\"onSegmentKeydown($event, 'hour')\"\n />\n </div>\n\n <div class=\"po-timepicker-field-separator\">:</div>\n\n <div class=\"po-timepicker-field-segment\" [attr.data-value]=\"minuteDisplay || minutePlaceholder || ' '\">\n <input\n #minuteInput\n class=\"po-timepicker-segment-input\"\n maxlength=\"2\"\n type=\"text\"\n inputmode=\"numeric\"\n role=\"spinbutton\"\n [attr.aria-label]=\"literals.minute\"\n [attr.aria-valuenow]=\"minuteDisplay ? +minuteDisplay : null\"\n aria-valuemin=\"0\"\n aria-valuemax=\"59\"\n [attr.aria-valuetext]=\"minuteDisplay || null\"\n [disabled]=\"isDisabled\"\n [readonly]=\"readonly\"\n [placeholder]=\"isDisabled ? '' : minutePlaceholder\"\n (input)=\"onSegmentInput($event, 'minute')\"\n (blur)=\"onSegmentBlur($event)\"\n (focus)=\"onSegmentFocus()\"\n (click)=\"eventOnClick($event)\"\n (keydown)=\"onSegmentKeydown($event, 'minute')\"\n />\n </div>\n\n @if (showSeconds) {\n <div class=\"po-timepicker-field-separator\">:</div>\n\n <div class=\"po-timepicker-field-segment\" [attr.data-value]=\"secondDisplay || secondPlaceholder || ' '\">\n <input\n #secondInput\n class=\"po-timepicker-segment-input\"\n maxlength=\"2\"\n type=\"text\"\n inputmode=\"numeric\"\n role=\"spinbutton\"\n [attr.aria-label]=\"literals.second\"\n [attr.aria-valuenow]=\"secondDisplay ? +secondDisplay : null\"\n aria-valuemin=\"0\"\n aria-valuemax=\"59\"\n [attr.aria-valuetext]=\"secondDisplay || null\"\n [disabled]=\"isDisabled\"\n [readonly]=\"readonly\"\n [placeholder]=\"isDisabled ? '' : secondPlaceholder\"\n (input)=\"onSegmentInput($event, 'second')\"\n (blur)=\"onSegmentBlur($event)\"\n (focus)=\"onSegmentFocus()\"\n (click)=\"eventOnClick($event)\"\n (keydown)=\"onSegmentKeydown($event, 'second')\"\n />\n </div>\n }\n\n @if (is12HourFormat) {\n <div\n class=\"po-timepicker-field-segment po-timepicker-field-period\"\n [attr.data-value]=\"periodDisplay || 'AM'\"\n >\n <input\n #periodInput\n class=\"po-timepicker-segment-input po-timepicker-period-input\"\n maxlength=\"2\"\n type=\"text\"\n [value]=\"periodDisplay || 'AM'\"\n [disabled]=\"isDisabled\"\n [attr.tabindex]=\"isDisabled || readonly ? -1 : 0\"\n role=\"spinbutton\"\n [attr.aria-label]=\"periodDisplay || 'AM'\"\n (keydown)=\"onPeriodSegmentKeydown($event)\"\n (click)=\"onPeriodSegmentClick($event)\"\n (blur)=\"onSegmentBlur($event)\"\n (focus)=\"onSegmentFocus()\"\n />\n </div>\n }\n\n @if (loading) {\n <po-loading-icon [p-size]=\"mapSizeToIcon(size)\"></po-loading-icon>\n } @else {\n <div class=\"po-field-icon-container-right\">\n @if (clean && hasValue() && !isDisabled && !readonly) {\n <po-clean\n #iconClean\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"literals.clean\"\n class=\"po-icon-input\"\n p-icon=\"ICON_FILL_CLEAR_CONTENT\"\n [p-element-ref]=\"cleanElementRef\"\n [p-size]=\"size\"\n (p-change-event)=\"clear()\"\n (keydown)=\"handleCleanKeyboardTab($event)\"\n (keydown.enter)=\"clearAndFocus(); $event.preventDefault()\"\n (keydown.space)=\"clearAndFocus(); $event.preventDefault()\"\n >\n </po-clean>\n <div class=\"po-button-vertical-divider\"></div>\n }\n <po-button\n #iconTimepicker\n class=\"po-timepicker-button\"\n [class.po-button-tertiary-danger]=\"getErrorPattern()\"\n p-icon=\"ICON_CLOCK\"\n p-kind=\"tertiary\"\n [p-aria-label]=\"literals.open\"\n [p-disabled]=\"isDisabled || readonly\"\n [p-size]=\"size\"\n (keydown)=\"onKeyPress($event)\"\n (keydown.tab)=\"handleTimepickerButtonKeyboardTab($event)\"\n (p-click)=\"togglePicker(false)\"\n >\n </po-button>\n </div>\n }\n </div>\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"isDisabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n\n @if (appendBox) {\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"true\"\n [cdkConnectedOverlayDisableClose]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"sharedTimerContent\"></ng-container>\n </ng-template>\n } @else {\n <ng-container *ngTemplateOutlet=\"sharedTimerContent\"></ng-container>\n }\n\n <ng-template #sharedTimerContent>\n @if (visible) {\n <div #dialogPicker [class.po-timepicker-popup-timer]=\"!verifyMobile()\" tabindex=\"-1\">\n @if (verifyMobile()) {\n <div class=\"po-timepicker-timer-overlay\"></div>\n }\n <po-timer\n #timer\n [class.po-timepicker-timer-mobile]=\"verifyMobile()\"\n [p-format]=\"format\"\n [p-locale]=\"locale\"\n [p-show-seconds]=\"showSeconds\"\n [p-minute-interval]=\"minuteInterval\"\n [p-second-interval]=\"secondInterval\"\n [p-min-time]=\"minTime\"\n [p-max-time]=\"maxTime\"\n [p-size]=\"size\"\n [p-value]=\"timeValue\"\n (p-change)=\"timerSelected($event)\"\n (p-boundary-tab)=\"onTimerBoundaryTab($event)\"\n (keydown)=\"onTimerKeyDown($event)\"\n (focusout)=\"onTimerFocusOut($event)\"\n ></po-timer>\n </div>\n }\n </ng-template>\n\n <span class=\"po-sr-only\" aria-live=\"polite\" aria-atomic=\"true\">{{ ariaLiveMessage }}</span>\n </div>\n\n @if (!readonly) {\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"isDisabled\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-error-limit]=\"errorLimit\"\n [p-size]=\"size\"\n ></po-field-container-bottom>\n }\n</po-field-container>\n" }]
33236
+ ], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@let poHelper = setHelper(label);\n<po-field-container\n [class.po-timepicker-container-disabled]=\"isDisabled\"\n [p-disabled]=\"isDisabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n [p-compact-label]=\"compactLabel()\"\n>\n <div #outerContainer>\n <div cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\" class=\"po-field-container-content\">\n <div class=\"po-field-container-input\">\n <div\n #timepickerField\n class=\"po-timepicker-field po-input\"\n [class.po-input-icon-right]=\"clean && hasValue() && !isDisabled\"\n [class.po-timepicker-field-disabled]=\"isDisabled\"\n [class.po-timepicker-field-readonly]=\"readonly\"\n [class.po-timepicker-field-focused]=\"isSegmentFocused\"\n [class.po-timepicker-field-placeholder]=\"isPlaceholder\"\n [attr.data-inactive-component]=\"isDisabled || readonly\"\n [attr.p-size]=\"size\"\n [attr.data-append-in-body]=\"appendBox\"\n [attr.aria-label]=\"label || literals.field\"\n role=\"group\"\n (click)=\"onFieldClick($event)\"\n (keydown)=\"onKeyDown($event)\"\n >\n <div class=\"po-timepicker-field-segment\" [attr.data-value]=\"hourDisplay || hourPlaceholder || ' '\">\n <input\n #inp\n class=\"po-timepicker-segment-input\"\n maxlength=\"2\"\n type=\"text\"\n inputmode=\"numeric\"\n role=\"spinbutton\"\n [attr.aria-label]=\"literals.hour\"\n [attr.aria-valuenow]=\"hourDisplay ? +hourDisplay : null\"\n [attr.aria-valuemin]=\"is12HourFormat ? 1 : 0\"\n [attr.aria-valuemax]=\"is12HourFormat ? 12 : 23\"\n [attr.aria-valuetext]=\"hourDisplay || null\"\n [attr.data-focused-element]=\"!isDisabled\"\n [attr.name]=\"name\"\n [autocomplete]=\"autocomplete\"\n [disabled]=\"isDisabled\"\n [id]=\"id\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [placeholder]=\"isDisabled ? '' : hourPlaceholder\"\n (input)=\"onSegmentInput($event, 'hour')\"\n (blur)=\"onSegmentBlur($event)\"\n (focus)=\"onSegmentFocus()\"\n (click)=\"eventOnClick($event)\"\n (keydown)=\"onSegmentKeydown($event, 'hour')\"\n />\n </div>\n\n <div class=\"po-timepicker-field-separator\" [class.po-timepicker-field-separator-hidden]=\"!showSeparator\">\n :\n </div>\n\n <div class=\"po-timepicker-field-segment\" [attr.data-value]=\"minuteDisplay || minutePlaceholder || ' '\">\n <input\n #minuteInput\n class=\"po-timepicker-segment-input\"\n maxlength=\"2\"\n type=\"text\"\n inputmode=\"numeric\"\n role=\"spinbutton\"\n [attr.aria-label]=\"literals.minute\"\n [attr.aria-valuenow]=\"minuteDisplay ? +minuteDisplay : null\"\n aria-valuemin=\"0\"\n aria-valuemax=\"59\"\n [attr.aria-valuetext]=\"minuteDisplay || null\"\n [disabled]=\"isDisabled\"\n [readonly]=\"readonly\"\n [placeholder]=\"isDisabled ? '' : minutePlaceholder\"\n (input)=\"onSegmentInput($event, 'minute')\"\n (blur)=\"onSegmentBlur($event)\"\n (focus)=\"onSegmentFocus()\"\n (click)=\"eventOnClick($event)\"\n (keydown)=\"onSegmentKeydown($event, 'minute')\"\n />\n </div>\n\n @if (showSeconds) {\n <div class=\"po-timepicker-field-separator\" [class.po-timepicker-field-separator-hidden]=\"!showSeparator\">\n :\n </div>\n\n <div class=\"po-timepicker-field-segment\" [attr.data-value]=\"secondDisplay || secondPlaceholder || ' '\">\n <input\n #secondInput\n class=\"po-timepicker-segment-input\"\n maxlength=\"2\"\n type=\"text\"\n inputmode=\"numeric\"\n role=\"spinbutton\"\n [attr.aria-label]=\"literals.second\"\n [attr.aria-valuenow]=\"secondDisplay ? +secondDisplay : null\"\n aria-valuemin=\"0\"\n aria-valuemax=\"59\"\n [attr.aria-valuetext]=\"secondDisplay || null\"\n [disabled]=\"isDisabled\"\n [readonly]=\"readonly\"\n [placeholder]=\"isDisabled ? '' : secondPlaceholder\"\n (input)=\"onSegmentInput($event, 'second')\"\n (blur)=\"onSegmentBlur($event)\"\n (focus)=\"onSegmentFocus()\"\n (click)=\"eventOnClick($event)\"\n (keydown)=\"onSegmentKeydown($event, 'second')\"\n />\n </div>\n }\n\n @if (is12HourFormat && hasValue()) {\n <div\n class=\"po-timepicker-field-segment po-timepicker-field-period\"\n [attr.data-value]=\"periodDisplay || 'AM'\"\n >\n <input\n #periodInput\n class=\"po-timepicker-segment-input po-timepicker-period-input\"\n maxlength=\"2\"\n type=\"text\"\n [value]=\"periodDisplay || 'AM'\"\n [disabled]=\"isDisabled\"\n [attr.tabindex]=\"isDisabled || readonly ? -1 : 0\"\n role=\"spinbutton\"\n [attr.aria-label]=\"periodDisplay || 'AM'\"\n (keydown)=\"onPeriodSegmentKeydown($event)\"\n (click)=\"onPeriodSegmentClick($event)\"\n (blur)=\"onSegmentBlur($event)\"\n (focus)=\"onSegmentFocus()\"\n />\n </div>\n }\n\n @if (loading) {\n <po-loading-icon [p-size]=\"mapSizeToIcon(size)\"></po-loading-icon>\n } @else {\n <div class=\"po-field-icon-container-right\">\n @if (clean && hasValue() && !isDisabled && !readonly) {\n <po-clean\n #iconClean\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"literals.clean\"\n class=\"po-icon-input\"\n p-icon=\"ICON_FILL_CLEAR_CONTENT\"\n [p-element-ref]=\"cleanElementRef\"\n [p-size]=\"size\"\n (p-change-event)=\"clear()\"\n (keydown)=\"handleCleanKeyboardTab($event)\"\n (keydown.enter)=\"clearAndFocus(); $event.preventDefault()\"\n (keydown.space)=\"clearAndFocus(); $event.preventDefault()\"\n >\n </po-clean>\n <div class=\"po-button-vertical-divider\"></div>\n }\n <po-button\n #iconTimepicker\n class=\"po-timepicker-button\"\n [class.po-button-tertiary-danger]=\"getErrorPattern()\"\n p-icon=\"ICON_CLOCK\"\n p-kind=\"tertiary\"\n [p-aria-label]=\"literals.open\"\n [p-disabled]=\"isDisabled || readonly\"\n [p-size]=\"size\"\n (keydown)=\"onKeyPress($event)\"\n (keydown.tab)=\"handleTimepickerButtonKeyboardTab($event)\"\n (p-click)=\"togglePicker(false)\"\n >\n </po-button>\n </div>\n }\n </div>\n </div>\n @if ((!this.label && poHelperComponent()) || (!this.label && poHelper.hideAdditionalHelp)) {\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"isDisabled\"\n [p-append-in-body]=\"appendBox\"\n >\n </po-helper>\n }\n </div>\n\n @if (appendBox) {\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"true\"\n [cdkConnectedOverlayDisableClose]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"sharedTimerContent\"></ng-container>\n </ng-template>\n } @else {\n <ng-container *ngTemplateOutlet=\"sharedTimerContent\"></ng-container>\n }\n\n <ng-template #sharedTimerContent>\n @if (visible) {\n <div #dialogPicker [class.po-timepicker-popup-timer]=\"!verifyMobile()\" tabindex=\"-1\">\n @if (verifyMobile()) {\n <div class=\"po-timepicker-timer-overlay\"></div>\n }\n <po-timer\n #timer\n [class.po-timepicker-timer-mobile]=\"verifyMobile()\"\n [p-format]=\"format\"\n [p-locale]=\"locale\"\n [p-show-seconds]=\"showSeconds\"\n [p-minute-interval]=\"minuteInterval\"\n [p-second-interval]=\"secondInterval\"\n [p-min-time]=\"minTime\"\n [p-max-time]=\"maxTime\"\n [p-size]=\"size\"\n [p-value]=\"timeValue\"\n (p-change)=\"timerSelected($event)\"\n (p-boundary-tab)=\"onTimerBoundaryTab($event)\"\n (keydown)=\"onTimerKeyDown($event)\"\n (focusout)=\"onTimerFocusOut($event)\"\n ></po-timer>\n </div>\n }\n </ng-template>\n\n <span class=\"po-sr-only\" aria-live=\"polite\" aria-atomic=\"true\">{{ ariaLiveMessage }}</span>\n </div>\n\n @if (!readonly) {\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"isDisabled\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-error-limit]=\"errorLimit\"\n [p-size]=\"size\"\n ></po-field-container-bottom>\n }\n</po-field-container>\n" }]
33295
33237
  }], ctorParameters: () => [], propDecorators: { dialogPicker: [{
33296
33238
  type: ViewChild,
33297
33239
  args: ['dialogPicker', { read: ElementRef, static: false }]
@@ -41330,11 +41272,11 @@ class PoTableDetailComponent {
41330
41272
  }
41331
41273
  }
41332
41274
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoTableDetailComponent, deps: [{ token: i1.DecimalPipe }], target: i0.ɵɵFactoryTarget.Component });
41333
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: PoTableDetailComponent, isStandalone: false, selector: "po-table-detail", inputs: { componentsSize: ["p-components-size", "componentsSize"], items: ["p-items", "items"], parentRow: ["p-parent-row", "parentRow"], isSelectable: ["p-selectable", "isSelectable"], detail: ["p-detail", "detail"] }, outputs: { selectRow: "p-select-row" }, ngImport: i0, template: "<table class=\"po-table-master-detail\">\n @if (typeHeaderTop) {\n <thead>\n <tr>\n @if (isSelectable) {\n <th class=\"po-table-header po-table-column-selectable\"></th>\n }\n <th class=\"po-table-header po-table-header-column po-table-header-master-detail\"></th>\n @for (detail of detail.columns; track detail) {\n <th class=\"po-table-header po-table-header-ellipsis\">\n <div\n class=\"po-table-header-flex\"\n [class.po-table-header-flex-right]=\"detail.type === 'currency' || detail.type === 'number'\"\n >\n {{ getColumnTitleLabel(detail) }}\n </div>\n </th>\n }\n </tr>\n </thead>\n }\n <tbody>\n @for (item of items; track item) {\n <tr class=\"po-table-detail-row\" [class.po-table-row-active]=\"item.$selected && isSelectable\">\n @if (isSelectable) {\n <td class=\"po-table-column-master-detail-space-checkbox\"></td>\n <td class=\"po-table-column po-table-column-selectable\">\n <po-checkbox\n name=\"checkbox\"\n (p-change)=\"onSelectRow(item)\"\n [p-checkboxValue]=\"item.$selected\"\n [p-size]=\"componentsSize\"\n ></po-checkbox>\n </td>\n } @else {\n <td class=\"po-table-column-master-detail-space\"></td>\n }\n @for (detail of detailColumns; track detail) {\n <td\n class=\"po-table-column-master-detail po-table-master-detail-label\"\n (click)=\"isSelectable ? onSelectRow(item) : 'javascript:;'\"\n [class.po-table-column-right]=\"typeHeaderTop && (detail.type === 'currency' || detail.type === 'number')\"\n >\n @if (typeHeaderInline) {\n <strong> {{ getColumnTitleLabel(detail) }}: </strong>\n }\n @switch (detail.type) {\n @case ('currency') {\n <span>{{ getDetailData(item, detail) | currency: detail.format : 'symbol' : '1.2-2' }}</span>\n }\n @case ('date') {\n <span>{{ getDetailData(item, detail) | date: detail.format || 'dd/MM/yyyy' }}</span>\n }\n @case ('time') {\n <span>{{ getDetailData(item, detail) | po_time: detail.format || 'HH:mm:ss.ffffff' }}</span>\n }\n @case ('dateTime') {\n <span>\n {{ getDetailData(item, detail) | date: detail.format || 'dd/MM/yyyy HH:mm:ss' }}\n </span>\n }\n @case ('number') {\n <span>{{ formatNumberDetail(getDetailData(item, detail), detail.format) }}</span>\n }\n @default {\n <span>{{ getDetailData(item, detail) }}</span>\n }\n }\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n", dependencies: [{ kind: "component", type: PoCheckboxComponent, selector: "po-checkbox" }, { kind: "pipe", type: i1.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "pipe", type: PoTimePipe, name: "po_time" }] });
41275
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: PoTableDetailComponent, isStandalone: false, selector: "po-table-detail", inputs: { componentsSize: ["p-components-size", "componentsSize"], items: ["p-items", "items"], parentRow: ["p-parent-row", "parentRow"], isSelectable: ["p-selectable", "isSelectable"], detail: ["p-detail", "detail"] }, outputs: { selectRow: "p-select-row" }, ngImport: i0, template: "<table class=\"po-table-master-detail\">\n @if (typeHeaderTop) {\n <thead>\n <tr>\n @if (isSelectable) {\n <th class=\"po-table-header po-table-column-selectable\"></th>\n }\n <th class=\"po-table-header po-table-header-column po-table-header-master-detail\"></th>\n @for (detail of detail.columns; track $index) {\n <th class=\"po-table-header po-table-header-ellipsis\">\n <div\n class=\"po-table-header-flex\"\n [class.po-table-header-flex-right]=\"detail.type === 'currency' || detail.type === 'number'\"\n >\n {{ getColumnTitleLabel(detail) }}\n </div>\n </th>\n }\n </tr>\n </thead>\n }\n <tbody>\n @for (item of items; track $index) {\n <tr class=\"po-table-detail-row\" [class.po-table-row-active]=\"item.$selected && isSelectable\">\n @if (isSelectable) {\n <td class=\"po-table-column-master-detail-space-checkbox\"></td>\n <td class=\"po-table-column po-table-column-selectable\">\n <po-checkbox\n name=\"checkbox\"\n (p-change)=\"onSelectRow(item)\"\n [p-checkboxValue]=\"item.$selected\"\n [p-size]=\"componentsSize\"\n ></po-checkbox>\n </td>\n } @else {\n <td class=\"po-table-column-master-detail-space\"></td>\n }\n @for (detail of detailColumns; track $index) {\n <td\n class=\"po-table-column-master-detail po-table-master-detail-label\"\n (click)=\"isSelectable ? onSelectRow(item) : 'javascript:;'\"\n [class.po-table-column-right]=\"typeHeaderTop && (detail.type === 'currency' || detail.type === 'number')\"\n >\n @if (typeHeaderInline) {\n <strong> {{ getColumnTitleLabel(detail) }}: </strong>\n }\n @switch (detail.type) {\n @case ('currency') {\n <span>{{ getDetailData(item, detail) | currency: detail.format : 'symbol' : '1.2-2' }}</span>\n }\n @case ('date') {\n <span>{{ getDetailData(item, detail) | date: detail.format || 'dd/MM/yyyy' }}</span>\n }\n @case ('time') {\n <span>{{ getDetailData(item, detail) | po_time: detail.format || 'HH:mm:ss.ffffff' }}</span>\n }\n @case ('dateTime') {\n <span>\n {{ getDetailData(item, detail) | date: detail.format || 'dd/MM/yyyy HH:mm:ss' }}\n </span>\n }\n @case ('number') {\n <span>{{ formatNumberDetail(getDetailData(item, detail), detail.format) }}</span>\n }\n @default {\n <span>{{ getDetailData(item, detail) }}</span>\n }\n }\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n", dependencies: [{ kind: "component", type: PoCheckboxComponent, selector: "po-checkbox" }, { kind: "pipe", type: i1.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "pipe", type: PoTimePipe, name: "po_time" }] });
41334
41276
  }
41335
41277
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoTableDetailComponent, decorators: [{
41336
41278
  type: Component,
41337
- args: [{ selector: 'po-table-detail', standalone: false, template: "<table class=\"po-table-master-detail\">\n @if (typeHeaderTop) {\n <thead>\n <tr>\n @if (isSelectable) {\n <th class=\"po-table-header po-table-column-selectable\"></th>\n }\n <th class=\"po-table-header po-table-header-column po-table-header-master-detail\"></th>\n @for (detail of detail.columns; track detail) {\n <th class=\"po-table-header po-table-header-ellipsis\">\n <div\n class=\"po-table-header-flex\"\n [class.po-table-header-flex-right]=\"detail.type === 'currency' || detail.type === 'number'\"\n >\n {{ getColumnTitleLabel(detail) }}\n </div>\n </th>\n }\n </tr>\n </thead>\n }\n <tbody>\n @for (item of items; track item) {\n <tr class=\"po-table-detail-row\" [class.po-table-row-active]=\"item.$selected && isSelectable\">\n @if (isSelectable) {\n <td class=\"po-table-column-master-detail-space-checkbox\"></td>\n <td class=\"po-table-column po-table-column-selectable\">\n <po-checkbox\n name=\"checkbox\"\n (p-change)=\"onSelectRow(item)\"\n [p-checkboxValue]=\"item.$selected\"\n [p-size]=\"componentsSize\"\n ></po-checkbox>\n </td>\n } @else {\n <td class=\"po-table-column-master-detail-space\"></td>\n }\n @for (detail of detailColumns; track detail) {\n <td\n class=\"po-table-column-master-detail po-table-master-detail-label\"\n (click)=\"isSelectable ? onSelectRow(item) : 'javascript:;'\"\n [class.po-table-column-right]=\"typeHeaderTop && (detail.type === 'currency' || detail.type === 'number')\"\n >\n @if (typeHeaderInline) {\n <strong> {{ getColumnTitleLabel(detail) }}: </strong>\n }\n @switch (detail.type) {\n @case ('currency') {\n <span>{{ getDetailData(item, detail) | currency: detail.format : 'symbol' : '1.2-2' }}</span>\n }\n @case ('date') {\n <span>{{ getDetailData(item, detail) | date: detail.format || 'dd/MM/yyyy' }}</span>\n }\n @case ('time') {\n <span>{{ getDetailData(item, detail) | po_time: detail.format || 'HH:mm:ss.ffffff' }}</span>\n }\n @case ('dateTime') {\n <span>\n {{ getDetailData(item, detail) | date: detail.format || 'dd/MM/yyyy HH:mm:ss' }}\n </span>\n }\n @case ('number') {\n <span>{{ formatNumberDetail(getDetailData(item, detail), detail.format) }}</span>\n }\n @default {\n <span>{{ getDetailData(item, detail) }}</span>\n }\n }\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n" }]
41279
+ args: [{ selector: 'po-table-detail', standalone: false, template: "<table class=\"po-table-master-detail\">\n @if (typeHeaderTop) {\n <thead>\n <tr>\n @if (isSelectable) {\n <th class=\"po-table-header po-table-column-selectable\"></th>\n }\n <th class=\"po-table-header po-table-header-column po-table-header-master-detail\"></th>\n @for (detail of detail.columns; track $index) {\n <th class=\"po-table-header po-table-header-ellipsis\">\n <div\n class=\"po-table-header-flex\"\n [class.po-table-header-flex-right]=\"detail.type === 'currency' || detail.type === 'number'\"\n >\n {{ getColumnTitleLabel(detail) }}\n </div>\n </th>\n }\n </tr>\n </thead>\n }\n <tbody>\n @for (item of items; track $index) {\n <tr class=\"po-table-detail-row\" [class.po-table-row-active]=\"item.$selected && isSelectable\">\n @if (isSelectable) {\n <td class=\"po-table-column-master-detail-space-checkbox\"></td>\n <td class=\"po-table-column po-table-column-selectable\">\n <po-checkbox\n name=\"checkbox\"\n (p-change)=\"onSelectRow(item)\"\n [p-checkboxValue]=\"item.$selected\"\n [p-size]=\"componentsSize\"\n ></po-checkbox>\n </td>\n } @else {\n <td class=\"po-table-column-master-detail-space\"></td>\n }\n @for (detail of detailColumns; track $index) {\n <td\n class=\"po-table-column-master-detail po-table-master-detail-label\"\n (click)=\"isSelectable ? onSelectRow(item) : 'javascript:;'\"\n [class.po-table-column-right]=\"typeHeaderTop && (detail.type === 'currency' || detail.type === 'number')\"\n >\n @if (typeHeaderInline) {\n <strong> {{ getColumnTitleLabel(detail) }}: </strong>\n }\n @switch (detail.type) {\n @case ('currency') {\n <span>{{ getDetailData(item, detail) | currency: detail.format : 'symbol' : '1.2-2' }}</span>\n }\n @case ('date') {\n <span>{{ getDetailData(item, detail) | date: detail.format || 'dd/MM/yyyy' }}</span>\n }\n @case ('time') {\n <span>{{ getDetailData(item, detail) | po_time: detail.format || 'HH:mm:ss.ffffff' }}</span>\n }\n @case ('dateTime') {\n <span>\n {{ getDetailData(item, detail) | date: detail.format || 'dd/MM/yyyy HH:mm:ss' }}\n </span>\n }\n @case ('number') {\n <span>{{ formatNumberDetail(getDetailData(item, detail), detail.format) }}</span>\n }\n @default {\n <span>{{ getDetailData(item, detail) }}</span>\n }\n }\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n" }]
41338
41280
  }], ctorParameters: () => [{ type: i1.DecimalPipe }], propDecorators: { componentsSize: [{
41339
41281
  type: Input,
41340
41282
  args: ['p-components-size']
@@ -41409,11 +41351,11 @@ class PoTableShowSubtitleComponent {
41409
41351
  /** Define o tamanho dos elementos que possuem `p-size` dentro do componente. */
41410
41352
  componentsSize;
41411
41353
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoTableShowSubtitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
41412
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: PoTableShowSubtitleComponent, isStandalone: false, selector: "po-table-show-subtitle", inputs: { subtitles: ["p-subtitles", "subtitles"], literals: ["p-literals", "literals"], componentsSize: ["p-components-size", "componentsSize"] }, ngImport: i0, template: "<div class=\"po-table-footer-show-subtitle\" (click)=\"modal.open()\">\n <div class=\"po-table-footer-show-subtitle-container\">\n <span class=\"po-table-show-subtitle\">{{ literals.seeCompleteSubtitle }}</span>\n </div>\n</div>\n\n<po-modal #modal p-size=\"sm\" [p-title]=\"literals.completeSubtitle\" [p-components-size]=\"componentsSize\">\n @for (subtitle of subtitles; track subtitle) {\n <div class=\"po-table-subtitle-footer-modal po-row\">\n <po-table-subtitle-circle p-hide-title=\"true\" [p-subtitle]=\"subtitle\"> </po-table-subtitle-circle>\n <span class=\"po-table-subtitle-text\">{{ subtitle.label }}</span>\n </div>\n }\n</po-modal>\n", dependencies: [{ kind: "component", type: PoModalComponent, selector: "po-modal" }, { kind: "component", type: PoTableSubtitleCircleComponent, selector: "po-table-subtitle-circle", inputs: ["p-hide-title", "p-subtitle"] }] });
41354
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: PoTableShowSubtitleComponent, isStandalone: false, selector: "po-table-show-subtitle", inputs: { subtitles: ["p-subtitles", "subtitles"], literals: ["p-literals", "literals"], componentsSize: ["p-components-size", "componentsSize"] }, ngImport: i0, template: "<div class=\"po-table-footer-show-subtitle\" (click)=\"modal.open()\">\n <div class=\"po-table-footer-show-subtitle-container\">\n <span class=\"po-table-show-subtitle\">{{ literals.seeCompleteSubtitle }}</span>\n </div>\n</div>\n\n<po-modal #modal p-size=\"sm\" [p-title]=\"literals.completeSubtitle\" [p-components-size]=\"componentsSize\">\n @for (subtitle of subtitles; track $index) {\n <div class=\"po-table-subtitle-footer-modal po-row\">\n <po-table-subtitle-circle p-hide-title=\"true\" [p-subtitle]=\"subtitle\"> </po-table-subtitle-circle>\n <span class=\"po-table-subtitle-text\">{{ subtitle.label }}</span>\n </div>\n }\n</po-modal>\n", dependencies: [{ kind: "component", type: PoModalComponent, selector: "po-modal" }, { kind: "component", type: PoTableSubtitleCircleComponent, selector: "po-table-subtitle-circle", inputs: ["p-hide-title", "p-subtitle"] }] });
41413
41355
  }
41414
41356
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoTableShowSubtitleComponent, decorators: [{
41415
41357
  type: Component,
41416
- args: [{ selector: 'po-table-show-subtitle', standalone: false, template: "<div class=\"po-table-footer-show-subtitle\" (click)=\"modal.open()\">\n <div class=\"po-table-footer-show-subtitle-container\">\n <span class=\"po-table-show-subtitle\">{{ literals.seeCompleteSubtitle }}</span>\n </div>\n</div>\n\n<po-modal #modal p-size=\"sm\" [p-title]=\"literals.completeSubtitle\" [p-components-size]=\"componentsSize\">\n @for (subtitle of subtitles; track subtitle) {\n <div class=\"po-table-subtitle-footer-modal po-row\">\n <po-table-subtitle-circle p-hide-title=\"true\" [p-subtitle]=\"subtitle\"> </po-table-subtitle-circle>\n <span class=\"po-table-subtitle-text\">{{ subtitle.label }}</span>\n </div>\n }\n</po-modal>\n" }]
41358
+ args: [{ selector: 'po-table-show-subtitle', standalone: false, template: "<div class=\"po-table-footer-show-subtitle\" (click)=\"modal.open()\">\n <div class=\"po-table-footer-show-subtitle-container\">\n <span class=\"po-table-show-subtitle\">{{ literals.seeCompleteSubtitle }}</span>\n </div>\n</div>\n\n<po-modal #modal p-size=\"sm\" [p-title]=\"literals.completeSubtitle\" [p-components-size]=\"componentsSize\">\n @for (subtitle of subtitles; track $index) {\n <div class=\"po-table-subtitle-footer-modal po-row\">\n <po-table-subtitle-circle p-hide-title=\"true\" [p-subtitle]=\"subtitle\"> </po-table-subtitle-circle>\n <span class=\"po-table-subtitle-text\">{{ subtitle.label }}</span>\n </div>\n }\n</po-modal>\n" }]
41417
41359
  }], propDecorators: { subtitles: [{
41418
41360
  type: Input,
41419
41361
  args: ['p-subtitles']
@@ -41491,11 +41433,11 @@ class PoTableSubtitleFooterComponent {
41491
41433
  this.showSubtitle = itemsSize > containerSize;
41492
41434
  }
41493
41435
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoTableSubtitleFooterComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
41494
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: PoTableSubtitleFooterComponent, isStandalone: false, selector: "po-table-subtitle-footer", inputs: { componentsSize: ["p-components-size", "componentsSize"], literals: ["p-literals", "literals"], subtitles: ["p-subtitles", "subtitles"] }, ngImport: i0, template: "<div class=\"po-table-subtitle-footer-container\">\n @for (subtitle of subtitles; track subtitle) {\n <div class=\"po-table-subtitle-footer\">\n <po-table-subtitle-circle p-hide-title=\"true\" [p-subtitle]=\"subtitle\"> </po-table-subtitle-circle>\n <span class=\"po-table-subtitle-text\">{{ subtitle.label }}</span>\n </div>\n }\n @if (showSubtitle) {\n <po-table-show-subtitle [p-components-size]=\"componentsSize\" [p-literals]=\"literals\" [p-subtitles]=\"subtitles\">\n </po-table-show-subtitle>\n }\n</div>\n", dependencies: [{ kind: "component", type: PoTableShowSubtitleComponent, selector: "po-table-show-subtitle", inputs: ["p-subtitles", "p-literals", "p-components-size"] }, { kind: "component", type: PoTableSubtitleCircleComponent, selector: "po-table-subtitle-circle", inputs: ["p-hide-title", "p-subtitle"] }] });
41436
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: PoTableSubtitleFooterComponent, isStandalone: false, selector: "po-table-subtitle-footer", inputs: { componentsSize: ["p-components-size", "componentsSize"], literals: ["p-literals", "literals"], subtitles: ["p-subtitles", "subtitles"] }, ngImport: i0, template: "<div class=\"po-table-subtitle-footer-container\">\n @for (subtitle of subtitles; track $index) {\n <div class=\"po-table-subtitle-footer\">\n <po-table-subtitle-circle p-hide-title=\"true\" [p-subtitle]=\"subtitle\"> </po-table-subtitle-circle>\n <span class=\"po-table-subtitle-text\">{{ subtitle.label }}</span>\n </div>\n }\n @if (showSubtitle) {\n <po-table-show-subtitle [p-components-size]=\"componentsSize\" [p-literals]=\"literals\" [p-subtitles]=\"subtitles\">\n </po-table-show-subtitle>\n }\n</div>\n", dependencies: [{ kind: "component", type: PoTableShowSubtitleComponent, selector: "po-table-show-subtitle", inputs: ["p-subtitles", "p-literals", "p-components-size"] }, { kind: "component", type: PoTableSubtitleCircleComponent, selector: "po-table-subtitle-circle", inputs: ["p-hide-title", "p-subtitle"] }] });
41495
41437
  }
41496
41438
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoTableSubtitleFooterComponent, decorators: [{
41497
41439
  type: Component,
41498
- args: [{ selector: 'po-table-subtitle-footer', standalone: false, template: "<div class=\"po-table-subtitle-footer-container\">\n @for (subtitle of subtitles; track subtitle) {\n <div class=\"po-table-subtitle-footer\">\n <po-table-subtitle-circle p-hide-title=\"true\" [p-subtitle]=\"subtitle\"> </po-table-subtitle-circle>\n <span class=\"po-table-subtitle-text\">{{ subtitle.label }}</span>\n </div>\n }\n @if (showSubtitle) {\n <po-table-show-subtitle [p-components-size]=\"componentsSize\" [p-literals]=\"literals\" [p-subtitles]=\"subtitles\">\n </po-table-show-subtitle>\n }\n</div>\n" }]
41440
+ args: [{ selector: 'po-table-subtitle-footer', standalone: false, template: "<div class=\"po-table-subtitle-footer-container\">\n @for (subtitle of subtitles; track $index) {\n <div class=\"po-table-subtitle-footer\">\n <po-table-subtitle-circle p-hide-title=\"true\" [p-subtitle]=\"subtitle\"> </po-table-subtitle-circle>\n <span class=\"po-table-subtitle-text\">{{ subtitle.label }}</span>\n </div>\n }\n @if (showSubtitle) {\n <po-table-show-subtitle [p-components-size]=\"componentsSize\" [p-literals]=\"literals\" [p-subtitles]=\"subtitles\">\n </po-table-show-subtitle>\n }\n</div>\n" }]
41499
41441
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { componentsSize: [{
41500
41442
  type: Input,
41501
41443
  args: ['p-components-size']
@@ -45234,6 +45176,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
45234
45176
  * <file name="sample-po-input-reactive-form/sample-po-input-reactive-form.component.html"> </file>
45235
45177
  * <file name="sample-po-input-reactive-form/sample-po-input-reactive-form.component.ts"> </file>
45236
45178
  * </example>
45179
+ *
45180
+ * <example name="po-input-mask-dynamic" title="PO Input - Dynamic Mask (CPF/CNPJ)">
45181
+ * <file name="sample-po-input-mask-dynamic/sample-po-input-mask-dynamic.component.html"> </file>
45182
+ * <file name="sample-po-input-mask-dynamic/sample-po-input-mask-dynamic.component.ts"> </file>
45183
+ * <file name="sample-po-input-mask-dynamic/document-mask.ts"> </file>
45184
+ * </example>
45237
45185
  */
45238
45186
  class PoInputComponent extends PoInputGeneric {
45239
45187
  inp;
@@ -47720,11 +47668,11 @@ class PoLookupComponent extends PoLookupBaseComponent {
47720
47668
  });
47721
47669
  }
47722
47670
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoLookupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
47723
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: PoLookupComponent, isStandalone: false, selector: "po-lookup", providers: providers$2, viewQueries: [{ propertyName: "helperEl", first: true, predicate: ["helperEl"], descendants: true, read: PoHelperComponent }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n@let needsHelper = !label && (poHelperComponent() || poHelper.hideAdditionalHelp);\n\n<ng-template #poHelperTemplate>\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"isDisabled\"\n [p-append-in-body]=\"appendBox\"\n ></po-helper>\n</ng-template>\n\n<po-field-container\n [p-disabled]=\"isDisabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n [p-compact-label]=\"compactLabel()\"\n>\n @if (!disclaimers.length) {\n <div\n class=\"po-field-container-content po-lookup\"\n [class.po-lookup-disabled]=\"disabled\"\n [class.po-lookup-loading]=\"loading\"\n >\n <div class=\"po-field-container-content-helper-wrapper\">\n <div class=\"po-field-container-input\">\n <input\n #inp\n class=\"po-lookup-input po-lookup-input-trigger\"\n [ngClass]=\"clean && inp.value ? 'po-input-double-icon-right' : 'po-input-icon-right'\"\n [id]=\"id\"\n type=\"text\"\n [autocomplete]=\"autocomplete\"\n [disabled]=\"isDisabled\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n (blur)=\"searchEvent()\"\n (keydown)=\"onKeyDown($event)\"\n />\n <div class=\"po-field-icon-container-right po-lookup-buttons\">\n @if (loading) {\n <div class=\"po-lookup-button po-lookup-button-loading\">\n <po-loading-icon class=\"po-lookup-loading-icon\" [p-size]=\"mapSizeToIcon(size)\"></po-loading-icon>\n </div>\n } @else {\n @if (clean && !isDisabled && !!inp.value) {\n <po-clean\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"literals.clean\"\n class=\"po-lookup-button po-lookup-button-clean\"\n [class.po-lookup-button-aa]=\"size === 'small'\"\n [p-element-ref]=\"inp\"\n [p-size]=\"size\"\n (p-change-event)=\"cleanModel()\"\n (click)=\"cleanModel(); $event.preventDefault()\"\n (keydown.enter)=\"cleanModel(); $event.preventDefault()\"\n ></po-clean>\n }\n }\n <div\n #iconLookup\n tabindex=\"0\"\n role=\"button\"\n class=\"po-lookup-button po-lookup-button-trigger po-field-icon\"\n [class.po-field-icon-disabled]=\"isDisabled\"\n [ariaLabel]=\"literals.search\"\n (p-change-event)=\"openLookup()\"\n (click)=\"!isDisabled && openLookup(); $event.preventDefault()\"\n (keydown.enter)=\"!isDisabled && openLookup(); $event.preventDefault()\"\n >\n <po-icon\n p-icon=\"ICON_SEARCH\"\n [class.po-field-icon]=\"!isDisabled\"\n [class.po-field-icon-aa]=\"!isDisabled && size === 'small'\"\n ></po-icon>\n </div>\n </div>\n </div>\n\n @if (needsHelper) {\n <ng-container *ngTemplateOutlet=\"poHelperTemplate\"></ng-container>\n }\n </div>\n </div>\n } @else {\n <div\n class=\"po-field-container-content po-lookup\"\n [class.po-lookup-disabled]=\"disabled\"\n [class.po-lookup-loading]=\"loading\"\n >\n <div class=\"po-field-container-content-helper-wrapper\">\n <div class=\"po-field-container-input\">\n <div\n #inp\n [tabindex]=\"isDisabled ? -1 : 0\"\n class=\"po-lookup-input po-input-icon-right po-icon-input\"\n [ngClass]=\"clean && inp.value ? 'po-input-double-icon-right' : 'po-input-icon-right'\"\n [class.po-lookup-input-auto]=\"autoHeight\"\n [class.po-lookup-input-static]=\"!autoHeight\"\n [class.po-lookup-input-padding-button-clean]=\"clean || loading\"\n [class.po-lookup-input-disabled]=\"isDisabled\"\n [class.po-lookup-input-auto-dynamic-height]=\"isExpandedHeight\"\n (blur)=\"onBlur()\"\n (keydown)=\"onKeyDown($event)\"\n >\n @if (placeholder && !disclaimers?.length) {\n <span class=\"po-lookup-input-placeholder\">{{ placeholder }}</span>\n }\n @for (disclaimer of visibleDisclaimers; track disclaimer) {\n <po-disclaimer\n class=\"po-lookup-input-disclaimer\"\n [p-label]=\"disclaimer.label\"\n [p-value]=\"disclaimer.value\"\n [p-hide-close]=\"disclaimer.value === '' || isDisabled\"\n [class.po-clickable]=\"disclaimer.value === '' && !isDisabled\"\n (p-close-action)=\"closeDisclaimer(disclaimer.value)\"\n ></po-disclaimer>\n }\n </div>\n <div class=\"po-field-icon-container-right po-lookup-buttons\">\n @if (loading) {\n <div class=\"po-lookup-button po-lookup-button-loading\">\n <po-loading-icon class=\"po-lookup-loading-icon\" [p-size]=\"mapSizeToIcon(size)\"></po-loading-icon>\n </div>\n } @else {\n @if (clean && !isDisabled && !!inp.value) {\n <po-clean\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"literals.clean\"\n class=\"po-lookup-button po-lookup-button-clean\"\n [p-element-ref]=\"inp\"\n [p-size]=\"size\"\n (p-change-event)=\"cleanModel()\"\n (click)=\"cleanModel(); $event.preventDefault()\"\n (keydown.enter)=\"cleanModel(); $event.preventDefault()\"\n ></po-clean>\n }\n }\n <div\n #iconLookup\n tabindex=\"0\"\n role=\"button\"\n class=\"po-lookup-button po-lookup-button-trigger po-field-icon\"\n [class.po-field-icon-disabled]=\"isDisabled\"\n [ariaLabel]=\"literals.search\"\n (p-change-event)=\"openLookup()\"\n (click)=\"!isDisabled && openLookup(); $event.preventDefault()\"\n (keydown.enter)=\"!isDisabled && openLookup(); $event.preventDefault()\"\n >\n <po-icon\n p-icon=\"ICON_SEARCH\"\n [class.po-field-icon]=\"!isDisabled\"\n [class.po-field-icon-aa]=\"!isDisabled && size === 'small'\"\n ></po-icon>\n </div>\n </div>\n </div>\n\n @if (needsHelper) {\n <ng-container *ngTemplateOutlet=\"poHelperTemplate\"></ng-container>\n }\n </div>\n </div>\n }\n\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"isDisabled\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-error-limit]=\"errorLimit\"\n [p-size]=\"size\"\n ></po-field-container-bottom>\n</po-field-container>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PoCleanComponent, selector: "po-clean" }, { kind: "component", type: PoDisclaimerComponent, selector: "po-disclaimer" }, { kind: "component", type: PoFieldContainerBottomComponent, selector: "po-field-container-bottom", inputs: ["p-append-in-body", "p-disabled", "p-error-pattern", "p-error-limit", "p-help", "p-size", "p-helper", "p-show-helper"] }, { kind: "component", type: PoFieldContainerComponent, selector: "po-field-container", inputs: ["p-disabled", "p-id", "p-label", "p-help", "p-helper", "p-show-helper", "p-text-wrap", "p-optional", "p-required", "p-show-required", "p-size", "p-compact-label"] }, { kind: "component", type: PoHelperComponent, selector: "po-helper" }, { kind: "component", type: PoIconComponent, selector: "po-icon", inputs: ["p-icon"] }, { kind: "component", type: PoLoadingIconComponent, selector: "po-loading-icon", inputs: ["p-neutral-color", "p-size", "p-in-overlay"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
47671
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: PoLookupComponent, isStandalone: false, selector: "po-lookup", providers: providers$2, viewQueries: [{ propertyName: "helperEl", first: true, predicate: ["helperEl"], descendants: true, read: PoHelperComponent }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n@let needsHelper = !label && (poHelperComponent() || poHelper.hideAdditionalHelp);\n\n<ng-template #poHelperTemplate>\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"isDisabled\"\n [p-append-in-body]=\"appendBox\"\n ></po-helper>\n</ng-template>\n\n<po-field-container\n [p-disabled]=\"isDisabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n [p-compact-label]=\"compactLabel()\"\n>\n @if (!disclaimers.length) {\n <div\n class=\"po-field-container-content po-lookup\"\n [class.po-lookup-disabled]=\"disabled\"\n [class.po-lookup-loading]=\"loading\"\n >\n <div class=\"po-field-container-content-helper-wrapper\">\n <div class=\"po-field-container-input\">\n <input\n #inp\n class=\"po-lookup-input po-lookup-input-trigger\"\n [ngClass]=\"clean && inp.value ? 'po-input-double-icon-right' : 'po-input-icon-right'\"\n [id]=\"id\"\n type=\"text\"\n [autocomplete]=\"autocomplete\"\n [disabled]=\"isDisabled\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n (blur)=\"searchEvent()\"\n (keydown)=\"onKeyDown($event)\"\n />\n <div class=\"po-field-icon-container-right po-lookup-buttons\">\n @if (loading) {\n <div class=\"po-lookup-button po-lookup-button-loading\">\n <po-loading-icon class=\"po-lookup-loading-icon\" [p-size]=\"mapSizeToIcon(size)\"></po-loading-icon>\n </div>\n } @else {\n @if (clean && !isDisabled && !!inp.value) {\n <po-clean\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"literals.clean\"\n class=\"po-lookup-button po-lookup-button-clean\"\n [class.po-lookup-button-aa]=\"size === 'small'\"\n [p-element-ref]=\"inp\"\n [p-size]=\"size\"\n (p-change-event)=\"cleanModel()\"\n (click)=\"cleanModel(); $event.preventDefault()\"\n (keydown.enter)=\"cleanModel(); $event.preventDefault()\"\n ></po-clean>\n }\n }\n <div\n #iconLookup\n tabindex=\"0\"\n role=\"button\"\n class=\"po-lookup-button po-lookup-button-trigger po-field-icon\"\n [class.po-field-icon-disabled]=\"isDisabled\"\n [ariaLabel]=\"literals.search\"\n (p-change-event)=\"openLookup()\"\n (click)=\"!isDisabled && openLookup(); $event.preventDefault()\"\n (keydown.enter)=\"!isDisabled && openLookup(); $event.preventDefault()\"\n >\n <po-icon\n p-icon=\"ICON_SEARCH\"\n [class.po-field-icon]=\"!isDisabled\"\n [class.po-field-icon-aa]=\"!isDisabled && size === 'small'\"\n ></po-icon>\n </div>\n </div>\n </div>\n\n @if (needsHelper) {\n <ng-container *ngTemplateOutlet=\"poHelperTemplate\"></ng-container>\n }\n </div>\n </div>\n } @else {\n <div\n class=\"po-field-container-content po-lookup\"\n [class.po-lookup-disabled]=\"disabled\"\n [class.po-lookup-loading]=\"loading\"\n >\n <div class=\"po-field-container-content-helper-wrapper\">\n <div class=\"po-field-container-input\">\n <div\n #inp\n [tabindex]=\"isDisabled ? -1 : 0\"\n class=\"po-lookup-input po-input-icon-right po-icon-input\"\n [ngClass]=\"clean && inp.value ? 'po-input-double-icon-right' : 'po-input-icon-right'\"\n [class.po-lookup-input-auto]=\"autoHeight\"\n [class.po-lookup-input-static]=\"!autoHeight\"\n [class.po-lookup-input-padding-button-clean]=\"clean || loading\"\n [class.po-lookup-input-disabled]=\"isDisabled\"\n [class.po-lookup-input-auto-dynamic-height]=\"isExpandedHeight\"\n (blur)=\"onBlur()\"\n (keydown)=\"onKeyDown($event)\"\n >\n @if (placeholder && !disclaimers?.length) {\n <span class=\"po-lookup-input-placeholder\">{{ placeholder }}</span>\n }\n @for (disclaimer of visibleDisclaimers; track $index) {\n <po-disclaimer\n class=\"po-lookup-input-disclaimer\"\n [p-label]=\"disclaimer.label\"\n [p-value]=\"disclaimer.value\"\n [p-hide-close]=\"disclaimer.value === '' || isDisabled\"\n [class.po-clickable]=\"disclaimer.value === '' && !isDisabled\"\n (p-close-action)=\"closeDisclaimer(disclaimer.value)\"\n ></po-disclaimer>\n }\n </div>\n <div class=\"po-field-icon-container-right po-lookup-buttons\">\n @if (loading) {\n <div class=\"po-lookup-button po-lookup-button-loading\">\n <po-loading-icon class=\"po-lookup-loading-icon\" [p-size]=\"mapSizeToIcon(size)\"></po-loading-icon>\n </div>\n } @else {\n @if (clean && !isDisabled && !!inp.value) {\n <po-clean\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"literals.clean\"\n class=\"po-lookup-button po-lookup-button-clean\"\n [p-element-ref]=\"inp\"\n [p-size]=\"size\"\n (p-change-event)=\"cleanModel()\"\n (click)=\"cleanModel(); $event.preventDefault()\"\n (keydown.enter)=\"cleanModel(); $event.preventDefault()\"\n ></po-clean>\n }\n }\n <div\n #iconLookup\n tabindex=\"0\"\n role=\"button\"\n class=\"po-lookup-button po-lookup-button-trigger po-field-icon\"\n [class.po-field-icon-disabled]=\"isDisabled\"\n [ariaLabel]=\"literals.search\"\n (p-change-event)=\"openLookup()\"\n (click)=\"!isDisabled && openLookup(); $event.preventDefault()\"\n (keydown.enter)=\"!isDisabled && openLookup(); $event.preventDefault()\"\n >\n <po-icon\n p-icon=\"ICON_SEARCH\"\n [class.po-field-icon]=\"!isDisabled\"\n [class.po-field-icon-aa]=\"!isDisabled && size === 'small'\"\n ></po-icon>\n </div>\n </div>\n </div>\n\n @if (needsHelper) {\n <ng-container *ngTemplateOutlet=\"poHelperTemplate\"></ng-container>\n }\n </div>\n </div>\n }\n\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"isDisabled\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-error-limit]=\"errorLimit\"\n [p-size]=\"size\"\n ></po-field-container-bottom>\n</po-field-container>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PoCleanComponent, selector: "po-clean" }, { kind: "component", type: PoDisclaimerComponent, selector: "po-disclaimer" }, { kind: "component", type: PoFieldContainerBottomComponent, selector: "po-field-container-bottom", inputs: ["p-append-in-body", "p-disabled", "p-error-pattern", "p-error-limit", "p-help", "p-size", "p-helper", "p-show-helper"] }, { kind: "component", type: PoFieldContainerComponent, selector: "po-field-container", inputs: ["p-disabled", "p-id", "p-label", "p-help", "p-helper", "p-show-helper", "p-text-wrap", "p-optional", "p-required", "p-show-required", "p-size", "p-compact-label"] }, { kind: "component", type: PoHelperComponent, selector: "po-helper" }, { kind: "component", type: PoIconComponent, selector: "po-icon", inputs: ["p-icon"] }, { kind: "component", type: PoLoadingIconComponent, selector: "po-loading-icon", inputs: ["p-neutral-color", "p-size", "p-in-overlay"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
47724
47672
  }
47725
47673
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoLookupComponent, decorators: [{
47726
47674
  type: Component,
47727
- args: [{ selector: 'po-lookup', changeDetection: ChangeDetectionStrategy.OnPush, providers: providers$2, standalone: false, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n@let needsHelper = !label && (poHelperComponent() || poHelper.hideAdditionalHelp);\n\n<ng-template #poHelperTemplate>\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"isDisabled\"\n [p-append-in-body]=\"appendBox\"\n ></po-helper>\n</ng-template>\n\n<po-field-container\n [p-disabled]=\"isDisabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n [p-compact-label]=\"compactLabel()\"\n>\n @if (!disclaimers.length) {\n <div\n class=\"po-field-container-content po-lookup\"\n [class.po-lookup-disabled]=\"disabled\"\n [class.po-lookup-loading]=\"loading\"\n >\n <div class=\"po-field-container-content-helper-wrapper\">\n <div class=\"po-field-container-input\">\n <input\n #inp\n class=\"po-lookup-input po-lookup-input-trigger\"\n [ngClass]=\"clean && inp.value ? 'po-input-double-icon-right' : 'po-input-icon-right'\"\n [id]=\"id\"\n type=\"text\"\n [autocomplete]=\"autocomplete\"\n [disabled]=\"isDisabled\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n (blur)=\"searchEvent()\"\n (keydown)=\"onKeyDown($event)\"\n />\n <div class=\"po-field-icon-container-right po-lookup-buttons\">\n @if (loading) {\n <div class=\"po-lookup-button po-lookup-button-loading\">\n <po-loading-icon class=\"po-lookup-loading-icon\" [p-size]=\"mapSizeToIcon(size)\"></po-loading-icon>\n </div>\n } @else {\n @if (clean && !isDisabled && !!inp.value) {\n <po-clean\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"literals.clean\"\n class=\"po-lookup-button po-lookup-button-clean\"\n [class.po-lookup-button-aa]=\"size === 'small'\"\n [p-element-ref]=\"inp\"\n [p-size]=\"size\"\n (p-change-event)=\"cleanModel()\"\n (click)=\"cleanModel(); $event.preventDefault()\"\n (keydown.enter)=\"cleanModel(); $event.preventDefault()\"\n ></po-clean>\n }\n }\n <div\n #iconLookup\n tabindex=\"0\"\n role=\"button\"\n class=\"po-lookup-button po-lookup-button-trigger po-field-icon\"\n [class.po-field-icon-disabled]=\"isDisabled\"\n [ariaLabel]=\"literals.search\"\n (p-change-event)=\"openLookup()\"\n (click)=\"!isDisabled && openLookup(); $event.preventDefault()\"\n (keydown.enter)=\"!isDisabled && openLookup(); $event.preventDefault()\"\n >\n <po-icon\n p-icon=\"ICON_SEARCH\"\n [class.po-field-icon]=\"!isDisabled\"\n [class.po-field-icon-aa]=\"!isDisabled && size === 'small'\"\n ></po-icon>\n </div>\n </div>\n </div>\n\n @if (needsHelper) {\n <ng-container *ngTemplateOutlet=\"poHelperTemplate\"></ng-container>\n }\n </div>\n </div>\n } @else {\n <div\n class=\"po-field-container-content po-lookup\"\n [class.po-lookup-disabled]=\"disabled\"\n [class.po-lookup-loading]=\"loading\"\n >\n <div class=\"po-field-container-content-helper-wrapper\">\n <div class=\"po-field-container-input\">\n <div\n #inp\n [tabindex]=\"isDisabled ? -1 : 0\"\n class=\"po-lookup-input po-input-icon-right po-icon-input\"\n [ngClass]=\"clean && inp.value ? 'po-input-double-icon-right' : 'po-input-icon-right'\"\n [class.po-lookup-input-auto]=\"autoHeight\"\n [class.po-lookup-input-static]=\"!autoHeight\"\n [class.po-lookup-input-padding-button-clean]=\"clean || loading\"\n [class.po-lookup-input-disabled]=\"isDisabled\"\n [class.po-lookup-input-auto-dynamic-height]=\"isExpandedHeight\"\n (blur)=\"onBlur()\"\n (keydown)=\"onKeyDown($event)\"\n >\n @if (placeholder && !disclaimers?.length) {\n <span class=\"po-lookup-input-placeholder\">{{ placeholder }}</span>\n }\n @for (disclaimer of visibleDisclaimers; track disclaimer) {\n <po-disclaimer\n class=\"po-lookup-input-disclaimer\"\n [p-label]=\"disclaimer.label\"\n [p-value]=\"disclaimer.value\"\n [p-hide-close]=\"disclaimer.value === '' || isDisabled\"\n [class.po-clickable]=\"disclaimer.value === '' && !isDisabled\"\n (p-close-action)=\"closeDisclaimer(disclaimer.value)\"\n ></po-disclaimer>\n }\n </div>\n <div class=\"po-field-icon-container-right po-lookup-buttons\">\n @if (loading) {\n <div class=\"po-lookup-button po-lookup-button-loading\">\n <po-loading-icon class=\"po-lookup-loading-icon\" [p-size]=\"mapSizeToIcon(size)\"></po-loading-icon>\n </div>\n } @else {\n @if (clean && !isDisabled && !!inp.value) {\n <po-clean\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"literals.clean\"\n class=\"po-lookup-button po-lookup-button-clean\"\n [p-element-ref]=\"inp\"\n [p-size]=\"size\"\n (p-change-event)=\"cleanModel()\"\n (click)=\"cleanModel(); $event.preventDefault()\"\n (keydown.enter)=\"cleanModel(); $event.preventDefault()\"\n ></po-clean>\n }\n }\n <div\n #iconLookup\n tabindex=\"0\"\n role=\"button\"\n class=\"po-lookup-button po-lookup-button-trigger po-field-icon\"\n [class.po-field-icon-disabled]=\"isDisabled\"\n [ariaLabel]=\"literals.search\"\n (p-change-event)=\"openLookup()\"\n (click)=\"!isDisabled && openLookup(); $event.preventDefault()\"\n (keydown.enter)=\"!isDisabled && openLookup(); $event.preventDefault()\"\n >\n <po-icon\n p-icon=\"ICON_SEARCH\"\n [class.po-field-icon]=\"!isDisabled\"\n [class.po-field-icon-aa]=\"!isDisabled && size === 'small'\"\n ></po-icon>\n </div>\n </div>\n </div>\n\n @if (needsHelper) {\n <ng-container *ngTemplateOutlet=\"poHelperTemplate\"></ng-container>\n }\n </div>\n </div>\n }\n\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"isDisabled\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-error-limit]=\"errorLimit\"\n [p-size]=\"size\"\n ></po-field-container-bottom>\n</po-field-container>\n" }]
47675
+ args: [{ selector: 'po-lookup', changeDetection: ChangeDetectionStrategy.OnPush, providers: providers$2, standalone: false, template: "@let poHelper = setHelper(label, additionalHelpTooltip);\n@let needsHelper = !label && (poHelperComponent() || poHelper.hideAdditionalHelp);\n\n<ng-template #poHelperTemplate>\n <po-helper\n #helperEl\n class=\"po-field-helper-button\"\n [p-size]=\"size\"\n [p-helper]=\"poHelper.helperSettings\"\n [p-disabled]=\"isDisabled\"\n [p-append-in-body]=\"appendBox\"\n ></po-helper>\n</ng-template>\n\n<po-field-container\n [p-disabled]=\"isDisabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n [p-helper]=\"label ? poHelper.helperSettings : undefined\"\n [p-show-helper]=\"label ? displayAdditionalHelp : undefined\"\n [p-size]=\"size\"\n [p-text-wrap]=\"labelTextWrap()\"\n [p-compact-label]=\"compactLabel()\"\n>\n @if (!disclaimers.length) {\n <div\n class=\"po-field-container-content po-lookup\"\n [class.po-lookup-disabled]=\"disabled\"\n [class.po-lookup-loading]=\"loading\"\n >\n <div class=\"po-field-container-content-helper-wrapper\">\n <div class=\"po-field-container-input\">\n <input\n #inp\n class=\"po-lookup-input po-lookup-input-trigger\"\n [ngClass]=\"clean && inp.value ? 'po-input-double-icon-right' : 'po-input-icon-right'\"\n [id]=\"id\"\n type=\"text\"\n [autocomplete]=\"autocomplete\"\n [disabled]=\"isDisabled\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n (blur)=\"searchEvent()\"\n (keydown)=\"onKeyDown($event)\"\n />\n <div class=\"po-field-icon-container-right po-lookup-buttons\">\n @if (loading) {\n <div class=\"po-lookup-button po-lookup-button-loading\">\n <po-loading-icon class=\"po-lookup-loading-icon\" [p-size]=\"mapSizeToIcon(size)\"></po-loading-icon>\n </div>\n } @else {\n @if (clean && !isDisabled && !!inp.value) {\n <po-clean\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"literals.clean\"\n class=\"po-lookup-button po-lookup-button-clean\"\n [class.po-lookup-button-aa]=\"size === 'small'\"\n [p-element-ref]=\"inp\"\n [p-size]=\"size\"\n (p-change-event)=\"cleanModel()\"\n (click)=\"cleanModel(); $event.preventDefault()\"\n (keydown.enter)=\"cleanModel(); $event.preventDefault()\"\n ></po-clean>\n }\n }\n <div\n #iconLookup\n tabindex=\"0\"\n role=\"button\"\n class=\"po-lookup-button po-lookup-button-trigger po-field-icon\"\n [class.po-field-icon-disabled]=\"isDisabled\"\n [ariaLabel]=\"literals.search\"\n (p-change-event)=\"openLookup()\"\n (click)=\"!isDisabled && openLookup(); $event.preventDefault()\"\n (keydown.enter)=\"!isDisabled && openLookup(); $event.preventDefault()\"\n >\n <po-icon\n p-icon=\"ICON_SEARCH\"\n [class.po-field-icon]=\"!isDisabled\"\n [class.po-field-icon-aa]=\"!isDisabled && size === 'small'\"\n ></po-icon>\n </div>\n </div>\n </div>\n\n @if (needsHelper) {\n <ng-container *ngTemplateOutlet=\"poHelperTemplate\"></ng-container>\n }\n </div>\n </div>\n } @else {\n <div\n class=\"po-field-container-content po-lookup\"\n [class.po-lookup-disabled]=\"disabled\"\n [class.po-lookup-loading]=\"loading\"\n >\n <div class=\"po-field-container-content-helper-wrapper\">\n <div class=\"po-field-container-input\">\n <div\n #inp\n [tabindex]=\"isDisabled ? -1 : 0\"\n class=\"po-lookup-input po-input-icon-right po-icon-input\"\n [ngClass]=\"clean && inp.value ? 'po-input-double-icon-right' : 'po-input-icon-right'\"\n [class.po-lookup-input-auto]=\"autoHeight\"\n [class.po-lookup-input-static]=\"!autoHeight\"\n [class.po-lookup-input-padding-button-clean]=\"clean || loading\"\n [class.po-lookup-input-disabled]=\"isDisabled\"\n [class.po-lookup-input-auto-dynamic-height]=\"isExpandedHeight\"\n (blur)=\"onBlur()\"\n (keydown)=\"onKeyDown($event)\"\n >\n @if (placeholder && !disclaimers?.length) {\n <span class=\"po-lookup-input-placeholder\">{{ placeholder }}</span>\n }\n @for (disclaimer of visibleDisclaimers; track $index) {\n <po-disclaimer\n class=\"po-lookup-input-disclaimer\"\n [p-label]=\"disclaimer.label\"\n [p-value]=\"disclaimer.value\"\n [p-hide-close]=\"disclaimer.value === '' || isDisabled\"\n [class.po-clickable]=\"disclaimer.value === '' && !isDisabled\"\n (p-close-action)=\"closeDisclaimer(disclaimer.value)\"\n ></po-disclaimer>\n }\n </div>\n <div class=\"po-field-icon-container-right po-lookup-buttons\">\n @if (loading) {\n <div class=\"po-lookup-button po-lookup-button-loading\">\n <po-loading-icon class=\"po-lookup-loading-icon\" [p-size]=\"mapSizeToIcon(size)\"></po-loading-icon>\n </div>\n } @else {\n @if (clean && !isDisabled && !!inp.value) {\n <po-clean\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"literals.clean\"\n class=\"po-lookup-button po-lookup-button-clean\"\n [p-element-ref]=\"inp\"\n [p-size]=\"size\"\n (p-change-event)=\"cleanModel()\"\n (click)=\"cleanModel(); $event.preventDefault()\"\n (keydown.enter)=\"cleanModel(); $event.preventDefault()\"\n ></po-clean>\n }\n }\n <div\n #iconLookup\n tabindex=\"0\"\n role=\"button\"\n class=\"po-lookup-button po-lookup-button-trigger po-field-icon\"\n [class.po-field-icon-disabled]=\"isDisabled\"\n [ariaLabel]=\"literals.search\"\n (p-change-event)=\"openLookup()\"\n (click)=\"!isDisabled && openLookup(); $event.preventDefault()\"\n (keydown.enter)=\"!isDisabled && openLookup(); $event.preventDefault()\"\n >\n <po-icon\n p-icon=\"ICON_SEARCH\"\n [class.po-field-icon]=\"!isDisabled\"\n [class.po-field-icon-aa]=\"!isDisabled && size === 'small'\"\n ></po-icon>\n </div>\n </div>\n </div>\n\n @if (needsHelper) {\n <ng-container *ngTemplateOutlet=\"poHelperTemplate\"></ng-container>\n }\n </div>\n </div>\n }\n\n <po-field-container-bottom\n [p-append-in-body]=\"appendBox\"\n [p-help]=\"help\"\n [p-disabled]=\"isDisabled\"\n [p-error-pattern]=\"getErrorPattern()\"\n [p-error-limit]=\"errorLimit\"\n [p-size]=\"size\"\n ></po-field-container-bottom>\n</po-field-container>\n" }]
47728
47676
  }], ctorParameters: () => [], propDecorators: { helperEl: [{
47729
47677
  type: ViewChild,
47730
47678
  args: ['helperEl', { read: PoHelperComponent, static: false }]
@@ -56074,7 +56022,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
56074
56022
  * @description
56075
56023
  *
56076
56024
  * Módulo dos componentes: po-checkbox, po-checkbox-group, po-combo, po-datepicker, po-datetimepicker, po-datepicker-range, po-email, po-input,
56077
- * po-lookup, po-number, po-multiselect, po-password, po-radio-group, po-select, po-switch, po-textarea, po-upload, po-url e po-search-ai.
56025
+ * po-lookup, po-number, po-multiselect, po-password, po-radio-group, po-select, po-switch, po-textarea, po-timepicker, po-upload, po-url e po-search-ai.
56078
56026
  *
56079
56027
  * > Não esqueça de importar o módulo `FormsModule` para usar os componentes de formulários e caso esteja trabalhando com
56080
56028
  * > formulários reativos, importe o módulo `ReactiveFormsModule`, ambos nativos do Angular.
@@ -61145,11 +61093,11 @@ class PoMenuItemComponent {
61145
61093
  }
61146
61094
  }
61147
61095
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
61148
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: PoMenuItemComponent, isStandalone: false, selector: "po-menu-item", inputs: { action: ["p-action", "action"], badgeAlert: ["p-badge-alert", "badgeAlert"], badgeColor: ["p-badge-color", "badgeColor"], collapsedMenu: ["p-collapsed-menu", "collapsedMenu"], icon: ["p-icon", "icon"], id: ["p-id", "id"], isOpened: ["p-is-opened", "isOpened"], label: ["p-label", "label"], level: ["p-level", "level"], link: ["p-link", "link"], shortLabel: ["p-short-label", "shortLabel"], type: ["p-type", "type"], badgeValue: ["p-badge-value", "badgeValue"], isSelected: ["p-is-selected", "isSelected"], isSubItem: ["p-is-sub-item", "isSubItem"], subItems: ["p-sub-items", "subItems"] }, viewQueries: [{ propertyName: "menuSubItems", first: true, predicate: ["menuSubItems"], descendants: true }], ngImport: i0, template: "<!-- menu com link interno -->\n@if (type === 'internalLink') {\n <a\n class=\"po-menu-item-link\"\n role=\"menuitem\"\n [attr.aria-label]=\"label\"\n [routerLink]=\"link\"\n (keydown.enter)=\"clickMenuItem($event)\"\n (keydown.space)=\"clickMenuItem($event)\"\n p-tooltip-position=\"right\"\n [p-tooltip]=\"collapsedMenu && shortLabel ? shortLabel : undefined\"\n [p-append-in-body]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"menuItemTemplate\"></ng-container>\n </a>\n}\n<!-- menu com link externo -->\n@if (type === 'externalLink') {\n <a\n class=\"po-menu-item-link\"\n role=\"menuitem\"\n [attr.aria-label]=\"label\"\n [href]=\"link\"\n (keydown.enter)=\"clickMenuItem($event)\"\n (keydown.space)=\"clickMenuItem($event)\"\n p-tooltip-position=\"right\"\n [p-tooltip]=\"collapsedMenu && shortLabel ? shortLabel : undefined\"\n [p-append-in-body]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"menuItemTemplate\"></ng-container>\n </a>\n}\n<!-- menu sem link -->\n@if (type === 'noLink') {\n <a\n class=\"po-menu-item-link\"\n href=\"javascript:;\"\n role=\"menuitem\"\n [attr.aria-label]=\"label\"\n (keydown.enter)=\"clickMenuItem($event)\"\n (keydown.space)=\"clickMenuItem($event)\"\n p-tooltip-position=\"right\"\n [p-tooltip]=\"collapsedMenu && shortLabel ? shortLabel : undefined\"\n [p-append-in-body]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"menuItemTemplate\"></ng-container>\n </a>\n}\n<!-- menu sem dados -->\n@if (type === 'noData') {\n <div class=\"po-menu-item-link\" role=\"none\">\n <ng-container *ngTemplateOutlet=\"menuItemTemplate\"></ng-container>\n </div>\n}\n<!-- menu com sub itens -->\n@if (type === 'subItems') {\n <div class=\"po-menu-item-link po-clickable\" role=\"menuitem\" [attr.aria-expanded]=\"isOpened ? true : false\">\n <ng-container *ngTemplateOutlet=\"menuItemTemplate\"></ng-container>\n <div\n #menuSubItems\n class=\"po-menu-sub-items\"\n [hidden]=\"collapsedMenu || !isOpened\"\n [attr.aria-expanded]=\"isOpened ? true : false\"\n [attr.aria-hidden]=\"!isOpened ? true : false\"\n role=\"group\"\n [style.maxHeight.px]=\"maxHeight\"\n >\n <ul class=\"po-menu-sub-items-list\">\n @for (subItem of subItems; track subItem) {\n <li class=\"po-menu-sub-items-list-item\" [attr.aria-level]=\"subItem.level\">\n <po-menu-item\n p-is-sub-item\n [p-action]=\"subItem.action\"\n [p-badge-alert]=\"subItem.badgeAlert\"\n [p-badge-color]=\"subItem.badge ? subItem.badge.color : undefined\"\n [p-badge-value]=\"subItem.badge ? subItem.badge.value : undefined\"\n [p-id]=\"subItem.id\"\n [p-label]=\"subItem.label\"\n [p-level]=\"subItem.level\"\n [p-link]=\"subItem.link\"\n [p-sub-items]=\"subItem.subItems\"\n [p-type]=\"subItem.type\"\n ></po-menu-item>\n </li>\n }\n </ul>\n </div>\n </div>\n}\n\n<ng-template #menuItemTemplate>\n <div\n p-tooltip-position=\"right\"\n [p-tooltip]=\"type === 'subItems' && collapsedMenu && shortLabel ? shortLabel : undefined\"\n [p-append-in-body]=\"true\"\n class=\"po-menu-item\"\n [tabindex]=\"type === 'subItems' ? 0 : -1\"\n [attr.aria-label]=\"label\"\n [attr.role]=\"type === 'subItems' ? 'menuitem' : undefined\"\n [class.po-menu-icon-container]=\"level === 1 && icon\"\n [class.po-menu-item-selected]=\"isSelected\"\n [class.po-menu-item-level-two]=\"level === 2\"\n [class.po-menu-item-level-three]=\"level === 3\"\n [class.po-menu-item-level-four]=\"level === 4\"\n [class.po-menu-item-grouper-up]=\"type === 'subItems' && isOpened\"\n [class.po-menu-item-grouper-down]=\"type === 'subItems' && !isOpened\"\n [class.po-menu-item-no-data]=\"type === 'noData'\"\n [class.po-menu-sub-item-selected]=\"isSelectedSubItem\"\n (click)=\"clickMenuItem($event)\"\n (keydown.enter)=\"clickMenuItem($event)\"\n (keydown.space)=\"clickMenuItem($event)\"\n >\n @if (level === 1 && icon) {\n <po-icon aria-hidden=\"true\" class=\"po-menu-icon-item\" [p-icon]=\"icon\"></po-icon>\n }\n\n @if (type === 'subItems' && !collapsedMenu) {\n <po-icon\n class=\"po-menu-group-icon\"\n [p-icon]=\"isOpened ? 'ICON_ARROW_UP po-field-icon' : 'ICON_ARROW_DOWN po-field-icon'\"\n ></po-icon>\n }\n\n <span [class.po-menu-icon-label]=\"level === 1 && icon\">\n {{ label }}\n </span>\n\n @if (canShowBadge) {\n <po-badge\n aria-hidden=\"true\"\n [ngClass]=\"!collapsedMenu ? 'po-menu-badge-align' : 'po-menu-badge-align-collapsed'\"\n [p-color]=\"badgeColor\"\n [p-value]=\"badgeValue\"\n ></po-badge>\n }\n\n @if (badgeAlert) {\n <span\n aria-hidden=\"true\"\n class=\"po-color-07\"\n [ngClass]=\"!collapsedMenu ? 'po-menu-badge-alert' : 'po-menu-badge-alert-collapsed'\"\n ></span>\n }\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: PoBadgeComponent, selector: "po-badge" }, { kind: "component", type: PoIconComponent, selector: "po-icon", inputs: ["p-icon"] }, { kind: "directive", type: PoTooltipDirective, selector: "[p-tooltip]" }, { kind: "component", type: PoMenuItemComponent, selector: "po-menu-item", inputs: ["p-action", "p-badge-alert", "p-badge-color", "p-collapsed-menu", "p-icon", "p-id", "p-is-opened", "p-label", "p-level", "p-link", "p-short-label", "p-type", "p-badge-value", "p-is-selected", "p-is-sub-item", "p-sub-items"] }] });
61096
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: PoMenuItemComponent, isStandalone: false, selector: "po-menu-item", inputs: { action: ["p-action", "action"], badgeAlert: ["p-badge-alert", "badgeAlert"], badgeColor: ["p-badge-color", "badgeColor"], collapsedMenu: ["p-collapsed-menu", "collapsedMenu"], icon: ["p-icon", "icon"], id: ["p-id", "id"], isOpened: ["p-is-opened", "isOpened"], label: ["p-label", "label"], level: ["p-level", "level"], link: ["p-link", "link"], shortLabel: ["p-short-label", "shortLabel"], type: ["p-type", "type"], badgeValue: ["p-badge-value", "badgeValue"], isSelected: ["p-is-selected", "isSelected"], isSubItem: ["p-is-sub-item", "isSubItem"], subItems: ["p-sub-items", "subItems"] }, viewQueries: [{ propertyName: "menuSubItems", first: true, predicate: ["menuSubItems"], descendants: true }], ngImport: i0, template: "<!-- menu com link interno -->\n@if (type === 'internalLink') {\n <a\n class=\"po-menu-item-link\"\n role=\"menuitem\"\n [attr.aria-label]=\"label\"\n [routerLink]=\"link\"\n (keydown.enter)=\"clickMenuItem($event)\"\n (keydown.space)=\"clickMenuItem($event)\"\n p-tooltip-position=\"right\"\n [p-tooltip]=\"collapsedMenu && shortLabel ? shortLabel : undefined\"\n [p-append-in-body]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"menuItemTemplate\"></ng-container>\n </a>\n}\n<!-- menu com link externo -->\n@if (type === 'externalLink') {\n <a\n class=\"po-menu-item-link\"\n role=\"menuitem\"\n [attr.aria-label]=\"label\"\n [href]=\"link\"\n (keydown.enter)=\"clickMenuItem($event)\"\n (keydown.space)=\"clickMenuItem($event)\"\n p-tooltip-position=\"right\"\n [p-tooltip]=\"collapsedMenu && shortLabel ? shortLabel : undefined\"\n [p-append-in-body]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"menuItemTemplate\"></ng-container>\n </a>\n}\n<!-- menu sem link -->\n@if (type === 'noLink') {\n <a\n class=\"po-menu-item-link\"\n href=\"javascript:;\"\n role=\"menuitem\"\n [attr.aria-label]=\"label\"\n (keydown.enter)=\"clickMenuItem($event)\"\n (keydown.space)=\"clickMenuItem($event)\"\n p-tooltip-position=\"right\"\n [p-tooltip]=\"collapsedMenu && shortLabel ? shortLabel : undefined\"\n [p-append-in-body]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"menuItemTemplate\"></ng-container>\n </a>\n}\n<!-- menu sem dados -->\n@if (type === 'noData') {\n <div class=\"po-menu-item-link\" role=\"none\">\n <ng-container *ngTemplateOutlet=\"menuItemTemplate\"></ng-container>\n </div>\n}\n<!-- menu com sub itens -->\n@if (type === 'subItems') {\n <div class=\"po-menu-item-link po-clickable\" role=\"menuitem\" [attr.aria-expanded]=\"isOpened ? true : false\">\n <ng-container *ngTemplateOutlet=\"menuItemTemplate\"></ng-container>\n <div\n #menuSubItems\n class=\"po-menu-sub-items\"\n [hidden]=\"collapsedMenu || !isOpened\"\n [attr.aria-expanded]=\"isOpened ? true : false\"\n [attr.aria-hidden]=\"!isOpened ? true : false\"\n role=\"group\"\n [style.maxHeight.px]=\"maxHeight\"\n >\n <ul class=\"po-menu-sub-items-list\">\n @for (subItem of subItems; track $index) {\n <li class=\"po-menu-sub-items-list-item\" [attr.aria-level]=\"subItem.level\">\n <po-menu-item\n p-is-sub-item\n [p-action]=\"subItem.action\"\n [p-badge-alert]=\"subItem.badgeAlert\"\n [p-badge-color]=\"subItem.badge ? subItem.badge.color : undefined\"\n [p-badge-value]=\"subItem.badge ? subItem.badge.value : undefined\"\n [p-id]=\"subItem.id\"\n [p-label]=\"subItem.label\"\n [p-level]=\"subItem.level\"\n [p-link]=\"subItem.link\"\n [p-sub-items]=\"subItem.subItems\"\n [p-type]=\"subItem.type\"\n ></po-menu-item>\n </li>\n }\n </ul>\n </div>\n </div>\n}\n\n<ng-template #menuItemTemplate>\n <div\n p-tooltip-position=\"right\"\n [p-tooltip]=\"type === 'subItems' && collapsedMenu && shortLabel ? shortLabel : undefined\"\n [p-append-in-body]=\"true\"\n class=\"po-menu-item\"\n [tabindex]=\"type === 'subItems' ? 0 : -1\"\n [attr.aria-label]=\"label\"\n [attr.role]=\"type === 'subItems' ? 'menuitem' : undefined\"\n [class.po-menu-icon-container]=\"level === 1 && icon\"\n [class.po-menu-item-selected]=\"isSelected\"\n [class.po-menu-item-level-two]=\"level === 2\"\n [class.po-menu-item-level-three]=\"level === 3\"\n [class.po-menu-item-level-four]=\"level === 4\"\n [class.po-menu-item-grouper-up]=\"type === 'subItems' && isOpened\"\n [class.po-menu-item-grouper-down]=\"type === 'subItems' && !isOpened\"\n [class.po-menu-item-no-data]=\"type === 'noData'\"\n [class.po-menu-sub-item-selected]=\"isSelectedSubItem\"\n (click)=\"clickMenuItem($event)\"\n (keydown.enter)=\"clickMenuItem($event)\"\n (keydown.space)=\"clickMenuItem($event)\"\n >\n @if (level === 1 && icon) {\n <po-icon aria-hidden=\"true\" class=\"po-menu-icon-item\" [p-icon]=\"icon\"></po-icon>\n }\n\n @if (type === 'subItems' && !collapsedMenu) {\n <po-icon\n class=\"po-menu-group-icon\"\n [p-icon]=\"isOpened ? 'ICON_ARROW_UP po-field-icon' : 'ICON_ARROW_DOWN po-field-icon'\"\n ></po-icon>\n }\n\n <span [class.po-menu-icon-label]=\"level === 1 && icon\">\n {{ label }}\n </span>\n\n @if (canShowBadge) {\n <po-badge\n aria-hidden=\"true\"\n [ngClass]=\"!collapsedMenu ? 'po-menu-badge-align' : 'po-menu-badge-align-collapsed'\"\n [p-color]=\"badgeColor\"\n [p-value]=\"badgeValue\"\n ></po-badge>\n }\n\n @if (badgeAlert) {\n <span\n aria-hidden=\"true\"\n class=\"po-color-07\"\n [ngClass]=\"!collapsedMenu ? 'po-menu-badge-alert' : 'po-menu-badge-alert-collapsed'\"\n ></span>\n }\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: PoBadgeComponent, selector: "po-badge" }, { kind: "component", type: PoIconComponent, selector: "po-icon", inputs: ["p-icon"] }, { kind: "directive", type: PoTooltipDirective, selector: "[p-tooltip]" }, { kind: "component", type: PoMenuItemComponent, selector: "po-menu-item", inputs: ["p-action", "p-badge-alert", "p-badge-color", "p-collapsed-menu", "p-icon", "p-id", "p-is-opened", "p-label", "p-level", "p-link", "p-short-label", "p-type", "p-badge-value", "p-is-selected", "p-is-sub-item", "p-sub-items"] }] });
61149
61097
  }
61150
61098
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoMenuItemComponent, decorators: [{
61151
61099
  type: Component,
61152
- args: [{ selector: 'po-menu-item', standalone: false, template: "<!-- menu com link interno -->\n@if (type === 'internalLink') {\n <a\n class=\"po-menu-item-link\"\n role=\"menuitem\"\n [attr.aria-label]=\"label\"\n [routerLink]=\"link\"\n (keydown.enter)=\"clickMenuItem($event)\"\n (keydown.space)=\"clickMenuItem($event)\"\n p-tooltip-position=\"right\"\n [p-tooltip]=\"collapsedMenu && shortLabel ? shortLabel : undefined\"\n [p-append-in-body]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"menuItemTemplate\"></ng-container>\n </a>\n}\n<!-- menu com link externo -->\n@if (type === 'externalLink') {\n <a\n class=\"po-menu-item-link\"\n role=\"menuitem\"\n [attr.aria-label]=\"label\"\n [href]=\"link\"\n (keydown.enter)=\"clickMenuItem($event)\"\n (keydown.space)=\"clickMenuItem($event)\"\n p-tooltip-position=\"right\"\n [p-tooltip]=\"collapsedMenu && shortLabel ? shortLabel : undefined\"\n [p-append-in-body]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"menuItemTemplate\"></ng-container>\n </a>\n}\n<!-- menu sem link -->\n@if (type === 'noLink') {\n <a\n class=\"po-menu-item-link\"\n href=\"javascript:;\"\n role=\"menuitem\"\n [attr.aria-label]=\"label\"\n (keydown.enter)=\"clickMenuItem($event)\"\n (keydown.space)=\"clickMenuItem($event)\"\n p-tooltip-position=\"right\"\n [p-tooltip]=\"collapsedMenu && shortLabel ? shortLabel : undefined\"\n [p-append-in-body]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"menuItemTemplate\"></ng-container>\n </a>\n}\n<!-- menu sem dados -->\n@if (type === 'noData') {\n <div class=\"po-menu-item-link\" role=\"none\">\n <ng-container *ngTemplateOutlet=\"menuItemTemplate\"></ng-container>\n </div>\n}\n<!-- menu com sub itens -->\n@if (type === 'subItems') {\n <div class=\"po-menu-item-link po-clickable\" role=\"menuitem\" [attr.aria-expanded]=\"isOpened ? true : false\">\n <ng-container *ngTemplateOutlet=\"menuItemTemplate\"></ng-container>\n <div\n #menuSubItems\n class=\"po-menu-sub-items\"\n [hidden]=\"collapsedMenu || !isOpened\"\n [attr.aria-expanded]=\"isOpened ? true : false\"\n [attr.aria-hidden]=\"!isOpened ? true : false\"\n role=\"group\"\n [style.maxHeight.px]=\"maxHeight\"\n >\n <ul class=\"po-menu-sub-items-list\">\n @for (subItem of subItems; track subItem) {\n <li class=\"po-menu-sub-items-list-item\" [attr.aria-level]=\"subItem.level\">\n <po-menu-item\n p-is-sub-item\n [p-action]=\"subItem.action\"\n [p-badge-alert]=\"subItem.badgeAlert\"\n [p-badge-color]=\"subItem.badge ? subItem.badge.color : undefined\"\n [p-badge-value]=\"subItem.badge ? subItem.badge.value : undefined\"\n [p-id]=\"subItem.id\"\n [p-label]=\"subItem.label\"\n [p-level]=\"subItem.level\"\n [p-link]=\"subItem.link\"\n [p-sub-items]=\"subItem.subItems\"\n [p-type]=\"subItem.type\"\n ></po-menu-item>\n </li>\n }\n </ul>\n </div>\n </div>\n}\n\n<ng-template #menuItemTemplate>\n <div\n p-tooltip-position=\"right\"\n [p-tooltip]=\"type === 'subItems' && collapsedMenu && shortLabel ? shortLabel : undefined\"\n [p-append-in-body]=\"true\"\n class=\"po-menu-item\"\n [tabindex]=\"type === 'subItems' ? 0 : -1\"\n [attr.aria-label]=\"label\"\n [attr.role]=\"type === 'subItems' ? 'menuitem' : undefined\"\n [class.po-menu-icon-container]=\"level === 1 && icon\"\n [class.po-menu-item-selected]=\"isSelected\"\n [class.po-menu-item-level-two]=\"level === 2\"\n [class.po-menu-item-level-three]=\"level === 3\"\n [class.po-menu-item-level-four]=\"level === 4\"\n [class.po-menu-item-grouper-up]=\"type === 'subItems' && isOpened\"\n [class.po-menu-item-grouper-down]=\"type === 'subItems' && !isOpened\"\n [class.po-menu-item-no-data]=\"type === 'noData'\"\n [class.po-menu-sub-item-selected]=\"isSelectedSubItem\"\n (click)=\"clickMenuItem($event)\"\n (keydown.enter)=\"clickMenuItem($event)\"\n (keydown.space)=\"clickMenuItem($event)\"\n >\n @if (level === 1 && icon) {\n <po-icon aria-hidden=\"true\" class=\"po-menu-icon-item\" [p-icon]=\"icon\"></po-icon>\n }\n\n @if (type === 'subItems' && !collapsedMenu) {\n <po-icon\n class=\"po-menu-group-icon\"\n [p-icon]=\"isOpened ? 'ICON_ARROW_UP po-field-icon' : 'ICON_ARROW_DOWN po-field-icon'\"\n ></po-icon>\n }\n\n <span [class.po-menu-icon-label]=\"level === 1 && icon\">\n {{ label }}\n </span>\n\n @if (canShowBadge) {\n <po-badge\n aria-hidden=\"true\"\n [ngClass]=\"!collapsedMenu ? 'po-menu-badge-align' : 'po-menu-badge-align-collapsed'\"\n [p-color]=\"badgeColor\"\n [p-value]=\"badgeValue\"\n ></po-badge>\n }\n\n @if (badgeAlert) {\n <span\n aria-hidden=\"true\"\n class=\"po-color-07\"\n [ngClass]=\"!collapsedMenu ? 'po-menu-badge-alert' : 'po-menu-badge-alert-collapsed'\"\n ></span>\n }\n </div>\n</ng-template>\n" }]
61100
+ args: [{ selector: 'po-menu-item', standalone: false, template: "<!-- menu com link interno -->\n@if (type === 'internalLink') {\n <a\n class=\"po-menu-item-link\"\n role=\"menuitem\"\n [attr.aria-label]=\"label\"\n [routerLink]=\"link\"\n (keydown.enter)=\"clickMenuItem($event)\"\n (keydown.space)=\"clickMenuItem($event)\"\n p-tooltip-position=\"right\"\n [p-tooltip]=\"collapsedMenu && shortLabel ? shortLabel : undefined\"\n [p-append-in-body]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"menuItemTemplate\"></ng-container>\n </a>\n}\n<!-- menu com link externo -->\n@if (type === 'externalLink') {\n <a\n class=\"po-menu-item-link\"\n role=\"menuitem\"\n [attr.aria-label]=\"label\"\n [href]=\"link\"\n (keydown.enter)=\"clickMenuItem($event)\"\n (keydown.space)=\"clickMenuItem($event)\"\n p-tooltip-position=\"right\"\n [p-tooltip]=\"collapsedMenu && shortLabel ? shortLabel : undefined\"\n [p-append-in-body]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"menuItemTemplate\"></ng-container>\n </a>\n}\n<!-- menu sem link -->\n@if (type === 'noLink') {\n <a\n class=\"po-menu-item-link\"\n href=\"javascript:;\"\n role=\"menuitem\"\n [attr.aria-label]=\"label\"\n (keydown.enter)=\"clickMenuItem($event)\"\n (keydown.space)=\"clickMenuItem($event)\"\n p-tooltip-position=\"right\"\n [p-tooltip]=\"collapsedMenu && shortLabel ? shortLabel : undefined\"\n [p-append-in-body]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"menuItemTemplate\"></ng-container>\n </a>\n}\n<!-- menu sem dados -->\n@if (type === 'noData') {\n <div class=\"po-menu-item-link\" role=\"none\">\n <ng-container *ngTemplateOutlet=\"menuItemTemplate\"></ng-container>\n </div>\n}\n<!-- menu com sub itens -->\n@if (type === 'subItems') {\n <div class=\"po-menu-item-link po-clickable\" role=\"menuitem\" [attr.aria-expanded]=\"isOpened ? true : false\">\n <ng-container *ngTemplateOutlet=\"menuItemTemplate\"></ng-container>\n <div\n #menuSubItems\n class=\"po-menu-sub-items\"\n [hidden]=\"collapsedMenu || !isOpened\"\n [attr.aria-expanded]=\"isOpened ? true : false\"\n [attr.aria-hidden]=\"!isOpened ? true : false\"\n role=\"group\"\n [style.maxHeight.px]=\"maxHeight\"\n >\n <ul class=\"po-menu-sub-items-list\">\n @for (subItem of subItems; track $index) {\n <li class=\"po-menu-sub-items-list-item\" [attr.aria-level]=\"subItem.level\">\n <po-menu-item\n p-is-sub-item\n [p-action]=\"subItem.action\"\n [p-badge-alert]=\"subItem.badgeAlert\"\n [p-badge-color]=\"subItem.badge ? subItem.badge.color : undefined\"\n [p-badge-value]=\"subItem.badge ? subItem.badge.value : undefined\"\n [p-id]=\"subItem.id\"\n [p-label]=\"subItem.label\"\n [p-level]=\"subItem.level\"\n [p-link]=\"subItem.link\"\n [p-sub-items]=\"subItem.subItems\"\n [p-type]=\"subItem.type\"\n ></po-menu-item>\n </li>\n }\n </ul>\n </div>\n </div>\n}\n\n<ng-template #menuItemTemplate>\n <div\n p-tooltip-position=\"right\"\n [p-tooltip]=\"type === 'subItems' && collapsedMenu && shortLabel ? shortLabel : undefined\"\n [p-append-in-body]=\"true\"\n class=\"po-menu-item\"\n [tabindex]=\"type === 'subItems' ? 0 : -1\"\n [attr.aria-label]=\"label\"\n [attr.role]=\"type === 'subItems' ? 'menuitem' : undefined\"\n [class.po-menu-icon-container]=\"level === 1 && icon\"\n [class.po-menu-item-selected]=\"isSelected\"\n [class.po-menu-item-level-two]=\"level === 2\"\n [class.po-menu-item-level-three]=\"level === 3\"\n [class.po-menu-item-level-four]=\"level === 4\"\n [class.po-menu-item-grouper-up]=\"type === 'subItems' && isOpened\"\n [class.po-menu-item-grouper-down]=\"type === 'subItems' && !isOpened\"\n [class.po-menu-item-no-data]=\"type === 'noData'\"\n [class.po-menu-sub-item-selected]=\"isSelectedSubItem\"\n (click)=\"clickMenuItem($event)\"\n (keydown.enter)=\"clickMenuItem($event)\"\n (keydown.space)=\"clickMenuItem($event)\"\n >\n @if (level === 1 && icon) {\n <po-icon aria-hidden=\"true\" class=\"po-menu-icon-item\" [p-icon]=\"icon\"></po-icon>\n }\n\n @if (type === 'subItems' && !collapsedMenu) {\n <po-icon\n class=\"po-menu-group-icon\"\n [p-icon]=\"isOpened ? 'ICON_ARROW_UP po-field-icon' : 'ICON_ARROW_DOWN po-field-icon'\"\n ></po-icon>\n }\n\n <span [class.po-menu-icon-label]=\"level === 1 && icon\">\n {{ label }}\n </span>\n\n @if (canShowBadge) {\n <po-badge\n aria-hidden=\"true\"\n [ngClass]=\"!collapsedMenu ? 'po-menu-badge-align' : 'po-menu-badge-align-collapsed'\"\n [p-color]=\"badgeColor\"\n [p-value]=\"badgeValue\"\n ></po-badge>\n }\n\n @if (badgeAlert) {\n <span\n aria-hidden=\"true\"\n class=\"po-color-07\"\n [ngClass]=\"!collapsedMenu ? 'po-menu-badge-alert' : 'po-menu-badge-alert-collapsed'\"\n ></span>\n }\n </div>\n</ng-template>\n" }]
61153
61101
  }], propDecorators: { action: [{
61154
61102
  type: Input,
61155
61103
  args: ['p-action']
@@ -65386,11 +65334,11 @@ class PoSlideCirclesComponent {
65386
65334
  /** Evento emitido ao clicar em um controle. */
65387
65335
  click = new EventEmitter();
65388
65336
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoSlideCirclesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
65389
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: PoSlideCirclesComponent, isStandalone: false, selector: "po-slide-circles", inputs: { currentSlideIndex: ["p-current-slide-index", "currentSlideIndex"], items: ["p-items", "items"] }, outputs: { click: "p-click" }, ngImport: i0, template: "<div class=\"po-slide-circles\">\n @for (item of items; track item; let index = $index) {\n <div\n class=\"po-slide-circle\"\n [class.po-slide-active-circle]=\"index === currentSlideIndex\"\n (click)=\"click.emit(index)\"\n ></div>\n }\n</div>\n" });
65337
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: PoSlideCirclesComponent, isStandalone: false, selector: "po-slide-circles", inputs: { currentSlideIndex: ["p-current-slide-index", "currentSlideIndex"], items: ["p-items", "items"] }, outputs: { click: "p-click" }, ngImport: i0, template: "<div class=\"po-slide-circles\">\n @for (item of items; track $index; let index = $index) {\n <div\n class=\"po-slide-circle\"\n [class.po-slide-active-circle]=\"index === currentSlideIndex\"\n (click)=\"click.emit(index)\"\n ></div>\n }\n</div>\n" });
65390
65338
  }
65391
65339
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoSlideCirclesComponent, decorators: [{
65392
65340
  type: Component,
65393
- args: [{ selector: 'po-slide-circles', standalone: false, template: "<div class=\"po-slide-circles\">\n @for (item of items; track item; let index = $index) {\n <div\n class=\"po-slide-circle\"\n [class.po-slide-active-circle]=\"index === currentSlideIndex\"\n (click)=\"click.emit(index)\"\n ></div>\n }\n</div>\n" }]
65341
+ args: [{ selector: 'po-slide-circles', standalone: false, template: "<div class=\"po-slide-circles\">\n @for (item of items; track $index; let index = $index) {\n <div\n class=\"po-slide-circle\"\n [class.po-slide-active-circle]=\"index === currentSlideIndex\"\n (click)=\"click.emit(index)\"\n ></div>\n }\n</div>\n" }]
65394
65342
  }], propDecorators: { currentSlideIndex: [{
65395
65343
  type: Input,
65396
65344
  args: ['p-current-slide-index']
@@ -65892,11 +65840,11 @@ class PoSlideComponent extends PoSlideBaseComponent {
65892
65840
  }
65893
65841
  }
65894
65842
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoSlideComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
65895
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: PoSlideComponent, isStandalone: false, selector: "po-slide", host: { listeners: { "window:resize": "onResize()" } }, queries: [{ propertyName: "slideContentTemplate", first: true, predicate: PoSlideContentTemplateDirective, descendants: true, static: true }], viewQueries: [{ propertyName: "slide", first: true, predicate: ["slide"], descendants: true, static: true }, { propertyName: "itemsElements", predicate: PoSlideItemComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"po-slide-wrapper\">\n <div class=\"po-slide-outer\">\n <div class=\"po-slide-inner\" #slide>\n @for (item of slideItems; track item; let index = $index) {\n <po-slide-item\n [p-action]=\"item.action\"\n [p-data]=\"item\"\n [p-image]=\"item.image\"\n [p-image-height]=\"imageHeight\"\n [p-template]=\"slideContentTemplate\"\n [p-alt]=\"item.alt\"\n [p-link]=\"item.link\"\n >\n </po-slide-item>\n }\n </div>\n\n @if (!hideArrows && hasSlides && slides.length > 1) {\n <po-slide-control p-control=\"previous\" (p-click)=\"previousControl()\"> </po-slide-control>\n }\n\n @if (!hideArrows && hasSlides && slides.length > 1) {\n <po-slide-control p-control=\"next\" (p-click)=\"nextControl()\"> </po-slide-control>\n }\n </div>\n\n @if (hasSlides && slides.length > 1) {\n <po-slide-circles [p-current-slide-index]=\"currentSlideIndex\" [p-items]=\"slideItems\" (p-click)=\"goToItem($event)\">\n </po-slide-circles>\n }\n</div>\n", dependencies: [{ kind: "component", type: PoSlideCirclesComponent, selector: "po-slide-circles", inputs: ["p-current-slide-index", "p-items"], outputs: ["p-click"] }, { kind: "component", type: PoSlideControlComponent, selector: "po-slide-control", inputs: ["p-control"], outputs: ["p-click"] }, { kind: "component", type: PoSlideItemComponent, selector: "po-slide-item", inputs: ["p-action", "p-alt", "p-data", "p-image", "p-image-height", "p-template", "p-link"] }] });
65843
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: PoSlideComponent, isStandalone: false, selector: "po-slide", host: { listeners: { "window:resize": "onResize()" } }, queries: [{ propertyName: "slideContentTemplate", first: true, predicate: PoSlideContentTemplateDirective, descendants: true, static: true }], viewQueries: [{ propertyName: "slide", first: true, predicate: ["slide"], descendants: true, static: true }, { propertyName: "itemsElements", predicate: PoSlideItemComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"po-slide-wrapper\">\n <div class=\"po-slide-outer\">\n <div class=\"po-slide-inner\" #slide>\n @for (item of slideItems; track $index; let index = $index) {\n <po-slide-item\n [p-action]=\"item.action\"\n [p-data]=\"item\"\n [p-image]=\"item.image\"\n [p-image-height]=\"imageHeight\"\n [p-template]=\"slideContentTemplate\"\n [p-alt]=\"item.alt\"\n [p-link]=\"item.link\"\n >\n </po-slide-item>\n }\n </div>\n\n @if (!hideArrows && hasSlides && slides.length > 1) {\n <po-slide-control p-control=\"previous\" (p-click)=\"previousControl()\"> </po-slide-control>\n }\n\n @if (!hideArrows && hasSlides && slides.length > 1) {\n <po-slide-control p-control=\"next\" (p-click)=\"nextControl()\"> </po-slide-control>\n }\n </div>\n\n @if (hasSlides && slides.length > 1) {\n <po-slide-circles [p-current-slide-index]=\"currentSlideIndex\" [p-items]=\"slideItems\" (p-click)=\"goToItem($event)\">\n </po-slide-circles>\n }\n</div>\n", dependencies: [{ kind: "component", type: PoSlideCirclesComponent, selector: "po-slide-circles", inputs: ["p-current-slide-index", "p-items"], outputs: ["p-click"] }, { kind: "component", type: PoSlideControlComponent, selector: "po-slide-control", inputs: ["p-control"], outputs: ["p-click"] }, { kind: "component", type: PoSlideItemComponent, selector: "po-slide-item", inputs: ["p-action", "p-alt", "p-data", "p-image", "p-image-height", "p-template", "p-link"] }] });
65896
65844
  }
65897
65845
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoSlideComponent, decorators: [{
65898
65846
  type: Component,
65899
- args: [{ selector: 'po-slide', standalone: false, template: "<div class=\"po-slide-wrapper\">\n <div class=\"po-slide-outer\">\n <div class=\"po-slide-inner\" #slide>\n @for (item of slideItems; track item; let index = $index) {\n <po-slide-item\n [p-action]=\"item.action\"\n [p-data]=\"item\"\n [p-image]=\"item.image\"\n [p-image-height]=\"imageHeight\"\n [p-template]=\"slideContentTemplate\"\n [p-alt]=\"item.alt\"\n [p-link]=\"item.link\"\n >\n </po-slide-item>\n }\n </div>\n\n @if (!hideArrows && hasSlides && slides.length > 1) {\n <po-slide-control p-control=\"previous\" (p-click)=\"previousControl()\"> </po-slide-control>\n }\n\n @if (!hideArrows && hasSlides && slides.length > 1) {\n <po-slide-control p-control=\"next\" (p-click)=\"nextControl()\"> </po-slide-control>\n }\n </div>\n\n @if (hasSlides && slides.length > 1) {\n <po-slide-circles [p-current-slide-index]=\"currentSlideIndex\" [p-items]=\"slideItems\" (p-click)=\"goToItem($event)\">\n </po-slide-circles>\n }\n</div>\n" }]
65847
+ args: [{ selector: 'po-slide', standalone: false, template: "<div class=\"po-slide-wrapper\">\n <div class=\"po-slide-outer\">\n <div class=\"po-slide-inner\" #slide>\n @for (item of slideItems; track $index; let index = $index) {\n <po-slide-item\n [p-action]=\"item.action\"\n [p-data]=\"item\"\n [p-image]=\"item.image\"\n [p-image-height]=\"imageHeight\"\n [p-template]=\"slideContentTemplate\"\n [p-alt]=\"item.alt\"\n [p-link]=\"item.link\"\n >\n </po-slide-item>\n }\n </div>\n\n @if (!hideArrows && hasSlides && slides.length > 1) {\n <po-slide-control p-control=\"previous\" (p-click)=\"previousControl()\"> </po-slide-control>\n }\n\n @if (!hideArrows && hasSlides && slides.length > 1) {\n <po-slide-control p-control=\"next\" (p-click)=\"nextControl()\"> </po-slide-control>\n }\n </div>\n\n @if (hasSlides && slides.length > 1) {\n <po-slide-circles [p-current-slide-index]=\"currentSlideIndex\" [p-items]=\"slideItems\" (p-click)=\"goToItem($event)\">\n </po-slide-circles>\n }\n</div>\n" }]
65900
65848
  }], propDecorators: { slideContentTemplate: [{
65901
65849
  type: ContentChild,
65902
65850
  args: [PoSlideContentTemplateDirective, { static: true }]
@@ -68198,11 +68146,11 @@ class PoContextTabButtonComponent extends PoTabButtonComponent {
68198
68146
  this.activeCloseIcon = false;
68199
68147
  }
68200
68148
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoContextTabButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
68201
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.19", type: PoContextTabButtonComponent, isStandalone: false, selector: "po-context-tab-button", inputs: { hideClose: ["p-hide-close", "hideClose"], showTooltip: ["p-show-tooltip", "showTooltip"], literals: ["p-literals", "literals"] }, outputs: { close: "p-close", changeVisible: "p-change-visible" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\n #tabButtom\n role=\"tab\"\n [p-tooltip]=\"widthButton > 239 || showTooltip ? label : ''\"\n p-tooltip-position=\"top\"\n class=\"po-tab-button-default\"\n [id]=\"id\"\n [ngClass]=\"{ 'po-tab-focusable': !disabled && !hide }\"\n [attr.tabindex]=\"disabled ? null : 0\"\n [attr.aria-selected]=\"active\"\n [class.po-tab-button-active]=\"active\"\n [class.po-tab-button-disabled]=\"disabled\"\n (click)=\"onClick()\"\n (focusin)=\"onFocusIn()\"\n (focusout)=\"onFocusOut()\"\n (keyup.enter)=\"onClick()\"\n>\n <div class=\"po-tab-button-content\">\n <span [ngClass]=\"!hideClose ? 'po-context-tab-button-label' : 'po-tab-button-label'\" class=\"po-text-ellipsis\">\n {{ label }}\n </span>\n <div\n class=\"po-tab-button-content-close-icon\"\n *ngIf=\"!hideClose\"\n (click)=\"closeTab($event)\"\n (keydown)=\"closeTab($event)\"\n >\n <po-icon\n [tabIndex]=\"activeCloseIcon ? 0 : -1\"\n [attr.aria-label]=\"literals.close\"\n p-icon=\"ICON_CLOSE\"\n class=\"po-tab-button-icon-close\"\n ></po-icon>\n </div>\n </div>\n</div>\n<div [ngClass]=\"{ 'po-tab-border-active': active, 'po-tab-border-disabled': !active }\"></div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PoIconComponent, selector: "po-icon", inputs: ["p-icon"] }, { kind: "directive", type: PoTooltipDirective, selector: "[p-tooltip]" }] });
68149
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: PoContextTabButtonComponent, isStandalone: false, selector: "po-context-tab-button", inputs: { hideClose: ["p-hide-close", "hideClose"], showTooltip: ["p-show-tooltip", "showTooltip"], literals: ["p-literals", "literals"] }, outputs: { close: "p-close", changeVisible: "p-change-visible" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\n #tabButtom\n role=\"tab\"\n [p-tooltip]=\"widthButton > 239 || showTooltip ? label : ''\"\n p-tooltip-position=\"top\"\n class=\"po-tab-button-default\"\n [id]=\"id\"\n [ngClass]=\"{ 'po-tab-focusable': !disabled && !hide }\"\n [attr.tabindex]=\"disabled ? null : 0\"\n [attr.aria-selected]=\"active\"\n [class.po-tab-button-active]=\"active\"\n [class.po-tab-button-disabled]=\"disabled\"\n (click)=\"onClick()\"\n (focusin)=\"onFocusIn()\"\n (focusout)=\"onFocusOut()\"\n (keyup.enter)=\"onClick()\"\n>\n <div class=\"po-tab-button-content\">\n <span [ngClass]=\"!hideClose ? 'po-context-tab-button-label' : 'po-tab-button-label'\" class=\"po-text-ellipsis\">\n {{ label }}\n </span>\n @if (!hideClose) {\n <div class=\"po-tab-button-content-close-icon\" (click)=\"closeTab($event)\" (keydown)=\"closeTab($event)\">\n <po-icon\n [tabIndex]=\"activeCloseIcon ? 0 : -1\"\n [attr.aria-label]=\"literals.close\"\n p-icon=\"ICON_CLOSE\"\n class=\"po-tab-button-icon-close\"\n ></po-icon>\n </div>\n }\n </div>\n</div>\n<div [ngClass]=\"{ 'po-tab-border-active': active, 'po-tab-border-disabled': !active }\"></div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: PoIconComponent, selector: "po-icon", inputs: ["p-icon"] }, { kind: "directive", type: PoTooltipDirective, selector: "[p-tooltip]" }] });
68202
68150
  }
68203
68151
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoContextTabButtonComponent, decorators: [{
68204
68152
  type: Component,
68205
- args: [{ selector: 'po-context-tab-button', standalone: false, template: "<div\n #tabButtom\n role=\"tab\"\n [p-tooltip]=\"widthButton > 239 || showTooltip ? label : ''\"\n p-tooltip-position=\"top\"\n class=\"po-tab-button-default\"\n [id]=\"id\"\n [ngClass]=\"{ 'po-tab-focusable': !disabled && !hide }\"\n [attr.tabindex]=\"disabled ? null : 0\"\n [attr.aria-selected]=\"active\"\n [class.po-tab-button-active]=\"active\"\n [class.po-tab-button-disabled]=\"disabled\"\n (click)=\"onClick()\"\n (focusin)=\"onFocusIn()\"\n (focusout)=\"onFocusOut()\"\n (keyup.enter)=\"onClick()\"\n>\n <div class=\"po-tab-button-content\">\n <span [ngClass]=\"!hideClose ? 'po-context-tab-button-label' : 'po-tab-button-label'\" class=\"po-text-ellipsis\">\n {{ label }}\n </span>\n <div\n class=\"po-tab-button-content-close-icon\"\n *ngIf=\"!hideClose\"\n (click)=\"closeTab($event)\"\n (keydown)=\"closeTab($event)\"\n >\n <po-icon\n [tabIndex]=\"activeCloseIcon ? 0 : -1\"\n [attr.aria-label]=\"literals.close\"\n p-icon=\"ICON_CLOSE\"\n class=\"po-tab-button-icon-close\"\n ></po-icon>\n </div>\n </div>\n</div>\n<div [ngClass]=\"{ 'po-tab-border-active': active, 'po-tab-border-disabled': !active }\"></div>\n" }]
68153
+ args: [{ selector: 'po-context-tab-button', standalone: false, template: "<div\n #tabButtom\n role=\"tab\"\n [p-tooltip]=\"widthButton > 239 || showTooltip ? label : ''\"\n p-tooltip-position=\"top\"\n class=\"po-tab-button-default\"\n [id]=\"id\"\n [ngClass]=\"{ 'po-tab-focusable': !disabled && !hide }\"\n [attr.tabindex]=\"disabled ? null : 0\"\n [attr.aria-selected]=\"active\"\n [class.po-tab-button-active]=\"active\"\n [class.po-tab-button-disabled]=\"disabled\"\n (click)=\"onClick()\"\n (focusin)=\"onFocusIn()\"\n (focusout)=\"onFocusOut()\"\n (keyup.enter)=\"onClick()\"\n>\n <div class=\"po-tab-button-content\">\n <span [ngClass]=\"!hideClose ? 'po-context-tab-button-label' : 'po-tab-button-label'\" class=\"po-text-ellipsis\">\n {{ label }}\n </span>\n @if (!hideClose) {\n <div class=\"po-tab-button-content-close-icon\" (click)=\"closeTab($event)\" (keydown)=\"closeTab($event)\">\n <po-icon\n [tabIndex]=\"activeCloseIcon ? 0 : -1\"\n [attr.aria-label]=\"literals.close\"\n p-icon=\"ICON_CLOSE\"\n class=\"po-tab-button-icon-close\"\n ></po-icon>\n </div>\n }\n </div>\n</div>\n<div [ngClass]=\"{ 'po-tab-border-active': active, 'po-tab-border-disabled': !active }\"></div>\n" }]
68206
68154
  }], propDecorators: { hideClose: [{
68207
68155
  type: Input,
68208
68156
  args: ['p-hide-close']
@@ -70888,11 +70836,11 @@ class PoHeaderToolsComponent {
70888
70836
  }
70889
70837
  }
70890
70838
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoHeaderToolsComponent, deps: [{ token: i1$1.Router }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
70891
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: PoHeaderToolsComponent, isStandalone: false, selector: "po-header-tools", inputs: { forceActionTools: { classPropertyName: "forceActionTools", publicName: "p-force-actions-tools", isSignal: false, isRequired: false, transformFunction: null }, actionTools: { classPropertyName: "actionTools", publicName: "p-actions-tools", isSignal: false, isRequired: false, transformFunction: null }, literals: { classPropertyName: "literals", publicName: "p-literals", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "p-size", isSignal: true, isRequired: false, transformFunction: null }, headerTemplate: { classPropertyName: "headerTemplate", publicName: "p-header-template", isSignal: false, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "buttonActionElements", predicate: ["buttonActionElement"], descendants: true, read: ElementRef }, { propertyName: "buttonActionComponents", predicate: ["buttonActionElement"], descendants: true }, { propertyName: "poPopupActions", predicate: ["poPopupAction"], descendants: true }, { propertyName: "poPopoverActions", predicate: ["poPopoverAction"], descendants: true }], ngImport: i0, template: "<div class=\"po-header-nav-tools\">\n @if (headerTemplate) {\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n }\n @for (action of actionTools; track action?.label; let i = $index) {\n <li [class.po-header-nav-item-small]=\"i !== actionTools.length - 1\">\n <po-button\n #buttonActionElement\n [p-tooltip]=\"action?.tooltip\"\n [p-icon]=\"action?.badge ? badge : action?.icon || 'an an-dots-nine'\"\n p-kind=\"tertiary\"\n (p-click)=\"onClickAction(i)\"\n [class.po-header-selected-tool]=\"checkSelected(i)\"\n [p-aria-expanded]=\"checkSelected(i)\"\n [p-aria-label]=\"getAriaLabel(action)\"\n [p-size]=\"size()\"\n >\n </po-button>\n\n <ng-template #badge>\n <i class=\"po-header-badge\" [class]=\"action?.icon || 'an an-bell'\">\n <po-badge class=\"po-header-status\" [p-value]=\"action?.badge\"></po-badge>\n </i>\n </ng-template>\n\n <po-popup\n #poPopupAction\n [p-actions]=\"action?.items\"\n [p-target]=\"buttonActionElements?.get(i)\"\n [p-hide-arrow]=\"true\"\n (p-close)=\"onClosePopup(i)\"\n [p-size]=\"size()\"\n >\n </po-popup>\n\n @if (action?.popover) {\n <po-popover\n #poPopoverAction\n p-position=\"bottom-right\"\n [p-width]=\"action.popover.width\"\n [p-target]=\"buttonActionElements?.get(i)\"\n [p-hide-arrow]=\"true\"\n [p-corner-aligned]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"action.popover?.content\"></ng-container>\n </po-popover>\n }\n </li>\n }\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PoButtonComponent, selector: "po-button" }, { kind: "component", type: PoBadgeComponent, selector: "po-badge" }, { kind: "component", type: PoPopoverComponent, selector: "po-popover" }, { kind: "directive", type: PoTooltipDirective, selector: "[p-tooltip]" }, { kind: "component", type: PoPopupComponent, selector: "po-popup" }] });
70839
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: PoHeaderToolsComponent, isStandalone: false, selector: "po-header-tools", inputs: { forceActionTools: { classPropertyName: "forceActionTools", publicName: "p-force-actions-tools", isSignal: false, isRequired: false, transformFunction: null }, actionTools: { classPropertyName: "actionTools", publicName: "p-actions-tools", isSignal: false, isRequired: false, transformFunction: null }, literals: { classPropertyName: "literals", publicName: "p-literals", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "p-size", isSignal: true, isRequired: false, transformFunction: null }, headerTemplate: { classPropertyName: "headerTemplate", publicName: "p-header-template", isSignal: false, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "buttonActionElements", predicate: ["buttonActionElement"], descendants: true, read: ElementRef }, { propertyName: "buttonActionComponents", predicate: ["buttonActionElement"], descendants: true }, { propertyName: "poPopupActions", predicate: ["poPopupAction"], descendants: true }, { propertyName: "poPopoverActions", predicate: ["poPopoverAction"], descendants: true }], ngImport: i0, template: "<div class=\"po-header-nav-tools\">\n @if (headerTemplate) {\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n }\n @for (action of actionTools; track action?.label; let i = $index) {\n <li [class.po-header-nav-item-small]=\"i !== actionTools.length - 1\">\n <po-button\n #buttonActionElement\n [p-tooltip]=\"action?.tooltip\"\n [p-icon]=\"action?.badge ? badge : action?.icon || 'an an-dots-nine'\"\n p-kind=\"tertiary\"\n (p-click)=\"onClickAction(i)\"\n [class.po-header-selected-tool]=\"checkSelected(i)\"\n [p-aria-expanded]=\"checkSelected(i)\"\n [p-aria-label]=\"getAriaLabel(action)\"\n [p-size]=\"size()\"\n >\n </po-button>\n\n <ng-template #badge>\n <i class=\"po-header-badge\" [class]=\"action?.icon || 'an an-bell'\">\n <po-badge class=\"po-header-status\" [p-value]=\"action?.badge\"></po-badge>\n </i>\n </ng-template>\n\n <po-popup\n #poPopupAction\n [p-actions]=\"action?.items\"\n [p-target]=\"buttonActionElements?.get(i)\"\n [p-hide-arrow]=\"true\"\n (p-close)=\"onClosePopup(i); action?.onClose?.(action?.label)\"\n (p-open)=\"action?.onOpen?.(action?.label)\"\n [p-size]=\"size()\"\n >\n </po-popup>\n\n @if (action?.popover) {\n <po-popover\n #poPopoverAction\n p-position=\"bottom-right\"\n [p-width]=\"action.popover.width\"\n [p-target]=\"buttonActionElements?.get(i)\"\n [p-hide-arrow]=\"true\"\n [p-corner-aligned]=\"true\"\n (p-close)=\"action?.onClose?.(action?.label)\"\n (p-open)=\"action?.onOpen?.(action?.label)\"\n >\n <ng-container *ngTemplateOutlet=\"action.popover?.content\"></ng-container>\n </po-popover>\n }\n </li>\n }\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PoButtonComponent, selector: "po-button" }, { kind: "component", type: PoBadgeComponent, selector: "po-badge" }, { kind: "component", type: PoPopoverComponent, selector: "po-popover" }, { kind: "directive", type: PoTooltipDirective, selector: "[p-tooltip]" }, { kind: "component", type: PoPopupComponent, selector: "po-popup" }] });
70892
70840
  }
70893
70841
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoHeaderToolsComponent, decorators: [{
70894
70842
  type: Component,
70895
- args: [{ selector: 'po-header-tools', standalone: false, template: "<div class=\"po-header-nav-tools\">\n @if (headerTemplate) {\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n }\n @for (action of actionTools; track action?.label; let i = $index) {\n <li [class.po-header-nav-item-small]=\"i !== actionTools.length - 1\">\n <po-button\n #buttonActionElement\n [p-tooltip]=\"action?.tooltip\"\n [p-icon]=\"action?.badge ? badge : action?.icon || 'an an-dots-nine'\"\n p-kind=\"tertiary\"\n (p-click)=\"onClickAction(i)\"\n [class.po-header-selected-tool]=\"checkSelected(i)\"\n [p-aria-expanded]=\"checkSelected(i)\"\n [p-aria-label]=\"getAriaLabel(action)\"\n [p-size]=\"size()\"\n >\n </po-button>\n\n <ng-template #badge>\n <i class=\"po-header-badge\" [class]=\"action?.icon || 'an an-bell'\">\n <po-badge class=\"po-header-status\" [p-value]=\"action?.badge\"></po-badge>\n </i>\n </ng-template>\n\n <po-popup\n #poPopupAction\n [p-actions]=\"action?.items\"\n [p-target]=\"buttonActionElements?.get(i)\"\n [p-hide-arrow]=\"true\"\n (p-close)=\"onClosePopup(i)\"\n [p-size]=\"size()\"\n >\n </po-popup>\n\n @if (action?.popover) {\n <po-popover\n #poPopoverAction\n p-position=\"bottom-right\"\n [p-width]=\"action.popover.width\"\n [p-target]=\"buttonActionElements?.get(i)\"\n [p-hide-arrow]=\"true\"\n [p-corner-aligned]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"action.popover?.content\"></ng-container>\n </po-popover>\n }\n </li>\n }\n</div>\n" }]
70843
+ args: [{ selector: 'po-header-tools', standalone: false, template: "<div class=\"po-header-nav-tools\">\n @if (headerTemplate) {\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n }\n @for (action of actionTools; track action?.label; let i = $index) {\n <li [class.po-header-nav-item-small]=\"i !== actionTools.length - 1\">\n <po-button\n #buttonActionElement\n [p-tooltip]=\"action?.tooltip\"\n [p-icon]=\"action?.badge ? badge : action?.icon || 'an an-dots-nine'\"\n p-kind=\"tertiary\"\n (p-click)=\"onClickAction(i)\"\n [class.po-header-selected-tool]=\"checkSelected(i)\"\n [p-aria-expanded]=\"checkSelected(i)\"\n [p-aria-label]=\"getAriaLabel(action)\"\n [p-size]=\"size()\"\n >\n </po-button>\n\n <ng-template #badge>\n <i class=\"po-header-badge\" [class]=\"action?.icon || 'an an-bell'\">\n <po-badge class=\"po-header-status\" [p-value]=\"action?.badge\"></po-badge>\n </i>\n </ng-template>\n\n <po-popup\n #poPopupAction\n [p-actions]=\"action?.items\"\n [p-target]=\"buttonActionElements?.get(i)\"\n [p-hide-arrow]=\"true\"\n (p-close)=\"onClosePopup(i); action?.onClose?.(action?.label)\"\n (p-open)=\"action?.onOpen?.(action?.label)\"\n [p-size]=\"size()\"\n >\n </po-popup>\n\n @if (action?.popover) {\n <po-popover\n #poPopoverAction\n p-position=\"bottom-right\"\n [p-width]=\"action.popover.width\"\n [p-target]=\"buttonActionElements?.get(i)\"\n [p-hide-arrow]=\"true\"\n [p-corner-aligned]=\"true\"\n (p-close)=\"action?.onClose?.(action?.label)\"\n (p-open)=\"action?.onOpen?.(action?.label)\"\n >\n <ng-container *ngTemplateOutlet=\"action.popover?.content\"></ng-container>\n </po-popover>\n }\n </li>\n }\n</div>\n" }]
70896
70844
  }], ctorParameters: () => [{ type: i1$1.Router }, { type: i0.ChangeDetectorRef }], propDecorators: { buttonActionElements: [{
70897
70845
  type: ViewChildren,
70898
70846
  args: ['buttonActionElement', { read: ElementRef }]
@@ -70972,11 +70920,11 @@ class PoHeaderCustomerComponent {
70972
70920
  }
70973
70921
  }
70974
70922
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoHeaderCustomerComponent, deps: [{ token: PoLanguageService }], target: i0.ɵɵFactoryTarget.Component });
70975
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: PoHeaderCustomerComponent, isStandalone: false, selector: "po-header-customer", inputs: { headerUser: { classPropertyName: "headerUser", publicName: "p-header-user", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "p-size", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "poPopupAction", first: true, predicate: ["poPopupAction"], descendants: true }, { propertyName: "poPopoverAction", first: true, predicate: ["poPopoverAction"], descendants: true }], ngImport: i0, template: "<div class=\"po-header-nav-tools\" (click)=\"onClickUserSection()\" (keydown)=\"onKeyDownCustomer($event)\">\n <li\n #targetRef\n tabindex=\"0\"\n class=\"po-header-nav-customer-container\"\n (click)=\"onClickPopup()\"\n role=\"menu\"\n [attr.aria-label]=\"literals.labelUser\"\n >\n <div class=\"po-header-nav-customer-brand\">\n <img [src]=\"headerUser?.customerBrand\" alt=\"User\" />\n </div>\n\n <div class=\"po-header-nav-customer-divider\"></div>\n\n <div class=\"po-header-nav-customer-avatar-wrapper\">\n <div class=\"po-header-nav-customer-avatar\">\n <img [src]=\"headerUser?.avatar\" alt=\"Avatar\" />\n </div>\n @if (headerUser?.status) {\n <po-badge class=\"po-header-nav-avatar-status\" p-size=\"small\" [p-status]=\"headerUser.status\"></po-badge>\n }\n </div>\n </li>\n\n <li class=\"po-header-nav-customer-avatar-wrapper po-header-icon-small\">\n <div class=\"po-header-nav-customer-avatar\">\n <img [src]=\"headerUser?.avatar\" alt=\"Avatar\" />\n </div>\n @if (headerUser?.status) {\n <po-badge class=\"po-header-nav-avatar-status\" p-size=\"small\" [p-status]=\"headerUser.status\"></po-badge>\n }\n </li>\n</div>\n\n@if (headerUser?.items?.length) {\n <po-popup\n #poPopupAction\n [p-actions]=\"headerUser.items\"\n [p-target]=\"targetRef\"\n [p-hide-arrow]=\"true\"\n p-position=\"bottom-left\"\n [p-size]=\"size()\"\n >\n </po-popup>\n}\n\n@if (headerUser?.popover) {\n <po-popover\n #poPopoverAction\n p-position=\"bottom-right\"\n [p-width]=\"headerUser.popover.width\"\n [p-target]=\"targetRef\"\n [p-hide-arrow]=\"true\"\n [p-corner-aligned]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"headerUser.popover.content\"></ng-container>\n </po-popover>\n}\n", dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PoBadgeComponent, selector: "po-badge" }, { kind: "component", type: PoPopoverComponent, selector: "po-popover" }, { kind: "component", type: PoPopupComponent, selector: "po-popup" }] });
70923
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: PoHeaderCustomerComponent, isStandalone: false, selector: "po-header-customer", inputs: { headerUser: { classPropertyName: "headerUser", publicName: "p-header-user", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "p-size", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "poPopupAction", first: true, predicate: ["poPopupAction"], descendants: true }, { propertyName: "poPopoverAction", first: true, predicate: ["poPopoverAction"], descendants: true }], ngImport: i0, template: "<div class=\"po-header-nav-tools\" (click)=\"onClickUserSection()\" (keydown)=\"onKeyDownCustomer($event)\">\n <li\n #targetRef\n tabindex=\"0\"\n class=\"po-header-nav-customer-container\"\n (click)=\"onClickPopup()\"\n role=\"menu\"\n [attr.aria-label]=\"literals.labelUser\"\n >\n <div class=\"po-header-nav-customer-brand\">\n <img [src]=\"headerUser?.customerBrand\" alt=\"User\" />\n </div>\n\n <div class=\"po-header-nav-customer-divider\"></div>\n\n <div class=\"po-header-nav-customer-avatar-wrapper\">\n <div class=\"po-header-nav-customer-avatar\">\n <img [src]=\"headerUser?.avatar\" alt=\"Avatar\" />\n </div>\n @if (headerUser?.status) {\n <po-badge class=\"po-header-nav-avatar-status\" p-size=\"small\" [p-status]=\"headerUser.status\"></po-badge>\n }\n </div>\n </li>\n\n <li class=\"po-header-nav-customer-avatar-wrapper po-header-icon-small\">\n <div class=\"po-header-nav-customer-avatar\">\n <img [src]=\"headerUser?.avatar\" alt=\"Avatar\" />\n </div>\n @if (headerUser?.status) {\n <po-badge class=\"po-header-nav-avatar-status\" p-size=\"small\" [p-status]=\"headerUser.status\"></po-badge>\n }\n </li>\n</div>\n\n@if (headerUser?.items?.length) {\n <po-popup\n #poPopupAction\n [p-actions]=\"headerUser.items\"\n [p-target]=\"targetRef\"\n [p-hide-arrow]=\"true\"\n p-position=\"bottom-left\"\n (p-close)=\"headerUser?.onClose?.()\"\n (p-open)=\"headerUser?.onOpen?.()\"\n [p-size]=\"size()\"\n >\n </po-popup>\n}\n\n@if (headerUser?.popover) {\n <po-popover\n #poPopoverAction\n p-position=\"bottom-right\"\n [p-width]=\"headerUser.popover.width\"\n [p-target]=\"targetRef\"\n [p-hide-arrow]=\"true\"\n [p-corner-aligned]=\"true\"\n (p-close)=\"headerUser?.onClose?.()\"\n (p-open)=\"headerUser?.onOpen?.()\"\n >\n <ng-container *ngTemplateOutlet=\"headerUser.popover.content\"></ng-container>\n </po-popover>\n}\n", dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PoBadgeComponent, selector: "po-badge" }, { kind: "component", type: PoPopoverComponent, selector: "po-popover" }, { kind: "component", type: PoPopupComponent, selector: "po-popup" }] });
70976
70924
  }
70977
70925
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoHeaderCustomerComponent, decorators: [{
70978
70926
  type: Component,
70979
- args: [{ selector: 'po-header-customer', standalone: false, template: "<div class=\"po-header-nav-tools\" (click)=\"onClickUserSection()\" (keydown)=\"onKeyDownCustomer($event)\">\n <li\n #targetRef\n tabindex=\"0\"\n class=\"po-header-nav-customer-container\"\n (click)=\"onClickPopup()\"\n role=\"menu\"\n [attr.aria-label]=\"literals.labelUser\"\n >\n <div class=\"po-header-nav-customer-brand\">\n <img [src]=\"headerUser?.customerBrand\" alt=\"User\" />\n </div>\n\n <div class=\"po-header-nav-customer-divider\"></div>\n\n <div class=\"po-header-nav-customer-avatar-wrapper\">\n <div class=\"po-header-nav-customer-avatar\">\n <img [src]=\"headerUser?.avatar\" alt=\"Avatar\" />\n </div>\n @if (headerUser?.status) {\n <po-badge class=\"po-header-nav-avatar-status\" p-size=\"small\" [p-status]=\"headerUser.status\"></po-badge>\n }\n </div>\n </li>\n\n <li class=\"po-header-nav-customer-avatar-wrapper po-header-icon-small\">\n <div class=\"po-header-nav-customer-avatar\">\n <img [src]=\"headerUser?.avatar\" alt=\"Avatar\" />\n </div>\n @if (headerUser?.status) {\n <po-badge class=\"po-header-nav-avatar-status\" p-size=\"small\" [p-status]=\"headerUser.status\"></po-badge>\n }\n </li>\n</div>\n\n@if (headerUser?.items?.length) {\n <po-popup\n #poPopupAction\n [p-actions]=\"headerUser.items\"\n [p-target]=\"targetRef\"\n [p-hide-arrow]=\"true\"\n p-position=\"bottom-left\"\n [p-size]=\"size()\"\n >\n </po-popup>\n}\n\n@if (headerUser?.popover) {\n <po-popover\n #poPopoverAction\n p-position=\"bottom-right\"\n [p-width]=\"headerUser.popover.width\"\n [p-target]=\"targetRef\"\n [p-hide-arrow]=\"true\"\n [p-corner-aligned]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"headerUser.popover.content\"></ng-container>\n </po-popover>\n}\n" }]
70927
+ args: [{ selector: 'po-header-customer', standalone: false, template: "<div class=\"po-header-nav-tools\" (click)=\"onClickUserSection()\" (keydown)=\"onKeyDownCustomer($event)\">\n <li\n #targetRef\n tabindex=\"0\"\n class=\"po-header-nav-customer-container\"\n (click)=\"onClickPopup()\"\n role=\"menu\"\n [attr.aria-label]=\"literals.labelUser\"\n >\n <div class=\"po-header-nav-customer-brand\">\n <img [src]=\"headerUser?.customerBrand\" alt=\"User\" />\n </div>\n\n <div class=\"po-header-nav-customer-divider\"></div>\n\n <div class=\"po-header-nav-customer-avatar-wrapper\">\n <div class=\"po-header-nav-customer-avatar\">\n <img [src]=\"headerUser?.avatar\" alt=\"Avatar\" />\n </div>\n @if (headerUser?.status) {\n <po-badge class=\"po-header-nav-avatar-status\" p-size=\"small\" [p-status]=\"headerUser.status\"></po-badge>\n }\n </div>\n </li>\n\n <li class=\"po-header-nav-customer-avatar-wrapper po-header-icon-small\">\n <div class=\"po-header-nav-customer-avatar\">\n <img [src]=\"headerUser?.avatar\" alt=\"Avatar\" />\n </div>\n @if (headerUser?.status) {\n <po-badge class=\"po-header-nav-avatar-status\" p-size=\"small\" [p-status]=\"headerUser.status\"></po-badge>\n }\n </li>\n</div>\n\n@if (headerUser?.items?.length) {\n <po-popup\n #poPopupAction\n [p-actions]=\"headerUser.items\"\n [p-target]=\"targetRef\"\n [p-hide-arrow]=\"true\"\n p-position=\"bottom-left\"\n (p-close)=\"headerUser?.onClose?.()\"\n (p-open)=\"headerUser?.onOpen?.()\"\n [p-size]=\"size()\"\n >\n </po-popup>\n}\n\n@if (headerUser?.popover) {\n <po-popover\n #poPopoverAction\n p-position=\"bottom-right\"\n [p-width]=\"headerUser.popover.width\"\n [p-target]=\"targetRef\"\n [p-hide-arrow]=\"true\"\n [p-corner-aligned]=\"true\"\n (p-close)=\"headerUser?.onClose?.()\"\n (p-open)=\"headerUser?.onOpen?.()\"\n >\n <ng-container *ngTemplateOutlet=\"headerUser.popover.content\"></ng-container>\n </po-popover>\n}\n" }]
70980
70928
  }], ctorParameters: () => [{ type: PoLanguageService }], propDecorators: { poPopupAction: [{
70981
70929
  type: ViewChild,
70982
70930
  args: ['poPopupAction']