@pecb-ui/components 1.1.2 → 2.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 (56) hide show
  1. package/README.md +556 -556
  2. package/fesm2022/pecb-ui-components.mjs +998 -1907
  3. package/fesm2022/pecb-ui-components.mjs.map +1 -1
  4. package/index.d.ts +2439 -3
  5. package/package.json +6 -8
  6. package/esm2022/lib/components/button/button.component.mjs +0 -171
  7. package/esm2022/lib/components/card/card.component.mjs +0 -182
  8. package/esm2022/lib/components/checkbox/checkbox.component.mjs +0 -126
  9. package/esm2022/lib/components/datepicker/datepicker.component.mjs +0 -349
  10. package/esm2022/lib/components/dropdown/dropdown.component.mjs +0 -329
  11. package/esm2022/lib/components/input/input.component.mjs +0 -321
  12. package/esm2022/lib/components/pagination/pagination.component.mjs +0 -197
  13. package/esm2022/lib/components/radio/radio.component.mjs +0 -147
  14. package/esm2022/lib/components/right-modal/right-modal.component.mjs +0 -234
  15. package/esm2022/lib/components/sidebar/sidebar.component.mjs +0 -155
  16. package/esm2022/lib/components/status/status.component.mjs +0 -50
  17. package/esm2022/lib/components/tab/tab.component.mjs +0 -151
  18. package/esm2022/lib/components/table/table.component.mjs +0 -503
  19. package/esm2022/lib/components/toggle/toggle.component.mjs +0 -126
  20. package/esm2022/lib/pecb-components.module.mjs +0 -118
  21. package/esm2022/lib/services/loading.service.mjs +0 -182
  22. package/esm2022/lib/services/notification.service.mjs +0 -144
  23. package/esm2022/lib/services/theme.service.mjs +0 -232
  24. package/esm2022/lib/shared/interfaces/component.interfaces.mjs +0 -2
  25. package/esm2022/lib/shared/types/common.types.mjs +0 -6
  26. package/esm2022/lib/shared/utils/accessibility.utils.mjs +0 -223
  27. package/esm2022/lib/shared/utils/dom.utils.mjs +0 -240
  28. package/esm2022/lib/shared/utils/error.utils.mjs +0 -277
  29. package/esm2022/lib/shared/utils/string.utils.mjs +0 -204
  30. package/esm2022/pecb-ui-components.mjs +0 -5
  31. package/esm2022/public-api.mjs +0 -53
  32. package/lib/components/button/button.component.d.ts +0 -130
  33. package/lib/components/card/card.component.d.ts +0 -140
  34. package/lib/components/checkbox/checkbox.component.d.ts +0 -74
  35. package/lib/components/datepicker/datepicker.component.d.ts +0 -155
  36. package/lib/components/dropdown/dropdown.component.d.ts +0 -144
  37. package/lib/components/input/input.component.d.ts +0 -215
  38. package/lib/components/pagination/pagination.component.d.ts +0 -53
  39. package/lib/components/radio/radio.component.d.ts +0 -93
  40. package/lib/components/right-modal/right-modal.component.d.ts +0 -137
  41. package/lib/components/sidebar/sidebar.component.d.ts +0 -97
  42. package/lib/components/status/status.component.d.ts +0 -19
  43. package/lib/components/tab/tab.component.d.ts +0 -102
  44. package/lib/components/table/table.component.d.ts +0 -403
  45. package/lib/components/toggle/toggle.component.d.ts +0 -74
  46. package/lib/pecb-components.module.d.ts +0 -37
  47. package/lib/services/loading.service.d.ts +0 -129
  48. package/lib/services/notification.service.d.ts +0 -136
  49. package/lib/services/theme.service.d.ts +0 -142
  50. package/lib/shared/interfaces/component.interfaces.d.ts +0 -283
  51. package/lib/shared/types/common.types.d.ts +0 -86
  52. package/lib/shared/utils/accessibility.utils.d.ts +0 -167
  53. package/lib/shared/utils/dom.utils.d.ts +0 -108
  54. package/lib/shared/utils/error.utils.d.ts +0 -191
  55. package/lib/shared/utils/string.utils.d.ts +0 -144
  56. package/public-api.d.ts +0 -24
@@ -1,126 +0,0 @@
1
- import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, forwardRef } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
- import { generateUniqueId } from '../../shared/utils/dom.utils';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
7
- /**
8
- * A professional toggle/switch component with label and description support.
9
- * Fully accessible with WCAG 2.1 AA compliance and reactive forms support.
10
- *
11
- * @example
12
- * ```html
13
- * <pecb-toggle
14
- * label="Enable notifications"
15
- * description="Receive email notifications"
16
- * [(ngModel)]="notificationsEnabled"
17
- * ></pecb-toggle>
18
- * ```
19
- *
20
- * @publicApi
21
- */
22
- export class ToggleComponent {
23
- constructor(cdr) {
24
- this.cdr = cdr;
25
- /**
26
- * Unique ID for the toggle element
27
- */
28
- this.id = generateUniqueId('toggle');
29
- /**
30
- * Position of the label relative to the toggle control.
31
- * 'right' (default): [toggle] Title Description
32
- * 'left': Title Description [toggle]
33
- */
34
- this.labelPosition = 'right';
35
- /**
36
- * Whether the toggle is disabled
37
- */
38
- this.disabled = false;
39
- /**
40
- * Event emitted when toggle state changes
41
- */
42
- this.toggleChange = new EventEmitter();
43
- // Internal state
44
- this.checked = false;
45
- // ControlValueAccessor
46
- this.onChange = () => { };
47
- this.onTouched = () => { };
48
- }
49
- /**
50
- * Get CSS classes for the toggle wrapper
51
- */
52
- get wrapperClasses() {
53
- return [
54
- 'pecb-toggle',
55
- this.disabled ? 'pecb-toggle--disabled' : '',
56
- this.checked ? 'pecb-toggle--checked' : '',
57
- this.labelPosition === 'left' ? 'pecb-toggle--label-left' : ''
58
- ].filter(Boolean);
59
- }
60
- /**
61
- * Handle toggle change
62
- */
63
- onToggleChange(event) {
64
- if (this.disabled)
65
- return;
66
- const checked = event.target.checked;
67
- this.checked = checked;
68
- this.onChange(this.checked);
69
- this.toggleChange.emit(this.checked);
70
- this.cdr.markForCheck();
71
- }
72
- /**
73
- * Handle blur event
74
- */
75
- onBlur() {
76
- this.onTouched();
77
- }
78
- // ControlValueAccessor implementation
79
- writeValue(value) {
80
- this.checked = !!value;
81
- this.cdr.markForCheck();
82
- }
83
- registerOnChange(fn) {
84
- this.onChange = fn;
85
- }
86
- registerOnTouched(fn) {
87
- this.onTouched = fn;
88
- }
89
- setDisabledState(isDisabled) {
90
- this.disabled = isDisabled;
91
- this.cdr.markForCheck();
92
- }
93
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToggleComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
94
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ToggleComponent, isStandalone: true, selector: "pecb-toggle", inputs: { id: "id", name: "name", label: "label", description: "description", labelPosition: "labelPosition", disabled: "disabled" }, outputs: { toggleChange: "toggleChange" }, providers: [
95
- {
96
- provide: NG_VALUE_ACCESSOR,
97
- useExisting: forwardRef(() => ToggleComponent),
98
- multi: true
99
- }
100
- ], ngImport: i0, template: "<div [class]=\"wrapperClasses.join(' ')\">\r\n <label [attr.for]=\"id\" class=\"pecb-toggle__label\">\r\n <input\r\n [id]=\"id\"\r\n type=\"checkbox\"\r\n role=\"switch\"\r\n class=\"pecb-toggle__input\"\r\n [name]=\"name\"\r\n [checked]=\"checked\"\r\n [disabled]=\"disabled\"\r\n [attr.aria-label]=\"label\"\r\n [attr.aria-describedby]=\"description ? id + '-description' : null\"\r\n [attr.aria-checked]=\"checked\"\r\n (change)=\"onToggleChange($event)\"\r\n (blur)=\"onBlur()\"\r\n />\r\n <span *ngIf=\"labelPosition === 'left' && (label || description)\" class=\"pecb-toggle__content\">\r\n <span *ngIf=\"label\" class=\"pecb-toggle__text\">{{ label }}</span>\r\n <span *ngIf=\"description\" [id]=\"id + '-description'\" class=\"pecb-toggle__description\">{{ description }}</span>\r\n </span>\r\n <span class=\"pecb-toggle__control\">\r\n <span class=\"pecb-toggle__thumb\"></span>\r\n </span>\r\n <span *ngIf=\"labelPosition === 'right' && (label || description)\" class=\"pecb-toggle__content\">\r\n <span *ngIf=\"label\" class=\"pecb-toggle__text\">{{ label }}</span>\r\n <span *ngIf=\"description\" [id]=\"id + '-description'\" class=\"pecb-toggle__description\">{{ description }}</span>\r\n </span>\r\n </label>\r\n</div>\r\n", styles: [".pecb-toggle{position:relative;display:inline-block}.pecb-toggle__label{display:flex;align-items:flex-start;cursor:pointer;-webkit-user-select:none;user-select:none;gap:12px}.pecb-toggle__input{position:absolute;opacity:0;width:0;height:0;margin:0;padding:0;pointer-events:none}.pecb-toggle__control{position:relative;display:inline-flex;align-items:center;flex-shrink:0;width:44px;height:24px;margin-top:0;border-radius:12px;background-color:#c2c2c2;transition-property:background-color;transition-duration:.25s ease-in-out;transition-timing-function:ease-in-out}.pecb-toggle__thumb{position:absolute;left:2px;width:20px;height:20px;border-radius:50%;background-color:#fff;box-shadow:0 2px 4px #0003;transition-property:transform;transition-duration:.25s ease-in-out;transition-timing-function:ease-in-out}.pecb-toggle__content{display:flex;flex-direction:column;gap:6px;flex:1}.pecb-toggle__text{font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;font-weight:500;color:#313131;line-height:1.5}.pecb-toggle__description{font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:12px;font-weight:400;color:#919191;line-height:1.5}.pecb-toggle:not(.pecb-toggle--disabled) .pecb-toggle__label:hover .pecb-toggle__control{background-color:#919191}.pecb-toggle__input:focus-visible+.pecb-toggle__control{outline:2px solid #212427;outline-offset:2px}.pecb-toggle--checked .pecb-toggle__control{background-color:#212427}.pecb-toggle--checked .pecb-toggle__thumb{transform:translate(20px)}.pecb-toggle--checked:not(.pecb-toggle--disabled) .pecb-toggle__label:hover .pecb-toggle__control{background-color:#34383d}.pecb-toggle--disabled .pecb-toggle__label{cursor:not-allowed}.pecb-toggle--disabled .pecb-toggle__control{background-color:#f7f5f5}.pecb-toggle--disabled .pecb-toggle__thumb{background-color:#ececec;box-shadow:none}.pecb-toggle--disabled.pecb-toggle--checked .pecb-toggle__control{background-color:#c2c2c2}.pecb-toggle--disabled .pecb-toggle__text{color:#c2c2c2}.pecb-toggle--disabled .pecb-toggle__description{color:#ececec}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
101
- }
102
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToggleComponent, decorators: [{
103
- type: Component,
104
- args: [{ selector: 'pecb-toggle', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
105
- {
106
- provide: NG_VALUE_ACCESSOR,
107
- useExisting: forwardRef(() => ToggleComponent),
108
- multi: true
109
- }
110
- ], template: "<div [class]=\"wrapperClasses.join(' ')\">\r\n <label [attr.for]=\"id\" class=\"pecb-toggle__label\">\r\n <input\r\n [id]=\"id\"\r\n type=\"checkbox\"\r\n role=\"switch\"\r\n class=\"pecb-toggle__input\"\r\n [name]=\"name\"\r\n [checked]=\"checked\"\r\n [disabled]=\"disabled\"\r\n [attr.aria-label]=\"label\"\r\n [attr.aria-describedby]=\"description ? id + '-description' : null\"\r\n [attr.aria-checked]=\"checked\"\r\n (change)=\"onToggleChange($event)\"\r\n (blur)=\"onBlur()\"\r\n />\r\n <span *ngIf=\"labelPosition === 'left' && (label || description)\" class=\"pecb-toggle__content\">\r\n <span *ngIf=\"label\" class=\"pecb-toggle__text\">{{ label }}</span>\r\n <span *ngIf=\"description\" [id]=\"id + '-description'\" class=\"pecb-toggle__description\">{{ description }}</span>\r\n </span>\r\n <span class=\"pecb-toggle__control\">\r\n <span class=\"pecb-toggle__thumb\"></span>\r\n </span>\r\n <span *ngIf=\"labelPosition === 'right' && (label || description)\" class=\"pecb-toggle__content\">\r\n <span *ngIf=\"label\" class=\"pecb-toggle__text\">{{ label }}</span>\r\n <span *ngIf=\"description\" [id]=\"id + '-description'\" class=\"pecb-toggle__description\">{{ description }}</span>\r\n </span>\r\n </label>\r\n</div>\r\n", styles: [".pecb-toggle{position:relative;display:inline-block}.pecb-toggle__label{display:flex;align-items:flex-start;cursor:pointer;-webkit-user-select:none;user-select:none;gap:12px}.pecb-toggle__input{position:absolute;opacity:0;width:0;height:0;margin:0;padding:0;pointer-events:none}.pecb-toggle__control{position:relative;display:inline-flex;align-items:center;flex-shrink:0;width:44px;height:24px;margin-top:0;border-radius:12px;background-color:#c2c2c2;transition-property:background-color;transition-duration:.25s ease-in-out;transition-timing-function:ease-in-out}.pecb-toggle__thumb{position:absolute;left:2px;width:20px;height:20px;border-radius:50%;background-color:#fff;box-shadow:0 2px 4px #0003;transition-property:transform;transition-duration:.25s ease-in-out;transition-timing-function:ease-in-out}.pecb-toggle__content{display:flex;flex-direction:column;gap:6px;flex:1}.pecb-toggle__text{font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;font-weight:500;color:#313131;line-height:1.5}.pecb-toggle__description{font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:12px;font-weight:400;color:#919191;line-height:1.5}.pecb-toggle:not(.pecb-toggle--disabled) .pecb-toggle__label:hover .pecb-toggle__control{background-color:#919191}.pecb-toggle__input:focus-visible+.pecb-toggle__control{outline:2px solid #212427;outline-offset:2px}.pecb-toggle--checked .pecb-toggle__control{background-color:#212427}.pecb-toggle--checked .pecb-toggle__thumb{transform:translate(20px)}.pecb-toggle--checked:not(.pecb-toggle--disabled) .pecb-toggle__label:hover .pecb-toggle__control{background-color:#34383d}.pecb-toggle--disabled .pecb-toggle__label{cursor:not-allowed}.pecb-toggle--disabled .pecb-toggle__control{background-color:#f7f5f5}.pecb-toggle--disabled .pecb-toggle__thumb{background-color:#ececec;box-shadow:none}.pecb-toggle--disabled.pecb-toggle--checked .pecb-toggle__control{background-color:#c2c2c2}.pecb-toggle--disabled .pecb-toggle__text{color:#c2c2c2}.pecb-toggle--disabled .pecb-toggle__description{color:#ececec}\n"] }]
111
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { id: [{
112
- type: Input
113
- }], name: [{
114
- type: Input
115
- }], label: [{
116
- type: Input
117
- }], description: [{
118
- type: Input
119
- }], labelPosition: [{
120
- type: Input
121
- }], disabled: [{
122
- type: Input
123
- }], toggleChange: [{
124
- type: Output
125
- }] } });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RvZ2dsZS90b2dnbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvdG9nZ2xlL3RvZ2dsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLHVCQUF1QixFQUN2QixVQUFVLEVBRVgsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBSWhFOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBZ0JILE1BQU0sT0FBTyxlQUFlO0lBNkMxQixZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTVDMUM7O1dBRUc7UUFDTSxPQUFFLEdBQVcsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFpQmpEOzs7O1dBSUc7UUFDTSxrQkFBYSxHQUF3QixPQUFPLENBQUM7UUFFdEQ7O1dBRUc7UUFDTSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRTFCOztXQUVHO1FBQ08saUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRXJELGlCQUFpQjtRQUNqQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWhCLHVCQUF1QjtRQUNmLGFBQVEsR0FBNkIsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBQzlDLGNBQVMsR0FBZSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFFSSxDQUFDO0lBRTlDOztPQUVHO0lBQ0gsSUFBSSxjQUFjO1FBQ2hCLE9BQU87WUFDTCxhQUFhO1lBQ2IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDNUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDMUMsSUFBSSxDQUFDLGFBQWEsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQy9ELENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWMsQ0FBQyxLQUFZO1FBQ3pCLElBQUksSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBRTFCLE1BQU0sT0FBTyxHQUFJLEtBQUssQ0FBQyxNQUEyQixDQUFDLE9BQU8sQ0FBQztRQUMzRCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNO1FBQ0osSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxzQ0FBc0M7SUFDdEMsVUFBVSxDQUFDLEtBQWM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQTRCO1FBQzNDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFjO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7K0dBaEdVLGVBQWU7bUdBQWYsZUFBZSwyT0FSZjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDO2dCQUM5QyxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsMEJDM0NILHEwQ0E2QkEsMG9FRElZLFlBQVk7OzRGQVlYLGVBQWU7a0JBZjNCLFNBQVM7K0JBQ0UsYUFBYSxjQUNYLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxtQkFHTix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGdCQUFnQixDQUFDOzRCQUM5QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtzRkFNUSxFQUFFO3NCQUFWLEtBQUs7Z0JBS0csSUFBSTtzQkFBWixLQUFLO2dCQUtHLEtBQUs7c0JBQWIsS0FBSztnQkFLRyxXQUFXO3NCQUFuQixLQUFLO2dCQU9HLGFBQWE7c0JBQXJCLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSztnQkFLSSxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBmb3J3YXJkUmVmLFxyXG4gIENoYW5nZURldGVjdG9yUmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgZ2VuZXJhdGVVbmlxdWVJZCB9IGZyb20gJy4uLy4uL3NoYXJlZC91dGlscy9kb20udXRpbHMnO1xyXG5cclxuZXhwb3J0IHR5cGUgVG9nZ2xlTGFiZWxQb3NpdGlvbiA9ICdyaWdodCcgfCAnbGVmdCc7XHJcblxyXG4vKipcclxuICogQSBwcm9mZXNzaW9uYWwgdG9nZ2xlL3N3aXRjaCBjb21wb25lbnQgd2l0aCBsYWJlbCBhbmQgZGVzY3JpcHRpb24gc3VwcG9ydC5cclxuICogRnVsbHkgYWNjZXNzaWJsZSB3aXRoIFdDQUcgMi4xIEFBIGNvbXBsaWFuY2UgYW5kIHJlYWN0aXZlIGZvcm1zIHN1cHBvcnQuXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYGh0bWxcclxuICogPHBlY2ItdG9nZ2xlXHJcbiAqICAgbGFiZWw9XCJFbmFibGUgbm90aWZpY2F0aW9uc1wiXHJcbiAqICAgZGVzY3JpcHRpb249XCJSZWNlaXZlIGVtYWlsIG5vdGlmaWNhdGlvbnNcIlxyXG4gKiAgIFsobmdNb2RlbCldPVwibm90aWZpY2F0aW9uc0VuYWJsZWRcIlxyXG4gKiA+PC9wZWNiLXRvZ2dsZT5cclxuICogYGBgXHJcbiAqXHJcbiAqIEBwdWJsaWNBcGlcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncGVjYi10b2dnbGUnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RvZ2dsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdG9nZ2xlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUb2dnbGVDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRvZ2dsZUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICAvKipcclxuICAgKiBVbmlxdWUgSUQgZm9yIHRoZSB0b2dnbGUgZWxlbWVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGlkOiBzdHJpbmcgPSBnZW5lcmF0ZVVuaXF1ZUlkKCd0b2dnbGUnKTtcclxuXHJcbiAgLyoqXHJcbiAgICogTmFtZSBhdHRyaWJ1dGUgZm9yIHRoZSB0b2dnbGVcclxuICAgKi9cclxuICBASW5wdXQoKSBuYW1lPzogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBMYWJlbCB0ZXh0IHRvIGRpc3BsYXlcclxuICAgKi9cclxuICBASW5wdXQoKSBsYWJlbD86IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogRGVzY3JpcHRpb24gdGV4dCB0byBkaXNwbGF5IGJlbG93IGxhYmVsXHJcbiAgICovXHJcbiAgQElucHV0KCkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFBvc2l0aW9uIG9mIHRoZSBsYWJlbCByZWxhdGl2ZSB0byB0aGUgdG9nZ2xlIGNvbnRyb2wuXHJcbiAgICogJ3JpZ2h0JyAoZGVmYXVsdCk6IFt0b2dnbGVdIFRpdGxlIERlc2NyaXB0aW9uXHJcbiAgICogJ2xlZnQnOiBUaXRsZSBEZXNjcmlwdGlvbiBbdG9nZ2xlXVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGxhYmVsUG9zaXRpb246IFRvZ2dsZUxhYmVsUG9zaXRpb24gPSAncmlnaHQnO1xyXG5cclxuICAvKipcclxuICAgKiBXaGV0aGVyIHRoZSB0b2dnbGUgaXMgZGlzYWJsZWRcclxuICAgKi9cclxuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdG9nZ2xlIHN0YXRlIGNoYW5nZXNcclxuICAgKi9cclxuICBAT3V0cHV0KCkgdG9nZ2xlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICAvLyBJbnRlcm5hbCBzdGF0ZVxyXG4gIGNoZWNrZWQgPSBmYWxzZTtcclxuXHJcbiAgLy8gQ29udHJvbFZhbHVlQWNjZXNzb3JcclxuICBwcml2YXRlIG9uQ2hhbmdlOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQgPSAoKSA9PiB7fTtcclxuICBwcml2YXRlIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBDU1MgY2xhc3NlcyBmb3IgdGhlIHRvZ2dsZSB3cmFwcGVyXHJcbiAgICovXHJcbiAgZ2V0IHdyYXBwZXJDbGFzc2VzKCk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiBbXHJcbiAgICAgICdwZWNiLXRvZ2dsZScsXHJcbiAgICAgIHRoaXMuZGlzYWJsZWQgPyAncGVjYi10b2dnbGUtLWRpc2FibGVkJyA6ICcnLFxyXG4gICAgICB0aGlzLmNoZWNrZWQgPyAncGVjYi10b2dnbGUtLWNoZWNrZWQnIDogJycsXHJcbiAgICAgIHRoaXMubGFiZWxQb3NpdGlvbiA9PT0gJ2xlZnQnID8gJ3BlY2ItdG9nZ2xlLS1sYWJlbC1sZWZ0JyA6ICcnXHJcbiAgICBdLmZpbHRlcihCb29sZWFuKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZSB0b2dnbGUgY2hhbmdlXHJcbiAgICovXHJcbiAgb25Ub2dnbGVDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGNoZWNrZWQgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNoZWNrZWQ7XHJcbiAgICB0aGlzLmNoZWNrZWQgPSBjaGVja2VkO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLmNoZWNrZWQpO1xyXG4gICAgdGhpcy50b2dnbGVDaGFuZ2UuZW1pdCh0aGlzLmNoZWNrZWQpO1xyXG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGUgYmx1ciBldmVudFxyXG4gICAqL1xyXG4gIG9uQmx1cigpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgfVxyXG5cclxuICAvLyBDb250cm9sVmFsdWVBY2Nlc3NvciBpbXBsZW1lbnRhdGlvblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuY2hlY2tlZCA9ICEhdmFsdWU7XHJcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogYm9vbGVhbikgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgW2NsYXNzXT1cIndyYXBwZXJDbGFzc2VzLmpvaW4oJyAnKVwiPlxyXG4gIDxsYWJlbCBbYXR0ci5mb3JdPVwiaWRcIiBjbGFzcz1cInBlY2ItdG9nZ2xlX19sYWJlbFwiPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIFtpZF09XCJpZFwiXHJcbiAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgIHJvbGU9XCJzd2l0Y2hcIlxyXG4gICAgICBjbGFzcz1cInBlY2ItdG9nZ2xlX19pbnB1dFwiXHJcbiAgICAgIFtuYW1lXT1cIm5hbWVcIlxyXG4gICAgICBbY2hlY2tlZF09XCJjaGVja2VkXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbFwiXHJcbiAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiZGVzY3JpcHRpb24gPyBpZCArICctZGVzY3JpcHRpb24nIDogbnVsbFwiXHJcbiAgICAgIFthdHRyLmFyaWEtY2hlY2tlZF09XCJjaGVja2VkXCJcclxuICAgICAgKGNoYW5nZSk9XCJvblRvZ2dsZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxyXG4gICAgLz5cclxuICAgIDxzcGFuICpuZ0lmPVwibGFiZWxQb3NpdGlvbiA9PT0gJ2xlZnQnICYmIChsYWJlbCB8fCBkZXNjcmlwdGlvbilcIiBjbGFzcz1cInBlY2ItdG9nZ2xlX19jb250ZW50XCI+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwibGFiZWxcIiBjbGFzcz1cInBlY2ItdG9nZ2xlX190ZXh0XCI+e3sgbGFiZWwgfX08L3NwYW4+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwiZGVzY3JpcHRpb25cIiBbaWRdPVwiaWQgKyAnLWRlc2NyaXB0aW9uJ1wiIGNsYXNzPVwicGVjYi10b2dnbGVfX2Rlc2NyaXB0aW9uXCI+e3sgZGVzY3JpcHRpb24gfX08L3NwYW4+XHJcbiAgICA8L3NwYW4+XHJcbiAgICA8c3BhbiBjbGFzcz1cInBlY2ItdG9nZ2xlX19jb250cm9sXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwicGVjYi10b2dnbGVfX3RodW1iXCI+PC9zcGFuPlxyXG4gICAgPC9zcGFuPlxyXG4gICAgPHNwYW4gKm5nSWY9XCJsYWJlbFBvc2l0aW9uID09PSAncmlnaHQnICYmIChsYWJlbCB8fCBkZXNjcmlwdGlvbilcIiBjbGFzcz1cInBlY2ItdG9nZ2xlX19jb250ZW50XCI+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwibGFiZWxcIiBjbGFzcz1cInBlY2ItdG9nZ2xlX190ZXh0XCI+e3sgbGFiZWwgfX08L3NwYW4+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwiZGVzY3JpcHRpb25cIiBbaWRdPVwiaWQgKyAnLWRlc2NyaXB0aW9uJ1wiIGNsYXNzPVwicGVjYi10b2dnbGVfX2Rlc2NyaXB0aW9uXCI+e3sgZGVzY3JpcHRpb24gfX08L3NwYW4+XHJcbiAgICA8L3NwYW4+XHJcbiAgPC9sYWJlbD5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -1,118 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { ButtonComponent } from './components/button/button.component';
4
- import { CardComponent, CardHeaderComponent, CardBodyComponent, CardFooterComponent } from './components/card/card.component';
5
- import { StatusComponent } from './components/status/status.component';
6
- import { PaginationComponent } from './components/pagination/pagination.component';
7
- import { TableComponent } from './components/table/table.component';
8
- import { TabComponent } from './components/tab/tab.component';
9
- import { DatepickerComponent } from './components/datepicker/datepicker.component';
10
- import { InputComponent } from './components/input/input.component';
11
- import { RadioComponent } from './components/radio/radio.component';
12
- import { CheckboxComponent } from './components/checkbox/checkbox.component';
13
- import { ToggleComponent } from './components/toggle/toggle.component';
14
- import { DropdownComponent } from './components/dropdown/dropdown.component';
15
- import { RightModalComponent, RightModalHeaderDirective, RightModalContentDirective, RightModalFooterDirective } from './components/right-modal/right-modal.component';
16
- import { SidebarComponent } from './components/sidebar/sidebar.component';
17
- import * as i0 from "@angular/core";
18
- const COMPONENTS = [
19
- ButtonComponent,
20
- CardComponent,
21
- CardHeaderComponent,
22
- CardBodyComponent,
23
- CardFooterComponent,
24
- StatusComponent,
25
- PaginationComponent,
26
- TableComponent,
27
- TabComponent,
28
- DatepickerComponent,
29
- InputComponent,
30
- RadioComponent,
31
- CheckboxComponent,
32
- ToggleComponent,
33
- DropdownComponent,
34
- RightModalComponent,
35
- RightModalHeaderDirective,
36
- RightModalContentDirective,
37
- RightModalFooterDirective,
38
- SidebarComponent
39
- ];
40
- /**
41
- * PECB UI Components Module
42
- *
43
- * A professional Angular components library with TypeScript and SCSS.
44
- * Import this module to use all PECB UI components in your application.
45
- *
46
- * @example
47
- * ```typescript
48
- * import { PecbComponentsModule } from '@pecb-ui/components';
49
- *
50
- * @NgModule({
51
- * imports: [PecbComponentsModule]
52
- * })
53
- * export class AppModule { }
54
- * ```
55
- */
56
- export class PecbComponentsModule {
57
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PecbComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
58
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: PecbComponentsModule, imports: [CommonModule, ButtonComponent,
59
- CardComponent,
60
- CardHeaderComponent,
61
- CardBodyComponent,
62
- CardFooterComponent,
63
- StatusComponent,
64
- PaginationComponent,
65
- TableComponent,
66
- TabComponent,
67
- DatepickerComponent,
68
- InputComponent,
69
- RadioComponent,
70
- CheckboxComponent,
71
- ToggleComponent,
72
- DropdownComponent,
73
- RightModalComponent,
74
- RightModalHeaderDirective,
75
- RightModalContentDirective,
76
- RightModalFooterDirective,
77
- SidebarComponent], exports: [ButtonComponent,
78
- CardComponent,
79
- CardHeaderComponent,
80
- CardBodyComponent,
81
- CardFooterComponent,
82
- StatusComponent,
83
- PaginationComponent,
84
- TableComponent,
85
- TabComponent,
86
- DatepickerComponent,
87
- InputComponent,
88
- RadioComponent,
89
- CheckboxComponent,
90
- ToggleComponent,
91
- DropdownComponent,
92
- RightModalComponent,
93
- RightModalHeaderDirective,
94
- RightModalContentDirective,
95
- RightModalFooterDirective,
96
- SidebarComponent] }); }
97
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PecbComponentsModule, imports: [CommonModule, ButtonComponent,
98
- StatusComponent,
99
- PaginationComponent,
100
- TableComponent,
101
- TabComponent,
102
- DatepickerComponent,
103
- InputComponent,
104
- RadioComponent,
105
- CheckboxComponent,
106
- ToggleComponent,
107
- DropdownComponent,
108
- RightModalComponent,
109
- SidebarComponent] }); }
110
- }
111
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PecbComponentsModule, decorators: [{
112
- type: NgModule,
113
- args: [{
114
- imports: [CommonModule, ...COMPONENTS],
115
- exports: COMPONENTS
116
- }]
117
- }] });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVjYi1jb21wb25lbnRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbXBvbmVudHMvc3JjL2xpYi9wZWNiLWNvbXBvbmVudHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQ0wsYUFBYSxFQUNiLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ3BCLE1BQU0sa0NBQWtDLENBQUM7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUNMLG1CQUFtQixFQUNuQix5QkFBeUIsRUFDekIsMEJBQTBCLEVBQzFCLHlCQUF5QixFQUMxQixNQUFNLGdEQUFnRCxDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOztBQUUxRSxNQUFNLFVBQVUsR0FBRztJQUNqQixlQUFlO0lBQ2YsYUFBYTtJQUNiLG1CQUFtQjtJQUNuQixpQkFBaUI7SUFDakIsbUJBQW1CO0lBQ25CLGVBQWU7SUFDZixtQkFBbUI7SUFDbkIsY0FBYztJQUNkLFlBQVk7SUFDWixtQkFBbUI7SUFDbkIsY0FBYztJQUNkLGNBQWM7SUFDZCxpQkFBaUI7SUFDakIsZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIseUJBQXlCO0lBQ3pCLDBCQUEwQjtJQUMxQix5QkFBeUI7SUFDekIsZ0JBQWdCO0NBQ2pCLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFLSCxNQUFNLE9BQU8sb0JBQW9COytHQUFwQixvQkFBb0I7Z0hBQXBCLG9CQUFvQixZQUhyQixZQUFZLEVBdkN0QixlQUFlO1lBQ2YsYUFBYTtZQUNiLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFDakIsbUJBQW1CO1lBQ25CLGVBQWU7WUFDZixtQkFBbUI7WUFDbkIsY0FBYztZQUNkLFlBQVk7WUFDWixtQkFBbUI7WUFDbkIsY0FBYztZQUNkLGNBQWM7WUFDZCxpQkFBaUI7WUFDakIsZUFBZTtZQUNmLGlCQUFpQjtZQUNqQixtQkFBbUI7WUFDbkIseUJBQXlCO1lBQ3pCLDBCQUEwQjtZQUMxQix5QkFBeUI7WUFDekIsZ0JBQWdCLGFBbkJoQixlQUFlO1lBQ2YsYUFBYTtZQUNiLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFDakIsbUJBQW1CO1lBQ25CLGVBQWU7WUFDZixtQkFBbUI7WUFDbkIsY0FBYztZQUNkLFlBQVk7WUFDWixtQkFBbUI7WUFDbkIsY0FBYztZQUNkLGNBQWM7WUFDZCxpQkFBaUI7WUFDakIsZUFBZTtZQUNmLGlCQUFpQjtZQUNqQixtQkFBbUI7WUFDbkIseUJBQXlCO1lBQ3pCLDBCQUEwQjtZQUMxQix5QkFBeUI7WUFDekIsZ0JBQWdCO2dIQXVCTCxvQkFBb0IsWUFIckIsWUFBWSxFQXZDdEIsZUFBZTtZQUtmLGVBQWU7WUFDZixtQkFBbUI7WUFDbkIsY0FBYztZQUNkLFlBQVk7WUFDWixtQkFBbUI7WUFDbkIsY0FBYztZQUNkLGNBQWM7WUFDZCxpQkFBaUI7WUFDakIsZUFBZTtZQUNmLGlCQUFpQjtZQUNqQixtQkFBbUI7WUFJbkIsZ0JBQWdCOzs0RkF1Qkwsb0JBQW9CO2tCQUpoQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxHQUFHLFVBQVUsQ0FBQztvQkFDdEMsT0FBTyxFQUFFLFVBQVU7aUJBQ3BCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgQ2FyZENvbXBvbmVudCxcclxuICBDYXJkSGVhZGVyQ29tcG9uZW50LFxyXG4gIENhcmRCb2R5Q29tcG9uZW50LFxyXG4gIENhcmRGb290ZXJDb21wb25lbnRcclxufSBmcm9tICcuL2NvbXBvbmVudHMvY2FyZC9jYXJkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFN0YXR1c0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zdGF0dXMvc3RhdHVzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YWIvdGFiLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERhdGVwaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0ZXBpY2tlci9kYXRlcGlja2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2lucHV0L2lucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJhZGlvQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JhZGlvL3JhZGlvLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvZ2dsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90b2dnbGUvdG9nZ2xlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgUmlnaHRNb2RhbENvbXBvbmVudCxcclxuICBSaWdodE1vZGFsSGVhZGVyRGlyZWN0aXZlLFxyXG4gIFJpZ2h0TW9kYWxDb250ZW50RGlyZWN0aXZlLFxyXG4gIFJpZ2h0TW9kYWxGb290ZXJEaXJlY3RpdmVcclxufSBmcm9tICcuL2NvbXBvbmVudHMvcmlnaHQtbW9kYWwvcmlnaHQtbW9kYWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2lkZWJhckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zaWRlYmFyL3NpZGViYXIuY29tcG9uZW50JztcclxuXHJcbmNvbnN0IENPTVBPTkVOVFMgPSBbXHJcbiAgQnV0dG9uQ29tcG9uZW50LFxyXG4gIENhcmRDb21wb25lbnQsXHJcbiAgQ2FyZEhlYWRlckNvbXBvbmVudCxcclxuICBDYXJkQm9keUNvbXBvbmVudCxcclxuICBDYXJkRm9vdGVyQ29tcG9uZW50LFxyXG4gIFN0YXR1c0NvbXBvbmVudCxcclxuICBQYWdpbmF0aW9uQ29tcG9uZW50LFxyXG4gIFRhYmxlQ29tcG9uZW50LFxyXG4gIFRhYkNvbXBvbmVudCxcclxuICBEYXRlcGlja2VyQ29tcG9uZW50LFxyXG4gIElucHV0Q29tcG9uZW50LFxyXG4gIFJhZGlvQ29tcG9uZW50LFxyXG4gIENoZWNrYm94Q29tcG9uZW50LFxyXG4gIFRvZ2dsZUNvbXBvbmVudCxcclxuICBEcm9wZG93bkNvbXBvbmVudCxcclxuICBSaWdodE1vZGFsQ29tcG9uZW50LFxyXG4gIFJpZ2h0TW9kYWxIZWFkZXJEaXJlY3RpdmUsXHJcbiAgUmlnaHRNb2RhbENvbnRlbnREaXJlY3RpdmUsXHJcbiAgUmlnaHRNb2RhbEZvb3RlckRpcmVjdGl2ZSxcclxuICBTaWRlYmFyQ29tcG9uZW50XHJcbl07XHJcblxyXG4vKipcclxuICogUEVDQiBVSSBDb21wb25lbnRzIE1vZHVsZVxyXG4gKlxyXG4gKiBBIHByb2Zlc3Npb25hbCBBbmd1bGFyIGNvbXBvbmVudHMgbGlicmFyeSB3aXRoIFR5cGVTY3JpcHQgYW5kIFNDU1MuXHJcbiAqIEltcG9ydCB0aGlzIG1vZHVsZSB0byB1c2UgYWxsIFBFQ0IgVUkgY29tcG9uZW50cyBpbiB5b3VyIGFwcGxpY2F0aW9uLlxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGltcG9ydCB7IFBlY2JDb21wb25lbnRzTW9kdWxlIH0gZnJvbSAnQHBlY2ItdWkvY29tcG9uZW50cyc7XHJcbiAqXHJcbiAqIEBOZ01vZHVsZSh7XHJcbiAqICAgaW1wb3J0czogW1BlY2JDb21wb25lbnRzTW9kdWxlXVxyXG4gKiB9KVxyXG4gKiBleHBvcnQgY2xhc3MgQXBwTW9kdWxlIHsgfVxyXG4gKiBgYGBcclxuICovXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgLi4uQ09NUE9ORU5UU10sXHJcbiAgZXhwb3J0czogQ09NUE9ORU5UU1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUGVjYkNvbXBvbmVudHNNb2R1bGUge31cclxuIl19
@@ -1,182 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { BehaviorSubject } from 'rxjs';
3
- import { map } from 'rxjs/operators';
4
- import * as i0 from "@angular/core";
5
- /**
6
- * A stateless, injectable loading service for managing loading states.
7
- *
8
- * This service provides a centralized way to track loading states across
9
- * the application, supporting multiple concurrent loading operations with
10
- * individual tracking capabilities.
11
- *
12
- * @example
13
- * ```typescript
14
- * import { LoadingService } from '@pecb-ui/components';
15
- *
16
- * @Component({...})
17
- * export class MyComponent {
18
- * isLoading$ = this.loadingService.isLoading$('my-operation');
19
- *
20
- * constructor(private loadingService: LoadingService) {}
21
- *
22
- * async loadData(): Promise<void> {
23
- * this.loadingService.start('my-operation', 'Loading data...');
24
- * try {
25
- * await this.fetchData();
26
- * } finally {
27
- * this.loadingService.stop('my-operation');
28
- * }
29
- * }
30
- * }
31
- * ```
32
- *
33
- * @publicApi
34
- */
35
- export class LoadingService {
36
- constructor() {
37
- this.loadingStates = new Map();
38
- this.statesSubject = new BehaviorSubject(new Map());
39
- /** Default loading operation ID */
40
- this.defaultId = 'global';
41
- }
42
- /**
43
- * Observable of all loading states
44
- */
45
- get states$() {
46
- return this.statesSubject.asObservable();
47
- }
48
- /**
49
- * Observable that emits true when any loading operation is active
50
- */
51
- get isAnyLoading$() {
52
- return this.statesSubject.pipe(map(states => Array.from(states.values()).some(state => state.isLoading)));
53
- }
54
- /**
55
- * Get observable for a specific loading operation
56
- * @param id - The loading operation identifier
57
- */
58
- isLoading$(id = this.defaultId) {
59
- return this.statesSubject.pipe(map(states => states.get(id)?.isLoading ?? false));
60
- }
61
- /**
62
- * Get observable for loading state with message
63
- * @param id - The loading operation identifier
64
- */
65
- getState$(id = this.defaultId) {
66
- return this.statesSubject.pipe(map(states => states.get(id)));
67
- }
68
- /**
69
- * Check if a specific operation is currently loading (synchronous)
70
- * @param id - The loading operation identifier
71
- */
72
- isLoading(id = this.defaultId) {
73
- return this.loadingStates.get(id)?.isLoading ?? false;
74
- }
75
- /**
76
- * Check if any operation is currently loading (synchronous)
77
- */
78
- isAnyLoading() {
79
- return Array.from(this.loadingStates.values()).some(state => state.isLoading);
80
- }
81
- /**
82
- * Start a loading operation
83
- * @param id - The loading operation identifier
84
- * @param message - Optional message to display
85
- */
86
- start(id = this.defaultId, message) {
87
- this.updateState(id, { isLoading: true, message, progress: undefined });
88
- }
89
- /**
90
- * Stop a loading operation
91
- * @param id - The loading operation identifier
92
- */
93
- stop(id = this.defaultId) {
94
- this.updateState(id, { isLoading: false, message: undefined, progress: undefined });
95
- }
96
- /**
97
- * Update progress for a loading operation
98
- * @param id - The loading operation identifier
99
- * @param progress - Progress percentage (0-100)
100
- * @param message - Optional updated message
101
- */
102
- setProgress(id, progress, message) {
103
- const currentState = this.loadingStates.get(id);
104
- if (currentState) {
105
- this.updateState(id, {
106
- isLoading: true,
107
- progress: Math.min(100, Math.max(0, progress)),
108
- message: message ?? currentState.message
109
- });
110
- }
111
- }
112
- /**
113
- * Update the message for a loading operation
114
- * @param id - The loading operation identifier
115
- * @param message - New message to display
116
- */
117
- setMessage(id, message) {
118
- const currentState = this.loadingStates.get(id);
119
- if (currentState) {
120
- this.updateState(id, { ...currentState, id, message });
121
- }
122
- }
123
- /**
124
- * Stop all loading operations
125
- */
126
- stopAll() {
127
- this.loadingStates.clear();
128
- this.statesSubject.next(new Map());
129
- }
130
- /**
131
- * Remove a loading state completely
132
- * @param id - The loading operation identifier
133
- */
134
- remove(id) {
135
- this.loadingStates.delete(id);
136
- this.emitStates();
137
- }
138
- /**
139
- * Execute an async operation with automatic loading state management
140
- * @param id - The loading operation identifier
141
- * @param operation - The async operation to execute
142
- * @param message - Optional loading message
143
- * @returns The result of the operation
144
- */
145
- async withLoading(id, operation, message) {
146
- this.start(id, message);
147
- try {
148
- return await operation();
149
- }
150
- finally {
151
- this.stop(id);
152
- }
153
- }
154
- /**
155
- * Update a loading state
156
- */
157
- updateState(id, partialState) {
158
- const state = {
159
- id,
160
- isLoading: partialState.isLoading,
161
- message: partialState.message,
162
- progress: partialState.progress
163
- };
164
- this.loadingStates.set(id, state);
165
- this.emitStates();
166
- }
167
- /**
168
- * Emit current states to subscribers
169
- */
170
- emitStates() {
171
- this.statesSubject.next(new Map(this.loadingStates));
172
- }
173
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LoadingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
174
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LoadingService, providedIn: 'root' }); }
175
- }
176
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LoadingService, decorators: [{
177
- type: Injectable,
178
- args: [{
179
- providedIn: 'root'
180
- }]
181
- }] });
182
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL2xvYWRpbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQWdCckM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkJHO0FBSUgsTUFBTSxPQUFPLGNBQWM7SUFIM0I7UUFJbUIsa0JBQWEsR0FBRyxJQUFJLEdBQUcsRUFBd0IsQ0FBQztRQUNoRCxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUE0QixJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFFM0YsbUNBQW1DO1FBQ2xCLGNBQVMsR0FBRyxRQUFRLENBQUM7S0E2SnZDO0lBM0pDOztPQUVHO0lBQ0gsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQzVCLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQzFFLENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsVUFBVSxDQUFDLEtBQWEsSUFBSSxDQUFDLFNBQVM7UUFDcEMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDNUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxTQUFTLElBQUksS0FBSyxDQUFDLENBQ2xELENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxDQUFDLEtBQWEsSUFBSSxDQUFDLFNBQVM7UUFDbkMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDNUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUM5QixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVMsQ0FBQyxLQUFhLElBQUksQ0FBQyxTQUFTO1FBQ25DLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxJQUFJLEtBQUssQ0FBQztJQUN4RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZO1FBQ1YsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsS0FBYSxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQWdCO1FBQ2pELElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksQ0FBQyxLQUFhLElBQUksQ0FBQyxTQUFTO1FBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFdBQVcsQ0FBQyxFQUFVLEVBQUUsUUFBZ0IsRUFBRSxPQUFnQjtRQUN4RCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoRCxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFO2dCQUNuQixTQUFTLEVBQUUsSUFBSTtnQkFDZixRQUFRLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQzlDLE9BQU8sRUFBRSxPQUFPLElBQUksWUFBWSxDQUFDLE9BQU87YUFDekMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsVUFBVSxDQUFDLEVBQVUsRUFBRSxPQUFlO1FBQ3BDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLFlBQVksRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN6RCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTztRQUNMLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsRUFBVTtRQUNmLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLFdBQVcsQ0FDZixFQUFVLEVBQ1YsU0FBMkIsRUFDM0IsT0FBZ0I7UUFFaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDO1lBQ0gsT0FBTyxNQUFNLFNBQVMsRUFBRSxDQUFDO1FBQzNCLENBQUM7Z0JBQVMsQ0FBQztZQUNULElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEIsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNLLFdBQVcsQ0FBQyxFQUFVLEVBQUUsWUFBNEQ7UUFDMUYsTUFBTSxLQUFLLEdBQWlCO1lBQzFCLEVBQUU7WUFDRixTQUFTLEVBQUUsWUFBWSxDQUFDLFNBQVM7WUFDakMsT0FBTyxFQUFFLFlBQVksQ0FBQyxPQUFPO1lBQzdCLFFBQVEsRUFBRSxZQUFZLENBQUMsUUFBUTtTQUNoQyxDQUFDO1FBRUYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQ7O09BRUc7SUFDSyxVQUFVO1FBQ2hCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7K0dBaktVLGNBQWM7bUhBQWQsY0FBYyxjQUZiLE1BQU07OzRGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuLyoqXHJcbiAqIExvYWRpbmcgc3RhdGUgZm9yIGEgc3BlY2lmaWMgb3BlcmF0aW9uXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIExvYWRpbmdTdGF0ZSB7XHJcbiAgLyoqIFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgbG9hZGluZyBvcGVyYXRpb24gKi9cclxuICBpZDogc3RyaW5nO1xyXG4gIC8qKiBXaGV0aGVyIHRoaXMgb3BlcmF0aW9uIGlzIGN1cnJlbnRseSBsb2FkaW5nICovXHJcbiAgaXNMb2FkaW5nOiBib29sZWFuO1xyXG4gIC8qKiBPcHRpb25hbCBtZXNzYWdlIHRvIGRpc3BsYXkgKi9cclxuICBtZXNzYWdlPzogc3RyaW5nO1xyXG4gIC8qKiBPcHRpb25hbCBwcm9ncmVzcyBwZXJjZW50YWdlICgwLTEwMCkgKi9cclxuICBwcm9ncmVzcz86IG51bWJlcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEEgc3RhdGVsZXNzLCBpbmplY3RhYmxlIGxvYWRpbmcgc2VydmljZSBmb3IgbWFuYWdpbmcgbG9hZGluZyBzdGF0ZXMuXHJcbiAqXHJcbiAqIFRoaXMgc2VydmljZSBwcm92aWRlcyBhIGNlbnRyYWxpemVkIHdheSB0byB0cmFjayBsb2FkaW5nIHN0YXRlcyBhY3Jvc3NcclxuICogdGhlIGFwcGxpY2F0aW9uLCBzdXBwb3J0aW5nIG11bHRpcGxlIGNvbmN1cnJlbnQgbG9hZGluZyBvcGVyYXRpb25zIHdpdGhcclxuICogaW5kaXZpZHVhbCB0cmFja2luZyBjYXBhYmlsaXRpZXMuXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaW1wb3J0IHsgTG9hZGluZ1NlcnZpY2UgfSBmcm9tICdAcGVjYi11aS9jb21wb25lbnRzJztcclxuICpcclxuICogQENvbXBvbmVudCh7Li4ufSlcclxuICogZXhwb3J0IGNsYXNzIE15Q29tcG9uZW50IHtcclxuICogICBpc0xvYWRpbmckID0gdGhpcy5sb2FkaW5nU2VydmljZS5pc0xvYWRpbmckKCdteS1vcGVyYXRpb24nKTtcclxuICpcclxuICogICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxvYWRpbmdTZXJ2aWNlOiBMb2FkaW5nU2VydmljZSkge31cclxuICpcclxuICogICBhc3luYyBsb2FkRGF0YSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICogICAgIHRoaXMubG9hZGluZ1NlcnZpY2Uuc3RhcnQoJ215LW9wZXJhdGlvbicsICdMb2FkaW5nIGRhdGEuLi4nKTtcclxuICogICAgIHRyeSB7XHJcbiAqICAgICAgIGF3YWl0IHRoaXMuZmV0Y2hEYXRhKCk7XHJcbiAqICAgICB9IGZpbmFsbHkge1xyXG4gKiAgICAgICB0aGlzLmxvYWRpbmdTZXJ2aWNlLnN0b3AoJ215LW9wZXJhdGlvbicpO1xyXG4gKiAgICAgfVxyXG4gKiAgIH1cclxuICogfVxyXG4gKiBgYGBcclxuICpcclxuICogQHB1YmxpY0FwaVxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9hZGluZ1NlcnZpY2Uge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9hZGluZ1N0YXRlcyA9IG5ldyBNYXA8c3RyaW5nLCBMb2FkaW5nU3RhdGU+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBzdGF0ZXNTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXA8c3RyaW5nLCBMb2FkaW5nU3RhdGU+PihuZXcgTWFwKCkpO1xyXG5cclxuICAvKiogRGVmYXVsdCBsb2FkaW5nIG9wZXJhdGlvbiBJRCAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdElkID0gJ2dsb2JhbCc7XHJcblxyXG4gIC8qKlxyXG4gICAqIE9ic2VydmFibGUgb2YgYWxsIGxvYWRpbmcgc3RhdGVzXHJcbiAgICovXHJcbiAgZ2V0IHN0YXRlcyQoKTogT2JzZXJ2YWJsZTxNYXA8c3RyaW5nLCBMb2FkaW5nU3RhdGU+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGF0ZXNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRydWUgd2hlbiBhbnkgbG9hZGluZyBvcGVyYXRpb24gaXMgYWN0aXZlXHJcbiAgICovXHJcbiAgZ2V0IGlzQW55TG9hZGluZyQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGF0ZXNTdWJqZWN0LnBpcGUoXHJcbiAgICAgIG1hcChzdGF0ZXMgPT4gQXJyYXkuZnJvbShzdGF0ZXMudmFsdWVzKCkpLnNvbWUoc3RhdGUgPT4gc3RhdGUuaXNMb2FkaW5nKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgb2JzZXJ2YWJsZSBmb3IgYSBzcGVjaWZpYyBsb2FkaW5nIG9wZXJhdGlvblxyXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBsb2FkaW5nIG9wZXJhdGlvbiBpZGVudGlmaWVyXHJcbiAgICovXHJcbiAgaXNMb2FkaW5nJChpZDogc3RyaW5nID0gdGhpcy5kZWZhdWx0SWQpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlc1N1YmplY3QucGlwZShcclxuICAgICAgbWFwKHN0YXRlcyA9PiBzdGF0ZXMuZ2V0KGlkKT8uaXNMb2FkaW5nID8/IGZhbHNlKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBvYnNlcnZhYmxlIGZvciBsb2FkaW5nIHN0YXRlIHdpdGggbWVzc2FnZVxyXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBsb2FkaW5nIG9wZXJhdGlvbiBpZGVudGlmaWVyXHJcbiAgICovXHJcbiAgZ2V0U3RhdGUkKGlkOiBzdHJpbmcgPSB0aGlzLmRlZmF1bHRJZCk6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlIHwgdW5kZWZpbmVkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGF0ZXNTdWJqZWN0LnBpcGUoXHJcbiAgICAgIG1hcChzdGF0ZXMgPT4gc3RhdGVzLmdldChpZCkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgYSBzcGVjaWZpYyBvcGVyYXRpb24gaXMgY3VycmVudGx5IGxvYWRpbmcgKHN5bmNocm9ub3VzKVxyXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBsb2FkaW5nIG9wZXJhdGlvbiBpZGVudGlmaWVyXHJcbiAgICovXHJcbiAgaXNMb2FkaW5nKGlkOiBzdHJpbmcgPSB0aGlzLmRlZmF1bHRJZCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMubG9hZGluZ1N0YXRlcy5nZXQoaWQpPy5pc0xvYWRpbmcgPz8gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBhbnkgb3BlcmF0aW9uIGlzIGN1cnJlbnRseSBsb2FkaW5nIChzeW5jaHJvbm91cylcclxuICAgKi9cclxuICBpc0FueUxvYWRpbmcoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmxvYWRpbmdTdGF0ZXMudmFsdWVzKCkpLnNvbWUoc3RhdGUgPT4gc3RhdGUuaXNMb2FkaW5nKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0YXJ0IGEgbG9hZGluZyBvcGVyYXRpb25cclxuICAgKiBAcGFyYW0gaWQgLSBUaGUgbG9hZGluZyBvcGVyYXRpb24gaWRlbnRpZmllclxyXG4gICAqIEBwYXJhbSBtZXNzYWdlIC0gT3B0aW9uYWwgbWVzc2FnZSB0byBkaXNwbGF5XHJcbiAgICovXHJcbiAgc3RhcnQoaWQ6IHN0cmluZyA9IHRoaXMuZGVmYXVsdElkLCBtZXNzYWdlPzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKGlkLCB7IGlzTG9hZGluZzogdHJ1ZSwgbWVzc2FnZSwgcHJvZ3Jlc3M6IHVuZGVmaW5lZCB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0b3AgYSBsb2FkaW5nIG9wZXJhdGlvblxyXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBsb2FkaW5nIG9wZXJhdGlvbiBpZGVudGlmaWVyXHJcbiAgICovXHJcbiAgc3RvcChpZDogc3RyaW5nID0gdGhpcy5kZWZhdWx0SWQpOiB2b2lkIHtcclxuICAgIHRoaXMudXBkYXRlU3RhdGUoaWQsIHsgaXNMb2FkaW5nOiBmYWxzZSwgbWVzc2FnZTogdW5kZWZpbmVkLCBwcm9ncmVzczogdW5kZWZpbmVkIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlIHByb2dyZXNzIGZvciBhIGxvYWRpbmcgb3BlcmF0aW9uXHJcbiAgICogQHBhcmFtIGlkIC0gVGhlIGxvYWRpbmcgb3BlcmF0aW9uIGlkZW50aWZpZXJcclxuICAgKiBAcGFyYW0gcHJvZ3Jlc3MgLSBQcm9ncmVzcyBwZXJjZW50YWdlICgwLTEwMClcclxuICAgKiBAcGFyYW0gbWVzc2FnZSAtIE9wdGlvbmFsIHVwZGF0ZWQgbWVzc2FnZVxyXG4gICAqL1xyXG4gIHNldFByb2dyZXNzKGlkOiBzdHJpbmcsIHByb2dyZXNzOiBudW1iZXIsIG1lc3NhZ2U/OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IHRoaXMubG9hZGluZ1N0YXRlcy5nZXQoaWQpO1xyXG4gICAgaWYgKGN1cnJlbnRTdGF0ZSkge1xyXG4gICAgICB0aGlzLnVwZGF0ZVN0YXRlKGlkLCB7XHJcbiAgICAgICAgaXNMb2FkaW5nOiB0cnVlLFxyXG4gICAgICAgIHByb2dyZXNzOiBNYXRoLm1pbigxMDAsIE1hdGgubWF4KDAsIHByb2dyZXNzKSksXHJcbiAgICAgICAgbWVzc2FnZTogbWVzc2FnZSA/PyBjdXJyZW50U3RhdGUubWVzc2FnZVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSB0aGUgbWVzc2FnZSBmb3IgYSBsb2FkaW5nIG9wZXJhdGlvblxyXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBsb2FkaW5nIG9wZXJhdGlvbiBpZGVudGlmaWVyXHJcbiAgICogQHBhcmFtIG1lc3NhZ2UgLSBOZXcgbWVzc2FnZSB0byBkaXNwbGF5XHJcbiAgICovXHJcbiAgc2V0TWVzc2FnZShpZDogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IHRoaXMubG9hZGluZ1N0YXRlcy5nZXQoaWQpO1xyXG4gICAgaWYgKGN1cnJlbnRTdGF0ZSkge1xyXG4gICAgICB0aGlzLnVwZGF0ZVN0YXRlKGlkLCB7IC4uLmN1cnJlbnRTdGF0ZSwgaWQsIG1lc3NhZ2UgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdG9wIGFsbCBsb2FkaW5nIG9wZXJhdGlvbnNcclxuICAgKi9cclxuICBzdG9wQWxsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2FkaW5nU3RhdGVzLmNsZWFyKCk7XHJcbiAgICB0aGlzLnN0YXRlc1N1YmplY3QubmV4dChuZXcgTWFwKCkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIGEgbG9hZGluZyBzdGF0ZSBjb21wbGV0ZWx5XHJcbiAgICogQHBhcmFtIGlkIC0gVGhlIGxvYWRpbmcgb3BlcmF0aW9uIGlkZW50aWZpZXJcclxuICAgKi9cclxuICByZW1vdmUoaWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2FkaW5nU3RhdGVzLmRlbGV0ZShpZCk7XHJcbiAgICB0aGlzLmVtaXRTdGF0ZXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEV4ZWN1dGUgYW4gYXN5bmMgb3BlcmF0aW9uIHdpdGggYXV0b21hdGljIGxvYWRpbmcgc3RhdGUgbWFuYWdlbWVudFxyXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBsb2FkaW5nIG9wZXJhdGlvbiBpZGVudGlmaWVyXHJcbiAgICogQHBhcmFtIG9wZXJhdGlvbiAtIFRoZSBhc3luYyBvcGVyYXRpb24gdG8gZXhlY3V0ZVxyXG4gICAqIEBwYXJhbSBtZXNzYWdlIC0gT3B0aW9uYWwgbG9hZGluZyBtZXNzYWdlXHJcbiAgICogQHJldHVybnMgVGhlIHJlc3VsdCBvZiB0aGUgb3BlcmF0aW9uXHJcbiAgICovXHJcbiAgYXN5bmMgd2l0aExvYWRpbmc8VD4oXHJcbiAgICBpZDogc3RyaW5nLFxyXG4gICAgb3BlcmF0aW9uOiAoKSA9PiBQcm9taXNlPFQ+LFxyXG4gICAgbWVzc2FnZT86IHN0cmluZ1xyXG4gICk6IFByb21pc2U8VD4ge1xyXG4gICAgdGhpcy5zdGFydChpZCwgbWVzc2FnZSk7XHJcbiAgICB0cnkge1xyXG4gICAgICByZXR1cm4gYXdhaXQgb3BlcmF0aW9uKCk7XHJcbiAgICB9IGZpbmFsbHkge1xyXG4gICAgICB0aGlzLnN0b3AoaWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlIGEgbG9hZGluZyBzdGF0ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgdXBkYXRlU3RhdGUoaWQ6IHN0cmluZywgcGFydGlhbFN0YXRlOiBQYXJ0aWFsPExvYWRpbmdTdGF0ZT4gJiB7IGlzTG9hZGluZzogYm9vbGVhbiB9KTogdm9pZCB7XHJcbiAgICBjb25zdCBzdGF0ZTogTG9hZGluZ1N0YXRlID0ge1xyXG4gICAgICBpZCxcclxuICAgICAgaXNMb2FkaW5nOiBwYXJ0aWFsU3RhdGUuaXNMb2FkaW5nLFxyXG4gICAgICBtZXNzYWdlOiBwYXJ0aWFsU3RhdGUubWVzc2FnZSxcclxuICAgICAgcHJvZ3Jlc3M6IHBhcnRpYWxTdGF0ZS5wcm9ncmVzc1xyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLmxvYWRpbmdTdGF0ZXMuc2V0KGlkLCBzdGF0ZSk7XHJcbiAgICB0aGlzLmVtaXRTdGF0ZXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXQgY3VycmVudCBzdGF0ZXMgdG8gc3Vic2NyaWJlcnNcclxuICAgKi9cclxuICBwcml2YXRlIGVtaXRTdGF0ZXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0YXRlc1N1YmplY3QubmV4dChuZXcgTWFwKHRoaXMubG9hZGluZ1N0YXRlcykpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,144 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * A stateless, injectable notification service for displaying toast notifications.
6
- *
7
- * This service provides a reactive way to manage notifications across the application.
8
- * It uses RxJS Subjects to emit notification events that can be consumed by notification
9
- * display components.
10
- *
11
- * @example
12
- * ```typescript
13
- * import { NotificationService } from '@pecb-ui/components';
14
- *
15
- * @Component({...})
16
- * export class MyComponent {
17
- * constructor(private notificationService: NotificationService) {}
18
- *
19
- * showSuccess(): void {
20
- * this.notificationService.success('Operation completed successfully!');
21
- * }
22
- *
23
- * showError(): void {
24
- * this.notificationService.error('An error occurred', 'Error Title');
25
- * }
26
- * }
27
- * ```
28
- *
29
- * @publicApi
30
- */
31
- export class NotificationService {
32
- constructor() {
33
- this.notificationSubject = new Subject();
34
- this.dismissSubject = new Subject();
35
- this.clearSubject = new Subject();
36
- /** Default duration for notifications in milliseconds */
37
- this.defaultDuration = 5000;
38
- /** Default position for notifications */
39
- this.defaultPosition = 'top-right';
40
- }
41
- /**
42
- * Observable stream of notifications
43
- */
44
- get notifications$() {
45
- return this.notificationSubject.asObservable();
46
- }
47
- /**
48
- * Observable stream of dismissed notification IDs
49
- */
50
- get dismiss$() {
51
- return this.dismissSubject.asObservable();
52
- }
53
- /**
54
- * Observable stream for clear all events
55
- */
56
- get clear$() {
57
- return this.clearSubject.asObservable();
58
- }
59
- /**
60
- * Show a success notification
61
- * @param message - The notification message
62
- * @param title - Optional title
63
- * @param config - Optional additional configuration
64
- */
65
- success(message, title, config) {
66
- return this.show({ ...config, message, title, type: 'success' });
67
- }
68
- /**
69
- * Show an error notification
70
- * @param message - The notification message
71
- * @param title - Optional title
72
- * @param config - Optional additional configuration
73
- */
74
- error(message, title, config) {
75
- return this.show({ ...config, message, title, type: 'error' });
76
- }
77
- /**
78
- * Show a warning notification
79
- * @param message - The notification message
80
- * @param title - Optional title
81
- * @param config - Optional additional configuration
82
- */
83
- warning(message, title, config) {
84
- return this.show({ ...config, message, title, type: 'warning' });
85
- }
86
- /**
87
- * Show an info notification
88
- * @param message - The notification message
89
- * @param title - Optional title
90
- * @param config - Optional additional configuration
91
- */
92
- info(message, title, config) {
93
- return this.show({ ...config, message, title, type: 'info' });
94
- }
95
- /**
96
- * Show a notification with custom configuration
97
- * @param config - Full notification configuration
98
- * @returns The notification ID
99
- */
100
- show(config) {
101
- const id = config.id || this.generateId();
102
- const notification = {
103
- id,
104
- message: config.message,
105
- title: config.title,
106
- type: config.type,
107
- duration: config.duration ?? this.defaultDuration,
108
- dismissible: config.dismissible ?? true,
109
- position: config.position ?? this.defaultPosition,
110
- customClass: config.customClass,
111
- timestamp: new Date()
112
- };
113
- this.notificationSubject.next(notification);
114
- return id;
115
- }
116
- /**
117
- * Dismiss a specific notification by ID
118
- * @param id - The notification ID to dismiss
119
- */
120
- dismiss(id) {
121
- this.dismissSubject.next(id);
122
- }
123
- /**
124
- * Clear all notifications
125
- */
126
- clearAll() {
127
- this.clearSubject.next();
128
- }
129
- /**
130
- * Generate a unique notification ID
131
- */
132
- generateId() {
133
- return `notification-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
134
- }
135
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
136
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotificationService, providedIn: 'root' }); }
137
- }
138
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotificationService, decorators: [{
139
- type: Injectable,
140
- args: [{
141
- providedIn: 'root'
142
- }]
143
- }] });
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21wb25lbnRzL3NyYy9saWIvc2VydmljZXMvbm90aWZpY2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFjLE1BQU0sTUFBTSxDQUFDOztBQTJDM0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEJHO0FBSUgsTUFBTSxPQUFPLG1CQUFtQjtJQUhoQztRQUltQix3QkFBbUIsR0FBRyxJQUFJLE9BQU8sRUFBZ0IsQ0FBQztRQUNsRCxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFDdkMsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRXBELHlEQUF5RDtRQUN4QyxvQkFBZSxHQUFHLElBQUksQ0FBQztRQUN4Qyx5Q0FBeUM7UUFDeEIsb0JBQWUsR0FBeUIsV0FBVyxDQUFDO0tBNEd0RTtJQTFHQzs7T0FFRztJQUNILElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE9BQU8sQ0FBQyxPQUFlLEVBQUUsS0FBYyxFQUFFLE1BQW9DO1FBQzNFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLE9BQWUsRUFBRSxLQUFjLEVBQUUsTUFBb0M7UUFDekUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxPQUFPLENBQUMsT0FBZSxFQUFFLEtBQWMsRUFBRSxNQUFvQztRQUMzRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQUksQ0FBQyxPQUFlLEVBQUUsS0FBYyxFQUFFLE1BQW9DO1FBQ3hFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLENBQUMsTUFBMEI7UUFDN0IsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFMUMsTUFBTSxZQUFZLEdBQWlCO1lBQ2pDLEVBQUU7WUFDRixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87WUFDdkIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO1lBQ25CLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtZQUNqQixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsZUFBZTtZQUNqRCxXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVcsSUFBSSxJQUFJO1lBQ3ZDLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxlQUFlO1lBQ2pELFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztZQUMvQixTQUFTLEVBQUUsSUFBSSxJQUFJLEVBQUU7U0FDdEIsQ0FBQztRQUVGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDNUMsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsT0FBTyxDQUFDLEVBQVU7UUFDaEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVEOztPQUVHO0lBQ0ssVUFBVTtRQUNoQixPQUFPLGdCQUFnQixJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDcEYsQ0FBQzsrR0FuSFUsbUJBQW1CO21IQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuLyoqXHJcbiAqIE5vdGlmaWNhdGlvbiB0eXBlcyBzdXBwb3J0ZWQgYnkgdGhlIHNlcnZpY2VcclxuICovXHJcbmV4cG9ydCB0eXBlIE5vdGlmaWNhdGlvblR5cGUgPSAnc3VjY2VzcycgfCAnZXJyb3InIHwgJ3dhcm5pbmcnIHwgJ2luZm8nO1xyXG5cclxuLyoqXHJcbiAqIE5vdGlmaWNhdGlvbiBwb3NpdGlvbiBvbiBzY3JlZW5cclxuICovXHJcbmV4cG9ydCB0eXBlIE5vdGlmaWNhdGlvblBvc2l0aW9uID0gJ3RvcC1yaWdodCcgfCAndG9wLWxlZnQnIHwgJ2JvdHRvbS1yaWdodCcgfCAnYm90dG9tLWxlZnQnIHwgJ3RvcC1jZW50ZXInIHwgJ2JvdHRvbS1jZW50ZXInO1xyXG5cclxuLyoqXHJcbiAqIE5vdGlmaWNhdGlvbiBjb25maWd1cmF0aW9uIG9wdGlvbnNcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uQ29uZmlnIHtcclxuICAvKiogTm90aWZpY2F0aW9uIG1lc3NhZ2UgKi9cclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgLyoqIE5vdGlmaWNhdGlvbiB0aXRsZSAob3B0aW9uYWwpICovXHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgLyoqIFR5cGUgb2Ygbm90aWZpY2F0aW9uICovXHJcbiAgdHlwZTogTm90aWZpY2F0aW9uVHlwZTtcclxuICAvKiogRHVyYXRpb24gaW4gbWlsbGlzZWNvbmRzICgwIGZvciBwZXJzaXN0ZW50KSAqL1xyXG4gIGR1cmF0aW9uPzogbnVtYmVyO1xyXG4gIC8qKiBXaGV0aGVyIHRoZSBub3RpZmljYXRpb24gY2FuIGJlIGRpc21pc3NlZCAqL1xyXG4gIGRpc21pc3NpYmxlPzogYm9vbGVhbjtcclxuICAvKiogUG9zaXRpb24gb24gc2NyZWVuICovXHJcbiAgcG9zaXRpb24/OiBOb3RpZmljYXRpb25Qb3NpdGlvbjtcclxuICAvKiogQ3VzdG9tIENTUyBjbGFzcyAqL1xyXG4gIGN1c3RvbUNsYXNzPzogc3RyaW5nO1xyXG4gIC8qKiBVbmlxdWUgaWRlbnRpZmllciAqL1xyXG4gIGlkPzogc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogTm90aWZpY2F0aW9uIG9iamVjdCB3aXRoIGFsbCBwcm9wZXJ0aWVzXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvbiBleHRlbmRzIFJlcXVpcmVkPE9taXQ8Tm90aWZpY2F0aW9uQ29uZmlnLCAndGl0bGUnIHwgJ2N1c3RvbUNsYXNzJz4+IHtcclxuICB0aXRsZT86IHN0cmluZztcclxuICBjdXN0b21DbGFzcz86IHN0cmluZztcclxuICB0aW1lc3RhbXA6IERhdGU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBIHN0YXRlbGVzcywgaW5qZWN0YWJsZSBub3RpZmljYXRpb24gc2VydmljZSBmb3IgZGlzcGxheWluZyB0b2FzdCBub3RpZmljYXRpb25zLlxyXG4gKlxyXG4gKiBUaGlzIHNlcnZpY2UgcHJvdmlkZXMgYSByZWFjdGl2ZSB3YXkgdG8gbWFuYWdlIG5vdGlmaWNhdGlvbnMgYWNyb3NzIHRoZSBhcHBsaWNhdGlvbi5cclxuICogSXQgdXNlcyBSeEpTIFN1YmplY3RzIHRvIGVtaXQgbm90aWZpY2F0aW9uIGV2ZW50cyB0aGF0IGNhbiBiZSBjb25zdW1lZCBieSBub3RpZmljYXRpb25cclxuICogZGlzcGxheSBjb21wb25lbnRzLlxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICdAcGVjYi11aS9jb21wb25lbnRzJztcclxuICpcclxuICogQENvbXBvbmVudCh7Li4ufSlcclxuICogZXhwb3J0IGNsYXNzIE15Q29tcG9uZW50IHtcclxuICogICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UpIHt9XHJcbiAqXHJcbiAqICAgc2hvd1N1Y2Nlc3MoKTogdm9pZCB7XHJcbiAqICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcygnT3BlcmF0aW9uIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkhJyk7XHJcbiAqICAgfVxyXG4gKlxyXG4gKiAgIHNob3dFcnJvcigpOiB2b2lkIHtcclxuICogICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcignQW4gZXJyb3Igb2NjdXJyZWQnLCAnRXJyb3IgVGl0bGUnKTtcclxuICogICB9XHJcbiAqIH1cclxuICogYGBgXHJcbiAqXHJcbiAqIEBwdWJsaWNBcGlcclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvblNlcnZpY2Uge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgbm90aWZpY2F0aW9uU3ViamVjdCA9IG5ldyBTdWJqZWN0PE5vdGlmaWNhdGlvbj4oKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGRpc21pc3NTdWJqZWN0ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgY2xlYXJTdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgLyoqIERlZmF1bHQgZHVyYXRpb24gZm9yIG5vdGlmaWNhdGlvbnMgaW4gbWlsbGlzZWNvbmRzICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0RHVyYXRpb24gPSA1MDAwO1xyXG4gIC8qKiBEZWZhdWx0IHBvc2l0aW9uIGZvciBub3RpZmljYXRpb25zICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0UG9zaXRpb246IE5vdGlmaWNhdGlvblBvc2l0aW9uID0gJ3RvcC1yaWdodCc7XHJcblxyXG4gIC8qKlxyXG4gICAqIE9ic2VydmFibGUgc3RyZWFtIG9mIG5vdGlmaWNhdGlvbnNcclxuICAgKi9cclxuICBnZXQgbm90aWZpY2F0aW9ucyQoKTogT2JzZXJ2YWJsZTxOb3RpZmljYXRpb24+IHtcclxuICAgIHJldHVybiB0aGlzLm5vdGlmaWNhdGlvblN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPYnNlcnZhYmxlIHN0cmVhbSBvZiBkaXNtaXNzZWQgbm90aWZpY2F0aW9uIElEc1xyXG4gICAqL1xyXG4gIGdldCBkaXNtaXNzJCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGlzbWlzc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPYnNlcnZhYmxlIHN0cmVhbSBmb3IgY2xlYXIgYWxsIGV2ZW50c1xyXG4gICAqL1xyXG4gIGdldCBjbGVhciQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5jbGVhclN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTaG93IGEgc3VjY2VzcyBub3RpZmljYXRpb25cclxuICAgKiBAcGFyYW0gbWVzc2FnZSAtIFRoZSBub3RpZmljYXRpb24gbWVzc2FnZVxyXG4gICAqIEBwYXJhbSB0aXRsZSAtIE9wdGlvbmFsIHRpdGxlXHJcbiAgICogQHBhcmFtIGNvbmZpZyAtIE9wdGlvbmFsIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvblxyXG4gICAqL1xyXG4gIHN1Y2Nlc3MobWVzc2FnZTogc3RyaW5nLCB0aXRsZT86IHN0cmluZywgY29uZmlnPzogUGFydGlhbDxOb3RpZmljYXRpb25Db25maWc+KTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnNob3coeyAuLi5jb25maWcsIG1lc3NhZ2UsIHRpdGxlLCB0eXBlOiAnc3VjY2VzcycgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTaG93IGFuIGVycm9yIG5vdGlmaWNhdGlvblxyXG4gICAqIEBwYXJhbSBtZXNzYWdlIC0gVGhlIG5vdGlmaWNhdGlvbiBtZXNzYWdlXHJcbiAgICogQHBhcmFtIHRpdGxlIC0gT3B0aW9uYWwgdGl0bGVcclxuICAgKiBAcGFyYW0gY29uZmlnIC0gT3B0aW9uYWwgYWRkaXRpb25hbCBjb25maWd1cmF0aW9uXHJcbiAgICovXHJcbiAgZXJyb3IobWVzc2FnZTogc3RyaW5nLCB0aXRsZT86IHN0cmluZywgY29uZmlnPzogUGFydGlhbDxOb3RpZmljYXRpb25Db25maWc+KTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnNob3coeyAuLi5jb25maWcsIG1lc3NhZ2UsIHRpdGxlLCB0eXBlOiAnZXJyb3InIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2hvdyBhIHdhcm5pbmcgbm90aWZpY2F0aW9uXHJcbiAgICogQHBhcmFtIG1lc3NhZ2UgLSBUaGUgbm90aWZpY2F0aW9uIG1lc3NhZ2VcclxuICAgKiBAcGFyYW0gdGl0bGUgLSBPcHRpb25hbCB0aXRsZVxyXG4gICAqIEBwYXJhbSBjb25maWcgLSBPcHRpb25hbCBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb25cclxuICAgKi9cclxuICB3YXJuaW5nKG1lc3NhZ2U6IHN0cmluZywgdGl0bGU/OiBzdHJpbmcsIGNvbmZpZz86IFBhcnRpYWw8Tm90aWZpY2F0aW9uQ29uZmlnPik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5zaG93KHsgLi4uY29uZmlnLCBtZXNzYWdlLCB0aXRsZSwgdHlwZTogJ3dhcm5pbmcnIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2hvdyBhbiBpbmZvIG5vdGlmaWNhdGlvblxyXG4gICAqIEBwYXJhbSBtZXNzYWdlIC0gVGhlIG5vdGlmaWNhdGlvbiBtZXNzYWdlXHJcbiAgICogQHBhcmFtIHRpdGxlIC0gT3B0aW9uYWwgdGl0bGVcclxuICAgKiBAcGFyYW0gY29uZmlnIC0gT3B0aW9uYWwgYWRkaXRpb25hbCBjb25maWd1cmF0aW9uXHJcbiAgICovXHJcbiAgaW5mbyhtZXNzYWdlOiBzdHJpbmcsIHRpdGxlPzogc3RyaW5nLCBjb25maWc/OiBQYXJ0aWFsPE5vdGlmaWNhdGlvbkNvbmZpZz4pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuc2hvdyh7IC4uLmNvbmZpZywgbWVzc2FnZSwgdGl0bGUsIHR5cGU6ICdpbmZvJyB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNob3cgYSBub3RpZmljYXRpb24gd2l0aCBjdXN0b20gY29uZmlndXJhdGlvblxyXG4gICAqIEBwYXJhbSBjb25maWcgLSBGdWxsIG5vdGlmaWNhdGlvbiBjb25maWd1cmF0aW9uXHJcbiAgICogQHJldHVybnMgVGhlIG5vdGlmaWNhdGlvbiBJRFxyXG4gICAqL1xyXG4gIHNob3coY29uZmlnOiBOb3RpZmljYXRpb25Db25maWcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgaWQgPSBjb25maWcuaWQgfHwgdGhpcy5nZW5lcmF0ZUlkKCk7XHJcblxyXG4gICAgY29uc3Qgbm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb24gPSB7XHJcbiAgICAgIGlkLFxyXG4gICAgICBtZXNzYWdlOiBjb25maWcubWVzc2FnZSxcclxuICAgICAgdGl0bGU6IGNvbmZpZy50aXRsZSxcclxuICAgICAgdHlwZTogY29uZmlnLnR5cGUsXHJcbiAgICAgIGR1cmF0aW9uOiBjb25maWcuZHVyYXRpb24gPz8gdGhpcy5kZWZhdWx0RHVyYXRpb24sXHJcbiAgICAgIGRpc21pc3NpYmxlOiBjb25maWcuZGlzbWlzc2libGUgPz8gdHJ1ZSxcclxuICAgICAgcG9zaXRpb246IGNvbmZpZy5wb3NpdGlvbiA/PyB0aGlzLmRlZmF1bHRQb3NpdGlvbixcclxuICAgICAgY3VzdG9tQ2xhc3M6IGNvbmZpZy5jdXN0b21DbGFzcyxcclxuICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMubm90aWZpY2F0aW9uU3ViamVjdC5uZXh0KG5vdGlmaWNhdGlvbik7XHJcbiAgICByZXR1cm4gaWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEaXNtaXNzIGEgc3BlY2lmaWMgbm90aWZpY2F0aW9uIGJ5IElEXHJcbiAgICogQHBhcmFtIGlkIC0gVGhlIG5vdGlmaWNhdGlvbiBJRCB0byBkaXNtaXNzXHJcbiAgICovXHJcbiAgZGlzbWlzcyhpZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc21pc3NTdWJqZWN0Lm5leHQoaWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xlYXIgYWxsIG5vdGlmaWNhdGlvbnNcclxuICAgKi9cclxuICBjbGVhckFsbCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2xlYXJTdWJqZWN0Lm5leHQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdlbmVyYXRlIGEgdW5pcXVlIG5vdGlmaWNhdGlvbiBJRFxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2VuZXJhdGVJZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGBub3RpZmljYXRpb24tJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLCA5KX1gO1xyXG4gIH1cclxufVxyXG4iXX0=