@patter/ngx-components 0.5.17 → 19.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -24
- package/fesm2022/patter-ngx-components.mjs +79 -79
- package/fesm2022/patter-ngx-components.mjs.map +1 -1
- package/package.json +3 -5
- package/patter-ngx-components-19.0.0.tgz +0 -0
- package/esm2022/lib/components/tabs/ptr-tab/ptr-tab.component.mjs +0 -23
- package/esm2022/lib/components/tabs/ptr-tabs/ptr-tabs.component.mjs +0 -71
- package/esm2022/lib/dialog/ptr-dialog/ptr-dialog.component.mjs +0 -46
- package/esm2022/lib/dialog/ptr-dialog.service.mjs +0 -48
- package/esm2022/lib/dialog/ptr-tooltip/ptr-tooltip.component.mjs +0 -32
- package/esm2022/lib/forms/form/form.component.mjs +0 -102
- package/esm2022/lib/forms/input/ptr-input/ptr-input.component.mjs +0 -139
- package/esm2022/lib/forms/input/select/select.component.mjs +0 -129
- package/esm2022/lib/forms/interfaces.mjs +0 -2
- package/esm2022/lib/forms/shared/ptr-dialog-list/ptr-dialog-list.component.mjs +0 -195
- package/esm2022/lib/loading-spinner/loading-spinner.component.mjs +0 -11
- package/esm2022/lib/loading-spinner/loading-spinner.directive.mjs +0 -84
- package/esm2022/lib/menu/menu.component.mjs +0 -16
- package/esm2022/lib/ptr-breadcrumbs/interfaces.mjs +0 -2
- package/esm2022/lib/ptr-breadcrumbs/ptr-breadcrumbs.component.mjs +0 -60
- package/esm2022/lib/ptr-button/ptr-button.component.mjs +0 -111
- package/esm2022/lib/ptr-title/ptr-title.component.mjs +0 -54
- package/esm2022/lib/ptr-toaster/interfaces.mjs +0 -2
- package/esm2022/lib/ptr-toaster/ptr-toaster/ptr-toaster.component.mjs +0 -15
- package/esm2022/lib/ptr-toaster/ptr-toaster.service.mjs +0 -52
- package/esm2022/lib/services/loading.service.mjs +0 -96
- package/esm2022/patter-ngx-components.mjs +0 -5
- package/esm2022/public-api.mjs +0 -22
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, computed, inject, Input } from '@angular/core';
|
|
2
|
-
import { toSignal } from '@angular/core/rxjs-interop';
|
|
3
|
-
import { ActivatedRoute, NavigationEnd, Router, RouterModule } from '@angular/router';
|
|
4
|
-
import { filter, distinctUntilChanged } from 'rxjs';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/router";
|
|
7
|
-
export class PtrBreadcrumbsComponent {
|
|
8
|
-
showFirstSeparator = true;
|
|
9
|
-
router = inject(Router);
|
|
10
|
-
activatedRoute = inject(ActivatedRoute);
|
|
11
|
-
routeEvents = toSignal(this.router.events.pipe(filter(event => event instanceof NavigationEnd), distinctUntilChanged()));
|
|
12
|
-
breadcrumbs = computed(() => {
|
|
13
|
-
this.routeEvents();
|
|
14
|
-
return this.createBreadcrumbs(this.activatedRoute.root);
|
|
15
|
-
});
|
|
16
|
-
createBreadcrumbs(route, routeUrl = '', breadcrumbs = []) {
|
|
17
|
-
const routeChildren = route.children;
|
|
18
|
-
if (routeChildren.length === 0) {
|
|
19
|
-
return breadcrumbs;
|
|
20
|
-
}
|
|
21
|
-
for (const child of routeChildren) {
|
|
22
|
-
const routeURL = child.snapshot.url.map(segment => segment.path).join('/');
|
|
23
|
-
if (routeURL !== '') {
|
|
24
|
-
routeUrl += `/${routeURL}`;
|
|
25
|
-
}
|
|
26
|
-
const { label, url } = this.getLabelForRoute(child);
|
|
27
|
-
// Skip if the label is undefined or empty and the path is empty
|
|
28
|
-
if (label && (!breadcrumbs.length || breadcrumbs[breadcrumbs.length - 1].label !== label)) {
|
|
29
|
-
breadcrumbs.push({ label, url: url ?? routeUrl });
|
|
30
|
-
}
|
|
31
|
-
return this.createBreadcrumbs(child, routeUrl, breadcrumbs);
|
|
32
|
-
}
|
|
33
|
-
return breadcrumbs;
|
|
34
|
-
}
|
|
35
|
-
getLabelForRoute(route) {
|
|
36
|
-
const breadcrumbReturnInfo = {};
|
|
37
|
-
const customBreadcrumb = route.snapshot.data['breadcrumb'];
|
|
38
|
-
if (customBreadcrumb) {
|
|
39
|
-
if (customBreadcrumb.label) {
|
|
40
|
-
breadcrumbReturnInfo.label = customBreadcrumb.label;
|
|
41
|
-
}
|
|
42
|
-
if (customBreadcrumb.url) {
|
|
43
|
-
breadcrumbReturnInfo.url = customBreadcrumb.url;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
else if (route.snapshot.title) {
|
|
47
|
-
breadcrumbReturnInfo.label = route.snapshot.title;
|
|
48
|
-
}
|
|
49
|
-
return breadcrumbReturnInfo;
|
|
50
|
-
}
|
|
51
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: PtrBreadcrumbsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
52
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: PtrBreadcrumbsComponent, isStandalone: true, selector: "ptr-breadcrumbs", inputs: { showFirstSeparator: "showFirstSeparator" }, ngImport: i0, template: "@if (breadcrumbs().length > 0) {\n <nav aria-label=\"breadcrumb\" class=\"breadcrumb-wrapper\">\n <ol class=\"breadcrumb\" [class.breadcrumb--show-first-separator]=\"showFirstSeparator\">\n @for (breadcrumb of breadcrumbs(); track breadcrumb.label; let last = $last) {\n <li class=\"breadcrumb-item\" [class.breadcrumb-item--active]=\"last\">\n @if (!last) {\n <a class=\"breadcrumb-item-label\" [routerLink]=\"breadcrumb.url\">{{ breadcrumb.label }}</a>\n }\n @if (last) {\n <span class=\"breadcrumb-item-label\">{{ breadcrumb.label }}</span>\n }\n </li>\n }\n </ol>\n </nav>\n}\n", styles: [".breadcrumb{--breadcrumb-item-color: #ababab;--breadcrumb-item-font-size: var(--wp--preset--font-size--large, 1.25rem);list-style:none;border-radius:.25rem;margin:0 0 20px;padding:0;display:flex;flex-wrap:wrap;gap:2px}.breadcrumb-item{display:inline-block;margin:0}.breadcrumb-item--active .breadcrumb-item-label{color:inherit;font-weight:700}.breadcrumb-item-label{text-decoration:none;padding:4px;display:inline-block;color:var(--breadcrumb-item-color);font-size:var(--breadcrumb-item-font-size);font-weight:500;border-bottom:2px solid transparent}.breadcrumb-item a{transition:border-bottom .25s,color .25s}.breadcrumb-item a:hover,.breadcrumb-item a:focus{border-bottom-color:var(--wp--preset--color--primary)}.breadcrumb-item:first-child .breadcrumb-item-label{padding-left:0}.breadcrumb-item+.breadcrumb-item .breadcrumb-item-label:before{content:\"/\";padding-right:8px}.breadcrumb.breadcrumb--show-first-separator .breadcrumb-item-label:before{content:\"/\";padding-right:8px}\n"], dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
53
|
-
}
|
|
54
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: PtrBreadcrumbsComponent, decorators: [{
|
|
55
|
-
type: Component,
|
|
56
|
-
args: [{ selector: 'ptr-breadcrumbs', standalone: true, imports: [RouterModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (breadcrumbs().length > 0) {\n <nav aria-label=\"breadcrumb\" class=\"breadcrumb-wrapper\">\n <ol class=\"breadcrumb\" [class.breadcrumb--show-first-separator]=\"showFirstSeparator\">\n @for (breadcrumb of breadcrumbs(); track breadcrumb.label; let last = $last) {\n <li class=\"breadcrumb-item\" [class.breadcrumb-item--active]=\"last\">\n @if (!last) {\n <a class=\"breadcrumb-item-label\" [routerLink]=\"breadcrumb.url\">{{ breadcrumb.label }}</a>\n }\n @if (last) {\n <span class=\"breadcrumb-item-label\">{{ breadcrumb.label }}</span>\n }\n </li>\n }\n </ol>\n </nav>\n}\n", styles: [".breadcrumb{--breadcrumb-item-color: #ababab;--breadcrumb-item-font-size: var(--wp--preset--font-size--large, 1.25rem);list-style:none;border-radius:.25rem;margin:0 0 20px;padding:0;display:flex;flex-wrap:wrap;gap:2px}.breadcrumb-item{display:inline-block;margin:0}.breadcrumb-item--active .breadcrumb-item-label{color:inherit;font-weight:700}.breadcrumb-item-label{text-decoration:none;padding:4px;display:inline-block;color:var(--breadcrumb-item-color);font-size:var(--breadcrumb-item-font-size);font-weight:500;border-bottom:2px solid transparent}.breadcrumb-item a{transition:border-bottom .25s,color .25s}.breadcrumb-item a:hover,.breadcrumb-item a:focus{border-bottom-color:var(--wp--preset--color--primary)}.breadcrumb-item:first-child .breadcrumb-item-label{padding-left:0}.breadcrumb-item+.breadcrumb-item .breadcrumb-item-label:before{content:\"/\";padding-right:8px}.breadcrumb.breadcrumb--show-first-separator .breadcrumb-item-label:before{content:\"/\";padding-right:8px}\n"] }]
|
|
57
|
-
}], propDecorators: { showFirstSeparator: [{
|
|
58
|
-
type: Input
|
|
59
|
-
}] } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHRyLWJyZWFkY3J1bWJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BhdHRlci9uZ3gtY29tcG9uZW50cy9zcmMvbGliL3B0ci1icmVhZGNydW1icy9wdHItYnJlYWRjcnVtYnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF0dGVyL25neC1jb21wb25lbnRzL3NyYy9saWIvcHRyLWJyZWFkY3J1bWJzL3B0ci1icmVhZGNydW1icy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBVXBELE1BQU0sT0FBTyx1QkFBdUI7SUFFekIsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO0lBRTNCLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEIsY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUV4QyxXQUFXLEdBQUcsUUFBUSxDQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3JCLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssWUFBWSxhQUFhLENBQUMsRUFDL0Msb0JBQW9CLEVBQUUsQ0FDdkIsQ0FDRixDQUFDO0lBRUYsV0FBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDMUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUQsQ0FBQyxDQUFDLENBQUM7SUFFSyxpQkFBaUIsQ0FBQyxLQUFxQixFQUFFLFFBQVEsR0FBRyxFQUFFLEVBQUUsY0FBK0IsRUFBRTtRQUMvRixNQUFNLGFBQWEsR0FBcUIsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUN2RCxJQUFJLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDL0IsT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQztRQUNELEtBQUssTUFBTSxLQUFLLElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEMsTUFBTSxRQUFRLEdBQVcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuRixJQUFJLFFBQVEsS0FBSyxFQUFFLEVBQUUsQ0FBQztnQkFDcEIsUUFBUSxJQUFJLElBQUksUUFBUSxFQUFFLENBQUM7WUFDN0IsQ0FBQztZQUNELE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXBELGdFQUFnRTtZQUNoRSxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLE1BQU0sSUFBSSxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDMUYsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDcEQsQ0FBQztZQUVELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUNELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxLQUFxQjtRQUM1QyxNQUFNLG9CQUFvQixHQUF3QixFQUFFLENBQUM7UUFDckQsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQW9DLENBQUM7UUFFOUYsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3JCLElBQUksZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzNCLG9CQUFvQixDQUFDLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7WUFDdEQsQ0FBQztZQUNELElBQUksZ0JBQWdCLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ3pCLG9CQUFvQixDQUFDLEdBQUcsR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUM7WUFDbEQsQ0FBQztRQUNILENBQUM7YUFBTSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEMsb0JBQW9CLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQ3BELENBQUM7UUFFRCxPQUFPLG9CQUFvQixDQUFDO0lBQzlCLENBQUM7dUdBekRVLHVCQUF1QjsyRkFBdkIsdUJBQXVCLGlJQ2JwQyxpcUJBZ0JBLG1oQ0RSWSxZQUFZOzsyRkFLWCx1QkFBdUI7a0JBUm5DLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDLG1CQUdOLHVCQUF1QixDQUFDLE1BQU07OEJBSXRDLGtCQUFrQjtzQkFBMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbkVuZCwgUm91dGVyLCBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEJyZWFkY3J1bWJSb3V0ZUluZm8sIFB0ckJyZWFkY3J1bWIgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3B0ci1icmVhZGNydW1icycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vcHRyLWJyZWFkY3J1bWJzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vcHRyLWJyZWFkY3J1bWJzLmNvbXBvbmVudC5zY3NzJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHRyQnJlYWRjcnVtYnNDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKSBzaG93Rmlyc3RTZXBhcmF0b3IgPSB0cnVlO1xyXG5cclxuICBwcml2YXRlIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xyXG4gIHByaXZhdGUgYWN0aXZhdGVkUm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xyXG5cclxuICBwcml2YXRlIHJvdXRlRXZlbnRzID0gdG9TaWduYWwoXHJcbiAgICB0aGlzLnJvdXRlci5ldmVudHMucGlwZShcclxuICAgICAgZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXHJcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcclxuICAgIClcclxuICApO1xyXG5cclxuICBicmVhZGNydW1icyA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIHRoaXMucm91dGVFdmVudHMoKTtcclxuICAgIHJldHVybiB0aGlzLmNyZWF0ZUJyZWFkY3J1bWJzKHRoaXMuYWN0aXZhdGVkUm91dGUucm9vdCk7XHJcbiAgfSk7XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlQnJlYWRjcnVtYnMocm91dGU6IEFjdGl2YXRlZFJvdXRlLCByb3V0ZVVybCA9ICcnLCBicmVhZGNydW1iczogUHRyQnJlYWRjcnVtYltdID0gW10pOiBQdHJCcmVhZGNydW1iW10ge1xyXG4gICAgY29uc3Qgcm91dGVDaGlsZHJlbjogQWN0aXZhdGVkUm91dGVbXSA9IHJvdXRlLmNoaWxkcmVuO1xyXG4gICAgaWYgKHJvdXRlQ2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiBicmVhZGNydW1icztcclxuICAgIH1cclxuICAgIGZvciAoY29uc3QgY2hpbGQgb2Ygcm91dGVDaGlsZHJlbikge1xyXG4gICAgICBjb25zdCByb3V0ZVVSTDogc3RyaW5nID0gY2hpbGQuc25hcHNob3QudXJsLm1hcChzZWdtZW50ID0+IHNlZ21lbnQucGF0aCkuam9pbignLycpO1xyXG4gICAgICBpZiAocm91dGVVUkwgIT09ICcnKSB7XHJcbiAgICAgICAgcm91dGVVcmwgKz0gYC8ke3JvdXRlVVJMfWA7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgeyBsYWJlbCwgdXJsIH0gPSB0aGlzLmdldExhYmVsRm9yUm91dGUoY2hpbGQpO1xyXG5cclxuICAgICAgLy8gU2tpcCBpZiB0aGUgbGFiZWwgaXMgdW5kZWZpbmVkIG9yIGVtcHR5IGFuZCB0aGUgcGF0aCBpcyBlbXB0eVxyXG4gICAgICBpZiAobGFiZWwgJiYgKCFicmVhZGNydW1icy5sZW5ndGggfHwgYnJlYWRjcnVtYnNbYnJlYWRjcnVtYnMubGVuZ3RoIC0gMV0ubGFiZWwgIT09IGxhYmVsKSkge1xyXG4gICAgICAgIGJyZWFkY3J1bWJzLnB1c2goeyBsYWJlbCwgdXJsOiB1cmwgPz8gcm91dGVVcmwgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUJyZWFkY3J1bWJzKGNoaWxkLCByb3V0ZVVybCwgYnJlYWRjcnVtYnMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGJyZWFkY3J1bWJzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRMYWJlbEZvclJvdXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSk6IEJyZWFkY3J1bWJSb3V0ZUluZm8ge1xyXG4gICAgY29uc3QgYnJlYWRjcnVtYlJldHVybkluZm86IEJyZWFkY3J1bWJSb3V0ZUluZm8gPSB7fTtcclxuICAgIGNvbnN0IGN1c3RvbUJyZWFkY3J1bWIgPSByb3V0ZS5zbmFwc2hvdC5kYXRhWydicmVhZGNydW1iJ10gYXMgQnJlYWRjcnVtYlJvdXRlSW5mbyB8IHVuZGVmaW5lZDtcclxuXHJcbiAgICBpZiAoY3VzdG9tQnJlYWRjcnVtYikge1xyXG4gICAgICBpZiAoY3VzdG9tQnJlYWRjcnVtYi5sYWJlbCkge1xyXG4gICAgICAgIGJyZWFkY3J1bWJSZXR1cm5JbmZvLmxhYmVsID0gY3VzdG9tQnJlYWRjcnVtYi5sYWJlbDtcclxuICAgICAgfVxyXG4gICAgICBpZiAoY3VzdG9tQnJlYWRjcnVtYi51cmwpIHtcclxuICAgICAgICBicmVhZGNydW1iUmV0dXJuSW5mby51cmwgPSBjdXN0b21CcmVhZGNydW1iLnVybDtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChyb3V0ZS5zbmFwc2hvdC50aXRsZSkge1xyXG4gICAgICBicmVhZGNydW1iUmV0dXJuSW5mby5sYWJlbCA9IHJvdXRlLnNuYXBzaG90LnRpdGxlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBicmVhZGNydW1iUmV0dXJuSW5mbztcclxuICB9XHJcblxyXG59XHJcbiIsIkBpZiAoYnJlYWRjcnVtYnMoKS5sZW5ndGggPiAwKSB7XG4gIDxuYXYgYXJpYS1sYWJlbD1cImJyZWFkY3J1bWJcIiBjbGFzcz1cImJyZWFkY3J1bWItd3JhcHBlclwiPlxuICAgIDxvbCBjbGFzcz1cImJyZWFkY3J1bWJcIiBbY2xhc3MuYnJlYWRjcnVtYi0tc2hvdy1maXJzdC1zZXBhcmF0b3JdPVwic2hvd0ZpcnN0U2VwYXJhdG9yXCI+XG4gICAgICBAZm9yIChicmVhZGNydW1iIG9mIGJyZWFkY3J1bWJzKCk7IHRyYWNrIGJyZWFkY3J1bWIubGFiZWw7IGxldCBsYXN0ID0gJGxhc3QpIHtcbiAgICAgICAgPGxpIGNsYXNzPVwiYnJlYWRjcnVtYi1pdGVtXCIgW2NsYXNzLmJyZWFkY3J1bWItaXRlbS0tYWN0aXZlXT1cImxhc3RcIj5cbiAgICAgICAgICBAaWYgKCFsYXN0KSB7XG4gICAgICAgICAgICA8YSBjbGFzcz1cImJyZWFkY3J1bWItaXRlbS1sYWJlbFwiIFtyb3V0ZXJMaW5rXT1cImJyZWFkY3J1bWIudXJsXCI+e3sgYnJlYWRjcnVtYi5sYWJlbCB9fTwvYT5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIChsYXN0KSB7XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJyZWFkY3J1bWItaXRlbS1sYWJlbFwiPnt7IGJyZWFkY3J1bWIubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICA8L2xpPlxuICAgICAgfVxuICAgIDwvb2w+XG4gIDwvbmF2PlxufVxuIl19
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, computed, EventEmitter, HostBinding, Input, Output, signal } from '@angular/core';
|
|
3
|
-
import { RouterLink } from '@angular/router';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/common";
|
|
6
|
-
export class PtrButtonComponent {
|
|
7
|
-
get hostClasses() {
|
|
8
|
-
const hostClass = [];
|
|
9
|
-
if (this.style() === 'secondary') {
|
|
10
|
-
hostClass.push('is-style-outline');
|
|
11
|
-
}
|
|
12
|
-
if (this.style() === 'error') {
|
|
13
|
-
hostClass.push('is-style-error-button');
|
|
14
|
-
}
|
|
15
|
-
if (this.style() === 'icon') {
|
|
16
|
-
hostClass.push('is-style-icon-button');
|
|
17
|
-
}
|
|
18
|
-
if (this.smallSize()) {
|
|
19
|
-
hostClass.push('is-style-smaller-element');
|
|
20
|
-
}
|
|
21
|
-
return hostClass.join(' ');
|
|
22
|
-
}
|
|
23
|
-
style = signal('normal');
|
|
24
|
-
type = signal('button');
|
|
25
|
-
disabled = signal(false);
|
|
26
|
-
href = signal(null);
|
|
27
|
-
routerLink = signal(null);
|
|
28
|
-
additionalClasses = signal('');
|
|
29
|
-
smallSize = signal(false);
|
|
30
|
-
set buttonStyle(value) {
|
|
31
|
-
this.style.set(value);
|
|
32
|
-
}
|
|
33
|
-
set buttonType(value) {
|
|
34
|
-
this.type.set(value);
|
|
35
|
-
}
|
|
36
|
-
set isDisabled(value) {
|
|
37
|
-
this.disabled.set(value);
|
|
38
|
-
}
|
|
39
|
-
set hrefLink(value) {
|
|
40
|
-
this.href.set(value);
|
|
41
|
-
}
|
|
42
|
-
set routerLinkValue(value) {
|
|
43
|
-
this.routerLink.set(value);
|
|
44
|
-
}
|
|
45
|
-
set extraClasses(value) {
|
|
46
|
-
this.additionalClasses.set(value);
|
|
47
|
-
}
|
|
48
|
-
set isSmallSize(value) {
|
|
49
|
-
if (value) {
|
|
50
|
-
this.smallSize.set(true);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
set isIconButton(value) {
|
|
54
|
-
if (value) {
|
|
55
|
-
this.style.set('icon');
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
ariaLabel = '';
|
|
59
|
-
clicked = new EventEmitter();
|
|
60
|
-
isLink = computed(() => !!this.href() || !!this.routerLink());
|
|
61
|
-
buttonClasses = computed(() => {
|
|
62
|
-
const classes = ['wp-block-button__link'];
|
|
63
|
-
if (this.style() !== 'normal') {
|
|
64
|
-
classes.push(`wp-block-button__link--${this.style()}`);
|
|
65
|
-
}
|
|
66
|
-
if (this.disabled() && this.isLink()) {
|
|
67
|
-
classes.push('disabled');
|
|
68
|
-
}
|
|
69
|
-
if (this.additionalClasses()) {
|
|
70
|
-
classes.push(this.additionalClasses());
|
|
71
|
-
}
|
|
72
|
-
return classes.join(' ');
|
|
73
|
-
});
|
|
74
|
-
onClick(event) {
|
|
75
|
-
if (this.disabled()) {
|
|
76
|
-
event.preventDefault();
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
this.clicked.emit(event);
|
|
80
|
-
}
|
|
81
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: PtrButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
82
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: PtrButtonComponent, isStandalone: true, selector: "ptr-button", inputs: { buttonStyle: "buttonStyle", buttonType: "buttonType", isDisabled: "isDisabled", hrefLink: "hrefLink", routerLinkValue: "routerLinkValue", extraClasses: "extraClasses", isSmallSize: "isSmallSize", isIconButton: "isIconButton", ariaLabel: "ariaLabel" }, outputs: { clicked: "clicked" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<ng-template #contentTpl>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n\r\n@if (isLink()) {\r\n<a [attr.href]=\"href()\" [routerLink]=\"routerLink()\" [class]=\"buttonClasses()\" [attr.disabled]=\"disabled() ? '' : null\"\r\n (click)=\"onClick($event)\" [attr.aria-label]=\"ariaLabel ?? null\">\r\n <ng-container [ngTemplateOutlet]=\"contentTpl\"></ng-container>\r\n</a>\r\n} @else {\r\n<button [type]=\"type()\" [class]=\"buttonClasses()\" [disabled]=\"disabled()\" (click)=\"onClick($event)\"\r\n [attr.aria-label]=\"ariaLabel ?? null\">\r\n <ng-container [ngTemplateOutlet]=\"contentTpl\"></ng-container>\r\n</button>\r\n}\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
83
|
-
}
|
|
84
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: PtrButtonComponent, decorators: [{
|
|
85
|
-
type: Component,
|
|
86
|
-
args: [{ selector: 'ptr-button', standalone: true, imports: [CommonModule, RouterLink], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #contentTpl>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n\r\n@if (isLink()) {\r\n<a [attr.href]=\"href()\" [routerLink]=\"routerLink()\" [class]=\"buttonClasses()\" [attr.disabled]=\"disabled() ? '' : null\"\r\n (click)=\"onClick($event)\" [attr.aria-label]=\"ariaLabel ?? null\">\r\n <ng-container [ngTemplateOutlet]=\"contentTpl\"></ng-container>\r\n</a>\r\n} @else {\r\n<button [type]=\"type()\" [class]=\"buttonClasses()\" [disabled]=\"disabled()\" (click)=\"onClick($event)\"\r\n [attr.aria-label]=\"ariaLabel ?? null\">\r\n <ng-container [ngTemplateOutlet]=\"contentTpl\"></ng-container>\r\n</button>\r\n}\r\n" }]
|
|
87
|
-
}], propDecorators: { hostClasses: [{
|
|
88
|
-
type: HostBinding,
|
|
89
|
-
args: ['class']
|
|
90
|
-
}], buttonStyle: [{
|
|
91
|
-
type: Input
|
|
92
|
-
}], buttonType: [{
|
|
93
|
-
type: Input
|
|
94
|
-
}], isDisabled: [{
|
|
95
|
-
type: Input
|
|
96
|
-
}], hrefLink: [{
|
|
97
|
-
type: Input
|
|
98
|
-
}], routerLinkValue: [{
|
|
99
|
-
type: Input
|
|
100
|
-
}], extraClasses: [{
|
|
101
|
-
type: Input
|
|
102
|
-
}], isSmallSize: [{
|
|
103
|
-
type: Input
|
|
104
|
-
}], isIconButton: [{
|
|
105
|
-
type: Input
|
|
106
|
-
}], ariaLabel: [{
|
|
107
|
-
type: Input
|
|
108
|
-
}], clicked: [{
|
|
109
|
-
type: Output
|
|
110
|
-
}] } });
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHRyLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wYXR0ZXIvbmd4LWNvbXBvbmVudHMvc3JjL2xpYi9wdHItYnV0dG9uL3B0ci1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF0dGVyL25neC1jb21wb25lbnRzL3NyYy9saWIvcHRyLWJ1dHRvbi9wdHItYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBVzdDLE1BQU0sT0FBTyxrQkFBa0I7SUFFN0IsSUFBMEIsV0FBVztRQUNuQyxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDakMsU0FBUyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUM3QixTQUFTLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFNBQVMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNyQixTQUFTLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsS0FBSyxHQUFHLE1BQU0sQ0FBYyxRQUFRLENBQUMsQ0FBQztJQUN0QyxJQUFJLEdBQUcsTUFBTSxDQUFnQyxRQUFRLENBQUMsQ0FBQztJQUN2RCxRQUFRLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLElBQUksR0FBRyxNQUFNLENBQWdCLElBQUksQ0FBQyxDQUFDO0lBQ25DLFVBQVUsR0FBRyxNQUFNLENBQW9DLElBQUksQ0FBQyxDQUFDO0lBQzdELGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvQixTQUFTLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTFCLElBQWEsV0FBVyxDQUFDLEtBQWtCO1FBQ3pDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFhLFVBQVUsQ0FBQyxLQUFvQztRQUMxRCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBYSxVQUFVLENBQUMsS0FBYztRQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBYSxRQUFRLENBQUMsS0FBb0I7UUFDeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQWEsZUFBZSxDQUFDLEtBQXdDO1FBQ25FLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFhLFlBQVksQ0FBQyxLQUFhO1FBQ3JDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQWEsV0FBVyxDQUFDLEtBQWM7UUFDckMsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBYSxZQUFZLENBQUMsS0FBYztRQUN0QyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFUSxTQUFTLEdBQUksRUFBRSxDQUFDO0lBRWYsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7SUFFOUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUU5RCxhQUFhLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUM1QixNQUFNLE9BQU8sR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFFMUMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDOUIsT0FBTyxDQUFDLElBQUksQ0FBQywwQkFBMEIsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDckMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDO1lBQzdCLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxDQUFDLEtBQVk7UUFDbEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUNwQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO3VHQTdGVSxrQkFBa0I7MkZBQWxCLGtCQUFrQixvYUNiL0Isa29CQWVBLDJDRE5ZLFlBQVksc01BQUUsVUFBVTs7MkZBSXZCLGtCQUFrQjtrQkFQOUIsU0FBUzsrQkFDRSxZQUFZLGNBQ1YsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxtQkFFbEIsdUJBQXVCLENBQUMsTUFBTTs4QkFJckIsV0FBVztzQkFBcEMsV0FBVzt1QkFBQyxPQUFPO2dCQXlCUCxXQUFXO3NCQUF2QixLQUFLO2dCQUlPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBSU8sVUFBVTtzQkFBdEIsS0FBSztnQkFJTyxRQUFRO3NCQUFwQixLQUFLO2dCQUlPLGVBQWU7c0JBQTNCLEtBQUs7Z0JBSU8sWUFBWTtzQkFBeEIsS0FBSztnQkFJTyxXQUFXO3NCQUF2QixLQUFLO2dCQU1PLFlBQVk7c0JBQXhCLEtBQUs7Z0JBTUcsU0FBUztzQkFBakIsS0FBSztnQkFFSSxPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPdXRwdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXJMaW5rIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbnR5cGUgQnV0dG9uU3R5bGUgPSAnbm9ybWFsJyB8ICdlcnJvcicgfCAnc2Vjb25kYXJ5JyB8ICdpY29uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncHRyLWJ1dHRvbicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSb3V0ZXJMaW5rXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vcHRyLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFB0ckJ1dHRvbkNvbXBvbmVudCB7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgaG9zdENsYXNzZXMoKSB7XHJcbiAgICBjb25zdCBob3N0Q2xhc3MgPSBbXTtcclxuICAgIGlmICh0aGlzLnN0eWxlKCkgPT09ICdzZWNvbmRhcnknKSB7XHJcbiAgICAgIGhvc3RDbGFzcy5wdXNoKCdpcy1zdHlsZS1vdXRsaW5lJyk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zdHlsZSgpID09PSAnZXJyb3InKSB7XHJcbiAgICAgIGhvc3RDbGFzcy5wdXNoKCdpcy1zdHlsZS1lcnJvci1idXR0b24nKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnN0eWxlKCkgPT09ICdpY29uJykge1xyXG4gICAgICBob3N0Q2xhc3MucHVzaCgnaXMtc3R5bGUtaWNvbi1idXR0b24nKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNtYWxsU2l6ZSgpKSB7XHJcbiAgICAgIGhvc3RDbGFzcy5wdXNoKCdpcy1zdHlsZS1zbWFsbGVyLWVsZW1lbnQnKTtcclxuICAgIH1cclxuICAgIHJldHVybiBob3N0Q2xhc3Muam9pbignICcpO1xyXG4gIH1cclxuXHJcbiAgc3R5bGUgPSBzaWduYWw8QnV0dG9uU3R5bGU+KCdub3JtYWwnKTtcclxuICB0eXBlID0gc2lnbmFsPCdidXR0b24nIHwgJ3N1Ym1pdCcgfCAncmVzZXQnPignYnV0dG9uJyk7XHJcbiAgZGlzYWJsZWQgPSBzaWduYWwoZmFsc2UpO1xyXG4gIGhyZWYgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XHJcbiAgcm91dGVyTGluayA9IHNpZ25hbDxzdHJpbmcgfCAoc3RyaW5nfG51bWJlcilbXSB8IG51bGw+KG51bGwpO1xyXG4gIGFkZGl0aW9uYWxDbGFzc2VzID0gc2lnbmFsKCcnKTtcclxuICBzbWFsbFNpemUgPSBzaWduYWwoZmFsc2UpO1xyXG5cclxuICBASW5wdXQoKSBzZXQgYnV0dG9uU3R5bGUodmFsdWU6IEJ1dHRvblN0eWxlKSB7XHJcbiAgICB0aGlzLnN0eWxlLnNldCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBzZXQgYnV0dG9uVHlwZSh2YWx1ZTogJ2J1dHRvbicgfCAnc3VibWl0JyB8ICdyZXNldCcpIHtcclxuICAgIHRoaXMudHlwZS5zZXQodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgc2V0IGlzRGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuZGlzYWJsZWQuc2V0KHZhbHVlKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHNldCBocmVmTGluayh2YWx1ZTogc3RyaW5nIHwgbnVsbCkge1xyXG4gICAgdGhpcy5ocmVmLnNldCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBzZXQgcm91dGVyTGlua1ZhbHVlKHZhbHVlOiBzdHJpbmcgfCAoc3RyaW5nfG51bWJlcilbXSB8IG51bGwpIHtcclxuICAgIHRoaXMucm91dGVyTGluay5zZXQodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgc2V0IGV4dHJhQ2xhc3Nlcyh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmFkZGl0aW9uYWxDbGFzc2VzLnNldCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBzZXQgaXNTbWFsbFNpemUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICB0aGlzLnNtYWxsU2l6ZS5zZXQodHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBzZXQgaXNJY29uQnV0dG9uKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy5zdHlsZS5zZXQoJ2ljb24nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGFyaWFMYWJlbD8gPSAnJztcclxuXHJcbiAgQE91dHB1dCgpIGNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xyXG5cclxuICBpc0xpbmsgPSBjb21wdXRlZCgoKSA9PiAhIXRoaXMuaHJlZigpIHx8ICEhdGhpcy5yb3V0ZXJMaW5rKCkpO1xyXG5cclxuICBidXR0b25DbGFzc2VzID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgY29uc3QgY2xhc3NlcyA9IFsnd3AtYmxvY2stYnV0dG9uX19saW5rJ107XHJcblxyXG4gICAgaWYgKHRoaXMuc3R5bGUoKSAhPT0gJ25vcm1hbCcpIHtcclxuICAgICAgY2xhc3Nlcy5wdXNoKGB3cC1ibG9jay1idXR0b25fX2xpbmstLSR7dGhpcy5zdHlsZSgpfWApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmRpc2FibGVkKCkgJiYgdGhpcy5pc0xpbmsoKSkge1xyXG4gICAgICBjbGFzc2VzLnB1c2goJ2Rpc2FibGVkJyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuYWRkaXRpb25hbENsYXNzZXMoKSkge1xyXG4gICAgICBjbGFzc2VzLnB1c2godGhpcy5hZGRpdGlvbmFsQ2xhc3NlcygpKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY2xhc3Nlcy5qb2luKCcgJyk7XHJcbiAgfSk7XHJcblxyXG4gIG9uQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCgpKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuY2xpY2tlZC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxuZy10ZW1wbGF0ZSAjY29udGVudFRwbD5cclxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG5AaWYgKGlzTGluaygpKSB7XHJcbjxhIFthdHRyLmhyZWZdPVwiaHJlZigpXCIgW3JvdXRlckxpbmtdPVwicm91dGVyTGluaygpXCIgW2NsYXNzXT1cImJ1dHRvbkNsYXNzZXMoKVwiIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkKCkgPyAnJyA6IG51bGxcIlxyXG4gIChjbGljayk9XCJvbkNsaWNrKCRldmVudClcIiBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbCA/PyBudWxsXCI+XHJcbiAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjb250ZW50VHBsXCI+PC9uZy1jb250YWluZXI+XHJcbjwvYT5cclxufSBAZWxzZSB7XHJcbjxidXR0b24gW3R5cGVdPVwidHlwZSgpXCIgW2NsYXNzXT1cImJ1dHRvbkNsYXNzZXMoKVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCIgKGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiXHJcbiAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwgPz8gbnVsbFwiPlxyXG4gIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudFRwbFwiPjwvbmctY29udGFpbmVyPlxyXG48L2J1dHRvbj5cclxufVxyXG4iXX0=
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, inject, Input } from '@angular/core';
|
|
3
|
-
import { ActivatedRoute, NavigationEnd, Router, TitleStrategy } from '@angular/router';
|
|
4
|
-
import { filter, map, startWith } from 'rxjs';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/common";
|
|
7
|
-
export class PtrTitleComponent {
|
|
8
|
-
styleClass = 'entry-title';
|
|
9
|
-
wrapperStyleClass = '';
|
|
10
|
-
screenReaderOnly = false;
|
|
11
|
-
router = inject(Router);
|
|
12
|
-
activatedRoute = inject(ActivatedRoute);
|
|
13
|
-
titleStrategy = inject(TitleStrategy);
|
|
14
|
-
displayTitle$;
|
|
15
|
-
hideTitle$;
|
|
16
|
-
ngOnInit() {
|
|
17
|
-
const routeEvents$ = this.router.events.pipe(filter((event) => event instanceof NavigationEnd), startWith(null), map(() => this.getRoute(this.activatedRoute)));
|
|
18
|
-
this.hideTitle$ = routeEvents$.pipe(map(route => !!route.snapshot.data['hideTitle']));
|
|
19
|
-
this.displayTitle$ = routeEvents$.pipe(map(route => {
|
|
20
|
-
if (route.snapshot.data['hideTitle']) {
|
|
21
|
-
return '';
|
|
22
|
-
}
|
|
23
|
-
// Check for a custom display title in the route data
|
|
24
|
-
const customDisplayTitle = route.snapshot.data['displayTitle'];
|
|
25
|
-
if (customDisplayTitle) {
|
|
26
|
-
return customDisplayTitle;
|
|
27
|
-
}
|
|
28
|
-
// If no custom display title, use the resolved title from TitleStrategy
|
|
29
|
-
const resolvedTitle = this.titleStrategy.getResolvedTitleForRoute(route.snapshot) || '';
|
|
30
|
-
return resolvedTitle;
|
|
31
|
-
// Remove any common suffix (checking for both ' | ' and ' - ' separators)
|
|
32
|
-
// return this.removeCommonSuffix(resolvedTitle);
|
|
33
|
-
}));
|
|
34
|
-
}
|
|
35
|
-
getRoute(route) {
|
|
36
|
-
while (route.firstChild) {
|
|
37
|
-
route = route.firstChild;
|
|
38
|
-
}
|
|
39
|
-
return route;
|
|
40
|
-
}
|
|
41
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: PtrTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
42
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: PtrTitleComponent, isStandalone: true, selector: "ptr-title", inputs: { styleClass: "styleClass", wrapperStyleClass: "wrapperStyleClass", screenReaderOnly: "screenReaderOnly" }, ngImport: i0, template: "@if ((hideTitle$|async) === false) {\r\n @if(wrapperStyleClass) {\r\n <header [class]=\"wrapperStyleClass\" [class.screen-reader-text]=\"screenReaderOnly\">\r\n <h1 [class]=\"styleClass\">{{displayTitle$|async}}</h1>\r\n </header>\r\n } @else {\r\n <h1 [class]=\"styleClass\" [class.screen-reader-text]=\"screenReaderOnly\">{{displayTitle$|async}}</h1>\r\n }\r\n}\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
43
|
-
}
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: PtrTitleComponent, decorators: [{
|
|
45
|
-
type: Component,
|
|
46
|
-
args: [{ selector: 'ptr-title', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if ((hideTitle$|async) === false) {\r\n @if(wrapperStyleClass) {\r\n <header [class]=\"wrapperStyleClass\" [class.screen-reader-text]=\"screenReaderOnly\">\r\n <h1 [class]=\"styleClass\">{{displayTitle$|async}}</h1>\r\n </header>\r\n } @else {\r\n <h1 [class]=\"styleClass\" [class.screen-reader-text]=\"screenReaderOnly\">{{displayTitle$|async}}</h1>\r\n }\r\n}\r\n" }]
|
|
47
|
-
}], propDecorators: { styleClass: [{
|
|
48
|
-
type: Input
|
|
49
|
-
}], wrapperStyleClass: [{
|
|
50
|
-
type: Input
|
|
51
|
-
}], screenReaderOnly: [{
|
|
52
|
-
type: Input
|
|
53
|
-
}] } });
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHRyLXRpdGxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BhdHRlci9uZ3gtY29tcG9uZW50cy9zcmMvbGliL3B0ci10aXRsZS9wdHItdGl0bGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF0dGVyL25neC1jb21wb25lbnRzL3NyYy9saWIvcHRyLXRpdGxlL3B0ci10aXRsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RixPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQVMxRCxNQUFNLE9BQU8saUJBQWlCO0lBRW5CLFVBQVUsR0FBRyxhQUFhLENBQUM7SUFDM0IsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLGdCQUFnQixHQUFHLEtBQUssQ0FBQztJQUUxQixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUU5QyxhQUFhLENBQXNCO0lBQ25DLFVBQVUsQ0FBdUI7SUFFakMsUUFBUTtRQUNOLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDMUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUEwQixFQUFFLENBQUMsS0FBSyxZQUFZLGFBQWEsQ0FBQyxFQUN6RSxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQ2YsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQzlDLENBQUM7UUFFRixJQUFJLENBQUMsVUFBVSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQ2pDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUNqRCxDQUFDO1FBRUYsSUFBSSxDQUFDLGFBQWEsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUNwQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDVixJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JDLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztZQUNELHFEQUFxRDtZQUNyRCxNQUFNLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQy9ELElBQUksa0JBQWtCLEVBQUUsQ0FBQztnQkFDdkIsT0FBTyxrQkFBa0IsQ0FBQztZQUM1QixDQUFDO1lBQ0Qsd0VBQXdFO1lBQ3hFLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN4RixPQUFPLGFBQWEsQ0FBQztZQUNyQiwwRUFBMEU7WUFDMUUsaURBQWlEO1FBQ25ELENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRU8sUUFBUSxDQUFDLEtBQXFCO1FBQ3BDLE9BQU8sS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3hCLEtBQUssR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7dUdBaERVLGlCQUFpQjsyRkFBakIsaUJBQWlCLHlMQ1o5QixrWUFTQSwyQ0REWSxZQUFZOzsyRkFJWCxpQkFBaUI7a0JBUDdCLFNBQVM7K0JBQ0UsV0FBVyxjQUNULElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxtQkFFTix1QkFBdUIsQ0FBQyxNQUFNOzhCQUl0QyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25FbmQsIFJvdXRlciwgVGl0bGVTdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncHRyLXRpdGxlJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wdHItdGl0bGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQdHJUaXRsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIHN0eWxlQ2xhc3MgPSAnZW50cnktdGl0bGUnO1xyXG4gIEBJbnB1dCgpIHdyYXBwZXJTdHlsZUNsYXNzID0gJyc7XHJcbiAgQElucHV0KCkgc2NyZWVuUmVhZGVyT25seSA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xyXG4gIHByaXZhdGUgYWN0aXZhdGVkUm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xyXG4gIHByaXZhdGUgdGl0bGVTdHJhdGVneSA9IGluamVjdChUaXRsZVN0cmF0ZWd5KTtcclxuXHJcbiAgZGlzcGxheVRpdGxlJCE6IE9ic2VydmFibGU8c3RyaW5nPjtcclxuICBoaWRlVGl0bGUkITogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBjb25zdCByb3V0ZUV2ZW50cyQgPSB0aGlzLnJvdXRlci5ldmVudHMucGlwZShcclxuICAgICAgZmlsdGVyKChldmVudCk6IGV2ZW50IGlzIE5hdmlnYXRpb25FbmQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcclxuICAgICAgc3RhcnRXaXRoKG51bGwpLFxyXG4gICAgICBtYXAoKCkgPT4gdGhpcy5nZXRSb3V0ZSh0aGlzLmFjdGl2YXRlZFJvdXRlKSlcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5oaWRlVGl0bGUkID0gcm91dGVFdmVudHMkLnBpcGUoXHJcbiAgICAgIG1hcChyb3V0ZSA9PiAhIXJvdXRlLnNuYXBzaG90LmRhdGFbJ2hpZGVUaXRsZSddKVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLmRpc3BsYXlUaXRsZSQgPSByb3V0ZUV2ZW50cyQucGlwZShcclxuICAgICAgbWFwKHJvdXRlID0+IHtcclxuICAgICAgICBpZiAocm91dGUuc25hcHNob3QuZGF0YVsnaGlkZVRpdGxlJ10pIHtcclxuICAgICAgICAgIHJldHVybiAnJztcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gQ2hlY2sgZm9yIGEgY3VzdG9tIGRpc3BsYXkgdGl0bGUgaW4gdGhlIHJvdXRlIGRhdGFcclxuICAgICAgICBjb25zdCBjdXN0b21EaXNwbGF5VGl0bGUgPSByb3V0ZS5zbmFwc2hvdC5kYXRhWydkaXNwbGF5VGl0bGUnXTtcclxuICAgICAgICBpZiAoY3VzdG9tRGlzcGxheVRpdGxlKSB7XHJcbiAgICAgICAgICByZXR1cm4gY3VzdG9tRGlzcGxheVRpdGxlO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBJZiBubyBjdXN0b20gZGlzcGxheSB0aXRsZSwgdXNlIHRoZSByZXNvbHZlZCB0aXRsZSBmcm9tIFRpdGxlU3RyYXRlZ3lcclxuICAgICAgICBjb25zdCByZXNvbHZlZFRpdGxlID0gdGhpcy50aXRsZVN0cmF0ZWd5LmdldFJlc29sdmVkVGl0bGVGb3JSb3V0ZShyb3V0ZS5zbmFwc2hvdCkgfHwgJyc7XHJcbiAgICAgICAgcmV0dXJuIHJlc29sdmVkVGl0bGU7XHJcbiAgICAgICAgLy8gUmVtb3ZlIGFueSBjb21tb24gc3VmZml4IChjaGVja2luZyBmb3IgYm90aCAnIHwgJyBhbmQgJyAtICcgc2VwYXJhdG9ycylcclxuICAgICAgICAvLyByZXR1cm4gdGhpcy5yZW1vdmVDb21tb25TdWZmaXgocmVzb2x2ZWRUaXRsZSk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRSb3V0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGUpOiBBY3RpdmF0ZWRSb3V0ZSB7XHJcbiAgICB3aGlsZSAocm91dGUuZmlyc3RDaGlsZCkge1xyXG4gICAgICByb3V0ZSA9IHJvdXRlLmZpcnN0Q2hpbGQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcm91dGU7XHJcbiAgfVxyXG5cclxufVxyXG4iLCJAaWYgKChoaWRlVGl0bGUkfGFzeW5jKSA9PT0gZmFsc2UpIHtcclxuICBAaWYod3JhcHBlclN0eWxlQ2xhc3MpIHtcclxuICAgIDxoZWFkZXIgW2NsYXNzXT1cIndyYXBwZXJTdHlsZUNsYXNzXCIgW2NsYXNzLnNjcmVlbi1yZWFkZXItdGV4dF09XCJzY3JlZW5SZWFkZXJPbmx5XCI+XHJcbiAgICAgIDxoMSBbY2xhc3NdPVwic3R5bGVDbGFzc1wiPnt7ZGlzcGxheVRpdGxlJHxhc3luY319PC9oMT5cclxuICAgIDwvaGVhZGVyPlxyXG4gIH0gQGVsc2Uge1xyXG4gICAgPGgxIFtjbGFzc109XCJzdHlsZUNsYXNzXCIgW2NsYXNzLnNjcmVlbi1yZWFkZXItdGV4dF09XCJzY3JlZW5SZWFkZXJPbmx5XCI+e3tkaXNwbGF5VGl0bGUkfGFzeW5jfX08L2gxPlxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BhdHRlci9uZ3gtY29tcG9uZW50cy9zcmMvbGliL3B0ci10b2FzdGVyL2ludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUHRyVG9hc3Qge1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgbWVzc2FnZTogc3RyaW5nO1xyXG4gIHR5cGU6ICdzdWNjZXNzJyB8ICdlcnJvcicgfCAnaW5mbycgfCAnd2FybmluZyc7XHJcbn1cclxuIl19
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
|
|
3
|
-
import { PtrToasterService } from '../ptr-toaster.service';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/common";
|
|
6
|
-
export class PtrToasterComponent {
|
|
7
|
-
toasterService = inject(PtrToasterService);
|
|
8
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: PtrToasterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: PtrToasterComponent, isStandalone: true, selector: "ptr-toaster", ngImport: i0, template: "<div class=\"toaster-container\" aria-live=\"polite\" aria-atomic=\"true\">\r\n @for (toast of toasterService.getToasts()(); track toast.id) {\r\n <div class=\"toast\" [ngClass]=\"toast.type\" role=\"alert\">\r\n <span>{{toast.message}}</span>\r\n <button (click)=\"toasterService.remove(toast.id)\" aria-label=\"Close\"><span>×</span></button>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".toaster-container{position:fixed;top:20px;right:20px;z-index:1000}.toast{padding:10px 20px;margin-bottom:10px;border-radius:calc(var(--wp--custom--default-border-radius) / 2);color:#fff;display:flex;justify-content:space-between;align-items:center;gap:1rem;box-shadow:0 2px 4px 2px #00000026}.success{background-color:var(--wp--preset--color--primary, #28a745)}.error{background-color:var(--wp--custom--color--error, #dc3545)}.info{background-color:var(--wp--preset--color--secondary, #17a2b8)}.warning{background-color:var(--wp--preset--color--secondary, #ffc107)}button{background:none;border:none;color:inherit;font-size:2em;cursor:pointer;font-family:monospace}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
10
|
-
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: PtrToasterComponent, decorators: [{
|
|
12
|
-
type: Component,
|
|
13
|
-
args: [{ selector: 'ptr-toaster', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"toaster-container\" aria-live=\"polite\" aria-atomic=\"true\">\r\n @for (toast of toasterService.getToasts()(); track toast.id) {\r\n <div class=\"toast\" [ngClass]=\"toast.type\" role=\"alert\">\r\n <span>{{toast.message}}</span>\r\n <button (click)=\"toasterService.remove(toast.id)\" aria-label=\"Close\"><span>×</span></button>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".toaster-container{position:fixed;top:20px;right:20px;z-index:1000}.toast{padding:10px 20px;margin-bottom:10px;border-radius:calc(var(--wp--custom--default-border-radius) / 2);color:#fff;display:flex;justify-content:space-between;align-items:center;gap:1rem;box-shadow:0 2px 4px 2px #00000026}.success{background-color:var(--wp--preset--color--primary, #28a745)}.error{background-color:var(--wp--custom--color--error, #dc3545)}.info{background-color:var(--wp--preset--color--secondary, #17a2b8)}.warning{background-color:var(--wp--preset--color--secondary, #ffc107)}button{background:none;border:none;color:inherit;font-size:2em;cursor:pointer;font-family:monospace}\n"] }]
|
|
14
|
-
}] });
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHRyLXRvYXN0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF0dGVyL25neC1jb21wb25lbnRzL3NyYy9saWIvcHRyLXRvYXN0ZXIvcHRyLXRvYXN0ZXIvcHRyLXRvYXN0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF0dGVyL25neC1jb21wb25lbnRzL3NyYy9saWIvcHRyLXRvYXN0ZXIvcHRyLXRvYXN0ZXIvcHRyLXRvYXN0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFVM0QsTUFBTSxPQUFPLG1CQUFtQjtJQUNwQixjQUFjLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7dUdBRDFDLG1CQUFtQjsyRkFBbkIsbUJBQW1CLHVFQ1poQyx5WUFRQSxxdEJERFksWUFBWTs7MkZBS1gsbUJBQW1CO2tCQVIvQixTQUFTOytCQUNFLGFBQWEsY0FDWCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsbUJBR04sdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQdHJUb2FzdGVyU2VydmljZSB9IGZyb20gJy4uL3B0ci10b2FzdGVyLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdwdHItdG9hc3RlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vcHRyLXRvYXN0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9wdHItdG9hc3Rlci5jb21wb25lbnQuc2NzcycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFB0clRvYXN0ZXJDb21wb25lbnQge1xyXG4gIHByb3RlY3RlZCB0b2FzdGVyU2VydmljZSA9IGluamVjdChQdHJUb2FzdGVyU2VydmljZSk7XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInRvYXN0ZXItY29udGFpbmVyXCIgYXJpYS1saXZlPVwicG9saXRlXCIgYXJpYS1hdG9taWM9XCJ0cnVlXCI+XHJcbiAgQGZvciAodG9hc3Qgb2YgdG9hc3RlclNlcnZpY2UuZ2V0VG9hc3RzKCkoKTsgdHJhY2sgdG9hc3QuaWQpIHtcclxuICA8ZGl2IGNsYXNzPVwidG9hc3RcIiBbbmdDbGFzc109XCJ0b2FzdC50eXBlXCIgcm9sZT1cImFsZXJ0XCI+XHJcbiAgICA8c3Bhbj57e3RvYXN0Lm1lc3NhZ2V9fTwvc3Bhbj5cclxuICAgIDxidXR0b24gKGNsaWNrKT1cInRvYXN0ZXJTZXJ2aWNlLnJlbW92ZSh0b2FzdC5pZClcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIj48c3Bhbj4mdGltZXM7PC9zcGFuPjwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG4gIH1cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { ApplicationRef, createComponent, DestroyRef, EnvironmentInjector, inject, Injectable, Injector, signal } from '@angular/core';
|
|
2
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
|
-
import { timer } from 'rxjs';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class PtrToasterService {
|
|
6
|
-
destroyRef = inject(DestroyRef);
|
|
7
|
-
injector = inject(Injector);
|
|
8
|
-
environmentInjector = inject(EnvironmentInjector);
|
|
9
|
-
appRef = inject(ApplicationRef);
|
|
10
|
-
toasts = signal([]);
|
|
11
|
-
counter = 0;
|
|
12
|
-
toasterComponentRef = null;
|
|
13
|
-
constructor() {
|
|
14
|
-
this.injectToasterComponent();
|
|
15
|
-
}
|
|
16
|
-
injectToasterComponent() {
|
|
17
|
-
if (this.toasterComponentRef) {
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
import('./ptr-toaster/ptr-toaster.component').then(module => {
|
|
21
|
-
this.toasterComponentRef = createComponent(module.PtrToasterComponent, {
|
|
22
|
-
environmentInjector: this.environmentInjector,
|
|
23
|
-
elementInjector: this.injector
|
|
24
|
-
});
|
|
25
|
-
const domElem = this.toasterComponentRef.location.nativeElement;
|
|
26
|
-
document.body.appendChild(domElem);
|
|
27
|
-
this.appRef.attachView(this.toasterComponentRef.hostView);
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
getToasts() {
|
|
31
|
-
return this.toasts.asReadonly();
|
|
32
|
-
}
|
|
33
|
-
show(message, type = 'info') {
|
|
34
|
-
const id = this.counter++;
|
|
35
|
-
this.toasts.update(toasts => [...toasts, { id, message, type }]);
|
|
36
|
-
timer(10000)
|
|
37
|
-
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
38
|
-
.subscribe(() => this.remove(id));
|
|
39
|
-
}
|
|
40
|
-
remove(id) {
|
|
41
|
-
this.toasts.update(toasts => toasts.filter(t => t.id !== id));
|
|
42
|
-
}
|
|
43
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: PtrToasterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
44
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: PtrToasterService, providedIn: 'root' });
|
|
45
|
-
}
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: PtrToasterService, decorators: [{
|
|
47
|
-
type: Injectable,
|
|
48
|
-
args: [{
|
|
49
|
-
providedIn: 'root'
|
|
50
|
-
}]
|
|
51
|
-
}], ctorParameters: () => [] });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHRyLXRvYXN0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BhdHRlci9uZ3gtY29tcG9uZW50cy9zcmMvbGliL3B0ci10b2FzdGVyL3B0ci10b2FzdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBZ0IsZUFBZSxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckosT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFNN0IsTUFBTSxPQUFPLGlCQUFpQjtJQUVwQixVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDNUIsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDbEQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUVoQyxNQUFNLEdBQUcsTUFBTSxDQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLE9BQU8sR0FBRyxDQUFDLENBQUM7SUFDWixtQkFBbUIsR0FBaUMsSUFBSSxDQUFDO0lBRWpFO1FBQ0UsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVPLHNCQUFzQjtRQUM1QixJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzdCLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxDQUFDLHFDQUFxQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzFELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLG1CQUFtQixFQUFFO2dCQUNyRSxtQkFBbUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CO2dCQUM3QyxlQUFlLEVBQUUsSUFBSSxDQUFDLFFBQVE7YUFDL0IsQ0FBQyxDQUFDO1lBRUgsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7WUFDaEUsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVNLElBQUksQ0FBQyxPQUFlLEVBQUUsT0FBeUIsTUFBTTtRQUMxRCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFakUsS0FBSyxDQUFDLEtBQUssQ0FBQzthQUNULElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDekMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU0sTUFBTSxDQUFDLEVBQVU7UUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7dUdBL0NVLGlCQUFpQjsyR0FBakIsaUJBQWlCLGNBRmhCLE1BQU07OzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBsaWNhdGlvblJlZiwgQ29tcG9uZW50UmVmLCBjcmVhdGVDb21wb25lbnQsIERlc3Ryb3lSZWYsIEVudmlyb25tZW50SW5qZWN0b3IsIGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcbmltcG9ydCB7IHRpbWVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFB0clRvYXN0IH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFB0clRvYXN0ZXJTZXJ2aWNlIHtcclxuXHJcbiAgcHJpdmF0ZSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xyXG4gIHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xyXG4gIHByaXZhdGUgZW52aXJvbm1lbnRJbmplY3RvciA9IGluamVjdChFbnZpcm9ubWVudEluamVjdG9yKTtcclxuICBwcml2YXRlIGFwcFJlZiA9IGluamVjdChBcHBsaWNhdGlvblJlZik7XHJcblxyXG4gIHByaXZhdGUgdG9hc3RzID0gc2lnbmFsPFB0clRvYXN0W10+KFtdKTtcclxuICBwcml2YXRlIGNvdW50ZXIgPSAwO1xyXG4gIHByaXZhdGUgdG9hc3RlckNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPHVua25vd24+IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5pbmplY3RUb2FzdGVyQ29tcG9uZW50KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluamVjdFRvYXN0ZXJDb21wb25lbnQoKSB7XHJcbiAgICBpZiAodGhpcy50b2FzdGVyQ29tcG9uZW50UmVmKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpbXBvcnQoJy4vcHRyLXRvYXN0ZXIvcHRyLXRvYXN0ZXIuY29tcG9uZW50JykudGhlbihtb2R1bGUgPT4ge1xyXG4gICAgICB0aGlzLnRvYXN0ZXJDb21wb25lbnRSZWYgPSBjcmVhdGVDb21wb25lbnQobW9kdWxlLlB0clRvYXN0ZXJDb21wb25lbnQsIHtcclxuICAgICAgICBlbnZpcm9ubWVudEluamVjdG9yOiB0aGlzLmVudmlyb25tZW50SW5qZWN0b3IsXHJcbiAgICAgICAgZWxlbWVudEluamVjdG9yOiB0aGlzLmluamVjdG9yXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgY29uc3QgZG9tRWxlbSA9IHRoaXMudG9hc3RlckNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xyXG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvbUVsZW0pO1xyXG4gICAgICB0aGlzLmFwcFJlZi5hdHRhY2hWaWV3KHRoaXMudG9hc3RlckNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRUb2FzdHMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50b2FzdHMuYXNSZWFkb25seSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3cobWVzc2FnZTogc3RyaW5nLCB0eXBlOiBQdHJUb2FzdFsndHlwZSddID0gJ2luZm8nKSB7XHJcbiAgICBjb25zdCBpZCA9IHRoaXMuY291bnRlcisrO1xyXG4gICAgdGhpcy50b2FzdHMudXBkYXRlKHRvYXN0cyA9PiBbLi4udG9hc3RzLCB7IGlkLCBtZXNzYWdlLCB0eXBlIH1dKTtcclxuXHJcbiAgICB0aW1lcigxMDAwMClcclxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZW1vdmUoaWQpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZW1vdmUoaWQ6IG51bWJlcikge1xyXG4gICAgdGhpcy50b2FzdHMudXBkYXRlKHRvYXN0cyA9PiB0b2FzdHMuZmlsdGVyKHQgPT4gdC5pZCAhPT0gaWQpKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { computed, Injectable, signal } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* Optimized Async Loading Service using Angular Signals
|
|
5
|
-
* Supports global loading state and named loading areas with auto-cleanup
|
|
6
|
-
*
|
|
7
|
-
* To use as a non-singleton service, add to providers array in @Component decorator:
|
|
8
|
-
* @Component({
|
|
9
|
-
* selector: 'app-example',
|
|
10
|
-
* templateUrl: './example.component.html',
|
|
11
|
-
* providers: [PtrLoadingService]
|
|
12
|
-
* })
|
|
13
|
-
*
|
|
14
|
-
* Usage:
|
|
15
|
-
* Set loading: this.loadingService.setLoading(true)
|
|
16
|
-
* - Set loading: this.loadingService.setLoading(true, 'areaName')
|
|
17
|
-
*
|
|
18
|
-
* - Get loading (template): {{ loadingService.isLoading()() }}
|
|
19
|
-
* - Get loading (template): {{ loadingService.isLoading('areaName')() }}
|
|
20
|
-
*
|
|
21
|
-
* - Get loading (component): this.loadingService.isLoading()()
|
|
22
|
-
* - Get loading (component): this.loadingService.isLoading('areaName')()
|
|
23
|
-
*
|
|
24
|
-
* - Check if any loading: {{ loadingService.isAnyLoading()() }}
|
|
25
|
-
*
|
|
26
|
-
* - React to loading changes: effect(() => console.log('Loading:', this.loadingService.isLoading('areaName')()))
|
|
27
|
-
*/
|
|
28
|
-
export class PtrLoadingService {
|
|
29
|
-
globalTaskCount = signal(0);
|
|
30
|
-
loadingAreas = new Map();
|
|
31
|
-
isLoading(area) {
|
|
32
|
-
if (!area) {
|
|
33
|
-
return computed(() => this.globalTaskCount() > 0);
|
|
34
|
-
}
|
|
35
|
-
return computed(() => {
|
|
36
|
-
const areaSignal = this.loadingAreas.get(area);
|
|
37
|
-
return areaSignal ? areaSignal() > 0 : false;
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
isAnyLoading() {
|
|
41
|
-
return computed(() => {
|
|
42
|
-
if (this.globalTaskCount() > 0)
|
|
43
|
-
return true;
|
|
44
|
-
for (const areaSignal of this.loadingAreas.values()) {
|
|
45
|
-
if (areaSignal() > 0)
|
|
46
|
-
return true;
|
|
47
|
-
}
|
|
48
|
-
return false;
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
setLoading(value, area) {
|
|
52
|
-
if (!area) {
|
|
53
|
-
this.updateTaskCount(this.globalTaskCount, value);
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
this.updateNamedAreaLoading(area, value);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
resetLoading(area) {
|
|
60
|
-
if (!area) {
|
|
61
|
-
this.globalTaskCount.set(0);
|
|
62
|
-
}
|
|
63
|
-
else if (this.loadingAreas.has(area)) {
|
|
64
|
-
this.loadingAreas.get(area).set(0);
|
|
65
|
-
this.loadingAreas.delete(area);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
updateNamedAreaLoading(area, increment) {
|
|
69
|
-
let areaSignal = this.loadingAreas.get(area);
|
|
70
|
-
if (!areaSignal && increment) {
|
|
71
|
-
areaSignal = signal(0);
|
|
72
|
-
this.loadingAreas.set(area, areaSignal);
|
|
73
|
-
}
|
|
74
|
-
if (areaSignal) {
|
|
75
|
-
areaSignal.update(count => {
|
|
76
|
-
const newCount = increment ? count + 1 : Math.max(0, count - 1);
|
|
77
|
-
if (newCount === 0) {
|
|
78
|
-
this.loadingAreas.delete(area);
|
|
79
|
-
}
|
|
80
|
-
return newCount;
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
updateTaskCount(taskCount, increment) {
|
|
85
|
-
taskCount.update(count => increment ? count + 1 : Math.max(0, count - 1));
|
|
86
|
-
}
|
|
87
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: PtrLoadingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
88
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: PtrLoadingService, providedIn: 'root' });
|
|
89
|
-
}
|
|
90
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: PtrLoadingService, decorators: [{
|
|
91
|
-
type: Injectable,
|
|
92
|
-
args: [{
|
|
93
|
-
providedIn: 'root'
|
|
94
|
-
}]
|
|
95
|
-
}] });
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF0dGVyL25neC1jb21wb25lbnRzL3NyYy9saWIvc2VydmljZXMvbG9hZGluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFFckU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdCRztBQUlILE1BQU0sT0FBTyxpQkFBaUI7SUFFcEIsZUFBZSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1QixZQUFZLEdBQUcsSUFBSSxHQUFHLEVBQTZDLENBQUM7SUFFNUUsU0FBUyxDQUFDLElBQWE7UUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0MsT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUM1QyxLQUFLLE1BQU0sVUFBVSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztnQkFDcEQsSUFBSSxVQUFVLEVBQUUsR0FBRyxDQUFDO29CQUFFLE9BQU8sSUFBSSxDQUFDO1lBQ3BDLENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFjLEVBQUUsSUFBYTtRQUN0QyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDcEQsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzNDLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQWE7UUFDeEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUIsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQztJQUNILENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxJQUFZLEVBQUUsU0FBa0I7UUFDN0QsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLFVBQVUsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUM3QixVQUFVLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBRUQsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3hCLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNoRSxJQUFJLFFBQVEsS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2pDLENBQUM7Z0JBQ0QsT0FBTyxRQUFRLENBQUM7WUFDbEIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVPLGVBQWUsQ0FBQyxTQUE0QyxFQUFFLFNBQWtCO1FBQ3RGLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7dUdBL0RVLGlCQUFpQjsyR0FBakIsaUJBQWlCLGNBRmhCLE1BQU07OzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlZCwgSW5qZWN0YWJsZSwgc2lnbmFsLCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKlxyXG4gKiBPcHRpbWl6ZWQgQXN5bmMgTG9hZGluZyBTZXJ2aWNlIHVzaW5nIEFuZ3VsYXIgU2lnbmFsc1xyXG4gKiBTdXBwb3J0cyBnbG9iYWwgbG9hZGluZyBzdGF0ZSBhbmQgbmFtZWQgbG9hZGluZyBhcmVhcyB3aXRoIGF1dG8tY2xlYW51cFxyXG4gKlxyXG4gKiBUbyB1c2UgYXMgYSBub24tc2luZ2xldG9uIHNlcnZpY2UsIGFkZCB0byBwcm92aWRlcnMgYXJyYXkgaW4gQENvbXBvbmVudCBkZWNvcmF0b3I6XHJcbiAqIEBDb21wb25lbnQoe1xyXG4gKiAgIHNlbGVjdG9yOiAnYXBwLWV4YW1wbGUnLFxyXG4gKiAgIHRlbXBsYXRlVXJsOiAnLi9leGFtcGxlLmNvbXBvbmVudC5odG1sJyxcclxuICogICBwcm92aWRlcnM6IFtQdHJMb2FkaW5nU2VydmljZV1cclxuICogfSlcclxuICpcclxuICogVXNhZ2U6XHJcbiAqIFNldCBsb2FkaW5nOiB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcodHJ1ZSlcclxuICogLSBTZXQgbG9hZGluZzogdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKHRydWUsICdhcmVhTmFtZScpXHJcbiAqXHJcbiAqIC0gR2V0IGxvYWRpbmcgKHRlbXBsYXRlKToge3sgbG9hZGluZ1NlcnZpY2UuaXNMb2FkaW5nKCkoKSB9fVxyXG4gKiAtIEdldCBsb2FkaW5nICh0ZW1wbGF0ZSk6IHt7IGxvYWRpbmdTZXJ2aWNlLmlzTG9hZGluZygnYXJlYU5hbWUnKSgpIH19XHJcbiAqXHJcbiAqIC0gR2V0IGxvYWRpbmcgKGNvbXBvbmVudCk6IHRoaXMubG9hZGluZ1NlcnZpY2UuaXNMb2FkaW5nKCkoKVxyXG4gKiAtIEdldCBsb2FkaW5nIChjb21wb25lbnQpOiB0aGlzLmxvYWRpbmdTZXJ2aWNlLmlzTG9hZGluZygnYXJlYU5hbWUnKSgpXHJcbiAqXHJcbiAqIC0gQ2hlY2sgaWYgYW55IGxvYWRpbmc6IHt7IGxvYWRpbmdTZXJ2aWNlLmlzQW55TG9hZGluZygpKCkgfX1cclxuICpcclxuICogLSBSZWFjdCB0byBsb2FkaW5nIGNoYW5nZXM6IGVmZmVjdCgoKSA9PiBjb25zb2xlLmxvZygnTG9hZGluZzonLCB0aGlzLmxvYWRpbmdTZXJ2aWNlLmlzTG9hZGluZygnYXJlYU5hbWUnKSgpKSlcclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFB0ckxvYWRpbmdTZXJ2aWNlIHtcclxuXHJcbiAgcHJpdmF0ZSBnbG9iYWxUYXNrQ291bnQgPSBzaWduYWwoMCk7XHJcbiAgcHJpdmF0ZSBsb2FkaW5nQXJlYXMgPSBuZXcgTWFwPHN0cmluZywgUmV0dXJuVHlwZTx0eXBlb2Ygc2lnbmFsPG51bWJlcj4+PigpO1xyXG5cclxuICBpc0xvYWRpbmcoYXJlYT86IHN0cmluZyk6IFNpZ25hbDxib29sZWFuPiB7XHJcbiAgICBpZiAoIWFyZWEpIHtcclxuICAgICAgcmV0dXJuIGNvbXB1dGVkKCgpID0+IHRoaXMuZ2xvYmFsVGFza0NvdW50KCkgPiAwKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgICBjb25zdCBhcmVhU2lnbmFsID0gdGhpcy5sb2FkaW5nQXJlYXMuZ2V0KGFyZWEpO1xyXG4gICAgICByZXR1cm4gYXJlYVNpZ25hbCA/IGFyZWFTaWduYWwoKSA+IDAgOiBmYWxzZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaXNBbnlMb2FkaW5nKCk6IFNpZ25hbDxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5nbG9iYWxUYXNrQ291bnQoKSA+IDApIHJldHVybiB0cnVlO1xyXG4gICAgICBmb3IgKGNvbnN0IGFyZWFTaWduYWwgb2YgdGhpcy5sb2FkaW5nQXJlYXMudmFsdWVzKCkpIHtcclxuICAgICAgICBpZiAoYXJlYVNpZ25hbCgpID4gMCkgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRMb2FkaW5nKHZhbHVlOiBib29sZWFuLCBhcmVhPzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAoIWFyZWEpIHtcclxuICAgICAgdGhpcy51cGRhdGVUYXNrQ291bnQodGhpcy5nbG9iYWxUYXNrQ291bnQsIHZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudXBkYXRlTmFtZWRBcmVhTG9hZGluZyhhcmVhLCB2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXNldExvYWRpbmcoYXJlYT86IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKCFhcmVhKSB7XHJcbiAgICAgIHRoaXMuZ2xvYmFsVGFza0NvdW50LnNldCgwKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5sb2FkaW5nQXJlYXMuaGFzKGFyZWEpKSB7XHJcbiAgICAgIHRoaXMubG9hZGluZ0FyZWFzLmdldChhcmVhKSEuc2V0KDApO1xyXG4gICAgICB0aGlzLmxvYWRpbmdBcmVhcy5kZWxldGUoYXJlYSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZU5hbWVkQXJlYUxvYWRpbmcoYXJlYTogc3RyaW5nLCBpbmNyZW1lbnQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGxldCBhcmVhU2lnbmFsID0gdGhpcy5sb2FkaW5nQXJlYXMuZ2V0KGFyZWEpO1xyXG4gICAgaWYgKCFhcmVhU2lnbmFsICYmIGluY3JlbWVudCkge1xyXG4gICAgICBhcmVhU2lnbmFsID0gc2lnbmFsKDApO1xyXG4gICAgICB0aGlzLmxvYWRpbmdBcmVhcy5zZXQoYXJlYSwgYXJlYVNpZ25hbCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGFyZWFTaWduYWwpIHtcclxuICAgICAgYXJlYVNpZ25hbC51cGRhdGUoY291bnQgPT4ge1xyXG4gICAgICAgIGNvbnN0IG5ld0NvdW50ID0gaW5jcmVtZW50ID8gY291bnQgKyAxIDogTWF0aC5tYXgoMCwgY291bnQgLSAxKTtcclxuICAgICAgICBpZiAobmV3Q291bnQgPT09IDApIHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZ0FyZWFzLmRlbGV0ZShhcmVhKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG5ld0NvdW50O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlVGFza0NvdW50KHRhc2tDb3VudDogUmV0dXJuVHlwZTx0eXBlb2Ygc2lnbmFsPG51bWJlcj4+LCBpbmNyZW1lbnQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRhc2tDb3VudC51cGRhdGUoY291bnQgPT4gaW5jcmVtZW50ID8gY291bnQgKyAxIDogTWF0aC5tYXgoMCwgY291bnQgLSAxKSk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0dGVyLW5neC1jb21wb25lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF0dGVyL25neC1jb21wb25lbnRzL3NyYy9wYXR0ZXItbmd4LWNvbXBvbmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
package/esm2022/public-api.mjs
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Public API Surface of ngx-components
|
|
3
|
-
*/
|
|
4
|
-
export * from './lib/menu/menu.component';
|
|
5
|
-
export * from './lib/forms/interfaces';
|
|
6
|
-
export { PtrFormComponent } from './lib/forms/form/form.component';
|
|
7
|
-
export { PtrSelectComponent } from './lib/forms/input/select/select.component';
|
|
8
|
-
export { PtrInputComponent } from './lib/forms/input/ptr-input/ptr-input.component';
|
|
9
|
-
export { PtrTitleComponent } from './lib/ptr-title/ptr-title.component';
|
|
10
|
-
export { PtrLoadingSpinnerComponent } from './lib/loading-spinner/loading-spinner.component';
|
|
11
|
-
export { PtrLoadingSpinnerDirective } from './lib/loading-spinner/loading-spinner.directive';
|
|
12
|
-
export { PtrLoadingService } from './lib/services/loading.service';
|
|
13
|
-
export { PtrButtonComponent } from './lib/ptr-button/ptr-button.component';
|
|
14
|
-
export { PtrDialogService } from './lib/dialog/ptr-dialog.service';
|
|
15
|
-
export { PtrDialogComponent } from './lib/dialog/ptr-dialog/ptr-dialog.component';
|
|
16
|
-
export { PtrTooltipComponent } from './lib/dialog/ptr-tooltip/ptr-tooltip.component';
|
|
17
|
-
export { PtrBreadcrumbsComponent } from './lib/ptr-breadcrumbs/ptr-breadcrumbs.component';
|
|
18
|
-
export { PtrTabsComponent } from './lib/components/tabs/ptr-tabs/ptr-tabs.component';
|
|
19
|
-
export { PtrTabComponent } from './lib/components/tabs/ptr-tab/ptr-tab.component';
|
|
20
|
-
export { PtrToasterService } from './lib/ptr-toaster/ptr-toaster.service';
|
|
21
|
-
export { PtrToasterComponent } from './lib/ptr-toaster/ptr-toaster/ptr-toaster.component';
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3BhdHRlci9uZ3gtY29tcG9uZW50cy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsMkJBQTJCLENBQUM7QUFFMUMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUVwRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV4RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUM3RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUU3RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUUzRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUVyRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUcxRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNyRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saURBQWlELENBQUM7QUFFbEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scURBQXFELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmd4LWNvbXBvbmVudHNcclxuICovXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZW51L21lbnUuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm1zL2ludGVyZmFjZXMnO1xyXG5leHBvcnQgeyBQdHJGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvZm9ybXMvZm9ybS9mb3JtLmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IFB0clNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vbGliL2Zvcm1zL2lucHV0L3NlbGVjdC9zZWxlY3QuY29tcG9uZW50JztcclxuZXhwb3J0IHsgUHRySW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2xpYi9mb3Jtcy9pbnB1dC9wdHItaW5wdXQvcHRyLWlucHV0LmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgeyBQdHJUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4vbGliL3B0ci10aXRsZS9wdHItdGl0bGUuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCB7IFB0ckxvYWRpbmdTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvbG9hZGluZy1zcGlubmVyL2xvYWRpbmctc3Bpbm5lci5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBQdHJMb2FkaW5nU3Bpbm5lckRpcmVjdGl2ZSB9IGZyb20gJy4vbGliL2xvYWRpbmctc3Bpbm5lci9sb2FkaW5nLXNwaW5uZXIuZGlyZWN0aXZlJztcclxuXHJcbmV4cG9ydCB7IFB0ckxvYWRpbmdTZXJ2aWNlIH0gZnJvbSAnLi9saWIvc2VydmljZXMvbG9hZGluZy5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCB7IFB0ckJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vbGliL3B0ci1idXR0b24vcHRyLWJ1dHRvbi5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0IHsgUHRyRGlhbG9nU2VydmljZSB9IGZyb20gJy4vbGliL2RpYWxvZy9wdHItZGlhbG9nLnNlcnZpY2UnO1xyXG5leHBvcnQgeyBQdHJEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2xpYi9kaWFsb2cvcHRyLWRpYWxvZy9wdHItZGlhbG9nLmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IFB0clRvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuL2xpYi9kaWFsb2cvcHRyLXRvb2x0aXAvcHRyLXRvb2x0aXAuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCB7IFB0ckJyZWFkY3J1bWJzQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvcHRyLWJyZWFkY3J1bWJzL3B0ci1icmVhZGNydW1icy5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBQdHJCcmVhZGNydW1iIH0gZnJvbSAnLi9saWIvcHRyLWJyZWFkY3J1bWJzL2ludGVyZmFjZXMnO1xyXG5cclxuZXhwb3J0IHsgUHRyVGFic0NvbXBvbmVudCB9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGFicy9wdHItdGFicy9wdHItdGFicy5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBQdHJUYWJDb21wb25lbnQgfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RhYnMvcHRyLXRhYi9wdHItdGFiLmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgeyBQdHJUb2FzdGVyU2VydmljZSB9IGZyb20gJy4vbGliL3B0ci10b2FzdGVyL3B0ci10b2FzdGVyLnNlcnZpY2UnO1xyXG5leHBvcnQgeyBQdHJUb2FzdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvcHRyLXRvYXN0ZXIvcHRyLXRvYXN0ZXIvcHRyLXRvYXN0ZXIuY29tcG9uZW50JztcclxuZXhwb3J0IHsgUHRyVG9hc3QgfSBmcm9tICcuL2xpYi9wdHItdG9hc3Rlci9pbnRlcmZhY2VzJztcclxuIl19
|