@ti-tecnologico-de-monterrey-oficial/ds-ng 1.5.1218-b → 1.5.1218-d

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.
Files changed (34) hide show
  1. package/esm2022/lib/components/bmb-account-statement/bmb-account-statement.component.mjs +2 -2
  2. package/esm2022/lib/components/bmb-calendar/bmb-calendar.component.mjs +4 -3
  3. package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-template-mobile/bmb-calendar-template-mobile.component.mjs +4 -3
  4. package/esm2022/lib/components/bmb-drawer-overlay/bmb-drawer-overlay.component.mjs +3 -3
  5. package/esm2022/lib/components/bmb-filter-card/bmb-filter-card.component.mjs +3 -3
  6. package/esm2022/lib/components/bmb-grades/bmb-grades.component.mjs +2 -2
  7. package/esm2022/lib/components/bmb-inner-header/bmb-inner-header.component.mjs +5 -3
  8. package/esm2022/lib/components/bmb-input/bmb-input-content/bmb-input-content.component.mjs +2 -1
  9. package/esm2022/lib/components/bmb-input-tags/bmb-input-tags.component.mjs +2 -2
  10. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-logged/bmb-login-onboarding-logged.component.mjs +3 -3
  11. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-login/bmb-login-onboarding-login.component.mjs +3 -3
  12. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-logout/bmb-login-onboarding-logout.component.mjs +3 -3
  13. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper-steps/bmb-login-onboarding-stepper-step.component.mjs +3 -3
  14. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding-stepper/bmb-login-onboarding-stepper.component.mjs +3 -3
  15. package/esm2022/lib/components/bmb-login-onboarding/bmb-login-onboarding.component.mjs +3 -3
  16. package/esm2022/lib/components/bmb-mobile-templates/bmb-mobile-templates.component.mjs +2 -2
  17. package/esm2022/lib/components/bmb-sidebar/bmb-sidebar.component.mjs +10 -7
  18. package/esm2022/lib/components/bmb-table-lite/bmb-table-lite.component.mjs +564 -0
  19. package/esm2022/lib/components/bmb-table-lite/bmb-table-lite.interface.mjs +2 -0
  20. package/esm2022/lib/components/bmb-tags/bmb-tags.component.mjs +5 -4
  21. package/esm2022/lib/components/bmb-timestream/bmb-timestream-detail/bmb-timestream-detail.component.mjs +3 -3
  22. package/esm2022/lib/components/bmb-wheel-menu/bmb-wheel-menu.component.mjs +2 -2
  23. package/esm2022/public-api.mjs +2 -1
  24. package/fesm2022/ti-tecnologico-de-monterrey-oficial-ds-ng.mjs +600 -39
  25. package/fesm2022/ti-tecnologico-de-monterrey-oficial-ds-ng.mjs.map +1 -1
  26. package/lib/components/bmb-calendar/bmb-calendar.component.d.ts +2 -1
  27. package/lib/components/bmb-calendar/common/bmb-calendar-template-mobile/bmb-calendar-template-mobile.component.d.ts +2 -1
  28. package/lib/components/bmb-inner-header/bmb-inner-header.component.d.ts +3 -1
  29. package/lib/components/bmb-sidebar/bmb-sidebar.component.d.ts +8 -1
  30. package/lib/components/bmb-table-lite/bmb-table-lite.component.d.ts +97 -0
  31. package/lib/components/bmb-table-lite/bmb-table-lite.interface.d.ts +22 -0
  32. package/lib/components/bmb-tags/bmb-tags.component.d.ts +2 -1
  33. package/package.json +1 -1
  34. package/public-api.d.ts +1 -0
@@ -143,7 +143,7 @@ export class BmbFilterCardComponent {
143
143
  this.filterForm.get('search')?.setValue(event);
144
144
  }
145
145
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BmbFilterCardComponent, deps: [{ token: i1.BmbNativeModalService }], target: i0.ɵɵFactoryTarget.Component }); }
146
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", 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 [isFilterable]=\"true\"\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 [isActive]=\"storedValues[control.name]?.checked ?? false\"\n (clickedTag)=\"onControlChange(control, $event)\"\n />\n }\n @case ('radial') {\n <bmb-radial\n [name]=\"control.name\"\n [inputId]=\"control.id ?? control.name + '-' + $index\"\n [checked]=\"\n filterForm.get(control.name)?.value === control.label\n \"\n [label]=\"control.label\"\n (change)=\"onControlChange(control, $event)\"\n [value]=\"control.value ?? control.name\"\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 [inputId]=\"control.id ?? control.name + '-' + $index\"\n [value]=\"control.value ?? control.name\"\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)=\"handleSubmit()\" 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-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-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", "customValidation", "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", "customValidation", "control", "isModalOpen"], outputs: ["controlChange", "onValueChange", "onFocus", "isModalOpenChange"] }, { 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 }); }
146
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", 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 [isFilterable]=\"true\"\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 [enableClick]=\"true\"\n [isActive]=\"storedValues[control.name]?.checked ?? false\"\n (clickedTag)=\"onControlChange(control, $event)\"\n />\n }\n @case ('radial') {\n <bmb-radial\n [name]=\"control.name\"\n [inputId]=\"control.id ?? control.name + '-' + $index\"\n [checked]=\"\n filterForm.get(control.name)?.value === control.label\n \"\n [label]=\"control.label\"\n (change)=\"onControlChange(control, $event)\"\n [value]=\"control.value ?? control.name\"\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 [inputId]=\"control.id ?? control.name + '-' + $index\"\n [value]=\"control.value ?? control.name\"\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)=\"handleSubmit()\" 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-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-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", "customValidation", "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", "customValidation", "control", "isModalOpen"], outputs: ["controlChange", "onValueChange", "onFocus", "isModalOpenChange"] }, { 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", "enableClick"], outputs: ["closedTag", "clickedTag"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
147
147
  }
148
148
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BmbFilterCardComponent, decorators: [{
149
149
  type: Component,
@@ -158,9 +158,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
158
158
  BmbDropdownComponent,
159
159
  BmbButtonDirective,
160
160
  BmbTagComponent,
161
- ], 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 [isFilterable]=\"true\"\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 [isActive]=\"storedValues[control.name]?.checked ?? false\"\n (clickedTag)=\"onControlChange(control, $event)\"\n />\n }\n @case ('radial') {\n <bmb-radial\n [name]=\"control.name\"\n [inputId]=\"control.id ?? control.name + '-' + $index\"\n [checked]=\"\n filterForm.get(control.name)?.value === control.label\n \"\n [label]=\"control.label\"\n (change)=\"onControlChange(control, $event)\"\n [value]=\"control.value ?? control.name\"\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 [inputId]=\"control.id ?? control.name + '-' + $index\"\n [value]=\"control.value ?? control.name\"\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)=\"handleSubmit()\" 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-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-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"] }]
161
+ ], 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 [isFilterable]=\"true\"\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 [enableClick]=\"true\"\n [isActive]=\"storedValues[control.name]?.checked ?? false\"\n (clickedTag)=\"onControlChange(control, $event)\"\n />\n }\n @case ('radial') {\n <bmb-radial\n [name]=\"control.name\"\n [inputId]=\"control.id ?? control.name + '-' + $index\"\n [checked]=\"\n filterForm.get(control.name)?.value === control.label\n \"\n [label]=\"control.label\"\n (change)=\"onControlChange(control, $event)\"\n [value]=\"control.value ?? control.name\"\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 [inputId]=\"control.id ?? control.name + '-' + $index\"\n [value]=\"control.value ?? control.name\"\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)=\"handleSubmit()\" 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-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-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"] }]
162
162
  }], ctorParameters: () => [{ type: i1.BmbNativeModalService }], propDecorators: { modalTemplate: [{
163
163
  type: ViewChild,
164
164
  args: ['modalTemplate']
165
165
  }] } });
166
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm1iLWZpbHRlci1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItZmlsdGVyLWNhcmQvYm1iLWZpbHRlci1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItZmlsdGVyLWNhcmQvYm1iLWZpbHRlci1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFFakIsU0FBUyxFQUNULE1BQU0sRUFDTixNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBSzlFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7QUF1QmpFLE1BQU0s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LElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixpQkFBaUI7d0JBQ2pCLGtCQUFrQjt3QkFDbEIsa0JBQWtCO3dCQUNsQixvQkFBb0I7d0JBQ3BCLG9CQUFvQjt3QkFDcEIsa0JBQWtCO3dCQUNsQixlQUFlO3FCQUNoQixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNOzBGQXdCbkIsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBpbnB1dCxcbiAgT25Jbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIG91dHB1dCxcbiAgZWZmZWN0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCbWJJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLWljb24vYm1iLWljb24uY29tcG9uZW50JztcbmltcG9ydCB7IEJtYlN3aXRjaENvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1zd2l0Y2gvYm1iLXN3aXRjaC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQm1iUmFkaWFsQ29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLXJhZGlhbC9ibWItcmFkaWFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCbWJDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1jaGVja2JveC9ibWItY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCB7XG4gIElCbWJOYXRpdmVNb2RhbCxcbiAgTW9kYWxEYXRhQ29uZmlnLFxufSBmcm9tICcuLi9ibWItbW9kYWwvYm1iLW1vZGFsLmludGVyZmFjZSc7XG5pbXBvcnQgeyBCbWJJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1pbnB1dC9ibWItaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IElCbWJDb250cm9sVHlwZSB9IGZyb20gJy4vYm1iLWZpbHRlci1jYXJkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBCbWJCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2JtYi1idXR0b24vYnV0dG9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCbWJEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1kcm9wZG93bi9ibWItZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCB7IEJtYlRhZ0NvbXBvbmVudCB9IGZyb20gJy4uL2JtYi10YWdzL2JtYi10YWdzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCbWJOYXRpdmVNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9uYXRpdmUtbW9kYWwuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JtYi1maWx0ZXItY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9ibWItZmlsdGVyLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYm1iLWZpbHRlci1jYXJkLmNvbXBvbmVudC5zY3NzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEJtYkljb25Db21wb25lbnQsXG4gICAgQm1iSW5wdXRDb21wb25lbnQsXG4gICAgQm1iU3dpdGNoQ29tcG9uZW50LFxuICAgIEJtYlJhZGlhbENvbXBvbmVudCxcbiAgICBCbWJDaGVja2JveENvbXBvbmVudCxcbiAgICBCbWJEcm9wZG93bkNvbXBvbmVudCxcbiAgICBCbWJCdXR0b25EaXJlY3RpdmUsXG4gICAgQm1iVGFnQ29tcG9uZW50LFxuICBdLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQm1iRmlsdGVyQ2FyZENvbXBvbmVudCB7XG4gIG1vZGFsVGl0bGUgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgcHJpbWFyeUJ0bkxhYmVsID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIHNlY29uZGFyeUJ0bkxhYmVsID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIGljb24gPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgcGxhY2Vob2xkZXJTZWFyY2ggPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgY29udHJvbFR5cGVzID0gaW5wdXQ8SUJtYkNvbnRyb2xUeXBlW10+KFtdKTtcbiAgc3RvcmVkVmFsdWVzOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuICBpbkxpbmUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHNob3dEcm9wZG93biA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgZHJvcGRvd25PcHRpb25zID0gaW5wdXQ8c3RyaW5nW10+KFtdKTtcblxuICBhcHBseUZpbHRlcnMgPSBvdXRwdXQ8YW55PigpO1xuICByZXNldEZpbHRlcnMgPSBvdXRwdXQ8dm9pZD4oKTtcblxuICBmaWx0ZXJGb3JtOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHtcbiAgICBzZWFyY2g6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KCcnKSxcbiAgICBzZWxlY3RlZERyb3Bkb3duOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nPignJyksXG4gIH0pO1xuXG4gIG1vZGFsSWQgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgQFZpZXdDaGlsZCgnbW9kYWxUZW1wbGF0ZScpIG1vZGFsVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBCbWJOYXRpdmVNb2RhbFNlcnZpY2UpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5jb250cm9sVHlwZXMoKS5mb3JFYWNoKChjb250cm9sVHlwZSkgPT4ge1xuICAgICAgICBjb250cm9sVHlwZS5jb250cm9sLmZvckVhY2goKGNvbnRyb2wpID0+IHtcbiAgICAgICAgICBpZiAoY29udHJvbC50eXBlID09PSAncmFkaWFsJykge1xuICAgICAgICAgICAgY29uc3QgY29udHJvbE5hbWUgPSB0aGlzLmZpbHRlckZvcm0uZ2V0KGNvbnRyb2wubmFtZSk7XG4gICAgICAgICAgICBpZiAoY29udHJvbE5hbWUpIHtcbiAgICAgICAgICAgICAgY29udHJvbE5hbWUuc2V0VmFsdWUoXG4gICAgICAgICAgICAgICAgY29udHJvbC5jaGVja2VkID8gY29udHJvbC5sYWJlbCA6IGNvbnRyb2xOYW1lLnZhbHVlLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5maWx0ZXJGb3JtLmFkZENvbnRyb2woXG4gICAgICAgICAgICAgICAgY29udHJvbC5uYW1lLFxuICAgICAgICAgICAgICAgIG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KGNvbnRyb2wuY2hlY2tlZCA/IGNvbnRyb2wubGFiZWwgOiAnJyksXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRm9ybS5hZGRDb250cm9sKFxuICAgICAgICAgICAgICBjb250cm9sLm5hbWUsXG4gICAgICAgICAgICAgIG5ldyBGb3JtQ29udHJvbDxib29sZWFuPihjb250cm9sLmNoZWNrZWQpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBvcGVuTW9kYWxDb21wb25lbnQoKSB7XG4gICAgY29uc3QgZGF0YTogSUJtYk5hdGl2ZU1vZGFsID0ge1xuICAgICAgdGl0bGU6IHRoaXMubW9kYWxUaXRsZSgpLFxuICAgICAgc2l6ZTogJ3NtYWxsJyxcbiAgICAgIGNvbnRlbnQ6IHRoaXMubW9kYWxUZW1wbGF0ZSxcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGxhYmVsOiB0aGlzLnByaW1hcnlCdG5MYWJlbCgpLFxuICAgICAgICAgIGFjdGlvbjogdGhpcy5oYW5kbGVTdWJtaXQuYmluZCh0aGlzKSxcbiAgICAgICAgICBhcHBlYXJhbmNlOiAncHJpbWFyeScsXG4gICAgICAgICAgYnV0dG9uTmFtZTogdGhpcy5wcmltYXJ5QnRuTGFiZWwoKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxhYmVsOiB0aGlzLnNlY29uZGFyeUJ0bkxhYmVsKCksXG4gICAgICAgICAgYWN0aW9uOiB0aGlzLm9uUmVzZXQuYmluZCh0aGlzKSxcbiAgICAgICAgICBhcHBlYXJhbmNlOiAnc2Vjb25kYXJ5LW91dGxpbmVkJyxcbiAgICAgICAgICBidXR0b25OYW1lOiB0aGlzLnNlY29uZGFyeUJ0bkxhYmVsKCksXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgc2Nyb2xsYWJsZTogdHJ1ZSxcbiAgICB9O1xuXG4gICAgdGhpcy5tb2RhbElkLnNldCh0aGlzLm1vZGFsU2VydmljZS5vcGVuTW9kYWwoZGF0YSkpO1xuICB9XG5cbiAgb25Db250cm9sQ2hhbmdlKGNvbnRyb2w6IGFueSwgZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5maWx0ZXJGb3JtLmdldChjb250cm9sLm5hbWUpO1xuICAgIGlmIChmb3JtQ29udHJvbCkge1xuICAgICAgc3dpdGNoIChjb250cm9sLnR5cGUpIHtcbiAgICAgICAgY2FzZSAnc3dpdGNoJzpcbiAgICAgICAgICBmb3JtQ29udHJvbC5zZXRWYWx1ZShldmVudCk7XG4gICAgICAgICAgY29uc3Qgc3dpdGNoVmFsdWUgPSB7XG4gICAgICAgICAgICBuYW1lOiBjb250cm9sLm5hbWUsXG4gICAgICAgICAgICBsYWJlbDogY29udHJvbC5yaWdodFRleHQsXG4gICAgICAgICAgICBjaGVja2VkOiBldmVudCxcbiAgICAgICAgICAgIHR5cGU6IGNvbnRyb2wudHlwZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHRoaXMuc3RvcmVkVmFsdWVzW2NvbnRyb2wubmFtZV0gPSBzd2l0Y2hWYWx1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnY2hlY2tib3gnOlxuICAgICAgICAgIGZvcm1Db250cm9sLnNldFZhbHVlKGV2ZW50LnRhcmdldC5jaGVja2VkKTtcbiAgICAgICAgICBjb25zdCBjaGVja2JveFZhbHVlID0ge1xuICAgICAgICAgICAgbmFtZTogY29udHJvbC5uYW1lLFxuICAgICAgICAgICAgbGFiZWw6IGNvbnRyb2wubGFiZWwsXG4gICAgICAgICAgICBjaGVja2VkOiBldmVudC50YXJnZXQuY2hlY2tlZCxcbiAgICAgICAgICAgIHR5cGU6IGNvbnRyb2wudHlwZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHRoaXMuc3RvcmVkVmFsdWVzW2NvbnRyb2wubmFtZV0gPSBjaGVja2JveFZhbHVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdyYWRpYWwnOlxuICAgICAgICAgIGZvcm1Db250cm9sLnNldFZhbHVlKGNvbnRyb2wubGFiZWwpO1xuICAgICAgICAgIGNvbnN0IHJhZGlhbFZhbHVlID0ge1xuICAgICAgICAgICAgbGFiZWw6IGNvbnRyb2wubGFiZWwsXG4gICAgICAgICAgICBjaGVja2VkOiBldmVudC5jaGVja2VkLFxuICAgICAgICAgICAgbmFtZTogY29udHJvbC5uYW1lLFxuICAgICAgICAgICAgdHlwZTogY29udHJvbC50eXBlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgdGhpcy5zdG9yZWRWYWx1ZXNbY29udHJvbC5uYW1lXSA9IHJhZGlhbFZhbHVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OiAvL2ZvciB0aGUgdGFnIG9wdGlvbiBvciBhbnkgb3RoZXIgb3B0aW9uIHRoYXQgZG9lcyBub3QgaGF2ZSBhbiBhY3RpdmF0ZWQgY29udHJvbFxuICAgICAgICAgIGZvcm1Db250cm9sLnNldFZhbHVlKGNvbnRyb2wubGFiZWwpO1xuICAgICAgICAgIGNvbnN0IGVsZW1lbnRWYWx1ZSA9IHtcbiAgICAgICAgICAgIGxhYmVsOiBjb250cm9sLmxhYmVsLFxuICAgICAgICAgICAgY2hlY2tlZDogIXRoaXMuc3RvcmVkVmFsdWVzW2NvbnRyb2wubmFtZV0/LmNoZWNrZWQsXG4gICAgICAgICAgICBuYW1lOiBjb250cm9sLFxuICAgICAgICAgICAgdHlwZTogY29udHJvbC50eXBlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgdGhpcy5zdG9yZWRWYWx1ZXNbY29udHJvbC5uYW1lXSA9IGVsZW1lbnRWYWx1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoYW5kbGVTdWJtaXQoKSB7XG4gICAgZGVidWdnZXI7XG4gICAgY29uc3QgZm9ybURhdGE6IGFueSA9IHt9O1xuICAgIE9iamVjdC5rZXlzKHRoaXMuc3RvcmVkVmFsdWVzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGZvcm1EYXRhW2tleV0gPSB0aGlzLnN0b3JlZFZhbHVlc1trZXldO1xuICAgIH0pO1xuICAgIGZvcm1EYXRhLnNlYXJjaCA9IHRoaXMuZmlsdGVyRm9ybS5nZXQoJ3NlYXJjaCcpPy52YWx1ZTtcbiAgICB0aGlzLm1vZGFsU2VydmljZS5jbG9zZU1vZGFsKHRoaXMubW9kYWxJZCgpIGFzIHN0cmluZyk7XG4gICAgdGhpcy5hcHBseUZpbHRlcnMuZW1pdChmb3JtRGF0YSk7XG4gIH1cblxuICBvblJlc2V0KCkge1xuICAgIHRoaXMuZmlsdGVyRm9ybS5yZXNldCgpO1xuICAgIHRoaXMucmVzZXRGaWx0ZXJzLmVtaXQoKTtcbiAgfVxuXG4gIGdldEZvcm1Db250cm9sKHNlYXJjaDogc3RyaW5nKTogRm9ybUNvbnRyb2wge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckZvcm0uZ2V0KHNlYXJjaCkgYXMgRm9ybUNvbnRyb2w7XG4gIH1cblxuICBvblZhbHVlQ2hhbmdlKGV2ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLmZpbHRlckZvcm0uZ2V0KCdzZWFyY2gnKT8uc2V0VmFsdWUoZXZlbnQpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYm1iX2ZpbHRlcl9jYXJkXCI+XG4gIDxuZy10ZW1wbGF0ZSAjbW9kYWxUZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwiYm1iX2ZpbHRlcl9jYXJkLW1vZGFsXCI+XG4gICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZpbHRlckZvcm1cIj5cbiAgICAgICAgQGlmIChzaG93RHJvcGRvd24oKSkge1xuICAgICAgICAgIDxibWItZHJvcGRvd25cbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclNlYXJjaCgpXCJcbiAgICAgICAgICAgIFtvcHRpb25zXT1cImRyb3Bkb3duT3B0aW9ucygpXCJcbiAgICAgICAgICAgIFtjb250cm9sXT1cImdldEZvcm1Db250cm9sKCdzZWFyY2gnKVwiXG4gICAgICAgICAgICAob25WYWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgW2lzRmlsdGVyYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAvPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8Ym1iLWlucHV0XG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJTZWFyY2goKVwiXG4gICAgICAgICAgICBbaWNvbl09XCInc2VhcmNoJ1wiXG4gICAgICAgICAgICBbYXBwZWFyYW5jZV09XCInbm9ybWFsJ1wiXG4gICAgICAgICAgICBbY29udHJvbF09XCJnZXRGb3JtQ29udHJvbCgnc2VhcmNoJylcIlxuICAgICAgICAgICAgW2lzQ2xlYXJhYmxlXT1cInRydWVcIlxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAgQGZvciAoY29udHJvbFR5cGUgb2YgY29udHJvbFR5cGVzKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgIDxoNCBjbGFzcz1cImJtYl9maWx0ZXJfY2FyZC10aXRsZVwiPnt7IGNvbnRyb2xUeXBlLnRpdGxlIH19PC9oND5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm1iX2ZpbHRlcl9jYXJkLWNvbnRyb2xcIj5cbiAgICAgICAgICAgIEBmb3IgKGNvbnRyb2wgb2YgY29udHJvbFR5cGUuY29udHJvbDsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgIEBzd2l0Y2ggKGNvbnRyb2wudHlwZSkge1xuICAgICAgICAgICAgICAgIEBjYXNlICgndGFnJykge1xuICAgICAgICAgICAgICAgICAgPGJtYi10YWdcbiAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwiY29udHJvbC5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNtaXNzaWJsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIFtpc0FjdGl2ZV09XCJzdG9yZWRWYWx1ZXNbY29udHJvbC5uYW1lXT8uY2hlY2tlZCA/PyBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGlja2VkVGFnKT1cIm9uQ29udHJvbENoYW5nZShjb250cm9sLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBjYXNlICgncmFkaWFsJykge1xuICAgICAgICAgICAgICAgICAgPGJtYi1yYWRpYWxcbiAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiY29udHJvbC5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgW2lucHV0SWRdPVwiY29udHJvbC5pZCA/PyBjb250cm9sLm5hbWUgKyAnLScgKyAkaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJcbiAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJGb3JtLmdldChjb250cm9sLm5hbWUpPy52YWx1ZSA9PT0gY29udHJvbC5sYWJlbFxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiY29udHJvbC5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25Db250cm9sQ2hhbmdlKGNvbnRyb2wsICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiY29udHJvbC52YWx1ZSA/PyBjb250cm9sLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGNhc2UgKCdjaGVja2JveCcpIHtcbiAgICAgICAgICAgICAgICAgIDxibWItY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiY29udHJvbC5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiZmlsdGVyRm9ybS5nZXQoY29udHJvbC5uYW1lKT8udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiY29udHJvbC5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25Db250cm9sQ2hhbmdlKGNvbnRyb2wsICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbaW5wdXRJZF09XCJjb250cm9sLmlkID8/IGNvbnRyb2wubmFtZSArICctJyArICRpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJjb250cm9sLnZhbHVlID8/IGNvbnRyb2wubmFtZVwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAY2FzZSAoJ3N3aXRjaCcpIHtcbiAgICAgICAgICAgICAgICAgIDxibWItc3dpdGNoXG4gICAgICAgICAgICAgICAgICAgIFtyaWdodFRleHRdPVwiY29udHJvbC5yaWdodFRleHQgPz8gJydcIlxuICAgICAgICAgICAgICAgICAgICBbaXNDaGVja2VkXT1cImZpbHRlckZvcm0uZ2V0KGNvbnRyb2wubmFtZSk/LnZhbHVlID09PSB0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkNvbnRyb2xDaGFuZ2UoY29udHJvbCwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoaW5MaW5lKCkpIHtcbiAgICAgICAgICA8Zm9vdGVyIGNsYXNzPVwiYm1iX2ZpbHRlcl9jYXJkLWZvb3RlclwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBibWJCdXR0b24gYXBwZWFyYW5jZT1cInNlY29uZGFyeS1vdXRsaW5lZFwiIHR5cGU9XCJyZXNldFwiPlxuICAgICAgICAgICAgICB7eyBzZWNvbmRhcnlCdG5MYWJlbCgpIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gYm1iQnV0dG9uIChjbGljayk9XCJoYW5kbGVTdWJtaXQoKVwiIHR5cGU9XCJzdWJtaXRcIj5cbiAgICAgICAgICAgICAge3sgcHJpbWFyeUJ0bkxhYmVsKCkgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZm9vdGVyPlxuICAgICAgICB9XG4gICAgICA8L2Zvcm0+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgQGlmIChpbkxpbmUoKSkge1xuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibW9kYWxUZW1wbGF0ZVwiIC8+XG4gIH0gQGVsc2Uge1xuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJibWJfZmlsdGVyX2NhcmQtYnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJvcGVuTW9kYWxDb21wb25lbnQoKVwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICA+XG4gICAgICA8Ym1iLWljb24gW2ljb25dPVwiaWNvbigpXCIgYWx0PVwiRmlsdGVyIGljb25cIiAvPlxuICAgIDwvYnV0dG9uPlxuICB9XG48L2Rpdj5cbiJdfQ==
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm1iLWZpbHRlci1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItZmlsdGVyLWNhcmQvYm1iLWZpbHRlci1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItZmlsdGVyLWNhcmQvYm1iLWZpbHRlci1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFFakIsU0FBUyxFQUNULE1BQU0sRUFDTixNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBSzlFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7QUF1QmpFLE1BQU0s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LElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixpQkFBaUI7d0JBQ2pCLGtCQUFrQjt3QkFDbEIsa0JBQWtCO3dCQUNsQixvQkFBb0I7d0JBQ3BCLG9CQUFvQjt3QkFDcEIsa0JBQWtCO3dCQUNsQixlQUFlO3FCQUNoQixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNOzBGQXdCbkIsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBpbnB1dCxcbiAgT25Jbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIG91dHB1dCxcbiAgZWZmZWN0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCbWJJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLWljb24vYm1iLWljb24uY29tcG9uZW50JztcbmltcG9ydCB7IEJtYlN3aXRjaENvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1zd2l0Y2gvYm1iLXN3aXRjaC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQm1iUmFkaWFsQ29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLXJhZGlhbC9ibWItcmFkaWFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCbWJDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1jaGVja2JveC9ibWItY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCB7XG4gIElCbWJOYXRpdmVNb2RhbCxcbiAgTW9kYWxEYXRhQ29uZmlnLFxufSBmcm9tICcuLi9ibWItbW9kYWwvYm1iLW1vZGFsLmludGVyZmFjZSc7XG5pbXBvcnQgeyBCbWJJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1pbnB1dC9ibWItaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IElCbWJDb250cm9sVHlwZSB9IGZyb20gJy4vYm1iLWZpbHRlci1jYXJkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBCbWJCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2JtYi1idXR0b24vYnV0dG9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCbWJEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1kcm9wZG93bi9ibWItZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCB7IEJtYlRhZ0NvbXBvbmVudCB9IGZyb20gJy4uL2JtYi10YWdzL2JtYi10YWdzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCbWJOYXRpdmVNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9uYXRpdmUtbW9kYWwuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JtYi1maWx0ZXItY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9ibWItZmlsdGVyLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYm1iLWZpbHRlci1jYXJkLmNvbXBvbmVudC5zY3NzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEJtYkljb25Db21wb25lbnQsXG4gICAgQm1iSW5wdXRDb21wb25lbnQsXG4gICAgQm1iU3dpdGNoQ29tcG9uZW50LFxuICAgIEJtYlJhZGlhbENvbXBvbmVudCxcbiAgICBCbWJDaGVja2JveENvbXBvbmVudCxcbiAgICBCbWJEcm9wZG93bkNvbXBvbmVudCxcbiAgICBCbWJCdXR0b25EaXJlY3RpdmUsXG4gICAgQm1iVGFnQ29tcG9uZW50LFxuICBdLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQm1iRmlsdGVyQ2FyZENvbXBvbmVudCB7XG4gIG1vZGFsVGl0bGUgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgcHJpbWFyeUJ0bkxhYmVsID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIHNlY29uZGFyeUJ0bkxhYmVsID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIGljb24gPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgcGxhY2Vob2xkZXJTZWFyY2ggPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgY29udHJvbFR5cGVzID0gaW5wdXQ8SUJtYkNvbnRyb2xUeXBlW10+KFtdKTtcbiAgc3RvcmVkVmFsdWVzOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuICBpbkxpbmUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHNob3dEcm9wZG93biA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgZHJvcGRvd25PcHRpb25zID0gaW5wdXQ8c3RyaW5nW10+KFtdKTtcblxuICBhcHBseUZpbHRlcnMgPSBvdXRwdXQ8YW55PigpO1xuICByZXNldEZpbHRlcnMgPSBvdXRwdXQ8dm9pZD4oKTtcblxuICBmaWx0ZXJGb3JtOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHtcbiAgICBzZWFyY2g6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KCcnKSxcbiAgICBzZWxlY3RlZERyb3Bkb3duOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nPignJyksXG4gIH0pO1xuXG4gIG1vZGFsSWQgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgQFZpZXdDaGlsZCgnbW9kYWxUZW1wbGF0ZScpIG1vZGFsVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBCbWJOYXRpdmVNb2RhbFNlcnZpY2UpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5jb250cm9sVHlwZXMoKS5mb3JFYWNoKChjb250cm9sVHlwZSkgPT4ge1xuICAgICAgICBjb250cm9sVHlwZS5jb250cm9sLmZvckVhY2goKGNvbnRyb2wpID0+IHtcbiAgICAgICAgICBpZiAoY29udHJvbC50eXBlID09PSAncmFkaWFsJykge1xuICAgICAgICAgICAgY29uc3QgY29udHJvbE5hbWUgPSB0aGlzLmZpbHRlckZvcm0uZ2V0KGNvbnRyb2wubmFtZSk7XG4gICAgICAgICAgICBpZiAoY29udHJvbE5hbWUpIHtcbiAgICAgICAgICAgICAgY29udHJvbE5hbWUuc2V0VmFsdWUoXG4gICAgICAgICAgICAgICAgY29udHJvbC5jaGVja2VkID8gY29udHJvbC5sYWJlbCA6IGNvbnRyb2xOYW1lLnZhbHVlLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5maWx0ZXJGb3JtLmFkZENvbnRyb2woXG4gICAgICAgICAgICAgICAgY29udHJvbC5uYW1lLFxuICAgICAgICAgICAgICAgIG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KGNvbnRyb2wuY2hlY2tlZCA/IGNvbnRyb2wubGFiZWwgOiAnJyksXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRm9ybS5hZGRDb250cm9sKFxuICAgICAgICAgICAgICBjb250cm9sLm5hbWUsXG4gICAgICAgICAgICAgIG5ldyBGb3JtQ29udHJvbDxib29sZWFuPihjb250cm9sLmNoZWNrZWQpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBvcGVuTW9kYWxDb21wb25lbnQoKSB7XG4gICAgY29uc3QgZGF0YTogSUJtYk5hdGl2ZU1vZGFsID0ge1xuICAgICAgdGl0bGU6IHRoaXMubW9kYWxUaXRsZSgpLFxuICAgICAgc2l6ZTogJ3NtYWxsJyxcbiAgICAgIGNvbnRlbnQ6IHRoaXMubW9kYWxUZW1wbGF0ZSxcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGxhYmVsOiB0aGlzLnByaW1hcnlCdG5MYWJlbCgpLFxuICAgICAgICAgIGFjdGlvbjogdGhpcy5oYW5kbGVTdWJtaXQuYmluZCh0aGlzKSxcbiAgICAgICAgICBhcHBlYXJhbmNlOiAncHJpbWFyeScsXG4gICAgICAgICAgYnV0dG9uTmFtZTogdGhpcy5wcmltYXJ5QnRuTGFiZWwoKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxhYmVsOiB0aGlzLnNlY29uZGFyeUJ0bkxhYmVsKCksXG4gICAgICAgICAgYWN0aW9uOiB0aGlzLm9uUmVzZXQuYmluZCh0aGlzKSxcbiAgICAgICAgICBhcHBlYXJhbmNlOiAnc2Vjb25kYXJ5LW91dGxpbmVkJyxcbiAgICAgICAgICBidXR0b25OYW1lOiB0aGlzLnNlY29uZGFyeUJ0bkxhYmVsKCksXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgc2Nyb2xsYWJsZTogdHJ1ZSxcbiAgICB9O1xuXG4gICAgdGhpcy5tb2RhbElkLnNldCh0aGlzLm1vZGFsU2VydmljZS5vcGVuTW9kYWwoZGF0YSkpO1xuICB9XG5cbiAgb25Db250cm9sQ2hhbmdlKGNvbnRyb2w6IGFueSwgZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5maWx0ZXJGb3JtLmdldChjb250cm9sLm5hbWUpO1xuICAgIGlmIChmb3JtQ29udHJvbCkge1xuICAgICAgc3dpdGNoIChjb250cm9sLnR5cGUpIHtcbiAgICAgICAgY2FzZSAnc3dpdGNoJzpcbiAgICAgICAgICBmb3JtQ29udHJvbC5zZXRWYWx1ZShldmVudCk7XG4gICAgICAgICAgY29uc3Qgc3dpdGNoVmFsdWUgPSB7XG4gICAgICAgICAgICBuYW1lOiBjb250cm9sLm5hbWUsXG4gICAgICAgICAgICBsYWJlbDogY29udHJvbC5yaWdodFRleHQsXG4gICAgICAgICAgICBjaGVja2VkOiBldmVudCxcbiAgICAgICAgICAgIHR5cGU6IGNvbnRyb2wudHlwZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHRoaXMuc3RvcmVkVmFsdWVzW2NvbnRyb2wubmFtZV0gPSBzd2l0Y2hWYWx1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnY2hlY2tib3gnOlxuICAgICAgICAgIGZvcm1Db250cm9sLnNldFZhbHVlKGV2ZW50LnRhcmdldC5jaGVja2VkKTtcbiAgICAgICAgICBjb25zdCBjaGVja2JveFZhbHVlID0ge1xuICAgICAgICAgICAgbmFtZTogY29udHJvbC5uYW1lLFxuICAgICAgICAgICAgbGFiZWw6IGNvbnRyb2wubGFiZWwsXG4gICAgICAgICAgICBjaGVja2VkOiBldmVudC50YXJnZXQuY2hlY2tlZCxcbiAgICAgICAgICAgIHR5cGU6IGNvbnRyb2wudHlwZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHRoaXMuc3RvcmVkVmFsdWVzW2NvbnRyb2wubmFtZV0gPSBjaGVja2JveFZhbHVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdyYWRpYWwnOlxuICAgICAgICAgIGZvcm1Db250cm9sLnNldFZhbHVlKGNvbnRyb2wubGFiZWwpO1xuICAgICAgICAgIGNvbnN0IHJhZGlhbFZhbHVlID0ge1xuICAgICAgICAgICAgbGFiZWw6IGNvbnRyb2wubGFiZWwsXG4gICAgICAgICAgICBjaGVja2VkOiBldmVudC5jaGVja2VkLFxuICAgICAgICAgICAgbmFtZTogY29udHJvbC5uYW1lLFxuICAgICAgICAgICAgdHlwZTogY29udHJvbC50eXBlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgdGhpcy5zdG9yZWRWYWx1ZXNbY29udHJvbC5uYW1lXSA9IHJhZGlhbFZhbHVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OiAvL2ZvciB0aGUgdGFnIG9wdGlvbiBvciBhbnkgb3RoZXIgb3B0aW9uIHRoYXQgZG9lcyBub3QgaGF2ZSBhbiBhY3RpdmF0ZWQgY29udHJvbFxuICAgICAgICAgIGZvcm1Db250cm9sLnNldFZhbHVlKGNvbnRyb2wubGFiZWwpO1xuICAgICAgICAgIGNvbnN0IGVsZW1lbnRWYWx1ZSA9IHtcbiAgICAgICAgICAgIGxhYmVsOiBjb250cm9sLmxhYmVsLFxuICAgICAgICAgICAgY2hlY2tlZDogIXRoaXMuc3RvcmVkVmFsdWVzW2NvbnRyb2wubmFtZV0/LmNoZWNrZWQsXG4gICAgICAgICAgICBuYW1lOiBjb250cm9sLFxuICAgICAgICAgICAgdHlwZTogY29udHJvbC50eXBlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgdGhpcy5zdG9yZWRWYWx1ZXNbY29udHJvbC5uYW1lXSA9IGVsZW1lbnRWYWx1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoYW5kbGVTdWJtaXQoKSB7XG4gICAgZGVidWdnZXI7XG4gICAgY29uc3QgZm9ybURhdGE6IGFueSA9IHt9O1xuICAgIE9iamVjdC5rZXlzKHRoaXMuc3RvcmVkVmFsdWVzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGZvcm1EYXRhW2tleV0gPSB0aGlzLnN0b3JlZFZhbHVlc1trZXldO1xuICAgIH0pO1xuICAgIGZvcm1EYXRhLnNlYXJjaCA9IHRoaXMuZmlsdGVyRm9ybS5nZXQoJ3NlYXJjaCcpPy52YWx1ZTtcbiAgICB0aGlzLm1vZGFsU2VydmljZS5jbG9zZU1vZGFsKHRoaXMubW9kYWxJZCgpIGFzIHN0cmluZyk7XG4gICAgdGhpcy5hcHBseUZpbHRlcnMuZW1pdChmb3JtRGF0YSk7XG4gIH1cblxuICBvblJlc2V0KCkge1xuICAgIHRoaXMuZmlsdGVyRm9ybS5yZXNldCgpO1xuICAgIHRoaXMucmVzZXRGaWx0ZXJzLmVtaXQoKTtcbiAgfVxuXG4gIGdldEZvcm1Db250cm9sKHNlYXJjaDogc3RyaW5nKTogRm9ybUNvbnRyb2wge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckZvcm0uZ2V0KHNlYXJjaCkgYXMgRm9ybUNvbnRyb2w7XG4gIH1cblxuICBvblZhbHVlQ2hhbmdlKGV2ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLmZpbHRlckZvcm0uZ2V0KCdzZWFyY2gnKT8uc2V0VmFsdWUoZXZlbnQpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYm1iX2ZpbHRlcl9jYXJkXCI+XG4gIDxuZy10ZW1wbGF0ZSAjbW9kYWxUZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwiYm1iX2ZpbHRlcl9jYXJkLW1vZGFsXCI+XG4gICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZpbHRlckZvcm1cIj5cbiAgICAgICAgQGlmIChzaG93RHJvcGRvd24oKSkge1xuICAgICAgICAgIDxibWItZHJvcGRvd25cbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclNlYXJjaCgpXCJcbiAgICAgICAgICAgIFtvcHRpb25zXT1cImRyb3Bkb3duT3B0aW9ucygpXCJcbiAgICAgICAgICAgIFtjb250cm9sXT1cImdldEZvcm1Db250cm9sKCdzZWFyY2gnKVwiXG4gICAgICAgICAgICAob25WYWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgW2lzRmlsdGVyYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAvPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8Ym1iLWlucHV0XG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJTZWFyY2goKVwiXG4gICAgICAgICAgICBbaWNvbl09XCInc2VhcmNoJ1wiXG4gICAgICAgICAgICBbYXBwZWFyYW5jZV09XCInbm9ybWFsJ1wiXG4gICAgICAgICAgICBbY29udHJvbF09XCJnZXRGb3JtQ29udHJvbCgnc2VhcmNoJylcIlxuICAgICAgICAgICAgW2lzQ2xlYXJhYmxlXT1cInRydWVcIlxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAgQGZvciAoY29udHJvbFR5cGUgb2YgY29udHJvbFR5cGVzKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgIDxoNCBjbGFzcz1cImJtYl9maWx0ZXJfY2FyZC10aXRsZVwiPnt7IGNvbnRyb2xUeXBlLnRpdGxlIH19PC9oND5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm1iX2ZpbHRlcl9jYXJkLWNvbnRyb2xcIj5cbiAgICAgICAgICAgIEBmb3IgKGNvbnRyb2wgb2YgY29udHJvbFR5cGUuY29udHJvbDsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgIEBzd2l0Y2ggKGNvbnRyb2wudHlwZSkge1xuICAgICAgICAgICAgICAgIEBjYXNlICgndGFnJykge1xuICAgICAgICAgICAgICAgICAgPGJtYi10YWdcbiAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwiY29udHJvbC5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNtaXNzaWJsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIFtlbmFibGVDbGlja109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgW2lzQWN0aXZlXT1cInN0b3JlZFZhbHVlc1tjb250cm9sLm5hbWVdPy5jaGVja2VkID8/IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrZWRUYWcpPVwib25Db250cm9sQ2hhbmdlKGNvbnRyb2wsICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGNhc2UgKCdyYWRpYWwnKSB7XG4gICAgICAgICAgICAgICAgICA8Ym1iLXJhZGlhbFxuICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJjb250cm9sLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBbaW5wdXRJZF09XCJjb250cm9sLmlkID8/IGNvbnRyb2wubmFtZSArICctJyArICRpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cIlxuICAgICAgICAgICAgICAgICAgICAgIGZpbHRlckZvcm0uZ2V0KGNvbnRyb2wubmFtZSk/LnZhbHVlID09PSBjb250cm9sLmxhYmVsXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJjb250cm9sLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkNvbnRyb2xDaGFuZ2UoY29udHJvbCwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJjb250cm9sLnZhbHVlID8/IGNvbnRyb2wubmFtZVwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAY2FzZSAoJ2NoZWNrYm94Jykge1xuICAgICAgICAgICAgICAgICAgPGJtYi1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJjb250cm9sLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJmaWx0ZXJGb3JtLmdldChjb250cm9sLm5hbWUpPy52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJjb250cm9sLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkNvbnRyb2xDaGFuZ2UoY29udHJvbCwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFtpbnB1dElkXT1cImNvbnRyb2wuaWQgPz8gY29udHJvbC5uYW1lICsgJy0nICsgJGluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImNvbnRyb2wudmFsdWUgPz8gY29udHJvbC5uYW1lXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBjYXNlICgnc3dpdGNoJykge1xuICAgICAgICAgICAgICAgICAgPGJtYi1zd2l0Y2hcbiAgICAgICAgICAgICAgICAgICAgW3JpZ2h0VGV4dF09XCJjb250cm9sLnJpZ2h0VGV4dCA/PyAnJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtpc0NoZWNrZWRdPVwiZmlsdGVyRm9ybS5nZXQoY29udHJvbC5uYW1lKT8udmFsdWUgPT09IHRydWVcIlxuICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uQ29udHJvbENoYW5nZShjb250cm9sLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChpbkxpbmUoKSkge1xuICAgICAgICAgIDxmb290ZXIgY2xhc3M9XCJibWJfZmlsdGVyX2NhcmQtZm9vdGVyXCI+XG4gICAgICAgICAgICA8YnV0dG9uIGJtYkJ1dHRvbiBhcHBlYXJhbmNlPVwic2Vjb25kYXJ5LW91dGxpbmVkXCIgdHlwZT1cInJlc2V0XCI+XG4gICAgICAgICAgICAgIHt7IHNlY29uZGFyeUJ0bkxhYmVsKCkgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBibWJCdXR0b24gKGNsaWNrKT1cImhhbmRsZVN1Ym1pdCgpXCIgdHlwZT1cInN1Ym1pdFwiPlxuICAgICAgICAgICAgICB7eyBwcmltYXJ5QnRuTGFiZWwoKSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9mb290ZXI+XG4gICAgICAgIH1cbiAgICAgIDwvZm9ybT5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICBAaWYgKGluTGluZSgpKSB7XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJtb2RhbFRlbXBsYXRlXCIgLz5cbiAgfSBAZWxzZSB7XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cImJtYl9maWx0ZXJfY2FyZC1idXR0b25cIlxuICAgICAgKGNsaWNrKT1cIm9wZW5Nb2RhbENvbXBvbmVudCgpXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgID5cbiAgICAgIDxibWItaWNvbiBbaWNvbl09XCJpY29uKClcIiBhbHQ9XCJGaWx0ZXIgaWNvblwiIC8+XG4gICAgPC9idXR0b24+XG4gIH1cbjwvZGl2PlxuIl19
@@ -154,7 +154,7 @@ export class BmbGradesComponent {
154
154
  }
155
155
  }
156
156
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BmbGradesComponent, deps: [{ token: i1.BmbNativeModalService }], target: i0.ɵɵFactoryTarget.Component }); }
157
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: BmbGradesComponent, isStandalone: true, selector: "bmb-grades", inputs: { grades: { classPropertyName: "grades", publicName: "grades", isSignal: true, isRequired: false, transformFunction: null }, isMicro: { classPropertyName: "isMicro", publicName: "isMicro", isSignal: true, isRequired: false, transformFunction: null }, gradeTitle: { classPropertyName: "gradeTitle", publicName: "gradeTitle", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, accredited: { classPropertyName: "accredited", publicName: "accredited", isSignal: true, isRequired: false, transformFunction: null }, average: { classPropertyName: "average", publicName: "average", isSignal: true, isRequired: false, transformFunction: null }, summary: { classPropertyName: "summary", publicName: "summary", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closeGrades: "closeGrades" }, viewQueries: [{ propertyName: "detailContent", first: true, predicate: ["detailContent"], descendants: true, read: TemplateRef }], ngImport: i0, template: "<ng-template #detailContent>\n <section class=\"bmb_grades-modal\">\n @for (partial of partials; track $index) {\n <section\n bmbLayout\n margin=\"none\"\n justify=\"spaceBetween\"\n [dynamicCols]=\"true\"\n >\n <h2 class=\"bmb_grades-modal-title\" bmbLayoutItem>\n {{ partial.title }}\n </h2>\n <bmb-grade-value\n [score]=\"partial.score\"\n type=\"partial-grade\"\n bmbLayoutItem\n />\n </section>\n @if ($index < partials.length - 1) {\n <bmb-divider [type]=\"'simple'\" />\n }\n }\n </section>\n</ng-template>\n\n<section class=\"bmb_grades\">\n @if (isMicro()) {\n <bmb-container appearance=\"primary-home\" class=\"bmb_grades-micro\">\n <bmb-title-content\n [title]=\"gradeTitle()!\"\n titleSize=\"4\"\n titleFontWeight=\"500\"\n [isCenterContent]=\"true\"\n />\n <bmb-title-content\n [title]=\"title()!\"\n titleSize=\"4\"\n titleFontWeight=\"400\"\n [isCenterContent]=\"true\"\n />\n <bmb-academic-progress\n [accredited]=\"accredited()!\"\n [average]=\"average()!\"\n [summary]=\"summary()!\"\n />\n </bmb-container>\n } @else {\n <bmb-inner-header\n [title]=\"getGradesTitle()\"\n [showClose]=\"true\"\n [trailingIconSecondary]=\"getCalendarIcon()\"\n (onHandleBack)=\"handleLeftGradesClick($event)\"\n (onHandleTrailingSecondary)=\"handleRightGradesClick()\"\n >\n <bmb-chevron-title-selector\n [title]=\"getTitle()\"\n leadingIcon=\"chevron_left\"\n trailingIcon=\"chevron_right\"\n (onLeadingClick)=\"handleLeftPeriodClick()\"\n (onTrailingClick)=\"handleRightPeriodClick()\"\n />\n @if (showPrincipalDetail) {\n <bmb-academic-progress\n [accredited]=\"{\n name: 'Materias Acreditadas',\n value: getAccreditedClasses()\n }\"\n [average]=\"{ name: 'Promedio Semestre', value: getPeriodAverage() }\"\n [summary]=\"{ name: 'Horas Servicio', value: getServiceHours() }\"\n />\n }\n </bmb-inner-header>\n <section class=\"bmb_grades-content\">\n @for (element of getElements(); track $index) {\n <bmb-container-button\n [title]=\"getDetailTitle(element)\"\n [subtitle]=\"getDetailSubtitle(element)\"\n [score]=\"getDetailScore(element)\"\n iconLeft=\"chevron_left\"\n iconRight=\"chevron_right\"\n [setButtonTemplate]=\"true\"\n (onButton)=\"handleDetails(element)\"\n />\n }\n </section>\n }\n</section>\n", styles: ["@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-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_grades{height:100%;display:flex;flex-flow:column}.bmb_grades-modal-title{color:var(--general_contrasts-100);font-family:Poppins-Medium,sans-serif;font-size:.875rem}.bmb_grades-content{padding:1rem;flex:1;display:flex;flex-flow:column;gap:1rem;overflow:auto}.bmb_grades-micro>.bmb_container{border-radius:1rem;border:.0625rem solid var(--general_contrasts-50);background:var(--containers-main)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: BmbChevronTitleSelectorComponent, selector: "bmb-chevron-title-selector", inputs: ["title", "subtitle", "isIconSubtitle", "iconSubtitle", "leadingIcon", "trailingIcon", "isDisabledLeadingIcon", "isDisabledTrailingIcon"], outputs: ["onLeadingClick", "onTrailingClick"] }, { kind: "component", type: BmbContainerButtonComponent, selector: "bmb-container-button", inputs: ["title", "score", "square", "small", "target", "link", "subtitle", "iconLeft", "isUserImage", "iconRight", "setButtonTemplate", "badgeText", "badgeAppearance", "state", "alternative", "enableSecondaryAction", "enableBookmark", "isBookmarkActive", "dropdownMenuItems"], outputs: ["isBookmarkActiveChange", "onButton", "secondaryAction"] }, { kind: "component", type: BmbDividerComponent, selector: "bmb-divider", inputs: ["type"] }, { kind: "component", type: BmbTitleContentComponent, selector: "bmb-title-content", inputs: ["title", "titleSize", "titleFontWeight", "subtitle", "subtitleSize", "subtitleFontWeight", "subtitleIcon", "subtitleIconSize", "isCenterContent", "dataLocalNav", "transparentBgC", "icon", "iconSize", "bgIconAppearance"] }, { kind: "component", type: BmbAcademicProgressComponent, selector: "bmb-academic-progress", inputs: ["accredited", "average", "summary"] }, { kind: "directive", type: BmbLayoutDirective, selector: "[bmbLayout]", inputs: ["gapSize", "margin", "dynamicCols", "justify", "alignItems"] }, { kind: "directive", type: BmbLayoutItemDirective, selector: "[bmbLayoutItem]", inputs: ["colSm", "colLg", "marginLeft", "marginRight", "colGrow", "isDynamicItem"] }, { kind: "component", type: BmbGradeValueComponent, selector: "bmb-grade-value", inputs: ["appearanceContrast", "type", "score"] }, { kind: "component", type: BmbInnerHeaderComponent, selector: "bmb-inner-header", inputs: ["title", "placeholderSearch", "subTitle", "trailingIconPrimary", "trailingIconSecondary", "showClose", "showReturn", "showSearch"], outputs: ["onHandleTrailingPrimary", "onHandleTrailingSecondary", "onHandleBack", "onHandleClose", "searchData"] }, { kind: "component", type: BmbContainerComponent, selector: "bmb-container", inputs: ["appearance", "isHidden"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
157
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: BmbGradesComponent, isStandalone: true, selector: "bmb-grades", inputs: { grades: { classPropertyName: "grades", publicName: "grades", isSignal: true, isRequired: false, transformFunction: null }, isMicro: { classPropertyName: "isMicro", publicName: "isMicro", isSignal: true, isRequired: false, transformFunction: null }, gradeTitle: { classPropertyName: "gradeTitle", publicName: "gradeTitle", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, accredited: { classPropertyName: "accredited", publicName: "accredited", isSignal: true, isRequired: false, transformFunction: null }, average: { classPropertyName: "average", publicName: "average", isSignal: true, isRequired: false, transformFunction: null }, summary: { classPropertyName: "summary", publicName: "summary", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closeGrades: "closeGrades" }, viewQueries: [{ propertyName: "detailContent", first: true, predicate: ["detailContent"], descendants: true, read: TemplateRef }], ngImport: i0, template: "<ng-template #detailContent>\n <section class=\"bmb_grades-modal\">\n @for (partial of partials; track $index) {\n <section\n bmbLayout\n margin=\"none\"\n justify=\"spaceBetween\"\n [dynamicCols]=\"true\"\n >\n <h2 class=\"bmb_grades-modal-title\" bmbLayoutItem>\n {{ partial.title }}\n </h2>\n <bmb-grade-value\n [score]=\"partial.score\"\n type=\"partial-grade\"\n bmbLayoutItem\n />\n </section>\n @if ($index < partials.length - 1) {\n <bmb-divider [type]=\"'simple'\" />\n }\n }\n </section>\n</ng-template>\n\n<section class=\"bmb_grades\">\n @if (isMicro()) {\n <bmb-container appearance=\"primary-home\" class=\"bmb_grades-micro\">\n <bmb-title-content\n [title]=\"gradeTitle()!\"\n titleSize=\"4\"\n titleFontWeight=\"500\"\n [isCenterContent]=\"true\"\n />\n <bmb-title-content\n [title]=\"title()!\"\n titleSize=\"4\"\n titleFontWeight=\"400\"\n [isCenterContent]=\"true\"\n />\n <bmb-academic-progress\n [accredited]=\"accredited()!\"\n [average]=\"average()!\"\n [summary]=\"summary()!\"\n />\n </bmb-container>\n } @else {\n <bmb-inner-header\n [title]=\"getGradesTitle()\"\n [showClose]=\"true\"\n [trailingIconSecondary]=\"getCalendarIcon()\"\n (onHandleBack)=\"handleLeftGradesClick($event)\"\n (onHandleTrailingSecondary)=\"handleRightGradesClick()\"\n >\n <bmb-chevron-title-selector\n [title]=\"getTitle()\"\n leadingIcon=\"chevron_left\"\n trailingIcon=\"chevron_right\"\n (onLeadingClick)=\"handleLeftPeriodClick()\"\n (onTrailingClick)=\"handleRightPeriodClick()\"\n />\n @if (showPrincipalDetail) {\n <bmb-academic-progress\n [accredited]=\"{\n name: 'Materias Acreditadas',\n value: getAccreditedClasses()\n }\"\n [average]=\"{ name: 'Promedio Semestre', value: getPeriodAverage() }\"\n [summary]=\"{ name: 'Horas Servicio', value: getServiceHours() }\"\n />\n }\n </bmb-inner-header>\n <section class=\"bmb_grades-content\">\n @for (element of getElements(); track $index) {\n <bmb-container-button\n [title]=\"getDetailTitle(element)\"\n [subtitle]=\"getDetailSubtitle(element)\"\n [score]=\"getDetailScore(element)\"\n iconLeft=\"chevron_left\"\n iconRight=\"chevron_right\"\n [setButtonTemplate]=\"true\"\n (onButton)=\"handleDetails(element)\"\n />\n }\n </section>\n }\n</section>\n", styles: ["@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-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_grades{height:100%;display:flex;flex-flow:column}.bmb_grades-modal-title{color:var(--general_contrasts-100);font-family:Poppins-Medium,sans-serif;font-size:.875rem}.bmb_grades-content{padding:1rem;flex:1;display:flex;flex-flow:column;gap:1rem;overflow:auto}.bmb_grades-micro>.bmb_container{border-radius:1rem;border:.0625rem solid var(--general_contrasts-50);background:var(--containers-main)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: BmbChevronTitleSelectorComponent, selector: "bmb-chevron-title-selector", inputs: ["title", "subtitle", "isIconSubtitle", "iconSubtitle", "leadingIcon", "trailingIcon", "isDisabledLeadingIcon", "isDisabledTrailingIcon"], outputs: ["onLeadingClick", "onTrailingClick"] }, { kind: "component", type: BmbContainerButtonComponent, selector: "bmb-container-button", inputs: ["title", "score", "square", "small", "target", "link", "subtitle", "iconLeft", "isUserImage", "iconRight", "setButtonTemplate", "badgeText", "badgeAppearance", "state", "alternative", "enableSecondaryAction", "enableBookmark", "isBookmarkActive", "dropdownMenuItems"], outputs: ["isBookmarkActiveChange", "onButton", "secondaryAction"] }, { kind: "component", type: BmbDividerComponent, selector: "bmb-divider", inputs: ["type"] }, { kind: "component", type: BmbTitleContentComponent, selector: "bmb-title-content", inputs: ["title", "titleSize", "titleFontWeight", "subtitle", "subtitleSize", "subtitleFontWeight", "subtitleIcon", "subtitleIconSize", "isCenterContent", "dataLocalNav", "transparentBgC", "icon", "iconSize", "bgIconAppearance"] }, { kind: "component", type: BmbAcademicProgressComponent, selector: "bmb-academic-progress", inputs: ["accredited", "average", "summary"] }, { kind: "directive", type: BmbLayoutDirective, selector: "[bmbLayout]", inputs: ["gapSize", "margin", "dynamicCols", "justify", "alignItems"] }, { kind: "directive", type: BmbLayoutItemDirective, selector: "[bmbLayoutItem]", inputs: ["colSm", "colLg", "marginLeft", "marginRight", "colGrow", "isDynamicItem"] }, { kind: "component", type: BmbGradeValueComponent, selector: "bmb-grade-value", inputs: ["appearanceContrast", "type", "score"] }, { kind: "component", type: BmbInnerHeaderComponent, selector: "bmb-inner-header", inputs: ["title", "placeholderSearch", "subTitle", "trailingIconPrimary", "trailingIconSecondary", "disableTrailingIconPrimary", "disableTrailingIconSecondary", "showClose", "showReturn", "showSearch"], outputs: ["onHandleTrailingPrimary", "onHandleTrailingSecondary", "onHandleBack", "onHandleClose", "searchData"] }, { kind: "component", type: BmbContainerComponent, selector: "bmb-container", inputs: ["appearance", "isHidden"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
158
158
  }
159
159
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BmbGradesComponent, decorators: [{
160
160
  type: Component,
@@ -175,4 +175,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
175
175
  type: ViewChild,
176
176
  args: ['detailContent', { read: TemplateRef }]
177
177
  }] } });
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm1iLWdyYWRlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kcy1uZy9zcmMvbGliL2NvbXBvbmVudHMvYm1iLWdyYWRlcy9ibWItZ3JhZGVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItZ3JhZGVzL2JtYi1ncmFkZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUVMLE1BQU0sRUFDTixNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDdEgsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDckcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDL0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFdEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBRXhHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFB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QUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FDaEQsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxLQUFLLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUN6RCxDQUNGLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQzsrR0F4S1Usa0JBQWtCO21HQUFsQixrQkFBa0IsaWxDQWlCTyxXQUFXLDZCQ2xFakQsOHBGQXVGQSw2eU1EdkRJLFlBQVksK0JBQ1osZ0NBQWdDLDBRQUNoQywyQkFBMkIsMlpBQzNCLG1CQUFtQiwwRUFDbkIsd0JBQXdCLG9TQUN4Qiw0QkFBNEIsZ0hBQzVCLGtCQUFrQiwrSEFDbEIsc0JBQXNCLGlKQUN0QixzQkFBc0IsNkdBQ3RCLHVCQUF1Qiw0VEFDdkIscUJBQXFCOzs0RkFPWixrQkFBa0I7a0JBckI5QixTQUFTOytCQUNFLFlBQVksY0FDVixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixnQ0FBZ0M7d0JBQ2hDLDJCQUEyQjt3QkFDM0IsbUJBQW1CO3dCQUNuQix3QkFBd0I7d0JBQ3hCLDRCQUE0Qjt3QkFDNUIsa0JBQWtCO3dCQUNsQixzQkFBc0I7d0JBQ3RCLHNCQUFzQjt3QkFDdEIsdUJBQXVCO3dCQUN2QixxQkFBcUI7cUJBQ3RCLGlCQUdjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07MEZBb0IvQyxhQUFhO3NCQURaLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGlucHV0LFxuICBPbkluaXQsXG4gIG91dHB1dCxcbiAgc2lnbmFsLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCbWJDaGV2cm9uVGl0bGVTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1jaGV2cm9uLXRpdGxlLXNlbGVjdG9yL2JtYi1jaGV2cm9uLXRpdGxlLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCbWJDb250YWluZXJCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9ibWItY29udGFpbmVyLWJ1dHRvbi9ibWItY29udGFpbmVyLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQm1iRGl2aWRlckNvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1kaXZpZGVyL2JtYi1kaXZpZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCbWJMYXlvdXRJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9ibWItbGF5b3V0L2JtYi1sYXlvdXQtaXRlbS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQm1iTGF5b3V0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9ibWItbGF5b3V0L2JtYi1sYXlvdXQuZGlyZWN0aXZlJztcbmltcG9ydCB7IElCbWJHcmFkZXMsIElCbWJQYXJ0aWFsIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQm1iR3JhZGVWYWx1ZUNvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1ncmFkZS12YWx1ZS9ibWItZ3JhZGUtdmFsdWUuY29tcG9uZW50JztcbmltcG9ydCB7IEJtYklubmVySGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLWlubmVyLWhlYWRlci9ibWItaW5uZXItaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCbWJBY2FkZW1pY1Byb2dyZXNzQ29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLWFjYWRlbWljLXByb2dyZXNzL2JtYi1hY2FkZW1pYy1wcm9ncmVzcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgSUJtYk5hbWVWYWx1ZVBhaXIgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBCbWJDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi9ibWItY29udGFpbmVyL2JtYi1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IGJ1aWxkRXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbHMnO1xuaW1wb3J0IHsgQm1iVGl0bGVDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLXRpdGxlLWNvbnRlbnQvYm1iLXRpdGxlLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IElCbWJOYXRpdmVNb2RhbCB9IGZyb20gJy4uL2JtYi1tb2RhbC9ibWItbW9kYWwuaW50ZXJmYWNlJztcbmltcG9ydCB7IEJtYk5hdGl2ZU1vZGFsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25hdGl2ZS1tb2RhbC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYm1iLWdyYWRlcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQm1iQ2hldnJvblRpdGxlU2VsZWN0b3JDb21wb25lbnQsXG4gICAgQm1iQ29udGFpbmVyQnV0dG9uQ29tcG9uZW50LFxuICAgIEJtYkRpdmlkZXJDb21wb25lbnQsXG4gICAgQm1iVGl0bGVDb250ZW50Q29tcG9uZW50LFxuICAgIEJtYkFjYWRlbWljUHJvZ3Jlc3NDb21wb25lbnQsXG4gICAgQm1iTGF5b3V0RGlyZWN0aXZlLFxuICAgIEJtYkxheW91dEl0ZW1EaXJlY3RpdmUsXG4gICAgQm1iR3JhZGVWYWx1ZUNvbXBvbmVudCxcbiAgICBCbWJJbm5lckhlYWRlckNvbXBvbmVudCxcbiAgICBCbWJDb250YWluZXJDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9ibWItZ3JhZGVzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2JtYi1ncmFkZXMuY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQm1iR3JhZGVzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgZ3JhZGVzID0gaW5wdXQ8SUJtYkdyYWRlc1tdPihbXSk7XG4gIGlzTWljcm8gPSBpbnB1dDxib29sZWFuPigpO1xuICBncmFkZVRpdGxlID0gaW5wdXQ8c3RyaW5nPigpO1xuICB0aXRsZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgYWNjcmVkaXRlZCA9IGlucHV0PElCbWJOYW1lVmFsdWVQYWlyPigpO1xuICBhdmVyYWdlID0gaW5wdXQ8SUJtYk5hbWVWYWx1ZVBhaXI+KCk7XG4gIHN1bW1hcnkgPSBpbnB1dDxJQm1iTmFtZVZhbHVlUGFpcj4oKTtcblxuICBjbG9zZUdyYWRlcyA9IG91dHB1dCgpO1xuXG4gIHNob3dQcmluY2lwYWxEZXRhaWw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcGFydGlhbHMhOiBJQm1iUGFydGlhbFtdO1xuICBncmFkZUluZGV4ID0gc2lnbmFsPG51bWJlcj4oMCk7XG4gIHBlcmlvZEluZGV4ID0gc2lnbmFsPG51bWJlcj4oMCk7XG4gIG1vZGFsQ29udGVudDogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xuXG4gIEBWaWV3Q2hpbGQoJ2RldGFpbENvbnRlbnQnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIGRldGFpbENvbnRlbnQ/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmlzTWljcm8oKSkge1xuICAgICAgbGV0IGlucHV0czogc3RyaW5nW10gPSBbXTtcblxuICAgICAgaWYgKCF0aGlzLmdyYWRlVGl0bGUoKSkgaW5wdXRzLnB1c2goJ2dyYWRlVGl0bGUnKTtcbiAgICAgIGlmICghdGhpcy50aXRsZSgpKSBpbnB1dHMucHVzaCgndGl0bGUnKTtcbiAgICAgIGlmICghdGhpcy5hY2NyZWRpdGVkKCkpIGlucHV0cy5wdXNoKCdhY2NyZWRpdGVkJyk7XG4gICAgICBpZiAoIXRoaXMuYXZlcmFnZSgpKSBpbnB1dHMucHVzaCgnYXZlcmFnZScpO1xuICAgICAgaWYgKCF0aGlzLnN1bW1hcnkoKSkgaW5wdXRzLnB1c2goJ3N1bW1hcnknKTtcblxuICAgICAgaWYgKGlucHV0cy5sZW5ndGgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBcbiAgICAgICAgICBUaGUgJHtidWlsZEVycm9yTWVzc2FnZShpbnB1dHMpfSByZXF1aXJlZCB3aGVuIFwiaXNNaWNyb1wiIGlzIHRydWUuXG4gICAgICAgICAgYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGV0YWlsQ29udGVudCkge1xuICAgICAgdGhpcy5tb2RhbENvbnRlbnQgPSB0aGlzLmRldGFpbENvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtb2RhbFNlcnZpY2U6IEJtYk5hdGl2ZU1vZGFsU2VydmljZSkge31cblxuICBvcGVuTW9kYWxDb21wb25lbnQoZWxlbWVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5wYXJ0aWFscyA9IGVsZW1lbnQucGFydGlhbHM7XG4gICAgY29uc3QgZGF0YTogSUJtYk5hdGl2ZU1vZGFsID0ge1xuICAgICAgdGl0bGU6IGVsZW1lbnQuZGV0YWlsLnRpdGxlLFxuICAgICAgc3VidGl0bGU6IGVsZW1lbnQuZGV0YWlsLnN1YnRpdGxlLFxuICAgICAgY29udGVudDogdGhpcy5tb2RhbENvbnRlbnQsXG4gICAgICBzaXplOiAnc21hbGwnLFxuICAgIH07XG4gICAgdGhpcy5tb2RhbFNlcnZpY2Uub3Blbk1vZGFsKGRhdGEpO1xuICB9XG5cbiAgZ2V0R3JhZGVzVGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5ncmFkZXMoKVt0aGlzLmdyYWRlSW5kZXgoKV0/LnRpdGxlO1xuICB9XG5cbiAgZ2V0VGl0bGUoKTogc3RyaW5nIHtcbiAgICBjb25zdCBwZXJpb2QgPVxuICAgICAgdGhpcy5ncmFkZXMoKVt0aGlzLmdyYWRlSW5kZXgoKV0/LnBlcmlvZHNbdGhpcy5wZXJpb2RJbmRleCgpXTtcbiAgICBpZiAodGhpcy5zaG93UHJpbmNpcGFsRGV0YWlsKSByZXR1cm4gcGVyaW9kLmRldGFpbC50aXRsZTtcbiAgICByZXR1cm4gdGhpcy5ncmFkZXMoKVt0aGlzLmdyYWRlSW5kZXgoKV0/LnN1YnRpdGxlO1xuICB9XG5cbiAgZ2V0Q2FsZW5kYXJJY29uKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuc2hvd1ByaW5jaXBhbERldGFpbCkgcmV0dXJuICdjYWxlbmRhcl9tb250aCc7XG4gICAgcmV0dXJuICdjYWxlbmRhcl90b2RheSc7XG4gIH1cblxuICBnZXRBY2NyZWRpdGVkQ2xhc3NlcygpOiBudW1iZXIge1xuICAgIGNvbnN0IHBlcmlvZCA9IHRoaXMuZ3JhZGVzKClbdGhpcy5ncmFkZUluZGV4KCldLnBlcmlvZHNbdGhpcy5wZXJpb2RJbmRleCgpXTtcbiAgICBpZiAodGhpcy5zaG93UHJpbmNpcGFsRGV0YWlsKSByZXR1cm4gcGVyaW9kLmFjY3JlZGl0ZWRDbGFzc2VzO1xuICAgIHJldHVybiAwO1xuICB9XG5cbiAgZ2V0UGVyaW9kQXZlcmFnZSgpOiBudW1iZXIge1xuICAgIGNvbnN0IHBlcmlvZCA9IHRoaXMuZ3JhZGVzKClbdGhpcy5ncmFkZUluZGV4KCldLnBlcmlvZHNbdGhpcy5wZXJpb2RJbmRleCgpXTtcbiAgICBpZiAodGhpcy5zaG93UHJpbmNpcGFsRGV0YWlsKSByZXR1cm4gcGVyaW9kLnBlcmlvZEF2ZXJhZ2U7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBnZXRTZXJ2aWNlSG91cnMoKTogbnVtYmVyIHwgYm9vbGVhbiB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5ncmFkZXMoKVt0aGlzLmdyYWRlSW5kZXgoKV0ucGVyaW9kc1t0aGlzLnBlcmlvZEluZGV4KCldLnNlcnZpY2VIb3Vyc1xuICAgICkge1xuICAgICAgY29uc3QgcGVyaW9kID1cbiAgICAgICAgdGhpcy5ncmFkZXMoKVt0aGlzLmdyYWRlSW5kZXgoKV0ucGVyaW9kc1t0aGlzLnBlcmlvZEluZGV4KCldO1xuICAgICAgaWYgKHRoaXMuc2hvd1ByaW5jaXBhbERldGFpbCkgcmV0dXJuIHBlcmlvZC5zZXJ2aWNlSG91cnMgPz8gMDtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXREZXRhaWxUaXRsZShlbGVtZW50OiBhbnkpOiBzdHJpbmcge1xuICAgIHJldHVybiBlbGVtZW50LmRldGFpbC50aXRsZTtcbiAgfVxuXG4gIGdldERldGFpbFN1YnRpdGxlKGVsZW1lbnQ6IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGVsZW1lbnQuZGV0YWlsLnN1YnRpdGxlO1xuICB9XG5cbiAgZ2V0RGV0YWlsU2NvcmUoZWxlbWVudDogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4gZWxlbWVudC5kZXRhaWwuc2NvcmU7XG4gIH1cblxuICBnZXRFbGVtZW50cygpOiBhbnkge1xuICAgIGNvbnN0IHBlcmlvZHMgPSB0aGlzLmdyYWRlcygpW3RoaXMuZ3JhZGVJbmRleCgpXT8ucGVyaW9kcztcbiAgICBpZiAodGhpcy5zaG93UHJpbmNpcGFsRGV0YWlsKSByZXR1cm4gcGVyaW9kc1t0aGlzLnBlcmlvZEluZGV4KCldPy5jbGFzc2VzO1xuICAgIHJldHVybiBwZXJpb2RzO1xuICB9XG5cbiAgaGFuZGxlTGVmdEdyYWRlc0NsaWNrKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlR3JhZGVzLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgaGFuZGxlUmlnaHRHcmFkZXNDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dQcmluY2lwYWxEZXRhaWwgPSBmYWxzZTtcbiAgfVxuXG4gIGhhbmRsZUxlZnRQZXJpb2RDbGljaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zaG93UHJpbmNpcGFsRGV0YWlsKSB7XG4gICAgICBpZiAodGhpcy5wZXJpb2RJbmRleCgpKSB7XG4gICAgICAgIHRoaXMucGVyaW9kSW5kZXgudXBkYXRlKCh2YWx1ZSkgPT4gdmFsdWUgLSAxKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5ncmFkZUluZGV4KCkpIHtcbiAgICAgIHRoaXMuZ3JhZGVJbmRleC51cGRhdGUoKHZhbHVlKSA9PiB2YWx1ZSAtIDEpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZVJpZ2h0UGVyaW9kQ2xpY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2hvd1ByaW5jaXBhbERldGFpbCkge1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLnBlcmlvZEluZGV4KCkgKyAxIDxcbiAgICAgICAgdGhpcy5ncmFkZXMoKVt0aGlzLmdyYWRlSW5kZXgoKV0ucGVyaW9kcy5sZW5ndGhcbiAgICAgICkge1xuICAgICAgICB0aGlzLnBlcmlvZEluZGV4LnVwZGF0ZSgodmFsdWUpID0+IHZhbHVlICsgMSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZ3JhZGVJbmRleCgpICsgMSA8IHRoaXMuZ3JhZGVzKCkubGVuZ3RoKSB7XG4gICAgICB0aGlzLmdyYWRlSW5kZXgudXBkYXRlKCh2YWx1ZSkgPT4gdmFsdWUgKyAxKTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVEZXRhaWxzKGVsZW1lbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNob3dQcmluY2lwYWxEZXRhaWwpIHtcbiAgICAgIHRoaXMub3Blbk1vZGFsQ29tcG9uZW50KGVsZW1lbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5zaG93UHJpbmNpcGFsRGV0YWlsKSB7XG4gICAgICB0aGlzLnNob3dQcmluY2lwYWxEZXRhaWwgPSB0cnVlO1xuICAgICAgdGhpcy5wZXJpb2RJbmRleC5zZXQoXG4gICAgICAgIHRoaXMuZ3JhZGVzKClbdGhpcy5ncmFkZUluZGV4KCldLnBlcmlvZHMuZmluZEluZGV4KFxuICAgICAgICAgIChwZXJpb2QpID0+IHBlcmlvZC5kZXRhaWwudGl0bGUgPT09IGVsZW1lbnQuZGV0YWlsLnRpdGxlLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjZGV0YWlsQ29udGVudD5cbiAgPHNlY3Rpb24gY2xhc3M9XCJibWJfZ3JhZGVzLW1vZGFsXCI+XG4gICAgQGZvciAocGFydGlhbCBvZiBwYXJ0aWFsczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICA8c2VjdGlvblxuICAgICAgICBibWJMYXlvdXRcbiAgICAgICAgbWFyZ2luPVwibm9uZVwiXG4gICAgICAgIGp1c3RpZnk9XCJzcGFjZUJldHdlZW5cIlxuICAgICAgICBbZHluYW1pY0NvbHNdPVwidHJ1ZVwiXG4gICAgICA+XG4gICAgICAgIDxoMiBjbGFzcz1cImJtYl9ncmFkZXMtbW9kYWwtdGl0bGVcIiBibWJMYXlvdXRJdGVtPlxuICAgICAgICAgIHt7IHBhcnRpYWwudGl0bGUgfX1cbiAgICAgICAgPC9oMj5cbiAgICAgICAgPGJtYi1ncmFkZS12YWx1ZVxuICAgICAgICAgIFtzY29yZV09XCJwYXJ0aWFsLnNjb3JlXCJcbiAgICAgICAgICB0eXBlPVwicGFydGlhbC1ncmFkZVwiXG4gICAgICAgICAgYm1iTGF5b3V0SXRlbVxuICAgICAgICAvPlxuICAgICAgPC9zZWN0aW9uPlxuICAgICAgQGlmICgkaW5kZXggPCBwYXJ0aWFscy5sZW5ndGggLSAxKSB7XG4gICAgICAgIDxibWItZGl2aWRlciBbdHlwZV09XCInc2ltcGxlJ1wiIC8+XG4gICAgICB9XG4gICAgfVxuICA8L3NlY3Rpb24+XG48L25nLXRlbXBsYXRlPlxuXG48c2VjdGlvbiBjbGFzcz1cImJtYl9ncmFkZXNcIj5cbiAgQGlmIChpc01pY3JvKCkpIHtcbiAgICA8Ym1iLWNvbnRhaW5lciBhcHBlYXJhbmNlPVwicHJpbWFyeS1ob21lXCIgY2xhc3M9XCJibWJfZ3JhZGVzLW1pY3JvXCI+XG4gICAgICA8Ym1iLXRpdGxlLWNvbnRlbnRcbiAgICAgICAgW3RpdGxlXT1cImdyYWRlVGl0bGUoKSFcIlxuICAgICAgICB0aXRsZVNpemU9XCI0XCJcbiAgICAgICAgdGl0bGVGb250V2VpZ2h0PVwiNTAwXCJcbiAgICAgICAgW2lzQ2VudGVyQ29udGVudF09XCJ0cnVlXCJcbiAgICAgIC8+XG4gICAgICA8Ym1iLXRpdGxlLWNvbnRlbnRcbiAgICAgICAgW3RpdGxlXT1cInRpdGxlKCkhXCJcbiAgICAgICAgdGl0bGVTaXplPVwiNFwiXG4gICAgICAgIHRpdGxlRm9udFdlaWdodD1cIjQwMFwiXG4gICAgICAgIFtpc0NlbnRlckNvbnRlbnRdPVwidHJ1ZVwiXG4gICAgICAvPlxuICAgICAgPGJtYi1hY2FkZW1pYy1wcm9ncmVzc1xuICAgICAgICBbYWNjcmVkaXRlZF09XCJhY2NyZWRpdGVkKCkhXCJcbiAgICAgICAgW2F2ZXJhZ2VdPVwiYXZlcmFnZSgpIVwiXG4gICAgICAgIFtzdW1tYXJ5XT1cInN1bW1hcnkoKSFcIlxuICAgICAgLz5cbiAgICA8L2JtYi1jb250YWluZXI+XG4gIH0gQGVsc2Uge1xuICAgIDxibWItaW5uZXItaGVhZGVyXG4gICAgICBbdGl0bGVdPVwiZ2V0R3JhZGVzVGl0bGUoKVwiXG4gICAgICBbc2hvd0Nsb3NlXT1cInRydWVcIlxuICAgICAgW3RyYWlsaW5nSWNvblNlY29uZGFyeV09XCJnZXRDYWxlbmRhckljb24oKVwiXG4gICAgICAob25IYW5kbGVCYWNrKT1cImhhbmRsZUxlZnRHcmFkZXNDbGljaygkZXZlbnQpXCJcbiAgICAgIChvbkhhbmRsZVRyYWlsaW5nU2Vjb25kYXJ5KT1cImhhbmRsZVJpZ2h0R3JhZGVzQ2xpY2soKVwiXG4gICAgPlxuICAgICAgPGJtYi1jaGV2cm9uLXRpdGxlLXNlbGVjdG9yXG4gICAgICAgIFt0aXRsZV09XCJnZXRUaXRsZSgpXCJcbiAgICAgICAgbGVhZGluZ0ljb249XCJjaGV2cm9uX2xlZnRcIlxuICAgICAgICB0cmFpbGluZ0ljb249XCJjaGV2cm9uX3JpZ2h0XCJcbiAgICAgICAgKG9uTGVhZGluZ0NsaWNrKT1cImhhbmRsZUxlZnRQZXJpb2RDbGljaygpXCJcbiAgICAgICAgKG9uVHJhaWxpbmdDbGljayk9XCJoYW5kbGVSaWdodFBlcmlvZENsaWNrKClcIlxuICAgICAgLz5cbiAgICAgIEBpZiAoc2hvd1ByaW5jaXBhbERldGFpbCkge1xuICAgICAgICA8Ym1iLWFjYWRlbWljLXByb2dyZXNzXG4gICAgICAgICAgW2FjY3JlZGl0ZWRdPVwie1xuICAgICAgICAgICAgbmFtZTogJ01hdGVyaWFzIEFjcmVkaXRhZGFzJyxcbiAgICAgICAgICAgIHZhbHVlOiBnZXRBY2NyZWRpdGVkQ2xhc3NlcygpXG4gICAgICAgICAgfVwiXG4gICAgICAgICAgW2F2ZXJhZ2VdPVwieyBuYW1lOiAnUHJvbWVkaW8gU2VtZXN0cmUnLCB2YWx1ZTogZ2V0UGVyaW9kQXZlcmFnZSgpIH1cIlxuICAgICAgICAgIFtzdW1tYXJ5XT1cInsgbmFtZTogJ0hvcmFzIFNlcnZpY2lvJywgdmFsdWU6IGdldFNlcnZpY2VIb3VycygpIH1cIlxuICAgICAgICAvPlxuICAgICAgfVxuICAgIDwvYm1iLWlubmVyLWhlYWRlcj5cbiAgICA8c2VjdGlvbiBjbGFzcz1cImJtYl9ncmFkZXMtY29udGVudFwiPlxuICAgICAgQGZvciAoZWxlbWVudCBvZiBnZXRFbGVtZW50cygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPGJtYi1jb250YWluZXItYnV0dG9uXG4gICAgICAgICAgW3RpdGxlXT1cImdldERldGFpbFRpdGxlKGVsZW1lbnQpXCJcbiAgICAgICAgICBbc3VidGl0bGVdPVwiZ2V0RGV0YWlsU3VidGl0bGUoZWxlbWVudClcIlxuICAgICAgICAgIFtzY29yZV09XCJnZXREZXRhaWxTY29yZShlbGVtZW50KVwiXG4gICAgICAgICAgaWNvbkxlZnQ9XCJjaGV2cm9uX2xlZnRcIlxuICAgICAgICAgIGljb25SaWdodD1cImNoZXZyb25fcmlnaHRcIlxuICAgICAgICAgIFtzZXRCdXR0b25UZW1wbGF0ZV09XCJ0cnVlXCJcbiAgICAgICAgICAob25CdXR0b24pPVwiaGFuZGxlRGV0YWlscyhlbGVtZW50KVwiXG4gICAgICAgIC8+XG4gICAgICB9XG4gICAgPC9zZWN0aW9uPlxuICB9XG48L3NlY3Rpb24+XG4iXX0=
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm1iLWdyYWRlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kcy1uZy9zcmMvbGliL2NvbXBvbmVudHMvYm1iLWdyYWRlcy9ibWItZ3JhZGVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItZ3JhZGVzL2JtYi1ncmFkZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUVMLE1BQU0sRUFDTixNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDdEgsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDckcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDL0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFdEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBRXhHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFB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QUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FDaEQsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxLQUFLLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUN6RCxDQUNGLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQzsrR0F4S1Usa0JBQWtCO21HQUFsQixrQkFBa0IsaWxDQWlCTyxXQUFXLDZCQ2xFakQsOHBGQXVGQSw2eU1EdkRJLFlBQVksK0JBQ1osZ0NBQWdDLDBRQUNoQywyQkFBMkIsMlpBQzNCLG1CQUFtQiwwRUFDbkIsd0JBQXdCLG9TQUN4Qiw0QkFBNEIsZ0hBQzVCLGtCQUFrQiwrSEFDbEIsc0JBQXNCLGlKQUN0QixzQkFBc0IsNkdBQ3RCLHVCQUF1QiwwWEFDdkIscUJBQXFCOzs0RkFPWixrQkFBa0I7a0JBckI5QixTQUFTOytCQUNFLFlBQVksY0FDVixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixnQ0FBZ0M7d0JBQ2hDLDJCQUEyQjt3QkFDM0IsbUJBQW1CO3dCQUNuQix3QkFBd0I7d0JBQ3hCLDRCQUE0Qjt3QkFDNUIsa0JBQWtCO3dCQUNsQixzQkFBc0I7d0JBQ3RCLHNCQUFzQjt3QkFDdEIsdUJBQXVCO3dCQUN2QixxQkFBcUI7cUJBQ3RCLGlCQUdjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07MEZBb0IvQyxhQUFhO3NCQURaLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGlucHV0LFxuICBPbkluaXQsXG4gIG91dHB1dCxcbiAgc2lnbmFsLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCbWJDaGV2cm9uVGl0bGVTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1jaGV2cm9uLXRpdGxlLXNlbGVjdG9yL2JtYi1jaGV2cm9uLXRpdGxlLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCbWJDb250YWluZXJCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9ibWItY29udGFpbmVyLWJ1dHRvbi9ibWItY29udGFpbmVyLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQm1iRGl2aWRlckNvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1kaXZpZGVyL2JtYi1kaXZpZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCbWJMYXlvdXRJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9ibWItbGF5b3V0L2JtYi1sYXlvdXQtaXRlbS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQm1iTGF5b3V0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9ibWItbGF5b3V0L2JtYi1sYXlvdXQuZGlyZWN0aXZlJztcbmltcG9ydCB7IElCbWJHcmFkZXMsIElCbWJQYXJ0aWFsIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQm1iR3JhZGVWYWx1ZUNvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1ncmFkZS12YWx1ZS9ibWItZ3JhZGUtdmFsdWUuY29tcG9uZW50JztcbmltcG9ydCB7IEJtYklubmVySGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLWlubmVyLWhlYWRlci9ibWItaW5uZXItaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCbWJBY2FkZW1pY1Byb2dyZXNzQ29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLWFjYWRlbWljLXByb2dyZXNzL2JtYi1hY2FkZW1pYy1wcm9ncmVzcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgSUJtYk5hbWVWYWx1ZVBhaXIgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBCbWJDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi9ibWItY29udGFpbmVyL2JtYi1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IGJ1aWxkRXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbHMnO1xuaW1wb3J0IHsgQm1iVGl0bGVDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLXRpdGxlLWNvbnRlbnQvYm1iLXRpdGxlLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IElCbWJOYXRpdmVNb2RhbCB9IGZyb20gJy4uL2JtYi1tb2RhbC9ibWItbW9kYWwuaW50ZXJmYWNlJztcbmltcG9ydCB7IEJtYk5hdGl2ZU1vZGFsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25hdGl2ZS1tb2RhbC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYm1iLWdyYWRlcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQm1iQ2hldnJvblRpdGxlU2VsZWN0b3JDb21wb25lbnQsXG4gICAgQm1iQ29udGFpbmVyQnV0dG9uQ29tcG9uZW50LFxuICAgIEJtYkRpdmlkZXJDb21wb25lbnQsXG4gICAgQm1iVGl0bGVDb250ZW50Q29tcG9uZW50LFxuICAgIEJtYkFjYWRlbWljUHJvZ3Jlc3NDb21wb25lbnQsXG4gICAgQm1iTGF5b3V0RGlyZWN0aXZlLFxuICAgIEJtYkxheW91dEl0ZW1EaXJlY3RpdmUsXG4gICAgQm1iR3JhZGVWYWx1ZUNvbXBvbmVudCxcbiAgICBCbWJJbm5lckhlYWRlckNvbXBvbmVudCxcbiAgICBCbWJDb250YWluZXJDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9ibWItZ3JhZGVzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2JtYi1ncmFkZXMuY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQm1iR3JhZGVzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgZ3JhZGVzID0gaW5wdXQ8SUJtYkdyYWRlc1tdPihbXSk7XG4gIGlzTWljcm8gPSBpbnB1dDxib29sZWFuPigpO1xuICBncmFkZVRpdGxlID0gaW5wdXQ8c3RyaW5nPigpO1xuICB0aXRsZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgYWNjcmVkaXRlZCA9IGlucHV0PElCbWJOYW1lVmFsdWVQYWlyPigpO1xuICBhdmVyYWdlID0gaW5wdXQ8SUJtYk5hbWVWYWx1ZVBhaXI+KCk7XG4gIHN1bW1hcnkgPSBpbnB1dDxJQm1iTmFtZVZhbHVlUGFpcj4oKTtcblxuICBjbG9zZUdyYWRlcyA9IG91dHB1dCgpO1xuXG4gIHNob3dQcmluY2lwYWxEZXRhaWw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcGFydGlhbHMhOiBJQm1iUGFydGlhbFtdO1xuICBncmFkZUluZGV4ID0gc2lnbmFsPG51bWJlcj4oMCk7XG4gIHBlcmlvZEluZGV4ID0gc2lnbmFsPG51bWJlcj4oMCk7XG4gIG1vZGFsQ29udGVudDogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xuXG4gIEBWaWV3Q2hpbGQoJ2RldGFpbENvbnRlbnQnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIGRldGFpbENvbnRlbnQ/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmlzTWljcm8oKSkge1xuICAgICAgbGV0IGlucHV0czogc3RyaW5nW10gPSBbXTtcblxuICAgICAgaWYgKCF0aGlzLmdyYWRlVGl0bGUoKSkgaW5wdXRzLnB1c2goJ2dyYWRlVGl0bGUnKTtcbiAgICAgIGlmICghdGhpcy50aXRsZSgpKSBpbnB1dHMucHVzaCgndGl0bGUnKTtcbiAgICAgIGlmICghdGhpcy5hY2NyZWRpdGVkKCkpIGlucHV0cy5wdXNoKCdhY2NyZWRpdGVkJyk7XG4gICAgICBpZiAoIXRoaXMuYXZlcmFnZSgpKSBpbnB1dHMucHVzaCgnYXZlcmFnZScpO1xuICAgICAgaWYgKCF0aGlzLnN1bW1hcnkoKSkgaW5wdXRzLnB1c2goJ3N1bW1hcnknKTtcblxuICAgICAgaWYgKGlucHV0cy5sZW5ndGgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBcbiAgICAgICAgICBUaGUgJHtidWlsZEVycm9yTWVzc2FnZShpbnB1dHMpfSByZXF1aXJlZCB3aGVuIFwiaXNNaWNyb1wiIGlzIHRydWUuXG4gICAgICAgICAgYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGV0YWlsQ29udGVudCkge1xuICAgICAgdGhpcy5tb2RhbENvbnRlbnQgPSB0aGlzLmRldGFpbENvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtb2RhbFNlcnZpY2U6IEJtYk5hdGl2ZU1vZGFsU2VydmljZSkge31cblxuICBvcGVuTW9kYWxDb21wb25lbnQoZWxlbWVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5wYXJ0aWFscyA9IGVsZW1lbnQucGFydGlhbHM7XG4gICAgY29uc3QgZGF0YTogSUJtYk5hdGl2ZU1vZGFsID0ge1xuICAgICAgdGl0bGU6IGVsZW1lbnQuZGV0YWlsLnRpdGxlLFxuICAgICAgc3VidGl0bGU6IGVsZW1lbnQuZGV0YWlsLnN1YnRpdGxlLFxuICAgICAgY29udGVudDogdGhpcy5tb2RhbENvbnRlbnQsXG4gICAgICBzaXplOiAnc21hbGwnLFxuICAgIH07XG4gICAgdGhpcy5tb2RhbFNlcnZpY2Uub3Blbk1vZGFsKGRhdGEpO1xuICB9XG5cbiAgZ2V0R3JhZGVzVGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5ncmFkZXMoKVt0aGlzLmdyYWRlSW5kZXgoKV0/LnRpdGxlO1xuICB9XG5cbiAgZ2V0VGl0bGUoKTogc3RyaW5nIHtcbiAgICBjb25zdCBwZXJpb2QgPVxuICAgICAgdGhpcy5ncmFkZXMoKVt0aGlzLmdyYWRlSW5kZXgoKV0/LnBlcmlvZHNbdGhpcy5wZXJpb2RJbmRleCgpXTtcbiAgICBpZiAodGhpcy5zaG93UHJpbmNpcGFsRGV0YWlsKSByZXR1cm4gcGVyaW9kLmRldGFpbC50aXRsZTtcbiAgICByZXR1cm4gdGhpcy5ncmFkZXMoKVt0aGlzLmdyYWRlSW5kZXgoKV0/LnN1YnRpdGxlO1xuICB9XG5cbiAgZ2V0Q2FsZW5kYXJJY29uKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuc2hvd1ByaW5jaXBhbERldGFpbCkgcmV0dXJuICdjYWxlbmRhcl9tb250aCc7XG4gICAgcmV0dXJuICdjYWxlbmRhcl90b2RheSc7XG4gIH1cblxuICBnZXRBY2NyZWRpdGVkQ2xhc3NlcygpOiBudW1iZXIge1xuICAgIGNvbnN0IHBlcmlvZCA9IHRoaXMuZ3JhZGVzKClbdGhpcy5ncmFkZUluZGV4KCldLnBlcmlvZHNbdGhpcy5wZXJpb2RJbmRleCgpXTtcbiAgICBpZiAodGhpcy5zaG93UHJpbmNpcGFsRGV0YWlsKSByZXR1cm4gcGVyaW9kLmFjY3JlZGl0ZWRDbGFzc2VzO1xuICAgIHJldHVybiAwO1xuICB9XG5cbiAgZ2V0UGVyaW9kQXZlcmFnZSgpOiBudW1iZXIge1xuICAgIGNvbnN0IHBlcmlvZCA9IHRoaXMuZ3JhZGVzKClbdGhpcy5ncmFkZUluZGV4KCldLnBlcmlvZHNbdGhpcy5wZXJpb2RJbmRleCgpXTtcbiAgICBpZiAodGhpcy5zaG93UHJpbmNpcGFsRGV0YWlsKSByZXR1cm4gcGVyaW9kLnBlcmlvZEF2ZXJhZ2U7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBnZXRTZXJ2aWNlSG91cnMoKTogbnVtYmVyIHwgYm9vbGVhbiB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5ncmFkZXMoKVt0aGlzLmdyYWRlSW5kZXgoKV0ucGVyaW9kc1t0aGlzLnBlcmlvZEluZGV4KCldLnNlcnZpY2VIb3Vyc1xuICAgICkge1xuICAgICAgY29uc3QgcGVyaW9kID1cbiAgICAgICAgdGhpcy5ncmFkZXMoKVt0aGlzLmdyYWRlSW5kZXgoKV0ucGVyaW9kc1t0aGlzLnBlcmlvZEluZGV4KCldO1xuICAgICAgaWYgKHRoaXMuc2hvd1ByaW5jaXBhbERldGFpbCkgcmV0dXJuIHBlcmlvZC5zZXJ2aWNlSG91cnMgPz8gMDtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXREZXRhaWxUaXRsZShlbGVtZW50OiBhbnkpOiBzdHJpbmcge1xuICAgIHJldHVybiBlbGVtZW50LmRldGFpbC50aXRsZTtcbiAgfVxuXG4gIGdldERldGFpbFN1YnRpdGxlKGVsZW1lbnQ6IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGVsZW1lbnQuZGV0YWlsLnN1YnRpdGxlO1xuICB9XG5cbiAgZ2V0RGV0YWlsU2NvcmUoZWxlbWVudDogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4gZWxlbWVudC5kZXRhaWwuc2NvcmU7XG4gIH1cblxuICBnZXRFbGVtZW50cygpOiBhbnkge1xuICAgIGNvbnN0IHBlcmlvZHMgPSB0aGlzLmdyYWRlcygpW3RoaXMuZ3JhZGVJbmRleCgpXT8ucGVyaW9kcztcbiAgICBpZiAodGhpcy5zaG93UHJpbmNpcGFsRGV0YWlsKSByZXR1cm4gcGVyaW9kc1t0aGlzLnBlcmlvZEluZGV4KCldPy5jbGFzc2VzO1xuICAgIHJldHVybiBwZXJpb2RzO1xuICB9XG5cbiAgaGFuZGxlTGVmdEdyYWRlc0NsaWNrKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlR3JhZGVzLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgaGFuZGxlUmlnaHRHcmFkZXNDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dQcmluY2lwYWxEZXRhaWwgPSBmYWxzZTtcbiAgfVxuXG4gIGhhbmRsZUxlZnRQZXJpb2RDbGljaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zaG93UHJpbmNpcGFsRGV0YWlsKSB7XG4gICAgICBpZiAodGhpcy5wZXJpb2RJbmRleCgpKSB7XG4gICAgICAgIHRoaXMucGVyaW9kSW5kZXgudXBkYXRlKCh2YWx1ZSkgPT4gdmFsdWUgLSAxKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5ncmFkZUluZGV4KCkpIHtcbiAgICAgIHRoaXMuZ3JhZGVJbmRleC51cGRhdGUoKHZhbHVlKSA9PiB2YWx1ZSAtIDEpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZVJpZ2h0UGVyaW9kQ2xpY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2hvd1ByaW5jaXBhbERldGFpbCkge1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLnBlcmlvZEluZGV4KCkgKyAxIDxcbiAgICAgICAgdGhpcy5ncmFkZXMoKVt0aGlzLmdyYWRlSW5kZXgoKV0ucGVyaW9kcy5sZW5ndGhcbiAgICAgICkge1xuICAgICAgICB0aGlzLnBlcmlvZEluZGV4LnVwZGF0ZSgodmFsdWUpID0+IHZhbHVlICsgMSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZ3JhZGVJbmRleCgpICsgMSA8IHRoaXMuZ3JhZGVzKCkubGVuZ3RoKSB7XG4gICAgICB0aGlzLmdyYWRlSW5kZXgudXBkYXRlKCh2YWx1ZSkgPT4gdmFsdWUgKyAxKTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVEZXRhaWxzKGVsZW1lbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNob3dQcmluY2lwYWxEZXRhaWwpIHtcbiAgICAgIHRoaXMub3Blbk1vZGFsQ29tcG9uZW50KGVsZW1lbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5zaG93UHJpbmNpcGFsRGV0YWlsKSB7XG4gICAgICB0aGlzLnNob3dQcmluY2lwYWxEZXRhaWwgPSB0cnVlO1xuICAgICAgdGhpcy5wZXJpb2RJbmRleC5zZXQoXG4gICAgICAgIHRoaXMuZ3JhZGVzKClbdGhpcy5ncmFkZUluZGV4KCldLnBlcmlvZHMuZmluZEluZGV4KFxuICAgICAgICAgIChwZXJpb2QpID0+IHBlcmlvZC5kZXRhaWwudGl0bGUgPT09IGVsZW1lbnQuZGV0YWlsLnRpdGxlLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjZGV0YWlsQ29udGVudD5cbiAgPHNlY3Rpb24gY2xhc3M9XCJibWJfZ3JhZGVzLW1vZGFsXCI+XG4gICAgQGZvciAocGFydGlhbCBvZiBwYXJ0aWFsczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICA8c2VjdGlvblxuICAgICAgICBibWJMYXlvdXRcbiAgICAgICAgbWFyZ2luPVwibm9uZVwiXG4gICAgICAgIGp1c3RpZnk9XCJzcGFjZUJldHdlZW5cIlxuICAgICAgICBbZHluYW1pY0NvbHNdPVwidHJ1ZVwiXG4gICAgICA+XG4gICAgICAgIDxoMiBjbGFzcz1cImJtYl9ncmFkZXMtbW9kYWwtdGl0bGVcIiBibWJMYXlvdXRJdGVtPlxuICAgICAgICAgIHt7IHBhcnRpYWwudGl0bGUgfX1cbiAgICAgICAgPC9oMj5cbiAgICAgICAgPGJtYi1ncmFkZS12YWx1ZVxuICAgICAgICAgIFtzY29yZV09XCJwYXJ0aWFsLnNjb3JlXCJcbiAgICAgICAgICB0eXBlPVwicGFydGlhbC1ncmFkZVwiXG4gICAgICAgICAgYm1iTGF5b3V0SXRlbVxuICAgICAgICAvPlxuICAgICAgPC9zZWN0aW9uPlxuICAgICAgQGlmICgkaW5kZXggPCBwYXJ0aWFscy5sZW5ndGggLSAxKSB7XG4gICAgICAgIDxibWItZGl2aWRlciBbdHlwZV09XCInc2ltcGxlJ1wiIC8+XG4gICAgICB9XG4gICAgfVxuICA8L3NlY3Rpb24+XG48L25nLXRlbXBsYXRlPlxuXG48c2VjdGlvbiBjbGFzcz1cImJtYl9ncmFkZXNcIj5cbiAgQGlmIChpc01pY3JvKCkpIHtcbiAgICA8Ym1iLWNvbnRhaW5lciBhcHBlYXJhbmNlPVwicHJpbWFyeS1ob21lXCIgY2xhc3M9XCJibWJfZ3JhZGVzLW1pY3JvXCI+XG4gICAgICA8Ym1iLXRpdGxlLWNvbnRlbnRcbiAgICAgICAgW3RpdGxlXT1cImdyYWRlVGl0bGUoKSFcIlxuICAgICAgICB0aXRsZVNpemU9XCI0XCJcbiAgICAgICAgdGl0bGVGb250V2VpZ2h0PVwiNTAwXCJcbiAgICAgICAgW2lzQ2VudGVyQ29udGVudF09XCJ0cnVlXCJcbiAgICAgIC8+XG4gICAgICA8Ym1iLXRpdGxlLWNvbnRlbnRcbiAgICAgICAgW3RpdGxlXT1cInRpdGxlKCkhXCJcbiAgICAgICAgdGl0bGVTaXplPVwiNFwiXG4gICAgICAgIHRpdGxlRm9udFdlaWdodD1cIjQwMFwiXG4gICAgICAgIFtpc0NlbnRlckNvbnRlbnRdPVwidHJ1ZVwiXG4gICAgICAvPlxuICAgICAgPGJtYi1hY2FkZW1pYy1wcm9ncmVzc1xuICAgICAgICBbYWNjcmVkaXRlZF09XCJhY2NyZWRpdGVkKCkhXCJcbiAgICAgICAgW2F2ZXJhZ2VdPVwiYXZlcmFnZSgpIVwiXG4gICAgICAgIFtzdW1tYXJ5XT1cInN1bW1hcnkoKSFcIlxuICAgICAgLz5cbiAgICA8L2JtYi1jb250YWluZXI+XG4gIH0gQGVsc2Uge1xuICAgIDxibWItaW5uZXItaGVhZGVyXG4gICAgICBbdGl0bGVdPVwiZ2V0R3JhZGVzVGl0bGUoKVwiXG4gICAgICBbc2hvd0Nsb3NlXT1cInRydWVcIlxuICAgICAgW3RyYWlsaW5nSWNvblNlY29uZGFyeV09XCJnZXRDYWxlbmRhckljb24oKVwiXG4gICAgICAob25IYW5kbGVCYWNrKT1cImhhbmRsZUxlZnRHcmFkZXNDbGljaygkZXZlbnQpXCJcbiAgICAgIChvbkhhbmRsZVRyYWlsaW5nU2Vjb25kYXJ5KT1cImhhbmRsZVJpZ2h0R3JhZGVzQ2xpY2soKVwiXG4gICAgPlxuICAgICAgPGJtYi1jaGV2cm9uLXRpdGxlLXNlbGVjdG9yXG4gICAgICAgIFt0aXRsZV09XCJnZXRUaXRsZSgpXCJcbiAgICAgICAgbGVhZGluZ0ljb249XCJjaGV2cm9uX2xlZnRcIlxuICAgICAgICB0cmFpbGluZ0ljb249XCJjaGV2cm9uX3JpZ2h0XCJcbiAgICAgICAgKG9uTGVhZGluZ0NsaWNrKT1cImhhbmRsZUxlZnRQZXJpb2RDbGljaygpXCJcbiAgICAgICAgKG9uVHJhaWxpbmdDbGljayk9XCJoYW5kbGVSaWdodFBlcmlvZENsaWNrKClcIlxuICAgICAgLz5cbiAgICAgIEBpZiAoc2hvd1ByaW5jaXBhbERldGFpbCkge1xuICAgICAgICA8Ym1iLWFjYWRlbWljLXByb2dyZXNzXG4gICAgICAgICAgW2FjY3JlZGl0ZWRdPVwie1xuICAgICAgICAgICAgbmFtZTogJ01hdGVyaWFzIEFjcmVkaXRhZGFzJyxcbiAgICAgICAgICAgIHZhbHVlOiBnZXRBY2NyZWRpdGVkQ2xhc3NlcygpXG4gICAgICAgICAgfVwiXG4gICAgICAgICAgW2F2ZXJhZ2VdPVwieyBuYW1lOiAnUHJvbWVkaW8gU2VtZXN0cmUnLCB2YWx1ZTogZ2V0UGVyaW9kQXZlcmFnZSgpIH1cIlxuICAgICAgICAgIFtzdW1tYXJ5XT1cInsgbmFtZTogJ0hvcmFzIFNlcnZpY2lvJywgdmFsdWU6IGdldFNlcnZpY2VIb3VycygpIH1cIlxuICAgICAgICAvPlxuICAgICAgfVxuICAgIDwvYm1iLWlubmVyLWhlYWRlcj5cbiAgICA8c2VjdGlvbiBjbGFzcz1cImJtYl9ncmFkZXMtY29udGVudFwiPlxuICAgICAgQGZvciAoZWxlbWVudCBvZiBnZXRFbGVtZW50cygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPGJtYi1jb250YWluZXItYnV0dG9uXG4gICAgICAgICAgW3RpdGxlXT1cImdldERldGFpbFRpdGxlKGVsZW1lbnQpXCJcbiAgICAgICAgICBbc3VidGl0bGVdPVwiZ2V0RGV0YWlsU3VidGl0bGUoZWxlbWVudClcIlxuICAgICAgICAgIFtzY29yZV09XCJnZXREZXRhaWxTY29yZShlbGVtZW50KVwiXG4gICAgICAgICAgaWNvbkxlZnQ9XCJjaGV2cm9uX2xlZnRcIlxuICAgICAgICAgIGljb25SaWdodD1cImNoZXZyb25fcmlnaHRcIlxuICAgICAgICAgIFtzZXRCdXR0b25UZW1wbGF0ZV09XCJ0cnVlXCJcbiAgICAgICAgICAob25CdXR0b24pPVwiaGFuZGxlRGV0YWlscyhlbGVtZW50KVwiXG4gICAgICAgIC8+XG4gICAgICB9XG4gICAgPC9zZWN0aW9uPlxuICB9XG48L3NlY3Rpb24+XG4iXX0=