verben-ng-ui 1.5.6 → 1.5.7
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/esm2022/src/lib/components/notification/notification.component.mjs +15 -10
- package/esm2022/src/lib/services/notification.services.mjs +28 -23
- package/fesm2022/verben-ng-ui-src-lib-components-notification.mjs +14 -9
- package/fesm2022/verben-ng-ui-src-lib-components-notification.mjs.map +1 -1
- package/fesm2022/verben-ng-ui-src-lib-services.mjs +27 -22
- package/fesm2022/verben-ng-ui-src-lib-services.mjs.map +1 -1
- package/package.json +101 -101
|
@@ -9,10 +9,11 @@ export class NotificationComponent {
|
|
|
9
9
|
notificationService;
|
|
10
10
|
width = '400px';
|
|
11
11
|
height = '50px';
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
// Look (2026-10-16): close to shadcn / Sonner "rich colors" toasts
|
|
13
|
+
borderRadius = '10px';
|
|
14
|
+
fontSize = '14px';
|
|
15
|
+
fontWeight = '500';
|
|
16
|
+
padding = '14px 2.5rem 14px 16px';
|
|
16
17
|
content;
|
|
17
18
|
top = '';
|
|
18
19
|
bottom = '';
|
|
@@ -58,9 +59,13 @@ export class NotificationComponent {
|
|
|
58
59
|
? this.notificationOptions.backgroundColor
|
|
59
60
|
: '',
|
|
60
61
|
color: this.notificationOptions ? this.notificationOptions.textColor : '',
|
|
62
|
+
// The toast's colours for its buttons (main = text colour, others = a tint of it)
|
|
63
|
+
'--vbn-toast-fg': this.notificationOptions?.textColor || 'currentColor',
|
|
64
|
+
'--vbn-toast-bg': this.notificationOptions?.backgroundColor || 'transparent',
|
|
65
|
+
'--vbn-toast-soft': 'color-mix(in srgb, var(--vbn-toast-fg) 12%, transparent)',
|
|
61
66
|
padding: this.padding,
|
|
62
67
|
'border-radius': this.borderRadius,
|
|
63
|
-
border: '1px solid transparent',
|
|
68
|
+
border: '1px solid color-mix(in srgb, currentColor 20%, transparent)',
|
|
64
69
|
width: this.width,
|
|
65
70
|
'font-size': this.fontSize,
|
|
66
71
|
'font-weight': this.fontWeight,
|
|
@@ -112,25 +117,25 @@ export class NotificationComponent {
|
|
|
112
117
|
return {
|
|
113
118
|
display: 'flex',
|
|
114
119
|
'align-items': 'center',
|
|
115
|
-
gap: '
|
|
120
|
+
gap: '6px',
|
|
116
121
|
};
|
|
117
122
|
}
|
|
118
123
|
get innerWrapperStyles() {
|
|
119
124
|
return {
|
|
120
125
|
display: 'flex',
|
|
121
126
|
'align-items': 'center',
|
|
122
|
-
gap: '
|
|
127
|
+
gap: '10px',
|
|
123
128
|
};
|
|
124
129
|
}
|
|
125
130
|
onButtonClick(button) {
|
|
126
131
|
this.buttonClick.emit(button);
|
|
127
132
|
}
|
|
128
133
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NotificationComponent, deps: [{ token: i1.NotificationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
129
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: NotificationComponent, selector: "verben-notification", inputs: { width: "width", content: "content", buttons: "buttons", timeout: "timeout", position: "position" }, outputs: { buttonClick: "buttonClick", close: "close" }, ngImport: i0, template: "<div\n [ngStyle]=\"notificationStyles\"\n class=\"mainwrapper\"\n *ngIf=\"notificationOptions\"\n>\n <div [ngStyle]=\"innerWrapperStyles\">\n <verben-svg\n [icon]=\"notificationOptions.iconName || ''\"\n [width]=\"notificationOptions.iconWidth ||
|
|
134
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: NotificationComponent, selector: "verben-notification", inputs: { width: "width", content: "content", buttons: "buttons", timeout: "timeout", position: "position" }, outputs: { buttonClick: "buttonClick", close: "close" }, ngImport: i0, template: "<div\n [ngStyle]=\"notificationStyles\"\n class=\"mainwrapper\"\n [attr.data-type]=\"notificationOptions.type\"\n [attr.role]=\"notificationOptions.type === 'error' ? 'alert' : 'status'\"\n *ngIf=\"notificationOptions\"\n>\n <div class=\"content\" [ngStyle]=\"innerWrapperStyles\">\n <verben-svg\n class=\"icon\"\n *ngIf=\"notificationOptions.iconName\"\n [icon]=\"notificationOptions.iconName || ''\"\n [width]=\"notificationOptions.iconWidth || 18\"\n [height]=\"notificationOptions.iconHeight || 18\"\n [stroke]=\"notificationOptions.stroke || ''\"\n [fill]=\"notificationOptions.fill || ''\"\n ></verben-svg>\n <p>{{ notificationContent }}</p>\n </div>\n\n <!-- Buttons: the first is the main action (solid), the others are quieter.\n A button's own bgColor / primarycolor still win. -->\n <div class=\"side\">\n <ng-container *ngIf=\"notificationOptions.buttons\">\n <div [ngStyle]=\"btnWrapperStyle\">\n <verbena-button\n *ngFor=\"let button of notificationOptions.buttons; let first = first\"\n [text]=\"button.text\"\n [bgColor]=\"button.bgColor || (first ? 'var(--vbn-toast-fg)' : 'var(--vbn-toast-soft)')\"\n [textColor]=\"button.primarycolor || button.secondarycolor || (first ? 'var(--vbn-toast-bg)' : 'var(--vbn-toast-fg)')\"\n [border]=\"'0'\"\n [height]=\"'28px'\"\n [borderRadius]=\"'6px'\"\n [pd]=\"'0 10px'\"\n [fontSize]=\"button.fontSize || '12.5px'\"\n [fontWeight]=\"button.fontWeight || '600'\"\n (click)=\"button.callBack && button.callBack()\"\n ></verbena-button>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!notificationOptions.buttons\">\n <div [ngStyle]=\"btnWrapperStyle\" *ngIf=\"buttons.length\">\n <verbena-button\n *ngFor=\"let button of buttons; let first = first\"\n [text]=\"button.text\"\n [bgColor]=\"button.bgColor || (first ? 'var(--vbn-toast-fg)' : 'var(--vbn-toast-soft)')\"\n [textColor]=\"button.primarycolor || button.secondarycolor || (first ? 'var(--vbn-toast-bg)' : 'var(--vbn-toast-fg)')\"\n [border]=\"'0'\"\n [height]=\"'28px'\"\n [borderRadius]=\"'6px'\"\n [pd]=\"'0 10px'\"\n [fontSize]=\"button.fontSize || '12.5px'\"\n [fontWeight]=\"button.fontWeight || '600'\"\n (click)=\"onButtonClick(button); button.callBack && button.callBack()\"\n ></verbena-button>\n </div>\n </ng-container>\n </div>\n\n <button\n type=\"button\"\n class=\"closeSvg\"\n aria-label=\"Close notification\"\n title=\"Close\"\n (click)=\"closeNotification()\"\n >\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" aria-hidden=\"true\">\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </svg>\n </button>\n</div>\n", styles: ["p{margin:0!important;line-height:1.4}.mainwrapper{position:relative;box-sizing:border-box;max-width:calc(100vw - 2rem);min-height:52px;flex-wrap:wrap;row-gap:10px;column-gap:12px;font-family:var(--vbn-font-family, inherit);box-shadow:0 4px 12px #00000014}.content{flex:1 1 200px;min-width:0}.content p{overflow-wrap:anywhere}.side{margin-left:auto}.side:empty{display:none}.icon{flex:none;display:inline-flex;align-self:flex-start;margin-top:1px}.closeSvg{position:absolute;top:10px;right:10px;display:inline-grid;place-items:center;width:22px;height:22px;padding:0;border:0;border-radius:6px;background:transparent;color:inherit;opacity:.5;cursor:pointer;transition:opacity .15s ease,background-color .15s ease}.closeSvg:hover,.closeSvg:focus-visible{opacity:1;background:color-mix(in srgb,currentColor 10%,transparent)}.closeSvg:focus-visible{outline:2px solid currentColor;outline-offset:1px}.closeSvg svg{width:14px;height:14px}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "type", "size"] }, { kind: "component", type: i4.VerbenaButtonComponent, selector: "verbena-button", inputs: ["type", "text", "styleType", "size", "block", "disable", "disabled", "isLoading", "spinnerSize", "spinnerColor", "svg", "svgPosition", "svgWidth", "svgHeight", "svgSize", "svgColor", "icon", "useIcon", "iconPosition", "iconColor", "variant", "weight", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "buttonClass", "buttonTextClass"] }] });
|
|
130
135
|
}
|
|
131
136
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NotificationComponent, decorators: [{
|
|
132
137
|
type: Component,
|
|
133
|
-
args: [{ selector: 'verben-notification', template: "<div\n [ngStyle]=\"notificationStyles\"\n class=\"mainwrapper\"\n *ngIf=\"notificationOptions\"\n>\n <div [ngStyle]=\"innerWrapperStyles\">\n <verben-svg\n [icon]=\"notificationOptions.iconName || ''\"\n [width]=\"notificationOptions.iconWidth ||
|
|
138
|
+
args: [{ selector: 'verben-notification', template: "<div\n [ngStyle]=\"notificationStyles\"\n class=\"mainwrapper\"\n [attr.data-type]=\"notificationOptions.type\"\n [attr.role]=\"notificationOptions.type === 'error' ? 'alert' : 'status'\"\n *ngIf=\"notificationOptions\"\n>\n <div class=\"content\" [ngStyle]=\"innerWrapperStyles\">\n <verben-svg\n class=\"icon\"\n *ngIf=\"notificationOptions.iconName\"\n [icon]=\"notificationOptions.iconName || ''\"\n [width]=\"notificationOptions.iconWidth || 18\"\n [height]=\"notificationOptions.iconHeight || 18\"\n [stroke]=\"notificationOptions.stroke || ''\"\n [fill]=\"notificationOptions.fill || ''\"\n ></verben-svg>\n <p>{{ notificationContent }}</p>\n </div>\n\n <!-- Buttons: the first is the main action (solid), the others are quieter.\n A button's own bgColor / primarycolor still win. -->\n <div class=\"side\">\n <ng-container *ngIf=\"notificationOptions.buttons\">\n <div [ngStyle]=\"btnWrapperStyle\">\n <verbena-button\n *ngFor=\"let button of notificationOptions.buttons; let first = first\"\n [text]=\"button.text\"\n [bgColor]=\"button.bgColor || (first ? 'var(--vbn-toast-fg)' : 'var(--vbn-toast-soft)')\"\n [textColor]=\"button.primarycolor || button.secondarycolor || (first ? 'var(--vbn-toast-bg)' : 'var(--vbn-toast-fg)')\"\n [border]=\"'0'\"\n [height]=\"'28px'\"\n [borderRadius]=\"'6px'\"\n [pd]=\"'0 10px'\"\n [fontSize]=\"button.fontSize || '12.5px'\"\n [fontWeight]=\"button.fontWeight || '600'\"\n (click)=\"button.callBack && button.callBack()\"\n ></verbena-button>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!notificationOptions.buttons\">\n <div [ngStyle]=\"btnWrapperStyle\" *ngIf=\"buttons.length\">\n <verbena-button\n *ngFor=\"let button of buttons; let first = first\"\n [text]=\"button.text\"\n [bgColor]=\"button.bgColor || (first ? 'var(--vbn-toast-fg)' : 'var(--vbn-toast-soft)')\"\n [textColor]=\"button.primarycolor || button.secondarycolor || (first ? 'var(--vbn-toast-bg)' : 'var(--vbn-toast-fg)')\"\n [border]=\"'0'\"\n [height]=\"'28px'\"\n [borderRadius]=\"'6px'\"\n [pd]=\"'0 10px'\"\n [fontSize]=\"button.fontSize || '12.5px'\"\n [fontWeight]=\"button.fontWeight || '600'\"\n (click)=\"onButtonClick(button); button.callBack && button.callBack()\"\n ></verbena-button>\n </div>\n </ng-container>\n </div>\n\n <button\n type=\"button\"\n class=\"closeSvg\"\n aria-label=\"Close notification\"\n title=\"Close\"\n (click)=\"closeNotification()\"\n >\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" aria-hidden=\"true\">\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </svg>\n </button>\n</div>\n", styles: ["p{margin:0!important;line-height:1.4}.mainwrapper{position:relative;box-sizing:border-box;max-width:calc(100vw - 2rem);min-height:52px;flex-wrap:wrap;row-gap:10px;column-gap:12px;font-family:var(--vbn-font-family, inherit);box-shadow:0 4px 12px #00000014}.content{flex:1 1 200px;min-width:0}.content p{overflow-wrap:anywhere}.side{margin-left:auto}.side:empty{display:none}.icon{flex:none;display:inline-flex;align-self:flex-start;margin-top:1px}.closeSvg{position:absolute;top:10px;right:10px;display:inline-grid;place-items:center;width:22px;height:22px;padding:0;border:0;border-radius:6px;background:transparent;color:inherit;opacity:.5;cursor:pointer;transition:opacity .15s ease,background-color .15s ease}.closeSvg:hover,.closeSvg:focus-visible{opacity:1;background:color-mix(in srgb,currentColor 10%,transparent)}.closeSvg:focus-visible{outline:2px solid currentColor;outline-offset:1px}.closeSvg svg{width:14px;height:14px}\n"] }]
|
|
134
139
|
}], ctorParameters: () => [{ type: i1.NotificationService }], propDecorators: { width: [{
|
|
135
140
|
type: Input
|
|
136
141
|
}], content: [{
|
|
@@ -146,4 +151,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImpo
|
|
|
146
151
|
}], close: [{
|
|
147
152
|
type: Output
|
|
148
153
|
}] } });
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1uZy11aS9zcmMvbGliL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsWUFBWSxFQUNaLE1BQU0sR0FHUCxNQUFNLGVBQWUsQ0FBQztBQU12QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFPcEMsTUFBTSxPQUFPLHFCQUFxQjtJQW9CWjtJQW5CWCxLQUFLLEdBQVksT0FBTyxDQUFDO0lBQ2xDLE1BQU0sR0FBWSxNQUFNLENBQUM7SUFDekIsWUFBWSxHQUFXLE1BQU0sQ0FBQztJQUM5QixRQUFRLEdBQVcsTUFBTSxDQUFDO0lBQzFCLFVBQVUsR0FBVyxLQUFLLENBQUM7SUFDM0IsT0FBTyxHQUFXLHlCQUF5QixDQUFDO0lBQ25DLE9BQU8sQ0FBVTtJQUMxQixHQUFHLEdBQVcsRUFBRSxDQUFDO0lBQ2pCLE1BQU0sR0FBVyxFQUFFLENBQUM7SUFDWCxPQUFPLEdBQXlCLEVBQUUsQ0FBQztJQUNuQyxPQUFPLEdBQVcsS0FBSyxDQUFDO0lBQ3hCLFFBQVEsR0FBVyxVQUFVLENBQUM7SUFDdkMsVUFBVSxHQUFXLGtCQUFrQixDQUFDO0lBRXhDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztJQUN6QixtQkFBbUIsR0FBRyxFQUFFLENBQUM7SUFDekIsbUJBQW1CLEdBQStCLElBQUksQ0FBQztJQUN2RCxZQUFZLENBQWU7SUFFM0IsWUFBb0IsbUJBQXdDO1FBQXhDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDMUQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FDbEUsQ0FBQyxZQUFZLEVBQUUsRUFBRTtZQUNmLElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDO2dCQUNoRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQztnQkFFaEQsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDZCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDM0IsQ0FBQyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN2QyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztZQUNoQyxDQUFDO1FBQ0gsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDOUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVTLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBc0IsQ0FBQztJQUNyRCxLQUFLLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUVyQyxJQUFJLGtCQUFrQjtRQUNwQixPQUFPO1lBQ0wsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLG1CQUFtQjtnQkFDMUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlO2dCQUMxQyxDQUFDLENBQUMsRUFBRTtZQUNOLEtBQUssRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDekUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLGVBQWUsRUFBRSxJQUFJLENBQUMsWUFBWTtZQUNsQyxNQUFNLEVBQUUsdUJBQXVCO1lBQy9CLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixXQUFXLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDMUIsYUFBYSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzlCLE9BQU8sRUFBRSxNQUFNO1lBQ2YsYUFBYSxFQUFFLFFBQVE7WUFDdkIsaUJBQWlCLEVBQUUsZUFBZTtZQUNsQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMzQixRQUFRLEVBQUUsT0FBTztZQUNqQixTQUFTLEVBQUUsTUFBTTtZQUNqQixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDNUIsQ0FBQztJQUNKLENBQUM7SUFFRCxpQkFBaUI7UUFDZixNQUFNLFNBQVMsR0FBMkI7WUFDeEMsVUFBVSxFQUFFO2dCQUNWLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxJQUFJLE1BQU07Z0JBQ3ZCLElBQUksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTztnQkFDOUMsVUFBVSxFQUFFLHNCQUFzQjthQUNuQztZQUNELFdBQVcsRUFBRTtnQkFDWCxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsSUFBSSxNQUFNO2dCQUN2QixLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU87Z0JBQy9DLFVBQVUsRUFBRSxzQkFBc0I7YUFDbkM7WUFDRCxhQUFhLEVBQUU7Z0JBQ2IsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLElBQUksS0FBSztnQkFDdEIsSUFBSSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPO2dCQUM5QyxVQUFVLEVBQUUsc0JBQXNCO2FBQ25DO1lBQ0QsY0FBYyxFQUFFO2dCQUNkLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxJQUFJLEtBQUs7Z0JBQ3RCLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTztnQkFDL0MsVUFBVSxFQUFFLHNCQUFzQjthQUNuQztZQUNELGFBQWEsRUFBRTtnQkFDYixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sSUFBSSxNQUFNO2dCQUM3QixJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU87Z0JBQzlDLFVBQVUsRUFBRSx5QkFBeUI7YUFDdEM7WUFDRCxjQUFjLEVBQUU7Z0JBQ2QsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLElBQUksTUFBTTtnQkFDN0IsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPO2dCQUMvQyxVQUFVLEVBQUUseUJBQXlCO2FBQ3RDO1NBQ0YsQ0FBQztRQUVGLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPO1lBQ0wsT0FBTyxFQUFFLE1BQU07WUFDZixhQUFhLEVBQUUsUUFBUTtZQUN2QixHQUFHLEVBQUUsUUFBUTtTQUNkLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTztZQUNMLE9BQU8sRUFBRSxNQUFNO1lBQ2YsYUFBYSxFQUFFLFFBQVE7WUFDdkIsR0FBRyxFQUFFLFFBQVE7U0FDZCxDQUFDO0lBQ0osQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUEwQjtRQUN0QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO3dHQW5JVSxxQkFBcUI7NEZBQXJCLHFCQUFxQixrT0NwQmxDLGcxREFxREE7OzRGRGpDYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UscUJBQXFCO3dGQUt0QixLQUFLO3NCQUFiLEtBQUs7Z0JBTUcsT0FBTztzQkFBZixLQUFLO2dCQUdHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkF1Q0ksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIE91dHB1dCxcbiAgT25Jbml0LFxuICBPbkRlc3Ryb3ksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJ3ZlcmJlbi1uZy11aS9zcmMvbGliL3NlcnZpY2VzJztcbmltcG9ydCB7XG4gIE5vdGlmaWNhdGlvbkJ1dHRvbixcbiAgTm90aWZpY2F0aW9uT3B0aW9ucyxcbn0gZnJvbSAndmVyYmVuLW5nLXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZXJiZW4tbm90aWZpY2F0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25vdGlmaWNhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9ub3RpZmljYXRpb24uY29tcG9uZW50LmNzcycsXG59KVxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgd2lkdGg/OiBzdHJpbmcgPSAnNDAwcHgnO1xuICBoZWlnaHQ/OiBzdHJpbmcgPSAnNTBweCc7XG4gIGJvcmRlclJhZGl1czogc3RyaW5nID0gJzE1cHgnO1xuICBmb250U2l6ZTogc3RyaW5nID0gJzIwcHgnO1xuICBmb250V2VpZ2h0OiBzdHJpbmcgPSAnNzAwJztcbiAgcGFkZGluZzogc3RyaW5nID0gJzEwcHggMi41cmVtIDEwcHggMS41cmVtJztcbiAgQElucHV0KCkgY29udGVudD86IHN0cmluZztcbiAgdG9wOiBzdHJpbmcgPSAnJztcbiAgYm90dG9tOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgYnV0dG9uczogTm90aWZpY2F0aW9uQnV0dG9uW10gPSBbXTtcbiAgQElucHV0KCkgdGltZW91dDogbnVtYmVyID0gMTAwMDA7XG4gIEBJbnB1dCgpIHBvc2l0aW9uOiBzdHJpbmcgPSAndG9wLWxlZnQnO1xuICB0cmFuc2l0aW9uOiBzdHJpbmcgPSAnMC42cyBlYXNlLWluLW91dCc7XG5cbiAgc2hvd05vdGlmaWNhdGlvbiA9IGZhbHNlO1xuICBub3RpZmljYXRpb25Db250ZW50ID0gJyc7XG4gIG5vdGlmaWNhdGlvbk9wdGlvbnM6IE5vdGlmaWNhdGlvbk9wdGlvbnMgfCBudWxsID0gbnVsbDtcbiAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5ub3RpZmljYXRpb24kLnN1YnNjcmliZShcbiAgICAgIChub3RpZmljYXRpb24pID0+IHtcbiAgICAgICAgaWYgKG5vdGlmaWNhdGlvbikge1xuICAgICAgICAgIHRoaXMuc2hvd05vdGlmaWNhdGlvbiA9IHRydWU7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25Db250ZW50ID0gbm90aWZpY2F0aW9uLm1lc3NhZ2U7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25PcHRpb25zID0gbm90aWZpY2F0aW9uLm9wdGlvbnM7XG5cbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VOb3RpZmljYXRpb24oKTtcbiAgICAgICAgICB9LCB0aGlzLm5vdGlmaWNhdGlvbk9wdGlvbnMudGltZW91dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zaG93Tm90aWZpY2F0aW9uID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBjbG9zZU5vdGlmaWNhdGlvbigpIHtcbiAgICB0aGlzLnNob3dOb3RpZmljYXRpb24gPSBmYWxzZTtcbiAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuY2xlYXJOb3RpZmljYXRpb24oKTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBidXR0b25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Tm90aWZpY2F0aW9uQnV0dG9uPigpO1xuICBAT3V0cHV0KCkgY2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgZ2V0IG5vdGlmaWNhdGlvblN0eWxlcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJ2JhY2tncm91bmQtY29sb3InOiB0aGlzLm5vdGlmaWNhdGlvbk9wdGlvbnNcbiAgICAgICAgPyB0aGlzLm5vdGlmaWNhdGlvbk9wdGlvbnMuYmFja2dyb3VuZENvbG9yXG4gICAgICAgIDogJycsXG4gICAgICBjb2xvcjogdGhpcy5ub3RpZmljYXRpb25PcHRpb25zID8gdGhpcy5ub3RpZmljYXRpb25PcHRpb25zLnRleHRDb2xvciA6ICcnLFxuICAgICAgcGFkZGluZzogdGhpcy5wYWRkaW5nLFxuICAgICAgJ2JvcmRlci1yYWRpdXMnOiB0aGlzLmJvcmRlclJhZGl1cyxcbiAgICAgIGJvcmRlcjogJzFweCBzb2xpZCB0cmFuc3BhcmVudCcsXG4gICAgICB3aWR0aDogdGhpcy53aWR0aCxcbiAgICAgICdmb250LXNpemUnOiB0aGlzLmZvbnRTaXplLFxuICAgICAgJ2ZvbnQtd2VpZ2h0JzogdGhpcy5mb250V2VpZ2h0LFxuICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgJ2FsaWduLWl0ZW1zJzogJ2NlbnRlcicsXG4gICAgICAnanVzdGlmeS1jb250ZW50JzogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgLi4udGhpcy5nZXRQb3NpdGlvblN0eWxlcygpLFxuICAgICAgcG9zaXRpb246ICdmaXhlZCcsXG4gICAgICAnei1pbmRleCc6ICc5OTk5JyxcbiAgICAgIHRyYW5zaXRpb246IHRoaXMudHJhbnNpdGlvbixcbiAgICB9O1xuICB9XG5cbiAgZ2V0UG9zaXRpb25TdHlsZXMoKSB7XG4gICAgY29uc3QgcG9zaXRpb25zOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge1xuICAgICAgJ3RvcC1sZWZ0Jzoge1xuICAgICAgICB0b3A6IHRoaXMudG9wIHx8ICcxcmVtJyxcbiAgICAgICAgbGVmdDogdGhpcy5zaG93Tm90aWZpY2F0aW9uID8gJzFyZW0nIDogJy0xMDAlJyxcbiAgICAgICAgdHJhbnNpdGlvbjogJ3RvcCAwLjVzIGVhc2UtaW4tb3V0JyxcbiAgICAgIH0sXG4gICAgICAndG9wLXJpZ2h0Jzoge1xuICAgICAgICB0b3A6IHRoaXMudG9wIHx8ICcxcmVtJyxcbiAgICAgICAgcmlnaHQ6IHRoaXMuc2hvd05vdGlmaWNhdGlvbiA/ICcxcmVtJyA6ICctMTAwJScsXG4gICAgICAgIHRyYW5zaXRpb246ICd0b3AgMC41cyBlYXNlLWluLW91dCcsXG4gICAgICB9LFxuICAgICAgJ21pZGRsZS1sZWZ0Jzoge1xuICAgICAgICB0b3A6IHRoaXMudG9wIHx8ICc0NSUnLFxuICAgICAgICBsZWZ0OiB0aGlzLnNob3dOb3RpZmljYXRpb24gPyAnMXJlbScgOiAnLTEwMCUnLFxuICAgICAgICB0cmFuc2l0aW9uOiAndG9wIDAuNXMgZWFzZS1pbi1vdXQnLFxuICAgICAgfSxcbiAgICAgICdtaWRkbGUtcmlnaHQnOiB7XG4gICAgICAgIHRvcDogdGhpcy50b3AgfHwgJzQ1JScsXG4gICAgICAgIHJpZ2h0OiB0aGlzLnNob3dOb3RpZmljYXRpb24gPyAnMXJlbScgOiAnLTEwMCUnLFxuICAgICAgICB0cmFuc2l0aW9uOiAndG9wIDAuNXMgZWFzZS1pbi1vdXQnLFxuICAgICAgfSxcbiAgICAgICdib3R0b20tbGVmdCc6IHtcbiAgICAgICAgYm90dG9tOiB0aGlzLmJvdHRvbSB8fCAnMXJlbScsXG4gICAgICAgIGxlZnQ6IHRoaXMuc2hvd05vdGlmaWNhdGlvbiA/ICcxcmVtJyA6ICctMTAwJScsXG4gICAgICAgIHRyYW5zaXRpb246ICdib3R0b20gMC41cyBlYXNlLWluLW91dCcsXG4gICAgICB9LFxuICAgICAgJ2JvdHRvbS1yaWdodCc6IHtcbiAgICAgICAgYm90dG9tOiB0aGlzLmJvdHRvbSB8fCAnMXJlbScsXG4gICAgICAgIHJpZ2h0OiB0aGlzLnNob3dOb3RpZmljYXRpb24gPyAnMXJlbScgOiAnLTEwMCUnLFxuICAgICAgICB0cmFuc2l0aW9uOiAnYm90dG9tIDAuNXMgZWFzZS1pbi1vdXQnLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHBvc2l0aW9uc1t0aGlzLnBvc2l0aW9uXSB8fCBwb3NpdGlvbnNbJ3RvcC1sZWZ0J107XG4gIH1cblxuICBnZXQgYnRuV3JhcHBlclN0eWxlKCkge1xuICAgIHJldHVybiB7XG4gICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAnYWxpZ24taXRlbXMnOiAnY2VudGVyJyxcbiAgICAgIGdhcDogJzAuMnJlbScsXG4gICAgfTtcbiAgfVxuXG4gIGdldCBpbm5lcldyYXBwZXJTdHlsZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICdhbGlnbi1pdGVtcyc6ICdjZW50ZXInLFxuICAgICAgZ2FwOiAnMS41cmVtJyxcbiAgICB9O1xuICB9XG5cbiAgb25CdXR0b25DbGljayhidXR0b246IE5vdGlmaWNhdGlvbkJ1dHRvbikge1xuICAgIHRoaXMuYnV0dG9uQ2xpY2suZW1pdChidXR0b24pO1xuICB9XG59XG4iLCI8ZGl2XG4gIFtuZ1N0eWxlXT1cIm5vdGlmaWNhdGlvblN0eWxlc1wiXG4gIGNsYXNzPVwibWFpbndyYXBwZXJcIlxuICAqbmdJZj1cIm5vdGlmaWNhdGlvbk9wdGlvbnNcIlxuPlxuICA8ZGl2IFtuZ1N0eWxlXT1cImlubmVyV3JhcHBlclN0eWxlc1wiPlxuICAgIDx2ZXJiZW4tc3ZnXG4gICAgICBbaWNvbl09XCJub3RpZmljYXRpb25PcHRpb25zLmljb25OYW1lIHx8ICcnXCJcbiAgICAgIFt3aWR0aF09XCJub3RpZmljYXRpb25PcHRpb25zLmljb25XaWR0aCB8fCAyMFwiXG4gICAgICBbaGVpZ2h0XT1cIm5vdGlmaWNhdGlvbk9wdGlvbnMuaWNvbkhlaWdodCB8fCAyMFwiXG4gICAgICBbc3Ryb2tlXT1cIm5vdGlmaWNhdGlvbk9wdGlvbnMuc3Ryb2tlIHx8ICcnXCJcbiAgICAgIFtmaWxsXT1cIm5vdGlmaWNhdGlvbk9wdGlvbnMuZmlsbCB8fCAnJ1wiXG4gICAgPjwvdmVyYmVuLXN2Zz5cbiAgICA8cD57eyBub3RpZmljYXRpb25Db250ZW50IH19PC9wPlxuICA8L2Rpdj5cbiAgPGRpdj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibm90aWZpY2F0aW9uT3B0aW9ucy5idXR0b25zXCI+XG4gICAgICA8ZGl2IFtuZ1N0eWxlXT1cImJ0bldyYXBwZXJTdHlsZVwiPlxuICAgICAgICA8dmVyYmVuYS1idXR0b25cbiAgICAgICAgICAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIG5vdGlmaWNhdGlvbk9wdGlvbnMuYnV0dG9uc1wiXG4gICAgICAgICAgW3RleHRdPVwiYnV0dG9uLnRleHRcIlxuICAgICAgICAgIFtiZ0NvbG9yXT1cImJ1dHRvbi5iZ0NvbG9yXCJcbiAgICAgICAgICBbdGV4dENvbG9yXT1cImJ1dHRvbi5wcmltYXJ5Y29sb3IgfHwgYnV0dG9uLnNlY29uZGFyeWNvbG9yXCJcbiAgICAgICAgICBbYm9yZGVyUmFkaXVzXT1cIic4cHgnXCJcbiAgICAgICAgICBbcGRdPVwiJzBweCA4cHgnXCJcbiAgICAgICAgICBbZm9udFNpemVdPVwiJzE0cHgnXCJcbiAgICAgICAgICAoY2xpY2spPVwiYnV0dG9uLmNhbGxCYWNrICYmIGJ1dHRvbi5jYWxsQmFjaygpXCJcbiAgICAgICAgPjwvdmVyYmVuYS1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW5vdGlmaWNhdGlvbk9wdGlvbnMuYnV0dG9uc1wiPlxuICAgICAgPGRpdiBbbmdTdHlsZV09XCJidG5XcmFwcGVyU3R5bGVcIiAqbmdJZj1cImJ1dHRvbnMubGVuZ3RoXCI+XG4gICAgICAgIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgICAgICpuZ0Zvcj1cImxldCBidXR0b24gb2YgYnV0dG9uc1wiXG4gICAgICAgICAgW3RleHRdPVwiYnV0dG9uLnRleHRcIlxuICAgICAgICAgIFtiZ0NvbG9yXT1cImJ1dHRvbi5iZ0NvbG9yXCJcbiAgICAgICAgICBbdGV4dENvbG9yXT1cImJ1dHRvbi5wcmltYXJ5Y29sb3IgfHwgYnV0dG9uLnNlY29uZGFyeWNvbG9yXCJcbiAgICAgICAgICBbYm9yZGVyUmFkaXVzXT1cIic4cHgnXCJcbiAgICAgICAgICBbcGRdPVwiJzBweCA4cHgnXCJcbiAgICAgICAgICBbZm9udFNpemVdPVwiJzE0cHgnXCJcbiAgICAgICAgICAoY2xpY2spPVwib25CdXR0b25DbGljayhidXR0b24pOyBidXR0b24uY2FsbEJhY2sgJiYgYnV0dG9uLmNhbGxCYWNrKClcIlxuICAgICAgICA+PC92ZXJiZW5hLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDx2ZXJiZW4tc3ZnXG4gICAgICBjbGFzcz1cImNsb3NlU3ZnXCJcbiAgICAgIFtpY29uXT1cIidjbG9zZSdcIlxuICAgICAgW3NpemVdPVwiJ3NtJ1wiXG4gICAgICBbc3Ryb2tlXT1cIid2YXIoLS12Ym4tY29sb3ItdGV4dC1tdXRlZCknXCJcbiAgICAgIChjbGljayk9XCJjbG9zZU5vdGlmaWNhdGlvbigpXCJcbiAgICA+PC92ZXJiZW4tc3ZnPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1uZy11aS9zcmMvbGliL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsWUFBWSxFQUNaLE1BQU0sR0FHUCxNQUFNLGVBQWUsQ0FBQztBQU12QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFPcEMsTUFBTSxPQUFPLHFCQUFxQjtJQXFCWjtJQXBCWCxLQUFLLEdBQVksT0FBTyxDQUFDO0lBQ2xDLE1BQU0sR0FBWSxNQUFNLENBQUM7SUFDekIsbUVBQW1FO0lBQ25FLFlBQVksR0FBVyxNQUFNLENBQUM7SUFDOUIsUUFBUSxHQUFXLE1BQU0sQ0FBQztJQUMxQixVQUFVLEdBQVcsS0FBSyxDQUFDO0lBQzNCLE9BQU8sR0FBVyx1QkFBdUIsQ0FBQztJQUNqQyxPQUFPLENBQVU7SUFDMUIsR0FBRyxHQUFXLEVBQUUsQ0FBQztJQUNqQixNQUFNLEdBQVcsRUFBRSxDQUFDO0lBQ1gsT0FBTyxHQUF5QixFQUFFLENBQUM7SUFDbkMsT0FBTyxHQUFXLEtBQUssQ0FBQztJQUN4QixRQUFRLEdBQVcsVUFBVSxDQUFDO0lBQ3ZDLFVBQVUsR0FBVyxrQkFBa0IsQ0FBQztJQUV4QyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDekIsbUJBQW1CLEdBQUcsRUFBRSxDQUFDO0lBQ3pCLG1CQUFtQixHQUErQixJQUFJLENBQUM7SUFDdkQsWUFBWSxDQUFlO0lB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RUFBRSxRQUFRO1lBQ3ZCLEdBQUcsRUFBRSxLQUFLO1NBQ1gsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNwQixPQUFPO1lBQ0wsT0FBTyxFQUFFLE1BQU07WUFDZixhQUFhLEVBQUUsUUFBUTtZQUN2QixHQUFHLEVBQUUsTUFBTTtTQUNaLENBQUM7SUFDSixDQUFDO0lBRUQsYUFBYSxDQUFDLE1BQTBCO1FBQ3RDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7d0dBeElVLHFCQUFxQjs0RkFBckIscUJBQXFCLGtPQ3BCbEMsczRGQXVFQTs7NEZEbkRhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxxQkFBcUI7d0ZBS3RCLEtBQUs7c0JBQWIsS0FBSztnQkFPRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQXVDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgT3V0cHV0LFxuICBPbkluaXQsXG4gIE9uRGVzdHJveSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAndmVyYmVuLW5nLXVpL3NyYy9saWIvc2VydmljZXMnO1xuaW1wb3J0IHtcbiAgTm90aWZpY2F0aW9uQnV0dG9uLFxuICBOb3RpZmljYXRpb25PcHRpb25zLFxufSBmcm9tICd2ZXJiZW4tbmctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlcmJlbi1ub3RpZmljYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vbm90aWZpY2F0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL25vdGlmaWNhdGlvbi5jb21wb25lbnQuY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSB3aWR0aD86IHN0cmluZyA9ICc0MDBweCc7XG4gIGhlaWdodD86IHN0cmluZyA9ICc1MHB4JztcbiAgLy8gTG9vayAoMjAyNi0xMC0xNik6IGNsb3NlIHRvIHNoYWRjbiAvIFNvbm5lciBcInJpY2ggY29sb3JzXCIgdG9hc3RzXG4gIGJvcmRlclJhZGl1czogc3RyaW5nID0gJzEwcHgnO1xuICBmb250U2l6ZTogc3RyaW5nID0gJzE0cHgnO1xuICBmb250V2VpZ2h0OiBzdHJpbmcgPSAnNTAwJztcbiAgcGFkZGluZzogc3RyaW5nID0gJzE0cHggMi41cmVtIDE0cHggMTZweCc7XG4gIEBJbnB1dCgpIGNvbnRlbnQ/OiBzdHJpbmc7XG4gIHRvcDogc3RyaW5nID0gJyc7XG4gIGJvdHRvbTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGJ1dHRvbnM6IE5vdGlmaWNhdGlvbkJ1dHRvbltdID0gW107XG4gIEBJbnB1dCgpIHRpbWVvdXQ6IG51bWJlciA9IDEwMDAwO1xuICBASW5wdXQoKSBwb3NpdGlvbjogc3RyaW5nID0gJ3RvcC1sZWZ0JztcbiAgdHJhbnNpdGlvbjogc3RyaW5nID0gJzAuNnMgZWFzZS1pbi1vdXQnO1xuXG4gIHNob3dOb3RpZmljYXRpb24gPSBmYWxzZTtcbiAgbm90aWZpY2F0aW9uQ29udGVudCA9ICcnO1xuICBub3RpZmljYXRpb25PcHRpb25zOiBOb3RpZmljYXRpb25PcHRpb25zIHwgbnVsbCA9IG51bGw7XG4gIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uubm90aWZpY2F0aW9uJC5zdWJzY3JpYmUoXG4gICAgICAobm90aWZpY2F0aW9uKSA9PiB7XG4gICAgICAgIGlmIChub3RpZmljYXRpb24pIHtcbiAgICAgICAgICB0aGlzLnNob3dOb3RpZmljYXRpb24gPSB0cnVlO1xuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uQ29udGVudCA9IG5vdGlmaWNhdGlvbi5tZXNzYWdlO1xuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uT3B0aW9ucyA9IG5vdGlmaWNhdGlvbi5vcHRpb25zO1xuXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlTm90aWZpY2F0aW9uKCk7XG4gICAgICAgICAgfSwgdGhpcy5ub3RpZmljYXRpb25PcHRpb25zLnRpbWVvdXQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc2hvd05vdGlmaWNhdGlvbiA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgY2xvc2VOb3RpZmljYXRpb24oKSB7XG4gICAgdGhpcy5zaG93Tm90aWZpY2F0aW9uID0gZmFsc2U7XG4gICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmNsZWFyTm90aWZpY2F0aW9uKCk7XG4gIH1cblxuICBAT3V0cHV0KCkgYnV0dG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPE5vdGlmaWNhdGlvbkJ1dHRvbj4oKTtcbiAgQE91dHB1dCgpIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGdldCBub3RpZmljYXRpb25TdHlsZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogdGhpcy5ub3RpZmljYXRpb25PcHRpb25zXG4gICAgICAgID8gdGhpcy5ub3RpZmljYXRpb25PcHRpb25zLmJhY2tncm91bmRDb2xvclxuICAgICAgICA6ICcnLFxuICAgICAgY29sb3I6IHRoaXMubm90aWZpY2F0aW9uT3B0aW9ucyA/IHRoaXMubm90aWZpY2F0aW9uT3B0aW9ucy50ZXh0Q29sb3IgOiAnJyxcbiAgICAgIC8vIFRoZSB0b2FzdCdzIGNvbG91cnMgZm9yIGl0cyBidXR0b25zIChtYWluID0gdGV4dCBjb2xvdXIsIG90aGVycyA9IGEgdGludCBvZiBpdClcbiAgICAgICctLXZibi10b2FzdC1mZyc6IHRoaXMubm90aWZpY2F0aW9uT3B0aW9ucz8udGV4dENvbG9yIHx8ICdjdXJyZW50Q29sb3InLFxuICAgICAgJy0tdmJuLXRvYXN0LWJnJzogdGhpcy5ub3RpZmljYXRpb25PcHRpb25zPy5iYWNrZ3JvdW5kQ29sb3IgfHwgJ3RyYW5zcGFyZW50JyxcbiAgICAgICctLXZibi10b2FzdC1zb2Z0JzogJ2NvbG9yLW1peChpbiBzcmdiLCB2YXIoLS12Ym4tdG9hc3QtZmcpIDEyJSwgdHJhbnNwYXJlbnQpJyxcbiAgICAgIHBhZGRpbmc6IHRoaXMucGFkZGluZyxcbiAgICAgICdib3JkZXItcmFkaXVzJzogdGhpcy5ib3JkZXJSYWRpdXMsXG4gICAgICBib3JkZXI6ICcxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIGN1cnJlbnRDb2xvciAyMCUsIHRyYW5zcGFyZW50KScsXG4gICAgICB3aWR0aDogdGhpcy53aWR0aCxcbiAgICAgICdmb250LXNpemUnOiB0aGlzLmZvbnRTaXplLFxuICAgICAgJ2ZvbnQtd2VpZ2h0JzogdGhpcy5mb250V2VpZ2h0LFxuICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgJ2FsaWduLWl0ZW1zJzogJ2NlbnRlcicsXG4gICAgICAnanVzdGlmeS1jb250ZW50JzogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgLi4udGhpcy5nZXRQb3NpdGlvblN0eWxlcygpLFxuICAgICAgcG9zaXRpb246ICdmaXhlZCcsXG4gICAgICAnei1pbmRleCc6ICc5OTk5JyxcbiAgICAgIHRyYW5zaXRpb246IHRoaXMudHJhbnNpdGlvbixcbiAgICB9O1xuICB9XG5cbiAgZ2V0UG9zaXRpb25TdHlsZXMoKSB7XG4gICAgY29uc3QgcG9zaXRpb25zOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge1xuICAgICAgJ3RvcC1sZWZ0Jzoge1xuICAgICAgICB0b3A6IHRoaXMudG9wIHx8ICcxcmVtJyxcbiAgICAgICAgbGVmdDogdGhpcy5zaG93Tm90aWZpY2F0aW9uID8gJzFyZW0nIDogJy0xMDAlJyxcbiAgICAgICAgdHJhbnNpdGlvbjogJ3RvcCAwLjVzIGVhc2UtaW4tb3V0JyxcbiAgICAgIH0sXG4gICAgICAndG9wLXJpZ2h0Jzoge1xuICAgICAgICB0b3A6IHRoaXMudG9wIHx8ICcxcmVtJyxcbiAgICAgICAgcmlnaHQ6IHRoaXMuc2hvd05vdGlmaWNhdGlvbiA/ICcxcmVtJyA6ICctMTAwJScsXG4gICAgICAgIHRyYW5zaXRpb246ICd0b3AgMC41cyBlYXNlLWluLW91dCcsXG4gICAgICB9LFxuICAgICAgJ21pZGRsZS1sZWZ0Jzoge1xuICAgICAgICB0b3A6IHRoaXMudG9wIHx8ICc0NSUnLFxuICAgICAgICBsZWZ0OiB0aGlzLnNob3dOb3RpZmljYXRpb24gPyAnMXJlbScgOiAnLTEwMCUnLFxuICAgICAgICB0cmFuc2l0aW9uOiAndG9wIDAuNXMgZWFzZS1pbi1vdXQnLFxuICAgICAgfSxcbiAgICAgICdtaWRkbGUtcmlnaHQnOiB7XG4gICAgICAgIHRvcDogdGhpcy50b3AgfHwgJzQ1JScsXG4gICAgICAgIHJpZ2h0OiB0aGlzLnNob3dOb3RpZmljYXRpb24gPyAnMXJlbScgOiAnLTEwMCUnLFxuICAgICAgICB0cmFuc2l0aW9uOiAndG9wIDAuNXMgZWFzZS1pbi1vdXQnLFxuICAgICAgfSxcbiAgICAgICdib3R0b20tbGVmdCc6IHtcbiAgICAgICAgYm90dG9tOiB0aGlzLmJvdHRvbSB8fCAnMXJlbScsXG4gICAgICAgIGxlZnQ6IHRoaXMuc2hvd05vdGlmaWNhdGlvbiA/ICcxcmVtJyA6ICctMTAwJScsXG4gICAgICAgIHRyYW5zaXRpb246ICdib3R0b20gMC41cyBlYXNlLWluLW91dCcsXG4gICAgICB9LFxuICAgICAgJ2JvdHRvbS1yaWdodCc6IHtcbiAgICAgICAgYm90dG9tOiB0aGlzLmJvdHRvbSB8fCAnMXJlbScsXG4gICAgICAgIHJpZ2h0OiB0aGlzLnNob3dOb3RpZmljYXRpb24gPyAnMXJlbScgOiAnLTEwMCUnLFxuICAgICAgICB0cmFuc2l0aW9uOiAnYm90dG9tIDAuNXMgZWFzZS1pbi1vdXQnLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHBvc2l0aW9uc1t0aGlzLnBvc2l0aW9uXSB8fCBwb3NpdGlvbnNbJ3RvcC1sZWZ0J107XG4gIH1cblxuICBnZXQgYnRuV3JhcHBlclN0eWxlKCkge1xuICAgIHJldHVybiB7XG4gICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAnYWxpZ24taXRlbXMnOiAnY2VudGVyJyxcbiAgICAgIGdhcDogJzZweCcsXG4gICAgfTtcbiAgfVxuXG4gIGdldCBpbm5lcldyYXBwZXJTdHlsZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICdhbGlnbi1pdGVtcyc6ICdjZW50ZXInLFxuICAgICAgZ2FwOiAnMTBweCcsXG4gICAgfTtcbiAgfVxuXG4gIG9uQnV0dG9uQ2xpY2soYnV0dG9uOiBOb3RpZmljYXRpb25CdXR0b24pIHtcbiAgICB0aGlzLmJ1dHRvbkNsaWNrLmVtaXQoYnV0dG9uKTtcbiAgfVxufVxuIiwiPGRpdlxuICBbbmdTdHlsZV09XCJub3RpZmljYXRpb25TdHlsZXNcIlxuICBjbGFzcz1cIm1haW53cmFwcGVyXCJcbiAgW2F0dHIuZGF0YS10eXBlXT1cIm5vdGlmaWNhdGlvbk9wdGlvbnMudHlwZVwiXG4gIFthdHRyLnJvbGVdPVwibm90aWZpY2F0aW9uT3B0aW9ucy50eXBlID09PSAnZXJyb3InID8gJ2FsZXJ0JyA6ICdzdGF0dXMnXCJcbiAgKm5nSWY9XCJub3RpZmljYXRpb25PcHRpb25zXCJcbj5cbiAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIiBbbmdTdHlsZV09XCJpbm5lcldyYXBwZXJTdHlsZXNcIj5cbiAgICA8dmVyYmVuLXN2Z1xuICAgICAgY2xhc3M9XCJpY29uXCJcbiAgICAgICpuZ0lmPVwibm90aWZpY2F0aW9uT3B0aW9ucy5pY29uTmFtZVwiXG4gICAgICBbaWNvbl09XCJub3RpZmljYXRpb25PcHRpb25zLmljb25OYW1lIHx8ICcnXCJcbiAgICAgIFt3aWR0aF09XCJub3RpZmljYXRpb25PcHRpb25zLmljb25XaWR0aCB8fCAxOFwiXG4gICAgICBbaGVpZ2h0XT1cIm5vdGlmaWNhdGlvbk9wdGlvbnMuaWNvbkhlaWdodCB8fCAxOFwiXG4gICAgICBbc3Ryb2tlXT1cIm5vdGlmaWNhdGlvbk9wdGlvbnMuc3Ryb2tlIHx8ICcnXCJcbiAgICAgIFtmaWxsXT1cIm5vdGlmaWNhdGlvbk9wdGlvbnMuZmlsbCB8fCAnJ1wiXG4gICAgPjwvdmVyYmVuLXN2Zz5cbiAgICA8cD57eyBub3RpZmljYXRpb25Db250ZW50IH19PC9wPlxuICA8L2Rpdj5cblxuICA8IS0tIEJ1dHRvbnM6IHRoZSBmaXJzdCBpcyB0aGUgbWFpbiBhY3Rpb24gKHNvbGlkKSwgdGhlIG90aGVycyBhcmUgcXVpZXRlci5cbiAgICAgICBBIGJ1dHRvbidzIG93biBiZ0NvbG9yIC8gcHJpbWFyeWNvbG9yIHN0aWxsIHdpbi4gLS0+XG4gIDxkaXYgY2xhc3M9XCJzaWRlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vdGlmaWNhdGlvbk9wdGlvbnMuYnV0dG9uc1wiPlxuICAgICAgPGRpdiBbbmdTdHlsZV09XCJidG5XcmFwcGVyU3R5bGVcIj5cbiAgICAgICAgPHZlcmJlbmEtYnV0dG9uXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBub3RpZmljYXRpb25PcHRpb25zLmJ1dHRvbnM7IGxldCBmaXJzdCA9IGZpcnN0XCJcbiAgICAgICAgICBbdGV4dF09XCJidXR0b24udGV4dFwiXG4gICAgICAgICAgW2JnQ29sb3JdPVwiYnV0dG9uLmJnQ29sb3IgfHwgKGZpcnN0ID8gJ3ZhcigtLXZibi10b2FzdC1mZyknIDogJ3ZhcigtLXZibi10b2FzdC1zb2Z0KScpXCJcbiAgICAgICAgICBbdGV4dENvbG9yXT1cImJ1dHRvbi5wcmltYXJ5Y29sb3IgfHwgYnV0dG9uLnNlY29uZGFyeWNvbG9yIHx8IChmaXJzdCA/ICd2YXIoLS12Ym4tdG9hc3QtYmcpJyA6ICd2YXIoLS12Ym4tdG9hc3QtZmcpJylcIlxuICAgICAgICAgIFtib3JkZXJdPVwiJzAnXCJcbiAgICAgICAgICBbaGVpZ2h0XT1cIicyOHB4J1wiXG4gICAgICAgICAgW2JvcmRlclJhZGl1c109XCInNnB4J1wiXG4gICAgICAgICAgW3BkXT1cIicwIDEwcHgnXCJcbiAgICAgICAgICBbZm9udFNpemVdPVwiYnV0dG9uLmZvbnRTaXplIHx8ICcxMi41cHgnXCJcbiAgICAgICAgICBbZm9udFdlaWdodF09XCJidXR0b24uZm9udFdlaWdodCB8fCAnNjAwJ1wiXG4gICAgICAgICAgKGNsaWNrKT1cImJ1dHRvbi5jYWxsQmFjayAmJiBidXR0b24uY2FsbEJhY2soKVwiXG4gICAgICAgID48L3ZlcmJlbmEtYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFub3RpZmljYXRpb25PcHRpb25zLmJ1dHRvbnNcIj5cbiAgICAgIDxkaXYgW25nU3R5bGVdPVwiYnRuV3JhcHBlclN0eWxlXCIgKm5nSWY9XCJidXR0b25zLmxlbmd0aFwiPlxuICAgICAgICA8dmVyYmVuYS1idXR0b25cbiAgICAgICAgICAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIGJ1dHRvbnM7IGxldCBmaXJzdCA9IGZpcnN0XCJcbiAgICAgICAgICBbdGV4dF09XCJidXR0b24udGV4dFwiXG4gICAgICAgICAgW2JnQ29sb3JdPVwiYnV0dG9uLmJnQ29sb3IgfHwgKGZpcnN0ID8gJ3ZhcigtLXZibi10b2FzdC1mZyknIDogJ3ZhcigtLXZibi10b2FzdC1zb2Z0KScpXCJcbiAgICAgICAgICBbdGV4dENvbG9yXT1cImJ1dHRvbi5wcmltYXJ5Y29sb3IgfHwgYnV0dG9uLnNlY29uZGFyeWNvbG9yIHx8IChmaXJzdCA/ICd2YXIoLS12Ym4tdG9hc3QtYmcpJyA6ICd2YXIoLS12Ym4tdG9hc3QtZmcpJylcIlxuICAgICAgICAgIFtib3JkZXJdPVwiJzAnXCJcbiAgICAgICAgICBbaGVpZ2h0XT1cIicyOHB4J1wiXG4gICAgICAgICAgW2JvcmRlclJhZGl1c109XCInNnB4J1wiXG4gICAgICAgICAgW3BkXT1cIicwIDEwcHgnXCJcbiAgICAgICAgICBbZm9udFNpemVdPVwiYnV0dG9uLmZvbnRTaXplIHx8ICcxMi41cHgnXCJcbiAgICAgICAgICBbZm9udFdlaWdodF09XCJidXR0b24uZm9udFdlaWdodCB8fCAnNjAwJ1wiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQnV0dG9uQ2xpY2soYnV0dG9uKTsgYnV0dG9uLmNhbGxCYWNrICYmIGJ1dHRvbi5jYWxsQmFjaygpXCJcbiAgICAgICAgPjwvdmVyYmVuYS1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG5cbiAgPGJ1dHRvblxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGNsYXNzPVwiY2xvc2VTdmdcIlxuICAgIGFyaWEtbGFiZWw9XCJDbG9zZSBub3RpZmljYXRpb25cIlxuICAgIHRpdGxlPVwiQ2xvc2VcIlxuICAgIChjbGljayk9XCJjbG9zZU5vdGlmaWNhdGlvbigpXCJcbiAgPlxuICAgIDxzdmcgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgIDxwYXRoIGQ9XCJNMTggNiA2IDE4TTYgNmwxMiAxMlwiIC8+XG4gICAgPC9zdmc+XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|
|
@@ -5,42 +5,47 @@ export class NotificationService {
|
|
|
5
5
|
notificationSubject = new BehaviorSubject(null);
|
|
6
6
|
notification$ = this.notificationSubject.asObservable();
|
|
7
7
|
getDefaultOptions(type) {
|
|
8
|
+
// Tinted like before, Sonner "rich colors" style: a light tint of the type
|
|
9
|
+
// colour behind a deeper shade of it for the text and icon. Mixed from the
|
|
10
|
+
// theme, so dark mode gets a dark tint with a light shade.
|
|
11
|
+
const tint = (tone, bg) => `color-mix(in srgb, var(${tone}) ${bg}%, var(--vbn-color-surface))`;
|
|
12
|
+
const shade = (tone, fg) => `color-mix(in oklab, var(${tone}) ${fg}%, var(--vbn-color-text))`;
|
|
8
13
|
const typeStyles = {
|
|
9
14
|
success: {
|
|
10
|
-
backgroundColor: '
|
|
11
|
-
textColor: '
|
|
15
|
+
backgroundColor: tint('--vbn-color-success', 10),
|
|
16
|
+
textColor: shade('--vbn-color-success', 60),
|
|
12
17
|
iconName: 'success',
|
|
13
|
-
iconWidth:
|
|
14
|
-
iconHeight:
|
|
18
|
+
iconWidth: 18,
|
|
19
|
+
iconHeight: 18,
|
|
15
20
|
stroke: '',
|
|
16
21
|
fill: '',
|
|
17
22
|
},
|
|
18
23
|
error: {
|
|
19
|
-
backgroundColor: '
|
|
20
|
-
textColor: '
|
|
24
|
+
backgroundColor: tint('--vbn-color-error', 7),
|
|
25
|
+
textColor: shade('--vbn-color-error', 85),
|
|
21
26
|
iconName: 'warning',
|
|
22
|
-
iconWidth:
|
|
23
|
-
iconHeight:
|
|
24
|
-
stroke: '
|
|
25
|
-
fill: '
|
|
27
|
+
iconWidth: 18,
|
|
28
|
+
iconHeight: 18,
|
|
29
|
+
stroke: shade('--vbn-color-error', 85),
|
|
30
|
+
fill: shade('--vbn-color-error', 85),
|
|
26
31
|
},
|
|
27
32
|
warning: {
|
|
28
|
-
backgroundColor: '
|
|
29
|
-
textColor: '
|
|
33
|
+
backgroundColor: tint('--vbn-color-warning', 12),
|
|
34
|
+
textColor: shade('--vbn-color-warning', 62),
|
|
30
35
|
iconName: 'dangerInfo',
|
|
31
|
-
iconWidth:
|
|
32
|
-
iconHeight:
|
|
33
|
-
stroke: '
|
|
34
|
-
fill: '
|
|
36
|
+
iconWidth: 18,
|
|
37
|
+
iconHeight: 18,
|
|
38
|
+
stroke: shade('--vbn-color-warning', 62),
|
|
39
|
+
fill: shade('--vbn-color-warning', 62),
|
|
35
40
|
},
|
|
36
41
|
info: {
|
|
37
|
-
backgroundColor: '
|
|
38
|
-
textColor: '
|
|
42
|
+
backgroundColor: tint('--vbn-color-info', 8),
|
|
43
|
+
textColor: shade('--vbn-color-info', 85),
|
|
39
44
|
iconName: 'dangerInfo',
|
|
40
|
-
iconWidth:
|
|
41
|
-
iconHeight:
|
|
42
|
-
stroke: '
|
|
43
|
-
fill: '
|
|
45
|
+
iconWidth: 18,
|
|
46
|
+
iconHeight: 18,
|
|
47
|
+
stroke: shade('--vbn-color-info', 85),
|
|
48
|
+
fill: shade('--vbn-color-info', 85),
|
|
44
49
|
},
|
|
45
50
|
};
|
|
46
51
|
return (typeStyles[type] || {
|
|
@@ -89,4 +94,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImpo
|
|
|
89
94
|
providedIn: 'root',
|
|
90
95
|
}]
|
|
91
96
|
}] });
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnNlcnZpY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLW5nLXVpL3NyYy9saWIvc2VydmljZXMvbm90aWZpY2F0aW9uLnNlcnZpY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFtQnZDLE1BQU0sT0FBTyxtQkFBbUI7SUFDdEIsbUJBQW1CLEdBQUcsSUFBSSxlQUFlLENBR3ZDLElBQUksQ0FBQyxDQUFDO0lBQ2hCLGFBQWEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFaEQsaUJBQWlCLENBQ3ZCLElBQWlDO1FBRWpDLDJFQUEyRTtRQUMzRSwyRUFBMkU7UUFDM0UsMkRBQTJEO1FBQzNELE1BQU0sSUFBSSxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQVUsRUFBRSxFQUFFLENBQ3hDLDBCQUEwQixJQUFJLEtBQUssRUFBRSw4QkFBOEIsQ0FBQztRQUN0RSxNQUFNLEtBQUssR0FBRyxDQUFDLElBQVksRUFBRSxFQUFVLEVBQUUsRUFBRSxDQUN6QywyQkFBMkIsSUFBSSxLQUFLLEVBQUUsMkJBQTJCLENBQUM7UUFDcEUsTUFBTSxVQUFVLEdBQ2Q7WUFDRSxPQUFPLEVBQUU7Z0JBQ1AsZUFBZSxFQUFFLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLENBQUM7Z0JBQ2hELFNBQVMsRUFBRSxLQUFLLENBQUMscUJBQXFCLEVBQUUsRUFBRSxDQUFDO2dCQUMzQyxRQUFRLEVBQUUsU0FBUztnQkFDbkIsU0FBUyxFQUFFLEVBQUU7Z0JBQ2IsVUFBVSxFQUFFLEVBQUU7Z0JBQ2QsTUFBTSxFQUFFLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLEVBQUU7YUFDVDtZQUNELEtBQUssRUFBRTtnQkFDTCxlQUFlLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQztnQkFDN0MsU0FBUyxFQUFFLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLENBQUM7Z0JBQ3pDLFFBQVEsRUFBRSxTQUFTO2dCQUNuQixTQUFTLEVBQUUsRUFBRTtnQkFDYixVQUFVLEVBQUUsRUFBRTtnQkFDZCxNQUFNLEVBQUUsS0FBSyxDQUFDLG1CQUFtQixFQUFFLEVBQUUsQ0FBQztnQkFDdEMsSUFBSSxFQUFFLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLENBQUM7YUFDckM7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsZUFBZSxFQUFFLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLENBQUM7Z0JBQ2hELFNBQVMsRUFBRSxLQUFLLENBQUMscUJBQXFCLEVBQUUsRUFBRSxDQUFDO2dCQUMzQyxRQUFRLEVBQUUsWUFBWTtnQkFDdEIsU0FBUyxFQUFFLEVBQUU7Z0JBQ2IsVUFBVSxFQUFFLEVBQUU7Z0JBQ2QsTUFBTSxFQUFFLEtBQUssQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLENBQUM7Z0JBQ3hDLElBQUksRUFBRSxLQUFLLENBQUMscUJBQXFCLEVBQUUsRUFBRSxDQUFDO2FBQ3ZDO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLGVBQWUsRUFBRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO2dCQUM1QyxTQUFTLEVBQUUsS0FBSyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQztnQkFDeEMsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLFNBQVMsRUFBRSxFQUFFO2dCQUNiLFVBQVUsRUFBRSxFQUFFO2dCQUNkLE1BQU0sRUFBRSxLQUFLLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDO2dCQUNyQyxJQUFJLEVBQUUsS0FBSyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQzthQUNwQztTQUNGLENBQUM7UUFFSixPQUFPLENBQ0wsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJO1lBQ2xCLGVBQWUsRUFBRSx1QkFBdUI7WUFDeEMsU0FBUyxFQUFFLDBCQUEwQjtZQUNyQyxRQUFRLEVBQUUsRUFBRTtZQUNaLFNBQVMsRUFBRSxFQUFFO1lBQ2IsVUFBVSxFQUFFLEVBQUU7WUFDZCxNQUFNLEVBQUUsRUFBRTtZQUNWLElBQUksRUFBRSxFQUFFO1NBQ1QsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELGdCQUFnQixDQUNkLElBQWlDLEVBQ2pDLE9BQWUsRUFDZixVQUF3QyxFQUFFO1FBRTFDLE1BQU0sY0FBYyxHQUE2QztZQUMvRCxPQUFPLEVBQUUsSUFBSTtZQUNiLFFBQVEsRUFBRSxXQUFXO1lBQ3JCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQztZQUMvQixJQUFJO1NBQ0wsQ0FBQztRQUNGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUM7WUFDNUIsT0FBTztZQUNQLE9BQU8sRUFBRSxFQUFFLEdBQUcsY0FBYyxFQUFFLEdBQUcsT0FBTyxFQUFFO1NBQzNDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxPQUFPLENBQUMsT0FBZSxFQUFFLE9BQXNDO1FBQzdELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxPQUFPLENBQUMsT0FBZSxFQUFFLE9BQXNDO1FBQzdELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxLQUFLLENBQUMsT0FBZSxFQUFFLE9BQXNDO1FBQzNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxJQUFJLENBQUMsT0FBZSxFQUFFLE9BQXNDO1FBQzFELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2xELENBQUM7d0dBekdVLG1CQUFtQjs0R0FBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIE5vdGlmaWNhdGlvbkJ1dHRvbixcbiAgTm90aWZpY2F0aW9uT3B0aW9ucyxcbn0gZnJvbSAndmVyYmVuLW5nLXVpL3NyYy9saWIvbW9kZWxzJztcblxuaW50ZXJmYWNlIE5vdGlmaWNhdGlvblN0eWxlcyB7XG4gIGJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuICB0ZXh0Q29sb3I6IHN0cmluZztcbiAgaWNvbk5hbWU6IHN0cmluZztcbiAgaWNvbldpZHRoOiBudW1iZXI7XG4gIGljb25IZWlnaHQ6IG51bWJlcjtcbiAgc3Ryb2tlOiBzdHJpbmc7XG4gIGZpbGw6IHN0cmluZztcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvblNlcnZpY2Uge1xuICBwcml2YXRlIG5vdGlmaWNhdGlvblN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHtcbiAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgb3B0aW9uczogTm90aWZpY2F0aW9uT3B0aW9ucyAmIE5vdGlmaWNhdGlvblN0eWxlcztcbiAgfSB8IG51bGw+KG51bGwpO1xuICBub3RpZmljYXRpb24kID0gdGhpcy5ub3RpZmljYXRpb25TdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgZ2V0RGVmYXVsdE9wdGlvbnMoXG4gICAgdHlwZTogTm90aWZpY2F0aW9uT3B0aW9uc1sndHlwZSddLFxuICApOiBOb3RpZmljYXRpb25TdHlsZXMge1xuICAgIC8vIFRpbnRlZCBsaWtlIGJlZm9yZSwgU29ubmVyIFwicmljaCBjb2xvcnNcIiBzdHlsZTogYSBsaWdodCB0aW50IG9mIHRoZSB0eXBlXG4gICAgLy8gY29sb3VyIGJlaGluZCBhIGRlZXBlciBzaGFkZSBvZiBpdCBmb3IgdGhlIHRleHQgYW5kIGljb24uIE1peGVkIGZyb20gdGhlXG4gICAgLy8gdGhlbWUsIHNvIGRhcmsgbW9kZSBnZXRzIGEgZGFyayB0aW50IHdpdGggYSBsaWdodCBzaGFkZS5cbiAgICBjb25zdCB0aW50ID0gKHRvbmU6IHN0cmluZywgYmc6IG51bWJlcikgPT5cbiAgICAgIGBjb2xvci1taXgoaW4gc3JnYiwgdmFyKCR7dG9uZX0pICR7Ymd9JSwgdmFyKC0tdmJuLWNvbG9yLXN1cmZhY2UpKWA7XG4gICAgY29uc3Qgc2hhZGUgPSAodG9uZTogc3RyaW5nLCBmZzogbnVtYmVyKSA9PlxuICAgICAgYGNvbG9yLW1peChpbiBva2xhYiwgdmFyKCR7dG9uZX0pICR7Zmd9JSwgdmFyKC0tdmJuLWNvbG9yLXRleHQpKWA7XG4gICAgY29uc3QgdHlwZVN0eWxlczogUmVjb3JkPE5vdGlmaWNhdGlvbk9wdGlvbnNbJ3R5cGUnXSwgTm90aWZpY2F0aW9uU3R5bGVzPiA9XG4gICAgICB7XG4gICAgICAgIHN1Y2Nlc3M6IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRpbnQoJy0tdmJuLWNvbG9yLXN1Y2Nlc3MnLCAxMCksXG4gICAgICAgICAgdGV4dENvbG9yOiBzaGFkZSgnLS12Ym4tY29sb3Itc3VjY2VzcycsIDYwKSxcbiAgICAgICAgICBpY29uTmFtZTogJ3N1Y2Nlc3MnLFxuICAgICAgICAgIGljb25XaWR0aDogMTgsXG4gICAgICAgICAgaWNvbkhlaWdodDogMTgsXG4gICAgICAgICAgc3Ryb2tlOiAnJyxcbiAgICAgICAgICBmaWxsOiAnJyxcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRpbnQoJy0tdmJuLWNvbG9yLWVycm9yJywgNyksXG4gICAgICAgICAgdGV4dENvbG9yOiBzaGFkZSgnLS12Ym4tY29sb3ItZXJyb3InLCA4NSksXG4gICAgICAgICAgaWNvbk5hbWU6ICd3YXJuaW5nJyxcbiAgICAgICAgICBpY29uV2lkdGg6IDE4LFxuICAgICAgICAgIGljb25IZWlnaHQ6IDE4LFxuICAgICAgICAgIHN0cm9rZTogc2hhZGUoJy0tdmJuLWNvbG9yLWVycm9yJywgODUpLFxuICAgICAgICAgIGZpbGw6IHNoYWRlKCctLXZibi1jb2xvci1lcnJvcicsIDg1KSxcbiAgICAgICAgfSxcbiAgICAgICAgd2FybmluZzoge1xuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogdGludCgnLS12Ym4tY29sb3Itd2FybmluZycsIDEyKSxcbiAgICAgICAgICB0ZXh0Q29sb3I6IHNoYWRlKCctLXZibi1jb2xvci13YXJuaW5nJywgNjIpLFxuICAgICAgICAgIGljb25OYW1lOiAnZGFuZ2VySW5mbycsXG4gICAgICAgICAgaWNvbldpZHRoOiAxOCxcbiAgICAgICAgICBpY29uSGVpZ2h0OiAxOCxcbiAgICAgICAgICBzdHJva2U6IHNoYWRlKCctLXZibi1jb2xvci13YXJuaW5nJywgNjIpLFxuICAgICAgICAgIGZpbGw6IHNoYWRlKCctLXZibi1jb2xvci13YXJuaW5nJywgNjIpLFxuICAgICAgICB9LFxuICAgICAgICBpbmZvOiB7XG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0aW50KCctLXZibi1jb2xvci1pbmZvJywgOCksXG4gICAgICAgICAgdGV4dENvbG9yOiBzaGFkZSgnLS12Ym4tY29sb3ItaW5mbycsIDg1KSxcbiAgICAgICAgICBpY29uTmFtZTogJ2RhbmdlckluZm8nLFxuICAgICAgICAgIGljb25XaWR0aDogMTgsXG4gICAgICAgICAgaWNvbkhlaWdodDogMTgsXG4gICAgICAgICAgc3Ryb2tlOiBzaGFkZSgnLS12Ym4tY29sb3ItaW5mbycsIDg1KSxcbiAgICAgICAgICBmaWxsOiBzaGFkZSgnLS12Ym4tY29sb3ItaW5mbycsIDg1KSxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICByZXR1cm4gKFxuICAgICAgdHlwZVN0eWxlc1t0eXBlXSB8fCB7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3ZhcigtLXZibi1jb2xvci10ZXh0KScsXG4gICAgICAgIHRleHRDb2xvcjogJ3ZhcigtLXZibi1jb2xvci1zdXJmYWNlKScsXG4gICAgICAgIGljb25OYW1lOiAnJyxcbiAgICAgICAgaWNvbldpZHRoOiAyMCxcbiAgICAgICAgaWNvbkhlaWdodDogMjAsXG4gICAgICAgIHN0cm9rZTogJycsXG4gICAgICAgIGZpbGw6ICcnLFxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBzaG93Tm90aWZpY2F0aW9uKFxuICAgIHR5cGU6IE5vdGlmaWNhdGlvbk9wdGlvbnNbJ3R5cGUnXSxcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgb3B0aW9uczogUGFydGlhbDxOb3RpZmljYXRpb25PcHRpb25zPiA9IHt9LFxuICApIHtcbiAgICBjb25zdCBkZWZhdWx0T3B0aW9uczogTm90aWZpY2F0aW9uT3B0aW9ucyAmIE5vdGlmaWNhdGlvblN0eWxlcyA9IHtcbiAgICAgIHRpbWVvdXQ6IDIwMDAsXG4gICAgICBwb3NpdGlvbjogJ3RvcC1yaWdodCcsXG4gICAgICAuLi50aGlzLmdldERlZmF1bHRPcHRpb25zKHR5cGUpLFxuICAgICAgdHlwZSxcbiAgICB9O1xuICAgIHRoaXMubm90aWZpY2F0aW9uU3ViamVjdC5uZXh0KHtcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBvcHRpb25zOiB7IC4uLmRlZmF1bHRPcHRpb25zLCAuLi5vcHRpb25zIH0sXG4gICAgfSk7XG4gIH1cblxuICBjbGVhck5vdGlmaWNhdGlvbigpIHtcbiAgICB0aGlzLm5vdGlmaWNhdGlvblN1YmplY3QubmV4dChudWxsKTtcbiAgfVxuXG4gIHN1Y2Nlc3MobWVzc2FnZTogc3RyaW5nLCBvcHRpb25zPzogUGFydGlhbDxOb3RpZmljYXRpb25PcHRpb25zPikge1xuICAgIHRoaXMuc2hvd05vdGlmaWNhdGlvbignc3VjY2VzcycsIG1lc3NhZ2UsIG9wdGlvbnMpO1xuICB9XG5cbiAgd2FybmluZyhtZXNzYWdlOiBzdHJpbmcsIG9wdGlvbnM/OiBQYXJ0aWFsPE5vdGlmaWNhdGlvbk9wdGlvbnM+KSB7XG4gICAgdGhpcy5zaG93Tm90aWZpY2F0aW9uKCd3YXJuaW5nJywgbWVzc2FnZSwgb3B0aW9ucyk7XG4gIH1cblxuICBlcnJvcihtZXNzYWdlOiBzdHJpbmcsIG9wdGlvbnM/OiBQYXJ0aWFsPE5vdGlmaWNhdGlvbk9wdGlvbnM+KSB7XG4gICAgdGhpcy5zaG93Tm90aWZpY2F0aW9uKCdlcnJvcicsIG1lc3NhZ2UsIG9wdGlvbnMpO1xuICB9XG5cbiAgaW5mbyhtZXNzYWdlOiBzdHJpbmcsIG9wdGlvbnM/OiBQYXJ0aWFsPE5vdGlmaWNhdGlvbk9wdGlvbnM+KSB7XG4gICAgdGhpcy5zaG93Tm90aWZpY2F0aW9uKCdpbmZvJywgbWVzc2FnZSwgb3B0aW9ucyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -27,10 +27,11 @@ class NotificationComponent {
|
|
|
27
27
|
notificationService;
|
|
28
28
|
width = '400px';
|
|
29
29
|
height = '50px';
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
// Look (2026-10-16): close to shadcn / Sonner "rich colors" toasts
|
|
31
|
+
borderRadius = '10px';
|
|
32
|
+
fontSize = '14px';
|
|
33
|
+
fontWeight = '500';
|
|
34
|
+
padding = '14px 2.5rem 14px 16px';
|
|
34
35
|
content;
|
|
35
36
|
top = '';
|
|
36
37
|
bottom = '';
|
|
@@ -76,9 +77,13 @@ class NotificationComponent {
|
|
|
76
77
|
? this.notificationOptions.backgroundColor
|
|
77
78
|
: '',
|
|
78
79
|
color: this.notificationOptions ? this.notificationOptions.textColor : '',
|
|
80
|
+
// The toast's colours for its buttons (main = text colour, others = a tint of it)
|
|
81
|
+
'--vbn-toast-fg': this.notificationOptions?.textColor || 'currentColor',
|
|
82
|
+
'--vbn-toast-bg': this.notificationOptions?.backgroundColor || 'transparent',
|
|
83
|
+
'--vbn-toast-soft': 'color-mix(in srgb, var(--vbn-toast-fg) 12%, transparent)',
|
|
79
84
|
padding: this.padding,
|
|
80
85
|
'border-radius': this.borderRadius,
|
|
81
|
-
border: '1px solid transparent',
|
|
86
|
+
border: '1px solid color-mix(in srgb, currentColor 20%, transparent)',
|
|
82
87
|
width: this.width,
|
|
83
88
|
'font-size': this.fontSize,
|
|
84
89
|
'font-weight': this.fontWeight,
|
|
@@ -130,25 +135,25 @@ class NotificationComponent {
|
|
|
130
135
|
return {
|
|
131
136
|
display: 'flex',
|
|
132
137
|
'align-items': 'center',
|
|
133
|
-
gap: '
|
|
138
|
+
gap: '6px',
|
|
134
139
|
};
|
|
135
140
|
}
|
|
136
141
|
get innerWrapperStyles() {
|
|
137
142
|
return {
|
|
138
143
|
display: 'flex',
|
|
139
144
|
'align-items': 'center',
|
|
140
|
-
gap: '
|
|
145
|
+
gap: '10px',
|
|
141
146
|
};
|
|
142
147
|
}
|
|
143
148
|
onButtonClick(button) {
|
|
144
149
|
this.buttonClick.emit(button);
|
|
145
150
|
}
|
|
146
151
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NotificationComponent, deps: [{ token: i1.NotificationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
147
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: NotificationComponent, selector: "verben-notification", inputs: { width: "width", content: "content", buttons: "buttons", timeout: "timeout", position: "position" }, outputs: { buttonClick: "buttonClick", close: "close" }, ngImport: i0, template: "<div\n [ngStyle]=\"notificationStyles\"\n class=\"mainwrapper\"\n *ngIf=\"notificationOptions\"\n>\n <div [ngStyle]=\"innerWrapperStyles\">\n <verben-svg\n [icon]=\"notificationOptions.iconName || ''\"\n [width]=\"notificationOptions.iconWidth ||
|
|
152
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: NotificationComponent, selector: "verben-notification", inputs: { width: "width", content: "content", buttons: "buttons", timeout: "timeout", position: "position" }, outputs: { buttonClick: "buttonClick", close: "close" }, ngImport: i0, template: "<div\n [ngStyle]=\"notificationStyles\"\n class=\"mainwrapper\"\n [attr.data-type]=\"notificationOptions.type\"\n [attr.role]=\"notificationOptions.type === 'error' ? 'alert' : 'status'\"\n *ngIf=\"notificationOptions\"\n>\n <div class=\"content\" [ngStyle]=\"innerWrapperStyles\">\n <verben-svg\n class=\"icon\"\n *ngIf=\"notificationOptions.iconName\"\n [icon]=\"notificationOptions.iconName || ''\"\n [width]=\"notificationOptions.iconWidth || 18\"\n [height]=\"notificationOptions.iconHeight || 18\"\n [stroke]=\"notificationOptions.stroke || ''\"\n [fill]=\"notificationOptions.fill || ''\"\n ></verben-svg>\n <p>{{ notificationContent }}</p>\n </div>\n\n <!-- Buttons: the first is the main action (solid), the others are quieter.\n A button's own bgColor / primarycolor still win. -->\n <div class=\"side\">\n <ng-container *ngIf=\"notificationOptions.buttons\">\n <div [ngStyle]=\"btnWrapperStyle\">\n <verbena-button\n *ngFor=\"let button of notificationOptions.buttons; let first = first\"\n [text]=\"button.text\"\n [bgColor]=\"button.bgColor || (first ? 'var(--vbn-toast-fg)' : 'var(--vbn-toast-soft)')\"\n [textColor]=\"button.primarycolor || button.secondarycolor || (first ? 'var(--vbn-toast-bg)' : 'var(--vbn-toast-fg)')\"\n [border]=\"'0'\"\n [height]=\"'28px'\"\n [borderRadius]=\"'6px'\"\n [pd]=\"'0 10px'\"\n [fontSize]=\"button.fontSize || '12.5px'\"\n [fontWeight]=\"button.fontWeight || '600'\"\n (click)=\"button.callBack && button.callBack()\"\n ></verbena-button>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!notificationOptions.buttons\">\n <div [ngStyle]=\"btnWrapperStyle\" *ngIf=\"buttons.length\">\n <verbena-button\n *ngFor=\"let button of buttons; let first = first\"\n [text]=\"button.text\"\n [bgColor]=\"button.bgColor || (first ? 'var(--vbn-toast-fg)' : 'var(--vbn-toast-soft)')\"\n [textColor]=\"button.primarycolor || button.secondarycolor || (first ? 'var(--vbn-toast-bg)' : 'var(--vbn-toast-fg)')\"\n [border]=\"'0'\"\n [height]=\"'28px'\"\n [borderRadius]=\"'6px'\"\n [pd]=\"'0 10px'\"\n [fontSize]=\"button.fontSize || '12.5px'\"\n [fontWeight]=\"button.fontWeight || '600'\"\n (click)=\"onButtonClick(button); button.callBack && button.callBack()\"\n ></verbena-button>\n </div>\n </ng-container>\n </div>\n\n <button\n type=\"button\"\n class=\"closeSvg\"\n aria-label=\"Close notification\"\n title=\"Close\"\n (click)=\"closeNotification()\"\n >\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" aria-hidden=\"true\">\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </svg>\n </button>\n</div>\n", styles: ["p{margin:0!important;line-height:1.4}.mainwrapper{position:relative;box-sizing:border-box;max-width:calc(100vw - 2rem);min-height:52px;flex-wrap:wrap;row-gap:10px;column-gap:12px;font-family:var(--vbn-font-family, inherit);box-shadow:0 4px 12px #00000014}.content{flex:1 1 200px;min-width:0}.content p{overflow-wrap:anywhere}.side{margin-left:auto}.side:empty{display:none}.icon{flex:none;display:inline-flex;align-self:flex-start;margin-top:1px}.closeSvg{position:absolute;top:10px;right:10px;display:inline-grid;place-items:center;width:22px;height:22px;padding:0;border:0;border-radius:6px;background:transparent;color:inherit;opacity:.5;cursor:pointer;transition:opacity .15s ease,background-color .15s ease}.closeSvg:hover,.closeSvg:focus-visible{opacity:1;background:color-mix(in srgb,currentColor 10%,transparent)}.closeSvg:focus-visible{outline:2px solid currentColor;outline-offset:1px}.closeSvg svg{width:14px;height:14px}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "type", "size"] }, { kind: "component", type: i4.VerbenaButtonComponent, selector: "verbena-button", inputs: ["type", "text", "styleType", "size", "block", "disable", "disabled", "isLoading", "spinnerSize", "spinnerColor", "svg", "svgPosition", "svgWidth", "svgHeight", "svgSize", "svgColor", "icon", "useIcon", "iconPosition", "iconColor", "variant", "weight", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "buttonClass", "buttonTextClass"] }] });
|
|
148
153
|
}
|
|
149
154
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NotificationComponent, decorators: [{
|
|
150
155
|
type: Component,
|
|
151
|
-
args: [{ selector: 'verben-notification', template: "<div\n [ngStyle]=\"notificationStyles\"\n class=\"mainwrapper\"\n *ngIf=\"notificationOptions\"\n>\n <div [ngStyle]=\"innerWrapperStyles\">\n <verben-svg\n [icon]=\"notificationOptions.iconName || ''\"\n [width]=\"notificationOptions.iconWidth ||
|
|
156
|
+
args: [{ selector: 'verben-notification', template: "<div\n [ngStyle]=\"notificationStyles\"\n class=\"mainwrapper\"\n [attr.data-type]=\"notificationOptions.type\"\n [attr.role]=\"notificationOptions.type === 'error' ? 'alert' : 'status'\"\n *ngIf=\"notificationOptions\"\n>\n <div class=\"content\" [ngStyle]=\"innerWrapperStyles\">\n <verben-svg\n class=\"icon\"\n *ngIf=\"notificationOptions.iconName\"\n [icon]=\"notificationOptions.iconName || ''\"\n [width]=\"notificationOptions.iconWidth || 18\"\n [height]=\"notificationOptions.iconHeight || 18\"\n [stroke]=\"notificationOptions.stroke || ''\"\n [fill]=\"notificationOptions.fill || ''\"\n ></verben-svg>\n <p>{{ notificationContent }}</p>\n </div>\n\n <!-- Buttons: the first is the main action (solid), the others are quieter.\n A button's own bgColor / primarycolor still win. -->\n <div class=\"side\">\n <ng-container *ngIf=\"notificationOptions.buttons\">\n <div [ngStyle]=\"btnWrapperStyle\">\n <verbena-button\n *ngFor=\"let button of notificationOptions.buttons; let first = first\"\n [text]=\"button.text\"\n [bgColor]=\"button.bgColor || (first ? 'var(--vbn-toast-fg)' : 'var(--vbn-toast-soft)')\"\n [textColor]=\"button.primarycolor || button.secondarycolor || (first ? 'var(--vbn-toast-bg)' : 'var(--vbn-toast-fg)')\"\n [border]=\"'0'\"\n [height]=\"'28px'\"\n [borderRadius]=\"'6px'\"\n [pd]=\"'0 10px'\"\n [fontSize]=\"button.fontSize || '12.5px'\"\n [fontWeight]=\"button.fontWeight || '600'\"\n (click)=\"button.callBack && button.callBack()\"\n ></verbena-button>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!notificationOptions.buttons\">\n <div [ngStyle]=\"btnWrapperStyle\" *ngIf=\"buttons.length\">\n <verbena-button\n *ngFor=\"let button of buttons; let first = first\"\n [text]=\"button.text\"\n [bgColor]=\"button.bgColor || (first ? 'var(--vbn-toast-fg)' : 'var(--vbn-toast-soft)')\"\n [textColor]=\"button.primarycolor || button.secondarycolor || (first ? 'var(--vbn-toast-bg)' : 'var(--vbn-toast-fg)')\"\n [border]=\"'0'\"\n [height]=\"'28px'\"\n [borderRadius]=\"'6px'\"\n [pd]=\"'0 10px'\"\n [fontSize]=\"button.fontSize || '12.5px'\"\n [fontWeight]=\"button.fontWeight || '600'\"\n (click)=\"onButtonClick(button); button.callBack && button.callBack()\"\n ></verbena-button>\n </div>\n </ng-container>\n </div>\n\n <button\n type=\"button\"\n class=\"closeSvg\"\n aria-label=\"Close notification\"\n title=\"Close\"\n (click)=\"closeNotification()\"\n >\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" aria-hidden=\"true\">\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </svg>\n </button>\n</div>\n", styles: ["p{margin:0!important;line-height:1.4}.mainwrapper{position:relative;box-sizing:border-box;max-width:calc(100vw - 2rem);min-height:52px;flex-wrap:wrap;row-gap:10px;column-gap:12px;font-family:var(--vbn-font-family, inherit);box-shadow:0 4px 12px #00000014}.content{flex:1 1 200px;min-width:0}.content p{overflow-wrap:anywhere}.side{margin-left:auto}.side:empty{display:none}.icon{flex:none;display:inline-flex;align-self:flex-start;margin-top:1px}.closeSvg{position:absolute;top:10px;right:10px;display:inline-grid;place-items:center;width:22px;height:22px;padding:0;border:0;border-radius:6px;background:transparent;color:inherit;opacity:.5;cursor:pointer;transition:opacity .15s ease,background-color .15s ease}.closeSvg:hover,.closeSvg:focus-visible{opacity:1;background:color-mix(in srgb,currentColor 10%,transparent)}.closeSvg:focus-visible{outline:2px solid currentColor;outline-offset:1px}.closeSvg svg{width:14px;height:14px}\n"] }]
|
|
152
157
|
}], ctorParameters: () => [{ type: i1.NotificationService }], propDecorators: { width: [{
|
|
153
158
|
type: Input
|
|
154
159
|
}], content: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verben-ng-ui-src-lib-components-notification.mjs","sources":["../../../projects/verben-ng-ui/src/lib/components/notification/notification.module.ts","../../../projects/verben-ng-ui/src/lib/components/notification/notification.component.ts","../../../projects/verben-ng-ui/src/lib/components/notification/notification.component.html","../../../projects/verben-ng-ui/src/lib/components/notification/verben-ng-ui-src-lib-components-notification.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { NotificationComponent } from '.';\nimport { CommonModule } from '@angular/common';\nimport { SvgModule } from 'verben-ng-ui/src/lib/components/svg';\nimport { VerbenaButtonModule } from 'verben-ng-ui/src/lib/verbena-button';\n\n@NgModule({\n declarations: [NotificationComponent],\n imports: [CommonModule, SvgModule, VerbenaButtonModule],\n exports: [NotificationComponent],\n})\nexport class NotificationModule {}\n","import {\n Component,\n Input,\n EventEmitter,\n Output,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport { NotificationService } from 'verben-ng-ui/src/lib/services';\nimport {\n NotificationButton,\n NotificationOptions,\n} from 'verben-ng-ui/src/lib/models';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'verben-notification',\n templateUrl: './notification.component.html',\n styleUrl: './notification.component.css',\n})\nexport class NotificationComponent implements OnInit, OnDestroy {\n @Input() width?: string = '400px';\n height?: string = '50px';\n borderRadius: string = '15px';\n fontSize: string = '20px';\n fontWeight: string = '700';\n padding: string = '10px 2.5rem 10px 1.5rem';\n @Input() content?: string;\n top: string = '';\n bottom: string = '';\n @Input() buttons: NotificationButton[] = [];\n @Input() timeout: number = 10000;\n @Input() position: string = 'top-left';\n transition: string = '0.6s ease-in-out';\n\n showNotification = false;\n notificationContent = '';\n notificationOptions: NotificationOptions | null = null;\n subscription: Subscription;\n\n constructor(private notificationService: NotificationService) {\n this.subscription = new Subscription();\n }\n\n ngOnInit() {\n this.subscription = this.notificationService.notification$.subscribe(\n (notification) => {\n if (notification) {\n this.showNotification = true;\n this.notificationContent = notification.message;\n this.notificationOptions = notification.options;\n\n setTimeout(() => {\n this.closeNotification();\n }, this.notificationOptions.timeout);\n } else {\n this.showNotification = false;\n }\n },\n );\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n\n closeNotification() {\n this.showNotification = false;\n this.notificationService.clearNotification();\n }\n\n @Output() buttonClick = new EventEmitter<NotificationButton>();\n @Output() close = new EventEmitter();\n\n get notificationStyles() {\n return {\n 'background-color': this.notificationOptions\n ? this.notificationOptions.backgroundColor\n : '',\n color: this.notificationOptions ? this.notificationOptions.textColor : '',\n padding: this.padding,\n 'border-radius': this.borderRadius,\n border: '1px solid transparent',\n width: this.width,\n 'font-size': this.fontSize,\n 'font-weight': this.fontWeight,\n display: 'flex',\n 'align-items': 'center',\n 'justify-content': 'space-between',\n ...this.getPositionStyles(),\n position: 'fixed',\n 'z-index': '9999',\n transition: this.transition,\n };\n }\n\n getPositionStyles() {\n const positions: { [key: string]: any } = {\n 'top-left': {\n top: this.top || '1rem',\n left: this.showNotification ? '1rem' : '-100%',\n transition: 'top 0.5s ease-in-out',\n },\n 'top-right': {\n top: this.top || '1rem',\n right: this.showNotification ? '1rem' : '-100%',\n transition: 'top 0.5s ease-in-out',\n },\n 'middle-left': {\n top: this.top || '45%',\n left: this.showNotification ? '1rem' : '-100%',\n transition: 'top 0.5s ease-in-out',\n },\n 'middle-right': {\n top: this.top || '45%',\n right: this.showNotification ? '1rem' : '-100%',\n transition: 'top 0.5s ease-in-out',\n },\n 'bottom-left': {\n bottom: this.bottom || '1rem',\n left: this.showNotification ? '1rem' : '-100%',\n transition: 'bottom 0.5s ease-in-out',\n },\n 'bottom-right': {\n bottom: this.bottom || '1rem',\n right: this.showNotification ? '1rem' : '-100%',\n transition: 'bottom 0.5s ease-in-out',\n },\n };\n\n return positions[this.position] || positions['top-left'];\n }\n\n get btnWrapperStyle() {\n return {\n display: 'flex',\n 'align-items': 'center',\n gap: '0.2rem',\n };\n }\n\n get innerWrapperStyles() {\n return {\n display: 'flex',\n 'align-items': 'center',\n gap: '1.5rem',\n };\n }\n\n onButtonClick(button: NotificationButton) {\n this.buttonClick.emit(button);\n }\n}\n","<div\n [ngStyle]=\"notificationStyles\"\n class=\"mainwrapper\"\n *ngIf=\"notificationOptions\"\n>\n <div [ngStyle]=\"innerWrapperStyles\">\n <verben-svg\n [icon]=\"notificationOptions.iconName || ''\"\n [width]=\"notificationOptions.iconWidth || 20\"\n [height]=\"notificationOptions.iconHeight || 20\"\n [stroke]=\"notificationOptions.stroke || ''\"\n [fill]=\"notificationOptions.fill || ''\"\n ></verben-svg>\n <p>{{ notificationContent }}</p>\n </div>\n <div>\n <ng-container *ngIf=\"notificationOptions.buttons\">\n <div [ngStyle]=\"btnWrapperStyle\">\n <verbena-button\n *ngFor=\"let button of notificationOptions.buttons\"\n [text]=\"button.text\"\n [bgColor]=\"button.bgColor\"\n [textColor]=\"button.primarycolor || button.secondarycolor\"\n [borderRadius]=\"'8px'\"\n [pd]=\"'0px 8px'\"\n [fontSize]=\"'14px'\"\n (click)=\"button.callBack && button.callBack()\"\n ></verbena-button>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!notificationOptions.buttons\">\n <div [ngStyle]=\"btnWrapperStyle\" *ngIf=\"buttons.length\">\n <verbena-button\n *ngFor=\"let button of buttons\"\n [text]=\"button.text\"\n [bgColor]=\"button.bgColor\"\n [textColor]=\"button.primarycolor || button.secondarycolor\"\n [borderRadius]=\"'8px'\"\n [pd]=\"'0px 8px'\"\n [fontSize]=\"'14px'\"\n (click)=\"onButtonClick(button); button.callBack && button.callBack()\"\n ></verbena-button>\n </div>\n </ng-container>\n <verben-svg\n class=\"closeSvg\"\n [icon]=\"'close'\"\n [size]=\"'sm'\"\n [stroke]=\"'var(--vbn-color-text-muted)'\"\n (click)=\"closeNotification()\"\n ></verben-svg>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"verben-ng-ui-src-lib-components-notification.mjs","sources":["../../../projects/verben-ng-ui/src/lib/components/notification/notification.module.ts","../../../projects/verben-ng-ui/src/lib/components/notification/notification.component.ts","../../../projects/verben-ng-ui/src/lib/components/notification/notification.component.html","../../../projects/verben-ng-ui/src/lib/components/notification/verben-ng-ui-src-lib-components-notification.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { NotificationComponent } from '.';\nimport { CommonModule } from '@angular/common';\nimport { SvgModule } from 'verben-ng-ui/src/lib/components/svg';\nimport { VerbenaButtonModule } from 'verben-ng-ui/src/lib/verbena-button';\n\n@NgModule({\n declarations: [NotificationComponent],\n imports: [CommonModule, SvgModule, VerbenaButtonModule],\n exports: [NotificationComponent],\n})\nexport class NotificationModule {}\n","import {\n Component,\n Input,\n EventEmitter,\n Output,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport { NotificationService } from 'verben-ng-ui/src/lib/services';\nimport {\n NotificationButton,\n NotificationOptions,\n} from 'verben-ng-ui/src/lib/models';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'verben-notification',\n templateUrl: './notification.component.html',\n styleUrl: './notification.component.css',\n})\nexport class NotificationComponent implements OnInit, OnDestroy {\n @Input() width?: string = '400px';\n height?: string = '50px';\n // Look (2026-10-16): close to shadcn / Sonner \"rich colors\" toasts\n borderRadius: string = '10px';\n fontSize: string = '14px';\n fontWeight: string = '500';\n padding: string = '14px 2.5rem 14px 16px';\n @Input() content?: string;\n top: string = '';\n bottom: string = '';\n @Input() buttons: NotificationButton[] = [];\n @Input() timeout: number = 10000;\n @Input() position: string = 'top-left';\n transition: string = '0.6s ease-in-out';\n\n showNotification = false;\n notificationContent = '';\n notificationOptions: NotificationOptions | null = null;\n subscription: Subscription;\n\n constructor(private notificationService: NotificationService) {\n this.subscription = new Subscription();\n }\n\n ngOnInit() {\n this.subscription = this.notificationService.notification$.subscribe(\n (notification) => {\n if (notification) {\n this.showNotification = true;\n this.notificationContent = notification.message;\n this.notificationOptions = notification.options;\n\n setTimeout(() => {\n this.closeNotification();\n }, this.notificationOptions.timeout);\n } else {\n this.showNotification = false;\n }\n },\n );\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n\n closeNotification() {\n this.showNotification = false;\n this.notificationService.clearNotification();\n }\n\n @Output() buttonClick = new EventEmitter<NotificationButton>();\n @Output() close = new EventEmitter();\n\n get notificationStyles() {\n return {\n 'background-color': this.notificationOptions\n ? this.notificationOptions.backgroundColor\n : '',\n color: this.notificationOptions ? this.notificationOptions.textColor : '',\n // The toast's colours for its buttons (main = text colour, others = a tint of it)\n '--vbn-toast-fg': this.notificationOptions?.textColor || 'currentColor',\n '--vbn-toast-bg': this.notificationOptions?.backgroundColor || 'transparent',\n '--vbn-toast-soft': 'color-mix(in srgb, var(--vbn-toast-fg) 12%, transparent)',\n padding: this.padding,\n 'border-radius': this.borderRadius,\n border: '1px solid color-mix(in srgb, currentColor 20%, transparent)',\n width: this.width,\n 'font-size': this.fontSize,\n 'font-weight': this.fontWeight,\n display: 'flex',\n 'align-items': 'center',\n 'justify-content': 'space-between',\n ...this.getPositionStyles(),\n position: 'fixed',\n 'z-index': '9999',\n transition: this.transition,\n };\n }\n\n getPositionStyles() {\n const positions: { [key: string]: any } = {\n 'top-left': {\n top: this.top || '1rem',\n left: this.showNotification ? '1rem' : '-100%',\n transition: 'top 0.5s ease-in-out',\n },\n 'top-right': {\n top: this.top || '1rem',\n right: this.showNotification ? '1rem' : '-100%',\n transition: 'top 0.5s ease-in-out',\n },\n 'middle-left': {\n top: this.top || '45%',\n left: this.showNotification ? '1rem' : '-100%',\n transition: 'top 0.5s ease-in-out',\n },\n 'middle-right': {\n top: this.top || '45%',\n right: this.showNotification ? '1rem' : '-100%',\n transition: 'top 0.5s ease-in-out',\n },\n 'bottom-left': {\n bottom: this.bottom || '1rem',\n left: this.showNotification ? '1rem' : '-100%',\n transition: 'bottom 0.5s ease-in-out',\n },\n 'bottom-right': {\n bottom: this.bottom || '1rem',\n right: this.showNotification ? '1rem' : '-100%',\n transition: 'bottom 0.5s ease-in-out',\n },\n };\n\n return positions[this.position] || positions['top-left'];\n }\n\n get btnWrapperStyle() {\n return {\n display: 'flex',\n 'align-items': 'center',\n gap: '6px',\n };\n }\n\n get innerWrapperStyles() {\n return {\n display: 'flex',\n 'align-items': 'center',\n gap: '10px',\n };\n }\n\n onButtonClick(button: NotificationButton) {\n this.buttonClick.emit(button);\n }\n}\n","<div\n [ngStyle]=\"notificationStyles\"\n class=\"mainwrapper\"\n [attr.data-type]=\"notificationOptions.type\"\n [attr.role]=\"notificationOptions.type === 'error' ? 'alert' : 'status'\"\n *ngIf=\"notificationOptions\"\n>\n <div class=\"content\" [ngStyle]=\"innerWrapperStyles\">\n <verben-svg\n class=\"icon\"\n *ngIf=\"notificationOptions.iconName\"\n [icon]=\"notificationOptions.iconName || ''\"\n [width]=\"notificationOptions.iconWidth || 18\"\n [height]=\"notificationOptions.iconHeight || 18\"\n [stroke]=\"notificationOptions.stroke || ''\"\n [fill]=\"notificationOptions.fill || ''\"\n ></verben-svg>\n <p>{{ notificationContent }}</p>\n </div>\n\n <!-- Buttons: the first is the main action (solid), the others are quieter.\n A button's own bgColor / primarycolor still win. -->\n <div class=\"side\">\n <ng-container *ngIf=\"notificationOptions.buttons\">\n <div [ngStyle]=\"btnWrapperStyle\">\n <verbena-button\n *ngFor=\"let button of notificationOptions.buttons; let first = first\"\n [text]=\"button.text\"\n [bgColor]=\"button.bgColor || (first ? 'var(--vbn-toast-fg)' : 'var(--vbn-toast-soft)')\"\n [textColor]=\"button.primarycolor || button.secondarycolor || (first ? 'var(--vbn-toast-bg)' : 'var(--vbn-toast-fg)')\"\n [border]=\"'0'\"\n [height]=\"'28px'\"\n [borderRadius]=\"'6px'\"\n [pd]=\"'0 10px'\"\n [fontSize]=\"button.fontSize || '12.5px'\"\n [fontWeight]=\"button.fontWeight || '600'\"\n (click)=\"button.callBack && button.callBack()\"\n ></verbena-button>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!notificationOptions.buttons\">\n <div [ngStyle]=\"btnWrapperStyle\" *ngIf=\"buttons.length\">\n <verbena-button\n *ngFor=\"let button of buttons; let first = first\"\n [text]=\"button.text\"\n [bgColor]=\"button.bgColor || (first ? 'var(--vbn-toast-fg)' : 'var(--vbn-toast-soft)')\"\n [textColor]=\"button.primarycolor || button.secondarycolor || (first ? 'var(--vbn-toast-bg)' : 'var(--vbn-toast-fg)')\"\n [border]=\"'0'\"\n [height]=\"'28px'\"\n [borderRadius]=\"'6px'\"\n [pd]=\"'0 10px'\"\n [fontSize]=\"button.fontSize || '12.5px'\"\n [fontWeight]=\"button.fontWeight || '600'\"\n (click)=\"onButtonClick(button); button.callBack && button.callBack()\"\n ></verbena-button>\n </div>\n </ng-container>\n </div>\n\n <button\n type=\"button\"\n class=\"closeSvg\"\n aria-label=\"Close notification\"\n title=\"Close\"\n (click)=\"closeNotification()\"\n >\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" aria-hidden=\"true\">\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </svg>\n </button>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -27,42 +27,47 @@ class NotificationService {
|
|
|
27
27
|
notificationSubject = new BehaviorSubject(null);
|
|
28
28
|
notification$ = this.notificationSubject.asObservable();
|
|
29
29
|
getDefaultOptions(type) {
|
|
30
|
+
// Tinted like before, Sonner "rich colors" style: a light tint of the type
|
|
31
|
+
// colour behind a deeper shade of it for the text and icon. Mixed from the
|
|
32
|
+
// theme, so dark mode gets a dark tint with a light shade.
|
|
33
|
+
const tint = (tone, bg) => `color-mix(in srgb, var(${tone}) ${bg}%, var(--vbn-color-surface))`;
|
|
34
|
+
const shade = (tone, fg) => `color-mix(in oklab, var(${tone}) ${fg}%, var(--vbn-color-text))`;
|
|
30
35
|
const typeStyles = {
|
|
31
36
|
success: {
|
|
32
|
-
backgroundColor: '
|
|
33
|
-
textColor: '
|
|
37
|
+
backgroundColor: tint('--vbn-color-success', 10),
|
|
38
|
+
textColor: shade('--vbn-color-success', 60),
|
|
34
39
|
iconName: 'success',
|
|
35
|
-
iconWidth:
|
|
36
|
-
iconHeight:
|
|
40
|
+
iconWidth: 18,
|
|
41
|
+
iconHeight: 18,
|
|
37
42
|
stroke: '',
|
|
38
43
|
fill: '',
|
|
39
44
|
},
|
|
40
45
|
error: {
|
|
41
|
-
backgroundColor: '
|
|
42
|
-
textColor: '
|
|
46
|
+
backgroundColor: tint('--vbn-color-error', 7),
|
|
47
|
+
textColor: shade('--vbn-color-error', 85),
|
|
43
48
|
iconName: 'warning',
|
|
44
|
-
iconWidth:
|
|
45
|
-
iconHeight:
|
|
46
|
-
stroke: '
|
|
47
|
-
fill: '
|
|
49
|
+
iconWidth: 18,
|
|
50
|
+
iconHeight: 18,
|
|
51
|
+
stroke: shade('--vbn-color-error', 85),
|
|
52
|
+
fill: shade('--vbn-color-error', 85),
|
|
48
53
|
},
|
|
49
54
|
warning: {
|
|
50
|
-
backgroundColor: '
|
|
51
|
-
textColor: '
|
|
55
|
+
backgroundColor: tint('--vbn-color-warning', 12),
|
|
56
|
+
textColor: shade('--vbn-color-warning', 62),
|
|
52
57
|
iconName: 'dangerInfo',
|
|
53
|
-
iconWidth:
|
|
54
|
-
iconHeight:
|
|
55
|
-
stroke: '
|
|
56
|
-
fill: '
|
|
58
|
+
iconWidth: 18,
|
|
59
|
+
iconHeight: 18,
|
|
60
|
+
stroke: shade('--vbn-color-warning', 62),
|
|
61
|
+
fill: shade('--vbn-color-warning', 62),
|
|
57
62
|
},
|
|
58
63
|
info: {
|
|
59
|
-
backgroundColor: '
|
|
60
|
-
textColor: '
|
|
64
|
+
backgroundColor: tint('--vbn-color-info', 8),
|
|
65
|
+
textColor: shade('--vbn-color-info', 85),
|
|
61
66
|
iconName: 'dangerInfo',
|
|
62
|
-
iconWidth:
|
|
63
|
-
iconHeight:
|
|
64
|
-
stroke: '
|
|
65
|
-
fill: '
|
|
67
|
+
iconWidth: 18,
|
|
68
|
+
iconHeight: 18,
|
|
69
|
+
stroke: shade('--vbn-color-info', 85),
|
|
70
|
+
fill: shade('--vbn-color-info', 85),
|
|
66
71
|
},
|
|
67
72
|
};
|
|
68
73
|
return (typeStyles[type] || {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verben-ng-ui-src-lib-services.mjs","sources":["../../../projects/verben-ng-ui/src/lib/services/icon.service.ts","../../../projects/verben-ng-ui/src/lib/services/notification.services.ts","../../../projects/verben-ng-ui/src/lib/services/verben-ng-ui-src-lib-services.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, of } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IconService {\n constructor(private http: HttpClient) {}\n\n getIcon(iconName: string): Observable<string> {\n return this.http.get(`/icons/${iconName}.svg`, { responseType: 'text' }).pipe(\n catchError(() => of('')) // Handle errors (e.g., if the SVG doesn't exist)\n );\n }\n}","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport {\n NotificationButton,\n NotificationOptions,\n} from 'verben-ng-ui/src/lib/models';\n\ninterface NotificationStyles {\n backgroundColor: string;\n textColor: string;\n iconName: string;\n iconWidth: number;\n iconHeight: number;\n stroke: string;\n fill: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NotificationService {\n private notificationSubject = new BehaviorSubject<{\n message: string;\n options: NotificationOptions & NotificationStyles;\n } | null>(null);\n notification$ = this.notificationSubject.asObservable();\n\n private getDefaultOptions(\n type: NotificationOptions['type'],\n ): NotificationStyles {\n const typeStyles: Record<NotificationOptions['type'], NotificationStyles> =\n {\n success: {\n backgroundColor: '
|
|
1
|
+
{"version":3,"file":"verben-ng-ui-src-lib-services.mjs","sources":["../../../projects/verben-ng-ui/src/lib/services/icon.service.ts","../../../projects/verben-ng-ui/src/lib/services/notification.services.ts","../../../projects/verben-ng-ui/src/lib/services/verben-ng-ui-src-lib-services.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, of } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IconService {\n constructor(private http: HttpClient) {}\n\n getIcon(iconName: string): Observable<string> {\n return this.http.get(`/icons/${iconName}.svg`, { responseType: 'text' }).pipe(\n catchError(() => of('')) // Handle errors (e.g., if the SVG doesn't exist)\n );\n }\n}","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport {\n NotificationButton,\n NotificationOptions,\n} from 'verben-ng-ui/src/lib/models';\n\ninterface NotificationStyles {\n backgroundColor: string;\n textColor: string;\n iconName: string;\n iconWidth: number;\n iconHeight: number;\n stroke: string;\n fill: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NotificationService {\n private notificationSubject = new BehaviorSubject<{\n message: string;\n options: NotificationOptions & NotificationStyles;\n } | null>(null);\n notification$ = this.notificationSubject.asObservable();\n\n private getDefaultOptions(\n type: NotificationOptions['type'],\n ): NotificationStyles {\n // Tinted like before, Sonner \"rich colors\" style: a light tint of the type\n // colour behind a deeper shade of it for the text and icon. Mixed from the\n // theme, so dark mode gets a dark tint with a light shade.\n const tint = (tone: string, bg: number) =>\n `color-mix(in srgb, var(${tone}) ${bg}%, var(--vbn-color-surface))`;\n const shade = (tone: string, fg: number) =>\n `color-mix(in oklab, var(${tone}) ${fg}%, var(--vbn-color-text))`;\n const typeStyles: Record<NotificationOptions['type'], NotificationStyles> =\n {\n success: {\n backgroundColor: tint('--vbn-color-success', 10),\n textColor: shade('--vbn-color-success', 60),\n iconName: 'success',\n iconWidth: 18,\n iconHeight: 18,\n stroke: '',\n fill: '',\n },\n error: {\n backgroundColor: tint('--vbn-color-error', 7),\n textColor: shade('--vbn-color-error', 85),\n iconName: 'warning',\n iconWidth: 18,\n iconHeight: 18,\n stroke: shade('--vbn-color-error', 85),\n fill: shade('--vbn-color-error', 85),\n },\n warning: {\n backgroundColor: tint('--vbn-color-warning', 12),\n textColor: shade('--vbn-color-warning', 62),\n iconName: 'dangerInfo',\n iconWidth: 18,\n iconHeight: 18,\n stroke: shade('--vbn-color-warning', 62),\n fill: shade('--vbn-color-warning', 62),\n },\n info: {\n backgroundColor: tint('--vbn-color-info', 8),\n textColor: shade('--vbn-color-info', 85),\n iconName: 'dangerInfo',\n iconWidth: 18,\n iconHeight: 18,\n stroke: shade('--vbn-color-info', 85),\n fill: shade('--vbn-color-info', 85),\n },\n };\n\n return (\n typeStyles[type] || {\n backgroundColor: 'var(--vbn-color-text)',\n textColor: 'var(--vbn-color-surface)',\n iconName: '',\n iconWidth: 20,\n iconHeight: 20,\n stroke: '',\n fill: '',\n }\n );\n }\n\n showNotification(\n type: NotificationOptions['type'],\n message: string,\n options: Partial<NotificationOptions> = {},\n ) {\n const defaultOptions: NotificationOptions & NotificationStyles = {\n timeout: 2000,\n position: 'top-right',\n ...this.getDefaultOptions(type),\n type,\n };\n this.notificationSubject.next({\n message,\n options: { ...defaultOptions, ...options },\n });\n }\n\n clearNotification() {\n this.notificationSubject.next(null);\n }\n\n success(message: string, options?: Partial<NotificationOptions>) {\n this.showNotification('success', message, options);\n }\n\n warning(message: string, options?: Partial<NotificationOptions>) {\n this.showNotification('warning', message, options);\n }\n\n error(message: string, options?: Partial<NotificationOptions>) {\n this.showNotification('error', message, options);\n }\n\n info(message: string, options?: Partial<NotificationOptions>) {\n this.showNotification('info', message, options);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "verben-ng-ui",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.7",
|
|
4
4
|
"author": "Verbena Logic",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -45,18 +45,18 @@
|
|
|
45
45
|
"esm": "./esm2022/src/lib/control-options/verben-ng-ui-src-lib-control-options.mjs",
|
|
46
46
|
"default": "./fesm2022/verben-ng-ui-src-lib-control-options.mjs"
|
|
47
47
|
},
|
|
48
|
-
"./src/lib/convert-to-integer": {
|
|
49
|
-
"types": "./src/lib/convert-to-integer/index.d.ts",
|
|
50
|
-
"esm2022": "./esm2022/src/lib/convert-to-integer/verben-ng-ui-src-lib-convert-to-integer.mjs",
|
|
51
|
-
"esm": "./esm2022/src/lib/convert-to-integer/verben-ng-ui-src-lib-convert-to-integer.mjs",
|
|
52
|
-
"default": "./fesm2022/verben-ng-ui-src-lib-convert-to-integer.mjs"
|
|
53
|
-
},
|
|
54
48
|
"./src/lib/convert-to-number": {
|
|
55
49
|
"types": "./src/lib/convert-to-number/index.d.ts",
|
|
56
50
|
"esm2022": "./esm2022/src/lib/convert-to-number/verben-ng-ui-src-lib-convert-to-number.mjs",
|
|
57
51
|
"esm": "./esm2022/src/lib/convert-to-number/verben-ng-ui-src-lib-convert-to-number.mjs",
|
|
58
52
|
"default": "./fesm2022/verben-ng-ui-src-lib-convert-to-number.mjs"
|
|
59
53
|
},
|
|
54
|
+
"./src/lib/convert-to-integer": {
|
|
55
|
+
"types": "./src/lib/convert-to-integer/index.d.ts",
|
|
56
|
+
"esm2022": "./esm2022/src/lib/convert-to-integer/verben-ng-ui-src-lib-convert-to-integer.mjs",
|
|
57
|
+
"esm": "./esm2022/src/lib/convert-to-integer/verben-ng-ui-src-lib-convert-to-integer.mjs",
|
|
58
|
+
"default": "./fesm2022/verben-ng-ui-src-lib-convert-to-integer.mjs"
|
|
59
|
+
},
|
|
60
60
|
"./src/lib/email-validator": {
|
|
61
61
|
"types": "./src/lib/email-validator/index.d.ts",
|
|
62
62
|
"esm2022": "./esm2022/src/lib/email-validator/verben-ng-ui-src-lib-email-validator.mjs",
|
|
@@ -99,18 +99,18 @@
|
|
|
99
99
|
"esm": "./esm2022/src/lib/theme/verben-ng-ui-src-lib-theme.mjs",
|
|
100
100
|
"default": "./fesm2022/verben-ng-ui-src-lib-theme.mjs"
|
|
101
101
|
},
|
|
102
|
+
"./src/lib/theme-switcher": {
|
|
103
|
+
"types": "./src/lib/theme-switcher/index.d.ts",
|
|
104
|
+
"esm2022": "./esm2022/src/lib/theme-switcher/verben-ng-ui-src-lib-theme-switcher.mjs",
|
|
105
|
+
"esm": "./esm2022/src/lib/theme-switcher/verben-ng-ui-src-lib-theme-switcher.mjs",
|
|
106
|
+
"default": "./fesm2022/verben-ng-ui-src-lib-theme-switcher.mjs"
|
|
107
|
+
},
|
|
102
108
|
"./src/lib/validate": {
|
|
103
109
|
"types": "./src/lib/validate/index.d.ts",
|
|
104
110
|
"esm2022": "./esm2022/src/lib/validate/verben-ng-ui-src-lib-validate.mjs",
|
|
105
111
|
"esm": "./esm2022/src/lib/validate/verben-ng-ui-src-lib-validate.mjs",
|
|
106
112
|
"default": "./fesm2022/verben-ng-ui-src-lib-validate.mjs"
|
|
107
113
|
},
|
|
108
|
-
"./src/lib/validate-input": {
|
|
109
|
-
"types": "./src/lib/validate-input/index.d.ts",
|
|
110
|
-
"esm2022": "./esm2022/src/lib/validate-input/verben-ng-ui-src-lib-validate-input.mjs",
|
|
111
|
-
"esm": "./esm2022/src/lib/validate-input/verben-ng-ui-src-lib-validate-input.mjs",
|
|
112
|
-
"default": "./fesm2022/verben-ng-ui-src-lib-validate-input.mjs"
|
|
113
|
-
},
|
|
114
114
|
"./src/lib/verbena-badge": {
|
|
115
115
|
"types": "./src/lib/verbena-badge/index.d.ts",
|
|
116
116
|
"esm2022": "./esm2022/src/lib/verbena-badge/verben-ng-ui-src-lib-verbena-badge.mjs",
|
|
@@ -123,11 +123,11 @@
|
|
|
123
123
|
"esm": "./esm2022/src/lib/verbena-button/verben-ng-ui-src-lib-verbena-button.mjs",
|
|
124
124
|
"default": "./fesm2022/verben-ng-ui-src-lib-verbena-button.mjs"
|
|
125
125
|
},
|
|
126
|
-
"./src/lib/
|
|
127
|
-
"types": "./src/lib/
|
|
128
|
-
"esm2022": "./esm2022/src/lib/
|
|
129
|
-
"esm": "./esm2022/src/lib/
|
|
130
|
-
"default": "./fesm2022/verben-ng-ui-src-lib-
|
|
126
|
+
"./src/lib/validate-input": {
|
|
127
|
+
"types": "./src/lib/validate-input/index.d.ts",
|
|
128
|
+
"esm2022": "./esm2022/src/lib/validate-input/verben-ng-ui-src-lib-validate-input.mjs",
|
|
129
|
+
"esm": "./esm2022/src/lib/validate-input/verben-ng-ui-src-lib-validate-input.mjs",
|
|
130
|
+
"default": "./fesm2022/verben-ng-ui-src-lib-validate-input.mjs"
|
|
131
131
|
},
|
|
132
132
|
"./src/lib/verbena-switch": {
|
|
133
133
|
"types": "./src/lib/verbena-switch/index.d.ts",
|
|
@@ -135,18 +135,18 @@
|
|
|
135
135
|
"esm": "./esm2022/src/lib/verbena-switch/verben-ng-ui-src-lib-verbena-switch.mjs",
|
|
136
136
|
"default": "./fesm2022/verben-ng-ui-src-lib-verbena-switch.mjs"
|
|
137
137
|
},
|
|
138
|
-
"./src/lib/verbena-input": {
|
|
139
|
-
"types": "./src/lib/verbena-input/index.d.ts",
|
|
140
|
-
"esm2022": "./esm2022/src/lib/verbena-input/verben-ng-ui-src-lib-verbena-input.mjs",
|
|
141
|
-
"esm": "./esm2022/src/lib/verbena-input/verben-ng-ui-src-lib-verbena-input.mjs",
|
|
142
|
-
"default": "./fesm2022/verben-ng-ui-src-lib-verbena-input.mjs"
|
|
143
|
-
},
|
|
144
138
|
"./src/lib/verbena-textarea": {
|
|
145
139
|
"types": "./src/lib/verbena-textarea/index.d.ts",
|
|
146
140
|
"esm2022": "./esm2022/src/lib/verbena-textarea/verben-ng-ui-src-lib-verbena-textarea.mjs",
|
|
147
141
|
"esm": "./esm2022/src/lib/verbena-textarea/verben-ng-ui-src-lib-verbena-textarea.mjs",
|
|
148
142
|
"default": "./fesm2022/verben-ng-ui-src-lib-verbena-textarea.mjs"
|
|
149
143
|
},
|
|
144
|
+
"./src/lib/components/chip": {
|
|
145
|
+
"types": "./src/lib/components/chip/index.d.ts",
|
|
146
|
+
"esm2022": "./esm2022/src/lib/components/chip/verben-ng-ui-src-lib-components-chip.mjs",
|
|
147
|
+
"esm": "./esm2022/src/lib/components/chip/verben-ng-ui-src-lib-components-chip.mjs",
|
|
148
|
+
"default": "./fesm2022/verben-ng-ui-src-lib-components-chip.mjs"
|
|
149
|
+
},
|
|
150
150
|
"./src/lib/components/card-data-view": {
|
|
151
151
|
"types": "./src/lib/components/card-data-view/index.d.ts",
|
|
152
152
|
"esm2022": "./esm2022/src/lib/components/card-data-view/verben-ng-ui-src-lib-components-card-data-view.mjs",
|
|
@@ -159,18 +159,6 @@
|
|
|
159
159
|
"esm": "./esm2022/src/lib/components/card/verben-ng-ui-src-lib-components-card.mjs",
|
|
160
160
|
"default": "./fesm2022/verben-ng-ui-src-lib-components-card.mjs"
|
|
161
161
|
},
|
|
162
|
-
"./src/lib/components/chip": {
|
|
163
|
-
"types": "./src/lib/components/chip/index.d.ts",
|
|
164
|
-
"esm2022": "./esm2022/src/lib/components/chip/verben-ng-ui-src-lib-components-chip.mjs",
|
|
165
|
-
"esm": "./esm2022/src/lib/components/chip/verben-ng-ui-src-lib-components-chip.mjs",
|
|
166
|
-
"default": "./fesm2022/verben-ng-ui-src-lib-components-chip.mjs"
|
|
167
|
-
},
|
|
168
|
-
"./src/lib/components/data-export": {
|
|
169
|
-
"types": "./src/lib/components/data-export/index.d.ts",
|
|
170
|
-
"esm2022": "./esm2022/src/lib/components/data-export/verben-ng-ui-src-lib-components-data-export.mjs",
|
|
171
|
-
"esm": "./esm2022/src/lib/components/data-export/verben-ng-ui-src-lib-components-data-export.mjs",
|
|
172
|
-
"default": "./fesm2022/verben-ng-ui-src-lib-components-data-export.mjs"
|
|
173
|
-
},
|
|
174
162
|
"./src/lib/components/data-extend": {
|
|
175
163
|
"types": "./src/lib/components/data-extend/index.d.ts",
|
|
176
164
|
"esm2022": "./esm2022/src/lib/components/data-extend/verben-ng-ui-src-lib-components-data-extend.mjs",
|
|
@@ -183,6 +171,24 @@
|
|
|
183
171
|
"esm": "./esm2022/src/lib/components/data-columns/verben-ng-ui-src-lib-components-data-columns.mjs",
|
|
184
172
|
"default": "./fesm2022/verben-ng-ui-src-lib-components-data-columns.mjs"
|
|
185
173
|
},
|
|
174
|
+
"./src/lib/verbena-input": {
|
|
175
|
+
"types": "./src/lib/verbena-input/index.d.ts",
|
|
176
|
+
"esm2022": "./esm2022/src/lib/verbena-input/verben-ng-ui-src-lib-verbena-input.mjs",
|
|
177
|
+
"esm": "./esm2022/src/lib/verbena-input/verben-ng-ui-src-lib-verbena-input.mjs",
|
|
178
|
+
"default": "./fesm2022/verben-ng-ui-src-lib-verbena-input.mjs"
|
|
179
|
+
},
|
|
180
|
+
"./src/lib/components/data-filter": {
|
|
181
|
+
"types": "./src/lib/components/data-filter/index.d.ts",
|
|
182
|
+
"esm2022": "./esm2022/src/lib/components/data-filter/verben-ng-ui-src-lib-components-data-filter.mjs",
|
|
183
|
+
"esm": "./esm2022/src/lib/components/data-filter/verben-ng-ui-src-lib-components-data-filter.mjs",
|
|
184
|
+
"default": "./fesm2022/verben-ng-ui-src-lib-components-data-filter.mjs"
|
|
185
|
+
},
|
|
186
|
+
"./src/lib/components/data-export": {
|
|
187
|
+
"types": "./src/lib/components/data-export/index.d.ts",
|
|
188
|
+
"esm2022": "./esm2022/src/lib/components/data-export/verben-ng-ui-src-lib-components-data-export.mjs",
|
|
189
|
+
"esm": "./esm2022/src/lib/components/data-export/verben-ng-ui-src-lib-components-data-export.mjs",
|
|
190
|
+
"default": "./fesm2022/verben-ng-ui-src-lib-components-data-export.mjs"
|
|
191
|
+
},
|
|
186
192
|
"./src/lib/components/data-import": {
|
|
187
193
|
"types": "./src/lib/components/data-import/index.d.ts",
|
|
188
194
|
"esm2022": "./esm2022/src/lib/components/data-import/verben-ng-ui-src-lib-components-data-import.mjs",
|
|
@@ -201,11 +207,17 @@
|
|
|
201
207
|
"esm": "./esm2022/src/lib/components/data-table/verben-ng-ui-src-lib-components-data-table.mjs",
|
|
202
208
|
"default": "./fesm2022/verben-ng-ui-src-lib-components-data-table.mjs"
|
|
203
209
|
},
|
|
204
|
-
"./src/lib/components/data-
|
|
205
|
-
"types": "./src/lib/components/data-
|
|
206
|
-
"esm2022": "./esm2022/src/lib/components/data-
|
|
207
|
-
"esm": "./esm2022/src/lib/components/data-
|
|
208
|
-
"default": "./fesm2022/verben-ng-ui-src-lib-components-data-
|
|
210
|
+
"./src/lib/components/data-xport": {
|
|
211
|
+
"types": "./src/lib/components/data-xport/index.d.ts",
|
|
212
|
+
"esm2022": "./esm2022/src/lib/components/data-xport/verben-ng-ui-src-lib-components-data-xport.mjs",
|
|
213
|
+
"esm": "./esm2022/src/lib/components/data-xport/verben-ng-ui-src-lib-components-data-xport.mjs",
|
|
214
|
+
"default": "./fesm2022/verben-ng-ui-src-lib-components-data-xport.mjs"
|
|
215
|
+
},
|
|
216
|
+
"./src/lib/components/data-view": {
|
|
217
|
+
"types": "./src/lib/components/data-view/index.d.ts",
|
|
218
|
+
"esm2022": "./esm2022/src/lib/components/data-view/verben-ng-ui-src-lib-components-data-view.mjs",
|
|
219
|
+
"esm": "./esm2022/src/lib/components/data-view/verben-ng-ui-src-lib-components-data-view.mjs",
|
|
220
|
+
"default": "./fesm2022/verben-ng-ui-src-lib-components-data-view.mjs"
|
|
209
221
|
},
|
|
210
222
|
"./src/lib/components/date-picker": {
|
|
211
223
|
"types": "./src/lib/components/date-picker/index.d.ts",
|
|
@@ -213,11 +225,17 @@
|
|
|
213
225
|
"esm": "./esm2022/src/lib/components/date-picker/verben-ng-ui-src-lib-components-date-picker.mjs",
|
|
214
226
|
"default": "./fesm2022/verben-ng-ui-src-lib-components-date-picker.mjs"
|
|
215
227
|
},
|
|
216
|
-
"./src/lib/components/
|
|
217
|
-
"types": "./src/lib/components/
|
|
218
|
-
"esm2022": "./esm2022/src/lib/components/
|
|
219
|
-
"esm": "./esm2022/src/lib/components/
|
|
220
|
-
"default": "./fesm2022/verben-ng-ui-src-lib-components-
|
|
228
|
+
"./src/lib/components/drop-down": {
|
|
229
|
+
"types": "./src/lib/components/drop-down/index.d.ts",
|
|
230
|
+
"esm2022": "./esm2022/src/lib/components/drop-down/verben-ng-ui-src-lib-components-drop-down.mjs",
|
|
231
|
+
"esm": "./esm2022/src/lib/components/drop-down/verben-ng-ui-src-lib-components-drop-down.mjs",
|
|
232
|
+
"default": "./fesm2022/verben-ng-ui-src-lib-components-drop-down.mjs"
|
|
233
|
+
},
|
|
234
|
+
"./src/lib/components/icons": {
|
|
235
|
+
"types": "./src/lib/components/icons/index.d.ts",
|
|
236
|
+
"esm2022": "./esm2022/src/lib/components/icons/verben-ng-ui-src-lib-components-icons.mjs",
|
|
237
|
+
"esm": "./esm2022/src/lib/components/icons/verben-ng-ui-src-lib-components-icons.mjs",
|
|
238
|
+
"default": "./fesm2022/verben-ng-ui-src-lib-components-icons.mjs"
|
|
221
239
|
},
|
|
222
240
|
"./src/lib/components/image": {
|
|
223
241
|
"types": "./src/lib/components/image/index.d.ts",
|
|
@@ -225,11 +243,11 @@
|
|
|
225
243
|
"esm": "./esm2022/src/lib/components/image/verben-ng-ui-src-lib-components-image.mjs",
|
|
226
244
|
"default": "./fesm2022/verben-ng-ui-src-lib-components-image.mjs"
|
|
227
245
|
},
|
|
228
|
-
"./src/lib/components/
|
|
229
|
-
"types": "./src/lib/components/
|
|
230
|
-
"esm2022": "./esm2022/src/lib/components/
|
|
231
|
-
"esm": "./esm2022/src/lib/components/
|
|
232
|
-
"default": "./fesm2022/verben-ng-ui-src-lib-components-
|
|
246
|
+
"./src/lib/components/number-input": {
|
|
247
|
+
"types": "./src/lib/components/number-input/index.d.ts",
|
|
248
|
+
"esm2022": "./esm2022/src/lib/components/number-input/verben-ng-ui-src-lib-components-number-input.mjs",
|
|
249
|
+
"esm": "./esm2022/src/lib/components/number-input/verben-ng-ui-src-lib-components-number-input.mjs",
|
|
250
|
+
"default": "./fesm2022/verben-ng-ui-src-lib-components-number-input.mjs"
|
|
233
251
|
},
|
|
234
252
|
"./src/lib/components/notification": {
|
|
235
253
|
"types": "./src/lib/components/notification/index.d.ts",
|
|
@@ -243,41 +261,17 @@
|
|
|
243
261
|
"esm": "./esm2022/src/lib/components/pop-up/verben-ng-ui-src-lib-components-pop-up.mjs",
|
|
244
262
|
"default": "./fesm2022/verben-ng-ui-src-lib-components-pop-up.mjs"
|
|
245
263
|
},
|
|
246
|
-
"./src/lib/components/drop-down": {
|
|
247
|
-
"types": "./src/lib/components/drop-down/index.d.ts",
|
|
248
|
-
"esm2022": "./esm2022/src/lib/components/drop-down/verben-ng-ui-src-lib-components-drop-down.mjs",
|
|
249
|
-
"esm": "./esm2022/src/lib/components/drop-down/verben-ng-ui-src-lib-components-drop-down.mjs",
|
|
250
|
-
"default": "./fesm2022/verben-ng-ui-src-lib-components-drop-down.mjs"
|
|
251
|
-
},
|
|
252
|
-
"./src/lib/components/data-view": {
|
|
253
|
-
"types": "./src/lib/components/data-view/index.d.ts",
|
|
254
|
-
"esm2022": "./esm2022/src/lib/components/data-view/verben-ng-ui-src-lib-components-data-view.mjs",
|
|
255
|
-
"esm": "./esm2022/src/lib/components/data-view/verben-ng-ui-src-lib-components-data-view.mjs",
|
|
256
|
-
"default": "./fesm2022/verben-ng-ui-src-lib-components-data-view.mjs"
|
|
257
|
-
},
|
|
258
|
-
"./src/lib/components/number-input": {
|
|
259
|
-
"types": "./src/lib/components/number-input/index.d.ts",
|
|
260
|
-
"esm2022": "./esm2022/src/lib/components/number-input/verben-ng-ui-src-lib-components-number-input.mjs",
|
|
261
|
-
"esm": "./esm2022/src/lib/components/number-input/verben-ng-ui-src-lib-components-number-input.mjs",
|
|
262
|
-
"default": "./fesm2022/verben-ng-ui-src-lib-components-number-input.mjs"
|
|
263
|
-
},
|
|
264
264
|
"./src/lib/components/shared": {
|
|
265
265
|
"types": "./src/lib/components/shared/index.d.ts",
|
|
266
266
|
"esm2022": "./esm2022/src/lib/components/shared/verben-ng-ui-src-lib-components-shared.mjs",
|
|
267
267
|
"esm": "./esm2022/src/lib/components/shared/verben-ng-ui-src-lib-components-shared.mjs",
|
|
268
268
|
"default": "./fesm2022/verben-ng-ui-src-lib-components-shared.mjs"
|
|
269
269
|
},
|
|
270
|
-
"./src/lib/components/table
|
|
271
|
-
"types": "./src/lib/components/table
|
|
272
|
-
"esm2022": "./esm2022/src/lib/components/table
|
|
273
|
-
"esm": "./esm2022/src/lib/components/table
|
|
274
|
-
"default": "./fesm2022/verben-ng-ui-src-lib-components-table
|
|
275
|
-
},
|
|
276
|
-
"./src/lib/components/tooltip": {
|
|
277
|
-
"types": "./src/lib/components/tooltip/index.d.ts",
|
|
278
|
-
"esm2022": "./esm2022/src/lib/components/tooltip/verben-ng-ui-src-lib-components-tooltip.mjs",
|
|
279
|
-
"esm": "./esm2022/src/lib/components/tooltip/verben-ng-ui-src-lib-components-tooltip.mjs",
|
|
280
|
-
"default": "./fesm2022/verben-ng-ui-src-lib-components-tooltip.mjs"
|
|
270
|
+
"./src/lib/components/sort-table": {
|
|
271
|
+
"types": "./src/lib/components/sort-table/index.d.ts",
|
|
272
|
+
"esm2022": "./esm2022/src/lib/components/sort-table/verben-ng-ui-src-lib-components-sort-table.mjs",
|
|
273
|
+
"esm": "./esm2022/src/lib/components/sort-table/verben-ng-ui-src-lib-components-sort-table.mjs",
|
|
274
|
+
"default": "./fesm2022/verben-ng-ui-src-lib-components-sort-table.mjs"
|
|
281
275
|
},
|
|
282
276
|
"./src/lib/components/svg": {
|
|
283
277
|
"types": "./src/lib/components/svg/index.d.ts",
|
|
@@ -285,11 +279,11 @@
|
|
|
285
279
|
"esm": "./esm2022/src/lib/components/svg/verben-ng-ui-src-lib-components-svg.mjs",
|
|
286
280
|
"default": "./fesm2022/verben-ng-ui-src-lib-components-svg.mjs"
|
|
287
281
|
},
|
|
288
|
-
"./src/lib/components/
|
|
289
|
-
"types": "./src/lib/components/
|
|
290
|
-
"esm2022": "./esm2022/src/lib/components/
|
|
291
|
-
"esm": "./esm2022/src/lib/components/
|
|
292
|
-
"default": "./fesm2022/verben-ng-ui-src-lib-components-
|
|
282
|
+
"./src/lib/components/table-filter": {
|
|
283
|
+
"types": "./src/lib/components/table-filter/index.d.ts",
|
|
284
|
+
"esm2022": "./esm2022/src/lib/components/table-filter/verben-ng-ui-src-lib-components-table-filter.mjs",
|
|
285
|
+
"esm": "./esm2022/src/lib/components/table-filter/verben-ng-ui-src-lib-components-table-filter.mjs",
|
|
286
|
+
"default": "./fesm2022/verben-ng-ui-src-lib-components-table-filter.mjs"
|
|
293
287
|
},
|
|
294
288
|
"./src/lib/components/verben-dialogue": {
|
|
295
289
|
"types": "./src/lib/components/verben-dialogue/index.d.ts",
|
|
@@ -297,17 +291,17 @@
|
|
|
297
291
|
"esm": "./esm2022/src/lib/components/verben-dialogue/verben-ng-ui-src-lib-components-verben-dialogue.mjs",
|
|
298
292
|
"default": "./fesm2022/verben-ng-ui-src-lib-components-verben-dialogue.mjs"
|
|
299
293
|
},
|
|
300
|
-
"./src/lib/components/verben-
|
|
301
|
-
"types": "./src/lib/components/verben-
|
|
302
|
-
"esm2022": "./esm2022/src/lib/components/verben-
|
|
303
|
-
"esm": "./esm2022/src/lib/components/verben-
|
|
304
|
-
"default": "./fesm2022/verben-ng-ui-src-lib-components-verben-
|
|
294
|
+
"./src/lib/components/verben-time-picker": {
|
|
295
|
+
"types": "./src/lib/components/verben-time-picker/index.d.ts",
|
|
296
|
+
"esm2022": "./esm2022/src/lib/components/verben-time-picker/verben-ng-ui-src-lib-components-verben-time-picker.mjs",
|
|
297
|
+
"esm": "./esm2022/src/lib/components/verben-time-picker/verben-ng-ui-src-lib-components-verben-time-picker.mjs",
|
|
298
|
+
"default": "./fesm2022/verben-ng-ui-src-lib-components-verben-time-picker.mjs"
|
|
305
299
|
},
|
|
306
|
-
"./src/lib/components/
|
|
307
|
-
"types": "./src/lib/components/
|
|
308
|
-
"esm2022": "./esm2022/src/lib/components/
|
|
309
|
-
"esm": "./esm2022/src/lib/components/
|
|
310
|
-
"default": "./fesm2022/verben-ng-ui-src-lib-components-
|
|
300
|
+
"./src/lib/components/tooltip": {
|
|
301
|
+
"types": "./src/lib/components/tooltip/index.d.ts",
|
|
302
|
+
"esm2022": "./esm2022/src/lib/components/tooltip/verben-ng-ui-src-lib-components-tooltip.mjs",
|
|
303
|
+
"esm": "./esm2022/src/lib/components/tooltip/verben-ng-ui-src-lib-components-tooltip.mjs",
|
|
304
|
+
"default": "./fesm2022/verben-ng-ui-src-lib-components-tooltip.mjs"
|
|
311
305
|
},
|
|
312
306
|
"./src/lib/components/verbena-icon": {
|
|
313
307
|
"types": "./src/lib/components/verbena-icon/index.d.ts",
|
|
@@ -315,17 +309,23 @@
|
|
|
315
309
|
"esm": "./esm2022/src/lib/components/verbena-icon/verben-ng-ui-src-lib-components-verbena-icon.mjs",
|
|
316
310
|
"default": "./fesm2022/verben-ng-ui-src-lib-components-verbena-icon.mjs"
|
|
317
311
|
},
|
|
318
|
-
"./src/lib/components/verben-time-picker": {
|
|
319
|
-
"types": "./src/lib/components/verben-time-picker/index.d.ts",
|
|
320
|
-
"esm2022": "./esm2022/src/lib/components/verben-time-picker/verben-ng-ui-src-lib-components-verben-time-picker.mjs",
|
|
321
|
-
"esm": "./esm2022/src/lib/components/verben-time-picker/verben-ng-ui-src-lib-components-verben-time-picker.mjs",
|
|
322
|
-
"default": "./fesm2022/verben-ng-ui-src-lib-components-verben-time-picker.mjs"
|
|
323
|
-
},
|
|
324
312
|
"./src/lib/components/verbena-tab": {
|
|
325
313
|
"types": "./src/lib/components/verbena-tab/index.d.ts",
|
|
326
314
|
"esm2022": "./esm2022/src/lib/components/verbena-tab/verben-ng-ui-src-lib-components-verbena-tab.mjs",
|
|
327
315
|
"esm": "./esm2022/src/lib/components/verbena-tab/verben-ng-ui-src-lib-components-verbena-tab.mjs",
|
|
328
316
|
"default": "./fesm2022/verben-ng-ui-src-lib-components-verbena-tab.mjs"
|
|
317
|
+
},
|
|
318
|
+
"./src/lib/components/verben-mail": {
|
|
319
|
+
"types": "./src/lib/components/verben-mail/index.d.ts",
|
|
320
|
+
"esm2022": "./esm2022/src/lib/components/verben-mail/verben-ng-ui-src-lib-components-verben-mail.mjs",
|
|
321
|
+
"esm": "./esm2022/src/lib/components/verben-mail/verben-ng-ui-src-lib-components-verben-mail.mjs",
|
|
322
|
+
"default": "./fesm2022/verben-ng-ui-src-lib-components-verben-mail.mjs"
|
|
323
|
+
},
|
|
324
|
+
"./src/lib/components/visible-column": {
|
|
325
|
+
"types": "./src/lib/components/visible-column/index.d.ts",
|
|
326
|
+
"esm2022": "./esm2022/src/lib/components/visible-column/verben-ng-ui-src-lib-components-visible-column.mjs",
|
|
327
|
+
"esm": "./esm2022/src/lib/components/visible-column/verben-ng-ui-src-lib-components-visible-column.mjs",
|
|
328
|
+
"default": "./fesm2022/verben-ng-ui-src-lib-components-visible-column.mjs"
|
|
329
329
|
}
|
|
330
330
|
}
|
|
331
331
|
}
|