@indigina/ui-kit 1.1.99 → 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.
- package/assets/icons/notification-success.svg +3 -0
- package/assets/icons/notification-warning.svg +3 -0
- package/esm2022/lib/components/kit-notification/kit-notification.animation.mjs +12 -0
- package/esm2022/lib/components/kit-notification/kit-notification.component.mjs +51 -18
- package/esm2022/lib/components/kit-notification/kit-notification.const.mjs +8 -0
- package/esm2022/lib/components/kit-notification/kit-notification.service.mjs +35 -0
- package/esm2022/lib/components/kit-svg-sprite/kit-svg-sprite.component.mjs +3 -3
- package/esm2022/lib/components/kit-switch/kit-switch.component.mjs +2 -2
- package/esm2022/lib/components/kit-text-label/kit-text-label.component.mjs +2 -2
- package/esm2022/public-api.mjs +5 -4
- package/fesm2022/indigina-ui-kit.mjs +99 -43
- package/fesm2022/indigina-ui-kit.mjs.map +1 -1
- package/lib/components/kit-notification/kit-notification.animation.d.ts +2 -0
- package/lib/components/kit-notification/kit-notification.component.d.ts +18 -11
- package/lib/components/kit-notification/kit-notification.const.d.ts +13 -0
- package/lib/components/kit-notification/kit-notification.service.d.ts +11 -0
- package/package.json +1 -1
- package/public-api.d.ts +4 -3
- package/styles/theming.scss +2 -0
- package/esm2022/lib/components/kit-notification/kit-notification.module.mjs +0 -28
- package/lib/components/kit-notification/kit-notification.module.d.ts +0 -9
|
@@ -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 "
|
|
4
|
-
|
|
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
|
-
|
|
15
|
-
|
|
16
|
-
this.
|
|
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
|
-
|
|
19
|
-
|
|
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,
|
|
24
|
-
|
|
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,
|
|
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=
|