raise-common-lib 0.0.205 → 0.0.206
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/bundles/raise-common-lib.umd.js +204 -10
- package/bundles/raise-common-lib.umd.js.map +1 -1
- package/bundles/raise-common-lib.umd.min.js +1 -1
- package/bundles/raise-common-lib.umd.min.js.map +1 -1
- package/esm2015/lib/layout/rs-stepper/index.component.js +175 -9
- package/esm5/lib/layout/rs-stepper/index.component.js +206 -12
- package/fesm2015/raise-common-lib.js +173 -7
- package/fesm2015/raise-common-lib.js.map +1 -1
- package/fesm5/raise-common-lib.js +204 -10
- package/fesm5/raise-common-lib.js.map +1 -1
- package/lib/layout/rs-stepper/index.component.d.ts +17 -4
- package/package.json +1 -1
- package/raise-common-lib.metadata.json +1 -1
|
@@ -4,20 +4,24 @@
|
|
|
4
4
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
5
|
*/
|
|
6
6
|
// 组件类
|
|
7
|
-
import { Component, EventEmitter, Input, Output, } from "@angular/core";
|
|
7
|
+
import { Component, EventEmitter, Input, Output, ViewChild, ElementRef, HostListener, ChangeDetectorRef, } from "@angular/core";
|
|
8
8
|
import { CommonFunctionService } from "../../service/common-function.service";
|
|
9
9
|
export class RSStepperComponent {
|
|
10
10
|
/**
|
|
11
11
|
* @param {?} cf
|
|
12
|
+
* @param {?} ref
|
|
12
13
|
*/
|
|
13
|
-
constructor(cf) {
|
|
14
|
+
constructor(cf, ref) {
|
|
14
15
|
this.cf = cf;
|
|
16
|
+
this.ref = ref;
|
|
15
17
|
this.steps = [];
|
|
16
18
|
this.currentStep = 0;
|
|
17
19
|
this.stepClick = new EventEmitter();
|
|
18
20
|
this.unlockedStep = 0; //已解锁的最大步骤
|
|
21
|
+
this.showBtn = false;
|
|
22
|
+
this.isAtStart = true;
|
|
23
|
+
this.isAtEnd = false;
|
|
19
24
|
}
|
|
20
|
-
//已解锁的最大步骤
|
|
21
25
|
/**
|
|
22
26
|
* @return {?}
|
|
23
27
|
*/
|
|
@@ -31,6 +35,15 @@ export class RSStepperComponent {
|
|
|
31
35
|
}));
|
|
32
36
|
this.syncUnlockedStep();
|
|
33
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* @return {?}
|
|
40
|
+
*/
|
|
41
|
+
ngAfterViewInit() {
|
|
42
|
+
setTimeout((/**
|
|
43
|
+
* @return {?}
|
|
44
|
+
*/
|
|
45
|
+
() => this.checkBtnShow(true)));
|
|
46
|
+
}
|
|
34
47
|
/**
|
|
35
48
|
* @param {?} changes
|
|
36
49
|
* @return {?}
|
|
@@ -38,6 +51,18 @@ export class RSStepperComponent {
|
|
|
38
51
|
ngOnChanges(changes) {
|
|
39
52
|
if (changes["currentStep"] && !changes["currentStep"].firstChange) {
|
|
40
53
|
this.syncUnlockedStep();
|
|
54
|
+
// 当外部传入的 currentStep 变化时,滚动到对应步骤
|
|
55
|
+
setTimeout((/**
|
|
56
|
+
* @return {?}
|
|
57
|
+
*/
|
|
58
|
+
() => this.scrollToStep()));
|
|
59
|
+
}
|
|
60
|
+
if ((changes["steps"] && changes["steps"].currentValue) ||
|
|
61
|
+
changes["currentStep"]) {
|
|
62
|
+
setTimeout((/**
|
|
63
|
+
* @return {?}
|
|
64
|
+
*/
|
|
65
|
+
() => this.checkBtnShow()));
|
|
41
66
|
}
|
|
42
67
|
}
|
|
43
68
|
// 同步unlockedStep的最大值
|
|
@@ -52,33 +77,161 @@ export class RSStepperComponent {
|
|
|
52
77
|
}
|
|
53
78
|
/**
|
|
54
79
|
* @param {?} step
|
|
80
|
+
* @param {?=} index
|
|
55
81
|
* @return {?}
|
|
56
82
|
*/
|
|
57
|
-
onStepClick(step) {
|
|
83
|
+
onStepClick(step, index) {
|
|
58
84
|
if (step.step <= this.unlockedStep) {
|
|
59
85
|
this.currentStep = step.step;
|
|
60
86
|
this.stepClick.emit(step);
|
|
87
|
+
setTimeout((/**
|
|
88
|
+
* @return {?}
|
|
89
|
+
*/
|
|
90
|
+
() => this.scrollToStep(index)));
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* @private
|
|
95
|
+
* @param {?=} index
|
|
96
|
+
* @return {?}
|
|
97
|
+
*/
|
|
98
|
+
scrollToStep(index) {
|
|
99
|
+
if (!this.menu || !this.menu.nativeElement)
|
|
100
|
+
return;
|
|
101
|
+
/** @type {?} */
|
|
102
|
+
const menuEl = this.menu.nativeElement;
|
|
103
|
+
/** @type {?} */
|
|
104
|
+
const items = menuEl.querySelectorAll(".step");
|
|
105
|
+
/** @type {?} */
|
|
106
|
+
const targetIndex = typeof index === "number"
|
|
107
|
+
? index
|
|
108
|
+
: this.steps.findIndex((/**
|
|
109
|
+
* @param {?} s
|
|
110
|
+
* @return {?}
|
|
111
|
+
*/
|
|
112
|
+
(s) => s.step === this.currentStep));
|
|
113
|
+
if (targetIndex < 0 || targetIndex >= items.length)
|
|
114
|
+
return;
|
|
115
|
+
/** @type {?} */
|
|
116
|
+
const targetEl = (/** @type {?} */ (items[targetIndex]));
|
|
117
|
+
//获取相对位置
|
|
118
|
+
/** @type {?} */
|
|
119
|
+
const containerRect = menuEl.getBoundingClientRect();
|
|
120
|
+
/** @type {?} */
|
|
121
|
+
const elementRect = targetEl.getBoundingClientRect();
|
|
122
|
+
// 计算元素相对于容器的位置
|
|
123
|
+
/** @type {?} */
|
|
124
|
+
const elementRelativeLeft = elementRect.left - containerRect.left + menuEl.scrollLeft;
|
|
125
|
+
/** @type {?} */
|
|
126
|
+
const elementWidth = elementRect.width;
|
|
127
|
+
/** @type {?} */
|
|
128
|
+
const containerWidth = menuEl.clientWidth;
|
|
129
|
+
// 计算元素中心点相对于容器的位置
|
|
130
|
+
/** @type {?} */
|
|
131
|
+
const elementCenter = elementRelativeLeft + elementWidth / 2;
|
|
132
|
+
// 目标滚动位置:让元素中心出现在可视区域中心
|
|
133
|
+
/** @type {?} */
|
|
134
|
+
const scrollTarget = elementCenter - containerWidth / 2;
|
|
135
|
+
// 限制在有效滚动范围内
|
|
136
|
+
/** @type {?} */
|
|
137
|
+
const maxScroll = Math.max(0, menuEl.scrollWidth - containerWidth);
|
|
138
|
+
/** @type {?} */
|
|
139
|
+
const finalTarget = Math.max(0, Math.min(scrollTarget, maxScroll));
|
|
140
|
+
menuEl.scrollTo({ left: finalTarget, behavior: "smooth" });
|
|
141
|
+
this.onScroll();
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* @param {?} event
|
|
145
|
+
* @return {?}
|
|
146
|
+
*/
|
|
147
|
+
onResize(event) {
|
|
148
|
+
this.checkBtnShow();
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* @param {?=} init
|
|
152
|
+
* @return {?}
|
|
153
|
+
*/
|
|
154
|
+
checkBtnShow(init) {
|
|
155
|
+
if (!this.menu || !this.menu.nativeElement)
|
|
156
|
+
return;
|
|
157
|
+
/** @type {?} */
|
|
158
|
+
const menuEl = this.menu.nativeElement;
|
|
159
|
+
const { scrollWidth, clientWidth } = menuEl;
|
|
160
|
+
// 判断是否需要显示滚动按钮
|
|
161
|
+
/** @type {?} */
|
|
162
|
+
let threshold = clientWidth;
|
|
163
|
+
if (this.containerRefId) {
|
|
164
|
+
/** @type {?} */
|
|
165
|
+
const containerRef = document.getElementById(this.containerRefId);
|
|
166
|
+
if (containerRef) {
|
|
167
|
+
threshold = Math.max(containerRef.offsetWidth * 0.8, 400);
|
|
168
|
+
}
|
|
61
169
|
}
|
|
170
|
+
this.showBtn = scrollWidth > threshold;
|
|
171
|
+
// 初始化时滚动到当前步骤
|
|
172
|
+
if (init) {
|
|
173
|
+
setTimeout((/**
|
|
174
|
+
* @return {?}
|
|
175
|
+
*/
|
|
176
|
+
() => this.scrollToStep()), 0);
|
|
177
|
+
}
|
|
178
|
+
this.onScroll();
|
|
179
|
+
this.ref.markForCheck();
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* @return {?}
|
|
183
|
+
*/
|
|
184
|
+
scrollLeft() {
|
|
185
|
+
const { scrollLeft } = this.menu.nativeElement;
|
|
186
|
+
/** @type {?} */
|
|
187
|
+
const dis = scrollLeft / 100 < 2 ? scrollLeft + 10 : 100;
|
|
188
|
+
this.menu.nativeElement.scrollBy({ left: -dis, behavior: "smooth" });
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* @return {?}
|
|
192
|
+
*/
|
|
193
|
+
scrollRight() {
|
|
194
|
+
const { scrollLeft, scrollWidth, clientWidth } = this.menu.nativeElement;
|
|
195
|
+
/** @type {?} */
|
|
196
|
+
const rest = scrollWidth - clientWidth - scrollLeft;
|
|
197
|
+
/** @type {?} */
|
|
198
|
+
const dis = rest / 100 < 2 ? rest + 10 : 100;
|
|
199
|
+
this.menu.nativeElement.scrollBy({ left: dis, behavior: "smooth" });
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* @return {?}
|
|
203
|
+
*/
|
|
204
|
+
onScroll() {
|
|
205
|
+
const { scrollLeft, scrollWidth, clientWidth } = this.menu.nativeElement;
|
|
206
|
+
this.isAtStart = scrollLeft <= 1;
|
|
207
|
+
this.isAtEnd = scrollLeft + clientWidth >= scrollWidth - 1;
|
|
208
|
+
this.ref.markForCheck();
|
|
62
209
|
}
|
|
63
210
|
}
|
|
64
211
|
RSStepperComponent.decorators = [
|
|
65
212
|
{ type: Component, args: [{
|
|
66
213
|
selector: "rs-stepper",
|
|
67
|
-
template: "<div class=\"rs-stepper\">\r\n <div class=\"steps-wrap\">\r\n <ng-container *ngFor=\"let item of steps; let i = index\">\r\n
|
|
68
|
-
styles: [".rs-stepper{font-family:Arial;width:100%;border-bottom:1px solid var(--rs-border-color)}.rs-stepper .steps-wrap{display:flex;align-items:center;justify-content:
|
|
214
|
+
template: "<div class=\"rs-stepper\">\r\n <div class=\"steps-wrap\">\r\n <div\r\n class=\"row-btn\"\r\n [class.hidden]=\"isAtStart || !showBtn\"\r\n (click)=\"scrollLeft()\"\r\n >\r\n <div class=\"hover\">\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"17\"\r\n height=\"16\"\r\n viewBox=\"0 0 17 16\"\r\n fill=\"none\"\r\n >\r\n <path\r\n d=\"M10.4995 3.99955L7.24219 8.24219L10.4995 12.4848\"\r\n stroke=\"#1F7BFF\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"normal\">\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"17\"\r\n height=\"16\"\r\n viewBox=\"0 0 17 16\"\r\n fill=\"none\"\r\n >\r\n <path\r\n d=\"M10.4995 3.99955L7.24219 8.24219L10.4995 12.4848\"\r\n stroke=\"#6B6B6B\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <div\r\n class=\"steps-content\"\r\n [ngClass]=\"{\r\n leftMask: showBtn && !isAtStart,\r\n rightMask: showBtn && !isAtEnd,\r\n bothMask: showBtn && !isAtStart && showBtn && !isAtEnd\r\n }\"\r\n #menu\r\n (scroll)=\"onScroll()\"\r\n >\r\n <ng-container *ngFor=\"let item of steps; let i = index\">\r\n <div\r\n class=\"step\"\r\n [ngClass]=\"{\r\n done: item.step <= unlockedStep,\r\n active: item.step === currentStep\r\n }\"\r\n (click)=\"onStepClick(item, i)\"\r\n >\r\n <div\r\n class=\"step-label\"\r\n [matTooltip]=\"item.label !== item.displayTitle ? item.label : ''\"\r\n matTooltipPosition=\"above\"\r\n >\r\n {{ item.displayTitle }}\r\n </div>\r\n </div>\r\n <div class=\"step-arrow\" *ngIf=\"i < steps.length - 1\">\r\n <img src=\"/assets/img/step-arrow.svg\" />\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div\r\n class=\"row-btn\"\r\n [class.hidden]=\"isAtEnd || !showBtn\"\r\n (click)=\"scrollRight()\"\r\n >\r\n <div class=\"hover\">\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"17\"\r\n height=\"16\"\r\n viewBox=\"0 0 17 16\"\r\n fill=\"none\"\r\n >\r\n <path\r\n d=\"M7.50045 3.99955L10.7578 8.24219L7.50045 12.4848\"\r\n stroke=\"#1F7BFF\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"normal\">\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"17\"\r\n height=\"16\"\r\n viewBox=\"0 0 17 16\"\r\n fill=\"none\"\r\n >\r\n <path\r\n d=\"M7.50045 3.99955L10.7578 8.24219L7.50045 12.4848\"\r\n stroke=\"#6B6B6B\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
215
|
+
styles: [".rs-stepper{font-family:Arial;width:100%;border-bottom:1px solid var(--rs-border-color)}.rs-stepper .steps-wrap{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 auto}.rs-stepper .steps-wrap .steps-content{display:flex;align-items:center;flex-wrap:nowrap;min-width:0;overflow-x:auto;overflow-y:hidden;gap:8px}.rs-stepper .steps-wrap .steps-content.leftMask{-webkit-mask-image:linear-gradient(90deg,transparent,#fff 10%,#d8d3d3 100%);mask-image:linear-gradient(90deg,transparent,#fff 10%,#d8d3d3 100%)}.rs-stepper .steps-wrap .steps-content.rightMask{-webkit-mask-image:linear-gradient(90deg,#fff 0,#fff 90%,transparent);mask-image:linear-gradient(90deg,#fff 0,#fff 90%,transparent)}.rs-stepper .steps-wrap .steps-content.bothMask{-webkit-mask-image:linear-gradient(90deg,transparent,#fff 10%,#fff 90%,transparent)!important;mask-image:linear-gradient(90deg,transparent,#fff 10%,#fff 90%,transparent)!important}.rs-stepper .steps-wrap .steps-content::-webkit-scrollbar{width:0;height:0}.rs-stepper .steps-wrap .step{flex:0 0 auto}.rs-stepper .steps-wrap .step .step-label{color:var(--rs-labels-color);font-size:12px;font-weight:400;line-height:22px;text-align:center;white-space:nowrap;padding:0 12px 12px;display:flex;align-items:center}.rs-stepper .steps-wrap .step.done{cursor:pointer}.rs-stepper .steps-wrap .step.done .step-label{color:var(--rs-active-labels-color)}.rs-stepper .steps-wrap .step.active .step-label{color:var(--rs-active-labels-color);font-weight:700;border-bottom:1px solid var(--rs-active-labels-color)}.rs-stepper .steps-wrap .step-arrow{flex:0 0 auto;padding:0 12px 12px;display:flex;align-items:center}.rs-stepper .row-btn{margin-bottom:12px;display:flex;width:20px;height:20px;align-items:center;justify-content:center;border-radius:4px;border:1px solid #bdc4ca;flex-shrink:0;cursor:pointer;visibility:visible}.rs-stepper .row-btn .hover{display:none}.rs-stepper .row-btn .normal{display:flex}.rs-stepper .row-btn:hover{background-color:rgba(31,123,255,.04)}.rs-stepper .row-btn:hover .normal{display:none}.rs-stepper .row-btn:hover .hover{display:flex}.rs-stepper .row-btn.hidden{visibility:hidden}"]
|
|
69
216
|
}] }
|
|
70
217
|
];
|
|
71
218
|
/** @nocollapse */
|
|
72
219
|
RSStepperComponent.ctorParameters = () => [
|
|
73
|
-
{ type: CommonFunctionService }
|
|
220
|
+
{ type: CommonFunctionService },
|
|
221
|
+
{ type: ChangeDetectorRef }
|
|
74
222
|
];
|
|
75
223
|
RSStepperComponent.propDecorators = {
|
|
224
|
+
menu: [{ type: ViewChild, args: ["menu", { static: false },] }],
|
|
76
225
|
steps: [{ type: Input }],
|
|
77
226
|
currentStep: [{ type: Input }],
|
|
78
227
|
stepClick: [{ type: Output }],
|
|
79
|
-
unlockedStep: [{ type: Input }]
|
|
228
|
+
unlockedStep: [{ type: Input }],
|
|
229
|
+
containerRefId: [{ type: Input }],
|
|
230
|
+
onResize: [{ type: HostListener, args: ["window:resize", ["$event"],] }]
|
|
80
231
|
};
|
|
81
232
|
if (false) {
|
|
233
|
+
/** @type {?} */
|
|
234
|
+
RSStepperComponent.prototype.menu;
|
|
82
235
|
/** @type {?} */
|
|
83
236
|
RSStepperComponent.prototype.steps;
|
|
84
237
|
/** @type {?} */
|
|
@@ -88,6 +241,19 @@ if (false) {
|
|
|
88
241
|
/** @type {?} */
|
|
89
242
|
RSStepperComponent.prototype.unlockedStep;
|
|
90
243
|
/** @type {?} */
|
|
244
|
+
RSStepperComponent.prototype.containerRefId;
|
|
245
|
+
/** @type {?} */
|
|
246
|
+
RSStepperComponent.prototype.showBtn;
|
|
247
|
+
/** @type {?} */
|
|
248
|
+
RSStepperComponent.prototype.isAtStart;
|
|
249
|
+
/** @type {?} */
|
|
250
|
+
RSStepperComponent.prototype.isAtEnd;
|
|
251
|
+
/** @type {?} */
|
|
91
252
|
RSStepperComponent.prototype.cf;
|
|
253
|
+
/**
|
|
254
|
+
* @type {?}
|
|
255
|
+
* @private
|
|
256
|
+
*/
|
|
257
|
+
RSStepperComponent.prototype.ref;
|
|
92
258
|
}
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9sYXlvdXQvcnMtc3RlcHBlci9pbmRleC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQU85RSxNQUFNLE9BQU8sa0JBQWtCOzs7O0lBRzdCLFlBQW1CLEVBQXlCO1FBQXpCLE9BQUUsR0FBRixFQUFFLENBQXVCO1FBRm5DLFVBQUssR0FBZSxFQUFFLENBQUM7UUFDdkIsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFFdkIsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFZLENBQUM7UUFDMUMsaUJBQVksR0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVO0lBRkUsQ0FBQzs7Ozs7SUFJaEQsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTzs7OztRQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLENBQUMsRUFBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQzs7Ozs7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsV0FBVyxFQUFFO1lBQ2pFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQzs7Ozs7O0lBR08sZ0JBQWdCO1FBQ3RCLElBQUksSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUN0QztJQUNILENBQUM7Ozs7O0lBRUQsV0FBVyxDQUFDLElBQWM7UUFDeEIsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzNCO0lBQ0gsQ0FBQzs7O1lBckNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsWUFBWTtnQkFDdEIsb3lCQUFxQzs7YUFFdEM7Ozs7WUFOUSxxQkFBcUI7OztvQkFRM0IsS0FBSzswQkFDTCxLQUFLO3dCQUVMLE1BQU07MkJBQ04sS0FBSzs7OztJQUpOLG1DQUFnQzs7SUFDaEMseUNBQWlDOztJQUVqQyx1Q0FBbUQ7O0lBQ25ELDBDQUFrQzs7SUFGdEIsZ0NBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiLy8g57uE5Lu257G7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgU3RlcEl0ZW0gfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgQ29tbW9uRnVuY3Rpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvY29tbW9uLWZ1bmN0aW9uLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcInJzLXN0ZXBwZXJcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2luZGV4LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2luZGV4LmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUlNTdGVwcGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBzdGVwczogU3RlcEl0ZW1bXSA9IFtdO1xyXG4gIEBJbnB1dCgpIGN1cnJlbnRTdGVwOiBudW1iZXIgPSAwO1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjZjogQ29tbW9uRnVuY3Rpb25TZXJ2aWNlKSB7fVxyXG4gIEBPdXRwdXQoKSBzdGVwQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFN0ZXBJdGVtPigpO1xyXG4gIEBJbnB1dCgpIHVubG9ja2VkU3RlcDogbnVtYmVyID0gMDsgLy/lt7Lop6PplIHnmoTmnIDlpKfmraXpqqRcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnN0ZXBzLmZvckVhY2goKHN0ZXApID0+IHtcclxuICAgICAgc3RlcC5kaXNwbGF5VGl0bGUgPSB0aGlzLmNmLnNldE1pZGRsZUVsbGlwc2lzKHN0ZXAubGFiZWwsIDEzMiwgMTIpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnN5bmNVbmxvY2tlZFN0ZXAoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmIChjaGFuZ2VzW1wiY3VycmVudFN0ZXBcIl0gJiYgIWNoYW5nZXNbXCJjdXJyZW50U3RlcFwiXS5maXJzdENoYW5nZSkge1xyXG4gICAgICB0aGlzLnN5bmNVbmxvY2tlZFN0ZXAoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIOWQjOatpXVubG9ja2VkU3RlcOeahOacgOWkp+WAvFxyXG4gIHByaXZhdGUgc3luY1VubG9ja2VkU3RlcCgpIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRTdGVwID4gdGhpcy51bmxvY2tlZFN0ZXApIHtcclxuICAgICAgdGhpcy51bmxvY2tlZFN0ZXAgPSB0aGlzLmN1cnJlbnRTdGVwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25TdGVwQ2xpY2soc3RlcDogU3RlcEl0ZW0pIHtcclxuICAgIGlmIChzdGVwLnN0ZXAgPD0gdGhpcy51bmxvY2tlZFN0ZXApIHtcclxuICAgICAgdGhpcy5jdXJyZW50U3RlcCA9IHN0ZXAuc3RlcDtcclxuICAgICAgdGhpcy5zdGVwQ2xpY2suZW1pdChzdGVwKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
259
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9sYXlvdXQvcnMtc3RlcHBlci9pbmRleC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixpQkFBaUIsR0FFbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFPOUUsTUFBTSxPQUFPLGtCQUFrQjs7Ozs7SUFJN0IsWUFDUyxFQUF5QixFQUN4QixHQUFzQjtRQUR2QixPQUFFLEdBQUYsRUFBRSxDQUF1QjtRQUN4QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUp2QixVQUFLLEdBQWUsRUFBRSxDQUFDO1FBQ3ZCLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBS3ZCLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBWSxDQUFDO1FBQzFDLGlCQUFZLEdBQVcsQ0FBQyxDQUFDLENBQUMsVUFBVTtRQTJIN0MsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLFlBQU8sR0FBRyxLQUFLLENBQUM7SUEvSGIsQ0FBQzs7OztJQUtKLFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU87Ozs7UUFBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzFCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNyRSxDQUFDLEVBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7Ozs7SUFFRCxlQUFlO1FBQ2IsVUFBVTs7O1FBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDO0lBQzVDLENBQUM7Ozs7O0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFdBQVcsRUFBRTtZQUNqRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN4QixpQ0FBaUM7WUFDakMsVUFBVTs7O1lBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFDLENBQUM7U0FDdkM7UUFDRCxJQUNFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLENBQUM7WUFDbkQsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUN0QjtZQUNBLFVBQVU7OztZQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBQyxDQUFDO1NBQ3ZDO0lBQ0gsQ0FBQzs7Ozs7O0lBR08sZ0JBQWdCO1FBQ3RCLElBQUksSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUN0QztJQUNILENBQUM7Ozs7OztJQUVELFdBQVcsQ0FBQyxJQUFjLEVBQUUsS0FBYztRQUN4QyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUIsVUFBVTs7O1lBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBQyxDQUFDO1NBQzVDO0lBQ0gsQ0FBQzs7Ozs7O0lBRU8sWUFBWSxDQUFDLEtBQWM7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWE7WUFBRSxPQUFPOztjQUU3QyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhOztjQUNoQyxLQUFLLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQzs7Y0FDeEMsV0FBVyxHQUNmLE9BQU8sS0FBSyxLQUFLLFFBQVE7WUFDdkIsQ0FBQyxDQUFDLEtBQUs7WUFDUCxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTOzs7O1lBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBQztRQUU5RCxJQUFJLFdBQVcsR0FBRyxDQUFDLElBQUksV0FBVyxJQUFJLEtBQUssQ0FBQyxNQUFNO1lBQUUsT0FBTzs7Y0FFckQsUUFBUSxHQUFHLG1CQUFBLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBZTs7O2NBRzVDLGFBQWEsR0FBRyxNQUFNLENBQUMscUJBQXFCLEVBQUU7O2NBQzlDLFdBQVcsR0FBRyxRQUFRLENBQUMscUJBQXFCLEVBQUU7OztjQUc5QyxtQkFBbUIsR0FDdkIsV0FBVyxDQUFDLElBQUksR0FBRyxhQUFhLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVOztjQUNyRCxZQUFZLEdBQUcsV0FBVyxDQUFDLEtBQUs7O2NBQ2hDLGNBQWMsR0FBRyxNQUFNLENBQUMsV0FBVzs7O2NBR25DLGFBQWEsR0FBRyxtQkFBbUIsR0FBRyxZQUFZLEdBQUcsQ0FBQzs7O2NBR3RELFlBQVksR0FBRyxhQUFhLEdBQUcsY0FBYyxHQUFHLENBQUM7OztjQUdqRCxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUM7O2NBQzVELFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUVsRSxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQzs7Ozs7SUFHRCxRQUFRLENBQUMsS0FBWTtRQUNuQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQzs7Ozs7SUFFRCxZQUFZLENBQUMsSUFBYztRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYTtZQUFFLE9BQU87O2NBRTdDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWE7Y0FDaEMsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLEdBQUcsTUFBTTs7O1lBR3ZDLFNBQVMsR0FBRyxXQUFXO1FBQzNCLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTs7a0JBQ2pCLFlBQVksR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7WUFDakUsSUFBSSxZQUFZLEVBQUU7Z0JBQ2hCLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxXQUFXLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2FBQzNEO1NBQ0Y7UUFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLFdBQVcsR0FBRyxTQUFTLENBQUM7UUFFdkMsY0FBYztRQUNkLElBQUksSUFBSSxFQUFFO1lBQ1IsVUFBVTs7O1lBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO1NBQzFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQzs7OztJQUNELFVBQVU7Y0FDRixFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYTs7Y0FDeEMsR0FBRyxHQUFHLFVBQVUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHO1FBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDOzs7O0lBQ0QsV0FBVztjQUNILEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWE7O2NBQ2xFLElBQUksR0FBRyxXQUFXLEdBQUcsV0FBVyxHQUFHLFVBQVU7O2NBQzdDLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRztRQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7Ozs7SUFLRCxRQUFRO2NBQ0EsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYTtRQUN4RSxJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLEdBQUcsV0FBVyxJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDOzs7WUFqSkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxZQUFZO2dCQUN0QiwrOUZBQXFDOzthQUV0Qzs7OztZQU5RLHFCQUFxQjtZQUo1QixpQkFBaUI7OzttQkFZaEIsU0FBUyxTQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7b0JBQ25DLEtBQUs7MEJBQ0wsS0FBSzt3QkFLTCxNQUFNOzJCQUNOLEtBQUs7NkJBQ0wsS0FBSzt1QkFnRkwsWUFBWSxTQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7OztJQXpGekMsa0NBQXdEOztJQUN4RCxtQ0FBZ0M7O0lBQ2hDLHlDQUFpQzs7SUFLakMsdUNBQW1EOztJQUNuRCwwQ0FBa0M7O0lBQ2xDLDRDQUF3Qjs7SUEwSHhCLHFDQUFnQjs7SUFDaEIsdUNBQWlCOztJQUNqQixxQ0FBZ0I7O0lBaklkLGdDQUFnQzs7Ozs7SUFDaEMsaUNBQThCIiwic291cmNlc0NvbnRlbnQiOlsiLy8g57uE5Lu257G7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgU3RlcEl0ZW0gfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgQ29tbW9uRnVuY3Rpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvY29tbW9uLWZ1bmN0aW9uLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcInJzLXN0ZXBwZXJcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2luZGV4LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2luZGV4LmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUlNTdGVwcGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBAVmlld0NoaWxkKFwibWVudVwiLCB7IHN0YXRpYzogZmFsc2UgfSkgbWVudSE6IEVsZW1lbnRSZWY7XHJcbiAgQElucHV0KCkgc3RlcHM6IFN0ZXBJdGVtW10gPSBbXTtcclxuICBASW5wdXQoKSBjdXJyZW50U3RlcDogbnVtYmVyID0gMDtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjZjogQ29tbW9uRnVuY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7fVxyXG4gIEBPdXRwdXQoKSBzdGVwQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFN0ZXBJdGVtPigpO1xyXG4gIEBJbnB1dCgpIHVubG9ja2VkU3RlcDogbnVtYmVyID0gMDsgLy/lt7Lop6PplIHnmoTmnIDlpKfmraXpqqRcclxuICBASW5wdXQoKSBjb250YWluZXJSZWZJZDtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnN0ZXBzLmZvckVhY2goKHN0ZXApID0+IHtcclxuICAgICAgc3RlcC5kaXNwbGF5VGl0bGUgPSB0aGlzLmNmLnNldE1pZGRsZUVsbGlwc2lzKHN0ZXAubGFiZWwsIDEzMiwgMTIpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnN5bmNVbmxvY2tlZFN0ZXAoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jaGVja0J0blNob3codHJ1ZSkpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKGNoYW5nZXNbXCJjdXJyZW50U3RlcFwiXSAmJiAhY2hhbmdlc1tcImN1cnJlbnRTdGVwXCJdLmZpcnN0Q2hhbmdlKSB7XHJcbiAgICAgIHRoaXMuc3luY1VubG9ja2VkU3RlcCgpO1xyXG4gICAgICAvLyDlvZPlpJbpg6jkvKDlhaXnmoQgY3VycmVudFN0ZXAg5Y+Y5YyW5pe277yM5rua5Yqo5Yiw5a+55bqU5q2l6aqkXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zY3JvbGxUb1N0ZXAoKSk7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIChjaGFuZ2VzW1wic3RlcHNcIl0gJiYgY2hhbmdlc1tcInN0ZXBzXCJdLmN1cnJlbnRWYWx1ZSkgfHxcclxuICAgICAgY2hhbmdlc1tcImN1cnJlbnRTdGVwXCJdXHJcbiAgICApIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNoZWNrQnRuU2hvdygpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIOWQjOatpXVubG9ja2VkU3RlcOeahOacgOWkp+WAvFxyXG4gIHByaXZhdGUgc3luY1VubG9ja2VkU3RlcCgpIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRTdGVwID4gdGhpcy51bmxvY2tlZFN0ZXApIHtcclxuICAgICAgdGhpcy51bmxvY2tlZFN0ZXAgPSB0aGlzLmN1cnJlbnRTdGVwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25TdGVwQ2xpY2soc3RlcDogU3RlcEl0ZW0sIGluZGV4PzogbnVtYmVyKSB7XHJcbiAgICBpZiAoc3RlcC5zdGVwIDw9IHRoaXMudW5sb2NrZWRTdGVwKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudFN0ZXAgPSBzdGVwLnN0ZXA7XHJcbiAgICAgIHRoaXMuc3RlcENsaWNrLmVtaXQoc3RlcCk7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zY3JvbGxUb1N0ZXAoaW5kZXgpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2Nyb2xsVG9TdGVwKGluZGV4PzogbnVtYmVyKSB7XHJcbiAgICBpZiAoIXRoaXMubWVudSB8fCAhdGhpcy5tZW51Lm5hdGl2ZUVsZW1lbnQpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBtZW51RWwgPSB0aGlzLm1lbnUubmF0aXZlRWxlbWVudDtcclxuICAgIGNvbnN0IGl0ZW1zID0gbWVudUVsLnF1ZXJ5U2VsZWN0b3JBbGwoXCIuc3RlcFwiKTtcclxuICAgIGNvbnN0IHRhcmdldEluZGV4ID1cclxuICAgICAgdHlwZW9mIGluZGV4ID09PSBcIm51bWJlclwiXHJcbiAgICAgICAgPyBpbmRleFxyXG4gICAgICAgIDogdGhpcy5zdGVwcy5maW5kSW5kZXgoKHMpID0+IHMuc3RlcCA9PT0gdGhpcy5jdXJyZW50U3RlcCk7XHJcblxyXG4gICAgaWYgKHRhcmdldEluZGV4IDwgMCB8fCB0YXJnZXRJbmRleCA+PSBpdGVtcy5sZW5ndGgpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCB0YXJnZXRFbCA9IGl0ZW1zW3RhcmdldEluZGV4XSBhcyBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAvL+iOt+WPluebuOWvueS9jee9rlxyXG4gICAgY29uc3QgY29udGFpbmVyUmVjdCA9IG1lbnVFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGNvbnN0IGVsZW1lbnRSZWN0ID0gdGFyZ2V0RWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcblxyXG4gICAgLy8g6K6h566X5YWD57Sg55u45a+55LqO5a655Zmo55qE5L2N572uXHJcbiAgICBjb25zdCBlbGVtZW50UmVsYXRpdmVMZWZ0ID1cclxuICAgICAgZWxlbWVudFJlY3QubGVmdCAtIGNvbnRhaW5lclJlY3QubGVmdCArIG1lbnVFbC5zY3JvbGxMZWZ0O1xyXG4gICAgY29uc3QgZWxlbWVudFdpZHRoID0gZWxlbWVudFJlY3Qud2lkdGg7XHJcbiAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IG1lbnVFbC5jbGllbnRXaWR0aDtcclxuXHJcbiAgICAvLyDorqHnrpflhYPntKDkuK3lv4Pngrnnm7jlr7nkuo7lrrnlmajnmoTkvY3nva5cclxuICAgIGNvbnN0IGVsZW1lbnRDZW50ZXIgPSBlbGVtZW50UmVsYXRpdmVMZWZ0ICsgZWxlbWVudFdpZHRoIC8gMjtcclxuXHJcbiAgICAvLyDnm67moIfmu5rliqjkvY3nva7vvJrorqnlhYPntKDkuK3lv4Plh7rnjrDlnKjlj6/op4bljLrln5/kuK3lv4NcclxuICAgIGNvbnN0IHNjcm9sbFRhcmdldCA9IGVsZW1lbnRDZW50ZXIgLSBjb250YWluZXJXaWR0aCAvIDI7XHJcblxyXG4gICAgLy8g6ZmQ5Yi25Zyo5pyJ5pWI5rua5Yqo6IyD5Zu05YaFXHJcbiAgICBjb25zdCBtYXhTY3JvbGwgPSBNYXRoLm1heCgwLCBtZW51RWwuc2Nyb2xsV2lkdGggLSBjb250YWluZXJXaWR0aCk7XHJcbiAgICBjb25zdCBmaW5hbFRhcmdldCA9IE1hdGgubWF4KDAsIE1hdGgubWluKHNjcm9sbFRhcmdldCwgbWF4U2Nyb2xsKSk7XHJcblxyXG4gICAgbWVudUVsLnNjcm9sbFRvKHsgbGVmdDogZmluYWxUYXJnZXQsIGJlaGF2aW9yOiBcInNtb290aFwiIH0pO1xyXG4gICAgdGhpcy5vblNjcm9sbCgpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzpyZXNpemVcIiwgW1wiJGV2ZW50XCJdKVxyXG4gIG9uUmVzaXplKGV2ZW50OiBFdmVudCkge1xyXG4gICAgdGhpcy5jaGVja0J0blNob3coKTtcclxuICB9XHJcblxyXG4gIGNoZWNrQnRuU2hvdyhpbml0PzogYm9vbGVhbikge1xyXG4gICAgaWYgKCF0aGlzLm1lbnUgfHwgIXRoaXMubWVudS5uYXRpdmVFbGVtZW50KSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgbWVudUVsID0gdGhpcy5tZW51Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBjb25zdCB7IHNjcm9sbFdpZHRoLCBjbGllbnRXaWR0aCB9ID0gbWVudUVsO1xyXG5cclxuICAgIC8vIOWIpOaWreaYr+WQpumcgOimgeaYvuekuua7muWKqOaMiemSrlxyXG4gICAgbGV0IHRocmVzaG9sZCA9IGNsaWVudFdpZHRoO1xyXG4gICAgaWYgKHRoaXMuY29udGFpbmVyUmVmSWQpIHtcclxuICAgICAgY29uc3QgY29udGFpbmVyUmVmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5jb250YWluZXJSZWZJZCk7XHJcbiAgICAgIGlmIChjb250YWluZXJSZWYpIHtcclxuICAgICAgICB0aHJlc2hvbGQgPSBNYXRoLm1heChjb250YWluZXJSZWYub2Zmc2V0V2lkdGggKiAwLjgsIDQwMCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNob3dCdG4gPSBzY3JvbGxXaWR0aCA+IHRocmVzaG9sZDtcclxuXHJcbiAgICAvLyDliJ3lp4vljJbml7bmu5rliqjliLDlvZPliY3mraXpqqRcclxuICAgIGlmIChpbml0KSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zY3JvbGxUb1N0ZXAoKSwgMCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5vblNjcm9sbCgpO1xyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG4gIHNjcm9sbExlZnQoKSB7XHJcbiAgICBjb25zdCB7IHNjcm9sbExlZnQgfSA9IHRoaXMubWVudS5uYXRpdmVFbGVtZW50O1xyXG4gICAgY29uc3QgZGlzID0gc2Nyb2xsTGVmdCAvIDEwMCA8IDIgPyBzY3JvbGxMZWZ0ICsgMTAgOiAxMDA7XHJcbiAgICB0aGlzLm1lbnUubmF0aXZlRWxlbWVudC5zY3JvbGxCeSh7IGxlZnQ6IC1kaXMsIGJlaGF2aW9yOiBcInNtb290aFwiIH0pO1xyXG4gIH1cclxuICBzY3JvbGxSaWdodCgpIHtcclxuICAgIGNvbnN0IHsgc2Nyb2xsTGVmdCwgc2Nyb2xsV2lkdGgsIGNsaWVudFdpZHRoIH0gPSB0aGlzLm1lbnUubmF0aXZlRWxlbWVudDtcclxuICAgIGNvbnN0IHJlc3QgPSBzY3JvbGxXaWR0aCAtIGNsaWVudFdpZHRoIC0gc2Nyb2xsTGVmdDtcclxuICAgIGNvbnN0IGRpcyA9IHJlc3QgLyAxMDAgPCAyID8gcmVzdCArIDEwIDogMTAwO1xyXG4gICAgdGhpcy5tZW51Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsQnkoeyBsZWZ0OiBkaXMsIGJlaGF2aW9yOiBcInNtb290aFwiIH0pO1xyXG4gIH1cclxuXHJcbiAgc2hvd0J0biA9IGZhbHNlO1xyXG4gIGlzQXRTdGFydCA9IHRydWU7XHJcbiAgaXNBdEVuZCA9IGZhbHNlO1xyXG4gIG9uU2Nyb2xsKCkge1xyXG4gICAgY29uc3QgeyBzY3JvbGxMZWZ0LCBzY3JvbGxXaWR0aCwgY2xpZW50V2lkdGggfSA9IHRoaXMubWVudS5uYXRpdmVFbGVtZW50O1xyXG4gICAgdGhpcy5pc0F0U3RhcnQgPSBzY3JvbGxMZWZ0IDw9IDE7XHJcbiAgICB0aGlzLmlzQXRFbmQgPSBzY3JvbGxMZWZ0ICsgY2xpZW50V2lkdGggPj0gc2Nyb2xsV2lkdGggLSAxO1xyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -4,23 +4,24 @@
|
|
|
4
4
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
5
|
*/
|
|
6
6
|
// 组件类
|
|
7
|
-
import { Component, EventEmitter, Input, Output, } from "@angular/core";
|
|
7
|
+
import { Component, EventEmitter, Input, Output, ViewChild, ElementRef, HostListener, ChangeDetectorRef, } from "@angular/core";
|
|
8
8
|
import { CommonFunctionService } from "../../service/common-function.service";
|
|
9
9
|
var RSStepperComponent = /** @class */ (function () {
|
|
10
|
-
function RSStepperComponent(cf) {
|
|
10
|
+
function RSStepperComponent(cf, ref) {
|
|
11
11
|
this.cf = cf;
|
|
12
|
+
this.ref = ref;
|
|
12
13
|
this.steps = [];
|
|
13
14
|
this.currentStep = 0;
|
|
14
15
|
this.stepClick = new EventEmitter();
|
|
15
16
|
this.unlockedStep = 0; //已解锁的最大步骤
|
|
17
|
+
this.showBtn = false;
|
|
18
|
+
this.isAtStart = true;
|
|
19
|
+
this.isAtEnd = false;
|
|
16
20
|
}
|
|
17
|
-
//已解锁的最大步骤
|
|
18
21
|
/**
|
|
19
22
|
* @return {?}
|
|
20
23
|
*/
|
|
21
|
-
RSStepperComponent.prototype.ngOnInit =
|
|
22
|
-
//已解锁的最大步骤
|
|
23
|
-
/**
|
|
24
|
+
RSStepperComponent.prototype.ngOnInit = /**
|
|
24
25
|
* @return {?}
|
|
25
26
|
*/
|
|
26
27
|
function () {
|
|
@@ -34,6 +35,19 @@ var RSStepperComponent = /** @class */ (function () {
|
|
|
34
35
|
}));
|
|
35
36
|
this.syncUnlockedStep();
|
|
36
37
|
};
|
|
38
|
+
/**
|
|
39
|
+
* @return {?}
|
|
40
|
+
*/
|
|
41
|
+
RSStepperComponent.prototype.ngAfterViewInit = /**
|
|
42
|
+
* @return {?}
|
|
43
|
+
*/
|
|
44
|
+
function () {
|
|
45
|
+
var _this = this;
|
|
46
|
+
setTimeout((/**
|
|
47
|
+
* @return {?}
|
|
48
|
+
*/
|
|
49
|
+
function () { return _this.checkBtnShow(true); }));
|
|
50
|
+
};
|
|
37
51
|
/**
|
|
38
52
|
* @param {?} changes
|
|
39
53
|
* @return {?}
|
|
@@ -43,8 +57,21 @@ var RSStepperComponent = /** @class */ (function () {
|
|
|
43
57
|
* @return {?}
|
|
44
58
|
*/
|
|
45
59
|
function (changes) {
|
|
60
|
+
var _this = this;
|
|
46
61
|
if (changes["currentStep"] && !changes["currentStep"].firstChange) {
|
|
47
62
|
this.syncUnlockedStep();
|
|
63
|
+
// 当外部传入的 currentStep 变化时,滚动到对应步骤
|
|
64
|
+
setTimeout((/**
|
|
65
|
+
* @return {?}
|
|
66
|
+
*/
|
|
67
|
+
function () { return _this.scrollToStep(); }));
|
|
68
|
+
}
|
|
69
|
+
if ((changes["steps"] && changes["steps"].currentValue) ||
|
|
70
|
+
changes["currentStep"]) {
|
|
71
|
+
setTimeout((/**
|
|
72
|
+
* @return {?}
|
|
73
|
+
*/
|
|
74
|
+
function () { return _this.checkBtnShow(); }));
|
|
48
75
|
}
|
|
49
76
|
};
|
|
50
77
|
// 同步unlockedStep的最大值
|
|
@@ -66,39 +93,193 @@ var RSStepperComponent = /** @class */ (function () {
|
|
|
66
93
|
};
|
|
67
94
|
/**
|
|
68
95
|
* @param {?} step
|
|
96
|
+
* @param {?=} index
|
|
69
97
|
* @return {?}
|
|
70
98
|
*/
|
|
71
99
|
RSStepperComponent.prototype.onStepClick = /**
|
|
72
100
|
* @param {?} step
|
|
101
|
+
* @param {?=} index
|
|
73
102
|
* @return {?}
|
|
74
103
|
*/
|
|
75
|
-
function (step) {
|
|
104
|
+
function (step, index) {
|
|
105
|
+
var _this = this;
|
|
76
106
|
if (step.step <= this.unlockedStep) {
|
|
77
107
|
this.currentStep = step.step;
|
|
78
108
|
this.stepClick.emit(step);
|
|
109
|
+
setTimeout((/**
|
|
110
|
+
* @return {?}
|
|
111
|
+
*/
|
|
112
|
+
function () { return _this.scrollToStep(index); }));
|
|
79
113
|
}
|
|
80
114
|
};
|
|
115
|
+
/**
|
|
116
|
+
* @private
|
|
117
|
+
* @param {?=} index
|
|
118
|
+
* @return {?}
|
|
119
|
+
*/
|
|
120
|
+
RSStepperComponent.prototype.scrollToStep = /**
|
|
121
|
+
* @private
|
|
122
|
+
* @param {?=} index
|
|
123
|
+
* @return {?}
|
|
124
|
+
*/
|
|
125
|
+
function (index) {
|
|
126
|
+
var _this = this;
|
|
127
|
+
if (!this.menu || !this.menu.nativeElement)
|
|
128
|
+
return;
|
|
129
|
+
/** @type {?} */
|
|
130
|
+
var menuEl = this.menu.nativeElement;
|
|
131
|
+
/** @type {?} */
|
|
132
|
+
var items = menuEl.querySelectorAll(".step");
|
|
133
|
+
/** @type {?} */
|
|
134
|
+
var targetIndex = typeof index === "number"
|
|
135
|
+
? index
|
|
136
|
+
: this.steps.findIndex((/**
|
|
137
|
+
* @param {?} s
|
|
138
|
+
* @return {?}
|
|
139
|
+
*/
|
|
140
|
+
function (s) { return s.step === _this.currentStep; }));
|
|
141
|
+
if (targetIndex < 0 || targetIndex >= items.length)
|
|
142
|
+
return;
|
|
143
|
+
/** @type {?} */
|
|
144
|
+
var targetEl = (/** @type {?} */ (items[targetIndex]));
|
|
145
|
+
//获取相对位置
|
|
146
|
+
/** @type {?} */
|
|
147
|
+
var containerRect = menuEl.getBoundingClientRect();
|
|
148
|
+
/** @type {?} */
|
|
149
|
+
var elementRect = targetEl.getBoundingClientRect();
|
|
150
|
+
// 计算元素相对于容器的位置
|
|
151
|
+
/** @type {?} */
|
|
152
|
+
var elementRelativeLeft = elementRect.left - containerRect.left + menuEl.scrollLeft;
|
|
153
|
+
/** @type {?} */
|
|
154
|
+
var elementWidth = elementRect.width;
|
|
155
|
+
/** @type {?} */
|
|
156
|
+
var containerWidth = menuEl.clientWidth;
|
|
157
|
+
// 计算元素中心点相对于容器的位置
|
|
158
|
+
/** @type {?} */
|
|
159
|
+
var elementCenter = elementRelativeLeft + elementWidth / 2;
|
|
160
|
+
// 目标滚动位置:让元素中心出现在可视区域中心
|
|
161
|
+
/** @type {?} */
|
|
162
|
+
var scrollTarget = elementCenter - containerWidth / 2;
|
|
163
|
+
// 限制在有效滚动范围内
|
|
164
|
+
/** @type {?} */
|
|
165
|
+
var maxScroll = Math.max(0, menuEl.scrollWidth - containerWidth);
|
|
166
|
+
/** @type {?} */
|
|
167
|
+
var finalTarget = Math.max(0, Math.min(scrollTarget, maxScroll));
|
|
168
|
+
menuEl.scrollTo({ left: finalTarget, behavior: "smooth" });
|
|
169
|
+
this.onScroll();
|
|
170
|
+
};
|
|
171
|
+
/**
|
|
172
|
+
* @param {?} event
|
|
173
|
+
* @return {?}
|
|
174
|
+
*/
|
|
175
|
+
RSStepperComponent.prototype.onResize = /**
|
|
176
|
+
* @param {?} event
|
|
177
|
+
* @return {?}
|
|
178
|
+
*/
|
|
179
|
+
function (event) {
|
|
180
|
+
this.checkBtnShow();
|
|
181
|
+
};
|
|
182
|
+
/**
|
|
183
|
+
* @param {?=} init
|
|
184
|
+
* @return {?}
|
|
185
|
+
*/
|
|
186
|
+
RSStepperComponent.prototype.checkBtnShow = /**
|
|
187
|
+
* @param {?=} init
|
|
188
|
+
* @return {?}
|
|
189
|
+
*/
|
|
190
|
+
function (init) {
|
|
191
|
+
var _this = this;
|
|
192
|
+
if (!this.menu || !this.menu.nativeElement)
|
|
193
|
+
return;
|
|
194
|
+
/** @type {?} */
|
|
195
|
+
var menuEl = this.menu.nativeElement;
|
|
196
|
+
var scrollWidth = menuEl.scrollWidth, clientWidth = menuEl.clientWidth;
|
|
197
|
+
// 判断是否需要显示滚动按钮
|
|
198
|
+
/** @type {?} */
|
|
199
|
+
var threshold = clientWidth;
|
|
200
|
+
if (this.containerRefId) {
|
|
201
|
+
/** @type {?} */
|
|
202
|
+
var containerRef = document.getElementById(this.containerRefId);
|
|
203
|
+
if (containerRef) {
|
|
204
|
+
threshold = Math.max(containerRef.offsetWidth * 0.8, 400);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
this.showBtn = scrollWidth > threshold;
|
|
208
|
+
// 初始化时滚动到当前步骤
|
|
209
|
+
if (init) {
|
|
210
|
+
setTimeout((/**
|
|
211
|
+
* @return {?}
|
|
212
|
+
*/
|
|
213
|
+
function () { return _this.scrollToStep(); }), 0);
|
|
214
|
+
}
|
|
215
|
+
this.onScroll();
|
|
216
|
+
this.ref.markForCheck();
|
|
217
|
+
};
|
|
218
|
+
/**
|
|
219
|
+
* @return {?}
|
|
220
|
+
*/
|
|
221
|
+
RSStepperComponent.prototype.scrollLeft = /**
|
|
222
|
+
* @return {?}
|
|
223
|
+
*/
|
|
224
|
+
function () {
|
|
225
|
+
var scrollLeft = this.menu.nativeElement.scrollLeft;
|
|
226
|
+
/** @type {?} */
|
|
227
|
+
var dis = scrollLeft / 100 < 2 ? scrollLeft + 10 : 100;
|
|
228
|
+
this.menu.nativeElement.scrollBy({ left: -dis, behavior: "smooth" });
|
|
229
|
+
};
|
|
230
|
+
/**
|
|
231
|
+
* @return {?}
|
|
232
|
+
*/
|
|
233
|
+
RSStepperComponent.prototype.scrollRight = /**
|
|
234
|
+
* @return {?}
|
|
235
|
+
*/
|
|
236
|
+
function () {
|
|
237
|
+
var _a = this.menu.nativeElement, scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;
|
|
238
|
+
/** @type {?} */
|
|
239
|
+
var rest = scrollWidth - clientWidth - scrollLeft;
|
|
240
|
+
/** @type {?} */
|
|
241
|
+
var dis = rest / 100 < 2 ? rest + 10 : 100;
|
|
242
|
+
this.menu.nativeElement.scrollBy({ left: dis, behavior: "smooth" });
|
|
243
|
+
};
|
|
244
|
+
/**
|
|
245
|
+
* @return {?}
|
|
246
|
+
*/
|
|
247
|
+
RSStepperComponent.prototype.onScroll = /**
|
|
248
|
+
* @return {?}
|
|
249
|
+
*/
|
|
250
|
+
function () {
|
|
251
|
+
var _a = this.menu.nativeElement, scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;
|
|
252
|
+
this.isAtStart = scrollLeft <= 1;
|
|
253
|
+
this.isAtEnd = scrollLeft + clientWidth >= scrollWidth - 1;
|
|
254
|
+
this.ref.markForCheck();
|
|
255
|
+
};
|
|
81
256
|
RSStepperComponent.decorators = [
|
|
82
257
|
{ type: Component, args: [{
|
|
83
258
|
selector: "rs-stepper",
|
|
84
|
-
template: "<div class=\"rs-stepper\">\r\n <div class=\"steps-wrap\">\r\n <ng-container *ngFor=\"let item of steps; let i = index\">\r\n
|
|
85
|
-
styles: [".rs-stepper{font-family:Arial;width:100%;border-bottom:1px solid var(--rs-border-color)}.rs-stepper .steps-wrap{display:flex;align-items:center;justify-content:
|
|
259
|
+
template: "<div class=\"rs-stepper\">\r\n <div class=\"steps-wrap\">\r\n <div\r\n class=\"row-btn\"\r\n [class.hidden]=\"isAtStart || !showBtn\"\r\n (click)=\"scrollLeft()\"\r\n >\r\n <div class=\"hover\">\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"17\"\r\n height=\"16\"\r\n viewBox=\"0 0 17 16\"\r\n fill=\"none\"\r\n >\r\n <path\r\n d=\"M10.4995 3.99955L7.24219 8.24219L10.4995 12.4848\"\r\n stroke=\"#1F7BFF\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"normal\">\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"17\"\r\n height=\"16\"\r\n viewBox=\"0 0 17 16\"\r\n fill=\"none\"\r\n >\r\n <path\r\n d=\"M10.4995 3.99955L7.24219 8.24219L10.4995 12.4848\"\r\n stroke=\"#6B6B6B\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n <div\r\n class=\"steps-content\"\r\n [ngClass]=\"{\r\n leftMask: showBtn && !isAtStart,\r\n rightMask: showBtn && !isAtEnd,\r\n bothMask: showBtn && !isAtStart && showBtn && !isAtEnd\r\n }\"\r\n #menu\r\n (scroll)=\"onScroll()\"\r\n >\r\n <ng-container *ngFor=\"let item of steps; let i = index\">\r\n <div\r\n class=\"step\"\r\n [ngClass]=\"{\r\n done: item.step <= unlockedStep,\r\n active: item.step === currentStep\r\n }\"\r\n (click)=\"onStepClick(item, i)\"\r\n >\r\n <div\r\n class=\"step-label\"\r\n [matTooltip]=\"item.label !== item.displayTitle ? item.label : ''\"\r\n matTooltipPosition=\"above\"\r\n >\r\n {{ item.displayTitle }}\r\n </div>\r\n </div>\r\n <div class=\"step-arrow\" *ngIf=\"i < steps.length - 1\">\r\n <img src=\"/assets/img/step-arrow.svg\" />\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div\r\n class=\"row-btn\"\r\n [class.hidden]=\"isAtEnd || !showBtn\"\r\n (click)=\"scrollRight()\"\r\n >\r\n <div class=\"hover\">\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"17\"\r\n height=\"16\"\r\n viewBox=\"0 0 17 16\"\r\n fill=\"none\"\r\n >\r\n <path\r\n d=\"M7.50045 3.99955L10.7578 8.24219L7.50045 12.4848\"\r\n stroke=\"#1F7BFF\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"normal\">\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"17\"\r\n height=\"16\"\r\n viewBox=\"0 0 17 16\"\r\n fill=\"none\"\r\n >\r\n <path\r\n d=\"M7.50045 3.99955L10.7578 8.24219L7.50045 12.4848\"\r\n stroke=\"#6B6B6B\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
260
|
+
styles: [".rs-stepper{font-family:Arial;width:100%;border-bottom:1px solid var(--rs-border-color)}.rs-stepper .steps-wrap{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 auto}.rs-stepper .steps-wrap .steps-content{display:flex;align-items:center;flex-wrap:nowrap;min-width:0;overflow-x:auto;overflow-y:hidden;gap:8px}.rs-stepper .steps-wrap .steps-content.leftMask{-webkit-mask-image:linear-gradient(90deg,transparent,#fff 10%,#d8d3d3 100%);mask-image:linear-gradient(90deg,transparent,#fff 10%,#d8d3d3 100%)}.rs-stepper .steps-wrap .steps-content.rightMask{-webkit-mask-image:linear-gradient(90deg,#fff 0,#fff 90%,transparent);mask-image:linear-gradient(90deg,#fff 0,#fff 90%,transparent)}.rs-stepper .steps-wrap .steps-content.bothMask{-webkit-mask-image:linear-gradient(90deg,transparent,#fff 10%,#fff 90%,transparent)!important;mask-image:linear-gradient(90deg,transparent,#fff 10%,#fff 90%,transparent)!important}.rs-stepper .steps-wrap .steps-content::-webkit-scrollbar{width:0;height:0}.rs-stepper .steps-wrap .step{flex:0 0 auto}.rs-stepper .steps-wrap .step .step-label{color:var(--rs-labels-color);font-size:12px;font-weight:400;line-height:22px;text-align:center;white-space:nowrap;padding:0 12px 12px;display:flex;align-items:center}.rs-stepper .steps-wrap .step.done{cursor:pointer}.rs-stepper .steps-wrap .step.done .step-label{color:var(--rs-active-labels-color)}.rs-stepper .steps-wrap .step.active .step-label{color:var(--rs-active-labels-color);font-weight:700;border-bottom:1px solid var(--rs-active-labels-color)}.rs-stepper .steps-wrap .step-arrow{flex:0 0 auto;padding:0 12px 12px;display:flex;align-items:center}.rs-stepper .row-btn{margin-bottom:12px;display:flex;width:20px;height:20px;align-items:center;justify-content:center;border-radius:4px;border:1px solid #bdc4ca;flex-shrink:0;cursor:pointer;visibility:visible}.rs-stepper .row-btn .hover{display:none}.rs-stepper .row-btn .normal{display:flex}.rs-stepper .row-btn:hover{background-color:rgba(31,123,255,.04)}.rs-stepper .row-btn:hover .normal{display:none}.rs-stepper .row-btn:hover .hover{display:flex}.rs-stepper .row-btn.hidden{visibility:hidden}"]
|
|
86
261
|
}] }
|
|
87
262
|
];
|
|
88
263
|
/** @nocollapse */
|
|
89
264
|
RSStepperComponent.ctorParameters = function () { return [
|
|
90
|
-
{ type: CommonFunctionService }
|
|
265
|
+
{ type: CommonFunctionService },
|
|
266
|
+
{ type: ChangeDetectorRef }
|
|
91
267
|
]; };
|
|
92
268
|
RSStepperComponent.propDecorators = {
|
|
269
|
+
menu: [{ type: ViewChild, args: ["menu", { static: false },] }],
|
|
93
270
|
steps: [{ type: Input }],
|
|
94
271
|
currentStep: [{ type: Input }],
|
|
95
272
|
stepClick: [{ type: Output }],
|
|
96
|
-
unlockedStep: [{ type: Input }]
|
|
273
|
+
unlockedStep: [{ type: Input }],
|
|
274
|
+
containerRefId: [{ type: Input }],
|
|
275
|
+
onResize: [{ type: HostListener, args: ["window:resize", ["$event"],] }]
|
|
97
276
|
};
|
|
98
277
|
return RSStepperComponent;
|
|
99
278
|
}());
|
|
100
279
|
export { RSStepperComponent };
|
|
101
280
|
if (false) {
|
|
281
|
+
/** @type {?} */
|
|
282
|
+
RSStepperComponent.prototype.menu;
|
|
102
283
|
/** @type {?} */
|
|
103
284
|
RSStepperComponent.prototype.steps;
|
|
104
285
|
/** @type {?} */
|
|
@@ -108,6 +289,19 @@ if (false) {
|
|
|
108
289
|
/** @type {?} */
|
|
109
290
|
RSStepperComponent.prototype.unlockedStep;
|
|
110
291
|
/** @type {?} */
|
|
292
|
+
RSStepperComponent.prototype.containerRefId;
|
|
293
|
+
/** @type {?} */
|
|
294
|
+
RSStepperComponent.prototype.showBtn;
|
|
295
|
+
/** @type {?} */
|
|
296
|
+
RSStepperComponent.prototype.isAtStart;
|
|
297
|
+
/** @type {?} */
|
|
298
|
+
RSStepperComponent.prototype.isAtEnd;
|
|
299
|
+
/** @type {?} */
|
|
111
300
|
RSStepperComponent.prototype.cf;
|
|
301
|
+
/**
|
|
302
|
+
* @type {?}
|
|
303
|
+
* @private
|
|
304
|
+
*/
|
|
305
|
+
RSStepperComponent.prototype.ref;
|
|
112
306
|
}
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9sYXlvdXQvcnMtc3RlcHBlci9pbmRleC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUU5RTtJQVFFLDRCQUFtQixFQUF5QjtRQUF6QixPQUFFLEdBQUYsRUFBRSxDQUF1QjtRQUZuQyxVQUFLLEdBQWUsRUFBRSxDQUFDO1FBQ3ZCLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBRXZCLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBWSxDQUFDO1FBQzFDLGlCQUFZLEdBQVcsQ0FBQyxDQUFDLENBQUMsVUFBVTtJQUZFLENBQUM7Ozs7O0lBSWhELHFDQUFROzs7OztJQUFSO1FBQUEsaUJBS0M7UUFKQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU87Ozs7UUFBQyxVQUFDLElBQUk7WUFDdEIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFJLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLENBQUMsRUFBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQzs7Ozs7SUFFRCx3Q0FBVzs7OztJQUFYLFVBQVksT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsV0FBVyxFQUFFO1lBQ2pFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVELHFCQUFxQjs7Ozs7O0lBQ2IsNkNBQWdCOzs7Ozs7SUFBeEI7UUFDRSxJQUFJLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUN4QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7U0FDdEM7SUFDSCxDQUFDOzs7OztJQUVELHdDQUFXOzs7O0lBQVgsVUFBWSxJQUFjO1FBQ3hCLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ2xDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMzQjtJQUNILENBQUM7O2dCQXJDRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLG95QkFBcUM7O2lCQUV0Qzs7OztnQkFOUSxxQkFBcUI7Ozt3QkFRM0IsS0FBSzs4QkFDTCxLQUFLOzRCQUVMLE1BQU07K0JBQ04sS0FBSzs7SUE0QlIseUJBQUM7Q0FBQSxBQXRDRCxJQXNDQztTQWpDWSxrQkFBa0I7OztJQUM3QixtQ0FBZ0M7O0lBQ2hDLHlDQUFpQzs7SUFFakMsdUNBQW1EOztJQUNuRCwwQ0FBa0M7O0lBRnRCLGdDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIOe7hOS7tuexu1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFN0ZXBJdGVtIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IENvbW1vbkZ1bmN0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2NvbW1vbi1mdW5jdGlvbi5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJycy1zdGVwcGVyXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9pbmRleC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9pbmRleC5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJTU3RlcHBlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgc3RlcHM6IFN0ZXBJdGVtW10gPSBbXTtcclxuICBASW5wdXQoKSBjdXJyZW50U3RlcDogbnVtYmVyID0gMDtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgY2Y6IENvbW1vbkZ1bmN0aW9uU2VydmljZSkge31cclxuICBAT3V0cHV0KCkgc3RlcENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxTdGVwSXRlbT4oKTtcclxuICBASW5wdXQoKSB1bmxvY2tlZFN0ZXA6IG51bWJlciA9IDA7IC8v5bey6Kej6ZSB55qE5pyA5aSn5q2l6aqkXHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zdGVwcy5mb3JFYWNoKChzdGVwKSA9PiB7XHJcbiAgICAgIHN0ZXAuZGlzcGxheVRpdGxlID0gdGhpcy5jZi5zZXRNaWRkbGVFbGxpcHNpcyhzdGVwLmxhYmVsLCAxMzIsIDEyKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zeW5jVW5sb2NrZWRTdGVwKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBpZiAoY2hhbmdlc1tcImN1cnJlbnRTdGVwXCJdICYmICFjaGFuZ2VzW1wiY3VycmVudFN0ZXBcIl0uZmlyc3RDaGFuZ2UpIHtcclxuICAgICAgdGhpcy5zeW5jVW5sb2NrZWRTdGVwKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyDlkIzmraV1bmxvY2tlZFN0ZXDnmoTmnIDlpKflgLxcclxuICBwcml2YXRlIHN5bmNVbmxvY2tlZFN0ZXAoKSB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50U3RlcCA+IHRoaXMudW5sb2NrZWRTdGVwKSB7XHJcbiAgICAgIHRoaXMudW5sb2NrZWRTdGVwID0gdGhpcy5jdXJyZW50U3RlcDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU3RlcENsaWNrKHN0ZXA6IFN0ZXBJdGVtKSB7XHJcbiAgICBpZiAoc3RlcC5zdGVwIDw9IHRoaXMudW5sb2NrZWRTdGVwKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudFN0ZXAgPSBzdGVwLnN0ZXA7XHJcbiAgICAgIHRoaXMuc3RlcENsaWNrLmVtaXQoc3RlcCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
307
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9sYXlvdXQvcnMtc3RlcHBlci9pbmRleC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixpQkFBaUIsR0FFbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFOUU7SUFTRSw0QkFDUyxFQUF5QixFQUN4QixHQUFzQjtRQUR2QixPQUFFLEdBQUYsRUFBRSxDQUF1QjtRQUN4QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUp2QixVQUFLLEdBQWUsRUFBRSxDQUFDO1FBQ3ZCLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBS3ZCLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBWSxDQUFDO1FBQzFDLGlCQUFZLEdBQVcsQ0FBQyxDQUFDLENBQUMsVUFBVTtRQTJIN0MsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLFlBQU8sR0FBRyxLQUFLLENBQUM7SUEvSGIsQ0FBQzs7OztJQUtKLHFDQUFROzs7SUFBUjtRQUFBLGlCQUtDO1FBSkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPOzs7O1FBQUMsVUFBQyxJQUFJO1lBQ3RCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNyRSxDQUFDLEVBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7Ozs7SUFFRCw0Q0FBZTs7O0lBQWY7UUFBQSxp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QyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDOztnQkFqSkYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QiwrOUZBQXFDOztpQkFFdEM7Ozs7Z0JBTlEscUJBQXFCO2dCQUo1QixpQkFBaUI7Ozt1QkFZaEIsU0FBUyxTQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7d0JBQ25DLEtBQUs7OEJBQ0wsS0FBSzs0QkFLTCxNQUFNOytCQUNOLEtBQUs7aUNBQ0wsS0FBSzsyQkFnRkwsWUFBWSxTQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7SUFtRDNDLHlCQUFDO0NBQUEsQUFsSkQsSUFrSkM7U0E3SVksa0JBQWtCOzs7SUFDN0Isa0NBQXdEOztJQUN4RCxtQ0FBZ0M7O0lBQ2hDLHlDQUFpQzs7SUFLakMsdUNBQW1EOztJQUNuRCwwQ0FBa0M7O0lBQ2xDLDRDQUF3Qjs7SUEwSHhCLHFDQUFnQjs7SUFDaEIsdUNBQWlCOztJQUNqQixxQ0FBZ0I7O0lBaklkLGdDQUFnQzs7Ozs7SUFDaEMsaUNBQThCIiwic291cmNlc0NvbnRlbnQiOlsiLy8g57uE5Lu257G7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgU3RlcEl0ZW0gfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgQ29tbW9uRnVuY3Rpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvY29tbW9uLWZ1bmN0aW9uLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcInJzLXN0ZXBwZXJcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2luZGV4LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2luZGV4LmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUlNTdGVwcGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBAVmlld0NoaWxkKFwibWVudVwiLCB7IHN0YXRpYzogZmFsc2UgfSkgbWVudSE6IEVsZW1lbnRSZWY7XHJcbiAgQElucHV0KCkgc3RlcHM6IFN0ZXBJdGVtW10gPSBbXTtcclxuICBASW5wdXQoKSBjdXJyZW50U3RlcDogbnVtYmVyID0gMDtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjZjogQ29tbW9uRnVuY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7fVxyXG4gIEBPdXRwdXQoKSBzdGVwQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFN0ZXBJdGVtPigpO1xyXG4gIEBJbnB1dCgpIHVubG9ja2VkU3RlcDogbnVtYmVyID0gMDsgLy/lt7Lop6PplIHnmoTmnIDlpKfmraXpqqRcclxuICBASW5wdXQoKSBjb250YWluZXJSZWZJZDtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnN0ZXBzLmZvckVhY2goKHN0ZXApID0+IHtcclxuICAgICAgc3RlcC5kaXNwbGF5VGl0bGUgPSB0aGlzLmNmLnNldE1pZGRsZUVsbGlwc2lzKHN0ZXAubGFiZWwsIDEzMiwgMTIpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnN5bmNVbmxvY2tlZFN0ZXAoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jaGVja0J0blNob3codHJ1ZSkpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKGNoYW5nZXNbXCJjdXJyZW50U3RlcFwiXSAmJiAhY2hhbmdlc1tcImN1cnJlbnRTdGVwXCJdLmZpcnN0Q2hhbmdlKSB7XHJcbiAgICAgIHRoaXMuc3luY1VubG9ja2VkU3RlcCgpO1xyXG4gICAgICAvLyDlvZPlpJbpg6jkvKDlhaXnmoQgY3VycmVudFN0ZXAg5Y+Y5YyW5pe277yM5rua5Yqo5Yiw5a+55bqU5q2l6aqkXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zY3JvbGxUb1N0ZXAoKSk7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIChjaGFuZ2VzW1wic3RlcHNcIl0gJiYgY2hhbmdlc1tcInN0ZXBzXCJdLmN1cnJlbnRWYWx1ZSkgfHxcclxuICAgICAgY2hhbmdlc1tcImN1cnJlbnRTdGVwXCJdXHJcbiAgICApIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNoZWNrQnRuU2hvdygpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIOWQjOatpXVubG9ja2VkU3RlcOeahOacgOWkp+WAvFxyXG4gIHByaXZhdGUgc3luY1VubG9ja2VkU3RlcCgpIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRTdGVwID4gdGhpcy51bmxvY2tlZFN0ZXApIHtcclxuICAgICAgdGhpcy51bmxvY2tlZFN0ZXAgPSB0aGlzLmN1cnJlbnRTdGVwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25TdGVwQ2xpY2soc3RlcDogU3RlcEl0ZW0sIGluZGV4PzogbnVtYmVyKSB7XHJcbiAgICBpZiAoc3RlcC5zdGVwIDw9IHRoaXMudW5sb2NrZWRTdGVwKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudFN0ZXAgPSBzdGVwLnN0ZXA7XHJcbiAgICAgIHRoaXMuc3RlcENsaWNrLmVtaXQoc3RlcCk7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zY3JvbGxUb1N0ZXAoaW5kZXgpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2Nyb2xsVG9TdGVwKGluZGV4PzogbnVtYmVyKSB7XHJcbiAgICBpZiAoIXRoaXMubWVudSB8fCAhdGhpcy5tZW51Lm5hdGl2ZUVsZW1lbnQpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBtZW51RWwgPSB0aGlzLm1lbnUubmF0aXZlRWxlbWVudDtcclxuICAgIGNvbnN0IGl0ZW1zID0gbWVudUVsLnF1ZXJ5U2VsZWN0b3JBbGwoXCIuc3RlcFwiKTtcclxuICAgIGNvbnN0IHRhcmdldEluZGV4ID1cclxuICAgICAgdHlwZW9mIGluZGV4ID09PSBcIm51bWJlclwiXHJcbiAgICAgICAgPyBpbmRleFxyXG4gICAgICAgIDogdGhpcy5zdGVwcy5maW5kSW5kZXgoKHMpID0+IHMuc3RlcCA9PT0gdGhpcy5jdXJyZW50U3RlcCk7XHJcblxyXG4gICAgaWYgKHRhcmdldEluZGV4IDwgMCB8fCB0YXJnZXRJbmRleCA+PSBpdGVtcy5sZW5ndGgpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCB0YXJnZXRFbCA9IGl0ZW1zW3RhcmdldEluZGV4XSBhcyBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAvL+iOt+WPluebuOWvueS9jee9rlxyXG4gICAgY29uc3QgY29udGFpbmVyUmVjdCA9IG1lbnVFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGNvbnN0IGVsZW1lbnRSZWN0ID0gdGFyZ2V0RWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcblxyXG4gICAgLy8g6K6h566X5YWD57Sg55u45a+55LqO5a655Zmo55qE5L2N572uXHJcbiAgICBjb25zdCBlbGVtZW50UmVsYXRpdmVMZWZ0ID1cclxuICAgICAgZWxlbWVudFJlY3QubGVmdCAtIGNvbnRhaW5lclJlY3QubGVmdCArIG1lbnVFbC5zY3JvbGxMZWZ0O1xyXG4gICAgY29uc3QgZWxlbWVudFdpZHRoID0gZWxlbWVudFJlY3Qud2lkdGg7XHJcbiAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IG1lbnVFbC5jbGllbnRXaWR0aDtcclxuXHJcbiAgICAvLyDorqHnrpflhYPntKDkuK3lv4Pngrnnm7jlr7nkuo7lrrnlmajnmoTkvY3nva5cclxuICAgIGNvbnN0IGVsZW1lbnRDZW50ZXIgPSBlbGVtZW50UmVsYXRpdmVMZWZ0ICsgZWxlbWVudFdpZHRoIC8gMjtcclxuXHJcbiAgICAvLyDnm67moIfmu5rliqjkvY3nva7vvJrorqnlhYPntKDkuK3lv4Plh7rnjrDlnKjlj6/op4bljLrln5/kuK3lv4NcclxuICAgIGNvbnN0IHNjcm9sbFRhcmdldCA9IGVsZW1lbnRDZW50ZXIgLSBjb250YWluZXJXaWR0aCAvIDI7XHJcblxyXG4gICAgLy8g6ZmQ5Yi25Zyo5pyJ5pWI5rua5Yqo6IyD5Zu05YaFXHJcbiAgICBjb25zdCBtYXhTY3JvbGwgPSBNYXRoLm1heCgwLCBtZW51RWwuc2Nyb2xsV2lkdGggLSBjb250YWluZXJXaWR0aCk7XHJcbiAgICBjb25zdCBmaW5hbFRhcmdldCA9IE1hdGgubWF4KDAsIE1hdGgubWluKHNjcm9sbFRhcmdldCwgbWF4U2Nyb2xsKSk7XHJcblxyXG4gICAgbWVudUVsLnNjcm9sbFRvKHsgbGVmdDogZmluYWxUYXJnZXQsIGJlaGF2aW9yOiBcInNtb290aFwiIH0pO1xyXG4gICAgdGhpcy5vblNjcm9sbCgpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzpyZXNpemVcIiwgW1wiJGV2ZW50XCJdKVxyXG4gIG9uUmVzaXplKGV2ZW50OiBFdmVudCkge1xyXG4gICAgdGhpcy5jaGVja0J0blNob3coKTtcclxuICB9XHJcblxyXG4gIGNoZWNrQnRuU2hvdyhpbml0PzogYm9vbGVhbikge1xyXG4gICAgaWYgKCF0aGlzLm1lbnUgfHwgIXRoaXMubWVudS5uYXRpdmVFbGVtZW50KSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgbWVudUVsID0gdGhpcy5tZW51Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBjb25zdCB7IHNjcm9sbFdpZHRoLCBjbGllbnRXaWR0aCB9ID0gbWVudUVsO1xyXG5cclxuICAgIC8vIOWIpOaWreaYr+WQpumcgOimgeaYvuekuua7muWKqOaMiemSrlxyXG4gICAgbGV0IHRocmVzaG9sZCA9IGNsaWVudFdpZHRoO1xyXG4gICAgaWYgKHRoaXMuY29udGFpbmVyUmVmSWQpIHtcclxuICAgICAgY29uc3QgY29udGFpbmVyUmVmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5jb250YWluZXJSZWZJZCk7XHJcbiAgICAgIGlmIChjb250YWluZXJSZWYpIHtcclxuICAgICAgICB0aHJlc2hvbGQgPSBNYXRoLm1heChjb250YWluZXJSZWYub2Zmc2V0V2lkdGggKiAwLjgsIDQwMCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNob3dCdG4gPSBzY3JvbGxXaWR0aCA+IHRocmVzaG9sZDtcclxuXHJcbiAgICAvLyDliJ3lp4vljJbml7bmu5rliqjliLDlvZPliY3mraXpqqRcclxuICAgIGlmIChpbml0KSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zY3JvbGxUb1N0ZXAoKSwgMCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5vblNjcm9sbCgpO1xyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG4gIHNjcm9sbExlZnQoKSB7XHJcbiAgICBjb25zdCB7IHNjcm9sbExlZnQgfSA9IHRoaXMubWVudS5uYXRpdmVFbGVtZW50O1xyXG4gICAgY29uc3QgZGlzID0gc2Nyb2xsTGVmdCAvIDEwMCA8IDIgPyBzY3JvbGxMZWZ0ICsgMTAgOiAxMDA7XHJcbiAgICB0aGlzLm1lbnUubmF0aXZlRWxlbWVudC5zY3JvbGxCeSh7IGxlZnQ6IC1kaXMsIGJlaGF2aW9yOiBcInNtb290aFwiIH0pO1xyXG4gIH1cclxuICBzY3JvbGxSaWdodCgpIHtcclxuICAgIGNvbnN0IHsgc2Nyb2xsTGVmdCwgc2Nyb2xsV2lkdGgsIGNsaWVudFdpZHRoIH0gPSB0aGlzLm1lbnUubmF0aXZlRWxlbWVudDtcclxuICAgIGNvbnN0IHJlc3QgPSBzY3JvbGxXaWR0aCAtIGNsaWVudFdpZHRoIC0gc2Nyb2xsTGVmdDtcclxuICAgIGNvbnN0IGRpcyA9IHJlc3QgLyAxMDAgPCAyID8gcmVzdCArIDEwIDogMTAwO1xyXG4gICAgdGhpcy5tZW51Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsQnkoeyBsZWZ0OiBkaXMsIGJlaGF2aW9yOiBcInNtb290aFwiIH0pO1xyXG4gIH1cclxuXHJcbiAgc2hvd0J0biA9IGZhbHNlO1xyXG4gIGlzQXRTdGFydCA9IHRydWU7XHJcbiAgaXNBdEVuZCA9IGZhbHNlO1xyXG4gIG9uU2Nyb2xsKCkge1xyXG4gICAgY29uc3QgeyBzY3JvbGxMZWZ0LCBzY3JvbGxXaWR0aCwgY2xpZW50V2lkdGggfSA9IHRoaXMubWVudS5uYXRpdmVFbGVtZW50O1xyXG4gICAgdGhpcy5pc0F0U3RhcnQgPSBzY3JvbGxMZWZ0IDw9IDE7XHJcbiAgICB0aGlzLmlzQXRFbmQgPSBzY3JvbGxMZWZ0ICsgY2xpZW50V2lkdGggPj0gc2Nyb2xsV2lkdGggLSAxO1xyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|