@sebgroup/green-angular 4.6.1 → 4.6.3
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/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +9 -9
- package/esm2022/src/v-angular/button/button.component.mjs +5 -5
- package/esm2022/src/v-angular/character-countdown/character-countdown.directive.mjs +5 -5
- package/esm2022/src/v-angular/core/core.globals.mjs +3 -3
- package/esm2022/src/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +4 -4
- package/esm2022/src/v-angular/dropdown/typeahead/index.mjs +4 -1
- package/esm2022/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +5 -5
- package/esm2022/src/v-angular/dropdown/typeahead/typeahead.directive.mjs +177 -0
- package/esm2022/src/v-angular/info-circle/info-circle.component.mjs +3 -3
- package/esm2022/src/v-angular/input/input.component.mjs +7 -7
- package/esm2022/src/v-angular/input-mask/input-mask-format.pipe.mjs +5 -4
- package/esm2022/src/v-angular/input-mask/input-mask.directive.mjs +8 -8
- package/esm2022/src/v-angular/modal/dialog/dialog.component.mjs +16 -16
- package/esm2022/src/v-angular/modal/fold-out/fold-out.directive.mjs +3 -3
- package/esm2022/src/v-angular/modal/modal.globals.mjs +3 -3
- package/esm2022/src/v-angular/modal/slide-out/slide-out.component.mjs +15 -15
- package/esm2022/src/v-angular/textarea/textarea.component.mjs +4 -3
- package/esm2022/src/v-angular/textarea/textarea.module.mjs +5 -4
- package/esm2022/src/v-angular/tooltip/tooltip.directive.mjs +13 -13
- package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +287 -0
- package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.module.mjs +17 -0
- package/esm2022/v-angular/base-control-value-accessor/index.mjs +3 -0
- package/esm2022/v-angular/breadcrumbs/breadcrumbs.component.mjs +25 -0
- package/esm2022/v-angular/breadcrumbs/breadcrumbs.module.mjs +20 -0
- package/esm2022/v-angular/breadcrumbs/index.mjs +3 -0
- package/esm2022/v-angular/button/button.component.mjs +108 -0
- package/esm2022/v-angular/button/button.module.mjs +20 -0
- package/esm2022/v-angular/button/index.mjs +3 -0
- package/esm2022/v-angular/card/card.component.mjs +11 -0
- package/esm2022/v-angular/card/card.module.mjs +18 -0
- package/esm2022/v-angular/card/index.mjs +3 -0
- package/esm2022/v-angular/character-countdown/character-countdown.directive.mjs +51 -0
- package/esm2022/v-angular/character-countdown/character-countdown.module.mjs +18 -0
- package/esm2022/v-angular/character-countdown/index.mjs +3 -0
- package/esm2022/v-angular/checkbox/checkbox.component.mjs +72 -0
- package/esm2022/v-angular/checkbox/checkbox.module.mjs +19 -0
- package/esm2022/v-angular/checkbox/index.mjs +3 -0
- package/esm2022/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +256 -0
- package/esm2022/v-angular/dropdown/dropdown-list/index.mjs +2 -0
- package/esm2022/v-angular/dropdown/dropdown.component.mjs +239 -0
- package/esm2022/v-angular/dropdown/dropdown.module.mjs +22 -0
- package/esm2022/v-angular/dropdown/index.mjs +6 -0
- package/esm2022/v-angular/dropdown/typeahead/index.mjs +6 -0
- package/esm2022/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +98 -0
- package/esm2022/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.mjs +85 -0
- package/esm2022/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +132 -0
- package/esm2022/v-angular/dropdown/typeahead/typeahead.directive.mjs +177 -0
- package/esm2022/v-angular/dropdown/typeahead/typeahead.module.mjs +33 -0
- package/esm2022/v-angular/i18n/i18n.json +12 -0
- package/esm2022/v-angular/i18n/i18n.module.mjs +83 -0
- package/esm2022/v-angular/i18n/i18n.test.module.mjs +89 -0
- package/esm2022/v-angular/i18n/index.mjs +3 -0
- package/esm2022/v-angular/index.mjs +18 -0
- package/esm2022/v-angular/info-circle/index.mjs +3 -0
- package/esm2022/v-angular/info-circle/info-circle.component.mjs +28 -0
- package/esm2022/v-angular/info-circle/info-circle.module.mjs +21 -0
- package/esm2022/v-angular/input/index.mjs +3 -0
- package/esm2022/v-angular/input/input.component.mjs +221 -0
- package/esm2022/v-angular/input/input.module.mjs +32 -0
- package/esm2022/v-angular/input-mask/config.mjs +9 -0
- package/esm2022/v-angular/input-mask/constants.mjs +2 -0
- package/esm2022/v-angular/input-mask/index.mjs +6 -0
- package/esm2022/v-angular/input-mask/input-mask-format.pipe.mjs +21 -0
- package/esm2022/v-angular/input-mask/input-mask.directive.mjs +165 -0
- package/esm2022/v-angular/input-mask/input-mask.module.mjs +35 -0
- package/esm2022/v-angular/input-mask/input-mask.types.mjs +2 -0
- package/esm2022/v-angular/modal/dialog/dialog.component.mjs +190 -0
- package/esm2022/v-angular/modal/fold-out/fold-out.component.mjs +56 -0
- package/esm2022/v-angular/modal/fold-out/fold-out.directive.mjs +19 -0
- package/esm2022/v-angular/modal/index.mjs +6 -0
- package/esm2022/v-angular/modal/modal.globals.mjs +20 -0
- package/esm2022/v-angular/modal/modal.module.mjs +40 -0
- package/esm2022/v-angular/modal/modal.types.mjs +2 -0
- package/esm2022/v-angular/modal/slide-out/slide-out.component.mjs +229 -0
- package/esm2022/v-angular/radio/index.mjs +3 -0
- package/esm2022/v-angular/radio/radio.component.mjs +130 -0
- package/esm2022/v-angular/radio/radio.module.mjs +20 -0
- package/esm2022/v-angular/sebgroup-green-angular-v-angular.mjs +5 -0
- package/esm2022/v-angular/textarea/index.mjs +3 -0
- package/esm2022/v-angular/textarea/textarea.component.mjs +102 -0
- package/esm2022/v-angular/textarea/textarea.module.mjs +19 -0
- package/esm2022/v-angular/tooltip/index.mjs +3 -0
- package/esm2022/v-angular/tooltip/tooltip.directive.mjs +273 -0
- package/esm2022/v-angular/tooltip/tooltip.module.mjs +18 -0
- package/esm2022/v-angular/v-angular.module.mjs +80 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs +8 -8
- package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs +4 -4
- package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs +4 -4
- package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs +2 -2
- package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs +179 -10
- package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs +2 -2
- package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs +11 -10
- package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs +6 -6
- package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs +33 -33
- package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs +7 -5
- package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs +12 -12
- package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-v-angular.mjs +3408 -0
- package/fesm2022/sebgroup-green-angular-v-angular.mjs.map +1 -0
- package/package.json +8 -2
- package/src/v-angular/base-control-value-accessor/base-control-value-accessor.component.d.ts +3 -3
- package/src/v-angular/button/button.component.d.ts +2 -2
- package/src/v-angular/character-countdown/character-countdown.directive.d.ts +1 -1
- package/src/v-angular/core/core.globals.d.ts +1 -1
- package/src/v-angular/dropdown/typeahead/index.d.ts +3 -0
- package/src/v-angular/dropdown/typeahead/typeahead.directive.d.ts +76 -0
- package/src/v-angular/input/input.component.d.ts +3 -3
- package/src/v-angular/input-mask/input-mask-format.pipe.d.ts +1 -1
- package/src/v-angular/input-mask/input-mask.directive.d.ts +2 -2
- package/src/v-angular/modal/dialog/dialog.component.d.ts +5 -5
- package/src/v-angular/modal/fold-out/fold-out.directive.d.ts +1 -1
- package/src/v-angular/modal/modal.globals.d.ts +1 -1
- package/src/v-angular/modal/slide-out/slide-out.component.d.ts +6 -6
- package/src/v-angular/textarea/textarea.module.d.ts +2 -1
- package/src/v-angular/tooltip/tooltip.directive.d.ts +4 -4
- package/v-angular/base-control-value-accessor/base-control-value-accessor.component.d.ts +124 -0
- package/v-angular/base-control-value-accessor/base-control-value-accessor.module.d.ts +7 -0
- package/v-angular/base-control-value-accessor/index.d.ts +2 -0
- package/v-angular/breadcrumbs/breadcrumbs.component.d.ts +18 -0
- package/v-angular/breadcrumbs/breadcrumbs.module.d.ts +10 -0
- package/v-angular/breadcrumbs/index.d.ts +2 -0
- package/v-angular/button/button.component.d.ts +62 -0
- package/v-angular/button/button.module.d.ts +10 -0
- package/v-angular/button/index.d.ts +2 -0
- package/v-angular/card/card.component.d.ts +5 -0
- package/v-angular/card/card.module.d.ts +8 -0
- package/v-angular/card/index.d.ts +2 -0
- package/v-angular/character-countdown/character-countdown.directive.d.ts +17 -0
- package/v-angular/character-countdown/character-countdown.module.d.ts +8 -0
- package/v-angular/character-countdown/index.d.ts +2 -0
- package/v-angular/checkbox/checkbox.component.d.ts +27 -0
- package/v-angular/checkbox/checkbox.module.d.ts +9 -0
- package/v-angular/checkbox/index.d.ts +2 -0
- package/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +89 -0
- package/v-angular/dropdown/dropdown-list/index.d.ts +1 -0
- package/v-angular/dropdown/dropdown.component.d.ts +99 -0
- package/v-angular/dropdown/dropdown.module.d.ts +12 -0
- package/v-angular/dropdown/index.d.ts +5 -0
- package/v-angular/dropdown/typeahead/index.d.ts +5 -0
- package/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.d.ts +34 -0
- package/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.d.ts +34 -0
- package/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.d.ts +59 -0
- package/v-angular/dropdown/typeahead/typeahead.directive.d.ts +76 -0
- package/v-angular/dropdown/typeahead/typeahead.module.d.ts +11 -0
- package/v-angular/i18n/i18n.module.d.ts +15 -0
- package/v-angular/i18n/i18n.test.module.d.ts +27 -0
- package/v-angular/i18n/index.d.ts +2 -0
- package/v-angular/index.d.ts +17 -0
- package/v-angular/info-circle/index.d.ts +2 -0
- package/v-angular/info-circle/info-circle.component.d.ts +16 -0
- package/v-angular/info-circle/info-circle.module.d.ts +10 -0
- package/v-angular/input/index.d.ts +2 -0
- package/v-angular/input/input.component.d.ts +90 -0
- package/v-angular/input/input.module.d.ts +11 -0
- package/v-angular/input-mask/config.d.ts +6 -0
- package/v-angular/input-mask/constants.d.ts +2 -0
- package/v-angular/input-mask/index.d.ts +5 -0
- package/v-angular/input-mask/input-mask-format.pipe.d.ts +8 -0
- package/v-angular/input-mask/input-mask.directive.d.ts +39 -0
- package/v-angular/input-mask/input-mask.module.d.ts +11 -0
- package/v-angular/input-mask/input-mask.types.d.ts +20 -0
- package/v-angular/modal/dialog/dialog.component.d.ts +55 -0
- package/v-angular/modal/fold-out/fold-out.component.d.ts +24 -0
- package/v-angular/modal/fold-out/fold-out.directive.d.ts +6 -0
- package/v-angular/modal/index.d.ts +5 -0
- package/v-angular/modal/modal.globals.d.ts +13 -0
- package/v-angular/modal/modal.module.d.ts +13 -0
- package/v-angular/modal/modal.types.d.ts +5 -0
- package/v-angular/modal/slide-out/slide-out.component.d.ts +76 -0
- package/v-angular/radio/index.d.ts +2 -0
- package/v-angular/radio/radio.component.d.ts +48 -0
- package/v-angular/radio/radio.module.d.ts +9 -0
- package/v-angular/textarea/index.d.ts +2 -0
- package/v-angular/textarea/textarea.component.d.ts +44 -0
- package/v-angular/textarea/textarea.module.d.ts +9 -0
- package/v-angular/tooltip/index.d.ts +2 -0
- package/v-angular/tooltip/tooltip.directive.d.ts +106 -0
- package/v-angular/tooltip/tooltip.module.d.ts +8 -0
- package/v-angular/v-angular.module.d.ts +23 -0
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { NgvTextareaComponent } from './textarea.component';
|
|
4
|
+
import { NgvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
export class NgvTextareaModule {
|
|
6
7
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvTextareaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: NgvTextareaModule, declarations: [NgvTextareaComponent], imports: [CommonModule], exports: [NgvTextareaComponent] }); }
|
|
8
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvTextareaModule, imports: [CommonModule] }); }
|
|
8
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: NgvTextareaModule, declarations: [NgvTextareaComponent], imports: [CommonModule, NgvI18nModule], exports: [NgvTextareaComponent] }); }
|
|
9
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvTextareaModule, imports: [CommonModule, NgvI18nModule] }); }
|
|
9
10
|
}
|
|
10
11
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvTextareaModule, decorators: [{
|
|
11
12
|
type: NgModule,
|
|
12
13
|
args: [{
|
|
13
14
|
declarations: [NgvTextareaComponent],
|
|
14
|
-
imports: [CommonModule],
|
|
15
|
+
imports: [CommonModule, NgvI18nModule],
|
|
15
16
|
exports: [NgvTextareaComponent],
|
|
16
17
|
}]
|
|
17
18
|
}] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvdGV4dGFyZWEvdGV4dGFyZWEubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRTlDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQTs7QUFPMUUsTUFBTSxPQUFPLGlCQUFpQjsrR0FBakIsaUJBQWlCO2dIQUFqQixpQkFBaUIsaUJBSmIsb0JBQW9CLGFBQ3pCLFlBQVksRUFBRSxhQUFhLGFBQzNCLG9CQUFvQjtnSEFFbkIsaUJBQWlCLFlBSGxCLFlBQVksRUFBRSxhQUFhOzs0RkFHMUIsaUJBQWlCO2tCQUw3QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLG9CQUFvQixDQUFDO29CQUNwQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDO29CQUN0QyxPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztpQkFDaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5cbmltcG9ydCB7IE5ndlRleHRhcmVhQ29tcG9uZW50IH0gZnJvbSAnLi90ZXh0YXJlYS5jb21wb25lbnQnXG5pbXBvcnQgeyBOZ3ZJMThuTW9kdWxlIH0gZnJvbSAnQHNlYmdyb3VwL2dyZWVuLWFuZ3VsYXIvc3JjL3YtYW5ndWxhci9pMThuJ1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtOZ3ZUZXh0YXJlYUNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE5ndkkxOG5Nb2R1bGVdLFxuICBleHBvcnRzOiBbTmd2VGV4dGFyZWFDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3ZUZXh0YXJlYU1vZHVsZSB7fVxuIl19
|
|
@@ -31,9 +31,9 @@ export class NgvTooltipDirective {
|
|
|
31
31
|
/** Numeric max-width for tooltip. */
|
|
32
32
|
this.maxWidth = 343;
|
|
33
33
|
/** Emits a show event triggered changing visibility state of the tooltip. */
|
|
34
|
-
this.
|
|
34
|
+
this.nggvShow = new EventEmitter();
|
|
35
35
|
/** Emits a hide event triggered changing visibility state of the tooltip. */
|
|
36
|
-
this.
|
|
36
|
+
this.nggvHide = new EventEmitter();
|
|
37
37
|
/** @internal */
|
|
38
38
|
this.timeout = 0;
|
|
39
39
|
this.anchorElement = this.anchorElementRef.nativeElement;
|
|
@@ -44,7 +44,7 @@ export class NgvTooltipDirective {
|
|
|
44
44
|
setTimeout(() => (this.shown ? this.show(true) : this.hide(true)));
|
|
45
45
|
}
|
|
46
46
|
ngOnChanges(changes) {
|
|
47
|
-
if (NgvTooltipDirective.shouldUpdate(changes.
|
|
47
|
+
if (NgvTooltipDirective.shouldUpdate(changes.nggvTooltip) ||
|
|
48
48
|
NgvTooltipDirective.shouldUpdate(changes.placement) ||
|
|
49
49
|
NgvTooltipDirective.shouldUpdate(changes.thook)) {
|
|
50
50
|
this.shown ? this.show(true) : this.hide(true);
|
|
@@ -82,18 +82,18 @@ export class NgvTooltipDirective {
|
|
|
82
82
|
*/
|
|
83
83
|
show(recreate = false) {
|
|
84
84
|
// Require tooltip text to create
|
|
85
|
-
if (!this.
|
|
85
|
+
if (!this.nggvTooltip || this.nggvTooltip.length === 0)
|
|
86
86
|
return;
|
|
87
87
|
if (recreate || !this.tooltipElement) {
|
|
88
88
|
this.hide(true);
|
|
89
|
-
this.create(this.
|
|
89
|
+
this.create(this.nggvTooltip);
|
|
90
90
|
}
|
|
91
91
|
else {
|
|
92
92
|
this.renderer.appendChild(this.parentElement, this.tooltipElement);
|
|
93
93
|
}
|
|
94
94
|
this.updatePosition();
|
|
95
95
|
this.shown = true;
|
|
96
|
-
this.
|
|
96
|
+
this.nggvShow.emit(this.tooltipElement);
|
|
97
97
|
}
|
|
98
98
|
/**
|
|
99
99
|
* Sets the visibility state of the tooltip to false and destroys an existing tooltip if `destroy` is set.
|
|
@@ -107,7 +107,7 @@ export class NgvTooltipDirective {
|
|
|
107
107
|
if (destroy)
|
|
108
108
|
this.destroy();
|
|
109
109
|
this.shown = false;
|
|
110
|
-
this.
|
|
110
|
+
this.nggvHide.emit(this.tooltipElement);
|
|
111
111
|
}
|
|
112
112
|
/**
|
|
113
113
|
* @internal
|
|
@@ -235,14 +235,14 @@ export class NgvTooltipDirective {
|
|
|
235
235
|
return `${remValue}rem`;
|
|
236
236
|
}
|
|
237
237
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvTooltipDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
238
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: NgvTooltipDirective, selector: "[
|
|
238
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: NgvTooltipDirective, selector: "[nggvTooltip]", inputs: { nggvTooltip: "nggvTooltip", thook: "thook", placement: "placement", shown: "shown", offset: "offset", resizeThrottle: "resizeThrottle", maxWidth: "maxWidth" }, outputs: { nggvShow: "nggvShow", nggvHide: "nggvHide" }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()", "window:resize": "resize()" } }, usesOnChanges: true, ngImport: i0 }); }
|
|
239
239
|
}
|
|
240
240
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvTooltipDirective, decorators: [{
|
|
241
241
|
type: Directive,
|
|
242
242
|
args: [{
|
|
243
|
-
selector: '[
|
|
243
|
+
selector: '[nggvTooltip]',
|
|
244
244
|
}]
|
|
245
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: {
|
|
245
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { nggvTooltip: [{
|
|
246
246
|
type: Input
|
|
247
247
|
}], thook: [{
|
|
248
248
|
type: Input
|
|
@@ -256,9 +256,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
256
256
|
type: Input
|
|
257
257
|
}], maxWidth: [{
|
|
258
258
|
type: Input
|
|
259
|
-
}],
|
|
259
|
+
}], nggvShow: [{
|
|
260
260
|
type: Output
|
|
261
|
-
}],
|
|
261
|
+
}], nggvHide: [{
|
|
262
262
|
type: Output
|
|
263
263
|
}], onMouseEnter: [{
|
|
264
264
|
type: HostListener,
|
|
@@ -270,4 +270,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
270
270
|
type: HostListener,
|
|
271
271
|
args: ['window:resize']
|
|
272
272
|
}] } });
|
|
273
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEdBR1YsTUFBTSxlQUFlLENBQUE7O0FBV3RCOzs7OztHQUtHO0FBSUgsTUFBTSxPQUFPLG1CQUFtQjtJQXdDOUIsNERBQTREO0lBQzVELE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBb0I7UUFDdEMsT0FBTyxDQUNMLE1BQU07WUFDTixDQUFDLE1BQU0sQ0FBQyxXQUFXO1lBQ25CLE1BQU0sQ0FBQyxhQUFhLEtBQUssTUFBTSxDQUFDLFlBQVksQ0FDN0MsQ0FBQTtJQUNILENBQUM7SUFFRCxZQUNVLGdCQUE0QixFQUM1QixRQUFtQjtRQURuQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQVk7UUFDNUIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQTlDN0Isb0ZBQW9GO1FBQzNFLFVBQUssR0FBRyxTQUFTLENBQUE7UUFDMUI7O1dBRUc7UUFDTSxjQUFTLEdBQWMsS0FBSyxDQUFBO1FBQ3JDLDZFQUE2RTtRQUNwRSxVQUFLLEdBQUcsS0FBSyxDQUFBO1FBQ3RCLDhEQUE4RDtRQUNyRCxXQUFNLEdBQUcsRUFBRSxDQUFBO1FBQ3BCLGlGQUFpRjtRQUN4RSxtQkFBYyxHQUFHLEVBQUUsQ0FBQTtRQUM1QixxQ0FBcUM7UUFDNUIsYUFBUSxHQUFHLEdBQUcsQ0FBQTtRQUV2Qiw2RUFBNkU7UUFDbkUsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFlLENBQUE7UUFDbkQsNkVBQTZFO1FBQ25FLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFBO1FBRW5ELGdCQUFnQjtRQUNOLFlBQU8sR0FBRyxDQUFDLENBQUE7UUEyQm5CLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQTtRQUN4RCxJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUE7SUFDcEMsQ0FBQztJQUVELGVBQWU7UUFDYix1RUFBdUU7UUFDdkUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDcEUsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUNFLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1lBQ3BELG1CQUFtQixDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1lBQ25ELG1CQUFtQixDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQy9DO1lBQ0EsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtTQUMvQztRQUVELElBQUksbUJBQW1CLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNuRCxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQTtTQUN2QztRQUVELElBQUksbUJBQW1CLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNwRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUE7U0FDdEI7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDakIsQ0FBQztJQUVELGdCQUFnQjtJQUVoQixZQUFZO1FBQ1YsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFBO0lBQ2IsQ0FBQztJQUVELGdCQUFnQjtJQUVoQixZQUFZO1FBQ1YsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFBO0lBQ2IsQ0FBQztJQUVELGdCQUFnQjtJQUVoQixNQUFNO1FBQ0osSUFBSSxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU07UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNwQyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQTtZQUNoQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUE7UUFDdkIsQ0FBQyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUN6QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLO1FBQ25CLGlDQUFpQztRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTTtRQUU1RCxJQUFJLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1NBQzdCO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQTtTQUNuRTtRQUVELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQTtRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQTtRQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDeEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSztRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWM7WUFBRSxPQUFNO1FBQ2hDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUNsRCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQTtRQUNwRSxJQUFJLE9BQU87WUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUE7UUFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7UUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQ3hDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLElBQVk7UUFDakIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN4RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLGFBQWEsQ0FBQyxDQUFBO1FBQzFELElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN6RSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQTtRQUNuRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUM5RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLGVBQWUsRUFBRSxRQUFRLENBQUMsQ0FBQTtRQUN0RSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQTtRQUNwRSxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ3BELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixDQUFDLENBQUE7UUFDMUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQ3ZCLElBQUksQ0FBQyxjQUFjLEVBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUMvQixDQUFBO1FBRUQscUJBQXFCO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBRWxFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDdEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQ3BCLElBQUksQ0FBQyxZQUFZLEVBQ2pCLHNCQUFzQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQ3ZDLENBQUE7UUFFRCwrQkFBK0I7UUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDbkUsQ0FBQztJQUVEOzs7T0FHRztJQUNILE9BQU87UUFDTCxJQUFJLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQTtRQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQTtJQUMvQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsY0FBYztRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVk7WUFBRSxPQUFNO1FBQ3RELE1BQU0sU0FBUyxHQUNiLE1BQU0sQ0FBQyxXQUFXO1lBQ2xCLFFBQVEsQ0FBQyxlQUFlLENBQUMsU0FBUztZQUNsQyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVM7WUFDNUIsQ0FBQyxDQUFBO1FBQ0gsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFBO1FBQzdELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMscUJBQXFCLEVBQUUsQ0FBQTtRQUMvRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLHFCQUFxQixFQUFFLENBQUE7UUFFM0QsUUFBUSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3RCLEtBQUssS0FBSztnQkFDUixJQUFJLENBQUMsYUFBYSxDQUNoQixJQUFJLEVBQ0osU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLENBQUMsS0FBSyxFQUNqQixXQUFXLENBQUMsTUFBTSxFQUNsQixTQUFTLENBQUMsS0FBSyxDQUNoQixDQUFBO2dCQUNELE1BQUs7WUFFUCxLQUFLLFFBQVE7Z0JBQ1gsSUFBSSxDQUFDLGFBQWEsQ0FDaEIsS0FBSyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxDQUFDLEtBQUssRUFDakIsV0FBVyxDQUFDLE1BQU0sRUFDbEIsU0FBUyxDQUFDLEtBQUssQ0FDaEIsQ0FBQTtnQkFDRCxNQUFLO1lBRVAsS0FBSyxNQUFNO2dCQUNULElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFBO2dCQUNyRSxNQUFLO1lBRVAsS0FBSyxPQUFPO2dCQUNWLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFBO2dCQUN0RSxNQUFLO1lBRVA7Z0JBQ0UsT0FBTTtTQUNUO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILGFBQWEsQ0FDWCxLQUFjLEVBQ2QsU0FBaUIsRUFDakIsTUFBZSxFQUNmLFlBQW9CLEVBQ3BCLGFBQXFCLEVBQ3JCLFVBQWtCO1FBRWxCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFBO1FBQzVDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUE7UUFDakQsTUFBTSxPQUFPLEdBQWEsRUFBRSxDQUFBO1FBQzVCLE1BQU0sS0FBSyxHQUFhLEVBQUUsQ0FBQTtRQUUxQixJQUFJLEtBQUs7WUFDUCxPQUFPLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEdBQUcsYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFBOztZQUMvRCxPQUFPLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUE7UUFFMUQsSUFBSSxVQUFVLEdBQUcsS0FBSyxHQUFHLENBQUMsRUFBRTtZQUMxQixPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFVBQVUsR0FBRyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUE7WUFDekQsS0FBSyxDQUFDLElBQUksR0FBRyxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQTtTQUN2QzthQUFNO1lBQ0wsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxVQUFVLEdBQUcsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDcEUsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFBO1NBQzlEO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDL0IsQ0FBQztJQUVEOzs7T0FHRztJQUNILGVBQWUsQ0FDYixNQUFlLEVBQ2YsU0FBaUIsRUFDakIsTUFBZSxFQUNmLGFBQXFCO1FBRXJCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFBO1FBQzVDLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUE7UUFDeEUsTUFBTSxPQUFPLEdBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQTtRQUNqQyxNQUFNLEtBQUssR0FBYSxFQUFFLEdBQUcsRUFBRSxhQUFhLEdBQUcsQ0FBQyxFQUFFLENBQUE7UUFFbEQsSUFBSSxNQUFNO1lBQUUsT0FBTyxDQUFDLEtBQUssR0FBRyxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFBOztZQUN4RCxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQTtRQUU5QyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUMvQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxDQUFDLE9BQWlCLEVBQUUsS0FBZTtRQUN6QyxVQUFVO1FBQ1YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQ2hELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUE7UUFDN0QsQ0FBQyxDQUFDLENBQUE7UUFFRixRQUFRO1FBQ1IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQzlDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUE7UUFDM0QsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRU8sT0FBTyxDQUFDLEtBQWE7UUFDM0IsTUFBTSxVQUFVLEdBQUcsTUFBTTtZQUN2QixFQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDdEMsRUFBRSxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUNqQyxNQUFNLG1CQUFtQixHQUFHLFVBQVUsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDdkQsTUFBTSxRQUFRLEdBQUcsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtRQUNuRSxNQUFNLFFBQVEsR0FBRyxLQUFLLEdBQUcsUUFBUSxDQUFBO1FBQ2pDLE9BQU8sR0FBRyxRQUFRLEtBQUssQ0FBQTtJQUN6QixDQUFDOytHQXZUVSxtQkFBbUI7bUdBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFIL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztpQkFDekI7eUhBS1UsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBSUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFHSSxPQUFPO3NCQUFoQixNQUFNO2dCQUVHLE9BQU87c0JBQWhCLE1BQU07Z0JBK0RQLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxZQUFZO2dCQU8xQixZQUFZO3NCQURYLFlBQVk7dUJBQUMsWUFBWTtnQkFPMUIsTUFBTTtzQkFETCxZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBTaW1wbGVDaGFuZ2UsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmV4cG9ydCB0eXBlIFBsYWNlbWVudCA9ICd0b3AnIHwgJ3JpZ2h0JyB8ICdib3R0b20nIHwgJ2xlZnQnXG5cbnR5cGUgUG9zaXRpb24gPSB7XG4gIHRvcD86IG51bWJlclxuICByaWdodD86IG51bWJlclxuICBib3R0b20/OiBudW1iZXJcbiAgbGVmdD86IG51bWJlclxufVxuXG4vKipcbiAqIEEgdG9vbHRpcCBpcyBhIHRleHQgbGFiZWwgdGhhdCBhY3RzIGFzIGEgaGVscGVyIHRvIGEgc3BlY2lmaWMgaXRlbS5cbiAqIFJlY29tbWVuZGVkIHRvIHVzZSB2YWx1ZSBgdG9wYCBvciBgYm90dG9tYCB3aXRoIGBwbGFjZW1lbnRgIGZvciByZXNwb25zaXZlIGRlc2lnbi5cbiAqIER5bmFtaWMgcmVzaXppbmcgYW5kIHRvb2x0aXAgcG9zaXRpb24gYXJlIGEgd29yayBpbiBwcm9ncmVzcy5cbiAqIGh0dHBzOi8vZGVzaWdubGlicmFyeS5zZWJncm91cC5jb20vY29tcG9uZW50cy9jb21wb25lbnQtdG9vbHRpcFxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbmd2VG9vbHRpcF0nLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3ZUb29sdGlwRGlyZWN0aXZlXG4gIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3lcbntcbiAgLyoqIFRoZSB0ZXh0IHRoYXQgd2lsbCBiZSBzaG93biBpbiB0aGUgdG9vbHRpcC4gKi9cbiAgQElucHV0KCkgbmd2VG9vbHRpcD86IHN0cmluZ1xuICAvKiogU3BlY2lhbCBwcm9wZXJ0eSB1c2VkIGZvciBzZWxlY3RpbmcgRE9NIGVsZW1lbnRzIGR1cmluZyBhdXRvbWF0ZWQgVUkgdGVzdGluZy4gKi9cbiAgQElucHV0KCkgdGhvb2sgPSAndG9vbHRpcCdcbiAgLyoqIFRoZSBzaWRlIG9mIHRoZSBhbmNob3Igd2hpY2ggdGhlIHRvb2x0aXAgd2lsbCBiZSByZW5kZXJlZC5cbiAgICogUmVjb21tZW5kZWQgYHRvcGAgYW5kIGBib3R0b21gIGZvciByZXNwb25zaXZlIGRlc2lnbnMgYXMgdGhlc2UgYXJlIG1vcmUgc3RhYmxlLlxuICAgKi9cbiAgQElucHV0KCkgcGxhY2VtZW50OiBQbGFjZW1lbnQgPSAndG9wJ1xuICAvKiogSW5pdGlhbCBzdGF0ZSBhbmQgc3Vic2VxdWVudCB1cGRhdGVzIG9uIHdldGhlciB0aGUgdG9vbHRpcCBpcyB2aXNpYmxlLiAqL1xuICBASW5wdXQoKSBzaG93biA9IGZhbHNlXG4gIC8qKiBIb3cgZmFyIG9mZiBmcm9tIHRoZSB0ZXh0IHRoZSB0b29sdGlwIHdpbGwgYmUgcmVuZGVyZWQuICovXG4gIEBJbnB1dCgpIG9mZnNldCA9IDEwXG4gIC8qKiBIb3cgZnJlcXVlbnRseSB0aGUgdG9vbHRpcCB3aWxsIGJlIHJlLXJlbmRlcmVkIHdoZW4gdGhlIHBhZ2Ugc2l6ZSBjaGFuZ2VzLiAqL1xuICBASW5wdXQoKSByZXNpemVUaHJvdHRsZSA9IDUwXG4gIC8qKiBOdW1lcmljIG1heC13aWR0aCBmb3IgdG9vbHRpcC4gKi9cbiAgQElucHV0KCkgbWF4V2lkdGggPSAzNDNcblxuICAvKiogRW1pdHMgYSBzaG93IGV2ZW50IHRyaWdnZXJlZCBjaGFuZ2luZyB2aXNpYmlsaXR5IHN0YXRlIG9mIHRoZSB0b29sdGlwLiAqL1xuICBAT3V0cHV0KCkgbmd2U2hvdyA9IG5ldyBFdmVudEVtaXR0ZXI8SFRNTEVsZW1lbnQ+KClcbiAgLyoqIEVtaXRzIGEgaGlkZSBldmVudCB0cmlnZ2VyZWQgY2hhbmdpbmcgdmlzaWJpbGl0eSBzdGF0ZSBvZiB0aGUgdG9vbHRpcC4gKi9cbiAgQE91dHB1dCgpIG5ndkhpZGUgPSBuZXcgRXZlbnRFbWl0dGVyPEhUTUxFbGVtZW50PigpXG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwcm90ZWN0ZWQgdGltZW91dCA9IDBcblxuICAvKiogQGludGVybmFsICovXG4gIHByb3RlY3RlZCBwYXJlbnRFbGVtZW50OiBIVE1MRWxlbWVudFxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHJvdGVjdGVkIGFuY2hvckVsZW1lbnQ6IEhUTUxFbGVtZW50XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwcm90ZWN0ZWQgdG9vbHRpcEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkXG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwcm90ZWN0ZWQgYXJyb3dFbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZFxuXG4gIC8qKiBAaW50ZXJuYWwgQ2hlY2sgaWYgY2hhbmdlcyBzaG91bGQgdHJpZ2dlciBhIHJlLXJlbmRlciAqL1xuICBzdGF0aWMgc2hvdWxkVXBkYXRlKGNoYW5nZTogU2ltcGxlQ2hhbmdlKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGNoYW5nZSAmJlxuICAgICAgIWNoYW5nZS5maXJzdENoYW5nZSAmJlxuICAgICAgY2hhbmdlLnByZXZpb3VzVmFsdWUgIT09IGNoYW5nZS5jdXJyZW50VmFsdWVcbiAgICApXG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFuY2hvckVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICApIHtcbiAgICB0aGlzLmFuY2hvckVsZW1lbnQgPSB0aGlzLmFuY2hvckVsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgIHRoaXMucGFyZW50RWxlbWVudCA9IGRvY3VtZW50LmJvZHlcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAvLyBTZXQgYSB0aW1lb3V0IHRvIGFsbG93IHZpZXcgdG8gZnVsbHkgcmVuZGVyIGJlZm9yZSBjcmVhdGluZyB0b29sdGlwLlxuICAgIHNldFRpbWVvdXQoKCkgPT4gKHRoaXMuc2hvd24gPyB0aGlzLnNob3codHJ1ZSkgOiB0aGlzLmhpZGUodHJ1ZSkpKVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIE5ndlRvb2x0aXBEaXJlY3RpdmUuc2hvdWxkVXBkYXRlKGNoYW5nZXMubmd2VG9vbHRpcCkgfHxcbiAgICAgIE5ndlRvb2x0aXBEaXJlY3RpdmUuc2hvdWxkVXBkYXRlKGNoYW5nZXMucGxhY2VtZW50KSB8fFxuICAgICAgTmd2VG9vbHRpcERpcmVjdGl2ZS5zaG91bGRVcGRhdGUoY2hhbmdlcy50aG9vaylcbiAgICApIHtcbiAgICAgIHRoaXMuc2hvd24gPyB0aGlzLnNob3codHJ1ZSkgOiB0aGlzLmhpZGUodHJ1ZSlcbiAgICB9XG5cbiAgICBpZiAoTmd2VG9vbHRpcERpcmVjdGl2ZS5zaG91bGRVcGRhdGUoY2hhbmdlcy5zaG93bikpIHtcbiAgICAgIHRoaXMuc2hvd24gPyB0aGlzLnNob3coKSA6IHRoaXMuaGlkZSgpXG4gICAgfVxuXG4gICAgaWYgKE5ndlRvb2x0aXBEaXJlY3RpdmUuc2hvdWxkVXBkYXRlKGNoYW5nZXMub2Zmc2V0KSkge1xuICAgICAgdGhpcy51cGRhdGVQb3NpdGlvbigpXG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5oaWRlKHRydWUpXG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInKVxuICBvbk1vdXNlRW50ZXIoKSB7XG4gICAgdGhpcy5zaG93KClcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScpXG4gIG9uTW91c2VMZWF2ZSgpIHtcbiAgICB0aGlzLmhpZGUoKVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgcmVzaXplKCkge1xuICAgIGlmICh0aGlzLnRpbWVvdXQpIHJldHVyblxuICAgIHRoaXMudGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMudGltZW91dCA9IDBcbiAgICAgIHRoaXMudXBkYXRlUG9zaXRpb24oKVxuICAgIH0sIHRoaXMucmVzaXplVGhyb3R0bGUpXG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdmlzaWJpbGl0eSBzdGF0ZSBvZiB0aGUgdG9vbHRpcCB0byB0cnVlIGFuZCBjcmVhdGVzIGEgbmV3IHRvb2x0aXAgaWYgaXQgZG9lc24ndCBleGlzdCBvciBgcmVjcmVhdGVgIGlzIHNldC5cbiAgICogQHBhcmFtIHJlY3JlYXRlIGlmIHNldCB0byB0cnVlLCBkZXN0cm95IGFueSBleGlzdGluZyB0b29sdGlwIGFuZCBjcmVhdGUgYSBuZXcgb25lLlxuICAgKi9cbiAgc2hvdyhyZWNyZWF0ZSA9IGZhbHNlKSB7XG4gICAgLy8gUmVxdWlyZSB0b29sdGlwIHRleHQgdG8gY3JlYXRlXG4gICAgaWYgKCF0aGlzLm5ndlRvb2x0aXAgfHwgdGhpcy5uZ3ZUb29sdGlwLmxlbmd0aCA9PT0gMCkgcmV0dXJuXG5cbiAgICBpZiAocmVjcmVhdGUgfHwgIXRoaXMudG9vbHRpcEVsZW1lbnQpIHtcbiAgICAgIHRoaXMuaGlkZSh0cnVlKVxuICAgICAgdGhpcy5jcmVhdGUodGhpcy5uZ3ZUb29sdGlwKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMucGFyZW50RWxlbWVudCwgdGhpcy50b29sdGlwRWxlbWVudClcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZVBvc2l0aW9uKClcbiAgICB0aGlzLnNob3duID0gdHJ1ZVxuICAgIHRoaXMubmd2U2hvdy5lbWl0KHRoaXMudG9vbHRpcEVsZW1lbnQpXG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdmlzaWJpbGl0eSBzdGF0ZSBvZiB0aGUgdG9vbHRpcCB0byBmYWxzZSBhbmQgZGVzdHJveXMgYW4gZXhpc3RpbmcgdG9vbHRpcCBpZiBgZGVzdHJveWAgaXMgc2V0LlxuICAgKiBAcGFyYW0gZGVzdHJveSBpZiBzZXQgdG8gdHJ1ZSwgZGVzdHJveSBhbnkgZXhpc3RpbmcgdG9vbHRpcC5cbiAgICovXG4gIGhpZGUoZGVzdHJveSA9IGZhbHNlKSB7XG4gICAgaWYgKCF0aGlzLnRvb2x0aXBFbGVtZW50KSByZXR1cm5cbiAgICBpZiAodGhpcy5wYXJlbnRFbGVtZW50LmNvbnRhaW5zKHRoaXMudG9vbHRpcEVsZW1lbnQpKVxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLnBhcmVudEVsZW1lbnQsIHRoaXMudG9vbHRpcEVsZW1lbnQpXG4gICAgaWYgKGRlc3Ryb3kpIHRoaXMuZGVzdHJveSgpXG4gICAgdGhpcy5zaG93biA9IGZhbHNlXG4gICAgdGhpcy5uZ3ZIaWRlLmVtaXQodGhpcy50b29sdGlwRWxlbWVudClcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogQ3JlYXRlcyBhIG5ldyB0b29sdGlwIHdpdGggdGhlIHNldCBwbGFjZW1lbnQgYW5kIGEgZ2l2ZW4gdGV4dCBhcyBpdHMgYm9keS5cbiAgICogQHBhcmFtIHRleHQgdGhlIHN0cmluZyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHRvb2x0aXAgYm9keS5cbiAgICovXG4gIGNyZWF0ZSh0ZXh0OiBzdHJpbmcpIHtcbiAgICB0aGlzLnRvb2x0aXBFbGVtZW50ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy50b29sdGlwRWxlbWVudCwgJ2dkcy10b29sdGlwJylcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLnRvb2x0aXBFbGVtZW50LCAnZGF0YS10aG9vaycsIHRoaXMudGhvb2spXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXBFbGVtZW50LCAncG9zaXRpb24nLCAnYWJzb2x1dGUnKVxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwRWxlbWVudCwgJ3otaW5kZXgnLCAnMTA0MCcpXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXBFbGVtZW50LCAnYm9yZGVyLXJhZGl1cycsICcuMjVyZW0nKVxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwRWxlbWVudCwgJ3BhZGRpbmcnLCAnLjVyZW0gMXJlbScpXG4gICAgY29uc3QgcmVsYXRpdmVNYXhXaWR0aCA9IHRoaXMucHhUb1JlbSh0aGlzLm1heFdpZHRoKVxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwRWxlbWVudCwgJ21heC13aWR0aCcsIHJlbGF0aXZlTWF4V2lkdGgpXG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChcbiAgICAgIHRoaXMudG9vbHRpcEVsZW1lbnQsXG4gICAgICB0aGlzLnJlbmRlcmVyLmNyZWF0ZVRleHQodGV4dCksXG4gICAgKVxuXG4gICAgLy8gYWRkIHRvb2x0aXAgdG8gRE9NXG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLnBhcmVudEVsZW1lbnQsIHRoaXMudG9vbHRpcEVsZW1lbnQpXG5cbiAgICB0aGlzLmFycm93RWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2JylcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKFxuICAgICAgdGhpcy5hcnJvd0VsZW1lbnQsXG4gICAgICBgZ2RzLXRvb2x0aXBfX2Fycm93LSR7dGhpcy5wbGFjZW1lbnR9YCxcbiAgICApXG5cbiAgICAvLyBhZGQgYXJyb3cgdG8gdG9vbHRpcCBlbGVtZW50XG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLnRvb2x0aXBFbGVtZW50LCB0aGlzLmFycm93RWxlbWVudClcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogRGVzdHJveXMgdGhlIGN1cnJlbnQgdG9vbHRpcCBieSB1bi1zZXR0aW5nIHZhcmlhYmxlcywgc2hvdWxkIG9ubHkgYmUgdXNlZCBhZnRlciBkZXRhY2hpbmcgZWxlbWVudHMgZnJvbSB0aGUgRE9NLlxuICAgKi9cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLnRvb2x0aXBFbGVtZW50ID0gdW5kZWZpbmVkXG4gICAgdGhpcy5hcnJvd0VsZW1lbnQgPSB1bmRlZmluZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogUmVjYWxjdWxhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcC5cbiAgICovXG4gIHVwZGF0ZVBvc2l0aW9uKCkge1xuICAgIGlmICghdGhpcy50b29sdGlwRWxlbWVudCB8fCAhdGhpcy5hcnJvd0VsZW1lbnQpIHJldHVyblxuICAgIGNvbnN0IHNjcm9sbFBvcyA9XG4gICAgICB3aW5kb3cucGFnZVlPZmZzZXQgfHxcbiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHxcbiAgICAgIHRoaXMucGFyZW50RWxlbWVudC5zY3JvbGxUb3AgfHxcbiAgICAgIDBcbiAgICBjb25zdCBhbmNob3JSZWN0ID0gdGhpcy5hbmNob3JFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgY29uc3QgdG9vbHRpcFJlY3QgPSB0aGlzLnRvb2x0aXBFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgY29uc3QgYXJyb3dSZWN0ID0gdGhpcy5hcnJvd0VsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcblxuICAgIHN3aXRjaCAodGhpcy5wbGFjZW1lbnQpIHtcbiAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgIHRoaXMuYWxpZ25WZXJ0aWNhbChcbiAgICAgICAgICB0cnVlLFxuICAgICAgICAgIHNjcm9sbFBvcyxcbiAgICAgICAgICBhbmNob3JSZWN0LFxuICAgICAgICAgIHRvb2x0aXBSZWN0LndpZHRoLFxuICAgICAgICAgIHRvb2x0aXBSZWN0LmhlaWdodCxcbiAgICAgICAgICBhcnJvd1JlY3Qud2lkdGgsXG4gICAgICAgIClcbiAgICAgICAgYnJlYWtcblxuICAgICAgY2FzZSAnYm90dG9tJzpcbiAgICAgICAgdGhpcy5hbGlnblZlcnRpY2FsKFxuICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgIHNjcm9sbFBvcyxcbiAgICAgICAgICBhbmNob3JSZWN0LFxuICAgICAgICAgIHRvb2x0aXBSZWN0LndpZHRoLFxuICAgICAgICAgIHRvb2x0aXBSZWN0LmhlaWdodCxcbiAgICAgICAgICBhcnJvd1JlY3Qud2lkdGgsXG4gICAgICAgIClcbiAgICAgICAgYnJlYWtcblxuICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgIHRoaXMuYWxpZ25Ib3Jpem9udGFsKHRydWUsIHNjcm9sbFBvcywgYW5jaG9yUmVjdCwgdG9vbHRpcFJlY3QuaGVpZ2h0KVxuICAgICAgICBicmVha1xuXG4gICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgIHRoaXMuYWxpZ25Ib3Jpem9udGFsKGZhbHNlLCBzY3JvbGxQb3MsIGFuY2hvclJlY3QsIHRvb2x0aXBSZWN0LmhlaWdodClcbiAgICAgICAgYnJlYWtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBDYWxjdWxhdGVzIGFuZCBzZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwIHdoZW4gdGhlIHBsYWNlbWVudCBpcyBgdG9wYCBvciBgYm90dG9tYC5cbiAgICovXG4gIGFsaWduVmVydGljYWwoXG4gICAgYWJvdmU6IGJvb2xlYW4sXG4gICAgc2Nyb2xsUG9zOiBudW1iZXIsXG4gICAgYW5jaG9yOiBET01SZWN0LFxuICAgIHRvb2x0aXBXaWR0aDogbnVtYmVyLFxuICAgIHRvb2x0aXBIZWlnaHQ6IG51bWJlcixcbiAgICBhcnJvd1dpZHRoOiBudW1iZXIsXG4gICkge1xuICAgIGNvbnN0IHdpZHRoID0gdGhpcy5wYXJlbnRFbGVtZW50LmNsaWVudFdpZHRoXG4gICAgY29uc3QgYW5jaG9yTWlkWCA9IGFuY2hvci5sZWZ0ICsgYW5jaG9yLndpZHRoIC8gMlxuICAgIGNvbnN0IHRvb2x0aXA6IFBvc2l0aW9uID0ge31cbiAgICBjb25zdCBhcnJvdzogUG9zaXRpb24gPSB7fVxuXG4gICAgaWYgKGFib3ZlKVxuICAgICAgdG9vbHRpcC50b3AgPSBhbmNob3IudG9wIC0gdG9vbHRpcEhlaWdodCAtIHRoaXMub2Zmc2V0ICsgc2Nyb2xsUG9zXG4gICAgZWxzZSB0b29sdGlwLnRvcCA9IGFuY2hvci5ib3R0b20gKyB0aGlzLm9mZnNldCArIHNjcm9sbFBvc1xuXG4gICAgaWYgKGFuY2hvck1pZFggPCB3aWR0aCAvIDIpIHtcbiAgICAgIHRvb2x0aXAubGVmdCA9IE1hdGgubWF4KDAsIGFuY2hvck1pZFggLSB0b29sdGlwV2lkdGggLyAyKVxuICAgICAgYXJyb3cubGVmdCA9IGFuY2hvck1pZFggLSB0b29sdGlwLmxlZnRcbiAgICB9IGVsc2Uge1xuICAgICAgdG9vbHRpcC5yaWdodCA9IE1hdGgubWF4KDAsIHdpZHRoIC0gKGFuY2hvck1pZFggKyB0b29sdGlwV2lkdGggLyAyKSlcbiAgICAgIGFycm93LnJpZ2h0ID0gd2lkdGggLSBhbmNob3JNaWRYIC0gdG9vbHRpcC5yaWdodCAtIGFycm93V2lkdGhcbiAgICB9XG5cbiAgICB0aGlzLnNldFN0eWxlKHRvb2x0aXAsIGFycm93KVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBDYWxjdWxhdGVzIGFuZCBzZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwIHdoZW4gdGhlIHBsYWNlbWVudCBpcyBgbGVmdGAgb3IgYHJpZ2h0YC5cbiAgICovXG4gIGFsaWduSG9yaXpvbnRhbChcbiAgICBiZWZvcmU6IGJvb2xlYW4sXG4gICAgc2Nyb2xsUG9zOiBudW1iZXIsXG4gICAgYW5jaG9yOiBET01SZWN0LFxuICAgIHRvb2x0aXBIZWlnaHQ6IG51bWJlcixcbiAgKSB7XG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLnBhcmVudEVsZW1lbnQuY2xpZW50V2lkdGhcbiAgICBjb25zdCB0b3AgPSBhbmNob3IudG9wICsgKGFuY2hvci5oZWlnaHQgLSB0b29sdGlwSGVpZ2h0KSAvIDIgKyBzY3JvbGxQb3NcbiAgICBjb25zdCB0b29sdGlwOiBQb3NpdGlvbiA9IHsgdG9wIH1cbiAgICBjb25zdCBhcnJvdzogUG9zaXRpb24gPSB7IHRvcDogdG9vbHRpcEhlaWdodCAvIDIgfVxuXG4gICAgaWYgKGJlZm9yZSkgdG9vbHRpcC5yaWdodCA9IHdpZHRoIC0gYW5jaG9yLmxlZnQgKyB0aGlzLm9mZnNldFxuICAgIGVsc2UgdG9vbHRpcC5sZWZ0ID0gYW5jaG9yLnJpZ2h0ICsgdGhpcy5vZmZzZXRcblxuICAgIHRoaXMuc2V0U3R5bGUodG9vbHRpcCwgYXJyb3cpXG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIFVwZGF0ZXMgdGhlIENTUyBwcm9wZXJ0aWVzIGZvciB0aGUgdG9vbHRpcCBwb3NpdGlvbi5cbiAgICovXG4gIHNldFN0eWxlKHRvb2x0aXA6IFBvc2l0aW9uLCBhcnJvdzogUG9zaXRpb24pIHtcbiAgICAvLyBUb29sdGlwXG4gICAgT2JqZWN0LmVudHJpZXModG9vbHRpcCkuZm9yRWFjaCgoW3Byb3AsIHZhbHVlXSkgPT4ge1xuICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLnB4VG9SZW0odmFsdWUpXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudG9vbHRpcEVsZW1lbnQsIHByb3AsIHBvc2l0aW9uKVxuICAgIH0pXG5cbiAgICAvLyBBcnJvd1xuICAgIE9iamVjdC5lbnRyaWVzKGFycm93KS5mb3JFYWNoKChbcHJvcCwgdmFsdWVdKSA9PiB7XG4gICAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMucHhUb1JlbSh2YWx1ZSlcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5hcnJvd0VsZW1lbnQsIHByb3AsIHBvc2l0aW9uKVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIHB4VG9SZW0odmFsdWU6IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3QgZm9udFNpemVQeCA9IHdpbmRvd1xuICAgICAgPy5nZXRDb21wdXRlZFN0eWxlKHRoaXMucGFyZW50RWxlbWVudClcbiAgICAgID8uZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC1zaXplJylcbiAgICBjb25zdCBmb250U2l6ZU51bWJlck1hdGNoID0gZm9udFNpemVQeD8ubWF0Y2goL1xcZHsxLH0vKVxuICAgIGNvbnN0IGZvbnRTaXplID0gZm9udFNpemVOdW1iZXJNYXRjaCA/ICtmb250U2l6ZU51bWJlck1hdGNoWzBdIDogMTZcbiAgICBjb25zdCByZW1WYWx1ZSA9IHZhbHVlIC8gZm9udFNpemVcbiAgICByZXR1cm4gYCR7cmVtVmFsdWV9cmVtYFxuICB9XG59XG4iXX0=
|
|
273
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEdBR1YsTUFBTSxlQUFlLENBQUE7O0FBV3RCOzs7OztHQUtHO0FBSUgsTUFBTSxPQUFPLG1CQUFtQjtJQXdDOUIsNERBQTREO0lBQzVELE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBb0I7UUFDdEMsT0FBTyxDQUNMLE1BQU07WUFDTixDQUFDLE1BQU0sQ0FBQyxXQUFXO1lBQ25CLE1BQU0sQ0FBQyxhQUFhLEtBQUssTUFBTSxDQUFDLFlBQVksQ0FDN0MsQ0FBQTtJQUNILENBQUM7SUFFRCxZQUNVLGdCQUE0QixFQUM1QixRQUFtQjtRQURuQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQVk7UUFDNUIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQTlDN0Isb0ZBQW9GO1FBQzNFLFVBQUssR0FBRyxTQUFTLENBQUE7UUFDMUI7O1dBRUc7UUFDTSxjQUFTLEdBQWMsS0FBSyxDQUFBO1FBQ3JDLDZFQUE2RTtRQUNwRSxVQUFLLEdBQUcsS0FBSyxDQUFBO1FBQ3RCLDhEQUE4RDtRQUNyRCxXQUFNLEdBQUcsRUFBRSxDQUFBO1FBQ3BCLGlGQUFpRjtRQUN4RSxtQkFBYyxHQUFHLEVBQUUsQ0FBQTtRQUM1QixxQ0FBcUM7UUFDNUIsYUFBUSxHQUFHLEdBQUcsQ0FBQTtRQUV2Qiw2RUFBNkU7UUFDbkUsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFlLENBQUE7UUFDcEQsNkVBQTZFO1FBQ25FLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFBO1FBRXBELGdCQUFnQjtRQUNO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WTtnQkFPMUIsTUFBTTtzQkFETCxZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBTaW1wbGVDaGFuZ2UsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmV4cG9ydCB0eXBlIFBsYWNlbWVudCA9ICd0b3AnIHwgJ3JpZ2h0JyB8ICdib3R0b20nIHwgJ2xlZnQnXG5cbnR5cGUgUG9zaXRpb24gPSB7XG4gIHRvcD86IG51bWJlclxuICByaWdodD86IG51bWJlclxuICBib3R0b20/OiBudW1iZXJcbiAgbGVmdD86IG51bWJlclxufVxuXG4vKipcbiAqIEEgdG9vbHRpcCBpcyBhIHRleHQgbGFiZWwgdGhhdCBhY3RzIGFzIGEgaGVscGVyIHRvIGEgc3BlY2lmaWMgaXRlbS5cbiAqIFJlY29tbWVuZGVkIHRvIHVzZSB2YWx1ZSBgdG9wYCBvciBgYm90dG9tYCB3aXRoIGBwbGFjZW1lbnRgIGZvciByZXNwb25zaXZlIGRlc2lnbi5cbiAqIER5bmFtaWMgcmVzaXppbmcgYW5kIHRvb2x0aXAgcG9zaXRpb24gYXJlIGEgd29yayBpbiBwcm9ncmVzcy5cbiAqIGh0dHBzOi8vZGVzaWdubGlicmFyeS5zZWJncm91cC5jb20vY29tcG9uZW50cy9jb21wb25lbnQtdG9vbHRpcFxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbmdndlRvb2x0aXBdJyxcbn0pXG5leHBvcnQgY2xhc3MgTmd2VG9vbHRpcERpcmVjdGl2ZVxuICBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95XG57XG4gIC8qKiBUaGUgdGV4dCB0aGF0IHdpbGwgYmUgc2hvd24gaW4gdGhlIHRvb2x0aXAuICovXG4gIEBJbnB1dCgpIG5nZ3ZUb29sdGlwPzogc3RyaW5nXG4gIC8qKiBTcGVjaWFsIHByb3BlcnR5IHVzZWQgZm9yIHNlbGVjdGluZyBET00gZWxlbWVudHMgZHVyaW5nIGF1dG9tYXRlZCBVSSB0ZXN0aW5nLiAqL1xuICBASW5wdXQoKSB0aG9vayA9ICd0b29sdGlwJ1xuICAvKiogVGhlIHNpZGUgb2YgdGhlIGFuY2hvciB3aGljaCB0aGUgdG9vbHRpcCB3aWxsIGJlIHJlbmRlcmVkLlxuICAgKiBSZWNvbW1lbmRlZCBgdG9wYCBhbmQgYGJvdHRvbWAgZm9yIHJlc3BvbnNpdmUgZGVzaWducyBhcyB0aGVzZSBhcmUgbW9yZSBzdGFibGUuXG4gICAqL1xuICBASW5wdXQoKSBwbGFjZW1lbnQ6IFBsYWNlbWVudCA9ICd0b3AnXG4gIC8qKiBJbml0aWFsIHN0YXRlIGFuZCBzdWJzZXF1ZW50IHVwZGF0ZXMgb24gd2V0aGVyIHRoZSB0b29sdGlwIGlzIHZpc2libGUuICovXG4gIEBJbnB1dCgpIHNob3duID0gZmFsc2VcbiAgLyoqIEhvdyBmYXIgb2ZmIGZyb20gdGhlIHRleHQgdGhlIHRvb2x0aXAgd2lsbCBiZSByZW5kZXJlZC4gKi9cbiAgQElucHV0KCkgb2Zmc2V0ID0gMTBcbiAgLyoqIEhvdyBmcmVxdWVudGx5IHRoZSB0b29sdGlwIHdpbGwgYmUgcmUtcmVuZGVyZWQgd2hlbiB0aGUgcGFnZSBzaXplIGNoYW5nZXMuICovXG4gIEBJbnB1dCgpIHJlc2l6ZVRocm90dGxlID0gNTBcbiAgLyoqIE51bWVyaWMgbWF4LXdpZHRoIGZvciB0b29sdGlwLiAqL1xuICBASW5wdXQoKSBtYXhXaWR0aCA9IDM0M1xuXG4gIC8qKiBFbWl0cyBhIHNob3cgZXZlbnQgdHJpZ2dlcmVkIGNoYW5naW5nIHZpc2liaWxpdHkgc3RhdGUgb2YgdGhlIHRvb2x0aXAuICovXG4gIEBPdXRwdXQoKSBuZ2d2U2hvdyA9IG5ldyBFdmVudEVtaXR0ZXI8SFRNTEVsZW1lbnQ+KClcbiAgLyoqIEVtaXRzIGEgaGlkZSBldmVudCB0cmlnZ2VyZWQgY2hhbmdpbmcgdmlzaWJpbGl0eSBzdGF0ZSBvZiB0aGUgdG9vbHRpcC4gKi9cbiAgQE91dHB1dCgpIG5nZ3ZIaWRlID0gbmV3IEV2ZW50RW1pdHRlcjxIVE1MRWxlbWVudD4oKVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHJvdGVjdGVkIHRpbWVvdXQgPSAwXG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwcm90ZWN0ZWQgcGFyZW50RWxlbWVudDogSFRNTEVsZW1lbnRcblxuICAvKiogQGludGVybmFsICovXG4gIHByb3RlY3RlZCBhbmNob3JFbGVtZW50OiBIVE1MRWxlbWVudFxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHJvdGVjdGVkIHRvb2x0aXBFbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZFxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHJvdGVjdGVkIGFycm93RWxlbWVudDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWRcblxuICAvKiogQGludGVybmFsIENoZWNrIGlmIGNoYW5nZXMgc2hvdWxkIHRyaWdnZXIgYSByZS1yZW5kZXIgKi9cbiAgc3RhdGljIHNob3VsZFVwZGF0ZShjaGFuZ2U6IFNpbXBsZUNoYW5nZSkge1xuICAgIHJldHVybiAoXG4gICAgICBjaGFuZ2UgJiZcbiAgICAgICFjaGFuZ2UuZmlyc3RDaGFuZ2UgJiZcbiAgICAgIGNoYW5nZS5wcmV2aW91c1ZhbHVlICE9PSBjaGFuZ2UuY3VycmVudFZhbHVlXG4gICAgKVxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhbmNob3JFbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgKSB7XG4gICAgdGhpcy5hbmNob3JFbGVtZW50ID0gdGhpcy5hbmNob3JFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICB0aGlzLnBhcmVudEVsZW1lbnQgPSBkb2N1bWVudC5ib2R5XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgLy8gU2V0IGEgdGltZW91dCB0byBhbGxvdyB2aWV3IHRvIGZ1bGx5IHJlbmRlciBiZWZvcmUgY3JlYXRpbmcgdG9vbHRpcC5cbiAgICBzZXRUaW1lb3V0KCgpID0+ICh0aGlzLnNob3duID8gdGhpcy5zaG93KHRydWUpIDogdGhpcy5oaWRlKHRydWUpKSlcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBOZ3ZUb29sdGlwRGlyZWN0aXZlLnNob3VsZFVwZGF0ZShjaGFuZ2VzLm5nZ3ZUb29sdGlwKSB8fFxuICAgICAgTmd2VG9vbHRpcERpcmVjdGl2ZS5zaG91bGRVcGRhdGUoY2hhbmdlcy5wbGFjZW1lbnQpIHx8XG4gICAgICBOZ3ZUb29sdGlwRGlyZWN0aXZlLnNob3VsZFVwZGF0ZShjaGFuZ2VzLnRob29rKVxuICAgICkge1xuICAgICAgdGhpcy5zaG93biA/IHRoaXMuc2hvdyh0cnVlKSA6IHRoaXMuaGlkZSh0cnVlKVxuICAgIH1cblxuICAgIGlmIChOZ3ZUb29sdGlwRGlyZWN0aXZlLnNob3VsZFVwZGF0ZShjaGFuZ2VzLnNob3duKSkge1xuICAgICAgdGhpcy5zaG93biA/IHRoaXMuc2hvdygpIDogdGhpcy5oaWRlKClcbiAgICB9XG5cbiAgICBpZiAoTmd2VG9vbHRpcERpcmVjdGl2ZS5zaG91bGRVcGRhdGUoY2hhbmdlcy5vZmZzZXQpKSB7XG4gICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9uKClcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmhpZGUodHJ1ZSlcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpXG4gIG9uTW91c2VFbnRlcigpIHtcbiAgICB0aGlzLnNob3coKVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcbiAgb25Nb3VzZUxlYXZlKCkge1xuICAgIHRoaXMuaGlkZSgpXG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuICByZXNpemUoKSB7XG4gICAgaWYgKHRoaXMudGltZW91dCkgcmV0dXJuXG4gICAgdGhpcy50aW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy50aW1lb3V0ID0gMFxuICAgICAgdGhpcy51cGRhdGVQb3NpdGlvbigpXG4gICAgfSwgdGhpcy5yZXNpemVUaHJvdHRsZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB2aXNpYmlsaXR5IHN0YXRlIG9mIHRoZSB0b29sdGlwIHRvIHRydWUgYW5kIGNyZWF0ZXMgYSBuZXcgdG9vbHRpcCBpZiBpdCBkb2Vzbid0IGV4aXN0IG9yIGByZWNyZWF0ZWAgaXMgc2V0LlxuICAgKiBAcGFyYW0gcmVjcmVhdGUgaWYgc2V0IHRvIHRydWUsIGRlc3Ryb3kgYW55IGV4aXN0aW5nIHRvb2x0aXAgYW5kIGNyZWF0ZSBhIG5ldyBvbmUuXG4gICAqL1xuICBzaG93KHJlY3JlYXRlID0gZmFsc2UpIHtcbiAgICAvLyBSZXF1aXJlIHRvb2x0aXAgdGV4dCB0byBjcmVhdGVcbiAgICBpZiAoIXRoaXMubmdndlRvb2x0aXAgfHwgdGhpcy5uZ2d2VG9vbHRpcC5sZW5ndGggPT09IDApIHJldHVyblxuXG4gICAgaWYgKHJlY3JlYXRlIHx8ICF0aGlzLnRvb2x0aXBFbGVtZW50KSB7XG4gICAgICB0aGlzLmhpZGUodHJ1ZSlcbiAgICAgIHRoaXMuY3JlYXRlKHRoaXMubmdndlRvb2x0aXApXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5wYXJlbnRFbGVtZW50LCB0aGlzLnRvb2x0aXBFbGVtZW50KVxuICAgIH1cblxuICAgIHRoaXMudXBkYXRlUG9zaXRpb24oKVxuICAgIHRoaXMuc2hvd24gPSB0cnVlXG4gICAgdGhpcy5uZ2d2U2hvdy5lbWl0KHRoaXMudG9vbHRpcEVsZW1lbnQpXG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdmlzaWJpbGl0eSBzdGF0ZSBvZiB0aGUgdG9vbHRpcCB0byBmYWxzZSBhbmQgZGVzdHJveXMgYW4gZXhpc3RpbmcgdG9vbHRpcCBpZiBgZGVzdHJveWAgaXMgc2V0LlxuICAgKiBAcGFyYW0gZGVzdHJveSBpZiBzZXQgdG8gdHJ1ZSwgZGVzdHJveSBhbnkgZXhpc3RpbmcgdG9vbHRpcC5cbiAgICovXG4gIGhpZGUoZGVzdHJveSA9IGZhbHNlKSB7XG4gICAgaWYgKCF0aGlzLnRvb2x0aXBFbGVtZW50KSByZXR1cm5cbiAgICBpZiAodGhpcy5wYXJlbnRFbGVtZW50LmNvbnRhaW5zKHRoaXMudG9vbHRpcEVsZW1lbnQpKVxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLnBhcmVudEVsZW1lbnQsIHRoaXMudG9vbHRpcEVsZW1lbnQpXG4gICAgaWYgKGRlc3Ryb3kpIHRoaXMuZGVzdHJveSgpXG4gICAgdGhpcy5zaG93biA9IGZhbHNlXG4gICAgdGhpcy5uZ2d2SGlkZS5lbWl0KHRoaXMudG9vbHRpcEVsZW1lbnQpXG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIENyZWF0ZXMgYSBuZXcgdG9vbHRpcCB3aXRoIHRoZSBzZXQgcGxhY2VtZW50IGFuZCBhIGdpdmVuIHRleHQgYXMgaXRzIGJvZHkuXG4gICAqIEBwYXJhbSB0ZXh0IHRoZSBzdHJpbmcgdG8gYmUgZGlzcGxheWVkIGluIHRoZSB0b29sdGlwIGJvZHkuXG4gICAqL1xuICBjcmVhdGUodGV4dDogc3RyaW5nKSB7XG4gICAgdGhpcy50b29sdGlwRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2JylcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMudG9vbHRpcEVsZW1lbnQsICdnZHMtdG9vbHRpcCcpXG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy50b29sdGlwRWxlbWVudCwgJ2RhdGEtdGhvb2snLCB0aGlzLnRob29rKVxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwRWxlbWVudCwgJ3Bvc2l0aW9uJywgJ2Fic29sdXRlJylcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudG9vbHRpcEVsZW1lbnQsICd6LWluZGV4JywgJzEwNDAnKVxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwRWxlbWVudCwgJ2JvcmRlci1yYWRpdXMnLCAnLjI1cmVtJylcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudG9vbHRpcEVsZW1lbnQsICdwYWRkaW5nJywgJy41cmVtIDFyZW0nKVxuICAgIGNvbnN0IHJlbGF0aXZlTWF4V2lkdGggPSB0aGlzLnB4VG9SZW0odGhpcy5tYXhXaWR0aClcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudG9vbHRpcEVsZW1lbnQsICdtYXgtd2lkdGgnLCByZWxhdGl2ZU1heFdpZHRoKVxuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoXG4gICAgICB0aGlzLnRvb2x0aXBFbGVtZW50LFxuICAgICAgdGhpcy5yZW5kZXJlci5jcmVhdGVUZXh0KHRleHQpLFxuICAgIClcblxuICAgIC8vIGFkZCB0b29sdGlwIHRvIERPTVxuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5wYXJlbnRFbGVtZW50LCB0aGlzLnRvb2x0aXBFbGVtZW50KVxuXG4gICAgdGhpcy5hcnJvd0VsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhcbiAgICAgIHRoaXMuYXJyb3dFbGVtZW50LFxuICAgICAgYGdkcy10b29sdGlwX19hcnJvdy0ke3RoaXMucGxhY2VtZW50fWAsXG4gICAgKVxuXG4gICAgLy8gYWRkIGFycm93IHRvIHRvb2x0aXAgZWxlbWVudFxuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy50b29sdGlwRWxlbWVudCwgdGhpcy5hcnJvd0VsZW1lbnQpXG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIERlc3Ryb3lzIHRoZSBjdXJyZW50IHRvb2x0aXAgYnkgdW4tc2V0dGluZyB2YXJpYWJsZXMsIHNob3VsZCBvbmx5IGJlIHVzZWQgYWZ0ZXIgZGV0YWNoaW5nIGVsZW1lbnRzIGZyb20gdGhlIERPTS5cbiAgICovXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy50b29sdGlwRWxlbWVudCA9IHVuZGVmaW5lZFxuICAgIHRoaXMuYXJyb3dFbGVtZW50ID0gdW5kZWZpbmVkXG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIFJlY2FsY3VsYXRlcyB0aGUgcG9zaXRpb24gb2YgdGhlIHRvb2x0aXAuXG4gICAqL1xuICB1cGRhdGVQb3NpdGlvbigpIHtcbiAgICBpZiAoIXRoaXMudG9vbHRpcEVsZW1lbnQgfHwgIXRoaXMuYXJyb3dFbGVtZW50KSByZXR1cm5cbiAgICBjb25zdCBzY3JvbGxQb3MgPVxuICAgICAgd2luZG93LnBhZ2VZT2Zmc2V0IHx8XG4gICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wIHx8XG4gICAgICB0aGlzLnBhcmVudEVsZW1lbnQuc2Nyb2xsVG9wIHx8XG4gICAgICAwXG4gICAgY29uc3QgYW5jaG9yUmVjdCA9IHRoaXMuYW5jaG9yRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgIGNvbnN0IHRvb2x0aXBSZWN0ID0gdGhpcy50b29sdGlwRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgIGNvbnN0IGFycm93UmVjdCA9IHRoaXMuYXJyb3dFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG5cbiAgICBzd2l0Y2ggKHRoaXMucGxhY2VtZW50KSB7XG4gICAgICBjYXNlICd0b3AnOlxuICAgICAgICB0aGlzLmFsaWduVmVydGljYWwoXG4gICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICBzY3JvbGxQb3MsXG4gICAgICAgICAgYW5jaG9yUmVjdCxcbiAgICAgICAgICB0b29sdGlwUmVjdC53aWR0aCxcbiAgICAgICAgICB0b29sdGlwUmVjdC5oZWlnaHQsXG4gICAgICAgICAgYXJyb3dSZWN0LndpZHRoLFxuICAgICAgICApXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgIHRoaXMuYWxpZ25WZXJ0aWNhbChcbiAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICBzY3JvbGxQb3MsXG4gICAgICAgICAgYW5jaG9yUmVjdCxcbiAgICAgICAgICB0b29sdGlwUmVjdC53aWR0aCxcbiAgICAgICAgICB0b29sdGlwUmVjdC5oZWlnaHQsXG4gICAgICAgICAgYXJyb3dSZWN0LndpZHRoLFxuICAgICAgICApXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICB0aGlzLmFsaWduSG9yaXpvbnRhbCh0cnVlLCBzY3JvbGxQb3MsIGFuY2hvclJlY3QsIHRvb2x0aXBSZWN0LmhlaWdodClcbiAgICAgICAgYnJlYWtcblxuICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICB0aGlzLmFsaWduSG9yaXpvbnRhbChmYWxzZSwgc2Nyb2xsUG9zLCBhbmNob3JSZWN0LCB0b29sdGlwUmVjdC5oZWlnaHQpXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVyblxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogQ2FsY3VsYXRlcyBhbmQgc2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcCB3aGVuIHRoZSBwbGFjZW1lbnQgaXMgYHRvcGAgb3IgYGJvdHRvbWAuXG4gICAqL1xuICBhbGlnblZlcnRpY2FsKFxuICAgIGFib3ZlOiBib29sZWFuLFxuICAgIHNjcm9sbFBvczogbnVtYmVyLFxuICAgIGFuY2hvcjogRE9NUmVjdCxcbiAgICB0b29sdGlwV2lkdGg6IG51bWJlcixcbiAgICB0b29sdGlwSGVpZ2h0OiBudW1iZXIsXG4gICAgYXJyb3dXaWR0aDogbnVtYmVyLFxuICApIHtcbiAgICBjb25zdCB3aWR0aCA9IHRoaXMucGFyZW50RWxlbWVudC5jbGllbnRXaWR0aFxuICAgIGNvbnN0IGFuY2hvck1pZFggPSBhbmNob3IubGVmdCArIGFuY2hvci53aWR0aCAvIDJcbiAgICBjb25zdCB0b29sdGlwOiBQb3NpdGlvbiA9IHt9XG4gICAgY29uc3QgYXJyb3c6IFBvc2l0aW9uID0ge31cblxuICAgIGlmIChhYm92ZSlcbiAgICAgIHRvb2x0aXAudG9wID0gYW5jaG9yLnRvcCAtIHRvb2x0aXBIZWlnaHQgLSB0aGlzLm9mZnNldCArIHNjcm9sbFBvc1xuICAgIGVsc2UgdG9vbHRpcC50b3AgPSBhbmNob3IuYm90dG9tICsgdGhpcy5vZmZzZXQgKyBzY3JvbGxQb3NcblxuICAgIGlmIChhbmNob3JNaWRYIDwgd2lkdGggLyAyKSB7XG4gICAgICB0b29sdGlwLmxlZnQgPSBNYXRoLm1heCgwLCBhbmNob3JNaWRYIC0gdG9vbHRpcFdpZHRoIC8gMilcbiAgICAgIGFycm93LmxlZnQgPSBhbmNob3JNaWRYIC0gdG9vbHRpcC5sZWZ0XG4gICAgfSBlbHNlIHtcbiAgICAgIHRvb2x0aXAucmlnaHQgPSBNYXRoLm1heCgwLCB3aWR0aCAtIChhbmNob3JNaWRYICsgdG9vbHRpcFdpZHRoIC8gMikpXG4gICAgICBhcnJvdy5yaWdodCA9IHdpZHRoIC0gYW5jaG9yTWlkWCAtIHRvb2x0aXAucmlnaHQgLSBhcnJvd1dpZHRoXG4gICAgfVxuXG4gICAgdGhpcy5zZXRTdHlsZSh0b29sdGlwLCBhcnJvdylcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogQ2FsY3VsYXRlcyBhbmQgc2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcCB3aGVuIHRoZSBwbGFjZW1lbnQgaXMgYGxlZnRgIG9yIGByaWdodGAuXG4gICAqL1xuICBhbGlnbkhvcml6b250YWwoXG4gICAgYmVmb3JlOiBib29sZWFuLFxuICAgIHNjcm9sbFBvczogbnVtYmVyLFxuICAgIGFuY2hvcjogRE9NUmVjdCxcbiAgICB0b29sdGlwSGVpZ2h0OiBudW1iZXIsXG4gICkge1xuICAgIGNvbnN0IHdpZHRoID0gdGhpcy5wYXJlbnRFbGVtZW50LmNsaWVudFdpZHRoXG4gICAgY29uc3QgdG9wID0gYW5jaG9yLnRvcCArIChhbmNob3IuaGVpZ2h0IC0gdG9vbHRpcEhlaWdodCkgLyAyICsgc2Nyb2xsUG9zXG4gICAgY29uc3QgdG9vbHRpcDogUG9zaXRpb24gPSB7IHRvcCB9XG4gICAgY29uc3QgYXJyb3c6IFBvc2l0aW9uID0geyB0b3A6IHRvb2x0aXBIZWlnaHQgLyAyIH1cblxuICAgIGlmIChiZWZvcmUpIHRvb2x0aXAucmlnaHQgPSB3aWR0aCAtIGFuY2hvci5sZWZ0ICsgdGhpcy5vZmZzZXRcbiAgICBlbHNlIHRvb2x0aXAubGVmdCA9IGFuY2hvci5yaWdodCArIHRoaXMub2Zmc2V0XG5cbiAgICB0aGlzLnNldFN0eWxlKHRvb2x0aXAsIGFycm93KVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBVcGRhdGVzIHRoZSBDU1MgcHJvcGVydGllcyBmb3IgdGhlIHRvb2x0aXAgcG9zaXRpb24uXG4gICAqL1xuICBzZXRTdHlsZSh0b29sdGlwOiBQb3NpdGlvbiwgYXJyb3c6IFBvc2l0aW9uKSB7XG4gICAgLy8gVG9vbHRpcFxuICAgIE9iamVjdC5lbnRyaWVzKHRvb2x0aXApLmZvckVhY2goKFtwcm9wLCB2YWx1ZV0pID0+IHtcbiAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5weFRvUmVtKHZhbHVlKVxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXBFbGVtZW50LCBwcm9wLCBwb3NpdGlvbilcbiAgICB9KVxuXG4gICAgLy8gQXJyb3dcbiAgICBPYmplY3QuZW50cmllcyhhcnJvdykuZm9yRWFjaCgoW3Byb3AsIHZhbHVlXSkgPT4ge1xuICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLnB4VG9SZW0odmFsdWUpXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuYXJyb3dFbGVtZW50LCBwcm9wLCBwb3NpdGlvbilcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBweFRvUmVtKHZhbHVlOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IGZvbnRTaXplUHggPSB3aW5kb3dcbiAgICAgID8uZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnBhcmVudEVsZW1lbnQpXG4gICAgICA/LmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQtc2l6ZScpXG4gICAgY29uc3QgZm9udFNpemVOdW1iZXJNYXRjaCA9IGZvbnRTaXplUHg/Lm1hdGNoKC9cXGR7MSx9LylcbiAgICBjb25zdCBmb250U2l6ZSA9IGZvbnRTaXplTnVtYmVyTWF0Y2ggPyArZm9udFNpemVOdW1iZXJNYXRjaFswXSA6IDE2XG4gICAgY29uc3QgcmVtVmFsdWUgPSB2YWx1ZSAvIGZvbnRTaXplXG4gICAgcmV0dXJuIGAke3JlbVZhbHVlfXJlbWBcbiAgfVxufVxuIl19
|
package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs
ADDED
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
import { ChangeDetectorRef, ContentChild, Component, ElementRef, EventEmitter, HostBinding, Inject, Injectable, Input, Optional, Output, Self, TemplateRef, ViewChild, } from '@angular/core';
|
|
2
|
+
import { NgControl, Validators, } from '@angular/forms';
|
|
3
|
+
import { Observable, Subject } from 'rxjs';
|
|
4
|
+
import { takeUntil } from 'rxjs/operators';
|
|
5
|
+
import { TRANSLOCO_SCOPE } from '@ngneat/transloco';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/forms";
|
|
8
|
+
// eslint-disable-next-line @angular-eslint/directive-class-suffix
|
|
9
|
+
export class NgvBaseControlValueAccessorComponent {
|
|
10
|
+
/** Hides the input borders and displays current value as a text. */
|
|
11
|
+
set locked(value) {
|
|
12
|
+
this._locked = value;
|
|
13
|
+
this.cdr.detectChanges();
|
|
14
|
+
}
|
|
15
|
+
get locked() {
|
|
16
|
+
return this._locked;
|
|
17
|
+
}
|
|
18
|
+
/** Override the required flag of the component. */
|
|
19
|
+
set required(value) {
|
|
20
|
+
this._required = value;
|
|
21
|
+
}
|
|
22
|
+
/** Child input element is considered required and changes default label template accordingly. */
|
|
23
|
+
get required() {
|
|
24
|
+
// if required is set => return required
|
|
25
|
+
if (this._required !== undefined)
|
|
26
|
+
return this._required;
|
|
27
|
+
// if required can be determined from the control => return control.required
|
|
28
|
+
if (this.ngControl?.control?.validator) {
|
|
29
|
+
const validator = this.ngControl?.control?.validator({});
|
|
30
|
+
// returns true for any error that starts with required
|
|
31
|
+
return Object.keys(validator ?? {}).some((key) => key.startsWith('required'));
|
|
32
|
+
}
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
/** Override the invalid state of the component. */
|
|
36
|
+
set invalid(value) {
|
|
37
|
+
this._invalid = value;
|
|
38
|
+
}
|
|
39
|
+
/** The component has the invalid state, usually decorating the elements red and shows the first error. */
|
|
40
|
+
get invalid() {
|
|
41
|
+
if (this._invalid === true || this._invalid === false)
|
|
42
|
+
return this._invalid;
|
|
43
|
+
return (!!this.ngControl?.control?.invalid && this.ngControl?.control?.touched);
|
|
44
|
+
}
|
|
45
|
+
/** Override the valid state of the component. */
|
|
46
|
+
set valid(value) {
|
|
47
|
+
this._valid = value;
|
|
48
|
+
}
|
|
49
|
+
/** The component has the valid state, usually decorating the elements green. */
|
|
50
|
+
get valid() {
|
|
51
|
+
if (this._valid === true || this._valid === false)
|
|
52
|
+
return this._valid;
|
|
53
|
+
return !!this.ngControl?.control?.valid && this.ngControl?.control?.touched;
|
|
54
|
+
}
|
|
55
|
+
/** Override the disabled state of the component. */
|
|
56
|
+
set disabled(value) {
|
|
57
|
+
this._disabled = value;
|
|
58
|
+
}
|
|
59
|
+
/** The component has the disabled state, usually muting the colors and removes interaction. */
|
|
60
|
+
get disabled() {
|
|
61
|
+
if (this._disabled === true || this._disabled === false)
|
|
62
|
+
return this._disabled;
|
|
63
|
+
return !!this.ngControl?.control?.disabled;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Creates a new BaseControlValueAccessorComponent.
|
|
67
|
+
* @param ngControl optional FormControl provided when component is used in a form, through dependency injection.
|
|
68
|
+
* @param translocoScope optional TranslocoScope provided if component is used within a scope.
|
|
69
|
+
*/
|
|
70
|
+
constructor(ngControl, translocoScope, cdr) {
|
|
71
|
+
this.ngControl = ngControl;
|
|
72
|
+
this.translocoScope = translocoScope;
|
|
73
|
+
this.cdr = cdr;
|
|
74
|
+
/* ATTRIBUTES */
|
|
75
|
+
/** Id of the host element and is accessible by the children, automatically generated if not provided. */
|
|
76
|
+
this.id = window.nggv?.nextId();
|
|
77
|
+
/** If set to true, the browser will try to automatically set focus to the child input element. */
|
|
78
|
+
this.autofocus = false;
|
|
79
|
+
this._locked = undefined;
|
|
80
|
+
/* STATES */
|
|
81
|
+
this._required = undefined;
|
|
82
|
+
this._invalid = undefined;
|
|
83
|
+
this._valid = undefined;
|
|
84
|
+
/** The component has the focused state, updated by the child input element's focus state. */
|
|
85
|
+
this.focused = false;
|
|
86
|
+
this._disabled = undefined;
|
|
87
|
+
/* TRIGGERS */
|
|
88
|
+
/** Emits focus events triggered by the child elements. */
|
|
89
|
+
this.nggvFocus = new EventEmitter();
|
|
90
|
+
/** Emits focus events triggered by the child elements. */
|
|
91
|
+
this.nggvBlur = new EventEmitter();
|
|
92
|
+
/* VALUE HANDLERS */
|
|
93
|
+
this._state = null;
|
|
94
|
+
/** @internal */
|
|
95
|
+
this.onChange = (_) => {
|
|
96
|
+
// do nothing
|
|
97
|
+
};
|
|
98
|
+
/** @internal */
|
|
99
|
+
this.onTouched = () => {
|
|
100
|
+
// do nothing
|
|
101
|
+
};
|
|
102
|
+
/** @internal */
|
|
103
|
+
this.onValidatorChange = () => null;
|
|
104
|
+
/* LIFE CYCLE VARIABLES */
|
|
105
|
+
this._onDestroy$ = new Subject();
|
|
106
|
+
if (this.ngControl) {
|
|
107
|
+
// Note: we provide the value accessor through here, instead of
|
|
108
|
+
// the `providers` to avoid running into a circular import.
|
|
109
|
+
this.ngControl.valueAccessor = this;
|
|
110
|
+
}
|
|
111
|
+
if (this.translocoScope)
|
|
112
|
+
this.scope = this.translocoScope.toString();
|
|
113
|
+
}
|
|
114
|
+
// eslint-disable-next-line @angular-eslint/contextual-lifecycle
|
|
115
|
+
ngOnInit() {
|
|
116
|
+
if (this.ngControl && this.ngControl.control) {
|
|
117
|
+
this.ngControl.control.setValidators(Validators.compose([this.ngControl.control.validator, this.validate]));
|
|
118
|
+
}
|
|
119
|
+
// if reset observable has been passed, subscribe after updates
|
|
120
|
+
this.reset?.pipe(takeUntil(this._onDestroy$)).subscribe({
|
|
121
|
+
next: () => {
|
|
122
|
+
// reset value of controller
|
|
123
|
+
this.state = this.defaultValue;
|
|
124
|
+
this.onChange(this.state);
|
|
125
|
+
this.cdr.detectChanges();
|
|
126
|
+
},
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
// eslint-disable-next-line @angular-eslint/contextual-lifecycle
|
|
130
|
+
ngAfterViewInit() {
|
|
131
|
+
// if default value is set, then don't alter it. Otherwise, use
|
|
132
|
+
// current value of controller after initiation as default value
|
|
133
|
+
this.defaultValue = this.defaultValue ?? this.ngControl?.value;
|
|
134
|
+
}
|
|
135
|
+
ngOnDestroy() {
|
|
136
|
+
this._onDestroy$.next(true);
|
|
137
|
+
this._onDestroy$.complete();
|
|
138
|
+
}
|
|
139
|
+
detectChanges() {
|
|
140
|
+
this.cdr.detectChanges();
|
|
141
|
+
}
|
|
142
|
+
/** @internal */
|
|
143
|
+
onFocus(event) {
|
|
144
|
+
event.stopPropagation
|
|
145
|
+
? event.stopPropagation()
|
|
146
|
+
: (event.cancelBubble = true);
|
|
147
|
+
this.focused = true;
|
|
148
|
+
this.nggvFocus.emit(event);
|
|
149
|
+
}
|
|
150
|
+
/** @internal */
|
|
151
|
+
onBlur(event) {
|
|
152
|
+
event.stopPropagation
|
|
153
|
+
? event.stopPropagation()
|
|
154
|
+
: (event.cancelBubble = true);
|
|
155
|
+
this.onTouched();
|
|
156
|
+
this.focused = false;
|
|
157
|
+
this.nggvBlur.emit(event);
|
|
158
|
+
}
|
|
159
|
+
/** Sets the focus on the actual input element. */
|
|
160
|
+
setFocus() {
|
|
161
|
+
if (this.inputRef)
|
|
162
|
+
this.inputRef.nativeElement.focus();
|
|
163
|
+
}
|
|
164
|
+
// ----------------------------------------------------------------------------
|
|
165
|
+
// CONTROL VALUE ACCESSOR
|
|
166
|
+
// ----------------------------------------------------------------------------
|
|
167
|
+
/** Internal state/value that the native input element has. */
|
|
168
|
+
get state() {
|
|
169
|
+
return this._state;
|
|
170
|
+
}
|
|
171
|
+
/** Internal state/value that the native input element has. */
|
|
172
|
+
set state(value) {
|
|
173
|
+
if (typeof value === 'undefined')
|
|
174
|
+
value = null;
|
|
175
|
+
this._state = value;
|
|
176
|
+
}
|
|
177
|
+
/** Writes a new value to the child input element. */
|
|
178
|
+
writeValue(value) {
|
|
179
|
+
this.state = value;
|
|
180
|
+
}
|
|
181
|
+
/** Registers a callback function that is called when the child input element's value changes. */
|
|
182
|
+
registerOnChange(fn) {
|
|
183
|
+
this.onChange = fn;
|
|
184
|
+
}
|
|
185
|
+
/** Registers a callback function that is called when the child input element triggers on blur. */
|
|
186
|
+
registerOnTouched(fn) {
|
|
187
|
+
this.onTouched = fn;
|
|
188
|
+
}
|
|
189
|
+
/** Function that is called by the forms API when the control status changes to or from 'DISABLED'. */
|
|
190
|
+
setDisabledState(isDisabled) {
|
|
191
|
+
this.disabled = isDisabled;
|
|
192
|
+
// if displayDisabledAsLocked is enabled - update locked state based on disabled state
|
|
193
|
+
if (this.displayDisabledAsLocked) {
|
|
194
|
+
this.locked = isDisabled;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
// ----------------------------------------------------------------------------
|
|
198
|
+
// VALIDATORS
|
|
199
|
+
// ----------------------------------------------------------------------------
|
|
200
|
+
/** Method that performs synchronous validation against the provided control. Used for internal validation. */
|
|
201
|
+
validate(_control) {
|
|
202
|
+
return null;
|
|
203
|
+
}
|
|
204
|
+
/** Registers a callback function to call when the validator inputs change. */
|
|
205
|
+
registerOnValidatorChange(fn) {
|
|
206
|
+
this.onValidatorChange = fn;
|
|
207
|
+
}
|
|
208
|
+
// ----------------------------------------------------------------------------
|
|
209
|
+
// HELPERS
|
|
210
|
+
// ----------------------------------------------------------------------------
|
|
211
|
+
/** Returns the first entry in an error object. */
|
|
212
|
+
get firstError() {
|
|
213
|
+
const errors = this.ngControl.errors;
|
|
214
|
+
if (!errors)
|
|
215
|
+
return null;
|
|
216
|
+
const code = Object.keys(errors)[0];
|
|
217
|
+
return { code, params: errors[code] };
|
|
218
|
+
}
|
|
219
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvBaseControlValueAccessorComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: TRANSLOCO_SCOPE, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
220
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NgvBaseControlValueAccessorComponent, selector: "ng-component", inputs: { id: "id", name: "name", label: "label", role: "role", value: "value", error: "error", description: "description", autofocus: "autofocus", defaultValue: "defaultValue", reset: "reset", optional: "optional", locked: "locked", displayDisabledAsLocked: "displayDisabledAsLocked", required: "required", invalid: "invalid", valid: "valid", focused: "focused", disabled: "disabled" }, outputs: { nggvFocus: "nggvFocus", nggvBlur: "nggvBlur" }, host: { properties: { "attr.id": "this.id" } }, queries: [{ propertyName: "labelContentTpl", first: true, predicate: ["labelTpl"], descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["input"], descendants: true, read: ElementRef }], ngImport: i0, template: '', isInline: true }); }
|
|
221
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvBaseControlValueAccessorComponent }); }
|
|
222
|
+
}
|
|
223
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvBaseControlValueAccessorComponent, decorators: [{
|
|
224
|
+
type: Injectable
|
|
225
|
+
}, {
|
|
226
|
+
type: Component,
|
|
227
|
+
args: [{ template: '' }]
|
|
228
|
+
}], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
|
|
229
|
+
type: Self
|
|
230
|
+
}, {
|
|
231
|
+
type: Optional
|
|
232
|
+
}] }, { type: undefined, decorators: [{
|
|
233
|
+
type: Optional
|
|
234
|
+
}, {
|
|
235
|
+
type: Inject,
|
|
236
|
+
args: [TRANSLOCO_SCOPE]
|
|
237
|
+
}] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { labelContentTpl: [{
|
|
238
|
+
type: ContentChild,
|
|
239
|
+
args: ['labelTpl', { read: TemplateRef }]
|
|
240
|
+
}], inputRef: [{
|
|
241
|
+
type: ViewChild,
|
|
242
|
+
args: ['input', { read: ElementRef }]
|
|
243
|
+
}], id: [{
|
|
244
|
+
type: HostBinding,
|
|
245
|
+
args: ['attr.id']
|
|
246
|
+
}, {
|
|
247
|
+
type: Input
|
|
248
|
+
}], name: [{
|
|
249
|
+
type: Input
|
|
250
|
+
}], label: [{
|
|
251
|
+
type: Input
|
|
252
|
+
}], role: [{
|
|
253
|
+
type: Input
|
|
254
|
+
}], value: [{
|
|
255
|
+
type: Input
|
|
256
|
+
}], error: [{
|
|
257
|
+
type: Input
|
|
258
|
+
}], description: [{
|
|
259
|
+
type: Input
|
|
260
|
+
}], autofocus: [{
|
|
261
|
+
type: Input
|
|
262
|
+
}], defaultValue: [{
|
|
263
|
+
type: Input
|
|
264
|
+
}], reset: [{
|
|
265
|
+
type: Input
|
|
266
|
+
}], optional: [{
|
|
267
|
+
type: Input
|
|
268
|
+
}], locked: [{
|
|
269
|
+
type: Input
|
|
270
|
+
}], displayDisabledAsLocked: [{
|
|
271
|
+
type: Input
|
|
272
|
+
}], required: [{
|
|
273
|
+
type: Input
|
|
274
|
+
}], invalid: [{
|
|
275
|
+
type: Input
|
|
276
|
+
}], valid: [{
|
|
277
|
+
type: Input
|
|
278
|
+
}], focused: [{
|
|
279
|
+
type: Input
|
|
280
|
+
}], disabled: [{
|
|
281
|
+
type: Input
|
|
282
|
+
}], nggvFocus: [{
|
|
283
|
+
type: Output
|
|
284
|
+
}], nggvBlur: [{
|
|
285
|
+
type: Output
|
|
286
|
+
}] } });
|
|
287
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb250cm9sLXZhbHVlLWFjY2Vzc29yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvdi1hbmd1bGFyL2Jhc2UtY29udHJvbC12YWx1ZS1hY2Nlc3Nvci9iYXNlLWNvbnRyb2wtdmFsdWUtYWNjZXNzb3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsWUFBWSxFQUNaLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ04sVUFBVSxFQUNWLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFDSixXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFHTCxTQUFTLEVBR1QsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUE7QUFFdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRTFDLE9BQU8sRUFBRSxlQUFlLEVBQWtCLE1BQU0sbUJBQW1CLENBQUE7OztBQUluRSxrRUFBa0U7QUFDbEUsTUFBTSxPQUFPLG9DQUFvQztJQXlDL0Msb0VBQW9FO0lBQ3BFLElBQWEsTUFBTSxDQUFDLEtBQWlDO1FBQ25ELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBO1FBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDMUIsQ0FBQztJQUNELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQTtJQUNyQixDQUFDO0lBT0QsbURBQW1EO0lBQ25ELElBQWEsUUFBUSxDQUFDLEtBQWlDO1FBQ3JELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFBO0lBQ3hCLENB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LFNBQVM7O3NCQUFHLEtBQUs7Z0JBRXJCLElBQUk7c0JBQVosS0FBSztnQkFLRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSU8sTUFBTTtzQkFBbEIsS0FBSztnQkFRRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBTU8sUUFBUTtzQkFBcEIsS0FBSztnQkF3Qk8sT0FBTztzQkFBbkIsS0FBSztnQkFhTyxLQUFLO3NCQUFqQixLQUFLO2dCQVVHLE9BQU87c0JBQWYsS0FBSztnQkFJTyxRQUFRO3NCQUFwQixLQUFLO2dCQWFhLFNBQVM7c0JBQTNCLE1BQU07Z0JBRVksUUFBUTtzQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb250ZW50Q2hpbGQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5qZWN0LFxuICBJbmplY3RhYmxlLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNlbGYsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBOZ0NvbnRyb2wsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbiAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5cbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5cbmltcG9ydCB7IFRSQU5TTE9DT19TQ09QRSwgVHJhbnNsb2NvU2NvcGUgfSBmcm9tICdAbmduZWF0L3RyYW5zbG9jbydcblxuQEluamVjdGFibGUoKSAvLyBXb3JrYXJvdW5kIGZvciBDb21wb2RvYyBodHRwczovL2dpdGh1Yi5jb20vY29tcG9kb2MvY29tcG9kb2MvaXNzdWVzLzk4NFxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KSAvLyBSZXF1aXJlZCB3aXRoIEFuZ3VsYXIgaXZ5IGNvbXBpbGVyXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcbmV4cG9ydCBjbGFzcyBOZ3ZCYXNlQ29udHJvbFZhbHVlQWNjZXNzb3JDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvclxue1xuICAvKiogQ3VzdG9tIHRlbXBsYXRlIGZvciBkaXNwbGF5aW5nIHRoZSBjb250ZW50IG9mIHRoZSBsYWJlbC5cbiAgICogU3BlY2lmaWVkIGJ5IG5lc3RpbmcgYW4gYDxuZy10ZW1wbGF0ZSAjbGFiZWxUcGw+Q3VzdG9tIExhYmVsPC9uZy10ZW1wbGF0ZT5gLlxuICAgKi9cbiAgQENvbnRlbnRDaGlsZCgnbGFiZWxUcGwnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIGxhYmVsQ29udGVudFRwbD86IFRlbXBsYXRlUmVmPHVuZGVmaW5lZD5cblxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBuYXRpdmUgY2hpbGQgaW5wdXQgZWxlbWVudC4gKi9cbiAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgaW5wdXRSZWY/OiBFbGVtZW50UmVmXG5cbiAgLyogQVRUUklCVVRFUyAqL1xuXG4gIC8qKiBJZCBvZiB0aGUgaG9zdCBlbGVtZW50IGFuZCBpcyBhY2Nlc3NpYmxlIGJ5IHRoZSBjaGlsZHJlbiwgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgbm90IHByb3ZpZGVkLiAqL1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKSBASW5wdXQoKSBpZCA9ICh3aW5kb3cgYXMgYW55KS5uZ2d2Py5uZXh0SWQoKVxuICAvKiogTmFtZSBvZiB0aGUgY2hpbGQgaW5wdXQgZWxlbWVudC4gKi9cbiAgQElucHV0KCkgbmFtZT86IHN0cmluZ1xuICAvKipcbiAgICogTGFiZWwgb2YgdGhlIGNoaWxkIGlucHV0IGVsZW1lbnQgdXNpbmcgdGhlIGRlZmF1bHQgdGVtcGxhdGUuXG4gICAqIENhbiBiZSBvdmVyd3JpdHRlbiBieSBzcGVjaWZ5aW5nIGFuIGA8bmctdGVtcGxhdGUgI2xhYmVsVHBsPkN1c3RvbSBMYWJlbDwvbmctdGVtcGxhdGU+YC5cbiAgICovXG4gIEBJbnB1dCgpIGxhYmVsPzogc3RyaW5nXG4gIC8qKiBSb2xlIG9mIHRoZSBjaGlsZCBpbnB1dCBlbGVtZW50LiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BY2Nlc3NpYmlsaXR5L0FSSUEvUm9sZXMgKi9cbiAgQElucHV0KCkgcm9sZT86IHN0cmluZ1xuICAvKiogVmFsdWUgb2YgdGhlIGNoaWxkIGlucHV0IGVsZW1lbnQuIE1vc3RseSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggcmFkaW8gYW5kIGNoZWNrYm94ZXMuICovXG4gIEBJbnB1dCgpIHZhbHVlOiBhbnlcbiAgLyoqIEFuIGVycm9yIHN0cmluZyB0byBiZSBzaG93biB1bmRlciBpbnZhbGlkIGlucHV0cy4gT3ZlcndyaXRlcyBhbnkgZm9ybSBlcnJvcnMuICovXG4gIEBJbnB1dCgpIGVycm9yPzogc3RyaW5nXG4gIC8qKiBEZXNjcmlwdGlvbiBvZiB0aGUgY2hpbGQgaW5wdXQgZWxlbWVudC4gQm90aCB2aXNpYmx5IGFuZCBhcyBgYXJpYS1sYWJlbGAuICovXG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uPzogc3RyaW5nXG4gIC8qKiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIGJyb3dzZXIgd2lsbCB0cnkgdG8gYXV0b21hdGljYWxseSBzZXQgZm9jdXMgdG8gdGhlIGNoaWxkIGlucHV0IGVsZW1lbnQuICovXG4gIEBJbnB1dCgpIGF1dG9mb2N1cyA9IGZhbHNlXG4gIC8qKiBEZWFmdWx0IHZhbHVlIG9mIHRoZSBjaGlsZCBpbnB1dCBlbGVtZW50LiBVc2VkIHdoZW4gcmVzZXR0aW5nIGNoaWxkIGVsZW1lbnQuICovXG4gIEBJbnB1dCgpIGRlZmF1bHRWYWx1ZT86IGFueVxuICAvKiogSWYgcGFzc2VkLCB0aGUgY29tcG9uZW50IHdpbGwgbGlzdGVuIGZvciB1cGRhdGVzIGFuZCB3aWxsIHJlc2V0IGl0cyB2YWx1ZS4gKi9cbiAgQElucHV0KCkgcmVzZXQ/OiBPYnNlcnZhYmxlPGFueT5cbiAgLyoqIEFkZHMgKE9wdGlvbmFsKSB0byBpbnB1dCBsYWJlbC4gKi9cbiAgQElucHV0KCkgb3B0aW9uYWw/OiBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZFxuXG4gIHByaXZhdGUgX2xvY2tlZDogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcbiAgLyoqIEhpZGVzIHRoZSBpbnB1dCBib3JkZXJzIGFuZCBkaXNwbGF5cyBjdXJyZW50IHZhbHVlIGFzIGEgdGV4dC4gKi9cbiAgQElucHV0KCkgc2V0IGxvY2tlZCh2YWx1ZTogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9sb2NrZWQgPSB2YWx1ZVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICB9XG4gIGdldCBsb2NrZWQoKTogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9sb2NrZWRcbiAgfVxuICAvKiogSWYgc2V0IHRvIHRydWUsIHVzaW5nIGEgY29udHJvbHMgZGlzYWJsZWQgc3RhdGUgd2lsbCBkaXNwbGF5IGlucHV0IGFzIGxvY2tlZC4gKi9cbiAgQElucHV0KCkgZGlzcGxheURpc2FibGVkQXNMb2NrZWQ/OiBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZFxuXG4gIC8qIFNUQVRFUyAqL1xuXG4gIHByaXZhdGUgX3JlcXVpcmVkOiBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZFxuICAvKiogT3ZlcnJpZGUgdGhlIHJlcXVpcmVkIGZsYWcgb2YgdGhlIGNvbXBvbmVudC4gKi9cbiAgQElucHV0KCkgc2V0IHJlcXVpcmVkKHZhbHVlOiBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX3JlcXVpcmVkID0gdmFsdWVcbiAgfVxuICAvKiogQ2hpbGQgaW5wdXQgZWxlbWVudCBpcyBjb25zaWRlcmVkIHJlcXVpcmVkIGFuZCBjaGFuZ2VzIGRlZmF1bHQgbGFiZWwgdGVtcGxhdGUgYWNjb3JkaW5nbHkuICovXG4gIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZCB7XG4gICAgLy8gaWYgcmVxdWlyZWQgaXMgc2V0ID0+IHJldHVybiByZXF1aXJlZFxuICAgIGlmICh0aGlzLl9yZXF1aXJlZCAhPT0gdW5kZWZpbmVkKSByZXR1cm4gdGhpcy5fcmVxdWlyZWRcblxuICAgIC8vIGlmIHJlcXVpcmVkIGNhbiBiZSBkZXRlcm1pbmVkIGZyb20gdGhlIGNvbnRyb2wgPT4gcmV0dXJuIGNvbnRyb2wucmVxdWlyZWRcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnZhbGlkYXRvcikge1xuICAgICAgY29uc3QgdmFsaWRhdG9yID0gdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnZhbGlkYXRvcihcbiAgICAgICAge30gYXMgQWJzdHJhY3RDb250cm9sLFxuICAgICAgKVxuICAgICAgLy8gcmV0dXJucyB0cnVlIGZvciBhbnkgZXJyb3IgdGhhdCBzdGFydHMgd2l0aCByZXF1aXJlZFxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHZhbGlkYXRvciA/PyB7fSkuc29tZSgoa2V5KSA9PlxuICAgICAgICBrZXkuc3RhcnRzV2l0aCgncmVxdWlyZWQnKSxcbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm5cbiAgfVxuXG4gIHByaXZhdGUgX2ludmFsaWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcbiAgLyoqIE92ZXJyaWRlIHRoZSBpbnZhbGlkIHN0YXRlIG9mIHRoZSBjb21wb25lbnQuICovXG4gIEBJbnB1dCgpIHNldCBpbnZhbGlkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5faW52YWxpZCA9IHZhbHVlXG4gIH1cbiAgLyoqIFRoZSBjb21wb25lbnQgaGFzIHRoZSBpbnZhbGlkIHN0YXRlLCB1c3VhbGx5IGRlY29yYXRpbmcgdGhlIGVsZW1lbnRzIHJlZCBhbmQgc2hvd3MgdGhlIGZpcnN0IGVycm9yLiAqL1xuICBnZXQgaW52YWxpZCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5faW52YWxpZCA9PT0gdHJ1ZSB8fCB0aGlzLl9pbnZhbGlkID09PSBmYWxzZSkgcmV0dXJuIHRoaXMuX2ludmFsaWRcbiAgICByZXR1cm4gKFxuICAgICAgISF0aGlzLm5nQ29udHJvbD8uY29udHJvbD8uaW52YWxpZCAmJiB0aGlzLm5nQ29udHJvbD8uY29udHJvbD8udG91Y2hlZFxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgX3ZhbGlkOiBib29sZWFuIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG4gIC8qKiBPdmVycmlkZSB0aGUgdmFsaWQgc3RhdGUgb2YgdGhlIGNvbXBvbmVudC4gKi9cbiAgQElucHV0KCkgc2V0IHZhbGlkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fdmFsaWQgPSB2YWx1ZVxuICB9XG4gIC8qKiBUaGUgY29tcG9uZW50IGhhcyB0aGUgdmFsaWQgc3RhdGUsIHVzdWFsbHkgZGVjb3JhdGluZyB0aGUgZWxlbWVudHMgZ3JlZW4uICovXG4gIGdldCB2YWxpZCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5fdmFsaWQgPT09IHRydWUgfHwgdGhpcy5fdmFsaWQgPT09IGZhbHNlKSByZXR1cm4gdGhpcy5fdmFsaWRcbiAgICByZXR1cm4gISF0aGlzLm5nQ29udHJvbD8uY29udHJvbD8udmFsaWQgJiYgdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnRvdWNoZWRcbiAgfVxuXG4gIC8qKiBUaGUgY29tcG9uZW50IGhhcyB0aGUgZm9jdXNlZCBzdGF0ZSwgdXBkYXRlZCBieSB0aGUgY2hpbGQgaW5wdXQgZWxlbWVudCdzIGZvY3VzIHN0YXRlLiAqL1xuICBASW5wdXQoKSBmb2N1c2VkID0gZmFsc2VcblxuICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZFxuICAvKiogT3ZlcnJpZGUgdGhlIGRpc2FibGVkIHN0YXRlIG9mIHRoZSBjb21wb25lbnQuICovXG4gIEBJbnB1dCgpIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2Rpc2FibGVkID0gdmFsdWVcbiAgfVxuICAvKiogVGhlIGNvbXBvbmVudCBoYXMgdGhlIGRpc2FibGVkIHN0YXRlLCB1c3VhbGx5IG11dGluZyB0aGUgY29sb3JzIGFuZCByZW1vdmVzIGludGVyYWN0aW9uLiAqL1xuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuX2Rpc2FibGVkID09PSB0cnVlIHx8IHRoaXMuX2Rpc2FibGVkID09PSBmYWxzZSlcbiAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZFxuICAgIHJldHVybiAhIXRoaXMubmdDb250cm9sPy5jb250cm9sPy5kaXNhYmxlZFxuICB9XG5cbiAgLyogVFJJR0dFUlMgKi9cblxuICAvKiogRW1pdHMgZm9jdXMgZXZlbnRzIHRyaWdnZXJlZCBieSB0aGUgY2hpbGQgZWxlbWVudHMuICovXG4gIEBPdXRwdXQoKSByZWFkb25seSBuZ2d2Rm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgLyoqIEVtaXRzIGZvY3VzIGV2ZW50cyB0cmlnZ2VyZWQgYnkgdGhlIGNoaWxkIGVsZW1lbnRzLiAqL1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgbmdndkJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyKClcblxuICAvKiBWQUxVRSBIQU5ETEVSUyAqL1xuXG4gIHByaXZhdGUgX3N0YXRlOiBhbnkgPSBudWxsXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHJvdGVjdGVkIG9uQ2hhbmdlID0gKF86IGFueSkgPT4ge1xuICAgIC8vIGRvIG5vdGhpbmdcbiAgfVxuICAvKiogQGludGVybmFsICovXG4gIHByb3RlY3RlZCBvblRvdWNoZWQgPSAoKSA9PiB7XG4gICAgLy8gZG8gbm90aGluZ1xuICB9XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHJvdGVjdGVkIG9uVmFsaWRhdG9yQ2hhbmdlOiAoKSA9PiB2b2lkID0gKCkgPT4gbnVsbFxuXG4gIC8qIE9USEVSIFZBUklBQkxFUyAqL1xuICBzY29wZTogc3RyaW5nIHwgdW5kZWZpbmVkXG5cbiAgLyogTElGRSBDWUNMRSBWQVJJQUJMRVMgKi9cblxuICBwcml2YXRlIF9vbkRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IEJhc2VDb250cm9sVmFsdWVBY2Nlc3NvckNvbXBvbmVudC5cbiAgICogQHBhcmFtIG5nQ29udHJvbCBvcHRpb25hbCBGb3JtQ29udHJvbCBwcm92aWRlZCB3aGVuIGNvbXBvbmVudCBpcyB1c2VkIGluIGEgZm9ybSwgdGhyb3VnaCBkZXBlbmRlbmN5IGluamVjdGlvbi5cbiAgICogQHBhcmFtIHRyYW5zbG9jb1Njb3BlIG9wdGlvbmFsIFRyYW5zbG9jb1Njb3BlIHByb3ZpZGVkIGlmIGNvbXBvbmVudCBpcyB1c2VkIHdpdGhpbiBhIHNjb3BlLlxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KFRSQU5TTE9DT19TQ09QRSlcbiAgICBwcm90ZWN0ZWQgdHJhbnNsb2NvU2NvcGU6IFRyYW5zbG9jb1Njb3BlLFxuICAgIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHtcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgIC8vIE5vdGU6IHdlIHByb3ZpZGUgdGhlIHZhbHVlIGFjY2Vzc29yIHRocm91Z2ggaGVyZSwgaW5zdGVhZCBvZlxuICAgICAgLy8gdGhlIGBwcm92aWRlcnNgIHRvIGF2b2lkIHJ1bm5pbmcgaW50byBhIGNpcmN1bGFyIGltcG9ydC5cbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzXG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHJhbnNsb2NvU2NvcGUpIHRoaXMuc2NvcGUgPSB0aGlzLnRyYW5zbG9jb1Njb3BlLnRvU3RyaW5nKClcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29udGV4dHVhbC1saWZlY3ljbGVcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubmdDb250cm9sICYmIHRoaXMubmdDb250cm9sLmNvbnRyb2wpIHtcbiAgICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2wuc2V0VmFsaWRhdG9ycyhcbiAgICAgICAgVmFsaWRhdG9ycy5jb21wb3NlKFt0aGlzLm5nQ29udHJvbC5jb250cm9sLnZhbGlkYXRvciwgdGhpcy52YWxpZGF0ZV0pLFxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIGlmIHJlc2V0IG9ic2VydmFibGUgaGFzIGJlZW4gcGFzc2VkLCBzdWJzY3JpYmUgYWZ0ZXIgdXBkYXRlc1xuICAgIHRoaXMucmVzZXQ/LnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAvLyByZXNldCB2YWx1ZSBvZiBjb250cm9sbGVyXG4gICAgICAgIHRoaXMuc3RhdGUgPSB0aGlzLmRlZmF1bHRWYWx1ZVxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuc3RhdGUpXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICAgICAgfSxcbiAgICB9KVxuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb250ZXh0dWFsLWxpZmVjeWNsZVxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgLy8gaWYgZGVmYXVsdCB2YWx1ZSBpcyBzZXQsIHRoZW4gZG9uJ3QgYWx0ZXIgaXQuIE90aGVyd2lzZSwgdXNlXG4gICAgLy8gY3VycmVudCB2YWx1ZSBvZiBjb250cm9sbGVyIGFmdGVyIGluaXRpYXRpb24gYXMgZGVmYXVsdCB2YWx1ZVxuICAgIHRoaXMuZGVmYXVsdFZhbHVlID0gdGhpcy5kZWZhdWx0VmFsdWUgPz8gdGhpcy5uZ0NvbnRyb2w/LnZhbHVlXG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkRlc3Ryb3kkLm5leHQodHJ1ZSlcbiAgICB0aGlzLl9vbkRlc3Ryb3kkLmNvbXBsZXRlKClcbiAgfVxuXG4gIGRldGVjdENoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIG9uRm9jdXMoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uXG4gICAgICA/IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICA6IChldmVudC5jYW5jZWxCdWJibGUgPSB0cnVlKVxuICAgIHRoaXMuZm9jdXNlZCA9IHRydWVcbiAgICB0aGlzLm5nZ3ZGb2N1cy5lbWl0KGV2ZW50KVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBvbkJsdXIoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uXG4gICAgICA/IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICA6IChldmVudC5jYW5jZWxCdWJibGUgPSB0cnVlKVxuICAgIHRoaXMub25Ub3VjaGVkKClcbiAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZVxuICAgIHRoaXMubmdndkJsdXIuZW1pdChldmVudClcbiAgfVxuXG4gIC8qKiBTZXRzIHRoZSBmb2N1cyBvbiB0aGUgYWN0dWFsIGlucHV0IGVsZW1lbnQuICovXG4gIHNldEZvY3VzKCkge1xuICAgIGlmICh0aGlzLmlucHV0UmVmKSB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKVxuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBDT05UUk9MIFZBTFVFIEFDQ0VTU09SXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvKiogSW50ZXJuYWwgc3RhdGUvdmFsdWUgdGhhdCB0aGUgbmF0aXZlIGlucHV0IGVsZW1lbnQgaGFzLiAgKi9cbiAgZ2V0IHN0YXRlKCkge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZVxuICB9XG5cbiAgLyoqIEludGVybmFsIHN0YXRlL3ZhbHVlIHRoYXQgdGhlIG5hdGl2ZSBpbnB1dCBlbGVtZW50IGhhcy4gICovXG4gIHNldCBzdGF0ZSh2YWx1ZSkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnKSB2YWx1ZSA9IG51bGxcbiAgICB0aGlzLl9zdGF0ZSA9IHZhbHVlXG4gIH1cblxuICAvKiogV3JpdGVzIGEgbmV3IHZhbHVlIHRvIHRoZSBjaGlsZCBpbnB1dCBlbGVtZW50LiAqL1xuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gdmFsdWVcbiAgfVxuXG4gIC8qKiBSZWdpc3RlcnMgYSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aGVuIHRoZSBjaGlsZCBpbnB1dCBlbGVtZW50J3MgdmFsdWUgY2hhbmdlcy4gKi9cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IGFueSkgPT4gb2JqZWN0KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuXG4gIH1cblxuICAvKiogUmVnaXN0ZXJzIGEgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgd2hlbiB0aGUgY2hpbGQgaW5wdXQgZWxlbWVudCB0cmlnZ2VycyBvbiBibHVyLiAqL1xuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm5cbiAgfVxuXG4gIC8qKiBGdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCBieSB0aGUgZm9ybXMgQVBJIHdoZW4gdGhlIGNvbnRyb2wgc3RhdHVzIGNoYW5nZXMgdG8gb3IgZnJvbSAnRElTQUJMRUQnLiAqL1xuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZFxuXG4gICAgLy8gaWYgZGlzcGxheURpc2FibGVkQXNMb2NrZWQgaXMgZW5hYmxlZCAtIHVwZGF0ZSBsb2NrZWQgc3RhdGUgYmFzZWQgb24gZGlzYWJsZWQgc3RhdGVcbiAgICBpZiAodGhpcy5kaXNwbGF5RGlzYWJsZWRBc0xvY2tlZCkge1xuICAgICAgdGhpcy5sb2NrZWQgPSBpc0Rpc2FibGVkXG4gICAgfVxuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBWQUxJREFUT1JTXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvKiogTWV0aG9kIHRoYXQgcGVyZm9ybXMgc3luY2hyb25vdXMgdmFsaWRhdGlvbiBhZ2FpbnN0IHRoZSBwcm92aWRlZCBjb250cm9sLiBVc2VkIGZvciBpbnRlcm5hbCB2YWxpZGF0aW9uLiAqL1xuICB2YWxpZGF0ZShfY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBbbmFtZTogc3RyaW5nXTogYW55IH0gfCBudWxsIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLyoqIFJlZ2lzdGVycyBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGNhbGwgd2hlbiB0aGUgdmFsaWRhdG9yIGlucHV0cyBjaGFuZ2UuICovXG4gIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVmFsaWRhdG9yQ2hhbmdlID0gZm5cbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gSEVMUEVSU1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqIFJldHVybnMgdGhlIGZpcnN0IGVudHJ5IGluIGFuIGVycm9yIG9iamVjdC4gKi9cbiAgZ2V0IGZpcnN0RXJyb3IoKTogeyBjb2RlOiBzdHJpbmc7IHBhcmFtczogYW55IH0gfCBudWxsIHtcbiAgICBjb25zdCBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gdGhpcy5uZ0NvbnRyb2wuZXJyb3JzXG4gICAgaWYgKCFlcnJvcnMpIHJldHVybiBudWxsXG4gICAgY29uc3QgY29kZTogc3RyaW5nID0gT2JqZWN0LmtleXMoZXJyb3JzKVswXVxuICAgIHJldHVybiB7IGNvZGUsIHBhcmFtczogZXJyb3JzW2NvZGVdIH1cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { NgvBaseControlValueAccessorComponent } from './base-control-value-accessor.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class NgvBaseControlValueAccessorModule {
|
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvBaseControlValueAccessorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: NgvBaseControlValueAccessorModule, declarations: [NgvBaseControlValueAccessorComponent], exports: [NgvBaseControlValueAccessorComponent] }); }
|
|
7
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvBaseControlValueAccessorModule }); }
|
|
8
|
+
}
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvBaseControlValueAccessorModule, decorators: [{
|
|
10
|
+
type: NgModule,
|
|
11
|
+
args: [{
|
|
12
|
+
declarations: [NgvBaseControlValueAccessorComponent],
|
|
13
|
+
imports: [],
|
|
14
|
+
exports: [NgvBaseControlValueAccessorComponent],
|
|
15
|
+
}]
|
|
16
|
+
}] });
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb250cm9sLXZhbHVlLWFjY2Vzc29yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvdi1hbmd1bGFyL2Jhc2UtY29udHJvbC12YWx1ZS1hY2Nlc3Nvci9iYXNlLWNvbnRyb2wtdmFsdWUtYWNjZXNzb3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDeEMsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0seUNBQXlDLENBQUE7O0FBTzlGLE1BQU0sT0FBTyxpQ0FBaUM7K0dBQWpDLGlDQUFpQztnSEFBakMsaUNBQWlDLGlCQUo3QixvQ0FBb0MsYUFFekMsb0NBQW9DO2dIQUVuQyxpQ0FBaUM7OzRGQUFqQyxpQ0FBaUM7a0JBTDdDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsb0NBQW9DLENBQUM7b0JBQ3BELE9BQU8sRUFBRSxFQUFFO29CQUNYLE9BQU8sRUFBRSxDQUFDLG9DQUFvQyxDQUFDO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE5ndkJhc2VDb250cm9sVmFsdWVBY2Nlc3NvckNvbXBvbmVudCB9IGZyb20gJy4vYmFzZS1jb250cm9sLXZhbHVlLWFjY2Vzc29yLmNvbXBvbmVudCdcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbTmd2QmFzZUNvbnRyb2xWYWx1ZUFjY2Vzc29yQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW10sXG4gIGV4cG9ydHM6IFtOZ3ZCYXNlQ29udHJvbFZhbHVlQWNjZXNzb3JDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3ZCYXNlQ29udHJvbFZhbHVlQWNjZXNzb3JNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './base-control-value-accessor.component';
|
|
2
|
+
export * from './base-control-value-accessor.module';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci9iYXNlLWNvbnRyb2wtdmFsdWUtYWNjZXNzb3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5Q0FBeUMsQ0FBQTtBQUN2RCxjQUFjLHNDQUFzQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9iYXNlLWNvbnRyb2wtdmFsdWUtYWNjZXNzb3IuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9iYXNlLWNvbnRyb2wtdmFsdWUtYWNjZXNzb3IubW9kdWxlJ1xuIl19
|