simpo-component-library 3.6.989 → 3.6.990
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/directive/button-editor.directive.mjs +1 -1
- package/esm2022/lib/directive/image-directive.directive.mjs +1 -1
- package/esm2022/lib/directive/image-editor.directive.mjs +1 -1
- package/esm2022/lib/directive/image-position.directive.mjs +1 -1
- package/esm2022/lib/directive/merge-header.directive.mjs +1 -1
- package/esm2022/lib/directive/spacing-around.directive.mjs +1 -1
- package/esm2022/lib/directive/video-directive.directive.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/address/address.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.model.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/brands-with-image-background-columns/brands-with-image-background-columns.component.mjs +35 -0
- package/esm2022/lib/ecommerce/sections/cart/cart.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/categories-with-image-background-columns/categories-with-image-background-columns.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/category-product/category-product.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/category-product/category-product.model.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/featured-brand/featured-brand.component.mjs +168 -0
- package/esm2022/lib/ecommerce/sections/featured-brand/featured-brand.modal.mjs +2 -0
- package/esm2022/lib/ecommerce/sections/featured-category/featured-category.component.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/featured-category/featured-category.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/featured-category/featured-collection.component.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/featured-products/featured-products.component.mjs +7 -8
- package/esm2022/lib/ecommerce/sections/featured-products/featured-products.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/product-desc/product-desc.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/refer-earn/refer-earn.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/refer-earn/refer-earn.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/scheme-details/scheme-details.component.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/schemes/schemes.component.mjs +5 -5
- package/esm2022/lib/ecommerce/sections/verify-payment/verify-payment.component.mjs +34 -10
- package/esm2022/lib/ecommerce/sections/whislist/whislist.component.mjs +3 -3
- package/esm2022/lib/ecommerce/styles/OrderedItems.modal.mjs +1 -1
- package/esm2022/lib/elements/add-section/add-section.component.mjs +3 -3
- package/esm2022/lib/elements/below-image-card/below-image-card.component.mjs +1 -1
- package/esm2022/lib/elements/covering-image-card/covering-image-card.component.mjs +1 -1
- package/esm2022/lib/elements/editor-service.service.mjs +1 -1
- package/esm2022/lib/elements/link-editor/link-editor.component.mjs +3 -3
- package/esm2022/lib/elements/media-selector/media-selector.component.mjs +3 -3
- package/esm2022/lib/elements/pricing-s1/pricing-s1.component.mjs +3 -3
- package/esm2022/lib/elements/text-editor/text-editor.component.mjs +9 -9
- package/esm2022/lib/elements/top-of-image-card/top-of-image-card.component.mjs +1 -1
- package/esm2022/lib/pipes/gender.pipe.mjs +1 -1
- package/esm2022/lib/sections/BaseSection.mjs +1 -1
- package/esm2022/lib/sections/appointment-form/appointment-booking/appointment-booking/appointment-booking.component.mjs +3 -3
- package/esm2022/lib/sections/banner-carousel/banner-carousel.component.mjs +3 -3
- package/esm2022/lib/sections/banner-grid-section/banner-grid-section.component.mjs +3 -3
- package/esm2022/lib/sections/brand-story-section/brand-story-section.component.mjs +3 -3
- package/esm2022/lib/sections/brand-story-section/brand-story-section.modal.mjs +1 -1
- package/esm2022/lib/sections/button-grid-section/button-grid-section.component.mjs +3 -3
- package/esm2022/lib/sections/choose-us-section/choose-us-section.component.mjs +3 -3
- package/esm2022/lib/sections/condensed-and-gradient/condensed-and-gradient.component.mjs +3 -3
- package/esm2022/lib/sections/countdown-banner/countdown-banner.component.model.mjs +1 -1
- package/esm2022/lib/sections/faq-columns-cards/faq-columns-cards.component.mjs +3 -3
- package/esm2022/lib/sections/faq-columns-cards/faq-columns-cards.modal.mjs +1 -1
- package/esm2022/lib/sections/faq-section/faq-section.component.mjs +3 -3
- package/esm2022/lib/sections/feature-experience-section/feature-experience-section.component.mjs +3 -3
- package/esm2022/lib/sections/feature-experience-section/feature-experience-section.modal.mjs +1 -1
- package/esm2022/lib/sections/features-section/features-section.component.mjs +3 -3
- package/esm2022/lib/sections/footer/footer.modal.mjs +1 -1
- package/esm2022/lib/sections/four-features-centered-image/four-features-centered-image.component.mjs +3 -3
- package/esm2022/lib/sections/four-features-centered-image/four-features-centered-image.modal.mjs +1 -1
- package/esm2022/lib/sections/header-text/header-text.component.mjs +3 -3
- package/esm2022/lib/sections/image-background/image-background/image-background.component.mjs +3 -3
- package/esm2022/lib/sections/image-background/image-background/image-background.component.model.mjs +1 -1
- package/esm2022/lib/sections/image-carousel-section/image-carousel-section.component.mjs +3 -3
- package/esm2022/lib/sections/image-grid-hotspot/image-grid-hotspot.component.mjs +3 -3
- package/esm2022/lib/sections/image-grid-hotspot/image-grid-hotspot.model.mjs +1 -1
- package/esm2022/lib/sections/image-grid-section/image-grid-section.component.mjs +3 -3
- package/esm2022/lib/sections/image-grid-section/image-grid-section.model.mjs +1 -1
- package/esm2022/lib/sections/image-section/image-section.component.mjs +3 -3
- package/esm2022/lib/sections/location-section/location-section.component.mjs +3 -3
- package/esm2022/lib/sections/new-services/new-services.component.mjs +3 -3
- package/esm2022/lib/sections/new-testimonials/new-testimonials.component.mjs +3 -3
- package/esm2022/lib/sections/news-letter-component/news-letter-component.component.mjs +3 -3
- package/esm2022/lib/sections/overlapping-image/overlapping-image.component.mjs +3 -3
- package/esm2022/lib/sections/overlapping-image/overlapping-image.component.modal.mjs +1 -1
- package/esm2022/lib/sections/pricing-section/pricing-section.component.mjs +3 -3
- package/esm2022/lib/sections/process-modern/process-modern.component.mjs +3 -3
- package/esm2022/lib/sections/process-section/process-section.component.mjs +3 -3
- package/esm2022/lib/sections/product-info-section/product-info-section.component.mjs +3 -3
- package/esm2022/lib/sections/product-info-section/product-info-section.component.modal.mjs +1 -1
- package/esm2022/lib/sections/scheme-detail/scheme-detail.component.mjs +3 -3
- package/esm2022/lib/sections/service-section/service-section.component.mjs +3 -3
- package/esm2022/lib/sections/service-section/service-section.model.mjs +1 -1
- package/esm2022/lib/sections/team-member-section/team-member-section.component.mjs +3 -3
- package/esm2022/lib/sections/team-member-section/team-member-section.model.mjs +1 -1
- package/esm2022/lib/sections/testimonial-fullwidth/testimonial-fullwidth.component.mjs +3 -3
- package/esm2022/lib/sections/testimonial-masonry/testimonial-masonry.component.mjs +3 -3
- package/esm2022/lib/sections/testimonial-masonry/testimonial-masonry.model.mjs +1 -1
- package/esm2022/lib/sections/testimonial-section/testimonial-section.component.mjs +3 -3
- package/esm2022/lib/sections/testimonial-slider/testimonial-slider.component.mjs +3 -3
- package/esm2022/lib/sections/testimonial-slider/testimonial-slider.model.mjs +1 -1
- package/esm2022/lib/sections/testimonial-video/testimonial-video.component.mjs +3 -3
- package/esm2022/lib/sections/video-carousel-section/video-carousel-section.component.mjs +3 -3
- package/esm2022/lib/sections/video-carousel-section/video-carousel.model.mjs +1 -1
- package/esm2022/lib/sections/video-grid-section/video-grid-section.model.mjs +1 -1
- package/esm2022/lib/sections/video-showcase/video-showcase.component.mjs +3 -3
- package/esm2022/lib/services/events.service.mjs +2 -1
- package/esm2022/lib/services/sanitizeHtml.mjs +1 -1
- package/esm2022/lib/services/storage.service.mjs +5 -9
- package/esm2022/lib/styles/gradient-extension.mjs +1 -1
- package/esm2022/lib/styles/style.model.mjs +1 -1
- package/esm2022/lib/styles/text-size.extension.mjs +1 -1
- package/esm2022/lib/styles/types.mjs +1 -1
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/simpo-component-library.mjs +321 -131
- package/fesm2022/simpo-component-library.mjs.map +1 -1
- package/lib/ecommerce/sections/brands-with-image-background-columns/brands-with-image-background-columns.component.d.ts +17 -0
- package/lib/ecommerce/sections/featured-brand/featured-brand.component.d.ts +42 -0
- package/lib/ecommerce/sections/featured-brand/featured-brand.modal.d.ts +25 -0
- package/lib/services/events.service.d.ts +1 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/simpo-component-library-3.6.990.tgz +0 -0
- package/simpo-component-library-3.6.989.tgz +0 -0
|
@@ -68,7 +68,7 @@ export class ImageCarouselSectionComponent extends BaseSection {
|
|
|
68
68
|
}, 100);
|
|
69
69
|
}
|
|
70
70
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImageCarouselSectionComponent, deps: [{ token: i1.EventsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
71
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ImageCarouselSectionComponent, isStandalone: true, selector: "simpo-image-carousel-section", inputs: { data: "data", index: "index", customClass: "customClass", nextComponentColor: "nextComponentColor", edit: "edit", delete: "delete" }, host: { listeners: { "window:resize": "getScreenSize($event)" } }, usesInheritance: true, ngImport: i0, template: "<section class=\"container-fluid\" [id]=\"data?.id\" simpoHover (hovering)=\"showEditTabs($event)\" class=\"total-container\"\r\n [attr.style]=\"customClass\" [simpoBackground]=\"style?.background\" [simpoBorder]=\"style?.border\">\r\n <div [id]=\"data?.id\" [simpoOverlay]=\"style?.background\">\r\n <div *ngFor=\"let text of data?.content?.inputText\" [simpoCorner]=\"style?.corners\"\r\n [ngClass]=\"{'px-0': style?.fullWidth, 'image-screen': style?.layout?.fit === 'screen' && style?.fullWidth, 'img-screen-notext': style?.layout?.fit === 'screen' && style?.fullWidth && text.value === ''}\"\r\n [id]=\"data?.id\" [simpoSpacing]=\"spacingLayout\">\r\n <div class=\"row mlr-0 w-100\" *ngIf=\"data?.content?.inputText?.length\" [id]=\"data?.id\"\r\n [simpoAnimation]=\"style?.animation\">\r\n <div *ngFor=\"let text of data?.content?.inputText; let i = index\">\r\n <div class=\"heading-large content-side\" [simpoContentTitleSpace]=\"headingSpace\" *ngIf=\"edit || text.value\">\r\n <simpo-text-editor [(value)]=\"text.value\" [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"i\" [isRTE]=\"text.isRTE\"></simpo-text-editor>\r\n </div>\r\n </div>\r\n\r\n <div [id]=\"'carouselExampleCaptions'+data?.id\" class=\"carousel slide min-height-unset\"\r\n [ngClass]=\"{'mb-0 px-0 py-0': style?.fullWidth, 'mb-md-1 mb-sm-0 mb-lg-1': !style?.fullWidth}\"\r\n [attr.data-bs-ride]=\"!edit ? 'carousel' : null\" [attr.data-bs-interval]=\"!edit ? 4000 : null\">\r\n <!-- [simpoLayout]=\"style?.layout\" -->\r\n <div class=\"carousel-inner\">\r\n <!-- data-bs-ride=\"carousel\" -->\r\n <div class=\"carousel-item\" *ngFor=\"let img of content?.listItem?.data; let i = index\"\r\n [class.active]=\"i === 0\">\r\n <div class=\"row m-0\">\r\n <div class=\"col d-flex p-0\" *ngIf=\"screenWidth >= 475\">\r\n <img loading=\"lazy\"\r\n [ngClass]=\"{'image-height-content': style?.layout?.fit === 'content', 'image-height-screen': style?.layout?.fit === 'screen'}\"\r\n *ngIf=\"!style?.fullWidth\" [simpoImageDirective]=\"style?.image\"\r\n class=\"d-block position-relative blur\"\r\n style=\"object-fit: cover !important;width: 100%;max-width: 20%; left: -20px ;position: fixed;\"\r\n [src]=\"getPrevImage(i)?.url\" [alt]=\"getPrevImage(i)?.altText\" [simpoCorner]=\"style?.corners\"\r\n [id]=\"data?.id\" [simpoObjectPosition]=\"getPrevImage(i)?.position\" loading=\"lazy\"\r\n [appImageEditor]=\"edit || false\" [imageData]=\"img?.image\" [sectionId]=\"data?.id\" [itemIndex]=\"i\">\r\n <img loading=\"lazy\"\r\n [ngClass]=\"{'full-width-image': style?.fullWidth, 'not-full-width': !style?.fullWidth, 'image-height-content': style?.layout?.fit === 'content', 'image-height-screen': style?.layout?.fit === 'screen'}\"\r\n [simpoImageDirective]=\"style?.image\" class=\"d-block image-height-80vh\"\r\n [class]=\"data?.id+img.image.id\" [src]=\"img.image.url\" [alt]=\"img.image.altText\"\r\n [simpoCorner]=\"style?.corners\" [id]=\"data?.id\" [simpoObjectPosition]=\"img?.image?.position\"\r\n loading=\"lazy\" [appImageEditor]=\"edit || false\" [imageData]=\"img?.image\" [sectionId]=\"data?.id\" [itemIndex]=\"i\">\r\n <img loading=\"lazy\"\r\n [ngClass]=\"{'image-height-content': style?.layout?.fit === 'content', 'image-height-screen': style?.layout?.fit === 'screen'}\"\r\n *ngIf=\"!style?.fullWidth\" [simpoImageDirective]=\"style?.image\"\r\n class=\"d-block position-relative blur\"\r\n style=\"object-fit: cover !important;width: 100%; max-width: 20%;right: -20px;\"\r\n [src]=\"getNextImage(i)?.url\" [alt]=\"getNextImage(i)?.altText\" [simpoCorner]=\"style?.corners\"\r\n [id]=\"data?.id\" [simpoObjectPosition]=\"getNextImage(i)?.position\" loading=\"lazy\"\r\n [appImageEditor]=\"edit || false\" [imageData]=\"img?.image\" [sectionId]=\"data?.id\" [itemIndex]=\"i\">\r\n </div>\r\n <div class=\"col d-flex p-0\" *ngIf=\"screenWidth < 475\">\r\n <img loading=\"lazy\" class=\"d-block w-100 image-height-40vh\" [class]=\"data?.id+img.image.id\"\r\n [src]=\"img.image.url\" [alt]=\"img.image.altText\" [id]=\"data?.id\"\r\n [simpoObjectPosition]=\"img?.image?.position\" loading=\"lazy\" [appImageEditor]=\"edit || false\"\r\n [imageData]=\"img?.image\" [sectionId]=\"data?.id\" [itemIndex]=\"i\" [simpoCorner]=\"style?.corners\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <a class=\"carousel-control-prev\" [attr.data-bs-target]=\"'#carouselExampleCaptions'+data?.id\" role=\"button\"\r\n data-bs-slide=\"prev\">\r\n <span class=\"carousel-control-prev-icon previous-icon d-flex align-items-center justify-content-center\"\r\n aria-hidden=\"true\">\r\n <mat-icon class=\"icon d-flex align-items-center justify-content-center\">keyboard_arrow_left</mat-icon>\r\n </span>\r\n <span class=\"sr-only\">Previous</span>\r\n\r\n </a>\r\n <a class=\"carousel-control-next\" [attr.data-bs-target]=\"'#carouselExampleCaptions'+data?.id\" role=\"button\"\r\n data-bs-slide=\"next\">\r\n <span class=\"carousel-control-next-icon previous-icon d-flex align-items-center justify-content-center\"\r\n aria-hidden=\"true\">\r\n <mat-icon class=\"icon d-flex align-items-center justify-content-center\">keyboard_arrow_right</mat-icon>\r\n </span>\r\n <span class=\"sr-only\">Next</span>\r\n\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"style?.devider?.display\">\r\n <simpo-svg-divider [dividerType]=\"style?.devider?.deviderType\"\r\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n</section>", styles: [".mb-1{margin-bottom:1.5rem!important}.previous-icon{width:65px;height:65px}.image-height-40vh{height:40vh}.full-width-image{width:100%;height:70vh}.previous-icon{background:#fff;border-radius:50%}.not-full-width{width:60%}.icon{color:#000!important;font-size:40px!important}.image-height-content{height:70vh}.image-height-screen{height:calc(90vh + -0px);min-height:0px!important}.btn-primary{border:none}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.total-container{position:relative;height:auto}.button-display{display:flex;gap:10px}.gap-15{gap:15px}.blur{filter:blur(5px)}@media only screen and (max-width: 475px){.previous-icon{width:100%;height:45px!important}.min-height-unset{min-height:unset!important}.image-height-40vh{padding:0}}.mlr-0{margin-left:0;margin-right:0}li{list-style:none}.caratlane-indicator{display:flex;align-items:center;justify-content:center;background:#1e1f21b3;border-radius:18px;min-width:50px;height:32px;padding:0 16px;font-size:1rem;font-weight:600;color:#fff;margin:18px auto 0;box-shadow:0 2px 8px #151d481a;letter-spacing:1px}.caratlane-indicator .current{font-weight:700;font-size:1rem;color:#fff}.caratlane-indicator .divider,.caratlane-indicator .total{font-weight:500;color:#fff;opacity:.9;margin-left:2px}.caratlane-indicator{position:absolute;bottom:20px;left:50%;transform:translate(-50%);background:#0009;color:#fff;padding:8px 16px;border-radius:20px;font-size:14px;font-weight:500;z-index:10;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);min-width:45px;text-align:center}@media (max-width: 768px){.caratlane-indicator{bottom:15px;padding:6px 12px;font-size:12px}}\n"], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: SimpoElementsModule }, { kind: "component", type: i2.SvgDividerComponent, selector: "simpo-svg-divider", inputs: ["dividerType", "color"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i4.HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: i5.DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "component", type: TextEditorComponent, selector: "simpo-text-editor", inputs: ["value", "editable", "isRTE", "sectionId", "label", "type", "inputTextIndex", "itemIndex"], outputs: ["valueChange"] }, { kind: "directive", type:
|
|
71
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ImageCarouselSectionComponent, isStandalone: true, selector: "simpo-image-carousel-section", inputs: { data: "data", index: "index", customClass: "customClass", nextComponentColor: "nextComponentColor", edit: "edit", delete: "delete" }, host: { listeners: { "window:resize": "getScreenSize($event)" } }, usesInheritance: true, ngImport: i0, template: "<section class=\"container-fluid\" [id]=\"data?.id\" simpoHover (hovering)=\"showEditTabs($event)\" class=\"total-container\"\n [attr.style]=\"customClass\" [simpoBackground]=\"style?.background\" [simpoBorder]=\"style?.border\">\n <div [id]=\"data?.id\" [simpoOverlay]=\"style?.background\">\n <div *ngFor=\"let text of data?.content?.inputText\" [simpoCorner]=\"style?.corners\"\n [ngClass]=\"{'px-0': style?.fullWidth, 'image-screen': style?.layout?.fit === 'screen' && style?.fullWidth, 'img-screen-notext': style?.layout?.fit === 'screen' && style?.fullWidth && text.value === ''}\"\n [id]=\"data?.id\" [simpoSpacing]=\"spacingLayout\">\n <div class=\"row mlr-0 w-100\" *ngIf=\"data?.content?.inputText?.length\" [id]=\"data?.id\"\n [simpoAnimation]=\"style?.animation\">\n <div *ngFor=\"let text of data?.content?.inputText; let i = index\">\n <div class=\"heading-large content-side\" [simpoContentTitleSpace]=\"headingSpace\" *ngIf=\"edit || text.value\">\n <simpo-text-editor [(value)]=\"text.value\" [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"i\" [isRTE]=\"text.isRTE\"></simpo-text-editor>\n </div>\n </div>\n\n <div [id]=\"'carouselExampleCaptions'+data?.id\" class=\"carousel slide min-height-unset\"\n [ngClass]=\"{'mb-0 px-0 py-0': style?.fullWidth, 'mb-md-1 mb-sm-0 mb-lg-1': !style?.fullWidth}\"\n [attr.data-bs-ride]=\"!edit ? 'carousel' : null\" [attr.data-bs-interval]=\"!edit ? 4000 : null\">\n <!-- [simpoLayout]=\"style?.layout\" -->\n <div class=\"carousel-inner\">\n <!-- data-bs-ride=\"carousel\" -->\n <div class=\"carousel-item\" *ngFor=\"let img of content?.listItem?.data; let i = index\"\n [class.active]=\"i === 0\">\n <div class=\"row m-0\">\n <div class=\"col d-flex p-0\" *ngIf=\"screenWidth >= 475\">\n <img loading=\"lazy\"\n [ngClass]=\"{'image-height-content': style?.layout?.fit === 'content', 'image-height-screen': style?.layout?.fit === 'screen'}\"\n *ngIf=\"!style?.fullWidth\" [simpoImageDirective]=\"style?.image\"\n class=\"d-block position-relative blur\"\n style=\"object-fit: cover !important;width: 100%;max-width: 20%; left: -20px ;position: fixed;\"\n [src]=\"getPrevImage(i)?.url\" [alt]=\"getPrevImage(i)?.altText\" [simpoCorner]=\"style?.corners\"\n [id]=\"data?.id\" [simpoObjectPosition]=\"getPrevImage(i)?.position\" loading=\"lazy\"\n [appImageEditor]=\"edit || false\" [imageData]=\"img?.image\" [sectionId]=\"data?.id\" [itemIndex]=\"i\">\n <img loading=\"lazy\"\n [ngClass]=\"{'full-width-image': style?.fullWidth, 'not-full-width': !style?.fullWidth, 'image-height-content': style?.layout?.fit === 'content', 'image-height-screen': style?.layout?.fit === 'screen'}\"\n [simpoImageDirective]=\"style?.image\" class=\"d-block image-height-80vh\"\n [class]=\"data?.id+img.image.id\" [src]=\"img.image.url\" [alt]=\"img.image.altText\"\n [simpoCorner]=\"style?.corners\" [id]=\"data?.id\" [simpoObjectPosition]=\"img?.image?.position\"\n loading=\"lazy\" [appImageEditor]=\"edit || false\" [imageData]=\"img?.image\" [sectionId]=\"data?.id\" [itemIndex]=\"i\">\n <img loading=\"lazy\"\n [ngClass]=\"{'image-height-content': style?.layout?.fit === 'content', 'image-height-screen': style?.layout?.fit === 'screen'}\"\n *ngIf=\"!style?.fullWidth\" [simpoImageDirective]=\"style?.image\"\n class=\"d-block position-relative blur\"\n style=\"object-fit: cover !important;width: 100%; max-width: 20%;right: -20px;\"\n [src]=\"getNextImage(i)?.url\" [alt]=\"getNextImage(i)?.altText\" [simpoCorner]=\"style?.corners\"\n [id]=\"data?.id\" [simpoObjectPosition]=\"getNextImage(i)?.position\" loading=\"lazy\"\n [appImageEditor]=\"edit || false\" [imageData]=\"img?.image\" [sectionId]=\"data?.id\" [itemIndex]=\"i\">\n </div>\n <div class=\"col d-flex p-0\" *ngIf=\"screenWidth < 475\">\n <img loading=\"lazy\" class=\"d-block w-100 image-height-40vh\" [class]=\"data?.id+img.image.id\"\n [src]=\"img.image.url\" [alt]=\"img.image.altText\" [id]=\"data?.id\"\n [simpoObjectPosition]=\"img?.image?.position\" loading=\"lazy\" [appImageEditor]=\"edit || false\"\n [imageData]=\"img?.image\" [sectionId]=\"data?.id\" [itemIndex]=\"i\" [simpoCorner]=\"style?.corners\">\n </div>\n </div>\n </div>\n </div>\n <a class=\"carousel-control-prev\" [attr.data-bs-target]=\"'#carouselExampleCaptions'+data?.id\" role=\"button\"\n data-bs-slide=\"prev\">\n <span class=\"carousel-control-prev-icon previous-icon d-flex align-items-center justify-content-center\"\n aria-hidden=\"true\">\n <mat-icon class=\"icon d-flex align-items-center justify-content-center\">keyboard_arrow_left</mat-icon>\n </span>\n <span class=\"sr-only\">Previous</span>\n\n </a>\n <a class=\"carousel-control-next\" [attr.data-bs-target]=\"'#carouselExampleCaptions'+data?.id\" role=\"button\"\n data-bs-slide=\"next\">\n <span class=\"carousel-control-next-icon previous-icon d-flex align-items-center justify-content-center\"\n aria-hidden=\"true\">\n <mat-icon class=\"icon d-flex align-items-center justify-content-center\">keyboard_arrow_right</mat-icon>\n </span>\n <span class=\"sr-only\">Next</span>\n\n </a>\n </div>\n </div>\n </div>\n </div>\n <ng-container *ngIf=\"style?.devider?.display\">\n <simpo-svg-divider [dividerType]=\"style?.devider?.deviderType\"\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\n </ng-container>\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\n </div>\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\n </div>\n</section>", styles: [".mb-1{margin-bottom:1.5rem!important}.previous-icon{width:65px;height:65px}.image-height-40vh{height:40vh}.full-width-image{width:100%;height:70vh}.previous-icon{background:#fff;border-radius:50%}.not-full-width{width:60%}.icon{color:#000!important;font-size:40px!important}.image-height-content{height:70vh}.image-height-screen{height:calc(90vh + -0px);min-height:0px!important}.btn-primary{border:none}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.total-container{position:relative;height:auto}.button-display{display:flex;gap:10px}.gap-15{gap:15px}.blur{filter:blur(5px)}@media only screen and (max-width: 475px){.previous-icon{width:100%;height:45px!important}.min-height-unset{min-height:unset!important}.image-height-40vh{padding:0}}.mlr-0{margin-left:0;margin-right:0}li{list-style:none}.caratlane-indicator{display:flex;align-items:center;justify-content:center;background:#1e1f21b3;border-radius:18px;min-width:50px;height:32px;padding:0 16px;font-size:1rem;font-weight:600;color:#fff;margin:18px auto 0;box-shadow:0 2px 8px #151d481a;letter-spacing:1px}.caratlane-indicator .current{font-weight:700;font-size:1rem;color:#fff}.caratlane-indicator .divider,.caratlane-indicator .total{font-weight:500;color:#fff;opacity:.9;margin-left:2px}.caratlane-indicator{position:absolute;bottom:20px;left:50%;transform:translate(-50%);background:#0009;color:#fff;padding:8px 16px;border-radius:20px;font-size:14px;font-weight:500;z-index:10;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);min-width:45px;text-align:center}@media (max-width: 768px){.caratlane-indicator{bottom:15px;padding:6px 12px;font-size:12px}}\n"], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: SimpoElementsModule }, { kind: "component", type: i2.SvgDividerComponent, selector: "simpo-svg-divider", inputs: ["dividerType", "color"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i4.HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: i5.DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "component", type: TextEditorComponent, selector: "simpo-text-editor", inputs: ["value", "editable", "isRTE", "sectionId", "label", "type", "inputTextIndex", "itemIndex"], outputs: ["valueChange"] }, { kind: "directive", type:
|
|
72
72
|
//directive
|
|
73
73
|
AnimationDirective, selector: "[simpoAnimation]", inputs: ["simpoAnimation"] }, { kind: "directive", type: BackgroundDirective, selector: "[simpoBackground]", inputs: ["simpoBackground", "scrollValue"] }, { kind: "directive", type: BorderDirective, selector: "[simpoBorder]", inputs: ["simpoBorder"] }, { kind: "directive", type: CornerDirective, selector: "[simpoCorner]", inputs: ["simpoCorner"] }, { kind: "directive", type: HoverDirective, selector: "[simpoHover]", outputs: ["hovering"] }, { kind: "directive", type: ImageDirectiveDirective, selector: "[simpoImageDirective]", inputs: ["simpoImageDirective"] }, { kind: "directive", type: OverlayDirective, selector: "[simpoOverlay]", inputs: ["simpoOverlay"] }, { kind: "directive", type: ObjectPositionDirective, selector: "[simpoObjectPosition]", inputs: ["simpoObjectPosition"] }, { kind: "directive", type: ContentTitleDirective, selector: "[simpoContentTitleSpace]", inputs: ["simpoContentTitleSpace"] }, { kind: "directive", type: ImageEditorDirective, selector: "[appImageEditor]", inputs: ["appImageEditor", "imageData", "sectionId", "showIcon", "iconData", "itemIndex"] }, { kind: "directive", type: SpacingDirective, selector: "[simpoSpacing]", inputs: ["simpoSpacing"] }] }); }
|
|
74
74
|
}
|
|
@@ -92,7 +92,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
92
92
|
ContentTitleDirective,
|
|
93
93
|
ImageEditorDirective,
|
|
94
94
|
SpacingDirective,
|
|
95
|
-
], template: "<section class=\"container-fluid\" [id]=\"data?.id\" simpoHover (hovering)=\"showEditTabs($event)\" class=\"total-container\"\
|
|
95
|
+
], template: "<section class=\"container-fluid\" [id]=\"data?.id\" simpoHover (hovering)=\"showEditTabs($event)\" class=\"total-container\"\n [attr.style]=\"customClass\" [simpoBackground]=\"style?.background\" [simpoBorder]=\"style?.border\">\n <div [id]=\"data?.id\" [simpoOverlay]=\"style?.background\">\n <div *ngFor=\"let text of data?.content?.inputText\" [simpoCorner]=\"style?.corners\"\n [ngClass]=\"{'px-0': style?.fullWidth, 'image-screen': style?.layout?.fit === 'screen' && style?.fullWidth, 'img-screen-notext': style?.layout?.fit === 'screen' && style?.fullWidth && text.value === ''}\"\n [id]=\"data?.id\" [simpoSpacing]=\"spacingLayout\">\n <div class=\"row mlr-0 w-100\" *ngIf=\"data?.content?.inputText?.length\" [id]=\"data?.id\"\n [simpoAnimation]=\"style?.animation\">\n <div *ngFor=\"let text of data?.content?.inputText; let i = index\">\n <div class=\"heading-large content-side\" [simpoContentTitleSpace]=\"headingSpace\" *ngIf=\"edit || text.value\">\n <simpo-text-editor [(value)]=\"text.value\" [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"i\" [isRTE]=\"text.isRTE\"></simpo-text-editor>\n </div>\n </div>\n\n <div [id]=\"'carouselExampleCaptions'+data?.id\" class=\"carousel slide min-height-unset\"\n [ngClass]=\"{'mb-0 px-0 py-0': style?.fullWidth, 'mb-md-1 mb-sm-0 mb-lg-1': !style?.fullWidth}\"\n [attr.data-bs-ride]=\"!edit ? 'carousel' : null\" [attr.data-bs-interval]=\"!edit ? 4000 : null\">\n <!-- [simpoLayout]=\"style?.layout\" -->\n <div class=\"carousel-inner\">\n <!-- data-bs-ride=\"carousel\" -->\n <div class=\"carousel-item\" *ngFor=\"let img of content?.listItem?.data; let i = index\"\n [class.active]=\"i === 0\">\n <div class=\"row m-0\">\n <div class=\"col d-flex p-0\" *ngIf=\"screenWidth >= 475\">\n <img loading=\"lazy\"\n [ngClass]=\"{'image-height-content': style?.layout?.fit === 'content', 'image-height-screen': style?.layout?.fit === 'screen'}\"\n *ngIf=\"!style?.fullWidth\" [simpoImageDirective]=\"style?.image\"\n class=\"d-block position-relative blur\"\n style=\"object-fit: cover !important;width: 100%;max-width: 20%; left: -20px ;position: fixed;\"\n [src]=\"getPrevImage(i)?.url\" [alt]=\"getPrevImage(i)?.altText\" [simpoCorner]=\"style?.corners\"\n [id]=\"data?.id\" [simpoObjectPosition]=\"getPrevImage(i)?.position\" loading=\"lazy\"\n [appImageEditor]=\"edit || false\" [imageData]=\"img?.image\" [sectionId]=\"data?.id\" [itemIndex]=\"i\">\n <img loading=\"lazy\"\n [ngClass]=\"{'full-width-image': style?.fullWidth, 'not-full-width': !style?.fullWidth, 'image-height-content': style?.layout?.fit === 'content', 'image-height-screen': style?.layout?.fit === 'screen'}\"\n [simpoImageDirective]=\"style?.image\" class=\"d-block image-height-80vh\"\n [class]=\"data?.id+img.image.id\" [src]=\"img.image.url\" [alt]=\"img.image.altText\"\n [simpoCorner]=\"style?.corners\" [id]=\"data?.id\" [simpoObjectPosition]=\"img?.image?.position\"\n loading=\"lazy\" [appImageEditor]=\"edit || false\" [imageData]=\"img?.image\" [sectionId]=\"data?.id\" [itemIndex]=\"i\">\n <img loading=\"lazy\"\n [ngClass]=\"{'image-height-content': style?.layout?.fit === 'content', 'image-height-screen': style?.layout?.fit === 'screen'}\"\n *ngIf=\"!style?.fullWidth\" [simpoImageDirective]=\"style?.image\"\n class=\"d-block position-relative blur\"\n style=\"object-fit: cover !important;width: 100%; max-width: 20%;right: -20px;\"\n [src]=\"getNextImage(i)?.url\" [alt]=\"getNextImage(i)?.altText\" [simpoCorner]=\"style?.corners\"\n [id]=\"data?.id\" [simpoObjectPosition]=\"getNextImage(i)?.position\" loading=\"lazy\"\n [appImageEditor]=\"edit || false\" [imageData]=\"img?.image\" [sectionId]=\"data?.id\" [itemIndex]=\"i\">\n </div>\n <div class=\"col d-flex p-0\" *ngIf=\"screenWidth < 475\">\n <img loading=\"lazy\" class=\"d-block w-100 image-height-40vh\" [class]=\"data?.id+img.image.id\"\n [src]=\"img.image.url\" [alt]=\"img.image.altText\" [id]=\"data?.id\"\n [simpoObjectPosition]=\"img?.image?.position\" loading=\"lazy\" [appImageEditor]=\"edit || false\"\n [imageData]=\"img?.image\" [sectionId]=\"data?.id\" [itemIndex]=\"i\" [simpoCorner]=\"style?.corners\">\n </div>\n </div>\n </div>\n </div>\n <a class=\"carousel-control-prev\" [attr.data-bs-target]=\"'#carouselExampleCaptions'+data?.id\" role=\"button\"\n data-bs-slide=\"prev\">\n <span class=\"carousel-control-prev-icon previous-icon d-flex align-items-center justify-content-center\"\n aria-hidden=\"true\">\n <mat-icon class=\"icon d-flex align-items-center justify-content-center\">keyboard_arrow_left</mat-icon>\n </span>\n <span class=\"sr-only\">Previous</span>\n\n </a>\n <a class=\"carousel-control-next\" [attr.data-bs-target]=\"'#carouselExampleCaptions'+data?.id\" role=\"button\"\n data-bs-slide=\"next\">\n <span class=\"carousel-control-next-icon previous-icon d-flex align-items-center justify-content-center\"\n aria-hidden=\"true\">\n <mat-icon class=\"icon d-flex align-items-center justify-content-center\">keyboard_arrow_right</mat-icon>\n </span>\n <span class=\"sr-only\">Next</span>\n\n </a>\n </div>\n </div>\n </div>\n </div>\n <ng-container *ngIf=\"style?.devider?.display\">\n <simpo-svg-divider [dividerType]=\"style?.devider?.deviderType\"\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\n </ng-container>\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\n </div>\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\n </div>\n</section>", styles: [".mb-1{margin-bottom:1.5rem!important}.previous-icon{width:65px;height:65px}.image-height-40vh{height:40vh}.full-width-image{width:100%;height:70vh}.previous-icon{background:#fff;border-radius:50%}.not-full-width{width:60%}.icon{color:#000!important;font-size:40px!important}.image-height-content{height:70vh}.image-height-screen{height:calc(90vh + -0px);min-height:0px!important}.btn-primary{border:none}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.total-container{position:relative;height:auto}.button-display{display:flex;gap:10px}.gap-15{gap:15px}.blur{filter:blur(5px)}@media only screen and (max-width: 475px){.previous-icon{width:100%;height:45px!important}.min-height-unset{min-height:unset!important}.image-height-40vh{padding:0}}.mlr-0{margin-left:0;margin-right:0}li{list-style:none}.caratlane-indicator{display:flex;align-items:center;justify-content:center;background:#1e1f21b3;border-radius:18px;min-width:50px;height:32px;padding:0 16px;font-size:1rem;font-weight:600;color:#fff;margin:18px auto 0;box-shadow:0 2px 8px #151d481a;letter-spacing:1px}.caratlane-indicator .current{font-weight:700;font-size:1rem;color:#fff}.caratlane-indicator .divider,.caratlane-indicator .total{font-weight:500;color:#fff;opacity:.9;margin-left:2px}.caratlane-indicator{position:absolute;bottom:20px;left:50%;transform:translate(-50%);background:#0009;color:#fff;padding:8px 16px;border-radius:20px;font-size:14px;font-weight:500;z-index:10;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);min-width:45px;text-align:center}@media (max-width: 768px){.caratlane-indicator{bottom:15px;padding:6px 12px;font-size:12px}}\n"] }]
|
|
96
96
|
}], ctorParameters: () => [{ type: i1.EventsService }], propDecorators: { data: [{
|
|
97
97
|
type: Input
|
|
98
98
|
}], index: [{
|
|
@@ -109,4 +109,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
109
109
|
type: HostListener,
|
|
110
110
|
args: ['window:resize', ['$event']]
|
|
111
111
|
}] } });
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtY2Fyb3VzZWwtc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL2ltYWdlLWNhcm91c2VsLXNlY3Rpb24vaW1hZ2UtY2Fyb3VzZWwtc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL2ltYWdlLWNhcm91c2VsLXNlY3Rpb24vaW1hZ2UtY2Fyb3VzZWwtc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFNdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sV0FBVyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSx1QkFBdUIsRUFB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QztJQUNWLENBQUM7K0dBakVVLDZCQUE2QjttR0FBN0IsNkJBQTZCLGtVQ3ZEMUMscW9OQXdGVSwwcUREeEROLE9BQU8sMElBQ1AsbUJBQW1CLG9KQUNuQixZQUFZLDZWQUNaLG9CQUFvQixvV0FDcEIsbUJBQW1CO2dCQUduQixXQUFXO2dCQUNYLGtCQUFrQix5RkFDbEIsbUJBQW1CLDBHQUNuQixlQUFlLG1GQUNmLGVBQWUsbUZBQ2YsY0FBYyxnRkFDZCx1QkFBdUIsbUdBQ3ZCLGdCQUFnQixxRkFDaEIsdUJBQXVCLG1HQUN2QixxQkFBcUIseUdBQ3JCLG9CQUFvQix3SkFDcEIsZ0JBQWdCOzs0RkFLUCw2QkFBNkI7a0JBM0J6QyxTQUFTOytCQUNFLDhCQUE4QixjQUM1QixJQUFJLFdBQ1A7d0JBQ1AsT0FBTzt3QkFDUCxtQkFBbUI7d0JBQ25CLFlBQVk7d0JBQ1osb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBR25CLFdBQVc7d0JBQ1gsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixjQUFjO3dCQUNkLHVCQUF1Qjt3QkFDdkIsZ0JBQWdCO3dCQUNoQix1QkFBdUI7d0JBQ3ZCLHFCQUFxQjt3QkFDckIsb0JBQW9CO3dCQUNwQixnQkFBZ0I7cUJBQ2pCO2tGQUtRLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBR0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFvQk4sYUFBYTtzQkFEWixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBJbWFnZUNhcm91c2VsU2VjdGlvbixcbiAgSW1hZ2VDYXJvdXNlbFNlY3Rpb25Db250ZW50TW9kZWwsXG4gIEltYWdlQ2Fyb3VzZWxTZWN0aW9uU3R5bGVzTW9kZWwsXG59IGZyb20gJy4vaW1hZ2UtY2Fyb3VzZWwubW9kZWwnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFNpbXBvRWxlbWVudHNNb2R1bGUgfSBmcm9tICcuLy4uLy4uL2VsZW1lbnRzL2luZGV4JztcblxuaW1wb3J0IHsgQW5pbWF0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2FuaW1hdGlvbi1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQmFja2dyb3VuZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9iYWNrZ3JvdW5kLWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCb3JkZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYm9yZGVyLWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb3JuZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29ybmVyLWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBIb3ZlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9ob3Zlci1lbGVtZW50LWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJbWFnZURpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9pbWFnZS1kaXJlY3RpdmUuZGlyZWN0aXZlJztcbmltcG9ydCB7IE92ZXJsYXlEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvb3ZlcmxheS1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4vLi4vLi4vc2VydmljZXMvZXZlbnRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2ltcG9Db21wb25lbnRNb2R1bGUgfSBmcm9tICcuLy4uLy4uL2NvbXBvbmVudHMvaW5kZXgnO1xuaW1wb3J0IEJhc2VTZWN0aW9uIGZyb20gJy4uL0Jhc2VTZWN0aW9uJztcbmltcG9ydCB7IE9iamVjdFBvc2l0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2ltYWdlLXBvc2l0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb250ZW50VGl0bGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29udGVudC10aXRsZS1zcGFjaW5nLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTUEFDSU5HIH0gZnJvbSAnLi4vLi4vc3R5bGVzL2luZGV4JztcbmltcG9ydCB7IEJhY2tncm91bmRNb2RlbCwgTGF5T3V0TW9kZWwsIFNwYWNpbmdNb2RlbCB9IGZyb20gJy4uLy4uL3N0eWxlcy9zdHlsZS5tb2RlbCc7XG5pbXBvcnQgeyBUZXh0RWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvdGV4dC1lZGl0b3IvdGV4dC1lZGl0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IEltYWdlRWRpdG9yRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2ltYWdlLWVkaXRvci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgU3BhY2luZ0RpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9zcGFjaW5nLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpbXBvLWltYWdlLWNhcm91c2VsLXNlY3Rpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0SWNvbixcbiAgICBTaW1wb0VsZW1lbnRzTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBTaW1wb0NvbXBvbmVudE1vZHVsZSxcbiAgICBUZXh0RWRpdG9yQ29tcG9uZW50LFxuXG5cbiAgICAvL2RpcmVjdGl2ZVxuICAgIEFuaW1hdGlvbkRpcmVjdGl2ZSxcbiAgICBCYWNrZ3JvdW5kRGlyZWN0aXZlLFxuICAgIEJvcmRlckRpcmVjdGl2ZSxcbiAgICBDb3JuZXJEaXJlY3RpdmUsXG4gICAgSG92ZXJEaXJlY3RpdmUsXG4gICAgSW1hZ2VEaXJlY3RpdmVEaXJlY3RpdmUsXG4gICAgT3ZlcmxheURpcmVjdGl2ZSxcbiAgICBPYmplY3RQb3NpdGlvbkRpcmVjdGl2ZSxcbiAgICBDb250ZW50VGl0bGVEaXJlY3RpdmUsXG4gICAgSW1hZ2VFZGl0b3JEaXJlY3RpdmUsXG4gICAgU3BhY2luZ0RpcmVjdGl2ZSxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLWNhcm91c2VsLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vaW1hZ2UtY2Fyb3VzZWwtc2VjdGlvbi5jb21wb25lbnQuY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VDYXJvdXNlbFNlY3Rpb25Db21wb25lbnQgZXh0ZW5kcyBCYXNlU2VjdGlvbiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGRhdGE/OiBJbWFnZUNhcm91c2VsU2VjdGlvbjtcbiAgQElucHV0KCkgaW5kZXg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGN1c3RvbUNsYXNzPzogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIG5leHRDb21wb25lbnRDb2xvcj86IEJhY2tncm91bmRNb2RlbDtcbiAgY29udGVudD86IEltYWdlQ2Fyb3VzZWxTZWN0aW9uQ29udGVudE1vZGVsO1xuICBzdHlsZT86IEltYWdlQ2Fyb3VzZWxTZWN0aW9uU3R5bGVzTW9kZWw7XG4gIEBJbnB1dCgpIGVkaXQ/OiBib29sZWFuO1xuICBASW5wdXQoKSBkZWxldGU/OiBib29sZWFuO1xuICAvLyBjb250ZW50OiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZXZlbnRTZXJ2aWNlOiBFdmVudHNTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5nZXRTY3JlZW5TaXplKCk7XG4gIH1cblxuXG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jb250ZW50ID0gdGhpcy5kYXRhPy5jb250ZW50O1xuICAgIHRoaXMuc3R5bGUgPSB0aGlzLmRhdGE/LnN0eWxlcztcbiAgICB0aGlzLmRlbGV0ZVNlbGVjdGVkID0gdGhpcy5kZWxldGU7XG4gIH1cblxuICBzY3JlZW5XaWR0aDogbnVtYmVyID0gNDc1O1xuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgZ2V0U2NyZWVuU2l6ZShldmVudD86IG51bWJlcikge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhpcy5zY3JlZW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgIH1cbiAgfVxuICBnZXQgc3R5bGVzTGF5b3V0KCkge1xuICAgIHJldHVybiB7IC4uLnRoaXMuc3R5bGU/LmxheW91dCB9IGFzIExheU91dE1vZGVsO1xuICB9XG5cbiAgZ2V0IHNwYWNpbmdMYXlvdXQoKSB7XG4gICAgLy8gaWYodGhpcy5kYXRhPy5zdHlsZXM/LmJvcmRlckxlc3NJbWFnZSlcbiAgICAvLyAgIHJldHVybiB1bmRlZmluZWRcbiAgICByZXR1cm4geyAuLi50aGlzLnN0eWxlPy5sYXlvdXQ/LnNwYWNpbmcgfSBhcyBTcGFjaW5nTW9kZWxcbiAgfVxuXG4gIGdldFByZXZJbWFnZShpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgcHJldkluZGV4ID0gKGluZGV4IC0gMSArICh0aGlzLmNvbnRlbnQ/Lmxpc3RJdGVtPy5kYXRhLmxlbmd0aCB8fCAwKSkgJSAodGhpcy5jb250ZW50Py5saXN0SXRlbS5kYXRhLmxlbmd0aCB8fCAwKTtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50Py5saXN0SXRlbS5kYXRhW3ByZXZJbmRleF0uaW1hZ2U7XG4gIH1cblxuICBnZXROZXh0SW1hZ2UoaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IG5leHRJbmRleCA9IChpbmRleCArIDEpICUgKHRoaXMuY29udGVudD8ubGlzdEl0ZW0uZGF0YS5sZW5ndGggfHwgMCk7XG4gICAgcmV0dXJuIHRoaXMuY29udGVudD8ubGlzdEl0ZW0uZGF0YVtuZXh0SW5kZXhdLmltYWdlO1xuICB9XG4gIGdldCBoZWFkaW5nU3BhY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3R5bGU/LmxheW91dC5oZWFkaW5nU3BhY2luZyBhcyBTUEFDSU5HO1xuICB9XG5cbiAgZWRpdFNlY3Rpb24oKSB7XG4gICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDw9IDQ3NSlcbiAgICAgIHJldHVyblxuXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLnRvZ2dsZUVkaXRvckV2ZW50LmVtaXQoZmFsc2UpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmVkaXRTZWN0aW9uLmVtaXQoeyBkYXRhOiB0aGlzLmRhdGEgfSk7XG4gICAgfSwgMTAwKTtcbiAgfVxufVxuIiwiPHNlY3Rpb24gY2xhc3M9XCJjb250YWluZXItZmx1aWRcIiBbaWRdPVwiZGF0YT8uaWRcIiBzaW1wb0hvdmVyIChob3ZlcmluZyk9XCJzaG93RWRpdFRhYnMoJGV2ZW50KVwiIGNsYXNzPVwidG90YWwtY29udGFpbmVyXCJcclxuICBbYXR0ci5zdHlsZV09XCJjdXN0b21DbGFzc1wiIFtzaW1wb0JhY2tncm91bmRdPVwic3R5bGU/LmJhY2tncm91bmRcIiBbc2ltcG9Cb3JkZXJdPVwic3R5bGU/LmJvcmRlclwiPlxyXG4gIDxkaXYgW2lkXT1cImRhdGE/LmlkXCIgW3NpbXBvT3ZlcmxheV09XCJzdHlsZT8uYmFja2dyb3VuZFwiPlxyXG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgdGV4dCBvZiBkYXRhPy5jb250ZW50Py5pbnB1dFRleHRcIiBbc2ltcG9Db3JuZXJdPVwic3R5bGU/LmNvcm5lcnNcIlxyXG4gICAgICBbbmdDbGFzc109XCJ7J3B4LTAnOiBzdHlsZT8uZnVsbFdpZHRoLCAnaW1hZ2Utc2NyZWVuJzogc3R5bGU/LmxheW91dD8uZml0ID09PSAnc2NyZWVuJyAmJiBzdHlsZT8uZnVsbFdpZHRoLCAnaW1nLXNjcmVlbi1ub3RleHQnOiBzdHlsZT8ubGF5b3V0Py5maXQgPT09ICdzY3JlZW4nICYmIHN0eWxlPy5mdWxsV2lkdGggJiYgdGV4dC52YWx1ZSA9PT0gJyd9XCJcclxuICAgICAgW2lkXT1cImRhdGE/LmlkXCIgW3NpbXBvU3BhY2luZ109XCJzcGFjaW5nTGF5b3V0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbWxyLTAgdy0xMDBcIiAqbmdJZj1cImRhdGE/LmNvbnRlbnQ/LmlucHV0VGV4dD8ubGVuZ3RoXCIgW2lkXT1cImRhdGE/LmlkXCJcclxuICAgICAgICBbc2ltcG9BbmltYXRpb25dPVwic3R5bGU/LmFuaW1hdGlvblwiPlxyXG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHRleHQgb2YgZGF0YT8uY29udGVudD8uaW5wdXRUZXh0OyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1sYXJnZSBjb250ZW50LXNpZGVcIiBbc2ltcG9Db250ZW50VGl0bGVTcGFjZV09XCJoZWFkaW5nU3BhY2VcIiAqbmdJZj1cImVkaXQgfHwgdGV4dC52YWx1ZVwiPlxyXG4gICAgICAgICAgICA8c2ltcG8tdGV4dC1lZGl0b3IgWyh2YWx1ZSldPVwidGV4dC52YWx1ZVwiIFtlZGl0YWJsZV09XCJlZGl0IHx8IGZhbHNlXCIgW3NlY3Rpb25JZF09XCJkYXRhPy5pZFwiIFtpbnB1dFRleHRJbmRleF09XCJpXCIgW2lzUlRFXT1cInRleHQuaXNSVEVcIj48L3NpbXBvLXRleHQtZWRpdG9yPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgW2lkXT1cIidjYXJvdXNlbEV4YW1wbGVDYXB0aW9ucycrZGF0YT8uaWRcIiBjbGFzcz1cImNhcm91c2VsIHNsaWRlIG1pbi1oZWlnaHQtdW5zZXRcIlxyXG4gICAgICAgICAgW25nQ2xhc3NdPVwieydtYi0wIHB4LTAgcHktMCc6IHN0eWxlPy5mdWxsV2lkdGgsICdtYi1tZC0xIG1iLXNtLTAgbWItbGctMSc6ICFzdHlsZT8uZnVsbFdpZHRofVwiXHJcbiAgICAgICAgICBbYXR0ci5kYXRhLWJzLXJpZGVdPVwiIWVkaXQgPyAnY2Fyb3VzZWwnIDogbnVsbFwiIFthdHRyLmRhdGEtYnMtaW50ZXJ2YWxdPVwiIWVkaXQgPyA0MDAwIDogbnVsbFwiPlxyXG4gICAgICAgICAgPCEtLSBbc2ltcG9MYXlvdXRdPVwic3R5bGU/LmxheW91dFwiIC0tPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhcm91c2VsLWlubmVyXCI+XHJcbiAgICAgICAgICAgIDwhLS0gZGF0YS1icy1yaWRlPVwiY2Fyb3VzZWxcIiAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcm91c2VsLWl0ZW1cIiAqbmdGb3I9XCJsZXQgaW1nIG9mIGNvbnRlbnQ/Lmxpc3RJdGVtPy5kYXRhOyBsZXQgaSA9IGluZGV4XCJcclxuICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImkgPT09IDBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG0tMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbCBkLWZsZXggcC0wXCIgKm5nSWY9XCJzY3JlZW5XaWR0aCA+PSA0NzVcIj5cclxuICAgICAgICAgICAgICAgICAgPGltZyBsb2FkaW5nPVwibGF6eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydpbWFnZS1oZWlnaHQtY29udGVudCc6IHN0eWxlPy5sYXlvdXQ/LmZpdCA9PT0gJ2NvbnRlbnQnLCAnaW1hZ2UtaGVpZ2h0LXNjcmVlbic6IHN0eWxlPy5sYXlvdXQ/LmZpdCA9PT0gJ3NjcmVlbid9XCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFzdHlsZT8uZnVsbFdpZHRoXCIgW3NpbXBvSW1hZ2VEaXJlY3RpdmVdPVwic3R5bGU/LmltYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtYmxvY2sgcG9zaXRpb24tcmVsYXRpdmUgYmx1clwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJvYmplY3QtZml0OiBjb3ZlciAhaW1wb3J0YW50O3dpZHRoOiAxMDAlO21heC13aWR0aDogMjAlOyBsZWZ0OiAtMjBweCA7cG9zaXRpb246IGZpeGVkO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW3NyY109XCJnZXRQcmV2SW1hZ2UoaSk/LnVybFwiIFthbHRdPVwiZ2V0UHJldkltYWdlKGkpPy5hbHRUZXh0XCIgW3NpbXBvQ29ybmVyXT1cInN0eWxlPy5jb3JuZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9PYmplY3RQb3NpdGlvbl09XCJnZXRQcmV2SW1hZ2UoaSk/LnBvc2l0aW9uXCIgbG9hZGluZz1cImxhenlcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthcHBJbWFnZUVkaXRvcl09XCJlZGl0IHx8IGZhbHNlXCIgW2ltYWdlRGF0YV09XCJpbWc/LmltYWdlXCIgW3NlY3Rpb25JZF09XCJkYXRhPy5pZFwiIFtpdGVtSW5kZXhdPVwiaVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2Z1bGwtd2lkdGgtaW1hZ2UnOiBzdHlsZT8uZnVsbFdpZHRoLCAnbm90LWZ1bGwtd2lkdGgnOiAhc3R5bGU/LmZ1bGxXaWR0aCwgJ2ltYWdlLWhlaWdodC1jb250ZW50Jzogc3R5bGU/LmxheW91dD8uZml0ID09PSAnY29udGVudCcsICdpbWFnZS1oZWlnaHQtc2NyZWVuJzogc3R5bGU/LmxheW91dD8uZml0ID09PSAnc2NyZWVuJ31cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzaW1wb0ltYWdlRGlyZWN0aXZlXT1cInN0eWxlPy5pbWFnZVwiIGNsYXNzPVwiZC1ibG9jayBpbWFnZS1oZWlnaHQtODB2aFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImRhdGE/LmlkK2ltZy5pbWFnZS5pZFwiIFtzcmNdPVwiaW1nLmltYWdlLnVybFwiIFthbHRdPVwiaW1nLmltYWdlLmFsdFRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzaW1wb0Nvcm5lcl09XCJzdHlsZT8uY29ybmVyc1wiIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb09iamVjdFBvc2l0aW9uXT1cImltZz8uaW1hZ2U/LnBvc2l0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPVwibGF6eVwiIFthcHBJbWFnZUVkaXRvcl09XCJlZGl0IHx8IGZhbHNlXCIgW2ltYWdlRGF0YV09XCJpbWc/LmltYWdlXCIgW3NlY3Rpb25JZF09XCJkYXRhPy5pZFwiIFtpdGVtSW5kZXhdPVwiaVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2ltYWdlLWhlaWdodC1jb250ZW50Jzogc3R5bGU/LmxheW91dD8uZml0ID09PSAnY29udGVudCcsICdpbWFnZS1oZWlnaHQtc2NyZWVuJzogc3R5bGU/LmxheW91dD8uZml0ID09PSAnc2NyZWVuJ31cIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIXN0eWxlPy5mdWxsV2lkdGhcIiBbc2ltcG9JbWFnZURpcmVjdGl2ZV09XCJzdHlsZT8uaW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1ibG9jayBwb3NpdGlvbi1yZWxhdGl2ZSBibHVyXCJcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIm9iamVjdC1maXQ6IGNvdmVyICFpbXBvcnRhbnQ7d2lkdGg6IDEwMCU7IG1heC13aWR0aDogMjAlO3JpZ2h0OiAtMjBweDtcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZ2V0TmV4dEltYWdlKGkpPy51cmxcIiBbYWx0XT1cImdldE5leHRJbWFnZShpKT8uYWx0VGV4dFwiIFtzaW1wb0Nvcm5lcl09XCJzdHlsZT8uY29ybmVyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cImRhdGE/LmlkXCIgW3NpbXBvT2JqZWN0UG9zaXRpb25dPVwiZ2V0TmV4dEltYWdlKGkpPy5wb3NpdGlvblwiIGxvYWRpbmc9XCJsYXp5XCJcclxuICAgICAgICAgICAgICAgICAgICBbYXBwSW1hZ2VFZGl0b3JdPVwiZWRpdCB8fCBmYWxzZVwiIFtpbWFnZURhdGFdPVwiaW1nPy5pbWFnZVwiIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIiBbaXRlbUluZGV4XT1cImlcIj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbCBkLWZsZXggcC0wXCIgKm5nSWY9XCJzY3JlZW5XaWR0aCA8IDQ3NVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgY2xhc3M9XCJkLWJsb2NrIHctMTAwIGltYWdlLWhlaWdodC00MHZoXCIgW2NsYXNzXT1cImRhdGE/LmlkK2ltZy5pbWFnZS5pZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3NyY109XCJpbWcuaW1hZ2UudXJsXCIgW2FsdF09XCJpbWcuaW1hZ2UuYWx0VGV4dFwiIFtpZF09XCJkYXRhPy5pZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3NpbXBvT2JqZWN0UG9zaXRpb25dPVwiaW1nPy5pbWFnZT8ucG9zaXRpb25cIiBsb2FkaW5nPVwibGF6eVwiIFthcHBJbWFnZUVkaXRvcl09XCJlZGl0IHx8IGZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICBbaW1hZ2VEYXRhXT1cImltZz8uaW1hZ2VcIiBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCIgW2l0ZW1JbmRleF09XCJpXCIgW3NpbXBvQ29ybmVyXT1cInN0eWxlPy5jb3JuZXJzXCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxhIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1wcmV2XCIgW2F0dHIuZGF0YS1icy10YXJnZXRdPVwiJyNjYXJvdXNlbEV4YW1wbGVDYXB0aW9ucycrZGF0YT8uaWRcIiByb2xlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgZGF0YS1icy1zbGlkZT1cInByZXZcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXJvdXNlbC1jb250cm9sLXByZXYtaWNvbiBwcmV2aW91cy1pY29uIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvbiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5rZXlib2FyZF9hcnJvd19sZWZ0PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5QcmV2aW91czwvc3Bhbj5cclxuXHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8YSBjbGFzcz1cImNhcm91c2VsLWNvbnRyb2wtbmV4dFwiIFthdHRyLmRhdGEtYnMtdGFyZ2V0XT1cIicjY2Fyb3VzZWxFeGFtcGxlQ2FwdGlvbnMnK2RhdGE/LmlkXCIgcm9sZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIGRhdGEtYnMtc2xpZGU9XCJuZXh0XCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1uZXh0LWljb24gcHJldmlvdXMtaWNvbiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+a2V5Ym9hcmRfYXJyb3dfcmlnaHQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPk5leHQ8L3NwYW4+XHJcblxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdHlsZT8uZGV2aWRlcj8uZGlzcGxheVwiPlxyXG4gICAgPHNpbXBvLXN2Zy1kaXZpZGVyIFtkaXZpZGVyVHlwZV09XCJzdHlsZT8uZGV2aWRlcj8uZGV2aWRlclR5cGVcIlxyXG4gICAgICBbY29sb3JdPVwibmV4dENvbXBvbmVudENvbG9yPy5jb2xvclwiPjwvc2ltcG8tc3ZnLWRpdmlkZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPGRpdiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGVkaXR9XCIgKm5nSWY9XCJzaG93RWRpdG9yc1wiPlxyXG4gICAgPHNpbXBvLWhvdmVyLWVsZW1lbnRzIFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIiBbZWRpdE9wdGlvbnNdPVwiZWRpdFwiPjwvc2ltcG8taG92ZXItZWxlbWVudHM+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqbmdJZj1cInNob3dEZWxldGVcIiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGRlbGV0ZX1cIj5cclxuICAgIDxzaW1wby1kZWxldGUtaG92ZXItZWxlbWVudCBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCI+PC9zaW1wby1kZWxldGUtaG92ZXItZWxlbWVudD5cclxuICA8L2Rpdj5cclxuPC9zZWN0aW9uPiJdfQ==
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtY2Fyb3VzZWwtc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL2ltYWdlLWNhcm91c2VsLXNlY3Rpb24vaW1hZ2UtY2Fyb3VzZWwtc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL2ltYWdlLWNhcm91c2VsLXNlY3Rpb24vaW1hZ2UtY2Fyb3VzZWwtc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFNdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sV0FBVyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSx1QkFBdUIsRUFB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QztJQUNWLENBQUM7K0dBakVVLDZCQUE2QjttR0FBN0IsNkJBQTZCLGtVQ3ZEMUMscTlNQXdGVSwwcUREeEROLE9BQU8sMElBQ1AsbUJBQW1CLG9KQUNuQixZQUFZLDZWQUNaLG9CQUFvQixvV0FDcEIsbUJBQW1CO2dCQUduQixXQUFXO2dCQUNYLGtCQUFrQix5RkFDbEIsbUJBQW1CLDBHQUNuQixlQUFlLG1GQUNmLGVBQWUsbUZBQ2YsY0FBYyxnRkFDZCx1QkFBdUIsbUdBQ3ZCLGdCQUFnQixxRkFDaEIsdUJBQXVCLG1HQUN2QixxQkFBcUIseUdBQ3JCLG9CQUFvQix3SkFDcEIsZ0JBQWdCOzs0RkFLUCw2QkFBNkI7a0JBM0J6QyxTQUFTOytCQUNFLDhCQUE4QixjQUM1QixJQUFJLFdBQ1A7d0JBQ1AsT0FBTzt3QkFDUCxtQkFBbUI7d0JBQ25CLFlBQVk7d0JBQ1osb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBR25CLFdBQVc7d0JBQ1gsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixjQUFjO3dCQUNkLHVCQUF1Qjt3QkFDdkIsZ0JBQWdCO3dCQUNoQix1QkFBdUI7d0JBQ3ZCLHFCQUFxQjt3QkFDckIsb0JBQW9CO3dCQUNwQixnQkFBZ0I7cUJBQ2pCO2tGQUtRLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBR0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFvQk4sYUFBYTtzQkFEWixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBJbWFnZUNhcm91c2VsU2VjdGlvbixcbiAgSW1hZ2VDYXJvdXNlbFNlY3Rpb25Db250ZW50TW9kZWwsXG4gIEltYWdlQ2Fyb3VzZWxTZWN0aW9uU3R5bGVzTW9kZWwsXG59IGZyb20gJy4vaW1hZ2UtY2Fyb3VzZWwubW9kZWwnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFNpbXBvRWxlbWVudHNNb2R1bGUgfSBmcm9tICcuLy4uLy4uL2VsZW1lbnRzL2luZGV4JztcblxuaW1wb3J0IHsgQW5pbWF0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2FuaW1hdGlvbi1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQmFja2dyb3VuZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9iYWNrZ3JvdW5kLWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCb3JkZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYm9yZGVyLWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb3JuZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29ybmVyLWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBIb3ZlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9ob3Zlci1lbGVtZW50LWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJbWFnZURpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9pbWFnZS1kaXJlY3RpdmUuZGlyZWN0aXZlJztcbmltcG9ydCB7IE92ZXJsYXlEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvb3ZlcmxheS1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4vLi4vLi4vc2VydmljZXMvZXZlbnRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2ltcG9Db21wb25lbnRNb2R1bGUgfSBmcm9tICcuLy4uLy4uL2NvbXBvbmVudHMvaW5kZXgnO1xuaW1wb3J0IEJhc2VTZWN0aW9uIGZyb20gJy4uL0Jhc2VTZWN0aW9uJztcbmltcG9ydCB7IE9iamVjdFBvc2l0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2ltYWdlLXBvc2l0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb250ZW50VGl0bGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29udGVudC10aXRsZS1zcGFjaW5nLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTUEFDSU5HIH0gZnJvbSAnLi4vLi4vc3R5bGVzL2luZGV4JztcbmltcG9ydCB7IEJhY2tncm91bmRNb2RlbCwgTGF5T3V0TW9kZWwsIFNwYWNpbmdNb2RlbCB9IGZyb20gJy4uLy4uL3N0eWxlcy9zdHlsZS5tb2RlbCc7XG5pbXBvcnQgeyBUZXh0RWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvdGV4dC1lZGl0b3IvdGV4dC1lZGl0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IEltYWdlRWRpdG9yRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2ltYWdlLWVkaXRvci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgU3BhY2luZ0RpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9zcGFjaW5nLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpbXBvLWltYWdlLWNhcm91c2VsLXNlY3Rpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0SWNvbixcbiAgICBTaW1wb0VsZW1lbnRzTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBTaW1wb0NvbXBvbmVudE1vZHVsZSxcbiAgICBUZXh0RWRpdG9yQ29tcG9uZW50LFxuXG5cbiAgICAvL2RpcmVjdGl2ZVxuICAgIEFuaW1hdGlvbkRpcmVjdGl2ZSxcbiAgICBCYWNrZ3JvdW5kRGlyZWN0aXZlLFxuICAgIEJvcmRlckRpcmVjdGl2ZSxcbiAgICBDb3JuZXJEaXJlY3RpdmUsXG4gICAgSG92ZXJEaXJlY3RpdmUsXG4gICAgSW1hZ2VEaXJlY3RpdmVEaXJlY3RpdmUsXG4gICAgT3ZlcmxheURpcmVjdGl2ZSxcbiAgICBPYmplY3RQb3NpdGlvbkRpcmVjdGl2ZSxcbiAgICBDb250ZW50VGl0bGVEaXJlY3RpdmUsXG4gICAgSW1hZ2VFZGl0b3JEaXJlY3RpdmUsXG4gICAgU3BhY2luZ0RpcmVjdGl2ZSxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLWNhcm91c2VsLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vaW1hZ2UtY2Fyb3VzZWwtc2VjdGlvbi5jb21wb25lbnQuY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VDYXJvdXNlbFNlY3Rpb25Db21wb25lbnQgZXh0ZW5kcyBCYXNlU2VjdGlvbiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGRhdGE/OiBJbWFnZUNhcm91c2VsU2VjdGlvbjtcbiAgQElucHV0KCkgaW5kZXg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGN1c3RvbUNsYXNzPzogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIG5leHRDb21wb25lbnRDb2xvcj86IEJhY2tncm91bmRNb2RlbDtcbiAgY29udGVudD86IEltYWdlQ2Fyb3VzZWxTZWN0aW9uQ29udGVudE1vZGVsO1xuICBzdHlsZT86IEltYWdlQ2Fyb3VzZWxTZWN0aW9uU3R5bGVzTW9kZWw7XG4gIEBJbnB1dCgpIGVkaXQ/OiBib29sZWFuO1xuICBASW5wdXQoKSBkZWxldGU/OiBib29sZWFuO1xuICAvLyBjb250ZW50OiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZXZlbnRTZXJ2aWNlOiBFdmVudHNTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5nZXRTY3JlZW5TaXplKCk7XG4gIH1cblxuXG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jb250ZW50ID0gdGhpcy5kYXRhPy5jb250ZW50O1xuICAgIHRoaXMuc3R5bGUgPSB0aGlzLmRhdGE/LnN0eWxlcztcbiAgICB0aGlzLmRlbGV0ZVNlbGVjdGVkID0gdGhpcy5kZWxldGU7XG4gIH1cblxuICBzY3JlZW5XaWR0aDogbnVtYmVyID0gNDc1O1xuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgZ2V0U2NyZWVuU2l6ZShldmVudD86IG51bWJlcikge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhpcy5zY3JlZW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgIH1cbiAgfVxuICBnZXQgc3R5bGVzTGF5b3V0KCkge1xuICAgIHJldHVybiB7IC4uLnRoaXMuc3R5bGU/LmxheW91dCB9IGFzIExheU91dE1vZGVsO1xuICB9XG5cbiAgZ2V0IHNwYWNpbmdMYXlvdXQoKSB7XG4gICAgLy8gaWYodGhpcy5kYXRhPy5zdHlsZXM/LmJvcmRlckxlc3NJbWFnZSlcbiAgICAvLyAgIHJldHVybiB1bmRlZmluZWRcbiAgICByZXR1cm4geyAuLi50aGlzLnN0eWxlPy5sYXlvdXQ/LnNwYWNpbmcgfSBhcyBTcGFjaW5nTW9kZWxcbiAgfVxuXG4gIGdldFByZXZJbWFnZShpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgcHJldkluZGV4ID0gKGluZGV4IC0gMSArICh0aGlzLmNvbnRlbnQ/Lmxpc3RJdGVtPy5kYXRhLmxlbmd0aCB8fCAwKSkgJSAodGhpcy5jb250ZW50Py5saXN0SXRlbS5kYXRhLmxlbmd0aCB8fCAwKTtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50Py5saXN0SXRlbS5kYXRhW3ByZXZJbmRleF0uaW1hZ2U7XG4gIH1cblxuICBnZXROZXh0SW1hZ2UoaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IG5leHRJbmRleCA9IChpbmRleCArIDEpICUgKHRoaXMuY29udGVudD8ubGlzdEl0ZW0uZGF0YS5sZW5ndGggfHwgMCk7XG4gICAgcmV0dXJuIHRoaXMuY29udGVudD8ubGlzdEl0ZW0uZGF0YVtuZXh0SW5kZXhdLmltYWdlO1xuICB9XG4gIGdldCBoZWFkaW5nU3BhY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3R5bGU/LmxheW91dC5oZWFkaW5nU3BhY2luZyBhcyBTUEFDSU5HO1xuICB9XG5cbiAgZWRpdFNlY3Rpb24oKSB7XG4gICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDw9IDQ3NSlcbiAgICAgIHJldHVyblxuXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLnRvZ2dsZUVkaXRvckV2ZW50LmVtaXQoZmFsc2UpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmVkaXRTZWN0aW9uLmVtaXQoeyBkYXRhOiB0aGlzLmRhdGEgfSk7XG4gICAgfSwgMTAwKTtcbiAgfVxufVxuIiwiPHNlY3Rpb24gY2xhc3M9XCJjb250YWluZXItZmx1aWRcIiBbaWRdPVwiZGF0YT8uaWRcIiBzaW1wb0hvdmVyIChob3ZlcmluZyk9XCJzaG93RWRpdFRhYnMoJGV2ZW50KVwiIGNsYXNzPVwidG90YWwtY29udGFpbmVyXCJcbiAgW2F0dHIuc3R5bGVdPVwiY3VzdG9tQ2xhc3NcIiBbc2ltcG9CYWNrZ3JvdW5kXT1cInN0eWxlPy5iYWNrZ3JvdW5kXCIgW3NpbXBvQm9yZGVyXT1cInN0eWxlPy5ib3JkZXJcIj5cbiAgPGRpdiBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9PdmVybGF5XT1cInN0eWxlPy5iYWNrZ3JvdW5kXCI+XG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgdGV4dCBvZiBkYXRhPy5jb250ZW50Py5pbnB1dFRleHRcIiBbc2ltcG9Db3JuZXJdPVwic3R5bGU/LmNvcm5lcnNcIlxuICAgICAgW25nQ2xhc3NdPVwieydweC0wJzogc3R5bGU/LmZ1bGxXaWR0aCwgJ2ltYWdlLXNjcmVlbic6IHN0eWxlPy5sYXlvdXQ/LmZpdCA9PT0gJ3NjcmVlbicgJiYgc3R5bGU/LmZ1bGxXaWR0aCwgJ2ltZy1zY3JlZW4tbm90ZXh0Jzogc3R5bGU/LmxheW91dD8uZml0ID09PSAnc2NyZWVuJyAmJiBzdHlsZT8uZnVsbFdpZHRoICYmIHRleHQudmFsdWUgPT09ICcnfVwiXG4gICAgICBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9TcGFjaW5nXT1cInNwYWNpbmdMYXlvdXRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbWxyLTAgdy0xMDBcIiAqbmdJZj1cImRhdGE/LmNvbnRlbnQ/LmlucHV0VGV4dD8ubGVuZ3RoXCIgW2lkXT1cImRhdGE/LmlkXCJcbiAgICAgICAgW3NpbXBvQW5pbWF0aW9uXT1cInN0eWxlPy5hbmltYXRpb25cIj5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgdGV4dCBvZiBkYXRhPy5jb250ZW50Py5pbnB1dFRleHQ7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1sYXJnZSBjb250ZW50LXNpZGVcIiBbc2ltcG9Db250ZW50VGl0bGVTcGFjZV09XCJoZWFkaW5nU3BhY2VcIiAqbmdJZj1cImVkaXQgfHwgdGV4dC52YWx1ZVwiPlxuICAgICAgICAgICAgPHNpbXBvLXRleHQtZWRpdG9yIFsodmFsdWUpXT1cInRleHQudmFsdWVcIiBbZWRpdGFibGVdPVwiZWRpdCB8fCBmYWxzZVwiIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIiBbaW5wdXRUZXh0SW5kZXhdPVwiaVwiIFtpc1JURV09XCJ0ZXh0LmlzUlRFXCI+PC9zaW1wby10ZXh0LWVkaXRvcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBbaWRdPVwiJ2Nhcm91c2VsRXhhbXBsZUNhcHRpb25zJytkYXRhPy5pZFwiIGNsYXNzPVwiY2Fyb3VzZWwgc2xpZGUgbWluLWhlaWdodC11bnNldFwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieydtYi0wIHB4LTAgcHktMCc6IHN0eWxlPy5mdWxsV2lkdGgsICdtYi1tZC0xIG1iLXNtLTAgbWItbGctMSc6ICFzdHlsZT8uZnVsbFdpZHRofVwiXG4gICAgICAgICAgW2F0dHIuZGF0YS1icy1yaWRlXT1cIiFlZGl0ID8gJ2Nhcm91c2VsJyA6IG51bGxcIiBbYXR0ci5kYXRhLWJzLWludGVydmFsXT1cIiFlZGl0ID8gNDAwMCA6IG51bGxcIj5cbiAgICAgICAgICA8IS0tIFtzaW1wb0xheW91dF09XCJzdHlsZT8ubGF5b3V0XCIgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhcm91c2VsLWlubmVyXCI+XG4gICAgICAgICAgICA8IS0tIGRhdGEtYnMtcmlkZT1cImNhcm91c2VsXCIgLS0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtaXRlbVwiICpuZ0Zvcj1cImxldCBpbWcgb2YgY29udGVudD8ubGlzdEl0ZW0/LmRhdGE7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImkgPT09IDBcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtLTBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIGQtZmxleCBwLTBcIiAqbmdJZj1cInNjcmVlbldpZHRoID49IDQ3NVwiPlxuICAgICAgICAgICAgICAgICAgPGltZyBsb2FkaW5nPVwibGF6eVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnaW1hZ2UtaGVpZ2h0LWNvbnRlbnQnOiBzdHlsZT8ubGF5b3V0Py5maXQgPT09ICdjb250ZW50JywgJ2ltYWdlLWhlaWdodC1zY3JlZW4nOiBzdHlsZT8ubGF5b3V0Py5maXQgPT09ICdzY3JlZW4nfVwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIXN0eWxlPy5mdWxsV2lkdGhcIiBbc2ltcG9JbWFnZURpcmVjdGl2ZV09XCJzdHlsZT8uaW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtYmxvY2sgcG9zaXRpb24tcmVsYXRpdmUgYmx1clwiXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwib2JqZWN0LWZpdDogY292ZXIgIWltcG9ydGFudDt3aWR0aDogMTAwJTttYXgtd2lkdGg6IDIwJTsgbGVmdDogLTIwcHggO3Bvc2l0aW9uOiBmaXhlZDtcIlxuICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImdldFByZXZJbWFnZShpKT8udXJsXCIgW2FsdF09XCJnZXRQcmV2SW1hZ2UoaSk/LmFsdFRleHRcIiBbc2ltcG9Db3JuZXJdPVwic3R5bGU/LmNvcm5lcnNcIlxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9PYmplY3RQb3NpdGlvbl09XCJnZXRQcmV2SW1hZ2UoaSk/LnBvc2l0aW9uXCIgbG9hZGluZz1cImxhenlcIlxuICAgICAgICAgICAgICAgICAgICBbYXBwSW1hZ2VFZGl0b3JdPVwiZWRpdCB8fCBmYWxzZVwiIFtpbWFnZURhdGFdPVwiaW1nPy5pbWFnZVwiIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIiBbaXRlbUluZGV4XT1cImlcIj5cbiAgICAgICAgICAgICAgICAgIDxpbWcgbG9hZGluZz1cImxhenlcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2Z1bGwtd2lkdGgtaW1hZ2UnOiBzdHlsZT8uZnVsbFdpZHRoLCAnbm90LWZ1bGwtd2lkdGgnOiAhc3R5bGU/LmZ1bGxXaWR0aCwgJ2ltYWdlLWhlaWdodC1jb250ZW50Jzogc3R5bGU/LmxheW91dD8uZml0ID09PSAnY29udGVudCcsICdpbWFnZS1oZWlnaHQtc2NyZWVuJzogc3R5bGU/LmxheW91dD8uZml0ID09PSAnc2NyZWVuJ31cIlxuICAgICAgICAgICAgICAgICAgICBbc2ltcG9JbWFnZURpcmVjdGl2ZV09XCJzdHlsZT8uaW1hZ2VcIiBjbGFzcz1cImQtYmxvY2sgaW1hZ2UtaGVpZ2h0LTgwdmhcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiZGF0YT8uaWQraW1nLmltYWdlLmlkXCIgW3NyY109XCJpbWcuaW1hZ2UudXJsXCIgW2FsdF09XCJpbWcuaW1hZ2UuYWx0VGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIFtzaW1wb0Nvcm5lcl09XCJzdHlsZT8uY29ybmVyc1wiIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb09iamVjdFBvc2l0aW9uXT1cImltZz8uaW1hZ2U/LnBvc2l0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgbG9hZGluZz1cImxhenlcIiBbYXBwSW1hZ2VFZGl0b3JdPVwiZWRpdCB8fCBmYWxzZVwiIFtpbWFnZURhdGFdPVwiaW1nPy5pbWFnZVwiIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIiBbaXRlbUluZGV4XT1cImlcIj5cbiAgICAgICAgICAgICAgICAgIDxpbWcgbG9hZGluZz1cImxhenlcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2ltYWdlLWhlaWdodC1jb250ZW50Jzogc3R5bGU/LmxheW91dD8uZml0ID09PSAnY29udGVudCcsICdpbWFnZS1oZWlnaHQtc2NyZWVuJzogc3R5bGU/LmxheW91dD8uZml0ID09PSAnc2NyZWVuJ31cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFzdHlsZT8uZnVsbFdpZHRoXCIgW3NpbXBvSW1hZ2VEaXJlY3RpdmVdPVwic3R5bGU/LmltYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWJsb2NrIHBvc2l0aW9uLXJlbGF0aXZlIGJsdXJcIlxuICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIm9iamVjdC1maXQ6IGNvdmVyICFpbXBvcnRhbnQ7d2lkdGg6IDEwMCU7IG1heC13aWR0aDogMjAlO3JpZ2h0OiAtMjBweDtcIlxuICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImdldE5leHRJbWFnZShpKT8udXJsXCIgW2FsdF09XCJnZXROZXh0SW1hZ2UoaSk/LmFsdFRleHRcIiBbc2ltcG9Db3JuZXJdPVwic3R5bGU/LmNvcm5lcnNcIlxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9PYmplY3RQb3NpdGlvbl09XCJnZXROZXh0SW1hZ2UoaSk/LnBvc2l0aW9uXCIgbG9hZGluZz1cImxhenlcIlxuICAgICAgICAgICAgICAgICAgICBbYXBwSW1hZ2VFZGl0b3JdPVwiZWRpdCB8fCBmYWxzZVwiIFtpbWFnZURhdGFdPVwiaW1nPy5pbWFnZVwiIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIiBbaXRlbUluZGV4XT1cImlcIj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIGQtZmxleCBwLTBcIiAqbmdJZj1cInNjcmVlbldpZHRoIDwgNDc1XCI+XG4gICAgICAgICAgICAgICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgY2xhc3M9XCJkLWJsb2NrIHctMTAwIGltYWdlLWhlaWdodC00MHZoXCIgW2NsYXNzXT1cImRhdGE/LmlkK2ltZy5pbWFnZS5pZFwiXG4gICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiaW1nLmltYWdlLnVybFwiIFthbHRdPVwiaW1nLmltYWdlLmFsdFRleHRcIiBbaWRdPVwiZGF0YT8uaWRcIlxuICAgICAgICAgICAgICAgICAgICBbc2ltcG9PYmplY3RQb3NpdGlvbl09XCJpbWc/LmltYWdlPy5wb3NpdGlvblwiIGxvYWRpbmc9XCJsYXp5XCIgW2FwcEltYWdlRWRpdG9yXT1cImVkaXQgfHwgZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICBbaW1hZ2VEYXRhXT1cImltZz8uaW1hZ2VcIiBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCIgW2l0ZW1JbmRleF09XCJpXCIgW3NpbXBvQ29ybmVyXT1cInN0eWxlPy5jb3JuZXJzXCI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGEgY2xhc3M9XCJjYXJvdXNlbC1jb250cm9sLXByZXZcIiBbYXR0ci5kYXRhLWJzLXRhcmdldF09XCInI2Nhcm91c2VsRXhhbXBsZUNhcHRpb25zJytkYXRhPy5pZFwiIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgZGF0YS1icy1zbGlkZT1cInByZXZcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1wcmV2LWljb24gcHJldmlvdXMtaWNvbiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxuICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvbiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5rZXlib2FyZF9hcnJvd19sZWZ0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPlByZXZpb3VzPC9zcGFuPlxuXG4gICAgICAgICAgPC9hPlxuICAgICAgICAgIDxhIGNsYXNzPVwiY2Fyb3VzZWwtY29udHJvbC1uZXh0XCIgW2F0dHIuZGF0YS1icy10YXJnZXRdPVwiJyNjYXJvdXNlbEV4YW1wbGVDYXB0aW9ucycrZGF0YT8uaWRcIiByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGRhdGEtYnMtc2xpZGU9XCJuZXh0XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcm91c2VsLWNvbnRyb2wtbmV4dC1pY29uIHByZXZpb3VzLWljb24gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcbiAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+a2V5Ym9hcmRfYXJyb3dfcmlnaHQ8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+TmV4dDwvc3Bhbj5cblxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdHlsZT8uZGV2aWRlcj8uZGlzcGxheVwiPlxuICAgIDxzaW1wby1zdmctZGl2aWRlciBbZGl2aWRlclR5cGVdPVwic3R5bGU/LmRldmlkZXI/LmRldmlkZXJUeXBlXCJcbiAgICAgIFtjb2xvcl09XCJuZXh0Q29tcG9uZW50Q29sb3I/LmNvbG9yXCI+PC9zaW1wby1zdmctZGl2aWRlcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxkaXYgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBlZGl0fVwiICpuZ0lmPVwic2hvd0VkaXRvcnNcIj5cbiAgICA8c2ltcG8taG92ZXItZWxlbWVudHMgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiIFtlZGl0T3B0aW9uc109XCJlZGl0XCI+PC9zaW1wby1ob3Zlci1lbGVtZW50cz5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJzaG93RGVsZXRlXCIgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBkZWxldGV9XCI+XG4gICAgPHNpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50IFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIj48L3NpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50PlxuICA8L2Rpdj5cbjwvc2VjdGlvbj4iXX0=
|
|
@@ -139,7 +139,7 @@ export class ImageGridHotspotComponent extends BaseSection {
|
|
|
139
139
|
this.openedHotspotId = null;
|
|
140
140
|
}
|
|
141
141
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImageGridHotspotComponent, deps: [{ token: i1.EventsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
142
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ImageGridHotspotComponent, isStandalone: true, selector: "simpo-image-grid-hotspot", inputs: { data: "data", index: "index", edit: "edit", customClass: "customClass", delete: "delete", nextComponentColor: "nextComponentColor" }, host: { listeners: { "document:click": "closeHotspot()" } }, viewQueries: [{ propertyName: "imagegrid", first: true, predicate: ["imagegrid"], descendants: true }, { propertyName: "_mainContainer", first: true, predicate: ["mainContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<section [id]=\"data?.id\" [simpoBackground]=\"style?.background\" simpoHover (hovering)=\"showEditTabs($event)\"\r\n class=\"total-container\" [attr.style]=\"customClass\">\r\n <div #mainContainer [id]=\"data?.id\" [simpoOverlay]=\"style?.background\" [spacingHorizontal]=\"stylesLayout\">\r\n <div class=\"container-fluid\" [id]=\"data?.id\" [simpoBorder]=\"style?.border\" [simpoLayout]=\"style?.layout\">\r\n <div class=\"row\" [id]=\"data?.id\" [simpoAnimation]=\"style?.animation\"\r\n [ngStyle]=\"style?.fullWidth ? {'padding': '0px'} : {}\">\r\n <div *ngFor=\"let text of data?.content?.inputText; let i = index\">\r\n <div class=\"heading-large content-side\" [simpoContentTitleSpace]=\"headingSpace\">\r\n <ng-container *ngIf=\"edit || (text.value && text.value.length > 0)\">\r\n <simpo-text-editor [(value)]=\"text.value\" [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"i\" [isRTE]=\"text.isRTE\"></simpo-text-editor>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"style?.gridStyle == 'Style1'\">\r\n <button class=\"scroll-btn left p-0 d-flex align-items-center justify-content-center\"\r\n *ngIf=\"style?.direction === 'ROW' && isOverflowing\" (click)=\"scrollLeft()\"\r\n [disabled]=\"atStart\"><mat-icon>keyboard_arrow_left</mat-icon>\r\n </button>\r\n <div class=\"main-image-section d-flex position-relative\" [class.row]=\"style?.direction == 'ROW' \"\r\n [class.wrap-scroll]=\"style?.direction == 'ROW'\" [class.flex-wrap]=\"style?.direction == 'COLUMN'\"\r\n [id]=\"data?.id\" #imagegrid [style.justifyContent]=\"getJustifyContent()\" (scroll)=\"onScroll()\">\r\n <div class=\"image-section p-3\" *ngFor=\"let img of content?.listItem?.data\"\r\n [simpoColumnDirective]=\"style?.size\" [id]=\"data?.id\"\r\n [attr.style]=\"style?.removeGaps ? 'padding: 0px !important; margin: 0px !important;' : {}\">\r\n <div class=\"image-hotspot-wrapper\">\r\n <img loading=\"lazy\" [simpoImageDirective]=\"style?.image\" [simpoCorner]=\"style?.corners\"\r\n [id]=\"data?.id\" [class]=\"data?.id+img.image.id\"\r\n [simpoObjectPosition]=\"img.image.position\" [src]=\"img.image.url\"\r\n [alt]=\"img.image.altText\" loading=\"lazy\" class=\"w-100\" />\r\n\r\n <ng-container *ngIf=\"img.hotspots\">\r\n <div *ngFor=\"let spot of img.hotspots\" class=\"hotspot-dot shimmer-dot\"\r\n [style.left.%]=\"spot.x\" [style.top.%]=\"spot.y\"\r\n [style.background]=\"style?.background?.accentColor || 'white'\" cdkDrag\r\n cdkDragBoundary=\".image-hotspot-wrapper\" [cdkDragDisabled]=\"!edit\"\r\n (cdkDragMoved)=\"dragHotspot($event, spot)\" (cdkDragStarted)=\"dragging = true\"\r\n (cdkDragEnded)=\"dragging = false\" (mouseenter)=\"toggleHotspot($event, spot)\"\r\n (mouseleave)=\"toggleHotspot($event, spot)\">\r\n\r\n\r\n <div class=\"hotspot-popup position-relative\" [style.left.%]=\"spot.x + 30\"\r\n [style.top.%]=\"spot.y\" *ngIf=\"openedHotspotId === spot.id && !dragging\">\r\n <div class=\"popup-card d-flex align-items-center gap-2\">\r\n <div class=\"img\">\r\n <img *ngIf=\"spot.img\" [src]=\"spot.img\" alt=\"Hotspot Image\"\r\n class=\"hotspot-image\" />\r\n </div>\r\n <div class=\"d-flex flex-column align-items-start\">\r\n <div class=\"title text-start\">{{ spot.title || 'Title' }}</div>\r\n <a *ngIf=\"spot.link\" [href]=\"spot.link\" target=\"_blank\"\r\n (click)=\"$event.stopPropagation()\">\r\n {{ spot.linkText || 'open link' }}\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <button class=\"scroll-btn right p-0 d-flex align-items-center justify-content-center\"\r\n *ngIf=\"style?.direction === 'ROW' && isOverflowing\" (click)=\"scrollRight()\"\r\n [disabled]=\"atEnd\"><mat-icon>keyboard_arrow_right</mat-icon>\r\n </button>\r\n\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"style?.gridStyle == 'Style2'\">\r\n <div class=\"grid h-100\" [class.remove-gap]=\"style?.removeGaps\" [class.p-0]=\"style?.fullWidth\">\r\n <ng-container *ngFor=\"let img of content?.listItem?.data; let i = index\">\r\n <div class=\"image-hotspot-wrapper h-100\">\r\n <img loading=\"lazy\" [simpoImageDirective]=\"style?.image\" [simpoCorner]=\"style?.corners\"\r\n [id]=\"data?.id\" [class]=\"data?.id+img.image.id\"\r\n [simpoObjectPosition]=\"img.image.position\" [src]=\"img.image.url\"\r\n [alt]=\"img.image.altText\" loading=\"lazy\" [appImageEditor]=\"edit || false\"\r\n [imageData]=\"img?.image\" [sectionId]=\"data?.id\" [itemIndex]=\"i\" class=\"w-100 h-100\" />\r\n <ng-container *ngIf=\"img.hotspots\">\r\n <div *ngFor=\"let spot of img.hotspots\" class=\"hotspot-dot shimmer-dot\"\r\n [style.left.%]=\"spot.x\" [style.top.%]=\"spot.y\"\r\n [style.background]=\"style?.background?.accentColor || 'white'\" cdkDrag\r\n cdkDragBoundary=\".image-hotspot-wrapper\" [cdkDragDisabled]=\"!edit\"\r\n (cdkDragMoved)=\"dragHotspot($event, spot)\" (cdkDragStarted)=\"dragging = true\"\r\n (cdkDragEnded)=\"dragging = false\" (mouseenter)=\"toggleHotspot($event, spot)\"\r\n (mouseleave)=\"toggleHotspot($event, spot)\">\r\n\r\n <div class=\"hotspot-popup position-relative\" [style.left.%]=\"spot.x + 30\"\r\n [style.top.%]=\"spot.y\" *ngIf=\"openedHotspotId === spot.id && !dragging\">\r\n <div class=\"popup-card d-flex align-items-center gap-2\">\r\n <div class=\"img\">\r\n <img *ngIf=\"spot.img\" [src]=\"spot.img\" alt=\"Hotspot Image\"\r\n class=\"hotspot-image\" />\r\n </div>\r\n <div class=\"d-flex flex-column align-items-start\">\r\n <div class=\"title text-start\">{{ spot.title || 'Title' }}</div>\r\n <a *ngIf=\"spot.link\" [href]=\"spot.link\" target=\"_blank\"\r\n (click)=\"$event.stopPropagation()\">\r\n {{ spot.linkText || 'open link' }}\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"style?.devider?.display\">\r\n <simpo-svg-divider [dividerType]=\"style?.devider?.deviderType\"\r\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n</section>", styles: [".total-container{height:auto;position:relative}.main-image-section{margin-bottom:1.5rem}.mb-1{margin-bottom:1.5rem!important}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.wrap-scroll{overflow:scroll;flex-wrap:nowrap}@media screen and (min-width : 1200px){.grid{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:auto;grid-gap:5px}.grid .image-hotspot-wrapper:first-child:last-child{grid-column:1 / span 2}.grid .image-hotspot-wrapper:first-child:nth-last-child(2),.grid .image-hotspot-wrapper:nth-child(2):last-child{grid-column:span 1;height:100%}.grid .image-hotspot-wrapper:nth-child(3n+1):not(:last-child){grid-column:1;grid-row:span 2;height:100%}.grid .image-hotspot-wrapper:nth-child(3n+2){grid-column:2}.grid .image-hotspot-wrapper:nth-child(3n+3){grid-column:2;align-self:end}.grid .image-hotspot-wrapper:nth-child(3n+4){grid-column:1 / span 2}}.remove-gap{grid-gap:0!important}@media screen and (min-width: 760px){.cards{padding-bottom:24px}}.main-image-container{width:100%}@media screen and (max-width: 760px){.scroll-btn{display:none!important}}.right-column-container{display:flex;flex-direction:column;height:100%;padding:0}.image-half-height{height:50%!important;flex:1}.image-half-height:first-child{margin-bottom:2px}.scroll-btn{position:absolute;top:50%;z-index:10;font-size:18px;width:36px!important;height:36px!important;border-radius:50%;border:none}.scroll-btn.left{left:8px}.scroll-btn.right{right:8px}.image-hotspot-wrapper{position:relative;width:100%}.hotspot-dot{position:absolute!important;width:20px;height:20px;border-radius:50%;cursor:grab;z-index:99;margin-left:-10px;margin-top:-10px;transform:none!important;transition:background .3s}.cdk-drag-dragging{transition:none!important;cursor:grabbing}.cdk-drag-placeholder{opacity:0}.hotspot-image{height:50px;border-radius:8px}.popup-card{background:#00000080;padding:12px;border-radius:12px;min-width:250px;color:#fff;font-family:var(--website-font-family);font-size:13px}.popup-card a{color:#fff;text-decoration:underline}.shimmer-dot:before{content:\"\";position:absolute;inset:0;border-radius:50%;background:#ffffff80;animation:shimmerPulse 1.8s infinite ease-out}@keyframes shimmerPulse{0%{transform:scale(1);opacity:.8}70%{transform:scale(2.2);opacity:0}to{transform:scale(2.2);opacity:0}}\n"], dependencies: [{ kind: "ngmodule", type: SimpoElementsModule }, { kind: "component", type: i2.SvgDividerComponent, selector: "simpo-svg-divider", inputs: ["dividerType", "color"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: ColumnDirectiveDirective, selector: "[simpoColumnDirective]", inputs: ["simpoColumnDirective"] }, { kind: "directive", type: ImageDirectiveDirective, selector: "[simpoImageDirective]", inputs: ["simpoImageDirective"] }, { kind: "directive", type: ContentFitDirective, selector: "[simpoLayout]", inputs: ["simpoLayout"] }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i4.HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: i5.DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "component", type: TextEditorComponent, selector: "simpo-text-editor", inputs: ["value", "editable", "isRTE", "sectionId", "label", "type", "inputTextIndex", "itemIndex"], outputs: ["valueChange"] }, { kind: "directive", type:
|
|
142
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ImageGridHotspotComponent, isStandalone: true, selector: "simpo-image-grid-hotspot", inputs: { data: "data", index: "index", edit: "edit", customClass: "customClass", delete: "delete", nextComponentColor: "nextComponentColor" }, host: { listeners: { "document:click": "closeHotspot()" } }, viewQueries: [{ propertyName: "imagegrid", first: true, predicate: ["imagegrid"], descendants: true }, { propertyName: "_mainContainer", first: true, predicate: ["mainContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<section [id]=\"data?.id\" [simpoBackground]=\"style?.background\" simpoHover (hovering)=\"showEditTabs($event)\"\n class=\"total-container\" [attr.style]=\"customClass\">\n <div #mainContainer [id]=\"data?.id\" [simpoOverlay]=\"style?.background\" [spacingHorizontal]=\"stylesLayout\">\n <div class=\"container-fluid\" [id]=\"data?.id\" [simpoBorder]=\"style?.border\" [simpoLayout]=\"style?.layout\">\n <div class=\"row\" [id]=\"data?.id\" [simpoAnimation]=\"style?.animation\"\n [ngStyle]=\"style?.fullWidth ? {'padding': '0px'} : {}\">\n <div *ngFor=\"let text of data?.content?.inputText; let i = index\">\n <div class=\"heading-large content-side\" [simpoContentTitleSpace]=\"headingSpace\">\n <ng-container *ngIf=\"edit || (text.value && text.value.length > 0)\">\n <simpo-text-editor [(value)]=\"text.value\" [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"i\" [isRTE]=\"text.isRTE\"></simpo-text-editor>\n </ng-container>\n </div>\n </div>\n\n <ng-container *ngIf=\"style?.gridStyle == 'Style1'\">\n <button class=\"scroll-btn left p-0 d-flex align-items-center justify-content-center\"\n *ngIf=\"style?.direction === 'ROW' && isOverflowing\" (click)=\"scrollLeft()\"\n [disabled]=\"atStart\"><mat-icon>keyboard_arrow_left</mat-icon>\n </button>\n <div class=\"main-image-section d-flex position-relative\" [class.row]=\"style?.direction == 'ROW' \"\n [class.wrap-scroll]=\"style?.direction == 'ROW'\" [class.flex-wrap]=\"style?.direction == 'COLUMN'\"\n [id]=\"data?.id\" #imagegrid [style.justifyContent]=\"getJustifyContent()\" (scroll)=\"onScroll()\">\n <div class=\"image-section p-3\" *ngFor=\"let img of content?.listItem?.data\"\n [simpoColumnDirective]=\"style?.size\" [id]=\"data?.id\"\n [attr.style]=\"style?.removeGaps ? 'padding: 0px !important; margin: 0px !important;' : {}\">\n <div class=\"image-hotspot-wrapper\">\n <img loading=\"lazy\" [simpoImageDirective]=\"style?.image\" [simpoCorner]=\"style?.corners\"\n [id]=\"data?.id\" [class]=\"data?.id+img.image.id\"\n [simpoObjectPosition]=\"img.image.position\" [src]=\"img.image.url\"\n [alt]=\"img.image.altText\" loading=\"lazy\" class=\"w-100\" />\n\n <ng-container *ngIf=\"img.hotspots\">\n <div *ngFor=\"let spot of img.hotspots\" class=\"hotspot-dot shimmer-dot\"\n [style.left.%]=\"spot.x\" [style.top.%]=\"spot.y\"\n [style.background]=\"style?.background?.accentColor || 'white'\" cdkDrag\n cdkDragBoundary=\".image-hotspot-wrapper\" [cdkDragDisabled]=\"!edit\"\n (cdkDragMoved)=\"dragHotspot($event, spot)\" (cdkDragStarted)=\"dragging = true\"\n (cdkDragEnded)=\"dragging = false\" (mouseenter)=\"toggleHotspot($event, spot)\"\n (mouseleave)=\"toggleHotspot($event, spot)\">\n\n\n <div class=\"hotspot-popup position-relative\" [style.left.%]=\"spot.x + 30\"\n [style.top.%]=\"spot.y\" *ngIf=\"openedHotspotId === spot.id && !dragging\">\n <div class=\"popup-card d-flex align-items-center gap-2\">\n <div class=\"img\">\n <img *ngIf=\"spot.img\" [src]=\"spot.img\" alt=\"Hotspot Image\"\n class=\"hotspot-image\" />\n </div>\n <div class=\"d-flex flex-column align-items-start\">\n <div class=\"title text-start\">{{ spot.title || 'Title' }}</div>\n <a *ngIf=\"spot.link\" [href]=\"spot.link\" target=\"_blank\"\n (click)=\"$event.stopPropagation()\">\n {{ spot.linkText || 'open link' }}\n </a>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n <button class=\"scroll-btn right p-0 d-flex align-items-center justify-content-center\"\n *ngIf=\"style?.direction === 'ROW' && isOverflowing\" (click)=\"scrollRight()\"\n [disabled]=\"atEnd\"><mat-icon>keyboard_arrow_right</mat-icon>\n </button>\n\n </ng-container>\n\n <ng-container *ngIf=\"style?.gridStyle == 'Style2'\">\n <div class=\"grid h-100\" [class.remove-gap]=\"style?.removeGaps\" [class.p-0]=\"style?.fullWidth\">\n <ng-container *ngFor=\"let img of content?.listItem?.data; let i = index\">\n <div class=\"image-hotspot-wrapper h-100\">\n <img loading=\"lazy\" [simpoImageDirective]=\"style?.image\" [simpoCorner]=\"style?.corners\"\n [id]=\"data?.id\" [class]=\"data?.id+img.image.id\"\n [simpoObjectPosition]=\"img.image.position\" [src]=\"img.image.url\"\n [alt]=\"img.image.altText\" loading=\"lazy\" [appImageEditor]=\"edit || false\"\n [imageData]=\"img?.image\" [sectionId]=\"data?.id\" [itemIndex]=\"i\" class=\"w-100 h-100\" />\n <ng-container *ngIf=\"img.hotspots\">\n <div *ngFor=\"let spot of img.hotspots\" class=\"hotspot-dot shimmer-dot\"\n [style.left.%]=\"spot.x\" [style.top.%]=\"spot.y\"\n [style.background]=\"style?.background?.accentColor || 'white'\" cdkDrag\n cdkDragBoundary=\".image-hotspot-wrapper\" [cdkDragDisabled]=\"!edit\"\n (cdkDragMoved)=\"dragHotspot($event, spot)\" (cdkDragStarted)=\"dragging = true\"\n (cdkDragEnded)=\"dragging = false\" (mouseenter)=\"toggleHotspot($event, spot)\"\n (mouseleave)=\"toggleHotspot($event, spot)\">\n\n <div class=\"hotspot-popup position-relative\" [style.left.%]=\"spot.x + 30\"\n [style.top.%]=\"spot.y\" *ngIf=\"openedHotspotId === spot.id && !dragging\">\n <div class=\"popup-card d-flex align-items-center gap-2\">\n <div class=\"img\">\n <img *ngIf=\"spot.img\" [src]=\"spot.img\" alt=\"Hotspot Image\"\n class=\"hotspot-image\" />\n </div>\n <div class=\"d-flex flex-column align-items-start\">\n <div class=\"title text-start\">{{ spot.title || 'Title' }}</div>\n <a *ngIf=\"spot.link\" [href]=\"spot.link\" target=\"_blank\"\n (click)=\"$event.stopPropagation()\">\n {{ spot.linkText || 'open link' }}\n </a>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n <ng-container *ngIf=\"style?.devider?.display\">\n <simpo-svg-divider [dividerType]=\"style?.devider?.deviderType\"\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\n </ng-container>\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\n </div>\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\n </div>\n</section>", styles: [".total-container{height:auto;position:relative}.main-image-section{margin-bottom:1.5rem}.mb-1{margin-bottom:1.5rem!important}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.wrap-scroll{overflow:scroll;flex-wrap:nowrap}@media screen and (min-width : 1200px){.grid{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:auto;grid-gap:5px}.grid .image-hotspot-wrapper:first-child:last-child{grid-column:1 / span 2}.grid .image-hotspot-wrapper:first-child:nth-last-child(2),.grid .image-hotspot-wrapper:nth-child(2):last-child{grid-column:span 1;height:100%}.grid .image-hotspot-wrapper:nth-child(3n+1):not(:last-child){grid-column:1;grid-row:span 2;height:100%}.grid .image-hotspot-wrapper:nth-child(3n+2){grid-column:2}.grid .image-hotspot-wrapper:nth-child(3n+3){grid-column:2;align-self:end}.grid .image-hotspot-wrapper:nth-child(3n+4){grid-column:1 / span 2}}.remove-gap{grid-gap:0!important}@media screen and (min-width: 760px){.cards{padding-bottom:24px}}.main-image-container{width:100%}@media screen and (max-width: 760px){.scroll-btn{display:none!important}}.right-column-container{display:flex;flex-direction:column;height:100%;padding:0}.image-half-height{height:50%!important;flex:1}.image-half-height:first-child{margin-bottom:2px}.scroll-btn{position:absolute;top:50%;z-index:10;font-size:18px;width:36px!important;height:36px!important;border-radius:50%;border:none}.scroll-btn.left{left:8px}.scroll-btn.right{right:8px}.image-hotspot-wrapper{position:relative;width:100%}.hotspot-dot{position:absolute!important;width:20px;height:20px;border-radius:50%;cursor:grab;z-index:99;margin-left:-10px;margin-top:-10px;transform:none!important;transition:background .3s}.cdk-drag-dragging{transition:none!important;cursor:grabbing}.cdk-drag-placeholder{opacity:0}.hotspot-image{height:50px;border-radius:8px}.popup-card{background:#00000080;padding:12px;border-radius:12px;min-width:250px;color:#fff;font-family:var(--website-font-family);font-size:13px}.popup-card a{color:#fff;text-decoration:underline}.shimmer-dot:before{content:\"\";position:absolute;inset:0;border-radius:50%;background:#ffffff80;animation:shimmerPulse 1.8s infinite ease-out}@keyframes shimmerPulse{0%{transform:scale(1);opacity:.8}70%{transform:scale(2.2);opacity:0}to{transform:scale(2.2);opacity:0}}\n"], dependencies: [{ kind: "ngmodule", type: SimpoElementsModule }, { kind: "component", type: i2.SvgDividerComponent, selector: "simpo-svg-divider", inputs: ["dividerType", "color"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: ColumnDirectiveDirective, selector: "[simpoColumnDirective]", inputs: ["simpoColumnDirective"] }, { kind: "directive", type: ImageDirectiveDirective, selector: "[simpoImageDirective]", inputs: ["simpoImageDirective"] }, { kind: "directive", type: ContentFitDirective, selector: "[simpoLayout]", inputs: ["simpoLayout"] }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i4.HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: i5.DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "component", type: TextEditorComponent, selector: "simpo-text-editor", inputs: ["value", "editable", "isRTE", "sectionId", "label", "type", "inputTextIndex", "itemIndex"], outputs: ["valueChange"] }, { kind: "directive", type:
|
|
143
143
|
//directive
|
|
144
144
|
AnimationDirective, selector: "[simpoAnimation]", inputs: ["simpoAnimation"] }, { kind: "directive", type: BackgroundDirective, selector: "[simpoBackground]", inputs: ["simpoBackground", "scrollValue"] }, { kind: "directive", type: BorderDirective, selector: "[simpoBorder]", inputs: ["simpoBorder"] }, { kind: "directive", type: CornerDirective, selector: "[simpoCorner]", inputs: ["simpoCorner"] }, { kind: "directive", type: HoverDirective, selector: "[simpoHover]", outputs: ["hovering"] }, { kind: "directive", type: OverlayDirective, selector: "[simpoOverlay]", inputs: ["simpoOverlay"] }, { kind: "directive", type: ObjectPositionDirective, selector: "[simpoObjectPosition]", inputs: ["simpoObjectPosition"] }, { kind: "directive", type: ContentTitleDirective, selector: "[simpoContentTitleSpace]", inputs: ["simpoContentTitleSpace"] }, { kind: "directive", type: ImageEditorDirective, selector: "[appImageEditor]", inputs: ["appImageEditor", "imageData", "sectionId", "showIcon", "iconData", "itemIndex"] }, { kind: "directive", type: SpacingHorizontalDirective, selector: "[spacingHorizontal]", inputs: ["spacingHorizontal", "isHeader"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }] }); }
|
|
145
145
|
}
|
|
@@ -177,7 +177,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
177
177
|
SimpoWrapComntainer,
|
|
178
178
|
MatIcon,
|
|
179
179
|
CdkDrag
|
|
180
|
-
], template: "<section [id]=\"data?.id\" [simpoBackground]=\"style?.background\" simpoHover (hovering)=\"showEditTabs($event)\"\r\n class=\"total-container\" [attr.style]=\"customClass\">\r\n <div #mainContainer [id]=\"data?.id\" [simpoOverlay]=\"style?.background\" [spacingHorizontal]=\"stylesLayout\">\r\n <div class=\"container-fluid\" [id]=\"data?.id\" [simpoBorder]=\"style?.border\" [simpoLayout]=\"style?.layout\">\r\n <div class=\"row\" [id]=\"data?.id\" [simpoAnimation]=\"style?.animation\"\r\n [ngStyle]=\"style?.fullWidth ? {'padding': '0px'} : {}\">\r\n <div *ngFor=\"let text of data?.content?.inputText; let i = index\">\r\n <div class=\"heading-large content-side\" [simpoContentTitleSpace]=\"headingSpace\">\r\n <ng-container *ngIf=\"edit || (text.value && text.value.length > 0)\">\r\n <simpo-text-editor [(value)]=\"text.value\" [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"i\" [isRTE]=\"text.isRTE\"></simpo-text-editor>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"style?.gridStyle == 'Style1'\">\r\n <button class=\"scroll-btn left p-0 d-flex align-items-center justify-content-center\"\r\n *ngIf=\"style?.direction === 'ROW' && isOverflowing\" (click)=\"scrollLeft()\"\r\n [disabled]=\"atStart\"><mat-icon>keyboard_arrow_left</mat-icon>\r\n </button>\r\n <div class=\"main-image-section d-flex position-relative\" [class.row]=\"style?.direction == 'ROW' \"\r\n [class.wrap-scroll]=\"style?.direction == 'ROW'\" [class.flex-wrap]=\"style?.direction == 'COLUMN'\"\r\n [id]=\"data?.id\" #imagegrid [style.justifyContent]=\"getJustifyContent()\" (scroll)=\"onScroll()\">\r\n <div class=\"image-section p-3\" *ngFor=\"let img of content?.listItem?.data\"\r\n [simpoColumnDirective]=\"style?.size\" [id]=\"data?.id\"\r\n [attr.style]=\"style?.removeGaps ? 'padding: 0px !important; margin: 0px !important;' : {}\">\r\n <div class=\"image-hotspot-wrapper\">\r\n <img loading=\"lazy\" [simpoImageDirective]=\"style?.image\" [simpoCorner]=\"style?.corners\"\r\n [id]=\"data?.id\" [class]=\"data?.id+img.image.id\"\r\n [simpoObjectPosition]=\"img.image.position\" [src]=\"img.image.url\"\r\n [alt]=\"img.image.altText\" loading=\"lazy\" class=\"w-100\" />\r\n\r\n <ng-container *ngIf=\"img.hotspots\">\r\n <div *ngFor=\"let spot of img.hotspots\" class=\"hotspot-dot shimmer-dot\"\r\n [style.left.%]=\"spot.x\" [style.top.%]=\"spot.y\"\r\n [style.background]=\"style?.background?.accentColor || 'white'\" cdkDrag\r\n cdkDragBoundary=\".image-hotspot-wrapper\" [cdkDragDisabled]=\"!edit\"\r\n (cdkDragMoved)=\"dragHotspot($event, spot)\" (cdkDragStarted)=\"dragging = true\"\r\n (cdkDragEnded)=\"dragging = false\" (mouseenter)=\"toggleHotspot($event, spot)\"\r\n (mouseleave)=\"toggleHotspot($event, spot)\">\r\n\r\n\r\n <div class=\"hotspot-popup position-relative\" [style.left.%]=\"spot.x + 30\"\r\n [style.top.%]=\"spot.y\" *ngIf=\"openedHotspotId === spot.id && !dragging\">\r\n <div class=\"popup-card d-flex align-items-center gap-2\">\r\n <div class=\"img\">\r\n <img *ngIf=\"spot.img\" [src]=\"spot.img\" alt=\"Hotspot Image\"\r\n class=\"hotspot-image\" />\r\n </div>\r\n <div class=\"d-flex flex-column align-items-start\">\r\n <div class=\"title text-start\">{{ spot.title || 'Title' }}</div>\r\n <a *ngIf=\"spot.link\" [href]=\"spot.link\" target=\"_blank\"\r\n (click)=\"$event.stopPropagation()\">\r\n {{ spot.linkText || 'open link' }}\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <button class=\"scroll-btn right p-0 d-flex align-items-center justify-content-center\"\r\n *ngIf=\"style?.direction === 'ROW' && isOverflowing\" (click)=\"scrollRight()\"\r\n [disabled]=\"atEnd\"><mat-icon>keyboard_arrow_right</mat-icon>\r\n </button>\r\n\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"style?.gridStyle == 'Style2'\">\r\n <div class=\"grid h-100\" [class.remove-gap]=\"style?.removeGaps\" [class.p-0]=\"style?.fullWidth\">\r\n <ng-container *ngFor=\"let img of content?.listItem?.data; let i = index\">\r\n <div class=\"image-hotspot-wrapper h-100\">\r\n <img loading=\"lazy\" [simpoImageDirective]=\"style?.image\" [simpoCorner]=\"style?.corners\"\r\n [id]=\"data?.id\" [class]=\"data?.id+img.image.id\"\r\n [simpoObjectPosition]=\"img.image.position\" [src]=\"img.image.url\"\r\n [alt]=\"img.image.altText\" loading=\"lazy\" [appImageEditor]=\"edit || false\"\r\n [imageData]=\"img?.image\" [sectionId]=\"data?.id\" [itemIndex]=\"i\" class=\"w-100 h-100\" />\r\n <ng-container *ngIf=\"img.hotspots\">\r\n <div *ngFor=\"let spot of img.hotspots\" class=\"hotspot-dot shimmer-dot\"\r\n [style.left.%]=\"spot.x\" [style.top.%]=\"spot.y\"\r\n [style.background]=\"style?.background?.accentColor || 'white'\" cdkDrag\r\n cdkDragBoundary=\".image-hotspot-wrapper\" [cdkDragDisabled]=\"!edit\"\r\n (cdkDragMoved)=\"dragHotspot($event, spot)\" (cdkDragStarted)=\"dragging = true\"\r\n (cdkDragEnded)=\"dragging = false\" (mouseenter)=\"toggleHotspot($event, spot)\"\r\n (mouseleave)=\"toggleHotspot($event, spot)\">\r\n\r\n <div class=\"hotspot-popup position-relative\" [style.left.%]=\"spot.x + 30\"\r\n [style.top.%]=\"spot.y\" *ngIf=\"openedHotspotId === spot.id && !dragging\">\r\n <div class=\"popup-card d-flex align-items-center gap-2\">\r\n <div class=\"img\">\r\n <img *ngIf=\"spot.img\" [src]=\"spot.img\" alt=\"Hotspot Image\"\r\n class=\"hotspot-image\" />\r\n </div>\r\n <div class=\"d-flex flex-column align-items-start\">\r\n <div class=\"title text-start\">{{ spot.title || 'Title' }}</div>\r\n <a *ngIf=\"spot.link\" [href]=\"spot.link\" target=\"_blank\"\r\n (click)=\"$event.stopPropagation()\">\r\n {{ spot.linkText || 'open link' }}\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"style?.devider?.display\">\r\n <simpo-svg-divider [dividerType]=\"style?.devider?.deviderType\"\r\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n</section>", styles: [".total-container{height:auto;position:relative}.main-image-section{margin-bottom:1.5rem}.mb-1{margin-bottom:1.5rem!important}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.wrap-scroll{overflow:scroll;flex-wrap:nowrap}@media screen and (min-width : 1200px){.grid{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:auto;grid-gap:5px}.grid .image-hotspot-wrapper:first-child:last-child{grid-column:1 / span 2}.grid .image-hotspot-wrapper:first-child:nth-last-child(2),.grid .image-hotspot-wrapper:nth-child(2):last-child{grid-column:span 1;height:100%}.grid .image-hotspot-wrapper:nth-child(3n+1):not(:last-child){grid-column:1;grid-row:span 2;height:100%}.grid .image-hotspot-wrapper:nth-child(3n+2){grid-column:2}.grid .image-hotspot-wrapper:nth-child(3n+3){grid-column:2;align-self:end}.grid .image-hotspot-wrapper:nth-child(3n+4){grid-column:1 / span 2}}.remove-gap{grid-gap:0!important}@media screen and (min-width: 760px){.cards{padding-bottom:24px}}.main-image-container{width:100%}@media screen and (max-width: 760px){.scroll-btn{display:none!important}}.right-column-container{display:flex;flex-direction:column;height:100%;padding:0}.image-half-height{height:50%!important;flex:1}.image-half-height:first-child{margin-bottom:2px}.scroll-btn{position:absolute;top:50%;z-index:10;font-size:18px;width:36px!important;height:36px!important;border-radius:50%;border:none}.scroll-btn.left{left:8px}.scroll-btn.right{right:8px}.image-hotspot-wrapper{position:relative;width:100%}.hotspot-dot{position:absolute!important;width:20px;height:20px;border-radius:50%;cursor:grab;z-index:99;margin-left:-10px;margin-top:-10px;transform:none!important;transition:background .3s}.cdk-drag-dragging{transition:none!important;cursor:grabbing}.cdk-drag-placeholder{opacity:0}.hotspot-image{height:50px;border-radius:8px}.popup-card{background:#00000080;padding:12px;border-radius:12px;min-width:250px;color:#fff;font-family:var(--website-font-family);font-size:13px}.popup-card a{color:#fff;text-decoration:underline}.shimmer-dot:before{content:\"\";position:absolute;inset:0;border-radius:50%;background:#ffffff80;animation:shimmerPulse 1.8s infinite ease-out}@keyframes shimmerPulse{0%{transform:scale(1);opacity:.8}70%{transform:scale(2.2);opacity:0}to{transform:scale(2.2);opacity:0}}\n"] }]
|
|
180
|
+
], template: "<section [id]=\"data?.id\" [simpoBackground]=\"style?.background\" simpoHover (hovering)=\"showEditTabs($event)\"\n class=\"total-container\" [attr.style]=\"customClass\">\n <div #mainContainer [id]=\"data?.id\" [simpoOverlay]=\"style?.background\" [spacingHorizontal]=\"stylesLayout\">\n <div class=\"container-fluid\" [id]=\"data?.id\" [simpoBorder]=\"style?.border\" [simpoLayout]=\"style?.layout\">\n <div class=\"row\" [id]=\"data?.id\" [simpoAnimation]=\"style?.animation\"\n [ngStyle]=\"style?.fullWidth ? {'padding': '0px'} : {}\">\n <div *ngFor=\"let text of data?.content?.inputText; let i = index\">\n <div class=\"heading-large content-side\" [simpoContentTitleSpace]=\"headingSpace\">\n <ng-container *ngIf=\"edit || (text.value && text.value.length > 0)\">\n <simpo-text-editor [(value)]=\"text.value\" [editable]=\"edit || false\" [sectionId]=\"data?.id\" [inputTextIndex]=\"i\" [isRTE]=\"text.isRTE\"></simpo-text-editor>\n </ng-container>\n </div>\n </div>\n\n <ng-container *ngIf=\"style?.gridStyle == 'Style1'\">\n <button class=\"scroll-btn left p-0 d-flex align-items-center justify-content-center\"\n *ngIf=\"style?.direction === 'ROW' && isOverflowing\" (click)=\"scrollLeft()\"\n [disabled]=\"atStart\"><mat-icon>keyboard_arrow_left</mat-icon>\n </button>\n <div class=\"main-image-section d-flex position-relative\" [class.row]=\"style?.direction == 'ROW' \"\n [class.wrap-scroll]=\"style?.direction == 'ROW'\" [class.flex-wrap]=\"style?.direction == 'COLUMN'\"\n [id]=\"data?.id\" #imagegrid [style.justifyContent]=\"getJustifyContent()\" (scroll)=\"onScroll()\">\n <div class=\"image-section p-3\" *ngFor=\"let img of content?.listItem?.data\"\n [simpoColumnDirective]=\"style?.size\" [id]=\"data?.id\"\n [attr.style]=\"style?.removeGaps ? 'padding: 0px !important; margin: 0px !important;' : {}\">\n <div class=\"image-hotspot-wrapper\">\n <img loading=\"lazy\" [simpoImageDirective]=\"style?.image\" [simpoCorner]=\"style?.corners\"\n [id]=\"data?.id\" [class]=\"data?.id+img.image.id\"\n [simpoObjectPosition]=\"img.image.position\" [src]=\"img.image.url\"\n [alt]=\"img.image.altText\" loading=\"lazy\" class=\"w-100\" />\n\n <ng-container *ngIf=\"img.hotspots\">\n <div *ngFor=\"let spot of img.hotspots\" class=\"hotspot-dot shimmer-dot\"\n [style.left.%]=\"spot.x\" [style.top.%]=\"spot.y\"\n [style.background]=\"style?.background?.accentColor || 'white'\" cdkDrag\n cdkDragBoundary=\".image-hotspot-wrapper\" [cdkDragDisabled]=\"!edit\"\n (cdkDragMoved)=\"dragHotspot($event, spot)\" (cdkDragStarted)=\"dragging = true\"\n (cdkDragEnded)=\"dragging = false\" (mouseenter)=\"toggleHotspot($event, spot)\"\n (mouseleave)=\"toggleHotspot($event, spot)\">\n\n\n <div class=\"hotspot-popup position-relative\" [style.left.%]=\"spot.x + 30\"\n [style.top.%]=\"spot.y\" *ngIf=\"openedHotspotId === spot.id && !dragging\">\n <div class=\"popup-card d-flex align-items-center gap-2\">\n <div class=\"img\">\n <img *ngIf=\"spot.img\" [src]=\"spot.img\" alt=\"Hotspot Image\"\n class=\"hotspot-image\" />\n </div>\n <div class=\"d-flex flex-column align-items-start\">\n <div class=\"title text-start\">{{ spot.title || 'Title' }}</div>\n <a *ngIf=\"spot.link\" [href]=\"spot.link\" target=\"_blank\"\n (click)=\"$event.stopPropagation()\">\n {{ spot.linkText || 'open link' }}\n </a>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n <button class=\"scroll-btn right p-0 d-flex align-items-center justify-content-center\"\n *ngIf=\"style?.direction === 'ROW' && isOverflowing\" (click)=\"scrollRight()\"\n [disabled]=\"atEnd\"><mat-icon>keyboard_arrow_right</mat-icon>\n </button>\n\n </ng-container>\n\n <ng-container *ngIf=\"style?.gridStyle == 'Style2'\">\n <div class=\"grid h-100\" [class.remove-gap]=\"style?.removeGaps\" [class.p-0]=\"style?.fullWidth\">\n <ng-container *ngFor=\"let img of content?.listItem?.data; let i = index\">\n <div class=\"image-hotspot-wrapper h-100\">\n <img loading=\"lazy\" [simpoImageDirective]=\"style?.image\" [simpoCorner]=\"style?.corners\"\n [id]=\"data?.id\" [class]=\"data?.id+img.image.id\"\n [simpoObjectPosition]=\"img.image.position\" [src]=\"img.image.url\"\n [alt]=\"img.image.altText\" loading=\"lazy\" [appImageEditor]=\"edit || false\"\n [imageData]=\"img?.image\" [sectionId]=\"data?.id\" [itemIndex]=\"i\" class=\"w-100 h-100\" />\n <ng-container *ngIf=\"img.hotspots\">\n <div *ngFor=\"let spot of img.hotspots\" class=\"hotspot-dot shimmer-dot\"\n [style.left.%]=\"spot.x\" [style.top.%]=\"spot.y\"\n [style.background]=\"style?.background?.accentColor || 'white'\" cdkDrag\n cdkDragBoundary=\".image-hotspot-wrapper\" [cdkDragDisabled]=\"!edit\"\n (cdkDragMoved)=\"dragHotspot($event, spot)\" (cdkDragStarted)=\"dragging = true\"\n (cdkDragEnded)=\"dragging = false\" (mouseenter)=\"toggleHotspot($event, spot)\"\n (mouseleave)=\"toggleHotspot($event, spot)\">\n\n <div class=\"hotspot-popup position-relative\" [style.left.%]=\"spot.x + 30\"\n [style.top.%]=\"spot.y\" *ngIf=\"openedHotspotId === spot.id && !dragging\">\n <div class=\"popup-card d-flex align-items-center gap-2\">\n <div class=\"img\">\n <img *ngIf=\"spot.img\" [src]=\"spot.img\" alt=\"Hotspot Image\"\n class=\"hotspot-image\" />\n </div>\n <div class=\"d-flex flex-column align-items-start\">\n <div class=\"title text-start\">{{ spot.title || 'Title' }}</div>\n <a *ngIf=\"spot.link\" [href]=\"spot.link\" target=\"_blank\"\n (click)=\"$event.stopPropagation()\">\n {{ spot.linkText || 'open link' }}\n </a>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n <ng-container *ngIf=\"style?.devider?.display\">\n <simpo-svg-divider [dividerType]=\"style?.devider?.deviderType\"\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\n </ng-container>\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\n </div>\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\n </div>\n</section>", styles: [".total-container{height:auto;position:relative}.main-image-section{margin-bottom:1.5rem}.mb-1{margin-bottom:1.5rem!important}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.wrap-scroll{overflow:scroll;flex-wrap:nowrap}@media screen and (min-width : 1200px){.grid{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:auto;grid-gap:5px}.grid .image-hotspot-wrapper:first-child:last-child{grid-column:1 / span 2}.grid .image-hotspot-wrapper:first-child:nth-last-child(2),.grid .image-hotspot-wrapper:nth-child(2):last-child{grid-column:span 1;height:100%}.grid .image-hotspot-wrapper:nth-child(3n+1):not(:last-child){grid-column:1;grid-row:span 2;height:100%}.grid .image-hotspot-wrapper:nth-child(3n+2){grid-column:2}.grid .image-hotspot-wrapper:nth-child(3n+3){grid-column:2;align-self:end}.grid .image-hotspot-wrapper:nth-child(3n+4){grid-column:1 / span 2}}.remove-gap{grid-gap:0!important}@media screen and (min-width: 760px){.cards{padding-bottom:24px}}.main-image-container{width:100%}@media screen and (max-width: 760px){.scroll-btn{display:none!important}}.right-column-container{display:flex;flex-direction:column;height:100%;padding:0}.image-half-height{height:50%!important;flex:1}.image-half-height:first-child{margin-bottom:2px}.scroll-btn{position:absolute;top:50%;z-index:10;font-size:18px;width:36px!important;height:36px!important;border-radius:50%;border:none}.scroll-btn.left{left:8px}.scroll-btn.right{right:8px}.image-hotspot-wrapper{position:relative;width:100%}.hotspot-dot{position:absolute!important;width:20px;height:20px;border-radius:50%;cursor:grab;z-index:99;margin-left:-10px;margin-top:-10px;transform:none!important;transition:background .3s}.cdk-drag-dragging{transition:none!important;cursor:grabbing}.cdk-drag-placeholder{opacity:0}.hotspot-image{height:50px;border-radius:8px}.popup-card{background:#00000080;padding:12px;border-radius:12px;min-width:250px;color:#fff;font-family:var(--website-font-family);font-size:13px}.popup-card a{color:#fff;text-decoration:underline}.shimmer-dot:before{content:\"\";position:absolute;inset:0;border-radius:50%;background:#ffffff80;animation:shimmerPulse 1.8s infinite ease-out}@keyframes shimmerPulse{0%{transform:scale(1);opacity:.8}70%{transform:scale(2.2);opacity:0}to{transform:scale(2.2);opacity:0}}\n"] }]
|
|
181
181
|
}], ctorParameters: () => [{ type: i1.EventsService }], propDecorators: { imagegrid: [{
|
|
182
182
|
type: ViewChild,
|
|
183
183
|
args: ['imagegrid', { static: false }]
|
|
@@ -200,4 +200,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
200
200
|
type: HostListener,
|
|
201
201
|
args: ['document:click']
|
|
202
202
|
}] } });
|
|
203
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZ3JpZC1ob3RzcG90LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvc2VjdGlvbnMvaW1hZ2UtZ3JpZC1ob3RzcG90L2ltYWdlLWdyaWQtaG90c3BvdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL2ltYWdlLWdyaWQtaG90c3BvdC9pbWFnZS1ncmlkLWhvdHNwb3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RixPQUFPLFdBQVcsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDekYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFN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S0FBSyxFQUFFO2dCQUNoQyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRXNCLGNBQWM7c0JBQXpDLFNBQVM7dUJBQUMsZUFBZTtnQkFrSDFCLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJbWFnZUdyaWRIb3RTcG90Q29udGVudE1vZGFsLCBJbWFnZUdyaWRIb3RTcG90U2VjdGlvbk1vZGVsLCBJbWFnZUdyaWRIb3RTcG90U3R5bGVzTW9kZWwgfSBmcm9tICcuL2ltYWdlLWdyaWQtaG90c3BvdC5tb2RlbCc7XHJcbmltcG9ydCBCYXNlU2VjdGlvbiBmcm9tICcuLi9CYXNlU2VjdGlvbic7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFNpbXBvRWxlbWVudHNNb2R1bGUgfSBmcm9tICcuLi8uLi9lbGVtZW50cy9pbmRleCc7XHJcbmltcG9ydCB7IFNpbXBvQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9pbmRleCc7XHJcbmltcG9ydCB7IEFuaW1hdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9hbmltYXRpb24tZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQmFja2dyb3VuZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9iYWNrZ3JvdW5kLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvbnRlbnRGaXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29udGVudC1maXQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQmFubmVyQ29udGVudEZpdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9iYW5uZXItY29udGVudC1maXQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQm9yZGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2JvcmRlci1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBCdXR0b25EaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYnV0dG9uLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb2x1bW5EaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29sdW1uLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb250YWluZXJGaXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29udGFpbmVyLWZpci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBzaW1wb0NvbmV0ZW5BbGlnbm1lbnREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29udGVudC1hbGlnbm1lbnQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29ybmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2Nvcm5lci1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTaW1wb0Zvb3RlckxheW91dERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9mb290ZXItbGF5b3V0LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEhvdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2hvdmVyLWVsZW1lbnQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSW1hZ2VEaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvaW1hZ2UtZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE92ZXJsYXlEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvb3ZlcmxheS1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBQb3NpdGlvbkxheW91dERpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9wb3NpdGlvbi1sYXlvdXQtZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFRleHRCYWNrZ3JvdW5kRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL3RleHQtYmFja2dyb3VuZC1kaXJlY3RpdmUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgT2JqZWN0UG9zaXRpb25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvaW1hZ2UtcG9zaXRpb24uZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29udGVudFRpdGxlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnQtdGl0bGUtc3BhY2luZy5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTUEFDSU5HIH0gZnJvbSAnLi4vLi4vc3R5bGVzL2luZGV4JztcclxuaW1wb3J0IHsgQmFja2dyb3VuZE1vZGVsLCBMYXlPdXRNb2RlbCB9IGZyb20gJy4uLy4uL3N0eWxlcy9zdHlsZS5tb2RlbCc7XHJcbmltcG9ydCB7IFRleHRFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lbGVtZW50cy90ZXh0LWVkaXRvci90ZXh0LWVkaXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbWFnZUVkaXRvckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9pbWFnZS1lZGl0b3IuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU3BhY2luZ0hvcml6b250YWxEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvc3BhY2luZy1ob3Jpem9udGFsLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFNpbXBvV3JhcENvbW50YWluZXIgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvd3JhcC1jb250YWluZXJzLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2RrRHJhZyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby1pbWFnZS1ncmlkLWhvdHNwb3QnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgU2ltcG9FbGVtZW50c01vZHVsZSxcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIENvbHVtbkRpcmVjdGl2ZURpcmVjdGl2ZSxcclxuICAgIEltYWdlRGlyZWN0aXZlRGlyZWN0aXZlLFxyXG4gICAgQ29udGVudEZpdERpcmVjdGl2ZSxcclxuICAgIFNpbXBvQ29tcG9uZW50TW9kdWxlLFxyXG4gICAgVGV4dEVkaXRvckNvbXBvbmVudCxcclxuICAgIC8vZGlyZWN0aXZlXHJcbiAgICBBbmltYXRpb25EaXJlY3RpdmUsXHJcbiAgICBCYWNrZ3JvdW5kRGlyZWN0aXZlLFxyXG4gICAgQmFubmVyQ29udGVudEZpdERpcmVjdGl2ZSxcclxuICAgIEJvcmRlckRpcmVjdGl2ZSxcclxuICAgIEJ1dHRvbkRpcmVjdGl2ZURpcmVjdGl2ZSxcclxuICAgIENvbHVtbkRpcmVjdGl2ZURpcmVjdGl2ZSxcclxuICAgIENvbnRhaW5lckZpdERpcmVjdGl2ZSxcclxuICAgIHNpbXBvQ29uZXRlbkFsaWdubWVudERpcmVjdGl2ZSxcclxuICAgIENvbnRlbnRGaXREaXJlY3RpdmUsXHJcbiAgICBDb3JuZXJEaXJlY3RpdmUsXHJcbiAgICBTaW1wb0Zvb3RlckxheW91dERpcmVjdGl2ZSxcclxuICAgIEhvdmVyRGlyZWN0aXZlLFxyXG4gICAgSW1hZ2VEaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBPdmVybGF5RGlyZWN0aXZlLFxyXG4gICAgUG9zaXRpb25MYXlvdXREaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBUZXh0QmFja2dyb3VuZERpcmVjdGl2ZURpcmVjdGl2ZSxcclxuICAgIE9iamVjdFBvc2l0aW9uRGlyZWN0aXZlLFxyXG4gICAgQ29udGVudFRpdGxlRGlyZWN0aXZlLFxyXG4gICAgSW1hZ2VFZGl0b3JEaXJlY3RpdmUsXHJcbiAgICBTcGFjaW5nSG9yaXpvbnRhbERpcmVjdGl2ZSxcclxuICAgIFNpbXBvV3JhcENvbW50YWluZXIsXHJcbiAgICBNYXRJY29uLFxyXG4gICAgQ2RrRHJhZ1xyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLWdyaWQtaG90c3BvdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2ltYWdlLWdyaWQtaG90c3BvdC5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSW1hZ2VHcmlkSG90c3BvdENvbXBvbmVudCBleHRlbmRzIEJhc2VTZWN0aW9uIHtcclxuXHJcbiAgQFZpZXdDaGlsZCgnaW1hZ2VncmlkJywgeyBzdGF0aWM6IGZhbHNlIH0pIGltYWdlZ3JpZCE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIEBJbnB1dCgpIGRhdGE/OiBJbWFnZUdyaWRIb3RTcG90U2VjdGlvbk1vZGVsO1xyXG4gIEBJbnB1dCgpIGluZGV4PzogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGVkaXQ/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGN1c3RvbUNsYXNzPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGRlbGV0ZT86IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpIG5leHRDb21wb25lbnRDb2xvcj86IEJhY2tncm91bmRNb2RlbDtcclxuXHJcbiAgQFZpZXdDaGlsZCgnbWFpbkNvbnRhaW5lcicpIF9tYWluQ29udGFpbmVyOiBFbGVtZW50UmVmIHwgbnVsbCA9IG51bGw7XHJcbiAgY29udGVudD86IEltYWdlR3JpZEhvdFNwb3RDb250ZW50TW9kYWw7XHJcbiAgc3R5bGU/OiBJbWFnZUdyaWRIb3RTcG90U3R5bGVzTW9kZWw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2V2ZW50U2VydmljZTogRXZlbnRzU2VydmljZSkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5jb250ZW50ID0gdGhpcy5kYXRhPy5jb250ZW50O1xyXG4gICAgdGhpcy5zdHlsZSA9IHRoaXMuZGF0YT8uc3R5bGVzO1xyXG4gICAgdGhpcy5kZWxldGVTZWxlY3RlZCA9IHRoaXMuZGVsZXRlXHJcbiAgfVxyXG4gIGdldCBzdHlsZXNMYXlvdXQoKSB7XHJcbiAgICByZXR1cm4geyAuLi50aGlzLnN0eWxlPy5sYXlvdXQgfSBhcyBMYXlPdXRNb2RlbDtcclxuICB9XHJcbiAgZ2V0IGhlYWRpbmdTcGFjZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0eWxlPy5sYXlvdXQ/LmhlYWRpbmdTcGFjaW5nIGFzIFNQQUNJTkc7XHJcbiAgfVxyXG4gIGVkaXRTZWN0aW9uKCkge1xyXG4gICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDw9IDQ3NSlcclxuICAgICAgcmV0dXJuXHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UudG9nZ2xlRWRpdG9yRXZlbnQuZW1pdChmYWxzZSk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmVkaXRTZWN0aW9uLmVtaXQoeyBkYXRhOiB0aGlzLmRhdGEgfSk7XHJcbiAgICB9LCAxMDApO1xyXG4gIH1cclxuICBnZXRMZW5ndGgoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250ZW50Py5saXN0SXRlbT8uZGF0YT8ubGVuZ3RoIHx8IDBcclxuICB9XHJcblxyXG4gIGdldEp1c3RpZnlDb250ZW50KCkge1xyXG4gICAgY29uc3QgZWwgPSB0aGlzLmltYWdlZ3JpZD8ubmF0aXZlRWxlbWVudDtcclxuICAgIGlmICghZWwpIHJldHVybiAnJztcclxuICAgIGNvbnN0IGlzT3ZlcmZsb3dpbmcgPSBlbC5zY3JvbGxXaWR0aCA+IGVsLmNsaWVudFdpZHRoO1xyXG4gICAgaWYgKGlzT3ZlcmZsb3dpbmcpIHtcclxuICAgICAgcmV0dXJuICdmbGV4LXN0YXJ0JztcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLnN0eWxlPy5sYXlvdXQ/LmFsaWduIHx8ICcnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQgc2Nyb2xsU3RlcCgpIHsgcmV0dXJuIE1hdGgucm91bmQoKHRoaXMuaW1hZ2VncmlkPy5uYXRpdmVFbGVtZW50Py5jbGllbnRXaWR0aCB8fCAzMDApICogMC44KTsgfVxyXG5cclxuXHJcbiAgc2Nyb2xsUmlnaHQoKSB7XHJcbiAgICBjb25zdCBlbCA9IHRoaXMuaW1hZ2VncmlkPy5uYXRpdmVFbGVtZW50OyBpZiAoIWVsKSByZXR1cm47XHJcbiAgICBlbC5zY3JvbGxCeSh7IGxlZnQ6IHRoaXMuc2Nyb2xsU3RlcCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnVwZGF0ZUVkZ2VzKCksIDMwMCk7XHJcbiAgfVxyXG5cclxuICBpc092ZXJmbG93aW5nID0gZmFsc2U7IGF0U3RhcnQgPSB0cnVlOyBhdEVuZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgcm8/OiBSZXNpemVPYnNlcnZlcjtcclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgLy8gaW5pdGlhbCBjaGVja1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNoZWNrT3ZlcmZsb3coKSwgNTApO1xyXG4gICAgaWYgKHRoaXMuaW1hZ2VncmlkPy5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgIHRoaXMucm8gPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4gdGhpcy5jaGVja092ZXJmbG93KCkpO1xyXG4gICAgICB0aGlzLnJvLm9ic2VydmUodGhpcy5pbWFnZWdyaWQubmF0aXZlRWxlbWVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHsgdGhpcy5ybz8uZGlzY29ubmVjdCgpOyB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlRWRnZXMoKSB7XHJcbiAgICBjb25zdCBlbCA9IHRoaXMuaW1hZ2VncmlkPy5uYXRpdmVFbGVtZW50O1xyXG4gICAgaWYgKCFlbCkgcmV0dXJuO1xyXG4gICAgdGhpcy5hdFN0YXJ0ID0gZWwuc2Nyb2xsTGVmdCA8PSA1O1xyXG4gICAgdGhpcy5hdEVuZCA9IGVsLnNjcm9sbExlZnQgKyBlbC5jbGllbnRXaWR0aCA+PSBlbC5zY3JvbGxXaWR0aCAtIDU7XHJcbiAgfVxyXG5cclxuICBjaGVja092ZXJmbG93KCkge1xyXG4gICAgY29uc3QgZWwgPSB0aGlzLmltYWdlZ3JpZD8ubmF0aXZlRWxlbWVudDtcclxuICAgIGlmICghZWwpIHJldHVybjtcclxuICAgIHRoaXMuaXNPdmVyZmxvd2luZyA9IGVsLnNjcm9sbFdpZHRoID4gZWwuY2xpZW50V2lkdGggKyAxO1xyXG4gICAgdGhpcy51cGRhdGVFZGdlcygpO1xyXG4gIH1cclxuXHJcbiAgb25TY3JvbGwoKSB7IHRoaXMudXBkYXRlRWRnZXMoKTsgfVxyXG5cclxuICBzY3JvbGxMZWZ0KCkge1xyXG4gICAgY29uc3QgZWwgPSB0aGlzLmltYWdlZ3JpZD8ubmF0aXZlRWxlbWVudDsgaWYgKCFlbCkgcmV0dXJuO1xyXG4gICAgZWwuc2Nyb2xsQnkoeyBsZWZ0OiAtdGhpcy5zY3JvbGxTdGVwLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlRWRnZXMoKSwgMzAwKTtcclxuICB9XHJcblxyXG4gIGRyYWdnaW5nID0gZmFsc2U7XHJcbiAgZHJhZ0hvdHNwb3QoZXZlbnQ6IGFueSwgc3BvdDogYW55KSB7XHJcbiAgICBjb25zdCBlbGVtZW50ID0gZXZlbnQuc291cmNlLmdldFJvb3RFbGVtZW50KCk7XHJcbiAgICBjb25zdCBwYXJlbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XHJcbiAgICBjb25zdCByZWN0ID0gcGFyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG5cclxuICAgIGNvbnN0IHBvaW50ZXIgPSBldmVudC5wb2ludGVyUG9zaXRpb247XHJcblxyXG4gICAgbGV0IHggPSAoKHBvaW50ZXIueCAtIHJlY3QubGVmdCkgLyByZWN0LndpZHRoKSAqIDEwMDtcclxuICAgIGxldCB5ID0gKChwb2ludGVyLnkgLSByZWN0LnRvcCkgLyByZWN0LmhlaWdodCkgKiAxMDA7XHJcblxyXG4gICAgc3BvdC54ID0gTWF0aC5tYXgoMCwgTWF0aC5taW4oMTAwLCB4KSk7XHJcbiAgICBzcG90LnkgPSBNYXRoLm1heCgwLCBNYXRoLm1pbigxMDAsIHkpKTtcclxuXHJcbiAgICBldmVudC5zb3VyY2UuX2RyYWdSZWYucmVzZXQoKTtcclxuICB9XHJcblxyXG4gIG9wZW5lZEhvdHNwb3RJZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgdG9nZ2xlSG90c3BvdChldmVudDogTW91c2VFdmVudCwgc3BvdDogYW55KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGlmICh0aGlzLm9wZW5lZEhvdHNwb3RJZCA9PT0gc3BvdC5pZCkge1xyXG4gICAgICB0aGlzLm9wZW5lZEhvdHNwb3RJZCA9IG51bGw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm9wZW5lZEhvdHNwb3RJZCA9IHNwb3QuaWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycpXHJcbiAgY2xvc2VIb3RzcG90KCkge1xyXG4gICAgdGhpcy5vcGVuZWRIb3RzcG90SWQgPSBudWxsO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbiIsIjxzZWN0aW9uIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0JhY2tncm91bmRdPVwic3R5bGU/LmJhY2tncm91bmRcIiBzaW1wb0hvdmVyIChob3ZlcmluZyk9XCJzaG93RWRpdFRhYnMoJGV2ZW50KVwiXHJcbiAgICBjbGFzcz1cInRvdGFsLWNvbnRhaW5lclwiIFthdHRyLnN0eWxlXT1cImN1c3RvbUNsYXNzXCI+XHJcbiAgICA8ZGl2ICNtYWluQ29udGFpbmVyIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb092ZXJsYXldPVwic3R5bGU/LmJhY2tncm91bmRcIiBbc3BhY2luZ0hvcml6b250YWxdPVwic3R5bGVzTGF5b3V0XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0JvcmRlcl09XCJzdHlsZT8uYm9yZGVyXCIgW3NpbXBvTGF5b3V0XT1cInN0eWxlPy5sYXlvdXRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0FuaW1hdGlvbl09XCJzdHlsZT8uYW5pbWF0aW9uXCJcclxuICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInN0eWxlPy5mdWxsV2lkdGggPyB7J3BhZGRpbmcnOiAnMHB4J30gOiB7fVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgdGV4dCBvZiBkYXRhPy5jb250ZW50Py5pbnB1dFRleHQ7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1sYXJnZSBjb250ZW50LXNpZGVcIiBbc2ltcG9Db250ZW50VGl0bGVTcGFjZV09XCJoZWFkaW5nU3BhY2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVkaXQgfHwgICh0ZXh0LnZhbHVlICYmIHRleHQudmFsdWUubGVuZ3RoID4gMClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzaW1wby10ZXh0LWVkaXRvciBbKHZhbHVlKV09XCJ0ZXh0LnZhbHVlXCIgW2VkaXRhYmxlXT1cImVkaXQgfHwgZmFsc2VcIiBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCIgW2lucHV0VGV4dEluZGV4XT1cImlcIiBbaXNSVEVdPVwidGV4dC5pc1JURVwiPjwvc2ltcG8tdGV4dC1lZGl0b3I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0eWxlPy5ncmlkU3R5bGUgPT0gJ1N0eWxlMSdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2Nyb2xsLWJ0biBsZWZ0IHAtMCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInN0eWxlPy5kaXJlY3Rpb24gPT09ICdST1cnICYmIGlzT3ZlcmZsb3dpbmdcIiAoY2xpY2spPVwic2Nyb2xsTGVmdCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImF0U3RhcnRcIj48bWF0LWljb24+a2V5Ym9hcmRfYXJyb3dfbGVmdDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW4taW1hZ2Utc2VjdGlvbiBkLWZsZXggcG9zaXRpb24tcmVsYXRpdmVcIiBbY2xhc3Mucm93XT1cInN0eWxlPy5kaXJlY3Rpb24gPT0gJ1JPVycgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLndyYXAtc2Nyb2xsXT1cInN0eWxlPy5kaXJlY3Rpb24gPT0gJ1JPVydcIiBbY2xhc3MuZmxleC13cmFwXT1cInN0eWxlPy5kaXJlY3Rpb24gPT0gJ0NPTFVNTidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZGF0YT8uaWRcIiAjaW1hZ2VncmlkIFtzdHlsZS5qdXN0aWZ5Q29udGVudF09XCJnZXRKdXN0aWZ5Q29udGVudCgpXCIgKHNjcm9sbCk9XCJvblNjcm9sbCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZS1zZWN0aW9uIHAtM1wiICpuZ0Zvcj1cImxldCBpbWcgb2YgY29udGVudD8ubGlzdEl0ZW0/LmRhdGFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NpbXBvQ29sdW1uRGlyZWN0aXZlXT1cInN0eWxlPy5zaXplXCIgW2lkXT1cImRhdGE/LmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN0eWxlXT1cInN0eWxlPy5yZW1vdmVHYXBzID8gJ3BhZGRpbmc6IDBweCAhaW1wb3J0YW50OyBtYXJnaW46IDBweCAhaW1wb3J0YW50OycgOiB7fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlLWhvdHNwb3Qtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgbG9hZGluZz1cImxhenlcIiBbc2ltcG9JbWFnZURpcmVjdGl2ZV09XCJzdHlsZT8uaW1hZ2VcIiBbc2ltcG9Db3JuZXJdPVwic3R5bGU/LmNvcm5lcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZGF0YT8uaWRcIiBbY2xhc3NdPVwiZGF0YT8uaWQraW1nLmltYWdlLmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NpbXBvT2JqZWN0UG9zaXRpb25dPVwiaW1nLmltYWdlLnBvc2l0aW9uXCIgW3NyY109XCJpbWcuaW1hZ2UudXJsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FsdF09XCJpbWcuaW1hZ2UuYWx0VGV4dFwiIGxvYWRpbmc9XCJsYXp5XCIgY2xhc3M9XCJ3LTEwMFwiIC8+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbWcuaG90c3BvdHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgc3BvdCBvZiBpbWcuaG90c3BvdHNcIiBjbGFzcz1cImhvdHNwb3QtZG90IHNoaW1tZXItZG90XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LiVdPVwic3BvdC54XCIgW3N0eWxlLnRvcC4lXT1cInNwb3QueVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZF09XCJzdHlsZT8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3IgfHwgJ3doaXRlJ1wiIGNka0RyYWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNka0RyYWdCb3VuZGFyeT1cIi5pbWFnZS1ob3RzcG90LXdyYXBwZXJcIiBbY2RrRHJhZ0Rpc2FibGVkXT1cIiFlZGl0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjZGtEcmFnTW92ZWQpPVwiZHJhZ0hvdHNwb3QoJGV2ZW50LCBzcG90KVwiIChjZGtEcmFnU3RhcnRlZCk9XCJkcmFnZ2luZyA9IHRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNka0RyYWdFbmRlZCk9XCJkcmFnZ2luZyA9IGZhbHNlXCIgKG1vdXNlZW50ZXIpPVwidG9nZ2xlSG90c3BvdCgkZXZlbnQsIHNwb3QpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cInRvZ2dsZUhvdHNwb3QoJGV2ZW50LCBzcG90KVwiPlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaG90c3BvdC1wb3B1cCBwb3NpdGlvbi1yZWxhdGl2ZVwiIFtzdHlsZS5sZWZ0LiVdPVwic3BvdC54ICsgMzBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS50b3AuJV09XCJzcG90LnlcIiAqbmdJZj1cIm9wZW5lZEhvdHNwb3RJZCA9PT0gc3BvdC5pZCAmJiAhZHJhZ2dpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wdXAtY2FyZCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJzcG90LmltZ1wiIFtzcmNdPVwic3BvdC5pbWdcIiBhbHQ9XCJIb3RzcG90IEltYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImhvdHNwb3QtaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1zdGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlIHRleHQtc3RhcnRcIj57eyBzcG90LnRpdGxlIHx8ICdUaXRsZScgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhICpuZ0lmPVwic3BvdC5saW5rXCIgW2hyZWZdPVwic3BvdC5saW5rXCIgdGFyZ2V0PVwiX2JsYW5rXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc3BvdC5saW5rVGV4dCB8fCAnb3BlbiBsaW5rJyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2Nyb2xsLWJ0biByaWdodCBwLTAgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzdHlsZT8uZGlyZWN0aW9uID09PSAnUk9XJyAmJiBpc092ZXJmbG93aW5nXCIgKGNsaWNrKT1cInNjcm9sbFJpZ2h0KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYXRFbmRcIj48bWF0LWljb24+a2V5Ym9hcmRfYXJyb3dfcmlnaHQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdHlsZT8uZ3JpZFN0eWxlID09ICdTdHlsZTInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgaC0xMDBcIiBbY2xhc3MucmVtb3ZlLWdhcF09XCJzdHlsZT8ucmVtb3ZlR2Fwc1wiIFtjbGFzcy5wLTBdPVwic3R5bGU/LmZ1bGxXaWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpbWcgb2YgY29udGVudD8ubGlzdEl0ZW0/LmRhdGE7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZS1ob3RzcG90LXdyYXBwZXIgaC0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgW3NpbXBvSW1hZ2VEaXJlY3RpdmVdPVwic3R5bGU/LmltYWdlXCIgW3NpbXBvQ29ybmVyXT1cInN0eWxlPy5jb3JuZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cImRhdGE/LmlkXCIgW2NsYXNzXT1cImRhdGE/LmlkK2ltZy5pbWFnZS5pZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaW1wb09iamVjdFBvc2l0aW9uXT1cImltZy5pbWFnZS5wb3NpdGlvblwiIFtzcmNdPVwiaW1nLmltYWdlLnVybFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbHRdPVwiaW1nLmltYWdlLmFsdFRleHRcIiBsb2FkaW5nPVwibGF6eVwiIFthcHBJbWFnZUVkaXRvcl09XCJlZGl0IHx8IGZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ltYWdlRGF0YV09XCJpbWc/LmltYWdlXCIgW3NlY3Rpb25JZF09XCJkYXRhPy5pZFwiIFtpdGVtSW5kZXhdPVwiaVwiIGNsYXNzPVwidy0xMDAgaC0xMDBcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbWcuaG90c3BvdHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgc3BvdCBvZiBpbWcuaG90c3BvdHNcIiBjbGFzcz1cImhvdHNwb3QtZG90IHNoaW1tZXItZG90XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LiVdPVwic3BvdC54XCIgW3N0eWxlLnRvcC4lXT1cInNwb3QueVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZF09XCJzdHlsZT8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3IgfHwgJ3doaXRlJ1wiIGNka0RyYWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNka0RyYWdCb3VuZGFyeT1cIi5pbWFnZS1ob3RzcG90LXdyYXBwZXJcIiBbY2RrRHJhZ0Rpc2FibGVkXT1cIiFlZGl0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjZGtEcmFnTW92ZWQpPVwiZHJhZ0hvdHNwb3QoJGV2ZW50LCBzcG90KVwiIChjZGtEcmFnU3RhcnRlZCk9XCJkcmFnZ2luZyA9IHRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNka0RyYWdFbmRlZCk9XCJkcmFnZ2luZyA9IGZhbHNlXCIgKG1vdXNlZW50ZXIpPVwidG9nZ2xlSG90c3BvdCgkZXZlbnQsIHNwb3QpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cInRvZ2dsZUhvdHNwb3QoJGV2ZW50LCBzcG90KVwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJob3RzcG90LXBvcHVwIHBvc2l0aW9uLXJlbGF0aXZlXCIgW3N0eWxlLmxlZnQuJV09XCJzcG90LnggKyAzMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLnRvcC4lXT1cInNwb3QueVwiICpuZ0lmPVwib3BlbmVkSG90c3BvdElkID09PSBzcG90LmlkICYmICFkcmFnZ2luZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1jYXJkIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cInNwb3QuaW1nXCIgW3NyY109XCJzcG90LmltZ1wiIGFsdD1cIkhvdHNwb3QgSW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaG90c3BvdC1pbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLXN0YXJ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUgdGV4dC1zdGFydFwiPnt7IHNwb3QudGl0bGUgfHwgJ1RpdGxlJyB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgKm5nSWY9XCJzcG90LmxpbmtcIiBbaHJlZl09XCJzcG90LmxpbmtcIiB0YXJnZXQ9XCJfYmxhbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBzcG90LmxpbmtUZXh0IHx8ICdvcGVuIGxpbmsnIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3R5bGU/LmRldmlkZXI/LmRpc3BsYXlcIj5cclxuICAgICAgICA8c2ltcG8tc3ZnLWRpdmlkZXIgW2RpdmlkZXJUeXBlXT1cInN0eWxlPy5kZXZpZGVyPy5kZXZpZGVyVHlwZVwiXHJcbiAgICAgICAgICAgIFtjb2xvcl09XCJuZXh0Q29tcG9uZW50Q29sb3I/LmNvbG9yXCI+PC9zaW1wby1zdmctZGl2aWRlcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPGRpdiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGVkaXR9XCIgKm5nSWY9XCJzaG93RWRpdG9yc1wiPlxyXG4gICAgICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIj48L3NpbXBvLWhvdmVyLWVsZW1lbnRzPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0RlbGV0ZVwiIFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZGVsZXRlfVwiPlxyXG4gICAgICAgIDxzaW1wby1kZWxldGUtaG92ZXItZWxlbWVudCBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCI+PC9zaW1wby1kZWxldGUtaG92ZXItZWxlbWVudD5cclxuICAgIDwvZGl2PlxyXG48L3NlY3Rpb24+Il19
|
|
203
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZ3JpZC1ob3RzcG90LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvc2VjdGlvbnMvaW1hZ2UtZ3JpZC1ob3RzcG90L2ltYWdlLWdyaWQtaG90c3BvdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL2ltYWdlLWdyaWQtaG90c3BvdC9pbWFnZS1ncmlkLWhvdHNwb3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RixPQUFPLFdBQVcsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDekYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFN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S0FBSyxFQUFFO2dCQUNoQyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRXNCLGNBQWM7c0JBQXpDLFNBQVM7dUJBQUMsZUFBZTtnQkFrSDFCLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW1hZ2VHcmlkSG90U3BvdENvbnRlbnRNb2RhbCwgSW1hZ2VHcmlkSG90U3BvdFNlY3Rpb25Nb2RlbCwgSW1hZ2VHcmlkSG90U3BvdFN0eWxlc01vZGVsIH0gZnJvbSAnLi9pbWFnZS1ncmlkLWhvdHNwb3QubW9kZWwnO1xuaW1wb3J0IEJhc2VTZWN0aW9uIGZyb20gJy4uL0Jhc2VTZWN0aW9uJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTaW1wb0VsZW1lbnRzTW9kdWxlIH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvaW5kZXgnO1xuaW1wb3J0IHsgU2ltcG9Db21wb25lbnRNb2R1bGUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2luZGV4JztcbmltcG9ydCB7IEFuaW1hdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9hbmltYXRpb24tZGlyZWN0aXZlJztcbmltcG9ydCB7IEJhY2tncm91bmREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYmFja2dyb3VuZC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29udGVudEZpdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb250ZW50LWZpdC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQmFubmVyQ29udGVudEZpdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9iYW5uZXItY29udGVudC1maXQtZGlyZWN0aXZlJztcbmltcG9ydCB7IEJvcmRlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9ib3JkZXItZGlyZWN0aXZlJztcbmltcG9ydCB7IEJ1dHRvbkRpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9idXR0b24tZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb2x1bW5EaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29sdW1uLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29udGFpbmVyRml0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbnRhaW5lci1maXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IHNpbXBvQ29uZXRlbkFsaWdubWVudERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb250ZW50LWFsaWdubWVudC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29ybmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2Nvcm5lci1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2ltcG9Gb290ZXJMYXlvdXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvZm9vdGVyLWxheW91dC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvaG92ZXItZWxlbWVudC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSW1hZ2VEaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvaW1hZ2UtZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBPdmVybGF5RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL292ZXJsYXktZGlyZWN0aXZlJztcbmltcG9ydCB7IFBvc2l0aW9uTGF5b3V0RGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL3Bvc2l0aW9uLWxheW91dC1kaXJlY3RpdmUuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRleHRCYWNrZ3JvdW5kRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL3RleHQtYmFja2dyb3VuZC1kaXJlY3RpdmUuZGlyZWN0aXZlJztcbmltcG9ydCB7IE9iamVjdFBvc2l0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2ltYWdlLXBvc2l0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb250ZW50VGl0bGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29udGVudC10aXRsZS1zcGFjaW5nLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTUEFDSU5HIH0gZnJvbSAnLi4vLi4vc3R5bGVzL2luZGV4JztcbmltcG9ydCB7IEJhY2tncm91bmRNb2RlbCwgTGF5T3V0TW9kZWwgfSBmcm9tICcuLi8uLi9zdHlsZXMvc3R5bGUubW9kZWwnO1xuaW1wb3J0IHsgVGV4dEVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VsZW1lbnRzL3RleHQtZWRpdG9yL3RleHQtZWRpdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbWFnZUVkaXRvckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9pbWFnZS1lZGl0b3IuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNwYWNpbmdIb3Jpem9udGFsRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL3NwYWNpbmctaG9yaXpvbnRhbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2ltcG9XcmFwQ29tbnRhaW5lciB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS93cmFwLWNvbnRhaW5lcnMuZGlyZWN0aXZlJztcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IEV2ZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ldmVudHMuc2VydmljZSc7XG5pbXBvcnQgeyBDZGtEcmFnIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpbXBvLWltYWdlLWdyaWQtaG90c3BvdCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBTaW1wb0VsZW1lbnRzTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBDb2x1bW5EaXJlY3RpdmVEaXJlY3RpdmUsXG4gICAgSW1hZ2VEaXJlY3RpdmVEaXJlY3RpdmUsXG4gICAgQ29udGVudEZpdERpcmVjdGl2ZSxcbiAgICBTaW1wb0NvbXBvbmVudE1vZHVsZSxcbiAgICBUZXh0RWRpdG9yQ29tcG9uZW50LFxuICAgIC8vZGlyZWN0aXZlXG4gICAgQW5pbWF0aW9uRGlyZWN0aXZlLFxuICAgIEJhY2tncm91bmREaXJlY3RpdmUsXG4gICAgQmFubmVyQ29udGVudEZpdERpcmVjdGl2ZSxcbiAgICBCb3JkZXJEaXJlY3RpdmUsXG4gICAgQnV0dG9uRGlyZWN0aXZlRGlyZWN0aXZlLFxuICAgIENvbHVtbkRpcmVjdGl2ZURpcmVjdGl2ZSxcbiAgICBDb250YWluZXJGaXREaXJlY3RpdmUsXG4gICAgc2ltcG9Db25ldGVuQWxpZ25tZW50RGlyZWN0aXZlLFxuICAgIENvbnRlbnRGaXREaXJlY3RpdmUsXG4gICAgQ29ybmVyRGlyZWN0aXZlLFxuICAgIFNpbXBvRm9vdGVyTGF5b3V0RGlyZWN0aXZlLFxuICAgIEhvdmVyRGlyZWN0aXZlLFxuICAgIEltYWdlRGlyZWN0aXZlRGlyZWN0aXZlLFxuICAgIE92ZXJsYXlEaXJlY3RpdmUsXG4gICAgUG9zaXRpb25MYXlvdXREaXJlY3RpdmVEaXJlY3RpdmUsXG4gICAgVGV4dEJhY2tncm91bmREaXJlY3RpdmVEaXJlY3RpdmUsXG4gICAgT2JqZWN0UG9zaXRpb25EaXJlY3RpdmUsXG4gICAgQ29udGVudFRpdGxlRGlyZWN0aXZlLFxuICAgIEltYWdlRWRpdG9yRGlyZWN0aXZlLFxuICAgIFNwYWNpbmdIb3Jpem9udGFsRGlyZWN0aXZlLFxuICAgIFNpbXBvV3JhcENvbW50YWluZXIsXG4gICAgTWF0SWNvbixcbiAgICBDZGtEcmFnXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS1ncmlkLWhvdHNwb3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vaW1hZ2UtZ3JpZC1ob3RzcG90LmNvbXBvbmVudC5jc3MnXG59KVxuZXhwb3J0IGNsYXNzIEltYWdlR3JpZEhvdHNwb3RDb21wb25lbnQgZXh0ZW5kcyBCYXNlU2VjdGlvbiB7XG5cbiAgQFZpZXdDaGlsZCgnaW1hZ2VncmlkJywgeyBzdGF0aWM6IGZhbHNlIH0pIGltYWdlZ3JpZCE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICBASW5wdXQoKSBkYXRhPzogSW1hZ2VHcmlkSG90U3BvdFNlY3Rpb25Nb2RlbDtcbiAgQElucHV0KCkgaW5kZXg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGVkaXQ/OiBib29sZWFuO1xuICBASW5wdXQoKSBjdXN0b21DbGFzcz86IHN0cmluZztcbiAgQElucHV0KCkgZGVsZXRlPzogYm9vbGVhbjtcblxuICBASW5wdXQoKSBuZXh0Q29tcG9uZW50Q29sb3I/OiBCYWNrZ3JvdW5kTW9kZWw7XG5cbiAgQFZpZXdDaGlsZCgnbWFpbkNvbnRhaW5lcicpIF9tYWluQ29udGFpbmVyOiBFbGVtZW50UmVmIHwgbnVsbCA9IG51bGw7XG4gIGNvbnRlbnQ/OiBJbWFnZUdyaWRIb3RTcG90Q29udGVudE1vZGFsO1xuICBzdHlsZT86IEltYWdlR3JpZEhvdFNwb3RTdHlsZXNNb2RlbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9ldmVudFNlcnZpY2U6IEV2ZW50c1NlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jb250ZW50ID0gdGhpcy5kYXRhPy5jb250ZW50O1xuICAgIHRoaXMuc3R5bGUgPSB0aGlzLmRhdGE/LnN0eWxlcztcbiAgICB0aGlzLmRlbGV0ZVNlbGVjdGVkID0gdGhpcy5kZWxldGVcbiAgfVxuICBnZXQgc3R5bGVzTGF5b3V0KCkge1xuICAgIHJldHVybiB7IC4uLnRoaXMuc3R5bGU/LmxheW91dCB9IGFzIExheU91dE1vZGVsO1xuICB9XG4gIGdldCBoZWFkaW5nU3BhY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3R5bGU/LmxheW91dD8uaGVhZGluZ1NwYWNpbmcgYXMgU1BBQ0lORztcbiAgfVxuICBlZGl0U2VjdGlvbigpIHtcbiAgICBpZiAod2luZG93LmlubmVyV2lkdGggPD0gNDc1KVxuICAgICAgcmV0dXJuXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLnRvZ2dsZUVkaXRvckV2ZW50LmVtaXQoZmFsc2UpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmVkaXRTZWN0aW9uLmVtaXQoeyBkYXRhOiB0aGlzLmRhdGEgfSk7XG4gICAgfSwgMTAwKTtcbiAgfVxuICBnZXRMZW5ndGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGVudD8ubGlzdEl0ZW0/LmRhdGE/Lmxlbmd0aCB8fCAwXG4gIH1cblxuICBnZXRKdXN0aWZ5Q29udGVudCgpIHtcbiAgICBjb25zdCBlbCA9IHRoaXMuaW1hZ2VncmlkPy5uYXRpdmVFbGVtZW50O1xuICAgIGlmICghZWwpIHJldHVybiAnJztcbiAgICBjb25zdCBpc092ZXJmbG93aW5nID0gZWwuc2Nyb2xsV2lkdGggPiBlbC5jbGllbnRXaWR0aDtcbiAgICBpZiAoaXNPdmVyZmxvd2luZykge1xuICAgICAgcmV0dXJuICdmbGV4LXN0YXJ0JztcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc3R5bGU/LmxheW91dD8uYWxpZ24gfHwgJyc7XG4gIH1cblxuICBwcml2YXRlIGdldCBzY3JvbGxTdGVwKCkgeyByZXR1cm4gTWF0aC5yb3VuZCgodGhpcy5pbWFnZWdyaWQ/Lm5hdGl2ZUVsZW1lbnQ/LmNsaWVudFdpZHRoIHx8IDMwMCkgKiAwLjgpOyB9XG5cblxuICBzY3JvbGxSaWdodCgpIHtcbiAgICBjb25zdCBlbCA9IHRoaXMuaW1hZ2VncmlkPy5uYXRpdmVFbGVtZW50OyBpZiAoIWVsKSByZXR1cm47XG4gICAgZWwuc2Nyb2xsQnkoeyBsZWZ0OiB0aGlzLnNjcm9sbFN0ZXAsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlRWRnZXMoKSwgMzAwKTtcbiAgfVxuXG4gIGlzT3ZlcmZsb3dpbmcgPSBmYWxzZTsgYXRTdGFydCA9IHRydWU7IGF0RW5kID0gZmFsc2U7XG4gIHByaXZhdGUgcm8/OiBSZXNpemVPYnNlcnZlcjtcblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgLy8gaW5pdGlhbCBjaGVja1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jaGVja092ZXJmbG93KCksIDUwKTtcbiAgICBpZiAodGhpcy5pbWFnZWdyaWQ/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMucm8gPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4gdGhpcy5jaGVja092ZXJmbG93KCkpO1xuICAgICAgdGhpcy5yby5vYnNlcnZlKHRoaXMuaW1hZ2VncmlkLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkgeyB0aGlzLnJvPy5kaXNjb25uZWN0KCk7IH1cblxuICBwcml2YXRlIHVwZGF0ZUVkZ2VzKCkge1xuICAgIGNvbnN0IGVsID0gdGhpcy5pbWFnZWdyaWQ/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFlbCkgcmV0dXJuO1xuICAgIHRoaXMuYXRTdGFydCA9IGVsLnNjcm9sbExlZnQgPD0gNTtcbiAgICB0aGlzLmF0RW5kID0gZWwuc2Nyb2xsTGVmdCArIGVsLmNsaWVudFdpZHRoID49IGVsLnNjcm9sbFdpZHRoIC0gNTtcbiAgfVxuXG4gIGNoZWNrT3ZlcmZsb3coKSB7XG4gICAgY29uc3QgZWwgPSB0aGlzLmltYWdlZ3JpZD8ubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoIWVsKSByZXR1cm47XG4gICAgdGhpcy5pc092ZXJmbG93aW5nID0gZWwuc2Nyb2xsV2lkdGggPiBlbC5jbGllbnRXaWR0aCArIDE7XG4gICAgdGhpcy51cGRhdGVFZGdlcygpO1xuICB9XG5cbiAgb25TY3JvbGwoKSB7IHRoaXMudXBkYXRlRWRnZXMoKTsgfVxuXG4gIHNjcm9sbExlZnQoKSB7XG4gICAgY29uc3QgZWwgPSB0aGlzLmltYWdlZ3JpZD8ubmF0aXZlRWxlbWVudDsgaWYgKCFlbCkgcmV0dXJuO1xuICAgIGVsLnNjcm9sbEJ5KHsgbGVmdDogLXRoaXMuc2Nyb2xsU3RlcCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy51cGRhdGVFZGdlcygpLCAzMDApO1xuICB9XG5cbiAgZHJhZ2dpbmcgPSBmYWxzZTtcbiAgZHJhZ0hvdHNwb3QoZXZlbnQ6IGFueSwgc3BvdDogYW55KSB7XG4gICAgY29uc3QgZWxlbWVudCA9IGV2ZW50LnNvdXJjZS5nZXRSb290RWxlbWVudCgpO1xuICAgIGNvbnN0IHBhcmVudCA9IGVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICBjb25zdCByZWN0ID0gcGFyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgY29uc3QgcG9pbnRlciA9IGV2ZW50LnBvaW50ZXJQb3NpdGlvbjtcblxuICAgIGxldCB4ID0gKChwb2ludGVyLnggLSByZWN0LmxlZnQpIC8gcmVjdC53aWR0aCkgKiAxMDA7XG4gICAgbGV0IHkgPSAoKHBvaW50ZXIueSAtIHJlY3QudG9wKSAvIHJlY3QuaGVpZ2h0KSAqIDEwMDtcblxuICAgIHNwb3QueCA9IE1hdGgubWF4KDAsIE1hdGgubWluKDEwMCwgeCkpO1xuICAgIHNwb3QueSA9IE1hdGgubWF4KDAsIE1hdGgubWluKDEwMCwgeSkpO1xuXG4gICAgZXZlbnQuc291cmNlLl9kcmFnUmVmLnJlc2V0KCk7XG4gIH1cblxuICBvcGVuZWRIb3RzcG90SWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICB0b2dnbGVIb3RzcG90KGV2ZW50OiBNb3VzZUV2ZW50LCBzcG90OiBhbnkpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAodGhpcy5vcGVuZWRIb3RzcG90SWQgPT09IHNwb3QuaWQpIHtcbiAgICAgIHRoaXMub3BlbmVkSG90c3BvdElkID0gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGVuZWRIb3RzcG90SWQgPSBzcG90LmlkO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJylcbiAgY2xvc2VIb3RzcG90KCkge1xuICAgIHRoaXMub3BlbmVkSG90c3BvdElkID0gbnVsbDtcbiAgfVxuXG59XG5cbiIsIjxzZWN0aW9uIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0JhY2tncm91bmRdPVwic3R5bGU/LmJhY2tncm91bmRcIiBzaW1wb0hvdmVyIChob3ZlcmluZyk9XCJzaG93RWRpdFRhYnMoJGV2ZW50KVwiXG4gICAgY2xhc3M9XCJ0b3RhbC1jb250YWluZXJcIiBbYXR0ci5zdHlsZV09XCJjdXN0b21DbGFzc1wiPlxuICAgIDxkaXYgI21haW5Db250YWluZXIgW2lkXT1cImRhdGE/LmlkXCIgW3NpbXBvT3ZlcmxheV09XCJzdHlsZT8uYmFja2dyb3VuZFwiIFtzcGFjaW5nSG9yaXpvbnRhbF09XCJzdHlsZXNMYXlvdXRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0JvcmRlcl09XCJzdHlsZT8uYm9yZGVyXCIgW3NpbXBvTGF5b3V0XT1cInN0eWxlPy5sYXlvdXRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9BbmltYXRpb25dPVwic3R5bGU/LmFuaW1hdGlvblwiXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwic3R5bGU/LmZ1bGxXaWR0aCA/IHsncGFkZGluZyc6ICcwcHgnfSA6IHt9XCI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgdGV4dCBvZiBkYXRhPy5jb250ZW50Py5pbnB1dFRleHQ7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbGFyZ2UgY29udGVudC1zaWRlXCIgW3NpbXBvQ29udGVudFRpdGxlU3BhY2VdPVwiaGVhZGluZ1NwYWNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWRpdCB8fCAgKHRleHQudmFsdWUgJiYgdGV4dC52YWx1ZS5sZW5ndGggPiAwKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzaW1wby10ZXh0LWVkaXRvciBbKHZhbHVlKV09XCJ0ZXh0LnZhbHVlXCIgW2VkaXRhYmxlXT1cImVkaXQgfHwgZmFsc2VcIiBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCIgW2lucHV0VGV4dEluZGV4XT1cImlcIiBbaXNSVEVdPVwidGV4dC5pc1JURVwiPjwvc2ltcG8tdGV4dC1lZGl0b3I+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3R5bGU/LmdyaWRTdHlsZSA9PSAnU3R5bGUxJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2Nyb2xsLWJ0biBsZWZ0IHAtMCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzdHlsZT8uZGlyZWN0aW9uID09PSAnUk9XJyAmJiBpc092ZXJmbG93aW5nXCIgKGNsaWNrKT1cInNjcm9sbExlZnQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYXRTdGFydFwiPjxtYXQtaWNvbj5rZXlib2FyZF9hcnJvd19sZWZ0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYWluLWltYWdlLXNlY3Rpb24gZC1mbGV4IHBvc2l0aW9uLXJlbGF0aXZlXCIgW2NsYXNzLnJvd109XCJzdHlsZT8uZGlyZWN0aW9uID09ICdST1cnIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Mud3JhcC1zY3JvbGxdPVwic3R5bGU/LmRpcmVjdGlvbiA9PSAnUk9XJ1wiIFtjbGFzcy5mbGV4LXdyYXBdPVwic3R5bGU/LmRpcmVjdGlvbiA9PSAnQ09MVU1OJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZGF0YT8uaWRcIiAjaW1hZ2VncmlkIFtzdHlsZS5qdXN0aWZ5Q29udGVudF09XCJnZXRKdXN0aWZ5Q29udGVudCgpXCIgKHNjcm9sbCk9XCJvblNjcm9sbCgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2Utc2VjdGlvbiBwLTNcIiAqbmdGb3I9XCJsZXQgaW1nIG9mIGNvbnRlbnQ/Lmxpc3RJdGVtPy5kYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2ltcG9Db2x1bW5EaXJlY3RpdmVdPVwic3R5bGU/LnNpemVcIiBbaWRdPVwiZGF0YT8uaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN0eWxlXT1cInN0eWxlPy5yZW1vdmVHYXBzID8gJ3BhZGRpbmc6IDBweCAhaW1wb3J0YW50OyBtYXJnaW46IDBweCAhaW1wb3J0YW50OycgOiB7fVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZS1ob3RzcG90LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBsb2FkaW5nPVwibGF6eVwiIFtzaW1wb0ltYWdlRGlyZWN0aXZlXT1cInN0eWxlPy5pbWFnZVwiIFtzaW1wb0Nvcm5lcl09XCJzdHlsZT8uY29ybmVyc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZGF0YT8uaWRcIiBbY2xhc3NdPVwiZGF0YT8uaWQraW1nLmltYWdlLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaW1wb09iamVjdFBvc2l0aW9uXT1cImltZy5pbWFnZS5wb3NpdGlvblwiIFtzcmNdPVwiaW1nLmltYWdlLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWx0XT1cImltZy5pbWFnZS5hbHRUZXh0XCIgbG9hZGluZz1cImxhenlcIiBjbGFzcz1cInctMTAwXCIgLz5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW1nLmhvdHNwb3RzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBzcG90IG9mIGltZy5ob3RzcG90c1wiIGNsYXNzPVwiaG90c3BvdC1kb3Qgc2hpbW1lci1kb3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LiVdPVwic3BvdC54XCIgW3N0eWxlLnRvcC4lXT1cInNwb3QueVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRdPVwic3R5bGU/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yIHx8ICd3aGl0ZSdcIiBjZGtEcmFnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2RrRHJhZ0JvdW5kYXJ5PVwiLmltYWdlLWhvdHNwb3Qtd3JhcHBlclwiIFtjZGtEcmFnRGlzYWJsZWRdPVwiIWVkaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjZGtEcmFnTW92ZWQpPVwiZHJhZ0hvdHNwb3QoJGV2ZW50LCBzcG90KVwiIChjZGtEcmFnU3RhcnRlZCk9XCJkcmFnZ2luZyA9IHRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjZGtEcmFnRW5kZWQpPVwiZHJhZ2dpbmcgPSBmYWxzZVwiIChtb3VzZWVudGVyKT1cInRvZ2dsZUhvdHNwb3QoJGV2ZW50LCBzcG90KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwidG9nZ2xlSG90c3BvdCgkZXZlbnQsIHNwb3QpXCI+XG5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJob3RzcG90LXBvcHVwIHBvc2l0aW9uLXJlbGF0aXZlXCIgW3N0eWxlLmxlZnQuJV09XCJzcG90LnggKyAzMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS50b3AuJV09XCJzcG90LnlcIiAqbmdJZj1cIm9wZW5lZEhvdHNwb3RJZCA9PT0gc3BvdC5pZCAmJiAhZHJhZ2dpbmdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWNhcmQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltZ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJzcG90LmltZ1wiIFtzcmNdPVwic3BvdC5pbWdcIiBhbHQ9XCJIb3RzcG90IEltYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJob3RzcG90LWltYWdlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1zdGFydFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZSB0ZXh0LXN0YXJ0XCI+e3sgc3BvdC50aXRsZSB8fCAnVGl0bGUnIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgKm5nSWY9XCJzcG90LmxpbmtcIiBbaHJlZl09XCJzcG90LmxpbmtcIiB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHNwb3QubGlua1RleHQgfHwgJ29wZW4gbGluaycgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzY3JvbGwtYnRuIHJpZ2h0IHAtMCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzdHlsZT8uZGlyZWN0aW9uID09PSAnUk9XJyAmJiBpc092ZXJmbG93aW5nXCIgKGNsaWNrKT1cInNjcm9sbFJpZ2h0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImF0RW5kXCI+PG1hdC1pY29uPmtleWJvYXJkX2Fycm93X3JpZ2h0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdHlsZT8uZ3JpZFN0eWxlID09ICdTdHlsZTInXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGgtMTAwXCIgW2NsYXNzLnJlbW92ZS1nYXBdPVwic3R5bGU/LnJlbW92ZUdhcHNcIiBbY2xhc3MucC0wXT1cInN0eWxlPy5mdWxsV2lkdGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGltZyBvZiBjb250ZW50Py5saXN0SXRlbT8uZGF0YTsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZS1ob3RzcG90LXdyYXBwZXIgaC0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBsb2FkaW5nPVwibGF6eVwiIFtzaW1wb0ltYWdlRGlyZWN0aXZlXT1cInN0eWxlPy5pbWFnZVwiIFtzaW1wb0Nvcm5lcl09XCJzdHlsZT8uY29ybmVyc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZGF0YT8uaWRcIiBbY2xhc3NdPVwiZGF0YT8uaWQraW1nLmltYWdlLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaW1wb09iamVjdFBvc2l0aW9uXT1cImltZy5pbWFnZS5wb3NpdGlvblwiIFtzcmNdPVwiaW1nLmltYWdlLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWx0XT1cImltZy5pbWFnZS5hbHRUZXh0XCIgbG9hZGluZz1cImxhenlcIiBbYXBwSW1hZ2VFZGl0b3JdPVwiZWRpdCB8fCBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW1hZ2VEYXRhXT1cImltZz8uaW1hZ2VcIiBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCIgW2l0ZW1JbmRleF09XCJpXCIgY2xhc3M9XCJ3LTEwMCBoLTEwMFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbWcuaG90c3BvdHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHNwb3Qgb2YgaW1nLmhvdHNwb3RzXCIgY2xhc3M9XCJob3RzcG90LWRvdCBzaGltbWVyLWRvdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQuJV09XCJzcG90LnhcIiBbc3R5bGUudG9wLiVdPVwic3BvdC55XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZF09XCJzdHlsZT8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3IgfHwgJ3doaXRlJ1wiIGNka0RyYWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZGtEcmFnQm91bmRhcnk9XCIuaW1hZ2UtaG90c3BvdC13cmFwcGVyXCIgW2Nka0RyYWdEaXNhYmxlZF09XCIhZWRpdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNka0RyYWdNb3ZlZCk9XCJkcmFnSG90c3BvdCgkZXZlbnQsIHNwb3QpXCIgKGNka0RyYWdTdGFydGVkKT1cImRyYWdnaW5nID0gdHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNka0RyYWdFbmRlZCk9XCJkcmFnZ2luZyA9IGZhbHNlXCIgKG1vdXNlZW50ZXIpPVwidG9nZ2xlSG90c3BvdCgkZXZlbnQsIHNwb3QpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJ0b2dnbGVIb3RzcG90KCRldmVudCwgc3BvdClcIj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJob3RzcG90LXBvcHVwIHBvc2l0aW9uLXJlbGF0aXZlXCIgW3N0eWxlLmxlZnQuJV09XCJzcG90LnggKyAzMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS50b3AuJV09XCJzcG90LnlcIiAqbmdJZj1cIm9wZW5lZEhvdHNwb3RJZCA9PT0gc3BvdC5pZCAmJiAhZHJhZ2dpbmdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWNhcmQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltZ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJzcG90LmltZ1wiIFtzcmNdPVwic3BvdC5pbWdcIiBhbHQ9XCJIb3RzcG90IEltYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJob3RzcG90LWltYWdlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1zdGFydFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZSB0ZXh0LXN0YXJ0XCI+e3sgc3BvdC50aXRsZSB8fCAnVGl0bGUnIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgKm5nSWY9XCJzcG90LmxpbmtcIiBbaHJlZl09XCJzcG90LmxpbmtcIiB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHNwb3QubGlua1RleHQgfHwgJ29wZW4gbGluaycgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0eWxlPy5kZXZpZGVyPy5kaXNwbGF5XCI+XG4gICAgICAgIDxzaW1wby1zdmctZGl2aWRlciBbZGl2aWRlclR5cGVdPVwic3R5bGU/LmRldmlkZXI/LmRldmlkZXJUeXBlXCJcbiAgICAgICAgICAgIFtjb2xvcl09XCJuZXh0Q29tcG9uZW50Q29sb3I/LmNvbG9yXCI+PC9zaW1wby1zdmctZGl2aWRlcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZWRpdH1cIiAqbmdJZj1cInNob3dFZGl0b3JzXCI+XG4gICAgICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIj48L3NpbXBvLWhvdmVyLWVsZW1lbnRzPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJzaG93RGVsZXRlXCIgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBkZWxldGV9XCI+XG4gICAgICAgIDxzaW1wby1kZWxldGUtaG92ZXItZWxlbWVudCBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCI+PC9zaW1wby1kZWxldGUtaG92ZXItZWxlbWVudD5cbiAgICA8L2Rpdj5cbjwvc2VjdGlvbj4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZ3JpZC1ob3RzcG90Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZWN0aW9ucy9pbWFnZS1ncmlkLWhvdHNwb3QvaW1hZ2UtZ3JpZC1ob3RzcG90Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JuZXJzIH0gZnJvbSBcIi4vLi4vLi4vc3R5bGVzL2luZGV4XCI7XG5pbXBvcnQgeyBJbWFnZSwgSW1hZ2VTdHlsZSwgSW5wdXRUZXh0TW9kZWwsIExpc3RJdGVtTW9kYWwsIFN0eWxlc01vZGVsIH0gZnJvbSBcIi4vLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsXCI7XG5pbXBvcnQgeyBDQVJEX1NJWkUsIEdSSURfU1RZTEUgfSBmcm9tIFwiLi8uLi8uLi9zdHlsZXMvdHlwZXNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJbWFnZUdyaWRIb3RTcG90U2VjdGlvbk1vZGVsIHtcbiAgICBpZDogc3RyaW5nLFxuICAgIHNlY3Rpb25UeXBlOiBzdHJpbmcsXG4gICAgc2VjdGlvbk5hbWU6IHN0cmluZyxcbiAgICBjb250ZW50OiBJbWFnZUdyaWRIb3RTcG90Q29udGVudE1vZGFsO1xuICAgIHN0eWxlczogSW1hZ2VHcmlkSG90U3BvdFN0eWxlc01vZGVsO1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VHcmlkSG90U3BvdENvbnRlbnRNb2RhbCB7XG4gICAgaW5wdXRUZXh0OiBbSW5wdXRUZXh0TW9kZWxdLFxuICAgIGxpc3RJdGVtOiBMaXN0SXRlbU1vZGFsPEltYWdlR3JpZEl0ZW1Nb2RlbD5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbWFnZUdyaWRIb3RTcG90U3R5bGVzTW9kZWwgZXh0ZW5kcyBTdHlsZXNNb2RlbCB7XG4gICAgY29ybmVyczogQ29ybmVycztcbiAgICBpbWFnZTogSW1hZ2VTdHlsZTtcbiAgICByZW1vdmVHYXBzOiBib29sZWFuO1xuICAgIGZ1bGxXaWR0aDogYm9vbGVhbjtcbiAgICBzaXplOiBDQVJEX1NJWkU7XG4gICAgZ3JpZFN0eWxlOiBHUklEX1NUWUxFLFxuICAgIGRpcmVjdGlvbjogXCJST1dcIiB8IFwiQ09MVU1OXCJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbWFnZUdyaWRJdGVtTW9kZWwge1xuICAgIGltYWdlOiBJbWFnZTtcbiAgICBob3RzcG90czogSG90c3BvdE1vZGVsW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSG90c3BvdE1vZGVsIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIHg6IG51bWJlcjtcbiAgICB5OiBudW1iZXI7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBsaW5rOiBzdHJpbmc7XG4gICAgbGlua1RleHQ6IHN0cmluZztcbiAgICBpbWc6IHN0cmluZztcbn1cbiJdfQ==
|