@indigina/ui-kit 1.1.100 → 1.1.101

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.
@@ -0,0 +1,3 @@
1
+ <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M11.0001 21.5001C5.20104 21.5001 0.5 16.799 0.5 11C0.5 5.20098 5.20104 0.499939 11.0001 0.499939C16.799 0.499939 21.5001 5.20098 21.5001 11C21.5001 16.799 16.799 21.5001 11.0001 21.5001ZM9.95279 15.2L17.3775 7.77536L15.8926 6.29043L9.95279 12.2302L6.98296 9.26025L5.49802 10.7453L9.95279 15.2Z" fill="#39C237"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M11 0.5C5.20156 0.5 0.5 5.20156 0.5 11C0.5 16.7984 5.20156 21.5 11 21.5C16.7984 21.5 21.5 16.7984 21.5 11C21.5 5.20156 16.7984 0.5 11 0.5ZM10.25 5.9375C10.25 5.83437 10.3344 5.75 10.4375 5.75H11.5625C11.6656 5.75 11.75 5.83437 11.75 5.9375V12.3125C11.75 12.4156 11.6656 12.5 11.5625 12.5H10.4375C10.3344 12.5 10.25 12.4156 10.25 12.3125V5.9375ZM11 16.25C10.7056 16.244 10.4253 16.1228 10.2192 15.9125C10.0132 15.7022 9.89773 15.4195 9.89773 15.125C9.89773 14.8305 10.0132 14.5478 10.2192 14.3375C10.4253 14.1272 10.7056 14.006 11 14C11.2944 14.006 11.5747 14.1272 11.7808 14.3375C11.9868 14.5478 12.1023 14.8305 12.1023 15.125C12.1023 15.4195 11.9868 15.7022 11.7808 15.9125C11.5747 16.1228 11.2944 16.244 11 16.25Z" />
3
+ </svg>
@@ -0,0 +1,12 @@
1
+ import { animate, style, transition, trigger } from '@angular/animations';
2
+ export const fadeAnimation = trigger('fadeAnimation', [
3
+ transition(':enter', [
4
+ style({ opacity: 0, transform: 'translateY(-60px)' }),
5
+ animate('300ms', style({ opacity: 1, transform: 'translateY(0)' })),
6
+ ]),
7
+ transition(':leave', [
8
+ style({ opacity: 1, transform: 'translateY(0px)' }),
9
+ animate('300ms', style({ opacity: 0, transform: 'translateY(10px)' })),
10
+ ]),
11
+ ]);
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2l0LW5vdGlmaWNhdGlvbi5hbmltYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2tpdC1ub3RpZmljYXRpb24va2l0LW5vdGlmaWNhdGlvbi5hbmltYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBNEIsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVwRyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQTZCLE9BQU8sQ0FBQyxlQUFlLEVBQUU7SUFDOUUsVUFBVSxDQUFDLFFBQVEsRUFBRTtRQUNqQixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxDQUFDO1FBQ3JELE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRyxTQUFTLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztLQUNyRSxDQUNGO0lBQ0QsVUFBVSxDQUFDLFFBQVEsRUFBRTtRQUNqQixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFHLFNBQVMsRUFBRSxpQkFBaUIsRUFBQyxDQUFDO1FBQ25ELE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0tBQ3ZFLENBQ0Y7Q0FDRixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBBbmltYXRpb25UcmlnZ2VyTWV0YWRhdGEsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBmYWRlQW5pbWF0aW9uOiBBbmltYXRpb25UcmlnZ2VyTWV0YWRhdGEgPSB0cmlnZ2VyKCdmYWRlQW5pbWF0aW9uJywgW1xuICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG4gICAgICBzdHlsZSh7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoLTYwcHgpJyB9KSxcbiAgICAgIGFuaW1hdGUoJzMwMG1zJywgc3R5bGUoeyBvcGFjaXR5OiAxLCAgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgwKScgfSkpLFxuICAgIF0sXG4gICksXG4gIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcbiAgICAgIHN0eWxlKHsgb3BhY2l0eTogMSAsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMHB4KSd9KSxcbiAgICAgIGFuaW1hdGUoJzMwMG1zJywgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDEwcHgpJyB9KSksXG4gICAgXSxcbiAgKSxcbl0pO1xuIl19
@@ -1,27 +1,60 @@
1
1
  import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
+ import { KitSvgIcon } from '../kit-svg-icon/kit-svg-icon.const';
3
+ import { KitSvgIconModule } from '../kit-svg-icon/kit-svg-icon.module';
4
+ import { NgClass } from '@angular/common';
5
+ import { fadeAnimation } from './kit-notification.animation';
6
+ import { KitNotificationType } from './kit-notification.const';
2
7
  import * as i0 from "@angular/core";
3
- import * as i1 from "../kit-svg-icon/kit-svg-icon.component";
4
- export var KitNotificationType;
5
- (function (KitNotificationType) {
6
- KitNotificationType["INFO"] = "info";
7
- KitNotificationType["WARNING"] = "warning";
8
- KitNotificationType["ERROR"] = "error";
9
- KitNotificationType["SUCCESS"] = "success";
10
- })(KitNotificationType || (KitNotificationType = {}));
8
+ import * as i1 from "./kit-notification.service";
9
+ import * as i2 from "../kit-svg-icon/kit-svg-icon.component";
11
10
  export class KitNotificationComponent {
12
- constructor() {
13
- /**
14
- * Defines a value that is going to be applied as a notification type
15
- */
16
- this.type = KitNotificationType.INFO;
11
+ constructor(renderer, el, notificationService) {
12
+ this.renderer = renderer;
13
+ this.el = el;
14
+ this.notificationService = notificationService;
15
+ this.appendTo = 'body';
16
+ this.notifications = this.notificationService.notifications;
17
+ this.closeIcon = KitSvgIcon.CROSS;
18
+ this.appendedElement = null;
17
19
  }
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KitNotificationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: KitNotificationComponent, selector: "kit-notification", inputs: { type: "type" }, ngImport: i0, template: "<div class=\"kit-notification notification-{{ type }}\">\n <kit-svg-icon class=\"notification-icon\"\n [icon]=\"type\"\n ></kit-svg-icon>\n <div class=\"notification-text\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".display-flex{display:flex}.flex-align-items-center{align-items:center}.flex-justify-content-center{justify-content:center}.flex-justify-content-end{justify-content:flex-end}.display-block{display:block}div[kendowatermarkoverlay]{display:none}.kit-notification{display:flex;align-items:center;padding:12px}.kit-notification .notification-icon{margin-right:10px;width:20px;height:20px;fill:none;flex-shrink:0}.kit-notification .notification-text{color:#000;font-size:14px;font-weight:400;line-height:1.26;white-space:pre-wrap}.kit-notification.notification-info{background-color:#fff8e0}.kit-notification.notification-warning{background-color:#ffeee5}.kit-notification.notification-error{background-color:#f8e0e0}.kit-notification.notification-success{background-color:#e7f4ec}\n"], dependencies: [{ kind: "component", type: i1.KitSvgIconComponent, selector: "kit-svg-icon", inputs: ["icon", "iconClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
20
+ ngOnInit() {
21
+ this.appendToTarget();
22
+ }
23
+ ngOnDestroy() {
24
+ if (this.appendedElement?.parentNode) {
25
+ this.renderer.removeChild(this.appendedElement.parentNode, this.appendedElement);
26
+ }
27
+ }
28
+ removeNotification(id) {
29
+ this.notificationService.removeNotification(id);
30
+ }
31
+ getNotificationType(type) {
32
+ if (type === KitNotificationType.SUCCESS || type === KitNotificationType.WARNING) {
33
+ return `notification-${type}`;
34
+ }
35
+ return type;
36
+ }
37
+ appendToTarget() {
38
+ const target = document.querySelector(this.appendTo) ?? document.body;
39
+ const { top } = target.getBoundingClientRect();
40
+ this.appendedElement = this.el.nativeElement;
41
+ if (this.appendedElement) {
42
+ this.appendedElement.style.position = 'fixed';
43
+ this.appendedElement.style.top = `${top}px`;
44
+ this.appendedElement.style.right = '25px';
45
+ }
46
+ this.renderer.appendChild(target, this.appendedElement);
47
+ }
48
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KitNotificationComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.KitNotificationService }], target: i0.ɵɵFactoryTarget.Component }); }
49
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: KitNotificationComponent, isStandalone: true, selector: "kit-notification", inputs: { appendTo: "appendTo" }, ngImport: i0, template: "@for (notification of notifications().reverse(); track notification.id) {\n <div @fadeAnimation \n class=\"notification\" \n [ngClass]=\"notification.type\">\n <kit-svg-icon class=\"notification-icon\"\n [icon]=\"getNotificationType(notification.type)\" />\n <ng-content />\n @if (notification.message) {\n <div class=\"notification-text\">\n {{ notification.message }}\n </div>\n }\n @if (notification.closable) {\n <kit-svg-icon class=\"notification-close-icon\"\n [icon]=\"closeIcon\"\n (click)=\"removeNotification(notification.id)\" />\n }\n </div>\n}\n", styles: [".notification{display:flex;align-items:center;padding:20px 24px;margin-top:10px;min-width:600px;min-height:34px;border-radius:8px}.notification-icon{margin-right:16px;width:24px;height:24px;fill:none;flex-shrink:0}.notification-text{color:var(--ui-kit-color-grey-10);font-size:16px;line-height:24px;white-space:pre-wrap;flex-grow:1}.notification.success{background-color:var(--ui-kit-color-green-5);border:1px solid var(--ui-kit-color-green-6)}.notification.error{background-color:var(--ui-kit-color-red-3);border:1px solid var(--ui-kit-color-red-4)}.notification.warning{background-color:var(--ui-kit-color-orange-4);border:1px solid var(--ui-kit-color-orange)}.notification.info{background-color:var(--ui-kit-color-blue-1);border:1px solid var(--ui-kit-color-blue)}.notification.info .notification-icon svg path{stroke:var(--ui-kit-color-blue)!important}.notification-close-icon{width:16px;height:16px;fill:var(--ui-kit-color-grey-12)}\n"], dependencies: [{ kind: "ngmodule", type: KitSvgIconModule }, { kind: "component", type: i2.KitSvgIconComponent, selector: "kit-svg-icon", inputs: ["icon", "iconClass"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], animations: [fadeAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
20
50
  }
21
51
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KitNotificationComponent, decorators: [{
22
52
  type: Component,
23
- args: [{ selector: 'kit-notification', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"kit-notification notification-{{ type }}\">\n <kit-svg-icon class=\"notification-icon\"\n [icon]=\"type\"\n ></kit-svg-icon>\n <div class=\"notification-text\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".display-flex{display:flex}.flex-align-items-center{align-items:center}.flex-justify-content-center{justify-content:center}.flex-justify-content-end{justify-content:flex-end}.display-block{display:block}div[kendowatermarkoverlay]{display:none}.kit-notification{display:flex;align-items:center;padding:12px}.kit-notification .notification-icon{margin-right:10px;width:20px;height:20px;fill:none;flex-shrink:0}.kit-notification .notification-text{color:#000;font-size:14px;font-weight:400;line-height:1.26;white-space:pre-wrap}.kit-notification.notification-info{background-color:#fff8e0}.kit-notification.notification-warning{background-color:#ffeee5}.kit-notification.notification-error{background-color:#f8e0e0}.kit-notification.notification-success{background-color:#e7f4ec}\n"] }]
24
- }], propDecorators: { type: [{
53
+ args: [{ selector: 'kit-notification', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
54
+ KitSvgIconModule,
55
+ NgClass,
56
+ ], animations: [fadeAnimation], template: "@for (notification of notifications().reverse(); track notification.id) {\n <div @fadeAnimation \n class=\"notification\" \n [ngClass]=\"notification.type\">\n <kit-svg-icon class=\"notification-icon\"\n [icon]=\"getNotificationType(notification.type)\" />\n <ng-content />\n @if (notification.message) {\n <div class=\"notification-text\">\n {{ notification.message }}\n </div>\n }\n @if (notification.closable) {\n <kit-svg-icon class=\"notification-close-icon\"\n [icon]=\"closeIcon\"\n (click)=\"removeNotification(notification.id)\" />\n }\n </div>\n}\n", styles: [".notification{display:flex;align-items:center;padding:20px 24px;margin-top:10px;min-width:600px;min-height:34px;border-radius:8px}.notification-icon{margin-right:16px;width:24px;height:24px;fill:none;flex-shrink:0}.notification-text{color:var(--ui-kit-color-grey-10);font-size:16px;line-height:24px;white-space:pre-wrap;flex-grow:1}.notification.success{background-color:var(--ui-kit-color-green-5);border:1px solid var(--ui-kit-color-green-6)}.notification.error{background-color:var(--ui-kit-color-red-3);border:1px solid var(--ui-kit-color-red-4)}.notification.warning{background-color:var(--ui-kit-color-orange-4);border:1px solid var(--ui-kit-color-orange)}.notification.info{background-color:var(--ui-kit-color-blue-1);border:1px solid var(--ui-kit-color-blue)}.notification.info .notification-icon svg path{stroke:var(--ui-kit-color-blue)!important}.notification-close-icon{width:16px;height:16px;fill:var(--ui-kit-color-grey-12)}\n"] }]
57
+ }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.KitNotificationService }], propDecorators: { appendTo: [{
25
58
  type: Input
26
59
  }] } });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2l0LW5vdGlmaWNhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2tpdC1ub3RpZmljYXRpb24va2l0LW5vdGlmaWNhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2tpdC1ub3RpZmljYXRpb24va2l0LW5vdGlmaWNhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBRTFFLE1BQU0sQ0FBTixJQUFZLG1CQUtYO0FBTEQsV0FBWSxtQkFBbUI7SUFDN0Isb0NBQWEsQ0FBQTtJQUNiLDBDQUFtQixDQUFBO0lBQ25CLHNDQUFlLENBQUE7SUFDZiwwQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUs5QjtBQVFELE1BQU0sT0FBTyx3QkFBd0I7SUFOckM7UUFPRTs7V0FFRztRQUNNLFNBQUksR0FBd0IsbUJBQW1CLENBQUMsSUFBSSxDQUFDO0tBQy9EOzhHQUxZLHdCQUF3QjtrR0FBeEIsd0JBQXdCLGtGQ2ZyQyxvUEFRQTs7MkZET2Esd0JBQXdCO2tCQU5wQyxTQUFTOytCQUNFLGtCQUFrQixtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNOzhCQU10QyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgZW51bSBLaXROb3RpZmljYXRpb25UeXBlIHtcbiAgSU5GTyA9ICdpbmZvJyxcbiAgV0FSTklORyA9ICd3YXJuaW5nJyxcbiAgRVJST1IgPSAnZXJyb3InLFxuICBTVUNDRVNTID0gJ3N1Y2Nlc3MnXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2tpdC1ub3RpZmljYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4va2l0LW5vdGlmaWNhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2tpdC1ub3RpZmljYXRpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEtpdE5vdGlmaWNhdGlvbkNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBEZWZpbmVzIGEgdmFsdWUgdGhhdCBpcyBnb2luZyB0byBiZSBhcHBsaWVkIGFzIGEgbm90aWZpY2F0aW9uIHR5cGVcbiAgICovXG4gIEBJbnB1dCgpIHR5cGU6IEtpdE5vdGlmaWNhdGlvblR5cGUgPSBLaXROb3RpZmljYXRpb25UeXBlLklORk87XG59XG4iLCI8ZGl2IGNsYXNzPVwia2l0LW5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24te3sgdHlwZSB9fVwiPlxuICA8a2l0LXN2Zy1pY29uIGNsYXNzPVwibm90aWZpY2F0aW9uLWljb25cIlxuICAgICAgICAgICAgICAgIFtpY29uXT1cInR5cGVcIlxuICA+PC9raXQtc3ZnLWljb24+XG4gIDxkaXYgY2xhc3M9XCJub3RpZmljYXRpb24tdGV4dFwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2l0LW5vdGlmaWNhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2tpdC1ub3RpZmljYXRpb24va2l0LW5vdGlmaWNhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2tpdC1ub3RpZmljYXRpb24va2l0LW5vdGlmaWNhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFtQixNQUFNLDBCQUEwQixDQUFDOzs7O0FBZWhGLE1BQU0sT0FBTyx3QkFBd0I7SUFRbkMsWUFDbUIsUUFBbUIsRUFDbkIsRUFBYyxFQUNkLG1CQUEyQztRQUYzQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXdCO1FBVnJELGFBQVEsR0FBVyxNQUFNLENBQUM7UUFFMUIsa0JBQWEsR0FBOEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQztRQUNsRixjQUFTLEdBQWUsVUFBVSxDQUFDLEtBQUssQ0FBQztRQUUxQyxvQkFBZSxHQUF1QixJQUFJLENBQUM7SUFNaEQsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsVUFBVSxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ25GLENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsRUFBVTtRQUMzQixJQUFJLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELG1CQUFtQixDQUFDLElBQXlCO1FBQzNDLElBQUksSUFBSSxLQUFLLG1CQUFtQixDQUFDLE9BQU8sSUFBSSxJQUFJLEtBQUssbUJBQW1CLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakYsT0FBTyxnQkFBZ0IsSUFBSSxFQUFFLENBQUM7UUFDaEMsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLGNBQWM7UUFDcEIsTUFBTSxNQUFNLEdBQVksUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQztRQUMvRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQztRQUU3QyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1lBQzlDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO1lBQzVDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7UUFDNUMsQ0FBQztRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDMUQsQ0FBQzs4R0FoRFUsd0JBQXdCO2tHQUF4Qix3QkFBd0IsOEdDcEJyQyw2cEJBbUJBLG8rQkRKSSxnQkFBZ0IsNklBQ2hCLE9BQU8sc0VBRUcsQ0FBQyxhQUFhLENBQUM7OzJGQUVoQix3QkFBd0I7a0JBWnBDLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLGdCQUFnQjt3QkFDaEIsT0FBTztxQkFDUixjQUNXLENBQUMsYUFBYSxDQUFDOzRJQUdsQixRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFJlbmRlcmVyMiwgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBLaXRTdmdJY29uIH0gZnJvbSAnLi4va2l0LXN2Zy1pY29uL2tpdC1zdmctaWNvbi5jb25zdCc7XG5pbXBvcnQgeyBLaXRTdmdJY29uTW9kdWxlIH0gZnJvbSAnLi4va2l0LXN2Zy1pY29uL2tpdC1zdmctaWNvbi5tb2R1bGUnO1xuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBmYWRlQW5pbWF0aW9uIH0gZnJvbSAnLi9raXQtbm90aWZpY2F0aW9uLmFuaW1hdGlvbic7XG5pbXBvcnQgeyBLaXROb3RpZmljYXRpb25UeXBlLCBLaXROb3RpZmljYXRpb24gfSBmcm9tICcuL2tpdC1ub3RpZmljYXRpb24uY29uc3QnO1xuaW1wb3J0IHsgS2l0Tm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4va2l0LW5vdGlmaWNhdGlvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna2l0LW5vdGlmaWNhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9raXQtbm90aWZpY2F0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4va2l0LW5vdGlmaWNhdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEtpdFN2Z0ljb25Nb2R1bGUsXG4gICAgTmdDbGFzcyxcbiAgXSxcbiAgYW5pbWF0aW9uczogW2ZhZGVBbmltYXRpb25dLFxufSlcbmV4cG9ydCBjbGFzcyBLaXROb3RpZmljYXRpb25Db21wb25lbnQge1xuICBASW5wdXQoKSBhcHBlbmRUbzogc3RyaW5nID0gJ2JvZHknO1xuICBcbiAgcmVhZG9ubHkgbm90aWZpY2F0aW9uczogU2lnbmFsPEtpdE5vdGlmaWNhdGlvbltdPiA9IHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5ub3RpZmljYXRpb25zO1xuICByZWFkb25seSBjbG9zZUljb246IEtpdFN2Z0ljb24gPSBLaXRTdmdJY29uLkNST1NTO1xuXG4gIHByaXZhdGUgYXBwZW5kZWRFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbm90aWZpY2F0aW9uU2VydmljZTogS2l0Tm90aWZpY2F0aW9uU2VydmljZSxcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYXBwZW5kVG9UYXJnZXQoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFwcGVuZGVkRWxlbWVudD8ucGFyZW50Tm9kZSkge1xuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLmFwcGVuZGVkRWxlbWVudC5wYXJlbnROb2RlLCB0aGlzLmFwcGVuZGVkRWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlTm90aWZpY2F0aW9uKGlkOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UucmVtb3ZlTm90aWZpY2F0aW9uKGlkKTtcbiAgfVxuXG4gIGdldE5vdGlmaWNhdGlvblR5cGUodHlwZTogS2l0Tm90aWZpY2F0aW9uVHlwZSk6IHN0cmluZyB7XG4gICAgaWYgKHR5cGUgPT09IEtpdE5vdGlmaWNhdGlvblR5cGUuU1VDQ0VTUyB8fCB0eXBlID09PSBLaXROb3RpZmljYXRpb25UeXBlLldBUk5JTkcpIHtcbiAgICAgIHJldHVybiBgbm90aWZpY2F0aW9uLSR7dHlwZX1gO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBlbmRUb1RhcmdldCgpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQ6IEVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRoaXMuYXBwZW5kVG8pID8/IGRvY3VtZW50LmJvZHk7XG4gICAgY29uc3QgeyB0b3AgfSA9IHRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICB0aGlzLmFwcGVuZGVkRWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcblxuICAgIGlmICh0aGlzLmFwcGVuZGVkRWxlbWVudCkge1xuICAgICAgdGhpcy5hcHBlbmRlZEVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnO1xuICAgICAgdGhpcy5hcHBlbmRlZEVsZW1lbnQuc3R5bGUudG9wID0gYCR7dG9wfXB4YDtcbiAgICAgIHRoaXMuYXBwZW5kZWRFbGVtZW50LnN0eWxlLnJpZ2h0ID0gJzI1cHgnO1xuICAgIH1cblxuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGFyZ2V0LCB0aGlzLmFwcGVuZGVkRWxlbWVudCk7XG4gIH1cbn1cbiIsIkBmb3IgKG5vdGlmaWNhdGlvbiBvZiBub3RpZmljYXRpb25zKCkucmV2ZXJzZSgpOyB0cmFjayBub3RpZmljYXRpb24uaWQpIHtcbiAgPGRpdiBAZmFkZUFuaW1hdGlvbiBcbiAgICAgICBjbGFzcz1cIm5vdGlmaWNhdGlvblwiIFxuICAgICAgIFtuZ0NsYXNzXT1cIm5vdGlmaWNhdGlvbi50eXBlXCI+XG4gICAgPGtpdC1zdmctaWNvbiBjbGFzcz1cIm5vdGlmaWNhdGlvbi1pY29uXCJcbiAgICAgICAgICAgICAgICAgIFtpY29uXT1cImdldE5vdGlmaWNhdGlvblR5cGUobm90aWZpY2F0aW9uLnR5cGUpXCIgLz5cbiAgICA8bmctY29udGVudCAvPlxuICAgIEBpZiAobm90aWZpY2F0aW9uLm1lc3NhZ2UpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJub3RpZmljYXRpb24tdGV4dFwiPlxuICAgICAgICB7eyBub3RpZmljYXRpb24ubWVzc2FnZSB9fVxuICAgICAgPC9kaXY+XG4gICAgfVxuICAgIEBpZiAobm90aWZpY2F0aW9uLmNsb3NhYmxlKSB7XG4gICAgICA8a2l0LXN2Zy1pY29uIGNsYXNzPVwibm90aWZpY2F0aW9uLWNsb3NlLWljb25cIlxuICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCJjbG9zZUljb25cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbi5pZClcIiAvPlxuICAgIH1cbiAgPC9kaXY+XG59XG4iXX0=
@@ -0,0 +1,8 @@
1
+ export var KitNotificationType;
2
+ (function (KitNotificationType) {
3
+ KitNotificationType["INFO"] = "info";
4
+ KitNotificationType["WARNING"] = "warning";
5
+ KitNotificationType["ERROR"] = "error";
6
+ KitNotificationType["SUCCESS"] = "success";
7
+ })(KitNotificationType || (KitNotificationType = {}));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2l0LW5vdGlmaWNhdGlvbi5jb25zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMva2l0LW5vdGlmaWNhdGlvbi9raXQtbm90aWZpY2F0aW9uLmNvbnN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLG1CQUtYO0FBTEQsV0FBWSxtQkFBbUI7SUFDN0Isb0NBQWEsQ0FBQTtJQUNiLDBDQUFtQixDQUFBO0lBQ25CLHNDQUFlLENBQUE7SUFDZiwwQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUs5QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEtpdE5vdGlmaWNhdGlvblR5cGUge1xuICBJTkZPID0gJ2luZm8nLFxuICBXQVJOSU5HID0gJ3dhcm5pbmcnLFxuICBFUlJPUiA9ICdlcnJvcicsXG4gIFNVQ0NFU1MgPSAnc3VjY2VzcycsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS2l0Tm90aWZpY2F0aW9uIHtcbiAgaWQ6IG51bWJlcjtcbiAgdHlwZTogS2l0Tm90aWZpY2F0aW9uVHlwZTtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBjbG9zYWJsZTogYm9vbGVhbjtcbiAgYXV0b0hpZGVUaW1lOiBudW1iZXIgfCBudWxsO1xufVxuIl19
@@ -0,0 +1,35 @@
1
+ import { Injectable, signal } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class KitNotificationService {
4
+ constructor() {
5
+ this.notifications = signal([]);
6
+ this.notificationIdCounter = 0;
7
+ }
8
+ addNotification(type, message = '', closable = true, autoHideTime = null) {
9
+ const id = this.notificationIdCounter++;
10
+ this.notifications.update(notifications => {
11
+ return [
12
+ ...notifications,
13
+ { id, type, message, closable, autoHideTime },
14
+ ];
15
+ });
16
+ if (this.notifications().length > 1) {
17
+ const previousNotificationId = id - 1;
18
+ this.removeNotification(previousNotificationId);
19
+ }
20
+ if (autoHideTime) {
21
+ setTimeout(() => this.removeNotification(id), autoHideTime);
22
+ }
23
+ }
24
+ removeNotification(id) {
25
+ this.notifications.update(notifications => {
26
+ return [...notifications.filter(notification => notification.id !== id)];
27
+ });
28
+ }
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KitNotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
30
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KitNotificationService }); }
31
+ }
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KitNotificationService, decorators: [{
33
+ type: Injectable
34
+ }] });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2l0LW5vdGlmaWNhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9raXQtbm90aWZpY2F0aW9uL2tpdC1ub3RpZmljYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBa0IsTUFBTSxlQUFlLENBQUM7O0FBSW5FLE1BQU0sT0FBTyxzQkFBc0I7SUFEbkM7UUFFVyxrQkFBYSxHQUFzQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0QsMEJBQXFCLEdBQVcsQ0FBQyxDQUFDO0tBNEIzQztJQTFCQyxlQUFlLENBQUMsSUFBeUIsRUFBRSxVQUFrQixFQUFFLEVBQUUsV0FBb0IsSUFBSSxFQUFFLGVBQThCLElBQUk7UUFDM0gsTUFBTSxFQUFFLEdBQVcsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFFaEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDeEMsT0FBTztnQkFDTCxHQUFHLGFBQWE7Z0JBQ2hCLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRTthQUM5QyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDcEMsTUFBTSxzQkFBc0IsR0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBRTlDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFFRCxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDOUQsQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxFQUFVO1FBQzNCLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQ3hDLE9BQU8sQ0FBQyxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0UsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQTdCVSxzQkFBc0I7a0hBQXRCLHNCQUFzQjs7MkZBQXRCLHNCQUFzQjtrQkFEbEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIHNpZ25hbCwgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEtpdE5vdGlmaWNhdGlvbiwgS2l0Tm90aWZpY2F0aW9uVHlwZSB9IGZyb20gJy4va2l0LW5vdGlmaWNhdGlvbi5jb25zdCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBLaXROb3RpZmljYXRpb25TZXJ2aWNlIHtcbiAgcmVhZG9ubHkgbm90aWZpY2F0aW9uczogV3JpdGFibGVTaWduYWw8S2l0Tm90aWZpY2F0aW9uW10+ID0gc2lnbmFsKFtdKTtcbiAgcHJpdmF0ZSBub3RpZmljYXRpb25JZENvdW50ZXI6IG51bWJlciA9IDA7XG5cbiAgYWRkTm90aWZpY2F0aW9uKHR5cGU6IEtpdE5vdGlmaWNhdGlvblR5cGUsIG1lc3NhZ2U6IHN0cmluZyA9ICcnLCBjbG9zYWJsZTogYm9vbGVhbiA9IHRydWUsIGF1dG9IaWRlVGltZTogbnVtYmVyIHwgbnVsbCA9IG51bGwpOiB2b2lkIHtcbiAgICBjb25zdCBpZDogbnVtYmVyID0gdGhpcy5ub3RpZmljYXRpb25JZENvdW50ZXIrKztcblxuICAgIHRoaXMubm90aWZpY2F0aW9ucy51cGRhdGUobm90aWZpY2F0aW9ucyA9PiB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICAuLi5ub3RpZmljYXRpb25zLFxuICAgICAgICB7IGlkLCB0eXBlLCBtZXNzYWdlLCBjbG9zYWJsZSwgYXV0b0hpZGVUaW1lIH0sXG4gICAgICBdO1xuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMubm90aWZpY2F0aW9ucygpLmxlbmd0aCA+IDEpIHtcbiAgICAgIGNvbnN0IHByZXZpb3VzTm90aWZpY2F0aW9uSWQ6IG51bWJlciA9IGlkIC0gMTtcblxuICAgICAgdGhpcy5yZW1vdmVOb3RpZmljYXRpb24ocHJldmlvdXNOb3RpZmljYXRpb25JZCk7XG4gICAgfVxuXG4gICAgaWYgKGF1dG9IaWRlVGltZSkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlbW92ZU5vdGlmaWNhdGlvbihpZCksIGF1dG9IaWRlVGltZSk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlTm90aWZpY2F0aW9uKGlkOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLm5vdGlmaWNhdGlvbnMudXBkYXRlKG5vdGlmaWNhdGlvbnMgPT4ge1xuICAgICAgcmV0dXJuIFsuLi5ub3RpZmljYXRpb25zLmZpbHRlcihub3RpZmljYXRpb24gPT4gbm90aWZpY2F0aW9uLmlkICE9PSBpZCldO1xuICAgIH0pO1xuICB9XG59XG4iXX0=