@porscheinformatik/clr-addons 12.1.1 → 12.1.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/esm2020/abstract-form-component/abstract-form-component.mjs +3 -3
- package/esm2020/abstract-form-component/control-id.service.mjs +3 -3
- package/esm2020/abstract-form-component/form.module.mjs +4 -4
- package/esm2020/abstract-form-component/label.mjs +3 -3
- package/esm2020/autocomplete-off/autocomplete-off.directive.mjs +3 -3
- package/esm2020/autocomplete-off/autocomplete-off.module.mjs +4 -4
- package/esm2020/back-button/back-button.mjs +3 -3
- package/esm2020/back-button/back-button.module.mjs +4 -4
- package/esm2020/brand-avatar/brand-avatar.mjs +3 -3
- package/esm2020/brand-avatar/brand-avatar.module.mjs +4 -4
- package/esm2020/breadcrumb/breadcrumb.mjs +3 -3
- package/esm2020/breadcrumb/breadcrumb.module.mjs +4 -4
- package/esm2020/breadcrumb/breadcrumb.service.mjs +3 -3
- package/esm2020/clr-addons.module.mjs +4 -4
- package/esm2020/collapse-expand-section/collapse-expand-section.mjs +3 -3
- package/esm2020/collapse-expand-section/collapse-expand-section.module.mjs +4 -4
- package/esm2020/content-panel/content-panel-container-content.mjs +3 -3
- package/esm2020/content-panel/content-panel-container-footer.mjs +3 -3
- package/esm2020/content-panel/content-panel-container.mjs +3 -3
- package/esm2020/content-panel/content-panel.mjs +3 -3
- package/esm2020/content-panel/content-panel.module.mjs +4 -4
- package/esm2020/data-list-validator/data-list-predefined-validator.directive.mjs +3 -3
- package/esm2020/data-list-validator/data-list-validator.module.mjs +4 -4
- package/esm2020/date-time-container/date-time-container.mjs +3 -3
- package/esm2020/date-time-container/date-time-module.mjs +4 -4
- package/esm2020/date-time-container/time-input.mjs +3 -3
- package/esm2020/dot-pager/dot-pager.mjs +3 -3
- package/esm2020/dot-pager/dot-pager.module.mjs +4 -4
- package/esm2020/flow-bar/flow-bar.mjs +3 -3
- package/esm2020/flow-bar/flow-bar.module.mjs +4 -4
- package/esm2020/generic-quick-list/generic-quick-list.mjs +3 -3
- package/esm2020/generic-quick-list/generic-quick-list.module.mjs +4 -4
- package/esm2020/history/history-pinned.mjs +3 -3
- package/esm2020/history/history.mjs +3 -3
- package/esm2020/history/history.module.mjs +4 -4
- package/esm2020/history/history.service.mjs +3 -3
- package/esm2020/letter-avatar/letter-avatar.mjs +3 -3
- package/esm2020/letter-avatar/letter-avatar.module.mjs +4 -4
- package/esm2020/location-bar/location-bar-node/location-bar-node.component.mjs +3 -3
- package/esm2020/location-bar/location-bar.component.mjs +3 -3
- package/esm2020/location-bar/location-bar.module.mjs +4 -4
- package/esm2020/main-nav-group/main-nav-group-item.mjs +3 -3
- package/esm2020/main-nav-group/main-nav-group.mjs +3 -3
- package/esm2020/main-nav-group/main-nav-group.module.mjs +4 -4
- package/esm2020/multilingual/abstract-multilingual.mjs +3 -3
- package/esm2020/multilingual/multilingual-input/multilingual-input.mjs +3 -3
- package/esm2020/multilingual/multilingual-selector.mjs +3 -3
- package/esm2020/multilingual/multilingual-textarea/multilingual-textarea.mjs +3 -3
- package/esm2020/multilingual/multilingual-validators.mjs +6 -6
- package/esm2020/multilingual/multilingual.module.mjs +4 -4
- package/esm2020/notification/notification.mjs +3 -3
- package/esm2020/notification/notification.module.mjs +4 -4
- package/esm2020/notification/notification.service.mjs +3 -3
- package/esm2020/numericfield/numeric-field-validators.mjs +6 -6
- package/esm2020/numericfield/numeric-field.mjs +6 -6
- package/esm2020/numericfield/numeric-field.module.mjs +4 -4
- package/esm2020/paged-search-result-list/paged-search-result-list.mjs +3 -3
- package/esm2020/paged-search-result-list/paged-search-result-list.module.mjs +4 -4
- package/esm2020/pager/pager.mjs +3 -3
- package/esm2020/pager/pager.module.mjs +4 -4
- package/esm2020/progress-spinner/progress-spinner.mjs +3 -3
- package/esm2020/progress-spinner/progress-spinner.module.mjs +4 -4
- package/esm2020/quick-list/add-option.mjs +3 -3
- package/esm2020/quick-list/quick-list.mjs +3 -3
- package/esm2020/quick-list/quick-list.module.mjs +4 -4
- package/esm2020/searchfield/search-field.mjs +3 -3
- package/esm2020/searchfield/search-field.module.mjs +4 -4
- package/esm2020/treetable/renderer/cell-renderer.mjs +3 -3
- package/esm2020/treetable/renderer/header-renderer.mjs +3 -3
- package/esm2020/treetable/renderer/main-renderer.mjs +3 -3
- package/esm2020/treetable/renderer/row-renderer.mjs +3 -3
- package/esm2020/treetable/treetable-action-overflow.mjs +3 -3
- package/esm2020/treetable/treetable-cell.mjs +3 -3
- package/esm2020/treetable/treetable-column.mjs +3 -3
- package/esm2020/treetable/treetable-placeholder.mjs +3 -3
- package/esm2020/treetable/treetable-row.mjs +3 -3
- package/esm2020/treetable/treetable.mjs +3 -3
- package/esm2020/treetable/treetable.module.mjs +4 -4
- package/esm2020/view-edit-section/view-edit-section.mjs +3 -3
- package/esm2020/view-edit-section/view-edit-section.module.mjs +4 -4
- package/fesm2015/clr-addons.mjs +275 -275
- package/fesm2015/clr-addons.mjs.map +1 -1
- package/fesm2020/clr-addons.mjs +275 -275
- package/fesm2020/clr-addons.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -92,9 +92,9 @@ export class ClrMaxNumeric {
|
|
|
92
92
|
return ClrNumericFieldValidators.max(this._max, this._groupingSep, this._decimalSep)(control);
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
|
-
ClrMaxNumeric.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
96
|
-
ClrMaxNumeric.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.
|
|
97
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
95
|
+
ClrMaxNumeric.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrMaxNumeric, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
96
|
+
ClrMaxNumeric.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.0", type: ClrMaxNumeric, selector: "[clrMaxNumeric]", inputs: { _max: ["clrMaxNumeric", "_max"], _groupingSep: ["clrGroupingSep", "_groupingSep"], _decimalSep: ["clrDecimalSep", "_decimalSep"] }, providers: [{ provide: NG_VALIDATORS, useExisting: ClrMaxNumeric, multi: true }], ngImport: i0 });
|
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrMaxNumeric, decorators: [{
|
|
98
98
|
type: Directive,
|
|
99
99
|
args: [{
|
|
100
100
|
selector: '[clrMaxNumeric]',
|
|
@@ -119,9 +119,9 @@ export class ClrMinNumeric {
|
|
|
119
119
|
return ClrNumericFieldValidators.min(this._min, this._groupingSep, this._decimalSep)(control);
|
|
120
120
|
}
|
|
121
121
|
}
|
|
122
|
-
ClrMinNumeric.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
123
|
-
ClrMinNumeric.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.
|
|
124
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
122
|
+
ClrMinNumeric.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrMinNumeric, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
123
|
+
ClrMinNumeric.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.0", type: ClrMinNumeric, selector: "[clrMinNumeric]", inputs: { _min: ["clrMinNumeric", "_min"], _groupingSep: ["clrGroupingSep", "_groupingSep"], _decimalSep: ["clrDecimalSep", "_decimalSep"] }, providers: [{ provide: NG_VALIDATORS, useExisting: ClrMinNumeric, multi: true }], ngImport: i0 });
|
|
124
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrMinNumeric, decorators: [{
|
|
125
125
|
type: Directive,
|
|
126
126
|
args: [{
|
|
127
127
|
selector: '[clrMinNumeric]',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (c) 2018-
|
|
2
|
+
* Copyright (c) 2018-2022 Porsche Informatik. All Rights Reserved.
|
|
3
3
|
* This software is released under MIT license.
|
|
4
4
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
5
|
*/
|
|
@@ -309,18 +309,18 @@ export class ClrNumericField {
|
|
|
309
309
|
roundOrTruncate(value) {
|
|
310
310
|
const method = this.roundValue ? 'round' : value < 0 ? 'ceil' : 'floor';
|
|
311
311
|
// 16 is the highest precision before numbers have weird behaviour. see https://stackoverflow.com/q/21472828/15120942
|
|
312
|
-
return Math[method](+(value * Math.pow(10, this.decimalPlaces)).toPrecision(
|
|
312
|
+
return Math[method](+(value * Math.pow(10, this.decimalPlaces)).toPrecision(15)) / Math.pow(10, this.decimalPlaces);
|
|
313
313
|
}
|
|
314
314
|
}
|
|
315
|
-
ClrNumericField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
316
|
-
ClrNumericField.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.
|
|
315
|
+
ClrNumericField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrNumericField, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
316
|
+
ClrNumericField.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.0", type: ClrNumericField, selector: "[clrNumeric]", inputs: { textAlign: ["clrTextAlign", "textAlign"], decimalPlaces: ["clrDecimalPlaces", "decimalPlaces"], roundValue: ["clrRoundDisplayValue", "roundValue"], autofillDecimals: ["clrAutofillDecimals", "autofillDecimals"], decimalSeparator: ["clrDecimalSep", "decimalSeparator"], groupingSeparator: ["clrGroupingSep", "groupingSeparator"], unitPosition: ["clrUnitPosition", "unitPosition"], numericValue: ["clrNumericValue", "numericValue"], unit: ["clrUnit", "unit"] }, outputs: { numericValueChanged: "clrNumericValueChange" }, host: { listeners: { "change": "onChange(getValueForFormControl())", "input": "onChange(getValueForFormControl())", "blur": "onTouched()" }, properties: { "class.text-right": "textAlign === \"right\"" } }, providers: [
|
|
317
317
|
{
|
|
318
318
|
provide: NG_VALUE_ACCESSOR,
|
|
319
319
|
useExisting: forwardRef(() => ClrNumericField),
|
|
320
320
|
multi: true,
|
|
321
321
|
},
|
|
322
322
|
], ngImport: i0 });
|
|
323
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
323
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrNumericField, decorators: [{
|
|
324
324
|
type: Directive,
|
|
325
325
|
args: [{
|
|
326
326
|
selector: '[clrNumeric]',
|
|
@@ -369,4 +369,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
|
|
|
369
369
|
type: Input,
|
|
370
370
|
args: ['clrUnit']
|
|
371
371
|
}] } });
|
|
372
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbHItYWRkb25zL251bWVyaWNmaWVsZC9udW1lcmljLWZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFekUsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDO0FBQ3JCLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQztBQUN2QixNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7QUFDdkIsTUFBTSw2QkFBNkIsR0FBRyxFQUFFLENBQUM7QUFDekMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNsRCxNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFrQjVFLE1BQU0sT0FBTyxlQUFlO0lBZ0UxQixZQUFvQixRQUFtQixFQUFVLE9BQW1CO1FBQWhELGFBQVEsR0FBUixRQUFRLENBQVc7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBL0Q3QyxjQUFTLEdBQUcsT0FBTyxDQUFDO1FBQ2hCLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNwQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDL0IscUJBQWdCLEdBQUcsR0FB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WTtzQkFEZixLQUFLO3VCQUFDLGlCQUFpQjtnQkFVcEIsSUFBSTtzQkFEUCxLQUFLO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjEgUG9yc2NoZSBJbmZvcm1hdGlrLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQge1xuICBBZnRlclZpZXdDaGVja2VkLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmNvbnN0IE5FR0FUSVZFID0gJy0nO1xuY29uc3QgQkFDS19LRVlDT0RFID0gODtcbmNvbnN0IERFTF9LRVlDT0RFID0gNDY7XG5jb25zdCBDT05UUk9MX0tFWUNPREVTX1VQUEVSX0JPUkRFUiA9IDQ2O1xuY29uc3QgT1RIRVJfQ09OVFJPTF9LRVlTID0gbmV3IFNldChbMjI0LCA5MSwgOTNdKTtcbmNvbnN0IE5VTUJFUlMgPSBuZXcgU2V0KFsnMCcsICcxJywgJzInLCAnMycsICc0JywgJzUnLCAnNicsICc3JywgJzgnLCAnOSddKTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2Nsck51bWVyaWNdJyxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MudGV4dC1yaWdodF0nOiAndGV4dEFsaWduID09PSBcInJpZ2h0XCInLFxuICAgICcoY2hhbmdlKSc6ICdvbkNoYW5nZShnZXRWYWx1ZUZvckZvcm1Db250cm9sKCkpJyxcbiAgICAnKGlucHV0KSc6ICdvbkNoYW5nZShnZXRWYWx1ZUZvckZvcm1Db250cm9sKCkpJyxcbiAgICAnKGJsdXIpJzogJ29uVG91Y2hlZCgpJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDbHJOdW1lcmljRmllbGQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyTnVtZXJpY0ZpZWxkIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0NoZWNrZWQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCdjbHJUZXh0QWxpZ24nKSB0ZXh0QWxpZ24gPSAncmlnaHQnO1xuICBASW5wdXQoJ2NsckRlY2ltYWxQbGFjZXMnKSBkZWNpbWFsUGxhY2VzID0gMjtcbiAgQElucHV0KCdjbHJSb3VuZERpc3BsYXlWYWx1ZScpIHJvdW5kVmFsdWUgPSBmYWxzZTtcbiAgQElucHV0KCdjbHJBdXRvZmlsbERlY2ltYWxzJykgYXV0b2ZpbGxEZWNpbWFscyA9IGZhbHNlO1xuICBASW5wdXQoJ2NsckRlY2ltYWxTZXAnKSBkZWNpbWFsU2VwYXJhdG9yID0gJywnO1xuICBASW5wdXQoJ2Nsckdyb3VwaW5nU2VwJykgZ3JvdXBpbmdTZXBhcmF0b3IgPSAnLic7XG4gIEBJbnB1dCgnY2xyVW5pdFBvc2l0aW9uJykgdW5pdFBvc2l0aW9uID0gJ3JpZ2h0JztcbiAgQE91dHB1dCgnY2xyTnVtZXJpY1ZhbHVlQ2hhbmdlJykgbnVtZXJpY1ZhbHVlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIHByaXZhdGUgZGlzcGxheVZhbHVlID0gJyc7XG4gIHByaXZhdGUgb3JpZ2luYWxWYWx1ZSA9IE5hTjtcbiAgcHJpdmF0ZSBfbnVtZXJpY1ZhbHVlOiBudW1iZXI7XG4gIHByaXZhdGUgX3VuaXQ6IHN0cmluZyA9IG51bGw7XG4gIHByaXZhdGUgaW5wdXRDaGFuZ2VMaXN0ZW5lcjogKCkgPT4gdm9pZDtcbiAgcHJpdmF0ZSBrZXl1cExpc3RlbmVyOiAoKSA9PiB2b2lkO1xuICBwcml2YXRlIGtleWRvd25MaXN0ZW5lcjogKCkgPT4gdm9pZDtcblxuICBASW5wdXQoJ2Nsck51bWVyaWNWYWx1ZScpXG4gIHNldCBudW1lcmljVmFsdWUodmFsdWU6IG51bWJlcikge1xuICAgIGlmICh0aGlzLl9udW1lcmljVmFsdWUgIT09IHZhbHVlICYmICEoaXNOYU4odGhpcy5fbnVtZXJpY1ZhbHVlKSAmJiAoaXNOYU4odmFsdWUpIHx8IHZhbHVlID09PSBudWxsKSkpIHtcbiAgICAgIHRoaXMub3JpZ2luYWxWYWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5fbnVtZXJpY1ZhbHVlID0gdGhpcy5yb3VuZE9yVHJ1bmNhdGUodmFsdWUpO1xuICAgICAgdGhpcy5oYW5kbGVJbnB1dENoYW5nZWQoKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoJ2NsclVuaXQnKVxuICBzZXQgdW5pdCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlICE9IHRoaXMuX3VuaXQpIHtcbiAgICAgIHRoaXMuX3VuaXQgPSB2YWx1ZTtcbiAgICAgIGlmICh0aGlzLnVuaXRTcGFuICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy51bml0U3Bhbi5pbm5lckhUTUwgPSAnJztcbiAgICAgICAgY29uc3QgbmV3VW5pdFRleHQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZVRleHQodmFsdWUpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMudW5pdFNwYW4sIG5ld1VuaXRUZXh0KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVuaXRTcGFuOiBIVE1MU3BhbkVsZW1lbnQ7XG4gIHByaXZhdGUgYWxsb3dlZEtleXMgPSBuZXcgU2V0KE5VTUJFUlMpO1xuXG4gIC8qIENvbnRyb2wgVmFsdWVzIEFjY2Vzc29yIFN0dWZmIGJlbG93ICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgb25DaGFuZ2UgPSAoXzogbnVtYmVyKTogdm9pZCA9PiB7fTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBvblRvdWNoZWQgPSAoKTogdm9pZCA9PiB7fTtcblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogbnVtYmVyKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudCwgJ2Rpc2FibGVkJywgaXNEaXNhYmxlZCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLm51bWVyaWNWYWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIGlucHV0RWw6IEVsZW1lbnRSZWYpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLyogbmVlZHMgdG8gYmUgcGFyc2VkIGFzIG51bWJlciBleHBsaWNpdGx5IGFzIGl0IGNvbWVzIGFzIHN0cmluZyBmcm9tIHVzZXIgaW5wdXQgKi9cbiAgICB0aGlzLmRlY2ltYWxQbGFjZXMgPSBOdW1iZXIucGFyc2VJbnQodGhpcy5kZWNpbWFsUGxhY2VzLnRvU3RyaW5nKCksIDEwKTtcbiAgICB0aGlzLmFsbG93ZWRLZXlzLmFkZChORUdBVElWRSk7XG4gICAgdGhpcy5hbGxvd2VkS2V5cy5hZGQodGhpcy5kZWNpbWFsU2VwYXJhdG9yKTtcblxuICAgIHRoaXMuaW5wdXRDaGFuZ2VMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LCAnYmx1cicsIGV2ZW50ID0+IHtcbiAgICAgIHRoaXMuZm9ybWF0SW5wdXQoZXZlbnQudGFyZ2V0LCB0cnVlKTtcbiAgICB9KTtcblxuICAgIHRoaXMua2V5dXBMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LCAna2V5dXAnLCBldmVudCA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIGV2ZW50LmtleUNvZGUgPT09IEJBQ0tfS0VZQ09ERSB8fFxuICAgICAgICAoZXZlbnQua2V5Q29kZSA+PSBDT05UUk9MX0tFWUNPREVTX1VQUEVSX0JPUkRFUiAmJiAhT1RIRVJfQ09OVFJPTF9LRVlTLmhhcyhldmVudC5rZXlDb2RlKSlcbiAgICAgICkge1xuICAgICAgICB0aGlzLmZvcm1hdElucHV0KGV2ZW50LnRhcmdldCwgZmFsc2UpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5rZXlkb3duTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudCwgJ2tleWRvd24nLCBldmVudCA9PiB7XG4gICAgICBjb25zdCB2YWx1ZTogc3RyaW5nID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLmFsbG93ZWRLZXlzLmhhcyhldmVudC5rZXkpIHx8XG4gICAgICAgIChldmVudC5rZXlDb2RlIDw9IENPTlRST0xfS0VZQ09ERVNfVVBQRVJfQk9SREVSICYmIGV2ZW50LmtleUNvZGUgPiAwKSB8fFxuICAgICAgICBldmVudC5tZXRhS2V5IHx8XG4gICAgICAgIGV2ZW50LmN0cmxLZXkgfHxcbiAgICAgICAgZXZlbnQuYWx0S2V5XG4gICAgICApIHtcbiAgICAgICAgLyogYWxsb3cgbmVnYXRpdmUgc2lnbiBvbmx5IGFzIGZpcnN0IGNoYXJhY3RlciBhbmQgbm9uZSBleGlzdHMgb3V0c2lkZSBvZiB0ZXh0IHNlbGVjdGlvbiAqL1xuICAgICAgICBjb25zdCBpbmRleE5lZ2F0aXZlU2lnbiA9IHZhbHVlLmluZGV4T2YoTkVHQVRJVkUpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZXZlbnQua2V5ID09PSBORUdBVElWRSAmJlxuICAgICAgICAgIChldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQgPiAwIHx8IGluZGV4TmVnYXRpdmVTaWduID4gLTEpICYmXG4gICAgICAgICAgKGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydCA9PT0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvbkVuZCB8fFxuICAgICAgICAgICAgIShpbmRleE5lZ2F0aXZlU2lnbiA+PSBldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQgJiYgaW5kZXhOZWdhdGl2ZVNpZ24gPD0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvbkVuZCkpXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIG5vIGR1cGxpY2F0ZSBkZWNpbWFsIHNlcGFyYXRvcnMgKi9cbiAgICAgICAgY29uc3QgaW5kZXhEZWNpbWFsU2VwID0gdmFsdWUuaW5kZXhPZih0aGlzLmRlY2ltYWxTZXBhcmF0b3IpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZXZlbnQua2V5ID09PSB0aGlzLmRlY2ltYWxTZXBhcmF0b3IgJiZcbiAgICAgICAgICAoaW5kZXhEZWNpbWFsU2VwID4gLTEgfHwgdGhpcy5kZWNpbWFsUGxhY2VzID09PSAwKSAmJlxuICAgICAgICAgIChldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQgPT09IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25FbmQgfHxcbiAgICAgICAgICAgICEoaW5kZXhEZWNpbWFsU2VwID49IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydCAmJiBpbmRleERlY2ltYWxTZXAgPD0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvbkVuZCkpXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHByZXZlbnQgdG9vIG1hbnkgZGVjaW1hbCBwbGFjZXMgKi9cbiAgICAgICAgaWYgKFxuICAgICAgICAgIE5VTUJFUlMuaGFzKGV2ZW50LmtleSkgJiZcbiAgICAgICAgICBpbmRleERlY2ltYWxTZXAgPiAtMSAmJlxuICAgICAgICAgIGluZGV4RGVjaW1hbFNlcCA8IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydCAmJlxuICAgICAgICAgIGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydCA9PT0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvbkVuZCAmJlxuICAgICAgICAgIHZhbHVlLmxlbmd0aCA+IGluZGV4RGVjaW1hbFNlcCArIHRoaXMuZGVjaW1hbFBsYWNlc1xuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvKiB3aGVuIGRlbGV0aW5nIHRob3VzYW5kIHNlcGFyYXRvciwgcmVtb3ZlIHRoZSBkaWdpdCBiZWZvcmUgb3IgYWZ0ZXIgaXQgKi9cbiAgICAgICAgY29uc3QgY3Vyc29yU3RhcnQgPSBldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQ7XG5cbiAgICAgICAgaWYgKGN1cnNvclN0YXJ0ID09PSBldmVudC50YXJnZXQuc2VsZWN0aW9uRW5kKSB7XG4gICAgICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IEJBQ0tfS0VZQ09ERSAmJiB2YWx1ZS5zdWJzdHIoY3Vyc29yU3RhcnQgLSAxLCAxKSA9PT0gdGhpcy5ncm91cGluZ1NlcGFyYXRvcikge1xuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gdmFsdWUuc3Vic3RyaW5nKDAsIGN1cnNvclN0YXJ0IC0gMikgKyB2YWx1ZS5zdWJzdHJpbmcoY3Vyc29yU3RhcnQgLSAxLCB2YWx1ZS5sZW5ndGgpO1xuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LnNlbGVjdGlvblN0YXJ0ID0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvbkVuZCA9IGN1cnNvclN0YXJ0IC0gMTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleUNvZGUgPT09IERFTF9LRVlDT0RFICYmIHZhbHVlLnN1YnN0cihjdXJzb3JTdGFydCwgMSkgPT09IHRoaXMuZ3JvdXBpbmdTZXBhcmF0b3IpIHtcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IHZhbHVlLnN1YnN0cmluZygwLCBjdXJzb3JTdGFydCArIDEpICsgdmFsdWUuc3Vic3RyaW5nKGN1cnNvclN0YXJ0ICsgMiwgdmFsdWUubGVuZ3RoKTtcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydCA9IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25FbmQgPSBjdXJzb3JTdGFydCArIDE7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMub3JpZ2luYWxWYWx1ZSA9IE5hTjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXRhY2hMaXN0ZW5lcigpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuaW5qZWN0VW5pdFN5bWJvbCgpO1xuICB9XG5cbiAgaGFuZGxlSW5wdXRDaGFuZ2VkKCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlSW5wdXQoXG4gICAgICB0aGlzLmZvcm1hdE51bWJlcih0aGlzLl9udW1lcmljVmFsdWUudG9TdHJpbmcoKS5yZXBsYWNlKG5ldyBSZWdFeHAoJ1suXScsICdnJyksIHRoaXMuZGVjaW1hbFNlcGFyYXRvciksIHRydWUpLFxuICAgICAgdHJ1ZVxuICAgICk7XG4gIH1cblxuICBmb3JtYXRJbnB1dChlbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50LCBmaW5hbEZvcm1hdHRpbmc6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBjdXJzb3JQb3MgPSBlbGVtZW50LnNlbGVjdGlvblN0YXJ0O1xuICAgIGNvbnN0IGxlbmd0aCA9IGVsZW1lbnQudmFsdWUubGVuZ3RoO1xuICAgIGNvbnN0IHNldEN1cnNvciA9IHRoaXMuZGlzcGxheVZhbHVlICE9PSBlbGVtZW50LnZhbHVlO1xuICAgIHRoaXMudXBkYXRlSW5wdXQodGhpcy5mb3JtYXROdW1iZXIoZWxlbWVudC52YWx1ZSwgZmluYWxGb3JtYXR0aW5nKSwgZmFsc2UpO1xuICAgIGlmIChzZXRDdXJzb3IpIHtcbiAgICAgIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPSBlbGVtZW50LnNlbGVjdGlvbkVuZCA9IE1hdGgubWF4KGN1cnNvclBvcyArIGVsZW1lbnQudmFsdWUubGVuZ3RoIC0gbGVuZ3RoLCAwKTtcbiAgICB9XG4gIH1cblxuICBmb3JtYXROdW1iZXIodmFsdWU6IHN0cmluZywgZmluYWxGb3JtYXR0aW5nOiBib29sZWFuKTogc3RyaW5nIHtcbiAgICBsZXQgcmVzdWx0ID0gdGhpcy5zdHJpcCh2YWx1ZSwgZmluYWxGb3JtYXR0aW5nKTtcblxuICAgIC8qIGFkZCBncm91cGluZyBzZXBhcmF0b3IgKi9cbiAgICBjb25zdCBkZWNpbWFsSW5kZXggPSByZXN1bHQuaW5kZXhPZih0aGlzLmRlY2ltYWxTZXBhcmF0b3IpO1xuICAgIGNvbnN0IGlzTmVnYXRpdmUgPSByZXN1bHRbMF0gPT09IE5FR0FUSVZFO1xuICAgIGxldCBpID0gZGVjaW1hbEluZGV4ID4gLTEgPyBkZWNpbWFsSW5kZXggOiByZXN1bHQubGVuZ3RoO1xuICAgIHdoaWxlIChpID4gKGlzTmVnYXRpdmUgPyA0IDogMykpIHtcbiAgICAgIGkgLT0gMztcbiAgICAgIHJlc3VsdCA9IHJlc3VsdC5zdWJzdHJpbmcoMCwgaSkgKyB0aGlzLmdyb3VwaW5nU2VwYXJhdG9yICsgcmVzdWx0LnN1YnN0cmluZyhpLCByZXN1bHQubGVuZ3RoKTtcbiAgICB9XG5cbiAgICBpZiAoZmluYWxGb3JtYXR0aW5nKSB7XG4gICAgICBpZiAodGhpcy5kZWNpbWFsUGxhY2VzID4gMCAmJiAhIXJlc3VsdCkge1xuICAgICAgICAvKiBhdXRvZmlsbCBkZWNpbWFsIHBsYWNlcyAqL1xuICAgICAgICBsZXQgYWN0dWFsRGVjaW1hbEluZGV4ID0gcmVzdWx0LmluZGV4T2YodGhpcy5kZWNpbWFsU2VwYXJhdG9yKTtcbiAgICAgICAgaWYgKHRoaXMuYXV0b2ZpbGxEZWNpbWFscykge1xuICAgICAgICAgIGlmIChhY3R1YWxEZWNpbWFsSW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICBhY3R1YWxEZWNpbWFsSW5kZXggPSByZXN1bHQubGVuZ3RoO1xuICAgICAgICAgICAgcmVzdWx0ICs9IHRoaXMuZGVjaW1hbFNlcGFyYXRvcjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXN1bHQgPSB0aGlzLmFkZE1pc3NpbmdMZWFkaW5nWmVybyhyZXN1bHQsIGFjdHVhbERlY2ltYWxJbmRleCk7XG4gICAgICAgICAgYWN0dWFsRGVjaW1hbEluZGV4ID0gcmVzdWx0LmluZGV4T2YodGhpcy5kZWNpbWFsU2VwYXJhdG9yKTtcblxuICAgICAgICAgIGNvbnN0IGFjdHVhbERlY2ltYWxQbGFjZXMgPSByZXN1bHQubGVuZ3RoIC0gYWN0dWFsRGVjaW1hbEluZGV4IC0gMTtcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuZGVjaW1hbFBsYWNlcyAtIGFjdHVhbERlY2ltYWxQbGFjZXM7IGorKykge1xuICAgICAgICAgICAgcmVzdWx0ICs9ICcwJztcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0ID0gdGhpcy5hZGRNaXNzaW5nTGVhZGluZ1plcm8ocmVzdWx0LCBhY3R1YWxEZWNpbWFsSW5kZXgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGFkZE1pc3NpbmdMZWFkaW5nWmVybyhyZXN1bHQ6IHN0cmluZywgYWN0dWFsRGVjaW1hbEluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IGlzTmVnYXRpdmUgPSByZXN1bHRbMF0gPT09IE5FR0FUSVZFO1xuICAgIC8qIGF1dG9hZGQgYSB6ZXJvIGJlZm9yZSBkZWNpbWFsIHNlcGFyYXRvciwgd2hlbiBpdCdzIG1pc3NpbmcgKi9cbiAgICBpZiAoYWN0dWFsRGVjaW1hbEluZGV4ID09PSAwKSB7XG4gICAgICByZXN1bHQgPSAnMCcgKyByZXN1bHQ7XG4gICAgfVxuICAgIC8qIGF1dG9hZGQgYSB6ZXJvIGJlZm9yZSBkZWNpbWFsIHNlcGFyYXRvciwgd2hlbiBpdCdzIG1pc3NpbmcsIGZvciBuZWdhdGl2ZSB2YWx1ZXMgKi9cbiAgICBpZiAoYWN0dWFsRGVjaW1hbEluZGV4ID09PSAxICYmIGlzTmVnYXRpdmUpIHtcbiAgICAgIHJlc3VsdCA9IHJlc3VsdFswXSArICcwJyArIHJlc3VsdC5zdWJzdHJpbmcoMSwgcmVzdWx0Lmxlbmd0aCk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBzdHJpcCh2YWx1ZTogc3RyaW5nLCByZW1vdmVMZWFkaW5nWmVyb3MgPSBmYWxzZSk6IHN0cmluZyB7XG4gICAgbGV0IHJlc3VsdCA9ICcnO1xuICAgIGxldCBpbmRleERlY2ltYWxTZXAgPSAtMTtcbiAgICBsZXQgaiA9IC0xO1xuICAgIGxldCBpZ25vcmVkQ2hhcnMgPSAwO1xuICAgIGZvciAoY29uc3QgY2hhciBvZiB2YWx1ZSkge1xuICAgICAgaisrO1xuICAgICAgaWYgKHRoaXMuYWxsb3dlZEtleXMuaGFzKGNoYXIpKSB7XG4gICAgICAgIGlmIChjaGFyID09PSB0aGlzLmRlY2ltYWxTZXBhcmF0b3IpIHtcbiAgICAgICAgICBpZiAodGhpcy5kZWNpbWFsUGxhY2VzID09PSAwKSB7XG4gICAgICAgICAgICAvKiBkaXNtaXNzIGNvbnRlbnQgYWZ0ZXIgYSBkZWNpbWFsIHNlcGFyYXRvciwgd2hlbiBubyBwbGFjZXMgYWxsb3dlZCAqL1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfSBlbHNlIGlmIChpbmRleERlY2ltYWxTZXAgPiAtMSkge1xuICAgICAgICAgICAgLyogaWdub3JlIHN1YnNlcXVlbnQgZGVjaW1hbCBzZXBhcmF0b3JzICovXG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaW5kZXhEZWNpbWFsU2VwID0gajtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhciA9PT0gJzAnICYmIHJlbW92ZUxlYWRpbmdaZXJvcykge1xuICAgICAgICAgIC8qIHJlbW92ZSBsZWFkaW5nIHplcm8gb25seSBpZiBpdCdzIG5vdCB0aGUgb25seSB6ZXJvIGluIHRoZSAndmFsdWUnIHN0cmluZyAqL1xuICAgICAgICAgIGlmICgocmVzdWx0Lmxlbmd0aCA9PT0gMCAmJiBqICsgMSAhPT0gdmFsdWUubGVuZ3RoKSB8fCByZXN1bHQgPT09IE5FR0FUSVZFKSB7XG4gICAgICAgICAgICBpZ25vcmVkQ2hhcnMrKztcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhciA9PT0gTkVHQVRJVkUgJiYgaiA+IDApIHtcbiAgICAgICAgICAvKiBkaXNtaXNzIGNvbnRlbnQgYWZ0ZXIgYSBuZWdhdGl2ZSBzaWduIG5vdCBvbiBmaXJzdCBwb3NpdGlvbiAqL1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbmRleERlY2ltYWxTZXAgPiAtMSAmJiByZXN1bHQubGVuZ3RoICsgaWdub3JlZENoYXJzID4gaW5kZXhEZWNpbWFsU2VwICsgdGhpcy5kZWNpbWFsUGxhY2VzKSB7XG4gICAgICAgICAgLyogZGlzbWlzcyBjb250ZW50IGFmdGVyIG1heGltdW0gZGVjaW1hbCBwbGFjZXMgcmVhY2hlZCAqL1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdCArPSBjaGFyO1xuICAgICAgfSBlbHNlIGlmIChjaGFyID09PSB0aGlzLmdyb3VwaW5nU2VwYXJhdG9yKSB7XG4gICAgICAgIGlmIChpbmRleERlY2ltYWxTZXAgPT09IC0xKSB7XG4gICAgICAgICAgaWdub3JlZENoYXJzKys7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8qIGRpc21pc3MgY29udGVudCBhZnRlciBhIGludmFsaWQgY2hhcmFjdGVyICovXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICB1cGRhdGVJbnB1dCh2YWx1ZTogc3RyaW5nLCB1cGRhdGVBc3luYzogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLl9udW1lcmljVmFsdWUgPSBwYXJzZUZsb2F0KHRoaXMuc3RyaXAodmFsdWUpLnJlcGxhY2UodGhpcy5kZWNpbWFsU2VwYXJhdG9yLCAnLicpKTtcbiAgICBpZiAodGhpcy5fbnVtZXJpY1ZhbHVlICE9PSB0aGlzLnJvdW5kT3JUcnVuY2F0ZSh0aGlzLm9yaWdpbmFsVmFsdWUpKSB7XG4gICAgICB0aGlzLm9yaWdpbmFsVmFsdWUgPSB0aGlzLl9udW1lcmljVmFsdWU7XG4gICAgICBpZiAodXBkYXRlQXN5bmMpIHtcbiAgICAgICAgLy8gQ2FsbCBpbiBzZXRUaW1lb3V0IHRvIGF2b2lkIEV4cHJlc3Npb24gaGFzIGNoYW5nZWQgYWZ0ZXIgaXQgaGFzIGJlZW4gY2hlY2tlZCBlcnJvci5cbiAgICAgICAgLy8gVGhpcyBoYXBwZW5zIGZvciBleGFtcGxlIGlmIHRoZSBpbml0aWFsIGlucHV0IGhhcyBtb3JlIGRlY2ltYWwgcGxhY2VzIHRoYW4gYWxsb3dlZFxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMubnVtZXJpY1ZhbHVlQ2hhbmdlZC5lbWl0KHRoaXMuX251bWVyaWNWYWx1ZSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5udW1lcmljVmFsdWVDaGFuZ2VkLmVtaXQodGhpcy5fbnVtZXJpY1ZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWVGb3JGb3JtQ29udHJvbCgpOiBudW1iZXIge1xuICAgIHRoaXMuZm9ybWF0SW5wdXQodGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQsIGZhbHNlKTtcbiAgICBpZiAoaXNOYU4odGhpcy5fbnVtZXJpY1ZhbHVlKSkge1xuICAgICAgLy8gUmV0dXJuIHVuZGVmaW5lZCBpbnN0ZWFkIG9mIE5hTiB0byBzdXBwb3J0IHRoZSBkZWZhdWx0IHJlcXVpcmVkIHZhbGlkYXRvci5cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9udW1lcmljVmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGluamVjdFVuaXRTeW1ib2woKTogdm9pZCB7XG4gICAgLy8gTmVlZCB0byBpbmplY3QgdGhlIHVuaXQgc3ltYm9sIHdoZW4gdGhlIGlucHV0IGVsZW1lbnQgd2lkdGggaXMgc2V0IHRvIGl0cyBhY3R1YWwgdmFsdWUsXG4gICAgLy8gb3RoZXJ3aXNlIHRoZSBpY29uIHdvbnQgc2hvdyBpbiB0aGUgY29ycmVjdCBwb3NpdGlvblxuICAgIGlmICghIXRoaXMuX3VuaXQgJiYgIXRoaXMudW5pdFNwYW4gJiYgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggIT09IDApIHtcbiAgICAgIC8vIEdldCB0aGUgaW5wdXQgd3JhcHBlciBhbmQgYXBwbHkgbmVjZXNzYXJ5IHN0eWxlc1xuICAgICAgY29uc3QgaW5wdXRXcmFwcGVyID0gdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQucGFyZW50Tm9kZTtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoaW5wdXRXcmFwcGVyLCAnbnVtZXJpYy1pbnB1dC13cmFwcGVyJyk7XG5cbiAgICAgIC8vIENyZWF0ZSB0aGUgc3BhbiB3aXRoIHVuaXQgc3ltYm9sIGFuZCBhcHBseSBuZWNlc3Nhcnkgc3R5bGVzXG4gICAgICBpZiAoIXRoaXMudW5pdFNwYW4pIHtcbiAgICAgICAgdGhpcy51bml0U3BhbiA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMudW5pdFNwYW4sICd1bml0Jyk7XG4gICAgICAgIGNvbnN0IHVuaXRTeW1ib2wgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZVRleHQodGhpcy5fdW5pdCk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy51bml0U3BhbiwgdW5pdFN5bWJvbCk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoaW5wdXRXcmFwcGVyLCB0aGlzLnVuaXRTcGFuKTtcbiAgICAgIH1cblxuICAgICAgLy8gQWRkIHBhZGRpbmcgdG8gdGhlIGlucHV0IGVsZW1lbnQsIGRlcGVuZGluZyBvbiB0aGUgd2lkdGggb2YgdGhlIHVuaXQgc3ltYm9sICsgMTJweFxuICAgICAgY29uc3QgcGFkZGluZ09uSW5wdXQgPSB0aGlzLnVuaXRTcGFuLm9mZnNldFdpZHRoICsgMTI7XG4gICAgICBpZiAodGhpcy51bml0UG9zaXRpb24gPT09ICdsZWZ0Jykge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMudW5pdFNwYW4sICd1bml0LWxlZnQnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudCwgJ3BhZGRpbmctbGVmdCcsIHBhZGRpbmdPbklucHV0ICsgJ3B4Jyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMudW5pdFNwYW4sICd1bml0LXJpZ2h0Jyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQsICdwYWRkaW5nLXJpZ2h0JywgcGFkZGluZ09uSW5wdXQgKyAncHgnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRldGFjaExpc3RlbmVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlucHV0Q2hhbmdlTGlzdGVuZXIpIHtcbiAgICAgIHRoaXMuaW5wdXRDaGFuZ2VMaXN0ZW5lcigpO1xuICAgICAgZGVsZXRlIHRoaXMuaW5wdXRDaGFuZ2VMaXN0ZW5lcjtcbiAgICB9XG4gICAgaWYgKHRoaXMua2V5ZG93bkxpc3RlbmVyKSB7XG4gICAgICB0aGlzLmtleWRvd25MaXN0ZW5lcigpO1xuICAgICAgZGVsZXRlIHRoaXMua2V5ZG93bkxpc3RlbmVyO1xuICAgIH1cbiAgICBpZiAodGhpcy5rZXl1cExpc3RlbmVyKSB7XG4gICAgICB0aGlzLmtleXVwTGlzdGVuZXIoKTtcbiAgICAgIGRlbGV0ZSB0aGlzLmtleXVwTGlzdGVuZXI7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByb3VuZE9yVHJ1bmNhdGUodmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgbWV0aG9kID0gdGhpcy5yb3VuZFZhbHVlID8gJ3JvdW5kJyA6IHZhbHVlIDwgMCA/ICdjZWlsJyA6ICdmbG9vcic7XG4gICAgLy8gMTYgaXMgdGhlIGhpZ2hlc3QgcHJlY2lzaW9uIGJlZm9yZSBudW1iZXJzIGhhdmUgd2VpcmQgYmVoYXZpb3VyLiBzZWUgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xLzIxNDcyODI4LzE1MTIwOTQyXG4gICAgcmV0dXJuIE1hdGhbbWV0aG9kXSgrKHZhbHVlICogTWF0aC5wb3coMTAsIHRoaXMuZGVjaW1hbFBsYWNlcykpLnRvUHJlY2lzaW9uKDE2KSkgLyBNYXRoLnBvdygxMCwgdGhpcy5kZWNpbWFsUGxhY2VzKTtcbiAgfVxufVxuIl19
|
|
372
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbHItYWRkb25zL251bWVyaWNmaWVsZC9udW1lcmljLWZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFekUsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDO0FBQ3JCLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQztBQUN2QixNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7QUFDdkIsTUFBTSw2QkFBNkIsR0FBRyxFQUFFLENBQUM7QUFDekMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNsRCxNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFrQjVFLE1BQU0sT0FBTyxlQUFlO0lBZ0UxQixZQUFvQixRQUFtQixFQUFVLE9BQW1CO1FBQWhELGFBQVEsR0FBUixRQUFRLENBQVc7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBL0Q3QyxjQUFTLEdBQUcsT0FBTyxDQUFDO1FBQ2hCLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNwQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDL0IscUJBQWdCLEdBQUcsR0FBRyxDQUFDO1FBQ3RCLHNCQUFpQixHQUFHLEdBQUcsQ0FBQztRQUN2QixpQkFBWSxHQUFHLE9BQU8sQ0FBQztRQUNoQix3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRTFFLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLGtCQUFhLEdBQUcsR0FBRyxDQUFDO1FBRXBCLFVBQUssR0FBVyxJQUFJLENBQUM7UUEyQnJCLGdCQUFXLEdBQUcsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdkMseUNBQXlDO1FBQ3pDLGdFQUFnRTtRQUNoRSxhQUFRLEdBQUcsQ0FBQyxDQUFTLEVBQVEsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUNuQyxnRUFBZ0U7UUFDaEUsY0FBUyxHQUFHLEdBQVMsRUFBRSxHQUFFLENBQUMsQ0FBQztJQWtCNEMsQ0FBQztJQTlDeEUsSUFDSSxZQUFZLENBQUMsS0FBYTtRQUM1QixJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQ3BHLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1lBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFRCxJQUNJLElBQUksQ0FBQyxLQUFhO1FBQ3BCLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDdkIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDbkIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksRUFBRTtnQkFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO2dCQUM3QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQzthQUN2RDtTQUNGO0lBQ0gsQ0FBQztJQVdELGdCQUFnQixDQUFDLEVBQXVCO1FBQ3RDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFjO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNsQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFhO1FBQ3RCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFJRCxRQUFRO1FBQ04sbUZBQW1GO1FBQ25GLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTVDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDMUYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDckYsSUFDRSxLQUFLLENBQUMsT0FBTyxLQUFLLFlBQVk7Z0JBQzlCLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSw2QkFBNkIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsRUFDMUY7Z0JBQ0EsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ3ZDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUN6RixNQUFNLEtBQUssR0FBVyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUN6QyxJQUNFLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7Z0JBQy9CLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSw2QkFBNkIsSUFBSSxLQUFLLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztnQkFDckUsS0FBSyxDQUFDLE9BQU87Z0JBQ2IsS0FBSyxDQUFDLE9BQU87Z0JBQ2IsS0FBSyxDQUFDLE1BQU0sRUFDWjtnQkFDQSwyRkFBMkY7Z0JBQzNGLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDbEQsSUFDRSxLQUFLLENBQUMsR0FBRyxLQUFLLFFBQVE7b0JBQ3RCLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFjLEdBQUcsQ0FBQyxJQUFJLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUMzRCxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYyxLQUFLLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWTt3QkFDeEQsQ0FBQyxDQUFDLGlCQUFpQixJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYyxJQUFJLGlCQUFpQixJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsRUFDeEc7b0JBQ0EsT0FBTyxLQUFLLENBQUM7aUJBQ2Q7Z0JBRUQscUNBQXFDO2dCQUNyQyxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUM3RCxJQUNFLEtBQUssQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLGdCQUFnQjtvQkFDbkMsQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxDQUFDLENBQUM7b0JBQ2xELENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFjLEtBQUssS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZO3dCQUN4RCxDQUFDLENBQUMsZUFBZSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYyxJQUFJLGVBQWUsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQ3BHO29CQUNBLE9BQU8sS0FBSyxDQUFDO2lCQUNkO2dCQUVELHFDQUFxQztnQkFDckMsSUFDRSxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7b0JBQ3RCLGVBQWUsR0FBRyxDQUFDLENBQUM7b0JBQ3BCLGVBQWUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWM7b0JBQzdDLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYyxLQUFLLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWTtvQkFDekQsS0FBSyxDQUFDLE1BQU0sR0FBRyxlQUFlLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFDbkQ7b0JBQ0EsT0FBTyxLQUFLLENBQUM7aUJBQ2Q7Z0JBRUQsMkVBQTJFO2dCQUMzRSxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQztnQkFFaEQsSUFBSSxXQUFXLEtBQUssS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUU7b0JBQzdDLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxZQUFZLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxpQkFBaUIsRUFBRTt3QkFDakcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsV0FBVyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQzFHLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxHQUFHLFdBQVcsR0FBRyxDQUFDLENBQUM7d0JBQzFFLE9BQU8sS0FBSyxDQUFDO3FCQUNkO3lCQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxXQUFXLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLGlCQUFpQixFQUFFO3dCQUNuRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxXQUFXLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDMUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEdBQUcsV0FBVyxHQUFHLENBQUMsQ0FBQzt3QkFDMUUsT0FBTyxLQUFLLENBQUM7cUJBQ2Q7aUJBQ0Y7Z0JBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUM7YUFDMUI7aUJBQU07Z0JBQ0wsT0FBTyxLQUFLLENBQUM7YUFDZDtZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FDZCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxJQUFJLENBQUMsRUFDN0csSUFBSSxDQUNMLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXlCLEVBQUUsZUFBd0I7UUFDN0QsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQztRQUN6QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUNwQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxLQUFLLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDdEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsZUFBZSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDM0UsSUFBSSxTQUFTLEVBQUU7WUFDYixPQUFPLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3hHO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFhLEVBQUUsZUFBd0I7UUFDbEQsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFFaEQsNEJBQTRCO1FBQzVCLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDM0QsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsQ0FBQztRQUMxQyxJQUFJLENBQUMsR0FBRyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUN6RCxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMvQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ1AsTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDL0Y7UUFFRCxJQUFJLGVBQWUsRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3RDLDZCQUE2QjtnQkFDN0IsSUFBSSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUMvRCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtvQkFDekIsSUFBSSxrQkFBa0IsS0FBSyxDQUFDLENBQUMsRUFBRTt3QkFDN0Isa0JBQWtCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQzt3QkFDbkMsTUFBTSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztxQkFDakM7b0JBRUQsTUFBTSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztvQkFDaEUsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztvQkFFM0QsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsTUFBTSxHQUFHLGtCQUFrQixHQUFHLENBQUMsQ0FBQztvQkFDbkUsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQyxFQUFFLEVBQUU7d0JBQ2pFLE1BQU0sSUFBSSxHQUFHLENBQUM7cUJBQ2Y7aUJBQ0Y7cUJBQU07b0JBQ0wsTUFBTSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztpQkFDakU7YUFDRjtTQUNGO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELHFCQUFxQixDQUFDLE1BQWMsRUFBRSxrQkFBMEI7UUFDOUQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsQ0FBQztRQUMxQyxnRUFBZ0U7UUFDaEUsSUFBSSxrQkFBa0IsS0FBSyxDQUFDLEVBQUU7WUFDNUIsTUFBTSxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUM7U0FDdkI7UUFDRCxxRkFBcUY7UUFDckYsSUFBSSxrQkFBa0IsS0FBSyxDQUFDLElBQUksVUFBVSxFQUFFO1lBQzFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMvRDtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBYSxFQUFFLGtCQUFrQixHQUFHLEtBQUs7UUFDN0MsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLElBQUksZUFBZSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ1gsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFO1lBQ3hCLENBQUMsRUFBRSxDQUFDO1lBQ0osSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDOUIsSUFBSSxJQUFJLEtBQUssSUFBSSxDQUFDLGdCQUFnQixFQUFFO29CQUNsQyxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssQ0FBQyxFQUFFO3dCQUM1Qix1RUFBdUU7d0JBQ3ZFLE1BQU07cUJBQ1A7eUJBQU0sSUFBSSxlQUFlLEdBQUcsQ0FBQyxDQUFDLEVBQUU7d0JBQy9CLDBDQUEwQzt3QkFDMUMsU0FBUztxQkFDVjtvQkFDRCxlQUFlLEdBQUcsQ0FBQyxDQUFDO2lCQUNyQjtnQkFDRCxJQUFJLElBQUksS0FBSyxHQUFHLElBQUksa0JBQWtCLEVBQUU7b0JBQ3RDLDhFQUE4RTtvQkFDOUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sS0FBSyxRQUFRLEVBQUU7d0JBQzFFLFlBQVksRUFBRSxDQUFDO3dCQUNmLFNBQVM7cUJBQ1Y7aUJBQ0Y7Z0JBQ0QsSUFBSSxJQUFJLEtBQUssUUFBUSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQzlCLGlFQUFpRTtvQkFDakUsTUFBTTtpQkFDUDtnQkFDRCxJQUFJLGVBQWUsR0FBRyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLFlBQVksR0FBRyxlQUFlLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRTtvQkFDL0YsMERBQTBEO29CQUMxRCxNQUFNO2lCQUNQO2dCQUNELE1BQU0sSUFBSSxJQUFJLENBQUM7YUFDaEI7aUJBQU0sSUFBSSxJQUFJLEtBQUssSUFBSSxDQUFDLGlCQUFpQixFQUFFO2dCQUMxQyxJQUFJLGVBQWUsS0FBSyxDQUFDLENBQUMsRUFBRTtvQkFDMUIsWUFBWSxFQUFFLENBQUM7aUJBQ2hCO2FBQ0Y7aUJBQU07Z0JBQ0wsK0NBQStDO2dCQUMvQyxNQUFNO2FBQ1A7U0FDRjtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBYSxFQUFFLFdBQW9CO1FBQzdDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDekMsSUFBSSxDQUFDLGFBQWEsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdkYsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQ25FLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUN4QyxJQUFJLFdBQVcsRUFBRTtnQkFDZixzRkFBc0Y7Z0JBQ3RGLHFGQUFxRjtnQkFDckYsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7YUFDckU7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDbkQ7U0FDRjtJQUNILENBQUM7SUFFTSxzQkFBc0I7UUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNwRCxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDN0IsNkVBQTZFO1lBQzdFLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBQ0QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsMEZBQTBGO1FBQzFGLHVEQUF1RDtRQUN2RCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxXQUFXLEtBQUssQ0FBQyxFQUFFO1lBQ2xGLG1EQUFtRDtZQUNuRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUM7WUFDM0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLHVCQUF1QixDQUFDLENBQUM7WUFFOUQsOERBQThEO1lBQzlELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNwRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUM5QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3hELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQ3JELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDeEQ7WUFFRCxxRkFBcUY7WUFDckYsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1lBQ3RELElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxNQUFNLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7Z0JBQ25ELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLGNBQWMsRUFBRSxjQUFjLEdBQUcsSUFBSSxDQUFDLENBQUM7YUFDM0Y7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQztnQkFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsZUFBZSxFQUFFLGNBQWMsR0FBRyxJQUFJLENBQUMsQ0FBQzthQUM1RjtTQUNGO0lBQ0gsQ0FBQztJQUVPLGNBQWM7UUFDcEIsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDNUIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDM0IsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7U0FDakM7UUFDRCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztTQUM3QjtRQUNELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVPLGVBQWUsQ0FBQyxLQUFhO1FBQ25DLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDeEUscUhBQXFIO1FBQ3JILE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RILENBQUM7OzRHQXpWVSxlQUFlO2dHQUFmLGVBQWUscXdCQVJmO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDO1lBQzlDLEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRjsyRkFFVSxlQUFlO2tCQWhCM0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsSUFBSSxFQUFFO3dCQUNKLG9CQUFvQixFQUFFLHVCQUF1Qjt3QkFDN0MsVUFBVSxFQUFFLG9DQUFvQzt3QkFDaEQsU0FBUyxFQUFFLG9DQUFvQzt3QkFDL0MsUUFBUSxFQUFFLGFBQWE7cUJBQ3hCO29CQUNELFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQzs0QkFDOUMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0Y7eUhBRXdCLFNBQVM7c0JBQS9CLEtBQUs7dUJBQUMsY0FBYztnQkFDTSxhQUFhO3NCQUF2QyxLQUFLO3VCQUFDLGtCQUFrQjtnQkFDTSxVQUFVO3NCQUF4QyxLQUFLO3VCQUFDLHNCQUFzQjtnQkFDQyxnQkFBZ0I7c0JBQTdDLEtBQUs7dUJBQUMscUJBQXFCO2dCQUNKLGdCQUFnQjtzQkFBdkMsS0FBSzt1QkFBQyxlQUFlO2dCQUNHLGlCQUFpQjtzQkFBekMsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBQ0csWUFBWTtzQkFBckMsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBQ1MsbUJBQW1CO3NCQUFuRCxNQUFNO3VCQUFDLHVCQUF1QjtnQkFXM0IsWUFBWTtzQkFEZixLQUFLO3VCQUFDLGlCQUFpQjtnQkFVcEIsSUFBSTtzQkFEUCxLQUFLO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjIgUG9yc2NoZSBJbmZvcm1hdGlrLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQge1xuICBBZnRlclZpZXdDaGVja2VkLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmNvbnN0IE5FR0FUSVZFID0gJy0nO1xuY29uc3QgQkFDS19LRVlDT0RFID0gODtcbmNvbnN0IERFTF9LRVlDT0RFID0gNDY7XG5jb25zdCBDT05UUk9MX0tFWUNPREVTX1VQUEVSX0JPUkRFUiA9IDQ2O1xuY29uc3QgT1RIRVJfQ09OVFJPTF9LRVlTID0gbmV3IFNldChbMjI0LCA5MSwgOTNdKTtcbmNvbnN0IE5VTUJFUlMgPSBuZXcgU2V0KFsnMCcsICcxJywgJzInLCAnMycsICc0JywgJzUnLCAnNicsICc3JywgJzgnLCAnOSddKTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2Nsck51bWVyaWNdJyxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MudGV4dC1yaWdodF0nOiAndGV4dEFsaWduID09PSBcInJpZ2h0XCInLFxuICAgICcoY2hhbmdlKSc6ICdvbkNoYW5nZShnZXRWYWx1ZUZvckZvcm1Db250cm9sKCkpJyxcbiAgICAnKGlucHV0KSc6ICdvbkNoYW5nZShnZXRWYWx1ZUZvckZvcm1Db250cm9sKCkpJyxcbiAgICAnKGJsdXIpJzogJ29uVG91Y2hlZCgpJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDbHJOdW1lcmljRmllbGQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyTnVtZXJpY0ZpZWxkIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0NoZWNrZWQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCdjbHJUZXh0QWxpZ24nKSB0ZXh0QWxpZ24gPSAncmlnaHQnO1xuICBASW5wdXQoJ2NsckRlY2ltYWxQbGFjZXMnKSBkZWNpbWFsUGxhY2VzID0gMjtcbiAgQElucHV0KCdjbHJSb3VuZERpc3BsYXlWYWx1ZScpIHJvdW5kVmFsdWUgPSBmYWxzZTtcbiAgQElucHV0KCdjbHJBdXRvZmlsbERlY2ltYWxzJykgYXV0b2ZpbGxEZWNpbWFscyA9IGZhbHNlO1xuICBASW5wdXQoJ2NsckRlY2ltYWxTZXAnKSBkZWNpbWFsU2VwYXJhdG9yID0gJywnO1xuICBASW5wdXQoJ2Nsckdyb3VwaW5nU2VwJykgZ3JvdXBpbmdTZXBhcmF0b3IgPSAnLic7XG4gIEBJbnB1dCgnY2xyVW5pdFBvc2l0aW9uJykgdW5pdFBvc2l0aW9uID0gJ3JpZ2h0JztcbiAgQE91dHB1dCgnY2xyTnVtZXJpY1ZhbHVlQ2hhbmdlJykgbnVtZXJpY1ZhbHVlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIHByaXZhdGUgZGlzcGxheVZhbHVlID0gJyc7XG4gIHByaXZhdGUgb3JpZ2luYWxWYWx1ZSA9IE5hTjtcbiAgcHJpdmF0ZSBfbnVtZXJpY1ZhbHVlOiBudW1iZXI7XG4gIHByaXZhdGUgX3VuaXQ6IHN0cmluZyA9IG51bGw7XG4gIHByaXZhdGUgaW5wdXRDaGFuZ2VMaXN0ZW5lcjogKCkgPT4gdm9pZDtcbiAgcHJpdmF0ZSBrZXl1cExpc3RlbmVyOiAoKSA9PiB2b2lkO1xuICBwcml2YXRlIGtleWRvd25MaXN0ZW5lcjogKCkgPT4gdm9pZDtcblxuICBASW5wdXQoJ2Nsck51bWVyaWNWYWx1ZScpXG4gIHNldCBudW1lcmljVmFsdWUodmFsdWU6IG51bWJlcikge1xuICAgIGlmICh0aGlzLl9udW1lcmljVmFsdWUgIT09IHZhbHVlICYmICEoaXNOYU4odGhpcy5fbnVtZXJpY1ZhbHVlKSAmJiAoaXNOYU4odmFsdWUpIHx8IHZhbHVlID09PSBudWxsKSkpIHtcbiAgICAgIHRoaXMub3JpZ2luYWxWYWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5fbnVtZXJpY1ZhbHVlID0gdGhpcy5yb3VuZE9yVHJ1bmNhdGUodmFsdWUpO1xuICAgICAgdGhpcy5oYW5kbGVJbnB1dENoYW5nZWQoKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoJ2NsclVuaXQnKVxuICBzZXQgdW5pdCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlICE9IHRoaXMuX3VuaXQpIHtcbiAgICAgIHRoaXMuX3VuaXQgPSB2YWx1ZTtcbiAgICAgIGlmICh0aGlzLnVuaXRTcGFuICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy51bml0U3Bhbi5pbm5lckhUTUwgPSAnJztcbiAgICAgICAgY29uc3QgbmV3VW5pdFRleHQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZVRleHQodmFsdWUpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMudW5pdFNwYW4sIG5ld1VuaXRUZXh0KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVuaXRTcGFuOiBIVE1MU3BhbkVsZW1lbnQ7XG4gIHByaXZhdGUgYWxsb3dlZEtleXMgPSBuZXcgU2V0KE5VTUJFUlMpO1xuXG4gIC8qIENvbnRyb2wgVmFsdWVzIEFjY2Vzc29yIFN0dWZmIGJlbG93ICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgb25DaGFuZ2UgPSAoXzogbnVtYmVyKTogdm9pZCA9PiB7fTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBvblRvdWNoZWQgPSAoKTogdm9pZCA9PiB7fTtcblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogbnVtYmVyKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudCwgJ2Rpc2FibGVkJywgaXNEaXNhYmxlZCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLm51bWVyaWNWYWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIGlucHV0RWw6IEVsZW1lbnRSZWYpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLyogbmVlZHMgdG8gYmUgcGFyc2VkIGFzIG51bWJlciBleHBsaWNpdGx5IGFzIGl0IGNvbWVzIGFzIHN0cmluZyBmcm9tIHVzZXIgaW5wdXQgKi9cbiAgICB0aGlzLmRlY2ltYWxQbGFjZXMgPSBOdW1iZXIucGFyc2VJbnQodGhpcy5kZWNpbWFsUGxhY2VzLnRvU3RyaW5nKCksIDEwKTtcbiAgICB0aGlzLmFsbG93ZWRLZXlzLmFkZChORUdBVElWRSk7XG4gICAgdGhpcy5hbGxvd2VkS2V5cy5hZGQodGhpcy5kZWNpbWFsU2VwYXJhdG9yKTtcblxuICAgIHRoaXMuaW5wdXRDaGFuZ2VMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LCAnYmx1cicsIGV2ZW50ID0+IHtcbiAgICAgIHRoaXMuZm9ybWF0SW5wdXQoZXZlbnQudGFyZ2V0LCB0cnVlKTtcbiAgICB9KTtcblxuICAgIHRoaXMua2V5dXBMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LCAna2V5dXAnLCBldmVudCA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIGV2ZW50LmtleUNvZGUgPT09IEJBQ0tfS0VZQ09ERSB8fFxuICAgICAgICAoZXZlbnQua2V5Q29kZSA+PSBDT05UUk9MX0tFWUNPREVTX1VQUEVSX0JPUkRFUiAmJiAhT1RIRVJfQ09OVFJPTF9LRVlTLmhhcyhldmVudC5rZXlDb2RlKSlcbiAgICAgICkge1xuICAgICAgICB0aGlzLmZvcm1hdElucHV0KGV2ZW50LnRhcmdldCwgZmFsc2UpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5rZXlkb3duTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudCwgJ2tleWRvd24nLCBldmVudCA9PiB7XG4gICAgICBjb25zdCB2YWx1ZTogc3RyaW5nID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLmFsbG93ZWRLZXlzLmhhcyhldmVudC5rZXkpIHx8XG4gICAgICAgIChldmVudC5rZXlDb2RlIDw9IENPTlRST0xfS0VZQ09ERVNfVVBQRVJfQk9SREVSICYmIGV2ZW50LmtleUNvZGUgPiAwKSB8fFxuICAgICAgICBldmVudC5tZXRhS2V5IHx8XG4gICAgICAgIGV2ZW50LmN0cmxLZXkgfHxcbiAgICAgICAgZXZlbnQuYWx0S2V5XG4gICAgICApIHtcbiAgICAgICAgLyogYWxsb3cgbmVnYXRpdmUgc2lnbiBvbmx5IGFzIGZpcnN0IGNoYXJhY3RlciBhbmQgbm9uZSBleGlzdHMgb3V0c2lkZSBvZiB0ZXh0IHNlbGVjdGlvbiAqL1xuICAgICAgICBjb25zdCBpbmRleE5lZ2F0aXZlU2lnbiA9IHZhbHVlLmluZGV4T2YoTkVHQVRJVkUpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZXZlbnQua2V5ID09PSBORUdBVElWRSAmJlxuICAgICAgICAgIChldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQgPiAwIHx8IGluZGV4TmVnYXRpdmVTaWduID4gLTEpICYmXG4gICAgICAgICAgKGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydCA9PT0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvbkVuZCB8fFxuICAgICAgICAgICAgIShpbmRleE5lZ2F0aXZlU2lnbiA+PSBldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQgJiYgaW5kZXhOZWdhdGl2ZVNpZ24gPD0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvbkVuZCkpXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIG5vIGR1cGxpY2F0ZSBkZWNpbWFsIHNlcGFyYXRvcnMgKi9cbiAgICAgICAgY29uc3QgaW5kZXhEZWNpbWFsU2VwID0gdmFsdWUuaW5kZXhPZih0aGlzLmRlY2ltYWxTZXBhcmF0b3IpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZXZlbnQua2V5ID09PSB0aGlzLmRlY2ltYWxTZXBhcmF0b3IgJiZcbiAgICAgICAgICAoaW5kZXhEZWNpbWFsU2VwID4gLTEgfHwgdGhpcy5kZWNpbWFsUGxhY2VzID09PSAwKSAmJlxuICAgICAgICAgIChldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQgPT09IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25FbmQgfHxcbiAgICAgICAgICAgICEoaW5kZXhEZWNpbWFsU2VwID49IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydCAmJiBpbmRleERlY2ltYWxTZXAgPD0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvbkVuZCkpXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHByZXZlbnQgdG9vIG1hbnkgZGVjaW1hbCBwbGFjZXMgKi9cbiAgICAgICAgaWYgKFxuICAgICAgICAgIE5VTUJFUlMuaGFzKGV2ZW50LmtleSkgJiZcbiAgICAgICAgICBpbmRleERlY2ltYWxTZXAgPiAtMSAmJlxuICAgICAgICAgIGluZGV4RGVjaW1hbFNlcCA8IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydCAmJlxuICAgICAgICAgIGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydCA9PT0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvbkVuZCAmJlxuICAgICAgICAgIHZhbHVlLmxlbmd0aCA+IGluZGV4RGVjaW1hbFNlcCArIHRoaXMuZGVjaW1hbFBsYWNlc1xuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvKiB3aGVuIGRlbGV0aW5nIHRob3VzYW5kIHNlcGFyYXRvciwgcmVtb3ZlIHRoZSBkaWdpdCBiZWZvcmUgb3IgYWZ0ZXIgaXQgKi9cbiAgICAgICAgY29uc3QgY3Vyc29yU3RhcnQgPSBldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQ7XG5cbiAgICAgICAgaWYgKGN1cnNvclN0YXJ0ID09PSBldmVudC50YXJnZXQuc2VsZWN0aW9uRW5kKSB7XG4gICAgICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IEJBQ0tfS0VZQ09ERSAmJiB2YWx1ZS5zdWJzdHIoY3Vyc29yU3RhcnQgLSAxLCAxKSA9PT0gdGhpcy5ncm91cGluZ1NlcGFyYXRvcikge1xuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gdmFsdWUuc3Vic3RyaW5nKDAsIGN1cnNvclN0YXJ0IC0gMikgKyB2YWx1ZS5zdWJzdHJpbmcoY3Vyc29yU3RhcnQgLSAxLCB2YWx1ZS5sZW5ndGgpO1xuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LnNlbGVjdGlvblN0YXJ0ID0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvbkVuZCA9IGN1cnNvclN0YXJ0IC0gMTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleUNvZGUgPT09IERFTF9LRVlDT0RFICYmIHZhbHVlLnN1YnN0cihjdXJzb3JTdGFydCwgMSkgPT09IHRoaXMuZ3JvdXBpbmdTZXBhcmF0b3IpIHtcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IHZhbHVlLnN1YnN0cmluZygwLCBjdXJzb3JTdGFydCArIDEpICsgdmFsdWUuc3Vic3RyaW5nKGN1cnNvclN0YXJ0ICsgMiwgdmFsdWUubGVuZ3RoKTtcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydCA9IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25FbmQgPSBjdXJzb3JTdGFydCArIDE7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMub3JpZ2luYWxWYWx1ZSA9IE5hTjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXRhY2hMaXN0ZW5lcigpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuaW5qZWN0VW5pdFN5bWJvbCgpO1xuICB9XG5cbiAgaGFuZGxlSW5wdXRDaGFuZ2VkKCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlSW5wdXQoXG4gICAgICB0aGlzLmZvcm1hdE51bWJlcih0aGlzLl9udW1lcmljVmFsdWUudG9TdHJpbmcoKS5yZXBsYWNlKG5ldyBSZWdFeHAoJ1suXScsICdnJyksIHRoaXMuZGVjaW1hbFNlcGFyYXRvciksIHRydWUpLFxuICAgICAgdHJ1ZVxuICAgICk7XG4gIH1cblxuICBmb3JtYXRJbnB1dChlbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50LCBmaW5hbEZvcm1hdHRpbmc6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBjdXJzb3JQb3MgPSBlbGVtZW50LnNlbGVjdGlvblN0YXJ0O1xuICAgIGNvbnN0IGxlbmd0aCA9IGVsZW1lbnQudmFsdWUubGVuZ3RoO1xuICAgIGNvbnN0IHNldEN1cnNvciA9IHRoaXMuZGlzcGxheVZhbHVlICE9PSBlbGVtZW50LnZhbHVlO1xuICAgIHRoaXMudXBkYXRlSW5wdXQodGhpcy5mb3JtYXROdW1iZXIoZWxlbWVudC52YWx1ZSwgZmluYWxGb3JtYXR0aW5nKSwgZmFsc2UpO1xuICAgIGlmIChzZXRDdXJzb3IpIHtcbiAgICAgIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPSBlbGVtZW50LnNlbGVjdGlvbkVuZCA9IE1hdGgubWF4KGN1cnNvclBvcyArIGVsZW1lbnQudmFsdWUubGVuZ3RoIC0gbGVuZ3RoLCAwKTtcbiAgICB9XG4gIH1cblxuICBmb3JtYXROdW1iZXIodmFsdWU6IHN0cmluZywgZmluYWxGb3JtYXR0aW5nOiBib29sZWFuKTogc3RyaW5nIHtcbiAgICBsZXQgcmVzdWx0ID0gdGhpcy5zdHJpcCh2YWx1ZSwgZmluYWxGb3JtYXR0aW5nKTtcblxuICAgIC8qIGFkZCBncm91cGluZyBzZXBhcmF0b3IgKi9cbiAgICBjb25zdCBkZWNpbWFsSW5kZXggPSByZXN1bHQuaW5kZXhPZih0aGlzLmRlY2ltYWxTZXBhcmF0b3IpO1xuICAgIGNvbnN0IGlzTmVnYXRpdmUgPSByZXN1bHRbMF0gPT09IE5FR0FUSVZFO1xuICAgIGxldCBpID0gZGVjaW1hbEluZGV4ID4gLTEgPyBkZWNpbWFsSW5kZXggOiByZXN1bHQubGVuZ3RoO1xuICAgIHdoaWxlIChpID4gKGlzTmVnYXRpdmUgPyA0IDogMykpIHtcbiAgICAgIGkgLT0gMztcbiAgICAgIHJlc3VsdCA9IHJlc3VsdC5zdWJzdHJpbmcoMCwgaSkgKyB0aGlzLmdyb3VwaW5nU2VwYXJhdG9yICsgcmVzdWx0LnN1YnN0cmluZyhpLCByZXN1bHQubGVuZ3RoKTtcbiAgICB9XG5cbiAgICBpZiAoZmluYWxGb3JtYXR0aW5nKSB7XG4gICAgICBpZiAodGhpcy5kZWNpbWFsUGxhY2VzID4gMCAmJiAhIXJlc3VsdCkge1xuICAgICAgICAvKiBhdXRvZmlsbCBkZWNpbWFsIHBsYWNlcyAqL1xuICAgICAgICBsZXQgYWN0dWFsRGVjaW1hbEluZGV4ID0gcmVzdWx0LmluZGV4T2YodGhpcy5kZWNpbWFsU2VwYXJhdG9yKTtcbiAgICAgICAgaWYgKHRoaXMuYXV0b2ZpbGxEZWNpbWFscykge1xuICAgICAgICAgIGlmIChhY3R1YWxEZWNpbWFsSW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICBhY3R1YWxEZWNpbWFsSW5kZXggPSByZXN1bHQubGVuZ3RoO1xuICAgICAgICAgICAgcmVzdWx0ICs9IHRoaXMuZGVjaW1hbFNlcGFyYXRvcjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXN1bHQgPSB0aGlzLmFkZE1pc3NpbmdMZWFkaW5nWmVybyhyZXN1bHQsIGFjdHVhbERlY2ltYWxJbmRleCk7XG4gICAgICAgICAgYWN0dWFsRGVjaW1hbEluZGV4ID0gcmVzdWx0LmluZGV4T2YodGhpcy5kZWNpbWFsU2VwYXJhdG9yKTtcblxuICAgICAgICAgIGNvbnN0IGFjdHVhbERlY2ltYWxQbGFjZXMgPSByZXN1bHQubGVuZ3RoIC0gYWN0dWFsRGVjaW1hbEluZGV4IC0gMTtcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuZGVjaW1hbFBsYWNlcyAtIGFjdHVhbERlY2ltYWxQbGFjZXM7IGorKykge1xuICAgICAgICAgICAgcmVzdWx0ICs9ICcwJztcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0ID0gdGhpcy5hZGRNaXNzaW5nTGVhZGluZ1plcm8ocmVzdWx0LCBhY3R1YWxEZWNpbWFsSW5kZXgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGFkZE1pc3NpbmdMZWFkaW5nWmVybyhyZXN1bHQ6IHN0cmluZywgYWN0dWFsRGVjaW1hbEluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IGlzTmVnYXRpdmUgPSByZXN1bHRbMF0gPT09IE5FR0FUSVZFO1xuICAgIC8qIGF1dG9hZGQgYSB6ZXJvIGJlZm9yZSBkZWNpbWFsIHNlcGFyYXRvciwgd2hlbiBpdCdzIG1pc3NpbmcgKi9cbiAgICBpZiAoYWN0dWFsRGVjaW1hbEluZGV4ID09PSAwKSB7XG4gICAgICByZXN1bHQgPSAnMCcgKyByZXN1bHQ7XG4gICAgfVxuICAgIC8qIGF1dG9hZGQgYSB6ZXJvIGJlZm9yZSBkZWNpbWFsIHNlcGFyYXRvciwgd2hlbiBpdCdzIG1pc3NpbmcsIGZvciBuZWdhdGl2ZSB2YWx1ZXMgKi9cbiAgICBpZiAoYWN0dWFsRGVjaW1hbEluZGV4ID09PSAxICYmIGlzTmVnYXRpdmUpIHtcbiAgICAgIHJlc3VsdCA9IHJlc3VsdFswXSArICcwJyArIHJlc3VsdC5zdWJzdHJpbmcoMSwgcmVzdWx0Lmxlbmd0aCk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBzdHJpcCh2YWx1ZTogc3RyaW5nLCByZW1vdmVMZWFkaW5nWmVyb3MgPSBmYWxzZSk6IHN0cmluZyB7XG4gICAgbGV0IHJlc3VsdCA9ICcnO1xuICAgIGxldCBpbmRleERlY2ltYWxTZXAgPSAtMTtcbiAgICBsZXQgaiA9IC0xO1xuICAgIGxldCBpZ25vcmVkQ2hhcnMgPSAwO1xuICAgIGZvciAoY29uc3QgY2hhciBvZiB2YWx1ZSkge1xuICAgICAgaisrO1xuICAgICAgaWYgKHRoaXMuYWxsb3dlZEtleXMuaGFzKGNoYXIpKSB7XG4gICAgICAgIGlmIChjaGFyID09PSB0aGlzLmRlY2ltYWxTZXBhcmF0b3IpIHtcbiAgICAgICAgICBpZiAodGhpcy5kZWNpbWFsUGxhY2VzID09PSAwKSB7XG4gICAgICAgICAgICAvKiBkaXNtaXNzIGNvbnRlbnQgYWZ0ZXIgYSBkZWNpbWFsIHNlcGFyYXRvciwgd2hlbiBubyBwbGFjZXMgYWxsb3dlZCAqL1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfSBlbHNlIGlmIChpbmRleERlY2ltYWxTZXAgPiAtMSkge1xuICAgICAgICAgICAgLyogaWdub3JlIHN1YnNlcXVlbnQgZGVjaW1hbCBzZXBhcmF0b3JzICovXG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaW5kZXhEZWNpbWFsU2VwID0gajtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhciA9PT0gJzAnICYmIHJlbW92ZUxlYWRpbmdaZXJvcykge1xuICAgICAgICAgIC8qIHJlbW92ZSBsZWFkaW5nIHplcm8gb25seSBpZiBpdCdzIG5vdCB0aGUgb25seSB6ZXJvIGluIHRoZSAndmFsdWUnIHN0cmluZyAqL1xuICAgICAgICAgIGlmICgocmVzdWx0Lmxlbmd0aCA9PT0gMCAmJiBqICsgMSAhPT0gdmFsdWUubGVuZ3RoKSB8fCByZXN1bHQgPT09IE5FR0FUSVZFKSB7XG4gICAgICAgICAgICBpZ25vcmVkQ2hhcnMrKztcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhciA9PT0gTkVHQVRJVkUgJiYgaiA+IDApIHtcbiAgICAgICAgICAvKiBkaXNtaXNzIGNvbnRlbnQgYWZ0ZXIgYSBuZWdhdGl2ZSBzaWduIG5vdCBvbiBmaXJzdCBwb3NpdGlvbiAqL1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbmRleERlY2ltYWxTZXAgPiAtMSAmJiByZXN1bHQubGVuZ3RoICsgaWdub3JlZENoYXJzID4gaW5kZXhEZWNpbWFsU2VwICsgdGhpcy5kZWNpbWFsUGxhY2VzKSB7XG4gICAgICAgICAgLyogZGlzbWlzcyBjb250ZW50IGFmdGVyIG1heGltdW0gZGVjaW1hbCBwbGFjZXMgcmVhY2hlZCAqL1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdCArPSBjaGFyO1xuICAgICAgfSBlbHNlIGlmIChjaGFyID09PSB0aGlzLmdyb3VwaW5nU2VwYXJhdG9yKSB7XG4gICAgICAgIGlmIChpbmRleERlY2ltYWxTZXAgPT09IC0xKSB7XG4gICAgICAgICAgaWdub3JlZENoYXJzKys7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8qIGRpc21pc3MgY29udGVudCBhZnRlciBhIGludmFsaWQgY2hhcmFjdGVyICovXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICB1cGRhdGVJbnB1dCh2YWx1ZTogc3RyaW5nLCB1cGRhdGVBc3luYzogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLl9udW1lcmljVmFsdWUgPSBwYXJzZUZsb2F0KHRoaXMuc3RyaXAodmFsdWUpLnJlcGxhY2UodGhpcy5kZWNpbWFsU2VwYXJhdG9yLCAnLicpKTtcbiAgICBpZiAodGhpcy5fbnVtZXJpY1ZhbHVlICE9PSB0aGlzLnJvdW5kT3JUcnVuY2F0ZSh0aGlzLm9yaWdpbmFsVmFsdWUpKSB7XG4gICAgICB0aGlzLm9yaWdpbmFsVmFsdWUgPSB0aGlzLl9udW1lcmljVmFsdWU7XG4gICAgICBpZiAodXBkYXRlQXN5bmMpIHtcbiAgICAgICAgLy8gQ2FsbCBpbiBzZXRUaW1lb3V0IHRvIGF2b2lkIEV4cHJlc3Npb24gaGFzIGNoYW5nZWQgYWZ0ZXIgaXQgaGFzIGJlZW4gY2hlY2tlZCBlcnJvci5cbiAgICAgICAgLy8gVGhpcyBoYXBwZW5zIGZvciBleGFtcGxlIGlmIHRoZSBpbml0aWFsIGlucHV0IGhhcyBtb3JlIGRlY2ltYWwgcGxhY2VzIHRoYW4gYWxsb3dlZFxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMubnVtZXJpY1ZhbHVlQ2hhbmdlZC5lbWl0KHRoaXMuX251bWVyaWNWYWx1ZSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5udW1lcmljVmFsdWVDaGFuZ2VkLmVtaXQodGhpcy5fbnVtZXJpY1ZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWVGb3JGb3JtQ29udHJvbCgpOiBudW1iZXIge1xuICAgIHRoaXMuZm9ybWF0SW5wdXQodGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQsIGZhbHNlKTtcbiAgICBpZiAoaXNOYU4odGhpcy5fbnVtZXJpY1ZhbHVlKSkge1xuICAgICAgLy8gUmV0dXJuIHVuZGVmaW5lZCBpbnN0ZWFkIG9mIE5hTiB0byBzdXBwb3J0IHRoZSBkZWZhdWx0IHJlcXVpcmVkIHZhbGlkYXRvci5cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9udW1lcmljVmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGluamVjdFVuaXRTeW1ib2woKTogdm9pZCB7XG4gICAgLy8gTmVlZCB0byBpbmplY3QgdGhlIHVuaXQgc3ltYm9sIHdoZW4gdGhlIGlucHV0IGVsZW1lbnQgd2lkdGggaXMgc2V0IHRvIGl0cyBhY3R1YWwgdmFsdWUsXG4gICAgLy8gb3RoZXJ3aXNlIHRoZSBpY29uIHdvbnQgc2hvdyBpbiB0aGUgY29ycmVjdCBwb3NpdGlvblxuICAgIGlmICghIXRoaXMuX3VuaXQgJiYgIXRoaXMudW5pdFNwYW4gJiYgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggIT09IDApIHtcbiAgICAgIC8vIEdldCB0aGUgaW5wdXQgd3JhcHBlciBhbmQgYXBwbHkgbmVjZXNzYXJ5IHN0eWxlc1xuICAgICAgY29uc3QgaW5wdXRXcmFwcGVyID0gdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQucGFyZW50Tm9kZTtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoaW5wdXRXcmFwcGVyLCAnbnVtZXJpYy1pbnB1dC13cmFwcGVyJyk7XG5cbiAgICAgIC8vIENyZWF0ZSB0aGUgc3BhbiB3aXRoIHVuaXQgc3ltYm9sIGFuZCBhcHBseSBuZWNlc3Nhcnkgc3R5bGVzXG4gICAgICBpZiAoIXRoaXMudW5pdFNwYW4pIHtcbiAgICAgICAgdGhpcy51bml0U3BhbiA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMudW5pdFNwYW4sICd1bml0Jyk7XG4gICAgICAgIGNvbnN0IHVuaXRTeW1ib2wgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZVRleHQodGhpcy5fdW5pdCk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy51bml0U3BhbiwgdW5pdFN5bWJvbCk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoaW5wdXRXcmFwcGVyLCB0aGlzLnVuaXRTcGFuKTtcbiAgICAgIH1cblxuICAgICAgLy8gQWRkIHBhZGRpbmcgdG8gdGhlIGlucHV0IGVsZW1lbnQsIGRlcGVuZGluZyBvbiB0aGUgd2lkdGggb2YgdGhlIHVuaXQgc3ltYm9sICsgMTJweFxuICAgICAgY29uc3QgcGFkZGluZ09uSW5wdXQgPSB0aGlzLnVuaXRTcGFuLm9mZnNldFdpZHRoICsgMTI7XG4gICAgICBpZiAodGhpcy51bml0UG9zaXRpb24gPT09ICdsZWZ0Jykge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMudW5pdFNwYW4sICd1bml0LWxlZnQnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudCwgJ3BhZGRpbmctbGVmdCcsIHBhZGRpbmdPbklucHV0ICsgJ3B4Jyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMudW5pdFNwYW4sICd1bml0LXJpZ2h0Jyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQsICdwYWRkaW5nLXJpZ2h0JywgcGFkZGluZ09uSW5wdXQgKyAncHgnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRldGFjaExpc3RlbmVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlucHV0Q2hhbmdlTGlzdGVuZXIpIHtcbiAgICAgIHRoaXMuaW5wdXRDaGFuZ2VMaXN0ZW5lcigpO1xuICAgICAgZGVsZXRlIHRoaXMuaW5wdXRDaGFuZ2VMaXN0ZW5lcjtcbiAgICB9XG4gICAgaWYgKHRoaXMua2V5ZG93bkxpc3RlbmVyKSB7XG4gICAgICB0aGlzLmtleWRvd25MaXN0ZW5lcigpO1xuICAgICAgZGVsZXRlIHRoaXMua2V5ZG93bkxpc3RlbmVyO1xuICAgIH1cbiAgICBpZiAodGhpcy5rZXl1cExpc3RlbmVyKSB7XG4gICAgICB0aGlzLmtleXVwTGlzdGVuZXIoKTtcbiAgICAgIGRlbGV0ZSB0aGlzLmtleXVwTGlzdGVuZXI7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByb3VuZE9yVHJ1bmNhdGUodmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgbWV0aG9kID0gdGhpcy5yb3VuZFZhbHVlID8gJ3JvdW5kJyA6IHZhbHVlIDwgMCA/ICdjZWlsJyA6ICdmbG9vcic7XG4gICAgLy8gMTYgaXMgdGhlIGhpZ2hlc3QgcHJlY2lzaW9uIGJlZm9yZSBudW1iZXJzIGhhdmUgd2VpcmQgYmVoYXZpb3VyLiBzZWUgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xLzIxNDcyODI4LzE1MTIwOTQyXG4gICAgcmV0dXJuIE1hdGhbbWV0aG9kXSgrKHZhbHVlICogTWF0aC5wb3coMTAsIHRoaXMuZGVjaW1hbFBsYWNlcykpLnRvUHJlY2lzaW9uKDE1KSkgLyBNYXRoLnBvdygxMCwgdGhpcy5kZWNpbWFsUGxhY2VzKTtcbiAgfVxufVxuIl19
|
|
@@ -12,10 +12,10 @@ import { ClrMaxNumeric, ClrMinNumeric } from './numeric-field-validators';
|
|
|
12
12
|
import * as i0 from "@angular/core";
|
|
13
13
|
export class ClrNumericFieldModule {
|
|
14
14
|
}
|
|
15
|
-
ClrNumericFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
16
|
-
ClrNumericFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.
|
|
17
|
-
ClrNumericFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
15
|
+
ClrNumericFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrNumericFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
16
|
+
ClrNumericFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrNumericFieldModule, declarations: [ClrNumericField, ClrMaxNumeric, ClrMinNumeric], imports: [CommonModule, ClarityModule, ClrFormsModule, FormsModule], exports: [ClrNumericField, ClrMaxNumeric, ClrMinNumeric] });
|
|
17
|
+
ClrNumericFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrNumericFieldModule, imports: [[CommonModule, ClarityModule, ClrFormsModule, FormsModule]] });
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrNumericFieldModule, decorators: [{
|
|
19
19
|
type: NgModule,
|
|
20
20
|
args: [{
|
|
21
21
|
imports: [CommonModule, ClarityModule, ClrFormsModule, FormsModule],
|
|
@@ -19,9 +19,9 @@ export class ClrPagedSearchResultList {
|
|
|
19
19
|
this.pageChange = new EventEmitter();
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
|
-
ClrPagedSearchResultList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
23
|
-
ClrPagedSearchResultList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.
|
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
22
|
+
ClrPagedSearchResultList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrPagedSearchResultList, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
23
|
+
ClrPagedSearchResultList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: ClrPagedSearchResultList, selector: "clr-paged-search-result-list", inputs: { pageSize: ["clrPageSize", "pageSize"], currentPage: ["clrPage", "currentPage"], totalItems: ["clrTotalItems", "totalItems"], items: ["clrItems", "items"], clrPagerPosition: "clrPagerPosition" }, outputs: { pageChange: "clrPageChange" }, queries: [{ propertyName: "itemTemplate", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: "<div class=\"clr-row\">\n <clr-pager\n class=\"pager-top\"\n *ngIf=\"clrPagerPosition === 'top' || clrPagerPosition === 'both'\"\n [clrPage]=\"currentPage\"\n [clrPageSize]=\"pageSize\"\n [clrTotalItems]=\"totalItems\"\n (clrPageChange)=\"pageChange.emit($event)\"\n ></clr-pager>\n</div>\n<ng-container *ngFor=\"let item of items\" [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{item: item}\">\n <div *ngIf=\"!itemTemplate\">Item template input is undefined!</div>\n</ng-container>\n<div class=\"clr-row\">\n <clr-pager\n class=\"pager-bottom\"\n *ngIf=\"clrPagerPosition === 'bottom' || clrPagerPosition === 'both'\"\n [clrPage]=\"currentPage\"\n [clrPageSize]=\"pageSize\"\n [clrTotalItems]=\"totalItems\"\n (clrPageChange)=\"pageChange.emit($event)\"\n ></clr-pager>\n</div>\n", components: [{ type: i1.ClrPager, selector: "clr-pager", inputs: ["clrPageSize", "clrTotalItems", "clrLast", "clrPage"], outputs: ["clrPageChange"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrPagedSearchResultList, decorators: [{
|
|
25
25
|
type: Component,
|
|
26
26
|
args: [{ selector: 'clr-paged-search-result-list', template: "<div class=\"clr-row\">\n <clr-pager\n class=\"pager-top\"\n *ngIf=\"clrPagerPosition === 'top' || clrPagerPosition === 'both'\"\n [clrPage]=\"currentPage\"\n [clrPageSize]=\"pageSize\"\n [clrTotalItems]=\"totalItems\"\n (clrPageChange)=\"pageChange.emit($event)\"\n ></clr-pager>\n</div>\n<ng-container *ngFor=\"let item of items\" [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{item: item}\">\n <div *ngIf=\"!itemTemplate\">Item template input is undefined!</div>\n</ng-container>\n<div class=\"clr-row\">\n <clr-pager\n class=\"pager-bottom\"\n *ngIf=\"clrPagerPosition === 'bottom' || clrPagerPosition === 'both'\"\n [clrPage]=\"currentPage\"\n [clrPageSize]=\"pageSize\"\n [clrTotalItems]=\"totalItems\"\n (clrPageChange)=\"pageChange.emit($event)\"\n ></clr-pager>\n</div>\n" }]
|
|
27
27
|
}], propDecorators: { pageSize: [{
|
|
@@ -12,10 +12,10 @@ import { ClrPagerModule } from '../pager/pager.module';
|
|
|
12
12
|
import * as i0 from "@angular/core";
|
|
13
13
|
export class ClrPagedSearchResultListModule {
|
|
14
14
|
}
|
|
15
|
-
ClrPagedSearchResultListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
16
|
-
ClrPagedSearchResultListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.
|
|
17
|
-
ClrPagedSearchResultListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
15
|
+
ClrPagedSearchResultListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrPagedSearchResultListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
16
|
+
ClrPagedSearchResultListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrPagedSearchResultListModule, declarations: [ClrPagedSearchResultList], imports: [CommonModule, ClarityModule, FormsModule, ClrPagerModule], exports: [ClrPagedSearchResultList] });
|
|
17
|
+
ClrPagedSearchResultListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrPagedSearchResultListModule, imports: [[CommonModule, ClarityModule, FormsModule, ClrPagerModule]] });
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrPagedSearchResultListModule, decorators: [{
|
|
19
19
|
type: NgModule,
|
|
20
20
|
args: [{
|
|
21
21
|
imports: [CommonModule, ClarityModule, FormsModule, ClrPagerModule],
|
package/esm2020/pager/pager.mjs
CHANGED
|
@@ -111,9 +111,9 @@ export class ClrPager {
|
|
|
111
111
|
return middlePages;
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
|
-
ClrPager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
115
|
-
ClrPager.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.
|
|
116
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
114
|
+
ClrPager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrPager, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
115
|
+
ClrPager.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: ClrPager, selector: "clr-pager", inputs: { pageSize: ["clrPageSize", "pageSize"], totalItems: ["clrTotalItems", "totalItems"], last: ["clrLast", "last"], page: ["clrPage", "page"] }, outputs: { pageChange: "clrPageChange" }, host: { properties: { "class.pager": "true" } }, ngImport: i0, template: "<div class=\"btn-group\" *ngIf=\"last > 1\">\n <button class=\"btn pagination-previous\" (click)=\"previous()\" [disabled]=\"page == 1\">\n <clr-icon shape=\"angle left\"></clr-icon>\n </button>\n <button *ngIf=\"page > 2\" class=\"btn\" (click)=\"page = 1\">1</button>\n <button *ngIf=\"page > 3\" class=\"btn\" disabled>...</button>\n\n <ng-container *ngFor=\"let pageNum of middlePages\">\n <button *ngIf=\"pageNum !== page; else activePage\" class=\"btn\" (click)=\"page = pageNum\">{{pageNum}}</button>\n <ng-template #activePage>\n <button class=\"btn btn-primary\" type=\"button\">{{pageNum}}</button>\n </ng-template>\n </ng-container>\n\n <button *ngIf=\"page < last - 2\" class=\"btn\" disabled>...</button>\n <button *ngIf=\"page < last - 1\" class=\"btn\" (click)=\"page = last\">{{last}}</button>\n <button class=\"btn pagination-next\" (click)=\"next()\" [disabled]=\"page == last\">\n <clr-icon shape=\"angle right\"></clr-icon>\n </button>\n</div>\n", directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.ClrIconCustomTag, selector: "clr-icon" }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
116
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrPager, decorators: [{
|
|
117
117
|
type: Component,
|
|
118
118
|
args: [{ selector: 'clr-pager', host: { '[class.pager]': 'true' }, template: "<div class=\"btn-group\" *ngIf=\"last > 1\">\n <button class=\"btn pagination-previous\" (click)=\"previous()\" [disabled]=\"page == 1\">\n <clr-icon shape=\"angle left\"></clr-icon>\n </button>\n <button *ngIf=\"page > 2\" class=\"btn\" (click)=\"page = 1\">1</button>\n <button *ngIf=\"page > 3\" class=\"btn\" disabled>...</button>\n\n <ng-container *ngFor=\"let pageNum of middlePages\">\n <button *ngIf=\"pageNum !== page; else activePage\" class=\"btn\" (click)=\"page = pageNum\">{{pageNum}}</button>\n <ng-template #activePage>\n <button class=\"btn btn-primary\" type=\"button\">{{pageNum}}</button>\n </ng-template>\n </ng-container>\n\n <button *ngIf=\"page < last - 2\" class=\"btn\" disabled>...</button>\n <button *ngIf=\"page < last - 1\" class=\"btn\" (click)=\"page = last\">{{last}}</button>\n <button class=\"btn pagination-next\" (click)=\"next()\" [disabled]=\"page == last\">\n <clr-icon shape=\"angle right\"></clr-icon>\n </button>\n</div>\n" }]
|
|
119
119
|
}], propDecorators: { pageChange: [{
|
|
@@ -11,10 +11,10 @@ import { ClrPager } from './pager';
|
|
|
11
11
|
import * as i0 from "@angular/core";
|
|
12
12
|
export class ClrPagerModule {
|
|
13
13
|
}
|
|
14
|
-
ClrPagerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
15
|
-
ClrPagerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.
|
|
16
|
-
ClrPagerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
14
|
+
ClrPagerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrPagerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
15
|
+
ClrPagerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrPagerModule, declarations: [ClrPager], imports: [CommonModule, ClarityModule, FormsModule], exports: [ClrPager] });
|
|
16
|
+
ClrPagerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrPagerModule, imports: [[CommonModule, ClarityModule, FormsModule]] });
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrPagerModule, decorators: [{
|
|
18
18
|
type: NgModule,
|
|
19
19
|
args: [{
|
|
20
20
|
imports: [CommonModule, ClarityModule, FormsModule],
|
|
@@ -47,14 +47,14 @@ export class ClrProgressSpinnerComponent {
|
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
ClrProgressSpinnerComponent.MINIMUM_VISIBLE_DURATION = 200;
|
|
50
|
-
ClrProgressSpinnerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
51
|
-
ClrProgressSpinnerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.
|
|
50
|
+
ClrProgressSpinnerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrProgressSpinnerComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
51
|
+
ClrProgressSpinnerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: ClrProgressSpinnerComponent, selector: "clr-progress-spinner", inputs: { size: ["clrSize", "size"], showSpinner: ["clrShowSpinner", "showSpinner"] }, host: { properties: { "class.progress-spinner-overlay": "_showSpinner" } }, ngImport: i0, template: `
|
|
52
52
|
<ng-container *ngIf="_showSpinner">
|
|
53
53
|
<span [class]="'spinner-' + size + ' spinner'"></span>
|
|
54
54
|
<span> <ng-content></ng-content></span>
|
|
55
55
|
</ng-container>
|
|
56
56
|
`, isInline: true, directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
57
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrProgressSpinnerComponent, decorators: [{
|
|
58
58
|
type: Component,
|
|
59
59
|
args: [{
|
|
60
60
|
selector: 'clr-progress-spinner',
|
|
@@ -9,10 +9,10 @@ import { ClrProgressSpinnerComponent } from './progress-spinner';
|
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
export class ClrProgressSpinnerModule {
|
|
11
11
|
}
|
|
12
|
-
ClrProgressSpinnerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
13
|
-
ClrProgressSpinnerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.
|
|
14
|
-
ClrProgressSpinnerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
12
|
+
ClrProgressSpinnerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrProgressSpinnerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
13
|
+
ClrProgressSpinnerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrProgressSpinnerModule, declarations: [ClrProgressSpinnerComponent], imports: [CommonModule], exports: [ClrProgressSpinnerComponent] });
|
|
14
|
+
ClrProgressSpinnerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrProgressSpinnerModule, imports: [[CommonModule]] });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrProgressSpinnerModule, decorators: [{
|
|
16
16
|
type: NgModule,
|
|
17
17
|
args: [{
|
|
18
18
|
imports: [CommonModule],
|
|
@@ -35,9 +35,9 @@ export class ClrAddOption {
|
|
|
35
35
|
!!this.select && this.select.nativeElement.focus();
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
-
ClrAddOption.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
39
|
-
ClrAddOption.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
38
|
+
ClrAddOption.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrAddOption, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
39
|
+
ClrAddOption.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: ClrAddOption, selector: "clr-add-option", inputs: { blankOption: "blankOption", value: "value", mandatory: "mandatory", allValues: "allValues", excludedValues: "excludedValues", readonly: "readonly", disabled: "disabled" }, outputs: { valueChanged: "valueChanged", remove: "remove" }, host: { properties: { "class.quick-list-option": "true" } }, viewQueries: [{ propertyName: "select", first: true, predicate: ["select"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"!(readonly || readonly === ''); else readonlyView\" class=\"clr-select-wrapper quick-list-input\">\n <select #select clr-select class=\"quick-list-select\" name=\"options\" [(ngModel)]=\"selectedValue\" [disabled]=\"disabled\">\n <option *ngIf=\"blankOption.id === selectedValue\" [selected]=\"true\" [disabled]=\"true\" [ngValue]=\"blankOption.id\">\n {{blankOption.label}}\n </option>\n <option *ngFor=\"let val of getValues()\" [selected]=\"val.id === selectedValue\" [ngValue]=\"val.id\">\n {{val.label}}\n </option>\n </select>\n</div>\n\n<ng-template #readonlyView>\n <span>{{value.label}}</span>\n</ng-template>\n\n<button\n *ngIf=\"!(readonly || readonly === '')\"\n type=\"button\"\n class=\"btn btn-icon btn-link quick-list-trash\"\n [disabled]=\"trashDisabled() || disabled\"\n (click)=\"remove.emit()\"\n>\n <clr-icon shape=\"trash\"></clr-icon>\n</button>\n", directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.ClrIconCustomTag, selector: "clr-icon" }] });
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrAddOption, decorators: [{
|
|
41
41
|
type: Component,
|
|
42
42
|
args: [{ selector: 'clr-add-option', host: { '[class.quick-list-option]': 'true' }, template: "<div *ngIf=\"!(readonly || readonly === ''); else readonlyView\" class=\"clr-select-wrapper quick-list-input\">\n <select #select clr-select class=\"quick-list-select\" name=\"options\" [(ngModel)]=\"selectedValue\" [disabled]=\"disabled\">\n <option *ngIf=\"blankOption.id === selectedValue\" [selected]=\"true\" [disabled]=\"true\" [ngValue]=\"blankOption.id\">\n {{blankOption.label}}\n </option>\n <option *ngFor=\"let val of getValues()\" [selected]=\"val.id === selectedValue\" [ngValue]=\"val.id\">\n {{val.label}}\n </option>\n </select>\n</div>\n\n<ng-template #readonlyView>\n <span>{{value.label}}</span>\n</ng-template>\n\n<button\n *ngIf=\"!(readonly || readonly === '')\"\n type=\"button\"\n class=\"btn btn-icon btn-link quick-list-trash\"\n [disabled]=\"trashDisabled() || disabled\"\n (click)=\"remove.emit()\"\n>\n <clr-icon shape=\"trash\"></clr-icon>\n</button>\n" }]
|
|
43
43
|
}], propDecorators: { blankOption: [{
|
|
@@ -72,15 +72,15 @@ export class ClrQuickList extends ClrAbstractFormComponent {
|
|
|
72
72
|
return this.hasBlankOption() || this.values.length === this.allValues.length;
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
|
-
ClrQuickList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
76
|
-
ClrQuickList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.
|
|
75
|
+
ClrQuickList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrQuickList, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
76
|
+
ClrQuickList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: ClrQuickList, selector: "clr-quick-list", inputs: { blankOption: ["clrBlankOption", "blankOption"], allValues: ["clrAllValues", "allValues"], mandatory: ["clrMandatory", "mandatory"], values: ["clrValues", "values"], addLabel: ["clrAddLabel", "addLabel"], controlClasses: ["clrControlClasses", "controlClasses"], readonly: "readonly" }, outputs: { valuesChanged: "clrValuesChanged", emptyOptionAdded: "clrEmptyOptionAdded" }, host: { properties: { "class.quick-list": "true" } }, providers: [
|
|
77
77
|
{
|
|
78
78
|
provide: NG_VALUE_ACCESSOR,
|
|
79
79
|
useExisting: forwardRef(() => ClrQuickList),
|
|
80
80
|
multi: true,
|
|
81
81
|
},
|
|
82
82
|
], viewQueries: [{ propertyName: "options", predicate: ClrAddOption, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"label\"></ng-content>\n<div class=\"clr-control-container\" [ngClass]=\"controlClasses\">\n <ng-container *ngFor=\"let value of values; index as i\">\n <clr-add-option\n [allValues]=\"allValues\"\n [excludedValues]=\"values\"\n (remove)=\"onRemoveValue(i)\"\n [value]=\"value\"\n (valueChanged)=\"onValueChanged($event, i)\"\n [blankOption]=\"blankOption\"\n [mandatory]=\"mandatory\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n >\n </clr-add-option>\n </ng-container>\n <button\n *ngIf=\"!(readonly || readonly === '')\"\n type=\"button\"\n class=\"btn btn-link btn-sm quick-list-add\"\n (click)=\"addBlankOption()\"\n [disabled]=\"addNotPossible() || disabled\"\n >\n {{addLabel}}\n </button>\n</div>\n", components: [{ type: i1.ClrAddOption, selector: "clr-add-option", inputs: ["blankOption", "value", "mandatory", "allValues", "excludedValues", "readonly", "disabled"], outputs: ["valueChanged", "remove"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
83
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
83
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrQuickList, decorators: [{
|
|
84
84
|
type: Component,
|
|
85
85
|
args: [{ selector: 'clr-quick-list', host: { '[class.quick-list]': 'true' }, providers: [
|
|
86
86
|
{
|
|
@@ -12,10 +12,10 @@ import { ClrAddOption } from './add-option';
|
|
|
12
12
|
import * as i0 from "@angular/core";
|
|
13
13
|
export class ClrQuickListModule {
|
|
14
14
|
}
|
|
15
|
-
ClrQuickListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
16
|
-
ClrQuickListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.
|
|
17
|
-
ClrQuickListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
15
|
+
ClrQuickListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrQuickListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
16
|
+
ClrQuickListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrQuickListModule, declarations: [ClrQuickList, ClrAddOption], imports: [CommonModule, FormsModule, ClarityModule, ClrFormsModule], exports: [ClrQuickList] });
|
|
17
|
+
ClrQuickListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrQuickListModule, imports: [[CommonModule, FormsModule, ClarityModule, ClrFormsModule]] });
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrQuickListModule, decorators: [{
|
|
19
19
|
type: NgModule,
|
|
20
20
|
args: [{
|
|
21
21
|
imports: [CommonModule, FormsModule, ClarityModule, ClrFormsModule],
|
|
@@ -88,9 +88,9 @@ export class ClrSearchField {
|
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
|
-
ClrSearchField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
92
|
-
ClrSearchField.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.
|
|
93
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
91
|
+
ClrSearchField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrSearchField, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.NgControl }], target: i0.ɵɵFactoryTarget.Directive });
|
|
92
|
+
ClrSearchField.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.0", type: ClrSearchField, selector: "[clrSearch]", host: { properties: { "class.search-input": "true" } }, ngImport: i0 });
|
|
93
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrSearchField, decorators: [{
|
|
94
94
|
type: Directive,
|
|
95
95
|
args: [{
|
|
96
96
|
selector: '[clrSearch]',
|
|
@@ -11,10 +11,10 @@ import { ClrSearchField } from './search-field';
|
|
|
11
11
|
import * as i0 from "@angular/core";
|
|
12
12
|
export class ClrSearchFieldModule {
|
|
13
13
|
}
|
|
14
|
-
ClrSearchFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
15
|
-
ClrSearchFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.
|
|
16
|
-
ClrSearchFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
14
|
+
ClrSearchFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrSearchFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
15
|
+
ClrSearchFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrSearchFieldModule, declarations: [ClrSearchField], imports: [CommonModule, ClarityModule, FormsModule], exports: [ClrSearchField] });
|
|
16
|
+
ClrSearchFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrSearchFieldModule, imports: [[CommonModule, ClarityModule, FormsModule]] });
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrSearchFieldModule, decorators: [{
|
|
18
18
|
type: NgModule,
|
|
19
19
|
args: [{
|
|
20
20
|
imports: [CommonModule, ClarityModule, FormsModule],
|
|
@@ -19,9 +19,9 @@ export class TreetableCellRenderer {
|
|
|
19
19
|
this.renderer.setStyle(this.el.nativeElement, 'max-width', maxWidth + 'px');
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
|
-
TreetableCellRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
23
|
-
TreetableCellRenderer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.
|
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
22
|
+
TreetableCellRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: TreetableCellRenderer, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
23
|
+
TreetableCellRenderer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.0", type: TreetableCellRenderer, selector: "clr-tt-cell", ngImport: i0 });
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: TreetableCellRenderer, decorators: [{
|
|
25
25
|
type: Directive,
|
|
26
26
|
args: [{ selector: 'clr-tt-cell' }]
|
|
27
27
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; } });
|
|
@@ -32,9 +32,9 @@ export class TreetableHeaderRenderer {
|
|
|
32
32
|
this.renderer.addClass(this.el.nativeElement, 'clr-col');
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
TreetableHeaderRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
36
|
-
TreetableHeaderRenderer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.
|
|
37
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
35
|
+
TreetableHeaderRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: TreetableHeaderRenderer, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
36
|
+
TreetableHeaderRenderer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.0", type: TreetableHeaderRenderer, selector: "clr-tt-column", ngImport: i0 });
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: TreetableHeaderRenderer, decorators: [{
|
|
38
38
|
type: Directive,
|
|
39
39
|
args: [{ selector: 'clr-tt-column' }]
|
|
40
40
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; } });
|
|
@@ -80,9 +80,9 @@ export class TreetableMainRenderer {
|
|
|
80
80
|
});
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
|
-
TreetableMainRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
84
|
-
TreetableMainRenderer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.
|
|
85
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
83
|
+
TreetableMainRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: TreetableMainRenderer, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
84
|
+
TreetableMainRenderer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.0", type: TreetableMainRenderer, selector: "clr-treetable", host: { listeners: { "window:resize": "onResize()" } }, queries: [{ propertyName: "headers", predicate: TreetableHeaderRenderer }, { propertyName: "rows", predicate: TreetableRowRenderer, descendants: true }, { propertyName: "columns", predicate: ClrTreetableColumn }], ngImport: i0 });
|
|
85
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: TreetableMainRenderer, decorators: [{
|
|
86
86
|
type: Directive,
|
|
87
87
|
args: [{
|
|
88
88
|
selector: 'clr-treetable',
|
|
@@ -8,9 +8,9 @@ import { TreetableCellRenderer } from './cell-renderer';
|
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
export class TreetableRowRenderer {
|
|
10
10
|
}
|
|
11
|
-
TreetableRowRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
12
|
-
TreetableRowRenderer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
11
|
+
TreetableRowRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: TreetableRowRenderer, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
12
|
+
TreetableRowRenderer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.0", type: TreetableRowRenderer, selector: "clr-tt-row", queries: [{ propertyName: "cells", predicate: TreetableCellRenderer }], ngImport: i0 });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: TreetableRowRenderer, decorators: [{
|
|
14
14
|
type: Directive,
|
|
15
15
|
args: [{ selector: 'clr-tt-row' }]
|
|
16
16
|
}], propDecorators: { cells: [{
|
|
@@ -44,8 +44,8 @@ export class ClrTreetableActionOverflow {
|
|
|
44
44
|
this.destroyed$.complete();
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
-
ClrTreetableActionOverflow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
48
|
-
ClrTreetableActionOverflow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.
|
|
47
|
+
ClrTreetableActionOverflow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrTreetableActionOverflow, deps: [{ token: i1.ClrPopoverToggleService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
48
|
+
ClrTreetableActionOverflow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: ClrTreetableActionOverflow, selector: "clr-tt-action-overflow", inputs: { empty: "empty" }, host: { attributes: { "role": "cell" }, properties: { "class.treetable-row-actions": "true", "class.treetable-cell": "true" } }, providers: [ClrPopoverToggleService, ClrPopoverEventsService, ClrPopoverPositionService], ngImport: i0, template: `
|
|
49
49
|
<ng-container *ngIf="!empty">
|
|
50
50
|
<button class="treetable-action-trigger" clrPopoverAnchor clrPopoverOpenCloseButton>
|
|
51
51
|
<clr-icon shape="ellipsis-vertical"></clr-icon>
|
|
@@ -60,7 +60,7 @@ ClrTreetableActionOverflow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
|
|
|
60
60
|
</div>
|
|
61
61
|
</ng-container>
|
|
62
62
|
`, isInline: true, directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { type: i1.ÇlrClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { type: i1.ClrIconCustomTag, selector: "clr-icon" }, { type: i1.ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose"] }, { type: i1.ÇlrFocusTrapDirective, selector: "[clrFocusTrap]", inputs: ["clrFocusTrap"] }] });
|
|
63
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ClrTreetableActionOverflow, decorators: [{
|
|
64
64
|
type: Component,
|
|
65
65
|
args: [{
|
|
66
66
|
selector: 'clr-tt-action-overflow',
|