@libs-ui/services-notification 0.2.16 → 0.2.17

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.
@@ -1,15 +1,15 @@
1
+ import { OnDestroy } from '@angular/core';
1
2
  import { Subject } from 'rxjs';
2
3
  import { INotificationTextConfig } from '../interfaces/notification';
3
- import { OnDestroy } from '@angular/core';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class LibUiServiceNotificationBaseComponent implements OnDestroy {
6
- protected message: string;
7
- protected interpolateParams: Record<string, unknown>;
8
- protected title: string;
9
- protected config: INotificationTextConfig;
10
- protected removeComponent: () => void;
11
6
  protected onDestroy: Subject<void>;
7
+ readonly message: import("@angular/core").InputSignal<string>;
8
+ readonly interpolateParams: import("@angular/core").InputSignal<Record<string, unknown> | undefined>;
9
+ readonly title: import("@angular/core").InputSignal<string>;
10
+ readonly config: import("@angular/core").InputSignal<INotificationTextConfig>;
11
+ readonly removeComponent: import("@angular/core").InputSignal<(component: unknown) => Promise<void>>;
12
12
  ngOnDestroy(): void;
13
13
  static ɵfac: i0.ɵɵFactoryDeclaration<LibUiServiceNotificationBaseComponent, never>;
14
- static ɵdir: i0.ɵɵDirectiveDeclaration<LibUiServiceNotificationBaseComponent, never, never, {}, {}, never, never, false, never>;
14
+ static ɵdir: i0.ɵɵDirectiveDeclaration<LibUiServiceNotificationBaseComponent, never, never, { "message": { "alias": "message"; "required": false; "isSignal": true; }; "interpolateParams": { "alias": "interpolateParams"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "config": { "alias": "config"; "required": false; "isSignal": true; }; "removeComponent": { "alias": "removeComponent"; "required": true; "isSignal": true; }; }, {}, never, never, false, never>;
15
15
  }
@@ -2,8 +2,8 @@ import { OnDestroy, OnInit } from '@angular/core';
2
2
  import { LibUiServiceNotificationBaseComponent } from '../base.component';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class LibUiServicesComponentsTextComponent extends LibUiServiceNotificationBaseComponent implements OnInit, OnDestroy {
5
- protected containerClass: string;
6
- protected icon: string;
5
+ protected containerClass: import("@angular/core").WritableSignal<string>;
6
+ protected icon: import("@angular/core").WritableSignal<string>;
7
7
  private elementRef;
8
8
  constructor();
9
9
  ngOnInit(): void;
@@ -1,21 +1,23 @@
1
+ import { Directive, input } from '@angular/core';
1
2
  import { Subject } from 'rxjs';
2
- import { Directive } from '@angular/core';
3
3
  import * as i0 from "@angular/core";
4
4
  export class LibUiServiceNotificationBaseComponent {
5
- message;
6
- interpolateParams;
7
- title;
8
- config;
9
- removeComponent;
5
+ /* PROPERTY */
10
6
  onDestroy = new Subject();
7
+ /* INPUT */
8
+ message = input('');
9
+ interpolateParams = input();
10
+ title = input('');
11
+ config = input({ type: 'success', timeRemove: 2000 });
12
+ removeComponent = input.required();
11
13
  ngOnDestroy() {
12
14
  this.onDestroy.next();
13
15
  this.onDestroy.complete();
14
16
  }
15
17
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibUiServiceNotificationBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
16
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: LibUiServiceNotificationBaseComponent, ngImport: i0 });
18
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: LibUiServiceNotificationBaseComponent, inputs: { message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, interpolateParams: { classPropertyName: "interpolateParams", publicName: "interpolateParams", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, removeComponent: { classPropertyName: "removeComponent", publicName: "removeComponent", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 });
17
19
  }
18
20
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibUiServiceNotificationBaseComponent, decorators: [{
19
21
  type: Directive
20
22
  }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL3NlcnZpY2VzL25vdGlmaWNhdGlvbi9zcmMvY29tcG9uZW50cy9iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7O0FBRXJELE1BQU0sT0FBTyxxQ0FBcUM7SUFDdEMsT0FBTyxDQUFVO0lBQ2pCLGlCQUFpQixDQUEyQjtJQUM1QyxLQUFLLENBQVU7SUFDZixNQUFNLENBQTJCO0lBQ2pDLGVBQWUsQ0FBYztJQUM3QixTQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUUxQyxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7d0dBWFUscUNBQXFDOzRGQUFyQyxxQ0FBcUM7OzRGQUFyQyxxQ0FBcUM7a0JBRGpELFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJTm90aWZpY2F0aW9uVGV4dENvbmZpZyB9IGZyb20gJy4uL2ludGVyZmFjZXMvbm90aWZpY2F0aW9uJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBMaWJVaVNlcnZpY2VOb3RpZmljYXRpb25CYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJvdGVjdGVkIG1lc3NhZ2UhOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBpbnRlcnBvbGF0ZVBhcmFtcyE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBwcm90ZWN0ZWQgdGl0bGUhOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBjb25maWchOiBJTm90aWZpY2F0aW9uVGV4dENvbmZpZztcbiAgcHJvdGVjdGVkIHJlbW92ZUNvbXBvbmVudCE6ICgpID0+IHZvaWQ7XG4gIHByb3RlY3RlZCBvbkRlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMub25EZXN0cm95Lm5leHQoKTtcbiAgICB0aGlzLm9uRGVzdHJveS5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0=
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL3NlcnZpY2VzL25vdGlmaWNhdGlvbi9zcmMvY29tcG9uZW50cy9iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFhLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUcvQixNQUFNLE9BQU8scUNBQXFDO0lBQ2hELGNBQWM7SUFDSixTQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUUxQyxXQUFXO0lBQ0YsT0FBTyxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztJQUM1QixpQkFBaUIsR0FBRyxLQUFLLEVBQTJCLENBQUM7SUFDckQsS0FBSyxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztJQUMxQixNQUFNLEdBQUcsS0FBSyxDQUEwQixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDL0UsZUFBZSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQXlDLENBQUM7SUFFbkYsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO3dHQWRVLHFDQUFxQzs0RkFBckMscUNBQXFDOzs0RkFBckMscUNBQXFDO2tCQURqRCxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBPbkRlc3Ryb3ksIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJTm90aWZpY2F0aW9uVGV4dENvbmZpZyB9IGZyb20gJy4uL2ludGVyZmFjZXMvbm90aWZpY2F0aW9uJztcbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIExpYlVpU2VydmljZU5vdGlmaWNhdGlvbkJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAvKiBQUk9QRVJUWSAqL1xuICBwcm90ZWN0ZWQgb25EZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvKiBJTlBVVCAqL1xuICByZWFkb25seSBtZXNzYWdlID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIHJlYWRvbmx5IGludGVycG9sYXRlUGFyYW1zID0gaW5wdXQ8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+KCk7XG4gIHJlYWRvbmx5IHRpdGxlID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIHJlYWRvbmx5IGNvbmZpZyA9IGlucHV0PElOb3RpZmljYXRpb25UZXh0Q29uZmlnPih7IHR5cGU6ICdzdWNjZXNzJywgdGltZVJlbW92ZTogMjAwMCB9KTtcbiAgcmVhZG9ubHkgcmVtb3ZlQ29tcG9uZW50ID0gaW5wdXQucmVxdWlyZWQ8KGNvbXBvbmVudDogdW5rbm93bikgPT4gUHJvbWlzZTx2b2lkPj4oKTtcblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm9uRGVzdHJveS5uZXh0KCk7XG4gICAgdGhpcy5vbkRlc3Ryb3kuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
@@ -1,4 +1,4 @@
1
- import { ChangeDetectionStrategy, Component, ElementRef, inject } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, ElementRef, inject, signal } from '@angular/core';
2
2
  import { TranslateModule } from '@ngx-translate/core';
3
3
  import { fromEvent } from 'rxjs';
4
4
  import { take, takeUntil } from 'rxjs/operators';
@@ -6,52 +6,55 @@ import { LibUiServiceNotificationBaseComponent } from '../base.component';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@ngx-translate/core";
8
8
  export class LibUiServicesComponentsTextComponent extends LibUiServiceNotificationBaseComponent {
9
- containerClass;
10
- icon;
9
+ /* PROPERTY */
10
+ containerClass = signal('');
11
+ icon = signal('');
12
+ /* INJECT */
11
13
  elementRef = inject(ElementRef);
12
14
  constructor() {
13
15
  super();
14
16
  }
15
17
  ngOnInit() {
16
- switch (this.config?.type) {
18
+ switch (this.config().type) {
17
19
  case 'success':
18
- this.containerClass = 'libs-ui-toast_success';
19
- this.icon = 'libs-ui-icon-check-circle-solid';
20
+ this.containerClass.set('libs-ui-toast_success');
21
+ this.icon.set('libs-ui-icon-check-circle-solid');
20
22
  break;
21
23
  case 'info':
22
- this.containerClass = 'libs-ui-toast_info';
23
- this.icon = 'libs-ui-icon-tooltip-solid';
24
+ this.containerClass.set('libs-ui-toast_info');
25
+ this.icon.set('libs-ui-icon-tooltip-solid');
24
26
  break;
25
27
  case 'error':
26
- this.containerClass = 'libs-ui-toast_error';
27
- this.icon = 'libs-ui-icon-close-circle-solid';
28
+ this.containerClass.set('libs-ui-toast_error');
29
+ this.icon.set('libs-ui-icon-close-circle-solid');
28
30
  break;
29
31
  case 'warn':
30
- this.containerClass = 'libs-ui-toast_warning';
31
- this.icon = 'libs-ui-icon-alert-triangle-solid';
32
+ this.containerClass.set('libs-ui-toast_warning');
33
+ this.icon.set('libs-ui-icon-alert-triangle-solid');
32
34
  break;
33
35
  default:
34
- this.containerClass = 'bg-[#6fd100] libs-ui-toast_success';
35
- this.icon = 'mo-icn-toast_success';
36
+ this.containerClass.set('bg-[#6fd100] libs-ui-toast_success');
37
+ this.icon.set('mo-icn-toast_success');
36
38
  }
37
- const { eventName, callback } = this.config;
39
+ const { eventName, callback } = this.config();
38
40
  if (!eventName || !callback) {
39
41
  return;
40
42
  }
41
43
  if (eventName === 'click') {
42
- this.containerClass = `${this.containerClass} cursor-pointer`;
44
+ this.containerClass.update(value => `${value} cursor-pointer`);
43
45
  }
44
46
  fromEvent(this.elementRef.nativeElement, eventName).pipe(takeUntil(this.onDestroy), take(1)).subscribe(callback);
45
47
  }
48
+ /* FUNCTIONS */
46
49
  handlerClickClose(e) {
47
50
  e.stopPropagation();
48
- this.removeComponent();
51
+ this.removeComponent()(e);
49
52
  }
50
53
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibUiServicesComponentsTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
51
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibUiServicesComponentsTextComponent, isStandalone: true, selector: "libs_ui-services-notification-components-text", usesInheritance: true, ngImport: i0, template: "<div class=\"libs-ui-toast\"\n [class]=\"containerClass\"\n [style.zIndex]=\"config.zIndex || 2000\">\n <div class=\"flex items-center\">\n <i class=\"{{icon}}\"></i>\n </div>\n <div class=\"flex flex-col w-full\">\n @if (title) {\n <div class=\"libs-ui-font-h5m text-break\"\n [innerHtml]=\"title | translate \">\n </div>\n }\n @if (message) {\n <div class=\"text-break\"\n [class.libs-ui-font-h5r]=\"!title\"\n [class.libs-ui-font-h7r]=\"title\"\n [class.mt-[4ppx]]=\"title\"\n [innerHtml]=\"message | translate: (interpolateParams || {})\">\n </div>\n }\n </div>\n <div class=\"flex items-center\">\n <i class=\"libs-ui-icon-close mr-0 ml-[8px] cursor-pointer\"\n (click)=\"handlerClickClose($event)\">\n </i>\n </div>\n</div>", styles: ["@-webkit-keyframes animation-move{0%{right:-200px;opacity:0}to{right:12px;opacity:1}}@keyframes animation-move{0%{right:-200px;opacity:0}to{right:12px;opacity:1}}.libs-ui-toast{position:fixed;padding:12px 16px;display:flex;width:300px;flex-shrink:0;border-radius:8px;animation:animation-move .3s linear}.libs-ui-toast [class*=libs-ui-icon]{font-size:16px;margin-right:16px}.libs-ui-toast.libs-ui-toast_success{background-color:#e6faf0;color:#00bc62}.libs-ui-toast.libs-ui-toast_success [class*=libs-ui-icon]:before{color:#00bc62}.libs-ui-toast.libs-ui-toast_warning{background-color:#feeee6;color:#f05800}.libs-ui-toast.libs-ui-toast_warning [class*=libs-ui-icon]:before{color:#f05800}.libs-ui-toast.libs-ui-toast_error{background-color:#fdeaec;color:#ee2d41}.libs-ui-toast.libs-ui-toast_error [class*=libs-ui-icon]:before{color:#ee2d41}.libs-ui-toast.libs-ui-toast_info{background-color:#e9f1fe;color:#226ff5}.libs-ui-toast.libs-ui-toast_info [class*=libs-ui-icon]:before{color:#226ff5}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
54
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibUiServicesComponentsTextComponent, isStandalone: true, selector: "libs_ui-services-notification-components-text", usesInheritance: true, ngImport: i0, template: "<div class=\"libs-ui-toast\"\n [class]=\"containerClass()\"\n [style.zIndex]=\"config().zIndex || 2000\">\n <div class=\"flex items-center\">\n <i class=\"{{ icon() }}\"></i>\n </div>\n <div class=\"flex flex-col w-full\">\n @if (title()) {\n <div class=\"libs-ui-font-h5m text-break\"\n [innerHtml]=\"title() | translate \">\n </div>\n }\n @if (message()) {\n <div class=\"text-break\"\n [class.libs-ui-font-h5r]=\"!title()\"\n [class.libs-ui-font-h7r]=\"title()\"\n [class.mt-[4ppx]]=\"title()\"\n [innerHtml]=\"message() | translate: (interpolateParams() || {})\">\n </div>\n }\n </div>\n <div class=\"flex items-center\">\n <i class=\"libs-ui-icon-close mr-0 ml-[8px] cursor-pointer\"\n (click)=\"handlerClickClose($event)\">\n </i>\n </div>\n</div>\n", styles: ["@-webkit-keyframes animation-move{0%{right:-200px;opacity:0}to{right:12px;opacity:1}}@keyframes animation-move{0%{right:-200px;opacity:0}to{right:12px;opacity:1}}.libs-ui-toast{position:fixed;padding:12px 16px;display:flex;width:300px;flex-shrink:0;border-radius:8px;animation:animation-move .3s linear}.libs-ui-toast [class*=libs-ui-icon]{font-size:16px;margin-right:16px}.libs-ui-toast.libs-ui-toast_success{background-color:#e6faf0;color:#00bc62}.libs-ui-toast.libs-ui-toast_success [class*=libs-ui-icon]:before{color:#00bc62}.libs-ui-toast.libs-ui-toast_warning{background-color:#feeee6;color:#f05800}.libs-ui-toast.libs-ui-toast_warning [class*=libs-ui-icon]:before{color:#f05800}.libs-ui-toast.libs-ui-toast_error{background-color:#fdeaec;color:#ee2d41}.libs-ui-toast.libs-ui-toast_error [class*=libs-ui-icon]:before{color:#ee2d41}.libs-ui-toast.libs-ui-toast_info{background-color:#e9f1fe;color:#226ff5}.libs-ui-toast.libs-ui-toast_info [class*=libs-ui-icon]:before{color:#226ff5}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
52
55
  }
53
56
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibUiServicesComponentsTextComponent, decorators: [{
54
57
  type: Component,
55
- args: [{ selector: 'libs_ui-services-notification-components-text', standalone: true, imports: [TranslateModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"libs-ui-toast\"\n [class]=\"containerClass\"\n [style.zIndex]=\"config.zIndex || 2000\">\n <div class=\"flex items-center\">\n <i class=\"{{icon}}\"></i>\n </div>\n <div class=\"flex flex-col w-full\">\n @if (title) {\n <div class=\"libs-ui-font-h5m text-break\"\n [innerHtml]=\"title | translate \">\n </div>\n }\n @if (message) {\n <div class=\"text-break\"\n [class.libs-ui-font-h5r]=\"!title\"\n [class.libs-ui-font-h7r]=\"title\"\n [class.mt-[4ppx]]=\"title\"\n [innerHtml]=\"message | translate: (interpolateParams || {})\">\n </div>\n }\n </div>\n <div class=\"flex items-center\">\n <i class=\"libs-ui-icon-close mr-0 ml-[8px] cursor-pointer\"\n (click)=\"handlerClickClose($event)\">\n </i>\n </div>\n</div>", styles: ["@-webkit-keyframes animation-move{0%{right:-200px;opacity:0}to{right:12px;opacity:1}}@keyframes animation-move{0%{right:-200px;opacity:0}to{right:12px;opacity:1}}.libs-ui-toast{position:fixed;padding:12px 16px;display:flex;width:300px;flex-shrink:0;border-radius:8px;animation:animation-move .3s linear}.libs-ui-toast [class*=libs-ui-icon]{font-size:16px;margin-right:16px}.libs-ui-toast.libs-ui-toast_success{background-color:#e6faf0;color:#00bc62}.libs-ui-toast.libs-ui-toast_success [class*=libs-ui-icon]:before{color:#00bc62}.libs-ui-toast.libs-ui-toast_warning{background-color:#feeee6;color:#f05800}.libs-ui-toast.libs-ui-toast_warning [class*=libs-ui-icon]:before{color:#f05800}.libs-ui-toast.libs-ui-toast_error{background-color:#fdeaec;color:#ee2d41}.libs-ui-toast.libs-ui-toast_error [class*=libs-ui-icon]:before{color:#ee2d41}.libs-ui-toast.libs-ui-toast_info{background-color:#e9f1fe;color:#226ff5}.libs-ui-toast.libs-ui-toast_info [class*=libs-ui-icon]:before{color:#226ff5}\n"] }]
58
+ args: [{ selector: 'libs_ui-services-notification-components-text', standalone: true, imports: [TranslateModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"libs-ui-toast\"\n [class]=\"containerClass()\"\n [style.zIndex]=\"config().zIndex || 2000\">\n <div class=\"flex items-center\">\n <i class=\"{{ icon() }}\"></i>\n </div>\n <div class=\"flex flex-col w-full\">\n @if (title()) {\n <div class=\"libs-ui-font-h5m text-break\"\n [innerHtml]=\"title() | translate \">\n </div>\n }\n @if (message()) {\n <div class=\"text-break\"\n [class.libs-ui-font-h5r]=\"!title()\"\n [class.libs-ui-font-h7r]=\"title()\"\n [class.mt-[4ppx]]=\"title()\"\n [innerHtml]=\"message() | translate: (interpolateParams() || {})\">\n </div>\n }\n </div>\n <div class=\"flex items-center\">\n <i class=\"libs-ui-icon-close mr-0 ml-[8px] cursor-pointer\"\n (click)=\"handlerClickClose($event)\">\n </i>\n </div>\n</div>\n", styles: ["@-webkit-keyframes animation-move{0%{right:-200px;opacity:0}to{right:12px;opacity:1}}@keyframes animation-move{0%{right:-200px;opacity:0}to{right:12px;opacity:1}}.libs-ui-toast{position:fixed;padding:12px 16px;display:flex;width:300px;flex-shrink:0;border-radius:8px;animation:animation-move .3s linear}.libs-ui-toast [class*=libs-ui-icon]{font-size:16px;margin-right:16px}.libs-ui-toast.libs-ui-toast_success{background-color:#e6faf0;color:#00bc62}.libs-ui-toast.libs-ui-toast_success [class*=libs-ui-icon]:before{color:#00bc62}.libs-ui-toast.libs-ui-toast_warning{background-color:#feeee6;color:#f05800}.libs-ui-toast.libs-ui-toast_warning [class*=libs-ui-icon]:before{color:#f05800}.libs-ui-toast.libs-ui-toast_error{background-color:#fdeaec;color:#ee2d41}.libs-ui-toast.libs-ui-toast_error [class*=libs-ui-icon]:before{color:#ee2d41}.libs-ui-toast.libs-ui-toast_info{background-color:#e9f1fe;color:#226ff5}.libs-ui-toast.libs-ui-toast_info [class*=libs-ui-icon]:before{color:#226ff5}\n"] }]
56
59
  }], ctorParameters: () => [] });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL3NlcnZpY2VzL25vdGlmaWNhdGlvbi9zcmMvY29tcG9uZW50cy90ZXh0L3RleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9zZXJ2aWNlcy9ub3RpZmljYXRpb24vc3JjL2NvbXBvbmVudHMvdGV4dC90ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBVzFFLE1BQU0sT0FBTyxvQ0FBcUMsU0FBUSxxQ0FBcUM7SUFDbkYsY0FBYyxDQUFVO0lBQ3hCLElBQUksQ0FBVTtJQUVoQixVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBRXZDO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0lBRUQsUUFBUTtRQUNOLFFBQVEsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUMxQixLQUFLLFNBQVM7Z0JBQ1osSUFBSSxDQUFDLGNBQWMsR0FBRyx1QkFBdUIsQ0FBQztnQkFDOUMsSUFBSSxDQUFDLElBQUksR0FBRyxpQ0FBaUMsQ0FBQztnQkFDOUMsTUFBTTtZQUVSLEtBQUssTUFBTTtnQkFDVCxJQUFJLENBQUMsY0FBYyxHQUFHLG9CQUFvQixDQUFDO2dCQUMzQyxJQUFJLENBQUMsSUFBSSxHQUFHLDRCQUE0QixDQUFDO2dCQUN6QyxNQUFNO1lBRVIsS0FBSyxPQUFPO2dCQUNWLElBQUksQ0FBQyxjQUFjLEdBQUcscUJBQXFCLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxJQUFJLEdBQUcsaUNBQWlDLENBQUM7Z0JBQzlDLE1BQU07WUFFUixLQUFLLE1BQU07Z0JBQ1QsSUFBSSxDQUFDLGNBQWMsR0FBRyx1QkFBdUIsQ0FBQztnQkFDOUMsSUFBSSxDQUFDLElBQUksR0FBRyxtQ0FBbUMsQ0FBQztnQkFDaEQsTUFBTTtZQUVSO2dCQUNFLElBQUksQ0FBQyxjQUFjLEdBQUcsb0NBQW9DLENBQUM7Z0JBQzNELElBQUksQ0FBQyxJQUFJLEdBQUcsc0JBQXNCLENBQUM7UUFDdkMsQ0FBQztRQUNELE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUU1QyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDNUIsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLFNBQVMsS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsY0FBYyxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWMsaUJBQWlCLENBQUM7UUFDaEUsQ0FBQztRQUNELFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbkgsQ0FBQztJQUVTLGlCQUFpQixDQUFDLENBQVE7UUFDbEMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO3dHQWxEVSxvQ0FBb0M7NEZBQXBDLG9DQUFvQyxnSUNmakQsa3lCQTBCTSxzaENEZE0sZUFBZTs7NEZBR2Qsb0NBQW9DO2tCQVRoRCxTQUFTOytCQUVFLCtDQUErQyxjQUc3QyxJQUFJLFdBQ1AsQ0FBQyxlQUFlLENBQUMsbUJBQ1QsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBMaWJVaVNlcnZpY2VOb3RpZmljYXRpb25CYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdsaWJzX3VpLXNlcnZpY2VzLW5vdGlmaWNhdGlvbi1jb21wb25lbnRzLXRleHQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RleHQuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1RyYW5zbGF0ZU1vZHVsZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIExpYlVpU2VydmljZXNDb21wb25lbnRzVGV4dENvbXBvbmVudCBleHRlbmRzIExpYlVpU2VydmljZU5vdGlmaWNhdGlvbkJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByb3RlY3RlZCBjb250YWluZXJDbGFzcyE6IHN0cmluZztcbiAgcHJvdGVjdGVkIGljb24hOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpXG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHN3aXRjaCAodGhpcy5jb25maWc/LnR5cGUpIHtcbiAgICAgIGNhc2UgJ3N1Y2Nlc3MnOlxuICAgICAgICB0aGlzLmNvbnRhaW5lckNsYXNzID0gJ2xpYnMtdWktdG9hc3Rfc3VjY2Vzcyc7XG4gICAgICAgIHRoaXMuaWNvbiA9ICdsaWJzLXVpLWljb24tY2hlY2stY2lyY2xlLXNvbGlkJztcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2luZm8nOlxuICAgICAgICB0aGlzLmNvbnRhaW5lckNsYXNzID0gJ2xpYnMtdWktdG9hc3RfaW5mbyc7XG4gICAgICAgIHRoaXMuaWNvbiA9ICdsaWJzLXVpLWljb24tdG9vbHRpcC1zb2xpZCc7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgIHRoaXMuY29udGFpbmVyQ2xhc3MgPSAnbGlicy11aS10b2FzdF9lcnJvcic7XG4gICAgICAgIHRoaXMuaWNvbiA9ICdsaWJzLXVpLWljb24tY2xvc2UtY2lyY2xlLXNvbGlkJztcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ3dhcm4nOlxuICAgICAgICB0aGlzLmNvbnRhaW5lckNsYXNzID0gJ2xpYnMtdWktdG9hc3Rfd2FybmluZyc7XG4gICAgICAgIHRoaXMuaWNvbiA9ICdsaWJzLXVpLWljb24tYWxlcnQtdHJpYW5nbGUtc29saWQnO1xuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhpcy5jb250YWluZXJDbGFzcyA9ICdiZy1bIzZmZDEwMF0gbGlicy11aS10b2FzdF9zdWNjZXNzJztcbiAgICAgICAgdGhpcy5pY29uID0gJ21vLWljbi10b2FzdF9zdWNjZXNzJztcbiAgICB9XG4gICAgY29uc3QgeyBldmVudE5hbWUsIGNhbGxiYWNrIH0gPSB0aGlzLmNvbmZpZztcblxuICAgIGlmICghZXZlbnROYW1lIHx8ICFjYWxsYmFjaykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoZXZlbnROYW1lID09PSAnY2xpY2snKSB7XG4gICAgICB0aGlzLmNvbnRhaW5lckNsYXNzID0gYCR7dGhpcy5jb250YWluZXJDbGFzc30gY3Vyc29yLXBvaW50ZXJgO1xuICAgIH1cbiAgICBmcm9tRXZlbnQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGV2ZW50TmFtZSkucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kpLCB0YWtlKDEpKS5zdWJzY3JpYmUoY2FsbGJhY2spO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJDbGlja0Nsb3NlKGU6IEV2ZW50KSB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnJlbW92ZUNvbXBvbmVudCgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibGlicy11aS10b2FzdFwiXG4gIFtjbGFzc109XCJjb250YWluZXJDbGFzc1wiXG4gIFtzdHlsZS56SW5kZXhdPVwiY29uZmlnLnpJbmRleCB8fCAyMDAwXCI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgIDxpIGNsYXNzPVwie3tpY29ufX1cIj48L2k+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCB3LWZ1bGxcIj5cbiAgICBAaWYgKHRpdGxlKSB7XG4gICAgPGRpdiBjbGFzcz1cImxpYnMtdWktZm9udC1oNW0gdGV4dC1icmVha1wiXG4gICAgICBbaW5uZXJIdG1sXT1cInRpdGxlIHwgdHJhbnNsYXRlIFwiPlxuICAgIDwvZGl2PlxuICAgIH1cbiAgICBAaWYgKG1lc3NhZ2UpIHtcbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1icmVha1wiXG4gICAgICBbY2xhc3MubGlicy11aS1mb250LWg1cl09XCIhdGl0bGVcIlxuICAgICAgW2NsYXNzLmxpYnMtdWktZm9udC1oN3JdPVwidGl0bGVcIlxuICAgICAgW2NsYXNzLm10LVs0cHB4XV09XCJ0aXRsZVwiXG4gICAgICBbaW5uZXJIdG1sXT1cIm1lc3NhZ2UgfCB0cmFuc2xhdGU6IChpbnRlcnBvbGF0ZVBhcmFtcyB8fCB7fSlcIj5cbiAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICA8aSBjbGFzcz1cImxpYnMtdWktaWNvbi1jbG9zZSBtci0wIG1sLVs4cHhdIGN1cnNvci1wb2ludGVyXCJcbiAgICAgIChjbGljayk9XCJoYW5kbGVyQ2xpY2tDbG9zZSgkZXZlbnQpXCI+XG4gICAgPC9pPlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL3NlcnZpY2VzL25vdGlmaWNhdGlvbi9zcmMvY29tcG9uZW50cy90ZXh0L3RleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9zZXJ2aWNlcy9ub3RpZmljYXRpb24vc3JjL2NvbXBvbmVudHMvdGV4dC90ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFxQixNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztBQVcxRSxNQUFNLE9BQU8sb0NBQXFDLFNBQVEscUNBQXFDO0lBQzdGLGNBQWM7SUFDSixjQUFjLEdBQUcsTUFBTSxDQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLElBQUksR0FBRyxNQUFNLENBQVMsRUFBRSxDQUFDLENBQUM7SUFFcEMsWUFBWTtJQUNKLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7SUFFdkM7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7SUFFRCxRQUFRO1FBQ04sUUFBUSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDM0IsS0FBSyxTQUFTO2dCQUNaLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUM7Z0JBQ2pELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7Z0JBQ2pELE1BQU07WUFFUixLQUFLLE1BQU07Z0JBQ1QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztnQkFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUMsQ0FBQztnQkFDNUMsTUFBTTtZQUVSLEtBQUssT0FBTztnQkFDVixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO2dCQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO2dCQUNqRCxNQUFNO1lBRVIsS0FBSyxNQUFNO2dCQUNULElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUM7Z0JBQ2pELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7Z0JBQ25ELE1BQU07WUFFUjtnQkFDRSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO2dCQUM5RCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFDRCxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUU5QyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDNUIsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLFNBQVMsS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFDRCxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25ILENBQUM7SUFFRCxlQUFlO0lBRUwsaUJBQWlCLENBQUMsQ0FBUTtRQUNsQyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVCLENBQUM7d0dBdERVLG9DQUFvQzs0RkFBcEMsb0NBQW9DLGdJQ2ZqRCw4MEJBMkJBLHNoQ0RmWSxlQUFlOzs0RkFHZCxvQ0FBb0M7a0JBVGhELFNBQVM7K0JBRUUsK0NBQStDLGNBRzdDLElBQUksV0FDUCxDQUFDLGVBQWUsQ0FBQyxtQkFDVCx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBPbkluaXQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTGliVWlTZXJ2aWNlTm90aWZpY2F0aW9uQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbGlic191aS1zZXJ2aWNlcy1ub3RpZmljYXRpb24tY29tcG9uZW50cy10ZXh0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90ZXh0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtUcmFuc2xhdGVNb2R1bGVdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBMaWJVaVNlcnZpY2VzQ29tcG9uZW50c1RleHRDb21wb25lbnQgZXh0ZW5kcyBMaWJVaVNlcnZpY2VOb3RpZmljYXRpb25CYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKiBQUk9QRVJUWSAqL1xuICBwcm90ZWN0ZWQgY29udGFpbmVyQ2xhc3MgPSBzaWduYWw8c3RyaW5nPignJyk7XG4gIHByb3RlY3RlZCBpY29uID0gc2lnbmFsPHN0cmluZz4oJycpO1xuXG4gIC8qIElOSkVDVCAqL1xuICBwcml2YXRlIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZilcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3dpdGNoICh0aGlzLmNvbmZpZygpLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3N1Y2Nlc3MnOlxuICAgICAgICB0aGlzLmNvbnRhaW5lckNsYXNzLnNldCgnbGlicy11aS10b2FzdF9zdWNjZXNzJyk7XG4gICAgICAgIHRoaXMuaWNvbi5zZXQoJ2xpYnMtdWktaWNvbi1jaGVjay1jaXJjbGUtc29saWQnKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2luZm8nOlxuICAgICAgICB0aGlzLmNvbnRhaW5lckNsYXNzLnNldCgnbGlicy11aS10b2FzdF9pbmZvJyk7XG4gICAgICAgIHRoaXMuaWNvbi5zZXQoJ2xpYnMtdWktaWNvbi10b29sdGlwLXNvbGlkJyk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgIHRoaXMuY29udGFpbmVyQ2xhc3Muc2V0KCdsaWJzLXVpLXRvYXN0X2Vycm9yJyk7XG4gICAgICAgIHRoaXMuaWNvbi5zZXQoJ2xpYnMtdWktaWNvbi1jbG9zZS1jaXJjbGUtc29saWQnKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ3dhcm4nOlxuICAgICAgICB0aGlzLmNvbnRhaW5lckNsYXNzLnNldCgnbGlicy11aS10b2FzdF93YXJuaW5nJyk7XG4gICAgICAgIHRoaXMuaWNvbi5zZXQoJ2xpYnMtdWktaWNvbi1hbGVydC10cmlhbmdsZS1zb2xpZCcpO1xuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhpcy5jb250YWluZXJDbGFzcy5zZXQoJ2JnLVsjNmZkMTAwXSBsaWJzLXVpLXRvYXN0X3N1Y2Nlc3MnKTtcbiAgICAgICAgdGhpcy5pY29uLnNldCgnbW8taWNuLXRvYXN0X3N1Y2Nlc3MnKTtcbiAgICB9XG4gICAgY29uc3QgeyBldmVudE5hbWUsIGNhbGxiYWNrIH0gPSB0aGlzLmNvbmZpZygpO1xuXG4gICAgaWYgKCFldmVudE5hbWUgfHwgIWNhbGxiYWNrKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChldmVudE5hbWUgPT09ICdjbGljaycpIHtcbiAgICAgIHRoaXMuY29udGFpbmVyQ2xhc3MudXBkYXRlKHZhbHVlID0+IGAke3ZhbHVlfSBjdXJzb3ItcG9pbnRlcmApO1xuICAgIH1cbiAgICBmcm9tRXZlbnQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGV2ZW50TmFtZSkucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kpLCB0YWtlKDEpKS5zdWJzY3JpYmUoY2FsbGJhY2spO1xuICB9XG5cbiAgLyogRlVOQ1RJT05TICovXG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJDbGlja0Nsb3NlKGU6IEV2ZW50KSB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnJlbW92ZUNvbXBvbmVudCgpKGUpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibGlicy11aS10b2FzdFwiXG4gIFtjbGFzc109XCJjb250YWluZXJDbGFzcygpXCJcbiAgW3N0eWxlLnpJbmRleF09XCJjb25maWcoKS56SW5kZXggfHwgMjAwMFwiPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICA8aSBjbGFzcz1cInt7IGljb24oKSB9fVwiPjwvaT5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHctZnVsbFwiPlxuICAgIEBpZiAodGl0bGUoKSkge1xuICAgICAgPGRpdiBjbGFzcz1cImxpYnMtdWktZm9udC1oNW0gdGV4dC1icmVha1wiXG4gICAgICAgIFtpbm5lckh0bWxdPVwidGl0bGUoKSB8IHRyYW5zbGF0ZSBcIj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgICBAaWYgKG1lc3NhZ2UoKSkge1xuICAgICAgPGRpdiBjbGFzcz1cInRleHQtYnJlYWtcIlxuICAgICAgICBbY2xhc3MubGlicy11aS1mb250LWg1cl09XCIhdGl0bGUoKVwiXG4gICAgICAgIFtjbGFzcy5saWJzLXVpLWZvbnQtaDdyXT1cInRpdGxlKClcIlxuICAgICAgICBbY2xhc3MubXQtWzRwcHhdXT1cInRpdGxlKClcIlxuICAgICAgICBbaW5uZXJIdG1sXT1cIm1lc3NhZ2UoKSB8IHRyYW5zbGF0ZTogKGludGVycG9sYXRlUGFyYW1zKCkgfHwge30pXCI+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICA8aSBjbGFzcz1cImxpYnMtdWktaWNvbi1jbG9zZSBtci0wIG1sLVs4cHhdIGN1cnNvci1wb2ludGVyXCJcbiAgICAgIChjbGljayk9XCJoYW5kbGVyQ2xpY2tDbG9zZSgkZXZlbnQpXCI+XG4gICAgPC9pPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,27 +1,29 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { Injectable, inject } from '@angular/core';
1
+ import { Injectable, inject, signal } from '@angular/core';
3
2
  import { LibsUiDynamicComponentService } from '@libs-ui/services-dynamic-component';
4
- import { encrypt, escapeHtml, isEmbedFrame, UtilsCommunicateMicro } from '@libs-ui/utils';
3
+ import { UtilsCommunicateMicro, encrypt, escapeHtml, get, isEmbedFrame } from '@libs-ui/utils';
5
4
  import { TranslateService } from '@ngx-translate/core';
6
5
  import { Observable } from 'rxjs';
7
6
  import { LibUiServicesComponentsTextComponent } from './components';
8
7
  import * as i0 from "@angular/core";
9
8
  export class LibsUiNotificationService {
10
- notificationPermission;
11
- queueMessage = [];
12
- timeoutUpdatePosition;
9
+ /* PROPERTY */
10
+ notificationPermission = signal('default');
11
+ queueMessage = signal(new Array());
12
+ timeoutUpdatePosition = signal(0);
13
13
  MAX_QUEUE_MESSAGE = 5;
14
- isInit = false;
14
+ isInit = signal(false);
15
+ /* INJECT */
15
16
  dynamicService = inject(LibsUiDynamicComponentService);
16
17
  translateService = inject(TranslateService);
17
18
  constructor() {
18
- this.notificationPermission = this.systemSupportNotification() ? 'default' : 'denied';
19
+ this.notificationPermission.set(this.systemSupportNotification() ? 'default' : 'denied');
19
20
  }
21
+ /* FUNCTIONS */
20
22
  init(messageNameHandler) {
21
- if (this.isInit) {
23
+ if (this.isInit()) {
22
24
  return;
23
25
  }
24
- this.isInit = true;
26
+ this.isInit.set(true);
25
27
  UtilsCommunicateMicro.GetMessage(messageNameHandler).subscribe(e => {
26
28
  if (isEmbedFrame()) {
27
29
  const dataMessage = e.data.response;
@@ -51,14 +53,14 @@ export class LibsUiNotificationService {
51
53
  }
52
54
  }
53
55
  set Permission(permission) {
54
- this.notificationPermission = permission;
56
+ this.notificationPermission.set(permission);
55
57
  }
56
58
  systemSpawnNotification(title, options) {
57
59
  return new Observable((obs) => {
58
60
  if (!this.systemSupportNotification()) {
59
61
  obs.complete();
60
62
  }
61
- if (this.notificationPermission !== 'granted') {
63
+ if (this.notificationPermission() !== 'granted') {
62
64
  obs.complete();
63
65
  }
64
66
  const notify = new Notification(title, options);
@@ -106,7 +108,7 @@ export class LibsUiNotificationService {
106
108
  this.checkQueueMessage();
107
109
  if (interpolateParams && typeof interpolateParams === 'object') {
108
110
  Object.keys(interpolateParams).forEach((key) => {
109
- interpolateParams[key] = escapeHtml(interpolateParams[key]);
111
+ interpolateParams[key] = escapeHtml(get(interpolateParams, key));
110
112
  });
111
113
  }
112
114
  if (isEmbedFrame()) {
@@ -114,47 +116,52 @@ export class LibsUiNotificationService {
114
116
  return UtilsCommunicateMicro.PostMessageToParent({ type: 'MICRO_SITE_PUSH_MESSAGE_FROM_CHILD', response: encrypt(JSON.stringify({ functionName: config.type, message: messageTranslate, title, timeRemove: config.timeRemove || 2000 })) });
115
117
  }
116
118
  const component = this.dynamicService.resolveComponentFactory(LibUiServicesComponentsTextComponent);
117
- const instance = component.instance;
118
- instance.title = title;
119
- instance.message = message;
120
- instance.interpolateParams = interpolateParams;
121
- instance.config = config;
122
- instance.removeComponent = () => this.removeComponent(component);
119
+ component.setInput('title', title);
120
+ component.setInput('message', message);
121
+ component.setInput('interpolateParams', interpolateParams);
122
+ component.setInput('config', config);
123
+ component.setInput('removeComponent', this.removeComponent.bind(this, component));
123
124
  const timeout = setTimeout(() => {
124
125
  this.removeComponent(component);
125
126
  }, config?.timeRemove);
126
- this.queueMessage.push({
127
- component,
128
- config,
129
- timeout
127
+ this.queueMessage.update(queue => {
128
+ queue.push({
129
+ component,
130
+ config,
131
+ timeout
132
+ });
133
+ return [...queue];
130
134
  });
131
135
  this.dynamicService.addToBody(component);
132
136
  this.updatePositionMessage();
133
137
  }
134
138
  removeComponent(component) {
135
139
  this.dynamicService.remove(component);
136
- const indexRemove = this.queueMessage.findIndex(config => config.component === component);
140
+ const indexRemove = this.queueMessage().findIndex(config => config.component === component);
137
141
  if (indexRemove !== -1) {
138
- this.queueMessage.splice(indexRemove, 1);
142
+ this.queueMessage.update(queue => {
143
+ queue.splice(indexRemove, 1);
144
+ return [...queue];
145
+ });
139
146
  }
140
147
  }
141
148
  checkQueueMessage() {
142
149
  if (this.queueMessage.length < this.MAX_QUEUE_MESSAGE) {
143
150
  return;
144
151
  }
145
- const firstQueue = this.queueMessage.shift();
152
+ const firstQueue = this.queueMessage().shift();
146
153
  clearTimeout(firstQueue.timeout);
147
154
  this.dynamicService.remove(firstQueue.component);
148
155
  this.updatePositionMessage();
149
156
  }
150
157
  updatePositionMessage() {
151
- if (!this.queueMessage.length) {
158
+ if (!this.queueMessage().length) {
152
159
  return;
153
160
  }
154
- clearTimeout(this.timeoutUpdatePosition);
155
- this.timeoutUpdatePosition = setTimeout(() => {
161
+ clearTimeout(this.timeoutUpdatePosition());
162
+ this.timeoutUpdatePosition.set(setTimeout(() => {
156
163
  let topMessage = 12;
157
- this.queueMessage.forEach((message) => {
164
+ this.queueMessage().forEach((message) => {
158
165
  const firstEl = message.component.instance.elementRef.nativeElement.firstElementChild;
159
166
  const rect = firstEl.getBoundingClientRect();
160
167
  firstEl.style.top = `${topMessage}px`;
@@ -165,7 +172,7 @@ export class LibsUiNotificationService {
165
172
  }
166
173
  firstEl.style.right = `${right}px`;
167
174
  });
168
- });
175
+ }));
169
176
  }
170
177
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiNotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
171
178
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiNotificationService, providedIn: 'root' });
@@ -176,4 +183,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
176
183
  providedIn: 'root'
177
184
  }]
178
185
  }], ctorParameters: () => [] });
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL3NlcnZpY2VzL25vdGlmaWNhdGlvbi9zcmMvbm90aWZpY2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBZ0IsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRixPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFPcEUsTUFBTSxPQUFPLHlCQUF5QjtJQUM1QixzQkFBc0IsQ0FBeUI7SUFDL0MsWUFBWSxHQUE4QixFQUFFLENBQUM7SUFDN0MscUJBQXFCLENBQU07SUFDbEIsaUJBQWlCLEdBQVcsQ0FBQyxDQUFDO0lBQ3ZDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFFZixjQUFjLEdBQUcsTUFBTSxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFDdkQsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFcEQ7UUFDRSxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0lBQ3hGLENBQUM7SUFFTSxJQUFJLENBQUMsa0JBQWlDO1FBQzNDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLE9BQU87UUFDVCxD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QU8sQ0FBQyxDQUFDLE9BQTJCLEVBQUUsRUFBRTtnQkFDeEQsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDdEYsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7Z0JBRTdDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsVUFBVSxJQUFJLENBQUM7Z0JBQ3RDLFVBQVUsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztnQkFDL0IsSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDO2dCQUUvQyxJQUFJLFlBQVksRUFBRSxFQUFFLENBQUM7b0JBQ25CLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ2IsQ0FBQztnQkFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxHQUFHLEtBQUssSUFBSSxDQUFDO1lBQ3JDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO3dHQTdMVSx5QkFBeUI7NEdBQXpCLHlCQUF5QixjQUh4QixNQUFNOzs0RkFHUCx5QkFBeUI7a0JBSnJDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmLCBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExpYnNVaUR5bmFtaWNDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnQGxpYnMtdWkvc2VydmljZXMtZHluYW1pYy1jb21wb25lbnQnO1xuaW1wb3J0IHsgZW5jcnlwdCwgZXNjYXBlSHRtbCwgaXNFbWJlZEZyYW1lLCBVdGlsc0NvbW11bmljYXRlTWljcm8gfSBmcm9tICdAbGlicy11aS91dGlscyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMaWJVaVNlcnZpY2VzQ29tcG9uZW50c1RleHRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgSU5vdGlmaWNhdGlvblB1c2hGcm9tSUZyYW1lLCBJTm90aWZpY2F0aW9uUXVldWUsIElOb3RpZmljYXRpb25UZXh0Q29uZmlnLCBJTm90aWZpY2F0aW9uVGV4dFB1YmxpY0NvbmZpZyB9IGZyb20gJy4vaW50ZXJmYWNlcy9ub3RpZmljYXRpb24nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcblxuZXhwb3J0IGNsYXNzIExpYnNVaU5vdGlmaWNhdGlvblNlcnZpY2Uge1xuICBwcml2YXRlIG5vdGlmaWNhdGlvblBlcm1pc3Npb246IE5vdGlmaWNhdGlvblBlcm1pc3Npb247XG4gIHByaXZhdGUgcXVldWVNZXNzYWdlOiBBcnJheTxJTm90aWZpY2F0aW9uUXVldWU+ID0gW107XG4gIHByaXZhdGUgdGltZW91dFVwZGF0ZVBvc2l0aW9uOiBhbnk7XG4gIHByaXZhdGUgcmVhZG9ubHkgTUFYX1FVRVVFX01FU1NBR0U6IG51bWJlciA9IDU7XG4gIHByaXZhdGUgaXNJbml0ID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBkeW5hbWljU2VydmljZSA9IGluamVjdChMaWJzVWlEeW5hbWljQ29tcG9uZW50U2VydmljZSk7XG4gIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLm5vdGlmaWNhdGlvblBlcm1pc3Npb24gPSB0aGlzLnN5c3RlbVN1cHBvcnROb3RpZmljYXRpb24oKSA/ICdkZWZhdWx0JyA6ICdkZW5pZWQnO1xuICB9XG5cbiAgcHVibGljIGluaXQobWVzc2FnZU5hbWVIYW5kbGVyOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgaWYgKHRoaXMuaXNJbml0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaXNJbml0ID0gdHJ1ZTtcbiAgICBVdGlsc0NvbW11bmljYXRlTWljcm8uR2V0TWVzc2FnZShtZXNzYWdlTmFtZUhhbmRsZXIpLnN1YnNjcmliZShlID0+IHtcbiAgICAgIGlmIChpc0VtYmVkRnJhbWUoKSkge1xuICAgICAgICBjb25zdCBkYXRhTWVzc2FnZSA9IGUuZGF0YS5yZXNwb25zZSBhcyBJTm90aWZpY2F0aW9uUHVzaEZyb21JRnJhbWU7XG5cbiAgICAgICAgdGhpcy5zaG93Q29tcFR5cGVUZXh0KGRhdGFNZXNzYWdlLm1lc3NhZ2UsIHVuZGVmaW5lZCwgZGF0YU1lc3NhZ2UudGl0bGUsIHsgdHlwZTogZGF0YU1lc3NhZ2UuZnVuY3Rpb25OYW1lLCB0aW1lUmVtb3ZlOiBkYXRhTWVzc2FnZS50aW1lUmVtb3ZlIHx8IDIwMDAgfSk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgVXRpbHNDb21tdW5pY2F0ZU1pY3JvLlBvc3RNZXNzYWdlVG9QYXJlbnQoZS5kYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgVHJhbnNsYXRlU2VydmljZSgpIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlO1xuICB9XG5cbiAgcHJpdmF0ZSBzeXN0ZW1TdXBwb3J0Tm90aWZpY2F0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAnTm90aWZpY2F0aW9uJyBpbiB3aW5kb3c7XG4gIH1cblxuICBwdWJsaWMgc3lzdGVtUmVxdWVzdFBlcm1pc3Npb24oKSB7XG4gICAgaWYgKCF0aGlzLnN5c3RlbVN1cHBvcnROb3RpZmljYXRpb24oKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigocGVybWlzc2lvbjogTm90aWZpY2F0aW9uUGVybWlzc2lvbikgPT4gdGhpcy5QZXJtaXNzaW9uID0gcGVybWlzc2lvbik7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIFR5cGVFcnJvcikge1xuICAgICAgICBOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKHBlcm1pc3Npb246IE5vdGlmaWNhdGlvblBlcm1pc3Npb24pID0+IHRoaXMuUGVybWlzc2lvbiA9IHBlcm1pc3Npb24pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0IFBlcm1pc3Npb24ocGVybWlzc2lvbjogTm90aWZpY2F0aW9uUGVybWlzc2lvbikge1xuICAgIHRoaXMubm90aWZpY2F0aW9uUGVybWlzc2lvbiA9IHBlcm1pc3Npb247XG4gIH1cblxuICBwdWJsaWMgc3lzdGVtU3Bhd25Ob3RpZmljYXRpb24odGl0bGU6IHN0cmluZywgb3B0aW9ucz86IE5vdGlmaWNhdGlvbk9wdGlvbnMpOiBhbnkge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgob2JzOiBhbnkpID0+IHtcbiAgICAgIGlmICghdGhpcy5zeXN0ZW1TdXBwb3J0Tm90aWZpY2F0aW9uKCkpIHtcbiAgICAgICAgb2JzLmNvbXBsZXRlKCk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5ub3RpZmljYXRpb25QZXJtaXNzaW9uICE9PSAnZ3JhbnRlZCcpIHtcbiAgICAgICAgb2JzLmNvbXBsZXRlKCk7XG4gICAgICB9XG4gICAgICBjb25zdCBub3RpZnkgPSBuZXcgTm90aWZpY2F0aW9uKHRpdGxlLCBvcHRpb25zKTtcblxuICAgICAgbm90aWZ5Lm9uc2hvdyA9IChlKSA9PiB7XG4gICAgICAgIHJldHVybiBvYnMubmV4dCh7XG4gICAgICAgICAgbm90aWZpY2F0aW9uOiBub3RpZnksXG4gICAgICAgICAgZXZlbnQ6IGVcbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgICAgbm90aWZ5Lm9uY2xpY2sgPSAoZSkgPT4ge1xuICAgICAgICBub3RpZnkuY2xvc2UoKTtcbiAgICAgICAgd2luZG93LmZvY3VzKCk7XG5cbiAgICAgICAgcmV0dXJuIG9icy5uZXh0KHtcbiAgICAgICAgICBub3RpZmljYXRpb246IG5vdGlmeSxcbiAgICAgICAgICBldmVudDogZVxuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgICBub3RpZnkub25lcnJvciA9IChlKSA9PiB7XG4gICAgICAgIHJldHVybiBvYnMuZXJyb3Ioe1xuICAgICAgICAgIG5vdGlmaWNhdGlvbjogbm90aWZ5LFxuICAgICAgICAgIGV2ZW50OiBlXG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICAgIG5vdGlmeS5vbmNsb3NlID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4gb2JzLmNvbXBsZXRlKCk7XG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNob3dDb21wVHlwZVRleHRTdWNjZXNzKG1lc3NhZ2U6IHN0cmluZywgY29uZmlnPzogSU5vdGlmaWNhdGlvblRleHRQdWJsaWNDb25maWcpIHtcbiAgICB0aGlzLnNob3dDb21wVHlwZVRleHQobWVzc2FnZSwgY29uZmlnPy5pbnRlcnBvbGF0ZVBhcmFtcywgY29uZmlnPy50aXRsZSwgeyB0eXBlOiAnc3VjY2VzcycsIHRpbWVSZW1vdmU6IGNvbmZpZz8udGltZVJlbW92ZSB8fCAzMDAwLCBwb3NpdGlvblJpZ2h0OiBjb25maWc/LnBvc2l0aW9uUmlnaHQsIGV2ZW50TmFtZTogY29uZmlnPy5ldmVudE5hbWUsIGNhbGxiYWNrOiBjb25maWc/LmNhbGxiYWNrIH0pO1xuICB9XG5cbiAgcHVibGljIHNob3dDb21wVHlwZVRleHRFcnJvcihtZXNzYWdlOiBzdHJpbmcsIGNvbmZpZz86IElOb3RpZmljYXRpb25UZXh0UHVibGljQ29uZmlnKSB7XG4gICAgdGhpcy5zaG93Q29tcFR5cGVUZXh0KG1lc3NhZ2UsIGNvbmZpZz8uaW50ZXJwb2xhdGVQYXJhbXMsIGNvbmZpZz8udGl0bGUsIHsgdHlwZTogJ2Vycm9yJywgdGltZVJlbW92ZTogY29uZmlnPy50aW1lUmVtb3ZlIHx8IDMwMDAsIHBvc2l0aW9uUmlnaHQ6IGNvbmZpZz8ucG9zaXRpb25SaWdodCwgZXZlbnROYW1lOiBjb25maWc/LmV2ZW50TmFtZSwgY2FsbGJhY2s6IGNvbmZpZz8uY2FsbGJhY2sgfSk7XG4gIH1cblxuICBwdWJsaWMgc2hvd0NvbXBUeXBlVGV4dEluZm8obWVzc2FnZTogc3RyaW5nLCBjb25maWc/OiBJTm90aWZpY2F0aW9uVGV4dFB1YmxpY0NvbmZpZykge1xuICAgIHRoaXMuc2hvd0NvbXBUeXBlVGV4dChtZXNzYWdlLCBjb25maWc/LmludGVycG9sYXRlUGFyYW1zLCBjb25maWc/LnRpdGxlLCB7IHR5cGU6ICdpbmZvJywgdGltZVJlbW92ZTogY29uZmlnPy50aW1lUmVtb3ZlIHx8IDMwMDAsIHBvc2l0aW9uUmlnaHQ6IGNvbmZpZz8ucG9zaXRpb25SaWdodCwgZXZlbnROYW1lOiBjb25maWc/LmV2ZW50TmFtZSwgY2FsbGJhY2s6IGNvbmZpZz8uY2FsbGJhY2sgfSk7XG4gIH1cblxuICBwdWJsaWMgc2hvd0NvbXBUeXBlVGV4dFdhcm5pbmcobWVzc2FnZTogc3RyaW5nLCBjb25maWc/OiBJTm90aWZpY2F0aW9uVGV4dFB1YmxpY0NvbmZpZykge1xuICAgIHRoaXMuc2hvd0NvbXBUeXBlVGV4dChtZXNzYWdlLCBjb25maWc/LmludGVycG9sYXRlUGFyYW1zLCBjb25maWc/LnRpdGxlLCB7IHR5cGU6ICd3YXJuJywgdGltZVJlbW92ZTogY29uZmlnPy50aW1lUmVtb3ZlIHx8IDMwMDAsIHBvc2l0aW9uUmlnaHQ6IGNvbmZpZz8ucG9zaXRpb25SaWdodCwgZXZlbnROYW1lOiBjb25maWc/LmV2ZW50TmFtZSwgY2FsbGJhY2s6IGNvbmZpZz8uY2FsbGJhY2sgfSk7XG4gIH1cblxuICBwcml2YXRlIHNob3dDb21wVHlwZVRleHQobWVzc2FnZTogc3RyaW5nLCBpbnRlcnBvbGF0ZVBhcmFtcz86IFJlY29yZDxzdHJpbmcsIGFueT4sIHRpdGxlPzogc3RyaW5nLCBjb25maWc6IElOb3RpZmljYXRpb25UZXh0Q29uZmlnID0geyB0eXBlOiAnc3VjY2VzcycsIHRpbWVSZW1vdmU6IDIwMDAgfSk6IHZvaWQge1xuICAgIGlmICghbWVzc2FnZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY2hlY2tRdWV1ZU1lc3NhZ2UoKTtcbiAgICBpZiAoaW50ZXJwb2xhdGVQYXJhbXMgJiYgdHlwZW9mIGludGVycG9sYXRlUGFyYW1zID09PSAnb2JqZWN0Jykge1xuICAgICAgT2JqZWN0LmtleXMoaW50ZXJwb2xhdGVQYXJhbXMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICBpbnRlcnBvbGF0ZVBhcmFtc1trZXldID0gZXNjYXBlSHRtbChpbnRlcnBvbGF0ZVBhcmFtc1trZXldKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChpc0VtYmVkRnJhbWUoKSkge1xuICAgICAgY29uc3QgbWVzc2FnZVRyYW5zbGF0ZSA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KG1lc3NhZ2UsIGludGVycG9sYXRlUGFyYW1zKSBhcyBzdHJpbmc7XG5cbiAgICAgIHJldHVybiBVdGlsc0NvbW11bmljYXRlTWljcm8uUG9zdE1lc3NhZ2VUb1BhcmVudCh7IHR5cGU6ICdNSUNST19TSVRFX1BVU0hfTUVTU0FHRV9GUk9NX0NISUxEJywgcmVzcG9uc2U6IGVuY3J5cHQoSlNPTi5zdHJpbmdpZnkoeyBmdW5jdGlvbk5hbWU6IGNvbmZpZy50eXBlLCBtZXNzYWdlOiBtZXNzYWdlVHJhbnNsYXRlLCB0aXRsZSwgdGltZVJlbW92ZTogY29uZmlnLnRpbWVSZW1vdmUgfHwgMjAwMCB9KSkgfSk7XG4gICAgfVxuICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMuZHluYW1pY1NlcnZpY2UucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoTGliVWlTZXJ2aWNlc0NvbXBvbmVudHNUZXh0Q29tcG9uZW50KTtcbiAgICBjb25zdCBpbnN0YW5jZSA9IGNvbXBvbmVudC5pbnN0YW5jZTtcblxuICAgIGluc3RhbmNlLnRpdGxlID0gdGl0bGU7XG4gICAgaW5zdGFuY2UubWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgaW5zdGFuY2UuaW50ZXJwb2xhdGVQYXJhbXMgPSBpbnRlcnBvbGF0ZVBhcmFtcztcbiAgICBpbnN0YW5jZS5jb25maWcgPSBjb25maWc7XG4gICAgaW5zdGFuY2UucmVtb3ZlQ29tcG9uZW50ID0gKCkgPT4gdGhpcy5yZW1vdmVDb21wb25lbnQoY29tcG9uZW50KTtcbiAgICBjb25zdCB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnJlbW92ZUNvbXBvbmVudChjb21wb25lbnQpO1xuICAgIH0sIGNvbmZpZz8udGltZVJlbW92ZSk7XG5cbiAgICB0aGlzLnF1ZXVlTWVzc2FnZS5wdXNoKHtcbiAgICAgIGNvbXBvbmVudCxcbiAgICAgIGNvbmZpZyxcbiAgICAgIHRpbWVvdXRcbiAgICB9KTtcbiAgICB0aGlzLmR5bmFtaWNTZXJ2aWNlLmFkZFRvQm9keShjb21wb25lbnQpO1xuICAgIHRoaXMudXBkYXRlUG9zaXRpb25NZXNzYWdlKCk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUNvbXBvbmVudChjb21wb25lbnQ6IENvbXBvbmVudFJlZjxhbnk+KSB7XG4gICAgdGhpcy5keW5hbWljU2VydmljZS5yZW1vdmUoY29tcG9uZW50KTtcbiAgICBjb25zdCBpbmRleFJlbW92ZSA9IHRoaXMucXVldWVNZXNzYWdlLmZpbmRJbmRleChjb25maWcgPT4gY29uZmlnLmNvbXBvbmVudCA9PT0gY29tcG9uZW50KTtcblxuICAgIGlmIChpbmRleFJlbW92ZSAhPT0gLTEpIHtcbiAgICAgIHRoaXMucXVldWVNZXNzYWdlLnNwbGljZShpbmRleFJlbW92ZSwgMSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1F1ZXVlTWVzc2FnZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5xdWV1ZU1lc3NhZ2UubGVuZ3RoIDwgdGhpcy5NQVhfUVVFVUVfTUVTU0FHRSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBmaXJzdFF1ZXVlID0gdGhpcy5xdWV1ZU1lc3NhZ2Uuc2hpZnQoKSBhcyBJTm90aWZpY2F0aW9uUXVldWU7XG5cbiAgICBjbGVhclRpbWVvdXQoZmlyc3RRdWV1ZS50aW1lb3V0KTtcbiAgICB0aGlzLmR5bmFtaWNTZXJ2aWNlLnJlbW92ZShmaXJzdFF1ZXVlLmNvbXBvbmVudCk7XG4gICAgdGhpcy51cGRhdGVQb3NpdGlvbk1lc3NhZ2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUG9zaXRpb25NZXNzYWdlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5xdWV1ZU1lc3NhZ2UubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRVcGRhdGVQb3NpdGlvbik7XG4gICAgdGhpcy50aW1lb3V0VXBkYXRlUG9zaXRpb24gPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGxldCB0b3BNZXNzYWdlID0gMTI7XG5cbiAgICAgIHRoaXMucXVldWVNZXNzYWdlLmZvckVhY2goKG1lc3NhZ2U6IElOb3RpZmljYXRpb25RdWV1ZSkgPT4ge1xuICAgICAgICBjb25zdCBmaXJzdEVsID0gbWVzc2FnZS5jb21wb25lbnQuaW5zdGFuY2UuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZpcnN0RWxlbWVudENoaWxkO1xuICAgICAgICBjb25zdCByZWN0ID0gZmlyc3RFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICBmaXJzdEVsLnN0eWxlLnRvcCA9IGAke3RvcE1lc3NhZ2V9cHhgO1xuICAgICAgICB0b3BNZXNzYWdlICs9IHJlY3QuaGVpZ2h0ICsgMTI7XG4gICAgICAgIGxldCByaWdodCA9IG1lc3NhZ2UuY29uZmlnLnBvc2l0aW9uUmlnaHQgPz8gMTI7XG5cbiAgICAgICAgaWYgKGlzRW1iZWRGcmFtZSgpKSB7XG4gICAgICAgICAgcmlnaHQgPSA0MDtcbiAgICAgICAgfVxuICAgICAgICBmaXJzdEVsLnN0eWxlLnJpZ2h0ID0gYCR7cmlnaHR9cHhgO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL3NlcnZpY2VzL25vdGlmaWNhdGlvbi9zcmMvbm90aWZpY2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBT3BFLE1BQU0sT0FBTyx5QkFBeUI7SUFDcEMsY0FBYztJQUNOLHNCQUFzQixHQUFHLE1BQU0sQ0FBeUIsU0FBUyxDQUFDLENBQUM7SUFDbkUsWUFBWSxHQUFHLE1BQU0sQ0FBNEIsSUFBSSxLQUFLLEVBQXNCLENBQUMsQ0FBQztJQUNsRixxQkFBcUIsR0FBRyxNQUFNLENBQVMsQ0FBQyxDQUFDLENBQUM7SUFDakMsaUJBQWlCLEdBQVcsQ0FBQyxDQUFDO0lBQ3ZDLE1BQU0sR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7SUFFeEMsWUFBWTtJQUNKLGNBQWMsR0FBRyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUN2RCxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUVwRDtRQUNFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENB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RyxHQUFHLEtBQUssSUFBSSxDQUFDO1lBQ3JDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7d0dBdE1VLHlCQUF5Qjs0R0FBekIseUJBQXlCLGNBSHhCLE1BQU07OzRGQUdQLHlCQUF5QjtrQkFKckMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRSZWYsIEluamVjdGFibGUsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMaWJzVWlEeW5hbWljQ29tcG9uZW50U2VydmljZSB9IGZyb20gJ0BsaWJzLXVpL3NlcnZpY2VzLWR5bmFtaWMtY29tcG9uZW50JztcbmltcG9ydCB7IFV0aWxzQ29tbXVuaWNhdGVNaWNybywgZW5jcnlwdCwgZXNjYXBlSHRtbCwgZ2V0LCBpc0VtYmVkRnJhbWUgfSBmcm9tICdAbGlicy11aS91dGlscyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMaWJVaVNlcnZpY2VzQ29tcG9uZW50c1RleHRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgSU5vdGlmaWNhdGlvblB1c2hGcm9tSUZyYW1lLCBJTm90aWZpY2F0aW9uUXVldWUsIElOb3RpZmljYXRpb25UZXh0Q29uZmlnLCBJTm90aWZpY2F0aW9uVGV4dFB1YmxpY0NvbmZpZyB9IGZyb20gJy4vaW50ZXJmYWNlcy9ub3RpZmljYXRpb24nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcblxuZXhwb3J0IGNsYXNzIExpYnNVaU5vdGlmaWNhdGlvblNlcnZpY2Uge1xuICAvKiBQUk9QRVJUWSAqL1xuICBwcml2YXRlIG5vdGlmaWNhdGlvblBlcm1pc3Npb24gPSBzaWduYWw8Tm90aWZpY2F0aW9uUGVybWlzc2lvbj4oJ2RlZmF1bHQnKTtcbiAgcHJpdmF0ZSBxdWV1ZU1lc3NhZ2UgPSBzaWduYWw8QXJyYXk8SU5vdGlmaWNhdGlvblF1ZXVlPj4obmV3IEFycmF5PElOb3RpZmljYXRpb25RdWV1ZT4oKSk7XG4gIHByaXZhdGUgdGltZW91dFVwZGF0ZVBvc2l0aW9uID0gc2lnbmFsPG51bWJlcj4oMCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgTUFYX1FVRVVFX01FU1NBR0U6IG51bWJlciA9IDU7XG4gIHByaXZhdGUgaXNJbml0ID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcblxuICAvKiBJTkpFQ1QgKi9cbiAgcHJpdmF0ZSBkeW5hbWljU2VydmljZSA9IGluamVjdChMaWJzVWlEeW5hbWljQ29tcG9uZW50U2VydmljZSk7XG4gIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLm5vdGlmaWNhdGlvblBlcm1pc3Npb24uc2V0KHRoaXMuc3lzdGVtU3VwcG9ydE5vdGlmaWNhdGlvbigpID8gJ2RlZmF1bHQnIDogJ2RlbmllZCcpO1xuICB9XG5cbiAgLyogRlVOQ1RJT05TICovXG4gIHB1YmxpYyBpbml0KG1lc3NhZ2VOYW1lSGFuZGxlcjogQXJyYXk8c3RyaW5nPikge1xuICAgIGlmICh0aGlzLmlzSW5pdCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaXNJbml0LnNldCh0cnVlKTtcbiAgICBVdGlsc0NvbW11bmljYXRlTWljcm8uR2V0TWVzc2FnZShtZXNzYWdlTmFtZUhhbmRsZXIpLnN1YnNjcmliZShlID0+IHtcbiAgICAgIGlmIChpc0VtYmVkRnJhbWUoKSkge1xuICAgICAgICBjb25zdCBkYXRhTWVzc2FnZSA9IGUuZGF0YS5yZXNwb25zZSBhcyBJTm90aWZpY2F0aW9uUHVzaEZyb21JRnJhbWU7XG5cbiAgICAgICAgdGhpcy5zaG93Q29tcFR5cGVUZXh0KGRhdGFNZXNzYWdlLm1lc3NhZ2UsIHVuZGVmaW5lZCwgZGF0YU1lc3NhZ2UudGl0bGUsIHsgdHlwZTogZGF0YU1lc3NhZ2UuZnVuY3Rpb25OYW1lLCB0aW1lUmVtb3ZlOiBkYXRhTWVzc2FnZS50aW1lUmVtb3ZlIHx8IDIwMDAgfSk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgVXRpbHNDb21tdW5pY2F0ZU1pY3JvLlBvc3RNZXNzYWdlVG9QYXJlbnQoZS5kYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgVHJhbnNsYXRlU2VydmljZSgpIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlO1xuICB9XG5cbiAgcHJpdmF0ZSBzeXN0ZW1TdXBwb3J0Tm90aWZpY2F0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAnTm90aWZpY2F0aW9uJyBpbiB3aW5kb3c7XG4gIH1cblxuICBwdWJsaWMgc3lzdGVtUmVxdWVzdFBlcm1pc3Npb24oKSB7XG4gICAgaWYgKCF0aGlzLnN5c3RlbVN1cHBvcnROb3RpZmljYXRpb24oKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigocGVybWlzc2lvbjogTm90aWZpY2F0aW9uUGVybWlzc2lvbikgPT4gdGhpcy5QZXJtaXNzaW9uID0gcGVybWlzc2lvbik7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIFR5cGVFcnJvcikge1xuICAgICAgICBOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKHBlcm1pc3Npb246IE5vdGlmaWNhdGlvblBlcm1pc3Npb24pID0+IHRoaXMuUGVybWlzc2lvbiA9IHBlcm1pc3Npb24pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0IFBlcm1pc3Npb24ocGVybWlzc2lvbjogTm90aWZpY2F0aW9uUGVybWlzc2lvbikge1xuICAgIHRoaXMubm90aWZpY2F0aW9uUGVybWlzc2lvbi5zZXQocGVybWlzc2lvbik7XG4gIH1cblxuICBwdWJsaWMgc3lzdGVtU3Bhd25Ob3RpZmljYXRpb24odGl0bGU6IHN0cmluZywgb3B0aW9ucz86IE5vdGlmaWNhdGlvbk9wdGlvbnMpOiBPYnNlcnZhYmxlPHVua25vd24+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKG9icykgPT4ge1xuICAgICAgaWYgKCF0aGlzLnN5c3RlbVN1cHBvcnROb3RpZmljYXRpb24oKSkge1xuICAgICAgICBvYnMuY29tcGxldGUoKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLm5vdGlmaWNhdGlvblBlcm1pc3Npb24oKSAhPT0gJ2dyYW50ZWQnKSB7XG4gICAgICAgIG9icy5jb21wbGV0ZSgpO1xuICAgICAgfVxuICAgICAgY29uc3Qgbm90aWZ5ID0gbmV3IE5vdGlmaWNhdGlvbih0aXRsZSwgb3B0aW9ucyk7XG5cbiAgICAgIG5vdGlmeS5vbnNob3cgPSAoZSkgPT4ge1xuICAgICAgICByZXR1cm4gb2JzLm5leHQoe1xuICAgICAgICAgIG5vdGlmaWNhdGlvbjogbm90aWZ5LFxuICAgICAgICAgIGV2ZW50OiBlXG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICAgIG5vdGlmeS5vbmNsaWNrID0gKGUpID0+IHtcbiAgICAgICAgbm90aWZ5LmNsb3NlKCk7XG4gICAgICAgIHdpbmRvdy5mb2N1cygpO1xuXG4gICAgICAgIHJldHVybiBvYnMubmV4dCh7XG4gICAgICAgICAgbm90aWZpY2F0aW9uOiBub3RpZnksXG4gICAgICAgICAgZXZlbnQ6IGVcbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgICAgbm90aWZ5Lm9uZXJyb3IgPSAoZSkgPT4ge1xuICAgICAgICByZXR1cm4gb2JzLmVycm9yKHtcbiAgICAgICAgICBub3RpZmljYXRpb246IG5vdGlmeSxcbiAgICAgICAgICBldmVudDogZVxuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgICBub3RpZnkub25jbG9zZSA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIG9icy5jb21wbGV0ZSgpO1xuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93Q29tcFR5cGVUZXh0U3VjY2VzcyhtZXNzYWdlOiBzdHJpbmcsIGNvbmZpZz86IElOb3RpZmljYXRpb25UZXh0UHVibGljQ29uZmlnKSB7XG4gICAgdGhpcy5zaG93Q29tcFR5cGVUZXh0KG1lc3NhZ2UsIGNvbmZpZz8uaW50ZXJwb2xhdGVQYXJhbXMsIGNvbmZpZz8udGl0bGUsIHsgdHlwZTogJ3N1Y2Nlc3MnLCB0aW1lUmVtb3ZlOiBjb25maWc/LnRpbWVSZW1vdmUgfHwgMzAwMCwgcG9zaXRpb25SaWdodDogY29uZmlnPy5wb3NpdGlvblJpZ2h0LCBldmVudE5hbWU6IGNvbmZpZz8uZXZlbnROYW1lLCBjYWxsYmFjazogY29uZmlnPy5jYWxsYmFjayB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93Q29tcFR5cGVUZXh0RXJyb3IobWVzc2FnZTogc3RyaW5nLCBjb25maWc/OiBJTm90aWZpY2F0aW9uVGV4dFB1YmxpY0NvbmZpZykge1xuICAgIHRoaXMuc2hvd0NvbXBUeXBlVGV4dChtZXNzYWdlLCBjb25maWc/LmludGVycG9sYXRlUGFyYW1zLCBjb25maWc/LnRpdGxlLCB7IHR5cGU6ICdlcnJvcicsIHRpbWVSZW1vdmU6IGNvbmZpZz8udGltZVJlbW92ZSB8fCAzMDAwLCBwb3NpdGlvblJpZ2h0OiBjb25maWc/LnBvc2l0aW9uUmlnaHQsIGV2ZW50TmFtZTogY29uZmlnPy5ldmVudE5hbWUsIGNhbGxiYWNrOiBjb25maWc/LmNhbGxiYWNrIH0pO1xuICB9XG5cbiAgcHVibGljIHNob3dDb21wVHlwZVRleHRJbmZvKG1lc3NhZ2U6IHN0cmluZywgY29uZmlnPzogSU5vdGlmaWNhdGlvblRleHRQdWJsaWNDb25maWcpIHtcbiAgICB0aGlzLnNob3dDb21wVHlwZVRleHQobWVzc2FnZSwgY29uZmlnPy5pbnRlcnBvbGF0ZVBhcmFtcywgY29uZmlnPy50aXRsZSwgeyB0eXBlOiAnaW5mbycsIHRpbWVSZW1vdmU6IGNvbmZpZz8udGltZVJlbW92ZSB8fCAzMDAwLCBwb3NpdGlvblJpZ2h0OiBjb25maWc/LnBvc2l0aW9uUmlnaHQsIGV2ZW50TmFtZTogY29uZmlnPy5ldmVudE5hbWUsIGNhbGxiYWNrOiBjb25maWc/LmNhbGxiYWNrIH0pO1xuICB9XG5cbiAgcHVibGljIHNob3dDb21wVHlwZVRleHRXYXJuaW5nKG1lc3NhZ2U6IHN0cmluZywgY29uZmlnPzogSU5vdGlmaWNhdGlvblRleHRQdWJsaWNDb25maWcpIHtcbiAgICB0aGlzLnNob3dDb21wVHlwZVRleHQobWVzc2FnZSwgY29uZmlnPy5pbnRlcnBvbGF0ZVBhcmFtcywgY29uZmlnPy50aXRsZSwgeyB0eXBlOiAnd2FybicsIHRpbWVSZW1vdmU6IGNvbmZpZz8udGltZVJlbW92ZSB8fCAzMDAwLCBwb3NpdGlvblJpZ2h0OiBjb25maWc/LnBvc2l0aW9uUmlnaHQsIGV2ZW50TmFtZTogY29uZmlnPy5ldmVudE5hbWUsIGNhbGxiYWNrOiBjb25maWc/LmNhbGxiYWNrIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG93Q29tcFR5cGVUZXh0KG1lc3NhZ2U6IHN0cmluZywgaW50ZXJwb2xhdGVQYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiwgdGl0bGU/OiBzdHJpbmcsIGNvbmZpZzogSU5vdGlmaWNhdGlvblRleHRDb25maWcgPSB7IHR5cGU6ICdzdWNjZXNzJywgdGltZVJlbW92ZTogMjAwMCB9KTogdm9pZCB7XG4gICAgaWYgKCFtZXNzYWdlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jaGVja1F1ZXVlTWVzc2FnZSgpO1xuICAgIGlmIChpbnRlcnBvbGF0ZVBhcmFtcyAmJiB0eXBlb2YgaW50ZXJwb2xhdGVQYXJhbXMgPT09ICdvYmplY3QnKSB7XG4gICAgICBPYmplY3Qua2V5cyhpbnRlcnBvbGF0ZVBhcmFtcykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgIGludGVycG9sYXRlUGFyYW1zW2tleV0gPSBlc2NhcGVIdG1sKGdldChpbnRlcnBvbGF0ZVBhcmFtcywga2V5KSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoaXNFbWJlZEZyYW1lKCkpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2VUcmFuc2xhdGUgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChtZXNzYWdlLCBpbnRlcnBvbGF0ZVBhcmFtcykgYXMgc3RyaW5nO1xuXG4gICAgICByZXR1cm4gVXRpbHNDb21tdW5pY2F0ZU1pY3JvLlBvc3RNZXNzYWdlVG9QYXJlbnQoeyB0eXBlOiAnTUlDUk9fU0lURV9QVVNIX01FU1NBR0VfRlJPTV9DSElMRCcsIHJlc3BvbnNlOiBlbmNyeXB0KEpTT04uc3RyaW5naWZ5KHsgZnVuY3Rpb25OYW1lOiBjb25maWcudHlwZSwgbWVzc2FnZTogbWVzc2FnZVRyYW5zbGF0ZSwgdGl0bGUsIHRpbWVSZW1vdmU6IGNvbmZpZy50aW1lUmVtb3ZlIHx8IDIwMDAgfSkpIH0pO1xuICAgIH1cbiAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLmR5bmFtaWNTZXJ2aWNlLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KExpYlVpU2VydmljZXNDb21wb25lbnRzVGV4dENvbXBvbmVudCk7XG5cbiAgICBjb21wb25lbnQuc2V0SW5wdXQoJ3RpdGxlJywgdGl0bGUpO1xuICAgIGNvbXBvbmVudC5zZXRJbnB1dCgnbWVzc2FnZScsIG1lc3NhZ2UpO1xuICAgIGNvbXBvbmVudC5zZXRJbnB1dCgnaW50ZXJwb2xhdGVQYXJhbXMnLCBpbnRlcnBvbGF0ZVBhcmFtcyk7XG4gICAgY29tcG9uZW50LnNldElucHV0KCdjb25maWcnLCBjb25maWcpO1xuICAgIGNvbXBvbmVudC5zZXRJbnB1dCgncmVtb3ZlQ29tcG9uZW50JywgdGhpcy5yZW1vdmVDb21wb25lbnQuYmluZCh0aGlzLCBjb21wb25lbnQpKTtcbiAgICBjb25zdCB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnJlbW92ZUNvbXBvbmVudChjb21wb25lbnQpO1xuICAgIH0sIGNvbmZpZz8udGltZVJlbW92ZSk7XG5cbiAgICB0aGlzLnF1ZXVlTWVzc2FnZS51cGRhdGUocXVldWUgPT4ge1xuICAgICAgcXVldWUucHVzaCh7XG4gICAgICAgIGNvbXBvbmVudCxcbiAgICAgICAgY29uZmlnLFxuICAgICAgICB0aW1lb3V0XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIFsuLi5xdWV1ZV07XG4gICAgfSk7XG4gICAgdGhpcy5keW5hbWljU2VydmljZS5hZGRUb0JvZHkoY29tcG9uZW50KTtcbiAgICB0aGlzLnVwZGF0ZVBvc2l0aW9uTWVzc2FnZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVDb21wb25lbnQoY29tcG9uZW50OiBDb21wb25lbnRSZWY8dW5rbm93bj4pIHtcbiAgICB0aGlzLmR5bmFtaWNTZXJ2aWNlLnJlbW92ZShjb21wb25lbnQpO1xuICAgIGNvbnN0IGluZGV4UmVtb3ZlID0gdGhpcy5xdWV1ZU1lc3NhZ2UoKS5maW5kSW5kZXgoY29uZmlnID0+IGNvbmZpZy5jb21wb25lbnQgPT09IGNvbXBvbmVudCk7XG5cbiAgICBpZiAoaW5kZXhSZW1vdmUgIT09IC0xKSB7XG4gICAgICB0aGlzLnF1ZXVlTWVzc2FnZS51cGRhdGUocXVldWUgPT4ge1xuICAgICAgICBxdWV1ZS5zcGxpY2UoaW5kZXhSZW1vdmUsIDEpO1xuICAgICAgICByZXR1cm4gWy4uLnF1ZXVlXTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tRdWV1ZU1lc3NhZ2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucXVldWVNZXNzYWdlLmxlbmd0aCA8IHRoaXMuTUFYX1FVRVVFX01FU1NBR0UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZmlyc3RRdWV1ZSA9IHRoaXMucXVldWVNZXNzYWdlKCkuc2hpZnQoKSBhcyBJTm90aWZpY2F0aW9uUXVldWU7XG5cbiAgICBjbGVhclRpbWVvdXQoZmlyc3RRdWV1ZS50aW1lb3V0KTtcbiAgICB0aGlzLmR5bmFtaWNTZXJ2aWNlLnJlbW92ZShmaXJzdFF1ZXVlLmNvbXBvbmVudCk7XG4gICAgdGhpcy51cGRhdGVQb3NpdGlvbk1lc3NhZ2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUG9zaXRpb25NZXNzYWdlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5xdWV1ZU1lc3NhZ2UoKS5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dFVwZGF0ZVBvc2l0aW9uKCkpO1xuICAgIHRoaXMudGltZW91dFVwZGF0ZVBvc2l0aW9uLnNldChzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGxldCB0b3BNZXNzYWdlID0gMTI7XG5cbiAgICAgIHRoaXMucXVldWVNZXNzYWdlKCkuZm9yRWFjaCgobWVzc2FnZTogSU5vdGlmaWNhdGlvblF1ZXVlKSA9PiB7XG4gICAgICAgIGNvbnN0IGZpcnN0RWwgPSBtZXNzYWdlLmNvbXBvbmVudC5pbnN0YW5jZS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQ7XG4gICAgICAgIGNvbnN0IHJlY3QgPSBmaXJzdEVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgIGZpcnN0RWwuc3R5bGUudG9wID0gYCR7dG9wTWVzc2FnZX1weGA7XG4gICAgICAgIHRvcE1lc3NhZ2UgKz0gcmVjdC5oZWlnaHQgKyAxMjtcbiAgICAgICAgbGV0IHJpZ2h0ID0gbWVzc2FnZS5jb25maWcucG9zaXRpb25SaWdodCA/PyAxMjtcblxuICAgICAgICBpZiAoaXNFbWJlZEZyYW1lKCkpIHtcbiAgICAgICAgICByaWdodCA9IDQwO1xuICAgICAgICB9XG4gICAgICAgIGZpcnN0RWwuc3R5bGUucmlnaHQgPSBgJHtyaWdodH1weGA7XG4gICAgICB9KTtcbiAgICB9KSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,97 +1,104 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, inject, ElementRef, Component, ChangeDetectionStrategy, Injectable } from '@angular/core';
2
+ import { input, Directive, signal, inject, ElementRef, Component, ChangeDetectionStrategy, Injectable } from '@angular/core';
3
3
  import { LibsUiDynamicComponentService } from '@libs-ui/services-dynamic-component';
4
- import { UtilsCommunicateMicro, isEmbedFrame, escapeHtml, encrypt } from '@libs-ui/utils';
4
+ import { UtilsCommunicateMicro, isEmbedFrame, escapeHtml, get, encrypt } from '@libs-ui/utils';
5
5
  import * as i1 from '@ngx-translate/core';
6
6
  import { TranslateModule, TranslateService } from '@ngx-translate/core';
7
7
  import { Subject, fromEvent, Observable } from 'rxjs';
8
8
  import { takeUntil, take } from 'rxjs/operators';
9
9
 
10
10
  class LibUiServiceNotificationBaseComponent {
11
- message;
12
- interpolateParams;
13
- title;
14
- config;
15
- removeComponent;
11
+ /* PROPERTY */
16
12
  onDestroy = new Subject();
13
+ /* INPUT */
14
+ message = input('');
15
+ interpolateParams = input();
16
+ title = input('');
17
+ config = input({ type: 'success', timeRemove: 2000 });
18
+ removeComponent = input.required();
17
19
  ngOnDestroy() {
18
20
  this.onDestroy.next();
19
21
  this.onDestroy.complete();
20
22
  }
21
23
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibUiServiceNotificationBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
22
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: LibUiServiceNotificationBaseComponent, ngImport: i0 });
24
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: LibUiServiceNotificationBaseComponent, inputs: { message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, interpolateParams: { classPropertyName: "interpolateParams", publicName: "interpolateParams", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, removeComponent: { classPropertyName: "removeComponent", publicName: "removeComponent", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 });
23
25
  }
24
26
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibUiServiceNotificationBaseComponent, decorators: [{
25
27
  type: Directive
26
28
  }] });
27
29
 
28
30
  class LibUiServicesComponentsTextComponent extends LibUiServiceNotificationBaseComponent {
29
- containerClass;
30
- icon;
31
+ /* PROPERTY */
32
+ containerClass = signal('');
33
+ icon = signal('');
34
+ /* INJECT */
31
35
  elementRef = inject(ElementRef);
32
36
  constructor() {
33
37
  super();
34
38
  }
35
39
  ngOnInit() {
36
- switch (this.config?.type) {
40
+ switch (this.config().type) {
37
41
  case 'success':
38
- this.containerClass = 'libs-ui-toast_success';
39
- this.icon = 'libs-ui-icon-check-circle-solid';
42
+ this.containerClass.set('libs-ui-toast_success');
43
+ this.icon.set('libs-ui-icon-check-circle-solid');
40
44
  break;
41
45
  case 'info':
42
- this.containerClass = 'libs-ui-toast_info';
43
- this.icon = 'libs-ui-icon-tooltip-solid';
46
+ this.containerClass.set('libs-ui-toast_info');
47
+ this.icon.set('libs-ui-icon-tooltip-solid');
44
48
  break;
45
49
  case 'error':
46
- this.containerClass = 'libs-ui-toast_error';
47
- this.icon = 'libs-ui-icon-close-circle-solid';
50
+ this.containerClass.set('libs-ui-toast_error');
51
+ this.icon.set('libs-ui-icon-close-circle-solid');
48
52
  break;
49
53
  case 'warn':
50
- this.containerClass = 'libs-ui-toast_warning';
51
- this.icon = 'libs-ui-icon-alert-triangle-solid';
54
+ this.containerClass.set('libs-ui-toast_warning');
55
+ this.icon.set('libs-ui-icon-alert-triangle-solid');
52
56
  break;
53
57
  default:
54
- this.containerClass = 'bg-[#6fd100] libs-ui-toast_success';
55
- this.icon = 'mo-icn-toast_success';
58
+ this.containerClass.set('bg-[#6fd100] libs-ui-toast_success');
59
+ this.icon.set('mo-icn-toast_success');
56
60
  }
57
- const { eventName, callback } = this.config;
61
+ const { eventName, callback } = this.config();
58
62
  if (!eventName || !callback) {
59
63
  return;
60
64
  }
61
65
  if (eventName === 'click') {
62
- this.containerClass = `${this.containerClass} cursor-pointer`;
66
+ this.containerClass.update(value => `${value} cursor-pointer`);
63
67
  }
64
68
  fromEvent(this.elementRef.nativeElement, eventName).pipe(takeUntil(this.onDestroy), take(1)).subscribe(callback);
65
69
  }
70
+ /* FUNCTIONS */
66
71
  handlerClickClose(e) {
67
72
  e.stopPropagation();
68
- this.removeComponent();
73
+ this.removeComponent()(e);
69
74
  }
70
75
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibUiServicesComponentsTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
71
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibUiServicesComponentsTextComponent, isStandalone: true, selector: "libs_ui-services-notification-components-text", usesInheritance: true, ngImport: i0, template: "<div class=\"libs-ui-toast\"\n [class]=\"containerClass\"\n [style.zIndex]=\"config.zIndex || 2000\">\n <div class=\"flex items-center\">\n <i class=\"{{icon}}\"></i>\n </div>\n <div class=\"flex flex-col w-full\">\n @if (title) {\n <div class=\"libs-ui-font-h5m text-break\"\n [innerHtml]=\"title | translate \">\n </div>\n }\n @if (message) {\n <div class=\"text-break\"\n [class.libs-ui-font-h5r]=\"!title\"\n [class.libs-ui-font-h7r]=\"title\"\n [class.mt-[4ppx]]=\"title\"\n [innerHtml]=\"message | translate: (interpolateParams || {})\">\n </div>\n }\n </div>\n <div class=\"flex items-center\">\n <i class=\"libs-ui-icon-close mr-0 ml-[8px] cursor-pointer\"\n (click)=\"handlerClickClose($event)\">\n </i>\n </div>\n</div>", styles: ["@-webkit-keyframes animation-move{0%{right:-200px;opacity:0}to{right:12px;opacity:1}}@keyframes animation-move{0%{right:-200px;opacity:0}to{right:12px;opacity:1}}.libs-ui-toast{position:fixed;padding:12px 16px;display:flex;width:300px;flex-shrink:0;border-radius:8px;animation:animation-move .3s linear}.libs-ui-toast [class*=libs-ui-icon]{font-size:16px;margin-right:16px}.libs-ui-toast.libs-ui-toast_success{background-color:#e6faf0;color:#00bc62}.libs-ui-toast.libs-ui-toast_success [class*=libs-ui-icon]:before{color:#00bc62}.libs-ui-toast.libs-ui-toast_warning{background-color:#feeee6;color:#f05800}.libs-ui-toast.libs-ui-toast_warning [class*=libs-ui-icon]:before{color:#f05800}.libs-ui-toast.libs-ui-toast_error{background-color:#fdeaec;color:#ee2d41}.libs-ui-toast.libs-ui-toast_error [class*=libs-ui-icon]:before{color:#ee2d41}.libs-ui-toast.libs-ui-toast_info{background-color:#e9f1fe;color:#226ff5}.libs-ui-toast.libs-ui-toast_info [class*=libs-ui-icon]:before{color:#226ff5}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
76
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibUiServicesComponentsTextComponent, isStandalone: true, selector: "libs_ui-services-notification-components-text", usesInheritance: true, ngImport: i0, template: "<div class=\"libs-ui-toast\"\n [class]=\"containerClass()\"\n [style.zIndex]=\"config().zIndex || 2000\">\n <div class=\"flex items-center\">\n <i class=\"{{ icon() }}\"></i>\n </div>\n <div class=\"flex flex-col w-full\">\n @if (title()) {\n <div class=\"libs-ui-font-h5m text-break\"\n [innerHtml]=\"title() | translate \">\n </div>\n }\n @if (message()) {\n <div class=\"text-break\"\n [class.libs-ui-font-h5r]=\"!title()\"\n [class.libs-ui-font-h7r]=\"title()\"\n [class.mt-[4ppx]]=\"title()\"\n [innerHtml]=\"message() | translate: (interpolateParams() || {})\">\n </div>\n }\n </div>\n <div class=\"flex items-center\">\n <i class=\"libs-ui-icon-close mr-0 ml-[8px] cursor-pointer\"\n (click)=\"handlerClickClose($event)\">\n </i>\n </div>\n</div>\n", styles: ["@-webkit-keyframes animation-move{0%{right:-200px;opacity:0}to{right:12px;opacity:1}}@keyframes animation-move{0%{right:-200px;opacity:0}to{right:12px;opacity:1}}.libs-ui-toast{position:fixed;padding:12px 16px;display:flex;width:300px;flex-shrink:0;border-radius:8px;animation:animation-move .3s linear}.libs-ui-toast [class*=libs-ui-icon]{font-size:16px;margin-right:16px}.libs-ui-toast.libs-ui-toast_success{background-color:#e6faf0;color:#00bc62}.libs-ui-toast.libs-ui-toast_success [class*=libs-ui-icon]:before{color:#00bc62}.libs-ui-toast.libs-ui-toast_warning{background-color:#feeee6;color:#f05800}.libs-ui-toast.libs-ui-toast_warning [class*=libs-ui-icon]:before{color:#f05800}.libs-ui-toast.libs-ui-toast_error{background-color:#fdeaec;color:#ee2d41}.libs-ui-toast.libs-ui-toast_error [class*=libs-ui-icon]:before{color:#ee2d41}.libs-ui-toast.libs-ui-toast_info{background-color:#e9f1fe;color:#226ff5}.libs-ui-toast.libs-ui-toast_info [class*=libs-ui-icon]:before{color:#226ff5}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
72
77
  }
73
78
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibUiServicesComponentsTextComponent, decorators: [{
74
79
  type: Component,
75
- args: [{ selector: 'libs_ui-services-notification-components-text', standalone: true, imports: [TranslateModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"libs-ui-toast\"\n [class]=\"containerClass\"\n [style.zIndex]=\"config.zIndex || 2000\">\n <div class=\"flex items-center\">\n <i class=\"{{icon}}\"></i>\n </div>\n <div class=\"flex flex-col w-full\">\n @if (title) {\n <div class=\"libs-ui-font-h5m text-break\"\n [innerHtml]=\"title | translate \">\n </div>\n }\n @if (message) {\n <div class=\"text-break\"\n [class.libs-ui-font-h5r]=\"!title\"\n [class.libs-ui-font-h7r]=\"title\"\n [class.mt-[4ppx]]=\"title\"\n [innerHtml]=\"message | translate: (interpolateParams || {})\">\n </div>\n }\n </div>\n <div class=\"flex items-center\">\n <i class=\"libs-ui-icon-close mr-0 ml-[8px] cursor-pointer\"\n (click)=\"handlerClickClose($event)\">\n </i>\n </div>\n</div>", styles: ["@-webkit-keyframes animation-move{0%{right:-200px;opacity:0}to{right:12px;opacity:1}}@keyframes animation-move{0%{right:-200px;opacity:0}to{right:12px;opacity:1}}.libs-ui-toast{position:fixed;padding:12px 16px;display:flex;width:300px;flex-shrink:0;border-radius:8px;animation:animation-move .3s linear}.libs-ui-toast [class*=libs-ui-icon]{font-size:16px;margin-right:16px}.libs-ui-toast.libs-ui-toast_success{background-color:#e6faf0;color:#00bc62}.libs-ui-toast.libs-ui-toast_success [class*=libs-ui-icon]:before{color:#00bc62}.libs-ui-toast.libs-ui-toast_warning{background-color:#feeee6;color:#f05800}.libs-ui-toast.libs-ui-toast_warning [class*=libs-ui-icon]:before{color:#f05800}.libs-ui-toast.libs-ui-toast_error{background-color:#fdeaec;color:#ee2d41}.libs-ui-toast.libs-ui-toast_error [class*=libs-ui-icon]:before{color:#ee2d41}.libs-ui-toast.libs-ui-toast_info{background-color:#e9f1fe;color:#226ff5}.libs-ui-toast.libs-ui-toast_info [class*=libs-ui-icon]:before{color:#226ff5}\n"] }]
80
+ args: [{ selector: 'libs_ui-services-notification-components-text', standalone: true, imports: [TranslateModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"libs-ui-toast\"\n [class]=\"containerClass()\"\n [style.zIndex]=\"config().zIndex || 2000\">\n <div class=\"flex items-center\">\n <i class=\"{{ icon() }}\"></i>\n </div>\n <div class=\"flex flex-col w-full\">\n @if (title()) {\n <div class=\"libs-ui-font-h5m text-break\"\n [innerHtml]=\"title() | translate \">\n </div>\n }\n @if (message()) {\n <div class=\"text-break\"\n [class.libs-ui-font-h5r]=\"!title()\"\n [class.libs-ui-font-h7r]=\"title()\"\n [class.mt-[4ppx]]=\"title()\"\n [innerHtml]=\"message() | translate: (interpolateParams() || {})\">\n </div>\n }\n </div>\n <div class=\"flex items-center\">\n <i class=\"libs-ui-icon-close mr-0 ml-[8px] cursor-pointer\"\n (click)=\"handlerClickClose($event)\">\n </i>\n </div>\n</div>\n", styles: ["@-webkit-keyframes animation-move{0%{right:-200px;opacity:0}to{right:12px;opacity:1}}@keyframes animation-move{0%{right:-200px;opacity:0}to{right:12px;opacity:1}}.libs-ui-toast{position:fixed;padding:12px 16px;display:flex;width:300px;flex-shrink:0;border-radius:8px;animation:animation-move .3s linear}.libs-ui-toast [class*=libs-ui-icon]{font-size:16px;margin-right:16px}.libs-ui-toast.libs-ui-toast_success{background-color:#e6faf0;color:#00bc62}.libs-ui-toast.libs-ui-toast_success [class*=libs-ui-icon]:before{color:#00bc62}.libs-ui-toast.libs-ui-toast_warning{background-color:#feeee6;color:#f05800}.libs-ui-toast.libs-ui-toast_warning [class*=libs-ui-icon]:before{color:#f05800}.libs-ui-toast.libs-ui-toast_error{background-color:#fdeaec;color:#ee2d41}.libs-ui-toast.libs-ui-toast_error [class*=libs-ui-icon]:before{color:#ee2d41}.libs-ui-toast.libs-ui-toast_info{background-color:#e9f1fe;color:#226ff5}.libs-ui-toast.libs-ui-toast_info [class*=libs-ui-icon]:before{color:#226ff5}\n"] }]
76
81
  }], ctorParameters: () => [] });
77
82
 
78
- /* eslint-disable @typescript-eslint/no-explicit-any */
79
83
  class LibsUiNotificationService {
80
- notificationPermission;
81
- queueMessage = [];
82
- timeoutUpdatePosition;
84
+ /* PROPERTY */
85
+ notificationPermission = signal('default');
86
+ queueMessage = signal(new Array());
87
+ timeoutUpdatePosition = signal(0);
83
88
  MAX_QUEUE_MESSAGE = 5;
84
- isInit = false;
89
+ isInit = signal(false);
90
+ /* INJECT */
85
91
  dynamicService = inject(LibsUiDynamicComponentService);
86
92
  translateService = inject(TranslateService);
87
93
  constructor() {
88
- this.notificationPermission = this.systemSupportNotification() ? 'default' : 'denied';
94
+ this.notificationPermission.set(this.systemSupportNotification() ? 'default' : 'denied');
89
95
  }
96
+ /* FUNCTIONS */
90
97
  init(messageNameHandler) {
91
- if (this.isInit) {
98
+ if (this.isInit()) {
92
99
  return;
93
100
  }
94
- this.isInit = true;
101
+ this.isInit.set(true);
95
102
  UtilsCommunicateMicro.GetMessage(messageNameHandler).subscribe(e => {
96
103
  if (isEmbedFrame()) {
97
104
  const dataMessage = e.data.response;
@@ -121,14 +128,14 @@ class LibsUiNotificationService {
121
128
  }
122
129
  }
123
130
  set Permission(permission) {
124
- this.notificationPermission = permission;
131
+ this.notificationPermission.set(permission);
125
132
  }
126
133
  systemSpawnNotification(title, options) {
127
134
  return new Observable((obs) => {
128
135
  if (!this.systemSupportNotification()) {
129
136
  obs.complete();
130
137
  }
131
- if (this.notificationPermission !== 'granted') {
138
+ if (this.notificationPermission() !== 'granted') {
132
139
  obs.complete();
133
140
  }
134
141
  const notify = new Notification(title, options);
@@ -176,7 +183,7 @@ class LibsUiNotificationService {
176
183
  this.checkQueueMessage();
177
184
  if (interpolateParams && typeof interpolateParams === 'object') {
178
185
  Object.keys(interpolateParams).forEach((key) => {
179
- interpolateParams[key] = escapeHtml(interpolateParams[key]);
186
+ interpolateParams[key] = escapeHtml(get(interpolateParams, key));
180
187
  });
181
188
  }
182
189
  if (isEmbedFrame()) {
@@ -184,47 +191,52 @@ class LibsUiNotificationService {
184
191
  return UtilsCommunicateMicro.PostMessageToParent({ type: 'MICRO_SITE_PUSH_MESSAGE_FROM_CHILD', response: encrypt(JSON.stringify({ functionName: config.type, message: messageTranslate, title, timeRemove: config.timeRemove || 2000 })) });
185
192
  }
186
193
  const component = this.dynamicService.resolveComponentFactory(LibUiServicesComponentsTextComponent);
187
- const instance = component.instance;
188
- instance.title = title;
189
- instance.message = message;
190
- instance.interpolateParams = interpolateParams;
191
- instance.config = config;
192
- instance.removeComponent = () => this.removeComponent(component);
194
+ component.setInput('title', title);
195
+ component.setInput('message', message);
196
+ component.setInput('interpolateParams', interpolateParams);
197
+ component.setInput('config', config);
198
+ component.setInput('removeComponent', this.removeComponent.bind(this, component));
193
199
  const timeout = setTimeout(() => {
194
200
  this.removeComponent(component);
195
201
  }, config?.timeRemove);
196
- this.queueMessage.push({
197
- component,
198
- config,
199
- timeout
202
+ this.queueMessage.update(queue => {
203
+ queue.push({
204
+ component,
205
+ config,
206
+ timeout
207
+ });
208
+ return [...queue];
200
209
  });
201
210
  this.dynamicService.addToBody(component);
202
211
  this.updatePositionMessage();
203
212
  }
204
213
  removeComponent(component) {
205
214
  this.dynamicService.remove(component);
206
- const indexRemove = this.queueMessage.findIndex(config => config.component === component);
215
+ const indexRemove = this.queueMessage().findIndex(config => config.component === component);
207
216
  if (indexRemove !== -1) {
208
- this.queueMessage.splice(indexRemove, 1);
217
+ this.queueMessage.update(queue => {
218
+ queue.splice(indexRemove, 1);
219
+ return [...queue];
220
+ });
209
221
  }
210
222
  }
211
223
  checkQueueMessage() {
212
224
  if (this.queueMessage.length < this.MAX_QUEUE_MESSAGE) {
213
225
  return;
214
226
  }
215
- const firstQueue = this.queueMessage.shift();
227
+ const firstQueue = this.queueMessage().shift();
216
228
  clearTimeout(firstQueue.timeout);
217
229
  this.dynamicService.remove(firstQueue.component);
218
230
  this.updatePositionMessage();
219
231
  }
220
232
  updatePositionMessage() {
221
- if (!this.queueMessage.length) {
233
+ if (!this.queueMessage().length) {
222
234
  return;
223
235
  }
224
- clearTimeout(this.timeoutUpdatePosition);
225
- this.timeoutUpdatePosition = setTimeout(() => {
236
+ clearTimeout(this.timeoutUpdatePosition());
237
+ this.timeoutUpdatePosition.set(setTimeout(() => {
226
238
  let topMessage = 12;
227
- this.queueMessage.forEach((message) => {
239
+ this.queueMessage().forEach((message) => {
228
240
  const firstEl = message.component.instance.elementRef.nativeElement.firstElementChild;
229
241
  const rect = firstEl.getBoundingClientRect();
230
242
  firstEl.style.top = `${topMessage}px`;
@@ -235,7 +247,7 @@ class LibsUiNotificationService {
235
247
  }
236
248
  firstEl.style.right = `${right}px`;
237
249
  });
238
- });
250
+ }));
239
251
  }
240
252
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiNotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
241
253
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiNotificationService, providedIn: 'root' });
@@ -1 +1 @@
1
- {"version":3,"file":"libs-ui-services-notification.mjs","sources":["../../../../../libs-ui/services/notification/src/components/base.component.ts","../../../../../libs-ui/services/notification/src/components/text/text.component.ts","../../../../../libs-ui/services/notification/src/components/text/text.component.html","../../../../../libs-ui/services/notification/src/notification.service.ts","../../../../../libs-ui/services/notification/src/libs-ui-services-notification.ts"],"sourcesContent":["import { Subject } from 'rxjs';\nimport { INotificationTextConfig } from '../interfaces/notification';\nimport { Directive, OnDestroy } from '@angular/core';\n@Directive()\nexport class LibUiServiceNotificationBaseComponent implements OnDestroy {\n protected message!: string;\n protected interpolateParams!: Record<string, unknown>;\n protected title!: string;\n protected config!: INotificationTextConfig;\n protected removeComponent!: () => void;\n protected onDestroy = new Subject<void>();\n\n ngOnDestroy(): void {\n this.onDestroy.next();\n this.onDestroy.complete();\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, OnDestroy, OnInit, inject } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { fromEvent } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\nimport { LibUiServiceNotificationBaseComponent } from '../base.component';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-services-notification-components-text',\n templateUrl: './text.component.html',\n styleUrls: ['./text.component.scss'],\n standalone: true,\n imports: [TranslateModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LibUiServicesComponentsTextComponent extends LibUiServiceNotificationBaseComponent implements OnInit, OnDestroy {\n protected containerClass!: string;\n protected icon!: string;\n\n private elementRef = inject(ElementRef)\n\n constructor() {\n super();\n }\n\n ngOnInit(): void {\n switch (this.config?.type) {\n case 'success':\n this.containerClass = 'libs-ui-toast_success';\n this.icon = 'libs-ui-icon-check-circle-solid';\n break;\n\n case 'info':\n this.containerClass = 'libs-ui-toast_info';\n this.icon = 'libs-ui-icon-tooltip-solid';\n break;\n\n case 'error':\n this.containerClass = 'libs-ui-toast_error';\n this.icon = 'libs-ui-icon-close-circle-solid';\n break;\n\n case 'warn':\n this.containerClass = 'libs-ui-toast_warning';\n this.icon = 'libs-ui-icon-alert-triangle-solid';\n break;\n\n default:\n this.containerClass = 'bg-[#6fd100] libs-ui-toast_success';\n this.icon = 'mo-icn-toast_success';\n }\n const { eventName, callback } = this.config;\n\n if (!eventName || !callback) {\n return;\n }\n if (eventName === 'click') {\n this.containerClass = `${this.containerClass} cursor-pointer`;\n }\n fromEvent(this.elementRef.nativeElement, eventName).pipe(takeUntil(this.onDestroy), take(1)).subscribe(callback);\n }\n\n protected handlerClickClose(e: Event) {\n e.stopPropagation();\n this.removeComponent();\n }\n}\n","<div class=\"libs-ui-toast\"\n [class]=\"containerClass\"\n [style.zIndex]=\"config.zIndex || 2000\">\n <div class=\"flex items-center\">\n <i class=\"{{icon}}\"></i>\n </div>\n <div class=\"flex flex-col w-full\">\n @if (title) {\n <div class=\"libs-ui-font-h5m text-break\"\n [innerHtml]=\"title | translate \">\n </div>\n }\n @if (message) {\n <div class=\"text-break\"\n [class.libs-ui-font-h5r]=\"!title\"\n [class.libs-ui-font-h7r]=\"title\"\n [class.mt-[4ppx]]=\"title\"\n [innerHtml]=\"message | translate: (interpolateParams || {})\">\n </div>\n }\n </div>\n <div class=\"flex items-center\">\n <i class=\"libs-ui-icon-close mr-0 ml-[8px] cursor-pointer\"\n (click)=\"handlerClickClose($event)\">\n </i>\n </div>\n</div>","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ComponentRef, Injectable, inject } from '@angular/core';\nimport { LibsUiDynamicComponentService } from '@libs-ui/services-dynamic-component';\nimport { encrypt, escapeHtml, isEmbedFrame, UtilsCommunicateMicro } from '@libs-ui/utils';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Observable } from 'rxjs';\nimport { LibUiServicesComponentsTextComponent } from './components';\nimport { INotificationPushFromIFrame, INotificationQueue, INotificationTextConfig, INotificationTextPublicConfig } from './interfaces/notification';\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class LibsUiNotificationService {\n private notificationPermission: NotificationPermission;\n private queueMessage: Array<INotificationQueue> = [];\n private timeoutUpdatePosition: any;\n private readonly MAX_QUEUE_MESSAGE: number = 5;\n private isInit = false;\n\n private dynamicService = inject(LibsUiDynamicComponentService);\n private translateService = inject(TranslateService);\n\n constructor() {\n this.notificationPermission = this.systemSupportNotification() ? 'default' : 'denied';\n }\n\n public init(messageNameHandler: Array<string>) {\n if (this.isInit) {\n return;\n }\n this.isInit = true;\n UtilsCommunicateMicro.GetMessage(messageNameHandler).subscribe(e => {\n if (isEmbedFrame()) {\n const dataMessage = e.data.response as INotificationPushFromIFrame;\n\n this.showCompTypeText(dataMessage.message, undefined, dataMessage.title, { type: dataMessage.functionName, timeRemove: dataMessage.timeRemove || 2000 });\n\n return;\n }\n UtilsCommunicateMicro.PostMessageToParent(e.data);\n });\n }\n\n public get TranslateService() {\n return this.translateService;\n }\n\n private systemSupportNotification(): boolean {\n return 'Notification' in window;\n }\n\n public systemRequestPermission() {\n if (!this.systemSupportNotification()) {\n return;\n }\n try {\n Notification.requestPermission().then((permission: NotificationPermission) => this.Permission = permission);\n } catch (error) {\n if (error instanceof TypeError) {\n Notification.requestPermission((permission: NotificationPermission) => this.Permission = permission);\n }\n }\n }\n\n private set Permission(permission: NotificationPermission) {\n this.notificationPermission = permission;\n }\n\n public systemSpawnNotification(title: string, options?: NotificationOptions): any {\n return new Observable((obs: any) => {\n if (!this.systemSupportNotification()) {\n obs.complete();\n }\n if (this.notificationPermission !== 'granted') {\n obs.complete();\n }\n const notify = new Notification(title, options);\n\n notify.onshow = (e) => {\n return obs.next({\n notification: notify,\n event: e\n });\n };\n notify.onclick = (e) => {\n notify.close();\n window.focus();\n\n return obs.next({\n notification: notify,\n event: e\n });\n };\n notify.onerror = (e) => {\n return obs.error({\n notification: notify,\n event: e\n });\n };\n notify.onclose = () => {\n return obs.complete();\n };\n });\n }\n\n public showCompTypeTextSuccess(message: string, config?: INotificationTextPublicConfig) {\n this.showCompTypeText(message, config?.interpolateParams, config?.title, { type: 'success', timeRemove: config?.timeRemove || 3000, positionRight: config?.positionRight, eventName: config?.eventName, callback: config?.callback });\n }\n\n public showCompTypeTextError(message: string, config?: INotificationTextPublicConfig) {\n this.showCompTypeText(message, config?.interpolateParams, config?.title, { type: 'error', timeRemove: config?.timeRemove || 3000, positionRight: config?.positionRight, eventName: config?.eventName, callback: config?.callback });\n }\n\n public showCompTypeTextInfo(message: string, config?: INotificationTextPublicConfig) {\n this.showCompTypeText(message, config?.interpolateParams, config?.title, { type: 'info', timeRemove: config?.timeRemove || 3000, positionRight: config?.positionRight, eventName: config?.eventName, callback: config?.callback });\n }\n\n public showCompTypeTextWarning(message: string, config?: INotificationTextPublicConfig) {\n this.showCompTypeText(message, config?.interpolateParams, config?.title, { type: 'warn', timeRemove: config?.timeRemove || 3000, positionRight: config?.positionRight, eventName: config?.eventName, callback: config?.callback });\n }\n\n private showCompTypeText(message: string, interpolateParams?: Record<string, any>, title?: string, config: INotificationTextConfig = { type: 'success', timeRemove: 2000 }): void {\n if (!message) {\n return;\n }\n\n this.checkQueueMessage();\n if (interpolateParams && typeof interpolateParams === 'object') {\n Object.keys(interpolateParams).forEach((key) => {\n interpolateParams[key] = escapeHtml(interpolateParams[key]);\n });\n }\n\n if (isEmbedFrame()) {\n const messageTranslate = this.translateService.instant(message, interpolateParams) as string;\n\n return UtilsCommunicateMicro.PostMessageToParent({ type: 'MICRO_SITE_PUSH_MESSAGE_FROM_CHILD', response: encrypt(JSON.stringify({ functionName: config.type, message: messageTranslate, title, timeRemove: config.timeRemove || 2000 })) });\n }\n const component = this.dynamicService.resolveComponentFactory(LibUiServicesComponentsTextComponent);\n const instance = component.instance;\n\n instance.title = title;\n instance.message = message;\n instance.interpolateParams = interpolateParams;\n instance.config = config;\n instance.removeComponent = () => this.removeComponent(component);\n const timeout = setTimeout(() => {\n this.removeComponent(component);\n }, config?.timeRemove);\n\n this.queueMessage.push({\n component,\n config,\n timeout\n });\n this.dynamicService.addToBody(component);\n this.updatePositionMessage();\n }\n\n private removeComponent(component: ComponentRef<any>) {\n this.dynamicService.remove(component);\n const indexRemove = this.queueMessage.findIndex(config => config.component === component);\n\n if (indexRemove !== -1) {\n this.queueMessage.splice(indexRemove, 1);\n }\n }\n\n private checkQueueMessage(): void {\n if (this.queueMessage.length < this.MAX_QUEUE_MESSAGE) {\n return;\n }\n const firstQueue = this.queueMessage.shift() as INotificationQueue;\n\n clearTimeout(firstQueue.timeout);\n this.dynamicService.remove(firstQueue.component);\n this.updatePositionMessage();\n }\n\n private updatePositionMessage(): void {\n if (!this.queueMessage.length) {\n return;\n }\n clearTimeout(this.timeoutUpdatePosition);\n this.timeoutUpdatePosition = setTimeout(() => {\n let topMessage = 12;\n\n this.queueMessage.forEach((message: INotificationQueue) => {\n const firstEl = message.component.instance.elementRef.nativeElement.firstElementChild;\n const rect = firstEl.getBoundingClientRect();\n\n firstEl.style.top = `${topMessage}px`;\n topMessage += rect.height + 12;\n let right = message.config.positionRight ?? 12;\n\n if (isEmbedFrame()) {\n right = 40;\n }\n firstEl.style.right = `${right}px`;\n });\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"libs-ui-services-notification.mjs","sources":["../../../../../libs-ui/services/notification/src/components/base.component.ts","../../../../../libs-ui/services/notification/src/components/text/text.component.ts","../../../../../libs-ui/services/notification/src/components/text/text.component.html","../../../../../libs-ui/services/notification/src/notification.service.ts","../../../../../libs-ui/services/notification/src/libs-ui-services-notification.ts"],"sourcesContent":["import { Directive, OnDestroy, input } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { INotificationTextConfig } from '../interfaces/notification';\n@Directive()\nexport class LibUiServiceNotificationBaseComponent implements OnDestroy {\n /* PROPERTY */\n protected onDestroy = new Subject<void>();\n\n /* INPUT */\n readonly message = input<string>('');\n readonly interpolateParams = input<Record<string, unknown>>();\n readonly title = input<string>('');\n readonly config = input<INotificationTextConfig>({ type: 'success', timeRemove: 2000 });\n readonly removeComponent = input.required<(component: unknown) => Promise<void>>();\n\n ngOnDestroy(): void {\n this.onDestroy.next();\n this.onDestroy.complete();\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, OnDestroy, OnInit, inject, signal } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { fromEvent } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\nimport { LibUiServiceNotificationBaseComponent } from '../base.component';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-services-notification-components-text',\n templateUrl: './text.component.html',\n styleUrls: ['./text.component.scss'],\n standalone: true,\n imports: [TranslateModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LibUiServicesComponentsTextComponent extends LibUiServiceNotificationBaseComponent implements OnInit, OnDestroy {\n /* PROPERTY */\n protected containerClass = signal<string>('');\n protected icon = signal<string>('');\n\n /* INJECT */\n private elementRef = inject(ElementRef)\n\n constructor() {\n super();\n }\n\n ngOnInit(): void {\n switch (this.config().type) {\n case 'success':\n this.containerClass.set('libs-ui-toast_success');\n this.icon.set('libs-ui-icon-check-circle-solid');\n break;\n\n case 'info':\n this.containerClass.set('libs-ui-toast_info');\n this.icon.set('libs-ui-icon-tooltip-solid');\n break;\n\n case 'error':\n this.containerClass.set('libs-ui-toast_error');\n this.icon.set('libs-ui-icon-close-circle-solid');\n break;\n\n case 'warn':\n this.containerClass.set('libs-ui-toast_warning');\n this.icon.set('libs-ui-icon-alert-triangle-solid');\n break;\n\n default:\n this.containerClass.set('bg-[#6fd100] libs-ui-toast_success');\n this.icon.set('mo-icn-toast_success');\n }\n const { eventName, callback } = this.config();\n\n if (!eventName || !callback) {\n return;\n }\n if (eventName === 'click') {\n this.containerClass.update(value => `${value} cursor-pointer`);\n }\n fromEvent(this.elementRef.nativeElement, eventName).pipe(takeUntil(this.onDestroy), take(1)).subscribe(callback);\n }\n\n /* FUNCTIONS */\n\n protected handlerClickClose(e: Event) {\n e.stopPropagation();\n this.removeComponent()(e);\n }\n}\n","<div class=\"libs-ui-toast\"\n [class]=\"containerClass()\"\n [style.zIndex]=\"config().zIndex || 2000\">\n <div class=\"flex items-center\">\n <i class=\"{{ icon() }}\"></i>\n </div>\n <div class=\"flex flex-col w-full\">\n @if (title()) {\n <div class=\"libs-ui-font-h5m text-break\"\n [innerHtml]=\"title() | translate \">\n </div>\n }\n @if (message()) {\n <div class=\"text-break\"\n [class.libs-ui-font-h5r]=\"!title()\"\n [class.libs-ui-font-h7r]=\"title()\"\n [class.mt-[4ppx]]=\"title()\"\n [innerHtml]=\"message() | translate: (interpolateParams() || {})\">\n </div>\n }\n </div>\n <div class=\"flex items-center\">\n <i class=\"libs-ui-icon-close mr-0 ml-[8px] cursor-pointer\"\n (click)=\"handlerClickClose($event)\">\n </i>\n </div>\n</div>\n","import { ComponentRef, Injectable, inject, signal } from '@angular/core';\nimport { LibsUiDynamicComponentService } from '@libs-ui/services-dynamic-component';\nimport { UtilsCommunicateMicro, encrypt, escapeHtml, get, isEmbedFrame } from '@libs-ui/utils';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Observable } from 'rxjs';\nimport { LibUiServicesComponentsTextComponent } from './components';\nimport { INotificationPushFromIFrame, INotificationQueue, INotificationTextConfig, INotificationTextPublicConfig } from './interfaces/notification';\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class LibsUiNotificationService {\n /* PROPERTY */\n private notificationPermission = signal<NotificationPermission>('default');\n private queueMessage = signal<Array<INotificationQueue>>(new Array<INotificationQueue>());\n private timeoutUpdatePosition = signal<number>(0);\n private readonly MAX_QUEUE_MESSAGE: number = 5;\n private isInit = signal<boolean>(false);\n\n /* INJECT */\n private dynamicService = inject(LibsUiDynamicComponentService);\n private translateService = inject(TranslateService);\n\n constructor() {\n this.notificationPermission.set(this.systemSupportNotification() ? 'default' : 'denied');\n }\n\n /* FUNCTIONS */\n public init(messageNameHandler: Array<string>) {\n if (this.isInit()) {\n return;\n }\n this.isInit.set(true);\n UtilsCommunicateMicro.GetMessage(messageNameHandler).subscribe(e => {\n if (isEmbedFrame()) {\n const dataMessage = e.data.response as INotificationPushFromIFrame;\n\n this.showCompTypeText(dataMessage.message, undefined, dataMessage.title, { type: dataMessage.functionName, timeRemove: dataMessage.timeRemove || 2000 });\n\n return;\n }\n UtilsCommunicateMicro.PostMessageToParent(e.data);\n });\n }\n\n public get TranslateService() {\n return this.translateService;\n }\n\n private systemSupportNotification(): boolean {\n return 'Notification' in window;\n }\n\n public systemRequestPermission() {\n if (!this.systemSupportNotification()) {\n return;\n }\n try {\n Notification.requestPermission().then((permission: NotificationPermission) => this.Permission = permission);\n } catch (error) {\n if (error instanceof TypeError) {\n Notification.requestPermission((permission: NotificationPermission) => this.Permission = permission);\n }\n }\n }\n\n private set Permission(permission: NotificationPermission) {\n this.notificationPermission.set(permission);\n }\n\n public systemSpawnNotification(title: string, options?: NotificationOptions): Observable<unknown> {\n return new Observable((obs) => {\n if (!this.systemSupportNotification()) {\n obs.complete();\n }\n if (this.notificationPermission() !== 'granted') {\n obs.complete();\n }\n const notify = new Notification(title, options);\n\n notify.onshow = (e) => {\n return obs.next({\n notification: notify,\n event: e\n });\n };\n notify.onclick = (e) => {\n notify.close();\n window.focus();\n\n return obs.next({\n notification: notify,\n event: e\n });\n };\n notify.onerror = (e) => {\n return obs.error({\n notification: notify,\n event: e\n });\n };\n notify.onclose = () => {\n return obs.complete();\n };\n });\n }\n\n public showCompTypeTextSuccess(message: string, config?: INotificationTextPublicConfig) {\n this.showCompTypeText(message, config?.interpolateParams, config?.title, { type: 'success', timeRemove: config?.timeRemove || 3000, positionRight: config?.positionRight, eventName: config?.eventName, callback: config?.callback });\n }\n\n public showCompTypeTextError(message: string, config?: INotificationTextPublicConfig) {\n this.showCompTypeText(message, config?.interpolateParams, config?.title, { type: 'error', timeRemove: config?.timeRemove || 3000, positionRight: config?.positionRight, eventName: config?.eventName, callback: config?.callback });\n }\n\n public showCompTypeTextInfo(message: string, config?: INotificationTextPublicConfig) {\n this.showCompTypeText(message, config?.interpolateParams, config?.title, { type: 'info', timeRemove: config?.timeRemove || 3000, positionRight: config?.positionRight, eventName: config?.eventName, callback: config?.callback });\n }\n\n public showCompTypeTextWarning(message: string, config?: INotificationTextPublicConfig) {\n this.showCompTypeText(message, config?.interpolateParams, config?.title, { type: 'warn', timeRemove: config?.timeRemove || 3000, positionRight: config?.positionRight, eventName: config?.eventName, callback: config?.callback });\n }\n\n private showCompTypeText(message: string, interpolateParams?: Record<string, unknown>, title?: string, config: INotificationTextConfig = { type: 'success', timeRemove: 2000 }): void {\n if (!message) {\n return;\n }\n\n this.checkQueueMessage();\n if (interpolateParams && typeof interpolateParams === 'object') {\n Object.keys(interpolateParams).forEach((key) => {\n interpolateParams[key] = escapeHtml(get(interpolateParams, key));\n });\n }\n\n if (isEmbedFrame()) {\n const messageTranslate = this.translateService.instant(message, interpolateParams) as string;\n\n return UtilsCommunicateMicro.PostMessageToParent({ type: 'MICRO_SITE_PUSH_MESSAGE_FROM_CHILD', response: encrypt(JSON.stringify({ functionName: config.type, message: messageTranslate, title, timeRemove: config.timeRemove || 2000 })) });\n }\n const component = this.dynamicService.resolveComponentFactory(LibUiServicesComponentsTextComponent);\n\n component.setInput('title', title);\n component.setInput('message', message);\n component.setInput('interpolateParams', interpolateParams);\n component.setInput('config', config);\n component.setInput('removeComponent', this.removeComponent.bind(this, component));\n const timeout = setTimeout(() => {\n this.removeComponent(component);\n }, config?.timeRemove);\n\n this.queueMessage.update(queue => {\n queue.push({\n component,\n config,\n timeout\n });\n\n return [...queue];\n });\n this.dynamicService.addToBody(component);\n this.updatePositionMessage();\n }\n\n private removeComponent(component: ComponentRef<unknown>) {\n this.dynamicService.remove(component);\n const indexRemove = this.queueMessage().findIndex(config => config.component === component);\n\n if (indexRemove !== -1) {\n this.queueMessage.update(queue => {\n queue.splice(indexRemove, 1);\n return [...queue];\n });\n }\n }\n\n private checkQueueMessage(): void {\n if (this.queueMessage.length < this.MAX_QUEUE_MESSAGE) {\n return;\n }\n const firstQueue = this.queueMessage().shift() as INotificationQueue;\n\n clearTimeout(firstQueue.timeout);\n this.dynamicService.remove(firstQueue.component);\n this.updatePositionMessage();\n }\n\n private updatePositionMessage(): void {\n if (!this.queueMessage().length) {\n return;\n }\n clearTimeout(this.timeoutUpdatePosition());\n this.timeoutUpdatePosition.set(setTimeout(() => {\n let topMessage = 12;\n\n this.queueMessage().forEach((message: INotificationQueue) => {\n const firstEl = message.component.instance.elementRef.nativeElement.firstElementChild;\n const rect = firstEl.getBoundingClientRect();\n\n firstEl.style.top = `${topMessage}px`;\n topMessage += rect.height + 12;\n let right = message.config.positionRight ?? 12;\n\n if (isEmbedFrame()) {\n right = 40;\n }\n firstEl.style.right = `${right}px`;\n });\n }));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;MAIa,qCAAqC,CAAA;;AAEtC,IAAA,SAAS,GAAG,IAAI,OAAO,EAAQ;;AAGhC,IAAA,OAAO,GAAG,KAAK,CAAS,EAAE,CAAC;IAC3B,iBAAiB,GAAG,KAAK,EAA2B;AACpD,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,CAAC;AACzB,IAAA,MAAM,GAAG,KAAK,CAA0B,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC9E,IAAA,eAAe,GAAG,KAAK,CAAC,QAAQ,EAAyC;IAElF,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;AACrB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;;wGAbhB,qCAAqC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAArC,qCAAqC,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAArC,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBADjD;;;ACYK,MAAO,oCAAqC,SAAQ,qCAAqC,CAAA;;AAEnF,IAAA,cAAc,GAAG,MAAM,CAAS,EAAE,CAAC;AACnC,IAAA,IAAI,GAAG,MAAM,CAAS,EAAE,CAAC;;AAG3B,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAEvC,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;;IAGT,QAAQ,GAAA;AACN,QAAA,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI;AACxB,YAAA,KAAK,SAAS;AACZ,gBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,uBAAuB,CAAC;AAChD,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iCAAiC,CAAC;gBAChD;AAEF,YAAA,KAAK,MAAM;AACT,gBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,oBAAoB,CAAC;AAC7C,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,4BAA4B,CAAC;gBAC3C;AAEF,YAAA,KAAK,OAAO;AACV,gBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,qBAAqB,CAAC;AAC9C,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iCAAiC,CAAC;gBAChD;AAEF,YAAA,KAAK,MAAM;AACT,gBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,uBAAuB,CAAC;AAChD,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,mCAAmC,CAAC;gBAClD;AAEF,YAAA;AACE,gBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,oCAAoC,CAAC;AAC7D,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC;;QAEzC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE;AAE7C,QAAA,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,EAAE;YAC3B;;AAEF,QAAA,IAAI,SAAS,KAAK,OAAO,EAAE;AACzB,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,IAAI,CAAA,EAAG,KAAK,CAAA,eAAA,CAAiB,CAAC;;AAEhE,QAAA,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC;;;AAKxG,IAAA,iBAAiB,CAAC,CAAQ,EAAA;QAClC,CAAC,CAAC,eAAe,EAAE;AACnB,QAAA,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;;wGArDhB,oCAAoC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAApC,oCAAoC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECfjD,80BA2BA,EAAA,MAAA,EAAA,CAAA,+9BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDfY,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAGd,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBAThD,SAAS;+BAEE,+CAA+C,EAAA,UAAA,EAG7C,IAAI,EACP,OAAA,EAAA,CAAC,eAAe,CAAC,EAAA,eAAA,EACT,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,80BAAA,EAAA,MAAA,EAAA,CAAA,+9BAAA,CAAA,EAAA;;;MEDpC,yBAAyB,CAAA;;AAE5B,IAAA,sBAAsB,GAAG,MAAM,CAAyB,SAAS,CAAC;AAClE,IAAA,YAAY,GAAG,MAAM,CAA4B,IAAI,KAAK,EAAsB,CAAC;AACjF,IAAA,qBAAqB,GAAG,MAAM,CAAS,CAAC,CAAC;IAChC,iBAAiB,GAAW,CAAC;AACtC,IAAA,MAAM,GAAG,MAAM,CAAU,KAAK,CAAC;;AAG/B,IAAA,cAAc,GAAG,MAAM,CAAC,6BAA6B,CAAC;AACtD,IAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAEnD,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,SAAS,GAAG,QAAQ,CAAC;;;AAInF,IAAA,IAAI,CAAC,kBAAiC,EAAA;AAC3C,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;YACjB;;AAEF,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;QACrB,qBAAqB,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,CAAC,IAAG;YACjE,IAAI,YAAY,EAAE,EAAE;AAClB,gBAAA,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,QAAuC;AAElE,gBAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,YAAY,EAAE,UAAU,EAAE,WAAW,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;gBAExJ;;AAEF,YAAA,qBAAqB,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,SAAC,CAAC;;AAGJ,IAAA,IAAW,gBAAgB,GAAA;QACzB,OAAO,IAAI,CAAC,gBAAgB;;IAGtB,yBAAyB,GAAA;QAC/B,OAAO,cAAc,IAAI,MAAM;;IAG1B,uBAAuB,GAAA;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE;YACrC;;AAEF,QAAA,IAAI;AACF,YAAA,YAAY,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,CAAC,UAAkC,KAAK,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;;QAC3G,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,KAAK,YAAY,SAAS,EAAE;AAC9B,gBAAA,YAAY,CAAC,iBAAiB,CAAC,CAAC,UAAkC,KAAK,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;;;;IAK1G,IAAY,UAAU,CAAC,UAAkC,EAAA;AACvD,QAAA,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC;;IAGtC,uBAAuB,CAAC,KAAa,EAAE,OAA6B,EAAA;AACzE,QAAA,OAAO,IAAI,UAAU,CAAC,CAAC,GAAG,KAAI;AAC5B,YAAA,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE;gBACrC,GAAG,CAAC,QAAQ,EAAE;;AAEhB,YAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE,KAAK,SAAS,EAAE;gBAC/C,GAAG,CAAC,QAAQ,EAAE;;YAEhB,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;AAE/C,YAAA,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAI;gBACpB,OAAO,GAAG,CAAC,IAAI,CAAC;AACd,oBAAA,YAAY,EAAE,MAAM;AACpB,oBAAA,KAAK,EAAE;AACR,iBAAA,CAAC;AACJ,aAAC;AACD,YAAA,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,KAAI;gBACrB,MAAM,CAAC,KAAK,EAAE;gBACd,MAAM,CAAC,KAAK,EAAE;gBAEd,OAAO,GAAG,CAAC,IAAI,CAAC;AACd,oBAAA,YAAY,EAAE,MAAM;AACpB,oBAAA,KAAK,EAAE;AACR,iBAAA,CAAC;AACJ,aAAC;AACD,YAAA,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,KAAI;gBACrB,OAAO,GAAG,CAAC,KAAK,CAAC;AACf,oBAAA,YAAY,EAAE,MAAM;AACpB,oBAAA,KAAK,EAAE;AACR,iBAAA,CAAC;AACJ,aAAC;AACD,YAAA,MAAM,CAAC,OAAO,GAAG,MAAK;AACpB,gBAAA,OAAO,GAAG,CAAC,QAAQ,EAAE;AACvB,aAAC;AACH,SAAC,CAAC;;IAGG,uBAAuB,CAAC,OAAe,EAAE,MAAsC,EAAA;QACpF,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,IAAI,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;;IAGhO,qBAAqB,CAAC,OAAe,EAAE,MAAsC,EAAA;QAClF,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,IAAI,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;;IAG9N,oBAAoB,CAAC,OAAe,EAAE,MAAsC,EAAA;QACjF,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,IAAI,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;;IAG7N,uBAAuB,CAAC,OAAe,EAAE,MAAsC,EAAA;QACpF,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,IAAI,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;;AAG5N,IAAA,gBAAgB,CAAC,OAAe,EAAE,iBAA2C,EAAE,KAAc,EAAE,MAAA,GAAkC,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,EAAA;QAC5K,IAAI,CAAC,OAAO,EAAE;YACZ;;QAGF,IAAI,CAAC,iBAAiB,EAAE;AACxB,QAAA,IAAI,iBAAiB,IAAI,OAAO,iBAAiB,KAAK,QAAQ,EAAE;YAC9D,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AAC7C,gBAAA,iBAAiB,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;AAClE,aAAC,CAAC;;QAGJ,IAAI,YAAY,EAAE,EAAE;AAClB,YAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,iBAAiB,CAAW;AAE5F,YAAA,OAAO,qBAAqB,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,oCAAoC,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;;QAE7O,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,oCAAoC,CAAC;AAEnG,QAAA,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;AAClC,QAAA,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;AACtC,QAAA,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,iBAAiB,CAAC;AAC1D,QAAA,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;AACpC,QAAA,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACjF,QAAA,MAAM,OAAO,GAAG,UAAU,CAAC,MAAK;AAC9B,YAAA,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;AACjC,SAAC,EAAE,MAAM,EAAE,UAAU,CAAC;AAEtB,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,IAAG;YAC/B,KAAK,CAAC,IAAI,CAAC;gBACT,SAAS;gBACT,MAAM;gBACN;AACD,aAAA,CAAC;AAEF,YAAA,OAAO,CAAC,GAAG,KAAK,CAAC;AACnB,SAAC,CAAC;AACF,QAAA,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC;QACxC,IAAI,CAAC,qBAAqB,EAAE;;AAGtB,IAAA,eAAe,CAAC,SAAgC,EAAA;AACtD,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC;AACrC,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC;AAE3F,QAAA,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE;AACtB,YAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,IAAG;AAC/B,gBAAA,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;AAC5B,gBAAA,OAAO,CAAC,GAAG,KAAK,CAAC;AACnB,aAAC,CAAC;;;IAIE,iBAAiB,GAAA;QACvB,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE;YACrD;;QAEF,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,EAAwB;AAEpE,QAAA,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;QAChD,IAAI,CAAC,qBAAqB,EAAE;;IAGtB,qBAAqB,GAAA;QAC3B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE;YAC/B;;AAEF,QAAA,YAAY,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC1C,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,MAAK;YAC7C,IAAI,UAAU,GAAG,EAAE;YAEnB,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,CAAC,OAA2B,KAAI;AAC1D,gBAAA,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,iBAAiB;AACrF,gBAAA,MAAM,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE;gBAE5C,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAG,EAAA,UAAU,IAAI;AACrC,gBAAA,UAAU,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE;gBAC9B,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE;gBAE9C,IAAI,YAAY,EAAE,EAAE;oBAClB,KAAK,GAAG,EAAE;;gBAEZ,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAG,EAAA,KAAK,IAAI;AACpC,aAAC,CAAC;SACH,CAAC,CAAC;;wGArMM,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAzB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,cAHxB,MAAM,EAAA,CAAA;;4FAGP,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACVD;;AAEG;;;;"}
@@ -1,4 +1,5 @@
1
1
  import { TranslateService } from '@ngx-translate/core';
2
+ import { Observable } from 'rxjs';
2
3
  import { INotificationTextPublicConfig } from './interfaces/notification';
3
4
  import * as i0 from "@angular/core";
4
5
  export declare class LibsUiNotificationService {
@@ -15,7 +16,7 @@ export declare class LibsUiNotificationService {
15
16
  private systemSupportNotification;
16
17
  systemRequestPermission(): void;
17
18
  private set Permission(value);
18
- systemSpawnNotification(title: string, options?: NotificationOptions): any;
19
+ systemSpawnNotification(title: string, options?: NotificationOptions): Observable<unknown>;
19
20
  showCompTypeTextSuccess(message: string, config?: INotificationTextPublicConfig): void;
20
21
  showCompTypeTextError(message: string, config?: INotificationTextPublicConfig): void;
21
22
  showCompTypeTextInfo(message: string, config?: INotificationTextPublicConfig): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libs-ui/services-notification",
3
- "version": "0.2.16",
3
+ "version": "0.2.17",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^18.2.0",
6
6
  "@angular/core": "^18.2.0"