ng-prime-tools 1.1.21 → 1.1.23
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.
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Pipe, EventEmitter, ViewChild, Output, Input, Component, NgModule, Injectable, Inject, HostListener, ContentChild, Directive, ContentChildren,
|
|
2
|
+
import { Pipe, EventEmitter, ViewChild, Output, Input, Component, NgModule, Injectable, Inject, HostListener, ChangeDetectionStrategy, ContentChild, Directive, ContentChildren, 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,19 +55,21 @@ 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/
|
|
58
|
+
import * as i2$1 from 'primeng/popover';
|
|
59
|
+
import { PopoverModule } from 'primeng/popover';
|
|
60
|
+
import * as i2$2 from 'primeng/breadcrumb';
|
|
59
61
|
import { BreadcrumbModule } from 'primeng/breadcrumb';
|
|
60
62
|
import * as i3$7 from 'primeng/confirmdialog';
|
|
61
63
|
import { ConfirmDialogModule } from 'primeng/confirmdialog';
|
|
62
|
-
import * as i2$
|
|
64
|
+
import * as i2$3 from 'primeng/toast';
|
|
63
65
|
import { ToastModule } from 'primeng/toast';
|
|
64
|
-
import * as i2$
|
|
66
|
+
import * as i2$4 from 'primeng/dialog';
|
|
65
67
|
import { DialogModule } from 'primeng/dialog';
|
|
66
|
-
import * as i2$
|
|
68
|
+
import * as i2$5 from 'primeng/accordion';
|
|
67
69
|
import { AccordionModule } from 'primeng/accordion';
|
|
68
70
|
import * as i5$1 from 'primeng/menu';
|
|
69
71
|
import { MenuModule } from 'primeng/menu';
|
|
70
|
-
import * as i2$
|
|
72
|
+
import * as i2$6 from 'primeng/paginator';
|
|
71
73
|
import { PaginatorModule } from 'primeng/paginator';
|
|
72
74
|
|
|
73
75
|
/**
|
|
@@ -6555,6 +6557,199 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
6555
6557
|
args: ['document:click']
|
|
6556
6558
|
}] } });
|
|
6557
6559
|
|
|
6560
|
+
class PTReleaseNotesComponent {
|
|
6561
|
+
constructor() {
|
|
6562
|
+
this.releases = [];
|
|
6563
|
+
this.config = {};
|
|
6564
|
+
this.loading = false;
|
|
6565
|
+
this.hasMore = false;
|
|
6566
|
+
this.pageSize = 10;
|
|
6567
|
+
this.releaseClick = new EventEmitter();
|
|
6568
|
+
this.viewAll = new EventEmitter();
|
|
6569
|
+
this.loadMore = new EventEmitter();
|
|
6570
|
+
this.currentPage = 0;
|
|
6571
|
+
this.loadMoreRequested = false;
|
|
6572
|
+
}
|
|
6573
|
+
ngOnChanges(changes) {
|
|
6574
|
+
if (changes['loading'] &&
|
|
6575
|
+
changes['loading'].previousValue === true &&
|
|
6576
|
+
changes['loading'].currentValue === false) {
|
|
6577
|
+
this.loadMoreRequested = false;
|
|
6578
|
+
}
|
|
6579
|
+
if (changes['releases'] &&
|
|
6580
|
+
!changes['releases'].firstChange &&
|
|
6581
|
+
(this.releases ?? []).length === 0) {
|
|
6582
|
+
this.currentPage = 0;
|
|
6583
|
+
this.loadMoreRequested = false;
|
|
6584
|
+
}
|
|
6585
|
+
}
|
|
6586
|
+
get language() {
|
|
6587
|
+
return this.config.language ?? 'FR';
|
|
6588
|
+
}
|
|
6589
|
+
get resolvedConfig() {
|
|
6590
|
+
const isFrench = this.language === 'FR';
|
|
6591
|
+
return {
|
|
6592
|
+
visible: this.config.visible ?? true,
|
|
6593
|
+
language: this.language,
|
|
6594
|
+
title: this.config.title ?? (isFrench ? 'Nouveautés' : "What's new"),
|
|
6595
|
+
emptyText: this.config.emptyText ??
|
|
6596
|
+
(isFrench
|
|
6597
|
+
? 'Aucune nouveauté disponible'
|
|
6598
|
+
: 'No release notes available'),
|
|
6599
|
+
icon: this.config.icon ?? 'pi pi-sparkles',
|
|
6600
|
+
badgeLimit: this.config.badgeLimit ?? 99,
|
|
6601
|
+
width: this.config.width ?? '430px',
|
|
6602
|
+
maxHeight: this.config.maxHeight ?? '500px',
|
|
6603
|
+
showBadge: this.config.showBadge ?? true,
|
|
6604
|
+
showHeaderCount: this.config.showHeaderCount ?? true,
|
|
6605
|
+
closePanelOnReleaseClick: this.config.closePanelOnReleaseClick ?? false,
|
|
6606
|
+
showViewAll: this.config.showViewAll ?? false,
|
|
6607
|
+
viewAllText: this.config.viewAllText ??
|
|
6608
|
+
(isFrench ? 'Voir toutes les versions' : 'View all releases'),
|
|
6609
|
+
viewAllIcon: this.config.viewAllIcon ?? 'pi pi-arrow-right',
|
|
6610
|
+
detailsText: this.config.detailsText ??
|
|
6611
|
+
(isFrench ? 'Voir les détails' : 'View details'),
|
|
6612
|
+
newLabel: this.config.newLabel ?? (isFrench ? 'Nouveautés' : 'New'),
|
|
6613
|
+
improvementLabel: this.config.improvementLabel ??
|
|
6614
|
+
(isFrench ? 'Améliorations' : 'Improvements'),
|
|
6615
|
+
bugFixLabel: this.config.bugFixLabel ?? (isFrench ? 'Corrections' : 'Fixes'),
|
|
6616
|
+
infiniteScroll: this.config.infiniteScroll ?? false,
|
|
6617
|
+
infiniteScrollThreshold: this.config.infiniteScrollThreshold ?? 80,
|
|
6618
|
+
loadingText: this.config.loadingText ?? (isFrench ? 'Chargement...' : 'Loading...'),
|
|
6619
|
+
showDetailsText: this.config.showDetailsText ??
|
|
6620
|
+
(isFrench ? 'Afficher tous les détails' : 'Show all details'),
|
|
6621
|
+
hideDetailsText: this.config.hideDetailsText ??
|
|
6622
|
+
(isFrench ? 'Masquer les détails' : 'Hide details'),
|
|
6623
|
+
};
|
|
6624
|
+
}
|
|
6625
|
+
get unreadCount() {
|
|
6626
|
+
if (this.totalUnreadRecords !== undefined) {
|
|
6627
|
+
return Math.max(0, this.totalUnreadRecords);
|
|
6628
|
+
}
|
|
6629
|
+
return (this.releases ?? []).filter((release) => release.read !== true && release.disabled !== true).length;
|
|
6630
|
+
}
|
|
6631
|
+
get badgeValue() {
|
|
6632
|
+
const limit = this.resolvedConfig.badgeLimit;
|
|
6633
|
+
return this.unreadCount > limit ? `${limit}+` : `${this.unreadCount}`;
|
|
6634
|
+
}
|
|
6635
|
+
toggle(event) {
|
|
6636
|
+
if (!this.resolvedConfig.visible) {
|
|
6637
|
+
return;
|
|
6638
|
+
}
|
|
6639
|
+
this.releaseNotesPanel?.toggle(event);
|
|
6640
|
+
}
|
|
6641
|
+
hide() {
|
|
6642
|
+
this.releaseNotesPanel?.hide();
|
|
6643
|
+
}
|
|
6644
|
+
onReleaseClick(release) {
|
|
6645
|
+
if (release.disabled) {
|
|
6646
|
+
return;
|
|
6647
|
+
}
|
|
6648
|
+
this.releaseClick.emit({
|
|
6649
|
+
release,
|
|
6650
|
+
});
|
|
6651
|
+
if (this.resolvedConfig.closePanelOnReleaseClick) {
|
|
6652
|
+
this.hide();
|
|
6653
|
+
}
|
|
6654
|
+
}
|
|
6655
|
+
onDetailsClick(event, release) {
|
|
6656
|
+
event.stopPropagation();
|
|
6657
|
+
if (release.disabled) {
|
|
6658
|
+
return;
|
|
6659
|
+
}
|
|
6660
|
+
this.releaseClick.emit({
|
|
6661
|
+
release,
|
|
6662
|
+
});
|
|
6663
|
+
const detailsUrl = release.detailsUrl?.trim();
|
|
6664
|
+
if (!detailsUrl) {
|
|
6665
|
+
return;
|
|
6666
|
+
}
|
|
6667
|
+
this.navigateToUrl(detailsUrl);
|
|
6668
|
+
this.hide();
|
|
6669
|
+
}
|
|
6670
|
+
onViewAll() {
|
|
6671
|
+
this.viewAll.emit();
|
|
6672
|
+
this.hide();
|
|
6673
|
+
}
|
|
6674
|
+
onScroll(event) {
|
|
6675
|
+
if (!this.resolvedConfig.infiniteScroll ||
|
|
6676
|
+
this.loading ||
|
|
6677
|
+
!this.hasMore ||
|
|
6678
|
+
this.loadMoreRequested) {
|
|
6679
|
+
return;
|
|
6680
|
+
}
|
|
6681
|
+
const element = event.target;
|
|
6682
|
+
const distanceFromBottom = element.scrollHeight - element.scrollTop - element.clientHeight;
|
|
6683
|
+
if (distanceFromBottom > this.resolvedConfig.infiniteScrollThreshold) {
|
|
6684
|
+
return;
|
|
6685
|
+
}
|
|
6686
|
+
this.loadMoreRequested = true;
|
|
6687
|
+
this.currentPage++;
|
|
6688
|
+
this.loadMore.emit({
|
|
6689
|
+
page: this.currentPage,
|
|
6690
|
+
size: this.pageSize,
|
|
6691
|
+
first: this.currentPage * this.pageSize,
|
|
6692
|
+
});
|
|
6693
|
+
}
|
|
6694
|
+
getNewCount(release) {
|
|
6695
|
+
return release.newCount ?? 0;
|
|
6696
|
+
}
|
|
6697
|
+
getImprovementCount(release) {
|
|
6698
|
+
return release.improvementCount ?? 0;
|
|
6699
|
+
}
|
|
6700
|
+
getBugFixCount(release) {
|
|
6701
|
+
return release.bugFixCount ?? 0;
|
|
6702
|
+
}
|
|
6703
|
+
getTotalChangesCount(release) {
|
|
6704
|
+
return (this.getNewCount(release) +
|
|
6705
|
+
this.getImprovementCount(release) +
|
|
6706
|
+
this.getBugFixCount(release));
|
|
6707
|
+
}
|
|
6708
|
+
hasCounters(release) {
|
|
6709
|
+
return this.getTotalChangesCount(release) > 0;
|
|
6710
|
+
}
|
|
6711
|
+
hasDetails(release) {
|
|
6712
|
+
return (release.details ?? []).length > 0;
|
|
6713
|
+
}
|
|
6714
|
+
trackByReleaseId(index, release) {
|
|
6715
|
+
return release.id;
|
|
6716
|
+
}
|
|
6717
|
+
navigateToUrl(url) {
|
|
6718
|
+
const target = url.trim();
|
|
6719
|
+
if (!target) {
|
|
6720
|
+
return;
|
|
6721
|
+
}
|
|
6722
|
+
window.location.href = target;
|
|
6723
|
+
}
|
|
6724
|
+
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 }); }
|
|
6726
|
+
}
|
|
6727
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTReleaseNotesComponent, decorators: [{
|
|
6728
|
+
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: { releaseNotesPanel: [{
|
|
6731
|
+
type: ViewChild,
|
|
6732
|
+
args: ['releaseNotesPanel']
|
|
6733
|
+
}], releases: [{
|
|
6734
|
+
type: Input
|
|
6735
|
+
}], config: [{
|
|
6736
|
+
type: Input
|
|
6737
|
+
}], loading: [{
|
|
6738
|
+
type: Input
|
|
6739
|
+
}], hasMore: [{
|
|
6740
|
+
type: Input
|
|
6741
|
+
}], pageSize: [{
|
|
6742
|
+
type: Input
|
|
6743
|
+
}], totalUnreadRecords: [{
|
|
6744
|
+
type: Input
|
|
6745
|
+
}], releaseClick: [{
|
|
6746
|
+
type: Output
|
|
6747
|
+
}], viewAll: [{
|
|
6748
|
+
type: Output
|
|
6749
|
+
}], loadMore: [{
|
|
6750
|
+
type: Output
|
|
6751
|
+
}] } });
|
|
6752
|
+
|
|
6558
6753
|
class PTNavbarMenuComponent {
|
|
6559
6754
|
constructor() {
|
|
6560
6755
|
this.navBarMenuConfig = {};
|
|
@@ -6564,6 +6759,11 @@ class PTNavbarMenuComponent {
|
|
|
6564
6759
|
this.notificationPage = 0;
|
|
6565
6760
|
this.notificationRows = 10;
|
|
6566
6761
|
this.notificationLoading = false;
|
|
6762
|
+
this.releaseNotes = [];
|
|
6763
|
+
this.releaseNotesConfig = {};
|
|
6764
|
+
this.releaseNotesLoading = false;
|
|
6765
|
+
this.releaseNotesHasMore = false;
|
|
6766
|
+
this.releaseNotesPageSize = 10;
|
|
6567
6767
|
this.toggleSidebar = new EventEmitter();
|
|
6568
6768
|
this.notificationAction = new EventEmitter();
|
|
6569
6769
|
this.notificationClick = new EventEmitter();
|
|
@@ -6572,6 +6772,9 @@ class PTNavbarMenuComponent {
|
|
|
6572
6772
|
this.notificationGlobalAction = new EventEmitter();
|
|
6573
6773
|
this.notificationViewAll = new EventEmitter();
|
|
6574
6774
|
this.notificationLoadMore = new EventEmitter();
|
|
6775
|
+
this.releaseNoteClick = new EventEmitter();
|
|
6776
|
+
this.releaseNotesViewAll = new EventEmitter();
|
|
6777
|
+
this.releaseNotesLoadMore = new EventEmitter();
|
|
6575
6778
|
this.destroy$ = new Subject();
|
|
6576
6779
|
this.dateTimeText = '';
|
|
6577
6780
|
this.isUserMenuOpen = false;
|
|
@@ -6655,6 +6858,20 @@ class PTNavbarMenuComponent {
|
|
|
6655
6858
|
onNotificationLoadMore(event) {
|
|
6656
6859
|
this.notificationLoadMore.emit(event);
|
|
6657
6860
|
}
|
|
6861
|
+
hasReleaseNotes() {
|
|
6862
|
+
return (this.releaseNotes ?? []).length > 0;
|
|
6863
|
+
}
|
|
6864
|
+
onReleaseNoteClick(event) {
|
|
6865
|
+
this.isUserMenuOpen = false;
|
|
6866
|
+
this.releaseNoteClick.emit(event);
|
|
6867
|
+
}
|
|
6868
|
+
onReleaseNotesViewAll() {
|
|
6869
|
+
this.isUserMenuOpen = false;
|
|
6870
|
+
this.releaseNotesViewAll.emit();
|
|
6871
|
+
}
|
|
6872
|
+
onReleaseNotesLoadMore(event) {
|
|
6873
|
+
this.releaseNotesLoadMore.emit(event);
|
|
6874
|
+
}
|
|
6658
6875
|
hasDateTime() {
|
|
6659
6876
|
return !!this.navBarMenuConfig.dateTime;
|
|
6660
6877
|
}
|
|
@@ -6824,9 +7041,7 @@ class PTNavbarMenuComponent {
|
|
|
6824
7041
|
};
|
|
6825
7042
|
}
|
|
6826
7043
|
getUserMenuItems() {
|
|
6827
|
-
return (this.navBarMenuConfig.user?.menuItems ?? []).filter((item) =>
|
|
6828
|
-
return item.visible !== false;
|
|
6829
|
-
});
|
|
7044
|
+
return (this.navBarMenuConfig.user?.menuItems ?? []).filter((item) => item.visible !== false);
|
|
6830
7045
|
}
|
|
6831
7046
|
hasUserMenuItems() {
|
|
6832
7047
|
return this.getUserMenuItems().length > 0;
|
|
@@ -6996,11 +7211,11 @@ class PTNavbarMenuComponent {
|
|
|
6996
7211
|
};
|
|
6997
7212
|
}
|
|
6998
7213
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTNavbarMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6999
|
-
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" }, outputs: { toggleSidebar: "toggleSidebar", notificationAction: "notificationAction", notificationClick: "notificationClick", notificationPanelOpened: "notificationPanelOpened", notificationPanelClosed: "notificationPanelClosed", notificationGlobalAction: "notificationGlobalAction", notificationViewAll: "notificationViewAll", notificationLoadMore: "notificationLoadMore" }, 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=\"navbar-actions\">\n <div class=\"navbar-right\"></div>\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 (loadMore)=\"onNotificationLoadMore($event)\"\n (notificationClick)=\"onNotificationClick($event)\"\n (action)=\"onNotificationAction($event)\"\n (globalAction)=\"onNotificationGlobalAction($event)\"\n (viewAll)=\"onNotificationViewAll()\"\n (panelOpened)=\"onNotificationPanelOpened()\"\n (panelClosed)=\"onNotificationPanelClosed()\"\n ></pt-notification>\n\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{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"] }] }); }
|
|
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"] }] }); }
|
|
7000
7215
|
}
|
|
7001
7216
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTNavbarMenuComponent, decorators: [{
|
|
7002
7217
|
type: Component,
|
|
7003
|
-
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=\"navbar-actions\">\n <div class=\"navbar-right\"></div>\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 (loadMore)=\"onNotificationLoadMore($event)\"\n (notificationClick)=\"onNotificationClick($event)\"\n (action)=\"onNotificationAction($event)\"\n (globalAction)=\"onNotificationGlobalAction($event)\"\n (viewAll)=\"onNotificationViewAll()\"\n (panelOpened)=\"onNotificationPanelOpened()\"\n (panelClosed)=\"onNotificationPanelClosed()\"\n ></pt-notification>\n\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{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"] }]
|
|
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"] }]
|
|
7004
7219
|
}], propDecorators: { navBarMenuConfig: [{
|
|
7005
7220
|
type: Input
|
|
7006
7221
|
}], serverDateTime: [{
|
|
@@ -7019,6 +7234,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
7019
7234
|
type: Input
|
|
7020
7235
|
}], notificationLoading: [{
|
|
7021
7236
|
type: Input
|
|
7237
|
+
}], releaseNotes: [{
|
|
7238
|
+
type: Input
|
|
7239
|
+
}], releaseNotesConfig: [{
|
|
7240
|
+
type: Input
|
|
7241
|
+
}], releaseNotesLoading: [{
|
|
7242
|
+
type: Input
|
|
7243
|
+
}], releaseNotesHasMore: [{
|
|
7244
|
+
type: Input
|
|
7245
|
+
}], releaseNotesPageSize: [{
|
|
7246
|
+
type: Input
|
|
7247
|
+
}], releaseNotesTotalUnreadRecords: [{
|
|
7248
|
+
type: Input
|
|
7022
7249
|
}], toggleSidebar: [{
|
|
7023
7250
|
type: Output
|
|
7024
7251
|
}], notificationAction: [{
|
|
@@ -7035,6 +7262,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
7035
7262
|
type: Output
|
|
7036
7263
|
}], notificationLoadMore: [{
|
|
7037
7264
|
type: Output
|
|
7265
|
+
}], releaseNoteClick: [{
|
|
7266
|
+
type: Output
|
|
7267
|
+
}], releaseNotesViewAll: [{
|
|
7268
|
+
type: Output
|
|
7269
|
+
}], releaseNotesLoadMore: [{
|
|
7270
|
+
type: Output
|
|
7038
7271
|
}], closeUserMenu: [{
|
|
7039
7272
|
type: HostListener,
|
|
7040
7273
|
args: ['document:click']
|
|
@@ -7169,16 +7402,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
7169
7402
|
}]
|
|
7170
7403
|
}] });
|
|
7171
7404
|
|
|
7405
|
+
class PTReleaseNotesModule {
|
|
7406
|
+
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, PopoverModule], exports: [PTReleaseNotesComponent] }); }
|
|
7408
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTReleaseNotesModule, imports: [CommonModule, PopoverModule] }); }
|
|
7409
|
+
}
|
|
7410
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTReleaseNotesModule, decorators: [{
|
|
7411
|
+
type: NgModule,
|
|
7412
|
+
args: [{
|
|
7413
|
+
declarations: [PTReleaseNotesComponent],
|
|
7414
|
+
imports: [CommonModule, PopoverModule],
|
|
7415
|
+
exports: [PTReleaseNotesComponent],
|
|
7416
|
+
}]
|
|
7417
|
+
}] });
|
|
7418
|
+
|
|
7172
7419
|
class PTNavbarMenuModule {
|
|
7173
7420
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTNavbarMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7174
7421
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.14", ngImport: i0, type: PTNavbarMenuModule, declarations: [PTNavbarMenuComponent], imports: [CommonModule,
|
|
7175
7422
|
RouterModule,
|
|
7176
7423
|
PTMenuFancyModule,
|
|
7177
|
-
PTNotificationModule
|
|
7424
|
+
PTNotificationModule,
|
|
7425
|
+
PTReleaseNotesModule], exports: [PTNavbarMenuComponent] }); }
|
|
7178
7426
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTNavbarMenuModule, imports: [CommonModule,
|
|
7179
7427
|
RouterModule,
|
|
7180
7428
|
PTMenuFancyModule,
|
|
7181
|
-
PTNotificationModule
|
|
7429
|
+
PTNotificationModule,
|
|
7430
|
+
PTReleaseNotesModule] }); }
|
|
7182
7431
|
}
|
|
7183
7432
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTNavbarMenuModule, decorators: [{
|
|
7184
7433
|
type: NgModule,
|
|
@@ -7189,6 +7438,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
7189
7438
|
RouterModule,
|
|
7190
7439
|
PTMenuFancyModule,
|
|
7191
7440
|
PTNotificationModule,
|
|
7441
|
+
PTReleaseNotesModule,
|
|
7192
7442
|
],
|
|
7193
7443
|
exports: [PTNavbarMenuComponent],
|
|
7194
7444
|
}]
|
|
@@ -7648,7 +7898,7 @@ class PTBreadCrumbComponent {
|
|
|
7648
7898
|
});
|
|
7649
7899
|
}
|
|
7650
7900
|
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 }); }
|
|
7651
|
-
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$
|
|
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$2.Breadcrumb, selector: "p-breadcrumb", inputs: ["model", "style", "styleClass", "home", "homeAriaLabel"], outputs: ["onItemClick"] }] }); }
|
|
7652
7902
|
}
|
|
7653
7903
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTBreadCrumbComponent, decorators: [{
|
|
7654
7904
|
type: Component,
|
|
@@ -7665,6 +7915,11 @@ class PTPageSkeletonComponent {
|
|
|
7665
7915
|
this.notificationPage = 0;
|
|
7666
7916
|
this.notificationRows = 10;
|
|
7667
7917
|
this.notificationLoading = false;
|
|
7918
|
+
this.releaseNotes = [];
|
|
7919
|
+
this.releaseNotesConfig = {};
|
|
7920
|
+
this.releaseNotesLoading = false;
|
|
7921
|
+
this.releaseNotesHasMore = false;
|
|
7922
|
+
this.releaseNotesPageSize = 10;
|
|
7668
7923
|
this.toggleSidebar = new EventEmitter();
|
|
7669
7924
|
this.notificationAction = new EventEmitter();
|
|
7670
7925
|
this.notificationClick = new EventEmitter();
|
|
@@ -7673,6 +7928,9 @@ class PTPageSkeletonComponent {
|
|
|
7673
7928
|
this.notificationGlobalAction = new EventEmitter();
|
|
7674
7929
|
this.notificationViewAll = new EventEmitter();
|
|
7675
7930
|
this.notificationLoadMore = new EventEmitter();
|
|
7931
|
+
this.releaseNoteClick = new EventEmitter();
|
|
7932
|
+
this.releaseNotesViewAll = new EventEmitter();
|
|
7933
|
+
this.releaseNotesLoadMore = new EventEmitter();
|
|
7676
7934
|
this.isSidebarVisible = true;
|
|
7677
7935
|
}
|
|
7678
7936
|
ngOnInit() {
|
|
@@ -7704,6 +7962,15 @@ class PTPageSkeletonComponent {
|
|
|
7704
7962
|
onNotificationLoadMore(event) {
|
|
7705
7963
|
this.notificationLoadMore.emit(event);
|
|
7706
7964
|
}
|
|
7965
|
+
onReleaseNoteClick(event) {
|
|
7966
|
+
this.releaseNoteClick.emit(event);
|
|
7967
|
+
}
|
|
7968
|
+
onReleaseNotesViewAll() {
|
|
7969
|
+
this.releaseNotesViewAll.emit();
|
|
7970
|
+
}
|
|
7971
|
+
onReleaseNotesLoadMore(event) {
|
|
7972
|
+
this.releaseNotesLoadMore.emit(event);
|
|
7973
|
+
}
|
|
7707
7974
|
initializeBackgroundCardConfig() {
|
|
7708
7975
|
this.pageSkeletonConfig.backgroundCardConfig = {
|
|
7709
7976
|
identifier: 'pt-page-skeleton/background',
|
|
@@ -7736,11 +8003,11 @@ class PTPageSkeletonComponent {
|
|
|
7736
8003
|
};
|
|
7737
8004
|
}
|
|
7738
8005
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTPageSkeletonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7739
|
-
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" }, outputs: { toggleSidebar: "toggleSidebar", notificationAction: "notificationAction", notificationClick: "notificationClick", notificationPanelOpened: "notificationPanelOpened", notificationPanelClosed: "notificationPanelClosed", notificationGlobalAction: "notificationGlobalAction", notificationViewAll: "notificationViewAll", notificationLoadMore: "notificationLoadMore" }, 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 (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 ></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"], outputs: ["toggleSidebar", "notificationAction", "notificationClick", "notificationPanelOpened", "notificationPanelClosed", "notificationGlobalAction", "notificationViewAll", "notificationLoadMore"] }, { 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"] }] }); }
|
|
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"] }] }); }
|
|
7740
8007
|
}
|
|
7741
8008
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTPageSkeletonComponent, decorators: [{
|
|
7742
8009
|
type: Component,
|
|
7743
|
-
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 (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 ></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"] }]
|
|
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"] }]
|
|
7744
8011
|
}], propDecorators: { pageSkeletonConfig: [{
|
|
7745
8012
|
type: Input
|
|
7746
8013
|
}], serverDateTime: [{
|
|
@@ -7759,6 +8026,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
7759
8026
|
type: Input
|
|
7760
8027
|
}], notificationLoading: [{
|
|
7761
8028
|
type: Input
|
|
8029
|
+
}], releaseNotes: [{
|
|
8030
|
+
type: Input
|
|
8031
|
+
}], releaseNotesConfig: [{
|
|
8032
|
+
type: Input
|
|
8033
|
+
}], releaseNotesLoading: [{
|
|
8034
|
+
type: Input
|
|
8035
|
+
}], releaseNotesHasMore: [{
|
|
8036
|
+
type: Input
|
|
8037
|
+
}], releaseNotesPageSize: [{
|
|
8038
|
+
type: Input
|
|
8039
|
+
}], releaseNotesTotalUnreadRecords: [{
|
|
8040
|
+
type: Input
|
|
7762
8041
|
}], toggleSidebar: [{
|
|
7763
8042
|
type: Output
|
|
7764
8043
|
}], notificationAction: [{
|
|
@@ -7775,6 +8054,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
7775
8054
|
type: Output
|
|
7776
8055
|
}], notificationLoadMore: [{
|
|
7777
8056
|
type: Output
|
|
8057
|
+
}], releaseNoteClick: [{
|
|
8058
|
+
type: Output
|
|
8059
|
+
}], releaseNotesViewAll: [{
|
|
8060
|
+
type: Output
|
|
8061
|
+
}], releaseNotesLoadMore: [{
|
|
8062
|
+
type: Output
|
|
7778
8063
|
}] } });
|
|
7779
8064
|
|
|
7780
8065
|
class PTFooterModule {
|
|
@@ -8489,7 +8774,7 @@ class PTToastNotifierComponent {
|
|
|
8489
8774
|
this.messageService.clear();
|
|
8490
8775
|
}
|
|
8491
8776
|
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 }); }
|
|
8492
|
-
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$
|
|
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$3.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "motionOptions", "breakpoints"], outputs: ["onClose"] }] }); }
|
|
8493
8778
|
}
|
|
8494
8779
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTToastNotifierComponent, decorators: [{
|
|
8495
8780
|
type: Component,
|
|
@@ -8660,7 +8945,7 @@ class PTDialogComponent {
|
|
|
8660
8945
|
return this.removeTextUtilityClasses(this.config.headerIconClass);
|
|
8661
8946
|
}
|
|
8662
8947
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8663
|
-
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"] }] }); }
|
|
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"] }] }); }
|
|
8664
8949
|
}
|
|
8665
8950
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTDialogComponent, decorators: [{
|
|
8666
8951
|
type: Component,
|
|
@@ -9442,7 +9727,7 @@ class PTAccordionComponent {
|
|
|
9442
9727
|
.filter(Boolean));
|
|
9443
9728
|
}
|
|
9444
9729
|
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 }); }
|
|
9445
|
-
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 }); }
|
|
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 }); }
|
|
9446
9731
|
}
|
|
9447
9732
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTAccordionComponent, decorators: [{
|
|
9448
9733
|
type: Component,
|
|
@@ -12228,7 +12513,7 @@ class PTNotificationsPageComponent {
|
|
|
12228
12513
|
return String(value).padStart(2, '0');
|
|
12229
12514
|
}
|
|
12230
12515
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTNotificationsPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12231
|
-
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"] }] }); }
|
|
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"] }] }); }
|
|
12232
12517
|
}
|
|
12233
12518
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTNotificationsPageComponent, decorators: [{
|
|
12234
12519
|
type: Component,
|
|
@@ -12273,6 +12558,461 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
12273
12558
|
}]
|
|
12274
12559
|
}] });
|
|
12275
12560
|
|
|
12561
|
+
class PTReleaseNotesPageComponent {
|
|
12562
|
+
constructor() {
|
|
12563
|
+
/**
|
|
12564
|
+
* Current server page only.
|
|
12565
|
+
*/
|
|
12566
|
+
this.releases = [];
|
|
12567
|
+
/**
|
|
12568
|
+
* Loading state of the current request.
|
|
12569
|
+
*/
|
|
12570
|
+
this.loading = false;
|
|
12571
|
+
/**
|
|
12572
|
+
* Number of records matching:
|
|
12573
|
+
*
|
|
12574
|
+
* search + selected filter
|
|
12575
|
+
*
|
|
12576
|
+
* Used by paginator.
|
|
12577
|
+
*/
|
|
12578
|
+
this.totalRecords = 0;
|
|
12579
|
+
/**
|
|
12580
|
+
* Number of all releases matching the search
|
|
12581
|
+
* before applying ALL / UNREAD / READ.
|
|
12582
|
+
*/
|
|
12583
|
+
this.totalAllRecords = 0;
|
|
12584
|
+
/**
|
|
12585
|
+
* Current zero-based server page.
|
|
12586
|
+
*/
|
|
12587
|
+
this.page = 0;
|
|
12588
|
+
/**
|
|
12589
|
+
* Current server page size.
|
|
12590
|
+
*/
|
|
12591
|
+
this.rows = 10;
|
|
12592
|
+
/**
|
|
12593
|
+
* Available server page sizes.
|
|
12594
|
+
*/
|
|
12595
|
+
this.rowsPerPageOptions = [5, 10, 20, 50];
|
|
12596
|
+
this.config = {};
|
|
12597
|
+
this.queryChange = new EventEmitter();
|
|
12598
|
+
this.searchText = '';
|
|
12599
|
+
this.selectedFilter = 'ALL';
|
|
12600
|
+
this.destroy$ = new Subject();
|
|
12601
|
+
this.searchSubject = new Subject();
|
|
12602
|
+
this.expandedReleaseIds = new Set();
|
|
12603
|
+
this.searchSubject
|
|
12604
|
+
.pipe(debounceTime(300), distinctUntilChanged(), takeUntil(this.destroy$))
|
|
12605
|
+
.subscribe(() => {
|
|
12606
|
+
this.page = 0;
|
|
12607
|
+
this.collapseAllDetails();
|
|
12608
|
+
this.emitQueryChange();
|
|
12609
|
+
});
|
|
12610
|
+
}
|
|
12611
|
+
ngOnDestroy() {
|
|
12612
|
+
this.destroy$.next();
|
|
12613
|
+
this.destroy$.complete();
|
|
12614
|
+
}
|
|
12615
|
+
get language() {
|
|
12616
|
+
return this.config.language ?? 'FR';
|
|
12617
|
+
}
|
|
12618
|
+
get resolvedConfig() {
|
|
12619
|
+
const isFrench = this.language === 'FR';
|
|
12620
|
+
return {
|
|
12621
|
+
visible: this.config.visible ?? true,
|
|
12622
|
+
language: this.language,
|
|
12623
|
+
title: this.config.title ?? (isFrench ? 'Notes de version' : 'Release notes'),
|
|
12624
|
+
emptyText: this.config.emptyText ??
|
|
12625
|
+
(isFrench
|
|
12626
|
+
? 'Aucune note de version disponible'
|
|
12627
|
+
: 'No release notes available'),
|
|
12628
|
+
icon: this.config.icon ?? 'pi pi-sparkles',
|
|
12629
|
+
badgeLimit: this.config.badgeLimit ?? 99,
|
|
12630
|
+
width: this.config.width ?? '450px',
|
|
12631
|
+
maxHeight: this.config.maxHeight ?? '500px',
|
|
12632
|
+
showBadge: this.config.showBadge ?? true,
|
|
12633
|
+
showHeaderCount: this.config.showHeaderCount ?? true,
|
|
12634
|
+
closePanelOnReleaseClick: this.config.closePanelOnReleaseClick ?? false,
|
|
12635
|
+
showViewAll: this.config.showViewAll ?? true,
|
|
12636
|
+
viewAllText: this.config.viewAllText ??
|
|
12637
|
+
(isFrench ? 'Voir toutes les versions' : 'View all releases'),
|
|
12638
|
+
viewAllIcon: this.config.viewAllIcon ?? 'pi pi-arrow-right',
|
|
12639
|
+
detailsText: this.config.detailsText ??
|
|
12640
|
+
(isFrench ? 'Voir les détails' : 'View details'),
|
|
12641
|
+
newLabel: this.config.newLabel ?? (isFrench ? 'Nouveautés' : 'New'),
|
|
12642
|
+
improvementLabel: this.config.improvementLabel ??
|
|
12643
|
+
(isFrench ? 'Améliorations' : 'Improvements'),
|
|
12644
|
+
bugFixLabel: this.config.bugFixLabel ?? (isFrench ? 'Corrections' : 'Fixes'),
|
|
12645
|
+
infiniteScroll: this.config.infiniteScroll ?? false,
|
|
12646
|
+
infiniteScrollThreshold: this.config.infiniteScrollThreshold ?? 100,
|
|
12647
|
+
loadingText: this.config.loadingText ?? (isFrench ? 'Chargement...' : 'Loading...'),
|
|
12648
|
+
showDetailsText: this.config.showDetailsText ??
|
|
12649
|
+
(isFrench ? 'Afficher tous les détails' : 'Show all details'),
|
|
12650
|
+
hideDetailsText: this.config.hideDetailsText ??
|
|
12651
|
+
(isFrench ? 'Masquer les détails' : 'Hide details'),
|
|
12652
|
+
};
|
|
12653
|
+
}
|
|
12654
|
+
getReleases() {
|
|
12655
|
+
return this.releases ?? [];
|
|
12656
|
+
}
|
|
12657
|
+
getDisplayedReleases() {
|
|
12658
|
+
return this.getReleases();
|
|
12659
|
+
}
|
|
12660
|
+
hasReleases() {
|
|
12661
|
+
return this.getDisplayedReleases().length > 0;
|
|
12662
|
+
}
|
|
12663
|
+
getTitle() {
|
|
12664
|
+
return (this.config.title?.trim() ||
|
|
12665
|
+
(this.language === 'FR' ? 'Notes de version' : 'Release notes'));
|
|
12666
|
+
}
|
|
12667
|
+
getSubtitle() {
|
|
12668
|
+
return this.language === 'FR'
|
|
12669
|
+
? 'Découvrez les nouveautés, améliorations et corrections.'
|
|
12670
|
+
: 'Discover new features, improvements and fixes.';
|
|
12671
|
+
}
|
|
12672
|
+
getTotalCount() {
|
|
12673
|
+
return Math.max(0, this.totalAllRecords ?? 0);
|
|
12674
|
+
}
|
|
12675
|
+
getUnreadCount() {
|
|
12676
|
+
if (this.totalUnreadRecords !== undefined) {
|
|
12677
|
+
return Math.max(0, this.totalUnreadRecords);
|
|
12678
|
+
}
|
|
12679
|
+
return this.getReleases().filter((release) => release.read !== true).length;
|
|
12680
|
+
}
|
|
12681
|
+
getReadCount() {
|
|
12682
|
+
if (this.totalReadRecords !== undefined) {
|
|
12683
|
+
return Math.max(0, this.totalReadRecords);
|
|
12684
|
+
}
|
|
12685
|
+
return this.getReleases().filter((release) => release.read === true).length;
|
|
12686
|
+
}
|
|
12687
|
+
showCounters() {
|
|
12688
|
+
return this.config.showHeaderCount !== false;
|
|
12689
|
+
}
|
|
12690
|
+
showPagination() {
|
|
12691
|
+
return this.totalRecords > 0;
|
|
12692
|
+
}
|
|
12693
|
+
getAllLabel() {
|
|
12694
|
+
return this.language === 'FR' ? 'Toutes' : 'All';
|
|
12695
|
+
}
|
|
12696
|
+
getUnreadLabel() {
|
|
12697
|
+
return this.language === 'FR' ? 'Non lues' : 'Unread';
|
|
12698
|
+
}
|
|
12699
|
+
getReadLabel() {
|
|
12700
|
+
return this.language === 'FR' ? 'Lues' : 'Read';
|
|
12701
|
+
}
|
|
12702
|
+
getSearchPlaceholder() {
|
|
12703
|
+
return this.language === 'FR'
|
|
12704
|
+
? 'Rechercher une note de version...'
|
|
12705
|
+
: 'Search release notes...';
|
|
12706
|
+
}
|
|
12707
|
+
getEmptyText() {
|
|
12708
|
+
return this.resolvedConfig.emptyText;
|
|
12709
|
+
}
|
|
12710
|
+
getNoSearchResultText() {
|
|
12711
|
+
return this.language === 'FR'
|
|
12712
|
+
? 'Aucune note de version ne correspond à votre recherche'
|
|
12713
|
+
: 'No release notes match your search';
|
|
12714
|
+
}
|
|
12715
|
+
getEmptyIcon() {
|
|
12716
|
+
return 'pi pi-sparkles';
|
|
12717
|
+
}
|
|
12718
|
+
getRowsPerPageOptions() {
|
|
12719
|
+
const values = (this.rowsPerPageOptions ?? [])
|
|
12720
|
+
.filter((value) => Number.isFinite(value) && value > 0)
|
|
12721
|
+
.map((value) => Math.floor(value));
|
|
12722
|
+
const uniqueValues = Array.from(new Set(values));
|
|
12723
|
+
if (this.rows > 0 && !uniqueValues.includes(this.rows)) {
|
|
12724
|
+
uniqueValues.push(this.rows);
|
|
12725
|
+
}
|
|
12726
|
+
return uniqueValues.sort((a, b) => a - b);
|
|
12727
|
+
}
|
|
12728
|
+
showCurrentPageReport() {
|
|
12729
|
+
return true;
|
|
12730
|
+
}
|
|
12731
|
+
getCurrentPageReportTemplate() {
|
|
12732
|
+
return this.language === 'FR'
|
|
12733
|
+
? '{first} - {last} sur {totalRecords}'
|
|
12734
|
+
: '{first} - {last} of {totalRecords}';
|
|
12735
|
+
}
|
|
12736
|
+
getFirst() {
|
|
12737
|
+
return Math.max(0, this.page) * Math.max(1, this.rows);
|
|
12738
|
+
}
|
|
12739
|
+
hasSearch() {
|
|
12740
|
+
return this.searchText.trim().length > 0;
|
|
12741
|
+
}
|
|
12742
|
+
selectFilter(filter) {
|
|
12743
|
+
if (this.selectedFilter === filter) {
|
|
12744
|
+
return;
|
|
12745
|
+
}
|
|
12746
|
+
this.selectedFilter = filter;
|
|
12747
|
+
this.page = 0;
|
|
12748
|
+
this.collapseAllDetails();
|
|
12749
|
+
this.emitQueryChange();
|
|
12750
|
+
}
|
|
12751
|
+
isFilterSelected(filter) {
|
|
12752
|
+
return this.selectedFilter === filter;
|
|
12753
|
+
}
|
|
12754
|
+
onSearch(value) {
|
|
12755
|
+
this.searchText = value ?? '';
|
|
12756
|
+
this.searchSubject.next(this.searchText.trim());
|
|
12757
|
+
}
|
|
12758
|
+
clearSearch() {
|
|
12759
|
+
if (!this.hasSearch()) {
|
|
12760
|
+
return;
|
|
12761
|
+
}
|
|
12762
|
+
this.searchText = '';
|
|
12763
|
+
this.page = 0;
|
|
12764
|
+
this.collapseAllDetails();
|
|
12765
|
+
this.emitQueryChange();
|
|
12766
|
+
}
|
|
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
|
+
onPageChange(event) {
|
|
12778
|
+
const previousRows = Math.max(1, this.rows);
|
|
12779
|
+
const nextRows = event.rows !== undefined && event.rows !== null && event.rows > 0
|
|
12780
|
+
? event.rows
|
|
12781
|
+
: previousRows;
|
|
12782
|
+
const rowsChanged = nextRows !== previousRows;
|
|
12783
|
+
this.rows = nextRows;
|
|
12784
|
+
if (rowsChanged) {
|
|
12785
|
+
this.page = 0;
|
|
12786
|
+
}
|
|
12787
|
+
else if (event.page !== undefined && event.page !== null) {
|
|
12788
|
+
this.page = Math.max(0, event.page);
|
|
12789
|
+
}
|
|
12790
|
+
else {
|
|
12791
|
+
const nextFirst = event.first ?? 0;
|
|
12792
|
+
this.page = Math.max(0, Math.floor(nextFirst / this.rows));
|
|
12793
|
+
}
|
|
12794
|
+
this.collapseAllDetails();
|
|
12795
|
+
this.emitQueryChange();
|
|
12796
|
+
}
|
|
12797
|
+
getReleaseClasses(release) {
|
|
12798
|
+
const classes = ['pt-release-notes-page-item'];
|
|
12799
|
+
if (release.read !== true) {
|
|
12800
|
+
classes.push('unread');
|
|
12801
|
+
}
|
|
12802
|
+
if (release.disabled) {
|
|
12803
|
+
classes.push('disabled');
|
|
12804
|
+
}
|
|
12805
|
+
if (release.styleClass) {
|
|
12806
|
+
classes.push(release.styleClass);
|
|
12807
|
+
}
|
|
12808
|
+
return classes.join(' ');
|
|
12809
|
+
}
|
|
12810
|
+
getNewCount(release) {
|
|
12811
|
+
return release.newCount ?? this.getDetailsByType(release, 'NEW').length;
|
|
12812
|
+
}
|
|
12813
|
+
getImprovementCount(release) {
|
|
12814
|
+
return (release.improvementCount ??
|
|
12815
|
+
this.getDetailsByType(release, 'IMPROVEMENT').length);
|
|
12816
|
+
}
|
|
12817
|
+
getBugFixCount(release) {
|
|
12818
|
+
return (release.bugFixCount ?? this.getDetailsByType(release, 'BUG_FIX').length);
|
|
12819
|
+
}
|
|
12820
|
+
getTotalChangesCount(release) {
|
|
12821
|
+
return (this.getNewCount(release) +
|
|
12822
|
+
this.getImprovementCount(release) +
|
|
12823
|
+
this.getBugFixCount(release));
|
|
12824
|
+
}
|
|
12825
|
+
hasCounters(release) {
|
|
12826
|
+
return this.getTotalChangesCount(release) > 0;
|
|
12827
|
+
}
|
|
12828
|
+
hasNewItems(release) {
|
|
12829
|
+
return this.getNewCount(release) > 0;
|
|
12830
|
+
}
|
|
12831
|
+
hasImprovements(release) {
|
|
12832
|
+
return this.getImprovementCount(release) > 0;
|
|
12833
|
+
}
|
|
12834
|
+
hasBugFixes(release) {
|
|
12835
|
+
return this.getBugFixCount(release) > 0;
|
|
12836
|
+
}
|
|
12837
|
+
hasDetails(release) {
|
|
12838
|
+
return this.getDetails(release).length > 0;
|
|
12839
|
+
}
|
|
12840
|
+
getDetails(release) {
|
|
12841
|
+
return release.details ?? [];
|
|
12842
|
+
}
|
|
12843
|
+
getDetailsByType(release, type) {
|
|
12844
|
+
return this.getDetails(release).filter((detail) => detail.type === type);
|
|
12845
|
+
}
|
|
12846
|
+
hasDetailsByType(release, type) {
|
|
12847
|
+
return this.getDetailsByType(release, type).length > 0;
|
|
12848
|
+
}
|
|
12849
|
+
isDetailsExpanded(release) {
|
|
12850
|
+
return this.expandedReleaseIds.has(String(release.id));
|
|
12851
|
+
}
|
|
12852
|
+
toggleDetails(release) {
|
|
12853
|
+
if (!this.hasDetails(release) || release.disabled) {
|
|
12854
|
+
return;
|
|
12855
|
+
}
|
|
12856
|
+
const releaseId = String(release.id);
|
|
12857
|
+
if (this.expandedReleaseIds.has(releaseId)) {
|
|
12858
|
+
this.expandedReleaseIds.delete(releaseId);
|
|
12859
|
+
return;
|
|
12860
|
+
}
|
|
12861
|
+
this.expandedReleaseIds.add(releaseId);
|
|
12862
|
+
}
|
|
12863
|
+
hasExpandableReleases() {
|
|
12864
|
+
return this.getDisplayedReleases().some((release) => !release.disabled && this.hasDetails(release));
|
|
12865
|
+
}
|
|
12866
|
+
areAllDetailsExpanded() {
|
|
12867
|
+
const expandableReleases = this.getDisplayedReleases().filter((release) => !release.disabled && this.hasDetails(release));
|
|
12868
|
+
if (expandableReleases.length === 0) {
|
|
12869
|
+
return false;
|
|
12870
|
+
}
|
|
12871
|
+
return expandableReleases.every((release) => this.expandedReleaseIds.has(String(release.id)));
|
|
12872
|
+
}
|
|
12873
|
+
toggleAllDetails() {
|
|
12874
|
+
if (!this.hasExpandableReleases()) {
|
|
12875
|
+
return;
|
|
12876
|
+
}
|
|
12877
|
+
if (this.areAllDetailsExpanded()) {
|
|
12878
|
+
this.collapseAllDetails();
|
|
12879
|
+
return;
|
|
12880
|
+
}
|
|
12881
|
+
this.expandAllDetails();
|
|
12882
|
+
}
|
|
12883
|
+
expandAllDetails() {
|
|
12884
|
+
this.getDisplayedReleases().forEach((release) => {
|
|
12885
|
+
if (release.disabled || !this.hasDetails(release)) {
|
|
12886
|
+
return;
|
|
12887
|
+
}
|
|
12888
|
+
this.expandedReleaseIds.add(String(release.id));
|
|
12889
|
+
});
|
|
12890
|
+
}
|
|
12891
|
+
collapseAllDetails() {
|
|
12892
|
+
this.expandedReleaseIds.clear();
|
|
12893
|
+
}
|
|
12894
|
+
getToggleAllDetailsText() {
|
|
12895
|
+
if (this.areAllDetailsExpanded()) {
|
|
12896
|
+
return this.language === 'FR' ? 'Tout réduire' : 'Collapse all';
|
|
12897
|
+
}
|
|
12898
|
+
return this.language === 'FR' ? 'Tout développer' : 'Expand all';
|
|
12899
|
+
}
|
|
12900
|
+
getDetailsButtonText(release) {
|
|
12901
|
+
return this.isDetailsExpanded(release)
|
|
12902
|
+
? this.resolvedConfig.hideDetailsText
|
|
12903
|
+
: this.resolvedConfig.showDetailsText;
|
|
12904
|
+
}
|
|
12905
|
+
getDetailIcon(detail) {
|
|
12906
|
+
if (detail.icon) {
|
|
12907
|
+
return detail.icon;
|
|
12908
|
+
}
|
|
12909
|
+
switch (detail.type) {
|
|
12910
|
+
case 'NEW':
|
|
12911
|
+
return 'pi pi-plus-circle';
|
|
12912
|
+
case 'IMPROVEMENT':
|
|
12913
|
+
return 'pi pi-arrow-up-right';
|
|
12914
|
+
case 'BUG_FIX':
|
|
12915
|
+
return 'pi pi-wrench';
|
|
12916
|
+
default:
|
|
12917
|
+
return 'pi pi-circle';
|
|
12918
|
+
}
|
|
12919
|
+
}
|
|
12920
|
+
getDetailTypeLabel(detail) {
|
|
12921
|
+
return this.getDetailTypeSectionLabel(detail.type);
|
|
12922
|
+
}
|
|
12923
|
+
getDetailTypeSectionLabel(type) {
|
|
12924
|
+
switch (type) {
|
|
12925
|
+
case 'NEW':
|
|
12926
|
+
return this.resolvedConfig.newLabel;
|
|
12927
|
+
case 'IMPROVEMENT':
|
|
12928
|
+
return this.resolvedConfig.improvementLabel;
|
|
12929
|
+
case 'BUG_FIX':
|
|
12930
|
+
return this.resolvedConfig.bugFixLabel;
|
|
12931
|
+
}
|
|
12932
|
+
}
|
|
12933
|
+
getDetailTypeSectionIcon(type) {
|
|
12934
|
+
switch (type) {
|
|
12935
|
+
case 'NEW':
|
|
12936
|
+
return 'pi pi-plus-circle';
|
|
12937
|
+
case 'IMPROVEMENT':
|
|
12938
|
+
return 'pi pi-arrow-up-right';
|
|
12939
|
+
case 'BUG_FIX':
|
|
12940
|
+
return 'pi pi-wrench';
|
|
12941
|
+
}
|
|
12942
|
+
}
|
|
12943
|
+
getDetailTypeSectionClass(type) {
|
|
12944
|
+
switch (type) {
|
|
12945
|
+
case 'NEW':
|
|
12946
|
+
return 'new';
|
|
12947
|
+
case 'IMPROVEMENT':
|
|
12948
|
+
return 'improvement';
|
|
12949
|
+
case 'BUG_FIX':
|
|
12950
|
+
return 'bug-fix';
|
|
12951
|
+
}
|
|
12952
|
+
}
|
|
12953
|
+
getDetailClass(detail) {
|
|
12954
|
+
return this.getDetailTypeSectionClass(detail.type);
|
|
12955
|
+
}
|
|
12956
|
+
onDetailClick(detail, event) {
|
|
12957
|
+
event.stopPropagation();
|
|
12958
|
+
if (detail.disabled || !detail.link?.trim()) {
|
|
12959
|
+
return;
|
|
12960
|
+
}
|
|
12961
|
+
window.location.href = detail.link.trim();
|
|
12962
|
+
}
|
|
12963
|
+
emitQueryChange() {
|
|
12964
|
+
this.queryChange.emit({
|
|
12965
|
+
page: Math.max(0, this.page),
|
|
12966
|
+
size: Math.max(1, this.rows),
|
|
12967
|
+
first: this.getFirst(),
|
|
12968
|
+
filter: this.selectedFilter,
|
|
12969
|
+
search: this.searchText.trim(),
|
|
12970
|
+
});
|
|
12971
|
+
}
|
|
12972
|
+
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 }); }
|
|
12974
|
+
}
|
|
12975
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTReleaseNotesPageComponent, decorators: [{
|
|
12976
|
+
type: Component,
|
|
12977
|
+
args: [{ selector: 'pt-release-notes-page', standalone: false, changeDetection: ChangeDetectionStrategy.OnPush, 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"] }]
|
|
12978
|
+
}], ctorParameters: () => [], propDecorators: { releases: [{
|
|
12979
|
+
type: Input
|
|
12980
|
+
}], loading: [{
|
|
12981
|
+
type: Input
|
|
12982
|
+
}], totalRecords: [{
|
|
12983
|
+
type: Input
|
|
12984
|
+
}], totalAllRecords: [{
|
|
12985
|
+
type: Input
|
|
12986
|
+
}], totalUnreadRecords: [{
|
|
12987
|
+
type: Input
|
|
12988
|
+
}], totalReadRecords: [{
|
|
12989
|
+
type: Input
|
|
12990
|
+
}], page: [{
|
|
12991
|
+
type: Input
|
|
12992
|
+
}], rows: [{
|
|
12993
|
+
type: Input
|
|
12994
|
+
}], rowsPerPageOptions: [{
|
|
12995
|
+
type: Input
|
|
12996
|
+
}], config: [{
|
|
12997
|
+
type: Input
|
|
12998
|
+
}], queryChange: [{
|
|
12999
|
+
type: Output
|
|
13000
|
+
}] } });
|
|
13001
|
+
|
|
13002
|
+
class PTReleaseNotesPageModule {
|
|
13003
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTReleaseNotesPageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
13004
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.14", ngImport: i0, type: PTReleaseNotesPageModule, declarations: [PTReleaseNotesPageComponent], imports: [CommonModule, PaginatorModule], exports: [PTReleaseNotesPageComponent] }); }
|
|
13005
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTReleaseNotesPageModule, imports: [CommonModule, PaginatorModule] }); }
|
|
13006
|
+
}
|
|
13007
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PTReleaseNotesPageModule, decorators: [{
|
|
13008
|
+
type: NgModule,
|
|
13009
|
+
args: [{
|
|
13010
|
+
declarations: [PTReleaseNotesPageComponent],
|
|
13011
|
+
imports: [CommonModule, PaginatorModule],
|
|
13012
|
+
exports: [PTReleaseNotesPageComponent],
|
|
13013
|
+
}]
|
|
13014
|
+
}] });
|
|
13015
|
+
|
|
12276
13016
|
// projects/ng-prime-tools/src/lib/models/form-multi-select.model.ts
|
|
12277
13017
|
|
|
12278
13018
|
// projects/ng-prime-tools/src/lib/models/pt-accordion-config.model.ts
|
|
@@ -12339,5 +13079,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
12339
13079
|
* Generated bundle index. Do not edit.
|
|
12340
13080
|
*/
|
|
12341
13081
|
|
|
12342
|
-
export { AlignEnum, BadgeType, BadgeTypeStyles, ButtonColorEnum, DateUtilityService, FormInputTypeEnum, InputValidationEnum, MultiSearchCriteriaComponent, MultiSearchCriteriaModule, NgPrimeToolsModule, PTAccordionComponent, PTAccordionModule, PTAccordionPanelDirective, PTAdvancedPrimeTableComponent, PTAdvancedPrimeTableModule, PTBreadCrumbComponent, PTBreadCrumbModule, PTButtonComponent, PTButtonModule, PTCardComponent, PTCardModule, PTChangePasswordPageComponent, PTChangePasswordPageModule, PTChartComparisonComponent, PTChartComparisonModule, PTChartComponent, PTChartModule, PTCheckBoxInputComponent, PTCheckBoxInputModule, PTConfirmDialogComponent, PTConfirmDialogModule, PTDateInputComponent, PTDateInputModule, PTDialogComponent, PTDialogModule, PTDropdownComponent, PTDropdownModule, PTFooterComponent, PTFooterModule, PTFormBuilderComponent, PTFormBuilderModule, PTGroupComponent, PTGroupModule, PTLineChartComponent, PTLineChartModule, PTLoginPageComponent, PTLoginPageModule, PTMenuComponent, PTMenuFancyComponent, PTMenuFancyModule, PTMenuModule, PTMetricCardComponent, PTMetricCardGroupComponent, PTMetricCardGroupModule, PTMetricCardModule, PTMetricPanelComponent, PTMetricPanelModule, PTMultiSelectComponent, PTMultiSelectModule, PTNavbarMenuComponent, PTNavbarMenuModule, PTNewsTickerComponent, PTNewsTickerDirection, PTNewsTickerModule, PTNewsTickerTrend, PTNewsTickerType, PTNotificationComponent, PTNotificationModule, PTNotificationsPageComponent, PTNotificationsPageModule, PTNumberInputComponent, PTNumberInputModule, PTOtpInputComponent, PTOtpInputModule, PTOtpPageComponent, PTOtpPageModule, PTPageSkeletonComponent, PTPageSkeletonModule, PTPasswordInputComponent, PTPasswordInputModule, PTSideBarMenuComponent, PTSideBarMenuModule, PTSwitchInputComponent, PTSwitchInputModule, PTTextAreaInputComponent, PTTextAreaInputModule, PTTextInputComponent, PTTextInputModule, PTToastNotifierComponent, PTToastNotifierModule, SearchCriteriaTypeEnum, SeverityEnum, TableTypeEnum };
|
|
13082
|
+
export { AlignEnum, BadgeType, BadgeTypeStyles, ButtonColorEnum, DateUtilityService, FormInputTypeEnum, InputValidationEnum, MultiSearchCriteriaComponent, MultiSearchCriteriaModule, NgPrimeToolsModule, PTAccordionComponent, PTAccordionModule, PTAccordionPanelDirective, PTAdvancedPrimeTableComponent, PTAdvancedPrimeTableModule, PTBreadCrumbComponent, PTBreadCrumbModule, PTButtonComponent, PTButtonModule, PTCardComponent, PTCardModule, PTChangePasswordPageComponent, PTChangePasswordPageModule, PTChartComparisonComponent, PTChartComparisonModule, PTChartComponent, PTChartModule, PTCheckBoxInputComponent, PTCheckBoxInputModule, PTConfirmDialogComponent, PTConfirmDialogModule, PTDateInputComponent, PTDateInputModule, PTDialogComponent, PTDialogModule, PTDropdownComponent, PTDropdownModule, PTFooterComponent, PTFooterModule, PTFormBuilderComponent, PTFormBuilderModule, PTGroupComponent, PTGroupModule, PTLineChartComponent, PTLineChartModule, PTLoginPageComponent, PTLoginPageModule, PTMenuComponent, PTMenuFancyComponent, PTMenuFancyModule, PTMenuModule, PTMetricCardComponent, PTMetricCardGroupComponent, PTMetricCardGroupModule, PTMetricCardModule, PTMetricPanelComponent, PTMetricPanelModule, PTMultiSelectComponent, PTMultiSelectModule, PTNavbarMenuComponent, PTNavbarMenuModule, PTNewsTickerComponent, PTNewsTickerDirection, PTNewsTickerModule, PTNewsTickerTrend, PTNewsTickerType, PTNotificationComponent, PTNotificationModule, PTNotificationsPageComponent, PTNotificationsPageModule, PTNumberInputComponent, PTNumberInputModule, PTOtpInputComponent, PTOtpInputModule, PTOtpPageComponent, PTOtpPageModule, PTPageSkeletonComponent, PTPageSkeletonModule, PTPasswordInputComponent, PTPasswordInputModule, PTReleaseNotesComponent, PTReleaseNotesModule, PTReleaseNotesPageComponent, PTReleaseNotesPageModule, PTSideBarMenuComponent, PTSideBarMenuModule, PTSwitchInputComponent, PTSwitchInputModule, PTTextAreaInputComponent, PTTextAreaInputModule, PTTextInputComponent, PTTextInputModule, PTToastNotifierComponent, PTToastNotifierModule, SearchCriteriaTypeEnum, SeverityEnum, TableTypeEnum };
|
|
12343
13083
|
//# sourceMappingURL=ng-prime-tools.mjs.map
|