@ndwnu/design-system 1.1.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/accordion/accordion.component.d.ts +1 -0
- package/components/alert/alert.component.d.ts +18 -2
- package/components/alert/alert.model.d.ts +1 -0
- package/components/badge/badge.component.d.ts +8 -1
- package/components/card/card-footer/card-footer.component.d.ts +0 -1
- package/components/card/card-header/card-header.component.d.ts +0 -3
- package/components/card/card.component.d.ts +2 -8
- package/components/card/index.d.ts +3 -1
- package/components/collapsible/collapsible.component.d.ts +4 -3
- package/components/dropdown/dropdown.component.d.ts +5 -5
- package/components/form-field/checkbox/checkbox.component.d.ts +0 -1
- package/components/form-field/file-upload/file-upload-text.interface.d.ts +4 -0
- package/components/form-field/file-upload/file-upload.component.d.ts +44 -0
- package/components/form-field/file-upload/index.d.ts +2 -0
- package/components/form-field/form-field.component.d.ts +8 -2
- package/components/form-field/index.d.ts +3 -0
- package/components/form-field/input/input.directive.d.ts +1 -0
- package/components/form-field/option-group/index.d.ts +2 -0
- package/components/form-field/option-group/option-group.component.d.ts +18 -0
- package/components/form-field/option-group/option.component.d.ts +8 -0
- package/components/form-field/radio-button/radio-button.component.d.ts +0 -4
- package/components/form-field/radio-group/radio-group.component.d.ts +1 -1
- package/components/form-field/textarea/auto-grow.directive.d.ts +19 -0
- package/components/form-field/textarea/index.d.ts +1 -0
- package/components/icon/action-icon/action-icon.component.d.ts +33 -0
- package/components/icon/icon.component.d.ts +4 -6
- package/components/icon/index.d.ts +1 -0
- package/components/index.d.ts +1 -0
- package/components/main-navigation/main-navigation.component.d.ts +2 -1
- package/components/modal/index.d.ts +7 -1
- package/components/modal/modal-content/index.d.ts +1 -0
- package/components/modal/modal-content/modal-content.component.d.ts +5 -0
- package/components/modal/modal-footer/index.d.ts +1 -0
- package/components/modal/modal-footer/modal-footer.component.d.ts +5 -0
- package/components/modal/modal-header/index.d.ts +1 -0
- package/components/modal/modal-header/modal-header.component.d.ts +7 -0
- package/components/modal/modal.component.d.ts +11 -0
- package/components/modal/modal.service.d.ts +0 -1
- package/components/multi-select/multi-select.component.d.ts +6 -5
- package/components/pill/pill.component.d.ts +8 -0
- package/components/removable-pill/removable-pill.component.d.ts +9 -2
- package/components/toast/index.d.ts +2 -0
- package/components/toast/toast.component.d.ts +18 -0
- package/components/toast/toast.service.d.ts +12 -0
- package/components/tooltip/tooltip.directive.d.ts +4 -0
- package/core/styles/ndw-styles.scss +99 -31
- package/core/styles/nwb-styles.scss +99 -31
- package/esm2022/components/accordion/accordion.component.mjs +9 -5
- package/esm2022/components/accordion/accordion.service.mjs +3 -6
- package/esm2022/components/alert/alert.component.mjs +28 -4
- package/esm2022/components/alert/alert.model.mjs +1 -1
- package/esm2022/components/badge/badge.component.mjs +10 -3
- package/esm2022/components/breadcrumb-group/breadcrumb-group.component.mjs +3 -3
- package/esm2022/components/card/card-footer/card-footer.component.mjs +1 -4
- package/esm2022/components/card/card-header/card-header.component.mjs +4 -12
- package/esm2022/components/card/card.component.mjs +5 -22
- package/esm2022/components/card/index.mjs +12 -2
- package/esm2022/components/collapsible/collapsible.component.mjs +6 -13
- package/esm2022/components/dropdown/dropdown.component.mjs +8 -9
- package/esm2022/components/form-field/checkbox/checkbox.component.mjs +8 -17
- package/esm2022/components/form-field/error/error.component.mjs +3 -3
- package/esm2022/components/form-field/file-upload/file-upload-text.interface.mjs +2 -0
- package/esm2022/components/form-field/file-upload/file-upload.component.mjs +210 -0
- package/esm2022/components/form-field/file-upload/index.mjs +3 -0
- package/esm2022/components/form-field/form-field.component.mjs +30 -5
- package/esm2022/components/form-field/index.mjs +4 -1
- package/esm2022/components/form-field/info/info.component.mjs +2 -2
- package/esm2022/components/form-field/input/input.directive.mjs +5 -3
- package/esm2022/components/form-field/option-group/index.mjs +3 -0
- package/esm2022/components/form-field/option-group/option-group.component.mjs +53 -0
- package/esm2022/components/form-field/option-group/option.component.mjs +22 -0
- package/esm2022/components/form-field/radio-button/radio-button.component.mjs +8 -35
- package/esm2022/components/form-field/radio-group/radio-group.component.mjs +4 -6
- package/esm2022/components/form-field/textarea/auto-grow.directive.mjs +45 -0
- package/esm2022/components/form-field/textarea/index.mjs +2 -0
- package/esm2022/components/icon/action-icon/action-icon.component.mjs +39 -0
- package/esm2022/components/icon/icon.component.mjs +10 -24
- package/esm2022/components/icon/index.mjs +2 -1
- package/esm2022/components/index.mjs +2 -1
- package/esm2022/components/main-navigation/main-navigation.component.mjs +4 -3
- package/esm2022/components/modal/index.mjs +18 -2
- package/esm2022/components/modal/modal-content/index.mjs +2 -0
- package/esm2022/components/modal/modal-content/modal-content.component.mjs +11 -0
- package/esm2022/components/modal/modal-footer/index.mjs +2 -0
- package/esm2022/components/modal/modal-footer/modal-footer.component.mjs +11 -0
- package/esm2022/components/modal/modal-header/index.mjs +2 -0
- package/esm2022/components/modal/modal-header/modal-header.component.mjs +19 -0
- package/esm2022/components/modal/modal.component.mjs +32 -0
- package/esm2022/components/modal/modal.service.mjs +5 -10
- package/esm2022/components/multi-select/multi-select.component.mjs +10 -8
- package/esm2022/components/pill/pill.component.mjs +17 -4
- package/esm2022/components/removable-pill/removable-pill.component.mjs +13 -11
- package/esm2022/components/toast/index.mjs +3 -0
- package/esm2022/components/toast/toast.component.mjs +74 -0
- package/esm2022/components/toast/toast.service.mjs +43 -0
- package/esm2022/components/tooltip/tooltip.component.mjs +5 -3
- package/esm2022/components/tooltip/tooltip.directive.mjs +43 -18
- package/fesm2022/ndwnu-design-system.mjs +884 -334
- package/fesm2022/ndwnu-design-system.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -2,15 +2,45 @@ import { Overlay } from '@angular/cdk/overlay';
|
|
|
2
2
|
import { ComponentPortal } from '@angular/cdk/portal';
|
|
3
3
|
import { Directive, ElementRef, HostListener, inject, input, } from '@angular/core';
|
|
4
4
|
import { TooltipComponent } from './tooltip.component';
|
|
5
|
+
import { AriaDescriber } from '@angular/cdk/a11y';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
export class TooltipDirective {
|
|
7
8
|
constructor() {
|
|
8
9
|
this.text = input.required({ alias: 'ndwTooltip' });
|
|
9
10
|
this.elementRef = inject(ElementRef);
|
|
10
11
|
this.overlay = inject(Overlay);
|
|
12
|
+
this.ariaDescriber = inject(AriaDescriber);
|
|
13
|
+
this.overlayRef = null;
|
|
11
14
|
}
|
|
12
15
|
ngOnInit() {
|
|
13
|
-
const positionStrategy = this.
|
|
16
|
+
const positionStrategy = this.getFlexibleConnectedPositionStrategy();
|
|
17
|
+
this.overlayRef = this.overlay.create({ positionStrategy });
|
|
18
|
+
this.updateAriaDescription();
|
|
19
|
+
}
|
|
20
|
+
ngOnDestroy() {
|
|
21
|
+
this.hide();
|
|
22
|
+
this.overlayRef?.dispose();
|
|
23
|
+
}
|
|
24
|
+
show() {
|
|
25
|
+
if (!this.text().length || this.overlayRef === null) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const portal = new ComponentPortal(TooltipComponent);
|
|
29
|
+
const tooltipRef = this.overlayRef.attach(portal);
|
|
30
|
+
tooltipRef.instance.text = this.text;
|
|
31
|
+
}
|
|
32
|
+
hide() {
|
|
33
|
+
this.overlayRef?.detach();
|
|
34
|
+
}
|
|
35
|
+
hideOnEscape() {
|
|
36
|
+
this.hide();
|
|
37
|
+
}
|
|
38
|
+
updateAriaDescription() {
|
|
39
|
+
const element = this.elementRef.nativeElement;
|
|
40
|
+
this.ariaDescriber.describe(element, this.text());
|
|
41
|
+
}
|
|
42
|
+
getFlexibleConnectedPositionStrategy() {
|
|
43
|
+
return this.overlay
|
|
14
44
|
.position()
|
|
15
45
|
.flexibleConnectedTo(this.elementRef.nativeElement)
|
|
16
46
|
.withPositions([
|
|
@@ -31,30 +61,22 @@ export class TooltipDirective {
|
|
|
31
61
|
overlayY: 'top',
|
|
32
62
|
},
|
|
33
63
|
]);
|
|
34
|
-
this.overlayRef = this.overlay.create({ positionStrategy });
|
|
35
|
-
}
|
|
36
|
-
ngOnDestroy() {
|
|
37
|
-
this.hide();
|
|
38
|
-
}
|
|
39
|
-
show() {
|
|
40
|
-
if (!this.text().length) {
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
const portal = new ComponentPortal(TooltipComponent);
|
|
44
|
-
const tooltipRef = this.overlayRef.attach(portal);
|
|
45
|
-
tooltipRef.instance.text = this.text;
|
|
46
|
-
}
|
|
47
|
-
hide() {
|
|
48
|
-
this.overlayRef.detach();
|
|
49
64
|
}
|
|
50
65
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TooltipDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
51
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.3", type: TooltipDirective, isStandalone: true, selector: "[ndwTooltip]", inputs: { text: { classPropertyName: "text", publicName: "ndwTooltip", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "mouseenter": "show()", "mouseleave": "hide()" } }, ngImport: i0 }); }
|
|
66
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.3", type: TooltipDirective, isStandalone: true, selector: "[ndwTooltip]", inputs: { text: { classPropertyName: "text", publicName: "ndwTooltip", isSignal: true, isRequired: true, transformFunction: null } }, host: { attributes: { "tabindex": "0", "aria-hidden": "false" }, listeners: { "focus": "show()", "blur": "hide()", "keydown.escape": "hide()", "mouseenter": "show()", "mouseleave": "hide()", "document:keydown.escape": "hideOnEscape()" } }, ngImport: i0 }); }
|
|
52
67
|
}
|
|
53
68
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TooltipDirective, decorators: [{
|
|
54
69
|
type: Directive,
|
|
55
70
|
args: [{
|
|
56
71
|
selector: '[ndwTooltip]',
|
|
57
72
|
standalone: true,
|
|
73
|
+
host: {
|
|
74
|
+
tabindex: '0',
|
|
75
|
+
'aria-hidden': 'false',
|
|
76
|
+
'(focus)': 'show()',
|
|
77
|
+
'(blur)': 'hide()',
|
|
78
|
+
'(keydown.escape)': 'hide()',
|
|
79
|
+
},
|
|
58
80
|
}]
|
|
59
81
|
}], propDecorators: { show: [{
|
|
60
82
|
type: HostListener,
|
|
@@ -62,5 +84,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
62
84
|
}], hide: [{
|
|
63
85
|
type: HostListener,
|
|
64
86
|
args: ['mouseleave']
|
|
87
|
+
}], hideOnEscape: [{
|
|
88
|
+
type: HostListener,
|
|
89
|
+
args: ['document:keydown.escape']
|
|
65
90
|
}] } });
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZHcvc3JjL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFDLE9BQU8sRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzlGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBR1osTUFBTSxFQUNOLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBYWxELE1BQU0sT0FBTyxnQkFBZ0I7SUFYN0I7UUFZUyxTQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBUyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBRTdDLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsWUFBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUUvQyxlQUFVLEdBQXNCLElBQUksQ0FBQztLQThEOUM7SUE1RFEsUUFBUTtRQUNiLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLG9DQUFvQyxFQUFFLENBQUM7UUFDckUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFHUyxJQUFJO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNwRCxPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLElBQUksZUFBZSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDckQsTUFBTSxVQUFVLEdBQW1DLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xGLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDdkMsQ0FBQztJQUdTLElBQUk7UUFDWixJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFHUyxZQUFZO1FBQ3BCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFTyxxQkFBcUI7UUFDM0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFDOUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTyxvQ0FBb0M7UUFDMUMsT0FBTyxJQUFJLENBQUMsT0FBTzthQUNoQixRQUFRLEVBQUU7YUFDVixtQkFBbUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQzthQUNsRCxhQUFhLENBQUM7WUFDYjtnQkFDRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUMzRCxPQUFPLEVBQUUsQ0FBQyxDQUFDO2dCQUNYLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixPQUFPLEVBQUUsS0FBSztnQkFDZCxRQUFRLEVBQUUsT0FBTztnQkFDakIsUUFBUSxFQUFFLFFBQVE7YUFDbkI7WUFDRDtnQkFDRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUMzRCxPQUFPLEVBQUUsQ0FBQztnQkFDVixPQUFPLEVBQUUsT0FBTztnQkFDaEIsT0FBTyxFQUFFLFFBQVE7Z0JBQ2pCLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixRQUFRLEVBQUUsS0FBSzthQUNoQjtTQUNGLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBcEVVLGdCQUFnQjtrR0FBaEIsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQVg1QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO29CQUN4QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNKLFFBQVEsRUFBRSxHQUFHO3dCQUNiLGFBQWEsRUFBRSxPQUFPO3dCQUN0QixTQUFTLEVBQUUsUUFBUTt3QkFDbkIsUUFBUSxFQUFFLFFBQVE7d0JBQ2xCLGtCQUFrQixFQUFFLFFBQVE7cUJBQzdCO2lCQUNGOzhCQXNCVyxJQUFJO3NCQURiLFlBQVk7dUJBQUMsWUFBWTtnQkFZaEIsSUFBSTtzQkFEYixZQUFZO3VCQUFDLFlBQVk7Z0JBTWhCLFlBQVk7c0JBRHJCLFlBQVk7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5LCBPdmVybGF5LCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBDb21wb25lbnRSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFRvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuL3Rvb2x0aXAuY29tcG9uZW50JztcbmltcG9ydCB7IEFyaWFEZXNjcmliZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tuZHdUb29sdGlwXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3Q6IHtcbiAgICB0YWJpbmRleDogJzAnLFxuICAgICdhcmlhLWhpZGRlbic6ICdmYWxzZScsXG4gICAgJyhmb2N1cyknOiAnc2hvdygpJyxcbiAgICAnKGJsdXIpJzogJ2hpZGUoKScsXG4gICAgJyhrZXlkb3duLmVzY2FwZSknOiAnaGlkZSgpJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVG9vbHRpcERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcbiAgcHVibGljIHRleHQgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KHsgYWxpYXM6ICduZHdUb29sdGlwJyB9KTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3ZlcmxheSA9IGluamVjdChPdmVybGF5KTtcbiAgcHJpdmF0ZSByZWFkb25seSBhcmlhRGVzY3JpYmVyID0gaW5qZWN0KEFyaWFEZXNjcmliZXIpO1xuXG4gIHByaXZhdGUgb3ZlcmxheVJlZjogT3ZlcmxheVJlZiB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5nZXRGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3koKTtcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHsgcG9zaXRpb25TdHJhdGVneSB9KTtcbiAgICB0aGlzLnVwZGF0ZUFyaWFEZXNjcmlwdGlvbigpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuaGlkZSgpO1xuICAgIHRoaXMub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpXG4gIHByb3RlY3RlZCBzaG93KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy50ZXh0KCkubGVuZ3RoIHx8IHRoaXMub3ZlcmxheVJlZiA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoVG9vbHRpcENvbXBvbmVudCk7XG4gICAgY29uc3QgdG9vbHRpcFJlZjogQ29tcG9uZW50UmVmPFRvb2x0aXBDb21wb25lbnQ+ID0gdGhpcy5vdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpO1xuICAgIHRvb2x0aXBSZWYuaW5zdGFuY2UudGV4dCA9IHRoaXMudGV4dDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKVxuICBwcm90ZWN0ZWQgaGlkZSgpOiB2b2lkIHtcbiAgICB0aGlzLm92ZXJsYXlSZWY/LmRldGFjaCgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5lc2NhcGUnKVxuICBwcm90ZWN0ZWQgaGlkZU9uRXNjYXBlKCk6IHZvaWQge1xuICAgIHRoaXMuaGlkZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVBcmlhRGVzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIHRoaXMuYXJpYURlc2NyaWJlci5kZXNjcmliZShlbGVtZW50LCB0aGlzLnRleHQoKSk7XG4gIH1cblxuICBwcml2YXRlIGdldEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSgpOiBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3kge1xuICAgIHJldHVybiB0aGlzLm92ZXJsYXlcbiAgICAgIC5wb3NpdGlvbigpXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudClcbiAgICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgICAge1xuICAgICAgICAgIG9mZnNldFg6IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIC8gMiAtIDE2LFxuICAgICAgICAgIG9mZnNldFk6IC04LFxuICAgICAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgb2Zmc2V0WDogdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggLyAyIC0gMTYsXG4gICAgICAgICAgb2Zmc2V0WTogOCxcbiAgICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxuICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgfSxcbiAgICAgIF0pO1xuICB9XG59XG4iXX0=
|