ngx-toastr 14.3.0 → 15.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -5
- package/esm2020/overlay/overlay-container.mjs +3 -3
- package/esm2020/overlay/overlay.mjs +3 -3
- package/esm2020/toastr/toast-noanimation.component.mjs +9 -10
- package/esm2020/toastr/toast.component.mjs +5 -5
- package/esm2020/toastr/toast.directive.mjs +7 -7
- package/esm2020/toastr/toastr.module.mjs +10 -11
- package/esm2020/toastr/toastr.service.mjs +3 -3
- package/fesm2015/ngx-toastr.mjs +36 -38
- package/fesm2015/ngx-toastr.mjs.map +1 -1
- package/fesm2020/ngx-toastr.mjs +36 -38
- package/fesm2020/ngx-toastr.mjs.map +1 -1
- package/{ngx-toastr.d.ts → index.d.ts} +0 -0
- package/package.json +6 -7
- package/toastr/toast-noanimation.component.d.ts +1 -1
- package/toastr/toast.component.d.ts +1 -1
- package/toastr/toast.directive.d.ts +1 -1
package/fesm2015/ngx-toastr.mjs
CHANGED
@@ -14,9 +14,9 @@ class ToastContainerDirective {
|
|
14
14
|
return this.el.nativeElement;
|
15
15
|
}
|
16
16
|
}
|
17
|
-
ToastContainerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
18
|
-
ToastContainerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
17
|
+
ToastContainerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ToastContainerDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
18
|
+
ToastContainerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.2", type: ToastContainerDirective, selector: "[toastContainer]", exportAs: ["toastContainer"], ngImport: i0 });
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ToastContainerDirective, decorators: [{
|
20
20
|
type: Directive,
|
21
21
|
args: [{
|
22
22
|
selector: '[toastContainer]',
|
@@ -25,10 +25,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
25
25
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
|
26
26
|
class ToastContainerModule {
|
27
27
|
}
|
28
|
-
ToastContainerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
29
|
-
ToastContainerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "
|
30
|
-
ToastContainerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
28
|
+
ToastContainerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ToastContainerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
29
|
+
ToastContainerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: ToastContainerModule, declarations: [ToastContainerDirective], exports: [ToastContainerDirective] });
|
30
|
+
ToastContainerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ToastContainerModule });
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ToastContainerModule, decorators: [{
|
32
32
|
type: NgModule,
|
33
33
|
args: [{
|
34
34
|
declarations: [ToastContainerDirective],
|
@@ -353,9 +353,9 @@ class OverlayContainer {
|
|
353
353
|
this._containerElement = container;
|
354
354
|
}
|
355
355
|
}
|
356
|
-
OverlayContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
357
|
-
OverlayContainer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
358
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
356
|
+
OverlayContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: OverlayContainer, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
|
357
|
+
OverlayContainer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: OverlayContainer, providedIn: 'root' });
|
358
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: OverlayContainer, decorators: [{
|
359
359
|
type: Injectable,
|
360
360
|
args: [{ providedIn: 'root' }]
|
361
361
|
}], ctorParameters: function () {
|
@@ -433,9 +433,9 @@ class Overlay {
|
|
433
433
|
return new OverlayRef(this._createPortalHost(pane));
|
434
434
|
}
|
435
435
|
}
|
436
|
-
Overlay.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
437
|
-
Overlay.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
438
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
436
|
+
Overlay.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: Overlay, deps: [{ token: OverlayContainer }, { token: i0.ComponentFactoryResolver }, { token: i0.ApplicationRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
|
437
|
+
Overlay.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: Overlay, providedIn: 'root' });
|
438
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: Overlay, decorators: [{
|
439
439
|
type: Injectable,
|
440
440
|
args: [{ providedIn: 'root' }]
|
441
441
|
}], ctorParameters: function () {
|
@@ -619,9 +619,9 @@ class ToastrService {
|
|
619
619
|
return ins;
|
620
620
|
}
|
621
621
|
}
|
622
|
-
ToastrService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
623
|
-
ToastrService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
624
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
622
|
+
ToastrService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ToastrService, deps: [{ token: TOAST_CONFIG }, { token: Overlay }, { token: i0.Injector }, { token: i2.DomSanitizer }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
|
623
|
+
ToastrService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ToastrService, providedIn: 'root' });
|
624
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ToastrService, decorators: [{
|
625
625
|
type: Injectable,
|
626
626
|
args: [{ providedIn: 'root' }]
|
627
627
|
}], ctorParameters: function () {
|
@@ -796,8 +796,8 @@ class Toast {
|
|
796
796
|
}
|
797
797
|
}
|
798
798
|
}
|
799
|
-
Toast.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
800
|
-
Toast.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
799
|
+
Toast.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: Toast, deps: [{ token: ToastrService }, { token: ToastPackage }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
800
|
+
Toast.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: Toast, selector: "[toast-component]", host: { listeners: { "click": "tapToast()", "mouseenter": "stickAround()", "mouseleave": "delayedHideToast()" }, properties: { "class": "this.toastClasses", "@flyInOut": "this.state", "style.display": "this.displayStyle" } }, ngImport: i0, template: `
|
801
801
|
<button *ngIf="options.closeButton" (click)="remove()" type="button" class="toast-close-button" aria-label="Close">
|
802
802
|
<span aria-hidden="true">×</span>
|
803
803
|
</button>
|
@@ -814,7 +814,7 @@ Toast.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2
|
|
814
814
|
<div *ngIf="options.progressBar">
|
815
815
|
<div class="toast-progress" [style.width]="width + '%'"></div>
|
816
816
|
</div>
|
817
|
-
`, isInline: true,
|
817
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [
|
818
818
|
trigger('flyInOut', [
|
819
819
|
state('inactive', style({ opacity: 0 })),
|
820
820
|
state('active', style({ opacity: 1 })),
|
@@ -823,7 +823,7 @@ Toast.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2
|
|
823
823
|
transition('active => removed', animate('{{ easeTime }}ms {{ easing }}'))
|
824
824
|
])
|
825
825
|
] });
|
826
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
826
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: Toast, decorators: [{
|
827
827
|
type: Component,
|
828
828
|
args: [{
|
829
829
|
selector: '[toast-component]',
|
@@ -893,16 +893,15 @@ class ToastrModule {
|
|
893
893
|
};
|
894
894
|
}
|
895
895
|
}
|
896
|
-
ToastrModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
897
|
-
ToastrModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "
|
898
|
-
ToastrModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
899
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
896
|
+
ToastrModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ToastrModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
897
|
+
ToastrModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: ToastrModule, declarations: [Toast], imports: [CommonModule], exports: [Toast] });
|
898
|
+
ToastrModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ToastrModule, imports: [CommonModule] });
|
899
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ToastrModule, decorators: [{
|
900
900
|
type: NgModule,
|
901
901
|
args: [{
|
902
902
|
imports: [CommonModule],
|
903
903
|
declarations: [Toast],
|
904
904
|
exports: [Toast],
|
905
|
-
entryComponents: [Toast],
|
906
905
|
}]
|
907
906
|
}] });
|
908
907
|
class ToastrComponentlessModule {
|
@@ -921,10 +920,10 @@ class ToastrComponentlessModule {
|
|
921
920
|
};
|
922
921
|
}
|
923
922
|
}
|
924
|
-
ToastrComponentlessModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
925
|
-
ToastrComponentlessModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "
|
926
|
-
ToastrComponentlessModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
927
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
923
|
+
ToastrComponentlessModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ToastrComponentlessModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
924
|
+
ToastrComponentlessModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: ToastrComponentlessModule, imports: [CommonModule] });
|
925
|
+
ToastrComponentlessModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ToastrComponentlessModule, imports: [CommonModule] });
|
926
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ToastrComponentlessModule, decorators: [{
|
928
927
|
type: NgModule,
|
929
928
|
args: [{
|
930
929
|
imports: [CommonModule],
|
@@ -1070,8 +1069,8 @@ class ToastNoAnimation {
|
|
1070
1069
|
}
|
1071
1070
|
}
|
1072
1071
|
}
|
1073
|
-
ToastNoAnimation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
1074
|
-
ToastNoAnimation.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
1072
|
+
ToastNoAnimation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ToastNoAnimation, deps: [{ token: ToastrService }, { token: ToastPackage }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Component });
|
1073
|
+
ToastNoAnimation.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: ToastNoAnimation, selector: "[toast-component]", host: { listeners: { "click": "tapToast()", "mouseenter": "stickAround()", "mouseleave": "delayedHideToast()" }, properties: { "class": "this.toastClasses", "style.display": "this.displayStyle" } }, ngImport: i0, template: `
|
1075
1074
|
<button *ngIf="options.closeButton" (click)="remove()" type="button" class="toast-close-button" aria-label="Close">
|
1076
1075
|
<span aria-hidden="true">×</span>
|
1077
1076
|
</button>
|
@@ -1088,8 +1087,8 @@ ToastNoAnimation.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
|
|
1088
1087
|
<div *ngIf="options.progressBar">
|
1089
1088
|
<div class="toast-progress" [style.width]="width + '%'"></div>
|
1090
1089
|
</div>
|
1091
|
-
`, isInline: true,
|
1092
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
1090
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
1091
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ToastNoAnimation, decorators: [{
|
1093
1092
|
type: Component,
|
1094
1093
|
args: [{
|
1095
1094
|
selector: '[toast-component]',
|
@@ -1145,16 +1144,15 @@ class ToastNoAnimationModule {
|
|
1145
1144
|
};
|
1146
1145
|
}
|
1147
1146
|
}
|
1148
|
-
ToastNoAnimationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
1149
|
-
ToastNoAnimationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "
|
1150
|
-
ToastNoAnimationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
1151
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
1147
|
+
ToastNoAnimationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ToastNoAnimationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
1148
|
+
ToastNoAnimationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: ToastNoAnimationModule, declarations: [ToastNoAnimation], imports: [CommonModule], exports: [ToastNoAnimation] });
|
1149
|
+
ToastNoAnimationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ToastNoAnimationModule, imports: [CommonModule] });
|
1150
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ToastNoAnimationModule, decorators: [{
|
1152
1151
|
type: NgModule,
|
1153
1152
|
args: [{
|
1154
1153
|
imports: [CommonModule],
|
1155
1154
|
declarations: [ToastNoAnimation],
|
1156
1155
|
exports: [ToastNoAnimation],
|
1157
|
-
entryComponents: [ToastNoAnimation],
|
1158
1156
|
}]
|
1159
1157
|
}] });
|
1160
1158
|
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ngx-toastr.mjs","sources":["../../src/lib/toastr/toast.directive.ts","../../src/lib/portal/portal.ts","../../src/lib/toastr/toastr-config.ts","../../src/lib/toastr/toast-injector.ts","../../src/lib/portal/dom-portal-host.ts","../../src/lib/overlay/overlay-ref.ts","../../src/lib/overlay/overlay-container.ts","../../src/lib/overlay/overlay.ts","../../src/lib/toastr/toastr.service.ts","../../src/lib/toastr/toast.component.ts","../../src/lib/toastr/toastr.module.ts","../../src/lib/toastr/toast-noanimation.component.ts","../../src/lib/ngx-toastr.ts"],"sourcesContent":["import {\n Directive,\n ElementRef,\n NgModule,\n} from '@angular/core';\n\n@Directive({\n selector: '[toastContainer]',\n exportAs: 'toastContainer',\n})\nexport class ToastContainerDirective {\n constructor(private el: ElementRef) { }\n getContainerElement(): HTMLElement {\n return this.el.nativeElement;\n }\n}\n\n@NgModule({\n declarations: [ToastContainerDirective],\n exports: [ToastContainerDirective],\n})\nexport class ToastContainerModule {}\n","import {\n ComponentRef,\n Injector,\n ViewContainerRef\n} from '@angular/core';\n\nexport interface ComponentType<T> {\n // eslint-disable-next-line @typescript-eslint/prefer-function-type\n new (...args: any[]): T;\n}\n\n\n/**\n * A `ComponentPortal` is a portal that instantiates some Component upon attachment.\n */\nexport class ComponentPortal<T> {\n private _attachedHost?: BasePortalHost;\n /** The type of the component that will be instantiated for attachment. */\n component: ComponentType<T>;\n\n /**\n * [Optional] Where the attached component should live in Angular's *logical* component tree.\n * This is different from where the component *renders*, which is determined by the PortalHost.\n * The origin necessary when the host is outside of the Angular application context.\n */\n viewContainerRef!: ViewContainerRef;\n\n /** Injector used for the instantiation of the component. */\n injector: Injector;\n\n constructor(component: ComponentType<T>, injector: Injector) {\n this.component = component;\n this.injector = injector;\n }\n\n /** Attach this portal to a host. */\n attach(host: BasePortalHost, newestOnTop: boolean): ComponentRef<any> {\n this._attachedHost = host;\n return host.attach(this, newestOnTop);\n }\n\n /** Detach this portal from its host */\n detach() {\n const host = this._attachedHost;\n if (host) {\n this._attachedHost = undefined;\n return host.detach();\n }\n }\n\n /** Whether this portal is attached to a host. */\n get isAttached(): boolean {\n return this._attachedHost != null;\n }\n\n /**\n * Sets the PortalHost reference without performing `attach()`. This is used directly by\n * the PortalHost when it is performing an `attach()` or `detach()`.\n */\n setAttachedHost(host?: BasePortalHost) {\n this._attachedHost = host;\n }\n}\n\n/**\n * Partial implementation of PortalHost that only deals with attaching a\n * ComponentPortal\n */\nexport abstract class BasePortalHost {\n /** The portal currently attached to the host. */\n private _attachedPortal?: ComponentPortal<any>;\n\n /** A function that will permanently dispose this host. */\n private _disposeFn?: () => void;\n\n attach(portal: ComponentPortal<any>, newestOnTop: boolean) {\n this._attachedPortal = portal;\n return this.attachComponentPortal(portal, newestOnTop);\n }\n\n abstract attachComponentPortal<T>(portal: ComponentPortal<T>, newestOnTop: boolean): ComponentRef<T>;\n\n detach() {\n if (this._attachedPortal) {\n this._attachedPortal.setAttachedHost();\n }\n\n this._attachedPortal = undefined;\n if (this._disposeFn) {\n this._disposeFn();\n this._disposeFn = undefined;\n }\n }\n\n setDisposeFn(fn: () => void) {\n this._disposeFn = fn;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nimport { Observable, Subject } from 'rxjs';\n\nimport { ComponentType } from '../portal/portal';\nimport { ToastRef } from './toast-injector';\n\nexport type ProgressAnimationType = 'increasing' | 'decreasing';\n\n/**\n * Configuration for an individual toast.\n */\nexport interface IndividualConfig {\n /**\n * disable both timeOut and extendedTimeOut\n * default: false\n */\n disableTimeOut: boolean | 'timeOut' | 'extendedTimeOut';\n /**\n * toast time to live in milliseconds\n * default: 5000\n */\n timeOut: number;\n /**\n * toast show close button\n * default: false\n */\n closeButton: boolean;\n /**\n * time to close after a user hovers over toast\n * default: 1000\n */\n extendedTimeOut: number;\n /**\n * show toast progress bar\n * default: false\n */\n progressBar: boolean;\n\n /**\n * changes toast progress bar animation\n * default: decreasing\n */\n progressAnimation: ProgressAnimationType;\n\n /**\n * render html in toast message (possibly unsafe)\n * default: false\n */\n enableHtml: boolean;\n /**\n * css class on toast component\n * default: ngx-toastr\n */\n toastClass: string;\n /**\n * css class on toast container\n * default: toast-top-right\n */\n positionClass: string;\n /**\n * css class on toast title\n * default: toast-title\n */\n titleClass: string;\n /**\n * css class on toast message\n * default: toast-message\n */\n messageClass: string;\n /**\n * animation easing on toast\n * default: ease-in\n */\n easing: string;\n /**\n * animation ease time on toast\n * default: 300\n */\n easeTime: string | number;\n /**\n * clicking on toast dismisses it\n * default: true\n */\n tapToDismiss: boolean;\n /**\n * Angular toast component to be shown\n * default: Toast\n */\n toastComponent?: ComponentType<any>;\n /**\n * Helps show toast from a websocket or from event outside Angular\n * default: false\n */\n onActivateTick: boolean;\n /**\n * New toast placement\n * default: true\n */\n newestOnTop: boolean;\n\n /**\n * payload to pass to the toastComponent\n * default: null\n */\n payload: any;\n}\n\nexport interface ToastrIconClasses {\n error: string;\n info: string;\n success: string;\n warning: string;\n [key: string]: string;\n}\n\n/**\n * Global Toast configuration\n * Includes all IndividualConfig\n */\nexport interface GlobalConfig extends IndividualConfig {\n /**\n * max toasts opened. Toasts will be queued\n * Zero is unlimited\n * default: 0\n */\n maxOpened: number;\n /**\n * dismiss current toast when max is reached\n * default: false\n */\n autoDismiss: boolean;\n iconClasses: Partial<ToastrIconClasses>;\n /**\n * block duplicate messages\n * default: false\n */\n preventDuplicates: boolean;\n /**\n * display the number of duplicate messages\n * default: false\n */\n countDuplicates: boolean;\n /**\n * Reset toast timeout when there's a duplicate (preventDuplicates needs to be set to true)\n * default: false\n */\n resetTimeoutOnDuplicate: boolean;\n /**\n * consider the title of a toast when checking if duplicate\n * default: false\n */\n includeTitleDuplicates: boolean;\n}\n\n/**\n * Everything a toast needs to launch\n */\nexport class ToastPackage {\n private _onTap = new Subject<void>();\n private _onAction = new Subject<any>();\n\n constructor(\n public toastId: number,\n public config: IndividualConfig,\n public message: string | null | undefined,\n public title: string | undefined,\n public toastType: string,\n public toastRef: ToastRef<any>,\n ) {\n this.toastRef.afterClosed().subscribe(() => {\n this._onAction.complete();\n this._onTap.complete();\n });\n }\n\n /** Fired on click */\n triggerTap(): void {\n this._onTap.next();\n if (this.config.tapToDismiss) {\n this._onTap.complete();\n }\n }\n\n onTap(): Observable<void> {\n return this._onTap.asObservable();\n }\n\n /** available for use in custom toast */\n triggerAction(action?: any): void {\n this._onAction.next(action);\n }\n\n onAction(): Observable<void> {\n return this._onAction.asObservable();\n }\n}\n\n/* eslint-disable @typescript-eslint/no-empty-interface */\n/** @deprecated use GlobalConfig */\nexport interface GlobalToastrConfig extends GlobalConfig {}\n/** @deprecated use IndividualConfig */\nexport interface IndividualToastrConfig extends IndividualConfig {}\n/** @deprecated use IndividualConfig */\nexport interface ToastrConfig extends IndividualConfig {}\n\nexport const DefaultNoComponentGlobalConfig: GlobalConfig = {\n maxOpened: 0,\n autoDismiss: false,\n newestOnTop: true,\n preventDuplicates: false,\n countDuplicates: false,\n resetTimeoutOnDuplicate: false,\n includeTitleDuplicates: false,\n\n iconClasses: {\n error: 'toast-error',\n info: 'toast-info',\n success: 'toast-success',\n warning: 'toast-warning',\n },\n\n // Individual\n closeButton: false,\n disableTimeOut: false,\n timeOut: 5000,\n extendedTimeOut: 1000,\n enableHtml: false,\n progressBar: false,\n toastClass: 'ngx-toastr',\n positionClass: 'toast-top-right',\n titleClass: 'toast-title',\n messageClass: 'toast-message',\n easing: 'ease-in',\n easeTime: 300,\n tapToDismiss: true,\n onActivateTick: false,\n progressAnimation: 'decreasing',\n\n payload: null\n};\n\nexport interface ToastToken {\n default: GlobalConfig;\n config: Partial<GlobalConfig>;\n}\n\nexport const TOAST_CONFIG = new InjectionToken<ToastToken>('ToastConfig');\n","import { Injector, InjectFlags } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { OverlayRef } from '../overlay/overlay-ref';\nimport { ToastPackage } from './toastr-config';\n\n/**\n * Reference to a toast opened via the Toastr service.\n */\nexport class ToastRef<T> {\n /** The instance of component opened into the toast. */\n componentInstance!: T;\n\n /** Count of duplicates of this toast */\n private duplicatesCount = 0;\n\n /** Subject for notifying the user that the toast has finished closing. */\n private _afterClosed = new Subject<void>();\n /** triggered when toast is activated */\n private _activate = new Subject<void>();\n /** notifies the toast that it should close before the timeout */\n private _manualClose = new Subject<void>();\n /** notifies the toast that it should reset the timeouts */\n private _resetTimeout = new Subject<void>();\n /** notifies the toast that it should count a duplicate toast */\n private _countDuplicate = new Subject<number>();\n\n constructor(private _overlayRef: OverlayRef) {}\n\n manualClose() {\n this._manualClose.next();\n this._manualClose.complete();\n }\n\n manualClosed(): Observable<any> {\n return this._manualClose.asObservable();\n }\n\n timeoutReset(): Observable<any> {\n return this._resetTimeout.asObservable();\n }\n\n countDuplicate(): Observable<number> {\n return this._countDuplicate.asObservable();\n }\n\n /**\n * Close the toast.\n */\n close(): void {\n this._overlayRef.detach();\n this._afterClosed.next();\n this._manualClose.next();\n this._afterClosed.complete();\n this._manualClose.complete();\n this._activate.complete();\n this._resetTimeout.complete();\n this._countDuplicate.complete();\n }\n\n /** Gets an observable that is notified when the toast is finished closing. */\n afterClosed(): Observable<any> {\n return this._afterClosed.asObservable();\n }\n\n isInactive() {\n return this._activate.isStopped;\n }\n\n activate() {\n this._activate.next();\n this._activate.complete();\n }\n\n /** Gets an observable that is notified when the toast has started opening. */\n afterActivate(): Observable<any> {\n return this._activate.asObservable();\n }\n\n /** Reset the toast timouts and count duplicates */\n onDuplicate(resetTimeout: boolean, countDuplicate: boolean) {\n if (resetTimeout) {\n this._resetTimeout.next();\n }\n if (countDuplicate) {\n this._countDuplicate.next(++this.duplicatesCount);\n }\n }\n}\n\n/** Custom injector type specifically for instantiating components with a toast. */\nexport class ToastInjector implements Injector {\n constructor(\n private _toastPackage: ToastPackage,\n private _parentInjector: Injector\n ) {}\n\n get<T>(token: any, notFoundValue?: T, flags?: InjectFlags): T | ToastPackage {\n if (token === ToastPackage) {\n return this._toastPackage;\n }\n return this._parentInjector.get<T>(token, notFoundValue, flags);\n }\n}\n","import {\n ApplicationRef,\n ComponentFactoryResolver,\n ComponentRef,\n EmbeddedViewRef,\n} from '@angular/core';\nimport { BasePortalHost, ComponentPortal } from './portal';\n\n/**\n * A PortalHost for attaching portals to an arbitrary DOM element outside of the Angular\n * application context.\n *\n * This is the only part of the portal core that directly touches the DOM.\n */\nexport class DomPortalHost extends BasePortalHost {\n constructor(\n private _hostDomElement: Element,\n private _componentFactoryResolver: ComponentFactoryResolver,\n private _appRef: ApplicationRef,\n ) {\n super();\n }\n\n /**\n * Attach the given ComponentPortal to DOM element using the ComponentFactoryResolver.\n * @param portal Portal to be attached\n */\n attachComponentPortal<T>(\n portal: ComponentPortal<T>,\n newestOnTop: boolean,\n ): ComponentRef<T> {\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(\n portal.component,\n );\n let componentRef: ComponentRef<T>;\n\n // If the portal specifies a ViewContainerRef, we will use that as the attachment point\n // for the component (in terms of Angular's component tree, not rendering).\n // When the ViewContainerRef is missing, we use the factory to create the component directly\n // and then manually attach the ChangeDetector for that component to the application (which\n // happens automatically when using a ViewContainer).\n componentRef = componentFactory.create(portal.injector);\n\n // When creating a component outside of a ViewContainer, we need to manually register\n // its ChangeDetector with the application. This API is unfortunately not yet published\n // in Angular core. The change detector must also be deregistered when the component\n // is destroyed to prevent memory leaks.\n this._appRef.attachView(componentRef.hostView);\n\n this.setDisposeFn(() => {\n this._appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n });\n\n // At this point the component has been instantiated, so we move it to the location in the DOM\n // where we want it to be rendered.\n if (newestOnTop) {\n this._hostDomElement.insertBefore(\n this._getComponentRootNode(componentRef),\n this._hostDomElement.firstChild,\n );\n } else {\n this._hostDomElement.appendChild(\n this._getComponentRootNode(componentRef),\n );\n }\n\n return componentRef;\n }\n\n /** Gets the root HTMLElement for an instantiated component. */\n private _getComponentRootNode(componentRef: ComponentRef<any>): HTMLElement {\n return (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n }\n}\n","import { ComponentRef } from '@angular/core';\nimport { BasePortalHost, ComponentPortal } from '../portal/portal';\n\n/**\n * Reference to an overlay that has been created with the Overlay service.\n * Used to manipulate or dispose of said overlay.\n */\nexport class OverlayRef {\n constructor(private _portalHost: BasePortalHost) {}\n\n attach(\n portal: ComponentPortal<any>,\n newestOnTop: boolean = true,\n ): ComponentRef<any> {\n return this._portalHost.attach(portal, newestOnTop);\n }\n\n /**\n * Detaches an overlay from a portal.\n * @returns Resolves when the overlay has been detached.\n */\n detach() {\n return this._portalHost.detach();\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, OnDestroy } from '@angular/core';\n\n/** Container inside which all toasts will render. */\n@Injectable({ providedIn: 'root' })\nexport class OverlayContainer implements OnDestroy {\n protected _containerElement!: HTMLElement;\n\n constructor(@Inject(DOCUMENT) protected _document: any) {}\n\n ngOnDestroy() {\n if (this._containerElement && this._containerElement.parentNode) {\n this._containerElement.parentNode.removeChild(this._containerElement);\n }\n }\n\n /**\n * This method returns the overlay container element. It will lazily\n * create the element the first time it is called to facilitate using\n * the container in non-browser environments.\n * @returns the container element\n */\n getContainerElement(): HTMLElement {\n if (!this._containerElement) {\n this._createContainer();\n }\n return this._containerElement;\n }\n\n /**\n * Create the overlay container element, which is simply a div\n * with the 'cdk-overlay-container' class on the document body\n * and 'aria-live=\"polite\"'\n */\n protected _createContainer(): void {\n const container = this._document.createElement('div');\n container.classList.add('overlay-container');\n container.setAttribute('aria-live','polite');\n this._document.body.appendChild(container);\n this._containerElement = container;\n }\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { DOCUMENT } from '@angular/common';\nimport { ApplicationRef, ComponentFactoryResolver, Inject, Injectable } from '@angular/core';\n\nimport { DomPortalHost } from '../portal/dom-portal-host';\nimport { ToastContainerDirective } from '../toastr/toast.directive';\nimport { OverlayContainer } from './overlay-container';\nimport { OverlayRef } from './overlay-ref';\n\n/**\n * Service to create Overlays. Overlays are dynamically added pieces of floating UI, meant to be\n * used as a low-level building building block for other components. Dialogs, tooltips, menus,\n * selects, etc. can all be built using overlays. The service should primarily be used by authors\n * of re-usable components rather than developers building end-user applications.\n *\n * An overlay *is* a PortalHost, so any kind of Portal can be loaded into one.\n */\n@Injectable({ providedIn: 'root' })\nexport class Overlay {\n // Namespace panes by overlay container\n private _paneElements: Map<ToastContainerDirective, Record<string, HTMLElement>> = new Map();\n\n constructor(\n private _overlayContainer: OverlayContainer,\n private _componentFactoryResolver: ComponentFactoryResolver,\n private _appRef: ApplicationRef,\n @Inject(DOCUMENT) private _document: any,\n ) {}\n /**\n * Creates an overlay.\n * @returns A reference to the created overlay.\n */\n create(positionClass?: string, overlayContainer?: ToastContainerDirective): OverlayRef {\n // get existing pane if possible\n return this._createOverlayRef(this.getPaneElement(positionClass, overlayContainer));\n }\n\n getPaneElement(\n positionClass: string = '',\n overlayContainer?: ToastContainerDirective,\n ): HTMLElement {\n if (!this._paneElements.get(overlayContainer as ToastContainerDirective)) {\n this._paneElements.set(overlayContainer as ToastContainerDirective, {});\n }\n\n if (!this._paneElements.get(overlayContainer as ToastContainerDirective)![positionClass]) {\n this._paneElements.get(overlayContainer as ToastContainerDirective)![\n positionClass\n ] = this._createPaneElement(positionClass, overlayContainer);\n }\n\n return this._paneElements.get(overlayContainer as ToastContainerDirective)![positionClass];\n }\n\n /**\n * Creates the DOM element for an overlay and appends it to the overlay container.\n * @returns Newly-created pane element\n */\n private _createPaneElement(\n positionClass: string,\n overlayContainer?: ToastContainerDirective,\n ): HTMLElement {\n const pane = this._document.createElement('div');\n\n pane.id = 'toast-container';\n pane.classList.add(positionClass);\n pane.classList.add('toast-container');\n\n if (!overlayContainer) {\n this._overlayContainer.getContainerElement().appendChild(pane);\n } else {\n overlayContainer.getContainerElement().appendChild(pane);\n }\n\n return pane;\n }\n\n /**\n * Create a DomPortalHost into which the overlay content can be loaded.\n * @param pane The DOM element to turn into a portal host.\n * @returns A portal host for the given DOM element.\n */\n private _createPortalHost(pane: HTMLElement): DomPortalHost {\n return new DomPortalHost(pane, this._componentFactoryResolver, this._appRef);\n }\n\n /**\n * Creates an OverlayRef for an overlay in the given DOM element.\n * @param pane DOM element for the overlay\n */\n private _createOverlayRef(pane: HTMLElement): OverlayRef {\n return new OverlayRef(this._createPortalHost(pane));\n }\n}\n","import { ComponentRef, Inject, Injectable, Injector, NgZone, SecurityContext } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport { Observable } from 'rxjs';\n\nimport { Overlay } from '../overlay/overlay';\nimport { ComponentPortal } from '../portal/portal';\nimport { ToastInjector, ToastRef } from './toast-injector';\nimport { ToastContainerDirective } from './toast.directive';\nimport {\n GlobalConfig,\n IndividualConfig,\n ToastPackage,\n ToastToken,\n TOAST_CONFIG,\n} from './toastr-config';\n\nexport interface ActiveToast<C> {\n /** Your Toast ID. Use this to close it individually */\n toastId: number;\n /** the title of your toast. Stored to prevent duplicates */\n title: string;\n /** the message of your toast. Stored to prevent duplicates */\n message: string;\n /** a reference to the component see portal.ts */\n portal: ComponentRef<C>;\n /** a reference to your toast */\n toastRef: ToastRef<C>;\n /** triggered when toast is active */\n onShown: Observable<void>;\n /** triggered when toast is destroyed */\n onHidden: Observable<void>;\n /** triggered on toast click */\n onTap: Observable<void>;\n /** available for your use in custom toast */\n onAction: Observable<any>;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ToastrService {\n toastrConfig: GlobalConfig;\n currentlyActive = 0;\n toasts: ActiveToast<any>[] = [];\n overlayContainer?: ToastContainerDirective;\n previousToastMessage: string | undefined;\n private index = 0;\n\n constructor(\n @Inject(TOAST_CONFIG) token: ToastToken,\n private overlay: Overlay,\n private _injector: Injector,\n private sanitizer: DomSanitizer,\n private ngZone: NgZone,\n ) {\n this.toastrConfig = {\n ...token.default,\n ...token.config,\n };\n if (token.config.iconClasses) {\n this.toastrConfig.iconClasses = {\n ...token.default.iconClasses,\n ...token.config.iconClasses,\n };\n }\n }\n /** show toast */\n show(message?: string, title?: string, override: Partial<IndividualConfig> = {}, type = '') {\n return this._preBuildNotification(type, message, title, this.applyConfig(override));\n }\n /** show successful toast */\n success(message?: string, title?: string, override: Partial<IndividualConfig> = {}) {\n const type = this.toastrConfig.iconClasses.success || '';\n return this._preBuildNotification(type, message, title, this.applyConfig(override));\n }\n /** show error toast */\n error(message?: string, title?: string, override: Partial<IndividualConfig> = {}) {\n const type = this.toastrConfig.iconClasses.error || '';\n return this._preBuildNotification(type, message, title, this.applyConfig(override));\n }\n /** show info toast */\n info(message?: string, title?: string, override: Partial<IndividualConfig> = {}) {\n const type = this.toastrConfig.iconClasses.info || '';\n return this._preBuildNotification(type, message, title, this.applyConfig(override));\n }\n /** show warning toast */\n warning(message?: string, title?: string, override: Partial<IndividualConfig> = {}) {\n const type = this.toastrConfig.iconClasses.warning || '';\n return this._preBuildNotification(type, message, title, this.applyConfig(override));\n }\n /**\n * Remove all or a single toast by id\n */\n clear(toastId?: number) {\n // Call every toastRef manualClose function\n for (const toast of this.toasts) {\n if (toastId !== undefined) {\n if (toast.toastId === toastId) {\n toast.toastRef.manualClose();\n return;\n }\n } else {\n toast.toastRef.manualClose();\n }\n }\n }\n /**\n * Remove and destroy a single toast by id\n */\n remove(toastId: number) {\n const found = this._findToast(toastId);\n if (!found) {\n return false;\n }\n found.activeToast.toastRef.close();\n this.toasts.splice(found.index, 1);\n this.currentlyActive = this.currentlyActive - 1;\n if (!this.toastrConfig.maxOpened || !this.toasts.length) {\n return false;\n }\n if (this.currentlyActive < this.toastrConfig.maxOpened && this.toasts[this.currentlyActive]) {\n const p = this.toasts[this.currentlyActive].toastRef;\n if (!p.isInactive()) {\n this.currentlyActive = this.currentlyActive + 1;\n p.activate();\n }\n }\n return true;\n }\n\n /**\n * Determines if toast message is already shown\n */\n findDuplicate(title = '', message = '', resetOnDuplicate: boolean, countDuplicates: boolean) {\n const { includeTitleDuplicates } = this.toastrConfig;\n\n for (const toast of this.toasts) {\n const hasDuplicateTitle = includeTitleDuplicates && toast.title === title;\n if ((!includeTitleDuplicates || hasDuplicateTitle) && toast.message === message) {\n toast.toastRef.onDuplicate(resetOnDuplicate, countDuplicates);\n return toast;\n }\n }\n\n return null;\n }\n\n /** create a clone of global config and apply individual settings */\n private applyConfig(override: Partial<IndividualConfig> = {}): GlobalConfig {\n return { ...this.toastrConfig, ...override };\n }\n\n /**\n * Find toast object by id\n */\n private _findToast(toastId: number): { index: number; activeToast: ActiveToast<any> } | null {\n for (let i = 0; i < this.toasts.length; i++) {\n if (this.toasts[i].toastId === toastId) {\n return { index: i, activeToast: this.toasts[i] };\n }\n }\n return null;\n }\n\n /**\n * Determines the need to run inside angular's zone then builds the toast\n */\n private _preBuildNotification(\n toastType: string,\n message: string | undefined,\n title: string | undefined,\n config: GlobalConfig,\n ): ActiveToast<any> | null {\n if (config.onActivateTick) {\n return this.ngZone.run(() => this._buildNotification(toastType, message, title, config));\n }\n return this._buildNotification(toastType, message, title, config);\n }\n\n /**\n * Creates and attaches toast data to component\n * returns the active toast, or in case preventDuplicates is enabled the original/non-duplicate active toast.\n */\n private _buildNotification(\n toastType: string,\n message: string | undefined,\n title: string | undefined,\n config: GlobalConfig,\n ): ActiveToast<any> | null {\n if (!config.toastComponent) {\n throw new Error('toastComponent required');\n }\n // max opened and auto dismiss = true\n // if timeout = 0 resetting it would result in setting this.hideTime = Date.now(). Hence, we only want to reset timeout if there is\n // a timeout at all\n const duplicate = this.findDuplicate(\n title,\n message,\n this.toastrConfig.resetTimeoutOnDuplicate && config.timeOut > 0,\n this.toastrConfig.countDuplicates,\n );\n if (\n ((this.toastrConfig.includeTitleDuplicates && title) || message) &&\n this.toastrConfig.preventDuplicates &&\n duplicate !== null\n ) {\n return duplicate;\n }\n\n this.previousToastMessage = message;\n let keepInactive = false;\n if (this.toastrConfig.maxOpened && this.currentlyActive >= this.toastrConfig.maxOpened) {\n keepInactive = true;\n if (this.toastrConfig.autoDismiss) {\n this.clear(this.toasts[0].toastId);\n }\n }\n\n const overlayRef = this.overlay.create(config.positionClass, this.overlayContainer);\n this.index = this.index + 1;\n let sanitizedMessage: string | undefined | null = message;\n if (message && config.enableHtml) {\n sanitizedMessage = this.sanitizer.sanitize(SecurityContext.HTML, message);\n }\n\n const toastRef = new ToastRef(overlayRef);\n const toastPackage = new ToastPackage(\n this.index,\n config,\n sanitizedMessage,\n title,\n toastType,\n toastRef,\n );\n const toastInjector = new ToastInjector(toastPackage, this._injector);\n const component = new ComponentPortal(config.toastComponent, toastInjector);\n const portal = overlayRef.attach(component, this.toastrConfig.newestOnTop);\n toastRef.componentInstance = portal.instance;\n const ins: ActiveToast<any> = {\n toastId: this.index,\n title: title || '',\n message: message || '',\n toastRef,\n onShown: toastRef.afterActivate(),\n onHidden: toastRef.afterClosed(),\n onTap: toastPackage.onTap(),\n onAction: toastPackage.onAction(),\n portal,\n };\n\n if (!keepInactive) {\n this.currentlyActive = this.currentlyActive + 1;\n setTimeout(() => {\n ins.toastRef.activate();\n });\n }\n\n this.toasts.push(ins);\n return ins;\n }\n}\n","import {\n animate,\n state,\n style,\n transition,\n trigger\n} from '@angular/animations';\nimport {\n Component,\n HostBinding,\n HostListener,\n NgZone,\n OnDestroy\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { IndividualConfig, ToastPackage } from './toastr-config';\nimport { ToastrService } from './toastr.service';\n\n@Component({\n selector: '[toast-component]',\n template: `\n <button *ngIf=\"options.closeButton\" (click)=\"remove()\" type=\"button\" class=\"toast-close-button\" aria-label=\"Close\">\n <span aria-hidden=\"true\">×</span>\n </button>\n <div *ngIf=\"title\" [class]=\"options.titleClass\" [attr.aria-label]=\"title\">\n {{ title }} <ng-container *ngIf=\"duplicatesCount\">[{{ duplicatesCount + 1 }}]</ng-container>\n </div>\n <div *ngIf=\"message && options.enableHtml\" role=\"alert\"\n [class]=\"options.messageClass\" [innerHTML]=\"message\">\n </div>\n <div *ngIf=\"message && !options.enableHtml\" role=\"alert\"\n [class]=\"options.messageClass\" [attr.aria-label]=\"message\">\n {{ message }}\n </div>\n <div *ngIf=\"options.progressBar\">\n <div class=\"toast-progress\" [style.width]=\"width + '%'\"></div>\n </div>\n `,\n animations: [\n trigger('flyInOut', [\n state('inactive', style({ opacity: 0 })),\n state('active', style({ opacity: 1 })),\n state('removed', style({ opacity: 0 })),\n transition(\n 'inactive => active',\n animate('{{ easeTime }}ms {{ easing }}')\n ),\n transition(\n 'active => removed',\n animate('{{ easeTime }}ms {{ easing }}')\n )\n ])\n ],\n preserveWhitespaces: false\n})\nexport class Toast implements OnDestroy {\n message?: string | null;\n title?: string;\n options: IndividualConfig;\n duplicatesCount!: number;\n originalTimeout: number;\n /** width of progress bar */\n width = -1;\n /** a combination of toast type and options.toastClass */\n @HostBinding('class') toastClasses = '';\n /** controls animation */\n @HostBinding('@flyInOut')\n state = {\n value: 'inactive',\n params: {\n easeTime: this.toastPackage.config.easeTime,\n easing: 'ease-in'\n }\n };\n\n /** hides component when waiting to be displayed */\n @HostBinding('style.display')\n get displayStyle(): string | undefined {\n if (this.state.value === 'inactive') {\n return 'none';\n }\n\n return;\n }\n\n private timeout: any;\n private intervalId: any;\n private hideTime!: number;\n private sub: Subscription;\n private sub1: Subscription;\n private sub2: Subscription;\n private sub3: Subscription;\n\n constructor(\n protected toastrService: ToastrService,\n public toastPackage: ToastPackage,\n protected ngZone?: NgZone\n ) {\n this.message = toastPackage.message;\n this.title = toastPackage.title;\n this.options = toastPackage.config;\n this.originalTimeout = toastPackage.config.timeOut;\n this.toastClasses = `${toastPackage.toastType} ${\n toastPackage.config.toastClass\n }`;\n this.sub = toastPackage.toastRef.afterActivate().subscribe(() => {\n this.activateToast();\n });\n this.sub1 = toastPackage.toastRef.manualClosed().subscribe(() => {\n this.remove();\n });\n this.sub2 = toastPackage.toastRef.timeoutReset().subscribe(() => {\n this.resetTimeout();\n });\n this.sub3 = toastPackage.toastRef.countDuplicate().subscribe(count => {\n this.duplicatesCount = count;\n });\n }\n ngOnDestroy() {\n this.sub.unsubscribe();\n this.sub1.unsubscribe();\n this.sub2.unsubscribe();\n this.sub3.unsubscribe();\n clearInterval(this.intervalId);\n clearTimeout(this.timeout);\n }\n /**\n * activates toast and sets timeout\n */\n activateToast() {\n this.state = { ...this.state, value: 'active' };\n if (!(this.options.disableTimeOut === true || this.options.disableTimeOut === 'timeOut') && this.options.timeOut) {\n this.outsideTimeout(() => this.remove(), this.options.timeOut);\n this.hideTime = new Date().getTime() + this.options.timeOut;\n if (this.options.progressBar) {\n this.outsideInterval(() => this.updateProgress(), 10);\n }\n }\n }\n /**\n * updates progress bar width\n */\n updateProgress() {\n if (this.width === 0 || this.width === 100 || !this.options.timeOut) {\n return;\n }\n const now = new Date().getTime();\n const remaining = this.hideTime - now;\n this.width = (remaining / this.options.timeOut) * 100;\n if (this.options.progressAnimation === 'increasing') {\n this.width = 100 - this.width;\n }\n if (this.width <= 0) {\n this.width = 0;\n }\n if (this.width >= 100) {\n this.width = 100;\n }\n }\n\n resetTimeout() {\n clearTimeout(this.timeout);\n clearInterval(this.intervalId);\n this.state = { ...this.state, value: 'active' };\n\n this.outsideTimeout(() => this.remove(), this.originalTimeout);\n this.options.timeOut = this.originalTimeout;\n this.hideTime = new Date().getTime() + (this.options.timeOut || 0);\n this.width = -1;\n if (this.options.progressBar) {\n this.outsideInterval(() => this.updateProgress(), 10);\n }\n }\n\n /**\n * tells toastrService to remove this toast after animation time\n */\n remove() {\n if (this.state.value === 'removed') {\n return;\n }\n clearTimeout(this.timeout);\n this.state = { ...this.state, value: 'removed' };\n this.outsideTimeout(\n () => this.toastrService.remove(this.toastPackage.toastId),\n +this.toastPackage.config.easeTime\n );\n }\n @HostListener('click')\n tapToast() {\n if (this.state.value === 'removed') {\n return;\n }\n this.toastPackage.triggerTap();\n if (this.options.tapToDismiss) {\n this.remove();\n }\n }\n @HostListener('mouseenter')\n stickAround() {\n if (this.state.value === 'removed') {\n return;\n }\n clearTimeout(this.timeout);\n this.options.timeOut = 0;\n this.hideTime = 0;\n\n // disable progressBar\n clearInterval(this.intervalId);\n this.width = 0;\n }\n @HostListener('mouseleave')\n delayedHideToast() {\n if (\n (this.options.disableTimeOut === true || this.options.disableTimeOut === 'extendedTimeOut') ||\n this.options.extendedTimeOut === 0 ||\n this.state.value === 'removed'\n ) {\n return;\n }\n this.outsideTimeout(() => this.remove(), this.options.extendedTimeOut);\n this.options.timeOut = this.options.extendedTimeOut;\n this.hideTime = new Date().getTime() + (this.options.timeOut || 0);\n this.width = -1;\n if (this.options.progressBar) {\n this.outsideInterval(() => this.updateProgress(), 10);\n }\n }\n\n outsideTimeout(func: () => any, timeout: number) {\n if (this.ngZone) {\n this.ngZone.runOutsideAngular(\n () =>\n (this.timeout = setTimeout(\n () => this.runInsideAngular(func),\n timeout\n ))\n );\n } else {\n this.timeout = setTimeout(() => func(), timeout);\n }\n }\n\n outsideInterval(func: () => any, timeout: number) {\n if (this.ngZone) {\n this.ngZone.runOutsideAngular(\n () =>\n (this.intervalId = setInterval(\n () => this.runInsideAngular(func),\n timeout\n ))\n );\n } else {\n this.intervalId = setInterval(() => func(), timeout);\n }\n }\n\n private runInsideAngular(func: () => any) {\n if (this.ngZone) {\n this.ngZone.run(() => func());\n } else {\n func();\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { Toast } from './toast.component';\nimport {\n DefaultNoComponentGlobalConfig,\n GlobalConfig,\n TOAST_CONFIG,\n} from './toastr-config';\n\nexport const DefaultGlobalConfig: GlobalConfig = {\n ...DefaultNoComponentGlobalConfig,\n toastComponent: Toast,\n};\n\n@NgModule({\n imports: [CommonModule],\n declarations: [Toast],\n exports: [Toast],\n entryComponents: [Toast],\n})\nexport class ToastrModule {\n static forRoot(config: Partial<GlobalConfig> = {}): ModuleWithProviders<ToastrModule> {\n return {\n ngModule: ToastrModule,\n providers: [\n {\n provide: TOAST_CONFIG,\n useValue: {\n default: DefaultGlobalConfig,\n config,\n },\n },\n ],\n };\n }\n}\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class ToastrComponentlessModule {\n static forRoot(config: Partial<GlobalConfig> = {}): ModuleWithProviders<ToastrModule> {\n return {\n ngModule: ToastrModule,\n providers: [\n {\n provide: TOAST_CONFIG,\n useValue: {\n default: DefaultNoComponentGlobalConfig,\n config,\n },\n },\n ],\n };\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders } from '@angular/core';\nimport {\n ApplicationRef,\n Component,\n HostBinding,\n HostListener,\n NgModule,\n OnDestroy,\n} from '@angular/core';\n\nimport { Subscription } from 'rxjs';\n\nimport {\n DefaultNoComponentGlobalConfig,\n GlobalConfig,\n IndividualConfig,\n ToastPackage,\n TOAST_CONFIG,\n} from './toastr-config';\nimport { ToastrService } from './toastr.service';\n\n@Component({\n selector: '[toast-component]',\n template: `\n <button *ngIf=\"options.closeButton\" (click)=\"remove()\" type=\"button\" class=\"toast-close-button\" aria-label=\"Close\">\n <span aria-hidden=\"true\">×</span>\n </button>\n <div *ngIf=\"title\" [class]=\"options.titleClass\" [attr.aria-label]=\"title\">\n {{ title }} <ng-container *ngIf=\"duplicatesCount\">[{{ duplicatesCount + 1 }}]</ng-container>\n </div>\n <div *ngIf=\"message && options.enableHtml\" role=\"alert\"\n [class]=\"options.messageClass\" [innerHTML]=\"message\">\n </div>\n <div *ngIf=\"message && !options.enableHtml\" role=\"alert\"\n [class]=\"options.messageClass\" [attr.aria-label]=\"message\">\n {{ message }}\n </div>\n <div *ngIf=\"options.progressBar\">\n <div class=\"toast-progress\" [style.width]=\"width + '%'\"></div>\n </div>\n `,\n})\nexport class ToastNoAnimation implements OnDestroy {\n message?: string | null;\n title?: string;\n options: IndividualConfig;\n duplicatesCount!: number;\n originalTimeout: number;\n /** width of progress bar */\n width = -1;\n /** a combination of toast type and options.toastClass */\n @HostBinding('class') toastClasses = '';\n\n /** hides component when waiting to be displayed */\n @HostBinding('style.display')\n get displayStyle() {\n if (this.state === 'inactive') {\n return 'none';\n }\n }\n\n /** controls animation */\n state = 'inactive';\n private timeout: any;\n private intervalId: any;\n private hideTime!: number;\n private sub: Subscription;\n private sub1: Subscription;\n private sub2: Subscription;\n private sub3: Subscription;\n\n constructor(\n protected toastrService: ToastrService,\n public toastPackage: ToastPackage,\n protected appRef: ApplicationRef,\n ) {\n this.message = toastPackage.message;\n this.title = toastPackage.title;\n this.options = toastPackage.config;\n this.originalTimeout = toastPackage.config.timeOut;\n this.toastClasses = `${toastPackage.toastType} ${\n toastPackage.config.toastClass\n }`;\n this.sub = toastPackage.toastRef.afterActivate().subscribe(() => {\n this.activateToast();\n });\n this.sub1 = toastPackage.toastRef.manualClosed().subscribe(() => {\n this.remove();\n });\n this.sub2 = toastPackage.toastRef.timeoutReset().subscribe(() => {\n this.resetTimeout();\n });\n this.sub3 = toastPackage.toastRef.countDuplicate().subscribe(count => {\n this.duplicatesCount = count;\n });\n }\n ngOnDestroy() {\n this.sub.unsubscribe();\n this.sub1.unsubscribe();\n this.sub2.unsubscribe();\n this.sub3.unsubscribe();\n clearInterval(this.intervalId);\n clearTimeout(this.timeout);\n }\n /**\n * activates toast and sets timeout\n */\n activateToast() {\n this.state = 'active';\n if (!(this.options.disableTimeOut === true || this.options.disableTimeOut === 'timeOut') && this.options.timeOut) {\n this.timeout = setTimeout(() => {\n this.remove();\n }, this.options.timeOut);\n this.hideTime = new Date().getTime() + this.options.timeOut;\n if (this.options.progressBar) {\n this.intervalId = setInterval(() => this.updateProgress(), 10);\n }\n }\n if (this.options.onActivateTick) {\n this.appRef.tick();\n }\n }\n /**\n * updates progress bar width\n */\n updateProgress() {\n if (this.width === 0 || this.width === 100 || !this.options.timeOut) {\n return;\n }\n const now = new Date().getTime();\n const remaining = this.hideTime - now;\n this.width = (remaining / this.options.timeOut) * 100;\n if (this.options.progressAnimation === 'increasing') {\n this.width = 100 - this.width;\n }\n if (this.width <= 0) {\n this.width = 0;\n }\n if (this.width >= 100) {\n this.width = 100;\n }\n }\n\n resetTimeout() {\n clearTimeout(this.timeout);\n clearInterval(this.intervalId);\n this.state = 'active';\n\n this.options.timeOut = this.originalTimeout;\n this.timeout = setTimeout(() => this.remove(), this.originalTimeout);\n this.hideTime = new Date().getTime() + (this.originalTimeout || 0);\n this.width = -1;\n if (this.options.progressBar) {\n this.intervalId = setInterval(() => this.updateProgress(), 10);\n }\n }\n\n /**\n * tells toastrService to remove this toast after animation time\n */\n remove() {\n if (this.state === 'removed') {\n return;\n }\n clearTimeout(this.timeout);\n this.state = 'removed';\n this.timeout = setTimeout(() =>\n this.toastrService.remove(this.toastPackage.toastId),\n );\n }\n @HostListener('click')\n tapToast() {\n if (this.state === 'removed') {\n return;\n }\n this.toastPackage.triggerTap();\n if (this.options.tapToDismiss) {\n this.remove();\n }\n }\n @HostListener('mouseenter')\n stickAround() {\n if (this.state === 'removed') {\n return;\n }\n clearTimeout(this.timeout);\n this.options.timeOut = 0;\n this.hideTime = 0;\n\n // disable progressBar\n clearInterval(this.intervalId);\n this.width = 0;\n }\n @HostListener('mouseleave')\n delayedHideToast() {\n if (\n (this.options.disableTimeOut === true || this.options.disableTimeOut === 'extendedTimeOut') ||\n this.options.extendedTimeOut === 0 ||\n this.state === 'removed'\n ) {\n return;\n }\n this.timeout = setTimeout(\n () => this.remove(),\n this.options.extendedTimeOut,\n );\n this.options.timeOut = this.options.extendedTimeOut;\n this.hideTime = new Date().getTime() + (this.options.timeOut || 0);\n this.width = -1;\n if (this.options.progressBar) {\n this.intervalId = setInterval(() => this.updateProgress(), 10);\n }\n }\n}\n\nexport const DefaultNoAnimationsGlobalConfig: GlobalConfig = {\n ...DefaultNoComponentGlobalConfig,\n toastComponent: ToastNoAnimation,\n};\n\n@NgModule({\n imports: [CommonModule],\n declarations: [ToastNoAnimation],\n exports: [ToastNoAnimation],\n entryComponents: [ToastNoAnimation],\n})\nexport class ToastNoAnimationModule {\n static forRoot(config: Partial<GlobalConfig> = {}): ModuleWithProviders<ToastNoAnimationModule> {\n return {\n ngModule: ToastNoAnimationModule,\n providers: [\n {\n provide: TOAST_CONFIG,\n useValue: {\n default: DefaultNoAnimationsGlobalConfig,\n config,\n },\n },\n ],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.Overlay","i1.ToastrService","i2.ToastPackage"],"mappings":";;;;;;;;MAUa,uBAAuB,CAAA;AAClC,IAAA,WAAA,CAAoB,EAAc,EAAA;AAAd,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;KAAK;IACvC,mBAAmB,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;KAC9B;;oHAJU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;wGAAvB,uBAAuB,EAAA,QAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE,gBAAgB;iBAC3B,CAAA;;MAYY,oBAAoB,CAAA;;iHAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;kHAApB,oBAAoB,EAAA,YAAA,EAAA,CAXpB,uBAAuB,CAAA,EAAA,OAAA,EAAA,CAAvB,uBAAuB,CAAA,EAAA,CAAA,CAAA;kHAWvB,oBAAoB,EAAA,CAAA,CAAA;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,uBAAuB,CAAC;oBACvC,OAAO,EAAE,CAAC,uBAAuB,CAAC;iBACnC,CAAA;;;ACRD;;AAEG;MACU,eAAe,CAAA;IAe1B,WAAY,CAAA,SAA2B,EAAE,QAAkB,EAAA;AACzD,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC1B;;IAGD,MAAM,CAAC,IAAoB,EAAE,WAAoB,EAAA;AAC/C,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;KACvC;;IAGD,MAAM,GAAA;AACJ,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC;AAChC,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;AAC/B,YAAA,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;AACtB,SAAA;KACF;;AAGD,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC;KACnC;AAED;;;AAGG;AACH,IAAA,eAAe,CAAC,IAAqB,EAAA;AACnC,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;KAC3B;AACF,CAAA;AAED;;;AAGG;MACmB,cAAc,CAAA;IAOlC,MAAM,CAAC,MAA4B,EAAE,WAAoB,EAAA;AACvD,QAAA,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;QAC9B,OAAO,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;KACxD;IAID,MAAM,GAAA;QACJ,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC;AACxC,SAAA;AAED,QAAA,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACjC,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,EAAE,CAAC;AAClB,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;AAC7B,SAAA;KACF;AAED,IAAA,YAAY,CAAC,EAAc,EAAA;AACzB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;KACtB;AACF;;AC0DD;;AAEG;MACU,YAAY,CAAA;IAIvB,WACS,CAAA,OAAe,EACf,MAAwB,EACxB,OAAkC,EAClC,KAAyB,EACzB,SAAiB,EACjB,QAAuB,EAAA;AALvB,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;AACf,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAkB;AACxB,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAA2B;AAClC,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAoB;AACzB,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAQ;AACjB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAe;AATxB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,OAAO,EAAQ,CAAC;AAC7B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAO,CAAC;QAUrC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAK;AACzC,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;AAC1B,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;AACzB,SAAC,CAAC,CAAC;KACJ;;IAGD,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AACnB,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;AAC5B,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;AACxB,SAAA;KACF;IAED,KAAK,GAAA;AACH,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;KACnC;;AAGD,IAAA,aAAa,CAAC,MAAY,EAAA;AACxB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC7B;IAED,QAAQ,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;KACtC;AACF,CAAA;AAUY,MAAA,8BAA8B,GAAiB;AAC1D,IAAA,SAAS,EAAE,CAAC;AACZ,IAAA,WAAW,EAAE,KAAK;AAClB,IAAA,WAAW,EAAE,IAAI;AACjB,IAAA,iBAAiB,EAAE,KAAK;AACxB,IAAA,eAAe,EAAE,KAAK;AACtB,IAAA,uBAAuB,EAAE,KAAK;AAC9B,IAAA,sBAAsB,EAAE,KAAK;AAE7B,IAAA,WAAW,EAAE;AACX,QAAA,KAAK,EAAE,aAAa;AACpB,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,OAAO,EAAE,eAAe;AACzB,KAAA;;AAGD,IAAA,WAAW,EAAE,KAAK;AAClB,IAAA,cAAc,EAAE,KAAK;AACrB,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,eAAe,EAAE,IAAI;AACrB,IAAA,UAAU,EAAE,KAAK;AACjB,IAAA,WAAW,EAAE,KAAK;AAClB,IAAA,UAAU,EAAE,YAAY;AACxB,IAAA,aAAa,EAAE,iBAAiB;AAChC,IAAA,UAAU,EAAE,aAAa;AACzB,IAAA,YAAY,EAAE,eAAe;AAC7B,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,YAAY,EAAE,IAAI;AAClB,IAAA,cAAc,EAAE,KAAK;AACrB,IAAA,iBAAiB,EAAE,YAAY;AAE/B,IAAA,OAAO,EAAE,IAAI;EACb;MAOW,YAAY,GAAG,IAAI,cAAc,CAAa,aAAa;;AClPxE;;AAEG;MACU,QAAQ,CAAA;AAkBnB,IAAA,WAAA,CAAoB,WAAuB,EAAA;AAAvB,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;;AAbnC,QAAA,IAAe,CAAA,eAAA,GAAG,CAAC,CAAC;;AAGpB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAQ,CAAC;;AAEnC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAQ,CAAC;;AAEhC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAQ,CAAC;;AAEnC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAQ,CAAC;;AAEpC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,OAAO,EAAU,CAAC;KAED;IAE/C,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;KAC9B;IAED,YAAY,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;KACzC;IAED,YAAY,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;KAC1C;IAED,cAAc,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;KAC5C;AAED;;AAEG;IACH,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;KACjC;;IAGD,WAAW,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;KACzC;IAED,UAAU,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;KACjC;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;KAC3B;;IAGD,aAAa,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;KACtC;;IAGD,WAAW,CAAC,YAAqB,EAAE,cAAuB,EAAA;AACxD,QAAA,IAAI,YAAY,EAAE;AAChB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC3B,SAAA;AACD,QAAA,IAAI,cAAc,EAAE;YAClB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AACnD,SAAA;KACF;AACF,CAAA;AAED;MACa,aAAa,CAAA;IACxB,WACU,CAAA,aAA2B,EAC3B,eAAyB,EAAA;AADzB,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAc;AAC3B,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAU;KAC/B;AAEJ,IAAA,GAAG,CAAI,KAAU,EAAE,aAAiB,EAAE,KAAmB,EAAA;QACvD,IAAI,KAAK,KAAK,YAAY,EAAE;YAC1B,OAAO,IAAI,CAAC,aAAa,CAAC;AAC3B,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAI,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;KACjE;AACF;;AC9FD;;;;;AAKG;AACG,MAAO,aAAc,SAAQ,cAAc,CAAA;AAC/C,IAAA,WAAA,CACU,eAAwB,EACxB,yBAAmD,EACnD,OAAuB,EAAA;AAE/B,QAAA,KAAK,EAAE,CAAC;AAJA,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAS;AACxB,QAAA,IAAyB,CAAA,yBAAA,GAAzB,yBAAyB,CAA0B;AACnD,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAgB;KAGhC;AAED;;;AAGG;IACH,qBAAqB,CACnB,MAA0B,EAC1B,WAAoB,EAAA;AAEpB,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,yBAAyB,CAAC,uBAAuB,CAC7E,MAAM,CAAC,SAAS,CACjB,CAAC;AACF,QAAA,IAAI,YAA6B,CAAC;;;;;;QAOlC,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;;;;;QAMxD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AAE/C,QAAA,IAAI,CAAC,YAAY,CAAC,MAAK;YACrB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC/C,YAAY,CAAC,OAAO,EAAE,CAAC;AACzB,SAAC,CAAC,CAAC;;;AAIH,QAAA,IAAI,WAAW,EAAE;AACf,YAAA,IAAI,CAAC,eAAe,CAAC,YAAY,CAC/B,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,EACxC,IAAI,CAAC,eAAe,CAAC,UAAU,CAChC,CAAC;AACH,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,eAAe,CAAC,WAAW,CAC9B,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,CACzC,CAAC;AACH,SAAA;AAED,QAAA,OAAO,YAAY,CAAC;KACrB;;AAGO,IAAA,qBAAqB,CAAC,YAA+B,EAAA;QAC3D,OAAQ,YAAY,CAAC,QAAiC,CAAC,SAAS,CAAC,CAAC,CAAgB,CAAC;KACpF;AACF;;ACvED;;;AAGG;MACU,UAAU,CAAA;AACrB,IAAA,WAAA,CAAoB,WAA2B,EAAA;AAA3B,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAgB;KAAI;AAEnD,IAAA,MAAM,CACJ,MAA4B,EAC5B,WAAA,GAAuB,IAAI,EAAA;QAE3B,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;KACrD;AAED;;;AAGG;IACH,MAAM,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;KAClC;AACF;;ACrBD;MAEa,gBAAgB,CAAA;AAG3B,IAAA,WAAA,CAAwC,SAAc,EAAA;AAAd,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAK;KAAI;IAE1D,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE;YAC/D,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACvE,SAAA;KACF;AAED;;;;;AAKG;IACH,mBAAmB,GAAA;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC3B,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACzB,SAAA;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC;KAC/B;AAED;;;;AAIG;IACO,gBAAgB,GAAA;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACtD,QAAA,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AAC7C,QAAA,SAAS,CAAC,YAAY,CAAC,WAAW,EAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AAC3C,QAAA,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;KACpC;;AAnCU,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,kBAGP,QAAQ,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAHjB,gBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cADH,MAAM,EAAA,CAAA,CAAA;2FACnB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;8BAInB,MAAM;+BAAC,QAAQ,CAAA;;;;ACR9B;AASA;;;;;;;AAOG;MAEU,OAAO,CAAA;AAIlB,IAAA,WAAA,CACU,iBAAmC,EACnC,yBAAmD,EACnD,OAAuB,EACL,SAAc,EAAA;AAHhC,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAkB;AACnC,QAAA,IAAyB,CAAA,yBAAA,GAAzB,yBAAyB,CAA0B;AACnD,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAgB;AACL,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAK;;AANlC,QAAA,IAAA,CAAA,aAAa,GAA8D,IAAI,GAAG,EAAE,CAAC;KAOzF;AACJ;;;AAGG;IACH,MAAM,CAAC,aAAsB,EAAE,gBAA0C,EAAA;;AAEvE,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC,CAAC;KACrF;AAED,IAAA,cAAc,CACZ,aAAA,GAAwB,EAAE,EAC1B,gBAA0C,EAAA;QAE1C,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,gBAA2C,CAAC,EAAE;YACxE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,gBAA2C,EAAE,EAAE,CAAC,CAAC;AACzE,SAAA;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,gBAA2C,CAAE,CAAC,aAAa,CAAC,EAAE;AACxF,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,gBAA2C,CAAE,CAClE,aAAa,CACd,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;AAC9D,SAAA;QAED,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,gBAA2C,CAAE,CAAC,aAAa,CAAC,CAAC;KAC5F;AAED;;;AAGG;IACK,kBAAkB,CACxB,aAAqB,EACrB,gBAA0C,EAAA;QAE1C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAEjD,QAAA,IAAI,CAAC,EAAE,GAAG,iBAAiB,CAAC;AAC5B,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAClC,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAEtC,IAAI,CAAC,gBAAgB,EAAE;YACrB,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAChE,SAAA;AAAM,aAAA;YACL,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC1D,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;AACK,IAAA,iBAAiB,CAAC,IAAiB,EAAA;AACzC,QAAA,OAAO,IAAI,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,yBAAyB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;KAC9E;AAED;;;AAGG;AACK,IAAA,iBAAiB,CAAC,IAAiB,EAAA;QACzC,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;KACrD;;AA1EU,OAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,OAAO,qHAQR,QAAQ,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AARP,OAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,OAAO,cADM,MAAM,EAAA,CAAA,CAAA;2FACnB,OAAO,EAAA,UAAA,EAAA,CAAA;kBADnB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;8BAS7B,MAAM;+BAAC,QAAQ,CAAA;;;;MCaP,aAAa,CAAA;IAQxB,WACwB,CAAA,KAAiB,EAC/B,OAAgB,EAChB,SAAmB,EACnB,SAAuB,EACvB,MAAc,EAAA;AAHd,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;AAChB,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAU;AACnB,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;AACvB,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AAXxB,QAAA,IAAe,CAAA,eAAA,GAAG,CAAC,CAAC;AACpB,QAAA,IAAM,CAAA,MAAA,GAAuB,EAAE,CAAC;AAGxB,QAAA,IAAK,CAAA,KAAA,GAAG,CAAC,CAAC;QAShB,IAAI,CAAC,YAAY,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACZ,KAAK,CAAC,OAAO,CAAA,EACb,KAAK,CAAC,MAAM,CAChB,CAAC;AACF,QAAA,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE;AAC5B,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACxB,KAAK,CAAC,OAAO,CAAC,WAAW,GACzB,KAAK,CAAC,MAAM,CAAC,WAAW,CAC5B,CAAC;AACH,SAAA;KACF;;IAED,IAAI,CAAC,OAAgB,EAAE,KAAc,EAAE,WAAsC,EAAE,EAAE,IAAI,GAAG,EAAE,EAAA;AACxF,QAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;KACrF;;AAED,IAAA,OAAO,CAAC,OAAgB,EAAE,KAAc,EAAE,WAAsC,EAAE,EAAA;QAChF,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,IAAI,EAAE,CAAC;AACzD,QAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;KACrF;;AAED,IAAA,KAAK,CAAC,OAAgB,EAAE,KAAc,EAAE,WAAsC,EAAE,EAAA;QAC9E,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC;AACvD,QAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;KACrF;;AAED,IAAA,IAAI,CAAC,OAAgB,EAAE,KAAc,EAAE,WAAsC,EAAE,EAAA;QAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,IAAI,EAAE,CAAC;AACtD,QAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;KACrF;;AAED,IAAA,OAAO,CAAC,OAAgB,EAAE,KAAc,EAAE,WAAsC,EAAE,EAAA;QAChF,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,IAAI,EAAE,CAAC;AACzD,QAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;KACrF;AACD;;AAEG;AACH,IAAA,KAAK,CAAC,OAAgB,EAAA;;AAEpB,QAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;YAC/B,IAAI,OAAO,KAAK,SAAS,EAAE;AACzB,gBAAA,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,EAAE;AAC7B,oBAAA,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;oBAC7B,OAAO;AACR,iBAAA;AACF,aAAA;AAAM,iBAAA;AACL,gBAAA,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;AAC9B,aAAA;AACF,SAAA;KACF;AACD;;AAEG;AACH,IAAA,MAAM,CAAC,OAAe,EAAA;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AACD,QAAA,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;AAChD,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AACvD,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;AAC3F,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC;AACrD,YAAA,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE;gBACnB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;gBAChD,CAAC,CAAC,QAAQ,EAAE,CAAC;AACd,aAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;IACH,aAAa,CAAC,KAAK,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,gBAAyB,EAAE,eAAwB,EAAA;AACzF,QAAA,MAAM,EAAE,sBAAsB,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;AAErD,QAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;YAC/B,MAAM,iBAAiB,GAAG,sBAAsB,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC;AAC1E,YAAA,IAAI,CAAC,CAAC,sBAAsB,IAAI,iBAAiB,KAAK,KAAK,CAAC,OAAO,KAAK,OAAO,EAAE;gBAC/E,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;AAC9D,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AACF,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACb;;IAGO,WAAW,CAAC,WAAsC,EAAE,EAAA;AAC1D,QAAA,OAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAY,IAAI,CAAC,YAAY,CAAA,EAAK,QAAQ,CAAG,CAAA;KAC9C;AAED;;AAEG;AACK,IAAA,UAAU,CAAC,OAAe,EAAA;AAChC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC3C,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,EAAE;AACtC,gBAAA,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;AAClD,aAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;AACK,IAAA,qBAAqB,CAC3B,SAAiB,EACjB,OAA2B,EAC3B,KAAyB,EACzB,MAAoB,EAAA;QAEpB,IAAI,MAAM,CAAC,cAAc,EAAE;YACzB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAC1F,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;KACnE;AAED;;;AAGG;AACK,IAAA,kBAAkB,CACxB,SAAiB,EACjB,OAA2B,EAC3B,KAAyB,EACzB,MAAoB,EAAA;AAEpB,QAAA,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;AAC1B,YAAA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;AAC5C,SAAA;;;;AAID,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAClC,KAAK,EACL,OAAO,EACP,IAAI,CAAC,YAAY,CAAC,uBAAuB,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAC/D,IAAI,CAAC,YAAY,CAAC,eAAe,CAClC,CAAC;AACF,QAAA,IACE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,sBAAsB,IAAI,KAAK,KAAK,OAAO;YAC/D,IAAI,CAAC,YAAY,CAAC,iBAAiB;YACnC,SAAS,KAAK,IAAI,EAClB;AACA,YAAA,OAAO,SAAS,CAAC;AAClB,SAAA;AAED,QAAA,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC;QACpC,IAAI,YAAY,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;YACtF,YAAY,GAAG,IAAI,CAAC;AACpB,YAAA,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;AACjC,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AACpC,aAAA;AACF,SAAA;AAED,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACpF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QAC5B,IAAI,gBAAgB,GAA8B,OAAO,CAAC;AAC1D,QAAA,IAAI,OAAO,IAAI,MAAM,CAAC,UAAU,EAAE;AAChC,YAAA,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC3E,SAAA;AAED,QAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC1C,QAAA,MAAM,YAAY,GAAG,IAAI,YAAY,CACnC,IAAI,CAAC,KAAK,EACV,MAAM,EACN,gBAAgB,EAChB,KAAK,EACL,SAAS,EACT,QAAQ,CACT,CAAC;QACF,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACtE,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;AAC5E,QAAA,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AAC3E,QAAA,QAAQ,CAAC,iBAAiB,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC7C,QAAA,MAAM,GAAG,GAAqB;YAC5B,OAAO,EAAE,IAAI,CAAC,KAAK;YACnB,KAAK,EAAE,KAAK,IAAI,EAAE;YAClB,OAAO,EAAE,OAAO,IAAI,EAAE;YACtB,QAAQ;AACR,YAAA,OAAO,EAAE,QAAQ,CAAC,aAAa,EAAE;AACjC,YAAA,QAAQ,EAAE,QAAQ,CAAC,WAAW,EAAE;AAChC,YAAA,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE;AAC3B,YAAA,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE;YACjC,MAAM;SACP,CAAC;QAEF,IAAI,CAAC,YAAY,EAAE;YACjB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;YAChD,UAAU,CAAC,MAAK;AACd,gBAAA,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAC1B,aAAC,CAAC,CAAC;AACJ,SAAA;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtB,QAAA,OAAO,GAAG,CAAC;KACZ;;AA3NU,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,kBASd,YAAY,EAAA,EAAA,EAAA,KAAA,EAAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AATX,aAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cADA,MAAM,EAAA,CAAA,CAAA;2FACnB,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;8BAU7B,MAAM;+BAAC,YAAY,CAAA;;;;MCOX,KAAK,CAAA;AAsChB,IAAA,WAAA,CACY,aAA4B,EAC/B,YAA0B,EACvB,MAAe,EAAA;AAFf,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;AAC/B,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AACvB,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAS;;AAlC3B,QAAA,IAAK,CAAA,KAAA,GAAG,CAAC,CAAC,CAAC;;AAEW,QAAA,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;;QAGxC,IAAA,CAAA,KAAK,GAAG;AACN,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,MAAM,EAAE;AACN,gBAAA,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ;AAC3C,gBAAA,MAAM,EAAE,SAAS;AAClB,aAAA;SACF,CAAC;AAyBA,QAAA,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;AACpC,QAAA,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;AAChC,QAAA,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC;QACnC,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC;AACnD,QAAA,IAAI,CAAC,YAAY,GAAG,CAAA,EAAG,YAAY,CAAC,SAAS,CAC3C,CAAA,EAAA,YAAY,CAAC,MAAM,CAAC,UACtB,EAAE,CAAC;AACH,QAAA,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,MAAK;YAC9D,IAAI,CAAC,aAAa,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,MAAK;YAC9D,IAAI,CAAC,MAAM,EAAE,CAAC;AAChB,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,MAAK;YAC9D,IAAI,CAAC,YAAY,EAAE,CAAC;AACtB,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,KAAK,IAAG;AACnE,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC/B,SAAC,CAAC,CAAC;KACJ;;AAzCD,IAAA,IACI,YAAY,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,UAAU,EAAE;AACnC,YAAA,OAAO,MAAM,CAAC;AACf,SAAA;QAED,OAAO;KACR;IAmCD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AACxB,QAAA,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC/B,QAAA,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC5B;AACD;;AAEG;IACH,aAAa,GAAA;QACX,IAAI,CAAC,KAAK,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAQ,IAAI,CAAC,KAAK,CAAA,EAAA,EAAE,KAAK,EAAE,QAAQ,EAAA,CAAE,CAAC;QAChD,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AAChH,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC/D,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AAC5D,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;AAC5B,gBAAA,IAAI,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;AACvD,aAAA;AACF,SAAA;KACF;AACD;;AAEG;IACH,cAAc,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACnE,OAAO;AACR,SAAA;QACD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;AACjC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;AACtC,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC;AACtD,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,KAAK,YAAY,EAAE;YACnD,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;AAC/B,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE;AACnB,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AAChB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,GAAG,EAAE;AACrB,YAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;AAClB,SAAA;KACF;IAED,YAAY,GAAA;AACV,QAAA,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3B,QAAA,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAQ,IAAI,CAAC,KAAK,CAAA,EAAA,EAAE,KAAK,EAAE,QAAQ,EAAA,CAAE,CAAC;AAEhD,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC;AAC5C,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;AACnE,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AAChB,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;AAC5B,YAAA,IAAI,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;AACvD,SAAA;KACF;AAED;;AAEG;IACH,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE;YAClC,OAAO;AACR,SAAA;AACD,QAAA,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAQ,IAAI,CAAC,KAAK,CAAA,EAAA,EAAE,KAAK,EAAE,SAAS,EAAA,CAAE,CAAC;AACjD,QAAA,IAAI,CAAC,cAAc,CACjB,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAC1D,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CACnC,CAAC;KACH;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE;YAClC,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;AAC/B,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;YAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;AACf,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE;YAClC,OAAO;AACR,SAAA;AACD,QAAA,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;;AAGlB,QAAA,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;KAChB;IAED,gBAAgB,GAAA;AACd,QAAA,IACE,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,KAAK,iBAAiB;AAC1F,YAAA,IAAI,CAAC,OAAO,CAAC,eAAe,KAAK,CAAC;AAClC,YAAA,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,EAC9B;YACA,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACvE,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;AACpD,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;AACnE,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AAChB,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;AAC5B,YAAA,IAAI,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;AACvD,SAAA;KACF;IAED,cAAc,CAAC,IAAe,EAAE,OAAe,EAAA;QAC7C,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAC3B,OACG,IAAI,CAAC,OAAO,GAAG,UAAU,CACxB,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EACjC,OAAO,CACR,CAAC,CACL,CAAC;AACH,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,MAAM,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;AAClD,SAAA;KACF;IAED,eAAe,CAAC,IAAe,EAAE,OAAe,EAAA;QAC9C,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAC3B,OACG,IAAI,CAAC,UAAU,GAAG,WAAW,CAC5B,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EACjC,OAAO,CACR,CAAC,CACL,CAAC;AACH,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,MAAM,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;AACtD,SAAA;KACF;AAEO,IAAA,gBAAgB,CAAC,IAAe,EAAA;QACtC,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;AAC/B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,EAAE,CAAC;AACR,SAAA;KACF;;kGAhNU,KAAK,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAL,KAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAK,EAnCN,QAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;AAiBT,EAAA,CAAA,EACW,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA;QACV,OAAO,CAAC,UAAU,EAAE;YAClB,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;YACxC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;YACtC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AACvC,YAAA,UAAU,CACR,oBAAoB,EACpB,OAAO,CAAC,+BAA+B,CAAC,CACzC;AACD,YAAA,UAAU,CACR,mBAAmB,EACnB,OAAO,CAAC,+BAA+B,CAAC,CACzC;SACF,CAAC;AACH,KAAA,EAAA,CAAA,CAAA;2FAGU,KAAK,EAAA,UAAA,EAAA,CAAA;kBArCjB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;AAiBT,EAAA,CAAA;AACD,oBAAA,UAAU,EAAE;wBACV,OAAO,CAAC,UAAU,EAAE;4BAClB,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;4BACxC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;4BACtC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AACvC,4BAAA,UAAU,CACR,oBAAoB,EACpB,OAAO,CAAC,+BAA+B,CAAC,CACzC;AACD,4BAAA,UAAU,CACR,mBAAmB,EACnB,OAAO,CAAC,+BAA+B,CAAC,CACzC;yBACF,CAAC;AACH,qBAAA;AACD,oBAAA,mBAAmB,EAAE,KAAK;iBAC3B,CAAA;8IAUuB,YAAY,EAAA,CAAA;sBAAjC,WAAW;uBAAC,OAAO,CAAA;gBAGpB,KAAK,EAAA,CAAA;sBADJ,WAAW;uBAAC,WAAW,CAAA;gBAWpB,YAAY,EAAA,CAAA;sBADf,WAAW;uBAAC,eAAe,CAAA;gBAiH5B,QAAQ,EAAA,CAAA;sBADP,YAAY;uBAAC,OAAO,CAAA;gBAWrB,WAAW,EAAA,CAAA;sBADV,YAAY;uBAAC,YAAY,CAAA;gBAc1B,gBAAgB,EAAA,CAAA;sBADf,YAAY;uBAAC,YAAY,CAAA;;;ACzMf,MAAA,mBAAmB,GAC3B,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,8BAA8B,KACjC,cAAc,EAAE,KAAK,EAAA,EACrB;MAQW,YAAY,CAAA;AACvB,IAAA,OAAO,OAAO,CAAC,MAAA,GAAgC,EAAE,EAAA;QAC/C,OAAO;AACL,YAAA,QAAQ,EAAE,YAAY;AACtB,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,YAAY;AACrB,oBAAA,QAAQ,EAAE;AACR,wBAAA,OAAO,EAAE,mBAAmB;wBAC5B,MAAM;AACP,qBAAA;AACF,iBAAA;AACF,aAAA;SACF,CAAC;KACH;;yGAdU,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAZ,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,EAJR,YAAA,EAAA,CAAA,KAAK,CADV,EAAA,OAAA,EAAA,CAAA,YAAY,aAEZ,KAAK,CAAA,EAAA,CAAA,CAAA;0GAGJ,YAAY,EAAA,OAAA,EAAA,CALd,CAAC,YAAY,CAAC,CAAA,EAAA,CAAA,CAAA;2FAKZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBANxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE,CAAC,KAAK,CAAC;oBACrB,OAAO,EAAE,CAAC,KAAK,CAAC;oBAChB,eAAe,EAAE,CAAC,KAAK,CAAC;iBACzB,CAAA;;MAqBY,yBAAyB,CAAA;AACpC,IAAA,OAAO,OAAO,CAAC,MAAA,GAAgC,EAAE,EAAA;QAC/C,OAAO;AACL,YAAA,QAAQ,EAAE,YAAY;AACtB,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,YAAY;AACrB,oBAAA,QAAQ,EAAE;AACR,wBAAA,OAAO,EAAE,8BAA8B;wBACvC,MAAM;AACP,qBAAA;AACF,iBAAA;AACF,aAAA;SACF,CAAC;KACH;;sHAdU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,YAF1B,YAAY,CAAA,EAAA,CAAA,CAAA;uHAEX,yBAAyB,EAAA,OAAA,EAAA,CAF3B,CAAC,YAAY,CAAC,CAAA,EAAA,CAAA,CAAA;2FAEZ,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;iBACxB,CAAA;;;MCGY,gBAAgB,CAAA;AA6B3B,IAAA,WAAA,CACY,aAA4B,EAC/B,YAA0B,EACvB,MAAsB,EAAA;AAFtB,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;AAC/B,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AACvB,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAgB;;AAzBlC,QAAA,IAAK,CAAA,KAAA,GAAG,CAAC,CAAC,CAAC;;AAEW,QAAA,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;;AAWxC,QAAA,IAAK,CAAA,KAAA,GAAG,UAAU,CAAC;AAcjB,QAAA,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;AACpC,QAAA,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;AAChC,QAAA,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC;QACnC,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC;AACnD,QAAA,IAAI,CAAC,YAAY,GAAG,CAAA,EAAG,YAAY,CAAC,SAAS,CAC3C,CAAA,EAAA,YAAY,CAAC,MAAM,CAAC,UACtB,EAAE,CAAC;AACH,QAAA,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,MAAK;YAC9D,IAAI,CAAC,aAAa,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,MAAK;YAC9D,IAAI,CAAC,MAAM,EAAE,CAAC;AAChB,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,MAAK;YAC9D,IAAI,CAAC,YAAY,EAAE,CAAC;AACtB,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,KAAK,IAAG;AACnE,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC/B,SAAC,CAAC,CAAC;KACJ;;AAzCD,IAAA,IACI,YAAY,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE;AAC7B,YAAA,OAAO,MAAM,CAAC;AACf,SAAA;KACF;IAqCD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AACxB,QAAA,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC/B,QAAA,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC5B;AACD;;AAEG;IACH,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AAChH,YAAA,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,MAAK;gBAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;AAChB,aAAC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACzB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AAC5D,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;AAC5B,gBAAA,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;AAChE,aAAA;AACF,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;AAC/B,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AACpB,SAAA;KACF;AACD;;AAEG;IACH,cAAc,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACnE,OAAO;AACR,SAAA;QACD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;AACjC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;AACtC,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC;AACtD,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,KAAK,YAAY,EAAE;YACnD,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;AAC/B,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE;AACnB,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AAChB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,GAAG,EAAE;AACrB,YAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;AAClB,SAAA;KACF;IAED,YAAY,GAAA;AACV,QAAA,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3B,QAAA,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QAEtB,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC;AAC5C,QAAA,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AACrE,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC;AACnE,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AAChB,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;AAC5B,YAAA,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;AAChE,SAAA;KACF;AAED;;AAEG;IACH,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;YAC5B,OAAO;AACR,SAAA;AACD,QAAA,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,MACxB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CACrD,CAAC;KACH;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;YAC5B,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;AAC/B,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;YAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;AACf,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;YAC5B,OAAO;AACR,SAAA;AACD,QAAA,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;;AAGlB,QAAA,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;KAChB;IAED,gBAAgB,GAAA;AACd,QAAA,IACE,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,KAAK,iBAAiB;AAC1F,YAAA,IAAI,CAAC,OAAO,CAAC,eAAe,KAAK,CAAC;AAClC,YAAA,IAAI,CAAC,KAAK,KAAK,SAAS,EACxB;YACA,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,OAAO,GAAG,UAAU,CACvB,MAAM,IAAI,CAAC,MAAM,EAAE,EACnB,IAAI,CAAC,OAAO,CAAC,eAAe,CAC7B,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;AACpD,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;AACnE,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AAChB,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;AAC5B,YAAA,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;AAChE,SAAA;KACF;;6GA1KU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,EAnBjB,QAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;AAiBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAEU,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBArB5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;AAiBT,EAAA,CAAA;iBACF,CAAA;sJAUuB,YAAY,EAAA,CAAA;sBAAjC,WAAW;uBAAC,OAAO,CAAA;gBAIhB,YAAY,EAAA,CAAA;sBADf,WAAW;uBAAC,eAAe,CAAA;gBAqH5B,QAAQ,EAAA,CAAA;sBADP,YAAY;uBAAC,OAAO,CAAA;gBAWrB,WAAW,EAAA,CAAA;sBADV,YAAY;uBAAC,YAAY,CAAA;gBAc1B,gBAAgB,EAAA,CAAA;sBADf,YAAY;uBAAC,YAAY,CAAA;;AAsBf,MAAA,+BAA+B,GACvC,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,8BAA8B,KACjC,cAAc,EAAE,gBAAgB,EAAA,EAChC;MAQW,sBAAsB,CAAA;AACjC,IAAA,OAAO,OAAO,CAAC,MAAA,GAAgC,EAAE,EAAA;QAC/C,OAAO;AACL,YAAA,QAAQ,EAAE,sBAAsB;AAChC,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,YAAY;AACrB,oBAAA,QAAQ,EAAE;AACR,wBAAA,OAAO,EAAE,+BAA+B;wBACxC,MAAM;AACP,qBAAA;AACF,iBAAA;AACF,aAAA;SACF,CAAC;KACH;;mHAdU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,EAxLtB,YAAA,EAAA,CAAA,gBAAgB,CAmLjB,EAAA,OAAA,EAAA,CAAA,YAAY,aAnLX,gBAAgB,CAAA,EAAA,CAAA,CAAA;oHAwLhB,sBAAsB,EAAA,OAAA,EAAA,CALxB,CAAC,YAAY,CAAC,CAAA,EAAA,CAAA,CAAA;2FAKZ,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE,CAAC,gBAAgB,CAAC;oBAChC,OAAO,EAAE,CAAC,gBAAgB,CAAC;oBAC3B,eAAe,EAAE,CAAC,gBAAgB,CAAC;iBACpC,CAAA;;;AClOD;;AAEG;;;;"}
|
1
|
+
{"version":3,"file":"ngx-toastr.mjs","sources":["../../src/lib/toastr/toast.directive.ts","../../src/lib/portal/portal.ts","../../src/lib/toastr/toastr-config.ts","../../src/lib/toastr/toast-injector.ts","../../src/lib/portal/dom-portal-host.ts","../../src/lib/overlay/overlay-ref.ts","../../src/lib/overlay/overlay-container.ts","../../src/lib/overlay/overlay.ts","../../src/lib/toastr/toastr.service.ts","../../src/lib/toastr/toast.component.ts","../../src/lib/toastr/toastr.module.ts","../../src/lib/toastr/toast-noanimation.component.ts","../../src/lib/ngx-toastr.ts"],"sourcesContent":["import {\n Directive,\n ElementRef,\n NgModule,\n} from '@angular/core';\n\n@Directive({\n selector: '[toastContainer]',\n exportAs: 'toastContainer',\n})\nexport class ToastContainerDirective {\n constructor(private el: ElementRef) { }\n getContainerElement(): HTMLElement {\n return this.el.nativeElement;\n }\n}\n\n@NgModule({\n declarations: [ToastContainerDirective],\n exports: [ToastContainerDirective],\n})\nexport class ToastContainerModule {}\n","import {\n ComponentRef,\n Injector,\n ViewContainerRef\n} from '@angular/core';\n\nexport interface ComponentType<T> {\n // eslint-disable-next-line @typescript-eslint/prefer-function-type\n new (...args: any[]): T;\n}\n\n\n/**\n * A `ComponentPortal` is a portal that instantiates some Component upon attachment.\n */\nexport class ComponentPortal<T> {\n private _attachedHost?: BasePortalHost;\n /** The type of the component that will be instantiated for attachment. */\n component: ComponentType<T>;\n\n /**\n * [Optional] Where the attached component should live in Angular's *logical* component tree.\n * This is different from where the component *renders*, which is determined by the PortalHost.\n * The origin necessary when the host is outside of the Angular application context.\n */\n viewContainerRef!: ViewContainerRef;\n\n /** Injector used for the instantiation of the component. */\n injector: Injector;\n\n constructor(component: ComponentType<T>, injector: Injector) {\n this.component = component;\n this.injector = injector;\n }\n\n /** Attach this portal to a host. */\n attach(host: BasePortalHost, newestOnTop: boolean): ComponentRef<any> {\n this._attachedHost = host;\n return host.attach(this, newestOnTop);\n }\n\n /** Detach this portal from its host */\n detach() {\n const host = this._attachedHost;\n if (host) {\n this._attachedHost = undefined;\n return host.detach();\n }\n }\n\n /** Whether this portal is attached to a host. */\n get isAttached(): boolean {\n return this._attachedHost != null;\n }\n\n /**\n * Sets the PortalHost reference without performing `attach()`. This is used directly by\n * the PortalHost when it is performing an `attach()` or `detach()`.\n */\n setAttachedHost(host?: BasePortalHost) {\n this._attachedHost = host;\n }\n}\n\n/**\n * Partial implementation of PortalHost that only deals with attaching a\n * ComponentPortal\n */\nexport abstract class BasePortalHost {\n /** The portal currently attached to the host. */\n private _attachedPortal?: ComponentPortal<any>;\n\n /** A function that will permanently dispose this host. */\n private _disposeFn?: () => void;\n\n attach(portal: ComponentPortal<any>, newestOnTop: boolean) {\n this._attachedPortal = portal;\n return this.attachComponentPortal(portal, newestOnTop);\n }\n\n abstract attachComponentPortal<T>(portal: ComponentPortal<T>, newestOnTop: boolean): ComponentRef<T>;\n\n detach() {\n if (this._attachedPortal) {\n this._attachedPortal.setAttachedHost();\n }\n\n this._attachedPortal = undefined;\n if (this._disposeFn) {\n this._disposeFn();\n this._disposeFn = undefined;\n }\n }\n\n setDisposeFn(fn: () => void) {\n this._disposeFn = fn;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nimport { Observable, Subject } from 'rxjs';\n\nimport { ComponentType } from '../portal/portal';\nimport { ToastRef } from './toast-injector';\n\nexport type ProgressAnimationType = 'increasing' | 'decreasing';\n\n/**\n * Configuration for an individual toast.\n */\nexport interface IndividualConfig {\n /**\n * disable both timeOut and extendedTimeOut\n * default: false\n */\n disableTimeOut: boolean | 'timeOut' | 'extendedTimeOut';\n /**\n * toast time to live in milliseconds\n * default: 5000\n */\n timeOut: number;\n /**\n * toast show close button\n * default: false\n */\n closeButton: boolean;\n /**\n * time to close after a user hovers over toast\n * default: 1000\n */\n extendedTimeOut: number;\n /**\n * show toast progress bar\n * default: false\n */\n progressBar: boolean;\n\n /**\n * changes toast progress bar animation\n * default: decreasing\n */\n progressAnimation: ProgressAnimationType;\n\n /**\n * render html in toast message (possibly unsafe)\n * default: false\n */\n enableHtml: boolean;\n /**\n * css class on toast component\n * default: ngx-toastr\n */\n toastClass: string;\n /**\n * css class on toast container\n * default: toast-top-right\n */\n positionClass: string;\n /**\n * css class on toast title\n * default: toast-title\n */\n titleClass: string;\n /**\n * css class on toast message\n * default: toast-message\n */\n messageClass: string;\n /**\n * animation easing on toast\n * default: ease-in\n */\n easing: string;\n /**\n * animation ease time on toast\n * default: 300\n */\n easeTime: string | number;\n /**\n * clicking on toast dismisses it\n * default: true\n */\n tapToDismiss: boolean;\n /**\n * Angular toast component to be shown\n * default: Toast\n */\n toastComponent?: ComponentType<any>;\n /**\n * Helps show toast from a websocket or from event outside Angular\n * default: false\n */\n onActivateTick: boolean;\n /**\n * New toast placement\n * default: true\n */\n newestOnTop: boolean;\n\n /**\n * payload to pass to the toastComponent\n * default: null\n */\n payload: any;\n}\n\nexport interface ToastrIconClasses {\n error: string;\n info: string;\n success: string;\n warning: string;\n [key: string]: string;\n}\n\n/**\n * Global Toast configuration\n * Includes all IndividualConfig\n */\nexport interface GlobalConfig extends IndividualConfig {\n /**\n * max toasts opened. Toasts will be queued\n * Zero is unlimited\n * default: 0\n */\n maxOpened: number;\n /**\n * dismiss current toast when max is reached\n * default: false\n */\n autoDismiss: boolean;\n iconClasses: Partial<ToastrIconClasses>;\n /**\n * block duplicate messages\n * default: false\n */\n preventDuplicates: boolean;\n /**\n * display the number of duplicate messages\n * default: false\n */\n countDuplicates: boolean;\n /**\n * Reset toast timeout when there's a duplicate (preventDuplicates needs to be set to true)\n * default: false\n */\n resetTimeoutOnDuplicate: boolean;\n /**\n * consider the title of a toast when checking if duplicate\n * default: false\n */\n includeTitleDuplicates: boolean;\n}\n\n/**\n * Everything a toast needs to launch\n */\nexport class ToastPackage {\n private _onTap = new Subject<void>();\n private _onAction = new Subject<any>();\n\n constructor(\n public toastId: number,\n public config: IndividualConfig,\n public message: string | null | undefined,\n public title: string | undefined,\n public toastType: string,\n public toastRef: ToastRef<any>,\n ) {\n this.toastRef.afterClosed().subscribe(() => {\n this._onAction.complete();\n this._onTap.complete();\n });\n }\n\n /** Fired on click */\n triggerTap(): void {\n this._onTap.next();\n if (this.config.tapToDismiss) {\n this._onTap.complete();\n }\n }\n\n onTap(): Observable<void> {\n return this._onTap.asObservable();\n }\n\n /** available for use in custom toast */\n triggerAction(action?: any): void {\n this._onAction.next(action);\n }\n\n onAction(): Observable<void> {\n return this._onAction.asObservable();\n }\n}\n\n/* eslint-disable @typescript-eslint/no-empty-interface */\n/** @deprecated use GlobalConfig */\nexport interface GlobalToastrConfig extends GlobalConfig {}\n/** @deprecated use IndividualConfig */\nexport interface IndividualToastrConfig extends IndividualConfig {}\n/** @deprecated use IndividualConfig */\nexport interface ToastrConfig extends IndividualConfig {}\n\nexport const DefaultNoComponentGlobalConfig: GlobalConfig = {\n maxOpened: 0,\n autoDismiss: false,\n newestOnTop: true,\n preventDuplicates: false,\n countDuplicates: false,\n resetTimeoutOnDuplicate: false,\n includeTitleDuplicates: false,\n\n iconClasses: {\n error: 'toast-error',\n info: 'toast-info',\n success: 'toast-success',\n warning: 'toast-warning',\n },\n\n // Individual\n closeButton: false,\n disableTimeOut: false,\n timeOut: 5000,\n extendedTimeOut: 1000,\n enableHtml: false,\n progressBar: false,\n toastClass: 'ngx-toastr',\n positionClass: 'toast-top-right',\n titleClass: 'toast-title',\n messageClass: 'toast-message',\n easing: 'ease-in',\n easeTime: 300,\n tapToDismiss: true,\n onActivateTick: false,\n progressAnimation: 'decreasing',\n\n payload: null\n};\n\nexport interface ToastToken {\n default: GlobalConfig;\n config: Partial<GlobalConfig>;\n}\n\nexport const TOAST_CONFIG = new InjectionToken<ToastToken>('ToastConfig');\n","import { Injector, InjectFlags } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { OverlayRef } from '../overlay/overlay-ref';\nimport { ToastPackage } from './toastr-config';\n\n/**\n * Reference to a toast opened via the Toastr service.\n */\nexport class ToastRef<T> {\n /** The instance of component opened into the toast. */\n componentInstance!: T;\n\n /** Count of duplicates of this toast */\n private duplicatesCount = 0;\n\n /** Subject for notifying the user that the toast has finished closing. */\n private _afterClosed = new Subject<void>();\n /** triggered when toast is activated */\n private _activate = new Subject<void>();\n /** notifies the toast that it should close before the timeout */\n private _manualClose = new Subject<void>();\n /** notifies the toast that it should reset the timeouts */\n private _resetTimeout = new Subject<void>();\n /** notifies the toast that it should count a duplicate toast */\n private _countDuplicate = new Subject<number>();\n\n constructor(private _overlayRef: OverlayRef) {}\n\n manualClose() {\n this._manualClose.next();\n this._manualClose.complete();\n }\n\n manualClosed(): Observable<any> {\n return this._manualClose.asObservable();\n }\n\n timeoutReset(): Observable<any> {\n return this._resetTimeout.asObservable();\n }\n\n countDuplicate(): Observable<number> {\n return this._countDuplicate.asObservable();\n }\n\n /**\n * Close the toast.\n */\n close(): void {\n this._overlayRef.detach();\n this._afterClosed.next();\n this._manualClose.next();\n this._afterClosed.complete();\n this._manualClose.complete();\n this._activate.complete();\n this._resetTimeout.complete();\n this._countDuplicate.complete();\n }\n\n /** Gets an observable that is notified when the toast is finished closing. */\n afterClosed(): Observable<any> {\n return this._afterClosed.asObservable();\n }\n\n isInactive() {\n return this._activate.isStopped;\n }\n\n activate() {\n this._activate.next();\n this._activate.complete();\n }\n\n /** Gets an observable that is notified when the toast has started opening. */\n afterActivate(): Observable<any> {\n return this._activate.asObservable();\n }\n\n /** Reset the toast timouts and count duplicates */\n onDuplicate(resetTimeout: boolean, countDuplicate: boolean) {\n if (resetTimeout) {\n this._resetTimeout.next();\n }\n if (countDuplicate) {\n this._countDuplicate.next(++this.duplicatesCount);\n }\n }\n}\n\n/** Custom injector type specifically for instantiating components with a toast. */\nexport class ToastInjector implements Injector {\n constructor(\n private _toastPackage: ToastPackage,\n private _parentInjector: Injector\n ) {}\n\n get<T>(token: any, notFoundValue?: T, flags?: InjectFlags): T | ToastPackage {\n if (token === ToastPackage) {\n return this._toastPackage;\n }\n return this._parentInjector.get<T>(token, notFoundValue, flags);\n }\n}\n","import {\n ApplicationRef,\n ComponentFactoryResolver,\n ComponentRef,\n EmbeddedViewRef,\n} from '@angular/core';\nimport { BasePortalHost, ComponentPortal } from './portal';\n\n/**\n * A PortalHost for attaching portals to an arbitrary DOM element outside of the Angular\n * application context.\n *\n * This is the only part of the portal core that directly touches the DOM.\n */\nexport class DomPortalHost extends BasePortalHost {\n constructor(\n private _hostDomElement: Element,\n private _componentFactoryResolver: ComponentFactoryResolver,\n private _appRef: ApplicationRef,\n ) {\n super();\n }\n\n /**\n * Attach the given ComponentPortal to DOM element using the ComponentFactoryResolver.\n * @param portal Portal to be attached\n */\n attachComponentPortal<T>(\n portal: ComponentPortal<T>,\n newestOnTop: boolean,\n ): ComponentRef<T> {\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(\n portal.component,\n );\n let componentRef: ComponentRef<T>;\n\n // If the portal specifies a ViewContainerRef, we will use that as the attachment point\n // for the component (in terms of Angular's component tree, not rendering).\n // When the ViewContainerRef is missing, we use the factory to create the component directly\n // and then manually attach the ChangeDetector for that component to the application (which\n // happens automatically when using a ViewContainer).\n componentRef = componentFactory.create(portal.injector);\n\n // When creating a component outside of a ViewContainer, we need to manually register\n // its ChangeDetector with the application. This API is unfortunately not yet published\n // in Angular core. The change detector must also be deregistered when the component\n // is destroyed to prevent memory leaks.\n this._appRef.attachView(componentRef.hostView);\n\n this.setDisposeFn(() => {\n this._appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n });\n\n // At this point the component has been instantiated, so we move it to the location in the DOM\n // where we want it to be rendered.\n if (newestOnTop) {\n this._hostDomElement.insertBefore(\n this._getComponentRootNode(componentRef),\n this._hostDomElement.firstChild,\n );\n } else {\n this._hostDomElement.appendChild(\n this._getComponentRootNode(componentRef),\n );\n }\n\n return componentRef;\n }\n\n /** Gets the root HTMLElement for an instantiated component. */\n private _getComponentRootNode(componentRef: ComponentRef<any>): HTMLElement {\n return (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n }\n}\n","import { ComponentRef } from '@angular/core';\nimport { BasePortalHost, ComponentPortal } from '../portal/portal';\n\n/**\n * Reference to an overlay that has been created with the Overlay service.\n * Used to manipulate or dispose of said overlay.\n */\nexport class OverlayRef {\n constructor(private _portalHost: BasePortalHost) {}\n\n attach(\n portal: ComponentPortal<any>,\n newestOnTop: boolean = true,\n ): ComponentRef<any> {\n return this._portalHost.attach(portal, newestOnTop);\n }\n\n /**\n * Detaches an overlay from a portal.\n * @returns Resolves when the overlay has been detached.\n */\n detach() {\n return this._portalHost.detach();\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, OnDestroy } from '@angular/core';\n\n/** Container inside which all toasts will render. */\n@Injectable({ providedIn: 'root' })\nexport class OverlayContainer implements OnDestroy {\n protected _containerElement!: HTMLElement;\n\n constructor(@Inject(DOCUMENT) protected _document: any) {}\n\n ngOnDestroy() {\n if (this._containerElement && this._containerElement.parentNode) {\n this._containerElement.parentNode.removeChild(this._containerElement);\n }\n }\n\n /**\n * This method returns the overlay container element. It will lazily\n * create the element the first time it is called to facilitate using\n * the container in non-browser environments.\n * @returns the container element\n */\n getContainerElement(): HTMLElement {\n if (!this._containerElement) {\n this._createContainer();\n }\n return this._containerElement;\n }\n\n /**\n * Create the overlay container element, which is simply a div\n * with the 'cdk-overlay-container' class on the document body\n * and 'aria-live=\"polite\"'\n */\n protected _createContainer(): void {\n const container = this._document.createElement('div');\n container.classList.add('overlay-container');\n container.setAttribute('aria-live','polite');\n this._document.body.appendChild(container);\n this._containerElement = container;\n }\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { DOCUMENT } from '@angular/common';\nimport { ApplicationRef, ComponentFactoryResolver, Inject, Injectable } from '@angular/core';\n\nimport { DomPortalHost } from '../portal/dom-portal-host';\nimport { ToastContainerDirective } from '../toastr/toast.directive';\nimport { OverlayContainer } from './overlay-container';\nimport { OverlayRef } from './overlay-ref';\n\n/**\n * Service to create Overlays. Overlays are dynamically added pieces of floating UI, meant to be\n * used as a low-level building building block for other components. Dialogs, tooltips, menus,\n * selects, etc. can all be built using overlays. The service should primarily be used by authors\n * of re-usable components rather than developers building end-user applications.\n *\n * An overlay *is* a PortalHost, so any kind of Portal can be loaded into one.\n */\n@Injectable({ providedIn: 'root' })\nexport class Overlay {\n // Namespace panes by overlay container\n private _paneElements: Map<ToastContainerDirective, Record<string, HTMLElement>> = new Map();\n\n constructor(\n private _overlayContainer: OverlayContainer,\n private _componentFactoryResolver: ComponentFactoryResolver,\n private _appRef: ApplicationRef,\n @Inject(DOCUMENT) private _document: any,\n ) {}\n /**\n * Creates an overlay.\n * @returns A reference to the created overlay.\n */\n create(positionClass?: string, overlayContainer?: ToastContainerDirective): OverlayRef {\n // get existing pane if possible\n return this._createOverlayRef(this.getPaneElement(positionClass, overlayContainer));\n }\n\n getPaneElement(\n positionClass: string = '',\n overlayContainer?: ToastContainerDirective,\n ): HTMLElement {\n if (!this._paneElements.get(overlayContainer as ToastContainerDirective)) {\n this._paneElements.set(overlayContainer as ToastContainerDirective, {});\n }\n\n if (!this._paneElements.get(overlayContainer as ToastContainerDirective)![positionClass]) {\n this._paneElements.get(overlayContainer as ToastContainerDirective)![\n positionClass\n ] = this._createPaneElement(positionClass, overlayContainer);\n }\n\n return this._paneElements.get(overlayContainer as ToastContainerDirective)![positionClass];\n }\n\n /**\n * Creates the DOM element for an overlay and appends it to the overlay container.\n * @returns Newly-created pane element\n */\n private _createPaneElement(\n positionClass: string,\n overlayContainer?: ToastContainerDirective,\n ): HTMLElement {\n const pane = this._document.createElement('div');\n\n pane.id = 'toast-container';\n pane.classList.add(positionClass);\n pane.classList.add('toast-container');\n\n if (!overlayContainer) {\n this._overlayContainer.getContainerElement().appendChild(pane);\n } else {\n overlayContainer.getContainerElement().appendChild(pane);\n }\n\n return pane;\n }\n\n /**\n * Create a DomPortalHost into which the overlay content can be loaded.\n * @param pane The DOM element to turn into a portal host.\n * @returns A portal host for the given DOM element.\n */\n private _createPortalHost(pane: HTMLElement): DomPortalHost {\n return new DomPortalHost(pane, this._componentFactoryResolver, this._appRef);\n }\n\n /**\n * Creates an OverlayRef for an overlay in the given DOM element.\n * @param pane DOM element for the overlay\n */\n private _createOverlayRef(pane: HTMLElement): OverlayRef {\n return new OverlayRef(this._createPortalHost(pane));\n }\n}\n","import { ComponentRef, Inject, Injectable, Injector, NgZone, SecurityContext } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport { Observable } from 'rxjs';\n\nimport { Overlay } from '../overlay/overlay';\nimport { ComponentPortal } from '../portal/portal';\nimport { ToastInjector, ToastRef } from './toast-injector';\nimport { ToastContainerDirective } from './toast.directive';\nimport {\n GlobalConfig,\n IndividualConfig,\n ToastPackage,\n ToastToken,\n TOAST_CONFIG,\n} from './toastr-config';\n\nexport interface ActiveToast<C> {\n /** Your Toast ID. Use this to close it individually */\n toastId: number;\n /** the title of your toast. Stored to prevent duplicates */\n title: string;\n /** the message of your toast. Stored to prevent duplicates */\n message: string;\n /** a reference to the component see portal.ts */\n portal: ComponentRef<C>;\n /** a reference to your toast */\n toastRef: ToastRef<C>;\n /** triggered when toast is active */\n onShown: Observable<void>;\n /** triggered when toast is destroyed */\n onHidden: Observable<void>;\n /** triggered on toast click */\n onTap: Observable<void>;\n /** available for your use in custom toast */\n onAction: Observable<any>;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ToastrService {\n toastrConfig: GlobalConfig;\n currentlyActive = 0;\n toasts: ActiveToast<any>[] = [];\n overlayContainer?: ToastContainerDirective;\n previousToastMessage: string | undefined;\n private index = 0;\n\n constructor(\n @Inject(TOAST_CONFIG) token: ToastToken,\n private overlay: Overlay,\n private _injector: Injector,\n private sanitizer: DomSanitizer,\n private ngZone: NgZone,\n ) {\n this.toastrConfig = {\n ...token.default,\n ...token.config,\n };\n if (token.config.iconClasses) {\n this.toastrConfig.iconClasses = {\n ...token.default.iconClasses,\n ...token.config.iconClasses,\n };\n }\n }\n /** show toast */\n show(message?: string, title?: string, override: Partial<IndividualConfig> = {}, type = '') {\n return this._preBuildNotification(type, message, title, this.applyConfig(override));\n }\n /** show successful toast */\n success(message?: string, title?: string, override: Partial<IndividualConfig> = {}) {\n const type = this.toastrConfig.iconClasses.success || '';\n return this._preBuildNotification(type, message, title, this.applyConfig(override));\n }\n /** show error toast */\n error(message?: string, title?: string, override: Partial<IndividualConfig> = {}) {\n const type = this.toastrConfig.iconClasses.error || '';\n return this._preBuildNotification(type, message, title, this.applyConfig(override));\n }\n /** show info toast */\n info(message?: string, title?: string, override: Partial<IndividualConfig> = {}) {\n const type = this.toastrConfig.iconClasses.info || '';\n return this._preBuildNotification(type, message, title, this.applyConfig(override));\n }\n /** show warning toast */\n warning(message?: string, title?: string, override: Partial<IndividualConfig> = {}) {\n const type = this.toastrConfig.iconClasses.warning || '';\n return this._preBuildNotification(type, message, title, this.applyConfig(override));\n }\n /**\n * Remove all or a single toast by id\n */\n clear(toastId?: number) {\n // Call every toastRef manualClose function\n for (const toast of this.toasts) {\n if (toastId !== undefined) {\n if (toast.toastId === toastId) {\n toast.toastRef.manualClose();\n return;\n }\n } else {\n toast.toastRef.manualClose();\n }\n }\n }\n /**\n * Remove and destroy a single toast by id\n */\n remove(toastId: number) {\n const found = this._findToast(toastId);\n if (!found) {\n return false;\n }\n found.activeToast.toastRef.close();\n this.toasts.splice(found.index, 1);\n this.currentlyActive = this.currentlyActive - 1;\n if (!this.toastrConfig.maxOpened || !this.toasts.length) {\n return false;\n }\n if (this.currentlyActive < this.toastrConfig.maxOpened && this.toasts[this.currentlyActive]) {\n const p = this.toasts[this.currentlyActive].toastRef;\n if (!p.isInactive()) {\n this.currentlyActive = this.currentlyActive + 1;\n p.activate();\n }\n }\n return true;\n }\n\n /**\n * Determines if toast message is already shown\n */\n findDuplicate(title = '', message = '', resetOnDuplicate: boolean, countDuplicates: boolean) {\n const { includeTitleDuplicates } = this.toastrConfig;\n\n for (const toast of this.toasts) {\n const hasDuplicateTitle = includeTitleDuplicates && toast.title === title;\n if ((!includeTitleDuplicates || hasDuplicateTitle) && toast.message === message) {\n toast.toastRef.onDuplicate(resetOnDuplicate, countDuplicates);\n return toast;\n }\n }\n\n return null;\n }\n\n /** create a clone of global config and apply individual settings */\n private applyConfig(override: Partial<IndividualConfig> = {}): GlobalConfig {\n return { ...this.toastrConfig, ...override };\n }\n\n /**\n * Find toast object by id\n */\n private _findToast(toastId: number): { index: number; activeToast: ActiveToast<any> } | null {\n for (let i = 0; i < this.toasts.length; i++) {\n if (this.toasts[i].toastId === toastId) {\n return { index: i, activeToast: this.toasts[i] };\n }\n }\n return null;\n }\n\n /**\n * Determines the need to run inside angular's zone then builds the toast\n */\n private _preBuildNotification(\n toastType: string,\n message: string | undefined,\n title: string | undefined,\n config: GlobalConfig,\n ): ActiveToast<any> | null {\n if (config.onActivateTick) {\n return this.ngZone.run(() => this._buildNotification(toastType, message, title, config));\n }\n return this._buildNotification(toastType, message, title, config);\n }\n\n /**\n * Creates and attaches toast data to component\n * returns the active toast, or in case preventDuplicates is enabled the original/non-duplicate active toast.\n */\n private _buildNotification(\n toastType: string,\n message: string | undefined,\n title: string | undefined,\n config: GlobalConfig,\n ): ActiveToast<any> | null {\n if (!config.toastComponent) {\n throw new Error('toastComponent required');\n }\n // max opened and auto dismiss = true\n // if timeout = 0 resetting it would result in setting this.hideTime = Date.now(). Hence, we only want to reset timeout if there is\n // a timeout at all\n const duplicate = this.findDuplicate(\n title,\n message,\n this.toastrConfig.resetTimeoutOnDuplicate && config.timeOut > 0,\n this.toastrConfig.countDuplicates,\n );\n if (\n ((this.toastrConfig.includeTitleDuplicates && title) || message) &&\n this.toastrConfig.preventDuplicates &&\n duplicate !== null\n ) {\n return duplicate;\n }\n\n this.previousToastMessage = message;\n let keepInactive = false;\n if (this.toastrConfig.maxOpened && this.currentlyActive >= this.toastrConfig.maxOpened) {\n keepInactive = true;\n if (this.toastrConfig.autoDismiss) {\n this.clear(this.toasts[0].toastId);\n }\n }\n\n const overlayRef = this.overlay.create(config.positionClass, this.overlayContainer);\n this.index = this.index + 1;\n let sanitizedMessage: string | undefined | null = message;\n if (message && config.enableHtml) {\n sanitizedMessage = this.sanitizer.sanitize(SecurityContext.HTML, message);\n }\n\n const toastRef = new ToastRef(overlayRef);\n const toastPackage = new ToastPackage(\n this.index,\n config,\n sanitizedMessage,\n title,\n toastType,\n toastRef,\n );\n const toastInjector = new ToastInjector(toastPackage, this._injector);\n const component = new ComponentPortal(config.toastComponent, toastInjector);\n const portal = overlayRef.attach(component, this.toastrConfig.newestOnTop);\n toastRef.componentInstance = portal.instance;\n const ins: ActiveToast<any> = {\n toastId: this.index,\n title: title || '',\n message: message || '',\n toastRef,\n onShown: toastRef.afterActivate(),\n onHidden: toastRef.afterClosed(),\n onTap: toastPackage.onTap(),\n onAction: toastPackage.onAction(),\n portal,\n };\n\n if (!keepInactive) {\n this.currentlyActive = this.currentlyActive + 1;\n setTimeout(() => {\n ins.toastRef.activate();\n });\n }\n\n this.toasts.push(ins);\n return ins;\n }\n}\n","import {\n animate,\n state,\n style,\n transition,\n trigger\n} from '@angular/animations';\nimport {\n Component,\n HostBinding,\n HostListener,\n NgZone,\n OnDestroy\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { IndividualConfig, ToastPackage } from './toastr-config';\nimport { ToastrService } from './toastr.service';\n\n@Component({\n selector: '[toast-component]',\n template: `\n <button *ngIf=\"options.closeButton\" (click)=\"remove()\" type=\"button\" class=\"toast-close-button\" aria-label=\"Close\">\n <span aria-hidden=\"true\">×</span>\n </button>\n <div *ngIf=\"title\" [class]=\"options.titleClass\" [attr.aria-label]=\"title\">\n {{ title }} <ng-container *ngIf=\"duplicatesCount\">[{{ duplicatesCount + 1 }}]</ng-container>\n </div>\n <div *ngIf=\"message && options.enableHtml\" role=\"alert\"\n [class]=\"options.messageClass\" [innerHTML]=\"message\">\n </div>\n <div *ngIf=\"message && !options.enableHtml\" role=\"alert\"\n [class]=\"options.messageClass\" [attr.aria-label]=\"message\">\n {{ message }}\n </div>\n <div *ngIf=\"options.progressBar\">\n <div class=\"toast-progress\" [style.width]=\"width + '%'\"></div>\n </div>\n `,\n animations: [\n trigger('flyInOut', [\n state('inactive', style({ opacity: 0 })),\n state('active', style({ opacity: 1 })),\n state('removed', style({ opacity: 0 })),\n transition(\n 'inactive => active',\n animate('{{ easeTime }}ms {{ easing }}')\n ),\n transition(\n 'active => removed',\n animate('{{ easeTime }}ms {{ easing }}')\n )\n ])\n ],\n preserveWhitespaces: false\n})\nexport class Toast implements OnDestroy {\n message?: string | null;\n title?: string;\n options: IndividualConfig;\n duplicatesCount!: number;\n originalTimeout: number;\n /** width of progress bar */\n width = -1;\n /** a combination of toast type and options.toastClass */\n @HostBinding('class') toastClasses = '';\n /** controls animation */\n @HostBinding('@flyInOut')\n state = {\n value: 'inactive',\n params: {\n easeTime: this.toastPackage.config.easeTime,\n easing: 'ease-in'\n }\n };\n\n /** hides component when waiting to be displayed */\n @HostBinding('style.display')\n get displayStyle(): string | undefined {\n if (this.state.value === 'inactive') {\n return 'none';\n }\n\n return;\n }\n\n private timeout: any;\n private intervalId: any;\n private hideTime!: number;\n private sub: Subscription;\n private sub1: Subscription;\n private sub2: Subscription;\n private sub3: Subscription;\n\n constructor(\n protected toastrService: ToastrService,\n public toastPackage: ToastPackage,\n protected ngZone?: NgZone\n ) {\n this.message = toastPackage.message;\n this.title = toastPackage.title;\n this.options = toastPackage.config;\n this.originalTimeout = toastPackage.config.timeOut;\n this.toastClasses = `${toastPackage.toastType} ${\n toastPackage.config.toastClass\n }`;\n this.sub = toastPackage.toastRef.afterActivate().subscribe(() => {\n this.activateToast();\n });\n this.sub1 = toastPackage.toastRef.manualClosed().subscribe(() => {\n this.remove();\n });\n this.sub2 = toastPackage.toastRef.timeoutReset().subscribe(() => {\n this.resetTimeout();\n });\n this.sub3 = toastPackage.toastRef.countDuplicate().subscribe(count => {\n this.duplicatesCount = count;\n });\n }\n ngOnDestroy() {\n this.sub.unsubscribe();\n this.sub1.unsubscribe();\n this.sub2.unsubscribe();\n this.sub3.unsubscribe();\n clearInterval(this.intervalId);\n clearTimeout(this.timeout);\n }\n /**\n * activates toast and sets timeout\n */\n activateToast() {\n this.state = { ...this.state, value: 'active' };\n if (!(this.options.disableTimeOut === true || this.options.disableTimeOut === 'timeOut') && this.options.timeOut) {\n this.outsideTimeout(() => this.remove(), this.options.timeOut);\n this.hideTime = new Date().getTime() + this.options.timeOut;\n if (this.options.progressBar) {\n this.outsideInterval(() => this.updateProgress(), 10);\n }\n }\n }\n /**\n * updates progress bar width\n */\n updateProgress() {\n if (this.width === 0 || this.width === 100 || !this.options.timeOut) {\n return;\n }\n const now = new Date().getTime();\n const remaining = this.hideTime - now;\n this.width = (remaining / this.options.timeOut) * 100;\n if (this.options.progressAnimation === 'increasing') {\n this.width = 100 - this.width;\n }\n if (this.width <= 0) {\n this.width = 0;\n }\n if (this.width >= 100) {\n this.width = 100;\n }\n }\n\n resetTimeout() {\n clearTimeout(this.timeout);\n clearInterval(this.intervalId);\n this.state = { ...this.state, value: 'active' };\n\n this.outsideTimeout(() => this.remove(), this.originalTimeout);\n this.options.timeOut = this.originalTimeout;\n this.hideTime = new Date().getTime() + (this.options.timeOut || 0);\n this.width = -1;\n if (this.options.progressBar) {\n this.outsideInterval(() => this.updateProgress(), 10);\n }\n }\n\n /**\n * tells toastrService to remove this toast after animation time\n */\n remove() {\n if (this.state.value === 'removed') {\n return;\n }\n clearTimeout(this.timeout);\n this.state = { ...this.state, value: 'removed' };\n this.outsideTimeout(\n () => this.toastrService.remove(this.toastPackage.toastId),\n +this.toastPackage.config.easeTime\n );\n }\n @HostListener('click')\n tapToast() {\n if (this.state.value === 'removed') {\n return;\n }\n this.toastPackage.triggerTap();\n if (this.options.tapToDismiss) {\n this.remove();\n }\n }\n @HostListener('mouseenter')\n stickAround() {\n if (this.state.value === 'removed') {\n return;\n }\n clearTimeout(this.timeout);\n this.options.timeOut = 0;\n this.hideTime = 0;\n\n // disable progressBar\n clearInterval(this.intervalId);\n this.width = 0;\n }\n @HostListener('mouseleave')\n delayedHideToast() {\n if (\n (this.options.disableTimeOut === true || this.options.disableTimeOut === 'extendedTimeOut') ||\n this.options.extendedTimeOut === 0 ||\n this.state.value === 'removed'\n ) {\n return;\n }\n this.outsideTimeout(() => this.remove(), this.options.extendedTimeOut);\n this.options.timeOut = this.options.extendedTimeOut;\n this.hideTime = new Date().getTime() + (this.options.timeOut || 0);\n this.width = -1;\n if (this.options.progressBar) {\n this.outsideInterval(() => this.updateProgress(), 10);\n }\n }\n\n outsideTimeout(func: () => any, timeout: number) {\n if (this.ngZone) {\n this.ngZone.runOutsideAngular(\n () =>\n (this.timeout = setTimeout(\n () => this.runInsideAngular(func),\n timeout\n ))\n );\n } else {\n this.timeout = setTimeout(() => func(), timeout);\n }\n }\n\n outsideInterval(func: () => any, timeout: number) {\n if (this.ngZone) {\n this.ngZone.runOutsideAngular(\n () =>\n (this.intervalId = setInterval(\n () => this.runInsideAngular(func),\n timeout\n ))\n );\n } else {\n this.intervalId = setInterval(() => func(), timeout);\n }\n }\n\n private runInsideAngular(func: () => any) {\n if (this.ngZone) {\n this.ngZone.run(() => func());\n } else {\n func();\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { Toast } from './toast.component';\nimport { DefaultNoComponentGlobalConfig, GlobalConfig, TOAST_CONFIG } from './toastr-config';\n\nexport const DefaultGlobalConfig: GlobalConfig = {\n ...DefaultNoComponentGlobalConfig,\n toastComponent: Toast,\n};\n\n@NgModule({\n imports: [CommonModule],\n declarations: [Toast],\n exports: [Toast],\n})\nexport class ToastrModule {\n static forRoot(config: Partial<GlobalConfig> = {}): ModuleWithProviders<ToastrModule> {\n return {\n ngModule: ToastrModule,\n providers: [\n {\n provide: TOAST_CONFIG,\n useValue: {\n default: DefaultGlobalConfig,\n config,\n },\n },\n ],\n };\n }\n}\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class ToastrComponentlessModule {\n static forRoot(config: Partial<GlobalConfig> = {}): ModuleWithProviders<ToastrModule> {\n return {\n ngModule: ToastrModule,\n providers: [\n {\n provide: TOAST_CONFIG,\n useValue: {\n default: DefaultNoComponentGlobalConfig,\n config,\n },\n },\n ],\n };\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders } from '@angular/core';\nimport {\n ApplicationRef,\n Component,\n HostBinding,\n HostListener,\n NgModule,\n OnDestroy,\n} from '@angular/core';\n\nimport { Subscription } from 'rxjs';\n\nimport {\n DefaultNoComponentGlobalConfig,\n GlobalConfig,\n IndividualConfig,\n ToastPackage,\n TOAST_CONFIG,\n} from './toastr-config';\nimport { ToastrService } from './toastr.service';\n\n@Component({\n selector: '[toast-component]',\n template: `\n <button *ngIf=\"options.closeButton\" (click)=\"remove()\" type=\"button\" class=\"toast-close-button\" aria-label=\"Close\">\n <span aria-hidden=\"true\">×</span>\n </button>\n <div *ngIf=\"title\" [class]=\"options.titleClass\" [attr.aria-label]=\"title\">\n {{ title }} <ng-container *ngIf=\"duplicatesCount\">[{{ duplicatesCount + 1 }}]</ng-container>\n </div>\n <div *ngIf=\"message && options.enableHtml\" role=\"alert\"\n [class]=\"options.messageClass\" [innerHTML]=\"message\">\n </div>\n <div *ngIf=\"message && !options.enableHtml\" role=\"alert\"\n [class]=\"options.messageClass\" [attr.aria-label]=\"message\">\n {{ message }}\n </div>\n <div *ngIf=\"options.progressBar\">\n <div class=\"toast-progress\" [style.width]=\"width + '%'\"></div>\n </div>\n `,\n})\nexport class ToastNoAnimation implements OnDestroy {\n message?: string | null;\n title?: string;\n options: IndividualConfig;\n duplicatesCount!: number;\n originalTimeout: number;\n /** width of progress bar */\n width = -1;\n /** a combination of toast type and options.toastClass */\n @HostBinding('class') toastClasses = '';\n\n /** hides component when waiting to be displayed */\n @HostBinding('style.display')\n get displayStyle() {\n if (this.state === 'inactive') {\n return 'none';\n }\n }\n\n /** controls animation */\n state = 'inactive';\n private timeout: any;\n private intervalId: any;\n private hideTime!: number;\n private sub: Subscription;\n private sub1: Subscription;\n private sub2: Subscription;\n private sub3: Subscription;\n\n constructor(\n protected toastrService: ToastrService,\n public toastPackage: ToastPackage,\n protected appRef: ApplicationRef,\n ) {\n this.message = toastPackage.message;\n this.title = toastPackage.title;\n this.options = toastPackage.config;\n this.originalTimeout = toastPackage.config.timeOut;\n this.toastClasses = `${toastPackage.toastType} ${\n toastPackage.config.toastClass\n }`;\n this.sub = toastPackage.toastRef.afterActivate().subscribe(() => {\n this.activateToast();\n });\n this.sub1 = toastPackage.toastRef.manualClosed().subscribe(() => {\n this.remove();\n });\n this.sub2 = toastPackage.toastRef.timeoutReset().subscribe(() => {\n this.resetTimeout();\n });\n this.sub3 = toastPackage.toastRef.countDuplicate().subscribe(count => {\n this.duplicatesCount = count;\n });\n }\n ngOnDestroy() {\n this.sub.unsubscribe();\n this.sub1.unsubscribe();\n this.sub2.unsubscribe();\n this.sub3.unsubscribe();\n clearInterval(this.intervalId);\n clearTimeout(this.timeout);\n }\n /**\n * activates toast and sets timeout\n */\n activateToast() {\n this.state = 'active';\n if (!(this.options.disableTimeOut === true || this.options.disableTimeOut === 'timeOut') && this.options.timeOut) {\n this.timeout = setTimeout(() => {\n this.remove();\n }, this.options.timeOut);\n this.hideTime = new Date().getTime() + this.options.timeOut;\n if (this.options.progressBar) {\n this.intervalId = setInterval(() => this.updateProgress(), 10);\n }\n }\n if (this.options.onActivateTick) {\n this.appRef.tick();\n }\n }\n /**\n * updates progress bar width\n */\n updateProgress() {\n if (this.width === 0 || this.width === 100 || !this.options.timeOut) {\n return;\n }\n const now = new Date().getTime();\n const remaining = this.hideTime - now;\n this.width = (remaining / this.options.timeOut) * 100;\n if (this.options.progressAnimation === 'increasing') {\n this.width = 100 - this.width;\n }\n if (this.width <= 0) {\n this.width = 0;\n }\n if (this.width >= 100) {\n this.width = 100;\n }\n }\n\n resetTimeout() {\n clearTimeout(this.timeout);\n clearInterval(this.intervalId);\n this.state = 'active';\n\n this.options.timeOut = this.originalTimeout;\n this.timeout = setTimeout(() => this.remove(), this.originalTimeout);\n this.hideTime = new Date().getTime() + (this.originalTimeout || 0);\n this.width = -1;\n if (this.options.progressBar) {\n this.intervalId = setInterval(() => this.updateProgress(), 10);\n }\n }\n\n /**\n * tells toastrService to remove this toast after animation time\n */\n remove() {\n if (this.state === 'removed') {\n return;\n }\n clearTimeout(this.timeout);\n this.state = 'removed';\n this.timeout = setTimeout(() =>\n this.toastrService.remove(this.toastPackage.toastId),\n );\n }\n @HostListener('click')\n tapToast() {\n if (this.state === 'removed') {\n return;\n }\n this.toastPackage.triggerTap();\n if (this.options.tapToDismiss) {\n this.remove();\n }\n }\n @HostListener('mouseenter')\n stickAround() {\n if (this.state === 'removed') {\n return;\n }\n clearTimeout(this.timeout);\n this.options.timeOut = 0;\n this.hideTime = 0;\n\n // disable progressBar\n clearInterval(this.intervalId);\n this.width = 0;\n }\n @HostListener('mouseleave')\n delayedHideToast() {\n if (\n (this.options.disableTimeOut === true || this.options.disableTimeOut === 'extendedTimeOut') ||\n this.options.extendedTimeOut === 0 ||\n this.state === 'removed'\n ) {\n return;\n }\n this.timeout = setTimeout(\n () => this.remove(),\n this.options.extendedTimeOut,\n );\n this.options.timeOut = this.options.extendedTimeOut;\n this.hideTime = new Date().getTime() + (this.options.timeOut || 0);\n this.width = -1;\n if (this.options.progressBar) {\n this.intervalId = setInterval(() => this.updateProgress(), 10);\n }\n }\n}\n\nexport const DefaultNoAnimationsGlobalConfig: GlobalConfig = {\n ...DefaultNoComponentGlobalConfig,\n toastComponent: ToastNoAnimation,\n};\n\n@NgModule({\n imports: [CommonModule],\n declarations: [ToastNoAnimation],\n exports: [ToastNoAnimation],\n})\nexport class ToastNoAnimationModule {\n static forRoot(config: Partial<GlobalConfig> = {}): ModuleWithProviders<ToastNoAnimationModule> {\n return {\n ngModule: ToastNoAnimationModule,\n providers: [\n {\n provide: TOAST_CONFIG,\n useValue: {\n default: DefaultNoAnimationsGlobalConfig,\n config,\n },\n },\n ],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.Overlay","i1.ToastrService","i2.ToastPackage"],"mappings":"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"}
|