ngx-tethys 14.0.6 → 14.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/badge/badge.component.d.ts +25 -26
- package/badge/examples/custom-color/custom-color.component.scss +9 -0
- package/badge/styles/badge.scss +20 -6
- package/cascader/cascader.component.d.ts +2 -2
- package/core/color/color.d.ts +1 -1
- package/esm2020/badge/badge.component.mjs +112 -131
- package/esm2020/cascader/cascader.component.mjs +7 -6
- package/esm2020/core/color/color.mjs +2 -2
- package/esm2020/table/table.component.mjs +21 -5
- package/esm2020/table/table.interface.mjs +1 -1
- package/esm2020/timeline/timeline-item.component.mjs +1 -1
- package/esm2020/timeline/timeline.component.mjs +13 -3
- package/esm2020/version.mjs +2 -2
- package/fesm2015/ngx-tethys-badge.mjs +111 -130
- package/fesm2015/ngx-tethys-badge.mjs.map +1 -1
- package/fesm2015/ngx-tethys-cascader.mjs +6 -5
- package/fesm2015/ngx-tethys-cascader.mjs.map +1 -1
- package/fesm2015/ngx-tethys-core.mjs +1 -1
- package/fesm2015/ngx-tethys-core.mjs.map +1 -1
- package/fesm2015/ngx-tethys-table.mjs +20 -4
- package/fesm2015/ngx-tethys-table.mjs.map +1 -1
- package/fesm2015/ngx-tethys-timeline.mjs +12 -2
- package/fesm2015/ngx-tethys-timeline.mjs.map +1 -1
- package/fesm2015/ngx-tethys.mjs +1 -1
- package/fesm2015/ngx-tethys.mjs.map +1 -1
- package/fesm2020/ngx-tethys-badge.mjs +111 -130
- package/fesm2020/ngx-tethys-badge.mjs.map +1 -1
- package/fesm2020/ngx-tethys-cascader.mjs +6 -5
- package/fesm2020/ngx-tethys-cascader.mjs.map +1 -1
- package/fesm2020/ngx-tethys-core.mjs +1 -1
- package/fesm2020/ngx-tethys-core.mjs.map +1 -1
- package/fesm2020/ngx-tethys-table.mjs +20 -4
- package/fesm2020/ngx-tethys-table.mjs.map +1 -1
- package/fesm2020/ngx-tethys-timeline.mjs +12 -2
- package/fesm2020/ngx-tethys-timeline.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/mixins/link.scss +6 -2
- package/styles/modules/link.scss +2 -1
- package/styles/variables.scss +2 -0
- package/table/table.component.d.ts +5 -1
- package/table/table.interface.d.ts +1 -0
- package/timeline/timeline-item.component.d.ts +3 -2
- package/timeline/timeline.component.d.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,23 @@
|
|
|
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
|
+
## [14.0.7](https://github.com/atinc/ngx-tethys/compare/14.0.6...14.0.7) (2022-09-08)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **cascader:** should only show one column when first opened #INFR-4617 ([#2177](https://github.com/atinc/ngx-tethys/issues/2177)) ([09bfbc9](https://github.com/atinc/ngx-tethys/commit/09bfbc9fc23ce2507d802b8277a83b304041f6f9)), closes [#INFR-4617](https://github.com/atinc/ngx-tethys/issues/INFR-4617) [#INFR-4617](https://github.com/atinc/ngx-tethys/issues/INFR-4617)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* **badge:** add default type instead of secondary and support built-in color for thyTextColor and thyBackgroundColor #INFR-4576 ([#2173](https://github.com/atinc/ngx-tethys/issues/2173)) ([7cc2dcf](https://github.com/atinc/ngx-tethys/commit/7cc2dcff398808337d6b46624e4ae80086210868)), closes [#INFR-4576](https://github.com/atinc/ngx-tethys/issues/INFR-4576)
|
|
16
|
+
* **link:** set opacity to 50% for disabled #INFR-4621 ([#2178](https://github.com/atinc/ngx-tethys/issues/2178)) ([bf4fe5c](https://github.com/atinc/ngx-tethys/commit/bf4fe5ce77a934562aa00b86140574572cb62b9d)), closes [#INFR-4621](https://github.com/atinc/ngx-tethys/issues/INFR-4621)
|
|
17
|
+
* **table:** add page size controller to table pagination #INFR-3371 ([#2138](https://github.com/atinc/ngx-tethys/issues/2138)) ([736f495](https://github.com/atinc/ngx-tethys/commit/736f4956a7e8e7e2b0fb8e01f433acbe9582c0b6)), closes [#INFR-3371](https://github.com/atinc/ngx-tethys/issues/INFR-3371)
|
|
18
|
+
* **timeline:** improve timeline examples and overview #INFR-4538 ([d4267c0](https://github.com/atinc/ngx-tethys/commit/d4267c0a37a11a0e6a76860a3ebbdc610f6ab3e4)), closes [#INFR-4538](https://github.com/atinc/ngx-tethys/issues/INFR-4538)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
5
22
|
## [14.0.6](https://github.com/atinc/ngx-tethys/compare/14.0.5...14.0.6) (2022-09-06)
|
|
6
23
|
|
|
7
24
|
|
|
@@ -1,34 +1,35 @@
|
|
|
1
1
|
import { ElementRef, OnInit } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
+
export declare type ThyBadgeSize = 'md' | 'sm' | 'lg';
|
|
3
4
|
/**
|
|
4
5
|
* 徽标组件,支持组件`thy-badge`和`thyBadge`指令两种使用方式
|
|
6
|
+
* @name thy-badge,[thyBadge]
|
|
5
7
|
*/
|
|
6
8
|
export declare class ThyBadgeComponent implements OnInit {
|
|
7
9
|
private elementRef;
|
|
8
10
|
displayContent: string;
|
|
9
11
|
badgeClassName: string;
|
|
10
12
|
private nativeElement;
|
|
11
|
-
private
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
backgroundColor: string;
|
|
13
|
+
private initialized;
|
|
14
|
+
protected isWrapper: boolean;
|
|
15
|
+
isShowBadge: boolean;
|
|
16
|
+
private keepShowValue;
|
|
17
|
+
private value;
|
|
18
|
+
private valueHasBeenSet;
|
|
19
|
+
private maxCount;
|
|
20
|
+
private type;
|
|
21
|
+
private size;
|
|
22
|
+
private isDot;
|
|
23
|
+
private isHollow;
|
|
24
|
+
protected textColor: string;
|
|
25
|
+
protected builtInTextColorClass: string;
|
|
26
|
+
protected backgroundColor: string;
|
|
27
|
+
protected builtInBackgroundColorClass: string;
|
|
28
|
+
protected supClasses: string[];
|
|
28
29
|
constructor(elementRef: ElementRef);
|
|
29
|
-
containerClassName: boolean;
|
|
30
30
|
/**
|
|
31
|
-
* 徽标类型, 类型为 'primary' | 'danger' | 'warning' | '
|
|
31
|
+
* 徽标类型, 类型为 'default' | 'primary' | 'danger' | 'warning' | 'success'
|
|
32
|
+
* @default danger
|
|
32
33
|
*/
|
|
33
34
|
set thyType(value: string);
|
|
34
35
|
/**
|
|
@@ -49,13 +50,12 @@ export declare class ThyBadgeComponent implements OnInit {
|
|
|
49
50
|
*/
|
|
50
51
|
set thyMaxCount(value: number);
|
|
51
52
|
/**
|
|
52
|
-
* 徽标显示的大小,分别为
|
|
53
|
+
* 徽标显示的大小,分别为 'sm' | 'md' | 'lg'
|
|
53
54
|
* @default md
|
|
54
55
|
*/
|
|
55
|
-
set thySize(value:
|
|
56
|
+
set thySize(value: ThyBadgeSize);
|
|
56
57
|
/**
|
|
57
58
|
* 已废弃,徽标是一个实心点,已经被废弃
|
|
58
|
-
* @default md
|
|
59
59
|
*/
|
|
60
60
|
set thyIsDot(value: boolean);
|
|
61
61
|
/**
|
|
@@ -67,17 +67,16 @@ export declare class ThyBadgeComponent implements OnInit {
|
|
|
67
67
|
*/
|
|
68
68
|
set thyKeepShow(value: boolean);
|
|
69
69
|
/**
|
|
70
|
-
*
|
|
70
|
+
* 设置徽标字体的颜色,支持内置颜色和自定义颜色 'primary' | '#87d068' | ...
|
|
71
71
|
*/
|
|
72
72
|
set thyTextColor(value: string);
|
|
73
73
|
/**
|
|
74
|
-
*
|
|
74
|
+
* 设置徽标的背景颜色,支持内置颜色和自定义颜色 'primary' | '#87d068' | ...
|
|
75
75
|
*/
|
|
76
76
|
set thyBackgroundColor(value: string);
|
|
77
77
|
ngOnInit(): void;
|
|
78
|
-
private
|
|
78
|
+
private combineBadgeClasses;
|
|
79
79
|
private combineBadgeDisplayContent;
|
|
80
|
-
private resetBadgeClassNameMap;
|
|
81
80
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThyBadgeComponent, never>;
|
|
82
81
|
static ɵcmp: i0.ɵɵComponentDeclaration<ThyBadgeComponent, "thy-badge,[thyBadge]", never, { "thyType": "thyType"; "thyCount": "thyCount"; "thyContent": "thyContent"; "thyContext": "thyContext"; "thyMaxCount": "thyMaxCount"; "thySize": "thySize"; "thyIsDot": "thyIsDot"; "thyIsHollow": "thyIsHollow"; "thyKeepShow": "thyKeepShow"; "thyTextColor": "thyTextColor"; "thyBackgroundColor": "thyBackgroundColor"; }, {}, never, ["*"]>;
|
|
83
82
|
}
|
package/badge/styles/badge.scss
CHANGED
|
@@ -75,6 +75,18 @@
|
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
+
.thy-badge-default {
|
|
79
|
+
@include mixin.set-badge-color(variables.$gray-600, variables.$gray-200);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.thy-badge-success {
|
|
83
|
+
@include mixin.set-badge-color(variables.$white, variables.$success);
|
|
84
|
+
&.thy-badge-hollow {
|
|
85
|
+
background-color: transparent;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// 使用 thy-badge-default,暂时没有去除
|
|
78
90
|
.thy-badge-secondary {
|
|
79
91
|
@include mixin.set-badge-color(variables.$gray-600, variables.$gray-200);
|
|
80
92
|
&.thy-badge-dot {
|
|
@@ -88,12 +100,14 @@
|
|
|
88
100
|
|
|
89
101
|
// #endregion
|
|
90
102
|
// #region
|
|
91
|
-
.thy-badge-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
103
|
+
.thy-badge-wrapper {
|
|
104
|
+
.thy-badge {
|
|
105
|
+
position: absolute;
|
|
106
|
+
top: 0px;
|
|
107
|
+
right: 0;
|
|
108
|
+
transform: translateY(-50%) translateX(50%);
|
|
109
|
+
z-index: 1;
|
|
110
|
+
}
|
|
97
111
|
}
|
|
98
112
|
|
|
99
113
|
.thy-badge-lg {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import { SelectionModel } from '@angular/cdk/collections';
|
|
1
2
|
import { CdkConnectedOverlay, ConnectedOverlayPositionChange, ConnectionPositionPair, ViewportRuler } from '@angular/cdk/overlay';
|
|
2
3
|
import { ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, OnInit, QueryList, TemplateRef } from '@angular/core';
|
|
3
4
|
import { ControlValueAccessor } from '@angular/forms';
|
|
4
5
|
import { UpdateHostClassService } from 'ngx-tethys/core';
|
|
5
|
-
import { CascaderOption } from './types';
|
|
6
6
|
import { SelectControlSize, SelectOptionBase } from 'ngx-tethys/shared';
|
|
7
|
-
import {
|
|
7
|
+
import { CascaderOption } from './types';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
export declare type ThyCascaderTriggerType = 'click' | 'hover';
|
|
10
10
|
export declare type ThyCascaderExpandTrigger = 'click' | 'hover';
|
package/core/color/color.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const presetThemeColors: readonly ["primary", "success", "info", "warning", "danger", "default", "light"];
|
|
2
2
|
export declare type ThyThemeColor = typeof presetThemeColors[number];
|
|
3
3
|
export declare function isThemeColor(color: ThyThemeColor | string): boolean;
|
|
4
|
-
export declare const presetTextColors: readonly ["secondary", "muted", "desc", "placeholder"];
|
|
4
|
+
export declare const presetTextColors: readonly ["primary", "success", "info", "warning", "danger", "default", "light", "secondary", "muted", "desc", "placeholder", "white", "body"];
|
|
5
5
|
export declare type ThyTextColor = typeof presetTextColors[number];
|
|
6
6
|
export declare function isTextColor(color: ThyTextColor | string): boolean;
|
|
@@ -1,96 +1,58 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { UpdateHostClassService } from 'ngx-tethys/core';
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { InputBoolean, isTextColor, UpdateHostClassService } from 'ngx-tethys/core';
|
|
3
3
|
import { coerceBooleanProperty } from 'ngx-tethys/util';
|
|
4
|
+
import { ChangeDetectionStrategy, Component, ElementRef, Input } from '@angular/core';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
import * as i1 from "@angular/common";
|
|
6
|
-
const badgeMutexTypes = ['thy-badge-count', 'thy-badge-dot', 'thy-badge-hollow'];
|
|
7
|
-
const BadgeMutexTheme = ['thy-badge-primary', 'thy-badge-warning', 'thy-badge-danger', 'thy-badge-secondary'];
|
|
8
|
-
const BadgeMutexSize = ['thy-badge-lg', 'thy-badge-sm'];
|
|
9
7
|
/**
|
|
10
8
|
* 徽标组件,支持组件`thy-badge`和`thyBadge`指令两种使用方式
|
|
9
|
+
* @name thy-badge,[thyBadge]
|
|
11
10
|
*/
|
|
12
11
|
export class ThyBadgeComponent {
|
|
13
12
|
constructor(elementRef) {
|
|
14
13
|
this.elementRef = elementRef;
|
|
15
14
|
this.displayContent = '';
|
|
16
15
|
this.badgeClassName = '';
|
|
17
|
-
this.
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
'thy-badge-primary': false,
|
|
26
|
-
'thy-badge-warning': false,
|
|
27
|
-
'thy-badge-secondary': false,
|
|
28
|
-
'thy-badge-sup': true
|
|
29
|
-
};
|
|
30
|
-
this.st = {
|
|
31
|
-
value: '',
|
|
32
|
-
isValueOfString: false,
|
|
33
|
-
isSetValue: false,
|
|
34
|
-
isValueKeepShow: false,
|
|
35
|
-
max: {
|
|
36
|
-
is: false,
|
|
37
|
-
value: null
|
|
38
|
-
},
|
|
39
|
-
isElement: false,
|
|
40
|
-
isSup: false,
|
|
41
|
-
isShowBadge: true
|
|
42
|
-
};
|
|
43
|
-
this.containerClassName = true;
|
|
16
|
+
this.initialized = false;
|
|
17
|
+
// 是否包裹在元素上
|
|
18
|
+
this.isWrapper = false;
|
|
19
|
+
this.isShowBadge = true;
|
|
20
|
+
this.keepShowValue = false;
|
|
21
|
+
this.value = '';
|
|
22
|
+
this.valueHasBeenSet = false;
|
|
23
|
+
this.supClasses = [];
|
|
44
24
|
this.nativeElement = this.elementRef.nativeElement;
|
|
45
|
-
this.st.isElement = this.nativeElement.localName === 'thy-badge';
|
|
46
25
|
}
|
|
47
26
|
/**
|
|
48
|
-
* 徽标类型, 类型为 'primary' | 'danger' | 'warning' | '
|
|
27
|
+
* 徽标类型, 类型为 'default' | 'primary' | 'danger' | 'warning' | 'success'
|
|
28
|
+
* @default danger
|
|
49
29
|
*/
|
|
50
30
|
set thyType(value) {
|
|
51
|
-
this.
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
this.badgeClassNameMap['thy-badge-danger'] = true;
|
|
55
|
-
break;
|
|
56
|
-
case 'primary':
|
|
57
|
-
this.badgeClassNameMap['thy-badge-primary'] = true;
|
|
58
|
-
break;
|
|
59
|
-
case 'warning':
|
|
60
|
-
this.badgeClassNameMap['thy-badge-warning'] = true;
|
|
61
|
-
break;
|
|
62
|
-
case 'secondary':
|
|
63
|
-
this.badgeClassNameMap['thy-badge-secondary'] = true;
|
|
64
|
-
break;
|
|
65
|
-
default:
|
|
66
|
-
this.badgeClassNameMap['thy-badge-danger'] = true;
|
|
67
|
-
break;
|
|
68
|
-
}
|
|
69
|
-
if (this._initialized) {
|
|
70
|
-
this.combineBadgeClassName();
|
|
31
|
+
this.type = value;
|
|
32
|
+
if (this.initialized) {
|
|
33
|
+
this.combineBadgeClasses();
|
|
71
34
|
}
|
|
72
35
|
}
|
|
73
36
|
/**
|
|
74
37
|
* 徽标内容数字
|
|
75
38
|
*/
|
|
76
39
|
set thyCount(value) {
|
|
77
|
-
this.
|
|
78
|
-
this.
|
|
79
|
-
if (this.
|
|
40
|
+
this.value = value;
|
|
41
|
+
this.valueHasBeenSet = true;
|
|
42
|
+
if (this.initialized) {
|
|
80
43
|
this.combineBadgeDisplayContent();
|
|
81
|
-
this.
|
|
44
|
+
this.combineBadgeClasses();
|
|
82
45
|
}
|
|
83
46
|
}
|
|
84
47
|
/**
|
|
85
48
|
* 徽标内容文本
|
|
86
49
|
*/
|
|
87
50
|
set thyContent(value) {
|
|
88
|
-
this.
|
|
89
|
-
this.
|
|
90
|
-
this.
|
|
91
|
-
if (this._initialized) {
|
|
51
|
+
this.value = value;
|
|
52
|
+
this.valueHasBeenSet = true;
|
|
53
|
+
if (this.initialized) {
|
|
92
54
|
this.combineBadgeDisplayContent();
|
|
93
|
-
this.
|
|
55
|
+
this.combineBadgeClasses();
|
|
94
56
|
}
|
|
95
57
|
}
|
|
96
58
|
/**
|
|
@@ -104,73 +66,80 @@ export class ThyBadgeComponent {
|
|
|
104
66
|
* 徽标显示的最大值, 与 thyCount 一起使用,thyCount 超过了 thyMaxCount 设置的值时,徽标内容为 thyMaxCount+
|
|
105
67
|
*/
|
|
106
68
|
set thyMaxCount(value) {
|
|
107
|
-
this.
|
|
108
|
-
this.
|
|
109
|
-
if (this._initialized) {
|
|
69
|
+
this.maxCount = value;
|
|
70
|
+
if (this.initialized) {
|
|
110
71
|
this.combineBadgeDisplayContent();
|
|
111
|
-
this.
|
|
72
|
+
this.combineBadgeClasses();
|
|
112
73
|
}
|
|
113
74
|
}
|
|
114
75
|
/**
|
|
115
|
-
* 徽标显示的大小,分别为
|
|
76
|
+
* 徽标显示的大小,分别为 'sm' | 'md' | 'lg'
|
|
116
77
|
* @default md
|
|
117
78
|
*/
|
|
118
79
|
set thySize(value) {
|
|
119
|
-
this.
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
this.badgeClassNameMap['thy-badge-lg'] = true;
|
|
123
|
-
break;
|
|
124
|
-
case 'sm':
|
|
125
|
-
this.badgeClassNameMap['thy-badge-sm'] = true;
|
|
126
|
-
break;
|
|
127
|
-
}
|
|
128
|
-
if (this._initialized) {
|
|
129
|
-
this.combineBadgeClassName();
|
|
80
|
+
this.size = value;
|
|
81
|
+
if (this.initialized) {
|
|
82
|
+
this.combineBadgeClasses();
|
|
130
83
|
}
|
|
131
84
|
}
|
|
132
85
|
/**
|
|
133
86
|
* 已废弃,徽标是一个实心点,已经被废弃
|
|
134
|
-
* @default md
|
|
135
87
|
*/
|
|
136
88
|
set thyIsDot(value) {
|
|
137
|
-
this.
|
|
138
|
-
this.
|
|
139
|
-
|
|
140
|
-
this.combineBadgeClassName();
|
|
89
|
+
this.isDot = value;
|
|
90
|
+
if (this.initialized) {
|
|
91
|
+
this.combineBadgeClasses();
|
|
141
92
|
}
|
|
142
93
|
}
|
|
143
94
|
/**
|
|
144
95
|
* 已废弃,徽标是一个空心点,
|
|
145
96
|
*/
|
|
146
97
|
set thyIsHollow(value) {
|
|
147
|
-
this.
|
|
148
|
-
this.
|
|
149
|
-
|
|
150
|
-
this.combineBadgeClassName();
|
|
98
|
+
this.isHollow = value;
|
|
99
|
+
if (this.initialized) {
|
|
100
|
+
this.combineBadgeClasses();
|
|
151
101
|
}
|
|
152
102
|
}
|
|
153
103
|
/**
|
|
154
104
|
* thyCount 为 0 时,强制显示数字 0,默认不显示
|
|
155
105
|
*/
|
|
156
106
|
set thyKeepShow(value) {
|
|
157
|
-
this.
|
|
158
|
-
if (this.
|
|
107
|
+
this.keepShowValue = coerceBooleanProperty(value);
|
|
108
|
+
if (this.initialized) {
|
|
159
109
|
this.combineBadgeDisplayContent();
|
|
160
110
|
}
|
|
161
111
|
}
|
|
162
112
|
/**
|
|
163
|
-
*
|
|
113
|
+
* 设置徽标字体的颜色,支持内置颜色和自定义颜色 'primary' | '#87d068' | ...
|
|
164
114
|
*/
|
|
165
115
|
set thyTextColor(value) {
|
|
166
|
-
|
|
116
|
+
if (isTextColor(value)) {
|
|
117
|
+
this.builtInTextColorClass = `text-${value}`;
|
|
118
|
+
this.textColor = null;
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
this.textColor = value;
|
|
122
|
+
this.builtInTextColorClass = null;
|
|
123
|
+
}
|
|
124
|
+
if (this.initialized) {
|
|
125
|
+
this.combineBadgeClasses();
|
|
126
|
+
}
|
|
167
127
|
}
|
|
168
128
|
/**
|
|
169
|
-
*
|
|
129
|
+
* 设置徽标的背景颜色,支持内置颜色和自定义颜色 'primary' | '#87d068' | ...
|
|
170
130
|
*/
|
|
171
131
|
set thyBackgroundColor(value) {
|
|
172
|
-
|
|
173
|
-
|
|
132
|
+
if (isTextColor(value)) {
|
|
133
|
+
this.builtInBackgroundColorClass = `bg-${value}`;
|
|
134
|
+
this.backgroundColor = null;
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
this.backgroundColor = value;
|
|
138
|
+
this.builtInBackgroundColorClass = null;
|
|
139
|
+
}
|
|
140
|
+
if (this.initialized) {
|
|
141
|
+
this.combineBadgeClasses();
|
|
142
|
+
}
|
|
174
143
|
}
|
|
175
144
|
ngOnInit() {
|
|
176
145
|
let childNodeCount = 0;
|
|
@@ -179,56 +148,68 @@ export class ThyBadgeComponent {
|
|
|
179
148
|
childNodeCount++;
|
|
180
149
|
}
|
|
181
150
|
});
|
|
182
|
-
this.
|
|
183
|
-
this.
|
|
184
|
-
if (this.
|
|
151
|
+
this.isWrapper = childNodeCount > 0;
|
|
152
|
+
this.combineBadgeClasses();
|
|
153
|
+
if (this.valueHasBeenSet) {
|
|
185
154
|
this.combineBadgeDisplayContent();
|
|
186
155
|
}
|
|
187
|
-
this.
|
|
156
|
+
this.initialized = true;
|
|
188
157
|
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
if (this.badgeClassNameMap[key]) {
|
|
195
|
-
_badgeClassNames.push(key);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
158
|
+
combineBadgeClasses() {
|
|
159
|
+
const classes = [];
|
|
160
|
+
classes.push(`thy-badge-${this.type || 'danger'}`);
|
|
161
|
+
if (this.size) {
|
|
162
|
+
classes.push(`thy-badge-${this.size}`);
|
|
198
163
|
}
|
|
199
|
-
this.
|
|
200
|
-
|
|
201
|
-
combineBadgeDisplayContent() {
|
|
202
|
-
this.displayContent = this.st.value;
|
|
203
|
-
if (this.st.value && this.st.max.is && this.st.value > this.st.max.value) {
|
|
204
|
-
this.displayContent = `${this.st.max.value}+`;
|
|
164
|
+
if (this.isDot) {
|
|
165
|
+
classes.push(`thy-badge-dot`);
|
|
205
166
|
}
|
|
206
|
-
if (
|
|
207
|
-
|
|
167
|
+
else if (this.isHollow) {
|
|
168
|
+
classes.push(`thy-badge-hollow`);
|
|
208
169
|
}
|
|
209
170
|
else {
|
|
210
|
-
|
|
171
|
+
classes.push(`thy-badge-count`);
|
|
172
|
+
}
|
|
173
|
+
if (this.builtInTextColorClass) {
|
|
174
|
+
classes.push(this.builtInTextColorClass);
|
|
211
175
|
}
|
|
176
|
+
if (this.builtInBackgroundColorClass) {
|
|
177
|
+
classes.push(this.builtInBackgroundColorClass);
|
|
178
|
+
}
|
|
179
|
+
this.badgeClassName = classes.join(' ');
|
|
212
180
|
}
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
181
|
+
combineBadgeDisplayContent() {
|
|
182
|
+
this.displayContent = this.value;
|
|
183
|
+
if (this.value && this.maxCount != undefined && this.value > this.maxCount) {
|
|
184
|
+
this.displayContent = `${this.maxCount}+`;
|
|
185
|
+
}
|
|
186
|
+
if (!this.value && !this.keepShowValue) {
|
|
187
|
+
this.isShowBadge = false;
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
this.isShowBadge = true;
|
|
220
191
|
}
|
|
221
192
|
}
|
|
222
193
|
}
|
|
223
194
|
ThyBadgeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: ThyBadgeComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
224
|
-
ThyBadgeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.6", type: ThyBadgeComponent, selector: "thy-badge,[thyBadge]", inputs: { thyType: "thyType", thyCount: "thyCount", thyContent: "thyContent", thyContext: "thyContext", thyMaxCount: "thyMaxCount", thySize: "thySize", thyIsDot: "thyIsDot", thyIsHollow: "thyIsHollow", thyKeepShow: "thyKeepShow", thyTextColor: "thyTextColor", thyBackgroundColor: "thyBackgroundColor" }, host: { properties: { "class.thy-badge-
|
|
195
|
+
ThyBadgeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.6", type: ThyBadgeComponent, selector: "thy-badge,[thyBadge]", inputs: { thyType: "thyType", thyCount: "thyCount", thyContent: "thyContent", thyContext: "thyContext", thyMaxCount: "thyMaxCount", thySize: "thySize", thyIsDot: "thyIsDot", thyIsHollow: "thyIsHollow", thyKeepShow: "thyKeepShow", thyTextColor: "thyTextColor", thyBackgroundColor: "thyBackgroundColor" }, host: { properties: { "class.thy-badge-wrapper": "isWrapper" }, classAttribute: "thy-badge-container" }, providers: [UpdateHostClassService], ngImport: i0, template: "<div *ngIf=\"isShowBadge\" class=\"thy-badge {{ badgeClassName }}\" [style.color]=\"textColor\" [style.backgroundColor]=\"backgroundColor\">\n <span>{{ displayContent }}</span>\n</div>\n<ng-content></ng-content>\n", directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
196
|
+
__decorate([
|
|
197
|
+
InputBoolean(),
|
|
198
|
+
__metadata("design:type", Boolean),
|
|
199
|
+
__metadata("design:paramtypes", [Boolean])
|
|
200
|
+
], ThyBadgeComponent.prototype, "thyIsDot", null);
|
|
201
|
+
__decorate([
|
|
202
|
+
InputBoolean(),
|
|
203
|
+
__metadata("design:type", Boolean),
|
|
204
|
+
__metadata("design:paramtypes", [Boolean])
|
|
205
|
+
], ThyBadgeComponent.prototype, "thyIsHollow", null);
|
|
225
206
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: ThyBadgeComponent, decorators: [{
|
|
226
207
|
type: Component,
|
|
227
|
-
args: [{ selector: 'thy-badge,[thyBadge]', changeDetection: ChangeDetectionStrategy.OnPush, providers: [UpdateHostClassService],
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
208
|
+
args: [{ selector: 'thy-badge,[thyBadge]', changeDetection: ChangeDetectionStrategy.OnPush, providers: [UpdateHostClassService], host: {
|
|
209
|
+
class: 'thy-badge-container',
|
|
210
|
+
'[class.thy-badge-wrapper]': 'isWrapper'
|
|
211
|
+
}, template: "<div *ngIf=\"isShowBadge\" class=\"thy-badge {{ badgeClassName }}\" [style.color]=\"textColor\" [style.backgroundColor]=\"backgroundColor\">\n <span>{{ displayContent }}</span>\n</div>\n<ng-content></ng-content>\n" }]
|
|
212
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { thyType: [{
|
|
232
213
|
type: Input
|
|
233
214
|
}], thyCount: [{
|
|
234
215
|
type: Input
|
|
@@ -251,4 +232,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImpor
|
|
|
251
232
|
}], thyBackgroundColor: [{
|
|
252
233
|
type: Input
|
|
253
234
|
}] } });
|
|
254
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JhZGdlL2JhZGdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9iYWRnZS9iYWRnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNHLE9BQU8sRUFBZ0Isc0JBQXNCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRXhELE1BQU0sZUFBZSxHQUFHLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixDQUFDLENBQUM7QUFDakYsTUFBTSxlQUFlLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0FBQzlHLE1BQU0sY0FBYyxHQUFHLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBRXhEOztHQUVHO0FBT0gsTUFBTSxPQUFPLGlCQUFpQjtJQW9EMUIsWUFBb0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQW5EMUMsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFFcEIsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFJWixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUVyQixzQkFBaUIsR0FBRztZQUN4QixpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLGVBQWUsRUFBRSxLQUFLO1lBQ3RCLGtCQUFrQixFQUFFLEtBQUs7WUFDekIsY0FBYyxFQUFFLEtBQUs7WUFDckIsY0FBYyxFQUFFLEtBQUs7WUFDckIsa0JBQWtCLEVBQUUsSUFBSTtZQUN4QixtQkFBbUIsRUFBRSxLQUFLO1lBQzFCLG1CQUFtQixFQUFF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TUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ3RDLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDNUMsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUMxQixJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO2lCQUN2QzthQUNKO1NBQ0o7SUFDTCxDQUFDOzs4R0F0UVEsaUJBQWlCO2tHQUFqQixpQkFBaUIsaWJBRmYsQ0FBQyxzQkFBc0IsQ0FBQywwQkNoQnZDLGtRQU1BOzJGRFlhLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFDSSxzQkFBc0IsbUJBRWYsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLHNCQUFzQixDQUFDO2lHQTJETyxrQkFBa0I7c0JBQTNELFdBQVc7dUJBQUMsMkJBQTJCO2dCQU1wQyxPQUFPO3NCQURWLEtBQUs7Z0JBNkJGLFFBQVE7c0JBRFgsS0FBSztnQkFjRixVQUFVO3NCQURiLEtBQUs7Z0JBZ0JGLFVBQVU7c0JBRGIsS0FBSztnQkFTRixXQUFXO3NCQURkLEtBQUs7Z0JBZUYsT0FBTztzQkFEVixLQUFLO2dCQXFCRixRQUFRO3NCQURYLEtBQUs7Z0JBYUYsV0FBVztzQkFEZCxLQUFLO2dCQWFGLFdBQVc7c0JBRGQsS0FBSztnQkFZRixZQUFZO3NCQURmLEtBQUs7Z0JBU0Ysa0JBQWtCO3NCQURyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSW5wdXRCb29sZWFuLCBVcGRhdGVIb3N0Q2xhc3NTZXJ2aWNlIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5cbmNvbnN0IGJhZGdlTXV0ZXhUeXBlcyA9IFsndGh5LWJhZGdlLWNvdW50JywgJ3RoeS1iYWRnZS1kb3QnLCAndGh5LWJhZGdlLWhvbGxvdyddO1xuY29uc3QgQmFkZ2VNdXRleFRoZW1lID0gWyd0aHktYmFkZ2UtcHJpbWFyeScsICd0aHktYmFkZ2Utd2FybmluZycsICd0aHktYmFkZ2UtZGFuZ2VyJywgJ3RoeS1iYWRnZS1zZWNvbmRhcnknXTtcbmNvbnN0IEJhZGdlTXV0ZXhTaXplID0gWyd0aHktYmFkZ2UtbGcnLCAndGh5LWJhZGdlLXNtJ107XG5cbi8qKlxuICog5b695qCH57uE5Lu277yM5pSv5oyB57uE5Lu2YHRoeS1iYWRnZWDlkoxgdGh5QmFkZ2Vg5oyH5Luk5Lik56eN5L2/55So5pa55byPXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LWJhZGdlLFt0aHlCYWRnZV0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYWRnZS5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbVXBkYXRlSG9zdENsYXNzU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgVGh5QmFkZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIGRpc3BsYXlDb250ZW50ID0gJyc7XG5cbiAgICBiYWRnZUNsYXNzTmFtZSA9ICcnO1xuXG4gICAgcHJpdmF0ZSBuYXRpdmVFbGVtZW50OiBhbnk7XG5cbiAgICBwcml2YXRlIF9pbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBiYWRnZUNsYXNzTmFtZU1hcCA9IHtcbiAgICAgICAgJ3RoeS1iYWRnZS1jb3VudCc6IHRydWUsXG4gICAgICAgICd0aHktYmFkZ2UtZG90JzogZmFsc2UsXG4gICAgICAgICd0aHktYmFkZ2UtaG9sbG93JzogZmFsc2UsXG4gICAgICAgICd0aHktYmFkZ2UtbGcnOiBmYWxzZSxcbiAgICAgICAgJ3RoeS1iYWRnZS1zbSc6IGZhbHNlLFxuICAgICAgICAndGh5LWJhZGdlLWRhbmdlcic6IHRydWUsXG4gICAgICAgICd0aHktYmFkZ2UtcHJpbWFyeSc6IGZhbHNlLFxuICAgICAgICAndGh5LWJhZGdlLXdhcm5pbmcnOiBmYWxzZSxcbiAgICAgICAgJ3RoeS1iYWRnZS1zZWNvbmRhcnknOiBmYWxzZSxcbiAgICAgICAgJ3RoeS1iYWRnZS1zdXAnOiB0cnVlXG4gICAgfTtcblxuICAgIHN0OiB7XG4gICAgICAgIHZhbHVlOiBudW1iZXIgfCBzdHJpbmc7XG4gICAgICAgIGlzVmFsdWVPZlN0cmluZzogYm9vbGVhbjtcbiAgICAgICAgaXNTZXRWYWx1ZTogYm9vbGVhbjtcbiAgICAgICAgaXNWYWx1ZUtlZXBTaG93OiBib29sZWFuO1xuICAgICAgICBtYXg6IHtcbiAgICAgICAgICAgIGlzOiBib29sZWFuO1xuICAgICAgICAgICAgdmFsdWU6IG51bWJlcjtcbiAgICAgICAgfTtcbiAgICAgICAgaXNFbGVtZW50OiBib29sZWFuO1xuICAgICAgICBpc1N1cDogYm9vbGVhbjtcbiAgICAgICAgaXNTaG93QmFkZ2U6IGJvb2xlYW47XG4gICAgfSA9IHtcbiAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICBpc1ZhbHVlT2ZTdHJpbmc6IGZhbHNlLFxuICAgICAgICBpc1NldFZhbHVlOiBmYWxzZSxcbiAgICAgICAgaXNWYWx1ZUtlZXBTaG93OiBmYWxzZSxcbiAgICAgICAgbWF4OiB7XG4gICAgICAgICAgICBpczogZmFsc2UsXG4gICAgICAgICAgICB2YWx1ZTogbnVsbFxuICAgICAgICB9LFxuICAgICAgICBpc0VsZW1lbnQ6IGZhbHNlLFxuICAgICAgICBpc1N1cDogZmFsc2UsXG4gICAgICAgIGlzU2hvd0JhZGdlOiB0cnVlXG4gICAgfTtcblxuICAgIHB1YmxpYyB0ZXh0Q29sb3I6IHN0cmluZztcblxuICAgIHB1YmxpYyBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgdGhpcy5zdC5pc0VsZW1lbnQgPSB0aGlzLm5hdGl2ZUVsZW1lbnQubG9jYWxOYW1lID09PSAndGh5LWJhZGdlJztcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRoeS1iYWRnZS1jb250YWluZXInKSBjb250YWluZXJDbGFzc05hbWUgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICog5b695qCH57G75Z6LLCDnsbvlnovkuLogJ3ByaW1hcnknIHwgJ2RhbmdlcicgfCAnd2FybmluZycgfCAnc2Vjb25kYXJ5J1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeVR5cGUodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnJlc2V0QmFkZ2VDbGFzc05hbWVNYXAoQmFkZ2VNdXRleFRoZW1lKTtcbiAgICAgICAgc3dpdGNoICh2YWx1ZSkge1xuICAgICAgICAgICAgY2FzZSAnZGFuZ2VyJzpcbiAgICAgICAgICAgICAgICB0aGlzLmJhZGdlQ2xhc3NOYW1lTWFwWyd0aHktYmFkZ2UtZGFuZ2VyJ10gPSB0cnVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncHJpbWFyeSc6XG4gICAgICAgICAgICAgICAgdGhpcy5iYWRnZUNsYXNzTmFtZU1hcFsndGh5LWJhZGdlLXByaW1hcnknXSA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd3YXJuaW5nJzpcbiAgICAgICAgICAgICAgICB0aGlzLmJhZGdlQ2xhc3NOYW1lTWFwWyd0aHktYmFkZ2Utd2FybmluZyddID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3NlY29uZGFyeSc6XG4gICAgICAgICAgICAgICAgdGhpcy5iYWRnZUNsYXNzTmFtZU1hcFsndGh5LWJhZGdlLXNlY29uZGFyeSddID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhpcy5iYWRnZUNsYXNzTmFtZU1hcFsndGh5LWJhZGdlLWRhbmdlciddID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5faW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29tYmluZUJhZGdlQ2xhc3NOYW1lKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlvr3moIflhoXlrrnmlbDlrZdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlDb3VudCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc3QudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zdC5pc1NldFZhbHVlID0gdHJ1ZTtcbiAgICAgICAgaWYgKHRoaXMuX2luaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZURpc3BsYXlDb250ZW50KCk7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZUNsYXNzTmFtZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5b695qCH5YaF5a655paH5pysXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5Q29udGVudCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc3QudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zdC5pc1ZhbHVlT2ZTdHJpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLnN0LmlzU2V0VmFsdWUgPSB0cnVlO1xuICAgICAgICBpZiAodGhpcy5faW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29tYmluZUJhZGdlRGlzcGxheUNvbnRlbnQoKTtcbiAgICAgICAgICAgIHRoaXMuY29tYmluZUJhZGdlQ2xhc3NOYW1lKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlt7Llup/lvIPvvIzlvr3moIflhoXlrrnmlofmnKzvvIzlkb3lkI3plJnor6/vvIzor7fkvb/nlKggdGh5Q29udGVudFxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5Q29udGV4dCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudGh5Q29udGVudCA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOW+veagh+aYvuekuueahOacgOWkp+WAvCwg5LiOIHRoeUNvdW50IOS4gOi1t+S9v+eUqCx0aHlDb3VudCDotoXov4fkuoYgdGh5TWF4Q291bnQg6K6+572u55qE5YC85pe277yM5b695qCH5YaF5a655Li6IHRoeU1heENvdW50K1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeU1heENvdW50KHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zdC5tYXguaXMgPSB0cnVlO1xuICAgICAgICB0aGlzLnN0Lm1heC52YWx1ZSA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy5faW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29tYmluZUJhZGdlRGlzcGxheUNvbnRlbnQoKTtcbiAgICAgICAgICAgIHRoaXMuY29tYmluZUJhZGdlQ2xhc3NOYW1lKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlvr3moIfmmL7npLrnmoTlpKflsI/vvIzliIbliKvkuLogYHNtYCB8IGBtZGAgfCBgbGdgXG4gICAgICogQGRlZmF1bHQgbWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlTaXplKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5yZXNldEJhZGdlQ2xhc3NOYW1lTWFwKEJhZGdlTXV0ZXhTaXplKTtcbiAgICAgICAgc3dpdGNoICh2YWx1ZSkge1xuICAgICAgICAgICAgY2FzZSAnbGcnOlxuICAgICAgICAgICAgICAgIHRoaXMuYmFkZ2VDbGFzc05hbWVNYXBbJ3RoeS1iYWRnZS1sZyddID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3NtJzpcbiAgICAgICAgICAgICAgICB0aGlzLmJhZGdlQ2xhc3NOYW1lTWFwWyd0aHktYmFkZ2Utc20nXSA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX2luaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZUNsYXNzTmFtZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5bey5bqf5byD77yM5b695qCH5piv5LiA5Liq5a6e5b+D54K577yM5bey57uP6KKr5bqf5byDXG4gICAgICogQGRlZmF1bHQgbWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlJc0RvdCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnJlc2V0QmFkZ2VDbGFzc05hbWVNYXAoYmFkZ2VNdXRleFR5cGVzKTtcbiAgICAgICAgdGhpcy5iYWRnZUNsYXNzTmFtZU1hcFsndGh5LWJhZGdlLWRvdCddID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICAgICAgaWYgKHRoaXMuX2luaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZUNsYXNzTmFtZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5bey5bqf5byD77yM5b695qCH5piv5LiA5Liq56m65b+D54K577yMXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5SXNIb2xsb3codmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5yZXNldEJhZGdlQ2xhc3NOYW1lTWFwKGJhZGdlTXV0ZXhUeXBlcyk7XG4gICAgICAgIHRoaXMuYmFkZ2VDbGFzc05hbWVNYXBbJ3RoeS1iYWRnZS1ob2xsb3cnXSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgICAgIGlmICh0aGlzLl9pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5jb21iaW5lQmFkZ2VDbGFzc05hbWUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHRoeUNvdW50IOS4uiAwIOaXtu+8jOW8uuWItuaYvuekuuaVsOWtlyAw77yM6buY6K6k5LiN5pi+56S6XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5S2VlcFNob3codmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zdC5pc1ZhbHVlS2VlcFNob3cgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgICAgICBpZiAodGhpcy5faW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29tYmluZUJhZGdlRGlzcGxheUNvbnRlbnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOiuvue9ruW+veagh+Wtl+S9k+eahOminOiJslxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeVRleHRDb2xvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudGV4dENvbG9yID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog6K6+572u5b695qCH55qE6IOM5pmv6aKc6ImyXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5QmFja2dyb3VuZENvbG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5iYWNrZ3JvdW5kQ29sb3IgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5yZXNldEJhZGdlQ2xhc3NOYW1lTWFwKEJhZGdlTXV0ZXhUaGVtZSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGxldCBjaGlsZE5vZGVDb3VudCA9IDA7XG4gICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5jaGlsZE5vZGVzLmZvckVhY2goKG46IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoWycjY29tbWVudCddLmluZGV4T2Yobi5ub2RlTmFtZSkgPCAwKSB7XG4gICAgICAgICAgICAgICAgY2hpbGROb2RlQ291bnQrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc3QuaXNTdXAgPSBjaGlsZE5vZGVDb3VudCA+IDA7XG5cbiAgICAgICAgdGhpcy5jb21iaW5lQmFkZ2VDbGFzc05hbWUoKTtcblxuICAgICAgICBpZiAodGhpcy5zdC5pc1NldFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZURpc3BsYXlDb250ZW50KCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb21iaW5lQmFkZ2VDbGFzc05hbWUoKSB7XG4gICAgICAgIHRoaXMuYmFkZ2VDbGFzc05hbWVNYXBbJ3RoeS1iYWRnZS1zdXAnXSA9IHRoaXMuc3QuaXNTdXA7XG5cbiAgICAgICAgY29uc3QgX2JhZGdlQ2xhc3NOYW1lcyA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmJhZGdlQ2xhc3NOYW1lTWFwKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5iYWRnZUNsYXNzTmFtZU1hcC5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYmFkZ2VDbGFzc05hbWVNYXBba2V5XSkge1xuICAgICAgICAgICAgICAgICAgICBfYmFkZ2VDbGFzc05hbWVzLnB1c2goa2V5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5iYWRnZUNsYXNzTmFtZSA9IF9iYWRnZUNsYXNzTmFtZXMuam9pbignICcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29tYmluZUJhZGdlRGlzcGxheUNvbnRlbnQoKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheUNvbnRlbnQgPSB0aGlzLnN0LnZhbHVlIGFzIHN0cmluZztcbiAgICAgICAgaWYgKHRoaXMuc3QudmFsdWUgJiYgdGhpcy5zdC5tYXguaXMgJiYgdGhpcy5zdC52YWx1ZSA+IHRoaXMuc3QubWF4LnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlDb250ZW50ID0gYCR7dGhpcy5zdC5tYXgudmFsdWV9K2A7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuc3QudmFsdWUgJiYgIXRoaXMuc3QuaXNWYWx1ZUtlZXBTaG93KSB7XG4gICAgICAgICAgICB0aGlzLnN0LmlzU2hvd0JhZGdlID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0LmlzU2hvd0JhZGdlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRCYWRnZUNsYXNzTmFtZU1hcChtdXRleEFycmF5OiBhbnkpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5iYWRnZUNsYXNzTmFtZU1hcCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuYmFkZ2VDbGFzc05hbWVNYXAuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgICAgIGlmIChtdXRleEFycmF5LmluY2x1ZGVzKGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWRnZUNsYXNzTmFtZU1hcFtrZXldID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lcj5cbiAgPGRpdiAqbmdJZj1cInN0LmlzU2hvd0JhZGdlXCIgY2xhc3M9XCJ0aHktYmFkZ2Uge3sgYmFkZ2VDbGFzc05hbWUgfX1cIiBbc3R5bGUuY29sb3JdPVwidGV4dENvbG9yXCIgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJiYWNrZ3JvdW5kQ29sb3JcIj5cbiAgICA8c3Bhbj57eyBkaXNwbGF5Q29udGVudCB9fTwvc3Bhbj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==
|
|
235
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JhZGdlL2JhZGdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9iYWRnZS9iYWRnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7OztBQUk5Rjs7O0dBR0c7QUFXSCxNQUFNLE9BQU8saUJBQWlCO0lBd0MxQixZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBdkMxQyxtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUVwQixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUlaLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRTVCLFdBQVc7UUFDRCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRXJCLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBRWxCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBRXRCLFVBQUssR0FBb0IsRUFBRSxDQUFDO1FBRTVCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBb0J0QixlQUFVLEdBQWEsRUFBRSxDQUFDO1FBR2hDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQ0ksT0FBTyxDQUFDLEtBQWE7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFD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QU1kOzJGQTFJUSxpQkFBaUI7a0JBVjdCLFNBQVM7K0JBQ0ksc0JBQXNCLG1CQUVmLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxzQkFBc0IsQ0FBQyxRQUM3Qjt3QkFDRixLQUFLLEVBQUUscUJBQXFCO3dCQUM1QiwyQkFBMkIsRUFBRSxXQUFXO3FCQUMzQztpR0FtREcsT0FBTztzQkFEVixLQUFLO2dCQVlGLFFBQVE7c0JBRFgsS0FBSztnQkFjRixVQUFVO3NCQURiLEtBQUs7Z0JBZUYsVUFBVTtzQkFEYixLQUFLO2dCQVNGLFdBQVc7c0JBRGQsS0FBSztnQkFjRixPQUFPO3NCQURWLEtBQUs7Z0JBY0YsUUFBUTtzQkFGWCxLQUFLO2dCQWNGLFdBQVc7c0JBRmQsS0FBSztnQkFhRixXQUFXO3NCQURkLEtBQUs7Z0JBWUYsWUFBWTtzQkFEZixLQUFLO2dCQWtCRixrQkFBa0I7c0JBRHJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnB1dEJvb2xlYW4sIGlzVGV4dENvbG9yLCBVcGRhdGVIb3N0Q2xhc3NTZXJ2aWNlIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IHR5cGUgVGh5QmFkZ2VTaXplID0gJ21kJyB8ICdzbScgfCAnbGcnO1xuXG4vKipcbiAqIOW+veagh+e7hOS7tu+8jOaUr+aMgee7hOS7tmB0aHktYmFkZ2Vg5ZKMYHRoeUJhZGdlYOaMh+S7pOS4pOenjeS9v+eUqOaWueW8j1xuICogQG5hbWUgdGh5LWJhZGdlLFt0aHlCYWRnZV1cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktYmFkZ2UsW3RoeUJhZGdlXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhZGdlLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtVcGRhdGVIb3N0Q2xhc3NTZXJ2aWNlXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndGh5LWJhZGdlLWNvbnRhaW5lcicsXG4gICAgICAgICdbY2xhc3MudGh5LWJhZGdlLXdyYXBwZXJdJzogJ2lzV3JhcHBlcidcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFRoeUJhZGdlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBkaXNwbGF5Q29udGVudCA9ICcnO1xuXG4gICAgYmFkZ2VDbGFzc05hbWUgPSAnJztcblxuICAgIHByaXZhdGUgbmF0aXZlRWxlbWVudDogYW55O1xuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgLy8g5piv5ZCm5YyF6KO55Zyo5YWD57Sg5LiKXG4gICAgcHJvdGVjdGVkIGlzV3JhcHBlciA9IGZhbHNlO1xuXG4gICAgcHVibGljIGlzU2hvd0JhZGdlID0gdHJ1ZTtcblxuICAgIHByaXZhdGUga2VlcFNob3dWYWx1ZSA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSB2YWx1ZTogbnVtYmVyIHwgc3RyaW5nID0gJyc7XG5cbiAgICBwcml2YXRlIHZhbHVlSGFzQmVlblNldCA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBtYXhDb3VudDogbnVtYmVyO1xuXG4gICAgcHJpdmF0ZSB0eXBlOiBzdHJpbmc7XG5cbiAgICBwcml2YXRlIHNpemU6IFRoeUJhZGdlU2l6ZTtcblxuICAgIHByaXZhdGUgaXNEb3Q6IGJvb2xlYW47XG5cbiAgICBwcml2YXRlIGlzSG9sbG93OiBib29sZWFuO1xuXG4gICAgcHJvdGVjdGVkIHRleHRDb2xvcjogc3RyaW5nO1xuXG4gICAgcHJvdGVjdGVkIGJ1aWx0SW5UZXh0Q29sb3JDbGFzczogc3RyaW5nO1xuXG4gICAgcHJvdGVjdGVkIGJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuXG4gICAgcHJvdGVjdGVkIGJ1aWx0SW5CYWNrZ3JvdW5kQ29sb3JDbGFzczogc3RyaW5nO1xuXG4gICAgcHJvdGVjdGVkIHN1cENsYXNzZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5b695qCH57G75Z6LLCDnsbvlnovkuLogJ2RlZmF1bHQnIHwgJ3ByaW1hcnknIHwgJ2RhbmdlcicgfCAnd2FybmluZycgfCAnc3VjY2VzcydcbiAgICAgKiBAZGVmYXVsdCBkYW5nZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlUeXBlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy50eXBlID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZUNsYXNzZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOW+veagh+WGheWuueaVsOWtl1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUNvdW50KHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnZhbHVlSGFzQmVlblNldCA9IHRydWU7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZURpc3BsYXlDb250ZW50KCk7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZUNsYXNzZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOW+veagh+WGheWuueaWh+acrFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUNvbnRlbnQodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMudmFsdWVIYXNCZWVuU2V0ID0gdHJ1ZTtcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29tYmluZUJhZGdlRGlzcGxheUNvbnRlbnQoKTtcbiAgICAgICAgICAgIHRoaXMuY29tYmluZUJhZGdlQ2xhc3NlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5bey5bqf5byD77yM5b695qCH5YaF5a655paH5pys77yM5ZG95ZCN6ZSZ6K+v77yM6K+35L2/55SoIHRoeUNvbnRlbnRcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUNvbnRleHQodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnRoeUNvbnRlbnQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDlvr3moIfmmL7npLrnmoTmnIDlpKflgLwsIOS4jiB0aHlDb3VudCDkuIDotbfkvb/nlKgsdGh5Q291bnQg6LaF6L+H5LqGIHRoeU1heENvdW50IOiuvue9rueahOWAvOaXtu+8jOW+veagh+WGheWuueS4uiB0aHlNYXhDb3VudCtcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlNYXhDb3VudCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMubWF4Q291bnQgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29tYmluZUJhZGdlRGlzcGxheUNvbnRlbnQoKTtcbiAgICAgICAgICAgIHRoaXMuY29tYmluZUJhZGdlQ2xhc3NlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5b695qCH5pi+56S655qE5aSn5bCP77yM5YiG5Yir5Li6ICdzbScgfCAnbWQnIHwgJ2xnJ1xuICAgICAqIEBkZWZhdWx0IG1kXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5U2l6ZSh2YWx1ZTogVGh5QmFkZ2VTaXplKSB7XG4gICAgICAgIHRoaXMuc2l6ZSA9IHZhbHVlO1xuXG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZUNsYXNzZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOW3suW6n+W8g++8jOW+veagh+aYr+S4gOS4quWunuW/g+eCue+8jOW3sue7j+iiq+W6n+W8g1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQElucHV0Qm9vbGVhbigpXG4gICAgc2V0IHRoeUlzRG90KHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuaXNEb3QgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29tYmluZUJhZGdlQ2xhc3NlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5bey5bqf5byD77yM5b695qCH5piv5LiA5Liq56m65b+D54K577yMXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASW5wdXRCb29sZWFuKClcbiAgICBzZXQgdGh5SXNIb2xsb3codmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc0hvbGxvdyA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5jb21iaW5lQmFkZ2VDbGFzc2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiB0aHlDb3VudCDkuLogMCDml7bvvIzlvLrliLbmmL7npLrmlbDlrZcgMO+8jOm7mOiupOS4jeaYvuekulxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUtlZXBTaG93KHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMua2VlcFNob3dWYWx1ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZURpc3BsYXlDb250ZW50KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7lvr3moIflrZfkvZPnmoTpopzoibLvvIzmlK/mjIHlhoXnva7popzoibLlkozoh6rlrprkuYnpopzoibIgJ3ByaW1hcnknIHwgJyM4N2QwNjgnIHwgLi4uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5VGV4dENvbG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKGlzVGV4dENvbG9yKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5idWlsdEluVGV4dENvbG9yQ2xhc3MgPSBgdGV4dC0ke3ZhbHVlfWA7XG4gICAgICAgICAgICB0aGlzLnRleHRDb2xvciA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRleHRDb2xvciA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5idWlsdEluVGV4dENvbG9yQ2xhc3MgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZUNsYXNzZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOiuvue9ruW+veagh+eahOiDjOaZr+minOiJsu+8jOaUr+aMgeWGhee9ruminOiJsuWSjOiHquWumuS5ieminOiJsiAncHJpbWFyeScgfCAnIzg3ZDA2OCcgfCAuLi5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlCYWNrZ3JvdW5kQ29sb3IodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAoaXNUZXh0Q29sb3IodmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLmJ1aWx0SW5CYWNrZ3JvdW5kQ29sb3JDbGFzcyA9IGBiZy0ke3ZhbHVlfWA7XG4gICAgICAgICAgICB0aGlzLmJhY2tncm91bmRDb2xvciA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmJhY2tncm91bmRDb2xvciA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5idWlsdEluQmFja2dyb3VuZENvbG9yQ2xhc3MgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZUNsYXNzZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBsZXQgY2hpbGROb2RlQ291bnQgPSAwO1xuICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy5mb3JFYWNoKChuOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKFsnI2NvbW1lbnQnXS5pbmRleE9mKG4ubm9kZU5hbWUpIDwgMCkge1xuICAgICAgICAgICAgICAgIGNoaWxkTm9kZUNvdW50Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmlzV3JhcHBlciA9IGNoaWxkTm9kZUNvdW50ID4gMDtcblxuICAgICAgICB0aGlzLmNvbWJpbmVCYWRnZUNsYXNzZXMoKTtcblxuICAgICAgICBpZiAodGhpcy52YWx1ZUhhc0JlZW5TZXQpIHtcbiAgICAgICAgICAgIHRoaXMuY29tYmluZUJhZGdlRGlzcGxheUNvbnRlbnQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29tYmluZUJhZGdlQ2xhc3NlcygpIHtcbiAgICAgICAgY29uc3QgY2xhc3Nlczogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgY2xhc3Nlcy5wdXNoKGB0aHktYmFkZ2UtJHt0aGlzLnR5cGUgfHwgJ2Rhbmdlcid9YCk7XG4gICAgICAgIGlmICh0aGlzLnNpemUpIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaChgdGh5LWJhZGdlLSR7dGhpcy5zaXplfWApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlzRG90KSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goYHRoeS1iYWRnZS1kb3RgKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzSG9sbG93KSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goYHRoeS1iYWRnZS1ob2xsb3dgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaChgdGh5LWJhZGdlLWNvdW50YCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5idWlsdEluVGV4dENvbG9yQ2xhc3MpIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCh0aGlzLmJ1aWx0SW5UZXh0Q29sb3JDbGFzcyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYnVpbHRJbkJhY2tncm91bmRDb2xvckNsYXNzKSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2godGhpcy5idWlsdEluQmFja2dyb3VuZENvbG9yQ2xhc3MpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYmFkZ2VDbGFzc05hbWUgPSBjbGFzc2VzLmpvaW4oJyAnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbWJpbmVCYWRnZURpc3BsYXlDb250ZW50KCkge1xuICAgICAgICB0aGlzLmRpc3BsYXlDb250ZW50ID0gdGhpcy52YWx1ZSBhcyBzdHJpbmc7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlICYmIHRoaXMubWF4Q291bnQgIT0gdW5kZWZpbmVkICYmIHRoaXMudmFsdWUgPiB0aGlzLm1heENvdW50KSB7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlDb250ZW50ID0gYCR7dGhpcy5tYXhDb3VudH0rYDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy52YWx1ZSAmJiAhdGhpcy5rZWVwU2hvd1ZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmlzU2hvd0JhZGdlID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmlzU2hvd0JhZGdlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJpc1Nob3dCYWRnZVwiIGNsYXNzPVwidGh5LWJhZGdlIHt7IGJhZGdlQ2xhc3NOYW1lIH19XCIgW3N0eWxlLmNvbG9yXT1cInRleHRDb2xvclwiIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiYmFja2dyb3VuZENvbG9yXCI+XG4gIDxzcGFuPnt7IGRpc3BsYXlDb250ZW50IH19PC9zcGFuPlxuPC9kaXY+XG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
|