ng-easycommerce-v18 0.3.9 → 0.3.11-beta.1
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 +76 -74
- package/assets/decidirFormEc.html +514 -514
- package/assets/ec-i18n/ct.json +281 -281
- package/assets/ec-i18n/en.json +0 -0
- package/assets/ec-i18n/es.json +429 -429
- package/assets/ec-i18n/fr.json +0 -0
- package/assets/ec-i18n/gl.json +281 -281
- package/assets/ec-i18n/pr.json +281 -281
- 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 +27 -2
- 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 +7 -5
- 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 +3 -3
- 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 +3 -3
- 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 +36 -25
- 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 +3 -3
- package/esm2022/lib/ec-components/related-products-ec/related-products-ec.component.mjs +8 -6
- 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 +6 -4
- 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-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 +4 -2
- package/esm2022/lib/ec-services/analytics/google-analytics.service.mjs +4 -2
- 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 +1 -1
- 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 +13 -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 +27 -3
- 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 +1 -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 +242 -161
- package/fesm2022/ng-easycommerce-v18.mjs.map +1 -1
- package/lib/ec-components/header-ec/header-ec.component.d.ts +1 -0
- package/lib/ec-services/form.service.d.ts +6 -0
- package/lib/ec-services/options.service.d.ts +4 -0
- package/package.json +1 -1
|
@@ -214,4 +214,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
214
214
|
type: Component,
|
|
215
215
|
args: [{ selector: 'app-product-detail-ec', standalone: true, imports: [VariantsEcComponent], template: "" }]
|
|
216
216
|
}], ctorParameters: () => [] });
|
|
217
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvcHJvZHVjdC1kZXRhaWwtZWMvcHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvcHJvZHVjdC1kZXRhaWwtZWMvcHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWtCLE1BQU0sRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxZQUFZLEVBQVksTUFBTSwyQkFBMkIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUd2RCxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUN6QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1C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LFNBQWM7UUFDNUMsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssZ0JBQWdCO1FBQ3RCLCtEQUErRDtRQUMvRCxJQUFJLE9BQVEsSUFBWSxDQUFDLFNBQVMsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNqRCxJQUFZLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDNUIsQ0FBQztRQUVELDhDQUE4QztRQUM5QyxJQUFJLFNBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNyQixJQUFZLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQzt3R0FsT1Usd0JBQXdCOzRGQUF4Qix3QkFBd0IsaUZDMUJyQyxFQUFBOzs0RkQwQmEsd0JBQXdCO2tCQVBwQyxTQUFTOytCQUNFLHVCQUF1QixjQUNyQixJQUFJLFdBQ1AsQ0FBQyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBJbmplY3RvciwgT25Jbml0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBhcmFtZXRlcnNTZXJ2aWNlLCBDaGFubmVsU2VydmljZSwgQ2FydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBQYXJhbWV0ZXIgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBXcml0YWJsZVNpZ25hbCwgc2lnbmFsLCBQTEFURk9STV9JRCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNZXRhLCBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBQcm9kdWN0RGV0YWlsU2VydmljZSwgUHJvZHVjdHNTZXJ2aWNlLCBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBDb3JlQ29uc3RhbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFByb2R1Y3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCAqIGFzIGhlIGZyb20gJ2hlJztcbmltcG9ydCB7IE9wdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWMtc2VydmljZXMnO1xuaW1wb3J0IHsgVmFyaWFudHNFY0NvbXBvbmVudCB9IGZyb20gJy4uL3ZhcmlhbnRzLWVjL3ZhcmlhbnRzLWVjLmNvbXBvbmVudCc7XG5cblxuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1wcm9kdWN0LWRldGFpbC1lYycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtWYXJpYW50c0VjQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2R1Y3QtZGV0YWlsLWVjLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdWN0RGV0YWlsRWNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX2NhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSA9IGluamVjdChDYXJ0U2VydmljZSlcbiAgcHJpdmF0ZSBfb3B0aW9uc1NlcnZpY2U6IE9wdGlvbnNTZXJ2aWNlID0gaW5qZWN0KE9wdGlvbnNTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBfcHJvZHVjdERldGFpbFNlcnZpY2U6IFByb2R1Y3REZXRhaWxTZXJ2aWNlID0gaW5qZWN0KFByb2R1Y3REZXRhaWxTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBfcHJvZHVjdFNlcnZpY2U6IFByb2R1Y3RzU2VydmljZSA9IGluamVjdChQcm9kdWN0c1NlcnZpY2UpO1xuICBwcml2YXRlIF9hY3RpdmVkUm91dGU6IEFjdGl2YXRlZFJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgcHJpdmF0ZSBfZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIgPSBpbmplY3QoRG9tU2FuaXRpemVyKTtcbiAgcHJpdmF0ZSBfY29uc3RzOiBDb3JlQ29uc3RhbnRzU2VydmljZSA9IGluamVjdChDb3JlQ29uc3RhbnRzU2VydmljZSk7XG4gIHByaXZhdGUgX3RvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlID0gaW5qZWN0KFRvYXN0U2VydmljZSk7XG4gIHByaXZhdGUgcGFyYW1ldGVyc1NlcnZpY2UgPSBpbmplY3QoUGFyYW1ldGVyc1NlcnZpY2UpO1xuICBwdWJsaWMgaW5qZWN0b3I6IEluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgcHJpdmF0ZSBfbWV0YTogTWV0YSA9IGluamVjdChNZXRhKTtcbiAgcHJpdmF0ZSBfdGl0bGU6IFRpdGxlID0gaW5qZWN0KFRpdGxlKTtcbiAgcHJpdmF0ZSBfbG9jYXRpb246IExvY2F0aW9uID0gaW5qZWN0KExvY2F0aW9uKTtcbiAgcHVibGljIHByb2R1Y3QkOiBPYnNlcnZhYmxlPFByb2R1Y3QgfCBudWxsPiA9IHRoaXMuX3Byb2R1Y3REZXRhaWxTZXJ2aWNlLnByb2R1Y3QkO1xuICBwdWJsaWMgb3B0aW9ucyQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuX3Byb2R1Y3REZXRhaWxTZXJ2aWNlLm9wdGlvbnMkO1xuICBwdWJsaWMgZGF0YSQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuX3Byb2R1Y3REZXRhaWxTZXJ2aWNlLmFzc29jaWF0ZWREYXRhJDtcbiAgcHJpdmF0ZSByb3V0ZVN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG4gIHByaXZhdGUgY3VycmVudFByb2R1Y3RJZD86IHN0cmluZztcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuXG5cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJvdXRlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIG1lZGlhVXJsID0gdGhpcy5fY29uc3RzLm1lZGlhVXJsKCk7XG4gIHB1YmxpYyBjb2RlOiBzdHJpbmcgPSAnJztcbiAgcHVibGljIHNob3dGb3JtQ29udGFjdCA9IGZhbHNlO1xuICBwdWJsaWMgc2hvd1Jldmlld3M6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHJlc2V0OiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBzdWNjZXNzOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBjYXRlZ29yaWVzOiBhbnlbXSA9IFtdO1xuICBwdWJsaWMgc2hvd1ByaWNlc09ubHlUb0xvZ2dlZFVzZXJzOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBoaWRlUHJpY2VzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIHF1YW50aXR5OiBXcml0YWJsZVNpZ25hbDxudW1iZXI+ID0gc2lnbmFsKDEpO1xuICBwdWJsaWMgaXNBZGRpbmdUb0NhcnQ6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcbiAgcHVibGljIHBhcmFtZXRlcnMkOiBPYnNlcnZhYmxlPFBhcmFtZXRlcltdIHwgbnVsbD4gPSB0aGlzLnBhcmFtZXRlcnNTZXJ2aWNlLmdldFBhcmFtZXRlcnMoKTtcbiAgcHVibGljIGhhc1BhcmFtcyA9IHRoaXMucGFyYW1ldGVyc1NlcnZpY2UuaGFzUGFyYW1zXG4gIHB1YmxpYyBjcmVkaXRBY2NvdW50U2hvd1ByaWNlczogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xuICAvLyBBZ3JlZ2FyIGVzdGEgcHJvcGllZGFkIGFsIGluaWNpbyBkZSBsYSBjbGFzZVxuICBwcml2YXRlIHByb2R1Y3RTaWduYWwgPSBzaWduYWw8UHJvZHVjdCB8IG51bGw+KG51bGwpO1xuXG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5fYWN0aXZlZFJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocXVlcnlQYXJhbXMgPT4ge1xuICAgICAgdGhpcy5jb2RlID0gcXVlcnlQYXJhbXNbXCJpZFwiXTtcbiAgICAgIHRoaXMuX3Byb2R1Y3REZXRhaWxTZXJ2aWNlLmxvYWRQcm9kdWN0KHRoaXMuY29kZSk7XG4gICAgfSk7XG4gICAgdGhpcy5fYWN0aXZlZFJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocXVlcnlQYXJhbXMgPT4ge1xuICAgICAgdGhpcy5jb2RlID0gcXVlcnlQYXJhbXNbXCJpZFwiXTtcbiAgICAgIHRoaXMuX3Byb2R1Y3REZXRhaWxTZXJ2aWNlLmxvYWRQcm9kdWN0KHRoaXMuY29kZSk7XG4gICAgfSlcbiAgICB0aGlzLmluamVjdG9yLmdldChDaGFubmVsU2VydmljZSkuY2hhbm5lbCQuc3Vic2NyaWJlKGNoYW5uZWwgPT4ge1xuICAgICAgdGhpcy5zaG93UmV2aWV3cyA9IGNoYW5uZWwuc2hvd1Jldmlld3M7XG4gICAgICB0aGlzLnNob3dQcmljZXNPbmx5VG9Mb2dnZWRVc2VycyA9ICEhY2hhbm5lbC5zaG93UHJpY2VzT25seVRvTG9nZ2VkVXNlcnM7XG4gICAgICB0aGlzLmhpZGVQcmljZXMgPSAhIWNoYW5uZWwuaGlkZVByaWNlcztcbiAgICB9KTtcbiAgICB0aGlzLl9vcHRpb25zU2VydmljZS5nZXRDYXRlZ29yaWVzKCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLmNhdGVnb3JpZXMgPSByZXM7XG4gICAgfVxuICAgICk7XG4gICAgdGhpcy5fY2FydFNlcnZpY2Uuc2hvd1ByaWNlJC5zdWJzY3JpYmUoKHNob3dQcmljZSkgPT4ge1xuICAgICAgdGhpcy5jcmVkaXRBY2NvdW50U2hvd1ByaWNlcyA9IHNob3dQcmljZTtcbiAgICB9KTtcblxuICAgIHRoaXMucHJvZHVjdCQuc3Vic2NyaWJlKHByb2R1Y3QgPT4ge1xuICAgICAgdGhpcy5wcm9kdWN0U2lnbmFsLnNldChwcm9kdWN0KTtcbiAgICB9KTtcblxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5wcm9kdWN0JC5zdWJzY3JpYmUocHJvZHVjdCA9PiB7XG4gICAgICBpZiAocHJvZHVjdCkge1xuICAgICAgICB0aGlzLnVwZGF0ZU1ldGFUYWdzKHByb2R1Y3QpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIC8vIFN1c2NyaWJpcnNlIGEgbG9zIGNhbWJpb3MgZGUgcGFyw6FtZXRyb3MgZGUgbGEgcnV0YVxuICAgIHRoaXMucm91dGVTdWJzY3JpcHRpb24gPSB0aGlzLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcbiAgICAgIGNvbnN0IG5ld1Byb2R1Y3RJZCA9IHBhcmFtc1snaWQnXTtcbiAgICAgIGlmIChuZXdQcm9kdWN0SWQgJiYgbmV3UHJvZHVjdElkICE9PSB0aGlzLmN1cnJlbnRQcm9kdWN0SWQpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50UHJvZHVjdElkID0gbmV3UHJvZHVjdElkO1xuXG4gICAgICAgIC8vIFJlc2V0ZWFyIGVsIGVzdGFkbyBkZWwgbW9kYWwgZGUgcmVzZcOxYXMgY3VhbmRvIGNhbWJpZSBlbCBwcm9kdWN0b1xuICAgICAgICB0aGlzLnJlc2V0UmV2aWV3TW9kYWwoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICB9XG5cbiAgdXBkYXRlTWV0YVRhZ3MocHJvZHVjdDogUHJvZHVjdCkge1xuICAgIGNvbnN0IGRlc2NyaXBjaW9uTGltcGlhID0gaGUuZGVjb2RlKHByb2R1Y3QuZGVzY3JpcHRpb24gfHwgJycpLnJlcGxhY2UoLzxbXj5dKj4vZywgJyAnKS5yZXBsYWNlKC9cXHMrL2csICcgJykudHJpbSgpO1xuICAgIGNvbnN0IGN1cnJlbnRVcmwgPSB0aGlzLl9jb25zdHMuZ2V0RnJvbnRlbmRVcmwoKSArIHRoaXMuX3JvdXRlci51cmw7ICAvLyBVUkwgYWJzb2x1dGEgZGVsIHByb2R1Y3RvXG4gICAgY29uc3QgaW1hZ2VVcmwgPSB0aGlzLl9jb25zdHMuZ2V0QWJzb2x1dGVJbWFnZVVybChBcnJheS5pc0FycmF5KHByb2R1Y3QucGljdHVyZXNkZWZhdWx0KSA/IHByb2R1Y3QucGljdHVyZXNkZWZhdWx0WzBdIDogcHJvZHVjdC5waWN0dXJlc2RlZmF1bHQpO1xuXG5cbiAgICB0aGlzLl9tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6dGl0bGUnLCBjb250ZW50OiBwcm9kdWN0Lm5hbWUgfHwgJycgfSk7XG4gICAgdGhpcy5fbWV0YS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOmRlc2NyaXB0aW9uJywgY29udGVudDogZGVzY3JpcGNpb25MaW1waWEgfHwgJycgfSk7XG4gICAgdGhpcy5fbWV0YS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOmltYWdlJywgY29udGVudDogaW1hZ2VVcmwgfHwgJycgfSk7XG4gICAgLy8gdGhpcy5fbWV0YS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOnVybCcsIGNvbnRlbnQ6IGN1cnJlbnRVcmwgfSk7XG4gICAgdGhpcy5fbWV0YS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOnR5cGUnLCBjb250ZW50OiAncHJvZHVjdCcgfSk7XG4gIH1cbiAgZGVjb2RlSHRtbChodG1sOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHR4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RleHRhcmVhJyk7XG4gICAgdHh0LmlubmVySFRNTCA9IGh0bWw7XG4gICAgcmV0dXJuIHR4dC52YWx1ZTtcblxuICB9XG4gIHNhbml0aXplZEh0bWwoaHRtbDogc3RyaW5nKTogU2FmZUh0bWwge1xuICAgIGNvbnN0IGRlY29kZWRIdG1sID0gdGhpcy5kZWNvZGVIdG1sKGh0bWwpO1xuICAgIHJldHVybiB0aGlzLl9kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoZGVjb2RlZEh0bWwpO1xuICB9XG5cbiAgYWRkVG9DYXJ0KCkge1xuICAgIGlmICh0aGlzLmlzQWRkaW5nVG9DYXJ0KCkgfHwgdGhpcy5xdWFudGl0eSgpIDw9IDApIHJldHVybjtcblxuICAgIHRoaXMuaXNBZGRpbmdUb0NhcnQuc2V0KHRydWUpO1xuICAgIHRoaXMuX3Byb2R1Y3REZXRhaWxTZXJ2aWNlLmFkZFRvQ2FydCh0aGlzLnF1YW50aXR5KCkpO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmlzQWRkaW5nVG9DYXJ0LnNldChmYWxzZSk7XG4gICAgfSwgMjAwMCk7XG4gIH1cblxuICBwbHVzKHN0b2NrPzogbnVtYmVyLCBtdWx0aXBsZVF1YW50aXR5PzogbnVtYmVyKSB7XG4gIGNvbnN0IGN1cnJlbnQgPSBOdW1iZXIodGhpcy5xdWFudGl0eSgpKTsgLy8gPC0tIGZ1ZXJ6YSBhIG7Dum1lcm9cbiAgaWYgKG11bHRpcGxlUXVhbnRpdHkgJiYgbXVsdGlwbGVRdWFudGl0eSA+IDApIHtcbiAgICBzdG9ja1xuICAgICAgPyAoY3VycmVudCA8IHN0b2NrXG4gICAgICAgICAgPyB0aGlzLnF1YW50aXR5LnNldChjdXJyZW50ICsgbXVsdGlwbGVRdWFudGl0eSlcbiAgICAgICAgICA6IHRoaXMuX3RvYXN0U2VydmljZS5zaG93KCdvdXQtb2Ytc3RvY2stYWN0dWFsbHknKSlcbiAgICAgIDogdGhpcy5xdWFudGl0eS5zZXQoY3VycmVudCArIG11bHRpcGxlUXVhbnRpdHkpO1xuICB9IGVsc2Uge1xuICAgIHN0b2NrXG4gICAgICA/IChjdXJyZW50IDwgc3RvY2tcbiAgICAgICAgICA/IHRoaXMucXVhbnRpdHkuc2V0KGN1cnJlbnQgKyAxKVxuICAgICAgICAgIDogdGhpcy5fdG9hc3RTZXJ2aWNlLnNob3coJ291dC1vZi1zdG9jay1hY3R1YWxseScpKVxuICAgICAgOiB0aGlzLnF1YW50aXR5LnNldChjdXJyZW50ICsgMSk7XG4gIH1cbn1cblxubGVzcyhtdWx0aXBsZVF1YW50aXR5PzogbnVtYmVyKSB7XG4gIGNvbnN0IGN1cnJlbnQgPSBOdW1iZXIodGhpcy5xdWFudGl0eSgpKTsgLy8gPC0tIGZ1ZXJ6YSBhIG7Dum1lcm9cbiAgaWYgKG11bHRpcGxlUXVhbnRpdHkgJiYgbXVsdGlwbGVRdWFudGl0eSA+IDApIHtcbiAgICBjdXJyZW50ID4gbXVsdGlwbGVRdWFudGl0eVxuICAgICAgPyB0aGlzLnF1YW50aXR5LnNldChjdXJyZW50IC0gbXVsdGlwbGVRdWFudGl0eSlcbiAgICAgIDogbnVsbDtcbiAgfSBlbHNlIHtcbiAgICBjdXJyZW50ID4gMSA/IHRoaXMucXVhbnRpdHkuc2V0KGN1cnJlbnQgLSAxKSA6IG51bGw7XG4gIH1cbn1cblxuICBjaGVja1N0b2NrKHN0b2NrOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5xdWFudGl0eSgpID49IHN0b2NrKVxuICAgICAgdGhpcy5xdWFudGl0eS5zZXQoc3RvY2spO1xuICB9XG5cbiAgcHVibGljIGdvVG9TZWN0aW9uKHNlY3Rpb246IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2hvd0Zvcm1Db250YWN0ID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzZWN0aW9uKTtcbiAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG4gICAgICB9XG4gICAgfSwgNTAwKTtcbiAgfVxuXG4gIHJlc2V0Rm9ybSA9ICgpID0+IHtcbiAgICB0aGlzLnJlc2V0ID0gIXRoaXMucmVzZXRcbiAgICB0aGlzLnN1Y2Nlc3MgPSB0cnVlXG4gIH1cblxuICAvLyBDb21wdXRlZCBzaWduYWxzIG3DoXMgZWZpY2llbnRlc1xuICBwdWJsaWMgaGFzRGlzY291bnQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgcHJvZHVjdCA9IHRoaXMucHJvZHVjdFNpZ25hbCgpO1xuICAgIGlmICghcHJvZHVjdD8uc2FsZXByaWNlIHx8ICFwcm9kdWN0Py5wcmljZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IG9yaWdpbmFsUHJpY2UgPSBwYXJzZUZsb2F0KHByb2R1Y3QucHJpY2UudG9TdHJpbmcoKSk7XG4gICAgY29uc3Qgc2FsZVByaWNlID0gcGFyc2VGbG9hdChwcm9kdWN0LnNhbGVwcmljZS50b1N0cmluZygpKTtcblxuICAgIHJldHVybiBzYWxlUHJpY2UgPiAwICYmIG9yaWdpbmFsUHJpY2UgPiBzYWxlUHJpY2U7XG4gIH0pO1xuXG4gIHB1YmxpYyBkaXNjb3VudFBlcmNlbnRhZ2UgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKCF0aGlzLmhhc0Rpc2NvdW50KCkpIHJldHVybiBudWxsO1xuXG4gICAgY29uc3QgcHJvZHVjdCA9IHRoaXMucHJvZHVjdFNpZ25hbCgpO1xuICAgIGlmICghcHJvZHVjdCkgcmV0dXJuIG51bGw7XG5cbiAgICBjb25zdCBvcmlnaW5hbFByaWNlID0gcGFyc2VGbG9hdChwcm9kdWN0LnByaWNlPy50b1N0cmluZygpIHx8ICcwJyk7XG4gICAgY29uc3Qgc2FsZVByaWNlID0gcGFyc2VGbG9hdChwcm9kdWN0LnNhbGVwcmljZT8udG9TdHJpbmcoKSB8fCAnMCcpO1xuXG4gICAgaWYgKG9yaWdpbmFsUHJpY2UgPD0gMCB8fCBzYWxlUHJpY2UgPD0gMCB8fCBzYWxlUHJpY2UgPj0gb3JpZ2luYWxQcmljZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgZGlzY291bnQgPSAoKG9yaWdpbmFsUHJpY2UgLSBzYWxlUHJpY2UpIC8gb3JpZ2luYWxQcmljZSkgKiAxMDA7XG4gICAgcmV0dXJuIE1hdGgucm91bmQoZGlzY291bnQpO1xuICB9KTtcblxuICAvKipcbiAgICAqIE3DqXRvZG8gcGFyYSB0cmFja2VhciBjYW1iaW9zIGVuIGVsIHByb2R1Y3RJZCB5IGZvcnphciBsYSByZWNyZWFjacOzbiBkZWwgY29tcG9uZW50ZSByZWxhY2lvbmFkb3NcbiAgICAqL1xuICB0cmFja0J5UHJvZHVjdElkKGluZGV4OiBudW1iZXIsIHByb2R1Y3RJZDogYW55KTogYW55IHtcbiAgICByZXR1cm4gcHJvZHVjdElkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0ZWEgZWwgZXN0YWRvIGRlbCBtb2RhbCBkZSByZXNlw7Fhc1xuICAgKi9cbiAgcHJpdmF0ZSByZXNldFJldmlld01vZGFsKCk6IHZvaWQge1xuICAgIC8vIFNpIGV4aXN0ZSB1biBtw6l0b2RvIHJlc2V0Rm9ybSBkZWwgY29tcG9uZW50ZSBwYWRyZSwgbGxhbWFybG9cbiAgICBpZiAodHlwZW9mICh0aGlzIGFzIGFueSkucmVzZXRGb3JtID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAodGhpcyBhcyBhbnkpLnJlc2V0Rm9ybSgpO1xuICAgIH1cblxuICAgIC8vIFNpIGV4aXN0ZSB1bmEgcHJvcGllZGFkIHN1Y2Nlc3MsIHJlc2V0ZWFybGFcbiAgICBpZiAoJ3N1Y2Nlc3MnIGluIHRoaXMpIHtcbiAgICAgICh0aGlzIGFzIGFueSkuc3VjY2VzcyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG59XG4iLCIiXX0=
|
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvcHJvZHVjdC1kZXRhaWwtZWMvcHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvcHJvZHVjdC1kZXRhaWwtZWMvcHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWtCLE1BQU0sRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxZQUFZLEVBQVksTUFBTSwyQkFBMkIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUd2RCxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUN6QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1C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LFNBQWM7UUFDNUMsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssZ0JBQWdCO1FBQ3RCLCtEQUErRDtRQUMvRCxJQUFJLE9BQVEsSUFBWSxDQUFDLFNBQVMsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNqRCxJQUFZLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDNUIsQ0FBQztRQUVELDhDQUE4QztRQUM5QyxJQUFJLFNBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNyQixJQUFZLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQzt3R0FsT1Usd0JBQXdCOzRGQUF4Qix3QkFBd0IsaUZDMUJyQyxFQUFBOzs0RkQwQmEsd0JBQXdCO2tCQVBwQyxTQUFTOytCQUNFLHVCQUF1QixjQUNyQixJQUFJLFdBQ1AsQ0FBQyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBJbmplY3RvciwgT25Jbml0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUGFyYW1ldGVyc1NlcnZpY2UsIENoYW5uZWxTZXJ2aWNlLCBDYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL2VjLXNlcnZpY2VzJztcclxuaW1wb3J0IHsgUGFyYW1ldGVyIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBXcml0YWJsZVNpZ25hbCwgc2lnbmFsLCBQTEFURk9STV9JRCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTWV0YSwgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFByb2R1Y3REZXRhaWxTZXJ2aWNlLCBQcm9kdWN0c1NlcnZpY2UsIFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uL2VjLXNlcnZpY2VzJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBDb3JlQ29uc3RhbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBQcm9kdWN0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCAqIGFzIGhlIGZyb20gJ2hlJztcclxuaW1wb3J0IHsgT3B0aW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFZhcmlhbnRzRWNDb21wb25lbnQgfSBmcm9tICcuLi92YXJpYW50cy1lYy92YXJpYW50cy1lYy5jb21wb25lbnQnO1xyXG5cclxuXHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtcHJvZHVjdC1kZXRhaWwtZWMnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1ZhcmlhbnRzRWNDb21wb25lbnRdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9kdWN0LWRldGFpbC1lYy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvZHVjdERldGFpbEVjQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgX2NhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSA9IGluamVjdChDYXJ0U2VydmljZSlcclxuICBwcml2YXRlIF9vcHRpb25zU2VydmljZTogT3B0aW9uc1NlcnZpY2UgPSBpbmplY3QoT3B0aW9uc1NlcnZpY2UpO1xyXG4gIHByaXZhdGUgX3Byb2R1Y3REZXRhaWxTZXJ2aWNlOiBQcm9kdWN0RGV0YWlsU2VydmljZSA9IGluamVjdChQcm9kdWN0RGV0YWlsU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBfcHJvZHVjdFNlcnZpY2U6IFByb2R1Y3RzU2VydmljZSA9IGluamVjdChQcm9kdWN0c1NlcnZpY2UpO1xyXG4gIHByaXZhdGUgX2FjdGl2ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xyXG4gIHByaXZhdGUgX2RvbVNhbml0aXplcjogRG9tU2FuaXRpemVyID0gaW5qZWN0KERvbVNhbml0aXplcik7XHJcbiAgcHJpdmF0ZSBfY29uc3RzOiBDb3JlQ29uc3RhbnRzU2VydmljZSA9IGluamVjdChDb3JlQ29uc3RhbnRzU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBfdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcclxuICBwcml2YXRlIHBhcmFtZXRlcnNTZXJ2aWNlID0gaW5qZWN0KFBhcmFtZXRlcnNTZXJ2aWNlKTtcclxuICBwdWJsaWMgaW5qZWN0b3I6IEluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcclxuICBwcml2YXRlIF9tZXRhOiBNZXRhID0gaW5qZWN0KE1ldGEpO1xyXG4gIHByaXZhdGUgX3RpdGxlOiBUaXRsZSA9IGluamVjdChUaXRsZSk7XHJcbiAgcHJpdmF0ZSBfbG9jYXRpb246IExvY2F0aW9uID0gaW5qZWN0KExvY2F0aW9uKTtcclxuICBwdWJsaWMgcHJvZHVjdCQ6IE9ic2VydmFibGU8UHJvZHVjdCB8IG51bGw+ID0gdGhpcy5fcHJvZHVjdERldGFpbFNlcnZpY2UucHJvZHVjdCQ7XHJcbiAgcHVibGljIG9wdGlvbnMkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLl9wcm9kdWN0RGV0YWlsU2VydmljZS5vcHRpb25zJDtcclxuICBwdWJsaWMgZGF0YSQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuX3Byb2R1Y3REZXRhaWxTZXJ2aWNlLmFzc29jaWF0ZWREYXRhJDtcclxuICBwcml2YXRlIHJvdXRlU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xyXG4gIHByaXZhdGUgY3VycmVudFByb2R1Y3RJZD86IHN0cmluZztcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyID0gaW5qZWN0KFJvdXRlcik7XHJcblxyXG5cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnJvdXRlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG1lZGlhVXJsID0gdGhpcy5fY29uc3RzLm1lZGlhVXJsKCk7XHJcbiAgcHVibGljIGNvZGU6IHN0cmluZyA9ICcnO1xyXG4gIHB1YmxpYyBzaG93Rm9ybUNvbnRhY3QgPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd1Jldmlld3M6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgcmVzZXQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc3VjY2VzczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBjYXRlZ29yaWVzOiBhbnlbXSA9IFtdO1xyXG4gIHB1YmxpYyBzaG93UHJpY2VzT25seVRvTG9nZ2VkVXNlcnM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgaGlkZVByaWNlczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgcXVhbnRpdHk6IFdyaXRhYmxlU2lnbmFsPG51bWJlcj4gPSBzaWduYWwoMSk7XHJcbiAgcHVibGljIGlzQWRkaW5nVG9DYXJ0OiBXcml0YWJsZVNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XHJcbiAgcHVibGljIHBhcmFtZXRlcnMkOiBPYnNlcnZhYmxlPFBhcmFtZXRlcltdIHwgbnVsbD4gPSB0aGlzLnBhcmFtZXRlcnNTZXJ2aWNlLmdldFBhcmFtZXRlcnMoKTtcclxuICBwdWJsaWMgaGFzUGFyYW1zID0gdGhpcy5wYXJhbWV0ZXJzU2VydmljZS5oYXNQYXJhbXNcclxuICBwdWJsaWMgY3JlZGl0QWNjb3VudFNob3dQcmljZXM6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcclxuICAvLyBBZ3JlZ2FyIGVzdGEgcHJvcGllZGFkIGFsIGluaWNpbyBkZSBsYSBjbGFzZVxyXG4gIHByaXZhdGUgcHJvZHVjdFNpZ25hbCA9IHNpZ25hbDxQcm9kdWN0IHwgbnVsbD4obnVsbCk7XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuX2FjdGl2ZWRSb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHF1ZXJ5UGFyYW1zID0+IHtcclxuICAgICAgdGhpcy5jb2RlID0gcXVlcnlQYXJhbXNbXCJpZFwiXTtcclxuICAgICAgdGhpcy5fcHJvZHVjdERldGFpbFNlcnZpY2UubG9hZFByb2R1Y3QodGhpcy5jb2RlKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fYWN0aXZlZFJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocXVlcnlQYXJhbXMgPT4ge1xyXG4gICAgICB0aGlzLmNvZGUgPSBxdWVyeVBhcmFtc1tcImlkXCJdO1xyXG4gICAgICB0aGlzLl9wcm9kdWN0RGV0YWlsU2VydmljZS5sb2FkUHJvZHVjdCh0aGlzLmNvZGUpO1xyXG4gICAgfSlcclxuICAgIHRoaXMuaW5qZWN0b3IuZ2V0KENoYW5uZWxTZXJ2aWNlKS5jaGFubmVsJC5zdWJzY3JpYmUoY2hhbm5lbCA9PiB7XHJcbiAgICAgIHRoaXMuc2hvd1Jldmlld3MgPSBjaGFubmVsLnNob3dSZXZpZXdzO1xyXG4gICAgICB0aGlzLnNob3dQcmljZXNPbmx5VG9Mb2dnZWRVc2VycyA9ICEhY2hhbm5lbC5zaG93UHJpY2VzT25seVRvTG9nZ2VkVXNlcnM7XHJcbiAgICAgIHRoaXMuaGlkZVByaWNlcyA9ICEhY2hhbm5lbC5oaWRlUHJpY2VzO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9vcHRpb25zU2VydmljZS5nZXRDYXRlZ29yaWVzKCkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMuY2F0ZWdvcmllcyA9IHJlcztcclxuICAgIH1cclxuICAgICk7XHJcbiAgICB0aGlzLl9jYXJ0U2VydmljZS5zaG93UHJpY2UkLnN1YnNjcmliZSgoc2hvd1ByaWNlKSA9PiB7XHJcbiAgICAgIHRoaXMuY3JlZGl0QWNjb3VudFNob3dQcmljZXMgPSBzaG93UHJpY2U7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnByb2R1Y3QkLnN1YnNjcmliZShwcm9kdWN0ID0+IHtcclxuICAgICAgdGhpcy5wcm9kdWN0U2lnbmFsLnNldChwcm9kdWN0KTtcclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5wcm9kdWN0JC5zdWJzY3JpYmUocHJvZHVjdCA9PiB7XHJcbiAgICAgIGlmIChwcm9kdWN0KSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVNZXRhVGFncyhwcm9kdWN0KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICAvLyBTdXNjcmliaXJzZSBhIGxvcyBjYW1iaW9zIGRlIHBhcsOhbWV0cm9zIGRlIGxhIHJ1dGFcclxuICAgIHRoaXMucm91dGVTdWJzY3JpcHRpb24gPSB0aGlzLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcclxuICAgICAgY29uc3QgbmV3UHJvZHVjdElkID0gcGFyYW1zWydpZCddO1xyXG4gICAgICBpZiAobmV3UHJvZHVjdElkICYmIG5ld1Byb2R1Y3RJZCAhPT0gdGhpcy5jdXJyZW50UHJvZHVjdElkKSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50UHJvZHVjdElkID0gbmV3UHJvZHVjdElkO1xyXG5cclxuICAgICAgICAvLyBSZXNldGVhciBlbCBlc3RhZG8gZGVsIG1vZGFsIGRlIHJlc2XDsWFzIGN1YW5kbyBjYW1iaWUgZWwgcHJvZHVjdG9cclxuICAgICAgICB0aGlzLnJlc2V0UmV2aWV3TW9kYWwoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgdXBkYXRlTWV0YVRhZ3MocHJvZHVjdDogUHJvZHVjdCkge1xyXG4gICAgY29uc3QgZGVzY3JpcGNpb25MaW1waWEgPSBoZS5kZWNvZGUocHJvZHVjdC5kZXNjcmlwdGlvbiB8fCAnJykucmVwbGFjZSgvPFtePl0qPi9nLCAnICcpLnJlcGxhY2UoL1xccysvZywgJyAnKS50cmltKCk7XHJcbiAgICBjb25zdCBjdXJyZW50VXJsID0gdGhpcy5fY29uc3RzLmdldEZyb250ZW5kVXJsKCkgKyB0aGlzLl9yb3V0ZXIudXJsOyAgLy8gVVJMIGFic29sdXRhIGRlbCBwcm9kdWN0b1xyXG4gICAgY29uc3QgaW1hZ2VVcmwgPSB0aGlzLl9jb25zdHMuZ2V0QWJzb2x1dGVJbWFnZVVybChBcnJheS5pc0FycmF5KHByb2R1Y3QucGljdHVyZXNkZWZhdWx0KSA/IHByb2R1Y3QucGljdHVyZXNkZWZhdWx0WzBdIDogcHJvZHVjdC5waWN0dXJlc2RlZmF1bHQpO1xyXG5cclxuXHJcbiAgICB0aGlzLl9tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6dGl0bGUnLCBjb250ZW50OiBwcm9kdWN0Lm5hbWUgfHwgJycgfSk7XHJcbiAgICB0aGlzLl9tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6ZGVzY3JpcHRpb24nLCBjb250ZW50OiBkZXNjcmlwY2lvbkxpbXBpYSB8fCAnJyB9KTtcclxuICAgIHRoaXMuX21ldGEudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzppbWFnZScsIGNvbnRlbnQ6IGltYWdlVXJsIHx8ICcnIH0pO1xyXG4gICAgLy8gdGhpcy5fbWV0YS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOnVybCcsIGNvbnRlbnQ6IGN1cnJlbnRVcmwgfSk7XHJcbiAgICB0aGlzLl9tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6dHlwZScsIGNvbnRlbnQ6ICdwcm9kdWN0JyB9KTtcclxuICB9XHJcbiAgZGVjb2RlSHRtbChodG1sOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgdHh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTtcclxuICAgIHR4dC5pbm5lckhUTUwgPSBodG1sO1xyXG4gICAgcmV0dXJuIHR4dC52YWx1ZTtcclxuXHJcbiAgfVxyXG4gIHNhbml0aXplZEh0bWwoaHRtbDogc3RyaW5nKTogU2FmZUh0bWwge1xyXG4gICAgY29uc3QgZGVjb2RlZEh0bWwgPSB0aGlzLmRlY29kZUh0bWwoaHRtbCk7XHJcbiAgICByZXR1cm4gdGhpcy5fZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGRlY29kZWRIdG1sKTtcclxuICB9XHJcblxyXG4gIGFkZFRvQ2FydCgpIHtcclxuICAgIGlmICh0aGlzLmlzQWRkaW5nVG9DYXJ0KCkgfHwgdGhpcy5xdWFudGl0eSgpIDw9IDApIHJldHVybjtcclxuXHJcbiAgICB0aGlzLmlzQWRkaW5nVG9DYXJ0LnNldCh0cnVlKTtcclxuICAgIHRoaXMuX3Byb2R1Y3REZXRhaWxTZXJ2aWNlLmFkZFRvQ2FydCh0aGlzLnF1YW50aXR5KCkpO1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmlzQWRkaW5nVG9DYXJ0LnNldChmYWxzZSk7XHJcbiAgICB9LCAyMDAwKTtcclxuICB9XHJcblxyXG4gIHBsdXMoc3RvY2s/OiBudW1iZXIsIG11bHRpcGxlUXVhbnRpdHk/OiBudW1iZXIpIHtcclxuICBjb25zdCBjdXJyZW50ID0gTnVtYmVyKHRoaXMucXVhbnRpdHkoKSk7IC8vIDwtLSBmdWVyemEgYSBuw7ptZXJvXHJcbiAgaWYgKG11bHRpcGxlUXVhbnRpdHkgJiYgbXVsdGlwbGVRdWFudGl0eSA+IDApIHtcclxuICAgIHN0b2NrXHJcbiAgICAgID8gKGN1cnJlbnQgPCBzdG9ja1xyXG4gICAgICAgICAgPyB0aGlzLnF1YW50aXR5LnNldChjdXJyZW50ICsgbXVsdGlwbGVRdWFudGl0eSlcclxuICAgICAgICAgIDogdGhpcy5fdG9hc3RTZXJ2aWNlLnNob3coJ291dC1vZi1zdG9jay1hY3R1YWxseScpKVxyXG4gICAgICA6IHRoaXMucXVhbnRpdHkuc2V0KGN1cnJlbnQgKyBtdWx0aXBsZVF1YW50aXR5KTtcclxuICB9IGVsc2Uge1xyXG4gICAgc3RvY2tcclxuICAgICAgPyAoY3VycmVudCA8IHN0b2NrXHJcbiAgICAgICAgICA/IHRoaXMucXVhbnRpdHkuc2V0KGN1cnJlbnQgKyAxKVxyXG4gICAgICAgICAgOiB0aGlzLl90b2FzdFNlcnZpY2Uuc2hvdygnb3V0LW9mLXN0b2NrLWFjdHVhbGx5JykpXHJcbiAgICAgIDogdGhpcy5xdWFudGl0eS5zZXQoY3VycmVudCArIDEpO1xyXG4gIH1cclxufVxyXG5cclxubGVzcyhtdWx0aXBsZVF1YW50aXR5PzogbnVtYmVyKSB7XHJcbiAgY29uc3QgY3VycmVudCA9IE51bWJlcih0aGlzLnF1YW50aXR5KCkpOyAvLyA8LS0gZnVlcnphIGEgbsO6bWVyb1xyXG4gIGlmIChtdWx0aXBsZVF1YW50aXR5ICYmIG11bHRpcGxlUXVhbnRpdHkgPiAwKSB7XHJcbiAgICBjdXJyZW50ID4gbXVsdGlwbGVRdWFudGl0eVxyXG4gICAgICA/IHRoaXMucXVhbnRpdHkuc2V0KGN1cnJlbnQgLSBtdWx0aXBsZVF1YW50aXR5KVxyXG4gICAgICA6IG51bGw7XHJcbiAgfSBlbHNlIHtcclxuICAgIGN1cnJlbnQgPiAxID8gdGhpcy5xdWFudGl0eS5zZXQoY3VycmVudCAtIDEpIDogbnVsbDtcclxuICB9XHJcbn1cclxuXHJcbiAgY2hlY2tTdG9jayhzdG9jazogbnVtYmVyKSB7XHJcbiAgICBpZiAodGhpcy5xdWFudGl0eSgpID49IHN0b2NrKVxyXG4gICAgICB0aGlzLnF1YW50aXR5LnNldChzdG9jayk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ29Ub1NlY3Rpb24oc2VjdGlvbjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dGb3JtQ29udGFjdCA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNlY3Rpb24pO1xyXG4gICAgICBpZiAoZWxlbWVudCkge1xyXG4gICAgICAgIGVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XHJcbiAgICAgIH1cclxuICAgIH0sIDUwMCk7XHJcbiAgfVxyXG5cclxuICByZXNldEZvcm0gPSAoKSA9PiB7XHJcbiAgICB0aGlzLnJlc2V0ID0gIXRoaXMucmVzZXRcclxuICAgIHRoaXMuc3VjY2VzcyA9IHRydWVcclxuICB9XHJcblxyXG4gIC8vIENvbXB1dGVkIHNpZ25hbHMgbcOhcyBlZmljaWVudGVzXHJcbiAgcHVibGljIGhhc0Rpc2NvdW50ID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgY29uc3QgcHJvZHVjdCA9IHRoaXMucHJvZHVjdFNpZ25hbCgpO1xyXG4gICAgaWYgKCFwcm9kdWN0Py5zYWxlcHJpY2UgfHwgIXByb2R1Y3Q/LnByaWNlKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBvcmlnaW5hbFByaWNlID0gcGFyc2VGbG9hdChwcm9kdWN0LnByaWNlLnRvU3RyaW5nKCkpO1xyXG4gICAgY29uc3Qgc2FsZVByaWNlID0gcGFyc2VGbG9hdChwcm9kdWN0LnNhbGVwcmljZS50b1N0cmluZygpKTtcclxuXHJcbiAgICByZXR1cm4gc2FsZVByaWNlID4gMCAmJiBvcmlnaW5hbFByaWNlID4gc2FsZVByaWNlO1xyXG4gIH0pO1xyXG5cclxuICBwdWJsaWMgZGlzY291bnRQZXJjZW50YWdlID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgaWYgKCF0aGlzLmhhc0Rpc2NvdW50KCkpIHJldHVybiBudWxsO1xyXG5cclxuICAgIGNvbnN0IHByb2R1Y3QgPSB0aGlzLnByb2R1Y3RTaWduYWwoKTtcclxuICAgIGlmICghcHJvZHVjdCkgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgY29uc3Qgb3JpZ2luYWxQcmljZSA9IHBhcnNlRmxvYXQocHJvZHVjdC5wcmljZT8udG9TdHJpbmcoKSB8fCAnMCcpO1xyXG4gICAgY29uc3Qgc2FsZVByaWNlID0gcGFyc2VGbG9hdChwcm9kdWN0LnNhbGVwcmljZT8udG9TdHJpbmcoKSB8fCAnMCcpO1xyXG5cclxuICAgIGlmIChvcmlnaW5hbFByaWNlIDw9IDAgfHwgc2FsZVByaWNlIDw9IDAgfHwgc2FsZVByaWNlID49IG9yaWdpbmFsUHJpY2UpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZGlzY291bnQgPSAoKG9yaWdpbmFsUHJpY2UgLSBzYWxlUHJpY2UpIC8gb3JpZ2luYWxQcmljZSkgKiAxMDA7XHJcbiAgICByZXR1cm4gTWF0aC5yb3VuZChkaXNjb3VudCk7XHJcbiAgfSk7XHJcblxyXG4gIC8qKlxyXG4gICAgKiBNw6l0b2RvIHBhcmEgdHJhY2tlYXIgY2FtYmlvcyBlbiBlbCBwcm9kdWN0SWQgeSBmb3J6YXIgbGEgcmVjcmVhY2nDs24gZGVsIGNvbXBvbmVudGUgcmVsYWNpb25hZG9zXHJcbiAgICAqL1xyXG4gIHRyYWNrQnlQcm9kdWN0SWQoaW5kZXg6IG51bWJlciwgcHJvZHVjdElkOiBhbnkpOiBhbnkge1xyXG4gICAgcmV0dXJuIHByb2R1Y3RJZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlc2V0ZWEgZWwgZXN0YWRvIGRlbCBtb2RhbCBkZSByZXNlw7Fhc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVzZXRSZXZpZXdNb2RhbCgpOiB2b2lkIHtcclxuICAgIC8vIFNpIGV4aXN0ZSB1biBtw6l0b2RvIHJlc2V0Rm9ybSBkZWwgY29tcG9uZW50ZSBwYWRyZSwgbGxhbWFybG9cclxuICAgIGlmICh0eXBlb2YgKHRoaXMgYXMgYW55KS5yZXNldEZvcm0gPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgKHRoaXMgYXMgYW55KS5yZXNldEZvcm0oKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBTaSBleGlzdGUgdW5hIHByb3BpZWRhZCBzdWNjZXNzLCByZXNldGVhcmxhXHJcbiAgICBpZiAoJ3N1Y2Nlc3MnIGluIHRoaXMpIHtcclxuICAgICAgKHRoaXMgYXMgYW55KS5zdWNjZXNzID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iLCIiXX0=
|
|
@@ -88,11 +88,11 @@ export class ProductEcComponent {
|
|
|
88
88
|
return Math.round(discount);
|
|
89
89
|
}
|
|
90
90
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProductEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
91
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ProductEcComponent, isStandalone: true, selector: "app-product-ec", inputs: { product: "product", isProductBox: "isProductBox", isCollection: "isCollection" }, outputs: { loaded: "loaded" }, ngImport: i0, template: "<a [routerLink]=\"['/product', product.id]\" class=\"text-decoration-none producto\">\n <!-- Marca especial y descuento -->\n <!-- <div *ngIf=\"product.saleprice || (product.special_mark && product.special_mark !== null && product.special_mark !== undefined && product.special_mark.length >0)\"\n class=\"marcas\">\n <div *ecProductStock=\"product\" [ecProductMini]=\"product.special_mark\"></div>\n <ng-container *ngIf=\"shouldShowPrice\">\n <div *ecProductStock=\"product\" [ngClass]=\"{'tag-dsc float-right': product.saleprice}\"\n [ecProductOff]=\"product\">\n </div>\n </ng-container>\n </div> -->\n\n <!-- Imagen del producto -->\n <div class=\"foto\">\n @if(product.picturesdefault){\n @if (product.picturesdefault && product.picturesdefault.length > 1 ) {\n <img [src]=\"mediaUrl + product.picturesdefault[0]\" alt=\"Imagen principal\" class=\"w-100 pic01\" />\n <img [src]=\"mediaUrl + product.picturesdefault[1]\" alt=\"Imagen secundaria\" class=\"w-100 pic02\" />\n } @else {\n <img [src]=\"mediaUrl + product.picturesdefault[0]\" alt=\"Imagen principal\" class=\"w-100 pic01\" />\n }\n }\n </div>\n <!-- Precio -->\n\n\n <!-- Nombre del producto -->\n <h6 class=\"title\">{{ product.name | titlecase }}</h6>\n\n <div class=\"sku\" [innerHTML]=\"product.shortdetails\"></div>\n\n @if (shouldShowPrice) {\n <app-price-ec [price]=\"product.price\" [saleprice]=\"product.saleprice\" class=\"\" />\n }\n @if(!hidePrices){\n @if(!showPricesOnlyToLoggedUsers || isAuthenticated$){\n\n <div class=\"fixBottom\">\n\n <!-- Bot\u00F3n de acciones -->\n <!-- <ng-container *ecProductStock=\"product; else noStock\"> -->\n <!-- Cuando no tiene marca especial o es de tipo 'standard' -->\n @if (!product.special_mark || product.special_mark.length === 0 || product.special_mark[0]?.type ===\n 'standard') {\n <button class=\"btn standard\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\n <ng-container *ngIf=\"isCollection; else normalText\">\n <span> {{(\"buy\" | translate) | uppercase}} </span>\n </ng-container>\n <ng-template #normalText>\n {{(\"buy\" | translate) | uppercase}}\n </ng-template>\n </button>\n }@else {\n <!-- Caso 1: Agotado o Disponible muy pronto -->\n @if (product.special_mark[0]?.type === 'out_of_stock' || product.special_mark[0]?.type === 'coming_soon') {\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\n @if(isCollection){\n <span>{{ product.special_mark[0].name | uppercase }} </span>\n }@else {\n {{ product.special_mark[0]?.name | uppercase }}\n }\n </button>}\n <!-- Caso 2: Contacto por WhatsApp -->\n @if (product.special_mark[0].type === 'whatsapp_contact') {\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\"\n (click)=\"openWhatsApp(product.special_mark[0]?.whatsappContact)\">\n @if(isCollection){\n <span>{{ product.special_mark[0]?.name | uppercase }}</span>\n }@else {\n {{ product.special_mark[0]?.name | uppercase }}\n }\n\n </button>\n }\n <!-- Caso 3: Solicitar m\u00E1s informaci\u00F3n -->\n @if (product.special_mark[0]?.type === 'more_info') {\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\n @if(isCollection){\n <span>{{ product.special_mark[0]?.name | uppercase }}</span>\n }@else {\n {{ product.special_mark[0]?.name | uppercase }}\n }\n </button>\n }\n }\n </div>\n }}\n</a>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }, { kind: "component", type: PriceEcComponent, selector: "app-price-ec", inputs: ["price", "saleprice", "basePrice", "taxeAmount", "taxes", "priceSize", "showTaxLegendOnly", "disableTaxInfo", "customPriceTemplate", "customSalePriceTemplate", "customSimplePriceTemplate", "customSimpleSalePriceTemplate", "customTaxTemplate", "customOnlyTaxLabelTemplate"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
|
|
91
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ProductEcComponent, isStandalone: true, selector: "app-product-ec", inputs: { product: "product", isProductBox: "isProductBox", isCollection: "isCollection" }, outputs: { loaded: "loaded" }, ngImport: i0, template: "<a [routerLink]=\"['/product', product.id]\" class=\"text-decoration-none producto\">\r\n <!-- Marca especial y descuento -->\r\n <!-- <div *ngIf=\"product.saleprice || (product.special_mark && product.special_mark !== null && product.special_mark !== undefined && product.special_mark.length >0)\"\r\n class=\"marcas\">\r\n <div *ecProductStock=\"product\" [ecProductMini]=\"product.special_mark\"></div>\r\n <ng-container *ngIf=\"shouldShowPrice\">\r\n <div *ecProductStock=\"product\" [ngClass]=\"{'tag-dsc float-right': product.saleprice}\"\r\n [ecProductOff]=\"product\">\r\n </div>\r\n </ng-container>\r\n </div> -->\r\n\r\n <!-- Imagen del producto -->\r\n <div class=\"foto\">\r\n @if(product.picturesdefault){\r\n @if (product.picturesdefault && product.picturesdefault.length > 1 ) {\r\n <img [src]=\"mediaUrl + product.picturesdefault[0]\" alt=\"Imagen principal\" class=\"w-100 pic01\" />\r\n <img [src]=\"mediaUrl + product.picturesdefault[1]\" alt=\"Imagen secundaria\" class=\"w-100 pic02\" />\r\n } @else {\r\n <img [src]=\"mediaUrl + product.picturesdefault[0]\" alt=\"Imagen principal\" class=\"w-100 pic01\" />\r\n }\r\n }\r\n </div>\r\n <!-- Precio -->\r\n\r\n\r\n <!-- Nombre del producto -->\r\n <h6 class=\"title\">{{ product.name | titlecase }}</h6>\r\n\r\n <div class=\"sku\" [innerHTML]=\"product.shortdetails\"></div>\r\n\r\n @if (shouldShowPrice) {\r\n <app-price-ec [price]=\"product.price\" [saleprice]=\"product.saleprice\" class=\"\" />\r\n }\r\n @if(!hidePrices){\r\n @if(!showPricesOnlyToLoggedUsers || isAuthenticated$){\r\n\r\n <div class=\"fixBottom\">\r\n\r\n <!-- Bot\u00F3n de acciones -->\r\n <!-- <ng-container *ecProductStock=\"product; else noStock\"> -->\r\n <!-- Cuando no tiene marca especial o es de tipo 'standard' -->\r\n @if (!product.special_mark || product.special_mark.length === 0 || product.special_mark[0]?.type ===\r\n 'standard') {\r\n <button class=\"btn standard\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\r\n <ng-container *ngIf=\"isCollection; else normalText\">\r\n <span> {{(\"buy\" | translate) | uppercase}} </span>\r\n </ng-container>\r\n <ng-template #normalText>\r\n {{(\"buy\" | translate) | uppercase}}\r\n </ng-template>\r\n </button>\r\n }@else {\r\n <!-- Caso 1: Agotado o Disponible muy pronto -->\r\n @if (product.special_mark[0]?.type === 'out_of_stock' || product.special_mark[0]?.type === 'coming_soon') {\r\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\r\n @if(isCollection){\r\n <span>{{ product.special_mark[0].name | uppercase }} </span>\r\n }@else {\r\n {{ product.special_mark[0]?.name | uppercase }}\r\n }\r\n </button>}\r\n <!-- Caso 2: Contacto por WhatsApp -->\r\n @if (product.special_mark[0].type === 'whatsapp_contact') {\r\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\"\r\n (click)=\"openWhatsApp(product.special_mark[0]?.whatsappContact)\">\r\n @if(isCollection){\r\n <span>{{ product.special_mark[0]?.name | uppercase }}</span>\r\n }@else {\r\n {{ product.special_mark[0]?.name | uppercase }}\r\n }\r\n\r\n </button>\r\n }\r\n <!-- Caso 3: Solicitar m\u00E1s informaci\u00F3n -->\r\n @if (product.special_mark[0]?.type === 'more_info') {\r\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\r\n @if(isCollection){\r\n <span>{{ product.special_mark[0]?.name | uppercase }}</span>\r\n }@else {\r\n {{ product.special_mark[0]?.name | uppercase }}\r\n }\r\n </button>\r\n }\r\n }\r\n </div>\r\n }}\r\n</a>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }, { kind: "component", type: PriceEcComponent, selector: "app-price-ec", inputs: ["price", "saleprice", "basePrice", "taxeAmount", "taxes", "priceSize", "showTaxLegendOnly", "disableTaxInfo", "customPriceTemplate", "customSalePriceTemplate", "customSimplePriceTemplate", "customSimpleSalePriceTemplate", "customTaxTemplate", "customOnlyTaxLabelTemplate"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
|
|
92
92
|
}
|
|
93
93
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProductEcComponent, decorators: [{
|
|
94
94
|
type: Component,
|
|
95
|
-
args: [{ selector: 'app-product-ec', standalone: true, imports: [CommonModule, PriceEcComponent, RouterLink, TranslateModule], template: "<a [routerLink]=\"['/product', product.id]\" class=\"text-decoration-none producto\">\n <!-- Marca especial y descuento -->\n <!-- <div *ngIf=\"product.saleprice || (product.special_mark && product.special_mark !== null && product.special_mark !== undefined && product.special_mark.length >0)\"\n class=\"marcas\">\n <div *ecProductStock=\"product\" [ecProductMini]=\"product.special_mark\"></div>\n <ng-container *ngIf=\"shouldShowPrice\">\n <div *ecProductStock=\"product\" [ngClass]=\"{'tag-dsc float-right': product.saleprice}\"\n [ecProductOff]=\"product\">\n </div>\n </ng-container>\n </div> -->\n\n <!-- Imagen del producto -->\n <div class=\"foto\">\n @if(product.picturesdefault){\n @if (product.picturesdefault && product.picturesdefault.length > 1 ) {\n <img [src]=\"mediaUrl + product.picturesdefault[0]\" alt=\"Imagen principal\" class=\"w-100 pic01\" />\n <img [src]=\"mediaUrl + product.picturesdefault[1]\" alt=\"Imagen secundaria\" class=\"w-100 pic02\" />\n } @else {\n <img [src]=\"mediaUrl + product.picturesdefault[0]\" alt=\"Imagen principal\" class=\"w-100 pic01\" />\n }\n }\n </div>\n <!-- Precio -->\n\n\n <!-- Nombre del producto -->\n <h6 class=\"title\">{{ product.name | titlecase }}</h6>\n\n <div class=\"sku\" [innerHTML]=\"product.shortdetails\"></div>\n\n @if (shouldShowPrice) {\n <app-price-ec [price]=\"product.price\" [saleprice]=\"product.saleprice\" class=\"\" />\n }\n @if(!hidePrices){\n @if(!showPricesOnlyToLoggedUsers || isAuthenticated$){\n\n <div class=\"fixBottom\">\n\n <!-- Bot\u00F3n de acciones -->\n <!-- <ng-container *ecProductStock=\"product; else noStock\"> -->\n <!-- Cuando no tiene marca especial o es de tipo 'standard' -->\n @if (!product.special_mark || product.special_mark.length === 0 || product.special_mark[0]?.type ===\n 'standard') {\n <button class=\"btn standard\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\n <ng-container *ngIf=\"isCollection; else normalText\">\n <span> {{(\"buy\" | translate) | uppercase}} </span>\n </ng-container>\n <ng-template #normalText>\n {{(\"buy\" | translate) | uppercase}}\n </ng-template>\n </button>\n }@else {\n <!-- Caso 1: Agotado o Disponible muy pronto -->\n @if (product.special_mark[0]?.type === 'out_of_stock' || product.special_mark[0]?.type === 'coming_soon') {\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\n @if(isCollection){\n <span>{{ product.special_mark[0].name | uppercase }} </span>\n }@else {\n {{ product.special_mark[0]?.name | uppercase }}\n }\n </button>}\n <!-- Caso 2: Contacto por WhatsApp -->\n @if (product.special_mark[0].type === 'whatsapp_contact') {\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\"\n (click)=\"openWhatsApp(product.special_mark[0]?.whatsappContact)\">\n @if(isCollection){\n <span>{{ product.special_mark[0]?.name | uppercase }}</span>\n }@else {\n {{ product.special_mark[0]?.name | uppercase }}\n }\n\n </button>\n }\n <!-- Caso 3: Solicitar m\u00E1s informaci\u00F3n -->\n @if (product.special_mark[0]?.type === 'more_info') {\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\n @if(isCollection){\n <span>{{ product.special_mark[0]?.name | uppercase }}</span>\n }@else {\n {{ product.special_mark[0]?.name | uppercase }}\n }\n </button>\n }\n }\n </div>\n }}\n</a>" }]
|
|
95
|
+
args: [{ selector: 'app-product-ec', standalone: true, imports: [CommonModule, PriceEcComponent, RouterLink, TranslateModule], template: "<a [routerLink]=\"['/product', product.id]\" class=\"text-decoration-none producto\">\r\n <!-- Marca especial y descuento -->\r\n <!-- <div *ngIf=\"product.saleprice || (product.special_mark && product.special_mark !== null && product.special_mark !== undefined && product.special_mark.length >0)\"\r\n class=\"marcas\">\r\n <div *ecProductStock=\"product\" [ecProductMini]=\"product.special_mark\"></div>\r\n <ng-container *ngIf=\"shouldShowPrice\">\r\n <div *ecProductStock=\"product\" [ngClass]=\"{'tag-dsc float-right': product.saleprice}\"\r\n [ecProductOff]=\"product\">\r\n </div>\r\n </ng-container>\r\n </div> -->\r\n\r\n <!-- Imagen del producto -->\r\n <div class=\"foto\">\r\n @if(product.picturesdefault){\r\n @if (product.picturesdefault && product.picturesdefault.length > 1 ) {\r\n <img [src]=\"mediaUrl + product.picturesdefault[0]\" alt=\"Imagen principal\" class=\"w-100 pic01\" />\r\n <img [src]=\"mediaUrl + product.picturesdefault[1]\" alt=\"Imagen secundaria\" class=\"w-100 pic02\" />\r\n } @else {\r\n <img [src]=\"mediaUrl + product.picturesdefault[0]\" alt=\"Imagen principal\" class=\"w-100 pic01\" />\r\n }\r\n }\r\n </div>\r\n <!-- Precio -->\r\n\r\n\r\n <!-- Nombre del producto -->\r\n <h6 class=\"title\">{{ product.name | titlecase }}</h6>\r\n\r\n <div class=\"sku\" [innerHTML]=\"product.shortdetails\"></div>\r\n\r\n @if (shouldShowPrice) {\r\n <app-price-ec [price]=\"product.price\" [saleprice]=\"product.saleprice\" class=\"\" />\r\n }\r\n @if(!hidePrices){\r\n @if(!showPricesOnlyToLoggedUsers || isAuthenticated$){\r\n\r\n <div class=\"fixBottom\">\r\n\r\n <!-- Bot\u00F3n de acciones -->\r\n <!-- <ng-container *ecProductStock=\"product; else noStock\"> -->\r\n <!-- Cuando no tiene marca especial o es de tipo 'standard' -->\r\n @if (!product.special_mark || product.special_mark.length === 0 || product.special_mark[0]?.type ===\r\n 'standard') {\r\n <button class=\"btn standard\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\r\n <ng-container *ngIf=\"isCollection; else normalText\">\r\n <span> {{(\"buy\" | translate) | uppercase}} </span>\r\n </ng-container>\r\n <ng-template #normalText>\r\n {{(\"buy\" | translate) | uppercase}}\r\n </ng-template>\r\n </button>\r\n }@else {\r\n <!-- Caso 1: Agotado o Disponible muy pronto -->\r\n @if (product.special_mark[0]?.type === 'out_of_stock' || product.special_mark[0]?.type === 'coming_soon') {\r\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\r\n @if(isCollection){\r\n <span>{{ product.special_mark[0].name | uppercase }} </span>\r\n }@else {\r\n {{ product.special_mark[0]?.name | uppercase }}\r\n }\r\n </button>}\r\n <!-- Caso 2: Contacto por WhatsApp -->\r\n @if (product.special_mark[0].type === 'whatsapp_contact') {\r\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\"\r\n (click)=\"openWhatsApp(product.special_mark[0]?.whatsappContact)\">\r\n @if(isCollection){\r\n <span>{{ product.special_mark[0]?.name | uppercase }}</span>\r\n }@else {\r\n {{ product.special_mark[0]?.name | uppercase }}\r\n }\r\n\r\n </button>\r\n }\r\n <!-- Caso 3: Solicitar m\u00E1s informaci\u00F3n -->\r\n @if (product.special_mark[0]?.type === 'more_info') {\r\n <button class=\"btn\" [ngClass]=\"isCollection ? 'px-2 w-100 d-sm-block' : 'py-2 px-4'\">\r\n @if(isCollection){\r\n <span>{{ product.special_mark[0]?.name | uppercase }}</span>\r\n }@else {\r\n {{ product.special_mark[0]?.name | uppercase }}\r\n }\r\n </button>\r\n }\r\n }\r\n </div>\r\n }}\r\n</a>" }]
|
|
96
96
|
}], ctorParameters: () => [], propDecorators: { product: [{
|
|
97
97
|
type: Input,
|
|
98
98
|
args: [{
|
|
@@ -105,4 +105,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
105
105
|
}], isCollection: [{
|
|
106
106
|
type: Input
|
|
107
107
|
}] } });
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9wcm9kdWN0LWVjL3Byb2R1Y3QtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvcHJvZHVjdC1lYy9wcm9kdWN0LWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQUN0RDs7O0dBR0c7QUFRSCxNQUFNLE9BQU8sa0JBQWtCO0lBQ3ZCLFFBQVEsR0FBYSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV2Qzs7O09BR0c7SUFDSCxpQkFBaUIsQ0FBQyxTQUFpQjtRQUNsQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDOUQsc0NBQXNDO1lBQ3RDLE1BQU0sQ0FBQyxRQUFRLENBQUM7Z0JBQ2YsR0FBRyxFQUFFLENBQUM7Z0JBQ04sSUFBSSxFQUFFLENBQUM7Z0JBQ1AsUUFBUSxFQUFFLFFBQVE7YUFDbEIsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBR0Q7O09BRUc7SUFJSCxPQUFPLENBQVc7SUFDbEI7O09BRUc7SUFDTSxZQUFZLEdBQVksSUFBSSxDQUFDO0lBQ3RDOztPQUVHO0lBQ08sTUFBTSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFFckMsWUFBWSxHQUFZLEtBQUssQ0FBQztJQUV2QyxRQUFRO1FBQ1AsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUVuQyxDQUFDO0lBQ00sMkJBQTJCLEdBQVksS0FBSyxDQUFDO0lBQzdDLFVBQVUsR0FBWSxLQUFLLENBQUM7SUFFM0IsWUFBWSxHQUFnQixNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDaEQsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUM5RDtRQUNDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDOUQsSUFBSSxDQUFDLDJCQUEyQixHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUM7WUFDekUsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFDTyxNQUFNLEdBQXlCLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0lBQzNELGdCQUFnQixHQUFxQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUM3RCxNQUFNLEdBQVcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ3ZDOztPQUVHO0lBQ0ksUUFBUSxHQUFXLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDaEQsWUFBWSxDQUFDLEdBQVc7UUFDdkIsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNULE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzVCLENBQUM7SUFDRixDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2xCLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFlBQVksSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQztJQUN6SCxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUNoRixDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN2QixPQUFPLElBQUksQ0FBQztRQUNiLENBQUM7UUFFRCxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksR0FBRyxDQUFDLENBQUM7UUFDeEUsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBRXhFLHVDQUF1QztRQUN2QyxJQUFJLGFBQWEsSUFBSSxDQUFDLElBQUksU0FBUyxJQUFJLENBQUMsSUFBSSxTQUFTLElBQUksYUFBYSxFQUFFLENBQUM7WUFDeEUsT0FBTyxJQUFJLENBQUM7UUFDYixDQUFDO1FBRUQsc0ZBQXNGO1FBQ3RGLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDLEdBQUcsYUFBYSxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBRXJFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QixDQUFDO3dHQTNGVyxrQkFBa0I7NEZBQWxCLGtCQUFrQixxTUNuQi9CLGk0SEF1RkkseUREeEVPLFlBQVksMlZBQUUsZ0JBQWdCLG9WQUFFLFVBQVUsbU9BQUUsZUFBZTs7NEZBSXpELGtCQUFrQjtrQkFQOUIsU0FBUzsrQkFDQyxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLGVBQWUsQ0FBQzt3REE4QnRFLE9BQU87c0JBSE4sS0FBSzt1QkFBQzt3QkFDTixRQUFRLEVBQUUsSUFBSTtxQkFDZDtnQkFLUSxZQUFZO3NCQUFwQixLQUFLO2dCQUlJLE1BQU07c0JBQWYsTUFBTTtnQkFFRSxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJvZHVjdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ29yZUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQW5hbHl0aWNzU2VydmljZSwgQ2hhbm5lbFNlcnZpY2UsIEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWMtc2VydmljZXMnO1xuaW1wb3J0IHsgUm91dGVyLCBSb3V0ZXJMaW5rIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBQcmljZUVjQ29tcG9uZW50IH0gZnJvbSBcIi4uL3dpZGdldHMtZWMvcHJpY2UtZWMvcHJpY2UtZWMuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbi8qKlxuICogQ29tcG9uZW50ZSBxdWUgc2UgZW5jYXJnYSBkZSBtYW5lamFyIHVuIHByb2R1Y3RvLlxuICogQGNsYXNzIFByb2R1Y3RFY0NvbXBvbmVudFxuICovXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdhcHAtcHJvZHVjdC1lYycsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFByaWNlRWNDb21wb25lbnQsIFJvdXRlckxpbmssIFRyYW5zbGF0ZU1vZHVsZV0sXG5cdHRlbXBsYXRlVXJsOiAnLi9wcm9kdWN0LWVjLmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmw6ICcuL3Byb2R1Y3QtZWMuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIFByb2R1Y3RFY0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cdHB1YmxpYyBpbmplY3RvcjogSW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXHRwcml2YXRlIHJvdXRlclNlcnZpY2UgPSBpbmplY3QoUm91dGVyKTtcblxuXHQvKipcblx0ICogTmF2ZWdhIGFsIGRldGFsbGUgZGVsIHByb2R1Y3RvIHkgc3ViZSBhbCBpbmljaW8gZGUgbGEgcMOhZ2luYVxuXHQgKiBAcGFyYW0gcHJvZHVjdElkIElEIGRlbCBwcm9kdWN0b1xuXHQgKi9cblx0bmF2aWdhdGVUb1Byb2R1Y3QocHJvZHVjdElkOiBzdHJpbmcpOiB2b2lkIHtcblx0XHR0aGlzLnJvdXRlclNlcnZpY2UubmF2aWdhdGUoWycvcHJvZHVjdCcsIHByb2R1Y3RJZF0pLnRoZW4oKCkgPT4ge1xuXHRcdFx0Ly8gU2Nyb2xsIHN1YXZlIGFsIGluaWNpbyBkZSBsYSBww6FnaW5hXG5cdFx0XHR3aW5kb3cuc2Nyb2xsVG8oe1xuXHRcdFx0XHR0b3A6IDAsXG5cdFx0XHRcdGxlZnQ6IDAsXG5cdFx0XHRcdGJlaGF2aW9yOiAnc21vb3RoJ1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cblxuXG5cdC8qKlxuXHQgKiBEYXRvcyBkZWwgcHJvZHVjdG8uXG5cdCAqL1xuXHRASW5wdXQoe1xuXHRcdHJlcXVpcmVkOiB0cnVlXG5cdH0pXG5cdHByb2R1Y3QhOiBQcm9kdWN0O1xuXHQvKipcblx0ICogU2UgdXNhIHBhcmEgc2FiZXIgc2kgZWwgcHJvZHVjdG8gZXMgZGUgdGlwbyBCb3ggbyBubyB5IGRlZmluaXIgbGEgdmlzdGEgYWRlY3VhZGEuXG5cdCAqL1xuXHRASW5wdXQoKSBpc1Byb2R1Y3RCb3g6IGJvb2xlYW4gPSB0cnVlO1xuXHQvKipcblx0ICogQ29uc3RhbnRlcyBkZWwgY29yZVxuXHQgKi9cblx0QE91dHB1dCgpIGxvYWRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG5cdEBJbnB1dCgpIGlzQ29sbGVjdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG5cdG5nT25Jbml0KCkge1xuXHRcdHRoaXMubG9hZGVkLmVtaXQodGhpcy5wcm9kdWN0LmlkKTtcblxuXHR9XG5cdHB1YmxpYyBzaG93UHJpY2VzT25seVRvTG9nZ2VkVXNlcnM6IGJvb2xlYW4gPSBmYWxzZTtcblx0cHVibGljIGhpZGVQcmljZXM6IGJvb2xlYW4gPSBmYWxzZTtcblxuXHRwcml2YXRlIF9hdXRoU2VydmljZTogQXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpXG5cdHB1YmxpYyBpc0F1dGhlbnRpY2F0ZWQkID0gdGhpcy5fYXV0aFNlcnZpY2UuaXNBdXRoZW50aWNhdGVkKCk7XG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHRoaXMuaW5qZWN0b3IuZ2V0KENoYW5uZWxTZXJ2aWNlKS5jaGFubmVsJC5zdWJzY3JpYmUoY2hhbm5lbCA9PiB7XG5cdFx0XHR0aGlzLnNob3dQcmljZXNPbmx5VG9Mb2dnZWRVc2VycyA9ICEhY2hhbm5lbC5zaG93UHJpY2VzT25seVRvTG9nZ2VkVXNlcnM7XG5cdFx0XHR0aGlzLmhpZGVQcmljZXMgPSAhIWNoYW5uZWwuaGlkZVByaWNlcztcblx0XHR9KTtcblx0fVxuXHRwcml2YXRlIGNvbnN0czogQ29yZUNvbnN0YW50c1NlcnZpY2UgPSBpbmplY3QoQ29yZUNvbnN0YW50c1NlcnZpY2UpXG5cdHByaXZhdGUgYW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzU2VydmljZSA9IGluamVjdChBbmFseXRpY3NTZXJ2aWNlKVxuXHRwcml2YXRlIHJvdXRlcjogUm91dGVyID0gaW5qZWN0KFJvdXRlcilcblx0LyoqXG5cdCAqIFVSTCBwYXJhIGxhcyBpbWFnZW5lcyBkZWwgcHJvZHVjdG8uXG5cdCAqL1xuXHRwdWJsaWMgbWVkaWFVcmw6IHN0cmluZyA9IHRoaXMuY29uc3RzLm1lZGlhVXJsKClcblx0b3BlbldoYXRzQXBwKHVybDogc3RyaW5nKTogdm9pZCB7XG5cdFx0aWYgKHVybCkge1xuXHRcdFx0d2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJyk7XG5cdFx0fVxuXHR9XG5cblx0Z2V0IHNob3VsZFNob3dQcmljZSgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gIXRoaXMucHJvZHVjdD8uc3BlY2lhbF9tYXJrIHx8IHRoaXMucHJvZHVjdC5zcGVjaWFsX21hcmsubGVuZ3RoID09PSAwIHx8IHRoaXMucHJvZHVjdC5zcGVjaWFsX21hcmtbMF0/LnNob3dQcmljZTtcblx0fVxuXG5cdGdldCBoYXNEaXNjb3VudCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5wcm9kdWN0LnNhbGVwcmljZSAmJiB0aGlzLnByb2R1Y3Quc2FsZXByaWNlICE9PSB0aGlzLnByb2R1Y3QucHJpY2U7XG5cdH1cblxuXHRnZXQgZGlzY291bnRQZXJjZW50YWdlKCk6IG51bWJlciB8IG51bGwge1xuXHRcdGlmICghdGhpcy5oYXNEaXNjb3VudCkge1xuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fVxuXG5cdFx0Y29uc3Qgb3JpZ2luYWxQcmljZSA9IHBhcnNlRmxvYXQodGhpcy5wcm9kdWN0LnByaWNlPy50b1N0cmluZygpIHx8ICcwJyk7XG5cdFx0Y29uc3Qgc2FsZVByaWNlID0gcGFyc2VGbG9hdCh0aGlzLnByb2R1Y3Quc2FsZXByaWNlPy50b1N0cmluZygpIHx8ICcwJyk7XG5cblx0XHQvLyBWYWxpZGFyIHF1ZSBsb3MgcHJlY2lvcyBzZWFuIHbDoWxpZG9zXG5cdFx0aWYgKG9yaWdpbmFsUHJpY2UgPD0gMCB8fCBzYWxlUHJpY2UgPD0gMCB8fCBzYWxlUHJpY2UgPj0gb3JpZ2luYWxQcmljZSkge1xuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fVxuXG5cdFx0Ly8gQ2FsY3VsYXIgZWwgcG9yY2VudGFqZTogKChwcmVjaW9fb3JpZ2luYWwgLSBwcmVjaW9fb2ZlcnRhKSAvIHByZWNpb19vcmlnaW5hbCkgKiAxMDBcblx0XHRjb25zdCBkaXNjb3VudCA9ICgob3JpZ2luYWxQcmljZSAtIHNhbGVQcmljZSkgLyBvcmlnaW5hbFByaWNlKSAqIDEwMDtcblxuXHRcdHJldHVybiBNYXRoLnJvdW5kKGRpc2NvdW50KTtcblx0fVxufVxuIiwiPGEgW3JvdXRlckxpbmtdPVwiWycvcHJvZHVjdCcsIHByb2R1Y3QuaWRdXCIgY2xhc3M9XCJ0ZXh0LWRlY29yYXRpb24tbm9uZSBwcm9kdWN0b1wiPlxuICAgIDwhLS0gTWFyY2EgZXNwZWNpYWwgeSBkZXNjdWVudG8gLS0+XG4gICAgPCEtLSA8ZGl2ICpuZ0lmPVwicHJvZHVjdC5zYWxlcHJpY2UgfHwgKHByb2R1Y3Quc3BlY2lhbF9tYXJrICYmIHByb2R1Y3Quc3BlY2lhbF9tYXJrICE9PSBudWxsICYmIHByb2R1Y3Quc3BlY2lhbF9tYXJrICE9PSB1bmRlZmluZWQgJiYgcHJvZHVjdC5zcGVjaWFsX21hcmsubGVuZ3RoID4wKVwiXG4gICAgICAgIGNsYXNzPVwibWFyY2FzXCI+XG4gICAgICAgIDxkaXYgKmVjUHJvZHVjdFN0b2NrPVwicHJvZHVjdFwiIFtlY1Byb2R1Y3RNaW5pXT1cInByb2R1Y3Quc3BlY2lhbF9tYXJrXCI+PC9kaXY+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG91bGRTaG93UHJpY2VcIj5cbiAgICAgICAgICAgIDxkaXYgKmVjUHJvZHVjdFN0b2NrPVwicHJvZHVjdFwiIFtuZ0NsYXNzXT1cInsndGFnLWRzYyBmbG9hdC1yaWdodCc6IHByb2R1Y3Quc2FsZXByaWNlfVwiXG4gICAgICAgICAgICAgICAgW2VjUHJvZHVjdE9mZl09XCJwcm9kdWN0XCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+IC0tPlxuXG4gICAgPCEtLSBJbWFnZW4gZGVsIHByb2R1Y3RvIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJmb3RvXCI+XG4gICAgICAgIEBpZihwcm9kdWN0LnBpY3R1cmVzZGVmYXVsdCl7XG4gICAgICAgIEBpZiAocHJvZHVjdC5waWN0dXJlc2RlZmF1bHQgJiYgcHJvZHVjdC5waWN0dXJlc2RlZmF1bHQubGVuZ3RoID4gMSApIHtcbiAgICAgICAgPGltZyBbc3JjXT1cIm1lZGlhVXJsICsgcHJvZHVjdC5waWN0dXJlc2RlZmF1bHRbMF1cIiBhbHQ9XCJJbWFnZW4gcHJpbmNpcGFsXCIgY2xhc3M9XCJ3LTEwMCBwaWMwMVwiIC8+XG4gICAgICAgIDxpbWcgW3NyY109XCJtZWRpYVVybCArIHByb2R1Y3QucGljdHVyZXNkZWZhdWx0WzFdXCIgYWx0PVwiSW1hZ2VuIHNlY3VuZGFyaWFcIiBjbGFzcz1cInctMTAwIHBpYzAyXCIgLz5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxpbWcgW3NyY109XCJtZWRpYVVybCArIHByb2R1Y3QucGljdHVyZXNkZWZhdWx0WzBdXCIgYWx0PVwiSW1hZ2VuIHByaW5jaXBhbFwiIGNsYXNzPVwidy0xMDAgcGljMDFcIiAvPlxuICAgICAgICB9XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICA8IS0tIFByZWNpbyAtLT5cblxuXG4gICAgPCEtLSBOb21icmUgZGVsIHByb2R1Y3RvIC0tPlxuICAgIDxoNiBjbGFzcz1cInRpdGxlXCI+e3sgcHJvZHVjdC5uYW1lIHwgdGl0bGVjYXNlIH19PC9oNj5cblxuICAgIDxkaXYgY2xhc3M9XCJza3VcIiBbaW5uZXJIVE1MXT1cInByb2R1Y3Quc2hvcnRkZXRhaWxzXCI+PC9kaXY+XG5cbiAgICBAaWYgKHNob3VsZFNob3dQcmljZSkge1xuICAgIDxhcHAtcHJpY2UtZWMgW3ByaWNlXT1cInByb2R1Y3QucHJpY2VcIiBbc2FsZXByaWNlXT1cInByb2R1Y3Quc2FsZXByaWNlXCIgY2xhc3M9XCJcIiAvPlxuICAgIH1cbiAgICBAaWYoIWhpZGVQcmljZXMpe1xuICAgIEBpZighc2hvd1ByaWNlc09ubHlUb0xvZ2dlZFVzZXJzIHx8IGlzQXV0aGVudGljYXRlZCQpe1xuXG4gICAgPGRpdiBjbGFzcz1cImZpeEJvdHRvbVwiPlxuXG4gICAgICAgIDwhLS0gQm90w7NuIGRlIGFjY2lvbmVzIC0tPlxuICAgICAgICA8IS0tIDxuZy1jb250YWluZXIgKmVjUHJvZHVjdFN0b2NrPVwicHJvZHVjdDsgZWxzZSBub1N0b2NrXCI+IC0tPlxuICAgICAgICA8IS0tIEN1YW5kbyBubyB0aWVuZSBtYXJjYSBlc3BlY2lhbCBvIGVzIGRlIHRpcG8gJ3N0YW5kYXJkJyAtLT5cbiAgICAgICAgQGlmICghcHJvZHVjdC5zcGVjaWFsX21hcmsgfHwgcHJvZHVjdC5zcGVjaWFsX21hcmsubGVuZ3RoID09PSAwIHx8IHByb2R1Y3Quc3BlY2lhbF9tYXJrWzBdPy50eXBlID09PVxuICAgICAgICAnc3RhbmRhcmQnKSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gc3RhbmRhcmRcIiBbbmdDbGFzc109XCJpc0NvbGxlY3Rpb24gPyAncHgtMiB3LTEwMCBkLXNtLWJsb2NrJyA6ICdweS0yIHB4LTQnXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNDb2xsZWN0aW9uOyBlbHNlIG5vcm1hbFRleHRcIj5cbiAgICAgICAgICAgICAgICA8c3Bhbj4ge3soXCJidXlcIiB8IHRyYW5zbGF0ZSkgfCB1cHBlcmNhc2V9fSA8L3NwYW4+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9ybWFsVGV4dD5cbiAgICAgICAgICAgICAgICB7eyhcImJ1eVwiIHwgdHJhbnNsYXRlKSB8IHVwcGVyY2FzZX19XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfUBlbHNlIHtcbiAgICAgICAgPCEtLSBDYXNvIDE6IEFnb3RhZG8gbyBEaXNwb25pYmxlIG11eSBwcm9udG8gLS0+XG4gICAgICAgIEBpZiAocHJvZHVjdC5zcGVjaWFsX21hcmtbMF0/LnR5cGUgPT09ICdvdXRfb2Zfc3RvY2snIHx8IHByb2R1Y3Quc3BlY2lhbF9tYXJrWzBdPy50eXBlID09PSAnY29taW5nX3Nvb24nKSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG5cIiBbbmdDbGFzc109XCJpc0NvbGxlY3Rpb24gPyAncHgtMiB3LTEwMCBkLXNtLWJsb2NrJyA6ICdweS0yIHB4LTQnXCI+XG4gICAgICAgICAgICBAaWYoaXNDb2xsZWN0aW9uKXtcbiAgICAgICAgICAgIDxzcGFuPnt7IHByb2R1Y3Quc3BlY2lhbF9tYXJrWzBdLm5hbWUgfCB1cHBlcmNhc2UgfX0gPC9zcGFuPlxuICAgICAgICAgICAgfUBlbHNlIHtcbiAgICAgICAgICAgIHt7IHByb2R1Y3Quc3BlY2lhbF9tYXJrWzBdPy5uYW1lIHwgdXBwZXJjYXNlIH19XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvYnV0dG9uPn1cbiAgICAgICAgPCEtLSBDYXNvIDI6IENvbnRhY3RvIHBvciBXaGF0c0FwcCAtLT5cbiAgICAgICAgQGlmIChwcm9kdWN0LnNwZWNpYWxfbWFya1swXS50eXBlID09PSAnd2hhdHNhcHBfY29udGFjdCcpIHtcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0blwiIFtuZ0NsYXNzXT1cImlzQ29sbGVjdGlvbiA/ICdweC0yIHctMTAwIGQtc20tYmxvY2snIDogJ3B5LTIgcHgtNCdcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5XaGF0c0FwcChwcm9kdWN0LnNwZWNpYWxfbWFya1swXT8ud2hhdHNhcHBDb250YWN0KVwiPlxuICAgICAgICAgICAgQGlmKGlzQ29sbGVjdGlvbil7XG4gICAgICAgICAgICA8c3Bhbj57eyBwcm9kdWN0LnNwZWNpYWxfbWFya1swXT8ubmFtZSB8IHVwcGVyY2FzZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIH1AZWxzZSB7XG4gICAgICAgICAgICB7eyBwcm9kdWN0LnNwZWNpYWxfbWFya1swXT8ubmFtZSB8IHVwcGVyY2FzZSB9fVxuICAgICAgICAgICAgfVxuXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICAgIDwhLS0gQ2FzbyAzOiBTb2xpY2l0YXIgbcOhcyBpbmZvcm1hY2nDs24gLS0+XG4gICAgICAgIEBpZiAocHJvZHVjdC5zcGVjaWFsX21hcmtbMF0/LnR5cGUgPT09ICdtb3JlX2luZm8nKSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG5cIiBbbmdDbGFzc109XCJpc0NvbGxlY3Rpb24gPyAncHgtMiB3LTEwMCBkLXNtLWJsb2NrJyA6ICdweS0yIHB4LTQnXCI+XG4gICAgICAgICAgICBAaWYoaXNDb2xsZWN0aW9uKXtcbiAgICAgICAgICAgIDxzcGFuPnt7IHByb2R1Y3Quc3BlY2lhbF9tYXJrWzBdPy5uYW1lIHwgdXBwZXJjYXNlIH19PC9zcGFuPlxuICAgICAgICAgICAgfUBlbHNlIHtcbiAgICAgICAgICAgIHt7IHByb2R1Y3Quc3BlY2lhbF9tYXJrWzBdPy5uYW1lIHwgdXBwZXJjYXNlIH19XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICB9fVxuPC9hPiJdfQ==
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9wcm9kdWN0LWVjL3Byb2R1Y3QtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvcHJvZHVjdC1lYy9wcm9kdWN0LWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQUN0RDs7O0dBR0c7QUFRSCxNQUFNLE9BQU8sa0JBQWtCO0lBQ3ZCLFFBQVEsR0FBYSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV2Qzs7O09BR0c7SUFDSCxpQkFBaUIsQ0FBQyxTQUFpQjtRQUNsQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFVBQVUsRUFB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YixDQUFDO1FBRUQsc0ZBQXNGO1FBQ3RGLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDLEdBQUcsYUFBYSxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBRXJFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QixDQUFDO3dHQTNGVyxrQkFBa0I7NEZBQWxCLGtCQUFrQixxTUNuQi9CLCtpSUF1RkkseUREeEVPLFlBQVksMlZBQUUsZ0JBQWdCLG9WQUFFLFVBQVUsbU9BQUUsZUFBZTs7NEZBSXpELGtCQUFrQjtrQkFQOUIsU0FBUzsrQkFDQyxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLGVBQWUsQ0FBQzt3REE4QnRFLE9BQU87c0JBSE4sS0FBSzt1QkFBQzt3QkFDTixRQUFRLEVBQUUsSUFBSTtxQkFDZDtnQkFLUSxZQUFZO3NCQUFwQixLQUFLO2dCQUlJLE1BQU07c0JBQWYsTUFBTTtnQkFFRSxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQcm9kdWN0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IENvcmVDb25zdGFudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcclxuaW1wb3J0IHsgQW5hbHl0aWNzU2VydmljZSwgQ2hhbm5lbFNlcnZpY2UsIEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWMtc2VydmljZXMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIsIFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBQcmljZUVjQ29tcG9uZW50IH0gZnJvbSBcIi4uL3dpZGdldHMtZWMvcHJpY2UtZWMvcHJpY2UtZWMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG4vKipcclxuICogQ29tcG9uZW50ZSBxdWUgc2UgZW5jYXJnYSBkZSBtYW5lamFyIHVuIHByb2R1Y3RvLlxyXG4gKiBAY2xhc3MgUHJvZHVjdEVjQ29tcG9uZW50XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2FwcC1wcm9kdWN0LWVjJyxcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFByaWNlRWNDb21wb25lbnQsIFJvdXRlckxpbmssIFRyYW5zbGF0ZU1vZHVsZV0sXHJcblx0dGVtcGxhdGVVcmw6ICcuL3Byb2R1Y3QtZWMuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsOiAnLi9wcm9kdWN0LWVjLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvZHVjdEVjQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHRwdWJsaWMgaW5qZWN0b3I6IEluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcclxuXHRwcml2YXRlIHJvdXRlclNlcnZpY2UgPSBpbmplY3QoUm91dGVyKTtcclxuXHJcblx0LyoqXHJcblx0ICogTmF2ZWdhIGFsIGRldGFsbGUgZGVsIHByb2R1Y3RvIHkgc3ViZSBhbCBpbmljaW8gZGUgbGEgcMOhZ2luYVxyXG5cdCAqIEBwYXJhbSBwcm9kdWN0SWQgSUQgZGVsIHByb2R1Y3RvXHJcblx0ICovXHJcblx0bmF2aWdhdGVUb1Byb2R1Y3QocHJvZHVjdElkOiBzdHJpbmcpOiB2b2lkIHtcclxuXHRcdHRoaXMucm91dGVyU2VydmljZS5uYXZpZ2F0ZShbJy9wcm9kdWN0JywgcHJvZHVjdElkXSkudGhlbigoKSA9PiB7XHJcblx0XHRcdC8vIFNjcm9sbCBzdWF2ZSBhbCBpbmljaW8gZGUgbGEgcMOhZ2luYVxyXG5cdFx0XHR3aW5kb3cuc2Nyb2xsVG8oe1xyXG5cdFx0XHRcdHRvcDogMCxcclxuXHRcdFx0XHRsZWZ0OiAwLFxyXG5cdFx0XHRcdGJlaGF2aW9yOiAnc21vb3RoJ1xyXG5cdFx0XHR9KTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblxyXG5cdC8qKlxyXG5cdCAqIERhdG9zIGRlbCBwcm9kdWN0by5cclxuXHQgKi9cclxuXHRASW5wdXQoe1xyXG5cdFx0cmVxdWlyZWQ6IHRydWVcclxuXHR9KVxyXG5cdHByb2R1Y3QhOiBQcm9kdWN0O1xyXG5cdC8qKlxyXG5cdCAqIFNlIHVzYSBwYXJhIHNhYmVyIHNpIGVsIHByb2R1Y3RvIGVzIGRlIHRpcG8gQm94IG8gbm8geSBkZWZpbmlyIGxhIHZpc3RhIGFkZWN1YWRhLlxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpIGlzUHJvZHVjdEJveDogYm9vbGVhbiA9IHRydWU7XHJcblx0LyoqXHJcblx0ICogQ29uc3RhbnRlcyBkZWwgY29yZVxyXG5cdCAqL1xyXG5cdEBPdXRwdXQoKSBsb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuXHJcblx0QElucHV0KCkgaXNDb2xsZWN0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cdG5nT25Jbml0KCkge1xyXG5cdFx0dGhpcy5sb2FkZWQuZW1pdCh0aGlzLnByb2R1Y3QuaWQpO1xyXG5cclxuXHR9XHJcblx0cHVibGljIHNob3dQcmljZXNPbmx5VG9Mb2dnZWRVc2VyczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdHB1YmxpYyBoaWRlUHJpY2VzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cdHByaXZhdGUgX2F1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSlcclxuXHRwdWJsaWMgaXNBdXRoZW50aWNhdGVkJCA9IHRoaXMuX2F1dGhTZXJ2aWNlLmlzQXV0aGVudGljYXRlZCgpO1xyXG5cdGNvbnN0cnVjdG9yKCkge1xyXG5cdFx0dGhpcy5pbmplY3Rvci5nZXQoQ2hhbm5lbFNlcnZpY2UpLmNoYW5uZWwkLnN1YnNjcmliZShjaGFubmVsID0+IHtcclxuXHRcdFx0dGhpcy5zaG93UHJpY2VzT25seVRvTG9nZ2VkVXNlcnMgPSAhIWNoYW5uZWwuc2hvd1ByaWNlc09ubHlUb0xvZ2dlZFVzZXJzO1xyXG5cdFx0XHR0aGlzLmhpZGVQcmljZXMgPSAhIWNoYW5uZWwuaGlkZVByaWNlcztcclxuXHRcdH0pO1xyXG5cdH1cclxuXHRwcml2YXRlIGNvbnN0czogQ29yZUNvbnN0YW50c1NlcnZpY2UgPSBpbmplY3QoQ29yZUNvbnN0YW50c1NlcnZpY2UpXHJcblx0cHJpdmF0ZSBhbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3NTZXJ2aWNlID0gaW5qZWN0KEFuYWx5dGljc1NlcnZpY2UpXHJcblx0cHJpdmF0ZSByb3V0ZXI6IFJvdXRlciA9IGluamVjdChSb3V0ZXIpXHJcblx0LyoqXHJcblx0ICogVVJMIHBhcmEgbGFzIGltYWdlbmVzIGRlbCBwcm9kdWN0by5cclxuXHQgKi9cclxuXHRwdWJsaWMgbWVkaWFVcmw6IHN0cmluZyA9IHRoaXMuY29uc3RzLm1lZGlhVXJsKClcclxuXHRvcGVuV2hhdHNBcHAodXJsOiBzdHJpbmcpOiB2b2lkIHtcclxuXHRcdGlmICh1cmwpIHtcclxuXHRcdFx0d2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJyk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRnZXQgc2hvdWxkU2hvd1ByaWNlKCk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuICF0aGlzLnByb2R1Y3Q/LnNwZWNpYWxfbWFyayB8fCB0aGlzLnByb2R1Y3Quc3BlY2lhbF9tYXJrLmxlbmd0aCA9PT0gMCB8fCB0aGlzLnByb2R1Y3Quc3BlY2lhbF9tYXJrWzBdPy5zaG93UHJpY2U7XHJcblx0fVxyXG5cclxuXHRnZXQgaGFzRGlzY291bnQoKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy5wcm9kdWN0LnNhbGVwcmljZSAmJiB0aGlzLnByb2R1Y3Quc2FsZXByaWNlICE9PSB0aGlzLnByb2R1Y3QucHJpY2U7XHJcblx0fVxyXG5cclxuXHRnZXQgZGlzY291bnRQZXJjZW50YWdlKCk6IG51bWJlciB8IG51bGwge1xyXG5cdFx0aWYgKCF0aGlzLmhhc0Rpc2NvdW50KSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IG9yaWdpbmFsUHJpY2UgPSBwYXJzZUZsb2F0KHRoaXMucHJvZHVjdC5wcmljZT8udG9TdHJpbmcoKSB8fCAnMCcpO1xyXG5cdFx0Y29uc3Qgc2FsZVByaWNlID0gcGFyc2VGbG9hdCh0aGlzLnByb2R1Y3Quc2FsZXByaWNlPy50b1N0cmluZygpIHx8ICcwJyk7XHJcblxyXG5cdFx0Ly8gVmFsaWRhciBxdWUgbG9zIHByZWNpb3Mgc2VhbiB2w6FsaWRvc1xyXG5cdFx0aWYgKG9yaWdpbmFsUHJpY2UgPD0gMCB8fCBzYWxlUHJpY2UgPD0gMCB8fCBzYWxlUHJpY2UgPj0gb3JpZ2luYWxQcmljZSkge1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBDYWxjdWxhciBlbCBwb3JjZW50YWplOiAoKHByZWNpb19vcmlnaW5hbCAtIHByZWNpb19vZmVydGEpIC8gcHJlY2lvX29yaWdpbmFsKSAqIDEwMFxyXG5cdFx0Y29uc3QgZGlzY291bnQgPSAoKG9yaWdpbmFsUHJpY2UgLSBzYWxlUHJpY2UpIC8gb3JpZ2luYWxQcmljZSkgKiAxMDA7XHJcblxyXG5cdFx0cmV0dXJuIE1hdGgucm91bmQoZGlzY291bnQpO1xyXG5cdH1cclxufVxyXG4iLCI8YSBbcm91dGVyTGlua109XCJbJy9wcm9kdWN0JywgcHJvZHVjdC5pZF1cIiBjbGFzcz1cInRleHQtZGVjb3JhdGlvbi1ub25lIHByb2R1Y3RvXCI+XHJcbiAgICA8IS0tIE1hcmNhIGVzcGVjaWFsIHkgZGVzY3VlbnRvIC0tPlxyXG4gICAgPCEtLSA8ZGl2ICpuZ0lmPVwicHJvZHVjdC5zYWxlcHJpY2UgfHwgKHByb2R1Y3Quc3BlY2lhbF9tYXJrICYmIHByb2R1Y3Quc3BlY2lhbF9tYXJrICE9PSBudWxsICYmIHByb2R1Y3Quc3BlY2lhbF9tYXJrICE9PSB1bmRlZmluZWQgJiYgcHJvZHVjdC5zcGVjaWFsX21hcmsubGVuZ3RoID4wKVwiXHJcbiAgICAgICAgY2xhc3M9XCJtYXJjYXNcIj5cclxuICAgICAgICA8ZGl2ICplY1Byb2R1Y3RTdG9jaz1cInByb2R1Y3RcIiBbZWNQcm9kdWN0TWluaV09XCJwcm9kdWN0LnNwZWNpYWxfbWFya1wiPjwvZGl2PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG91bGRTaG93UHJpY2VcIj5cclxuICAgICAgICAgICAgPGRpdiAqZWNQcm9kdWN0U3RvY2s9XCJwcm9kdWN0XCIgW25nQ2xhc3NdPVwieyd0YWctZHNjIGZsb2F0LXJpZ2h0JzogcHJvZHVjdC5zYWxlcHJpY2V9XCJcclxuICAgICAgICAgICAgICAgIFtlY1Byb2R1Y3RPZmZdPVwicHJvZHVjdFwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PiAtLT5cclxuXHJcbiAgICA8IS0tIEltYWdlbiBkZWwgcHJvZHVjdG8gLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm90b1wiPlxyXG4gICAgICAgIEBpZihwcm9kdWN0LnBpY3R1cmVzZGVmYXVsdCl7XHJcbiAgICAgICAgQGlmIChwcm9kdWN0LnBpY3R1cmVzZGVmYXVsdCAmJiBwcm9kdWN0LnBpY3R1cmVzZGVmYXVsdC5sZW5ndGggPiAxICkge1xyXG4gICAgICAgIDxpbWcgW3NyY109XCJtZWRpYVVybCArIHByb2R1Y3QucGljdHVyZXNkZWZhdWx0WzBdXCIgYWx0PVwiSW1hZ2VuIHByaW5jaXBhbFwiIGNsYXNzPVwidy0xMDAgcGljMDFcIiAvPlxyXG4gICAgICAgIDxpbWcgW3NyY109XCJtZWRpYVVybCArIHByb2R1Y3QucGljdHVyZXNkZWZhdWx0WzFdXCIgYWx0PVwiSW1hZ2VuIHNlY3VuZGFyaWFcIiBjbGFzcz1cInctMTAwIHBpYzAyXCIgLz5cclxuICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICA8aW1nIFtzcmNdPVwibWVkaWFVcmwgKyBwcm9kdWN0LnBpY3R1cmVzZGVmYXVsdFswXVwiIGFsdD1cIkltYWdlbiBwcmluY2lwYWxcIiBjbGFzcz1cInctMTAwIHBpYzAxXCIgLz5cclxuICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIFByZWNpbyAtLT5cclxuXHJcblxyXG4gICAgPCEtLSBOb21icmUgZGVsIHByb2R1Y3RvIC0tPlxyXG4gICAgPGg2IGNsYXNzPVwidGl0bGVcIj57eyBwcm9kdWN0Lm5hbWUgfCB0aXRsZWNhc2UgfX08L2g2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJza3VcIiBbaW5uZXJIVE1MXT1cInByb2R1Y3Quc2hvcnRkZXRhaWxzXCI+PC9kaXY+XHJcblxyXG4gICAgQGlmIChzaG91bGRTaG93UHJpY2UpIHtcclxuICAgIDxhcHAtcHJpY2UtZWMgW3ByaWNlXT1cInByb2R1Y3QucHJpY2VcIiBbc2FsZXByaWNlXT1cInByb2R1Y3Quc2FsZXByaWNlXCIgY2xhc3M9XCJcIiAvPlxyXG4gICAgfVxyXG4gICAgQGlmKCFoaWRlUHJpY2VzKXtcclxuICAgIEBpZighc2hvd1ByaWNlc09ubHlUb0xvZ2dlZFVzZXJzIHx8IGlzQXV0aGVudGljYXRlZCQpe1xyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJmaXhCb3R0b21cIj5cclxuXHJcbiAgICAgICAgPCEtLSBCb3TDs24gZGUgYWNjaW9uZXMgLS0+XHJcbiAgICAgICAgPCEtLSA8bmctY29udGFpbmVyICplY1Byb2R1Y3RTdG9jaz1cInByb2R1Y3Q7IGVsc2Ugbm9TdG9ja1wiPiAtLT5cclxuICAgICAgICA8IS0tIEN1YW5kbyBubyB0aWVuZSBtYXJjYSBlc3BlY2lhbCBvIGVzIGRlIHRpcG8gJ3N0YW5kYXJkJyAtLT5cclxuICAgICAgICBAaWYgKCFwcm9kdWN0LnNwZWNpYWxfbWFyayB8fCBwcm9kdWN0LnNwZWNpYWxfbWFyay5sZW5ndGggPT09IDAgfHwgcHJvZHVjdC5zcGVjaWFsX21hcmtbMF0/LnR5cGUgPT09XHJcbiAgICAgICAgJ3N0YW5kYXJkJykge1xyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gc3RhbmRhcmRcIiBbbmdDbGFzc109XCJpc0NvbGxlY3Rpb24gPyAncHgtMiB3LTEwMCBkLXNtLWJsb2NrJyA6ICdweS0yIHB4LTQnXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0NvbGxlY3Rpb247IGVsc2Ugbm9ybWFsVGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+IHt7KFwiYnV5XCIgfCB0cmFuc2xhdGUpIHwgdXBwZXJjYXNlfX0gPC9zcGFuPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub3JtYWxUZXh0PlxyXG4gICAgICAgICAgICAgICAge3soXCJidXlcIiB8IHRyYW5zbGF0ZSkgfCB1cHBlcmNhc2V9fVxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgPCEtLSBDYXNvIDE6IEFnb3RhZG8gbyBEaXNwb25pYmxlIG11eSBwcm9udG8gLS0+XHJcbiAgICAgICAgQGlmIChwcm9kdWN0LnNwZWNpYWxfbWFya1swXT8udHlwZSA9PT0gJ291dF9vZl9zdG9jaycgfHwgcHJvZHVjdC5zcGVjaWFsX21hcmtbMF0/LnR5cGUgPT09ICdjb21pbmdfc29vbicpIHtcclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuXCIgW25nQ2xhc3NdPVwiaXNDb2xsZWN0aW9uID8gJ3B4LTIgdy0xMDAgZC1zbS1ibG9jaycgOiAncHktMiBweC00J1wiPlxyXG4gICAgICAgICAgICBAaWYoaXNDb2xsZWN0aW9uKXtcclxuICAgICAgICAgICAgPHNwYW4+e3sgcHJvZHVjdC5zcGVjaWFsX21hcmtbMF0ubmFtZSB8IHVwcGVyY2FzZSB9fSA8L3NwYW4+XHJcbiAgICAgICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgICAgIHt7IHByb2R1Y3Quc3BlY2lhbF9tYXJrWzBdPy5uYW1lIHwgdXBwZXJjYXNlIH19XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2J1dHRvbj59XHJcbiAgICAgICAgPCEtLSBDYXNvIDI6IENvbnRhY3RvIHBvciBXaGF0c0FwcCAtLT5cclxuICAgICAgICBAaWYgKHByb2R1Y3Quc3BlY2lhbF9tYXJrWzBdLnR5cGUgPT09ICd3aGF0c2FwcF9jb250YWN0Jykge1xyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG5cIiBbbmdDbGFzc109XCJpc0NvbGxlY3Rpb24gPyAncHgtMiB3LTEwMCBkLXNtLWJsb2NrJyA6ICdweS0yIHB4LTQnXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5XaGF0c0FwcChwcm9kdWN0LnNwZWNpYWxfbWFya1swXT8ud2hhdHNhcHBDb250YWN0KVwiPlxyXG4gICAgICAgICAgICBAaWYoaXNDb2xsZWN0aW9uKXtcclxuICAgICAgICAgICAgPHNwYW4+e3sgcHJvZHVjdC5zcGVjaWFsX21hcmtbMF0/Lm5hbWUgfCB1cHBlcmNhc2UgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgICAgIHt7IHByb2R1Y3Quc3BlY2lhbF9tYXJrWzBdPy5uYW1lIHwgdXBwZXJjYXNlIH19XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDwhLS0gQ2FzbyAzOiBTb2xpY2l0YXIgbcOhcyBpbmZvcm1hY2nDs24gLS0+XHJcbiAgICAgICAgQGlmIChwcm9kdWN0LnNwZWNpYWxfbWFya1swXT8udHlwZSA9PT0gJ21vcmVfaW5mbycpIHtcclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuXCIgW25nQ2xhc3NdPVwiaXNDb2xsZWN0aW9uID8gJ3B4LTIgdy0xMDAgZC1zbS1ibG9jaycgOiAncHktMiBweC00J1wiPlxyXG4gICAgICAgICAgICBAaWYoaXNDb2xsZWN0aW9uKXtcclxuICAgICAgICAgICAgPHNwYW4+e3sgcHJvZHVjdC5zcGVjaWFsX21hcmtbMF0/Lm5hbWUgfCB1cHBlcmNhc2UgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgICAgIHt7IHByb2R1Y3Quc3BlY2lhbF9tYXJrWzBdPy5uYW1lIHwgdXBwZXJjYXNlIH19XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgICB9fVxyXG48L2E+Il19
|
|
@@ -67,9 +67,11 @@ export class RelatedProductsEcComponent extends BlockEcComponent {
|
|
|
67
67
|
this._relatedProductsSubject.next(relatedProducts);
|
|
68
68
|
res.map((products) => this._analyticsService.callEvent('view_item_list', { products: products.items, item_list_name: products.title || 'Related Products', item_list_id: products.id || 'related-products' }));
|
|
69
69
|
// Inicializar swiper después de que los datos estén disponibles
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
70
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
71
|
+
setTimeout(() => {
|
|
72
|
+
this.initSwiper();
|
|
73
|
+
}, 100);
|
|
74
|
+
}
|
|
73
75
|
});
|
|
74
76
|
}
|
|
75
77
|
initSwiper() {
|
|
@@ -97,11 +99,11 @@ export class RelatedProductsEcComponent extends BlockEcComponent {
|
|
|
97
99
|
}
|
|
98
100
|
}
|
|
99
101
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RelatedProductsEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
100
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RelatedProductsEcComponent, isStandalone: true, selector: "app-related-products-ec", inputs: { appProduct: "appProduct", productID: "productID" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
102
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RelatedProductsEcComponent, isStandalone: true, selector: "app-related-products-ec", inputs: { appProduct: "appProduct", productID: "productID" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
101
103
|
}
|
|
102
104
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RelatedProductsEcComponent, decorators: [{
|
|
103
105
|
type: Component,
|
|
104
|
-
args: [{ selector: 'app-related-products-ec', standalone: true, imports: [AsyncPipe, ProductEcComponent, CommonModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "\n" }]
|
|
106
|
+
args: [{ selector: 'app-related-products-ec', standalone: true, imports: [AsyncPipe, ProductEcComponent, CommonModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "\r\n" }]
|
|
105
107
|
}], ctorParameters: () => [], propDecorators: { appProduct: [{
|
|
106
108
|
type: Input
|
|
107
109
|
}], productID: [{
|
|
@@ -110,4 +112,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
110
112
|
required: true
|
|
111
113
|
}]
|
|
112
114
|
}] } });
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRlZC1wcm9kdWN0cy1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9yZWxhdGVkLXByb2R1Y3RzLWVjL3JlbGF0ZWQtcHJvZHVjdHMtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvcmVsYXRlZC1wcm9kdWN0cy1lYy9yZWxhdGVkLXByb2R1Y3RzLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBOEIsc0JBQXNCLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBK0IsTUFBTSxlQUFlLENBQUM7QUFDL0osT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFjLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTdFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBR3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQVU5RCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsZ0JBQWdCO0lBQ3BELGdCQUFnQixHQUFvQixNQUFNLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDM0QsaUJBQWlCLEdBQXFCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBQzlELE9BQU8sR0FBVyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDdkM7O0dBRUQ7SUFDSCxhQUFhLEdBQUcsTUFBTSxDQUF5QixJQUFJLENBQUMsQ0FBQTtJQUNqRDs7T0FFRztJQUNNLFVBQVUsQ0FBK0I7SUFHL0MsU0FBUyxDQUFNO0lBRU4sUUFBUSxDQUFZO0lBQ3BCLFVBQVUsR0FBUSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7SUFFekMsdUJBQXVCLEdBQStCLElBQUksZUFBZSxDQUFZLEVBQUUsQ0FBQyxDQUFBO0lBQ3pGLGdCQUFnQixHQUFxQixJQUFJLENBQUMsdUJBQXVCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDaEYsaUJBQWlCLEdBQVksQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDOUYsYUFBYSxHQUFHLEdBQWtCLEVBQUU7UUFDekMsT0FBTztZQUNILFVBQVUsRUFBRSxJQUFJO1lBQ2hCLElBQUksRUFBRSxJQUFJO1lBQ1YsVUFBVSxFQUFFLElBQUk7WUFDaEIsUUFBUSxFQUFFLElBQUk7WUFDZCxXQUFXLEVBQUU7Z0JBQ1QsQ0FBQyxFQUFFO29CQUNDLGFBQWEsRUFBRSxDQUFDO2lCQUNuQjtnQkFDRCxHQUFHLEVBQUU7b0JBQ0QsYUFBYSxFQUFFLENBQUM7aUJBQ25CO2dCQUNELEdBQUcsRUFBRTtvQkFDRCxhQUFhLEVBQUUsQ0FBQztpQkFDbkI7Z0JBQ0QsR0FBRyxFQUFFO29CQUNELGFBQWEsRUFBRSxDQUFDO2lCQUNuQjtnQkFDRCxJQUFJLEVBQUU7b0JBQ0YsYUFBYSxFQUFFLENBQUM7aUJBQ25CO2FBQ0o7U0FDSixDQUFBO0lBQ0wsQ0FBQyxDQUFBO0lBQ0Q7UUFDSSxLQUFLLEVBQUUsQ0FBQTtRQUNQLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7UUFDNUIsQ0FBQztRQUNELDZFQUE2RTtJQUNqRixDQUFDO0lBRUQsUUFBUTtRQUNKLDhCQUE4QjtRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUM3QixDQUFDO0lBRU8sSUFBSSxDQUFDLFVBQWM7UUFDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQ3hFLEdBQUcsQ0FBQyxFQUFFO1lBQ0YsK0JBQStCO1lBQy9CLE1BQU0sZUFBZSxHQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUNwRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFBO1lBQ2xELEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRSxjQUFjLEVBQUUsUUFBUSxDQUFDLEtBQUssSUFBSSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDLEVBQUUsSUFBSSxrQkFBa0IsRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUVsTixnRUFBZ0U7WUFDaEUsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDdEIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1osQ0FBQyxDQUNKLENBQUE7SUFDTCxDQUFDO0lBRU8sVUFBVTtRQUNkLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDckMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO1lBQ3BGLDhEQUE4RDtZQUM5RCxJQUFJLHFCQUFxQixFQUFFLENBQUM7Z0JBQ3hCLE1BQU0sQ0FBQyxNQUFNLENBQUMscUJBQXNCLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUE7Z0JBQzNELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLHFCQUF3QyxDQUFDLENBQUE7Z0JBQ2hFLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQztZQUN2QyxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjLEdBQUcsQ0FBQyxJQUFXLEVBQUUsRUFBRTtRQUM3QixJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUE7UUFDbEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBRSxPQUFPLENBQUMsRUFBRTtZQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7UUFDakQsQ0FBQyxDQUFDLENBQUE7UUFDRixPQUFPLE1BQU0sQ0FBQTtJQUNqQixDQUFDLENBQUE7SUFDRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFlBQVksSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqRyw2RUFBNkU7WUFDN0UsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3BCLENBQUM7SUFDTCxDQUFDO3dHQXBHUSwwQkFBMEI7NEZBQTFCLDBCQUEwQiw2TENuQnZDLElBQ0EseUREYTZDLFlBQVk7OzRGQUs1QywwQkFBMEI7a0JBUnRDLFNBQVM7K0JBQ0kseUJBQXlCLGNBQ3ZCLElBQUksV0FDUCxDQUFDLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxZQUFZLENBQUMsV0FHN0MsQ0FBQyxzQkFBc0IsQ0FBQzt3REFheEIsVUFBVTtzQkFBbEIsS0FBSztnQkFHSCxTQUFTO3NCQUZYLEtBQUs7dUJBQUM7d0JBQ0gsUUFBUSxFQUFFLElBQUk7cUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIElucHV0LCBUZW1wbGF0ZVJlZiwgU2ltcGxlQ2hhbmdlcywgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgc2lnbmFsLCBQTEFURk9STV9JRCwgYWZ0ZXJOZXh0UmVuZGVyICwgT25DaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlLCBQcm9kdWN0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCB0YWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBc3luY1BpcGUsIENvbW1vbk1vZHVsZSwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUHJvZHVjdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgUHJvZHVjdEVjQ29tcG9uZW50IH0gZnJvbSAnLi4vcHJvZHVjdC1lYy9wcm9kdWN0LWVjLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTd2lwZXJDb250YWluZXIgfSBmcm9tICdzd2lwZXIvZWxlbWVudCc7XG5pbXBvcnQgeyBTd2lwZXJPcHRpb25zIH0gZnJvbSAnc3dpcGVyL3R5cGVzJztcbmltcG9ydCB7IEJsb2NrRWNDb21wb25lbnQgfSBmcm9tICcuLi9hYnN0cmFjdGlvbnMtY29tcG9uZW50cyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLXJlbGF0ZWQtcHJvZHVjdHMtZWMnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0FzeW5jUGlwZSwgUHJvZHVjdEVjQ29tcG9uZW50LCBDb21tb25Nb2R1bGVdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yZWxhdGVkLXByb2R1Y3RzLWVjLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vcmVsYXRlZC1wcm9kdWN0cy1lYy5jb21wb25lbnQuc2NzcycsXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdXG59KVxuZXhwb3J0IGNsYXNzIFJlbGF0ZWRQcm9kdWN0c0VjQ29tcG9uZW50IGV4dGVuZHMgQmxvY2tFY0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgcHJpdmF0ZSBfcHJvZHVjdHNTZXJ2aWNlOiBQcm9kdWN0c1NlcnZpY2UgPSBpbmplY3QoUHJvZHVjdHNTZXJ2aWNlKVxuICAgIHByaXZhdGUgX2FuYWx5dGljc1NlcnZpY2U6IEFuYWx5dGljc1NlcnZpY2UgPSBpbmplY3QoQW5hbHl0aWNzU2VydmljZSlcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlciA9IGluamVjdChSb3V0ZXIpXG4gICAgXHQvKipcblx0ICogU2lnbmFsIHV0bGl6YWRvIHBhcmEgZ3VhcmRhIGVsIGNvbnRlbmVkb3IgZGVsIGNhcnJ1c2VsXG5cdCAqL1xuXHRzd2lwZXJFbGVtZW50ID0gc2lnbmFsPFN3aXBlckNvbnRhaW5lciB8IG51bGw+KG51bGwpXG4gICAgLyoqXG4gICAgICogSW5wdXQgcXVlIHJlY2liZSB1biB0ZW1wbGF0ZSBwYXJhIGVsIHByb2R1Y3RvLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIGFwcFByb2R1Y3Q6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG4gICAgQElucHV0KHtcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICB9KSBwcm9kdWN0SUQ6IGFueTtcblxuICAgICAgICBwcml2YXRlIGRvY3VtZW50PzogRG9jdW1lbnQ7XG4gICAgICAgIHByaXZhdGUgcGxhdGZvcm1JZDogYW55ID0gaW5qZWN0KFBMQVRGT1JNX0lEKVxuICAgIFxuICAgIHByaXZhdGUgX3JlbGF0ZWRQcm9kdWN0c1N1YmplY3Q6QmVoYXZpb3JTdWJqZWN0PFByb2R1Y3RbXT4gPSAgbmV3IEJlaGF2aW9yU3ViamVjdDxQcm9kdWN0W10+KFtdKVxuICAgIHB1YmxpYyByZWxhdGVkUHJvZHVjdHMkOk9ic2VydmFibGU8YW55W10+ID0gdGhpcy5fcmVsYXRlZFByb2R1Y3RzU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICBwcml2YXRlIGtleXdvcmRzVG9Db21wYXJlOnN0cmluZ1tdID0gWydjb21wYXJlJywgJ2NvbXBhcmFyJywgJ2NvbXBhcmFjaW9uJywgJ2NvbXBhcmFjacOzbicsICdjb21wYXJlZCddO1xuICAgIG92ZXJyaWRlIHN3aXBlck9wdGlvbnMgPSAoKTogU3dpcGVyT3B0aW9ucyA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuYXZpZ2F0aW9uOiB0cnVlLFxuICAgICAgICAgICAgbG9vcDogdHJ1ZSxcbiAgICAgICAgICAgIGF1dG9IZWlnaHQ6IHRydWUsXG4gICAgICAgICAgICBhdXRvcGxheTogdHJ1ZSxcbiAgICAgICAgICAgIGJyZWFrcG9pbnRzOiB7XG4gICAgICAgICAgICAgICAgMDoge1xuICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiAxXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICA1NzY6IHtcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogMlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgNzY4OiB7XG4gICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IDIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICA5OTI6IHtcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogMyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIDEyMDA6IHtcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogNCxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKClcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIHRoaXMuZG9jdW1lbnQgPSBkb2N1bWVudFxuICAgICAgICB9XG4gICAgICAgIC8vIFN3aXBlciBpbml0aWFsaXphdGlvbiBtb3ZlZCB0byBpbml0U3dpcGVyKCkgbWV0aG9kIGNhbGxlZCBhZnRlciBkYXRhIGxvYWRzXG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMucHJvZHVjdElEKVxuICAgICAgICB0aGlzLmxvYWQodGhpcy5wcm9kdWN0SUQpXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkKHByb2R1Y3RfaWQ6YW55KSB7XG4gICAgICAgIHRoaXMuX3Byb2R1Y3RzU2VydmljZS5nZXRSZWxhdGVkUHJvZHVjdHMocHJvZHVjdF9pZCkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICByZXMgPT4ge1xuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdyZXNwb25zZScscmVzKTtcbiAgICAgICAgICAgICAgICBjb25zdCByZWxhdGVkUHJvZHVjdHM6YW55ID0gcmVzLmZpbHRlcigoZWxlbTphbnkpID0+ICF0aGlzLmluY2x1ZGVLZXl3b3JkKGVsZW0udGl0bGUudG9Mb3dlckNhc2UoKSkpXG4gICAgICAgICAgICAgICAgdGhpcy5fcmVsYXRlZFByb2R1Y3RzU3ViamVjdC5uZXh0KHJlbGF0ZWRQcm9kdWN0cylcbiAgICAgICAgICAgICAgICByZXMubWFwKChwcm9kdWN0czphbnkpID0+IHRoaXMuX2FuYWx5dGljc1NlcnZpY2UuY2FsbEV2ZW50KCd2aWV3X2l0ZW1fbGlzdCcsIHsgcHJvZHVjdHM6IHByb2R1Y3RzLml0ZW1zLCBpdGVtX2xpc3RfbmFtZTogcHJvZHVjdHMudGl0bGUgfHwgJ1JlbGF0ZWQgUHJvZHVjdHMnLCBpdGVtX2xpc3RfaWQ6IHByb2R1Y3RzLmlkIHx8ICdyZWxhdGVkLXByb2R1Y3RzJyB9KSlcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAvLyBJbmljaWFsaXphciBzd2lwZXIgZGVzcHXDqXMgZGUgcXVlIGxvcyBkYXRvcyBlc3TDqW4gZGlzcG9uaWJsZXNcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0U3dpcGVyKCk7XG4gICAgICAgICAgICAgICAgfSwgMTAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFN3aXBlcigpIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHN3aXBlckVsZW1Db25zdHJ1Y3RvciA9IHRoaXMuZG9jdW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoJyNyZWxhdGVkUHJvZHVjdHNTd2lwZXInKVxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ3N3aXBlckVsZW1Db25zdHJ1Y3RvcicsIHN3aXBlckVsZW1Db25zdHJ1Y3RvcilcbiAgICAgICAgICAgIGlmIChzd2lwZXJFbGVtQ29uc3RydWN0b3IpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHN3aXBlckVsZW1Db25zdHJ1Y3RvciEsIHRoaXMuc3dpcGVyT3B0aW9ucygpKVxuICAgICAgICAgICAgICAgIHRoaXMuc3dpcGVyRWxlbWVudC5zZXQoc3dpcGVyRWxlbUNvbnN0cnVjdG9yIGFzIFN3aXBlckNvbnRhaW5lcilcbiAgICAgICAgICAgICAgICB0aGlzLnN3aXBlckVsZW1lbnQoKT8uaW5pdGlhbGl6ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5jbHVkZUtleXdvcmQgPSAod29yZDpzdHJpbmcpID0+IHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IGZhbHNlXG4gICAgICAgIHRoaXMua2V5d29yZHNUb0NvbXBhcmUuZm9yRWFjaCgga2V5d29yZCA9PiB7XG4gICAgICAgICAgICB3b3JkLmluY2x1ZGVzKGtleXdvcmQpID8gcmVzdWx0ID0gdHJ1ZSA6IG51bGxcbiAgICAgICAgfSlcbiAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIH1cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzWydwcm9kdWN0SUQnXSAmJiBjaGFuZ2VzWydwcm9kdWN0SUQnXS5jdXJyZW50VmFsdWUgJiYgIWNoYW5nZXNbJ3Byb2R1Y3RJRCddLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICAvLyBTb2xvIHJlaW5pY2lhbGl6YXIgc2kgZWwgcHJvZHVjdElEIHJlYWxtZW50ZSBjYW1iacOzIHkgbm8gZXMgbGEgcHJpbWVyYSB2ZXpcbiAgICAgICAgICAgIHRoaXMubmdPbkluaXQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuIiwiXG4iXX0=
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRlZC1wcm9kdWN0cy1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9yZWxhdGVkLXByb2R1Y3RzLWVjL3JlbGF0ZWQtcHJvZHVjdHMtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvcmVsYXRlZC1wcm9kdWN0cy1lYy9yZWxhdGVkLXByb2R1Y3RzLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBOEIsc0JBQXNCLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBK0IsTUFBTSxlQUFlLENBQUM7QUFDL0osT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFjLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTdFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBR3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQVU5RCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsZ0JBQWdCO0lBQ3BELGdCQUFnQixHQUFvQixNQUFNLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDM0QsaUJBQWlCLEdBQXFCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBQzlELE9BQU8sR0FBVyxNQUFN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UyxFQUFFLGtCQUFrQixFQUFFLFlBQVksQ0FBQyxXQUc3QyxDQUFDLHNCQUFzQixDQUFDO3dEQWF4QixVQUFVO3NCQUFsQixLQUFLO2dCQUdILFNBQVM7c0JBRlgsS0FBSzt1QkFBQzt3QkFDSCxRQUFRLEVBQUUsSUFBSTtxQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIFRlbXBsYXRlUmVmLCBTaW1wbGVDaGFuZ2VzLCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBzaWduYWwsIFBMQVRGT1JNX0lELCBhZnRlck5leHRSZW5kZXIgLCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQW5hbHl0aWNzU2VydmljZSwgUHJvZHVjdHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWMtc2VydmljZXMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIHRha2UgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQXN5bmNQaXBlLCBDb21tb25Nb2R1bGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgUHJvZHVjdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBQcm9kdWN0RWNDb21wb25lbnQgfSBmcm9tICcuLi9wcm9kdWN0LWVjL3Byb2R1Y3QtZWMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3dpcGVyQ29udGFpbmVyIH0gZnJvbSAnc3dpcGVyL2VsZW1lbnQnO1xyXG5pbXBvcnQgeyBTd2lwZXJPcHRpb25zIH0gZnJvbSAnc3dpcGVyL3R5cGVzJztcclxuaW1wb3J0IHsgQmxvY2tFY0NvbXBvbmVudCB9IGZyb20gJy4uL2Fic3RyYWN0aW9ucy1jb21wb25lbnRzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdhcHAtcmVsYXRlZC1wcm9kdWN0cy1lYycsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW0FzeW5jUGlwZSwgUHJvZHVjdEVjQ29tcG9uZW50LCBDb21tb25Nb2R1bGVdLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JlbGF0ZWQtcHJvZHVjdHMtZWMuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmw6ICcuL3JlbGF0ZWQtcHJvZHVjdHMtZWMuY29tcG9uZW50LnNjc3MnLFxyXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZWxhdGVkUHJvZHVjdHNFY0NvbXBvbmVudCBleHRlbmRzIEJsb2NrRWNDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gICAgcHJpdmF0ZSBfcHJvZHVjdHNTZXJ2aWNlOiBQcm9kdWN0c1NlcnZpY2UgPSBpbmplY3QoUHJvZHVjdHNTZXJ2aWNlKVxyXG4gICAgcHJpdmF0ZSBfYW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzU2VydmljZSA9IGluamVjdChBbmFseXRpY3NTZXJ2aWNlKVxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIgPSBpbmplY3QoUm91dGVyKVxyXG4gICAgXHQvKipcclxuXHQgKiBTaWduYWwgdXRsaXphZG8gcGFyYSBndWFyZGEgZWwgY29udGVuZWRvciBkZWwgY2FycnVzZWxcclxuXHQgKi9cclxuXHRzd2lwZXJFbGVtZW50ID0gc2lnbmFsPFN3aXBlckNvbnRhaW5lciB8IG51bGw+KG51bGwpXHJcbiAgICAvKipcclxuICAgICAqIElucHV0IHF1ZSByZWNpYmUgdW4gdGVtcGxhdGUgcGFyYSBlbCBwcm9kdWN0by5cclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgYXBwUHJvZHVjdDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcclxuICAgIEBJbnB1dCh7XHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0pIHByb2R1Y3RJRDogYW55O1xyXG5cclxuICAgICAgICBwcml2YXRlIGRvY3VtZW50PzogRG9jdW1lbnQ7XHJcbiAgICAgICAgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBhbnkgPSBpbmplY3QoUExBVEZPUk1fSUQpXHJcbiAgICBcclxuICAgIHByaXZhdGUgX3JlbGF0ZWRQcm9kdWN0c1N1YmplY3Q6QmVoYXZpb3JTdWJqZWN0PFByb2R1Y3RbXT4gPSAgbmV3IEJlaGF2aW9yU3ViamVjdDxQcm9kdWN0W10+KFtdKVxyXG4gICAgcHVibGljIHJlbGF0ZWRQcm9kdWN0cyQ6T2JzZXJ2YWJsZTxhbnlbXT4gPSB0aGlzLl9yZWxhdGVkUHJvZHVjdHNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgcHJpdmF0ZSBrZXl3b3Jkc1RvQ29tcGFyZTpzdHJpbmdbXSA9IFsnY29tcGFyZScsICdjb21wYXJhcicsICdjb21wYXJhY2lvbicsICdjb21wYXJhY2nDs24nLCAnY29tcGFyZWQnXTtcclxuICAgIG92ZXJyaWRlIHN3aXBlck9wdGlvbnMgPSAoKTogU3dpcGVyT3B0aW9ucyA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgbmF2aWdhdGlvbjogdHJ1ZSxcclxuICAgICAgICAgICAgbG9vcDogdHJ1ZSxcclxuICAgICAgICAgICAgYXV0b0hlaWdodDogdHJ1ZSxcclxuICAgICAgICAgICAgYXV0b3BsYXk6IHRydWUsXHJcbiAgICAgICAgICAgIGJyZWFrcG9pbnRzOiB7XHJcbiAgICAgICAgICAgICAgICAwOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogMVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIDU3Njoge1xyXG4gICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IDJcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICA3Njg6IHtcclxuICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiAyLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIDk5Mjoge1xyXG4gICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IDMsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgMTIwMDoge1xyXG4gICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IDQsXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBzdXBlcigpXHJcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcclxuICAgICAgICAgICAgdGhpcy5kb2N1bWVudCA9IGRvY3VtZW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFN3aXBlciBpbml0aWFsaXphdGlvbiBtb3ZlZCB0byBpbml0U3dpcGVyKCkgbWV0aG9kIGNhbGxlZCBhZnRlciBkYXRhIGxvYWRzXHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5wcm9kdWN0SUQpXHJcbiAgICAgICAgdGhpcy5sb2FkKHRoaXMucHJvZHVjdElEKVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgbG9hZChwcm9kdWN0X2lkOmFueSkge1xyXG4gICAgICAgIHRoaXMuX3Byb2R1Y3RzU2VydmljZS5nZXRSZWxhdGVkUHJvZHVjdHMocHJvZHVjdF9pZCkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgIHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygncmVzcG9uc2UnLHJlcyk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCByZWxhdGVkUHJvZHVjdHM6YW55ID0gcmVzLmZpbHRlcigoZWxlbTphbnkpID0+ICF0aGlzLmluY2x1ZGVLZXl3b3JkKGVsZW0udGl0bGUudG9Mb3dlckNhc2UoKSkpXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9yZWxhdGVkUHJvZHVjdHNTdWJqZWN0Lm5leHQocmVsYXRlZFByb2R1Y3RzKVxyXG4gICAgICAgICAgICAgICAgcmVzLm1hcCgocHJvZHVjdHM6YW55KSA9PiB0aGlzLl9hbmFseXRpY3NTZXJ2aWNlLmNhbGxFdmVudCgndmlld19pdGVtX2xpc3QnLCB7IHByb2R1Y3RzOiBwcm9kdWN0cy5pdGVtcywgaXRlbV9saXN0X25hbWU6IHByb2R1Y3RzLnRpdGxlIHx8ICdSZWxhdGVkIFByb2R1Y3RzJywgaXRlbV9saXN0X2lkOiBwcm9kdWN0cy5pZCB8fCAncmVsYXRlZC1wcm9kdWN0cycgfSkpXHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIC8vIEluaWNpYWxpemFyIHN3aXBlciBkZXNwdcOpcyBkZSBxdWUgbG9zIGRhdG9zIGVzdMOpbiBkaXNwb25pYmxlc1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0U3dpcGVyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgMTAwKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIClcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRTd2lwZXIoKSB7XHJcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcclxuICAgICAgICAgICAgY29uc3Qgc3dpcGVyRWxlbUNvbnN0cnVjdG9yID0gdGhpcy5kb2N1bWVudD8ucXVlcnlTZWxlY3RvcignI3JlbGF0ZWRQcm9kdWN0c1N3aXBlcicpXHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdzd2lwZXJFbGVtQ29uc3RydWN0b3InLCBzd2lwZXJFbGVtQ29uc3RydWN0b3IpXHJcbiAgICAgICAgICAgIGlmIChzd2lwZXJFbGVtQ29uc3RydWN0b3IpIHtcclxuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oc3dpcGVyRWxlbUNvbnN0cnVjdG9yISwgdGhpcy5zd2lwZXJPcHRpb25zKCkpXHJcbiAgICAgICAgICAgICAgICB0aGlzLnN3aXBlckVsZW1lbnQuc2V0KHN3aXBlckVsZW1Db25zdHJ1Y3RvciBhcyBTd2lwZXJDb250YWluZXIpXHJcbiAgICAgICAgICAgICAgICB0aGlzLnN3aXBlckVsZW1lbnQoKT8uaW5pdGlhbGl6ZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGluY2x1ZGVLZXl3b3JkID0gKHdvcmQ6c3RyaW5nKSA9PiB7XHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IGZhbHNlXHJcbiAgICAgICAgdGhpcy5rZXl3b3Jkc1RvQ29tcGFyZS5mb3JFYWNoKCBrZXl3b3JkID0+IHtcclxuICAgICAgICAgICAgd29yZC5pbmNsdWRlcyhrZXl3b3JkKSA/IHJlc3VsdCA9IHRydWUgOiBudWxsXHJcbiAgICAgICAgfSlcclxuICAgICAgICByZXR1cm4gcmVzdWx0XHJcbiAgICB9XHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGNoYW5nZXNbJ3Byb2R1Y3RJRCddICYmIGNoYW5nZXNbJ3Byb2R1Y3RJRCddLmN1cnJlbnRWYWx1ZSAmJiAhY2hhbmdlc1sncHJvZHVjdElEJ10uZmlyc3RDaGFuZ2UpIHtcclxuICAgICAgICAgICAgLy8gU29sbyByZWluaWNpYWxpemFyIHNpIGVsIHByb2R1Y3RJRCByZWFsbWVudGUgY2FtYmnDsyB5IG5vIGVzIGxhIHByaW1lcmEgdmV6XHJcbiAgICAgICAgICAgIHRoaXMubmdPbkluaXQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbiIsIlxyXG4iXX0=
|
|
@@ -69,12 +69,12 @@ export class ReviewsEcComponent extends ComponentHelper {
|
|
|
69
69
|
_authService = inject(AuthService);
|
|
70
70
|
isAuthenticated$ = this._authService.isAuthenticated();
|
|
71
71
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ReviewsEcComponent, deps: [{ token: i1.ReviewsService }, { token: i2.CoreConstantsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
72
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ReviewsEcComponent, isStandalone: true, selector: "app-reviews-ec", inputs: { product: "product" }, usesInheritance: true, ngImport: i0, template: "<div class=\"row px-3\">\n <div class=\"col-12 pb-2 pb-md-0\">\n <div class=\"row w-100\">\n <div class=\"col-12 col-md-6\">\n <h4 class=\"mb-0 pt-2 pb-1\">{{\"product-review\" | translate}}</h4>\n @if(isAuthenticated$ ){\n <small class=\"pb-2 escribir\" data-bs-toggle=\"modal\" href=\"#modalReview\">\n {{\"write-a-review\" | translate}}\n <i class=\"bi bi-pencil-square\"></i>\n </small>\n }\n </div>\n <div class=\"col-12 col-md-6 d-flex align-items-center justify-content-start justify-content-md-end\">\n <div class=\"puntaje d-flex\">\n <ng-template #number let-ratingValue=\"ratingValue\">\n <p class=\"puntos mb-0\">\n {{ratingValue}}\n </p>\n </ng-template>\n <app-rating-ec [ratingValue]=\"product.rating\" [template]=\"number\"></app-rating-ec>\n <div class=\"ms-2\">\n <div class=\"stars mb-1\">\n <app-rating-ec [ratingValue]=\"product.rating\"></app-rating-ec>\n </div>\n <small><strong>{{reviews.total}} {{\"reviews\" | translate}}</strong></small>\n </div>\n </div>\n </div>\n </div>\n </div>\n <hr>\n\n <div class=\"tab-content mt-4\" id=\"myTabContent\">\n <div class=\"row g-5\">\n @for (item of reviews.items; track $index) {\n <div class=\"col-12 col-sm-6 col-md-4\">\n <div class=\"row\">\n <div class=\"col-9 col-sm-10\">\n <div class=\"ranking\">\n <app-rating-ec [ratingValue]=\"item.rating\"></app-rating-ec>\n </div>\n <h4 class=\"text-uppercase\">{{item.title}}</h4>\n <div class=\"d-flex justify-content-between\">\n <div class=\"ususario\">\n <i class=\"bi bi-person-fill\"></i> {{ getAuthorName(item.author) }}\n </div>\n </div>\n <div class=\"resenia mt-2\">\n <p style=\"font-size: 14px;\"> {{item.comment}}</p>\n </div>\n </div>\n </div>\n\n </div>\n }\n @if (getPages() && getPages().length > 1) {\n <nav aria-label=\"Page navigation example\">\n <ul class=\"pagination custom-pagination\">\n <li class=\"page-item\">\n <a class=\"page-link cursor-pointer\" (click)=\"first()\" aria-label=\"Previous\">\n <span aria-hidden=\"true\">«</span>\n </a>\n </li>\n @for (page of getPages(); track $index) {\n <li class=\"page-item\">\n <a class=\"page-link cursor-pointer\" (click)=\"goPage(page)\">{{ page }}</a>\n </li>\n }\n <li class=\"page-item\">\n <a class=\"page-link cursor-pointer\" (click)=\"next()\" aria-label=\"Next\">\n <span aria-hidden=\"true\">»</span>\n </a>\n </li>\n </ul>\n </nav>\n\n }\n\n </div>\n </div>\n\n</div>", styles: [".custom-pagination{display:flex;justify-content:center;list-style:none;padding:0;margin-top:20px}.custom-pagination .page-item{margin:0 5px}.custom-pagination .page-link{color:#131716;background-color:#f3f3f3;border:1px solid #ccc;padding:8px 12px;border-radius:5px;text-decoration:none;transition:background-color .3s ease}.custom-pagination .page-link:hover{background-color:#0b0c0c;color:#fff}.custom-pagination .page-item.active .page-link{background-color:#131716;color:#fff;font-weight:700}.cursor-pointer{cursor:pointer}\n"], dependencies: [{ kind: "component", type: RatingEcComponent, selector: "app-rating-ec", inputs: ["template", "type", "ratingValue"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] });
|
|
72
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ReviewsEcComponent, isStandalone: true, selector: "app-reviews-ec", inputs: { product: "product" }, usesInheritance: true, ngImport: i0, template: "<div class=\"row px-3\">\r\n <div class=\"col-12 pb-2 pb-md-0\">\r\n <div class=\"row w-100\">\r\n <div class=\"col-12 col-md-6\">\r\n <h4 class=\"mb-0 pt-2 pb-1\">{{\"product-review\" | translate}}</h4>\r\n @if(isAuthenticated$ ){\r\n <small class=\"pb-2 escribir\" data-bs-toggle=\"modal\" href=\"#modalReview\">\r\n {{\"write-a-review\" | translate}}\r\n <i class=\"bi bi-pencil-square\"></i>\r\n </small>\r\n }\r\n </div>\r\n <div class=\"col-12 col-md-6 d-flex align-items-center justify-content-start justify-content-md-end\">\r\n <div class=\"puntaje d-flex\">\r\n <ng-template #number let-ratingValue=\"ratingValue\">\r\n <p class=\"puntos mb-0\">\r\n {{ratingValue}}\r\n </p>\r\n </ng-template>\r\n <app-rating-ec [ratingValue]=\"product.rating\" [template]=\"number\"></app-rating-ec>\r\n <div class=\"ms-2\">\r\n <div class=\"stars mb-1\">\r\n <app-rating-ec [ratingValue]=\"product.rating\"></app-rating-ec>\r\n </div>\r\n <small><strong>{{reviews.total}} {{\"reviews\" | translate}}</strong></small>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <hr>\r\n\r\n <div class=\"tab-content mt-4\" id=\"myTabContent\">\r\n <div class=\"row g-5\">\r\n @for (item of reviews.items; track $index) {\r\n <div class=\"col-12 col-sm-6 col-md-4\">\r\n <div class=\"row\">\r\n <div class=\"col-9 col-sm-10\">\r\n <div class=\"ranking\">\r\n <app-rating-ec [ratingValue]=\"item.rating\"></app-rating-ec>\r\n </div>\r\n <h4 class=\"text-uppercase\">{{item.title}}</h4>\r\n <div class=\"d-flex justify-content-between\">\r\n <div class=\"ususario\">\r\n <i class=\"bi bi-person-fill\"></i> {{ getAuthorName(item.author) }}\r\n </div>\r\n </div>\r\n <div class=\"resenia mt-2\">\r\n <p style=\"font-size: 14px;\"> {{item.comment}}</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n }\r\n @if (getPages() && getPages().length > 1) {\r\n <nav aria-label=\"Page navigation example\">\r\n <ul class=\"pagination custom-pagination\">\r\n <li class=\"page-item\">\r\n <a class=\"page-link cursor-pointer\" (click)=\"first()\" aria-label=\"Previous\">\r\n <span aria-hidden=\"true\">«</span>\r\n </a>\r\n </li>\r\n @for (page of getPages(); track $index) {\r\n <li class=\"page-item\">\r\n <a class=\"page-link cursor-pointer\" (click)=\"goPage(page)\">{{ page }}</a>\r\n </li>\r\n }\r\n <li class=\"page-item\">\r\n <a class=\"page-link cursor-pointer\" (click)=\"next()\" aria-label=\"Next\">\r\n <span aria-hidden=\"true\">»</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </nav>\r\n\r\n }\r\n\r\n </div>\r\n </div>\r\n\r\n</div>", styles: [".custom-pagination{display:flex;justify-content:center;list-style:none;padding:0;margin-top:20px}.custom-pagination .page-item{margin:0 5px}.custom-pagination .page-link{color:#131716;background-color:#f3f3f3;border:1px solid #ccc;padding:8px 12px;border-radius:5px;text-decoration:none;transition:background-color .3s ease}.custom-pagination .page-link:hover{background-color:#0b0c0c;color:#fff}.custom-pagination .page-item.active .page-link{background-color:#131716;color:#fff;font-weight:700}.cursor-pointer{cursor:pointer}\n"], dependencies: [{ kind: "component", type: RatingEcComponent, selector: "app-rating-ec", inputs: ["template", "type", "ratingValue"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] });
|
|
73
73
|
}
|
|
74
74
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ReviewsEcComponent, decorators: [{
|
|
75
75
|
type: Component,
|
|
76
|
-
args: [{ selector: 'app-reviews-ec', standalone: true, imports: [RatingEcComponent, TranslateModule], template: "<div class=\"row px-3\">\n <div class=\"col-12 pb-2 pb-md-0\">\n <div class=\"row w-100\">\n <div class=\"col-12 col-md-6\">\n <h4 class=\"mb-0 pt-2 pb-1\">{{\"product-review\" | translate}}</h4>\n @if(isAuthenticated$ ){\n <small class=\"pb-2 escribir\" data-bs-toggle=\"modal\" href=\"#modalReview\">\n {{\"write-a-review\" | translate}}\n <i class=\"bi bi-pencil-square\"></i>\n </small>\n }\n </div>\n <div class=\"col-12 col-md-6 d-flex align-items-center justify-content-start justify-content-md-end\">\n <div class=\"puntaje d-flex\">\n <ng-template #number let-ratingValue=\"ratingValue\">\n <p class=\"puntos mb-0\">\n {{ratingValue}}\n </p>\n </ng-template>\n <app-rating-ec [ratingValue]=\"product.rating\" [template]=\"number\"></app-rating-ec>\n <div class=\"ms-2\">\n <div class=\"stars mb-1\">\n <app-rating-ec [ratingValue]=\"product.rating\"></app-rating-ec>\n </div>\n <small><strong>{{reviews.total}} {{\"reviews\" | translate}}</strong></small>\n </div>\n </div>\n </div>\n </div>\n </div>\n <hr>\n\n <div class=\"tab-content mt-4\" id=\"myTabContent\">\n <div class=\"row g-5\">\n @for (item of reviews.items; track $index) {\n <div class=\"col-12 col-sm-6 col-md-4\">\n <div class=\"row\">\n <div class=\"col-9 col-sm-10\">\n <div class=\"ranking\">\n <app-rating-ec [ratingValue]=\"item.rating\"></app-rating-ec>\n </div>\n <h4 class=\"text-uppercase\">{{item.title}}</h4>\n <div class=\"d-flex justify-content-between\">\n <div class=\"ususario\">\n <i class=\"bi bi-person-fill\"></i> {{ getAuthorName(item.author) }}\n </div>\n </div>\n <div class=\"resenia mt-2\">\n <p style=\"font-size: 14px;\"> {{item.comment}}</p>\n </div>\n </div>\n </div>\n\n </div>\n }\n @if (getPages() && getPages().length > 1) {\n <nav aria-label=\"Page navigation example\">\n <ul class=\"pagination custom-pagination\">\n <li class=\"page-item\">\n <a class=\"page-link cursor-pointer\" (click)=\"first()\" aria-label=\"Previous\">\n <span aria-hidden=\"true\">«</span>\n </a>\n </li>\n @for (page of getPages(); track $index) {\n <li class=\"page-item\">\n <a class=\"page-link cursor-pointer\" (click)=\"goPage(page)\">{{ page }}</a>\n </li>\n }\n <li class=\"page-item\">\n <a class=\"page-link cursor-pointer\" (click)=\"next()\" aria-label=\"Next\">\n <span aria-hidden=\"true\">»</span>\n </a>\n </li>\n </ul>\n </nav>\n\n }\n\n </div>\n </div>\n\n</div>", styles: [".custom-pagination{display:flex;justify-content:center;list-style:none;padding:0;margin-top:20px}.custom-pagination .page-item{margin:0 5px}.custom-pagination .page-link{color:#131716;background-color:#f3f3f3;border:1px solid #ccc;padding:8px 12px;border-radius:5px;text-decoration:none;transition:background-color .3s ease}.custom-pagination .page-link:hover{background-color:#0b0c0c;color:#fff}.custom-pagination .page-item.active .page-link{background-color:#131716;color:#fff;font-weight:700}.cursor-pointer{cursor:pointer}\n"] }]
|
|
76
|
+
args: [{ selector: 'app-reviews-ec', standalone: true, imports: [RatingEcComponent, TranslateModule], template: "<div class=\"row px-3\">\r\n <div class=\"col-12 pb-2 pb-md-0\">\r\n <div class=\"row w-100\">\r\n <div class=\"col-12 col-md-6\">\r\n <h4 class=\"mb-0 pt-2 pb-1\">{{\"product-review\" | translate}}</h4>\r\n @if(isAuthenticated$ ){\r\n <small class=\"pb-2 escribir\" data-bs-toggle=\"modal\" href=\"#modalReview\">\r\n {{\"write-a-review\" | translate}}\r\n <i class=\"bi bi-pencil-square\"></i>\r\n </small>\r\n }\r\n </div>\r\n <div class=\"col-12 col-md-6 d-flex align-items-center justify-content-start justify-content-md-end\">\r\n <div class=\"puntaje d-flex\">\r\n <ng-template #number let-ratingValue=\"ratingValue\">\r\n <p class=\"puntos mb-0\">\r\n {{ratingValue}}\r\n </p>\r\n </ng-template>\r\n <app-rating-ec [ratingValue]=\"product.rating\" [template]=\"number\"></app-rating-ec>\r\n <div class=\"ms-2\">\r\n <div class=\"stars mb-1\">\r\n <app-rating-ec [ratingValue]=\"product.rating\"></app-rating-ec>\r\n </div>\r\n <small><strong>{{reviews.total}} {{\"reviews\" | translate}}</strong></small>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <hr>\r\n\r\n <div class=\"tab-content mt-4\" id=\"myTabContent\">\r\n <div class=\"row g-5\">\r\n @for (item of reviews.items; track $index) {\r\n <div class=\"col-12 col-sm-6 col-md-4\">\r\n <div class=\"row\">\r\n <div class=\"col-9 col-sm-10\">\r\n <div class=\"ranking\">\r\n <app-rating-ec [ratingValue]=\"item.rating\"></app-rating-ec>\r\n </div>\r\n <h4 class=\"text-uppercase\">{{item.title}}</h4>\r\n <div class=\"d-flex justify-content-between\">\r\n <div class=\"ususario\">\r\n <i class=\"bi bi-person-fill\"></i> {{ getAuthorName(item.author) }}\r\n </div>\r\n </div>\r\n <div class=\"resenia mt-2\">\r\n <p style=\"font-size: 14px;\"> {{item.comment}}</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n }\r\n @if (getPages() && getPages().length > 1) {\r\n <nav aria-label=\"Page navigation example\">\r\n <ul class=\"pagination custom-pagination\">\r\n <li class=\"page-item\">\r\n <a class=\"page-link cursor-pointer\" (click)=\"first()\" aria-label=\"Previous\">\r\n <span aria-hidden=\"true\">«</span>\r\n </a>\r\n </li>\r\n @for (page of getPages(); track $index) {\r\n <li class=\"page-item\">\r\n <a class=\"page-link cursor-pointer\" (click)=\"goPage(page)\">{{ page }}</a>\r\n </li>\r\n }\r\n <li class=\"page-item\">\r\n <a class=\"page-link cursor-pointer\" (click)=\"next()\" aria-label=\"Next\">\r\n <span aria-hidden=\"true\">»</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </nav>\r\n\r\n }\r\n\r\n </div>\r\n </div>\r\n\r\n</div>", styles: [".custom-pagination{display:flex;justify-content:center;list-style:none;padding:0;margin-top:20px}.custom-pagination .page-item{margin:0 5px}.custom-pagination .page-link{color:#131716;background-color:#f3f3f3;border:1px solid #ccc;padding:8px 12px;border-radius:5px;text-decoration:none;transition:background-color .3s ease}.custom-pagination .page-link:hover{background-color:#0b0c0c;color:#fff}.custom-pagination .page-item.active .page-link{background-color:#131716;color:#fff;font-weight:700}.cursor-pointer{cursor:pointer}\n"] }]
|
|
77
77
|
}], ctorParameters: () => [{ type: i1.ReviewsService }, { type: i2.CoreConstantsService }], propDecorators: { product: [{
|
|
78
78
|
type: Input
|
|
79
79
|
}] } });
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2aWV3cy1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9yZXZpZXdzLWVjL3Jldmlld3MtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvcmV2aWV3cy1lYy9yZXZpZXdzLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFvQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7O0FBQ2hELFdBQVcsQ0FBQTtBQVFYLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxlQUFlO0lBUS9CO0lBQXVDO0lBUDNEOztPQUVHO0lBQ00sT0FBTyxDQUFLO0lBRWQsT0FBTyxDQUFLO0lBRW5CLFlBQW9CLGNBQThCLEVBQVMsTUFBMkI7UUFDbEYsS0FBSyxFQUFFLENBQUE7UUFEUyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUVsRixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFBO1FBQ2pFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUN4QixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUNyRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUE7SUFFbkIsQ0FBQztJQUVELElBQUksR0FBRyxHQUFHLEVBQUU7UUFDUixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQyxDQUFDLENBQUE7SUFFRCxJQUFJLEdBQUcsR0FBRyxFQUFFO1FBQ1IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0MsQ0FBQyxDQUFBO0lBRUQsS0FBSyxHQUFHLEdBQUcsRUFBRTtRQUNULElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLENBQUMsQ0FBQTtJQUVELElBQUksR0FBRyxHQUFHLEVBQUU7UUFDUixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3JDLENBQUMsQ0FBQTtJQUVEOzs7T0FHRztJQUNILFFBQVEsR0FBRyxHQUFZLEVBQUU7UUFDckIsSUFBSSxLQUFLLEdBQVUsRUFBRSxDQUFBO1FBQ3JCLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3RELEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3ZCLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNoQixDQUFDLENBQUE7SUFFRDs7O09BR0c7SUFDSCxNQUFNLEdBQUcsQ0FBQyxJQUFXLEVBQUUsRUFBRTtRQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2xGLENBQUMsQ0FBQTtJQUVELGFBQWEsQ0FBQyxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE9BQU8sRUFBRSxDQUFDO1FBQ2QsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQWM7UUFDdkIsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFTyxZQUFZLEdBQWdCLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUNoRCxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxDQUFDO3dHQXBFckQsa0JBQWtCOzRGQUFsQixrQkFBa0IsaUlDZi9CLDhsSEFpRk0sMmtCRHRFUSxpQkFBaUIsc0dBQUUsZUFBZTs7NEZBSW5DLGtCQUFrQjtrQkFQOUIsU0FBUzsrQkFDSSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1AsQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLENBQUM7c0hBUXBDLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE5nTW9kdWxlLCBPbkluaXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50SGVscGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9jb21wb25lbnQtaGVscGVyJztcbmltcG9ydCB7IENvcmVDb25zdGFudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2NvcmUuY29uc3RhbnRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmV2aWV3c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcy9yZXZpZXdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmF0aW5nRWNDb21wb25lbnQgfSBmcm9tICcuLi93aWRnZXRzLWVjL3JhdGluZy1lYy9yYXRpbmctZWMuY29tcG9uZW50JztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcyc7XG5BdXRoU2VydmljZVxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtcmV2aWV3cy1lYycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbUmF0aW5nRWNDb21wb25lbnQsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Jldmlld3MtZWMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3Jldmlld3MtZWMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBSZXZpZXdzRWNDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRIZWxwZXIgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBwcm9kdWN0byBkZWwgY3VhbCBzZSBvYnRlbmRyYW4gbGFzIHJldmlld3MuIFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHByb2R1Y3Q6YW55O1xuXG4gICAgcHVibGljIHJldmlld3M6YW55O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZXZpZXdzU2VydmljZTogUmV2aWV3c1NlcnZpY2UsIHB1YmxpYyBjb25zdHM6Q29yZUNvbnN0YW50c1NlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoKVxuICAgICAgICB0aGlzLnJldmlld3NTZXJ2aWNlLnJldmlld3MkLnN1YnNjcmliZShyZXMgPT4gdGhpcy5yZXZpZXdzID0gcmVzKVxuICAgICAgICB0aGlzLmVjT25Db25zdHJ1Y3QoKVxuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnJldmlld3NTZXJ2aWNlLmdldFJldmlld3NCeUNvZGUodGhpcy5wcm9kdWN0LmlkKVxuICAgICAgICB0aGlzLmVjT25Jbml0KClcbiAgICAgICAgXG4gICAgfVxuXG4gICAgbmV4dCA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5yZXZpZXdzU2VydmljZS5nZXRSZXZpZXdzKCduZXh0Jyk7XG4gICAgfVxuXG4gICAgbGFzdCA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5yZXZpZXdzU2VydmljZS5nZXRSZXZpZXdzKCdsYXN0Jyk7XG4gICAgfVxuXG4gICAgZmlyc3QgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMucmV2aWV3c1NlcnZpY2UuZ2V0UmV2aWV3cygnZmlyc3QnKTtcbiAgICB9XG5cbiAgICBzZWxmID0gKCkgPT4ge1xuICAgICAgICB0aGlzLnJldmlld3NTZXJ2aWNlLmdldFJldmlld3MoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gZ2VuZXJhIHVuIGFycmVnbG8gY29uIHRhbWHDsW8gaWd1YWwgYSBsYSBjYW50aWRhZCBkZSBwYWdpbmFzIHF1ZSB0aWVuZSBsYSByZXZpZXcuXG4gICAgICogQHJldHVybnMge251bWJlcltdfSB1biBhcnJlZ2xvIGN1eW8gY29udGVuZGlvIGVzIHVuIGVudGVybyBxdWUgaW5kaWNhIGVsIG51bWVybyBkZSBwYWdpbmEuIFxuICAgICAqL1xuICAgIGdldFBhZ2VzID0gKCk6bnVtYmVyW10gPT4ge1xuICAgICAgICBsZXQgcGFnZXM6bnVtYmVyW109W11cbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMucmV2aWV3cy5wYWdlczsgaW5kZXgrKykge1xuICAgICAgICAgICAgcGFnZXMucHVzaChpbmRleCsxKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYWdlc1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBhY3R1YWxpemEgbGFzIHJldmlld3MgY29uIGVsIGNvbnRlbmlkbyBhc29jaWFkbyBhIGxhIHBhZ2luYSBwYXNhZGEgcG9yIHBhcmFtZXRyb1xuICAgICAqIEBwYXJhbSBwYWdlIFxuICAgICAqL1xuICAgIGdvUGFnZSA9IChwYWdlOm51bWJlcikgPT4ge1xuICAgICAgICB0aGlzLnJldmlld3NTZXJ2aWNlLmdldFJldmlld3NCeVBhZ2UodGhpcy5wcm9kdWN0LmlkLHBhZ2UsIHRoaXMucmV2aWV3cy5saW1pdClcbiAgICB9XG5cbiAgICBnZXRBdXRob3JOYW1lKGVtYWlsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIWVtYWlsIHx8IGVtYWlsLmluZGV4T2YoJ0AnKSA9PT0gLTEpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZW1haWwuc3BsaXQoJ0AnKVswXTtcbiAgICB9XG5cbiAgICBnZXRTdGFyQXJyYXkocmF0aW5nOiBudW1iZXIpOiBudW1iZXJbXSB7XG4gICAgICAgIHJldHVybiBBcnJheSg1KS5maWxsKDApO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2F1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSlcbiAgICBwdWJsaWMgaXNBdXRoZW50aWNhdGVkJCA9IHRoaXMuX2F1dGhTZXJ2aWNlLmlzQXV0aGVudGljYXRlZCgpO1xufVxuIiwiPGRpdiBjbGFzcz1cInJvdyBweC0zXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMiBwYi0yIHBiLW1kLTBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyB3LTEwMFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbWQtNlwiPlxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cIm1iLTAgcHQtMiBwYi0xXCI+e3tcInByb2R1Y3QtcmV2aWV3XCIgfCB0cmFuc2xhdGV9fTwvaDQ+XG4gICAgICAgICAgICAgICAgQGlmKGlzQXV0aGVudGljYXRlZCQgKXtcbiAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJwYi0yIGVzY3JpYmlyXCIgZGF0YS1icy10b2dnbGU9XCJtb2RhbFwiIGhyZWY9XCIjbW9kYWxSZXZpZXdcIj5cbiAgICAgICAgICAgICAgICAgICAge3tcIndyaXRlLWEtcmV2aWV3XCIgfCB0cmFuc2xhdGV9fVxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLXBlbmNpbC1zcXVhcmVcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbWQtNiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1zdGFydCBqdXN0aWZ5LWNvbnRlbnQtbWQtZW5kXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB1bnRhamUgZC1mbGV4XCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbnVtYmVyIGxldC1yYXRpbmdWYWx1ZT1cInJhdGluZ1ZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInB1bnRvcyBtYi0wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tyYXRpbmdWYWx1ZX19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxhcHAtcmF0aW5nLWVjIFtyYXRpbmdWYWx1ZV09XCJwcm9kdWN0LnJhdGluZ1wiIFt0ZW1wbGF0ZV09XCJudW1iZXJcIj48L2FwcC1yYXRpbmctZWM+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcy0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RhcnMgbWItMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtcmF0aW5nLWVjIFtyYXRpbmdWYWx1ZV09XCJwcm9kdWN0LnJhdGluZ1wiPjwvYXBwLXJhdGluZy1lYz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNtYWxsPjxzdHJvbmc+e3tyZXZpZXdzLnRvdGFsfX0ge3tcInJldmlld3NcIiB8IHRyYW5zbGF0ZX19PC9zdHJvbmc+PC9zbWFsbD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGhyPlxuXG4gICAgPGRpdiBjbGFzcz1cInRhYi1jb250ZW50IG10LTRcIiBpZD1cIm15VGFiQ29udGVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGctNVwiPlxuICAgICAgICAgICAgQGZvciAoaXRlbSBvZiByZXZpZXdzLml0ZW1zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTYgY29sLW1kLTRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOSBjb2wtc20tMTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyYW5raW5nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1yYXRpbmctZWMgW3JhdGluZ1ZhbHVlXT1cIml0ZW0ucmF0aW5nXCI+PC9hcHAtcmF0aW5nLWVjPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJ0ZXh0LXVwcGVyY2FzZVwiPnt7aXRlbS50aXRsZX19PC9oND5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXN1c2FyaW9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1wZXJzb24tZmlsbFwiPjwvaT4ge3sgZ2V0QXV0aG9yTmFtZShpdGVtLmF1dGhvcikgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlc2VuaWEgbXQtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIHN0eWxlPVwiZm9udC1zaXplOiAxNHB4O1wiPiB7e2l0ZW0uY29tbWVudH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoZ2V0UGFnZXMoKSAmJiBnZXRQYWdlcygpLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIDxuYXYgYXJpYS1sYWJlbD1cIlBhZ2UgbmF2aWdhdGlvbiBleGFtcGxlXCI+XG4gICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwicGFnaW5hdGlvbiBjdXN0b20tcGFnaW5hdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwicGFnZS1saW5rIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImZpcnN0KClcIiBhcmlhLWxhYmVsPVwiUHJldmlvdXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mbGFxdW87PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICBAZm9yIChwYWdlIG9mIGdldFBhZ2VzKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwicGFnZS1saW5rIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImdvUGFnZShwYWdlKVwiPnt7IHBhZ2UgfX08L2E+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwicGFnZS1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cInBhZ2UtbGluayBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJuZXh0KClcIiBhcmlhLWxhYmVsPVwiTmV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZyYXF1bzs8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDwvbmF2PlxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbjwvZGl2PiJdfQ==
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2aWV3cy1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9yZXZpZXdzLWVjL3Jldmlld3MtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvcmV2aWV3cy1lYy9yZXZpZXdzLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFvQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7O0FBQ2hELFdBQVcsQ0FBQTtBQVFYLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxlQUFlO0lBUS9CO0lBQXVDO0lBUDNEOztPQUVHO0lBQ00sT0FBTyxDQUFLO0lBRWQsT0FBTyxDQUFLO0lBRW5CLFlBQW9CLGNBQThCLEVBQVMsTUFBMkI7UUFDbEYsS0FBSyxFQUFFLENBQUE7UUFEUyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUVsRixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFBO1FBQ2pFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUN4QixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUNyRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUE7SUFFbkIsQ0FBQztJQUVELElBQUksR0FBRyxHQUFHLEVBQUU7UUFDUixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQyxDQUFDLENBQUE7SUFFRCxJQUFJLEdBQUcsR0FBRyxFQUFFO1FBQ1IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0MsQ0FBQyxDQUFBO0lBRUQsS0FBSyxHQUFHLEdBQUcsRUFBRTtRQUNULElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLENBQUMsQ0FBQTtJQUVELElBQUksR0FBRyxHQUFHLEVBQUU7UUFDUixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3JDLENBQUMsQ0FBQTtJQUVEOzs7T0FHRztJQUNILFFBQVEsR0FBRyxHQUFZLEVBQUU7UUFDckIsSUFBSSxLQUFLLEdBQVUsRUFBRSxDQUFBO1FBQ3JCLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3RELEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3ZCLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNoQixDQUFDLENBQUE7SUFFRDs7O09BR0c7SUFDSCxNQUFNLEdBQUcsQ0FBQyxJQUFXLEVBQUUsRUFBRTtRQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2xGLENBQUMsQ0FBQTtJQUVELGFBQWEsQ0FBQyxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE9BQU8sRUFBRSxDQUFDO1FBQ2QsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQWM7UUFDdkIsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFTyxZQUFZLEdBQWdCLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUNoRCxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxDQUFDO3dHQXBFckQsa0JBQWtCOzRGQUFsQixrQkFBa0IsaUlDZi9CLGd3SEFpRk0sMmtCRHRFUSxpQkFBaUIsc0dBQUUsZUFBZTs7NEZBSW5DLGtCQUFrQjtrQkFQOUIsU0FBUzsrQkFDSSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1AsQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLENBQUM7c0hBUXBDLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE5nTW9kdWxlLCBPbkluaXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRIZWxwZXIgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2NvbXBvbmVudC1oZWxwZXInO1xyXG5pbXBvcnQgeyBDb3JlQ29uc3RhbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9jb3JlLmNvbnN0YW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUmV2aWV3c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcy9yZXZpZXdzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSYXRpbmdFY0NvbXBvbmVudCB9IGZyb20gJy4uL3dpZGdldHMtZWMvcmF0aW5nLWVjL3JhdGluZy1lYy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcyc7XHJcbkF1dGhTZXJ2aWNlXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdhcHAtcmV2aWV3cy1lYycsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW1JhdGluZ0VjQ29tcG9uZW50LCBUcmFuc2xhdGVNb2R1bGVdLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Jldmlld3MtZWMuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vcmV2aWV3cy1lYy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZXZpZXdzRWNDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRIZWxwZXIgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb24gcHJvZHVjdG8gZGVsIGN1YWwgc2Ugb2J0ZW5kcmFuIGxhcyByZXZpZXdzLiBcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHJvZHVjdDphbnk7XHJcblxyXG4gICAgcHVibGljIHJldmlld3M6YW55O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmV2aWV3c1NlcnZpY2U6IFJldmlld3NTZXJ2aWNlLCBwdWJsaWMgY29uc3RzOkNvcmVDb25zdGFudHNTZXJ2aWNlKSB7XHJcbiAgICAgICAgc3VwZXIoKVxyXG4gICAgICAgIHRoaXMucmV2aWV3c1NlcnZpY2UucmV2aWV3cyQuc3Vic2NyaWJlKHJlcyA9PiB0aGlzLnJldmlld3MgPSByZXMpXHJcbiAgICAgICAgdGhpcy5lY09uQ29uc3RydWN0KClcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLnJldmlld3NTZXJ2aWNlLmdldFJldmlld3NCeUNvZGUodGhpcy5wcm9kdWN0LmlkKVxyXG4gICAgICAgIHRoaXMuZWNPbkluaXQoKVxyXG4gICAgICAgIFxyXG4gICAgfVxyXG5cclxuICAgIG5leHQgPSAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZXZpZXdzU2VydmljZS5nZXRSZXZpZXdzKCduZXh0Jyk7XHJcbiAgICB9XHJcblxyXG4gICAgbGFzdCA9ICgpID0+IHtcclxuICAgICAgICB0aGlzLnJldmlld3NTZXJ2aWNlLmdldFJldmlld3MoJ2xhc3QnKTtcclxuICAgIH1cclxuXHJcbiAgICBmaXJzdCA9ICgpID0+IHtcclxuICAgICAgICB0aGlzLnJldmlld3NTZXJ2aWNlLmdldFJldmlld3MoJ2ZpcnN0Jyk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZiA9ICgpID0+IHtcclxuICAgICAgICB0aGlzLnJldmlld3NTZXJ2aWNlLmdldFJldmlld3MoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvbiBnZW5lcmEgdW4gYXJyZWdsbyBjb24gdGFtYcOxbyBpZ3VhbCBhIGxhIGNhbnRpZGFkIGRlIHBhZ2luYXMgcXVlIHRpZW5lIGxhIHJldmlldy5cclxuICAgICAqIEByZXR1cm5zIHtudW1iZXJbXX0gdW4gYXJyZWdsbyBjdXlvIGNvbnRlbmRpbyBlcyB1biBlbnRlcm8gcXVlIGluZGljYSBlbCBudW1lcm8gZGUgcGFnaW5hLiBcclxuICAgICAqL1xyXG4gICAgZ2V0UGFnZXMgPSAoKTpudW1iZXJbXSA9PiB7XHJcbiAgICAgICAgbGV0IHBhZ2VzOm51bWJlcltdPVtdXHJcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMucmV2aWV3cy5wYWdlczsgaW5kZXgrKykge1xyXG4gICAgICAgICAgICBwYWdlcy5wdXNoKGluZGV4KzEpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBwYWdlc1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGRlc2NyaXB0aW9uIGFjdHVhbGl6YSBsYXMgcmV2aWV3cyBjb24gZWwgY29udGVuaWRvIGFzb2NpYWRvIGEgbGEgcGFnaW5hIHBhc2FkYSBwb3IgcGFyYW1ldHJvXHJcbiAgICAgKiBAcGFyYW0gcGFnZSBcclxuICAgICAqL1xyXG4gICAgZ29QYWdlID0gKHBhZ2U6bnVtYmVyKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZXZpZXdzU2VydmljZS5nZXRSZXZpZXdzQnlQYWdlKHRoaXMucHJvZHVjdC5pZCxwYWdlLCB0aGlzLnJldmlld3MubGltaXQpXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QXV0aG9yTmFtZShlbWFpbDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoIWVtYWlsIHx8IGVtYWlsLmluZGV4T2YoJ0AnKSA9PT0gLTEpIHtcclxuICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZW1haWwuc3BsaXQoJ0AnKVswXTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRTdGFyQXJyYXkocmF0aW5nOiBudW1iZXIpOiBudW1iZXJbXSB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5KDUpLmZpbGwoMCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKVxyXG4gICAgcHVibGljIGlzQXV0aGVudGljYXRlZCQgPSB0aGlzLl9hdXRoU2VydmljZS5pc0F1dGhlbnRpY2F0ZWQoKTtcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicm93IHB4LTNcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgcGItMiBwYi1tZC0wXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyB3LTEwMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJtYi0wIHB0LTIgcGItMVwiPnt7XCJwcm9kdWN0LXJldmlld1wiIHwgdHJhbnNsYXRlfX08L2g0PlxyXG4gICAgICAgICAgICAgICAgQGlmKGlzQXV0aGVudGljYXRlZCQgKXtcclxuICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cInBiLTIgZXNjcmliaXJcIiBkYXRhLWJzLXRvZ2dsZT1cIm1vZGFsXCIgaHJlZj1cIiNtb2RhbFJldmlld1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7XCJ3cml0ZS1hLXJldmlld1wiIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLXBlbmNpbC1zcXVhcmVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NtYWxsPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1tZC02IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LXN0YXJ0IGp1c3RpZnktY29udGVudC1tZC1lbmRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwdW50YWplIGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbnVtYmVyIGxldC1yYXRpbmdWYWx1ZT1cInJhdGluZ1ZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicHVudG9zIG1iLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cmF0aW5nVmFsdWV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8YXBwLXJhdGluZy1lYyBbcmF0aW5nVmFsdWVdPVwicHJvZHVjdC5yYXRpbmdcIiBbdGVtcGxhdGVdPVwibnVtYmVyXCI+PC9hcHAtcmF0aW5nLWVjPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcy0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGFycyBtYi0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLXJhdGluZy1lYyBbcmF0aW5nVmFsdWVdPVwicHJvZHVjdC5yYXRpbmdcIj48L2FwcC1yYXRpbmctZWM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c21hbGw+PHN0cm9uZz57e3Jldmlld3MudG90YWx9fSB7e1wicmV2aWV3c1wiIHwgdHJhbnNsYXRlfX08L3N0cm9uZz48L3NtYWxsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8aHI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInRhYi1jb250ZW50IG10LTRcIiBpZD1cIm15VGFiQ29udGVudFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZy01XCI+XHJcbiAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgcmV2aWV3cy5pdGVtczsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTYgY29sLW1kLTRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTkgY29sLXNtLTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyYW5raW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLXJhdGluZy1lYyBbcmF0aW5nVmFsdWVdPVwiaXRlbS5yYXRpbmdcIj48L2FwcC1yYXRpbmctZWM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJ0ZXh0LXVwcGVyY2FzZVwiPnt7aXRlbS50aXRsZX19PC9oND5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzdXNhcmlvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1wZXJzb24tZmlsbFwiPjwvaT4ge3sgZ2V0QXV0aG9yTmFtZShpdGVtLmF1dGhvcikgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlc2VuaWEgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9XCJmb250LXNpemU6IDE0cHg7XCI+IHt7aXRlbS5jb21tZW50fX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAaWYgKGdldFBhZ2VzKCkgJiYgZ2V0UGFnZXMoKS5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICAgIDxuYXYgYXJpYS1sYWJlbD1cIlBhZ2UgbmF2aWdhdGlvbiBleGFtcGxlXCI+XHJcbiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJwYWdpbmF0aW9uIGN1c3RvbS1wYWdpbmF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwicGFnZS1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwicGFnZS1saW5rIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImZpcnN0KClcIiBhcmlhLWxhYmVsPVwiUHJldmlvdXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZsYXF1bzs8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKHBhZ2Ugb2YgZ2V0UGFnZXMoKTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwicGFnZS1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwicGFnZS1saW5rIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImdvUGFnZShwYWdlKVwiPnt7IHBhZ2UgfX08L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwicGFnZS1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwicGFnZS1saW5rIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIm5leHQoKVwiIGFyaWEtbGFiZWw9XCJOZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mcmFxdW87PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwvbmF2PlxyXG5cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuPC9kaXY+Il19
|