ng-easycommerce-v18 0.3.22 → 0.3.23-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +111 -105
- package/assets/decidirFormEc.html +514 -514
- package/assets/ec-i18n/ct.json +282 -282
- package/assets/ec-i18n/en.json +1 -0
- package/assets/ec-i18n/es.json +434 -433
- package/assets/ec-i18n/fr.json +0 -0
- package/assets/ec-i18n/gl.json +282 -282
- package/assets/ec-i18n/pr.json +282 -282
- package/assets/images/cards-occasional.svg +21 -21
- package/assets/recaptcha/recaptcha-site-keys.json +3 -3
- package/assets/recaptcha/recaptcha-sites-prod.json +38 -38
- package/assets/recaptcha/recaptcha-sites.json +52 -52
- package/esm2022/lib/api/connection.service.mjs +1 -1
- package/esm2022/lib/classes/checkout/steps.mjs +1 -1
- package/esm2022/lib/classes/component-helper.mjs +1 -1
- package/esm2022/lib/classes/filters/attributes-filter.mjs +1 -1
- package/esm2022/lib/classes/filters/category-filter.mjs +1 -1
- package/esm2022/lib/classes/filters/dynamics-filter.mjs +1 -1
- package/esm2022/lib/classes/filters/filter-factory.mjs +1 -1
- package/esm2022/lib/classes/filters/filter.mjs +1 -1
- package/esm2022/lib/classes/filters/index.mjs +1 -1
- package/esm2022/lib/classes/filters/price_range-filter.mjs +1 -1
- package/esm2022/lib/classes/filters/sort-filter.mjs +1 -1
- package/esm2022/lib/classes/index.mjs +1 -1
- package/esm2022/lib/classes/user.mjs +1 -1
- package/esm2022/lib/constants/api.constants.service.mjs +1 -1
- package/esm2022/lib/constants/core.constants.service.mjs +1 -1
- package/esm2022/lib/constants/index.mjs +1 -1
- package/esm2022/lib/ec-components/abstractions-components/block-ec.component.mjs +1 -1
- package/esm2022/lib/ec-components/abstractions-components/index.mjs +1 -1
- package/esm2022/lib/ec-components/abstractions-components/menu-ec.component.mjs +1 -1
- package/esm2022/lib/ec-components/account-ec/account-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/account-ec/index.mjs +1 -1
- package/esm2022/lib/ec-components/account-ec/order-ec/order-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/account-ec/orders-list-ec/orders-list-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/auth-ec/auth-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/auth-ec/confirm-account-ec/confirm-account-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/auth-ec/forgot-password-ec/forgot-password-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/auth-ec/index.mjs +1 -1
- package/esm2022/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/auth-ec/password-reset-ec/password-reset-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/auth-ec/register-form-ec/register-form-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/blocks-ec/block-banner-box-ec/block-banner-box-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/blocks-ec/block-banner-full-ec/block-banner-full-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/blocks-ec/block-form-contact-ec/block-form-contact-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/blocks-ec/block-html-ec/block-html-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/blocks-ec/block-newsletter-ec/block-newsletter-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/blocks-ec/block-products-ec/block-products-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/blocks-ec/blocks-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/blocks-ec/index.mjs +1 -1
- package/esm2022/lib/ec-components/breadcrumb-ec/breadcrumb-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/cart-ec/cart-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/cart-ec/cart-item-ec/cart-item-ec.component.mjs +39 -11
- package/esm2022/lib/ec-components/cart-ec/index.mjs +1 -1
- package/esm2022/lib/ec-components/checkout-ec/checkout-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/checkout-ec/dataform-ec/dataform-ec.component.mjs +11 -4
- package/esm2022/lib/ec-components/checkout-ec/dataform-ec/input-ec/input-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/bank-transfer-ec/bank-transfer-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/index.mjs +1 -1
- package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/offline-ec/offline-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/checkout-ec/shipment-ec/shipment-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/checkout-ec/step-container-ec/step-container-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/checkout-ec/success-ec/success-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/collection-ec/collection-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/contact-ec/contact-ec.component.mjs +1 -1
- package/esm2022/lib/ec-components/coupon-ec/coupon-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/faqs-ec/faqs-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/filters-ec/filters-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/filters-sort-ec/filters-sort-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/footer-ec/footer-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/header-ec/header-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/home-ec/home-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/index.mjs +1 -1
- package/esm2022/lib/ec-components/price-range-filter/price-range-filter.component.mjs +3 -3
- package/esm2022/lib/ec-components/product-detail-ec/product-detail-ec.component.mjs +1 -1
- package/esm2022/lib/ec-components/product-ec/product-ec.component.mjs +56 -8
- package/esm2022/lib/ec-components/related-products-ec/related-products-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/reviews-ec/reviews-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/reviews-form-ec/reviews-form-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/section-container-ec/section-container-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/share-ec/share-buttons-ec/index.mjs +1 -1
- package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-email-ec/share-email-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-facebook-ec/share-facebook-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-pinterest-ec/share-pinterest-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-twitter-ec/share-twitter-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-whatsapp-ec/share-whatsapp-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/share-ec/share-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/sidebar-ec/sidebar-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/stores-ec/stores-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/variants-ec/variants-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/widgets-ec/decidir-ec/decidir-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/widgets-ec/index.mjs +1 -1
- package/esm2022/lib/ec-components/widgets-ec/loading/index.mjs +1 -1
- package/esm2022/lib/ec-components/widgets-ec/loading/loading-full-ec/loading-full-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/widgets-ec/loading/loading-inline-ec/loading-inline-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/widgets-ec/loading/loading-section-ec/loading-section-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/widgets-ec/magnizoom-ec/magnizoom-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/widgets-ec/price-ec/price-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/widgets-ec/rating-ec/rating-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/widgets-ec/re-captcha-ec/re-captcha-ec.component.mjs +3 -3
- package/esm2022/lib/ec-components/widgets-ec/redsys-catch-ec/redsys-catch-ec.component.mjs +3 -3
- package/esm2022/lib/ec-directive/index.mjs +1 -1
- package/esm2022/lib/ec-directive/product-off.directive.mjs +1 -1
- package/esm2022/lib/ec-directive/product-stock.directive.mjs +1 -1
- package/esm2022/lib/ec-guards/auth.guard.mjs +1 -1
- package/esm2022/lib/ec-pipe/ec-currency-symbol.pipe.mjs +1 -1
- package/esm2022/lib/ec-pipe/ec-safe-html.pipe.mjs +1 -1
- package/esm2022/lib/ec-pipe/index.mjs +1 -1
- package/esm2022/lib/ec-services/addressing.service.mjs +1 -1
- package/esm2022/lib/ec-services/analytics/analytics.service.mjs +1 -1
- package/esm2022/lib/ec-services/analytics/doppler.service.mjs +1 -1
- package/esm2022/lib/ec-services/analytics/facebook-pixel.service.mjs +1 -1
- package/esm2022/lib/ec-services/analytics/google-analytics.service.mjs +1 -1
- package/esm2022/lib/ec-services/analytics/gtm.service.mjs +1 -1
- package/esm2022/lib/ec-services/analytics/index.mjs +1 -1
- package/esm2022/lib/ec-services/analytics/metricool-pixel.service.mjs +11 -11
- package/esm2022/lib/ec-services/auth.service.mjs +1 -1
- package/esm2022/lib/ec-services/auth.storage.service.mjs +1 -1
- package/esm2022/lib/ec-services/blocks-repository.service.mjs +1 -1
- package/esm2022/lib/ec-services/blocks.service.mjs +1 -1
- package/esm2022/lib/ec-services/cart.service.mjs +22 -4
- package/esm2022/lib/ec-services/channel.service.mjs +1 -1
- package/esm2022/lib/ec-services/checkout.service.mjs +1 -1
- package/esm2022/lib/ec-services/currency.service.mjs +1 -1
- package/esm2022/lib/ec-services/filters.service.mjs +1 -1
- package/esm2022/lib/ec-services/form.service.mjs +1 -1
- package/esm2022/lib/ec-services/index.mjs +1 -1
- package/esm2022/lib/ec-services/local-storage.service.mjs +1 -1
- package/esm2022/lib/ec-services/ngx-local-storage.service.mjs +1 -1
- package/esm2022/lib/ec-services/options.service.mjs +1 -1
- package/esm2022/lib/ec-services/order-utility.service.mjs +1 -1
- package/esm2022/lib/ec-services/orders.service.mjs +1 -1
- package/esm2022/lib/ec-services/pagination.service.mjs +1 -1
- package/esm2022/lib/ec-services/parameters.service.mjs +1 -1
- package/esm2022/lib/ec-services/payment.service.mjs +1 -1
- package/esm2022/lib/ec-services/product-detail.service.mjs +11 -1
- package/esm2022/lib/ec-services/products.service.mjs +1 -1
- package/esm2022/lib/ec-services/re-captcha.service.mjs +1 -1
- package/esm2022/lib/ec-services/reviews.service.mjs +1 -1
- package/esm2022/lib/ec-services/shipment.service.mjs +1 -1
- package/esm2022/lib/ec-services/stores.service.mjs +1 -1
- package/esm2022/lib/ec-services/test.service.mjs +1 -1
- package/esm2022/lib/ec-services/toast.service.mjs +1 -1
- package/esm2022/lib/interceptors/auth.interceptor.mjs +1 -1
- package/esm2022/lib/interfaces/analytics/event-key.mjs +1 -1
- package/esm2022/lib/interfaces/analytics/facebook-pixel-data.mjs +1 -1
- package/esm2022/lib/interfaces/analytics/gtm-config.mjs +1 -1
- package/esm2022/lib/interfaces/analytics/index.mjs +1 -1
- package/esm2022/lib/interfaces/blocks.mjs +1 -1
- package/esm2022/lib/interfaces/checkout.mjs +1 -1
- package/esm2022/lib/interfaces/connection.mjs +1 -1
- package/esm2022/lib/interfaces/coupon.mjs +1 -1
- package/esm2022/lib/interfaces/currency.mjs +1 -1
- package/esm2022/lib/interfaces/deserializable.mjs +1 -1
- package/esm2022/lib/interfaces/environment.mjs +1 -1
- package/esm2022/lib/interfaces/faqs.mjs +1 -1
- package/esm2022/lib/interfaces/filter.mjs +1 -1
- package/esm2022/lib/interfaces/index.mjs +1 -1
- package/esm2022/lib/interfaces/options.mjs +1 -1
- package/esm2022/lib/interfaces/pagination.mjs +1 -1
- package/esm2022/lib/interfaces/parameter.mjs +1 -1
- package/esm2022/lib/interfaces/product.mjs +1 -1
- package/esm2022/lib/interfaces/step.mjs +1 -1
- package/esm2022/lib/interfaces/storage.mjs +1 -1
- package/esm2022/lib/interfaces/store.mjs +1 -1
- package/esm2022/lib/interfaces/types/user.type.mjs +1 -1
- package/esm2022/lib/providers/provideEnvironment.mjs +1 -1
- package/esm2022/lib/stores/currency.store.mjs +1 -1
- package/esm2022/public-api.mjs +1 -1
- package/fesm2022/ng-easycommerce-v18.mjs +262 -151
- package/fesm2022/ng-easycommerce-v18.mjs.map +1 -1
- package/lib/ec-components/cart-ec/cart-item-ec/cart-item-ec.component.d.ts +1 -1
- package/lib/ec-components/product-ec/product-ec.component.d.ts +4 -0
- package/lib/ec-services/cart.service.d.ts +1 -1
- package/lib/interfaces/product.d.ts +6 -0
- package/package.json +1 -1
|
@@ -26,10 +26,10 @@ export class FaqsEcComponent {
|
|
|
26
26
|
}).catch(err => this._toastService.show('empty-faqs'));
|
|
27
27
|
}
|
|
28
28
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FaqsEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
29
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FaqsEcComponent, isStandalone: true, selector: "app-faqs-ec", ngImport: i0, template: "<section class=\"formulario container py-2\">\n@if(faqs$ | async; as faqs){\n @if(!empty_faqs){\n <div class=\"d-flex align-items-start row\">\n <div class=\"nav flex-column nav-pills me-3 col-2\" id=\"v-pills-tab\" role=\"tablist\" aria-orientation=\"vertical\">\n @for(faq of faqs; track $index; let i = $index){\n <button [class]=\"'nav-link '+(i==0 ? 'active': '')\" [id]=\"'v-pills-'+faq.code+'-tab'\" data-bs-toggle=\"pill\" [attr.data-bs-target]=\"'#v-pills-'+faq.code\" type=\"button\" role=\"tab\" [attr.aria-controls]=\"'v-pills-'+faq.code\" [attr.aria-selected]=\"(i==0)\">{{faq.title}}</button>\n }\n </div>\n <div class=\"tab-content col-9\" id=\"v-pills-tabContent\">\n @for(faq of faqs; track $index; let i = $index){\n <div [class]=\"'tab-pane fade '+(i==0 ? 'show active' : '')\" [id]=\"'v-pills-'+faq.code\" role=\"tabpanel\" [attr.aria-labelledby]=\"'v-pills-'+faq.code+'-tab'\" tabindex=\"0\">\n <div class=\"accordion\" id=\"accordionFaqs\">\n @for(item of faq.questions; track $index; let i = $index){\n <div class=\"accordion-item\">\n <h2 class=\"accordion-header\">\n <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\n [attr.data-bs-target]=\"'#collapse-'+i\" aria-expanded=\"false\" [attr.aria-controls]=\"'collapse-'+i\">\n {{item.question}}\n </button>\n </h2>\n <div [id]=\"'collapse-'+i\" class=\"accordion-collapse collapse\" data-bs-parent=\"#accordionFaqs\">\n <div class=\"accordion-body\">\n <p>{{item.answer}}</p>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n </div>\n </div>\n }@else {\n <div class=\"d-flex justify-content-center\">\n {{ 'empty_faqs' | translate }}\n </div>\n }\n}@else {\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col-12 align-items-center\">\n <div class=\"d-flex flex-column jusitfy-content-center align-items-center my-5\">\n <app-loading-full-ec></app-loading-full-ec>\n </div>\n </div>\n </div>\n </div>\n}\n</section>", styles: [""], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: LoadingFullEcComponent, selector: "app-loading-full-ec" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
|
|
29
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FaqsEcComponent, isStandalone: true, selector: "app-faqs-ec", ngImport: i0, template: "<section class=\"formulario container py-2\">\r\n@if(faqs$ | async; as faqs){\r\n @if(!empty_faqs){\r\n <div class=\"d-flex align-items-start row\">\r\n <div class=\"nav flex-column nav-pills me-3 col-2\" id=\"v-pills-tab\" role=\"tablist\" aria-orientation=\"vertical\">\r\n @for(faq of faqs; track $index; let i = $index){\r\n <button [class]=\"'nav-link '+(i==0 ? 'active': '')\" [id]=\"'v-pills-'+faq.code+'-tab'\" data-bs-toggle=\"pill\" [attr.data-bs-target]=\"'#v-pills-'+faq.code\" type=\"button\" role=\"tab\" [attr.aria-controls]=\"'v-pills-'+faq.code\" [attr.aria-selected]=\"(i==0)\">{{faq.title}}</button>\r\n }\r\n </div>\r\n <div class=\"tab-content col-9\" id=\"v-pills-tabContent\">\r\n @for(faq of faqs; track $index; let i = $index){\r\n <div [class]=\"'tab-pane fade '+(i==0 ? 'show active' : '')\" [id]=\"'v-pills-'+faq.code\" role=\"tabpanel\" [attr.aria-labelledby]=\"'v-pills-'+faq.code+'-tab'\" tabindex=\"0\">\r\n <div class=\"accordion\" id=\"accordionFaqs\">\r\n @for(item of faq.questions; track $index; let i = $index){\r\n <div class=\"accordion-item\">\r\n <h2 class=\"accordion-header\">\r\n <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\r\n [attr.data-bs-target]=\"'#collapse-'+i\" aria-expanded=\"false\" [attr.aria-controls]=\"'collapse-'+i\">\r\n {{item.question}}\r\n </button>\r\n </h2>\r\n <div [id]=\"'collapse-'+i\" class=\"accordion-collapse collapse\" data-bs-parent=\"#accordionFaqs\">\r\n <div class=\"accordion-body\">\r\n <p>{{item.answer}}</p>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }@else {\r\n <div class=\"d-flex justify-content-center\">\r\n {{ 'empty_faqs' | translate }}\r\n </div>\r\n }\r\n}@else {\r\n <div class=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col-12 align-items-center\">\r\n <div class=\"d-flex flex-column jusitfy-content-center align-items-center my-5\">\r\n <app-loading-full-ec></app-loading-full-ec>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n</section>", styles: [""], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: LoadingFullEcComponent, selector: "app-loading-full-ec" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
|
|
30
30
|
}
|
|
31
31
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FaqsEcComponent, decorators: [{
|
|
32
32
|
type: Component,
|
|
33
|
-
args: [{ selector: 'app-faqs-ec', standalone: true, imports: [AsyncPipe, LoadingFullEcComponent, TranslateModule], template: "<section class=\"formulario container py-2\">\n@if(faqs$ | async; as faqs){\n @if(!empty_faqs){\n <div class=\"d-flex align-items-start row\">\n <div class=\"nav flex-column nav-pills me-3 col-2\" id=\"v-pills-tab\" role=\"tablist\" aria-orientation=\"vertical\">\n @for(faq of faqs; track $index; let i = $index){\n <button [class]=\"'nav-link '+(i==0 ? 'active': '')\" [id]=\"'v-pills-'+faq.code+'-tab'\" data-bs-toggle=\"pill\" [attr.data-bs-target]=\"'#v-pills-'+faq.code\" type=\"button\" role=\"tab\" [attr.aria-controls]=\"'v-pills-'+faq.code\" [attr.aria-selected]=\"(i==0)\">{{faq.title}}</button>\n }\n </div>\n <div class=\"tab-content col-9\" id=\"v-pills-tabContent\">\n @for(faq of faqs; track $index; let i = $index){\n <div [class]=\"'tab-pane fade '+(i==0 ? 'show active' : '')\" [id]=\"'v-pills-'+faq.code\" role=\"tabpanel\" [attr.aria-labelledby]=\"'v-pills-'+faq.code+'-tab'\" tabindex=\"0\">\n <div class=\"accordion\" id=\"accordionFaqs\">\n @for(item of faq.questions; track $index; let i = $index){\n <div class=\"accordion-item\">\n <h2 class=\"accordion-header\">\n <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\n [attr.data-bs-target]=\"'#collapse-'+i\" aria-expanded=\"false\" [attr.aria-controls]=\"'collapse-'+i\">\n {{item.question}}\n </button>\n </h2>\n <div [id]=\"'collapse-'+i\" class=\"accordion-collapse collapse\" data-bs-parent=\"#accordionFaqs\">\n <div class=\"accordion-body\">\n <p>{{item.answer}}</p>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n </div>\n </div>\n }@else {\n <div class=\"d-flex justify-content-center\">\n {{ 'empty_faqs' | translate }}\n </div>\n }\n}@else {\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col-12 align-items-center\">\n <div class=\"d-flex flex-column jusitfy-content-center align-items-center my-5\">\n <app-loading-full-ec></app-loading-full-ec>\n </div>\n </div>\n </div>\n </div>\n}\n</section>" }]
|
|
33
|
+
args: [{ selector: 'app-faqs-ec', standalone: true, imports: [AsyncPipe, LoadingFullEcComponent, TranslateModule], template: "<section class=\"formulario container py-2\">\r\n@if(faqs$ | async; as faqs){\r\n @if(!empty_faqs){\r\n <div class=\"d-flex align-items-start row\">\r\n <div class=\"nav flex-column nav-pills me-3 col-2\" id=\"v-pills-tab\" role=\"tablist\" aria-orientation=\"vertical\">\r\n @for(faq of faqs; track $index; let i = $index){\r\n <button [class]=\"'nav-link '+(i==0 ? 'active': '')\" [id]=\"'v-pills-'+faq.code+'-tab'\" data-bs-toggle=\"pill\" [attr.data-bs-target]=\"'#v-pills-'+faq.code\" type=\"button\" role=\"tab\" [attr.aria-controls]=\"'v-pills-'+faq.code\" [attr.aria-selected]=\"(i==0)\">{{faq.title}}</button>\r\n }\r\n </div>\r\n <div class=\"tab-content col-9\" id=\"v-pills-tabContent\">\r\n @for(faq of faqs; track $index; let i = $index){\r\n <div [class]=\"'tab-pane fade '+(i==0 ? 'show active' : '')\" [id]=\"'v-pills-'+faq.code\" role=\"tabpanel\" [attr.aria-labelledby]=\"'v-pills-'+faq.code+'-tab'\" tabindex=\"0\">\r\n <div class=\"accordion\" id=\"accordionFaqs\">\r\n @for(item of faq.questions; track $index; let i = $index){\r\n <div class=\"accordion-item\">\r\n <h2 class=\"accordion-header\">\r\n <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\r\n [attr.data-bs-target]=\"'#collapse-'+i\" aria-expanded=\"false\" [attr.aria-controls]=\"'collapse-'+i\">\r\n {{item.question}}\r\n </button>\r\n </h2>\r\n <div [id]=\"'collapse-'+i\" class=\"accordion-collapse collapse\" data-bs-parent=\"#accordionFaqs\">\r\n <div class=\"accordion-body\">\r\n <p>{{item.answer}}</p>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }@else {\r\n <div class=\"d-flex justify-content-center\">\r\n {{ 'empty_faqs' | translate }}\r\n </div>\r\n }\r\n}@else {\r\n <div class=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col-12 align-items-center\">\r\n <div class=\"d-flex flex-column jusitfy-content-center align-items-center my-5\">\r\n <app-loading-full-ec></app-loading-full-ec>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n</section>" }]
|
|
34
34
|
}] });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFxcy1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9mYXFzLWVjL2ZhcXMtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvZmFxcy1lYy9mYXFzLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQVN0RCxNQUFNLE9BQU8sZUFBZTtJQUNuQixhQUFhLEdBQWlCLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNuRCxlQUFlLEdBQW1CLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUV6RCxZQUFZLEdBQUcsSUFBSSxlQUFlLENBQVEsRUFBRSxDQUFDLENBQUE7SUFDOUMsS0FBSyxHQUFzQixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBRTVELFVBQVUsR0FBWSxLQUFLLENBQUM7SUFDbkMsUUFBUTtRQUNQLGNBQWMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNqRCxJQUFJLENBQUMsRUFBRTtZQUNOLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUIsQ0FBQztpQkFBTSxDQUFDO2dCQUNQLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ3hCLENBQUM7UUFDRixDQUFDLEVBQ0QsS0FBSyxDQUFDLEVBQUU7WUFDUCxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ1IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsZ0RBQWdELENBQUMsQ0FBQztRQUMzRSxDQUFDLENBQ0QsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBRXZELENBQUM7d0dBdkJXLGVBQWU7NEZBQWYsZUFBZSx1RUNmNUIseXZGQWlEVSxxRER0Q0MsU0FBUyw4Q0FBRSxzQkFBc0IsK0RBQUUsZUFBZTs7NEZBSWhELGVBQWU7a0JBUDNCLFNBQVM7K0JBQ0MsYUFBYSxjQUNYLElBQUksV0FDUCxDQUFDLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9wdGlvbnNTZXJ2aWNlLCBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZmlyc3RWYWx1ZUZyb20sIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRkFRIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IExvYWRpbmdGdWxsRWNDb21wb25lbnQgfSBmcm9tICcuLi93aWRnZXRzLWVjJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2FwcC1mYXFzLWVjJyxcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdGltcG9ydHM6IFtBc3luY1BpcGUsIExvYWRpbmdGdWxsRWNDb21wb25lbnQsIFRyYW5zbGF0ZU1vZHVsZV0sXHJcblx0dGVtcGxhdGVVcmw6ICcuL2ZhcXMtZWMuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsOiAnLi9mYXFzLWVjLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRmFxc0VjQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHRwcml2YXRlIF90b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSA9IGluamVjdChUb2FzdFNlcnZpY2UpO1xyXG5cdHByaXZhdGUgX29wdGlvbnNTZXJ2aWNlOiBPcHRpb25zU2VydmljZSA9IGluamVjdChPcHRpb25zU2VydmljZSk7XHJcblxyXG5cdHByaXZhdGUgX2ZhcXNTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGQVFbXT4oW10pXHJcblx0cHVibGljIGZhcXMkOiBPYnNlcnZhYmxlPEZBUVtdPiA9IHRoaXMuX2ZhcXNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuXHRwdWJsaWMgZW1wdHlfZmFxczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdG5nT25Jbml0KCkge1xyXG5cdFx0Zmlyc3RWYWx1ZUZyb20odGhpcy5fb3B0aW9uc1NlcnZpY2UuZ2V0RkFRKCkpLnRoZW4oXHJcblx0XHRcdGZhcXMgPT4ge1xyXG5cdFx0XHRcdGlmIChmYXFzLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdHRoaXMuX2ZhcXNTdWJqZWN0Lm5leHQoZmFxcyk7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHRoaXMuZW1wdHlfZmFxcyA9IHRydWU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRlcnJvciA9PiB7XHJcblx0XHRcdFx0KGVycm9yKTtcclxuXHRcdFx0XHR0aGlzLl90b2FzdFNlcnZpY2Uuc2hvdygnTm8gZnVlIHBvc2libGUgZW5jb250cmFyIGxhIHNlY2Npw7NuIHNvbGljaXRhZGEnKTtcclxuXHRcdFx0fVxyXG5cdFx0KS5jYXRjaChlcnIgPT4gdGhpcy5fdG9hc3RTZXJ2aWNlLnNob3coJ2VtcHR5LWZhcXMnKSk7XHJcblxyXG5cdH1cclxufVxyXG4iLCI8c2VjdGlvbiBjbGFzcz1cImZvcm11bGFyaW8gY29udGFpbmVyIHB5LTJcIj5cclxuQGlmKGZhcXMkIHwgYXN5bmM7IGFzIGZhcXMpe1xyXG4gICAgQGlmKCFlbXB0eV9mYXFzKXtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLXN0YXJ0IHJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmF2IGZsZXgtY29sdW1uIG5hdi1waWxscyBtZS0zIGNvbC0yXCIgaWQ9XCJ2LXBpbGxzLXRhYlwiIHJvbGU9XCJ0YWJsaXN0XCIgYXJpYS1vcmllbnRhdGlvbj1cInZlcnRpY2FsXCI+XHJcbiAgICAgICAgICAgICAgICBAZm9yKGZhcSBvZiBmYXFzOyB0cmFjayAkaW5kZXg7IGxldCBpID0gJGluZGV4KXtcclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIFtjbGFzc109XCInbmF2LWxpbmsgJysoaT09MCA/ICdhY3RpdmUnOiAnJylcIiBbaWRdPVwiJ3YtcGlsbHMtJytmYXEuY29kZSsnLXRhYidcIiBkYXRhLWJzLXRvZ2dsZT1cInBpbGxcIiBbYXR0ci5kYXRhLWJzLXRhcmdldF09XCInI3YtcGlsbHMtJytmYXEuY29kZVwiIHR5cGU9XCJidXR0b25cIiByb2xlPVwidGFiXCIgW2F0dHIuYXJpYS1jb250cm9sc109XCIndi1waWxscy0nK2ZhcS5jb2RlXCIgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCIoaT09MClcIj57e2ZhcS50aXRsZX19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnQgY29sLTlcIiBpZD1cInYtcGlsbHMtdGFiQ29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgQGZvcihmYXEgb2YgZmFxczsgdHJhY2sgJGluZGV4OyBsZXQgaSA9ICRpbmRleCl7XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtjbGFzc109XCIndGFiLXBhbmUgZmFkZSAnKyhpPT0wID8gJ3Nob3cgYWN0aXZlJyA6ICcnKVwiIFtpZF09XCIndi1waWxscy0nK2ZhcS5jb2RlXCIgcm9sZT1cInRhYnBhbmVsXCIgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIid2LXBpbGxzLScrZmFxLmNvZGUrJy10YWInXCIgdGFiaW5kZXg9XCIwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjY29yZGlvblwiIGlkPVwiYWNjb3JkaW9uRmFxc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yKGl0ZW0gb2YgZmFxLnF1ZXN0aW9uczsgdHJhY2sgJGluZGV4OyBsZXQgaSA9ICRpbmRleCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY2NvcmRpb24taXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwiYWNjb3JkaW9uLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJhY2NvcmRpb24tYnV0dG9uIGNvbGxhcHNlZFwiIHR5cGU9XCJidXR0b25cIiBkYXRhLWJzLXRvZ2dsZT1cImNvbGxhcHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1icy10YXJnZXRdPVwiJyNjb2xsYXBzZS0nK2lcIiBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIiBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cIidjb2xsYXBzZS0nK2lcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtLnF1ZXN0aW9ufX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtpZF09XCInY29sbGFwc2UtJytpXCIgY2xhc3M9XCJhY2NvcmRpb24tY29sbGFwc2UgY29sbGFwc2VcIiBkYXRhLWJzLXBhcmVudD1cIiNhY2NvcmRpb25GYXFzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjY29yZGlvbi1ib2R5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7aXRlbS5hbnN3ZXJ9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgfUBlbHNlIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAge3sgJ2VtcHR5X2ZhcXMnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbn1AZWxzZSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBqdXNpdGZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBteS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGFwcC1sb2FkaW5nLWZ1bGwtZWM+PC9hcHAtbG9hZGluZy1mdWxsLWVjPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbn1cclxuPC9zZWN0aW9uPiJdfQ==
|
|
@@ -163,12 +163,12 @@ export class FiltersEcComponent {
|
|
|
163
163
|
return category.isVisible === true;
|
|
164
164
|
}
|
|
165
165
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FiltersEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
166
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FiltersEcComponent, isStandalone: true, selector: "lib-filters-ec", inputs: { setSelect: "setSelect" }, ngImport: i0, template: "<p>filters-ec works!</p>\n", styles: [""] });
|
|
166
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FiltersEcComponent, isStandalone: true, selector: "lib-filters-ec", inputs: { setSelect: "setSelect" }, ngImport: i0, template: "<p>filters-ec works!</p>\r\n", styles: [""] });
|
|
167
167
|
}
|
|
168
168
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FiltersEcComponent, decorators: [{
|
|
169
169
|
type: Component,
|
|
170
|
-
args: [{ selector: 'lib-filters-ec', standalone: true, imports: [], template: "<p>filters-ec works!</p>\n" }]
|
|
170
|
+
args: [{ selector: 'lib-filters-ec', standalone: true, imports: [], template: "<p>filters-ec works!</p>\r\n" }]
|
|
171
171
|
}], ctorParameters: () => [], propDecorators: { setSelect: [{
|
|
172
172
|
type: Input
|
|
173
173
|
}] } });
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9maWx0ZXJzLWVjL2ZpbHRlcnMtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvZmlsdGVycy1lYy9maWx0ZXJzLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBeUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxjQUFjLEVBQUcsV0FBVyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDaEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBVW5FLE1BQU0sT0FBTyxrQkFBa0I7SUFFbkIsWUFBWSxHQUFnQixNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDaEQsZUFBZSxHQUFtQixNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDekQsZ0JBQWdCLEdBQW9CLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM1RCxVQUFVLEdBQXlCLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFD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QUFVLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDdkUsQ0FBQztnQkFDRCxPQUFPLGFBQWEsQ0FBQyxRQUFRLENBQUM7WUFDbEMsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUM7SUFDaEIsQ0FBQztJQUNMOzs7O1NBSUs7SUFDRCxrQkFBa0IsQ0FBQyxRQUF1QjtRQUN0QyxPQUFRLFFBQWdCLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQztJQUNoRCxDQUFDO3dHQXZMUSxrQkFBa0I7NEZBQWxCLGtCQUFrQiw4R0NsQi9CLDRCQUNBOzs0RkRpQmEsa0JBQWtCO2tCQVA5QixTQUFTOytCQUNJLGdCQUFnQixjQUNkLElBQUksV0FDUCxFQUFFO3dEQW1CRixTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIElucHV0LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWx0ZXJzU2VydmljZSAsIEF1dGhTZXJ2aWNlfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBGaWx0ZXIgfSBmcm9tICcuLi8uLi9jbGFzc2VzJztcbmltcG9ydCB7IEZpbHRlckVsZW1lbnQsIEZpbHRlclR5cGUsIFBhZ2luYXRpb25TZXR0aW5ncyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgUHJvZHVjdHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWMtc2VydmljZXMvcHJvZHVjdHMuc2VydmljZSc7XG5pbXBvcnQgeyBDb3JlQ29uc3RhbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFByaWNlUmFuZ2VGaWx0ZXIgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2ZpbHRlcnMvcHJpY2VfcmFuZ2UtZmlsdGVyJztcbmltcG9ydCB7IENoYW5uZWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWMtc2VydmljZXMvY2hhbm5lbC5zZXJ2aWNlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xpYi1maWx0ZXJzLWVjJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXJzLWVjLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vZmlsdGVycy1lYy5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyc0VjQ29tcG9uZW50IHtcblxuICAgIHByaXZhdGUgX2F1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XG4gICAgcHJpdmF0ZSBfZmlsdGVyc1NlcnZpY2U6IEZpbHRlcnNTZXJ2aWNlID0gaW5qZWN0KEZpbHRlcnNTZXJ2aWNlKTtcbiAgICBwcml2YXRlIF9wcm9kdWN0c1NlcnZpY2U6IFByb2R1Y3RzU2VydmljZSA9IGluamVjdChQcm9kdWN0c1NlcnZpY2UpO1xuICAgIHByaXZhdGUgX2NvbnN0YW50czogQ29yZUNvbnN0YW50c1NlcnZpY2UgPSBpbmplY3QoQ29yZUNvbnN0YW50c1NlcnZpY2UpO1xuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgICBwdWJsaWMgZmlsdGVyczogRmlsdGVyW10gPSBbXTtcbiAgICBwdWJsaWMgZmlsdGVyJCA9IHRoaXMuX2ZpbHRlcnNTZXJ2aWNlLmZpbHRlcnMkO1xuICAgIHB1YmxpYyBzaG93UHJpY2VzT25seVRvTG9nZ2VkVXNlcnM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgaW5qZWN0b3I6IEluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblx0cHVibGljIGlzQXV0aGVudGljYXRlZCQgPSB0aGlzLl9hdXRoU2VydmljZS5pc0F1dGhlbnRpY2F0ZWQoKTtcbiAgICBwdWJsaWMgaGlkZVByaWNlczogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcblxuICAgIEBJbnB1dCgpIHNldFNlbGVjdDogYW55O1xuXG4gICAgbmdPbkluaXQoKSB7XG5cbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5fZmlsdGVyc1NlcnZpY2UuZmlsdGVycyQuc3Vic2NyaWJlKChmaWx0ZXJzOiBGaWx0ZXJbXSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJzID0gZmlsdGVycztcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuaW5qZWN0b3IuZ2V0KENoYW5uZWxTZXJ2aWNlKS5jaGFubmVsJC5zdWJzY3JpYmUoY2hhbm5lbCA9PiB7XG4gICAgICAgICAgICB0aGlzLnNob3dQcmljZXNPbmx5VG9Mb2dnZWRVc2VycyA9ICEhY2hhbm5lbC5zaG93UHJpY2VzT25seVRvTG9nZ2VkVXNlcnM7XG4gICAgICAgICAgICB0aGlzLmhpZGVQcmljZXMgPSAhIWNoYW5uZWwuaGlkZVByaWNlcztcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKiAxKSBQYXJhIGN1YW5kbyBtZSBwaWRlbiAncHJpY2VfcmFuZ2UnLCBkZXZ1ZWx2byBQcmljZVJhbmdlRmlsdGVyICovXG4gICAgcHVibGljIGdldFNwZWNpZmljRmlsdGVyKHR5cGU6ICdwcmljZV9yYW5nZScpOiBQcmljZVJhbmdlRmlsdGVyIHwgbnVsbDtcblxuICAgIC8qKiAyKSBQYXJhIGN1YWxxdWllciBvdHJvIEZpbHRlclR5cGUsIGRldnVlbHZvIEZpbHRlciAqL1xuICAgIHB1YmxpYyBnZXRTcGVjaWZpY0ZpbHRlcih0eXBlOiBGaWx0ZXJUeXBlKTogRmlsdGVyIHwgbnVsbDtcbiAgICBwdWJsaWMgZ2V0U3BlY2lmaWNGaWx0ZXIodHlwZTogRmlsdGVyVHlwZSk6IEZpbHRlciB8IG51bGwge1xuICAgICAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmZpbHRlcnMuZmluZChmID0+IGYudHlwZSgpID09PSB0eXBlKTtcbiAgICAgICAgaWYgKHR5cGUgPT09ICdwcmljZV9yYW5nZScgJiYgZmlsdGVyICYmICEoZmlsdGVyIGluc3RhbmNlb2YgRmlsdGVyKSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgRXhwZWN0ZWQgYSBGaWx0ZXIgaW5zdGFuY2UgYnV0IGdvdGAsIGZpbHRlcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpbHRlciB8fCBudWxsO1xuICAgIH1cblxuICAgIC8qT2J0aWVuZSBlbCBmaWx0cm8gZWxlZ2lkbyBlbiBlbCBzZWxlY3QsIGxvIHBhc2EgYWwgc2V0U2VsZWN0XG4gICAgcGFyYSBxdWUgc2UgbWFycXVlIHNlbGVjY2lvbmFkbyovXG4gICAgb25TZWxlY3QoZXZlbnQ6IGFueSwgZmlsdGVyOiBGaWx0ZXJFbGVtZW50W10gfCBudWxsKSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGZpbHRlcilcbiAgICAgICAgLyogIGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gZmlsdGVyXG4gICAgICAgICAgICAgLmZsYXRNYXAoY2F0ZWdvcnkgPT4gY2F0ZWdvcnkuY2hpbGRyZW4pXG4gICAgICAgICAgICAgLmZpbHRlcihvcHRpb24gPT4gb3B0aW9uPy5jb2RlID09PSBldmVudC50YXJnZXQudmFsdWUpXG4gICAgICAgICAgICAgLnBvcCgpXG4gICAgICAgICBzZWxlY3RlZE9wdGlvbiAmJiB0aGlzLl9maWx0ZXJzU2VydmljZS5zZXRGaWx0ZXJTZWxlY3RlZCh0aGlzLmZpbHRlcnNbMF0sIHNlbGVjdGVkT3B0aW9uKSAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1hbmVqYSBlbCBjbGljayBzb2JyZSB1biBlbGVtZW50byBkZSBmaWx0cm8gKGNhdGVnb3LDrWEsIGF0cmlidXRvLCBldGMuKS5cbiAgICAgKlxuICAgICAqIC0gUGFyYSBjYXRlZ29yw61hczogbmF2ZWdhIGEgbGEgVVJMIGRlIGxhIGNhdGVnb3LDrWEuXG4gICAgICogLSBQYXJhIGF0cmlidXRvczogYWN0dWFsaXphIGxhIHF1ZXJ5IHN0cmluZyBkZSBsYSBVUkwgY29uIGBhdHRyaWJ1dGVDb2Rlc2AuXG4gICAgICogLSBQYXJhIG90cm9zIGZpbHRyb3M6IGRlbGVnYSBlbiBGaWx0ZXJzU2VydmljZSBwYXJhIG1hcmNhciBzZWxlY2Npb25hZG8uXG4gICAgICpcbiAgICAgKiBMYSBpZGVhIGVzIHF1ZSAqKmxhIFVSTCBzaWVtcHJlIHJlcHJlc2VudGUgbG9zIGZpbHRyb3MgYXBsaWNhZG9zKiosXG4gICAgICogZGUgbW9kbyBxdWU6XG4gICAgICogICAtIGFsIGhhY2VyIEY1IG5vIHNlIHBpZXJkYW4gbG9zIGZpbHRyb3MsXG4gICAgICogICAtIGxvcyBsaW5rcyBzZWFuIGNvbXBhcnRpYmxlcyAoZGVlcCBsaW5raW5nKS5cbiAgICAgKi9cbiAgICBzZXRTZWxlY3RlZChmaWx0ZXI6IEZpbHRlciB8IG51bGwsIHNlbGVjdGVkOiBGaWx0ZXJFbGVtZW50IHwgbnVsbCkge1xuICAgICAgICBpZiAoIWZpbHRlciB8fCAhc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNpIGVsIGVsZW1lbnRvIGVzdMOhIG1hcmNhZG8gY29tbyBubyB2aXNpYmxlLCBubyBoYWNlbW9zIG5hZGFcbiAgICAgICAgaWYgKChzZWxlY3RlZCBhcyBhbnkpLmlzVmlzaWJsZSA9PT0gZmFsc2UpIHJldHVybjtcblxuICAgICAgICBpZiAodHlwZW9mIChmaWx0ZXIgYXMgYW55KS5zZXRTZWxlY3RlZCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChmaWx0ZXIudHlwZSgpID09PSAnY2F0ZWdvcmllcycpIHtcbiAgICAgICAgICAgICAgICAvLyBQYXJhIGNhdGVnb3LDrWFzIHVzYW1vcyBuYXZlZ2FjacOzbiBwb3IgcGF0aCAoZWo6IC9jb2xsZWN0aW9uL2NhdGVnb3JpZXMvY2FtYXMtZWxhc3RpY2FzKVxuICAgICAgICAgICAgICAgIGlmIChzZWxlY3RlZC5wYXRoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtzZWxlY3RlZC5wYXRoXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChmaWx0ZXIudHlwZSgpID09PSAnYXR0cmlidXRlcycpIHtcbiAgICAgICAgICAgICAgICAvLyBFbCBiYWNrZW5kIGVzcGVyYSBxdWUgbGUgbWFuZGVtb3MgZWwgXCJjb2RlXCIgZGVsIGF0cmlidXRvIGVuIGVsIHF1ZXJ5IHBhcmFtXG4gICAgICAgICAgICAgICAgY29uc3QgY29kZSA9IChzZWxlY3RlZCBhcyBhbnkpLmNvZGUgfHwgKHNlbGVjdGVkIGFzIGFueSkudmFsdWUgfHwgbnVsbDtcblxuICAgICAgICAgICAgICAgIC8vIEFjdHVhbGl6YW1vcyBsYSBVUkwgbWFudGVuaWVuZG8gbGEgcnV0YSwgcGVybyBhZ3JlZ2FuZG8gYGF0dHJpYnV0ZUNvZGVzYFxuICAgICAgICAgICAgICAgIC8vIEVqZW1wbG8gZGUgcmVzdWx0YWRvOlxuICAgICAgICAgICAgICAgIC8vICAgL2NvbGxlY3Rpb24vY2F0ZWdvcmllcy9jYW1hcy1lbGFzdGljYXM/YXR0cmlidXRlQ29kZXM9QUJDMTIzJi4uLlxuICAgICAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAgICAgLy8gVGFtYmnDqW4gcmVzZXRlYW1vcyBsYSBww6FnaW5hIGEgbnVsbCBwYXJhIHF1ZSB2dWVsdmEgYSBsYSBwcmltZXJhIHDDoWdpbmFcbiAgICAgICAgICAgICAgICAvLyBjdWFuZG8gc2UgYXBsaWNhIHVuIG51ZXZvIGZpbHRyby5cbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwge1xuICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLFxuICAgICAgICAgICAgICAgICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlQ29kZXM6IGNvZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlOiBudWxsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZSdcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX2ZpbHRlcnNTZXJ2aWNlLnNldEZpbHRlclNlbGVjdGVkKGZpbHRlciwgc2VsZWN0ZWQpO1xuXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3Igd2hpbGUgc2V0dGluZyBzZWxlY3RlZCBmaWx0ZXI6XCIsIGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVuaXF1ZVNlbGVjdGlvbihmaWx0ZXI6IHsgZGF0YTogYW55W107IH0sIGZpbHRlckNoaWxkOiBhbnkpIHtcbiAgICAgICAgLy8gQnVzY2FyIHNpIGhheSB1biBmaWx0cm8gZGUgdGlwbyBQcmljZVJhbmdlRmlsdGVyIGVuIGxhIGxpc3RhIGRlIGZpbHRyb3NcbiAgICAgICAgY29uc3QgcHJpY2VSYW5nZUZpbHRlciA9IHRoaXMuZmlsdGVycy5maW5kKGYgPT4gZiBpbnN0YW5jZW9mIFByaWNlUmFuZ2VGaWx0ZXIpO1xuXG4gICAgICAgIGlmIChwcmljZVJhbmdlRmlsdGVyKSB7XG4gICAgICAgICAgICBwcmljZVJhbmdlRmlsdGVyLnJlc2V0KCk7XG4gICAgICAgIH1cbiAgICAgICAgZmlsdGVyLmRhdGEuZm9yRWFjaChmaWx0ZXJFbGVtZW50ID0+IHtcbiAgICAgICAgICAgIGlmIChmaWx0ZXJFbGVtZW50LnNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgZmlsdGVyRWxlbWVudC5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmlsdGVyRWxlbWVudC5jaGlsZHJlbi5mb3JFYWNoKChmaWx0ZXJDaGlsZHJlbjogRmlsdGVyRWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJDaGlsZHJlbiAhPSBmaWx0ZXJDaGlsZCAmJiBmaWx0ZXJDaGlsZHJlbi5zZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJDaGlsZHJlbi5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyAgY2xvc2UgPSAoKSA9PiB7XG4gICAgLy8gICAgICAgdGhpcy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImZpbHRyb3NcIikuY2xhc3NMaXN0LnJlbW92ZSgnaW4nKTtcbiAgICAvLyAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAvLyAgfTtcblxuXG4gICAgY2xvc2UgPSAoKSA9PiB7XG4gICAgICAgIC8vIHRoaXMuY29uc3RzLm1vYmlsZSgpXG4gICAgICAgIC8vICAgICAgPyB0aGlzLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiYWNjb3JkaW9uRXhhbXBsZVwiKS5jbGFzc0xpc3QucmVtb3ZlKCdzaG93JylcbiAgICAgICAgLy8gICAgICA6IHRoaXMuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYWNjb3JkaW9uX2lkKS5jbGFzc0xpc3QucmVtb3ZlKCdzaG93Jyk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH07XG5cblxuICAgIHNjcm9sbFVwID0gKCkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHdpbmRvdy5zY3JvbGwoMCwgMCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cblxuXG5cblxuICAgIGhhc0FwcGxpZWRGaWx0ZXJzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJzPy5zb21lKChmaWx0ZXI6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKGZpbHRlci50eXBlPy4oKSA9PT0gJ3ByaWNlX3JhbmdlJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1pblNldCA9IGZpbHRlci5jdXJyZW50TWluUHJpY2UgIT09IG51bGwgJiYgZmlsdGVyLmN1cnJlbnRNaW5QcmljZSAhPT0gMDtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXhTZXQgPSBmaWx0ZXIuY3VycmVudE1heFByaWNlICE9PSBudWxsICYmIGZpbHRlci5jdXJyZW50TWF4UHJpY2UgIT09IGZpbHRlci5tYXhQcmljZTtcbiAgICAgICAgICAgICAgICBpZiAobWluU2V0IHx8IG1heFNldCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBmaWx0ZXIuZGF0YT8uc29tZSgoZmlsdGVyRWxlbWVudDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmlsdGVyRWxlbWVudC5jaGlsZHJlbikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlckVsZW1lbnQuY2hpbGRyZW4uc29tZSgoY2hpbGQ6IGFueSkgPT4gY2hpbGQuc2VsZWN0ZWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVyRWxlbWVudC5zZWxlY3RlZDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KSA/PyBmYWxzZTtcbiAgICB9XG4vKipcbiAgICogVmVyaWZpY2Egc2kgdW5hIGNhdGVnb3LDrWEgdGllbmUgbGEgcHJvcGllZGFkIGlzVmlzaWJsZSB5IGVzdMOhIG1hcmNhZGEgY29tbyB2aXNpYmxlXG4gICAqIEBwYXJhbSBjYXRlZ29yeSAtIExhIGNhdGVnb3LDrWEgYSB2ZXJpZmljYXJcbiAgICogQHJldHVybnMgdHJ1ZSBzaSBsYSBjYXRlZ29yw61hIGVzIHZpc2libGUsIGZhbHNlIGVuIGNhc28gY29udHJhcmlvXG4gICAqL1xuICAgIGhhc1Zpc2libGVQcm9wZXJ0eShjYXRlZ29yeTogRmlsdGVyRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKGNhdGVnb3J5IGFzIGFueSkuaXNWaXNpYmxlID09PSB0cnVlO1xuICAgIH1cbn1cbiIsIjxwPmZpbHRlcnMtZWMgd29ya3MhPC9wPlxuIl19
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9maWx0ZXJzLWVjL2ZpbHRlcnMtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvZmlsdGVycy1lYy9maWx0ZXJzLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBeUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxjQUFjLEVBQUcsV0FBVyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDaEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBVW5FLE1BQU0sT0FBTyxrQkFBa0I7SUFFbkIsWUFBWSxHQUFnQixNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDaEQsZUFBZSxHQUFtQixNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDekQsZ0JBQWdCLEdBQW9CLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM1RCxVQUFVLEdBQXlCLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFD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QUFVLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDdkUsQ0FBQztnQkFDRCxPQUFPLGFBQWEsQ0FBQyxRQUFRLENBQUM7WUFDbEMsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUM7SUFDaEIsQ0FBQztJQUNMOzs7O1NBSUs7SUFDRCxrQkFBa0IsQ0FBQyxRQUF1QjtRQUN0QyxPQUFRLFFBQWdCLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQztJQUNoRCxDQUFDO3dHQXZMUSxrQkFBa0I7NEZBQWxCLGtCQUFrQiw4R0NsQi9CLDhCQUNBOzs0RkRpQmEsa0JBQWtCO2tCQVA5QixTQUFTOytCQUNJLGdCQUFnQixjQUNkLElBQUksV0FDUCxFQUFFO3dEQW1CRixTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIElucHV0LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZpbHRlcnNTZXJ2aWNlICwgQXV0aFNlcnZpY2V9IGZyb20gJy4uLy4uL2VjLXNlcnZpY2VzJztcclxuaW1wb3J0IHsgRmlsdGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcyc7XHJcbmltcG9ydCB7IEZpbHRlckVsZW1lbnQsIEZpbHRlclR5cGUsIFBhZ2luYXRpb25TZXR0aW5ncyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBQcm9kdWN0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcy9wcm9kdWN0cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29yZUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgUHJpY2VSYW5nZUZpbHRlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZmlsdGVycy9wcmljZV9yYW5nZS1maWx0ZXInO1xyXG5pbXBvcnQgeyBDaGFubmVsU2VydmljZSB9IGZyb20gJy4uLy4uL2VjLXNlcnZpY2VzL2NoYW5uZWwuc2VydmljZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2xpYi1maWx0ZXJzLWVjJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbXSxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXJzLWVjLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsOiAnLi9maWx0ZXJzLWVjLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsdGVyc0VjQ29tcG9uZW50IHtcclxuXHJcbiAgICBwcml2YXRlIF9hdXRoU2VydmljZTogQXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSBfZmlsdGVyc1NlcnZpY2U6IEZpbHRlcnNTZXJ2aWNlID0gaW5qZWN0KEZpbHRlcnNTZXJ2aWNlKTtcclxuICAgIHByaXZhdGUgX3Byb2R1Y3RzU2VydmljZTogUHJvZHVjdHNTZXJ2aWNlID0gaW5qZWN0KFByb2R1Y3RzU2VydmljZSk7XHJcbiAgICBwcml2YXRlIF9jb25zdGFudHM6IENvcmVDb25zdGFudHNTZXJ2aWNlID0gaW5qZWN0KENvcmVDb25zdGFudHNTZXJ2aWNlKTtcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcclxuICAgIHB1YmxpYyBmaWx0ZXJzOiBGaWx0ZXJbXSA9IFtdO1xyXG4gICAgcHVibGljIGZpbHRlciQgPSB0aGlzLl9maWx0ZXJzU2VydmljZS5maWx0ZXJzJDtcclxuICAgIHB1YmxpYyBzaG93UHJpY2VzT25seVRvTG9nZ2VkVXNlcnM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBpbmplY3RvcjogSW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xyXG5cdHB1YmxpYyBpc0F1dGhlbnRpY2F0ZWQkID0gdGhpcy5fYXV0aFNlcnZpY2UuaXNBdXRoZW50aWNhdGVkKCk7XHJcbiAgICBwdWJsaWMgaGlkZVByaWNlczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xyXG5cclxuICAgIEBJbnB1dCgpIHNldFNlbGVjdDogYW55O1xyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLl9maWx0ZXJzU2VydmljZS5maWx0ZXJzJC5zdWJzY3JpYmUoKGZpbHRlcnM6IEZpbHRlcltdKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVycyA9IGZpbHRlcnM7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5pbmplY3Rvci5nZXQoQ2hhbm5lbFNlcnZpY2UpLmNoYW5uZWwkLnN1YnNjcmliZShjaGFubmVsID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zaG93UHJpY2VzT25seVRvTG9nZ2VkVXNlcnMgPSAhIWNoYW5uZWwuc2hvd1ByaWNlc09ubHlUb0xvZ2dlZFVzZXJzO1xyXG4gICAgICAgICAgICB0aGlzLmhpZGVQcmljZXMgPSAhIWNoYW5uZWwuaGlkZVByaWNlcztcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8qKiAxKSBQYXJhIGN1YW5kbyBtZSBwaWRlbiAncHJpY2VfcmFuZ2UnLCBkZXZ1ZWx2byBQcmljZVJhbmdlRmlsdGVyICovXHJcbiAgICBwdWJsaWMgZ2V0U3BlY2lmaWNGaWx0ZXIodHlwZTogJ3ByaWNlX3JhbmdlJyk6IFByaWNlUmFuZ2VGaWx0ZXIgfCBudWxsO1xyXG5cclxuICAgIC8qKiAyKSBQYXJhIGN1YWxxdWllciBvdHJvIEZpbHRlclR5cGUsIGRldnVlbHZvIEZpbHRlciAqL1xyXG4gICAgcHVibGljIGdldFNwZWNpZmljRmlsdGVyKHR5cGU6IEZpbHRlclR5cGUpOiBGaWx0ZXIgfCBudWxsO1xyXG4gICAgcHVibGljIGdldFNwZWNpZmljRmlsdGVyKHR5cGU6IEZpbHRlclR5cGUpOiBGaWx0ZXIgfCBudWxsIHtcclxuICAgICAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmZpbHRlcnMuZmluZChmID0+IGYudHlwZSgpID09PSB0eXBlKTtcclxuICAgICAgICBpZiAodHlwZSA9PT0gJ3ByaWNlX3JhbmdlJyAmJiBmaWx0ZXIgJiYgIShmaWx0ZXIgaW5zdGFuY2VvZiBGaWx0ZXIpKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEV4cGVjdGVkIGEgRmlsdGVyIGluc3RhbmNlIGJ1dCBnb3RgLCBmaWx0ZXIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmlsdGVyIHx8IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgLypPYnRpZW5lIGVsIGZpbHRybyBlbGVnaWRvIGVuIGVsIHNlbGVjdCwgbG8gcGFzYSBhbCBzZXRTZWxlY3RcclxuICAgIHBhcmEgcXVlIHNlIG1hcnF1ZSBzZWxlY2Npb25hZG8qL1xyXG4gICAgb25TZWxlY3QoZXZlbnQ6IGFueSwgZmlsdGVyOiBGaWx0ZXJFbGVtZW50W10gfCBudWxsKSB7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coZmlsdGVyKVxyXG4gICAgICAgIC8qICBjb25zdCBzZWxlY3RlZE9wdGlvbiA9IGZpbHRlclxyXG4gICAgICAgICAgICAgLmZsYXRNYXAoY2F0ZWdvcnkgPT4gY2F0ZWdvcnkuY2hpbGRyZW4pXHJcbiAgICAgICAgICAgICAuZmlsdGVyKG9wdGlvbiA9PiBvcHRpb24/LmNvZGUgPT09IGV2ZW50LnRhcmdldC52YWx1ZSlcclxuICAgICAgICAgICAgIC5wb3AoKVxyXG4gICAgICAgICBzZWxlY3RlZE9wdGlvbiAmJiB0aGlzLl9maWx0ZXJzU2VydmljZS5zZXRGaWx0ZXJTZWxlY3RlZCh0aGlzLmZpbHRlcnNbMF0sIHNlbGVjdGVkT3B0aW9uKSAqL1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWFuZWphIGVsIGNsaWNrIHNvYnJlIHVuIGVsZW1lbnRvIGRlIGZpbHRybyAoY2F0ZWdvcsOtYSwgYXRyaWJ1dG8sIGV0Yy4pLlxyXG4gICAgICpcclxuICAgICAqIC0gUGFyYSBjYXRlZ29yw61hczogbmF2ZWdhIGEgbGEgVVJMIGRlIGxhIGNhdGVnb3LDrWEuXHJcbiAgICAgKiAtIFBhcmEgYXRyaWJ1dG9zOiBhY3R1YWxpemEgbGEgcXVlcnkgc3RyaW5nIGRlIGxhIFVSTCBjb24gYGF0dHJpYnV0ZUNvZGVzYC5cclxuICAgICAqIC0gUGFyYSBvdHJvcyBmaWx0cm9zOiBkZWxlZ2EgZW4gRmlsdGVyc1NlcnZpY2UgcGFyYSBtYXJjYXIgc2VsZWNjaW9uYWRvLlxyXG4gICAgICpcclxuICAgICAqIExhIGlkZWEgZXMgcXVlICoqbGEgVVJMIHNpZW1wcmUgcmVwcmVzZW50ZSBsb3MgZmlsdHJvcyBhcGxpY2Fkb3MqKixcclxuICAgICAqIGRlIG1vZG8gcXVlOlxyXG4gICAgICogICAtIGFsIGhhY2VyIEY1IG5vIHNlIHBpZXJkYW4gbG9zIGZpbHRyb3MsXHJcbiAgICAgKiAgIC0gbG9zIGxpbmtzIHNlYW4gY29tcGFydGlibGVzIChkZWVwIGxpbmtpbmcpLlxyXG4gICAgICovXHJcbiAgICBzZXRTZWxlY3RlZChmaWx0ZXI6IEZpbHRlciB8IG51bGwsIHNlbGVjdGVkOiBGaWx0ZXJFbGVtZW50IHwgbnVsbCkge1xyXG4gICAgICAgIGlmICghZmlsdGVyIHx8ICFzZWxlY3RlZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBTaSBlbCBlbGVtZW50byBlc3TDoSBtYXJjYWRvIGNvbW8gbm8gdmlzaWJsZSwgbm8gaGFjZW1vcyBuYWRhXHJcbiAgICAgICAgaWYgKChzZWxlY3RlZCBhcyBhbnkpLmlzVmlzaWJsZSA9PT0gZmFsc2UpIHJldHVybjtcclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiAoZmlsdGVyIGFzIGFueSkuc2V0U2VsZWN0ZWQgIT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKGZpbHRlci50eXBlKCkgPT09ICdjYXRlZ29yaWVzJykge1xyXG4gICAgICAgICAgICAgICAgLy8gUGFyYSBjYXRlZ29yw61hcyB1c2Ftb3MgbmF2ZWdhY2nDs24gcG9yIHBhdGggKGVqOiAvY29sbGVjdGlvbi9jYXRlZ29yaWVzL2NhbWFzLWVsYXN0aWNhcylcclxuICAgICAgICAgICAgICAgIGlmIChzZWxlY3RlZC5wYXRoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3NlbGVjdGVkLnBhdGhdKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoZmlsdGVyLnR5cGUoKSA9PT0gJ2F0dHJpYnV0ZXMnKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBFbCBiYWNrZW5kIGVzcGVyYSBxdWUgbGUgbWFuZGVtb3MgZWwgXCJjb2RlXCIgZGVsIGF0cmlidXRvIGVuIGVsIHF1ZXJ5IHBhcmFtXHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb2RlID0gKHNlbGVjdGVkIGFzIGFueSkuY29kZSB8fCAoc2VsZWN0ZWQgYXMgYW55KS52YWx1ZSB8fCBudWxsO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIEFjdHVhbGl6YW1vcyBsYSBVUkwgbWFudGVuaWVuZG8gbGEgcnV0YSwgcGVybyBhZ3JlZ2FuZG8gYGF0dHJpYnV0ZUNvZGVzYFxyXG4gICAgICAgICAgICAgICAgLy8gRWplbXBsbyBkZSByZXN1bHRhZG86XHJcbiAgICAgICAgICAgICAgICAvLyAgIC9jb2xsZWN0aW9uL2NhdGVnb3JpZXMvY2FtYXMtZWxhc3RpY2FzP2F0dHJpYnV0ZUNvZGVzPUFCQzEyMyYuLi5cclxuICAgICAgICAgICAgICAgIC8vXHJcbiAgICAgICAgICAgICAgICAvLyBUYW1iacOpbiByZXNldGVhbW9zIGxhIHDDoWdpbmEgYSBudWxsIHBhcmEgcXVlIHZ1ZWx2YSBhIGxhIHByaW1lcmEgcMOhZ2luYVxyXG4gICAgICAgICAgICAgICAgLy8gY3VhbmRvIHNlIGFwbGljYSB1biBudWV2byBmaWx0cm8uXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGUsXHJcbiAgICAgICAgICAgICAgICAgICAgcXVlcnlQYXJhbXM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlQ29kZXM6IGNvZGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2U6IG51bGxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZSdcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLl9maWx0ZXJzU2VydmljZS5zZXRGaWx0ZXJTZWxlY3RlZChmaWx0ZXIsIHNlbGVjdGVkKTtcclxuXHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIkVycm9yIHdoaWxlIHNldHRpbmcgc2VsZWN0ZWQgZmlsdGVyOlwiLCBlcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVuaXF1ZVNlbGVjdGlvbihmaWx0ZXI6IHsgZGF0YTogYW55W107IH0sIGZpbHRlckNoaWxkOiBhbnkpIHtcclxuICAgICAgICAvLyBCdXNjYXIgc2kgaGF5IHVuIGZpbHRybyBkZSB0aXBvIFByaWNlUmFuZ2VGaWx0ZXIgZW4gbGEgbGlzdGEgZGUgZmlsdHJvc1xyXG4gICAgICAgIGNvbnN0IHByaWNlUmFuZ2VGaWx0ZXIgPSB0aGlzLmZpbHRlcnMuZmluZChmID0+IGYgaW5zdGFuY2VvZiBQcmljZVJhbmdlRmlsdGVyKTtcclxuXHJcbiAgICAgICAgaWYgKHByaWNlUmFuZ2VGaWx0ZXIpIHtcclxuICAgICAgICAgICAgcHJpY2VSYW5nZUZpbHRlci5yZXNldCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmaWx0ZXIuZGF0YS5mb3JFYWNoKGZpbHRlckVsZW1lbnQgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZmlsdGVyRWxlbWVudC5zZWxlY3RlZCkge1xyXG4gICAgICAgICAgICAgICAgZmlsdGVyRWxlbWVudC5zZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZpbHRlckVsZW1lbnQuY2hpbGRyZW4uZm9yRWFjaCgoZmlsdGVyQ2hpbGRyZW46IEZpbHRlckVsZW1lbnQpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJDaGlsZHJlbiAhPSBmaWx0ZXJDaGlsZCAmJiBmaWx0ZXJDaGlsZHJlbi5zZWxlY3RlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlckNoaWxkcmVuLnNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBjbG9zZSA9ICgpID0+IHtcclxuICAgIC8vICAgICAgIHRoaXMuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJmaWx0cm9zXCIpLmNsYXNzTGlzdC5yZW1vdmUoJ2luJyk7XHJcbiAgICAvLyAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIC8vICB9O1xyXG5cclxuXHJcbiAgICBjbG9zZSA9ICgpID0+IHtcclxuICAgICAgICAvLyB0aGlzLmNvbnN0cy5tb2JpbGUoKVxyXG4gICAgICAgIC8vICAgICAgPyB0aGlzLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiYWNjb3JkaW9uRXhhbXBsZVwiKS5jbGFzc0xpc3QucmVtb3ZlKCdzaG93JylcclxuICAgICAgICAvLyAgICAgIDogdGhpcy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChhY2NvcmRpb25faWQpLmNsYXNzTGlzdC5yZW1vdmUoJ3Nob3cnKTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH07XHJcblxyXG5cclxuICAgIHNjcm9sbFVwID0gKCkgPT4ge1xyXG4gICAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICB3aW5kb3cuc2Nyb2xsKDAsIDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgICBoYXNBcHBsaWVkRmlsdGVycygpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJzPy5zb21lKChmaWx0ZXI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZmlsdGVyLnR5cGU/LigpID09PSAncHJpY2VfcmFuZ2UnKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBtaW5TZXQgPSBmaWx0ZXIuY3VycmVudE1pblByaWNlICE9PSBudWxsICYmIGZpbHRlci5jdXJyZW50TWluUHJpY2UgIT09IDA7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBtYXhTZXQgPSBmaWx0ZXIuY3VycmVudE1heFByaWNlICE9PSBudWxsICYmIGZpbHRlci5jdXJyZW50TWF4UHJpY2UgIT09IGZpbHRlci5tYXhQcmljZTtcclxuICAgICAgICAgICAgICAgIGlmIChtaW5TZXQgfHwgbWF4U2V0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiBmaWx0ZXIuZGF0YT8uc29tZSgoZmlsdGVyRWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWx0ZXJFbGVtZW50LmNoaWxkcmVuKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXJFbGVtZW50LmNoaWxkcmVuLnNvbWUoKGNoaWxkOiBhbnkpID0+IGNoaWxkLnNlbGVjdGVkKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXJFbGVtZW50LnNlbGVjdGVkO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KSA/PyBmYWxzZTtcclxuICAgIH1cclxuLyoqXHJcbiAgICogVmVyaWZpY2Egc2kgdW5hIGNhdGVnb3LDrWEgdGllbmUgbGEgcHJvcGllZGFkIGlzVmlzaWJsZSB5IGVzdMOhIG1hcmNhZGEgY29tbyB2aXNpYmxlXHJcbiAgICogQHBhcmFtIGNhdGVnb3J5IC0gTGEgY2F0ZWdvcsOtYSBhIHZlcmlmaWNhclxyXG4gICAqIEByZXR1cm5zIHRydWUgc2kgbGEgY2F0ZWdvcsOtYSBlcyB2aXNpYmxlLCBmYWxzZSBlbiBjYXNvIGNvbnRyYXJpb1xyXG4gICAqL1xyXG4gICAgaGFzVmlzaWJsZVByb3BlcnR5KGNhdGVnb3J5OiBGaWx0ZXJFbGVtZW50KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChjYXRlZ29yeSBhcyBhbnkpLmlzVmlzaWJsZSA9PT0gdHJ1ZTtcclxuICAgIH1cclxufVxyXG4iLCI8cD5maWx0ZXJzLWVjIHdvcmtzITwvcD5cclxuIl19
|
|
@@ -25,12 +25,12 @@ export class FiltersSortEcComponent {
|
|
|
25
25
|
selectedOption && this._filtersService.setFilterSelected(this.filters[0], selectedOption);
|
|
26
26
|
}
|
|
27
27
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FiltersSortEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
28
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FiltersSortEcComponent, isStandalone: true, selector: "app-filters-sort-ec", outputs: { changeFilter: "changeFilter" }, ngImport: i0, template: "<p>filters-sort works!</p>\n", styles: [""] });
|
|
28
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FiltersSortEcComponent, isStandalone: true, selector: "app-filters-sort-ec", outputs: { changeFilter: "changeFilter" }, ngImport: i0, template: "<p>filters-sort works!</p>\r\n", styles: [""] });
|
|
29
29
|
}
|
|
30
30
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FiltersSortEcComponent, decorators: [{
|
|
31
31
|
type: Component,
|
|
32
|
-
args: [{ selector: 'app-filters-sort-ec', standalone: true, imports: [], template: "<p>filters-sort works!</p>\n" }]
|
|
32
|
+
args: [{ selector: 'app-filters-sort-ec', standalone: true, imports: [], template: "<p>filters-sort works!</p>\r\n" }]
|
|
33
33
|
}], ctorParameters: () => [], propDecorators: { changeFilter: [{
|
|
34
34
|
type: Output
|
|
35
35
|
}] } });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy1zb3J0LWVjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1jb21wb25lbnRzL2ZpbHRlcnMtc29ydC1lYy9maWx0ZXJzLXNvcnQtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvZmlsdGVycy1zb3J0LWVjL2ZpbHRlcnMtc29ydC1lYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQVMsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFHbkQsa0NBQWtDO0FBU2xDLE1BQU0sT0FBTyxzQkFBc0I7SUFDMUIsZUFBZSxHQUFvQixNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDM0QsT0FBTyxHQUFhLEVBQUUsQ0FBQztJQUN2QixPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUM7SUFDL0Msa0NBQWtDO0lBQ3hCLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRTVDO1FBQ0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUUsR0FBRyxDQUFDLEVBQUU7WUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtZQUNoRSw0QkFBNEI7UUFDN0IsQ0FBQyxDQUFDLENBQUE7SUFDSCxDQUFDO0lBRUQ7cUNBQ29DO0lBQ2pDLFFBQVEsQ0FBQyxLQUFTLEVBQUMsTUFBc0I7UUFDckMscUJBQXFCO1FBQ3JCLE1BQU0sY0FBYyxHQUFHLE1BQU07YUFDeEIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQzthQUN0QyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxLQUFLLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO2FBQ3JELEdBQUcsRUFBRSxDQUFBO1FBQ1YsY0FBYyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxjQUFjLENBQUMsQ0FBQTtJQUM3RixDQUFDO3dHQXZCUSxzQkFBc0I7NEZBQXRCLHNCQUFzQiwwSENibkMsZ0NBQ0E7OzRGRFlhLHNCQUFzQjtrQkFQbEMsU0FBUzsrQkFDQyxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQLEVBQUU7d0RBU0QsWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRmlsdGVyc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IEZpbHRlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMnO1xyXG5pbXBvcnQgeyBGaWx0ZXJFbGVtZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XHJcbi8vaW1wb3J0IHsgRmlsdGVyRWxlbWVudCB9IGZyb20gJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYXBwLWZpbHRlcnMtc29ydC1lYycsXHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRpbXBvcnRzOiBbXSxcclxuXHR0ZW1wbGF0ZVVybDogJy4vZmlsdGVycy1zb3J0LWVjLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybDogJy4vZmlsdGVycy1zb3J0LWVjLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsdGVyc1NvcnRFY0NvbXBvbmVudCB7XHJcblx0cHJpdmF0ZSBfZmlsdGVyc1NlcnZpY2U6IEZpbHRlcnNTZXJ2aWNlICA9IGluamVjdChGaWx0ZXJzU2VydmljZSk7XHJcblx0cHVibGljIGZpbHRlcnM6IEZpbHRlcltdID0gW107XHJcblx0cHVibGljIGZpbHRlciQgPSB0aGlzLl9maWx0ZXJzU2VydmljZS5maWx0ZXJzJDtcclxuXHQvL0BJbnB1dCgpIGZpbHRlcnM6IEZpbHRlcltdID0gW107XHJcblx0QE91dHB1dCgpIGNoYW5nZUZpbHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcblx0Y29uc3RydWN0b3IoKSB7XHJcblx0XHR0aGlzLmZpbHRlciQuc3Vic2NyaWJlKCByZXMgPT4ge1xyXG5cdFx0XHR0aGlzLmZpbHRlcnMgPSB0aGlzLl9maWx0ZXJzU2VydmljZS5nZXRTcGVjaWZpY0ZpbHRlcnMoWydzb3J0J10pXHJcblx0XHRcdC8vY29uc29sZS5sb2codGhpcy5maWx0ZXJzKTtcclxuXHRcdH0pXHJcblx0fVxyXG5cclxuXHQvKk9idGllbmUgZWwgZmlsdHJvIGVsZWdpZG8gZW4gZWwgc2VsZWN0LCBsbyBwYXNhIGFsIHNldFNlbGVjdFxyXG4gICAgcGFyYSBxdWUgc2UgbWFycXVlIHNlbGVjY2lvbmFkbyovXHJcbiAgICBvblNlbGVjdChldmVudDphbnksZmlsdGVyOkZpbHRlckVsZW1lbnRbXSl7XHJcbiAgICAgICAgLy9jb25zb2xlLmxvZyhmaWx0ZXIpXHJcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRPcHRpb24gPSBmaWx0ZXJcclxuICAgICAgICAgICAgLmZsYXRNYXAoY2F0ZWdvcnkgPT4gY2F0ZWdvcnkuY2hpbGRyZW4pXHJcbiAgICAgICAgICAgIC5maWx0ZXIob3B0aW9uID0+IG9wdGlvbj8uY29kZSA9PT0gZXZlbnQudGFyZ2V0LnZhbHVlKVxyXG4gICAgICAgICAgICAucG9wKClcclxuICAgICAgICBzZWxlY3RlZE9wdGlvbiAmJiB0aGlzLl9maWx0ZXJzU2VydmljZS5zZXRGaWx0ZXJTZWxlY3RlZCh0aGlzLmZpbHRlcnNbMF0sIHNlbGVjdGVkT3B0aW9uKVxyXG4gICAgfVxyXG5cclxuICAgIC8qIFJldG9ybmFyIGxvcyBmaWx0cm9zIGF1dG9yaXphZG9zIHBhcmEgZWwgdXN1YXJpbyBsb2d1ZWFkbyAqL1xyXG4gICAgLyogZmlsdGVyc05vdEF1dGggPSAoZmlsdGVycywgLi4uY29kZSkgPT4ge1xyXG4gICAgICAgIC8vY29uc29sZS5sb2codGhpcy5maWx0ZXJzKVxyXG4gICAgICAgIGlmICghdGhpcy5hdXRoU2VydmljZS5pc0F1dGhlbnRpY2F0ZWQoKSkge1xyXG4gICAgICAgICAgICBmaWx0ZXJzID0gZmlsdGVycy5maWx0ZXIoYXR0ciA9PiBjb2RlLmluZGV4T2YoYXR0clsnY29kZSddKSA+PSAwKVxyXG4gICAgICAgICAgICB0aGlzLmZpbHRlcnNbMF0uZGF0YSA9IGZpbHRlcnNcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZpbHRlcnNcclxuICAgIH0gKi9cclxuXHJcbn1cclxuIiwiPHA+ZmlsdGVycy1zb3J0IHdvcmtzITwvcD5cclxuIl19
|
|
@@ -8,10 +8,10 @@ import * as i0 from "@angular/core";
|
|
|
8
8
|
*/
|
|
9
9
|
export class FooterEcComponent extends MenuEcComponent {
|
|
10
10
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FooterEcComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
11
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FooterEcComponent, isStandalone: true, selector: "lib-footer-ec", usesInheritance: true, ngImport: i0, template: "<p>footer-ec works!</p>\n", styles: [""] });
|
|
11
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FooterEcComponent, isStandalone: true, selector: "lib-footer-ec", usesInheritance: true, ngImport: i0, template: "<p>footer-ec works!</p>\r\n", styles: [""] });
|
|
12
12
|
}
|
|
13
13
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FooterEcComponent, decorators: [{
|
|
14
14
|
type: Component,
|
|
15
|
-
args: [{ selector: 'lib-footer-ec', standalone: true, imports: [AsyncPipe], template: "<p>footer-ec works!</p>\n" }]
|
|
15
|
+
args: [{ selector: 'lib-footer-ec', standalone: true, imports: [AsyncPipe], template: "<p>footer-ec works!</p>\r\n" }]
|
|
16
16
|
}] });
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLWVjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1jb21wb25lbnRzL2Zvb3Rlci1lYy9mb290ZXItZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvZm9vdGVyLWVjL2Zvb3Rlci1lYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBQzdEOzs7R0FHRztBQVFILE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxlQUFlO3dHQUF6QyxpQkFBaUI7NEZBQWpCLGlCQUFpQixnR0NkOUIsNkJBQ0E7OzRGRGFhLGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDQyxlQUFlLGNBQ2IsSUFBSSxXQUNQLENBQUMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTWVudUVjQ29tcG9uZW50IH0gZnJvbSAnLi4vYWJzdHJhY3Rpb25zLWNvbXBvbmVudHMnO1xyXG4vKipcclxuICogQ29tcG9uZW50ZSBxdWUgc2UgZW5jYXJnYSBkZSBtYW5lamFyIGxhIGZ1bmNpb25hbGlkYWQgZGVsIEZvb3Rlci5cclxuICogQGV4dGVuZHMge01lbnVFY0NvbXBvbmVudH1cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnbGliLWZvb3Rlci1lYycsXHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRpbXBvcnRzOiBbQXN5bmNQaXBlXSxcclxuXHR0ZW1wbGF0ZVVybDogJy4vZm9vdGVyLWVjLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybDogJy4vZm9vdGVyLWVjLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9vdGVyRWNDb21wb25lbnQgZXh0ZW5kcyBNZW51RWNDb21wb25lbnR7XHJcblxyXG59XHJcblxyXG4iLCI8cD5mb290ZXItZWMgd29ya3MhPC9wPlxyXG4iXX0=
|
|
@@ -239,13 +239,13 @@ export class HeaderEcComponent extends MenuEcComponent {
|
|
|
239
239
|
}
|
|
240
240
|
}
|
|
241
241
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeaderEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
242
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: HeaderEcComponent, isStandalone: true, selector: "lib-header-ec", host: { listeners: { "window:scroll": "onWindowScroll()" } }, usesInheritance: true, ngImport: i0, template: "<p>header-ec works!</p>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
242
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: HeaderEcComponent, isStandalone: true, selector: "lib-header-ec", host: { listeners: { "window:scroll": "onWindowScroll()" } }, usesInheritance: true, ngImport: i0, template: "<p>header-ec works!</p>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
243
243
|
}
|
|
244
244
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeaderEcComponent, decorators: [{
|
|
245
245
|
type: Component,
|
|
246
|
-
args: [{ selector: 'lib-header-ec', standalone: true, imports: [CommonModule, TitleCasePipe, AsyncPipe, JsonPipe, RouterLink, RouterLinkActive], template: "<p>header-ec works!</p>\n" }]
|
|
246
|
+
args: [{ selector: 'lib-header-ec', standalone: true, imports: [CommonModule, TitleCasePipe, AsyncPipe, JsonPipe, RouterLink, RouterLinkActive], template: "<p>header-ec works!</p>\r\n" }]
|
|
247
247
|
}], ctorParameters: () => [], propDecorators: { onWindowScroll: [{
|
|
248
248
|
type: HostListener,
|
|
249
249
|
args: ['window:scroll', []]
|
|
250
250
|
}] } });
|
|
251
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWVjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1jb21wb25lbnRzL2hlYWRlci1lYy9oZWFkZXItZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvaGVhZGVyLWVjL2hlYWRlci1lYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW1CLFNBQVMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFvQixZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNJLE9BQU8sRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXRGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFFbkQ7O0dBRUc7QUFRSCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsZUFBZTtJQUM3QyxPQUFPLENBQXFCO0lBQzVCLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDaEMsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUM3QixNQUFNLEdBQVksS0FBSyxDQUFDLENBQUMsb0RBQW9EO0lBQzdFLFVBQVUsR0FB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Q0FBQztZQUNuQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO3dHQWpRVSxpQkFBaUI7NEZBQWpCLGlCQUFpQiw4SkNyQjlCLDJCQUNBLHlERGdCWSxZQUFZOzs0RkFJWCxpQkFBaUI7a0JBUDdCLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLENBQUM7d0RBOEV6RixjQUFjO3NCQURiLFlBQVk7dUJBQUMsZUFBZSxFQUFFLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZnRlck5leHRSZW5kZXIsIENvbXBvbmVudCwgaW5qZWN0LCBQTEFURk9STV9JRCwgSW5qZWN0b3IsIE9uSW5pdCwgSG9zdExpc3RlbmVyLCBDaGFuZ2VEZXRlY3RvclJlZiwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaXRsZUNhc2VQaXBlLCBBc3luY1BpcGUsIEpzb25QaXBlLCBDb21tb25Nb2R1bGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1lbnVFY0NvbXBvbmVudCB9IGZyb20gJy4uL2Fic3RyYWN0aW9ucy1jb21wb25lbnRzJztcbmltcG9ydCB7IENhcnRTZXJ2aWNlLCBUZXN0U2VydmljZSwgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWMtc2VydmljZXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBSb3V0ZXIsIE5hdmlnYXRpb25FbmQsIFJvdXRlckxpbmssIFJvdXRlckxpbmtBY3RpdmUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ2F0ZWdvcnkgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENvcmVDb25zdGFudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IENoYW5uZWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWMtc2VydmljZXMnO1xuXG4vKipcbiAqIENvbXBvbmVudGUgcXVlIHNlIGVuY2FyZ2EgZGUgbWFuZWphciBsYSBmdW5jaW9uYWxpZGFkIGRlbCBIZWFkZXIuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1oZWFkZXItZWMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUaXRsZUNhc2VQaXBlLCBBc3luY1BpcGUsIEpzb25QaXBlLCBSb3V0ZXJMaW5rLCBSb3V0ZXJMaW5rQWN0aXZlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci1lYy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9oZWFkZXItZWMuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIEhlYWRlckVjQ29tcG9uZW50IGV4dGVuZHMgTWVudUVjQ29tcG9uZW50IHtcbiAgcHVibGljIGNoYW5uZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIHNlYXJjaFZhbHVlOiBzdHJpbmcgPSAnJztcbiAgdHJhbnNwYXJlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNIb21lOiBib29sZWFuID0gZmFsc2U7IC8vIE51ZXZhIHZhcmlhYmxlIHBhcmEgdmVyaWZpY2FyIHNpIGVzdGFtb3MgZW4gL2hvbWVcbiAgaXNTY3JvbGxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBzaG93UHJpY2VzT25seVRvTG9nZ2VkVXNlcnM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaGlkZVByaWNlczogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgX19hdXRoU2VydmljZTogQXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpXG4gIHB1YmxpYyBfY2hhbm5lbFNlcnZpY2U6IENoYW5uZWxTZXJ2aWNlID0gaW5qZWN0KENoYW5uZWxTZXJ2aWNlKTtcbiAgcHVibGljIGNoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHVibGljIGFwcFJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwdWJsaWMgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG5cbiAgbW9iaWxlRHJvcGRvd25PcGVuID0gc2lnbmFsKGZhbHNlKTtcbiAgaXNNZW51T3BlbiA9IHNpZ25hbChmYWxzZSk7XG5cblxuICAvLyBPYnNlcnZhYmxlIGRlbCBlc3RhZG8gZGUgYXV0ZW50aWNhY2nDs25cbiAgcHVibGljIGxvZ2dlZCQhOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBwdWJsaWMgaXNBdXRoZW50aWNhdGVkJCA9IHRoaXMuX19hdXRoU2VydmljZS5pc0F1dGhlbnRpY2F0ZWQoKTtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9jaGFubmVsU2VydmljZS5jaGFubmVsJC5zdWJzY3JpYmUoY2ZnID0+IHtcbiAgICAgIHRoaXMuc2hvd1ByaWNlc09ubHlUb0xvZ2dlZFVzZXJzID0gISFjZmcuc2hvd1ByaWNlc09ubHlUb0xvZ2dlZFVzZXJzO1xuICAgICAgdGhpcy5oaWRlUHJpY2VzID0gISFjZmcuaGlkZVByaWNlcztcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY29yZUNvbnN0YW50c1NlcnZpY2UgPSBpbmplY3QoQ29yZUNvbnN0YW50c1NlcnZpY2UpO1xuICBwcml2YXRlIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7IC8vIElueWVjdGFtb3MgQ2hhbmdlRGV0ZWN0b3JSZWYgcGFyYSBmb3J6YXIgbGEgYWN0dWFsaXphY2nDs25cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5uZWwgPSB0aGlzLmNvcmVDb25zdGFudHNTZXJ2aWNlLmdldENoYW5uZWwoKTtcbiAgICB0aGlzLnNlYXJjaFZhbHVlID0gdGhpcy5jb3JlQ29uc3RhbnRzU2VydmljZS5zZWFyY2hWYWx1ZSB8fCAnJztcbiAgICB0aGlzLm9uV2luZG93U2Nyb2xsKCk7XG4gICAgdGhpcy5kZXRlY3RSb3V0ZUNoYW5nZSgpOyAvLyBMbGFtYW1vcyBhIGxhIGZ1bmNpw7NuIHF1ZSBkZXRlY3RhIGVsIGNhbWJpbyBkZSBydXRhXG4gICAgLy8gVXNhciBlbCBPYnNlcnZhYmxlIGRlbCBBdXRoU2VydmljZVxuICAgIHRoaXMubG9nZ2VkJCA9IHRoaXMuX19hdXRoU2VydmljZS5sb2dnZWRJbiQ7XG5cbiAgICAvLyBTdXNjcmliaXJzZSBhbCBPYnNlcnZhYmxlIHkgZm9yemFyIGRldGVjY2nDs24gZGUgY2FtYmlvcyBjdWFuZG8gc2VhIG5lY2VzYXJpb1xuICAgIHRoaXMubG9nZ2VkJC5zdWJzY3JpYmUoaXNMb2dnZWRJbiA9PiB7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgdGhpcy5hcHBSb3V0ZXIuZXZlbnRzLnN1YnNjcmliZShldnQgPT4ge1xuICAgICAgICBpZiAoZXZ0IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xuICAgICAgICAgIC8vIEZvcnphciBkZXRlY2Npw7NuIGRlIGNhbWJpb3MgZGVzcHXDqXMgZGUgbmF2ZWdhY2nDs25cbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXR1cE1vYmlsZU1lbnUoKTsgLy8gSW5pY2lhbGl6YW1vcyBlbCBtZW7DuiBtw7N2aWxcbiAgICB0aGlzLnNldHVwU2VhcmNoSW5wdXRzKCk7IC8vIEluaWNpYWxpemFtb3MgbG9zIGlucHV0cyBkZSBiw7pzcXVlZGEgICBcbiAgICB0aGlzLmlzSG9tZUZ1bmN0aW9uKCk7XG4gIH1cbiAgLyoqXG4gICAqIERldGVjdGEgY3VhbmRvIGNhbWJpYSBsYSBydXRhIHkgYWN0dWFsaXphIGxhIGNsYXNlIGRlbCBoZWFkZXJcbiAgICovXG4gIHByaXZhdGUgZGV0ZWN0Um91dGVDaGFuZ2UoKSB7XG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgIHRoaXMuaXNIb21lID0gdGhpcy5yb3V0ZXIudXJsID09PSAnL2hvbWUnO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7IC8vIEZvcnphbW9zIGxhIGRldGVjY2nDs24gZGUgY2FtYmlvcyBwYXJhIGFjdHVhbGl6YXIgbGEgdmlzdGFcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpzY3JvbGwnLCBbXSlcbiAgb25XaW5kb3dTY3JvbGwoKSB7XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIGNvbnN0IHNjcm9sbFRvcCA9IHdpbmRvdy5zY3JvbGxZO1xuICAgICAgdGhpcy5pc1Njcm9sbGVkID0gc2Nyb2xsVG9wID4gODA7XG4gICAgfVxuICB9XG5cbiAgaXNIb21lRnVuY3Rpb24oKTogdm9pZCB7XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIGNvbnN0IGhlYWRlckVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdoZWFkZXInKTtcbiAgICAgIGlmIChoZWFkZXJFbGVtZW50KSB7XG4gICAgICAgIGlmICh0aGlzLnJvdXRlci51cmwgIT09ICcvaG9tZScpIHtcbiAgICAgICAgICBoZWFkZXJFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ3Nob3ctbWVudScpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGhlYWRlckVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnc2hvdy1tZW51Jyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjaGFuZ2VVcmxUcmFuc3BhcmVudCA9ICh1cmxUcmFuc3BhcmVudDogc3RyaW5nKSA9PiB7XG4gICAgcmV0dXJuIHVybFRyYW5zcGFyZW50O1xuICB9O1xuXG5cbiAgZ2V0Q29sbGVjdGlvblNlYXJjaCA9ICgpID0+IHtcbiAgICB0aGlzLmNvcmVDb25zdGFudHNTZXJ2aWNlLnNlYXJjaFZhbHVlID0gdGhpcy5zZWFyY2hWYWx1ZTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvY29sbGVjdGlvbj9zZWFyY2g9JyArIHRoaXMuc2VhcmNoVmFsdWUpO1xuICB9O1xuXG4gIHNldFNlYXJjaFZhbHVlID0gKGV2ZW50OiBFdmVudCwgYWZ0ZXJTZWFyY2g/OiBGdW5jdGlvbiwgLi4uYXJnczogYW55W10pID0+IHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBpZiAodGFyZ2V0KSB7XG4gICAgICB0aGlzLnNlYXJjaFZhbHVlID0gdGFyZ2V0LnZhbHVlO1xuICAgIH1cblxuICAgIC8vIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAvLyB0aGlzLmdldENvbGxlY3Rpb25TZWFyY2goKTtcbiAgICBpZiAoYWZ0ZXJTZWFyY2gpIHtcbiAgICAgIGFmdGVyU2VhcmNoKC4uLmFyZ3MpO1xuICAgICAgLy8gfVxuICAgIH1cbiAgfTtcblxuICBib3JyYXJJbnB1dChpbnB1dElkPzogc3RyaW5nKSB7XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIGlmIChpbnB1dElkKSB7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaW5wdXRJZCkgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgaWYgKGlucHV0KSB7XG4gICAgICAgICAgaW5wdXQudmFsdWUgPSAnJztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaW5wdXRzID0gWydzZWFyY2hJbnB1dDEnXTtcbiAgICAgICAgaW5wdXRzLmZvckVhY2goKGlkKSA9PiB7XG4gICAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgICBpZiAoaW5wdXQpIHtcbiAgICAgICAgICAgIGlucHV0LnZhbHVlID0gJyc7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnNlYXJjaFZhbHVlID0gJyc7XG4gICAgdGhpcy5jb3JlQ29uc3RhbnRzU2VydmljZS5zZWFyY2hWYWx1ZSA9ICcnO1xuICAgIFxuICAgIC8vIEVuIGx1Z2FyIGRlIHJlbGFuemFyIGxhIGLDunNxdWVkYSBjb24gc3RyaW5nIHZhY8OtbyxcbiAgICAvLyBhY3R1YWxpemFtb3MgbGEgVVJMIHBhcmEgcXVpdGFyIGVsIHF1ZXJ5IHBhcmFtIGBzZWFyY2hgIHkgcmVzZXRlYXIgbGEgcGFnaW5hY2nDs24uXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvY29sbGVjdGlvbiddLCB7XG4gICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICBzZWFyY2g6IG51bGwsXG4gICAgICAgIHBhZ2U6IG51bGxcbiAgICAgIH0sXG4gICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnXG4gICAgfSk7XG4gIH1cbiAgc2V0dXBNb2JpbGVNZW51KCkge1xuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSB8fCB0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKSByZXR1cm47XG4gICAgY29uc3QgbWVudU1vYmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5tZW51TW9iaWxlJyk7XG4gICAgaWYgKCEobWVudU1vYmlsZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSkgcmV0dXJuO1xuICAgIGNvbnN0IG9wZW5CdG4gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYWJyZU1lbnVNb2JpbGUgLmFicmUnKTtcbiAgICBjb25zdCBjbG9zZUJ0biA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5hYnJlTWVudU1vYmlsZSAuY2xvc2UnKTtcbiAgICBjb25zdCBpY29uTWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpY01lbnUnKTtcbiAgICBjb25zdCBzZWFyY2hNb2JpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuc2VhcmNoTW9iaWxlJyk7XG5cbiAgICBjb25zdCBjbG9zZU1lbnUgPSAoKSA9PiB7XG4gICAgICBtZW51TW9iaWxlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICBjbG9zZUJ0bj8uc2V0QXR0cmlidXRlKCdzdHlsZScsICdkaXNwbGF5Om5vbmUnKTtcbiAgICAgIGljb25NZW51Py5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2Rpc3BsYXk6YmxvY2snKTtcbiAgICB9O1xuXG4gICAgbWVudU1vYmlsZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuXG4gICAgb3BlbkJ0bj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICBtZW51TW9iaWxlLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xuICAgICAgY2xvc2VCdG4/LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnZGlzcGxheTpibG9jaycpO1xuICAgICAgaWYgKHNlYXJjaE1vYmlsZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgIHNlYXJjaE1vYmlsZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgfVxuICAgICAgaWNvbk1lbnU/LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnZGlzcGxheTpub25lJyk7XG4gICAgfSk7XG5cbiAgICBjbG9zZUJ0bj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjbG9zZU1lbnUpO1xuXG4gICAgLy8gQ2llcnJhIGVsIG1lbsO6IHNpIHNlIGhhY2UgY2xpYyBlbiB1biBlbmxhY2UgZXNwZWPDrWZpY28gZGVudHJvIGRlbCBtZW7DulxuICAgIGNvbnN0IGxpbmtTZWxlY3RvcnMgPSBbJy5jYXRlZ29yeU1vYmlsZScsICcuc3ViY2F0ZWdvcnlNb2JpbGUnLCAnLnVzdWFyaW9tb2JpbGUnXTtcbiAgICBsaW5rU2VsZWN0b3JzLmZvckVhY2goc2VsZWN0b3IgPT4ge1xuICAgICAgY29uc3QgbGlua3MgPSBtZW51TW9iaWxlLnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEFuY2hvckVsZW1lbnQ+KGBhJHtzZWxlY3Rvcn1gKTtcbiAgICAgIGxpbmtzLmZvckVhY2gobGluayA9PiB7XG4gICAgICAgIGxpbmsuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgY2xvc2VNZW51KCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgc2V0dXBTZWFyY2hJbnB1dHMoKSB7XG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG4gICAgXG4gICAgY29uc3QgaW5wdXRzID0gWydzZWFyY2hJbnB1dDEnLCAnc2VhcmNoSW5wdXQyJ107XG5cbiAgICBpbnB1dHMuZm9yRWFjaChpZCA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtcbiAgICAgIGlmICghKGlucHV0IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCkpIHJldHVybjtcbiAgICAgIGNvbnN0IGNsZWFyQnRuID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLmNsZWFyLWJ0biR7aWQuc2xpY2UoLTEpfWApO1xuXG4gICAgICBpZiAoIWlucHV0IHx8ICEoY2xlYXJCdG4gaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkpIHJldHVybjtcblxuICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCAoKSA9PiB7XG4gICAgICAgIGlmIChpbnB1dC52YWx1ZSA9PT0gJ0J1c2NhciBwcm9kdWN0by4uLicpIHtcbiAgICAgICAgICBpbnB1dC52YWx1ZSA9ICcnO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IHtcbiAgICAgICAgaWYgKGlucHV0LnZhbHVlLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgICAgICBpbnB1dC52YWx1ZSA9ICdCdXNjYXIgcHJvZHVjdG8uLi4nO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCAoKSA9PiB7XG4gICAgICAgIGNsZWFyQnRuLnN0eWxlLmRpc3BsYXkgPSBpbnB1dC52YWx1ZS50cmltKCkgIT09ICcnID8gJ2Jsb2NrJyA6ICdub25lJztcbiAgICAgIH0pO1xuXG4gICAgICBjbGVhckJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlKSA9PiB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaW5wdXQudmFsdWUgPSAnJztcbiAgICAgICAgY2xlYXJCdG4uc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgaW5wdXQuZm9jdXMoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gIH1cblxuICB0b2dnbGVQYW5lbChpZDogc3RyaW5nKSB7XG4gICAgLy8gU29sbyBlamVjdXRhciBlbiBlbCBuYXZlZ2Fkb3IgcGFyYSBldml0YXIgcHJvYmxlbWFzIGNvbiBTU1JcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgdGhpcy5vcGVuUGFuZWxzLnVwZGF0ZShwYW5lbHMgPT4gKHtcbiAgICAgICAgLi4ucGFuZWxzLFxuICAgICAgICBbaWRdOiAhcGFuZWxzW2lkXVxuICAgICAgfSkpO1xuICAgIH1cbiAgfVxuXG4gIG9wZW5QYW5lbHMgPSBzaWduYWw8UmVjb3JkPHN0cmluZywgYm9vbGVhbj4+KHtcbiAgICBjb2xsYXBzZVVubzogZmFsc2UsXG4gICAgY29sbGFwc2VEb3M6IHRydWUgLy8gUHJvZHVjdG9zIGFiaWVydG8gcG9yIGRlZmVjdG9cbiAgfSk7XG5cblxuXG5cbiAgY29sbGFwc2VBbGxNZW51cygpIHtcbiAgICAvLyBTb2xvIGVqZWN1dGFyIGVuIGVsIG5hdmVnYWRvciBwYXJhIGV2aXRhciBwcm9ibGVtYXMgY29uIFNTUlxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICB0aGlzLm9wZW5QYW5lbHMudXBkYXRlKHBhbmVscyA9PiB7XG4gICAgICAgIGNvbnN0IG5ld1BhbmVscyA9IHsgLi4ucGFuZWxzIH07XG4gICAgICAgIE9iamVjdC5rZXlzKG5ld1BhbmVscykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgIGlmIChrZXkgIT09ICdjb2xsYXBzZURvcycpIHtcbiAgICAgICAgICAgIG5ld1BhbmVsc1trZXldID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG5ld1BhbmVscztcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPHA+aGVhZGVyLWVjIHdvcmtzITwvcD5cbiJdfQ==
|
|
251
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWVjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1jb21wb25lbnRzL2hlYWRlci1lYy9oZWFkZXItZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvaGVhZGVyLWVjL2hlYWRlci1lYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW1CLFNBQVMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFvQixZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNJLE9BQU8sRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXRGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFFbkQ7O0dBRUc7QUFRSCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsZUFBZTtJQUM3QyxPQUFPLENBQXFCO0lBQzVCLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDaEMsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUM3QixNQUFNLEdBQVksS0FBSyxDQUFDLENBQUMsb0RBQW9EO0lBQzdFLFVBQVUsR0FB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Q0FBQztZQUNuQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO3dHQWpRVSxpQkFBaUI7NEZBQWpCLGlCQUFpQiw4SkNyQjlCLDZCQUNBLHlERGdCWSxZQUFZOzs0RkFJWCxpQkFBaUI7a0JBUDdCLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLENBQUM7d0RBOEV6RixjQUFjO3NCQURiLFlBQVk7dUJBQUMsZUFBZSxFQUFFLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZnRlck5leHRSZW5kZXIsIENvbXBvbmVudCwgaW5qZWN0LCBQTEFURk9STV9JRCwgSW5qZWN0b3IsIE9uSW5pdCwgSG9zdExpc3RlbmVyLCBDaGFuZ2VEZXRlY3RvclJlZiwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRpdGxlQ2FzZVBpcGUsIEFzeW5jUGlwZSwgSnNvblBpcGUsIENvbW1vbk1vZHVsZSwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNZW51RWNDb21wb25lbnQgfSBmcm9tICcuLi9hYnN0cmFjdGlvbnMtY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IENhcnRTZXJ2aWNlLCBUZXN0U2VydmljZSwgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWMtc2VydmljZXMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWMtc2VydmljZXMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIsIE5hdmlnYXRpb25FbmQsIFJvdXRlckxpbmssIFJvdXRlckxpbmtBY3RpdmUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBDYXRlZ29yeSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBDb3JlQ29uc3RhbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IENoYW5uZWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWMtc2VydmljZXMnO1xyXG5cclxuLyoqXHJcbiAqIENvbXBvbmVudGUgcXVlIHNlIGVuY2FyZ2EgZGUgbWFuZWphciBsYSBmdW5jaW9uYWxpZGFkIGRlbCBIZWFkZXIuXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1oZWFkZXItZWMnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVGl0bGVDYXNlUGlwZSwgQXN5bmNQaXBlLCBKc29uUGlwZSwgUm91dGVyTGluaywgUm91dGVyTGlua0FjdGl2ZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci1lYy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2hlYWRlci1lYy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEhlYWRlckVjQ29tcG9uZW50IGV4dGVuZHMgTWVudUVjQ29tcG9uZW50IHtcclxuICBwdWJsaWMgY2hhbm5lbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIHB1YmxpYyBzZWFyY2hWYWx1ZTogc3RyaW5nID0gJyc7XHJcbiAgdHJhbnNwYXJlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0hvbWU6IGJvb2xlYW4gPSBmYWxzZTsgLy8gTnVldmEgdmFyaWFibGUgcGFyYSB2ZXJpZmljYXIgc2kgZXN0YW1vcyBlbiAvaG9tZVxyXG4gIGlzU2Nyb2xsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93UHJpY2VzT25seVRvTG9nZ2VkVXNlcnM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBoaWRlUHJpY2VzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIF9fYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKVxyXG4gIHB1YmxpYyBfY2hhbm5lbFNlcnZpY2U6IENoYW5uZWxTZXJ2aWNlID0gaW5qZWN0KENoYW5uZWxTZXJ2aWNlKTtcclxuICBwdWJsaWMgY2hhbmdlRGV0ZWN0b3IgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIHB1YmxpYyBhcHBSb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcclxuICBwdWJsaWMgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XHJcblxyXG4gIG1vYmlsZURyb3Bkb3duT3BlbiA9IHNpZ25hbChmYWxzZSk7XHJcbiAgaXNNZW51T3BlbiA9IHNpZ25hbChmYWxzZSk7XHJcblxyXG5cclxuICAvLyBPYnNlcnZhYmxlIGRlbCBlc3RhZG8gZGUgYXV0ZW50aWNhY2nDs25cclxuICBwdWJsaWMgbG9nZ2VkJCE6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgcHVibGljIGlzQXV0aGVudGljYXRlZCQgPSB0aGlzLl9fYXV0aFNlcnZpY2UuaXNBdXRoZW50aWNhdGVkKCk7XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5fY2hhbm5lbFNlcnZpY2UuY2hhbm5lbCQuc3Vic2NyaWJlKGNmZyA9PiB7XHJcbiAgICAgIHRoaXMuc2hvd1ByaWNlc09ubHlUb0xvZ2dlZFVzZXJzID0gISFjZmcuc2hvd1ByaWNlc09ubHlUb0xvZ2dlZFVzZXJzO1xyXG4gICAgICB0aGlzLmhpZGVQcmljZXMgPSAhIWNmZy5oaWRlUHJpY2VzO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvcmVDb25zdGFudHNTZXJ2aWNlID0gaW5qZWN0KENvcmVDb25zdGFudHNTZXJ2aWNlKTtcclxuICBwcml2YXRlIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xyXG4gIHByaXZhdGUgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTsgLy8gSW55ZWN0YW1vcyBDaGFuZ2VEZXRlY3RvclJlZiBwYXJhIGZvcnphciBsYSBhY3R1YWxpemFjacOzblxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2hhbm5lbCA9IHRoaXMuY29yZUNvbnN0YW50c1NlcnZpY2UuZ2V0Q2hhbm5lbCgpO1xyXG4gICAgdGhpcy5zZWFyY2hWYWx1ZSA9IHRoaXMuY29yZUNvbnN0YW50c1NlcnZpY2Uuc2VhcmNoVmFsdWUgfHwgJyc7XHJcbiAgICB0aGlzLm9uV2luZG93U2Nyb2xsKCk7XHJcbiAgICB0aGlzLmRldGVjdFJvdXRlQ2hhbmdlKCk7IC8vIExsYW1hbW9zIGEgbGEgZnVuY2nDs24gcXVlIGRldGVjdGEgZWwgY2FtYmlvIGRlIHJ1dGFcclxuICAgIC8vIFVzYXIgZWwgT2JzZXJ2YWJsZSBkZWwgQXV0aFNlcnZpY2VcclxuICAgIHRoaXMubG9nZ2VkJCA9IHRoaXMuX19hdXRoU2VydmljZS5sb2dnZWRJbiQ7XHJcblxyXG4gICAgLy8gU3VzY3JpYmlyc2UgYWwgT2JzZXJ2YWJsZSB5IGZvcnphciBkZXRlY2Npw7NuIGRlIGNhbWJpb3MgY3VhbmRvIHNlYSBuZWNlc2FyaW9cclxuICAgIHRoaXMubG9nZ2VkJC5zdWJzY3JpYmUoaXNMb2dnZWRJbiA9PiB7XHJcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xyXG4gICAgICB0aGlzLmFwcFJvdXRlci5ldmVudHMuc3Vic2NyaWJlKGV2dCA9PiB7XHJcbiAgICAgICAgaWYgKGV2dCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcclxuICAgICAgICAgIC8vIEZvcnphciBkZXRlY2Npw7NuIGRlIGNhbWJpb3MgZGVzcHXDqXMgZGUgbmF2ZWdhY2nDs25cclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgIH0sIDEwMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXR1cE1vYmlsZU1lbnUoKTsgLy8gSW5pY2lhbGl6YW1vcyBlbCBtZW7DuiBtw7N2aWxcclxuICAgIHRoaXMuc2V0dXBTZWFyY2hJbnB1dHMoKTsgLy8gSW5pY2lhbGl6YW1vcyBsb3MgaW5wdXRzIGRlIGLDunNxdWVkYSAgIFxyXG4gICAgdGhpcy5pc0hvbWVGdW5jdGlvbigpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBEZXRlY3RhIGN1YW5kbyBjYW1iaWEgbGEgcnV0YSB5IGFjdHVhbGl6YSBsYSBjbGFzZSBkZWwgaGVhZGVyXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBkZXRlY3RSb3V0ZUNoYW5nZSgpIHtcclxuICAgIHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XHJcbiAgICAgICAgdGhpcy5pc0hvbWUgPSB0aGlzLnJvdXRlci51cmwgPT09ICcvaG9tZSc7XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpOyAvLyBGb3J6YW1vcyBsYSBkZXRlY2Npw7NuIGRlIGNhbWJpb3MgcGFyYSBhY3R1YWxpemFyIGxhIHZpc3RhXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcsIFtdKVxyXG4gIG9uV2luZG93U2Nyb2xsKCkge1xyXG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcclxuICAgICAgY29uc3Qgc2Nyb2xsVG9wID0gd2luZG93LnNjcm9sbFk7XHJcbiAgICAgIHRoaXMuaXNTY3JvbGxlZCA9IHNjcm9sbFRvcCA+IDgwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaXNIb21lRnVuY3Rpb24oKTogdm9pZCB7XHJcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xyXG4gICAgICBjb25zdCBoZWFkZXJFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaGVhZGVyJyk7XHJcbiAgICAgIGlmIChoZWFkZXJFbGVtZW50KSB7XHJcbiAgICAgICAgaWYgKHRoaXMucm91dGVyLnVybCAhPT0gJy9ob21lJykge1xyXG4gICAgICAgICAgaGVhZGVyRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdzaG93LW1lbnUnKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaGVhZGVyRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdzaG93LW1lbnUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoYW5nZVVybFRyYW5zcGFyZW50ID0gKHVybFRyYW5zcGFyZW50OiBzdHJpbmcpID0+IHtcclxuICAgIHJldHVybiB1cmxUcmFuc3BhcmVudDtcclxuICB9O1xyXG5cclxuXHJcbiAgZ2V0Q29sbGVjdGlvblNlYXJjaCA9ICgpID0+IHtcclxuICAgIHRoaXMuY29yZUNvbnN0YW50c1NlcnZpY2Uuc2VhcmNoVmFsdWUgPSB0aGlzLnNlYXJjaFZhbHVlO1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2NvbGxlY3Rpb24/c2VhcmNoPScgKyB0aGlzLnNlYXJjaFZhbHVlKTtcclxuICB9O1xyXG5cclxuICBzZXRTZWFyY2hWYWx1ZSA9IChldmVudDogRXZlbnQsIGFmdGVyU2VhcmNoPzogRnVuY3Rpb24sIC4uLmFyZ3M6IGFueVtdKSA9PiB7XHJcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIGlmICh0YXJnZXQpIHtcclxuICAgICAgdGhpcy5zZWFyY2hWYWx1ZSA9IHRhcmdldC52YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XHJcbiAgICAvLyB0aGlzLmdldENvbGxlY3Rpb25TZWFyY2goKTtcclxuICAgIGlmIChhZnRlclNlYXJjaCkge1xyXG4gICAgICBhZnRlclNlYXJjaCguLi5hcmdzKTtcclxuICAgICAgLy8gfVxyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIGJvcnJhcklucHV0KGlucHV0SWQ/OiBzdHJpbmcpIHtcclxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcbiAgICAgIGlmIChpbnB1dElkKSB7XHJcbiAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpbnB1dElkKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgICAgIGlmIChpbnB1dCkge1xyXG4gICAgICAgICAgaW5wdXQudmFsdWUgPSAnJztcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgaW5wdXRzID0gWydzZWFyY2hJbnB1dDEnXTtcclxuICAgICAgICBpbnB1dHMuZm9yRWFjaCgoaWQpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICAgICAgICBpZiAoaW5wdXQpIHtcclxuICAgICAgICAgICAgaW5wdXQudmFsdWUgPSAnJztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2VhcmNoVmFsdWUgPSAnJztcclxuICAgIHRoaXMuY29yZUNvbnN0YW50c1NlcnZpY2Uuc2VhcmNoVmFsdWUgPSAnJztcclxuICAgIFxyXG4gICAgLy8gRW4gbHVnYXIgZGUgcmVsYW56YXIgbGEgYsO6c3F1ZWRhIGNvbiBzdHJpbmcgdmFjw61vLFxyXG4gICAgLy8gYWN0dWFsaXphbW9zIGxhIFVSTCBwYXJhIHF1aXRhciBlbCBxdWVyeSBwYXJhbSBgc2VhcmNoYCB5IHJlc2V0ZWFyIGxhIHBhZ2luYWNpw7NuLlxyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvY29sbGVjdGlvbiddLCB7XHJcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7XHJcbiAgICAgICAgc2VhcmNoOiBudWxsLFxyXG4gICAgICAgIHBhZ2U6IG51bGxcclxuICAgICAgfSxcclxuICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJ1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHNldHVwTW9iaWxlTWVudSgpIHtcclxuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSB8fCB0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKSByZXR1cm47XHJcbiAgICBjb25zdCBtZW51TW9iaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm1lbnVNb2JpbGUnKTtcclxuICAgIGlmICghKG1lbnVNb2JpbGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkpIHJldHVybjtcclxuICAgIGNvbnN0IG9wZW5CdG4gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYWJyZU1lbnVNb2JpbGUgLmFicmUnKTtcclxuICAgIGNvbnN0IGNsb3NlQnRuID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmFicmVNZW51TW9iaWxlIC5jbG9zZScpO1xyXG4gICAgY29uc3QgaWNvbk1lbnUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWNNZW51Jyk7XHJcbiAgICBjb25zdCBzZWFyY2hNb2JpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuc2VhcmNoTW9iaWxlJyk7XHJcblxyXG4gICAgY29uc3QgY2xvc2VNZW51ID0gKCkgPT4ge1xyXG4gICAgICBtZW51TW9iaWxlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XHJcbiAgICAgIGNsb3NlQnRuPy5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2Rpc3BsYXk6bm9uZScpO1xyXG4gICAgICBpY29uTWVudT8uc2V0QXR0cmlidXRlKCdzdHlsZScsICdkaXNwbGF5OmJsb2NrJyk7XHJcbiAgICB9O1xyXG5cclxuICAgIG1lbnVNb2JpbGUuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuXHJcbiAgICBvcGVuQnRuPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcclxuICAgICAgbWVudU1vYmlsZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcclxuICAgICAgY2xvc2VCdG4/LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnZGlzcGxheTpibG9jaycpO1xyXG4gICAgICBpZiAoc2VhcmNoTW9iaWxlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcclxuICAgICAgICBzZWFyY2hNb2JpbGUuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuICAgICAgfVxyXG4gICAgICBpY29uTWVudT8uc2V0QXR0cmlidXRlKCdzdHlsZScsICdkaXNwbGF5Om5vbmUnKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGNsb3NlQnRuPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGNsb3NlTWVudSk7XHJcblxyXG4gICAgLy8gQ2llcnJhIGVsIG1lbsO6IHNpIHNlIGhhY2UgY2xpYyBlbiB1biBlbmxhY2UgZXNwZWPDrWZpY28gZGVudHJvIGRlbCBtZW7DulxyXG4gICAgY29uc3QgbGlua1NlbGVjdG9ycyA9IFsnLmNhdGVnb3J5TW9iaWxlJywgJy5zdWJjYXRlZ29yeU1vYmlsZScsICcudXN1YXJpb21vYmlsZSddO1xyXG4gICAgbGlua1NlbGVjdG9ycy5mb3JFYWNoKHNlbGVjdG9yID0+IHtcclxuICAgICAgY29uc3QgbGlua3MgPSBtZW51TW9iaWxlLnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEFuY2hvckVsZW1lbnQ+KGBhJHtzZWxlY3Rvcn1gKTtcclxuICAgICAgbGlua3MuZm9yRWFjaChsaW5rID0+IHtcclxuICAgICAgICBsaW5rLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xyXG4gICAgICAgICAgY2xvc2VNZW51KCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHNldHVwU2VhcmNoSW5wdXRzKCkge1xyXG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XHJcbiAgICBcclxuICAgIGNvbnN0IGlucHV0cyA9IFsnc2VhcmNoSW5wdXQxJywgJ3NlYXJjaElucHV0MiddO1xyXG5cclxuICAgIGlucHV0cy5mb3JFYWNoKGlkID0+IHtcclxuICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7XHJcbiAgICAgIGlmICghKGlucHV0IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCkpIHJldHVybjtcclxuICAgICAgY29uc3QgY2xlYXJCdG4gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAuY2xlYXItYnRuJHtpZC5zbGljZSgtMSl9YCk7XHJcblxyXG4gICAgICBpZiAoIWlucHV0IHx8ICEoY2xlYXJCdG4gaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkpIHJldHVybjtcclxuXHJcbiAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKCkgPT4ge1xyXG4gICAgICAgIGlmIChpbnB1dC52YWx1ZSA9PT0gJ0J1c2NhciBwcm9kdWN0by4uLicpIHtcclxuICAgICAgICAgIGlucHV0LnZhbHVlID0gJyc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCAoKSA9PiB7XHJcbiAgICAgICAgaWYgKGlucHV0LnZhbHVlLnRyaW0oKSA9PT0gJycpIHtcclxuICAgICAgICAgIGlucHV0LnZhbHVlID0gJ0J1c2NhciBwcm9kdWN0by4uLic7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgKCkgPT4ge1xyXG4gICAgICAgIGNsZWFyQnRuLnN0eWxlLmRpc3BsYXkgPSBpbnB1dC52YWx1ZS50cmltKCkgIT09ICcnID8gJ2Jsb2NrJyA6ICdub25lJztcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBjbGVhckJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlKSA9PiB7XHJcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGlucHV0LnZhbHVlID0gJyc7XHJcbiAgICAgICAgY2xlYXJCdG4uc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuICAgICAgICBpbnB1dC5mb2N1cygpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIHRvZ2dsZVBhbmVsKGlkOiBzdHJpbmcpIHtcclxuICAgIC8vIFNvbG8gZWplY3V0YXIgZW4gZWwgbmF2ZWdhZG9yIHBhcmEgZXZpdGFyIHByb2JsZW1hcyBjb24gU1NSXHJcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xyXG4gICAgICB0aGlzLm9wZW5QYW5lbHMudXBkYXRlKHBhbmVscyA9PiAoe1xyXG4gICAgICAgIC4uLnBhbmVscyxcclxuICAgICAgICBbaWRdOiAhcGFuZWxzW2lkXVxyXG4gICAgICB9KSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvcGVuUGFuZWxzID0gc2lnbmFsPFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+Pih7XHJcbiAgICBjb2xsYXBzZVVubzogZmFsc2UsXHJcbiAgICBjb2xsYXBzZURvczogdHJ1ZSAvLyBQcm9kdWN0b3MgYWJpZXJ0byBwb3IgZGVmZWN0b1xyXG4gIH0pO1xyXG5cclxuXHJcblxyXG5cclxuICBjb2xsYXBzZUFsbE1lbnVzKCkge1xyXG4gICAgLy8gU29sbyBlamVjdXRhciBlbiBlbCBuYXZlZ2Fkb3IgcGFyYSBldml0YXIgcHJvYmxlbWFzIGNvbiBTU1JcclxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcbiAgICAgIHRoaXMub3BlblBhbmVscy51cGRhdGUocGFuZWxzID0+IHtcclxuICAgICAgICBjb25zdCBuZXdQYW5lbHMgPSB7IC4uLnBhbmVscyB9O1xyXG4gICAgICAgIE9iamVjdC5rZXlzKG5ld1BhbmVscykuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgICAgaWYgKGtleSAhPT0gJ2NvbGxhcHNlRG9zJykge1xyXG4gICAgICAgICAgICBuZXdQYW5lbHNba2V5XSA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBuZXdQYW5lbHM7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8cD5oZWFkZXItZWMgd29ya3MhPC9wPlxyXG4iXX0=
|
|
@@ -5,10 +5,10 @@ import * as i0 from "@angular/core";
|
|
|
5
5
|
*/
|
|
6
6
|
export class HomeEcComponent {
|
|
7
7
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HomeEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: HomeEcComponent, isStandalone: true, selector: "lib-home-ec", ngImport: i0, template: "<p>home-ec works!</p>\n", styles: [""] });
|
|
8
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: HomeEcComponent, isStandalone: true, selector: "lib-home-ec", ngImport: i0, template: "<p>home-ec works!</p>\r\n", styles: [""] });
|
|
9
9
|
}
|
|
10
10
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HomeEcComponent, decorators: [{
|
|
11
11
|
type: Component,
|
|
12
|
-
args: [{ selector: 'lib-home-ec', standalone: true, imports: [], template: "<p>home-ec works!</p>\n" }]
|
|
12
|
+
args: [{ selector: 'lib-home-ec', standalone: true, imports: [], template: "<p>home-ec works!</p>\r\n" }]
|
|
13
13
|
}] });
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9ob21lLWVjL2hvbWUtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvaG9tZS1lYy9ob21lLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBR2xEOztHQUVHO0FBUUgsTUFBTSxPQUFPLGVBQWU7d0dBQWYsZUFBZTs0RkFBZixlQUFlLHVFQ2I1QiwyQkFDQTs7NEZEWWEsZUFBZTtrQkFQM0IsU0FBUzsrQkFDRSxhQUFhLGNBQ1gsSUFBSSxXQUNQLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb3JlQ29uc3RhbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IEJsb2Nrc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcyc7XHJcbi8qKlxyXG4gKiBDb21wb25lbnRlIHF1ZSBzZSBlbmNhcmdhIGRlIG1hbmVqYXIgZWwgSG9tZSBkZSBsYSBhcGxpY2FjacOzbi5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWhvbWUtZWMnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW10sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hvbWUtZWMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9ob21lLWVjLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSG9tZUVjQ29tcG9uZW50IHtcclxuXHJcbn1cclxuIiwiPHA+aG9tZS1lYyB3b3JrcyE8L3A+XHJcbiJdfQ==
|
|
@@ -32,4 +32,4 @@ export * from './reviews-form-ec/reviews-form-ec.component';
|
|
|
32
32
|
export * from './section-container-ec/section-container-ec.component';
|
|
33
33
|
export * from './stores-ec/stores-ec.component';
|
|
34
34
|
export * from './price-range-filter/price-range-filter.component';
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLCtEQUErRCxDQUFDO0FBQzlFLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYywyREFBMkQsQ0FBQztBQUMxRSxjQUFjLGlFQUFpRSxDQUFDO0FBQ2hGLGNBQWMsK0RBQStELENBQUE7QUFDN0UsY0FBYyxtRUFBbUUsQ0FBQTtBQUNqRixjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxtREFBbUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZm9vdGVyLWVjL2Zvb3Rlci1lYy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2hlYWRlci1lYy9oZWFkZXItZWMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9ob21lLWVjL2hvbWUtZWMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9ibG9ja3MtZWMvYmxvY2tzLWVjLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcHJvZHVjdC1lYy9wcm9kdWN0LWVjLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29sbGVjdGlvbi1lYy9jb2xsZWN0aW9uLWVjLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZmlsdGVycy1zb3J0LWVjL2ZpbHRlcnMtc29ydC1lYy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3dpZGdldHMtZWMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2F1dGgtZWMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2ZpbHRlcnMtZWMvZmlsdGVycy1lYy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Byb2R1Y3QtZGV0YWlsLWVjL3Byb2R1Y3QtZGV0YWlsLWVjLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdmFyaWFudHMtZWMvdmFyaWFudHMtZWMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9icmVhZGNydW1iLWVjL2JyZWFkY3J1bWItZWMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9jYXJ0LWVjJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb3Vwb24tZWMvY291cG9uLWVjLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29udGFjdC1lYy9jb250YWN0LWVjLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY2hlY2tvdXQtZWMvY2hlY2tvdXQtZWMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9jaGVja291dC1lYy9zdWNjZXNzLWVjL3N1Y2Nlc3MtZWMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9hY2NvdW50LWVjJztcclxuZXhwb3J0ICogZnJvbSAnLi9ibG9ja3MtZWMvYmxvY2stbmV3c2xldHRlci1lYy9ibG9jay1uZXdzbGV0dGVyLWVjLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYmxvY2tzLWVjL2Jsb2NrLWh0bWwtZWMvYmxvY2staHRtbC1lYy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Jsb2Nrcy1lYy9ibG9jay1wcm9kdWN0cy1lYy9ibG9jay1wcm9kdWN0cy1lYy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Jsb2Nrcy1lYy9ibG9jay1iYW5uZXItZnVsbC1lYy9ibG9jay1iYW5uZXItZnVsbC1lYy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Jsb2Nrcy1lYy9ibG9jay1iYW5uZXItYm94LWVjL2Jsb2NrLWJhbm5lci1ib3gtZWMuY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL2Jsb2Nrcy1lYy9ibG9jay1mb3JtLWNvbnRhY3QtZWMvYmxvY2stZm9ybS1jb250YWN0LWVjLmNvbXBvbmVudCdcclxuZXhwb3J0ICogZnJvbSAnLi9zaWRlYmFyLWVjL3NpZGViYXItZWMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9yZWxhdGVkLXByb2R1Y3RzLWVjL3JlbGF0ZWQtcHJvZHVjdHMtZWMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9mYXFzLWVjL2ZhcXMtZWMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9zaGFyZS1lYy9zaGFyZS1lYy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Jldmlld3MtZWMvcmV2aWV3cy1lYy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Jldmlld3MtZm9ybS1lYy9yZXZpZXdzLWZvcm0tZWMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9zZWN0aW9uLWNvbnRhaW5lci1lYy9zZWN0aW9uLWNvbnRhaW5lci1lYy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3N0b3Jlcy1lYy9zdG9yZXMtZWMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9wcmljZS1yYW5nZS1maWx0ZXIvcHJpY2UtcmFuZ2UtZmlsdGVyLmNvbXBvbmVudCc7Il19
|
|
@@ -141,14 +141,14 @@ export class PriceRangeFilterComponent {
|
|
|
141
141
|
return value;
|
|
142
142
|
}
|
|
143
143
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PriceRangeFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
144
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PriceRangeFilterComponent, isStandalone: true, selector: "lib-price-range-filter", inputs: { filter: "filter" }, outputs: { rangeChanged: "rangeChanged" }, ngImport: i0, template: "<div class=\"slider\">\n <div class=\"slider\">\n <div class=\"progress\" [ngStyle]=\"getSliderStyle(filter)\">\n </div>\n </div>\n</div>\n<div class=\"range-input d-flex gap-2\">\n <input #rangeMin type=\"range\" class=\"range-min\" [min]=\"filter.minPrice\" [max]=\"filter.maxPrice\"\n [value]=\"getMinValue(filter)\" (input)=\"onRangeChange($event, 'min', filter)\"\n (change)=\"updatePriceRange(filter); scrollUp()\">\n <input #rangeMax type=\"range\" class=\"range-max\" [min]=\"filter.minPrice\" [max]=\"filter.maxPrice\"\n [value]=\"getMaxValue(filter)\" (input)=\"onRangeChange($event, 'max', filter)\"\n (change)=\"updatePriceRange(filter); scrollUp()\">\n</div>\n<!-- precios M\u00EDnimo / M\u00E1ximo -->\n<div class=\"price-container mt-2\">\n <div class=\"price-label-wrapper\">\n <span class=\"price-label\">M\u00EDnimo:</span>\n <span class=\"price-value\">\n {{ (getFormattedMinPrice(filter) | ecCurrencySymbol) || '0' }}\n </span>\n </div>\n <div class=\"price-label-wrapper\">\n <span class=\"price-label\">M\u00E1ximo:</span>\n <span class=\"price-value price-value-right\">\n {{ getFormattedMaxPrice(filter) | ecCurrencySymbol }}\n </span>\n </div>\n</div>", styles: [":root{--slider-bg: #ddd;--slider-progress-bg: #0FA3AF;--thumb-bg: #0FA3AF;--thumb-border: #fff;--text-color: #131716;--label-color: #0FA3AF;--shadow-color: rgba(15, 163, 175, .4)}.slider{height:6px;border-radius:5px;background:var(--slider-bg);position:relative;overflow:hidden}.slider .progress{height:6px;position:absolute;left:0;right:0;border-radius:5px;background:var(--slider-progress-bg)}.range-input{position:relative;margin-bottom:14px}.range-input input[type=range]{position:absolute;top:-5px;width:100%;height:5px;background:none;pointer-events:none;-webkit-appearance:none}.range-input input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:auto;height:20px;width:20px;border-radius:50%;background:var(--thumb-bg);border:3px solid var(--thumb-border);cursor:pointer;box-shadow:0 4px 8px #0003}.range-input input[type=range]::-moz-range-thumb{-moz-appearance:none;pointer-events:auto;height:20px;width:20px;border-radius:50%;background:var(--thumb-bg);border:3px solid var(--thumb-border);cursor:pointer;box-shadow:0 4px 8px #0003}.range-input input[type=range]:focus::-webkit-slider-thumb,.range-input input[type=range]:focus::-moz-range-thumb{box-shadow:0 0 0 4px var(--shadow-color);outline:none}.price-container{display:flex;flex-wrap:wrap;gap:1rem}.price-label-wrapper{display:flex;flex-direction:column;flex:0 1 auto;min-width:0}.price-label{font-weight:600;color:var(--label-color);margin-bottom:.25rem}.price-value{white-space:nowrap;font-weight:700;color:var(--text-color);overflow:hidden;text-overflow:ellipsis;font-size:14px}.price-value-right{text-align:right}\n"], dependencies: [{ kind: "pipe", type: EcCurrencySymbolPipe, name: "ecCurrencySymbol" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
144
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PriceRangeFilterComponent, isStandalone: true, selector: "lib-price-range-filter", inputs: { filter: "filter" }, outputs: { rangeChanged: "rangeChanged" }, ngImport: i0, template: "<div class=\"slider\">\r\n <div class=\"slider\">\r\n <div class=\"progress\" [ngStyle]=\"getSliderStyle(filter)\">\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"range-input d-flex gap-2\">\r\n <input #rangeMin type=\"range\" class=\"range-min\" [min]=\"filter.minPrice\" [max]=\"filter.maxPrice\"\r\n [value]=\"getMinValue(filter)\" (input)=\"onRangeChange($event, 'min', filter)\"\r\n (change)=\"updatePriceRange(filter); scrollUp()\">\r\n <input #rangeMax type=\"range\" class=\"range-max\" [min]=\"filter.minPrice\" [max]=\"filter.maxPrice\"\r\n [value]=\"getMaxValue(filter)\" (input)=\"onRangeChange($event, 'max', filter)\"\r\n (change)=\"updatePriceRange(filter); scrollUp()\">\r\n</div>\r\n<!-- precios M\u00EDnimo / M\u00E1ximo -->\r\n<div class=\"price-container mt-2\">\r\n <div class=\"price-label-wrapper\">\r\n <span class=\"price-label\">M\u00EDnimo:</span>\r\n <span class=\"price-value\">\r\n {{ (getFormattedMinPrice(filter) | ecCurrencySymbol) || '0' }}\r\n </span>\r\n </div>\r\n <div class=\"price-label-wrapper\">\r\n <span class=\"price-label\">M\u00E1ximo:</span>\r\n <span class=\"price-value price-value-right\">\r\n {{ getFormattedMaxPrice(filter) | ecCurrencySymbol }}\r\n </span>\r\n </div>\r\n</div>", styles: [":root{--slider-bg: #ddd;--slider-progress-bg: #0FA3AF;--thumb-bg: #0FA3AF;--thumb-border: #fff;--text-color: #131716;--label-color: #0FA3AF;--shadow-color: rgba(15, 163, 175, .4)}.slider{height:6px;border-radius:5px;background:var(--slider-bg);position:relative;overflow:hidden}.slider .progress{height:6px;position:absolute;left:0;right:0;border-radius:5px;background:var(--slider-progress-bg)}.range-input{position:relative;margin-bottom:14px}.range-input input[type=range]{position:absolute;top:-5px;width:100%;height:5px;background:none;pointer-events:none;-webkit-appearance:none}.range-input input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:auto;height:20px;width:20px;border-radius:50%;background:var(--thumb-bg);border:3px solid var(--thumb-border);cursor:pointer;box-shadow:0 4px 8px #0003}.range-input input[type=range]::-moz-range-thumb{-moz-appearance:none;pointer-events:auto;height:20px;width:20px;border-radius:50%;background:var(--thumb-bg);border:3px solid var(--thumb-border);cursor:pointer;box-shadow:0 4px 8px #0003}.range-input input[type=range]:focus::-webkit-slider-thumb,.range-input input[type=range]:focus::-moz-range-thumb{box-shadow:0 0 0 4px var(--shadow-color);outline:none}.price-container{display:flex;flex-wrap:wrap;gap:1rem}.price-label-wrapper{display:flex;flex-direction:column;flex:0 1 auto;min-width:0}.price-label{font-weight:600;color:var(--label-color);margin-bottom:.25rem}.price-value{white-space:nowrap;font-weight:700;color:var(--text-color);overflow:hidden;text-overflow:ellipsis;font-size:14px}.price-value-right{text-align:right}\n"], dependencies: [{ kind: "pipe", type: EcCurrencySymbolPipe, name: "ecCurrencySymbol" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
145
145
|
}
|
|
146
146
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PriceRangeFilterComponent, decorators: [{
|
|
147
147
|
type: Component,
|
|
148
|
-
args: [{ selector: 'lib-price-range-filter', standalone: true, imports: [EcCurrencySymbolPipe, CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"slider\">\n <div class=\"slider\">\n <div class=\"progress\" [ngStyle]=\"getSliderStyle(filter)\">\n </div>\n </div>\n</div>\n<div class=\"range-input d-flex gap-2\">\n <input #rangeMin type=\"range\" class=\"range-min\" [min]=\"filter.minPrice\" [max]=\"filter.maxPrice\"\n [value]=\"getMinValue(filter)\" (input)=\"onRangeChange($event, 'min', filter)\"\n (change)=\"updatePriceRange(filter); scrollUp()\">\n <input #rangeMax type=\"range\" class=\"range-max\" [min]=\"filter.minPrice\" [max]=\"filter.maxPrice\"\n [value]=\"getMaxValue(filter)\" (input)=\"onRangeChange($event, 'max', filter)\"\n (change)=\"updatePriceRange(filter); scrollUp()\">\n</div>\n<!-- precios M\u00EDnimo / M\u00E1ximo -->\n<div class=\"price-container mt-2\">\n <div class=\"price-label-wrapper\">\n <span class=\"price-label\">M\u00EDnimo:</span>\n <span class=\"price-value\">\n {{ (getFormattedMinPrice(filter) | ecCurrencySymbol) || '0' }}\n </span>\n </div>\n <div class=\"price-label-wrapper\">\n <span class=\"price-label\">M\u00E1ximo:</span>\n <span class=\"price-value price-value-right\">\n {{ getFormattedMaxPrice(filter) | ecCurrencySymbol }}\n </span>\n </div>\n</div>", styles: [":root{--slider-bg: #ddd;--slider-progress-bg: #0FA3AF;--thumb-bg: #0FA3AF;--thumb-border: #fff;--text-color: #131716;--label-color: #0FA3AF;--shadow-color: rgba(15, 163, 175, .4)}.slider{height:6px;border-radius:5px;background:var(--slider-bg);position:relative;overflow:hidden}.slider .progress{height:6px;position:absolute;left:0;right:0;border-radius:5px;background:var(--slider-progress-bg)}.range-input{position:relative;margin-bottom:14px}.range-input input[type=range]{position:absolute;top:-5px;width:100%;height:5px;background:none;pointer-events:none;-webkit-appearance:none}.range-input input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:auto;height:20px;width:20px;border-radius:50%;background:var(--thumb-bg);border:3px solid var(--thumb-border);cursor:pointer;box-shadow:0 4px 8px #0003}.range-input input[type=range]::-moz-range-thumb{-moz-appearance:none;pointer-events:auto;height:20px;width:20px;border-radius:50%;background:var(--thumb-bg);border:3px solid var(--thumb-border);cursor:pointer;box-shadow:0 4px 8px #0003}.range-input input[type=range]:focus::-webkit-slider-thumb,.range-input input[type=range]:focus::-moz-range-thumb{box-shadow:0 0 0 4px var(--shadow-color);outline:none}.price-container{display:flex;flex-wrap:wrap;gap:1rem}.price-label-wrapper{display:flex;flex-direction:column;flex:0 1 auto;min-width:0}.price-label{font-weight:600;color:var(--label-color);margin-bottom:.25rem}.price-value{white-space:nowrap;font-weight:700;color:var(--text-color);overflow:hidden;text-overflow:ellipsis;font-size:14px}.price-value-right{text-align:right}\n"] }]
|
|
148
|
+
args: [{ selector: 'lib-price-range-filter', standalone: true, imports: [EcCurrencySymbolPipe, CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"slider\">\r\n <div class=\"slider\">\r\n <div class=\"progress\" [ngStyle]=\"getSliderStyle(filter)\">\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"range-input d-flex gap-2\">\r\n <input #rangeMin type=\"range\" class=\"range-min\" [min]=\"filter.minPrice\" [max]=\"filter.maxPrice\"\r\n [value]=\"getMinValue(filter)\" (input)=\"onRangeChange($event, 'min', filter)\"\r\n (change)=\"updatePriceRange(filter); scrollUp()\">\r\n <input #rangeMax type=\"range\" class=\"range-max\" [min]=\"filter.minPrice\" [max]=\"filter.maxPrice\"\r\n [value]=\"getMaxValue(filter)\" (input)=\"onRangeChange($event, 'max', filter)\"\r\n (change)=\"updatePriceRange(filter); scrollUp()\">\r\n</div>\r\n<!-- precios M\u00EDnimo / M\u00E1ximo -->\r\n<div class=\"price-container mt-2\">\r\n <div class=\"price-label-wrapper\">\r\n <span class=\"price-label\">M\u00EDnimo:</span>\r\n <span class=\"price-value\">\r\n {{ (getFormattedMinPrice(filter) | ecCurrencySymbol) || '0' }}\r\n </span>\r\n </div>\r\n <div class=\"price-label-wrapper\">\r\n <span class=\"price-label\">M\u00E1ximo:</span>\r\n <span class=\"price-value price-value-right\">\r\n {{ getFormattedMaxPrice(filter) | ecCurrencySymbol }}\r\n </span>\r\n </div>\r\n</div>", styles: [":root{--slider-bg: #ddd;--slider-progress-bg: #0FA3AF;--thumb-bg: #0FA3AF;--thumb-border: #fff;--text-color: #131716;--label-color: #0FA3AF;--shadow-color: rgba(15, 163, 175, .4)}.slider{height:6px;border-radius:5px;background:var(--slider-bg);position:relative;overflow:hidden}.slider .progress{height:6px;position:absolute;left:0;right:0;border-radius:5px;background:var(--slider-progress-bg)}.range-input{position:relative;margin-bottom:14px}.range-input input[type=range]{position:absolute;top:-5px;width:100%;height:5px;background:none;pointer-events:none;-webkit-appearance:none}.range-input input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:auto;height:20px;width:20px;border-radius:50%;background:var(--thumb-bg);border:3px solid var(--thumb-border);cursor:pointer;box-shadow:0 4px 8px #0003}.range-input input[type=range]::-moz-range-thumb{-moz-appearance:none;pointer-events:auto;height:20px;width:20px;border-radius:50%;background:var(--thumb-bg);border:3px solid var(--thumb-border);cursor:pointer;box-shadow:0 4px 8px #0003}.range-input input[type=range]:focus::-webkit-slider-thumb,.range-input input[type=range]:focus::-moz-range-thumb{box-shadow:0 0 0 4px var(--shadow-color);outline:none}.price-container{display:flex;flex-wrap:wrap;gap:1rem}.price-label-wrapper{display:flex;flex-direction:column;flex:0 1 auto;min-width:0}.price-label{font-weight:600;color:var(--label-color);margin-bottom:.25rem}.price-value{white-space:nowrap;font-weight:700;color:var(--text-color);overflow:hidden;text-overflow:ellipsis;font-size:14px}.price-value-right{text-align:right}\n"] }]
|
|
149
149
|
}], propDecorators: { filter: [{
|
|
150
150
|
type: Input
|
|
151
151
|
}], rangeChanged: [{
|
|
152
152
|
type: Output
|
|
153
153
|
}] } });
|
|
154
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpY2UtcmFuZ2UtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1jb21wb25lbnRzL3ByaWNlLXJhbmdlLWZpbHRlci9wcmljZS1yYW5nZS1maWx0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvcHJpY2UtcmFuZ2UtZmlsdGVyL3ByaWNlLXJhbmdlLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFVekQsTUFBTSxPQUFPLHlCQUF5QjtJQUU1QixlQUFlLEdBQW1CLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN6RCxNQUFNLEdBQVcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLEtBQUssR0FBbUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRXZELFFBQVEsR0FBRyxDQUFDLENBQUM7SUFDYixTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBRUwsTUFBTSxDQUFvQjtJQUN6QixZQUFZLEdB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Q0FBQztJQUVELG9CQUFvQixDQUFDLE1BQVc7UUFDOUIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFNLFlBQVksZ0JBQWdCLElBQUksTUFBTSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUM7WUFDbEYsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxlQUFlO1lBQ3hCLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ3BCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzt3R0F0SlUseUJBQXlCOzRGQUF6Qix5QkFBeUIsMkpDZnRDLDR4Q0E0Qk0sOG5ERGxCTSxvQkFBb0Isd0RBQUUsWUFBWTs7NEZBS2pDLHlCQUF5QjtrQkFSckMsU0FBUzsrQkFDRSx3QkFBd0IsY0FDdEIsSUFBSSxXQUNQLENBQUMsb0JBQW9CLEVBQUUsWUFBWSxDQUFDLG1CQUc1Qix1QkFBdUIsQ0FBQyxNQUFNOzhCQVd0QyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcmljZVJhbmdlRmlsdGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9maWx0ZXJzL3ByaWNlX3JhbmdlLWZpbHRlcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRWNDdXJyZW5jeVN5bWJvbFBpcGUgfSBmcm9tICcuLi8uLi9lYy1waXBlJztcbmltcG9ydCB7IEZpbHRlcnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWMtc2VydmljZXMnO1xuaW1wb3J0IHsgUm91dGVyLCBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1wcmljZS1yYW5nZS1maWx0ZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbRWNDdXJyZW5jeVN5bWJvbFBpcGUsIENvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcmljZS1yYW5nZS1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJpY2UtcmFuZ2UtZmlsdGVyLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUHJpY2VSYW5nZUZpbHRlckNvbXBvbmVudCB7XG5cbiAgcHJpdmF0ZSBfZmlsdGVyc1NlcnZpY2U6IEZpbHRlcnNTZXJ2aWNlID0gaW5qZWN0KEZpbHRlcnNTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG5cbiAgcHJpY2VHYXAgPSAxO1xuICByb3VuZFN0ZXAgPSA1O1xuXG4gIEBJbnB1dCgpIGZpbHRlciE6IFByaWNlUmFuZ2VGaWx0ZXI7XG4gIEBPdXRwdXQoKSByYW5nZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgbWluOiBudW1iZXI7IG1heDogbnVtYmVyIH0+KCk7XG5cbiAgZ2V0U2xpZGVyU3R5bGUoZmlsdGVyOiBhbnkpOiB7IFtrbGFzczogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIGlmICghKGZpbHRlciBpbnN0YW5jZW9mIFByaWNlUmFuZ2VGaWx0ZXIpKSByZXR1cm4geyBsZWZ0OiAnMCUnLCByaWdodDogJzAlJyB9O1xuXG4gICAgY29uc3QgbGVmdCA9IHRoaXMuY2FsY3VsYXRlTGVmdFBlcmNlbnRhZ2UoZmlsdGVyKTtcbiAgICBjb25zdCByaWdodCA9IHRoaXMuY2FsY3VsYXRlUmlnaHRQZXJjZW50YWdlKGZpbHRlcik7XG4gICAgcmV0dXJuIHsgbGVmdDogYCR7bGVmdH0lYCwgcmlnaHQ6IGAke3JpZ2h0fSVgIH07XG4gIH1cblxuICAvLyBNw6l0b2RvcyBwYXJhIGFjdHVhbGl6YXIgbGEgYmFycmEgZGVsIGZpbHRybyBwb3IgcHJlY2lvXG4gIGNhbGN1bGF0ZUxlZnRQZXJjZW50YWdlKGZpbHRlcjogYW55KTogbnVtYmVyIHtcbiAgICBpZiAoIShmaWx0ZXIgaW5zdGFuY2VvZiBQcmljZVJhbmdlRmlsdGVyKSkgcmV0dXJuIDA7XG5cbiAgICBjb25zdCBtaW4gPSBmaWx0ZXIubWluUHJpY2U7XG4gICAgY29uc3QgbWF4ID0gZmlsdGVyLm1heFByaWNlO1xuICAgIGNvbnN0IGN1cnJlbnRNaW4gPSBmaWx0ZXIuY3VycmVudE1pblByaWNlID8/IG1pbjtcblxuICAgIGNvbnN0IGNsYW1wZWRNaW4gPSBNYXRoLm1heChtaW4sIE1hdGgubWluKGN1cnJlbnRNaW4sIG1heCkpO1xuICAgIHJldHVybiBNYXRoLm1heCgwLCBNYXRoLm1pbigoKGNsYW1wZWRNaW4gLSBtaW4pIC8gKG1heCAtIG1pbikpICogMTAwLCAxMDApKTtcbiAgfVxuXG4gIGNhbGN1bGF0ZVJpZ2h0UGVyY2VudGFnZShmaWx0ZXI6IGFueSk6IG51bWJlciB7XG4gICAgaWYgKCEoZmlsdGVyIGluc3RhbmNlb2YgUHJpY2VSYW5nZUZpbHRlcikpIHJldHVybiAwO1xuXG4gICAgY29uc3QgbWluID0gZmlsdGVyLm1pblByaWNlO1xuICAgIGNvbnN0IG1heCA9IGZpbHRlci5tYXhQcmljZTtcbiAgICBjb25zdCBjdXJyZW50TWF4ID0gZmlsdGVyLmN1cnJlbnRNYXhQcmljZSA/PyBtYXg7XG5cbiAgICBjb25zdCBjbGFtcGVkTWF4ID0gTWF0aC5tYXgobWluLCBNYXRoLm1pbihjdXJyZW50TWF4LCBtYXgpKTtcbiAgICByZXR1cm4gTWF0aC5tYXgoMCwgTWF0aC5taW4oMTAwIC0gKChjbGFtcGVkTWF4IC0gbWluKSAvIChtYXggLSBtaW4pKSAqIDEwMCwgMTAwKSk7XG4gIH1cblxuICAvLyBNw6l0b2RvIHBhcmEgYWN0dWFsaXphciBsb3MgdmFsb3JlcyBkZSBwcmVjaW8gc2VsZWNjaW9uYWRvc1xuICB1cGRhdGVQcmljZVJhbmdlKGZpbHRlcjogYW55KSB7XG4gICAgaWYgKCEoZmlsdGVyIGluc3RhbmNlb2YgUHJpY2VSYW5nZUZpbHRlcikpIHJldHVybjtcblxuICAgIGNvbnN0IG1pbiA9IGZpbHRlci5jdXJyZW50TWluUHJpY2UgPz8gZmlsdGVyLm1pblByaWNlO1xuICAgIGNvbnN0IG1heCA9IGZpbHRlci5jdXJyZW50TWF4UHJpY2UgPz8gZmlsdGVyLm1heFByaWNlO1xuXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10sIHtcbiAgICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGUsXG4gICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICBwcmljZV9taW46IG1pbiAhPT0gZmlsdGVyLm1pblByaWNlID8gbWluIDogbnVsbCxcbiAgICAgICAgcHJpY2VfbWF4OiBtYXggIT09IGZpbHRlci5tYXhQcmljZSA/IG1heCA6IG51bGwsXG4gICAgICAgIHBhZ2U6IG51bGwsXG4gICAgICB9LFxuICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJ1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0TWluVmFsdWUoZmlsdGVyOiBhbnkpOiBudW1iZXIge1xuICAgIHJldHVybiAoZmlsdGVyIGluc3RhbmNlb2YgUHJpY2VSYW5nZUZpbHRlciAmJiBmaWx0ZXIuY3VycmVudE1pblByaWNlICE9IG51bGwpXG4gICAgICA/IGZpbHRlci5jdXJyZW50TWluUHJpY2VcbiAgICAgIDogZmlsdGVyLm1pblByaWNlO1xuICB9XG5cbiAgZ2V0TWF4VmFsdWUoZmlsdGVyOiBhbnkpOiBudW1iZXIge1xuICAgIHJldHVybiAoZmlsdGVyIGluc3RhbmNlb2YgUHJpY2VSYW5nZUZpbHRlciAmJiBmaWx0ZXIuY3VycmVudE1heFByaWNlICE9IG51bGwpXG4gICAgICA/IGZpbHRlci5jdXJyZW50TWF4UHJpY2VcbiAgICAgIDogZmlsdGVyLm1heFByaWNlO1xuICB9XG5cbiAgLyoqXG4gICogUmVkb25kZWEgYWwgbcO6bHRpcGxvIGRlICdzdGVwJyByZXNwZXRhbmRvIGVsIHJlZG9uZGVvIGVudGVybzpcbiAgKiAtIE3DrW5pbW86IHJlZG9uZGVhIGhhY2lhIGFiYWpvLlxuICAqIC0gTcOheGltbzogcmVkb25kZWEgaGFjaWEgYXJyaWJhLlxuICAqL1xuICBvblJhbmdlQ2hhbmdlKGV2ZW50OiBFdmVudCwgdHlwZTogJ21pbicgfCAnbWF4JywgZmlsdGVyOiBhbnkpIHtcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGxldCB2YWx1ZSA9IHBhcnNlRmxvYXQoaW5wdXQudmFsdWUpO1xuICAgIHZhbHVlID0gdGhpcy5yb3VuZFRvTmVhcmVzdCh2YWx1ZSwgdGhpcy5yb3VuZFN0ZXAsIHR5cGUsIGZpbHRlcik7XG4gICAgdGhpcy51cGRhdGVGaWx0ZXJQcmljZXModHlwZSwgdmFsdWUsIGZpbHRlciwgdGhpcy5wcmljZUdhcCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcm91bmRUb05lYXJlc3QodmFsdWU6IG51bWJlciwgc3RlcDogbnVtYmVyLCB0eXBlOiAnbWluJyB8ICdtYXgnLCBmaWx0ZXI6IGFueSk6IG51bWJlciB7XG4gICAgbGV0IHJvdW5kZWQgPSBNYXRoLnJvdW5kKHZhbHVlIC8gc3RlcCkgKiBzdGVwO1xuICAgIGlmICh0eXBlID09PSAnbWF4JyAmJiByb3VuZGVkIDwgZmlsdGVyLm1heFByaWNlKSB7XG4gICAgICByb3VuZGVkID0gTWF0aC5jZWlsKHZhbHVlIC8gc3RlcCkgKiBzdGVwO1xuICAgIH1cbiAgICBpZiAodHlwZSA9PT0gJ21pbicgJiYgcm91bmRlZCA+IGZpbHRlci5taW5QcmljZSkge1xuICAgICAgcm91bmRlZCA9IE1hdGguZmxvb3IodmFsdWUgLyBzdGVwKSAqIHN0ZXA7XG4gICAgfVxuICAgIHJldHVybiByb3VuZGVkO1xuICB9XG5cbiAgLyoqXG4gICogQWN0dWFsaXphIGxvcyB2YWxvcmVzIGRlbCBmaWx0cm8gcGVybWl0aWVuZG8gcXVlIHVuIGlucHV0IGVtcHVqZSBhbCBvdHJvLlxuICAqL1xuICBwcm90ZWN0ZWQgdXBkYXRlRmlsdGVyUHJpY2VzKHR5cGU6ICdtaW4nIHwgJ21heCcsIHZhbHVlOiBudW1iZXIsIGZpbHRlcjogYW55LCBwcmljZUdhcDogbnVtYmVyKSB7XG4gICAgY29uc3QgZ2xvYmFsTWluID0gZmlsdGVyLm1pblByaWNlID8/IDA7XG4gICAgY29uc3QgZ2xvYmFsTWF4ID0gZmlsdGVyLm1heFByaWNlO1xuXG4gICAgbGV0IGN1cnJlbnRNaW4gPSBmaWx0ZXIuY3VycmVudE1pblByaWNlID8/IGdsb2JhbE1pbjtcbiAgICBsZXQgY3VycmVudE1heCA9IGZpbHRlci5jdXJyZW50TWF4UHJpY2UgPz8gZ2xvYmFsTWF4O1xuXG4gICAgaWYgKHR5cGUgPT09ICdtaW4nKSB7XG4gICAgICBsZXQgbmV3TWluID0gTWF0aC5taW4oTWF0aC5tYXgodmFsdWUsIGdsb2JhbE1pbiksIGdsb2JhbE1heCk7XG4gICAgICBpZiAobmV3TWluICsgcHJpY2VHYXAgPiBjdXJyZW50TWF4KSB7XG4gICAgICAgIGxldCBuZXdNYXhDYW5kaWRhdGUgPSBuZXdNaW4gKyBwcmljZUdhcDtcbiAgICAgICAgaWYgKG5ld01heENhbmRpZGF0ZSA8PSBnbG9iYWxNYXgpIHtcbiAgICAgICAgICBjdXJyZW50TWF4ID0gbmV3TWF4Q2FuZGlkYXRlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5ld01pbiA9IGdsb2JhbE1heCAtIHByaWNlR2FwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBmaWx0ZXIuY3VycmVudE1pblByaWNlID0gbmV3TWluO1xuICAgICAgZmlsdGVyLmN1cnJlbnRNYXhQcmljZSA9IGN1cnJlbnRNYXg7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnbWF4Jykge1xuICAgICAgbGV0IG5ld01heCA9IE1hdGgubWF4KE1hdGgubWluKHZhbHVlLCBnbG9iYWxNYXgpLCBnbG9iYWxNaW4pO1xuICAgICAgaWYgKG5ld01heCAtIHByaWNlR2FwIDwgY3VycmVudE1pbikge1xuICAgICAgICBsZXQgbmV3TWluQ2FuZGlkYXRlID0gbmV3TWF4IC0gcHJpY2VHYXA7XG4gICAgICAgIGlmIChuZXdNaW5DYW5kaWRhdGUgPj0gZ2xvYmFsTWluKSB7XG4gICAgICAgICAgY3VycmVudE1pbiA9IG5ld01pbkNhbmRpZGF0ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuZXdNYXggPSBnbG9iYWxNaW4gKyBwcmljZUdhcDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZmlsdGVyLmN1cnJlbnRNYXhQcmljZSA9IG5ld01heDtcbiAgICAgIGZpbHRlci5jdXJyZW50TWluUHJpY2UgPSBjdXJyZW50TWluO1xuICAgIH1cbiAgfVxuXG4gIHNjcm9sbFVwID0gKCkgPT4ge1xuICAgIHdpbmRvdy5zY3JvbGwoMCwgMCk7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGdldEZvcm1hdHRlZE1pblByaWNlKGZpbHRlcjogYW55KTogc3RyaW5nIHtcbiAgICBjb25zdCB2YWx1ZSA9IChmaWx0ZXIgaW5zdGFuY2VvZiBQcmljZVJhbmdlRmlsdGVyICYmIGZpbHRlci5jdXJyZW50TWluUHJpY2UgIT0gbnVsbClcbiAgICAgID8gZmlsdGVyLmN1cnJlbnRNaW5QcmljZVxuICAgICAgOiBmaWx0ZXIubWluUHJpY2U7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgZ2V0Rm9ybWF0dGVkTWF4UHJpY2UoZmlsdGVyOiBhbnkpOiBzdHJpbmcge1xuICAgIGNvbnN0IHZhbHVlID0gKGZpbHRlciBpbnN0YW5jZW9mIFByaWNlUmFuZ2VGaWx0ZXIgJiYgZmlsdGVyLmN1cnJlbnRNYXhQcmljZSAhPSBudWxsKVxuICAgICAgPyBmaWx0ZXIuY3VycmVudE1heFByaWNlXG4gICAgICA6IGZpbHRlci5tYXhQcmljZTtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzbGlkZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwic2xpZGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzc1wiIFtuZ1N0eWxlXT1cImdldFNsaWRlclN0eWxlKGZpbHRlcilcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJyYW5nZS1pbnB1dCBkLWZsZXggZ2FwLTJcIj5cbiAgICA8aW5wdXQgI3JhbmdlTWluIHR5cGU9XCJyYW5nZVwiIGNsYXNzPVwicmFuZ2UtbWluXCIgW21pbl09XCJmaWx0ZXIubWluUHJpY2VcIiBbbWF4XT1cImZpbHRlci5tYXhQcmljZVwiXG4gICAgICAgIFt2YWx1ZV09XCJnZXRNaW5WYWx1ZShmaWx0ZXIpXCIgKGlucHV0KT1cIm9uUmFuZ2VDaGFuZ2UoJGV2ZW50LCAnbWluJywgZmlsdGVyKVwiXG4gICAgICAgIChjaGFuZ2UpPVwidXBkYXRlUHJpY2VSYW5nZShmaWx0ZXIpOyBzY3JvbGxVcCgpXCI+XG4gICAgPGlucHV0ICNyYW5nZU1heCB0eXBlPVwicmFuZ2VcIiBjbGFzcz1cInJhbmdlLW1heFwiIFttaW5dPVwiZmlsdGVyLm1pblByaWNlXCIgW21heF09XCJmaWx0ZXIubWF4UHJpY2VcIlxuICAgICAgICBbdmFsdWVdPVwiZ2V0TWF4VmFsdWUoZmlsdGVyKVwiIChpbnB1dCk9XCJvblJhbmdlQ2hhbmdlKCRldmVudCwgJ21heCcsIGZpbHRlcilcIlxuICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZVByaWNlUmFuZ2UoZmlsdGVyKTsgc2Nyb2xsVXAoKVwiPlxuPC9kaXY+XG48IS0tIHByZWNpb3MgTcOtbmltbyAvIE3DoXhpbW8gLS0+XG48ZGl2IGNsYXNzPVwicHJpY2UtY29udGFpbmVyIG10LTJcIj5cbiAgICA8ZGl2IGNsYXNzPVwicHJpY2UtbGFiZWwtd3JhcHBlclwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInByaWNlLWxhYmVsXCI+TcOtbmltbzo8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicHJpY2UtdmFsdWVcIj5cbiAgICAgICAgICAgIHt7IChnZXRGb3JtYXR0ZWRNaW5QcmljZShmaWx0ZXIpIHwgZWNDdXJyZW5jeVN5bWJvbCkgfHwgJzAnIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicHJpY2UtbGFiZWwtd3JhcHBlclwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInByaWNlLWxhYmVsXCI+TcOheGltbzo8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicHJpY2UtdmFsdWUgcHJpY2UtdmFsdWUtcmlnaHRcIj5cbiAgICAgICAgICAgIHt7IGdldEZvcm1hdHRlZE1heFByaWNlKGZpbHRlcikgfCBlY0N1cnJlbmN5U3ltYm9sIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpY2UtcmFuZ2UtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1jb21wb25lbnRzL3ByaWNlLXJhbmdlLWZpbHRlci9wcmljZS1yYW5nZS1maWx0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvcHJpY2UtcmFuZ2UtZmlsdGVyL3ByaWNlLXJhbmdlLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFVekQsTUFBTSxPQUFPLHlCQUF5QjtJQUU1QixlQUFlLEdBQW1CLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN6RCxNQUFNLEdBQVcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLEtBQUssR0FBbUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRXZELFFBQVEsR0FBRyxDQUFDLENBQUM7SUFDYixTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBRUwsTUFBTSxDQUFvQjtJQUN6QixZQUFZLEdB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Q0FBQztJQUVELG9CQUFvQixDQUFDLE1BQVc7UUFDOUIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFNLFlBQVksZ0JBQWdCLElBQUksTUFBTSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUM7WUFDbEYsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxlQUFlO1lBQ3hCLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ3BCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzt3R0F0SlUseUJBQXlCOzRGQUF6Qix5QkFBeUIsMkpDZnRDLG8xQ0E0Qk0sOG5ERGxCTSxvQkFBb0Isd0RBQUUsWUFBWTs7NEZBS2pDLHlCQUF5QjtrQkFSckMsU0FBUzsrQkFDRSx3QkFBd0IsY0FDdEIsSUFBSSxXQUNQLENBQUMsb0JBQW9CLEVBQUUsWUFBWSxDQUFDLG1CQUc1Qix1QkFBdUIsQ0FBQyxNQUFNOzhCQVd0QyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFByaWNlUmFuZ2VGaWx0ZXIgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2ZpbHRlcnMvcHJpY2VfcmFuZ2UtZmlsdGVyJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRWNDdXJyZW5jeVN5bWJvbFBpcGUgfSBmcm9tICcuLi8uLi9lYy1waXBlJztcclxuaW1wb3J0IHsgRmlsdGVyc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFJvdXRlciwgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItcHJpY2UtcmFuZ2UtZmlsdGVyJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtFY0N1cnJlbmN5U3ltYm9sUGlwZSwgQ29tbW9uTW9kdWxlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vcHJpY2UtcmFuZ2UtZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vcHJpY2UtcmFuZ2UtZmlsdGVyLmNvbXBvbmVudC5zY3NzJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJpY2VSYW5nZUZpbHRlckNvbXBvbmVudCB7XHJcblxyXG4gIHByaXZhdGUgX2ZpbHRlcnNTZXJ2aWNlOiBGaWx0ZXJzU2VydmljZSA9IGluamVjdChGaWx0ZXJzU2VydmljZSk7XHJcbiAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xyXG4gIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcclxuXHJcbiAgcHJpY2VHYXAgPSAxO1xyXG4gIHJvdW5kU3RlcCA9IDU7XHJcblxyXG4gIEBJbnB1dCgpIGZpbHRlciE6IFByaWNlUmFuZ2VGaWx0ZXI7XHJcbiAgQE91dHB1dCgpIHJhbmdlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBtaW46IG51bWJlcjsgbWF4OiBudW1iZXIgfT4oKTtcclxuXHJcbiAgZ2V0U2xpZGVyU3R5bGUoZmlsdGVyOiBhbnkpOiB7IFtrbGFzczogc3RyaW5nXTogc3RyaW5nIH0ge1xyXG4gICAgaWYgKCEoZmlsdGVyIGluc3RhbmNlb2YgUHJpY2VSYW5nZUZpbHRlcikpIHJldHVybiB7IGxlZnQ6ICcwJScsIHJpZ2h0OiAnMCUnIH07XHJcblxyXG4gICAgY29uc3QgbGVmdCA9IHRoaXMuY2FsY3VsYXRlTGVmdFBlcmNlbnRhZ2UoZmlsdGVyKTtcclxuICAgIGNvbnN0IHJpZ2h0ID0gdGhpcy5jYWxjdWxhdGVSaWdodFBlcmNlbnRhZ2UoZmlsdGVyKTtcclxuICAgIHJldHVybiB7IGxlZnQ6IGAke2xlZnR9JWAsIHJpZ2h0OiBgJHtyaWdodH0lYCB9O1xyXG4gIH1cclxuXHJcbiAgLy8gTcOpdG9kb3MgcGFyYSBhY3R1YWxpemFyIGxhIGJhcnJhIGRlbCBmaWx0cm8gcG9yIHByZWNpb1xyXG4gIGNhbGN1bGF0ZUxlZnRQZXJjZW50YWdlKGZpbHRlcjogYW55KTogbnVtYmVyIHtcclxuICAgIGlmICghKGZpbHRlciBpbnN0YW5jZW9mIFByaWNlUmFuZ2VGaWx0ZXIpKSByZXR1cm4gMDtcclxuXHJcbiAgICBjb25zdCBtaW4gPSBmaWx0ZXIubWluUHJpY2U7XHJcbiAgICBjb25zdCBtYXggPSBmaWx0ZXIubWF4UHJpY2U7XHJcbiAgICBjb25zdCBjdXJyZW50TWluID0gZmlsdGVyLmN1cnJlbnRNaW5QcmljZSA/PyBtaW47XHJcblxyXG4gICAgY29uc3QgY2xhbXBlZE1pbiA9IE1hdGgubWF4KG1pbiwgTWF0aC5taW4oY3VycmVudE1pbiwgbWF4KSk7XHJcbiAgICByZXR1cm4gTWF0aC5tYXgoMCwgTWF0aC5taW4oKChjbGFtcGVkTWluIC0gbWluKSAvIChtYXggLSBtaW4pKSAqIDEwMCwgMTAwKSk7XHJcbiAgfVxyXG5cclxuICBjYWxjdWxhdGVSaWdodFBlcmNlbnRhZ2UoZmlsdGVyOiBhbnkpOiBudW1iZXIge1xyXG4gICAgaWYgKCEoZmlsdGVyIGluc3RhbmNlb2YgUHJpY2VSYW5nZUZpbHRlcikpIHJldHVybiAwO1xyXG5cclxuICAgIGNvbnN0IG1pbiA9IGZpbHRlci5taW5QcmljZTtcclxuICAgIGNvbnN0IG1heCA9IGZpbHRlci5tYXhQcmljZTtcclxuICAgIGNvbnN0IGN1cnJlbnRNYXggPSBmaWx0ZXIuY3VycmVudE1heFByaWNlID8/IG1heDtcclxuXHJcbiAgICBjb25zdCBjbGFtcGVkTWF4ID0gTWF0aC5tYXgobWluLCBNYXRoLm1pbihjdXJyZW50TWF4LCBtYXgpKTtcclxuICAgIHJldHVybiBNYXRoLm1heCgwLCBNYXRoLm1pbigxMDAgLSAoKGNsYW1wZWRNYXggLSBtaW4pIC8gKG1heCAtIG1pbikpICogMTAwLCAxMDApKTtcclxuICB9XHJcblxyXG4gIC8vIE3DqXRvZG8gcGFyYSBhY3R1YWxpemFyIGxvcyB2YWxvcmVzIGRlIHByZWNpbyBzZWxlY2Npb25hZG9zXHJcbiAgdXBkYXRlUHJpY2VSYW5nZShmaWx0ZXI6IGFueSkge1xyXG4gICAgaWYgKCEoZmlsdGVyIGluc3RhbmNlb2YgUHJpY2VSYW5nZUZpbHRlcikpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBtaW4gPSBmaWx0ZXIuY3VycmVudE1pblByaWNlID8/IGZpbHRlci5taW5QcmljZTtcclxuICAgIGNvbnN0IG1heCA9IGZpbHRlci5jdXJyZW50TWF4UHJpY2UgPz8gZmlsdGVyLm1heFByaWNlO1xyXG5cclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7XHJcbiAgICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGUsXHJcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7XHJcbiAgICAgICAgcHJpY2VfbWluOiBtaW4gIT09IGZpbHRlci5taW5QcmljZSA/IG1pbiA6IG51bGwsXHJcbiAgICAgICAgcHJpY2VfbWF4OiBtYXggIT09IGZpbHRlci5tYXhQcmljZSA/IG1heCA6IG51bGwsXHJcbiAgICAgICAgcGFnZTogbnVsbCxcclxuICAgICAgfSxcclxuICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJ1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRNaW5WYWx1ZShmaWx0ZXI6IGFueSk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gKGZpbHRlciBpbnN0YW5jZW9mIFByaWNlUmFuZ2VGaWx0ZXIgJiYgZmlsdGVyLmN1cnJlbnRNaW5QcmljZSAhPSBudWxsKVxyXG4gICAgICA/IGZpbHRlci5jdXJyZW50TWluUHJpY2VcclxuICAgICAgOiBmaWx0ZXIubWluUHJpY2U7XHJcbiAgfVxyXG5cclxuICBnZXRNYXhWYWx1ZShmaWx0ZXI6IGFueSk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gKGZpbHRlciBpbnN0YW5jZW9mIFByaWNlUmFuZ2VGaWx0ZXIgJiYgZmlsdGVyLmN1cnJlbnRNYXhQcmljZSAhPSBudWxsKVxyXG4gICAgICA/IGZpbHRlci5jdXJyZW50TWF4UHJpY2VcclxuICAgICAgOiBmaWx0ZXIubWF4UHJpY2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAqIFJlZG9uZGVhIGFsIG3Dumx0aXBsbyBkZSAnc3RlcCcgcmVzcGV0YW5kbyBlbCByZWRvbmRlbyBlbnRlcm86XHJcbiAgKiAtIE3DrW5pbW86IHJlZG9uZGVhIGhhY2lhIGFiYWpvLlxyXG4gICogLSBNw6F4aW1vOiByZWRvbmRlYSBoYWNpYSBhcnJpYmEuXHJcbiAgKi9cclxuICBvblJhbmdlQ2hhbmdlKGV2ZW50OiBFdmVudCwgdHlwZTogJ21pbicgfCAnbWF4JywgZmlsdGVyOiBhbnkpIHtcclxuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICBsZXQgdmFsdWUgPSBwYXJzZUZsb2F0KGlucHV0LnZhbHVlKTtcclxuICAgIHZhbHVlID0gdGhpcy5yb3VuZFRvTmVhcmVzdCh2YWx1ZSwgdGhpcy5yb3VuZFN0ZXAsIHR5cGUsIGZpbHRlcik7XHJcbiAgICB0aGlzLnVwZGF0ZUZpbHRlclByaWNlcyh0eXBlLCB2YWx1ZSwgZmlsdGVyLCB0aGlzLnByaWNlR2FwKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCByb3VuZFRvTmVhcmVzdCh2YWx1ZTogbnVtYmVyLCBzdGVwOiBudW1iZXIsIHR5cGU6ICdtaW4nIHwgJ21heCcsIGZpbHRlcjogYW55KTogbnVtYmVyIHtcclxuICAgIGxldCByb3VuZGVkID0gTWF0aC5yb3VuZCh2YWx1ZSAvIHN0ZXApICogc3RlcDtcclxuICAgIGlmICh0eXBlID09PSAnbWF4JyAmJiByb3VuZGVkIDwgZmlsdGVyLm1heFByaWNlKSB7XHJcbiAgICAgIHJvdW5kZWQgPSBNYXRoLmNlaWwodmFsdWUgLyBzdGVwKSAqIHN0ZXA7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZSA9PT0gJ21pbicgJiYgcm91bmRlZCA+IGZpbHRlci5taW5QcmljZSkge1xyXG4gICAgICByb3VuZGVkID0gTWF0aC5mbG9vcih2YWx1ZSAvIHN0ZXApICogc3RlcDtcclxuICAgIH1cclxuICAgIHJldHVybiByb3VuZGVkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgKiBBY3R1YWxpemEgbG9zIHZhbG9yZXMgZGVsIGZpbHRybyBwZXJtaXRpZW5kbyBxdWUgdW4gaW5wdXQgZW1wdWplIGFsIG90cm8uXHJcbiAgKi9cclxuICBwcm90ZWN0ZWQgdXBkYXRlRmlsdGVyUHJpY2VzKHR5cGU6ICdtaW4nIHwgJ21heCcsIHZhbHVlOiBudW1iZXIsIGZpbHRlcjogYW55LCBwcmljZUdhcDogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBnbG9iYWxNaW4gPSBmaWx0ZXIubWluUHJpY2UgPz8gMDtcclxuICAgIGNvbnN0IGdsb2JhbE1heCA9IGZpbHRlci5tYXhQcmljZTtcclxuXHJcbiAgICBsZXQgY3VycmVudE1pbiA9IGZpbHRlci5jdXJyZW50TWluUHJpY2UgPz8gZ2xvYmFsTWluO1xyXG4gICAgbGV0IGN1cnJlbnRNYXggPSBmaWx0ZXIuY3VycmVudE1heFByaWNlID8/IGdsb2JhbE1heDtcclxuXHJcbiAgICBpZiAodHlwZSA9PT0gJ21pbicpIHtcclxuICAgICAgbGV0IG5ld01pbiA9IE1hdGgubWluKE1hdGgubWF4KHZhbHVlLCBnbG9iYWxNaW4pLCBnbG9iYWxNYXgpO1xyXG4gICAgICBpZiAobmV3TWluICsgcHJpY2VHYXAgPiBjdXJyZW50TWF4KSB7XHJcbiAgICAgICAgbGV0IG5ld01heENhbmRpZGF0ZSA9IG5ld01pbiArIHByaWNlR2FwO1xyXG4gICAgICAgIGlmIChuZXdNYXhDYW5kaWRhdGUgPD0gZ2xvYmFsTWF4KSB7XHJcbiAgICAgICAgICBjdXJyZW50TWF4ID0gbmV3TWF4Q2FuZGlkYXRlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBuZXdNaW4gPSBnbG9iYWxNYXggLSBwcmljZUdhcDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZmlsdGVyLmN1cnJlbnRNaW5QcmljZSA9IG5ld01pbjtcclxuICAgICAgZmlsdGVyLmN1cnJlbnRNYXhQcmljZSA9IGN1cnJlbnRNYXg7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdtYXgnKSB7XHJcbiAgICAgIGxldCBuZXdNYXggPSBNYXRoLm1heChNYXRoLm1pbih2YWx1ZSwgZ2xvYmFsTWF4KSwgZ2xvYmFsTWluKTtcclxuICAgICAgaWYgKG5ld01heCAtIHByaWNlR2FwIDwgY3VycmVudE1pbikge1xyXG4gICAgICAgIGxldCBuZXdNaW5DYW5kaWRhdGUgPSBuZXdNYXggLSBwcmljZUdhcDtcclxuICAgICAgICBpZiAobmV3TWluQ2FuZGlkYXRlID49IGdsb2JhbE1pbikge1xyXG4gICAgICAgICAgY3VycmVudE1pbiA9IG5ld01pbkNhbmRpZGF0ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbmV3TWF4ID0gZ2xvYmFsTWluICsgcHJpY2VHYXA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGZpbHRlci5jdXJyZW50TWF4UHJpY2UgPSBuZXdNYXg7XHJcbiAgICAgIGZpbHRlci5jdXJyZW50TWluUHJpY2UgPSBjdXJyZW50TWluO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2Nyb2xsVXAgPSAoKSA9PiB7XHJcbiAgICB3aW5kb3cuc2Nyb2xsKDAsIDApO1xyXG4gICAgcmV0dXJuIHRydWVcclxuICB9XHJcblxyXG4gIGdldEZvcm1hdHRlZE1pblByaWNlKGZpbHRlcjogYW55KTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHZhbHVlID0gKGZpbHRlciBpbnN0YW5jZW9mIFByaWNlUmFuZ2VGaWx0ZXIgJiYgZmlsdGVyLmN1cnJlbnRNaW5QcmljZSAhPSBudWxsKVxyXG4gICAgICA/IGZpbHRlci5jdXJyZW50TWluUHJpY2VcclxuICAgICAgOiBmaWx0ZXIubWluUHJpY2U7XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXRGb3JtYXR0ZWRNYXhQcmljZShmaWx0ZXI6IGFueSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IChmaWx0ZXIgaW5zdGFuY2VvZiBQcmljZVJhbmdlRmlsdGVyICYmIGZpbHRlci5jdXJyZW50TWF4UHJpY2UgIT0gbnVsbClcclxuICAgICAgPyBmaWx0ZXIuY3VycmVudE1heFByaWNlXHJcbiAgICAgIDogZmlsdGVyLm1heFByaWNlO1xyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwic2xpZGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2xpZGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzXCIgW25nU3R5bGVdPVwiZ2V0U2xpZGVyU3R5bGUoZmlsdGVyKVwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwicmFuZ2UtaW5wdXQgZC1mbGV4IGdhcC0yXCI+XHJcbiAgICA8aW5wdXQgI3JhbmdlTWluIHR5cGU9XCJyYW5nZVwiIGNsYXNzPVwicmFuZ2UtbWluXCIgW21pbl09XCJmaWx0ZXIubWluUHJpY2VcIiBbbWF4XT1cImZpbHRlci5tYXhQcmljZVwiXHJcbiAgICAgICAgW3ZhbHVlXT1cImdldE1pblZhbHVlKGZpbHRlcilcIiAoaW5wdXQpPVwib25SYW5nZUNoYW5nZSgkZXZlbnQsICdtaW4nLCBmaWx0ZXIpXCJcclxuICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZVByaWNlUmFuZ2UoZmlsdGVyKTsgc2Nyb2xsVXAoKVwiPlxyXG4gICAgPGlucHV0ICNyYW5nZU1heCB0eXBlPVwicmFuZ2VcIiBjbGFzcz1cInJhbmdlLW1heFwiIFttaW5dPVwiZmlsdGVyLm1pblByaWNlXCIgW21heF09XCJmaWx0ZXIubWF4UHJpY2VcIlxyXG4gICAgICAgIFt2YWx1ZV09XCJnZXRNYXhWYWx1ZShmaWx0ZXIpXCIgKGlucHV0KT1cIm9uUmFuZ2VDaGFuZ2UoJGV2ZW50LCAnbWF4JywgZmlsdGVyKVwiXHJcbiAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVQcmljZVJhbmdlKGZpbHRlcik7IHNjcm9sbFVwKClcIj5cclxuPC9kaXY+XHJcbjwhLS0gcHJlY2lvcyBNw61uaW1vIC8gTcOheGltbyAtLT5cclxuPGRpdiBjbGFzcz1cInByaWNlLWNvbnRhaW5lciBtdC0yXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicHJpY2UtbGFiZWwtd3JhcHBlclwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwicHJpY2UtbGFiZWxcIj5Nw61uaW1vOjwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInByaWNlLXZhbHVlXCI+XHJcbiAgICAgICAgICAgIHt7IChnZXRGb3JtYXR0ZWRNaW5QcmljZShmaWx0ZXIpIHwgZWNDdXJyZW5jeVN5bWJvbCkgfHwgJzAnIH19XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicHJpY2UtbGFiZWwtd3JhcHBlclwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwicHJpY2UtbGFiZWxcIj5Nw6F4aW1vOjwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInByaWNlLXZhbHVlIHByaWNlLXZhbHVlLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgIHt7IGdldEZvcm1hdHRlZE1heFByaWNlKGZpbHRlcikgfCBlY0N1cnJlbmN5U3ltYm9sIH19XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|