@flywheel-io/vision 0.6.0 → 0.7.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/components/dialog/choice-dialog.component.d.ts +8 -5
- package/elements/README.md +20 -0
- package/elements/package.json +5 -5
- package/{esm2015/components/button/button.component.js → esm2020/components/button/button.component.mjs} +6 -11
- package/{esm2015/components/button/button.module.js → esm2020/components/button/button.module.mjs} +4 -4
- package/{esm2015/components/button-group/button-group.component.js → esm2020/components/button-group/button-group.component.mjs} +6 -12
- package/{esm2015/components/button-group/button-group.module.js → esm2020/components/button-group/button-group.module.mjs} +4 -4
- package/esm2020/components/dialog/choice-dialog.component.mjs +90 -0
- package/{esm2015/components/dialog/confirm-dialog.component.js → esm2020/components/dialog/confirm-dialog.component.mjs} +4 -4
- package/{esm2015/components/dialog/dialog.module.js → esm2020/components/dialog/dialog.module.mjs} +4 -4
- package/esm2020/components/dialog/dialog.service.mjs +72 -0
- package/{esm2015/components/dialog/error-dialog.component.js → esm2020/components/dialog/error-dialog.component.mjs} +4 -4
- package/esm2020/components/dialog/portal-dialog.component.mjs +112 -0
- package/{esm2015/components/icon/icon.component.js → esm2020/components/icon/icon.component.mjs} +3 -3
- package/{esm2015/components/icon/icon.module.js → esm2020/components/icon/icon.module.mjs} +4 -4
- package/esm2020/components/notification/notification/notification.component.mjs +69 -0
- package/{esm2015/components/notification/notification/notification.model.js → esm2020/components/notification/notification/notification.model.mjs} +0 -0
- package/esm2020/components/notification/notification-container/notification-container.component.mjs +86 -0
- package/{esm2015/components/notification/notification-timer.service.js → esm2020/components/notification/notification-timer.service.mjs} +0 -0
- package/{esm2015/components/notification/notification.module.js → esm2020/components/notification/notification.module.mjs} +4 -4
- package/{esm2015/components/notification/notification.service.js → esm2020/components/notification/notification.service.mjs} +3 -3
- package/{esm2015/components/popover/popover-trigger.component.js → esm2020/components/popover/popover-trigger.component.mjs} +3 -3
- package/esm2020/components/popover/popover-trigger.directive.mjs +133 -0
- package/esm2020/components/popover/popover.component.mjs +29 -0
- package/{esm2015/components/popover/popover.module.js → esm2020/components/popover/popover.module.mjs} +4 -4
- package/{esm2015/components/shared/pipes/pipes.module.js → esm2020/components/shared/pipes/pipes.module.mjs} +4 -4
- package/{esm2015/components/shared/pipes/translate.pipe.js → esm2020/components/shared/pipes/translate.pipe.mjs} +3 -3
- package/{esm2015/components/shared/pipes/trusthtml.pipe.js → esm2020/components/shared/pipes/trusthtml.pipe.mjs} +3 -3
- package/{esm2015/components/shared/translation.service.js → esm2020/components/shared/translation.service.mjs} +3 -3
- package/esm2020/components/table/table.component.mjs +179 -0
- package/{esm2015/components/table/table.module.js → esm2020/components/table/table.module.mjs} +4 -4
- package/{esm2015/elements/elements.js → esm2020/elements/elements.mjs} +4 -4
- package/{esm2015/elements/flywheel-io-vision-elements.js → esm2020/elements/flywheel-io-vision-elements.mjs} +0 -0
- package/{esm2015/elements/polyfills.js → esm2020/elements/polyfills.mjs} +0 -0
- package/{esm2015/elements/public-api.js → esm2020/elements/public-api.mjs} +0 -0
- package/{esm2015/flywheel-io-vision.js → esm2020/flywheel-io-vision.mjs} +0 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- package/fesm2015/{flywheel-io-vision-elements.js → flywheel-io-vision-elements.mjs} +5 -5
- package/fesm2015/flywheel-io-vision-elements.mjs.map +1 -0
- package/fesm2015/{flywheel-io-vision.js → flywheel-io-vision.mjs} +148 -165
- package/fesm2015/flywheel-io-vision.mjs.map +1 -0
- package/fesm2020/flywheel-io-vision-elements.mjs +85 -0
- package/fesm2020/flywheel-io-vision-elements.mjs.map +1 -0
- package/fesm2020/flywheel-io-vision.mjs +1392 -0
- package/fesm2020/flywheel-io-vision.mjs.map +1 -0
- package/package.json +43 -18
- package/scss/atoms/ghost.scss +30 -0
- package/scss/config/theme.scss +6 -6
- package/scss/material/overrides.scss +6 -1
- package/styles.css +156 -94
- package/styles.scss +8 -9
- package/bundles/flywheel-io-vision-elements.umd.js +0 -449
- package/bundles/flywheel-io-vision-elements.umd.js.map +0 -1
- package/bundles/flywheel-io-vision.umd.js +0 -1800
- package/bundles/flywheel-io-vision.umd.js.map +0 -1
- package/esm2015/components/dialog/choice-dialog.component.js +0 -78
- package/esm2015/components/dialog/dialog.service.js +0 -69
- package/esm2015/components/dialog/portal-dialog.component.js +0 -113
- package/esm2015/components/notification/notification/notification.component.js +0 -78
- package/esm2015/components/notification/notification-container/notification-container.component.js +0 -93
- package/esm2015/components/popover/popover-trigger.directive.js +0 -135
- package/esm2015/components/popover/popover.component.js +0 -35
- package/esm2015/components/table/table.component.js +0 -184
- package/fesm2015/flywheel-io-vision-elements.js.map +0 -1
- package/fesm2015/flywheel-io-vision.js.map +0 -1
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';
|
|
2
|
+
import { Component, Inject, SimpleChange } from '@angular/core';
|
|
3
|
+
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
4
|
+
import { Subject } from 'rxjs';
|
|
5
|
+
import { takeUntil } from 'rxjs/operators';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/material/button";
|
|
8
|
+
import * as i2 from "@angular/material/icon";
|
|
9
|
+
import * as i3 from "@angular/common";
|
|
10
|
+
import * as i4 from "@angular/material/dialog";
|
|
11
|
+
import * as i5 from "@angular/cdk/portal";
|
|
12
|
+
import * as i6 from "../shared/pipes/translate.pipe";
|
|
13
|
+
export class FwPortalDialog {
|
|
14
|
+
constructor(data, viewContainerRef) {
|
|
15
|
+
this.data = data;
|
|
16
|
+
this.viewContainerRef = viewContainerRef;
|
|
17
|
+
this.content = this.data.content;
|
|
18
|
+
this.title = this.data.title;
|
|
19
|
+
this.destroyed$ = new Subject();
|
|
20
|
+
if (this.data.component) {
|
|
21
|
+
this.portal = new ComponentPortal(this.data.component.type, this.viewContainerRef);
|
|
22
|
+
}
|
|
23
|
+
else if (this.data.template) {
|
|
24
|
+
this.portal = new TemplatePortal(this.data.template, this.viewContainerRef);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
throw new Error('One of [component, template] was not provided.');
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
ngOnDestroy() {
|
|
31
|
+
this.destroyed$.next(undefined);
|
|
32
|
+
}
|
|
33
|
+
attached(ref) {
|
|
34
|
+
if (this.data.component) {
|
|
35
|
+
ref = ref;
|
|
36
|
+
if (this.data.component.outputs) {
|
|
37
|
+
for (const [key, observer] of Object.entries(this.data.component.outputs)) {
|
|
38
|
+
const output$ = ref[key];
|
|
39
|
+
if (typeof output$?.pipe === 'function' && typeof output$.subscribe === 'function') {
|
|
40
|
+
output$.pipe(takeUntil(this.destroyed$)).subscribe(observer);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (this.data.component.inputs) {
|
|
45
|
+
const changes = {};
|
|
46
|
+
for (const [key, value] of Object.entries(this.data.component.inputs)) {
|
|
47
|
+
ref.instance[key] = value;
|
|
48
|
+
changes[key] = new SimpleChange(value, value, true);
|
|
49
|
+
}
|
|
50
|
+
ref.instance.ngOnChanges?.(changes);
|
|
51
|
+
ref.changeDetectorRef.markForCheck();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
FwPortalDialog.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FwPortalDialog, deps: [{ token: MAT_DIALOG_DATA }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
57
|
+
FwPortalDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: FwPortalDialog, selector: "fw-portal-dialog", host: { attributes: { "test-id": "portal-dialog" }, classAttribute: "mat-dialog-component" }, ngImport: i0, template: `
|
|
58
|
+
<ng-container *ngIf="title">
|
|
59
|
+
<h1 mat-dialog-title>{{ title }}</h1>
|
|
60
|
+
<button test-id="dialog-close-corner" mat-icon-button mat-dialog-close>
|
|
61
|
+
<mat-icon>close</mat-icon>
|
|
62
|
+
</button>
|
|
63
|
+
</ng-container>
|
|
64
|
+
<mat-dialog-content>
|
|
65
|
+
<p *ngIf="content" class="content">{{ content }}</p>
|
|
66
|
+
<ng-template [cdkPortalOutlet]="portal" (attached)="attached($event)"></ng-template>
|
|
67
|
+
</mat-dialog-content>
|
|
68
|
+
<mat-dialog-actions align="end">
|
|
69
|
+
<button test-id="dialog-close-button" mat-stroked-button mat-dialog-close>
|
|
70
|
+
{{ 'common.actions.close' | translate }}
|
|
71
|
+
</button>
|
|
72
|
+
</mat-dialog-actions>
|
|
73
|
+
`, isInline: true, styles: [":host{min-width:200px}.content{margin-bottom:30px}\n"], components: [{ type: i1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i4.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i5.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }], pipes: { "translate": i6.TranslatePipe } });
|
|
74
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FwPortalDialog, decorators: [{
|
|
75
|
+
type: Component,
|
|
76
|
+
args: [{
|
|
77
|
+
host: {
|
|
78
|
+
class: 'mat-dialog-component',
|
|
79
|
+
'test-id': 'portal-dialog',
|
|
80
|
+
},
|
|
81
|
+
selector: 'fw-portal-dialog',
|
|
82
|
+
template: `
|
|
83
|
+
<ng-container *ngIf="title">
|
|
84
|
+
<h1 mat-dialog-title>{{ title }}</h1>
|
|
85
|
+
<button test-id="dialog-close-corner" mat-icon-button mat-dialog-close>
|
|
86
|
+
<mat-icon>close</mat-icon>
|
|
87
|
+
</button>
|
|
88
|
+
</ng-container>
|
|
89
|
+
<mat-dialog-content>
|
|
90
|
+
<p *ngIf="content" class="content">{{ content }}</p>
|
|
91
|
+
<ng-template [cdkPortalOutlet]="portal" (attached)="attached($event)"></ng-template>
|
|
92
|
+
</mat-dialog-content>
|
|
93
|
+
<mat-dialog-actions align="end">
|
|
94
|
+
<button test-id="dialog-close-button" mat-stroked-button mat-dialog-close>
|
|
95
|
+
{{ 'common.actions.close' | translate }}
|
|
96
|
+
</button>
|
|
97
|
+
</mat-dialog-actions>
|
|
98
|
+
`,
|
|
99
|
+
styles: [`
|
|
100
|
+
:host {
|
|
101
|
+
min-width: 200px;
|
|
102
|
+
}
|
|
103
|
+
.content {
|
|
104
|
+
margin-bottom: 30px;
|
|
105
|
+
}
|
|
106
|
+
`],
|
|
107
|
+
}]
|
|
108
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
109
|
+
type: Inject,
|
|
110
|
+
args: [MAT_DIALOG_DATA]
|
|
111
|
+
}] }, { type: i0.ViewContainerRef }]; } });
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9kaWFsb2cvcG9ydGFsLWRpYWxvZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE4QixlQUFlLEVBQXlCLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pILE9BQU8sRUFBRSxTQUFTLEVBQThCLE1BQU0sRUFBYSxZQUFZLEVBQWdELE1BQU0sZUFBZSxDQUFDO0FBQ3JKLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7QUErQzNDLE1BQU0sT0FBTyxjQUFjO0lBT3pCLFlBQ21DLElBQXdCLEVBQ2pELGdCQUFrQztRQURULFNBQUksR0FBSixJQUFJLENBQW9CO1FBQ2pELHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFSNUMsWUFBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFBO1FBRTNCLFVBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQTtRQUVmLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFBO1FBTWhDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDcEY7YUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDN0U7YUFBTTtZQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQWdELENBQUMsQ0FBQztTQUNuRTtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUErQjtRQUN0QyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3ZCLEdBQUcsR0FBRyxHQUF3QixDQUFDO1lBQy9CLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFO2dCQUMvQixLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtvQkFDekUsTUFBTSxPQUFPLEdBQTBCLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDaEQsSUFBSSxPQUFPLE9BQU8sRUFBRSxJQUFJLEtBQUssVUFBVSxJQUFJLE9BQU8sT0FBTyxDQUFDLFNBQVMsS0FBSyxVQUFVLEVBQUU7d0JBQ2xGLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztxQkFDOUQ7aUJBQ0Y7YUFDRjtZQUNELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO2dCQUM5QixNQUFNLE9BQU8sR0FBa0IsRUFBRSxDQUFDO2dCQUNsQyxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtvQkFDckUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7b0JBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLFlBQVksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO2lCQUNyRDtnQkFDRCxHQUFHLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNwQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDdEM7U0FDRjtJQUNILENBQUM7OzRHQTdDVSxjQUFjLGtCQVFmLGVBQWU7Z0dBUmQsY0FBYyxzSkExQmY7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQlQ7NEZBVVUsY0FBYztrQkFoQzFCLFNBQVM7bUJBQUM7b0JBQ1QsSUFBSSxFQUFFO3dCQUNKLEtBQUssRUFBRSxzQkFBc0I7d0JBQzdCLFNBQVMsRUFBRSxlQUFlO3FCQUMzQjtvQkFDRCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQlQ7b0JBQ0QsTUFBTSxFQUFFLENBQUM7Ozs7Ozs7R0FPUixDQUFDO2lCQUNIOzswQkFTSSxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZiwgQ29tcG9uZW50UG9ydGFsLCBDb21wb25lbnRUeXBlLCBQb3J0YWwsIFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIENvbXBvbmVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIE9uRGVzdHJveSwgU2ltcGxlQ2hhbmdlLCBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW50ZXJmYWNlIENvbXBvbmVudFNwZWMge1xuICB0eXBlOiBDb21wb25lbnRUeXBlPHVua25vd24+LFxuICBpbnB1dHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBvdXRwdXRzPzogUmVjb3JkPHN0cmluZywgKHZhbHVlOiB1bmtub3duKSA9PiB2b2lkPlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZ3UG9ydGFsRGlhbG9nRGF0YSB7XG4gIGNvbXBvbmVudD86IENvbXBvbmVudFNwZWNcbiAgY29udGVudD86IHN0cmluZ1xuICB0ZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHVua25vd24+XG4gIHRpdGxlPzogc3RyaW5nXG59XG5cbkBDb21wb25lbnQoe1xuICBob3N0OiB7XG4gICAgY2xhc3M6ICdtYXQtZGlhbG9nLWNvbXBvbmVudCcsXG4gICAgJ3Rlc3QtaWQnOiAncG9ydGFsLWRpYWxvZycsXG4gIH0sXG4gIHNlbGVjdG9yOiAnZnctcG9ydGFsLWRpYWxvZycsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRpdGxlXCI+XG4gICAgICA8aDEgbWF0LWRpYWxvZy10aXRsZT57eyB0aXRsZSB9fTwvaDE+XG4gICAgICA8YnV0dG9uIHRlc3QtaWQ9XCJkaWFsb2ctY2xvc2UtY29ybmVyXCIgbWF0LWljb24tYnV0dG9uIG1hdC1kaWFsb2ctY2xvc2U+XG4gICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bWF0LWRpYWxvZy1jb250ZW50PlxuICAgICAgPHAgKm5nSWY9XCJjb250ZW50XCIgY2xhc3M9XCJjb250ZW50XCI+e3sgY29udGVudCB9fTwvcD5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cInBvcnRhbFwiIChhdHRhY2hlZCk9XCJhdHRhY2hlZCgkZXZlbnQpXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L21hdC1kaWFsb2ctY29udGVudD5cbiAgICA8bWF0LWRpYWxvZy1hY3Rpb25zIGFsaWduPVwiZW5kXCI+XG4gICAgICA8YnV0dG9uIHRlc3QtaWQ9XCJkaWFsb2ctY2xvc2UtYnV0dG9uXCIgbWF0LXN0cm9rZWQtYnV0dG9uIG1hdC1kaWFsb2ctY2xvc2U+XG4gICAgICAgIHt7ICdjb21tb24uYWN0aW9ucy5jbG9zZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuICBgLFxuICBzdHlsZXM6IFtgXG4gICAgOmhvc3Qge1xuICAgICAgbWluLXdpZHRoOiAyMDBweDtcbiAgICB9XG4gICAgLmNvbnRlbnQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICB9XG4gIGBdLFxufSlcbmV4cG9ydCBjbGFzcyBGd1BvcnRhbERpYWxvZyBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIGNvbnRlbnQgPSB0aGlzLmRhdGEuY29udGVudFxuICBwb3J0YWw6IFBvcnRhbDxhbnk+XG4gIHRpdGxlID0gdGhpcy5kYXRhLnRpdGxlXG5cbiAgcHJpdmF0ZSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3QoKVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwcml2YXRlIGRhdGE6IEZ3UG9ydGFsRGlhbG9nRGF0YSxcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICkge1xuICAgIGlmICh0aGlzLmRhdGEuY29tcG9uZW50KSB7XG4gICAgICB0aGlzLnBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwodGhpcy5kYXRhLmNvbXBvbmVudC50eXBlLCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5kYXRhLnRlbXBsYXRlKSB7XG4gICAgICB0aGlzLnBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLmRhdGEudGVtcGxhdGUsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignT25lIG9mIFtjb21wb25lbnQsIHRlbXBsYXRlXSB3YXMgbm90IHByb3ZpZGVkLicpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KHVuZGVmaW5lZCk7XG4gIH1cblxuICBhdHRhY2hlZChyZWY6IENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGF0YS5jb21wb25lbnQpIHtcbiAgICAgIHJlZiA9IHJlZiBhcyBDb21wb25lbnRSZWY8YW55PjtcbiAgICAgIGlmICh0aGlzLmRhdGEuY29tcG9uZW50Lm91dHB1dHMpIHtcbiAgICAgICAgZm9yIChjb25zdCBba2V5LCBvYnNlcnZlcl0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5kYXRhLmNvbXBvbmVudC5vdXRwdXRzKSkge1xuICAgICAgICAgIGNvbnN0IG91dHB1dCQ6IEV2ZW50RW1pdHRlcjx1bmtub3duPiA9IHJlZltrZXldO1xuICAgICAgICAgIGlmICh0eXBlb2Ygb3V0cHV0JD8ucGlwZSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2Ygb3V0cHV0JC5zdWJzY3JpYmUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIG91dHB1dCQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSkuc3Vic2NyaWJlKG9ic2VydmVyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmRhdGEuY29tcG9uZW50LmlucHV0cykge1xuICAgICAgICBjb25zdCBjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzID0ge307XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuZGF0YS5jb21wb25lbnQuaW5wdXRzKSkge1xuICAgICAgICAgIHJlZi5pbnN0YW5jZVtrZXldID0gdmFsdWU7XG4gICAgICAgICAgY2hhbmdlc1trZXldID0gbmV3IFNpbXBsZUNoYW5nZSh2YWx1ZSwgdmFsdWUsIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIHJlZi5pbnN0YW5jZS5uZ09uQ2hhbmdlcz8uKGNoYW5nZXMpO1xuICAgICAgICByZWYuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|
package/{esm2015/components/icon/icon.component.js → esm2020/components/icon/icon.component.mjs}
RENAMED
|
@@ -2,9 +2,9 @@ import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class FwIconComponent {
|
|
4
4
|
}
|
|
5
|
-
FwIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6
|
-
FwIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
7
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5
|
+
FwIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FwIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6
|
+
FwIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: FwIconComponent, selector: "fw-icon", host: { attributes: { "role": "img" }, classAttribute: "vision-icon" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
7
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FwIconComponent, decorators: [{
|
|
8
8
|
type: Component,
|
|
9
9
|
args: [{
|
|
10
10
|
host: {
|
|
@@ -4,12 +4,12 @@ import { FwIconComponent } from './icon.component';
|
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class FwIconModule {
|
|
6
6
|
}
|
|
7
|
-
FwIconModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
8
|
-
FwIconModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
|
|
9
|
-
FwIconModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
7
|
+
FwIconModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FwIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
|
+
FwIconModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FwIconModule, declarations: [FwIconComponent], imports: [CommonModule], exports: [FwIconComponent] });
|
|
9
|
+
FwIconModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FwIconModule, imports: [[
|
|
10
10
|
CommonModule,
|
|
11
11
|
]] });
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FwIconModule, decorators: [{
|
|
13
13
|
type: NgModule,
|
|
14
14
|
args: [{
|
|
15
15
|
imports: [
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { FwNotificationTimerService } from '../notification-timer.service';
|
|
3
|
+
import { FwNotificationType } from './notification.model';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../notification-timer.service";
|
|
6
|
+
export class FwNotificationComponent {
|
|
7
|
+
constructor(cdr, timerService) {
|
|
8
|
+
this.cdr = cdr;
|
|
9
|
+
this.timerService = timerService;
|
|
10
|
+
this.notificationDuration = 9000;
|
|
11
|
+
this.ready = new EventEmitter();
|
|
12
|
+
this.dismiss = new EventEmitter();
|
|
13
|
+
}
|
|
14
|
+
get cssClass() {
|
|
15
|
+
let cssClass = 'fw-notification';
|
|
16
|
+
switch (this.notification?.type) {
|
|
17
|
+
case FwNotificationType.Error:
|
|
18
|
+
return cssClass += ' error';
|
|
19
|
+
case FwNotificationType.Info:
|
|
20
|
+
return cssClass += ' info';
|
|
21
|
+
case FwNotificationType.Success:
|
|
22
|
+
return cssClass += ' success';
|
|
23
|
+
case FwNotificationType.Wait:
|
|
24
|
+
return cssClass += ' wait';
|
|
25
|
+
case FwNotificationType.Warning:
|
|
26
|
+
return cssClass += ' warning';
|
|
27
|
+
default:
|
|
28
|
+
return cssClass;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
ngAfterViewInit() {
|
|
32
|
+
this.ready.emit(this);
|
|
33
|
+
this.cdr.markForCheck();
|
|
34
|
+
}
|
|
35
|
+
startTimer() {
|
|
36
|
+
this.timerService.start(this.notificationDuration).then(() => {
|
|
37
|
+
this.onClickDismiss();
|
|
38
|
+
this.cdr.markForCheck();
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
stopTimer() {
|
|
42
|
+
this.timerService.stop();
|
|
43
|
+
this.cdr.markForCheck();
|
|
44
|
+
}
|
|
45
|
+
onClickDismiss() {
|
|
46
|
+
this.dismiss.emit(this.notification.id);
|
|
47
|
+
this.cdr.markForCheck();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
FwNotificationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FwNotificationComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.FwNotificationTimerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
51
|
+
FwNotificationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: FwNotificationComponent, selector: "fw-notification", inputs: { notification: "notification", notificationDuration: "notificationDuration" }, outputs: { ready: "ready", dismiss: "dismiss" }, host: { listeners: { "click": "onClickDismiss()" }, properties: { "class": "this.cssClass" } }, providers: [FwNotificationTimerService], ngImport: i0, template: `{{ notification?.message }}`, isInline: true, styles: ["fw-notification{display:block;border-radius:4px;box-sizing:border-box;margin:5px 24px;max-width:33vw;min-width:344px;padding:14px 16px;transform-origin:center;background-color:#2f96b4;border:1px solid rgba(255,255,255,.7019607843);box-shadow:0 0 12px #999;color:#fff;opacity:.99;white-space:pre-wrap}fw-notification.error{background-color:#bd362f}fw-notification.info{background-color:#2f96b4}fw-notification.success{background-color:#51a351}fw-notification.wait{background-color:#2f96b4}fw-notification.warning{background-color:#f89406}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FwNotificationComponent, decorators: [{
|
|
53
|
+
type: Component,
|
|
54
|
+
args: [{ host: {
|
|
55
|
+
'(click)': 'onClickDismiss()'
|
|
56
|
+
}, selector: 'fw-notification', template: `{{ notification?.message }}`, providers: [FwNotificationTimerService], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: ["fw-notification{display:block;border-radius:4px;box-sizing:border-box;margin:5px 24px;max-width:33vw;min-width:344px;padding:14px 16px;transform-origin:center;background-color:#2f96b4;border:1px solid rgba(255,255,255,.7019607843);box-shadow:0 0 12px #999;color:#fff;opacity:.99;white-space:pre-wrap}fw-notification.error{background-color:#bd362f}fw-notification.info{background-color:#2f96b4}fw-notification.success{background-color:#51a351}fw-notification.wait{background-color:#2f96b4}fw-notification.warning{background-color:#f89406}\n"] }]
|
|
57
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.FwNotificationTimerService }]; }, propDecorators: { notification: [{
|
|
58
|
+
type: Input
|
|
59
|
+
}], notificationDuration: [{
|
|
60
|
+
type: Input
|
|
61
|
+
}], ready: [{
|
|
62
|
+
type: Output
|
|
63
|
+
}], dismiss: [{
|
|
64
|
+
type: Output
|
|
65
|
+
}], cssClass: [{
|
|
66
|
+
type: HostBinding,
|
|
67
|
+
args: ['class']
|
|
68
|
+
}] } });
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxLLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxrQkFBa0IsRUFBZ0IsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBY3hFLE1BQU0sT0FBTyx1QkFBdUI7SUF3QmxDLFlBQW9CLEdBQXNCLEVBQVUsWUFBd0M7UUFBeEUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBNEI7UUF0Qm5GLHlCQUFvQixHQUFXLElBQUksQ0FBQztRQUNuQyxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQTJCLENBQUE7UUFDbkQsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUE7SUFvQmlELENBQUM7SUFsQmhHLElBQTBCLFFBQVE7UUFDaEMsSUFBSSxRQUFRLEdBQUcsaUJBQWlCLENBQUM7UUFDakMsUUFBUSxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksRUFBRTtZQUMvQixLQUFLLGtCQUFrQixDQUFDLEtBQUs7Z0JBQzNCLE9BQU8sUUFBUSxJQUFJLFFBQVEsQ0FBQztZQUM5QixLQUFLLGtCQUFrQixDQUFDLElBQUk7Z0JBQzFCLE9BQU8sUUFBUSxJQUFJLE9BQU8sQ0FBQztZQUM3QixLQUFLLGtCQUFrQixDQUFDLE9BQU87Z0JBQzdCLE9BQU8sUUFBUSxJQUFJLFVBQVUsQ0FBQztZQUNoQyxLQUFLLGtCQUFrQixDQUFDLElBQUk7Z0JBQzFCLE9BQU8sUUFBUSxJQUFJLE9BQU8sQ0FBQztZQUM3QixLQUFLLGtCQUFrQixDQUFDLE9BQU87Z0JBQzdCLE9BQU8sUUFBUSxJQUFJLFVBQVUsQ0FBQztZQUNoQztnQkFDRSxPQUFPLFFBQVEsQ0FBQztTQUNuQjtJQUNILENBQUM7SUFJRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDM0QsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDOztxSEE5Q1UsdUJBQXVCO3lHQUF2Qix1QkFBdUIsbVJBTHZCLENBQUMsMEJBQTBCLENBQUMsMEJBRDdCLDZCQUE2Qjs0RkFNNUIsdUJBQXVCO2tCQVpuQyxTQUFTOzJCQUNGO3dCQUNKLFNBQVMsRUFBRSxrQkFBa0I7cUJBQzlCLFlBQ1MsaUJBQWlCLFlBRWpCLDZCQUE2QixhQUM1QixDQUFDLDBCQUEwQixDQUFDLGlCQUN4QixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNO2lKQUl0QyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDSSxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFFbUIsUUFBUTtzQkFBakMsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEZ3Tm90aWZpY2F0aW9uVGltZXJTZXJ2aWNlIH0gZnJvbSAnLi4vbm90aWZpY2F0aW9uLXRpbWVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRndOb3RpZmljYXRpb25UeXBlLCBOb3RpZmljYXRpb24gfSBmcm9tICcuL25vdGlmaWNhdGlvbi5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBob3N0OiB7XG4gICAgJyhjbGljayknOiAnb25DbGlja0Rpc21pc3MoKSdcbiAgfSxcbiAgc2VsZWN0b3I6ICdmdy1ub3RpZmljYXRpb24nLFxuICBzdHlsZVVybHM6IFsgJy4vbm90aWZpY2F0aW9uLmNvbXBvbmVudC5zY3NzJyBdLFxuICB0ZW1wbGF0ZTogYHt7IG5vdGlmaWNhdGlvbj8ubWVzc2FnZSB9fWAsXG4gIHByb3ZpZGVyczogW0Z3Tm90aWZpY2F0aW9uVGltZXJTZXJ2aWNlXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuXG5leHBvcnQgY2xhc3MgRndOb3RpZmljYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgbm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb25cbiAgQElucHV0KCkgbm90aWZpY2F0aW9uRHVyYXRpb246IG51bWJlciA9IDkwMDA7XG4gIEBPdXRwdXQoKSByZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXI8RndOb3RpZmljYXRpb25Db21wb25lbnQ+KClcbiAgQE91dHB1dCgpIGRpc21pc3MgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgY3NzQ2xhc3MoKSB7XG4gICAgbGV0IGNzc0NsYXNzID0gJ2Z3LW5vdGlmaWNhdGlvbic7XG4gICAgc3dpdGNoICh0aGlzLm5vdGlmaWNhdGlvbj8udHlwZSkge1xuICAgICAgY2FzZSBGd05vdGlmaWNhdGlvblR5cGUuRXJyb3I6XG4gICAgICAgIHJldHVybiBjc3NDbGFzcyArPSAnIGVycm9yJztcbiAgICAgIGNhc2UgRndOb3RpZmljYXRpb25UeXBlLkluZm86XG4gICAgICAgIHJldHVybiBjc3NDbGFzcyArPSAnIGluZm8nO1xuICAgICAgY2FzZSBGd05vdGlmaWNhdGlvblR5cGUuU3VjY2VzczpcbiAgICAgICAgcmV0dXJuIGNzc0NsYXNzICs9ICcgc3VjY2Vzcyc7XG4gICAgICBjYXNlIEZ3Tm90aWZpY2F0aW9uVHlwZS5XYWl0OlxuICAgICAgICByZXR1cm4gY3NzQ2xhc3MgKz0gJyB3YWl0JztcbiAgICAgIGNhc2UgRndOb3RpZmljYXRpb25UeXBlLldhcm5pbmc6XG4gICAgICAgIHJldHVybiBjc3NDbGFzcyArPSAnIHdhcm5pbmcnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGNzc0NsYXNzO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSB0aW1lclNlcnZpY2U6IEZ3Tm90aWZpY2F0aW9uVGltZXJTZXJ2aWNlKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlYWR5LmVtaXQodGhpcyk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBzdGFydFRpbWVyKCk6IHZvaWQge1xuICAgIHRoaXMudGltZXJTZXJ2aWNlLnN0YXJ0KHRoaXMubm90aWZpY2F0aW9uRHVyYXRpb24pLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy5vbkNsaWNrRGlzbWlzcygpO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICBzdG9wVGltZXIoKTogdm9pZCB7XG4gICAgdGhpcy50aW1lclNlcnZpY2Uuc3RvcCgpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25DbGlja0Rpc21pc3MoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNtaXNzLmVtaXQodGhpcy5ub3RpZmljYXRpb24uaWQpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iXX0=
|
|
File without changes
|
package/esm2020/components/notification/notification-container/notification-container.component.mjs
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { Subscription } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../notification.service";
|
|
5
|
+
import * as i2 from "../notification/notification.component";
|
|
6
|
+
import * as i3 from "../../button/button.component";
|
|
7
|
+
import * as i4 from "@angular/material/icon";
|
|
8
|
+
import * as i5 from "@angular/common";
|
|
9
|
+
export class FwNotificationContainerComponent {
|
|
10
|
+
constructor(cdr, notificationService) {
|
|
11
|
+
this.cdr = cdr;
|
|
12
|
+
this.notificationService = notificationService;
|
|
13
|
+
this.limit = 3;
|
|
14
|
+
this.notifications = [];
|
|
15
|
+
this.expanded = false;
|
|
16
|
+
this.subscriptions = {
|
|
17
|
+
notifications: Subscription.EMPTY,
|
|
18
|
+
};
|
|
19
|
+
this.subscriptions.notifications = this.notificationService.notifications$.subscribe((notifications) => {
|
|
20
|
+
this.notifications = notifications;
|
|
21
|
+
if (notifications.length === 0) {
|
|
22
|
+
this.expanded = false;
|
|
23
|
+
}
|
|
24
|
+
this.cdr.markForCheck();
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
ngOnDestroy() {
|
|
28
|
+
for (const subscription of Object.values(this.subscriptions)) {
|
|
29
|
+
subscription.unsubscribe();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
notificationClass(index) {
|
|
33
|
+
let cssClass;
|
|
34
|
+
const level = this.notifications.length > this.limit
|
|
35
|
+
? index - (this.notifications.length - this.limit)
|
|
36
|
+
: index;
|
|
37
|
+
if (this.expanded) {
|
|
38
|
+
cssClass = 'default';
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
cssClass = level >= 0 ? `level-${level}` : 'hidden';
|
|
42
|
+
}
|
|
43
|
+
return cssClass;
|
|
44
|
+
}
|
|
45
|
+
getEmptyNotification(notification) {
|
|
46
|
+
return { ...notification, message: ' ' }; // take up a line but show no content
|
|
47
|
+
}
|
|
48
|
+
onReady(notification) {
|
|
49
|
+
const currentNotification = this.notifications[this.notifications.length - 1];
|
|
50
|
+
currentNotification.ref = notification;
|
|
51
|
+
notification.startTimer();
|
|
52
|
+
}
|
|
53
|
+
onDismiss(notificationId) {
|
|
54
|
+
const notification = this.notifications.find(currentNotification => currentNotification.id === notificationId);
|
|
55
|
+
if (notification?.ref) {
|
|
56
|
+
notification.ref.stopTimer();
|
|
57
|
+
}
|
|
58
|
+
if (notification?.id) {
|
|
59
|
+
this.notificationService.dismiss(notification.id);
|
|
60
|
+
}
|
|
61
|
+
this.cdr.markForCheck();
|
|
62
|
+
}
|
|
63
|
+
clearAll() {
|
|
64
|
+
this.notificationService.dismissAll();
|
|
65
|
+
this.cdr.markForCheck();
|
|
66
|
+
}
|
|
67
|
+
onShowMore() {
|
|
68
|
+
this.expanded = true;
|
|
69
|
+
this.cdr.markForCheck();
|
|
70
|
+
}
|
|
71
|
+
onShowLess() {
|
|
72
|
+
this.expanded = false;
|
|
73
|
+
this.cdr.markForCheck();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
FwNotificationContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FwNotificationContainerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.FwNotificationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
77
|
+
FwNotificationContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: FwNotificationContainerComponent, selector: "fw-notification-container", host: { properties: { "class.duo": "notifications.length === 2", "class.triple": "notifications.length >= 3" }, classAttribute: "fw-notification-container" }, ngImport: i0, template: "<div role=\"list\">\n <fw-notification *ngFor=\"let notification of notifications; index as $index\"\n (ready)=\"onReady($event)\"\n (dismiss)=\"onDismiss($event)\"\n [class]=\"notificationClass($index)\"\n [notification]=\"expanded || $index === notifications.length - 1 ? notification : getEmptyNotification(notification)\"\n [attr.aria-label]=\"notification.type + ' : ' + notification.message\"\n role=\"listitem\"\n ></fw-notification>\n <div class=\"buttons\">\n <fw-button *ngIf=\"expanded\" (click)=\"onShowLess()\" mat-button aria-label=\"show less\" layout=\"compact\" size=\"small\">\n <mat-icon>expand_less</mat-icon>\n </fw-button>\n <fw-button *ngIf=\"!expanded && notifications.length > 1\" (click)=\"onShowMore()\" mat-button aria-label=\"show more\" layout=\"compact\" size=\"small\">\n <mat-icon>expand_more</mat-icon>\n </fw-button>\n <fw-button (click)=\"clearAll()\" mat-button class=\"clear-all\" aria-label=\"clear all\" layout=\"compact\" size=\"small\">\n Clear All\n </fw-button>\n </div>\n</div>\n", styles: ["fw-notification-container{position:absolute;right:0;top:0;margin-top:20px;z-index:999999}fw-notification-container>div{display:flex;flex-direction:column-reverse}fw-notification-container .buttons{display:none;position:absolute;top:-5px;right:25px}fw-notification-container .buttons button{color:#fff;background-color:#919292;margin-left:2px}fw-notification-container .buttons button.mat-button{line-height:24px!important;margin:0 0 0 2px!important}fw-notification-container:hover .buttons{display:flex}fw-notification-container .hidden{display:none}fw-notification-container fw-notification:last-of-type{margin-top:24px}fw-notification-container.duo fw-notification.level-0{transform:scale(.95) translateY(-51px)}fw-notification-container.triple fw-notification.level-1{transform:scale(.95) translateY(-51px)}fw-notification-container.triple fw-notification.level-0{transform:scale(.9) translateY(-108px)}\n"], components: [{ type: i2.FwNotificationComponent, selector: "fw-notification", inputs: ["notification", "notificationDuration"], outputs: ["ready", "dismiss"] }, { type: i3.FwButtonComponent, selector: "fw-button", inputs: ["color", "layout", "size", "type"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
78
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FwNotificationContainerComponent, decorators: [{
|
|
79
|
+
type: Component,
|
|
80
|
+
args: [{ host: {
|
|
81
|
+
'class': 'fw-notification-container',
|
|
82
|
+
'[class.duo]': 'notifications.length === 2',
|
|
83
|
+
'[class.triple]': 'notifications.length >= 3',
|
|
84
|
+
}, selector: 'fw-notification-container', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div role=\"list\">\n <fw-notification *ngFor=\"let notification of notifications; index as $index\"\n (ready)=\"onReady($event)\"\n (dismiss)=\"onDismiss($event)\"\n [class]=\"notificationClass($index)\"\n [notification]=\"expanded || $index === notifications.length - 1 ? notification : getEmptyNotification(notification)\"\n [attr.aria-label]=\"notification.type + ' : ' + notification.message\"\n role=\"listitem\"\n ></fw-notification>\n <div class=\"buttons\">\n <fw-button *ngIf=\"expanded\" (click)=\"onShowLess()\" mat-button aria-label=\"show less\" layout=\"compact\" size=\"small\">\n <mat-icon>expand_less</mat-icon>\n </fw-button>\n <fw-button *ngIf=\"!expanded && notifications.length > 1\" (click)=\"onShowMore()\" mat-button aria-label=\"show more\" layout=\"compact\" size=\"small\">\n <mat-icon>expand_more</mat-icon>\n </fw-button>\n <fw-button (click)=\"clearAll()\" mat-button class=\"clear-all\" aria-label=\"clear all\" layout=\"compact\" size=\"small\">\n Clear All\n </fw-button>\n </div>\n</div>\n", styles: ["fw-notification-container{position:absolute;right:0;top:0;margin-top:20px;z-index:999999}fw-notification-container>div{display:flex;flex-direction:column-reverse}fw-notification-container .buttons{display:none;position:absolute;top:-5px;right:25px}fw-notification-container .buttons button{color:#fff;background-color:#919292;margin-left:2px}fw-notification-container .buttons button.mat-button{line-height:24px!important;margin:0 0 0 2px!important}fw-notification-container:hover .buttons{display:flex}fw-notification-container .hidden{display:none}fw-notification-container fw-notification:last-of-type{margin-top:24px}fw-notification-container.duo fw-notification.level-0{transform:scale(.95) translateY(-51px)}fw-notification-container.triple fw-notification.level-1{transform:scale(.95) translateY(-51px)}fw-notification-container.triple fw-notification.level-0{transform:scale(.9) translateY(-108px)}\n"] }]
|
|
85
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.FwNotificationService }]; } });
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLWNvbnRhaW5lci9ub3RpZmljYXRpb24tY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24tY29udGFpbmVyL25vdGlmaWNhdGlvbi1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQWEsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7OztBQWtCcEMsTUFBTSxPQUFPLGdDQUFnQztJQVMzQyxZQUFvQixHQUFzQixFQUFVLG1CQUEwQztRQUExRSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUFVLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBdUI7UUFSOUYsVUFBSyxHQUFHLENBQUMsQ0FBQTtRQUNULGtCQUFhLEdBQW1CLEVBQUUsQ0FBQTtRQUNsQyxhQUFRLEdBQUcsS0FBSyxDQUFBO1FBRVIsa0JBQWEsR0FBRztZQUN0QixhQUFhLEVBQUUsWUFBWSxDQUFDLEtBQUs7U0FDbEMsQ0FBQTtRQUdDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBNkIsRUFBRSxFQUFFO1lBQ3JILElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1lBQ25DLElBQUksYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO2FB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IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRndOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgRndOb3RpZmljYXRpb25Db21wb25lbnQgfSBmcm9tICcuLi9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb24gfSBmcm9tICcuLi9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIGhvc3Q6IHtcbiAgICAnY2xhc3MnOiAnZnctbm90aWZpY2F0aW9uLWNvbnRhaW5lcicsXG4gICAgJ1tjbGFzcy5kdW9dJzogJ25vdGlmaWNhdGlvbnMubGVuZ3RoID09PSAyJyxcbiAgICAnW2NsYXNzLnRyaXBsZV0nOiAnbm90aWZpY2F0aW9ucy5sZW5ndGggPj0gMycsXG4gIH0sXG4gIHNlbGVjdG9yOiAnZnctbm90aWZpY2F0aW9uLWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9ub3RpZmljYXRpb24tY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbm90aWZpY2F0aW9uLWNvbnRhaW5lci5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRndOb3RpZmljYXRpb25Db250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBsaW1pdCA9IDNcbiAgbm90aWZpY2F0aW9uczogTm90aWZpY2F0aW9uW10gPSBbXVxuICBleHBhbmRlZCA9IGZhbHNlXG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zID0ge1xuICAgIG5vdGlmaWNhdGlvbnM6IFN1YnNjcmlwdGlvbi5FTVBUWSxcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBGd05vdGlmaWNhdGlvblNlcnZpY2UpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMubm90aWZpY2F0aW9ucyA9IHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5ub3RpZmljYXRpb25zJC5zdWJzY3JpYmUoKG5vdGlmaWNhdGlvbnM6IE5vdGlmaWNhdGlvbltdKSA9PiB7XG4gICAgICB0aGlzLm5vdGlmaWNhdGlvbnMgPSBub3RpZmljYXRpb25zO1xuICAgICAgaWYgKG5vdGlmaWNhdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRoaXMuZXhwYW5kZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBzdWJzY3JpcHRpb24gb2YgT2JqZWN0LnZhbHVlcyh0aGlzLnN1YnNjcmlwdGlvbnMpKSB7XG4gICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBub3RpZmljYXRpb25DbGFzcyhpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBsZXQgY3NzQ2xhc3M6IHN0cmluZztcbiAgICBjb25zdCBsZXZlbCA9IHRoaXMubm90aWZpY2F0aW9ucy5sZW5ndGggPiB0aGlzLmxpbWl0XG4gICAgICA/IGluZGV4IC0gKHRoaXMubm90aWZpY2F0aW9ucy5sZW5ndGggLSB0aGlzLmxpbWl0KVxuICAgICAgOiBpbmRleDtcblxuICAgIGlmICh0aGlzLmV4cGFuZGVkKSB7XG4gICAgICBjc3NDbGFzcyA9ICdkZWZhdWx0JztcbiAgICB9IGVsc2Uge1xuICAgICAgY3NzQ2xhc3MgPSBsZXZlbCA+PSAwID8gYGxldmVsLSR7bGV2ZWx9YCA6ICdoaWRkZW4nO1xuICAgIH1cblxuICAgIHJldHVybiBjc3NDbGFzcztcbiAgfVxuXG4gIGdldEVtcHR5Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uKTogTm90aWZpY2F0aW9uIHtcbiAgICByZXR1cm4geyAuLi5ub3RpZmljYXRpb24sIG1lc3NhZ2U6ICcgJyB9OyAvLyB0YWtlIHVwIGEgbGluZSBidXQgc2hvdyBubyBjb250ZW50XG4gIH1cblxuICBvblJlYWR5KG5vdGlmaWNhdGlvbjogRndOb3RpZmljYXRpb25Db21wb25lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50Tm90aWZpY2F0aW9uID0gdGhpcy5ub3RpZmljYXRpb25zW3RoaXMubm90aWZpY2F0aW9ucy5sZW5ndGggLSAxXTtcbiAgICBjdXJyZW50Tm90aWZpY2F0aW9uLnJlZiA9IG5vdGlmaWNhdGlvbjtcbiAgICBub3RpZmljYXRpb24uc3RhcnRUaW1lcigpO1xuICB9XG5cbiAgb25EaXNtaXNzKG5vdGlmaWNhdGlvbklkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBub3RpZmljYXRpb24gPSB0aGlzLm5vdGlmaWNhdGlvbnMuZmluZChjdXJyZW50Tm90aWZpY2F0aW9uID0+IGN1cnJlbnROb3RpZmljYXRpb24uaWQgPT09IG5vdGlmaWNhdGlvbklkKTtcbiAgICBpZiAobm90aWZpY2F0aW9uPy5yZWYpIHtcbiAgICAgIG5vdGlmaWNhdGlvbi5yZWYuc3RvcFRpbWVyKCk7XG4gICAgfVxuICAgIGlmIChub3RpZmljYXRpb24/LmlkKSB7XG4gICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZGlzbWlzcyhub3RpZmljYXRpb24uaWQpO1xuICAgIH1cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGNsZWFyQWxsKCk6IHZvaWQge1xuICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5kaXNtaXNzQWxsKCk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBvblNob3dNb3JlKCk6IHZvaWQge1xuICAgIHRoaXMuZXhwYW5kZWQgPSB0cnVlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25TaG93TGVzcygpOiB2b2lkIHtcbiAgICB0aGlzLmV4cGFuZGVkID0gZmFsc2U7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiIsIjxkaXYgcm9sZT1cImxpc3RcIj5cbiAgPGZ3LW5vdGlmaWNhdGlvbiAqbmdGb3I9XCJsZXQgbm90aWZpY2F0aW9uIG9mIG5vdGlmaWNhdGlvbnM7IGluZGV4IGFzICRpbmRleFwiXG4gICAgKHJlYWR5KT1cIm9uUmVhZHkoJGV2ZW50KVwiXG4gICAgKGRpc21pc3MpPVwib25EaXNtaXNzKCRldmVudClcIlxuICAgIFtjbGFzc109XCJub3RpZmljYXRpb25DbGFzcygkaW5kZXgpXCJcbiAgICBbbm90aWZpY2F0aW9uXT1cImV4cGFuZGVkIHx8ICRpbmRleCA9PT0gbm90aWZpY2F0aW9ucy5sZW5ndGggLSAxID8gbm90aWZpY2F0aW9uIDogZ2V0RW1wdHlOb3RpZmljYXRpb24obm90aWZpY2F0aW9uKVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJub3RpZmljYXRpb24udHlwZSArICcgOiAnICsgbm90aWZpY2F0aW9uLm1lc3NhZ2VcIlxuICAgIHJvbGU9XCJsaXN0aXRlbVwiXG4gID48L2Z3LW5vdGlmaWNhdGlvbj5cbiAgPGRpdiBjbGFzcz1cImJ1dHRvbnNcIj5cbiAgICA8ZnctYnV0dG9uICpuZ0lmPVwiZXhwYW5kZWRcIiAoY2xpY2spPVwib25TaG93TGVzcygpXCIgbWF0LWJ1dHRvbiBhcmlhLWxhYmVsPVwic2hvdyBsZXNzXCIgbGF5b3V0PVwiY29tcGFjdFwiIHNpemU9XCJzbWFsbFwiPlxuICAgICAgPG1hdC1pY29uPmV4cGFuZF9sZXNzPC9tYXQtaWNvbj5cbiAgICA8L2Z3LWJ1dHRvbj5cbiAgICA8ZnctYnV0dG9uICpuZ0lmPVwiIWV4cGFuZGVkICYmIG5vdGlmaWNhdGlvbnMubGVuZ3RoID4gMVwiIChjbGljayk9XCJvblNob3dNb3JlKClcIiBtYXQtYnV0dG9uIGFyaWEtbGFiZWw9XCJzaG93IG1vcmVcIiBsYXlvdXQ9XCJjb21wYWN0XCIgc2l6ZT1cInNtYWxsXCI+XG4gICAgICA8bWF0LWljb24+ZXhwYW5kX21vcmU8L21hdC1pY29uPlxuICAgIDwvZnctYnV0dG9uPlxuICAgIDxmdy1idXR0b24gKGNsaWNrKT1cImNsZWFyQWxsKClcIiBtYXQtYnV0dG9uIGNsYXNzPVwiY2xlYXItYWxsXCIgYXJpYS1sYWJlbD1cImNsZWFyIGFsbFwiIGxheW91dD1cImNvbXBhY3RcIiBzaXplPVwic21hbGxcIj5cbiAgICAgIENsZWFyIEFsbFxuICAgIDwvZnctYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
File without changes
|
|
@@ -10,15 +10,15 @@ import { FwNotificationComponent } from './notification/notification.component';
|
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
11
|
export class FwNotificationModule {
|
|
12
12
|
}
|
|
13
|
-
FwNotificationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
14
|
-
FwNotificationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
|
|
13
|
+
FwNotificationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FwNotificationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
14
|
+
FwNotificationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FwNotificationModule, declarations: [FwNotificationComponent,
|
|
15
15
|
FwNotificationContainerComponent], imports: [CommonModule,
|
|
16
16
|
FwButtonModule,
|
|
17
17
|
FwButtonGroupModule,
|
|
18
18
|
MatButtonModule,
|
|
19
19
|
MatIconModule], exports: [FwNotificationComponent,
|
|
20
20
|
FwNotificationContainerComponent] });
|
|
21
|
-
FwNotificationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
21
|
+
FwNotificationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FwNotificationModule, providers: [
|
|
22
22
|
FwNotificationService,
|
|
23
23
|
], imports: [[
|
|
24
24
|
CommonModule,
|
|
@@ -27,7 +27,7 @@ FwNotificationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ve
|
|
|
27
27
|
MatButtonModule,
|
|
28
28
|
MatIconModule,
|
|
29
29
|
]] });
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FwNotificationModule, decorators: [{
|
|
31
31
|
type: NgModule,
|
|
32
32
|
args: [{
|
|
33
33
|
imports: [
|
|
@@ -25,9 +25,9 @@ export class FwNotificationService {
|
|
|
25
25
|
this.notifications$.next(this.notificationQueue);
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
-
FwNotificationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
29
|
-
FwNotificationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
28
|
+
FwNotificationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FwNotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
29
|
+
FwNotificationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FwNotificationService, providedIn: 'root' });
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FwNotificationService, decorators: [{
|
|
31
31
|
type: Injectable,
|
|
32
32
|
args: [{
|
|
33
33
|
providedIn: 'root'
|
|
@@ -22,13 +22,13 @@ export class FwPopoverTriggerComponent extends FwPopoverTriggerDirective {
|
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
-
FwPopoverTriggerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
26
|
-
FwPopoverTriggerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
25
|
+
FwPopoverTriggerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FwPopoverTriggerComponent, deps: [{ token: i0.ElementRef }, { token: i1.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
26
|
+
FwPopoverTriggerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: FwPopoverTriggerComponent, selector: "fw-popover-trigger", inputs: { popoverId: ["trigger-for", "popoverId"], position: "position" }, host: { listeners: { "mouseenter": "showPopover()", "mouseleave": "hidePopover($event)" }, classAttribute: "fw-popover-trigger" }, viewQueries: [{ propertyName: "popoverTemplateRef", first: true, predicate: TemplateRef, descendants: true }], usesInheritance: true, ngImport: i0, template: `<ng-content></ng-content>
|
|
27
27
|
<!-- for web component support -->
|
|
28
28
|
<ng-template>
|
|
29
29
|
<div [innerHTML]="popoverHTML"></div>
|
|
30
30
|
</ng-template>`, isInline: true });
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FwPopoverTriggerComponent, decorators: [{
|
|
32
32
|
type: Component,
|
|
33
33
|
args: [{
|
|
34
34
|
host: {
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { TemplatePortal } from '@angular/cdk/portal';
|
|
2
|
+
import { Directive, Input } from '@angular/core';
|
|
3
|
+
import { Subscription } from 'rxjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/cdk/overlay";
|
|
6
|
+
export class FwPopoverTriggerDirective {
|
|
7
|
+
constructor(element, overlay, viewContainerRef) {
|
|
8
|
+
this.element = element;
|
|
9
|
+
this.overlay = overlay;
|
|
10
|
+
this.viewContainerRef = viewContainerRef;
|
|
11
|
+
this.popoverMargin = 15;
|
|
12
|
+
this.positionMap = {
|
|
13
|
+
'left': { originX: 'start', originY: 'center', overlayX: 'end', overlayY: 'center' },
|
|
14
|
+
'right': { originX: 'end', originY: 'center', overlayX: 'start', overlayY: 'center' },
|
|
15
|
+
'above': { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom' },
|
|
16
|
+
'below': { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top' },
|
|
17
|
+
};
|
|
18
|
+
this.position = 'below';
|
|
19
|
+
this.subscriptions = {
|
|
20
|
+
positionChanges: Subscription.EMPTY,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
ngOnChanges(changes) {
|
|
24
|
+
if (changes.position && this.overlayRef) {
|
|
25
|
+
this.overlayRef.dispose();
|
|
26
|
+
this.overlayRef = null;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
ngOnDestroy() {
|
|
30
|
+
if (this.overlayRef) {
|
|
31
|
+
this.overlayRef.dispose();
|
|
32
|
+
this.overlayRef = null;
|
|
33
|
+
}
|
|
34
|
+
for (const subscription of Object.values(this.subscriptions)) {
|
|
35
|
+
subscription.unsubscribe();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
showPopover() {
|
|
39
|
+
if (this.popover?.templateRef) {
|
|
40
|
+
this.getOverlay().attach(new TemplatePortal(this.popover.templateRef, this.viewContainerRef));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
hidePopover(e) {
|
|
44
|
+
if (!e.relatedTarget?.classList.contains('fw-popover-panel')) {
|
|
45
|
+
this.getOverlay().detach();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
setPopoverCaretPosition(position) {
|
|
49
|
+
const caret = this.overlayRef.overlayElement.querySelector('.fw-popover-caret');
|
|
50
|
+
const caretRect = this.overlayRef.overlayElement.getBoundingClientRect();
|
|
51
|
+
const triggerRect = this.element.nativeElement.getBoundingClientRect();
|
|
52
|
+
this.overlayRef.overlayElement.querySelector('.fw-popover-content-wrapper').style.margin = `${this.popoverMargin}px`;
|
|
53
|
+
if (['left', 'right', 'before', 'after'].includes(position)) {
|
|
54
|
+
caret.style.top = `${triggerRect.top - caretRect.top - this.popoverMargin + (triggerRect.height / 2)}px`;
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
caret.style.left = `${triggerRect.left - caretRect.left - this.popoverMargin + (triggerRect.width / 2)}px`;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
setPopoverPosition(positionChange) {
|
|
61
|
+
const position = this.positionMap[this.mainPosition] === positionChange.connectionPair
|
|
62
|
+
? this.mainPosition
|
|
63
|
+
: this.positionMap[this.fallbackPosition] === positionChange.connectionPair
|
|
64
|
+
? this.fallbackPosition
|
|
65
|
+
: this.mainPosition;
|
|
66
|
+
this.overlayRef.removePanelClass(['fw-popover-above', 'fw-popover-below', 'fw-popover-left', 'fw-popover-right']);
|
|
67
|
+
this.overlayRef.addPanelClass(`fw-popover-${position}`);
|
|
68
|
+
this.setPopoverCaretPosition(position);
|
|
69
|
+
}
|
|
70
|
+
getOverlay() {
|
|
71
|
+
if (!this.overlayRef) {
|
|
72
|
+
this.overlayRef = this.overlay.create({
|
|
73
|
+
positionStrategy: this.overlay.position()
|
|
74
|
+
.flexibleConnectedTo(this.element)
|
|
75
|
+
.withPositions(this.getPositions()),
|
|
76
|
+
panelClass: 'fw-popover-panel',
|
|
77
|
+
});
|
|
78
|
+
this.overlayRef.overlayElement.addEventListener('mouseleave', e => this.hidePopover(e));
|
|
79
|
+
this.subscriptions.positionChanges = this.overlayRef.getConfig().positionStrategy.positionChanges
|
|
80
|
+
.subscribe(positionChange => this.setPopoverPosition(positionChange));
|
|
81
|
+
}
|
|
82
|
+
return this.overlayRef;
|
|
83
|
+
}
|
|
84
|
+
getMainPosition() {
|
|
85
|
+
return this.mainPosition =
|
|
86
|
+
['left', 'before'].includes(this.position)
|
|
87
|
+
? 'left'
|
|
88
|
+
: ['right', 'after'].includes(this.position)
|
|
89
|
+
? 'right'
|
|
90
|
+
: this.position === 'above'
|
|
91
|
+
? 'above'
|
|
92
|
+
: 'below';
|
|
93
|
+
}
|
|
94
|
+
getFallbackPosition() {
|
|
95
|
+
return this.fallbackPosition =
|
|
96
|
+
['left', 'before'].includes(this.position)
|
|
97
|
+
? 'right'
|
|
98
|
+
: ['right', 'after'].includes(this.position)
|
|
99
|
+
? 'left'
|
|
100
|
+
: this.position === 'above'
|
|
101
|
+
? 'below'
|
|
102
|
+
: 'above';
|
|
103
|
+
}
|
|
104
|
+
getPositions() {
|
|
105
|
+
return [
|
|
106
|
+
// main position
|
|
107
|
+
this.positionMap[this.getMainPosition()],
|
|
108
|
+
// fallback position (inverse of main)
|
|
109
|
+
this.positionMap[this.getFallbackPosition()],
|
|
110
|
+
];
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
FwPopoverTriggerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FwPopoverTriggerDirective, deps: [{ token: i0.ElementRef }, { token: i1.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
114
|
+
FwPopoverTriggerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: FwPopoverTriggerDirective, selector: "[fwPopoverTriggerFor]", inputs: { popover: ["fwPopoverTriggerFor", "popover"], position: ["fwPopoverPosition", "position"] }, host: { listeners: { "mouseenter": "showPopover()", "mouseleave": "hidePopover($event)" }, classAttribute: "fw-popover-trigger" }, exportAs: ["fwPopoverTrigger"], usesOnChanges: true, ngImport: i0 });
|
|
115
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FwPopoverTriggerDirective, decorators: [{
|
|
116
|
+
type: Directive,
|
|
117
|
+
args: [{
|
|
118
|
+
host: {
|
|
119
|
+
'class': 'fw-popover-trigger',
|
|
120
|
+
'(mouseenter)': 'showPopover()',
|
|
121
|
+
'(mouseleave)': 'hidePopover($event)',
|
|
122
|
+
},
|
|
123
|
+
selector: '[fwPopoverTriggerFor]',
|
|
124
|
+
exportAs: 'fwPopoverTrigger',
|
|
125
|
+
}]
|
|
126
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { popover: [{
|
|
127
|
+
type: Input,
|
|
128
|
+
args: ['fwPopoverTriggerFor']
|
|
129
|
+
}], position: [{
|
|
130
|
+
type: Input,
|
|
131
|
+
args: ['fwPopoverPosition']
|
|
132
|
+
}] } });
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci10cmlnZ2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BvcG92ZXIvcG9wb3Zlci10cmlnZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQXlELE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQWVwQyxNQUFNLE9BQU8seUJBQXlCO0lBb0JwQyxZQUNTLE9BQW1CLEVBQ25CLE9BQWdCLEVBQ2hCLGdCQUFrQztRQUZsQyxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ25CLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXJCbkMsa0JBQWEsR0FBRyxFQUFFLENBQUE7UUFJbEIsZ0JBQVcsR0FBeUM7WUFDMUQsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRTtZQUNwRixPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFO1lBQ3JGLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUU7WUFDdEYsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtB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QUNULElBQUksRUFBRTt3QkFDSixPQUFPLEVBQUUsb0JBQW9CO3dCQUM3QixjQUFjLEVBQUUsZUFBZTt3QkFDL0IsY0FBYyxFQUFFLHFCQUFxQjtxQkFDdEM7b0JBQ0QsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsUUFBUSxFQUFFLGtCQUFrQjtpQkFDN0I7c0pBYytCLE9BQU87c0JBQXBDLEtBQUs7dUJBQUMscUJBQXFCO2dCQUNBLFFBQVE7c0JBQW5DLEtBQUs7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlLCBDb25uZWN0ZWRQb3NpdGlvbiwgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5LCBPdmVybGF5LCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRndQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi9wb3BvdmVyLmNvbXBvbmVudCc7XG5cbmV4cG9ydCB0eXBlIEZ3UG9wb3ZlclBvc2l0aW9uID0gJ2xlZnQnIHwgJ3JpZ2h0JyB8ICdhYm92ZScgfCAnYmVsb3cnIHwgJ2JlZm9yZScgfCAnYWZ0ZXInO1xuXG5ARGlyZWN0aXZlKHtcbiAgaG9zdDoge1xuICAgICdjbGFzcyc6ICdmdy1wb3BvdmVyLXRyaWdnZXInLFxuICAgICcobW91c2VlbnRlciknOiAnc2hvd1BvcG92ZXIoKScsXG4gICAgJyhtb3VzZWxlYXZlKSc6ICdoaWRlUG9wb3ZlcigkZXZlbnQpJyxcbiAgfSxcbiAgc2VsZWN0b3I6ICdbZndQb3BvdmVyVHJpZ2dlckZvcl0nLFxuICBleHBvcnRBczogJ2Z3UG9wb3ZlclRyaWdnZXInLFxufSlcbmV4cG9ydCBjbGFzcyBGd1BvcG92ZXJUcmlnZ2VyRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgcG9wb3ZlcklkOiBzdHJpbmdcbiAgcHJpdmF0ZSBwb3BvdmVyTWFyZ2luID0gMTVcbiAgcHJpdmF0ZSBmYWxsYmFja1Bvc2l0aW9uOiBGd1BvcG92ZXJQb3NpdGlvblxuICBwcml2YXRlIG1haW5Qb3NpdGlvbjogRndQb3BvdmVyUG9zaXRpb25cbiAgcHJpdmF0ZSBvdmVybGF5UmVmOiBPdmVybGF5UmVmXG4gIHByaXZhdGUgcG9zaXRpb25NYXA6IHsgW2tleTogc3RyaW5nXTogQ29ubmVjdGVkUG9zaXRpb24gfSA9IHtcbiAgICAnbGVmdCc6IHsgb3JpZ2luWDogJ3N0YXJ0Jywgb3JpZ2luWTogJ2NlbnRlcicsIG92ZXJsYXlYOiAnZW5kJywgb3ZlcmxheVk6ICdjZW50ZXInIH0sXG4gICAgJ3JpZ2h0JzogeyBvcmlnaW5YOiAnZW5kJywgb3JpZ2luWTogJ2NlbnRlcicsIG92ZXJsYXlYOiAnc3RhcnQnLCBvdmVybGF5WTogJ2NlbnRlcicgfSxcbiAgICAnYWJvdmUnOiB7IG9yaWdpblg6ICdjZW50ZXInLCBvcmlnaW5ZOiAndG9wJywgb3ZlcmxheVg6ICdjZW50ZXInLCBvdmVybGF5WTogJ2JvdHRvbScgfSxcbiAgICAnYmVsb3cnOiB7IG9yaWdpblg6ICdjZW50ZXInLCBvcmlnaW5ZOiAnYm90dG9tJywgb3ZlcmxheVg6ICdjZW50ZXInLCBvdmVybGF5WTogJ3RvcCcgfSxcbiAgfVxuXG4gIEBJbnB1dCgnZndQb3BvdmVyVHJpZ2dlckZvcicpIHBvcG92ZXI6IEZ3UG9wb3ZlckNvbXBvbmVudFxuICBASW5wdXQoJ2Z3UG9wb3ZlclBvc2l0aW9uJykgcG9zaXRpb246IEZ3UG9wb3ZlclBvc2l0aW9uID0gJ2JlbG93J1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9ucyA9IHtcbiAgICBwb3NpdGlvbkNoYW5nZXM6IFN1YnNjcmlwdGlvbi5FTVBUWSxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICBwdWJsaWMgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwdWJsaWMgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgKSB7IH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMucG9zaXRpb24gJiYgdGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmID0gbnVsbDtcbiAgICB9XG4gICAgZm9yIChjb25zdCBzdWJzY3JpcHRpb24gb2YgT2JqZWN0LnZhbHVlcyh0aGlzLnN1YnNjcmlwdGlvbnMpKSB7XG4gICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBzaG93UG9wb3ZlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wb3BvdmVyPy50ZW1wbGF0ZVJlZikge1xuICAgICAgdGhpcy5nZXRPdmVybGF5KCkuYXR0YWNoKG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLnBvcG92ZXIudGVtcGxhdGVSZWYsIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xuICAgIH1cbiAgfVxuXG4gIGhpZGVQb3BvdmVyKGU6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIShlLnJlbGF0ZWRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpPy5jbGFzc0xpc3QuY29udGFpbnMoJ2Z3LXBvcG92ZXItcGFuZWwnKSkge1xuICAgICAgdGhpcy5nZXRPdmVybGF5KCkuZGV0YWNoKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRQb3BvdmVyQ2FyZXRQb3NpdGlvbihwb3NpdGlvbjogRndQb3BvdmVyUG9zaXRpb24pOiB2b2lkIHtcbiAgICBjb25zdCBjYXJldCA9IHRoaXMub3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuZnctcG9wb3Zlci1jYXJldCcpIGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IGNhcmV0UmVjdCA9IHRoaXMub3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCB0cmlnZ2VyUmVjdCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICh0aGlzLm92ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmZ3LXBvcG92ZXItY29udGVudC13cmFwcGVyJykgYXMgSFRNTEVsZW1lbnQpLnN0eWxlLm1hcmdpbiA9IGAke3RoaXMucG9wb3Zlck1hcmdpbn1weGA7XG4gICAgaWYgKFsnbGVmdCcsICdyaWdodCcsICdiZWZvcmUnLCAnYWZ0ZXInXS5pbmNsdWRlcyhwb3NpdGlvbikpIHtcbiAgICAgIGNhcmV0LnN0eWxlLnRvcCA9IGAke3RyaWdnZXJSZWN0LnRvcCAtIGNhcmV0UmVjdC50b3AgLSB0aGlzLnBvcG92ZXJNYXJnaW4gKyAodHJpZ2dlclJlY3QuaGVpZ2h0IC8gMil9cHhgO1xuICAgIH0gZWxzZSB7XG4gICAgICBjYXJldC5zdHlsZS5sZWZ0ID0gYCR7dHJpZ2dlclJlY3QubGVmdCAtIGNhcmV0UmVjdC5sZWZ0IC0gdGhpcy5wb3BvdmVyTWFyZ2luICsgKHRyaWdnZXJSZWN0LndpZHRoIC8gMil9cHhgO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0UG9wb3ZlclBvc2l0aW9uKHBvc2l0aW9uQ2hhbmdlOiBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UpOiB2b2lkIHtcbiAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMucG9zaXRpb25NYXBbdGhpcy5tYWluUG9zaXRpb25dID09PSBwb3NpdGlvbkNoYW5nZS5jb25uZWN0aW9uUGFpclxuICAgICAgPyB0aGlzLm1haW5Qb3NpdGlvblxuICAgICAgOiB0aGlzLnBvc2l0aW9uTWFwW3RoaXMuZmFsbGJhY2tQb3NpdGlvbl0gPT09IHBvc2l0aW9uQ2hhbmdlLmNvbm5lY3Rpb25QYWlyXG4gICAgICAgID8gdGhpcy5mYWxsYmFja1Bvc2l0aW9uXG4gICAgICAgIDogdGhpcy5tYWluUG9zaXRpb247XG4gICAgdGhpcy5vdmVybGF5UmVmLnJlbW92ZVBhbmVsQ2xhc3MoWydmdy1wb3BvdmVyLWFib3ZlJywgJ2Z3LXBvcG92ZXItYmVsb3cnLCAnZnctcG9wb3Zlci1sZWZ0JywgJ2Z3LXBvcG92ZXItcmlnaHQnXSk7XG4gICAgdGhpcy5vdmVybGF5UmVmLmFkZFBhbmVsQ2xhc3MoYGZ3LXBvcG92ZXItJHtwb3NpdGlvbn1gKTtcbiAgICB0aGlzLnNldFBvcG92ZXJDYXJldFBvc2l0aW9uKHBvc2l0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRPdmVybGF5KCk6IE92ZXJsYXlSZWYge1xuICAgIGlmICghdGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5vdmVybGF5LnBvc2l0aW9uKClcbiAgICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLmVsZW1lbnQpXG4gICAgICAgICAgLndpdGhQb3NpdGlvbnModGhpcy5nZXRQb3NpdGlvbnMoKSksXG4gICAgICAgIHBhbmVsQ2xhc3M6ICdmdy1wb3BvdmVyLXBhbmVsJyxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5vdmVybGF5UmVmLm92ZXJsYXlFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCBlID0+IHRoaXMuaGlkZVBvcG92ZXIoZSkpO1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnBvc2l0aW9uQ2hhbmdlcyA9ICh0aGlzLm92ZXJsYXlSZWYuZ2V0Q29uZmlnKCkucG9zaXRpb25TdHJhdGVneSBhcyBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3kpLnBvc2l0aW9uQ2hhbmdlc1xuICAgICAgICAuc3Vic2NyaWJlKHBvc2l0aW9uQ2hhbmdlID0+IHRoaXMuc2V0UG9wb3ZlclBvc2l0aW9uKHBvc2l0aW9uQ2hhbmdlKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm92ZXJsYXlSZWY7XG4gIH1cblxuICBwcml2YXRlIGdldE1haW5Qb3NpdGlvbigpOiBGd1BvcG92ZXJQb3NpdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMubWFpblBvc2l0aW9uID1cbiAgICAgIFsnbGVmdCcsICdiZWZvcmUnXS5pbmNsdWRlcyh0aGlzLnBvc2l0aW9uKVxuICAgICAgICA/ICdsZWZ0J1xuICAgICAgICA6IFsncmlnaHQnLCAnYWZ0ZXInXS5pbmNsdWRlcyh0aGlzLnBvc2l0aW9uKVxuICAgICAgICAgID8gJ3JpZ2h0J1xuICAgICAgICAgIDogdGhpcy5wb3NpdGlvbiA9PT0gJ2Fib3ZlJ1xuICAgICAgICAgICAgPyAnYWJvdmUnXG4gICAgICAgICAgICA6ICdiZWxvdyc7XG4gIH1cblxuICBwcml2YXRlIGdldEZhbGxiYWNrUG9zaXRpb24oKTogRndQb3BvdmVyUG9zaXRpb24ge1xuICAgIHJldHVybiB0aGlzLmZhbGxiYWNrUG9zaXRpb24gPVxuICAgICAgWydsZWZ0JywgJ2JlZm9yZSddLmluY2x1ZGVzKHRoaXMucG9zaXRpb24pXG4gICAgICAgID8gJ3JpZ2h0J1xuICAgICAgICA6IFsncmlnaHQnLCAnYWZ0ZXInXS5pbmNsdWRlcyh0aGlzLnBvc2l0aW9uKVxuICAgICAgICAgID8gJ2xlZnQnXG4gICAgICAgICAgOiB0aGlzLnBvc2l0aW9uID09PSAnYWJvdmUnXG4gICAgICAgICAgICA/ICdiZWxvdydcbiAgICAgICAgICAgIDogJ2Fib3ZlJztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UG9zaXRpb25zKCk6IENvbm5lY3RlZFBvc2l0aW9uW10ge1xuICAgIHJldHVybiBbXG4gICAgICAvLyBtYWluIHBvc2l0aW9uXG4gICAgICB0aGlzLnBvc2l0aW9uTWFwW3RoaXMuZ2V0TWFpblBvc2l0aW9uKCldLFxuICAgICAgLy8gZmFsbGJhY2sgcG9zaXRpb24gKGludmVyc2Ugb2YgbWFpbilcbiAgICAgIHRoaXMucG9zaXRpb25NYXBbdGhpcy5nZXRGYWxsYmFja1Bvc2l0aW9uKCldLFxuICAgIF07XG4gIH1cbn1cbiJdfQ==
|