simpo-component-library 3.6.929 → 3.6.931
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/authenticate-user/authenticate-user.component.mjs +17 -13
- package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.component.mjs +22 -14
- package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.model.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/book-appointment/book-appointment.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/book-appointment/book-appointment.model.mjs +1 -1
- 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-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 +2 -2
- package/esm2022/lib/ecommerce/sections/featured-products/featured-products.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/product-desc/product-desc.component.mjs +10 -7
- package/esm2022/lib/ecommerce/sections/product-desc/product-desc.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/product-list/product-list.component.mjs +16 -15
- 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 +3 -3
- 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/schedule-video-call/schedule-video-call.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/appointment-form/appointment-form.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/blog-list/blog-list.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/recent-blog-post-section/recent-blog-post-section.component.mjs +3 -3
- 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.component.mjs +2 -2
- package/esm2022/lib/sections/video-grid-section/video-grid-section.model.mjs +1 -1
- package/esm2022/lib/sections/video-showcase/video-showcase.component.mjs +4 -4
- package/esm2022/lib/sections/view-blog/view-blog.component.mjs +3 -3
- package/esm2022/lib/services/analytics.service.mjs +54 -6
- package/esm2022/lib/services/cart.service.mjs +28 -35
- package/esm2022/lib/services/sanitizeHtml.mjs +1 -1
- package/esm2022/lib/services/storage.service.mjs +15 -1
- 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 +1 -1
- package/fesm2022/simpo-component-library.mjs +432 -362
- package/fesm2022/simpo-component-library.mjs.map +1 -1
- package/lib/components/input-fields/input-fields.component.d.ts +1 -1
- package/lib/ecommerce/sections/authenticate-user/authenticate-user.component.d.ts +4 -2
- package/lib/ecommerce/sections/authentication-required/authentication-required.component.d.ts +5 -3
- package/lib/ecommerce/sections/product-desc/product-desc.component.d.ts +1 -1
- package/lib/ecommerce/sections/product-list/product-list.component.d.ts +3 -1
- package/lib/ecommerce/sections/schemes/schemes.component.d.ts +1 -1
- package/lib/sections/banner-carousel/banner-carousel.component.d.ts +2 -2
- package/lib/sections/carousel-banner/carousel-banner.component.d.ts +1 -1
- package/lib/sections/contact-us/contact-us.component.d.ts +1 -1
- package/lib/sections/faq-columns-cards/faq-columns-cards.component.d.ts +1 -1
- package/lib/sections/faq-section/faq-section.component.d.ts +1 -1
- package/lib/sections/image-section/image-section.component.d.ts +2 -2
- package/lib/sections/logo-showcase/logo-showcase.component.d.ts +2 -2
- package/lib/sections/new-testimonials/new-testimonials.component.d.ts +1 -1
- package/lib/sections/pricing-section/pricing-section.component.d.ts +2 -2
- package/lib/services/analytics.service.d.ts +13 -0
- package/lib/services/cart.service.d.ts +5 -7
- package/lib/services/storage.service.d.ts +6 -0
- package/package.json +1 -1
- package/simpo-component-library-3.6.931.tgz +0 -0
- package/simpo-component-library-3.6.929.tgz +0 -0
|
@@ -222,7 +222,7 @@ export class WhislistComponent extends BaseSection {
|
|
|
222
222
|
this.router.navigate(['/details', slug]);
|
|
223
223
|
}
|
|
224
224
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WhislistComponent, deps: [{ token: i1.CartService }, { token: i2.EventsService }, { token: i3.StorageServiceService }, { token: i4.RestService }, { token: i5.MessageService }, { token: i6.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
225
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: WhislistComponent, isStandalone: true, selector: "simpo-whislist", inputs: { responseData: "responseData", data: "data", index: "index", edit: "edit", delete: "delete", customClass: "customClass" }, providers: [MessageService], usesInheritance: true, ngImport: i0, template: "<p-toast position=\"bottom-right\" [baseZIndex]=\"10000000000\" [autoZIndex]=\"true\"\r\n [showTransformOptions]=\"isMobile ? 'translateY(-100%)' : ''\"></p-toast>\r\n\r\n<ng-container *ngIf=\"!isLoading\">\r\n <section class=\"total-container\" [id]=\"data?.id\" [simpoBackground]=\"styles?.background\" simpoHover\r\n (hovering)=\"showEditTabs($event)\" [attr.style]=\"customClass\">\r\n\r\n <div class=\"wishlist-wrapper\" [simpoOverlay]=\"styles?.background\" [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\">\r\n\r\n <div class=\"container container-custom\" *ngIf=\"(responseData?.orderedItems?.length || 0) > 0\" [id]=\"data?.id\"\r\n [simpoAnimation]=\"styles?.animation\">\r\n\r\n <div class=\"wishlist-header\">\r\n <h1 class=\"wishlist-title\">\r\n Your Wishlist <span class=\"item-count\">({{responseData?.orderedItems?.length}} Items)</span>\r\n </h1>\r\n </div>\r\n\r\n <div class=\"wishlist-items-container\">\r\n <ng-container *ngFor=\"let item of responseData?.orderedItems; let idx = index\">\r\n <div class=\"wishlist-item-row\" [ngClass]=\"{ 'single-item': responseData?.orderedItems?.length === 1 }\">\r\n\r\n <div class=\"item-left\">\r\n <div class=\"item-image\" (click)=\"redirectToProduct(item)\">\r\n <img loading=\"lazy\" [src]=\"item.imgUrl ?? 'https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\"\r\n onerror=\"this.src='https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\" class=\"product-image\"\r\n alt=\"{{item.itemName}}\">\r\n </div>\r\n\r\n <div class=\"item-details\">\r\n <h3 class=\"product-name\" (click)=\"redirectToProduct(item)\">\r\n {{item.itemName}}\r\n </h3>\r\n\r\n <div class=\"variants-box\" *ngIf=\"item.itemVariant\">\r\n <div class=\"variant-item\" *ngFor=\"let variant of getKeys(item.itemVariant.properties)\">\r\n <span class=\"variant-value\">{{ item.itemVariant.properties[variant] | titlecase }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"item-right\">\r\n <div class=\"quantity-control-wrapper\">\r\n <div class=\"quantity-control\" *ngIf=\"item.quantity\">\r\n <button class=\"qty-btn\" (click)=\"addToFav(item, 'SUBSTRACT')\">\r\n <mat-icon>remove</mat-icon>\r\n </button>\r\n <span class=\"qty-value px-3\">{{item.quantity}}</span>\r\n <button class=\"qty-btn\" (click)=\"addToFav(item, 'ADD')\">\r\n <mat-icon>add</mat-icon>\r\n </button>\r\n </div>\r\n <div class=\"add-qty-trigger\" *ngIf=\"!item.quantity\" (click)=\"addToFav(item, 'ADD')\">\r\n Add Quantity\r\n </div>\r\n </div>\r\n\r\n <div class=\"price-section\">\r\n <div class=\"product-price\">\r\n <span class=\"currency\" [innerHTML]=\"currency\"></span>\r\n <span class=\"amount\">{{item.discountedPrice ?? item.sellingPrice}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"actions-group\">\r\n <div class=\"action-btn move-to-cart-svg\" (click)=\"moveToCart(item)\" pTooltip=\"Move to Cart\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\r\n class=\"lucide lucide-shopping-cart\">\r\n <circle cx=\"8\" cy=\"21\" r=\"1\" />\r\n <circle cx=\"19\" cy=\"21\" r=\"1\" />\r\n <path d=\"M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12\" />\r\n </svg>\r\n </div>\r\n\r\n <div class=\"delete-btn-circle\" (click)=\"deleteFromWhislist(item)\" pTooltip=\"Remove\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\r\n stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-trash-2\">\r\n <path d=\"M3 6h18\" />\r\n <path d=\"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6\" />\r\n <path d=\"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2\" />\r\n <line x1=\"10\" x2=\"10\" y1=\"11\" y2=\"17\" />\r\n <line x1=\"14\" x2=\"14\" y1=\"11\" y2=\"17\" />\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <!-- Empty Wishlist State -->\r\n <section class=\"empty-wishlist\" *ngIf=\"(responseData?.orderedItems?.length || 0) == 0\">\r\n <div class=\"empty-container\">\r\n <div class=\"empty-icon-wrapper\">\r\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/107213c1716543334040empty-cart.png\"\r\n alt=\"Empty Wishlist\" class=\"empty-img\">\r\n </div>\r\n <div class=\"empty-content\">\r\n <h2 class=\"empty-title\" [style.color]=\"styles?.background?.accentColor\">Your Wishlist is Empty</h2>\r\n <p class=\"empty-desc\" [style.color]=\"styles?.background?.accentColor\">\r\n Seems like you haven't discovered your favorites yet. Explore our top collections and add what you love!\r\n </p>\r\n <!-- <button class=\"explore-btn\" (click)=\"redirectToProduct({itemId: '', varientId: ''})\">Explore Now</button> -->\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n\r\n <!-- Editors -->\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\r\n </section>\r\n</ng-container>\r\n\r\n<ngx-skeleton-loader *ngIf=\"isLoading\" count=\"1\" appearance=\"circle\" [theme]=\"{\r\n width: '100%',\r\n height: '40vh',\r\n 'border-radius': '10px',\r\n 'position': 'relative'\r\n}\"></ngx-skeleton-loader>", styles: [":host{--wishlist-bg: #f8fafc;--wishlist-card-bg: #ffffff;--wishlist-border: #e2e8f0;--wishlist-text-main: #0f172a;--wishlist-text-muted: #64748b;--wishlist-accent: var(--accent-color, #1e293b);--wishlist-danger: #ef4444;--wishlist-transition: all .2s cubic-bezier(.4, 0, .2, 1);font-family:var(--website-font-family, \"Inter\", -apple-system, sans-serif)}.total-container{min-height:75vh;background:var(--wishlist-bg)}.wishlist-header{margin-bottom:24px}.wishlist-title{font-size:24px;font-weight:700;color:var(--wishlist-text-main);margin:0;letter-spacing:-.02em}.item-count{font-size:14px;font-weight:500;color:var(--wishlist-text-muted);margin-left:8px}.wishlist-items-container{background:var(--wishlist-card-bg);border:1px solid var(--wishlist-border);border-radius:12px;box-shadow:0 1px 3px #00000005;overflow:hidden}.wishlist-header-row{display:flex;padding:16px 24px;background:#fff;border-bottom:1px solid var(--wishlist-border);font-size:16px;font-weight:600;color:var(--wishlist-text-main)}.wishlist-item-row{display:flex;align-items:center;padding:14px;border-bottom:1px solid #f1f5f9;transition:var(--wishlist-transition)}.wishlist-item-row:hover{background:#fbfcfe}.wishlist-item-row:last-child{border-bottom:none}.item-left{display:flex;align-items:center;flex:2;gap:20px}.item-image{width:80px;height:80px;flex-shrink:0;border-radius:12px;overflow:hidden;cursor:pointer;background:#f8fafc;border:1px solid #f1f5f9}.product-image{width:100%;height:100%;object-fit:cover}.item-details{display:flex;flex-direction:column;gap:6px}.product-name{font-size:14px;font-weight:600;color:var(--wishlist-text-main);margin:0;cursor:pointer;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.variants-box{display:flex;flex-wrap:wrap;gap:8px}.variant-value{font-size:14px;color:var(--wishlist-text-muted);font-weight:400}.item-right{display:flex;align-items:center;flex:2;gap:40px;justify-content:flex-end}.quantity-control-wrapper{flex:1;display:flex;justify-content:center}.quantity-control{display:flex;align-items:center;border:1px solid var(--wishlist-border);border-radius:8px;background:#fff;height:36px;overflow:hidden}.qty-btn{width:40px;height:100%;background:none;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--wishlist-text-main);transition:var(--wishlist-transition)}.qty-btn:hover{background:#f8fafc}.qty-btn mat-icon{font-size:18px;width:18px;height:18px}.qty-value{width:36px;text-align:center;font-size:15px;font-weight:600;color:var(--wishlist-text-main);border-left:1px solid var(--wishlist-border);border-right:1px solid var(--wishlist-border);height:100%;display:flex;align-items:center;justify-content:center}.add-qty-trigger{padding:8px 16px;border:1px solid var(--wishlist-border);border-radius:8px;font-size:13px;font-weight:600;color:var(--wishlist-text-main);cursor:pointer;transition:var(--wishlist-transition)}.add-qty-trigger:hover{background:#f8fafc}.price-section{min-width:100px;text-align:right}.product-price{font-size:18px;font-weight:700;color:var(--wishlist-text-main)}.currency{font-size:16px;margin-right:2px}.actions-group{display:flex;align-items:center;gap:16px}.action-btn{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--wishlist-transition)}.move-to-cart-svg{background:#f1f5f9;color:var(--wishlist-text-main);border:1px solid transparent}.move-to-cart-svg:hover{background:#e2e8f0;transform:translateY(-2px)}.delete-btn-circle{width:40px;height:40px;border-radius:50%;border:1px solid #fee2e2;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--wishlist-danger);transition:var(--wishlist-transition)}.delete-btn-circle:hover{background:#fef2f2;border-color:#fecaca;transform:translateY(-2px)}.delete-btn-circle svg,.move-to-cart-svg svg{width:20px;height:20px}.empty-wishlist{padding:100px 0;text-align:center}.empty-container{max-width:400px;margin:0 auto}.empty-img{width:200px;margin-bottom:32px;opacity:.9}.empty-title{font-size:24px;font-weight:700;color:var(--wishlist-text-main);margin-bottom:12px}.empty-desc{font-size:16px;color:var(--wishlist-text-muted);line-height:1.6}@media (max-width: 900px){.wishlist-item-row{flex-direction:column;align-items:stretch;gap:20px}.item-right{justify-content:space-between;width:100%;flex:auto}}@media (max-width: 600px){.item-left{gap:12px}.item-image{width:80px;height:80px}.product-name{font-size:15px}.item-right{flex-wrap:wrap;gap:16px}.quantity-control-wrapper{order:2;justify-content:flex-start}.price-section{order:1;min-width:0}.actions-group{order:3;width:100%;justify-content:flex-end}}\n"], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i7.HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: i8.DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "component", type: i9.NgxSkeletonLoaderComponent, selector: "ngx-skeleton-loader", inputs: ["count", "loadingText", "appearance", "animation", "ariaLabel", "theme"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i10.TitleCasePipe, name: "titlecase" }, { kind: "directive", type:
|
|
225
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: WhislistComponent, isStandalone: true, selector: "simpo-whislist", inputs: { responseData: "responseData", data: "data", index: "index", edit: "edit", delete: "delete", customClass: "customClass" }, providers: [MessageService], usesInheritance: true, ngImport: i0, template: "<p-toast position=\"bottom-right\" [baseZIndex]=\"10000000000\" [autoZIndex]=\"true\"\n [showTransformOptions]=\"isMobile ? 'translateY(-100%)' : ''\"></p-toast>\n\n<ng-container *ngIf=\"!isLoading\">\n <section class=\"total-container\" [id]=\"data?.id\" [simpoBackground]=\"styles?.background\" simpoHover\n (hovering)=\"showEditTabs($event)\" [attr.style]=\"customClass\">\n\n <div class=\"wishlist-wrapper\" [simpoOverlay]=\"styles?.background\" [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\">\n\n <div class=\"container container-custom\" *ngIf=\"(responseData?.orderedItems?.length || 0) > 0\" [id]=\"data?.id\"\n [simpoAnimation]=\"styles?.animation\">\n\n <div class=\"wishlist-header\">\n <h1 class=\"wishlist-title\">\n Your Wishlist <span class=\"item-count\">({{responseData?.orderedItems?.length}} Items)</span>\n </h1>\n </div>\n\n <div class=\"wishlist-items-container\">\n <ng-container *ngFor=\"let item of responseData?.orderedItems; let idx = index\">\n <div class=\"wishlist-item-row\" [ngClass]=\"{ 'single-item': responseData?.orderedItems?.length === 1 }\">\n\n <div class=\"item-left\">\n <div class=\"item-image\" (click)=\"redirectToProduct(item)\">\n <img loading=\"lazy\" [src]=\"item.imgUrl ?? 'https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\"\n onerror=\"this.src='https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\" class=\"product-image\"\n alt=\"{{item.itemName}}\">\n </div>\n\n <div class=\"item-details\">\n <h3 class=\"product-name\" (click)=\"redirectToProduct(item)\">\n {{item.itemName}}\n </h3>\n\n <div class=\"variants-box\" *ngIf=\"item.itemVariant\">\n <div class=\"variant-item\" *ngFor=\"let variant of getKeys(item.itemVariant.properties)\">\n <span class=\"variant-value\">{{ item.itemVariant.properties[variant] | titlecase }}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"item-right\">\n <div class=\"quantity-control-wrapper\">\n <div class=\"quantity-control\" *ngIf=\"item.quantity\">\n <button class=\"qty-btn\" (click)=\"addToFav(item, 'SUBSTRACT')\">\n <mat-icon>remove</mat-icon>\n </button>\n <span class=\"qty-value px-3\">{{item.quantity}}</span>\n <button class=\"qty-btn\" (click)=\"addToFav(item, 'ADD')\">\n <mat-icon>add</mat-icon>\n </button>\n </div>\n <div class=\"add-qty-trigger\" *ngIf=\"!item.quantity\" (click)=\"addToFav(item, 'ADD')\">\n Add Quantity\n </div>\n </div>\n\n <div class=\"price-section\">\n <div class=\"product-price\">\n <span class=\"currency\" [innerHTML]=\"currency\"></span>\n <span class=\"amount\">{{item.discountedPrice ?? item.sellingPrice}}</span>\n </div>\n </div>\n\n <div class=\"actions-group\">\n <div class=\"action-btn move-to-cart-svg\" (click)=\"moveToCart(item)\" pTooltip=\"Move to Cart\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\"\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\n class=\"lucide lucide-shopping-cart\">\n <circle cx=\"8\" cy=\"21\" r=\"1\" />\n <circle cx=\"19\" cy=\"21\" r=\"1\" />\n <path d=\"M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12\" />\n </svg>\n </div>\n\n <div class=\"delete-btn-circle\" (click)=\"deleteFromWhislist(item)\" pTooltip=\"Remove\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\n stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-trash-2\">\n <path d=\"M3 6h18\" />\n <path d=\"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6\" />\n <path d=\"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2\" />\n <line x1=\"10\" x2=\"10\" y1=\"11\" y2=\"17\" />\n <line x1=\"14\" x2=\"14\" y1=\"11\" y2=\"17\" />\n </svg>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n\n <!-- Empty Wishlist State -->\n <section class=\"empty-wishlist\" *ngIf=\"(responseData?.orderedItems?.length || 0) == 0\">\n <div class=\"empty-container\">\n <div class=\"empty-icon-wrapper\">\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/107213c1716543334040empty-cart.png\"\n alt=\"Empty Wishlist\" class=\"empty-img\">\n </div>\n <div class=\"empty-content\">\n <h2 class=\"empty-title\" [style.color]=\"styles?.background?.accentColor\">Your Wishlist is Empty</h2>\n <p class=\"empty-desc\" [style.color]=\"styles?.background?.accentColor\">\n Seems like you haven't discovered your favorites yet. Explore our top collections and add what you love!\n </p>\n <!-- <button class=\"explore-btn\" (click)=\"redirectToProduct({itemId: '', varientId: ''})\">Explore Now</button> -->\n </div>\n </div>\n </section>\n </div>\n\n <!-- Editors -->\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\n </section>\n</ng-container>\n\n<ngx-skeleton-loader *ngIf=\"isLoading\" count=\"1\" appearance=\"circle\" [theme]=\"{\n width: '100%',\n height: '40vh',\n 'border-radius': '10px',\n 'position': 'relative'\n}\"></ngx-skeleton-loader>", styles: [":host{--wishlist-bg: #f8fafc;--wishlist-card-bg: #ffffff;--wishlist-border: #e2e8f0;--wishlist-text-main: #0f172a;--wishlist-text-muted: #64748b;--wishlist-accent: var(--accent-color, #1e293b);--wishlist-danger: #ef4444;--wishlist-transition: all .2s cubic-bezier(.4, 0, .2, 1);font-family:var(--website-font-family, \"Inter\", -apple-system, sans-serif)}.total-container{min-height:75vh;background:var(--wishlist-bg)}.wishlist-header{margin-bottom:24px}.wishlist-title{font-size:24px;font-weight:700;color:var(--wishlist-text-main);margin:0;letter-spacing:-.02em}.item-count{font-size:14px;font-weight:500;color:var(--wishlist-text-muted);margin-left:8px}.wishlist-items-container{background:var(--wishlist-card-bg);border:1px solid var(--wishlist-border);border-radius:12px;box-shadow:0 1px 3px #00000005;overflow:hidden}.wishlist-header-row{display:flex;padding:16px 24px;background:#fff;border-bottom:1px solid var(--wishlist-border);font-size:16px;font-weight:600;color:var(--wishlist-text-main)}.wishlist-item-row{display:flex;align-items:center;padding:14px;border-bottom:1px solid #f1f5f9;transition:var(--wishlist-transition)}.wishlist-item-row:hover{background:#fbfcfe}.wishlist-item-row:last-child{border-bottom:none}.item-left{display:flex;align-items:center;flex:2;gap:20px}.item-image{width:80px;height:80px;flex-shrink:0;border-radius:12px;overflow:hidden;cursor:pointer;background:#f8fafc;border:1px solid #f1f5f9}.product-image{width:100%;height:100%;object-fit:cover}.item-details{display:flex;flex-direction:column;gap:6px}.product-name{font-size:14px;font-weight:600;color:var(--wishlist-text-main);margin:0;cursor:pointer;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.variants-box{display:flex;flex-wrap:wrap;gap:8px}.variant-value{font-size:14px;color:var(--wishlist-text-muted);font-weight:400}.item-right{display:flex;align-items:center;flex:2;gap:40px;justify-content:flex-end}.quantity-control-wrapper{flex:1;display:flex;justify-content:center}.quantity-control{display:flex;align-items:center;border:1px solid var(--wishlist-border);border-radius:8px;background:#fff;height:36px;overflow:hidden}.qty-btn{width:40px;height:100%;background:none;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--wishlist-text-main);transition:var(--wishlist-transition)}.qty-btn:hover{background:#f8fafc}.qty-btn mat-icon{font-size:18px;width:18px;height:18px}.qty-value{width:36px;text-align:center;font-size:15px;font-weight:600;color:var(--wishlist-text-main);border-left:1px solid var(--wishlist-border);border-right:1px solid var(--wishlist-border);height:100%;display:flex;align-items:center;justify-content:center}.add-qty-trigger{padding:8px 16px;border:1px solid var(--wishlist-border);border-radius:8px;font-size:13px;font-weight:600;color:var(--wishlist-text-main);cursor:pointer;transition:var(--wishlist-transition)}.add-qty-trigger:hover{background:#f8fafc}.price-section{min-width:100px;text-align:right}.product-price{font-size:18px;font-weight:700;color:var(--wishlist-text-main)}.currency{font-size:16px;margin-right:2px}.actions-group{display:flex;align-items:center;gap:16px}.action-btn{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--wishlist-transition)}.move-to-cart-svg{background:#f1f5f9;color:var(--wishlist-text-main);border:1px solid transparent}.move-to-cart-svg:hover{background:#e2e8f0;transform:translateY(-2px)}.delete-btn-circle{width:40px;height:40px;border-radius:50%;border:1px solid #fee2e2;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--wishlist-danger);transition:var(--wishlist-transition)}.delete-btn-circle:hover{background:#fef2f2;border-color:#fecaca;transform:translateY(-2px)}.delete-btn-circle svg,.move-to-cart-svg svg{width:20px;height:20px}.empty-wishlist{padding:100px 0;text-align:center}.empty-container{max-width:400px;margin:0 auto}.empty-img{width:200px;margin-bottom:32px;opacity:.9}.empty-title{font-size:24px;font-weight:700;color:var(--wishlist-text-main);margin-bottom:12px}.empty-desc{font-size:16px;color:var(--wishlist-text-muted);line-height:1.6}@media (max-width: 900px){.wishlist-item-row{flex-direction:column;align-items:stretch;gap:20px}.item-right{justify-content:space-between;width:100%;flex:auto}}@media (max-width: 600px){.item-left{gap:12px}.item-image{width:80px;height:80px}.product-name{font-size:15px}.item-right{flex-wrap:wrap;gap:16px}.quantity-control-wrapper{order:2;justify-content:flex-start}.price-section{order:1;min-width:0}.actions-group{order:3;width:100%;justify-content:flex-end}}\n"], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i7.HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: i8.DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "component", type: i9.NgxSkeletonLoaderComponent, selector: "ngx-skeleton-loader", inputs: ["count", "loadingText", "appearance", "animation", "ariaLabel", "theme"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i10.TitleCasePipe, name: "titlecase" }, { kind: "directive", type:
|
|
226
226
|
//DIRECTIVE
|
|
227
227
|
BackgroundDirective, selector: "[simpoBackground]", inputs: ["simpoBackground", "scrollValue"] }, { kind: "directive", type: AnimationDirective, selector: "[simpoAnimation]", inputs: ["simpoAnimation"] }, { kind: "directive", type: ContentFitDirective, selector: "[simpoLayout]", inputs: ["simpoLayout"] }, { kind: "directive", type: OverlayDirective, selector: "[simpoOverlay]", inputs: ["simpoOverlay"] }, { kind: "directive", type: HoverDirective, selector: "[simpoHover]", outputs: ["hovering"] }, { kind: "ngmodule", type: ToastModule }, { kind: "component", type: i11.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }] }); }
|
|
228
228
|
}
|
|
@@ -240,7 +240,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
240
240
|
OverlayDirective,
|
|
241
241
|
HoverDirective,
|
|
242
242
|
ToastModule
|
|
243
|
-
], providers: [MessageService], template: "<p-toast position=\"bottom-right\" [baseZIndex]=\"10000000000\" [autoZIndex]=\"true\"\r\n [showTransformOptions]=\"isMobile ? 'translateY(-100%)' : ''\"></p-toast>\r\n\r\n<ng-container *ngIf=\"!isLoading\">\r\n <section class=\"total-container\" [id]=\"data?.id\" [simpoBackground]=\"styles?.background\" simpoHover\r\n (hovering)=\"showEditTabs($event)\" [attr.style]=\"customClass\">\r\n\r\n <div class=\"wishlist-wrapper\" [simpoOverlay]=\"styles?.background\" [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\">\r\n\r\n <div class=\"container container-custom\" *ngIf=\"(responseData?.orderedItems?.length || 0) > 0\" [id]=\"data?.id\"\r\n [simpoAnimation]=\"styles?.animation\">\r\n\r\n <div class=\"wishlist-header\">\r\n <h1 class=\"wishlist-title\">\r\n Your Wishlist <span class=\"item-count\">({{responseData?.orderedItems?.length}} Items)</span>\r\n </h1>\r\n </div>\r\n\r\n <div class=\"wishlist-items-container\">\r\n <ng-container *ngFor=\"let item of responseData?.orderedItems; let idx = index\">\r\n <div class=\"wishlist-item-row\" [ngClass]=\"{ 'single-item': responseData?.orderedItems?.length === 1 }\">\r\n\r\n <div class=\"item-left\">\r\n <div class=\"item-image\" (click)=\"redirectToProduct(item)\">\r\n <img loading=\"lazy\" [src]=\"item.imgUrl ?? 'https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\"\r\n onerror=\"this.src='https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\" class=\"product-image\"\r\n alt=\"{{item.itemName}}\">\r\n </div>\r\n\r\n <div class=\"item-details\">\r\n <h3 class=\"product-name\" (click)=\"redirectToProduct(item)\">\r\n {{item.itemName}}\r\n </h3>\r\n\r\n <div class=\"variants-box\" *ngIf=\"item.itemVariant\">\r\n <div class=\"variant-item\" *ngFor=\"let variant of getKeys(item.itemVariant.properties)\">\r\n <span class=\"variant-value\">{{ item.itemVariant.properties[variant] | titlecase }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"item-right\">\r\n <div class=\"quantity-control-wrapper\">\r\n <div class=\"quantity-control\" *ngIf=\"item.quantity\">\r\n <button class=\"qty-btn\" (click)=\"addToFav(item, 'SUBSTRACT')\">\r\n <mat-icon>remove</mat-icon>\r\n </button>\r\n <span class=\"qty-value px-3\">{{item.quantity}}</span>\r\n <button class=\"qty-btn\" (click)=\"addToFav(item, 'ADD')\">\r\n <mat-icon>add</mat-icon>\r\n </button>\r\n </div>\r\n <div class=\"add-qty-trigger\" *ngIf=\"!item.quantity\" (click)=\"addToFav(item, 'ADD')\">\r\n Add Quantity\r\n </div>\r\n </div>\r\n\r\n <div class=\"price-section\">\r\n <div class=\"product-price\">\r\n <span class=\"currency\" [innerHTML]=\"currency\"></span>\r\n <span class=\"amount\">{{item.discountedPrice ?? item.sellingPrice}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"actions-group\">\r\n <div class=\"action-btn move-to-cart-svg\" (click)=\"moveToCart(item)\" pTooltip=\"Move to Cart\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\r\n class=\"lucide lucide-shopping-cart\">\r\n <circle cx=\"8\" cy=\"21\" r=\"1\" />\r\n <circle cx=\"19\" cy=\"21\" r=\"1\" />\r\n <path d=\"M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12\" />\r\n </svg>\r\n </div>\r\n\r\n <div class=\"delete-btn-circle\" (click)=\"deleteFromWhislist(item)\" pTooltip=\"Remove\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\r\n stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-trash-2\">\r\n <path d=\"M3 6h18\" />\r\n <path d=\"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6\" />\r\n <path d=\"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2\" />\r\n <line x1=\"10\" x2=\"10\" y1=\"11\" y2=\"17\" />\r\n <line x1=\"14\" x2=\"14\" y1=\"11\" y2=\"17\" />\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <!-- Empty Wishlist State -->\r\n <section class=\"empty-wishlist\" *ngIf=\"(responseData?.orderedItems?.length || 0) == 0\">\r\n <div class=\"empty-container\">\r\n <div class=\"empty-icon-wrapper\">\r\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/107213c1716543334040empty-cart.png\"\r\n alt=\"Empty Wishlist\" class=\"empty-img\">\r\n </div>\r\n <div class=\"empty-content\">\r\n <h2 class=\"empty-title\" [style.color]=\"styles?.background?.accentColor\">Your Wishlist is Empty</h2>\r\n <p class=\"empty-desc\" [style.color]=\"styles?.background?.accentColor\">\r\n Seems like you haven't discovered your favorites yet. Explore our top collections and add what you love!\r\n </p>\r\n <!-- <button class=\"explore-btn\" (click)=\"redirectToProduct({itemId: '', varientId: ''})\">Explore Now</button> -->\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n\r\n <!-- Editors -->\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\r\n </section>\r\n</ng-container>\r\n\r\n<ngx-skeleton-loader *ngIf=\"isLoading\" count=\"1\" appearance=\"circle\" [theme]=\"{\r\n width: '100%',\r\n height: '40vh',\r\n 'border-radius': '10px',\r\n 'position': 'relative'\r\n}\"></ngx-skeleton-loader>", styles: [":host{--wishlist-bg: #f8fafc;--wishlist-card-bg: #ffffff;--wishlist-border: #e2e8f0;--wishlist-text-main: #0f172a;--wishlist-text-muted: #64748b;--wishlist-accent: var(--accent-color, #1e293b);--wishlist-danger: #ef4444;--wishlist-transition: all .2s cubic-bezier(.4, 0, .2, 1);font-family:var(--website-font-family, \"Inter\", -apple-system, sans-serif)}.total-container{min-height:75vh;background:var(--wishlist-bg)}.wishlist-header{margin-bottom:24px}.wishlist-title{font-size:24px;font-weight:700;color:var(--wishlist-text-main);margin:0;letter-spacing:-.02em}.item-count{font-size:14px;font-weight:500;color:var(--wishlist-text-muted);margin-left:8px}.wishlist-items-container{background:var(--wishlist-card-bg);border:1px solid var(--wishlist-border);border-radius:12px;box-shadow:0 1px 3px #00000005;overflow:hidden}.wishlist-header-row{display:flex;padding:16px 24px;background:#fff;border-bottom:1px solid var(--wishlist-border);font-size:16px;font-weight:600;color:var(--wishlist-text-main)}.wishlist-item-row{display:flex;align-items:center;padding:14px;border-bottom:1px solid #f1f5f9;transition:var(--wishlist-transition)}.wishlist-item-row:hover{background:#fbfcfe}.wishlist-item-row:last-child{border-bottom:none}.item-left{display:flex;align-items:center;flex:2;gap:20px}.item-image{width:80px;height:80px;flex-shrink:0;border-radius:12px;overflow:hidden;cursor:pointer;background:#f8fafc;border:1px solid #f1f5f9}.product-image{width:100%;height:100%;object-fit:cover}.item-details{display:flex;flex-direction:column;gap:6px}.product-name{font-size:14px;font-weight:600;color:var(--wishlist-text-main);margin:0;cursor:pointer;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.variants-box{display:flex;flex-wrap:wrap;gap:8px}.variant-value{font-size:14px;color:var(--wishlist-text-muted);font-weight:400}.item-right{display:flex;align-items:center;flex:2;gap:40px;justify-content:flex-end}.quantity-control-wrapper{flex:1;display:flex;justify-content:center}.quantity-control{display:flex;align-items:center;border:1px solid var(--wishlist-border);border-radius:8px;background:#fff;height:36px;overflow:hidden}.qty-btn{width:40px;height:100%;background:none;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--wishlist-text-main);transition:var(--wishlist-transition)}.qty-btn:hover{background:#f8fafc}.qty-btn mat-icon{font-size:18px;width:18px;height:18px}.qty-value{width:36px;text-align:center;font-size:15px;font-weight:600;color:var(--wishlist-text-main);border-left:1px solid var(--wishlist-border);border-right:1px solid var(--wishlist-border);height:100%;display:flex;align-items:center;justify-content:center}.add-qty-trigger{padding:8px 16px;border:1px solid var(--wishlist-border);border-radius:8px;font-size:13px;font-weight:600;color:var(--wishlist-text-main);cursor:pointer;transition:var(--wishlist-transition)}.add-qty-trigger:hover{background:#f8fafc}.price-section{min-width:100px;text-align:right}.product-price{font-size:18px;font-weight:700;color:var(--wishlist-text-main)}.currency{font-size:16px;margin-right:2px}.actions-group{display:flex;align-items:center;gap:16px}.action-btn{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--wishlist-transition)}.move-to-cart-svg{background:#f1f5f9;color:var(--wishlist-text-main);border:1px solid transparent}.move-to-cart-svg:hover{background:#e2e8f0;transform:translateY(-2px)}.delete-btn-circle{width:40px;height:40px;border-radius:50%;border:1px solid #fee2e2;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--wishlist-danger);transition:var(--wishlist-transition)}.delete-btn-circle:hover{background:#fef2f2;border-color:#fecaca;transform:translateY(-2px)}.delete-btn-circle svg,.move-to-cart-svg svg{width:20px;height:20px}.empty-wishlist{padding:100px 0;text-align:center}.empty-container{max-width:400px;margin:0 auto}.empty-img{width:200px;margin-bottom:32px;opacity:.9}.empty-title{font-size:24px;font-weight:700;color:var(--wishlist-text-main);margin-bottom:12px}.empty-desc{font-size:16px;color:var(--wishlist-text-muted);line-height:1.6}@media (max-width: 900px){.wishlist-item-row{flex-direction:column;align-items:stretch;gap:20px}.item-right{justify-content:space-between;width:100%;flex:auto}}@media (max-width: 600px){.item-left{gap:12px}.item-image{width:80px;height:80px}.product-name{font-size:15px}.item-right{flex-wrap:wrap;gap:16px}.quantity-control-wrapper{order:2;justify-content:flex-start}.price-section{order:1;min-width:0}.actions-group{order:3;width:100%;justify-content:flex-end}}\n"] }]
|
|
243
|
+
], providers: [MessageService], template: "<p-toast position=\"bottom-right\" [baseZIndex]=\"10000000000\" [autoZIndex]=\"true\"\n [showTransformOptions]=\"isMobile ? 'translateY(-100%)' : ''\"></p-toast>\n\n<ng-container *ngIf=\"!isLoading\">\n <section class=\"total-container\" [id]=\"data?.id\" [simpoBackground]=\"styles?.background\" simpoHover\n (hovering)=\"showEditTabs($event)\" [attr.style]=\"customClass\">\n\n <div class=\"wishlist-wrapper\" [simpoOverlay]=\"styles?.background\" [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\">\n\n <div class=\"container container-custom\" *ngIf=\"(responseData?.orderedItems?.length || 0) > 0\" [id]=\"data?.id\"\n [simpoAnimation]=\"styles?.animation\">\n\n <div class=\"wishlist-header\">\n <h1 class=\"wishlist-title\">\n Your Wishlist <span class=\"item-count\">({{responseData?.orderedItems?.length}} Items)</span>\n </h1>\n </div>\n\n <div class=\"wishlist-items-container\">\n <ng-container *ngFor=\"let item of responseData?.orderedItems; let idx = index\">\n <div class=\"wishlist-item-row\" [ngClass]=\"{ 'single-item': responseData?.orderedItems?.length === 1 }\">\n\n <div class=\"item-left\">\n <div class=\"item-image\" (click)=\"redirectToProduct(item)\">\n <img loading=\"lazy\" [src]=\"item.imgUrl ?? 'https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\"\n onerror=\"this.src='https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\" class=\"product-image\"\n alt=\"{{item.itemName}}\">\n </div>\n\n <div class=\"item-details\">\n <h3 class=\"product-name\" (click)=\"redirectToProduct(item)\">\n {{item.itemName}}\n </h3>\n\n <div class=\"variants-box\" *ngIf=\"item.itemVariant\">\n <div class=\"variant-item\" *ngFor=\"let variant of getKeys(item.itemVariant.properties)\">\n <span class=\"variant-value\">{{ item.itemVariant.properties[variant] | titlecase }}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"item-right\">\n <div class=\"quantity-control-wrapper\">\n <div class=\"quantity-control\" *ngIf=\"item.quantity\">\n <button class=\"qty-btn\" (click)=\"addToFav(item, 'SUBSTRACT')\">\n <mat-icon>remove</mat-icon>\n </button>\n <span class=\"qty-value px-3\">{{item.quantity}}</span>\n <button class=\"qty-btn\" (click)=\"addToFav(item, 'ADD')\">\n <mat-icon>add</mat-icon>\n </button>\n </div>\n <div class=\"add-qty-trigger\" *ngIf=\"!item.quantity\" (click)=\"addToFav(item, 'ADD')\">\n Add Quantity\n </div>\n </div>\n\n <div class=\"price-section\">\n <div class=\"product-price\">\n <span class=\"currency\" [innerHTML]=\"currency\"></span>\n <span class=\"amount\">{{item.discountedPrice ?? item.sellingPrice}}</span>\n </div>\n </div>\n\n <div class=\"actions-group\">\n <div class=\"action-btn move-to-cart-svg\" (click)=\"moveToCart(item)\" pTooltip=\"Move to Cart\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\"\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\n class=\"lucide lucide-shopping-cart\">\n <circle cx=\"8\" cy=\"21\" r=\"1\" />\n <circle cx=\"19\" cy=\"21\" r=\"1\" />\n <path d=\"M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12\" />\n </svg>\n </div>\n\n <div class=\"delete-btn-circle\" (click)=\"deleteFromWhislist(item)\" pTooltip=\"Remove\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\n stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-trash-2\">\n <path d=\"M3 6h18\" />\n <path d=\"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6\" />\n <path d=\"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2\" />\n <line x1=\"10\" x2=\"10\" y1=\"11\" y2=\"17\" />\n <line x1=\"14\" x2=\"14\" y1=\"11\" y2=\"17\" />\n </svg>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n\n <!-- Empty Wishlist State -->\n <section class=\"empty-wishlist\" *ngIf=\"(responseData?.orderedItems?.length || 0) == 0\">\n <div class=\"empty-container\">\n <div class=\"empty-icon-wrapper\">\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/107213c1716543334040empty-cart.png\"\n alt=\"Empty Wishlist\" class=\"empty-img\">\n </div>\n <div class=\"empty-content\">\n <h2 class=\"empty-title\" [style.color]=\"styles?.background?.accentColor\">Your Wishlist is Empty</h2>\n <p class=\"empty-desc\" [style.color]=\"styles?.background?.accentColor\">\n Seems like you haven't discovered your favorites yet. Explore our top collections and add what you love!\n </p>\n <!-- <button class=\"explore-btn\" (click)=\"redirectToProduct({itemId: '', varientId: ''})\">Explore Now</button> -->\n </div>\n </div>\n </section>\n </div>\n\n <!-- Editors -->\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\n </section>\n</ng-container>\n\n<ngx-skeleton-loader *ngIf=\"isLoading\" count=\"1\" appearance=\"circle\" [theme]=\"{\n width: '100%',\n height: '40vh',\n 'border-radius': '10px',\n 'position': 'relative'\n}\"></ngx-skeleton-loader>", styles: [":host{--wishlist-bg: #f8fafc;--wishlist-card-bg: #ffffff;--wishlist-border: #e2e8f0;--wishlist-text-main: #0f172a;--wishlist-text-muted: #64748b;--wishlist-accent: var(--accent-color, #1e293b);--wishlist-danger: #ef4444;--wishlist-transition: all .2s cubic-bezier(.4, 0, .2, 1);font-family:var(--website-font-family, \"Inter\", -apple-system, sans-serif)}.total-container{min-height:75vh;background:var(--wishlist-bg)}.wishlist-header{margin-bottom:24px}.wishlist-title{font-size:24px;font-weight:700;color:var(--wishlist-text-main);margin:0;letter-spacing:-.02em}.item-count{font-size:14px;font-weight:500;color:var(--wishlist-text-muted);margin-left:8px}.wishlist-items-container{background:var(--wishlist-card-bg);border:1px solid var(--wishlist-border);border-radius:12px;box-shadow:0 1px 3px #00000005;overflow:hidden}.wishlist-header-row{display:flex;padding:16px 24px;background:#fff;border-bottom:1px solid var(--wishlist-border);font-size:16px;font-weight:600;color:var(--wishlist-text-main)}.wishlist-item-row{display:flex;align-items:center;padding:14px;border-bottom:1px solid #f1f5f9;transition:var(--wishlist-transition)}.wishlist-item-row:hover{background:#fbfcfe}.wishlist-item-row:last-child{border-bottom:none}.item-left{display:flex;align-items:center;flex:2;gap:20px}.item-image{width:80px;height:80px;flex-shrink:0;border-radius:12px;overflow:hidden;cursor:pointer;background:#f8fafc;border:1px solid #f1f5f9}.product-image{width:100%;height:100%;object-fit:cover}.item-details{display:flex;flex-direction:column;gap:6px}.product-name{font-size:14px;font-weight:600;color:var(--wishlist-text-main);margin:0;cursor:pointer;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.variants-box{display:flex;flex-wrap:wrap;gap:8px}.variant-value{font-size:14px;color:var(--wishlist-text-muted);font-weight:400}.item-right{display:flex;align-items:center;flex:2;gap:40px;justify-content:flex-end}.quantity-control-wrapper{flex:1;display:flex;justify-content:center}.quantity-control{display:flex;align-items:center;border:1px solid var(--wishlist-border);border-radius:8px;background:#fff;height:36px;overflow:hidden}.qty-btn{width:40px;height:100%;background:none;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--wishlist-text-main);transition:var(--wishlist-transition)}.qty-btn:hover{background:#f8fafc}.qty-btn mat-icon{font-size:18px;width:18px;height:18px}.qty-value{width:36px;text-align:center;font-size:15px;font-weight:600;color:var(--wishlist-text-main);border-left:1px solid var(--wishlist-border);border-right:1px solid var(--wishlist-border);height:100%;display:flex;align-items:center;justify-content:center}.add-qty-trigger{padding:8px 16px;border:1px solid var(--wishlist-border);border-radius:8px;font-size:13px;font-weight:600;color:var(--wishlist-text-main);cursor:pointer;transition:var(--wishlist-transition)}.add-qty-trigger:hover{background:#f8fafc}.price-section{min-width:100px;text-align:right}.product-price{font-size:18px;font-weight:700;color:var(--wishlist-text-main)}.currency{font-size:16px;margin-right:2px}.actions-group{display:flex;align-items:center;gap:16px}.action-btn{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--wishlist-transition)}.move-to-cart-svg{background:#f1f5f9;color:var(--wishlist-text-main);border:1px solid transparent}.move-to-cart-svg:hover{background:#e2e8f0;transform:translateY(-2px)}.delete-btn-circle{width:40px;height:40px;border-radius:50%;border:1px solid #fee2e2;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--wishlist-danger);transition:var(--wishlist-transition)}.delete-btn-circle:hover{background:#fef2f2;border-color:#fecaca;transform:translateY(-2px)}.delete-btn-circle svg,.move-to-cart-svg svg{width:20px;height:20px}.empty-wishlist{padding:100px 0;text-align:center}.empty-container{max-width:400px;margin:0 auto}.empty-img{width:200px;margin-bottom:32px;opacity:.9}.empty-title{font-size:24px;font-weight:700;color:var(--wishlist-text-main);margin-bottom:12px}.empty-desc{font-size:16px;color:var(--wishlist-text-muted);line-height:1.6}@media (max-width: 900px){.wishlist-item-row{flex-direction:column;align-items:stretch;gap:20px}.item-right{justify-content:space-between;width:100%;flex:auto}}@media (max-width: 600px){.item-left{gap:12px}.item-image{width:80px;height:80px}.product-name{font-size:15px}.item-right{flex-wrap:wrap;gap:16px}.quantity-control-wrapper{order:2;justify-content:flex-start}.price-section{order:1;min-width:0}.actions-group{order:3;width:100%;justify-content:flex-end}}\n"] }]
|
|
244
244
|
}], ctorParameters: () => [{ type: i1.CartService }, { type: i2.EventsService }, { type: i3.StorageServiceService }, { type: i4.RestService }, { type: i5.MessageService }, { type: i6.Router }], propDecorators: { responseData: [{
|
|
245
245
|
type: Input
|
|
246
246
|
}], data: [{
|
|
@@ -254,4 +254,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
254
254
|
}], customClass: [{
|
|
255
255
|
type: Input
|
|
256
256
|
}] } });
|
|
257
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2hpc2xpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvd2hpc2xpc3Qvd2hpc2xpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvd2hpc2xpc3Qvd2hpc2xpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDekYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFNL0MsT0FBTyxXQUFXLE1BQU0sK0JBQStCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRTlFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxD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QUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7K0dBN05VLGlCQUFpQjttR0FBakIsaUJBQWlCLGlNQUpqQixDQUFDLGNBQWMsQ0FBQyxpREN6QzdCLG91TkErSHlCLHNxSkRwR3JCLE9BQU8sMElBQ1Asb0JBQW9CLG1oQkFDcEIsWUFBWTtnQkFDWixXQUFXO2dCQUNYLG1CQUFtQiwwR0FFbkIsa0JBQWtCLHlGQUNsQixtQkFBbUIsbUZBRW5CLGdCQUFnQixxRkFFaEIsY0FBYywrRUFDZCxXQUFXOzs0RkFNRixpQkFBaUI7a0JBdEI3QixTQUFTOytCQUNFLGdCQUFnQixjQUNkLElBQUksV0FDUDt3QkFDUCxPQUFPO3dCQUNQLG9CQUFvQjt3QkFDcEIsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsd0JBQXdCO3dCQUN4QixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFFbkIsZ0JBQWdCO3dCQUVoQixjQUFjO3dCQUNkLFdBQVc7cUJBQ1osYUFDVSxDQUFDLGNBQWMsQ0FBQzs0TkFNbEIsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCdXR0b25EaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvYnV0dG9uLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IEFuaW1hdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9hbmltYXRpb24tZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvaG92ZXItZWxlbWVudC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb250ZW50Rml0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnQtZml0LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFNpbXBvQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9pbmRleCc7XHJcbmltcG9ydCB7IENhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY2FydC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3VzZXIubW9kYWwnO1xyXG5pbXBvcnQgeyBPcmRlcmVkSXRlbXMgfSBmcm9tICcuLi8uLi9zdHlsZXMvT3JkZXJlZEl0ZW1zLm1vZGFsJztcclxuaW1wb3J0IEJhc2VTZWN0aW9uIGZyb20gJy4uLy4uLy4uL3NlY3Rpb25zL0Jhc2VTZWN0aW9uJztcclxuaW1wb3J0IHsgQlVTSU5FU1NfQ09OU1RBTlRTIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2J1c2luZXNzLmNvbnN0YW50JztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IFRvYXN0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b2FzdCc7XHJcbmltcG9ydCB7IENhcnQgfSBmcm9tICcuLi8uLi9zdHlsZXMvY2FydC5tb2RhbCc7XHJcbmltcG9ydCB7IEJhY2tncm91bmREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvYmFja2dyb3VuZC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBPdmVybGF5RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL292ZXJsYXktZGlyZWN0aXZlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ltcG8td2hpc2xpc3QnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTWF0SWNvbixcclxuICAgIFNpbXBvQ29tcG9uZW50TW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgLy9ESVJFQ1RJVkVcclxuICAgIEJhY2tncm91bmREaXJlY3RpdmUsXHJcbiAgICBCdXR0b25EaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBBbmltYXRpb25EaXJlY3RpdmUsXHJcbiAgICBDb250ZW50Rml0RGlyZWN0aXZlLFxyXG5cclxuICAgIE92ZXJsYXlEaXJlY3RpdmUsXHJcblxyXG4gICAgSG92ZXJEaXJlY3RpdmUsXHJcbiAgICBUb2FzdE1vZHVsZVxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbTWVzc2FnZVNlcnZpY2VdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi93aGlzbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3doaXNsaXN0LmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXaGlzbGlzdENvbXBvbmVudCBleHRlbmRzIEJhc2VTZWN0aW9uIGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQElucHV0KCkgcmVzcG9uc2VEYXRhPzogQ2FydDtcclxuICBASW5wdXQoKSBkYXRhPzogYW55O1xyXG4gIEBJbnB1dCgpIGluZGV4PyA6IG51bWJlcjtcclxuICBASW5wdXQoKSBlZGl0PyA6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGRlbGV0ZT8gOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGN1c3RvbUNsYXNzPzogc3RyaW5nO1xyXG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBzdHlsZXM6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2V2ZW50U2VydmljZTogRXZlbnRzU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1c2VyRGV0YWlsczogYW55O1xyXG4gIHByaXZhdGUgVVNFUl9XSVNITElTVF9JVEVNUzogT3JkZXJlZEl0ZW1zW10gPSBbXTtcclxuICB3aXNobGlzdEluZm86IGFueSA9IHtcclxuICAgIG9yZGVyZWRJdGVtczogbnVsbCxcclxuICAgIGJ1c2luZXNzSWQ6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYklkXCIpID8/IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYnVzaW5lc3NJZFwiKSxcclxuICAgIGJpbGxkZXRhaWxzOiB7XHJcbiAgICAgIFwidG90YWxOZXRWYWx1ZVwiOiAwLFxyXG4gICAgICBcInRvdGFsR3Jvc3NWYWx1ZVwiOiAwLFxyXG4gICAgICBcInRvdGFsVGF4XCI6IDAsXHJcbiAgICAgIFwidG90YWxPZmZlcmVkVmFsdWVcIjogMCxcclxuICAgICAgXCJkZWxpdmVyeUNoYXJnZXNcIjogMFxyXG4gICAgfSxcclxuICAgIGFkZHJlc3NEZXRhaWxzOiBudWxsLFxyXG4gICAgcGxhdGZvcm06IFwiV0VCXCIsXHJcbiAgICBjYXJ0VHlwZTogXCJXSVNITElTVFwiLFxyXG4gICAgdXNlckRldGFpbHM6IHtcclxuICAgICAgXCJ1c2VySWRcIjogXCJcIixcclxuICAgICAgXCJ1c2VyTmFtZVwiOiBcIlwiLFxyXG4gICAgICBcIm1vYmlsZVwiOiBcIlwiLFxyXG4gICAgICBcImVtYWlsXCI6IFwiXCJcclxuICAgIH0sXHJcbiAgICB0b3RhbEFtb3VudDogMFxyXG4gIH1cclxuXHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdHlsZXMgPSB0aGlzLmRhdGE/LnN0eWxlcztcclxuICAgIHRoaXMuX2V2ZW50U2VydmljZS5zaG93TG9hZGluZ1NjcmVlbi5zdWJzY3JpYmUoKHJlc3BvbnNlKT0+IHtcclxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSByZXNwb25zZTtcclxuICAgICAgaWYgKCF0aGlzLmlzTG9hZGluZykge1xyXG4gICAgICAgIHRoaXMuZ2V0V2lzaGxpc3RJbmRleERCRGF0YSgpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgaWYgKHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VXNlcigpKSB7XHJcbiAgICAgIHRoaXMudXNlckRldGFpbHMgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXIoKSBhcyBVc2VyO1xyXG4gICAgICB0aGlzLndpc2hsaXN0SW5mby51c2VyRGV0YWlscyA9IHtcclxuICAgICAgICBcInVzZXJJZFwiOiB0aGlzLnVzZXJEZXRhaWxzPy51c2VySWQsXHJcbiAgICAgICAgXCJ1c2VyTmFtZVwiOiB0aGlzLnVzZXJEZXRhaWxzPy5jb250YWN0Lm5hbWUsXHJcbiAgICAgICAgXCJtb2JpbGVcIjogdGhpcy51c2VyRGV0YWlscz8uY29udGFjdC5tb2JpbGUsXHJcbiAgICAgICAgXCJlbWFpbFwiOiB0aGlzLnVzZXJEZXRhaWxzPy5jb250YWN0LmVtYWlsXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5yZXN0U2VydmljZS5nZXRVc2VySXRlbXModGhpcy51c2VyRGV0YWlscy51c2VySWQsIFwiV0lTSExJU1RcIikuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KT0+IHtcclxuICAgICAgICBjb25zdCB0ZW1wVXNlcldpc2hsaXN0ID0gcmVzcG9uc2U/LmRhdGE/LlswXT8ub3JkZXJlZEl0ZW1zID8/IFtdXHJcbiAgICAgICAgdGhpcy53aXNobGlzdEluZm9bXCJjYXJ0SWRcIl0gPSByZXNwb25zZS5kYXRhPy5bMF0/LmNhcnRJZDtcclxuICAgICAgICBpZiAocmVzcG9uc2UuZGF0YT8uWzBdPy5vcmRlcmVkSXRlbXM/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5hZGRBbGxQcm9kdWN0VG9XaXNobGlzdCh0ZW1wVXNlcldpc2hsaXN0KS5vbmNvbXBsZXRlID0gKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXJXaGlzaGxpc3QoKS50aGVuKCh3aXNodGxpc3RSZXNwb25zZSk9PiB7XHJcbiAgICAgICAgICAgICAgd2lzaHRsaXN0UmVzcG9uc2Uub25zdWNjZXNzID0gKHdpc2hsaXN0RGF0YTogYW55KSA9PiB7XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3Qgd2lzaGxpc3RSZXNwb25zZSA9IHRoaXMucmVzdFNlcnZpY2UuYWRkSXRlbVRvREIodGhpcy53aXNobGlzdEluZm8pLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgICAgICAgICAgd2lzaGxpc3RSZXNwb25zZS5maW5hbGx5KCgpPT4ge1xyXG5cclxuICAgICAgICAgICAgICAgICAgdGhpcy5VU0VSX1dJU0hMSVNUX0lURU1TID0gd2lzaGxpc3REYXRhLnRhcmdldC5yZXN1bHQgYXMgdW5rbm93biBhcyBPcmRlcmVkSXRlbXNbXTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy53aXNobGlzdEluZm8ub3JkZXJlZEl0ZW1zID0gdGhpcy5VU0VSX1dJU0hMSVNUX0lURU1TO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnJlc3BvbnNlRGF0YSA9IHRoaXMud2lzaGxpc3RJbmZvO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VXNlcldoaXNobGlzdCgpLnRoZW4oKHJlc3BvbnNlKT0+IHtcclxuICAgICAgICAgICAgcmVzcG9uc2Uub25zdWNjZXNzID0gKHVzZXJXaXNobGlzdFJlc3BvbnNlOiBhbnkpPT4ge1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLlVTRVJfV0lTSExJU1RfSVRFTVMgPSB1c2VyV2lzaGxpc3RSZXNwb25zZS50YXJnZXQucmVzdWx0O1xyXG4gICAgICAgICAgICAgIHRoaXMud2lzaGxpc3RJbmZvLm9yZGVyZWRJdGVtcyA9IHRoaXMuVVNFUl9XSVNITElTVF9JVEVNUztcclxuICAgICAgICAgICAgICB0aGlzLnJlc3BvbnNlRGF0YSA9IHRoaXMud2lzaGxpc3RJbmZvO1xyXG4gICAgICAgICAgICAgIHRoaXMucmVzdFNlcnZpY2UuYWRkSXRlbVRvREIodGhpcy5yZXNwb25zZURhdGEpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSk9PiB7XHJcbiAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnd2lzaGxpc3RJZCcsIHJlc3BvbnNlLmRhdGE/LmNhcnRJZCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndpc2hsaXN0SW5mb1tcImNhcnRJZFwiXSA9IHJlc3BvbnNlLmRhdGE/LmNhcnRJZDtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVzcG9uc2VEYXRhID0gdGhpcy53aXNobGlzdEluZm87XHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgdGhpcy5nZXRXaXNobGlzdEluZGV4REJEYXRhKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBtb3ZlVG9DYXJ0KHByb2R1Y3Q6IE9yZGVyZWRJdGVtcykge1xyXG4gICAgaWYgKCFwcm9kdWN0LnF1YW50aXR5KVxyXG4gICAgICBwcm9kdWN0LnF1YW50aXR5ID0gMTtcclxuXHJcbiAgICBjb25zdCB1c2VyRGV0YWlscyA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VXNlcigpO1xyXG4gICAgaWYgKCEhdXNlckRldGFpbHMpIHtcclxuICAgICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgICBcIml0ZW1zXCI6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgXCJpdGVtSWRcIjogcHJvZHVjdC5pdGVtSWQsXHJcbiAgICAgICAgICAgIFwiYnVzaW5lc3NJZFwiOiBwcm9kdWN0LmJ1c2luZXNzSWQsXHJcbiAgICAgICAgICAgIFwiaXRlbU5hbWVcIjogcHJvZHVjdC5pdGVtTmFtZSxcclxuICAgICAgICAgICAgXCJidXNpbmVzc05hbWVcIjogcHJvZHVjdC5idXNpbmVzc05hbWUsXHJcbiAgICAgICAgICAgIFwiaW1nVXJsXCI6IHByb2R1Y3QuaW1nVXJsLFxyXG4gICAgICAgICAgICBcInRheENhdGVnb3J5XCI6IFwiTk9OX01SUFwiLFxyXG4gICAgICAgICAgICBcInF1YW50aXR5XCI6IHByb2R1Y3QucXVhbnRpdHksXHJcbiAgICAgICAgICAgIFwicHJpY2VcIjogcHJvZHVjdC5wcmljZSxcclxuICAgICAgICAgICAgXCJpdGVtVGF4XCI6IHByb2R1Y3QuaXRlbVRheCxcclxuICAgICAgICAgICAgXCJkaXNjb3VudGVkUHJpY2VcIjogcHJvZHVjdC5kaXNjb3VudGVkUHJpY2VcclxuICAgICAgICAgIH1cclxuICAgICAgICBdXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5yZXN0U2VydmljZS5tb3ZlSXRlbVRvQ2FydCh1c2VyRGV0YWlscy51c2VySWQsIHBheWxvYWQpLnN1YnNjcmliZSgocmVzcG9uc2UpPT4ge30pXHJcbiAgICB9XHJcbiAgICBjb25zdCB0cmFuc2FjdGlvbiA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuYWRkUHJvZHVjdFRvQ2FydChwcm9kdWN0KTtcclxuICAgIHRyYW5zYWN0aW9uLm9uc3VjY2VzcyA9ICh3aXNobGlzdFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UucmVtb3ZlUHJvZHVjdEZyb21XaXNobGlzdChwcm9kdWN0Lml0ZW1JZCkub25zdWNjZXNzID0gKHdpc2xpc3RSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMuc3RvcmFnZVNlcnZpY2UuYWRkUHJvZHVjdFRvQ2FydChwcm9kdWN0KS5vbnN1Y2Nlc3MgPSAoY2FydFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLlVTRVJfV0lTSExJU1RfSVRFTVMgPSB0aGlzLlVTRVJfV0lTSExJU1RfSVRFTVMuZmlsdGVyKChpdGVtOiBPcmRlcmVkSXRlbXMpPT4gaXRlbS52YXJpZW50SWQgIT0gcHJvZHVjdC52YXJpZW50SWQpO1xyXG4gICAgICAgICAgdGhpcy53aXNobGlzdEluZm8ub3JkZXJlZEl0ZW1zID0gdGhpcy5VU0VSX1dJU0hMSVNUX0lURU1TO1xyXG4gICAgICAgICAgdGhpcy5yZXNwb25zZURhdGEgPSB0aGlzLndpc2hsaXN0SW5mbztcclxuICAgICAgICAvLyB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ3N1Y2Nlc3MnLCBzdW1tYXJ5OiAnTW92ZSB0byBjYXJ0JywgZGV0YWlsOiAnSXRlbSBzdWNjZXNzZnVsbHkgbW92ZWQgdG8gY2FydCcgfSk7XHJcbiAgICB9XHJcbiAgICB0cmFuc2FjdGlvbi5vbmVycm9yID0gKHdpc2hsaXN0UmVzcG9uc2UpID0+IHtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ0ZhaWx1cmUnLCBkZXRhaWw6ICdGYWlsZWQgdG8gbW92ZSBpdGVtIHRvIGNhcnQnIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXRXaXNobGlzdEluZGV4REJEYXRhKCkge1xyXG5cclxuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VXNlcldoaXNobGlzdCgpLnRoZW4oKHJlc3BvbnNlKT0+IHtcclxuICAgICAgcmVzcG9uc2Uub25zdWNjZXNzID0gKHVzZXJXaXNobGlzdFJlc3BvbnNlOiBhbnkpPT4ge1xyXG5cclxuICAgICAgICB0aGlzLlVTRVJfV0lTSExJU1RfSVRFTVMgPSB1c2VyV2lzaGxpc3RSZXNwb25zZS50YXJnZXQucmVzdWx0O1xyXG4gICAgICAgIHRoaXMud2lzaGxpc3RJbmZvLm9yZGVyZWRJdGVtcyA9IHRoaXMuVVNFUl9XSVNITElTVF9JVEVNUztcclxuICAgICAgICB0aGlzLnJlc3BvbnNlRGF0YSA9IHRoaXMud2lzaGxpc3RJbmZvO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBkZWxldGVGcm9tV2hpc2xpc3QocHJvZHVjdDogT3JkZXJlZEl0ZW1zKSB7XHJcbiAgICB0aGlzLlVTRVJfV0lTSExJU1RfSVRFTVMgPSB0aGlzLlVTRVJfV0lTSExJU1RfSVRFTVMuZmlsdGVyKChpdGVtOiBPcmRlcmVkSXRlbXMpPT4gaXRlbS52YXJpZW50SWQgIT0gcHJvZHVjdC52YXJpZW50SWQpO1xyXG4gICAgdGhpcy53aXNobGlzdEluZm8ub3JkZXJlZEl0ZW1zID0gdGhpcy5VU0VSX1dJU0hMSVNUX0lURU1TO1xyXG4gICAgdGhpcy5yZXNwb25zZURhdGEgPSB0aGlzLndpc2hsaXN0SW5mbztcclxuICAgIGlmICh0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXIoKSkge1xyXG4gICAgICB0aGlzLmNhcnRTZXJ2aWNlLnJlbW92ZUl0ZW1Gcm9tV2lzaGxpc3RQYWdlKHByb2R1Y3QsIHRoaXMud2lzaGxpc3RJbmZvKS5zdWJzY3JpYmUoKHJlc3BvbnNlKT0+IHt9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5zdG9yYWdlU2VydmljZS5yZW1vdmVQcm9kdWN0RnJvbVdpc2hsaXN0KHByb2R1Y3QudmFyaWVudElkKTtcclxuICAgIH1cclxuICB9XHJcbiAgYWRkVG9GYXYoaXRlbTogT3JkZXJlZEl0ZW1zLCB0eXBlOiAnQUREJyB8ICdTVUJTVFJBQ1QnKSB7XHJcbiAgICBpZiAodHlwZSA9PSAnQUREJylcclxuICAgICAgaXRlbS5xdWFudGl0eSArPSAxO1xyXG4gICAgZWxzZVxyXG4gICAgICBpdGVtLnF1YW50aXR5IC09IDE7XHJcbiAgICBpZiAodGhpcy5zdG9yYWdlU2VydmljZS5nZXRVc2VyKCkpIHtcclxuICAgICAgdGhpcy53aXNobGlzdEluZm8ub3JkZXJlZEl0ZW1zPy5mb3JFYWNoKChwcm9kdWN0OiBPcmRlcmVkSXRlbXMpPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLnZhcmllbnRJZCA9PSBwcm9kdWN0LnZhcmllbnRJZClcclxuICAgICAgICAgIHByb2R1Y3QucXVhbnRpdHkgPSBpdGVtLnF1YW50aXR5O1xyXG4gICAgICB9KVxyXG4gICAgICB0aGlzLmNhcnRTZXJ2aWNlLmFkZEl0ZW1Gcm9tV2lzaGxpc3RQYWdlKGl0ZW0sIHRoaXMud2lzaGxpc3RJbmZvKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpPT4ge30pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5hZGRQcm9kdWN0VG9XaXNobGlzdChpdGVtKTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0S2V5cyhvYmplY3Q6IE9iamVjdCk6IHN0cmluZ1tdIHtcclxuICAgIGlmIChvYmplY3QpXHJcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmplY3QpO1xyXG4gICAgcmV0dXJuIFtdO1xyXG4gIH1cclxuICBlZGl0U2VjdGlvbigpe1xyXG5cclxuICAgIGlmKHdpbmRvdy5pbm5lcldpZHRoIDw9IDQ3NSlcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMuX2V2ZW50U2VydmljZS50b2dnbGVFZGl0b3JFdmVudC5lbWl0KGZhbHNlKTtcclxuICAgIHNldFRpbWVvdXQoKCk9PiB7XHJcbiAgICAgIHRoaXMuX2V2ZW50U2VydmljZS5lZGl0U2VjdGlvbi5lbWl0KHtkYXRhOnRoaXMuZGF0YX0pO1xyXG4gICAgfSwgMTAwKTtcclxuICB9XHJcbiAgZ2V0IGlzTW9iaWxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoIDwgNDc1O1xyXG4gIH1cclxuICBnZXQgY3VycmVuY3koKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBCVVNJTkVTU19DT05TVEFOVFMuQ1VSUkVOQ1k7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHRvU2x1ZyhpbnB1dDogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgaWYgKCFpbnB1dClcclxuICAgICAgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgY29uc3Qgbm9XaGl0ZXNwYWNlID0gaW5wdXQucmVwbGFjZSgvXFxzKy9nLCAnLScpO1xyXG4gICAgY29uc3Qgbm9ybWFsaXplZCA9IG5vV2hpdGVzcGFjZS5ub3JtYWxpemUoJ05GRCcpO1xyXG4gICAgY29uc3Qgc2x1ZyA9IG5vcm1hbGl6ZWQucmVwbGFjZSgvW15cXHctXS9nLCAnJyk7XHJcblxyXG4gICAgcmV0dXJuIHNsdWdcclxuICAgICAgLnRvTG93ZXJDYXNlKClcclxuICAgICAgLnJlcGxhY2UoLy0rL2csICctJylcclxuICAgICAgLnJlcGxhY2UoL14tfC0kL2csICcnKTtcclxuICB9XHJcblxyXG4gIHJlZGlyZWN0VG9Qcm9kdWN0KHByb2R1Y3Q6IE9yZGVyZWRJdGVtcykge1xyXG4gICAgY29uc3Qgc2x1ZyA9IHByb2R1Y3Quc2x1Z2lmaWVkTmFtZSB8fCB0aGlzLnRvU2x1Zyhwcm9kdWN0Lml0ZW1OYW1lKTtcclxuICAgIGlmICghc2x1ZylcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2RldGFpbHMnLCBzbHVnXSk7XHJcbiAgfVxyXG59XHJcbiIsIjxwLXRvYXN0IHBvc2l0aW9uPVwiYm90dG9tLXJpZ2h0XCIgW2Jhc2VaSW5kZXhdPVwiMTAwMDAwMDAwMDBcIiBbYXV0b1pJbmRleF09XCJ0cnVlXCJcclxuICBbc2hvd1RyYW5zZm9ybU9wdGlvbnNdPVwiaXNNb2JpbGUgPyAndHJhbnNsYXRlWSgtMTAwJSknIDogJydcIj48L3AtdG9hc3Q+XHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTG9hZGluZ1wiPlxyXG4gIDxzZWN0aW9uIGNsYXNzPVwidG90YWwtY29udGFpbmVyXCIgW2lkXT1cImRhdGE/LmlkXCIgW3NpbXBvQmFja2dyb3VuZF09XCJzdHlsZXM/LmJhY2tncm91bmRcIiBzaW1wb0hvdmVyXHJcbiAgICAoaG92ZXJpbmcpPVwic2hvd0VkaXRUYWJzKCRldmVudClcIiBbYXR0ci5zdHlsZV09XCJjdXN0b21DbGFzc1wiPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJ3aXNobGlzdC13cmFwcGVyXCIgW3NpbXBvT3ZlcmxheV09XCJzdHlsZXM/LmJhY2tncm91bmRcIiBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9MYXlvdXRdPVwic3R5bGVzPy5sYXlvdXRcIj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXIgY29udGFpbmVyLWN1c3RvbVwiICpuZ0lmPVwiKHJlc3BvbnNlRGF0YT8ub3JkZXJlZEl0ZW1zPy5sZW5ndGggfHwgMCkgPiAwXCIgW2lkXT1cImRhdGE/LmlkXCJcclxuICAgICAgICBbc2ltcG9BbmltYXRpb25dPVwic3R5bGVzPy5hbmltYXRpb25cIj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIndpc2hsaXN0LWhlYWRlclwiPlxyXG4gICAgICAgICAgPGgxIGNsYXNzPVwid2lzaGxpc3QtdGl0bGVcIj5cclxuICAgICAgICAgICAgWW91ciBXaXNobGlzdCA8c3BhbiBjbGFzcz1cIml0ZW0tY291bnRcIj4oe3tyZXNwb25zZURhdGE/Lm9yZGVyZWRJdGVtcz8ubGVuZ3RofX0gSXRlbXMpPC9zcGFuPlxyXG4gICAgICAgICAgPC9oMT5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIndpc2hsaXN0LWl0ZW1zLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiByZXNwb25zZURhdGE/Lm9yZGVyZWRJdGVtczsgbGV0IGlkeCA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3aXNobGlzdC1pdGVtLXJvd1wiIFtuZ0NsYXNzXT1cInsgJ3NpbmdsZS1pdGVtJzogcmVzcG9uc2VEYXRhPy5vcmRlcmVkSXRlbXM/Lmxlbmd0aCA9PT0gMSB9XCI+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWxlZnRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWltYWdlXCIgKGNsaWNrKT1cInJlZGlyZWN0VG9Qcm9kdWN0KGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpbWcgbG9hZGluZz1cImxhenlcIiBbc3JjXT1cIml0ZW0uaW1nVXJsID8/ICdodHRwczovL2kucG9zdGltZy5jYy9oUFMySnBWMC9uby1pbWFnZS1hdmFpbGFibGUuanBnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgb25lcnJvcj1cInRoaXMuc3JjPSdodHRwczovL2kucG9zdGltZy5jYy9oUFMySnBWMC9uby1pbWFnZS1hdmFpbGFibGUuanBnJ1wiIGNsYXNzPVwicHJvZHVjdC1pbWFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgYWx0PVwie3tpdGVtLml0ZW1OYW1lfX1cIj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWRldGFpbHNcIj5cclxuICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwicHJvZHVjdC1uYW1lXCIgKGNsaWNrKT1cInJlZGlyZWN0VG9Qcm9kdWN0KGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tpdGVtLml0ZW1OYW1lfX1cclxuICAgICAgICAgICAgICAgICAgPC9oMz5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YXJpYW50cy1ib3hcIiAqbmdJZj1cIml0ZW0uaXRlbVZhcmlhbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFyaWFudC1pdGVtXCIgKm5nRm9yPVwibGV0IHZhcmlhbnQgb2YgZ2V0S2V5cyhpdGVtLml0ZW1WYXJpYW50LnByb3BlcnRpZXMpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhcmlhbnQtdmFsdWVcIj57eyBpdGVtLml0ZW1WYXJpYW50LnByb3BlcnRpZXNbdmFyaWFudF0gfCB0aXRsZWNhc2UgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicXVhbnRpdHktY29udHJvbC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJxdWFudGl0eS1jb250cm9sXCIgKm5nSWY9XCJpdGVtLnF1YW50aXR5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInF0eS1idG5cIiAoY2xpY2spPVwiYWRkVG9GYXYoaXRlbSwgJ1NVQlNUUkFDVCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+cmVtb3ZlPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInF0eS12YWx1ZSBweC0zXCI+e3tpdGVtLnF1YW50aXR5fX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInF0eS1idG5cIiAoY2xpY2spPVwiYWRkVG9GYXYoaXRlbSwgJ0FERCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGQtcXR5LXRyaWdnZXJcIiAqbmdJZj1cIiFpdGVtLnF1YW50aXR5XCIgKGNsaWNrKT1cImFkZFRvRmF2KGl0ZW0sICdBREQnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIEFkZCBRdWFudGl0eVxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS1zZWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LXByaWNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJyZW5jeVwiIFtpbm5lckhUTUxdPVwiY3VycmVuY3lcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhbW91bnRcIj57e2l0ZW0uZGlzY291bnRlZFByaWNlID8/IGl0ZW0uc2VsbGluZ1ByaWNlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbnMtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbi1idG4gbW92ZS10by1jYXJ0LXN2Z1wiIChjbGljayk9XCJtb3ZlVG9DYXJ0KGl0ZW0pXCIgcFRvb2x0aXA9XCJNb3ZlIHRvIENhcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImx1Y2lkZSBsdWNpZGUtc2hvcHBpbmctY2FydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjhcIiBjeT1cIjIxXCIgcj1cIjFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE5XCIgY3k9XCIyMVwiIHI9XCIxXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMi4wNSAyLjA1aDJsMi42NiAxMi40MmEyIDIgMCAwIDAgMiAxLjU4aDkuNzhhMiAyIDAgMCAwIDEuOTUtMS41N2wxLjY1LTcuNDNINS4xMlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlbGV0ZS1idG4tY2lyY2xlXCIgKGNsaWNrKT1cImRlbGV0ZUZyb21XaGlzbGlzdChpdGVtKVwiIHBUb29sdGlwPVwiUmVtb3ZlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiBjbGFzcz1cImx1Y2lkZSBsdWNpZGUtdHJhc2gtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0zIDZoMThcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xOSA2djE0YzAgMS0xIDItMiAySDdjLTEgMC0yLTEtMi0yVjZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk04IDZWNGMwLTEgMS0yIDItMmg0YzEgMCAyIDEgMiAydjJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9XCIxMFwiIHgyPVwiMTBcIiB5MT1cIjExXCIgeTI9XCIxN1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bGluZSB4MT1cIjE0XCIgeDI9XCIxNFwiIHkxPVwiMTFcIiB5Mj1cIjE3XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8IS0tIEVtcHR5IFdpc2hsaXN0IFN0YXRlIC0tPlxyXG4gICAgICA8c2VjdGlvbiBjbGFzcz1cImVtcHR5LXdpc2hsaXN0XCIgKm5nSWY9XCIocmVzcG9uc2VEYXRhPy5vcmRlcmVkSXRlbXM/Lmxlbmd0aCB8fCAwKSA9PSAwXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LWljb24td3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vcHJvZC1pbWFnZXMvMTA3MjEzYzE3MTY1NDMzMzQwNDBlbXB0eS1jYXJ0LnBuZ1wiXHJcbiAgICAgICAgICAgICAgYWx0PVwiRW1wdHkgV2lzaGxpc3RcIiBjbGFzcz1cImVtcHR5LWltZ1wiPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktY29udGVudFwiPlxyXG4gICAgICAgICAgICA8aDIgY2xhc3M9XCJlbXB0eS10aXRsZVwiIFtzdHlsZS5jb2xvcl09XCJzdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+WW91ciBXaXNobGlzdCBpcyBFbXB0eTwvaDI+XHJcbiAgICAgICAgICAgIDxwIGNsYXNzPVwiZW1wdHktZGVzY1wiIFtzdHlsZS5jb2xvcl09XCJzdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgU2VlbXMgbGlrZSB5b3UgaGF2ZW4ndCBkaXNjb3ZlcmVkIHlvdXIgZmF2b3JpdGVzIHlldC4gRXhwbG9yZSBvdXIgdG9wIGNvbGxlY3Rpb25zIGFuZCBhZGQgd2hhdCB5b3UgbG92ZSFcclxuICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICA8IS0tIDxidXR0b24gY2xhc3M9XCJleHBsb3JlLWJ0blwiIChjbGljayk9XCJyZWRpcmVjdFRvUHJvZHVjdCh7aXRlbUlkOiAnJywgdmFyaWVudElkOiAnJ30pXCI+RXhwbG9yZSBOb3c8L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9zZWN0aW9uPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBFZGl0b3JzIC0tPlxyXG4gICAgPGRpdiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGVkaXR9XCIgKm5nSWY9XCJzaG93RWRpdG9yc1wiPlxyXG4gICAgICA8c2ltcG8taG92ZXItZWxlbWVudHMgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiIFtlZGl0T3B0aW9uc109XCJlZGl0XCI+PC9zaW1wby1ob3Zlci1lbGVtZW50cz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cInNob3dEZWxldGVcIiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGRlbGV0ZX1cIj5cclxuICAgICAgPHNpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50IFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIj48L3NpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gIDwvc2VjdGlvbj5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48bmd4LXNrZWxldG9uLWxvYWRlciAqbmdJZj1cImlzTG9hZGluZ1wiIGNvdW50PVwiMVwiIGFwcGVhcmFuY2U9XCJjaXJjbGVcIiBbdGhlbWVdPVwie1xyXG4gIHdpZHRoOiAnMTAwJScsXHJcbiAgaGVpZ2h0OiAnNDB2aCcsXHJcbiAgJ2JvcmRlci1yYWRpdXMnOiAnMTBweCcsXHJcbiAgJ3Bvc2l0aW9uJzogJ3JlbGF0aXZlJ1xyXG59XCI+PC9uZ3gtc2tlbGV0b24tbG9hZGVyPiJdfQ==
|
|
257
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2hpc2xpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvd2hpc2xpc3Qvd2hpc2xpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvd2hpc2xpc3Qvd2hpc2xpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDekYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFNL0MsT0FBTyxXQUFXLE1BQU0sK0JBQStCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRTlFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxD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QUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7K0dBN05VLGlCQUFpQjttR0FBakIsaUJBQWlCLGlNQUpqQixDQUFDLGNBQWMsQ0FBQyxpREN6QzdCLHMrTUErSHlCLHNxSkRwR3JCLE9BQU8sMElBQ1Asb0JBQW9CLG1oQkFDcEIsWUFBWTtnQkFDWixXQUFXO2dCQUNYLG1CQUFtQiwwR0FFbkIsa0JBQWtCLHlGQUNsQixtQkFBbUIsbUZBRW5CLGdCQUFnQixxRkFFaEIsY0FBYywrRUFDZCxXQUFXOzs0RkFNRixpQkFBaUI7a0JBdEI3QixTQUFTOytCQUNFLGdCQUFnQixjQUNkLElBQUksV0FDUDt3QkFDUCxPQUFPO3dCQUNQLG9CQUFvQjt3QkFDcEIsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsd0JBQXdCO3dCQUN4QixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFFbkIsZ0JBQWdCO3dCQUVoQixjQUFjO3dCQUNkLFdBQVc7cUJBQ1osYUFDVSxDQUFDLGNBQWMsQ0FBQzs0TkFNbEIsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnV0dG9uRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2J1dHRvbi1kaXJlY3RpdmUuZGlyZWN0aXZlJztcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IEFuaW1hdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9hbmltYXRpb24tZGlyZWN0aXZlJztcbmltcG9ydCB7IEhvdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2hvdmVyLWVsZW1lbnQtZGlyZWN0aXZlJztcbmltcG9ydCB7IENvbnRlbnRGaXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvY29udGVudC1maXQtZGlyZWN0aXZlJztcbmltcG9ydCB7IFNpbXBvQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9pbmRleCc7XG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NhcnQuc2VydmljZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3Jlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3VzZXIubW9kYWwnO1xuaW1wb3J0IHsgT3JkZXJlZEl0ZW1zIH0gZnJvbSAnLi4vLi4vc3R5bGVzL09yZGVyZWRJdGVtcy5tb2RhbCc7XG5pbXBvcnQgQmFzZVNlY3Rpb24gZnJvbSAnLi4vLi4vLi4vc2VjdGlvbnMvQmFzZVNlY3Rpb24nO1xuaW1wb3J0IHsgQlVTSU5FU1NfQ09OU1RBTlRTIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2J1c2luZXNzLmNvbnN0YW50JztcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgVG9hc3RNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RvYXN0JztcbmltcG9ydCB7IENhcnQgfSBmcm9tICcuLi8uLi9zdHlsZXMvY2FydC5tb2RhbCc7XG5pbXBvcnQgeyBCYWNrZ3JvdW5kRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2JhY2tncm91bmQtZGlyZWN0aXZlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPdmVybGF5RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL292ZXJsYXktZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2ltcG8td2hpc2xpc3QnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0SWNvbixcbiAgICBTaW1wb0NvbXBvbmVudE1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgLy9ESVJFQ1RJVkVcbiAgICBCYWNrZ3JvdW5kRGlyZWN0aXZlLFxuICAgIEJ1dHRvbkRpcmVjdGl2ZURpcmVjdGl2ZSxcbiAgICBBbmltYXRpb25EaXJlY3RpdmUsXG4gICAgQ29udGVudEZpdERpcmVjdGl2ZSxcblxuICAgIE92ZXJsYXlEaXJlY3RpdmUsXG5cbiAgICBIb3ZlckRpcmVjdGl2ZSxcbiAgICBUb2FzdE1vZHVsZVxuICBdLFxuICBwcm92aWRlcnM6IFtNZXNzYWdlU2VydmljZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi93aGlzbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi93aGlzbGlzdC5jb21wb25lbnQuY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBXaGlzbGlzdENvbXBvbmVudCBleHRlbmRzIEJhc2VTZWN0aW9uIGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSByZXNwb25zZURhdGE/OiBDYXJ0O1xuICBASW5wdXQoKSBkYXRhPzogYW55O1xuICBASW5wdXQoKSBpbmRleD8gOiBudW1iZXI7XG4gIEBJbnB1dCgpIGVkaXQ/IDogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGRlbGV0ZT8gOiBib29sZWFuO1xuICBASW5wdXQoKSBjdXN0b21DbGFzcz86IHN0cmluZztcbiAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgc3R5bGVzOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXJ0U2VydmljZTogQ2FydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZXZlbnRTZXJ2aWNlOiBFdmVudHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwcml2YXRlIHVzZXJEZXRhaWxzOiBhbnk7XG4gIHByaXZhdGUgVVNFUl9XSVNITElTVF9JVEVNUzogT3JkZXJlZEl0ZW1zW10gPSBbXTtcbiAgd2lzaGxpc3RJbmZvOiBhbnkgPSB7XG4gICAgb3JkZXJlZEl0ZW1zOiBudWxsLFxuICAgIGJ1c2luZXNzSWQ6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYklkXCIpID8/IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYnVzaW5lc3NJZFwiKSxcbiAgICBiaWxsZGV0YWlsczoge1xuICAgICAgXCJ0b3RhbE5ldFZhbHVlXCI6IDAsXG4gICAgICBcInRvdGFsR3Jvc3NWYWx1ZVwiOiAwLFxuICAgICAgXCJ0b3RhbFRheFwiOiAwLFxuICAgICAgXCJ0b3RhbE9mZmVyZWRWYWx1ZVwiOiAwLFxuICAgICAgXCJkZWxpdmVyeUNoYXJnZXNcIjogMFxuICAgIH0sXG4gICAgYWRkcmVzc0RldGFpbHM6IG51bGwsXG4gICAgcGxhdGZvcm06IFwiV0VCXCIsXG4gICAgY2FydFR5cGU6IFwiV0lTSExJU1RcIixcbiAgICB1c2VyRGV0YWlsczoge1xuICAgICAgXCJ1c2VySWRcIjogXCJcIixcbiAgICAgIFwidXNlck5hbWVcIjogXCJcIixcbiAgICAgIFwibW9iaWxlXCI6IFwiXCIsXG4gICAgICBcImVtYWlsXCI6IFwiXCJcbiAgICB9LFxuICAgIHRvdGFsQW1vdW50OiAwXG4gIH1cblxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3R5bGVzID0gdGhpcy5kYXRhPy5zdHlsZXM7XG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLnNob3dMb2FkaW5nU2NyZWVuLnN1YnNjcmliZSgocmVzcG9uc2UpPT4ge1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSByZXNwb25zZTtcbiAgICAgIGlmICghdGhpcy5pc0xvYWRpbmcpIHtcbiAgICAgICAgdGhpcy5nZXRXaXNobGlzdEluZGV4REJEYXRhKCk7XG4gICAgICB9XG4gICAgfSlcbiAgICBpZiAodGhpcy5zdG9yYWdlU2VydmljZS5nZXRVc2VyKCkpIHtcbiAgICAgIHRoaXMudXNlckRldGFpbHMgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXIoKSBhcyBVc2VyO1xuICAgICAgdGhpcy53aXNobGlzdEluZm8udXNlckRldGFpbHMgPSB7XG4gICAgICAgIFwidXNlcklkXCI6IHRoaXMudXNlckRldGFpbHM/LnVzZXJJZCxcbiAgICAgICAgXCJ1c2VyTmFtZVwiOiB0aGlzLnVzZXJEZXRhaWxzPy5jb250YWN0Lm5hbWUsXG4gICAgICAgIFwibW9iaWxlXCI6IHRoaXMudXNlckRldGFpbHM/LmNvbnRhY3QubW9iaWxlLFxuICAgICAgICBcImVtYWlsXCI6IHRoaXMudXNlckRldGFpbHM/LmNvbnRhY3QuZW1haWxcbiAgICAgIH1cbiAgICAgIHRoaXMucmVzdFNlcnZpY2UuZ2V0VXNlckl0ZW1zKHRoaXMudXNlckRldGFpbHMudXNlcklkLCBcIldJU0hMSVNUXCIpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSk9PiB7XG4gICAgICAgIGNvbnN0IHRlbXBVc2VyV2lzaGxpc3QgPSByZXNwb25zZT8uZGF0YT8uWzBdPy5vcmRlcmVkSXRlbXMgPz8gW11cbiAgICAgICAgdGhpcy53aXNobGlzdEluZm9bXCJjYXJ0SWRcIl0gPSByZXNwb25zZS5kYXRhPy5bMF0/LmNhcnRJZDtcbiAgICAgICAgaWYgKHJlc3BvbnNlLmRhdGE/LlswXT8ub3JkZXJlZEl0ZW1zPy5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmFkZEFsbFByb2R1Y3RUb1dpc2hsaXN0KHRlbXBVc2VyV2lzaGxpc3QpLm9uY29tcGxldGUgPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXJXaGlzaGxpc3QoKS50aGVuKCh3aXNodGxpc3RSZXNwb25zZSk9PiB7XG4gICAgICAgICAgICAgIHdpc2h0bGlzdFJlc3BvbnNlLm9uc3VjY2VzcyA9ICh3aXNobGlzdERhdGE6IGFueSkgPT4ge1xuXG4gICAgICAgICAgICAgICAgY29uc3Qgd2lzaGxpc3RSZXNwb25zZSA9IHRoaXMucmVzdFNlcnZpY2UuYWRkSXRlbVRvREIodGhpcy53aXNobGlzdEluZm8pLnRvUHJvbWlzZSgpO1xuICAgICAgICAgICAgICAgIHdpc2hsaXN0UmVzcG9uc2UuZmluYWxseSgoKT0+IHtcblxuICAgICAgICAgICAgICAgICAgdGhpcy5VU0VSX1dJU0hMSVNUX0lURU1TID0gd2lzaGxpc3REYXRhLnRhcmdldC5yZXN1bHQgYXMgdW5rbm93biBhcyBPcmRlcmVkSXRlbXNbXTtcbiAgICAgICAgICAgICAgICAgIHRoaXMud2lzaGxpc3RJbmZvLm9yZGVyZWRJdGVtcyA9IHRoaXMuVVNFUl9XSVNITElTVF9JVEVNUztcbiAgICAgICAgICAgICAgICAgIHRoaXMucmVzcG9uc2VEYXRhID0gdGhpcy53aXNobGlzdEluZm87XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5nZXRVc2VyV2hpc2hsaXN0KCkudGhlbigocmVzcG9uc2UpPT4ge1xuICAgICAgICAgICAgcmVzcG9uc2Uub25zdWNjZXNzID0gKHVzZXJXaXNobGlzdFJlc3BvbnNlOiBhbnkpPT4ge1xuXG4gICAgICAgICAgICAgIHRoaXMuVVNFUl9XSVNITElTVF9JVEVNUyA9IHVzZXJXaXNobGlzdFJlc3BvbnNlLnRhcmdldC5yZXN1bHQ7XG4gICAgICAgICAgICAgIHRoaXMud2lzaGxpc3RJbmZvLm9yZGVyZWRJdGVtcyA9IHRoaXMuVVNFUl9XSVNITElTVF9JVEVNUztcbiAgICAgICAgICAgICAgdGhpcy5yZXNwb25zZURhdGEgPSB0aGlzLndpc2hsaXN0SW5mbztcbiAgICAgICAgICAgICAgdGhpcy5yZXN0U2VydmljZS5hZGRJdGVtVG9EQih0aGlzLnJlc3BvbnNlRGF0YSkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KT0+IHtcbiAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnd2lzaGxpc3RJZCcsIHJlc3BvbnNlLmRhdGE/LmNhcnRJZCk7XG4gICAgICAgICAgICAgICAgdGhpcy53aXNobGlzdEluZm9bXCJjYXJ0SWRcIl0gPSByZXNwb25zZS5kYXRhPy5jYXJ0SWQ7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNwb25zZURhdGEgPSB0aGlzLndpc2hsaXN0SW5mbztcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0gZWxzZSB7XG5cbiAgICAgIHRoaXMuZ2V0V2lzaGxpc3RJbmRleERCRGF0YSgpO1xuICAgIH1cbiAgfVxuXG4gIG1vdmVUb0NhcnQocHJvZHVjdDogT3JkZXJlZEl0ZW1zKSB7XG4gICAgaWYgKCFwcm9kdWN0LnF1YW50aXR5KVxuICAgICAgcHJvZHVjdC5xdWFudGl0eSA9IDE7XG5cbiAgICBjb25zdCB1c2VyRGV0YWlscyA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VXNlcigpO1xuICAgIGlmICghIXVzZXJEZXRhaWxzKSB7XG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgICBcIml0ZW1zXCI6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIml0ZW1JZFwiOiBwcm9kdWN0Lml0ZW1JZCxcbiAgICAgICAgICAgIFwiYnVzaW5lc3NJZFwiOiBwcm9kdWN0LmJ1c2luZXNzSWQsXG4gICAgICAgICAgICBcIml0ZW1OYW1lXCI6IHByb2R1Y3QuaXRlbU5hbWUsXG4gICAgICAgICAgICBcImJ1c2luZXNzTmFtZVwiOiBwcm9kdWN0LmJ1c2luZXNzTmFtZSxcbiAgICAgICAgICAgIFwiaW1nVXJsXCI6IHByb2R1Y3QuaW1nVXJsLFxuICAgICAgICAgICAgXCJ0YXhDYXRlZ29yeVwiOiBcIk5PTl9NUlBcIixcbiAgICAgICAgICAgIFwicXVhbnRpdHlcIjogcHJvZHVjdC5xdWFudGl0eSxcbiAgICAgICAgICAgIFwicHJpY2VcIjogcHJvZHVjdC5wcmljZSxcbiAgICAgICAgICAgIFwiaXRlbVRheFwiOiBwcm9kdWN0Lml0ZW1UYXgsXG4gICAgICAgICAgICBcImRpc2NvdW50ZWRQcmljZVwiOiBwcm9kdWN0LmRpc2NvdW50ZWRQcmljZVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgICAgdGhpcy5yZXN0U2VydmljZS5tb3ZlSXRlbVRvQ2FydCh1c2VyRGV0YWlscy51c2VySWQsIHBheWxvYWQpLnN1YnNjcmliZSgocmVzcG9uc2UpPT4ge30pXG4gICAgfVxuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5zdG9yYWdlU2VydmljZS5hZGRQcm9kdWN0VG9DYXJ0KHByb2R1Y3QpO1xuICAgIHRyYW5zYWN0aW9uLm9uc3VjY2VzcyA9ICh3aXNobGlzdFJlc3BvbnNlKSA9PiB7XG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnJlbW92ZVByb2R1Y3RGcm9tV2lzaGxpc3QocHJvZHVjdC5pdGVtSWQpLm9uc3VjY2VzcyA9ICh3aXNsaXN0UmVzcG9uc2UpID0+IHtcbiAgICAgICAgLy8gdGhpcy5zdG9yYWdlU2VydmljZS5hZGRQcm9kdWN0VG9DYXJ0KHByb2R1Y3QpLm9uc3VjY2VzcyA9IChjYXJ0UmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB0aGlzLlVTRVJfV0lTSExJU1RfSVRFTVMgPSB0aGlzLlVTRVJfV0lTSExJU1RfSVRFTVMuZmlsdGVyKChpdGVtOiBPcmRlcmVkSXRlbXMpPT4gaXRlbS52YXJpZW50SWQgIT0gcHJvZHVjdC52YXJpZW50SWQpO1xuICAgICAgICAgIHRoaXMud2lzaGxpc3RJbmZvLm9yZGVyZWRJdGVtcyA9IHRoaXMuVVNFUl9XSVNITElTVF9JVEVNUztcbiAgICAgICAgICB0aGlzLnJlc3BvbnNlRGF0YSA9IHRoaXMud2lzaGxpc3RJbmZvO1xuICAgICAgICAvLyB9XG4gICAgICB9XG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnc3VjY2VzcycsIHN1bW1hcnk6ICdNb3ZlIHRvIGNhcnQnLCBkZXRhaWw6ICdJdGVtIHN1Y2Nlc3NmdWxseSBtb3ZlZCB0byBjYXJ0JyB9KTtcbiAgICB9XG4gICAgdHJhbnNhY3Rpb24ub25lcnJvciA9ICh3aXNobGlzdFJlc3BvbnNlKSA9PiB7XG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnRmFpbHVyZScsIGRldGFpbDogJ0ZhaWxlZCB0byBtb3ZlIGl0ZW0gdG8gY2FydCcgfSk7XG4gICAgfVxuICB9XG4gIGdldFdpc2hsaXN0SW5kZXhEQkRhdGEoKSB7XG5cbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXJXaGlzaGxpc3QoKS50aGVuKChyZXNwb25zZSk9PiB7XG4gICAgICByZXNwb25zZS5vbnN1Y2Nlc3MgPSAodXNlcldpc2hsaXN0UmVzcG9uc2U6IGFueSk9PiB7XG5cbiAgICAgICAgdGhpcy5VU0VSX1dJU0hMSVNUX0lURU1TID0gdXNlcldpc2hsaXN0UmVzcG9uc2UudGFyZ2V0LnJlc3VsdDtcbiAgICAgICAgdGhpcy53aXNobGlzdEluZm8ub3JkZXJlZEl0ZW1zID0gdGhpcy5VU0VSX1dJU0hMSVNUX0lURU1TO1xuICAgICAgICB0aGlzLnJlc3BvbnNlRGF0YSA9IHRoaXMud2lzaGxpc3RJbmZvO1xuICAgICAgfVxuICAgIH0pXG4gIH1cbiAgZGVsZXRlRnJvbVdoaXNsaXN0KHByb2R1Y3Q6IE9yZGVyZWRJdGVtcykge1xuICAgIHRoaXMuVVNFUl9XSVNITElTVF9JVEVNUyA9IHRoaXMuVVNFUl9XSVNITElTVF9JVEVNUy5maWx0ZXIoKGl0ZW06IE9yZGVyZWRJdGVtcyk9PiBpdGVtLnZhcmllbnRJZCAhPSBwcm9kdWN0LnZhcmllbnRJZCk7XG4gICAgdGhpcy53aXNobGlzdEluZm8ub3JkZXJlZEl0ZW1zID0gdGhpcy5VU0VSX1dJU0hMSVNUX0lURU1TO1xuICAgIHRoaXMucmVzcG9uc2VEYXRhID0gdGhpcy53aXNobGlzdEluZm87XG4gICAgaWYgKHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VXNlcigpKSB7XG4gICAgICB0aGlzLmNhcnRTZXJ2aWNlLnJlbW92ZUl0ZW1Gcm9tV2lzaGxpc3RQYWdlKHByb2R1Y3QsIHRoaXMud2lzaGxpc3RJbmZvKS5zdWJzY3JpYmUoKHJlc3BvbnNlKT0+IHt9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdHJhbnNhY3Rpb24gPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnJlbW92ZVByb2R1Y3RGcm9tV2lzaGxpc3QocHJvZHVjdC52YXJpZW50SWQpO1xuICAgIH1cbiAgfVxuICBhZGRUb0ZhdihpdGVtOiBPcmRlcmVkSXRlbXMsIHR5cGU6ICdBREQnIHwgJ1NVQlNUUkFDVCcpIHtcbiAgICBpZiAodHlwZSA9PSAnQUREJylcbiAgICAgIGl0ZW0ucXVhbnRpdHkgKz0gMTtcbiAgICBlbHNlXG4gICAgICBpdGVtLnF1YW50aXR5IC09IDE7XG4gICAgaWYgKHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VXNlcigpKSB7XG4gICAgICB0aGlzLndpc2hsaXN0SW5mby5vcmRlcmVkSXRlbXM/LmZvckVhY2goKHByb2R1Y3Q6IE9yZGVyZWRJdGVtcyk9PiB7XG4gICAgICAgIGlmIChpdGVtLnZhcmllbnRJZCA9PSBwcm9kdWN0LnZhcmllbnRJZClcbiAgICAgICAgICBwcm9kdWN0LnF1YW50aXR5ID0gaXRlbS5xdWFudGl0eTtcbiAgICAgIH0pXG4gICAgICB0aGlzLmNhcnRTZXJ2aWNlLmFkZEl0ZW1Gcm9tV2lzaGxpc3RQYWdlKGl0ZW0sIHRoaXMud2lzaGxpc3RJbmZvKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpPT4ge30pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmFkZFByb2R1Y3RUb1dpc2hsaXN0KGl0ZW0pO1xuICAgIH1cbiAgfVxuICBnZXRLZXlzKG9iamVjdDogT2JqZWN0KTogc3RyaW5nW10ge1xuICAgIGlmIChvYmplY3QpXG4gICAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqZWN0KTtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgZWRpdFNlY3Rpb24oKXtcblxuICAgIGlmKHdpbmRvdy5pbm5lcldpZHRoIDw9IDQ3NSlcbiAgICAgIHJldHVybjtcblxuICAgIHRoaXMuX2V2ZW50U2VydmljZS50b2dnbGVFZGl0b3JFdmVudC5lbWl0KGZhbHNlKTtcbiAgICBzZXRUaW1lb3V0KCgpPT4ge1xuICAgICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmVkaXRTZWN0aW9uLmVtaXQoe2RhdGE6dGhpcy5kYXRhfSk7XG4gICAgfSwgMTAwKTtcbiAgfVxuICBnZXQgaXNNb2JpbGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoIDwgNDc1O1xuICB9XG4gIGdldCBjdXJyZW5jeSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBCVVNJTkVTU19DT05TVEFOVFMuQ1VSUkVOQ1k7XG4gIH1cblxuICBwcml2YXRlIHRvU2x1ZyhpbnB1dDogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICghaW5wdXQpXG4gICAgICByZXR1cm4gbnVsbDtcblxuICAgIGNvbnN0IG5vV2hpdGVzcGFjZSA9IGlucHV0LnJlcGxhY2UoL1xccysvZywgJy0nKTtcbiAgICBjb25zdCBub3JtYWxpemVkID0gbm9XaGl0ZXNwYWNlLm5vcm1hbGl6ZSgnTkZEJyk7XG4gICAgY29uc3Qgc2x1ZyA9IG5vcm1hbGl6ZWQucmVwbGFjZSgvW15cXHctXS9nLCAnJyk7XG5cbiAgICByZXR1cm4gc2x1Z1xuICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgIC5yZXBsYWNlKC8tKy9nLCAnLScpXG4gICAgICAucmVwbGFjZSgvXi18LSQvZywgJycpO1xuICB9XG5cbiAgcmVkaXJlY3RUb1Byb2R1Y3QocHJvZHVjdDogT3JkZXJlZEl0ZW1zKSB7XG4gICAgY29uc3Qgc2x1ZyA9IHByb2R1Y3Quc2x1Z2lmaWVkTmFtZSB8fCB0aGlzLnRvU2x1Zyhwcm9kdWN0Lml0ZW1OYW1lKTtcbiAgICBpZiAoIXNsdWcpXG4gICAgICByZXR1cm47XG5cbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9kZXRhaWxzJywgc2x1Z10pO1xuICB9XG59XG4iLCI8cC10b2FzdCBwb3NpdGlvbj1cImJvdHRvbS1yaWdodFwiIFtiYXNlWkluZGV4XT1cIjEwMDAwMDAwMDAwXCIgW2F1dG9aSW5kZXhdPVwidHJ1ZVwiXG4gIFtzaG93VHJhbnNmb3JtT3B0aW9uc109XCJpc01vYmlsZSA/ICd0cmFuc2xhdGVZKC0xMDAlKScgOiAnJ1wiPjwvcC10b2FzdD5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0xvYWRpbmdcIj5cbiAgPHNlY3Rpb24gY2xhc3M9XCJ0b3RhbC1jb250YWluZXJcIiBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9CYWNrZ3JvdW5kXT1cInN0eWxlcz8uYmFja2dyb3VuZFwiIHNpbXBvSG92ZXJcbiAgICAoaG92ZXJpbmcpPVwic2hvd0VkaXRUYWJzKCRldmVudClcIiBbYXR0ci5zdHlsZV09XCJjdXN0b21DbGFzc1wiPlxuXG4gICAgPGRpdiBjbGFzcz1cIndpc2hsaXN0LXdyYXBwZXJcIiBbc2ltcG9PdmVybGF5XT1cInN0eWxlcz8uYmFja2dyb3VuZFwiIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0xheW91dF09XCJzdHlsZXM/LmxheW91dFwiPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyIGNvbnRhaW5lci1jdXN0b21cIiAqbmdJZj1cIihyZXNwb25zZURhdGE/Lm9yZGVyZWRJdGVtcz8ubGVuZ3RoIHx8IDApID4gMFwiIFtpZF09XCJkYXRhPy5pZFwiXG4gICAgICAgIFtzaW1wb0FuaW1hdGlvbl09XCJzdHlsZXM/LmFuaW1hdGlvblwiPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3aXNobGlzdC1oZWFkZXJcIj5cbiAgICAgICAgICA8aDEgY2xhc3M9XCJ3aXNobGlzdC10aXRsZVwiPlxuICAgICAgICAgICAgWW91ciBXaXNobGlzdCA8c3BhbiBjbGFzcz1cIml0ZW0tY291bnRcIj4oe3tyZXNwb25zZURhdGE/Lm9yZGVyZWRJdGVtcz8ubGVuZ3RofX0gSXRlbXMpPC9zcGFuPlxuICAgICAgICAgIDwvaDE+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3aXNobGlzdC1pdGVtcy1jb250YWluZXJcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHJlc3BvbnNlRGF0YT8ub3JkZXJlZEl0ZW1zOyBsZXQgaWR4ID0gaW5kZXhcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3aXNobGlzdC1pdGVtLXJvd1wiIFtuZ0NsYXNzXT1cInsgJ3NpbmdsZS1pdGVtJzogcmVzcG9uc2VEYXRhPy5vcmRlcmVkSXRlbXM/Lmxlbmd0aCA9PT0gMSB9XCI+XG5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tbGVmdFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWltYWdlXCIgKGNsaWNrKT1cInJlZGlyZWN0VG9Qcm9kdWN0KGl0ZW0pXCI+XG4gICAgICAgICAgICAgICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgW3NyY109XCJpdGVtLmltZ1VybCA/PyAnaHR0cHM6Ly9pLnBvc3RpbWcuY2MvaFBTMkpwVjAvbm8taW1hZ2UtYXZhaWxhYmxlLmpwZydcIlxuICAgICAgICAgICAgICAgICAgICBvbmVycm9yPVwidGhpcy5zcmM9J2h0dHBzOi8vaS5wb3N0aW1nLmNjL2hQUzJKcFYwL25vLWltYWdlLWF2YWlsYWJsZS5qcGcnXCIgY2xhc3M9XCJwcm9kdWN0LWltYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgYWx0PVwie3tpdGVtLml0ZW1OYW1lfX1cIj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWRldGFpbHNcIj5cbiAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInByb2R1Y3QtbmFtZVwiIChjbGljayk9XCJyZWRpcmVjdFRvUHJvZHVjdChpdGVtKVwiPlxuICAgICAgICAgICAgICAgICAgICB7e2l0ZW0uaXRlbU5hbWV9fVxuICAgICAgICAgICAgICAgICAgPC9oMz5cblxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZhcmlhbnRzLWJveFwiICpuZ0lmPVwiaXRlbS5pdGVtVmFyaWFudFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFyaWFudC1pdGVtXCIgKm5nRm9yPVwibGV0IHZhcmlhbnQgb2YgZ2V0S2V5cyhpdGVtLml0ZW1WYXJpYW50LnByb3BlcnRpZXMpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YXJpYW50LXZhbHVlXCI+e3sgaXRlbS5pdGVtVmFyaWFudC5wcm9wZXJ0aWVzW3ZhcmlhbnRdIHwgdGl0bGVjYXNlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1yaWdodFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJxdWFudGl0eS1jb250cm9sLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJxdWFudGl0eS1jb250cm9sXCIgKm5nSWY9XCJpdGVtLnF1YW50aXR5XCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJxdHktYnRuXCIgKGNsaWNrKT1cImFkZFRvRmF2KGl0ZW0sICdTVUJTVFJBQ1QnKVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5yZW1vdmU8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJxdHktdmFsdWUgcHgtM1wiPnt7aXRlbS5xdWFudGl0eX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwicXR5LWJ0blwiIChjbGljayk9XCJhZGRUb0ZhdihpdGVtLCAnQUREJylcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGQtcXR5LXRyaWdnZXJcIiAqbmdJZj1cIiFpdGVtLnF1YW50aXR5XCIgKGNsaWNrKT1cImFkZFRvRmF2KGl0ZW0sICdBREQnKVwiPlxuICAgICAgICAgICAgICAgICAgICBBZGQgUXVhbnRpdHlcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXNlY3Rpb25cIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LXByaWNlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3VycmVuY3lcIiBbaW5uZXJIVE1MXT1cImN1cnJlbmN5XCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFtb3VudFwiPnt7aXRlbS5kaXNjb3VudGVkUHJpY2UgPz8gaXRlbS5zZWxsaW5nUHJpY2V9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbnMtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb24tYnRuIG1vdmUtdG8tY2FydC1zdmdcIiAoY2xpY2spPVwibW92ZVRvQ2FydChpdGVtKVwiIHBUb29sdGlwPVwiTW92ZSB0byBDYXJ0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsdWNpZGUgbHVjaWRlLXNob3BwaW5nLWNhcnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiOFwiIGN5PVwiMjFcIiByPVwiMVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE5XCIgY3k9XCIyMVwiIHI9XCIxXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTIuMDUgMi4wNWgybDIuNjYgMTIuNDJhMiAyIDAgMCAwIDIgMS41OGg5Ljc4YTIgMiAwIDAgMCAxLjk1LTEuNTdsMS42NS03LjQzSDUuMTJcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVsZXRlLWJ0bi1jaXJjbGVcIiAoY2xpY2spPVwiZGVsZXRlRnJvbVdoaXNsaXN0KGl0ZW0pXCIgcFRvb2x0aXA9XCJSZW1vdmVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgY2xhc3M9XCJsdWNpZGUgbHVjaWRlLXRyYXNoLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTMgNmgxOFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xOSA2djE0YzAgMS0xIDItMiAySDdjLTEgMC0yLTEtMi0yVjZcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOCA2VjRjMC0xIDEtMiAyLTJoNGMxIDAgMiAxIDIgMnYyXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8bGluZSB4MT1cIjEwXCIgeDI9XCIxMFwiIHkxPVwiMTFcIiB5Mj1cIjE3XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8bGluZSB4MT1cIjE0XCIgeDI9XCIxNFwiIHkxPVwiMTFcIiB5Mj1cIjE3XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBFbXB0eSBXaXNobGlzdCBTdGF0ZSAtLT5cbiAgICAgIDxzZWN0aW9uIGNsYXNzPVwiZW1wdHktd2lzaGxpc3RcIiAqbmdJZj1cIihyZXNwb25zZURhdGE/Lm9yZGVyZWRJdGVtcz8ubGVuZ3RoIHx8IDApID09IDBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eS1pY29uLXdyYXBwZXJcIj5cbiAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9wcm9kLXNpbXBvLnMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbS9wcm9kLWltYWdlcy8xMDcyMTNjMTcxNjU0MzMzNDA0MGVtcHR5LWNhcnQucG5nXCJcbiAgICAgICAgICAgICAgYWx0PVwiRW1wdHkgV2lzaGxpc3RcIiBjbGFzcz1cImVtcHR5LWltZ1wiPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eS1jb250ZW50XCI+XG4gICAgICAgICAgICA8aDIgY2xhc3M9XCJlbXB0eS10aXRsZVwiIFtzdHlsZS5jb2xvcl09XCJzdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+WW91ciBXaXNobGlzdCBpcyBFbXB0eTwvaDI+XG4gICAgICAgICAgICA8cCBjbGFzcz1cImVtcHR5LWRlc2NcIiBbc3R5bGUuY29sb3JdPVwic3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPlxuICAgICAgICAgICAgICBTZWVtcyBsaWtlIHlvdSBoYXZlbid0IGRpc2NvdmVyZWQgeW91ciBmYXZvcml0ZXMgeWV0LiBFeHBsb3JlIG91ciB0b3AgY29sbGVjdGlvbnMgYW5kIGFkZCB3aGF0IHlvdSBsb3ZlIVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPCEtLSA8YnV0dG9uIGNsYXNzPVwiZXhwbG9yZS1idG5cIiAoY2xpY2spPVwicmVkaXJlY3RUb1Byb2R1Y3Qoe2l0ZW1JZDogJycsIHZhcmllbnRJZDogJyd9KVwiPkV4cGxvcmUgTm93PC9idXR0b24+IC0tPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvc2VjdGlvbj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gRWRpdG9ycyAtLT5cbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZWRpdH1cIiAqbmdJZj1cInNob3dFZGl0b3JzXCI+XG4gICAgICA8c2ltcG8taG92ZXItZWxlbWVudHMgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiIFtlZGl0T3B0aW9uc109XCJlZGl0XCI+PC9zaW1wby1ob3Zlci1lbGVtZW50cz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0RlbGV0ZVwiIFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZGVsZXRlfVwiPlxuICAgICAgPHNpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50IFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIj48L3NpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50PlxuICAgIDwvZGl2PlxuXG4gIDwvc2VjdGlvbj5cbjwvbmctY29udGFpbmVyPlxuXG48bmd4LXNrZWxldG9uLWxvYWRlciAqbmdJZj1cImlzTG9hZGluZ1wiIGNvdW50PVwiMVwiIGFwcGVhcmFuY2U9XCJjaXJjbGVcIiBbdGhlbWVdPVwie1xuICB3aWR0aDogJzEwMCUnLFxuICBoZWlnaHQ6ICc0MHZoJyxcbiAgJ2JvcmRlci1yYWRpdXMnOiAnMTBweCcsXG4gICdwb3NpdGlvbic6ICdyZWxhdGl2ZSdcbn1cIj48L25neC1za2VsZXRvbi1sb2FkZXI+Il19
|
|
@@ -21,4 +21,4 @@ export class OrderedItems {
|
|
|
21
21
|
});
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JkZXJlZEl0ZW1zLm1vZGFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc3R5bGVzL09yZGVyZWRJdGVtcy5tb2RhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sWUFBWTtJQWdCckIsWUFBWSxJQUEwQixFQUFFLFNBQWtCO1FBQ3RELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDMUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBRXhCLElBQUksRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLE9BQW9CLEVBQUMsRUFBRTtZQUNuRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDO1lBQy9CLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHYxIGFzIHV1aWR2MSB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgSXRlbVZhcmlhbnQgfSBmcm9tICcuL3Byb2R1Y3QubW9kYWwnO1xuZXhwb3J0IGNsYXNzIE9yZGVyZWRJdGVtcyB7XG4gICAgaXRlbUlkOiBzdHJpbmc7XG4gICAgdmFyaWVudElkOiBzdHJpbmc7XG4gICAgYnVzaW5lc3NJZDogc3RyaW5nO1xuICAgIGl0ZW1OYW1lOiBzdHJpbmc7XG4gICAgc2x1Z2lmaWVkTmFtZTogc3RyaW5nO1xuICAgIGl0ZW1WYXJpYW50OiBJdGVtVmFyaWFudCB8IG51bGw7IFxuICAgIGJ1c2luZXNzTmFtZTogc3RyaW5nO1xuICAgIGltZ1VybDogc3RyaW5nO1xuICAgIHByaWNlOiBudW1iZXI7XG4gICAgc2VsbGluZ1ByaWNlOiBudW1iZXI7XG4gICAgaXRlbVRheDogbnVtYmVyO1xuICAgIHF1YW50aXR5OiBudW1iZXI7XG4gICAgZGlzY291bnRlZFByaWNlOiBudW1iZXI7XG4gICAgdGF4QWZ0ZXJEaXNjb3VudDogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IoanNvbj86e1trZXk6IHN0cmluZ106IGFueX0sIHZhcmllbnRJZD86IHN0cmluZykge1xuICAgICAgICB0aGlzLml0ZW1JZCA9IGpzb24/LltcIml0ZW1JZFwiXSA/PyBcIlwiO1xuICAgICAgICB0aGlzLnZhcmllbnRJZCA9IHZhcmllbnRJZCA/PyB0aGlzLml0ZW1JZDtcbiAgICAgICAgdGhpcy5idXNpbmVzc0lkID0ganNvbj8uW1wiYnVzaW5lc3NJZFwiXTtcbiAgICAgICAgdGhpcy5pdGVtTmFtZSA9IGpzb24/LltcIm5hbWVcIl07XG4gICAgICAgIHRoaXMuc2x1Z2lmaWVkTmFtZSA9IGpzb24/LltcInNsdWdpZmllZE5hbWVcIl07XG4gICAgICAgIHRoaXMuYnVzaW5lc3NOYW1lID0ganNvbj8uW1wiYnVzaW5lc3NOYW1lXCJdO1xuICAgICAgICB0aGlzLmltZ1VybCA9IGpzb24/LltcIml0ZW1JbWFnZXNcIl0/LlswXT8uW1wiaW1nVXJsXCJdO1xuICAgICAgICB0aGlzLnNlbGxpbmdQcmljZSA9IGpzb24/LltcInByaWNlXCJdPy5bXCJzZWxsaW5nUHJpY2VcIl07XG4gICAgICAgIHRoaXMucHJpY2UgPSBqc29uPy5bXCJwcmljZVwiXT8uW1widmFsdWVcIl07XG4gICAgICAgIHRoaXMuaXRlbVRheCA9IGpzb24/LltcInByaWNlXCJdPy5bXCJ0YXhBbW91bnRcIl07XG4gICAgICAgIHRoaXMucXVhbnRpdHkgPSBqc29uPy5bXCJxdWFudGl0eVwiXTtcbiAgICAgICAgdGhpcy5kaXNjb3VudGVkUHJpY2UgPSBqc29uPy5bXCJwcmljZVwiXT8uW1wiZGlzY291bnRlZFByaWNlXCJdO1xuICAgICAgICB0aGlzLnRheEFmdGVyRGlzY291bnQgPSBqc29uPy5bXCJ0YXhBZnRlckRpc2NvdW50XCJdO1xuICAgICAgICB0aGlzLml0ZW1WYXJpYW50ID0gbnVsbDtcblxuICAgICAgICBqc29uPy5bXCJpdGVtVmFyaWFudFwiXT8uZm9yRWFjaCgodmFyaWVudDogSXRlbVZhcmlhbnQpPT4ge1xuICAgICAgICAgICAgaWYgKHZhcmllbnQudmFyaWFudElkID09IHZhcmllbnRJZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXRlbVZhcmlhbnQgPSB2YXJpZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cbn1cbiJdfQ==
|