@porscheinformatik/clr-addons 10.4.1 → 10.4.2
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/clr-addons.umd.js +19 -5
- package/bundles/clr-addons.umd.js.map +1 -1
- package/bundles/clr-addons.umd.min.js +1 -1
- package/bundles/clr-addons.umd.min.js.map +1 -1
- package/clr-addons.metadata.json +1 -1
- package/esm2015/numericfield/numeric-field.js +16 -6
- package/esm2015/numericfield/numeric-field.ngsummary.json +1 -1
- package/fesm2015/clr-addons.js +15 -5
- package/fesm2015/clr-addons.js.map +1 -1
- package/numericfield/numeric-field.d.ts +2 -1
- package/package.json +1 -1
- package/styles/clr-addons-phs.css +0 -2
- package/styles/clr-addons-phs.css.map +1 -1
- package/styles/clr-addons-phs.min.css +1 -1
- package/styles/clr-addons-phs.min.css.map +1 -1
|
@@ -21,11 +21,11 @@ export class ClrNumericField {
|
|
|
21
21
|
this.autofillDecimals = false;
|
|
22
22
|
this.decimalSeparator = ',';
|
|
23
23
|
this.groupingSeparator = '.';
|
|
24
|
-
this.unit = null;
|
|
25
24
|
this.unitPosition = 'right';
|
|
26
25
|
this.numericValueChanged = new EventEmitter();
|
|
27
26
|
this.displayValue = '';
|
|
28
27
|
this.originalValue = NaN;
|
|
28
|
+
this._unit = null;
|
|
29
29
|
this.allowedKeys = new Set(NUMBERS);
|
|
30
30
|
/* Control Values Accessor Stuff below */
|
|
31
31
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
@@ -40,6 +40,16 @@ export class ClrNumericField {
|
|
|
40
40
|
this.handleInputChanged();
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
+
set unit(value) {
|
|
44
|
+
if (value != this._unit) {
|
|
45
|
+
this._unit = value;
|
|
46
|
+
if (this.unitSpan != null) {
|
|
47
|
+
this.unitSpan.innerHTML = '';
|
|
48
|
+
const newUnitText = this.renderer.createText(value);
|
|
49
|
+
this.renderer.appendChild(this.unitSpan, newUnitText);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
43
53
|
registerOnChange(fn) {
|
|
44
54
|
this.onChange = fn;
|
|
45
55
|
}
|
|
@@ -257,7 +267,7 @@ export class ClrNumericField {
|
|
|
257
267
|
injectUnitSymbol() {
|
|
258
268
|
// Need to inject the unit symbol when the input element width is set to its actual value,
|
|
259
269
|
// otherwise the icon wont show in the correct position
|
|
260
|
-
if (!!this.
|
|
270
|
+
if (!!this._unit && !this.unitSpan && this.inputEl.nativeElement.offsetWidth !== 0) {
|
|
261
271
|
// Get the input wrapper and apply necessary styles
|
|
262
272
|
const inputWrapper = this.inputEl.nativeElement.parentNode;
|
|
263
273
|
this.renderer.addClass(inputWrapper, 'numeric-input-wrapper');
|
|
@@ -265,7 +275,7 @@ export class ClrNumericField {
|
|
|
265
275
|
if (!this.unitSpan) {
|
|
266
276
|
this.unitSpan = this.renderer.createElement('span');
|
|
267
277
|
this.renderer.addClass(this.unitSpan, 'unit');
|
|
268
|
-
const unitSymbol = this.renderer.createText(this.
|
|
278
|
+
const unitSymbol = this.renderer.createText(this._unit);
|
|
269
279
|
this.renderer.appendChild(this.unitSpan, unitSymbol);
|
|
270
280
|
this.renderer.appendChild(inputWrapper, this.unitSpan);
|
|
271
281
|
}
|
|
@@ -329,9 +339,9 @@ ClrNumericField.propDecorators = {
|
|
|
329
339
|
autofillDecimals: [{ type: Input, args: ['clrAutofillDecimals',] }],
|
|
330
340
|
decimalSeparator: [{ type: Input, args: ['clrDecimalSep',] }],
|
|
331
341
|
groupingSeparator: [{ type: Input, args: ['clrGroupingSep',] }],
|
|
332
|
-
unit: [{ type: Input, args: ['clrUnit',] }],
|
|
333
342
|
unitPosition: [{ type: Input, args: ['clrUnitPosition',] }],
|
|
334
343
|
numericValueChanged: [{ type: Output, args: ['clrNumericValueChange',] }],
|
|
335
|
-
numericValue: [{ type: Input, args: ['clrNumericValue',] }]
|
|
344
|
+
numericValue: [{ type: Input, args: ['clrNumericValue',] }],
|
|
345
|
+
unit: [{ type: Input, args: ['clrUnit',] }]
|
|
336
346
|
};
|
|
337
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbHItYWRkb25zL251bWVyaWNmaWVsZC9udW1lcmljLWZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUM7QUFDckIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQztBQUN2QixNQUFNLDZCQUE2QixHQUFHLEVBQUUsQ0FBQztBQUN6QyxNQUFNLGtCQUFrQixHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2xELE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztBQWtCNUUsTUFBTSxPQUFPLGVBQWU7SUFvRDFCLFlBQW9CLFFBQW1CLEVBQVUsT0FBbUI7UUFBaEQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFVLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFuRDdDLGNBQVMsR0FBRyxPQUFPLENBQUM7UUFDaEIsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFDZCxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUMvQixxQkFBZ0IsR0FBRyxHQUFH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QUM7d0JBQzlDLEtBQUssRUFBRSxJQUFJO3FCQUNaO2lCQUNGO2FBQ0Y7OztZQTFCQyxTQUFTO1lBUFQsVUFBVTs7O3dCQW1DVCxLQUFLLFNBQUMsY0FBYzs0QkFDcEIsS0FBSyxTQUFDLGtCQUFrQjt5QkFDeEIsS0FBSyxTQUFDLHNCQUFzQjsrQkFDNUIsS0FBSyxTQUFDLHFCQUFxQjsrQkFDM0IsS0FBSyxTQUFDLGVBQWU7Z0NBQ3JCLEtBQUssU0FBQyxnQkFBZ0I7bUJBQ3RCLEtBQUssU0FBQyxTQUFTOzJCQUNmLEtBQUssU0FBQyxpQkFBaUI7a0NBQ3ZCLE1BQU0sU0FBQyx1QkFBdUI7MkJBUzlCLEtBQUssU0FBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjEgUG9yc2NoZSBJbmZvcm1hdGlrLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQge1xuICBBZnRlclZpZXdDaGVja2VkLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmNvbnN0IE5FR0FUSVZFID0gJy0nO1xuY29uc3QgQkFDS19LRVlDT0RFID0gODtcbmNvbnN0IERFTF9LRVlDT0RFID0gNDY7XG5jb25zdCBDT05UUk9MX0tFWUNPREVTX1VQUEVSX0JPUkRFUiA9IDQ2O1xuY29uc3QgT1RIRVJfQ09OVFJPTF9LRVlTID0gbmV3IFNldChbMjI0LCA5MSwgOTNdKTtcbmNvbnN0IE5VTUJFUlMgPSBuZXcgU2V0KFsnMCcsICcxJywgJzInLCAnMycsICc0JywgJzUnLCAnNicsICc3JywgJzgnLCAnOSddKTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2Nsck51bWVyaWNdJyxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MudGV4dC1yaWdodF0nOiAndGV4dEFsaWduID09PSBcInJpZ2h0XCInLFxuICAgICcoY2hhbmdlKSc6ICdvbkNoYW5nZShnZXRWYWx1ZUZvckZvcm1Db250cm9sKCkpJyxcbiAgICAnKGlucHV0KSc6ICdvbkNoYW5nZShnZXRWYWx1ZUZvckZvcm1Db250cm9sKCkpJyxcbiAgICAnKGJsdXIpJzogJ29uVG91Y2hlZCgpJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDbHJOdW1lcmljRmllbGQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyTnVtZXJpY0ZpZWxkIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0NoZWNrZWQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCdjbHJUZXh0QWxpZ24nKSB0ZXh0QWxpZ24gPSAncmlnaHQnO1xuICBASW5wdXQoJ2NsckRlY2ltYWxQbGFjZXMnKSBkZWNpbWFsUGxhY2VzID0gMjtcbiAgQElucHV0KCdjbHJSb3VuZERpc3BsYXlWYWx1ZScpIHJvdW5kVmFsdWUgPSBmYWxzZTtcbiAgQElucHV0KCdjbHJBdXRvZmlsbERlY2ltYWxzJykgYXV0b2ZpbGxEZWNpbWFscyA9IGZhbHNlO1xuICBASW5wdXQoJ2NsckRlY2ltYWxTZXAnKSBkZWNpbWFsU2VwYXJhdG9yID0gJywnO1xuICBASW5wdXQoJ2Nsckdyb3VwaW5nU2VwJykgZ3JvdXBpbmdTZXBhcmF0b3IgPSAnLic7XG4gIEBJbnB1dCgnY2xyVW5pdCcpIHVuaXQ6IHN0cmluZyA9IG51bGw7XG4gIEBJbnB1dCgnY2xyVW5pdFBvc2l0aW9uJykgdW5pdFBvc2l0aW9uID0gJ3JpZ2h0JztcbiAgQE91dHB1dCgnY2xyTnVtZXJpY1ZhbHVlQ2hhbmdlJykgbnVtZXJpY1ZhbHVlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIHByaXZhdGUgZGlzcGxheVZhbHVlID0gJyc7XG4gIHByaXZhdGUgb3JpZ2luYWxWYWx1ZSA9IE5hTjtcbiAgcHJpdmF0ZSBfbnVtZXJpY1ZhbHVlOiBudW1iZXI7XG4gIHByaXZhdGUgaW5wdXRDaGFuZ2VMaXN0ZW5lcjogKCkgPT4gdm9pZDtcbiAgcHJpdmF0ZSBrZXl1cExpc3RlbmVyOiAoKSA9PiB2b2lkO1xuICBwcml2YXRlIGtleWRvd25MaXN0ZW5lcjogKCkgPT4gdm9pZDtcblxuICBASW5wdXQoJ2Nsck51bWVyaWNWYWx1ZScpXG4gIHNldCBudW1lcmljVmFsdWUodmFsdWU6IG51bWJlcikge1xuICAgIGlmICh0aGlzLl9udW1lcmljVmFsdWUgIT09IHZhbHVlICYmICEoaXNOYU4odGhpcy5fbnVtZXJpY1ZhbHVlKSAmJiAoaXNOYU4odmFsdWUpIHx8IHZhbHVlID09PSBudWxsKSkpIHtcbiAgICAgIHRoaXMub3JpZ2luYWxWYWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5fbnVtZXJpY1ZhbHVlID0gdGhpcy5yb3VuZE9yVHJ1bmNhdGUodmFsdWUpO1xuICAgICAgdGhpcy5oYW5kbGVJbnB1dENoYW5nZWQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVuaXRTcGFuOiBIVE1MU3BhbkVsZW1lbnQ7XG4gIHByaXZhdGUgYWxsb3dlZEtleXMgPSBuZXcgU2V0KE5VTUJFUlMpO1xuXG4gIC8qIENvbnRyb2wgVmFsdWVzIEFjY2Vzc29yIFN0dWZmIGJlbG93ICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgb25DaGFuZ2UgPSAoXzogbnVtYmVyKTogdm9pZCA9PiB7fTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBvblRvdWNoZWQgPSAoKTogdm9pZCA9PiB7fTtcblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogbnVtYmVyKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudCwgJ2Rpc2FibGVkJywgaXNEaXNhYmxlZCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLm51bWVyaWNWYWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIGlucHV0RWw6IEVsZW1lbnRSZWYpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLyogbmVlZHMgdG8gYmUgcGFyc2VkIGFzIG51bWJlciBleHBsaWNpdGx5IGFzIGl0IGNvbWVzIGFzIHN0cmluZyBmcm9tIHVzZXIgaW5wdXQgKi9cbiAgICB0aGlzLmRlY2ltYWxQbGFjZXMgPSBOdW1iZXIucGFyc2VJbnQodGhpcy5kZWNpbWFsUGxhY2VzLnRvU3RyaW5nKCksIDEwKTtcbiAgICB0aGlzLmFsbG93ZWRLZXlzLmFkZChORUdBVElWRSk7XG4gICAgdGhpcy5hbGxvd2VkS2V5cy5hZGQodGhpcy5kZWNpbWFsU2VwYXJhdG9yKTtcblxuICAgIHRoaXMuaW5wdXRDaGFuZ2VMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LCAnYmx1cicsIGV2ZW50ID0+IHtcbiAgICAgIHRoaXMuZm9ybWF0SW5wdXQoZXZlbnQudGFyZ2V0LCB0cnVlKTtcbiAgICB9KTtcblxuICAgIHRoaXMua2V5dXBMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LCAna2V5dXAnLCBldmVudCA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIGV2ZW50LmtleUNvZGUgPT09IEJBQ0tfS0VZQ09ERSB8fFxuICAgICAgICAoZXZlbnQua2V5Q29kZSA+PSBDT05UUk9MX0tFWUNPREVTX1VQUEVSX0JPUkRFUiAmJiAhT1RIRVJfQ09OVFJPTF9LRVlTLmhhcyhldmVudC5rZXlDb2RlKSlcbiAgICAgICkge1xuICAgICAgICB0aGlzLmZvcm1hdElucHV0KGV2ZW50LnRhcmdldCwgZmFsc2UpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5rZXlkb3duTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudCwgJ2tleWRvd24nLCBldmVudCA9PiB7XG4gICAgICBjb25zdCB2YWx1ZTogc3RyaW5nID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLmFsbG93ZWRLZXlzLmhhcyhldmVudC5rZXkpIHx8XG4gICAgICAgIChldmVudC5rZXlDb2RlIDw9IENPTlRST0xfS0VZQ09ERVNfVVBQRVJfQk9SREVSICYmIGV2ZW50LmtleUNvZGUgPiAwKSB8fFxuICAgICAgICBldmVudC5tZXRhS2V5IHx8XG4gICAgICAgIGV2ZW50LmN0cmxLZXkgfHxcbiAgICAgICAgZXZlbnQuYWx0S2V5XG4gICAgICApIHtcbiAgICAgICAgLyogYWxsb3cgbmVnYXRpdmUgc2lnbiBvbmx5IGFzIGZpcnN0IGNoYXJhY3RlciBhbmQgbm9uZSBleGlzdHMgb3V0c2lkZSBvZiB0ZXh0IHNlbGVjdGlvbiAqL1xuICAgICAgICBjb25zdCBpbmRleE5lZ2F0aXZlU2lnbiA9IHZhbHVlLmluZGV4T2YoTkVHQVRJVkUpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZXZlbnQua2V5ID09PSBORUdBVElWRSAmJlxuICAgICAgICAgIChldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQgPiAwIHx8IGluZGV4TmVnYXRpdmVTaWduID4gLTEpICYmXG4gICAgICAgICAgKGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydCA9PT0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvbkVuZCB8fFxuICAgICAgICAgICAgIShpbmRleE5lZ2F0aXZlU2lnbiA+PSBldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQgJiYgaW5kZXhOZWdhdGl2ZVNpZ24gPD0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvbkVuZCkpXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIG5vIGR1cGxpY2F0ZSBkZWNpbWFsIHNlcGFyYXRvcnMgKi9cbiAgICAgICAgY29uc3QgaW5kZXhEZWNpbWFsU2VwID0gdmFsdWUuaW5kZXhPZih0aGlzLmRlY2ltYWxTZXBhcmF0b3IpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZXZlbnQua2V5ID09PSB0aGlzLmRlY2ltYWxTZXBhcmF0b3IgJiZcbiAgICAgICAgICAoaW5kZXhEZWNpbWFsU2VwID4gLTEgfHwgdGhpcy5kZWNpbWFsUGxhY2VzID09PSAwKSAmJlxuICAgICAgICAgIChldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQgPT09IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25FbmQgfHxcbiAgICAgICAgICAgICEoaW5kZXhEZWNpbWFsU2VwID49IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydCAmJiBpbmRleERlY2ltYWxTZXAgPD0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvbkVuZCkpXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHByZXZlbnQgdG9vIG1hbnkgZGVjaW1hbCBwbGFjZXMgKi9cbiAgICAgICAgaWYgKFxuICAgICAgICAgIE5VTUJFUlMuaGFzKGV2ZW50LmtleSkgJiZcbiAgICAgICAgICBpbmRleERlY2ltYWxTZXAgPiAtMSAmJlxuICAgICAgICAgIGluZGV4RGVjaW1hbFNlcCA8IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydCAmJlxuICAgICAgICAgIGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydCA9PT0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvbkVuZCAmJlxuICAgICAgICAgIHZhbHVlLmxlbmd0aCA+IGluZGV4RGVjaW1hbFNlcCArIHRoaXMuZGVjaW1hbFBsYWNlc1xuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvKiB3aGVuIGRlbGV0aW5nIHRob3VzYW5kIHNlcGFyYXRvciwgcmVtb3ZlIHRoZSBkaWdpdCBiZWZvcmUgb3IgYWZ0ZXIgaXQgKi9cbiAgICAgICAgY29uc3QgY3Vyc29yU3RhcnQgPSBldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQ7XG5cbiAgICAgICAgaWYgKGN1cnNvclN0YXJ0ID09PSBldmVudC50YXJnZXQuc2VsZWN0aW9uRW5kKSB7XG4gICAgICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IEJBQ0tfS0VZQ09ERSAmJiB2YWx1ZS5zdWJzdHIoY3Vyc29yU3RhcnQgLSAxLCAxKSA9PT0gdGhpcy5ncm91cGluZ1NlcGFyYXRvcikge1xuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gdmFsdWUuc3Vic3RyaW5nKDAsIGN1cnNvclN0YXJ0IC0gMikgKyB2YWx1ZS5zdWJzdHJpbmcoY3Vyc29yU3RhcnQgLSAxLCB2YWx1ZS5sZW5ndGgpO1xuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LnNlbGVjdGlvblN0YXJ0ID0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvbkVuZCA9IGN1cnNvclN0YXJ0IC0gMTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleUNvZGUgPT09IERFTF9LRVlDT0RFICYmIHZhbHVlLnN1YnN0cihjdXJzb3JTdGFydCwgMSkgPT09IHRoaXMuZ3JvdXBpbmdTZXBhcmF0b3IpIHtcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IHZhbHVlLnN1YnN0cmluZygwLCBjdXJzb3JTdGFydCArIDEpICsgdmFsdWUuc3Vic3RyaW5nKGN1cnNvclN0YXJ0ICsgMiwgdmFsdWUubGVuZ3RoKTtcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydCA9IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25FbmQgPSBjdXJzb3JTdGFydCArIDE7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMub3JpZ2luYWxWYWx1ZSA9IE5hTjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXRhY2hMaXN0ZW5lcigpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuaW5qZWN0VW5pdFN5bWJvbCgpO1xuICB9XG5cbiAgaGFuZGxlSW5wdXRDaGFuZ2VkKCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlSW5wdXQoXG4gICAgICB0aGlzLmZvcm1hdE51bWJlcih0aGlzLl9udW1lcmljVmFsdWUudG9TdHJpbmcoKS5yZXBsYWNlKG5ldyBSZWdFeHAoJ1suXScsICdnJyksIHRoaXMuZGVjaW1hbFNlcGFyYXRvciksIHRydWUpLFxuICAgICAgdHJ1ZVxuICAgICk7XG4gIH1cblxuICBmb3JtYXRJbnB1dChlbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50LCBmaW5hbEZvcm1hdHRpbmc6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBjdXJzb3JQb3MgPSBlbGVtZW50LnNlbGVjdGlvblN0YXJ0O1xuICAgIGNvbnN0IGxlbmd0aCA9IGVsZW1lbnQudmFsdWUubGVuZ3RoO1xuICAgIGNvbnN0IHNldEN1cnNvciA9IHRoaXMuZGlzcGxheVZhbHVlICE9PSBlbGVtZW50LnZhbHVlO1xuICAgIHRoaXMudXBkYXRlSW5wdXQodGhpcy5mb3JtYXROdW1iZXIoZWxlbWVudC52YWx1ZSwgZmluYWxGb3JtYXR0aW5nKSwgZmFsc2UpO1xuICAgIGlmIChzZXRDdXJzb3IpIHtcbiAgICAgIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPSBlbGVtZW50LnNlbGVjdGlvbkVuZCA9IE1hdGgubWF4KGN1cnNvclBvcyArIGVsZW1lbnQudmFsdWUubGVuZ3RoIC0gbGVuZ3RoLCAwKTtcbiAgICB9XG4gIH1cblxuICBmb3JtYXROdW1iZXIodmFsdWU6IHN0cmluZywgZmluYWxGb3JtYXR0aW5nOiBib29sZWFuKTogc3RyaW5nIHtcbiAgICBsZXQgcmVzdWx0ID0gdGhpcy5zdHJpcCh2YWx1ZSwgZmluYWxGb3JtYXR0aW5nKTtcblxuICAgIC8qIGFkZCBncm91cGluZyBzZXBhcmF0b3IgKi9cbiAgICBjb25zdCBkZWNpbWFsSW5kZXggPSByZXN1bHQuaW5kZXhPZih0aGlzLmRlY2ltYWxTZXBhcmF0b3IpO1xuICAgIGNvbnN0IGlzTmVnYXRpdmUgPSByZXN1bHRbMF0gPT09IE5FR0FUSVZFO1xuICAgIGxldCBpID0gZGVjaW1hbEluZGV4ID4gLTEgPyBkZWNpbWFsSW5kZXggOiByZXN1bHQubGVuZ3RoO1xuICAgIHdoaWxlIChpID4gKGlzTmVnYXRpdmUgPyA0IDogMykpIHtcbiAgICAgIGkgLT0gMztcbiAgICAgIHJlc3VsdCA9IHJlc3VsdC5zdWJzdHJpbmcoMCwgaSkgKyB0aGlzLmdyb3VwaW5nU2VwYXJhdG9yICsgcmVzdWx0LnN1YnN0cmluZyhpLCByZXN1bHQubGVuZ3RoKTtcbiAgICB9XG5cbiAgICBpZiAoZmluYWxGb3JtYXR0aW5nKSB7XG4gICAgICBpZiAodGhpcy5kZWNpbWFsUGxhY2VzID4gMCAmJiAhIXJlc3VsdCkge1xuICAgICAgICAvKiBhdXRvZmlsbCBkZWNpbWFsIHBsYWNlcyAqL1xuICAgICAgICBsZXQgYWN0dWFsRGVjaW1hbEluZGV4ID0gcmVzdWx0LmluZGV4T2YodGhpcy5kZWNpbWFsU2VwYXJhdG9yKTtcbiAgICAgICAgaWYgKHRoaXMuYXV0b2ZpbGxEZWNpbWFscykge1xuICAgICAgICAgIGlmIChhY3R1YWxEZWNpbWFsSW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICBhY3R1YWxEZWNpbWFsSW5kZXggPSByZXN1bHQubGVuZ3RoO1xuICAgICAgICAgICAgcmVzdWx0ICs9IHRoaXMuZGVjaW1hbFNlcGFyYXRvcjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXN1bHQgPSB0aGlzLmFkZE1pc3NpbmdMZWFkaW5nWmVybyhyZXN1bHQsIGFjdHVhbERlY2ltYWxJbmRleCk7XG4gICAgICAgICAgYWN0dWFsRGVjaW1hbEluZGV4ID0gcmVzdWx0LmluZGV4T2YodGhpcy5kZWNpbWFsU2VwYXJhdG9yKTtcblxuICAgICAgICAgIGNvbnN0IGFjdHVhbERlY2ltYWxQbGFjZXMgPSByZXN1bHQubGVuZ3RoIC0gYWN0dWFsRGVjaW1hbEluZGV4IC0gMTtcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuZGVjaW1hbFBsYWNlcyAtIGFjdHVhbERlY2ltYWxQbGFjZXM7IGorKykge1xuICAgICAgICAgICAgcmVzdWx0ICs9ICcwJztcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0ID0gdGhpcy5hZGRNaXNzaW5nTGVhZGluZ1plcm8ocmVzdWx0LCBhY3R1YWxEZWNpbWFsSW5kZXgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGFkZE1pc3NpbmdMZWFkaW5nWmVybyhyZXN1bHQ6IHN0cmluZywgYWN0dWFsRGVjaW1hbEluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IGlzTmVnYXRpdmUgPSByZXN1bHRbMF0gPT09IE5FR0FUSVZFO1xuICAgIC8qIGF1dG9hZGQgYSB6ZXJvIGJlZm9yZSBkZWNpbWFsIHNlcGFyYXRvciwgd2hlbiBpdCdzIG1pc3NpbmcgKi9cbiAgICBpZiAoYWN0dWFsRGVjaW1hbEluZGV4ID09PSAwKSB7XG4gICAgICByZXN1bHQgPSAnMCcgKyByZXN1bHQ7XG4gICAgfVxuICAgIC8qIGF1dG9hZGQgYSB6ZXJvIGJlZm9yZSBkZWNpbWFsIHNlcGFyYXRvciwgd2hlbiBpdCdzIG1pc3NpbmcsIGZvciBuZWdhdGl2ZSB2YWx1ZXMgKi9cbiAgICBpZiAoYWN0dWFsRGVjaW1hbEluZGV4ID09PSAxICYmIGlzTmVnYXRpdmUpIHtcbiAgICAgIHJlc3VsdCA9IHJlc3VsdFswXSArICcwJyArIHJlc3VsdC5zdWJzdHJpbmcoMSwgcmVzdWx0Lmxlbmd0aCk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBzdHJpcCh2YWx1ZTogc3RyaW5nLCByZW1vdmVMZWFkaW5nWmVyb3MgPSBmYWxzZSk6IHN0cmluZyB7XG4gICAgbGV0IHJlc3VsdCA9ICcnO1xuICAgIGxldCBpbmRleERlY2ltYWxTZXAgPSAtMTtcbiAgICBsZXQgaiA9IC0xO1xuICAgIGxldCBpZ25vcmVkQ2hhcnMgPSAwO1xuICAgIGZvciAoY29uc3QgY2hhciBvZiB2YWx1ZSkge1xuICAgICAgaisrO1xuICAgICAgaWYgKHRoaXMuYWxsb3dlZEtleXMuaGFzKGNoYXIpKSB7XG4gICAgICAgIGlmIChjaGFyID09PSB0aGlzLmRlY2ltYWxTZXBhcmF0b3IpIHtcbiAgICAgICAgICBpZiAodGhpcy5kZWNpbWFsUGxhY2VzID09PSAwKSB7XG4gICAgICAgICAgICAvKiBkaXNtaXNzIGNvbnRlbnQgYWZ0ZXIgYSBkZWNpbWFsIHNlcGFyYXRvciwgd2hlbiBubyBwbGFjZXMgYWxsb3dlZCAqL1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfSBlbHNlIGlmIChpbmRleERlY2ltYWxTZXAgPiAtMSkge1xuICAgICAgICAgICAgLyogaWdub3JlIHN1YnNlcXVlbnQgZGVjaW1hbCBzZXBhcmF0b3JzICovXG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaW5kZXhEZWNpbWFsU2VwID0gajtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhciA9PT0gJzAnICYmIHJlbW92ZUxlYWRpbmdaZXJvcykge1xuICAgICAgICAgIC8qIHJlbW92ZSBsZWFkaW5nIHplcm8gb25seSBpZiBpdCdzIG5vdCB0aGUgb25seSB6ZXJvIGluIHRoZSAndmFsdWUnIHN0cmluZyAqL1xuICAgICAgICAgIGlmICgocmVzdWx0Lmxlbmd0aCA9PT0gMCAmJiBqICsgMSAhPT0gdmFsdWUubGVuZ3RoKSB8fCByZXN1bHQgPT09IE5FR0FUSVZFKSB7XG4gICAgICAgICAgICBpZ25vcmVkQ2hhcnMrKztcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhciA9PT0gTkVHQVRJVkUgJiYgaiA+IDApIHtcbiAgICAgICAgICAvKiBkaXNtaXNzIGNvbnRlbnQgYWZ0ZXIgYSBuZWdhdGl2ZSBzaWduIG5vdCBvbiBmaXJzdCBwb3NpdGlvbiAqL1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbmRleERlY2ltYWxTZXAgPiAtMSAmJiByZXN1bHQubGVuZ3RoICsgaWdub3JlZENoYXJzID4gaW5kZXhEZWNpbWFsU2VwICsgdGhpcy5kZWNpbWFsUGxhY2VzKSB7XG4gICAgICAgICAgLyogZGlzbWlzcyBjb250ZW50IGFmdGVyIG1heGltdW0gZGVjaW1hbCBwbGFjZXMgcmVhY2hlZCAqL1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdCArPSBjaGFyO1xuICAgICAgfSBlbHNlIGlmIChjaGFyID09PSB0aGlzLmdyb3VwaW5nU2VwYXJhdG9yKSB7XG4gICAgICAgIGlmIChpbmRleERlY2ltYWxTZXAgPT09IC0xKSB7XG4gICAgICAgICAgaWdub3JlZENoYXJzKys7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8qIGRpc21pc3MgY29udGVudCBhZnRlciBhIGludmFsaWQgY2hhcmFjdGVyICovXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICB1cGRhdGVJbnB1dCh2YWx1ZTogc3RyaW5nLCB1cGRhdGVBc3luYzogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLl9udW1lcmljVmFsdWUgPSBwYXJzZUZsb2F0KHRoaXMuc3RyaXAodmFsdWUpLnJlcGxhY2UodGhpcy5kZWNpbWFsU2VwYXJhdG9yLCAnLicpKTtcbiAgICBpZiAodGhpcy5fbnVtZXJpY1ZhbHVlICE9PSB0aGlzLnJvdW5kT3JUcnVuY2F0ZSh0aGlzLm9yaWdpbmFsVmFsdWUpKSB7XG4gICAgICB0aGlzLm9yaWdpbmFsVmFsdWUgPSB0aGlzLl9udW1lcmljVmFsdWU7XG4gICAgICBpZiAodXBkYXRlQXN5bmMpIHtcbiAgICAgICAgLy8gQ2FsbCBpbiBzZXRUaW1lb3V0IHRvIGF2b2lkIEV4cHJlc3Npb24gaGFzIGNoYW5nZWQgYWZ0ZXIgaXQgaGFzIGJlZW4gY2hlY2tlZCBlcnJvci5cbiAgICAgICAgLy8gVGhpcyBoYXBwZW5zIGZvciBleGFtcGxlIGlmIHRoZSBpbml0aWFsIGlucHV0IGhhcyBtb3JlIGRlY2ltYWwgcGxhY2VzIHRoYW4gYWxsb3dlZFxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMubnVtZXJpY1ZhbHVlQ2hhbmdlZC5lbWl0KHRoaXMuX251bWVyaWNWYWx1ZSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5udW1lcmljVmFsdWVDaGFuZ2VkLmVtaXQodGhpcy5fbnVtZXJpY1ZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWVGb3JGb3JtQ29udHJvbCgpOiBudW1iZXIge1xuICAgIHRoaXMuZm9ybWF0SW5wdXQodGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQsIGZhbHNlKTtcbiAgICBpZiAoaXNOYU4odGhpcy5fbnVtZXJpY1ZhbHVlKSkge1xuICAgICAgLy8gUmV0dXJuIHVuZGVmaW5lZCBpbnN0ZWFkIG9mIE5hTiB0byBzdXBwb3J0IHRoZSBkZWZhdWx0IHJlcXVpcmVkIHZhbGlkYXRvci5cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9udW1lcmljVmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGluamVjdFVuaXRTeW1ib2woKTogdm9pZCB7XG4gICAgLy8gTmVlZCB0byBpbmplY3QgdGhlIHVuaXQgc3ltYm9sIHdoZW4gdGhlIGlucHV0IGVsZW1lbnQgd2lkdGggaXMgc2V0IHRvIGl0cyBhY3R1YWwgdmFsdWUsXG4gICAgLy8gb3RoZXJ3aXNlIHRoZSBpY29uIHdvbnQgc2hvdyBpbiB0aGUgY29ycmVjdCBwb3NpdGlvblxuICAgIGlmICghIXRoaXMudW5pdCAmJiAhdGhpcy51bml0U3BhbiAmJiB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCAhPT0gMCkge1xuICAgICAgLy8gR2V0IHRoZSBpbnB1dCB3cmFwcGVyIGFuZCBhcHBseSBuZWNlc3Nhcnkgc3R5bGVzXG4gICAgICBjb25zdCBpbnB1dFdyYXBwZXIgPSB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC5wYXJlbnROb2RlO1xuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhpbnB1dFdyYXBwZXIsICdudW1lcmljLWlucHV0LXdyYXBwZXInKTtcblxuICAgICAgLy8gQ3JlYXRlIHRoZSBzcGFuIHdpdGggdW5pdCBzeW1ib2wgYW5kIGFwcGx5IG5lY2Vzc2FyeSBzdHlsZXNcbiAgICAgIGlmICghdGhpcy51bml0U3Bhbikge1xuICAgICAgICB0aGlzLnVuaXRTcGFuID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy51bml0U3BhbiwgJ3VuaXQnKTtcbiAgICAgICAgY29uc3QgdW5pdFN5bWJvbCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlVGV4dCh0aGlzLnVuaXQpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMudW5pdFNwYW4sIHVuaXRTeW1ib2wpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGlucHV0V3JhcHBlciwgdGhpcy51bml0U3Bhbik7XG4gICAgICB9XG5cbiAgICAgIC8vIEFkZCBwYWRkaW5nIHRvIHRoZSBpbnB1dCBlbGVtZW50LCBkZXBlbmRpbmcgb24gdGhlIHdpZHRoIG9mIHRoZSB1bml0IHN5bWJvbCArIDEycHhcbiAgICAgIGNvbnN0IHBhZGRpbmdPbklucHV0ID0gdGhpcy51bml0U3Bhbi5vZmZzZXRXaWR0aCArIDEyO1xuICAgICAgaWYgKHRoaXMudW5pdFBvc2l0aW9uID09PSAnbGVmdCcpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLnVuaXRTcGFuLCAndW5pdC1sZWZ0Jyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQsICdwYWRkaW5nLWxlZnQnLCBwYWRkaW5nT25JbnB1dCArICdweCcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLnVuaXRTcGFuLCAndW5pdC1yaWdodCcpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LCAncGFkZGluZy1yaWdodCcsIHBhZGRpbmdPbklucHV0ICsgJ3B4Jyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkZXRhY2hMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbnB1dENoYW5nZUxpc3RlbmVyKSB7XG4gICAgICB0aGlzLmlucHV0Q2hhbmdlTGlzdGVuZXIoKTtcbiAgICAgIGRlbGV0ZSB0aGlzLmlucHV0Q2hhbmdlTGlzdGVuZXI7XG4gICAgfVxuICAgIGlmICh0aGlzLmtleWRvd25MaXN0ZW5lcikge1xuICAgICAgdGhpcy5rZXlkb3duTGlzdGVuZXIoKTtcbiAgICAgIGRlbGV0ZSB0aGlzLmtleWRvd25MaXN0ZW5lcjtcbiAgICB9XG4gICAgaWYgKHRoaXMua2V5dXBMaXN0ZW5lcikge1xuICAgICAgdGhpcy5rZXl1cExpc3RlbmVyKCk7XG4gICAgICBkZWxldGUgdGhpcy5rZXl1cExpc3RlbmVyO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcm91bmRPclRydW5jYXRlKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGNvbnN0IG1ldGhvZCA9IHRoaXMucm91bmRWYWx1ZSA/ICdyb3VuZCcgOiB2YWx1ZSA8IDAgPyAnY2VpbCcgOiAnZmxvb3InO1xuICAgIHJldHVybiBNYXRoW21ldGhvZF0odmFsdWUgKiBNYXRoLnBvdygxMCwgdGhpcy5kZWNpbWFsUGxhY2VzKSkgLyBNYXRoLnBvdygxMCwgdGhpcy5kZWNpbWFsUGxhY2VzKTtcbiAgfVxufVxuIl19
|
|
347
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbHItYWRkb25zL251bWVyaWNmaWVsZC9udW1lcmljLWZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUM7QUFDckIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQztBQUN2QixNQUFNLDZCQUE2QixHQUFHLEVBQUUsQ0FBQztBQUN6QyxNQUFNLGtCQUFrQixHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2xELE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztBQWtCNUUsTUFBTSxPQUFPLGVBQWU7SUFnRTFCLFlBQW9CLFFBQW1CLEVBQVUsT0FBbUI7UUFBaEQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFVLFlBQU8sR0FBUCxPQUFPLENBQVk7UUEvRDdDLGNBQVMsR0FBRyxPQUFPLENBQUM7UUFDaEIsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFDZCxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUMvQixxQkFBZ0IsR0FBRyxHQUFH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QUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ25HLENBQUM7OztZQXhXRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGNBQWM7Z0JBQ3hCLElBQUksRUFBRTtvQkFDSixvQkFBb0IsRUFBRSx1QkFBdUI7b0JBQzdDLFVBQVUsRUFBRSxvQ0FBb0M7b0JBQ2hELFNBQVMsRUFBRSxvQ0FBb0M7b0JBQy9DLFFBQVEsRUFBRSxhQUFhO2lCQUN4QjtnQkFDRCxTQUFTLEVBQUU7b0JBQ1Q7d0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjt3QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7d0JBQzlDLEtBQUssRUFBRSxJQUFJO3FCQUNaO2lCQUNGO2FBQ0Y7OztZQTFCQyxTQUFTO1lBUFQsVUFBVTs7O3dCQW1DVCxLQUFLLFNBQUMsY0FBYzs0QkFDcEIsS0FBSyxTQUFDLGtCQUFrQjt5QkFDeEIsS0FBSyxTQUFDLHNCQUFzQjsrQkFDNUIsS0FBSyxTQUFDLHFCQUFxQjsrQkFDM0IsS0FBSyxTQUFDLGVBQWU7Z0NBQ3JCLEtBQUssU0FBQyxnQkFBZ0I7MkJBQ3RCLEtBQUssU0FBQyxpQkFBaUI7a0NBQ3ZCLE1BQU0sU0FBQyx1QkFBdUI7MkJBVTlCLEtBQUssU0FBQyxpQkFBaUI7bUJBU3ZCLEtBQUssU0FBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIxIFBvcnNjaGUgSW5mb3JtYXRpay4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5jb25zdCBORUdBVElWRSA9ICctJztcbmNvbnN0IEJBQ0tfS0VZQ09ERSA9IDg7XG5jb25zdCBERUxfS0VZQ09ERSA9IDQ2O1xuY29uc3QgQ09OVFJPTF9LRVlDT0RFU19VUFBFUl9CT1JERVIgPSA0NjtcbmNvbnN0IE9USEVSX0NPTlRST0xfS0VZUyA9IG5ldyBTZXQoWzIyNCwgOTEsIDkzXSk7XG5jb25zdCBOVU1CRVJTID0gbmV3IFNldChbJzAnLCAnMScsICcyJywgJzMnLCAnNCcsICc1JywgJzYnLCAnNycsICc4JywgJzknXSk7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tjbHJOdW1lcmljXScsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLnRleHQtcmlnaHRdJzogJ3RleHRBbGlnbiA9PT0gXCJyaWdodFwiJyxcbiAgICAnKGNoYW5nZSknOiAnb25DaGFuZ2UoZ2V0VmFsdWVGb3JGb3JtQ29udHJvbCgpKScsXG4gICAgJyhpbnB1dCknOiAnb25DaGFuZ2UoZ2V0VmFsdWVGb3JGb3JtQ29udHJvbCgpKScsXG4gICAgJyhibHVyKSc6ICdvblRvdWNoZWQoKScsXG4gIH0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ2xyTnVtZXJpY0ZpZWxkKSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENsck51bWVyaWNGaWVsZCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdDaGVja2VkLCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgnY2xyVGV4dEFsaWduJykgdGV4dEFsaWduID0gJ3JpZ2h0JztcbiAgQElucHV0KCdjbHJEZWNpbWFsUGxhY2VzJykgZGVjaW1hbFBsYWNlcyA9IDI7XG4gIEBJbnB1dCgnY2xyUm91bmREaXNwbGF5VmFsdWUnKSByb3VuZFZhbHVlID0gZmFsc2U7XG4gIEBJbnB1dCgnY2xyQXV0b2ZpbGxEZWNpbWFscycpIGF1dG9maWxsRGVjaW1hbHMgPSBmYWxzZTtcbiAgQElucHV0KCdjbHJEZWNpbWFsU2VwJykgZGVjaW1hbFNlcGFyYXRvciA9ICcsJztcbiAgQElucHV0KCdjbHJHcm91cGluZ1NlcCcpIGdyb3VwaW5nU2VwYXJhdG9yID0gJy4nO1xuICBASW5wdXQoJ2NsclVuaXRQb3NpdGlvbicpIHVuaXRQb3NpdGlvbiA9ICdyaWdodCc7XG4gIEBPdXRwdXQoJ2Nsck51bWVyaWNWYWx1ZUNoYW5nZScpIG51bWVyaWNWYWx1ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICBwcml2YXRlIGRpc3BsYXlWYWx1ZSA9ICcnO1xuICBwcml2YXRlIG9yaWdpbmFsVmFsdWUgPSBOYU47XG4gIHByaXZhdGUgX251bWVyaWNWYWx1ZTogbnVtYmVyO1xuICBwcml2YXRlIF91bml0OiBzdHJpbmcgPSBudWxsO1xuICBwcml2YXRlIGlucHV0Q2hhbmdlTGlzdGVuZXI6ICgpID0+IHZvaWQ7XG4gIHByaXZhdGUga2V5dXBMaXN0ZW5lcjogKCkgPT4gdm9pZDtcbiAgcHJpdmF0ZSBrZXlkb3duTGlzdGVuZXI6ICgpID0+IHZvaWQ7XG5cbiAgQElucHV0KCdjbHJOdW1lcmljVmFsdWUnKVxuICBzZXQgbnVtZXJpY1ZhbHVlKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5fbnVtZXJpY1ZhbHVlICE9PSB2YWx1ZSAmJiAhKGlzTmFOKHRoaXMuX251bWVyaWNWYWx1ZSkgJiYgKGlzTmFOKHZhbHVlKSB8fCB2YWx1ZSA9PT0gbnVsbCkpKSB7XG4gICAgICB0aGlzLm9yaWdpbmFsVmFsdWUgPSB2YWx1ZTtcbiAgICAgIHRoaXMuX251bWVyaWNWYWx1ZSA9IHRoaXMucm91bmRPclRydW5jYXRlKHZhbHVlKTtcbiAgICAgIHRoaXMuaGFuZGxlSW5wdXRDaGFuZ2VkKCk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCdjbHJVbml0JylcbiAgc2V0IHVuaXQodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh2YWx1ZSAhPSB0aGlzLl91bml0KSB7XG4gICAgICB0aGlzLl91bml0ID0gdmFsdWU7XG4gICAgICBpZiAodGhpcy51bml0U3BhbiAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMudW5pdFNwYW4uaW5uZXJIVE1MID0gJyc7XG4gICAgICAgIGNvbnN0IG5ld1VuaXRUZXh0ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVUZXh0KHZhbHVlKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLnVuaXRTcGFuLCBuZXdVbml0VGV4dCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1bml0U3BhbjogSFRNTFNwYW5FbGVtZW50O1xuICBwcml2YXRlIGFsbG93ZWRLZXlzID0gbmV3IFNldChOVU1CRVJTKTtcblxuICAvKiBDb250cm9sIFZhbHVlcyBBY2Nlc3NvciBTdHVmZiBiZWxvdyAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIG9uQ2hhbmdlID0gKF86IG51bWJlcik6IHZvaWQgPT4ge307XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgb25Ub3VjaGVkID0gKCk6IHZvaWQgPT4ge307XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IG51bWJlcikgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQsICdkaXNhYmxlZCcsIGlzRGlzYWJsZWQpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5udW1lcmljVmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBpbnB1dEVsOiBFbGVtZW50UmVmKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8qIG5lZWRzIHRvIGJlIHBhcnNlZCBhcyBudW1iZXIgZXhwbGljaXRseSBhcyBpdCBjb21lcyBhcyBzdHJpbmcgZnJvbSB1c2VyIGlucHV0ICovXG4gICAgdGhpcy5kZWNpbWFsUGxhY2VzID0gTnVtYmVyLnBhcnNlSW50KHRoaXMuZGVjaW1hbFBsYWNlcy50b1N0cmluZygpLCAxMCk7XG4gICAgdGhpcy5hbGxvd2VkS2V5cy5hZGQoTkVHQVRJVkUpO1xuICAgIHRoaXMuYWxsb3dlZEtleXMuYWRkKHRoaXMuZGVjaW1hbFNlcGFyYXRvcik7XG5cbiAgICB0aGlzLmlucHV0Q2hhbmdlTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudCwgJ2JsdXInLCBldmVudCA9PiB7XG4gICAgICB0aGlzLmZvcm1hdElucHV0KGV2ZW50LnRhcmdldCwgdHJ1ZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmtleXVwTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudCwgJ2tleXVwJywgZXZlbnQgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBldmVudC5rZXlDb2RlID09PSBCQUNLX0tFWUNPREUgfHxcbiAgICAgICAgKGV2ZW50LmtleUNvZGUgPj0gQ09OVFJPTF9LRVlDT0RFU19VUFBFUl9CT1JERVIgJiYgIU9USEVSX0NPTlRST0xfS0VZUy5oYXMoZXZlbnQua2V5Q29kZSkpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5mb3JtYXRJbnB1dChldmVudC50YXJnZXQsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMua2V5ZG93bkxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQsICdrZXlkb3duJywgZXZlbnQgPT4ge1xuICAgICAgY29uc3QgdmFsdWU6IHN0cmluZyA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5hbGxvd2VkS2V5cy5oYXMoZXZlbnQua2V5KSB8fFxuICAgICAgICAoZXZlbnQua2V5Q29kZSA8PSBDT05UUk9MX0tFWUNPREVTX1VQUEVSX0JPUkRFUiAmJiBldmVudC5rZXlDb2RlID4gMCkgfHxcbiAgICAgICAgZXZlbnQubWV0YUtleSB8fFxuICAgICAgICBldmVudC5jdHJsS2V5IHx8XG4gICAgICAgIGV2ZW50LmFsdEtleVxuICAgICAgKSB7XG4gICAgICAgIC8qIGFsbG93IG5lZ2F0aXZlIHNpZ24gb25seSBhcyBmaXJzdCBjaGFyYWN0ZXIgYW5kIG5vbmUgZXhpc3RzIG91dHNpZGUgb2YgdGV4dCBzZWxlY3Rpb24gKi9cbiAgICAgICAgY29uc3QgaW5kZXhOZWdhdGl2ZVNpZ24gPSB2YWx1ZS5pbmRleE9mKE5FR0FUSVZFKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGV2ZW50LmtleSA9PT0gTkVHQVRJVkUgJiZcbiAgICAgICAgICAoZXZlbnQudGFyZ2V0LnNlbGVjdGlvblN0YXJ0ID4gMCB8fCBpbmRleE5lZ2F0aXZlU2lnbiA+IC0xKSAmJlxuICAgICAgICAgIChldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQgPT09IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25FbmQgfHxcbiAgICAgICAgICAgICEoaW5kZXhOZWdhdGl2ZVNpZ24gPj0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvblN0YXJ0ICYmIGluZGV4TmVnYXRpdmVTaWduIDw9IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25FbmQpKVxuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBubyBkdXBsaWNhdGUgZGVjaW1hbCBzZXBhcmF0b3JzICovXG4gICAgICAgIGNvbnN0IGluZGV4RGVjaW1hbFNlcCA9IHZhbHVlLmluZGV4T2YodGhpcy5kZWNpbWFsU2VwYXJhdG9yKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGV2ZW50LmtleSA9PT0gdGhpcy5kZWNpbWFsU2VwYXJhdG9yICYmXG4gICAgICAgICAgKGluZGV4RGVjaW1hbFNlcCA+IC0xIHx8IHRoaXMuZGVjaW1hbFBsYWNlcyA9PT0gMCkgJiZcbiAgICAgICAgICAoZXZlbnQudGFyZ2V0LnNlbGVjdGlvblN0YXJ0ID09PSBldmVudC50YXJnZXQuc2VsZWN0aW9uRW5kIHx8XG4gICAgICAgICAgICAhKGluZGV4RGVjaW1hbFNlcCA+PSBldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQgJiYgaW5kZXhEZWNpbWFsU2VwIDw9IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25FbmQpKVxuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBwcmV2ZW50IHRvbyBtYW55IGRlY2ltYWwgcGxhY2VzICovXG4gICAgICAgIGlmIChcbiAgICAgICAgICBOVU1CRVJTLmhhcyhldmVudC5rZXkpICYmXG4gICAgICAgICAgaW5kZXhEZWNpbWFsU2VwID4gLTEgJiZcbiAgICAgICAgICBpbmRleERlY2ltYWxTZXAgPCBldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQgJiZcbiAgICAgICAgICBldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQgPT09IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25FbmQgJiZcbiAgICAgICAgICB2YWx1ZS5sZW5ndGggPiBpbmRleERlY2ltYWxTZXAgKyB0aGlzLmRlY2ltYWxQbGFjZXNcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogd2hlbiBkZWxldGluZyB0aG91c2FuZCBzZXBhcmF0b3IsIHJlbW92ZSB0aGUgZGlnaXQgYmVmb3JlIG9yIGFmdGVyIGl0ICovXG4gICAgICAgIGNvbnN0IGN1cnNvclN0YXJ0ID0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvblN0YXJ0O1xuXG4gICAgICAgIGlmIChjdXJzb3JTdGFydCA9PT0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvbkVuZCkge1xuICAgICAgICAgIGlmIChldmVudC5rZXlDb2RlID09PSBCQUNLX0tFWUNPREUgJiYgdmFsdWUuc3Vic3RyKGN1cnNvclN0YXJ0IC0gMSwgMSkgPT09IHRoaXMuZ3JvdXBpbmdTZXBhcmF0b3IpIHtcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IHZhbHVlLnN1YnN0cmluZygwLCBjdXJzb3JTdGFydCAtIDIpICsgdmFsdWUuc3Vic3RyaW5nKGN1cnNvclN0YXJ0IC0gMSwgdmFsdWUubGVuZ3RoKTtcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydCA9IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25FbmQgPSBjdXJzb3JTdGFydCAtIDE7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXlDb2RlID09PSBERUxfS0VZQ09ERSAmJiB2YWx1ZS5zdWJzdHIoY3Vyc29yU3RhcnQsIDEpID09PSB0aGlzLmdyb3VwaW5nU2VwYXJhdG9yKSB7XG4gICAgICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSB2YWx1ZS5zdWJzdHJpbmcoMCwgY3Vyc29yU3RhcnQgKyAxKSArIHZhbHVlLnN1YnN0cmluZyhjdXJzb3JTdGFydCArIDIsIHZhbHVlLmxlbmd0aCk7XG4gICAgICAgICAgICBldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQgPSBldmVudC50YXJnZXQuc2VsZWN0aW9uRW5kID0gY3Vyc29yU3RhcnQgKyAxO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9yaWdpbmFsVmFsdWUgPSBOYU47XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGV0YWNoTGlzdGVuZXIoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmluamVjdFVuaXRTeW1ib2woKTtcbiAgfVxuXG4gIGhhbmRsZUlucHV0Q2hhbmdlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUlucHV0KFxuICAgICAgdGhpcy5mb3JtYXROdW1iZXIodGhpcy5fbnVtZXJpY1ZhbHVlLnRvU3RyaW5nKCkucmVwbGFjZShuZXcgUmVnRXhwKCdbLl0nLCAnZycpLCB0aGlzLmRlY2ltYWxTZXBhcmF0b3IpLCB0cnVlKSxcbiAgICAgIHRydWVcbiAgICApO1xuICB9XG5cbiAgZm9ybWF0SW5wdXQoZWxlbWVudDogSFRNTElucHV0RWxlbWVudCwgZmluYWxGb3JtYXR0aW5nOiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgY3Vyc29yUG9zID0gZWxlbWVudC5zZWxlY3Rpb25TdGFydDtcbiAgICBjb25zdCBsZW5ndGggPSBlbGVtZW50LnZhbHVlLmxlbmd0aDtcbiAgICBjb25zdCBzZXRDdXJzb3IgPSB0aGlzLmRpc3BsYXlWYWx1ZSAhPT0gZWxlbWVudC52YWx1ZTtcbiAgICB0aGlzLnVwZGF0ZUlucHV0KHRoaXMuZm9ybWF0TnVtYmVyKGVsZW1lbnQudmFsdWUsIGZpbmFsRm9ybWF0dGluZyksIGZhbHNlKTtcbiAgICBpZiAoc2V0Q3Vyc29yKSB7XG4gICAgICBlbGVtZW50LnNlbGVjdGlvblN0YXJ0ID0gZWxlbWVudC5zZWxlY3Rpb25FbmQgPSBNYXRoLm1heChjdXJzb3JQb3MgKyBlbGVtZW50LnZhbHVlLmxlbmd0aCAtIGxlbmd0aCwgMCk7XG4gICAgfVxuICB9XG5cbiAgZm9ybWF0TnVtYmVyKHZhbHVlOiBzdHJpbmcsIGZpbmFsRm9ybWF0dGluZzogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgbGV0IHJlc3VsdCA9IHRoaXMuc3RyaXAodmFsdWUsIGZpbmFsRm9ybWF0dGluZyk7XG5cbiAgICAvKiBhZGQgZ3JvdXBpbmcgc2VwYXJhdG9yICovXG4gICAgY29uc3QgZGVjaW1hbEluZGV4ID0gcmVzdWx0LmluZGV4T2YodGhpcy5kZWNpbWFsU2VwYXJhdG9yKTtcbiAgICBjb25zdCBpc05lZ2F0aXZlID0gcmVzdWx0WzBdID09PSBORUdBVElWRTtcbiAgICBsZXQgaSA9IGRlY2ltYWxJbmRleCA+IC0xID8gZGVjaW1hbEluZGV4IDogcmVzdWx0Lmxlbmd0aDtcbiAgICB3aGlsZSAoaSA+IChpc05lZ2F0aXZlID8gNCA6IDMpKSB7XG4gICAgICBpIC09IDM7XG4gICAgICByZXN1bHQgPSByZXN1bHQuc3Vic3RyaW5nKDAsIGkpICsgdGhpcy5ncm91cGluZ1NlcGFyYXRvciArIHJlc3VsdC5zdWJzdHJpbmcoaSwgcmVzdWx0Lmxlbmd0aCk7XG4gICAgfVxuXG4gICAgaWYgKGZpbmFsRm9ybWF0dGluZykge1xuICAgICAgaWYgKHRoaXMuZGVjaW1hbFBsYWNlcyA+IDAgJiYgISFyZXN1bHQpIHtcbiAgICAgICAgLyogYXV0b2ZpbGwgZGVjaW1hbCBwbGFjZXMgKi9cbiAgICAgICAgbGV0IGFjdHVhbERlY2ltYWxJbmRleCA9IHJlc3VsdC5pbmRleE9mKHRoaXMuZGVjaW1hbFNlcGFyYXRvcik7XG4gICAgICAgIGlmICh0aGlzLmF1dG9maWxsRGVjaW1hbHMpIHtcbiAgICAgICAgICBpZiAoYWN0dWFsRGVjaW1hbEluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgYWN0dWFsRGVjaW1hbEluZGV4ID0gcmVzdWx0Lmxlbmd0aDtcbiAgICAgICAgICAgIHJlc3VsdCArPSB0aGlzLmRlY2ltYWxTZXBhcmF0b3I7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmVzdWx0ID0gdGhpcy5hZGRNaXNzaW5nTGVhZGluZ1plcm8ocmVzdWx0LCBhY3R1YWxEZWNpbWFsSW5kZXgpO1xuICAgICAgICAgIGFjdHVhbERlY2ltYWxJbmRleCA9IHJlc3VsdC5pbmRleE9mKHRoaXMuZGVjaW1hbFNlcGFyYXRvcik7XG5cbiAgICAgICAgICBjb25zdCBhY3R1YWxEZWNpbWFsUGxhY2VzID0gcmVzdWx0Lmxlbmd0aCAtIGFjdHVhbERlY2ltYWxJbmRleCAtIDE7XG4gICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmRlY2ltYWxQbGFjZXMgLSBhY3R1YWxEZWNpbWFsUGxhY2VzOyBqKyspIHtcbiAgICAgICAgICAgIHJlc3VsdCArPSAnMCc7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdCA9IHRoaXMuYWRkTWlzc2luZ0xlYWRpbmdaZXJvKHJlc3VsdCwgYWN0dWFsRGVjaW1hbEluZGV4KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBhZGRNaXNzaW5nTGVhZGluZ1plcm8ocmVzdWx0OiBzdHJpbmcsIGFjdHVhbERlY2ltYWxJbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBpc05lZ2F0aXZlID0gcmVzdWx0WzBdID09PSBORUdBVElWRTtcbiAgICAvKiBhdXRvYWRkIGEgemVybyBiZWZvcmUgZGVjaW1hbCBzZXBhcmF0b3IsIHdoZW4gaXQncyBtaXNzaW5nICovXG4gICAgaWYgKGFjdHVhbERlY2ltYWxJbmRleCA9PT0gMCkge1xuICAgICAgcmVzdWx0ID0gJzAnICsgcmVzdWx0O1xuICAgIH1cbiAgICAvKiBhdXRvYWRkIGEgemVybyBiZWZvcmUgZGVjaW1hbCBzZXBhcmF0b3IsIHdoZW4gaXQncyBtaXNzaW5nLCBmb3IgbmVnYXRpdmUgdmFsdWVzICovXG4gICAgaWYgKGFjdHVhbERlY2ltYWxJbmRleCA9PT0gMSAmJiBpc05lZ2F0aXZlKSB7XG4gICAgICByZXN1bHQgPSByZXN1bHRbMF0gKyAnMCcgKyByZXN1bHQuc3Vic3RyaW5nKDEsIHJlc3VsdC5sZW5ndGgpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgc3RyaXAodmFsdWU6IHN0cmluZywgcmVtb3ZlTGVhZGluZ1plcm9zID0gZmFsc2UpOiBzdHJpbmcge1xuICAgIGxldCByZXN1bHQgPSAnJztcbiAgICBsZXQgaW5kZXhEZWNpbWFsU2VwID0gLTE7XG4gICAgbGV0IGogPSAtMTtcbiAgICBsZXQgaWdub3JlZENoYXJzID0gMDtcbiAgICBmb3IgKGNvbnN0IGNoYXIgb2YgdmFsdWUpIHtcbiAgICAgIGorKztcbiAgICAgIGlmICh0aGlzLmFsbG93ZWRLZXlzLmhhcyhjaGFyKSkge1xuICAgICAgICBpZiAoY2hhciA9PT0gdGhpcy5kZWNpbWFsU2VwYXJhdG9yKSB7XG4gICAgICAgICAgaWYgKHRoaXMuZGVjaW1hbFBsYWNlcyA9PT0gMCkge1xuICAgICAgICAgICAgLyogZGlzbWlzcyBjb250ZW50IGFmdGVyIGEgZGVjaW1hbCBzZXBhcmF0b3IsIHdoZW4gbm8gcGxhY2VzIGFsbG93ZWQgKi9cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH0gZWxzZSBpZiAoaW5kZXhEZWNpbWFsU2VwID4gLTEpIHtcbiAgICAgICAgICAgIC8qIGlnbm9yZSBzdWJzZXF1ZW50IGRlY2ltYWwgc2VwYXJhdG9ycyAqL1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGluZGV4RGVjaW1hbFNlcCA9IGo7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoYXIgPT09ICcwJyAmJiByZW1vdmVMZWFkaW5nWmVyb3MpIHtcbiAgICAgICAgICAvKiByZW1vdmUgbGVhZGluZyB6ZXJvIG9ubHkgaWYgaXQncyBub3QgdGhlIG9ubHkgemVybyBpbiB0aGUgJ3ZhbHVlJyBzdHJpbmcgKi9cbiAgICAgICAgICBpZiAoKHJlc3VsdC5sZW5ndGggPT09IDAgJiYgaiArIDEgIT09IHZhbHVlLmxlbmd0aCkgfHwgcmVzdWx0ID09PSBORUdBVElWRSkge1xuICAgICAgICAgICAgaWdub3JlZENoYXJzKys7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoYXIgPT09IE5FR0FUSVZFICYmIGogPiAwKSB7XG4gICAgICAgICAgLyogZGlzbWlzcyBjb250ZW50IGFmdGVyIGEgbmVnYXRpdmUgc2lnbiBub3Qgb24gZmlyc3QgcG9zaXRpb24gKi9cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5kZXhEZWNpbWFsU2VwID4gLTEgJiYgcmVzdWx0Lmxlbmd0aCArIGlnbm9yZWRDaGFycyA+IGluZGV4RGVjaW1hbFNlcCArIHRoaXMuZGVjaW1hbFBsYWNlcykge1xuICAgICAgICAgIC8qIGRpc21pc3MgY29udGVudCBhZnRlciBtYXhpbXVtIGRlY2ltYWwgcGxhY2VzIHJlYWNoZWQgKi9cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQgKz0gY2hhcjtcbiAgICAgIH0gZWxzZSBpZiAoY2hhciA9PT0gdGhpcy5ncm91cGluZ1NlcGFyYXRvcikge1xuICAgICAgICBpZiAoaW5kZXhEZWNpbWFsU2VwID09PSAtMSkge1xuICAgICAgICAgIGlnbm9yZWRDaGFycysrO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvKiBkaXNtaXNzIGNvbnRlbnQgYWZ0ZXIgYSBpbnZhbGlkIGNoYXJhY3RlciAqL1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgdXBkYXRlSW5wdXQodmFsdWU6IHN0cmluZywgdXBkYXRlQXN5bmM6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5fbnVtZXJpY1ZhbHVlID0gcGFyc2VGbG9hdCh0aGlzLnN0cmlwKHZhbHVlKS5yZXBsYWNlKHRoaXMuZGVjaW1hbFNlcGFyYXRvciwgJy4nKSk7XG4gICAgaWYgKHRoaXMuX251bWVyaWNWYWx1ZSAhPT0gdGhpcy5yb3VuZE9yVHJ1bmNhdGUodGhpcy5vcmlnaW5hbFZhbHVlKSkge1xuICAgICAgdGhpcy5vcmlnaW5hbFZhbHVlID0gdGhpcy5fbnVtZXJpY1ZhbHVlO1xuICAgICAgaWYgKHVwZGF0ZUFzeW5jKSB7XG4gICAgICAgIC8vIENhbGwgaW4gc2V0VGltZW91dCB0byBhdm9pZCBFeHByZXNzaW9uIGhhcyBjaGFuZ2VkIGFmdGVyIGl0IGhhcyBiZWVuIGNoZWNrZWQgZXJyb3IuXG4gICAgICAgIC8vIFRoaXMgaGFwcGVucyBmb3IgZXhhbXBsZSBpZiB0aGUgaW5pdGlhbCBpbnB1dCBoYXMgbW9yZSBkZWNpbWFsIHBsYWNlcyB0aGFuIGFsbG93ZWRcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLm51bWVyaWNWYWx1ZUNoYW5nZWQuZW1pdCh0aGlzLl9udW1lcmljVmFsdWUpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubnVtZXJpY1ZhbHVlQ2hhbmdlZC5lbWl0KHRoaXMuX251bWVyaWNWYWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFZhbHVlRm9yRm9ybUNvbnRyb2woKTogbnVtYmVyIHtcbiAgICB0aGlzLmZvcm1hdElucHV0KHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LCBmYWxzZSk7XG4gICAgaWYgKGlzTmFOKHRoaXMuX251bWVyaWNWYWx1ZSkpIHtcbiAgICAgIC8vIFJldHVybiB1bmRlZmluZWQgaW5zdGVhZCBvZiBOYU4gdG8gc3VwcG9ydCB0aGUgZGVmYXVsdCByZXF1aXJlZCB2YWxpZGF0b3IuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fbnVtZXJpY1ZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBpbmplY3RVbml0U3ltYm9sKCk6IHZvaWQge1xuICAgIC8vIE5lZWQgdG8gaW5qZWN0IHRoZSB1bml0IHN5bWJvbCB3aGVuIHRoZSBpbnB1dCBlbGVtZW50IHdpZHRoIGlzIHNldCB0byBpdHMgYWN0dWFsIHZhbHVlLFxuICAgIC8vIG90aGVyd2lzZSB0aGUgaWNvbiB3b250IHNob3cgaW4gdGhlIGNvcnJlY3QgcG9zaXRpb25cbiAgICBpZiAoISF0aGlzLl91bml0ICYmICF0aGlzLnVuaXRTcGFuICYmIHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoICE9PSAwKSB7XG4gICAgICAvLyBHZXQgdGhlIGlucHV0IHdyYXBwZXIgYW5kIGFwcGx5IG5lY2Vzc2FyeSBzdHlsZXNcbiAgICAgIGNvbnN0IGlucHV0V3JhcHBlciA9IHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGU7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGlucHV0V3JhcHBlciwgJ251bWVyaWMtaW5wdXQtd3JhcHBlcicpO1xuXG4gICAgICAvLyBDcmVhdGUgdGhlIHNwYW4gd2l0aCB1bml0IHN5bWJvbCBhbmQgYXBwbHkgbmVjZXNzYXJ5IHN0eWxlc1xuICAgICAgaWYgKCF0aGlzLnVuaXRTcGFuKSB7XG4gICAgICAgIHRoaXMudW5pdFNwYW4gPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLnVuaXRTcGFuLCAndW5pdCcpO1xuICAgICAgICBjb25zdCB1bml0U3ltYm9sID0gdGhpcy5yZW5kZXJlci5jcmVhdGVUZXh0KHRoaXMuX3VuaXQpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMudW5pdFNwYW4sIHVuaXRTeW1ib2wpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGlucHV0V3JhcHBlciwgdGhpcy51bml0U3Bhbik7XG4gICAgICB9XG5cbiAgICAgIC8vIEFkZCBwYWRkaW5nIHRvIHRoZSBpbnB1dCBlbGVtZW50LCBkZXBlbmRpbmcgb24gdGhlIHdpZHRoIG9mIHRoZSB1bml0IHN5bWJvbCArIDEycHhcbiAgICAgIGNvbnN0IHBhZGRpbmdPbklucHV0ID0gdGhpcy51bml0U3Bhbi5vZmZzZXRXaWR0aCArIDEyO1xuICAgICAgaWYgKHRoaXMudW5pdFBvc2l0aW9uID09PSAnbGVmdCcpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLnVuaXRTcGFuLCAndW5pdC1sZWZ0Jyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQsICdwYWRkaW5nLWxlZnQnLCBwYWRkaW5nT25JbnB1dCArICdweCcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLnVuaXRTcGFuLCAndW5pdC1yaWdodCcpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LCAncGFkZGluZy1yaWdodCcsIHBhZGRpbmdPbklucHV0ICsgJ3B4Jyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkZXRhY2hMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbnB1dENoYW5nZUxpc3RlbmVyKSB7XG4gICAgICB0aGlzLmlucHV0Q2hhbmdlTGlzdGVuZXIoKTtcbiAgICAgIGRlbGV0ZSB0aGlzLmlucHV0Q2hhbmdlTGlzdGVuZXI7XG4gICAgfVxuICAgIGlmICh0aGlzLmtleWRvd25MaXN0ZW5lcikge1xuICAgICAgdGhpcy5rZXlkb3duTGlzdGVuZXIoKTtcbiAgICAgIGRlbGV0ZSB0aGlzLmtleWRvd25MaXN0ZW5lcjtcbiAgICB9XG4gICAgaWYgKHRoaXMua2V5dXBMaXN0ZW5lcikge1xuICAgICAgdGhpcy5rZXl1cExpc3RlbmVyKCk7XG4gICAgICBkZWxldGUgdGhpcy5rZXl1cExpc3RlbmVyO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcm91bmRPclRydW5jYXRlKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGNvbnN0IG1ldGhvZCA9IHRoaXMucm91bmRWYWx1ZSA/ICdyb3VuZCcgOiB2YWx1ZSA8IDAgPyAnY2VpbCcgOiAnZmxvb3InO1xuICAgIHJldHVybiBNYXRoW21ldGhvZF0odmFsdWUgKiBNYXRoLnBvdygxMCwgdGhpcy5kZWNpbWFsUGxhY2VzKSkgLyBNYXRoLnBvdygxMCwgdGhpcy5kZWNpbWFsUGxhY2VzKTtcbiAgfVxufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"moduleName":null,"summaries":[{"symbol":{"__symbol":0,"members":[]},"metadata":{"__symbolic":"class","members":{"textAlign":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]},"arguments":["clrTextAlign"]}]}],"decimalPlaces":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]},"arguments":["clrDecimalPlaces"]}]}],"roundValue":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]},"arguments":["clrRoundDisplayValue"]}]}],"autofillDecimals":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]},"arguments":["clrAutofillDecimals"]}]}],"decimalSeparator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]},"arguments":["clrDecimalSep"]}]}],"groupingSeparator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]},"arguments":["clrGroupingSep"]}]}],"
|
|
1
|
+
{"moduleName":null,"summaries":[{"symbol":{"__symbol":0,"members":[]},"metadata":{"__symbolic":"class","members":{"textAlign":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]},"arguments":["clrTextAlign"]}]}],"decimalPlaces":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]},"arguments":["clrDecimalPlaces"]}]}],"roundValue":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]},"arguments":["clrRoundDisplayValue"]}]}],"autofillDecimals":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]},"arguments":["clrAutofillDecimals"]}]}],"decimalSeparator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]},"arguments":["clrDecimalSep"]}]}],"groupingSeparator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]},"arguments":["clrGroupingSep"]}]}],"unitPosition":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]},"arguments":["clrUnitPosition"]}]}],"numericValueChanged":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]},"arguments":["clrNumericValueChange"]}]}],"numericValue":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]},"arguments":["clrNumericValue"]}]}],"unit":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]},"arguments":["clrUnit"]}]}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"setDisabledState":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbol":3,"members":[]},{"__symbol":4,"members":[]}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"ngAfterViewChecked":[{"__symbolic":"method"}],"handleInputChanged":[{"__symbolic":"method"}],"formatInput":[{"__symbolic":"method"}],"formatNumber":[{"__symbolic":"method"}],"addMissingLeadingZero":[{"__symbolic":"method"}],"strip":[{"__symbolic":"method"}],"updateInput":[{"__symbolic":"method"}],"getValueForFormControl":[{"__symbolic":"method"}],"injectUnitSymbol":[{"__symbolic":"method"}],"detachListener":[{"__symbolic":"method"}],"roundOrTruncate":[{"__symbolic":"method"}]}},"type":{"summaryKind":1,"type":{"reference":{"__symbol":0,"members":[]},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":3,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":4,"members":[]}}}}],"lifecycleHooks":[0,1,7]},"isComponent":false,"selector":"[clrNumeric]","exportAs":null,"inputs":{"textAlign":"clrTextAlign","decimalPlaces":"clrDecimalPlaces","roundValue":"clrRoundDisplayValue","autofillDecimals":"clrAutofillDecimals","decimalSeparator":"clrDecimalSep","groupingSeparator":"clrGroupingSep","unitPosition":"clrUnitPosition","numericValue":"clrNumericValue","unit":"clrUnit"},"outputs":{"numericValueChanged":"clrNumericValueChange"},"hostListeners":{"change":"onChange(getValueForFormControl())","input":"onChange(getValueForFormControl())","blur":"onTouched()"},"hostProperties":{"class.text-right":"textAlign === \"right\""},"hostAttributes":{},"providers":[{"token":{"identifier":{"reference":{"__symbol":5,"members":[]}}},"useClass":null,"useFactory":null,"useExisting":{"identifier":{"reference":{"__symbol":0,"members":[]}}},"multi":true}],"viewProviders":[],"queries":[],"guards":{},"viewQueries":[],"entryComponents":[],"changeDetection":null,"template":null,"componentViewType":null,"rendererType":null,"componentFactory":null}}],"symbols":[{"__symbol":0,"name":"ClrNumericField","filePath":"./numeric-field"},{"__symbol":1,"name":"Input","filePath":"@angular/core"},{"__symbol":2,"name":"Output","filePath":"@angular/core"},{"__symbol":3,"name":"Renderer2","filePath":"@angular/core"},{"__symbol":4,"name":"ElementRef","filePath":"@angular/core"},{"__symbol":5,"name":"NG_VALUE_ACCESSOR","filePath":"@angular/forms"}]}
|
package/fesm2015/clr-addons.js
CHANGED
|
@@ -1850,11 +1850,11 @@ class ClrNumericField {
|
|
|
1850
1850
|
this.autofillDecimals = false;
|
|
1851
1851
|
this.decimalSeparator = ',';
|
|
1852
1852
|
this.groupingSeparator = '.';
|
|
1853
|
-
this.unit = null;
|
|
1854
1853
|
this.unitPosition = 'right';
|
|
1855
1854
|
this.numericValueChanged = new EventEmitter();
|
|
1856
1855
|
this.displayValue = '';
|
|
1857
1856
|
this.originalValue = NaN;
|
|
1857
|
+
this._unit = null;
|
|
1858
1858
|
this.allowedKeys = new Set(NUMBERS);
|
|
1859
1859
|
/* Control Values Accessor Stuff below */
|
|
1860
1860
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
@@ -1869,6 +1869,16 @@ class ClrNumericField {
|
|
|
1869
1869
|
this.handleInputChanged();
|
|
1870
1870
|
}
|
|
1871
1871
|
}
|
|
1872
|
+
set unit(value) {
|
|
1873
|
+
if (value != this._unit) {
|
|
1874
|
+
this._unit = value;
|
|
1875
|
+
if (this.unitSpan != null) {
|
|
1876
|
+
this.unitSpan.innerHTML = '';
|
|
1877
|
+
const newUnitText = this.renderer.createText(value);
|
|
1878
|
+
this.renderer.appendChild(this.unitSpan, newUnitText);
|
|
1879
|
+
}
|
|
1880
|
+
}
|
|
1881
|
+
}
|
|
1872
1882
|
registerOnChange(fn) {
|
|
1873
1883
|
this.onChange = fn;
|
|
1874
1884
|
}
|
|
@@ -2086,7 +2096,7 @@ class ClrNumericField {
|
|
|
2086
2096
|
injectUnitSymbol() {
|
|
2087
2097
|
// Need to inject the unit symbol when the input element width is set to its actual value,
|
|
2088
2098
|
// otherwise the icon wont show in the correct position
|
|
2089
|
-
if (!!this.
|
|
2099
|
+
if (!!this._unit && !this.unitSpan && this.inputEl.nativeElement.offsetWidth !== 0) {
|
|
2090
2100
|
// Get the input wrapper and apply necessary styles
|
|
2091
2101
|
const inputWrapper = this.inputEl.nativeElement.parentNode;
|
|
2092
2102
|
this.renderer.addClass(inputWrapper, 'numeric-input-wrapper');
|
|
@@ -2094,7 +2104,7 @@ class ClrNumericField {
|
|
|
2094
2104
|
if (!this.unitSpan) {
|
|
2095
2105
|
this.unitSpan = this.renderer.createElement('span');
|
|
2096
2106
|
this.renderer.addClass(this.unitSpan, 'unit');
|
|
2097
|
-
const unitSymbol = this.renderer.createText(this.
|
|
2107
|
+
const unitSymbol = this.renderer.createText(this._unit);
|
|
2098
2108
|
this.renderer.appendChild(this.unitSpan, unitSymbol);
|
|
2099
2109
|
this.renderer.appendChild(inputWrapper, this.unitSpan);
|
|
2100
2110
|
}
|
|
@@ -2158,10 +2168,10 @@ ClrNumericField.propDecorators = {
|
|
|
2158
2168
|
autofillDecimals: [{ type: Input, args: ['clrAutofillDecimals',] }],
|
|
2159
2169
|
decimalSeparator: [{ type: Input, args: ['clrDecimalSep',] }],
|
|
2160
2170
|
groupingSeparator: [{ type: Input, args: ['clrGroupingSep',] }],
|
|
2161
|
-
unit: [{ type: Input, args: ['clrUnit',] }],
|
|
2162
2171
|
unitPosition: [{ type: Input, args: ['clrUnitPosition',] }],
|
|
2163
2172
|
numericValueChanged: [{ type: Output, args: ['clrNumericValueChange',] }],
|
|
2164
|
-
numericValue: [{ type: Input, args: ['clrNumericValue',] }]
|
|
2173
|
+
numericValue: [{ type: Input, args: ['clrNumericValue',] }],
|
|
2174
|
+
unit: [{ type: Input, args: ['clrUnit',] }]
|
|
2165
2175
|
};
|
|
2166
2176
|
|
|
2167
2177
|
/*
|