ng-prime-tools 1.1.23 → 1.1.26
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/ng-prime-tools.mjs +343 -128
- package/fesm2022/ng-prime-tools.mjs.map +1 -1
- package/package.json +1 -1
- package/types/ng-prime-tools.d.ts +138 -77
- package/types/ng-prime-tools.d.ts.map +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Pipe, EventEmitter, ViewChild, Output, Input, Component, NgModule, Injectable, Inject, HostListener,
|
|
2
|
+
import { Pipe, EventEmitter, ViewChild, Output, Input, Component, NgModule, Injectable, Inject, HostListener, ContentChild, Directive, ContentChildren, ChangeDetectionStrategy, HostBinding } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/common';
|
|
4
4
|
import { CommonModule, DOCUMENT, NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';
|
|
5
5
|
import * as i2 from '@angular/forms';
|
|
@@ -55,21 +55,19 @@ import { Subject, interval, BehaviorSubject } from 'rxjs';
|
|
|
55
55
|
import { takeUntil, filter, debounceTime, distinctUntilChanged } from 'rxjs/operators';
|
|
56
56
|
import * as i1$2 from '@angular/router';
|
|
57
57
|
import { RouterModule, NavigationEnd } from '@angular/router';
|
|
58
|
-
import * as i2$1 from 'primeng/
|
|
59
|
-
import { PopoverModule } from 'primeng/popover';
|
|
60
|
-
import * as i2$2 from 'primeng/breadcrumb';
|
|
58
|
+
import * as i2$1 from 'primeng/breadcrumb';
|
|
61
59
|
import { BreadcrumbModule } from 'primeng/breadcrumb';
|
|
62
60
|
import * as i3$7 from 'primeng/confirmdialog';
|
|
63
61
|
import { ConfirmDialogModule } from 'primeng/confirmdialog';
|
|
64
|
-
import * as i2$
|
|
62
|
+
import * as i2$2 from 'primeng/toast';
|
|
65
63
|
import { ToastModule } from 'primeng/toast';
|
|
66
|
-
import * as i2$
|
|
64
|
+
import * as i2$3 from 'primeng/dialog';
|
|
67
65
|
import { DialogModule } from 'primeng/dialog';
|
|
68
|
-
import * as i2$
|
|
66
|
+
import * as i2$4 from 'primeng/accordion';
|
|
69
67
|
import { AccordionModule } from 'primeng/accordion';
|
|
70
68
|
import * as i5$1 from 'primeng/menu';
|
|
71
69
|
import { MenuModule } from 'primeng/menu';
|
|
72
|
-
import * as i2$
|
|
70
|
+
import * as i2$5 from 'primeng/paginator';
|
|
73
71
|
import { PaginatorModule } from 'primeng/paginator';
|
|
74
72
|
|
|
75
73
|
/**
|
|
@@ -6519,11 +6517,11 @@ class PTNotificationComponent {
|
|
|
6519
6517
|
return String(value).padStart(2, '0');
|
|
6520
6518
|
}
|
|
6521
6519
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTNotificationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6522
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: PTNotificationComponent, isStandalone: false, selector: "pt-notification", inputs: { notifications: "notifications", config: "config", totalRecords: "totalRecords", totalUnreadRecords: "totalUnreadRecords", page: "page", rows: "rows", loading: "loading" }, outputs: { notificationClick: "notificationClick", action: "action", globalAction: "globalAction", viewAll: "viewAll", panelOpened: "panelOpened", panelClosed: "panelClosed", loadMore: "loadMore" }, host: { listeners: { "document:click": "onDocumentClick()" } }, ngImport: i0, template: "@if (isVisible()) {\n <div class=\"pt-notification\">\n <button\n type=\"button\"\n class=\"pt-notification-trigger\"\n [attr.aria-expanded]=\"isOpen\"\n aria-label=\"Notifications\"\n (click)=\"togglePanel($event)\"\n >\n <i [class]=\"getBellIcon()\"></i>\n\n @if (showBadge()) {\n <span class=\"pt-notification-badge\">\n {{ getBadgeText() }}\n </span>\n }\n </button>\n\n @if (isOpen) {\n <div\n class=\"pt-notification-panel\"\n [ngStyle]=\"getPanelStyles()\"\n (click)=\"onPanelClick($event)\"\n >\n <div class=\"pt-notification-header\">\n <div class=\"pt-notification-header-left\">\n <div class=\"pt-notification-header-title\">\n {{ getTitle() }}\n </div>\n\n @if (showHeaderCount()) {\n <span class=\"pt-notification-header-count\">\n {{ getUnreadCount() }}\n </span>\n }\n </div>\n\n @if (showGlobalActions()) {\n <div\n class=\"pt-notification-global-actions\"\n (click)=\"$event.stopPropagation()\"\n >\n <button\n type=\"button\"\n class=\"pt-notification-global-more-button\"\n aria-label=\"Notification global actions\"\n (click)=\"toggleGlobalActionMenu($event)\"\n >\n <i class=\"pi pi-ellipsis-v\"></i>\n </button>\n\n @if (isGlobalActionMenuOpen) {\n <div\n class=\"pt-notification-global-action-menu\"\n (click)=\"onGlobalActionMenuClick($event)\"\n >\n @for (menuAction of getGlobalActions(); track menuAction.id) {\n <button\n type=\"button\"\n [class]=\"getActionClasses(menuAction)\"\n [disabled]=\"menuAction.disabled\"\n (click)=\"onGlobalActionClick(menuAction, $event)\"\n >\n @if (menuAction.icon) {\n <i [class]=\"menuAction.icon\"></i>\n }\n\n <span>\n {{ menuAction.label }}\n </span>\n </button>\n }\n </div>\n }\n </div>\n }\n </div>\n\n @if (hasNotifications()) {\n <div\n class=\"pt-notification-list\"\n [ngStyle]=\"getListStyles()\"\n (scroll)=\"onListScroll($event)\"\n >\n @for (notification of getNotifications(); track notification.id) {\n <div\n [class]=\"getNotificationClasses(notification)\"\n (click)=\"onNotificationClick(notification, $event)\"\n >\n <div class=\"pt-notification-item-icon-wrapper\">\n <div class=\"pt-notification-item-icon\">\n <i\n [class]=\"getNotificationIcon(notification)\"\n [ngStyle]=\"getNotificationIconStyles(notification)\"\n ></i>\n </div>\n </div>\n\n <div class=\"pt-notification-item-content\">\n <div class=\"pt-notification-item-text\">\n {{ notification.text }}\n </div>\n\n @if (hasMetadata(notification)) {\n <div class=\"pt-notification-item-metadata\">\n @if (notification.date) {\n <span class=\"pt-notification-item-date\">\n <i class=\"pi pi-clock\"></i>\n\n {{ getDateText(notification) }}\n </span>\n }\n\n @if (notification.sender) {\n <span class=\"pt-notification-item-sender\">\n <i class=\"pi pi-user\"></i>\n\n {{ notification.sender }}\n </span>\n }\n </div>\n }\n </div>\n\n @if (hasActions(notification)) {\n <div\n class=\"pt-notification-item-actions\"\n (click)=\"$event.stopPropagation()\"\n >\n <button\n type=\"button\"\n class=\"pt-notification-more-button\"\n aria-label=\"Notification actions\"\n [disabled]=\"notification.disabled\"\n (click)=\"toggleActionMenu(notification, $event)\"\n >\n <i class=\"pi pi-ellipsis-v\"></i>\n </button>\n\n @if (isActionMenuOpen(notification)) {\n <div\n class=\"pt-notification-action-menu\"\n (click)=\"onActionMenuClick($event)\"\n >\n @for (\n menuAction of getActions(notification);\n track menuAction.id\n ) {\n <button\n type=\"button\"\n [class]=\"getActionClasses(menuAction)\"\n [disabled]=\"menuAction.disabled\"\n (click)=\"\n onActionClick(notification, menuAction, $event)\n \"\n >\n @if (menuAction.icon) {\n <i [class]=\"menuAction.icon\"></i>\n }\n\n <span>\n {{ menuAction.label }}\n </span>\n </button>\n }\n </div>\n }\n </div>\n }\n\n @if (notification.read !== true) {\n <span class=\"pt-notification-unread-indicator\"></span>\n }\n </div>\n }\n\n @if (showInfiniteScrollLoader()) {\n <div class=\"pt-notification-load-more\">\n <i class=\"pi pi-spin pi-spinner\"></i>\n\n <span>\n {{ getLoadingText() }}\n </span>\n </div>\n }\n </div>\n } @else {\n <div class=\"pt-notification-empty\">\n @if (loading) {\n <i class=\"pi pi-spin pi-spinner\"></i>\n\n <span>\n {{ getLoadingText() }}\n </span>\n } @else {\n <i class=\"pi pi-bell-slash\"></i>\n\n <span>\n {{ getEmptyText() }}\n </span>\n }\n </div>\n }\n\n @if (showViewAll()) {\n <div class=\"pt-notification-footer\">\n <button\n type=\"button\"\n class=\"pt-notification-view-all\"\n (click)=\"onViewAllClick($event)\"\n >\n <span>\n {{ getViewAllText() }}\n </span>\n\n <i [class]=\"getViewAllIcon()\"></i>\n </button>\n </div>\n }\n </div>\n }\n </div>\n}\n", styles: [":host{display:inline-flex;align-items:center;justify-content:center}.pt-notification{position:relative;display:inline-flex;align-items:center;justify-content:center}.pt-notification-trigger{position:relative;width:40px;height:40px;min-width:40px;padding:0;border:none;border-radius:999px;background:transparent;color:var(--pt-notification-bell-color, #475569);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;transition:background-color .2s ease,color .2s ease}.pt-notification-trigger:hover{background:var(--pt-notification-bell-hover-bg, #f1f5f9);color:var(--pt-notification-bell-hover-color, #0f172a)}.pt-notification-trigger:focus-visible{outline:none;box-shadow:0 0 0 3px var(--pt-notification-bell-focus-shadow, rgba(37, 99, 235, .16))}.pt-notification-trigger>i{font-size:1.25rem;line-height:1}.pt-notification-badge{position:absolute;top:-1px;right:-3px;min-width:18px;height:18px;padding:0 4px;border:2px solid var(--pt-notification-badge-border, #ffffff);border-radius:999px;background:var(--pt-notification-badge-bg, #dc2626);color:var(--pt-notification-badge-text, #ffffff);display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;font-size:.65rem;font-weight:800;line-height:1;pointer-events:none}.pt-notification-panel{position:absolute;top:calc(100% + 10px);right:0;min-width:320px;max-width:min(420px,calc(100vw - 24px));background:var(--pt-notification-panel-bg, #ffffff);color:var(--pt-notification-panel-text, #334155);border:1px solid var(--pt-notification-panel-border, #e2e8f0);border-radius:14px;box-shadow:var( --pt-notification-panel-shadow, 0 18px 45px rgba(15, 23, 42, .16) );box-sizing:border-box;overflow:visible;z-index:10000}.pt-notification-header{min-height:52px;padding:0 16px;border-bottom:1px solid var(--pt-notification-header-border, #e2e8f0);display:flex;align-items:center;justify-content:space-between;gap:12px;box-sizing:border-box}.pt-notification-header-title{min-width:0;color:var(--pt-notification-header-title, #0f172a);font-size:.95rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pt-notification-header-count{min-width:24px;height:24px;padding:0 7px;border-radius:999px;background:var(--pt-notification-header-count-bg, #eff6ff);color:var(--pt-notification-header-count-text, #2563eb);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;box-sizing:border-box;font-size:.75rem;font-weight:800;line-height:1}.pt-notification-list{overflow-y:auto;overflow-x:visible;overscroll-behavior:contain}.pt-notification-item{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr) 34px;align-items:flex-start;gap:10px;min-height:76px;padding:13px 14px 13px 12px;border-bottom:1px solid var(--pt-notification-item-border, #f1f5f9);background:var(--pt-notification-item-bg, #ffffff);cursor:pointer;box-sizing:border-box;transition:background-color .15s ease}.pt-notification-item:last-child{border-bottom:none}.pt-notification-item:hover{background:var(--pt-notification-item-hover-bg, #f8fafc)}.pt-notification-item.unread{background:var(--pt-notification-item-unread-bg, #f8fbff)}.pt-notification-item.unread:hover{background:var(--pt-notification-item-unread-hover-bg, #f1f7ff)}.pt-notification-item.disabled{opacity:.55;cursor:not-allowed}.pt-notification-item-icon-wrapper{display:flex;justify-content:center;align-items:flex-start}.pt-notification-item-icon{width:38px;height:38px;min-width:38px;border-radius:999px;background:var(--pt-notification-item-icon-bg, #eff6ff);display:flex;align-items:center;justify-content:center;box-sizing:border-box}.pt-notification-item-icon i{font-size:1rem;line-height:1}.pt-notification-item-content{min-width:0;padding-top:1px}.pt-notification-item-text{color:var(--pt-notification-item-text, #1e293b);font-size:.86rem;font-weight:600;line-height:1.4;overflow-wrap:anywhere}.pt-notification-item.unread .pt-notification-item-text{color:var(--pt-notification-item-unread-text, #0f172a);font-weight:700}.pt-notification-item-metadata{margin-top:6px;display:flex;flex-wrap:wrap;align-items:center;gap:5px 12px;color:var(--pt-notification-metadata-text, #94a3b8);font-size:.71rem;font-weight:500;line-height:1.3}.pt-notification-item-date,.pt-notification-item-sender{min-width:0;display:inline-flex;align-items:center;gap:4px}.pt-notification-item-date i,.pt-notification-item-sender i{flex:0 0 auto;font-size:.68rem}.pt-notification-item-sender{max-width:160px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.pt-notification-item-actions{position:relative;display:flex;justify-content:flex-end;align-items:flex-start}.pt-notification-more-button{width:32px;height:32px;padding:0;border:none;border-radius:8px;background:transparent;color:var(--pt-notification-more-color, #64748b);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;transition:background-color .15s ease,color .15s ease}.pt-notification-more-button:hover{background:var(--pt-notification-more-hover-bg, #e2e8f0);color:var(--pt-notification-more-hover-color, #0f172a)}.pt-notification-more-button:focus-visible{outline:none;box-shadow:0 0 0 3px var(--pt-notification-action-focus-shadow, rgba(37, 99, 235, .14))}.pt-notification-more-button:disabled{opacity:.5;cursor:not-allowed}.pt-notification-more-button i{font-size:.95rem;line-height:1}.pt-notification-action-menu{position:absolute;top:34px;right:0;width:200px;padding:5px;background:var(--pt-notification-action-menu-bg, #ffffff);border:1px solid var(--pt-notification-action-menu-border, #e2e8f0);border-radius:10px;box-shadow:var( --pt-notification-action-menu-shadow, 0 12px 30px rgba(15, 23, 42, .16) );box-sizing:border-box;z-index:10002}.pt-notification-action-menu-item{width:100%;min-height:36px;padding:7px 9px;border:none;border-radius:7px;background:transparent;color:var(--pt-notification-action-text, #334155);display:flex;align-items:center;gap:8px;box-sizing:border-box;text-align:left;cursor:pointer;font-size:.78rem;font-weight:600;transition:background-color .15s ease,color .15s ease}.pt-notification-action-menu-item:hover{background:var(--pt-notification-action-hover-bg, #f1f5f9);color:var(--pt-notification-action-hover-text, #0f172a)}.pt-notification-action-menu-item:focus-visible{outline:none;box-shadow:0 0 0 2px var(--pt-notification-action-focus-shadow, rgba(37, 99, 235, .14))}.pt-notification-action-menu-item.danger{color:var(--pt-notification-action-danger-text, #dc2626)}.pt-notification-action-menu-item.danger:hover{background:var(--pt-notification-action-danger-hover-bg, #fef2f2);color:var(--pt-notification-action-danger-hover-text, #b91c1c)}.pt-notification-action-menu-item.disabled,.pt-notification-action-menu-item:disabled{opacity:.5;cursor:not-allowed}.pt-notification-action-menu-item i{width:16px;flex:0 0 16px;font-size:.82rem;text-align:center}.pt-notification-action-menu-item span{min-width:0;flex:1 1 auto}.pt-notification-unread-indicator{position:absolute;top:50%;right:4px;width:6px;height:6px;border-radius:999px;background:var(--pt-notification-unread-indicator, #2563eb);transform:translateY(-50%);pointer-events:none}.pt-notification-empty{min-height:160px;padding:25px;color:var(--pt-notification-empty-text, #94a3b8);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;box-sizing:border-box;text-align:center}.pt-notification-empty i{font-size:1.8rem}.pt-notification-empty span{font-size:.84rem;font-weight:600}@media(max-width:520px){.pt-notification-panel{position:fixed;top:60px;right:8px;left:8px;width:auto!important;min-width:0;max-width:none}.pt-notification-item{grid-template-columns:38px minmax(0,1fr) 32px;gap:8px;padding-right:13px}.pt-notification-item-icon{width:36px;height:36px;min-width:36px}.pt-notification-item-metadata{flex-direction:column;align-items:flex-start;gap:4px}.pt-notification-item-sender{max-width:190px}.pt-notification-action-menu{right:0;width:190px}}.pt-notification-header-left{display:flex;align-items:center;gap:8px;min-width:0}.pt-notification-global-actions{position:relative;display:flex;align-items:center;justify-content:flex-end;flex:0 0 auto}.pt-notification-global-more-button{width:32px;height:32px;padding:0;border:none;border-radius:8px;background:transparent;color:var(--pt-notification-global-more-color, #64748b);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-sizing:border-box;transition:background-color .15s ease,color .15s ease}.pt-notification-global-more-button:hover{background:var(--pt-notification-global-more-hover-bg, #f1f5f9);color:var(--pt-notification-global-more-hover-color, #0f172a)}.pt-notification-global-more-button i{font-size:.95rem}.pt-notification-global-action-menu{position:absolute;top:36px;right:0;width:210px;padding:5px;background:var(--pt-notification-action-menu-bg, #ffffff);border:1px solid var(--pt-notification-action-menu-border, #e2e8f0);border-radius:10px;box-shadow:var( --pt-notification-action-menu-shadow, 0 12px 30px rgba(15, 23, 42, .16) );box-sizing:border-box;z-index:10003}.pt-notification-footer{min-height:50px;padding:7px;border-top:1px solid var(--pt-notification-footer-border, #e2e8f0);background:var(--pt-notification-footer-bg, #ffffff);display:flex;align-items:center;justify-content:center;box-sizing:border-box}.pt-notification-view-all{width:100%;min-height:36px;padding:7px 12px;border:none;border-radius:8px;background:transparent;color:var(--pt-notification-view-all-text, #2563eb);display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;font-size:.82rem;font-weight:700;box-sizing:border-box;transition:background-color .15s ease,color .15s ease}.pt-notification-view-all:hover{background:var(--pt-notification-view-all-hover-bg, #eff6ff);color:var(--pt-notification-view-all-hover-text, #1d4ed8)}.pt-notification-view-all i{font-size:.75rem}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
|
|
6520
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: PTNotificationComponent, isStandalone: false, selector: "pt-notification", inputs: { notifications: "notifications", config: "config", totalRecords: "totalRecords", totalUnreadRecords: "totalUnreadRecords", page: "page", rows: "rows", loading: "loading" }, outputs: { notificationClick: "notificationClick", action: "action", globalAction: "globalAction", viewAll: "viewAll", panelOpened: "panelOpened", panelClosed: "panelClosed", loadMore: "loadMore" }, host: { listeners: { "document:click": "onDocumentClick()" } }, ngImport: i0, template: "@if (isVisible()) {\n <div class=\"pt-notification\">\n <button\n type=\"button\"\n class=\"pt-notification-trigger\"\n [attr.aria-expanded]=\"isOpen\"\n aria-label=\"Notifications\"\n (click)=\"togglePanel($event)\"\n >\n <i [class]=\"getBellIcon()\"></i>\n\n @if (showBadge()) {\n <span class=\"pt-notification-badge\">\n {{ getBadgeText() }}\n </span>\n }\n </button>\n\n @if (isOpen) {\n <div\n class=\"pt-notification-panel\"\n [ngStyle]=\"getPanelStyles()\"\n (click)=\"onPanelClick($event)\"\n >\n <div class=\"pt-notification-header\">\n <div class=\"pt-notification-header-left\">\n <div class=\"pt-notification-header-title\">\n {{ getTitle() }}\n </div>\n\n @if (showHeaderCount()) {\n <span class=\"pt-notification-header-count\">\n {{ getUnreadCount() }}\n </span>\n }\n </div>\n\n @if (showGlobalActions()) {\n <div\n class=\"pt-notification-global-actions\"\n (click)=\"$event.stopPropagation()\"\n >\n <button\n type=\"button\"\n class=\"pt-notification-global-more-button\"\n aria-label=\"Notification global actions\"\n (click)=\"toggleGlobalActionMenu($event)\"\n >\n <i class=\"pi pi-ellipsis-v\"></i>\n </button>\n\n @if (isGlobalActionMenuOpen) {\n <div\n class=\"pt-notification-global-action-menu\"\n (click)=\"onGlobalActionMenuClick($event)\"\n >\n @for (menuAction of getGlobalActions(); track menuAction.id) {\n <button\n type=\"button\"\n [class]=\"getActionClasses(menuAction)\"\n [disabled]=\"menuAction.disabled\"\n (click)=\"onGlobalActionClick(menuAction, $event)\"\n >\n @if (menuAction.icon) {\n <i [class]=\"menuAction.icon\"></i>\n }\n\n <span>\n {{ menuAction.label }}\n </span>\n </button>\n }\n </div>\n }\n </div>\n }\n </div>\n\n @if (hasNotifications()) {\n <div\n class=\"pt-notification-list\"\n [ngStyle]=\"getListStyles()\"\n (scroll)=\"onListScroll($event)\"\n >\n @for (notification of getNotifications(); track notification.id) {\n <div\n [class]=\"getNotificationClasses(notification)\"\n (click)=\"onNotificationClick(notification, $event)\"\n >\n <div class=\"pt-notification-item-icon-wrapper\">\n <div class=\"pt-notification-item-icon\">\n <i\n [class]=\"getNotificationIcon(notification)\"\n [ngStyle]=\"getNotificationIconStyles(notification)\"\n ></i>\n </div>\n </div>\n\n <div class=\"pt-notification-item-content\">\n <div class=\"pt-notification-item-text\">\n {{ notification.text }}\n </div>\n\n @if (hasMetadata(notification)) {\n <div class=\"pt-notification-item-metadata\">\n @if (notification.date) {\n <span class=\"pt-notification-item-date\">\n <i class=\"pi pi-clock\"></i>\n\n {{ getDateText(notification) }}\n </span>\n }\n\n @if (notification.sender) {\n <span class=\"pt-notification-item-sender\">\n <i class=\"pi pi-user\"></i>\n\n {{ notification.sender }}\n </span>\n }\n </div>\n }\n </div>\n\n @if (hasActions(notification)) {\n <div\n class=\"pt-notification-item-actions\"\n (click)=\"$event.stopPropagation()\"\n >\n <button\n type=\"button\"\n class=\"pt-notification-more-button\"\n aria-label=\"Notification actions\"\n [disabled]=\"notification.disabled\"\n (click)=\"toggleActionMenu(notification, $event)\"\n >\n <i class=\"pi pi-ellipsis-v\"></i>\n </button>\n\n @if (isActionMenuOpen(notification)) {\n <div\n class=\"pt-notification-action-menu\"\n (click)=\"onActionMenuClick($event)\"\n >\n @for (\n menuAction of getActions(notification);\n track menuAction.id\n ) {\n <button\n type=\"button\"\n [class]=\"getActionClasses(menuAction)\"\n [disabled]=\"menuAction.disabled\"\n (click)=\"\n onActionClick(notification, menuAction, $event)\n \"\n >\n @if (menuAction.icon) {\n <i [class]=\"menuAction.icon\"></i>\n }\n\n <span>\n {{ menuAction.label }}\n </span>\n </button>\n }\n </div>\n }\n </div>\n }\n\n @if (notification.read !== true) {\n <span class=\"pt-notification-unread-indicator\"></span>\n }\n </div>\n }\n\n @if (showInfiniteScrollLoader()) {\n <div class=\"pt-notification-load-more\">\n <i class=\"pi pi-spin pi-spinner\"></i>\n\n <span>\n {{ getLoadingText() }}\n </span>\n </div>\n }\n </div>\n } @else {\n <div class=\"pt-notification-empty\">\n @if (loading) {\n <i class=\"pi pi-spin pi-spinner\"></i>\n\n <span>\n {{ getLoadingText() }}\n </span>\n } @else {\n <i class=\"pi pi-bell-slash\"></i>\n\n <span>\n {{ getEmptyText() }}\n </span>\n }\n </div>\n }\n\n @if (showViewAll()) {\n <div class=\"pt-notification-footer\">\n <button\n type=\"button\"\n class=\"pt-notification-view-all\"\n (click)=\"onViewAllClick($event)\"\n >\n <span>\n {{ getViewAllText() }}\n </span>\n\n <i [class]=\"getViewAllIcon()\"></i>\n </button>\n </div>\n }\n </div>\n }\n </div>\n}\n", styles: [":host{display:inline-flex;align-items:center;justify-content:center}.pt-notification{position:relative;display:inline-flex;align-items:center;justify-content:center}.pt-notification-trigger{position:relative;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;min-width:40px;padding:0;border:none;border-radius:999px;background:transparent;color:var(--pt-notification-bell-color, #475569);box-sizing:border-box;cursor:pointer;transition:background-color .2s ease,color .2s ease}.pt-notification-trigger:hover{background:var(--pt-notification-bell-hover-bg, #f1f5f9);color:var(--pt-notification-bell-hover-color, #0f172a)}.pt-notification-trigger:focus-visible{outline:none;box-shadow:0 0 0 3px var(--pt-notification-bell-focus-shadow, rgba(37, 99, 235, .16))}.pt-notification-trigger>i{font-size:1.25rem;line-height:1}.pt-notification-badge{position:absolute;top:-2px;right:-4px;display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:19px;padding:0 4px;border:2px solid var(--pt-notification-badge-border, #ffffff);border-radius:999px;background:var(--pt-notification-badge-bg, #dc2626);color:var(--pt-notification-badge-text, #ffffff);box-sizing:border-box;font-size:.65rem;font-weight:800;line-height:1;pointer-events:none}.pt-notification-panel{position:absolute;top:calc(100% + 10px);right:0;display:flex;flex-direction:column;width:min(500px,calc(100vw - 24px));min-width:360px;max-width:calc(100vw - 24px);border:1px solid var(--pt-notification-panel-border, #e2e8f0);border-radius:14px;background:var(--pt-notification-panel-bg, #ffffff);color:var(--pt-notification-panel-text, #334155);box-shadow:var( --pt-notification-panel-shadow, 0 18px 45px rgba(15, 23, 42, .16) );box-sizing:border-box;overflow:hidden;z-index:10000}.pt-notification-header{position:relative;display:flex;align-items:center;justify-content:space-between;width:100%;min-height:54px;padding:0 16px;border-bottom:1px solid var(--pt-notification-header-border, #e2e8f0);box-sizing:border-box;gap:12px}.pt-notification-header-left{display:flex;align-items:center;min-width:0;gap:8px}.pt-notification-header-title{min-width:0;color:var(--pt-notification-header-title, #0f172a);font-size:.95rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pt-notification-header-count{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:26px;height:26px;padding:0 7px;border-radius:999px;background:var(--pt-notification-header-count-bg, #eff6ff);color:var(--pt-notification-header-count-text, #2563eb);box-sizing:border-box;font-size:.75rem;font-weight:800;line-height:1}.pt-notification-global-actions{position:relative;display:flex;align-items:center;justify-content:center;flex:0 0 auto}.pt-notification-global-more-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:8px;background:transparent;color:var(--pt-notification-global-more-color, #64748b);box-sizing:border-box;cursor:pointer;transition:background-color .15s ease,color .15s ease}.pt-notification-global-more-button:hover{background:var(--pt-notification-global-more-hover-bg, #f1f5f9);color:var(--pt-notification-global-more-hover-color, #0f172a)}.pt-notification-global-more-button:focus-visible{outline:none;box-shadow:0 0 0 3px var(--pt-notification-action-focus-shadow, rgba(37, 99, 235, .14))}.pt-notification-global-more-button i{font-size:.95rem}.pt-notification-global-action-menu{position:absolute;top:36px;right:0;width:210px;padding:5px;border:1px solid var(--pt-notification-action-menu-border, #e2e8f0);border-radius:10px;background:var(--pt-notification-action-menu-bg, #ffffff);box-shadow:var( --pt-notification-action-menu-shadow, 0 12px 30px rgba(15, 23, 42, .16) );box-sizing:border-box;z-index:10005}.pt-notification-list{display:block;width:100%;min-width:0;box-sizing:border-box;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.pt-notification-item{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr) 32px;align-items:start;width:100%;min-width:0;gap:11px;min-height:76px;padding:14px 16px;border-bottom:1px solid var(--pt-notification-item-border, #f1f5f9);background:var(--pt-notification-item-bg, #ffffff);box-sizing:border-box;overflow:hidden;cursor:pointer;transition:background-color .15s ease}.pt-notification-item:last-child{border-bottom:none}.pt-notification-item:hover{background:var(--pt-notification-item-hover-bg, #f8fafc)}.pt-notification-item.unread{background:var(--pt-notification-item-unread-bg, #f8fbff)}.pt-notification-item.unread:hover{background:var(--pt-notification-item-unread-hover-bg, #f1f7ff)}.pt-notification-item.disabled{opacity:.55;cursor:not-allowed}.pt-notification-item-icon-wrapper{display:flex;align-items:flex-start;justify-content:center;width:40px;min-width:40px}.pt-notification-item-icon{display:flex;align-items:center;justify-content:center;width:38px;height:38px;min-width:38px;border-radius:999px;background:var(--pt-notification-item-icon-bg, #eff6ff);box-sizing:border-box}.pt-notification-item-icon i{font-size:1rem;line-height:1}.pt-notification-item-content{width:100%;min-width:0;max-width:100%;padding-top:1px;box-sizing:border-box;overflow:hidden}.pt-notification-item-text{display:block;width:100%;min-width:0;max-width:100%;color:var(--pt-notification-item-text, #1e293b);font-size:.86rem;font-weight:600;line-height:1.45;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.pt-notification-item.unread .pt-notification-item-text{color:var(--pt-notification-item-unread-text, #0f172a);font-weight:700}.pt-notification-item-metadata{display:flex;align-items:center;flex-wrap:wrap;width:100%;min-width:0;gap:5px 12px;margin-top:7px;color:var(--pt-notification-metadata-text, #94a3b8);font-size:.71rem;font-weight:500;line-height:1.3}.pt-notification-item-date,.pt-notification-item-sender{display:inline-flex;align-items:center;min-width:0;gap:4px}.pt-notification-item-date i,.pt-notification-item-sender i{flex:0 0 auto;font-size:.68rem}.pt-notification-item-sender{max-width:180px;white-space:normal;overflow-wrap:anywhere}.pt-notification-item-actions{position:relative;display:flex;align-items:flex-start;justify-content:center;width:32px;min-width:32px}.pt-notification-more-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:8px;background:transparent;color:var(--pt-notification-more-color, #64748b);box-sizing:border-box;cursor:pointer;transition:background-color .15s ease,color .15s ease}.pt-notification-more-button:hover:not(:disabled){background:var(--pt-notification-more-hover-bg, #e2e8f0);color:var(--pt-notification-more-hover-color, #0f172a)}.pt-notification-more-button:focus-visible{outline:none;box-shadow:0 0 0 3px var(--pt-notification-action-focus-shadow, rgba(37, 99, 235, .14))}.pt-notification-more-button:disabled{opacity:.5;cursor:not-allowed}.pt-notification-more-button i{font-size:.95rem;line-height:1}.pt-notification-action-menu{position:absolute;top:34px;right:0;width:200px;padding:5px;border:1px solid var(--pt-notification-action-menu-border, #e2e8f0);border-radius:10px;background:var(--pt-notification-action-menu-bg, #ffffff);box-shadow:var( --pt-notification-action-menu-shadow, 0 12px 30px rgba(15, 23, 42, .16) );box-sizing:border-box;z-index:10006}.pt-notification-action-menu-item{display:flex;align-items:center;gap:8px;width:100%;min-height:36px;padding:7px 9px;border:none;border-radius:7px;background:transparent;color:var(--pt-notification-action-text, #334155);box-sizing:border-box;text-align:left;cursor:pointer;font-size:.78rem;font-weight:600;transition:background-color .15s ease,color .15s ease}.pt-notification-action-menu-item:hover:not(:disabled){background:var(--pt-notification-action-hover-bg, #f1f5f9);color:var(--pt-notification-action-hover-text, #0f172a)}.pt-notification-action-menu-item:focus-visible{outline:none;box-shadow:0 0 0 2px var(--pt-notification-action-focus-shadow, rgba(37, 99, 235, .14))}.pt-notification-action-menu-item.danger{color:var(--pt-notification-action-danger-text, #dc2626)}.pt-notification-action-menu-item.danger:hover:not(:disabled){background:var(--pt-notification-action-danger-hover-bg, #fef2f2);color:var(--pt-notification-action-danger-hover-text, #b91c1c)}.pt-notification-action-menu-item.disabled,.pt-notification-action-menu-item:disabled{opacity:.5;cursor:not-allowed}.pt-notification-action-menu-item i{width:16px;flex:0 0 16px;font-size:.82rem;text-align:center}.pt-notification-action-menu-item span{min-width:0;flex:1 1 auto}.pt-notification-unread-indicator{position:absolute;top:15px;right:7px;width:6px;height:6px;border-radius:999px;background:var(--pt-notification-unread-indicator, #2563eb);pointer-events:none}.pt-notification-load-more{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;padding:10px 16px;color:var(--pt-notification-loading-text, #64748b);box-sizing:border-box;gap:8px;font-size:.78rem;font-weight:600}.pt-notification-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-height:160px;padding:25px;color:var(--pt-notification-empty-text, #94a3b8);box-sizing:border-box;gap:10px;text-align:center}.pt-notification-empty i{font-size:1.8rem}.pt-notification-empty span{font-size:.84rem;font-weight:600}.pt-notification-footer{display:flex;align-items:center;justify-content:center;width:100%;min-height:50px;padding:7px;border-top:1px solid var(--pt-notification-footer-border, #e2e8f0);background:var(--pt-notification-footer-bg, #ffffff);box-sizing:border-box}.pt-notification-view-all{display:flex;align-items:center;justify-content:center;width:100%;min-height:36px;padding:7px 12px;border:none;border-radius:8px;background:transparent;color:var(--pt-notification-view-all-text, #2563eb);box-sizing:border-box;gap:8px;cursor:pointer;font-size:.82rem;font-weight:700;transition:background-color .15s ease,color .15s ease}.pt-notification-view-all:hover{background:var(--pt-notification-view-all-hover-bg, #eff6ff);color:var(--pt-notification-view-all-hover-text, #1d4ed8)}.pt-notification-view-all i{font-size:.75rem}@media(max-width:520px){.pt-notification-panel{position:fixed;top:60px;right:8px;left:8px;width:auto!important;min-width:0;max-width:none}.pt-notification-item{grid-template-columns:36px minmax(0,1fr) 30px;gap:8px;padding:12px}.pt-notification-item-icon-wrapper{width:36px;min-width:36px}.pt-notification-item-icon{width:34px;height:34px;min-width:34px}.pt-notification-item-metadata{flex-direction:column;align-items:flex-start;gap:4px}.pt-notification-item-sender{max-width:100%}.pt-notification-action-menu{right:0;width:190px}}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
|
|
6523
6521
|
}
|
|
6524
6522
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTNotificationComponent, decorators: [{
|
|
6525
6523
|
type: Component,
|
|
6526
|
-
args: [{ selector: 'pt-notification', standalone: false, template: "@if (isVisible()) {\n <div class=\"pt-notification\">\n <button\n type=\"button\"\n class=\"pt-notification-trigger\"\n [attr.aria-expanded]=\"isOpen\"\n aria-label=\"Notifications\"\n (click)=\"togglePanel($event)\"\n >\n <i [class]=\"getBellIcon()\"></i>\n\n @if (showBadge()) {\n <span class=\"pt-notification-badge\">\n {{ getBadgeText() }}\n </span>\n }\n </button>\n\n @if (isOpen) {\n <div\n class=\"pt-notification-panel\"\n [ngStyle]=\"getPanelStyles()\"\n (click)=\"onPanelClick($event)\"\n >\n <div class=\"pt-notification-header\">\n <div class=\"pt-notification-header-left\">\n <div class=\"pt-notification-header-title\">\n {{ getTitle() }}\n </div>\n\n @if (showHeaderCount()) {\n <span class=\"pt-notification-header-count\">\n {{ getUnreadCount() }}\n </span>\n }\n </div>\n\n @if (showGlobalActions()) {\n <div\n class=\"pt-notification-global-actions\"\n (click)=\"$event.stopPropagation()\"\n >\n <button\n type=\"button\"\n class=\"pt-notification-global-more-button\"\n aria-label=\"Notification global actions\"\n (click)=\"toggleGlobalActionMenu($event)\"\n >\n <i class=\"pi pi-ellipsis-v\"></i>\n </button>\n\n @if (isGlobalActionMenuOpen) {\n <div\n class=\"pt-notification-global-action-menu\"\n (click)=\"onGlobalActionMenuClick($event)\"\n >\n @for (menuAction of getGlobalActions(); track menuAction.id) {\n <button\n type=\"button\"\n [class]=\"getActionClasses(menuAction)\"\n [disabled]=\"menuAction.disabled\"\n (click)=\"onGlobalActionClick(menuAction, $event)\"\n >\n @if (menuAction.icon) {\n <i [class]=\"menuAction.icon\"></i>\n }\n\n <span>\n {{ menuAction.label }}\n </span>\n </button>\n }\n </div>\n }\n </div>\n }\n </div>\n\n @if (hasNotifications()) {\n <div\n class=\"pt-notification-list\"\n [ngStyle]=\"getListStyles()\"\n (scroll)=\"onListScroll($event)\"\n >\n @for (notification of getNotifications(); track notification.id) {\n <div\n [class]=\"getNotificationClasses(notification)\"\n (click)=\"onNotificationClick(notification, $event)\"\n >\n <div class=\"pt-notification-item-icon-wrapper\">\n <div class=\"pt-notification-item-icon\">\n <i\n [class]=\"getNotificationIcon(notification)\"\n [ngStyle]=\"getNotificationIconStyles(notification)\"\n ></i>\n </div>\n </div>\n\n <div class=\"pt-notification-item-content\">\n <div class=\"pt-notification-item-text\">\n {{ notification.text }}\n </div>\n\n @if (hasMetadata(notification)) {\n <div class=\"pt-notification-item-metadata\">\n @if (notification.date) {\n <span class=\"pt-notification-item-date\">\n <i class=\"pi pi-clock\"></i>\n\n {{ getDateText(notification) }}\n </span>\n }\n\n @if (notification.sender) {\n <span class=\"pt-notification-item-sender\">\n <i class=\"pi pi-user\"></i>\n\n {{ notification.sender }}\n </span>\n }\n </div>\n }\n </div>\n\n @if (hasActions(notification)) {\n <div\n class=\"pt-notification-item-actions\"\n (click)=\"$event.stopPropagation()\"\n >\n <button\n type=\"button\"\n class=\"pt-notification-more-button\"\n aria-label=\"Notification actions\"\n [disabled]=\"notification.disabled\"\n (click)=\"toggleActionMenu(notification, $event)\"\n >\n <i class=\"pi pi-ellipsis-v\"></i>\n </button>\n\n @if (isActionMenuOpen(notification)) {\n <div\n class=\"pt-notification-action-menu\"\n (click)=\"onActionMenuClick($event)\"\n >\n @for (\n menuAction of getActions(notification);\n track menuAction.id\n ) {\n <button\n type=\"button\"\n [class]=\"getActionClasses(menuAction)\"\n [disabled]=\"menuAction.disabled\"\n (click)=\"\n onActionClick(notification, menuAction, $event)\n \"\n >\n @if (menuAction.icon) {\n <i [class]=\"menuAction.icon\"></i>\n }\n\n <span>\n {{ menuAction.label }}\n </span>\n </button>\n }\n </div>\n }\n </div>\n }\n\n @if (notification.read !== true) {\n <span class=\"pt-notification-unread-indicator\"></span>\n }\n </div>\n }\n\n @if (showInfiniteScrollLoader()) {\n <div class=\"pt-notification-load-more\">\n <i class=\"pi pi-spin pi-spinner\"></i>\n\n <span>\n {{ getLoadingText() }}\n </span>\n </div>\n }\n </div>\n } @else {\n <div class=\"pt-notification-empty\">\n @if (loading) {\n <i class=\"pi pi-spin pi-spinner\"></i>\n\n <span>\n {{ getLoadingText() }}\n </span>\n } @else {\n <i class=\"pi pi-bell-slash\"></i>\n\n <span>\n {{ getEmptyText() }}\n </span>\n }\n </div>\n }\n\n @if (showViewAll()) {\n <div class=\"pt-notification-footer\">\n <button\n type=\"button\"\n class=\"pt-notification-view-all\"\n (click)=\"onViewAllClick($event)\"\n >\n <span>\n {{ getViewAllText() }}\n </span>\n\n <i [class]=\"getViewAllIcon()\"></i>\n </button>\n </div>\n }\n </div>\n }\n </div>\n}\n", styles: [":host{display:inline-flex;align-items:center;justify-content:center}.pt-notification{position:relative;display:inline-flex;align-items:center;justify-content:center}.pt-notification-trigger{position:relative;width:40px;height:40px;min-width:40px;padding:0;border:none;border-radius:999px;background:transparent;color:var(--pt-notification-bell-color, #475569);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;transition:background-color .2s ease,color .2s ease}.pt-notification-trigger:hover{background:var(--pt-notification-bell-hover-bg, #f1f5f9);color:var(--pt-notification-bell-hover-color, #0f172a)}.pt-notification-trigger:focus-visible{outline:none;box-shadow:0 0 0 3px var(--pt-notification-bell-focus-shadow, rgba(37, 99, 235, .16))}.pt-notification-trigger>i{font-size:1.25rem;line-height:1}.pt-notification-badge{position:absolute;top:-1px;right:-3px;min-width:18px;height:18px;padding:0 4px;border:2px solid var(--pt-notification-badge-border, #ffffff);border-radius:999px;background:var(--pt-notification-badge-bg, #dc2626);color:var(--pt-notification-badge-text, #ffffff);display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;font-size:.65rem;font-weight:800;line-height:1;pointer-events:none}.pt-notification-panel{position:absolute;top:calc(100% + 10px);right:0;min-width:320px;max-width:min(420px,calc(100vw - 24px));background:var(--pt-notification-panel-bg, #ffffff);color:var(--pt-notification-panel-text, #334155);border:1px solid var(--pt-notification-panel-border, #e2e8f0);border-radius:14px;box-shadow:var( --pt-notification-panel-shadow, 0 18px 45px rgba(15, 23, 42, .16) );box-sizing:border-box;overflow:visible;z-index:10000}.pt-notification-header{min-height:52px;padding:0 16px;border-bottom:1px solid var(--pt-notification-header-border, #e2e8f0);display:flex;align-items:center;justify-content:space-between;gap:12px;box-sizing:border-box}.pt-notification-header-title{min-width:0;color:var(--pt-notification-header-title, #0f172a);font-size:.95rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pt-notification-header-count{min-width:24px;height:24px;padding:0 7px;border-radius:999px;background:var(--pt-notification-header-count-bg, #eff6ff);color:var(--pt-notification-header-count-text, #2563eb);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;box-sizing:border-box;font-size:.75rem;font-weight:800;line-height:1}.pt-notification-list{overflow-y:auto;overflow-x:visible;overscroll-behavior:contain}.pt-notification-item{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr) 34px;align-items:flex-start;gap:10px;min-height:76px;padding:13px 14px 13px 12px;border-bottom:1px solid var(--pt-notification-item-border, #f1f5f9);background:var(--pt-notification-item-bg, #ffffff);cursor:pointer;box-sizing:border-box;transition:background-color .15s ease}.pt-notification-item:last-child{border-bottom:none}.pt-notification-item:hover{background:var(--pt-notification-item-hover-bg, #f8fafc)}.pt-notification-item.unread{background:var(--pt-notification-item-unread-bg, #f8fbff)}.pt-notification-item.unread:hover{background:var(--pt-notification-item-unread-hover-bg, #f1f7ff)}.pt-notification-item.disabled{opacity:.55;cursor:not-allowed}.pt-notification-item-icon-wrapper{display:flex;justify-content:center;align-items:flex-start}.pt-notification-item-icon{width:38px;height:38px;min-width:38px;border-radius:999px;background:var(--pt-notification-item-icon-bg, #eff6ff);display:flex;align-items:center;justify-content:center;box-sizing:border-box}.pt-notification-item-icon i{font-size:1rem;line-height:1}.pt-notification-item-content{min-width:0;padding-top:1px}.pt-notification-item-text{color:var(--pt-notification-item-text, #1e293b);font-size:.86rem;font-weight:600;line-height:1.4;overflow-wrap:anywhere}.pt-notification-item.unread .pt-notification-item-text{color:var(--pt-notification-item-unread-text, #0f172a);font-weight:700}.pt-notification-item-metadata{margin-top:6px;display:flex;flex-wrap:wrap;align-items:center;gap:5px 12px;color:var(--pt-notification-metadata-text, #94a3b8);font-size:.71rem;font-weight:500;line-height:1.3}.pt-notification-item-date,.pt-notification-item-sender{min-width:0;display:inline-flex;align-items:center;gap:4px}.pt-notification-item-date i,.pt-notification-item-sender i{flex:0 0 auto;font-size:.68rem}.pt-notification-item-sender{max-width:160px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.pt-notification-item-actions{position:relative;display:flex;justify-content:flex-end;align-items:flex-start}.pt-notification-more-button{width:32px;height:32px;padding:0;border:none;border-radius:8px;background:transparent;color:var(--pt-notification-more-color, #64748b);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;transition:background-color .15s ease,color .15s ease}.pt-notification-more-button:hover{background:var(--pt-notification-more-hover-bg, #e2e8f0);color:var(--pt-notification-more-hover-color, #0f172a)}.pt-notification-more-button:focus-visible{outline:none;box-shadow:0 0 0 3px var(--pt-notification-action-focus-shadow, rgba(37, 99, 235, .14))}.pt-notification-more-button:disabled{opacity:.5;cursor:not-allowed}.pt-notification-more-button i{font-size:.95rem;line-height:1}.pt-notification-action-menu{position:absolute;top:34px;right:0;width:200px;padding:5px;background:var(--pt-notification-action-menu-bg, #ffffff);border:1px solid var(--pt-notification-action-menu-border, #e2e8f0);border-radius:10px;box-shadow:var( --pt-notification-action-menu-shadow, 0 12px 30px rgba(15, 23, 42, .16) );box-sizing:border-box;z-index:10002}.pt-notification-action-menu-item{width:100%;min-height:36px;padding:7px 9px;border:none;border-radius:7px;background:transparent;color:var(--pt-notification-action-text, #334155);display:flex;align-items:center;gap:8px;box-sizing:border-box;text-align:left;cursor:pointer;font-size:.78rem;font-weight:600;transition:background-color .15s ease,color .15s ease}.pt-notification-action-menu-item:hover{background:var(--pt-notification-action-hover-bg, #f1f5f9);color:var(--pt-notification-action-hover-text, #0f172a)}.pt-notification-action-menu-item:focus-visible{outline:none;box-shadow:0 0 0 2px var(--pt-notification-action-focus-shadow, rgba(37, 99, 235, .14))}.pt-notification-action-menu-item.danger{color:var(--pt-notification-action-danger-text, #dc2626)}.pt-notification-action-menu-item.danger:hover{background:var(--pt-notification-action-danger-hover-bg, #fef2f2);color:var(--pt-notification-action-danger-hover-text, #b91c1c)}.pt-notification-action-menu-item.disabled,.pt-notification-action-menu-item:disabled{opacity:.5;cursor:not-allowed}.pt-notification-action-menu-item i{width:16px;flex:0 0 16px;font-size:.82rem;text-align:center}.pt-notification-action-menu-item span{min-width:0;flex:1 1 auto}.pt-notification-unread-indicator{position:absolute;top:50%;right:4px;width:6px;height:6px;border-radius:999px;background:var(--pt-notification-unread-indicator, #2563eb);transform:translateY(-50%);pointer-events:none}.pt-notification-empty{min-height:160px;padding:25px;color:var(--pt-notification-empty-text, #94a3b8);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;box-sizing:border-box;text-align:center}.pt-notification-empty i{font-size:1.8rem}.pt-notification-empty span{font-size:.84rem;font-weight:600}@media(max-width:520px){.pt-notification-panel{position:fixed;top:60px;right:8px;left:8px;width:auto!important;min-width:0;max-width:none}.pt-notification-item{grid-template-columns:38px minmax(0,1fr) 32px;gap:8px;padding-right:13px}.pt-notification-item-icon{width:36px;height:36px;min-width:36px}.pt-notification-item-metadata{flex-direction:column;align-items:flex-start;gap:4px}.pt-notification-item-sender{max-width:190px}.pt-notification-action-menu{right:0;width:190px}}.pt-notification-header-left{display:flex;align-items:center;gap:8px;min-width:0}.pt-notification-global-actions{position:relative;display:flex;align-items:center;justify-content:flex-end;flex:0 0 auto}.pt-notification-global-more-button{width:32px;height:32px;padding:0;border:none;border-radius:8px;background:transparent;color:var(--pt-notification-global-more-color, #64748b);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-sizing:border-box;transition:background-color .15s ease,color .15s ease}.pt-notification-global-more-button:hover{background:var(--pt-notification-global-more-hover-bg, #f1f5f9);color:var(--pt-notification-global-more-hover-color, #0f172a)}.pt-notification-global-more-button i{font-size:.95rem}.pt-notification-global-action-menu{position:absolute;top:36px;right:0;width:210px;padding:5px;background:var(--pt-notification-action-menu-bg, #ffffff);border:1px solid var(--pt-notification-action-menu-border, #e2e8f0);border-radius:10px;box-shadow:var( --pt-notification-action-menu-shadow, 0 12px 30px rgba(15, 23, 42, .16) );box-sizing:border-box;z-index:10003}.pt-notification-footer{min-height:50px;padding:7px;border-top:1px solid var(--pt-notification-footer-border, #e2e8f0);background:var(--pt-notification-footer-bg, #ffffff);display:flex;align-items:center;justify-content:center;box-sizing:border-box}.pt-notification-view-all{width:100%;min-height:36px;padding:7px 12px;border:none;border-radius:8px;background:transparent;color:var(--pt-notification-view-all-text, #2563eb);display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;font-size:.82rem;font-weight:700;box-sizing:border-box;transition:background-color .15s ease,color .15s ease}.pt-notification-view-all:hover{background:var(--pt-notification-view-all-hover-bg, #eff6ff);color:var(--pt-notification-view-all-hover-text, #1d4ed8)}.pt-notification-view-all i{font-size:.75rem}\n"] }]
|
|
6524
|
+
args: [{ selector: 'pt-notification', standalone: false, template: "@if (isVisible()) {\n <div class=\"pt-notification\">\n <button\n type=\"button\"\n class=\"pt-notification-trigger\"\n [attr.aria-expanded]=\"isOpen\"\n aria-label=\"Notifications\"\n (click)=\"togglePanel($event)\"\n >\n <i [class]=\"getBellIcon()\"></i>\n\n @if (showBadge()) {\n <span class=\"pt-notification-badge\">\n {{ getBadgeText() }}\n </span>\n }\n </button>\n\n @if (isOpen) {\n <div\n class=\"pt-notification-panel\"\n [ngStyle]=\"getPanelStyles()\"\n (click)=\"onPanelClick($event)\"\n >\n <div class=\"pt-notification-header\">\n <div class=\"pt-notification-header-left\">\n <div class=\"pt-notification-header-title\">\n {{ getTitle() }}\n </div>\n\n @if (showHeaderCount()) {\n <span class=\"pt-notification-header-count\">\n {{ getUnreadCount() }}\n </span>\n }\n </div>\n\n @if (showGlobalActions()) {\n <div\n class=\"pt-notification-global-actions\"\n (click)=\"$event.stopPropagation()\"\n >\n <button\n type=\"button\"\n class=\"pt-notification-global-more-button\"\n aria-label=\"Notification global actions\"\n (click)=\"toggleGlobalActionMenu($event)\"\n >\n <i class=\"pi pi-ellipsis-v\"></i>\n </button>\n\n @if (isGlobalActionMenuOpen) {\n <div\n class=\"pt-notification-global-action-menu\"\n (click)=\"onGlobalActionMenuClick($event)\"\n >\n @for (menuAction of getGlobalActions(); track menuAction.id) {\n <button\n type=\"button\"\n [class]=\"getActionClasses(menuAction)\"\n [disabled]=\"menuAction.disabled\"\n (click)=\"onGlobalActionClick(menuAction, $event)\"\n >\n @if (menuAction.icon) {\n <i [class]=\"menuAction.icon\"></i>\n }\n\n <span>\n {{ menuAction.label }}\n </span>\n </button>\n }\n </div>\n }\n </div>\n }\n </div>\n\n @if (hasNotifications()) {\n <div\n class=\"pt-notification-list\"\n [ngStyle]=\"getListStyles()\"\n (scroll)=\"onListScroll($event)\"\n >\n @for (notification of getNotifications(); track notification.id) {\n <div\n [class]=\"getNotificationClasses(notification)\"\n (click)=\"onNotificationClick(notification, $event)\"\n >\n <div class=\"pt-notification-item-icon-wrapper\">\n <div class=\"pt-notification-item-icon\">\n <i\n [class]=\"getNotificationIcon(notification)\"\n [ngStyle]=\"getNotificationIconStyles(notification)\"\n ></i>\n </div>\n </div>\n\n <div class=\"pt-notification-item-content\">\n <div class=\"pt-notification-item-text\">\n {{ notification.text }}\n </div>\n\n @if (hasMetadata(notification)) {\n <div class=\"pt-notification-item-metadata\">\n @if (notification.date) {\n <span class=\"pt-notification-item-date\">\n <i class=\"pi pi-clock\"></i>\n\n {{ getDateText(notification) }}\n </span>\n }\n\n @if (notification.sender) {\n <span class=\"pt-notification-item-sender\">\n <i class=\"pi pi-user\"></i>\n\n {{ notification.sender }}\n </span>\n }\n </div>\n }\n </div>\n\n @if (hasActions(notification)) {\n <div\n class=\"pt-notification-item-actions\"\n (click)=\"$event.stopPropagation()\"\n >\n <button\n type=\"button\"\n class=\"pt-notification-more-button\"\n aria-label=\"Notification actions\"\n [disabled]=\"notification.disabled\"\n (click)=\"toggleActionMenu(notification, $event)\"\n >\n <i class=\"pi pi-ellipsis-v\"></i>\n </button>\n\n @if (isActionMenuOpen(notification)) {\n <div\n class=\"pt-notification-action-menu\"\n (click)=\"onActionMenuClick($event)\"\n >\n @for (\n menuAction of getActions(notification);\n track menuAction.id\n ) {\n <button\n type=\"button\"\n [class]=\"getActionClasses(menuAction)\"\n [disabled]=\"menuAction.disabled\"\n (click)=\"\n onActionClick(notification, menuAction, $event)\n \"\n >\n @if (menuAction.icon) {\n <i [class]=\"menuAction.icon\"></i>\n }\n\n <span>\n {{ menuAction.label }}\n </span>\n </button>\n }\n </div>\n }\n </div>\n }\n\n @if (notification.read !== true) {\n <span class=\"pt-notification-unread-indicator\"></span>\n }\n </div>\n }\n\n @if (showInfiniteScrollLoader()) {\n <div class=\"pt-notification-load-more\">\n <i class=\"pi pi-spin pi-spinner\"></i>\n\n <span>\n {{ getLoadingText() }}\n </span>\n </div>\n }\n </div>\n } @else {\n <div class=\"pt-notification-empty\">\n @if (loading) {\n <i class=\"pi pi-spin pi-spinner\"></i>\n\n <span>\n {{ getLoadingText() }}\n </span>\n } @else {\n <i class=\"pi pi-bell-slash\"></i>\n\n <span>\n {{ getEmptyText() }}\n </span>\n }\n </div>\n }\n\n @if (showViewAll()) {\n <div class=\"pt-notification-footer\">\n <button\n type=\"button\"\n class=\"pt-notification-view-all\"\n (click)=\"onViewAllClick($event)\"\n >\n <span>\n {{ getViewAllText() }}\n </span>\n\n <i [class]=\"getViewAllIcon()\"></i>\n </button>\n </div>\n }\n </div>\n }\n </div>\n}\n", styles: [":host{display:inline-flex;align-items:center;justify-content:center}.pt-notification{position:relative;display:inline-flex;align-items:center;justify-content:center}.pt-notification-trigger{position:relative;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;min-width:40px;padding:0;border:none;border-radius:999px;background:transparent;color:var(--pt-notification-bell-color, #475569);box-sizing:border-box;cursor:pointer;transition:background-color .2s ease,color .2s ease}.pt-notification-trigger:hover{background:var(--pt-notification-bell-hover-bg, #f1f5f9);color:var(--pt-notification-bell-hover-color, #0f172a)}.pt-notification-trigger:focus-visible{outline:none;box-shadow:0 0 0 3px var(--pt-notification-bell-focus-shadow, rgba(37, 99, 235, .16))}.pt-notification-trigger>i{font-size:1.25rem;line-height:1}.pt-notification-badge{position:absolute;top:-2px;right:-4px;display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:19px;padding:0 4px;border:2px solid var(--pt-notification-badge-border, #ffffff);border-radius:999px;background:var(--pt-notification-badge-bg, #dc2626);color:var(--pt-notification-badge-text, #ffffff);box-sizing:border-box;font-size:.65rem;font-weight:800;line-height:1;pointer-events:none}.pt-notification-panel{position:absolute;top:calc(100% + 10px);right:0;display:flex;flex-direction:column;width:min(500px,calc(100vw - 24px));min-width:360px;max-width:calc(100vw - 24px);border:1px solid var(--pt-notification-panel-border, #e2e8f0);border-radius:14px;background:var(--pt-notification-panel-bg, #ffffff);color:var(--pt-notification-panel-text, #334155);box-shadow:var( --pt-notification-panel-shadow, 0 18px 45px rgba(15, 23, 42, .16) );box-sizing:border-box;overflow:hidden;z-index:10000}.pt-notification-header{position:relative;display:flex;align-items:center;justify-content:space-between;width:100%;min-height:54px;padding:0 16px;border-bottom:1px solid var(--pt-notification-header-border, #e2e8f0);box-sizing:border-box;gap:12px}.pt-notification-header-left{display:flex;align-items:center;min-width:0;gap:8px}.pt-notification-header-title{min-width:0;color:var(--pt-notification-header-title, #0f172a);font-size:.95rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pt-notification-header-count{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:26px;height:26px;padding:0 7px;border-radius:999px;background:var(--pt-notification-header-count-bg, #eff6ff);color:var(--pt-notification-header-count-text, #2563eb);box-sizing:border-box;font-size:.75rem;font-weight:800;line-height:1}.pt-notification-global-actions{position:relative;display:flex;align-items:center;justify-content:center;flex:0 0 auto}.pt-notification-global-more-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:8px;background:transparent;color:var(--pt-notification-global-more-color, #64748b);box-sizing:border-box;cursor:pointer;transition:background-color .15s ease,color .15s ease}.pt-notification-global-more-button:hover{background:var(--pt-notification-global-more-hover-bg, #f1f5f9);color:var(--pt-notification-global-more-hover-color, #0f172a)}.pt-notification-global-more-button:focus-visible{outline:none;box-shadow:0 0 0 3px var(--pt-notification-action-focus-shadow, rgba(37, 99, 235, .14))}.pt-notification-global-more-button i{font-size:.95rem}.pt-notification-global-action-menu{position:absolute;top:36px;right:0;width:210px;padding:5px;border:1px solid var(--pt-notification-action-menu-border, #e2e8f0);border-radius:10px;background:var(--pt-notification-action-menu-bg, #ffffff);box-shadow:var( --pt-notification-action-menu-shadow, 0 12px 30px rgba(15, 23, 42, .16) );box-sizing:border-box;z-index:10005}.pt-notification-list{display:block;width:100%;min-width:0;box-sizing:border-box;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.pt-notification-item{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr) 32px;align-items:start;width:100%;min-width:0;gap:11px;min-height:76px;padding:14px 16px;border-bottom:1px solid var(--pt-notification-item-border, #f1f5f9);background:var(--pt-notification-item-bg, #ffffff);box-sizing:border-box;overflow:hidden;cursor:pointer;transition:background-color .15s ease}.pt-notification-item:last-child{border-bottom:none}.pt-notification-item:hover{background:var(--pt-notification-item-hover-bg, #f8fafc)}.pt-notification-item.unread{background:var(--pt-notification-item-unread-bg, #f8fbff)}.pt-notification-item.unread:hover{background:var(--pt-notification-item-unread-hover-bg, #f1f7ff)}.pt-notification-item.disabled{opacity:.55;cursor:not-allowed}.pt-notification-item-icon-wrapper{display:flex;align-items:flex-start;justify-content:center;width:40px;min-width:40px}.pt-notification-item-icon{display:flex;align-items:center;justify-content:center;width:38px;height:38px;min-width:38px;border-radius:999px;background:var(--pt-notification-item-icon-bg, #eff6ff);box-sizing:border-box}.pt-notification-item-icon i{font-size:1rem;line-height:1}.pt-notification-item-content{width:100%;min-width:0;max-width:100%;padding-top:1px;box-sizing:border-box;overflow:hidden}.pt-notification-item-text{display:block;width:100%;min-width:0;max-width:100%;color:var(--pt-notification-item-text, #1e293b);font-size:.86rem;font-weight:600;line-height:1.45;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.pt-notification-item.unread .pt-notification-item-text{color:var(--pt-notification-item-unread-text, #0f172a);font-weight:700}.pt-notification-item-metadata{display:flex;align-items:center;flex-wrap:wrap;width:100%;min-width:0;gap:5px 12px;margin-top:7px;color:var(--pt-notification-metadata-text, #94a3b8);font-size:.71rem;font-weight:500;line-height:1.3}.pt-notification-item-date,.pt-notification-item-sender{display:inline-flex;align-items:center;min-width:0;gap:4px}.pt-notification-item-date i,.pt-notification-item-sender i{flex:0 0 auto;font-size:.68rem}.pt-notification-item-sender{max-width:180px;white-space:normal;overflow-wrap:anywhere}.pt-notification-item-actions{position:relative;display:flex;align-items:flex-start;justify-content:center;width:32px;min-width:32px}.pt-notification-more-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:8px;background:transparent;color:var(--pt-notification-more-color, #64748b);box-sizing:border-box;cursor:pointer;transition:background-color .15s ease,color .15s ease}.pt-notification-more-button:hover:not(:disabled){background:var(--pt-notification-more-hover-bg, #e2e8f0);color:var(--pt-notification-more-hover-color, #0f172a)}.pt-notification-more-button:focus-visible{outline:none;box-shadow:0 0 0 3px var(--pt-notification-action-focus-shadow, rgba(37, 99, 235, .14))}.pt-notification-more-button:disabled{opacity:.5;cursor:not-allowed}.pt-notification-more-button i{font-size:.95rem;line-height:1}.pt-notification-action-menu{position:absolute;top:34px;right:0;width:200px;padding:5px;border:1px solid var(--pt-notification-action-menu-border, #e2e8f0);border-radius:10px;background:var(--pt-notification-action-menu-bg, #ffffff);box-shadow:var( --pt-notification-action-menu-shadow, 0 12px 30px rgba(15, 23, 42, .16) );box-sizing:border-box;z-index:10006}.pt-notification-action-menu-item{display:flex;align-items:center;gap:8px;width:100%;min-height:36px;padding:7px 9px;border:none;border-radius:7px;background:transparent;color:var(--pt-notification-action-text, #334155);box-sizing:border-box;text-align:left;cursor:pointer;font-size:.78rem;font-weight:600;transition:background-color .15s ease,color .15s ease}.pt-notification-action-menu-item:hover:not(:disabled){background:var(--pt-notification-action-hover-bg, #f1f5f9);color:var(--pt-notification-action-hover-text, #0f172a)}.pt-notification-action-menu-item:focus-visible{outline:none;box-shadow:0 0 0 2px var(--pt-notification-action-focus-shadow, rgba(37, 99, 235, .14))}.pt-notification-action-menu-item.danger{color:var(--pt-notification-action-danger-text, #dc2626)}.pt-notification-action-menu-item.danger:hover:not(:disabled){background:var(--pt-notification-action-danger-hover-bg, #fef2f2);color:var(--pt-notification-action-danger-hover-text, #b91c1c)}.pt-notification-action-menu-item.disabled,.pt-notification-action-menu-item:disabled{opacity:.5;cursor:not-allowed}.pt-notification-action-menu-item i{width:16px;flex:0 0 16px;font-size:.82rem;text-align:center}.pt-notification-action-menu-item span{min-width:0;flex:1 1 auto}.pt-notification-unread-indicator{position:absolute;top:15px;right:7px;width:6px;height:6px;border-radius:999px;background:var(--pt-notification-unread-indicator, #2563eb);pointer-events:none}.pt-notification-load-more{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;padding:10px 16px;color:var(--pt-notification-loading-text, #64748b);box-sizing:border-box;gap:8px;font-size:.78rem;font-weight:600}.pt-notification-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-height:160px;padding:25px;color:var(--pt-notification-empty-text, #94a3b8);box-sizing:border-box;gap:10px;text-align:center}.pt-notification-empty i{font-size:1.8rem}.pt-notification-empty span{font-size:.84rem;font-weight:600}.pt-notification-footer{display:flex;align-items:center;justify-content:center;width:100%;min-height:50px;padding:7px;border-top:1px solid var(--pt-notification-footer-border, #e2e8f0);background:var(--pt-notification-footer-bg, #ffffff);box-sizing:border-box}.pt-notification-view-all{display:flex;align-items:center;justify-content:center;width:100%;min-height:36px;padding:7px 12px;border:none;border-radius:8px;background:transparent;color:var(--pt-notification-view-all-text, #2563eb);box-sizing:border-box;gap:8px;cursor:pointer;font-size:.82rem;font-weight:700;transition:background-color .15s ease,color .15s ease}.pt-notification-view-all:hover{background:var(--pt-notification-view-all-hover-bg, #eff6ff);color:var(--pt-notification-view-all-hover-text, #1d4ed8)}.pt-notification-view-all i{font-size:.75rem}@media(max-width:520px){.pt-notification-panel{position:fixed;top:60px;right:8px;left:8px;width:auto!important;min-width:0;max-width:none}.pt-notification-item{grid-template-columns:36px minmax(0,1fr) 30px;gap:8px;padding:12px}.pt-notification-item-icon-wrapper{width:36px;min-width:36px}.pt-notification-item-icon{width:34px;height:34px;min-width:34px}.pt-notification-item-metadata{flex-direction:column;align-items:flex-start;gap:4px}.pt-notification-item-sender{max-width:100%}.pt-notification-action-menu{right:0;width:190px}}\n"] }]
|
|
6527
6525
|
}], propDecorators: { notifications: [{
|
|
6528
6526
|
type: Input
|
|
6529
6527
|
}], config: [{
|
|
@@ -6565,10 +6563,34 @@ class PTReleaseNotesComponent {
|
|
|
6565
6563
|
this.hasMore = false;
|
|
6566
6564
|
this.pageSize = 10;
|
|
6567
6565
|
this.releaseClick = new EventEmitter();
|
|
6566
|
+
this.action = new EventEmitter();
|
|
6567
|
+
this.globalAction = new EventEmitter();
|
|
6568
6568
|
this.viewAll = new EventEmitter();
|
|
6569
6569
|
this.loadMore = new EventEmitter();
|
|
6570
|
+
this.panelOpened = new EventEmitter();
|
|
6571
|
+
this.panelClosed = new EventEmitter();
|
|
6572
|
+
this.isOpen = false;
|
|
6573
|
+
this.openedActionMenuId = null;
|
|
6574
|
+
this.isGlobalActionMenuOpen = false;
|
|
6570
6575
|
this.currentPage = 0;
|
|
6571
6576
|
this.loadMoreRequested = false;
|
|
6577
|
+
this.defaultActions = [
|
|
6578
|
+
{
|
|
6579
|
+
id: 'MARK_AS_READ',
|
|
6580
|
+
label: 'Marquer comme lue',
|
|
6581
|
+
icon: 'pi pi-check',
|
|
6582
|
+
},
|
|
6583
|
+
];
|
|
6584
|
+
this.defaultGlobalActions = [
|
|
6585
|
+
{
|
|
6586
|
+
id: 'MARK_ALL_AS_READ',
|
|
6587
|
+
label: 'Tout marquer comme lu',
|
|
6588
|
+
icon: 'pi pi-check-circle',
|
|
6589
|
+
},
|
|
6590
|
+
];
|
|
6591
|
+
}
|
|
6592
|
+
onDocumentClick() {
|
|
6593
|
+
this.closePanel();
|
|
6572
6594
|
}
|
|
6573
6595
|
ngOnChanges(changes) {
|
|
6574
6596
|
if (changes['loading'] &&
|
|
@@ -6578,7 +6600,7 @@ class PTReleaseNotesComponent {
|
|
|
6578
6600
|
}
|
|
6579
6601
|
if (changes['releases'] &&
|
|
6580
6602
|
!changes['releases'].firstChange &&
|
|
6581
|
-
|
|
6603
|
+
this.getReleases().length === 0) {
|
|
6582
6604
|
this.currentPage = 0;
|
|
6583
6605
|
this.loadMoreRequested = false;
|
|
6584
6606
|
}
|
|
@@ -6591,19 +6613,19 @@ class PTReleaseNotesComponent {
|
|
|
6591
6613
|
return {
|
|
6592
6614
|
visible: this.config.visible ?? true,
|
|
6593
6615
|
language: this.language,
|
|
6594
|
-
title: this.config.title ?? (isFrench ? 'Nouveautés' :
|
|
6616
|
+
title: this.config.title ?? (isFrench ? 'Nouveautés' : 'Release notes'),
|
|
6595
6617
|
emptyText: this.config.emptyText ??
|
|
6596
6618
|
(isFrench
|
|
6597
6619
|
? 'Aucune nouveauté disponible'
|
|
6598
6620
|
: 'No release notes available'),
|
|
6599
6621
|
icon: this.config.icon ?? 'pi pi-sparkles',
|
|
6600
6622
|
badgeLimit: this.config.badgeLimit ?? 99,
|
|
6601
|
-
width: this.config.width ?? '
|
|
6602
|
-
maxHeight: this.config.maxHeight ?? '
|
|
6623
|
+
width: this.config.width ?? '450px',
|
|
6624
|
+
maxHeight: this.config.maxHeight ?? '420px',
|
|
6603
6625
|
showBadge: this.config.showBadge ?? true,
|
|
6604
6626
|
showHeaderCount: this.config.showHeaderCount ?? true,
|
|
6605
6627
|
closePanelOnReleaseClick: this.config.closePanelOnReleaseClick ?? false,
|
|
6606
|
-
showViewAll: this.config.showViewAll ??
|
|
6628
|
+
showViewAll: this.config.showViewAll ?? true,
|
|
6607
6629
|
viewAllText: this.config.viewAllText ??
|
|
6608
6630
|
(isFrench ? 'Voir toutes les versions' : 'View all releases'),
|
|
6609
6631
|
viewAllIcon: this.config.viewAllIcon ?? 'pi pi-arrow-right',
|
|
@@ -6613,46 +6635,126 @@ class PTReleaseNotesComponent {
|
|
|
6613
6635
|
improvementLabel: this.config.improvementLabel ??
|
|
6614
6636
|
(isFrench ? 'Améliorations' : 'Improvements'),
|
|
6615
6637
|
bugFixLabel: this.config.bugFixLabel ?? (isFrench ? 'Corrections' : 'Fixes'),
|
|
6616
|
-
infiniteScroll: this.config.infiniteScroll ??
|
|
6638
|
+
infiniteScroll: this.config.infiniteScroll ?? true,
|
|
6617
6639
|
infiniteScrollThreshold: this.config.infiniteScrollThreshold ?? 80,
|
|
6618
|
-
loadingText: this.config.loadingText ??
|
|
6640
|
+
loadingText: this.config.loadingText ??
|
|
6641
|
+
(isFrench
|
|
6642
|
+
? 'Chargement des nouveautés...'
|
|
6643
|
+
: 'Loading release notes...'),
|
|
6619
6644
|
showDetailsText: this.config.showDetailsText ??
|
|
6620
6645
|
(isFrench ? 'Afficher tous les détails' : 'Show all details'),
|
|
6621
6646
|
hideDetailsText: this.config.hideDetailsText ??
|
|
6622
6647
|
(isFrench ? 'Masquer les détails' : 'Hide details'),
|
|
6648
|
+
showActions: this.config.showActions ?? true,
|
|
6649
|
+
showGlobalActions: this.config.showGlobalActions ?? true,
|
|
6650
|
+
closeActionMenuOnAction: this.config.closeActionMenuOnAction ?? true,
|
|
6651
|
+
closeGlobalActionMenuOnAction: this.config.closeGlobalActionMenuOnAction ?? true,
|
|
6652
|
+
actions: this.config.actions ?? this.defaultActions,
|
|
6653
|
+
globalActions: this.config.globalActions ?? this.defaultGlobalActions,
|
|
6623
6654
|
};
|
|
6624
6655
|
}
|
|
6625
|
-
|
|
6656
|
+
isVisible() {
|
|
6657
|
+
return this.resolvedConfig.visible;
|
|
6658
|
+
}
|
|
6659
|
+
togglePanel(event) {
|
|
6660
|
+
event.stopPropagation();
|
|
6661
|
+
this.isOpen = !this.isOpen;
|
|
6662
|
+
this.closeMenus();
|
|
6663
|
+
if (this.isOpen) {
|
|
6664
|
+
this.loadMoreRequested = false;
|
|
6665
|
+
this.panelOpened.emit();
|
|
6666
|
+
return;
|
|
6667
|
+
}
|
|
6668
|
+
this.panelClosed.emit();
|
|
6669
|
+
}
|
|
6670
|
+
closePanel() {
|
|
6671
|
+
if (!this.isOpen) {
|
|
6672
|
+
return;
|
|
6673
|
+
}
|
|
6674
|
+
this.isOpen = false;
|
|
6675
|
+
this.closeMenus();
|
|
6676
|
+
this.loadMoreRequested = false;
|
|
6677
|
+
this.panelClosed.emit();
|
|
6678
|
+
}
|
|
6679
|
+
onPanelClick(event) {
|
|
6680
|
+
event.stopPropagation();
|
|
6681
|
+
this.closeMenus();
|
|
6682
|
+
}
|
|
6683
|
+
getReleases() {
|
|
6684
|
+
return this.releases ?? [];
|
|
6685
|
+
}
|
|
6686
|
+
hasReleases() {
|
|
6687
|
+
return this.getReleases().length > 0;
|
|
6688
|
+
}
|
|
6689
|
+
getUnreadCount() {
|
|
6626
6690
|
if (this.totalUnreadRecords !== undefined) {
|
|
6627
6691
|
return Math.max(0, this.totalUnreadRecords);
|
|
6628
6692
|
}
|
|
6629
|
-
return
|
|
6693
|
+
return this.getReleases().filter((release) => release.read !== true && release.disabled !== true).length;
|
|
6630
6694
|
}
|
|
6631
|
-
|
|
6632
|
-
|
|
6633
|
-
return this.unreadCount > limit ? `${limit}+` : `${this.unreadCount}`;
|
|
6695
|
+
hasUnreadReleases() {
|
|
6696
|
+
return this.getUnreadCount() > 0;
|
|
6634
6697
|
}
|
|
6635
|
-
|
|
6636
|
-
|
|
6637
|
-
|
|
6698
|
+
getBadgeText() {
|
|
6699
|
+
const count = this.getUnreadCount();
|
|
6700
|
+
const limit = this.resolvedConfig.badgeLimit;
|
|
6701
|
+
if (count > limit) {
|
|
6702
|
+
return `${limit}+`;
|
|
6638
6703
|
}
|
|
6639
|
-
|
|
6704
|
+
return `${count}`;
|
|
6705
|
+
}
|
|
6706
|
+
showBadge() {
|
|
6707
|
+
return this.resolvedConfig.showBadge && this.hasUnreadReleases();
|
|
6708
|
+
}
|
|
6709
|
+
showHeaderCount() {
|
|
6710
|
+
return this.resolvedConfig.showHeaderCount;
|
|
6711
|
+
}
|
|
6712
|
+
showViewAll() {
|
|
6713
|
+
return this.resolvedConfig.showViewAll;
|
|
6714
|
+
}
|
|
6715
|
+
showGlobalActions() {
|
|
6716
|
+
return (this.resolvedConfig.showGlobalActions &&
|
|
6717
|
+
this.getGlobalActions().length > 0);
|
|
6718
|
+
}
|
|
6719
|
+
getTitle() {
|
|
6720
|
+
return this.resolvedConfig.title;
|
|
6721
|
+
}
|
|
6722
|
+
getEmptyText() {
|
|
6723
|
+
return this.resolvedConfig.emptyText;
|
|
6724
|
+
}
|
|
6725
|
+
getLoadingText() {
|
|
6726
|
+
return this.resolvedConfig.loadingText;
|
|
6727
|
+
}
|
|
6728
|
+
getViewAllText() {
|
|
6729
|
+
return this.resolvedConfig.viewAllText;
|
|
6730
|
+
}
|
|
6731
|
+
getViewAllIcon() {
|
|
6732
|
+
return this.resolvedConfig.viewAllIcon;
|
|
6640
6733
|
}
|
|
6641
|
-
|
|
6642
|
-
|
|
6734
|
+
getPanelStyles() {
|
|
6735
|
+
return {
|
|
6736
|
+
width: this.resolvedConfig.width,
|
|
6737
|
+
};
|
|
6738
|
+
}
|
|
6739
|
+
getListStyles() {
|
|
6740
|
+
return {
|
|
6741
|
+
maxHeight: this.resolvedConfig.maxHeight,
|
|
6742
|
+
};
|
|
6643
6743
|
}
|
|
6644
|
-
|
|
6744
|
+
getReleaseClasses(release) {
|
|
6745
|
+
const classes = ['pt-release-notes-item'];
|
|
6746
|
+
if (release.read !== true) {
|
|
6747
|
+
classes.push('unread');
|
|
6748
|
+
}
|
|
6645
6749
|
if (release.disabled) {
|
|
6646
|
-
|
|
6750
|
+
classes.push('disabled');
|
|
6647
6751
|
}
|
|
6648
|
-
|
|
6649
|
-
release
|
|
6650
|
-
});
|
|
6651
|
-
if (this.resolvedConfig.closePanelOnReleaseClick) {
|
|
6652
|
-
this.hide();
|
|
6752
|
+
if (release.styleClass) {
|
|
6753
|
+
classes.push(release.styleClass);
|
|
6653
6754
|
}
|
|
6755
|
+
return classes.join(' ');
|
|
6654
6756
|
}
|
|
6655
|
-
|
|
6757
|
+
onReleaseClick(release, event) {
|
|
6656
6758
|
event.stopPropagation();
|
|
6657
6759
|
if (release.disabled) {
|
|
6658
6760
|
return;
|
|
@@ -6660,77 +6762,183 @@ class PTReleaseNotesComponent {
|
|
|
6660
6762
|
this.releaseClick.emit({
|
|
6661
6763
|
release,
|
|
6662
6764
|
});
|
|
6663
|
-
|
|
6664
|
-
|
|
6765
|
+
this.closePanel();
|
|
6766
|
+
}
|
|
6767
|
+
onReleaseKeyboardClick(release, event) {
|
|
6768
|
+
event.preventDefault();
|
|
6769
|
+
event.stopPropagation();
|
|
6770
|
+
this.onReleaseClick(release, event);
|
|
6771
|
+
}
|
|
6772
|
+
getActions(release) {
|
|
6773
|
+
const configuredActions = this.config.actions !== undefined
|
|
6774
|
+
? this.config.actions
|
|
6775
|
+
: this.defaultActions;
|
|
6776
|
+
return configuredActions.filter((menuAction) => {
|
|
6777
|
+
if (menuAction.visible === false) {
|
|
6778
|
+
return false;
|
|
6779
|
+
}
|
|
6780
|
+
if (menuAction.id === 'MARK_AS_READ' && release.read === true) {
|
|
6781
|
+
return false;
|
|
6782
|
+
}
|
|
6783
|
+
return true;
|
|
6784
|
+
});
|
|
6785
|
+
}
|
|
6786
|
+
hasActions(release) {
|
|
6787
|
+
return (this.resolvedConfig.showActions &&
|
|
6788
|
+
!release.disabled &&
|
|
6789
|
+
this.getActions(release).length > 0);
|
|
6790
|
+
}
|
|
6791
|
+
toggleActionMenu(release, event) {
|
|
6792
|
+
event.stopPropagation();
|
|
6793
|
+
if (!this.hasActions(release)) {
|
|
6665
6794
|
return;
|
|
6666
6795
|
}
|
|
6667
|
-
this.
|
|
6668
|
-
this.
|
|
6796
|
+
this.isGlobalActionMenuOpen = false;
|
|
6797
|
+
if (this.openedActionMenuId === release.id) {
|
|
6798
|
+
this.openedActionMenuId = null;
|
|
6799
|
+
return;
|
|
6800
|
+
}
|
|
6801
|
+
this.openedActionMenuId = release.id;
|
|
6669
6802
|
}
|
|
6670
|
-
|
|
6671
|
-
this.
|
|
6672
|
-
this.hide();
|
|
6803
|
+
isActionMenuOpen(release) {
|
|
6804
|
+
return this.openedActionMenuId === release.id;
|
|
6673
6805
|
}
|
|
6674
|
-
|
|
6675
|
-
|
|
6676
|
-
|
|
6677
|
-
|
|
6678
|
-
|
|
6806
|
+
onActionMenuClick(event) {
|
|
6807
|
+
event.stopPropagation();
|
|
6808
|
+
}
|
|
6809
|
+
onActionClick(release, menuAction, event) {
|
|
6810
|
+
event.stopPropagation();
|
|
6811
|
+
if (release.disabled || menuAction.disabled) {
|
|
6679
6812
|
return;
|
|
6680
6813
|
}
|
|
6681
|
-
|
|
6682
|
-
|
|
6683
|
-
|
|
6814
|
+
this.action.emit({
|
|
6815
|
+
release,
|
|
6816
|
+
action: menuAction,
|
|
6817
|
+
});
|
|
6818
|
+
if (this.resolvedConfig.closeActionMenuOnAction) {
|
|
6819
|
+
this.openedActionMenuId = null;
|
|
6820
|
+
}
|
|
6821
|
+
}
|
|
6822
|
+
getGlobalActions() {
|
|
6823
|
+
const configuredActions = this.config.globalActions !== undefined
|
|
6824
|
+
? this.config.globalActions
|
|
6825
|
+
: this.defaultGlobalActions;
|
|
6826
|
+
return configuredActions.filter((menuAction) => {
|
|
6827
|
+
if (menuAction.visible === false) {
|
|
6828
|
+
return false;
|
|
6829
|
+
}
|
|
6830
|
+
if (menuAction.id === 'MARK_ALL_AS_READ' && !this.hasUnreadReleases()) {
|
|
6831
|
+
return false;
|
|
6832
|
+
}
|
|
6833
|
+
return true;
|
|
6834
|
+
});
|
|
6835
|
+
}
|
|
6836
|
+
toggleGlobalActionMenu(event) {
|
|
6837
|
+
event.stopPropagation();
|
|
6838
|
+
this.openedActionMenuId = null;
|
|
6839
|
+
this.isGlobalActionMenuOpen = !this.isGlobalActionMenuOpen;
|
|
6840
|
+
}
|
|
6841
|
+
onGlobalActionMenuClick(event) {
|
|
6842
|
+
event.stopPropagation();
|
|
6843
|
+
}
|
|
6844
|
+
onGlobalActionClick(menuAction, event) {
|
|
6845
|
+
event.stopPropagation();
|
|
6846
|
+
if (menuAction.disabled) {
|
|
6684
6847
|
return;
|
|
6685
6848
|
}
|
|
6686
|
-
this.
|
|
6687
|
-
|
|
6688
|
-
|
|
6689
|
-
page: this.currentPage,
|
|
6690
|
-
size: this.pageSize,
|
|
6691
|
-
first: this.currentPage * this.pageSize,
|
|
6849
|
+
this.globalAction.emit({
|
|
6850
|
+
action: menuAction,
|
|
6851
|
+
releases: this.getReleases(),
|
|
6692
6852
|
});
|
|
6853
|
+
if (this.resolvedConfig.closeGlobalActionMenuOnAction) {
|
|
6854
|
+
this.isGlobalActionMenuOpen = false;
|
|
6855
|
+
}
|
|
6856
|
+
}
|
|
6857
|
+
getActionClasses(menuAction) {
|
|
6858
|
+
const classes = ['pt-release-notes-action-menu-item'];
|
|
6859
|
+
if (menuAction.danger) {
|
|
6860
|
+
classes.push('danger');
|
|
6861
|
+
}
|
|
6862
|
+
if (menuAction.disabled) {
|
|
6863
|
+
classes.push('disabled');
|
|
6864
|
+
}
|
|
6865
|
+
return classes.join(' ');
|
|
6693
6866
|
}
|
|
6694
6867
|
getNewCount(release) {
|
|
6695
|
-
return release.newCount ?? 0;
|
|
6868
|
+
return Math.max(0, release.newCount ?? 0);
|
|
6696
6869
|
}
|
|
6697
6870
|
getImprovementCount(release) {
|
|
6698
|
-
return release.improvementCount ?? 0;
|
|
6871
|
+
return Math.max(0, release.improvementCount ?? 0);
|
|
6699
6872
|
}
|
|
6700
6873
|
getBugFixCount(release) {
|
|
6701
|
-
return release.bugFixCount ?? 0;
|
|
6874
|
+
return Math.max(0, release.bugFixCount ?? 0);
|
|
6702
6875
|
}
|
|
6703
|
-
|
|
6704
|
-
return
|
|
6705
|
-
|
|
6706
|
-
|
|
6876
|
+
hasNewItems(release) {
|
|
6877
|
+
return this.getNewCount(release) > 0;
|
|
6878
|
+
}
|
|
6879
|
+
hasImprovements(release) {
|
|
6880
|
+
return this.getImprovementCount(release) > 0;
|
|
6881
|
+
}
|
|
6882
|
+
hasBugFixes(release) {
|
|
6883
|
+
return this.getBugFixCount(release) > 0;
|
|
6707
6884
|
}
|
|
6708
6885
|
hasCounters(release) {
|
|
6709
|
-
return this.
|
|
6886
|
+
return (this.hasNewItems(release) ||
|
|
6887
|
+
this.hasImprovements(release) ||
|
|
6888
|
+
this.hasBugFixes(release));
|
|
6710
6889
|
}
|
|
6711
|
-
|
|
6712
|
-
return
|
|
6890
|
+
isInfiniteScrollEnabled() {
|
|
6891
|
+
return this.resolvedConfig.infiniteScroll;
|
|
6713
6892
|
}
|
|
6714
|
-
|
|
6715
|
-
return
|
|
6893
|
+
showInfiniteScrollLoader() {
|
|
6894
|
+
return this.isInfiniteScrollEnabled() && this.loading && this.hasMore;
|
|
6716
6895
|
}
|
|
6717
|
-
|
|
6718
|
-
|
|
6719
|
-
|
|
6896
|
+
onListScroll(event) {
|
|
6897
|
+
if (!this.isInfiniteScrollEnabled()) {
|
|
6898
|
+
return;
|
|
6899
|
+
}
|
|
6900
|
+
if (this.loading) {
|
|
6901
|
+
return;
|
|
6902
|
+
}
|
|
6903
|
+
if (!this.hasMore) {
|
|
6904
|
+
return;
|
|
6905
|
+
}
|
|
6906
|
+
if (this.loadMoreRequested) {
|
|
6720
6907
|
return;
|
|
6721
6908
|
}
|
|
6722
|
-
|
|
6909
|
+
const element = event.target;
|
|
6910
|
+
if (!element) {
|
|
6911
|
+
return;
|
|
6912
|
+
}
|
|
6913
|
+
const distanceFromBottom = element.scrollHeight - element.scrollTop - element.clientHeight;
|
|
6914
|
+
if (distanceFromBottom > this.resolvedConfig.infiniteScrollThreshold) {
|
|
6915
|
+
return;
|
|
6916
|
+
}
|
|
6917
|
+
this.loadMoreRequested = true;
|
|
6918
|
+
this.currentPage++;
|
|
6919
|
+
const size = Math.max(1, this.pageSize);
|
|
6920
|
+
this.loadMore.emit({
|
|
6921
|
+
page: this.currentPage,
|
|
6922
|
+
size,
|
|
6923
|
+
first: this.currentPage * size,
|
|
6924
|
+
});
|
|
6925
|
+
}
|
|
6926
|
+
onViewAllClick(event) {
|
|
6927
|
+
event.stopPropagation();
|
|
6928
|
+
this.viewAll.emit();
|
|
6929
|
+
this.closePanel();
|
|
6930
|
+
}
|
|
6931
|
+
closeMenus() {
|
|
6932
|
+
this.openedActionMenuId = null;
|
|
6933
|
+
this.isGlobalActionMenuOpen = false;
|
|
6723
6934
|
}
|
|
6724
6935
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTReleaseNotesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6725
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: PTReleaseNotesComponent, isStandalone: false, selector: "pt-release-notes", inputs: { releases: "releases", config: "config", loading: "loading", hasMore: "hasMore", pageSize: "pageSize", totalUnreadRecords: "totalUnreadRecords" }, outputs: { releaseClick: "releaseClick", viewAll: "viewAll", loadMore: "loadMore" }, viewQueries: [{ propertyName: "releaseNotesPanel", first: true, predicate: ["releaseNotesPanel"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (resolvedConfig.visible) {\n <div class=\"pt-release-notes\">\n <button\n type=\"button\"\n class=\"pt-release-notes__trigger\"\n (click)=\"toggle($event)\"\n [attr.aria-label]=\"resolvedConfig.title\"\n >\n <i\n class=\"pt-release-notes__trigger-icon\"\n [ngClass]=\"resolvedConfig.icon\"\n ></i>\n\n @if (resolvedConfig.showBadge && unreadCount > 0) {\n <span class=\"pt-release-notes__badge\">\n {{ badgeValue }}\n </span>\n }\n </button>\n\n <p-popover\n #releaseNotesPanel\n styleClass=\"pt-release-notes-panel\"\n [style]=\"{\n width: resolvedConfig.width,\n }\"\n >\n <div class=\"pt-release-notes__panel\">\n <div class=\"pt-release-notes__header\">\n <div class=\"pt-release-notes__header-left\">\n <i [ngClass]=\"resolvedConfig.icon\"></i>\n\n <span class=\"pt-release-notes__title\">\n {{ resolvedConfig.title }}\n </span>\n </div>\n\n @if (resolvedConfig.showHeaderCount) {\n <span class=\"pt-release-notes__header-count\">\n {{ unreadCount }}\n </span>\n }\n </div>\n\n <div\n class=\"pt-release-notes__content\"\n [style.max-height]=\"resolvedConfig.maxHeight\"\n (scroll)=\"onScroll($event)\"\n >\n @if (releases.length === 0 && !loading) {\n <div class=\"pt-release-notes__empty\">\n <i [ngClass]=\"resolvedConfig.icon\"></i>\n\n <span>\n {{ resolvedConfig.emptyText }}\n </span>\n </div>\n }\n\n @for (release of releases; track release.id) {\n <article\n class=\"pt-release-notes__release\"\n [class.pt-release-notes__release--unread]=\"release.read !== true\"\n [class.pt-release-notes__release--disabled]=\"release.disabled\"\n [ngClass]=\"release.styleClass || ''\"\n (click)=\"onReleaseClick(release)\"\n >\n <div class=\"pt-release-notes__release-header\">\n <div class=\"pt-release-notes__version-container\">\n <span class=\"pt-release-notes__version\">\n v{{ release.version }}\n </span>\n\n @if (release.read !== true) {\n <span class=\"pt-release-notes__unread-dot\"></span>\n }\n </div>\n\n @if (release.date) {\n <span class=\"pt-release-notes__date\">\n {{ release.date | date: \"dd/MM/yyyy\" }}\n </span>\n }\n </div>\n\n <div class=\"pt-release-notes__release-title\">\n {{ release.title }}\n </div>\n\n @if (release.summary) {\n <div class=\"pt-release-notes__release-description\">\n {{ release.summary }}\n </div>\n }\n\n @if (hasCounters(release)) {\n <div class=\"pt-release-notes__stats\">\n @if (getNewCount(release) > 0) {\n <div\n class=\"pt-release-notes__stat pt-release-notes__stat--new\"\n >\n <div class=\"pt-release-notes__stat-icon\">\n <i class=\"pi pi-plus-circle\"></i>\n </div>\n\n <div class=\"pt-release-notes__stat-content\">\n <span class=\"pt-release-notes__stat-value\">\n {{ getNewCount(release) }}\n </span>\n\n <span class=\"pt-release-notes__stat-label\">\n {{ resolvedConfig.newLabel }}\n </span>\n </div>\n </div>\n }\n\n @if (getImprovementCount(release) > 0) {\n <div\n class=\"pt-release-notes__stat pt-release-notes__stat--improvement\"\n >\n <div class=\"pt-release-notes__stat-icon\">\n <i class=\"pi pi-arrow-up-right\"></i>\n </div>\n\n <div class=\"pt-release-notes__stat-content\">\n <span class=\"pt-release-notes__stat-value\">\n {{ getImprovementCount(release) }}\n </span>\n\n <span class=\"pt-release-notes__stat-label\">\n {{ resolvedConfig.improvementLabel }}\n </span>\n </div>\n </div>\n }\n\n @if (getBugFixCount(release) > 0) {\n <div\n class=\"pt-release-notes__stat pt-release-notes__stat--bug-fix\"\n >\n <div class=\"pt-release-notes__stat-icon\">\n <i class=\"pi pi-wrench\"></i>\n </div>\n\n <div class=\"pt-release-notes__stat-content\">\n <span class=\"pt-release-notes__stat-value\">\n {{ getBugFixCount(release) }}\n </span>\n\n <span class=\"pt-release-notes__stat-label\">\n {{ resolvedConfig.bugFixLabel }}\n </span>\n </div>\n </div>\n }\n </div>\n }\n\n @if (release.detailsUrl) {\n <div class=\"pt-release-notes__details-container\">\n <button\n type=\"button\"\n class=\"pt-release-notes__details\"\n [disabled]=\"release.disabled\"\n (click)=\"onDetailsClick($event, release)\"\n >\n <span>\n {{ resolvedConfig.detailsText }}\n </span>\n\n <i class=\"pi pi-arrow-right\"></i>\n </button>\n </div>\n }\n </article>\n }\n\n @if (loading) {\n <div class=\"pt-release-notes__loading\">\n <i class=\"pi pi-spin pi-spinner\"></i>\n\n <span>\n {{ resolvedConfig.loadingText }}\n </span>\n </div>\n }\n </div>\n\n @if (resolvedConfig.showViewAll && releases.length > 0) {\n <button\n type=\"button\"\n class=\"pt-release-notes__view-all\"\n (click)=\"onViewAll()\"\n >\n <span>\n {{ resolvedConfig.viewAllText }}\n </span>\n\n <i [ngClass]=\"resolvedConfig.viewAllIcon\"></i>\n </button>\n }\n </div>\n </p-popover>\n </div>\n}\n", styles: [":host{display:inline-flex;align-items:center}.pt-release-notes{position:relative;display:inline-flex;align-items:center}.pt-release-notes__trigger{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer;transition:background-color .2s ease,color .2s ease}.pt-release-notes__trigger:hover{background-color:#0000000f}.pt-release-notes__trigger:focus-visible{outline:2px solid var(--primary-color, #3b82f6);outline-offset:2px}.pt-release-notes__trigger-icon{font-size:1.15rem}.pt-release-notes__badge{position:absolute;top:-2px;right:-4px;min-width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;padding:0 4px;border:2px solid var(--surface-card, #ffffff);border-radius:999px;background-color:#ef4444;color:#fff;font-size:.65rem;font-weight:700;line-height:1}.pt-release-notes__panel{display:flex;flex-direction:column}.pt-release-notes__header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--surface-border, #e5e7eb)}.pt-release-notes__header-left{display:flex;align-items:center;gap:8px}.pt-release-notes__header-left>i{color:var(--primary-color, #3b82f6)}.pt-release-notes__title{color:var(--text-color, #1f2937);font-size:1rem;font-weight:700}.pt-release-notes__header-count{min-width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;padding:0 6px;border-radius:999px;background-color:var(--primary-color, #3b82f6);color:var(--primary-color-text, #ffffff);font-size:.75rem;font-weight:700}.pt-release-notes__content{overflow-x:hidden;overflow-y:auto}.pt-release-notes__release{position:relative;display:flex;flex-direction:column;padding:16px 18px;border-bottom:1px solid var(--surface-border, #e5e7eb);transition:background-color .15s ease}.pt-release-notes__release:last-child{border-bottom:0}.pt-release-notes__release:hover{background-color:var(--surface-hover, #f8fafc)}.pt-release-notes__release--unread{background-color:#3b82f60d}.pt-release-notes__release--disabled{opacity:.6;pointer-events:none}.pt-release-notes__release-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.pt-release-notes__version-container{display:flex;align-items:center;gap:7px}.pt-release-notes__version{color:var(--text-color, #1f2937);font-size:.95rem;font-weight:700}.pt-release-notes__unread-dot{width:7px;height:7px;border-radius:50%;background-color:var(--primary-color, #3b82f6)}.pt-release-notes__date{color:var(--text-color-secondary, #6b7280);font-size:.75rem}.pt-release-notes__release-title{margin-bottom:5px;color:var(--text-color, #1f2937);font-size:.92rem;font-weight:700}.pt-release-notes__release-description{margin-bottom:14px;color:var(--text-color-secondary, #6b7280);font-size:.8rem;line-height:1.5}.pt-release-notes__stats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.pt-release-notes__stat{display:inline-flex;align-items:center;gap:6px;min-width:0;padding:6px 9px;border-radius:8px}.pt-release-notes__stat-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.pt-release-notes__stat-icon i{font-size:.8rem}.pt-release-notes__stat-content{display:flex;align-items:center;gap:4px;min-width:0}.pt-release-notes__stat-value{font-size:.78rem;font-weight:800}.pt-release-notes__stat-label{font-size:.7rem;font-weight:600}.pt-release-notes__stat--new{background-color:#dcfce7;color:#15803d}.pt-release-notes__stat--improvement{background-color:#dbeafe;color:#1d4ed8}.pt-release-notes__stat--bug-fix{background-color:#fee2e2;color:#b91c1c}.pt-release-notes__details{display:inline-flex;align-items:center;justify-content:flex-end;align-self:flex-end;gap:7px;padding:6px 0;border:0;background:transparent;color:var(--primary-color, #3b82f6);font-size:.78rem;font-weight:700;cursor:pointer}.pt-release-notes__details:hover{text-decoration:underline}.pt-release-notes__details:focus-visible{outline:2px solid var(--primary-color, #3b82f6);outline-offset:3px}.pt-release-notes__details i{font-size:.7rem}.pt-release-notes__empty{min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:30px;color:var(--text-color-secondary, #6b7280);text-align:center}.pt-release-notes__empty>i{font-size:2rem;opacity:.6}.pt-release-notes__loading{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;color:var(--text-color-secondary, #6b7280);font-size:.8rem}.pt-release-notes__view-all{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;border:0;border-top:1px solid var(--surface-border, #e5e7eb);background:transparent;color:var(--primary-color, #3b82f6);font-size:.82rem;font-weight:600;cursor:pointer;transition:background-color .15s ease}.pt-release-notes__view-all:hover{background-color:var(--surface-hover, #f3f4f6)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2$1.Popover, selector: "p-popover", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions", "motionOptions"], outputs: ["onShow", "onHide"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6936
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: PTReleaseNotesComponent, isStandalone: false, selector: "pt-release-notes", inputs: { releases: "releases", config: "config", loading: "loading", hasMore: "hasMore", pageSize: "pageSize", totalUnreadRecords: "totalUnreadRecords" }, outputs: { releaseClick: "releaseClick", action: "action", globalAction: "globalAction", viewAll: "viewAll", loadMore: "loadMore", panelOpened: "panelOpened", panelClosed: "panelClosed" }, host: { listeners: { "document:click": "onDocumentClick()" } }, usesOnChanges: true, ngImport: i0, template: "@if (isVisible()) {\n <div class=\"pt-release-notes\">\n <button\n type=\"button\"\n class=\"pt-release-notes-trigger\"\n [attr.aria-expanded]=\"isOpen\"\n aria-label=\"Notes de version\"\n (click)=\"togglePanel($event)\"\n >\n <i [class]=\"resolvedConfig.icon\"></i>\n\n @if (showBadge()) {\n <span class=\"pt-release-notes-badge\">\n {{ getBadgeText() }}\n </span>\n }\n </button>\n\n @if (isOpen) {\n <div\n class=\"pt-release-notes-panel\"\n [ngStyle]=\"getPanelStyles()\"\n (click)=\"onPanelClick($event)\"\n >\n <div class=\"pt-release-notes-header\">\n <div class=\"pt-release-notes-header-left\">\n <div class=\"pt-release-notes-header-title\">\n {{ getTitle() }}\n </div>\n\n @if (showHeaderCount()) {\n <span class=\"pt-release-notes-header-count\">\n {{ getUnreadCount() }}\n </span>\n }\n </div>\n\n @if (showGlobalActions()) {\n <div\n class=\"pt-release-notes-global-actions\"\n (click)=\"$event.stopPropagation()\"\n >\n <button\n type=\"button\"\n class=\"pt-release-notes-global-more-button\"\n aria-label=\"Actions globales des notes de version\"\n (click)=\"toggleGlobalActionMenu($event)\"\n >\n <i class=\"pi pi-ellipsis-v\"></i>\n </button>\n\n @if (isGlobalActionMenuOpen) {\n <div\n class=\"pt-release-notes-global-action-menu\"\n (click)=\"onGlobalActionMenuClick($event)\"\n >\n @for (menuAction of getGlobalActions(); track menuAction.id) {\n <button\n type=\"button\"\n [class]=\"getActionClasses(menuAction)\"\n [disabled]=\"menuAction.disabled\"\n (click)=\"onGlobalActionClick(menuAction, $event)\"\n >\n @if (menuAction.icon) {\n <i [class]=\"menuAction.icon\"></i>\n }\n\n <span>\n {{ menuAction.label }}\n </span>\n </button>\n }\n </div>\n }\n </div>\n }\n </div>\n\n @if (hasReleases()) {\n <div\n class=\"pt-release-notes-list\"\n [ngStyle]=\"getListStyles()\"\n (scroll)=\"onListScroll($event)\"\n >\n @for (release of getReleases(); track release.id) {\n <div\n [class]=\"getReleaseClasses(release)\"\n role=\"button\"\n tabindex=\"0\"\n (click)=\"onReleaseClick(release, $event)\"\n (keydown.enter)=\"onReleaseKeyboardClick(release, $event)\"\n (keydown.space)=\"onReleaseKeyboardClick(release, $event)\"\n >\n <div class=\"pt-release-notes-item-icon-wrapper\">\n <div class=\"pt-release-notes-item-icon\">\n <i class=\"pi pi-sparkles\"></i>\n </div>\n </div>\n\n <div class=\"pt-release-notes-item-content\">\n <div class=\"pt-release-notes-version-row\">\n <span class=\"pt-release-notes-version\">\n v{{ release.version }}\n </span>\n\n <span class=\"pt-release-notes-item-title\">\n {{ release.title }}\n </span>\n </div>\n\n @if (release.summary) {\n <div class=\"pt-release-notes-summary\">\n {{ release.summary }}\n </div>\n }\n\n @if (release.date) {\n <div class=\"pt-release-notes-metadata\">\n <span>\n <i class=\"pi pi-calendar\"></i>\n\n {{ release.date | date: \"dd/MM/yyyy\" }}\n </span>\n </div>\n }\n\n @if (hasCounters(release)) {\n <div class=\"pt-release-notes-stats\">\n @if (hasNewItems(release)) {\n <span class=\"pt-release-notes-stat new\">\n <i class=\"pi pi-plus-circle\"></i>\n\n <strong>\n {{ getNewCount(release) }}\n </strong>\n\n {{ resolvedConfig.newLabel }}\n </span>\n }\n\n @if (hasImprovements(release)) {\n <span class=\"pt-release-notes-stat improvement\">\n <i class=\"pi pi-arrow-up-right\"></i>\n\n <strong>\n {{ getImprovementCount(release) }}\n </strong>\n\n {{ resolvedConfig.improvementLabel }}\n </span>\n }\n\n @if (hasBugFixes(release)) {\n <span class=\"pt-release-notes-stat bug-fix\">\n <i class=\"pi pi-wrench\"></i>\n\n <strong>\n {{ getBugFixCount(release) }}\n </strong>\n\n {{ resolvedConfig.bugFixLabel }}\n </span>\n }\n </div>\n }\n </div>\n\n @if (hasActions(release)) {\n <div\n class=\"pt-release-notes-item-actions\"\n (click)=\"$event.stopPropagation()\"\n >\n <button\n type=\"button\"\n class=\"pt-release-notes-more-button\"\n aria-label=\"Actions de la note de version\"\n [disabled]=\"release.disabled\"\n (click)=\"toggleActionMenu(release, $event)\"\n >\n <i class=\"pi pi-ellipsis-v\"></i>\n </button>\n\n @if (isActionMenuOpen(release)) {\n <div\n class=\"pt-release-notes-action-menu\"\n (click)=\"onActionMenuClick($event)\"\n >\n @for (\n menuAction of getActions(release);\n track menuAction.id\n ) {\n <button\n type=\"button\"\n [class]=\"getActionClasses(menuAction)\"\n [disabled]=\"menuAction.disabled\"\n (click)=\"onActionClick(release, menuAction, $event)\"\n >\n @if (menuAction.icon) {\n <i [class]=\"menuAction.icon\"></i>\n }\n\n <span>\n {{ menuAction.label }}\n </span>\n </button>\n }\n </div>\n }\n </div>\n }\n\n @if (release.read !== true) {\n <span class=\"pt-release-notes-unread-indicator\"></span>\n }\n </div>\n }\n\n @if (showInfiniteScrollLoader()) {\n <div class=\"pt-release-notes-load-more\">\n <i class=\"pi pi-spin pi-spinner\"></i>\n\n <span>\n {{ getLoadingText() }}\n </span>\n </div>\n }\n </div>\n } @else {\n <div class=\"pt-release-notes-empty\">\n @if (loading) {\n <i class=\"pi pi-spin pi-spinner\"></i>\n\n <span>\n {{ getLoadingText() }}\n </span>\n } @else {\n <i class=\"pi pi-sparkles\"></i>\n\n <span>\n {{ getEmptyText() }}\n </span>\n }\n </div>\n }\n\n @if (showViewAll()) {\n <div class=\"pt-release-notes-footer\">\n <button\n type=\"button\"\n class=\"pt-release-notes-view-all\"\n (click)=\"onViewAllClick($event)\"\n >\n <span>\n {{ getViewAllText() }}\n </span>\n\n <i [class]=\"getViewAllIcon()\"></i>\n </button>\n </div>\n }\n </div>\n }\n </div>\n}\n", styles: [":host{display:inline-flex;align-items:center;justify-content:center}.pt-release-notes{position:relative;display:inline-flex;align-items:center;justify-content:center}.pt-release-notes-trigger{position:relative;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;min-width:40px;padding:0;border:none;border-radius:999px;background:transparent;color:var(--pt-release-notes-icon-color, #475569);box-sizing:border-box;cursor:pointer;transition:background-color .2s ease,color .2s ease}.pt-release-notes-trigger:hover{background:var(--pt-release-notes-icon-hover-bg, #f1f5f9);color:var(--pt-release-notes-icon-hover-color, #0f172a)}.pt-release-notes-trigger:focus-visible{outline:none;box-shadow:0 0 0 3px var(--pt-release-notes-focus-shadow, rgba(63, 37, 100, .16))}.pt-release-notes-trigger>i{font-size:1.25rem;line-height:1}.pt-release-notes-badge{position:absolute;top:-2px;right:-4px;display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:19px;padding:0 4px;border:2px solid var(--pt-release-notes-badge-border, #ffffff);border-radius:999px;background:var(--pt-release-notes-badge-bg, #dc2626);color:var(--pt-release-notes-badge-text, #ffffff);box-sizing:border-box;font-size:.65rem;font-weight:800;line-height:1;pointer-events:none}.pt-release-notes-panel{position:absolute;top:calc(100% + 10px);right:0;display:flex;flex-direction:column;width:min(500px,calc(100vw - 24px));min-width:360px;max-width:calc(100vw - 24px);background:var(--pt-release-notes-panel-bg, #ffffff);color:var(--pt-release-notes-panel-text, #334155);border:1px solid var(--pt-release-notes-panel-border, #e2e8f0);border-radius:14px;box-shadow:var( --pt-release-notes-panel-shadow, 0 18px 45px rgba(15, 23, 42, .16) );box-sizing:border-box;overflow:hidden;z-index:10000}.pt-release-notes-header{position:relative;display:flex;align-items:center;justify-content:space-between;width:100%;min-height:54px;padding:0 16px;border-bottom:1px solid var(--pt-release-notes-header-border, #e2e8f0);box-sizing:border-box;gap:12px}.pt-release-notes-header-left{display:flex;align-items:center;min-width:0;gap:8px}.pt-release-notes-header-title{min-width:0;color:var(--pt-release-notes-header-title, #0f172a);font-size:.95rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pt-release-notes-header-count{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:26px;height:26px;padding:0 7px;border-radius:999px;background:var(--pt-release-notes-header-count-bg, #f3f0f8);color:var(--pt-release-notes-header-count-text, #3f2564);box-sizing:border-box;font-size:.75rem;font-weight:800;line-height:1}.pt-release-notes-global-actions{position:relative;display:flex;align-items:center;justify-content:center;flex:0 0 auto}.pt-release-notes-global-more-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:8px;background:transparent;color:var(--pt-release-notes-more-color, #64748b);box-sizing:border-box;cursor:pointer;transition:background-color .15s ease,color .15s ease}.pt-release-notes-global-more-button:hover{background:var(--pt-release-notes-more-hover-bg, #f1f5f9);color:var(--pt-release-notes-more-hover-color, #0f172a)}.pt-release-notes-global-more-button:focus-visible{outline:none;box-shadow:0 0 0 3px var(--pt-release-notes-focus-shadow, rgba(63, 37, 100, .14))}.pt-release-notes-global-more-button i{font-size:.95rem}.pt-release-notes-global-action-menu{position:absolute;top:36px;right:0;width:210px;padding:5px;border:1px solid var(--pt-release-notes-action-menu-border, #e2e8f0);border-radius:10px;background:var(--pt-release-notes-action-menu-bg, #ffffff);box-shadow:var( --pt-release-notes-action-menu-shadow, 0 12px 30px rgba(15, 23, 42, .16) );box-sizing:border-box;z-index:10005}.pt-release-notes-list{display:block;width:100%;min-width:0;box-sizing:border-box;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.pt-release-notes-item{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr) 32px;align-items:start;width:100%;min-width:0;gap:11px;padding:14px 16px;border-bottom:1px solid var(--pt-release-notes-item-border, #f1f5f9);background:var(--pt-release-notes-item-bg, #ffffff);box-sizing:border-box;cursor:pointer;overflow:hidden;transition:background-color .15s ease}.pt-release-notes-item:last-child{border-bottom:none}.pt-release-notes-item:hover{background:var(--pt-release-notes-item-hover-bg, #f8fafc)}.pt-release-notes-item.unread{background:var(--pt-release-notes-item-unread-bg, #faf8fd)}.pt-release-notes-item.unread:hover{background:var(--pt-release-notes-item-unread-hover-bg, #f6f2fa)}.pt-release-notes-item.disabled{opacity:.55;cursor:not-allowed}.pt-release-notes-item-icon-wrapper{display:flex;align-items:flex-start;justify-content:center;width:40px;min-width:40px}.pt-release-notes-item-icon{display:flex;align-items:center;justify-content:center;width:38px;height:38px;min-width:38px;border-radius:999px;background:var(--pt-release-notes-item-icon-bg, #f3f0f8);color:var(--pt-release-notes-item-icon-color, #3f2564);box-sizing:border-box}.pt-release-notes-item-icon i{font-size:1rem;line-height:1}.pt-release-notes-item-content{width:100%;min-width:0;max-width:100%;box-sizing:border-box;overflow:hidden}.pt-release-notes-version-row{display:flex;align-items:center;flex-wrap:wrap;width:100%;min-width:0;gap:7px}.pt-release-notes-version{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:24px;padding:3px 7px;border-radius:6px;background:var(--pt-release-notes-version-bg, #f3f0f8);color:var(--pt-release-notes-version-text, #3f2564);box-sizing:border-box;font-size:.72rem;font-weight:800;line-height:1}.pt-release-notes-item-title{flex:1 1 180px;min-width:0;max-width:100%;color:var(--pt-release-notes-item-title, #1e293b);font-size:.86rem;font-weight:700;line-height:1.35;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.pt-release-notes-item.unread .pt-release-notes-item-title{color:var(--pt-release-notes-item-unread-text, #0f172a);font-weight:800}.pt-release-notes-summary{display:block;width:100%;min-width:0;max-width:100%;margin-top:7px;color:var(--pt-release-notes-summary-text, #64748b);font-size:.78rem;line-height:1.5;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.pt-release-notes-metadata{display:flex;align-items:center;flex-wrap:wrap;width:100%;min-width:0;gap:5px 12px;margin-top:7px;color:var(--pt-release-notes-metadata-text, #94a3b8);font-size:.71rem;font-weight:500}.pt-release-notes-metadata span{display:inline-flex;align-items:center;gap:4px}.pt-release-notes-metadata i{font-size:.68rem}.pt-release-notes-stats{display:flex;align-items:center;flex-wrap:wrap;width:100%;min-width:0;gap:6px;margin-top:10px}.pt-release-notes-stat{display:inline-flex;align-items:center;gap:5px;max-width:100%;min-height:25px;padding:4px 8px;border-radius:999px;box-sizing:border-box;font-size:.68rem;font-weight:600;white-space:normal}.pt-release-notes-stat i{font-size:.7rem}.pt-release-notes-stat strong{font-weight:800}.pt-release-notes-stat.new{background:#dcfce7;color:#15803d}.pt-release-notes-stat.improvement{background:#dbeafe;color:#1d4ed8}.pt-release-notes-stat.bug-fix{background:#fee2e2;color:#b91c1c}.pt-release-notes-details-link{display:inline-flex;align-items:center;justify-content:flex-start;max-width:100%;gap:6px;margin-top:9px;padding:4px 0;border:none;background:transparent;color:var(--pt-release-notes-details-text, #3f2564);font-size:.75rem;font-weight:700;white-space:normal;cursor:pointer}.pt-release-notes-details-link:hover:not(:disabled){text-decoration:underline}.pt-release-notes-details-link:focus-visible{outline:none;text-decoration:underline}.pt-release-notes-details-link:disabled{opacity:.5;cursor:not-allowed}.pt-release-notes-details-link i{font-size:.68rem}.pt-release-notes-item-actions{position:relative;display:flex;align-items:flex-start;justify-content:center;width:32px;min-width:32px}.pt-release-notes-more-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:8px;background:transparent;color:var(--pt-release-notes-more-color, #64748b);box-sizing:border-box;cursor:pointer;transition:background-color .15s ease,color .15s ease}.pt-release-notes-more-button:hover:not(:disabled){background:var(--pt-release-notes-more-hover-bg, #e2e8f0);color:var(--pt-release-notes-more-hover-color, #0f172a)}.pt-release-notes-more-button:focus-visible{outline:none;box-shadow:0 0 0 3px var(--pt-release-notes-focus-shadow, rgba(63, 37, 100, .14))}.pt-release-notes-more-button:disabled{opacity:.5;cursor:not-allowed}.pt-release-notes-more-button i{font-size:.95rem;line-height:1}.pt-release-notes-action-menu{position:absolute;top:34px;right:0;width:200px;padding:5px;border:1px solid var(--pt-release-notes-action-menu-border, #e2e8f0);border-radius:10px;background:var(--pt-release-notes-action-menu-bg, #ffffff);box-shadow:var( --pt-release-notes-action-menu-shadow, 0 12px 30px rgba(15, 23, 42, .16) );box-sizing:border-box;z-index:10006}.pt-release-notes-action-menu-item{display:flex;align-items:center;gap:8px;width:100%;min-height:36px;padding:7px 9px;border:none;border-radius:7px;background:transparent;color:var(--pt-release-notes-action-text, #334155);box-sizing:border-box;text-align:left;cursor:pointer;font-size:.78rem;font-weight:600;transition:background-color .15s ease,color .15s ease}.pt-release-notes-action-menu-item:hover:not(:disabled){background:var(--pt-release-notes-action-hover-bg, #f1f5f9);color:var(--pt-release-notes-action-hover-text, #0f172a)}.pt-release-notes-action-menu-item:focus-visible{outline:none;box-shadow:0 0 0 2px var(--pt-release-notes-focus-shadow, rgba(63, 37, 100, .14))}.pt-release-notes-action-menu-item.danger{color:#dc2626}.pt-release-notes-action-menu-item.danger:hover:not(:disabled){background:#fef2f2;color:#b91c1c}.pt-release-notes-action-menu-item.disabled,.pt-release-notes-action-menu-item:disabled{opacity:.5;cursor:not-allowed}.pt-release-notes-action-menu-item i{width:16px;flex:0 0 16px;font-size:.82rem;text-align:center}.pt-release-notes-action-menu-item span{min-width:0;flex:1 1 auto}.pt-release-notes-unread-indicator{position:absolute;top:15px;right:7px;width:6px;height:6px;border-radius:999px;background:var(--pt-release-notes-unread-indicator, #3f2564);pointer-events:none}.pt-release-notes-load-more{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;padding:10px 16px;color:var(--pt-release-notes-loading-text, #64748b);box-sizing:border-box;gap:8px;font-size:.78rem;font-weight:600}.pt-release-notes-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-height:160px;padding:25px;color:var(--pt-release-notes-empty-text, #94a3b8);box-sizing:border-box;gap:10px;text-align:center}.pt-release-notes-empty i{font-size:1.8rem}.pt-release-notes-empty span{font-size:.84rem;font-weight:600}.pt-release-notes-footer{display:flex;align-items:center;justify-content:center;width:100%;min-height:50px;padding:7px;border-top:1px solid var(--pt-release-notes-footer-border, #e2e8f0);background:var(--pt-release-notes-footer-bg, #ffffff);box-sizing:border-box}.pt-release-notes-view-all{display:flex;align-items:center;justify-content:center;width:100%;min-height:36px;padding:7px 12px;border:none;border-radius:8px;background:transparent;color:var(--pt-release-notes-view-all-text, #3f2564);box-sizing:border-box;gap:8px;cursor:pointer;font-size:.82rem;font-weight:700;transition:background-color .15s ease,color .15s ease}.pt-release-notes-view-all:hover{background:var(--pt-release-notes-view-all-hover-bg, #f3f0f8);color:var(--pt-release-notes-view-all-hover-text, #3f2564)}.pt-release-notes-view-all i{font-size:.75rem}@media(max-width:520px){.pt-release-notes-panel{position:fixed;top:60px;right:8px;left:8px;width:auto!important;min-width:0;max-width:none}.pt-release-notes-item{grid-template-columns:36px minmax(0,1fr) 30px;gap:8px;padding:12px}.pt-release-notes-item-icon-wrapper{width:36px;min-width:36px}.pt-release-notes-item-icon{width:34px;height:34px;min-width:34px}.pt-release-notes-item-title{flex-basis:140px}.pt-release-notes-action-menu{right:0;width:190px}}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }] }); }
|
|
6726
6937
|
}
|
|
6727
6938
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTReleaseNotesComponent, decorators: [{
|
|
6728
6939
|
type: Component,
|
|
6729
|
-
args: [{ selector: 'pt-release-notes', standalone: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (resolvedConfig.visible) {\n <div class=\"pt-release-notes\">\n <button\n type=\"button\"\n class=\"pt-release-notes__trigger\"\n (click)=\"toggle($event)\"\n [attr.aria-label]=\"resolvedConfig.title\"\n >\n <i\n class=\"pt-release-notes__trigger-icon\"\n [ngClass]=\"resolvedConfig.icon\"\n ></i>\n\n @if (resolvedConfig.showBadge && unreadCount > 0) {\n <span class=\"pt-release-notes__badge\">\n {{ badgeValue }}\n </span>\n }\n </button>\n\n <p-popover\n #releaseNotesPanel\n styleClass=\"pt-release-notes-panel\"\n [style]=\"{\n width: resolvedConfig.width,\n }\"\n >\n <div class=\"pt-release-notes__panel\">\n <div class=\"pt-release-notes__header\">\n <div class=\"pt-release-notes__header-left\">\n <i [ngClass]=\"resolvedConfig.icon\"></i>\n\n <span class=\"pt-release-notes__title\">\n {{ resolvedConfig.title }}\n </span>\n </div>\n\n @if (resolvedConfig.showHeaderCount) {\n <span class=\"pt-release-notes__header-count\">\n {{ unreadCount }}\n </span>\n }\n </div>\n\n <div\n class=\"pt-release-notes__content\"\n [style.max-height]=\"resolvedConfig.maxHeight\"\n (scroll)=\"onScroll($event)\"\n >\n @if (releases.length === 0 && !loading) {\n <div class=\"pt-release-notes__empty\">\n <i [ngClass]=\"resolvedConfig.icon\"></i>\n\n <span>\n {{ resolvedConfig.emptyText }}\n </span>\n </div>\n }\n\n @for (release of releases; track release.id) {\n <article\n class=\"pt-release-notes__release\"\n [class.pt-release-notes__release--unread]=\"release.read !== true\"\n [class.pt-release-notes__release--disabled]=\"release.disabled\"\n [ngClass]=\"release.styleClass || ''\"\n (click)=\"onReleaseClick(release)\"\n >\n <div class=\"pt-release-notes__release-header\">\n <div class=\"pt-release-notes__version-container\">\n <span class=\"pt-release-notes__version\">\n v{{ release.version }}\n </span>\n\n @if (release.read !== true) {\n <span class=\"pt-release-notes__unread-dot\"></span>\n }\n </div>\n\n @if (release.date) {\n <span class=\"pt-release-notes__date\">\n {{ release.date | date: \"dd/MM/yyyy\" }}\n </span>\n }\n </div>\n\n <div class=\"pt-release-notes__release-title\">\n {{ release.title }}\n </div>\n\n @if (release.summary) {\n <div class=\"pt-release-notes__release-description\">\n {{ release.summary }}\n </div>\n }\n\n @if (hasCounters(release)) {\n <div class=\"pt-release-notes__stats\">\n @if (getNewCount(release) > 0) {\n <div\n class=\"pt-release-notes__stat pt-release-notes__stat--new\"\n >\n <div class=\"pt-release-notes__stat-icon\">\n <i class=\"pi pi-plus-circle\"></i>\n </div>\n\n <div class=\"pt-release-notes__stat-content\">\n <span class=\"pt-release-notes__stat-value\">\n {{ getNewCount(release) }}\n </span>\n\n <span class=\"pt-release-notes__stat-label\">\n {{ resolvedConfig.newLabel }}\n </span>\n </div>\n </div>\n }\n\n @if (getImprovementCount(release) > 0) {\n <div\n class=\"pt-release-notes__stat pt-release-notes__stat--improvement\"\n >\n <div class=\"pt-release-notes__stat-icon\">\n <i class=\"pi pi-arrow-up-right\"></i>\n </div>\n\n <div class=\"pt-release-notes__stat-content\">\n <span class=\"pt-release-notes__stat-value\">\n {{ getImprovementCount(release) }}\n </span>\n\n <span class=\"pt-release-notes__stat-label\">\n {{ resolvedConfig.improvementLabel }}\n </span>\n </div>\n </div>\n }\n\n @if (getBugFixCount(release) > 0) {\n <div\n class=\"pt-release-notes__stat pt-release-notes__stat--bug-fix\"\n >\n <div class=\"pt-release-notes__stat-icon\">\n <i class=\"pi pi-wrench\"></i>\n </div>\n\n <div class=\"pt-release-notes__stat-content\">\n <span class=\"pt-release-notes__stat-value\">\n {{ getBugFixCount(release) }}\n </span>\n\n <span class=\"pt-release-notes__stat-label\">\n {{ resolvedConfig.bugFixLabel }}\n </span>\n </div>\n </div>\n }\n </div>\n }\n\n @if (release.detailsUrl) {\n <div class=\"pt-release-notes__details-container\">\n <button\n type=\"button\"\n class=\"pt-release-notes__details\"\n [disabled]=\"release.disabled\"\n (click)=\"onDetailsClick($event, release)\"\n >\n <span>\n {{ resolvedConfig.detailsText }}\n </span>\n\n <i class=\"pi pi-arrow-right\"></i>\n </button>\n </div>\n }\n </article>\n }\n\n @if (loading) {\n <div class=\"pt-release-notes__loading\">\n <i class=\"pi pi-spin pi-spinner\"></i>\n\n <span>\n {{ resolvedConfig.loadingText }}\n </span>\n </div>\n }\n </div>\n\n @if (resolvedConfig.showViewAll && releases.length > 0) {\n <button\n type=\"button\"\n class=\"pt-release-notes__view-all\"\n (click)=\"onViewAll()\"\n >\n <span>\n {{ resolvedConfig.viewAllText }}\n </span>\n\n <i [ngClass]=\"resolvedConfig.viewAllIcon\"></i>\n </button>\n }\n </div>\n </p-popover>\n </div>\n}\n", styles: [":host{display:inline-flex;align-items:center}.pt-release-notes{position:relative;display:inline-flex;align-items:center}.pt-release-notes__trigger{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer;transition:background-color .2s ease,color .2s ease}.pt-release-notes__trigger:hover{background-color:#0000000f}.pt-release-notes__trigger:focus-visible{outline:2px solid var(--primary-color, #3b82f6);outline-offset:2px}.pt-release-notes__trigger-icon{font-size:1.15rem}.pt-release-notes__badge{position:absolute;top:-2px;right:-4px;min-width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;padding:0 4px;border:2px solid var(--surface-card, #ffffff);border-radius:999px;background-color:#ef4444;color:#fff;font-size:.65rem;font-weight:700;line-height:1}.pt-release-notes__panel{display:flex;flex-direction:column}.pt-release-notes__header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--surface-border, #e5e7eb)}.pt-release-notes__header-left{display:flex;align-items:center;gap:8px}.pt-release-notes__header-left>i{color:var(--primary-color, #3b82f6)}.pt-release-notes__title{color:var(--text-color, #1f2937);font-size:1rem;font-weight:700}.pt-release-notes__header-count{min-width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;padding:0 6px;border-radius:999px;background-color:var(--primary-color, #3b82f6);color:var(--primary-color-text, #ffffff);font-size:.75rem;font-weight:700}.pt-release-notes__content{overflow-x:hidden;overflow-y:auto}.pt-release-notes__release{position:relative;display:flex;flex-direction:column;padding:16px 18px;border-bottom:1px solid var(--surface-border, #e5e7eb);transition:background-color .15s ease}.pt-release-notes__release:last-child{border-bottom:0}.pt-release-notes__release:hover{background-color:var(--surface-hover, #f8fafc)}.pt-release-notes__release--unread{background-color:#3b82f60d}.pt-release-notes__release--disabled{opacity:.6;pointer-events:none}.pt-release-notes__release-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.pt-release-notes__version-container{display:flex;align-items:center;gap:7px}.pt-release-notes__version{color:var(--text-color, #1f2937);font-size:.95rem;font-weight:700}.pt-release-notes__unread-dot{width:7px;height:7px;border-radius:50%;background-color:var(--primary-color, #3b82f6)}.pt-release-notes__date{color:var(--text-color-secondary, #6b7280);font-size:.75rem}.pt-release-notes__release-title{margin-bottom:5px;color:var(--text-color, #1f2937);font-size:.92rem;font-weight:700}.pt-release-notes__release-description{margin-bottom:14px;color:var(--text-color-secondary, #6b7280);font-size:.8rem;line-height:1.5}.pt-release-notes__stats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.pt-release-notes__stat{display:inline-flex;align-items:center;gap:6px;min-width:0;padding:6px 9px;border-radius:8px}.pt-release-notes__stat-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.pt-release-notes__stat-icon i{font-size:.8rem}.pt-release-notes__stat-content{display:flex;align-items:center;gap:4px;min-width:0}.pt-release-notes__stat-value{font-size:.78rem;font-weight:800}.pt-release-notes__stat-label{font-size:.7rem;font-weight:600}.pt-release-notes__stat--new{background-color:#dcfce7;color:#15803d}.pt-release-notes__stat--improvement{background-color:#dbeafe;color:#1d4ed8}.pt-release-notes__stat--bug-fix{background-color:#fee2e2;color:#b91c1c}.pt-release-notes__details{display:inline-flex;align-items:center;justify-content:flex-end;align-self:flex-end;gap:7px;padding:6px 0;border:0;background:transparent;color:var(--primary-color, #3b82f6);font-size:.78rem;font-weight:700;cursor:pointer}.pt-release-notes__details:hover{text-decoration:underline}.pt-release-notes__details:focus-visible{outline:2px solid var(--primary-color, #3b82f6);outline-offset:3px}.pt-release-notes__details i{font-size:.7rem}.pt-release-notes__empty{min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:30px;color:var(--text-color-secondary, #6b7280);text-align:center}.pt-release-notes__empty>i{font-size:2rem;opacity:.6}.pt-release-notes__loading{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;color:var(--text-color-secondary, #6b7280);font-size:.8rem}.pt-release-notes__view-all{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;border:0;border-top:1px solid var(--surface-border, #e5e7eb);background:transparent;color:var(--primary-color, #3b82f6);font-size:.82rem;font-weight:600;cursor:pointer;transition:background-color .15s ease}.pt-release-notes__view-all:hover{background-color:var(--surface-hover, #f3f4f6)}\n"] }]
|
|
6730
|
-
}], propDecorators: {
|
|
6731
|
-
type: ViewChild,
|
|
6732
|
-
args: ['releaseNotesPanel']
|
|
6733
|
-
}], releases: [{
|
|
6940
|
+
args: [{ selector: 'pt-release-notes', standalone: false, template: "@if (isVisible()) {\n <div class=\"pt-release-notes\">\n <button\n type=\"button\"\n class=\"pt-release-notes-trigger\"\n [attr.aria-expanded]=\"isOpen\"\n aria-label=\"Notes de version\"\n (click)=\"togglePanel($event)\"\n >\n <i [class]=\"resolvedConfig.icon\"></i>\n\n @if (showBadge()) {\n <span class=\"pt-release-notes-badge\">\n {{ getBadgeText() }}\n </span>\n }\n </button>\n\n @if (isOpen) {\n <div\n class=\"pt-release-notes-panel\"\n [ngStyle]=\"getPanelStyles()\"\n (click)=\"onPanelClick($event)\"\n >\n <div class=\"pt-release-notes-header\">\n <div class=\"pt-release-notes-header-left\">\n <div class=\"pt-release-notes-header-title\">\n {{ getTitle() }}\n </div>\n\n @if (showHeaderCount()) {\n <span class=\"pt-release-notes-header-count\">\n {{ getUnreadCount() }}\n </span>\n }\n </div>\n\n @if (showGlobalActions()) {\n <div\n class=\"pt-release-notes-global-actions\"\n (click)=\"$event.stopPropagation()\"\n >\n <button\n type=\"button\"\n class=\"pt-release-notes-global-more-button\"\n aria-label=\"Actions globales des notes de version\"\n (click)=\"toggleGlobalActionMenu($event)\"\n >\n <i class=\"pi pi-ellipsis-v\"></i>\n </button>\n\n @if (isGlobalActionMenuOpen) {\n <div\n class=\"pt-release-notes-global-action-menu\"\n (click)=\"onGlobalActionMenuClick($event)\"\n >\n @for (menuAction of getGlobalActions(); track menuAction.id) {\n <button\n type=\"button\"\n [class]=\"getActionClasses(menuAction)\"\n [disabled]=\"menuAction.disabled\"\n (click)=\"onGlobalActionClick(menuAction, $event)\"\n >\n @if (menuAction.icon) {\n <i [class]=\"menuAction.icon\"></i>\n }\n\n <span>\n {{ menuAction.label }}\n </span>\n </button>\n }\n </div>\n }\n </div>\n }\n </div>\n\n @if (hasReleases()) {\n <div\n class=\"pt-release-notes-list\"\n [ngStyle]=\"getListStyles()\"\n (scroll)=\"onListScroll($event)\"\n >\n @for (release of getReleases(); track release.id) {\n <div\n [class]=\"getReleaseClasses(release)\"\n role=\"button\"\n tabindex=\"0\"\n (click)=\"onReleaseClick(release, $event)\"\n (keydown.enter)=\"onReleaseKeyboardClick(release, $event)\"\n (keydown.space)=\"onReleaseKeyboardClick(release, $event)\"\n >\n <div class=\"pt-release-notes-item-icon-wrapper\">\n <div class=\"pt-release-notes-item-icon\">\n <i class=\"pi pi-sparkles\"></i>\n </div>\n </div>\n\n <div class=\"pt-release-notes-item-content\">\n <div class=\"pt-release-notes-version-row\">\n <span class=\"pt-release-notes-version\">\n v{{ release.version }}\n </span>\n\n <span class=\"pt-release-notes-item-title\">\n {{ release.title }}\n </span>\n </div>\n\n @if (release.summary) {\n <div class=\"pt-release-notes-summary\">\n {{ release.summary }}\n </div>\n }\n\n @if (release.date) {\n <div class=\"pt-release-notes-metadata\">\n <span>\n <i class=\"pi pi-calendar\"></i>\n\n {{ release.date | date: \"dd/MM/yyyy\" }}\n </span>\n </div>\n }\n\n @if (hasCounters(release)) {\n <div class=\"pt-release-notes-stats\">\n @if (hasNewItems(release)) {\n <span class=\"pt-release-notes-stat new\">\n <i class=\"pi pi-plus-circle\"></i>\n\n <strong>\n {{ getNewCount(release) }}\n </strong>\n\n {{ resolvedConfig.newLabel }}\n </span>\n }\n\n @if (hasImprovements(release)) {\n <span class=\"pt-release-notes-stat improvement\">\n <i class=\"pi pi-arrow-up-right\"></i>\n\n <strong>\n {{ getImprovementCount(release) }}\n </strong>\n\n {{ resolvedConfig.improvementLabel }}\n </span>\n }\n\n @if (hasBugFixes(release)) {\n <span class=\"pt-release-notes-stat bug-fix\">\n <i class=\"pi pi-wrench\"></i>\n\n <strong>\n {{ getBugFixCount(release) }}\n </strong>\n\n {{ resolvedConfig.bugFixLabel }}\n </span>\n }\n </div>\n }\n </div>\n\n @if (hasActions(release)) {\n <div\n class=\"pt-release-notes-item-actions\"\n (click)=\"$event.stopPropagation()\"\n >\n <button\n type=\"button\"\n class=\"pt-release-notes-more-button\"\n aria-label=\"Actions de la note de version\"\n [disabled]=\"release.disabled\"\n (click)=\"toggleActionMenu(release, $event)\"\n >\n <i class=\"pi pi-ellipsis-v\"></i>\n </button>\n\n @if (isActionMenuOpen(release)) {\n <div\n class=\"pt-release-notes-action-menu\"\n (click)=\"onActionMenuClick($event)\"\n >\n @for (\n menuAction of getActions(release);\n track menuAction.id\n ) {\n <button\n type=\"button\"\n [class]=\"getActionClasses(menuAction)\"\n [disabled]=\"menuAction.disabled\"\n (click)=\"onActionClick(release, menuAction, $event)\"\n >\n @if (menuAction.icon) {\n <i [class]=\"menuAction.icon\"></i>\n }\n\n <span>\n {{ menuAction.label }}\n </span>\n </button>\n }\n </div>\n }\n </div>\n }\n\n @if (release.read !== true) {\n <span class=\"pt-release-notes-unread-indicator\"></span>\n }\n </div>\n }\n\n @if (showInfiniteScrollLoader()) {\n <div class=\"pt-release-notes-load-more\">\n <i class=\"pi pi-spin pi-spinner\"></i>\n\n <span>\n {{ getLoadingText() }}\n </span>\n </div>\n }\n </div>\n } @else {\n <div class=\"pt-release-notes-empty\">\n @if (loading) {\n <i class=\"pi pi-spin pi-spinner\"></i>\n\n <span>\n {{ getLoadingText() }}\n </span>\n } @else {\n <i class=\"pi pi-sparkles\"></i>\n\n <span>\n {{ getEmptyText() }}\n </span>\n }\n </div>\n }\n\n @if (showViewAll()) {\n <div class=\"pt-release-notes-footer\">\n <button\n type=\"button\"\n class=\"pt-release-notes-view-all\"\n (click)=\"onViewAllClick($event)\"\n >\n <span>\n {{ getViewAllText() }}\n </span>\n\n <i [class]=\"getViewAllIcon()\"></i>\n </button>\n </div>\n }\n </div>\n }\n </div>\n}\n", styles: [":host{display:inline-flex;align-items:center;justify-content:center}.pt-release-notes{position:relative;display:inline-flex;align-items:center;justify-content:center}.pt-release-notes-trigger{position:relative;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;min-width:40px;padding:0;border:none;border-radius:999px;background:transparent;color:var(--pt-release-notes-icon-color, #475569);box-sizing:border-box;cursor:pointer;transition:background-color .2s ease,color .2s ease}.pt-release-notes-trigger:hover{background:var(--pt-release-notes-icon-hover-bg, #f1f5f9);color:var(--pt-release-notes-icon-hover-color, #0f172a)}.pt-release-notes-trigger:focus-visible{outline:none;box-shadow:0 0 0 3px var(--pt-release-notes-focus-shadow, rgba(63, 37, 100, .16))}.pt-release-notes-trigger>i{font-size:1.25rem;line-height:1}.pt-release-notes-badge{position:absolute;top:-2px;right:-4px;display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:19px;padding:0 4px;border:2px solid var(--pt-release-notes-badge-border, #ffffff);border-radius:999px;background:var(--pt-release-notes-badge-bg, #dc2626);color:var(--pt-release-notes-badge-text, #ffffff);box-sizing:border-box;font-size:.65rem;font-weight:800;line-height:1;pointer-events:none}.pt-release-notes-panel{position:absolute;top:calc(100% + 10px);right:0;display:flex;flex-direction:column;width:min(500px,calc(100vw - 24px));min-width:360px;max-width:calc(100vw - 24px);background:var(--pt-release-notes-panel-bg, #ffffff);color:var(--pt-release-notes-panel-text, #334155);border:1px solid var(--pt-release-notes-panel-border, #e2e8f0);border-radius:14px;box-shadow:var( --pt-release-notes-panel-shadow, 0 18px 45px rgba(15, 23, 42, .16) );box-sizing:border-box;overflow:hidden;z-index:10000}.pt-release-notes-header{position:relative;display:flex;align-items:center;justify-content:space-between;width:100%;min-height:54px;padding:0 16px;border-bottom:1px solid var(--pt-release-notes-header-border, #e2e8f0);box-sizing:border-box;gap:12px}.pt-release-notes-header-left{display:flex;align-items:center;min-width:0;gap:8px}.pt-release-notes-header-title{min-width:0;color:var(--pt-release-notes-header-title, #0f172a);font-size:.95rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pt-release-notes-header-count{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:26px;height:26px;padding:0 7px;border-radius:999px;background:var(--pt-release-notes-header-count-bg, #f3f0f8);color:var(--pt-release-notes-header-count-text, #3f2564);box-sizing:border-box;font-size:.75rem;font-weight:800;line-height:1}.pt-release-notes-global-actions{position:relative;display:flex;align-items:center;justify-content:center;flex:0 0 auto}.pt-release-notes-global-more-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:8px;background:transparent;color:var(--pt-release-notes-more-color, #64748b);box-sizing:border-box;cursor:pointer;transition:background-color .15s ease,color .15s ease}.pt-release-notes-global-more-button:hover{background:var(--pt-release-notes-more-hover-bg, #f1f5f9);color:var(--pt-release-notes-more-hover-color, #0f172a)}.pt-release-notes-global-more-button:focus-visible{outline:none;box-shadow:0 0 0 3px var(--pt-release-notes-focus-shadow, rgba(63, 37, 100, .14))}.pt-release-notes-global-more-button i{font-size:.95rem}.pt-release-notes-global-action-menu{position:absolute;top:36px;right:0;width:210px;padding:5px;border:1px solid var(--pt-release-notes-action-menu-border, #e2e8f0);border-radius:10px;background:var(--pt-release-notes-action-menu-bg, #ffffff);box-shadow:var( --pt-release-notes-action-menu-shadow, 0 12px 30px rgba(15, 23, 42, .16) );box-sizing:border-box;z-index:10005}.pt-release-notes-list{display:block;width:100%;min-width:0;box-sizing:border-box;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.pt-release-notes-item{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr) 32px;align-items:start;width:100%;min-width:0;gap:11px;padding:14px 16px;border-bottom:1px solid var(--pt-release-notes-item-border, #f1f5f9);background:var(--pt-release-notes-item-bg, #ffffff);box-sizing:border-box;cursor:pointer;overflow:hidden;transition:background-color .15s ease}.pt-release-notes-item:last-child{border-bottom:none}.pt-release-notes-item:hover{background:var(--pt-release-notes-item-hover-bg, #f8fafc)}.pt-release-notes-item.unread{background:var(--pt-release-notes-item-unread-bg, #faf8fd)}.pt-release-notes-item.unread:hover{background:var(--pt-release-notes-item-unread-hover-bg, #f6f2fa)}.pt-release-notes-item.disabled{opacity:.55;cursor:not-allowed}.pt-release-notes-item-icon-wrapper{display:flex;align-items:flex-start;justify-content:center;width:40px;min-width:40px}.pt-release-notes-item-icon{display:flex;align-items:center;justify-content:center;width:38px;height:38px;min-width:38px;border-radius:999px;background:var(--pt-release-notes-item-icon-bg, #f3f0f8);color:var(--pt-release-notes-item-icon-color, #3f2564);box-sizing:border-box}.pt-release-notes-item-icon i{font-size:1rem;line-height:1}.pt-release-notes-item-content{width:100%;min-width:0;max-width:100%;box-sizing:border-box;overflow:hidden}.pt-release-notes-version-row{display:flex;align-items:center;flex-wrap:wrap;width:100%;min-width:0;gap:7px}.pt-release-notes-version{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:24px;padding:3px 7px;border-radius:6px;background:var(--pt-release-notes-version-bg, #f3f0f8);color:var(--pt-release-notes-version-text, #3f2564);box-sizing:border-box;font-size:.72rem;font-weight:800;line-height:1}.pt-release-notes-item-title{flex:1 1 180px;min-width:0;max-width:100%;color:var(--pt-release-notes-item-title, #1e293b);font-size:.86rem;font-weight:700;line-height:1.35;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.pt-release-notes-item.unread .pt-release-notes-item-title{color:var(--pt-release-notes-item-unread-text, #0f172a);font-weight:800}.pt-release-notes-summary{display:block;width:100%;min-width:0;max-width:100%;margin-top:7px;color:var(--pt-release-notes-summary-text, #64748b);font-size:.78rem;line-height:1.5;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.pt-release-notes-metadata{display:flex;align-items:center;flex-wrap:wrap;width:100%;min-width:0;gap:5px 12px;margin-top:7px;color:var(--pt-release-notes-metadata-text, #94a3b8);font-size:.71rem;font-weight:500}.pt-release-notes-metadata span{display:inline-flex;align-items:center;gap:4px}.pt-release-notes-metadata i{font-size:.68rem}.pt-release-notes-stats{display:flex;align-items:center;flex-wrap:wrap;width:100%;min-width:0;gap:6px;margin-top:10px}.pt-release-notes-stat{display:inline-flex;align-items:center;gap:5px;max-width:100%;min-height:25px;padding:4px 8px;border-radius:999px;box-sizing:border-box;font-size:.68rem;font-weight:600;white-space:normal}.pt-release-notes-stat i{font-size:.7rem}.pt-release-notes-stat strong{font-weight:800}.pt-release-notes-stat.new{background:#dcfce7;color:#15803d}.pt-release-notes-stat.improvement{background:#dbeafe;color:#1d4ed8}.pt-release-notes-stat.bug-fix{background:#fee2e2;color:#b91c1c}.pt-release-notes-details-link{display:inline-flex;align-items:center;justify-content:flex-start;max-width:100%;gap:6px;margin-top:9px;padding:4px 0;border:none;background:transparent;color:var(--pt-release-notes-details-text, #3f2564);font-size:.75rem;font-weight:700;white-space:normal;cursor:pointer}.pt-release-notes-details-link:hover:not(:disabled){text-decoration:underline}.pt-release-notes-details-link:focus-visible{outline:none;text-decoration:underline}.pt-release-notes-details-link:disabled{opacity:.5;cursor:not-allowed}.pt-release-notes-details-link i{font-size:.68rem}.pt-release-notes-item-actions{position:relative;display:flex;align-items:flex-start;justify-content:center;width:32px;min-width:32px}.pt-release-notes-more-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:8px;background:transparent;color:var(--pt-release-notes-more-color, #64748b);box-sizing:border-box;cursor:pointer;transition:background-color .15s ease,color .15s ease}.pt-release-notes-more-button:hover:not(:disabled){background:var(--pt-release-notes-more-hover-bg, #e2e8f0);color:var(--pt-release-notes-more-hover-color, #0f172a)}.pt-release-notes-more-button:focus-visible{outline:none;box-shadow:0 0 0 3px var(--pt-release-notes-focus-shadow, rgba(63, 37, 100, .14))}.pt-release-notes-more-button:disabled{opacity:.5;cursor:not-allowed}.pt-release-notes-more-button i{font-size:.95rem;line-height:1}.pt-release-notes-action-menu{position:absolute;top:34px;right:0;width:200px;padding:5px;border:1px solid var(--pt-release-notes-action-menu-border, #e2e8f0);border-radius:10px;background:var(--pt-release-notes-action-menu-bg, #ffffff);box-shadow:var( --pt-release-notes-action-menu-shadow, 0 12px 30px rgba(15, 23, 42, .16) );box-sizing:border-box;z-index:10006}.pt-release-notes-action-menu-item{display:flex;align-items:center;gap:8px;width:100%;min-height:36px;padding:7px 9px;border:none;border-radius:7px;background:transparent;color:var(--pt-release-notes-action-text, #334155);box-sizing:border-box;text-align:left;cursor:pointer;font-size:.78rem;font-weight:600;transition:background-color .15s ease,color .15s ease}.pt-release-notes-action-menu-item:hover:not(:disabled){background:var(--pt-release-notes-action-hover-bg, #f1f5f9);color:var(--pt-release-notes-action-hover-text, #0f172a)}.pt-release-notes-action-menu-item:focus-visible{outline:none;box-shadow:0 0 0 2px var(--pt-release-notes-focus-shadow, rgba(63, 37, 100, .14))}.pt-release-notes-action-menu-item.danger{color:#dc2626}.pt-release-notes-action-menu-item.danger:hover:not(:disabled){background:#fef2f2;color:#b91c1c}.pt-release-notes-action-menu-item.disabled,.pt-release-notes-action-menu-item:disabled{opacity:.5;cursor:not-allowed}.pt-release-notes-action-menu-item i{width:16px;flex:0 0 16px;font-size:.82rem;text-align:center}.pt-release-notes-action-menu-item span{min-width:0;flex:1 1 auto}.pt-release-notes-unread-indicator{position:absolute;top:15px;right:7px;width:6px;height:6px;border-radius:999px;background:var(--pt-release-notes-unread-indicator, #3f2564);pointer-events:none}.pt-release-notes-load-more{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;padding:10px 16px;color:var(--pt-release-notes-loading-text, #64748b);box-sizing:border-box;gap:8px;font-size:.78rem;font-weight:600}.pt-release-notes-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-height:160px;padding:25px;color:var(--pt-release-notes-empty-text, #94a3b8);box-sizing:border-box;gap:10px;text-align:center}.pt-release-notes-empty i{font-size:1.8rem}.pt-release-notes-empty span{font-size:.84rem;font-weight:600}.pt-release-notes-footer{display:flex;align-items:center;justify-content:center;width:100%;min-height:50px;padding:7px;border-top:1px solid var(--pt-release-notes-footer-border, #e2e8f0);background:var(--pt-release-notes-footer-bg, #ffffff);box-sizing:border-box}.pt-release-notes-view-all{display:flex;align-items:center;justify-content:center;width:100%;min-height:36px;padding:7px 12px;border:none;border-radius:8px;background:transparent;color:var(--pt-release-notes-view-all-text, #3f2564);box-sizing:border-box;gap:8px;cursor:pointer;font-size:.82rem;font-weight:700;transition:background-color .15s ease,color .15s ease}.pt-release-notes-view-all:hover{background:var(--pt-release-notes-view-all-hover-bg, #f3f0f8);color:var(--pt-release-notes-view-all-hover-text, #3f2564)}.pt-release-notes-view-all i{font-size:.75rem}@media(max-width:520px){.pt-release-notes-panel{position:fixed;top:60px;right:8px;left:8px;width:auto!important;min-width:0;max-width:none}.pt-release-notes-item{grid-template-columns:36px minmax(0,1fr) 30px;gap:8px;padding:12px}.pt-release-notes-item-icon-wrapper{width:36px;min-width:36px}.pt-release-notes-item-icon{width:34px;height:34px;min-width:34px}.pt-release-notes-item-title{flex-basis:140px}.pt-release-notes-action-menu{right:0;width:190px}}\n"] }]
|
|
6941
|
+
}], propDecorators: { releases: [{
|
|
6734
6942
|
type: Input
|
|
6735
6943
|
}], config: [{
|
|
6736
6944
|
type: Input
|
|
@@ -6744,10 +6952,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
6744
6952
|
type: Input
|
|
6745
6953
|
}], releaseClick: [{
|
|
6746
6954
|
type: Output
|
|
6955
|
+
}], action: [{
|
|
6956
|
+
type: Output
|
|
6957
|
+
}], globalAction: [{
|
|
6958
|
+
type: Output
|
|
6747
6959
|
}], viewAll: [{
|
|
6748
6960
|
type: Output
|
|
6749
6961
|
}], loadMore: [{
|
|
6750
6962
|
type: Output
|
|
6963
|
+
}], panelOpened: [{
|
|
6964
|
+
type: Output
|
|
6965
|
+
}], panelClosed: [{
|
|
6966
|
+
type: Output
|
|
6967
|
+
}], onDocumentClick: [{
|
|
6968
|
+
type: HostListener,
|
|
6969
|
+
args: ['document:click']
|
|
6751
6970
|
}] } });
|
|
6752
6971
|
|
|
6753
6972
|
class PTNavbarMenuComponent {
|
|
@@ -6773,6 +6992,8 @@ class PTNavbarMenuComponent {
|
|
|
6773
6992
|
this.notificationViewAll = new EventEmitter();
|
|
6774
6993
|
this.notificationLoadMore = new EventEmitter();
|
|
6775
6994
|
this.releaseNoteClick = new EventEmitter();
|
|
6995
|
+
this.releaseNoteAction = new EventEmitter();
|
|
6996
|
+
this.releaseNoteGlobalAction = new EventEmitter();
|
|
6776
6997
|
this.releaseNotesViewAll = new EventEmitter();
|
|
6777
6998
|
this.releaseNotesLoadMore = new EventEmitter();
|
|
6778
6999
|
this.destroy$ = new Subject();
|
|
@@ -6865,6 +7086,14 @@ class PTNavbarMenuComponent {
|
|
|
6865
7086
|
this.isUserMenuOpen = false;
|
|
6866
7087
|
this.releaseNoteClick.emit(event);
|
|
6867
7088
|
}
|
|
7089
|
+
onReleaseNoteAction(event) {
|
|
7090
|
+
this.isUserMenuOpen = false;
|
|
7091
|
+
this.releaseNoteAction.emit(event);
|
|
7092
|
+
}
|
|
7093
|
+
onReleaseNoteGlobalAction(event) {
|
|
7094
|
+
this.isUserMenuOpen = false;
|
|
7095
|
+
this.releaseNoteGlobalAction.emit(event);
|
|
7096
|
+
}
|
|
6868
7097
|
onReleaseNotesViewAll() {
|
|
6869
7098
|
this.isUserMenuOpen = false;
|
|
6870
7099
|
this.releaseNotesViewAll.emit();
|
|
@@ -7211,11 +7440,11 @@ class PTNavbarMenuComponent {
|
|
|
7211
7440
|
};
|
|
7212
7441
|
}
|
|
7213
7442
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTNavbarMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7214
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: PTNavbarMenuComponent, isStandalone: false, selector: "pt-nav-bar-menu", inputs: { navBarMenuConfig: "navBarMenuConfig", serverDateTime: "serverDateTime", notifications: "notifications", notificationConfig: "notificationConfig", notificationTotalRecords: "notificationTotalRecords", notificationTotalUnreadRecords: "notificationTotalUnreadRecords", notificationPage: "notificationPage", notificationRows: "notificationRows", notificationLoading: "notificationLoading", releaseNotes: "releaseNotes", releaseNotesConfig: "releaseNotesConfig", releaseNotesLoading: "releaseNotesLoading", releaseNotesHasMore: "releaseNotesHasMore", releaseNotesPageSize: "releaseNotesPageSize", releaseNotesTotalUnreadRecords: "releaseNotesTotalUnreadRecords" }, outputs: { toggleSidebar: "toggleSidebar", notificationAction: "notificationAction", notificationClick: "notificationClick", notificationPanelOpened: "notificationPanelOpened", notificationPanelClosed: "notificationPanelClosed", notificationGlobalAction: "notificationGlobalAction", notificationViewAll: "notificationViewAll", notificationLoadMore: "notificationLoadMore", releaseNoteClick: "releaseNoteClick", releaseNotesViewAll: "releaseNotesViewAll", releaseNotesLoadMore: "releaseNotesLoadMore" }, host: { listeners: { "document:click": "closeUserMenu()" } }, usesOnChanges: true, ngImport: i0, template: "<div class=\"pt-nav-bar-menu\" [ngStyle]=\"getNavbarStyles()\">\n <div class=\"navbar-left\">\n <a class=\"logo-link\" routerLink=\"/\">\n @if (getLogoUrl()) {\n <img\n class=\"navbar-logo\"\n [src]=\"getLogoUrl()\"\n [alt]=\"getLogoAltText()\"\n [ngStyle]=\"getLogoStyles()\"\n />\n }\n\n <span class=\"navbar-title\" [ngStyle]=\"getAppNameStyles()\">\n {{ getAppName() }}\n </span>\n </a>\n\n <a class=\"toggle-btn\" (click)=\"toggleMenu()\">\n <i\n [class]=\"getToggleButtonIcon()\"\n [ngStyle]=\"getToggleButtonStyles()\"\n ></i>\n </a>\n </div>\n\n @if (hasDateTime()) {\n <div class=\"navbar-middle\" [ngClass]=\"getDateTimePositionClass()\">\n <div class=\"navbar-datetime\">\n <span class=\"dt-value\" [ngStyle]=\"getDateTimeTextStyles()\">\n {{ dateTimeText }}\n </span>\n\n @if (isFixedMode()) {\n <input\n class=\"dt-input\"\n type=\"datetime-local\"\n step=\"1\"\n [value]=\"manualDateTimeLocal\"\n (input)=\"onManualDateTimeChange($any($event.target).value)\"\n />\n }\n </div>\n </div>\n }\n\n <div class=\"pt-navbar-actions\">\n <pt-release-notes\n [releases]=\"releaseNotes\"\n [config]=\"releaseNotesConfig\"\n [loading]=\"releaseNotesLoading\"\n [hasMore]=\"releaseNotesHasMore\"\n [pageSize]=\"releaseNotesPageSize\"\n [totalUnreadRecords]=\"releaseNotesTotalUnreadRecords\"\n (releaseClick)=\"onReleaseNoteClick($event)\"\n (viewAll)=\"onReleaseNotesViewAll()\"\n (loadMore)=\"onReleaseNotesLoadMore($event)\"\n ></pt-release-notes>\n\n <pt-notification\n [notifications]=\"notifications\"\n [config]=\"notificationConfig\"\n [totalRecords]=\"notificationTotalRecords\"\n [totalUnreadRecords]=\"notificationTotalUnreadRecords\"\n [page]=\"notificationPage\"\n [rows]=\"notificationRows\"\n [loading]=\"notificationLoading\"\n (notificationClick)=\"onNotificationClick($event)\"\n (action)=\"onNotificationAction($event)\"\n (globalAction)=\"onNotificationGlobalAction($event)\"\n (viewAll)=\"onNotificationViewAll()\"\n (panelOpened)=\"onNotificationPanelOpened()\"\n (panelClosed)=\"onNotificationPanelClosed()\"\n (loadMore)=\"onNotificationLoadMore($event)\"\n ></pt-notification>\n </div>\n</div>\n", styles: [".pt-nav-bar-menu{display:flex;align-items:center;justify-content:space-between;padding-right:10px;padding-left:10px;border-bottom:1px solid var(--pt-navbar-border, #ddd);background-color:var(--pt-navbar-bg, #fff);color:var(--pt-navbar-text, #1f2937);background-size:cover;background-position:center;gap:12px;min-width:0;width:100%;box-sizing:border-box}.pt-nav-bar-menu .navbar-left{display:flex;align-items:center;gap:12px;min-width:0;flex:0 0 auto}.pt-nav-bar-menu .logo-link{display:flex;align-items:center;text-decoration:none;color:inherit;min-width:0}.pt-nav-bar-menu .navbar-logo{margin-left:10px;margin-right:20px}.pt-nav-bar-menu .navbar-title{color:var(--pt-navbar-title, inherit);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pt-nav-bar-menu .navbar-middle{flex:1 1 auto;display:flex;align-items:center;min-width:0;padding:0 12px}.pt-nav-bar-menu .navbar-middle.dt-pos-left{justify-content:flex-start}.pt-nav-bar-menu .navbar-middle.dt-pos-center{justify-content:center}.pt-nav-bar-menu .navbar-middle.dt-pos-right{justify-content:flex-end}.pt-nav-bar-menu .navbar-datetime{display:inline-flex;align-items:center;gap:10px;flex:0 0 auto;white-space:nowrap;max-width:100%}.pt-nav-bar-menu .navbar-datetime .dt-value{color:var(--pt-navbar-datetime-text, inherit);white-space:nowrap}.pt-nav-bar-menu .navbar-datetime .dt-input{height:32px;padding:0 8px;border:1px solid var(--pt-navbar-input-border, rgba(0, 0, 0, .18));border-radius:6px;background:var(--pt-navbar-input-bg, #fff);font-size:12px;color:var(--pt-navbar-input-text, #333);outline:none}.pt-nav-bar-menu .navbar-datetime .dt-input:focus{border-color:var(--pt-navbar-input-focus-border, rgba(3, 76, 131, .7));box-shadow:0 0 0 3px var(--pt-navbar-input-focus-shadow, rgba(3, 76, 131, .12))}.pt-nav-bar-menu .navbar-actions{display:flex;align-items:center;gap:12px;flex:0 0 auto;min-width:0}.pt-nav-bar-menu .navbar-right{display:flex;align-items:center;gap:10px;flex:0 0 auto}.pt-nav-bar-menu .navbar-right a{margin-left:20px;color:var(--pt-navbar-link, #333);text-decoration:none;font-size:20px;cursor:pointer}.pt-nav-bar-menu .navbar-right a:hover{color:var(--pt-navbar-link-hover, #000)}.pt-nav-bar-menu pt-notification{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.pt-nav-bar-menu .toggle-btn{margin-left:2rem;cursor:pointer;padding:7px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center}.pt-nav-bar-menu .toggle-btn>.pi.pi-bars{font-size:1.5rem;color:var(--pt-navbar-toggle-color, #333)}.pt-nav-bar-menu .toggle-btn:hover{background-color:var(--pt-navbar-toggle-hover-bg, #f1f1f1)}.pt-nav-bar-menu .navbar-user{position:relative;display:flex;align-items:center;gap:.65rem;flex:0 0 auto}.pt-nav-bar-menu .navbar-user-profile-left{max-width:170px;color:var(--pt-navbar-user-profile-text, #334155);font-size:.82rem;font-weight:700;background:var(--pt-navbar-user-profile-bg, #eff6ff);border:1px solid var(--pt-navbar-user-profile-border, #bfdbfe);border-radius:999px;padding:.28rem .65rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pt-nav-bar-menu .navbar-user-trigger{border:none;background:transparent;padding:0;cursor:pointer;display:flex;align-items:center}.pt-nav-bar-menu .navbar-user-avatar,.pt-nav-bar-menu .navbar-user-menu-avatar{width:38px;height:38px;min-width:38px;border-radius:999px;background:var(--pt-navbar-user-avatar-bg, #eff6ff);color:var(--pt-navbar-user-avatar-text, #2563eb);border:1px solid var(--pt-navbar-user-avatar-border, #bfdbfe);display:flex;align-items:center;justify-content:center;font-size:.92rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;line-height:1;box-sizing:border-box}.pt-nav-bar-menu .navbar-user-avatar i,.pt-nav-bar-menu .navbar-user-menu-avatar i{font-size:1rem}.pt-nav-bar-menu .navbar-user-menu{position:absolute;top:calc(100% + 10px);right:0;width:260px;background:var(--pt-navbar-user-menu-bg, #ffffff);color:var(--pt-navbar-user-menu-text, #334155);border:1px solid var(--pt-navbar-user-menu-border, #e5e7eb);border-radius:14px;box-shadow:var( --pt-navbar-user-menu-shadow, 0 18px 45px rgba(15, 23, 42, .16) );z-index:9999;padding:.75rem;box-sizing:border-box}.pt-nav-bar-menu .navbar-user-menu-header{display:flex;align-items:center;gap:.75rem;padding:.35rem .25rem .65rem}.pt-nav-bar-menu .navbar-user-menu-avatar{width:46px;height:46px;min-width:46px;font-size:1.05rem}.pt-nav-bar-menu .navbar-user-menu-identity{min-width:0}.pt-nav-bar-menu .navbar-user-menu-name{color:var(--pt-navbar-user-menu-name, #0f172a);font-size:.95rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pt-nav-bar-menu .navbar-user-menu-profile{margin-top:.15rem;color:var(--pt-navbar-user-menu-profile, #2563eb);font-size:.8rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pt-nav-bar-menu .navbar-user-menu-username{margin-top:.15rem;color:var(--pt-navbar-user-menu-username, #64748b);font-size:.78rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pt-nav-bar-menu .navbar-user-menu-separator{height:1px;background:var(--pt-navbar-user-menu-separator, #e5e7eb);margin:.4rem 0}.pt-nav-bar-menu .navbar-user-menu-item{width:100%;min-height:36px;border:none;background:transparent;border-radius:9px;color:var(--pt-navbar-user-menu-item-text, #334155);display:flex;align-items:center;gap:.55rem;padding:.5rem .55rem;font-size:.86rem;font-weight:600;cursor:pointer;text-align:left;box-sizing:border-box}.pt-nav-bar-menu .navbar-user-menu-item:hover{background:var(--pt-navbar-user-menu-item-hover-bg, #f1f5f9);color:var(--pt-navbar-user-menu-item-hover-text, #0f172a)}.pt-nav-bar-menu .navbar-user-menu-item.danger{color:var(--pt-navbar-user-menu-item-danger-text, #dc2626)}.pt-nav-bar-menu .navbar-user-menu-item.danger:hover{background:var(--pt-navbar-user-menu-item-danger-hover-bg, #fef2f2);color:var(--pt-navbar-user-menu-item-danger-hover-text, #b91c1c)}.pt-nav-bar-menu .navbar-user-menu-item.disabled,.pt-nav-bar-menu .navbar-user-menu-item:disabled{opacity:.55;cursor:not-allowed}@media(max-width:900px){.pt-nav-bar-menu{flex-wrap:wrap;row-gap:8px}.pt-nav-bar-menu .navbar-left{width:100%;justify-content:space-between}.pt-nav-bar-menu .navbar-middle{width:100%;padding:0;justify-content:flex-start}.pt-nav-bar-menu .navbar-middle.dt-pos-right .navbar-datetime,.pt-nav-bar-menu .navbar-middle.dt-pos-center .navbar-datetime{padding-left:0;border-left:none}.pt-nav-bar-menu .navbar-actions{width:100%;justify-content:flex-end}.pt-nav-bar-menu .navbar-user-menu{right:0}.pt-nav-bar-menu .navbar-user-profile-left{max-width:130px}}@media(max-width:520px){.pt-nav-bar-menu .navbar-datetime .dt-value,.pt-nav-bar-menu .navbar-user-profile-left{display:none}.pt-nav-bar-menu .navbar-user-menu{width:240px}.pt-nav-bar-menu .navbar-actions{gap:8px}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: PTNotificationComponent, selector: "pt-notification", inputs: ["notifications", "config", "totalRecords", "totalUnreadRecords", "page", "rows", "loading"], outputs: ["notificationClick", "action", "globalAction", "viewAll", "panelOpened", "panelClosed", "loadMore"] }, { kind: "component", type: PTReleaseNotesComponent, selector: "pt-release-notes", inputs: ["releases", "config", "loading", "hasMore", "pageSize", "totalUnreadRecords"], outputs: ["releaseClick", "viewAll", "loadMore"] }] }); }
|
|
7443
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: PTNavbarMenuComponent, isStandalone: false, selector: "pt-nav-bar-menu", inputs: { navBarMenuConfig: "navBarMenuConfig", serverDateTime: "serverDateTime", notifications: "notifications", notificationConfig: "notificationConfig", notificationTotalRecords: "notificationTotalRecords", notificationTotalUnreadRecords: "notificationTotalUnreadRecords", notificationPage: "notificationPage", notificationRows: "notificationRows", notificationLoading: "notificationLoading", releaseNotes: "releaseNotes", releaseNotesConfig: "releaseNotesConfig", releaseNotesLoading: "releaseNotesLoading", releaseNotesHasMore: "releaseNotesHasMore", releaseNotesPageSize: "releaseNotesPageSize", releaseNotesTotalUnreadRecords: "releaseNotesTotalUnreadRecords" }, outputs: { toggleSidebar: "toggleSidebar", notificationAction: "notificationAction", notificationClick: "notificationClick", notificationPanelOpened: "notificationPanelOpened", notificationPanelClosed: "notificationPanelClosed", notificationGlobalAction: "notificationGlobalAction", notificationViewAll: "notificationViewAll", notificationLoadMore: "notificationLoadMore", releaseNoteClick: "releaseNoteClick", releaseNoteAction: "releaseNoteAction", releaseNoteGlobalAction: "releaseNoteGlobalAction", releaseNotesViewAll: "releaseNotesViewAll", releaseNotesLoadMore: "releaseNotesLoadMore" }, host: { listeners: { "document:click": "closeUserMenu()" } }, usesOnChanges: true, ngImport: i0, template: "<div class=\"pt-nav-bar-menu\" [ngStyle]=\"getNavbarStyles()\">\n <div class=\"navbar-left\">\n <a class=\"logo-link\" routerLink=\"/\">\n @if (getLogoUrl()) {\n <img\n class=\"navbar-logo\"\n [src]=\"getLogoUrl()\"\n [alt]=\"getLogoAltText()\"\n [ngStyle]=\"getLogoStyles()\"\n />\n }\n\n <span class=\"navbar-title\" [ngStyle]=\"getAppNameStyles()\">\n {{ getAppName() }}\n </span>\n </a>\n\n <a class=\"toggle-btn\" (click)=\"toggleMenu()\">\n <i\n [class]=\"getToggleButtonIcon()\"\n [ngStyle]=\"getToggleButtonStyles()\"\n ></i>\n </a>\n </div>\n\n @if (hasDateTime()) {\n <div class=\"navbar-middle\" [ngClass]=\"getDateTimePositionClass()\">\n <div class=\"navbar-datetime\">\n <span class=\"dt-value\" [ngStyle]=\"getDateTimeTextStyles()\">\n {{ dateTimeText }}\n </span>\n\n @if (isFixedMode()) {\n <input\n class=\"dt-input\"\n type=\"datetime-local\"\n step=\"1\"\n [value]=\"manualDateTimeLocal\"\n (input)=\"onManualDateTimeChange($any($event.target).value)\"\n />\n }\n </div>\n </div>\n }\n\n <div class=\"pt-navbar-actions\">\n <pt-release-notes\n [releases]=\"releaseNotes\"\n [config]=\"releaseNotesConfig\"\n [loading]=\"releaseNotesLoading\"\n [hasMore]=\"releaseNotesHasMore\"\n [pageSize]=\"releaseNotesPageSize\"\n [totalUnreadRecords]=\"releaseNotesTotalUnreadRecords\"\n (releaseClick)=\"onReleaseNoteClick($event)\"\n (action)=\"onReleaseNoteAction($event)\"\n (globalAction)=\"onReleaseNoteGlobalAction($event)\"\n (viewAll)=\"onReleaseNotesViewAll()\"\n (loadMore)=\"onReleaseNotesLoadMore($event)\"\n ></pt-release-notes>\n\n <pt-notification\n [notifications]=\"notifications\"\n [config]=\"notificationConfig\"\n [totalRecords]=\"notificationTotalRecords\"\n [totalUnreadRecords]=\"notificationTotalUnreadRecords\"\n [page]=\"notificationPage\"\n [rows]=\"notificationRows\"\n [loading]=\"notificationLoading\"\n (notificationClick)=\"onNotificationClick($event)\"\n (action)=\"onNotificationAction($event)\"\n (globalAction)=\"onNotificationGlobalAction($event)\"\n (viewAll)=\"onNotificationViewAll()\"\n (panelOpened)=\"onNotificationPanelOpened()\"\n (panelClosed)=\"onNotificationPanelClosed()\"\n (loadMore)=\"onNotificationLoadMore($event)\"\n ></pt-notification>\n @if (hasUser()) {\n <div class=\"navbar-user\" (click)=\"$event.stopPropagation()\">\n @if (showProfileLeftOfAvatar()) {\n <div\n class=\"navbar-user-profile-left\"\n [ngStyle]=\"getUserProfileTextStyles()\"\n >\n {{ getUserProfile() }}\n </div>\n }\n\n <button\n type=\"button\"\n class=\"navbar-user-trigger\"\n (click)=\"toggleUserMenu()\"\n >\n <div class=\"navbar-user-avatar\" [ngStyle]=\"getUserAvatarStyles()\">\n @if (isInitialsAvatar()) {\n <span>\n {{ getUserInitials() }}\n </span>\n } @else {\n <i class=\"fa fa-user\"></i>\n }\n </div>\n </button>\n\n @if (isUserMenuOpen) {\n <div class=\"navbar-user-menu\">\n <div class=\"navbar-user-menu-header\">\n <div\n class=\"navbar-user-menu-avatar\"\n [ngStyle]=\"getUserAvatarStyles()\"\n >\n @if (isInitialsAvatar()) {\n <span>\n {{ getUserInitials() }}\n </span>\n } @else {\n <i class=\"fa fa-user\"></i>\n }\n </div>\n\n <div class=\"navbar-user-menu-identity\">\n <div class=\"navbar-user-menu-name\">\n {{ getUserFullName() }}\n </div>\n\n @if (showProfileInMenu()) {\n <div\n class=\"navbar-user-menu-profile\"\n [ngStyle]=\"getUserProfileTextStyles()\"\n >\n {{ getUserProfile() }}\n </div>\n }\n\n <div class=\"navbar-user-menu-username\">\n {{ getUsername() }}\n </div>\n </div>\n </div>\n\n @if (hasUserMenuItems()) {\n <div class=\"navbar-user-menu-separator\"></div>\n\n @for (item of getUserMenuItems(); track item) {\n @if (item.separatorBefore) {\n <div class=\"navbar-user-menu-separator\"></div>\n }\n\n <button\n type=\"button\"\n [class]=\"getUserMenuItemClasses(item)\"\n [disabled]=\"item.disabled\"\n (click)=\"onUserMenuItemClick(item)\"\n >\n @if (getUserMenuItemIcon(item)) {\n <i [class]=\"getUserMenuItemIcon(item)\"></i>\n }\n\n <span>\n {{ item.text }}\n </span>\n </button>\n }\n }\n </div>\n }\n </div>\n }\n </div>\n</div>\n", styles: [".pt-nav-bar-menu{position:relative;display:flex;align-items:center;justify-content:space-between;width:100%;min-width:0;box-sizing:border-box;padding-right:16px;padding-left:16px;border-bottom:1px solid var(--pt-navbar-border, #e5e7eb);background-color:var(--pt-navbar-bg, #ffffff);color:var(--pt-navbar-text, #1f2937);background-size:cover;background-position:center;gap:16px}.pt-nav-bar-menu .navbar-left{display:flex;align-items:center;gap:12px;min-width:0;flex:0 0 auto}.pt-nav-bar-menu .logo-link{display:flex;align-items:center;min-width:0;color:inherit;text-decoration:none}.pt-nav-bar-menu .navbar-logo{display:block;margin-left:0;margin-right:16px;object-fit:contain}.pt-nav-bar-menu .navbar-title{min-width:0;color:var(--pt-navbar-title, inherit);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pt-nav-bar-menu .toggle-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;min-width:40px;margin-left:8px;padding:0;border-radius:10px;cursor:pointer;box-sizing:border-box;transition:background-color .15s ease}.pt-nav-bar-menu .toggle-btn:hover{background-color:var(--pt-navbar-toggle-hover-bg, #f1f5f9)}.pt-nav-bar-menu .toggle-btn>i{line-height:1}.pt-nav-bar-menu .toggle-btn>.pi.pi-bars{color:var(--pt-navbar-toggle-color, #333333);font-size:1.35rem}.pt-nav-bar-menu .navbar-middle{display:flex;align-items:center;min-width:0;flex:1 1 auto;padding:0 16px}.pt-nav-bar-menu .navbar-middle.dt-pos-left{justify-content:flex-start}.pt-nav-bar-menu .navbar-middle.dt-pos-center{justify-content:center}.pt-nav-bar-menu .navbar-middle.dt-pos-right{justify-content:flex-end}.pt-nav-bar-menu .navbar-datetime{display:inline-flex;align-items:center;gap:10px;max-width:100%;flex:0 0 auto;white-space:nowrap}.pt-nav-bar-menu .navbar-datetime .dt-value{color:var(--pt-navbar-datetime-text, inherit);white-space:nowrap;line-height:1}.pt-nav-bar-menu .navbar-datetime .dt-input{height:34px;padding:0 9px;border:1px solid var(--pt-navbar-input-border, #d1d5db);border-radius:8px;background:var(--pt-navbar-input-bg, #ffffff);color:var(--pt-navbar-input-text, #333333);font-size:12px;outline:none;box-sizing:border-box}.pt-nav-bar-menu .navbar-datetime .dt-input:focus{border-color:var(--pt-navbar-input-focus-border, rgba(3, 76, 131, .7));box-shadow:0 0 0 3px var(--pt-navbar-input-focus-shadow, rgba(3, 76, 131, .12))}.pt-nav-bar-menu .pt-navbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0;flex:0 0 auto;white-space:nowrap}.pt-nav-bar-menu pt-release-notes,.pt-nav-bar-menu pt-notification{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.pt-nav-bar-menu .navbar-user{position:relative;display:flex;align-items:center;gap:10px;margin-left:4px;flex:0 0 auto}.pt-nav-bar-menu .navbar-user-profile-left{display:inline-flex;align-items:center;justify-content:center;max-width:170px;min-height:34px;padding:0 14px;border:1px solid var(--pt-navbar-user-profile-border, #bfdbfe);border-radius:999px;background:var(--pt-navbar-user-profile-bg, #eff6ff);color:var(--pt-navbar-user-profile-text, #334155);box-sizing:border-box;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.82rem;font-weight:700;line-height:1}.pt-nav-bar-menu .navbar-user-trigger{display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:999px;background:transparent;cursor:pointer;box-sizing:border-box}.pt-nav-bar-menu .navbar-user-trigger:focus-visible{outline:none;box-shadow:0 0 0 3px var(--pt-navbar-user-focus-shadow, rgba(37, 99, 235, .14))}.pt-nav-bar-menu .navbar-user-avatar,.pt-nav-bar-menu .navbar-user-menu-avatar{display:flex;align-items:center;justify-content:center;width:40px;height:40px;min-width:40px;border:1px solid var(--pt-navbar-user-avatar-border, #bfdbfe);border-radius:999px;background:var(--pt-navbar-user-avatar-bg, #eff6ff);color:var(--pt-navbar-user-avatar-text, #2563eb);box-sizing:border-box;font-size:.92rem;font-weight:800;letter-spacing:.04em;line-height:1;text-transform:uppercase}.pt-nav-bar-menu .navbar-user-avatar i,.pt-nav-bar-menu .navbar-user-menu-avatar i{font-size:1rem}.pt-nav-bar-menu .navbar-user-menu{position:absolute;top:calc(100% + 10px);right:0;width:260px;padding:.75rem;border:1px solid var(--pt-navbar-user-menu-border, #e5e7eb);border-radius:14px;background:var(--pt-navbar-user-menu-bg, #ffffff);color:var(--pt-navbar-user-menu-text, #334155);box-shadow:var( --pt-navbar-user-menu-shadow, 0 18px 45px rgba(15, 23, 42, .16) );box-sizing:border-box;z-index:10005}.pt-nav-bar-menu .navbar-user-menu-header{display:flex;align-items:center;gap:.75rem;padding:.35rem .25rem .65rem}.pt-nav-bar-menu .navbar-user-menu-avatar{width:46px;height:46px;min-width:46px;font-size:1.05rem}.pt-nav-bar-menu .navbar-user-menu-identity{min-width:0;flex:1 1 auto}.pt-nav-bar-menu .navbar-user-menu-name{color:var(--pt-navbar-user-menu-name, #0f172a);font-size:.95rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pt-nav-bar-menu .navbar-user-menu-profile{margin-top:.15rem;color:var(--pt-navbar-user-menu-profile, #2563eb);font-size:.8rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pt-nav-bar-menu .navbar-user-menu-username{margin-top:.15rem;color:var(--pt-navbar-user-menu-username, #64748b);font-size:.78rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pt-nav-bar-menu .navbar-user-menu-separator{height:1px;margin:.4rem 0;background:var(--pt-navbar-user-menu-separator, #e5e7eb)}.pt-nav-bar-menu .navbar-user-menu-item{display:flex;align-items:center;gap:.55rem;width:100%;min-height:38px;padding:.5rem .55rem;border:none;border-radius:9px;background:transparent;color:var(--pt-navbar-user-menu-item-text, #334155);box-sizing:border-box;cursor:pointer;text-align:left;font-size:.86rem;font-weight:600;transition:background-color .15s ease,color .15s ease}.pt-nav-bar-menu .navbar-user-menu-item:hover:not(:disabled){background:var(--pt-navbar-user-menu-item-hover-bg, #f1f5f9);color:var(--pt-navbar-user-menu-item-hover-text, #0f172a)}.pt-nav-bar-menu .navbar-user-menu-item.danger{color:var(--pt-navbar-user-menu-item-danger-text, #dc2626)}.pt-nav-bar-menu .navbar-user-menu-item.danger:hover:not(:disabled){background:var(--pt-navbar-user-menu-item-danger-hover-bg, #fef2f2);color:var(--pt-navbar-user-menu-item-danger-hover-text, #b91c1c)}.pt-nav-bar-menu .navbar-user-menu-item.disabled,.pt-nav-bar-menu .navbar-user-menu-item:disabled{opacity:.55;cursor:not-allowed}.pt-nav-bar-menu .navbar-user-menu-item i{width:18px;flex:0 0 18px;text-align:center}@media(max-width:900px){.pt-nav-bar-menu{flex-wrap:wrap;row-gap:8px;padding-top:8px;padding-bottom:8px}.pt-nav-bar-menu .navbar-left{flex:1 1 auto}.pt-nav-bar-menu .navbar-middle{order:3;width:100%;flex:1 0 100%;padding:4px 0 0;justify-content:center}.pt-nav-bar-menu .pt-navbar-actions{flex:0 0 auto}.pt-nav-bar-menu .navbar-user-profile-left{max-width:130px}}@media(max-width:650px){.pt-nav-bar-menu{gap:8px}.pt-nav-bar-menu .navbar-title{display:none}.pt-nav-bar-menu .toggle-btn{margin-left:0}.pt-nav-bar-menu .navbar-user-profile-left{display:none}.pt-nav-bar-menu .pt-navbar-actions{gap:4px}}@media(max-width:520px){.pt-nav-bar-menu{padding-right:8px;padding-left:8px}.pt-nav-bar-menu .navbar-datetime .dt-value{font-size:.8rem!important}.pt-nav-bar-menu .navbar-user-menu{position:fixed;top:60px;right:8px;width:240px}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: PTNotificationComponent, selector: "pt-notification", inputs: ["notifications", "config", "totalRecords", "totalUnreadRecords", "page", "rows", "loading"], outputs: ["notificationClick", "action", "globalAction", "viewAll", "panelOpened", "panelClosed", "loadMore"] }, { kind: "component", type: PTReleaseNotesComponent, selector: "pt-release-notes", inputs: ["releases", "config", "loading", "hasMore", "pageSize", "totalUnreadRecords"], outputs: ["releaseClick", "action", "globalAction", "viewAll", "loadMore", "panelOpened", "panelClosed"] }] }); }
|
|
7215
7444
|
}
|
|
7216
7445
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTNavbarMenuComponent, decorators: [{
|
|
7217
7446
|
type: Component,
|
|
7218
|
-
args: [{ selector: 'pt-nav-bar-menu', standalone: false, template: "<div class=\"pt-nav-bar-menu\" [ngStyle]=\"getNavbarStyles()\">\n <div class=\"navbar-left\">\n <a class=\"logo-link\" routerLink=\"/\">\n @if (getLogoUrl()) {\n <img\n class=\"navbar-logo\"\n [src]=\"getLogoUrl()\"\n [alt]=\"getLogoAltText()\"\n [ngStyle]=\"getLogoStyles()\"\n />\n }\n\n <span class=\"navbar-title\" [ngStyle]=\"getAppNameStyles()\">\n {{ getAppName() }}\n </span>\n </a>\n\n <a class=\"toggle-btn\" (click)=\"toggleMenu()\">\n <i\n [class]=\"getToggleButtonIcon()\"\n [ngStyle]=\"getToggleButtonStyles()\"\n ></i>\n </a>\n </div>\n\n @if (hasDateTime()) {\n <div class=\"navbar-middle\" [ngClass]=\"getDateTimePositionClass()\">\n <div class=\"navbar-datetime\">\n <span class=\"dt-value\" [ngStyle]=\"getDateTimeTextStyles()\">\n {{ dateTimeText }}\n </span>\n\n @if (isFixedMode()) {\n <input\n class=\"dt-input\"\n type=\"datetime-local\"\n step=\"1\"\n [value]=\"manualDateTimeLocal\"\n (input)=\"onManualDateTimeChange($any($event.target).value)\"\n />\n }\n </div>\n </div>\n }\n\n <div class=\"pt-navbar-actions\">\n <pt-release-notes\n [releases]=\"releaseNotes\"\n [config]=\"releaseNotesConfig\"\n [loading]=\"releaseNotesLoading\"\n [hasMore]=\"releaseNotesHasMore\"\n [pageSize]=\"releaseNotesPageSize\"\n [totalUnreadRecords]=\"releaseNotesTotalUnreadRecords\"\n (releaseClick)=\"onReleaseNoteClick($event)\"\n (viewAll)=\"onReleaseNotesViewAll()\"\n (loadMore)=\"onReleaseNotesLoadMore($event)\"\n ></pt-release-notes>\n\n <pt-notification\n [notifications]=\"notifications\"\n [config]=\"notificationConfig\"\n [totalRecords]=\"notificationTotalRecords\"\n [totalUnreadRecords]=\"notificationTotalUnreadRecords\"\n [page]=\"notificationPage\"\n [rows]=\"notificationRows\"\n [loading]=\"notificationLoading\"\n (notificationClick)=\"onNotificationClick($event)\"\n (action)=\"onNotificationAction($event)\"\n (globalAction)=\"onNotificationGlobalAction($event)\"\n (viewAll)=\"onNotificationViewAll()\"\n (panelOpened)=\"onNotificationPanelOpened()\"\n (panelClosed)=\"onNotificationPanelClosed()\"\n (loadMore)=\"onNotificationLoadMore($event)\"\n ></pt-notification>\n </div>\n</div>\n", styles: [".pt-nav-bar-menu{display:flex;align-items:center;justify-content:space-between;padding-right:10px;padding-left:10px;border-bottom:1px solid var(--pt-navbar-border, #ddd);background-color:var(--pt-navbar-bg, #fff);color:var(--pt-navbar-text, #1f2937);background-size:cover;background-position:center;gap:12px;min-width:0;width:100%;box-sizing:border-box}.pt-nav-bar-menu .navbar-left{display:flex;align-items:center;gap:12px;min-width:0;flex:0 0 auto}.pt-nav-bar-menu .logo-link{display:flex;align-items:center;text-decoration:none;color:inherit;min-width:0}.pt-nav-bar-menu .navbar-logo{margin-left:10px;margin-right:20px}.pt-nav-bar-menu .navbar-title{color:var(--pt-navbar-title, inherit);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pt-nav-bar-menu .navbar-middle{flex:1 1 auto;display:flex;align-items:center;min-width:0;padding:0 12px}.pt-nav-bar-menu .navbar-middle.dt-pos-left{justify-content:flex-start}.pt-nav-bar-menu .navbar-middle.dt-pos-center{justify-content:center}.pt-nav-bar-menu .navbar-middle.dt-pos-right{justify-content:flex-end}.pt-nav-bar-menu .navbar-datetime{display:inline-flex;align-items:center;gap:10px;flex:0 0 auto;white-space:nowrap;max-width:100%}.pt-nav-bar-menu .navbar-datetime .dt-value{color:var(--pt-navbar-datetime-text, inherit);white-space:nowrap}.pt-nav-bar-menu .navbar-datetime .dt-input{height:32px;padding:0 8px;border:1px solid var(--pt-navbar-input-border, rgba(0, 0, 0, .18));border-radius:6px;background:var(--pt-navbar-input-bg, #fff);font-size:12px;color:var(--pt-navbar-input-text, #333);outline:none}.pt-nav-bar-menu .navbar-datetime .dt-input:focus{border-color:var(--pt-navbar-input-focus-border, rgba(3, 76, 131, .7));box-shadow:0 0 0 3px var(--pt-navbar-input-focus-shadow, rgba(3, 76, 131, .12))}.pt-nav-bar-menu .navbar-actions{display:flex;align-items:center;gap:12px;flex:0 0 auto;min-width:0}.pt-nav-bar-menu .navbar-right{display:flex;align-items:center;gap:10px;flex:0 0 auto}.pt-nav-bar-menu .navbar-right a{margin-left:20px;color:var(--pt-navbar-link, #333);text-decoration:none;font-size:20px;cursor:pointer}.pt-nav-bar-menu .navbar-right a:hover{color:var(--pt-navbar-link-hover, #000)}.pt-nav-bar-menu pt-notification{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.pt-nav-bar-menu .toggle-btn{margin-left:2rem;cursor:pointer;padding:7px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center}.pt-nav-bar-menu .toggle-btn>.pi.pi-bars{font-size:1.5rem;color:var(--pt-navbar-toggle-color, #333)}.pt-nav-bar-menu .toggle-btn:hover{background-color:var(--pt-navbar-toggle-hover-bg, #f1f1f1)}.pt-nav-bar-menu .navbar-user{position:relative;display:flex;align-items:center;gap:.65rem;flex:0 0 auto}.pt-nav-bar-menu .navbar-user-profile-left{max-width:170px;color:var(--pt-navbar-user-profile-text, #334155);font-size:.82rem;font-weight:700;background:var(--pt-navbar-user-profile-bg, #eff6ff);border:1px solid var(--pt-navbar-user-profile-border, #bfdbfe);border-radius:999px;padding:.28rem .65rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pt-nav-bar-menu .navbar-user-trigger{border:none;background:transparent;padding:0;cursor:pointer;display:flex;align-items:center}.pt-nav-bar-menu .navbar-user-avatar,.pt-nav-bar-menu .navbar-user-menu-avatar{width:38px;height:38px;min-width:38px;border-radius:999px;background:var(--pt-navbar-user-avatar-bg, #eff6ff);color:var(--pt-navbar-user-avatar-text, #2563eb);border:1px solid var(--pt-navbar-user-avatar-border, #bfdbfe);display:flex;align-items:center;justify-content:center;font-size:.92rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;line-height:1;box-sizing:border-box}.pt-nav-bar-menu .navbar-user-avatar i,.pt-nav-bar-menu .navbar-user-menu-avatar i{font-size:1rem}.pt-nav-bar-menu .navbar-user-menu{position:absolute;top:calc(100% + 10px);right:0;width:260px;background:var(--pt-navbar-user-menu-bg, #ffffff);color:var(--pt-navbar-user-menu-text, #334155);border:1px solid var(--pt-navbar-user-menu-border, #e5e7eb);border-radius:14px;box-shadow:var( --pt-navbar-user-menu-shadow, 0 18px 45px rgba(15, 23, 42, .16) );z-index:9999;padding:.75rem;box-sizing:border-box}.pt-nav-bar-menu .navbar-user-menu-header{display:flex;align-items:center;gap:.75rem;padding:.35rem .25rem .65rem}.pt-nav-bar-menu .navbar-user-menu-avatar{width:46px;height:46px;min-width:46px;font-size:1.05rem}.pt-nav-bar-menu .navbar-user-menu-identity{min-width:0}.pt-nav-bar-menu .navbar-user-menu-name{color:var(--pt-navbar-user-menu-name, #0f172a);font-size:.95rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pt-nav-bar-menu .navbar-user-menu-profile{margin-top:.15rem;color:var(--pt-navbar-user-menu-profile, #2563eb);font-size:.8rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pt-nav-bar-menu .navbar-user-menu-username{margin-top:.15rem;color:var(--pt-navbar-user-menu-username, #64748b);font-size:.78rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pt-nav-bar-menu .navbar-user-menu-separator{height:1px;background:var(--pt-navbar-user-menu-separator, #e5e7eb);margin:.4rem 0}.pt-nav-bar-menu .navbar-user-menu-item{width:100%;min-height:36px;border:none;background:transparent;border-radius:9px;color:var(--pt-navbar-user-menu-item-text, #334155);display:flex;align-items:center;gap:.55rem;padding:.5rem .55rem;font-size:.86rem;font-weight:600;cursor:pointer;text-align:left;box-sizing:border-box}.pt-nav-bar-menu .navbar-user-menu-item:hover{background:var(--pt-navbar-user-menu-item-hover-bg, #f1f5f9);color:var(--pt-navbar-user-menu-item-hover-text, #0f172a)}.pt-nav-bar-menu .navbar-user-menu-item.danger{color:var(--pt-navbar-user-menu-item-danger-text, #dc2626)}.pt-nav-bar-menu .navbar-user-menu-item.danger:hover{background:var(--pt-navbar-user-menu-item-danger-hover-bg, #fef2f2);color:var(--pt-navbar-user-menu-item-danger-hover-text, #b91c1c)}.pt-nav-bar-menu .navbar-user-menu-item.disabled,.pt-nav-bar-menu .navbar-user-menu-item:disabled{opacity:.55;cursor:not-allowed}@media(max-width:900px){.pt-nav-bar-menu{flex-wrap:wrap;row-gap:8px}.pt-nav-bar-menu .navbar-left{width:100%;justify-content:space-between}.pt-nav-bar-menu .navbar-middle{width:100%;padding:0;justify-content:flex-start}.pt-nav-bar-menu .navbar-middle.dt-pos-right .navbar-datetime,.pt-nav-bar-menu .navbar-middle.dt-pos-center .navbar-datetime{padding-left:0;border-left:none}.pt-nav-bar-menu .navbar-actions{width:100%;justify-content:flex-end}.pt-nav-bar-menu .navbar-user-menu{right:0}.pt-nav-bar-menu .navbar-user-profile-left{max-width:130px}}@media(max-width:520px){.pt-nav-bar-menu .navbar-datetime .dt-value,.pt-nav-bar-menu .navbar-user-profile-left{display:none}.pt-nav-bar-menu .navbar-user-menu{width:240px}.pt-nav-bar-menu .navbar-actions{gap:8px}}\n"] }]
|
|
7447
|
+
args: [{ selector: 'pt-nav-bar-menu', standalone: false, template: "<div class=\"pt-nav-bar-menu\" [ngStyle]=\"getNavbarStyles()\">\n <div class=\"navbar-left\">\n <a class=\"logo-link\" routerLink=\"/\">\n @if (getLogoUrl()) {\n <img\n class=\"navbar-logo\"\n [src]=\"getLogoUrl()\"\n [alt]=\"getLogoAltText()\"\n [ngStyle]=\"getLogoStyles()\"\n />\n }\n\n <span class=\"navbar-title\" [ngStyle]=\"getAppNameStyles()\">\n {{ getAppName() }}\n </span>\n </a>\n\n <a class=\"toggle-btn\" (click)=\"toggleMenu()\">\n <i\n [class]=\"getToggleButtonIcon()\"\n [ngStyle]=\"getToggleButtonStyles()\"\n ></i>\n </a>\n </div>\n\n @if (hasDateTime()) {\n <div class=\"navbar-middle\" [ngClass]=\"getDateTimePositionClass()\">\n <div class=\"navbar-datetime\">\n <span class=\"dt-value\" [ngStyle]=\"getDateTimeTextStyles()\">\n {{ dateTimeText }}\n </span>\n\n @if (isFixedMode()) {\n <input\n class=\"dt-input\"\n type=\"datetime-local\"\n step=\"1\"\n [value]=\"manualDateTimeLocal\"\n (input)=\"onManualDateTimeChange($any($event.target).value)\"\n />\n }\n </div>\n </div>\n }\n\n <div class=\"pt-navbar-actions\">\n <pt-release-notes\n [releases]=\"releaseNotes\"\n [config]=\"releaseNotesConfig\"\n [loading]=\"releaseNotesLoading\"\n [hasMore]=\"releaseNotesHasMore\"\n [pageSize]=\"releaseNotesPageSize\"\n [totalUnreadRecords]=\"releaseNotesTotalUnreadRecords\"\n (releaseClick)=\"onReleaseNoteClick($event)\"\n (action)=\"onReleaseNoteAction($event)\"\n (globalAction)=\"onReleaseNoteGlobalAction($event)\"\n (viewAll)=\"onReleaseNotesViewAll()\"\n (loadMore)=\"onReleaseNotesLoadMore($event)\"\n ></pt-release-notes>\n\n <pt-notification\n [notifications]=\"notifications\"\n [config]=\"notificationConfig\"\n [totalRecords]=\"notificationTotalRecords\"\n [totalUnreadRecords]=\"notificationTotalUnreadRecords\"\n [page]=\"notificationPage\"\n [rows]=\"notificationRows\"\n [loading]=\"notificationLoading\"\n (notificationClick)=\"onNotificationClick($event)\"\n (action)=\"onNotificationAction($event)\"\n (globalAction)=\"onNotificationGlobalAction($event)\"\n (viewAll)=\"onNotificationViewAll()\"\n (panelOpened)=\"onNotificationPanelOpened()\"\n (panelClosed)=\"onNotificationPanelClosed()\"\n (loadMore)=\"onNotificationLoadMore($event)\"\n ></pt-notification>\n @if (hasUser()) {\n <div class=\"navbar-user\" (click)=\"$event.stopPropagation()\">\n @if (showProfileLeftOfAvatar()) {\n <div\n class=\"navbar-user-profile-left\"\n [ngStyle]=\"getUserProfileTextStyles()\"\n >\n {{ getUserProfile() }}\n </div>\n }\n\n <button\n type=\"button\"\n class=\"navbar-user-trigger\"\n (click)=\"toggleUserMenu()\"\n >\n <div class=\"navbar-user-avatar\" [ngStyle]=\"getUserAvatarStyles()\">\n @if (isInitialsAvatar()) {\n <span>\n {{ getUserInitials() }}\n </span>\n } @else {\n <i class=\"fa fa-user\"></i>\n }\n </div>\n </button>\n\n @if (isUserMenuOpen) {\n <div class=\"navbar-user-menu\">\n <div class=\"navbar-user-menu-header\">\n <div\n class=\"navbar-user-menu-avatar\"\n [ngStyle]=\"getUserAvatarStyles()\"\n >\n @if (isInitialsAvatar()) {\n <span>\n {{ getUserInitials() }}\n </span>\n } @else {\n <i class=\"fa fa-user\"></i>\n }\n </div>\n\n <div class=\"navbar-user-menu-identity\">\n <div class=\"navbar-user-menu-name\">\n {{ getUserFullName() }}\n </div>\n\n @if (showProfileInMenu()) {\n <div\n class=\"navbar-user-menu-profile\"\n [ngStyle]=\"getUserProfileTextStyles()\"\n >\n {{ getUserProfile() }}\n </div>\n }\n\n <div class=\"navbar-user-menu-username\">\n {{ getUsername() }}\n </div>\n </div>\n </div>\n\n @if (hasUserMenuItems()) {\n <div class=\"navbar-user-menu-separator\"></div>\n\n @for (item of getUserMenuItems(); track item) {\n @if (item.separatorBefore) {\n <div class=\"navbar-user-menu-separator\"></div>\n }\n\n <button\n type=\"button\"\n [class]=\"getUserMenuItemClasses(item)\"\n [disabled]=\"item.disabled\"\n (click)=\"onUserMenuItemClick(item)\"\n >\n @if (getUserMenuItemIcon(item)) {\n <i [class]=\"getUserMenuItemIcon(item)\"></i>\n }\n\n <span>\n {{ item.text }}\n </span>\n </button>\n }\n }\n </div>\n }\n </div>\n }\n </div>\n</div>\n", styles: [".pt-nav-bar-menu{position:relative;display:flex;align-items:center;justify-content:space-between;width:100%;min-width:0;box-sizing:border-box;padding-right:16px;padding-left:16px;border-bottom:1px solid var(--pt-navbar-border, #e5e7eb);background-color:var(--pt-navbar-bg, #ffffff);color:var(--pt-navbar-text, #1f2937);background-size:cover;background-position:center;gap:16px}.pt-nav-bar-menu .navbar-left{display:flex;align-items:center;gap:12px;min-width:0;flex:0 0 auto}.pt-nav-bar-menu .logo-link{display:flex;align-items:center;min-width:0;color:inherit;text-decoration:none}.pt-nav-bar-menu .navbar-logo{display:block;margin-left:0;margin-right:16px;object-fit:contain}.pt-nav-bar-menu .navbar-title{min-width:0;color:var(--pt-navbar-title, inherit);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pt-nav-bar-menu .toggle-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;min-width:40px;margin-left:8px;padding:0;border-radius:10px;cursor:pointer;box-sizing:border-box;transition:background-color .15s ease}.pt-nav-bar-menu .toggle-btn:hover{background-color:var(--pt-navbar-toggle-hover-bg, #f1f5f9)}.pt-nav-bar-menu .toggle-btn>i{line-height:1}.pt-nav-bar-menu .toggle-btn>.pi.pi-bars{color:var(--pt-navbar-toggle-color, #333333);font-size:1.35rem}.pt-nav-bar-menu .navbar-middle{display:flex;align-items:center;min-width:0;flex:1 1 auto;padding:0 16px}.pt-nav-bar-menu .navbar-middle.dt-pos-left{justify-content:flex-start}.pt-nav-bar-menu .navbar-middle.dt-pos-center{justify-content:center}.pt-nav-bar-menu .navbar-middle.dt-pos-right{justify-content:flex-end}.pt-nav-bar-menu .navbar-datetime{display:inline-flex;align-items:center;gap:10px;max-width:100%;flex:0 0 auto;white-space:nowrap}.pt-nav-bar-menu .navbar-datetime .dt-value{color:var(--pt-navbar-datetime-text, inherit);white-space:nowrap;line-height:1}.pt-nav-bar-menu .navbar-datetime .dt-input{height:34px;padding:0 9px;border:1px solid var(--pt-navbar-input-border, #d1d5db);border-radius:8px;background:var(--pt-navbar-input-bg, #ffffff);color:var(--pt-navbar-input-text, #333333);font-size:12px;outline:none;box-sizing:border-box}.pt-nav-bar-menu .navbar-datetime .dt-input:focus{border-color:var(--pt-navbar-input-focus-border, rgba(3, 76, 131, .7));box-shadow:0 0 0 3px var(--pt-navbar-input-focus-shadow, rgba(3, 76, 131, .12))}.pt-nav-bar-menu .pt-navbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0;flex:0 0 auto;white-space:nowrap}.pt-nav-bar-menu pt-release-notes,.pt-nav-bar-menu pt-notification{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.pt-nav-bar-menu .navbar-user{position:relative;display:flex;align-items:center;gap:10px;margin-left:4px;flex:0 0 auto}.pt-nav-bar-menu .navbar-user-profile-left{display:inline-flex;align-items:center;justify-content:center;max-width:170px;min-height:34px;padding:0 14px;border:1px solid var(--pt-navbar-user-profile-border, #bfdbfe);border-radius:999px;background:var(--pt-navbar-user-profile-bg, #eff6ff);color:var(--pt-navbar-user-profile-text, #334155);box-sizing:border-box;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.82rem;font-weight:700;line-height:1}.pt-nav-bar-menu .navbar-user-trigger{display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:999px;background:transparent;cursor:pointer;box-sizing:border-box}.pt-nav-bar-menu .navbar-user-trigger:focus-visible{outline:none;box-shadow:0 0 0 3px var(--pt-navbar-user-focus-shadow, rgba(37, 99, 235, .14))}.pt-nav-bar-menu .navbar-user-avatar,.pt-nav-bar-menu .navbar-user-menu-avatar{display:flex;align-items:center;justify-content:center;width:40px;height:40px;min-width:40px;border:1px solid var(--pt-navbar-user-avatar-border, #bfdbfe);border-radius:999px;background:var(--pt-navbar-user-avatar-bg, #eff6ff);color:var(--pt-navbar-user-avatar-text, #2563eb);box-sizing:border-box;font-size:.92rem;font-weight:800;letter-spacing:.04em;line-height:1;text-transform:uppercase}.pt-nav-bar-menu .navbar-user-avatar i,.pt-nav-bar-menu .navbar-user-menu-avatar i{font-size:1rem}.pt-nav-bar-menu .navbar-user-menu{position:absolute;top:calc(100% + 10px);right:0;width:260px;padding:.75rem;border:1px solid var(--pt-navbar-user-menu-border, #e5e7eb);border-radius:14px;background:var(--pt-navbar-user-menu-bg, #ffffff);color:var(--pt-navbar-user-menu-text, #334155);box-shadow:var( --pt-navbar-user-menu-shadow, 0 18px 45px rgba(15, 23, 42, .16) );box-sizing:border-box;z-index:10005}.pt-nav-bar-menu .navbar-user-menu-header{display:flex;align-items:center;gap:.75rem;padding:.35rem .25rem .65rem}.pt-nav-bar-menu .navbar-user-menu-avatar{width:46px;height:46px;min-width:46px;font-size:1.05rem}.pt-nav-bar-menu .navbar-user-menu-identity{min-width:0;flex:1 1 auto}.pt-nav-bar-menu .navbar-user-menu-name{color:var(--pt-navbar-user-menu-name, #0f172a);font-size:.95rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pt-nav-bar-menu .navbar-user-menu-profile{margin-top:.15rem;color:var(--pt-navbar-user-menu-profile, #2563eb);font-size:.8rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pt-nav-bar-menu .navbar-user-menu-username{margin-top:.15rem;color:var(--pt-navbar-user-menu-username, #64748b);font-size:.78rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pt-nav-bar-menu .navbar-user-menu-separator{height:1px;margin:.4rem 0;background:var(--pt-navbar-user-menu-separator, #e5e7eb)}.pt-nav-bar-menu .navbar-user-menu-item{display:flex;align-items:center;gap:.55rem;width:100%;min-height:38px;padding:.5rem .55rem;border:none;border-radius:9px;background:transparent;color:var(--pt-navbar-user-menu-item-text, #334155);box-sizing:border-box;cursor:pointer;text-align:left;font-size:.86rem;font-weight:600;transition:background-color .15s ease,color .15s ease}.pt-nav-bar-menu .navbar-user-menu-item:hover:not(:disabled){background:var(--pt-navbar-user-menu-item-hover-bg, #f1f5f9);color:var(--pt-navbar-user-menu-item-hover-text, #0f172a)}.pt-nav-bar-menu .navbar-user-menu-item.danger{color:var(--pt-navbar-user-menu-item-danger-text, #dc2626)}.pt-nav-bar-menu .navbar-user-menu-item.danger:hover:not(:disabled){background:var(--pt-navbar-user-menu-item-danger-hover-bg, #fef2f2);color:var(--pt-navbar-user-menu-item-danger-hover-text, #b91c1c)}.pt-nav-bar-menu .navbar-user-menu-item.disabled,.pt-nav-bar-menu .navbar-user-menu-item:disabled{opacity:.55;cursor:not-allowed}.pt-nav-bar-menu .navbar-user-menu-item i{width:18px;flex:0 0 18px;text-align:center}@media(max-width:900px){.pt-nav-bar-menu{flex-wrap:wrap;row-gap:8px;padding-top:8px;padding-bottom:8px}.pt-nav-bar-menu .navbar-left{flex:1 1 auto}.pt-nav-bar-menu .navbar-middle{order:3;width:100%;flex:1 0 100%;padding:4px 0 0;justify-content:center}.pt-nav-bar-menu .pt-navbar-actions{flex:0 0 auto}.pt-nav-bar-menu .navbar-user-profile-left{max-width:130px}}@media(max-width:650px){.pt-nav-bar-menu{gap:8px}.pt-nav-bar-menu .navbar-title{display:none}.pt-nav-bar-menu .toggle-btn{margin-left:0}.pt-nav-bar-menu .navbar-user-profile-left{display:none}.pt-nav-bar-menu .pt-navbar-actions{gap:4px}}@media(max-width:520px){.pt-nav-bar-menu{padding-right:8px;padding-left:8px}.pt-nav-bar-menu .navbar-datetime .dt-value{font-size:.8rem!important}.pt-nav-bar-menu .navbar-user-menu{position:fixed;top:60px;right:8px;width:240px}}\n"] }]
|
|
7219
7448
|
}], propDecorators: { navBarMenuConfig: [{
|
|
7220
7449
|
type: Input
|
|
7221
7450
|
}], serverDateTime: [{
|
|
@@ -7264,6 +7493,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
7264
7493
|
type: Output
|
|
7265
7494
|
}], releaseNoteClick: [{
|
|
7266
7495
|
type: Output
|
|
7496
|
+
}], releaseNoteAction: [{
|
|
7497
|
+
type: Output
|
|
7498
|
+
}], releaseNoteGlobalAction: [{
|
|
7499
|
+
type: Output
|
|
7267
7500
|
}], releaseNotesViewAll: [{
|
|
7268
7501
|
type: Output
|
|
7269
7502
|
}], releaseNotesLoadMore: [{
|
|
@@ -7404,14 +7637,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
7404
7637
|
|
|
7405
7638
|
class PTReleaseNotesModule {
|
|
7406
7639
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTReleaseNotesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7407
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.14", ngImport: i0, type: PTReleaseNotesModule, declarations: [PTReleaseNotesComponent], imports: [CommonModule
|
|
7408
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTReleaseNotesModule, imports: [CommonModule
|
|
7640
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.14", ngImport: i0, type: PTReleaseNotesModule, declarations: [PTReleaseNotesComponent], imports: [CommonModule], exports: [PTReleaseNotesComponent] }); }
|
|
7641
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTReleaseNotesModule, imports: [CommonModule] }); }
|
|
7409
7642
|
}
|
|
7410
7643
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTReleaseNotesModule, decorators: [{
|
|
7411
7644
|
type: NgModule,
|
|
7412
7645
|
args: [{
|
|
7413
7646
|
declarations: [PTReleaseNotesComponent],
|
|
7414
|
-
imports: [CommonModule
|
|
7647
|
+
imports: [CommonModule],
|
|
7415
7648
|
exports: [PTReleaseNotesComponent],
|
|
7416
7649
|
}]
|
|
7417
7650
|
}] });
|
|
@@ -7898,7 +8131,7 @@ class PTBreadCrumbComponent {
|
|
|
7898
8131
|
});
|
|
7899
8132
|
}
|
|
7900
8133
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTBreadCrumbComponent, deps: [{ token: PTBreadCrumbService }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7901
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: PTBreadCrumbComponent, isStandalone: false, selector: "pt-bread-crumb", inputs: { breadCrumbConfig: "breadCrumbConfig" }, ngImport: i0, template: "@if (items && items.length > 0) {\n <div\n class=\"pt-bread-crumb breadcrumb-container\"\n >\n <p-breadcrumb class=\"max-w-full\" [model]=\"items\" [home]=\"home\"></p-breadcrumb>\n </div>\n}\n", styles: [".pt-bread-crumb ::ng-deep chevronrighticon.p-element.p-icon-wrapper.ng-star-inserted{margin-top:4px}.pt-bread-crumb ::ng-deep .p-breadcrumb{margin-bottom:20px}.pt-bread-crumb .breadcrumb-container{padding:10px;border-radius:5px;margin-bottom:20px}.pt-bread-crumb ::ng-deep .breadcrumb-background{background-size:cover;background-position:center;background-repeat:no-repeat}\n"], dependencies: [{ kind: "component", type: i2$
|
|
8134
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: PTBreadCrumbComponent, isStandalone: false, selector: "pt-bread-crumb", inputs: { breadCrumbConfig: "breadCrumbConfig" }, ngImport: i0, template: "@if (items && items.length > 0) {\n <div\n class=\"pt-bread-crumb breadcrumb-container\"\n >\n <p-breadcrumb class=\"max-w-full\" [model]=\"items\" [home]=\"home\"></p-breadcrumb>\n </div>\n}\n", styles: [".pt-bread-crumb ::ng-deep chevronrighticon.p-element.p-icon-wrapper.ng-star-inserted{margin-top:4px}.pt-bread-crumb ::ng-deep .p-breadcrumb{margin-bottom:20px}.pt-bread-crumb .breadcrumb-container{padding:10px;border-radius:5px;margin-bottom:20px}.pt-bread-crumb ::ng-deep .breadcrumb-background{background-size:cover;background-position:center;background-repeat:no-repeat}\n"], dependencies: [{ kind: "component", type: i2$1.Breadcrumb, selector: "p-breadcrumb", inputs: ["model", "style", "styleClass", "home", "homeAriaLabel"], outputs: ["onItemClick"] }] }); }
|
|
7902
8135
|
}
|
|
7903
8136
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTBreadCrumbComponent, decorators: [{
|
|
7904
8137
|
type: Component,
|
|
@@ -7929,6 +8162,8 @@ class PTPageSkeletonComponent {
|
|
|
7929
8162
|
this.notificationViewAll = new EventEmitter();
|
|
7930
8163
|
this.notificationLoadMore = new EventEmitter();
|
|
7931
8164
|
this.releaseNoteClick = new EventEmitter();
|
|
8165
|
+
this.releaseNoteAction = new EventEmitter();
|
|
8166
|
+
this.releaseNoteGlobalAction = new EventEmitter();
|
|
7932
8167
|
this.releaseNotesViewAll = new EventEmitter();
|
|
7933
8168
|
this.releaseNotesLoadMore = new EventEmitter();
|
|
7934
8169
|
this.isSidebarVisible = true;
|
|
@@ -7965,6 +8200,12 @@ class PTPageSkeletonComponent {
|
|
|
7965
8200
|
onReleaseNoteClick(event) {
|
|
7966
8201
|
this.releaseNoteClick.emit(event);
|
|
7967
8202
|
}
|
|
8203
|
+
onReleaseNoteAction(event) {
|
|
8204
|
+
this.releaseNoteAction.emit(event);
|
|
8205
|
+
}
|
|
8206
|
+
onReleaseNoteGlobalAction(event) {
|
|
8207
|
+
this.releaseNoteGlobalAction.emit(event);
|
|
8208
|
+
}
|
|
7968
8209
|
onReleaseNotesViewAll() {
|
|
7969
8210
|
this.releaseNotesViewAll.emit();
|
|
7970
8211
|
}
|
|
@@ -8003,11 +8244,11 @@ class PTPageSkeletonComponent {
|
|
|
8003
8244
|
};
|
|
8004
8245
|
}
|
|
8005
8246
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTPageSkeletonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8006
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: PTPageSkeletonComponent, isStandalone: false, selector: "pt-page-skeleton", inputs: { pageSkeletonConfig: "pageSkeletonConfig", serverDateTime: "serverDateTime", notifications: "notifications", notificationConfig: "notificationConfig", notificationTotalRecords: "notificationTotalRecords", notificationTotalUnreadRecords: "notificationTotalUnreadRecords", notificationPage: "notificationPage", notificationRows: "notificationRows", notificationLoading: "notificationLoading", releaseNotes: "releaseNotes", releaseNotesConfig: "releaseNotesConfig", releaseNotesLoading: "releaseNotesLoading", releaseNotesHasMore: "releaseNotesHasMore", releaseNotesPageSize: "releaseNotesPageSize", releaseNotesTotalUnreadRecords: "releaseNotesTotalUnreadRecords" }, outputs: { toggleSidebar: "toggleSidebar", notificationAction: "notificationAction", notificationClick: "notificationClick", notificationPanelOpened: "notificationPanelOpened", notificationPanelClosed: "notificationPanelClosed", notificationGlobalAction: "notificationGlobalAction", notificationViewAll: "notificationViewAll", notificationLoadMore: "notificationLoadMore", releaseNoteClick: "releaseNoteClick", releaseNotesViewAll: "releaseNotesViewAll", releaseNotesLoadMore: "releaseNotesLoadMore" }, ngImport: i0, template: "<pt-card [config]=\"pageSkeletonConfig.backgroundCardConfig!\">\n <pt-nav-bar-menu\n [navBarMenuConfig]=\"pageSkeletonConfig.navBarMenuConfig\"\n [serverDateTime]=\"serverDateTime\"\n [notifications]=\"notifications\"\n [notificationConfig]=\"notificationConfig\"\n [notificationTotalRecords]=\"notificationTotalRecords\"\n [notificationTotalUnreadRecords]=\"notificationTotalUnreadRecords\"\n [notificationPage]=\"notificationPage\"\n [notificationRows]=\"notificationRows\"\n [notificationLoading]=\"notificationLoading\"\n [releaseNotes]=\"releaseNotes\"\n [releaseNotesConfig]=\"releaseNotesConfig\"\n [releaseNotesLoading]=\"releaseNotesLoading\"\n [releaseNotesHasMore]=\"releaseNotesHasMore\"\n [releaseNotesPageSize]=\"releaseNotesPageSize\"\n [releaseNotesTotalUnreadRecords]=\"releaseNotesTotalUnreadRecords\"\n (toggleSidebar)=\"onToggleSidebar()\"\n (notificationClick)=\"onNotificationClick($event)\"\n (notificationAction)=\"onNotificationAction($event)\"\n (notificationGlobalAction)=\"onNotificationGlobalAction($event)\"\n (notificationViewAll)=\"onNotificationViewAll()\"\n (notificationLoadMore)=\"onNotificationLoadMore($event)\"\n (notificationPanelOpened)=\"onNotificationPanelOpened()\"\n (notificationPanelClosed)=\"onNotificationPanelClosed()\"\n (releaseNoteClick)=\"onReleaseNoteClick($event)\"\n (releaseNotesViewAll)=\"onReleaseNotesViewAll()\"\n (releaseNotesLoadMore)=\"onReleaseNotesLoadMore($event)\"\n ></pt-nav-bar-menu>\n\n <div class=\"main-content\">\n @if (pageSkeletonConfig.sideMenuBarConfig) {\n <pt-side-bar-menu\n class=\"sidebar\"\n [menuConfig]=\"pageSkeletonConfig.sideMenuBarConfig\"\n [ngClass]=\"{\n hidden: !isSidebarVisible,\n }\"\n ></pt-side-bar-menu>\n }\n\n <div\n class=\"content-area\"\n [ngClass]=\"{\n 'full-width': !isSidebarVisible,\n }\"\n >\n <pt-card [config]=\"pageSkeletonConfig.contentCardConfig\">\n @if (pageSkeletonConfig.breadCrumbConfig) {\n <pt-bread-crumb\n [breadCrumbConfig]=\"pageSkeletonConfig.breadCrumbConfig\"\n class=\"bread-crumb\"\n ></pt-bread-crumb>\n }\n\n <router-outlet></router-outlet>\n </pt-card>\n </div>\n </div>\n</pt-card>\n\n@if (pageSkeletonConfig.footerConfig) {\n <pt-footer\n [footerConfig]=\"pageSkeletonConfig.footerConfig\"\n class=\"pt-footer\"\n ></pt-footer>\n}\n", styles: [".bread-crumb{margin-bottom:15px;color:var(--pt-page-skeleton-breadcrumb-text, inherit)}.app-container{display:flex;flex-direction:column;height:100vh;background:var(--pt-page-skeleton-bg, transparent);color:var(--pt-page-skeleton-text, inherit)}.main-content{display:flex;flex-grow:1;transition:all .3s ease-in-out;background:var(--pt-page-skeleton-main-bg, transparent);color:var(--pt-page-skeleton-text, inherit)}.content-area{flex-grow:1;display:flex;justify-content:center;align-items:flex-start;transition:all .3s ease-in-out;margin-left:14px;width:100%;overflow-x:hidden;background:var(--pt-page-skeleton-content-area-bg, transparent);color:var(--pt-page-skeleton-content-text, inherit)}.sidebar{transition:all .3s ease-in-out;background:var(--pt-page-skeleton-sidebar-bg, transparent);color:var(--pt-page-skeleton-sidebar-text, inherit)}.content-area.full-width{margin-left:0;width:100%}:host{display:block;background:var(--pt-page-skeleton-bg, transparent);color:var(--pt-page-skeleton-text, inherit)}:host>pt-card{width:100%;min-height:100vh;max-width:100%;overflow:hidden;background:var(--pt-page-skeleton-bg, transparent);color:var(--pt-page-skeleton-text, inherit)}.content-area>pt-card{width:100%;height:100%;max-width:100%;overflow:hidden;background:var(--pt-page-skeleton-content-bg, transparent);color:var(--pt-page-skeleton-content-text, inherit)}pt-card .card-body-scrollable{overflow-x:auto}.pt-footer{display:block;width:100%;position:relative;z-index:0;margin-top:0;background:var(--pt-page-skeleton-footer-bg, transparent);color:var(--pt-page-skeleton-footer-text, inherit)}:host ::ng-deep .pt-footer .footer-card,:host ::ng-deep .pt-footer pt-card{height:auto!important;overflow:visible!important;background:var(--pt-page-skeleton-footer-bg, transparent)!important;color:var(--pt-page-skeleton-footer-text, inherit)!important}.footer-card{width:100%;background-color:var(--pt-page-skeleton-footer-bg, transparent);color:var(--pt-page-skeleton-footer-text, inherit)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: PTNavbarMenuComponent, selector: "pt-nav-bar-menu", inputs: ["navBarMenuConfig", "serverDateTime", "notifications", "notificationConfig", "notificationTotalRecords", "notificationTotalUnreadRecords", "notificationPage", "notificationRows", "notificationLoading", "releaseNotes", "releaseNotesConfig", "releaseNotesLoading", "releaseNotesHasMore", "releaseNotesPageSize", "releaseNotesTotalUnreadRecords"], outputs: ["toggleSidebar", "notificationAction", "notificationClick", "notificationPanelOpened", "notificationPanelClosed", "notificationGlobalAction", "notificationViewAll", "notificationLoadMore", "releaseNoteClick", "releaseNotesViewAll", "releaseNotesLoadMore"] }, { kind: "component", type: PTCardComponent, selector: "pt-card", inputs: ["config"] }, { kind: "component", type: PTSideBarMenuComponent, selector: "pt-side-bar-menu", inputs: ["menuConfig"] }, { kind: "directive", type: i1$2.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: PTFooterComponent, selector: "pt-footer", inputs: ["footerConfig"] }, { kind: "component", type: PTBreadCrumbComponent, selector: "pt-bread-crumb", inputs: ["breadCrumbConfig"] }] }); }
|
|
8247
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: PTPageSkeletonComponent, isStandalone: false, selector: "pt-page-skeleton", inputs: { pageSkeletonConfig: "pageSkeletonConfig", serverDateTime: "serverDateTime", notifications: "notifications", notificationConfig: "notificationConfig", notificationTotalRecords: "notificationTotalRecords", notificationTotalUnreadRecords: "notificationTotalUnreadRecords", notificationPage: "notificationPage", notificationRows: "notificationRows", notificationLoading: "notificationLoading", releaseNotes: "releaseNotes", releaseNotesConfig: "releaseNotesConfig", releaseNotesLoading: "releaseNotesLoading", releaseNotesHasMore: "releaseNotesHasMore", releaseNotesPageSize: "releaseNotesPageSize", releaseNotesTotalUnreadRecords: "releaseNotesTotalUnreadRecords" }, outputs: { toggleSidebar: "toggleSidebar", notificationAction: "notificationAction", notificationClick: "notificationClick", notificationPanelOpened: "notificationPanelOpened", notificationPanelClosed: "notificationPanelClosed", notificationGlobalAction: "notificationGlobalAction", notificationViewAll: "notificationViewAll", notificationLoadMore: "notificationLoadMore", releaseNoteClick: "releaseNoteClick", releaseNoteAction: "releaseNoteAction", releaseNoteGlobalAction: "releaseNoteGlobalAction", releaseNotesViewAll: "releaseNotesViewAll", releaseNotesLoadMore: "releaseNotesLoadMore" }, ngImport: i0, template: "<pt-card [config]=\"pageSkeletonConfig.backgroundCardConfig!\">\n <pt-nav-bar-menu\n [navBarMenuConfig]=\"pageSkeletonConfig.navBarMenuConfig\"\n [serverDateTime]=\"serverDateTime\"\n [notifications]=\"notifications\"\n [notificationConfig]=\"notificationConfig\"\n [notificationTotalRecords]=\"notificationTotalRecords\"\n [notificationTotalUnreadRecords]=\"notificationTotalUnreadRecords\"\n [notificationPage]=\"notificationPage\"\n [notificationRows]=\"notificationRows\"\n [notificationLoading]=\"notificationLoading\"\n [releaseNotes]=\"releaseNotes\"\n [releaseNotesConfig]=\"releaseNotesConfig\"\n [releaseNotesLoading]=\"releaseNotesLoading\"\n [releaseNotesHasMore]=\"releaseNotesHasMore\"\n [releaseNotesPageSize]=\"releaseNotesPageSize\"\n [releaseNotesTotalUnreadRecords]=\"releaseNotesTotalUnreadRecords\"\n (toggleSidebar)=\"onToggleSidebar()\"\n (notificationClick)=\"onNotificationClick($event)\"\n (notificationAction)=\"onNotificationAction($event)\"\n (notificationGlobalAction)=\"onNotificationGlobalAction($event)\"\n (notificationViewAll)=\"onNotificationViewAll()\"\n (notificationLoadMore)=\"onNotificationLoadMore($event)\"\n (notificationPanelOpened)=\"onNotificationPanelOpened()\"\n (notificationPanelClosed)=\"onNotificationPanelClosed()\"\n (releaseNoteClick)=\"onReleaseNoteClick($event)\"\n (releaseNoteAction)=\"onReleaseNoteAction($event)\"\n (releaseNoteGlobalAction)=\"onReleaseNoteGlobalAction($event)\"\n (releaseNotesViewAll)=\"onReleaseNotesViewAll()\"\n (releaseNotesLoadMore)=\"onReleaseNotesLoadMore($event)\"\n ></pt-nav-bar-menu>\n\n <div class=\"main-content\">\n @if (pageSkeletonConfig.sideMenuBarConfig) {\n <pt-side-bar-menu\n class=\"sidebar\"\n [menuConfig]=\"pageSkeletonConfig.sideMenuBarConfig\"\n [ngClass]=\"{\n hidden: !isSidebarVisible,\n }\"\n ></pt-side-bar-menu>\n }\n\n <div\n class=\"content-area\"\n [ngClass]=\"{\n 'full-width': !isSidebarVisible,\n }\"\n >\n <pt-card [config]=\"pageSkeletonConfig.contentCardConfig\">\n @if (pageSkeletonConfig.breadCrumbConfig) {\n <pt-bread-crumb\n [breadCrumbConfig]=\"pageSkeletonConfig.breadCrumbConfig\"\n class=\"bread-crumb\"\n ></pt-bread-crumb>\n }\n\n <router-outlet></router-outlet>\n </pt-card>\n </div>\n </div>\n</pt-card>\n\n@if (pageSkeletonConfig.footerConfig) {\n <pt-footer\n [footerConfig]=\"pageSkeletonConfig.footerConfig\"\n class=\"pt-footer\"\n ></pt-footer>\n}\n", styles: [".bread-crumb{margin-bottom:15px;color:var(--pt-page-skeleton-breadcrumb-text, inherit)}.app-container{display:flex;flex-direction:column;height:100vh;background:var(--pt-page-skeleton-bg, transparent);color:var(--pt-page-skeleton-text, inherit)}.main-content{display:flex;flex-grow:1;transition:all .3s ease-in-out;background:var(--pt-page-skeleton-main-bg, transparent);color:var(--pt-page-skeleton-text, inherit)}.content-area{flex-grow:1;display:flex;justify-content:center;align-items:flex-start;transition:all .3s ease-in-out;margin-left:14px;width:100%;overflow-x:hidden;background:var(--pt-page-skeleton-content-area-bg, transparent);color:var(--pt-page-skeleton-content-text, inherit)}.sidebar{transition:all .3s ease-in-out;background:var(--pt-page-skeleton-sidebar-bg, transparent);color:var(--pt-page-skeleton-sidebar-text, inherit)}.content-area.full-width{margin-left:0;width:100%}:host{display:block;background:var(--pt-page-skeleton-bg, transparent);color:var(--pt-page-skeleton-text, inherit)}:host>pt-card{width:100%;min-height:100vh;max-width:100%;overflow:hidden;background:var(--pt-page-skeleton-bg, transparent);color:var(--pt-page-skeleton-text, inherit)}.content-area>pt-card{width:100%;height:100%;max-width:100%;overflow:hidden;background:var(--pt-page-skeleton-content-bg, transparent);color:var(--pt-page-skeleton-content-text, inherit)}pt-card .card-body-scrollable{overflow-x:auto}.pt-footer{display:block;width:100%;position:relative;z-index:0;margin-top:0;background:var(--pt-page-skeleton-footer-bg, transparent);color:var(--pt-page-skeleton-footer-text, inherit)}:host ::ng-deep .pt-footer .footer-card,:host ::ng-deep .pt-footer pt-card{height:auto!important;overflow:visible!important;background:var(--pt-page-skeleton-footer-bg, transparent)!important;color:var(--pt-page-skeleton-footer-text, inherit)!important}.footer-card{width:100%;background-color:var(--pt-page-skeleton-footer-bg, transparent);color:var(--pt-page-skeleton-footer-text, inherit)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: PTNavbarMenuComponent, selector: "pt-nav-bar-menu", inputs: ["navBarMenuConfig", "serverDateTime", "notifications", "notificationConfig", "notificationTotalRecords", "notificationTotalUnreadRecords", "notificationPage", "notificationRows", "notificationLoading", "releaseNotes", "releaseNotesConfig", "releaseNotesLoading", "releaseNotesHasMore", "releaseNotesPageSize", "releaseNotesTotalUnreadRecords"], outputs: ["toggleSidebar", "notificationAction", "notificationClick", "notificationPanelOpened", "notificationPanelClosed", "notificationGlobalAction", "notificationViewAll", "notificationLoadMore", "releaseNoteClick", "releaseNoteAction", "releaseNoteGlobalAction", "releaseNotesViewAll", "releaseNotesLoadMore"] }, { kind: "component", type: PTCardComponent, selector: "pt-card", inputs: ["config"] }, { kind: "component", type: PTSideBarMenuComponent, selector: "pt-side-bar-menu", inputs: ["menuConfig"] }, { kind: "directive", type: i1$2.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: PTFooterComponent, selector: "pt-footer", inputs: ["footerConfig"] }, { kind: "component", type: PTBreadCrumbComponent, selector: "pt-bread-crumb", inputs: ["breadCrumbConfig"] }] }); }
|
|
8007
8248
|
}
|
|
8008
8249
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTPageSkeletonComponent, decorators: [{
|
|
8009
8250
|
type: Component,
|
|
8010
|
-
args: [{ selector: 'pt-page-skeleton', standalone: false, template: "<pt-card [config]=\"pageSkeletonConfig.backgroundCardConfig!\">\n <pt-nav-bar-menu\n [navBarMenuConfig]=\"pageSkeletonConfig.navBarMenuConfig\"\n [serverDateTime]=\"serverDateTime\"\n [notifications]=\"notifications\"\n [notificationConfig]=\"notificationConfig\"\n [notificationTotalRecords]=\"notificationTotalRecords\"\n [notificationTotalUnreadRecords]=\"notificationTotalUnreadRecords\"\n [notificationPage]=\"notificationPage\"\n [notificationRows]=\"notificationRows\"\n [notificationLoading]=\"notificationLoading\"\n [releaseNotes]=\"releaseNotes\"\n [releaseNotesConfig]=\"releaseNotesConfig\"\n [releaseNotesLoading]=\"releaseNotesLoading\"\n [releaseNotesHasMore]=\"releaseNotesHasMore\"\n [releaseNotesPageSize]=\"releaseNotesPageSize\"\n [releaseNotesTotalUnreadRecords]=\"releaseNotesTotalUnreadRecords\"\n (toggleSidebar)=\"onToggleSidebar()\"\n (notificationClick)=\"onNotificationClick($event)\"\n (notificationAction)=\"onNotificationAction($event)\"\n (notificationGlobalAction)=\"onNotificationGlobalAction($event)\"\n (notificationViewAll)=\"onNotificationViewAll()\"\n (notificationLoadMore)=\"onNotificationLoadMore($event)\"\n (notificationPanelOpened)=\"onNotificationPanelOpened()\"\n (notificationPanelClosed)=\"onNotificationPanelClosed()\"\n (releaseNoteClick)=\"onReleaseNoteClick($event)\"\n (releaseNotesViewAll)=\"onReleaseNotesViewAll()\"\n (releaseNotesLoadMore)=\"onReleaseNotesLoadMore($event)\"\n ></pt-nav-bar-menu>\n\n <div class=\"main-content\">\n @if (pageSkeletonConfig.sideMenuBarConfig) {\n <pt-side-bar-menu\n class=\"sidebar\"\n [menuConfig]=\"pageSkeletonConfig.sideMenuBarConfig\"\n [ngClass]=\"{\n hidden: !isSidebarVisible,\n }\"\n ></pt-side-bar-menu>\n }\n\n <div\n class=\"content-area\"\n [ngClass]=\"{\n 'full-width': !isSidebarVisible,\n }\"\n >\n <pt-card [config]=\"pageSkeletonConfig.contentCardConfig\">\n @if (pageSkeletonConfig.breadCrumbConfig) {\n <pt-bread-crumb\n [breadCrumbConfig]=\"pageSkeletonConfig.breadCrumbConfig\"\n class=\"bread-crumb\"\n ></pt-bread-crumb>\n }\n\n <router-outlet></router-outlet>\n </pt-card>\n </div>\n </div>\n</pt-card>\n\n@if (pageSkeletonConfig.footerConfig) {\n <pt-footer\n [footerConfig]=\"pageSkeletonConfig.footerConfig\"\n class=\"pt-footer\"\n ></pt-footer>\n}\n", styles: [".bread-crumb{margin-bottom:15px;color:var(--pt-page-skeleton-breadcrumb-text, inherit)}.app-container{display:flex;flex-direction:column;height:100vh;background:var(--pt-page-skeleton-bg, transparent);color:var(--pt-page-skeleton-text, inherit)}.main-content{display:flex;flex-grow:1;transition:all .3s ease-in-out;background:var(--pt-page-skeleton-main-bg, transparent);color:var(--pt-page-skeleton-text, inherit)}.content-area{flex-grow:1;display:flex;justify-content:center;align-items:flex-start;transition:all .3s ease-in-out;margin-left:14px;width:100%;overflow-x:hidden;background:var(--pt-page-skeleton-content-area-bg, transparent);color:var(--pt-page-skeleton-content-text, inherit)}.sidebar{transition:all .3s ease-in-out;background:var(--pt-page-skeleton-sidebar-bg, transparent);color:var(--pt-page-skeleton-sidebar-text, inherit)}.content-area.full-width{margin-left:0;width:100%}:host{display:block;background:var(--pt-page-skeleton-bg, transparent);color:var(--pt-page-skeleton-text, inherit)}:host>pt-card{width:100%;min-height:100vh;max-width:100%;overflow:hidden;background:var(--pt-page-skeleton-bg, transparent);color:var(--pt-page-skeleton-text, inherit)}.content-area>pt-card{width:100%;height:100%;max-width:100%;overflow:hidden;background:var(--pt-page-skeleton-content-bg, transparent);color:var(--pt-page-skeleton-content-text, inherit)}pt-card .card-body-scrollable{overflow-x:auto}.pt-footer{display:block;width:100%;position:relative;z-index:0;margin-top:0;background:var(--pt-page-skeleton-footer-bg, transparent);color:var(--pt-page-skeleton-footer-text, inherit)}:host ::ng-deep .pt-footer .footer-card,:host ::ng-deep .pt-footer pt-card{height:auto!important;overflow:visible!important;background:var(--pt-page-skeleton-footer-bg, transparent)!important;color:var(--pt-page-skeleton-footer-text, inherit)!important}.footer-card{width:100%;background-color:var(--pt-page-skeleton-footer-bg, transparent);color:var(--pt-page-skeleton-footer-text, inherit)}\n"] }]
|
|
8251
|
+
args: [{ selector: 'pt-page-skeleton', standalone: false, template: "<pt-card [config]=\"pageSkeletonConfig.backgroundCardConfig!\">\n <pt-nav-bar-menu\n [navBarMenuConfig]=\"pageSkeletonConfig.navBarMenuConfig\"\n [serverDateTime]=\"serverDateTime\"\n [notifications]=\"notifications\"\n [notificationConfig]=\"notificationConfig\"\n [notificationTotalRecords]=\"notificationTotalRecords\"\n [notificationTotalUnreadRecords]=\"notificationTotalUnreadRecords\"\n [notificationPage]=\"notificationPage\"\n [notificationRows]=\"notificationRows\"\n [notificationLoading]=\"notificationLoading\"\n [releaseNotes]=\"releaseNotes\"\n [releaseNotesConfig]=\"releaseNotesConfig\"\n [releaseNotesLoading]=\"releaseNotesLoading\"\n [releaseNotesHasMore]=\"releaseNotesHasMore\"\n [releaseNotesPageSize]=\"releaseNotesPageSize\"\n [releaseNotesTotalUnreadRecords]=\"releaseNotesTotalUnreadRecords\"\n (toggleSidebar)=\"onToggleSidebar()\"\n (notificationClick)=\"onNotificationClick($event)\"\n (notificationAction)=\"onNotificationAction($event)\"\n (notificationGlobalAction)=\"onNotificationGlobalAction($event)\"\n (notificationViewAll)=\"onNotificationViewAll()\"\n (notificationLoadMore)=\"onNotificationLoadMore($event)\"\n (notificationPanelOpened)=\"onNotificationPanelOpened()\"\n (notificationPanelClosed)=\"onNotificationPanelClosed()\"\n (releaseNoteClick)=\"onReleaseNoteClick($event)\"\n (releaseNoteAction)=\"onReleaseNoteAction($event)\"\n (releaseNoteGlobalAction)=\"onReleaseNoteGlobalAction($event)\"\n (releaseNotesViewAll)=\"onReleaseNotesViewAll()\"\n (releaseNotesLoadMore)=\"onReleaseNotesLoadMore($event)\"\n ></pt-nav-bar-menu>\n\n <div class=\"main-content\">\n @if (pageSkeletonConfig.sideMenuBarConfig) {\n <pt-side-bar-menu\n class=\"sidebar\"\n [menuConfig]=\"pageSkeletonConfig.sideMenuBarConfig\"\n [ngClass]=\"{\n hidden: !isSidebarVisible,\n }\"\n ></pt-side-bar-menu>\n }\n\n <div\n class=\"content-area\"\n [ngClass]=\"{\n 'full-width': !isSidebarVisible,\n }\"\n >\n <pt-card [config]=\"pageSkeletonConfig.contentCardConfig\">\n @if (pageSkeletonConfig.breadCrumbConfig) {\n <pt-bread-crumb\n [breadCrumbConfig]=\"pageSkeletonConfig.breadCrumbConfig\"\n class=\"bread-crumb\"\n ></pt-bread-crumb>\n }\n\n <router-outlet></router-outlet>\n </pt-card>\n </div>\n </div>\n</pt-card>\n\n@if (pageSkeletonConfig.footerConfig) {\n <pt-footer\n [footerConfig]=\"pageSkeletonConfig.footerConfig\"\n class=\"pt-footer\"\n ></pt-footer>\n}\n", styles: [".bread-crumb{margin-bottom:15px;color:var(--pt-page-skeleton-breadcrumb-text, inherit)}.app-container{display:flex;flex-direction:column;height:100vh;background:var(--pt-page-skeleton-bg, transparent);color:var(--pt-page-skeleton-text, inherit)}.main-content{display:flex;flex-grow:1;transition:all .3s ease-in-out;background:var(--pt-page-skeleton-main-bg, transparent);color:var(--pt-page-skeleton-text, inherit)}.content-area{flex-grow:1;display:flex;justify-content:center;align-items:flex-start;transition:all .3s ease-in-out;margin-left:14px;width:100%;overflow-x:hidden;background:var(--pt-page-skeleton-content-area-bg, transparent);color:var(--pt-page-skeleton-content-text, inherit)}.sidebar{transition:all .3s ease-in-out;background:var(--pt-page-skeleton-sidebar-bg, transparent);color:var(--pt-page-skeleton-sidebar-text, inherit)}.content-area.full-width{margin-left:0;width:100%}:host{display:block;background:var(--pt-page-skeleton-bg, transparent);color:var(--pt-page-skeleton-text, inherit)}:host>pt-card{width:100%;min-height:100vh;max-width:100%;overflow:hidden;background:var(--pt-page-skeleton-bg, transparent);color:var(--pt-page-skeleton-text, inherit)}.content-area>pt-card{width:100%;height:100%;max-width:100%;overflow:hidden;background:var(--pt-page-skeleton-content-bg, transparent);color:var(--pt-page-skeleton-content-text, inherit)}pt-card .card-body-scrollable{overflow-x:auto}.pt-footer{display:block;width:100%;position:relative;z-index:0;margin-top:0;background:var(--pt-page-skeleton-footer-bg, transparent);color:var(--pt-page-skeleton-footer-text, inherit)}:host ::ng-deep .pt-footer .footer-card,:host ::ng-deep .pt-footer pt-card{height:auto!important;overflow:visible!important;background:var(--pt-page-skeleton-footer-bg, transparent)!important;color:var(--pt-page-skeleton-footer-text, inherit)!important}.footer-card{width:100%;background-color:var(--pt-page-skeleton-footer-bg, transparent);color:var(--pt-page-skeleton-footer-text, inherit)}\n"] }]
|
|
8011
8252
|
}], propDecorators: { pageSkeletonConfig: [{
|
|
8012
8253
|
type: Input
|
|
8013
8254
|
}], serverDateTime: [{
|
|
@@ -8056,6 +8297,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
8056
8297
|
type: Output
|
|
8057
8298
|
}], releaseNoteClick: [{
|
|
8058
8299
|
type: Output
|
|
8300
|
+
}], releaseNoteAction: [{
|
|
8301
|
+
type: Output
|
|
8302
|
+
}], releaseNoteGlobalAction: [{
|
|
8303
|
+
type: Output
|
|
8059
8304
|
}], releaseNotesViewAll: [{
|
|
8060
8305
|
type: Output
|
|
8061
8306
|
}], releaseNotesLoadMore: [{
|
|
@@ -8774,7 +9019,7 @@ class PTToastNotifierComponent {
|
|
|
8774
9019
|
this.messageService.clear();
|
|
8775
9020
|
}
|
|
8776
9021
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTToastNotifierComponent, deps: [{ token: i1$1.MessageService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8777
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.14", type: PTToastNotifierComponent, isStandalone: false, selector: "pt-toast-notifier", ngImport: i0, template: "<p-toast position=\"top-right\"></p-toast>\n", dependencies: [{ kind: "component", type: i2$
|
|
9022
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.14", type: PTToastNotifierComponent, isStandalone: false, selector: "pt-toast-notifier", ngImport: i0, template: "<p-toast position=\"top-right\"></p-toast>\n", dependencies: [{ kind: "component", type: i2$2.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "motionOptions", "breakpoints"], outputs: ["onClose"] }] }); }
|
|
8778
9023
|
}
|
|
8779
9024
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTToastNotifierComponent, decorators: [{
|
|
8780
9025
|
type: Component,
|
|
@@ -8945,7 +9190,7 @@ class PTDialogComponent {
|
|
|
8945
9190
|
return this.removeTextUtilityClasses(this.config.headerIconClass);
|
|
8946
9191
|
}
|
|
8947
9192
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8948
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: PTDialogComponent, isStandalone: false, selector: "pt-dialog", inputs: { config: "config", visible: "visible" }, outputs: { visibleChange: "visibleChange" }, host: { listeners: { "document:keydown.escape": "onEscape()" } }, ngImport: i0, template: "<p-dialog\n [visible]=\"_internalVisible\"\n (visibleChange)=\"onInternalVisibleChange($event)\"\n [header]=\"config.header\"\n [modal]=\"config.modal\"\n [style]=\"config.style\"\n [breakpoints]=\"config.breakpoints\"\n [closable]=\"config.closable\"\n [draggable]=\"config.draggable && !isFullscreen\"\n [resizable]=\"config.resizable && !isFullscreen\"\n [maximizable]=\"false\"\n [dismissableMask]=\"config.dismissableMask\"\n [closeOnEscape]=\"false\"\n [blockScroll]=\"config.blockScroll\"\n [position]=\"primePosition\"\n [contentStyle]=\"config.contentStyle\"\n [styleClass]=\"dialogStyleClass\"\n >\n <ng-template pTemplate=\"header\">\n <div class=\"pt-dialog-header-inner\">\n <div class=\"pt-dialog-header-left\">\n @if (config.headerIconClass) {\n <i\n class=\"pt-dialog-header-icon\"\n [ngClass]=\"safeHeaderIconClass\"\n [ngStyle]=\"headerIconStyle\"\n ></i>\n }\n\n <ng-content select=\"[ptDialogHeader]\"></ng-content>\n\n @if (config.header) {\n <span\n class=\"pt-dialog-header-title\"\n [ngStyle]=\"headerTitleStyle\"\n >\n {{ config.header }}\n </span>\n }\n </div>\n\n <div class=\"pt-dialog-header-actions\">\n <button\n type=\"button\"\n class=\"pt-dialog-header-btn\"\n [title]=\"isFullscreen ? 'R\u00E9duire' : 'Plein \u00E9cran'\"\n (click)=\"toggleFullscreen()\"\n >\n <i\n class=\"pi\"\n [ngClass]=\"\n isFullscreen ? 'pi-window-minimize' : 'pi-window-maximize'\n \"\n ></i>\n </button>\n </div>\n </div>\n </ng-template>\n\n <div class=\"pt-dialog-body\" [ngStyle]=\"bodyStyle\">\n <div class=\"pt-dialog-body-inner\">\n <ng-content select=\"[ptDialogContent]\"></ng-content>\n <ng-content></ng-content>\n </div>\n </div>\n\n @if (config.showFooter !== false) {\n <ng-template pTemplate=\"footer\">\n <div class=\"pt-dialog-footer-buttons\">\n <ng-content select=\"[ptDialogFooter]\"></ng-content>\n </div>\n </ng-template>\n }\n</p-dialog>\n", styles: [":host ::ng-deep .p-dialog.pt-dialog-overlay{border-radius:18px;overflow:hidden!important;box-shadow:var(--pt-dialog-shadow, 0 20px 45px rgba(15, 23, 42, .35));background:var(--pt-dialog-bg, #ffffff);color:var(--pt-dialog-text, #0f172a);z-index:1200!important}:host ::ng-deep .p-dialog.pt-dialog-overlay .p-dialog-header{overflow:hidden!important;flex:0 0 auto;background:var(--pt-dialog-header-bg, #ffffff);color:var(--pt-dialog-header-text, #0f172a)}:host ::ng-deep .p-dialog.pt-dialog-overlay .p-dialog-content{overflow:hidden!important;position:relative;z-index:1;background:var(--pt-dialog-bg, #ffffff);color:var(--pt-dialog-text, #0f172a)}:host ::ng-deep .p-dialog.pt-dialog-overlay .p-dialog-footer{overflow:hidden!important;flex:0 0 auto}:host ::ng-deep .p-datepicker,:host ::ng-deep .p-datepicker-panel,:host ::ng-deep .p-calendar-panel{z-index:99999!important}:host ::ng-deep .p-dialog.pt-dialog-info .p-dialog-header{background-color:var(--pt-dialog-info-header-bg, #e0f2fe);border-bottom:0}:host ::ng-deep .p-dialog.pt-dialog-success .p-dialog-header{background-color:var(--pt-dialog-success-header-bg, #dcfce7);border-bottom:0}:host ::ng-deep .p-dialog.pt-dialog-warning .p-dialog-header{background-color:var(--pt-dialog-warning-header-bg, #fff4d1);border-bottom:0}:host ::ng-deep .p-dialog.pt-dialog-danger .p-dialog-header{background-color:var(--pt-dialog-danger-header-bg, #fde4e4);border-bottom:0}.pt-dialog-header-inner{width:100%;padding:1rem 1rem .75rem;display:flex;align-items:center;justify-content:space-between}.pt-dialog-header-left{min-width:0;display:flex;align-items:center}.pt-dialog-header-icon{margin-right:.5rem;flex:0 0 auto}.pt-dialog-header-title{font-weight:700;font-size:1.125rem;overflow-wrap:anywhere}.pt-dialog-header-actions{margin-left:auto;display:flex;align-items:center;gap:.5rem;flex:0 0 auto}.pt-dialog-header-btn{width:34px;height:34px;border-radius:10px;border:1px solid var(--pt-dialog-header-btn-border, rgba(148, 163, 184, .3));background:var(--pt-dialog-header-btn-bg, rgba(255, 255, 255, .65));color:var(--pt-dialog-header-btn-color, #334155);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .2s ease,border-color .2s ease,transform .2s ease}.pt-dialog-header-btn:hover{background:var(--pt-dialog-header-btn-hover-bg, rgba(255, 255, 255, .9));border-color:var( --pt-dialog-header-btn-hover-border, rgba(100, 116, 139, .5) );transform:translateY(-1px)}.pt-dialog-header-btn i{font-size:.95rem}:host ::ng-deep .p-dialog.pt-dialog-info .pt-dialog-header-title,:host ::ng-deep .p-dialog.pt-dialog-info .pt-dialog-header-icon{color:var(--pt-dialog-info-header-text, #2563eb)}:host ::ng-deep .p-dialog.pt-dialog-success .pt-dialog-header-title,:host ::ng-deep .p-dialog.pt-dialog-success .pt-dialog-header-icon{color:var(--pt-dialog-success-header-text, #15803d)}:host ::ng-deep .p-dialog.pt-dialog-warning .pt-dialog-header-title,:host ::ng-deep .p-dialog.pt-dialog-warning .pt-dialog-header-icon{color:var(--pt-dialog-warning-header-text, #b45309)}:host ::ng-deep .p-dialog.pt-dialog-danger .pt-dialog-header-title,:host ::ng-deep .p-dialog.pt-dialog-danger .pt-dialog-header-icon{color:var(--pt-dialog-danger-header-text, #b91c1c)}.pt-dialog-body{padding:1.25rem 1rem 1rem;display:flex;justify-content:center;width:100%;max-width:100%;box-sizing:border-box;overflow:auto!important;background:var(--pt-dialog-bg, #ffffff);color:var(--pt-dialog-text, #0f172a)}.pt-dialog-body-inner{width:100%;max-width:100%;min-width:0;display:flex;flex-direction:column;gap:.75rem;box-sizing:border-box;overflow:visible}:host ::ng-deep .p-dialog.pt-dialog-overlay .p-dialog-footer{background:var(--pt-dialog-footer-bg, #ffffff)!important;border-top:1px solid var(--pt-dialog-footer-border, rgba(148, 163, 184, .25))!important;padding:16px 32px 22px!important}.pt-dialog-footer-buttons{display:flex;justify-content:center;gap:16px}:host ::ng-deep .p-dialog.pt-dialog-overlay .p-dialog-footer .p-button{border-radius:9999px;padding:.75rem 1.8rem;font-weight:600}:host ::ng-deep .p-dialog.pt-dialog-overlay .p-dialog-footer .p-button i.pi,:host ::ng-deep .p-dialog.pt-dialog-overlay .p-dialog-footer .p-button i.fa{margin-right:.5rem}:host ::ng-deep .p-dialog.pt-dialog-danger .p-dialog-footer .p-button:not(.p-button-success):not(.p-button-warning):not(.p-button-danger):not(.p-button-info):not(.p-button-secondary):not(.p-button-help){background:var(--pt-dialog-danger-button-bg, #ffffff)!important;border-color:var(--pt-dialog-danger-button-border, #dc2626)!important;color:var(--pt-dialog-danger-button-text, #dc2626)!important}:host ::ng-deep .p-dialog.pt-dialog-warning .p-dialog-footer .p-button:not(.p-button-success):not(.p-button-warning):not(.p-button-danger):not(.p-button-info):not(.p-button-secondary):not(.p-button-help){background:var(--pt-dialog-warning-button-bg, #ffffff)!important;border-color:var(--pt-dialog-warning-button-border, #d97706)!important;color:var(--pt-dialog-warning-button-text, #b45309)!important}:host ::ng-deep .p-dialog.pt-dialog-success .p-dialog-footer .p-button:not(.p-button-success):not(.p-button-warning):not(.p-button-danger):not(.p-button-info):not(.p-button-secondary):not(.p-button-help){background:var(--pt-dialog-success-button-bg, #ffffff)!important;border-color:var(--pt-dialog-success-button-border, #16a34a)!important;color:var(--pt-dialog-success-button-text, #15803d)!important}:host ::ng-deep .p-dialog.pt-dialog-info .p-dialog-footer .p-button:not(.p-button-success):not(.p-button-warning):not(.p-button-danger):not(.p-button-info):not(.p-button-secondary):not(.p-button-help){background:var(--pt-dialog-info-button-bg, #ffffff)!important;border-color:var(--pt-dialog-info-button-border, #2563eb)!important;color:var(--pt-dialog-info-button-text, #2563eb)!important}:host ::ng-deep .p-dialog.pt-dialog-info .p-dialog-footer .p-button:not(.p-button-success):not(.p-button-warning):not(.p-button-danger):not(.p-button-info):not(.p-button-secondary):not(.p-button-help):hover{background:var(--pt-dialog-info-button-hover-bg, #eff6ff)!important}:host ::ng-deep .p-dialog.pt-dialog-fullscreen{position:fixed!important;inset:1rem!important;width:auto!important;max-width:none!important;height:calc(100vh - 2rem)!important;max-height:calc(100vh - 2rem)!important;margin:0!important;transform:none!important;display:flex!important;flex-direction:column!important}:host ::ng-deep .p-dialog.pt-dialog-fullscreen .p-dialog-header{flex:0 0 auto}:host ::ng-deep .p-dialog.pt-dialog-fullscreen .p-dialog-content{flex:1 1 auto!important;height:auto!important;min-height:0!important;max-height:none!important;overflow:hidden!important;display:flex;flex-direction:column}:host ::ng-deep .p-dialog.pt-dialog-fullscreen .pt-dialog-body{flex:1 1 auto;min-height:0;height:auto!important;max-height:none!important;overflow:auto!important}:host ::ng-deep .p-dialog.pt-dialog-fullscreen .pt-dialog-body-inner{flex:1 1 auto;min-height:0;height:auto!important;overflow:visible}:host ::ng-deep .p-dialog.pt-dialog-fullscreen .p-dialog-footer{flex:0 0 auto}@media(max-width:768px){.pt-dialog-header-inner{padding:.85rem .85rem .65rem}.pt-dialog-header-title{font-size:1rem}.pt-dialog-body{padding:.85rem}:host ::ng-deep .p-dialog.pt-dialog-overlay .p-dialog-footer{padding:14px 20px 18px!important}.pt-dialog-footer-buttons{flex-wrap:wrap;gap:10px}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2$4.Dialog, selector: "p-dialog", inputs: ["hostName", "header", "draggable", "resizable", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "maskMotionOptions", "motionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "appendTo", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "directive", type: i1$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }] }); }
|
|
9193
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: PTDialogComponent, isStandalone: false, selector: "pt-dialog", inputs: { config: "config", visible: "visible" }, outputs: { visibleChange: "visibleChange" }, host: { listeners: { "document:keydown.escape": "onEscape()" } }, ngImport: i0, template: "<p-dialog\n [visible]=\"_internalVisible\"\n (visibleChange)=\"onInternalVisibleChange($event)\"\n [header]=\"config.header\"\n [modal]=\"config.modal\"\n [style]=\"config.style\"\n [breakpoints]=\"config.breakpoints\"\n [closable]=\"config.closable\"\n [draggable]=\"config.draggable && !isFullscreen\"\n [resizable]=\"config.resizable && !isFullscreen\"\n [maximizable]=\"false\"\n [dismissableMask]=\"config.dismissableMask\"\n [closeOnEscape]=\"false\"\n [blockScroll]=\"config.blockScroll\"\n [position]=\"primePosition\"\n [contentStyle]=\"config.contentStyle\"\n [styleClass]=\"dialogStyleClass\"\n >\n <ng-template pTemplate=\"header\">\n <div class=\"pt-dialog-header-inner\">\n <div class=\"pt-dialog-header-left\">\n @if (config.headerIconClass) {\n <i\n class=\"pt-dialog-header-icon\"\n [ngClass]=\"safeHeaderIconClass\"\n [ngStyle]=\"headerIconStyle\"\n ></i>\n }\n\n <ng-content select=\"[ptDialogHeader]\"></ng-content>\n\n @if (config.header) {\n <span\n class=\"pt-dialog-header-title\"\n [ngStyle]=\"headerTitleStyle\"\n >\n {{ config.header }}\n </span>\n }\n </div>\n\n <div class=\"pt-dialog-header-actions\">\n <button\n type=\"button\"\n class=\"pt-dialog-header-btn\"\n [title]=\"isFullscreen ? 'R\u00E9duire' : 'Plein \u00E9cran'\"\n (click)=\"toggleFullscreen()\"\n >\n <i\n class=\"pi\"\n [ngClass]=\"\n isFullscreen ? 'pi-window-minimize' : 'pi-window-maximize'\n \"\n ></i>\n </button>\n </div>\n </div>\n </ng-template>\n\n <div class=\"pt-dialog-body\" [ngStyle]=\"bodyStyle\">\n <div class=\"pt-dialog-body-inner\">\n <ng-content select=\"[ptDialogContent]\"></ng-content>\n <ng-content></ng-content>\n </div>\n </div>\n\n @if (config.showFooter !== false) {\n <ng-template pTemplate=\"footer\">\n <div class=\"pt-dialog-footer-buttons\">\n <ng-content select=\"[ptDialogFooter]\"></ng-content>\n </div>\n </ng-template>\n }\n</p-dialog>\n", styles: [":host ::ng-deep .p-dialog.pt-dialog-overlay{border-radius:18px;overflow:hidden!important;box-shadow:var(--pt-dialog-shadow, 0 20px 45px rgba(15, 23, 42, .35));background:var(--pt-dialog-bg, #ffffff);color:var(--pt-dialog-text, #0f172a);z-index:1200!important}:host ::ng-deep .p-dialog.pt-dialog-overlay .p-dialog-header{overflow:hidden!important;flex:0 0 auto;background:var(--pt-dialog-header-bg, #ffffff);color:var(--pt-dialog-header-text, #0f172a)}:host ::ng-deep .p-dialog.pt-dialog-overlay .p-dialog-content{overflow:hidden!important;position:relative;z-index:1;background:var(--pt-dialog-bg, #ffffff);color:var(--pt-dialog-text, #0f172a)}:host ::ng-deep .p-dialog.pt-dialog-overlay .p-dialog-footer{overflow:hidden!important;flex:0 0 auto}:host ::ng-deep .p-datepicker,:host ::ng-deep .p-datepicker-panel,:host ::ng-deep .p-calendar-panel{z-index:99999!important}:host ::ng-deep .p-dialog.pt-dialog-info .p-dialog-header{background-color:var(--pt-dialog-info-header-bg, #e0f2fe);border-bottom:0}:host ::ng-deep .p-dialog.pt-dialog-success .p-dialog-header{background-color:var(--pt-dialog-success-header-bg, #dcfce7);border-bottom:0}:host ::ng-deep .p-dialog.pt-dialog-warning .p-dialog-header{background-color:var(--pt-dialog-warning-header-bg, #fff4d1);border-bottom:0}:host ::ng-deep .p-dialog.pt-dialog-danger .p-dialog-header{background-color:var(--pt-dialog-danger-header-bg, #fde4e4);border-bottom:0}.pt-dialog-header-inner{width:100%;padding:1rem 1rem .75rem;display:flex;align-items:center;justify-content:space-between}.pt-dialog-header-left{min-width:0;display:flex;align-items:center}.pt-dialog-header-icon{margin-right:.5rem;flex:0 0 auto}.pt-dialog-header-title{font-weight:700;font-size:1.125rem;overflow-wrap:anywhere}.pt-dialog-header-actions{margin-left:auto;display:flex;align-items:center;gap:.5rem;flex:0 0 auto}.pt-dialog-header-btn{width:34px;height:34px;border-radius:10px;border:1px solid var(--pt-dialog-header-btn-border, rgba(148, 163, 184, .3));background:var(--pt-dialog-header-btn-bg, rgba(255, 255, 255, .65));color:var(--pt-dialog-header-btn-color, #334155);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .2s ease,border-color .2s ease,transform .2s ease}.pt-dialog-header-btn:hover{background:var(--pt-dialog-header-btn-hover-bg, rgba(255, 255, 255, .9));border-color:var( --pt-dialog-header-btn-hover-border, rgba(100, 116, 139, .5) );transform:translateY(-1px)}.pt-dialog-header-btn i{font-size:.95rem}:host ::ng-deep .p-dialog.pt-dialog-info .pt-dialog-header-title,:host ::ng-deep .p-dialog.pt-dialog-info .pt-dialog-header-icon{color:var(--pt-dialog-info-header-text, #2563eb)}:host ::ng-deep .p-dialog.pt-dialog-success .pt-dialog-header-title,:host ::ng-deep .p-dialog.pt-dialog-success .pt-dialog-header-icon{color:var(--pt-dialog-success-header-text, #15803d)}:host ::ng-deep .p-dialog.pt-dialog-warning .pt-dialog-header-title,:host ::ng-deep .p-dialog.pt-dialog-warning .pt-dialog-header-icon{color:var(--pt-dialog-warning-header-text, #b45309)}:host ::ng-deep .p-dialog.pt-dialog-danger .pt-dialog-header-title,:host ::ng-deep .p-dialog.pt-dialog-danger .pt-dialog-header-icon{color:var(--pt-dialog-danger-header-text, #b91c1c)}.pt-dialog-body{padding:1.25rem 1rem 1rem;display:flex;justify-content:center;width:100%;max-width:100%;box-sizing:border-box;overflow:auto!important;background:var(--pt-dialog-bg, #ffffff);color:var(--pt-dialog-text, #0f172a)}.pt-dialog-body-inner{width:100%;max-width:100%;min-width:0;display:flex;flex-direction:column;gap:.75rem;box-sizing:border-box;overflow:visible}:host ::ng-deep .p-dialog.pt-dialog-overlay .p-dialog-footer{background:var(--pt-dialog-footer-bg, #ffffff)!important;border-top:1px solid var(--pt-dialog-footer-border, rgba(148, 163, 184, .25))!important;padding:16px 32px 22px!important}.pt-dialog-footer-buttons{display:flex;justify-content:center;gap:16px}:host ::ng-deep .p-dialog.pt-dialog-overlay .p-dialog-footer .p-button{border-radius:9999px;padding:.75rem 1.8rem;font-weight:600}:host ::ng-deep .p-dialog.pt-dialog-overlay .p-dialog-footer .p-button i.pi,:host ::ng-deep .p-dialog.pt-dialog-overlay .p-dialog-footer .p-button i.fa{margin-right:.5rem}:host ::ng-deep .p-dialog.pt-dialog-danger .p-dialog-footer .p-button:not(.p-button-success):not(.p-button-warning):not(.p-button-danger):not(.p-button-info):not(.p-button-secondary):not(.p-button-help){background:var(--pt-dialog-danger-button-bg, #ffffff)!important;border-color:var(--pt-dialog-danger-button-border, #dc2626)!important;color:var(--pt-dialog-danger-button-text, #dc2626)!important}:host ::ng-deep .p-dialog.pt-dialog-warning .p-dialog-footer .p-button:not(.p-button-success):not(.p-button-warning):not(.p-button-danger):not(.p-button-info):not(.p-button-secondary):not(.p-button-help){background:var(--pt-dialog-warning-button-bg, #ffffff)!important;border-color:var(--pt-dialog-warning-button-border, #d97706)!important;color:var(--pt-dialog-warning-button-text, #b45309)!important}:host ::ng-deep .p-dialog.pt-dialog-success .p-dialog-footer .p-button:not(.p-button-success):not(.p-button-warning):not(.p-button-danger):not(.p-button-info):not(.p-button-secondary):not(.p-button-help){background:var(--pt-dialog-success-button-bg, #ffffff)!important;border-color:var(--pt-dialog-success-button-border, #16a34a)!important;color:var(--pt-dialog-success-button-text, #15803d)!important}:host ::ng-deep .p-dialog.pt-dialog-info .p-dialog-footer .p-button:not(.p-button-success):not(.p-button-warning):not(.p-button-danger):not(.p-button-info):not(.p-button-secondary):not(.p-button-help){background:var(--pt-dialog-info-button-bg, #ffffff)!important;border-color:var(--pt-dialog-info-button-border, #2563eb)!important;color:var(--pt-dialog-info-button-text, #2563eb)!important}:host ::ng-deep .p-dialog.pt-dialog-info .p-dialog-footer .p-button:not(.p-button-success):not(.p-button-warning):not(.p-button-danger):not(.p-button-info):not(.p-button-secondary):not(.p-button-help):hover{background:var(--pt-dialog-info-button-hover-bg, #eff6ff)!important}:host ::ng-deep .p-dialog.pt-dialog-fullscreen{position:fixed!important;inset:1rem!important;width:auto!important;max-width:none!important;height:calc(100vh - 2rem)!important;max-height:calc(100vh - 2rem)!important;margin:0!important;transform:none!important;display:flex!important;flex-direction:column!important}:host ::ng-deep .p-dialog.pt-dialog-fullscreen .p-dialog-header{flex:0 0 auto}:host ::ng-deep .p-dialog.pt-dialog-fullscreen .p-dialog-content{flex:1 1 auto!important;height:auto!important;min-height:0!important;max-height:none!important;overflow:hidden!important;display:flex;flex-direction:column}:host ::ng-deep .p-dialog.pt-dialog-fullscreen .pt-dialog-body{flex:1 1 auto;min-height:0;height:auto!important;max-height:none!important;overflow:auto!important}:host ::ng-deep .p-dialog.pt-dialog-fullscreen .pt-dialog-body-inner{flex:1 1 auto;min-height:0;height:auto!important;overflow:visible}:host ::ng-deep .p-dialog.pt-dialog-fullscreen .p-dialog-footer{flex:0 0 auto}@media(max-width:768px){.pt-dialog-header-inner{padding:.85rem .85rem .65rem}.pt-dialog-header-title{font-size:1rem}.pt-dialog-body{padding:.85rem}:host ::ng-deep .p-dialog.pt-dialog-overlay .p-dialog-footer{padding:14px 20px 18px!important}.pt-dialog-footer-buttons{flex-wrap:wrap;gap:10px}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2$3.Dialog, selector: "p-dialog", inputs: ["hostName", "header", "draggable", "resizable", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "maskMotionOptions", "motionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "appendTo", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "directive", type: i1$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }] }); }
|
|
8949
9194
|
}
|
|
8950
9195
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTDialogComponent, decorators: [{
|
|
8951
9196
|
type: Component,
|
|
@@ -9727,7 +9972,7 @@ class PTAccordionComponent {
|
|
|
9727
9972
|
.filter(Boolean));
|
|
9728
9973
|
}
|
|
9729
9974
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTAccordionComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9730
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: PTAccordionComponent, isStandalone: false, selector: "pt-accordion", inputs: { config: "config", value: "value" }, outputs: { valueChange: "valueChange", panelOpen: "panelOpen", panelClose: "panelClose" }, queries: [{ propertyName: "panelTemplates", predicate: PTAccordionPanelDirective }], usesOnChanges: true, ngImport: i0, template: "<!-- ng-prime-tools/projects/ng-prime-tools/src/lib/pt-accordion/pt-accordion.component.html -->\n\n<p-accordion\n [value]=\"value\"\n [multiple]=\"multiple\"\n [expandIcon]=\"expandIcon\"\n [collapseIcon]=\"collapseIcon\"\n [ngClass]=\"getRootClasses()\"\n (valueChange)=\"onValueChange($event)\"\n>\n @for (panel of visiblePanels; track trackPanel($index, panel)) {\n <p-accordion-panel\n [value]=\"panel.value\"\n [disabled]=\"panel.disabled === true\"\n [ngClass]=\"getPanelClasses(panel)\"\n >\n <p-accordion-header>\n <div [ngClass]=\"getHeaderClasses(panel)\">\n <div class=\"pt-accordion-header-main\">\n @if (\n getTitleIconClass(panel) && getTitleIconPosition(panel) === \"left\"\n ) {\n <span\n class=\"pt-accordion-title-icon\"\n [ngStyle]=\"getTitleIconStyles(panel)\"\n >\n <i\n class=\"pt-accordion-title-icon-code\"\n [class]=\"getTitleIconClass(panel)\"\n ></i>\n </span>\n }\n\n <div class=\"pt-accordion-header-text\">\n <span\n class=\"pt-accordion-title\"\n [ngStyle]=\"getTitleStyles(panel)\"\n >\n {{ getTitleText(panel) }}\n </span>\n\n @if (panel.description?.text) {\n <span\n class=\"pt-accordion-description\"\n [ngStyle]=\"getDescriptionStyles(panel)\"\n >\n {{ panel.description?.text }}\n </span>\n }\n </div>\n\n @if (\n getTitleIconClass(panel) &&\n getTitleIconPosition(panel) === \"right\"\n ) {\n <span\n class=\"pt-accordion-title-icon\"\n [ngStyle]=\"getTitleIconStyles(panel)\"\n >\n <i\n class=\"pt-accordion-title-icon-code\"\n [class]=\"getTitleIconClass(panel)\"\n ></i>\n </span>\n }\n </div>\n\n @if (isTagVisible(panel)) {\n <p-tag\n [value]=\"panel.tag?.value ?? ''\"\n [icon]=\"panel.tag?.icon\"\n [severity]=\"getTagSeverity(panel)\"\n [rounded]=\"panel.tag?.rounded === true\"\n [ngClass]=\"getTagClasses(panel)\"\n ></p-tag>\n }\n </div>\n </p-accordion-header>\n\n <p-accordion-content>\n @if (shouldRenderPanelContent(panel)) {\n <div\n [ngClass]=\"getContentClasses(panel)\"\n [ngStyle]=\"getContentStyles(panel)\"\n >\n <div\n class=\"pt-accordion-content-inner\"\n [ngStyle]=\"getContentInnerStyles(panel)\"\n >\n @if (resolvePanelTemplate(panel.value); as panelTemplate) {\n <ng-container\n *ngTemplateOutlet=\"\n panelTemplate;\n context: getTemplateContext(panel)\n \"\n ></ng-container>\n } @else {\n <div class=\"pt-accordion-empty-content\">\n Aucun contenu configur\u00E9.\n </div>\n }\n </div>\n </div>\n }\n </p-accordion-content>\n </p-accordion-panel>\n }\n</p-accordion>\n", styles: [":host{display:block;width:100%;min-width:0;max-width:100%;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:border-box}.pt-accordion{display:block;width:100%;min-width:0;max-width:100%}.pt-accordion-header-content{display:flex;align-items:center;justify-content:space-between;flex:1 1 auto;gap:1rem;width:100%;min-width:0;max-width:100%;overflow:hidden}.pt-accordion-header-main{display:flex;align-items:center;flex:1 1 auto;gap:.85rem;min-width:0;overflow:hidden}.pt-accordion-title-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 2.5rem;width:2.5rem;height:2.5rem;overflow:hidden}.pt-accordion-title-icon-code{display:inline-flex;align-items:center;justify-content:center;line-height:1}.pt-accordion-header-text{display:flex;flex:1 1 auto;flex-direction:column;gap:.25rem;min-width:0;overflow:hidden}.pt-accordion-title,.pt-accordion-description{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pt-accordion-title{line-height:1.25}.pt-accordion-description{line-height:1.35}.pt-accordion-tag{flex:0 0 auto;max-width:var(--pt-accordion-tag-max-width, 14rem);overflow:hidden}.pt-accordion-content,.pt-accordion-content-viewport{display:block;width:0;min-width:100%;max-width:100%;inline-size:0;min-inline-size:100%;max-inline-size:100%;min-height:0;min-block-size:0;overflow:hidden;box-sizing:border-box;contain:inline-size}.pt-accordion-content-inner{display:block;box-sizing:border-box}.pt-accordion-content-scroll-x{overflow-x:scroll!important;overflow-y:hidden!important;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;scrollbar-width:auto;scrollbar-color:var(--pt-accordion-scrollbar-thumb, #64748b) var(--pt-accordion-scrollbar-track, #e2e8f0)}.pt-accordion-content-scroll-y{overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;scrollbar-width:auto;scrollbar-color:var(--pt-accordion-scrollbar-thumb, #64748b) var(--pt-accordion-scrollbar-track, #e2e8f0)}.pt-accordion-content-scroll-x.pt-accordion-content-scroll-y{overflow:auto!important;overscroll-behavior:contain}.pt-accordion-content-scroll-x::-webkit-scrollbar,.pt-accordion-content-scroll-y::-webkit-scrollbar{width:12px;height:12px}.pt-accordion-content-scroll-x::-webkit-scrollbar-track,.pt-accordion-content-scroll-y::-webkit-scrollbar-track{border-radius:999px;background:var(--pt-accordion-scrollbar-track, #e2e8f0)}.pt-accordion-content-scroll-x::-webkit-scrollbar-thumb,.pt-accordion-content-scroll-y::-webkit-scrollbar-thumb{min-width:3rem;min-height:3rem;border:2px solid var(--pt-accordion-scrollbar-track, #e2e8f0);border-radius:999px;background:var(--pt-accordion-scrollbar-thumb, #64748b)}.pt-accordion-content-scroll-x::-webkit-scrollbar-thumb:hover,.pt-accordion-content-scroll-y::-webkit-scrollbar-thumb:hover{background:var(--pt-accordion-scrollbar-thumb-hover, #475569)}.pt-accordion-empty-content{padding:1rem;color:#64748b;text-align:center}:host ::ng-deep .p-accordion{display:block;width:100%;min-width:0;max-width:100%}:host ::ng-deep .p-accordionpanel{display:block;width:100%;min-width:0;max-width:100%;overflow:hidden;border:1px solid var(--pt-accordion-border-color, #e5e7eb);border-radius:var(--pt-accordion-border-radius, 12px);background:var(--pt-accordion-panel-background, #ffffff)}:host ::ng-deep .p-accordionpanel+.p-accordionpanel{margin-top:var(--pt-accordion-panel-gap, 1rem)}:host ::ng-deep .p-accordionheader{display:flex;align-items:center;width:100%;min-width:0;max-width:100%;padding:var(--pt-accordion-header-padding, 1rem);overflow:hidden;border:0;border-radius:var(--pt-accordion-border-radius, 12px);background:var(--pt-accordion-header-background, #ffffff);color:var(--pt-accordion-header-color, inherit);transition:background-color .2s ease,color .2s ease}:host ::ng-deep .p-accordionheader:hover{background:var(--pt-accordion-header-hover-background, #f8fafc)}:host ::ng-deep .p-accordionpanel-active .p-accordionheader{border-bottom-right-radius:0;border-bottom-left-radius:0}:host ::ng-deep .p-accordionheader-link,:host ::ng-deep .p-accordionheader-button{display:flex;align-items:center;flex:1 1 auto;width:100%;min-width:0;max-width:100%;overflow:hidden}:host ::ng-deep .p-accordionheader-toggle-icon{flex:0 0 auto;margin-left:.75rem}:host ::ng-deep .p-accordioncontent{display:block;width:100%;min-width:0;max-width:100%;overflow:hidden}:host ::ng-deep .p-accordioncontent-content{display:block;width:100%;min-width:0;max-width:100%;padding:var(--pt-accordion-content-padding, 1rem);overflow:hidden;border:0;background:var(--pt-accordion-content-background, #ffffff)}:host ::ng-deep .p-accordioncontent-content>*{min-width:0;max-width:100%}:host ::ng-deep .pt-accordion-panel-disabled .p-accordionheader{cursor:not-allowed;opacity:.65}@media(max-width:768px){.pt-accordion-header-content{gap:.5rem}.pt-accordion-header-main{gap:.65rem}.pt-accordion-title-icon{flex-basis:2.25rem;width:2.25rem;height:2.25rem}.pt-accordion-description{display:none}.pt-accordion-title{font-size:var(--pt-accordion-mobile-title-font-size, .95rem)!important}.pt-accordion-tag{max-width:var(--pt-accordion-mobile-tag-max-width, 9rem)}:host ::ng-deep .p-accordionheader,:host ::ng-deep .p-accordioncontent-content{padding:var(--pt-accordion-mobile-padding, .85rem)}:host ::ng-deep .p-accordionheader-toggle-icon{margin-left:.4rem}}\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.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2$5.Accordion, selector: "p-accordion", inputs: ["value", "multiple", "styleClass", "expandIcon", "collapseIcon", "selectOnFocus", "transitionOptions", "motionOptions"], outputs: ["valueChange", "onClose", "onOpen"] }, { kind: "component", type: i2$5.AccordionPanel, selector: "p-accordion-panel, p-accordionpanel", inputs: ["value", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: i2$5.AccordionHeader, selector: "p-accordion-header, p-accordionheader" }, { kind: "component", type: i2$5.AccordionContent, selector: "p-accordion-content, p-accordioncontent" }, { kind: "component", type: i10.Tag, selector: "p-tag", inputs: ["styleClass", "severity", "value", "icon", "rounded"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9975
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: PTAccordionComponent, isStandalone: false, selector: "pt-accordion", inputs: { config: "config", value: "value" }, outputs: { valueChange: "valueChange", panelOpen: "panelOpen", panelClose: "panelClose" }, queries: [{ propertyName: "panelTemplates", predicate: PTAccordionPanelDirective }], usesOnChanges: true, ngImport: i0, template: "<!-- ng-prime-tools/projects/ng-prime-tools/src/lib/pt-accordion/pt-accordion.component.html -->\n\n<p-accordion\n [value]=\"value\"\n [multiple]=\"multiple\"\n [expandIcon]=\"expandIcon\"\n [collapseIcon]=\"collapseIcon\"\n [ngClass]=\"getRootClasses()\"\n (valueChange)=\"onValueChange($event)\"\n>\n @for (panel of visiblePanels; track trackPanel($index, panel)) {\n <p-accordion-panel\n [value]=\"panel.value\"\n [disabled]=\"panel.disabled === true\"\n [ngClass]=\"getPanelClasses(panel)\"\n >\n <p-accordion-header>\n <div [ngClass]=\"getHeaderClasses(panel)\">\n <div class=\"pt-accordion-header-main\">\n @if (\n getTitleIconClass(panel) && getTitleIconPosition(panel) === \"left\"\n ) {\n <span\n class=\"pt-accordion-title-icon\"\n [ngStyle]=\"getTitleIconStyles(panel)\"\n >\n <i\n class=\"pt-accordion-title-icon-code\"\n [class]=\"getTitleIconClass(panel)\"\n ></i>\n </span>\n }\n\n <div class=\"pt-accordion-header-text\">\n <span\n class=\"pt-accordion-title\"\n [ngStyle]=\"getTitleStyles(panel)\"\n >\n {{ getTitleText(panel) }}\n </span>\n\n @if (panel.description?.text) {\n <span\n class=\"pt-accordion-description\"\n [ngStyle]=\"getDescriptionStyles(panel)\"\n >\n {{ panel.description?.text }}\n </span>\n }\n </div>\n\n @if (\n getTitleIconClass(panel) &&\n getTitleIconPosition(panel) === \"right\"\n ) {\n <span\n class=\"pt-accordion-title-icon\"\n [ngStyle]=\"getTitleIconStyles(panel)\"\n >\n <i\n class=\"pt-accordion-title-icon-code\"\n [class]=\"getTitleIconClass(panel)\"\n ></i>\n </span>\n }\n </div>\n\n @if (isTagVisible(panel)) {\n <p-tag\n [value]=\"panel.tag?.value ?? ''\"\n [icon]=\"panel.tag?.icon\"\n [severity]=\"getTagSeverity(panel)\"\n [rounded]=\"panel.tag?.rounded === true\"\n [ngClass]=\"getTagClasses(panel)\"\n ></p-tag>\n }\n </div>\n </p-accordion-header>\n\n <p-accordion-content>\n @if (shouldRenderPanelContent(panel)) {\n <div\n [ngClass]=\"getContentClasses(panel)\"\n [ngStyle]=\"getContentStyles(panel)\"\n >\n <div\n class=\"pt-accordion-content-inner\"\n [ngStyle]=\"getContentInnerStyles(panel)\"\n >\n @if (resolvePanelTemplate(panel.value); as panelTemplate) {\n <ng-container\n *ngTemplateOutlet=\"\n panelTemplate;\n context: getTemplateContext(panel)\n \"\n ></ng-container>\n } @else {\n <div class=\"pt-accordion-empty-content\">\n Aucun contenu configur\u00E9.\n </div>\n }\n </div>\n </div>\n }\n </p-accordion-content>\n </p-accordion-panel>\n }\n</p-accordion>\n", styles: [":host{display:block;width:100%;min-width:0;max-width:100%;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:border-box}.pt-accordion{display:block;width:100%;min-width:0;max-width:100%}.pt-accordion-header-content{display:flex;align-items:center;justify-content:space-between;flex:1 1 auto;gap:1rem;width:100%;min-width:0;max-width:100%;overflow:hidden}.pt-accordion-header-main{display:flex;align-items:center;flex:1 1 auto;gap:.85rem;min-width:0;overflow:hidden}.pt-accordion-title-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 2.5rem;width:2.5rem;height:2.5rem;overflow:hidden}.pt-accordion-title-icon-code{display:inline-flex;align-items:center;justify-content:center;line-height:1}.pt-accordion-header-text{display:flex;flex:1 1 auto;flex-direction:column;gap:.25rem;min-width:0;overflow:hidden}.pt-accordion-title,.pt-accordion-description{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pt-accordion-title{line-height:1.25}.pt-accordion-description{line-height:1.35}.pt-accordion-tag{flex:0 0 auto;max-width:var(--pt-accordion-tag-max-width, 14rem);overflow:hidden}.pt-accordion-content,.pt-accordion-content-viewport{display:block;width:0;min-width:100%;max-width:100%;inline-size:0;min-inline-size:100%;max-inline-size:100%;min-height:0;min-block-size:0;overflow:hidden;box-sizing:border-box;contain:inline-size}.pt-accordion-content-inner{display:block;box-sizing:border-box}.pt-accordion-content-scroll-x{overflow-x:scroll!important;overflow-y:hidden!important;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;scrollbar-width:auto;scrollbar-color:var(--pt-accordion-scrollbar-thumb, #64748b) var(--pt-accordion-scrollbar-track, #e2e8f0)}.pt-accordion-content-scroll-y{overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;scrollbar-width:auto;scrollbar-color:var(--pt-accordion-scrollbar-thumb, #64748b) var(--pt-accordion-scrollbar-track, #e2e8f0)}.pt-accordion-content-scroll-x.pt-accordion-content-scroll-y{overflow:auto!important;overscroll-behavior:contain}.pt-accordion-content-scroll-x::-webkit-scrollbar,.pt-accordion-content-scroll-y::-webkit-scrollbar{width:12px;height:12px}.pt-accordion-content-scroll-x::-webkit-scrollbar-track,.pt-accordion-content-scroll-y::-webkit-scrollbar-track{border-radius:999px;background:var(--pt-accordion-scrollbar-track, #e2e8f0)}.pt-accordion-content-scroll-x::-webkit-scrollbar-thumb,.pt-accordion-content-scroll-y::-webkit-scrollbar-thumb{min-width:3rem;min-height:3rem;border:2px solid var(--pt-accordion-scrollbar-track, #e2e8f0);border-radius:999px;background:var(--pt-accordion-scrollbar-thumb, #64748b)}.pt-accordion-content-scroll-x::-webkit-scrollbar-thumb:hover,.pt-accordion-content-scroll-y::-webkit-scrollbar-thumb:hover{background:var(--pt-accordion-scrollbar-thumb-hover, #475569)}.pt-accordion-empty-content{padding:1rem;color:#64748b;text-align:center}:host ::ng-deep .p-accordion{display:block;width:100%;min-width:0;max-width:100%}:host ::ng-deep .p-accordionpanel{display:block;width:100%;min-width:0;max-width:100%;overflow:hidden;border:1px solid var(--pt-accordion-border-color, #e5e7eb);border-radius:var(--pt-accordion-border-radius, 12px);background:var(--pt-accordion-panel-background, #ffffff)}:host ::ng-deep .p-accordionpanel+.p-accordionpanel{margin-top:var(--pt-accordion-panel-gap, 1rem)}:host ::ng-deep .p-accordionheader{display:flex;align-items:center;width:100%;min-width:0;max-width:100%;padding:var(--pt-accordion-header-padding, 1rem);overflow:hidden;border:0;border-radius:var(--pt-accordion-border-radius, 12px);background:var(--pt-accordion-header-background, #ffffff);color:var(--pt-accordion-header-color, inherit);transition:background-color .2s ease,color .2s ease}:host ::ng-deep .p-accordionheader:hover{background:var(--pt-accordion-header-hover-background, #f8fafc)}:host ::ng-deep .p-accordionpanel-active .p-accordionheader{border-bottom-right-radius:0;border-bottom-left-radius:0}:host ::ng-deep .p-accordionheader-link,:host ::ng-deep .p-accordionheader-button{display:flex;align-items:center;flex:1 1 auto;width:100%;min-width:0;max-width:100%;overflow:hidden}:host ::ng-deep .p-accordionheader-toggle-icon{flex:0 0 auto;margin-left:.75rem}:host ::ng-deep .p-accordioncontent{display:block;width:100%;min-width:0;max-width:100%;overflow:hidden}:host ::ng-deep .p-accordioncontent-content{display:block;width:100%;min-width:0;max-width:100%;padding:var(--pt-accordion-content-padding, 1rem);overflow:hidden;border:0;background:var(--pt-accordion-content-background, #ffffff)}:host ::ng-deep .p-accordioncontent-content>*{min-width:0;max-width:100%}:host ::ng-deep .pt-accordion-panel-disabled .p-accordionheader{cursor:not-allowed;opacity:.65}@media(max-width:768px){.pt-accordion-header-content{gap:.5rem}.pt-accordion-header-main{gap:.65rem}.pt-accordion-title-icon{flex-basis:2.25rem;width:2.25rem;height:2.25rem}.pt-accordion-description{display:none}.pt-accordion-title{font-size:var(--pt-accordion-mobile-title-font-size, .95rem)!important}.pt-accordion-tag{max-width:var(--pt-accordion-mobile-tag-max-width, 9rem)}:host ::ng-deep .p-accordionheader,:host ::ng-deep .p-accordioncontent-content{padding:var(--pt-accordion-mobile-padding, .85rem)}:host ::ng-deep .p-accordionheader-toggle-icon{margin-left:.4rem}}\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.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2$4.Accordion, selector: "p-accordion", inputs: ["value", "multiple", "styleClass", "expandIcon", "collapseIcon", "selectOnFocus", "transitionOptions", "motionOptions"], outputs: ["valueChange", "onClose", "onOpen"] }, { kind: "component", type: i2$4.AccordionPanel, selector: "p-accordion-panel, p-accordionpanel", inputs: ["value", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: i2$4.AccordionHeader, selector: "p-accordion-header, p-accordionheader" }, { kind: "component", type: i2$4.AccordionContent, selector: "p-accordion-content, p-accordioncontent" }, { kind: "component", type: i10.Tag, selector: "p-tag", inputs: ["styleClass", "severity", "value", "icon", "rounded"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9731
9976
|
}
|
|
9732
9977
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTAccordionComponent, decorators: [{
|
|
9733
9978
|
type: Component,
|
|
@@ -12513,7 +12758,7 @@ class PTNotificationsPageComponent {
|
|
|
12513
12758
|
return String(value).padStart(2, '0');
|
|
12514
12759
|
}
|
|
12515
12760
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTNotificationsPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12516
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: PTNotificationsPageComponent, isStandalone: false, selector: "pt-notifications-page", inputs: { notifications: "notifications", totalRecords: "totalRecords", totalAllRecords: "totalAllRecords", totalUnreadRecords: "totalUnreadRecords", totalReadRecords: "totalReadRecords", page: "page", rows: "rows", config: "config" }, outputs: { notificationClick: "notificationClick", action: "action", globalAction: "globalAction", queryChange: "queryChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"pt-notifications-page\" (click)=\"closeMenus()\">\n <div class=\"pt-notifications-page-header\">\n <div class=\"pt-notifications-page-heading\">\n <div class=\"pt-notifications-page-title-row\">\n <div class=\"pt-notifications-page-title-icon\">\n <i class=\"pi pi-bell\"></i>\n </div>\n\n <div>\n <h2 class=\"pt-notifications-page-title\">\n {{ getTitle() }}\n </h2>\n\n <div class=\"pt-notifications-page-subtitle\">\n {{ getSubtitle() }}\n </div>\n </div>\n </div>\n\n @if (showCounters()) {\n <div class=\"pt-notifications-page-counters\">\n <span class=\"pt-notifications-page-counter\">\n {{ getTotalCount() }}\n notification(s)\n </span>\n\n @if (getUnreadCount() > 0) {\n <span class=\"pt-notifications-page-counter unread\">\n {{ getUnreadCount() }}\n non lue(s)\n </span>\n }\n </div>\n }\n </div>\n\n @if (showGlobalActions()) {\n <div\n class=\"pt-notifications-page-global-actions\"\n (click)=\"$event.stopPropagation()\"\n >\n <button\n type=\"button\"\n class=\"pt-notifications-page-global-button\"\n aria-label=\"Actions globales\"\n (click)=\"toggleGlobalActionMenu($event)\"\n >\n <i class=\"pi pi-ellipsis-v\"></i>\n </button>\n\n @if (isGlobalActionMenuOpen) {\n <div\n class=\"pt-notifications-page-global-menu\"\n (click)=\"onGlobalActionMenuClick($event)\"\n >\n @for (menuAction of getGlobalActions(); track menuAction.id) {\n <button\n type=\"button\"\n [class]=\"getActionClasses(menuAction)\"\n [disabled]=\"menuAction.disabled\"\n (click)=\"onGlobalActionClick(menuAction, $event)\"\n >\n @if (menuAction.icon) {\n <i [class]=\"menuAction.icon\"></i>\n }\n\n <span>\n {{ menuAction.label }}\n </span>\n </button>\n }\n </div>\n }\n </div>\n }\n </div>\n\n <div class=\"pt-notifications-page-toolbar\">\n @if (showFilters()) {\n <div class=\"pt-notifications-page-filters\">\n <button\n type=\"button\"\n class=\"pt-notifications-page-filter\"\n [class.selected]=\"isFilterSelected('ALL')\"\n (click)=\"selectFilter('ALL')\"\n >\n {{ getAllLabel() }}\n\n <span class=\"pt-notifications-page-filter-count\">\n {{ getTotalCount() }}\n </span>\n </button>\n\n <button\n type=\"button\"\n class=\"pt-notifications-page-filter\"\n [class.selected]=\"isFilterSelected('UNREAD')\"\n (click)=\"selectFilter('UNREAD')\"\n >\n {{ getUnreadLabel() }}\n\n <span class=\"pt-notifications-page-filter-count\">\n {{ getUnreadCount() }}\n </span>\n </button>\n\n <button\n type=\"button\"\n class=\"pt-notifications-page-filter\"\n [class.selected]=\"isFilterSelected('READ')\"\n (click)=\"selectFilter('READ')\"\n >\n {{ getReadLabel() }}\n\n <span class=\"pt-notifications-page-filter-count\">\n {{ getReadCount() }}\n </span>\n </button>\n </div>\n }\n\n @if (showSearch()) {\n <div class=\"pt-notifications-page-search\">\n <i class=\"pi pi-search\"></i>\n\n <input\n type=\"text\"\n [value]=\"searchText\"\n [placeholder]=\"getSearchPlaceholder()\"\n (input)=\"onSearch($any($event.target).value)\"\n />\n\n @if (hasSearch()) {\n <button\n type=\"button\"\n class=\"pt-notifications-page-search-clear\"\n aria-label=\"Effacer la recherche\"\n (click)=\"clearSearch()\"\n >\n <i class=\"pi pi-times\"></i>\n </button>\n }\n </div>\n }\n </div>\n\n @if (hasNotifications()) {\n <div class=\"pt-notifications-page-list\">\n @for (\n notification of getDisplayedNotifications();\n track notification.id\n ) {\n <div\n [class]=\"getNotificationClasses(notification)\"\n (click)=\"onNotificationClick(notification, $event)\"\n >\n <div class=\"pt-notifications-page-item-icon-wrapper\">\n <div class=\"pt-notifications-page-item-icon\">\n <i\n [class]=\"getNotificationIcon(notification)\"\n [ngStyle]=\"getNotificationIconStyles(notification)\"\n ></i>\n </div>\n </div>\n\n <div class=\"pt-notifications-page-item-content\">\n <div class=\"pt-notifications-page-item-text\">\n {{ notification.text }}\n </div>\n\n @if (hasMetadata(notification)) {\n <div class=\"pt-notifications-page-item-metadata\">\n @if (notification.date) {\n <span>\n <i class=\"pi pi-clock\"></i>\n\n {{ getDateText(notification) }}\n </span>\n }\n\n @if (notification.sender?.trim()) {\n <span>\n <i class=\"pi pi-user\"></i>\n\n {{ notification.sender }}\n </span>\n }\n </div>\n }\n </div>\n\n @if (hasActions(notification)) {\n <div\n class=\"pt-notifications-page-item-actions\"\n (click)=\"$event.stopPropagation()\"\n >\n <button\n type=\"button\"\n class=\"pt-notifications-page-more-button\"\n aria-label=\"Actions notification\"\n [disabled]=\"notification.disabled\"\n (click)=\"toggleActionMenu(notification, $event)\"\n >\n <i class=\"pi pi-ellipsis-v\"></i>\n </button>\n\n @if (isActionMenuOpen(notification)) {\n <div\n class=\"pt-notifications-page-action-menu\"\n (click)=\"onActionMenuClick($event)\"\n >\n @for (\n menuAction of getActions(notification);\n track menuAction.id\n ) {\n <button\n type=\"button\"\n [class]=\"getActionClasses(menuAction)\"\n [disabled]=\"menuAction.disabled\"\n (click)=\"onActionClick(notification, menuAction, $event)\"\n >\n @if (menuAction.icon) {\n <i [class]=\"menuAction.icon\"></i>\n }\n\n <span>\n {{ menuAction.label }}\n </span>\n </button>\n }\n </div>\n }\n </div>\n }\n\n @if (notification.read !== true) {\n <span class=\"pt-notifications-page-unread-indicator\"></span>\n }\n </div>\n }\n </div>\n } @else {\n <div class=\"pt-notifications-page-empty\">\n <div class=\"pt-notifications-page-empty-icon\">\n <i [class]=\"getEmptyIcon()\"></i>\n </div>\n\n <div class=\"pt-notifications-page-empty-text\">\n @if (hasSearch()) {\n {{ getNoSearchResultText() }}\n } @else {\n {{ getEmptyText() }}\n }\n </div>\n </div>\n }\n\n @if (showPagination()) {\n <div class=\"pt-notifications-page-pagination\">\n <p-paginator\n [first]=\"getFirst()\"\n [rows]=\"rows\"\n [totalRecords]=\"totalRecords\"\n [rowsPerPageOptions]=\"getRowsPerPageOptions()\"\n [showCurrentPageReport]=\"showCurrentPageReport()\"\n [currentPageReportTemplate]=\"getCurrentPageReportTemplate()\"\n (onPageChange)=\"onPageChange($event)\"\n ></p-paginator>\n </div>\n }\n</div>\n", styles: [":host{display:block;width:100%}.pt-notifications-page{position:relative;width:100%;background:var(--pt-notifications-page-bg, #ffffff);border:1px solid var(--pt-notifications-page-border, #e5e7eb);border-radius:14px;overflow:visible}.pt-notifications-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem;border-bottom:1px solid var(--pt-notifications-page-border, #e5e7eb)}.pt-notifications-page-heading{display:flex;flex-direction:column;gap:.85rem}.pt-notifications-page-title-row{display:flex;align-items:center;gap:.8rem}.pt-notifications-page-title-icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;background:var(--pt-notifications-page-title-icon-bg, #f3f0f8);color:var(--pt-notifications-page-title-icon-color, #3f2564);font-size:1.15rem}.pt-notifications-page-title{margin:0;color:var(--pt-notifications-page-title-color, #1f2937);font-size:1.25rem;font-weight:700}.pt-notifications-page-subtitle{margin-top:.2rem;color:var(--pt-notifications-page-subtitle-color, #6b7280);font-size:.875rem}.pt-notifications-page-counters{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.pt-notifications-page-counter{display:inline-flex;align-items:center;padding:.3rem .65rem;border-radius:999px;background:var(--pt-notifications-page-counter-bg, #f3f4f6);color:var(--pt-notifications-page-counter-color, #4b5563);font-size:.78rem;font-weight:600}.pt-notifications-page-counter.unread{background:var(--pt-notifications-page-unread-counter-bg, #f3f0f8);color:var(--pt-notifications-page-unread-counter-color, #3f2564)}.pt-notifications-page-global-actions{position:relative}.pt-notifications-page-global-button,.pt-notifications-page-more-button,.pt-notifications-page-search-clear{display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;cursor:pointer;color:var(--pt-notifications-page-action-color, #6b7280)}.pt-notifications-page-global-button{width:36px;height:36px;border-radius:50%}.pt-notifications-page-global-button:hover,.pt-notifications-page-more-button:hover{background:var(--pt-notifications-page-action-hover-bg, #f3f4f6)}.pt-notifications-page-global-menu,.pt-notifications-page-action-menu{position:absolute;z-index:1000;min-width:200px;padding:.35rem;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 10px 25px #0f172a24}.pt-notifications-page-global-menu{top:calc(100% + 5px);right:0}.pt-notifications-page-action-menu{top:30px;right:0}.pt-notifications-page-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.5rem;border-bottom:1px solid var(--pt-notifications-page-border, #e5e7eb)}.pt-notifications-page-filters{display:flex;align-items:center;gap:.4rem}.pt-notifications-page-filter{display:flex;align-items:center;gap:.45rem;padding:.5rem .85rem;border:1px solid var(--pt-notifications-page-filter-border, #e5e7eb);border-radius:8px;background:var(--pt-notifications-page-filter-bg, #ffffff);color:var(--pt-notifications-page-filter-color, #4b5563);font-size:.82rem;font-weight:600;cursor:pointer}.pt-notifications-page-filter:hover{background:#f9fafb}.pt-notifications-page-filter.selected{border-color:var(--pt-notifications-page-primary, #3f2564);background:var(--pt-notifications-page-selected-bg, #f3f0f8);color:var(--pt-notifications-page-primary, #3f2564)}.pt-notifications-page-filter-count{min-width:20px;padding:.1rem .35rem;border-radius:999px;background:#0000000d;text-align:center;font-size:.72rem}.pt-notifications-page-search{position:relative;display:flex;align-items:center;width:min(360px,100%)}.pt-notifications-page-search>.pi-search{position:absolute;left:.85rem;color:#9ca3af}.pt-notifications-page-search input{width:100%;padding:.65rem 2.5rem .65rem 2.4rem;border:1px solid #d1d5db;border-radius:8px;outline:none;font-size:.85rem}.pt-notifications-page-search input:focus{border-color:var(--pt-notifications-page-primary, #3f2564);box-shadow:0 0 0 2px #3f256414}.pt-notifications-page-search-clear{position:absolute;right:.6rem;width:28px;height:28px}.pt-notifications-page-list{width:100%}.pt-notifications-page-item{position:relative;display:flex;align-items:flex-start;gap:1rem;padding:1.1rem 1.5rem;border-bottom:1px solid var(--pt-notifications-page-border, #e5e7eb);background:var(--pt-notifications-page-item-bg, #ffffff);cursor:pointer;transition:background .15s ease}.pt-notifications-page-item:last-child{border-bottom:0}.pt-notifications-page-item:hover{background:var(--pt-notifications-page-item-hover-bg, #f9fafb)}.pt-notifications-page-item.unread{background:var(--pt-notifications-page-unread-bg, #faf8fd)}.pt-notifications-page-item.unread:hover{background:var(--pt-notifications-page-unread-hover-bg, #f6f2fa)}.pt-notifications-page-item.disabled{opacity:.55;cursor:default}.pt-notifications-page-item-icon-wrapper{flex:0 0 auto}.pt-notifications-page-item-icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;background:var(--pt-notifications-page-item-icon-bg, #f3f4f6);font-size:1rem}.pt-notifications-page-item-content{flex:1 1 auto;min-width:0}.pt-notifications-page-item-text{color:var(--pt-notifications-page-text-color, #1f2937);font-size:.9rem;line-height:1.5}.pt-notifications-page-item.unread .pt-notifications-page-item-text{font-weight:600}.pt-notifications-page-item-metadata{display:flex;align-items:center;flex-wrap:wrap;gap:1rem;margin-top:.5rem;color:var(--pt-notifications-page-metadata-color, #6b7280);font-size:.78rem}.pt-notifications-page-item-metadata span{display:inline-flex;align-items:center;gap:.35rem}.pt-notifications-page-item-actions{position:relative;flex:0 0 auto}.pt-notifications-page-more-button{width:30px;height:30px;border-radius:50%}.pt-notifications-page-action-item{display:flex;align-items:center;gap:.6rem;width:100%;padding:.55rem .7rem;border:0;border-radius:6px;background:transparent;color:#374151;font-size:.8rem;text-align:left;cursor:pointer}.pt-notifications-page-action-item:hover{background:#f3f4f6}.pt-notifications-page-action-item.danger{color:#dc2626}.pt-notifications-page-action-item.disabled{opacity:.5;cursor:default}.pt-notifications-page-unread-indicator{position:absolute;top:50%;right:.5rem;width:7px;height:7px;border-radius:50%;background:var(--pt-notifications-page-unread-indicator, #3f2564);transform:translateY(-50%)}.pt-notifications-page-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:280px;padding:3rem;color:#6b7280;text-align:center}.pt-notifications-page-empty-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;margin-bottom:1rem;border-radius:50%;background:#f3f4f6;color:#9ca3af;font-size:1.6rem}.pt-notifications-page-empty-text{max-width:450px;font-size:.9rem}@media(max-width:768px){.pt-notifications-page-header,.pt-notifications-page-toolbar{flex-direction:column;align-items:stretch}.pt-notifications-page-filters{overflow-x:auto}.pt-notifications-page-search{width:100%}.pt-notifications-page-item{padding:1rem 1.1rem}.pt-notifications-page-item-metadata{gap:.5rem 1rem}}.pt-notifications-page-pagination{display:flex;align-items:center;justify-content:center;width:100%;padding:.75rem 1rem;box-sizing:border-box;border-top:1px solid var(--pt-notifications-page-border, #e5e7eb);background:var(--pt-notifications-page-pagination-bg, #ffffff)}.pt-notifications-page-pagination ::ng-deep .p-paginator{width:100%;border:0;background:transparent}@media(max-width:768px){.pt-notifications-page-pagination{padding:.5rem}}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2$6.Paginator, selector: "p-paginator", inputs: ["pageLinkSize", "styleClass", "alwaysShow", "dropdownAppendTo", "templateLeft", "templateRight", "dropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showFirstLastIcon", "totalRecords", "rows", "rowsPerPageOptions", "showJumpToPageDropdown", "showJumpToPageInput", "jumpToPageItemTemplate", "showPageLinks", "locale", "dropdownItemTemplate", "first", "appendTo"], outputs: ["onPageChange"] }] }); }
|
|
12761
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: PTNotificationsPageComponent, isStandalone: false, selector: "pt-notifications-page", inputs: { notifications: "notifications", totalRecords: "totalRecords", totalAllRecords: "totalAllRecords", totalUnreadRecords: "totalUnreadRecords", totalReadRecords: "totalReadRecords", page: "page", rows: "rows", config: "config" }, outputs: { notificationClick: "notificationClick", action: "action", globalAction: "globalAction", queryChange: "queryChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"pt-notifications-page\" (click)=\"closeMenus()\">\n <div class=\"pt-notifications-page-header\">\n <div class=\"pt-notifications-page-heading\">\n <div class=\"pt-notifications-page-title-row\">\n <div class=\"pt-notifications-page-title-icon\">\n <i class=\"pi pi-bell\"></i>\n </div>\n\n <div>\n <h2 class=\"pt-notifications-page-title\">\n {{ getTitle() }}\n </h2>\n\n <div class=\"pt-notifications-page-subtitle\">\n {{ getSubtitle() }}\n </div>\n </div>\n </div>\n\n @if (showCounters()) {\n <div class=\"pt-notifications-page-counters\">\n <span class=\"pt-notifications-page-counter\">\n {{ getTotalCount() }}\n notification(s)\n </span>\n\n @if (getUnreadCount() > 0) {\n <span class=\"pt-notifications-page-counter unread\">\n {{ getUnreadCount() }}\n non lue(s)\n </span>\n }\n </div>\n }\n </div>\n\n @if (showGlobalActions()) {\n <div\n class=\"pt-notifications-page-global-actions\"\n (click)=\"$event.stopPropagation()\"\n >\n <button\n type=\"button\"\n class=\"pt-notifications-page-global-button\"\n aria-label=\"Actions globales\"\n (click)=\"toggleGlobalActionMenu($event)\"\n >\n <i class=\"pi pi-ellipsis-v\"></i>\n </button>\n\n @if (isGlobalActionMenuOpen) {\n <div\n class=\"pt-notifications-page-global-menu\"\n (click)=\"onGlobalActionMenuClick($event)\"\n >\n @for (menuAction of getGlobalActions(); track menuAction.id) {\n <button\n type=\"button\"\n [class]=\"getActionClasses(menuAction)\"\n [disabled]=\"menuAction.disabled\"\n (click)=\"onGlobalActionClick(menuAction, $event)\"\n >\n @if (menuAction.icon) {\n <i [class]=\"menuAction.icon\"></i>\n }\n\n <span>\n {{ menuAction.label }}\n </span>\n </button>\n }\n </div>\n }\n </div>\n }\n </div>\n\n <div class=\"pt-notifications-page-toolbar\">\n @if (showFilters()) {\n <div class=\"pt-notifications-page-filters\">\n <button\n type=\"button\"\n class=\"pt-notifications-page-filter\"\n [class.selected]=\"isFilterSelected('ALL')\"\n (click)=\"selectFilter('ALL')\"\n >\n {{ getAllLabel() }}\n\n <span class=\"pt-notifications-page-filter-count\">\n {{ getTotalCount() }}\n </span>\n </button>\n\n <button\n type=\"button\"\n class=\"pt-notifications-page-filter\"\n [class.selected]=\"isFilterSelected('UNREAD')\"\n (click)=\"selectFilter('UNREAD')\"\n >\n {{ getUnreadLabel() }}\n\n <span class=\"pt-notifications-page-filter-count\">\n {{ getUnreadCount() }}\n </span>\n </button>\n\n <button\n type=\"button\"\n class=\"pt-notifications-page-filter\"\n [class.selected]=\"isFilterSelected('READ')\"\n (click)=\"selectFilter('READ')\"\n >\n {{ getReadLabel() }}\n\n <span class=\"pt-notifications-page-filter-count\">\n {{ getReadCount() }}\n </span>\n </button>\n </div>\n }\n\n @if (showSearch()) {\n <div class=\"pt-notifications-page-search\">\n <i class=\"pi pi-search\"></i>\n\n <input\n type=\"text\"\n [value]=\"searchText\"\n [placeholder]=\"getSearchPlaceholder()\"\n (input)=\"onSearch($any($event.target).value)\"\n />\n\n @if (hasSearch()) {\n <button\n type=\"button\"\n class=\"pt-notifications-page-search-clear\"\n aria-label=\"Effacer la recherche\"\n (click)=\"clearSearch()\"\n >\n <i class=\"pi pi-times\"></i>\n </button>\n }\n </div>\n }\n </div>\n\n @if (hasNotifications()) {\n <div class=\"pt-notifications-page-list\">\n @for (\n notification of getDisplayedNotifications();\n track notification.id\n ) {\n <div\n [class]=\"getNotificationClasses(notification)\"\n (click)=\"onNotificationClick(notification, $event)\"\n >\n <div class=\"pt-notifications-page-item-icon-wrapper\">\n <div class=\"pt-notifications-page-item-icon\">\n <i\n [class]=\"getNotificationIcon(notification)\"\n [ngStyle]=\"getNotificationIconStyles(notification)\"\n ></i>\n </div>\n </div>\n\n <div class=\"pt-notifications-page-item-content\">\n <div class=\"pt-notifications-page-item-text\">\n {{ notification.text }}\n </div>\n\n @if (hasMetadata(notification)) {\n <div class=\"pt-notifications-page-item-metadata\">\n @if (notification.date) {\n <span>\n <i class=\"pi pi-clock\"></i>\n\n {{ getDateText(notification) }}\n </span>\n }\n\n @if (notification.sender?.trim()) {\n <span>\n <i class=\"pi pi-user\"></i>\n\n {{ notification.sender }}\n </span>\n }\n </div>\n }\n </div>\n\n @if (hasActions(notification)) {\n <div\n class=\"pt-notifications-page-item-actions\"\n (click)=\"$event.stopPropagation()\"\n >\n <button\n type=\"button\"\n class=\"pt-notifications-page-more-button\"\n aria-label=\"Actions notification\"\n [disabled]=\"notification.disabled\"\n (click)=\"toggleActionMenu(notification, $event)\"\n >\n <i class=\"pi pi-ellipsis-v\"></i>\n </button>\n\n @if (isActionMenuOpen(notification)) {\n <div\n class=\"pt-notifications-page-action-menu\"\n (click)=\"onActionMenuClick($event)\"\n >\n @for (\n menuAction of getActions(notification);\n track menuAction.id\n ) {\n <button\n type=\"button\"\n [class]=\"getActionClasses(menuAction)\"\n [disabled]=\"menuAction.disabled\"\n (click)=\"onActionClick(notification, menuAction, $event)\"\n >\n @if (menuAction.icon) {\n <i [class]=\"menuAction.icon\"></i>\n }\n\n <span>\n {{ menuAction.label }}\n </span>\n </button>\n }\n </div>\n }\n </div>\n }\n\n @if (notification.read !== true) {\n <span class=\"pt-notifications-page-unread-indicator\"></span>\n }\n </div>\n }\n </div>\n } @else {\n <div class=\"pt-notifications-page-empty\">\n <div class=\"pt-notifications-page-empty-icon\">\n <i [class]=\"getEmptyIcon()\"></i>\n </div>\n\n <div class=\"pt-notifications-page-empty-text\">\n @if (hasSearch()) {\n {{ getNoSearchResultText() }}\n } @else {\n {{ getEmptyText() }}\n }\n </div>\n </div>\n }\n\n @if (showPagination()) {\n <div class=\"pt-notifications-page-pagination\">\n <p-paginator\n [first]=\"getFirst()\"\n [rows]=\"rows\"\n [totalRecords]=\"totalRecords\"\n [rowsPerPageOptions]=\"getRowsPerPageOptions()\"\n [showCurrentPageReport]=\"showCurrentPageReport()\"\n [currentPageReportTemplate]=\"getCurrentPageReportTemplate()\"\n (onPageChange)=\"onPageChange($event)\"\n ></p-paginator>\n </div>\n }\n</div>\n", styles: [":host{display:block;width:100%}.pt-notifications-page{position:relative;width:100%;background:var(--pt-notifications-page-bg, #ffffff);border:1px solid var(--pt-notifications-page-border, #e5e7eb);border-radius:14px;overflow:visible}.pt-notifications-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem;border-bottom:1px solid var(--pt-notifications-page-border, #e5e7eb)}.pt-notifications-page-heading{display:flex;flex-direction:column;gap:.85rem}.pt-notifications-page-title-row{display:flex;align-items:center;gap:.8rem}.pt-notifications-page-title-icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;background:var(--pt-notifications-page-title-icon-bg, #f3f0f8);color:var(--pt-notifications-page-title-icon-color, #3f2564);font-size:1.15rem}.pt-notifications-page-title{margin:0;color:var(--pt-notifications-page-title-color, #1f2937);font-size:1.25rem;font-weight:700}.pt-notifications-page-subtitle{margin-top:.2rem;color:var(--pt-notifications-page-subtitle-color, #6b7280);font-size:.875rem}.pt-notifications-page-counters{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.pt-notifications-page-counter{display:inline-flex;align-items:center;padding:.3rem .65rem;border-radius:999px;background:var(--pt-notifications-page-counter-bg, #f3f4f6);color:var(--pt-notifications-page-counter-color, #4b5563);font-size:.78rem;font-weight:600}.pt-notifications-page-counter.unread{background:var(--pt-notifications-page-unread-counter-bg, #f3f0f8);color:var(--pt-notifications-page-unread-counter-color, #3f2564)}.pt-notifications-page-global-actions{position:relative}.pt-notifications-page-global-button,.pt-notifications-page-more-button,.pt-notifications-page-search-clear{display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;cursor:pointer;color:var(--pt-notifications-page-action-color, #6b7280)}.pt-notifications-page-global-button{width:36px;height:36px;border-radius:50%}.pt-notifications-page-global-button:hover,.pt-notifications-page-more-button:hover{background:var(--pt-notifications-page-action-hover-bg, #f3f4f6)}.pt-notifications-page-global-menu,.pt-notifications-page-action-menu{position:absolute;z-index:1000;min-width:200px;padding:.35rem;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 10px 25px #0f172a24}.pt-notifications-page-global-menu{top:calc(100% + 5px);right:0}.pt-notifications-page-action-menu{top:30px;right:0}.pt-notifications-page-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.5rem;border-bottom:1px solid var(--pt-notifications-page-border, #e5e7eb)}.pt-notifications-page-filters{display:flex;align-items:center;gap:.4rem}.pt-notifications-page-filter{display:flex;align-items:center;gap:.45rem;padding:.5rem .85rem;border:1px solid var(--pt-notifications-page-filter-border, #e5e7eb);border-radius:8px;background:var(--pt-notifications-page-filter-bg, #ffffff);color:var(--pt-notifications-page-filter-color, #4b5563);font-size:.82rem;font-weight:600;cursor:pointer}.pt-notifications-page-filter:hover{background:#f9fafb}.pt-notifications-page-filter.selected{border-color:var(--pt-notifications-page-primary, #3f2564);background:var(--pt-notifications-page-selected-bg, #f3f0f8);color:var(--pt-notifications-page-primary, #3f2564)}.pt-notifications-page-filter-count{min-width:20px;padding:.1rem .35rem;border-radius:999px;background:#0000000d;text-align:center;font-size:.72rem}.pt-notifications-page-search{position:relative;display:flex;align-items:center;width:min(360px,100%)}.pt-notifications-page-search>.pi-search{position:absolute;left:.85rem;color:#9ca3af}.pt-notifications-page-search input{width:100%;padding:.65rem 2.5rem .65rem 2.4rem;border:1px solid #d1d5db;border-radius:8px;outline:none;font-size:.85rem}.pt-notifications-page-search input:focus{border-color:var(--pt-notifications-page-primary, #3f2564);box-shadow:0 0 0 2px #3f256414}.pt-notifications-page-search-clear{position:absolute;right:.6rem;width:28px;height:28px}.pt-notifications-page-list{width:100%}.pt-notifications-page-item{position:relative;display:flex;align-items:flex-start;gap:1rem;padding:1.1rem 1.5rem;border-bottom:1px solid var(--pt-notifications-page-border, #e5e7eb);background:var(--pt-notifications-page-item-bg, #ffffff);cursor:pointer;transition:background .15s ease}.pt-notifications-page-item:last-child{border-bottom:0}.pt-notifications-page-item:hover{background:var(--pt-notifications-page-item-hover-bg, #f9fafb)}.pt-notifications-page-item.unread{background:var(--pt-notifications-page-unread-bg, #faf8fd)}.pt-notifications-page-item.unread:hover{background:var(--pt-notifications-page-unread-hover-bg, #f6f2fa)}.pt-notifications-page-item.disabled{opacity:.55;cursor:default}.pt-notifications-page-item-icon-wrapper{flex:0 0 auto}.pt-notifications-page-item-icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;background:var(--pt-notifications-page-item-icon-bg, #f3f4f6);font-size:1rem}.pt-notifications-page-item-content{flex:1 1 auto;min-width:0}.pt-notifications-page-item-text{color:var(--pt-notifications-page-text-color, #1f2937);font-size:.9rem;line-height:1.5}.pt-notifications-page-item.unread .pt-notifications-page-item-text{font-weight:600}.pt-notifications-page-item-metadata{display:flex;align-items:center;flex-wrap:wrap;gap:1rem;margin-top:.5rem;color:var(--pt-notifications-page-metadata-color, #6b7280);font-size:.78rem}.pt-notifications-page-item-metadata span{display:inline-flex;align-items:center;gap:.35rem}.pt-notifications-page-item-actions{position:relative;flex:0 0 auto}.pt-notifications-page-more-button{width:30px;height:30px;border-radius:50%}.pt-notifications-page-action-item{display:flex;align-items:center;gap:.6rem;width:100%;padding:.55rem .7rem;border:0;border-radius:6px;background:transparent;color:#374151;font-size:.8rem;text-align:left;cursor:pointer}.pt-notifications-page-action-item:hover{background:#f3f4f6}.pt-notifications-page-action-item.danger{color:#dc2626}.pt-notifications-page-action-item.disabled{opacity:.5;cursor:default}.pt-notifications-page-unread-indicator{position:absolute;top:50%;right:.5rem;width:7px;height:7px;border-radius:50%;background:var(--pt-notifications-page-unread-indicator, #3f2564);transform:translateY(-50%)}.pt-notifications-page-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:280px;padding:3rem;color:#6b7280;text-align:center}.pt-notifications-page-empty-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;margin-bottom:1rem;border-radius:50%;background:#f3f4f6;color:#9ca3af;font-size:1.6rem}.pt-notifications-page-empty-text{max-width:450px;font-size:.9rem}@media(max-width:768px){.pt-notifications-page-header,.pt-notifications-page-toolbar{flex-direction:column;align-items:stretch}.pt-notifications-page-filters{overflow-x:auto}.pt-notifications-page-search{width:100%}.pt-notifications-page-item{padding:1rem 1.1rem}.pt-notifications-page-item-metadata{gap:.5rem 1rem}}.pt-notifications-page-pagination{display:flex;align-items:center;justify-content:center;width:100%;padding:.75rem 1rem;box-sizing:border-box;border-top:1px solid var(--pt-notifications-page-border, #e5e7eb);background:var(--pt-notifications-page-pagination-bg, #ffffff)}.pt-notifications-page-pagination ::ng-deep .p-paginator{width:100%;border:0;background:transparent}@media(max-width:768px){.pt-notifications-page-pagination{padding:.5rem}}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2$5.Paginator, selector: "p-paginator", inputs: ["pageLinkSize", "styleClass", "alwaysShow", "dropdownAppendTo", "templateLeft", "templateRight", "dropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showFirstLastIcon", "totalRecords", "rows", "rowsPerPageOptions", "showJumpToPageDropdown", "showJumpToPageInput", "jumpToPageItemTemplate", "showPageLinks", "locale", "dropdownItemTemplate", "first", "appendTo"], outputs: ["onPageChange"] }] }); }
|
|
12517
12762
|
}
|
|
12518
12763
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTNotificationsPageComponent, decorators: [{
|
|
12519
12764
|
type: Component,
|
|
@@ -12560,38 +12805,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
12560
12805
|
|
|
12561
12806
|
class PTReleaseNotesPageComponent {
|
|
12562
12807
|
constructor() {
|
|
12563
|
-
/**
|
|
12564
|
-
* Current server page only.
|
|
12565
|
-
*/
|
|
12566
12808
|
this.releases = [];
|
|
12567
|
-
/**
|
|
12568
|
-
* Loading state of the current request.
|
|
12569
|
-
*/
|
|
12570
12809
|
this.loading = false;
|
|
12571
|
-
/**
|
|
12572
|
-
* Number of records matching:
|
|
12573
|
-
*
|
|
12574
|
-
* search + selected filter
|
|
12575
|
-
*
|
|
12576
|
-
* Used by paginator.
|
|
12577
|
-
*/
|
|
12578
12810
|
this.totalRecords = 0;
|
|
12579
|
-
/**
|
|
12580
|
-
* Number of all releases matching the search
|
|
12581
|
-
* before applying ALL / UNREAD / READ.
|
|
12582
|
-
*/
|
|
12583
12811
|
this.totalAllRecords = 0;
|
|
12584
|
-
/**
|
|
12585
|
-
* Current zero-based server page.
|
|
12586
|
-
*/
|
|
12587
12812
|
this.page = 0;
|
|
12588
|
-
/**
|
|
12589
|
-
* Current server page size.
|
|
12590
|
-
*/
|
|
12591
12813
|
this.rows = 10;
|
|
12592
|
-
/**
|
|
12593
|
-
* Available server page sizes.
|
|
12594
|
-
*/
|
|
12595
12814
|
this.rowsPerPageOptions = [5, 10, 20, 50];
|
|
12596
12815
|
this.config = {};
|
|
12597
12816
|
this.queryChange = new EventEmitter();
|
|
@@ -12649,6 +12868,12 @@ class PTReleaseNotesPageComponent {
|
|
|
12649
12868
|
(isFrench ? 'Afficher tous les détails' : 'Show all details'),
|
|
12650
12869
|
hideDetailsText: this.config.hideDetailsText ??
|
|
12651
12870
|
(isFrench ? 'Masquer les détails' : 'Hide details'),
|
|
12871
|
+
showActions: this.config.showActions ?? false,
|
|
12872
|
+
showGlobalActions: this.config.showGlobalActions ?? false,
|
|
12873
|
+
closeActionMenuOnAction: this.config.closeActionMenuOnAction ?? true,
|
|
12874
|
+
closeGlobalActionMenuOnAction: this.config.closeGlobalActionMenuOnAction ?? true,
|
|
12875
|
+
actions: this.config.actions ?? [],
|
|
12876
|
+
globalActions: this.config.globalActions ?? [],
|
|
12652
12877
|
};
|
|
12653
12878
|
}
|
|
12654
12879
|
getReleases() {
|
|
@@ -12764,16 +12989,6 @@ class PTReleaseNotesPageComponent {
|
|
|
12764
12989
|
this.collapseAllDetails();
|
|
12765
12990
|
this.emitQueryChange();
|
|
12766
12991
|
}
|
|
12767
|
-
/**
|
|
12768
|
-
* PrimeNG server-side pagination.
|
|
12769
|
-
*
|
|
12770
|
-
* Important:
|
|
12771
|
-
* - changing only the page -> use event.page
|
|
12772
|
-
* - changing rows per page -> reset to page 0
|
|
12773
|
-
*
|
|
12774
|
-
* Resetting on size change avoids keeping an offset
|
|
12775
|
-
* calculated from the previous page size.
|
|
12776
|
-
*/
|
|
12777
12992
|
onPageChange(event) {
|
|
12778
12993
|
const previousRows = Math.max(1, this.rows);
|
|
12779
12994
|
const nextRows = event.rows !== undefined && event.rows !== null && event.rows > 0
|
|
@@ -12970,7 +13185,7 @@ class PTReleaseNotesPageComponent {
|
|
|
12970
13185
|
});
|
|
12971
13186
|
}
|
|
12972
13187
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTReleaseNotesPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12973
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: PTReleaseNotesPageComponent, isStandalone: false, selector: "pt-release-notes-page", inputs: { releases: "releases", loading: "loading", totalRecords: "totalRecords", totalAllRecords: "totalAllRecords", totalUnreadRecords: "totalUnreadRecords", totalReadRecords: "totalReadRecords", page: "page", rows: "rows", rowsPerPageOptions: "rowsPerPageOptions", config: "config" }, outputs: { queryChange: "queryChange" }, ngImport: i0, template: "@if (resolvedConfig.visible) {\n <div class=\"pt-release-notes-page\">\n <div class=\"pt-release-notes-page-header\">\n <div class=\"pt-release-notes-page-heading\">\n <div class=\"pt-release-notes-page-title-row\">\n <div class=\"pt-release-notes-page-title-icon\">\n <i [class]=\"resolvedConfig.icon\"></i>\n </div>\n\n <div>\n <h2 class=\"pt-release-notes-page-title\">\n {{ getTitle() }}\n </h2>\n\n <div class=\"pt-release-notes-page-subtitle\">\n {{ getSubtitle() }}\n </div>\n </div>\n </div>\n\n @if (showCounters()) {\n <div class=\"pt-release-notes-page-counters\">\n <span class=\"pt-release-notes-page-counter\">\n {{ getTotalCount() }}\n version(s)\n </span>\n\n @if (getUnreadCount() > 0) {\n <span class=\"pt-release-notes-page-counter unread\">\n {{ getUnreadCount() }}\n non lue(s)\n </span>\n }\n\n @if (getReadCount() > 0) {\n <span class=\"pt-release-notes-page-counter read\">\n {{ getReadCount() }}\n lue(s)\n </span>\n }\n </div>\n }\n </div>\n </div>\n\n <div class=\"pt-release-notes-page-toolbar\">\n <div class=\"pt-release-notes-page-toolbar-left\">\n <div class=\"pt-release-notes-page-filters\">\n <button\n type=\"button\"\n class=\"pt-release-notes-page-filter\"\n [class.selected]=\"isFilterSelected('ALL')\"\n (click)=\"selectFilter('ALL')\"\n >\n {{ getAllLabel() }}\n\n <span class=\"pt-release-notes-page-filter-count\">\n {{ getTotalCount() }}\n </span>\n </button>\n\n <button\n type=\"button\"\n class=\"pt-release-notes-page-filter\"\n [class.selected]=\"isFilterSelected('UNREAD')\"\n (click)=\"selectFilter('UNREAD')\"\n >\n {{ getUnreadLabel() }}\n\n <span class=\"pt-release-notes-page-filter-count\">\n {{ getUnreadCount() }}\n </span>\n </button>\n\n <button\n type=\"button\"\n class=\"pt-release-notes-page-filter\"\n [class.selected]=\"isFilterSelected('READ')\"\n (click)=\"selectFilter('READ')\"\n >\n {{ getReadLabel() }}\n\n <span class=\"pt-release-notes-page-filter-count\">\n {{ getReadCount() }}\n </span>\n </button>\n </div>\n\n @if (hasExpandableReleases()) {\n <button\n type=\"button\"\n class=\"pt-release-notes-page-expand-all\"\n [class.expanded]=\"areAllDetailsExpanded()\"\n (click)=\"toggleAllDetails()\"\n >\n <i\n class=\"pi\"\n [ngClass]=\"\n areAllDetailsExpanded()\n ? 'pi-angle-double-up'\n : 'pi-angle-double-down'\n \"\n ></i>\n\n <span>\n {{ getToggleAllDetailsText() }}\n </span>\n </button>\n }\n </div>\n\n <div class=\"pt-release-notes-page-search\">\n <i class=\"pi pi-search\"></i>\n\n <input\n type=\"text\"\n [value]=\"searchText\"\n [placeholder]=\"getSearchPlaceholder()\"\n (input)=\"onSearch($any($event.target).value)\"\n />\n\n @if (hasSearch()) {\n <button\n type=\"button\"\n class=\"pt-release-notes-page-search-clear\"\n aria-label=\"Effacer la recherche\"\n (click)=\"clearSearch()\"\n >\n <i class=\"pi pi-times\"></i>\n </button>\n }\n </div>\n </div>\n\n @if (hasReleases()) {\n <div class=\"pt-release-notes-page-list\">\n @for (release of getDisplayedReleases(); track release.id) {\n <div [class]=\"getReleaseClasses(release)\">\n <div class=\"pt-release-notes-page-item-top\">\n <div class=\"pt-release-notes-page-item-icon-wrapper\">\n <div class=\"pt-release-notes-page-item-icon\">\n <i class=\"pi pi-sparkles\"></i>\n </div>\n </div>\n\n <div class=\"pt-release-notes-page-item-content\">\n <div class=\"pt-release-notes-page-version-row\">\n <span class=\"pt-release-notes-page-version\">\n v{{ release.version }}\n </span>\n\n <span class=\"pt-release-notes-page-item-title\">\n {{ release.title }}\n </span>\n </div>\n\n @if (release.summary) {\n <div class=\"pt-release-notes-page-summary\">\n {{ release.summary }}\n </div>\n }\n\n @if (release.date) {\n <div class=\"pt-release-notes-page-metadata\">\n <span>\n <i class=\"pi pi-calendar\"></i>\n\n {{ release.date | date: \"dd/MM/yyyy\" }}\n </span>\n </div>\n }\n\n @if (hasCounters(release)) {\n <div class=\"pt-release-notes-page-stats\">\n @if (hasNewItems(release)) {\n <span class=\"pt-release-notes-page-stat new\">\n <i class=\"pi pi-plus-circle\"></i>\n\n <strong>\n {{ getNewCount(release) }}\n </strong>\n\n {{ resolvedConfig.newLabel }}\n </span>\n }\n\n @if (hasImprovements(release)) {\n <span class=\"pt-release-notes-page-stat improvement\">\n <i class=\"pi pi-arrow-up-right\"></i>\n\n <strong>\n {{ getImprovementCount(release) }}\n </strong>\n\n {{ resolvedConfig.improvementLabel }}\n </span>\n }\n\n @if (hasBugFixes(release)) {\n <span class=\"pt-release-notes-page-stat bug-fix\">\n <i class=\"pi pi-wrench\"></i>\n\n <strong>\n {{ getBugFixCount(release) }}\n </strong>\n\n {{ resolvedConfig.bugFixLabel }}\n </span>\n }\n </div>\n }\n </div>\n\n @if (release.read !== true) {\n <span class=\"pt-release-notes-page-unread-indicator\"></span>\n }\n </div>\n\n @if (hasDetails(release) && isDetailsExpanded(release)) {\n <div class=\"pt-release-notes-page-details\">\n @if (hasDetailsByType(release, \"NEW\")) {\n <section class=\"pt-release-notes-page-detail-section new\">\n <div class=\"pt-release-notes-page-detail-section-header\">\n <div class=\"pt-release-notes-page-detail-section-title\">\n <span class=\"pt-release-notes-page-detail-section-icon\">\n <i class=\"pi pi-plus-circle\"></i>\n </span>\n\n <span>\n {{ resolvedConfig.newLabel }}\n </span>\n </div>\n\n <span class=\"pt-release-notes-page-detail-section-count\">\n {{ getDetailsByType(release, \"NEW\").length }}\n </span>\n </div>\n\n <div class=\"pt-release-notes-page-detail-section-content\">\n @for (\n detail of getDetailsByType(release, \"NEW\");\n track detail.id\n ) {\n <button\n type=\"button\"\n class=\"pt-release-notes-page-detail new\"\n [class.disabled]=\"detail.disabled\"\n [ngClass]=\"detail.styleClass || ''\"\n [disabled]=\"detail.disabled\"\n (click)=\"onDetailClick(detail, $event)\"\n >\n <div class=\"pt-release-notes-page-detail-icon\">\n <i [ngClass]=\"getDetailIcon(detail)\"></i>\n </div>\n\n <div class=\"pt-release-notes-page-detail-content\">\n <div class=\"pt-release-notes-page-detail-title\">\n {{ detail.title }}\n </div>\n\n @if (detail.description) {\n <div\n class=\"pt-release-notes-page-detail-description\"\n >\n {{ detail.description }}\n </div>\n }\n </div>\n\n @if (detail.link) {\n <i\n class=\"pi pi-arrow-right pt-release-notes-page-detail-link\"\n ></i>\n }\n </button>\n }\n </div>\n </section>\n }\n\n @if (hasDetailsByType(release, \"IMPROVEMENT\")) {\n <section\n class=\"pt-release-notes-page-detail-section improvement\"\n >\n <div class=\"pt-release-notes-page-detail-section-header\">\n <div class=\"pt-release-notes-page-detail-section-title\">\n <span class=\"pt-release-notes-page-detail-section-icon\">\n <i class=\"pi pi-arrow-up-right\"></i>\n </span>\n\n <span>\n {{ resolvedConfig.improvementLabel }}\n </span>\n </div>\n\n <span class=\"pt-release-notes-page-detail-section-count\">\n {{ getDetailsByType(release, \"IMPROVEMENT\").length }}\n </span>\n </div>\n\n <div class=\"pt-release-notes-page-detail-section-content\">\n @for (\n detail of getDetailsByType(release, \"IMPROVEMENT\");\n track detail.id\n ) {\n <button\n type=\"button\"\n class=\"pt-release-notes-page-detail improvement\"\n [class.disabled]=\"detail.disabled\"\n [ngClass]=\"detail.styleClass || ''\"\n [disabled]=\"detail.disabled\"\n (click)=\"onDetailClick(detail, $event)\"\n >\n <div class=\"pt-release-notes-page-detail-icon\">\n <i [ngClass]=\"getDetailIcon(detail)\"></i>\n </div>\n\n <div class=\"pt-release-notes-page-detail-content\">\n <div class=\"pt-release-notes-page-detail-title\">\n {{ detail.title }}\n </div>\n\n @if (detail.description) {\n <div\n class=\"pt-release-notes-page-detail-description\"\n >\n {{ detail.description }}\n </div>\n }\n </div>\n\n @if (detail.link) {\n <i\n class=\"pi pi-arrow-right pt-release-notes-page-detail-link\"\n ></i>\n }\n </button>\n }\n </div>\n </section>\n }\n\n @if (hasDetailsByType(release, \"BUG_FIX\")) {\n <section class=\"pt-release-notes-page-detail-section bug-fix\">\n <div class=\"pt-release-notes-page-detail-section-header\">\n <div class=\"pt-release-notes-page-detail-section-title\">\n <span class=\"pt-release-notes-page-detail-section-icon\">\n <i class=\"pi pi-wrench\"></i>\n </span>\n\n <span>\n {{ resolvedConfig.bugFixLabel }}\n </span>\n </div>\n\n <span class=\"pt-release-notes-page-detail-section-count\">\n {{ getDetailsByType(release, \"BUG_FIX\").length }}\n </span>\n </div>\n\n <div class=\"pt-release-notes-page-detail-section-content\">\n @for (\n detail of getDetailsByType(release, \"BUG_FIX\");\n track detail.id\n ) {\n <button\n type=\"button\"\n class=\"pt-release-notes-page-detail bug-fix\"\n [class.disabled]=\"detail.disabled\"\n [ngClass]=\"detail.styleClass || ''\"\n [disabled]=\"detail.disabled\"\n (click)=\"onDetailClick(detail, $event)\"\n >\n <div class=\"pt-release-notes-page-detail-icon\">\n <i [ngClass]=\"getDetailIcon(detail)\"></i>\n </div>\n\n <div class=\"pt-release-notes-page-detail-content\">\n <div class=\"pt-release-notes-page-detail-title\">\n {{ detail.title }}\n </div>\n\n @if (detail.description) {\n <div\n class=\"pt-release-notes-page-detail-description\"\n >\n {{ detail.description }}\n </div>\n }\n </div>\n\n @if (detail.link) {\n <i\n class=\"pi pi-arrow-right pt-release-notes-page-detail-link\"\n ></i>\n }\n </button>\n }\n </div>\n </section>\n }\n </div>\n }\n\n @if (hasDetails(release)) {\n <div class=\"pt-release-notes-page-details-action\">\n <button\n type=\"button\"\n class=\"pt-release-notes-page-details-button\"\n [disabled]=\"release.disabled\"\n (click)=\"toggleDetails(release)\"\n >\n <span>\n {{ getDetailsButtonText(release) }}\n </span>\n\n <i\n class=\"pi\"\n [ngClass]=\"\n isDetailsExpanded(release)\n ? 'pi-chevron-up'\n : 'pi-chevron-down'\n \"\n ></i>\n </button>\n </div>\n }\n </div>\n }\n </div>\n } @else if (!loading) {\n <div class=\"pt-release-notes-page-empty\">\n <div class=\"pt-release-notes-page-empty-icon\">\n <i [class]=\"getEmptyIcon()\"></i>\n </div>\n\n <div class=\"pt-release-notes-page-empty-text\">\n @if (hasSearch()) {\n {{ getNoSearchResultText() }}\n } @else {\n {{ getEmptyText() }}\n }\n </div>\n </div>\n }\n\n @if (loading) {\n <div class=\"pt-release-notes-page-loading\">\n <i class=\"pi pi-spin pi-spinner\"></i>\n\n <span>\n {{ resolvedConfig.loadingText }}\n </span>\n </div>\n }\n\n @if (showPagination()) {\n <div class=\"pt-release-notes-page-pagination\">\n <p-paginator\n [first]=\"getFirst()\"\n [rows]=\"rows\"\n [totalRecords]=\"totalRecords\"\n [rowsPerPageOptions]=\"getRowsPerPageOptions()\"\n [showCurrentPageReport]=\"showCurrentPageReport()\"\n [currentPageReportTemplate]=\"getCurrentPageReportTemplate()\"\n (onPageChange)=\"onPageChange($event)\"\n ></p-paginator>\n </div>\n }\n </div>\n}\n", styles: [":host{display:block;width:100%}.pt-release-notes-page{position:relative;width:100%;background:var(--pt-release-notes-page-bg, #ffffff);border:1px solid var(--pt-release-notes-page-border, #e5e7eb);border-radius:14px;overflow:visible}.pt-release-notes-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem;border-bottom:1px solid var(--pt-release-notes-page-border, #e5e7eb)}.pt-release-notes-page-heading{display:flex;flex-direction:column;gap:.85rem}.pt-release-notes-page-title-row{display:flex;align-items:center;gap:.8rem}.pt-release-notes-page-title-icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;background:var(--pt-release-notes-page-title-icon-bg, #f3f0f8);color:var(--pt-release-notes-page-title-icon-color, #3f2564);font-size:1.15rem}.pt-release-notes-page-title{margin:0;color:var(--pt-release-notes-page-title-color, #1f2937);font-size:1.25rem;font-weight:700}.pt-release-notes-page-subtitle{margin-top:.2rem;color:var(--pt-release-notes-page-subtitle-color, #6b7280);font-size:.875rem}.pt-release-notes-page-counters{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.pt-release-notes-page-counter{display:inline-flex;align-items:center;padding:.3rem .65rem;border-radius:999px;background:var(--pt-release-notes-page-counter-bg, #f3f4f6);color:var(--pt-release-notes-page-counter-color, #4b5563);font-size:.78rem;font-weight:600}.pt-release-notes-page-counter.unread{background:var(--pt-release-notes-page-unread-counter-bg, #f3f0f8);color:var(--pt-release-notes-page-unread-counter-color, #3f2564)}.pt-release-notes-page-counter.read{background:var(--pt-release-notes-page-read-counter-bg, #ecfdf5);color:var(--pt-release-notes-page-read-counter-color, #15803d)}.pt-release-notes-page-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.5rem;border-bottom:1px solid var(--pt-release-notes-page-border, #e5e7eb)}.pt-release-notes-page-toolbar-left{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;min-width:0}.pt-release-notes-page-filters{display:flex;align-items:center;gap:.4rem}.pt-release-notes-page-filter{display:flex;align-items:center;gap:.45rem;padding:.5rem .85rem;border:1px solid var(--pt-release-notes-page-filter-border, #e5e7eb);border-radius:8px;background:var(--pt-release-notes-page-filter-bg, #ffffff);color:var(--pt-release-notes-page-filter-color, #4b5563);font-size:.82rem;font-weight:600;cursor:pointer}.pt-release-notes-page-filter:hover{background:#f9fafb}.pt-release-notes-page-filter.selected{border-color:var(--pt-release-notes-page-primary, #3f2564);background:var(--pt-release-notes-page-selected-bg, #f3f0f8);color:var(--pt-release-notes-page-primary, #3f2564)}.pt-release-notes-page-filter-count{min-width:20px;padding:.1rem .35rem;border-radius:999px;background:#0000000d;text-align:center;font-size:.72rem}.pt-release-notes-page-expand-all{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:34px;padding:.45rem .75rem;border:1px solid var(--pt-release-notes-page-filter-border, #e5e7eb);border-radius:8px;background:#fff;color:var(--pt-release-notes-page-primary, #3f2564);font-size:.78rem;font-weight:700;cursor:pointer;transition:background .15s ease,border-color .15s ease}.pt-release-notes-page-expand-all:hover,.pt-release-notes-page-expand-all.expanded{border-color:var(--pt-release-notes-page-primary, #3f2564);background:var(--pt-release-notes-page-selected-bg, #f3f0f8)}.pt-release-notes-page-search{position:relative;display:flex;align-items:center;width:min(360px,100%)}.pt-release-notes-page-search>.pi-search{position:absolute;left:.85rem;color:#9ca3af}.pt-release-notes-page-search input{width:100%;padding:.65rem 2.5rem .65rem 2.4rem;border:1px solid #d1d5db;border-radius:8px;outline:none;font-size:.85rem}.pt-release-notes-page-search input:focus{border-color:var(--pt-release-notes-page-primary, #3f2564);box-shadow:0 0 0 2px #3f256414}.pt-release-notes-page-search-clear{position:absolute;right:.6rem;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:0;background:transparent;color:#6b7280;cursor:pointer}.pt-release-notes-page-list{width:100%}.pt-release-notes-page-item{position:relative;padding:1.1rem 1.5rem;border-bottom:1px solid var(--pt-release-notes-page-border, #e5e7eb);background:var(--pt-release-notes-page-item-bg, #ffffff);transition:background .15s ease}.pt-release-notes-page-item:last-child{border-bottom:0}.pt-release-notes-page-item:hover{background:var(--pt-release-notes-page-item-hover-bg, #f9fafb)}.pt-release-notes-page-item.unread{background:var(--pt-release-notes-page-unread-bg, #faf8fd)}.pt-release-notes-page-item.unread:hover{background:var(--pt-release-notes-page-unread-hover-bg, #f6f2fa)}.pt-release-notes-page-item.disabled{opacity:.55}.pt-release-notes-page-item-top{position:relative;display:flex;align-items:flex-start;gap:1rem}.pt-release-notes-page-item-icon-wrapper{flex:0 0 auto}.pt-release-notes-page-item-icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;background:var(--pt-release-notes-page-item-icon-bg, #f3f0f8);color:var(--pt-release-notes-page-primary, #3f2564);font-size:1rem}.pt-release-notes-page-item-content{flex:1 1 auto;min-width:0}.pt-release-notes-page-version-row{display:flex;align-items:center;flex-wrap:wrap;gap:.65rem}.pt-release-notes-page-version{display:inline-flex;align-items:center;padding:.25rem .55rem;border-radius:6px;background:var(--pt-release-notes-page-selected-bg, #f3f0f8);color:var(--pt-release-notes-page-primary, #3f2564);font-size:.78rem;font-weight:800}.pt-release-notes-page-item-title{color:var(--pt-release-notes-page-text-color, #1f2937);font-size:.9rem;font-weight:700}.pt-release-notes-page-summary{margin-top:.45rem;color:var(--pt-release-notes-page-metadata-color, #6b7280);font-size:.85rem;line-height:1.5}.pt-release-notes-page-metadata{display:flex;align-items:center;flex-wrap:wrap;gap:1rem;margin-top:.5rem;color:var(--pt-release-notes-page-metadata-color, #6b7280);font-size:.78rem}.pt-release-notes-page-metadata span{display:inline-flex;align-items:center;gap:.35rem}.pt-release-notes-page-stats{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;margin-top:.8rem}.pt-release-notes-page-stat{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .6rem;border-radius:999px;font-size:.72rem;font-weight:600}.pt-release-notes-page-stat.new{background:#dcfce7;color:#15803d}.pt-release-notes-page-stat.improvement{background:#dbeafe;color:#1d4ed8}.pt-release-notes-page-stat.bug-fix{background:#fee2e2;color:#b91c1c}.pt-release-notes-page-unread-indicator{position:absolute;top:50%;right:-1rem;width:7px;height:7px;border-radius:50%;background:var(--pt-release-notes-page-unread-indicator, #3f2564);transform:translateY(-50%)}.pt-release-notes-page-details{display:flex;flex-direction:column;gap:1rem;margin-top:1rem;margin-left:58px;padding-top:1rem;border-top:1px solid var(--pt-release-notes-page-border, #e5e7eb)}.pt-release-notes-page-detail-section{overflow:hidden;border:1px solid #e5e7eb;border-radius:10px;background:#fff}.pt-release-notes-page-detail-section-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.65rem .85rem;border-bottom:1px solid #e5e7eb}.pt-release-notes-page-detail-section-title{display:flex;align-items:center;gap:.55rem;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.015em}.pt-release-notes-page-detail-section-icon{display:inline-flex;align-items:center;justify-content:center;width:27px;height:27px;border-radius:7px}.pt-release-notes-page-detail-section-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 .4rem;border-radius:999px;font-size:.7rem;font-weight:800}.pt-release-notes-page-detail-section.new .pt-release-notes-page-detail-section-header{background:#f0fdf4}.pt-release-notes-page-detail-section.new .pt-release-notes-page-detail-section-title{color:#15803d}.pt-release-notes-page-detail-section.new .pt-release-notes-page-detail-section-icon,.pt-release-notes-page-detail-section.new .pt-release-notes-page-detail-section-count{background:#dcfce7;color:#15803d}.pt-release-notes-page-detail-section.improvement .pt-release-notes-page-detail-section-header{background:#eff6ff}.pt-release-notes-page-detail-section.improvement .pt-release-notes-page-detail-section-title{color:#1d4ed8}.pt-release-notes-page-detail-section.improvement .pt-release-notes-page-detail-section-icon,.pt-release-notes-page-detail-section.improvement .pt-release-notes-page-detail-section-count{background:#dbeafe;color:#1d4ed8}.pt-release-notes-page-detail-section.bug-fix .pt-release-notes-page-detail-section-header{background:#fef2f2}.pt-release-notes-page-detail-section.bug-fix .pt-release-notes-page-detail-section-title{color:#b91c1c}.pt-release-notes-page-detail-section.bug-fix .pt-release-notes-page-detail-section-icon,.pt-release-notes-page-detail-section.bug-fix .pt-release-notes-page-detail-section-count{background:#fee2e2;color:#b91c1c}.pt-release-notes-page-detail-section-content{display:flex;flex-direction:column;padding:.35rem}.pt-release-notes-page-detail{display:flex;align-items:flex-start;gap:.75rem;width:100%;padding:.7rem;border:0;border-radius:8px;background:transparent;color:inherit;text-align:left;cursor:pointer}.pt-release-notes-page-detail:hover:not(:disabled){background:#f9fafb}.pt-release-notes-page-detail.disabled{opacity:.55;cursor:default}.pt-release-notes-page-detail-icon{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px}.pt-release-notes-page-detail.new .pt-release-notes-page-detail-icon{background:#dcfce7;color:#15803d}.pt-release-notes-page-detail.improvement .pt-release-notes-page-detail-icon{background:#dbeafe;color:#1d4ed8}.pt-release-notes-page-detail.bug-fix .pt-release-notes-page-detail-icon{background:#fee2e2;color:#b91c1c}.pt-release-notes-page-detail-content{flex:1;min-width:0}.pt-release-notes-page-detail-title{color:#1f2937;font-size:.84rem;font-weight:700}.pt-release-notes-page-detail-description{margin-top:.25rem;color:#6b7280;font-size:.78rem;line-height:1.5}.pt-release-notes-page-detail-link{flex:0 0 auto;align-self:center;color:#6b7280;font-size:.72rem}.pt-release-notes-page-details-action{display:flex;justify-content:center;margin-top:.8rem;margin-left:58px}.pt-release-notes-page-details-button{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.45rem .75rem;border:0;border-radius:7px;background:transparent;color:var(--pt-release-notes-page-primary, #3f2564);font-size:.78rem;font-weight:700;cursor:pointer}.pt-release-notes-page-details-button:hover:not(:disabled){background:var(--pt-release-notes-page-selected-bg, #f3f0f8)}.pt-release-notes-page-details-button:disabled{opacity:.5;cursor:default}.pt-release-notes-page-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:280px;padding:3rem;color:#6b7280;text-align:center}.pt-release-notes-page-empty-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;margin-bottom:1rem;border-radius:50%;background:#f3f4f6;color:#9ca3af;font-size:1.6rem}.pt-release-notes-page-empty-text{max-width:450px;font-size:.9rem}.pt-release-notes-page-loading{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:100px;color:#6b7280;font-size:.85rem}.pt-release-notes-page-pagination{display:flex;align-items:center;justify-content:center;width:100%;padding:.75rem 1rem;box-sizing:border-box;border-top:1px solid var(--pt-release-notes-page-border, #e5e7eb);background:var(--pt-release-notes-page-pagination-bg, #ffffff)}.pt-release-notes-page-pagination ::ng-deep .p-paginator{width:100%;border:0;background:transparent}@media(max-width:768px){.pt-release-notes-page-header,.pt-release-notes-page-toolbar,.pt-release-notes-page-toolbar-left{flex-direction:column;align-items:stretch}.pt-release-notes-page-filters{overflow-x:auto}.pt-release-notes-page-expand-all{align-self:flex-start}.pt-release-notes-page-search{width:100%}.pt-release-notes-page-item{padding:1rem 1.1rem}.pt-release-notes-page-details,.pt-release-notes-page-details-action{margin-left:0}.pt-release-notes-page-unread-indicator{right:0}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2$6.Paginator, selector: "p-paginator", inputs: ["pageLinkSize", "styleClass", "alwaysShow", "dropdownAppendTo", "templateLeft", "templateRight", "dropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showFirstLastIcon", "totalRecords", "rows", "rowsPerPageOptions", "showJumpToPageDropdown", "showJumpToPageInput", "jumpToPageItemTemplate", "showPageLinks", "locale", "dropdownItemTemplate", "first", "appendTo"], outputs: ["onPageChange"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13188
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: PTReleaseNotesPageComponent, isStandalone: false, selector: "pt-release-notes-page", inputs: { releases: "releases", loading: "loading", totalRecords: "totalRecords", totalAllRecords: "totalAllRecords", totalUnreadRecords: "totalUnreadRecords", totalReadRecords: "totalReadRecords", page: "page", rows: "rows", rowsPerPageOptions: "rowsPerPageOptions", config: "config" }, outputs: { queryChange: "queryChange" }, ngImport: i0, template: "@if (resolvedConfig.visible) {\n <div class=\"pt-release-notes-page\">\n <div class=\"pt-release-notes-page-header\">\n <div class=\"pt-release-notes-page-heading\">\n <div class=\"pt-release-notes-page-title-row\">\n <div class=\"pt-release-notes-page-title-icon\">\n <i [class]=\"resolvedConfig.icon\"></i>\n </div>\n\n <div>\n <h2 class=\"pt-release-notes-page-title\">\n {{ getTitle() }}\n </h2>\n\n <div class=\"pt-release-notes-page-subtitle\">\n {{ getSubtitle() }}\n </div>\n </div>\n </div>\n\n @if (showCounters()) {\n <div class=\"pt-release-notes-page-counters\">\n <span class=\"pt-release-notes-page-counter\">\n {{ getTotalCount() }}\n version(s)\n </span>\n\n @if (getUnreadCount() > 0) {\n <span class=\"pt-release-notes-page-counter unread\">\n {{ getUnreadCount() }}\n non lue(s)\n </span>\n }\n\n @if (getReadCount() > 0) {\n <span class=\"pt-release-notes-page-counter read\">\n {{ getReadCount() }}\n lue(s)\n </span>\n }\n </div>\n }\n </div>\n </div>\n\n <div class=\"pt-release-notes-page-toolbar\">\n <div class=\"pt-release-notes-page-toolbar-left\">\n <div class=\"pt-release-notes-page-filters\">\n <button\n type=\"button\"\n class=\"pt-release-notes-page-filter\"\n [class.selected]=\"isFilterSelected('ALL')\"\n (click)=\"selectFilter('ALL')\"\n >\n {{ getAllLabel() }}\n\n <span class=\"pt-release-notes-page-filter-count\">\n {{ getTotalCount() }}\n </span>\n </button>\n\n <button\n type=\"button\"\n class=\"pt-release-notes-page-filter\"\n [class.selected]=\"isFilterSelected('UNREAD')\"\n (click)=\"selectFilter('UNREAD')\"\n >\n {{ getUnreadLabel() }}\n\n <span class=\"pt-release-notes-page-filter-count\">\n {{ getUnreadCount() }}\n </span>\n </button>\n\n <button\n type=\"button\"\n class=\"pt-release-notes-page-filter\"\n [class.selected]=\"isFilterSelected('READ')\"\n (click)=\"selectFilter('READ')\"\n >\n {{ getReadLabel() }}\n\n <span class=\"pt-release-notes-page-filter-count\">\n {{ getReadCount() }}\n </span>\n </button>\n </div>\n\n @if (hasExpandableReleases()) {\n <button\n type=\"button\"\n class=\"pt-release-notes-page-expand-all\"\n [class.expanded]=\"areAllDetailsExpanded()\"\n (click)=\"toggleAllDetails()\"\n >\n <i\n class=\"pi\"\n [ngClass]=\"\n areAllDetailsExpanded()\n ? 'pi-angle-double-up'\n : 'pi-angle-double-down'\n \"\n ></i>\n\n <span>\n {{ getToggleAllDetailsText() }}\n </span>\n </button>\n }\n </div>\n\n <div class=\"pt-release-notes-page-search\">\n <i class=\"pi pi-search\"></i>\n\n <input\n type=\"text\"\n [value]=\"searchText\"\n [placeholder]=\"getSearchPlaceholder()\"\n (input)=\"onSearch($any($event.target).value)\"\n />\n\n @if (hasSearch()) {\n <button\n type=\"button\"\n class=\"pt-release-notes-page-search-clear\"\n aria-label=\"Effacer la recherche\"\n (click)=\"clearSearch()\"\n >\n <i class=\"pi pi-times\"></i>\n </button>\n }\n </div>\n </div>\n\n @if (hasReleases()) {\n <div class=\"pt-release-notes-page-list\">\n @for (release of getDisplayedReleases(); track release.id) {\n <div [class]=\"getReleaseClasses(release)\">\n <div class=\"pt-release-notes-page-item-top\">\n <div class=\"pt-release-notes-page-item-icon-wrapper\">\n <div class=\"pt-release-notes-page-item-icon\">\n <i class=\"pi pi-sparkles\"></i>\n </div>\n </div>\n\n <div class=\"pt-release-notes-page-item-content\">\n <div class=\"pt-release-notes-page-version-row\">\n <span class=\"pt-release-notes-page-version\">\n v{{ release.version }}\n </span>\n\n <span class=\"pt-release-notes-page-item-title\">\n {{ release.title }}\n </span>\n </div>\n\n @if (release.summary) {\n <div class=\"pt-release-notes-page-summary\">\n {{ release.summary }}\n </div>\n }\n\n @if (release.date) {\n <div class=\"pt-release-notes-page-metadata\">\n <span>\n <i class=\"pi pi-calendar\"></i>\n\n {{ release.date | date: \"dd/MM/yyyy\" }}\n </span>\n </div>\n }\n\n @if (hasCounters(release)) {\n <div class=\"pt-release-notes-page-stats\">\n @if (hasNewItems(release)) {\n <span class=\"pt-release-notes-page-stat new\">\n <i class=\"pi pi-plus-circle\"></i>\n\n <strong>\n {{ getNewCount(release) }}\n </strong>\n\n {{ resolvedConfig.newLabel }}\n </span>\n }\n\n @if (hasImprovements(release)) {\n <span class=\"pt-release-notes-page-stat improvement\">\n <i class=\"pi pi-arrow-up-right\"></i>\n\n <strong>\n {{ getImprovementCount(release) }}\n </strong>\n\n {{ resolvedConfig.improvementLabel }}\n </span>\n }\n\n @if (hasBugFixes(release)) {\n <span class=\"pt-release-notes-page-stat bug-fix\">\n <i class=\"pi pi-wrench\"></i>\n\n <strong>\n {{ getBugFixCount(release) }}\n </strong>\n\n {{ resolvedConfig.bugFixLabel }}\n </span>\n }\n </div>\n }\n </div>\n\n @if (release.read !== true) {\n <span class=\"pt-release-notes-page-unread-indicator\"></span>\n }\n </div>\n\n @if (hasDetails(release) && isDetailsExpanded(release)) {\n <div class=\"pt-release-notes-page-details\">\n @if (hasDetailsByType(release, \"NEW\")) {\n <section class=\"pt-release-notes-page-detail-section new\">\n <div class=\"pt-release-notes-page-detail-section-header\">\n <div class=\"pt-release-notes-page-detail-section-title\">\n <span class=\"pt-release-notes-page-detail-section-icon\">\n <i class=\"pi pi-plus-circle\"></i>\n </span>\n\n <span>\n {{ resolvedConfig.newLabel }}\n </span>\n </div>\n\n <span class=\"pt-release-notes-page-detail-section-count\">\n {{ getDetailsByType(release, \"NEW\").length }}\n </span>\n </div>\n\n <div class=\"pt-release-notes-page-detail-section-content\">\n @for (\n detail of getDetailsByType(release, \"NEW\");\n track detail.id\n ) {\n <button\n type=\"button\"\n class=\"pt-release-notes-page-detail new\"\n [class.disabled]=\"detail.disabled\"\n [ngClass]=\"detail.styleClass || ''\"\n [disabled]=\"detail.disabled\"\n (click)=\"onDetailClick(detail, $event)\"\n >\n <div class=\"pt-release-notes-page-detail-icon\">\n <i [ngClass]=\"getDetailIcon(detail)\"></i>\n </div>\n\n <div class=\"pt-release-notes-page-detail-content\">\n <div class=\"pt-release-notes-page-detail-title\">\n {{ detail.title }}\n </div>\n\n @if (detail.description) {\n <div\n class=\"pt-release-notes-page-detail-description\"\n >\n {{ detail.description }}\n </div>\n }\n </div>\n\n @if (detail.link) {\n <i\n class=\"pi pi-arrow-right pt-release-notes-page-detail-link\"\n ></i>\n }\n </button>\n }\n </div>\n </section>\n }\n\n @if (hasDetailsByType(release, \"IMPROVEMENT\")) {\n <section\n class=\"pt-release-notes-page-detail-section improvement\"\n >\n <div class=\"pt-release-notes-page-detail-section-header\">\n <div class=\"pt-release-notes-page-detail-section-title\">\n <span class=\"pt-release-notes-page-detail-section-icon\">\n <i class=\"pi pi-arrow-up-right\"></i>\n </span>\n\n <span>\n {{ resolvedConfig.improvementLabel }}\n </span>\n </div>\n\n <span class=\"pt-release-notes-page-detail-section-count\">\n {{ getDetailsByType(release, \"IMPROVEMENT\").length }}\n </span>\n </div>\n\n <div class=\"pt-release-notes-page-detail-section-content\">\n @for (\n detail of getDetailsByType(release, \"IMPROVEMENT\");\n track detail.id\n ) {\n <button\n type=\"button\"\n class=\"pt-release-notes-page-detail improvement\"\n [class.disabled]=\"detail.disabled\"\n [ngClass]=\"detail.styleClass || ''\"\n [disabled]=\"detail.disabled\"\n (click)=\"onDetailClick(detail, $event)\"\n >\n <div class=\"pt-release-notes-page-detail-icon\">\n <i [ngClass]=\"getDetailIcon(detail)\"></i>\n </div>\n\n <div class=\"pt-release-notes-page-detail-content\">\n <div class=\"pt-release-notes-page-detail-title\">\n {{ detail.title }}\n </div>\n\n @if (detail.description) {\n <div\n class=\"pt-release-notes-page-detail-description\"\n >\n {{ detail.description }}\n </div>\n }\n </div>\n\n @if (detail.link) {\n <i\n class=\"pi pi-arrow-right pt-release-notes-page-detail-link\"\n ></i>\n }\n </button>\n }\n </div>\n </section>\n }\n\n @if (hasDetailsByType(release, \"BUG_FIX\")) {\n <section class=\"pt-release-notes-page-detail-section bug-fix\">\n <div class=\"pt-release-notes-page-detail-section-header\">\n <div class=\"pt-release-notes-page-detail-section-title\">\n <span class=\"pt-release-notes-page-detail-section-icon\">\n <i class=\"pi pi-wrench\"></i>\n </span>\n\n <span>\n {{ resolvedConfig.bugFixLabel }}\n </span>\n </div>\n\n <span class=\"pt-release-notes-page-detail-section-count\">\n {{ getDetailsByType(release, \"BUG_FIX\").length }}\n </span>\n </div>\n\n <div class=\"pt-release-notes-page-detail-section-content\">\n @for (\n detail of getDetailsByType(release, \"BUG_FIX\");\n track detail.id\n ) {\n <button\n type=\"button\"\n class=\"pt-release-notes-page-detail bug-fix\"\n [class.disabled]=\"detail.disabled\"\n [ngClass]=\"detail.styleClass || ''\"\n [disabled]=\"detail.disabled\"\n (click)=\"onDetailClick(detail, $event)\"\n >\n <div class=\"pt-release-notes-page-detail-icon\">\n <i [ngClass]=\"getDetailIcon(detail)\"></i>\n </div>\n\n <div class=\"pt-release-notes-page-detail-content\">\n <div class=\"pt-release-notes-page-detail-title\">\n {{ detail.title }}\n </div>\n\n @if (detail.description) {\n <div\n class=\"pt-release-notes-page-detail-description\"\n >\n {{ detail.description }}\n </div>\n }\n </div>\n\n @if (detail.link) {\n <i\n class=\"pi pi-arrow-right pt-release-notes-page-detail-link\"\n ></i>\n }\n </button>\n }\n </div>\n </section>\n }\n </div>\n }\n\n @if (hasDetails(release)) {\n <div class=\"pt-release-notes-page-details-action\">\n <button\n type=\"button\"\n class=\"pt-release-notes-page-details-button\"\n [disabled]=\"release.disabled\"\n (click)=\"toggleDetails(release)\"\n >\n <span>\n {{ getDetailsButtonText(release) }}\n </span>\n\n <i\n class=\"pi\"\n [ngClass]=\"\n isDetailsExpanded(release)\n ? 'pi-chevron-up'\n : 'pi-chevron-down'\n \"\n ></i>\n </button>\n </div>\n }\n </div>\n }\n </div>\n } @else if (!loading) {\n <div class=\"pt-release-notes-page-empty\">\n <div class=\"pt-release-notes-page-empty-icon\">\n <i [class]=\"getEmptyIcon()\"></i>\n </div>\n\n <div class=\"pt-release-notes-page-empty-text\">\n @if (hasSearch()) {\n {{ getNoSearchResultText() }}\n } @else {\n {{ getEmptyText() }}\n }\n </div>\n </div>\n }\n\n @if (loading) {\n <div class=\"pt-release-notes-page-loading\">\n <i class=\"pi pi-spin pi-spinner\"></i>\n\n <span>\n {{ resolvedConfig.loadingText }}\n </span>\n </div>\n }\n\n @if (showPagination()) {\n <div class=\"pt-release-notes-page-pagination\">\n <p-paginator\n [first]=\"getFirst()\"\n [rows]=\"rows\"\n [totalRecords]=\"totalRecords\"\n [rowsPerPageOptions]=\"getRowsPerPageOptions()\"\n [showCurrentPageReport]=\"showCurrentPageReport()\"\n [currentPageReportTemplate]=\"getCurrentPageReportTemplate()\"\n (onPageChange)=\"onPageChange($event)\"\n ></p-paginator>\n </div>\n }\n </div>\n}\n", styles: [":host{display:block;width:100%}.pt-release-notes-page{position:relative;width:100%;background:var(--pt-release-notes-page-bg, #ffffff);border:1px solid var(--pt-release-notes-page-border, #e5e7eb);border-radius:14px;overflow:visible}.pt-release-notes-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem;border-bottom:1px solid var(--pt-release-notes-page-border, #e5e7eb)}.pt-release-notes-page-heading{display:flex;flex-direction:column;gap:.85rem}.pt-release-notes-page-title-row{display:flex;align-items:center;gap:.8rem}.pt-release-notes-page-title-icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;background:var(--pt-release-notes-page-title-icon-bg, #f3f0f8);color:var(--pt-release-notes-page-title-icon-color, #3f2564);font-size:1.15rem}.pt-release-notes-page-title{margin:0;color:var(--pt-release-notes-page-title-color, #1f2937);font-size:1.25rem;font-weight:700}.pt-release-notes-page-subtitle{margin-top:.2rem;color:var(--pt-release-notes-page-subtitle-color, #6b7280);font-size:.875rem}.pt-release-notes-page-counters{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.pt-release-notes-page-counter{display:inline-flex;align-items:center;padding:.3rem .65rem;border-radius:999px;background:var(--pt-release-notes-page-counter-bg, #f3f4f6);color:var(--pt-release-notes-page-counter-color, #4b5563);font-size:.78rem;font-weight:600}.pt-release-notes-page-counter.unread{background:var(--pt-release-notes-page-unread-counter-bg, #f3f0f8);color:var(--pt-release-notes-page-unread-counter-color, #3f2564)}.pt-release-notes-page-counter.read{background:var(--pt-release-notes-page-read-counter-bg, #ecfdf5);color:var(--pt-release-notes-page-read-counter-color, #15803d)}.pt-release-notes-page-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.5rem;border-bottom:1px solid var(--pt-release-notes-page-border, #e5e7eb)}.pt-release-notes-page-toolbar-left{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;min-width:0}.pt-release-notes-page-filters{display:flex;align-items:center;gap:.4rem}.pt-release-notes-page-filter{display:flex;align-items:center;gap:.45rem;padding:.5rem .85rem;border:1px solid var(--pt-release-notes-page-filter-border, #e5e7eb);border-radius:8px;background:var(--pt-release-notes-page-filter-bg, #ffffff);color:var(--pt-release-notes-page-filter-color, #4b5563);font-size:.82rem;font-weight:600;cursor:pointer}.pt-release-notes-page-filter:hover{background:#f9fafb}.pt-release-notes-page-filter.selected{border-color:var(--pt-release-notes-page-primary, #3f2564);background:var(--pt-release-notes-page-selected-bg, #f3f0f8);color:var(--pt-release-notes-page-primary, #3f2564)}.pt-release-notes-page-filter-count{min-width:20px;padding:.1rem .35rem;border-radius:999px;background:#0000000d;text-align:center;font-size:.72rem}.pt-release-notes-page-expand-all{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:34px;padding:.45rem .75rem;border:1px solid var(--pt-release-notes-page-filter-border, #e5e7eb);border-radius:8px;background:#fff;color:var(--pt-release-notes-page-primary, #3f2564);font-size:.78rem;font-weight:700;cursor:pointer;transition:background .15s ease,border-color .15s ease}.pt-release-notes-page-expand-all:hover,.pt-release-notes-page-expand-all.expanded{border-color:var(--pt-release-notes-page-primary, #3f2564);background:var(--pt-release-notes-page-selected-bg, #f3f0f8)}.pt-release-notes-page-search{position:relative;display:flex;align-items:center;width:min(360px,100%)}.pt-release-notes-page-search>.pi-search{position:absolute;left:.85rem;color:#9ca3af}.pt-release-notes-page-search input{width:100%;padding:.65rem 2.5rem .65rem 2.4rem;border:1px solid #d1d5db;border-radius:8px;outline:none;font-size:.85rem}.pt-release-notes-page-search input:focus{border-color:var(--pt-release-notes-page-primary, #3f2564);box-shadow:0 0 0 2px #3f256414}.pt-release-notes-page-search-clear{position:absolute;right:.6rem;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:0;background:transparent;color:#6b7280;cursor:pointer}.pt-release-notes-page-list{width:100%}.pt-release-notes-page-item{position:relative;padding:1.1rem 1.5rem;border-bottom:1px solid var(--pt-release-notes-page-border, #e5e7eb);background:var(--pt-release-notes-page-item-bg, #ffffff);transition:background .15s ease}.pt-release-notes-page-item:last-child{border-bottom:0}.pt-release-notes-page-item:hover{background:var(--pt-release-notes-page-item-hover-bg, #f9fafb)}.pt-release-notes-page-item.unread{background:var(--pt-release-notes-page-unread-bg, #faf8fd)}.pt-release-notes-page-item.unread:hover{background:var(--pt-release-notes-page-unread-hover-bg, #f6f2fa)}.pt-release-notes-page-item.disabled{opacity:.55}.pt-release-notes-page-item-top{position:relative;display:flex;align-items:flex-start;gap:1rem}.pt-release-notes-page-item-icon-wrapper{flex:0 0 auto}.pt-release-notes-page-item-icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;background:var(--pt-release-notes-page-item-icon-bg, #f3f0f8);color:var(--pt-release-notes-page-primary, #3f2564);font-size:1rem}.pt-release-notes-page-item-content{flex:1 1 auto;min-width:0}.pt-release-notes-page-version-row{display:flex;align-items:center;flex-wrap:wrap;gap:.65rem}.pt-release-notes-page-version{display:inline-flex;align-items:center;padding:.25rem .55rem;border-radius:6px;background:var(--pt-release-notes-page-selected-bg, #f3f0f8);color:var(--pt-release-notes-page-primary, #3f2564);font-size:.78rem;font-weight:800}.pt-release-notes-page-item-title{color:var(--pt-release-notes-page-text-color, #1f2937);font-size:.9rem;font-weight:700}.pt-release-notes-page-summary{margin-top:.45rem;color:var(--pt-release-notes-page-metadata-color, #6b7280);font-size:.85rem;line-height:1.5}.pt-release-notes-page-metadata{display:flex;align-items:center;flex-wrap:wrap;gap:1rem;margin-top:.5rem;color:var(--pt-release-notes-page-metadata-color, #6b7280);font-size:.78rem}.pt-release-notes-page-metadata span{display:inline-flex;align-items:center;gap:.35rem}.pt-release-notes-page-stats{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;margin-top:.8rem}.pt-release-notes-page-stat{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .6rem;border-radius:999px;font-size:.72rem;font-weight:600}.pt-release-notes-page-stat.new{background:#dcfce7;color:#15803d}.pt-release-notes-page-stat.improvement{background:#dbeafe;color:#1d4ed8}.pt-release-notes-page-stat.bug-fix{background:#fee2e2;color:#b91c1c}.pt-release-notes-page-unread-indicator{position:absolute;top:50%;right:-1rem;width:7px;height:7px;border-radius:50%;background:var(--pt-release-notes-page-unread-indicator, #3f2564);transform:translateY(-50%)}.pt-release-notes-page-details{display:flex;flex-direction:column;gap:1rem;margin-top:1rem;margin-left:58px;padding-top:1rem;border-top:1px solid var(--pt-release-notes-page-border, #e5e7eb)}.pt-release-notes-page-detail-section{overflow:hidden;border:1px solid #e5e7eb;border-radius:10px;background:#fff}.pt-release-notes-page-detail-section-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.65rem .85rem;border-bottom:1px solid #e5e7eb}.pt-release-notes-page-detail-section-title{display:flex;align-items:center;gap:.55rem;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.015em}.pt-release-notes-page-detail-section-icon{display:inline-flex;align-items:center;justify-content:center;width:27px;height:27px;border-radius:7px}.pt-release-notes-page-detail-section-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 .4rem;border-radius:999px;font-size:.7rem;font-weight:800}.pt-release-notes-page-detail-section.new .pt-release-notes-page-detail-section-header{background:#f0fdf4}.pt-release-notes-page-detail-section.new .pt-release-notes-page-detail-section-title{color:#15803d}.pt-release-notes-page-detail-section.new .pt-release-notes-page-detail-section-icon,.pt-release-notes-page-detail-section.new .pt-release-notes-page-detail-section-count{background:#dcfce7;color:#15803d}.pt-release-notes-page-detail-section.improvement .pt-release-notes-page-detail-section-header{background:#eff6ff}.pt-release-notes-page-detail-section.improvement .pt-release-notes-page-detail-section-title{color:#1d4ed8}.pt-release-notes-page-detail-section.improvement .pt-release-notes-page-detail-section-icon,.pt-release-notes-page-detail-section.improvement .pt-release-notes-page-detail-section-count{background:#dbeafe;color:#1d4ed8}.pt-release-notes-page-detail-section.bug-fix .pt-release-notes-page-detail-section-header{background:#fef2f2}.pt-release-notes-page-detail-section.bug-fix .pt-release-notes-page-detail-section-title{color:#b91c1c}.pt-release-notes-page-detail-section.bug-fix .pt-release-notes-page-detail-section-icon,.pt-release-notes-page-detail-section.bug-fix .pt-release-notes-page-detail-section-count{background:#fee2e2;color:#b91c1c}.pt-release-notes-page-detail-section-content{display:flex;flex-direction:column;padding:.35rem}.pt-release-notes-page-detail{display:flex;align-items:flex-start;gap:.75rem;width:100%;padding:.7rem;border:0;border-radius:8px;background:transparent;color:inherit;text-align:left;cursor:pointer}.pt-release-notes-page-detail:hover:not(:disabled){background:#f9fafb}.pt-release-notes-page-detail.disabled{opacity:.55;cursor:default}.pt-release-notes-page-detail-icon{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px}.pt-release-notes-page-detail.new .pt-release-notes-page-detail-icon{background:#dcfce7;color:#15803d}.pt-release-notes-page-detail.improvement .pt-release-notes-page-detail-icon{background:#dbeafe;color:#1d4ed8}.pt-release-notes-page-detail.bug-fix .pt-release-notes-page-detail-icon{background:#fee2e2;color:#b91c1c}.pt-release-notes-page-detail-content{flex:1;min-width:0}.pt-release-notes-page-detail-title{color:#1f2937;font-size:.84rem;font-weight:700}.pt-release-notes-page-detail-description{margin-top:.25rem;color:#6b7280;font-size:.78rem;line-height:1.5}.pt-release-notes-page-detail-link{flex:0 0 auto;align-self:center;color:#6b7280;font-size:.72rem}.pt-release-notes-page-details-action{display:flex;justify-content:center;margin-top:.8rem;margin-left:58px}.pt-release-notes-page-details-button{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.45rem .75rem;border:0;border-radius:7px;background:transparent;color:var(--pt-release-notes-page-primary, #3f2564);font-size:.78rem;font-weight:700;cursor:pointer}.pt-release-notes-page-details-button:hover:not(:disabled){background:var(--pt-release-notes-page-selected-bg, #f3f0f8)}.pt-release-notes-page-details-button:disabled{opacity:.5;cursor:default}.pt-release-notes-page-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:280px;padding:3rem;color:#6b7280;text-align:center}.pt-release-notes-page-empty-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;margin-bottom:1rem;border-radius:50%;background:#f3f4f6;color:#9ca3af;font-size:1.6rem}.pt-release-notes-page-empty-text{max-width:450px;font-size:.9rem}.pt-release-notes-page-loading{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:100px;color:#6b7280;font-size:.85rem}.pt-release-notes-page-pagination{display:flex;align-items:center;justify-content:center;width:100%;padding:.75rem 1rem;box-sizing:border-box;border-top:1px solid var(--pt-release-notes-page-border, #e5e7eb);background:var(--pt-release-notes-page-pagination-bg, #ffffff)}.pt-release-notes-page-pagination ::ng-deep .p-paginator{width:100%;border:0;background:transparent}@media(max-width:768px){.pt-release-notes-page-header,.pt-release-notes-page-toolbar,.pt-release-notes-page-toolbar-left{flex-direction:column;align-items:stretch}.pt-release-notes-page-filters{overflow-x:auto}.pt-release-notes-page-expand-all{align-self:flex-start}.pt-release-notes-page-search{width:100%}.pt-release-notes-page-item{padding:1rem 1.1rem}.pt-release-notes-page-details,.pt-release-notes-page-details-action{margin-left:0}.pt-release-notes-page-unread-indicator{right:0}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2$5.Paginator, selector: "p-paginator", inputs: ["pageLinkSize", "styleClass", "alwaysShow", "dropdownAppendTo", "templateLeft", "templateRight", "dropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showFirstLastIcon", "totalRecords", "rows", "rowsPerPageOptions", "showJumpToPageDropdown", "showJumpToPageInput", "jumpToPageItemTemplate", "showPageLinks", "locale", "dropdownItemTemplate", "first", "appendTo"], outputs: ["onPageChange"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12974
13189
|
}
|
|
12975
13190
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTReleaseNotesPageComponent, decorators: [{
|
|
12976
13191
|
type: Component,
|