@ardium-ui/ui 4.2.2 → 4.4.0
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/esm2022/lib/_internal/form-field-component.mjs +1 -1
- package/esm2022/lib/_internal/item-storages/simple-item-storage.mjs +2 -2
- package/esm2022/lib/_internal/selectable-list-component.mjs +1 -1
- package/esm2022/lib/calendar/calendar.component.mjs +20 -7
- package/esm2022/lib/calendar/calendar.defaults.mjs +3 -3
- package/esm2022/lib/file-inputs/file-input/file-input.component.mjs +4 -4
- package/esm2022/lib/file-inputs/file-input-base.mjs +2 -3
- package/esm2022/lib/form-field/form-field-base.mjs +53 -0
- package/esm2022/lib/form-field/form-field-child.token.mjs +3 -0
- package/esm2022/lib/form-field/form-field-native-inputs.mjs +80 -0
- package/esm2022/lib/form-field/form-field.component.mjs +7 -28
- package/esm2022/lib/form-field/form-field.defaults.mjs +3 -1
- package/esm2022/lib/form-field/form-field.module.mjs +6 -1
- package/esm2022/lib/form-field/horizontal-form-field.component.mjs +7 -28
- package/esm2022/lib/form-field/index.mjs +2 -1
- package/esm2022/lib/form-field/label/label.component.mjs +10 -4
- package/esm2022/lib/inputs/date-input/date-input.component.mjs +9 -6
- package/esm2022/lib/inputs/digit-input/digit-input.component.mjs +4 -3
- package/esm2022/lib/inputs/hex-input/hex-input.component.mjs +4 -3
- package/esm2022/lib/inputs/input/input.component.mjs +4 -4
- package/esm2022/lib/inputs/number-input/number-input.component.mjs +4 -3
- package/esm2022/lib/inputs/password-input/password-input.component.mjs +4 -3
- package/esm2022/lib/inputs/simple-input/simple-input.component.mjs +4 -4
- package/esm2022/lib/radio/radio-group.component.mjs +10 -1
- package/esm2022/lib/segment/segment.component.mjs +4 -4
- package/esm2022/lib/select/select.component.mjs +4 -3
- package/fesm2022/ardium-ui-ui.mjs +175 -56
- package/fesm2022/ardium-ui-ui.mjs.map +1 -1
- package/lib/_internal/form-field-component.d.ts +2 -1
- package/lib/_internal/selectable-list-component.d.ts +2 -1
- package/lib/calendar/calendar.component.d.ts +2 -2
- package/lib/calendar/calendar.defaults.d.ts +2 -2
- package/lib/file-inputs/file-input-base.d.ts +0 -1
- package/lib/form-field/form-field-base.d.ts +22 -0
- package/lib/form-field/form-field-child.token.d.ts +8 -0
- package/lib/form-field/form-field-native-inputs.d.ts +22 -0
- package/lib/form-field/form-field.component.d.ts +3 -15
- package/lib/form-field/form-field.defaults.d.ts +2 -0
- package/lib/form-field/form-field.module.d.ts +8 -7
- package/lib/form-field/horizontal-form-field.component.d.ts +3 -15
- package/lib/form-field/index.d.ts +1 -0
- package/lib/form-field/label/label.component.d.ts +4 -1
- package/lib/inputs/date-input/date-input.component.d.ts +1 -0
- package/package.json +1 -1
- package/prebuilt-themes/default/buttons/button.css +2 -2
- package/prebuilt-themes/default/form-field.css +13 -0
- package/prebuilt-themes/default/form-field.css.map +1 -1
- package/prebuilt-themes/default/inputs/date-input.css +1 -0
- package/prebuilt-themes/default/inputs/date-input.css.map +1 -1
- package/themes/default/buttons/button.scss +2 -2
- package/themes/default/form-field.scss +16 -0
- package/themes/default/inputs/date-input.scss +1 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, Inject, ViewEncapsulation, computed, contentChild, forwardRef, input, } from '@angular/core';
|
|
2
2
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
3
|
import { coerceBooleanProperty, coerceNumberProperty } from '@ardium-ui/devkit';
|
|
4
|
-
import { _FormFieldComponentBase } from '../_internal/form-field-component';
|
|
5
4
|
import { _SelectableListComponentBase } from '../_internal/selectable-list-component';
|
|
5
|
+
import { ARD_FORM_FIELD_CONTROL } from '../form-field/form-field-child.token';
|
|
6
6
|
import { ARD_SEGMENT_DEFAULTS } from './segment.defaults';
|
|
7
7
|
import { ArdSegmentOptionTemplateDirective } from './segment.directives';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
@@ -100,7 +100,7 @@ export class ArdiumSegmentComponent extends _SelectableListComponentBase {
|
|
|
100
100
|
multi: true,
|
|
101
101
|
},
|
|
102
102
|
{
|
|
103
|
-
provide:
|
|
103
|
+
provide: ARD_FORM_FIELD_CONTROL,
|
|
104
104
|
useExisting: ArdiumSegmentComponent,
|
|
105
105
|
},
|
|
106
106
|
], queries: [{ propertyName: "optionTemplate", first: true, predicate: ArdSegmentOptionTemplateDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\r\n #focusableElement\r\n class=\"ard-segment-container\"\r\n [class.ard-disabled]=\"disabled()\"\r\n [ariaDisabled]=\"disabled()\"\r\n [ngClass]=\"ngClasses()\"\r\n [class.ard-focus-visible]=\"isFocused() && !isMouseBeingUsed\"\r\n [class.ard-using-keyboard]=\"!isMouseBeingUsed\"\r\n [attr.tabindex]=\"tabIndex()\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n>\r\n @for (row of itemRows(); track $index) {\r\n <div\r\n class=\"ard-segment-row\"\r\n [class.ard-segment-row-partial]=\"row.isNotFull\"\r\n [class.ard-segment-row-uniform]=\"uniformWidths() || itemsPerRow() < items.length\"\r\n [style]=\"{ '--ard-_segment-row-items': itemsInActualRow }\"\r\n >\r\n @for (option of row.options; track $index) {\r\n <button\r\n type=\"button\"\r\n class=\"ard-segment-option\"\r\n tabindex=\"-1\"\r\n [class.ard-option-disabled]=\"option.disabled() || (isItemLimitReached() && !option.selected())\"\r\n [class.ard-option-selected]=\"option.selected()\"\r\n [class.ard-option-highlighted]=\"option.highlighted()\"\r\n [ariaSelected]=\"option.selected()\"\r\n (mouseenter)=\"onItemMouseEnter(option, $event)\"\r\n (mouseleave)=\"onItemMouseLeave(option, $event)\"\r\n (click)=\"onItemClick(option, $event)\"\r\n >\r\n <div class=\"ard-focus-overlay\"></div>\r\n <div class=\"ard-button-content\">\r\n <span class=\"ard-option-label\">\r\n <ng-template #defaultOptionTemplate>\r\n {{ option.label() }}\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"optionTemplate()?.template || defaultOptionTemplate\"\r\n [ngTemplateOutletContext]=\"getOptionContext(option)\"\r\n />\r\n </span>\r\n </div>\r\n </button>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: [".ard-segment-container{display:flex;flex-direction:column}.ard-segment-container.ard-align-left .ard-segment-option{justify-content:left}.ard-segment-container.ard-align-middle .ard-segment-option{justify-content:center}.ard-segment-container.ard-align-right .ard-segment-option{justify-content:right}.ard-segment-row{width:100%;display:flex;align-items:center}.ard-segment-row.ard-segment-row-uniform{display:grid;grid-template-columns:repeat(var(--ard-_segment-row-items),1fr)}.ard-segment-option{-webkit-user-select:none;user-select:none}.ard-option-disabled{pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
@@ -114,7 +114,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
114
114
|
multi: true,
|
|
115
115
|
},
|
|
116
116
|
{
|
|
117
|
-
provide:
|
|
117
|
+
provide: ARD_FORM_FIELD_CONTROL,
|
|
118
118
|
useExisting: ArdiumSegmentComponent,
|
|
119
119
|
},
|
|
120
120
|
], template: "<div\r\n #focusableElement\r\n class=\"ard-segment-container\"\r\n [class.ard-disabled]=\"disabled()\"\r\n [ariaDisabled]=\"disabled()\"\r\n [ngClass]=\"ngClasses()\"\r\n [class.ard-focus-visible]=\"isFocused() && !isMouseBeingUsed\"\r\n [class.ard-using-keyboard]=\"!isMouseBeingUsed\"\r\n [attr.tabindex]=\"tabIndex()\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n>\r\n @for (row of itemRows(); track $index) {\r\n <div\r\n class=\"ard-segment-row\"\r\n [class.ard-segment-row-partial]=\"row.isNotFull\"\r\n [class.ard-segment-row-uniform]=\"uniformWidths() || itemsPerRow() < items.length\"\r\n [style]=\"{ '--ard-_segment-row-items': itemsInActualRow }\"\r\n >\r\n @for (option of row.options; track $index) {\r\n <button\r\n type=\"button\"\r\n class=\"ard-segment-option\"\r\n tabindex=\"-1\"\r\n [class.ard-option-disabled]=\"option.disabled() || (isItemLimitReached() && !option.selected())\"\r\n [class.ard-option-selected]=\"option.selected()\"\r\n [class.ard-option-highlighted]=\"option.highlighted()\"\r\n [ariaSelected]=\"option.selected()\"\r\n (mouseenter)=\"onItemMouseEnter(option, $event)\"\r\n (mouseleave)=\"onItemMouseLeave(option, $event)\"\r\n (click)=\"onItemClick(option, $event)\"\r\n >\r\n <div class=\"ard-focus-overlay\"></div>\r\n <div class=\"ard-button-content\">\r\n <span class=\"ard-option-label\">\r\n <ng-template #defaultOptionTemplate>\r\n {{ option.label() }}\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"optionTemplate()?.template || defaultOptionTemplate\"\r\n [ngTemplateOutletContext]=\"getOptionContext(option)\"\r\n />\r\n </span>\r\n </div>\r\n </button>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: [".ard-segment-container{display:flex;flex-direction:column}.ard-segment-container.ard-align-left .ard-segment-option{justify-content:left}.ard-segment-container.ard-align-middle .ard-segment-option{justify-content:center}.ard-segment-container.ard-align-right .ard-segment-option{justify-content:right}.ard-segment-row{width:100%;display:flex;align-items:center}.ard-segment-row.ard-segment-row-uniform{display:grid;grid-template-columns:repeat(var(--ard-_segment-row-items),1fr)}.ard-segment-option{-webkit-user-select:none;user-select:none}.ard-option-disabled{pointer-events:none}\n"] }]
|
|
@@ -122,4 +122,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
122
122
|
type: Inject,
|
|
123
123
|
args: [ARD_SEGMENT_DEFAULTS]
|
|
124
124
|
}] }] });
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL3NlZ21lbnQvc2VnbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL3NlZ21lbnQvc2VnbWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUt0RixPQUFPLEVBQUUsb0JBQW9CLEVBQXNCLE1BQU0sb0JBQW9CLENBQUM7QUFDOUUsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQTBCekUsTUFBTSxPQUFPLHNCQUF1QixTQUFRLDRCQUE0QjtJQUt0RSxZQUEwQyxRQUE0QjtRQUNwRSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFMQSxpQkFBWSxHQUFXLEtBQUssQ0FBQztRQUM3QixtQkFBYyxHQUFXLFNBQVMsQ0FBQztRQU9yRCxjQUFjO1FBQ0wsZUFBVSxHQUFHLEtBQUssQ0FBb0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqRSxZQUFPLEdBQUcsS0FBSyxDQUFpQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFD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b250ZW50SW5pdCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgSW5qZWN0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIGNvbXB1dGVkLFxyXG4gIGNvbnRlbnRDaGlsZCxcclxuICBmb3J3YXJkUmVmLFxyXG4gIGlucHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBjb2VyY2VOdW1iZXJQcm9wZXJ0eSB9IGZyb20gJ0BhcmRpdW0tdWkvZGV2a2l0JztcclxuaW1wb3J0IHsgX0Zvcm1GaWVsZENvbXBvbmVudEJhc2UgfSBmcm9tICcuLi9faW50ZXJuYWwvZm9ybS1maWVsZC1jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBfU2VsZWN0YWJsZUxpc3RDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vX2ludGVybmFsL3NlbGVjdGFibGUtbGlzdC1jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBPbmVBeGlzQWxpZ25tZW50IH0gZnJvbSAnLi4vdHlwZXMvYWxpZ25tZW50LnR5cGVzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50Q29sb3IgfSBmcm9tICcuLi90eXBlcy9jb2xvcnMudHlwZXMnO1xyXG5pbXBvcnQgeyBBcmRPcHRpb25TaW1wbGUgfSBmcm9tICcuLi90eXBlcy9pdGVtLXN0b3JhZ2UudHlwZXMnO1xyXG5pbXBvcnQgeyBTaW1wbGVJdGVtU3RvcmFnZUhvc3QgfSBmcm9tICcuLy4uL19pbnRlcm5hbC9pdGVtLXN0b3JhZ2VzL3NpbXBsZS1pdGVtLXN0b3JhZ2UnO1xyXG5pbXBvcnQgeyBBUkRfU0VHTUVOVF9ERUZBVUxUUywgQXJkU2VnbWVudERlZmF1bHRzIH0gZnJvbSAnLi9zZWdtZW50LmRlZmF1bHRzJztcclxuaW1wb3J0IHsgQXJkU2VnbWVudE9wdGlvblRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9zZWdtZW50LmRpcmVjdGl2ZXMnO1xyXG5pbXBvcnQgeyBTZWdtZW50QXBwZWFyYW5jZSwgU2VnbWVudFZhcmlhbnQgfSBmcm9tICcuL3NlZ21lbnQudHlwZXMnO1xyXG5cclxuaW50ZXJmYWNlIFNlZ21lbnRSb3cge1xyXG4gIG9wdGlvbnM6IEFyZE9wdGlvblNpbXBsZVtdO1xyXG4gIGlzTm90RnVsbD86IGJvb2xlYW47XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXJkLXNlZ21lbnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWdtZW50LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zZWdtZW50LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFyZGl1bVNlZ21lbnRDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IF9Gb3JtRmllbGRDb21wb25lbnRCYXNlLFxyXG4gICAgICB1c2VFeGlzdGluZzogQXJkaXVtU2VnbWVudENvbXBvbmVudCxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFyZGl1bVNlZ21lbnRDb21wb25lbnQgZXh0ZW5kcyBfU2VsZWN0YWJsZUxpc3RDb21wb25lbnRCYXNlIGltcGxlbWVudHMgU2ltcGxlSXRlbVN0b3JhZ2VIb3N0LCBBZnRlckNvbnRlbnRJbml0IHtcclxuICBvdmVycmlkZSByZWFkb25seSBfY29tcG9uZW50SWQ6IHN0cmluZyA9ICcxMDQnO1xyXG4gIG92ZXJyaWRlIHJlYWRvbmx5IF9jb21wb25lbnROYW1lOiBzdHJpbmcgPSAnc2VnbWVudCc7XHJcblxyXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBfREVGQVVMVFMhOiBBcmRTZWdtZW50RGVmYXVsdHM7XHJcbiAgY29uc3RydWN0b3IoQEluamVjdChBUkRfU0VHTUVOVF9ERUZBVUxUUykgZGVmYXVsdHM6IEFyZFNlZ21lbnREZWZhdWx0cykge1xyXG4gICAgc3VwZXIoZGVmYXVsdHMpO1xyXG4gIH1cclxuXHJcbiAgLy8hIGFwcGVhcmFuY2VcclxuICByZWFkb25seSBhcHBlYXJhbmNlID0gaW5wdXQ8U2VnbWVudEFwcGVhcmFuY2U+KHRoaXMuX0RFRkFVTFRTLmFwcGVhcmFuY2UpO1xyXG4gIHJlYWRvbmx5IHZhcmlhbnQgPSBpbnB1dDxTZWdtZW50VmFyaWFudD4odGhpcy5fREVGQVVMVFMudmFyaWFudCk7XHJcbiAgcmVhZG9ubHkgY29sb3IgPSBpbnB1dDxDb21wb25lbnRDb2xvcj4odGhpcy5fREVGQVVMVFMuY29sb3IpO1xyXG4gIHJlYWRvbmx5IGFsaWduID0gaW5wdXQ8T25lQXhpc0FsaWdubWVudD4odGhpcy5fREVGQVVMVFMuYWxpZ24pO1xyXG5cclxuICByZWFkb25seSBpY29uQmFzZWQgPSBpbnB1dDxib29sZWFuLCBhbnk+KHRoaXMuX0RFRkFVTFRTLmljb25CYXNlZCwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xyXG4gIHJlYWRvbmx5IGNvbXBhY3QgPSBpbnB1dDxib29sZWFuLCBhbnk+KHRoaXMuX0RFRkFVTFRTLmNvbXBhY3QsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuXHJcbiAgcmVhZG9ubHkgbmdDbGFzc2VzID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PlxyXG4gICAgW1xyXG4gICAgICBgYXJkLWFwcGVhcmFuY2UtJHt0aGlzLmFwcGVhcmFuY2UoKX1gLFxyXG4gICAgICBgYXJkLXZhcmlhbnQtJHt0aGlzLnZhcmlhbnQoKX1gLFxyXG4gICAgICBgYXJkLWNvbG9yLSR7dGhpcy5jb2xvcigpfWAsXHJcbiAgICAgIGBhcmQtYWxpZ24tJHt0aGlzLmFsaWduKCl9YCxcclxuICAgICAgdGhpcy5pY29uQmFzZWQoKSA/ICdhcmQtaWNvbi1iYXNlZCcgOiAnJyxcclxuICAgICAgdGhpcy5jb21wYWN0KCkgPyAnYXJkLWNvbXBhY3QnIDogJycsXHJcbiAgICAgIHRoaXMuaXRlbVJvd3MoKS5sZW5ndGggPiAxID8gJ2FyZC1tdWx0aXJvdycgOiAnYXJkLXNpbmdsZXJvdycsXHJcbiAgICBdLmpvaW4oJyAnKVxyXG4gICk7XHJcblxyXG4gIC8vISBjb2VyY2VkIHByb3BlcnRpZXNcclxuICByZWFkb25seSBhdXRvRm9jdXMgPSBpbnB1dDxib29sZWFuLCBhbnk+KHRoaXMuX0RFRkFVTFRTLmF1dG9Gb2N1cywgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xyXG4gIHJlYWRvbmx5IHVuaWZvcm1XaWR0aHMgPSBpbnB1dDxib29sZWFuLCBhbnk+KHRoaXMuX0RFRkFVTFRTLnVuaWZvcm1XaWR0aHMsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuXHJcbiAgcmVhZG9ubHkgaXRlbXNQZXJSb3cgPSBpbnB1dDxudW1iZXIsIGFueT4odGhpcy5fREVGQVVMVFMuaXRlbXNQZXJSb3csIHtcclxuICAgIHRyYW5zZm9ybTogdiA9PiB7XHJcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gY29lcmNlTnVtYmVyUHJvcGVydHkodiwgdGhpcy5fREVGQVVMVFMuaXRlbXNQZXJSb3cpO1xyXG4gICAgICBpZiAobmV3VmFsdWUgPT09IDApIHRocm93IG5ldyBFcnJvcihgQVJELUZUMTA0MGE6IENhbm5vdCBzZXQgPGFyZC1zZWdtZW50PidzIFtpdGVtc1BlclJvd10gdG8gMC5gKTtcclxuICAgICAgaWYgKG5ld1ZhbHVlIDwgMClcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEFSRC1GVDEwNDBiOiBDYW5ub3Qgc2V0IDxhcmQtc2VnbWVudD4ncyBbaXRlbXNQZXJSb3ddIHRvIGEgbmVnYXRpdmUgdmFsdWUsIGdvdCBcIiR7bmV3VmFsdWV9XCIuYCk7XHJcbiAgICAgIGlmIChuZXdWYWx1ZSAlIDEgIT09IDApIHtcclxuICAgICAgICBjb25zdCByb3VuZGVkVmFsdWUgPSBNYXRoLnJvdW5kKG5ld1ZhbHVlKSB8fCAxOyAvLyByb3VuZCB0byBuZWFyZXN0IGludCwgYnV0IG5ldmVyIHJvdW5kIHRvIHplcm9cclxuICAgICAgICBjb25zb2xlLndhcm4oXHJcbiAgICAgICAgICBuZXcgRXJyb3IoXHJcbiAgICAgICAgICAgIGBBUkQtV0ExMDQwYzogQ2Fubm90IHNldCA8YXJkLXNlZ21lbnQ+J3MgW2l0ZW1zUGVyUm93XSB0byBhIG5vbi1pbnRlcmdlciB2YWx1ZSwgZ290IFwiJHtuZXdWYWx1ZX1cIi4gVGhlIHZhbHVlIHdhcyByb3VuZGVkIHRvIFwiJHtyb3VuZGVkVmFsdWV9XCIuYFxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIE1hdGguY2VpbChuZXdWYWx1ZSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG5ld1ZhbHVlO1xyXG4gICAgfSxcclxuICB9KTtcclxuICBnZXQgaXRlbXNJbkFjdHVhbFJvdygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuaXRlbXNQZXJSb3coKSA9PT0gSW5maW5pdHkgPyB0aGlzLml0ZW1zLmxlbmd0aCA6IHRoaXMuaXRlbXNQZXJSb3coKTtcclxuICB9XHJcblxyXG4gIC8vISBvcHRpb24gdGVtcGxhdGVcclxuICByZWFkb25seSBvcHRpb25UZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZChBcmRTZWdtZW50T3B0aW9uVGVtcGxhdGVEaXJlY3RpdmUpO1xyXG5cclxuICAvLyEgbGlmZWN5Y2xlIGhvb2tzXHJcbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYXV0b0ZvY3VzKCkpIHtcclxuICAgICAgdGhpcy5mb2N1cygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8hIGl0ZW0gcm93IGdldHRlcnNcclxuICByZWFkb25seSBpdGVtUm93cyA9IGNvbXB1dGVkPFNlZ21lbnRSb3dbXT4oKCkgPT4ge1xyXG4gICAgY29uc3QgaXRlbVJvd3M6IFNlZ21lbnRSb3dbXSA9IFtdO1xyXG4gICAgbGV0IGN1cnJlbnRSb3c6IEFyZE9wdGlvblNpbXBsZVtdID0gW107XHJcbiAgICAvL2dldCBhbGwgcm93c1xyXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuaXRlbXMpIHtcclxuICAgICAgLy9hZGQgaXRlbVxyXG4gICAgICBjdXJyZW50Um93LnB1c2goaXRlbSk7XHJcblxyXG4gICAgICAvL3B1c2ggaWYgaXRlbSBhbW91bnQgcmVhY2hlZCB0aGUgbGltaXRcclxuICAgICAgaWYgKHRoaXMuaXRlbXNQZXJSb3coKSAmJiBjdXJyZW50Um93Lmxlbmd0aCA9PT0gdGhpcy5pdGVtc1BlclJvdygpKSB7XHJcbiAgICAgICAgaXRlbVJvd3MucHVzaCh7IG9wdGlvbnM6IGN1cnJlbnRSb3cgfSk7XHJcbiAgICAgICAgY3VycmVudFJvdyA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvL3B1c2ggdGhlIGxhc3Qgcm93IGlmIGl0IGlzIG5vdCBlbXB0eVxyXG4gICAgaWYgKGN1cnJlbnRSb3cubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgIGl0ZW1Sb3dzLnB1c2goe1xyXG4gICAgICAgIG9wdGlvbnM6IGN1cnJlbnRSb3csXHJcbiAgICAgICAgaXNOb3RGdWxsOiBCb29sZWFuKHRoaXMuaXRlbXNQZXJSb3coKSksXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGl0ZW1Sb3dzO1xyXG4gIH0pO1xyXG5cclxuICAvLyEgZm9jdXMgaGFuZGxlciBvdmVycmlkZVxyXG4gIG92ZXJyaWRlIG9uRm9jdXMoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcclxuICAgIHN1cGVyLm9uRm9jdXMoZXZlbnQpO1xyXG5cclxuICAgIGlmICh0aGlzLml0ZW1TdG9yYWdlLmlzQW55SXRlbUhpZ2hsaWdodGVkKCkpIHJldHVybjtcclxuXHJcbiAgICB0aGlzLml0ZW1TdG9yYWdlLmhpZ2hsaWdodEZpcnN0SXRlbSgpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgb25CbHVyKGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XHJcbiAgICBzdXBlci5vbkJsdXIoZXZlbnQpO1xyXG5cclxuICAgIHRoaXMuaXRlbVN0b3JhZ2UudW5oaWdobGlnaHRBbGwoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gICNmb2N1c2FibGVFbGVtZW50XHJcbiAgY2xhc3M9XCJhcmQtc2VnbWVudC1jb250YWluZXJcIlxyXG4gIFtjbGFzcy5hcmQtZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXHJcbiAgW2FyaWFEaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcclxuICBbbmdDbGFzc109XCJuZ0NsYXNzZXMoKVwiXHJcbiAgW2NsYXNzLmFyZC1mb2N1cy12aXNpYmxlXT1cImlzRm9jdXNlZCgpICYmICFpc01vdXNlQmVpbmdVc2VkXCJcclxuICBbY2xhc3MuYXJkLXVzaW5nLWtleWJvYXJkXT1cIiFpc01vdXNlQmVpbmdVc2VkXCJcclxuICBbYXR0ci50YWJpbmRleF09XCJ0YWJJbmRleCgpXCJcclxuICAoZm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCJcclxuICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXHJcbj5cclxuICBAZm9yIChyb3cgb2YgaXRlbVJvd3MoKTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiYXJkLXNlZ21lbnQtcm93XCJcclxuICAgICAgW2NsYXNzLmFyZC1zZWdtZW50LXJvdy1wYXJ0aWFsXT1cInJvdy5pc05vdEZ1bGxcIlxyXG4gICAgICBbY2xhc3MuYXJkLXNlZ21lbnQtcm93LXVuaWZvcm1dPVwidW5pZm9ybVdpZHRocygpIHx8IGl0ZW1zUGVyUm93KCkgPCBpdGVtcy5sZW5ndGhcIlxyXG4gICAgICBbc3R5bGVdPVwieyAnLS1hcmQtX3NlZ21lbnQtcm93LWl0ZW1zJzogaXRlbXNJbkFjdHVhbFJvdyB9XCJcclxuICAgID5cclxuICAgICAgQGZvciAob3B0aW9uIG9mIHJvdy5vcHRpb25zOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIGNsYXNzPVwiYXJkLXNlZ21lbnQtb3B0aW9uXCJcclxuICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxyXG4gICAgICAgICAgW2NsYXNzLmFyZC1vcHRpb24tZGlzYWJsZWRdPVwib3B0aW9uLmRpc2FibGVkKCkgfHwgKGlzSXRlbUxpbWl0UmVhY2hlZCgpICYmICFvcHRpb24uc2VsZWN0ZWQoKSlcIlxyXG4gICAgICAgICAgW2NsYXNzLmFyZC1vcHRpb24tc2VsZWN0ZWRdPVwib3B0aW9uLnNlbGVjdGVkKClcIlxyXG4gICAgICAgICAgW2NsYXNzLmFyZC1vcHRpb24taGlnaGxpZ2h0ZWRdPVwib3B0aW9uLmhpZ2hsaWdodGVkKClcIlxyXG4gICAgICAgICAgW2FyaWFTZWxlY3RlZF09XCJvcHRpb24uc2VsZWN0ZWQoKVwiXHJcbiAgICAgICAgICAobW91c2VlbnRlcik9XCJvbkl0ZW1Nb3VzZUVudGVyKG9wdGlvbiwgJGV2ZW50KVwiXHJcbiAgICAgICAgICAobW91c2VsZWF2ZSk9XCJvbkl0ZW1Nb3VzZUxlYXZlKG9wdGlvbiwgJGV2ZW50KVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25JdGVtQ2xpY2sob3B0aW9uLCAkZXZlbnQpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWZvY3VzLW92ZXJsYXlcIj48L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtYnV0dG9uLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcmQtb3B0aW9uLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0T3B0aW9uVGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICB7eyBvcHRpb24ubGFiZWwoKSB9fVxyXG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwib3B0aW9uVGVtcGxhdGUoKT8udGVtcGxhdGUgfHwgZGVmYXVsdE9wdGlvblRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJnZXRPcHRpb25Db250ZXh0KG9wdGlvbilcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcbjwvZGl2PlxyXG4iXX0=
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL3NlZ21lbnQvc2VnbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL3NlZ21lbnQvc2VnbWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN0RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUs5RSxPQUFPLEVBQUUsb0JBQW9CLEVBQXNCLE1BQU0sb0JBQW9CLENBQUM7QUFDOUUsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQTBCekUsTUFBTSxPQUFPLHNCQUF1QixTQUFRLDRCQUE0QjtJQUt0RSxZQUEwQyxRQUE0QjtRQUNwRSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFMQSxpQkFBWSxHQUFXLEtBQUssQ0FBQztRQUM3QixtQkFBYyxHQUFXLFNBQVMsQ0FBQztRQU9yRCxjQUFjO1FBQ0wsZUFBVSxHQUFHLEtBQUssQ0FBb0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqRSxZQUFPLEdBQUcsS0FBSyxDQUFpQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFD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b250ZW50SW5pdCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgSW5qZWN0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIGNvbXB1dGVkLFxyXG4gIGNvbnRlbnRDaGlsZCxcclxuICBmb3J3YXJkUmVmLFxyXG4gIGlucHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBjb2VyY2VOdW1iZXJQcm9wZXJ0eSB9IGZyb20gJ0BhcmRpdW0tdWkvZGV2a2l0JztcclxuaW1wb3J0IHsgX1NlbGVjdGFibGVMaXN0Q29tcG9uZW50QmFzZSB9IGZyb20gJy4uL19pbnRlcm5hbC9zZWxlY3RhYmxlLWxpc3QtY29tcG9uZW50JztcclxuaW1wb3J0IHsgQVJEX0ZPUk1fRklFTERfQ09OVFJPTCB9IGZyb20gJy4uL2Zvcm0tZmllbGQvZm9ybS1maWVsZC1jaGlsZC50b2tlbic7XHJcbmltcG9ydCB7IE9uZUF4aXNBbGlnbm1lbnQgfSBmcm9tICcuLi90eXBlcy9hbGlnbm1lbnQudHlwZXMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRDb2xvciB9IGZyb20gJy4uL3R5cGVzL2NvbG9ycy50eXBlcyc7XHJcbmltcG9ydCB7IEFyZE9wdGlvblNpbXBsZSB9IGZyb20gJy4uL3R5cGVzL2l0ZW0tc3RvcmFnZS50eXBlcyc7XHJcbmltcG9ydCB7IFNpbXBsZUl0ZW1TdG9yYWdlSG9zdCB9IGZyb20gJy4vLi4vX2ludGVybmFsL2l0ZW0tc3RvcmFnZXMvc2ltcGxlLWl0ZW0tc3RvcmFnZSc7XHJcbmltcG9ydCB7IEFSRF9TRUdNRU5UX0RFRkFVTFRTLCBBcmRTZWdtZW50RGVmYXVsdHMgfSBmcm9tICcuL3NlZ21lbnQuZGVmYXVsdHMnO1xyXG5pbXBvcnQgeyBBcmRTZWdtZW50T3B0aW9uVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuL3NlZ21lbnQuZGlyZWN0aXZlcyc7XHJcbmltcG9ydCB7IFNlZ21lbnRBcHBlYXJhbmNlLCBTZWdtZW50VmFyaWFudCB9IGZyb20gJy4vc2VnbWVudC50eXBlcyc7XHJcblxyXG5pbnRlcmZhY2UgU2VnbWVudFJvdyB7XHJcbiAgb3B0aW9uczogQXJkT3B0aW9uU2ltcGxlW107XHJcbiAgaXNOb3RGdWxsPzogYm9vbGVhbjtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcmQtc2VnbWVudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NlZ21lbnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NlZ21lbnQuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQXJkaXVtU2VnbWVudENvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogQVJEX0ZPUk1fRklFTERfQ09OVFJPTCxcclxuICAgICAgdXNlRXhpc3Rpbmc6IEFyZGl1bVNlZ21lbnRDb21wb25lbnQsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcmRpdW1TZWdtZW50Q29tcG9uZW50IGV4dGVuZHMgX1NlbGVjdGFibGVMaXN0Q29tcG9uZW50QmFzZSBpbXBsZW1lbnRzIFNpbXBsZUl0ZW1TdG9yYWdlSG9zdCwgQWZ0ZXJDb250ZW50SW5pdCB7XHJcbiAgb3ZlcnJpZGUgcmVhZG9ubHkgX2NvbXBvbmVudElkOiBzdHJpbmcgPSAnMTA0JztcclxuICBvdmVycmlkZSByZWFkb25seSBfY29tcG9uZW50TmFtZTogc3RyaW5nID0gJ3NlZ21lbnQnO1xyXG5cclxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgX0RFRkFVTFRTITogQXJkU2VnbWVudERlZmF1bHRzO1xyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoQVJEX1NFR01FTlRfREVGQVVMVFMpIGRlZmF1bHRzOiBBcmRTZWdtZW50RGVmYXVsdHMpIHtcclxuICAgIHN1cGVyKGRlZmF1bHRzKTtcclxuICB9XHJcblxyXG4gIC8vISBhcHBlYXJhbmNlXHJcbiAgcmVhZG9ubHkgYXBwZWFyYW5jZSA9IGlucHV0PFNlZ21lbnRBcHBlYXJhbmNlPih0aGlzLl9ERUZBVUxUUy5hcHBlYXJhbmNlKTtcclxuICByZWFkb25seSB2YXJpYW50ID0gaW5wdXQ8U2VnbWVudFZhcmlhbnQ+KHRoaXMuX0RFRkFVTFRTLnZhcmlhbnQpO1xyXG4gIHJlYWRvbmx5IGNvbG9yID0gaW5wdXQ8Q29tcG9uZW50Q29sb3I+KHRoaXMuX0RFRkFVTFRTLmNvbG9yKTtcclxuICByZWFkb25seSBhbGlnbiA9IGlucHV0PE9uZUF4aXNBbGlnbm1lbnQ+KHRoaXMuX0RFRkFVTFRTLmFsaWduKTtcclxuXHJcbiAgcmVhZG9ubHkgaWNvbkJhc2VkID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy5pY29uQmFzZWQsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuICByZWFkb25seSBjb21wYWN0ID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy5jb21wYWN0LCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XHJcblxyXG4gIHJlYWRvbmx5IG5nQ2xhc3NlcyA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT5cclxuICAgIFtcclxuICAgICAgYGFyZC1hcHBlYXJhbmNlLSR7dGhpcy5hcHBlYXJhbmNlKCl9YCxcclxuICAgICAgYGFyZC12YXJpYW50LSR7dGhpcy52YXJpYW50KCl9YCxcclxuICAgICAgYGFyZC1jb2xvci0ke3RoaXMuY29sb3IoKX1gLFxyXG4gICAgICBgYXJkLWFsaWduLSR7dGhpcy5hbGlnbigpfWAsXHJcbiAgICAgIHRoaXMuaWNvbkJhc2VkKCkgPyAnYXJkLWljb24tYmFzZWQnIDogJycsXHJcbiAgICAgIHRoaXMuY29tcGFjdCgpID8gJ2FyZC1jb21wYWN0JyA6ICcnLFxyXG4gICAgICB0aGlzLml0ZW1Sb3dzKCkubGVuZ3RoID4gMSA/ICdhcmQtbXVsdGlyb3cnIDogJ2FyZC1zaW5nbGVyb3cnLFxyXG4gICAgXS5qb2luKCcgJylcclxuICApO1xyXG5cclxuICAvLyEgY29lcmNlZCBwcm9wZXJ0aWVzXHJcbiAgcmVhZG9ubHkgYXV0b0ZvY3VzID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy5hdXRvRm9jdXMsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuICByZWFkb25seSB1bmlmb3JtV2lkdGhzID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy51bmlmb3JtV2lkdGhzLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XHJcblxyXG4gIHJlYWRvbmx5IGl0ZW1zUGVyUm93ID0gaW5wdXQ8bnVtYmVyLCBhbnk+KHRoaXMuX0RFRkFVTFRTLml0ZW1zUGVyUm93LCB7XHJcbiAgICB0cmFuc2Zvcm06IHYgPT4ge1xyXG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IGNvZXJjZU51bWJlclByb3BlcnR5KHYsIHRoaXMuX0RFRkFVTFRTLml0ZW1zUGVyUm93KTtcclxuICAgICAgaWYgKG5ld1ZhbHVlID09PSAwKSB0aHJvdyBuZXcgRXJyb3IoYEFSRC1GVDEwNDBhOiBDYW5ub3Qgc2V0IDxhcmQtc2VnbWVudD4ncyBbaXRlbXNQZXJSb3ddIHRvIDAuYCk7XHJcbiAgICAgIGlmIChuZXdWYWx1ZSA8IDApXHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBUkQtRlQxMDQwYjogQ2Fubm90IHNldCA8YXJkLXNlZ21lbnQ+J3MgW2l0ZW1zUGVyUm93XSB0byBhIG5lZ2F0aXZlIHZhbHVlLCBnb3QgXCIke25ld1ZhbHVlfVwiLmApO1xyXG4gICAgICBpZiAobmV3VmFsdWUgJSAxICE9PSAwKSB7XHJcbiAgICAgICAgY29uc3Qgcm91bmRlZFZhbHVlID0gTWF0aC5yb3VuZChuZXdWYWx1ZSkgfHwgMTsgLy8gcm91bmQgdG8gbmVhcmVzdCBpbnQsIGJ1dCBuZXZlciByb3VuZCB0byB6ZXJvXHJcbiAgICAgICAgY29uc29sZS53YXJuKFxyXG4gICAgICAgICAgbmV3IEVycm9yKFxyXG4gICAgICAgICAgICBgQVJELVdBMTA0MGM6IENhbm5vdCBzZXQgPGFyZC1zZWdtZW50PidzIFtpdGVtc1BlclJvd10gdG8gYSBub24taW50ZXJnZXIgdmFsdWUsIGdvdCBcIiR7bmV3VmFsdWV9XCIuIFRoZSB2YWx1ZSB3YXMgcm91bmRlZCB0byBcIiR7cm91bmRlZFZhbHVlfVwiLmBcclxuICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBNYXRoLmNlaWwobmV3VmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBuZXdWYWx1ZTtcclxuICAgIH0sXHJcbiAgfSk7XHJcbiAgZ2V0IGl0ZW1zSW5BY3R1YWxSb3coKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1zUGVyUm93KCkgPT09IEluZmluaXR5ID8gdGhpcy5pdGVtcy5sZW5ndGggOiB0aGlzLml0ZW1zUGVyUm93KCk7XHJcbiAgfVxyXG5cclxuICAvLyEgb3B0aW9uIHRlbXBsYXRlXHJcbiAgcmVhZG9ubHkgb3B0aW9uVGVtcGxhdGUgPSBjb250ZW50Q2hpbGQoQXJkU2VnbWVudE9wdGlvblRlbXBsYXRlRGlyZWN0aXZlKTtcclxuXHJcbiAgLy8hIGxpZmVjeWNsZSBob29rc1xyXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmF1dG9Gb2N1cygpKSB7XHJcbiAgICAgIHRoaXMuZm9jdXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vISBpdGVtIHJvdyBnZXR0ZXJzXHJcbiAgcmVhZG9ubHkgaXRlbVJvd3MgPSBjb21wdXRlZDxTZWdtZW50Um93W10+KCgpID0+IHtcclxuICAgIGNvbnN0IGl0ZW1Sb3dzOiBTZWdtZW50Um93W10gPSBbXTtcclxuICAgIGxldCBjdXJyZW50Um93OiBBcmRPcHRpb25TaW1wbGVbXSA9IFtdO1xyXG4gICAgLy9nZXQgYWxsIHJvd3NcclxuICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLml0ZW1zKSB7XHJcbiAgICAgIC8vYWRkIGl0ZW1cclxuICAgICAgY3VycmVudFJvdy5wdXNoKGl0ZW0pO1xyXG5cclxuICAgICAgLy9wdXNoIGlmIGl0ZW0gYW1vdW50IHJlYWNoZWQgdGhlIGxpbWl0XHJcbiAgICAgIGlmICh0aGlzLml0ZW1zUGVyUm93KCkgJiYgY3VycmVudFJvdy5sZW5ndGggPT09IHRoaXMuaXRlbXNQZXJSb3coKSkge1xyXG4gICAgICAgIGl0ZW1Sb3dzLnB1c2goeyBvcHRpb25zOiBjdXJyZW50Um93IH0pO1xyXG4gICAgICAgIGN1cnJlbnRSb3cgPSBbXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy9wdXNoIHRoZSBsYXN0IHJvdyBpZiBpdCBpcyBub3QgZW1wdHlcclxuICAgIGlmIChjdXJyZW50Um93Lmxlbmd0aCAhPT0gMCkge1xyXG4gICAgICBpdGVtUm93cy5wdXNoKHtcclxuICAgICAgICBvcHRpb25zOiBjdXJyZW50Um93LFxyXG4gICAgICAgIGlzTm90RnVsbDogQm9vbGVhbih0aGlzLml0ZW1zUGVyUm93KCkpLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBpdGVtUm93cztcclxuICB9KTtcclxuXHJcbiAgLy8hIGZvY3VzIGhhbmRsZXIgb3ZlcnJpZGVcclxuICBvdmVycmlkZSBvbkZvY3VzKGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XHJcbiAgICBzdXBlci5vbkZvY3VzKGV2ZW50KTtcclxuXHJcbiAgICBpZiAodGhpcy5pdGVtU3RvcmFnZS5pc0FueUl0ZW1IaWdobGlnaHRlZCgpKSByZXR1cm47XHJcblxyXG4gICAgdGhpcy5pdGVtU3RvcmFnZS5oaWdobGlnaHRGaXJzdEl0ZW0oKTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIG9uQmx1cihldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xyXG4gICAgc3VwZXIub25CbHVyKGV2ZW50KTtcclxuXHJcbiAgICB0aGlzLml0ZW1TdG9yYWdlLnVuaGlnaGxpZ2h0QWxsKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICAjZm9jdXNhYmxlRWxlbWVudFxyXG4gIGNsYXNzPVwiYXJkLXNlZ21lbnQtY29udGFpbmVyXCJcclxuICBbY2xhc3MuYXJkLWRpc2FibGVkXT1cImRpc2FibGVkKClcIlxyXG4gIFthcmlhRGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXHJcbiAgW25nQ2xhc3NdPVwibmdDbGFzc2VzKClcIlxyXG4gIFtjbGFzcy5hcmQtZm9jdXMtdmlzaWJsZV09XCJpc0ZvY3VzZWQoKSAmJiAhaXNNb3VzZUJlaW5nVXNlZFwiXHJcbiAgW2NsYXNzLmFyZC11c2luZy1rZXlib2FyZF09XCIhaXNNb3VzZUJlaW5nVXNlZFwiXHJcbiAgW2F0dHIudGFiaW5kZXhdPVwidGFiSW5kZXgoKVwiXHJcbiAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXHJcbiAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxyXG4+XHJcbiAgQGZvciAocm93IG9mIGl0ZW1Sb3dzKCk7IHRyYWNrICRpbmRleCkge1xyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImFyZC1zZWdtZW50LXJvd1wiXHJcbiAgICAgIFtjbGFzcy5hcmQtc2VnbWVudC1yb3ctcGFydGlhbF09XCJyb3cuaXNOb3RGdWxsXCJcclxuICAgICAgW2NsYXNzLmFyZC1zZWdtZW50LXJvdy11bmlmb3JtXT1cInVuaWZvcm1XaWR0aHMoKSB8fCBpdGVtc1BlclJvdygpIDwgaXRlbXMubGVuZ3RoXCJcclxuICAgICAgW3N0eWxlXT1cInsgJy0tYXJkLV9zZWdtZW50LXJvdy1pdGVtcyc6IGl0ZW1zSW5BY3R1YWxSb3cgfVwiXHJcbiAgICA+XHJcbiAgICAgIEBmb3IgKG9wdGlvbiBvZiByb3cub3B0aW9uczsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBjbGFzcz1cImFyZC1zZWdtZW50LW9wdGlvblwiXHJcbiAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcclxuICAgICAgICAgIFtjbGFzcy5hcmQtb3B0aW9uLWRpc2FibGVkXT1cIm9wdGlvbi5kaXNhYmxlZCgpIHx8IChpc0l0ZW1MaW1pdFJlYWNoZWQoKSAmJiAhb3B0aW9uLnNlbGVjdGVkKCkpXCJcclxuICAgICAgICAgIFtjbGFzcy5hcmQtb3B0aW9uLXNlbGVjdGVkXT1cIm9wdGlvbi5zZWxlY3RlZCgpXCJcclxuICAgICAgICAgIFtjbGFzcy5hcmQtb3B0aW9uLWhpZ2hsaWdodGVkXT1cIm9wdGlvbi5oaWdobGlnaHRlZCgpXCJcclxuICAgICAgICAgIFthcmlhU2VsZWN0ZWRdPVwib3B0aW9uLnNlbGVjdGVkKClcIlxyXG4gICAgICAgICAgKG1vdXNlZW50ZXIpPVwib25JdGVtTW91c2VFbnRlcihvcHRpb24sICRldmVudClcIlxyXG4gICAgICAgICAgKG1vdXNlbGVhdmUpPVwib25JdGVtTW91c2VMZWF2ZShvcHRpb24sICRldmVudClcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9uSXRlbUNsaWNrKG9wdGlvbiwgJGV2ZW50KVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1mb2N1cy1vdmVybGF5XCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWJ1dHRvbi1jb250ZW50XCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXJkLW9wdGlvbi1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdE9wdGlvblRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAge3sgb3B0aW9uLmxhYmVsKCkgfX1cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm9wdGlvblRlbXBsYXRlKCk/LnRlbXBsYXRlIHx8IGRlZmF1bHRPcHRpb25UZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZ2V0T3B0aW9uQ29udGV4dChvcHRpb24pXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG48L2Rpdj5cclxuIl19
|