@rededor/site-front-end-lib 1.3.24 → 1.3.25

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.
@@ -29,7 +29,9 @@ export class FilterGenericComponent {
29
29
  this.selectedFiltersCount = 0;
30
30
  this.windowWidth = 0;
31
31
  this.styleBinding = {
32
+ '--font-family': this.curaService.getFontFamily(''),
32
33
  '--neutral-opacity-black': this.curaService.getColor('neutral-black', 0.2),
34
+ '--neutral-dark': this.curaService.getColor('neutral-dark'),
33
35
  '--neutral-darker': this.curaService.getColor('neutral-darker'),
34
36
  '--neutral-medium': this.curaService.getColor('neutral-medium'),
35
37
  '--neutral-light': this.curaService.getColor('neutral-light'),
@@ -198,11 +200,11 @@ export class FilterGenericComponent {
198
200
  return Object.values(filterData).every((val) => val === null || val === '' || (Array.isArray(val) && val.length === 0));
199
201
  }
200
202
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FilterGenericComponent, deps: [{ token: i1.CuraService }, { token: i0.ChangeDetectorRef }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component }); }
201
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: FilterGenericComponent, isStandalone: true, selector: "rdsite-filter-generic", inputs: { withContainerStyle: "withContainerStyle", showClearButton: "showClearButton", showApplyButton: "showApplyButton", showCloseButton: "showCloseButton", disableButtonsWithoutSelection: "disableButtonsWithoutSelection", showBadge: "showBadge", showToggleIcon: "showToggleIcon", isFilterOpen: "isFilterOpen", mobileBehavior: "mobileBehavior", forceCollapsed: "forceCollapsed", emitOnReset: "emitOnReset", textTitle: "textTitle", sections: "sections" }, outputs: { filterChange: "filterChange", closeModal: "closeModal", openMobileFilter: "openMobileFilter" }, host: { properties: { "style": "this.styleBinding" } }, ngImport: i0, template: "<div\r\n class=\"filter-generic\"\r\n [ngClass]=\"{ 'container-style': withContainerStyle, 'clickable-mobile': shouldHandleMobileClick() }\"\r\n aria-label=\"Filtros\"\r\n (click)=\"handleMobileClick()\"\r\n>\r\n <div class=\"filter-header-container\" [ngClass]=\"{ 'no-padding': !isFilterOpen, hidden: !isFilterOpen }\">\r\n <div class=\"filter-title-wrapper\">\r\n <cura-label size=\"medium\" level=\"4\" color=\"neutral-black\" weight=\"regular\" margin-block=\"0\" line-height=\"16px\">\r\n {{ textTitle }}\r\n </cura-label>\r\n\r\n @if (showBadge) {\r\n <cura-badge-counter\r\n [type]=\"'solid'\"\r\n [color]=\"hasSelection() ? 'primary' : 'neutral'\"\r\n [number]=\"selectedFiltersCount\"\r\n class=\"filter-badge\"\r\n ></cura-badge-counter>\r\n }\r\n </div>\r\n\r\n @if (showToggleIcon) {\r\n <cura-button-transparent size=\"small\" font-color=\"dark\" color=\"primary\" text-align=\"center\" (click)=\"toggleFilter()\" [attr.aria-expanded]=\"isFilterOpen\">\r\n <cura-icon [name]=\"isFilterOpen ? 'up' : 'down'\" size=\"16\" class=\"filter-icon\" color=\"primary-dark\"></cura-icon>\r\n </cura-button-transparent>\r\n }\r\n </div>\r\n\r\n <div class=\"filter-content\" [class.hidden]=\"!isFilterOpen || (forceCollapsed && isMobile())\">\r\n @for (section of sections; track section.type) {\r\n @if (section.visible !== false) {\r\n <div class=\"filter-section\">\r\n @switch (section.type) {\r\n @case ('input') {\r\n <cura-input-text\r\n [placeholder]=\"section.config.placeholder || ''\"\r\n [name]=\"section.config.name || ''\"\r\n [iconName]=\"section.config.iconName || ''\"\r\n [attr.value]=\"section.config.control.value\"\r\n (valueChange)=\"handleInputChange($event, section.config.control)\"\r\n ></cura-input-text>\r\n }\r\n @case ('select') {\r\n <cura-select\r\n [label]=\"section.config.label || ''\"\r\n [placeholder]=\"section.config.placeholder || ''\"\r\n [attr.value]=\"section.config.control.value\"\r\n (selected)=\"handleSelectChange($event, section.config.control)\"\r\n >\r\n @if (section.config.includeDefaultOption) {\r\n <cura-select-option [attr.value]=\"''\">{{ section.config.defaultOptionText || 'Fa\u00E7a a sua Sele\u00E7\u00E3o' }}</cura-select-option>\r\n }\r\n @for (option of section.config.options || []; track option?.value) {\r\n <cura-select-option [attr.value]=\"option?.value\">{{ option?.label }}</cura-select-option>\r\n }\r\n </cura-select>\r\n }\r\n @case ('checkbox-group') {\r\n @if (section.config.title) {\r\n <div class=\"filter-header\">\r\n <cura-icon name=\"filter\" size=\"20\" color=\"info-dark\"></cura-icon>\r\n <cura-heading size=\"xsmall\" level=\"5\" weight=\"bold\" color=\"neutral-black\" margin-block=\"0\" line-height=\"16px\">\r\n {{ section.config.title }}\r\n </cura-heading>\r\n </div>\r\n }\r\n @if (section.config.subtitle) {\r\n <div class=\"filter-subtitle\">\r\n <cura-heading size=\"xsmall\" weight=\"bold\" color=\"neutral-black\" margin-block=\"0\">\r\n {{ section.config.subtitle }}\r\n </cura-heading>\r\n </div>\r\n }\r\n\r\n @if (section.config.description) {\r\n <div class=\"filter-description\">\r\n <cura-paragraph size=\"xsmall\" color=\"neutral-dark\" margin-block=\"0\">\r\n {{ section.config.description }}\r\n </cura-paragraph>\r\n </div>\r\n }\r\n\r\n <div class=\"filter-checkboxes\" [class.scrollable]=\"hasScroll(section)\">\r\n @for (option of section.config.options || []; track option?.value) {\r\n <cura-checkbox\r\n color=\"primary\"\r\n size=\"small\"\r\n icon-color=\"light\"\r\n [attr.name]=\"option?.label\"\r\n [attr.label]=\"option?.label\"\r\n [attr.value]=\"option?.value\"\r\n [attr.checked]=\"option?.checked\"\r\n (onchange)=\"handleCheckboxChange($event, section.config.options)\"\r\n ></cura-checkbox>\r\n }\r\n </div>\r\n }\r\n @case ('radio-group') {\r\n <div class=\"filter-radios\" [class.scrollable]=\"hasScroll(section)\">\r\n @for (option of section.config.options || []; track option?.value) {\r\n <cura-radio\r\n [name]=\"section.config.name || 'radio-group'\"\r\n [label]=\"option.label\"\r\n [value]=\"option.value\"\r\n [checked]=\"getRadioGroupValue(section.config.control) === option.value\"\r\n (onchange)=\"handleRadioChange($event, section.config.control)\"\r\n ></cura-radio>\r\n }\r\n </div>\r\n }\r\n @case ('custom') {\r\n <ng-container *ngTemplateOutlet=\"section.config.template\"></ng-container>\r\n }\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n\r\n <div class=\"filter-actions\" [class.hidden]=\"!isFilterOpen || (forceCollapsed && isMobile())\">\r\n <div class=\"main-actions\">\r\n @if (showClearButton) {\r\n <cura-button-transparent\r\n size=\"small\"\r\n font-color=\"dark\"\r\n color=\"primary\"\r\n text-align=\"center\"\r\n [disabled]=\"disableButtonsWithoutSelection && !hasSelection()\"\r\n (click)=\"reset()\"\r\n >\r\n <span>Limpar todos os filtros</span>\r\n </cura-button-transparent>\r\n }\r\n\r\n @if (showApplyButton) {\r\n <cura-button\r\n size=\"medium\"\r\n font-color=\"light\"\r\n color=\"primary\"\r\n text-align=\"center\"\r\n (click)=\"filter()\"\r\n [disabled]=\"disableButtonsWithoutSelection && !hasSelection()\"\r\n class=\"filter-button\"\r\n >\r\n Filtrar\r\n </cura-button>\r\n }\r\n </div>\r\n\r\n @if (showCloseButton) {\r\n <div class=\"divider-strong\"></div>\r\n <div class=\"close-action-wrapper\">\r\n <div class=\"close-action\" (click)=\"close()\">\r\n <cura-icon name=\"close\" color=\"error-dark\" size=\"small\"></cura-icon>\r\n <cura-button-transparent size=\"\" type=\"button\" color=\"error\" target=\"_self\"> Fechar </cura-button-transparent>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: [":host *{font-family:Gotham,Roboto,sans-serif}.filter-generic{display:flex;flex-direction:column;gap:18px}.filter-generic.clickable-mobile{cursor:pointer}.filter-generic.clickable-mobile:hover{background-color:var(--primary-lighter)}.filter-generic.container-style{width:100%;padding:20px;border-radius:12px;border:2px solid var(--neutral-lighter);background-color:var(--neutral-purewhite)}.filter-generic cura-loader-circle{display:flex;justify-content:center;align-items:center;width:100%;min-height:100px}.filter-header-container{display:flex;padding-bottom:12px;align-items:center}.filter-header-container.no-padding{padding-bottom:0}.filter-header-container .filter-title-wrapper{display:flex;align-items:center;justify-content:space-between;flex:1 0 0}.filter-header-container .filter-badge{display:flex;height:20px;min-width:20px;justify-content:center;align-items:center;gap:4px}.filter-header-container .filter-icon{display:block}.filter-content,.filter-actions{transition:all .3s ease}.filter-content.hidden,.filter-actions.hidden{display:none;height:0;overflow:hidden;opacity:0;margin:0;padding:0}.filter-section{display:flex;flex-direction:column;gap:24px}.filter-section .filter-header{display:flex;align-items:center;gap:14px}.filter-section .filter-subtitle{font-weight:500}.filter-section .filter-description{display:flex;flex-direction:column;gap:8px}.filter-section .filter-description:after{content:\"\";display:block;width:100%;height:1px;background-color:var(--neutral-light);margin-top:12px;grid-column:1/-1}.filter-section .filter-checkboxes{display:grid;grid-template-columns:repeat(2,1fr);gap:11px 0px}.filter-section .filter-checkboxes.scrollable{max-height:100px;overflow-y:auto;grid-template-columns:1fr;padding-right:8px;gap:12px}.filter-section .filter-checkboxes.scrollable::-webkit-scrollbar{width:8px}.filter-section .filter-checkboxes.scrollable::-webkit-scrollbar-thumb{background:var(--neutral-medium)}.filter-section .filter-checkboxes.scrollable::-webkit-scrollbar-thumb:hover{background:var(--primary-base)}.filter-section .filter-checkboxes.scrollable::-webkit-scrollbar-track{background:var(--neutral-opacity-black)}.filter-section .filter-checkboxes.scrollable:after{display:none}.filter-section .filter-radios{display:flex;flex-direction:column;gap:12px}.filter-section .filter-radios.scrollable{max-height:100px;overflow-y:auto;padding-right:8px;gap:8px}.filter-section .filter-radios.scrollable::-webkit-scrollbar{width:8px}.filter-section .filter-radios.scrollable::-webkit-scrollbar-thumb{background:var(--neutral-medium)}.filter-section .filter-radios.scrollable::-webkit-scrollbar-thumb:hover{background:var(--primary-base)}.filter-section .filter-radios.scrollable::-webkit-scrollbar-track{background:var(--neutral-opacity-black)}.filter-section .filter-radios.scrollable:after{display:none}@media screen and (max-width: 1024px){.filter-checkboxes.scrollable,.filter-radios.scrollable{max-height:100px}.filter-checkboxes:after{display:none;background-color:transparent}}.filter-actions{display:flex;flex-direction:column;gap:0}.filter-actions:before{content:\"\";display:block;width:100%;height:1px;background:linear-gradient(90deg,var(--neutral-light) 75%,transparent 15%);background-size:10px 1px;background-repeat:repeat-x;margin-bottom:20px}.filter-actions .main-actions{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.filter-actions .divider-strong{height:1px;width:100%;margin-top:20px;margin-bottom:16px;background:linear-gradient(90deg,#e2e2e2 70%,transparent 70%);background-size:4px 1px;background-repeat:repeat-x}.filter-actions .close-action-wrapper{display:flex;justify-content:center;width:100%}.filter-actions .close-action{display:inline-flex;align-items:center;gap:8px}.filter-actions .close-action cura-button-transparent{padding:0;margin:0;background:transparent;border:none;color:inherit}.filter-actions cura-button-transparent{display:flex;justify-content:flex-start;text-align:left;flex:0 1 auto}.filter-actions cura-button{display:flex;justify-content:flex-start;text-align:left;flex:1 0 auto}@media screen and (max-width: 1024px){.filter-checkboxes:after{background-color:transparent}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }] }); }
203
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: FilterGenericComponent, isStandalone: true, selector: "rdsite-filter-generic", inputs: { withContainerStyle: "withContainerStyle", showClearButton: "showClearButton", showApplyButton: "showApplyButton", showCloseButton: "showCloseButton", disableButtonsWithoutSelection: "disableButtonsWithoutSelection", showBadge: "showBadge", showToggleIcon: "showToggleIcon", isFilterOpen: "isFilterOpen", mobileBehavior: "mobileBehavior", forceCollapsed: "forceCollapsed", emitOnReset: "emitOnReset", textTitle: "textTitle", sections: "sections" }, outputs: { filterChange: "filterChange", closeModal: "closeModal", openMobileFilter: "openMobileFilter" }, host: { properties: { "style": "this.styleBinding" } }, ngImport: i0, template: "<div\r\n class=\"filter-generic\"\r\n [ngClass]=\"{ 'container-style': withContainerStyle, 'clickable-mobile': shouldHandleMobileClick() }\"\r\n aria-label=\"Filtros\"\r\n (click)=\"handleMobileClick()\"\r\n>\r\n <div class=\"filter-header-container\" [ngClass]=\"{ 'no-padding': !isFilterOpen, hidden: !isFilterOpen }\">\r\n <div class=\"filter-title-wrapper\">\r\n <cura-label size=\"medium\" level=\"4\" color=\"neutral-black\" weight=\"regular\" margin-block=\"0\" line-height=\"16px\">\r\n {{ textTitle }}\r\n </cura-label>\r\n\r\n @if (showBadge) {\r\n <cura-badge-counter\r\n [type]=\"'solid'\"\r\n [color]=\"hasSelection() ? 'primary' : 'neutral'\"\r\n [number]=\"selectedFiltersCount\"\r\n class=\"filter-badge\"\r\n ></cura-badge-counter>\r\n }\r\n </div>\r\n\r\n @if (showToggleIcon) {\r\n <cura-button-transparent size=\"small\" font-color=\"dark\" color=\"primary\" text-align=\"center\" (click)=\"toggleFilter()\" [attr.aria-expanded]=\"isFilterOpen\">\r\n <cura-icon [name]=\"isFilterOpen ? 'up' : 'down'\" size=\"16\" class=\"filter-icon\" color=\"primary-dark\"></cura-icon>\r\n </cura-button-transparent>\r\n }\r\n </div>\r\n\r\n <div class=\"filter-content\" [class.hidden]=\"!isFilterOpen || (forceCollapsed && isMobile())\">\r\n @for (section of sections; track section.type) {\r\n @if (section.visible !== false) {\r\n <div class=\"filter-section\">\r\n @switch (section.type) {\r\n @case ('input') {\r\n <cura-input-text\r\n [placeholder]=\"section.config.placeholder || ''\"\r\n [name]=\"section.config.name || ''\"\r\n [iconName]=\"section.config.iconName || ''\"\r\n [attr.value]=\"section.config.control.value\"\r\n (valueChange)=\"handleInputChange($event, section.config.control)\"\r\n ></cura-input-text>\r\n }\r\n @case ('select') {\r\n <cura-select\r\n [label]=\"section.config.label || ''\"\r\n [placeholder]=\"section.config.placeholder || ''\"\r\n [attr.value]=\"section.config.control.value\"\r\n (selected)=\"handleSelectChange($event, section.config.control)\"\r\n >\r\n @if (section.config.includeDefaultOption) {\r\n <cura-select-option [attr.value]=\"''\">{{ section.config.defaultOptionText || 'Fa\u00E7a a sua Sele\u00E7\u00E3o' }}</cura-select-option>\r\n }\r\n @for (option of section.config.options || []; track option?.value) {\r\n <cura-select-option [attr.value]=\"option?.value\">{{ option?.label }}</cura-select-option>\r\n }\r\n </cura-select>\r\n }\r\n @case ('checkbox-group') {\r\n @if (section.config.title) {\r\n <div class=\"filter-header\">\r\n <cura-icon name=\"filter\" size=\"20\" color=\"info-dark\"></cura-icon>\r\n <cura-heading size=\"xsmall\" level=\"5\" weight=\"bold\" color=\"neutral-black\" margin-block=\"0\" line-height=\"16px\">\r\n {{ section.config.title }}\r\n </cura-heading>\r\n </div>\r\n }\r\n @if (section.config.subtitle) {\r\n <div class=\"filter-subtitle\">\r\n <cura-heading size=\"xsmall\" weight=\"bold\" color=\"neutral-black\" margin-block=\"0\">\r\n {{ section.config.subtitle }}\r\n </cura-heading>\r\n </div>\r\n }\r\n\r\n @if (section.config.description) {\r\n <div class=\"filter-description\">\r\n <cura-paragraph size=\"xsmall\" color=\"neutral-dark\" margin-block=\"0\">\r\n {{ section.config.description }}\r\n </cura-paragraph>\r\n </div>\r\n }\r\n\r\n <div class=\"filter-checkboxes\" [class.scrollable]=\"hasScroll(section)\">\r\n @for (option of section.config.options || []; track option?.value) {\r\n <cura-checkbox\r\n color=\"primary\"\r\n size=\"small\"\r\n icon-color=\"light\"\r\n [attr.name]=\"option?.label\"\r\n [attr.label]=\"option?.label\"\r\n [attr.value]=\"option?.value\"\r\n [attr.checked]=\"option?.checked\"\r\n (onchange)=\"handleCheckboxChange($event, section.config.options)\"\r\n ></cura-checkbox>\r\n }\r\n </div>\r\n }\r\n @case ('radio-group') {\r\n <div class=\"filter-radios\" [class.scrollable]=\"hasScroll(section)\">\r\n @for (option of section.config.options || []; track option?.value) {\r\n <cura-radio\r\n [name]=\"section.config.name || 'radio-group'\"\r\n [label]=\"option.label\"\r\n [value]=\"option.value\"\r\n [checked]=\"getRadioGroupValue(section.config.control) === option.value\"\r\n (onchange)=\"handleRadioChange($event, section.config.control)\"\r\n ></cura-radio>\r\n }\r\n </div>\r\n }\r\n @case ('custom') {\r\n <ng-container *ngTemplateOutlet=\"section.config.template\"></ng-container>\r\n }\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n\r\n <div class=\"filter-actions\" [class.hidden]=\"!isFilterOpen || (forceCollapsed && isMobile())\">\r\n <div class=\"main-actions\">\r\n @if (showClearButton) {\r\n <cura-button-transparent\r\n size=\"small\"\r\n font-color=\"dark\"\r\n color=\"primary\"\r\n text-align=\"center\"\r\n [disabled]=\"disableButtonsWithoutSelection && !hasSelection()\"\r\n (click)=\"reset()\"\r\n >\r\n <span>Limpar todos os filtros</span>\r\n </cura-button-transparent>\r\n }\r\n\r\n @if (showApplyButton) {\r\n <cura-button\r\n size=\"medium\"\r\n font-color=\"light\"\r\n color=\"primary\"\r\n text-align=\"center\"\r\n (click)=\"filter()\"\r\n [disabled]=\"disableButtonsWithoutSelection && !hasSelection()\"\r\n class=\"filter-button\"\r\n >\r\n Filtrar\r\n </cura-button>\r\n }\r\n </div>\r\n\r\n @if (showCloseButton) {\r\n <div class=\"divider-strong\"></div>\r\n <div class=\"close-action-wrapper\">\r\n <div class=\"close-action\" (click)=\"close()\">\r\n <cura-icon name=\"close\" color=\"error-dark\" size=\"small\"></cura-icon>\r\n <cura-button-transparent size=\"\" type=\"button\" color=\"error\" target=\"_self\"> Fechar </cura-button-transparent>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: [":host *{font-family:var(--font-family)}.filter-generic{display:flex;flex-direction:column;gap:18px}.filter-generic.clickable-mobile{cursor:pointer}.filter-generic.clickable-mobile:hover{background-color:var(--primary-lighter)}.filter-generic.container-style{width:100%;padding:20px;border-radius:12px;border:2px solid var(--neutral-lighter);background-color:var(--neutral-purewhite)}.filter-generic cura-loader-circle{display:flex;justify-content:center;align-items:center;width:100%;min-height:100px}.filter-header-container{display:flex;padding-bottom:12px;align-items:center}.filter-header-container.no-padding{padding-bottom:0}.filter-header-container .filter-title-wrapper{display:flex;align-items:center;justify-content:space-between;flex:1 0 0}.filter-header-container .filter-badge{display:flex;height:20px;min-width:20px;justify-content:center;align-items:center;gap:4px}.filter-header-container .filter-icon{display:block}.filter-content,.filter-actions{transition:all .3s ease}.filter-content.hidden,.filter-actions.hidden{display:none;height:0;overflow:hidden;opacity:0;margin:0;padding:0}.filter-section{display:flex;flex-direction:column;gap:24px}.filter-section .filter-header{display:flex;align-items:center;gap:14px}.filter-section .filter-subtitle{font-weight:500}.filter-section .filter-description{display:flex;flex-direction:column;gap:8px}.filter-section .filter-description:after{content:\"\";display:block;width:100%;height:1px;background-color:var(--neutral-light);margin-top:12px;grid-column:1/-1}.filter-section .filter-checkboxes{display:grid;grid-template-columns:repeat(2,1fr);gap:11px 0px}.filter-section .filter-checkboxes.scrollable{max-height:100px;overflow-y:auto;grid-template-columns:1fr;padding-right:8px;gap:12px}.filter-section .filter-checkboxes.scrollable::-webkit-scrollbar{width:8px}.filter-section .filter-checkboxes.scrollable::-webkit-scrollbar-thumb{background:var(--neutral-medium)}.filter-section .filter-checkboxes.scrollable::-webkit-scrollbar-thumb:hover{background:var(--primary-base)}.filter-section .filter-checkboxes.scrollable::-webkit-scrollbar-track{background:var(--neutral-opacity-black)}.filter-section .filter-checkboxes.scrollable:after{display:none}.filter-section .filter-radios{display:flex;flex-direction:column;gap:12px}.filter-section .filter-radios.scrollable{max-height:100px;overflow-y:auto;padding-right:8px;gap:8px}.filter-section .filter-radios.scrollable::-webkit-scrollbar{width:8px}.filter-section .filter-radios.scrollable::-webkit-scrollbar-thumb{background:var(--neutral-medium)}.filter-section .filter-radios.scrollable::-webkit-scrollbar-thumb:hover{background:var(--primary-base)}.filter-section .filter-radios.scrollable::-webkit-scrollbar-track{background:var(--neutral-opacity-black)}.filter-section .filter-radios.scrollable:after{display:none}@media screen and (max-width: 1024px){.filter-checkboxes.scrollable,.filter-radios.scrollable{max-height:100px}.filter-checkboxes:after{display:none;background-color:transparent}}.filter-actions{display:flex;flex-direction:column;gap:0}.filter-actions:before{content:\"\";display:block;width:100%;height:1px;background:linear-gradient(90deg,var(--neutral-light) 75%,transparent 15%);background-size:10px 1px;background-repeat:repeat-x;margin-bottom:20px}.filter-actions .main-actions{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.filter-actions .divider-strong{height:1px;width:100%;margin-top:20px;margin-bottom:16px;background:linear-gradient(90deg,#e2e2e2 70%,transparent 70%);background-size:4px 1px;background-repeat:repeat-x}.filter-actions .close-action-wrapper{display:flex;justify-content:center;width:100%}.filter-actions .close-action{display:inline-flex;align-items:center;gap:8px}.filter-actions .close-action cura-button-transparent{padding:0;margin:0;background:transparent;border:none;color:inherit}.filter-actions cura-button-transparent{display:flex;justify-content:flex-start;text-align:left;flex:0 1 auto}.filter-actions cura-button{display:flex;justify-content:flex-start;text-align:left;flex:1 0 auto}@media screen and (max-width: 1024px){.filter-checkboxes:after{background-color:transparent}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }] }); }
202
204
  }
203
205
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FilterGenericComponent, decorators: [{
204
206
  type: Component,
205
- args: [{ selector: 'rdsite-filter-generic', standalone: true, imports: [CommonModule, ReactiveFormsModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<div\r\n class=\"filter-generic\"\r\n [ngClass]=\"{ 'container-style': withContainerStyle, 'clickable-mobile': shouldHandleMobileClick() }\"\r\n aria-label=\"Filtros\"\r\n (click)=\"handleMobileClick()\"\r\n>\r\n <div class=\"filter-header-container\" [ngClass]=\"{ 'no-padding': !isFilterOpen, hidden: !isFilterOpen }\">\r\n <div class=\"filter-title-wrapper\">\r\n <cura-label size=\"medium\" level=\"4\" color=\"neutral-black\" weight=\"regular\" margin-block=\"0\" line-height=\"16px\">\r\n {{ textTitle }}\r\n </cura-label>\r\n\r\n @if (showBadge) {\r\n <cura-badge-counter\r\n [type]=\"'solid'\"\r\n [color]=\"hasSelection() ? 'primary' : 'neutral'\"\r\n [number]=\"selectedFiltersCount\"\r\n class=\"filter-badge\"\r\n ></cura-badge-counter>\r\n }\r\n </div>\r\n\r\n @if (showToggleIcon) {\r\n <cura-button-transparent size=\"small\" font-color=\"dark\" color=\"primary\" text-align=\"center\" (click)=\"toggleFilter()\" [attr.aria-expanded]=\"isFilterOpen\">\r\n <cura-icon [name]=\"isFilterOpen ? 'up' : 'down'\" size=\"16\" class=\"filter-icon\" color=\"primary-dark\"></cura-icon>\r\n </cura-button-transparent>\r\n }\r\n </div>\r\n\r\n <div class=\"filter-content\" [class.hidden]=\"!isFilterOpen || (forceCollapsed && isMobile())\">\r\n @for (section of sections; track section.type) {\r\n @if (section.visible !== false) {\r\n <div class=\"filter-section\">\r\n @switch (section.type) {\r\n @case ('input') {\r\n <cura-input-text\r\n [placeholder]=\"section.config.placeholder || ''\"\r\n [name]=\"section.config.name || ''\"\r\n [iconName]=\"section.config.iconName || ''\"\r\n [attr.value]=\"section.config.control.value\"\r\n (valueChange)=\"handleInputChange($event, section.config.control)\"\r\n ></cura-input-text>\r\n }\r\n @case ('select') {\r\n <cura-select\r\n [label]=\"section.config.label || ''\"\r\n [placeholder]=\"section.config.placeholder || ''\"\r\n [attr.value]=\"section.config.control.value\"\r\n (selected)=\"handleSelectChange($event, section.config.control)\"\r\n >\r\n @if (section.config.includeDefaultOption) {\r\n <cura-select-option [attr.value]=\"''\">{{ section.config.defaultOptionText || 'Fa\u00E7a a sua Sele\u00E7\u00E3o' }}</cura-select-option>\r\n }\r\n @for (option of section.config.options || []; track option?.value) {\r\n <cura-select-option [attr.value]=\"option?.value\">{{ option?.label }}</cura-select-option>\r\n }\r\n </cura-select>\r\n }\r\n @case ('checkbox-group') {\r\n @if (section.config.title) {\r\n <div class=\"filter-header\">\r\n <cura-icon name=\"filter\" size=\"20\" color=\"info-dark\"></cura-icon>\r\n <cura-heading size=\"xsmall\" level=\"5\" weight=\"bold\" color=\"neutral-black\" margin-block=\"0\" line-height=\"16px\">\r\n {{ section.config.title }}\r\n </cura-heading>\r\n </div>\r\n }\r\n @if (section.config.subtitle) {\r\n <div class=\"filter-subtitle\">\r\n <cura-heading size=\"xsmall\" weight=\"bold\" color=\"neutral-black\" margin-block=\"0\">\r\n {{ section.config.subtitle }}\r\n </cura-heading>\r\n </div>\r\n }\r\n\r\n @if (section.config.description) {\r\n <div class=\"filter-description\">\r\n <cura-paragraph size=\"xsmall\" color=\"neutral-dark\" margin-block=\"0\">\r\n {{ section.config.description }}\r\n </cura-paragraph>\r\n </div>\r\n }\r\n\r\n <div class=\"filter-checkboxes\" [class.scrollable]=\"hasScroll(section)\">\r\n @for (option of section.config.options || []; track option?.value) {\r\n <cura-checkbox\r\n color=\"primary\"\r\n size=\"small\"\r\n icon-color=\"light\"\r\n [attr.name]=\"option?.label\"\r\n [attr.label]=\"option?.label\"\r\n [attr.value]=\"option?.value\"\r\n [attr.checked]=\"option?.checked\"\r\n (onchange)=\"handleCheckboxChange($event, section.config.options)\"\r\n ></cura-checkbox>\r\n }\r\n </div>\r\n }\r\n @case ('radio-group') {\r\n <div class=\"filter-radios\" [class.scrollable]=\"hasScroll(section)\">\r\n @for (option of section.config.options || []; track option?.value) {\r\n <cura-radio\r\n [name]=\"section.config.name || 'radio-group'\"\r\n [label]=\"option.label\"\r\n [value]=\"option.value\"\r\n [checked]=\"getRadioGroupValue(section.config.control) === option.value\"\r\n (onchange)=\"handleRadioChange($event, section.config.control)\"\r\n ></cura-radio>\r\n }\r\n </div>\r\n }\r\n @case ('custom') {\r\n <ng-container *ngTemplateOutlet=\"section.config.template\"></ng-container>\r\n }\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n\r\n <div class=\"filter-actions\" [class.hidden]=\"!isFilterOpen || (forceCollapsed && isMobile())\">\r\n <div class=\"main-actions\">\r\n @if (showClearButton) {\r\n <cura-button-transparent\r\n size=\"small\"\r\n font-color=\"dark\"\r\n color=\"primary\"\r\n text-align=\"center\"\r\n [disabled]=\"disableButtonsWithoutSelection && !hasSelection()\"\r\n (click)=\"reset()\"\r\n >\r\n <span>Limpar todos os filtros</span>\r\n </cura-button-transparent>\r\n }\r\n\r\n @if (showApplyButton) {\r\n <cura-button\r\n size=\"medium\"\r\n font-color=\"light\"\r\n color=\"primary\"\r\n text-align=\"center\"\r\n (click)=\"filter()\"\r\n [disabled]=\"disableButtonsWithoutSelection && !hasSelection()\"\r\n class=\"filter-button\"\r\n >\r\n Filtrar\r\n </cura-button>\r\n }\r\n </div>\r\n\r\n @if (showCloseButton) {\r\n <div class=\"divider-strong\"></div>\r\n <div class=\"close-action-wrapper\">\r\n <div class=\"close-action\" (click)=\"close()\">\r\n <cura-icon name=\"close\" color=\"error-dark\" size=\"small\"></cura-icon>\r\n <cura-button-transparent size=\"\" type=\"button\" color=\"error\" target=\"_self\"> Fechar </cura-button-transparent>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: [":host *{font-family:Gotham,Roboto,sans-serif}.filter-generic{display:flex;flex-direction:column;gap:18px}.filter-generic.clickable-mobile{cursor:pointer}.filter-generic.clickable-mobile:hover{background-color:var(--primary-lighter)}.filter-generic.container-style{width:100%;padding:20px;border-radius:12px;border:2px solid var(--neutral-lighter);background-color:var(--neutral-purewhite)}.filter-generic cura-loader-circle{display:flex;justify-content:center;align-items:center;width:100%;min-height:100px}.filter-header-container{display:flex;padding-bottom:12px;align-items:center}.filter-header-container.no-padding{padding-bottom:0}.filter-header-container .filter-title-wrapper{display:flex;align-items:center;justify-content:space-between;flex:1 0 0}.filter-header-container .filter-badge{display:flex;height:20px;min-width:20px;justify-content:center;align-items:center;gap:4px}.filter-header-container .filter-icon{display:block}.filter-content,.filter-actions{transition:all .3s ease}.filter-content.hidden,.filter-actions.hidden{display:none;height:0;overflow:hidden;opacity:0;margin:0;padding:0}.filter-section{display:flex;flex-direction:column;gap:24px}.filter-section .filter-header{display:flex;align-items:center;gap:14px}.filter-section .filter-subtitle{font-weight:500}.filter-section .filter-description{display:flex;flex-direction:column;gap:8px}.filter-section .filter-description:after{content:\"\";display:block;width:100%;height:1px;background-color:var(--neutral-light);margin-top:12px;grid-column:1/-1}.filter-section .filter-checkboxes{display:grid;grid-template-columns:repeat(2,1fr);gap:11px 0px}.filter-section .filter-checkboxes.scrollable{max-height:100px;overflow-y:auto;grid-template-columns:1fr;padding-right:8px;gap:12px}.filter-section .filter-checkboxes.scrollable::-webkit-scrollbar{width:8px}.filter-section .filter-checkboxes.scrollable::-webkit-scrollbar-thumb{background:var(--neutral-medium)}.filter-section .filter-checkboxes.scrollable::-webkit-scrollbar-thumb:hover{background:var(--primary-base)}.filter-section .filter-checkboxes.scrollable::-webkit-scrollbar-track{background:var(--neutral-opacity-black)}.filter-section .filter-checkboxes.scrollable:after{display:none}.filter-section .filter-radios{display:flex;flex-direction:column;gap:12px}.filter-section .filter-radios.scrollable{max-height:100px;overflow-y:auto;padding-right:8px;gap:8px}.filter-section .filter-radios.scrollable::-webkit-scrollbar{width:8px}.filter-section .filter-radios.scrollable::-webkit-scrollbar-thumb{background:var(--neutral-medium)}.filter-section .filter-radios.scrollable::-webkit-scrollbar-thumb:hover{background:var(--primary-base)}.filter-section .filter-radios.scrollable::-webkit-scrollbar-track{background:var(--neutral-opacity-black)}.filter-section .filter-radios.scrollable:after{display:none}@media screen and (max-width: 1024px){.filter-checkboxes.scrollable,.filter-radios.scrollable{max-height:100px}.filter-checkboxes:after{display:none;background-color:transparent}}.filter-actions{display:flex;flex-direction:column;gap:0}.filter-actions:before{content:\"\";display:block;width:100%;height:1px;background:linear-gradient(90deg,var(--neutral-light) 75%,transparent 15%);background-size:10px 1px;background-repeat:repeat-x;margin-bottom:20px}.filter-actions .main-actions{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.filter-actions .divider-strong{height:1px;width:100%;margin-top:20px;margin-bottom:16px;background:linear-gradient(90deg,#e2e2e2 70%,transparent 70%);background-size:4px 1px;background-repeat:repeat-x}.filter-actions .close-action-wrapper{display:flex;justify-content:center;width:100%}.filter-actions .close-action{display:inline-flex;align-items:center;gap:8px}.filter-actions .close-action cura-button-transparent{padding:0;margin:0;background:transparent;border:none;color:inherit}.filter-actions cura-button-transparent{display:flex;justify-content:flex-start;text-align:left;flex:0 1 auto}.filter-actions cura-button{display:flex;justify-content:flex-start;text-align:left;flex:1 0 auto}@media screen and (max-width: 1024px){.filter-checkboxes:after{background-color:transparent}}\n"] }]
207
+ args: [{ selector: 'rdsite-filter-generic', standalone: true, imports: [CommonModule, ReactiveFormsModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<div\r\n class=\"filter-generic\"\r\n [ngClass]=\"{ 'container-style': withContainerStyle, 'clickable-mobile': shouldHandleMobileClick() }\"\r\n aria-label=\"Filtros\"\r\n (click)=\"handleMobileClick()\"\r\n>\r\n <div class=\"filter-header-container\" [ngClass]=\"{ 'no-padding': !isFilterOpen, hidden: !isFilterOpen }\">\r\n <div class=\"filter-title-wrapper\">\r\n <cura-label size=\"medium\" level=\"4\" color=\"neutral-black\" weight=\"regular\" margin-block=\"0\" line-height=\"16px\">\r\n {{ textTitle }}\r\n </cura-label>\r\n\r\n @if (showBadge) {\r\n <cura-badge-counter\r\n [type]=\"'solid'\"\r\n [color]=\"hasSelection() ? 'primary' : 'neutral'\"\r\n [number]=\"selectedFiltersCount\"\r\n class=\"filter-badge\"\r\n ></cura-badge-counter>\r\n }\r\n </div>\r\n\r\n @if (showToggleIcon) {\r\n <cura-button-transparent size=\"small\" font-color=\"dark\" color=\"primary\" text-align=\"center\" (click)=\"toggleFilter()\" [attr.aria-expanded]=\"isFilterOpen\">\r\n <cura-icon [name]=\"isFilterOpen ? 'up' : 'down'\" size=\"16\" class=\"filter-icon\" color=\"primary-dark\"></cura-icon>\r\n </cura-button-transparent>\r\n }\r\n </div>\r\n\r\n <div class=\"filter-content\" [class.hidden]=\"!isFilterOpen || (forceCollapsed && isMobile())\">\r\n @for (section of sections; track section.type) {\r\n @if (section.visible !== false) {\r\n <div class=\"filter-section\">\r\n @switch (section.type) {\r\n @case ('input') {\r\n <cura-input-text\r\n [placeholder]=\"section.config.placeholder || ''\"\r\n [name]=\"section.config.name || ''\"\r\n [iconName]=\"section.config.iconName || ''\"\r\n [attr.value]=\"section.config.control.value\"\r\n (valueChange)=\"handleInputChange($event, section.config.control)\"\r\n ></cura-input-text>\r\n }\r\n @case ('select') {\r\n <cura-select\r\n [label]=\"section.config.label || ''\"\r\n [placeholder]=\"section.config.placeholder || ''\"\r\n [attr.value]=\"section.config.control.value\"\r\n (selected)=\"handleSelectChange($event, section.config.control)\"\r\n >\r\n @if (section.config.includeDefaultOption) {\r\n <cura-select-option [attr.value]=\"''\">{{ section.config.defaultOptionText || 'Fa\u00E7a a sua Sele\u00E7\u00E3o' }}</cura-select-option>\r\n }\r\n @for (option of section.config.options || []; track option?.value) {\r\n <cura-select-option [attr.value]=\"option?.value\">{{ option?.label }}</cura-select-option>\r\n }\r\n </cura-select>\r\n }\r\n @case ('checkbox-group') {\r\n @if (section.config.title) {\r\n <div class=\"filter-header\">\r\n <cura-icon name=\"filter\" size=\"20\" color=\"info-dark\"></cura-icon>\r\n <cura-heading size=\"xsmall\" level=\"5\" weight=\"bold\" color=\"neutral-black\" margin-block=\"0\" line-height=\"16px\">\r\n {{ section.config.title }}\r\n </cura-heading>\r\n </div>\r\n }\r\n @if (section.config.subtitle) {\r\n <div class=\"filter-subtitle\">\r\n <cura-heading size=\"xsmall\" weight=\"bold\" color=\"neutral-black\" margin-block=\"0\">\r\n {{ section.config.subtitle }}\r\n </cura-heading>\r\n </div>\r\n }\r\n\r\n @if (section.config.description) {\r\n <div class=\"filter-description\">\r\n <cura-paragraph size=\"xsmall\" color=\"neutral-dark\" margin-block=\"0\">\r\n {{ section.config.description }}\r\n </cura-paragraph>\r\n </div>\r\n }\r\n\r\n <div class=\"filter-checkboxes\" [class.scrollable]=\"hasScroll(section)\">\r\n @for (option of section.config.options || []; track option?.value) {\r\n <cura-checkbox\r\n color=\"primary\"\r\n size=\"small\"\r\n icon-color=\"light\"\r\n [attr.name]=\"option?.label\"\r\n [attr.label]=\"option?.label\"\r\n [attr.value]=\"option?.value\"\r\n [attr.checked]=\"option?.checked\"\r\n (onchange)=\"handleCheckboxChange($event, section.config.options)\"\r\n ></cura-checkbox>\r\n }\r\n </div>\r\n }\r\n @case ('radio-group') {\r\n <div class=\"filter-radios\" [class.scrollable]=\"hasScroll(section)\">\r\n @for (option of section.config.options || []; track option?.value) {\r\n <cura-radio\r\n [name]=\"section.config.name || 'radio-group'\"\r\n [label]=\"option.label\"\r\n [value]=\"option.value\"\r\n [checked]=\"getRadioGroupValue(section.config.control) === option.value\"\r\n (onchange)=\"handleRadioChange($event, section.config.control)\"\r\n ></cura-radio>\r\n }\r\n </div>\r\n }\r\n @case ('custom') {\r\n <ng-container *ngTemplateOutlet=\"section.config.template\"></ng-container>\r\n }\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n\r\n <div class=\"filter-actions\" [class.hidden]=\"!isFilterOpen || (forceCollapsed && isMobile())\">\r\n <div class=\"main-actions\">\r\n @if (showClearButton) {\r\n <cura-button-transparent\r\n size=\"small\"\r\n font-color=\"dark\"\r\n color=\"primary\"\r\n text-align=\"center\"\r\n [disabled]=\"disableButtonsWithoutSelection && !hasSelection()\"\r\n (click)=\"reset()\"\r\n >\r\n <span>Limpar todos os filtros</span>\r\n </cura-button-transparent>\r\n }\r\n\r\n @if (showApplyButton) {\r\n <cura-button\r\n size=\"medium\"\r\n font-color=\"light\"\r\n color=\"primary\"\r\n text-align=\"center\"\r\n (click)=\"filter()\"\r\n [disabled]=\"disableButtonsWithoutSelection && !hasSelection()\"\r\n class=\"filter-button\"\r\n >\r\n Filtrar\r\n </cura-button>\r\n }\r\n </div>\r\n\r\n @if (showCloseButton) {\r\n <div class=\"divider-strong\"></div>\r\n <div class=\"close-action-wrapper\">\r\n <div class=\"close-action\" (click)=\"close()\">\r\n <cura-icon name=\"close\" color=\"error-dark\" size=\"small\"></cura-icon>\r\n <cura-button-transparent size=\"\" type=\"button\" color=\"error\" target=\"_self\"> Fechar </cura-button-transparent>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: [":host *{font-family:var(--font-family)}.filter-generic{display:flex;flex-direction:column;gap:18px}.filter-generic.clickable-mobile{cursor:pointer}.filter-generic.clickable-mobile:hover{background-color:var(--primary-lighter)}.filter-generic.container-style{width:100%;padding:20px;border-radius:12px;border:2px solid var(--neutral-lighter);background-color:var(--neutral-purewhite)}.filter-generic cura-loader-circle{display:flex;justify-content:center;align-items:center;width:100%;min-height:100px}.filter-header-container{display:flex;padding-bottom:12px;align-items:center}.filter-header-container.no-padding{padding-bottom:0}.filter-header-container .filter-title-wrapper{display:flex;align-items:center;justify-content:space-between;flex:1 0 0}.filter-header-container .filter-badge{display:flex;height:20px;min-width:20px;justify-content:center;align-items:center;gap:4px}.filter-header-container .filter-icon{display:block}.filter-content,.filter-actions{transition:all .3s ease}.filter-content.hidden,.filter-actions.hidden{display:none;height:0;overflow:hidden;opacity:0;margin:0;padding:0}.filter-section{display:flex;flex-direction:column;gap:24px}.filter-section .filter-header{display:flex;align-items:center;gap:14px}.filter-section .filter-subtitle{font-weight:500}.filter-section .filter-description{display:flex;flex-direction:column;gap:8px}.filter-section .filter-description:after{content:\"\";display:block;width:100%;height:1px;background-color:var(--neutral-light);margin-top:12px;grid-column:1/-1}.filter-section .filter-checkboxes{display:grid;grid-template-columns:repeat(2,1fr);gap:11px 0px}.filter-section .filter-checkboxes.scrollable{max-height:100px;overflow-y:auto;grid-template-columns:1fr;padding-right:8px;gap:12px}.filter-section .filter-checkboxes.scrollable::-webkit-scrollbar{width:8px}.filter-section .filter-checkboxes.scrollable::-webkit-scrollbar-thumb{background:var(--neutral-medium)}.filter-section .filter-checkboxes.scrollable::-webkit-scrollbar-thumb:hover{background:var(--primary-base)}.filter-section .filter-checkboxes.scrollable::-webkit-scrollbar-track{background:var(--neutral-opacity-black)}.filter-section .filter-checkboxes.scrollable:after{display:none}.filter-section .filter-radios{display:flex;flex-direction:column;gap:12px}.filter-section .filter-radios.scrollable{max-height:100px;overflow-y:auto;padding-right:8px;gap:8px}.filter-section .filter-radios.scrollable::-webkit-scrollbar{width:8px}.filter-section .filter-radios.scrollable::-webkit-scrollbar-thumb{background:var(--neutral-medium)}.filter-section .filter-radios.scrollable::-webkit-scrollbar-thumb:hover{background:var(--primary-base)}.filter-section .filter-radios.scrollable::-webkit-scrollbar-track{background:var(--neutral-opacity-black)}.filter-section .filter-radios.scrollable:after{display:none}@media screen and (max-width: 1024px){.filter-checkboxes.scrollable,.filter-radios.scrollable{max-height:100px}.filter-checkboxes:after{display:none;background-color:transparent}}.filter-actions{display:flex;flex-direction:column;gap:0}.filter-actions:before{content:\"\";display:block;width:100%;height:1px;background:linear-gradient(90deg,var(--neutral-light) 75%,transparent 15%);background-size:10px 1px;background-repeat:repeat-x;margin-bottom:20px}.filter-actions .main-actions{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.filter-actions .divider-strong{height:1px;width:100%;margin-top:20px;margin-bottom:16px;background:linear-gradient(90deg,#e2e2e2 70%,transparent 70%);background-size:4px 1px;background-repeat:repeat-x}.filter-actions .close-action-wrapper{display:flex;justify-content:center;width:100%}.filter-actions .close-action{display:inline-flex;align-items:center;gap:8px}.filter-actions .close-action cura-button-transparent{padding:0;margin:0;background:transparent;border:none;color:inherit}.filter-actions cura-button-transparent{display:flex;justify-content:flex-start;text-align:left;flex:0 1 auto}.filter-actions cura-button{display:flex;justify-content:flex-start;text-align:left;flex:1 0 auto}@media screen and (max-width: 1024px){.filter-checkboxes:after{background-color:transparent}}\n"] }]
206
208
  }], ctorParameters: () => [{ type: i1.CuraService }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
207
209
  type: Inject,
208
210
  args: [PLATFORM_ID]
@@ -242,4 +244,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
242
244
  type: HostBinding,
243
245
  args: ['style']
244
246
  }] } });
245
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWdlbmVyaWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2l0ZS1mcm9udC1lbmQtbGliL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXJzL2ZpbHRlci1nZW5lcmljL2ZpbHRlci1nZW5lcmljLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpdGUtZnJvbnQtZW5kLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVycy9maWx0ZXItZ2VuZXJpYy9maWx0ZXItZ2VuZXJpYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFxQixTQUFTLEVBQUUsc0JBQXNCLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUosT0FBTyxFQUFlLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7O0FBWTdELE1BQU0sT0FBTyxzQkFBc0I7SUFpQ2pDLFlBQ21CLFdBQXdCLEVBQ3hCLEdBQXNCLEVBQ0QsVUFBa0I7UUFGdkMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDRCxlQUFVLEdBQVYsVUFBVSxDQUFRO1FBbkNoRCxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7UUFDL0MsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDekMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUU3Qyx1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDMUIsb0JBQWUs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c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDdXJhU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgTWVkaWFRdWVyaWVzIH0gZnJvbSAnLi4vLi4vLi4vaGVscGVycy9tZWRpYVF1ZXJpZXMnO1xyXG5pbXBvcnQgeyBGaWx0ZXJBY3Rpb24sIEZpbHRlckNvbnRyb2xWYWx1ZSwgRmlsdGVyU2VjdGlvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9maWx0ZXJzL2ZpbHRlci1zZWN0aW9uLnR5cGUnO1xyXG5pbXBvcnQgeyBGaWx0ZXJFdmVudCwgRmlsdGVyUGxhbm9zQ29udmVuaW9zQ2hhbmdlIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2ZpbHRlcnMvZmlsdGVyLXBsYW5vcy1jb252ZW5pb3MubW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdyZHNpdGUtZmlsdGVyLWdlbmVyaWMnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXHJcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXItZ2VuZXJpYy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmlsdGVyLWdlbmVyaWMuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbHRlckdlbmVyaWNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBPdXRwdXQoKSBmaWx0ZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbHRlckV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSBjbG9zZU1vZGFsID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIEBPdXRwdXQoKSBvcGVuTW9iaWxlRmlsdGVyID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBASW5wdXQoKSB3aXRoQ29udGFpbmVyU3R5bGUgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dDbGVhckJ1dHRvbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2hvd0FwcGx5QnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93Q2xvc2VCdXR0b24gPSBmYWxzZTtcclxuICBASW5wdXQoKSBkaXNhYmxlQnV0dG9uc1dpdGhvdXRTZWxlY3Rpb24gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzaG93QmFkZ2UgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dUb2dnbGVJY29uID0gdHJ1ZTtcclxuICBASW5wdXQoKSBpc0ZpbHRlck9wZW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIG1vYmlsZUJlaGF2aW9yID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZm9yY2VDb2xsYXBzZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBlbWl0T25SZXNldCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRleHRUaXRsZSA9ICdGaWx0cmFyIHBvcic7XHJcbiAgQElucHV0KCkgc2VjdGlvbnM6IEZpbHRlclNlY3Rpb25bXSA9IFtdO1xyXG5cclxuICBzZWxlY3RlZEZpbHRlcnNDb3VudDogbnVtYmVyID0gMDtcclxuICB3aW5kb3dXaWR0aDogbnVtYmVyID0gMDtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZScpIHN0eWxlQmluZGluZyA9IHtcclxuICAgICctLW5ldXRyYWwtb3BhY2l0eS1ibGFjayc6IHRoaXMuY3VyYVNlcnZpY2UuZ2V0Q29sb3IoJ25ldXRyYWwtYmxhY2snLCAwLjIpLFxyXG4gICAgJy0tbmV1dHJhbC1kYXJrZXInOiB0aGlzLmN1cmFTZXJ2aWNlLmdldENvbG9yKCduZXV0cmFsLWRhcmtlcicpLFxyXG4gICAgJy0tbmV1dHJhbC1tZWRpdW0nOiB0aGlzLmN1cmFTZXJ2aWNlLmdldENvbG9yKCduZXV0cmFsLW1lZGl1bScpLFxyXG4gICAgJy0tbmV1dHJhbC1saWdodCc6IHRoaXMuY3VyYVNlcnZpY2UuZ2V0Q29sb3IoJ25ldXRyYWwtbGlnaHQnKSxcclxuICAgICctLW5ldXRyYWwtbGlnaHRlcic6IHRoaXMuY3VyYVNlcnZpY2UuZ2V0Q29sb3IoJ25ldXRyYWwtbGlnaHRlcicpLFxyXG4gICAgJy0tbmV1dHJhbC1wdXJld2hpdGUnOiB0aGlzLmN1cmFTZXJ2aWNlLmdldENvbG9yKCduZXV0cmFsLXB1cmV3aGl0ZScpLFxyXG4gICAgJy0tcHJpbWFyeS1iYXNlJzogdGhpcy5jdXJhU2VydmljZS5nZXRDb2xvcigncHJpbWFyeS1iYXNlJyksXHJcbiAgICAnLS1wcmltYXJ5LWxpZ2h0ZXInOiB0aGlzLmN1cmFTZXJ2aWNlLmdldENvbG9yKCdwcmltYXJ5LWxpZ2h0ZXInKSxcclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY3VyYVNlcnZpY2U6IEN1cmFTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSByZWFkb25seSBwbGF0Zm9ybUlkOiBvYmplY3QsXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcbiAgICAgIHRoaXMud2luZG93V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5mb3JjZUNvbGxhcHNlZCAmJiB0aGlzLmlzTW9iaWxlKCkpIHtcclxuICAgICAgdGhpcy5pc0ZpbHRlck9wZW4gPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUlucHV0Q2hhbmdlKGV2ZW50OiBhbnksIGNvbnRyb2w6IEZvcm1Db250cm9sKTogdm9pZCB7XHJcbiAgICBjb250cm9sLnNldFZhbHVlKGV2ZW50LmRldGFpbCk7XHJcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkRmlsdGVyc0NvdW50KCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVTZWxlY3RDaGFuZ2UoZXZlbnQ6IGFueSwgY29udHJvbDogRm9ybUNvbnRyb2wpOiB2b2lkIHtcclxuICAgIGlmIChldmVudD8uZGV0YWlsICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgY29udHJvbC5zZXRWYWx1ZShldmVudC5kZXRhaWwpO1xyXG4gICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkRmlsdGVyc0NvdW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVDaGVja2JveENoYW5nZShldmVudDogYW55LCBvcHRpb25zOiBhbnlbXSk6IHZvaWQge1xyXG4gICAgY29uc3QgY2hhbmdlZE9wdGlvbiA9IG9wdGlvbnMuZmluZCgob3B0KSA9PiBvcHQudmFsdWUgPT09IGV2ZW50LmRldGFpbC52YWx1ZSk7XHJcbiAgICBpZiAoY2hhbmdlZE9wdGlvbikgY2hhbmdlZE9wdGlvbi5jaGVja2VkID0gZXZlbnQuZGV0YWlsLmNoZWNrZWQ7XHJcblxyXG4gICAgdGhpcy51cGRhdGVDaGVja2JveEdyb3VwKG9wdGlvbnMpO1xyXG4gICAgdGhpcy51cGRhdGVTZWxlY3RlZEZpbHRlcnNDb3VudCgpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlUmFkaW9DaGFuZ2UoZXZlbnQ6IGFueSwgY29udHJvbDogRm9ybUNvbnRyb2wpOiB2b2lkIHtcclxuICAgIGNvbnN0IHNlbGVjdGVkVmFsdWUgPSBldmVudC5kZXRhaWwudmFsdWU7XHJcbiAgICBjb250cm9sLnNldFZhbHVlKGNvbnRyb2wudmFsdWU/LnZhbHVlID09PSBzZWxlY3RlZFZhbHVlID8gbnVsbCA6IHsgdmFsdWU6IHNlbGVjdGVkVmFsdWUgfSk7XHJcbiAgfVxyXG5cclxuICBmaWx0ZXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLmVtaXRGaWx0ZXJDaGFuZ2UoJ2ZpbHRlcicpO1xyXG4gICAgaWYgKHRoaXMubW9iaWxlQmVoYXZpb3IgfHwgdGhpcy5zaG93Q2xvc2VCdXR0b24pIHRoaXMuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIHJlc2V0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXNldEFsbENvbnRyb2xzKCk7XHJcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkRmlsdGVyc0NvdW50KCk7XHJcblxyXG4gICAgaWYgKHRoaXMuZW1pdE9uUmVzZXQpIHtcclxuICAgICAgdGhpcy5lbWl0RmlsdGVyQ2hhbmdlKCdyZXNldCcpO1xyXG4gICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2xvc2VNb2RhbC5lbWl0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlRmlsdGVyKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMubW9iaWxlQmVoYXZpb3IgJiYgdGhpcy5pc01vYmlsZSgpKSB7XHJcbiAgICAgIHRoaXMub3Blbk1vYmlsZUZpbHRlci5lbWl0KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlzRmlsdGVyT3BlbiA9ICF0aGlzLmlzRmlsdGVyT3BlbjtcclxuICAgIH1cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGhhc1NlbGVjdGlvbigpOiBib29sZWFuIHtcclxuICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRGaWx0ZXJzQ291bnQoKTtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkRmlsdGVyc0NvdW50ID4gMDtcclxuICB9XHJcblxyXG4gIGlzTW9iaWxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMud2luZG93V2lkdGggPD0gTWVkaWFRdWVyaWVzLnNtYWxsQnJlYWtwb2ludDtcclxuICB9XHJcblxyXG4gIGdldFJhZGlvR3JvdXBWYWx1ZShjb250cm9sPzogRm9ybUNvbnRyb2w8RmlsdGVyQ29udHJvbFZhbHVlPik6IGFueSB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2w/LnZhbHVlO1xyXG4gICAgcmV0dXJuIHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgJ3ZhbHVlJyBpbiB2YWx1ZSA/IHZhbHVlLnZhbHVlIDogbnVsbDtcclxuICB9XHJcblxyXG4gIGhhc1Njcm9sbChzZWN0aW9uOiBGaWx0ZXJTZWN0aW9uKTogYm9vbGVhbiB7XHJcbiAgICBzd2l0Y2ggKHNlY3Rpb24udHlwZSkge1xyXG4gICAgICBjYXNlICdjaGVja2JveC1ncm91cCc6XHJcbiAgICAgICAgcmV0dXJuIHNlY3Rpb24uY29uZmlnLm9wdGlvbnMgJiYgc2VjdGlvbi5jb25maWcub3B0aW9ucy5sZW5ndGggPiA2O1xyXG4gICAgICBjYXNlICdyYWRpby1ncm91cCc6XHJcbiAgICAgICAgcmV0dXJuIHNlY3Rpb24uY29uZmlnLm9wdGlvbnMgJiYgc2VjdGlvbi5jb25maWcub3B0aW9ucy5sZW5ndGggPiA2O1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFNlY3Rpb25DbGFzcyhzZWN0aW9uOiBGaWx0ZXJTZWN0aW9uKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmhhc1Njcm9sbChzZWN0aW9uKSA/ICdzY3JvbGxhYmxlJyA6ICcnO1xyXG4gIH1cclxuXHJcbiAgc2hvdWxkSGFuZGxlTW9iaWxlQ2xpY2soKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5tb2JpbGVCZWhhdmlvciAmJiB0aGlzLmlzTW9iaWxlKCkgJiYgdGhpcy5mb3JjZUNvbGxhcHNlZDtcclxuICB9XHJcblxyXG4gIGhhbmRsZU1vYmlsZUNsaWNrKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc2hvdWxkSGFuZGxlTW9iaWxlQ2xpY2soKSkge1xyXG4gICAgICB0aGlzLm9wZW5Nb2JpbGVGaWx0ZXIuZW1pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBlbWl0RmlsdGVyQ2hhbmdlKGFjdGlvbjogRmlsdGVyQWN0aW9uKTogdm9pZCB7XHJcbiAgICBjb25zdCBmaWx0ZXJEYXRhID0gdGhpcy5idWlsZEZpbHRlckRhdGEoKTtcclxuICAgIGNvbnN0IGlzRW1wdHkgPSB0aGlzLmlzRmlsdGVyRGF0YUVtcHR5KGZpbHRlckRhdGEpO1xyXG5cclxuICAgIHRoaXMuZmlsdGVyQ2hhbmdlLmVtaXQoe1xyXG4gICAgICBkYXRhOiB0aGlzLmVtaXRPblJlc2V0IHx8ICFpc0VtcHR5ID8gZmlsdGVyRGF0YSA6IG51bGwsXHJcbiAgICAgIGFjdGlvbjogYWN0aW9uLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZVNlbGVjdGVkRmlsdGVyc0NvdW50KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZEZpbHRlcnNDb3VudCA9IHRoaXMuc2VjdGlvbnMucmVkdWNlKChjb3VudCwgc2VjdGlvbikgPT4ge1xyXG4gICAgICBpZiAoIXNlY3Rpb24uY29uZmlnPy5jb250cm9sKSByZXR1cm4gY291bnQ7XHJcblxyXG4gICAgICBjb25zdCB2YWx1ZSA9IHNlY3Rpb24uY29uZmlnLmNvbnRyb2wudmFsdWU7XHJcblxyXG4gICAgICBzd2l0Y2ggKHNlY3Rpb24udHlwZSkge1xyXG4gICAgICAgIGNhc2UgJ2NoZWNrYm94LWdyb3VwJzpcclxuICAgICAgICAgIHJldHVybiBjb3VudCArIChBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlLmZpbHRlcigoaXRlbSkgPT4gaXRlbT8uY2hlY2tlZCkubGVuZ3RoIDogMCk7XHJcbiAgICAgICAgY2FzZSAncmFkaW8tZ3JvdXAnOlxyXG4gICAgICAgICAgcmV0dXJuIGNvdW50ICsgKHZhbHVlPy52YWx1ZSA/IDEgOiAwKTtcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgcmV0dXJuIGNvdW50ICsgKHZhbHVlID8gMSA6IDApO1xyXG4gICAgICB9XHJcbiAgICB9LCAwKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVzZXRBbGxDb250cm9scygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VjdGlvbnMuZm9yRWFjaCgoc2VjdGlvbikgPT4ge1xyXG4gICAgICBpZiAoIXNlY3Rpb24uY29uZmlnPy5jb250cm9sKSByZXR1cm47XHJcblxyXG4gICAgICBpZiAoc2VjdGlvbi50eXBlID09PSAnY2hlY2tib3gtZ3JvdXAnKSB7XHJcbiAgICAgICAgY29uc3QgcmVzZXRPcHRpb25zID0gc2VjdGlvbi5jb25maWcub3B0aW9ucy5tYXAoKG9wdGlvbjogYW55KSA9PiAoeyAuLi5vcHRpb24sIGNoZWNrZWQ6IGZhbHNlIH0pKTtcclxuICAgICAgICBzZWN0aW9uLmNvbmZpZy5vcHRpb25zID0gcmVzZXRPcHRpb25zO1xyXG4gICAgICAgIHNlY3Rpb24uY29uZmlnLmNvbnRyb2wuc2V0VmFsdWUocmVzZXRPcHRpb25zLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc2VjdGlvbi5jb25maWcuY29udHJvbC5yZXNldCgnJywgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlQ2hlY2tib3hHcm91cChvcHRpb25zOiBhbnlbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWN0aW9uc1xyXG4gICAgICAuZmlsdGVyKChzZWN0aW9uKSA9PiBzZWN0aW9uLnR5cGUgPT09ICdjaGVja2JveC1ncm91cCcpXHJcbiAgICAgIC5mb3JFYWNoKChzZWN0aW9uKSA9PiB7XHJcbiAgICAgICAgc2VjdGlvbi5jb25maWcub3B0aW9ucyA9IFsuLi5vcHRpb25zXTtcclxuICAgICAgICBzZWN0aW9uLmNvbmZpZy5jb250cm9sLnNldFZhbHVlKFsuLi5vcHRpb25zXSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZEZpbHRlckRhdGEoKTogRmlsdGVyUGxhbm9zQ29udmVuaW9zQ2hhbmdlIHwgYW55IHtcclxuICAgIGNvbnN0IGZpbHRlckRhdGE6IEZpbHRlclBsYW5vc0NvbnZlbmlvc0NoYW5nZSA9IHtcclxuICAgICAgdW5pZGFkZTogJycsXHJcbiAgICAgIGVzdGFkbzogJycsXHJcbiAgICAgIGNvYmVydHVyYTogW10sXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuc2VjdGlvbnMuZm9yRWFjaCgoc2VjdGlvbikgPT4ge1xyXG4gICAgICBpZiAoIXNlY3Rpb24uY29uZmlnPy5jb250cm9sKSByZXR1cm47XHJcblxyXG4gICAgICBjb25zdCB2YWx1ZSA9IHNlY3Rpb24uY29uZmlnLmNvbnRyb2wudmFsdWU7XHJcblxyXG4gICAgICBzd2l0Y2ggKHNlY3Rpb24udHlwZSkge1xyXG4gICAgICAgIGNhc2UgJ2lucHV0JzpcclxuICAgICAgICAgIGZpbHRlckRhdGEudW5pZGFkZSA9IHZhbHVlIHx8ICcnO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnc2VsZWN0JzpcclxuICAgICAgICAgIGZpbHRlckRhdGEuZXN0YWRvID0gdmFsdWUgfHwgJyc7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdjaGVja2JveC1ncm91cCc6XHJcbiAgICAgICAgICBmaWx0ZXJEYXRhLmNvYmVydHVyYSA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmNoZWNrZWQpIDogW107XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGZpbHRlckRhdGE7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzRmlsdGVyRGF0YUVtcHR5KGZpbHRlckRhdGE6IEZpbHRlclBsYW5vc0NvbnZlbmlvc0NoYW5nZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXMoZmlsdGVyRGF0YSkuZXZlcnkoKHZhbCkgPT4gdmFsID09PSBudWxsIHx8IHZhbCA9PT0gJycgfHwgKEFycmF5LmlzQXJyYXkodmFsKSAmJiB2YWwubGVuZ3RoID09PSAwKSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cImZpbHRlci1nZW5lcmljXCJcclxuICBbbmdDbGFzc109XCJ7ICdjb250YWluZXItc3R5bGUnOiB3aXRoQ29udGFpbmVyU3R5bGUsICdjbGlja2FibGUtbW9iaWxlJzogc2hvdWxkSGFuZGxlTW9iaWxlQ2xpY2soKSB9XCJcclxuICBhcmlhLWxhYmVsPVwiRmlsdHJvc1wiXHJcbiAgKGNsaWNrKT1cImhhbmRsZU1vYmlsZUNsaWNrKClcIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cImZpbHRlci1oZWFkZXItY29udGFpbmVyXCIgW25nQ2xhc3NdPVwieyAnbm8tcGFkZGluZyc6ICFpc0ZpbHRlck9wZW4sIGhpZGRlbjogIWlzRmlsdGVyT3BlbiB9XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLXRpdGxlLXdyYXBwZXJcIj5cclxuICAgICAgPGN1cmEtbGFiZWwgc2l6ZT1cIm1lZGl1bVwiIGxldmVsPVwiNFwiIGNvbG9yPVwibmV1dHJhbC1ibGFja1wiIHdlaWdodD1cInJlZ3VsYXJcIiBtYXJnaW4tYmxvY2s9XCIwXCIgbGluZS1oZWlnaHQ9XCIxNnB4XCI+XHJcbiAgICAgICAge3sgdGV4dFRpdGxlIH19XHJcbiAgICAgIDwvY3VyYS1sYWJlbD5cclxuXHJcbiAgICAgIEBpZiAoc2hvd0JhZGdlKSB7XHJcbiAgICAgICAgPGN1cmEtYmFkZ2UtY291bnRlclxyXG4gICAgICAgICAgW3R5cGVdPVwiJ3NvbGlkJ1wiXHJcbiAgICAgICAgICBbY29sb3JdPVwiaGFzU2VsZWN0aW9uKCkgPyAncHJpbWFyeScgOiAnbmV1dHJhbCdcIlxyXG4gICAgICAgICAgW251bWJlcl09XCJzZWxlY3RlZEZpbHRlcnNDb3VudFwiXHJcbiAgICAgICAgICBjbGFzcz1cImZpbHRlci1iYWRnZVwiXHJcbiAgICAgICAgPjwvY3VyYS1iYWRnZS1jb3VudGVyPlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICBAaWYgKHNob3dUb2dnbGVJY29uKSB7XHJcbiAgICAgIDxjdXJhLWJ1dHRvbi10cmFuc3BhcmVudCBzaXplPVwic21hbGxcIiBmb250LWNvbG9yPVwiZGFya1wiIGNvbG9yPVwicHJpbWFyeVwiIHRleHQtYWxpZ249XCJjZW50ZXJcIiAoY2xpY2spPVwidG9nZ2xlRmlsdGVyKClcIiBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzRmlsdGVyT3BlblwiPlxyXG4gICAgICAgIDxjdXJhLWljb24gW25hbWVdPVwiaXNGaWx0ZXJPcGVuID8gJ3VwJyA6ICdkb3duJ1wiIHNpemU9XCIxNlwiIGNsYXNzPVwiZmlsdGVyLWljb25cIiBjb2xvcj1cInByaW1hcnktZGFya1wiPjwvY3VyYS1pY29uPlxyXG4gICAgICA8L2N1cmEtYnV0dG9uLXRyYW5zcGFyZW50PlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWNvbnRlbnRcIiBbY2xhc3MuaGlkZGVuXT1cIiFpc0ZpbHRlck9wZW4gfHwgKGZvcmNlQ29sbGFwc2VkICYmIGlzTW9iaWxlKCkpXCI+XHJcbiAgICBAZm9yIChzZWN0aW9uIG9mIHNlY3Rpb25zOyB0cmFjayBzZWN0aW9uLnR5cGUpIHtcclxuICAgICAgQGlmIChzZWN0aW9uLnZpc2libGUgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1zZWN0aW9uXCI+XHJcbiAgICAgICAgICBAc3dpdGNoIChzZWN0aW9uLnR5cGUpIHtcclxuICAgICAgICAgICAgQGNhc2UgKCdpbnB1dCcpIHtcclxuICAgICAgICAgICAgICA8Y3VyYS1pbnB1dC10ZXh0XHJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwic2VjdGlvbi5jb25maWcucGxhY2Vob2xkZXIgfHwgJydcIlxyXG4gICAgICAgICAgICAgICAgW25hbWVdPVwic2VjdGlvbi5jb25maWcubmFtZSB8fCAnJ1wiXHJcbiAgICAgICAgICAgICAgICBbaWNvbk5hbWVdPVwic2VjdGlvbi5jb25maWcuaWNvbk5hbWUgfHwgJydcIlxyXG4gICAgICAgICAgICAgICAgW2F0dHIudmFsdWVdPVwic2VjdGlvbi5jb25maWcuY29udHJvbC52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwiaGFuZGxlSW5wdXRDaGFuZ2UoJGV2ZW50LCBzZWN0aW9uLmNvbmZpZy5jb250cm9sKVwiXHJcbiAgICAgICAgICAgICAgPjwvY3VyYS1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBjYXNlICgnc2VsZWN0Jykge1xyXG4gICAgICAgICAgICAgIDxjdXJhLXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cInNlY3Rpb24uY29uZmlnLmxhYmVsIHx8ICcnXCJcclxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJzZWN0aW9uLmNvbmZpZy5wbGFjZWhvbGRlciB8fCAnJ1wiXHJcbiAgICAgICAgICAgICAgICBbYXR0ci52YWx1ZV09XCJzZWN0aW9uLmNvbmZpZy5jb250cm9sLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIChzZWxlY3RlZCk9XCJoYW5kbGVTZWxlY3RDaGFuZ2UoJGV2ZW50LCBzZWN0aW9uLmNvbmZpZy5jb250cm9sKVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgQGlmIChzZWN0aW9uLmNvbmZpZy5pbmNsdWRlRGVmYXVsdE9wdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICA8Y3VyYS1zZWxlY3Qtb3B0aW9uIFthdHRyLnZhbHVlXT1cIicnXCI+e3sgc2VjdGlvbi5jb25maWcuZGVmYXVsdE9wdGlvblRleHQgfHwgJ0Zhw6dhIGEgc3VhIFNlbGXDp8OjbycgfX08L2N1cmEtc2VsZWN0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIEBmb3IgKG9wdGlvbiBvZiBzZWN0aW9uLmNvbmZpZy5vcHRpb25zIHx8IFtdOyB0cmFjayBvcHRpb24/LnZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgIDxjdXJhLXNlbGVjdC1vcHRpb24gW2F0dHIudmFsdWVdPVwib3B0aW9uPy52YWx1ZVwiPnt7IG9wdGlvbj8ubGFiZWwgfX08L2N1cmEtc2VsZWN0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA8L2N1cmEtc2VsZWN0PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBjYXNlICgnY2hlY2tib3gtZ3JvdXAnKSB7XHJcbiAgICAgICAgICAgICAgQGlmIChzZWN0aW9uLmNvbmZpZy50aXRsZSkge1xyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGN1cmEtaWNvbiBuYW1lPVwiZmlsdGVyXCIgc2l6ZT1cIjIwXCIgY29sb3I9XCJpbmZvLWRhcmtcIj48L2N1cmEtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgPGN1cmEtaGVhZGluZyBzaXplPVwieHNtYWxsXCIgbGV2ZWw9XCI1XCIgd2VpZ2h0PVwiYm9sZFwiIGNvbG9yPVwibmV1dHJhbC1ibGFja1wiIG1hcmdpbi1ibG9jaz1cIjBcIiBsaW5lLWhlaWdodD1cIjE2cHhcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBzZWN0aW9uLmNvbmZpZy50aXRsZSB9fVxyXG4gICAgICAgICAgICAgICAgICA8L2N1cmEtaGVhZGluZz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBAaWYgKHNlY3Rpb24uY29uZmlnLnN1YnRpdGxlKSB7XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLXN1YnRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxjdXJhLWhlYWRpbmcgc2l6ZT1cInhzbWFsbFwiIHdlaWdodD1cImJvbGRcIiBjb2xvcj1cIm5ldXRyYWwtYmxhY2tcIiBtYXJnaW4tYmxvY2s9XCIwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgc2VjdGlvbi5jb25maWcuc3VidGl0bGUgfX1cclxuICAgICAgICAgICAgICAgICAgPC9jdXJhLWhlYWRpbmc+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIEBpZiAoc2VjdGlvbi5jb25maWcuZGVzY3JpcHRpb24pIHtcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItZGVzY3JpcHRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgPGN1cmEtcGFyYWdyYXBoIHNpemU9XCJ4c21hbGxcIiBjb2xvcj1cIm5ldXRyYWwtZGFya1wiIG1hcmdpbi1ibG9jaz1cIjBcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBzZWN0aW9uLmNvbmZpZy5kZXNjcmlwdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgICA8L2N1cmEtcGFyYWdyYXBoPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWNoZWNrYm94ZXNcIiBbY2xhc3Muc2Nyb2xsYWJsZV09XCJoYXNTY3JvbGwoc2VjdGlvbilcIj5cclxuICAgICAgICAgICAgICAgIEBmb3IgKG9wdGlvbiBvZiBzZWN0aW9uLmNvbmZpZy5vcHRpb25zIHx8IFtdOyB0cmFjayBvcHRpb24/LnZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgIDxjdXJhLWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgIGljb24tY29sb3I9XCJsaWdodFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIubmFtZV09XCJvcHRpb24/LmxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5sYWJlbF09XCJvcHRpb24/LmxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICBbYXR0ci52YWx1ZV09XCJvcHRpb24/LnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5jaGVja2VkXT1cIm9wdGlvbj8uY2hlY2tlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG9uY2hhbmdlKT1cImhhbmRsZUNoZWNrYm94Q2hhbmdlKCRldmVudCwgc2VjdGlvbi5jb25maWcub3B0aW9ucylcIlxyXG4gICAgICAgICAgICAgICAgICA+PC9jdXJhLWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBjYXNlICgncmFkaW8tZ3JvdXAnKSB7XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1yYWRpb3NcIiBbY2xhc3Muc2Nyb2xsYWJsZV09XCJoYXNTY3JvbGwoc2VjdGlvbilcIj5cclxuICAgICAgICAgICAgICAgIEBmb3IgKG9wdGlvbiBvZiBzZWN0aW9uLmNvbmZpZy5vcHRpb25zIHx8IFtdOyB0cmFjayBvcHRpb24/LnZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgIDxjdXJhLXJhZGlvXHJcbiAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwic2VjdGlvbi5jb25maWcubmFtZSB8fCAncmFkaW8tZ3JvdXAnXCJcclxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwib3B0aW9uLmxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJnZXRSYWRpb0dyb3VwVmFsdWUoc2VjdGlvbi5jb25maWcuY29udHJvbCkgPT09IG9wdGlvbi52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG9uY2hhbmdlKT1cImhhbmRsZVJhZGlvQ2hhbmdlKCRldmVudCwgc2VjdGlvbi5jb25maWcuY29udHJvbClcIlxyXG4gICAgICAgICAgICAgICAgICA+PC9jdXJhLXJhZGlvPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBjYXNlICgnY3VzdG9tJykge1xyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzZWN0aW9uLmNvbmZpZy50ZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgIH1cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImZpbHRlci1hY3Rpb25zXCIgW2NsYXNzLmhpZGRlbl09XCIhaXNGaWx0ZXJPcGVuIHx8IChmb3JjZUNvbGxhcHNlZCAmJiBpc01vYmlsZSgpKVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1haW4tYWN0aW9uc1wiPlxyXG4gICAgICBAaWYgKHNob3dDbGVhckJ1dHRvbikge1xyXG4gICAgICAgIDxjdXJhLWJ1dHRvbi10cmFuc3BhcmVudFxyXG4gICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgIGZvbnQtY29sb3I9XCJkYXJrXCJcclxuICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICB0ZXh0LWFsaWduPVwiY2VudGVyXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlQnV0dG9uc1dpdGhvdXRTZWxlY3Rpb24gJiYgIWhhc1NlbGVjdGlvbigpXCJcclxuICAgICAgICAgIChjbGljayk9XCJyZXNldCgpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8c3Bhbj5MaW1wYXIgdG9kb3Mgb3MgZmlsdHJvczwvc3Bhbj5cclxuICAgICAgICA8L2N1cmEtYnV0dG9uLXRyYW5zcGFyZW50PlxyXG4gICAgICB9XHJcblxyXG4gICAgICBAaWYgKHNob3dBcHBseUJ1dHRvbikge1xyXG4gICAgICAgIDxjdXJhLWJ1dHRvblxyXG4gICAgICAgICAgc2l6ZT1cIm1lZGl1bVwiXHJcbiAgICAgICAgICBmb250LWNvbG9yPVwibGlnaHRcIlxyXG4gICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgICAgIHRleHQtYWxpZ249XCJjZW50ZXJcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cImZpbHRlcigpXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlQnV0dG9uc1dpdGhvdXRTZWxlY3Rpb24gJiYgIWhhc1NlbGVjdGlvbigpXCJcclxuICAgICAgICAgIGNsYXNzPVwiZmlsdGVyLWJ1dHRvblwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgRmlsdHJhclxyXG4gICAgICAgIDwvY3VyYS1idXR0b24+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIEBpZiAoc2hvd0Nsb3NlQnV0dG9uKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkaXZpZGVyLXN0cm9uZ1wiPjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2xvc2UtYWN0aW9uLXdyYXBwZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2xvc2UtYWN0aW9uXCIgKGNsaWNrKT1cImNsb3NlKClcIj5cclxuICAgICAgICAgIDxjdXJhLWljb24gbmFtZT1cImNsb3NlXCIgY29sb3I9XCJlcnJvci1kYXJrXCIgc2l6ZT1cInNtYWxsXCI+PC9jdXJhLWljb24+XHJcbiAgICAgICAgICA8Y3VyYS1idXR0b24tdHJhbnNwYXJlbnQgc2l6ZT1cIlwiIHR5cGU9XCJidXR0b25cIiBjb2xvcj1cImVycm9yXCIgdGFyZ2V0PVwiX3NlbGZcIj4gRmVjaGFyIDwvY3VyYS1idXR0b24tdHJhbnNwYXJlbnQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
247
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWdlbmVyaWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2l0ZS1mcm9udC1lbmQtbGliL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXJzL2ZpbHRlci1nZW5lcmljL2ZpbHRlci1nZW5lcmljLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpdGUtZnJvbnQtZW5kLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVycy9maWx0ZXItZ2VuZXJpYy9maWx0ZXItZ2VuZXJpYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFxQixTQUFTLEVBQUUsc0JBQXNCLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUosT0FBTyxFQUFlLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7O0FBWTdELE1BQU0sT0FBTyxzQkFBc0I7SUFtQ2pDLFlBQ21CLFdBQXdCLEVBQ3hCLEdBQXNCLEVBQ0QsVUFBa0I7UUFGdkMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDRCxlQUFVLEdBQVYsVUFBVSxDQUFRO1FBckNoRCxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7UUFDL0MsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDekMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUU3Qyx1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDMUIsb0JBQWUs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QkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtnQixZQUFZO3NCQUFqQyxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDdXJhU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgTWVkaWFRdWVyaWVzIH0gZnJvbSAnLi4vLi4vLi4vaGVscGVycy9tZWRpYVF1ZXJpZXMnO1xyXG5pbXBvcnQgeyBGaWx0ZXJBY3Rpb24sIEZpbHRlckNvbnRyb2xWYWx1ZSwgRmlsdGVyU2VjdGlvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9maWx0ZXJzL2ZpbHRlci1zZWN0aW9uLnR5cGUnO1xyXG5pbXBvcnQgeyBGaWx0ZXJFdmVudCwgRmlsdGVyUGxhbm9zQ29udmVuaW9zQ2hhbmdlIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2ZpbHRlcnMvZmlsdGVyLXBsYW5vcy1jb252ZW5pb3MubW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdyZHNpdGUtZmlsdGVyLWdlbmVyaWMnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXHJcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXItZ2VuZXJpYy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmlsdGVyLWdlbmVyaWMuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbHRlckdlbmVyaWNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBPdXRwdXQoKSBmaWx0ZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbHRlckV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSBjbG9zZU1vZGFsID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIEBPdXRwdXQoKSBvcGVuTW9iaWxlRmlsdGVyID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBASW5wdXQoKSB3aXRoQ29udGFpbmVyU3R5bGUgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dDbGVhckJ1dHRvbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2hvd0FwcGx5QnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93Q2xvc2VCdXR0b24gPSBmYWxzZTtcclxuICBASW5wdXQoKSBkaXNhYmxlQnV0dG9uc1dpdGhvdXRTZWxlY3Rpb24gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzaG93QmFkZ2UgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dUb2dnbGVJY29uID0gdHJ1ZTtcclxuICBASW5wdXQoKSBpc0ZpbHRlck9wZW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIG1vYmlsZUJlaGF2aW9yID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZm9yY2VDb2xsYXBzZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBlbWl0T25SZXNldCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRleHRUaXRsZSA9ICdGaWx0cmFyIHBvcic7XHJcbiAgQElucHV0KCkgc2VjdGlvbnM6IEZpbHRlclNlY3Rpb25bXSA9IFtdO1xyXG5cclxuICBzZWxlY3RlZEZpbHRlcnNDb3VudDogbnVtYmVyID0gMDtcclxuICB3aW5kb3dXaWR0aDogbnVtYmVyID0gMDtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZScpIHN0eWxlQmluZGluZyA9IHtcclxuICAgICctLWZvbnQtZmFtaWx5JzogdGhpcy5jdXJhU2VydmljZS5nZXRGb250RmFtaWx5KCcnKSxcclxuICAgICctLW5ldXRyYWwtb3BhY2l0eS1ibGFjayc6IHRoaXMuY3VyYVNlcnZpY2UuZ2V0Q29sb3IoJ25ldXRyYWwtYmxhY2snLCAwLjIpLFxyXG4gICAgJy0tbmV1dHJhbC1kYXJrJzogdGhpcy5jdXJhU2VydmljZS5nZXRDb2xvcignbmV1dHJhbC1kYXJrJyksXHJcbiAgICAnLS1uZXV0cmFsLWRhcmtlcic6IHRoaXMuY3VyYVNlcnZpY2UuZ2V0Q29sb3IoJ25ldXRyYWwtZGFya2VyJyksXHJcbiAgICAnLS1uZXV0cmFsLW1lZGl1bSc6IHRoaXMuY3VyYVNlcnZpY2UuZ2V0Q29sb3IoJ25ldXRyYWwtbWVkaXVtJyksXHJcbiAgICAnLS1uZXV0cmFsLWxpZ2h0JzogdGhpcy5jdXJhU2VydmljZS5nZXRDb2xvcignbmV1dHJhbC1saWdodCcpLFxyXG4gICAgJy0tbmV1dHJhbC1saWdodGVyJzogdGhpcy5jdXJhU2VydmljZS5nZXRDb2xvcignbmV1dHJhbC1saWdodGVyJyksXHJcbiAgICAnLS1uZXV0cmFsLXB1cmV3aGl0ZSc6IHRoaXMuY3VyYVNlcnZpY2UuZ2V0Q29sb3IoJ25ldXRyYWwtcHVyZXdoaXRlJyksXHJcbiAgICAnLS1wcmltYXJ5LWJhc2UnOiB0aGlzLmN1cmFTZXJ2aWNlLmdldENvbG9yKCdwcmltYXJ5LWJhc2UnKSxcclxuICAgICctLXByaW1hcnktbGlnaHRlcic6IHRoaXMuY3VyYVNlcnZpY2UuZ2V0Q29sb3IoJ3ByaW1hcnktbGlnaHRlcicpLFxyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjdXJhU2VydmljZTogQ3VyYVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHJlYWRvbmx5IHBsYXRmb3JtSWQ6IG9iamVjdCxcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcclxuICAgICAgdGhpcy53aW5kb3dXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmZvcmNlQ29sbGFwc2VkICYmIHRoaXMuaXNNb2JpbGUoKSkge1xyXG4gICAgICB0aGlzLmlzRmlsdGVyT3BlbiA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlSW5wdXRDaGFuZ2UoZXZlbnQ6IGFueSwgY29udHJvbDogRm9ybUNvbnRyb2wpOiB2b2lkIHtcclxuICAgIGNvbnRyb2wuc2V0VmFsdWUoZXZlbnQuZGV0YWlsKTtcclxuICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRGaWx0ZXJzQ291bnQoKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZVNlbGVjdENoYW5nZShldmVudDogYW55LCBjb250cm9sOiBGb3JtQ29udHJvbCk6IHZvaWQge1xyXG4gICAgaWYgKGV2ZW50Py5kZXRhaWwgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBjb250cm9sLnNldFZhbHVlKGV2ZW50LmRldGFpbCk7XHJcbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRGaWx0ZXJzQ291bnQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUNoZWNrYm94Q2hhbmdlKGV2ZW50OiBhbnksIG9wdGlvbnM6IGFueVtdKTogdm9pZCB7XHJcbiAgICBjb25zdCBjaGFuZ2VkT3B0aW9uID0gb3B0aW9ucy5maW5kKChvcHQpID0+IG9wdC52YWx1ZSA9PT0gZXZlbnQuZGV0YWlsLnZhbHVlKTtcclxuICAgIGlmIChjaGFuZ2VkT3B0aW9uKSBjaGFuZ2VkT3B0aW9uLmNoZWNrZWQgPSBldmVudC5kZXRhaWwuY2hlY2tlZDtcclxuXHJcbiAgICB0aGlzLnVwZGF0ZUNoZWNrYm94R3JvdXAob3B0aW9ucyk7XHJcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkRmlsdGVyc0NvdW50KCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVSYWRpb0NoYW5nZShldmVudDogYW55LCBjb250cm9sOiBGb3JtQ29udHJvbCk6IHZvaWQge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZSA9IGV2ZW50LmRldGFpbC52YWx1ZTtcclxuICAgIGNvbnRyb2wuc2V0VmFsdWUoY29udHJvbC52YWx1ZT8udmFsdWUgPT09IHNlbGVjdGVkVmFsdWUgPyBudWxsIDogeyB2YWx1ZTogc2VsZWN0ZWRWYWx1ZSB9KTtcclxuICB9XHJcblxyXG4gIGZpbHRlcigpOiB2b2lkIHtcclxuICAgIHRoaXMuZW1pdEZpbHRlckNoYW5nZSgnZmlsdGVyJyk7XHJcbiAgICBpZiAodGhpcy5tb2JpbGVCZWhhdmlvciB8fCB0aGlzLnNob3dDbG9zZUJ1dHRvbikgdGhpcy5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgcmVzZXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlc2V0QWxsQ29udHJvbHMoKTtcclxuICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRGaWx0ZXJzQ291bnQoKTtcclxuXHJcbiAgICBpZiAodGhpcy5lbWl0T25SZXNldCkge1xyXG4gICAgICB0aGlzLmVtaXRGaWx0ZXJDaGFuZ2UoJ3Jlc2V0Jyk7XHJcbiAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jbG9zZU1vZGFsLmVtaXQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVGaWx0ZXIoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5tb2JpbGVCZWhhdmlvciAmJiB0aGlzLmlzTW9iaWxlKCkpIHtcclxuICAgICAgdGhpcy5vcGVuTW9iaWxlRmlsdGVyLmVtaXQoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaXNGaWx0ZXJPcGVuID0gIXRoaXMuaXNGaWx0ZXJPcGVuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgaGFzU2VsZWN0aW9uKCk6IGJvb2xlYW4ge1xyXG4gICAgdGhpcy51cGRhdGVTZWxlY3RlZEZpbHRlcnNDb3VudCgpO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzQ291bnQgPiAwO1xyXG4gIH1cclxuXHJcbiAgaXNNb2JpbGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy53aW5kb3dXaWR0aCA8PSBNZWRpYVF1ZXJpZXMuc21hbGxCcmVha3BvaW50O1xyXG4gIH1cclxuXHJcbiAgZ2V0UmFkaW9Hcm91cFZhbHVlKGNvbnRyb2w/OiBGb3JtQ29udHJvbDxGaWx0ZXJDb250cm9sVmFsdWU+KTogYW55IHtcclxuICAgIGNvbnN0IHZhbHVlID0gY29udHJvbD8udmFsdWU7XHJcbiAgICByZXR1cm4gdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAndmFsdWUnIGluIHZhbHVlID8gdmFsdWUudmFsdWUgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgaGFzU2Nyb2xsKHNlY3Rpb246IEZpbHRlclNlY3Rpb24pOiBib29sZWFuIHtcclxuICAgIHN3aXRjaCAoc2VjdGlvbi50eXBlKSB7XHJcbiAgICAgIGNhc2UgJ2NoZWNrYm94LWdyb3VwJzpcclxuICAgICAgICByZXR1cm4gc2VjdGlvbi5jb25maWcub3B0aW9ucyAmJiBzZWN0aW9uLmNvbmZpZy5vcHRpb25zLmxlbmd0aCA+IDY7XHJcbiAgICAgIGNhc2UgJ3JhZGlvLWdyb3VwJzpcclxuICAgICAgICByZXR1cm4gc2VjdGlvbi5jb25maWcub3B0aW9ucyAmJiBzZWN0aW9uLmNvbmZpZy5vcHRpb25zLmxlbmd0aCA+IDY7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0U2VjdGlvbkNsYXNzKHNlY3Rpb246IEZpbHRlclNlY3Rpb24pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuaGFzU2Nyb2xsKHNlY3Rpb24pID8gJ3Njcm9sbGFibGUnIDogJyc7XHJcbiAgfVxyXG5cclxuICBzaG91bGRIYW5kbGVNb2JpbGVDbGljaygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLm1vYmlsZUJlaGF2aW9yICYmIHRoaXMuaXNNb2JpbGUoKSAmJiB0aGlzLmZvcmNlQ29sbGFwc2VkO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlTW9iaWxlQ2xpY2soKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zaG91bGRIYW5kbGVNb2JpbGVDbGljaygpKSB7XHJcbiAgICAgIHRoaXMub3Blbk1vYmlsZUZpbHRlci5lbWl0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGVtaXRGaWx0ZXJDaGFuZ2UoYWN0aW9uOiBGaWx0ZXJBY3Rpb24pOiB2b2lkIHtcclxuICAgIGNvbnN0IGZpbHRlckRhdGEgPSB0aGlzLmJ1aWxkRmlsdGVyRGF0YSgpO1xyXG4gICAgY29uc3QgaXNFbXB0eSA9IHRoaXMuaXNGaWx0ZXJEYXRhRW1wdHkoZmlsdGVyRGF0YSk7XHJcblxyXG4gICAgdGhpcy5maWx0ZXJDaGFuZ2UuZW1pdCh7XHJcbiAgICAgIGRhdGE6IHRoaXMuZW1pdE9uUmVzZXQgfHwgIWlzRW1wdHkgPyBmaWx0ZXJEYXRhIDogbnVsbCxcclxuICAgICAgYWN0aW9uOiBhY3Rpb24sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlU2VsZWN0ZWRGaWx0ZXJzQ291bnQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkRmlsdGVyc0NvdW50ID0gdGhpcy5zZWN0aW9ucy5yZWR1Y2UoKGNvdW50LCBzZWN0aW9uKSA9PiB7XHJcbiAgICAgIGlmICghc2VjdGlvbi5jb25maWc/LmNvbnRyb2wpIHJldHVybiBjb3VudDtcclxuXHJcbiAgICAgIGNvbnN0IHZhbHVlID0gc2VjdGlvbi5jb25maWcuY29udHJvbC52YWx1ZTtcclxuXHJcbiAgICAgIHN3aXRjaCAoc2VjdGlvbi50eXBlKSB7XHJcbiAgICAgICAgY2FzZSAnY2hlY2tib3gtZ3JvdXAnOlxyXG4gICAgICAgICAgcmV0dXJuIGNvdW50ICsgKEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUuZmlsdGVyKChpdGVtKSA9PiBpdGVtPy5jaGVja2VkKS5sZW5ndGggOiAwKTtcclxuICAgICAgICBjYXNlICdyYWRpby1ncm91cCc6XHJcbiAgICAgICAgICByZXR1cm4gY291bnQgKyAodmFsdWU/LnZhbHVlID8gMSA6IDApO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICByZXR1cm4gY291bnQgKyAodmFsdWUgPyAxIDogMCk7XHJcbiAgICAgIH1cclxuICAgIH0sIDApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZXNldEFsbENvbnRyb2xzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWN0aW9ucy5mb3JFYWNoKChzZWN0aW9uKSA9PiB7XHJcbiAgICAgIGlmICghc2VjdGlvbi5jb25maWc/LmNvbnRyb2wpIHJldHVybjtcclxuXHJcbiAgICAgIGlmIChzZWN0aW9uLnR5cGUgPT09ICdjaGVja2JveC1ncm91cCcpIHtcclxuICAgICAgICBjb25zdCByZXNldE9wdGlvbnMgPSBzZWN0aW9uLmNvbmZpZy5vcHRpb25zLm1hcCgob3B0aW9uOiBhbnkpID0+ICh7IC4uLm9wdGlvbiwgY2hlY2tlZDogZmFsc2UgfSkpO1xyXG4gICAgICAgIHNlY3Rpb24uY29uZmlnLm9wdGlvbnMgPSByZXNldE9wdGlvbnM7XHJcbiAgICAgICAgc2VjdGlvbi5jb25maWcuY29udHJvbC5zZXRWYWx1ZShyZXNldE9wdGlvbnMsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzZWN0aW9uLmNvbmZpZy5jb250cm9sLnJlc2V0KCcnLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVDaGVja2JveEdyb3VwKG9wdGlvbnM6IGFueVtdKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlY3Rpb25zXHJcbiAgICAgIC5maWx0ZXIoKHNlY3Rpb24pID0+IHNlY3Rpb24udHlwZSA9PT0gJ2NoZWNrYm94LWdyb3VwJylcclxuICAgICAgLmZvckVhY2goKHNlY3Rpb24pID0+IHtcclxuICAgICAgICBzZWN0aW9uLmNvbmZpZy5vcHRpb25zID0gWy4uLm9wdGlvbnNdO1xyXG4gICAgICAgIHNlY3Rpb24uY29uZmlnLmNvbnRyb2wuc2V0VmFsdWUoWy4uLm9wdGlvbnNdKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkRmlsdGVyRGF0YSgpOiBGaWx0ZXJQbGFub3NDb252ZW5pb3NDaGFuZ2UgfCBhbnkge1xyXG4gICAgY29uc3QgZmlsdGVyRGF0YTogRmlsdGVyUGxhbm9zQ29udmVuaW9zQ2hhbmdlID0ge1xyXG4gICAgICB1bmlkYWRlOiAnJyxcclxuICAgICAgZXN0YWRvOiAnJyxcclxuICAgICAgY29iZXJ0dXJhOiBbXSxcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5zZWN0aW9ucy5mb3JFYWNoKChzZWN0aW9uKSA9PiB7XHJcbiAgICAgIGlmICghc2VjdGlvbi5jb25maWc/LmNvbnRyb2wpIHJldHVybjtcclxuXHJcbiAgICAgIGNvbnN0IHZhbHVlID0gc2VjdGlvbi5jb25maWcuY29udHJvbC52YWx1ZTtcclxuXHJcbiAgICAgIHN3aXRjaCAoc2VjdGlvbi50eXBlKSB7XHJcbiAgICAgICAgY2FzZSAnaW5wdXQnOlxyXG4gICAgICAgICAgZmlsdGVyRGF0YS51bmlkYWRlID0gdmFsdWUgfHwgJyc7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdzZWxlY3QnOlxyXG4gICAgICAgICAgZmlsdGVyRGF0YS5lc3RhZG8gPSB2YWx1ZSB8fCAnJztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2NoZWNrYm94LWdyb3VwJzpcclxuICAgICAgICAgIGZpbHRlckRhdGEuY29iZXJ0dXJhID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZS5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uY2hlY2tlZCkgOiBbXTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gZmlsdGVyRGF0YTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNGaWx0ZXJEYXRhRW1wdHkoZmlsdGVyRGF0YTogRmlsdGVyUGxhbm9zQ29udmVuaW9zQ2hhbmdlKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhmaWx0ZXJEYXRhKS5ldmVyeSgodmFsKSA9PiB2YWwgPT09IG51bGwgfHwgdmFsID09PSAnJyB8fCAoQXJyYXkuaXNBcnJheSh2YWwpICYmIHZhbC5sZW5ndGggPT09IDApKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwiZmlsdGVyLWdlbmVyaWNcIlxyXG4gIFtuZ0NsYXNzXT1cInsgJ2NvbnRhaW5lci1zdHlsZSc6IHdpdGhDb250YWluZXJTdHlsZSwgJ2NsaWNrYWJsZS1tb2JpbGUnOiBzaG91bGRIYW5kbGVNb2JpbGVDbGljaygpIH1cIlxyXG4gIGFyaWEtbGFiZWw9XCJGaWx0cm9zXCJcclxuICAoY2xpY2spPVwiaGFuZGxlTW9iaWxlQ2xpY2soKVwiXHJcbj5cclxuICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWhlYWRlci1jb250YWluZXJcIiBbbmdDbGFzc109XCJ7ICduby1wYWRkaW5nJzogIWlzRmlsdGVyT3BlbiwgaGlkZGVuOiAhaXNGaWx0ZXJPcGVuIH1cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItdGl0bGUtd3JhcHBlclwiPlxyXG4gICAgICA8Y3VyYS1sYWJlbCBzaXplPVwibWVkaXVtXCIgbGV2ZWw9XCI0XCIgY29sb3I9XCJuZXV0cmFsLWJsYWNrXCIgd2VpZ2h0PVwicmVndWxhclwiIG1hcmdpbi1ibG9jaz1cIjBcIiBsaW5lLWhlaWdodD1cIjE2cHhcIj5cclxuICAgICAgICB7eyB0ZXh0VGl0bGUgfX1cclxuICAgICAgPC9jdXJhLWxhYmVsPlxyXG5cclxuICAgICAgQGlmIChzaG93QmFkZ2UpIHtcclxuICAgICAgICA8Y3VyYS1iYWRnZS1jb3VudGVyXHJcbiAgICAgICAgICBbdHlwZV09XCInc29saWQnXCJcclxuICAgICAgICAgIFtjb2xvcl09XCJoYXNTZWxlY3Rpb24oKSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ1wiXHJcbiAgICAgICAgICBbbnVtYmVyXT1cInNlbGVjdGVkRmlsdGVyc0NvdW50XCJcclxuICAgICAgICAgIGNsYXNzPVwiZmlsdGVyLWJhZGdlXCJcclxuICAgICAgICA+PC9jdXJhLWJhZGdlLWNvdW50ZXI+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIEBpZiAoc2hvd1RvZ2dsZUljb24pIHtcclxuICAgICAgPGN1cmEtYnV0dG9uLXRyYW5zcGFyZW50IHNpemU9XCJzbWFsbFwiIGZvbnQtY29sb3I9XCJkYXJrXCIgY29sb3I9XCJwcmltYXJ5XCIgdGV4dC1hbGlnbj1cImNlbnRlclwiIChjbGljayk9XCJ0b2dnbGVGaWx0ZXIoKVwiIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXNGaWx0ZXJPcGVuXCI+XHJcbiAgICAgICAgPGN1cmEtaWNvbiBbbmFtZV09XCJpc0ZpbHRlck9wZW4gPyAndXAnIDogJ2Rvd24nXCIgc2l6ZT1cIjE2XCIgY2xhc3M9XCJmaWx0ZXItaWNvblwiIGNvbG9yPVwicHJpbWFyeS1kYXJrXCI+PC9jdXJhLWljb24+XHJcbiAgICAgIDwvY3VyYS1idXR0b24tdHJhbnNwYXJlbnQ+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJmaWx0ZXItY29udGVudFwiIFtjbGFzcy5oaWRkZW5dPVwiIWlzRmlsdGVyT3BlbiB8fCAoZm9yY2VDb2xsYXBzZWQgJiYgaXNNb2JpbGUoKSlcIj5cclxuICAgIEBmb3IgKHNlY3Rpb24gb2Ygc2VjdGlvbnM7IHRyYWNrIHNlY3Rpb24udHlwZSkge1xyXG4gICAgICBAaWYgKHNlY3Rpb24udmlzaWJsZSAhPT0gZmFsc2UpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLXNlY3Rpb25cIj5cclxuICAgICAgICAgIEBzd2l0Y2ggKHNlY3Rpb24udHlwZSkge1xyXG4gICAgICAgICAgICBAY2FzZSAoJ2lucHV0Jykge1xyXG4gICAgICAgICAgICAgIDxjdXJhLWlucHV0LXRleHRcclxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJzZWN0aW9uLmNvbmZpZy5wbGFjZWhvbGRlciB8fCAnJ1wiXHJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJzZWN0aW9uLmNvbmZpZy5uYW1lIHx8ICcnXCJcclxuICAgICAgICAgICAgICAgIFtpY29uTmFtZV09XCJzZWN0aW9uLmNvbmZpZy5pY29uTmFtZSB8fCAnJ1wiXHJcbiAgICAgICAgICAgICAgICBbYXR0ci52YWx1ZV09XCJzZWN0aW9uLmNvbmZpZy5jb250cm9sLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJoYW5kbGVJbnB1dENoYW5nZSgkZXZlbnQsIHNlY3Rpb24uY29uZmlnLmNvbnRyb2wpXCJcclxuICAgICAgICAgICAgICA+PC9jdXJhLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGNhc2UgKCdzZWxlY3QnKSB7XHJcbiAgICAgICAgICAgICAgPGN1cmEtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwic2VjdGlvbi5jb25maWcubGFiZWwgfHwgJydcIlxyXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInNlY3Rpb24uY29uZmlnLnBsYWNlaG9sZGVyIHx8ICcnXCJcclxuICAgICAgICAgICAgICAgIFthdHRyLnZhbHVlXT1cInNlY3Rpb24uY29uZmlnLmNvbnRyb2wudmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgKHNlbGVjdGVkKT1cImhhbmRsZVNlbGVjdENoYW5nZSgkZXZlbnQsIHNlY3Rpb24uY29uZmlnLmNvbnRyb2wpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICBAaWYgKHNlY3Rpb24uY29uZmlnLmluY2x1ZGVEZWZhdWx0T3B0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgIDxjdXJhLXNlbGVjdC1vcHRpb24gW2F0dHIudmFsdWVdPVwiJydcIj57eyBzZWN0aW9uLmNvbmZpZy5kZWZhdWx0T3B0aW9uVGV4dCB8fCAnRmHDp2EgYSBzdWEgU2VsZcOnw6NvJyB9fTwvY3VyYS1zZWxlY3Qtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQGZvciAob3B0aW9uIG9mIHNlY3Rpb24uY29uZmlnLm9wdGlvbnMgfHwgW107IHRyYWNrIG9wdGlvbj8udmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgPGN1cmEtc2VsZWN0LW9wdGlvbiBbYXR0ci52YWx1ZV09XCJvcHRpb24/LnZhbHVlXCI+e3sgb3B0aW9uPy5sYWJlbCB9fTwvY3VyYS1zZWxlY3Qtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDwvY3VyYS1zZWxlY3Q+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGNhc2UgKCdjaGVja2JveC1ncm91cCcpIHtcclxuICAgICAgICAgICAgICBAaWYgKHNlY3Rpb24uY29uZmlnLnRpdGxlKSB7XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8Y3VyYS1pY29uIG5hbWU9XCJmaWx0ZXJcIiBzaXplPVwiMjBcIiBjb2xvcj1cImluZm8tZGFya1wiPjwvY3VyYS1pY29uPlxyXG4gICAgICAgICAgICAgICAgICA8Y3VyYS1oZWFkaW5nIHNpemU9XCJ4c21hbGxcIiBsZXZlbD1cIjVcIiB3ZWlnaHQ9XCJib2xkXCIgY29sb3I9XCJuZXV0cmFsLWJsYWNrXCIgbWFyZ2luLWJsb2NrPVwiMFwiIGxpbmUtaGVpZ2h0PVwiMTZweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IHNlY3Rpb24uY29uZmlnLnRpdGxlIH19XHJcbiAgICAgICAgICAgICAgICAgIDwvY3VyYS1oZWFkaW5nPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIEBpZiAoc2VjdGlvbi5jb25maWcuc3VidGl0bGUpIHtcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItc3VidGl0bGVcIj5cclxuICAgICAgICAgICAgICAgICAgPGN1cmEtaGVhZGluZyBzaXplPVwieHNtYWxsXCIgd2VpZ2h0PVwiYm9sZFwiIGNvbG9yPVwibmV1dHJhbC1ibGFja1wiIG1hcmdpbi1ibG9jaz1cIjBcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBzZWN0aW9uLmNvbmZpZy5zdWJ0aXRsZSB9fVxyXG4gICAgICAgICAgICAgICAgICA8L2N1cmEtaGVhZGluZz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgQGlmIChzZWN0aW9uLmNvbmZpZy5kZXNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1kZXNjcmlwdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8Y3VyYS1wYXJhZ3JhcGggc2l6ZT1cInhzbWFsbFwiIGNvbG9yPVwibmV1dHJhbC1kYXJrXCIgbWFyZ2luLWJsb2NrPVwiMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IHNlY3Rpb24uY29uZmlnLmRlc2NyaXB0aW9uIH19XHJcbiAgICAgICAgICAgICAgICAgIDwvY3VyYS1wYXJhZ3JhcGg+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItY2hlY2tib3hlc1wiIFtjbGFzcy5zY3JvbGxhYmxlXT1cImhhc1Njcm9sbChzZWN0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgQGZvciAob3B0aW9uIG9mIHNlY3Rpb24uY29uZmlnLm9wdGlvbnMgfHwgW107IHRyYWNrIG9wdGlvbj8udmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgPGN1cmEtY2hlY2tib3hcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaWNvbi1jb2xvcj1cImxpZ2h0XCJcclxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5uYW1lXT1cIm9wdGlvbj8ubGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmxhYmVsXT1cIm9wdGlvbj8ubGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLnZhbHVlXT1cIm9wdGlvbj8udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmNoZWNrZWRdPVwib3B0aW9uPy5jaGVja2VkXCJcclxuICAgICAgICAgICAgICAgICAgICAob25jaGFuZ2UpPVwiaGFuZGxlQ2hlY2tib3hDaGFuZ2UoJGV2ZW50LCBzZWN0aW9uLmNvbmZpZy5vcHRpb25zKVwiXHJcbiAgICAgICAgICAgICAgICAgID48L2N1cmEtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGNhc2UgKCdyYWRpby1ncm91cCcpIHtcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLXJhZGlvc1wiIFtjbGFzcy5zY3JvbGxhYmxlXT1cImhhc1Njcm9sbChzZWN0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgQGZvciAob3B0aW9uIG9mIHNlY3Rpb24uY29uZmlnLm9wdGlvbnMgfHwgW107IHRyYWNrIG9wdGlvbj8udmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgPGN1cmEtcmFkaW9cclxuICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJzZWN0aW9uLmNvbmZpZy5uYW1lIHx8ICdyYWRpby1ncm91cCdcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJvcHRpb24ubGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImdldFJhZGlvR3JvdXBWYWx1ZShzZWN0aW9uLmNvbmZpZy5jb250cm9sKSA9PT0gb3B0aW9uLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAob25jaGFuZ2UpPVwiaGFuZGxlUmFkaW9DaGFuZ2UoJGV2ZW50LCBzZWN0aW9uLmNvbmZpZy5jb250cm9sKVwiXHJcbiAgICAgICAgICAgICAgICAgID48L2N1cmEtcmFkaW8+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGNhc2UgKCdjdXN0b20nKSB7XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNlY3Rpb24uY29uZmlnLnRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWFjdGlvbnNcIiBbY2xhc3MuaGlkZGVuXT1cIiFpc0ZpbHRlck9wZW4gfHwgKGZvcmNlQ29sbGFwc2VkICYmIGlzTW9iaWxlKCkpXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWFpbi1hY3Rpb25zXCI+XHJcbiAgICAgIEBpZiAoc2hvd0NsZWFyQnV0dG9uKSB7XHJcbiAgICAgICAgPGN1cmEtYnV0dG9uLXRyYW5zcGFyZW50XHJcbiAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgZm9udC1jb2xvcj1cImRhcmtcIlxyXG4gICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgICAgIHRleHQtYWxpZ249XCJjZW50ZXJcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVCdXR0b25zV2l0aG91dFNlbGVjdGlvbiAmJiAhaGFzU2VsZWN0aW9uKClcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cInJlc2V0KClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxzcGFuPkxpbXBhciB0b2RvcyBvcyBmaWx0cm9zPC9zcGFuPlxyXG4gICAgICAgIDwvY3VyYS1idXR0b24tdHJhbnNwYXJlbnQ+XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBpZiAoc2hvd0FwcGx5QnV0dG9uKSB7XHJcbiAgICAgICAgPGN1cmEtYnV0dG9uXHJcbiAgICAgICAgICBzaXplPVwibWVkaXVtXCJcclxuICAgICAgICAgIGZvbnQtY29sb3I9XCJsaWdodFwiXHJcbiAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICAgICAgdGV4dC1hbGlnbj1cImNlbnRlclwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiZmlsdGVyKClcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVCdXR0b25zV2l0aG91dFNlbGVjdGlvbiAmJiAhaGFzU2VsZWN0aW9uKClcIlxyXG4gICAgICAgICAgY2xhc3M9XCJmaWx0ZXItYnV0dG9uXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICBGaWx0cmFyXHJcbiAgICAgICAgPC9jdXJhLWJ1dHRvbj5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgQGlmIChzaG93Q2xvc2VCdXR0b24pIHtcclxuICAgICAgPGRpdiBjbGFzcz1cImRpdmlkZXItc3Ryb25nXCI+PC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjbG9zZS1hY3Rpb24td3JhcHBlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjbG9zZS1hY3Rpb25cIiAoY2xpY2spPVwiY2xvc2UoKVwiPlxyXG4gICAgICAgICAgPGN1cmEtaWNvbiBuYW1lPVwiY2xvc2VcIiBjb2xvcj1cImVycm9yLWRhcmtcIiBzaXplPVwic21hbGxcIj48L2N1cmEtaWNvbj5cclxuICAgICAgICAgIDxjdXJhLWJ1dHRvbi10cmFuc3BhcmVudCBzaXplPVwiXCIgdHlwZT1cImJ1dHRvblwiIGNvbG9yPVwiZXJyb3JcIiB0YXJnZXQ9XCJfc2VsZlwiPiBGZWNoYXIgPC9jdXJhLWJ1dHRvbi10cmFuc3BhcmVudD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -4080,7 +4080,9 @@ class FilterGenericComponent {
4080
4080
  this.selectedFiltersCount = 0;
4081
4081
  this.windowWidth = 0;
4082
4082
  this.styleBinding = {
4083
+ '--font-family': this.curaService.getFontFamily(''),
4083
4084
  '--neutral-opacity-black': this.curaService.getColor('neutral-black', 0.2),
4085
+ '--neutral-dark': this.curaService.getColor('neutral-dark'),
4084
4086
  '--neutral-darker': this.curaService.getColor('neutral-darker'),
4085
4087
  '--neutral-medium': this.curaService.getColor('neutral-medium'),
4086
4088
  '--neutral-light': this.curaService.getColor('neutral-light'),
@@ -4249,11 +4251,11 @@ class FilterGenericComponent {
4249
4251
  return Object.values(filterData).every((val) => val === null || val === '' || (Array.isArray(val) && val.length === 0));
4250
4252
  }
4251
4253
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FilterGenericComponent, deps: [{ token: CuraService }, { token: i0.ChangeDetectorRef }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component }); }
4252
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: FilterGenericComponent, isStandalone: true, selector: "rdsite-filter-generic", inputs: { withContainerStyle: "withContainerStyle", showClearButton: "showClearButton", showApplyButton: "showApplyButton", showCloseButton: "showCloseButton", disableButtonsWithoutSelection: "disableButtonsWithoutSelection", showBadge: "showBadge", showToggleIcon: "showToggleIcon", isFilterOpen: "isFilterOpen", mobileBehavior: "mobileBehavior", forceCollapsed: "forceCollapsed", emitOnReset: "emitOnReset", textTitle: "textTitle", sections: "sections" }, outputs: { filterChange: "filterChange", closeModal: "closeModal", openMobileFilter: "openMobileFilter" }, host: { properties: { "style": "this.styleBinding" } }, ngImport: i0, template: "<div\r\n class=\"filter-generic\"\r\n [ngClass]=\"{ 'container-style': withContainerStyle, 'clickable-mobile': shouldHandleMobileClick() }\"\r\n aria-label=\"Filtros\"\r\n (click)=\"handleMobileClick()\"\r\n>\r\n <div class=\"filter-header-container\" [ngClass]=\"{ 'no-padding': !isFilterOpen, hidden: !isFilterOpen }\">\r\n <div class=\"filter-title-wrapper\">\r\n <cura-label size=\"medium\" level=\"4\" color=\"neutral-black\" weight=\"regular\" margin-block=\"0\" line-height=\"16px\">\r\n {{ textTitle }}\r\n </cura-label>\r\n\r\n @if (showBadge) {\r\n <cura-badge-counter\r\n [type]=\"'solid'\"\r\n [color]=\"hasSelection() ? 'primary' : 'neutral'\"\r\n [number]=\"selectedFiltersCount\"\r\n class=\"filter-badge\"\r\n ></cura-badge-counter>\r\n }\r\n </div>\r\n\r\n @if (showToggleIcon) {\r\n <cura-button-transparent size=\"small\" font-color=\"dark\" color=\"primary\" text-align=\"center\" (click)=\"toggleFilter()\" [attr.aria-expanded]=\"isFilterOpen\">\r\n <cura-icon [name]=\"isFilterOpen ? 'up' : 'down'\" size=\"16\" class=\"filter-icon\" color=\"primary-dark\"></cura-icon>\r\n </cura-button-transparent>\r\n }\r\n </div>\r\n\r\n <div class=\"filter-content\" [class.hidden]=\"!isFilterOpen || (forceCollapsed && isMobile())\">\r\n @for (section of sections; track section.type) {\r\n @if (section.visible !== false) {\r\n <div class=\"filter-section\">\r\n @switch (section.type) {\r\n @case ('input') {\r\n <cura-input-text\r\n [placeholder]=\"section.config.placeholder || ''\"\r\n [name]=\"section.config.name || ''\"\r\n [iconName]=\"section.config.iconName || ''\"\r\n [attr.value]=\"section.config.control.value\"\r\n (valueChange)=\"handleInputChange($event, section.config.control)\"\r\n ></cura-input-text>\r\n }\r\n @case ('select') {\r\n <cura-select\r\n [label]=\"section.config.label || ''\"\r\n [placeholder]=\"section.config.placeholder || ''\"\r\n [attr.value]=\"section.config.control.value\"\r\n (selected)=\"handleSelectChange($event, section.config.control)\"\r\n >\r\n @if (section.config.includeDefaultOption) {\r\n <cura-select-option [attr.value]=\"''\">{{ section.config.defaultOptionText || 'Fa\u00E7a a sua Sele\u00E7\u00E3o' }}</cura-select-option>\r\n }\r\n @for (option of section.config.options || []; track option?.value) {\r\n <cura-select-option [attr.value]=\"option?.value\">{{ option?.label }}</cura-select-option>\r\n }\r\n </cura-select>\r\n }\r\n @case ('checkbox-group') {\r\n @if (section.config.title) {\r\n <div class=\"filter-header\">\r\n <cura-icon name=\"filter\" size=\"20\" color=\"info-dark\"></cura-icon>\r\n <cura-heading size=\"xsmall\" level=\"5\" weight=\"bold\" color=\"neutral-black\" margin-block=\"0\" line-height=\"16px\">\r\n {{ section.config.title }}\r\n </cura-heading>\r\n </div>\r\n }\r\n @if (section.config.subtitle) {\r\n <div class=\"filter-subtitle\">\r\n <cura-heading size=\"xsmall\" weight=\"bold\" color=\"neutral-black\" margin-block=\"0\">\r\n {{ section.config.subtitle }}\r\n </cura-heading>\r\n </div>\r\n }\r\n\r\n @if (section.config.description) {\r\n <div class=\"filter-description\">\r\n <cura-paragraph size=\"xsmall\" color=\"neutral-dark\" margin-block=\"0\">\r\n {{ section.config.description }}\r\n </cura-paragraph>\r\n </div>\r\n }\r\n\r\n <div class=\"filter-checkboxes\" [class.scrollable]=\"hasScroll(section)\">\r\n @for (option of section.config.options || []; track option?.value) {\r\n <cura-checkbox\r\n color=\"primary\"\r\n size=\"small\"\r\n icon-color=\"light\"\r\n [attr.name]=\"option?.label\"\r\n [attr.label]=\"option?.label\"\r\n [attr.value]=\"option?.value\"\r\n [attr.checked]=\"option?.checked\"\r\n (onchange)=\"handleCheckboxChange($event, section.config.options)\"\r\n ></cura-checkbox>\r\n }\r\n </div>\r\n }\r\n @case ('radio-group') {\r\n <div class=\"filter-radios\" [class.scrollable]=\"hasScroll(section)\">\r\n @for (option of section.config.options || []; track option?.value) {\r\n <cura-radio\r\n [name]=\"section.config.name || 'radio-group'\"\r\n [label]=\"option.label\"\r\n [value]=\"option.value\"\r\n [checked]=\"getRadioGroupValue(section.config.control) === option.value\"\r\n (onchange)=\"handleRadioChange($event, section.config.control)\"\r\n ></cura-radio>\r\n }\r\n </div>\r\n }\r\n @case ('custom') {\r\n <ng-container *ngTemplateOutlet=\"section.config.template\"></ng-container>\r\n }\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n\r\n <div class=\"filter-actions\" [class.hidden]=\"!isFilterOpen || (forceCollapsed && isMobile())\">\r\n <div class=\"main-actions\">\r\n @if (showClearButton) {\r\n <cura-button-transparent\r\n size=\"small\"\r\n font-color=\"dark\"\r\n color=\"primary\"\r\n text-align=\"center\"\r\n [disabled]=\"disableButtonsWithoutSelection && !hasSelection()\"\r\n (click)=\"reset()\"\r\n >\r\n <span>Limpar todos os filtros</span>\r\n </cura-button-transparent>\r\n }\r\n\r\n @if (showApplyButton) {\r\n <cura-button\r\n size=\"medium\"\r\n font-color=\"light\"\r\n color=\"primary\"\r\n text-align=\"center\"\r\n (click)=\"filter()\"\r\n [disabled]=\"disableButtonsWithoutSelection && !hasSelection()\"\r\n class=\"filter-button\"\r\n >\r\n Filtrar\r\n </cura-button>\r\n }\r\n </div>\r\n\r\n @if (showCloseButton) {\r\n <div class=\"divider-strong\"></div>\r\n <div class=\"close-action-wrapper\">\r\n <div class=\"close-action\" (click)=\"close()\">\r\n <cura-icon name=\"close\" color=\"error-dark\" size=\"small\"></cura-icon>\r\n <cura-button-transparent size=\"\" type=\"button\" color=\"error\" target=\"_self\"> Fechar </cura-button-transparent>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: [":host *{font-family:Gotham,Roboto,sans-serif}.filter-generic{display:flex;flex-direction:column;gap:18px}.filter-generic.clickable-mobile{cursor:pointer}.filter-generic.clickable-mobile:hover{background-color:var(--primary-lighter)}.filter-generic.container-style{width:100%;padding:20px;border-radius:12px;border:2px solid var(--neutral-lighter);background-color:var(--neutral-purewhite)}.filter-generic cura-loader-circle{display:flex;justify-content:center;align-items:center;width:100%;min-height:100px}.filter-header-container{display:flex;padding-bottom:12px;align-items:center}.filter-header-container.no-padding{padding-bottom:0}.filter-header-container .filter-title-wrapper{display:flex;align-items:center;justify-content:space-between;flex:1 0 0}.filter-header-container .filter-badge{display:flex;height:20px;min-width:20px;justify-content:center;align-items:center;gap:4px}.filter-header-container .filter-icon{display:block}.filter-content,.filter-actions{transition:all .3s ease}.filter-content.hidden,.filter-actions.hidden{display:none;height:0;overflow:hidden;opacity:0;margin:0;padding:0}.filter-section{display:flex;flex-direction:column;gap:24px}.filter-section .filter-header{display:flex;align-items:center;gap:14px}.filter-section .filter-subtitle{font-weight:500}.filter-section .filter-description{display:flex;flex-direction:column;gap:8px}.filter-section .filter-description:after{content:\"\";display:block;width:100%;height:1px;background-color:var(--neutral-light);margin-top:12px;grid-column:1/-1}.filter-section .filter-checkboxes{display:grid;grid-template-columns:repeat(2,1fr);gap:11px 0px}.filter-section .filter-checkboxes.scrollable{max-height:100px;overflow-y:auto;grid-template-columns:1fr;padding-right:8px;gap:12px}.filter-section .filter-checkboxes.scrollable::-webkit-scrollbar{width:8px}.filter-section .filter-checkboxes.scrollable::-webkit-scrollbar-thumb{background:var(--neutral-medium)}.filter-section .filter-checkboxes.scrollable::-webkit-scrollbar-thumb:hover{background:var(--primary-base)}.filter-section .filter-checkboxes.scrollable::-webkit-scrollbar-track{background:var(--neutral-opacity-black)}.filter-section .filter-checkboxes.scrollable:after{display:none}.filter-section .filter-radios{display:flex;flex-direction:column;gap:12px}.filter-section .filter-radios.scrollable{max-height:100px;overflow-y:auto;padding-right:8px;gap:8px}.filter-section .filter-radios.scrollable::-webkit-scrollbar{width:8px}.filter-section .filter-radios.scrollable::-webkit-scrollbar-thumb{background:var(--neutral-medium)}.filter-section .filter-radios.scrollable::-webkit-scrollbar-thumb:hover{background:var(--primary-base)}.filter-section .filter-radios.scrollable::-webkit-scrollbar-track{background:var(--neutral-opacity-black)}.filter-section .filter-radios.scrollable:after{display:none}@media screen and (max-width: 1024px){.filter-checkboxes.scrollable,.filter-radios.scrollable{max-height:100px}.filter-checkboxes:after{display:none;background-color:transparent}}.filter-actions{display:flex;flex-direction:column;gap:0}.filter-actions:before{content:\"\";display:block;width:100%;height:1px;background:linear-gradient(90deg,var(--neutral-light) 75%,transparent 15%);background-size:10px 1px;background-repeat:repeat-x;margin-bottom:20px}.filter-actions .main-actions{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.filter-actions .divider-strong{height:1px;width:100%;margin-top:20px;margin-bottom:16px;background:linear-gradient(90deg,#e2e2e2 70%,transparent 70%);background-size:4px 1px;background-repeat:repeat-x}.filter-actions .close-action-wrapper{display:flex;justify-content:center;width:100%}.filter-actions .close-action{display:inline-flex;align-items:center;gap:8px}.filter-actions .close-action cura-button-transparent{padding:0;margin:0;background:transparent;border:none;color:inherit}.filter-actions cura-button-transparent{display:flex;justify-content:flex-start;text-align:left;flex:0 1 auto}.filter-actions cura-button{display:flex;justify-content:flex-start;text-align:left;flex:1 0 auto}@media screen and (max-width: 1024px){.filter-checkboxes:after{background-color:transparent}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }] }); }
4254
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: FilterGenericComponent, isStandalone: true, selector: "rdsite-filter-generic", inputs: { withContainerStyle: "withContainerStyle", showClearButton: "showClearButton", showApplyButton: "showApplyButton", showCloseButton: "showCloseButton", disableButtonsWithoutSelection: "disableButtonsWithoutSelection", showBadge: "showBadge", showToggleIcon: "showToggleIcon", isFilterOpen: "isFilterOpen", mobileBehavior: "mobileBehavior", forceCollapsed: "forceCollapsed", emitOnReset: "emitOnReset", textTitle: "textTitle", sections: "sections" }, outputs: { filterChange: "filterChange", closeModal: "closeModal", openMobileFilter: "openMobileFilter" }, host: { properties: { "style": "this.styleBinding" } }, ngImport: i0, template: "<div\r\n class=\"filter-generic\"\r\n [ngClass]=\"{ 'container-style': withContainerStyle, 'clickable-mobile': shouldHandleMobileClick() }\"\r\n aria-label=\"Filtros\"\r\n (click)=\"handleMobileClick()\"\r\n>\r\n <div class=\"filter-header-container\" [ngClass]=\"{ 'no-padding': !isFilterOpen, hidden: !isFilterOpen }\">\r\n <div class=\"filter-title-wrapper\">\r\n <cura-label size=\"medium\" level=\"4\" color=\"neutral-black\" weight=\"regular\" margin-block=\"0\" line-height=\"16px\">\r\n {{ textTitle }}\r\n </cura-label>\r\n\r\n @if (showBadge) {\r\n <cura-badge-counter\r\n [type]=\"'solid'\"\r\n [color]=\"hasSelection() ? 'primary' : 'neutral'\"\r\n [number]=\"selectedFiltersCount\"\r\n class=\"filter-badge\"\r\n ></cura-badge-counter>\r\n }\r\n </div>\r\n\r\n @if (showToggleIcon) {\r\n <cura-button-transparent size=\"small\" font-color=\"dark\" color=\"primary\" text-align=\"center\" (click)=\"toggleFilter()\" [attr.aria-expanded]=\"isFilterOpen\">\r\n <cura-icon [name]=\"isFilterOpen ? 'up' : 'down'\" size=\"16\" class=\"filter-icon\" color=\"primary-dark\"></cura-icon>\r\n </cura-button-transparent>\r\n }\r\n </div>\r\n\r\n <div class=\"filter-content\" [class.hidden]=\"!isFilterOpen || (forceCollapsed && isMobile())\">\r\n @for (section of sections; track section.type) {\r\n @if (section.visible !== false) {\r\n <div class=\"filter-section\">\r\n @switch (section.type) {\r\n @case ('input') {\r\n <cura-input-text\r\n [placeholder]=\"section.config.placeholder || ''\"\r\n [name]=\"section.config.name || ''\"\r\n [iconName]=\"section.config.iconName || ''\"\r\n [attr.value]=\"section.config.control.value\"\r\n (valueChange)=\"handleInputChange($event, section.config.control)\"\r\n ></cura-input-text>\r\n }\r\n @case ('select') {\r\n <cura-select\r\n [label]=\"section.config.label || ''\"\r\n [placeholder]=\"section.config.placeholder || ''\"\r\n [attr.value]=\"section.config.control.value\"\r\n (selected)=\"handleSelectChange($event, section.config.control)\"\r\n >\r\n @if (section.config.includeDefaultOption) {\r\n <cura-select-option [attr.value]=\"''\">{{ section.config.defaultOptionText || 'Fa\u00E7a a sua Sele\u00E7\u00E3o' }}</cura-select-option>\r\n }\r\n @for (option of section.config.options || []; track option?.value) {\r\n <cura-select-option [attr.value]=\"option?.value\">{{ option?.label }}</cura-select-option>\r\n }\r\n </cura-select>\r\n }\r\n @case ('checkbox-group') {\r\n @if (section.config.title) {\r\n <div class=\"filter-header\">\r\n <cura-icon name=\"filter\" size=\"20\" color=\"info-dark\"></cura-icon>\r\n <cura-heading size=\"xsmall\" level=\"5\" weight=\"bold\" color=\"neutral-black\" margin-block=\"0\" line-height=\"16px\">\r\n {{ section.config.title }}\r\n </cura-heading>\r\n </div>\r\n }\r\n @if (section.config.subtitle) {\r\n <div class=\"filter-subtitle\">\r\n <cura-heading size=\"xsmall\" weight=\"bold\" color=\"neutral-black\" margin-block=\"0\">\r\n {{ section.config.subtitle }}\r\n </cura-heading>\r\n </div>\r\n }\r\n\r\n @if (section.config.description) {\r\n <div class=\"filter-description\">\r\n <cura-paragraph size=\"xsmall\" color=\"neutral-dark\" margin-block=\"0\">\r\n {{ section.config.description }}\r\n </cura-paragraph>\r\n </div>\r\n }\r\n\r\n <div class=\"filter-checkboxes\" [class.scrollable]=\"hasScroll(section)\">\r\n @for (option of section.config.options || []; track option?.value) {\r\n <cura-checkbox\r\n color=\"primary\"\r\n size=\"small\"\r\n icon-color=\"light\"\r\n [attr.name]=\"option?.label\"\r\n [attr.label]=\"option?.label\"\r\n [attr.value]=\"option?.value\"\r\n [attr.checked]=\"option?.checked\"\r\n (onchange)=\"handleCheckboxChange($event, section.config.options)\"\r\n ></cura-checkbox>\r\n }\r\n </div>\r\n }\r\n @case ('radio-group') {\r\n <div class=\"filter-radios\" [class.scrollable]=\"hasScroll(section)\">\r\n @for (option of section.config.options || []; track option?.value) {\r\n <cura-radio\r\n [name]=\"section.config.name || 'radio-group'\"\r\n [label]=\"option.label\"\r\n [value]=\"option.value\"\r\n [checked]=\"getRadioGroupValue(section.config.control) === option.value\"\r\n (onchange)=\"handleRadioChange($event, section.config.control)\"\r\n ></cura-radio>\r\n }\r\n </div>\r\n }\r\n @case ('custom') {\r\n <ng-container *ngTemplateOutlet=\"section.config.template\"></ng-container>\r\n }\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n\r\n <div class=\"filter-actions\" [class.hidden]=\"!isFilterOpen || (forceCollapsed && isMobile())\">\r\n <div class=\"main-actions\">\r\n @if (showClearButton) {\r\n <cura-button-transparent\r\n size=\"small\"\r\n font-color=\"dark\"\r\n color=\"primary\"\r\n text-align=\"center\"\r\n [disabled]=\"disableButtonsWithoutSelection && !hasSelection()\"\r\n (click)=\"reset()\"\r\n >\r\n <span>Limpar todos os filtros</span>\r\n </cura-button-transparent>\r\n }\r\n\r\n @if (showApplyButton) {\r\n <cura-button\r\n size=\"medium\"\r\n font-color=\"light\"\r\n color=\"primary\"\r\n text-align=\"center\"\r\n (click)=\"filter()\"\r\n [disabled]=\"disableButtonsWithoutSelection && !hasSelection()\"\r\n class=\"filter-button\"\r\n >\r\n Filtrar\r\n </cura-button>\r\n }\r\n </div>\r\n\r\n @if (showCloseButton) {\r\n <div class=\"divider-strong\"></div>\r\n <div class=\"close-action-wrapper\">\r\n <div class=\"close-action\" (click)=\"close()\">\r\n <cura-icon name=\"close\" color=\"error-dark\" size=\"small\"></cura-icon>\r\n <cura-button-transparent size=\"\" type=\"button\" color=\"error\" target=\"_self\"> Fechar </cura-button-transparent>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: [":host *{font-family:var(--font-family)}.filter-generic{display:flex;flex-direction:column;gap:18px}.filter-generic.clickable-mobile{cursor:pointer}.filter-generic.clickable-mobile:hover{background-color:var(--primary-lighter)}.filter-generic.container-style{width:100%;padding:20px;border-radius:12px;border:2px solid var(--neutral-lighter);background-color:var(--neutral-purewhite)}.filter-generic cura-loader-circle{display:flex;justify-content:center;align-items:center;width:100%;min-height:100px}.filter-header-container{display:flex;padding-bottom:12px;align-items:center}.filter-header-container.no-padding{padding-bottom:0}.filter-header-container .filter-title-wrapper{display:flex;align-items:center;justify-content:space-between;flex:1 0 0}.filter-header-container .filter-badge{display:flex;height:20px;min-width:20px;justify-content:center;align-items:center;gap:4px}.filter-header-container .filter-icon{display:block}.filter-content,.filter-actions{transition:all .3s ease}.filter-content.hidden,.filter-actions.hidden{display:none;height:0;overflow:hidden;opacity:0;margin:0;padding:0}.filter-section{display:flex;flex-direction:column;gap:24px}.filter-section .filter-header{display:flex;align-items:center;gap:14px}.filter-section .filter-subtitle{font-weight:500}.filter-section .filter-description{display:flex;flex-direction:column;gap:8px}.filter-section .filter-description:after{content:\"\";display:block;width:100%;height:1px;background-color:var(--neutral-light);margin-top:12px;grid-column:1/-1}.filter-section .filter-checkboxes{display:grid;grid-template-columns:repeat(2,1fr);gap:11px 0px}.filter-section .filter-checkboxes.scrollable{max-height:100px;overflow-y:auto;grid-template-columns:1fr;padding-right:8px;gap:12px}.filter-section .filter-checkboxes.scrollable::-webkit-scrollbar{width:8px}.filter-section .filter-checkboxes.scrollable::-webkit-scrollbar-thumb{background:var(--neutral-medium)}.filter-section .filter-checkboxes.scrollable::-webkit-scrollbar-thumb:hover{background:var(--primary-base)}.filter-section .filter-checkboxes.scrollable::-webkit-scrollbar-track{background:var(--neutral-opacity-black)}.filter-section .filter-checkboxes.scrollable:after{display:none}.filter-section .filter-radios{display:flex;flex-direction:column;gap:12px}.filter-section .filter-radios.scrollable{max-height:100px;overflow-y:auto;padding-right:8px;gap:8px}.filter-section .filter-radios.scrollable::-webkit-scrollbar{width:8px}.filter-section .filter-radios.scrollable::-webkit-scrollbar-thumb{background:var(--neutral-medium)}.filter-section .filter-radios.scrollable::-webkit-scrollbar-thumb:hover{background:var(--primary-base)}.filter-section .filter-radios.scrollable::-webkit-scrollbar-track{background:var(--neutral-opacity-black)}.filter-section .filter-radios.scrollable:after{display:none}@media screen and (max-width: 1024px){.filter-checkboxes.scrollable,.filter-radios.scrollable{max-height:100px}.filter-checkboxes:after{display:none;background-color:transparent}}.filter-actions{display:flex;flex-direction:column;gap:0}.filter-actions:before{content:\"\";display:block;width:100%;height:1px;background:linear-gradient(90deg,var(--neutral-light) 75%,transparent 15%);background-size:10px 1px;background-repeat:repeat-x;margin-bottom:20px}.filter-actions .main-actions{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.filter-actions .divider-strong{height:1px;width:100%;margin-top:20px;margin-bottom:16px;background:linear-gradient(90deg,#e2e2e2 70%,transparent 70%);background-size:4px 1px;background-repeat:repeat-x}.filter-actions .close-action-wrapper{display:flex;justify-content:center;width:100%}.filter-actions .close-action{display:inline-flex;align-items:center;gap:8px}.filter-actions .close-action cura-button-transparent{padding:0;margin:0;background:transparent;border:none;color:inherit}.filter-actions cura-button-transparent{display:flex;justify-content:flex-start;text-align:left;flex:0 1 auto}.filter-actions cura-button{display:flex;justify-content:flex-start;text-align:left;flex:1 0 auto}@media screen and (max-width: 1024px){.filter-checkboxes:after{background-color:transparent}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }] }); }
4253
4255
  }
4254
4256
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FilterGenericComponent, decorators: [{
4255
4257
  type: Component,
4256
- args: [{ selector: 'rdsite-filter-generic', standalone: true, imports: [CommonModule, ReactiveFormsModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<div\r\n class=\"filter-generic\"\r\n [ngClass]=\"{ 'container-style': withContainerStyle, 'clickable-mobile': shouldHandleMobileClick() }\"\r\n aria-label=\"Filtros\"\r\n (click)=\"handleMobileClick()\"\r\n>\r\n <div class=\"filter-header-container\" [ngClass]=\"{ 'no-padding': !isFilterOpen, hidden: !isFilterOpen }\">\r\n <div class=\"filter-title-wrapper\">\r\n <cura-label size=\"medium\" level=\"4\" color=\"neutral-black\" weight=\"regular\" margin-block=\"0\" line-height=\"16px\">\r\n {{ textTitle }}\r\n </cura-label>\r\n\r\n @if (showBadge) {\r\n <cura-badge-counter\r\n [type]=\"'solid'\"\r\n [color]=\"hasSelection() ? 'primary' : 'neutral'\"\r\n [number]=\"selectedFiltersCount\"\r\n class=\"filter-badge\"\r\n ></cura-badge-counter>\r\n }\r\n </div>\r\n\r\n @if (showToggleIcon) {\r\n <cura-button-transparent size=\"small\" font-color=\"dark\" color=\"primary\" text-align=\"center\" (click)=\"toggleFilter()\" [attr.aria-expanded]=\"isFilterOpen\">\r\n <cura-icon [name]=\"isFilterOpen ? 'up' : 'down'\" size=\"16\" class=\"filter-icon\" color=\"primary-dark\"></cura-icon>\r\n </cura-button-transparent>\r\n }\r\n </div>\r\n\r\n <div class=\"filter-content\" [class.hidden]=\"!isFilterOpen || (forceCollapsed && isMobile())\">\r\n @for (section of sections; track section.type) {\r\n @if (section.visible !== false) {\r\n <div class=\"filter-section\">\r\n @switch (section.type) {\r\n @case ('input') {\r\n <cura-input-text\r\n [placeholder]=\"section.config.placeholder || ''\"\r\n [name]=\"section.config.name || ''\"\r\n [iconName]=\"section.config.iconName || ''\"\r\n [attr.value]=\"section.config.control.value\"\r\n (valueChange)=\"handleInputChange($event, section.config.control)\"\r\n ></cura-input-text>\r\n }\r\n @case ('select') {\r\n <cura-select\r\n [label]=\"section.config.label || ''\"\r\n [placeholder]=\"section.config.placeholder || ''\"\r\n [attr.value]=\"section.config.control.value\"\r\n (selected)=\"handleSelectChange($event, section.config.control)\"\r\n >\r\n @if (section.config.includeDefaultOption) {\r\n <cura-select-option [attr.value]=\"''\">{{ section.config.defaultOptionText || 'Fa\u00E7a a sua Sele\u00E7\u00E3o' }}</cura-select-option>\r\n }\r\n @for (option of section.config.options || []; track option?.value) {\r\n <cura-select-option [attr.value]=\"option?.value\">{{ option?.label }}</cura-select-option>\r\n }\r\n </cura-select>\r\n }\r\n @case ('checkbox-group') {\r\n @if (section.config.title) {\r\n <div class=\"filter-header\">\r\n <cura-icon name=\"filter\" size=\"20\" color=\"info-dark\"></cura-icon>\r\n <cura-heading size=\"xsmall\" level=\"5\" weight=\"bold\" color=\"neutral-black\" margin-block=\"0\" line-height=\"16px\">\r\n {{ section.config.title }}\r\n </cura-heading>\r\n </div>\r\n }\r\n @if (section.config.subtitle) {\r\n <div class=\"filter-subtitle\">\r\n <cura-heading size=\"xsmall\" weight=\"bold\" color=\"neutral-black\" margin-block=\"0\">\r\n {{ section.config.subtitle }}\r\n </cura-heading>\r\n </div>\r\n }\r\n\r\n @if (section.config.description) {\r\n <div class=\"filter-description\">\r\n <cura-paragraph size=\"xsmall\" color=\"neutral-dark\" margin-block=\"0\">\r\n {{ section.config.description }}\r\n </cura-paragraph>\r\n </div>\r\n }\r\n\r\n <div class=\"filter-checkboxes\" [class.scrollable]=\"hasScroll(section)\">\r\n @for (option of section.config.options || []; track option?.value) {\r\n <cura-checkbox\r\n color=\"primary\"\r\n size=\"small\"\r\n icon-color=\"light\"\r\n [attr.name]=\"option?.label\"\r\n [attr.label]=\"option?.label\"\r\n [attr.value]=\"option?.value\"\r\n [attr.checked]=\"option?.checked\"\r\n (onchange)=\"handleCheckboxChange($event, section.config.options)\"\r\n ></cura-checkbox>\r\n }\r\n </div>\r\n }\r\n @case ('radio-group') {\r\n <div class=\"filter-radios\" [class.scrollable]=\"hasScroll(section)\">\r\n @for (option of section.config.options || []; track option?.value) {\r\n <cura-radio\r\n [name]=\"section.config.name || 'radio-group'\"\r\n [label]=\"option.label\"\r\n [value]=\"option.value\"\r\n [checked]=\"getRadioGroupValue(section.config.control) === option.value\"\r\n (onchange)=\"handleRadioChange($event, section.config.control)\"\r\n ></cura-radio>\r\n }\r\n </div>\r\n }\r\n @case ('custom') {\r\n <ng-container *ngTemplateOutlet=\"section.config.template\"></ng-container>\r\n }\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n\r\n <div class=\"filter-actions\" [class.hidden]=\"!isFilterOpen || (forceCollapsed && isMobile())\">\r\n <div class=\"main-actions\">\r\n @if (showClearButton) {\r\n <cura-button-transparent\r\n size=\"small\"\r\n font-color=\"dark\"\r\n color=\"primary\"\r\n text-align=\"center\"\r\n [disabled]=\"disableButtonsWithoutSelection && !hasSelection()\"\r\n (click)=\"reset()\"\r\n >\r\n <span>Limpar todos os filtros</span>\r\n </cura-button-transparent>\r\n }\r\n\r\n @if (showApplyButton) {\r\n <cura-button\r\n size=\"medium\"\r\n font-color=\"light\"\r\n color=\"primary\"\r\n text-align=\"center\"\r\n (click)=\"filter()\"\r\n [disabled]=\"disableButtonsWithoutSelection && !hasSelection()\"\r\n class=\"filter-button\"\r\n >\r\n Filtrar\r\n </cura-button>\r\n }\r\n </div>\r\n\r\n @if (showCloseButton) {\r\n <div class=\"divider-strong\"></div>\r\n <div class=\"close-action-wrapper\">\r\n <div class=\"close-action\" (click)=\"close()\">\r\n <cura-icon name=\"close\" color=\"error-dark\" size=\"small\"></cura-icon>\r\n <cura-button-transparent size=\"\" type=\"button\" color=\"error\" target=\"_self\"> Fechar </cura-button-transparent>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: [":host *{font-family:Gotham,Roboto,sans-serif}.filter-generic{display:flex;flex-direction:column;gap:18px}.filter-generic.clickable-mobile{cursor:pointer}.filter-generic.clickable-mobile:hover{background-color:var(--primary-lighter)}.filter-generic.container-style{width:100%;padding:20px;border-radius:12px;border:2px solid var(--neutral-lighter);background-color:var(--neutral-purewhite)}.filter-generic cura-loader-circle{display:flex;justify-content:center;align-items:center;width:100%;min-height:100px}.filter-header-container{display:flex;padding-bottom:12px;align-items:center}.filter-header-container.no-padding{padding-bottom:0}.filter-header-container .filter-title-wrapper{display:flex;align-items:center;justify-content:space-between;flex:1 0 0}.filter-header-container .filter-badge{display:flex;height:20px;min-width:20px;justify-content:center;align-items:center;gap:4px}.filter-header-container .filter-icon{display:block}.filter-content,.filter-actions{transition:all .3s ease}.filter-content.hidden,.filter-actions.hidden{display:none;height:0;overflow:hidden;opacity:0;margin:0;padding:0}.filter-section{display:flex;flex-direction:column;gap:24px}.filter-section .filter-header{display:flex;align-items:center;gap:14px}.filter-section .filter-subtitle{font-weight:500}.filter-section .filter-description{display:flex;flex-direction:column;gap:8px}.filter-section .filter-description:after{content:\"\";display:block;width:100%;height:1px;background-color:var(--neutral-light);margin-top:12px;grid-column:1/-1}.filter-section .filter-checkboxes{display:grid;grid-template-columns:repeat(2,1fr);gap:11px 0px}.filter-section .filter-checkboxes.scrollable{max-height:100px;overflow-y:auto;grid-template-columns:1fr;padding-right:8px;gap:12px}.filter-section .filter-checkboxes.scrollable::-webkit-scrollbar{width:8px}.filter-section .filter-checkboxes.scrollable::-webkit-scrollbar-thumb{background:var(--neutral-medium)}.filter-section .filter-checkboxes.scrollable::-webkit-scrollbar-thumb:hover{background:var(--primary-base)}.filter-section .filter-checkboxes.scrollable::-webkit-scrollbar-track{background:var(--neutral-opacity-black)}.filter-section .filter-checkboxes.scrollable:after{display:none}.filter-section .filter-radios{display:flex;flex-direction:column;gap:12px}.filter-section .filter-radios.scrollable{max-height:100px;overflow-y:auto;padding-right:8px;gap:8px}.filter-section .filter-radios.scrollable::-webkit-scrollbar{width:8px}.filter-section .filter-radios.scrollable::-webkit-scrollbar-thumb{background:var(--neutral-medium)}.filter-section .filter-radios.scrollable::-webkit-scrollbar-thumb:hover{background:var(--primary-base)}.filter-section .filter-radios.scrollable::-webkit-scrollbar-track{background:var(--neutral-opacity-black)}.filter-section .filter-radios.scrollable:after{display:none}@media screen and (max-width: 1024px){.filter-checkboxes.scrollable,.filter-radios.scrollable{max-height:100px}.filter-checkboxes:after{display:none;background-color:transparent}}.filter-actions{display:flex;flex-direction:column;gap:0}.filter-actions:before{content:\"\";display:block;width:100%;height:1px;background:linear-gradient(90deg,var(--neutral-light) 75%,transparent 15%);background-size:10px 1px;background-repeat:repeat-x;margin-bottom:20px}.filter-actions .main-actions{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.filter-actions .divider-strong{height:1px;width:100%;margin-top:20px;margin-bottom:16px;background:linear-gradient(90deg,#e2e2e2 70%,transparent 70%);background-size:4px 1px;background-repeat:repeat-x}.filter-actions .close-action-wrapper{display:flex;justify-content:center;width:100%}.filter-actions .close-action{display:inline-flex;align-items:center;gap:8px}.filter-actions .close-action cura-button-transparent{padding:0;margin:0;background:transparent;border:none;color:inherit}.filter-actions cura-button-transparent{display:flex;justify-content:flex-start;text-align:left;flex:0 1 auto}.filter-actions cura-button{display:flex;justify-content:flex-start;text-align:left;flex:1 0 auto}@media screen and (max-width: 1024px){.filter-checkboxes:after{background-color:transparent}}\n"] }]
4258
+ args: [{ selector: 'rdsite-filter-generic', standalone: true, imports: [CommonModule, ReactiveFormsModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<div\r\n class=\"filter-generic\"\r\n [ngClass]=\"{ 'container-style': withContainerStyle, 'clickable-mobile': shouldHandleMobileClick() }\"\r\n aria-label=\"Filtros\"\r\n (click)=\"handleMobileClick()\"\r\n>\r\n <div class=\"filter-header-container\" [ngClass]=\"{ 'no-padding': !isFilterOpen, hidden: !isFilterOpen }\">\r\n <div class=\"filter-title-wrapper\">\r\n <cura-label size=\"medium\" level=\"4\" color=\"neutral-black\" weight=\"regular\" margin-block=\"0\" line-height=\"16px\">\r\n {{ textTitle }}\r\n </cura-label>\r\n\r\n @if (showBadge) {\r\n <cura-badge-counter\r\n [type]=\"'solid'\"\r\n [color]=\"hasSelection() ? 'primary' : 'neutral'\"\r\n [number]=\"selectedFiltersCount\"\r\n class=\"filter-badge\"\r\n ></cura-badge-counter>\r\n }\r\n </div>\r\n\r\n @if (showToggleIcon) {\r\n <cura-button-transparent size=\"small\" font-color=\"dark\" color=\"primary\" text-align=\"center\" (click)=\"toggleFilter()\" [attr.aria-expanded]=\"isFilterOpen\">\r\n <cura-icon [name]=\"isFilterOpen ? 'up' : 'down'\" size=\"16\" class=\"filter-icon\" color=\"primary-dark\"></cura-icon>\r\n </cura-button-transparent>\r\n }\r\n </div>\r\n\r\n <div class=\"filter-content\" [class.hidden]=\"!isFilterOpen || (forceCollapsed && isMobile())\">\r\n @for (section of sections; track section.type) {\r\n @if (section.visible !== false) {\r\n <div class=\"filter-section\">\r\n @switch (section.type) {\r\n @case ('input') {\r\n <cura-input-text\r\n [placeholder]=\"section.config.placeholder || ''\"\r\n [name]=\"section.config.name || ''\"\r\n [iconName]=\"section.config.iconName || ''\"\r\n [attr.value]=\"section.config.control.value\"\r\n (valueChange)=\"handleInputChange($event, section.config.control)\"\r\n ></cura-input-text>\r\n }\r\n @case ('select') {\r\n <cura-select\r\n [label]=\"section.config.label || ''\"\r\n [placeholder]=\"section.config.placeholder || ''\"\r\n [attr.value]=\"section.config.control.value\"\r\n (selected)=\"handleSelectChange($event, section.config.control)\"\r\n >\r\n @if (section.config.includeDefaultOption) {\r\n <cura-select-option [attr.value]=\"''\">{{ section.config.defaultOptionText || 'Fa\u00E7a a sua Sele\u00E7\u00E3o' }}</cura-select-option>\r\n }\r\n @for (option of section.config.options || []; track option?.value) {\r\n <cura-select-option [attr.value]=\"option?.value\">{{ option?.label }}</cura-select-option>\r\n }\r\n </cura-select>\r\n }\r\n @case ('checkbox-group') {\r\n @if (section.config.title) {\r\n <div class=\"filter-header\">\r\n <cura-icon name=\"filter\" size=\"20\" color=\"info-dark\"></cura-icon>\r\n <cura-heading size=\"xsmall\" level=\"5\" weight=\"bold\" color=\"neutral-black\" margin-block=\"0\" line-height=\"16px\">\r\n {{ section.config.title }}\r\n </cura-heading>\r\n </div>\r\n }\r\n @if (section.config.subtitle) {\r\n <div class=\"filter-subtitle\">\r\n <cura-heading size=\"xsmall\" weight=\"bold\" color=\"neutral-black\" margin-block=\"0\">\r\n {{ section.config.subtitle }}\r\n </cura-heading>\r\n </div>\r\n }\r\n\r\n @if (section.config.description) {\r\n <div class=\"filter-description\">\r\n <cura-paragraph size=\"xsmall\" color=\"neutral-dark\" margin-block=\"0\">\r\n {{ section.config.description }}\r\n </cura-paragraph>\r\n </div>\r\n }\r\n\r\n <div class=\"filter-checkboxes\" [class.scrollable]=\"hasScroll(section)\">\r\n @for (option of section.config.options || []; track option?.value) {\r\n <cura-checkbox\r\n color=\"primary\"\r\n size=\"small\"\r\n icon-color=\"light\"\r\n [attr.name]=\"option?.label\"\r\n [attr.label]=\"option?.label\"\r\n [attr.value]=\"option?.value\"\r\n [attr.checked]=\"option?.checked\"\r\n (onchange)=\"handleCheckboxChange($event, section.config.options)\"\r\n ></cura-checkbox>\r\n }\r\n </div>\r\n }\r\n @case ('radio-group') {\r\n <div class=\"filter-radios\" [class.scrollable]=\"hasScroll(section)\">\r\n @for (option of section.config.options || []; track option?.value) {\r\n <cura-radio\r\n [name]=\"section.config.name || 'radio-group'\"\r\n [label]=\"option.label\"\r\n [value]=\"option.value\"\r\n [checked]=\"getRadioGroupValue(section.config.control) === option.value\"\r\n (onchange)=\"handleRadioChange($event, section.config.control)\"\r\n ></cura-radio>\r\n }\r\n </div>\r\n }\r\n @case ('custom') {\r\n <ng-container *ngTemplateOutlet=\"section.config.template\"></ng-container>\r\n }\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n\r\n <div class=\"filter-actions\" [class.hidden]=\"!isFilterOpen || (forceCollapsed && isMobile())\">\r\n <div class=\"main-actions\">\r\n @if (showClearButton) {\r\n <cura-button-transparent\r\n size=\"small\"\r\n font-color=\"dark\"\r\n color=\"primary\"\r\n text-align=\"center\"\r\n [disabled]=\"disableButtonsWithoutSelection && !hasSelection()\"\r\n (click)=\"reset()\"\r\n >\r\n <span>Limpar todos os filtros</span>\r\n </cura-button-transparent>\r\n }\r\n\r\n @if (showApplyButton) {\r\n <cura-button\r\n size=\"medium\"\r\n font-color=\"light\"\r\n color=\"primary\"\r\n text-align=\"center\"\r\n (click)=\"filter()\"\r\n [disabled]=\"disableButtonsWithoutSelection && !hasSelection()\"\r\n class=\"filter-button\"\r\n >\r\n Filtrar\r\n </cura-button>\r\n }\r\n </div>\r\n\r\n @if (showCloseButton) {\r\n <div class=\"divider-strong\"></div>\r\n <div class=\"close-action-wrapper\">\r\n <div class=\"close-action\" (click)=\"close()\">\r\n <cura-icon name=\"close\" color=\"error-dark\" size=\"small\"></cura-icon>\r\n <cura-button-transparent size=\"\" type=\"button\" color=\"error\" target=\"_self\"> Fechar </cura-button-transparent>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: [":host *{font-family:var(--font-family)}.filter-generic{display:flex;flex-direction:column;gap:18px}.filter-generic.clickable-mobile{cursor:pointer}.filter-generic.clickable-mobile:hover{background-color:var(--primary-lighter)}.filter-generic.container-style{width:100%;padding:20px;border-radius:12px;border:2px solid var(--neutral-lighter);background-color:var(--neutral-purewhite)}.filter-generic cura-loader-circle{display:flex;justify-content:center;align-items:center;width:100%;min-height:100px}.filter-header-container{display:flex;padding-bottom:12px;align-items:center}.filter-header-container.no-padding{padding-bottom:0}.filter-header-container .filter-title-wrapper{display:flex;align-items:center;justify-content:space-between;flex:1 0 0}.filter-header-container .filter-badge{display:flex;height:20px;min-width:20px;justify-content:center;align-items:center;gap:4px}.filter-header-container .filter-icon{display:block}.filter-content,.filter-actions{transition:all .3s ease}.filter-content.hidden,.filter-actions.hidden{display:none;height:0;overflow:hidden;opacity:0;margin:0;padding:0}.filter-section{display:flex;flex-direction:column;gap:24px}.filter-section .filter-header{display:flex;align-items:center;gap:14px}.filter-section .filter-subtitle{font-weight:500}.filter-section .filter-description{display:flex;flex-direction:column;gap:8px}.filter-section .filter-description:after{content:\"\";display:block;width:100%;height:1px;background-color:var(--neutral-light);margin-top:12px;grid-column:1/-1}.filter-section .filter-checkboxes{display:grid;grid-template-columns:repeat(2,1fr);gap:11px 0px}.filter-section .filter-checkboxes.scrollable{max-height:100px;overflow-y:auto;grid-template-columns:1fr;padding-right:8px;gap:12px}.filter-section .filter-checkboxes.scrollable::-webkit-scrollbar{width:8px}.filter-section .filter-checkboxes.scrollable::-webkit-scrollbar-thumb{background:var(--neutral-medium)}.filter-section .filter-checkboxes.scrollable::-webkit-scrollbar-thumb:hover{background:var(--primary-base)}.filter-section .filter-checkboxes.scrollable::-webkit-scrollbar-track{background:var(--neutral-opacity-black)}.filter-section .filter-checkboxes.scrollable:after{display:none}.filter-section .filter-radios{display:flex;flex-direction:column;gap:12px}.filter-section .filter-radios.scrollable{max-height:100px;overflow-y:auto;padding-right:8px;gap:8px}.filter-section .filter-radios.scrollable::-webkit-scrollbar{width:8px}.filter-section .filter-radios.scrollable::-webkit-scrollbar-thumb{background:var(--neutral-medium)}.filter-section .filter-radios.scrollable::-webkit-scrollbar-thumb:hover{background:var(--primary-base)}.filter-section .filter-radios.scrollable::-webkit-scrollbar-track{background:var(--neutral-opacity-black)}.filter-section .filter-radios.scrollable:after{display:none}@media screen and (max-width: 1024px){.filter-checkboxes.scrollable,.filter-radios.scrollable{max-height:100px}.filter-checkboxes:after{display:none;background-color:transparent}}.filter-actions{display:flex;flex-direction:column;gap:0}.filter-actions:before{content:\"\";display:block;width:100%;height:1px;background:linear-gradient(90deg,var(--neutral-light) 75%,transparent 15%);background-size:10px 1px;background-repeat:repeat-x;margin-bottom:20px}.filter-actions .main-actions{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.filter-actions .divider-strong{height:1px;width:100%;margin-top:20px;margin-bottom:16px;background:linear-gradient(90deg,#e2e2e2 70%,transparent 70%);background-size:4px 1px;background-repeat:repeat-x}.filter-actions .close-action-wrapper{display:flex;justify-content:center;width:100%}.filter-actions .close-action{display:inline-flex;align-items:center;gap:8px}.filter-actions .close-action cura-button-transparent{padding:0;margin:0;background:transparent;border:none;color:inherit}.filter-actions cura-button-transparent{display:flex;justify-content:flex-start;text-align:left;flex:0 1 auto}.filter-actions cura-button{display:flex;justify-content:flex-start;text-align:left;flex:1 0 auto}@media screen and (max-width: 1024px){.filter-checkboxes:after{background-color:transparent}}\n"] }]
4257
4259
  }], ctorParameters: () => [{ type: CuraService }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
4258
4260
  type: Inject,
4259
4261
  args: [PLATFORM_ID]