monkey-style-guide-v2 0.0.21 → 0.0.23
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/assets/scss/directives/_index.scss +1 -0
- package/assets/scss/directives/_popover.scss +81 -0
- package/assets/scss/theme.scss +5 -0
- package/esm2022/lib/components/accordion/accordion.component.mjs +11 -20
- package/esm2022/lib/components/action-bar/action-bar.component.mjs +3 -3
- package/esm2022/lib/components/button/button.component.mjs +6 -2
- package/esm2022/lib/components/checkbox/checkbox.component.mjs +9 -13
- package/esm2022/lib/components/date-range/date-range.component.mjs +2 -2
- package/esm2022/lib/components/form-field/form-field-control.mjs +1 -1
- package/esm2022/lib/components/form-field/form-field.component.mjs +15 -18
- package/esm2022/lib/components/form-field/form-field.module.mjs +4 -2
- package/esm2022/lib/components/icon/icon.component.mjs +4 -4
- package/esm2022/lib/components/icon-button/icon-button.component.mjs +2 -2
- package/esm2022/lib/components/index.mjs +3 -1
- package/esm2022/lib/components/input-phone/index.mjs +7 -0
- package/esm2022/lib/components/input-phone/input-phone.component.mjs +324 -0
- package/esm2022/lib/components/modal/components/confirmation.component.mjs +68 -0
- package/esm2022/lib/components/modal/components/default.mjs +1 -6
- package/esm2022/lib/components/modal/modal-config.mjs +2 -3
- package/esm2022/lib/components/modal/modal-ref.mjs +9 -2
- package/esm2022/lib/components/modal/modal.component.mjs +8 -6
- package/esm2022/lib/components/modal/modal.module.mjs +4 -1
- package/esm2022/lib/components/modal/modal.service.mjs +44 -31
- package/esm2022/lib/components/modal/utils.mjs +2 -1
- package/esm2022/lib/components/option/option.component.mjs +21 -5
- package/esm2022/lib/components/radio-button/index.mjs +7 -0
- package/esm2022/lib/components/radio-button/radio-button.component.mjs +190 -0
- package/esm2022/lib/components/security-level/security-level.component.mjs +3 -3
- package/esm2022/lib/components/select/select.component.mjs +5 -9
- package/esm2022/lib/components/status/status.component.mjs +3 -3
- package/esm2022/lib/components/table/components/pagination-size/pagination-size.mjs +2 -2
- package/esm2022/lib/components/toast/toast.component.mjs +3 -3
- package/esm2022/lib/components/tooltip/tooltip/tooltip.component.mjs +3 -3
- package/esm2022/lib/components/tooltip/tooltip.directive.mjs +12 -3
- package/esm2022/lib/directives/error.mjs +5 -5
- package/esm2022/lib/directives/helper.mjs +5 -5
- package/esm2022/lib/directives/index.mjs +2 -1
- package/esm2022/lib/directives/info.mjs +5 -5
- package/esm2022/lib/directives/label.mjs +5 -5
- package/esm2022/lib/directives/module.mjs +41 -35
- package/esm2022/lib/directives/popover.mjs +380 -0
- package/esm2022/lib/directives/prefix.mjs +5 -5
- package/esm2022/lib/directives/suffix.mjs +5 -5
- package/esm2022/lib/interfaces/index.mjs +2 -1
- package/esm2022/lib/interfaces/popover.mjs +2 -0
- package/esm2022/lib/services/dictionary.service.mjs +3 -3
- package/esm2022/lib/services/index.mjs +1 -2
- package/esm2022/lib/tokens/index.mjs +4 -2
- package/esm2022/utils/icon.mjs +277 -0
- package/esm2022/utils/index.mjs +2 -1
- package/fesm2022/monkey-style-guide-v2.mjs +2019 -828
- package/fesm2022/monkey-style-guide-v2.mjs.map +1 -1
- package/lib/components/accordion/accordion.component.d.ts +0 -3
- package/lib/components/button/button.component.d.ts +2 -0
- package/lib/components/checkbox/checkbox.component.d.ts +0 -3
- package/lib/components/form-field/form-field-control.d.ts +3 -3
- package/lib/components/form-field/form-field.component.d.ts +0 -5
- package/lib/components/form-field/form-field.module.d.ts +2 -1
- package/lib/components/icon/icon.component.d.ts +1 -1
- package/lib/components/index.d.ts +2 -0
- package/lib/components/input-phone/index.d.ts +6 -0
- package/lib/components/input-phone/input-phone.component.d.ts +68 -0
- package/lib/components/modal/components/confirmation.component.d.ts +12 -0
- package/lib/components/modal/components/default.d.ts +0 -5
- package/lib/components/modal/modal-config.d.ts +10 -6
- package/lib/components/modal/modal-ref.d.ts +1 -0
- package/lib/components/modal/modal.module.d.ts +10 -9
- package/lib/components/modal/modal.service.d.ts +4 -4
- package/lib/components/modal/utils.d.ts +3 -1
- package/lib/components/option/option.component.d.ts +4 -1
- package/lib/components/radio-button/index.d.ts +6 -0
- package/lib/components/radio-button/radio-button.component.d.ts +54 -0
- package/lib/components/select/select.component.d.ts +0 -3
- package/lib/components/tooltip/tooltip.directive.d.ts +1 -0
- package/lib/directives/error.d.ts +3 -3
- package/lib/directives/helper.d.ts +3 -3
- package/lib/directives/index.d.ts +1 -0
- package/lib/directives/info.d.ts +3 -3
- package/lib/directives/label.d.ts +3 -3
- package/lib/directives/module.d.ts +2 -1
- package/lib/directives/popover.d.ts +65 -0
- package/lib/directives/prefix.d.ts +3 -3
- package/lib/directives/suffix.d.ts +3 -3
- package/lib/interfaces/index.d.ts +1 -0
- package/lib/interfaces/popover.d.ts +7 -0
- package/lib/services/index.d.ts +0 -1
- package/lib/tokens/index.d.ts +3 -1
- package/monkey-style-guide-v2-0.0.23.tgz +0 -0
- package/package.json +3 -2
- package/utils/icon.d.ts +8 -0
- package/utils/index.d.ts +1 -0
- package/esm2022/lib/services/icons.service.mjs +0 -56
- package/lib/services/icons.service.d.ts +0 -16
- package/monkey-style-guide-v2-0.0.21.tgz +0 -0
|
@@ -185,7 +185,7 @@ export class MonkeyDateRangeComponent {
|
|
|
185
185
|
this.secondCalendar = calendars.secondCalendar;
|
|
186
186
|
}
|
|
187
187
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonkeyDateRangeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
188
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: MonkeyDateRangeComponent, isStandalone: true, selector: "monkey-date-range", inputs: { startDate: "startDate", endDate: "endDate", hideQuickAction: ["hideQuickAction", "hideQuickAction", booleanAttribute], hideHeader: ["hideHeader", "hideHeader", booleanAttribute], hideActions: ["hideActions", "hideActions", booleanAttribute], hideSecondCalendar: ["hideSecondCalendar", "hideSecondCalendar", booleanAttribute], allowFastActionOnHeader: ["allowFastActionOnHeader", "allowFastActionOnHeader", booleanAttribute], minDate: "minDate", maxDate: "maxDate", id: "id" }, outputs: { onCancel: "onCancel", onDate: "onDate" }, host: { attributes: { "data-testid": "monkey-date-range" }, listeners: { "window:resize": "onResize($event)" }, properties: { "attr.id": "id", "id": "id" } }, ngImport: i0, template: "<ng-container *ngIf=\"i18nDictionary | async as i18n\">\n <div class=\"container-group\">\n @if (!hideQuickAction) {\n <div class=\"quick-actions\">\n <monkey-date-range-quick-actions (onChange)=\"onHandleQuickAction($event)\">\n </monkey-date-range-quick-actions>\n </div>\n }\n\n <div class=\"container\">\n @if (!hideHeader) {\n <div class=\"header\" [class.no-quick-action]=\"hideQuickAction\">\n @if (allowFastActionOnHeader) {\n <div class=\"quick-actions\">\n <monkey-date-range-quick-actions (onChange)=\"onHandleQuickAction($event)\">\n </monkey-date-range-quick-actions>\n </div>\n } @else {\n <div class=\"inputs\">\n <monkey-form-field hideAction enableClear size=\"sm\">\n <monkey-label>{{ i18n?.['START-DATE'] }}</monkey-label>\n <input\n type=\"date\"\n monkey-input\n id=\"startDate\"\n [(ngModel)]=\"handledStartDate\"\n (ngModelChange)=\"onDataChange($event, true)\"\n [min]=\"handledMinDate\"\n [max]=\"handledEndDate ? handledEndDate : handledMaxDate\"\n (change)=\"onChangeInputStartDate($event)\"\n />\n </monkey-form-field>\n <monkey-form-field hideAction enableClear size=\"sm\">\n <monkey-label>{{ i18n?.['END-DATE'] }}</monkey-label>\n <input\n type=\"date\"\n monkey-input\n id=\"endDate\"\n [(ngModel)]=\"handledEndDate\"\n (ngModelChange)=\"onDataChange($event, false)\"\n [min]=\"handledStartDate ? handledStartDate : ''\"\n [max]=\"handledMaxDate\"\n (change)=\"onChangeInputEndDate($event)\"\n />\n </monkey-form-field>\n </div>\n @if (isInvalidInterval) {\n <monkey-error>{{ i18n?.['INVALID'] }}</monkey-error>\n }\n }\n </div>\n }\n\n <div class=\"body\">\n <div class=\"calendars\">\n <monkey-date-range-month\n [month]=\"firstCalendar.month\"\n [year]=\"firstCalendar.year\"\n [startDate]=\"handledStartDate\"\n [endDate]=\"handledEndDate\"\n (onDate)=\"onHandleDate($event)\"\n (onNavigate)=\"onHandleNavigate($event)\"\n [hideNext]=\"!hideSecondCalendar\"\n [minDate]=\"handledMinDate\"\n [maxDate]=\"handledMaxDate\"\n >\n </monkey-date-range-month>\n\n @if (!hideSecondCalendar) {\n <monkey-date-range-month\n [month]=\"secondCalendar.month\"\n [year]=\"secondCalendar.year\"\n [startDate]=\"handledStartDate\"\n [endDate]=\"handledEndDate\"\n (onDate)=\"onHandleDate($event)\"\n (onNavigate)=\"onHandleNavigate($event)\"\n hidePrevious\n [minDate]=\"handledMinDate\"\n [maxDate]=\"handledMaxDate\"\n >\n </monkey-date-range-month>\n }\n </div>\n </div>\n\n @if (!hideActions) {\n <div class=\"actions\">\n <monkey-button size=\"md\" type=\"secondary\" (click)=\"onCancel.next(null)\">\n {{ i18n?.ACTIONS?.CANCEL }}\n </monkey-button>\n <monkey-button\n size=\"md\"\n (click)=\"onSubmit()\"\n [disabled]=\"!this.handledStartDate || !this.handledEndDate\"\n >\n {{ i18n?.ACTIONS?.APPLY }}\n </monkey-button>\n </div>\n }\n </div>\n </div>\n</ng-container>\n", styles: [":host{display:block;border:2px solid var(--mecx-color-gray-200);border-radius:16px}:host .container-group{width:100%;display:inline-flex}:host .container-group .quick-actions{width:100%;max-width:172px;border-top-left-radius:16px;border-bottom-left-radius:16px;border-right:2px solid var(--mecx-color-gray-200);background:var(--mecx-color-white)}:host .container-group .container{width:100%;display:inline-flex;flex-direction:column}:host .header{padding:16px 24px;border-radius:1px 16px 1px 1px;border-bottom:1px solid var(--mecx-color-gray-200);background:var(--mecx-color-gray-50)}:host .header .quick-actions{max-width:unset;border:unset}:host .header .quick-actions monkey-date-range-quick-actions{flex-flow:row wrap;padding:unset;justify-content:space-between;background:var(--mecx-color-gray-50)}:host .header.no-quick-action{border-top-left-radius:16px}:host .header .inputs{max-width:400px;display:flex;gap:16px}:host .header monkey-error{margin-top:2px}:host .body{padding:16px 24px}:host .body .calendars{display:inline-flex;width:100%;gap:48px}:host .actions{border-top:1px solid var(--mecx-color-gray-200);padding:16px 24px;display:flex;justify-content:flex-end;align-items:center;gap:16px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MonkeyInputModule }, { kind: "directive", type: i3.MonkeyInputDirective, selector: "input[monkey-input],textarea[monkey-input]", inputs: ["name", "disabled", "id", "required", "type", "min", "max", "percent"], exportAs: ["monkeyInput"] }, { kind: "ngmodule", type: MonkeyFormFieldModule }, { kind: "component", type: i4.MonkeyFormFieldComponent, selector: "monkey-form-field", inputs: ["id", "hideAction", "enableClear", "size"], exportAs: ["monkeyFormField"] }, { kind: "ngmodule", type: MonkeyDirectivesModule }, { kind: "directive", type: i5.
|
|
188
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: MonkeyDateRangeComponent, isStandalone: true, selector: "monkey-date-range", inputs: { startDate: "startDate", endDate: "endDate", hideQuickAction: ["hideQuickAction", "hideQuickAction", booleanAttribute], hideHeader: ["hideHeader", "hideHeader", booleanAttribute], hideActions: ["hideActions", "hideActions", booleanAttribute], hideSecondCalendar: ["hideSecondCalendar", "hideSecondCalendar", booleanAttribute], allowFastActionOnHeader: ["allowFastActionOnHeader", "allowFastActionOnHeader", booleanAttribute], minDate: "minDate", maxDate: "maxDate", id: "id" }, outputs: { onCancel: "onCancel", onDate: "onDate" }, host: { attributes: { "data-testid": "monkey-date-range" }, listeners: { "window:resize": "onResize($event)" }, properties: { "attr.id": "id", "id": "id" } }, ngImport: i0, template: "<ng-container *ngIf=\"i18nDictionary | async as i18n\">\n <div class=\"container-group\">\n @if (!hideQuickAction) {\n <div class=\"quick-actions\">\n <monkey-date-range-quick-actions (onChange)=\"onHandleQuickAction($event)\">\n </monkey-date-range-quick-actions>\n </div>\n }\n\n <div class=\"container\">\n @if (!hideHeader) {\n <div class=\"header\" [class.no-quick-action]=\"hideQuickAction\">\n @if (allowFastActionOnHeader) {\n <div class=\"quick-actions\">\n <monkey-date-range-quick-actions (onChange)=\"onHandleQuickAction($event)\">\n </monkey-date-range-quick-actions>\n </div>\n } @else {\n <div class=\"inputs\">\n <monkey-form-field hideAction enableClear size=\"sm\">\n <monkey-label>{{ i18n?.['START-DATE'] }}</monkey-label>\n <input\n type=\"date\"\n monkey-input\n id=\"startDate\"\n [(ngModel)]=\"handledStartDate\"\n (ngModelChange)=\"onDataChange($event, true)\"\n [min]=\"handledMinDate\"\n [max]=\"handledEndDate ? handledEndDate : handledMaxDate\"\n (change)=\"onChangeInputStartDate($event)\"\n />\n </monkey-form-field>\n <monkey-form-field hideAction enableClear size=\"sm\">\n <monkey-label>{{ i18n?.['END-DATE'] }}</monkey-label>\n <input\n type=\"date\"\n monkey-input\n id=\"endDate\"\n [(ngModel)]=\"handledEndDate\"\n (ngModelChange)=\"onDataChange($event, false)\"\n [min]=\"handledStartDate ? handledStartDate : ''\"\n [max]=\"handledMaxDate\"\n (change)=\"onChangeInputEndDate($event)\"\n />\n </monkey-form-field>\n </div>\n @if (isInvalidInterval) {\n <monkey-error>{{ i18n?.['INVALID'] }}</monkey-error>\n }\n }\n </div>\n }\n\n <div class=\"body\">\n <div class=\"calendars\">\n <monkey-date-range-month\n [month]=\"firstCalendar.month\"\n [year]=\"firstCalendar.year\"\n [startDate]=\"handledStartDate\"\n [endDate]=\"handledEndDate\"\n (onDate)=\"onHandleDate($event)\"\n (onNavigate)=\"onHandleNavigate($event)\"\n [hideNext]=\"!hideSecondCalendar\"\n [minDate]=\"handledMinDate\"\n [maxDate]=\"handledMaxDate\"\n >\n </monkey-date-range-month>\n\n @if (!hideSecondCalendar) {\n <monkey-date-range-month\n [month]=\"secondCalendar.month\"\n [year]=\"secondCalendar.year\"\n [startDate]=\"handledStartDate\"\n [endDate]=\"handledEndDate\"\n (onDate)=\"onHandleDate($event)\"\n (onNavigate)=\"onHandleNavigate($event)\"\n hidePrevious\n [minDate]=\"handledMinDate\"\n [maxDate]=\"handledMaxDate\"\n >\n </monkey-date-range-month>\n }\n </div>\n </div>\n\n @if (!hideActions) {\n <div class=\"actions\">\n <monkey-button size=\"md\" type=\"secondary\" (click)=\"onCancel.next(null)\">\n {{ i18n?.ACTIONS?.CANCEL }}\n </monkey-button>\n <monkey-button\n size=\"md\"\n (click)=\"onSubmit()\"\n [disabled]=\"!this.handledStartDate || !this.handledEndDate\"\n >\n {{ i18n?.ACTIONS?.APPLY }}\n </monkey-button>\n </div>\n }\n </div>\n </div>\n</ng-container>\n", styles: [":host{display:block;border:2px solid var(--mecx-color-gray-200);border-radius:16px}:host .container-group{width:100%;display:inline-flex}:host .container-group .quick-actions{width:100%;max-width:172px;border-top-left-radius:16px;border-bottom-left-radius:16px;border-right:2px solid var(--mecx-color-gray-200);background:var(--mecx-color-white)}:host .container-group .container{width:100%;display:inline-flex;flex-direction:column}:host .header{padding:16px 24px;border-radius:1px 16px 1px 1px;border-bottom:1px solid var(--mecx-color-gray-200);background:var(--mecx-color-gray-50)}:host .header .quick-actions{max-width:unset;border:unset}:host .header .quick-actions monkey-date-range-quick-actions{flex-flow:row wrap;padding:unset;justify-content:space-between;background:var(--mecx-color-gray-50)}:host .header.no-quick-action{border-top-left-radius:16px}:host .header .inputs{max-width:400px;display:flex;gap:16px}:host .header monkey-error{margin-top:2px}:host .body{padding:16px 24px}:host .body .calendars{display:inline-flex;width:100%;gap:48px}:host .actions{border-top:1px solid var(--mecx-color-gray-200);padding:16px 24px;display:flex;justify-content:flex-end;align-items:center;gap:16px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MonkeyInputModule }, { kind: "directive", type: i3.MonkeyInputDirective, selector: "input[monkey-input],textarea[monkey-input]", inputs: ["name", "disabled", "id", "required", "type", "min", "max", "percent"], exportAs: ["monkeyInput"] }, { kind: "ngmodule", type: MonkeyFormFieldModule }, { kind: "component", type: i4.MonkeyFormFieldComponent, selector: "monkey-form-field", inputs: ["id", "hideAction", "enableClear", "size"], exportAs: ["monkeyFormField"] }, { kind: "ngmodule", type: MonkeyDirectivesModule }, { kind: "directive", type: i5.MonkeyErrorDirective, selector: "monkey-error" }, { kind: "directive", type: i6.MonkeyLabelDirective, selector: "monkey-label" }, { kind: "component", type: MonkeyButtonComponent, selector: "monkey-button", inputs: ["disabled", "size", "type", "id"] }, { kind: "component", type: MonkeyDateRangeMonthComponent, selector: "monkey-date-range-month", inputs: ["month", "year", "startDate", "endDate", "hidePrevious", "hideNext", "minDate", "maxDate", "id"], outputs: ["onNavigate", "onDate"] }, { kind: "component", type: MonkeyDateRangeQuickActionsComponent, selector: "monkey-date-range-quick-actions", inputs: ["id"], outputs: ["onChange"] }] }); }
|
|
189
189
|
}
|
|
190
190
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonkeyDateRangeComponent, decorators: [{
|
|
191
191
|
type: Component,
|
|
@@ -236,4 +236,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
236
236
|
type: HostListener,
|
|
237
237
|
args: ['window:resize', ['$event']]
|
|
238
238
|
}] } });
|
|
239
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUtdjIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcmFuZ2UvZGF0ZS1yYW5nZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUtdjIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcmFuZ2UvZGF0ZS1yYW5nZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs2QkFJNkI7QUFDN0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFFTCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDL0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzdDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN4RCxPQUFP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QkFBd0I7a0JBckJwQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGlCQUFpQjt3QkFDakIscUJBQXFCO3dCQUNyQixzQkFBc0I7d0JBQ3RCLHFCQUFxQjt3QkFDckIsNkJBQTZCO3dCQUM3QixvQ0FBb0M7cUJBQ3JDLFFBR0s7d0JBQ0osYUFBYSxFQUFFLG1CQUFtQjt3QkFDbEMsV0FBVyxFQUFFLElBQUk7d0JBQ2pCLE1BQU0sRUFBRSxJQUFJO3FCQUNiO3dEQUdZLFNBQVM7c0JBQXJCLEtBQUs7Z0JBSU8sT0FBTztzQkFBbkIsS0FBSztnQkFLTixlQUFlO3NCQURkLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBSXRDLFVBQVU7c0JBRFQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFJdEMsV0FBVztzQkFEVixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUl0QyxrQkFBa0I7c0JBRGpCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBSXRDLHVCQUF1QjtzQkFEdEIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFHekIsT0FBTztzQkFBbkIsS0FBSztnQkFJTyxPQUFPO3NCQUFuQixLQUFLO2dCQUlJLFFBQVE7c0JBQWpCLE1BQU07Z0JBRUcsTUFBTTtzQkFBZixNQUFNO2dCQU9ILEVBQUU7c0JBREwsS0FBSztnQkEyRk4sUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiAqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIENvcHlyaWdodCBNb25rZXkgRXhjaGFuZ2UuIEFsbCBSaWdodHMgUmVzZXJ2ZWRcbiAqIFRoaXMgc3R5bGUgZ3VpZGUgd2FzIGRldmVsb3BlZCBieSBNb25rZXkgRXhjaGFuZ2UgVGVhbVxuICogTUlUIExpY2VuY2VcbiAqKioqKioqKioqKioqKioqKioqKioqKioqICovXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGFkZERheXMsIGlzQWZ0ZXIsIGlzQmVmb3JlLCBzdWJEYXlzIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgSWRHZW5lcmF0b3IgfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XG5pbXBvcnQgeyBNb25rZXlEaXJlY3RpdmVzTW9kdWxlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBNb25rZXlEaWN0aW9uYXJ5U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RpY3Rpb25hcnkuc2VydmljZSc7XG5pbXBvcnQgeyBNb25rZXlCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9idXR0b24nO1xuaW1wb3J0IHsgTW9ua2V5Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnLi4vZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNb25rZXlJbnB1dE1vZHVsZSB9IGZyb20gJy4uL2lucHV0JztcbmltcG9ydCB7IE1vbmtleURhdGVSYW5nZU1vbnRoQ29tcG9uZW50IH0gZnJvbSAnLi9tb250aCc7XG5pbXBvcnQgeyBNb25rZXlEYXRlUmFuZ2VRdWlja0FjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL3F1aWNrLWFjdGlvbnMnO1xuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmludGVyZmFjZSBDYWxlbmRhciB7XG4gIG1vbnRoOiBudW1iZXI7XG4gIHllYXI6IG51bWJlcjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9ua2V5LWRhdGUtcmFuZ2UnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1vbmtleUlucHV0TW9kdWxlLFxuICAgIE1vbmtleUZvcm1GaWVsZE1vZHVsZSxcbiAgICBNb25rZXlEaXJlY3RpdmVzTW9kdWxlLFxuICAgIE1vbmtleUJ1dHRvbkNvbXBvbmVudCxcbiAgICBNb25rZXlEYXRlUmFuZ2VNb250aENvbXBvbmVudCxcbiAgICBNb25rZXlEYXRlUmFuZ2VRdWlja0FjdGlvbnNDb21wb25lbnRcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtcmFuZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZGF0ZS1yYW5nZS5jb21wb25lbnQuc2NzcycsXG4gIGhvc3Q6IHtcbiAgICAnZGF0YS10ZXN0aWQnOiAnbW9ua2V5LWRhdGUtcmFuZ2UnLFxuICAgICdbYXR0ci5pZF0nOiAnaWQnLFxuICAgICdbaWRdJzogJ2lkJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIE1vbmtleURhdGVSYW5nZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHNldCBzdGFydERhdGUodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLmhhbmRsZWRTdGFydERhdGUgPSB2YWw7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgZW5kRGF0ZSh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuaGFuZGxlZEVuZERhdGUgPSB2YWw7XG4gIH1cblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgaGlkZVF1aWNrQWN0aW9uITogYm9vbGVhbjtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgaGlkZUhlYWRlciE6IGJvb2xlYW47XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIGhpZGVBY3Rpb25zITogYm9vbGVhbjtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgaGlkZVNlY29uZENhbGVuZGFyITogYm9vbGVhbjtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgYWxsb3dGYXN0QWN0aW9uT25IZWFkZXIhOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHNldCBtaW5EYXRlKHZhbDogRGF0ZSB8IHN0cmluZykge1xuICAgIHRoaXMuaGFuZGxlZE1pbkRhdGUgPSBVdGlscy5wYXJzZVN0cmluZ0RhdGUodmFsKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBtYXhEYXRlKHZhbDogRGF0ZSB8IHN0cmluZykge1xuICAgIHRoaXMuaGFuZGxlZE1heERhdGUgPSBVdGlscy5wYXJzZVN0cmluZ0RhdGUodmFsKTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBvbkNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KCkgb25EYXRlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHByb3RlY3RlZCBfdWlkID0gaW5qZWN0KElkR2VuZXJhdG9yKS5nZXRJZCgnbW9ua2V5LWRhdGUtcmFuZ2UtJyk7XG5cbiAgcHJvdGVjdGVkIF9pZCE6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5faWQ7XG4gIH1cblxuICBzZXQgaWQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2lkID0gdmFsdWUgfHwgdGhpcy5fdWlkO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2NyZWVuV2lkdGg6IG51bWJlciA9IHdpbmRvdy5pbm5lcldpZHRoO1xuXG4gIHByaXZhdGUgX2FsbG93Q2hhbmdlRmFzdEFjdGlvbiA9IHRydWU7XG5cbiAgcHJpdmF0ZSBfYWxsb3dDaGFuZ2VTZWNvbmRDYWxlbmRhciA9IHRydWU7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfdG9kYXkgPSBuZXcgRGF0ZSgpO1xuXG4gIHJlYWRvbmx5IGkxOG5EaWN0aW9uYXJ5ID0gaW5qZWN0KE1vbmtleURpY3Rpb25hcnlTZXJ2aWNlKS5nZXQoJ0RBVEUtUkFOR0UnKTtcblxuICBoYW5kbGVkU3RhcnREYXRlITogc3RyaW5nO1xuXG4gIGhhbmRsZWRFbmREYXRlITogc3RyaW5nO1xuXG4gIGZpcnN0Q2FsZW5kYXIhOiBDYWxlbmRhcjtcblxuICBzZWNvbmRDYWxlbmRhciE6IENhbGVuZGFyO1xuXG4gIGlzSW52YWxpZEludGVydmFsID0gZmFsc2U7XG5cbiAgaGFuZGxlZE1pbkRhdGU6IHN0cmluZyA9IFV0aWxzLmdldERlZmF1bHRkYXRlcygpLm1pbkRhdGU7XG5cbiAgaGFuZGxlZE1heERhdGU6IHN0cmluZyA9IFV0aWxzLmdldERlZmF1bHRkYXRlcygpLm1heERhdGU7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtYXNzaWduXG4gICAgdGhpcy5pZCA9IHRoaXMuaWQ7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUluaXRpYWxWYWx1ZXMoKSB7XG4gICAgY29uc3QgY2FsZW5kYXJzID0gVXRpbHMuYnVpbGRDYWxlbmRhcnModGhpcy5oYW5kbGVkU3RhcnREYXRlIHx8IG5ldyBEYXRlKCkpO1xuICAgIHRoaXMuZmlyc3RDYWxlbmRhciA9IGNhbGVuZGFycy5maXJzdENhbGVuZGFyO1xuICAgIHRoaXMuc2Vjb25kQ2FsZW5kYXIgPSBjYWxlbmRhcnMuc2Vjb25kQ2FsZW5kYXI7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVByb3BlcnRpZXMoKSB7XG4gICAgaWYgKHRoaXMuX3NjcmVlbldpZHRoIDwgOTUwKSB7XG4gICAgICBpZiAodGhpcy5fYWxsb3dDaGFuZ2VGYXN0QWN0aW9uKSB7XG4gICAgICAgIHRoaXMuaGlkZVF1aWNrQWN0aW9uID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5hbGxvd0Zhc3RBY3Rpb25PbkhlYWRlciA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuX2FsbG93Q2hhbmdlU2Vjb25kQ2FsZW5kYXIpIHtcbiAgICAgICAgdGhpcy5oaWRlU2Vjb25kQ2FsZW5kYXIgPSB0cnVlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5fYWxsb3dDaGFuZ2VGYXN0QWN0aW9uKSB7XG4gICAgICAgIHRoaXMuaGlkZVF1aWNrQWN0aW9uID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYWxsb3dGYXN0QWN0aW9uT25IZWFkZXIgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLl9hbGxvd0NoYW5nZVNlY29uZENhbGVuZGFyKSB7XG4gICAgICAgIHRoaXMuaGlkZVNlY29uZENhbGVuZGFyID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVJbnB1dENoYW5nZShldmVudDogRXZlbnQsIGlzU3RhcnQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGNvbnN0IHsgdmFsdWUgfSA9IGlucHV0O1xuICAgIGNvbnN0IFt5ZWFyXSA9IHZhbHVlLnNwbGl0KCctJyk7XG4gICAgaWYgKGAke051bWJlcih5ZWFyKX1gLmxlbmd0aCA8IDQpIHJldHVybjtcblxuICAgIGlmICghaW5wdXQuY2hlY2tWYWxpZGl0eSgpKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgaW5wdXQudmFsdWUgPSAnJztcbiAgICAgIHRoaXMuaXNJbnZhbGlkSW50ZXJ2YWwgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXNJbnZhbGlkSW50ZXJ2YWwgPSBmYWxzZTtcblxuICAgIGlmIChpc1N0YXJ0KSB7XG4gICAgICB0aGlzLmhhbmRsZWRTdGFydERhdGUgPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oYW5kbGVkRW5kRGF0ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmhpZGVBY3Rpb25zKSB7XG4gICAgICB0aGlzLm9uU3VibWl0KCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gIG9uUmVzaXplKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLl9zY3JlZW5XaWR0aCA9IChldmVudC50YXJnZXQgYXMgV2luZG93KS5pbm5lcldpZHRoO1xuICAgIHRoaXMuaGFuZGxlUHJvcGVydGllcygpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaGlkZVF1aWNrQWN0aW9uKSB7XG4gICAgICB0aGlzLl9hbGxvd0NoYW5nZUZhc3RBY3Rpb24gPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaGlkZVNlY29uZENhbGVuZGFyKSB7XG4gICAgICB0aGlzLl9hbGxvd0NoYW5nZVNlY29uZENhbGVuZGFyID0gZmFsc2U7XG4gICAgfVxuICAgIGlmICh0aGlzLmFsbG93RmFzdEFjdGlvbk9uSGVhZGVyKSB7XG4gICAgICB0aGlzLl9hbGxvd0NoYW5nZUZhc3RBY3Rpb24gPSBmYWxzZTtcbiAgICAgIHRoaXMuaGlkZVF1aWNrQWN0aW9uID0gdHJ1ZTtcbiAgICB9XG5cbiAgICB0aGlzLmhhbmRsZUluaXRpYWxWYWx1ZXMoKTtcbiAgICB0aGlzLmhhbmRsZVByb3BlcnRpZXMoKTtcbiAgfVxuXG4gIG9uSGFuZGxlRGF0ZSh7IHN0YXJ0RGF0ZSwgZW5kRGF0ZSB9OiB7IHN0YXJ0RGF0ZTogc3RyaW5nOyBlbmREYXRlOiBzdHJpbmcgfSkge1xuICAgIHRoaXMuaGFuZGxlZFN0YXJ0RGF0ZSA9IHN0YXJ0RGF0ZTtcbiAgICB0aGlzLmhhbmRsZWRFbmREYXRlID0gZW5kRGF0ZTtcblxuICAgIGlmICh0aGlzLmhpZGVBY3Rpb25zKSB7XG4gICAgICB0aGlzLm9uU3VibWl0KCk7XG4gICAgfVxuICB9XG5cbiAgb25TdWJtaXQoKSB7XG4gICAgdGhpcy5vbkRhdGUubmV4dCh7XG4gICAgICBzdGFydERhdGU6IHRoaXMuaGFuZGxlZFN0YXJ0RGF0ZSA/PyAnJyxcbiAgICAgIGVuZERhdGU6IHRoaXMuaGFuZGxlZEVuZERhdGUgPz8gJydcbiAgICB9KTtcbiAgfVxuXG4gIG9uSGFuZGxlUXVpY2tBY3Rpb24oZXZlbnQ6IG51bWJlcikge1xuICAgIGNvbnN0IGlzQmFja3dhcmQgPSBldmVudCA8IDA7XG4gICAgY29uc3QgZGF5cyA9IE1hdGguYWJzKGV2ZW50KTtcblxuICAgIGlmIChpc0JhY2t3YXJkKSB7XG4gICAgICBjb25zdCBiYXNlRGF0ZSA9IFV0aWxzLnBhcnNlU3RyaW5nRGF0ZShcbiAgICAgICAgdGhpcy5oYW5kbGVkRW5kRGF0ZSB8fCB0aGlzLmhhbmRsZWRTdGFydERhdGUgfHwgdGhpcy5fdG9kYXlcbiAgICAgICk7XG5cbiAgICAgIGxldCBzdGFydERhdGU6IHN0cmluZyB8IERhdGUgPSBzdWJEYXlzKGJhc2VEYXRlLCBkYXlzKTtcblxuICAgICAgaWYgKGlzQmVmb3JlKHN0YXJ0RGF0ZSwgdGhpcy5oYW5kbGVkTWluRGF0ZSkpIHtcbiAgICAgICAgc3RhcnREYXRlID0gdGhpcy5oYW5kbGVkTWluRGF0ZTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5oYW5kbGVkU3RhcnREYXRlID0gVXRpbHMucGFyc2VTdHJpbmdEYXRlKHN0YXJ0RGF0ZSk7XG4gICAgICB0aGlzLmhhbmRsZWRFbmREYXRlID0gVXRpbHMucGFyc2VTdHJpbmdEYXRlKGJhc2VEYXRlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgYmFzZURhdGUgPSBVdGlscy5wYXJzZVN0cmluZ0RhdGUoXG4gICAgICAgIHRoaXMuaGFuZGxlZFN0YXJ0RGF0ZSB8fCB0aGlzLmhhbmRsZWRFbmREYXRlIHx8IHRoaXMuX3RvZGF5XG4gICAgICApO1xuXG4gICAgICBsZXQgZW5kRGF0ZTogc3RyaW5nIHwgRGF0ZSA9IGFkZERheXMoYmFzZURhdGUsIGRheXMpO1xuXG4gICAgICBpZiAoaXNBZnRlcihlbmREYXRlLCB0aGlzLmhhbmRsZWRNYXhEYXRlKSkge1xuICAgICAgICBlbmREYXRlID0gdGhpcy5oYW5kbGVkTWF4RGF0ZTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5oYW5kbGVkU3RhcnREYXRlID0gVXRpbHMucGFyc2VTdHJpbmdEYXRlKGJhc2VEYXRlKTtcbiAgICAgIHRoaXMuaGFuZGxlZEVuZERhdGUgPSBVdGlscy5wYXJzZVN0cmluZ0RhdGUoZW5kRGF0ZSk7XG4gICAgfVxuICB9XG5cbiAgb25DaGFuZ2VJbnB1dFN0YXJ0RGF0ZShldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLmhhbmRsZUlucHV0Q2hhbmdlKGV2ZW50LCB0cnVlKTtcbiAgfVxuXG4gIG9uQ2hhbmdlSW5wdXRFbmREYXRlKGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMuaGFuZGxlSW5wdXRDaGFuZ2UoZXZlbnQsIGZhbHNlKTtcbiAgfVxuXG4gIG9uRGF0YUNoYW5nZShldmVudDogc3RyaW5nLCBpc1N0YXJ0OiBib29sZWFuKSB7XG4gICAgaWYgKGlzU3RhcnQpIHtcbiAgICAgIHRoaXMuaGFuZGxlZFN0YXJ0RGF0ZSA9IGV2ZW50O1xuICAgICAgdGhpcy5oYW5kbGVkRW5kRGF0ZSA9ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhhbmRsZWRFbmREYXRlID0gZXZlbnQ7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGlkZUFjdGlvbnMpIHtcbiAgICAgIHRoaXMub25TdWJtaXQoKTtcbiAgICB9XG4gIH1cblxuICBvbkhhbmRsZU5hdmlnYXRlKGFjdGlvbjogJ3ByZXZpb3VzJyB8ICduZXh0Jykge1xuICAgIGlmICghYWN0aW9uKSByZXR1cm47XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRoaXMuZmlyc3RDYWxlbmRhci55ZWFyLCB0aGlzLmZpcnN0Q2FsZW5kYXIubW9udGgsIDEpO1xuICAgIGNvbnN0IGNhbGVuZGFycyA9IFV0aWxzLmJ1aWxkQ2FsZW5kYXJzKGRhdGUsIGFjdGlvbik7XG4gICAgdGhpcy5maXJzdENhbGVuZGFyID0gY2FsZW5kYXJzLmZpcnN0Q2FsZW5kYXI7XG4gICAgdGhpcy5zZWNvbmRDYWxlbmRhciA9IGNhbGVuZGFycy5zZWNvbmRDYWxlbmRhcjtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImkxOG5EaWN0aW9uYXJ5IHwgYXN5bmMgYXMgaTE4blwiPlxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWdyb3VwXCI+XG4gICAgQGlmICghaGlkZVF1aWNrQWN0aW9uKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwicXVpY2stYWN0aW9uc1wiPlxuICAgICAgICA8bW9ua2V5LWRhdGUtcmFuZ2UtcXVpY2stYWN0aW9ucyAob25DaGFuZ2UpPVwib25IYW5kbGVRdWlja0FjdGlvbigkZXZlbnQpXCI+XG4gICAgICAgIDwvbW9ua2V5LWRhdGUtcmFuZ2UtcXVpY2stYWN0aW9ucz5cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgIEBpZiAoIWhpZGVIZWFkZXIpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiIFtjbGFzcy5uby1xdWljay1hY3Rpb25dPVwiaGlkZVF1aWNrQWN0aW9uXCI+XG4gICAgICAgICAgQGlmIChhbGxvd0Zhc3RBY3Rpb25PbkhlYWRlcikge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInF1aWNrLWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgPG1vbmtleS1kYXRlLXJhbmdlLXF1aWNrLWFjdGlvbnMgKG9uQ2hhbmdlKT1cIm9uSGFuZGxlUXVpY2tBY3Rpb24oJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8L21vbmtleS1kYXRlLXJhbmdlLXF1aWNrLWFjdGlvbnM+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dHNcIj5cbiAgICAgICAgICAgICAgPG1vbmtleS1mb3JtLWZpZWxkIGhpZGVBY3Rpb24gZW5hYmxlQ2xlYXIgc2l6ZT1cInNtXCI+XG4gICAgICAgICAgICAgICAgPG1vbmtleS1sYWJlbD57eyBpMThuPy5bJ1NUQVJULURBVEUnXSB9fTwvbW9ua2V5LWxhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgdHlwZT1cImRhdGVcIlxuICAgICAgICAgICAgICAgICAgbW9ua2V5LWlucHV0XG4gICAgICAgICAgICAgICAgICBpZD1cInN0YXJ0RGF0ZVwiXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImhhbmRsZWRTdGFydERhdGVcIlxuICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25EYXRhQ2hhbmdlKCRldmVudCwgdHJ1ZSlcIlxuICAgICAgICAgICAgICAgICAgW21pbl09XCJoYW5kbGVkTWluRGF0ZVwiXG4gICAgICAgICAgICAgICAgICBbbWF4XT1cImhhbmRsZWRFbmREYXRlID8gaGFuZGxlZEVuZERhdGUgOiBoYW5kbGVkTWF4RGF0ZVwiXG4gICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlSW5wdXRTdGFydERhdGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9tb25rZXktZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgPG1vbmtleS1mb3JtLWZpZWxkIGhpZGVBY3Rpb24gZW5hYmxlQ2xlYXIgc2l6ZT1cInNtXCI+XG4gICAgICAgICAgICAgICAgPG1vbmtleS1sYWJlbD57eyBpMThuPy5bJ0VORC1EQVRFJ10gfX08L21vbmtleS1sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJkYXRlXCJcbiAgICAgICAgICAgICAgICAgIG1vbmtleS1pbnB1dFxuICAgICAgICAgICAgICAgICAgaWQ9XCJlbmREYXRlXCJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaGFuZGxlZEVuZERhdGVcIlxuICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25EYXRhQ2hhbmdlKCRldmVudCwgZmFsc2UpXCJcbiAgICAgICAgICAgICAgICAgIFttaW5dPVwiaGFuZGxlZFN0YXJ0RGF0ZSA/IGhhbmRsZWRTdGFydERhdGUgOiAnJ1wiXG4gICAgICAgICAgICAgICAgICBbbWF4XT1cImhhbmRsZWRNYXhEYXRlXCJcbiAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25DaGFuZ2VJbnB1dEVuZERhdGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9tb25rZXktZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgQGlmIChpc0ludmFsaWRJbnRlcnZhbCkge1xuICAgICAgICAgICAgICA8bW9ua2V5LWVycm9yPnt7IGkxOG4/LlsnSU5WQUxJRCddIH19PC9tb25rZXktZXJyb3I+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgPGRpdiBjbGFzcz1cImJvZHlcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyc1wiPlxuICAgICAgICAgIDxtb25rZXktZGF0ZS1yYW5nZS1tb250aFxuICAgICAgICAgICAgW21vbnRoXT1cImZpcnN0Q2FsZW5kYXIubW9udGhcIlxuICAgICAgICAgICAgW3llYXJdPVwiZmlyc3RDYWxlbmRhci55ZWFyXCJcbiAgICAgICAgICAgIFtzdGFydERhdGVdPVwiaGFuZGxlZFN0YXJ0RGF0ZVwiXG4gICAgICAgICAgICBbZW5kRGF0ZV09XCJoYW5kbGVkRW5kRGF0ZVwiXG4gICAgICAgICAgICAob25EYXRlKT1cIm9uSGFuZGxlRGF0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChvbk5hdmlnYXRlKT1cIm9uSGFuZGxlTmF2aWdhdGUoJGV2ZW50KVwiXG4gICAgICAgICAgICBbaGlkZU5leHRdPVwiIWhpZGVTZWNvbmRDYWxlbmRhclwiXG4gICAgICAgICAgICBbbWluRGF0ZV09XCJoYW5kbGVkTWluRGF0ZVwiXG4gICAgICAgICAgICBbbWF4RGF0ZV09XCJoYW5kbGVkTWF4RGF0ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvbW9ua2V5LWRhdGUtcmFuZ2UtbW9udGg+XG5cbiAgICAgICAgICBAaWYgKCFoaWRlU2Vjb25kQ2FsZW5kYXIpIHtcbiAgICAgICAgICAgIDxtb25rZXktZGF0ZS1yYW5nZS1tb250aFxuICAgICAgICAgICAgICBbbW9udGhdPVwic2Vjb25kQ2FsZW5kYXIubW9udGhcIlxuICAgICAgICAgICAgICBbeWVhcl09XCJzZWNvbmRDYWxlbmRhci55ZWFyXCJcbiAgICAgICAgICAgICAgW3N0YXJ0RGF0ZV09XCJoYW5kbGVkU3RhcnREYXRlXCJcbiAgICAgICAgICAgICAgW2VuZERhdGVdPVwiaGFuZGxlZEVuZERhdGVcIlxuICAgICAgICAgICAgICAob25EYXRlKT1cIm9uSGFuZGxlRGF0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKG9uTmF2aWdhdGUpPVwib25IYW5kbGVOYXZpZ2F0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgaGlkZVByZXZpb3VzXG4gICAgICAgICAgICAgIFttaW5EYXRlXT1cImhhbmRsZWRNaW5EYXRlXCJcbiAgICAgICAgICAgICAgW21heERhdGVdPVwiaGFuZGxlZE1heERhdGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9tb25rZXktZGF0ZS1yYW5nZS1tb250aD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIEBpZiAoIWhpZGVBY3Rpb25zKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgICAgICAgPG1vbmtleS1idXR0b24gc2l6ZT1cIm1kXCIgdHlwZT1cInNlY29uZGFyeVwiIChjbGljayk9XCJvbkNhbmNlbC5uZXh0KG51bGwpXCI+XG4gICAgICAgICAgICB7eyBpMThuPy5BQ1RJT05TPy5DQU5DRUwgfX1cbiAgICAgICAgICA8L21vbmtleS1idXR0b24+XG4gICAgICAgICAgPG1vbmtleS1idXR0b25cbiAgICAgICAgICAgIHNpemU9XCJtZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25TdWJtaXQoKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXRoaXMuaGFuZGxlZFN0YXJ0RGF0ZSB8fCAhdGhpcy5oYW5kbGVkRW5kRGF0ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgaTE4bj8uQUNUSU9OUz8uQVBQTFkgfX1cbiAgICAgICAgICA8L21vbmtleS1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
239
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUtdjIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcmFuZ2UvZGF0ZS1yYW5nZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUtdjIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcmFuZ2UvZGF0ZS1yYW5nZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs2QkFJNkI7QUFDN0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFFTCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDL0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzdDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN4RCxPQUFP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QkFBd0I7a0JBckJwQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGlCQUFpQjt3QkFDakIscUJBQXFCO3dCQUNyQixzQkFBc0I7d0JBQ3RCLHFCQUFxQjt3QkFDckIsNkJBQTZCO3dCQUM3QixvQ0FBb0M7cUJBQ3JDLFFBR0s7d0JBQ0osYUFBYSxFQUFFLG1CQUFtQjt3QkFDbEMsV0FBVyxFQUFFLElBQUk7d0JBQ2pCLE1BQU0sRUFBRSxJQUFJO3FCQUNiO3dEQUdZLFNBQVM7c0JBQXJCLEtBQUs7Z0JBSU8sT0FBTztzQkFBbkIsS0FBSztnQkFLTixlQUFlO3NCQURkLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBSXRDLFVBQVU7c0JBRFQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFJdEMsV0FBVztzQkFEVixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUl0QyxrQkFBa0I7c0JBRGpCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBSXRDLHVCQUF1QjtzQkFEdEIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFHekIsT0FBTztzQkFBbkIsS0FBSztnQkFJTyxPQUFPO3NCQUFuQixLQUFLO2dCQUlJLFFBQVE7c0JBQWpCLE1BQU07Z0JBRUcsTUFBTTtzQkFBZixNQUFNO2dCQU9ILEVBQUU7c0JBREwsS0FBSztnQkEyRk4sUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiAqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIENvcHlyaWdodCBNb25rZXkgRXhjaGFuZ2UuIEFsbCBSaWdodHMgUmVzZXJ2ZWRcbiAqIFRoaXMgc3R5bGUgZ3VpZGUgd2FzIGRldmVsb3BlZCBieSBNb25rZXkgRXhjaGFuZ2UgVGVhbVxuICogTUlUIExpY2VuY2VcbiAqKioqKioqKioqKioqKioqKioqKioqKioqICovXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGFkZERheXMsIGlzQWZ0ZXIsIGlzQmVmb3JlLCBzdWJEYXlzIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgSWRHZW5lcmF0b3IgfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XG5pbXBvcnQgeyBNb25rZXlEaXJlY3RpdmVzTW9kdWxlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBNb25rZXlEaWN0aW9uYXJ5U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RpY3Rpb25hcnkuc2VydmljZSc7XG5pbXBvcnQgeyBNb25rZXlCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9idXR0b24nO1xuaW1wb3J0IHsgTW9ua2V5Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnLi4vZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNb25rZXlJbnB1dE1vZHVsZSB9IGZyb20gJy4uL2lucHV0JztcbmltcG9ydCB7IE1vbmtleURhdGVSYW5nZU1vbnRoQ29tcG9uZW50IH0gZnJvbSAnLi9tb250aCc7XG5pbXBvcnQgeyBNb25rZXlEYXRlUmFuZ2VRdWlja0FjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL3F1aWNrLWFjdGlvbnMnO1xuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmludGVyZmFjZSBDYWxlbmRhciB7XG4gIG1vbnRoOiBudW1iZXI7XG4gIHllYXI6IG51bWJlcjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9ua2V5LWRhdGUtcmFuZ2UnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1vbmtleUlucHV0TW9kdWxlLFxuICAgIE1vbmtleUZvcm1GaWVsZE1vZHVsZSxcbiAgICBNb25rZXlEaXJlY3RpdmVzTW9kdWxlLFxuICAgIE1vbmtleUJ1dHRvbkNvbXBvbmVudCxcbiAgICBNb25rZXlEYXRlUmFuZ2VNb250aENvbXBvbmVudCxcbiAgICBNb25rZXlEYXRlUmFuZ2VRdWlja0FjdGlvbnNDb21wb25lbnRcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtcmFuZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZGF0ZS1yYW5nZS5jb21wb25lbnQuc2NzcycsXG4gIGhvc3Q6IHtcbiAgICAnZGF0YS10ZXN0aWQnOiAnbW9ua2V5LWRhdGUtcmFuZ2UnLFxuICAgICdbYXR0ci5pZF0nOiAnaWQnLFxuICAgICdbaWRdJzogJ2lkJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIE1vbmtleURhdGVSYW5nZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHNldCBzdGFydERhdGUodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLmhhbmRsZWRTdGFydERhdGUgPSB2YWw7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgZW5kRGF0ZSh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuaGFuZGxlZEVuZERhdGUgPSB2YWw7XG4gIH1cblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgaGlkZVF1aWNrQWN0aW9uITogYm9vbGVhbjtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgaGlkZUhlYWRlciE6IGJvb2xlYW47XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIGhpZGVBY3Rpb25zITogYm9vbGVhbjtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgaGlkZVNlY29uZENhbGVuZGFyITogYm9vbGVhbjtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgYWxsb3dGYXN0QWN0aW9uT25IZWFkZXIhOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHNldCBtaW5EYXRlKHZhbDogRGF0ZSB8IHN0cmluZykge1xuICAgIHRoaXMuaGFuZGxlZE1pbkRhdGUgPSBVdGlscy5wYXJzZVN0cmluZ0RhdGUodmFsKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBtYXhEYXRlKHZhbDogRGF0ZSB8IHN0cmluZykge1xuICAgIHRoaXMuaGFuZGxlZE1heERhdGUgPSBVdGlscy5wYXJzZVN0cmluZ0RhdGUodmFsKTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBvbkNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KCkgb25EYXRlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHByb3RlY3RlZCBfdWlkID0gaW5qZWN0KElkR2VuZXJhdG9yKS5nZXRJZCgnbW9ua2V5LWRhdGUtcmFuZ2UtJyk7XG5cbiAgcHJvdGVjdGVkIF9pZCE6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5faWQ7XG4gIH1cblxuICBzZXQgaWQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2lkID0gdmFsdWUgfHwgdGhpcy5fdWlkO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2NyZWVuV2lkdGg6IG51bWJlciA9IHdpbmRvdy5pbm5lcldpZHRoO1xuXG4gIHByaXZhdGUgX2FsbG93Q2hhbmdlRmFzdEFjdGlvbiA9IHRydWU7XG5cbiAgcHJpdmF0ZSBfYWxsb3dDaGFuZ2VTZWNvbmRDYWxlbmRhciA9IHRydWU7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfdG9kYXkgPSBuZXcgRGF0ZSgpO1xuXG4gIHJlYWRvbmx5IGkxOG5EaWN0aW9uYXJ5ID0gaW5qZWN0KE1vbmtleURpY3Rpb25hcnlTZXJ2aWNlKS5nZXQoJ0RBVEUtUkFOR0UnKTtcblxuICBoYW5kbGVkU3RhcnREYXRlITogc3RyaW5nO1xuXG4gIGhhbmRsZWRFbmREYXRlITogc3RyaW5nO1xuXG4gIGZpcnN0Q2FsZW5kYXIhOiBDYWxlbmRhcjtcblxuICBzZWNvbmRDYWxlbmRhciE6IENhbGVuZGFyO1xuXG4gIGlzSW52YWxpZEludGVydmFsID0gZmFsc2U7XG5cbiAgaGFuZGxlZE1pbkRhdGU6IHN0cmluZyA9IFV0aWxzLmdldERlZmF1bHRkYXRlcygpLm1pbkRhdGU7XG5cbiAgaGFuZGxlZE1heERhdGU6IHN0cmluZyA9IFV0aWxzLmdldERlZmF1bHRkYXRlcygpLm1heERhdGU7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtYXNzaWduXG4gICAgdGhpcy5pZCA9IHRoaXMuaWQ7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUluaXRpYWxWYWx1ZXMoKSB7XG4gICAgY29uc3QgY2FsZW5kYXJzID0gVXRpbHMuYnVpbGRDYWxlbmRhcnModGhpcy5oYW5kbGVkU3RhcnREYXRlIHx8IG5ldyBEYXRlKCkpO1xuICAgIHRoaXMuZmlyc3RDYWxlbmRhciA9IGNhbGVuZGFycy5maXJzdENhbGVuZGFyO1xuICAgIHRoaXMuc2Vjb25kQ2FsZW5kYXIgPSBjYWxlbmRhcnMuc2Vjb25kQ2FsZW5kYXI7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVByb3BlcnRpZXMoKSB7XG4gICAgaWYgKHRoaXMuX3NjcmVlbldpZHRoIDwgOTUwKSB7XG4gICAgICBpZiAodGhpcy5fYWxsb3dDaGFuZ2VGYXN0QWN0aW9uKSB7XG4gICAgICAgIHRoaXMuaGlkZVF1aWNrQWN0aW9uID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5hbGxvd0Zhc3RBY3Rpb25PbkhlYWRlciA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuX2FsbG93Q2hhbmdlU2Vjb25kQ2FsZW5kYXIpIHtcbiAgICAgICAgdGhpcy5oaWRlU2Vjb25kQ2FsZW5kYXIgPSB0cnVlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5fYWxsb3dDaGFuZ2VGYXN0QWN0aW9uKSB7XG4gICAgICAgIHRoaXMuaGlkZVF1aWNrQWN0aW9uID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYWxsb3dGYXN0QWN0aW9uT25IZWFkZXIgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLl9hbGxvd0NoYW5nZVNlY29uZENhbGVuZGFyKSB7XG4gICAgICAgIHRoaXMuaGlkZVNlY29uZENhbGVuZGFyID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVJbnB1dENoYW5nZShldmVudDogRXZlbnQsIGlzU3RhcnQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGNvbnN0IHsgdmFsdWUgfSA9IGlucHV0O1xuICAgIGNvbnN0IFt5ZWFyXSA9IHZhbHVlLnNwbGl0KCctJyk7XG4gICAgaWYgKGAke051bWJlcih5ZWFyKX1gLmxlbmd0aCA8IDQpIHJldHVybjtcblxuICAgIGlmICghaW5wdXQuY2hlY2tWYWxpZGl0eSgpKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgaW5wdXQudmFsdWUgPSAnJztcbiAgICAgIHRoaXMuaXNJbnZhbGlkSW50ZXJ2YWwgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXNJbnZhbGlkSW50ZXJ2YWwgPSBmYWxzZTtcblxuICAgIGlmIChpc1N0YXJ0KSB7XG4gICAgICB0aGlzLmhhbmRsZWRTdGFydERhdGUgPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oYW5kbGVkRW5kRGF0ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmhpZGVBY3Rpb25zKSB7XG4gICAgICB0aGlzLm9uU3VibWl0KCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gIG9uUmVzaXplKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLl9zY3JlZW5XaWR0aCA9IChldmVudC50YXJnZXQgYXMgV2luZG93KS5pbm5lcldpZHRoO1xuICAgIHRoaXMuaGFuZGxlUHJvcGVydGllcygpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaGlkZVF1aWNrQWN0aW9uKSB7XG4gICAgICB0aGlzLl9hbGxvd0NoYW5nZUZhc3RBY3Rpb24gPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaGlkZVNlY29uZENhbGVuZGFyKSB7XG4gICAgICB0aGlzLl9hbGxvd0NoYW5nZVNlY29uZENhbGVuZGFyID0gZmFsc2U7XG4gICAgfVxuICAgIGlmICh0aGlzLmFsbG93RmFzdEFjdGlvbk9uSGVhZGVyKSB7XG4gICAgICB0aGlzLl9hbGxvd0NoYW5nZUZhc3RBY3Rpb24gPSBmYWxzZTtcbiAgICAgIHRoaXMuaGlkZVF1aWNrQWN0aW9uID0gdHJ1ZTtcbiAgICB9XG5cbiAgICB0aGlzLmhhbmRsZUluaXRpYWxWYWx1ZXMoKTtcbiAgICB0aGlzLmhhbmRsZVByb3BlcnRpZXMoKTtcbiAgfVxuXG4gIG9uSGFuZGxlRGF0ZSh7IHN0YXJ0RGF0ZSwgZW5kRGF0ZSB9OiB7IHN0YXJ0RGF0ZTogc3RyaW5nOyBlbmREYXRlOiBzdHJpbmcgfSkge1xuICAgIHRoaXMuaGFuZGxlZFN0YXJ0RGF0ZSA9IHN0YXJ0RGF0ZTtcbiAgICB0aGlzLmhhbmRsZWRFbmREYXRlID0gZW5kRGF0ZTtcblxuICAgIGlmICh0aGlzLmhpZGVBY3Rpb25zKSB7XG4gICAgICB0aGlzLm9uU3VibWl0KCk7XG4gICAgfVxuICB9XG5cbiAgb25TdWJtaXQoKSB7XG4gICAgdGhpcy5vbkRhdGUubmV4dCh7XG4gICAgICBzdGFydERhdGU6IHRoaXMuaGFuZGxlZFN0YXJ0RGF0ZSA/PyAnJyxcbiAgICAgIGVuZERhdGU6IHRoaXMuaGFuZGxlZEVuZERhdGUgPz8gJydcbiAgICB9KTtcbiAgfVxuXG4gIG9uSGFuZGxlUXVpY2tBY3Rpb24oZXZlbnQ6IG51bWJlcikge1xuICAgIGNvbnN0IGlzQmFja3dhcmQgPSBldmVudCA8IDA7XG4gICAgY29uc3QgZGF5cyA9IE1hdGguYWJzKGV2ZW50KTtcblxuICAgIGlmIChpc0JhY2t3YXJkKSB7XG4gICAgICBjb25zdCBiYXNlRGF0ZSA9IFV0aWxzLnBhcnNlU3RyaW5nRGF0ZShcbiAgICAgICAgdGhpcy5oYW5kbGVkRW5kRGF0ZSB8fCB0aGlzLmhhbmRsZWRTdGFydERhdGUgfHwgdGhpcy5fdG9kYXlcbiAgICAgICk7XG5cbiAgICAgIGxldCBzdGFydERhdGU6IHN0cmluZyB8IERhdGUgPSBzdWJEYXlzKGJhc2VEYXRlLCBkYXlzKTtcblxuICAgICAgaWYgKGlzQmVmb3JlKHN0YXJ0RGF0ZSwgdGhpcy5oYW5kbGVkTWluRGF0ZSkpIHtcbiAgICAgICAgc3RhcnREYXRlID0gdGhpcy5oYW5kbGVkTWluRGF0ZTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5oYW5kbGVkU3RhcnREYXRlID0gVXRpbHMucGFyc2VTdHJpbmdEYXRlKHN0YXJ0RGF0ZSk7XG4gICAgICB0aGlzLmhhbmRsZWRFbmREYXRlID0gVXRpbHMucGFyc2VTdHJpbmdEYXRlKGJhc2VEYXRlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgYmFzZURhdGUgPSBVdGlscy5wYXJzZVN0cmluZ0RhdGUoXG4gICAgICAgIHRoaXMuaGFuZGxlZFN0YXJ0RGF0ZSB8fCB0aGlzLmhhbmRsZWRFbmREYXRlIHx8IHRoaXMuX3RvZGF5XG4gICAgICApO1xuXG4gICAgICBsZXQgZW5kRGF0ZTogc3RyaW5nIHwgRGF0ZSA9IGFkZERheXMoYmFzZURhdGUsIGRheXMpO1xuXG4gICAgICBpZiAoaXNBZnRlcihlbmREYXRlLCB0aGlzLmhhbmRsZWRNYXhEYXRlKSkge1xuICAgICAgICBlbmREYXRlID0gdGhpcy5oYW5kbGVkTWF4RGF0ZTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5oYW5kbGVkU3RhcnREYXRlID0gVXRpbHMucGFyc2VTdHJpbmdEYXRlKGJhc2VEYXRlKTtcbiAgICAgIHRoaXMuaGFuZGxlZEVuZERhdGUgPSBVdGlscy5wYXJzZVN0cmluZ0RhdGUoZW5kRGF0ZSk7XG4gICAgfVxuICB9XG5cbiAgb25DaGFuZ2VJbnB1dFN0YXJ0RGF0ZShldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLmhhbmRsZUlucHV0Q2hhbmdlKGV2ZW50LCB0cnVlKTtcbiAgfVxuXG4gIG9uQ2hhbmdlSW5wdXRFbmREYXRlKGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMuaGFuZGxlSW5wdXRDaGFuZ2UoZXZlbnQsIGZhbHNlKTtcbiAgfVxuXG4gIG9uRGF0YUNoYW5nZShldmVudDogc3RyaW5nLCBpc1N0YXJ0OiBib29sZWFuKSB7XG4gICAgaWYgKGlzU3RhcnQpIHtcbiAgICAgIHRoaXMuaGFuZGxlZFN0YXJ0RGF0ZSA9IGV2ZW50O1xuICAgICAgdGhpcy5oYW5kbGVkRW5kRGF0ZSA9ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhhbmRsZWRFbmREYXRlID0gZXZlbnQ7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGlkZUFjdGlvbnMpIHtcbiAgICAgIHRoaXMub25TdWJtaXQoKTtcbiAgICB9XG4gIH1cblxuICBvbkhhbmRsZU5hdmlnYXRlKGFjdGlvbjogJ3ByZXZpb3VzJyB8ICduZXh0Jykge1xuICAgIGlmICghYWN0aW9uKSByZXR1cm47XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRoaXMuZmlyc3RDYWxlbmRhci55ZWFyLCB0aGlzLmZpcnN0Q2FsZW5kYXIubW9udGgsIDEpO1xuICAgIGNvbnN0IGNhbGVuZGFycyA9IFV0aWxzLmJ1aWxkQ2FsZW5kYXJzKGRhdGUsIGFjdGlvbik7XG4gICAgdGhpcy5maXJzdENhbGVuZGFyID0gY2FsZW5kYXJzLmZpcnN0Q2FsZW5kYXI7XG4gICAgdGhpcy5zZWNvbmRDYWxlbmRhciA9IGNhbGVuZGFycy5zZWNvbmRDYWxlbmRhcjtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImkxOG5EaWN0aW9uYXJ5IHwgYXN5bmMgYXMgaTE4blwiPlxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWdyb3VwXCI+XG4gICAgQGlmICghaGlkZVF1aWNrQWN0aW9uKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwicXVpY2stYWN0aW9uc1wiPlxuICAgICAgICA8bW9ua2V5LWRhdGUtcmFuZ2UtcXVpY2stYWN0aW9ucyAob25DaGFuZ2UpPVwib25IYW5kbGVRdWlja0FjdGlvbigkZXZlbnQpXCI+XG4gICAgICAgIDwvbW9ua2V5LWRhdGUtcmFuZ2UtcXVpY2stYWN0aW9ucz5cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgIEBpZiAoIWhpZGVIZWFkZXIpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiIFtjbGFzcy5uby1xdWljay1hY3Rpb25dPVwiaGlkZVF1aWNrQWN0aW9uXCI+XG4gICAgICAgICAgQGlmIChhbGxvd0Zhc3RBY3Rpb25PbkhlYWRlcikge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInF1aWNrLWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgPG1vbmtleS1kYXRlLXJhbmdlLXF1aWNrLWFjdGlvbnMgKG9uQ2hhbmdlKT1cIm9uSGFuZGxlUXVpY2tBY3Rpb24oJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8L21vbmtleS1kYXRlLXJhbmdlLXF1aWNrLWFjdGlvbnM+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dHNcIj5cbiAgICAgICAgICAgICAgPG1vbmtleS1mb3JtLWZpZWxkIGhpZGVBY3Rpb24gZW5hYmxlQ2xlYXIgc2l6ZT1cInNtXCI+XG4gICAgICAgICAgICAgICAgPG1vbmtleS1sYWJlbD57eyBpMThuPy5bJ1NUQVJULURBVEUnXSB9fTwvbW9ua2V5LWxhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgdHlwZT1cImRhdGVcIlxuICAgICAgICAgICAgICAgICAgbW9ua2V5LWlucHV0XG4gICAgICAgICAgICAgICAgICBpZD1cInN0YXJ0RGF0ZVwiXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImhhbmRsZWRTdGFydERhdGVcIlxuICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25EYXRhQ2hhbmdlKCRldmVudCwgdHJ1ZSlcIlxuICAgICAgICAgICAgICAgICAgW21pbl09XCJoYW5kbGVkTWluRGF0ZVwiXG4gICAgICAgICAgICAgICAgICBbbWF4XT1cImhhbmRsZWRFbmREYXRlID8gaGFuZGxlZEVuZERhdGUgOiBoYW5kbGVkTWF4RGF0ZVwiXG4gICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlSW5wdXRTdGFydERhdGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9tb25rZXktZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgPG1vbmtleS1mb3JtLWZpZWxkIGhpZGVBY3Rpb24gZW5hYmxlQ2xlYXIgc2l6ZT1cInNtXCI+XG4gICAgICAgICAgICAgICAgPG1vbmtleS1sYWJlbD57eyBpMThuPy5bJ0VORC1EQVRFJ10gfX08L21vbmtleS1sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJkYXRlXCJcbiAgICAgICAgICAgICAgICAgIG1vbmtleS1pbnB1dFxuICAgICAgICAgICAgICAgICAgaWQ9XCJlbmREYXRlXCJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaGFuZGxlZEVuZERhdGVcIlxuICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25EYXRhQ2hhbmdlKCRldmVudCwgZmFsc2UpXCJcbiAgICAgICAgICAgICAgICAgIFttaW5dPVwiaGFuZGxlZFN0YXJ0RGF0ZSA/IGhhbmRsZWRTdGFydERhdGUgOiAnJ1wiXG4gICAgICAgICAgICAgICAgICBbbWF4XT1cImhhbmRsZWRNYXhEYXRlXCJcbiAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25DaGFuZ2VJbnB1dEVuZERhdGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9tb25rZXktZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgQGlmIChpc0ludmFsaWRJbnRlcnZhbCkge1xuICAgICAgICAgICAgICA8bW9ua2V5LWVycm9yPnt7IGkxOG4/LlsnSU5WQUxJRCddIH19PC9tb25rZXktZXJyb3I+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgPGRpdiBjbGFzcz1cImJvZHlcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyc1wiPlxuICAgICAgICAgIDxtb25rZXktZGF0ZS1yYW5nZS1tb250aFxuICAgICAgICAgICAgW21vbnRoXT1cImZpcnN0Q2FsZW5kYXIubW9udGhcIlxuICAgICAgICAgICAgW3llYXJdPVwiZmlyc3RDYWxlbmRhci55ZWFyXCJcbiAgICAgICAgICAgIFtzdGFydERhdGVdPVwiaGFuZGxlZFN0YXJ0RGF0ZVwiXG4gICAgICAgICAgICBbZW5kRGF0ZV09XCJoYW5kbGVkRW5kRGF0ZVwiXG4gICAgICAgICAgICAob25EYXRlKT1cIm9uSGFuZGxlRGF0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChvbk5hdmlnYXRlKT1cIm9uSGFuZGxlTmF2aWdhdGUoJGV2ZW50KVwiXG4gICAgICAgICAgICBbaGlkZU5leHRdPVwiIWhpZGVTZWNvbmRDYWxlbmRhclwiXG4gICAgICAgICAgICBbbWluRGF0ZV09XCJoYW5kbGVkTWluRGF0ZVwiXG4gICAgICAgICAgICBbbWF4RGF0ZV09XCJoYW5kbGVkTWF4RGF0ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvbW9ua2V5LWRhdGUtcmFuZ2UtbW9udGg+XG5cbiAgICAgICAgICBAaWYgKCFoaWRlU2Vjb25kQ2FsZW5kYXIpIHtcbiAgICAgICAgICAgIDxtb25rZXktZGF0ZS1yYW5nZS1tb250aFxuICAgICAgICAgICAgICBbbW9udGhdPVwic2Vjb25kQ2FsZW5kYXIubW9udGhcIlxuICAgICAgICAgICAgICBbeWVhcl09XCJzZWNvbmRDYWxlbmRhci55ZWFyXCJcbiAgICAgICAgICAgICAgW3N0YXJ0RGF0ZV09XCJoYW5kbGVkU3RhcnREYXRlXCJcbiAgICAgICAgICAgICAgW2VuZERhdGVdPVwiaGFuZGxlZEVuZERhdGVcIlxuICAgICAgICAgICAgICAob25EYXRlKT1cIm9uSGFuZGxlRGF0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKG9uTmF2aWdhdGUpPVwib25IYW5kbGVOYXZpZ2F0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgaGlkZVByZXZpb3VzXG4gICAgICAgICAgICAgIFttaW5EYXRlXT1cImhhbmRsZWRNaW5EYXRlXCJcbiAgICAgICAgICAgICAgW21heERhdGVdPVwiaGFuZGxlZE1heERhdGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9tb25rZXktZGF0ZS1yYW5nZS1tb250aD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIEBpZiAoIWhpZGVBY3Rpb25zKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgICAgICAgPG1vbmtleS1idXR0b24gc2l6ZT1cIm1kXCIgdHlwZT1cInNlY29uZGFyeVwiIChjbGljayk9XCJvbkNhbmNlbC5uZXh0KG51bGwpXCI+XG4gICAgICAgICAgICB7eyBpMThuPy5BQ1RJT05TPy5DQU5DRUwgfX1cbiAgICAgICAgICA8L21vbmtleS1idXR0b24+XG4gICAgICAgICAgPG1vbmtleS1idXR0b25cbiAgICAgICAgICAgIHNpemU9XCJtZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25TdWJtaXQoKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXRoaXMuaGFuZGxlZFN0YXJ0RGF0ZSB8fCAhdGhpcy5oYW5kbGVkRW5kRGF0ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgaTE4bj8uQUNUSU9OUz8uQVBQTFkgfX1cbiAgICAgICAgICA8L21vbmtleS1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
@@ -12,4 +12,4 @@ export class MonkeyFormFieldControl {
|
|
|
12
12
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonkeyFormFieldControl, decorators: [{
|
|
13
13
|
type: Directive
|
|
14
14
|
}] });
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1jb250cm9sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LXN0eWxlLWd1aWRlLXYyL3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtY29udHJvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs2QkFJNkI7QUFFN0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLMUMsTUFBTSxPQUFnQixzQkFBc0I7K0dBQXRCLHNCQUFzQjttR0FBdEIsc0JBQXNCOzs0RkFBdEIsc0JBQXNCO2tCQUQzQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiLyoqICoqKioqKioqKioqKioqKioqKioqKioqKlxuICogQ29weXJpZ2h0IE1vbmtleSBFeGNoYW5nZS4gQWxsIFJpZ2h0cyBSZXNlcnZlZFxuICogVGhpcyBzdHlsZSBndWlkZSB3YXMgZGV2ZWxvcGVkIGJ5IE1vbmtleSBFeGNoYW5nZSBUZWFtXG4gKiBNSVQgTGljZW5jZVxuICoqKioqKioqKioqKioqKioqKioqKioqKiogKi9cblxuaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2xEaXJlY3RpdmUsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTW9ua2V5Rm9ybUZpZWxkQ29udHJvbCB7XG4gIHJlYWRvbmx5IGlkITogc3RyaW5nO1xuXG4gIHJlYWRvbmx5IG5nQ29udHJvbCE6IE5nQ29udHJvbCB8IEFic3RyYWN0Q29udHJvbERpcmVjdGl2ZSB8IG51bGw7XG5cbiAgcmVhZG9ubHkgZGlzYWJsZWQhOiBib29sZWFuO1xuXG4gIHJlYWRvbmx5IGZvY3VzZWQhOiBib29sZWFuO1xuXG4gIHJlYWRvbmx5IHN0YXRlQ2hhbmdlcyE6IE9ic2VydmFibGU8dm9pZD47XG5cbiAgcmVhZG9ubHkgdHlwZT86IHN0cmluZztcblxuICByZWFkb25seSBjdXJyZW5jeT86IGJvb2xlYW47XG5cbiAgcmVhZG9ubHkgcGVyY2VudD86IGJvb2xlYW47XG5cbiAgYWJzdHJhY3Qgb25Db250YWluZXJDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQ7XG5cbiAgbG9hZGluZz86IGJvb2xlYW47XG5cbiAgZGlzYWJsZVRvQmVEaXJ0eT86IGJvb2xlYW47XG59XG4iXX0=
|
|
@@ -7,11 +7,11 @@ import { booleanAttribute, ChangeDetectorRef, Component, ContentChild, ContentCh
|
|
|
7
7
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
8
8
|
import { merge } from 'rxjs';
|
|
9
9
|
import { IdGenerator } from '../../../utils';
|
|
10
|
-
import {
|
|
11
|
-
import { MonkeyIconsService } from '../../services';
|
|
10
|
+
import { MonkeyErrorDirective, MonkeyHelperDirective, MonkeyInfoDirective, MonkeyLabelDirective, MonkeyPrefixDirective, MonkeySuffixDirective } from '../../directives';
|
|
12
11
|
import { MonkeyFormFieldControl } from './form-field-control';
|
|
13
12
|
import { getCurrencySymbol } from './utils';
|
|
14
13
|
import * as i0 from "@angular/core";
|
|
14
|
+
import * as i1 from "../../../utils/icon";
|
|
15
15
|
export class MonkeyFormFieldComponent {
|
|
16
16
|
get id() {
|
|
17
17
|
return this._id;
|
|
@@ -26,7 +26,8 @@ export class MonkeyFormFieldComponent {
|
|
|
26
26
|
return this._labelId;
|
|
27
27
|
}
|
|
28
28
|
get hideBorder() {
|
|
29
|
-
|
|
29
|
+
const { control } = this;
|
|
30
|
+
return control?.type === 'input-code' || control?.type === 'radio-button';
|
|
30
31
|
}
|
|
31
32
|
get showHeader() {
|
|
32
33
|
return this.hasLabel || this.hasHelper;
|
|
@@ -52,10 +53,10 @@ export class MonkeyFormFieldComponent {
|
|
|
52
53
|
return this.control.type === 'date' && !this.hideAction;
|
|
53
54
|
}
|
|
54
55
|
get showCurrency() {
|
|
55
|
-
return this.control.currency;
|
|
56
|
+
return this.control.currency || false;
|
|
56
57
|
}
|
|
57
58
|
get showPercent() {
|
|
58
|
-
return this.control.percent;
|
|
59
|
+
return this.control.percent || false;
|
|
59
60
|
}
|
|
60
61
|
get showLoading() {
|
|
61
62
|
return this.control.loading || false;
|
|
@@ -63,7 +64,6 @@ export class MonkeyFormFieldComponent {
|
|
|
63
64
|
constructor() {
|
|
64
65
|
this.size = 'md';
|
|
65
66
|
this.elementRef = inject(ElementRef);
|
|
66
|
-
this._icons = inject(MonkeyIconsService);
|
|
67
67
|
this._changeDetectorRef = inject(ChangeDetectorRef);
|
|
68
68
|
this._idGenerator = inject(IdGenerator);
|
|
69
69
|
this._labelId = this._idGenerator.getId('monkey-label-');
|
|
@@ -73,9 +73,6 @@ export class MonkeyFormFieldComponent {
|
|
|
73
73
|
this._previousControl = null;
|
|
74
74
|
this.currencySymbol = getCurrencySymbol(inject(DEFAULT_CURRENCY_CODE));
|
|
75
75
|
this.percentSymbol = '%';
|
|
76
|
-
this.imgClear = this._icons.clear;
|
|
77
|
-
this.imgCalendar = this._icons.calendar;
|
|
78
|
-
this.imgLoading = this._icons.loading;
|
|
79
76
|
this.hasLabel = false;
|
|
80
77
|
this.hasHelper = false;
|
|
81
78
|
this.hasPrefix = false;
|
|
@@ -219,7 +216,7 @@ export class MonkeyFormFieldComponent {
|
|
|
219
216
|
}
|
|
220
217
|
}
|
|
221
218
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonkeyFormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
222
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: MonkeyFormFieldComponent, selector: "monkey-form-field", inputs: { id: "id", hideAction: ["hideAction", "hideAction", booleanAttribute], enableClear: ["enableClear", "enableClear", booleanAttribute], size: "size" }, host: { properties: { "class.mecx-disabled": "control.disabled", "class.mecx-form-field-focused": "control.focused", "class.mecx-form-field-invalid": "showInvalid", "class.mecx-form-field-borderless": "hideBorder", "attr.id": "id", "id": "id", "class": "size" }, classAttribute: "mecx-form-field" }, queries: [{ propertyName: "_formFieldControl", first: true, predicate: MonkeyFormFieldControl, descendants: true }, { propertyName: "_labelChildren", predicate:
|
|
219
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: MonkeyFormFieldComponent, selector: "monkey-form-field", inputs: { id: "id", hideAction: ["hideAction", "hideAction", booleanAttribute], enableClear: ["enableClear", "enableClear", booleanAttribute], size: "size" }, host: { properties: { "class.mecx-disabled": "control.disabled", "class.mecx-form-field-focused": "control.focused", "class.mecx-form-field-invalid": "showInvalid", "class.mecx-form-field-borderless": "hideBorder", "attr.id": "id", "id": "id", "class": "size" }, classAttribute: "mecx-form-field" }, queries: [{ propertyName: "_formFieldControl", first: true, predicate: MonkeyFormFieldControl, descendants: true }, { propertyName: "_labelChildren", predicate: MonkeyLabelDirective, descendants: true }, { propertyName: "_helperChildren", predicate: MonkeyHelperDirective, descendants: true }, { propertyName: "_prefixChildren", predicate: MonkeyPrefixDirective, descendants: true }, { propertyName: "_suffixChildren", predicate: MonkeySuffixDirective, descendants: true }, { propertyName: "_infoChildren", predicate: MonkeyInfoDirective, descendants: true }, { propertyName: "_errorChildren", predicate: MonkeyErrorDirective, descendants: true }], exportAs: ["monkeyFormField"], ngImport: i0, template: "@if (showHeader) {\n <div class=\"mecx-form-field-header\" (click)=\"control.onContainerClick($event)\">\n <label [id]=\"labelId\" [attr.for]=\"control.id\">\n <ng-content select=\"monkey-label\"></ng-content>\n </label>\n <ng-content select=\"monkey-helper\"></ng-content>\n </div>\n}\n\n<div class=\"mecx-form-field-body\" (click)=\"control.onContainerClick($event)\">\n @if (hasPrefix) {\n <ng-content select=\"monkey-prefix\"></ng-content>\n }\n @if (getSymbols(); as symbols) {\n <div class=\"mecx-form-field-prefix-symbol\">\n {{ symbols }}\n </div>\n }\n\n <ng-content></ng-content>\n\n @if (showClear) {\n <util-icon class=\"mecx-clear\" name=\"clear\" (click)=\"onClear($event)\" />\n }\n @if (showCalendar) {\n <util-icon class=\"mecx-calendar\" name=\"calendar\" (click)=\"onOpenCalendar($event)\" />\n }\n @if (showLoading) {\n <util-icon class=\"mecx-form-field-loading\" name=\"loading\" />\n }\n\n @if (hasSuffix) {\n <ng-content select=\"monkey-suffix\"></ng-content>\n }\n</div>\n\n@if (showFooter) {\n <div class=\"mecx-form-field-footer\" (click)=\"control.onContainerClick($event)\">\n @switch (getFooterMessages()) {\n @case ('error') {\n <ng-content select=\"monkey-error\"></ng-content>\n }\n @case ('info') {\n <div class=\"mecx-form-field-info\">\n <ng-content select=\"monkey-info\"></ng-content>\n </div>\n }\n }\n </div>\n}\n", styles: [".mecx-form-field{width:100%;display:inline-flex;flex-direction:column;min-width:0;text-align:left;gap:6px}.mecx-disabled .mecx-form-field{cursor:not-allowed;pointer-events:none}.mecx-form-field-header{display:flex;justify-content:space-between;align-items:center}.mecx-disabled .mecx-form-field-header label{pointer-events:none}.mecx-form-field-body{border-radius:4px;border:2px solid var(--mecx-color-gray-400);padding:8px;gap:4px;background:var(--mecx-color-white);color:var(--mecx-color-gray-500);box-sizing:border-box;height:40px;display:flex;align-items:center;position:relative}.mecx-form-field-invalid .mecx-form-field-body{border:2px solid var(--mecx-color-error-700)}.mecx-form-field-invalid .mecx-form-field-body .mecx-option:not(.mecx-option-disabled).radio:before{border:2px solid var(--mecx-color-error-700)}.mecx-form-field-focused .mecx-form-field-body{outline:2px solid var(--mecx-color-theme-main);outline-offset:1px}.mecx-disabled .mecx-form-field-body{border-color:var(--mecx-color-gray-50);background:var(--mecx-color-gray-50);border-radius:8px}.mecx-form-field-body .mecx-clear,.mecx-form-field-body .mecx-calendar{display:flex;align-items:center;justify-content:center;cursor:pointer}.mecx-form-field-body .mecx-calendar svg path{fill:var(--mecx-color-theme-main)}.sm .mecx-form-field-body{height:32px}.md .mecx-form-field-body{height:40px}.lg .mecx-form-field-body{height:48px}.mecx-form-field-footer{display:flex;flex-direction:column}.mecx-form-field-prefix-symbol{color:var(--mecx-color-gray-700);font-size:16px;font-weight:400;font-style:normal;width:22px;text-align:center}.mecx-form-field-prefix-symbol .mk-i{display:flex}.mecx-disabled .mecx-form-field-prefix-symbol{color:var(--mecx-color-gray-400)!important;pointer-events:none}.mecx-form-field-loading{display:flex}.mecx-form-field-loading svg path{fill:var(--mecx-color-theme-main)}.mecx-form-field-borderless .mecx-form-field-body{background-color:transparent;border:0;border-radius:0;padding:0;height:unset;align-items:flex-start;outline:none;outline-offset:unset}.mecx-form-field-borderless.mecx-form-field-focused .mecx-form-field-body{outline:none;outline-offset:unset}\n"], dependencies: [{ kind: "component", type: i1.UtilIconComponent, selector: "util-icon", inputs: ["name"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
223
220
|
}
|
|
224
221
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonkeyFormFieldComponent, decorators: [{
|
|
225
222
|
type: Component,
|
|
@@ -232,7 +229,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
232
229
|
'[attr.id]': 'id',
|
|
233
230
|
'[id]': 'id',
|
|
234
231
|
'[class]': 'size'
|
|
235
|
-
}, template: "@if (showHeader) {\n <div class=\"mecx-form-field-header\" (click)=\"control.onContainerClick($event)\">\n <label [id]=\"labelId\" [attr.for]=\"control.id\">\n <ng-content select=\"monkey-label\"></ng-content>\n </label>\n <ng-content select=\"monkey-helper\"></ng-content>\n </div>\n}\n\n<div class=\"mecx-form-field-body\" (click)=\"control.onContainerClick($event)\">\n @if (hasPrefix) {\n <ng-content select=\"monkey-prefix\"></ng-content>\n }\n @if (getSymbols(); as symbols) {\n <div class=\"mecx-form-field-prefix-symbol\">\n {{ symbols }}\n </div>\n }\n\n <ng-content></ng-content>\n\n @if (showClear) {\n <
|
|
232
|
+
}, template: "@if (showHeader) {\n <div class=\"mecx-form-field-header\" (click)=\"control.onContainerClick($event)\">\n <label [id]=\"labelId\" [attr.for]=\"control.id\">\n <ng-content select=\"monkey-label\"></ng-content>\n </label>\n <ng-content select=\"monkey-helper\"></ng-content>\n </div>\n}\n\n<div class=\"mecx-form-field-body\" (click)=\"control.onContainerClick($event)\">\n @if (hasPrefix) {\n <ng-content select=\"monkey-prefix\"></ng-content>\n }\n @if (getSymbols(); as symbols) {\n <div class=\"mecx-form-field-prefix-symbol\">\n {{ symbols }}\n </div>\n }\n\n <ng-content></ng-content>\n\n @if (showClear) {\n <util-icon class=\"mecx-clear\" name=\"clear\" (click)=\"onClear($event)\" />\n }\n @if (showCalendar) {\n <util-icon class=\"mecx-calendar\" name=\"calendar\" (click)=\"onOpenCalendar($event)\" />\n }\n @if (showLoading) {\n <util-icon class=\"mecx-form-field-loading\" name=\"loading\" />\n }\n\n @if (hasSuffix) {\n <ng-content select=\"monkey-suffix\"></ng-content>\n }\n</div>\n\n@if (showFooter) {\n <div class=\"mecx-form-field-footer\" (click)=\"control.onContainerClick($event)\">\n @switch (getFooterMessages()) {\n @case ('error') {\n <ng-content select=\"monkey-error\"></ng-content>\n }\n @case ('info') {\n <div class=\"mecx-form-field-info\">\n <ng-content select=\"monkey-info\"></ng-content>\n </div>\n }\n }\n </div>\n}\n", styles: [".mecx-form-field{width:100%;display:inline-flex;flex-direction:column;min-width:0;text-align:left;gap:6px}.mecx-disabled .mecx-form-field{cursor:not-allowed;pointer-events:none}.mecx-form-field-header{display:flex;justify-content:space-between;align-items:center}.mecx-disabled .mecx-form-field-header label{pointer-events:none}.mecx-form-field-body{border-radius:4px;border:2px solid var(--mecx-color-gray-400);padding:8px;gap:4px;background:var(--mecx-color-white);color:var(--mecx-color-gray-500);box-sizing:border-box;height:40px;display:flex;align-items:center;position:relative}.mecx-form-field-invalid .mecx-form-field-body{border:2px solid var(--mecx-color-error-700)}.mecx-form-field-invalid .mecx-form-field-body .mecx-option:not(.mecx-option-disabled).radio:before{border:2px solid var(--mecx-color-error-700)}.mecx-form-field-focused .mecx-form-field-body{outline:2px solid var(--mecx-color-theme-main);outline-offset:1px}.mecx-disabled .mecx-form-field-body{border-color:var(--mecx-color-gray-50);background:var(--mecx-color-gray-50);border-radius:8px}.mecx-form-field-body .mecx-clear,.mecx-form-field-body .mecx-calendar{display:flex;align-items:center;justify-content:center;cursor:pointer}.mecx-form-field-body .mecx-calendar svg path{fill:var(--mecx-color-theme-main)}.sm .mecx-form-field-body{height:32px}.md .mecx-form-field-body{height:40px}.lg .mecx-form-field-body{height:48px}.mecx-form-field-footer{display:flex;flex-direction:column}.mecx-form-field-prefix-symbol{color:var(--mecx-color-gray-700);font-size:16px;font-weight:400;font-style:normal;width:22px;text-align:center}.mecx-form-field-prefix-symbol .mk-i{display:flex}.mecx-disabled .mecx-form-field-prefix-symbol{color:var(--mecx-color-gray-400)!important;pointer-events:none}.mecx-form-field-loading{display:flex}.mecx-form-field-loading svg path{fill:var(--mecx-color-theme-main)}.mecx-form-field-borderless .mecx-form-field-body{background-color:transparent;border:0;border-radius:0;padding:0;height:unset;align-items:flex-start;outline:none;outline-offset:unset}.mecx-form-field-borderless.mecx-form-field-focused .mecx-form-field-body{outline:none;outline-offset:unset}\n"] }]
|
|
236
233
|
}], ctorParameters: () => [], propDecorators: { id: [{
|
|
237
234
|
type: Input
|
|
238
235
|
}], hideAction: [{
|
|
@@ -248,21 +245,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
248
245
|
args: [MonkeyFormFieldControl]
|
|
249
246
|
}], _labelChildren: [{
|
|
250
247
|
type: ContentChildren,
|
|
251
|
-
args: [
|
|
248
|
+
args: [MonkeyLabelDirective, { descendants: true }]
|
|
252
249
|
}], _helperChildren: [{
|
|
253
250
|
type: ContentChildren,
|
|
254
|
-
args: [
|
|
251
|
+
args: [MonkeyHelperDirective, { descendants: true }]
|
|
255
252
|
}], _prefixChildren: [{
|
|
256
253
|
type: ContentChildren,
|
|
257
|
-
args: [
|
|
254
|
+
args: [MonkeyPrefixDirective, { descendants: true }]
|
|
258
255
|
}], _suffixChildren: [{
|
|
259
256
|
type: ContentChildren,
|
|
260
|
-
args: [
|
|
257
|
+
args: [MonkeySuffixDirective, { descendants: true }]
|
|
261
258
|
}], _infoChildren: [{
|
|
262
259
|
type: ContentChildren,
|
|
263
|
-
args: [
|
|
260
|
+
args: [MonkeyInfoDirective, { descendants: true }]
|
|
264
261
|
}], _errorChildren: [{
|
|
265
262
|
type: ContentChildren,
|
|
266
|
-
args: [
|
|
263
|
+
args: [MonkeyErrorDirective, { descendants: true }]
|
|
267
264
|
}] } });
|
|
268
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUtdjIvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUtdjIvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs2QkFJNkI7QUFDN0IsT0FBTyxFQUdMLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YscUJBQXFCLEVBQ3JCLFVBQVUsRUFDVixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFHTCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFaEUsT0FBTyxFQUFFLEtBQUssRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFDTCxXQUFXLEVBQ1gsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLFlBQVksRUFDYixNQUFNLGtCQUFrQixDQUFDO0FBRTFCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFtQjVDLE1BQU0sT0FBTyx3QkFBd0I7SUFDbkMsSUFDSSxFQUFFO1FBQ0osT0FBTyxJQUFJLENBQUMsR0FBRyxD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LGVBQWU7c0JBRHRCLGVBQWU7dUJBQUMsWUFBWSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFJNUMsZUFBZTtzQkFEdEIsZUFBZTt1QkFBQyxZQUFZLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQUk1QyxhQUFhO3NCQURwQixlQUFlO3VCQUFDLFVBQVUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBSTFDLGNBQWM7c0JBRHJCLGVBQWU7dUJBQUMsV0FBVyxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qKiAqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIENvcHlyaWdodCBNb25rZXkgRXhjaGFuZ2UuIEFsbCBSaWdodHMgUmVzZXJ2ZWRcbiAqIFRoaXMgc3R5bGUgZ3VpZGUgd2FzIGRldmVsb3BlZCBieSBNb25rZXkgRXhjaGFuZ2UgVGVhbVxuICogTUlUIExpY2VuY2VcbiAqKioqKioqKioqKioqKioqKioqKioqKioqICovXG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRDaGVja2VkLFxuICBBZnRlckNvbnRlbnRJbml0LFxuICBib29sZWFuQXR0cmlidXRlLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgREVGQVVMVF9DVVJSRU5DWV9DT0RFLFxuICBEZXN0cm95UmVmLFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgbWVyZ2UsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSWRHZW5lcmF0b3IgfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XG5pbXBvcnQge1xuICBNb25rZXlFcnJvcixcbiAgTW9ua2V5SGVscGVyLFxuICBNb25rZXlJbmZvLFxuICBNb25rZXlMYWJlbCxcbiAgTW9ua2V5UHJlZml4LFxuICBNb25rZXlTdWZmaXhcbn0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBNb25rZXlTaXplIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNb25rZXlJY29uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBNb25rZXlGb3JtRmllbGRDb250cm9sIH0gZnJvbSAnLi9mb3JtLWZpZWxkLWNvbnRyb2wnO1xuaW1wb3J0IHsgZ2V0Q3VycmVuY3lTeW1ib2wgfSBmcm9tICcuL3V0aWxzJztcblxuQENvbXBvbmVudCh7XG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHNlbGVjdG9yOiAnbW9ua2V5LWZvcm0tZmllbGQnLFxuICBleHBvcnRBczogJ21vbmtleUZvcm1GaWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2Zvcm0tZmllbGQuY29tcG9uZW50LnNjc3MnLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdtZWN4LWZvcm0tZmllbGQnLFxuICAgICdbY2xhc3MubWVjeC1kaXNhYmxlZF0nOiAnY29udHJvbC5kaXNhYmxlZCcsXG4gICAgJ1tjbGFzcy5tZWN4LWZvcm0tZmllbGQtZm9jdXNlZF0nOiAnY29udHJvbC5mb2N1c2VkJyxcbiAgICAnW2NsYXNzLm1lY3gtZm9ybS1maWVsZC1pbnZhbGlkXSc6ICdzaG93SW52YWxpZCcsXG4gICAgJ1tjbGFzcy5tZWN4LWZvcm0tZmllbGQtYm9yZGVybGVzc10nOiAnaGlkZUJvcmRlcicsXG4gICAgJ1thdHRyLmlkXSc6ICdpZCcsXG4gICAgJ1tpZF0nOiAnaWQnLFxuICAgICdbY2xhc3NdJzogJ3NpemUnXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgTW9ua2V5Rm9ybUZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2lkO1xuICB9XG5cbiAgc2V0IGlkKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9pZCA9IHZhbHVlIHx8IHRoaXMuX3VpZDtcbiAgfVxuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBoaWRlQWN0aW9uITogYm9vbGVhbjtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgZW5hYmxlQ2xlYXIhOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHNpemU6IE1vbmtleVNpemUgPSAnbWQnO1xuXG4gIEBDb250ZW50Q2hpbGQoTW9ua2V5Rm9ybUZpZWxkQ29udHJvbCkgcHJpdmF0ZSBfZm9ybUZpZWxkQ29udHJvbCE6IE1vbmtleUZvcm1GaWVsZENvbnRyb2w7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihNb25rZXlMYWJlbCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBwcml2YXRlIF9sYWJlbENoaWxkcmVuITogUXVlcnlMaXN0PE1vbmtleUxhYmVsPjtcblxuICBAQ29udGVudENoaWxkcmVuKE1vbmtleUhlbHBlciwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBwcml2YXRlIF9oZWxwZXJDaGlsZHJlbiE6IFF1ZXJ5TGlzdDxNb25rZXlIZWxwZXI+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTW9ua2V5UHJlZml4LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIHByaXZhdGUgX3ByZWZpeENoaWxkcmVuITogUXVlcnlMaXN0PE1vbmtleVByZWZpeD47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihNb25rZXlTdWZmaXgsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgcHJpdmF0ZSBfc3VmZml4Q2hpbGRyZW4hOiBRdWVyeUxpc3Q8TW9ua2V5U3VmZml4PjtcblxuICBAQ29udGVudENoaWxkcmVuKE1vbmtleUluZm8sIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgcHJpdmF0ZSBfaW5mb0NoaWxkcmVuITogUXVlcnlMaXN0PE1vbmtleUluZm8+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTW9ua2V5RXJyb3IsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgcHJpdmF0ZSBfZXJyb3JDaGlsZHJlbiE6IFF1ZXJ5TGlzdDxNb25rZXlFcnJvcj47XG5cbiAgcHVibGljIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfaWNvbnMgPSBpbmplY3QoTW9ua2V5SWNvbnNTZXJ2aWNlKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9jaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfaWRHZW5lcmF0b3IgPSBpbmplY3QoSWRHZW5lcmF0b3IpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2xhYmVsSWQgPSB0aGlzLl9pZEdlbmVyYXRvci5nZXRJZCgnbW9ua2V5LWxhYmVsLScpO1xuXG4gIHByb3RlY3RlZCBfdWlkID0gaW5qZWN0KElkR2VuZXJhdG9yKS5nZXRJZCgnbW9ua2V5LWZvcm0tZmllbGQtJyk7XG5cbiAgcHJvdGVjdGVkIF9pZCE6IHN0cmluZztcblxuICBwcml2YXRlIF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gIHByaXZhdGUgX2lzRm9jdXNlZDogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgX3ByZXZpb3VzQ29udHJvbDogTW9ua2V5Rm9ybUZpZWxkQ29udHJvbCB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgX3N0YXRlQ2hhbmdlczogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgX3ZhbHVlQ2hhbmdlczogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG4gIHJlYWRvbmx5IGN1cnJlbmN5U3ltYm9sID0gZ2V0Q3VycmVuY3lTeW1ib2woaW5qZWN0KERFRkFVTFRfQ1VSUkVOQ1lfQ09ERSkpO1xuXG4gIHJlYWRvbmx5IHBlcmNlbnRTeW1ib2wgPSAnJSc7XG5cbiAgaW1nQ2xlYXI6IFNhZmVIdG1sIHwgbnVsbCA9IHRoaXMuX2ljb25zLmNsZWFyO1xuXG4gIGltZ0NhbGVuZGFyOiBTYWZlSHRtbCB8IG51bGwgPSB0aGlzLl9pY29ucy5jYWxlbmRhcjtcblxuICBpbWdMb2FkaW5nOiBTYWZlSHRtbCB8IG51bGwgPSB0aGlzLl9pY29ucy5sb2FkaW5nO1xuXG4gIGhhc0xhYmVsID0gZmFsc2U7XG5cbiAgaGFzSGVscGVyID0gZmFsc2U7XG5cbiAgaGFzUHJlZml4ID0gZmFsc2U7XG5cbiAgaGFzU3VmZml4ID0gZmFsc2U7XG5cbiAgaGFzSW5mbyA9IGZhbHNlO1xuXG4gIGhhc0Vycm9yID0gZmFsc2U7XG5cbiAgZ2V0IGNvbnRyb2woKTogTW9ua2V5Rm9ybUZpZWxkQ29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1GaWVsZENvbnRyb2w7XG4gIH1cblxuICBnZXQgbGFiZWxJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9sYWJlbElkO1xuICB9XG5cbiAgZ2V0IGhpZGVCb3JkZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC50eXBlID09PSAnaW5wdXQtY29kZSc7XG4gIH1cblxuICBnZXQgc2hvd0hlYWRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXNMYWJlbCB8fCB0aGlzLmhhc0hlbHBlcjtcbiAgfVxuXG4gIGdldCBzaG93Rm9vdGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhc0luZm8gfHwgdGhpcy5oYXNFcnJvcjtcbiAgfVxuXG4gIGdldCBzaG93SW52YWxpZCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5zaG93TG9hZGluZykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCB0b3VjaGVkID0gdGhpcy5jb250cm9sLm5nQ29udHJvbD8udG91Y2hlZCB8fCBmYWxzZTtcbiAgICBjb25zdCBpbnZhbGlkID0gdGhpcy5jb250cm9sLm5nQ29udHJvbD8uaW52YWxpZCB8fCBmYWxzZTtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5oYXNFcnJvciAmJiAhdGhpcy5faXNGb2N1c2VkICYmIHRvdWNoZWQgJiYgaW52YWxpZCAmJiAhdGhpcy5jb250cm9sLmRpc2FibGVUb0JlRGlydHlcbiAgICApO1xuICB9XG5cbiAgZ2V0IHNob3dDbGVhcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgISF0aGlzLmNvbnRyb2wubmdDb250cm9sPy5jb250cm9sPy52YWx1ZSAmJlxuICAgICAgIXRoaXMuY29udHJvbC5kaXNhYmxlZCAmJlxuICAgICAgIXRoaXMuY29udHJvbC5sb2FkaW5nICYmXG4gICAgICAoIXRoaXMuaGlkZUFjdGlvbiB8fCB0aGlzLmVuYWJsZUNsZWFyKVxuICAgICk7XG4gIH1cblxuICBnZXQgc2hvd0NhbGVuZGFyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2wudHlwZSA9PT0gJ2RhdGUnICYmICF0aGlzLmhpZGVBY3Rpb247XG4gIH1cblxuICBnZXQgc2hvd0N1cnJlbmN5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2wuY3VycmVuY3k7XG4gIH1cblxuICBnZXQgc2hvd1BlcmNlbnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC5wZXJjZW50O1xuICB9XG5cbiAgZ2V0IHNob3dMb2FkaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2wubG9hZGluZyB8fCBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWFzc2lnblxuICAgIHRoaXMuaWQgPSB0aGlzLmlkO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVGb2N1c1N0YXRlKCkge1xuICAgIGlmICh0aGlzLmNvbnRyb2wuZm9jdXNlZCAmJiAhdGhpcy5faXNGb2N1c2VkKSB7XG4gICAgICB0aGlzLl9pc0ZvY3VzZWQgPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuY29udHJvbC5mb2N1c2VkICYmICh0aGlzLl9pc0ZvY3VzZWQgfHwgdGhpcy5faXNGb2N1c2VkID09PSBudWxsKSkge1xuICAgICAgdGhpcy5faXNGb2N1c2VkID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVGb3JtRmllbGRDb250cm9sKCkge1xuICAgIGlmICghdGhpcy5jb250cm9sKSB7XG4gICAgICB0aHJvdyBFcnJvcignbW9ua2V5LWZvcm0tZmllbGQgbXVzdCBoYXZlIGEgTW9ua2V5Rm9ybUZpZWxkQ29udHJvbCcpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tQcmVmaXhBbmRTdWZmaXgoKSB7XG4gICAgdGhpcy5oYXNQcmVmaXggPSAhIXRoaXMuX3ByZWZpeENoaWxkcmVuPy5sZW5ndGg7XG4gICAgdGhpcy5oYXNTdWZmaXggPSAhIXRoaXMuX3N1ZmZpeENoaWxkcmVuPy5sZW5ndGg7XG4gICAgY29uc3Qgc3VmZml4ID0gdGhpcy5fc3VmZml4Q2hpbGRyZW4uZ2V0KDApO1xuICAgIGlmIChzdWZmaXgpIHtcbiAgICAgIHN1ZmZpeC5hY3Rpb24gPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZVByZWZpeEFuZFN1ZmZpeCgpIHtcbiAgICB0aGlzLmNoZWNrUHJlZml4QW5kU3VmZml4KCk7XG5cbiAgICBtZXJnZSh0aGlzLl9wcmVmaXhDaGlsZHJlbi5jaGFuZ2VzLCB0aGlzLl9zdWZmaXhDaGlsZHJlbi5jaGFuZ2VzKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5jaGVja1ByZWZpeEFuZFN1ZmZpeCgpO1xuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrSW5mb0Vycm9yKCkge1xuICAgIHRoaXMuaGFzSW5mbyA9ICEhdGhpcy5faW5mb0NoaWxkcmVuPy5sZW5ndGg7XG4gICAgdGhpcy5oYXNFcnJvciA9ICEhdGhpcy5fZXJyb3JDaGlsZHJlbj8ubGVuZ3RoO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplSW5mb0Vycm9yKCkge1xuICAgIHRoaXMuY2hlY2tJbmZvRXJyb3IoKTtcblxuICAgIG1lcmdlKHRoaXMuX2luZm9DaGlsZHJlbi5jaGFuZ2VzLCB0aGlzLl9lcnJvckNoaWxkcmVuLmNoYW5nZXMpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmNoZWNrSW5mb0Vycm9yKCk7XG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUNvbXBvbmVudHMoKSB7XG4gICAgdGhpcy5oYXNMYWJlbCA9ICEhdGhpcy5fbGFiZWxDaGlsZHJlbj8ubGVuZ3RoO1xuICAgIHRoaXMuaGFzSGVscGVyID0gISF0aGlzLl9oZWxwZXJDaGlsZHJlbj8ubGVuZ3RoO1xuXG4gICAgdGhpcy5pbml0aWFsaXplUHJlZml4QW5kU3VmZml4KCk7XG4gICAgdGhpcy5pbml0aWFsaXplSW5mb0Vycm9yKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVDb250cm9sKCkge1xuICAgIGNvbnN0IHsgY29udHJvbCB9ID0gdGhpcztcblxuICAgIHRoaXMuX3N0YXRlQ2hhbmdlcz8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl9zdGF0ZUNoYW5nZXMgPSBjb250cm9sLnN0YXRlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVGb2N1c1N0YXRlKCk7XG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX3ZhbHVlQ2hhbmdlcz8udW5zdWJzY3JpYmUoKTtcblxuICAgIGlmIChjb250cm9sLm5nQ29udHJvbCAmJiBjb250cm9sLm5nQ29udHJvbC52YWx1ZUNoYW5nZXMpIHtcbiAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlcyA9IGNvbnRyb2wubmdDb250cm9sLnZhbHVlQ2hhbmdlc1xuICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9wZW5EYXRlUGlja2VyKCkge1xuICAgIGNvbnN0IGlucHV0OiBhbnkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmNvbnRyb2wuaWQpO1xuICAgIGlmIChpbnB1dC5zaG93UGlja2VyKSB7XG4gICAgICBpbnB1dC5zaG93UGlja2VyKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlucHV0LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMuaGFuZGxlRm9ybUZpZWxkQ29udHJvbCgpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUNvbXBvbmVudHMoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpIHtcbiAgICB0aGlzLmhhbmRsZUZvcm1GaWVsZENvbnRyb2woKTtcblxuICAgIGlmICh0aGlzLmNvbnRyb2wgIT09IHRoaXMuX3ByZXZpb3VzQ29udHJvbCkge1xuICAgICAgdGhpcy5pbml0aWFsaXplQ29udHJvbCgpO1xuICAgICAgdGhpcy5fcHJldmlvdXNDb250cm9sID0gdGhpcy5jb250cm9sO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX3N0YXRlQ2hhbmdlcz8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl92YWx1ZUNoYW5nZXM/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBnZXRGb290ZXJNZXNzYWdlcygpOiAnaW5mbycgfCAnZXJyb3InIHwgJycge1xuICAgIGNvbnN0IHRvdWNoZWQgPSB0aGlzLmNvbnRyb2wubmdDb250cm9sPy50b3VjaGVkO1xuICAgIGNvbnN0IGludmFsaWQgPSB0aGlzLmNvbnRyb2wubmdDb250cm9sPy5pbnZhbGlkO1xuICAgIGNvbnN0IGlzRm9jdXNlZCA9IHRoaXMuX2lzRm9jdXNlZDtcbiAgICBjb25zdCBoYXNJbmZvQ2hpbGRyZW4gPSB0aGlzLl9pbmZvQ2hpbGRyZW4gJiYgdGhpcy5faW5mb0NoaWxkcmVuLmxlbmd0aCA+IDA7XG5cbiAgICBjb25zdCBpc0NvbnRyb2xFbmFibGVkID0gIXRoaXMuY29udHJvbC5kaXNhYmxlZDtcbiAgICBjb25zdCBpc0NvbnRyb2xEaXNhYmxlVG9CZURpcnR5ID0gIXRoaXMuY29udHJvbC5kaXNhYmxlVG9CZURpcnR5O1xuICAgIGNvbnN0IGlzVG91Y2hlZCA9IHRvdWNoZWQ7XG4gICAgY29uc3QgaXNJbnZhbGlkID0gaW52YWxpZDtcbiAgICBjb25zdCBpc05vdEZvY3VzZWQgPSAhaXNGb2N1c2VkO1xuXG4gICAgaWYgKFxuICAgICAgIXRoaXMuc2hvd0xvYWRpbmcgJiZcbiAgICAgIGlzQ29udHJvbEVuYWJsZWQgJiZcbiAgICAgIGlzVG91Y2hlZCAmJlxuICAgICAgaXNJbnZhbGlkICYmXG4gICAgICBpc05vdEZvY3VzZWQgJiZcbiAgICAgIGlzQ29udHJvbERpc2FibGVUb0JlRGlydHlcbiAgICApIHtcbiAgICAgIHJldHVybiAnZXJyb3InO1xuICAgIH1cblxuICAgIGlmIChoYXNJbmZvQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiAnaW5mbyc7XG4gICAgfVxuXG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgZ2V0U3ltYm9scygpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnNob3dDdXJyZW5jeSAmJiB0aGlzLmN1cnJlbmN5U3ltYm9sKSB7XG4gICAgICByZXR1cm4gdGhpcy5jdXJyZW5jeVN5bWJvbDtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2hvd1BlcmNlbnQgJiYgdGhpcy5wZXJjZW50U3ltYm9sKSB7XG4gICAgICByZXR1cm4gdGhpcy5wZXJjZW50U3ltYm9sO1xuICAgIH1cblxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIG9uQ2xlYXIoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuY29udHJvbC5uZ0NvbnRyb2w/LmNvbnRyb2w/LnNldFZhbHVlKCcnKTtcbiAgICB0aGlzLmNvbnRyb2wubmdDb250cm9sPy5jb250cm9sPy5tYXJrQXNUb3VjaGVkKCk7XG4gIH1cblxuICBvbk9wZW5DYWxlbmRhcihldmVudDogTW91c2VFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKHRoaXMuY29udHJvbC50eXBlID09PSAnZGF0ZScpIHtcbiAgICAgIHRoaXMub3BlbkRhdGVQaWNrZXIoKTtcbiAgICB9XG4gIH1cbn1cbiIsIkBpZiAoc2hvd0hlYWRlcikge1xuICA8ZGl2IGNsYXNzPVwibWVjeC1mb3JtLWZpZWxkLWhlYWRlclwiIChjbGljayk9XCJjb250cm9sLm9uQ29udGFpbmVyQ2xpY2soJGV2ZW50KVwiPlxuICAgIDxsYWJlbCBbaWRdPVwibGFiZWxJZFwiIFthdHRyLmZvcl09XCJjb250cm9sLmlkXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJtb25rZXktbGFiZWxcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9sYWJlbD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJtb25rZXktaGVscGVyXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbn1cblxuPGRpdiBjbGFzcz1cIm1lY3gtZm9ybS1maWVsZC1ib2R5XCIgKGNsaWNrKT1cImNvbnRyb2wub25Db250YWluZXJDbGljaygkZXZlbnQpXCI+XG4gIEBpZiAoaGFzUHJlZml4KSB7XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibW9ua2V5LXByZWZpeFwiPjwvbmctY29udGVudD5cbiAgfVxuICBAaWYgKGdldFN5bWJvbHMoKTsgYXMgc3ltYm9scykge1xuICAgIDxkaXYgY2xhc3M9XCJtZWN4LWZvcm0tZmllbGQtcHJlZml4LXN5bWJvbFwiPlxuICAgICAge3sgc3ltYm9scyB9fVxuICAgIDwvZGl2PlxuICB9XG5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG4gIEBpZiAoc2hvd0NsZWFyKSB7XG4gICAgPGRpdiBbaW5uZXJIVE1MXT1cImltZ0NsZWFyXCIgY2xhc3M9XCJtZWN4LWNsZWFyXCIgKGNsaWNrKT1cIm9uQ2xlYXIoJGV2ZW50KVwiPjwvZGl2PlxuICB9XG4gIEBpZiAoc2hvd0NhbGVuZGFyKSB7XG4gICAgPGRpdiBbaW5uZXJIVE1MXT1cImltZ0NhbGVuZGFyXCIgY2xhc3M9XCJtZWN4LWNhbGVuZGFyXCIgKGNsaWNrKT1cIm9uT3BlbkNhbGVuZGFyKCRldmVudClcIj48L2Rpdj5cbiAgfVxuICBAaWYgKHNob3dMb2FkaW5nKSB7XG4gICAgPGRpdiBbaW5uZXJIVE1MXT1cImltZ0xvYWRpbmdcIiBjbGFzcz1cIm1lY3gtZm9ybS1maWVsZC1sb2FkaW5nXCI+PC9kaXY+XG4gIH1cblxuICBAaWYgKGhhc1N1ZmZpeCkge1xuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm1vbmtleS1zdWZmaXhcIj48L25nLWNvbnRlbnQ+XG4gIH1cbjwvZGl2PlxuXG5AaWYgKHNob3dGb290ZXIpIHtcbiAgPGRpdiBjbGFzcz1cIm1lY3gtZm9ybS1maWVsZC1mb290ZXJcIiAoY2xpY2spPVwiY29udHJvbC5vbkNvbnRhaW5lckNsaWNrKCRldmVudClcIj5cbiAgICBAc3dpdGNoIChnZXRGb290ZXJNZXNzYWdlcygpKSB7XG4gICAgICBAY2FzZSAoJ2Vycm9yJykge1xuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJtb25rZXktZXJyb3JcIj48L25nLWNvbnRlbnQ+XG4gICAgICB9XG4gICAgICBAY2FzZSAoJ2luZm8nKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZWN4LWZvcm0tZmllbGQtaW5mb1wiPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm1vbmtleS1pbmZvXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICB9XG4gIDwvZGl2PlxufVxuIl19
|
|
265
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUtdjIvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUtdjIvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs2QkFJNkI7QUFDN0IsT0FBTyxFQUdMLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YscUJBQXFCLEVBQ3JCLFVBQVUsRUFDVixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFHTCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLEtBQUssRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUN0QixNQUFNLGtCQUFrQixDQUFDO0FBRTFCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7O0FBbUI1QyxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLElBQ0ksRUFBRTtRQUNKLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBRUQsSUFBSSxF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QUFXLEVBQUUsSUFBSSxFQUFFO2dCQUlyRCxhQUFhO3NCQURwQixlQUFlO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFJbkQsY0FBYztzQkFEckIsZUFBZTt1QkFBQyxvQkFBb0IsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBDb3B5cmlnaHQgTW9ua2V5IEV4Y2hhbmdlLiBBbGwgUmlnaHRzIFJlc2VydmVkXG4gKiBUaGlzIHN0eWxlIGd1aWRlIHdhcyBkZXZlbG9wZWQgYnkgTW9ua2V5IEV4Y2hhbmdlIFRlYW1cbiAqIE1JVCBMaWNlbmNlXG4gKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50Q2hlY2tlZCxcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIERFRkFVTFRfQ1VSUkVOQ1lfQ09ERSxcbiAgRGVzdHJveVJlZixcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgbWVyZ2UsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSWRHZW5lcmF0b3IgfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XG5pbXBvcnQge1xuICBNb25rZXlFcnJvckRpcmVjdGl2ZSxcbiAgTW9ua2V5SGVscGVyRGlyZWN0aXZlLFxuICBNb25rZXlJbmZvRGlyZWN0aXZlLFxuICBNb25rZXlMYWJlbERpcmVjdGl2ZSxcbiAgTW9ua2V5UHJlZml4RGlyZWN0aXZlLFxuICBNb25rZXlTdWZmaXhEaXJlY3RpdmVcbn0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBNb25rZXlTaXplIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNb25rZXlGb3JtRmllbGRDb250cm9sIH0gZnJvbSAnLi9mb3JtLWZpZWxkLWNvbnRyb2wnO1xuaW1wb3J0IHsgZ2V0Q3VycmVuY3lTeW1ib2wgfSBmcm9tICcuL3V0aWxzJztcblxuQENvbXBvbmVudCh7XG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHNlbGVjdG9yOiAnbW9ua2V5LWZvcm0tZmllbGQnLFxuICBleHBvcnRBczogJ21vbmtleUZvcm1GaWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2Zvcm0tZmllbGQuY29tcG9uZW50LnNjc3MnLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdtZWN4LWZvcm0tZmllbGQnLFxuICAgICdbY2xhc3MubWVjeC1kaXNhYmxlZF0nOiAnY29udHJvbC5kaXNhYmxlZCcsXG4gICAgJ1tjbGFzcy5tZWN4LWZvcm0tZmllbGQtZm9jdXNlZF0nOiAnY29udHJvbC5mb2N1c2VkJyxcbiAgICAnW2NsYXNzLm1lY3gtZm9ybS1maWVsZC1pbnZhbGlkXSc6ICdzaG93SW52YWxpZCcsXG4gICAgJ1tjbGFzcy5tZWN4LWZvcm0tZmllbGQtYm9yZGVybGVzc10nOiAnaGlkZUJvcmRlcicsXG4gICAgJ1thdHRyLmlkXSc6ICdpZCcsXG4gICAgJ1tpZF0nOiAnaWQnLFxuICAgICdbY2xhc3NdJzogJ3NpemUnXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgTW9ua2V5Rm9ybUZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2lkO1xuICB9XG5cbiAgc2V0IGlkKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9pZCA9IHZhbHVlIHx8IHRoaXMuX3VpZDtcbiAgfVxuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBoaWRlQWN0aW9uITogYm9vbGVhbjtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgZW5hYmxlQ2xlYXIhOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHNpemU6IE1vbmtleVNpemUgPSAnbWQnO1xuXG4gIEBDb250ZW50Q2hpbGQoTW9ua2V5Rm9ybUZpZWxkQ29udHJvbCkgcHJpdmF0ZSBfZm9ybUZpZWxkQ29udHJvbCE6IE1vbmtleUZvcm1GaWVsZENvbnRyb2w7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihNb25rZXlMYWJlbERpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBwcml2YXRlIF9sYWJlbENoaWxkcmVuITogUXVlcnlMaXN0PE1vbmtleUxhYmVsRGlyZWN0aXZlPjtcblxuICBAQ29udGVudENoaWxkcmVuKE1vbmtleUhlbHBlckRpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBwcml2YXRlIF9oZWxwZXJDaGlsZHJlbiE6IFF1ZXJ5TGlzdDxNb25rZXlIZWxwZXJEaXJlY3RpdmU+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTW9ua2V5UHJlZml4RGlyZWN0aXZlLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIHByaXZhdGUgX3ByZWZpeENoaWxkcmVuITogUXVlcnlMaXN0PE1vbmtleVByZWZpeERpcmVjdGl2ZT47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihNb25rZXlTdWZmaXhEaXJlY3RpdmUsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgcHJpdmF0ZSBfc3VmZml4Q2hpbGRyZW4hOiBRdWVyeUxpc3Q8TW9ua2V5U3VmZml4RGlyZWN0aXZlPjtcblxuICBAQ29udGVudENoaWxkcmVuKE1vbmtleUluZm9EaXJlY3RpdmUsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgcHJpdmF0ZSBfaW5mb0NoaWxkcmVuITogUXVlcnlMaXN0PE1vbmtleUluZm9EaXJlY3RpdmU+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTW9ua2V5RXJyb3JEaXJlY3RpdmUsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgcHJpdmF0ZSBfZXJyb3JDaGlsZHJlbiE6IFF1ZXJ5TGlzdDxNb25rZXlFcnJvckRpcmVjdGl2ZT47XG5cbiAgcHVibGljIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfY2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2lkR2VuZXJhdG9yID0gaW5qZWN0KElkR2VuZXJhdG9yKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9sYWJlbElkID0gdGhpcy5faWRHZW5lcmF0b3IuZ2V0SWQoJ21vbmtleS1sYWJlbC0nKTtcblxuICBwcm90ZWN0ZWQgX3VpZCA9IGluamVjdChJZEdlbmVyYXRvcikuZ2V0SWQoJ21vbmtleS1mb3JtLWZpZWxkLScpO1xuXG4gIHByb3RlY3RlZCBfaWQhOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICBwcml2YXRlIF9pc0ZvY3VzZWQ6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIF9wcmV2aW91c0NvbnRyb2w6IE1vbmtleUZvcm1GaWVsZENvbnRyb2wgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIF9zdGF0ZUNoYW5nZXM6IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIF92YWx1ZUNoYW5nZXM6IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcblxuICByZWFkb25seSBjdXJyZW5jeVN5bWJvbCA9IGdldEN1cnJlbmN5U3ltYm9sKGluamVjdChERUZBVUxUX0NVUlJFTkNZX0NPREUpKTtcblxuICByZWFkb25seSBwZXJjZW50U3ltYm9sID0gJyUnO1xuXG4gIGhhc0xhYmVsID0gZmFsc2U7XG5cbiAgaGFzSGVscGVyID0gZmFsc2U7XG5cbiAgaGFzUHJlZml4ID0gZmFsc2U7XG5cbiAgaGFzU3VmZml4ID0gZmFsc2U7XG5cbiAgaGFzSW5mbyA9IGZhbHNlO1xuXG4gIGhhc0Vycm9yID0gZmFsc2U7XG5cbiAgZ2V0IGNvbnRyb2woKTogTW9ua2V5Rm9ybUZpZWxkQ29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1GaWVsZENvbnRyb2w7XG4gIH1cblxuICBnZXQgbGFiZWxJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9sYWJlbElkO1xuICB9XG5cbiAgZ2V0IGhpZGVCb3JkZXIoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgeyBjb250cm9sIH0gPSB0aGlzO1xuICAgIHJldHVybiBjb250cm9sPy50eXBlID09PSAnaW5wdXQtY29kZScgfHwgY29udHJvbD8udHlwZSA9PT0gJ3JhZGlvLWJ1dHRvbic7XG4gIH1cblxuICBnZXQgc2hvd0hlYWRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXNMYWJlbCB8fCB0aGlzLmhhc0hlbHBlcjtcbiAgfVxuXG4gIGdldCBzaG93Rm9vdGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhc0luZm8gfHwgdGhpcy5oYXNFcnJvcjtcbiAgfVxuXG4gIGdldCBzaG93SW52YWxpZCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5zaG93TG9hZGluZykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCB0b3VjaGVkID0gdGhpcy5jb250cm9sLm5nQ29udHJvbD8udG91Y2hlZCB8fCBmYWxzZTtcbiAgICBjb25zdCBpbnZhbGlkID0gdGhpcy5jb250cm9sLm5nQ29udHJvbD8uaW52YWxpZCB8fCBmYWxzZTtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5oYXNFcnJvciAmJiAhdGhpcy5faXNGb2N1c2VkICYmIHRvdWNoZWQgJiYgaW52YWxpZCAmJiAhdGhpcy5jb250cm9sLmRpc2FibGVUb0JlRGlydHlcbiAgICApO1xuICB9XG5cbiAgZ2V0IHNob3dDbGVhcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgISF0aGlzLmNvbnRyb2wubmdDb250cm9sPy5jb250cm9sPy52YWx1ZSAmJlxuICAgICAgIXRoaXMuY29udHJvbC5kaXNhYmxlZCAmJlxuICAgICAgIXRoaXMuY29udHJvbC5sb2FkaW5nICYmXG4gICAgICAoIXRoaXMuaGlkZUFjdGlvbiB8fCB0aGlzLmVuYWJsZUNsZWFyKVxuICAgICk7XG4gIH1cblxuICBnZXQgc2hvd0NhbGVuZGFyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2wudHlwZSA9PT0gJ2RhdGUnICYmICF0aGlzLmhpZGVBY3Rpb247XG4gIH1cblxuICBnZXQgc2hvd0N1cnJlbmN5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2wuY3VycmVuY3kgfHwgZmFsc2U7XG4gIH1cblxuICBnZXQgc2hvd1BlcmNlbnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC5wZXJjZW50IHx8IGZhbHNlO1xuICB9XG5cbiAgZ2V0IHNob3dMb2FkaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2wubG9hZGluZyB8fCBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWFzc2lnblxuICAgIHRoaXMuaWQgPSB0aGlzLmlkO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVGb2N1c1N0YXRlKCkge1xuICAgIGlmICh0aGlzLmNvbnRyb2wuZm9jdXNlZCAmJiAhdGhpcy5faXNGb2N1c2VkKSB7XG4gICAgICB0aGlzLl9pc0ZvY3VzZWQgPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuY29udHJvbC5mb2N1c2VkICYmICh0aGlzLl9pc0ZvY3VzZWQgfHwgdGhpcy5faXNGb2N1c2VkID09PSBudWxsKSkge1xuICAgICAgdGhpcy5faXNGb2N1c2VkID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVGb3JtRmllbGRDb250cm9sKCkge1xuICAgIGlmICghdGhpcy5jb250cm9sKSB7XG4gICAgICB0aHJvdyBFcnJvcignbW9ua2V5LWZvcm0tZmllbGQgbXVzdCBoYXZlIGEgTW9ua2V5Rm9ybUZpZWxkQ29udHJvbCcpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tQcmVmaXhBbmRTdWZmaXgoKSB7XG4gICAgdGhpcy5oYXNQcmVmaXggPSAhIXRoaXMuX3ByZWZpeENoaWxkcmVuPy5sZW5ndGg7XG4gICAgdGhpcy5oYXNTdWZmaXggPSAhIXRoaXMuX3N1ZmZpeENoaWxkcmVuPy5sZW5ndGg7XG4gICAgY29uc3Qgc3VmZml4ID0gdGhpcy5fc3VmZml4Q2hpbGRyZW4uZ2V0KDApO1xuICAgIGlmIChzdWZmaXgpIHtcbiAgICAgIHN1ZmZpeC5hY3Rpb24gPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZVByZWZpeEFuZFN1ZmZpeCgpIHtcbiAgICB0aGlzLmNoZWNrUHJlZml4QW5kU3VmZml4KCk7XG5cbiAgICBtZXJnZSh0aGlzLl9wcmVmaXhDaGlsZHJlbi5jaGFuZ2VzLCB0aGlzLl9zdWZmaXhDaGlsZHJlbi5jaGFuZ2VzKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5jaGVja1ByZWZpeEFuZFN1ZmZpeCgpO1xuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrSW5mb0Vycm9yKCkge1xuICAgIHRoaXMuaGFzSW5mbyA9ICEhdGhpcy5faW5mb0NoaWxkcmVuPy5sZW5ndGg7XG4gICAgdGhpcy5oYXNFcnJvciA9ICEhdGhpcy5fZXJyb3JDaGlsZHJlbj8ubGVuZ3RoO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplSW5mb0Vycm9yKCkge1xuICAgIHRoaXMuY2hlY2tJbmZvRXJyb3IoKTtcblxuICAgIG1lcmdlKHRoaXMuX2luZm9DaGlsZHJlbi5jaGFuZ2VzLCB0aGlzLl9lcnJvckNoaWxkcmVuLmNoYW5nZXMpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmNoZWNrSW5mb0Vycm9yKCk7XG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUNvbXBvbmVudHMoKSB7XG4gICAgdGhpcy5oYXNMYWJlbCA9ICEhdGhpcy5fbGFiZWxDaGlsZHJlbj8ubGVuZ3RoO1xuICAgIHRoaXMuaGFzSGVscGVyID0gISF0aGlzLl9oZWxwZXJDaGlsZHJlbj8ubGVuZ3RoO1xuXG4gICAgdGhpcy5pbml0aWFsaXplUHJlZml4QW5kU3VmZml4KCk7XG4gICAgdGhpcy5pbml0aWFsaXplSW5mb0Vycm9yKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVDb250cm9sKCkge1xuICAgIGNvbnN0IHsgY29udHJvbCB9ID0gdGhpcztcblxuICAgIHRoaXMuX3N0YXRlQ2hhbmdlcz8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl9zdGF0ZUNoYW5nZXMgPSBjb250cm9sLnN0YXRlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVGb2N1c1N0YXRlKCk7XG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX3ZhbHVlQ2hhbmdlcz8udW5zdWJzY3JpYmUoKTtcblxuICAgIGlmIChjb250cm9sLm5nQ29udHJvbCAmJiBjb250cm9sLm5nQ29udHJvbC52YWx1ZUNoYW5nZXMpIHtcbiAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlcyA9IGNvbnRyb2wubmdDb250cm9sLnZhbHVlQ2hhbmdlc1xuICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9wZW5EYXRlUGlja2VyKCkge1xuICAgIGNvbnN0IGlucHV0OiBhbnkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmNvbnRyb2wuaWQpO1xuICAgIGlmIChpbnB1dC5zaG93UGlja2VyKSB7XG4gICAgICBpbnB1dC5zaG93UGlja2VyKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlucHV0LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMuaGFuZGxlRm9ybUZpZWxkQ29udHJvbCgpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUNvbXBvbmVudHMoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpIHtcbiAgICB0aGlzLmhhbmRsZUZvcm1GaWVsZENvbnRyb2woKTtcblxuICAgIGlmICh0aGlzLmNvbnRyb2wgIT09IHRoaXMuX3ByZXZpb3VzQ29udHJvbCkge1xuICAgICAgdGhpcy5pbml0aWFsaXplQ29udHJvbCgpO1xuICAgICAgdGhpcy5fcHJldmlvdXNDb250cm9sID0gdGhpcy5jb250cm9sO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX3N0YXRlQ2hhbmdlcz8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl92YWx1ZUNoYW5nZXM/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBnZXRGb290ZXJNZXNzYWdlcygpOiAnaW5mbycgfCAnZXJyb3InIHwgJycge1xuICAgIGNvbnN0IHRvdWNoZWQgPSB0aGlzLmNvbnRyb2wubmdDb250cm9sPy50b3VjaGVkO1xuICAgIGNvbnN0IGludmFsaWQgPSB0aGlzLmNvbnRyb2wubmdDb250cm9sPy5pbnZhbGlkO1xuICAgIGNvbnN0IGlzRm9jdXNlZCA9IHRoaXMuX2lzRm9jdXNlZDtcbiAgICBjb25zdCBoYXNJbmZvQ2hpbGRyZW4gPSB0aGlzLl9pbmZvQ2hpbGRyZW4gJiYgdGhpcy5faW5mb0NoaWxkcmVuLmxlbmd0aCA+IDA7XG5cbiAgICBjb25zdCBpc0NvbnRyb2xFbmFibGVkID0gIXRoaXMuY29udHJvbC5kaXNhYmxlZDtcbiAgICBjb25zdCBpc0NvbnRyb2xEaXNhYmxlVG9CZURpcnR5ID0gIXRoaXMuY29udHJvbC5kaXNhYmxlVG9CZURpcnR5O1xuICAgIGNvbnN0IGlzVG91Y2hlZCA9IHRvdWNoZWQ7XG4gICAgY29uc3QgaXNJbnZhbGlkID0gaW52YWxpZDtcbiAgICBjb25zdCBpc05vdEZvY3VzZWQgPSAhaXNGb2N1c2VkO1xuXG4gICAgaWYgKFxuICAgICAgIXRoaXMuc2hvd0xvYWRpbmcgJiZcbiAgICAgIGlzQ29udHJvbEVuYWJsZWQgJiZcbiAgICAgIGlzVG91Y2hlZCAmJlxuICAgICAgaXNJbnZhbGlkICYmXG4gICAgICBpc05vdEZvY3VzZWQgJiZcbiAgICAgIGlzQ29udHJvbERpc2FibGVUb0JlRGlydHlcbiAgICApIHtcbiAgICAgIHJldHVybiAnZXJyb3InO1xuICAgIH1cblxuICAgIGlmIChoYXNJbmZvQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiAnaW5mbyc7XG4gICAgfVxuXG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgZ2V0U3ltYm9scygpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnNob3dDdXJyZW5jeSAmJiB0aGlzLmN1cnJlbmN5U3ltYm9sKSB7XG4gICAgICByZXR1cm4gdGhpcy5jdXJyZW5jeVN5bWJvbDtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2hvd1BlcmNlbnQgJiYgdGhpcy5wZXJjZW50U3ltYm9sKSB7XG4gICAgICByZXR1cm4gdGhpcy5wZXJjZW50U3ltYm9sO1xuICAgIH1cblxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIG9uQ2xlYXIoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuY29udHJvbC5uZ0NvbnRyb2w/LmNvbnRyb2w/LnNldFZhbHVlKCcnKTtcbiAgICB0aGlzLmNvbnRyb2wubmdDb250cm9sPy5jb250cm9sPy5tYXJrQXNUb3VjaGVkKCk7XG4gIH1cblxuICBvbk9wZW5DYWxlbmRhcihldmVudDogTW91c2VFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKHRoaXMuY29udHJvbC50eXBlID09PSAnZGF0ZScpIHtcbiAgICAgIHRoaXMub3BlbkRhdGVQaWNrZXIoKTtcbiAgICB9XG4gIH1cbn1cbiIsIkBpZiAoc2hvd0hlYWRlcikge1xuICA8ZGl2IGNsYXNzPVwibWVjeC1mb3JtLWZpZWxkLWhlYWRlclwiIChjbGljayk9XCJjb250cm9sLm9uQ29udGFpbmVyQ2xpY2soJGV2ZW50KVwiPlxuICAgIDxsYWJlbCBbaWRdPVwibGFiZWxJZFwiIFthdHRyLmZvcl09XCJjb250cm9sLmlkXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJtb25rZXktbGFiZWxcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9sYWJlbD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJtb25rZXktaGVscGVyXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbn1cblxuPGRpdiBjbGFzcz1cIm1lY3gtZm9ybS1maWVsZC1ib2R5XCIgKGNsaWNrKT1cImNvbnRyb2wub25Db250YWluZXJDbGljaygkZXZlbnQpXCI+XG4gIEBpZiAoaGFzUHJlZml4KSB7XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibW9ua2V5LXByZWZpeFwiPjwvbmctY29udGVudD5cbiAgfVxuICBAaWYgKGdldFN5bWJvbHMoKTsgYXMgc3ltYm9scykge1xuICAgIDxkaXYgY2xhc3M9XCJtZWN4LWZvcm0tZmllbGQtcHJlZml4LXN5bWJvbFwiPlxuICAgICAge3sgc3ltYm9scyB9fVxuICAgIDwvZGl2PlxuICB9XG5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG4gIEBpZiAoc2hvd0NsZWFyKSB7XG4gICAgPHV0aWwtaWNvbiBjbGFzcz1cIm1lY3gtY2xlYXJcIiBuYW1lPVwiY2xlYXJcIiAoY2xpY2spPVwib25DbGVhcigkZXZlbnQpXCIgLz5cbiAgfVxuICBAaWYgKHNob3dDYWxlbmRhcikge1xuICAgIDx1dGlsLWljb24gY2xhc3M9XCJtZWN4LWNhbGVuZGFyXCIgbmFtZT1cImNhbGVuZGFyXCIgKGNsaWNrKT1cIm9uT3BlbkNhbGVuZGFyKCRldmVudClcIiAvPlxuICB9XG4gIEBpZiAoc2hvd0xvYWRpbmcpIHtcbiAgICA8dXRpbC1pY29uIGNsYXNzPVwibWVjeC1mb3JtLWZpZWxkLWxvYWRpbmdcIiBuYW1lPVwibG9hZGluZ1wiIC8+XG4gIH1cblxuICBAaWYgKGhhc1N1ZmZpeCkge1xuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm1vbmtleS1zdWZmaXhcIj48L25nLWNvbnRlbnQ+XG4gIH1cbjwvZGl2PlxuXG5AaWYgKHNob3dGb290ZXIpIHtcbiAgPGRpdiBjbGFzcz1cIm1lY3gtZm9ybS1maWVsZC1mb290ZXJcIiAoY2xpY2spPVwiY29udHJvbC5vbkNvbnRhaW5lckNsaWNrKCRldmVudClcIj5cbiAgICBAc3dpdGNoIChnZXRGb290ZXJNZXNzYWdlcygpKSB7XG4gICAgICBAY2FzZSAoJ2Vycm9yJykge1xuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJtb25rZXktZXJyb3JcIj48L25nLWNvbnRlbnQ+XG4gICAgICB9XG4gICAgICBAY2FzZSAoJ2luZm8nKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZWN4LWZvcm0tZmllbGQtaW5mb1wiPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm1vbmtleS1pbmZvXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICB9XG4gIDwvZGl2PlxufVxuIl19
|
|
@@ -4,18 +4,20 @@
|
|
|
4
4
|
* MIT Licence
|
|
5
5
|
************************* */
|
|
6
6
|
import { NgModule } from '@angular/core';
|
|
7
|
+
import { UtilIconComponent } from '../../../utils';
|
|
7
8
|
import { MonkeyFormFieldComponent } from './form-field.component';
|
|
8
9
|
import * as i0 from "@angular/core";
|
|
9
10
|
export class MonkeyFormFieldModule {
|
|
10
11
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonkeyFormFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
11
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: MonkeyFormFieldModule, declarations: [MonkeyFormFieldComponent], exports: [MonkeyFormFieldComponent] }); }
|
|
12
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: MonkeyFormFieldModule, declarations: [MonkeyFormFieldComponent], imports: [UtilIconComponent], exports: [MonkeyFormFieldComponent] }); }
|
|
12
13
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonkeyFormFieldModule }); }
|
|
13
14
|
}
|
|
14
15
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonkeyFormFieldModule, decorators: [{
|
|
15
16
|
type: NgModule,
|
|
16
17
|
args: [{
|
|
18
|
+
imports: [UtilIconComponent],
|
|
17
19
|
declarations: [MonkeyFormFieldComponent],
|
|
18
20
|
exports: [MonkeyFormFieldComponent]
|
|
19
21
|
}]
|
|
20
22
|
}] });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUtdjIvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7NkJBSTZCO0FBQzdCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBT2xFLE1BQU0sT0FBTyxxQkFBcUI7K0dBQXJCLHFCQUFxQjtnSEFBckIscUJBQXFCLGlCQUhqQix3QkFBd0IsYUFEN0IsaUJBQWlCLGFBRWpCLHdCQUF3QjtnSEFFdkIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQUxqQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDO29CQUM1QixZQUFZLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztvQkFDeEMsT0FBTyxFQUFFLENBQUMsd0JBQXdCLENBQUM7aUJBQ3BDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqICoqKioqKioqKioqKioqKioqKioqKioqKlxuICogQ29weXJpZ2h0IE1vbmtleSBFeGNoYW5nZS4gQWxsIFJpZ2h0cyBSZXNlcnZlZFxuICogVGhpcyBzdHlsZSBndWlkZSB3YXMgZGV2ZWxvcGVkIGJ5IE1vbmtleSBFeGNoYW5nZSBUZWFtXG4gKiBNSVQgTGljZW5jZVxuICoqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVdGlsSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IE1vbmtleUZvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1maWVsZC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbVXRpbEljb25Db21wb25lbnRdLFxuICBkZWNsYXJhdGlvbnM6IFtNb25rZXlGb3JtRmllbGRDb21wb25lbnRdLFxuICBleHBvcnRzOiBbTW9ua2V5Rm9ybUZpZWxkQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBNb25rZXlGb3JtRmllbGRNb2R1bGUge31cbiJdfQ==
|
|
@@ -20,7 +20,7 @@ export class MonkeyIconComponent {
|
|
|
20
20
|
this._id = value || this._uid;
|
|
21
21
|
}
|
|
22
22
|
constructor() {
|
|
23
|
-
this.size = '';
|
|
23
|
+
this.size = 'lg';
|
|
24
24
|
this._icon = '';
|
|
25
25
|
this._uid = inject(IdGenerator).getId('monkey-icon-');
|
|
26
26
|
// eslint-disable-next-line no-self-assign
|
|
@@ -32,7 +32,7 @@ export class MonkeyIconComponent {
|
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonkeyIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
35
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MonkeyIconComponent, isStandalone: true, selector: "monkey-icon", inputs: { icon: "icon", size: "size", id: "id" }, host: { properties: { "class": "_icon+' '+size", "attr.id": "id", "id": "id" } }, ngImport: i0, template: '', isInline: true, styles: ["monkey-icon{display:inline-flex}monkey-icon.sm{font-size:
|
|
35
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MonkeyIconComponent, isStandalone: true, selector: "monkey-icon", inputs: { icon: "icon", size: "size", id: "id" }, host: { properties: { "class": "_icon+' '+size", "attr.id": "id", "id": "id" } }, ngImport: i0, template: '', isInline: true, styles: ["monkey-icon{display:inline-flex}monkey-icon.sm{font-size:16px;width:16px;height:16px}monkey-icon.md{font-size:18px;width:18px;height:18px}monkey-icon.lg{font-size:24px;width:24px;height:24px}monkey-icon.xl{font-size:32px;width:32px;height:32px}monkey-icon.xxl{font-size:48px;width:48px;height:48px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
36
36
|
}
|
|
37
37
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonkeyIconComponent, decorators: [{
|
|
38
38
|
type: Component,
|
|
@@ -40,7 +40,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
40
40
|
'[class]': `_icon+' '+size`,
|
|
41
41
|
'[attr.id]': 'id',
|
|
42
42
|
'[id]': 'id'
|
|
43
|
-
}, styles: ["monkey-icon{display:inline-flex}monkey-icon.sm{font-size:
|
|
43
|
+
}, styles: ["monkey-icon{display:inline-flex}monkey-icon.sm{font-size:16px;width:16px;height:16px}monkey-icon.md{font-size:18px;width:18px;height:18px}monkey-icon.lg{font-size:24px;width:24px;height:24px}monkey-icon.xl{font-size:32px;width:32px;height:32px}monkey-icon.xxl{font-size:48px;width:48px;height:48px}\n"] }]
|
|
44
44
|
}], ctorParameters: () => [], propDecorators: { icon: [{
|
|
45
45
|
type: Input
|
|
46
46
|
}], size: [{
|
|
@@ -48,4 +48,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
48
48
|
}], id: [{
|
|
49
49
|
type: Input
|
|
50
50
|
}] } });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUtdjIvc3JjL2xpYi9jb21wb25lbnRzL2ljb24vaWNvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7NkJBSTZCO0FBQzdCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQWU3QyxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLElBQWEsSUFBSSxDQUFDLEdBQVc7UUFDM0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNSLElBQUksQ0FBQyxLQUFLLEdBQUcsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUNsQyxDQUFDO0lBQ0gsQ0FBQztJQVVELElBQ0ksRUFBRTtRQUNKLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBRUQsSUFBSSxFQUFFLENBQUMsS0FBYTtRQUNsQixJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFFRDtRQWpCUyxTQUFJLEdBQTZDLElBQUksQ0FBQztRQUUvRCxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRUQsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFjekQsMENBQTBDO1FBQzFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQ3RELENBQUM7SUFDSCxDQUFDOytHQWpDVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiwyTUFUcEIsRUFBRSxxWEFERixZQUFZOzs0RkFVWCxtQkFBbUI7a0JBYi9CLFNBQVM7K0JBQ0UsYUFBYSxjQUNYLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxZQUNiLEVBQUUsaUJBRUcsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSixTQUFTLEVBQUUsZ0JBQWdCO3dCQUMzQixXQUFXLEVBQUUsSUFBSTt3QkFDakIsTUFBTSxFQUFFLElBQUk7cUJBQ2I7d0RBR1ksSUFBSTtzQkFBaEIsS0FBSztnQkFNRyxJQUFJO3NCQUFaLEtBQUs7Z0JBU0YsRUFBRTtzQkFETCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyoqICoqKioqKioqKioqKioqKioqKioqKioqKlxuICogQ29weXJpZ2h0IE1vbmtleSBFeGNoYW5nZS4gQWxsIFJpZ2h0cyBSZXNlcnZlZFxuICogVGhpcyBzdHlsZSBndWlkZSB3YXMgZGV2ZWxvcGVkIGJ5IE1vbmtleSBFeGNoYW5nZSBUZWFtXG4gKiBNSVQgTGljZW5jZVxuICoqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElkR2VuZXJhdG9yIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb25rZXktaWNvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZTogJycsXG4gIHN0eWxlVXJsOiAnLi9pY29uLmNvbXBvbmVudC5zY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDoge1xuICAgICdbY2xhc3NdJzogYF9pY29uKycgJytzaXplYCxcbiAgICAnW2F0dHIuaWRdJzogJ2lkJyxcbiAgICAnW2lkXSc6ICdpZCdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBNb25rZXlJY29uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgc2V0IGljb24odmFsOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsKSB7XG4gICAgICB0aGlzLl9pY29uID0gYG1rLWkgbWstaS0ke3ZhbH1gO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpIHNpemU6ICd4cycgfCAnc20nIHwgJ21kJyB8ICdsZycgfCAneGwnIHwgJ3h4bCcgPSAnbGcnO1xuXG4gIF9pY29uID0gJyc7XG5cbiAgcHJvdGVjdGVkIF91aWQgPSBpbmplY3QoSWRHZW5lcmF0b3IpLmdldElkKCdtb25rZXktaWNvbi0nKTtcblxuICBwcm90ZWN0ZWQgX2lkITogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9pZDtcbiAgfVxuXG4gIHNldCBpZCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5faWQgPSB2YWx1ZSB8fCB0aGlzLl91aWQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1hc3NpZ25cbiAgICB0aGlzLmlkID0gdGhpcy5pZDtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faWNvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdtb25rZXktaWNvbiBtdXN0IGhhdmUgaWNvbiBpbnB1dCcpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -33,7 +33,7 @@ export class MonkeyIconButtonComponent {
|
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonkeyIconButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MonkeyIconButtonComponent, isStandalone: true, selector: "monkey-icon-button", inputs: { type: "type", size: "size", disabled: "disabled", icon: "icon", id: "id" }, host: { attributes: { "data-testid": "monkey-icon-button" }, listeners: { "click": "onClick($event)" }, properties: { "attr.id": "id", "id": "id" } }, ngImport: i0, template: "<button class=\"mecx-icon-button\" [ngClass]=\"type + ' ' + size\" [disabled]=\"disabled\">\n <div class=\"content\">\n <monkey-icon [icon]=\"icon\" [size]=\"size\" first></monkey-icon>\n </div>\n</button>\n", styles: ["monkey-icon-button{display:inline-block;margin:0 2px}monkey-icon-button .mecx-icon-button{width:100%;display:flex;align-items:center;justify-content:center;border-radius:8px;cursor:pointer;transition:background-color .15s ease-out,color .15s ease-out}monkey-icon-button .mecx-icon-button .content{display:flex;align-items:center;justify-content:center;padding:12px;transition:transform .2s cubic-bezier(0,.5,.2,1)}monkey-icon-button .mecx-icon-button .content span{width:100%}monkey-icon-button .mecx-icon-button .content .mk-i{display:flex}monkey-icon-button .mecx-icon-button:disabled{background:var(--mecx-color-gray-100)!important;color:var(--mecx-color-gray-400)!important;cursor:not-allowed!important}monkey-icon-button .mecx-icon-button:disabled.secondary{background:unset!important;border:1px solid var(--mecx-color-gray-400)!important}monkey-icon-button .mecx-icon-button.primary{color:var(--mecx-color-theme-contrast-main);background:var(--mecx-color-theme-main)}monkey-icon-button .mecx-icon-button.primary:hover:not(:disabled){background:var(--mecx-color-theme-600)}monkey-icon-button .mecx-icon-button.secondary{border:2px solid var(--mecx-color-gray-400);background:unset}monkey-icon-button .mecx-icon-button.secondary:disabled{border-width:1px}monkey-icon-button .mecx-icon-button.secondary:hover:not(:disabled){color:var(--mecx-color-theme-main)}monkey-icon-button .mecx-icon-button.tertiary{background:unset}monkey-icon-button .mecx-icon-button.tertiary span{text-decoration:underline}monkey-icon-button .mecx-icon-button.tertiary:disabled{background:unset!important;border-width:1px}monkey-icon-button .mecx-icon-button.tertiary:hover:not(:disabled){color:var(--mecx-color-theme-main)}monkey-icon-button .mecx-icon-button.sm{width:32px;height:32px}monkey-icon-button .mecx-icon-button.sm .mk-i{font-size:
|
|
36
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MonkeyIconButtonComponent, isStandalone: true, selector: "monkey-icon-button", inputs: { type: "type", size: "size", disabled: "disabled", icon: "icon", id: "id" }, host: { attributes: { "data-testid": "monkey-icon-button" }, listeners: { "click": "onClick($event)" }, properties: { "attr.id": "id", "id": "id" } }, ngImport: i0, template: "<button class=\"mecx-icon-button\" [ngClass]=\"type + ' ' + size\" [disabled]=\"disabled\">\n <div class=\"content\">\n <monkey-icon [icon]=\"icon\" [size]=\"size\" first></monkey-icon>\n </div>\n</button>\n", styles: ["monkey-icon-button{display:inline-block;margin:0 2px}monkey-icon-button .mecx-icon-button{width:100%;display:flex;align-items:center;justify-content:center;border-radius:8px;cursor:pointer;transition:background-color .15s ease-out,color .15s ease-out}monkey-icon-button .mecx-icon-button .content{display:flex;align-items:center;justify-content:center;padding:12px;transition:transform .2s cubic-bezier(0,.5,.2,1)}monkey-icon-button .mecx-icon-button .content span{width:100%}monkey-icon-button .mecx-icon-button .content .mk-i{display:flex}monkey-icon-button .mecx-icon-button:disabled{background:var(--mecx-color-gray-100)!important;color:var(--mecx-color-gray-400)!important;cursor:not-allowed!important}monkey-icon-button .mecx-icon-button:disabled.secondary{background:unset!important;border:1px solid var(--mecx-color-gray-400)!important}monkey-icon-button .mecx-icon-button.primary{color:var(--mecx-color-theme-contrast-main);background:var(--mecx-color-theme-main)}monkey-icon-button .mecx-icon-button.primary:hover:not(:disabled){background:var(--mecx-color-theme-600)}monkey-icon-button .mecx-icon-button.secondary{border:2px solid var(--mecx-color-gray-400);background:unset}monkey-icon-button .mecx-icon-button.secondary:disabled{border-width:1px}monkey-icon-button .mecx-icon-button.secondary:hover:not(:disabled){color:var(--mecx-color-theme-main)}monkey-icon-button .mecx-icon-button.tertiary{background:unset}monkey-icon-button .mecx-icon-button.tertiary span{text-decoration:underline}monkey-icon-button .mecx-icon-button.tertiary:disabled{background:unset!important;border-width:1px}monkey-icon-button .mecx-icon-button.tertiary:hover:not(:disabled){color:var(--mecx-color-theme-main)}monkey-icon-button .mecx-icon-button.sm{width:32px;height:32px}monkey-icon-button .mecx-icon-button.sm .mk-i{font-size:16px}monkey-icon-button .mecx-icon-button.md{width:40px;height:40px}monkey-icon-button .mecx-icon-button.md .mk-i{font-size:18px}monkey-icon-button .mecx-icon-button.lg{width:48px;height:48px}monkey-icon-button .mecx-icon-button.lg .mk-i{font-size:24px}monkey-icon-button .mecx-icon-button.full-width{width:100%}monkey-icon-button .mecx-icon-button:focus{outline:2px solid var(--mecx-color-theme-main);outline-offset:1px}monkey-icon-button .mecx-icon-button:active:not(:disabled).primary{background:var(--mecx-color-theme-main);opacity:.8;outline:none}monkey-icon-button .mecx-icon-button:active:not(:disabled) .content{transform:scale(.8)}:host:has(.mecx-button:active) .mecx-button{outline:unset;outline-offset:unset}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MonkeyIconComponent, selector: "monkey-icon", inputs: ["icon", "size", "id"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
37
37
|
}
|
|
38
38
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonkeyIconButtonComponent, decorators: [{
|
|
39
39
|
type: Component,
|
|
@@ -41,7 +41,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
41
41
|
'data-testid': 'monkey-icon-button',
|
|
42
42
|
'[attr.id]': 'id',
|
|
43
43
|
'[id]': 'id'
|
|
44
|
-
}, template: "<button class=\"mecx-icon-button\" [ngClass]=\"type + ' ' + size\" [disabled]=\"disabled\">\n <div class=\"content\">\n <monkey-icon [icon]=\"icon\" [size]=\"size\" first></monkey-icon>\n </div>\n</button>\n", styles: ["monkey-icon-button{display:inline-block;margin:0 2px}monkey-icon-button .mecx-icon-button{width:100%;display:flex;align-items:center;justify-content:center;border-radius:8px;cursor:pointer;transition:background-color .15s ease-out,color .15s ease-out}monkey-icon-button .mecx-icon-button .content{display:flex;align-items:center;justify-content:center;padding:12px;transition:transform .2s cubic-bezier(0,.5,.2,1)}monkey-icon-button .mecx-icon-button .content span{width:100%}monkey-icon-button .mecx-icon-button .content .mk-i{display:flex}monkey-icon-button .mecx-icon-button:disabled{background:var(--mecx-color-gray-100)!important;color:var(--mecx-color-gray-400)!important;cursor:not-allowed!important}monkey-icon-button .mecx-icon-button:disabled.secondary{background:unset!important;border:1px solid var(--mecx-color-gray-400)!important}monkey-icon-button .mecx-icon-button.primary{color:var(--mecx-color-theme-contrast-main);background:var(--mecx-color-theme-main)}monkey-icon-button .mecx-icon-button.primary:hover:not(:disabled){background:var(--mecx-color-theme-600)}monkey-icon-button .mecx-icon-button.secondary{border:2px solid var(--mecx-color-gray-400);background:unset}monkey-icon-button .mecx-icon-button.secondary:disabled{border-width:1px}monkey-icon-button .mecx-icon-button.secondary:hover:not(:disabled){color:var(--mecx-color-theme-main)}monkey-icon-button .mecx-icon-button.tertiary{background:unset}monkey-icon-button .mecx-icon-button.tertiary span{text-decoration:underline}monkey-icon-button .mecx-icon-button.tertiary:disabled{background:unset!important;border-width:1px}monkey-icon-button .mecx-icon-button.tertiary:hover:not(:disabled){color:var(--mecx-color-theme-main)}monkey-icon-button .mecx-icon-button.sm{width:32px;height:32px}monkey-icon-button .mecx-icon-button.sm .mk-i{font-size:
|
|
44
|
+
}, template: "<button class=\"mecx-icon-button\" [ngClass]=\"type + ' ' + size\" [disabled]=\"disabled\">\n <div class=\"content\">\n <monkey-icon [icon]=\"icon\" [size]=\"size\" first></monkey-icon>\n </div>\n</button>\n", styles: ["monkey-icon-button{display:inline-block;margin:0 2px}monkey-icon-button .mecx-icon-button{width:100%;display:flex;align-items:center;justify-content:center;border-radius:8px;cursor:pointer;transition:background-color .15s ease-out,color .15s ease-out}monkey-icon-button .mecx-icon-button .content{display:flex;align-items:center;justify-content:center;padding:12px;transition:transform .2s cubic-bezier(0,.5,.2,1)}monkey-icon-button .mecx-icon-button .content span{width:100%}monkey-icon-button .mecx-icon-button .content .mk-i{display:flex}monkey-icon-button .mecx-icon-button:disabled{background:var(--mecx-color-gray-100)!important;color:var(--mecx-color-gray-400)!important;cursor:not-allowed!important}monkey-icon-button .mecx-icon-button:disabled.secondary{background:unset!important;border:1px solid var(--mecx-color-gray-400)!important}monkey-icon-button .mecx-icon-button.primary{color:var(--mecx-color-theme-contrast-main);background:var(--mecx-color-theme-main)}monkey-icon-button .mecx-icon-button.primary:hover:not(:disabled){background:var(--mecx-color-theme-600)}monkey-icon-button .mecx-icon-button.secondary{border:2px solid var(--mecx-color-gray-400);background:unset}monkey-icon-button .mecx-icon-button.secondary:disabled{border-width:1px}monkey-icon-button .mecx-icon-button.secondary:hover:not(:disabled){color:var(--mecx-color-theme-main)}monkey-icon-button .mecx-icon-button.tertiary{background:unset}monkey-icon-button .mecx-icon-button.tertiary span{text-decoration:underline}monkey-icon-button .mecx-icon-button.tertiary:disabled{background:unset!important;border-width:1px}monkey-icon-button .mecx-icon-button.tertiary:hover:not(:disabled){color:var(--mecx-color-theme-main)}monkey-icon-button .mecx-icon-button.sm{width:32px;height:32px}monkey-icon-button .mecx-icon-button.sm .mk-i{font-size:16px}monkey-icon-button .mecx-icon-button.md{width:40px;height:40px}monkey-icon-button .mecx-icon-button.md .mk-i{font-size:18px}monkey-icon-button .mecx-icon-button.lg{width:48px;height:48px}monkey-icon-button .mecx-icon-button.lg .mk-i{font-size:24px}monkey-icon-button .mecx-icon-button.full-width{width:100%}monkey-icon-button .mecx-icon-button:focus{outline:2px solid var(--mecx-color-theme-main);outline-offset:1px}monkey-icon-button .mecx-icon-button:active:not(:disabled).primary{background:var(--mecx-color-theme-main);opacity:.8;outline:none}monkey-icon-button .mecx-icon-button:active:not(:disabled) .content{transform:scale(.8)}:host:has(.mecx-button:active) .mecx-button{outline:unset;outline-offset:unset}\n"] }]
|
|
45
45
|
}], ctorParameters: () => [], propDecorators: { type: [{
|
|
46
46
|
type: Input
|
|
47
47
|
}], size: [{
|