ngx-tethys 15.3.7 → 15.3.9
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/CHANGELOG.md +24 -0
- package/action/action.component.d.ts +24 -4
- package/action/examples/feedback/feedback.component.scss +3 -0
- package/action/styles/action.scss +4 -4
- package/action/styles/mixin.scss +8 -6
- package/esm2020/action/action.component.mjs +57 -7
- package/esm2020/date-picker/picker.component.mjs +3 -3
- package/esm2020/form/form-validator-loader.mjs +4 -2
- package/esm2020/property/property-item.component.mjs +7 -1
- package/esm2020/version.mjs +2 -2
- package/fesm2015/ngx-tethys-action.mjs +56 -5
- package/fesm2015/ngx-tethys-action.mjs.map +1 -1
- package/fesm2015/ngx-tethys-date-picker.mjs +2 -2
- package/fesm2015/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2015/ngx-tethys-form.mjs +3 -1
- package/fesm2015/ngx-tethys-form.mjs.map +1 -1
- package/fesm2015/ngx-tethys-property.mjs +6 -0
- package/fesm2015/ngx-tethys-property.mjs.map +1 -1
- package/fesm2015/ngx-tethys.mjs +1 -1
- package/fesm2015/ngx-tethys.mjs.map +1 -1
- package/fesm2020/ngx-tethys-action.mjs +55 -5
- package/fesm2020/ngx-tethys-action.mjs.map +1 -1
- package/fesm2020/ngx-tethys-date-picker.mjs +2 -2
- package/fesm2020/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2020/ngx-tethys-form.mjs +3 -1
- package/fesm2020/ngx-tethys-form.mjs.map +1 -1
- package/fesm2020/ngx-tethys-property.mjs +6 -0
- package/fesm2020/ngx-tethys-property.mjs.map +1 -1
- package/fesm2020/ngx-tethys.mjs +1 -1
- package/fesm2020/ngx-tethys.mjs.map +1 -1
- package/package.json +1 -1
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/styles/modules/tables.scss +6 -15
- package/styles/variables.scss +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,30 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [15.3.9](https://github.com/atinc/ngx-tethys/compare/15.3.5...15.3.9) (2023-06-08)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **form:** fix defaultRemoveError removeChild error #INFR-8240 ([c856d80](https://github.com/atinc/ngx-tethys/commit/c856d80c2633f2af4fb710e3254b536d79caf6f8)), closes [#INFR-8240](https://github.com/atinc/ngx-tethys/issues/INFR-8240)
|
|
11
|
+
* **table:** thyTheme值为bordered且可拖拽时,拖拽图标和文字之间的间距过大 #INFR-8217 ([#2705](https://github.com/atinc/ngx-tethys/issues/2705)) ([f2ac471](https://github.com/atinc/ngx-tethys/commit/f2ac471cb2e92d4297e5f03308eb828b741a47db)), closes [#INFR-8217](https://github.com/atinc/ngx-tethys/issues/INFR-8217) [#INFR-8217](https://github.com/atinc/ngx-tethys/issues/INFR-8217) [#INFR-8217](https://github.com/atinc/ngx-tethys/issues/INFR-8217)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
* **action:** supports success and error feedback #INFR-8234 ([#2706](https://github.com/atinc/ngx-tethys/issues/2706)) ([62edb36](https://github.com/atinc/ngx-tethys/commit/62edb3633e73032d2ce378a87bf45fe3abd88842)), closes [#INFR-8234](https://github.com/atinc/ngx-tethys/issues/INFR-8234)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
## [15.3.8](https://github.com/atinc/ngx-tethys/compare/15.3.5...15.3.8) (2023-06-06)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
### Bug Fixes
|
|
24
|
+
* **date-picker:** fix calendar icon hover style #INFR-8182 ([#2702](https://github.com/atinc/ngx-tethys/issues/2702)) ([94e3013](https://github.com/atinc/ngx-tethys/commit/94e3013120d4d15c4006d023d99f1d9b14179135)), closes [#INFR-8182](https://github.com/atinc/ngx-tethys/issues/INFR-8182)
|
|
25
|
+
* **property:** should complete eventDestroy$ when component destroy ([#2703](https://github.com/atinc/ngx-tethys/issues/2703)) ([b3fe97c](https://github.com/atinc/ngx-tethys/commit/b3fe97c66d84113e47dd0db2d8fe0ec2c0a0cc00))
|
|
26
|
+
* **property:** should destroy the subscription of click event when the value of thyEditable is changed from true to false #INFR-8179 ([#2701](https://github.com/atinc/ngx-tethys/issues/2701)) ([ac9ba57](https://github.com/atinc/ngx-tethys/commit/ac9ba5761bc068b3359b58c76fc57937610d25c6)), closes [#INFR-8179](https://github.com/atinc/ngx-tethys/issues/INFR-8179)
|
|
27
|
+
|
|
28
|
+
|
|
5
29
|
## [15.3.7](https://github.com/atinc/ngx-tethys/compare/15.3.5...15.3.7) (2023-06-05)
|
|
6
30
|
|
|
7
31
|
|
|
@@ -1,17 +1,27 @@
|
|
|
1
|
-
import { OnInit, AfterViewInit, OnChanges, ElementRef, Renderer2, SimpleChanges } from '@angular/core';
|
|
1
|
+
import { OnInit, AfterViewInit, OnChanges, ElementRef, Renderer2, SimpleChanges, ChangeDetectorRef, OnDestroy } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export type ThyActionType = 'primary' | 'success' | 'danger' | 'warning';
|
|
4
|
+
export type ThyActionFeedback = 'success' | 'error';
|
|
5
|
+
export interface ThyActionFeedbackOptions {
|
|
6
|
+
icon?: string;
|
|
7
|
+
class?: string;
|
|
8
|
+
duration?: number;
|
|
9
|
+
}
|
|
4
10
|
/**
|
|
5
11
|
* 立即操作组件
|
|
6
12
|
* @name thy-action,[thyAction]
|
|
7
13
|
*/
|
|
8
|
-
export declare class ThyActionComponent implements OnInit, AfterViewInit, OnChanges {
|
|
14
|
+
export declare class ThyActionComponent implements OnInit, AfterViewInit, OnChanges, OnDestroy {
|
|
9
15
|
private elementRef;
|
|
10
16
|
private renderer;
|
|
17
|
+
private cdr;
|
|
11
18
|
icon: string;
|
|
12
|
-
|
|
19
|
+
feedback: ThyActionFeedback;
|
|
20
|
+
feedbackOptions: ThyActionFeedbackOptions;
|
|
21
|
+
active: boolean;
|
|
13
22
|
private type;
|
|
14
23
|
private hostRenderer;
|
|
24
|
+
private feedbackTimer;
|
|
15
25
|
/**
|
|
16
26
|
* 操作图标的类型
|
|
17
27
|
* @type primary | success | danger | warning
|
|
@@ -50,14 +60,24 @@ export declare class ThyActionComponent implements OnInit, AfterViewInit, OnChan
|
|
|
50
60
|
* @default false
|
|
51
61
|
*/
|
|
52
62
|
thyDisabled: boolean;
|
|
53
|
-
constructor(elementRef: ElementRef<HTMLElement>, renderer: Renderer2);
|
|
63
|
+
constructor(elementRef: ElementRef<HTMLElement>, renderer: Renderer2, cdr: ChangeDetectorRef);
|
|
54
64
|
ngOnInit(): void;
|
|
55
65
|
ngAfterViewInit(): void;
|
|
56
66
|
ngOnChanges(changes: SimpleChanges): void;
|
|
57
67
|
setMarginRight(marginRight: string): void;
|
|
68
|
+
/**
|
|
69
|
+
* 触发成功反馈操作
|
|
70
|
+
*/
|
|
71
|
+
success(options?: ThyActionFeedbackOptions): void;
|
|
72
|
+
/**
|
|
73
|
+
* 触发失败反馈操作
|
|
74
|
+
*/
|
|
75
|
+
error(options?: ThyActionFeedbackOptions): void;
|
|
76
|
+
private setFeedback;
|
|
58
77
|
private wrapSpanForText;
|
|
59
78
|
private setActionType;
|
|
60
79
|
private updateClasses;
|
|
80
|
+
ngOnDestroy(): void;
|
|
61
81
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThyActionComponent, never>;
|
|
62
82
|
static ɵcmp: i0.ɵɵComponentDeclaration<ThyActionComponent, "thy-action, [thyAction]", never, { "thyType": "thyType"; "thyIcon": "thyIcon"; "thyActionIcon": "thyActionIcon"; "thyActive": "thyActive"; "thyActionActive": "thyActionActive"; "thyTheme": "thyTheme"; "thyHoverIcon": "thyHoverIcon"; "thyDisabled": "thyDisabled"; }, {}, never, ["*"], true, never>;
|
|
63
83
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
@use
|
|
2
|
-
@use
|
|
3
|
-
@use
|
|
4
|
-
@use
|
|
1
|
+
@use '../../styles/mixins/hover.scss';
|
|
2
|
+
@use '../../styles/bootstrap/functions-variables';
|
|
3
|
+
@use '../../styles/variables.scss';
|
|
4
|
+
@use './mixin.scss' as action-mixin;
|
|
5
5
|
|
|
6
6
|
.thy-action {
|
|
7
7
|
padding: variables.$action-padding-y variables.$action-padding-x;
|
package/action/styles/mixin.scss
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
@use
|
|
2
|
-
@use
|
|
1
|
+
@use '../../styles/mixins/hover.scss';
|
|
2
|
+
@use '../../styles/variables.scss';
|
|
3
3
|
|
|
4
4
|
@mixin action-variant($color, $hover-color, $hover-bg-color) {
|
|
5
5
|
color: $color;
|
|
6
6
|
|
|
7
7
|
@include hover.hover-active {
|
|
8
|
-
|
|
9
|
-
background: $hover-bg-color;
|
|
10
|
-
|
|
11
|
-
> span {
|
|
8
|
+
&:not(.thy-action-has-feedback) {
|
|
12
9
|
color: $hover-color;
|
|
10
|
+
background: $hover-bg-color;
|
|
11
|
+
|
|
12
|
+
> span {
|
|
13
|
+
color: $hover-color;
|
|
14
|
+
}
|
|
13
15
|
}
|
|
14
16
|
}
|
|
15
17
|
}
|
|
@@ -1,10 +1,23 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { ChangeDetectionStrategy, Component, Input, ElementRef, Renderer2 } from '@angular/core';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, Input, ElementRef, Renderer2, ChangeDetectorRef } from '@angular/core';
|
|
3
3
|
import { InputBoolean } from 'ngx-tethys/core';
|
|
4
4
|
import { useHostRenderer } from '@tethys/cdk/dom';
|
|
5
5
|
import { ThyIconComponent } from 'ngx-tethys/icon';
|
|
6
6
|
import { NgIf } from '@angular/common';
|
|
7
|
+
import { timer } from 'rxjs';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
9
|
+
const defaultFeedbackOptions = {
|
|
10
|
+
success: {
|
|
11
|
+
icon: 'check-circle-fill',
|
|
12
|
+
class: 'text-success',
|
|
13
|
+
duration: 3000
|
|
14
|
+
},
|
|
15
|
+
error: {
|
|
16
|
+
icon: 'close-circle-fill',
|
|
17
|
+
class: 'text-danger',
|
|
18
|
+
duration: 3000
|
|
19
|
+
}
|
|
20
|
+
};
|
|
8
21
|
/**
|
|
9
22
|
* 立即操作组件
|
|
10
23
|
* @name thy-action,[thyAction]
|
|
@@ -44,9 +57,11 @@ export class ThyActionComponent {
|
|
|
44
57
|
set thyActionActive(value) {
|
|
45
58
|
this.active = value;
|
|
46
59
|
}
|
|
47
|
-
constructor(elementRef, renderer) {
|
|
60
|
+
constructor(elementRef, renderer, cdr) {
|
|
48
61
|
this.elementRef = elementRef;
|
|
49
62
|
this.renderer = renderer;
|
|
63
|
+
this.cdr = cdr;
|
|
64
|
+
this.feedback = null;
|
|
50
65
|
this.active = false;
|
|
51
66
|
this.type = 'primary';
|
|
52
67
|
this.hostRenderer = useHostRenderer();
|
|
@@ -70,6 +85,37 @@ export class ThyActionComponent {
|
|
|
70
85
|
setMarginRight(marginRight) {
|
|
71
86
|
this.elementRef.nativeElement.style.marginRight = marginRight;
|
|
72
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* 触发成功反馈操作
|
|
90
|
+
*/
|
|
91
|
+
success(options) {
|
|
92
|
+
this.setFeedback('success', options);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* 触发失败反馈操作
|
|
96
|
+
*/
|
|
97
|
+
error(options) {
|
|
98
|
+
this.setFeedback('error', options);
|
|
99
|
+
}
|
|
100
|
+
setFeedback(feedback, options) {
|
|
101
|
+
if (this.thyDisabled) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
options = Object.assign({}, defaultFeedbackOptions[feedback], options);
|
|
105
|
+
this.feedback = feedback;
|
|
106
|
+
this.feedbackOptions = options;
|
|
107
|
+
this.cdr.markForCheck();
|
|
108
|
+
if (options.duration) {
|
|
109
|
+
if (this.feedbackTimer) {
|
|
110
|
+
this.feedbackTimer.unsubscribe();
|
|
111
|
+
}
|
|
112
|
+
this.feedbackTimer = timer(options.duration).subscribe(() => {
|
|
113
|
+
this.feedback = null;
|
|
114
|
+
this.feedbackOptions = null;
|
|
115
|
+
this.cdr.markForCheck();
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
}
|
|
73
119
|
wrapSpanForText(nodes) {
|
|
74
120
|
nodes.forEach(node => {
|
|
75
121
|
if (node.nodeName === '#text') {
|
|
@@ -92,9 +138,12 @@ export class ThyActionComponent {
|
|
|
92
138
|
}
|
|
93
139
|
this.hostRenderer.updateClass(classNames);
|
|
94
140
|
}
|
|
141
|
+
ngOnDestroy() {
|
|
142
|
+
this.feedbackTimer?.unsubscribe();
|
|
143
|
+
}
|
|
95
144
|
}
|
|
96
|
-
ThyActionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ThyActionComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
97
|
-
ThyActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ThyActionComponent, isStandalone: true, selector: "thy-action, [thyAction]", inputs: { thyType: "thyType", thyIcon: "thyIcon", thyActionIcon: "thyActionIcon", thyActive: "thyActive", thyActionActive: "thyActionActive", thyTheme: "thyTheme", thyHoverIcon: "thyHoverIcon", thyDisabled: "thyDisabled" }, host: { properties: { "class.active": "active", "class.thy-action-hover-icon": "thyHoverIcon", "class.disabled": "thyDisabled" }, classAttribute: "thy-action" }, usesOnChanges: true, ngImport: i0, template: "<thy-icon *ngIf=\"icon\" [thyIconName]=\"icon\"></thy-icon>\n<thy-icon class=\"hover-icon\" *ngIf=\"thyHoverIcon\" [thyIconName]=\"thyHoverIcon\"></thy-icon>\n<ng-content></ng-content>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyIconComponent, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
145
|
+
ThyActionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ThyActionComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
146
|
+
ThyActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ThyActionComponent, isStandalone: true, selector: "thy-action, [thyAction]", inputs: { thyType: "thyType", thyIcon: "thyIcon", thyActionIcon: "thyActionIcon", thyActive: "thyActive", thyActionActive: "thyActionActive", thyTheme: "thyTheme", thyHoverIcon: "thyHoverIcon", thyDisabled: "thyDisabled" }, host: { properties: { "class.active": "active", "class.thy-action-hover-icon": "thyHoverIcon", "class.thy-action-has-feedback": "!!feedback", "class.disabled": "thyDisabled" }, classAttribute: "thy-action" }, usesOnChanges: true, ngImport: i0, template: "<thy-icon *ngIf=\"icon && !feedback\" [thyIconName]=\"icon\"></thy-icon>\n<thy-icon *ngIf=\"feedbackOptions?.icon\" [class]=\"feedbackOptions.class\" [thyIconName]=\"feedbackOptions.icon\"></thy-icon>\n<thy-icon class=\"hover-icon\" *ngIf=\"thyHoverIcon\" [thyIconName]=\"thyHoverIcon\"></thy-icon>\n<ng-content></ng-content>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyIconComponent, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
98
147
|
__decorate([
|
|
99
148
|
InputBoolean(),
|
|
100
149
|
__metadata("design:type", Boolean),
|
|
@@ -115,9 +164,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
115
164
|
class: 'thy-action',
|
|
116
165
|
'[class.active]': 'active',
|
|
117
166
|
'[class.thy-action-hover-icon]': 'thyHoverIcon',
|
|
167
|
+
'[class.thy-action-has-feedback]': '!!feedback',
|
|
118
168
|
'[class.disabled]': 'thyDisabled'
|
|
119
|
-
}, standalone: true, imports: [NgIf, ThyIconComponent], template: "<thy-icon *ngIf=\"icon\" [thyIconName]=\"icon\"></thy-icon>\n<thy-icon class=\"hover-icon\" *ngIf=\"thyHoverIcon\" [thyIconName]=\"thyHoverIcon\"></thy-icon>\n<ng-content></ng-content>\n" }]
|
|
120
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { thyType: [{
|
|
169
|
+
}, standalone: true, imports: [NgIf, ThyIconComponent], template: "<thy-icon *ngIf=\"icon && !feedback\" [thyIconName]=\"icon\"></thy-icon>\n<thy-icon *ngIf=\"feedbackOptions?.icon\" [class]=\"feedbackOptions.class\" [thyIconName]=\"feedbackOptions.icon\"></thy-icon>\n<thy-icon class=\"hover-icon\" *ngIf=\"thyHoverIcon\" [thyIconName]=\"thyHoverIcon\"></thy-icon>\n<ng-content></ng-content>\n" }]
|
|
170
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { thyType: [{
|
|
121
171
|
type: Input
|
|
122
172
|
}], thyIcon: [{
|
|
123
173
|
type: Input
|
|
@@ -134,4 +184,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
134
184
|
}], thyDisabled: [{
|
|
135
185
|
type: Input
|
|
136
186
|
}] } });
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hY3Rpb24vYWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9hY3Rpb24vYWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBSUwsVUFBVSxFQUNWLFNBQVMsRUFFWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFJdkM7OztHQUdHO0FBY0gsTUFBTSxPQUFPLGtCQUFrQjtJQVMzQjs7OztPQUlHO0lBQ0gsSUFDSSxPQUFPLENBQUMsS0FBb0I7UUFDNUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLElBQUksU0FBUyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFDSSxPQUFPLENBQUMsSUFBWTtRQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNJLGFBQWEsQ0FBQyxJQUFZO1FBQzFCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUVJLFNBQVMsQ0FBQyxLQUFjO1FBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUVJLGVBQWUsQ0FBQyxLQUFjO1FBQzlCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxD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c0JBRFYsS0FBSztnQkFTRixPQUFPO3NCQURWLEtBQUs7Z0JBU0YsYUFBYTtzQkFEaEIsS0FBSztnQkFXRixTQUFTO3NCQUZaLEtBQUs7Z0JBWUYsZUFBZTtzQkFGbEIsS0FBSztnQkFVRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBUU4sV0FBVztzQkFGVixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgUmVuZGVyZXIyLFxuICAgIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbnB1dEJvb2xlYW4gfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgdXNlSG9zdFJlbmRlcmVyIH0gZnJvbSAnQHRldGh5cy9jZGsvZG9tJztcbmltcG9ydCB7IFRoeUljb25Db21wb25lbnQgfSBmcm9tICduZ3gtdGV0aHlzL2ljb24nO1xuaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmV4cG9ydCB0eXBlIFRoeUFjdGlvblR5cGUgPSAncHJpbWFyeScgfCAnc3VjY2VzcycgfCAnZGFuZ2VyJyB8ICd3YXJuaW5nJztcblxuLyoqXG4gKiDnq4vljbPmk43kvZznu4Tku7ZcbiAqIEBuYW1lIHRoeS1hY3Rpb24sW3RoeUFjdGlvbl1cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktYWN0aW9uLCBbdGh5QWN0aW9uXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoeS1hY3Rpb24nLFxuICAgICAgICAnW2NsYXNzLmFjdGl2ZV0nOiAnYWN0aXZlJyxcbiAgICAgICAgJ1tjbGFzcy50aHktYWN0aW9uLWhvdmVyLWljb25dJzogJ3RoeUhvdmVySWNvbicsXG4gICAgICAgICdbY2xhc3MuZGlzYWJsZWRdJzogJ3RoeURpc2FibGVkJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgVGh5SWNvbkNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgVGh5QWN0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuICAgIGljb246IHN0cmluZztcblxuICAgIHByaXZhdGUgYWN0aXZlID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHR5cGU6IHN0cmluZyA9ICdwcmltYXJ5JztcblxuICAgIHByaXZhdGUgaG9zdFJlbmRlcmVyID0gdXNlSG9zdFJlbmRlcmVyKCk7XG5cbiAgICAvKipcbiAgICAgKiDmk43kvZzlm77moIfnmoTnsbvlnotcbiAgICAgKiBAdHlwZSBwcmltYXJ5IHwgc3VjY2VzcyB8IGRhbmdlciB8IHdhcm5pbmdcbiAgICAgKiBAZGVmYXVsdCBwcmltYXJ5XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5VHlwZSh2YWx1ZTogVGh5QWN0aW9uVHlwZSkge1xuICAgICAgICB0aGlzLnNldEFjdGlvblR5cGUodmFsdWUgfHwgJ3ByaW1hcnknKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmk43kvZzlm77moIfvvIzmlK/mjIHkvKDlj4LlkIzml7bkuZ/mlK/mjIHlnKjmipXlvbHkuK3lhpkgdGh5LWljb24g57uE5Lu2XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5SWNvbihpY29uOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5pY29uID0gaWNvbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmk43kvZzlm77moIfvvIzlvZMgdGh5SWNvbiDlkozlhbbku5bmjIfku6Tlj4LmlbDlkI3mnInlhrLnqoHml7bkvb/nlKggdGh5QWN0aW9uSWNvblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUFjdGlvbkljb24oaWNvbjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuaWNvbiA9IGljb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5pON5L2c55qE5Zu+5qCHIEFjdGl2ZSDnirbmgIHvvIzorr7nva7kuLogdHJ1ZSDml7bkvJrlnKggSXRlbSDkuIrmt7vliqAgYWN0aXZlIGNsYXNzXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBJbnB1dEJvb2xlYW4oKVxuICAgIHNldCB0aHlBY3RpdmUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5hY3RpdmUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmk43kvZznmoTlm77moIcgQWN0aXZlIOeKtuaAge+8jOW9kyB0aHlBY3RpdmUg5ZKM5YW25LuW5oyH5Luk5Y+C5pWw5ZCN5pyJ5Yay56qB5pe25L2/55SoIHRoeUFjdGlvbkFjdGl2ZVxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASW5wdXRCb29sZWFuKClcbiAgICBzZXQgdGh5QWN0aW9uQWN0aXZlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5pON5L2c5Zu+5qCH55qE5Li76aKYXG4gICAgICogQHR5cGUgZmlsbCjog4zmma/oibLloavlhYUpIHwgbGl0ZSjnroDljZXmlofmnKzpopzoibLlj5jljJYpXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5VGhlbWU6ICdmaWxsJyB8ICdsaXRlJyA9ICdmaWxsJztcblxuICAgIC8qKlxuICAgICAqIEhvdmVyIOWxleekuueahOWbvuagh1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUhvdmVySWNvbjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5aSE5LqO56aB55So54q25oCBXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBJbnB1dEJvb2xlYW4oKVxuICAgIHRoeURpc2FibGVkOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlQ2xhc3NlcygpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy53cmFwU3BhbkZvclRleHQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcyk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoKGNoYW5nZXMudGh5VHlwZSAmJiAhY2hhbmdlcy50aHlUeXBlLmZpcnN0Q2hhbmdlKSB8fCAoY2hhbmdlcy50aHlUaGVtZSAmJiAhY2hhbmdlcy50aHlUaGVtZS5maXJzdENoYW5nZSkpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2xhc3NlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0TWFyZ2luUmlnaHQobWFyZ2luUmlnaHQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5tYXJnaW5SaWdodCA9IG1hcmdpblJpZ2h0O1xuICAgIH1cblxuICAgIHByaXZhdGUgd3JhcFNwYW5Gb3JUZXh0KG5vZGVzOiBOb2RlTGlzdCk6IHZvaWQge1xuICAgICAgICBub2Rlcy5mb3JFYWNoKG5vZGUgPT4ge1xuICAgICAgICAgICAgaWYgKG5vZGUubm9kZU5hbWUgPT09ICcjdGV4dCcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzcGFuID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5yZW5kZXJlci5wYXJlbnROb2RlKG5vZGUpO1xuICAgICAgICAgICAgICAgIC8vIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3Moc3BhbiwgJ3RoeS1hY3Rpb24td3JhcC1zcGFuJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5pbnNlcnRCZWZvcmUocGFyZW50LCBzcGFuLCBub2RlKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHNwYW4sIG5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEFjdGlvblR5cGUodmFsdWU6IFRoeUFjdGlvblR5cGUpIHtcbiAgICAgICAgdGhpcy50eXBlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVDbGFzc2VzKCkge1xuICAgICAgICBsZXQgY2xhc3NOYW1lczogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgY2xhc3NOYW1lcy5wdXNoKGBhY3Rpb24tJHt0aGlzLnR5cGV9YCk7XG4gICAgICAgIGlmICh0aGlzLnRoeVRoZW1lID09PSAnbGl0ZScpIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZXMucHVzaCgndGh5LWFjdGlvbi1saXRlJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ob3N0UmVuZGVyZXIudXBkYXRlQ2xhc3MoY2xhc3NOYW1lcyk7XG4gICAgfVxufVxuIiwiPHRoeS1pY29uICpuZ0lmPVwiaWNvblwiIFt0aHlJY29uTmFtZV09XCJpY29uXCI+PC90aHktaWNvbj5cbjx0aHktaWNvbiBjbGFzcz1cImhvdmVyLWljb25cIiAqbmdJZj1cInRoeUhvdmVySWNvblwiIFt0aHlJY29uTmFtZV09XCJ0aHlIb3Zlckljb25cIj48L3RoeS1pY29uPlxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
|
|
187
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hY3Rpb24vYWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9hY3Rpb24vYWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBSUwsVUFBVSxFQUNWLFNBQVMsRUFFVCxpQkFBaUIsRUFFcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFnQixLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBWTNDLE1BQU0sc0JBQXNCLEdBQXdEO0lBQ2hGLE9BQU8sRUFBRTtRQUNMLElBQUksRUFBRSxtQkFBbUI7UUFDekIsS0FBSyxFQUFFLGNBQWM7UUFDckIsUUFBUSxFQUFFLElBQUk7S0FDakI7SUFDRCxLQUFLLEVBQUU7UUFDSCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLEtBQUssRUFBRSxhQUFhO1FBQ3BCLFFBQVEsRUFBRSxJQUFJO0tBQ2pCO0NBQ0osQ0FBQztBQUNGOzs7R0FHRztBQWVILE1BQU0sT0FBTyxrQkFBa0I7SUFlM0I7Ozs7T0FJRztJQUNILElBQ0ksT0FBTyxDQUFDLEtBQW9CO1FBQzVCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQ0ksT0FBTyxDQUFDLElBQVk7UUFDcEIsSUFBSSxDQUFDLElBQUksR0FB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LEVBQUU7OzttREFHZDtBQU1EO0lBQ0MsWUFBWSxFQUFFOzs7eURBR2Q7QUFpQkQ7SUFDQyxZQUFZLEVBQUU7O3VEQUNNOzJGQTlFWixrQkFBa0I7a0JBZDlCLFNBQVM7K0JBQ0kseUJBQXlCLG1CQUVsQix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNGLEtBQUssRUFBRSxZQUFZO3dCQUNuQixnQkFBZ0IsRUFBRSxRQUFRO3dCQUMxQiwrQkFBK0IsRUFBRSxjQUFjO3dCQUMvQyxpQ0FBaUMsRUFBRSxZQUFZO3dCQUMvQyxrQkFBa0IsRUFBRSxhQUFhO3FCQUNwQyxjQUNXLElBQUksV0FDUCxDQUFDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQzt5SkF1QjdCLE9BQU87c0JBRFYsS0FBSztnQkFTRixPQUFPO3NCQURWLEtBQUs7Z0JBU0YsYUFBYTtzQkFEaEIsS0FBSztnQkFXRixTQUFTO3NCQUZaLEtBQUs7Z0JBWUYsZUFBZTtzQkFGbEIsS0FBSztnQkFVRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBUU4sV0FBVztzQkFGVixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgUmVuZGVyZXIyLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgT25EZXN0cm95XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW5wdXRCb29sZWFuIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IHVzZUhvc3RSZW5kZXJlciB9IGZyb20gJ0B0ZXRoeXMvY2RrL2RvbSc7XG5pbXBvcnQgeyBUaHlJY29uQ29tcG9uZW50IH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgdHlwZSBUaHlBY3Rpb25UeXBlID0gJ3ByaW1hcnknIHwgJ3N1Y2Nlc3MnIHwgJ2RhbmdlcicgfCAnd2FybmluZyc7XG5cbmV4cG9ydCB0eXBlIFRoeUFjdGlvbkZlZWRiYWNrID0gJ3N1Y2Nlc3MnIHwgJ2Vycm9yJztcblxuZXhwb3J0IGludGVyZmFjZSBUaHlBY3Rpb25GZWVkYmFja09wdGlvbnMge1xuICAgIGljb24/OiBzdHJpbmc7XG4gICAgY2xhc3M/OiBzdHJpbmc7XG4gICAgZHVyYXRpb24/OiBudW1iZXI7XG59XG5cbmNvbnN0IGRlZmF1bHRGZWVkYmFja09wdGlvbnM6IFJlY29yZDxUaHlBY3Rpb25GZWVkYmFjaywgVGh5QWN0aW9uRmVlZGJhY2tPcHRpb25zPiA9IHtcbiAgICBzdWNjZXNzOiB7XG4gICAgICAgIGljb246ICdjaGVjay1jaXJjbGUtZmlsbCcsXG4gICAgICAgIGNsYXNzOiAndGV4dC1zdWNjZXNzJyxcbiAgICAgICAgZHVyYXRpb246IDMwMDBcbiAgICB9LFxuICAgIGVycm9yOiB7XG4gICAgICAgIGljb246ICdjbG9zZS1jaXJjbGUtZmlsbCcsXG4gICAgICAgIGNsYXNzOiAndGV4dC1kYW5nZXInLFxuICAgICAgICBkdXJhdGlvbjogMzAwMFxuICAgIH1cbn07XG4vKipcbiAqIOeri+WNs+aTjeS9nOe7hOS7tlxuICogQG5hbWUgdGh5LWFjdGlvbixbdGh5QWN0aW9uXVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1hY3Rpb24sIFt0aHlBY3Rpb25dJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndGh5LWFjdGlvbicsXG4gICAgICAgICdbY2xhc3MuYWN0aXZlXSc6ICdhY3RpdmUnLFxuICAgICAgICAnW2NsYXNzLnRoeS1hY3Rpb24taG92ZXItaWNvbl0nOiAndGh5SG92ZXJJY29uJyxcbiAgICAgICAgJ1tjbGFzcy50aHktYWN0aW9uLWhhcy1mZWVkYmFja10nOiAnISFmZWVkYmFjaycsXG4gICAgICAgICdbY2xhc3MuZGlzYWJsZWRdJzogJ3RoeURpc2FibGVkJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgVGh5SWNvbkNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgVGh5QWN0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgaWNvbjogc3RyaW5nO1xuXG4gICAgZmVlZGJhY2s6IFRoeUFjdGlvbkZlZWRiYWNrID0gbnVsbDtcblxuICAgIGZlZWRiYWNrT3B0aW9uczogVGh5QWN0aW9uRmVlZGJhY2tPcHRpb25zO1xuXG4gICAgYWN0aXZlID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHR5cGU6IHN0cmluZyA9ICdwcmltYXJ5JztcblxuICAgIHByaXZhdGUgaG9zdFJlbmRlcmVyID0gdXNlSG9zdFJlbmRlcmVyKCk7XG5cbiAgICBwcml2YXRlIGZlZWRiYWNrVGltZXI6IFN1YnNjcmlwdGlvbjtcblxuICAgIC8qKlxuICAgICAqIOaTjeS9nOWbvuagh+eahOexu+Wei1xuICAgICAqIEB0eXBlIHByaW1hcnkgfCBzdWNjZXNzIHwgZGFuZ2VyIHwgd2FybmluZ1xuICAgICAqIEBkZWZhdWx0IHByaW1hcnlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlUeXBlKHZhbHVlOiBUaHlBY3Rpb25UeXBlKSB7XG4gICAgICAgIHRoaXMuc2V0QWN0aW9uVHlwZSh2YWx1ZSB8fCAncHJpbWFyeScpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaTjeS9nOWbvuagh++8jOaUr+aMgeS8oOWPguWQjOaXtuS5n+aUr+aMgeWcqOaKleW9seS4reWGmSB0aHktaWNvbiDnu4Tku7ZcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlJY29uKGljb246IHN0cmluZykge1xuICAgICAgICB0aGlzLmljb24gPSBpY29uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaTjeS9nOWbvuagh++8jOW9kyB0aHlJY29uIOWSjOWFtuS7luaMh+S7pOWPguaVsOWQjeacieWGsueqgeaXtuS9v+eUqCB0aHlBY3Rpb25JY29uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5QWN0aW9uSWNvbihpY29uOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5pY29uID0gaWNvbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmk43kvZznmoTlm77moIcgQWN0aXZlIOeKtuaAge+8jOiuvue9ruS4uiB0cnVlIOaXtuS8muWcqCBJdGVtIOS4iua3u+WKoCBhY3RpdmUgY2xhc3NcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQElucHV0Qm9vbGVhbigpXG4gICAgc2V0IHRoeUFjdGl2ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmFjdGl2ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaTjeS9nOeahOWbvuaghyBBY3RpdmUg54q25oCB77yM5b2TIHRoeUFjdGl2ZSDlkozlhbbku5bmjIfku6Tlj4LmlbDlkI3mnInlhrLnqoHml7bkvb/nlKggdGh5QWN0aW9uQWN0aXZlXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBJbnB1dEJvb2xlYW4oKVxuICAgIHNldCB0aHlBY3Rpb25BY3RpdmUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5hY3RpdmUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmk43kvZzlm77moIfnmoTkuLvpophcbiAgICAgKiBAdHlwZSBmaWxsKOiDjOaZr+iJsuWhq+WFhSkgfCBsaXRlKOeugOWNleaWh+acrOminOiJsuWPmOWMlilcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlUaGVtZTogJ2ZpbGwnIHwgJ2xpdGUnID0gJ2ZpbGwnO1xuXG4gICAgLyoqXG4gICAgICogSG92ZXIg5bGV56S655qE5Zu+5qCHXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5SG92ZXJJY29uOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKblpITkuo7npoHnlKjnirbmgIFcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQElucHV0Qm9vbGVhbigpXG4gICAgdGh5RGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUNsYXNzZXMoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMud3JhcFNwYW5Gb3JUZXh0KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNoaWxkTm9kZXMpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKChjaGFuZ2VzLnRoeVR5cGUgJiYgIWNoYW5nZXMudGh5VHlwZS5maXJzdENoYW5nZSkgfHwgKGNoYW5nZXMudGh5VGhlbWUgJiYgIWNoYW5nZXMudGh5VGhlbWUuZmlyc3RDaGFuZ2UpKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNsYXNzZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldE1hcmdpblJpZ2h0KG1hcmdpblJpZ2h0OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUubWFyZ2luUmlnaHQgPSBtYXJnaW5SaWdodDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDop6blj5HmiJDlip/lj43ppojmk43kvZxcbiAgICAgKi9cbiAgICBzdWNjZXNzKG9wdGlvbnM/OiBUaHlBY3Rpb25GZWVkYmFja09wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5zZXRGZWVkYmFjaygnc3VjY2VzcycsIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOinpuWPkeWksei0peWPjemmiOaTjeS9nFxuICAgICAqL1xuICAgIGVycm9yKG9wdGlvbnM/OiBUaHlBY3Rpb25GZWVkYmFja09wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5zZXRGZWVkYmFjaygnZXJyb3InLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEZlZWRiYWNrKGZlZWRiYWNrOiBUaHlBY3Rpb25GZWVkYmFjaywgb3B0aW9uczogVGh5QWN0aW9uRmVlZGJhY2tPcHRpb25zKSB7XG4gICAgICAgIGlmICh0aGlzLnRoeURpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRGZWVkYmFja09wdGlvbnNbZmVlZGJhY2tdLCBvcHRpb25zKTtcbiAgICAgICAgdGhpcy5mZWVkYmFjayA9IGZlZWRiYWNrO1xuICAgICAgICB0aGlzLmZlZWRiYWNrT3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICBpZiAob3B0aW9ucy5kdXJhdGlvbikge1xuICAgICAgICAgICAgaWYgKHRoaXMuZmVlZGJhY2tUaW1lcikge1xuICAgICAgICAgICAgICAgIHRoaXMuZmVlZGJhY2tUaW1lci51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5mZWVkYmFja1RpbWVyID0gdGltZXIob3B0aW9ucy5kdXJhdGlvbikuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZlZWRiYWNrID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLmZlZWRiYWNrT3B0aW9ucyA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgd3JhcFNwYW5Gb3JUZXh0KG5vZGVzOiBOb2RlTGlzdCk6IHZvaWQge1xuICAgICAgICBub2Rlcy5mb3JFYWNoKG5vZGUgPT4ge1xuICAgICAgICAgICAgaWYgKG5vZGUubm9kZU5hbWUgPT09ICcjdGV4dCcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzcGFuID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5yZW5kZXJlci5wYXJlbnROb2RlKG5vZGUpO1xuICAgICAgICAgICAgICAgIC8vIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3Moc3BhbiwgJ3RoeS1hY3Rpb24td3JhcC1zcGFuJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5pbnNlcnRCZWZvcmUocGFyZW50LCBzcGFuLCBub2RlKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHNwYW4sIG5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEFjdGlvblR5cGUodmFsdWU6IFRoeUFjdGlvblR5cGUpIHtcbiAgICAgICAgdGhpcy50eXBlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVDbGFzc2VzKCkge1xuICAgICAgICBsZXQgY2xhc3NOYW1lczogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgY2xhc3NOYW1lcy5wdXNoKGBhY3Rpb24tJHt0aGlzLnR5cGV9YCk7XG4gICAgICAgIGlmICh0aGlzLnRoeVRoZW1lID09PSAnbGl0ZScpIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZXMucHVzaCgndGh5LWFjdGlvbi1saXRlJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ob3N0UmVuZGVyZXIudXBkYXRlQ2xhc3MoY2xhc3NOYW1lcyk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmVlZGJhY2tUaW1lcj8udW5zdWJzY3JpYmUoKTtcbiAgICB9XG59XG4iLCI8dGh5LWljb24gKm5nSWY9XCJpY29uICYmICFmZWVkYmFja1wiIFt0aHlJY29uTmFtZV09XCJpY29uXCI+PC90aHktaWNvbj5cbjx0aHktaWNvbiAqbmdJZj1cImZlZWRiYWNrT3B0aW9ucz8uaWNvblwiIFtjbGFzc109XCJmZWVkYmFja09wdGlvbnMuY2xhc3NcIiBbdGh5SWNvbk5hbWVdPVwiZmVlZGJhY2tPcHRpb25zLmljb25cIj48L3RoeS1pY29uPlxuPHRoeS1pY29uIGNsYXNzPVwiaG92ZXItaWNvblwiICpuZ0lmPVwidGh5SG92ZXJJY29uXCIgW3RoeUljb25OYW1lXT1cInRoeUhvdmVySWNvblwiPjwvdGh5LWljb24+XG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
|
|
@@ -130,10 +130,10 @@ export class ThyPickerComponent {
|
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
132
|
ThyPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ThyPickerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.DateHelperService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
133
|
-
ThyPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ThyPickerComponent, isStandalone: true, selector: "thy-picker", inputs: { isRange: "isRange", open: "open", disabled: "disabled", placeholder: "placeholder", readonly: "readonly", allowClear: "allowClear", autoFocus: "autoFocus", className: "className", format: "format", size: "size", value: "value", suffixIcon: "suffixIcon", placement: "placement", flexible: "flexible", flexibleDateGranularity: "flexibleDateGranularity" }, outputs: { blur: "blur", valueChange: "valueChange", openChange: "openChange" }, viewQueries: [{ propertyName: "origin", first: true, predicate: ["origin"], descendants: true, static: true }, { propertyName: "cdkConnectedOverlay", first: true, predicate: CdkConnectedOverlay, descendants: true, static: true }, { propertyName: "pickerInput", first: true, predicate: ["pickerInput"], descendants: true, static: true }], exportAs: ["thyPicker"], ngImport: i0, template: "<span\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n class=\"{{ prefixCls }}-picker {{ size ? prefixCls + '-picker-' + size : '' }} {{ className }}\"\n (click)=\"onClickInputBox()\"\n>\n <ng-container>\n <input\n #pickerInput\n thyInput\n class=\"form-control-{{ size }} form-control {{ prefixCls }}-picker-input\"\n [thySize]=\"size\"\n [tabindex]=\"-1\"\n [class.thy-input-disabled]=\"disabled\"\n [class.thy-input-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n readonly\n (blur)=\"onBlur($event)\"\n value=\"{{ getReadableValue() }}\"\n placeholder=\"{{ getPlaceholder() }}\"\n />\n <ng-container *ngTemplateOutlet=\"tplRightRest\"></ng-container>\n </ng-container>\n</span>\n\n<!-- Right operator icons -->\n<ng-template #tplRightRest>\n <span class=\"{{ prefixCls }}-picker-clear\">\n <thy-icon\n thyIconName=\"close-circle-bold-fill\"\n *ngIf=\"!disabled && !isEmptyValue(value) && allowClear && !readonly\"\n (click)=\"onClickClear($event)\"\n ngClass=\"remove-link remove-link-{{ size }}\"\n ></thy-icon>\n </span>\n <span class=\"{{ prefixCls }}-picker-icon\">\n <thy-icon [thyIconName]=\"suffixIcon\" ngClass=\"remove-link
|
|
133
|
+
ThyPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ThyPickerComponent, isStandalone: true, selector: "thy-picker", inputs: { isRange: "isRange", open: "open", disabled: "disabled", placeholder: "placeholder", readonly: "readonly", allowClear: "allowClear", autoFocus: "autoFocus", className: "className", format: "format", size: "size", value: "value", suffixIcon: "suffixIcon", placement: "placement", flexible: "flexible", flexibleDateGranularity: "flexibleDateGranularity" }, outputs: { blur: "blur", valueChange: "valueChange", openChange: "openChange" }, viewQueries: [{ propertyName: "origin", first: true, predicate: ["origin"], descendants: true, static: true }, { propertyName: "cdkConnectedOverlay", first: true, predicate: CdkConnectedOverlay, descendants: true, static: true }, { propertyName: "pickerInput", first: true, predicate: ["pickerInput"], descendants: true, static: true }], exportAs: ["thyPicker"], ngImport: i0, template: "<span\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n class=\"{{ prefixCls }}-picker {{ size ? prefixCls + '-picker-' + size : '' }} {{ className }}\"\n (click)=\"onClickInputBox()\"\n>\n <ng-container>\n <input\n #pickerInput\n thyInput\n class=\"form-control-{{ size }} form-control {{ prefixCls }}-picker-input\"\n [thySize]=\"size\"\n [tabindex]=\"-1\"\n [class.thy-input-disabled]=\"disabled\"\n [class.thy-input-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n readonly\n (blur)=\"onBlur($event)\"\n value=\"{{ getReadableValue() }}\"\n placeholder=\"{{ getPlaceholder() }}\"\n />\n <ng-container *ngTemplateOutlet=\"tplRightRest\"></ng-container>\n </ng-container>\n</span>\n\n<!-- Right operator icons -->\n<ng-template #tplRightRest>\n <span class=\"{{ prefixCls }}-picker-clear\">\n <thy-icon\n thyIconName=\"close-circle-bold-fill\"\n *ngIf=\"!disabled && !isEmptyValue(value) && allowClear && !readonly\"\n (click)=\"onClickClear($event)\"\n ngClass=\"remove-link remove-link-{{ size }}\"\n ></thy-icon>\n </span>\n <span class=\"{{ prefixCls }}-picker-icon\">\n <thy-icon [thyIconName]=\"suffixIcon\" ngClass=\"remove-link-{{ size ? size : 'default' }}\"></thy-icon>\n </span>\n</ng-template>\n\n<!-- Overlay -->\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"realOpenState\"\n [cdkConnectedOverlayHasBackdrop]=\"!isOpenHandledByUser()\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (positionChange)=\"onPositionChange($event)\"\n (backdropClick)=\"onClickBackdrop()\"\n (detach)=\"onOverlayDetach()\"\n>\n <div style=\"position: relative;\">\n <!-- Compatible for overlay that not support offset dynamically and immediately -->\n <ng-content></ng-content>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyIconComponent, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
134
134
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ThyPickerComponent, decorators: [{
|
|
135
135
|
type: Component,
|
|
136
|
-
args: [{ selector: 'thy-picker', exportAs: 'thyPicker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CdkOverlayOrigin, ThyInputDirective, NgTemplateOutlet, NgIf, ThyIconComponent, NgClass, CdkConnectedOverlay], template: "<span\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n class=\"{{ prefixCls }}-picker {{ size ? prefixCls + '-picker-' + size : '' }} {{ className }}\"\n (click)=\"onClickInputBox()\"\n>\n <ng-container>\n <input\n #pickerInput\n thyInput\n class=\"form-control-{{ size }} form-control {{ prefixCls }}-picker-input\"\n [thySize]=\"size\"\n [tabindex]=\"-1\"\n [class.thy-input-disabled]=\"disabled\"\n [class.thy-input-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n readonly\n (blur)=\"onBlur($event)\"\n value=\"{{ getReadableValue() }}\"\n placeholder=\"{{ getPlaceholder() }}\"\n />\n <ng-container *ngTemplateOutlet=\"tplRightRest\"></ng-container>\n </ng-container>\n</span>\n\n<!-- Right operator icons -->\n<ng-template #tplRightRest>\n <span class=\"{{ prefixCls }}-picker-clear\">\n <thy-icon\n thyIconName=\"close-circle-bold-fill\"\n *ngIf=\"!disabled && !isEmptyValue(value) && allowClear && !readonly\"\n (click)=\"onClickClear($event)\"\n ngClass=\"remove-link remove-link-{{ size }}\"\n ></thy-icon>\n </span>\n <span class=\"{{ prefixCls }}-picker-icon\">\n <thy-icon [thyIconName]=\"suffixIcon\" ngClass=\"remove-link
|
|
136
|
+
args: [{ selector: 'thy-picker', exportAs: 'thyPicker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CdkOverlayOrigin, ThyInputDirective, NgTemplateOutlet, NgIf, ThyIconComponent, NgClass, CdkConnectedOverlay], template: "<span\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n class=\"{{ prefixCls }}-picker {{ size ? prefixCls + '-picker-' + size : '' }} {{ className }}\"\n (click)=\"onClickInputBox()\"\n>\n <ng-container>\n <input\n #pickerInput\n thyInput\n class=\"form-control-{{ size }} form-control {{ prefixCls }}-picker-input\"\n [thySize]=\"size\"\n [tabindex]=\"-1\"\n [class.thy-input-disabled]=\"disabled\"\n [class.thy-input-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n readonly\n (blur)=\"onBlur($event)\"\n value=\"{{ getReadableValue() }}\"\n placeholder=\"{{ getPlaceholder() }}\"\n />\n <ng-container *ngTemplateOutlet=\"tplRightRest\"></ng-container>\n </ng-container>\n</span>\n\n<!-- Right operator icons -->\n<ng-template #tplRightRest>\n <span class=\"{{ prefixCls }}-picker-clear\">\n <thy-icon\n thyIconName=\"close-circle-bold-fill\"\n *ngIf=\"!disabled && !isEmptyValue(value) && allowClear && !readonly\"\n (click)=\"onClickClear($event)\"\n ngClass=\"remove-link remove-link-{{ size }}\"\n ></thy-icon>\n </span>\n <span class=\"{{ prefixCls }}-picker-icon\">\n <thy-icon [thyIconName]=\"suffixIcon\" ngClass=\"remove-link-{{ size ? size : 'default' }}\"></thy-icon>\n </span>\n</ng-template>\n\n<!-- Overlay -->\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"realOpenState\"\n [cdkConnectedOverlayHasBackdrop]=\"!isOpenHandledByUser()\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (positionChange)=\"onPositionChange($event)\"\n (backdropClick)=\"onClickBackdrop()\"\n (detach)=\"onOverlayDetach()\"\n>\n <div style=\"position: relative;\">\n <!-- Compatible for overlay that not support offset dynamically and immediately -->\n <ng-content></ng-content>\n </div>\n</ng-template>\n" }]
|
|
137
137
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.DateHelperService }, { type: i0.ElementRef }]; }, propDecorators: { isRange: [{
|
|
138
138
|
type: Input
|
|
139
139
|
}], open: [{
|
|
@@ -180,4 +180,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
180
180
|
type: ViewChild,
|
|
181
181
|
args: ['pickerInput', { static: true }]
|
|
182
182
|
}] } });
|
|
183
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL3BpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQWdCLE1BQU0saUJBQWlCLENBQUM7QUFHckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFrQyxNQUFNLHNCQUFzQixDQUFDO0FBQzdHLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFHakU7O0dBRUc7QUFTSCxNQUFNLE9BQU8sa0JBQWtCO0lBNkIzQixJQUFJLGFBQWE7UUFDYix5REFBeUQ7UUFDekQsT0FBTyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDdkUsQ0FBQztJQUVELFlBQW9CLGNBQWlDLEVBQVUsVUFBNkIsRUFBVSxPQUFtQjtRQUFyRyxtQkFBYyxHQUFkLGNB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OlsiaW1wb3J0IHsgZ2V0RmxleGlibGVQb3NpdGlvbnMsIFRoeVBsYWNlbWVudCB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgeyBUaW55RGF0ZSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5cbmltcG9ydCB7IENka0Nvbm5lY3RlZE92ZXJsYXksIENka092ZXJsYXlPcmlnaW4sIENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTmdDbGFzcywgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUaHlJY29uQ29tcG9uZW50IH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IFRoeUlucHV0RGlyZWN0aXZlIH0gZnJvbSAnbmd4LXRldGh5cy9pbnB1dCc7XG5pbXBvcnQgeyBEYXRlSGVscGVyU2VydmljZSB9IGZyb20gJy4vZGF0ZS1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBDb21wYXRpYmxlVmFsdWUsIFJhbmdlUGFydFR5cGUgfSBmcm9tICcuL2lubmVyLXR5cGVzJztcbmltcG9ydCB7IGdldEZsZXhpYmxlQWR2YW5jZWRSZWFkYWJsZVZhbHVlIH0gZnJvbSAnLi9waWNrZXIudXRpbCc7XG5pbXBvcnQgeyBUaHlEYXRlR3JhbnVsYXJpdHkgfSBmcm9tICcuL3N0YW5kYXJkLXR5cGVzJztcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1waWNrZXInLFxuICAgIGV4cG9ydEFzOiAndGh5UGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDZGtPdmVybGF5T3JpZ2luLCBUaHlJbnB1dERpcmVjdGl2ZSwgTmdUZW1wbGF0ZU91dGxldCwgTmdJZiwgVGh5SWNvbkNvbXBvbmVudCwgTmdDbGFzcywgQ2RrQ29ubmVjdGVkT3ZlcmxheV1cbn0pXG5leHBvcnQgY2xhc3MgVGh5UGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQElucHV0KCkgaXNSYW5nZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIG9wZW46IGJvb2xlYW4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyB8IHN0cmluZ1tdO1xuICAgIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGFsbG93Q2xlYXI6IGJvb2xlYW47XG4gICAgQElucHV0KCkgYXV0b0ZvY3VzOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGNsYXNzTmFtZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGZvcm1hdDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHNpemU6ICdzbScgfCAneHMnIHwgJ2xnJyB8ICdtZCcgfCAnZGVmYXVsdCc7XG4gICAgQElucHV0KCkgdmFsdWU6IFRpbnlEYXRlIHwgVGlueURhdGVbXSB8IG51bGw7XG4gICAgQElucHV0KCkgc3VmZml4SWNvbjogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHBsYWNlbWVudDogVGh5UGxhY2VtZW50ID0gJ2JvdHRvbUxlZnQnO1xuICAgIEBJbnB1dCgpIGZsZXhpYmxlOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgZmxleGlibGVEYXRlR3JhbnVsYXJpdHk6IFRoeURhdGVHcmFudWxhcml0eTtcbiAgICBAT3V0cHV0KCkgYmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUaW55RGF0ZSB8IFRpbnlEYXRlW10gfCBudWxsPigpO1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBvcGVuQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpOyAvLyBFbWl0dGVkIHdoZW4gb3ZlcmxheSdzIG9wZW4gc3RhdGUgY2hhbmdlXG5cbiAgICBAVmlld0NoaWxkKCdvcmlnaW4nLCB7IHN0YXRpYzogdHJ1ZSB9KSBvcmlnaW46IENka092ZXJsYXlPcmlnaW47XG4gICAgQFZpZXdDaGlsZChDZGtDb25uZWN0ZWRPdmVybGF5LCB7IHN0YXRpYzogdHJ1ZSB9KSBjZGtDb25uZWN0ZWRPdmVybGF5OiBDZGtDb25uZWN0ZWRPdmVybGF5O1xuICAgIEBWaWV3Q2hpbGQoJ3BpY2tlcklucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgcGlja2VySW5wdXQ6IEVsZW1lbnRSZWY7XG5cbiAgICBwcmVmaXhDbHMgPSAndGh5LWNhbGVuZGFyJztcbiAgICBhbmltYXRpb25PcGVuU3RhdGUgPSBmYWxzZTtcbiAgICBvdmVybGF5T3BlbiA9IGZhbHNlOyAvLyBBdmFpbGFibGUgd2hlbiBcIm9wZW5cIj11bmRlZmluZWRcbiAgICBvdmVybGF5UG9zaXRpb25zID0gZ2V0RmxleGlibGVQb3NpdGlvbnModGhpcy5wbGFjZW1lbnQsIDQpO1xuXG4gICAgZ2V0IHJlYWxPcGVuU3RhdGUoKTogYm9vbGVhbiB7XG4gICAgICAgIC8vIFRoZSB2YWx1ZSB0aGF0IHJlYWxseSBkZWNpZGUgdGhlIG9wZW4gc3RhdGUgb2Ygb3ZlcmxheVxuICAgICAgICByZXR1cm4gdGhpcy5pc09wZW5IYW5kbGVkQnlVc2VyKCkgPyAhIXRoaXMub3BlbiA6IHRoaXMub3ZlcmxheU9wZW47XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgZGF0ZUhlbHBlcjogRGF0ZUhlbHBlclNlcnZpY2UsIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZikge31cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vdmVybGF5UG9zaXRpb25zID0gZ2V0RmxleGlibGVQb3NpdGlvbnModGhpcy5wbGFjZW1lbnQsIDQpO1xuICAgICAgICBpZiAodGhpcy5hdXRvRm9jdXMpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBpY2tlcklucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBvbkJsdXIoZXZlbnQ6IEZvY3VzRXZlbnQpIHtcbiAgICAgICAgdGhpcy5ibHVyLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIHNob3dPdmVybGF5KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMucmVhbE9wZW5TdGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5T3BlbiA9IHRydWU7XG4gICAgICAgICAgICBpZiAodGhpcy5yZWFsT3BlblN0YXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb25PcGVuU3RhdGUgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5vcGVuQ2hhbmdlLmVtaXQodGhpcy5vdmVybGF5T3Blbik7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jZGtDb25uZWN0ZWRPdmVybGF5ICYmIHRoaXMuY2RrQ29ubmVjdGVkT3ZlcmxheS5vdmVybGF5UmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2RrQ29ubmVjdGVkT3ZlcmxheS5vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoaWRlT3ZlcmxheSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucmVhbE9wZW5TdGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5T3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKCF0aGlzLnJlYWxPcGVuU3RhdGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvbk9wZW5TdGF0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5vcGVuQ2hhbmdlLmVtaXQodGhpcy5vdmVybGF5T3Blbik7XG4gICAgICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkNsaWNrSW5wdXRCb3goKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5yZWFkb25seSAmJiAhdGhpcy5pc09wZW5IYW5kbGVkQnlVc2VyKCkpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd092ZXJsYXkoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ2xpY2tCYWNrZHJvcCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oaWRlT3ZlcmxheSgpO1xuICAgIH1cblxuICAgIG9uT3ZlcmxheURldGFjaCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oaWRlT3ZlcmxheSgpO1xuICAgIH1cblxuICAgIG9uUG9zaXRpb25DaGFuZ2UocG9zaXRpb246IENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBvbkNsaWNrQ2xlYXIoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuaXNSYW5nZSA/IFtdIDogbnVsbDtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIGdldFBhcnRUeXBlSW5kZXgocGFydFR5cGU6IFJhbmdlUGFydFR5cGUpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4geyBsZWZ0OiAwLCByaWdodDogMSB9W3BhcnRUeXBlXTtcbiAgICB9XG5cbiAgICBpc0VtcHR5VmFsdWUodmFsdWU6IENvbXBhdGlibGVWYWx1ZSB8IG51bGwpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzUmFuZ2UpIHtcbiAgICAgICAgICAgIHJldHVybiAhdmFsdWUgfHwgIUFycmF5LmlzQXJyYXkodmFsdWUpIHx8IHZhbHVlLmV2ZXJ5KHZhbCA9PiAhdmFsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAhdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBXaGV0aGVyIG9wZW4gc3RhdGUgaXMgcGVybWFuZW50bHkgY29udHJvbGxlZCBieSB1c2VyIGhpbXNlbGZcbiAgICBpc09wZW5IYW5kbGVkQnlVc2VyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcGVuICE9PSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgZ2V0UmVhZGFibGVWYWx1ZSgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgbGV0IHZhbHVlOiBUaW55RGF0ZTtcbiAgICAgICAgaWYgKHRoaXMuaXNSYW5nZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZmxleGlibGUgJiYgdGhpcy5mbGV4aWJsZURhdGVHcmFudWxhcml0eSAhPT0gJ2RheScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0RmxleGlibGVBZHZhbmNlZFJlYWRhYmxlVmFsdWUodGhpcy52YWx1ZSBhcyBUaW55RGF0ZVtdLCB0aGlzLmZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSB0aGlzLnZhbHVlWzBdID8gdGhpcy5kYXRlSGVscGVyLmZvcm1hdCh0aGlzLnZhbHVlWzBdLm5hdGl2ZURhdGUsIHRoaXMuZm9ybWF0KSA6ICcnO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZCA9IHRoaXMudmFsdWVbMV0gPyB0aGlzLmRhdGVIZWxwZXIuZm9ybWF0KHRoaXMudmFsdWVbMV0ubmF0aXZlRGF0ZSwgdGhpcy5mb3JtYXQpIDogJyc7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0YXJ0ICYmIGVuZCA/IGAke3N0YXJ0fSB+ICR7ZW5kfWAgOiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsdWUgPSB0aGlzLnZhbHVlIGFzIFRpbnlEYXRlO1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlID8gdGhpcy5kYXRlSGVscGVyLmZvcm1hdCh2YWx1ZS5uYXRpdmVEYXRlLCB0aGlzLmZvcm1hdCkgOiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0UGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNSYW5nZSAmJiB0aGlzLnBsYWNlaG9sZGVyICYmIEFycmF5LmlzQXJyYXkodGhpcy5wbGFjZWhvbGRlcilcbiAgICAgICAgICAgID8gKHRoaXMucGxhY2Vob2xkZXIgYXMgc3RyaW5nW10pLmpvaW4oJyB+ICcpXG4gICAgICAgICAgICA6ICh0aGlzLnBsYWNlaG9sZGVyIGFzIHN0cmluZyk7XG4gICAgfVxufVxuIiwiPHNwYW5cbiAgY2RrT3ZlcmxheU9yaWdpblxuICAjb3JpZ2luPVwiY2RrT3ZlcmxheU9yaWdpblwiXG4gIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXBpY2tlciB7eyBzaXplID8gcHJlZml4Q2xzICsgJy1waWNrZXItJyArIHNpemUgOiAnJyB9fSB7eyBjbGFzc05hbWUgfX1cIlxuICAoY2xpY2spPVwib25DbGlja0lucHV0Qm94KClcIlxuPlxuICA8bmctY29udGFpbmVyPlxuICAgIDxpbnB1dFxuICAgICAgI3BpY2tlcklucHV0XG4gICAgICB0aHlJbnB1dFxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wte3sgc2l6ZSB9fSBmb3JtLWNvbnRyb2wge3sgcHJlZml4Q2xzIH19LXBpY2tlci1pbnB1dFwiXG4gICAgICBbdGh5U2l6ZV09XCJzaXplXCJcbiAgICAgIFt0YWJpbmRleF09XCItMVwiXG4gICAgICBbY2xhc3MudGh5LWlucHV0LWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtjbGFzcy50aHktaW5wdXQtcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIHJlYWRvbmx5XG4gICAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXG4gICAgICB2YWx1ZT1cInt7IGdldFJlYWRhYmxlVmFsdWUoKSB9fVwiXG4gICAgICBwbGFjZWhvbGRlcj1cInt7IGdldFBsYWNlaG9sZGVyKCkgfX1cIlxuICAgIC8+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRwbFJpZ2h0UmVzdFwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvc3Bhbj5cblxuPCEtLSBSaWdodCBvcGVyYXRvciBpY29ucyAtLT5cbjxuZy10ZW1wbGF0ZSAjdHBsUmlnaHRSZXN0PlxuICA8c3BhbiBjbGFzcz1cInt7IHByZWZpeENscyB9fS1waWNrZXItY2xlYXJcIj5cbiAgICA8dGh5LWljb25cbiAgICAgIHRoeUljb25OYW1lPVwiY2xvc2UtY2lyY2xlLWJvbGQtZmlsbFwiXG4gICAgICAqbmdJZj1cIiFkaXNhYmxlZCAmJiAhaXNFbXB0eVZhbHVlKHZhbHVlKSAmJiBhbGxvd0NsZWFyICYmICFyZWFkb25seVwiXG4gICAgICAoY2xpY2spPVwib25DbGlja0NsZWFyKCRldmVudClcIlxuICAgICAgbmdDbGFzcz1cInJlbW92ZS1saW5rIHJlbW92ZS1saW5rLXt7IHNpemUgfX1cIlxuICAgID48L3RoeS1pY29uPlxuICA8L3NwYW4+XG4gIDxzcGFuIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXBpY2tlci1pY29uXCI+XG4gICAgPHRoeS1pY29uIFt0aHlJY29uTmFtZV09XCJzdWZmaXhJY29uXCIgbmdDbGFzcz1cInJlbW92ZS1saW5rIHJlbW92ZS1saW5rLXt7IHNpemUgfX1cIj48L3RoeS1pY29uPlxuICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tIE92ZXJsYXkgLS0+XG48bmctdGVtcGxhdGVcbiAgY2RrQ29ubmVjdGVkT3ZlcmxheVxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09XCJvcmlnaW5cIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9wZW5dPVwicmVhbE9wZW5TdGF0ZVwiXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5SGFzQmFja2Ryb3BdPVwiIWlzT3BlbkhhbmRsZWRCeVVzZXIoKVwiXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25zXT1cIm92ZXJsYXlQb3NpdGlvbnNcIlxuICBjZGtDb25uZWN0ZWRPdmVybGF5QmFja2Ryb3BDbGFzcz1cImNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wXCJcbiAgKHBvc2l0aW9uQ2hhbmdlKT1cIm9uUG9zaXRpb25DaGFuZ2UoJGV2ZW50KVwiXG4gIChiYWNrZHJvcENsaWNrKT1cIm9uQ2xpY2tCYWNrZHJvcCgpXCJcbiAgKGRldGFjaCk9XCJvbk92ZXJsYXlEZXRhY2goKVwiXG4+XG4gIDxkaXYgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7XCI+XG4gICAgPCEtLSBDb21wYXRpYmxlIGZvciBvdmVybGF5IHRoYXQgbm90IHN1cHBvcnQgb2Zmc2V0IGR5bmFtaWNhbGx5IGFuZCBpbW1lZGlhdGVseSAtLT5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
183
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL3BpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQWdCLE1BQU0saUJBQWlCLENBQUM7QUFHckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFrQyxNQUFNLHNCQUFzQixDQUFDO0FBQzdHLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFHakU7O0dBRUc7QUFTSCxNQUFNLE9BQU8sa0JBQWtCO0lBNkIzQixJQUFJLGFBQWE7UUFDYix5REFBeUQ7UUFDekQsT0FBTyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDdkUsQ0FBQztJQUVELFlBQW9CLGNBQWlDLEVBQVUsVUFBNkIsRUFBVSxPQUFtQjtRQUFyRyxtQkFBYyxHQUFkLGNB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OlsiaW1wb3J0IHsgZ2V0RmxleGlibGVQb3NpdGlvbnMsIFRoeVBsYWNlbWVudCB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgeyBUaW55RGF0ZSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5cbmltcG9ydCB7IENka0Nvbm5lY3RlZE92ZXJsYXksIENka092ZXJsYXlPcmlnaW4sIENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTmdDbGFzcywgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUaHlJY29uQ29tcG9uZW50IH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IFRoeUlucHV0RGlyZWN0aXZlIH0gZnJvbSAnbmd4LXRldGh5cy9pbnB1dCc7XG5pbXBvcnQgeyBEYXRlSGVscGVyU2VydmljZSB9IGZyb20gJy4vZGF0ZS1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBDb21wYXRpYmxlVmFsdWUsIFJhbmdlUGFydFR5cGUgfSBmcm9tICcuL2lubmVyLXR5cGVzJztcbmltcG9ydCB7IGdldEZsZXhpYmxlQWR2YW5jZWRSZWFkYWJsZVZhbHVlIH0gZnJvbSAnLi9waWNrZXIudXRpbCc7XG5pbXBvcnQgeyBUaHlEYXRlR3JhbnVsYXJpdHkgfSBmcm9tICcuL3N0YW5kYXJkLXR5cGVzJztcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1waWNrZXInLFxuICAgIGV4cG9ydEFzOiAndGh5UGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDZGtPdmVybGF5T3JpZ2luLCBUaHlJbnB1dERpcmVjdGl2ZSwgTmdUZW1wbGF0ZU91dGxldCwgTmdJZiwgVGh5SWNvbkNvbXBvbmVudCwgTmdDbGFzcywgQ2RrQ29ubmVjdGVkT3ZlcmxheV1cbn0pXG5leHBvcnQgY2xhc3MgVGh5UGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQElucHV0KCkgaXNSYW5nZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIG9wZW46IGJvb2xlYW4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyB8IHN0cmluZ1tdO1xuICAgIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGFsbG93Q2xlYXI6IGJvb2xlYW47XG4gICAgQElucHV0KCkgYXV0b0ZvY3VzOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGNsYXNzTmFtZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGZvcm1hdDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHNpemU6ICdzbScgfCAneHMnIHwgJ2xnJyB8ICdtZCcgfCAnZGVmYXVsdCc7XG4gICAgQElucHV0KCkgdmFsdWU6IFRpbnlEYXRlIHwgVGlueURhdGVbXSB8IG51bGw7XG4gICAgQElucHV0KCkgc3VmZml4SWNvbjogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHBsYWNlbWVudDogVGh5UGxhY2VtZW50ID0gJ2JvdHRvbUxlZnQnO1xuICAgIEBJbnB1dCgpIGZsZXhpYmxlOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgZmxleGlibGVEYXRlR3JhbnVsYXJpdHk6IFRoeURhdGVHcmFudWxhcml0eTtcbiAgICBAT3V0cHV0KCkgYmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUaW55RGF0ZSB8IFRpbnlEYXRlW10gfCBudWxsPigpO1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBvcGVuQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpOyAvLyBFbWl0dGVkIHdoZW4gb3ZlcmxheSdzIG9wZW4gc3RhdGUgY2hhbmdlXG5cbiAgICBAVmlld0NoaWxkKCdvcmlnaW4nLCB7IHN0YXRpYzogdHJ1ZSB9KSBvcmlnaW46IENka092ZXJsYXlPcmlnaW47XG4gICAgQFZpZXdDaGlsZChDZGtDb25uZWN0ZWRPdmVybGF5LCB7IHN0YXRpYzogdHJ1ZSB9KSBjZGtDb25uZWN0ZWRPdmVybGF5OiBDZGtDb25uZWN0ZWRPdmVybGF5O1xuICAgIEBWaWV3Q2hpbGQoJ3BpY2tlcklucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgcGlja2VySW5wdXQ6IEVsZW1lbnRSZWY7XG5cbiAgICBwcmVmaXhDbHMgPSAndGh5LWNhbGVuZGFyJztcbiAgICBhbmltYXRpb25PcGVuU3RhdGUgPSBmYWxzZTtcbiAgICBvdmVybGF5T3BlbiA9IGZhbHNlOyAvLyBBdmFpbGFibGUgd2hlbiBcIm9wZW5cIj11bmRlZmluZWRcbiAgICBvdmVybGF5UG9zaXRpb25zID0gZ2V0RmxleGlibGVQb3NpdGlvbnModGhpcy5wbGFjZW1lbnQsIDQpO1xuXG4gICAgZ2V0IHJlYWxPcGVuU3RhdGUoKTogYm9vbGVhbiB7XG4gICAgICAgIC8vIFRoZSB2YWx1ZSB0aGF0IHJlYWxseSBkZWNpZGUgdGhlIG9wZW4gc3RhdGUgb2Ygb3ZlcmxheVxuICAgICAgICByZXR1cm4gdGhpcy5pc09wZW5IYW5kbGVkQnlVc2VyKCkgPyAhIXRoaXMub3BlbiA6IHRoaXMub3ZlcmxheU9wZW47XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgZGF0ZUhlbHBlcjogRGF0ZUhlbHBlclNlcnZpY2UsIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZikge31cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vdmVybGF5UG9zaXRpb25zID0gZ2V0RmxleGlibGVQb3NpdGlvbnModGhpcy5wbGFjZW1lbnQsIDQpO1xuICAgICAgICBpZiAodGhpcy5hdXRvRm9jdXMpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBpY2tlcklucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBvbkJsdXIoZXZlbnQ6IEZvY3VzRXZlbnQpIHtcbiAgICAgICAgdGhpcy5ibHVyLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIHNob3dPdmVybGF5KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMucmVhbE9wZW5TdGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5T3BlbiA9IHRydWU7XG4gICAgICAgICAgICBpZiAodGhpcy5yZWFsT3BlblN0YXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb25PcGVuU3RhdGUgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5vcGVuQ2hhbmdlLmVtaXQodGhpcy5vdmVybGF5T3Blbik7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jZGtDb25uZWN0ZWRPdmVybGF5ICYmIHRoaXMuY2RrQ29ubmVjdGVkT3ZlcmxheS5vdmVybGF5UmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2RrQ29ubmVjdGVkT3ZlcmxheS5vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoaWRlT3ZlcmxheSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucmVhbE9wZW5TdGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5T3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKCF0aGlzLnJlYWxPcGVuU3RhdGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvbk9wZW5TdGF0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5vcGVuQ2hhbmdlLmVtaXQodGhpcy5vdmVybGF5T3Blbik7XG4gICAgICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkNsaWNrSW5wdXRCb3goKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5yZWFkb25seSAmJiAhdGhpcy5pc09wZW5IYW5kbGVkQnlVc2VyKCkpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd092ZXJsYXkoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ2xpY2tCYWNrZHJvcCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oaWRlT3ZlcmxheSgpO1xuICAgIH1cblxuICAgIG9uT3ZlcmxheURldGFjaCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oaWRlT3ZlcmxheSgpO1xuICAgIH1cblxuICAgIG9uUG9zaXRpb25DaGFuZ2UocG9zaXRpb246IENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBvbkNsaWNrQ2xlYXIoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuaXNSYW5nZSA/IFtdIDogbnVsbDtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIGdldFBhcnRUeXBlSW5kZXgocGFydFR5cGU6IFJhbmdlUGFydFR5cGUpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4geyBsZWZ0OiAwLCByaWdodDogMSB9W3BhcnRUeXBlXTtcbiAgICB9XG5cbiAgICBpc0VtcHR5VmFsdWUodmFsdWU6IENvbXBhdGlibGVWYWx1ZSB8IG51bGwpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzUmFuZ2UpIHtcbiAgICAgICAgICAgIHJldHVybiAhdmFsdWUgfHwgIUFycmF5LmlzQXJyYXkodmFsdWUpIHx8IHZhbHVlLmV2ZXJ5KHZhbCA9PiAhdmFsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAhdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBXaGV0aGVyIG9wZW4gc3RhdGUgaXMgcGVybWFuZW50bHkgY29udHJvbGxlZCBieSB1c2VyIGhpbXNlbGZcbiAgICBpc09wZW5IYW5kbGVkQnlVc2VyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcGVuICE9PSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgZ2V0UmVhZGFibGVWYWx1ZSgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgbGV0IHZhbHVlOiBUaW55RGF0ZTtcbiAgICAgICAgaWYgKHRoaXMuaXNSYW5nZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZmxleGlibGUgJiYgdGhpcy5mbGV4aWJsZURhdGVHcmFudWxhcml0eSAhPT0gJ2RheScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0RmxleGlibGVBZHZhbmNlZFJlYWRhYmxlVmFsdWUodGhpcy52YWx1ZSBhcyBUaW55RGF0ZVtdLCB0aGlzLmZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSB0aGlzLnZhbHVlWzBdID8gdGhpcy5kYXRlSGVscGVyLmZvcm1hdCh0aGlzLnZhbHVlWzBdLm5hdGl2ZURhdGUsIHRoaXMuZm9ybWF0KSA6ICcnO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZCA9IHRoaXMudmFsdWVbMV0gPyB0aGlzLmRhdGVIZWxwZXIuZm9ybWF0KHRoaXMudmFsdWVbMV0ubmF0aXZlRGF0ZSwgdGhpcy5mb3JtYXQpIDogJyc7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0YXJ0ICYmIGVuZCA/IGAke3N0YXJ0fSB+ICR7ZW5kfWAgOiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsdWUgPSB0aGlzLnZhbHVlIGFzIFRpbnlEYXRlO1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlID8gdGhpcy5kYXRlSGVscGVyLmZvcm1hdCh2YWx1ZS5uYXRpdmVEYXRlLCB0aGlzLmZvcm1hdCkgOiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0UGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNSYW5nZSAmJiB0aGlzLnBsYWNlaG9sZGVyICYmIEFycmF5LmlzQXJyYXkodGhpcy5wbGFjZWhvbGRlcilcbiAgICAgICAgICAgID8gKHRoaXMucGxhY2Vob2xkZXIgYXMgc3RyaW5nW10pLmpvaW4oJyB+ICcpXG4gICAgICAgICAgICA6ICh0aGlzLnBsYWNlaG9sZGVyIGFzIHN0cmluZyk7XG4gICAgfVxufVxuIiwiPHNwYW5cbiAgY2RrT3ZlcmxheU9yaWdpblxuICAjb3JpZ2luPVwiY2RrT3ZlcmxheU9yaWdpblwiXG4gIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXBpY2tlciB7eyBzaXplID8gcHJlZml4Q2xzICsgJy1waWNrZXItJyArIHNpemUgOiAnJyB9fSB7eyBjbGFzc05hbWUgfX1cIlxuICAoY2xpY2spPVwib25DbGlja0lucHV0Qm94KClcIlxuPlxuICA8bmctY29udGFpbmVyPlxuICAgIDxpbnB1dFxuICAgICAgI3BpY2tlcklucHV0XG4gICAgICB0aHlJbnB1dFxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wte3sgc2l6ZSB9fSBmb3JtLWNvbnRyb2wge3sgcHJlZml4Q2xzIH19LXBpY2tlci1pbnB1dFwiXG4gICAgICBbdGh5U2l6ZV09XCJzaXplXCJcbiAgICAgIFt0YWJpbmRleF09XCItMVwiXG4gICAgICBbY2xhc3MudGh5LWlucHV0LWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtjbGFzcy50aHktaW5wdXQtcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIHJlYWRvbmx5XG4gICAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXG4gICAgICB2YWx1ZT1cInt7IGdldFJlYWRhYmxlVmFsdWUoKSB9fVwiXG4gICAgICBwbGFjZWhvbGRlcj1cInt7IGdldFBsYWNlaG9sZGVyKCkgfX1cIlxuICAgIC8+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRwbFJpZ2h0UmVzdFwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvc3Bhbj5cblxuPCEtLSBSaWdodCBvcGVyYXRvciBpY29ucyAtLT5cbjxuZy10ZW1wbGF0ZSAjdHBsUmlnaHRSZXN0PlxuICA8c3BhbiBjbGFzcz1cInt7IHByZWZpeENscyB9fS1waWNrZXItY2xlYXJcIj5cbiAgICA8dGh5LWljb25cbiAgICAgIHRoeUljb25OYW1lPVwiY2xvc2UtY2lyY2xlLWJvbGQtZmlsbFwiXG4gICAgICAqbmdJZj1cIiFkaXNhYmxlZCAmJiAhaXNFbXB0eVZhbHVlKHZhbHVlKSAmJiBhbGxvd0NsZWFyICYmICFyZWFkb25seVwiXG4gICAgICAoY2xpY2spPVwib25DbGlja0NsZWFyKCRldmVudClcIlxuICAgICAgbmdDbGFzcz1cInJlbW92ZS1saW5rIHJlbW92ZS1saW5rLXt7IHNpemUgfX1cIlxuICAgID48L3RoeS1pY29uPlxuICA8L3NwYW4+XG4gIDxzcGFuIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXBpY2tlci1pY29uXCI+XG4gICAgPHRoeS1pY29uIFt0aHlJY29uTmFtZV09XCJzdWZmaXhJY29uXCIgbmdDbGFzcz1cInJlbW92ZS1saW5rLXt7IHNpemUgPyBzaXplIDogJ2RlZmF1bHQnIH19XCI+PC90aHktaWNvbj5cbiAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLSBPdmVybGF5IC0tPlxuPG5nLXRlbXBsYXRlXG4gIGNka0Nvbm5lY3RlZE92ZXJsYXlcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW5dPVwib3JpZ2luXCJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcGVuXT1cInJlYWxPcGVuU3RhdGVcIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheUhhc0JhY2tkcm9wXT1cIiFpc09wZW5IYW5kbGVkQnlVc2VyKClcIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uc109XCJvdmVybGF5UG9zaXRpb25zXCJcbiAgY2RrQ29ubmVjdGVkT3ZlcmxheUJhY2tkcm9wQ2xhc3M9XCJjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFwiXG4gIChwb3NpdGlvbkNoYW5nZSk9XCJvblBvc2l0aW9uQ2hhbmdlKCRldmVudClcIlxuICAoYmFja2Ryb3BDbGljayk9XCJvbkNsaWNrQmFja2Ryb3AoKVwiXG4gIChkZXRhY2gpPVwib25PdmVybGF5RGV0YWNoKClcIlxuPlxuICA8ZGl2IHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO1wiPlxuICAgIDwhLS0gQ29tcGF0aWJsZSBmb3Igb3ZlcmxheSB0aGF0IG5vdCBzdXBwb3J0IG9mZnNldCBkeW5hbWljYWxseSBhbmQgaW1tZWRpYXRlbHkgLS0+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -81,7 +81,9 @@ export class ThyFormValidatorLoader {
|
|
|
81
81
|
defaultRemoveError(element) {
|
|
82
82
|
if (element && element.parentElement) {
|
|
83
83
|
const invalidFeedback = element.parentElement.querySelector('.invalid-feedback');
|
|
84
|
-
|
|
84
|
+
if (invalidFeedback) {
|
|
85
|
+
element.parentElement.removeChild(invalidFeedback);
|
|
86
|
+
}
|
|
85
87
|
}
|
|
86
88
|
}
|
|
87
89
|
removeError(element) {
|
|
@@ -127,4 +129,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
127
129
|
type: Inject,
|
|
128
130
|
args: [THY_VALIDATOR_CONFIG]
|
|
129
131
|
}] }]; } });
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12YWxpZGF0b3ItbG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Zvcm0vZm9ybS12YWxpZGF0b3ItbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHN0QsT0FBTyxFQUFFLG9CQUFvQixFQUEyRCxNQUFNLGNBQWMsQ0FBQzs7QUFFN0csTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsWUFBWSxDQUFDO0FBRXRELE1BQU0sYUFBYSxHQUFHLFlBQVksQ0FBQztBQUNuQyxNQUFNLHNCQUFzQixHQUFHLGtCQUFrQixDQUFDO0FBRWxELE1BQU0sc0JBQXNCLEdBQWlDO0lBQ3pELGdCQUFnQixFQUFFLElBQUk7SUFDdEIsa0JBQWtCLEVBQUUsSUFBSTtJQUN4QixrQkFBa0IsRUFBRSxFQUFFO0NBQ3pCLENBQUM7QUFFRixNQUFNLHdCQUF3QixHQUFHO0lBQzdCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFNBQVMsRUFBRSx5QkFBeUI7SUFDcEMsU0FBUyxFQUFFLHlCQUF5QjtJQUNwQyxjQUFjLEVBQUUsZUFBZTtJQUMvQixLQUFLLEVBQUUsWUFBWTtJQUNuQixPQUFPLEVBQUUsU0FBUztJQUNsQixPQUFPLEVBQUUsWUFBWTtJQUNyQixNQUFNLEVBQUUsUUFBUTtJQUNoQixHQUFHLEVBQUUsWUFBWTtJQUNqQixHQUFHLEVBQUUsaUJBQWlCO0lBQ3RCLEdBQUcsRUFBRSxpQkFBaUI7Q0FDekIsQ0FBQztBQUVGOztHQUVHO0FBRUgsTUFBTSxPQUFPLHNCQUFzQjtJQUd2QiwyQkFBMkIsQ0FBQyxHQUFXO1FBQzNDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyx3QkFBd0IsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLHdC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LENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxRQUFtQztRQUNyRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELDJCQUEyQixDQUFDLGtCQUFzQztRQUM5RCxJQUFJLENBQUMsTUFBTSxDQUFDLHdCQUF3QixHQUFHLGtCQUFrQixDQUFDO0lBQzlELENBQUM7O21IQXBHUSxzQkFBc0Isa0JBWW5CLG9CQUFvQjt1SEFadkIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVU7OzBCQVlGLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJ25neC10ZXRoeXMvdHlwZXMnO1xuaW1wb3J0IHsgaGVscGVycyB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5cbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFRIWV9WQUxJREFUT1JfQ09ORklHLCBUaHlGb3JtVmFsaWRhdGlvbk1lc3NhZ2VzLCBUaHlGb3JtVmFsaWRhdG9yR2xvYmFsQ29uZmlnIH0gZnJvbSAnLi9mb3JtLmNsYXNzJztcblxuZXhwb3J0IGNvbnN0IEVSUk9SX1ZBTFVFX1JFUExBQ0VfUkVHRVggPSAvXFx7KC4rPylcXH0vZztcblxuY29uc3QgSU5WQUxJRF9DTEFTUyA9ICdpcy1pbnZhbGlkJztcbmNvbnN0IElOVkFMSURfRkVFREJBQ0tfQ0xBU1MgPSAnaW52YWxpZC1mZWVkYmFjayc7XG5cbmNvbnN0IGRlZmF1bHRWYWxpZGF0b3JDb25maWc6IFRoeUZvcm1WYWxpZGF0b3JHbG9iYWxDb25maWcgPSB7XG4gICAgc2hvd0VsZW1lbnRFcnJvcjogdHJ1ZSxcbiAgICByZW1vdmVFbGVtZW50RXJyb3I6IHRydWUsXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2VzOiB7fVxufTtcblxuY29uc3QgZ2xvYmFsVmFsaWRhdGlvbk1lc3NhZ2VzID0ge1xuICAgIHJlcXVpcmVkOiAn6K+l6YCJ6aG55LiN6IO95Li656m6JyxcbiAgICBtYXhsZW5ndGg6ICfor6XpgInpobnovpPlhaXlgLzplb/luqbkuI3og73lpKfkuo57bWF4bGVuZ3RofScsXG4gICAgbWlubGVuZ3RoOiAn6K+l6YCJ6aG56L6T5YWl5YC86ZW/5bqm5LiN6IO95bCP5LqOe21pbmxlbmd0aH0nLFxuICAgIHRoeVVuaXF1ZUNoZWNrOiAn6L6T5YWl5YC85bey57uP5a2Y5Zyo77yM6K+36YeN5paw6L6T5YWlJyxcbiAgICBlbWFpbDogJ+i+k+WFpemCruS7tueahOagvOW8j+S4jeato+ehricsXG4gICAgY29uZmlybTogJ+S4pOasoei+k+WFpeS4jeS4gOiHtCcsXG4gICAgcGF0dGVybjogJ+ivpemAiemhuei+k+WFpeagvOW8j+S4jeato+ehricsXG4gICAgbnVtYmVyOiAn5b+F6aG76L6T5YWl5pWw5a2XJyxcbiAgICB1cmw6ICfovpPlhaVVUkzmoLzlvI/kuI3mraPnoa4nLFxuICAgIG1heDogJ+ivpemAiemhuei+k+WFpeWAvOS4jeiDveWkp+S6jnttYXh9JyxcbiAgICBtaW46ICfor6XpgInpobnovpPlhaXlgLzkuI3og73lsI/kuo57bWlufSdcbn07XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRoeUZvcm1WYWxpZGF0b3JMb2FkZXIge1xuICAgIHByaXZhdGUgY29uZmlnOiBUaHlGb3JtVmFsaWRhdG9yR2xvYmFsQ29uZmlnO1xuXG4gICAgcHJpdmF0ZSBnZXREZWZhdWx0VmFsaWRhdGlvbk1lc3NhZ2Uoa2V5OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmdsb2JhbFZhbGlkYXRpb25NZXNzYWdlcyAmJiB0aGlzLmNvbmZpZy5nbG9iYWxWYWxpZGF0aW9uTWVzc2FnZXNba2V5XSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLmdsb2JhbFZhbGlkYXRpb25NZXNzYWdlc1trZXldO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGdsb2JhbFZhbGlkYXRpb25NZXNzYWdlc1trZXldO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KFRIWV9WQUxJREFUT1JfQ09ORklHKVxuICAgICAgICBjb25maWc6IFRoeUZvcm1WYWxpZGF0b3JHbG9iYWxDb25maWdcbiAgICApIHtcbiAgICAgICAgdGhpcy5jb25maWcgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0VmFsaWRhdG9yQ29uZmlnLCBjb25maWcpO1xuICAgIH1cblxuICAgIGdldCB2YWxpZGF0aW9uTWVzc2FnZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy52YWxpZGF0aW9uTWVzc2FnZXM7XG4gICAgfVxuXG4gICAgZ2V0IHZhbGlkYXRlT24oKSB7XG4gICAgICAgIGlmICghdGhpcy5jb25maWc/LnZhbGlkYXRlT24pIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLnZhbGlkYXRlT24gPSAnc3VibWl0JztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5jb25maWcudmFsaWRhdGVPbjtcbiAgICB9XG5cbiAgICBpc0VsZW1lbnRJbklucHV0R3JvdXAoZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuICEhKGVsZW1lbnQ/LnBhcmVudEVsZW1lbnQ/LnRhZ05hbWUudG9VcHBlckNhc2UoKSA9PT0gJ1RIWS1JTlBVVC1HUk9VUCcpO1xuICAgIH1cblxuICAgIGdldEVycm9yTWVzc2FnZShuYW1lOiBzdHJpbmcsIGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMudmFsaWRhdGlvbk1lc3NhZ2VzW25hbWVdICYmIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2VzW25hbWVdW2tleV0pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRpb25NZXNzYWdlc1tuYW1lXVtrZXldO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGVmYXVsdFZhbGlkYXRpb25NZXNzYWdlKGtleSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRFcnJvck1lc3NhZ2VzKG5hbWU6IHN0cmluZywgdmFsaWRhdGlvbkVycm9yczogVmFsaWRhdGlvbkVycm9ycyk6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZXMgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCB2YWxpZGF0aW9uRXJyb3IgaW4gdmFsaWRhdGlvbkVycm9ycykge1xuICAgICAgICAgICAgaWYgKHZhbGlkYXRpb25FcnJvcnMuaGFzT3duUHJvcGVydHkodmFsaWRhdGlvbkVycm9yKSkge1xuICAgICAgICAgICAgICAgIG1lc3NhZ2VzLnB1c2godGhpcy5nZXRFcnJvck1lc3NhZ2UobmFtZSwgdmFsaWRhdGlvbkVycm9yKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1lc3NhZ2VzO1xuICAgIH1cblxuICAgIGRlZmF1bHRTaG93RXJyb3IoZWxlbWVudDogSFRNTEVsZW1lbnQsIGVycm9yTWVzc2FnZXM6IHN0cmluZ1tdKSB7XG4gICAgICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQucGFyZW50RWxlbWVudCkge1xuICAgICAgICAgICAgY29uc3QgZG9jdW1lbnRGcmFnID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xuICAgICAgICAgICAgY29uc3QgZGl2Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ0RJVicpO1xuICAgICAgICAgICAgY29uc3QgdGV4dE5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShlcnJvck1lc3NhZ2VzWzBdKTtcbiAgICAgICAgICAgIGRpdk5vZGUuYXBwZW5kQ2hpbGQodGV4dE5vZGUpO1xuICAgICAgICAgICAgZGl2Tm9kZS5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgSU5WQUxJRF9GRUVEQkFDS19DTEFTUyk7XG4gICAgICAgICAgICBkb2N1bWVudEZyYWcuYXBwZW5kQ2hpbGQoZGl2Tm9kZSk7XG4gICAgICAgICAgICBlbGVtZW50LnBhcmVudEVsZW1lbnQuYXBwZW5kKGRvY3VtZW50RnJhZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkZWZhdWx0UmVtb3ZlRXJyb3IoZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC5wYXJlbnRFbGVtZW50KSB7XG4gICAgICAgICAgICBjb25zdCBpbnZhbGlkRmVlZGJhY2sgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvcignLmludmFsaWQtZmVlZGJhY2snKTtcbiAgICAgICAgICAgIGVsZW1lbnQucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChpbnZhbGlkRmVlZGJhY2spO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVtb3ZlRXJyb3IoZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgZm9ybUNvbnRyb2xFbGVtZW50ID0gdGhpcy5pc0VsZW1lbnRJbklucHV0R3JvdXAoZWxlbWVudCkgPyBlbGVtZW50LnBhcmVudEVsZW1lbnQgOiBlbGVtZW50O1xuICAgICAgICBmb3JtQ29udHJvbEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShJTlZBTElEX0NMQVNTKTtcbiAgICAgICAgaWYgKGhlbHBlcnMuaXNGdW5jdGlvbih0aGlzLmNvbmZpZy5yZW1vdmVFbGVtZW50RXJyb3IpKSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpZy5yZW1vdmVFbGVtZW50RXJyb3IoZm9ybUNvbnRyb2xFbGVtZW50KTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNvbmZpZy5zaG93RWxlbWVudEVycm9yKSB7XG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRSZW1vdmVFcnJvcihmb3JtQ29udHJvbEVsZW1lbnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gZG8gbm90aGluZ3NcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNob3dFcnJvcihlbGVtZW50OiBIVE1MRWxlbWVudCwgZXJyb3JNZXNzYWdlczogc3RyaW5nW10pIHtcbiAgICAgICAgY29uc3QgZm9ybUNvbnRyb2xFbGVtZW50ID0gdGhpcy5pc0VsZW1lbnRJbklucHV0R3JvdXAoZWxlbWVudCkgPyBlbGVtZW50LnBhcmVudEVsZW1lbnQgOiBlbGVtZW50O1xuICAgICAgICBmb3JtQ29udHJvbEVsZW1lbnQuY2xhc3NMaXN0LmFkZChJTlZBTElEX0NMQVNTKTtcbiAgICAgICAgaWYgKGhlbHBlcnMuaXNGdW5jdGlvbih0aGlzLmNvbmZpZy5zaG93RWxlbWVudEVycm9yKSkge1xuICAgICAgICAgICAgdGhpcy5jb25maWcuc2hvd0VsZW1lbnRFcnJvcihmb3JtQ29udHJvbEVsZW1lbnQsIGVycm9yTWVzc2FnZXMpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY29uZmlnLnNob3dFbGVtZW50RXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdFNob3dFcnJvcihmb3JtQ29udHJvbEVsZW1lbnQsIGVycm9yTWVzc2FnZXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gZG8gbm90aGluZ3NcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFkZFZhbGlkYXRpb25NZXNzYWdlcyhtZXNzYWdlczogVGh5Rm9ybVZhbGlkYXRpb25NZXNzYWdlcykge1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuY29uZmlnLnZhbGlkYXRpb25NZXNzYWdlcywgbWVzc2FnZXMpO1xuICAgIH1cblxuICAgIHNldEdsb2JhbFZhbGlkYXRpb25NZXNzYWdlcyh2YWxpZGF0aW9uTWVzc2FnZXM6IERpY3Rpb25hcnk8c3RyaW5nPikge1xuICAgICAgICB0aGlzLmNvbmZpZy5nbG9iYWxWYWxpZGF0aW9uTWVzc2FnZXMgPSB2YWxpZGF0aW9uTWVzc2FnZXM7XG4gICAgfVxufVxuIl19
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12YWxpZGF0b3ItbG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Zvcm0vZm9ybS12YWxpZGF0b3ItbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHN0QsT0FBTyxFQUFFLG9CQUFvQixFQUEyRCxNQUFNLGNBQWMsQ0FBQzs7QUFFN0csTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsWUFBWSxDQUFDO0FBRXRELE1BQU0sYUFBYSxHQUFHLFlBQVksQ0FBQztBQUNuQyxNQUFNLHNCQUFzQixHQUFHLGtCQUFrQixDQUFDO0FBRWxELE1BQU0sc0JBQXNCLEdBQWlDO0lBQ3pELGdCQUFnQixFQUFFLElBQUk7SUFDdEIsa0JBQWtCLEVBQUUsSUFBSTtJQUN4QixrQkFBa0IsRUFBRSxFQUFFO0NBQ3pCLENBQUM7QUFFRixNQUFNLHdCQUF3QixHQUFHO0lBQzdCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFNBQVMsRUFBRSx5QkFBeUI7SUFDcEMsU0FBUyxFQUFFLHlCQUF5QjtJQUNwQyxjQUFjLEVBQUUsZUFBZTtJQUMvQixLQUFLLEVBQUUsWUFBWTtJQUNuQixPQUFPLEVBQUUsU0FBUztJQUNsQixPQUFPLEVBQUUsWUFBWTtJQUNyQixNQUFNLEVBQUUsUUFBUTtJQUNoQixHQUFHLEVBQUUsWUFBWTtJQUNqQixHQUFHLEVBQUUsaUJBQWlCO0lBQ3RCLEdBQUcsRUFBRSxpQkFBaUI7Q0FDekIsQ0FBQztBQUVGOztHQUVHO0FBRUgsTUFBTSxPQUFPLHNCQUFzQjtJQUd2QiwyQkFBMkIsQ0FBQyxHQUFXO1FBQzNDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyx3QkFBd0IsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLHdC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RDthQUFNO1lBQ0gsY0FBYztTQUNqQjtJQUNMLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxRQUFtQztRQUNyRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELDJCQUEyQixDQUFDLGtCQUFzQztRQUM5RCxJQUFJLENBQUMsTUFBTSxDQUFDLHdCQUF3QixHQUFHLGtCQUFrQixDQUFDO0lBQzlELENBQUM7O21IQXRHUSxzQkFBc0Isa0JBWW5CLG9CQUFvQjt1SEFadkIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVU7OzBCQVlGLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJ25neC10ZXRoeXMvdHlwZXMnO1xuaW1wb3J0IHsgaGVscGVycyB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5cbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFRIWV9WQUxJREFUT1JfQ09ORklHLCBUaHlGb3JtVmFsaWRhdGlvbk1lc3NhZ2VzLCBUaHlGb3JtVmFsaWRhdG9yR2xvYmFsQ29uZmlnIH0gZnJvbSAnLi9mb3JtLmNsYXNzJztcblxuZXhwb3J0IGNvbnN0IEVSUk9SX1ZBTFVFX1JFUExBQ0VfUkVHRVggPSAvXFx7KC4rPylcXH0vZztcblxuY29uc3QgSU5WQUxJRF9DTEFTUyA9ICdpcy1pbnZhbGlkJztcbmNvbnN0IElOVkFMSURfRkVFREJBQ0tfQ0xBU1MgPSAnaW52YWxpZC1mZWVkYmFjayc7XG5cbmNvbnN0IGRlZmF1bHRWYWxpZGF0b3JDb25maWc6IFRoeUZvcm1WYWxpZGF0b3JHbG9iYWxDb25maWcgPSB7XG4gICAgc2hvd0VsZW1lbnRFcnJvcjogdHJ1ZSxcbiAgICByZW1vdmVFbGVtZW50RXJyb3I6IHRydWUsXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2VzOiB7fVxufTtcblxuY29uc3QgZ2xvYmFsVmFsaWRhdGlvbk1lc3NhZ2VzID0ge1xuICAgIHJlcXVpcmVkOiAn6K+l6YCJ6aG55LiN6IO95Li656m6JyxcbiAgICBtYXhsZW5ndGg6ICfor6XpgInpobnovpPlhaXlgLzplb/luqbkuI3og73lpKfkuo57bWF4bGVuZ3RofScsXG4gICAgbWlubGVuZ3RoOiAn6K+l6YCJ6aG56L6T5YWl5YC86ZW/5bqm5LiN6IO95bCP5LqOe21pbmxlbmd0aH0nLFxuICAgIHRoeVVuaXF1ZUNoZWNrOiAn6L6T5YWl5YC85bey57uP5a2Y5Zyo77yM6K+36YeN5paw6L6T5YWlJyxcbiAgICBlbWFpbDogJ+i+k+WFpemCruS7tueahOagvOW8j+S4jeato+ehricsXG4gICAgY29uZmlybTogJ+S4pOasoei+k+WFpeS4jeS4gOiHtCcsXG4gICAgcGF0dGVybjogJ+ivpemAiemhuei+k+WFpeagvOW8j+S4jeato+ehricsXG4gICAgbnVtYmVyOiAn5b+F6aG76L6T5YWl5pWw5a2XJyxcbiAgICB1cmw6ICfovpPlhaVVUkzmoLzlvI/kuI3mraPnoa4nLFxuICAgIG1heDogJ+ivpemAiemhuei+k+WFpeWAvOS4jeiDveWkp+S6jnttYXh9JyxcbiAgICBtaW46ICfor6XpgInpobnovpPlhaXlgLzkuI3og73lsI/kuo57bWlufSdcbn07XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRoeUZvcm1WYWxpZGF0b3JMb2FkZXIge1xuICAgIHByaXZhdGUgY29uZmlnOiBUaHlGb3JtVmFsaWRhdG9yR2xvYmFsQ29uZmlnO1xuXG4gICAgcHJpdmF0ZSBnZXREZWZhdWx0VmFsaWRhdGlvbk1lc3NhZ2Uoa2V5OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmdsb2JhbFZhbGlkYXRpb25NZXNzYWdlcyAmJiB0aGlzLmNvbmZpZy5nbG9iYWxWYWxpZGF0aW9uTWVzc2FnZXNba2V5XSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLmdsb2JhbFZhbGlkYXRpb25NZXNzYWdlc1trZXldO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGdsb2JhbFZhbGlkYXRpb25NZXNzYWdlc1trZXldO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KFRIWV9WQUxJREFUT1JfQ09ORklHKVxuICAgICAgICBjb25maWc6IFRoeUZvcm1WYWxpZGF0b3JHbG9iYWxDb25maWdcbiAgICApIHtcbiAgICAgICAgdGhpcy5jb25maWcgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0VmFsaWRhdG9yQ29uZmlnLCBjb25maWcpO1xuICAgIH1cblxuICAgIGdldCB2YWxpZGF0aW9uTWVzc2FnZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy52YWxpZGF0aW9uTWVzc2FnZXM7XG4gICAgfVxuXG4gICAgZ2V0IHZhbGlkYXRlT24oKSB7XG4gICAgICAgIGlmICghdGhpcy5jb25maWc/LnZhbGlkYXRlT24pIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLnZhbGlkYXRlT24gPSAnc3VibWl0JztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5jb25maWcudmFsaWRhdGVPbjtcbiAgICB9XG5cbiAgICBpc0VsZW1lbnRJbklucHV0R3JvdXAoZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuICEhKGVsZW1lbnQ/LnBhcmVudEVsZW1lbnQ/LnRhZ05hbWUudG9VcHBlckNhc2UoKSA9PT0gJ1RIWS1JTlBVVC1HUk9VUCcpO1xuICAgIH1cblxuICAgIGdldEVycm9yTWVzc2FnZShuYW1lOiBzdHJpbmcsIGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMudmFsaWRhdGlvbk1lc3NhZ2VzW25hbWVdICYmIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2VzW25hbWVdW2tleV0pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRpb25NZXNzYWdlc1tuYW1lXVtrZXldO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGVmYXVsdFZhbGlkYXRpb25NZXNzYWdlKGtleSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRFcnJvck1lc3NhZ2VzKG5hbWU6IHN0cmluZywgdmFsaWRhdGlvbkVycm9yczogVmFsaWRhdGlvbkVycm9ycyk6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZXMgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCB2YWxpZGF0aW9uRXJyb3IgaW4gdmFsaWRhdGlvbkVycm9ycykge1xuICAgICAgICAgICAgaWYgKHZhbGlkYXRpb25FcnJvcnMuaGFzT3duUHJvcGVydHkodmFsaWRhdGlvbkVycm9yKSkge1xuICAgICAgICAgICAgICAgIG1lc3NhZ2VzLnB1c2godGhpcy5nZXRFcnJvck1lc3NhZ2UobmFtZSwgdmFsaWRhdGlvbkVycm9yKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1lc3NhZ2VzO1xuICAgIH1cblxuICAgIGRlZmF1bHRTaG93RXJyb3IoZWxlbWVudDogSFRNTEVsZW1lbnQsIGVycm9yTWVzc2FnZXM6IHN0cmluZ1tdKSB7XG4gICAgICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQucGFyZW50RWxlbWVudCkge1xuICAgICAgICAgICAgY29uc3QgZG9jdW1lbnRGcmFnID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xuICAgICAgICAgICAgY29uc3QgZGl2Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ0RJVicpO1xuICAgICAgICAgICAgY29uc3QgdGV4dE5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShlcnJvck1lc3NhZ2VzWzBdKTtcbiAgICAgICAgICAgIGRpdk5vZGUuYXBwZW5kQ2hpbGQodGV4dE5vZGUpO1xuICAgICAgICAgICAgZGl2Tm9kZS5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgSU5WQUxJRF9GRUVEQkFDS19DTEFTUyk7XG4gICAgICAgICAgICBkb2N1bWVudEZyYWcuYXBwZW5kQ2hpbGQoZGl2Tm9kZSk7XG4gICAgICAgICAgICBlbGVtZW50LnBhcmVudEVsZW1lbnQuYXBwZW5kKGRvY3VtZW50RnJhZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkZWZhdWx0UmVtb3ZlRXJyb3IoZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC5wYXJlbnRFbGVtZW50KSB7XG4gICAgICAgICAgICBjb25zdCBpbnZhbGlkRmVlZGJhY2sgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvcignLmludmFsaWQtZmVlZGJhY2snKTtcbiAgICAgICAgICAgIGlmIChpbnZhbGlkRmVlZGJhY2spIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50LnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoaW52YWxpZEZlZWRiYWNrKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlbW92ZUVycm9yKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IGZvcm1Db250cm9sRWxlbWVudCA9IHRoaXMuaXNFbGVtZW50SW5JbnB1dEdyb3VwKGVsZW1lbnQpID8gZWxlbWVudC5wYXJlbnRFbGVtZW50IDogZWxlbWVudDtcbiAgICAgICAgZm9ybUNvbnRyb2xFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoSU5WQUxJRF9DTEFTUyk7XG4gICAgICAgIGlmIChoZWxwZXJzLmlzRnVuY3Rpb24odGhpcy5jb25maWcucmVtb3ZlRWxlbWVudEVycm9yKSkge1xuICAgICAgICAgICAgdGhpcy5jb25maWcucmVtb3ZlRWxlbWVudEVycm9yKGZvcm1Db250cm9sRWxlbWVudCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5jb25maWcuc2hvd0VsZW1lbnRFcnJvcikge1xuICAgICAgICAgICAgdGhpcy5kZWZhdWx0UmVtb3ZlRXJyb3IoZm9ybUNvbnRyb2xFbGVtZW50KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIGRvIG5vdGhpbmdzXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzaG93RXJyb3IoZWxlbWVudDogSFRNTEVsZW1lbnQsIGVycm9yTWVzc2FnZXM6IHN0cmluZ1tdKSB7XG4gICAgICAgIGNvbnN0IGZvcm1Db250cm9sRWxlbWVudCA9IHRoaXMuaXNFbGVtZW50SW5JbnB1dEdyb3VwKGVsZW1lbnQpID8gZWxlbWVudC5wYXJlbnRFbGVtZW50IDogZWxlbWVudDtcbiAgICAgICAgZm9ybUNvbnRyb2xFbGVtZW50LmNsYXNzTGlzdC5hZGQoSU5WQUxJRF9DTEFTUyk7XG4gICAgICAgIGlmIChoZWxwZXJzLmlzRnVuY3Rpb24odGhpcy5jb25maWcuc2hvd0VsZW1lbnRFcnJvcikpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLnNob3dFbGVtZW50RXJyb3IoZm9ybUNvbnRyb2xFbGVtZW50LCBlcnJvck1lc3NhZ2VzKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNvbmZpZy5zaG93RWxlbWVudEVycm9yKSB7XG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRTaG93RXJyb3IoZm9ybUNvbnRyb2xFbGVtZW50LCBlcnJvck1lc3NhZ2VzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIGRvIG5vdGhpbmdzXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhZGRWYWxpZGF0aW9uTWVzc2FnZXMobWVzc2FnZXM6IFRoeUZvcm1WYWxpZGF0aW9uTWVzc2FnZXMpIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLmNvbmZpZy52YWxpZGF0aW9uTWVzc2FnZXMsIG1lc3NhZ2VzKTtcbiAgICB9XG5cbiAgICBzZXRHbG9iYWxWYWxpZGF0aW9uTWVzc2FnZXModmFsaWRhdGlvbk1lc3NhZ2VzOiBEaWN0aW9uYXJ5PHN0cmluZz4pIHtcbiAgICAgICAgdGhpcy5jb25maWcuZ2xvYmFsVmFsaWRhdGlvbk1lc3NhZ2VzID0gdmFsaWRhdGlvbk1lc3NhZ2VzO1xuICAgIH1cbn1cbiJdfQ==
|