@patter/ngx-components 0.5.16 → 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.
Files changed (30) hide show
  1. package/README.md +24 -24
  2. package/fesm2022/patter-ngx-components.mjs +93 -79
  3. package/fesm2022/patter-ngx-components.mjs.map +1 -1
  4. package/lib/forms/input/ptr-input/ptr-input.component.d.ts +1 -1
  5. package/lib/services/loading.service.d.ts +3 -0
  6. package/package.json +3 -5
  7. package/patter-ngx-components-19.0.0.tgz +0 -0
  8. package/esm2022/lib/components/tabs/ptr-tab/ptr-tab.component.mjs +0 -23
  9. package/esm2022/lib/components/tabs/ptr-tabs/ptr-tabs.component.mjs +0 -71
  10. package/esm2022/lib/dialog/ptr-dialog/ptr-dialog.component.mjs +0 -46
  11. package/esm2022/lib/dialog/ptr-dialog.service.mjs +0 -48
  12. package/esm2022/lib/dialog/ptr-tooltip/ptr-tooltip.component.mjs +0 -32
  13. package/esm2022/lib/forms/form/form.component.mjs +0 -102
  14. package/esm2022/lib/forms/input/ptr-input/ptr-input.component.mjs +0 -139
  15. package/esm2022/lib/forms/input/select/select.component.mjs +0 -129
  16. package/esm2022/lib/forms/interfaces.mjs +0 -2
  17. package/esm2022/lib/forms/shared/ptr-dialog-list/ptr-dialog-list.component.mjs +0 -195
  18. package/esm2022/lib/loading-spinner/loading-spinner.component.mjs +0 -11
  19. package/esm2022/lib/loading-spinner/loading-spinner.directive.mjs +0 -83
  20. package/esm2022/lib/menu/menu.component.mjs +0 -16
  21. package/esm2022/lib/ptr-breadcrumbs/interfaces.mjs +0 -2
  22. package/esm2022/lib/ptr-breadcrumbs/ptr-breadcrumbs.component.mjs +0 -60
  23. package/esm2022/lib/ptr-button/ptr-button.component.mjs +0 -111
  24. package/esm2022/lib/ptr-title/ptr-title.component.mjs +0 -54
  25. package/esm2022/lib/ptr-toaster/interfaces.mjs +0 -2
  26. package/esm2022/lib/ptr-toaster/ptr-toaster/ptr-toaster.component.mjs +0 -15
  27. package/esm2022/lib/ptr-toaster/ptr-toaster.service.mjs +0 -52
  28. package/esm2022/lib/services/loading.service.mjs +0 -83
  29. package/esm2022/patter-ngx-components.mjs +0 -5
  30. 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}.breadcrumb-item a{border-bottom:2px solid transparent;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}.breadcrumb-item a{border-bottom:2px solid transparent;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>&times;</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}.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>&times;</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}.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHRyLXRvYXN0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF0dGVyL25neC1jb21wb25lbnRzL3NyYy9saWIvcHRyLXRvYXN0ZXIvcHRyLXRvYXN0ZXIvcHRyLXRvYXN0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF0dGVyL25neC1jb21wb25lbnRzL3NyYy9saWIvcHRyLXRvYXN0ZXIvcHRyLXRvYXN0ZXIvcHRyLXRvYXN0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFVM0QsTUFBTSxPQUFPLG1CQUFtQjtJQUNwQixjQUFjLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7dUdBRDFDLG1CQUFtQjsyRkFBbkIsbUJBQW1CLHVFQ1poQyx5WUFRQSxrckJERFksWUFBWTs7MkZBS1gsbUJBQW1CO2tCQVIvQixTQUFTOytCQUNFLGFBQWEsY0FDWCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsbUJBR04sdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQdHJUb2FzdGVyU2VydmljZSB9IGZyb20gJy4uL3B0ci10b2FzdGVyLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdwdHItdG9hc3RlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vcHRyLXRvYXN0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9wdHItdG9hc3Rlci5jb21wb25lbnQuc2NzcycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFB0clRvYXN0ZXJDb21wb25lbnQge1xyXG4gIHByb3RlY3RlZCB0b2FzdGVyU2VydmljZSA9IGluamVjdChQdHJUb2FzdGVyU2VydmljZSk7XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInRvYXN0ZXItY29udGFpbmVyXCIgYXJpYS1saXZlPVwicG9saXRlXCIgYXJpYS1hdG9taWM9XCJ0cnVlXCI+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,83 +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
- * - React to loading changes: effect(() => console.log('Loading:', this.loadingService.isLoading('areaName')()))
25
- */
26
- export class PtrLoadingService {
27
- globalTaskCount = signal(0);
28
- loadingAreas = new Map();
29
- isLoading(area) {
30
- if (!area) {
31
- return computed(() => this.globalTaskCount() > 0);
32
- }
33
- return computed(() => {
34
- const areaSignal = this.loadingAreas.get(area);
35
- return areaSignal ? areaSignal() > 0 : false;
36
- });
37
- }
38
- setLoading(value, area) {
39
- if (!area) {
40
- this.updateTaskCount(this.globalTaskCount, value);
41
- }
42
- else {
43
- this.updateNamedAreaLoading(area, value);
44
- }
45
- }
46
- resetLoading(area) {
47
- if (!area) {
48
- this.globalTaskCount.set(0);
49
- }
50
- else if (this.loadingAreas.has(area)) {
51
- this.loadingAreas.get(area).set(0);
52
- this.loadingAreas.delete(area);
53
- }
54
- }
55
- updateNamedAreaLoading(area, increment) {
56
- let areaSignal = this.loadingAreas.get(area);
57
- if (!areaSignal && increment) {
58
- areaSignal = signal(0);
59
- this.loadingAreas.set(area, areaSignal);
60
- }
61
- if (areaSignal) {
62
- areaSignal.update(count => {
63
- const newCount = increment ? count + 1 : Math.max(0, count - 1);
64
- if (newCount === 0) {
65
- this.loadingAreas.delete(area);
66
- }
67
- return newCount;
68
- });
69
- }
70
- }
71
- updateTaskCount(taskCount, increment) {
72
- taskCount.update(count => increment ? count + 1 : Math.max(0, count - 1));
73
- }
74
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: PtrLoadingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
75
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: PtrLoadingService, providedIn: 'root' });
76
- }
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: PtrLoadingService, decorators: [{
78
- type: Injectable,
79
- args: [{
80
- providedIn: 'root'
81
- }]
82
- }] });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF0dGVyL25neC1jb21wb25lbnRzL3NyYy9saWIvc2VydmljZXMvbG9hZGluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFFckU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFJSCxNQUFNLE9BQU8saUJBQWlCO0lBRXBCLGVBQWUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUIsWUFBWSxHQUFHLElBQUksR0FBRyxFQUE2QyxDQUFDO0lBRTVFLFNBQVMsQ0FBQyxJQUFhO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLE9BQU8sUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBRUQsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ25CLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9DLE9BQU8sVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBYyxFQUFFLElBQWE7UUFDdEMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3BELENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMzQyxDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFhO1FBQ3hCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlCLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLENBQUM7SUFDSCxDQUFDO0lBRU8sc0JBQXNCLENBQUMsSUFBWSxFQUFFLFNBQWtCO1FBQzdELElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxVQUFVLElBQUksU0FBUyxFQUFFLENBQUM7WUFDN0IsVUFBVSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUVELElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN4QixNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDaEUsSUFBSSxRQUFRLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNqQyxDQUFDO2dCQUNELE9BQU8sUUFBUSxDQUFDO1lBQ2xCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFTyxlQUFlLENBQUMsU0FBNEMsRUFBRSxTQUFrQjtRQUN0RixTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RSxDQUFDO3VHQXJEVSxpQkFBaUI7MkdBQWpCLGlCQUFpQixjQUZoQixNQUFNOzsyRkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIEluamVjdGFibGUsIHNpZ25hbCwgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKipcclxuICogT3B0aW1pemVkIEFzeW5jIExvYWRpbmcgU2VydmljZSB1c2luZyBBbmd1bGFyIFNpZ25hbHNcclxuICogU3VwcG9ydHMgZ2xvYmFsIGxvYWRpbmcgc3RhdGUgYW5kIG5hbWVkIGxvYWRpbmcgYXJlYXMgd2l0aCBhdXRvLWNsZWFudXBcclxuICpcclxuICogVG8gdXNlIGFzIGEgbm9uLXNpbmdsZXRvbiBzZXJ2aWNlLCBhZGQgdG8gcHJvdmlkZXJzIGFycmF5IGluIEBDb21wb25lbnQgZGVjb3JhdG9yOlxyXG4gKiBAQ29tcG9uZW50KHtcclxuICogICBzZWxlY3RvcjogJ2FwcC1leGFtcGxlJyxcclxuICogICB0ZW1wbGF0ZVVybDogJy4vZXhhbXBsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAqICAgcHJvdmlkZXJzOiBbUHRyTG9hZGluZ1NlcnZpY2VdXHJcbiAqIH0pXHJcbiAqXHJcbiAqIFVzYWdlOlxyXG4gKiBTZXQgbG9hZGluZzogdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKHRydWUpXHJcbiAqIC0gU2V0IGxvYWRpbmc6IHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyh0cnVlLCAnYXJlYU5hbWUnKVxyXG4gKiBcclxuICogLSBHZXQgbG9hZGluZyAodGVtcGxhdGUpOiB7eyBsb2FkaW5nU2VydmljZS5pc0xvYWRpbmcoKSgpIH19XHJcbiAqIC0gR2V0IGxvYWRpbmcgKHRlbXBsYXRlKToge3sgbG9hZGluZ1NlcnZpY2UuaXNMb2FkaW5nKCdhcmVhTmFtZScpKCkgfX1cclxuICogXHJcbiAqIC0gR2V0IGxvYWRpbmcgKGNvbXBvbmVudCk6IHRoaXMubG9hZGluZ1NlcnZpY2UuaXNMb2FkaW5nKCkoKVxyXG4gKiAtIEdldCBsb2FkaW5nIChjb21wb25lbnQpOiB0aGlzLmxvYWRpbmdTZXJ2aWNlLmlzTG9hZGluZygnYXJlYU5hbWUnKSgpXHJcbiAqIFxyXG4gKiAtIFJlYWN0IHRvIGxvYWRpbmcgY2hhbmdlczogZWZmZWN0KCgpID0+IGNvbnNvbGUubG9nKCdMb2FkaW5nOicsIHRoaXMubG9hZGluZ1NlcnZpY2UuaXNMb2FkaW5nKCdhcmVhTmFtZScpKCkpKVxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUHRyTG9hZGluZ1NlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIGdsb2JhbFRhc2tDb3VudCA9IHNpZ25hbCgwKTtcclxuICBwcml2YXRlIGxvYWRpbmdBcmVhcyA9IG5ldyBNYXA8c3RyaW5nLCBSZXR1cm5UeXBlPHR5cGVvZiBzaWduYWw8bnVtYmVyPj4+KCk7XHJcblxyXG4gIGlzTG9hZGluZyhhcmVhPzogc3RyaW5nKTogU2lnbmFsPGJvb2xlYW4+IHtcclxuICAgIGlmICghYXJlYSkge1xyXG4gICAgICByZXR1cm4gY29tcHV0ZWQoKCkgPT4gdGhpcy5nbG9iYWxUYXNrQ291bnQoKSA+IDApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGFyZWFTaWduYWwgPSB0aGlzLmxvYWRpbmdBcmVhcy5nZXQoYXJlYSk7XHJcbiAgICAgIHJldHVybiBhcmVhU2lnbmFsID8gYXJlYVNpZ25hbCgpID4gMCA6IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRMb2FkaW5nKHZhbHVlOiBib29sZWFuLCBhcmVhPzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAoIWFyZWEpIHtcclxuICAgICAgdGhpcy51cGRhdGVUYXNrQ291bnQodGhpcy5nbG9iYWxUYXNrQ291bnQsIHZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudXBkYXRlTmFtZWRBcmVhTG9hZGluZyhhcmVhLCB2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXNldExvYWRpbmcoYXJlYT86IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKCFhcmVhKSB7XHJcbiAgICAgIHRoaXMuZ2xvYmFsVGFza0NvdW50LnNldCgwKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5sb2FkaW5nQXJlYXMuaGFzKGFyZWEpKSB7XHJcbiAgICAgIHRoaXMubG9hZGluZ0FyZWFzLmdldChhcmVhKSEuc2V0KDApO1xyXG4gICAgICB0aGlzLmxvYWRpbmdBcmVhcy5kZWxldGUoYXJlYSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZU5hbWVkQXJlYUxvYWRpbmcoYXJlYTogc3RyaW5nLCBpbmNyZW1lbnQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGxldCBhcmVhU2lnbmFsID0gdGhpcy5sb2FkaW5nQXJlYXMuZ2V0KGFyZWEpO1xyXG4gICAgaWYgKCFhcmVhU2lnbmFsICYmIGluY3JlbWVudCkge1xyXG4gICAgICBhcmVhU2lnbmFsID0gc2lnbmFsKDApO1xyXG4gICAgICB0aGlzLmxvYWRpbmdBcmVhcy5zZXQoYXJlYSwgYXJlYVNpZ25hbCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGFyZWFTaWduYWwpIHtcclxuICAgICAgYXJlYVNpZ25hbC51cGRhdGUoY291bnQgPT4ge1xyXG4gICAgICAgIGNvbnN0IG5ld0NvdW50ID0gaW5jcmVtZW50ID8gY291bnQgKyAxIDogTWF0aC5tYXgoMCwgY291bnQgLSAxKTtcclxuICAgICAgICBpZiAobmV3Q291bnQgPT09IDApIHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZ0FyZWFzLmRlbGV0ZShhcmVhKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG5ld0NvdW50O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlVGFza0NvdW50KHRhc2tDb3VudDogUmV0dXJuVHlwZTx0eXBlb2Ygc2lnbmFsPG51bWJlcj4+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==
@@ -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