@po-ui/ng-components 21.27.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 +157 -214
- 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/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 +20 -7
- package/po-ui-ng-components-21.27.0.tgz +0 -0
|
@@ -15444,7 +15444,6 @@ class PoCalendarWrapperComponent {
|
|
|
15444
15444
|
size;
|
|
15445
15445
|
hideTodayButton = false;
|
|
15446
15446
|
hasPresets = false;
|
|
15447
|
-
// Template customizado para o header do calendário. Para uso interno do datepicker/datepicker-range.
|
|
15448
15447
|
headerTemplate;
|
|
15449
15448
|
_locale;
|
|
15450
15449
|
set locale(value) {
|
|
@@ -15456,9 +15455,9 @@ class PoCalendarWrapperComponent {
|
|
|
15456
15455
|
}
|
|
15457
15456
|
headerChange = new EventEmitter();
|
|
15458
15457
|
selectDate = new EventEmitter();
|
|
15458
|
+
selectTodayEvent = new EventEmitter();
|
|
15459
15459
|
hoverDateSource = new Subject();
|
|
15460
15460
|
hoverDate = this.hoverDateSource.pipe(debounceTime$1(100));
|
|
15461
|
-
// Evento para fechar o calendário. Para uso interno do datepicker/datepicker-range.
|
|
15462
15461
|
closeCalendar = new EventEmitter();
|
|
15463
15462
|
currentYear;
|
|
15464
15463
|
displayYear;
|
|
@@ -15731,7 +15730,6 @@ class PoCalendarWrapperComponent {
|
|
|
15731
15730
|
}
|
|
15732
15731
|
return index === this.focusedDayIndex ? 0 : -1;
|
|
15733
15732
|
}
|
|
15734
|
-
// --- 4. Navegação (Setas) ---
|
|
15735
15733
|
onNextMonth() {
|
|
15736
15734
|
const newMonth = this.displayMonthNumber < 11 ? this.displayMonthNumber + 1 : 0;
|
|
15737
15735
|
const newYear = this.displayMonthNumber < 11 ? this.displayYear : this.displayYear + 1;
|
|
@@ -15775,6 +15773,7 @@ class PoCalendarWrapperComponent {
|
|
|
15775
15773
|
this.hoverDateSource.next(null);
|
|
15776
15774
|
}
|
|
15777
15775
|
onSelectToday() {
|
|
15776
|
+
this.selectTodayEvent.emit();
|
|
15778
15777
|
this.onSelectDate(this.today);
|
|
15779
15778
|
if (this.displayMonthNumber !== this.today.getMonth() || this.displayYear !== this.today.getFullYear()) {
|
|
15780
15779
|
this.updateDisplay(this.today.getFullYear(), this.today.getMonth());
|
|
@@ -15835,7 +15834,6 @@ class PoCalendarWrapperComponent {
|
|
|
15835
15834
|
return key === 'Enter' || key === ' ';
|
|
15836
15835
|
}
|
|
15837
15836
|
handleSelectKey(day, index) {
|
|
15838
|
-
// Bloqueia seleção de dias desabilitados
|
|
15839
15837
|
if (this.isDayDisabled(day)) {
|
|
15840
15838
|
return;
|
|
15841
15839
|
}
|
|
@@ -16182,7 +16180,7 @@ class PoCalendarWrapperComponent {
|
|
|
16182
16180
|
return `${index}:${weekDay}`;
|
|
16183
16181
|
}
|
|
16184
16182
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoCalendarWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16185
|
-
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 });
|
|
16186
16184
|
}
|
|
16187
16185
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoCalendarWrapperComponent, decorators: [{
|
|
16188
16186
|
type: Component,
|
|
@@ -16238,6 +16236,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
|
|
|
16238
16236
|
}], selectDate: [{
|
|
16239
16237
|
type: Output,
|
|
16240
16238
|
args: ['p-select-date']
|
|
16239
|
+
}], selectTodayEvent: [{
|
|
16240
|
+
type: Output,
|
|
16241
|
+
args: ['p-select-today']
|
|
16241
16242
|
}], hoverDate: [{
|
|
16242
16243
|
type: Output,
|
|
16243
16244
|
args: ['p-hover-date']
|
|
@@ -16402,6 +16403,7 @@ class PoCalendarComponent extends PoCalendarBaseComponent {
|
|
|
16402
16403
|
selectedIndexYear = null;
|
|
16403
16404
|
selectedMonth;
|
|
16404
16405
|
selectedYear;
|
|
16406
|
+
isTodayPresetSelection = false;
|
|
16405
16407
|
_isRange = signal(false, ...(ngDevMode ? [{ debugName: "_isRange" }] : /* istanbul ignore next */ []));
|
|
16406
16408
|
_rangePresetsValue = signal(false, ...(ngDevMode ? [{ debugName: "_rangePresetsValue" }] : /* istanbul ignore next */ []));
|
|
16407
16409
|
_rangePresetOptionsValue = signal(undefined, ...(ngDevMode ? [{ debugName: "_rangePresetOptionsValue" }] : /* istanbul ignore next */ []));
|
|
@@ -16430,7 +16432,6 @@ class PoCalendarComponent extends PoCalendarBaseComponent {
|
|
|
16430
16432
|
}
|
|
16431
16433
|
const customPresets = hasCustomPresets ? rangePresetOptions : [];
|
|
16432
16434
|
const combined = [...defaultPresets, ...customPresets];
|
|
16433
|
-
// Regra: o preset "today" é obrigatório e deve estar presente mesmo com apenas presets customizados
|
|
16434
16435
|
if (combined.length > 0 && !combined.some(p => p.label.toLowerCase() === 'today')) {
|
|
16435
16436
|
const todayPreset = PO_CALENDAR_DEFAULT_RANGE_PRESETS.find(p => p.label === 'today');
|
|
16436
16437
|
if (todayPreset) {
|
|
@@ -16649,9 +16650,9 @@ class PoCalendarComponent extends PoCalendarBaseComponent {
|
|
|
16649
16650
|
this.value = newValue;
|
|
16650
16651
|
const newModel = this.convertDateToISO(this.value);
|
|
16651
16652
|
this.updateModel(newModel);
|
|
16652
|
-
this.
|
|
16653
|
-
|
|
16654
|
-
|
|
16653
|
+
if (this.isDateTime && this.timerComponent && this.isTodayPresetSelection) {
|
|
16654
|
+
this.close.emit();
|
|
16655
|
+
this.change.emit(newModel);
|
|
16655
16656
|
const now = new Date();
|
|
16656
16657
|
const hours = ('0' + now.getHours()).slice(-2);
|
|
16657
16658
|
const minutes = ('0' + now.getMinutes()).slice(-2);
|
|
@@ -16659,16 +16660,26 @@ class PoCalendarComponent extends PoCalendarBaseComponent {
|
|
|
16659
16660
|
const currentTime = this.showSeconds ? `${hours}:${minutes}:${seconds}` : `${hours}:${minutes}`;
|
|
16660
16661
|
this.timerComponent.writeValue(currentTime);
|
|
16661
16662
|
this.changeTime.emit(currentTime);
|
|
16663
|
+
this.isTodayPresetSelection = false;
|
|
16664
|
+
}
|
|
16665
|
+
else {
|
|
16666
|
+
this.change.emit(newModel);
|
|
16662
16667
|
}
|
|
16663
16668
|
}
|
|
16664
16669
|
onHoverDate(date) {
|
|
16665
16670
|
this.hoverValue = date;
|
|
16666
16671
|
}
|
|
16672
|
+
onSelectTodayPreset() {
|
|
16673
|
+
this.isTodayPresetSelection = true;
|
|
16674
|
+
}
|
|
16667
16675
|
onHeaderChange({ month, year }, partType) {
|
|
16668
16676
|
this.updateActivateDateFromHeaderChange(month, year, partType);
|
|
16669
16677
|
this.changeMonthYear.emit({ month, year });
|
|
16670
16678
|
}
|
|
16671
16679
|
onCloseCalendar() {
|
|
16680
|
+
if (this.isDateTime) {
|
|
16681
|
+
return;
|
|
16682
|
+
}
|
|
16672
16683
|
this.change.emit(this.value);
|
|
16673
16684
|
this.close.emit();
|
|
16674
16685
|
}
|
|
@@ -16730,7 +16741,6 @@ class PoCalendarComponent extends PoCalendarBaseComponent {
|
|
|
16730
16741
|
}
|
|
16731
16742
|
return 1; // Presente
|
|
16732
16743
|
};
|
|
16733
|
-
// Ordena em ASC: Futuro → Presente → Passado, proximidade crescente dentro de cada grupo
|
|
16734
16744
|
const sorted = [...presets].sort((a, b) => {
|
|
16735
16745
|
const rangeA = a.dateRange(today);
|
|
16736
16746
|
const rangeB = b.dateRange(today);
|
|
@@ -16746,7 +16756,6 @@ class PoCalendarComponent extends PoCalendarBaseComponent {
|
|
|
16746
16756
|
return distA - distB;
|
|
16747
16757
|
});
|
|
16748
16758
|
const resolvedOrder = order ?? this.rangePresetsOrder;
|
|
16749
|
-
// DESC: inverte completamente a lista (Passado → Presente → Futuro, mais distante primeiro)
|
|
16750
16759
|
return resolvedOrder === 'desc' ? sorted.reverse() : sorted;
|
|
16751
16760
|
}
|
|
16752
16761
|
normalizeDate(date) {
|
|
@@ -16895,11 +16904,11 @@ class PoCalendarComponent extends PoCalendarBaseComponent {
|
|
|
16895
16904
|
}
|
|
16896
16905
|
}
|
|
16897
16906
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoCalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16898
|
-
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 });
|
|
16899
16908
|
}
|
|
16900
16909
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoCalendarComponent, decorators: [{
|
|
16901
16910
|
type: Component,
|
|
16902
|
-
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" }]
|
|
16903
16912
|
}], ctorParameters: () => [], propDecorators: { timerComponent: [{
|
|
16904
16913
|
type: ViewChild,
|
|
16905
16914
|
args: ['timer']
|
|
@@ -29695,12 +29704,9 @@ class PoDatetimepickerBaseComponent {
|
|
|
29695
29704
|
_size = undefined;
|
|
29696
29705
|
_date;
|
|
29697
29706
|
_timeValue = '';
|
|
29698
|
-
previousValue;
|
|
29699
29707
|
_resolvedMinDate;
|
|
29700
29708
|
_resolvedMaxDate;
|
|
29701
29709
|
hasValidatorRequired;
|
|
29702
|
-
hour = 'T00:00:00-00:00';
|
|
29703
|
-
isExtendedISO = false;
|
|
29704
29710
|
objMask;
|
|
29705
29711
|
onChangeModel = null;
|
|
29706
29712
|
onTouchedModel = null;
|
|
@@ -30088,7 +30094,6 @@ class PoDatetimepickerBaseComponent {
|
|
|
30088
30094
|
else {
|
|
30089
30095
|
this._locale = this.shortLanguage;
|
|
30090
30096
|
}
|
|
30091
|
-
// Recalcula o formato de data baseado no locale (se não foi definido explicitamente)
|
|
30092
30097
|
this._format = this.resolveFormat();
|
|
30093
30098
|
this.objMask = this.buildMask(replaceFormatSeparator(this.format, this.languageService.getDateSeparator(this.localeInput())));
|
|
30094
30099
|
this.refreshValue(this._date);
|
|
@@ -30172,7 +30177,6 @@ class PoDatetimepickerBaseComponent {
|
|
|
30172
30177
|
this.processStringValue(value);
|
|
30173
30178
|
}
|
|
30174
30179
|
this.refreshValue(this._date);
|
|
30175
|
-
// Normaliza o model para ISO 8601 se o valor recebido era Date ou string válida
|
|
30176
30180
|
if (this._date && this._timeValue) {
|
|
30177
30181
|
this.callOnChange(this.getModelValue());
|
|
30178
30182
|
}
|
|
@@ -30203,11 +30207,9 @@ class PoDatetimepickerBaseComponent {
|
|
|
30203
30207
|
if (this.requiredFailed(c.value)) {
|
|
30204
30208
|
return { required: { valid: false } };
|
|
30205
30209
|
}
|
|
30206
|
-
// Validação de range de data (p-min-date / p-max-date)
|
|
30207
30210
|
if (this._date && !this.isDateInRange()) {
|
|
30208
30211
|
return { date: { valid: false } };
|
|
30209
30212
|
}
|
|
30210
|
-
// Validação de range de hora (p-min-time / p-max-time)
|
|
30211
30213
|
if (this._timeValue && !this.isTimeInRange(this._timeValue)) {
|
|
30212
30214
|
return { time: { valid: false } };
|
|
30213
30215
|
}
|
|
@@ -30226,15 +30228,9 @@ class PoDatetimepickerBaseComponent {
|
|
|
30226
30228
|
set timeValue(value) {
|
|
30227
30229
|
this._timeValue = value;
|
|
30228
30230
|
}
|
|
30229
|
-
// Retorna o formato de data efetivo, considerando:
|
|
30230
|
-
// 1. Valor explícito de `p-date-format`
|
|
30231
|
-
// 2. Formato padrão do locale
|
|
30232
30231
|
get format() {
|
|
30233
30232
|
return this._format || this.resolveFormat();
|
|
30234
30233
|
}
|
|
30235
|
-
// Retorna o formato de hora efetivo, considerando:
|
|
30236
|
-
// 1. Valor explícito de `p-format` (timerFormat)
|
|
30237
|
-
// 2. Formato padrão do locale (12h para en, 24h para pt/es/ru)
|
|
30238
30234
|
get resolvedTimerFormat() {
|
|
30239
30235
|
const explicit = this.timerFormat();
|
|
30240
30236
|
if (explicit) {
|
|
@@ -30243,7 +30239,6 @@ class PoDatetimepickerBaseComponent {
|
|
|
30243
30239
|
const localeTimeFormat = PoDatetimepickerTimeFormatByLocale[this.locale] || '24';
|
|
30244
30240
|
return localeTimeFormat === '12' ? PoTimerFormat.Format12 : PoTimerFormat.Format24;
|
|
30245
30241
|
}
|
|
30246
|
-
// Indica se o formato de hora é 12h (AM/PM).
|
|
30247
30242
|
get is12HourFormat() {
|
|
30248
30243
|
return this.resolvedTimerFormat === PoTimerFormat.Format12;
|
|
30249
30244
|
}
|
|
@@ -30280,27 +30275,6 @@ class PoDatetimepickerBaseComponent {
|
|
|
30280
30275
|
mapSizeToIcon(size) {
|
|
30281
30276
|
return mapInputSizeToLoadingIcon(size);
|
|
30282
30277
|
}
|
|
30283
|
-
// Retorna o valor do model no formato ISO 8601 combinando data e hora com timezone local.
|
|
30284
|
-
//
|
|
30285
|
-
// Formato de saída: `yyyy-mm-ddTHH:mm:ss+/-HH:mm` ou `yyyy-mm-ddTHH:mm+/-HH:mm`.
|
|
30286
|
-
//
|
|
30287
|
-
// O componente opera internamente em **local timezone**:
|
|
30288
|
-
// - O valor exibido ao usuário é sempre em horário local.
|
|
30289
|
-
// - O valor emitido no model inclui o offset do timezone local para que consumidores
|
|
30290
|
-
// possam converter para UTC ou outro timezone conforme necessário.
|
|
30291
|
-
// - Ao receber um valor via `writeValue`, strings ISO com timezone são convertidas
|
|
30292
|
-
// para horário local antes de serem armazenadas.
|
|
30293
|
-
// - Objetos `Date` do JavaScript já representam instantes em UTC internamente,
|
|
30294
|
-
// mas são exibidos em horário local — o componente segue esse comportamento.
|
|
30295
|
-
//
|
|
30296
|
-
// Exemplos de saída (timezone -03:00 / Brasília):
|
|
30297
|
-
// - `2026-05-09T14:30:00-03:00`
|
|
30298
|
-
// - `2026-05-09T14:30-03:00`
|
|
30299
|
-
//
|
|
30300
|
-
// Considerações sobre horário de verão:
|
|
30301
|
-
// - O offset é calculado no momento da emissão do valor, usando `Date.getTimezoneOffset()`
|
|
30302
|
-
// da data selecionada. Isso garante que o offset correto seja aplicado mesmo quando
|
|
30303
|
-
// a data selecionada está em período de horário de verão diferente do momento atual.
|
|
30304
30278
|
getModelValue() {
|
|
30305
30279
|
if (!this._date) {
|
|
30306
30280
|
return '';
|
|
@@ -30310,12 +30284,6 @@ class PoDatetimepickerBaseComponent {
|
|
|
30310
30284
|
const timezone = this.getTimezoneOffset(this._date);
|
|
30311
30285
|
return `${dateISO}T${time}${timezone}`;
|
|
30312
30286
|
}
|
|
30313
|
-
// Retorna o offset do timezone local no formato `+/-HH:mm`.
|
|
30314
|
-
//
|
|
30315
|
-
// Usa a data informada para calcular o offset, garantindo que o horário de verão
|
|
30316
|
-
// seja considerado corretamente (o offset pode variar conforme a data).
|
|
30317
|
-
//
|
|
30318
|
-
// @param date Data de referência para cálculo do offset.
|
|
30319
30287
|
getTimezoneOffset(date) {
|
|
30320
30288
|
const referenceDate = date || new Date();
|
|
30321
30289
|
const offset = referenceDate.getTimezoneOffset();
|
|
@@ -30325,32 +30293,22 @@ class PoDatetimepickerBaseComponent {
|
|
|
30325
30293
|
const minutes = ('00' + (offsetAbsolute % 60)).slice(-2);
|
|
30326
30294
|
return `${sign}${hours}:${minutes}`;
|
|
30327
30295
|
}
|
|
30328
|
-
// Executa a função onChange propagando o valor para o formulário.
|
|
30329
30296
|
callOnChange(value, retry = true) {
|
|
30330
30297
|
if (this.onChangeModel) {
|
|
30331
30298
|
this.onChangeModel(value);
|
|
30332
|
-
this.previousValue = value;
|
|
30333
30299
|
}
|
|
30334
30300
|
else if (retry) {
|
|
30335
30301
|
setTimeout(() => this.callOnChange(value, false));
|
|
30336
30302
|
}
|
|
30337
30303
|
}
|
|
30338
|
-
// Atualiza o model com o valor combinado de data e hora.
|
|
30339
30304
|
controlModel() {
|
|
30340
30305
|
const modelValue = this.getModelValue();
|
|
30341
30306
|
this.callOnChange(modelValue || '');
|
|
30342
30307
|
}
|
|
30343
|
-
// Formata o horário para exibição, incluindo AM/PM quando em formato 12h.
|
|
30344
|
-
//
|
|
30345
|
-
// @param time Horário no formato HH:mm ou HH:mm:ss (24h interno)
|
|
30346
|
-
// @returns Horário formatado para exibição (ex: "02:30" ou "14:30")
|
|
30347
|
-
// Nota: Para formato 12h, retorna apenas a parte numérica (sem AM/PM).
|
|
30348
|
-
// O período é exibido no input separado gerenciado pelo componente.
|
|
30349
30308
|
formatTimeForDisplay(time) {
|
|
30350
30309
|
if (!time) {
|
|
30351
30310
|
return this.is12HourFormat ? '12:00' : '00:00';
|
|
30352
30311
|
}
|
|
30353
|
-
// Trunca segundos se showSeconds está desabilitado
|
|
30354
30312
|
const parts = time.split(':');
|
|
30355
30313
|
if (!this.showSeconds() && parts.length > 2) {
|
|
30356
30314
|
time = `${parts[0]}:${parts[1]}`;
|
|
@@ -30358,7 +30316,6 @@ class PoDatetimepickerBaseComponent {
|
|
|
30358
30316
|
if (!this.is12HourFormat) {
|
|
30359
30317
|
return time;
|
|
30360
30318
|
}
|
|
30361
|
-
// Converte de 24h para 12h (sem AM/PM — o período é gerenciado separadamente)
|
|
30362
30319
|
let hours = Number.parseInt(parts[0], 10);
|
|
30363
30320
|
const minutes = parts[1];
|
|
30364
30321
|
const seconds = this.showSeconds() && parts.length > 2 ? parts[2] : null;
|
|
@@ -30372,13 +30329,8 @@ class PoDatetimepickerBaseComponent {
|
|
|
30372
30329
|
return seconds ? `${hoursStr}:${minutes}:${seconds}` : `${hoursStr}:${minutes}`;
|
|
30373
30330
|
}
|
|
30374
30331
|
// --- Protected / Private ---
|
|
30375
|
-
// Constrói a máscara para o input de datetime.
|
|
30376
|
-
// Formato resultante: "99/99/9999 99:99" (24h e 12h)
|
|
30377
|
-
// Com segundos: "99/99/9999 99:99:99"
|
|
30378
|
-
// Nota: O sufixo AM/PM em formato 12h é gerenciado separadamente (não faz parte da máscara).
|
|
30379
30332
|
buildMask(format = this.format) {
|
|
30380
30333
|
let mask = format.toUpperCase();
|
|
30381
|
-
// Parte da data
|
|
30382
30334
|
mask = mask.replace(/DD/g, '99');
|
|
30383
30335
|
mask = mask.replace(/MM/g, '99');
|
|
30384
30336
|
mask = mask.replace(/YYYY/g, '9999');
|
|
@@ -30389,7 +30341,6 @@ class PoDatetimepickerBaseComponent {
|
|
|
30389
30341
|
else {
|
|
30390
30342
|
mask += ' 99:99';
|
|
30391
30343
|
}
|
|
30392
|
-
// AM/PM NÃO é incluído na máscara — é gerenciado como sufixo fixo no componente.
|
|
30393
30344
|
return new PoMask(mask, true);
|
|
30394
30345
|
}
|
|
30395
30346
|
validateModel(value) {
|
|
@@ -30397,24 +30348,18 @@ class PoDatetimepickerBaseComponent {
|
|
|
30397
30348
|
this.validatorChange();
|
|
30398
30349
|
}
|
|
30399
30350
|
}
|
|
30400
|
-
// Retorna a data mínima resolvida (cacheada).
|
|
30401
30351
|
get resolvedMinDate() {
|
|
30402
30352
|
return this._resolvedMinDate;
|
|
30403
30353
|
}
|
|
30404
|
-
// Retorna a data máxima resolvida (cacheada).
|
|
30405
30354
|
get resolvedMaxDate() {
|
|
30406
30355
|
return this._resolvedMaxDate;
|
|
30407
30356
|
}
|
|
30408
|
-
// Verifica se a data selecionada está dentro do intervalo [minDate, maxDate].
|
|
30409
|
-
// Segue o mesmo padrão do po-datepicker: `PoUtils.validateDateRange`.
|
|
30410
30357
|
isDateInRange() {
|
|
30411
30358
|
if (!this._date) {
|
|
30412
30359
|
return true;
|
|
30413
30360
|
}
|
|
30414
30361
|
return PoUtils.validateDateRange(this._date, this.resolvedMinDate, this.resolvedMaxDate);
|
|
30415
30362
|
}
|
|
30416
|
-
// Verifica se o horário selecionado está dentro do intervalo [minTime, maxTime].
|
|
30417
|
-
// Segue o mesmo padrão do po-timepicker: converte para segundos e compara.
|
|
30418
30363
|
isTimeInRange(time) {
|
|
30419
30364
|
if (!time) {
|
|
30420
30365
|
return true;
|
|
@@ -30436,7 +30381,6 @@ class PoDatetimepickerBaseComponent {
|
|
|
30436
30381
|
}
|
|
30437
30382
|
return true;
|
|
30438
30383
|
}
|
|
30439
|
-
// Converte uma string de horário (HH:mm ou HH:mm:ss) para total de segundos.
|
|
30440
30384
|
timeToSeconds(time) {
|
|
30441
30385
|
const parts = time.split(':');
|
|
30442
30386
|
const hours = Number.parseInt(parts[0], 10) || 0;
|
|
@@ -30444,7 +30388,6 @@ class PoDatetimepickerBaseComponent {
|
|
|
30444
30388
|
const seconds = parts.length >= 3 ? Number.parseInt(parts[2], 10) || 0 : 0;
|
|
30445
30389
|
return hours * 3600 + minutes * 60 + seconds;
|
|
30446
30390
|
}
|
|
30447
|
-
// Resolve o formato de data efetivo baseado no input explícito ou no locale.
|
|
30448
30391
|
resolveFormat() {
|
|
30449
30392
|
const explicit = this.dateFormat?.();
|
|
30450
30393
|
if (explicit) {
|
|
@@ -30455,37 +30398,23 @@ class PoDatetimepickerBaseComponent {
|
|
|
30455
30398
|
}
|
|
30456
30399
|
return PoDatetimepickerFormatByLocale[this.locale] || poDatepickerFormatDefault;
|
|
30457
30400
|
}
|
|
30458
|
-
// Processa um valor string recebido via writeValue.
|
|
30459
|
-
// Formatos aceitos:
|
|
30460
|
-
// - `yyyy-mm-ddTHH:mm:ss+/-HH:mm` (ISO 8601 com timezone)
|
|
30461
|
-
// - `yyyy-mm-ddTHH:mm:ssZ` (UTC)
|
|
30462
|
-
// - `yyyy-mm-ddTHH:mm:ss` (sem timezone, interpretado como local)
|
|
30463
|
-
// - `yyyy-mm-ddTHH:mm` (sem segundos)
|
|
30464
|
-
// - `yyyy-mm-dd` (apenas data, hora assume 00:00)
|
|
30465
|
-
//
|
|
30466
|
-
// Quando o valor contém timezone, é convertido para horário local antes de ser armazenado.
|
|
30467
|
-
// Isso garante que o valor exibido ao usuário sempre represente o horário local.
|
|
30468
30401
|
processStringValue(value) {
|
|
30469
30402
|
if (value.includes('T')) {
|
|
30470
30403
|
const tIndex = value.indexOf('T');
|
|
30471
30404
|
const datePart = value.substring(0, tIndex);
|
|
30472
30405
|
const timeAndTz = value.substring(tIndex + 1);
|
|
30473
|
-
// Tenta fazer parse completo via Date para respeitar timezone
|
|
30474
30406
|
const fullDate = new Date(value);
|
|
30475
30407
|
if (!isNaN(fullDate.getTime())) {
|
|
30476
|
-
// Parse bem-sucedido — Date converte automaticamente para local timezone
|
|
30477
30408
|
this._date = new Date(fullDate.getFullYear(), fullDate.getMonth(), fullDate.getDate());
|
|
30478
30409
|
this._timeValue = this.extractTimeFromDate(fullDate);
|
|
30479
30410
|
}
|
|
30480
30411
|
else {
|
|
30481
|
-
// Fallback: parse manual sem timezone
|
|
30482
30412
|
const parsedDate = convertIsoToDate(datePart, false, false);
|
|
30483
30413
|
this._date = parsedDate;
|
|
30484
30414
|
this._timeValue = this.normalizeTimePart(timeAndTz);
|
|
30485
30415
|
}
|
|
30486
30416
|
}
|
|
30487
30417
|
else {
|
|
30488
|
-
// Apenas data (yyyy-mm-dd)
|
|
30489
30418
|
const parsedDate = convertIsoToDate(value, false, false);
|
|
30490
30419
|
this._date = parsedDate;
|
|
30491
30420
|
this._timeValue = '00:00';
|
|
@@ -30499,7 +30428,7 @@ class PoDatetimepickerBaseComponent {
|
|
|
30499
30428
|
const hours = ('0' + date.getHours()).slice(-2);
|
|
30500
30429
|
const minutes = ('0' + date.getMinutes()).slice(-2);
|
|
30501
30430
|
const seconds = ('0' + date.getSeconds()).slice(-2);
|
|
30502
|
-
if (this.showSeconds()
|
|
30431
|
+
if (this.showSeconds()) {
|
|
30503
30432
|
return `${hours}:${minutes}:${seconds}`;
|
|
30504
30433
|
}
|
|
30505
30434
|
return `${hours}:${minutes}`;
|
|
@@ -30580,13 +30509,11 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
|
|
|
30580
30509
|
iconDatepicker;
|
|
30581
30510
|
calendarComponent;
|
|
30582
30511
|
inputEl;
|
|
30583
|
-
iconClean;
|
|
30584
30512
|
dialogPicker;
|
|
30585
30513
|
helperEl;
|
|
30586
30514
|
datetimepickerField;
|
|
30587
30515
|
renderer = inject(Renderer2);
|
|
30588
30516
|
cd = inject(ChangeDetectorRef);
|
|
30589
|
-
poCalendarService = inject(PoCalendarService);
|
|
30590
30517
|
controlPosition = inject(PoControlPositionService);
|
|
30591
30518
|
id = `po-datetimepicker[${uuid()}]`;
|
|
30592
30519
|
displayAdditionalHelp = false;
|
|
@@ -30598,6 +30525,8 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
|
|
|
30598
30525
|
clickListener;
|
|
30599
30526
|
eventResizeListener;
|
|
30600
30527
|
valueBeforeChange = '';
|
|
30528
|
+
hadValueOnOpen = false;
|
|
30529
|
+
isTodayPresetInProgress = false;
|
|
30601
30530
|
constructor() {
|
|
30602
30531
|
const languageService = inject(PoLanguageService);
|
|
30603
30532
|
const el = inject(ElementRef);
|
|
@@ -30628,6 +30557,8 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
|
|
|
30628
30557
|
}
|
|
30629
30558
|
if (!this.visible) {
|
|
30630
30559
|
this.visible = true;
|
|
30560
|
+
this.hadValueOnOpen = !!(this.date && this.timeValue);
|
|
30561
|
+
this.syncDateFromInput();
|
|
30631
30562
|
this.setCalendarPosition();
|
|
30632
30563
|
this.initializeListeners();
|
|
30633
30564
|
this.syncCalendarAndTimer();
|
|
@@ -30689,25 +30620,51 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
|
|
|
30689
30620
|
}
|
|
30690
30621
|
this.objMask?.keyup($event);
|
|
30691
30622
|
if (this.objMask?.valueToModel || this.objMask?.valueToModel === '') {
|
|
30692
|
-
|
|
30693
|
-
|
|
30694
|
-
|
|
30695
|
-
|
|
30696
|
-
|
|
30697
|
-
|
|
30698
|
-
|
|
30699
|
-
|
|
30700
|
-
|
|
30701
|
-
|
|
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';
|
|
30702
30650
|
}
|
|
30651
|
+
this.controlModel();
|
|
30652
|
+
this.syncCalendarAndTimer();
|
|
30703
30653
|
}
|
|
30704
30654
|
else {
|
|
30705
|
-
this.
|
|
30706
|
-
this.
|
|
30655
|
+
this.clearDateTimeState();
|
|
30656
|
+
this.controlModel();
|
|
30707
30657
|
this.syncCalendarAndTimer();
|
|
30708
30658
|
}
|
|
30709
30659
|
}
|
|
30660
|
+
clearDateTimeState() {
|
|
30661
|
+
this.date = undefined;
|
|
30662
|
+
this.timeValue = '';
|
|
30663
|
+
}
|
|
30710
30664
|
onKeydown($event) {
|
|
30665
|
+
if ($event?.target === this.inputEl?.nativeElement) {
|
|
30666
|
+
this.keydown.emit($event);
|
|
30667
|
+
}
|
|
30711
30668
|
if (this.isReadonly) {
|
|
30712
30669
|
return;
|
|
30713
30670
|
}
|
|
@@ -30719,7 +30676,6 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
|
|
|
30719
30676
|
}
|
|
30720
30677
|
if ($event?.target === this.inputEl?.nativeElement) {
|
|
30721
30678
|
this.objMask?.keydown($event);
|
|
30722
|
-
this.keydown.emit($event);
|
|
30723
30679
|
}
|
|
30724
30680
|
}
|
|
30725
30681
|
onInputFocus() {
|
|
@@ -30728,8 +30684,6 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
|
|
|
30728
30684
|
onPeriodBlur() {
|
|
30729
30685
|
this.isInputFocused = false;
|
|
30730
30686
|
}
|
|
30731
|
-
// Chamado ao sair do campo (blur).
|
|
30732
|
-
// Finaliza a edição, valida o valor e sincroniza com o calendário/timer.
|
|
30733
30687
|
eventOnBlur($event) {
|
|
30734
30688
|
this.isInputFocused = false;
|
|
30735
30689
|
this.onTouchedModel?.();
|
|
@@ -30772,7 +30726,6 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
|
|
|
30772
30726
|
}
|
|
30773
30727
|
}
|
|
30774
30728
|
}
|
|
30775
|
-
// Chamado ao clicar no input.
|
|
30776
30729
|
eventOnClick($event) {
|
|
30777
30730
|
if (this.verifyMobile()) {
|
|
30778
30731
|
$event.target.blur();
|
|
@@ -30782,14 +30735,11 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
|
|
|
30782
30735
|
this.objMask?.click($event);
|
|
30783
30736
|
}
|
|
30784
30737
|
}
|
|
30785
|
-
// Chamado ao clicar em qualquer parte do wrapper do campo.
|
|
30786
|
-
// Foca o input principal se o clique não foi no period input ou nos ícones.
|
|
30787
30738
|
onFieldClick($event) {
|
|
30788
30739
|
if (this.isDisabled || this.isReadonly) {
|
|
30789
30740
|
return;
|
|
30790
30741
|
}
|
|
30791
30742
|
const target = $event.target;
|
|
30792
|
-
// Se clicou no period input ou nos botões, não redireciona
|
|
30793
30743
|
if (target.closest('.po-datetimepicker-field-period') || target.closest('.po-field-icon-container-right')) {
|
|
30794
30744
|
return;
|
|
30795
30745
|
}
|
|
@@ -30804,27 +30754,25 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
|
|
|
30804
30754
|
this.closeCalendar(false);
|
|
30805
30755
|
}
|
|
30806
30756
|
}
|
|
30807
|
-
// Chamado quando Tab/Shift+Tab atinge a borda do timer (última ou primeira coluna).
|
|
30808
|
-
// Quando direction é 'forward' (Tab na última coluna), fecha o calendário e foca no botão toggle.
|
|
30809
30757
|
onTimerBoundaryTab(event) {
|
|
30810
30758
|
if (event.direction === 'forward') {
|
|
30811
30759
|
event.event.preventDefault();
|
|
30812
30760
|
this.closeCalendar(false);
|
|
30813
30761
|
}
|
|
30814
30762
|
}
|
|
30815
|
-
|
|
30763
|
+
onCalendarClose() {
|
|
30764
|
+
this.isTodayPresetInProgress = true;
|
|
30765
|
+
this.closeCalendar(false);
|
|
30766
|
+
}
|
|
30816
30767
|
writeValue(value) {
|
|
30817
30768
|
super.writeValue(value);
|
|
30818
30769
|
this.valueBeforeChange = this.getModelValue();
|
|
30819
30770
|
}
|
|
30820
|
-
// Atualiza o valor exibido no input quando o model muda externamente (writeValue)
|
|
30821
|
-
// ou quando o locale muda em runtime.
|
|
30822
30771
|
refreshValue(value) {
|
|
30823
30772
|
if (!this.inputEl) {
|
|
30824
30773
|
return;
|
|
30825
30774
|
}
|
|
30826
30775
|
if (value && value instanceof Date && !Number.isNaN(value.getTime())) {
|
|
30827
|
-
// Atualiza o período atual com base no horário armazenado (formato 24h)
|
|
30828
30776
|
if (this.is12HourFormat && this.timeValue) {
|
|
30829
30777
|
const hours = Number.parseInt(this.timeValue.split(':')[0], 10);
|
|
30830
30778
|
this.currentPeriod = hours >= 12 ? 'PM' : 'AM';
|
|
@@ -30834,35 +30782,26 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
|
|
|
30834
30782
|
else if (!value) {
|
|
30835
30783
|
this.inputEl.nativeElement.value = '';
|
|
30836
30784
|
}
|
|
30837
|
-
// Se value é inválido (NaN), não altera o input — mantém o valor atual
|
|
30838
30785
|
this.cd?.markForCheck();
|
|
30839
30786
|
}
|
|
30840
|
-
// Chamado quando o timer emite uma mudança de horário.
|
|
30841
|
-
// Atualiza o valor, propaga o model, emite p-change e fecha o calendário.
|
|
30842
|
-
// Só processa se já há data válida selecionada (seleção completa = data + hora).
|
|
30843
30787
|
onTimeChange(time) {
|
|
30844
30788
|
if (!time) {
|
|
30845
30789
|
return;
|
|
30846
30790
|
}
|
|
30847
|
-
this.timeValue = time;
|
|
30791
|
+
this.timeValue = this.normalizeTimeWithSeconds(time);
|
|
30848
30792
|
if (this.date && !Number.isNaN(this.date.getTime())) {
|
|
30849
30793
|
this.controlModel();
|
|
30850
30794
|
this.refreshValue(this.date);
|
|
30851
30795
|
this.emitChangeIfDifferent(this.getModelValue());
|
|
30852
|
-
this.
|
|
30796
|
+
if (this.isTodayPresetInProgress) {
|
|
30797
|
+
this.isTodayPresetInProgress = false;
|
|
30798
|
+
}
|
|
30799
|
+
else if (!this.hadValueOnOpen) {
|
|
30800
|
+
this.closeCalendar(true);
|
|
30801
|
+
}
|
|
30853
30802
|
this.cd.markForCheck();
|
|
30854
30803
|
}
|
|
30855
30804
|
}
|
|
30856
|
-
// Chamado quando o calendário emite uma mudança de data.
|
|
30857
|
-
//
|
|
30858
|
-
// Distingue entre:
|
|
30859
|
-
// - "Limpar": calendar emite change('') — string vazia
|
|
30860
|
-
// - Tab/close interno: calendar emite change(null) — ignorar
|
|
30861
|
-
// - Seleção de data: calendar emite change('yyyy-mm-dd') — processar
|
|
30862
|
-
//
|
|
30863
|
-
// Ao selecionar uma data, NÃO emite p-change nem propaga model com hora 00:00.
|
|
30864
|
-
// O p-change só será emitido quando o timer completar a seleção (data + hora).
|
|
30865
|
-
// Exceção: "Hoje" define data+hora simultaneamente, então emite e fecha.
|
|
30866
30805
|
onDateChange(date) {
|
|
30867
30806
|
if (date === null || date === undefined) {
|
|
30868
30807
|
return;
|
|
@@ -30873,44 +30812,35 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
|
|
|
30873
30812
|
this.callOnChange('');
|
|
30874
30813
|
this.emitChangeIfDifferent('');
|
|
30875
30814
|
this.refreshValue(undefined);
|
|
30876
|
-
this.closeCalendar(
|
|
30815
|
+
this.closeCalendar(false);
|
|
30877
30816
|
this.cd.markForCheck();
|
|
30878
30817
|
return;
|
|
30879
30818
|
}
|
|
30880
|
-
// date vem no formato ISO yyyy-mm-dd do po-calendar
|
|
30881
30819
|
const parsedDate = new Date(date + 'T00:00:00');
|
|
30882
30820
|
if (Number.isNaN(parsedDate.getTime())) {
|
|
30883
30821
|
return;
|
|
30884
30822
|
}
|
|
30885
30823
|
this.date = parsedDate;
|
|
30886
|
-
|
|
30887
|
-
// Emite model completo e fecha.
|
|
30888
|
-
if (this.poCalendarService.isToday(parsedDate) && this.timeValue) {
|
|
30889
|
-
this.controlModel();
|
|
30890
|
-
this.refreshValue(this.date);
|
|
30891
|
-
this.emitChangeIfDifferent(this.getModelValue());
|
|
30892
|
-
this.closeCalendar(true);
|
|
30824
|
+
if (this.isTodayPresetInProgress) {
|
|
30893
30825
|
return;
|
|
30894
30826
|
}
|
|
30895
|
-
// Se já existe hora preenchida, a seleção de data atualiza o model
|
|
30896
|
-
// imediatamente mas mantém o calendário aberto para possível ajuste de hora.
|
|
30897
30827
|
if (this.timeValue) {
|
|
30898
30828
|
this.controlModel();
|
|
30899
30829
|
this.refreshValue(this.date);
|
|
30900
30830
|
this.emitChangeIfDifferent(this.getModelValue());
|
|
30901
30831
|
return;
|
|
30902
30832
|
}
|
|
30903
|
-
// Seleção de data sem hora — apenas atualiza o display
|
|
30904
|
-
// (aguarda seleção de hora no timer para completar)
|
|
30905
30833
|
this.refreshValue(this.date);
|
|
30906
30834
|
}
|
|
30907
|
-
// Chamado ao clicar no botão de limpar (po-clean no input).
|
|
30908
|
-
// Limpa data, hora, input e reseta o calendário/timer.
|
|
30909
30835
|
clear(triggeredByKeyboard = false) {
|
|
30910
30836
|
this.date = undefined;
|
|
30911
30837
|
this.timeValue = '';
|
|
30912
30838
|
this.currentPeriod = 'AM';
|
|
30913
30839
|
this.inputEl.nativeElement.value = '';
|
|
30840
|
+
if (this.objMask) {
|
|
30841
|
+
this.objMask.valueToModel = '';
|
|
30842
|
+
this.objMask.valueToInput = '';
|
|
30843
|
+
}
|
|
30914
30844
|
if (triggeredByKeyboard) {
|
|
30915
30845
|
setTimeout(() => {
|
|
30916
30846
|
this.focus();
|
|
@@ -30989,7 +30919,6 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
|
|
|
30989
30919
|
dateFormatted = dateFormatted.replace('mm', month);
|
|
30990
30920
|
dateFormatted = dateFormatted.replace('yyyy', year);
|
|
30991
30921
|
dateFormatted = dateFormatted.replace(/\//g, separator);
|
|
30992
|
-
// Se não há hora selecionada, exibe placeholders vazios para indicar que falta preencher
|
|
30993
30922
|
if (!time) {
|
|
30994
30923
|
const timePlaceholder = this.showSeconds() ? '--:--:--' : '--:--';
|
|
30995
30924
|
return `${dateFormatted} ${timePlaceholder}`;
|
|
@@ -30997,16 +30926,11 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
|
|
|
30997
30926
|
const timeDisplay = this.formatTimeForDisplay(time);
|
|
30998
30927
|
return `${dateFormatted} ${timeDisplay}`;
|
|
30999
30928
|
}
|
|
31000
|
-
// Faz o parse do valor digitado no input e sincroniza com o calendário e timer.
|
|
31001
|
-
//
|
|
31002
|
-
// Formato esperado: "dd/mm/yyyy HH:mm" ou "mm/dd/yyyy HH:mm" (conforme locale)
|
|
31003
|
-
// Para 12h: "dd/mm/yyyy hh:mm AM/PM"
|
|
31004
30929
|
parseInputAndSync(inputValue) {
|
|
31005
30930
|
const parsed = this.parseDateTimeFromInput(inputValue);
|
|
31006
30931
|
if (parsed) {
|
|
31007
30932
|
this.date = parsed.date;
|
|
31008
|
-
this.timeValue = parsed.time;
|
|
31009
|
-
// Sincroniza currentPeriod com o horário parseado (formato 24h)
|
|
30933
|
+
this.timeValue = this.normalizeTimeWithSeconds(parsed.time);
|
|
31010
30934
|
if (this.is12HourFormat) {
|
|
31011
30935
|
const hours = Number.parseInt(parsed.time.split(':')[0], 10);
|
|
31012
30936
|
this.currentPeriod = hours >= 12 ? 'PM' : 'AM';
|
|
@@ -31020,30 +30944,24 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
|
|
|
31020
30944
|
this.callOnChange(this.literals.invalidDatetime);
|
|
31021
30945
|
}
|
|
31022
30946
|
}
|
|
31023
|
-
// Extrai data e hora de uma string formatada conforme o locale.
|
|
31024
30947
|
parseDateTimeFromInput(inputValue) {
|
|
31025
30948
|
if (!inputValue) {
|
|
31026
30949
|
return null;
|
|
31027
30950
|
}
|
|
31028
|
-
// Separa a parte de data da parte de hora pelo espaço
|
|
31029
|
-
// Formato: "dd/mm/yyyy HH:mm" ou "dd/mm/yyyy hh:mm AM"
|
|
31030
30951
|
const separator = this.languageService.getDateSeparator(this.localeInput());
|
|
31031
|
-
const datePartLength = 10;
|
|
30952
|
+
const datePartLength = 10;
|
|
31032
30953
|
const datePart = inputValue.substring(0, datePartLength);
|
|
31033
|
-
const timePart = inputValue.substring(datePartLength + 1).trim();
|
|
31034
|
-
// Parse da data
|
|
30954
|
+
const timePart = inputValue.substring(datePartLength + 1).trim();
|
|
31035
30955
|
const date = this.getDateFromFormattedString(datePart, separator);
|
|
31036
30956
|
if (!date) {
|
|
31037
30957
|
return null;
|
|
31038
30958
|
}
|
|
31039
|
-
// Parse da hora
|
|
31040
30959
|
const time = this.parseTimeFromInput(timePart);
|
|
31041
30960
|
if (!time) {
|
|
31042
30961
|
return null;
|
|
31043
30962
|
}
|
|
31044
30963
|
return { date, time };
|
|
31045
30964
|
}
|
|
31046
|
-
// Converte uma string de data formatada (ex: "09/05/2026") em um objeto Date.
|
|
31047
30965
|
getDateFromFormattedString(dateStr, separator) {
|
|
31048
30966
|
const format = this.format.replace(/\//g, separator);
|
|
31049
30967
|
const dayIndex = format.indexOf('dd');
|
|
@@ -31065,7 +30983,6 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
|
|
|
31065
30983
|
}
|
|
31066
30984
|
return date;
|
|
31067
30985
|
}
|
|
31068
|
-
// Converte uma string de hora (ex: "14:30" ou "02:30 PM") em formato 24h "HH:mm" ou "HH:mm:ss".
|
|
31069
30986
|
parseTimeFromInput(timeStr) {
|
|
31070
30987
|
if (!timeStr) {
|
|
31071
30988
|
return null;
|
|
@@ -31074,8 +30991,6 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
|
|
|
31074
30991
|
}
|
|
31075
30992
|
parse12HourTime(timeStr) {
|
|
31076
30993
|
const periodMatch = /(AM|PM)$/i.exec(timeStr);
|
|
31077
|
-
// Se o período está na string (ex: "02:30 PM"), usa-o diretamente.
|
|
31078
|
-
// Caso contrário, usa o currentPeriod do input separado.
|
|
31079
30994
|
const period = periodMatch ? periodMatch[1].toUpperCase() : this.currentPeriod;
|
|
31080
30995
|
const timeOnly = periodMatch ? timeStr.replace(/(AM|PM)/i, '').trim() : timeStr.trim();
|
|
31081
30996
|
const parts = timeOnly.split(':');
|
|
@@ -31131,6 +31046,9 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
|
|
|
31131
31046
|
}
|
|
31132
31047
|
return `${hoursStr}:${minutesStr}:${this.padTime(seconds)}`;
|
|
31133
31048
|
}
|
|
31049
|
+
if (this.showSeconds()) {
|
|
31050
|
+
return null;
|
|
31051
|
+
}
|
|
31134
31052
|
return `${hoursStr}:${minutesStr}`;
|
|
31135
31053
|
}
|
|
31136
31054
|
isValidSeconds(seconds) {
|
|
@@ -31139,15 +31057,43 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
|
|
|
31139
31057
|
padTime(value) {
|
|
31140
31058
|
return ('0' + value).slice(-2);
|
|
31141
31059
|
}
|
|
31142
|
-
|
|
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
|
+
}
|
|
31143
31091
|
syncCalendarAndTimer() {
|
|
31144
31092
|
if (!this.calendarComponent) {
|
|
31145
31093
|
return;
|
|
31146
31094
|
}
|
|
31147
31095
|
if (this.date) {
|
|
31148
|
-
// Sincroniza o calendário com a data selecionada
|
|
31149
31096
|
this.calendarComponent.writeValue(this.date);
|
|
31150
|
-
// Sincroniza o timer com o horário
|
|
31151
31097
|
if (this.calendarComponent.timerComponent && this.timeValue) {
|
|
31152
31098
|
this.calendarComponent.timerComponent.writeValue(this.timeValue);
|
|
31153
31099
|
}
|
|
@@ -31156,24 +31102,19 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
|
|
|
31156
31102
|
}
|
|
31157
31103
|
}
|
|
31158
31104
|
else {
|
|
31159
|
-
// Sem data válida — reseta o calendário e o timer
|
|
31160
31105
|
this.calendarComponent.writeValue(null);
|
|
31161
31106
|
if (this.calendarComponent.timerComponent) {
|
|
31162
31107
|
this.calendarComponent.timerComponent.writeValue(null);
|
|
31163
31108
|
}
|
|
31164
31109
|
}
|
|
31165
31110
|
}
|
|
31166
|
-
// Retorna o comprimento mínimo esperado do input (sem formatação) para considerar completo.
|
|
31167
|
-
// Formato 24h: ddmmyyyyHHmm = 12 chars (ou 14 com segundos)
|
|
31168
|
-
// Formato 12h: ddmmyyyyHHmm = 12 chars (ou 14 com segundos) — AM/PM é sufixo fixo, não conta.
|
|
31169
31111
|
getExpectedInputLength() {
|
|
31170
|
-
let length =
|
|
31112
|
+
let length = 16;
|
|
31171
31113
|
if (this.showSeconds()) {
|
|
31172
|
-
length +=
|
|
31114
|
+
length += 3;
|
|
31173
31115
|
}
|
|
31174
31116
|
return length;
|
|
31175
31117
|
}
|
|
31176
|
-
// --- Position ---
|
|
31177
31118
|
setCalendarPosition() {
|
|
31178
31119
|
this.setDialogPickerStyleDisplay('block');
|
|
31179
31120
|
this.adjustCalendarPosition();
|
|
@@ -31192,7 +31133,6 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
|
|
|
31192
31133
|
});
|
|
31193
31134
|
}
|
|
31194
31135
|
}
|
|
31195
|
-
// --- Listeners ---
|
|
31196
31136
|
initializeListeners() {
|
|
31197
31137
|
this.clickListener = this.renderer.listen('document', 'click', (event) => {
|
|
31198
31138
|
this.wasClickedOnPicker(event);
|
|
@@ -31236,8 +31176,6 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
|
|
|
31236
31176
|
this.onchange.emit(value);
|
|
31237
31177
|
}
|
|
31238
31178
|
}
|
|
31239
|
-
// --- Período AM/PM (input separado) ---
|
|
31240
|
-
// Chamado quando uma tecla é pressionada no input de período AM/PM.
|
|
31241
31179
|
onPeriodKeydown(event) {
|
|
31242
31180
|
if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {
|
|
31243
31181
|
event.preventDefault();
|
|
@@ -31250,32 +31188,25 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
|
|
|
31250
31188
|
event.preventDefault();
|
|
31251
31189
|
return;
|
|
31252
31190
|
}
|
|
31253
|
-
// Shift+Tab: volta para o input principal
|
|
31254
31191
|
if (event.key === 'Tab' && event.shiftKey) {
|
|
31255
31192
|
event.preventDefault();
|
|
31256
31193
|
this.focus();
|
|
31257
31194
|
return;
|
|
31258
31195
|
}
|
|
31259
|
-
// Tab: avança para o clean ou botão do calendário
|
|
31260
31196
|
if (event.key === 'Tab' && !event.shiftKey) {
|
|
31261
|
-
// Permite o fluxo natural de tab (para clean/botão)
|
|
31262
31197
|
return;
|
|
31263
31198
|
}
|
|
31264
|
-
// Bloqueia qualquer outra digitação (o período é read-only toggle)
|
|
31265
31199
|
if (event.key.length === 1) {
|
|
31266
31200
|
event.preventDefault();
|
|
31267
31201
|
}
|
|
31268
31202
|
}
|
|
31269
|
-
// Chamado ao clicar no input de período AM/PM — alterna o período.
|
|
31270
31203
|
onPeriodClick(event) {
|
|
31271
31204
|
if (!this.isReadonly && !this.isDisabled) {
|
|
31272
31205
|
this.togglePeriod();
|
|
31273
31206
|
}
|
|
31274
31207
|
}
|
|
31275
|
-
// Alterna o período entre AM e PM e atualiza o model.
|
|
31276
31208
|
togglePeriod() {
|
|
31277
31209
|
this.currentPeriod = this.currentPeriod === 'AM' ? 'PM' : 'AM';
|
|
31278
|
-
// Reparse o input para atualizar o model com o novo período
|
|
31279
31210
|
const inputValue = this.inputEl.nativeElement.value;
|
|
31280
31211
|
const minLength = this.getExpectedInputLength();
|
|
31281
31212
|
if (this.objMask?.valueToModel && this.objMask.valueToModel.length >= minLength) {
|
|
@@ -31286,11 +31217,11 @@ class PoDatetimepickerComponent extends PoDatetimepickerBaseComponent {
|
|
|
31286
31217
|
}
|
|
31287
31218
|
}
|
|
31288
31219
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoDatetimepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
31289
|
-
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"] }] });
|
|
31290
31221
|
}
|
|
31291
31222
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoDatetimepickerComponent, decorators: [{
|
|
31292
31223
|
type: Component,
|
|
31293
|
-
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" }]
|
|
31294
31225
|
}], ctorParameters: () => [], propDecorators: { iconDatepicker: [{
|
|
31295
31226
|
type: ViewChild,
|
|
31296
31227
|
args: ['iconCalendar']
|
|
@@ -31300,9 +31231,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
|
|
|
31300
31231
|
}], inputEl: [{
|
|
31301
31232
|
type: ViewChild,
|
|
31302
31233
|
args: ['inp', { read: ElementRef, static: true }]
|
|
31303
|
-
}], iconClean: [{
|
|
31304
|
-
type: ViewChild,
|
|
31305
|
-
args: ['iconClean', { read: ElementRef }]
|
|
31306
31234
|
}], dialogPicker: [{
|
|
31307
31235
|
type: ViewChild,
|
|
31308
31236
|
args: ['dialogPicker', { read: ElementRef, static: false }]
|
|
@@ -32243,6 +32171,15 @@ class PoTimepickerComponent extends PoTimepickerBaseComponent {
|
|
|
32243
32171
|
get isPlaceholder() {
|
|
32244
32172
|
return !this.hourDisplay && !this.minuteDisplay && (!this.showSeconds || !this.secondDisplay);
|
|
32245
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
|
+
}
|
|
32246
32183
|
get customPlaceholderSegments() {
|
|
32247
32184
|
if (!this.placeholder?.trim()) {
|
|
32248
32185
|
return [];
|
|
@@ -33280,7 +33217,7 @@ class PoTimepickerComponent extends PoTimepickerBaseComponent {
|
|
|
33280
33217
|
multi: true
|
|
33281
33218
|
},
|
|
33282
33219
|
PoControlPositionService
|
|
33283
|
-
], 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 });
|
|
33284
33221
|
}
|
|
33285
33222
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoTimepickerComponent, decorators: [{
|
|
33286
33223
|
type: Component,
|
|
@@ -33296,7 +33233,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
|
|
|
33296
33233
|
multi: true
|
|
33297
33234
|
},
|
|
33298
33235
|
PoControlPositionService
|
|
33299
|
-
], 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" }]
|
|
33300
33237
|
}], ctorParameters: () => [], propDecorators: { dialogPicker: [{
|
|
33301
33238
|
type: ViewChild,
|
|
33302
33239
|
args: ['dialogPicker', { read: ElementRef, static: false }]
|
|
@@ -41335,11 +41272,11 @@ class PoTableDetailComponent {
|
|
|
41335
41272
|
}
|
|
41336
41273
|
}
|
|
41337
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 });
|
|
41338
|
-
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" }] });
|
|
41339
41276
|
}
|
|
41340
41277
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoTableDetailComponent, decorators: [{
|
|
41341
41278
|
type: Component,
|
|
41342
|
-
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" }]
|
|
41343
41280
|
}], ctorParameters: () => [{ type: i1.DecimalPipe }], propDecorators: { componentsSize: [{
|
|
41344
41281
|
type: Input,
|
|
41345
41282
|
args: ['p-components-size']
|
|
@@ -41414,11 +41351,11 @@ class PoTableShowSubtitleComponent {
|
|
|
41414
41351
|
/** Define o tamanho dos elementos que possuem `p-size` dentro do componente. */
|
|
41415
41352
|
componentsSize;
|
|
41416
41353
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoTableShowSubtitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
41417
|
-
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"] }] });
|
|
41418
41355
|
}
|
|
41419
41356
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoTableShowSubtitleComponent, decorators: [{
|
|
41420
41357
|
type: Component,
|
|
41421
|
-
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" }]
|
|
41422
41359
|
}], propDecorators: { subtitles: [{
|
|
41423
41360
|
type: Input,
|
|
41424
41361
|
args: ['p-subtitles']
|
|
@@ -41496,11 +41433,11 @@ class PoTableSubtitleFooterComponent {
|
|
|
41496
41433
|
this.showSubtitle = itemsSize > containerSize;
|
|
41497
41434
|
}
|
|
41498
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 });
|
|
41499
|
-
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"] }] });
|
|
41500
41437
|
}
|
|
41501
41438
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoTableSubtitleFooterComponent, decorators: [{
|
|
41502
41439
|
type: Component,
|
|
41503
|
-
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" }]
|
|
41504
41441
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { componentsSize: [{
|
|
41505
41442
|
type: Input,
|
|
41506
41443
|
args: ['p-components-size']
|
|
@@ -45239,6 +45176,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
|
|
|
45239
45176
|
* <file name="sample-po-input-reactive-form/sample-po-input-reactive-form.component.html"> </file>
|
|
45240
45177
|
* <file name="sample-po-input-reactive-form/sample-po-input-reactive-form.component.ts"> </file>
|
|
45241
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>
|
|
45242
45185
|
*/
|
|
45243
45186
|
class PoInputComponent extends PoInputGeneric {
|
|
45244
45187
|
inp;
|
|
@@ -47725,11 +47668,11 @@ class PoLookupComponent extends PoLookupBaseComponent {
|
|
|
47725
47668
|
});
|
|
47726
47669
|
}
|
|
47727
47670
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoLookupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
47728
|
-
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 });
|
|
47729
47672
|
}
|
|
47730
47673
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoLookupComponent, decorators: [{
|
|
47731
47674
|
type: Component,
|
|
47732
|
-
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" }]
|
|
47733
47676
|
}], ctorParameters: () => [], propDecorators: { helperEl: [{
|
|
47734
47677
|
type: ViewChild,
|
|
47735
47678
|
args: ['helperEl', { read: PoHelperComponent, static: false }]
|
|
@@ -56079,7 +56022,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
|
|
|
56079
56022
|
* @description
|
|
56080
56023
|
*
|
|
56081
56024
|
* Módulo dos componentes: po-checkbox, po-checkbox-group, po-combo, po-datepicker, po-datetimepicker, po-datepicker-range, po-email, po-input,
|
|
56082
|
-
* 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.
|
|
56083
56026
|
*
|
|
56084
56027
|
* > Não esqueça de importar o módulo `FormsModule` para usar os componentes de formulários e caso esteja trabalhando com
|
|
56085
56028
|
* > formulários reativos, importe o módulo `ReactiveFormsModule`, ambos nativos do Angular.
|
|
@@ -61150,11 +61093,11 @@ class PoMenuItemComponent {
|
|
|
61150
61093
|
}
|
|
61151
61094
|
}
|
|
61152
61095
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
61153
|
-
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"] }] });
|
|
61154
61097
|
}
|
|
61155
61098
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoMenuItemComponent, decorators: [{
|
|
61156
61099
|
type: Component,
|
|
61157
|
-
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" }]
|
|
61158
61101
|
}], propDecorators: { action: [{
|
|
61159
61102
|
type: Input,
|
|
61160
61103
|
args: ['p-action']
|
|
@@ -65391,11 +65334,11 @@ class PoSlideCirclesComponent {
|
|
|
65391
65334
|
/** Evento emitido ao clicar em um controle. */
|
|
65392
65335
|
click = new EventEmitter();
|
|
65393
65336
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoSlideCirclesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
65394
|
-
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" });
|
|
65395
65338
|
}
|
|
65396
65339
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoSlideCirclesComponent, decorators: [{
|
|
65397
65340
|
type: Component,
|
|
65398
|
-
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" }]
|
|
65399
65342
|
}], propDecorators: { currentSlideIndex: [{
|
|
65400
65343
|
type: Input,
|
|
65401
65344
|
args: ['p-current-slide-index']
|
|
@@ -65897,11 +65840,11 @@ class PoSlideComponent extends PoSlideBaseComponent {
|
|
|
65897
65840
|
}
|
|
65898
65841
|
}
|
|
65899
65842
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoSlideComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
65900
|
-
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"] }] });
|
|
65901
65844
|
}
|
|
65902
65845
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoSlideComponent, decorators: [{
|
|
65903
65846
|
type: Component,
|
|
65904
|
-
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" }]
|
|
65905
65848
|
}], propDecorators: { slideContentTemplate: [{
|
|
65906
65849
|
type: ContentChild,
|
|
65907
65850
|
args: [PoSlideContentTemplateDirective, { static: true }]
|
|
@@ -68203,11 +68146,11 @@ class PoContextTabButtonComponent extends PoTabButtonComponent {
|
|
|
68203
68146
|
this.activeCloseIcon = false;
|
|
68204
68147
|
}
|
|
68205
68148
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoContextTabButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
68206
|
-
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]" }] });
|
|
68207
68150
|
}
|
|
68208
68151
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PoContextTabButtonComponent, decorators: [{
|
|
68209
68152
|
type: Component,
|
|
68210
|
-
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" }]
|
|
68211
68154
|
}], propDecorators: { hideClose: [{
|
|
68212
68155
|
type: Input,
|
|
68213
68156
|
args: ['p-hide-close']
|