@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.
- package/fesm2022/po-ui-ng-components.mjs +167 -219
- package/fesm2022/po-ui-ng-components.mjs.map +1 -1
- package/lib/components/po-calendar/po-calendar-wrapper/po-calendar-wrapper.component.d.ts +1 -0
- package/lib/components/po-calendar/po-calendar.component.d.ts +2 -0
- package/lib/components/po-field/po-datetimepicker/po-datetimepicker-base.component.d.ts +0 -3
- package/lib/components/po-field/po-datetimepicker/po-datetimepicker.component.d.ts +8 -2
- package/lib/components/po-field/po-field.module.d.ts +1 -1
- package/lib/components/po-field/po-input/po-input.component.d.ts +6 -0
- package/lib/components/po-field/po-timepicker/po-timepicker.component.d.ts +1 -0
- package/lib/components/po-header/interfaces/po-header-action-tool.interface.d.ts +32 -0
- package/lib/components/po-header/interfaces/po-header-user.interface.d.ts +28 -0
- package/lib/components/po-popup/po-popup-base.component.d.ts +1 -0
- package/package.json +4 -4
- package/po-ui-ng-components-21.28.0.tgz +0 -0
- package/schematics/ng-add/index.js +1 -1
- package/schematics/ng-update/v14/index.js +1 -1
- package/schematics/ng-update/v15/index.js +1 -1
- package/schematics/ng-update/v16/index.js +1 -1
- package/schematics/ng-update/v17/index.js +1 -1
- package/schematics/ng-update/v18/index.js +2 -2
- package/schematics/ng-update/v19/index.js +2 -2
- package/schematics/ng-update/v2/index.js +1 -1
- package/schematics/ng-update/v20/index.js +2 -2
- package/schematics/ng-update/v21/index.js +1 -1
- package/schematics/ng-update/v3/index.js +1 -1
- package/schematics/ng-update/v4/index.js +1 -1
- package/schematics/ng-update/v5/index.js +1 -1
- package/schematics/ng-update/v6/index.js +1 -1
- package/types/po-ui-ng-components.d.ts +82 -8
- 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.
|
|
16648
|
-
|
|
16649
|
-
|
|
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()
|
|
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
|
-
|
|
30688
|
-
|
|
30689
|
-
|
|
30690
|
-
|
|
30691
|
-
|
|
30692
|
-
|
|
30693
|
-
|
|
30694
|
-
|
|
30695
|
-
|
|
30696
|
-
|
|
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.
|
|
30701
|
-
this.
|
|
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
|
-
|
|
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.
|
|
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(
|
|
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
|
-
|
|
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;
|
|
30952
|
+
const datePartLength = 10;
|
|
31027
30953
|
const datePart = inputValue.substring(0, datePartLength);
|
|
31028
|
-
const timePart = inputValue.substring(datePartLength + 1).trim();
|
|
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
|
-
|
|
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 =
|
|
31112
|
+
let length = 16;
|
|
31166
31113
|
if (this.showSeconds()) {
|
|
31167
|
-
length +=
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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: "
|
|
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
|
|
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']
|