@bravobit/bb-foundation 0.23.1 → 0.23.4
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/elements/lib/date-picker/date-picker.component.d.ts +3 -5
- package/esm2020/auth/lib/auth.interceptor.mjs +3 -3
- package/esm2020/auth/lib/auth.module.mjs +4 -4
- package/esm2020/auth/lib/auth.service.mjs +3 -3
- package/esm2020/auth/lib/directives/authenticated.directive.mjs +3 -3
- package/esm2020/auth/lib/directives/permission.directive.mjs +3 -3
- package/esm2020/auth/lib/guards/anonymous.guard.mjs +3 -3
- package/esm2020/auth/lib/guards/authenticated.guard.mjs +3 -3
- package/esm2020/auth/lib/guards/permission.guard.mjs +3 -3
- package/esm2020/auth/lib/permissions/permissions.service.mjs +3 -3
- package/esm2020/collections/lib/collections.module.mjs +4 -4
- package/esm2020/collections/lib/components/collections-pager/collections-pager.component.mjs +3 -3
- package/esm2020/collections/lib/components/collections-viewer/collections-viewer.component.mjs +3 -3
- package/esm2020/collections/lib/components/collections.directive.mjs +12 -12
- package/esm2020/controls/lib/checkbox/checkbox/checkbox.component.mjs +3 -3
- package/esm2020/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +3 -3
- package/esm2020/controls/lib/checkbox/checkbox.module.mjs +4 -4
- package/esm2020/controls/lib/control-error/control-error/control-error.component.mjs +3 -3
- package/esm2020/controls/lib/control-error/control-error-submit.directive.mjs +3 -3
- package/esm2020/controls/lib/control-error/control-error.module.mjs +4 -4
- package/esm2020/controls/lib/controls.module.mjs +4 -4
- package/esm2020/controls/lib/form-control/form-control/form-control.component.mjs +3 -3
- package/esm2020/controls/lib/form-control/form-control-addon/form-control-addon.component.mjs +3 -3
- package/esm2020/controls/lib/form-control/form-control-input.directive.mjs +3 -3
- package/esm2020/controls/lib/form-control/form-control.module.mjs +4 -4
- package/esm2020/dashboard/lib/dashboard/dashboard.component.mjs +3 -3
- package/esm2020/dashboard/lib/dashboard-header/dashboard-header.component.mjs +3 -3
- package/esm2020/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +3 -3
- package/esm2020/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +3 -3
- package/esm2020/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +3 -3
- package/esm2020/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +3 -3
- package/esm2020/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +3 -3
- package/esm2020/dashboard/lib/dashboard.module.mjs +4 -4
- package/esm2020/dialog/lib/dialog-actions/dialog-actions.component.mjs +3 -3
- package/esm2020/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +3 -3
- package/esm2020/dialog/lib/dialog-container/dialog-container.component.mjs +3 -3
- package/esm2020/dialog/lib/dialog-header/dialog-header.component.mjs +3 -3
- package/esm2020/dialog/lib/dialog-link/dialog-link.component.mjs +3 -3
- package/esm2020/dialog/lib/dialog-modal/dialog-modal.component.mjs +4 -4
- package/esm2020/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +3 -3
- package/esm2020/dialog/lib/dialog.insertion.mjs +3 -3
- package/esm2020/dialog/lib/dialog.module.mjs +4 -4
- package/esm2020/dialog/lib/dialog.service.mjs +3 -3
- package/esm2020/elements/lib/avatar/avatar.component.mjs +3 -3
- package/esm2020/elements/lib/button/button.component.mjs +6 -6
- package/esm2020/elements/lib/checkbox/checkbox.component.mjs +3 -3
- package/esm2020/elements/lib/date-picker/date-picker.component.mjs +27 -29
- package/esm2020/elements/lib/directives/addon.directive.mjs +6 -6
- package/esm2020/elements/lib/directives/form-submit.directive.mjs +3 -3
- package/esm2020/elements/lib/directives/form-submitter.directive.mjs +3 -3
- package/esm2020/elements/lib/directives/input.directive.mjs +6 -6
- package/esm2020/elements/lib/dropdown/dropdown.component.mjs +7 -7
- package/esm2020/elements/lib/elements.module.mjs +4 -4
- package/esm2020/elements/lib/file-picker/file-picker.component.mjs +3 -3
- package/esm2020/elements/lib/form-control/form-control.component.mjs +3 -3
- package/esm2020/elements/lib/form-error/form-error.component.mjs +3 -3
- package/esm2020/elements/lib/form-group/form-group.component.mjs +3 -3
- package/esm2020/elements/lib/icon/icon.component.mjs +3 -3
- package/esm2020/elements/lib/image-picker/image-picker.component.mjs +3 -3
- package/esm2020/elements/lib/pipes/file-image.pipe.mjs +3 -3
- package/esm2020/elements/lib/pipes/file-size.pipe.mjs +3 -3
- package/esm2020/elements/lib/pipes/relative-time.pipe.mjs +3 -3
- package/esm2020/elements/lib/spinner/spinner.component.mjs +3 -3
- package/esm2020/elements/lib/tag/tag.component.mjs +3 -3
- package/esm2020/http/lib/http.module.mjs +5 -5
- package/esm2020/http/lib/interceptors/base-url.interceptor.mjs +3 -3
- package/esm2020/http/lib/interceptors/error.interceptor.mjs +3 -3
- package/esm2020/lib/core/services/clipboard.service.mjs +4 -4
- package/esm2020/lib/core/services/exif.service.mjs +3 -3
- package/esm2020/lib/core/services/file-loader.service.mjs +3 -3
- package/esm2020/lib/core/services/image-converter.service.mjs +3 -3
- package/esm2020/lib/core/services/languages.service.mjs +3 -3
- package/esm2020/lib/core/services/network.service.mjs +4 -4
- package/esm2020/lib/core/services/patch.service.mjs +4 -4
- package/esm2020/localize/lib/locale.token.mjs +14 -0
- package/esm2020/localize/lib/localize.module.mjs +4 -4
- package/esm2020/localize/lib/localize.pipe.mjs +9 -11
- package/esm2020/localize/lib/localize.service.mjs +19 -10
- package/esm2020/localize/lib/views/localize-string/localize-string.component.mjs +3 -3
- package/esm2020/localize/lib/views/localize-template.directive.mjs +3 -3
- package/esm2020/localize/public_api.mjs +2 -1
- package/esm2020/masking/lib/directives/currency-mask.directive.mjs +3 -3
- package/esm2020/masking/lib/directives/date-mask.directive.mjs +3 -3
- package/esm2020/masking/lib/directives/input-mask.directive.mjs +3 -3
- package/esm2020/masking/lib/masking.module.mjs +4 -4
- package/esm2020/masking/lib/masking.service.mjs +3 -3
- package/esm2020/notifications/lib/notifications-item/notifications-item.component.mjs +3 -3
- package/esm2020/notifications/lib/notifications-list/notifications-list.component.mjs +3 -3
- package/esm2020/notifications/lib/notifications.module.mjs +4 -4
- package/esm2020/notifications/lib/notifications.service.mjs +3 -3
- package/esm2020/recaptcha/lib/recaptcha/recaptcha.component.mjs +49 -15
- package/esm2020/recaptcha/lib/recaptcha-loader.service.mjs +12 -7
- package/esm2020/recaptcha/lib/recaptcha.module.mjs +4 -4
- package/esm2020/storage/lib/storage.service.mjs +3 -3
- package/esm2020/table/lib/components/table/table.component.mjs +9 -9
- package/esm2020/table/lib/components/table-cell/table-cell.component.mjs +3 -3
- package/esm2020/table/lib/components/table-header-cell/table-header-cell.component.mjs +3 -3
- package/esm2020/table/lib/components/table-pager/table-pager.component.mjs +3 -3
- package/esm2020/table/lib/table.module.mjs +4 -4
- package/esm2020/theming/lib/theming.directive.mjs +3 -3
- package/esm2020/theming/lib/theming.module.mjs +4 -4
- package/esm2020/utils/lib/directives/autosize.directive.mjs +3 -3
- package/esm2020/utils/lib/directives/focus-trap.directive.mjs +3 -3
- package/esm2020/utils/lib/directives/focus.directive.mjs +3 -3
- package/esm2020/utils/lib/directives/template.directive.mjs +3 -3
- package/esm2020/utils/lib/utils.module.mjs +4 -4
- package/fesm2015/bravobit-bb-foundation-auth.mjs +28 -28
- package/fesm2015/bravobit-bb-foundation-collections.mjs +22 -22
- package/fesm2015/bravobit-bb-foundation-controls.mjs +37 -37
- package/fesm2015/bravobit-bb-foundation-dashboard.mjs +25 -25
- package/fesm2015/bravobit-bb-foundation-dialog.mjs +31 -31
- package/fesm2015/bravobit-bb-foundation-dialog.mjs.map +1 -1
- package/fesm2015/bravobit-bb-foundation-elements.mjs +99 -102
- package/fesm2015/bravobit-bb-foundation-elements.mjs.map +1 -1
- package/fesm2015/bravobit-bb-foundation-http.mjs +10 -10
- package/fesm2015/bravobit-bb-foundation-http.mjs.map +1 -1
- package/fesm2015/bravobit-bb-foundation-localize.mjs +57 -36
- package/fesm2015/bravobit-bb-foundation-localize.mjs.map +1 -1
- package/fesm2015/bravobit-bb-foundation-masking.mjs +16 -16
- package/fesm2015/bravobit-bb-foundation-notifications.mjs +13 -13
- package/fesm2015/bravobit-bb-foundation-recaptcha.mjs +64 -25
- package/fesm2015/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
- package/fesm2015/bravobit-bb-foundation-storage.mjs +3 -3
- package/fesm2015/bravobit-bb-foundation-table.mjs +22 -22
- package/fesm2015/bravobit-bb-foundation-theming.mjs +7 -7
- package/fesm2015/bravobit-bb-foundation-utils.mjs +16 -16
- package/fesm2015/bravobit-bb-foundation.mjs +21 -21
- package/fesm2015/bravobit-bb-foundation.mjs.map +1 -1
- package/fesm2020/bravobit-bb-foundation-auth.mjs +28 -28
- package/fesm2020/bravobit-bb-foundation-collections.mjs +22 -22
- package/fesm2020/bravobit-bb-foundation-controls.mjs +37 -37
- package/fesm2020/bravobit-bb-foundation-dashboard.mjs +25 -25
- package/fesm2020/bravobit-bb-foundation-dialog.mjs +31 -31
- package/fesm2020/bravobit-bb-foundation-dialog.mjs.map +1 -1
- package/fesm2020/bravobit-bb-foundation-elements.mjs +99 -101
- package/fesm2020/bravobit-bb-foundation-elements.mjs.map +1 -1
- package/fesm2020/bravobit-bb-foundation-http.mjs +10 -10
- package/fesm2020/bravobit-bb-foundation-http.mjs.map +1 -1
- package/fesm2020/bravobit-bb-foundation-localize.mjs +49 -33
- package/fesm2020/bravobit-bb-foundation-localize.mjs.map +1 -1
- package/fesm2020/bravobit-bb-foundation-masking.mjs +16 -16
- package/fesm2020/bravobit-bb-foundation-notifications.mjs +13 -13
- package/fesm2020/bravobit-bb-foundation-recaptcha.mjs +61 -23
- package/fesm2020/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
- package/fesm2020/bravobit-bb-foundation-storage.mjs +3 -3
- package/fesm2020/bravobit-bb-foundation-table.mjs +22 -22
- package/fesm2020/bravobit-bb-foundation-theming.mjs +7 -7
- package/fesm2020/bravobit-bb-foundation-utils.mjs +16 -16
- package/fesm2020/bravobit-bb-foundation.mjs +21 -21
- package/fesm2020/bravobit-bb-foundation.mjs.map +1 -1
- package/localize/lib/locale.token.d.ts +3 -0
- package/localize/lib/localize.module.d.ts +1 -1
- package/localize/lib/localize.pipe.d.ts +3 -3
- package/localize/lib/localize.service.d.ts +5 -3
- package/localize/public_api.d.ts +1 -0
- package/package.json +1 -1
- package/recaptcha/lib/recaptcha/recaptcha.component.d.ts +11 -3
- package/recaptcha/lib/recaptcha-loader.service.d.ts +4 -2
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import { mixinDisabled, mixinError, mixinGrouped, mixinHideErrors, mixinReadonly, mixinRequired } from '@bravobit/bb-foundation';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Inject, Input,
|
|
2
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Inject, Input, Output, ViewEncapsulation } from '@angular/core';
|
|
3
3
|
import { FormControl, FormGroup, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validators } from '@angular/forms';
|
|
4
|
-
import { BehaviorSubject, combineLatest,
|
|
4
|
+
import { BehaviorSubject, combineLatest, Subscription } from 'rxjs';
|
|
5
5
|
import { distinctUntilChanged, map, startWith, tap } from 'rxjs/operators';
|
|
6
|
+
import { LOCALIZE_ID } from '@bravobit/bb-foundation/localize';
|
|
6
7
|
import { formatDate } from '@angular/common';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@
|
|
9
|
-
import * as i2 from "@angular/
|
|
10
|
-
import * as i3 from "@
|
|
11
|
-
import * as i4 from "
|
|
12
|
-
import * as i5 from "../
|
|
13
|
-
import * as i6 from "../directives/
|
|
14
|
-
import * as i7 from "../
|
|
15
|
-
import * as i8 from "
|
|
9
|
+
import * as i1 from "@angular/common";
|
|
10
|
+
import * as i2 from "@angular/forms";
|
|
11
|
+
import * as i3 from "@bravobit/bb-foundation/utils";
|
|
12
|
+
import * as i4 from "../form-error/form-error.component";
|
|
13
|
+
import * as i5 from "../directives/form-submit.directive";
|
|
14
|
+
import * as i6 from "../directives/input.directive";
|
|
15
|
+
import * as i7 from "../form-control/form-control.component";
|
|
16
|
+
import * as i8 from "rxjs";
|
|
16
17
|
class BbDatePickerBase {
|
|
17
18
|
}
|
|
18
19
|
const BbFilePickerMixinBase = mixinRequired(mixinReadonly(mixinDisabled(mixinGrouped(mixinError(mixinHideErrors(BbDatePickerBase))))));
|
|
19
20
|
export class BbDatePicker extends BbFilePickerMixinBase {
|
|
20
|
-
constructor(
|
|
21
|
+
constructor(_localizeId) {
|
|
21
22
|
super();
|
|
22
|
-
this.
|
|
23
|
-
this._localize = _localize;
|
|
23
|
+
this._localizeId = _localizeId;
|
|
24
24
|
// Readonly data.
|
|
25
25
|
this._yearRegex = /^(10|[1-9][0-9])\d{2}$/; // Note: 1000 - 9999
|
|
26
26
|
// Inputs.
|
|
@@ -178,13 +178,13 @@ export class BbDatePicker extends BbFilePickerMixinBase {
|
|
|
178
178
|
}))));
|
|
179
179
|
}
|
|
180
180
|
getMonthData() {
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
181
|
+
return this._localizeId.pipe(map(locale => {
|
|
182
|
+
return Array(12).fill(0).map((_, month) => {
|
|
183
|
+
const date = new Date(2000, month, 1);
|
|
184
|
+
const label = formatDate(date, 'LLLL', locale);
|
|
185
|
+
return { label, value: month + 1 };
|
|
186
|
+
});
|
|
187
|
+
}));
|
|
188
188
|
}
|
|
189
189
|
composeForm() {
|
|
190
190
|
const { required, pattern, minLength, maxLength } = Validators;
|
|
@@ -250,8 +250,8 @@ export class BbDatePicker extends BbFilePickerMixinBase {
|
|
|
250
250
|
return this.years$.next(years);
|
|
251
251
|
}
|
|
252
252
|
}
|
|
253
|
-
BbDatePicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
254
|
-
BbDatePicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.
|
|
253
|
+
BbDatePicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbDatePicker, deps: [{ token: LOCALIZE_ID }], target: i0.ɵɵFactoryTarget.Component });
|
|
254
|
+
BbDatePicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: BbDatePicker, selector: "bb-date-picker", inputs: { required: "required", readonly: "readonly", disabled: "disabled", grouped: "grouped", hideErrors: "hideErrors", label: "label", hint: "hint", dayPlaceholder: "dayPlaceholder", monthPlaceholder: "monthPlaceholder", yearPlaceholder: "yearPlaceholder", years: "years", value: "value" }, outputs: { valueChange: "valueChange" }, host: { properties: { "class.required": "required", "class.readonly": "readonly", "class.disabled": "disabled", "class.grouped": "grouped", "class.error": "error" }, classAttribute: "bb-date-picker" }, providers: [
|
|
255
255
|
{
|
|
256
256
|
provide: NG_VALUE_ACCESSOR,
|
|
257
257
|
useExisting: forwardRef(() => BbDatePicker),
|
|
@@ -262,8 +262,8 @@ BbDatePicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
|
|
|
262
262
|
useExisting: BbDatePicker,
|
|
263
263
|
multi: true
|
|
264
264
|
}
|
|
265
|
-
], usesInheritance: true, ngImport: i0, template: "<!-- Label of the date picker. -->\n<label *ngIf=\"label as labelContent\"\n class=\"bb-date-picker-label\">\n <ng-template [bbTemplate]=\"labelContent\">\n {{ labelContent }}\n </ng-template>\n</label>\n\n<!-- The form containing the year/month/day fields. -->\n<form *ngIf=\"data$ | async as data\"\n [formGroup]=\"form\"\n class=\"bb-date-picker-container\"\n novalidate>\n <div class=\"bb-date-picker-item\">\n <bb-form-control hideErrors>\n <select [class.has-value]=\"!!form?.get('day')?.value\"\n bbInput\n autocomplete=\"off\"\n formControlName=\"day\">\n <option [ngValue]=\"null\">{{ dayPlaceholder }}</option>\n <option *ngFor=\"let day of data?.days; trackBy: trackByValue\"\n [ngValue]=\"day?.value\">\n {{ day?.label }}\n </option>\n </select>\n </bb-form-control>\n </div>\n <div class=\"bb-date-picker-item\">\n <bb-form-control hideErrors>\n <select [class.has-value]=\"!!form?.get('month')?.value\"\n bbInput\n autocomplete=\"off\"\n formControlName=\"month\">\n <option [ngValue]=\"null\">{{ monthPlaceholder }}</option>\n <option *ngFor=\"let month of data?.months; trackBy: trackByValue\"\n [ngValue]=\"month?.value\">\n {{ month?.label }}\n </option>\n </select>\n </bb-form-control>\n </div>\n <div class=\"bb-date-picker-item\">\n <bb-form-control hideErrors>\n <select *ngIf=\"data?.years?.length > 0; else defaultYearInputTemplate\"\n [class.has-value]=\"!!form?.get('year')?.value\"\n bbInput\n autocomplete=\"off\"\n formControlName=\"year\">\n <option [ngValue]=\"null\">{{ yearPlaceholder }}</option>\n <option *ngFor=\"let year of data?.years\"\n [value]=\"year\">\n {{ year }}\n </option>\n </select>\n\n <ng-template #defaultYearInputTemplate>\n <input [placeholder]=\"yearPlaceholder\"\n bbInput\n type=\"text\"\n inputmode=\"numeric\"\n minlength=\"4\"\n maxlength=\"4\"\n pattern=\"^[0-9]{4}$\"\n formControlName=\"year\"\n autocomplete=\"off\">\n </ng-template>\n </bb-form-control>\n </div>\n</form>\n\n<!-- The date picker error. -->\n<bb-form-error *ngIf=\"!hideErrors\"\n (errorChange)=\"onErrorChange($event)\">\n</bb-form-error>\n\n<!-- The date picker hint. -->\n<p *ngIf=\"hint as hintContent\"\n class=\"bb-date-picker-hint\">\n <ng-template [bbTemplate]=\"hintContent\">\n {{ hintContent }}\n </ng-template>\n</p>\n", styles: [".bb-date-picker{display:block}.bb-date-picker.required>.bb-date-picker-label:after{content:\"*\";color:#c23934;font-size:12px;line-height:1.5}.bb-date-picker.readonly{pointer-events:none}.bb-date-picker.readonly .bb-form-control-container{cursor:default;border:1px dotted #bdc4c9;background-color:#f9f9f9!important}.bb-date-picker.readonly .bb-form-control-container>select:disabled{opacity:1}.bb-date-picker.grouped{margin-bottom:20px}.bb-date-picker.error>.bb-date-picker-label{color:#c23934}.bb-date-picker.error .bb-form-control-container{border:1px solid #962b26;background-color:#c2393440!important;box-shadow:inset 0 3px #b7bcc233,0 6px 6px -6px #0000001a,0 0 0 3px #c2393466!important}.bb-date-picker-label{color:#000;display:block;font-size:16px;font-weight:500;margin-bottom:4px}.bb-date-picker-container{display:flex}.bb-date-picker-item{flex:1}.bb-date-picker-item>bb-form-control.focused{z-index:1;position:relative}.bb-date-picker-item>.bb-form-control>.bb-form-control-container>select>option:first-child{color:#d2d2d2}.bb-date-picker-item>.bb-form-control>.bb-form-control-container>select:not(.has-value){color:#d2d2d2}.bb-date-picker-item>.bb-form-control>.bb-form-control-container>select:not(.has-value)>option:not(:first-child){color:#000}.bb-date-picker-item:not(:first-child):not(:last-child) .bb-form-control-container{border-radius:0!important}.bb-date-picker-item:first-child .bb-form-control-container{border-right:none!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important}.bb-date-picker-item:last-child .bb-form-control-container{border-left:none!important;border-top-left-radius:0!important;border-bottom-left-radius:0!important}.bb-date-picker-hint{display:block;color:#738694;font-size:13px;margin-top:4px;pointer-events:all}\n"], dependencies: [{ kind: "directive", type:
|
|
266
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
265
|
+
], usesInheritance: true, ngImport: i0, template: "<!-- Label of the date picker. -->\n<label *ngIf=\"label as labelContent\"\n class=\"bb-date-picker-label\">\n <ng-template [bbTemplate]=\"labelContent\">\n {{ labelContent }}\n </ng-template>\n</label>\n\n<!-- The form containing the year/month/day fields. -->\n<form *ngIf=\"data$ | async as data\"\n [formGroup]=\"form\"\n class=\"bb-date-picker-container\"\n novalidate>\n <div class=\"bb-date-picker-item\">\n <bb-form-control hideErrors>\n <select [class.has-value]=\"!!form?.get('day')?.value\"\n bbInput\n autocomplete=\"off\"\n formControlName=\"day\">\n <option [ngValue]=\"null\">{{ dayPlaceholder }}</option>\n <option *ngFor=\"let day of data?.days; trackBy: trackByValue\"\n [ngValue]=\"day?.value\">\n {{ day?.label }}\n </option>\n </select>\n </bb-form-control>\n </div>\n <div class=\"bb-date-picker-item\">\n <bb-form-control hideErrors>\n <select [class.has-value]=\"!!form?.get('month')?.value\"\n bbInput\n autocomplete=\"off\"\n formControlName=\"month\">\n <option [ngValue]=\"null\">{{ monthPlaceholder }}</option>\n <option *ngFor=\"let month of data?.months; trackBy: trackByValue\"\n [ngValue]=\"month?.value\">\n {{ month?.label }}\n </option>\n </select>\n </bb-form-control>\n </div>\n <div class=\"bb-date-picker-item\">\n <bb-form-control hideErrors>\n <select *ngIf=\"data?.years?.length > 0; else defaultYearInputTemplate\"\n [class.has-value]=\"!!form?.get('year')?.value\"\n bbInput\n autocomplete=\"off\"\n formControlName=\"year\">\n <option [ngValue]=\"null\">{{ yearPlaceholder }}</option>\n <option *ngFor=\"let year of data?.years\"\n [value]=\"year\">\n {{ year }}\n </option>\n </select>\n\n <ng-template #defaultYearInputTemplate>\n <input [placeholder]=\"yearPlaceholder\"\n bbInput\n type=\"text\"\n inputmode=\"numeric\"\n minlength=\"4\"\n maxlength=\"4\"\n pattern=\"^[0-9]{4}$\"\n formControlName=\"year\"\n autocomplete=\"off\">\n </ng-template>\n </bb-form-control>\n </div>\n</form>\n\n<!-- The date picker error. -->\n<bb-form-error *ngIf=\"!hideErrors\"\n (errorChange)=\"onErrorChange($event)\">\n</bb-form-error>\n\n<!-- The date picker hint. -->\n<p *ngIf=\"hint as hintContent\"\n class=\"bb-date-picker-hint\">\n <ng-template [bbTemplate]=\"hintContent\">\n {{ hintContent }}\n </ng-template>\n</p>\n", styles: [".bb-date-picker{display:block}.bb-date-picker.required>.bb-date-picker-label:after{content:\"*\";color:#c23934;font-size:12px;line-height:1.5}.bb-date-picker.readonly{pointer-events:none}.bb-date-picker.readonly .bb-form-control-container{cursor:default;border:1px dotted #bdc4c9;background-color:#f9f9f9!important}.bb-date-picker.readonly .bb-form-control-container>select:disabled{opacity:1}.bb-date-picker.grouped{margin-bottom:20px}.bb-date-picker.error>.bb-date-picker-label{color:#c23934}.bb-date-picker.error .bb-form-control-container{border:1px solid #962b26;background-color:#c2393440!important;box-shadow:inset 0 3px #b7bcc233,0 6px 6px -6px #0000001a,0 0 0 3px #c2393466!important}.bb-date-picker-label{color:#000;display:block;font-size:16px;font-weight:500;margin-bottom:4px}.bb-date-picker-container{display:flex}.bb-date-picker-item{flex:1}.bb-date-picker-item>bb-form-control.focused{z-index:1;position:relative}.bb-date-picker-item>.bb-form-control>.bb-form-control-container>select>option:first-child{color:#d2d2d2}.bb-date-picker-item>.bb-form-control>.bb-form-control-container>select:not(.has-value){color:#d2d2d2}.bb-date-picker-item>.bb-form-control>.bb-form-control-container>select:not(.has-value)>option:not(:first-child){color:#000}.bb-date-picker-item:not(:first-child):not(:last-child) .bb-form-control-container{border-radius:0!important}.bb-date-picker-item:first-child .bb-form-control-container{border-right:none!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important}.bb-date-picker-item:last-child .bb-form-control-container{border-left:none!important;border-top-left-radius:0!important;border-bottom-left-radius:0!important}.bb-date-picker-hint{display:block;color:#738694;font-size:13px;margin-top:4px;pointer-events:all}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { 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.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.BbTemplate, selector: "[bbTemplate]", inputs: ["bbTemplate"] }, { kind: "component", type: i4.BbFormError, selector: "bb-form-error", inputs: ["control"], outputs: ["errorChange"] }, { kind: "directive", type: i5.BbFormSubmit, selector: "form", exportAs: ["bbForm"] }, { kind: "directive", type: i6.BbInput, selector: "input[bbInput], textarea[bbInput]", inputs: ["readonly"] }, { kind: "directive", type: i6.BbSelect, selector: "select[bbInput]", inputs: ["disabled", "required"] }, { kind: "component", type: i7.BbFormControl, selector: "bb-form-control", inputs: ["grouped", "hideErrors", "label", "hint"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
266
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbDatePicker, decorators: [{
|
|
267
267
|
type: Component,
|
|
268
268
|
args: [{ selector: 'bb-date-picker', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
|
|
269
269
|
{
|
|
@@ -284,11 +284,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
|
|
|
284
284
|
'[class.grouped]': 'grouped',
|
|
285
285
|
'[class.error]': 'error'
|
|
286
286
|
}, inputs: ['required', 'readonly', 'disabled', 'grouped', 'hideErrors'], preserveWhitespaces: false, template: "<!-- Label of the date picker. -->\n<label *ngIf=\"label as labelContent\"\n class=\"bb-date-picker-label\">\n <ng-template [bbTemplate]=\"labelContent\">\n {{ labelContent }}\n </ng-template>\n</label>\n\n<!-- The form containing the year/month/day fields. -->\n<form *ngIf=\"data$ | async as data\"\n [formGroup]=\"form\"\n class=\"bb-date-picker-container\"\n novalidate>\n <div class=\"bb-date-picker-item\">\n <bb-form-control hideErrors>\n <select [class.has-value]=\"!!form?.get('day')?.value\"\n bbInput\n autocomplete=\"off\"\n formControlName=\"day\">\n <option [ngValue]=\"null\">{{ dayPlaceholder }}</option>\n <option *ngFor=\"let day of data?.days; trackBy: trackByValue\"\n [ngValue]=\"day?.value\">\n {{ day?.label }}\n </option>\n </select>\n </bb-form-control>\n </div>\n <div class=\"bb-date-picker-item\">\n <bb-form-control hideErrors>\n <select [class.has-value]=\"!!form?.get('month')?.value\"\n bbInput\n autocomplete=\"off\"\n formControlName=\"month\">\n <option [ngValue]=\"null\">{{ monthPlaceholder }}</option>\n <option *ngFor=\"let month of data?.months; trackBy: trackByValue\"\n [ngValue]=\"month?.value\">\n {{ month?.label }}\n </option>\n </select>\n </bb-form-control>\n </div>\n <div class=\"bb-date-picker-item\">\n <bb-form-control hideErrors>\n <select *ngIf=\"data?.years?.length > 0; else defaultYearInputTemplate\"\n [class.has-value]=\"!!form?.get('year')?.value\"\n bbInput\n autocomplete=\"off\"\n formControlName=\"year\">\n <option [ngValue]=\"null\">{{ yearPlaceholder }}</option>\n <option *ngFor=\"let year of data?.years\"\n [value]=\"year\">\n {{ year }}\n </option>\n </select>\n\n <ng-template #defaultYearInputTemplate>\n <input [placeholder]=\"yearPlaceholder\"\n bbInput\n type=\"text\"\n inputmode=\"numeric\"\n minlength=\"4\"\n maxlength=\"4\"\n pattern=\"^[0-9]{4}$\"\n formControlName=\"year\"\n autocomplete=\"off\">\n </ng-template>\n </bb-form-control>\n </div>\n</form>\n\n<!-- The date picker error. -->\n<bb-form-error *ngIf=\"!hideErrors\"\n (errorChange)=\"onErrorChange($event)\">\n</bb-form-error>\n\n<!-- The date picker hint. -->\n<p *ngIf=\"hint as hintContent\"\n class=\"bb-date-picker-hint\">\n <ng-template [bbTemplate]=\"hintContent\">\n {{ hintContent }}\n </ng-template>\n</p>\n", styles: [".bb-date-picker{display:block}.bb-date-picker.required>.bb-date-picker-label:after{content:\"*\";color:#c23934;font-size:12px;line-height:1.5}.bb-date-picker.readonly{pointer-events:none}.bb-date-picker.readonly .bb-form-control-container{cursor:default;border:1px dotted #bdc4c9;background-color:#f9f9f9!important}.bb-date-picker.readonly .bb-form-control-container>select:disabled{opacity:1}.bb-date-picker.grouped{margin-bottom:20px}.bb-date-picker.error>.bb-date-picker-label{color:#c23934}.bb-date-picker.error .bb-form-control-container{border:1px solid #962b26;background-color:#c2393440!important;box-shadow:inset 0 3px #b7bcc233,0 6px 6px -6px #0000001a,0 0 0 3px #c2393466!important}.bb-date-picker-label{color:#000;display:block;font-size:16px;font-weight:500;margin-bottom:4px}.bb-date-picker-container{display:flex}.bb-date-picker-item{flex:1}.bb-date-picker-item>bb-form-control.focused{z-index:1;position:relative}.bb-date-picker-item>.bb-form-control>.bb-form-control-container>select>option:first-child{color:#d2d2d2}.bb-date-picker-item>.bb-form-control>.bb-form-control-container>select:not(.has-value){color:#d2d2d2}.bb-date-picker-item>.bb-form-control>.bb-form-control-container>select:not(.has-value)>option:not(:first-child){color:#000}.bb-date-picker-item:not(:first-child):not(:last-child) .bb-form-control-container{border-radius:0!important}.bb-date-picker-item:first-child .bb-form-control-container{border-right:none!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important}.bb-date-picker-item:last-child .bb-form-control-container{border-left:none!important;border-top-left-radius:0!important;border-bottom-left-radius:0!important}.bb-date-picker-hint{display:block;color:#738694;font-size:13px;margin-top:4px;pointer-events:all}\n"] }]
|
|
287
|
-
}], ctorParameters: function () { return [{ type:
|
|
287
|
+
}], ctorParameters: function () { return [{ type: i8.Observable, decorators: [{
|
|
288
288
|
type: Inject,
|
|
289
|
-
args: [
|
|
290
|
-
}] }, { type: i1.Localize, decorators: [{
|
|
291
|
-
type: Optional
|
|
289
|
+
args: [LOCALIZE_ID]
|
|
292
290
|
}] }]; }, propDecorators: { label: [{
|
|
293
291
|
type: Input
|
|
294
292
|
}], hint: [{
|
|
@@ -306,4 +304,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
|
|
|
306
304
|
}], valueChange: [{
|
|
307
305
|
type: Output
|
|
308
306
|
}] } });
|
|
309
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9lbGVtZW50cy9zcmMvbGliL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBYUgsYUFBYSxFQUNiLFVBQVUsRUFDVixZQUFZLEVBQ1osZUFBZSxFQUNmLGFBQWEsRUFDYixhQUFhLEVBQ2hCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLFNBQVMsRUFFRCxRQUFRLEVBQ2hCLE1BQU0sRUFFTixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVILFdBQVcsRUFDWCxTQUFTLEVBQ1QsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixVQUFVLEVBQ2IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBYyxFQUFFLEVBQUUsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7OztBQUUzQyxNQUFNLGdCQUFnQjtDQUNyQjtBQUVELE1BQU0scUJBQXFCLEdBT3JCLGFBQWEsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxVQUFV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QkFDSixRQUNLO3dCQUNGLE9BQU8sRUFBRSxnQkFBZ0I7d0JBQ3pCLGtCQUFrQixFQUFFLFVBQVU7d0JBQzlCLGtCQUFrQixFQUFFLFVBQVU7d0JBQzlCLGtCQUFrQixFQUFFLFVBQVU7d0JBQzlCLGlCQUFpQixFQUFFLFNBQVM7d0JBQzVCLGVBQWUsRUFBRSxPQUFPO3FCQUMzQixVQUNPLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyx1QkFDaEQsS0FBSzs7MEJBOENiLE1BQU07MkJBQUMsU0FBUzs7MEJBQ2hCLFFBQVE7NENBdkNaLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFHRixLQUFLO3NCQURSLEtBQUs7Z0JBc0JGLEtBQUs7c0JBRFIsS0FBSztnQkFNSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDYW5EaXNhYmxlLFxuICAgIENhbkRpc2FibGVDb25zdHJ1Y3RvcixcbiAgICBDYW5IaWRlRXJyb3JzLFxuICAgIENhbkhpZGVFcnJvcnNDb25zdHJ1Y3RvcixcbiAgICBIYXNFcnJvcixcbiAgICBIYXNFcnJvckNvbnN0cnVjdG9yLFxuICAgIElzR3JvdXBlZCxcbiAgICBJc0dyb3VwZWRDb25zdHJ1Y3RvcixcbiAgICBJc1JlYWRvbmx5LFxuICAgIElzUmVhZG9ubHlDb25zdHJ1Y3RvcixcbiAgICBJc1JlcXVpcmVkLFxuICAgIElzUmVxdWlyZWRDb25zdHJ1Y3RvcixcbiAgICBtaXhpbkRpc2FibGVkLFxuICAgIG1peGluRXJyb3IsXG4gICAgbWl4aW5Hcm91cGVkLFxuICAgIG1peGluSGlkZUVycm9ycyxcbiAgICBtaXhpblJlYWRvbmx5LFxuICAgIG1peGluUmVxdWlyZWRcbn0gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIExPQ0FMRV9JRCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LCBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICAgIEZvcm1Db250cm9sLFxuICAgIEZvcm1Hcm91cCxcbiAgICBOR19WQUxJREFUT1JTLFxuICAgIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIFZhbGlkYXRvcnNcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzdGFydFdpdGgsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtMb2NhbGl6ZX0gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24vbG9jYWxpemUnO1xuaW1wb3J0IHtmb3JtYXREYXRlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5jbGFzcyBCYkRhdGVQaWNrZXJCYXNlIHtcbn1cblxuY29uc3QgQmJGaWxlUGlja2VyTWl4aW5CYXNlOiBJc1JlcXVpcmVkQ29uc3RydWN0b3JcbiAgICAmIElzUmVhZG9ubHlDb25zdHJ1Y3RvclxuICAgICYgQ2FuRGlzYWJsZUNvbnN0cnVjdG9yXG4gICAgJiBJc0dyb3VwZWRDb25zdHJ1Y3RvclxuICAgICYgSGFzRXJyb3JDb25zdHJ1Y3RvclxuICAgICYgQ2FuSGlkZUVycm9yc0NvbnN0cnVjdG9yXG4gICAgJiB0eXBlb2YgQmJEYXRlUGlja2VyQmFzZVxuICAgID0gbWl4aW5SZXF1aXJlZChtaXhpblJlYWRvbmx5KG1peGluRGlzYWJsZWQobWl4aW5Hcm91cGVkKG1peGluRXJyb3IobWl4aW5IaWRlRXJyb3JzKEJiRGF0ZVBpY2tlckJhc2UpKSkpKSk7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYmItZGF0ZS1waWNrZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZGF0ZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEJiRGF0ZVBpY2tlciksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IEJiRGF0ZVBpY2tlcixcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ2JiLWRhdGUtcGlja2VyJyxcbiAgICAgICAgJ1tjbGFzcy5yZXF1aXJlZF0nOiAncmVxdWlyZWQnLFxuICAgICAgICAnW2NsYXNzLnJlYWRvbmx5XSc6ICdyZWFkb25seScsXG4gICAgICAgICdbY2xhc3MuZGlzYWJsZWRdJzogJ2Rpc2FibGVkJyxcbiAgICAgICAgJ1tjbGFzcy5ncm91cGVkXSc6ICdncm91cGVkJyxcbiAgICAgICAgJ1tjbGFzcy5lcnJvcl0nOiAnZXJyb3InXG4gICAgfSxcbiAgICBpbnB1dHM6IFsncmVxdWlyZWQnLCAncmVhZG9ubHknLCAnZGlzYWJsZWQnLCAnZ3JvdXBlZCcsICdoaWRlRXJyb3JzJ10sXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgQmJEYXRlUGlja2VyIGV4dGVuZHMgQmJGaWxlUGlja2VyTWl4aW5CYXNlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25EZXN0cm95LCBJc1JlcXVpcmVkLCBJc1JlYWRvbmx5LCBDYW5EaXNhYmxlLCBJc0dyb3VwZWQsIEhhc0Vycm9yLCBDYW5IaWRlRXJyb3JzIHtcblxuICAgIC8vIFJlYWRvbmx5IGRhdGEuXG4gICAgcmVhZG9ubHkgX3llYXJSZWdleCA9IC9eKDEwfFsxLTldWzAtOV0pXFxkezJ9JC87IC8vIE5vdGU6IDEwMDAgLSA5OTk5XG5cbiAgICAvLyBJbnB1dHMuXG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKSBoaW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgZGF5UGxhY2Vob2xkZXI6IHN0cmluZyB8IG51bGwgPSAnZGQnO1xuICAgIEBJbnB1dCgpIG1vbnRoUGxhY2Vob2xkZXI6IHN0cmluZyB8IG51bGwgPSAnbW0nO1xuICAgIEBJbnB1dCgpIHllYXJQbGFjZWhvbGRlcjogc3RyaW5nIHwgbnVsbCA9ICd5eXl5JztcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHllYXJzKHZhbHVlOiBbc3RyaW5nIHwgbnVtYmVyLCBzdHJpbmcgfCBudW1iZXJdIHwgbnVsbCkge1xuICAgICAgICB0aGlzLnBhcnNlWWVhcnModmFsdWUpO1xuICAgIH1cblxuICAgIC8vIEZvcm1zLlxuICAgIGZvcm06IEZvcm1Hcm91cDtcbiAgICB0cmFja0J5VmFsdWUgPSAoXywgaXRlbSkgPT4gaXRlbT8udmFsdWU7XG5cbiAgICAvLyBEYXRhLlxuICAgIGRhdGEkOiBPYnNlcnZhYmxlPHtcbiAgICAgICAgZGF5cz86IHsgbGFiZWw6IHN0cmluZywgdmFsdWU6IG51bWJlciB9W10sXG4gICAgICAgIG1vbnRocz86IHsgbGFiZWw6IHN0cmluZywgdmFsdWU6IG51bWJlciB9W10sXG4gICAgICAgIHllYXJzPzogbnVtYmVyW10gfCBudWxsXG4gICAgfT47XG4gICAgeWVhcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXJbXSB8IG51bGw+KG51bGwpO1xuXG4gICAgZ2V0IHZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtVG9EYXRlU3RyaW5nKHRoaXMuZm9ybT8udmFsdWUpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgICAgIHRoaXMucGFyc2VEYXRlU3RyaW5nSW5Gb3JtKHZhbHVlKTtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgbnVsbD4oKTtcblxuICAgIC8vIFN1YnNjcmlwdGlvbnMuXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgY29uc3RydWN0b3IoQEluamVjdChMT0NBTEVfSUQpIHByaXZhdGUgX2xvY2FsZUlkOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfbG9jYWxpemU/OiBMb2NhbGl6ZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmNvbXBvc2VGb3JtKCk7XG4gICAgICAgIHRoaXMuZ2V0RGF0YSgpO1xuICAgICAgICB0aGlzLmhhbmRsZUNoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5wYXJzZURhdGVTdHJpbmdJbkZvcm0odmFsdWUpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UobWV0aG9kOiAoXzogc3RyaW5nIHwgbnVsbCkgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBtZXRob2Q7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQobWV0aG9kOiAoKSA9PiB2b2lkKSB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBtZXRob2Q7XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuXG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm0/LmRpc2FibGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybT8uZW5hYmxlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblRvdWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCA9ICgpID0+IHtcbiAgICB9O1xuXG4gICAgb25DaGFuZ2VDYWxsYmFjazogKF86IHN0cmluZyB8IG51bGwpID0+IHZvaWQgPSAoKSA9PiB7XG4gICAgfTtcblxuICAgIG9uRXJyb3JDaGFuZ2UoZXJyb3I6IHsgdG9rZW46IHN0cmluZywgZGF0YT86IGFueSB9IHwgbnVsbCkge1xuICAgICAgICB0aGlzLmVycm9yID0gISFlcnJvcjtcbiAgICB9XG5cbiAgICB2YWxpZGF0ZSh7dmFsdWV9OiBGb3JtQ29udHJvbDxzdHJpbmc+KSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLnBhcnNlRGF0ZVN0cmluZyh2YWx1ZSk7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShkYXRhPy55ZWFyLCBkYXRhPy5tb250aCAtIDEsIGRhdGE/LmRheSk7XG5cbiAgICAgICAgY29uc3QgbWF4RGF5cyA9IHRoaXMuZ2V0RGF5c0luTW9udGgoZGF0YT8ubW9udGgsIGAke2RhdGE/LnllYXJ9YCk7XG5cbiAgICAgICAgY29uc3QgaXNJbnZhbGlkRGF0ZSA9IGRhdGUudG9TdHJpbmcoKSA9PT0gJ0ludmFsaWQgRGF0ZSc7XG4gICAgICAgIGNvbnN0IGV4Y2VlZGVkTWF4RGF5cyA9IGRhdGE/LmRheSA+IG1heERheXM7XG5cbiAgICAgICAgcmV0dXJuIChpc0ludmFsaWREYXRlIHx8IGV4Y2VlZGVkTWF4RGF5cykgJiYge1xuICAgICAgICAgICAgaW52YWxpZERhdGU6IHRydWVcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUNoYW5nZXMoKSB7XG4gICAgICAgIGNvbnN0IGRhdGVPck51bGwkID0gdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgbWFwKHZhbHVlID0+IHRoaXMuZm9ybVRvRGF0ZVN0cmluZyh2YWx1ZSkpLFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IGRhdGVPck51bGwkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sodGhpcy52YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKHN1YnNjcmlwdGlvbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREYXRhKCkge1xuICAgICAgICBjb25zdCB5ZWFycyQgPSB0aGlzLnllYXJzJC5hc09ic2VydmFibGUoKTtcbiAgICAgICAgY29uc3QgbW9udGhzJCA9IHRoaXMuZ2V0TW9udGhEYXRhKCk7XG4gICAgICAgIGNvbnN0IGRheXMkID0gdGhpcy5nZXREYXlEYXRhKCk7XG5cbiAgICAgICAgdGhpcy5kYXRhJCA9IGNvbWJpbmVMYXRlc3QoW3llYXJzJCwgbW9udGhzJCwgZGF5cyRdKS5waXBlKFxuICAgICAgICAgICAgbWFwKChbeWVhcnMsIG1vbnRocywgZGF5c10pID0+ICh7eWVhcnMsIG1vbnRocywgZGF5c30pKSxcbiAgICAgICAgICAgIHRhcChkYXRhID0+IHRoaXMudmVyaWZ5TGlzdERhdGEoZGF0YT8uZGF5cz8ubGVuZ3RoLCBkYXRhPy55ZWFycykpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2ZXJpZnlMaXN0RGF0YShtYXhEYXlzOiBudW1iZXIsIHllYXJzOiBudW1iZXJbXSB8IG51bGwpIHtcbiAgICAgICAgY29uc3QgZGF5Q29udHJvbCA9IHRoaXMuZm9ybS5nZXQoJ2RheScpO1xuICAgICAgICBpZiAoZGF5Q29udHJvbD8udmFsdWUgIT09IG51bGwgJiYgZGF5Q29udHJvbD8udmFsdWUgPiBtYXhEYXlzKSB7XG4gICAgICAgICAgICBkYXlDb250cm9sLnBhdGNoVmFsdWUobWF4RGF5cyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB5ZWFyQ29udHJvbCA9IHRoaXMuZm9ybS5nZXQoJ3llYXInKTtcbiAgICAgICAgaWYgKHllYXJzICE9PSBudWxsICYmIHllYXJDb250cm9sPy52YWx1ZSAhPT0gbnVsbCAmJiB0aGlzLl95ZWFyUmVnZXgudGVzdCh5ZWFyQ29udHJvbD8udmFsdWUpKSB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZFllYXIgPSBOdW1iZXIoeWVhckNvbnRyb2w/LnZhbHVlKTtcblxuICAgICAgICAgICAgY29uc3QgZmlyc3RZZWFyID0gTWF0aC5taW4oLi4ueWVhcnMpO1xuICAgICAgICAgICAgY29uc3QgbGFzdFllYXIgPSBNYXRoLm1heCguLi55ZWFycyk7XG5cbiAgICAgICAgICAgIGlmIChzZWxlY3RlZFllYXIgPCBmaXJzdFllYXIgfHwgc2VsZWN0ZWRZZWFyID4gbGFzdFllYXIpIHtcbiAgICAgICAgICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHllYXJDb250cm9sLnBhdGNoVmFsdWUobnVsbCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREYXlEYXRhKCkge1xuICAgICAgICBjb25zdCBjb3VudCQgPSB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgodGhpcy5mb3JtPy52YWx1ZSBhcyBvYmplY3QpLFxuICAgICAgICAgICAgbWFwKCh7bW9udGgsIHllYXJ9KSA9PiB0aGlzLmdldERheXNJbk1vbnRoKG1vbnRoLCB5ZWFyKSksXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIGNvdW50JC5waXBlKFxuICAgICAgICAgICAgbWFwKGNvdW50ID0+IEFycmF5KGNvdW50KS5maWxsKDApLm1hcCgoXywgaW5kZXgpID0+ICh7XG4gICAgICAgICAgICAgICAgbGFiZWw6IGAke2luZGV4ICsgMX1gLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBpbmRleCArIDFcbiAgICAgICAgICAgIH0pKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE1vbnRoRGF0YSgpIHtcbiAgICAgICAgY29uc3QgbG9jYWxlID0gdGhpcy5fbG9jYWxpemU/LmN1cnJlbnQ/LmxvY2FsZSA/PyB0aGlzLl9sb2NhbGVJZDtcbiAgICAgICAgY29uc3QgYXJyYXkgPSBBcnJheSgxMikuZmlsbCgwKS5tYXAoKF8sIG1vbnRoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoMjAwMCwgbW9udGgsIDEpO1xuICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBmb3JtYXREYXRlKGRhdGUsICdMTExMJywgbG9jYWxlKTtcbiAgICAgICAgICAgIHJldHVybiB7bGFiZWwsIHZhbHVlOiBtb250aCArIDF9O1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG9mKGFycmF5KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbXBvc2VGb3JtKCkge1xuICAgICAgICBjb25zdCB7cmVxdWlyZWQsIHBhdHRlcm4sIG1pbkxlbmd0aCwgbWF4TGVuZ3RofSA9IFZhbGlkYXRvcnM7XG4gICAgICAgIGNvbnN0IHllYXJQYXR0ZXJuID0gcGF0dGVybih0aGlzLl95ZWFyUmVnZXgpO1xuICAgICAgICBjb25zdCB5ZWFyVmFsaWRhdG9ycyA9IFtyZXF1aXJlZCwgeWVhclBhdHRlcm4sIG1pbkxlbmd0aCg0KSwgbWF4TGVuZ3RoKDQpXTtcblxuICAgICAgICB0aGlzLmZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgICAgIGRheTogbmV3IEZvcm1Db250cm9sPG51bWJlcj4obnVsbCwgcmVxdWlyZWQpLFxuICAgICAgICAgICAgbW9udGg6IG5ldyBGb3JtQ29udHJvbDxudW1iZXI+KG51bGwsIHJlcXVpcmVkKSxcbiAgICAgICAgICAgIHllYXI6IG5ldyBGb3JtQ29udHJvbDxudW1iZXI+KG51bGwsIHllYXJWYWxpZGF0b3JzKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBhcnNlRGF0ZVN0cmluZ0luRm9ybSh2YWx1ZTogc3RyaW5nIHwgbnVsbCkge1xuICAgICAgICAvLyBJZiB0aGUgZGF0ZSBzdHJpbmcgd2FzIG5vdCBhIHZhbGlkIGZvcm1hdCwgcmVzZXQgdGhlIGZvcm0uXG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkRGF0ZVN0cmluZyh2YWx1ZSkpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybT8ucmVzZXQoe3llYXI6IG51bGwsIG1vbnRoOiBudWxsLCBkYXk6IG51bGx9LCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUGFyc2UgdGhlIGRhdGUgc3RyaW5nIGFuZCBzYXZlIGluIHRoZSBmb3JtLlxuICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5wYXJzZURhdGVTdHJpbmcodmFsdWUpO1xuICAgICAgICBjb25zdCB5ZWFyID0gZGF0YT8ueWVhciAhPT0gbnVsbCAmJiBkYXRhPy55ZWFyICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8gdGhpcy5wYWRTdHJpbmcoYCR7ZGF0YT8ueWVhcn1gLCA0LCAnMCcpXG4gICAgICAgICAgICA6IG51bGw7XG4gICAgICAgIGNvbnN0IGZvcm1EYXRhID0gey4uLihkYXRhID8/IHt9KSwgeWVhcn07XG5cbiAgICAgICAgdGhpcy5mb3JtPy5wYXRjaFZhbHVlKGZvcm1EYXRhLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcGFyc2VEYXRlU3RyaW5nKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWREYXRlU3RyaW5nKHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBQYXJzZSB0aGUgZGF0ZSBzdHJpbmcuXG4gICAgICAgIGNvbnN0IFt5ZWFyLCBtb250aCwgZGF5XSA9IHZhbHVlPy5zcGxpdCgnLScpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkYXk6IGRheSA/IHBhcnNlSW50KGRheSwgMTApIDogbnVsbCxcbiAgICAgICAgICAgIG1vbnRoOiBtb250aCA/IHBhcnNlSW50KG1vbnRoLCAxMCkgOiBudWxsLFxuICAgICAgICAgICAgeWVhcjogeWVhciA/IHBhcnNlSW50KHllYXIsIDEwKSA6IG51bGxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBhcnNlWWVhcnModmFsdWVzOiBbc3RyaW5nIHwgbnVtYmVyLCBzdHJpbmcgfCBudW1iZXJdIHwgbnVsbCkge1xuICAgICAgICBpZiAoIXZhbHVlcykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMueWVhcnMkLm5leHQobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBQYXJzZSB0aGUgdmFsdWVzIHRvIHllYXJzIChpbiBudW1iZXJzKS5cbiAgICAgICAgY29uc3QgW2ZpcnN0LCBsYXN0XSA9IHZhbHVlcztcbiAgICAgICAgY29uc3QgZmlyc3RZZWFyID0gdGhpcy5wYXJzZVllYXJGb3JtYXQoZmlyc3QpO1xuICAgICAgICBjb25zdCBsYXN0WWVhciA9IHRoaXMucGFyc2VZZWFyRm9ybWF0KGxhc3QpO1xuXG4gICAgICAgIC8vIENoZWNrIGNhc2VzIGluIHdoZXJlIHdlIGNhbm5vdCBwYXJzZS5cbiAgICAgICAgaWYgKGZpcnN0WWVhciA9PT0gbnVsbCB8fCBsYXN0WWVhciA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMueWVhcnMkLm5leHQobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkaWZmZXJlbmNlID0gZmlyc3RZZWFyIC0gbGFzdFllYXI7XG4gICAgICAgIGNvbnN0IGFic29sdXRlRGlmZmVyZW5jZSA9IE1hdGguYWJzKGRpZmZlcmVuY2UpICsgMTtcblxuICAgICAgICAvLyBDcmVhdGUgYW4gYXJyYXkgd2l0aCB5ZWFycy5cbiAgICAgICAgY29uc3QgeWVhcnMgPSBBcnJheShhYnNvbHV0ZURpZmZlcmVuY2UpXG4gICAgICAgICAgICAuZmlsbCgwKVxuICAgICAgICAgICAgLm1hcCgoXywgaW5kZXgpID0+IGRpZmZlcmVuY2UgPCAwID8gKGZpcnN0WWVhciArIGluZGV4KSA6IChmaXJzdFllYXIgLSBpbmRleCkpO1xuXG4gICAgICAgIC8vIFZhbGlkYXRlIHdlIGhhdmUgb25lIG9yIG1vcmUgeWVhcnMuXG4gICAgICAgIGlmICh5ZWFycz8ubGVuZ3RoIDw9IDApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnllYXJzJC5uZXh0KG51bGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUHVzaCB0aGUgeWVhcnMuXG4gICAgICAgIHJldHVybiB0aGlzLnllYXJzJC5uZXh0KHllYXJzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZvcm1Ub0RhdGVTdHJpbmcgPSAoe3llYXIsIG1vbnRoLCBkYXl9KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmZvcm0/LmludmFsaWQpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcHJlZml4ZWRNb250aCA9IHRoaXMucGFkU3RyaW5nKGAke21vbnRofWAsIDIsICcwJyk7XG4gICAgICAgIGNvbnN0IHByZWZpeGVkRGF5ID0gdGhpcy5wYWRTdHJpbmcoYCR7ZGF5fWAsIDIsICcwJyk7XG5cbiAgICAgICAgcmV0dXJuIFt5ZWFyLCBwcmVmaXhlZE1vbnRoLCBwcmVmaXhlZERheV0uam9pbignLScpO1xuICAgIH07XG5cbiAgICBwcml2YXRlIHBhcnNlWWVhckZvcm1hdCA9ICh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKSA9PiB7XG4gICAgICAgIC8vIFRyYW5zZm9ybSB0aGUgdmFsdWUgdG8gYSBkZWZpbml0aXZlIHN0cmluZy5cbiAgICAgICAgY29uc3QgeWVhclN0cmluZyA9IGAke3ZhbHVlfWA7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRGdWxsWWVhciA9IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKTtcblxuICAgICAgICAvLyBIYW5kbGUgZGVmYXVsdCBcImN1cnJlbnRcIiBzeW50YXguXG4gICAgICAgIGlmICh5ZWFyU3RyaW5nID09PSAnY3VycmVudCcpIHtcbiAgICAgICAgICAgIHJldHVybiBjdXJyZW50RnVsbFllYXI7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBIYW5kbGUgXCJjdXJyZW50ICsge2Ftb3VudH1cIiBzeW50YXguXG4gICAgICAgIGlmICgvXmN1cnJlbnRcXHM/XFwrXFxzP1xcZCskLy50ZXN0KHllYXJTdHJpbmcpKSB7XG4gICAgICAgICAgICBjb25zdCBhbW91bnQgPSBOdW1iZXIoeWVhclN0cmluZz8uc3BsaXQoJysnKT8uWzFdPy50cmltKCkpID8/IDA7XG4gICAgICAgICAgICByZXR1cm4gY3VycmVudEZ1bGxZZWFyICsgYW1vdW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSGFuZGxlIFwiY3VycmVudCAtIHthbW91bnR9XCIgc3ludGF4LlxuICAgICAgICBpZiAoL15jdXJyZW50XFxzPy1cXHM/XFxkKyQvLnRlc3QoeWVhclN0cmluZykpIHtcbiAgICAgICAgICAgIGNvbnN0IGFtb3VudCA9IE51bWJlcih5ZWFyU3RyaW5nPy5zcGxpdCgnLScpPy5bMV0/LnRyaW0oKSkgPz8gMDtcbiAgICAgICAgICAgIHJldHVybiBjdXJyZW50RnVsbFllYXIgLSBhbW91bnQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBIYW5kbGluZyB0aGUgZGVmYXVsdCBudW1iZXIgY2FzZS5cbiAgICAgICAgaWYgKC9eWzAtOV17NH0kLy50ZXN0KHllYXJTdHJpbmcpKSB7XG4gICAgICAgICAgICByZXR1cm4gTnVtYmVyKHllYXJTdHJpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gV2UgY291bGQgbm90IHBhcnNlIGl0LlxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBnZXREYXlzSW5Nb250aCA9IChtb250aDogbnVtYmVyIHwgbnVsbCA9IG51bGwsIHllYXI6IHN0cmluZyB8IG51bGwgPSBudWxsKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmZvcm0/LmludmFsaWQgfHwgbW9udGggPT09IG51bGwgfHwgeWVhciA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIDMxO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFyc2VkWWVhciA9IHBhcnNlSW50KHllYXIsIDEwKTtcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHBhcnNlZFllYXIsIG1vbnRoLCAwKS5nZXREYXRlKCk7XG4gICAgfTtcblxuICAgIHByaXZhdGUgaXNWYWxpZERhdGVTdHJpbmcgPSAodmFsdWU6IHVua25vd24pID0+IHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgL15bMC05XXs0fS1bMC05XXsyfS1bMC05XXsyfSQvLnRlc3QodmFsdWUpO1xuICAgIH07XG5cbiAgICBwcml2YXRlIHBhZFN0cmluZyA9ICh2YWx1ZTogc3RyaW5nLCBtYXhMZW5ndGg6IG51bWJlciwgZmlsbFN0cmluZzogc3RyaW5nID0gJzAnKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvdW50ID0gbWF4TGVuZ3RoIC0gdmFsdWUubGVuZ3RoO1xuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgY291bnQ7IGluZGV4KyspIHtcbiAgICAgICAgICAgIHZhbHVlID0gYCR7ZmlsbFN0cmluZ30ke3ZhbHVlfWA7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfTtcblxufVxuIiwiPCEtLSBMYWJlbCBvZiB0aGUgZGF0ZSBwaWNrZXIuIC0tPlxuPGxhYmVsICpuZ0lmPVwibGFiZWwgYXMgbGFiZWxDb250ZW50XCJcbiAgICAgICBjbGFzcz1cImJiLWRhdGUtcGlja2VyLWxhYmVsXCI+XG4gICAgPG5nLXRlbXBsYXRlIFtiYlRlbXBsYXRlXT1cImxhYmVsQ29udGVudFwiPlxuICAgICAgICB7eyBsYWJlbENvbnRlbnQgfX1cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9sYWJlbD5cblxuPCEtLSBUaGUgZm9ybSBjb250YWluaW5nIHRoZSB5ZWFyL21vbnRoL2RheSBmaWVsZHMuIC0tPlxuPGZvcm0gKm5nSWY9XCJkYXRhJCB8IGFzeW5jIGFzIGRhdGFcIlxuICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgICAgIGNsYXNzPVwiYmItZGF0ZS1waWNrZXItY29udGFpbmVyXCJcbiAgICAgIG5vdmFsaWRhdGU+XG4gICAgPGRpdiBjbGFzcz1cImJiLWRhdGUtcGlja2VyLWl0ZW1cIj5cbiAgICAgICAgPGJiLWZvcm0tY29udHJvbCBoaWRlRXJyb3JzPlxuICAgICAgICAgICAgPHNlbGVjdCBbY2xhc3MuaGFzLXZhbHVlXT1cIiEhZm9ybT8uZ2V0KCdkYXknKT8udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICBiYklucHV0XG4gICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRheVwiPlxuICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwibnVsbFwiPnt7IGRheVBsYWNlaG9sZGVyIH19PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgZGF5IG9mIGRhdGE/LmRheXM7IHRyYWNrQnk6IHRyYWNrQnlWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdWYWx1ZV09XCJkYXk/LnZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGRheT8ubGFiZWwgfX1cbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICA8L2JiLWZvcm0tY29udHJvbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYmItZGF0ZS1waWNrZXItaXRlbVwiPlxuICAgICAgICA8YmItZm9ybS1jb250cm9sIGhpZGVFcnJvcnM+XG4gICAgICAgICAgICA8c2VsZWN0IFtjbGFzcy5oYXMtdmFsdWVdPVwiISFmb3JtPy5nZXQoJ21vbnRoJyk/LnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgYmJJbnB1dFxuICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJtb250aFwiPlxuICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwibnVsbFwiPnt7IG1vbnRoUGxhY2Vob2xkZXIgfX08L29wdGlvbj5cbiAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBtb250aCBvZiBkYXRhPy5tb250aHM7IHRyYWNrQnk6IHRyYWNrQnlWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdWYWx1ZV09XCJtb250aD8udmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgbW9udGg/LmxhYmVsIH19XG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgPC9iYi1mb3JtLWNvbnRyb2w+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImJiLWRhdGUtcGlja2VyLWl0ZW1cIj5cbiAgICAgICAgPGJiLWZvcm0tY29udHJvbCBoaWRlRXJyb3JzPlxuICAgICAgICAgICAgPHNlbGVjdCAqbmdJZj1cImRhdGE/LnllYXJzPy5sZW5ndGggPiAwOyBlbHNlIGRlZmF1bHRZZWFySW5wdXRUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5oYXMtdmFsdWVdPVwiISFmb3JtPy5nZXQoJ3llYXInKT8udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICBiYklucHV0XG4gICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInllYXJcIj5cbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIm51bGxcIj57eyB5ZWFyUGxhY2Vob2xkZXIgfX08L29wdGlvbj5cbiAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCB5ZWFyIG9mIGRhdGE/LnllYXJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ5ZWFyXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IHllYXIgfX1cbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgIDwvc2VsZWN0PlxuXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRZZWFySW5wdXRUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8aW5wdXQgW3BsYWNlaG9sZGVyXT1cInllYXJQbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgIGJiSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICBpbnB1dG1vZGU9XCJudW1lcmljXCJcbiAgICAgICAgICAgICAgICAgICAgICAgbWlubGVuZ3RoPVwiNFwiXG4gICAgICAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjRcIlxuICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuPVwiXlswLTldezR9JFwiXG4gICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInllYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvYmItZm9ybS1jb250cm9sPlxuICAgIDwvZGl2PlxuPC9mb3JtPlxuXG48IS0tIFRoZSBkYXRlIHBpY2tlciBlcnJvci4gLS0+XG48YmItZm9ybS1lcnJvciAqbmdJZj1cIiFoaWRlRXJyb3JzXCJcbiAgICAgICAgICAgICAgIChlcnJvckNoYW5nZSk9XCJvbkVycm9yQ2hhbmdlKCRldmVudClcIj5cbjwvYmItZm9ybS1lcnJvcj5cblxuPCEtLSBUaGUgZGF0ZSBwaWNrZXIgaGludC4gLS0+XG48cCAqbmdJZj1cImhpbnQgYXMgaGludENvbnRlbnRcIlxuICAgY2xhc3M9XCJiYi1kYXRlLXBpY2tlci1oaW50XCI+XG4gICAgPG5nLXRlbXBsYXRlIFtiYlRlbXBsYXRlXT1cImhpbnRDb250ZW50XCI+XG4gICAgICAgIHt7IGhpbnRDb250ZW50IH19XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvcD5cbiJdfQ==
|
|
307
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9lbGVtZW50cy9zcmMvbGliL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBYUgsYUFBYSxFQUNiLFVBQVUsRUFDVixZQUFZLEVBQ1osZUFBZSxFQUNmLGFBQWEsRUFDYixhQUFhLEVBQ2hCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFFTixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVILFdBQVcsRUFDWCxTQUFTLEVBQ1QsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixVQUFVLEVBQ2IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBYyxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDOUUsT0FBTyxFQUFDLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzdELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7OztBQUUzQyxNQUFNLGdCQUFnQjtDQUNyQjtBQUVELE1BQU0scUJBQXFCLEdBT3JCLGFBQWEsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFlB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d0JBQzlCLGtCQUFrQixFQUFFLFVBQVU7d0JBQzlCLGtCQUFrQixFQUFFLFVBQVU7d0JBQzlCLGlCQUFpQixFQUFFLFNBQVM7d0JBQzVCLGVBQWUsRUFBRSxPQUFPO3FCQUMzQixVQUNPLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyx1QkFDaEQsS0FBSzs7MEJBOENiLE1BQU07MkJBQUMsV0FBVzs0Q0F0Q3RCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFHRixLQUFLO3NCQURSLEtBQUs7Z0JBc0JGLEtBQUs7c0JBRFIsS0FBSztnQkFNSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDYW5EaXNhYmxlLFxuICAgIENhbkRpc2FibGVDb25zdHJ1Y3RvcixcbiAgICBDYW5IaWRlRXJyb3JzLFxuICAgIENhbkhpZGVFcnJvcnNDb25zdHJ1Y3RvcixcbiAgICBIYXNFcnJvcixcbiAgICBIYXNFcnJvckNvbnN0cnVjdG9yLFxuICAgIElzR3JvdXBlZCxcbiAgICBJc0dyb3VwZWRDb25zdHJ1Y3RvcixcbiAgICBJc1JlYWRvbmx5LFxuICAgIElzUmVhZG9ubHlDb25zdHJ1Y3RvcixcbiAgICBJc1JlcXVpcmVkLFxuICAgIElzUmVxdWlyZWRDb25zdHJ1Y3RvcixcbiAgICBtaXhpbkRpc2FibGVkLFxuICAgIG1peGluRXJyb3IsXG4gICAgbWl4aW5Hcm91cGVkLFxuICAgIG1peGluSGlkZUVycm9ycyxcbiAgICBtaXhpblJlYWRvbmx5LFxuICAgIG1peGluUmVxdWlyZWRcbn0gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgICBGb3JtQ29udHJvbCxcbiAgICBGb3JtR3JvdXAsXG4gICAgTkdfVkFMSURBVE9SUyxcbiAgICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICBWYWxpZGF0b3JzXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzdGFydFdpdGgsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtMT0NBTElaRV9JRH0gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24vbG9jYWxpemUnO1xuaW1wb3J0IHtmb3JtYXREYXRlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5jbGFzcyBCYkRhdGVQaWNrZXJCYXNlIHtcbn1cblxuY29uc3QgQmJGaWxlUGlja2VyTWl4aW5CYXNlOiBJc1JlcXVpcmVkQ29uc3RydWN0b3JcbiAgICAmIElzUmVhZG9ubHlDb25zdHJ1Y3RvclxuICAgICYgQ2FuRGlzYWJsZUNvbnN0cnVjdG9yXG4gICAgJiBJc0dyb3VwZWRDb25zdHJ1Y3RvclxuICAgICYgSGFzRXJyb3JDb25zdHJ1Y3RvclxuICAgICYgQ2FuSGlkZUVycm9yc0NvbnN0cnVjdG9yXG4gICAgJiB0eXBlb2YgQmJEYXRlUGlja2VyQmFzZVxuICAgID0gbWl4aW5SZXF1aXJlZChtaXhpblJlYWRvbmx5KG1peGluRGlzYWJsZWQobWl4aW5Hcm91cGVkKG1peGluRXJyb3IobWl4aW5IaWRlRXJyb3JzKEJiRGF0ZVBpY2tlckJhc2UpKSkpKSk7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYmItZGF0ZS1waWNrZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZGF0ZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEJiRGF0ZVBpY2tlciksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IEJiRGF0ZVBpY2tlcixcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ2JiLWRhdGUtcGlja2VyJyxcbiAgICAgICAgJ1tjbGFzcy5yZXF1aXJlZF0nOiAncmVxdWlyZWQnLFxuICAgICAgICAnW2NsYXNzLnJlYWRvbmx5XSc6ICdyZWFkb25seScsXG4gICAgICAgICdbY2xhc3MuZGlzYWJsZWRdJzogJ2Rpc2FibGVkJyxcbiAgICAgICAgJ1tjbGFzcy5ncm91cGVkXSc6ICdncm91cGVkJyxcbiAgICAgICAgJ1tjbGFzcy5lcnJvcl0nOiAnZXJyb3InXG4gICAgfSxcbiAgICBpbnB1dHM6IFsncmVxdWlyZWQnLCAncmVhZG9ubHknLCAnZGlzYWJsZWQnLCAnZ3JvdXBlZCcsICdoaWRlRXJyb3JzJ10sXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgQmJEYXRlUGlja2VyIGV4dGVuZHMgQmJGaWxlUGlja2VyTWl4aW5CYXNlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25EZXN0cm95LCBJc1JlcXVpcmVkLCBJc1JlYWRvbmx5LCBDYW5EaXNhYmxlLCBJc0dyb3VwZWQsIEhhc0Vycm9yLCBDYW5IaWRlRXJyb3JzIHtcblxuICAgIC8vIFJlYWRvbmx5IGRhdGEuXG4gICAgcmVhZG9ubHkgX3llYXJSZWdleCA9IC9eKDEwfFsxLTldWzAtOV0pXFxkezJ9JC87IC8vIE5vdGU6IDEwMDAgLSA5OTk5XG5cbiAgICAvLyBJbnB1dHMuXG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKSBoaW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgZGF5UGxhY2Vob2xkZXI6IHN0cmluZyB8IG51bGwgPSAnZGQnO1xuICAgIEBJbnB1dCgpIG1vbnRoUGxhY2Vob2xkZXI6IHN0cmluZyB8IG51bGwgPSAnbW0nO1xuICAgIEBJbnB1dCgpIHllYXJQbGFjZWhvbGRlcjogc3RyaW5nIHwgbnVsbCA9ICd5eXl5JztcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHllYXJzKHZhbHVlOiBbc3RyaW5nIHwgbnVtYmVyLCBzdHJpbmcgfCBudW1iZXJdIHwgbnVsbCkge1xuICAgICAgICB0aGlzLnBhcnNlWWVhcnModmFsdWUpO1xuICAgIH1cblxuICAgIC8vIEZvcm1zLlxuICAgIGZvcm06IEZvcm1Hcm91cDtcbiAgICB0cmFja0J5VmFsdWUgPSAoXywgaXRlbSkgPT4gaXRlbT8udmFsdWU7XG5cbiAgICAvLyBEYXRhLlxuICAgIGRhdGEkOiBPYnNlcnZhYmxlPHtcbiAgICAgICAgZGF5cz86IHsgbGFiZWw6IHN0cmluZywgdmFsdWU6IG51bWJlciB9W10sXG4gICAgICAgIG1vbnRocz86IHsgbGFiZWw6IHN0cmluZywgdmFsdWU6IG51bWJlciB9W10sXG4gICAgICAgIHllYXJzPzogbnVtYmVyW10gfCBudWxsXG4gICAgfT47XG4gICAgeWVhcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXJbXSB8IG51bGw+KG51bGwpO1xuXG4gICAgZ2V0IHZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtVG9EYXRlU3RyaW5nKHRoaXMuZm9ybT8udmFsdWUpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgICAgIHRoaXMucGFyc2VEYXRlU3RyaW5nSW5Gb3JtKHZhbHVlKTtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgbnVsbD4oKTtcblxuICAgIC8vIFN1YnNjcmlwdGlvbnMuXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgY29uc3RydWN0b3IoQEluamVjdChMT0NBTElaRV9JRCkgcHJpdmF0ZSBfbG9jYWxpemVJZDogT2JzZXJ2YWJsZTxzdHJpbmc+KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuY29tcG9zZUZvcm0oKTtcbiAgICAgICAgdGhpcy5nZXREYXRhKCk7XG4gICAgICAgIHRoaXMuaGFuZGxlQ2hhbmdlcygpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCkge1xuICAgICAgICB0aGlzLnBhcnNlRGF0ZVN0cmluZ0luRm9ybSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShtZXRob2Q6IChfOiBzdHJpbmcgfCBudWxsKSA9PiB2b2lkKSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IG1ldGhvZDtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChtZXRob2Q6ICgpID0+IHZvaWQpIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IG1ldGhvZDtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG5cbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybT8uZGlzYWJsZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5mb3JtPy5lbmFibGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gKCkgPT4ge1xuICAgIH07XG5cbiAgICBvbkNoYW5nZUNhbGxiYWNrOiAoXzogc3RyaW5nIHwgbnVsbCkgPT4gdm9pZCA9ICgpID0+IHtcbiAgICB9O1xuXG4gICAgb25FcnJvckNoYW5nZShlcnJvcjogeyB0b2tlbjogc3RyaW5nLCBkYXRhPzogYW55IH0gfCBudWxsKSB7XG4gICAgICAgIHRoaXMuZXJyb3IgPSAhIWVycm9yO1xuICAgIH1cblxuICAgIHZhbGlkYXRlKHt2YWx1ZX06IEZvcm1Db250cm9sPHN0cmluZz4pIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMucGFyc2VEYXRlU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGRhdGE/LnllYXIsIGRhdGE/Lm1vbnRoIC0gMSwgZGF0YT8uZGF5KTtcblxuICAgICAgICBjb25zdCBtYXhEYXlzID0gdGhpcy5nZXREYXlzSW5Nb250aChkYXRhPy5tb250aCwgYCR7ZGF0YT8ueWVhcn1gKTtcblxuICAgICAgICBjb25zdCBpc0ludmFsaWREYXRlID0gZGF0ZS50b1N0cmluZygpID09PSAnSW52YWxpZCBEYXRlJztcbiAgICAgICAgY29uc3QgZXhjZWVkZWRNYXhEYXlzID0gZGF0YT8uZGF5ID4gbWF4RGF5cztcblxuICAgICAgICByZXR1cm4gKGlzSW52YWxpZERhdGUgfHwgZXhjZWVkZWRNYXhEYXlzKSAmJiB7XG4gICAgICAgICAgICBpbnZhbGlkRGF0ZTogdHJ1ZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlQ2hhbmdlcygpIHtcbiAgICAgICAgY29uc3QgZGF0ZU9yTnVsbCQgPSB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICBtYXAodmFsdWUgPT4gdGhpcy5mb3JtVG9EYXRlU3RyaW5nKHZhbHVlKSksXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gZGF0ZU9yTnVsbCQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh0aGlzLnZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoc3Vic2NyaXB0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERhdGEoKSB7XG4gICAgICAgIGNvbnN0IHllYXJzJCA9IHRoaXMueWVhcnMkLmFzT2JzZXJ2YWJsZSgpO1xuICAgICAgICBjb25zdCBtb250aHMkID0gdGhpcy5nZXRNb250aERhdGEoKTtcbiAgICAgICAgY29uc3QgZGF5cyQgPSB0aGlzLmdldERheURhdGEoKTtcblxuICAgICAgICB0aGlzLmRhdGEkID0gY29tYmluZUxhdGVzdChbeWVhcnMkLCBtb250aHMkLCBkYXlzJF0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKFt5ZWFycywgbW9udGhzLCBkYXlzXSkgPT4gKHt5ZWFycywgbW9udGhzLCBkYXlzfSkpLFxuICAgICAgICAgICAgdGFwKGRhdGEgPT4gdGhpcy52ZXJpZnlMaXN0RGF0YShkYXRhPy5kYXlzPy5sZW5ndGgsIGRhdGE/LnllYXJzKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZlcmlmeUxpc3REYXRhKG1heERheXM6IG51bWJlciwgeWVhcnM6IG51bWJlcltdIHwgbnVsbCkge1xuICAgICAgICBjb25zdCBkYXlDb250cm9sID0gdGhpcy5mb3JtLmdldCgnZGF5Jyk7XG4gICAgICAgIGlmIChkYXlDb250cm9sPy52YWx1ZSAhPT0gbnVsbCAmJiBkYXlDb250cm9sPy52YWx1ZSA+IG1heERheXMpIHtcbiAgICAgICAgICAgIGRheUNvbnRyb2wucGF0Y2hWYWx1ZShtYXhEYXlzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHllYXJDb250cm9sID0gdGhpcy5mb3JtLmdldCgneWVhcicpO1xuICAgICAgICBpZiAoeWVhcnMgIT09IG51bGwgJiYgeWVhckNvbnRyb2w/LnZhbHVlICE9PSBudWxsICYmIHRoaXMuX3llYXJSZWdleC50ZXN0KHllYXJDb250cm9sPy52YWx1ZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkWWVhciA9IE51bWJlcih5ZWFyQ29udHJvbD8udmFsdWUpO1xuXG4gICAgICAgICAgICBjb25zdCBmaXJzdFllYXIgPSBNYXRoLm1pbiguLi55ZWFycyk7XG4gICAgICAgICAgICBjb25zdCBsYXN0WWVhciA9IE1hdGgubWF4KC4uLnllYXJzKTtcblxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkWWVhciA8IGZpcnN0WWVhciB8fCBzZWxlY3RlZFllYXIgPiBsYXN0WWVhcikge1xuICAgICAgICAgICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4geWVhckNvbnRyb2wucGF0Y2hWYWx1ZShudWxsKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERheURhdGEoKSB7XG4gICAgICAgIGNvbnN0IGNvdW50JCA9IHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgIHN0YXJ0V2l0aCh0aGlzLmZvcm0/LnZhbHVlIGFzIG9iamVjdCksXG4gICAgICAgICAgICBtYXAoKHttb250aCwgeWVhcn0pID0+IHRoaXMuZ2V0RGF5c0luTW9udGgobW9udGgsIHllYXIpKSxcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gY291bnQkLnBpcGUoXG4gICAgICAgICAgICBtYXAoY291bnQgPT4gQXJyYXkoY291bnQpLmZpbGwoMCkubWFwKChfLCBpbmRleCkgPT4gKHtcbiAgICAgICAgICAgICAgICBsYWJlbDogYCR7aW5kZXggKyAxfWAsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGluZGV4ICsgMVxuICAgICAgICAgICAgfSkpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TW9udGhEYXRhKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxpemVJZC5waXBlKFxuICAgICAgICAgICAgbWFwKGxvY2FsZSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEFycmF5KDEyKS5maWxsKDApLm1hcCgoXywgbW9udGgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKDIwMDAsIG1vbnRoLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBmb3JtYXREYXRlKGRhdGUsICdMTExMJywgbG9jYWxlKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtsYWJlbCwgdmFsdWU6IG1vbnRoICsgMX07XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29tcG9zZUZvcm0oKSB7XG4gICAgICAgIGNvbnN0IHtyZXF1aXJlZCwgcGF0dGVybiwgbWluTGVuZ3RoLCBtYXhMZW5ndGh9ID0gVmFsaWRhdG9ycztcbiAgICAgICAgY29uc3QgeWVhclBhdHRlcm4gPSBwYXR0ZXJuKHRoaXMuX3llYXJSZWdleCk7XG4gICAgICAgIGNvbnN0IHllYXJWYWxpZGF0b3JzID0gW3JlcXVpcmVkLCB5ZWFyUGF0dGVybiwgbWluTGVuZ3RoKDQpLCBtYXhMZW5ndGgoNCldO1xuXG4gICAgICAgIHRoaXMuZm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICAgICAgZGF5OiBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyPihudWxsLCByZXF1aXJlZCksXG4gICAgICAgICAgICBtb250aDogbmV3IEZvcm1Db250cm9sPG51bWJlcj4obnVsbCwgcmVxdWlyZWQpLFxuICAgICAgICAgICAgeWVhcjogbmV3IEZvcm1Db250cm9sPG51bWJlcj4obnVsbCwgeWVhclZhbGlkYXRvcnMpXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcGFyc2VEYXRlU3RyaW5nSW5Gb3JtKHZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgICAgIC8vIElmIHRoZSBkYXRlIHN0cmluZyB3YXMgbm90IGEgdmFsaWQgZm9ybWF0LCByZXNldCB0aGUgZm9ybS5cbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWREYXRlU3RyaW5nKHZhbHVlKSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtPy5yZXNldCh7eWVhcjogbnVsbCwgbW9udGg6IG51bGwsIGRheTogbnVsbH0sIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBQYXJzZSB0aGUgZGF0ZSBzdHJpbmcgYW5kIHNhdmUgaW4gdGhlIGZvcm0uXG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLnBhcnNlRGF0ZVN0cmluZyh2YWx1ZSk7XG4gICAgICAgIGNvbnN0IHllYXIgPSBkYXRhPy55ZWFyICE9PSBudWxsICYmIGRhdGE/LnllYXIgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgPyB0aGlzLnBhZFN0cmluZyhgJHtkYXRhPy55ZWFyfWAsIDQsICcwJylcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgY29uc3QgZm9ybURhdGEgPSB7Li4uKGRhdGEgPz8ge30pLCB5ZWFyfTtcblxuICAgICAgICB0aGlzLmZvcm0/LnBhdGNoVmFsdWUoZm9ybURhdGEsIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwYXJzZURhdGVTdHJpbmcodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZERhdGVTdHJpbmcodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFBhcnNlIHRoZSBkYXRlIHN0cmluZy5cbiAgICAgICAgY29uc3QgW3llYXIsIG1vbnRoLCBkYXldID0gdmFsdWU/LnNwbGl0KCctJyk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRheTogZGF5ID8gcGFyc2VJbnQoZGF5LCAxMCkgOiBudWxsLFxuICAgICAgICAgICAgbW9udGg6IG1vbnRoID8gcGFyc2VJbnQobW9udGgsIDEwKSA6IG51bGwsXG4gICAgICAgICAgICB5ZWFyOiB5ZWFyID8gcGFyc2VJbnQoeWVhciwgMTApIDogbnVsbFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgcGFyc2VZZWFycyh2YWx1ZXM6IFtzdHJpbmcgfCBudW1iZXIsIHN0cmluZyB8IG51bWJlcl0gfCBudWxsKSB7XG4gICAgICAgIGlmICghdmFsdWVzKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy55ZWFycyQubmV4dChudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFBhcnNlIHRoZSB2YWx1ZXMgdG8geWVhcnMgKGluIG51bWJlcnMpLlxuICAgICAgICBjb25zdCBbZmlyc3QsIGxhc3RdID0gdmFsdWVzO1xuICAgICAgICBjb25zdCBmaXJzdFllYXIgPSB0aGlzLnBhcnNlWWVhckZvcm1hdChmaXJzdCk7XG4gICAgICAgIGNvbnN0IGxhc3RZZWFyID0gdGhpcy5wYXJzZVllYXJGb3JtYXQobGFzdCk7XG5cbiAgICAgICAgLy8gQ2hlY2sgY2FzZXMgaW4gd2hlcmUgd2UgY2Fubm90IHBhcnNlLlxuICAgICAgICBpZiAoZmlyc3RZZWFyID09PSBudWxsIHx8IGxhc3RZZWFyID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy55ZWFycyQubmV4dChudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRpZmZlcmVuY2UgPSBmaXJzdFllYXIgLSBsYXN0WWVhcjtcbiAgICAgICAgY29uc3QgYWJzb2x1dGVEaWZmZXJlbmNlID0gTWF0aC5hYnMoZGlmZmVyZW5jZSkgKyAxO1xuXG4gICAgICAgIC8vIENyZWF0ZSBhbiBhcnJheSB3aXRoIHllYXJzLlxuICAgICAgICBjb25zdCB5ZWFycyA9IEFycmF5KGFic29sdXRlRGlmZmVyZW5jZSlcbiAgICAgICAgICAgIC5maWxsKDApXG4gICAgICAgICAgICAubWFwKChfLCBpbmRleCkgPT4gZGlmZmVyZW5jZSA8IDAgPyAoZmlyc3RZZWFyICsgaW5kZXgpIDogKGZpcnN0WWVhciAtIGluZGV4KSk7XG5cbiAgICAgICAgLy8gVmFsaWRhdGUgd2UgaGF2ZSBvbmUgb3IgbW9yZSB5ZWFycy5cbiAgICAgICAgaWYgKHllYXJzPy5sZW5ndGggPD0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMueWVhcnMkLm5leHQobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBQdXNoIHRoZSB5ZWFycy5cbiAgICAgICAgcmV0dXJuIHRoaXMueWVhcnMkLm5leHQoeWVhcnMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9ybVRvRGF0ZVN0cmluZyA9ICh7eWVhciwgbW9udGgsIGRheX0pID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybT8uaW52YWxpZCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwcmVmaXhlZE1vbnRoID0gdGhpcy5wYWRTdHJpbmcoYCR7bW9udGh9YCwgMiwgJzAnKTtcbiAgICAgICAgY29uc3QgcHJlZml4ZWREYXkgPSB0aGlzLnBhZFN0cmluZyhgJHtkYXl9YCwgMiwgJzAnKTtcblxuICAgICAgICByZXR1cm4gW3llYXIsIHByZWZpeGVkTW9udGgsIHByZWZpeGVkRGF5XS5qb2luKCctJyk7XG4gICAgfTtcblxuICAgIHByaXZhdGUgcGFyc2VZZWFyRm9ybWF0ID0gKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpID0+IHtcbiAgICAgICAgLy8gVHJhbnNmb3JtIHRoZSB2YWx1ZSB0byBhIGRlZmluaXRpdmUgc3RyaW5nLlxuICAgICAgICBjb25zdCB5ZWFyU3RyaW5nID0gYCR7dmFsdWV9YDtcbiAgICAgICAgY29uc3QgY3VycmVudEZ1bGxZZWFyID0gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpO1xuXG4gICAgICAgIC8vIEhhbmRsZSBkZWZhdWx0IFwiY3VycmVudFwiIHN5bnRheC5cbiAgICAgICAgaWYgKHllYXJTdHJpbmcgPT09ICdjdXJyZW50Jykge1xuICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRGdWxsWWVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEhhbmRsZSBcImN1cnJlbnQgKyB7YW1vdW50fVwiIHN5bnRheC5cbiAgICAgICAgaWYgKC9eY3VycmVudFxccz9cXCtcXHM/XFxkKyQvLnRlc3QoeWVhclN0cmluZykpIHtcbiAgICAgICAgICAgIGNvbnN0IGFtb3VudCA9IE51bWJlcih5ZWFyU3RyaW5nPy5zcGxpdCgnKycpPy5bMV0/LnRyaW0oKSkgPz8gMDtcbiAgICAgICAgICAgIHJldHVybiBjdXJyZW50RnVsbFllYXIgKyBhbW91bnQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBIYW5kbGUgXCJjdXJyZW50IC0ge2Ftb3VudH1cIiBzeW50YXguXG4gICAgICAgIGlmICgvXmN1cnJlbnRcXHM/LVxccz9cXGQrJC8udGVzdCh5ZWFyU3RyaW5nKSkge1xuICAgICAgICAgICAgY29uc3QgYW1vdW50ID0gTnVtYmVyKHllYXJTdHJpbmc/LnNwbGl0KCctJyk/LlsxXT8udHJpbSgpKSA/PyAwO1xuICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRGdWxsWWVhciAtIGFtb3VudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEhhbmRsaW5nIHRoZSBkZWZhdWx0IG51bWJlciBjYXNlLlxuICAgICAgICBpZiAoL15bMC05XXs0fSQvLnRlc3QoeWVhclN0cmluZykpIHtcbiAgICAgICAgICAgIHJldHVybiBOdW1iZXIoeWVhclN0cmluZyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBXZSBjb3VsZCBub3QgcGFyc2UgaXQuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG5cbiAgICBwcml2YXRlIGdldERheXNJbk1vbnRoID0gKG1vbnRoOiBudW1iZXIgfCBudWxsID0gbnVsbCwgeWVhcjogc3RyaW5nIHwgbnVsbCA9IG51bGwpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybT8uaW52YWxpZCB8fCBtb250aCA9PT0gbnVsbCB8fCB5ZWFyID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gMzE7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYXJzZWRZZWFyID0gcGFyc2VJbnQoeWVhciwgMTApO1xuICAgICAgICByZXR1cm4gbmV3IERhdGUocGFyc2VkWWVhciwgbW9udGgsIDApLmdldERhdGUoKTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBpc1ZhbGlkRGF0ZVN0cmluZyA9ICh2YWx1ZTogdW5rbm93bikgPT4ge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiAvXlswLTldezR9LVswLTldezJ9LVswLTldezJ9JC8udGVzdCh2YWx1ZSk7XG4gICAgfTtcblxuICAgIHByaXZhdGUgcGFkU3RyaW5nID0gKHZhbHVlOiBzdHJpbmcsIG1heExlbmd0aDogbnVtYmVyLCBmaWxsU3RyaW5nOiBzdHJpbmcgPSAnMCcpID0+IHtcbiAgICAgICAgY29uc3QgY291bnQgPSBtYXhMZW5ndGggLSB2YWx1ZS5sZW5ndGg7XG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBjb3VudDsgaW5kZXgrKykge1xuICAgICAgICAgICAgdmFsdWUgPSBgJHtmaWxsU3RyaW5nfSR7dmFsdWV9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuXG59XG4iLCI8IS0tIExhYmVsIG9mIHRoZSBkYXRlIHBpY2tlci4gLS0+XG48bGFiZWwgKm5nSWY9XCJsYWJlbCBhcyBsYWJlbENvbnRlbnRcIlxuICAgICAgIGNsYXNzPVwiYmItZGF0ZS1waWNrZXItbGFiZWxcIj5cbiAgICA8bmctdGVtcGxhdGUgW2JiVGVtcGxhdGVdPVwibGFiZWxDb250ZW50XCI+XG4gICAgICAgIHt7IGxhYmVsQ29udGVudCB9fVxuICAgIDwvbmctdGVtcGxhdGU+XG48L2xhYmVsPlxuXG48IS0tIFRoZSBmb3JtIGNvbnRhaW5pbmcgdGhlIHllYXIvbW9udGgvZGF5IGZpZWxkcy4gLS0+XG48Zm9ybSAqbmdJZj1cImRhdGEkIHwgYXN5bmMgYXMgZGF0YVwiXG4gICAgICBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgICAgY2xhc3M9XCJiYi1kYXRlLXBpY2tlci1jb250YWluZXJcIlxuICAgICAgbm92YWxpZGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwiYmItZGF0ZS1waWNrZXItaXRlbVwiPlxuICAgICAgICA8YmItZm9ybS1jb250cm9sIGhpZGVFcnJvcnM+XG4gICAgICAgICAgICA8c2VsZWN0IFtjbGFzcy5oYXMtdmFsdWVdPVwiISFmb3JtPy5nZXQoJ2RheScpPy52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIGJiSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGF5XCI+XG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJudWxsXCI+e3sgZGF5UGxhY2Vob2xkZXIgfX08L29wdGlvbj5cbiAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBkYXkgb2YgZGF0YT8uZGF5czsgdHJhY2tCeTogdHJhY2tCeVZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1ZhbHVlXT1cImRheT8udmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgZGF5Py5sYWJlbCB9fVxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgIDwvYmItZm9ybS1jb250cm9sPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJiYi1kYXRlLXBpY2tlci1pdGVtXCI+XG4gICAgICAgIDxiYi1mb3JtLWNvbnRyb2wgaGlkZUVycm9ycz5cbiAgICAgICAgICAgIDxzZWxlY3QgW2NsYXNzLmhhcy12YWx1ZV09XCIhIWZvcm0/LmdldCgnbW9udGgnKT8udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICBiYklucHV0XG4gICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm1vbnRoXCI+XG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJudWxsXCI+e3sgbW9udGhQbGFjZWhvbGRlciB9fTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IG1vbnRoIG9mIGRhdGE/Lm1vbnRoczsgdHJhY2tCeTogdHJhY2tCeVZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1ZhbHVlXT1cIm1vbnRoPy52YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBtb250aD8ubGFiZWwgfX1cbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICA8L2JiLWZvcm0tY29udHJvbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYmItZGF0ZS1waWNrZXItaXRlbVwiPlxuICAgICAgICA8YmItZm9ybS1jb250cm9sIGhpZGVFcnJvcnM+XG4gICAgICAgICAgICA8c2VsZWN0ICpuZ0lmPVwiZGF0YT8ueWVhcnM/Lmxlbmd0aCA+IDA7IGVsc2UgZGVmYXVsdFllYXJJbnB1dFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmhhcy12YWx1ZV09XCIhIWZvcm0/LmdldCgneWVhcicpPy52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIGJiSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwieWVhclwiPlxuICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwibnVsbFwiPnt7IHllYXJQbGFjZWhvbGRlciB9fTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHllYXIgb2YgZGF0YT8ueWVhcnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInllYXJcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgeWVhciB9fVxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgPC9zZWxlY3Q+XG5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFllYXJJbnB1dFRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBbcGxhY2Vob2xkZXJdPVwieWVhclBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgYmJJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgIGlucHV0bW9kZT1cIm51bWVyaWNcIlxuICAgICAgICAgICAgICAgICAgICAgICBtaW5sZW5ndGg9XCI0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiNFwiXG4gICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm49XCJeWzAtOV17NH0kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwieWVhclwiXG4gICAgICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9iYi1mb3JtLWNvbnRyb2w+XG4gICAgPC9kaXY+XG48L2Zvcm0+XG5cbjwhLS0gVGhlIGRhdGUgcGlja2VyIGVycm9yLiAtLT5cbjxiYi1mb3JtLWVycm9yICpuZ0lmPVwiIWhpZGVFcnJvcnNcIlxuICAgICAgICAgICAgICAgKGVycm9yQ2hhbmdlKT1cIm9uRXJyb3JDaGFuZ2UoJGV2ZW50KVwiPlxuPC9iYi1mb3JtLWVycm9yPlxuXG48IS0tIFRoZSBkYXRlIHBpY2tlciBoaW50LiAtLT5cbjxwICpuZ0lmPVwiaGludCBhcyBoaW50Q29udGVudFwiXG4gICBjbGFzcz1cImJiLWRhdGUtcGlja2VyLWhpbnRcIj5cbiAgICA8bmctdGVtcGxhdGUgW2JiVGVtcGxhdGVdPVwiaGludENvbnRlbnRcIj5cbiAgICAgICAge3sgaGludENvbnRlbnQgfX1cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9wPlxuIl19
|
|
@@ -2,9 +2,9 @@ import { Directive } from '@angular/core';
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class BbSuffix {
|
|
4
4
|
}
|
|
5
|
-
BbSuffix.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
6
|
-
BbSuffix.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.
|
|
7
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
5
|
+
BbSuffix.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbSuffix, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
6
|
+
BbSuffix.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.1", type: BbSuffix, selector: "[bbSuffix]", host: { classAttribute: "bb-suffix" }, ngImport: i0 });
|
|
7
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbSuffix, decorators: [{
|
|
8
8
|
type: Directive,
|
|
9
9
|
args: [{
|
|
10
10
|
selector: '[bbSuffix]',
|
|
@@ -15,9 +15,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
|
|
|
15
15
|
}] });
|
|
16
16
|
export class BbPrefix {
|
|
17
17
|
}
|
|
18
|
-
BbPrefix.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
19
|
-
BbPrefix.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
18
|
+
BbPrefix.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbPrefix, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
19
|
+
BbPrefix.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.1", type: BbPrefix, selector: "[bbPrefix]", host: { classAttribute: "bb-prefix" }, ngImport: i0 });
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbPrefix, decorators: [{
|
|
21
21
|
type: Directive,
|
|
22
22
|
args: [{
|
|
23
23
|
selector: '[bbPrefix]',
|
|
@@ -34,9 +34,9 @@ export class BbFormSubmit {
|
|
|
34
34
|
return this._formDirective.ngSubmit.pipe(map(() => true));
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
BbFormSubmit.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
38
|
-
BbFormSubmit.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
37
|
+
BbFormSubmit.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbFormSubmit, deps: [{ token: i0.ElementRef }, { token: i1.FormGroupDirective, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
38
|
+
BbFormSubmit.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.1", type: BbFormSubmit, selector: "form", exportAs: ["bbForm"], ngImport: i0 });
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbFormSubmit, decorators: [{
|
|
40
40
|
type: Directive,
|
|
41
41
|
args: [{
|
|
42
42
|
selector: 'form',
|
|
@@ -13,9 +13,9 @@ export class BbFormSubmitter {
|
|
|
13
13
|
this.submitted$.next(false);
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
-
BbFormSubmitter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
17
|
-
BbFormSubmitter.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
16
|
+
BbFormSubmitter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbFormSubmitter, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
17
|
+
BbFormSubmitter.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.1", type: BbFormSubmitter, selector: "[bbFormSubmitter]", exportAs: ["bbFormSubmitter"], ngImport: i0 });
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbFormSubmitter, decorators: [{
|
|
19
19
|
type: Directive,
|
|
20
20
|
args: [{
|
|
21
21
|
selector: '[bbFormSubmitter]',
|
|
@@ -61,9 +61,9 @@ export class BbSelect {
|
|
|
61
61
|
this._formControl.required = this._required;
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
|
-
BbSelect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
65
|
-
BbSelect.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.
|
|
66
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
64
|
+
BbSelect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbSelect, deps: [{ token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: i2.BbFormControl, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
65
|
+
BbSelect.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.1", type: BbSelect, selector: "select[bbInput]", inputs: { disabled: "disabled", required: "required" }, host: { listeners: { "focus": "setFocus(true)", "blur": "setFocus(false)" }, properties: { "disabled": "disabled", "attr.id": "this.id" } }, ngImport: i0 });
|
|
66
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbSelect, decorators: [{
|
|
67
67
|
type: Directive,
|
|
68
68
|
args: [{
|
|
69
69
|
selector: 'select[bbInput]',
|
|
@@ -109,9 +109,9 @@ export class BbInput extends BbSelect {
|
|
|
109
109
|
this._formControl.readonly = this._readonly;
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
|
-
BbInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
113
|
-
BbInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.
|
|
114
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
112
|
+
BbInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbInput, deps: [{ token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: i2.BbFormControl, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
113
|
+
BbInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.1", type: BbInput, selector: "input[bbInput], textarea[bbInput]", inputs: { readonly: "readonly" }, host: { listeners: { "focus": "setFocus(true)", "blur": "setFocus(false)" }, properties: { "disabled": "disabled", "readonly": "readonly" } }, usesInheritance: true, ngImport: i0 });
|
|
114
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbInput, decorators: [{
|
|
115
115
|
type: Directive,
|
|
116
116
|
args: [{
|
|
117
117
|
selector: 'input[bbInput], textarea[bbInput]',
|
|
@@ -25,8 +25,8 @@ export class BbDropdown {
|
|
|
25
25
|
return this.close();
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
-
BbDropdown.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
29
|
-
BbDropdown.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.
|
|
28
|
+
BbDropdown.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbDropdown, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
29
|
+
BbDropdown.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: BbDropdown, selector: "bb-dropdown", host: { listeners: { "document:click": "onDocumentClick($event.target)" }, classAttribute: "bb-dropdown" }, ngImport: i0, template: "<button (click)=\"toggle()\"\n [class.opened]=\"visible$ | async\"\n type=\"button\">\n <ng-content></ng-content>\n</button>\n\n<div *ngIf=\"visible$ | async\"\n [@dropdownMenuAnimation]=\"true\"\n class=\"bb-dropdown-menu\"\n role=\"list\">\n <ng-content select=\"[bbDropdownItem], hr\"></ng-content>\n</div>\n", styles: [".bb-dropdown{position:relative;display:inline-block}.bb-dropdown.right>.bb-dropdown-menu{right:0;left:auto;transform-origin:top right}.bb-dropdown-menu{left:0;top:100%;padding:0;z-index:10;display:block;margin:10px 0 0;border-radius:4px;position:absolute;list-style-type:none;background-color:#fff;border:1px solid #cccccc;transform-origin:top left;box-shadow:0 0 6px #0000001a}.bb-dropdown-menu:after{width:0;top:-5px;height:0;right:5px;content:\"\";position:absolute;border-style:solid;border-width:0 10px 5px 10px;border-color:transparent transparent #d9d9d9 transparent}.bb-dropdown-menu>hr{margin:0;height:1px;border:none;background-color:#ccc}.bb-dropdown-item{width:100%;border:none;line-height:1;display:block;cursor:pointer;text-align:left;font-weight:500;-webkit-user-select:none;user-select:none;padding:12px 20px;white-space:nowrap;text-decoration:none;color:#676767!important;background-color:transparent;transition:background-color .25s cubic-bezier(0,0,.2,1)}.bb-dropdown-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.bb-dropdown-item:hover{background-color:#f6f6f6}.bb-dropdown-item:focus{box-shadow:0 0 0 3px #dce0e980}.bb-dropdown-item:active{background-color:#f0f0f0}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], animations: [
|
|
30
30
|
trigger('dropdownMenuAnimation', [
|
|
31
31
|
transition(':enter', [
|
|
32
32
|
// 1. Set the initial state.
|
|
@@ -42,7 +42,7 @@ BbDropdown.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "1
|
|
|
42
42
|
])
|
|
43
43
|
])
|
|
44
44
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbDropdown, decorators: [{
|
|
46
46
|
type: Component,
|
|
47
47
|
args: [{ selector: 'bb-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { 'class': 'bb-dropdown' }, preserveWhitespaces: false, animations: [
|
|
48
48
|
trigger('dropdownMenuAnimation', [
|
|
@@ -77,9 +77,9 @@ export class BbDropdownItem {
|
|
|
77
77
|
this._parent?.close();
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
|
-
BbDropdownItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
81
|
-
BbDropdownItem.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.
|
|
82
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
80
|
+
BbDropdownItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbDropdownItem, deps: [{ token: BbDropdown, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
81
|
+
BbDropdownItem.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.1", type: BbDropdownItem, selector: "[bbDropdownItem]", inputs: { closeOnClick: "closeOnClick" }, host: { listeners: { "click": "onClick()" }, classAttribute: "bb-dropdown-item" }, ngImport: i0 });
|
|
82
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbDropdownItem, decorators: [{
|
|
83
83
|
type: Directive,
|
|
84
84
|
args: [{
|
|
85
85
|
selector: '[bbDropdownItem]',
|
|
@@ -97,4 +97,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
|
|
|
97
97
|
type: HostListener,
|
|
98
98
|
args: ['click']
|
|
99
99
|
}] } });
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9lbGVtZW50cy9zcmMvbGliL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxTQUFTLEVBRVQsSUFBSSxFQUNKLFlBQVksRUFDWixLQUFLLEVBQ0wsUUFBUSxFQUNSLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLE1BQU0sQ0FBQzs7O0FBNEJyQyxNQUFNLE9BQU8sVUFBVTtJQUtuQixZQUFvQixXQUF1QjtRQUF2QixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUgzQyxTQUFTO1FBQ1QsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBRy9DLENBQUM7SUFFRCxNQUFNO1FBQ0YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsS0FBSztRQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUdELGVBQWUsQ0FBQyxNQUFtQjtRQUMvQixJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTztTQUNWO1FBRUQsSUFBSSxJ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b3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdCxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2FuaW1hdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdiYi1kcm9wZG93bicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kcm9wZG93bi5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDogeydjbGFzcyc6ICdiYi1kcm9wZG93bid9LFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICAgIGFuaW1hdGlvbnM6IFtcbiAgICAgICAgdHJpZ2dlcignZHJvcGRvd25NZW51QW5pbWF0aW9uJywgW1xuICAgICAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgICAgICAgICAgIC8vIDEuIFNldCB0aGUgaW5pdGlhbCBzdGF0ZS5cbiAgICAgICAgICAgICAgICBzdHlsZSh7b3BhY2l0eTogMCwgdHJhbnNmb3JtOiAnc2NhbGUoMC45KSd9KSxcbiAgICAgICAgICAgICAgICAvLyAyLiBTdGFydCB0aGUgYW5pbWF0aW9uIHRvIHNob3cgdGhlIGl0ZW0uXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSgnODBtcyBjdWJpYy1iZXppZXIoMCwgMCwgLjIsIDEpJywgc3R5bGUoe29wYWNpdHk6IDEsIHRyYW5zZm9ybTogJ3NjYWxlKDEpJ30pKVxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbXG4gICAgICAgICAgICAgICAgLy8gMS4gU2V0IHRoZSBpbml0aWFsIHN0YXRlLlxuICAgICAgICAgICAgICAgIHN0eWxlKHtvcGFjaXR5OiAxLCB0cmFuc2Zvcm06ICdzY2FsZSgxKSd9KSxcbiAgICAgICAgICAgICAgICAvLyAyLiBTdGFydCB0aGUgYW5pbWF0aW9uIHRvIGhpZGUgdGhlIGl0ZW0uXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSgnODBtcyBjdWJpYy1iZXppZXIoMCwgMCwgLjIsIDEpJywgc3R5bGUoe29wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3NjYWxlKDAuOSknfSkpXG4gICAgICAgICAgICBdKVxuICAgICAgICBdKVxuICAgIF1cblxufSlcbmV4cG9ydCBjbGFzcyBCYkRyb3Bkb3duIHtcblxuICAgIC8vIFN0YXRlLlxuICAgIHZpc2libGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgfVxuXG4gICAgdG9nZ2xlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy52aXNpYmxlJC5uZXh0KCF0aGlzLnZpc2libGUkLmdldFZhbHVlKCkpO1xuICAgIH1cblxuICAgIGNsb3NlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy52aXNpYmxlJC5uZXh0KGZhbHNlKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50LnRhcmdldCddKVxuICAgIG9uRG9jdW1lbnRDbGljayh0YXJnZXQ6IEhUTUxFbGVtZW50KSB7XG4gICAgICAgIGlmICghdGFyZ2V0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5fZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudD8uY29udGFpbnModGFyZ2V0KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuY2xvc2UoKTtcbiAgICB9XG5cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbYmJEcm9wZG93bkl0ZW1dJyxcbiAgICBob3N0OiB7XG4gICAgICAgICdjbGFzcyc6ICdiYi1kcm9wZG93bi1pdGVtJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgQmJEcm9wZG93bkl0ZW0ge1xuXG4gICAgLy8gSW5wdXRzLlxuICAgIEBJbnB1dCgpIGNsb3NlT25DbGljazogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASG9zdCgpIHByaXZhdGUgX3BhcmVudD86IEJiRHJvcGRvd24pIHtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gICAgb25DbGljaygpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNsb3NlT25DbGljaykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fcGFyZW50Py5jbG9zZSgpO1xuICAgIH1cblxufVxuIiwiPGJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlKClcIlxuICAgICAgICBbY2xhc3Mub3BlbmVkXT1cInZpc2libGUkIHwgYXN5bmNcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9idXR0b24+XG5cbjxkaXYgKm5nSWY9XCJ2aXNpYmxlJCB8IGFzeW5jXCJcbiAgICAgW0Bkcm9wZG93bk1lbnVBbmltYXRpb25dPVwidHJ1ZVwiXG4gICAgIGNsYXNzPVwiYmItZHJvcGRvd24tbWVudVwiXG4gICAgIHJvbGU9XCJsaXN0XCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2JiRHJvcGRvd25JdGVtXSwgaHJcIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -65,8 +65,8 @@ export class ElementsModule {
|
|
|
65
65
|
};
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
|
-
ElementsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
69
|
-
ElementsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.
|
|
68
|
+
ElementsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: ElementsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
69
|
+
ElementsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: ElementsModule, declarations: [
|
|
70
70
|
// Directives.
|
|
71
71
|
BbFormError,
|
|
72
72
|
BbFormSubmit,
|
|
@@ -124,11 +124,11 @@ ElementsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
|
|
|
124
124
|
BbFilePicker,
|
|
125
125
|
BbImagePicker,
|
|
126
126
|
BbDatePicker, UtilsModule] });
|
|
127
|
-
ElementsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.
|
|
127
|
+
ElementsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: ElementsModule, imports: [CommonModule,
|
|
128
128
|
ReactiveFormsModule,
|
|
129
129
|
LocalizeModule,
|
|
130
130
|
UtilsModule, UtilsModule] });
|
|
131
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
131
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: ElementsModule, decorators: [{
|
|
132
132
|
type: NgModule,
|
|
133
133
|
args: [{
|
|
134
134
|
imports: [
|
|
@@ -149,8 +149,8 @@ export class BbFilePicker extends BbFilePickerMixinBase {
|
|
|
149
149
|
};
|
|
150
150
|
}
|
|
151
151
|
}
|
|
152
|
-
BbFilePicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
153
|
-
BbFilePicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.
|
|
152
|
+
BbFilePicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbFilePicker, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
153
|
+
BbFilePicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: BbFilePicker, selector: "bb-file-picker", inputs: { disabled: "disabled", hideErrors: "hideErrors", grouped: "grouped", required: "required", label: "label", hint: "hint", accept: "accept", showImages: "showImages", allowDragging: "allowDragging", value: "value" }, outputs: { valueChange: "valueChange" }, host: { listeners: { "dragover": "onDrag($event,true)", "dragleave": "onDrag($event,false)", "drop": "onDrop($event)" }, properties: { "class.required": "required", "class.disabled": "disabled", "class.grouped": "grouped", "class.hovered": "hovered", "class.error": "error" }, classAttribute: "bb-file-picker" }, providers: [
|
|
154
154
|
{
|
|
155
155
|
provide: NG_VALUE_ACCESSOR,
|
|
156
156
|
useExisting: forwardRef(() => BbFilePicker),
|
|
@@ -172,7 +172,7 @@ BbFilePicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
|
|
|
172
172
|
])
|
|
173
173
|
])
|
|
174
174
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
175
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
175
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbFilePicker, decorators: [{
|
|
176
176
|
type: Component,
|
|
177
177
|
args: [{ selector: 'bb-file-picker', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
|
|
178
178
|
{
|
|
@@ -24,9 +24,9 @@ export class BbFormControl extends BbFormControlMixinBase {
|
|
|
24
24
|
this.error = !!error;
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
BbFormControl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
28
|
-
BbFormControl.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
27
|
+
BbFormControl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbFormControl, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
28
|
+
BbFormControl.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: BbFormControl, selector: "bb-form-control", inputs: { grouped: "grouped", hideErrors: "hideErrors", label: "label", hint: "hint" }, host: { properties: { "class.readonly": "readonly", "class.required": "required", "class.disabled": "disabled", "class.focused": "focused", "class.grouped": "grouped", "class.arrow": "arrow", "class.error": "error" }, classAttribute: "bb-form-control" }, queries: [{ propertyName: "ngControl", first: true, predicate: NgControl, descendants: true }], usesInheritance: true, ngImport: i0, template: "<!-- Label of the form control. -->\n<label *ngIf=\"label as labelContent\"\n [attr.for]=\"labelId\"\n class=\"bb-form-control-label\">\n <ng-template [bbTemplate]=\"labelContent\">\n {{ labelContent }}\n </ng-template>\n</label>\n\n<!-- The input with the addons. -->\n<div class=\"bb-form-control-container\">\n <ng-content select=\"[bbPrefix]\"></ng-content>\n <ng-content select=\"[bbInput]\"></ng-content>\n <ng-content select=\"[bbSuffix]\"></ng-content>\n</div>\n\n<!-- The error component. -->\n<bb-form-error *ngIf=\"!hideErrors\"\n [control]=\"ngControl\"\n (errorChange)=\"onErrorChange($event)\">\n</bb-form-error>\n\n<!-- The form control hint. -->\n<p *ngIf=\"hint as hintContent\"\n class=\"bb-form-control-hint\">\n <ng-template [bbTemplate]=\"hintContent\">\n {{ hintContent }}\n </ng-template>\n</p>\n", styles: [".bb-form-control{color:#2d3c4d;display:block}.bb-form-control>.bb-form-control-container>*.bb-prefix,.bb-form-control>.bb-form-control-container>*.bb-suffix{margin:0 8px;color:#b4b4b4;transition:color .3s cubic-bezier(0,0,.2,1)}.bb-form-control.grouped{margin-bottom:20px}.bb-form-control.small{max-width:240px}.bb-form-control.medium{max-width:480px}.bb-form-control.large{max-width:720px}.bb-form-control.required>.bb-form-control-label:after{content:\"*\";color:#c23934;font-size:12px;line-height:1.5}.bb-form-control.disabled>.bb-form-control-container{cursor:default;pointer-events:none;background-color:#cccccca3}.bb-form-control.disabled>.bb-form-control-container>input,.bb-form-control.disabled>.bb-form-control-container>textarea,.bb-form-control.disabled>.bb-form-control-container>select{color:#aaa}.bb-form-control.readonly>.bb-form-control-container{cursor:default;border:1px dotted #bdc4c9}.bb-form-control:not(.disabled):not(.readonly).focused>.bb-form-control-container{background-color:#fff;box-shadow:inset 0 3px #b7bcc233,0 6px 6px -6px #0000001a,0 0 0 3px #007bff33}.bb-form-control:not(.disabled):not(.readonly).focused>.bb-form-control-container>input::placeholder,.bb-form-control:not(.disabled):not(.readonly).focused>.bb-form-control-container>textarea::placeholder{color:#b4b4b4;transition:color .3s cubic-bezier(0,0,.2,1)}.bb-form-control.error>.bb-form-control-label{color:#c23934}.bb-form-control.error>.bb-form-control-hint{display:none}.bb-form-control.error>.bb-form-control-container{border:1px solid #962b26;background-color:#c2393440!important;box-shadow:inset 0 3px #b7bcc233,0 6px 6px -6px #0000001a,0 0 0 3px #c2393466!important}.bb-form-control.error>.bb-form-control-container>*.bb-prefix,.bb-form-control.error>.bb-form-control-container>.bb-suffix{color:#c23934}.bb-form-control.error>.bb-form-control-container>input::placeholder,.bb-form-control.error>.bb-form-control-container>textarea::placeholder{color:#c2393466!important}.bb-form-control.arrow>.bb-form-control-container:after{top:0;right:0;bottom:0;width:20px;content:\"\";height:36px;display:flex;min-width:20px;position:absolute;pointer-events:none;background-repeat:no-repeat;background-position:calc(100% - 8px) center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAGCAYAAAAYLBS/AAAACXBIWXMAAAsSAAALEgHS3X78AAAAWUlEQVQYlY3QsQ2DMAAEwMMTsAkrZInvWY3WXiIjJJtkA1OBRCIRf/nSffFTrXXGE4uxbCXJBw+8R0CStcAg3JKsUI7mDzzBBd3AC4Cp9/4z21o7znl9A9gBAf4fpjLTwkUAAAAASUVORK5CYII=)}.bb-form-control-container{width:100%;display:flex;overflow:hidden;position:relative;border-radius:3px;align-items:center;border:1px solid #b6bbc1;background-color:#fff8ff;transition-duration:.25s;transition-property:background-color,box-shadow;transition-timing-function:cubic-bezier(0,0,.2,1);box-shadow:inset 0 3px #b7bcc233,0 6px 6px -6px #0000001a}.bb-form-control-container>input::placeholder,.bb-form-control-container>textarea::placeholder{color:#d2d2d2;transition:color .3s cubic-bezier(0,0,.2,1)}.bb-form-control-container>input,.bb-form-control-container>textarea,.bb-form-control-container>select{margin:0;width:100%;border:none;color:#3d464d;font-size:16px;-webkit-appearance:none;appearance:none;background-color:transparent}.bb-form-control-container>input,.bb-form-control-container>select{height:36px;padding:0 8px}.bb-form-control-container>select{padding-right:28px}.bb-form-control-container>select>::-ms-expand{display:none}.bb-form-control-container>input::-ms-clear,.bb-form-control-container>input::-ms-reveal{width:0;height:0;display:none}.bb-form-control-container>input::-webkit-search-decoration,.bb-form-control-container>input::-webkit-search-cancel-button,.bb-form-control-container>input::-webkit-search-results-button,.bb-form-control-container>input::-webkit-search-results-decoration{display:none}.bb-form-control-container>textarea{resize:none;padding:8px}.bb-form-control-label{color:#000;display:block;position:relative;margin-bottom:4px;transition:color 30ms cubic-bezier(0,0,.2,1)}.bb-form-control-error,.bb-form-control-hint{display:block;font-size:13px;margin-top:4px}.bb-form-control-error{color:#c23934}.bb-form-control-hint{color:#738694}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.BbTemplate, selector: "[bbTemplate]", inputs: ["bbTemplate"] }, { kind: "component", type: i3.BbFormError, selector: "bb-form-error", inputs: ["control"], outputs: ["errorChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BbFormControl, decorators: [{
|
|
30
30
|
type: Component,
|
|
31
31
|
args: [{ selector: 'bb-form-control', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
32
32
|
'class': 'bb-form-control',
|