@ti-tecnologico-de-monterrey-oficial/ds-ng 1.5.1018-b → 1.5.1018-c
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/bmb-dropdown/bmb-dropdown.component.mjs +6 -4
- package/esm2022/lib/components/bmb-filter-card/bmb-filter-card.component.mjs +22 -22
- package/esm2022/lib/components/bmb-header-mobile/bmb-header-mobile.component.mjs +4 -3
- package/esm2022/lib/components/bmb-input-tags/bmb-input-tags.component.mjs +2 -2
- package/esm2022/lib/components/bmb-student-activity-card/bmb-student-activity-card.component.mjs +4 -3
- package/esm2022/lib/components/bmb-tables/bmb-tables.component.mjs +130 -21
- package/esm2022/lib/components/bmb-tags/bmb-tags.component.mjs +7 -5
- package/esm2022/public-api.mjs +1 -1
- package/fesm2022/ti-tecnologico-de-monterrey-oficial-ds-ng.mjs +166 -50
- package/fesm2022/ti-tecnologico-de-monterrey-oficial-ds-ng.mjs.map +1 -1
- package/lib/components/bmb-filter-card/bmb-filter-card.component.d.ts +2 -3
- package/lib/components/bmb-header-mobile/bmb-header-mobile.component.d.ts +2 -1
- package/lib/components/bmb-student-activity-card/bmb-student-activity-card.component.d.ts +2 -1
- package/lib/components/bmb-tables/bmb-tables.component.d.ts +22 -4
- package/lib/components/bmb-tags/bmb-tags.component.d.ts +2 -1
- package/package.json +1 -1
|
@@ -144,7 +144,9 @@ export class BmbDropdownComponent {
|
|
|
144
144
|
closeList() {
|
|
145
145
|
this.isOpen = false;
|
|
146
146
|
this.isKeyboardEvent = false;
|
|
147
|
-
this.
|
|
147
|
+
if (this.isFilterable() && !this.isMultiSelect()) {
|
|
148
|
+
this.selectionControl.setValue(this.selectedItem?.selectedText || '');
|
|
149
|
+
}
|
|
148
150
|
}
|
|
149
151
|
// Keyboards events
|
|
150
152
|
onKeyDown(event) {
|
|
@@ -180,7 +182,7 @@ export class BmbDropdownComponent {
|
|
|
180
182
|
return showError(this.control());
|
|
181
183
|
}
|
|
182
184
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BmbDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
183
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: BmbDropdownComponent, isStandalone: true, selector: "bmb-dropdown", inputs: { required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, showIcon: { classPropertyName: "showIcon", publicName: "showIcon", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, helperText: { classPropertyName: "helperText", publicName: "helperText", isSignal: true, isRequired: false, transformFunction: null }, errorMessage: { classPropertyName: "errorMessage", publicName: "errorMessage", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, preferredOptions: { classPropertyName: "preferredOptions", publicName: "preferredOptions", isSignal: true, isRequired: false, transformFunction: null }, isMultiSelect: { classPropertyName: "isMultiSelect", publicName: "isMultiSelect", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, tooltipPosition: { classPropertyName: "tooltipPosition", publicName: "tooltipPosition", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, isFilterable: { classPropertyName: "isFilterable", publicName: "isFilterable", isSignal: true, isRequired: false, transformFunction: null }, inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: false, transformFunction: null }, control: { classPropertyName: "control", publicName: "control", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { control: "controlChange", onValueChange: "onValueChange", onFocus: "onFocus" }, usesOnChanges: true, ngImport: i0, template: "<bmb-input-validator\n class=\"bmb_dropdown\"\n [name]=\"name()\"\n [value]=\"getValidInitialValues()\"\n [label]=\"label()!\"\n [errorMessage]=\"errorMessage()\"\n [helperMessage]=\"helperText()\"\n [isRequired]=\"required()\"\n [isDisabled]=\"disabled()\"\n [control]=\"control()\"\n [showError]=\"shouldShowError\"\n [tooltip]=\"tooltip()\"\n [tooltipPosition]=\"tooltipPosition()\"\n clickOutside\n (clickOutside)=\"closeList()\"\n [inputId]=\"inputId()\"\n>\n <bmb-input-content\n class=\"bmb_dropdown-field\"\n type=\"text\"\n [inputId]=\"inputId()\"\n [name]=\"name()\"\n [icon]=\"getIcon()\"\n [
|
|
185
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: BmbDropdownComponent, isStandalone: true, selector: "bmb-dropdown", inputs: { required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, showIcon: { classPropertyName: "showIcon", publicName: "showIcon", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, helperText: { classPropertyName: "helperText", publicName: "helperText", isSignal: true, isRequired: false, transformFunction: null }, errorMessage: { classPropertyName: "errorMessage", publicName: "errorMessage", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, preferredOptions: { classPropertyName: "preferredOptions", publicName: "preferredOptions", isSignal: true, isRequired: false, transformFunction: null }, isMultiSelect: { classPropertyName: "isMultiSelect", publicName: "isMultiSelect", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, tooltipPosition: { classPropertyName: "tooltipPosition", publicName: "tooltipPosition", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, isFilterable: { classPropertyName: "isFilterable", publicName: "isFilterable", isSignal: true, isRequired: false, transformFunction: null }, inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: false, transformFunction: null }, control: { classPropertyName: "control", publicName: "control", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { control: "controlChange", onValueChange: "onValueChange", onFocus: "onFocus" }, usesOnChanges: true, ngImport: i0, template: "<bmb-input-validator\r\n class=\"bmb_dropdown\"\r\n [name]=\"name()\"\r\n [value]=\"getValidInitialValues()\"\r\n [label]=\"label()!\"\r\n [errorMessage]=\"errorMessage()\"\r\n [helperMessage]=\"helperText()\"\r\n [isRequired]=\"required()\"\r\n [isDisabled]=\"disabled()\"\r\n [control]=\"control()\"\r\n [showError]=\"shouldShowError\"\r\n [tooltip]=\"tooltip()\"\r\n [tooltipPosition]=\"tooltipPosition()\"\r\n clickOutside\r\n (clickOutside)=\"closeList()\"\r\n [inputId]=\"inputId()\"\r\n>\r\n <bmb-input-content\r\n class=\"bmb_dropdown-field\"\r\n type=\"text\"\r\n [inputId]=\"inputId()\"\r\n [name]=\"name()\"\r\n [icon]=\"getIcon()\"\r\n [control]=\"selectionControl\"\r\n [isReadOnly]=\"!isFilterable() || isMultiSelect()\"\r\n [placeholder]=\"placeholder()\"\r\n [isError]=\"shouldShowError\"\r\n [isDisabled]=\"disabled()\"\r\n (click)=\"openList()\"\r\n (onKeyDown)=\"onKeyDown($event)\"\r\n (onBlur)=\"handleValidity()\"\r\n (onFocus)=\"handleFocus($event)\"\r\n >\r\n <ng-template #customContent>\r\n <label [htmlFor]=\"inputId()\">\r\n <bmb-icon\r\n class=\"bmb_field-actions\"\r\n icon=\"keyboard_arrow_down\"\r\n (click)=\"openList()\"\r\n [size]=\"24\"\r\n />\r\n </label>\r\n </ng-template>\r\n </bmb-input-content>\r\n <bmb-dropdown-content\r\n class=\"bmb_dropdown-list\"\r\n [selectedOption]=\"control().value\"\r\n [isKeyboardEvent]=\"isKeyboardEvent\"\r\n [(items)]=\"filteredOptions\"\r\n [(isOpen)]=\"isOpen\"\r\n />\r\n <input\r\n hidden\r\n type=\"text\"\r\n [id]=\"getUUID('id')\"\r\n [name]=\"name()\"\r\n [formControl]=\"control()\"\r\n />\r\n</bmb-input-validator>\r\n", styles: [".bmb_dropdown{display:inline-block;position:relative;width:100%}.bmb_dropdown-field .bmb_field-input{padding-right:2.25rem}.bmb_dropdown-field .bmb_field-input-normal,.bmb_dropdown-field .bmb_field-actions{cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: BmbIconComponent, selector: "bmb-icon", inputs: ["icon", "materialIcon", "styleIcon", "isFill", "fontWeight", "size", "alt", "dotNotification"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: ClickOutsideDirective, selector: "[clickOutside]", outputs: ["clickOutside"] }, { kind: "component", type: BmbInputValidatorComponent, selector: "bmb-input-validator", inputs: ["inputId", "type", "appearance", "label", "labelPosition", "name", "value", "checked", "isRequired", "isDisabled", "max", "min", "maxLength", "minLength", "pattern", "jsonFormat", "tooltip", "rows", "tooltipPosition", "showMaxTextLength", "helperMessage", "errorMessage", "customValidation", "showError", "control"], outputs: ["showErrorChange", "controlChange"] }, { kind: "component", type: BmbInputContentComponent, selector: "bmb-input-content", inputs: ["type", "placeholder", "icon", "appearance", "isDisabled", "isRequired", "name", "spellcheck", "heightTextArea", "maxLength", "minLength", "pattern", "max", "min", "inputId", "autoComplete", "rows", "isReadOnly", "additionalAction", "isClearable", "isError", "isHidden", "showStates", "control"], outputs: ["controlChange", "onFocus", "onBlur", "onChange", "onKeyDown", "onKeyUp"] }, { kind: "component", type: BmbDropdownContentComponent, selector: "bmb-dropdown-content", inputs: ["selectedOption", "items", "isOpen", "isKeyboardEvent"], outputs: ["itemsChange", "isOpenChange", "isKeyboardEventChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
184
186
|
}
|
|
185
187
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BmbDropdownComponent, decorators: [{
|
|
186
188
|
type: Component,
|
|
@@ -192,6 +194,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
192
194
|
BmbInputValidatorComponent,
|
|
193
195
|
BmbInputContentComponent,
|
|
194
196
|
BmbDropdownContentComponent,
|
|
195
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<bmb-input-validator\n class=\"bmb_dropdown\"\n [name]=\"name()\"\n [value]=\"getValidInitialValues()\"\n [label]=\"label()!\"\n [errorMessage]=\"errorMessage()\"\n [helperMessage]=\"helperText()\"\n [isRequired]=\"required()\"\n [isDisabled]=\"disabled()\"\n [control]=\"control()\"\n [showError]=\"shouldShowError\"\n [tooltip]=\"tooltip()\"\n [tooltipPosition]=\"tooltipPosition()\"\n clickOutside\n (clickOutside)=\"closeList()\"\n [inputId]=\"inputId()\"\n>\n <bmb-input-content\n class=\"bmb_dropdown-field\"\n type=\"text\"\n [inputId]=\"inputId()\"\n [name]=\"name()\"\n [icon]=\"getIcon()\"\n [
|
|
197
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<bmb-input-validator\r\n class=\"bmb_dropdown\"\r\n [name]=\"name()\"\r\n [value]=\"getValidInitialValues()\"\r\n [label]=\"label()!\"\r\n [errorMessage]=\"errorMessage()\"\r\n [helperMessage]=\"helperText()\"\r\n [isRequired]=\"required()\"\r\n [isDisabled]=\"disabled()\"\r\n [control]=\"control()\"\r\n [showError]=\"shouldShowError\"\r\n [tooltip]=\"tooltip()\"\r\n [tooltipPosition]=\"tooltipPosition()\"\r\n clickOutside\r\n (clickOutside)=\"closeList()\"\r\n [inputId]=\"inputId()\"\r\n>\r\n <bmb-input-content\r\n class=\"bmb_dropdown-field\"\r\n type=\"text\"\r\n [inputId]=\"inputId()\"\r\n [name]=\"name()\"\r\n [icon]=\"getIcon()\"\r\n [control]=\"selectionControl\"\r\n [isReadOnly]=\"!isFilterable() || isMultiSelect()\"\r\n [placeholder]=\"placeholder()\"\r\n [isError]=\"shouldShowError\"\r\n [isDisabled]=\"disabled()\"\r\n (click)=\"openList()\"\r\n (onKeyDown)=\"onKeyDown($event)\"\r\n (onBlur)=\"handleValidity()\"\r\n (onFocus)=\"handleFocus($event)\"\r\n >\r\n <ng-template #customContent>\r\n <label [htmlFor]=\"inputId()\">\r\n <bmb-icon\r\n class=\"bmb_field-actions\"\r\n icon=\"keyboard_arrow_down\"\r\n (click)=\"openList()\"\r\n [size]=\"24\"\r\n />\r\n </label>\r\n </ng-template>\r\n </bmb-input-content>\r\n <bmb-dropdown-content\r\n class=\"bmb_dropdown-list\"\r\n [selectedOption]=\"control().value\"\r\n [isKeyboardEvent]=\"isKeyboardEvent\"\r\n [(items)]=\"filteredOptions\"\r\n [(isOpen)]=\"isOpen\"\r\n />\r\n <input\r\n hidden\r\n type=\"text\"\r\n [id]=\"getUUID('id')\"\r\n [name]=\"name()\"\r\n [formControl]=\"control()\"\r\n />\r\n</bmb-input-validator>\r\n", styles: [".bmb_dropdown{display:inline-block;position:relative;width:100%}.bmb_dropdown-field .bmb_field-input{padding-right:2.25rem}.bmb_dropdown-field .bmb_field-input-normal,.bmb_dropdown-field .bmb_field-actions{cursor:pointer}\n"] }]
|
|
196
198
|
}] });
|
|
197
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm1iLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItZHJvcGRvd24vYm1iLWRyb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItZHJvcGRvd24vYm1iLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsS0FBSyxFQUNMLE1BQU0sRUFDTixLQUFLLEdBR04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3RGLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLHFCQUFxQixHQUN0QixNQUFNLHNCQUFzQixDQUFDO0FBSzlCLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBRTNHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzVDLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsY0FBYyxFQUNkLG9CQUFvQixFQUNwQixTQUFTLEdBQ1YsTUFBTSx5QkFBeUIsQ0FBQztBQUNq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O0lBQ0gsQ0FBQztJQUVELGNBQWM7UUFDWixjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNuQyxDQUFDOytHQWxOVSxvQkFBb0I7bUdBQXBCLG9CQUFvQixtZ0ZDOURqQywybERBMkRBLHdSRFZJLFlBQVksK0JBQ1osZ0JBQWdCLDZKQUNoQixtQkFBbUIsMGtCQUNuQixxQkFBcUIsc0ZBQ3JCLDBCQUEwQixxYkFDMUIsd0JBQXdCLHFjQUN4QiwyQkFBMkI7OzRGQU9sQixvQkFBb0I7a0JBakJoQyxTQUFTOytCQUNFLGNBQWMsY0FDWixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIscUJBQXFCO3dCQUNyQiwwQkFBMEI7d0JBQzFCLHdCQUF3Qjt3QkFDeEIsMkJBQTJCO3FCQUM1QixtQkFHZ0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBPbkluaXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBpbnB1dCxcbiAgb3V0cHV0LFxuICBtb2RlbCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgT25DaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQm1iSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1pY29uL2JtYi1pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDbGlja091dHNpZGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3V0aWxzL2NsaWNrb3V0c2lkZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtcbiAgY29udmVydExpc3RUb1NlbGVjdExpc3QsXG4gIGdldFNlbGVjdGVkVmFsdWVzLFxuICBnZXRWYWxpZEluaXRpYWxWYWx1ZXMsXG59IGZyb20gJy4uLy4uL3V0aWxzL2Ryb3Bkb3duJztcbmltcG9ydCB7XG4gIElCbWJJbnB1dEVycm9yLFxuICBJQm1iSW5wdXRUb29sdGlwUG9zaXRpb24sXG59IGZyb20gJy4uL2JtYi1pbnB1dC9ibWItaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEJtYkRyb3Bkb3duQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4uL3V0aWxzL2JtYi1kcm9wZG93bi1jb250ZW50L2JtYi1kcm9wZG93bi1jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJRHJvcGRvd25JdGVtIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgQm1iSW5wdXRDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLWlucHV0L2JtYi1pbnB1dC1jb250ZW50L2JtYi1pbnB1dC1jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGdldFVVSUQgfSBmcm9tICcuLi8uLi91dGlscy91dGlscyc7XG5pbXBvcnQge1xuICBhc3NpZ25OZXdGb3JtQ29udHJvbCxcbiAgaGFuZGxlVmFsaWRpdHksXG4gIG5ld0Zvcm1Db250cm9sQnlUeXBlLFxuICBzaG93RXJyb3IsXG59IGZyb20gJy4uLy4uL3V0aWxzL2Zvcm1Db250cm9sJztcbmltcG9ydCB7IEJtYklucHV0VmFsaWRhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLWlucHV0L2JtYi1pbnB1dC12YWxpZGF0b3IvYm1iLWlucHV0LXZhbGlkYXRvci5jb21wb25lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElCbWJEcm9wZG93bkl0ZW0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIHNlbGVjdGVkVGV4dD86IHN0cmluZzsgLy9pbnRlcm5hbFxuICBpY29uPzogc3RyaW5nO1xuICBpZD86IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYm1iLWRyb3Bkb3duJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBCbWJJY29uQ29tcG9uZW50LFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLFxuICAgIEJtYklucHV0VmFsaWRhdG9yQ29tcG9uZW50LFxuICAgIEJtYklucHV0Q29udGVudENvbXBvbmVudCxcbiAgICBCbWJEcm9wZG93bkNvbnRlbnRDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9ibWItZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYm1iLWRyb3Bkb3duLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEJtYkRyb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICByZXF1aXJlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgc2hvd0ljb24gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHBsYWNlaG9sZGVyID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIGljb24gPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgb3B0aW9ucyA9IGlucHV0PHN0cmluZ1tdIHwgSUJtYkRyb3Bkb3duSXRlbVtdPihbXSk7XG4gIGhlbHBlclRleHQgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgZXJyb3JNZXNzYWdlID0gaW5wdXQ8c3RyaW5nIHwgSUJtYklucHV0RXJyb3I+KCcnKTtcbiAgbGFiZWwgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgbmFtZSA9IGlucHV0PHN0cmluZz4oZ2V0VVVJRCgpKTtcbiAgcHJlZmVycmVkT3B0aW9ucyA9IGlucHV0PHN0cmluZ1tdPihbXSk7XG4gIGlzTXVsdGlTZWxlY3QgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHRvb2x0aXAgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgdG9vbHRpcFBvc2l0aW9uID0gaW5wdXQ8SUJtYklucHV0VG9vbHRpcFBvc2l0aW9uPih7XG4gICAgYWxpZ246ICdhYm92ZScsXG4gICAganVzdGlmeTogJ2JlZm9yZScsXG4gIH0pO1xuICBkaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgdmFsdWUgPSBpbnB1dDxzdHJpbmcgfCBzdHJpbmdbXT4oJycpO1xuICBpc0ZpbHRlcmFibGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIGlucHV0SWQgPSBpbnB1dDxzdHJpbmc+KHRoaXMubmFtZSgpKTtcblxuICBjb250cm9sID0gbW9kZWw8Rm9ybUNvbnRyb2w+KG5ld0Zvcm1Db250cm9sQnlUeXBlKCkpO1xuXG4gIG9uVmFsdWVDaGFuZ2UgPSBvdXRwdXQ8YW55PigpO1xuICBvbkZvY3VzID0gb3V0cHV0PGJvb2xlYW4+KCk7XG5cbiAgdXVpZDogc3RyaW5nID0gZ2V0VVVJRCgpO1xuICBpc09wZW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXRlbXM6IElEcm9wZG93bkl0ZW1bXSA9IFtdO1xuICBzZWxlY3Rpb25Db250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbChuZXcgRm9ybUNvbnRyb2woKSk7XG4gIHNlbGVjdGVkSWNvbjogc3RyaW5nID0gJyc7XG4gIGlzS2V5Ym9hcmRFdmVudDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0NvbnRyb2xOdWxsOiBib29sZWFuID0gZmFsc2U7XG4gIGZpbHRlcmVkT3B0aW9uczogSURyb3Bkb3duSXRlbVtdID0gW107XG4gIHNlbGVjdGVkSXRlbTogSURyb3Bkb3duSXRlbSB8IG51bGwgPSBudWxsO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5jb250cm9sKCkpIHtcbiAgICAgIHRoaXMuY29udHJvbC5zZXQoYXNzaWduTmV3Rm9ybUNvbnRyb2wodGhpcy5uYW1lKCksIHRoaXMuY29udHJvbCgpKSEpO1xuICAgICAgdGhpcy5pc0NvbnRyb2xOdWxsID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kaXNhYmxlZCgpKSB0aGlzLnNlbGVjdGlvbkNvbnRyb2wuZGlzYWJsZSgpO1xuICAgIGVsc2UgdGhpcy5zZWxlY3Rpb25Db250cm9sLmVuYWJsZSgpO1xuXG4gICAgaWYgKCF0aGlzLmlzTXVsdGlTZWxlY3QoKSAmJiBBcnJheS5pc0FycmF5KHRoaXMuY29udHJvbCgpPy52YWx1ZSkpIHtcbiAgICAgIHRoaXMuY29udHJvbCgpLnNldFZhbHVlKCcnKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbnRyb2woKVxuICAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLmdldFZhbGlkSW5pdGlhbFZhbHVlcygpKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0U2VsZWN0aW9uQ29udHJvbCh2YWx1ZSk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gWy4uLnRoaXMuaXRlbXNdO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydvcHRpb25zJ10pIHtcbiAgICAgIHRoaXMuaW5pdE9wdGlvbnMoY2hhbmdlc1snb3B0aW9ucyddLmN1cnJlbnRWYWx1ZSk7XG4gICAgICB0aGlzLmNvbnRyb2woKS5zZXRWYWx1ZSh0aGlzLmdldFZhbGlkSW5pdGlhbFZhbHVlcygpKTtcbiAgICB9XG4gIH1cblxuICBpbml0T3B0aW9ucyhsaXN0OiBzdHJpbmdbXSB8IElCbWJEcm9wZG93bkl0ZW1bXSk6IHZvaWQge1xuICAgIGNvbnN0IG5ld0l0ZW1zID0gY29udmVydExpc3RUb1NlbGVjdExpc3QoXG4gICAgICBsaXN0LFxuICAgICAgdGhpcy5pY29uKCksXG4gICAgICB0aGlzLnNob3dJY29uKCksXG4gICAgKTtcblxuICAgIHRoaXMuaXRlbXMgPSBuZXdJdGVtcy5tYXAoKGVsZW1lbnQ6IElEcm9wZG93bkl0ZW0pID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmVsZW1lbnQsXG4gICAgICAgIGljb246ICF0aGlzLmlzTXVsdGlTZWxlY3QoKSAmJiB0aGlzLnNob3dJY29uKCkgPyBlbGVtZW50Lmljb24hIDogJycsXG4gICAgICAgIGFjdGlvbjogKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRWYWx1ZShlbGVtZW50KTtcbiAgICAgICAgfSxcbiAgICAgIH0gYXMgSURyb3Bkb3duSXRlbTtcbiAgICB9KTtcblxuICAgIGlmICghIXRoaXMucHJlZmVycmVkT3B0aW9ucygpLmxlbmd0aCkge1xuICAgICAgY29uc3QgcHJlZmVycmVkSXRlbXM6IElEcm9wZG93bkl0ZW1bXSA9IHRoaXMuaXRlbXMuZmlsdGVyKChlbGVtZW50KSA9PlxuICAgICAgICB0aGlzLnByZWZlcnJlZE9wdGlvbnMoKS5pbmNsdWRlcyhlbGVtZW50LnZhbHVlISksXG4gICAgICApO1xuXG4gICAgICB0aGlzLml0ZW1zID0gWy4uLm5ldyBTZXQoWy4uLnByZWZlcnJlZEl0ZW1zLCAuLi50aGlzLml0ZW1zXSldO1xuICAgIH1cblxuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gWy4uLnRoaXMuaXRlbXNdO1xuICB9XG5cbiAgaGFuZGxlRm9jdXModmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLm9uRm9jdXMuZW1pdCh2YWx1ZSk7XG4gIH1cblxuICBnZXRVVUlEKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke25hbWV9XyR7dGhpcy5uYW1lKCl9XyR7dGhpcy51dWlkfWA7XG4gIH1cblxuICBnZXRJY29uKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLmlzTXVsdGlTZWxlY3QoKSAmJiB0aGlzLnNob3dJY29uKCkpXG4gICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEljb24gfHwgdGhpcy5pY29uKCk7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgZ2V0VmFsaWRJbml0aWFsVmFsdWVzKCk6IHN0cmluZyB8IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gZ2V0VmFsaWRJbml0aWFsVmFsdWVzKFxuICAgICAgdGhpcy5jb250cm9sKCkudmFsdWUsXG4gICAgICB0aGlzLnZhbHVlKCksXG4gICAgICB0aGlzLm9wdGlvbnMoKSxcbiAgICAgIHRoaXMuaXNNdWx0aVNlbGVjdCgpLFxuICAgICk7XG4gIH1cblxuICBzZXRTZWxlY3Rpb25Db250cm9sKGNvbnRyb2xWYWx1ZTogc3RyaW5nIHwgc3RyaW5nW10pOiB2b2lkIHtcbiAgICBpZiAoISFjb250cm9sVmFsdWUpIHtcbiAgICAgIGlmICh0aGlzLmlzTXVsdGlTZWxlY3QoKSkge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW1zID0gdGhpcy5pdGVtcy5maWx0ZXIoKHsgdmFsdWUgfSkgPT5cbiAgICAgICAgICBjb250cm9sVmFsdWUuaW5jbHVkZXModmFsdWUhKSxcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2wuc2V0VmFsdWUoXG4gICAgICAgICAgc2VsZWN0ZWRJdGVtcy5tYXAoKGVsZW1lbnQpID0+IGAgJHtlbGVtZW50LnNlbGVjdGVkVGV4dH1gKSxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBpdGVtID0gdGhpcy5pdGVtcy5maW5kKCh7IHZhbHVlIH0pID0+IHZhbHVlID09PSBjb250cm9sVmFsdWUpO1xuICAgICAgaWYgKCEhaXRlbSkge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2wuc2V0VmFsdWUoaXRlbT8uc2VsZWN0ZWRUZXh0KTtcbiAgICAgICAgaWYgKHRoaXMuc2hvd0ljb24oKSkgdGhpcy5zZWxlY3RlZEljb24gPSBpdGVtLmljb247XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gaXRlbTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2wuc2V0VmFsdWUoJycpO1xuICAgIGlmICh0aGlzLnNob3dJY29uKCkpIHRoaXMuc2VsZWN0ZWRJY29uID0gdGhpcy5pY29uKCk7XG4gIH1cblxuICBzZWxlY3RPcHRpb25XaXRoS2V5KHZhbHVlOiBzdHJpbmcpOiBJRHJvcGRvd25JdGVtW10ge1xuICAgIGlmICghdmFsdWUpIHJldHVybiB0aGlzLml0ZW1zO1xuXG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmlsdGVyKChpdGVtKSA9PlxuICAgICAgaXRlbT8uc2VsZWN0ZWRUZXh0Py50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHZhbHVlLnRvTG93ZXJDYXNlKCkpLFxuICAgICk7XG4gIH1cblxuICBzZXRTZWxlY3RlZFZhbHVlKGVsZW1lbnQ6IElEcm9wZG93bkl0ZW0pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc011bHRpU2VsZWN0KCkpIHtcbiAgICAgIHRoaXMuY29udHJvbCgpLnNldFZhbHVlKFxuICAgICAgICBnZXRTZWxlY3RlZFZhbHVlcyh0aGlzLmNvbnRyb2woKS52YWx1ZSwgZWxlbWVudC52YWx1ZSEpLFxuICAgICAgKTtcbiAgICB9IGVsc2UgdGhpcy5jb250cm9sKCkuc2V0VmFsdWUoZWxlbWVudC52YWx1ZSEpO1xuXG4gICAgdGhpcy5vblZhbHVlQ2hhbmdlLmVtaXQodGhpcy5jb250cm9sKCkudmFsdWUpO1xuICB9XG5cbiAgb3Blbkxpc3QoKTogdm9pZCB7XG4gICAgdGhpcy5pc09wZW4gPSAhdGhpcy5pc09wZW47XG4gICAgaWYgKCF0aGlzLmlzT3BlbikgdGhpcy5pc0tleWJvYXJkRXZlbnQgPSBmYWxzZTtcbiAgfVxuXG4gIGNsb3NlTGlzdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMuaXNLZXlib2FyZEV2ZW50ID0gZmFsc2U7XG4gICAgdGhpcy5zZWxlY3Rpb25Db250cm9sLnNldFZhbHVlKHRoaXMuc2VsZWN0ZWRJdGVtPy5zZWxlY3RlZFRleHQgfHwgJycpO1xuICB9XG5cbiAgLy8gS2V5Ym9hcmRzIGV2ZW50c1xuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBjb25zdCBrZXlib2FyZHMgPSBbJyAnLCAnQXJyb3dEb3duJywgJ0Rvd24nXTtcbiAgICBjb25zdCByZWdleENvZGUgPSAvXlthLXpBLVowLTlcXC1cXC5cXCwgXXsxfSQvZ207XG5cbiAgICBpZiAoa2V5Ym9hcmRzLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcbiAgICAgIGlmICghdGhpcy5pc09wZW4pIHtcbiAgICAgICAgdGhpcy5pc0tleWJvYXJkRXZlbnQgPSB0cnVlO1xuICAgICAgICB0aGlzLm9wZW5MaXN0KCk7XG4gICAgICB9XG5cbiAgICAgIGlmICghdGhpcy5vcHRpb25zKCkubGVuZ3RoICYmICF0aGlzLmlzRmlsdGVyYWJsZSgpKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc0ZpbHRlcmFibGUoKSAmJiAhdGhpcy5pc011bHRpU2VsZWN0KCkpIHtcbiAgICAgIGxldCB2YWx1ZSA9IHRoaXMuc2VsZWN0aW9uQ29udHJvbC52YWx1ZSB8fCAnJztcblxuICAgICAgaWYgKCF0aGlzLmlzT3BlbikgdGhpcy5vcGVuTGlzdCgpO1xuICAgICAgaWYgKHJlZ2V4Q29kZS50ZXN0KGV2ZW50LmtleSkpIHtcbiAgICAgICAgdmFsdWUgKz0gZXZlbnQua2V5O1xuICAgICAgfVxuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScpIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5zbGljZSgwLCAtMSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5zZWxlY3RPcHRpb25XaXRoS2V5KHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVWYWxpZGl0eSgpOiB2b2lkIHtcbiAgICBoYW5kbGVWYWxpZGl0eSh0aGlzLmNvbnRyb2woKSk7XG4gIH1cblxuICBnZXQgc2hvdWxkU2hvd0Vycm9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzaG93RXJyb3IodGhpcy5jb250cm9sKCkpO1xuICB9XG59XG4iLCI8Ym1iLWlucHV0LXZhbGlkYXRvclxuICBjbGFzcz1cImJtYl9kcm9wZG93blwiXG4gIFtuYW1lXT1cIm5hbWUoKVwiXG4gIFt2YWx1ZV09XCJnZXRWYWxpZEluaXRpYWxWYWx1ZXMoKVwiXG4gIFtsYWJlbF09XCJsYWJlbCgpIVwiXG4gIFtlcnJvck1lc3NhZ2VdPVwiZXJyb3JNZXNzYWdlKClcIlxuICBbaGVscGVyTWVzc2FnZV09XCJoZWxwZXJUZXh0KClcIlxuICBbaXNSZXF1aXJlZF09XCJyZXF1aXJlZCgpXCJcbiAgW2lzRGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gIFtjb250cm9sXT1cImNvbnRyb2woKVwiXG4gIFtzaG93RXJyb3JdPVwic2hvdWxkU2hvd0Vycm9yXCJcbiAgW3Rvb2x0aXBdPVwidG9vbHRpcCgpXCJcbiAgW3Rvb2x0aXBQb3NpdGlvbl09XCJ0b29sdGlwUG9zaXRpb24oKVwiXG4gIGNsaWNrT3V0c2lkZVxuICAoY2xpY2tPdXRzaWRlKT1cImNsb3NlTGlzdCgpXCJcbiAgW2lucHV0SWRdPVwiaW5wdXRJZCgpXCJcbj5cbiAgPGJtYi1pbnB1dC1jb250ZW50XG4gICAgY2xhc3M9XCJibWJfZHJvcGRvd24tZmllbGRcIlxuICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICBbaW5wdXRJZF09XCJpbnB1dElkKClcIlxuICAgIFtuYW1lXT1cIm5hbWUoKVwiXG4gICAgW2ljb25dPVwiZ2V0SWNvbigpXCJcbiAgICBbaXNSZWFkT25seV09XCIhaXNGaWx0ZXJhYmxlKClcIlxuICAgIFtjb250cm9sXT1cInNlbGVjdGlvbkNvbnRyb2xcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpXCJcbiAgICBbaXNFcnJvcl09XCJzaG91bGRTaG93RXJyb3JcIlxuICAgIFtpc0Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgIChjbGljayk9XCJvcGVuTGlzdCgpXCJcbiAgICAob25LZXlEb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgICAob25CbHVyKT1cImhhbmRsZVZhbGlkaXR5KClcIlxuICAgIChvbkZvY3VzKT1cImhhbmRsZUZvY3VzKCRldmVudClcIlxuICA+XG4gICAgPG5nLXRlbXBsYXRlICNjdXN0b21Db250ZW50PlxuICAgICAgPGxhYmVsIFtodG1sRm9yXT1cImlucHV0SWQoKVwiPlxuICAgICAgICA8Ym1iLWljb25cbiAgICAgICAgICBjbGFzcz1cImJtYl9maWVsZC1hY3Rpb25zXCJcbiAgICAgICAgICBpY29uPVwia2V5Ym9hcmRfYXJyb3dfZG93blwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9wZW5MaXN0KClcIlxuICAgICAgICAgIFtzaXplXT1cIjI0XCJcbiAgICAgICAgLz5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9ibWItaW5wdXQtY29udGVudD5cbiAgPGJtYi1kcm9wZG93bi1jb250ZW50XG4gICAgY2xhc3M9XCJibWJfZHJvcGRvd24tbGlzdFwiXG4gICAgW3NlbGVjdGVkT3B0aW9uXT1cImNvbnRyb2woKS52YWx1ZVwiXG4gICAgW2lzS2V5Ym9hcmRFdmVudF09XCJpc0tleWJvYXJkRXZlbnRcIlxuICAgIFsoaXRlbXMpXT1cImZpbHRlcmVkT3B0aW9uc1wiXG4gICAgWyhpc09wZW4pXT1cImlzT3BlblwiXG4gIC8+XG4gIDxpbnB1dFxuICAgIGhpZGRlblxuICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICBbaWRdPVwiZ2V0VVVJRCgnaWQnKVwiXG4gICAgW25hbWVdPVwibmFtZSgpXCJcbiAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbCgpXCJcbiAgLz5cbjwvYm1iLWlucHV0LXZhbGlkYXRvcj5cbiJdfQ==
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm1iLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItZHJvcGRvd24vYm1iLWRyb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItZHJvcGRvd24vYm1iLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsS0FBSyxFQUNMLE1BQU0sRUFDTixLQUFLLEdBR04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3RGLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLHFCQUFxQixHQUN0QixNQUFNLHNCQUFzQixDQUFDO0FBSzlCLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBRTNHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzVDLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsY0FBYyxFQUNkLG9CQUFvQixFQUNwQixTQUFTLEdBQ1YsTUFBTSx5QkFBeUIsQ0FBQztBQUNq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QzdCLENBQUM7WUFFRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6RCxDQUFDO0lBQ0gsQ0FBQztJQUVELGNBQWM7UUFDWixjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNuQyxDQUFDOytHQXBOVSxvQkFBb0I7bUdBQXBCLG9CQUFvQixtZ0ZDOURqQyxvdURBMkRBLHdSRFZJLFlBQVksK0JBQ1osZ0JBQWdCLDZKQUNoQixtQkFBbUIsMGtCQUNuQixxQkFBcUIsc0ZBQ3JCLDBCQUEwQixxYkFDMUIsd0JBQXdCLHFjQUN4QiwyQkFBMkI7OzRGQU9sQixvQkFBb0I7a0JBakJoQyxTQUFTOytCQUNFLGNBQWMsY0FDWixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIscUJBQXFCO3dCQUNyQiwwQkFBMEI7d0JBQzFCLHdCQUF3Qjt3QkFDeEIsMkJBQTJCO3FCQUM1QixtQkFHZ0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBpbnB1dCxcclxuICBvdXRwdXQsXHJcbiAgbW9kZWwsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBPbkNoYW5nZXMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBCbWJJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLWljb24vYm1iLWljb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy91dGlscy9jbGlja291dHNpZGUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHtcclxuICBjb252ZXJ0TGlzdFRvU2VsZWN0TGlzdCxcclxuICBnZXRTZWxlY3RlZFZhbHVlcyxcclxuICBnZXRWYWxpZEluaXRpYWxWYWx1ZXMsXHJcbn0gZnJvbSAnLi4vLi4vdXRpbHMvZHJvcGRvd24nO1xyXG5pbXBvcnQge1xyXG4gIElCbWJJbnB1dEVycm9yLFxyXG4gIElCbWJJbnB1dFRvb2x0aXBQb3NpdGlvbixcclxufSBmcm9tICcuLi9ibWItaW5wdXQvYm1iLWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJtYkRyb3Bkb3duQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4uL3V0aWxzL2JtYi1kcm9wZG93bi1jb250ZW50L2JtYi1kcm9wZG93bi1jb250ZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElEcm9wZG93bkl0ZW0gfSBmcm9tICcuLi8uLi90eXBlcyc7XHJcbmltcG9ydCB7IEJtYklucHV0Q29udGVudENvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1pbnB1dC9ibWItaW5wdXQtY29udGVudC9ibWItaW5wdXQtY29udGVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZ2V0VVVJRCB9IGZyb20gJy4uLy4uL3V0aWxzL3V0aWxzJztcclxuaW1wb3J0IHtcclxuICBhc3NpZ25OZXdGb3JtQ29udHJvbCxcclxuICBoYW5kbGVWYWxpZGl0eSxcclxuICBuZXdGb3JtQ29udHJvbEJ5VHlwZSxcclxuICBzaG93RXJyb3IsXHJcbn0gZnJvbSAnLi4vLi4vdXRpbHMvZm9ybUNvbnRyb2wnO1xyXG5pbXBvcnQgeyBCbWJJbnB1dFZhbGlkYXRvckNvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1pbnB1dC9ibWItaW5wdXQtdmFsaWRhdG9yL2JtYi1pbnB1dC12YWxpZGF0b3IuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUJtYkRyb3Bkb3duSXRlbSB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHZhbHVlOiBzdHJpbmc7XHJcbiAgc2VsZWN0ZWRUZXh0Pzogc3RyaW5nOyAvL2ludGVybmFsXHJcbiAgaWNvbj86IHN0cmluZztcclxuICBpZD86IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdibWItZHJvcGRvd24nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgQm1iSWNvbkNvbXBvbmVudCxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBDbGlja091dHNpZGVEaXJlY3RpdmUsXHJcbiAgICBCbWJJbnB1dFZhbGlkYXRvckNvbXBvbmVudCxcclxuICAgIEJtYklucHV0Q29udGVudENvbXBvbmVudCxcclxuICAgIEJtYkRyb3Bkb3duQ29udGVudENvbXBvbmVudCxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ibWItZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9ibWItZHJvcGRvd24uY29tcG9uZW50LnNjc3MnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCbWJEcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICByZXF1aXJlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICBzaG93SWNvbiA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICBwbGFjZWhvbGRlciA9IGlucHV0PHN0cmluZz4oJycpO1xyXG4gIGljb24gPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuICBvcHRpb25zID0gaW5wdXQ8c3RyaW5nW10gfCBJQm1iRHJvcGRvd25JdGVtW10+KFtdKTtcclxuICBoZWxwZXJUZXh0ID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcbiAgZXJyb3JNZXNzYWdlID0gaW5wdXQ8c3RyaW5nIHwgSUJtYklucHV0RXJyb3I+KCcnKTtcclxuICBsYWJlbCA9IGlucHV0PHN0cmluZz4oJycpO1xyXG4gIG5hbWUgPSBpbnB1dDxzdHJpbmc+KGdldFVVSUQoKSk7XHJcbiAgcHJlZmVycmVkT3B0aW9ucyA9IGlucHV0PHN0cmluZ1tdPihbXSk7XHJcbiAgaXNNdWx0aVNlbGVjdCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICB0b29sdGlwID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcbiAgdG9vbHRpcFBvc2l0aW9uID0gaW5wdXQ8SUJtYklucHV0VG9vbHRpcFBvc2l0aW9uPih7XHJcbiAgICBhbGlnbjogJ2Fib3ZlJyxcclxuICAgIGp1c3RpZnk6ICdiZWZvcmUnLFxyXG4gIH0pO1xyXG4gIGRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHZhbHVlID0gaW5wdXQ8c3RyaW5nIHwgc3RyaW5nW10+KCcnKTtcclxuICBpc0ZpbHRlcmFibGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgaW5wdXRJZCA9IGlucHV0PHN0cmluZz4odGhpcy5uYW1lKCkpO1xyXG5cclxuICBjb250cm9sID0gbW9kZWw8Rm9ybUNvbnRyb2w+KG5ld0Zvcm1Db250cm9sQnlUeXBlKCkpO1xyXG5cclxuICBvblZhbHVlQ2hhbmdlID0gb3V0cHV0PGFueT4oKTtcclxuICBvbkZvY3VzID0gb3V0cHV0PGJvb2xlYW4+KCk7XHJcblxyXG4gIHV1aWQ6IHN0cmluZyA9IGdldFVVSUQoKTtcclxuICBpc09wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpdGVtczogSURyb3Bkb3duSXRlbVtdID0gW107XHJcbiAgc2VsZWN0aW9uQ29udHJvbDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2wobmV3IEZvcm1Db250cm9sKCkpO1xyXG4gIHNlbGVjdGVkSWNvbjogc3RyaW5nID0gJyc7XHJcbiAgaXNLZXlib2FyZEV2ZW50OiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNDb250cm9sTnVsbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGZpbHRlcmVkT3B0aW9uczogSURyb3Bkb3duSXRlbVtdID0gW107XHJcbiAgc2VsZWN0ZWRJdGVtOiBJRHJvcGRvd25JdGVtIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKCF0aGlzLmNvbnRyb2woKSkge1xyXG4gICAgICB0aGlzLmNvbnRyb2wuc2V0KGFzc2lnbk5ld0Zvcm1Db250cm9sKHRoaXMubmFtZSgpLCB0aGlzLmNvbnRyb2woKSkhKTtcclxuICAgICAgdGhpcy5pc0NvbnRyb2xOdWxsID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCgpKSB0aGlzLnNlbGVjdGlvbkNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgZWxzZSB0aGlzLnNlbGVjdGlvbkNvbnRyb2wuZW5hYmxlKCk7XHJcblxyXG4gICAgaWYgKCF0aGlzLmlzTXVsdGlTZWxlY3QoKSAmJiBBcnJheS5pc0FycmF5KHRoaXMuY29udHJvbCgpPy52YWx1ZSkpIHtcclxuICAgICAgdGhpcy5jb250cm9sKCkuc2V0VmFsdWUoJycpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY29udHJvbCgpXHJcbiAgICAgIC52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5nZXRWYWxpZEluaXRpYWxWYWx1ZXMoKSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRTZWxlY3Rpb25Db250cm9sKHZhbHVlKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSBbLi4udGhpcy5pdGVtc107XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1snb3B0aW9ucyddKSB7XHJcbiAgICAgIHRoaXMuaW5pdE9wdGlvbnMoY2hhbmdlc1snb3B0aW9ucyddLmN1cnJlbnRWYWx1ZSk7XHJcbiAgICAgIHRoaXMuY29udHJvbCgpLnNldFZhbHVlKHRoaXMuZ2V0VmFsaWRJbml0aWFsVmFsdWVzKCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5pdE9wdGlvbnMobGlzdDogc3RyaW5nW10gfCBJQm1iRHJvcGRvd25JdGVtW10pOiB2b2lkIHtcclxuICAgIGNvbnN0IG5ld0l0ZW1zID0gY29udmVydExpc3RUb1NlbGVjdExpc3QoXHJcbiAgICAgIGxpc3QsXHJcbiAgICAgIHRoaXMuaWNvbigpLFxyXG4gICAgICB0aGlzLnNob3dJY29uKCksXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuaXRlbXMgPSBuZXdJdGVtcy5tYXAoKGVsZW1lbnQ6IElEcm9wZG93bkl0ZW0pID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICAuLi5lbGVtZW50LFxyXG4gICAgICAgIGljb246ICF0aGlzLmlzTXVsdGlTZWxlY3QoKSAmJiB0aGlzLnNob3dJY29uKCkgPyBlbGVtZW50Lmljb24hIDogJycsXHJcbiAgICAgICAgYWN0aW9uOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNldFNlbGVjdGVkVmFsdWUoZWxlbWVudCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSBhcyBJRHJvcGRvd25JdGVtO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKCEhdGhpcy5wcmVmZXJyZWRPcHRpb25zKCkubGVuZ3RoKSB7XHJcbiAgICAgIGNvbnN0IHByZWZlcnJlZEl0ZW1zOiBJRHJvcGRvd25JdGVtW10gPSB0aGlzLml0ZW1zLmZpbHRlcigoZWxlbWVudCkgPT5cclxuICAgICAgICB0aGlzLnByZWZlcnJlZE9wdGlvbnMoKS5pbmNsdWRlcyhlbGVtZW50LnZhbHVlISksXHJcbiAgICAgICk7XHJcblxyXG4gICAgICB0aGlzLml0ZW1zID0gWy4uLm5ldyBTZXQoWy4uLnByZWZlcnJlZEl0ZW1zLCAuLi50aGlzLml0ZW1zXSldO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gWy4uLnRoaXMuaXRlbXNdO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRm9jdXModmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMub25Gb2N1cy5lbWl0KHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGdldFVVSUQobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgJHtuYW1lfV8ke3RoaXMubmFtZSgpfV8ke3RoaXMudXVpZH1gO1xyXG4gIH1cclxuXHJcbiAgZ2V0SWNvbigpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF0aGlzLmlzTXVsdGlTZWxlY3QoKSAmJiB0aGlzLnNob3dJY29uKCkpXHJcbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSWNvbiB8fCB0aGlzLmljb24oKTtcclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIGdldFZhbGlkSW5pdGlhbFZhbHVlcygpOiBzdHJpbmcgfCBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gZ2V0VmFsaWRJbml0aWFsVmFsdWVzKFxyXG4gICAgICB0aGlzLmNvbnRyb2woKS52YWx1ZSxcclxuICAgICAgdGhpcy52YWx1ZSgpLFxyXG4gICAgICB0aGlzLm9wdGlvbnMoKSxcclxuICAgICAgdGhpcy5pc011bHRpU2VsZWN0KCksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgc2V0U2VsZWN0aW9uQ29udHJvbChjb250cm9sVmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKTogdm9pZCB7XHJcbiAgICBpZiAoISFjb250cm9sVmFsdWUpIHtcclxuICAgICAgaWYgKHRoaXMuaXNNdWx0aVNlbGVjdCgpKSB7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtcyA9IHRoaXMuaXRlbXMuZmlsdGVyKCh7IHZhbHVlIH0pID0+XHJcbiAgICAgICAgICBjb250cm9sVmFsdWUuaW5jbHVkZXModmFsdWUhKSxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2wuc2V0VmFsdWUoXHJcbiAgICAgICAgICBzZWxlY3RlZEl0ZW1zLm1hcCgoZWxlbWVudCkgPT4gYCAke2VsZW1lbnQuc2VsZWN0ZWRUZXh0fWApLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBpdGVtID0gdGhpcy5pdGVtcy5maW5kKCh7IHZhbHVlIH0pID0+IHZhbHVlID09PSBjb250cm9sVmFsdWUpO1xyXG4gICAgICBpZiAoISFpdGVtKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25Db250cm9sLnNldFZhbHVlKGl0ZW0/LnNlbGVjdGVkVGV4dCk7XHJcbiAgICAgICAgaWYgKHRoaXMuc2hvd0ljb24oKSkgdGhpcy5zZWxlY3RlZEljb24gPSBpdGVtLmljb247XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBpdGVtO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNlbGVjdGlvbkNvbnRyb2wuc2V0VmFsdWUoJycpO1xyXG4gICAgaWYgKHRoaXMuc2hvd0ljb24oKSkgdGhpcy5zZWxlY3RlZEljb24gPSB0aGlzLmljb24oKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdE9wdGlvbldpdGhLZXkodmFsdWU6IHN0cmluZyk6IElEcm9wZG93bkl0ZW1bXSB7XHJcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gdGhpcy5pdGVtcztcclxuXHJcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5maWx0ZXIoKGl0ZW0pID0+XHJcbiAgICAgIGl0ZW0/LnNlbGVjdGVkVGV4dD8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh2YWx1ZS50b0xvd2VyQ2FzZSgpKSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBzZXRTZWxlY3RlZFZhbHVlKGVsZW1lbnQ6IElEcm9wZG93bkl0ZW0pOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmlzTXVsdGlTZWxlY3QoKSkge1xyXG4gICAgICB0aGlzLmNvbnRyb2woKS5zZXRWYWx1ZShcclxuICAgICAgICBnZXRTZWxlY3RlZFZhbHVlcyh0aGlzLmNvbnRyb2woKS52YWx1ZSwgZWxlbWVudC52YWx1ZSEpLFxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHRoaXMuY29udHJvbCgpLnNldFZhbHVlKGVsZW1lbnQudmFsdWUhKTtcclxuXHJcbiAgICB0aGlzLm9uVmFsdWVDaGFuZ2UuZW1pdCh0aGlzLmNvbnRyb2woKS52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBvcGVuTGlzdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNPcGVuID0gIXRoaXMuaXNPcGVuO1xyXG4gICAgaWYgKCF0aGlzLmlzT3BlbikgdGhpcy5pc0tleWJvYXJkRXZlbnQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNsb3NlTGlzdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzS2V5Ym9hcmRFdmVudCA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMuaXNGaWx0ZXJhYmxlKCkgJiYgIXRoaXMuaXNNdWx0aVNlbGVjdCgpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uQ29udHJvbC5zZXRWYWx1ZSh0aGlzLnNlbGVjdGVkSXRlbT8uc2VsZWN0ZWRUZXh0IHx8ICcnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIEtleWJvYXJkcyBldmVudHNcclxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGNvbnN0IGtleWJvYXJkcyA9IFsnICcsICdBcnJvd0Rvd24nLCAnRG93biddO1xyXG4gICAgY29uc3QgcmVnZXhDb2RlID0gL15bYS16QS1aMC05XFwtXFwuXFwsIF17MX0kL2dtO1xyXG5cclxuICAgIGlmIChrZXlib2FyZHMuaW5jbHVkZXMoZXZlbnQua2V5KSkge1xyXG4gICAgICBpZiAoIXRoaXMuaXNPcGVuKSB7XHJcbiAgICAgICAgdGhpcy5pc0tleWJvYXJkRXZlbnQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMub3Blbkxpc3QoKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCF0aGlzLm9wdGlvbnMoKS5sZW5ndGggJiYgIXRoaXMuaXNGaWx0ZXJhYmxlKCkpIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmlzRmlsdGVyYWJsZSgpICYmICF0aGlzLmlzTXVsdGlTZWxlY3QoKSkge1xyXG4gICAgICBsZXQgdmFsdWUgPSB0aGlzLnNlbGVjdGlvbkNvbnRyb2wudmFsdWUgfHwgJyc7XHJcblxyXG4gICAgICBpZiAoIXRoaXMuaXNPcGVuKSB0aGlzLm9wZW5MaXN0KCk7XHJcbiAgICAgIGlmIChyZWdleENvZGUudGVzdChldmVudC5rZXkpKSB7XHJcbiAgICAgICAgdmFsdWUgKz0gZXZlbnQua2V5O1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChldmVudC5rZXkgPT09ICdCYWNrc3BhY2UnKSB7XHJcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5zbGljZSgwLCAtMSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5zZWxlY3RPcHRpb25XaXRoS2V5KHZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZVZhbGlkaXR5KCk6IHZvaWQge1xyXG4gICAgaGFuZGxlVmFsaWRpdHkodGhpcy5jb250cm9sKCkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3VsZFNob3dFcnJvcigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBzaG93RXJyb3IodGhpcy5jb250cm9sKCkpO1xyXG4gIH1cclxufVxyXG4iLCI8Ym1iLWlucHV0LXZhbGlkYXRvclxyXG4gIGNsYXNzPVwiYm1iX2Ryb3Bkb3duXCJcclxuICBbbmFtZV09XCJuYW1lKClcIlxyXG4gIFt2YWx1ZV09XCJnZXRWYWxpZEluaXRpYWxWYWx1ZXMoKVwiXHJcbiAgW2xhYmVsXT1cImxhYmVsKCkhXCJcclxuICBbZXJyb3JNZXNzYWdlXT1cImVycm9yTWVzc2FnZSgpXCJcclxuICBbaGVscGVyTWVzc2FnZV09XCJoZWxwZXJUZXh0KClcIlxyXG4gIFtpc1JlcXVpcmVkXT1cInJlcXVpcmVkKClcIlxyXG4gIFtpc0Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxyXG4gIFtjb250cm9sXT1cImNvbnRyb2woKVwiXHJcbiAgW3Nob3dFcnJvcl09XCJzaG91bGRTaG93RXJyb3JcIlxyXG4gIFt0b29sdGlwXT1cInRvb2x0aXAoKVwiXHJcbiAgW3Rvb2x0aXBQb3NpdGlvbl09XCJ0b29sdGlwUG9zaXRpb24oKVwiXHJcbiAgY2xpY2tPdXRzaWRlXHJcbiAgKGNsaWNrT3V0c2lkZSk9XCJjbG9zZUxpc3QoKVwiXHJcbiAgW2lucHV0SWRdPVwiaW5wdXRJZCgpXCJcclxuPlxyXG4gIDxibWItaW5wdXQtY29udGVudFxyXG4gICAgY2xhc3M9XCJibWJfZHJvcGRvd24tZmllbGRcIlxyXG4gICAgdHlwZT1cInRleHRcIlxyXG4gICAgW2lucHV0SWRdPVwiaW5wdXRJZCgpXCJcclxuICAgIFtuYW1lXT1cIm5hbWUoKVwiXHJcbiAgICBbaWNvbl09XCJnZXRJY29uKClcIlxyXG4gICAgW2NvbnRyb2xdPVwic2VsZWN0aW9uQ29udHJvbFwiXHJcbiAgICBbaXNSZWFkT25seV09XCIhaXNGaWx0ZXJhYmxlKCkgfHwgaXNNdWx0aVNlbGVjdCgpXCJcclxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpXCJcclxuICAgIFtpc0Vycm9yXT1cInNob3VsZFNob3dFcnJvclwiXHJcbiAgICBbaXNEaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcclxuICAgIChjbGljayk9XCJvcGVuTGlzdCgpXCJcclxuICAgIChvbktleURvd24pPVwib25LZXlEb3duKCRldmVudClcIlxyXG4gICAgKG9uQmx1cik9XCJoYW5kbGVWYWxpZGl0eSgpXCJcclxuICAgIChvbkZvY3VzKT1cImhhbmRsZUZvY3VzKCRldmVudClcIlxyXG4gID5cclxuICAgIDxuZy10ZW1wbGF0ZSAjY3VzdG9tQ29udGVudD5cclxuICAgICAgPGxhYmVsIFtodG1sRm9yXT1cImlucHV0SWQoKVwiPlxyXG4gICAgICAgIDxibWItaWNvblxyXG4gICAgICAgICAgY2xhc3M9XCJibWJfZmllbGQtYWN0aW9uc1wiXHJcbiAgICAgICAgICBpY29uPVwia2V5Ym9hcmRfYXJyb3dfZG93blwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib3Blbkxpc3QoKVwiXHJcbiAgICAgICAgICBbc2l6ZV09XCIyNFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9sYWJlbD5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9ibWItaW5wdXQtY29udGVudD5cclxuICA8Ym1iLWRyb3Bkb3duLWNvbnRlbnRcclxuICAgIGNsYXNzPVwiYm1iX2Ryb3Bkb3duLWxpc3RcIlxyXG4gICAgW3NlbGVjdGVkT3B0aW9uXT1cImNvbnRyb2woKS52YWx1ZVwiXHJcbiAgICBbaXNLZXlib2FyZEV2ZW50XT1cImlzS2V5Ym9hcmRFdmVudFwiXHJcbiAgICBbKGl0ZW1zKV09XCJmaWx0ZXJlZE9wdGlvbnNcIlxyXG4gICAgWyhpc09wZW4pXT1cImlzT3BlblwiXHJcbiAgLz5cclxuICA8aW5wdXRcclxuICAgIGhpZGRlblxyXG4gICAgdHlwZT1cInRleHRcIlxyXG4gICAgW2lkXT1cImdldFVVSUQoJ2lkJylcIlxyXG4gICAgW25hbWVdPVwibmFtZSgpXCJcclxuICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sKClcIlxyXG4gIC8+XHJcbjwvYm1iLWlucHV0LXZhbGlkYXRvcj5cclxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, input, ChangeDetectionStrategy, ViewEncapsulation, ViewChild, output, } from '@angular/core';
|
|
1
|
+
import { Component, input, ChangeDetectionStrategy, ViewEncapsulation, ViewChild, output, effect, } from '@angular/core';
|
|
2
2
|
import { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';
|
|
3
3
|
import { CommonModule } from '@angular/common';
|
|
4
4
|
import { BmbIconComponent } from '../bmb-icon/bmb-icon.component';
|
|
@@ -15,24 +15,6 @@ import * as i1 from "@angular/material/dialog";
|
|
|
15
15
|
import * as i2 from "@angular/common";
|
|
16
16
|
import * as i3 from "@angular/forms";
|
|
17
17
|
export class BmbFilterCardComponent {
|
|
18
|
-
ngOnInit() {
|
|
19
|
-
this.controlTypes().forEach((controlType) => {
|
|
20
|
-
controlType.control.forEach((control) => {
|
|
21
|
-
if (control.type === 'radial') {
|
|
22
|
-
const controlName = this.filterForm.get(control.name);
|
|
23
|
-
if (controlName) {
|
|
24
|
-
controlName.setValue(control.checked ? control.label : controlName.value);
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
this.filterForm.addControl(control.name, new FormControl(control.checked ? control.label : ''));
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
this.filterForm.addControl(control.name, new FormControl(control.checked));
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
18
|
constructor(matDialog) {
|
|
37
19
|
this.matDialog = matDialog;
|
|
38
20
|
this.modalTitle = input('');
|
|
@@ -51,6 +33,24 @@ export class BmbFilterCardComponent {
|
|
|
51
33
|
search: new FormControl(''),
|
|
52
34
|
selectedDropdown: new FormControl(''),
|
|
53
35
|
});
|
|
36
|
+
effect(() => {
|
|
37
|
+
this.controlTypes().forEach((controlType) => {
|
|
38
|
+
controlType.control.forEach((control) => {
|
|
39
|
+
if (control.type === 'radial') {
|
|
40
|
+
const controlName = this.filterForm.get(control.name);
|
|
41
|
+
if (controlName) {
|
|
42
|
+
controlName.setValue(control.checked ? control.label : controlName.value);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
this.filterForm.addControl(control.name, new FormControl(control.checked ? control.label : ''));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
this.filterForm.addControl(control.name, new FormControl(control.checked));
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
54
|
}
|
|
55
55
|
openModalComponent() {
|
|
56
56
|
const data = {
|
|
@@ -131,7 +131,7 @@ export class BmbFilterCardComponent {
|
|
|
131
131
|
this.filterForm.get('search')?.setValue(event);
|
|
132
132
|
}
|
|
133
133
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BmbFilterCardComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
134
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BmbFilterCardComponent, isStandalone: true, selector: "bmb-filter-card", inputs: { modalTitle: { classPropertyName: "modalTitle", publicName: "modalTitle", isSignal: true, isRequired: false, transformFunction: null }, primaryBtnLabel: { classPropertyName: "primaryBtnLabel", publicName: "primaryBtnLabel", isSignal: true, isRequired: false, transformFunction: null }, secondaryBtnLabel: { classPropertyName: "secondaryBtnLabel", publicName: "secondaryBtnLabel", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, placeholderSearch: { classPropertyName: "placeholderSearch", publicName: "placeholderSearch", isSignal: true, isRequired: false, transformFunction: null }, controlTypes: { classPropertyName: "controlTypes", publicName: "controlTypes", isSignal: true, isRequired: false, transformFunction: null }, inLine: { classPropertyName: "inLine", publicName: "inLine", isSignal: true, isRequired: false, transformFunction: null }, showDropdown: { classPropertyName: "showDropdown", publicName: "showDropdown", isSignal: true, isRequired: false, transformFunction: null }, dropdownOptions: { classPropertyName: "dropdownOptions", publicName: "dropdownOptions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { applyFilters: "applyFilters", resetFilters: "resetFilters" }, viewQueries: [{ propertyName: "modalTemplate", first: true, predicate: ["modalTemplate"], descendants: true }], ngImport: i0, template: "<div class=\"bmb_filter_card\">\n <ng-template #modalTemplate>\n <div class=\"bmb_filter_card-modal\">\n <form [formGroup]=\"filterForm\">\n @if (showDropdown()) {\n <bmb-dropdown\n [placeholder]=\"placeholderSearch()\"\n [options]=\"dropdownOptions()\"\n [control]=\"getFormControl('search')\"\n (onValueChange)=\"onValueChange($event)\"\n />\n } @else {\n <bmb-input\n [placeholder]=\"placeholderSearch()\"\n [icon]=\"'search'\"\n [appearance]=\"'normal'\"\n [control]=\"getFormControl('search')\"\n [isClearable]=\"true\"\n />\n }\n @for (controlType of controlTypes(); track $index) {\n <h4 class=\"bmb_filter_card-title\">{{ controlType.title }}</h4>\n <div class=\"bmb_filter_card-control\">\n @for (control of controlType.control; track $index) {\n @switch (control.type) {\n @case (\"tag\") {\n <bmb-tag\n [text]=\"control.label\"\n [dismissible]=\"false\"\n [activityTag]=\"\n filterForm.get(control.name)?.value === control.label\n \"\n (clickedTag)=\"onControlChange(control, $event)\"\n />\n }\n @case (\"radial\") {\n <bmb-radial\n [name]=\"control.name\"\n [checked]=\"\n filterForm.get(control.name)?.value === control.label\n \"\n [label]=\"control.label\"\n (change)=\"onControlChange(control, $event)\"\n />\n }\n @case (\"checkbox\") {\n <bmb-checkbox\n [name]=\"control.name\"\n [checked]=\"filterForm.get(control.name)?.value\"\n [label]=\"control.label\"\n (change)=\"onControlChange(control, $event)\"\n />\n }\n @case (\"switch\") {\n <bmb-switch\n [rightText]=\"control.rightText ?? ''\"\n [isChecked]=\"filterForm.get(control.name)?.value === true\"\n (change)=\"onControlChange(control, $event)\"\n />\n }\n }\n }\n </div>\n }\n @if (inLine()) {\n <footer class=\"bmb_filter_card-footer\">\n <button bmbButton appearance=\"secondary-outlined\" type=\"reset\">\n {{ secondaryBtnLabel() }}\n </button>\n <button bmbButton (click)=\"onSubmit()\" type=\"submit\">\n {{ primaryBtnLabel() }}\n </button>\n </footer>\n }\n </form>\n </div>\n </ng-template>\n\n @if (inLine()) {\n <ng-container [ngTemplateOutlet]=\"modalTemplate\" />\n } @else {\n <button\n type=\"button\"\n class=\"bmb_filter_card-button\"\n (click)=\"openModalComponent()\"\n type=\"button\"\n >\n <bmb-icon [icon]=\"icon()\" alt=\"Filter icon\" />\n </button>\n }\n</div>\n", styles: ["@font-face{font-family:Poppins-Thin;font-style:normal;font-weight:100;src:url(/assets/fonts/Poppins/Poppins-Thin.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Medium;font-style:normal;font-weight:500;src:url(/assets/fonts/Poppins/Poppins-Medium.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Semibold;font-style:normal;font-weight:600;src:url(/assets/fonts/Poppins/Poppins-SemiBold.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb_filter_card-button{height:1.75rem;width:1.75rem;font-size:1.75rem;color:RGBA(var(--color-charade-950))}.bmb_filter_card-title{font-family:Poppins-Medium,sans-serif;font-size:.875rem;margin:1.5rem 0 1rem;color:RGBA(var(--color-charade-700))}.bmb_filter_card-control{border-bottom:.0625rem solid RGBA(var(--color-charade-500));padding-bottom:.625rem}@media (min-width: 768px){.bmb_filter_card-control{display:flex;flex-wrap:wrap;gap:var(--bmb-spacing-s)}}.bmb_filter_card-footer{padding-top:1rem;display:flex;flex-wrap:wrap;flex-flow:column;justify-content:center;gap:1rem}@media (min-width: 768px){.bmb_filter_card-footer{flex-flow:row}.bmb_filter_card-footer .bmb_btn-rounded{width:50%}}[data-theme=dark] .bmb_filter_card-button,.storybook-dark-theme .bmb_filter_card-button{color:RGBA(var(--color-charade-50))}[data-theme=dark] .bmb_filter_card-title,.storybook-dark-theme .bmb_filter_card-title{color:RGBA(var(--color-charade-200))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: BmbIconComponent, selector: "bmb-icon", inputs: ["icon", "materialIcon", "styleIcon", "isFill", "fontWeight", "size", "alt", "dotNotification"] }, { kind: "component", type: BmbInputComponent, selector: "bmb-input", inputs: ["label", "type", "placeholder", "icon", "appearance", "errorMessage", "helperMessage", "disabled", "isRequired", "name", "spellcheck", "jsonFormat", "heightTextArea", "maxlength", "minlength", "pattern", "size", "max", "min", "id", "value", "autocomplete", "tooltip", "rows", "showMaxTextLength", "additionalAction", "tooltipPosition", "isClearable", "customValidation", "showError", "control"], outputs: ["showErrorChange", "controlChange", "isFocus", "isBlur", "onChange", "onKeyDown"] }, { kind: "component", type: BmbSwitchComponent, selector: "bmb-switch", inputs: ["leftText", "leftIcon", "rightText", "rightIcon", "isChecked", "ariaLabel", "id", "disabled", "name", "inputId", "control"], outputs: ["isCheckedChange", "inputIdChange", "controlChange", "change"] }, { kind: "component", type: BmbRadialComponent, selector: "bmb-radial", inputs: ["id", "checked", "disabled", "value", "name", "label", "labelPosition", "ariaDescribedby", "ariaLabel", "ariaLabelledby", "required", "errorMessage", "helperMessage", "showError", "control", "inputId"], outputs: ["showErrorChange", "controlChange", "inputIdChange", "change", "onKeyDown"] }, { kind: "component", type: BmbCheckboxComponent, selector: "bmb-checkbox", inputs: ["name", "id", "disabled", "required", "value", "label", "labelPosition", "ariaDescribedby", "ariaLabel", "ariaLabelledby", "errorMessage", "helperMessage", "control", "checked", "showError", "indeterminate", "inputId"], outputs: ["controlChange", "checkedChange", "showErrorChange", "indeterminateChange", "inputIdChange", "change"] }, { kind: "component", type: BmbDropdownComponent, selector: "bmb-dropdown", inputs: ["required", "showIcon", "placeholder", "icon", "options", "helperText", "errorMessage", "label", "name", "preferredOptions", "isMultiSelect", "tooltip", "tooltipPosition", "disabled", "value", "isFilterable", "inputId", "control"], outputs: ["controlChange", "onValueChange", "onFocus"] }, { kind: "directive", type: BmbButtonDirective, selector: "[bmbButton]", inputs: ["icon", "iconSize", "position", "case", "appearance", "size", "isToggleActive", "enableButtonToggle", "isRounded", "isMobile", "iconAlt"] }, { kind: "component", type: BmbTagComponent, selector: "bmb-tag", inputs: ["appearance", "text", "grouped", "dismissible", "rounded", "activityTag", "isDisabled"], outputs: ["closedTag", "clickedTag"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
134
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BmbFilterCardComponent, isStandalone: true, selector: "bmb-filter-card", inputs: { modalTitle: { classPropertyName: "modalTitle", publicName: "modalTitle", isSignal: true, isRequired: false, transformFunction: null }, primaryBtnLabel: { classPropertyName: "primaryBtnLabel", publicName: "primaryBtnLabel", isSignal: true, isRequired: false, transformFunction: null }, secondaryBtnLabel: { classPropertyName: "secondaryBtnLabel", publicName: "secondaryBtnLabel", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, placeholderSearch: { classPropertyName: "placeholderSearch", publicName: "placeholderSearch", isSignal: true, isRequired: false, transformFunction: null }, controlTypes: { classPropertyName: "controlTypes", publicName: "controlTypes", isSignal: true, isRequired: false, transformFunction: null }, inLine: { classPropertyName: "inLine", publicName: "inLine", isSignal: true, isRequired: false, transformFunction: null }, showDropdown: { classPropertyName: "showDropdown", publicName: "showDropdown", isSignal: true, isRequired: false, transformFunction: null }, dropdownOptions: { classPropertyName: "dropdownOptions", publicName: "dropdownOptions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { applyFilters: "applyFilters", resetFilters: "resetFilters" }, viewQueries: [{ propertyName: "modalTemplate", first: true, predicate: ["modalTemplate"], descendants: true }], ngImport: i0, template: "<div class=\"bmb_filter_card\">\r\n <ng-template #modalTemplate>\r\n <div class=\"bmb_filter_card-modal\">\r\n <form [formGroup]=\"filterForm\">\r\n @if (showDropdown()) {\r\n <bmb-dropdown\r\n [placeholder]=\"placeholderSearch()\"\r\n [options]=\"dropdownOptions()\"\r\n [control]=\"getFormControl('search')\"\r\n (onValueChange)=\"onValueChange($event)\"\r\n />\r\n } @else {\r\n <bmb-input\r\n [placeholder]=\"placeholderSearch()\"\r\n [icon]=\"'search'\"\r\n [appearance]=\"'normal'\"\r\n [control]=\"getFormControl('search')\"\r\n [isClearable]=\"true\"\r\n />\r\n }\r\n @for (controlType of controlTypes(); track $index) {\r\n <h4 class=\"bmb_filter_card-title\">{{ controlType.title }}</h4>\r\n <div class=\"bmb_filter_card-control\">\r\n @for (control of controlType.control; track $index) {\r\n @switch (control.type) {\r\n @case (\"tag\") {\r\n <bmb-tag\r\n [text]=\"control.label\"\r\n [dismissible]=\"false\"\r\n [isActive]=\"storedValues[control.name]?.checked ?? false\"\r\n (clickedTag)=\"onControlChange(control, $event)\"\r\n />\r\n }\r\n @case (\"radial\") {\r\n <bmb-radial\r\n [name]=\"control.name\"\r\n [checked]=\"\r\n filterForm.get(control.name)?.value === control.label\r\n \"\r\n [label]=\"control.label\"\r\n (change)=\"onControlChange(control, $event)\"\r\n />\r\n }\r\n @case (\"checkbox\") {\r\n <bmb-checkbox\r\n [name]=\"control.name\"\r\n [checked]=\"filterForm.get(control.name)?.value\"\r\n [label]=\"control.label\"\r\n (change)=\"onControlChange(control, $event)\"\r\n />\r\n }\r\n @case (\"switch\") {\r\n <bmb-switch\r\n [rightText]=\"control.rightText ?? ''\"\r\n [isChecked]=\"filterForm.get(control.name)?.value === true\"\r\n (change)=\"onControlChange(control, $event)\"\r\n />\r\n }\r\n }\r\n }\r\n </div>\r\n }\r\n @if (inLine()) {\r\n <footer class=\"bmb_filter_card-footer\">\r\n <button bmbButton appearance=\"secondary-outlined\" type=\"reset\">\r\n {{ secondaryBtnLabel() }}\r\n </button>\r\n <button bmbButton (click)=\"onSubmit()\" type=\"submit\">\r\n {{ primaryBtnLabel() }}\r\n </button>\r\n </footer>\r\n }\r\n </form>\r\n </div>\r\n </ng-template>\r\n\r\n @if (inLine()) {\r\n <ng-container [ngTemplateOutlet]=\"modalTemplate\" />\r\n } @else {\r\n <button\r\n type=\"button\"\r\n class=\"bmb_filter_card-button\"\r\n (click)=\"openModalComponent()\"\r\n type=\"button\"\r\n >\r\n <bmb-icon [icon]=\"icon()\" alt=\"Filter icon\" />\r\n </button>\r\n }\r\n</div>\r\n", styles: ["@font-face{font-family:Poppins-Thin;font-style:normal;font-weight:100;src:url(/assets/fonts/Poppins/Poppins-Thin.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Medium;font-style:normal;font-weight:500;src:url(/assets/fonts/Poppins/Poppins-Medium.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Semibold;font-style:normal;font-weight:600;src:url(/assets/fonts/Poppins/Poppins-SemiBold.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb_filter_card-button{height:1.75rem;width:1.75rem;font-size:1.75rem;color:RGBA(var(--color-charade-950))}.bmb_filter_card-title{font-family:Poppins-Medium,sans-serif;font-size:.875rem;margin:1.5rem 0 1rem;color:RGBA(var(--color-charade-700))}.bmb_filter_card-control{border-bottom:.0625rem solid RGBA(var(--color-charade-500));padding-bottom:.625rem}@media (min-width: 768px){.bmb_filter_card-control{display:flex;flex-wrap:wrap;gap:var(--bmb-spacing-s)}}.bmb_filter_card-footer{padding-top:1rem;display:flex;flex-wrap:wrap;flex-flow:column;justify-content:center;gap:1rem}@media (min-width: 768px){.bmb_filter_card-footer{flex-flow:row}.bmb_filter_card-footer .bmb_btn-rounded{width:50%}}[data-theme=dark] .bmb_filter_card-button,.storybook-dark-theme .bmb_filter_card-button{color:RGBA(var(--color-charade-50))}[data-theme=dark] .bmb_filter_card-title,.storybook-dark-theme .bmb_filter_card-title{color:RGBA(var(--color-charade-200))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: BmbIconComponent, selector: "bmb-icon", inputs: ["icon", "materialIcon", "styleIcon", "isFill", "fontWeight", "size", "alt", "dotNotification"] }, { kind: "component", type: BmbInputComponent, selector: "bmb-input", inputs: ["label", "type", "placeholder", "icon", "appearance", "errorMessage", "helperMessage", "disabled", "isRequired", "name", "spellcheck", "jsonFormat", "heightTextArea", "maxlength", "minlength", "pattern", "size", "max", "min", "id", "value", "autocomplete", "tooltip", "rows", "showMaxTextLength", "additionalAction", "tooltipPosition", "isClearable", "customValidation", "showError", "control"], outputs: ["showErrorChange", "controlChange", "isFocus", "isBlur", "onChange", "onKeyDown"] }, { kind: "component", type: BmbSwitchComponent, selector: "bmb-switch", inputs: ["leftText", "leftIcon", "rightText", "rightIcon", "isChecked", "ariaLabel", "id", "disabled", "name", "inputId", "control"], outputs: ["isCheckedChange", "inputIdChange", "controlChange", "change"] }, { kind: "component", type: BmbRadialComponent, selector: "bmb-radial", inputs: ["id", "checked", "disabled", "value", "name", "label", "labelPosition", "ariaDescribedby", "ariaLabel", "ariaLabelledby", "required", "errorMessage", "helperMessage", "showError", "control", "inputId"], outputs: ["showErrorChange", "controlChange", "inputIdChange", "change", "onKeyDown"] }, { kind: "component", type: BmbCheckboxComponent, selector: "bmb-checkbox", inputs: ["name", "id", "disabled", "required", "value", "label", "labelPosition", "ariaDescribedby", "ariaLabel", "ariaLabelledby", "errorMessage", "helperMessage", "control", "checked", "showError", "indeterminate", "inputId"], outputs: ["controlChange", "checkedChange", "showErrorChange", "indeterminateChange", "inputIdChange", "change"] }, { kind: "component", type: BmbDropdownComponent, selector: "bmb-dropdown", inputs: ["required", "showIcon", "placeholder", "icon", "options", "helperText", "errorMessage", "label", "name", "preferredOptions", "isMultiSelect", "tooltip", "tooltipPosition", "disabled", "value", "isFilterable", "inputId", "control"], outputs: ["controlChange", "onValueChange", "onFocus"] }, { kind: "directive", type: BmbButtonDirective, selector: "[bmbButton]", inputs: ["icon", "iconSize", "position", "case", "appearance", "size", "isToggleActive", "enableButtonToggle", "isRounded", "isMobile", "iconAlt"] }, { kind: "component", type: BmbTagComponent, selector: "bmb-tag", inputs: ["appearance", "text", "grouped", "dismissible", "rounded", "activityTag", "isDisabled", "isActive"], outputs: ["closedTag", "clickedTag"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
135
135
|
}
|
|
136
136
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BmbFilterCardComponent, decorators: [{
|
|
137
137
|
type: Component,
|
|
@@ -146,9 +146,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
146
146
|
BmbDropdownComponent,
|
|
147
147
|
BmbButtonDirective,
|
|
148
148
|
BmbTagComponent,
|
|
149
|
-
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"bmb_filter_card\">\n <ng-template #modalTemplate>\n <div class=\"bmb_filter_card-modal\">\n <form [formGroup]=\"filterForm\">\n @if (showDropdown()) {\n <bmb-dropdown\n [placeholder]=\"placeholderSearch()\"\n [options]=\"dropdownOptions()\"\n [control]=\"getFormControl('search')\"\n (onValueChange)=\"onValueChange($event)\"\n />\n } @else {\n <bmb-input\n [placeholder]=\"placeholderSearch()\"\n [icon]=\"'search'\"\n [appearance]=\"'normal'\"\n [control]=\"getFormControl('search')\"\n [isClearable]=\"true\"\n />\n }\n @for (controlType of controlTypes(); track $index) {\n <h4 class=\"bmb_filter_card-title\">{{ controlType.title }}</h4>\n <div class=\"bmb_filter_card-control\">\n @for (control of controlType.control; track $index) {\n @switch (control.type) {\n @case (\"tag\") {\n <bmb-tag\n [text]=\"control.label\"\n [dismissible]=\"false\"\n [activityTag]=\"\n filterForm.get(control.name)?.value === control.label\n \"\n (clickedTag)=\"onControlChange(control, $event)\"\n />\n }\n @case (\"radial\") {\n <bmb-radial\n [name]=\"control.name\"\n [checked]=\"\n filterForm.get(control.name)?.value === control.label\n \"\n [label]=\"control.label\"\n (change)=\"onControlChange(control, $event)\"\n />\n }\n @case (\"checkbox\") {\n <bmb-checkbox\n [name]=\"control.name\"\n [checked]=\"filterForm.get(control.name)?.value\"\n [label]=\"control.label\"\n (change)=\"onControlChange(control, $event)\"\n />\n }\n @case (\"switch\") {\n <bmb-switch\n [rightText]=\"control.rightText ?? ''\"\n [isChecked]=\"filterForm.get(control.name)?.value === true\"\n (change)=\"onControlChange(control, $event)\"\n />\n }\n }\n }\n </div>\n }\n @if (inLine()) {\n <footer class=\"bmb_filter_card-footer\">\n <button bmbButton appearance=\"secondary-outlined\" type=\"reset\">\n {{ secondaryBtnLabel() }}\n </button>\n <button bmbButton (click)=\"onSubmit()\" type=\"submit\">\n {{ primaryBtnLabel() }}\n </button>\n </footer>\n }\n </form>\n </div>\n </ng-template>\n\n @if (inLine()) {\n <ng-container [ngTemplateOutlet]=\"modalTemplate\" />\n } @else {\n <button\n type=\"button\"\n class=\"bmb_filter_card-button\"\n (click)=\"openModalComponent()\"\n type=\"button\"\n >\n <bmb-icon [icon]=\"icon()\" alt=\"Filter icon\" />\n </button>\n }\n</div>\n", styles: ["@font-face{font-family:Poppins-Thin;font-style:normal;font-weight:100;src:url(/assets/fonts/Poppins/Poppins-Thin.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Medium;font-style:normal;font-weight:500;src:url(/assets/fonts/Poppins/Poppins-Medium.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Semibold;font-style:normal;font-weight:600;src:url(/assets/fonts/Poppins/Poppins-SemiBold.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb_filter_card-button{height:1.75rem;width:1.75rem;font-size:1.75rem;color:RGBA(var(--color-charade-950))}.bmb_filter_card-title{font-family:Poppins-Medium,sans-serif;font-size:.875rem;margin:1.5rem 0 1rem;color:RGBA(var(--color-charade-700))}.bmb_filter_card-control{border-bottom:.0625rem solid RGBA(var(--color-charade-500));padding-bottom:.625rem}@media (min-width: 768px){.bmb_filter_card-control{display:flex;flex-wrap:wrap;gap:var(--bmb-spacing-s)}}.bmb_filter_card-footer{padding-top:1rem;display:flex;flex-wrap:wrap;flex-flow:column;justify-content:center;gap:1rem}@media (min-width: 768px){.bmb_filter_card-footer{flex-flow:row}.bmb_filter_card-footer .bmb_btn-rounded{width:50%}}[data-theme=dark] .bmb_filter_card-button,.storybook-dark-theme .bmb_filter_card-button{color:RGBA(var(--color-charade-50))}[data-theme=dark] .bmb_filter_card-title,.storybook-dark-theme .bmb_filter_card-title{color:RGBA(var(--color-charade-200))}\n"] }]
|
|
149
|
+
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"bmb_filter_card\">\r\n <ng-template #modalTemplate>\r\n <div class=\"bmb_filter_card-modal\">\r\n <form [formGroup]=\"filterForm\">\r\n @if (showDropdown()) {\r\n <bmb-dropdown\r\n [placeholder]=\"placeholderSearch()\"\r\n [options]=\"dropdownOptions()\"\r\n [control]=\"getFormControl('search')\"\r\n (onValueChange)=\"onValueChange($event)\"\r\n />\r\n } @else {\r\n <bmb-input\r\n [placeholder]=\"placeholderSearch()\"\r\n [icon]=\"'search'\"\r\n [appearance]=\"'normal'\"\r\n [control]=\"getFormControl('search')\"\r\n [isClearable]=\"true\"\r\n />\r\n }\r\n @for (controlType of controlTypes(); track $index) {\r\n <h4 class=\"bmb_filter_card-title\">{{ controlType.title }}</h4>\r\n <div class=\"bmb_filter_card-control\">\r\n @for (control of controlType.control; track $index) {\r\n @switch (control.type) {\r\n @case (\"tag\") {\r\n <bmb-tag\r\n [text]=\"control.label\"\r\n [dismissible]=\"false\"\r\n [isActive]=\"storedValues[control.name]?.checked ?? false\"\r\n (clickedTag)=\"onControlChange(control, $event)\"\r\n />\r\n }\r\n @case (\"radial\") {\r\n <bmb-radial\r\n [name]=\"control.name\"\r\n [checked]=\"\r\n filterForm.get(control.name)?.value === control.label\r\n \"\r\n [label]=\"control.label\"\r\n (change)=\"onControlChange(control, $event)\"\r\n />\r\n }\r\n @case (\"checkbox\") {\r\n <bmb-checkbox\r\n [name]=\"control.name\"\r\n [checked]=\"filterForm.get(control.name)?.value\"\r\n [label]=\"control.label\"\r\n (change)=\"onControlChange(control, $event)\"\r\n />\r\n }\r\n @case (\"switch\") {\r\n <bmb-switch\r\n [rightText]=\"control.rightText ?? ''\"\r\n [isChecked]=\"filterForm.get(control.name)?.value === true\"\r\n (change)=\"onControlChange(control, $event)\"\r\n />\r\n }\r\n }\r\n }\r\n </div>\r\n }\r\n @if (inLine()) {\r\n <footer class=\"bmb_filter_card-footer\">\r\n <button bmbButton appearance=\"secondary-outlined\" type=\"reset\">\r\n {{ secondaryBtnLabel() }}\r\n </button>\r\n <button bmbButton (click)=\"onSubmit()\" type=\"submit\">\r\n {{ primaryBtnLabel() }}\r\n </button>\r\n </footer>\r\n }\r\n </form>\r\n </div>\r\n </ng-template>\r\n\r\n @if (inLine()) {\r\n <ng-container [ngTemplateOutlet]=\"modalTemplate\" />\r\n } @else {\r\n <button\r\n type=\"button\"\r\n class=\"bmb_filter_card-button\"\r\n (click)=\"openModalComponent()\"\r\n type=\"button\"\r\n >\r\n <bmb-icon [icon]=\"icon()\" alt=\"Filter icon\" />\r\n </button>\r\n }\r\n</div>\r\n", styles: ["@font-face{font-family:Poppins-Thin;font-style:normal;font-weight:100;src:url(/assets/fonts/Poppins/Poppins-Thin.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Medium;font-style:normal;font-weight:500;src:url(/assets/fonts/Poppins/Poppins-Medium.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Semibold;font-style:normal;font-weight:600;src:url(/assets/fonts/Poppins/Poppins-SemiBold.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb_filter_card-button{height:1.75rem;width:1.75rem;font-size:1.75rem;color:RGBA(var(--color-charade-950))}.bmb_filter_card-title{font-family:Poppins-Medium,sans-serif;font-size:.875rem;margin:1.5rem 0 1rem;color:RGBA(var(--color-charade-700))}.bmb_filter_card-control{border-bottom:.0625rem solid RGBA(var(--color-charade-500));padding-bottom:.625rem}@media (min-width: 768px){.bmb_filter_card-control{display:flex;flex-wrap:wrap;gap:var(--bmb-spacing-s)}}.bmb_filter_card-footer{padding-top:1rem;display:flex;flex-wrap:wrap;flex-flow:column;justify-content:center;gap:1rem}@media (min-width: 768px){.bmb_filter_card-footer{flex-flow:row}.bmb_filter_card-footer .bmb_btn-rounded{width:50%}}[data-theme=dark] .bmb_filter_card-button,.storybook-dark-theme .bmb_filter_card-button{color:RGBA(var(--color-charade-50))}[data-theme=dark] .bmb_filter_card-title,.storybook-dark-theme .bmb_filter_card-title{color:RGBA(var(--color-charade-200))}\n"] }]
|
|
150
150
|
}], ctorParameters: () => [{ type: i1.MatDialog }], propDecorators: { modalTemplate: [{
|
|
151
151
|
type: ViewChild,
|
|
152
152
|
args: ['modalTemplate']
|
|
153
153
|
}] } });
|
|
154
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm1iLWZpbHRlci1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItZmlsdGVyLWNhcmQvYm1iLWZpbHRlci1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItZmlsdGVyLWNhcmQvYm1iLWZpbHRlci1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFFakIsU0FBUyxFQUNULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUdyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVyRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NB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bmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBvdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCbWJJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLWljb24vYm1iLWljb24uY29tcG9uZW50JztcbmltcG9ydCB7IEJtYlN3aXRjaENvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1zd2l0Y2gvYm1iLXN3aXRjaC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQm1iUmFkaWFsQ29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLXJhZGlhbC9ibWItcmFkaWFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCbWJDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1jaGVja2JveC9ibWItY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCB7IEJtYk1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLW1vZGFsL2JtYi1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1vZGFsRGF0YUNvbmZpZyB9IGZyb20gJy4uL2JtYi1tb2RhbC9ibWItbW9kYWwuaW50ZXJmYWNlJztcbmltcG9ydCB7IEJtYklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLWlucHV0L2JtYi1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSUJtYkNvbnRyb2xUeXBlIH0gZnJvbSAnLi9ibWItZmlsdGVyLWNhcmQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEJtYkJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvYm1iLWJ1dHRvbi9idXR0b24uZGlyZWN0aXZlJztcbmltcG9ydCB7IEJtYkRyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLWRyb3Bkb3duL2JtYi1kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQm1iVGFnQ29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLXRhZ3MvYm1iLXRhZ3MuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYm1iLWZpbHRlci1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JtYi1maWx0ZXItY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9ibWItZmlsdGVyLWNhcmQuY29tcG9uZW50LnNjc3MnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgQm1iSWNvbkNvbXBvbmVudCxcbiAgICBCbWJJbnB1dENvbXBvbmVudCxcbiAgICBCbWJTd2l0Y2hDb21wb25lbnQsXG4gICAgQm1iUmFkaWFsQ29tcG9uZW50LFxuICAgIEJtYkNoZWNrYm94Q29tcG9uZW50LFxuICAgIEJtYkRyb3Bkb3duQ29tcG9uZW50LFxuICAgIEJtYkJ1dHRvbkRpcmVjdGl2ZSxcbiAgICBCbWJUYWdDb21wb25lbnQsXG4gIF0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBCbWJGaWx0ZXJDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgbW9kYWxUaXRsZSA9IGlucHV0PHN0cmluZz4oJycpO1xuICBwcmltYXJ5QnRuTGFiZWwgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgc2Vjb25kYXJ5QnRuTGFiZWwgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgaWNvbiA9IGlucHV0PHN0cmluZz4oJycpO1xuICBwbGFjZWhvbGRlclNlYXJjaCA9IGlucHV0PHN0cmluZz4oJycpO1xuICBjb250cm9sVHlwZXMgPSBpbnB1dDxJQm1iQ29udHJvbFR5cGVbXT4oW10pO1xuICBzdG9yZWRWYWx1ZXM6IHsgW25hbWU6IHN0cmluZ106IGFueSB9ID0ge307XG4gIGluTGluZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgc2hvd0Ryb3Bkb3duID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICBkcm9wZG93bk9wdGlvbnMgPSBpbnB1dDxzdHJpbmdbXT4oW10pO1xuXG4gIGFwcGx5RmlsdGVycyA9IG91dHB1dDx2b2lkPigpO1xuICByZXNldEZpbHRlcnMgPSBvdXRwdXQ8dm9pZD4oKTtcblxuICBmaWx0ZXJGb3JtOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHtcbiAgICBzZWFyY2g6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KCcnKSxcbiAgICBzZWxlY3RlZERyb3Bkb3duOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nPignJyksXG4gIH0pO1xuXG4gIEBWaWV3Q2hpbGQoJ21vZGFsVGVtcGxhdGUnKSBtb2RhbFRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2xUeXBlcygpLmZvckVhY2goKGNvbnRyb2xUeXBlKSA9PiB7XG4gICAgICBjb250cm9sVHlwZS5jb250cm9sLmZvckVhY2goKGNvbnRyb2wpID0+IHtcbiAgICAgICAgaWYgKGNvbnRyb2wudHlwZSA9PT0gJ3JhZGlhbCcpIHtcbiAgICAgICAgICBjb25zdCBjb250cm9sTmFtZSA9IHRoaXMuZmlsdGVyRm9ybS5nZXQoY29udHJvbC5uYW1lKTtcbiAgICAgICAgICBpZiAoY29udHJvbE5hbWUpIHtcbiAgICAgICAgICAgIGNvbnRyb2xOYW1lLnNldFZhbHVlKFxuICAgICAgICAgICAgICBjb250cm9sLmNoZWNrZWQgPyBjb250cm9sLmxhYmVsIDogY29udHJvbE5hbWUudmFsdWUsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlckZvcm0uYWRkQ29udHJvbChcbiAgICAgICAgICAgICAgY29udHJvbC5uYW1lLFxuICAgICAgICAgICAgICBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nPihjb250cm9sLmNoZWNrZWQgPyBjb250cm9sLmxhYmVsIDogJycpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5maWx0ZXJGb3JtLmFkZENvbnRyb2woXG4gICAgICAgICAgICBjb250cm9sLm5hbWUsXG4gICAgICAgICAgICBuZXcgRm9ybUNvbnRyb2w8Ym9vbGVhbj4oY29udHJvbC5jaGVja2VkKSxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbWF0RGlhbG9nOiBNYXREaWFsb2cpIHt9XG5cbiAgb3Blbk1vZGFsQ29tcG9uZW50KCkge1xuICAgIGNvbnN0IGRhdGE6IE1vZGFsRGF0YUNvbmZpZyA9IHtcbiAgICAgIHRpdGxlOiB0aGlzLm1vZGFsVGl0bGUoKSxcbiAgICAgIHNpemU6ICdzbWFsbCcsXG4gICAgICBwcmltYXJ5QnRuTGFiZWw6IHRoaXMucHJpbWFyeUJ0bkxhYmVsKCksXG4gICAgICBzZWNvbmRhcnlCdG5MYWJlbDogdGhpcy5zZWNvbmRhcnlCdG5MYWJlbCgpLFxuICAgICAgY29udGVudDogdGhpcy5tb2RhbFRlbXBsYXRlLFxuICAgICAgcHJpbWFyeUFjdGlvbjogdGhpcy5vblN1Ym1pdC5iaW5kKHRoaXMpLFxuICAgICAgc2Vjb25kYXJ5QWN0aW9uOiB0aGlzLm9uUmVzZXQuYmluZCh0aGlzKSxcbiAgICAgIHNjcm9sbGFibGU6IHRydWUsXG4gICAgfTtcblxuICAgIHRoaXMubWF0RGlhbG9nLm9wZW4oQm1iTW9kYWxDb21wb25lbnQsIHsgZGF0YSB9KTtcbiAgfVxuXG4gIG9uQ29udHJvbENoYW5nZShjb250cm9sOiBhbnksIGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuZmlsdGVyRm9ybS5nZXQoY29udHJvbC5uYW1lKTtcbiAgICBpZiAoZm9ybUNvbnRyb2wpIHtcbiAgICAgIHN3aXRjaCAoY29udHJvbC50eXBlKSB7XG4gICAgICAgIGNhc2UgJ3N3aXRjaCc6XG4gICAgICAgICAgZm9ybUNvbnRyb2wuc2V0VmFsdWUoZXZlbnQpO1xuICAgICAgICAgIGNvbnN0IHN3aXRjaFZhbHVlID0ge1xuICAgICAgICAgICAgbmFtZTogY29udHJvbC5uYW1lLFxuICAgICAgICAgICAgbGFiZWw6IGNvbnRyb2wucmlnaHRUZXh0LFxuICAgICAgICAgICAgY2hlY2tlZDogZXZlbnQsXG4gICAgICAgICAgICB0eXBlOiBjb250cm9sLnR5cGUsXG4gICAgICAgICAgfTtcbiAgICAgICAgICB0aGlzLnN0b3JlZFZhbHVlc1tjb250cm9sLm5hbWVdID0gc3dpdGNoVmFsdWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2NoZWNrYm94JzpcbiAgICAgICAgICBmb3JtQ29udHJvbC5zZXRWYWx1ZShldmVudC50YXJnZXQuY2hlY2tlZCk7XG4gICAgICAgICAgY29uc3QgY2hlY2tib3hWYWx1ZSA9IHtcbiAgICAgICAgICAgIG5hbWU6IGNvbnRyb2wubmFtZSxcbiAgICAgICAgICAgIGxhYmVsOiBjb250cm9sLmxhYmVsLFxuICAgICAgICAgICAgY2hlY2tlZDogZXZlbnQudGFyZ2V0LmNoZWNrZWQsXG4gICAgICAgICAgICB0eXBlOiBjb250cm9sLnR5cGUsXG4gICAgICAgICAgfTtcbiAgICAgICAgICB0aGlzLnN0b3JlZFZhbHVlc1tjb250cm9sLm5hbWVdID0gY2hlY2tib3hWYWx1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncmFkaWFsJzpcbiAgICAgICAgICBmb3JtQ29udHJvbC5zZXRWYWx1ZShjb250cm9sLmxhYmVsKTtcbiAgICAgICAgICBjb25zdCByYWRpYWxWYWx1ZSA9IHtcbiAgICAgICAgICAgIGxhYmVsOiBjb250cm9sLmxhYmVsLFxuICAgICAgICAgICAgY2hlY2tlZDogZXZlbnQuY2hlY2tlZCxcbiAgICAgICAgICAgIG5hbWU6IGNvbnRyb2wubmFtZSxcbiAgICAgICAgICAgIHR5cGU6IGNvbnRyb2wudHlwZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHRoaXMuc3RvcmVkVmFsdWVzW2NvbnRyb2wubmFtZV0gPSByYWRpYWxWYWx1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDogLy9mb3IgdGhlIHRhZyBvcHRpb24gb3IgYW55IG90aGVyIG9wdGlvbiB0aGF0IGRvZXMgbm90IGhhdmUgYW4gYWN0aXZhdGVkIGNvbnRyb2xcbiAgICAgICAgICBmb3JtQ29udHJvbC5zZXRWYWx1ZShjb250cm9sLmxhYmVsKTtcbiAgICAgICAgICBjb25zdCBlbGVtZW50VmFsdWUgPSB7XG4gICAgICAgICAgICBsYWJlbDogY29udHJvbC5sYWJlbCxcbiAgICAgICAgICAgIGNoZWNrZWQ6ICF0aGlzLnN0b3JlZFZhbHVlc1tjb250cm9sLm5hbWVdPy5jaGVja2VkLFxuICAgICAgICAgICAgbmFtZTogY29udHJvbCxcbiAgICAgICAgICAgIHR5cGU6IGNvbnRyb2wudHlwZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHRoaXMuc3RvcmVkVmFsdWVzW2NvbnRyb2wubmFtZV0gPSBlbGVtZW50VmFsdWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25TdWJtaXQoKSB7XG4gICAgY29uc3QgZm9ybURhdGE6IGFueSA9IHt9O1xuICAgIE9iamVjdC5rZXlzKHRoaXMuc3RvcmVkVmFsdWVzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGZvcm1EYXRhW2tleV0gPSB0aGlzLnN0b3JlZFZhbHVlc1trZXldO1xuICAgIH0pO1xuICAgIGZvcm1EYXRhLnNlYXJjaCA9IHRoaXMuZmlsdGVyRm9ybS5nZXQoJ3NlYXJjaCcpPy52YWx1ZTtcbiAgICB0aGlzLmFwcGx5RmlsdGVycy5lbWl0KGZvcm1EYXRhKTtcbiAgfVxuXG4gIG9uUmVzZXQoKSB7XG4gICAgdGhpcy5maWx0ZXJGb3JtLnJlc2V0KCk7XG4gICAgdGhpcy5yZXNldEZpbHRlcnMuZW1pdCgpO1xuICB9XG5cbiAgZ2V0Rm9ybUNvbnRyb2woc2VhcmNoOiBzdHJpbmcpOiBGb3JtQ29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyRm9ybS5nZXQoc2VhcmNoKSBhcyBGb3JtQ29udHJvbDtcbiAgfVxuXG4gIG9uVmFsdWVDaGFuZ2UoZXZlbnQ6IHN0cmluZykge1xuICAgIHRoaXMuZmlsdGVyRm9ybS5nZXQoJ3NlYXJjaCcpPy5zZXRWYWx1ZShldmVudCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJibWJfZmlsdGVyX2NhcmRcIj5cbiAgPG5nLXRlbXBsYXRlICNtb2RhbFRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJibWJfZmlsdGVyX2NhcmQtbW9kYWxcIj5cbiAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZmlsdGVyRm9ybVwiPlxuICAgICAgICBAaWYgKHNob3dEcm9wZG93bigpKSB7XG4gICAgICAgICAgPGJtYi1kcm9wZG93blxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyU2VhcmNoKClcIlxuICAgICAgICAgICAgW29wdGlvbnNdPVwiZHJvcGRvd25PcHRpb25zKClcIlxuICAgICAgICAgICAgW2NvbnRyb2xdPVwiZ2V0Rm9ybUNvbnRyb2woJ3NlYXJjaCcpXCJcbiAgICAgICAgICAgIChvblZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGJtYi1pbnB1dFxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyU2VhcmNoKClcIlxuICAgICAgICAgICAgW2ljb25dPVwiJ3NlYXJjaCdcIlxuICAgICAgICAgICAgW2FwcGVhcmFuY2VdPVwiJ25vcm1hbCdcIlxuICAgICAgICAgICAgW2NvbnRyb2xdPVwiZ2V0Rm9ybUNvbnRyb2woJ3NlYXJjaCcpXCJcbiAgICAgICAgICAgIFtpc0NsZWFyYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICAgIEBmb3IgKGNvbnRyb2xUeXBlIG9mIGNvbnRyb2xUeXBlcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICA8aDQgY2xhc3M9XCJibWJfZmlsdGVyX2NhcmQtdGl0bGVcIj57eyBjb250cm9sVHlwZS50aXRsZSB9fTwvaDQ+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJtYl9maWx0ZXJfY2FyZC1jb250cm9sXCI+XG4gICAgICAgICAgICBAZm9yIChjb250cm9sIG9mIGNvbnRyb2xUeXBlLmNvbnRyb2w7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICBAc3dpdGNoIChjb250cm9sLnR5cGUpIHtcbiAgICAgICAgICAgICAgICBAY2FzZSAoXCJ0YWdcIikge1xuICAgICAgICAgICAgICAgICAgPGJtYi10YWdcbiAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwiY29udHJvbC5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNtaXNzaWJsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIFthY3Rpdml0eVRhZ109XCJcbiAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJGb3JtLmdldChjb250cm9sLm5hbWUpPy52YWx1ZSA9PT0gY29udHJvbC5sYWJlbFxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2tlZFRhZyk9XCJvbkNvbnRyb2xDaGFuZ2UoY29udHJvbCwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAY2FzZSAoXCJyYWRpYWxcIikge1xuICAgICAgICAgICAgICAgICAgPGJtYi1yYWRpYWxcbiAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiY29udHJvbC5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgZmlsdGVyRm9ybS5nZXQoY29udHJvbC5uYW1lKT8udmFsdWUgPT09IGNvbnRyb2wubGFiZWxcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImNvbnRyb2wubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uQ29udHJvbENoYW5nZShjb250cm9sLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBjYXNlIChcImNoZWNrYm94XCIpIHtcbiAgICAgICAgICAgICAgICAgIDxibWItY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiY29udHJvbC5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiZmlsdGVyRm9ybS5nZXQoY29udHJvbC5uYW1lKT8udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiY29udHJvbC5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25Db250cm9sQ2hhbmdlKGNvbnRyb2wsICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGNhc2UgKFwic3dpdGNoXCIpIHtcbiAgICAgICAgICAgICAgICAgIDxibWItc3dpdGNoXG4gICAgICAgICAgICAgICAgICAgIFtyaWdodFRleHRdPVwiY29udHJvbC5yaWdodFRleHQgPz8gJydcIlxuICAgICAgICAgICAgICAgICAgICBbaXNDaGVja2VkXT1cImZpbHRlckZvcm0uZ2V0KGNvbnRyb2wubmFtZSk/LnZhbHVlID09PSB0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkNvbnRyb2xDaGFuZ2UoY29udHJvbCwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoaW5MaW5lKCkpIHtcbiAgICAgICAgICA8Zm9vdGVyIGNsYXNzPVwiYm1iX2ZpbHRlcl9jYXJkLWZvb3RlclwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBibWJCdXR0b24gYXBwZWFyYW5jZT1cInNlY29uZGFyeS1vdXRsaW5lZFwiIHR5cGU9XCJyZXNldFwiPlxuICAgICAgICAgICAgICB7eyBzZWNvbmRhcnlCdG5MYWJlbCgpIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gYm1iQnV0dG9uIChjbGljayk9XCJvblN1Ym1pdCgpXCIgdHlwZT1cInN1Ym1pdFwiPlxuICAgICAgICAgICAgICB7eyBwcmltYXJ5QnRuTGFiZWwoKSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9mb290ZXI+XG4gICAgICAgIH1cbiAgICAgIDwvZm9ybT5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICBAaWYgKGluTGluZSgpKSB7XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJtb2RhbFRlbXBsYXRlXCIgLz5cbiAgfSBAZWxzZSB7XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cImJtYl9maWx0ZXJfY2FyZC1idXR0b25cIlxuICAgICAgKGNsaWNrKT1cIm9wZW5Nb2RhbENvbXBvbmVudCgpXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgID5cbiAgICAgIDxibWItaWNvbiBbaWNvbl09XCJpY29uKClcIiBhbHQ9XCJGaWx0ZXIgaWNvblwiIC8+XG4gICAgPC9idXR0b24+XG4gIH1cbjwvZGl2PlxuIl19
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm1iLWZpbHRlci1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItZmlsdGVyLWNhcmQvYm1iLWZpbHRlci1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItZmlsdGVyLWNhcmQvYm1iLWZpbHRlci1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFFakIsU0FBUyxFQUNULE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFHckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFckUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFB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bXBvbmVudCxcclxuICBpbnB1dCxcclxuICBPbkluaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NoaWxkLFxyXG4gIG91dHB1dCxcclxuICBlZmZlY3QsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEJtYkljb25Db21wb25lbnQgfSBmcm9tICcuLi9ibWItaWNvbi9ibWItaWNvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCbWJTd2l0Y2hDb21wb25lbnQgfSBmcm9tICcuLi9ibWItc3dpdGNoL2JtYi1zd2l0Y2guY29tcG9uZW50JztcclxuaW1wb3J0IHsgQm1iUmFkaWFsQ29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLXJhZGlhbC9ibWItcmFkaWFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJtYkNoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLWNoZWNrYm94L2JtYi1jaGVja2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCbWJNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1tb2RhbC9ibWItbW9kYWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTW9kYWxEYXRhQ29uZmlnIH0gZnJvbSAnLi4vYm1iLW1vZGFsL2JtYi1tb2RhbC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBCbWJJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1pbnB1dC9ibWItaW5wdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSUJtYkNvbnRyb2xUeXBlIH0gZnJvbSAnLi9ibWItZmlsdGVyLWNhcmQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQm1iQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9ibWItYnV0dG9uL2J1dHRvbi5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBCbWJEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1kcm9wZG93bi9ibWItZHJvcGRvd24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQm1iVGFnQ29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLXRhZ3MvYm1iLXRhZ3MuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYm1iLWZpbHRlci1jYXJkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYm1iLWZpbHRlci1jYXJkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYm1iLWZpbHRlci1jYXJkLmNvbXBvbmVudC5zY3NzJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBCbWJJY29uQ29tcG9uZW50LFxyXG4gICAgQm1iSW5wdXRDb21wb25lbnQsXHJcbiAgICBCbWJTd2l0Y2hDb21wb25lbnQsXHJcbiAgICBCbWJSYWRpYWxDb21wb25lbnQsXHJcbiAgICBCbWJDaGVja2JveENvbXBvbmVudCxcclxuICAgIEJtYkRyb3Bkb3duQ29tcG9uZW50LFxyXG4gICAgQm1iQnV0dG9uRGlyZWN0aXZlLFxyXG4gICAgQm1iVGFnQ29tcG9uZW50LFxyXG4gIF0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEJtYkZpbHRlckNhcmRDb21wb25lbnQge1xyXG4gIG1vZGFsVGl0bGUgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuICBwcmltYXJ5QnRuTGFiZWwgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuICBzZWNvbmRhcnlCdG5MYWJlbCA9IGlucHV0PHN0cmluZz4oJycpO1xyXG4gIGljb24gPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuICBwbGFjZWhvbGRlclNlYXJjaCA9IGlucHV0PHN0cmluZz4oJycpO1xyXG4gIGNvbnRyb2xUeXBlcyA9IGlucHV0PElCbWJDb250cm9sVHlwZVtdPihbXSk7XHJcbiAgc3RvcmVkVmFsdWVzOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSA9IHt9O1xyXG4gIGluTGluZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICBzaG93RHJvcGRvd24gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgZHJvcGRvd25PcHRpb25zID0gaW5wdXQ8c3RyaW5nW10+KFtdKTtcclxuXHJcbiAgYXBwbHlGaWx0ZXJzID0gb3V0cHV0PHZvaWQ+KCk7XHJcbiAgcmVzZXRGaWx0ZXJzID0gb3V0cHV0PHZvaWQ+KCk7XHJcblxyXG4gIGZpbHRlckZvcm06IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xyXG4gICAgc2VhcmNoOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nPignJyksXHJcbiAgICBzZWxlY3RlZERyb3Bkb3duOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nPignJyksXHJcbiAgfSk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ21vZGFsVGVtcGxhdGUnKSBtb2RhbFRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtYXREaWFsb2c6IE1hdERpYWxvZykge1xyXG4gICAgZWZmZWN0KCgpID0+IHtcclxuICAgICAgdGhpcy5jb250cm9sVHlwZXMoKS5mb3JFYWNoKChjb250cm9sVHlwZSkgPT4ge1xyXG4gICAgICAgIGNvbnRyb2xUeXBlLmNvbnRyb2wuZm9yRWFjaCgoY29udHJvbCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGNvbnRyb2wudHlwZSA9PT0gJ3JhZGlhbCcpIHtcclxuICAgICAgICAgICAgY29uc3QgY29udHJvbE5hbWUgPSB0aGlzLmZpbHRlckZvcm0uZ2V0KGNvbnRyb2wubmFtZSk7XHJcbiAgICAgICAgICAgIGlmIChjb250cm9sTmFtZSkge1xyXG4gICAgICAgICAgICAgIGNvbnRyb2xOYW1lLnNldFZhbHVlKFxyXG4gICAgICAgICAgICAgICAgY29udHJvbC5jaGVja2VkID8gY29udHJvbC5sYWJlbCA6IGNvbnRyb2xOYW1lLnZhbHVlLFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5maWx0ZXJGb3JtLmFkZENvbnRyb2woXHJcbiAgICAgICAgICAgICAgICBjb250cm9sLm5hbWUsXHJcbiAgICAgICAgICAgICAgICBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nPihjb250cm9sLmNoZWNrZWQgPyBjb250cm9sLmxhYmVsIDogJycpLFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRm9ybS5hZGRDb250cm9sKFxyXG4gICAgICAgICAgICAgIGNvbnRyb2wubmFtZSxcclxuICAgICAgICAgICAgICBuZXcgRm9ybUNvbnRyb2w8Ym9vbGVhbj4oY29udHJvbC5jaGVja2VkKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9wZW5Nb2RhbENvbXBvbmVudCgpIHtcclxuICAgIGNvbnN0IGRhdGE6IE1vZGFsRGF0YUNvbmZpZyA9IHtcclxuICAgICAgdGl0bGU6IHRoaXMubW9kYWxUaXRsZSgpLFxyXG4gICAgICBzaXplOiAnc21hbGwnLFxyXG4gICAgICBwcmltYXJ5QnRuTGFiZWw6IHRoaXMucHJpbWFyeUJ0bkxhYmVsKCksXHJcbiAgICAgIHNlY29uZGFyeUJ0bkxhYmVsOiB0aGlzLnNlY29uZGFyeUJ0bkxhYmVsKCksXHJcbiAgICAgIGNvbnRlbnQ6IHRoaXMubW9kYWxUZW1wbGF0ZSxcclxuICAgICAgcHJpbWFyeUFjdGlvbjogdGhpcy5vblN1Ym1pdC5iaW5kKHRoaXMpLFxyXG4gICAgICBzZWNvbmRhcnlBY3Rpb246IHRoaXMub25SZXNldC5iaW5kKHRoaXMpLFxyXG4gICAgICBzY3JvbGxhYmxlOiB0cnVlLFxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLm1hdERpYWxvZy5vcGVuKEJtYk1vZGFsQ29tcG9uZW50LCB7IGRhdGEgfSk7XHJcbiAgfVxyXG5cclxuICBvbkNvbnRyb2xDaGFuZ2UoY29udHJvbDogYW55LCBldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuZmlsdGVyRm9ybS5nZXQoY29udHJvbC5uYW1lKTtcclxuICAgIGlmIChmb3JtQ29udHJvbCkge1xyXG4gICAgICBzd2l0Y2ggKGNvbnRyb2wudHlwZSkge1xyXG4gICAgICAgIGNhc2UgJ3N3aXRjaCc6XHJcbiAgICAgICAgICBmb3JtQ29udHJvbC5zZXRWYWx1ZShldmVudCk7XHJcbiAgICAgICAgICBjb25zdCBzd2l0Y2hWYWx1ZSA9IHtcclxuICAgICAgICAgICAgbmFtZTogY29udHJvbC5uYW1lLFxyXG4gICAgICAgICAgICBsYWJlbDogY29udHJvbC5yaWdodFRleHQsXHJcbiAgICAgICAgICAgIGNoZWNrZWQ6IGV2ZW50LFxyXG4gICAgICAgICAgICB0eXBlOiBjb250cm9sLnR5cGUsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgdGhpcy5zdG9yZWRWYWx1ZXNbY29udHJvbC5uYW1lXSA9IHN3aXRjaFZhbHVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnY2hlY2tib3gnOlxyXG4gICAgICAgICAgZm9ybUNvbnRyb2wuc2V0VmFsdWUoZXZlbnQudGFyZ2V0LmNoZWNrZWQpO1xyXG4gICAgICAgICAgY29uc3QgY2hlY2tib3hWYWx1ZSA9IHtcclxuICAgICAgICAgICAgbmFtZTogY29udHJvbC5uYW1lLFxyXG4gICAgICAgICAgICBsYWJlbDogY29udHJvbC5sYWJlbCxcclxuICAgICAgICAgICAgY2hlY2tlZDogZXZlbnQudGFyZ2V0LmNoZWNrZWQsXHJcbiAgICAgICAgICAgIHR5cGU6IGNvbnRyb2wudHlwZSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICB0aGlzLnN0b3JlZFZhbHVlc1tjb250cm9sLm5hbWVdID0gY2hlY2tib3hWYWx1ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3JhZGlhbCc6XHJcbiAgICAgICAgICBmb3JtQ29udHJvbC5zZXRWYWx1ZShjb250cm9sLmxhYmVsKTtcclxuICAgICAgICAgIGNvbnN0IHJhZGlhbFZhbHVlID0ge1xyXG4gICAgICAgICAgICBsYWJlbDogY29udHJvbC5sYWJlbCxcclxuICAgICAgICAgICAgY2hlY2tlZDogZXZlbnQuY2hlY2tlZCxcclxuICAgICAgICAgICAgbmFtZTogY29udHJvbC5uYW1lLFxyXG4gICAgICAgICAgICB0eXBlOiBjb250cm9sLnR5cGUsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgdGhpcy5zdG9yZWRWYWx1ZXNbY29udHJvbC5uYW1lXSA9IHJhZGlhbFZhbHVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDogLy9mb3IgdGhlIHRhZyBvcHRpb24gb3IgYW55IG90aGVyIG9wdGlvbiB0aGF0IGRvZXMgbm90IGhhdmUgYW4gYWN0aXZhdGVkIGNvbnRyb2xcclxuICAgICAgICAgIGZvcm1Db250cm9sLnNldFZhbHVlKGNvbnRyb2wubGFiZWwpO1xyXG4gICAgICAgICAgY29uc3QgZWxlbWVudFZhbHVlID0ge1xyXG4gICAgICAgICAgICBsYWJlbDogY29udHJvbC5sYWJlbCxcclxuICAgICAgICAgICAgY2hlY2tlZDogIXRoaXMuc3RvcmVkVmFsdWVzW2NvbnRyb2wubmFtZV0/LmNoZWNrZWQsXHJcbiAgICAgICAgICAgIG5hbWU6IGNvbnRyb2wsXHJcbiAgICAgICAgICAgIHR5cGU6IGNvbnRyb2wudHlwZSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICB0aGlzLnN0b3JlZFZhbHVlc1tjb250cm9sLm5hbWVdID0gZWxlbWVudFZhbHVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU3VibWl0KCkge1xyXG4gICAgY29uc3QgZm9ybURhdGE6IGFueSA9IHt9O1xyXG4gICAgT2JqZWN0LmtleXModGhpcy5zdG9yZWRWYWx1ZXMpLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICBmb3JtRGF0YVtrZXldID0gdGhpcy5zdG9yZWRWYWx1ZXNba2V5XTtcclxuICAgIH0pO1xyXG4gICAgZm9ybURhdGEuc2VhcmNoID0gdGhpcy5maWx0ZXJGb3JtLmdldCgnc2VhcmNoJyk/LnZhbHVlO1xyXG4gICAgdGhpcy5hcHBseUZpbHRlcnMuZW1pdChmb3JtRGF0YSk7XHJcbiAgfVxyXG5cclxuICBvblJlc2V0KCkge1xyXG4gICAgdGhpcy5maWx0ZXJGb3JtLnJlc2V0KCk7XHJcbiAgICB0aGlzLnJlc2V0RmlsdGVycy5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBnZXRGb3JtQ29udHJvbChzZWFyY2g6IHN0cmluZyk6IEZvcm1Db250cm9sIHtcclxuICAgIHJldHVybiB0aGlzLmZpbHRlckZvcm0uZ2V0KHNlYXJjaCkgYXMgRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBvblZhbHVlQ2hhbmdlKGV2ZW50OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZmlsdGVyRm9ybS5nZXQoJ3NlYXJjaCcpPy5zZXRWYWx1ZShldmVudCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJibWJfZmlsdGVyX2NhcmRcIj5cclxuICA8bmctdGVtcGxhdGUgI21vZGFsVGVtcGxhdGU+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYm1iX2ZpbHRlcl9jYXJkLW1vZGFsXCI+XHJcbiAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZmlsdGVyRm9ybVwiPlxyXG4gICAgICAgIEBpZiAoc2hvd0Ryb3Bkb3duKCkpIHtcclxuICAgICAgICAgIDxibWItZHJvcGRvd25cclxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyU2VhcmNoKClcIlxyXG4gICAgICAgICAgICBbb3B0aW9uc109XCJkcm9wZG93bk9wdGlvbnMoKVwiXHJcbiAgICAgICAgICAgIFtjb250cm9sXT1cImdldEZvcm1Db250cm9sKCdzZWFyY2gnKVwiXHJcbiAgICAgICAgICAgIChvblZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgPGJtYi1pbnB1dFxyXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJTZWFyY2goKVwiXHJcbiAgICAgICAgICAgIFtpY29uXT1cIidzZWFyY2gnXCJcclxuICAgICAgICAgICAgW2FwcGVhcmFuY2VdPVwiJ25vcm1hbCdcIlxyXG4gICAgICAgICAgICBbY29udHJvbF09XCJnZXRGb3JtQ29udHJvbCgnc2VhcmNoJylcIlxyXG4gICAgICAgICAgICBbaXNDbGVhcmFibGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIH1cclxuICAgICAgICBAZm9yIChjb250cm9sVHlwZSBvZiBjb250cm9sVHlwZXMoKTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICA8aDQgY2xhc3M9XCJibWJfZmlsdGVyX2NhcmQtdGl0bGVcIj57eyBjb250cm9sVHlwZS50aXRsZSB9fTwvaDQ+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm1iX2ZpbHRlcl9jYXJkLWNvbnRyb2xcIj5cclxuICAgICAgICAgICAgQGZvciAoY29udHJvbCBvZiBjb250cm9sVHlwZS5jb250cm9sOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgICBAc3dpdGNoIChjb250cm9sLnR5cGUpIHtcclxuICAgICAgICAgICAgICAgIEBjYXNlIChcInRhZ1wiKSB7XHJcbiAgICAgICAgICAgICAgICAgIDxibWItdGFnXHJcbiAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwiY29udHJvbC5sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc21pc3NpYmxlXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICBbaXNBY3RpdmVdPVwic3RvcmVkVmFsdWVzW2NvbnRyb2wubmFtZV0/LmNoZWNrZWQgPz8gZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGlja2VkVGFnKT1cIm9uQ29udHJvbENoYW5nZShjb250cm9sLCAkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIEBjYXNlIChcInJhZGlhbFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgIDxibWItcmFkaWFsXHJcbiAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiY29udHJvbC5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJcclxuICAgICAgICAgICAgICAgICAgICAgIGZpbHRlckZvcm0uZ2V0KGNvbnRyb2wubmFtZSk/LnZhbHVlID09PSBjb250cm9sLmxhYmVsXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiY29udHJvbC5sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkNvbnRyb2xDaGFuZ2UoY29udHJvbCwgJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBAY2FzZSAoXCJjaGVja2JveFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgIDxibWItY2hlY2tib3hcclxuICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJjb250cm9sLm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImZpbHRlckZvcm0uZ2V0KGNvbnRyb2wubmFtZSk/LnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiY29udHJvbC5sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkNvbnRyb2xDaGFuZ2UoY29udHJvbCwgJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBAY2FzZSAoXCJzd2l0Y2hcIikge1xyXG4gICAgICAgICAgICAgICAgICA8Ym1iLXN3aXRjaFxyXG4gICAgICAgICAgICAgICAgICAgIFtyaWdodFRleHRdPVwiY29udHJvbC5yaWdodFRleHQgPz8gJydcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpc0NoZWNrZWRdPVwiZmlsdGVyRm9ybS5nZXQoY29udHJvbC5uYW1lKT8udmFsdWUgPT09IHRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25Db250cm9sQ2hhbmdlKGNvbnRyb2wsICRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpZiAoaW5MaW5lKCkpIHtcclxuICAgICAgICAgIDxmb290ZXIgY2xhc3M9XCJibWJfZmlsdGVyX2NhcmQtZm9vdGVyXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gYm1iQnV0dG9uIGFwcGVhcmFuY2U9XCJzZWNvbmRhcnktb3V0bGluZWRcIiB0eXBlPVwicmVzZXRcIj5cclxuICAgICAgICAgICAgICB7eyBzZWNvbmRhcnlCdG5MYWJlbCgpIH19XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGJtYkJ1dHRvbiAoY2xpY2spPVwib25TdWJtaXQoKVwiIHR5cGU9XCJzdWJtaXRcIj5cclxuICAgICAgICAgICAgICB7eyBwcmltYXJ5QnRuTGFiZWwoKSB9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZm9vdGVyPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9mb3JtPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgQGlmIChpbkxpbmUoKSkge1xyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJtb2RhbFRlbXBsYXRlXCIgLz5cclxuICB9IEBlbHNlIHtcclxuICAgIDxidXR0b25cclxuICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgIGNsYXNzPVwiYm1iX2ZpbHRlcl9jYXJkLWJ1dHRvblwiXHJcbiAgICAgIChjbGljayk9XCJvcGVuTW9kYWxDb21wb25lbnQoKVwiXHJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgPlxyXG4gICAgICA8Ym1iLWljb24gW2ljb25dPVwiaWNvbigpXCIgYWx0PVwiRmlsdGVyIGljb25cIiAvPlxyXG4gICAgPC9idXR0b24+XHJcbiAgfVxyXG48L2Rpdj5cclxuIl19
|