simpo-component-library 3.6.130 → 3.6.132
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -24
- package/esm2022/lib/components/delete-hover-element/delete-hover-element.component.mjs +5 -5
- package/esm2022/lib/components/document/document.component.mjs +5 -5
- package/esm2022/lib/components/hover-elements/hover-elements.component.mjs +4 -4
- package/esm2022/lib/components/image-loading/image-loading.component.mjs +5 -5
- package/esm2022/lib/components/index.mjs +5 -5
- package/esm2022/lib/components/input-fields/input-fields.component.mjs +4 -4
- package/esm2022/lib/components/payment-details/payment-details.component.mjs +5 -5
- package/esm2022/lib/components/trasport-availability/trasport-availability.component.mjs +4 -4
- package/esm2022/lib/constants/business.constant.mjs +1 -1
- package/esm2022/lib/directive/alignment.directive.mjs +4 -4
- package/esm2022/lib/directive/animation-directive.mjs +4 -4
- package/esm2022/lib/directive/background-directive.mjs +5 -4
- package/esm2022/lib/directive/banner-content-fit-directive.mjs +4 -4
- package/esm2022/lib/directive/blur-content.directive.mjs +4 -4
- package/esm2022/lib/directive/border-directive.mjs +4 -4
- package/esm2022/lib/directive/borderlessImage.directive.mjs +4 -4
- package/esm2022/lib/directive/button-directive.directive.mjs +28 -29
- package/esm2022/lib/directive/button-editor.directive.mjs +6 -6
- package/esm2022/lib/directive/color.directive.mjs +4 -4
- package/esm2022/lib/directive/column-directive.directive.mjs +4 -4
- package/esm2022/lib/directive/container-alignment.directive.mjs +4 -4
- package/esm2022/lib/directive/container-fir.directive.mjs +4 -4
- package/esm2022/lib/directive/content-alignment-directive.mjs +4 -4
- package/esm2022/lib/directive/content-fit-directive.mjs +4 -4
- package/esm2022/lib/directive/content-title-spacing.directive.mjs +4 -4
- package/esm2022/lib/directive/contenteditable.directive.mjs +4 -4
- package/esm2022/lib/directive/corner-directive.mjs +4 -4
- package/esm2022/lib/directive/footer-layout-directive.mjs +4 -4
- package/esm2022/lib/directive/height.directive.mjs +4 -4
- package/esm2022/lib/directive/hover-animation.directive.mjs +4 -5
- package/esm2022/lib/directive/hover-element-directive.mjs +4 -4
- package/esm2022/lib/directive/hoverborder.directive.mjs +4 -4
- package/esm2022/lib/directive/image-container.directive.mjs +4 -4
- package/esm2022/lib/directive/image-directive.directive.mjs +4 -4
- package/esm2022/lib/directive/image-editor.directive.mjs +4 -4
- package/esm2022/lib/directive/image-position.directive.mjs +4 -4
- package/esm2022/lib/directive/overlay-directive.mjs +4 -4
- package/esm2022/lib/directive/position-layout-directive.directive.mjs +4 -4
- package/esm2022/lib/directive/removeCarousel-directive.mjs +4 -4
- package/esm2022/lib/directive/set-dynamic-background.directive.mjs +4 -4
- package/esm2022/lib/directive/spacing-around.directive.mjs +4 -4
- package/esm2022/lib/directive/spacing-horizontal.directive.mjs +4 -4
- package/esm2022/lib/directive/spacing.directive.mjs +4 -4
- package/esm2022/lib/directive/sticky-directive.mjs +4 -4
- package/esm2022/lib/directive/text-background-directive.directive.mjs +4 -4
- package/esm2022/lib/directive/text-size.directive.mjs +4 -4
- package/esm2022/lib/directive/translate-onhover.directive.mjs +4 -4
- package/esm2022/lib/directive/wrap-containers.directive.mjs +4 -4
- package/esm2022/lib/ecommerce/sections/address/address.component.mjs +6 -6
- package/esm2022/lib/ecommerce/sections/authenticate-user/authenticate-user.component.mjs +5 -5
- package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.component.mjs +59 -8
- package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.model.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/cart/cart.component.mjs +5 -5
- package/esm2022/lib/ecommerce/sections/cart/cart.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/category-product/category-product.component.mjs +5 -5
- package/esm2022/lib/ecommerce/sections/category-product/category-product.model.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/checkout/checkout.component.mjs +5 -5
- package/esm2022/lib/ecommerce/sections/checkout/checkout.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/customer-review/customer-review.component.mjs +5 -5
- package/esm2022/lib/ecommerce/sections/customer-review/customer-review.model.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/featured-category/featured-category.component.mjs +5 -5
- package/esm2022/lib/ecommerce/sections/featured-category/featured-category.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/featured-category/featured-collection.component.mjs +5 -5
- package/esm2022/lib/ecommerce/sections/featured-products/featured-products.component.mjs +15 -7
- package/esm2022/lib/ecommerce/sections/featured-products/featured-products.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/item-varient/item-varient.component.mjs +5 -5
- package/esm2022/lib/ecommerce/sections/new-collection/new-collection.component.mjs +5 -7
- package/esm2022/lib/ecommerce/sections/new-collection/new-collection.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/order-details/order-details.component.mjs +7 -6
- package/esm2022/lib/ecommerce/sections/pagnination/pagnination.component.mjs +5 -5
- package/esm2022/lib/ecommerce/sections/product-category-list/product-category-list.component.mjs +5 -5
- package/esm2022/lib/ecommerce/sections/product-category-list/product-category-list.model.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/product-desc/product-desc.component.mjs +27 -8
- 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 -18
- package/esm2022/lib/ecommerce/sections/product-list/product-list.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/small-product-listing/small-product-listing.component.mjs +5 -5
- package/esm2022/lib/ecommerce/sections/store-list/store-list.component.mjs +8 -5
- package/esm2022/lib/ecommerce/sections/store-list/store-list.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/store-page/store-page.component.mjs +12 -12
- package/esm2022/lib/ecommerce/sections/store-page/store-page.model.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/user-basic-info/user-basic-info.component.mjs +7 -6
- package/esm2022/lib/ecommerce/sections/user-profile/user-profile.component.mjs +5 -5
- package/esm2022/lib/ecommerce/sections/user-profile/user-profile.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/verify-payment/verify-payment.component.mjs +5 -5
- package/esm2022/lib/ecommerce/sections/verify-payment/verify-payment.model.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/whislist/whislist.component.mjs +5 -5
- package/esm2022/lib/ecommerce/styles/BaseCollection.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/Collection.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/OrderedItems.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/PincodeLocation.model.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/PincodeLocationInter.model.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/cart.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/category.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/order.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/product.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/review.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/user.modal.mjs +1 -1
- package/esm2022/lib/elements/add-section/add-section.component.mjs +5 -6
- package/esm2022/lib/elements/address-list/address-list.component.mjs +5 -5
- package/esm2022/lib/elements/below-image-card/below-image-card.component.mjs +6 -14
- package/esm2022/lib/elements/button/button.component.mjs +5 -5
- package/esm2022/lib/elements/button/button.model.mjs +1 -1
- package/esm2022/lib/elements/card-skeleton-loader/card-skeleton-loader.component.mjs +5 -5
- package/esm2022/lib/elements/covering-image-card/covering-image-card.component.mjs +5 -5
- package/esm2022/lib/elements/editor-service.service.mjs +4 -4
- package/esm2022/lib/elements/heading-element/heading-element.component.mjs +5 -5
- package/esm2022/lib/elements/image-editor/image-editor.component.mjs +5 -6
- package/esm2022/lib/elements/index.mjs +5 -5
- package/esm2022/lib/elements/link-editor/link-editor.component.mjs +12 -23
- package/esm2022/lib/elements/media-selector/media-selector.component.mjs +5 -7
- package/esm2022/lib/elements/navbar-button-element/navbar-button-element.component.mjs +4 -5
- package/esm2022/lib/elements/portfolio/portfolio.component.mjs +5 -5
- package/esm2022/lib/elements/pricing-s1/pricing-s1.component.mjs +5 -5
- package/esm2022/lib/elements/property/property.component.mjs +5 -5
- package/esm2022/lib/elements/simpo-button/simpo-button.component.mjs +5 -5
- package/esm2022/lib/elements/socia-icons/socia-icons.component.mjs +4 -4
- package/esm2022/lib/elements/svg-divider/svg-divider.component.mjs +5 -5
- package/esm2022/lib/elements/text/text.component.mjs +5 -5
- package/esm2022/lib/elements/text-editor/text-editor.component.mjs +22 -5
- package/esm2022/lib/elements/top-of-image-card/top-of-image-card.component.mjs +5 -5
- package/esm2022/lib/pipes/amount.pipe.mjs +4 -4
- package/esm2022/lib/pipes/gender.pipe.mjs +4 -4
- package/esm2022/lib/sections/BaseSection.mjs +1 -1
- package/esm2022/lib/sections/add-new-section/add-new-section.component.mjs +5 -5
- package/esm2022/lib/sections/appointment-form/appointment-form.component.mjs +155 -96
- package/esm2022/lib/sections/appointment-form/appointment-form.model.mjs +1 -1
- package/esm2022/lib/sections/banner-carousel/banner-carousel.component.mjs +5 -30
- package/esm2022/lib/sections/banner-carousel/banner-carousel.model.mjs +1 -1
- package/esm2022/lib/sections/banner-grid-section/banner-grid-section.component.mjs +5 -6
- package/esm2022/lib/sections/banner-section/banner-section.component.mjs +4 -5
- package/esm2022/lib/sections/blog-list/blog-list.component.mjs +5 -5
- package/esm2022/lib/sections/blog-list/blog-list.model.mjs +1 -1
- package/esm2022/lib/sections/carousel-banner/carousel-banner.component.mjs +4 -4
- package/esm2022/lib/sections/choose-us-section/choose-us-section.component.mjs +5 -5
- package/esm2022/lib/sections/choose-us-section/choose-us-section.model.mjs +1 -1
- package/esm2022/lib/sections/contact-us/contact-us.component.mjs +4 -4
- package/esm2022/lib/sections/faq-section/faq-section.component.mjs +5 -5
- package/esm2022/lib/sections/faq-section/faq-section.modal.mjs +1 -1
- package/esm2022/lib/sections/features-section/features-section.component.mjs +5 -5
- package/esm2022/lib/sections/features-section/features-section.model.mjs +1 -1
- package/esm2022/lib/sections/footer/footer.component.mjs +5 -8
- package/esm2022/lib/sections/footer/footer.modal.mjs +1 -1
- package/esm2022/lib/sections/footer-section/footer-section.component.mjs +4 -4
- package/esm2022/lib/sections/header-section/header-section.component.mjs +5 -5
- package/esm2022/lib/sections/header-section/header-section.model.mjs +1 -1
- package/esm2022/lib/sections/header-text/header-text.component.mjs +5 -5
- package/esm2022/lib/sections/header-text/header-text.model.mjs +1 -1
- package/esm2022/lib/sections/image-carousel-section/image-carousel-section.component.mjs +5 -22
- package/esm2022/lib/sections/image-carousel-section/image-carousel.model.mjs +1 -1
- package/esm2022/lib/sections/image-grid-section/image-grid-section.component.mjs +5 -5
- package/esm2022/lib/sections/image-grid-section/image-grid-section.model.mjs +1 -1
- package/esm2022/lib/sections/image-section/image-section.component.mjs +5 -5
- package/esm2022/lib/sections/image-section/image-section.model.mjs +1 -1
- package/esm2022/lib/sections/location-section/location-section.component.mjs +5 -5
- package/esm2022/lib/sections/location-section/location-section.modal.mjs +1 -1
- package/esm2022/lib/sections/logo-gallery/logo-gallery.component.mjs +4 -4
- package/esm2022/lib/sections/logo-showcase/logo-showcase.component.mjs +5 -5
- package/esm2022/lib/sections/logo-showcase/logo-showcase.modal.mjs +1 -1
- package/esm2022/lib/sections/moving-text/moving-text.component.mjs +5 -5
- package/esm2022/lib/sections/moving-text/moving-text.modal.mjs +1 -1
- package/esm2022/lib/sections/navbar-section/navbar-section.component.mjs +4 -4
- package/esm2022/lib/sections/new-services/new-services.component.mjs +5 -5
- package/esm2022/lib/sections/new-services/new-services.model.mjs +1 -1
- package/esm2022/lib/sections/new-testimonials/new-testimonials.component.mjs +5 -6
- package/esm2022/lib/sections/new-testimonials/new-testimonials.model.mjs +1 -1
- package/esm2022/lib/sections/news-letter-component/news-letter-component.component.mjs +5 -5
- package/esm2022/lib/sections/news-letter-component/news-letter.modal.mjs +1 -1
- package/esm2022/lib/sections/pricing-section/pricing-section.component.mjs +5 -5
- package/esm2022/lib/sections/pricing-section/pricing-section.modal.mjs +1 -1
- package/esm2022/lib/sections/process-modern/process-modern.component.mjs +5 -5
- package/esm2022/lib/sections/process-modern/process-modern.model.mjs +1 -1
- package/esm2022/lib/sections/process-section/process-section.component.mjs +5 -5
- package/esm2022/lib/sections/process-section/process-section.modal.mjs +1 -1
- package/esm2022/lib/sections/property-component/property-component.component.mjs +5 -5
- package/esm2022/lib/sections/property-component/property-component.modal.mjs +1 -1
- package/esm2022/lib/sections/property-list/property-list.component.mjs +5 -5
- package/esm2022/lib/sections/property-list/property-list.modal.mjs +1 -1
- package/esm2022/lib/sections/recent-blog-post-section/recent-blog-post-section.component.mjs +5 -5
- package/esm2022/lib/sections/recent-blog-post-section/recent-blog-post-section.model.mjs +1 -1
- package/esm2022/lib/sections/registration-form/registration-form.component.mjs +6 -6
- package/esm2022/lib/sections/registration-form/registrationForm.model.mjs +1 -1
- package/esm2022/lib/sections/service-section/service-section.component.mjs +5 -5
- package/esm2022/lib/sections/service-section/service-section.model.mjs +1 -1
- package/esm2022/lib/sections/skeleton-loader-section/skeleton-loader-section.component.mjs +5 -5
- package/esm2022/lib/sections/team-member-section/team-member-section.component.mjs +5 -5
- package/esm2022/lib/sections/team-member-section/team-member-section.model.mjs +1 -1
- package/esm2022/lib/sections/testimonial-fullwidth/testimonial-fullwidth.component.mjs +5 -5
- package/esm2022/lib/sections/testimonial-fullwidth/testimonial-fullwidth.model.mjs +1 -1
- package/esm2022/lib/sections/testimonial-section/testimonial-section.component.mjs +5 -5
- package/esm2022/lib/sections/testimonial-section/testimonial-section.model.mjs +1 -1
- package/esm2022/lib/sections/testimonial-video/testimonial-video.component.mjs +5 -5
- package/esm2022/lib/sections/testimonial-video/testimonial-video.model.mjs +1 -1
- package/esm2022/lib/sections/text-image-section/text-image-section.component.mjs +4 -4
- package/esm2022/lib/sections/text-section/text-section.component.mjs +4 -4
- package/esm2022/lib/sections/text-section/text-section.model.mjs +1 -1
- package/esm2022/lib/sections/usp-video-section/usp-video-section.component.mjs +5 -5
- package/esm2022/lib/sections/usp-video-section/usp-video-section.model.mjs +1 -1
- package/esm2022/lib/sections/video-section/video-section.component.mjs +5 -5
- package/esm2022/lib/sections/video-section/video-section.model.mjs +1 -1
- package/esm2022/lib/sections/view-blog/view-blog.component.mjs +5 -5
- package/esm2022/lib/services/cart.service.mjs +4 -38
- package/esm2022/lib/services/endUser.service.mjs +4 -4
- package/esm2022/lib/services/events.service.mjs +4 -11
- package/esm2022/lib/services/image-upload-service.service.mjs +4 -4
- package/esm2022/lib/services/rest.service.mjs +12 -50
- package/esm2022/lib/services/sanitizeHtml.mjs +4 -4
- package/esm2022/lib/services/storage.service.mjs +4 -45
- package/esm2022/lib/styles/index.mjs +1 -1
- package/esm2022/lib/styles/style.model.mjs +1 -1
- package/esm2022/lib/styles/types.mjs +1 -1
- package/esm2022/lib/tokens/api-token.mjs +1 -1
- package/esm2022/public-api.mjs +1 -1
- package/fesm2022/simpo-component-library.mjs +900 -992
- package/fesm2022/simpo-component-library.mjs.map +1 -1
- package/lib/directive/background-directive.d.ts +1 -1
- package/lib/directive/button-directive.directive.d.ts +1 -1
- package/lib/directive/color.directive.d.ts +1 -1
- package/lib/ecommerce/sections/authentication-required/authentication-required.component.d.ts +12 -2
- package/lib/ecommerce/sections/featured-products/featured-products.component.d.ts +2 -0
- package/lib/ecommerce/sections/new-collection/new-collection.component.d.ts +1 -1
- package/lib/ecommerce/sections/product-desc/product-desc.component.d.ts +1 -1
- package/lib/ecommerce/sections/product-list/product-list.component.d.ts +2 -2
- package/lib/ecommerce/sections/store-list/store-list.component.d.ts +3 -1
- package/lib/ecommerce/sections/store-page/store-page.component.d.ts +2 -2
- package/lib/elements/text-editor/text-editor.component.d.ts +2 -0
- package/lib/sections/appointment-form/appointment-form.component.d.ts +11 -4
- package/lib/sections/banner-grid-section/banner-grid-section.component.d.ts +1 -1
- package/lib/sections/contact-us/contact-us.component.d.ts +1 -1
- package/lib/sections/header-section/header-section.component.d.ts +1 -1
- package/lib/sections/moving-text/moving-text.component.d.ts +1 -1
- package/lib/sections/pricing-section/pricing-section.component.d.ts +1 -1
- package/lib/services/cart.service.d.ts +0 -6
- package/lib/services/events.service.d.ts +0 -6
- package/lib/services/rest.service.d.ts +0 -14
- package/lib/services/storage.service.d.ts +0 -6
- package/lib/styles/style.model.d.ts +5 -0
- package/package.json +1 -1
- package/simpo-component-library-3.6.132.tgz +0 -0
- package/src/lib/styles/global-styles.css +242 -242
- package/simpo-component-library-3.6.130.tgz +0 -0
@@ -56,10 +56,8 @@ export class NewCollectionComponent extends BaseSection {
|
|
56
56
|
getCollectionsIds() {
|
57
57
|
if (!this.content?.collectionIds)
|
58
58
|
return;
|
59
|
-
console.log(this.content?.collectionIds);
|
60
59
|
this.restService.getCollectionByIds(this.content?.collectionIds).subscribe((response) => {
|
61
60
|
this.responseData = response.filter((collection) => collection.featuredCollection || true);
|
62
|
-
console.log(this.responseData);
|
63
61
|
this.content?.collectionIds?.forEach((id, collectionIndex) => {
|
64
62
|
let index = -1;
|
65
63
|
this.responseData?.forEach((data, idx) => {
|
@@ -101,12 +99,12 @@ export class NewCollectionComponent extends BaseSection {
|
|
101
99
|
const brightness = (r * 299 + g * 587 + b * 114) / 1000;
|
102
100
|
return brightness > threshold ? '#000000' : '#ffffff';
|
103
101
|
}
|
104
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
105
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.
|
102
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NewCollectionComponent, deps: [{ token: i1.Router }, { token: i2.RestService }, { token: i3.EventsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
103
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NewCollectionComponent, isStandalone: true, selector: "simpo-new-collection", inputs: { data: "data", responseData: "responseData", index: "index", edit: "edit", delete: "delete", customClass: "customClass", nextComponentColor: "nextComponentColor" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!isLoading\">\n <section class=\"total-container\" [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\" simpoHover\n (hovering)=\"showEditTabs($event)\" [attr.style]=\"customClass\">\n <div [spacingAround]=\"stylesLayout\" [id]=\"data?.id\">\n <div [id]=\"data?.id\" #mainContainer [simpoOverlay]=\"styles?.background\" [simpoAnimation]=\"styles?.animation\"\n [spacingHorizontal]=\"stylesLayout\" [simpoBackground]=\"styles?.background\" [simpoCorner]=\"styles?.corners\">\n <div *ngFor=\"let item of content?.inputText\">\n <!-- <div class = \"content-side\"[innerHTML]=\"item.value | sanitizeHtml\" [ngClass]=\"item.label === 'Heading' ? 'heading-large lh-2 mb-3' : 'body-large'\"> -->\n <ng-container *ngIf=\"edit || item.value\">\n <div class=\"pt-3 w-100\">\n <simpo-text-editor [(value)]=\"item.value\" [editable]=\"edit || false\"></simpo-text-editor>\n </div>\n </ng-container>\n\n <!-- </div> -->\n </div>\n <div>\n <img *ngIf=\"styles?.dividerImage?.showDivider\" loading=\"lazy\" [src]=\"styles?.dividerImage?.url\" alt=\"\"\n class=\"span-img mt-15\">\n </div>\n <div class=\"category-parent\" [ngClass]=\"{'flex-wrap': getDirection == 'ROW'}\"\n [simpoContainerAlignment]=\"styles?.layout\" [id]=\"data?.id\" [style.justifyContent]=\"styles?.layout?.align\">\n <div *ngFor=\"let data of responseData; let idx = index\" (click)=\"redirectToListPage(data)\"\n class=\"d-flex flex-column align-items-center\">\n <div class=\"d-flex position-relative justify-content-center\" (click)=\"redirectToListPage(data)\">\n <div class=\"category-back\" [style.--before-height.px]=\"((styles?.containerHeight ?? 50) - 30) ?? 50\"\n [style.--after-height.px]=\"((styles?.containerHeight ?? 50)- 30)\"></div>\n <img loading=\"lazy\" [style.height.px]=\"(styles?.containerHeight ?? 1) / (isMobile ? 2 : 1)\"\n [style.width.px]=\"(styles?.containerWidth ?? 1) / (isMobile ? 2 : 1)\"\n onerror=\"this.src='https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\"\n [src]=\"data.imgUrl?.[0] ?? 'https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\" alt=\"\"\n class=\"category-image\">\n <div class=\"product-count\" [style.background]=\"styles?.background?.color\"\n [style.color]=\"getColor(styles?.background?.color)\">{{(data?.itemIds?.length ?? 0) + \"\n \" + \"designs\"}}</div>\n </div>\n <div class=\"category-name body-large p-2\" *ngIf=\"content?.display?.showHeading\"\n [style.background]=\"styles?.background?.accentColor\"\n [style.color]=\"getColor(styles?.background?.accentColor)\">{{data.collectionName}}</div>\n </div>\n </div>\n </div>\n\n </div>\n\n\n <ng-container *ngIf=\"styles?.devider?.display\">\n <simpo-svg-divider [dividerType]=\"styles?.devider?.deviderType\"\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\n </ng-container>\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\n </div>\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\n </div>\n\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 'right': '5px'\n}\">\n</ngx-skeleton-loader>", styles: [".mt-15{margin-top:15px}.total-container{height:fit-content!important;position:relative;display:block!important}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.category-parent{padding:2%;display:flex;width:100%;max-width:100%;margin-top:25px;gap:25px;overflow-x:scroll;cursor:pointer}.category-image{margin:0 35px;position:relative;background:#f9f9fb;border-radius:13px}.product-count{width:70%;border-radius:30px;padding:3px;position:absolute;bottom:-10px;font-size:12px;font-weight:600}.category-parent::-webkit-scrollbar{display:none}.span{width:141px;height:15px}.category-name{font-size:15px;line-height:normal;font-weight:600;border-radius:8px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:90%;height:47px;align-content:end}.category-back:after{content:\"\";position:absolute;width:90px;height:var(--after-height);border:1px solid rgb(220,220,220);transform:rotate(10.282deg);right:25px;bottom:5px;border-radius:14px;background:#fff}.category-back:before{content:\"\";position:absolute;width:90px;height:var(--before-height);border:1px solid rgb(220,220,220);transform:rotate(-10.282deg);left:25px;bottom:5px;border-radius:14px;background:#fff}@media screen and (max-width : 475px){.main-container{padding-left:10px;padding-right:10px}.total-container{height:fit-content!important;padding-top:5px!important;padding-bottom:5px!important}.category-image{height:100px;width:100px}.header{gap:7px}.category-parent{gap:8px;margin-top:15px;padding-left:0!important;padding-right:0!important}.span{width:70.5px;height:7.5px}.category-name{font-size:12px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i5.HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: i6.DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "component", type: i7.NgxSkeletonLoaderComponent, selector: "ngx-skeleton-loader", inputs: ["count", "loadingText", "appearance", "animation", "ariaLabel", "theme"] }, { kind: "directive", type:
|
106
104
|
//directive
|
107
105
|
AnimationDirective, selector: "[simpoAnimation]", inputs: ["simpoAnimation"] }, { kind: "directive", type: ContentFitDirective, selector: "[simpoLayout]", inputs: ["simpoLayout"] }, { kind: "directive", type: BackgroundDirective, selector: "[simpoBackground]", inputs: ["simpoBackground", "scrollValue"] }, { kind: "directive", type: SimpoContainerAligment, selector: "[simpoContainerAlignment]", inputs: ["simpoContainerAlignment"] }, { kind: "directive", type: SpacingHorizontalDirective, selector: "[spacingHorizontal]", inputs: ["spacingHorizontal", "isHeader"] }, { kind: "directive", type: CornerDirective, selector: "[simpoCorner]", inputs: ["simpoCorner"] }, { kind: "directive", type: HoverDirective, selector: "[simpoHover]", outputs: ["hovering"] }, { kind: "directive", type: OverlayDirective, selector: "[simpoOverlay]", inputs: ["simpoOverlay"] }, { kind: "component", type: SvgDividerComponent, selector: "simpo-svg-divider", inputs: ["dividerType", "color"] }, { kind: "component", type: TextEditorComponent, selector: "simpo-text-editor", inputs: ["value", "editable", "sectionId", "label"], outputs: ["valueChange"] }, { kind: "directive", type: SpacingAroundDirective, selector: "[spacingAround]", inputs: ["spacingAround", "backgroundInfo"] }] }); }
|
108
106
|
}
|
109
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
107
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NewCollectionComponent, decorators: [{
|
110
108
|
type: Component,
|
111
109
|
args: [{ selector: 'simpo-new-collection', standalone: true, imports: [
|
112
110
|
CommonModule,
|
@@ -127,7 +125,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
|
|
127
125
|
SanitizeHtmlPipe, SvgDividerComponent,
|
128
126
|
TextEditorComponent,
|
129
127
|
SpacingAroundDirective,
|
130
|
-
], template: "<ng-container *ngIf=\"!isLoading\">\
|
128
|
+
], template: "<ng-container *ngIf=\"!isLoading\">\n <section class=\"total-container\" [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\" simpoHover\n (hovering)=\"showEditTabs($event)\" [attr.style]=\"customClass\">\n <div [spacingAround]=\"stylesLayout\" [id]=\"data?.id\">\n <div [id]=\"data?.id\" #mainContainer [simpoOverlay]=\"styles?.background\" [simpoAnimation]=\"styles?.animation\"\n [spacingHorizontal]=\"stylesLayout\" [simpoBackground]=\"styles?.background\" [simpoCorner]=\"styles?.corners\">\n <div *ngFor=\"let item of content?.inputText\">\n <!-- <div class = \"content-side\"[innerHTML]=\"item.value | sanitizeHtml\" [ngClass]=\"item.label === 'Heading' ? 'heading-large lh-2 mb-3' : 'body-large'\"> -->\n <ng-container *ngIf=\"edit || item.value\">\n <div class=\"pt-3 w-100\">\n <simpo-text-editor [(value)]=\"item.value\" [editable]=\"edit || false\"></simpo-text-editor>\n </div>\n </ng-container>\n\n <!-- </div> -->\n </div>\n <div>\n <img *ngIf=\"styles?.dividerImage?.showDivider\" loading=\"lazy\" [src]=\"styles?.dividerImage?.url\" alt=\"\"\n class=\"span-img mt-15\">\n </div>\n <div class=\"category-parent\" [ngClass]=\"{'flex-wrap': getDirection == 'ROW'}\"\n [simpoContainerAlignment]=\"styles?.layout\" [id]=\"data?.id\" [style.justifyContent]=\"styles?.layout?.align\">\n <div *ngFor=\"let data of responseData; let idx = index\" (click)=\"redirectToListPage(data)\"\n class=\"d-flex flex-column align-items-center\">\n <div class=\"d-flex position-relative justify-content-center\" (click)=\"redirectToListPage(data)\">\n <div class=\"category-back\" [style.--before-height.px]=\"((styles?.containerHeight ?? 50) - 30) ?? 50\"\n [style.--after-height.px]=\"((styles?.containerHeight ?? 50)- 30)\"></div>\n <img loading=\"lazy\" [style.height.px]=\"(styles?.containerHeight ?? 1) / (isMobile ? 2 : 1)\"\n [style.width.px]=\"(styles?.containerWidth ?? 1) / (isMobile ? 2 : 1)\"\n onerror=\"this.src='https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\"\n [src]=\"data.imgUrl?.[0] ?? 'https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\" alt=\"\"\n class=\"category-image\">\n <div class=\"product-count\" [style.background]=\"styles?.background?.color\"\n [style.color]=\"getColor(styles?.background?.color)\">{{(data?.itemIds?.length ?? 0) + \"\n \" + \"designs\"}}</div>\n </div>\n <div class=\"category-name body-large p-2\" *ngIf=\"content?.display?.showHeading\"\n [style.background]=\"styles?.background?.accentColor\"\n [style.color]=\"getColor(styles?.background?.accentColor)\">{{data.collectionName}}</div>\n </div>\n </div>\n </div>\n\n </div>\n\n\n <ng-container *ngIf=\"styles?.devider?.display\">\n <simpo-svg-divider [dividerType]=\"styles?.devider?.deviderType\"\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\n </ng-container>\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\n </div>\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\n </div>\n\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 'right': '5px'\n}\">\n</ngx-skeleton-loader>", styles: [".mt-15{margin-top:15px}.total-container{height:fit-content!important;position:relative;display:block!important}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.category-parent{padding:2%;display:flex;width:100%;max-width:100%;margin-top:25px;gap:25px;overflow-x:scroll;cursor:pointer}.category-image{margin:0 35px;position:relative;background:#f9f9fb;border-radius:13px}.product-count{width:70%;border-radius:30px;padding:3px;position:absolute;bottom:-10px;font-size:12px;font-weight:600}.category-parent::-webkit-scrollbar{display:none}.span{width:141px;height:15px}.category-name{font-size:15px;line-height:normal;font-weight:600;border-radius:8px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:90%;height:47px;align-content:end}.category-back:after{content:\"\";position:absolute;width:90px;height:var(--after-height);border:1px solid rgb(220,220,220);transform:rotate(10.282deg);right:25px;bottom:5px;border-radius:14px;background:#fff}.category-back:before{content:\"\";position:absolute;width:90px;height:var(--before-height);border:1px solid rgb(220,220,220);transform:rotate(-10.282deg);left:25px;bottom:5px;border-radius:14px;background:#fff}@media screen and (max-width : 475px){.main-container{padding-left:10px;padding-right:10px}.total-container{height:fit-content!important;padding-top:5px!important;padding-bottom:5px!important}.category-image{height:100px;width:100px}.header{gap:7px}.category-parent{gap:8px;margin-top:15px;padding-left:0!important;padding-right:0!important}.span{width:70.5px;height:7.5px}.category-name{font-size:12px}}\n"] }]
|
131
129
|
}], ctorParameters: () => [{ type: i1.Router }, { type: i2.RestService }, { type: i3.EventsService }], propDecorators: { data: [{
|
132
130
|
type: Input
|
133
131
|
}], responseData: [{
|
@@ -143,4 +141,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
|
|
143
141
|
}], nextComponentColor: [{
|
144
142
|
type: Input
|
145
143
|
}] } });
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LWNvbGxlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvbmV3LWNvbGxlY3Rpb24vbmV3LWNvbGxlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvbmV3LWNvbGxlY3Rpb24vbmV3LWNvbGxlY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBd0IsS0FBSyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRS9FLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzFHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sV0FBVyxNQUFNLCtCQUErQixDQUFDO0FBQ3hE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QWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixnQ0FBZ0M7d0JBQ2hDLGNBQWM7d0JBQ2QsZ0JBQWdCLEVBQUUsbUJBQW1CO3dCQUNyQyxtQkFBbUI7d0JBQ25CLHNCQUFzQjtxQkFDdkI7aUlBTVEsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFRyxrQkFBa0I7c0JBQTFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBJbnB1dCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBbmltYXRpb25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvYW5pbWF0aW9uLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEJhY2tncm91bmREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvYmFja2dyb3VuZC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBCb3JkZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvYm9yZGVyLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvcm5lckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9jb3JuZXItZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvaG92ZXItZWxlbWVudC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBPdmVybGF5RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL292ZXJsYXktZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29udGVudEZpdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9jb250ZW50LWZpdC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi8uLi8uLi9zZXJ2aWNlcy9ldmVudHMuc2VydmljZSc7XHJcbmltcG9ydCB7IFRleHRCYWNrZ3JvdW5kRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL3RleHQtYmFja2dyb3VuZC1kaXJlY3RpdmUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2ltcG9Db21wb25lbnRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2luZGV4JztcclxuaW1wb3J0IEJhc2VTZWN0aW9uIGZyb20gJy4uLy4uLy4uL3NlY3Rpb25zL0Jhc2VTZWN0aW9uJztcclxuaW1wb3J0IHsgQ29sb3JEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvY29sb3IuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ2F0ZWdvcnkgfSBmcm9tICcuLi8uLi9zdHlsZXMvY2F0ZWdvcnkubW9kYWwnO1xyXG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3Jlc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9zdHlsZXMvQ29sbGVjdGlvbi5tb2RhbCc7XHJcbmltcG9ydCB7IFNhbml0aXplSHRtbFBpcGUgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zYW5pdGl6ZUh0bWwnO1xyXG5pbXBvcnQgeyBTcGFjaW5nSG9yaXpvbnRhbERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9zcGFjaW5nLWhvcml6b250YWwuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2ltcG9Db250YWluZXJBbGlnbWVudCB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9jb250YWluZXItYWxpZ25tZW50LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEJhY2tncm91bmRNb2RlbCwgQmFubmVyU3R5bGVzTW9kZWwsIExheU91dE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcclxuaW1wb3J0IHsgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IFN2Z0RpdmlkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9lbGVtZW50cy9zdmctZGl2aWRlci9zdmctZGl2aWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZXh0RWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZWxlbWVudHMvdGV4dC1lZGl0b3IvdGV4dC1lZGl0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmV3Q29sbGVjdGlvbkNvbnRlbnRNb2RhbCwgTmV3Q29sbGVjdGlvbk1vZGFsLCBOZXdDb2xsZWN0aW9uU3R5bGVNb2RhbCB9IGZyb20gJy4vbmV3LWNvbGxlY3Rpb24ubW9kYWwnO1xyXG5pbXBvcnQgeyBTcGFjaW5nQXJvdW5kRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL3NwYWNpbmctYXJvdW5kLmRpcmVjdGl2ZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NpbXBvLW5ldy1jb2xsZWN0aW9uJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgU2ltcG9Db21wb25lbnRNb2R1bGUsXHJcblxyXG4gICAgLy9kaXJlY3RpdmVcclxuICAgIEFuaW1hdGlvbkRpcmVjdGl2ZSxcclxuICAgIENvbnRlbnRGaXREaXJlY3RpdmUsXHJcbiAgICBCYWNrZ3JvdW5kRGlyZWN0aXZlLFxyXG4gICAgQm9yZGVyRGlyZWN0aXZlLFxyXG4gICAgU2ltcG9Db250YWluZXJBbGlnbWVudCxcclxuICAgIFNwYWNpbmdIb3Jpem9udGFsRGlyZWN0aXZlLFxyXG4gICAgQ29ybmVyRGlyZWN0aXZlLFxyXG4gICAgSG92ZXJEaXJlY3RpdmUsXHJcbiAgICBPdmVybGF5RGlyZWN0aXZlLFxyXG4gICAgVGV4dEJhY2tncm91bmREaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBDb2xvckRpcmVjdGl2ZSxcclxuICAgIFNhbml0aXplSHRtbFBpcGUsIFN2Z0RpdmlkZXJDb21wb25lbnQsXHJcbiAgICBUZXh0RWRpdG9yQ29tcG9uZW50LFxyXG4gICAgU3BhY2luZ0Fyb3VuZERpcmVjdGl2ZSxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9uZXctY29sbGVjdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL25ldy1jb2xsZWN0aW9uLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZXdDb2xsZWN0aW9uQ29tcG9uZW50IGV4dGVuZHMgQmFzZVNlY3Rpb24ge1xyXG5cclxuICBASW5wdXQoKSBkYXRhPzogTmV3Q29sbGVjdGlvbk1vZGFsO1xyXG4gIEBJbnB1dCgpIHJlc3BvbnNlRGF0YT86IENvbGxlY3Rpb25bXVxyXG4gIEBJbnB1dCgpIGluZGV4PzogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGVkaXQ/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGRlbGV0ZT86IGJvb2xlYW47XHJcbiAgQElucHV0KCkgY3VzdG9tQ2xhc3M/OiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIG5leHRDb21wb25lbnRDb2xvcj86IEJhY2tncm91bmRNb2RlbDtcclxuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjb250ZW50PzogTmV3Q29sbGVjdGlvbkNvbnRlbnRNb2RhbDtcclxuICBzdHlsZXM/OiBOZXdDb2xsZWN0aW9uU3R5bGVNb2RhbDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXN0U2VydmljZTogUmVzdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ldmVudFNlcnZpY2U6IEV2ZW50c1NlcnZpY2UsXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpXHJcbiAgfVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5jb250ZW50ID0gdGhpcy5kYXRhPy5jb250ZW50O1xyXG4gICAgdGhpcy5zdHlsZXMgPSB0aGlzLmRhdGE/LnN0eWxlcztcclxuICAgIHRoaXMuZ2V0Q29sbGVjdGlvbnNJZHMoKTtcclxuICAgIHRoaXMuX2V2ZW50U2VydmljZS5zaG93TG9hZGluZ1NjcmVlbi5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gcmVzcG9uc2U7XHJcbiAgICB9KVxyXG4gICAgLy8gdGhpcy5fZXZlbnRTZXJ2aWNlLndyYXBEaXJlY3Rpb24uc3Vic2NyaWJlKChyZXNwb25zZSk9PiB7XHJcbiAgICAvLyAgIGlmIChyZXNwb25zZSA9PT0gdGhpcy5kYXRhPy5pZCAmJiB0aGlzLnN0eWxlcylcclxuICAgIC8vICAgICB0aGlzLnN0eWxlcy5kaXJlY3Rpb24gPSByZXNwb25zZSBhcyBcIlJPV1wiIHwgXCJDT0xVTU5cIjtcclxuICAgIC8vIH0pXHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UuY29sbGVjdGlvbnNMaXN0RXZlbnQuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICB0aGlzLmdldENvbGxlY3Rpb25zSWRzKCk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0U2xpY2VQYXJhbWV0ZXJzKCkge1xyXG4gICAgcmV0dXJuIFswLCAodGhpcy5zdHlsZXM/Lm1heGltdW1Qcm9kdWN0IHx8IDApXTtcclxuICB9XHJcbiAgZ2V0Q29sbGVjdGlvbnNJZHMoKSB7XHJcbiAgICBpZiAoIXRoaXMuY29udGVudD8uY29sbGVjdGlvbklkcylcclxuICAgICAgcmV0dXJuO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5jb250ZW50Py5jb2xsZWN0aW9uSWRzKTtcclxuICAgIHRoaXMucmVzdFNlcnZpY2UuZ2V0Q29sbGVjdGlvbkJ5SWRzKHRoaXMuY29udGVudD8uY29sbGVjdGlvbklkcykuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMucmVzcG9uc2VEYXRhID0gcmVzcG9uc2UuZmlsdGVyKChjb2xsZWN0aW9uOiBhbnkpID0+IGNvbGxlY3Rpb24uZmVhdHVyZWRDb2xsZWN0aW9uIHx8IHRydWUpXHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMucmVzcG9uc2VEYXRhKTtcclxuICAgICAgdGhpcy5jb250ZW50Py5jb2xsZWN0aW9uSWRzPy5mb3JFYWNoKChpZDogc3RyaW5nLCBjb2xsZWN0aW9uSW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIGxldCBpbmRleCA9IC0xO1xyXG4gICAgICAgIHRoaXMucmVzcG9uc2VEYXRhPy5mb3JFYWNoKChkYXRhOiBhbnksIGlkeCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGRhdGEuY29sbGVjdGlvbklkID09IGlkKVxyXG4gICAgICAgICAgICBpbmRleCA9IGlkeDtcclxuICAgICAgICB9KVxyXG4gICAgICAgIHRoaXMuZHJvcENvbGxlY3Rpb24oaW5kZXgsIGNvbGxlY3Rpb25JbmRleCk7XHJcbiAgICAgIH0pXHJcbiAgICB9KVxyXG5cclxuICB9XHJcbiAgZHJvcENvbGxlY3Rpb24oc3RhcnRJZHg6IG51bWJlciwgZW5kSWR4OiBudW1iZXIpIHtcclxuICAgIGlmICh0aGlzLnJlc3BvbnNlRGF0YSlcclxuICAgICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMucmVzcG9uc2VEYXRhLCBzdGFydElkeCwgZW5kSWR4KTtcclxuICB9XHJcbiAgcmVkaXJlY3RUb0xpc3RQYWdlKGNvbGxlY3Rpb246IGFueSkge1xyXG4gICAgY29sbGVjdGlvbiA9IGNvbGxlY3Rpb24uY29sbGVjdGlvbklkO1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbGlzdCddLCB7IHF1ZXJ5UGFyYW1zOiB7IGNvbGxlY3Rpb25JZDogY29sbGVjdGlvbiB9IH0pO1xyXG4gIH1cclxuICBnZXQgc3R5bGVzTGF5b3V0KCkge1xyXG4gICAgcmV0dXJuIHsgLi4udGhpcy5zdHlsZXM/LmxheW91dCB9IGFzIExheU91dE1vZGVsO1xyXG4gIH1cclxuICBnZXQgZ2V0RGlyZWN0aW9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3R5bGVzPy5kaXJlY3Rpb247XHJcbiAgfVxyXG4gIGdldCBpc01vYmlsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB3aW5kb3cuaW5uZXJXaWR0aCA8PSA0NzU7XHJcbiAgfVxyXG4gIGVkaXRTZWN0aW9uKCkge1xyXG5cclxuICAgIHRoaXMuX2V2ZW50U2VydmljZS50b2dnbGVFZGl0b3JFdmVudC5lbWl0KGZhbHNlKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLl9ldmVudFNlcnZpY2UuZWRpdFNlY3Rpb24uZW1pdCh7IGRhdGE6IHRoaXMuZGF0YSB9KTtcclxuICAgIH0sIDEwMCk7XHJcbiAgfVxyXG5cclxuICBnZXRDb2xvcihjb2xvcjogYW55KSB7XHJcbiAgICBjb25zdCB0aHJlc2hvbGQgPSAxMzA7IC8vIEFkanVzdCB0aGlzIHRocmVzaG9sZCBhcyBuZWVkZWRcclxuICAgIGNvbnN0IHIgPSBwYXJzZUludChjb2xvci5zbGljZSgxLCAzKSwgMTYpO1xyXG4gICAgY29uc3QgZyA9IHBhcnNlSW50KGNvbG9yLnNsaWNlKDMsIDUpLCAxNik7XHJcbiAgICBjb25zdCBiID0gcGFyc2VJbnQoY29sb3Iuc2xpY2UoNSwgNyksIDE2KTtcclxuICAgIGNvbnN0IGJyaWdodG5lc3MgPSAociAqIDI5OSArIGcgKiA1ODcgKyBiICogMTE0KSAvIDEwMDA7XHJcblxyXG4gICAgcmV0dXJuIGJyaWdodG5lc3MgPiB0aHJlc2hvbGQgPyAnIzAwMDAwMCcgOiAnI2ZmZmZmZic7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTG9hZGluZ1wiPlxyXG4gIDxzZWN0aW9uIGNsYXNzPVwidG90YWwtY29udGFpbmVyXCIgW2lkXT1cImRhdGE/LmlkXCIgW3NpbXBvTGF5b3V0XT1cInN0eWxlcz8ubGF5b3V0XCIgc2ltcG9Ib3ZlclxyXG4gICAgKGhvdmVyaW5nKT1cInNob3dFZGl0VGFicygkZXZlbnQpXCIgW2F0dHIuc3R5bGVdPVwiY3VzdG9tQ2xhc3NcIj5cclxuICAgIDxkaXYgW3NwYWNpbmdBcm91bmRdPVwic3R5bGVzTGF5b3V0XCIgW2lkXT1cImRhdGE/LmlkXCI+XHJcbiAgICAgIDxkaXYgW2lkXT1cImRhdGE/LmlkXCIgI21haW5Db250YWluZXIgW3NpbXBvT3ZlcmxheV09XCJzdHlsZXM/LmJhY2tncm91bmRcIiBbc2ltcG9BbmltYXRpb25dPVwic3R5bGVzPy5hbmltYXRpb25cIlxyXG4gICAgICAgIFtzcGFjaW5nSG9yaXpvbnRhbF09XCJzdHlsZXNMYXlvdXRcIiBbc2ltcG9CYWNrZ3JvdW5kXT1cInN0eWxlcz8uYmFja2dyb3VuZFwiIFtzaW1wb0Nvcm5lcl09XCJzdHlsZXM/LmNvcm5lcnNcIj5cclxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbnRlbnQ/LmlucHV0VGV4dFwiPlxyXG4gICAgICAgICAgPCEtLSA8ZGl2ICBjbGFzcyA9IFwiY29udGVudC1zaWRlXCJbaW5uZXJIVE1MXT1cIml0ZW0udmFsdWUgfCBzYW5pdGl6ZUh0bWxcIiBbbmdDbGFzc109XCJpdGVtLmxhYmVsID09PSAnSGVhZGluZycgPyAnaGVhZGluZy1sYXJnZSBsaC0yIG1iLTMnIDogJ2JvZHktbGFyZ2UnXCI+IC0tPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVkaXQgfHwgaXRlbS52YWx1ZVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHQtMyB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgIDxzaW1wby10ZXh0LWVkaXRvciBbKHZhbHVlKV09XCJpdGVtLnZhbHVlXCIgW2VkaXRhYmxlXT1cImVkaXQgfHwgZmFsc2VcIj48L3NpbXBvLXRleHQtZWRpdG9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDwhLS0gPC9kaXY+IC0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8aW1nICpuZ0lmPVwic3R5bGVzPy5kaXZpZGVySW1hZ2U/LnNob3dEaXZpZGVyXCIgbG9hZGluZz1cImxhenlcIiBbc3JjXT1cInN0eWxlcz8uZGl2aWRlckltYWdlPy51cmxcIiBhbHQ9XCJcIlxyXG4gICAgICAgICAgICBjbGFzcz1cInNwYW4taW1nIG10LTE1XCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhdGVnb3J5LXBhcmVudFwiIFtuZ0NsYXNzXT1cInsnZmxleC13cmFwJzogZ2V0RGlyZWN0aW9uID09ICdST1cnfVwiXHJcbiAgICAgICAgICBbc2ltcG9Db250YWluZXJBbGlnbm1lbnRdPVwic3R5bGVzPy5sYXlvdXRcIiBbaWRdPVwiZGF0YT8uaWRcIiBbc3R5bGUuanVzdGlmeUNvbnRlbnRdPVwic3R5bGVzPy5sYXlvdXQ/LmFsaWduXCI+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBkYXRhIG9mIHJlc3BvbnNlRGF0YTsgbGV0IGlkeCA9IGluZGV4XCIgKGNsaWNrKT1cInJlZGlyZWN0VG9MaXN0UGFnZShkYXRhKVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IHBvc2l0aW9uLXJlbGF0aXZlIGp1c3RpZnktY29udGVudC1jZW50ZXJcIiAoY2xpY2spPVwicmVkaXJlY3RUb0xpc3RQYWdlKGRhdGEpXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhdGVnb3J5LWJhY2tcIiBbc3R5bGUuLS1iZWZvcmUtaGVpZ2h0LnB4XT1cIigoc3R5bGVzPy5jb250YWluZXJIZWlnaHQgPz8gNTApIC0gMzApID8/IDUwXCJcclxuICAgICAgICAgICAgICAgIFtzdHlsZS4tLWFmdGVyLWhlaWdodC5weF09XCIoKHN0eWxlcz8uY29udGFpbmVySGVpZ2h0ID8/IDUwKS0gMzApXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgPGltZyBsb2FkaW5nPVwibGF6eVwiIFtzdHlsZS5oZWlnaHQucHhdPVwiKHN0eWxlcz8uY29udGFpbmVySGVpZ2h0ID8/IDEpIC8gKGlzTW9iaWxlID8gMiA6IDEpXCJcclxuICAgICAgICAgICAgICAgIFtzdHlsZS53aWR0aC5weF09XCIoc3R5bGVzPy5jb250YWluZXJXaWR0aCA/PyAxKSAvIChpc01vYmlsZSA/IDIgOiAxKVwiXHJcbiAgICAgICAgICAgICAgICBvbmVycm9yPVwidGhpcy5zcmM9J2h0dHBzOi8vaS5wb3N0aW1nLmNjL2hQUzJKcFYwL25vLWltYWdlLWF2YWlsYWJsZS5qcGcnXCJcclxuICAgICAgICAgICAgICAgIFtzcmNdPVwiZGF0YS5pbWdVcmw/LlswXSA/PyAnaHR0cHM6Ly9pLnBvc3RpbWcuY2MvaFBTMkpwVjAvbm8taW1hZ2UtYXZhaWxhYmxlLmpwZydcIiBhbHQ9XCJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjYXRlZ29yeS1pbWFnZVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LWNvdW50XCIgW3N0eWxlLmJhY2tncm91bmRdPVwic3R5bGVzPy5iYWNrZ3JvdW5kPy5jb2xvclwiXHJcbiAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiZ2V0Q29sb3Ioc3R5bGVzPy5iYWNrZ3JvdW5kPy5jb2xvcilcIj57eyhkYXRhPy5pdGVtSWRzPy5sZW5ndGggPz8gMCkgKyBcIlxyXG4gICAgICAgICAgICAgICAgXCIgKyBcImRlc2lnbnNcIn19PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcnktbmFtZSBib2R5LWxhcmdlIHAtMlwiICpuZ0lmPVwiY29udGVudD8uZGlzcGxheT8uc2hvd0hlYWRpbmdcIlxyXG4gICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cInN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIlxyXG4gICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJnZXRDb2xvcihzdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yKVwiPnt7ZGF0YS5jb2xsZWN0aW9uTmFtZX19PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcblxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdHlsZXM/LmRldmlkZXI/LmRpc3BsYXlcIj5cclxuICAgICAgPHNpbXBvLXN2Zy1kaXZpZGVyIFtkaXZpZGVyVHlwZV09XCJzdHlsZXM/LmRldmlkZXI/LmRldmlkZXJUeXBlXCJcclxuICAgICAgICBbY29sb3JdPVwibmV4dENvbXBvbmVudENvbG9yPy5jb2xvclwiPjwvc2ltcG8tc3ZnLWRpdmlkZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxkaXYgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBlZGl0fVwiICpuZ0lmPVwic2hvd0VkaXRvcnNcIj5cclxuICAgICAgPHNpbXBvLWhvdmVyLWVsZW1lbnRzIFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIiBbZWRpdE9wdGlvbnNdPVwiZWRpdFwiPjwvc2ltcG8taG92ZXItZWxlbWVudHM+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJzaG93RGVsZXRlXCIgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBkZWxldGV9XCI+XHJcbiAgICAgIDxzaW1wby1kZWxldGUtaG92ZXItZWxlbWVudCBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCI+PC9zaW1wby1kZWxldGUtaG92ZXItZWxlbWVudD5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L3NlY3Rpb24+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPG5neC1za2VsZXRvbi1sb2FkZXIgKm5nSWY9XCJpc0xvYWRpbmdcIiBjb3VudD1cIjFcIiBhcHBlYXJhbmNlPVwiY2lyY2xlXCIgW3RoZW1lXT1cIntcclxuICB3aWR0aDogJzEwMCUnLFxyXG4gIGhlaWdodDogJzQwdmgnLFxyXG4gICdib3JkZXItcmFkaXVzJzogJzEwcHgnLFxyXG4gICdwb3NpdGlvbic6ICdyZWxhdGl2ZScsXHJcbiAgJ3JpZ2h0JzogJzVweCdcclxufVwiPlxyXG48L25neC1za2VsZXRvbi1sb2FkZXI+Il19
|
144
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LWNvbGxlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvbmV3LWNvbGxlY3Rpb24vbmV3LWNvbGxlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvbmV3LWNvbGxlY3Rpb24vbmV3LWNvbGxlY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBd0IsS0FBSyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRS9FLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzFHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sV0FBVyxNQUFNLCtCQUErQixDQUFDO0FBQ3hE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O3NCQUFaLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLGtCQUFrQjtzQkFBMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0LCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFuaW1hdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9hbmltYXRpb24tZGlyZWN0aXZlJztcbmltcG9ydCB7IEJhY2tncm91bmREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvYmFja2dyb3VuZC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQm9yZGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2JvcmRlci1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29ybmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2Nvcm5lci1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvaG92ZXItZWxlbWVudC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT3ZlcmxheURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9vdmVybGF5LWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb250ZW50Rml0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnQtZml0LWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi8uLi8uLi9zZXJ2aWNlcy9ldmVudHMuc2VydmljZSc7XG5pbXBvcnQgeyBUZXh0QmFja2dyb3VuZERpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS90ZXh0LWJhY2tncm91bmQtZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTaW1wb0NvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvaW5kZXgnO1xuaW1wb3J0IEJhc2VTZWN0aW9uIGZyb20gJy4uLy4uLy4uL3NlY3Rpb25zL0Jhc2VTZWN0aW9uJztcbmltcG9ydCB7IENvbG9yRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2NvbG9yLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDYXRlZ29yeSB9IGZyb20gJy4uLy4uL3N0eWxlcy9jYXRlZ29yeS5tb2RhbCc7XG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3Jlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL3N0eWxlcy9Db2xsZWN0aW9uLm1vZGFsJztcbmltcG9ydCB7IFNhbml0aXplSHRtbFBpcGUgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zYW5pdGl6ZUh0bWwnO1xuaW1wb3J0IHsgU3BhY2luZ0hvcml6b250YWxEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvc3BhY2luZy1ob3Jpem9udGFsLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTaW1wb0NvbnRhaW5lckFsaWdtZW50IH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2NvbnRhaW5lci1hbGlnbm1lbnQuZGlyZWN0aXZlJztcbmltcG9ydCB7IEJhY2tncm91bmRNb2RlbCwgQmFubmVyU3R5bGVzTW9kZWwsIExheU91dE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcbmltcG9ydCB7IG1vdmVJdGVtSW5BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgU3ZnRGl2aWRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2VsZW1lbnRzL3N2Zy1kaXZpZGVyL3N2Zy1kaXZpZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0RWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZWxlbWVudHMvdGV4dC1lZGl0b3IvdGV4dC1lZGl0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IE5ld0NvbGxlY3Rpb25Db250ZW50TW9kYWwsIE5ld0NvbGxlY3Rpb25Nb2RhbCwgTmV3Q29sbGVjdGlvblN0eWxlTW9kYWwgfSBmcm9tICcuL25ldy1jb2xsZWN0aW9uLm1vZGFsJztcbmltcG9ydCB7IFNwYWNpbmdBcm91bmREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvc3BhY2luZy1hcm91bmQuZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2ltcG8tbmV3LWNvbGxlY3Rpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFNpbXBvQ29tcG9uZW50TW9kdWxlLFxuXG4gICAgLy9kaXJlY3RpdmVcbiAgICBBbmltYXRpb25EaXJlY3RpdmUsXG4gICAgQ29udGVudEZpdERpcmVjdGl2ZSxcbiAgICBCYWNrZ3JvdW5kRGlyZWN0aXZlLFxuICAgIEJvcmRlckRpcmVjdGl2ZSxcbiAgICBTaW1wb0NvbnRhaW5lckFsaWdtZW50LFxuICAgIFNwYWNpbmdIb3Jpem9udGFsRGlyZWN0aXZlLFxuICAgIENvcm5lckRpcmVjdGl2ZSxcbiAgICBIb3ZlckRpcmVjdGl2ZSxcbiAgICBPdmVybGF5RGlyZWN0aXZlLFxuICAgIFRleHRCYWNrZ3JvdW5kRGlyZWN0aXZlRGlyZWN0aXZlLFxuICAgIENvbG9yRGlyZWN0aXZlLFxuICAgIFNhbml0aXplSHRtbFBpcGUsIFN2Z0RpdmlkZXJDb21wb25lbnQsXG4gICAgVGV4dEVkaXRvckNvbXBvbmVudCxcbiAgICBTcGFjaW5nQXJvdW5kRGlyZWN0aXZlLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vbmV3LWNvbGxlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vbmV3LWNvbGxlY3Rpb24uY29tcG9uZW50LmNzcydcbn0pXG5leHBvcnQgY2xhc3MgTmV3Q29sbGVjdGlvbkNvbXBvbmVudCBleHRlbmRzIEJhc2VTZWN0aW9uIHtcblxuICBASW5wdXQoKSBkYXRhPzogTmV3Q29sbGVjdGlvbk1vZGFsO1xuICBASW5wdXQoKSByZXNwb25zZURhdGE/OiBDb2xsZWN0aW9uW11cbiAgQElucHV0KCkgaW5kZXg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGVkaXQ/OiBib29sZWFuO1xuICBASW5wdXQoKSBkZWxldGU/OiBib29sZWFuO1xuICBASW5wdXQoKSBjdXN0b21DbGFzcz86IHN0cmluZztcblxuICBASW5wdXQoKSBuZXh0Q29tcG9uZW50Q29sb3I/OiBCYWNrZ3JvdW5kTW9kZWw7XG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBjb250ZW50PzogTmV3Q29sbGVjdGlvbkNvbnRlbnRNb2RhbDtcbiAgc3R5bGVzPzogTmV3Q29sbGVjdGlvblN0eWxlTW9kYWw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ldmVudFNlcnZpY2U6IEV2ZW50c1NlcnZpY2UsXG4gICkge1xuICAgIHN1cGVyKClcbiAgfVxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNvbnRlbnQgPSB0aGlzLmRhdGE/LmNvbnRlbnQ7XG4gICAgdGhpcy5zdHlsZXMgPSB0aGlzLmRhdGE/LnN0eWxlcztcbiAgICB0aGlzLmdldENvbGxlY3Rpb25zSWRzKCk7XG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLnNob3dMb2FkaW5nU2NyZWVuLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gcmVzcG9uc2U7XG4gICAgfSlcbiAgICAvLyB0aGlzLl9ldmVudFNlcnZpY2Uud3JhcERpcmVjdGlvbi5zdWJzY3JpYmUoKHJlc3BvbnNlKT0+IHtcbiAgICAvLyAgIGlmIChyZXNwb25zZSA9PT0gdGhpcy5kYXRhPy5pZCAmJiB0aGlzLnN0eWxlcylcbiAgICAvLyAgICAgdGhpcy5zdHlsZXMuZGlyZWN0aW9uID0gcmVzcG9uc2UgYXMgXCJST1dcIiB8IFwiQ09MVU1OXCI7XG4gICAgLy8gfSlcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UuY29sbGVjdGlvbnNMaXN0RXZlbnQuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgdGhpcy5nZXRDb2xsZWN0aW9uc0lkcygpO1xuICAgIH0pXG4gIH1cblxuICBnZXRTbGljZVBhcmFtZXRlcnMoKSB7XG4gICAgcmV0dXJuIFswLCAodGhpcy5zdHlsZXM/Lm1heGltdW1Qcm9kdWN0IHx8IDApXTtcbiAgfVxuICBnZXRDb2xsZWN0aW9uc0lkcygpIHtcbiAgICBpZiAoIXRoaXMuY29udGVudD8uY29sbGVjdGlvbklkcylcbiAgICAgIHJldHVybjtcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmdldENvbGxlY3Rpb25CeUlkcyh0aGlzLmNvbnRlbnQ/LmNvbGxlY3Rpb25JZHMpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgdGhpcy5yZXNwb25zZURhdGEgPSByZXNwb25zZS5maWx0ZXIoKGNvbGxlY3Rpb246IGFueSkgPT4gY29sbGVjdGlvbi5mZWF0dXJlZENvbGxlY3Rpb24gfHwgdHJ1ZSlcbiAgICAgIHRoaXMuY29udGVudD8uY29sbGVjdGlvbklkcz8uZm9yRWFjaCgoaWQ6IHN0cmluZywgY29sbGVjdGlvbkluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgbGV0IGluZGV4ID0gLTE7XG4gICAgICAgIHRoaXMucmVzcG9uc2VEYXRhPy5mb3JFYWNoKChkYXRhOiBhbnksIGlkeCkgPT4ge1xuICAgICAgICAgIGlmIChkYXRhLmNvbGxlY3Rpb25JZCA9PSBpZClcbiAgICAgICAgICAgIGluZGV4ID0gaWR4O1xuICAgICAgICB9KVxuICAgICAgICB0aGlzLmRyb3BDb2xsZWN0aW9uKGluZGV4LCBjb2xsZWN0aW9uSW5kZXgpO1xuICAgICAgfSlcbiAgICB9KVxuXG4gIH1cbiAgZHJvcENvbGxlY3Rpb24oc3RhcnRJZHg6IG51bWJlciwgZW5kSWR4OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5yZXNwb25zZURhdGEpXG4gICAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5yZXNwb25zZURhdGEsIHN0YXJ0SWR4LCBlbmRJZHgpO1xuICB9XG4gIHJlZGlyZWN0VG9MaXN0UGFnZShjb2xsZWN0aW9uOiBhbnkpIHtcbiAgICBjb2xsZWN0aW9uID0gY29sbGVjdGlvbi5jb2xsZWN0aW9uSWQ7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbGlzdCddLCB7IHF1ZXJ5UGFyYW1zOiB7IGNvbGxlY3Rpb25JZDogY29sbGVjdGlvbiB9IH0pO1xuICB9XG4gIGdldCBzdHlsZXNMYXlvdXQoKSB7XG4gICAgcmV0dXJuIHsgLi4udGhpcy5zdHlsZXM/LmxheW91dCB9IGFzIExheU91dE1vZGVsO1xuICB9XG4gIGdldCBnZXREaXJlY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc3R5bGVzPy5kaXJlY3Rpb247XG4gIH1cbiAgZ2V0IGlzTW9iaWxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB3aW5kb3cuaW5uZXJXaWR0aCA8PSA0NzU7XG4gIH1cbiAgZWRpdFNlY3Rpb24oKSB7XG5cbiAgICB0aGlzLl9ldmVudFNlcnZpY2UudG9nZ2xlRWRpdG9yRXZlbnQuZW1pdChmYWxzZSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl9ldmVudFNlcnZpY2UuZWRpdFNlY3Rpb24uZW1pdCh7IGRhdGE6IHRoaXMuZGF0YSB9KTtcbiAgICB9LCAxMDApO1xuICB9XG5cbiAgZ2V0Q29sb3IoY29sb3I6IGFueSkge1xuICAgIGNvbnN0IHRocmVzaG9sZCA9IDEzMDsgLy8gQWRqdXN0IHRoaXMgdGhyZXNob2xkIGFzIG5lZWRlZFxuICAgIGNvbnN0IHIgPSBwYXJzZUludChjb2xvci5zbGljZSgxLCAzKSwgMTYpO1xuICAgIGNvbnN0IGcgPSBwYXJzZUludChjb2xvci5zbGljZSgzLCA1KSwgMTYpO1xuICAgIGNvbnN0IGIgPSBwYXJzZUludChjb2xvci5zbGljZSg1LCA3KSwgMTYpO1xuICAgIGNvbnN0IGJyaWdodG5lc3MgPSAociAqIDI5OSArIGcgKiA1ODcgKyBiICogMTE0KSAvIDEwMDA7XG5cbiAgICByZXR1cm4gYnJpZ2h0bmVzcyA+IHRocmVzaG9sZCA/ICcjMDAwMDAwJyA6ICcjZmZmZmZmJztcbiAgfVxuXG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTG9hZGluZ1wiPlxuICA8c2VjdGlvbiBjbGFzcz1cInRvdGFsLWNvbnRhaW5lclwiIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0xheW91dF09XCJzdHlsZXM/LmxheW91dFwiIHNpbXBvSG92ZXJcbiAgICAoaG92ZXJpbmcpPVwic2hvd0VkaXRUYWJzKCRldmVudClcIiBbYXR0ci5zdHlsZV09XCJjdXN0b21DbGFzc1wiPlxuICAgIDxkaXYgW3NwYWNpbmdBcm91bmRdPVwic3R5bGVzTGF5b3V0XCIgW2lkXT1cImRhdGE/LmlkXCI+XG4gICAgICA8ZGl2IFtpZF09XCJkYXRhPy5pZFwiICNtYWluQ29udGFpbmVyIFtzaW1wb092ZXJsYXldPVwic3R5bGVzPy5iYWNrZ3JvdW5kXCIgW3NpbXBvQW5pbWF0aW9uXT1cInN0eWxlcz8uYW5pbWF0aW9uXCJcbiAgICAgICAgW3NwYWNpbmdIb3Jpem9udGFsXT1cInN0eWxlc0xheW91dFwiIFtzaW1wb0JhY2tncm91bmRdPVwic3R5bGVzPy5iYWNrZ3JvdW5kXCIgW3NpbXBvQ29ybmVyXT1cInN0eWxlcz8uY29ybmVyc1wiPlxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbnRlbnQ/LmlucHV0VGV4dFwiPlxuICAgICAgICAgIDwhLS0gPGRpdiAgY2xhc3MgPSBcImNvbnRlbnQtc2lkZVwiW2lubmVySFRNTF09XCJpdGVtLnZhbHVlIHwgc2FuaXRpemVIdG1sXCIgW25nQ2xhc3NdPVwiaXRlbS5sYWJlbCA9PT0gJ0hlYWRpbmcnID8gJ2hlYWRpbmctbGFyZ2UgbGgtMiBtYi0zJyA6ICdib2R5LWxhcmdlJ1wiPiAtLT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWRpdCB8fCBpdGVtLnZhbHVlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHQtMyB3LTEwMFwiPlxuICAgICAgICAgICAgICA8c2ltcG8tdGV4dC1lZGl0b3IgWyh2YWx1ZSldPVwiaXRlbS52YWx1ZVwiIFtlZGl0YWJsZV09XCJlZGl0IHx8IGZhbHNlXCI+PC9zaW1wby10ZXh0LWVkaXRvcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPCEtLSA8L2Rpdj4gLS0+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxpbWcgKm5nSWY9XCJzdHlsZXM/LmRpdmlkZXJJbWFnZT8uc2hvd0RpdmlkZXJcIiBsb2FkaW5nPVwibGF6eVwiIFtzcmNdPVwic3R5bGVzPy5kaXZpZGVySW1hZ2U/LnVybFwiIGFsdD1cIlwiXG4gICAgICAgICAgICBjbGFzcz1cInNwYW4taW1nIG10LTE1XCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcnktcGFyZW50XCIgW25nQ2xhc3NdPVwieydmbGV4LXdyYXAnOiBnZXREaXJlY3Rpb24gPT0gJ1JPVyd9XCJcbiAgICAgICAgICBbc2ltcG9Db250YWluZXJBbGlnbm1lbnRdPVwic3R5bGVzPy5sYXlvdXRcIiBbaWRdPVwiZGF0YT8uaWRcIiBbc3R5bGUuanVzdGlmeUNvbnRlbnRdPVwic3R5bGVzPy5sYXlvdXQ/LmFsaWduXCI+XG4gICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZGF0YSBvZiByZXNwb25zZURhdGE7IGxldCBpZHggPSBpbmRleFwiIChjbGljayk9XCJyZWRpcmVjdFRvTGlzdFBhZ2UoZGF0YSlcIlxuICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IHBvc2l0aW9uLXJlbGF0aXZlIGp1c3RpZnktY29udGVudC1jZW50ZXJcIiAoY2xpY2spPVwicmVkaXJlY3RUb0xpc3RQYWdlKGRhdGEpXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yeS1iYWNrXCIgW3N0eWxlLi0tYmVmb3JlLWhlaWdodC5weF09XCIoKHN0eWxlcz8uY29udGFpbmVySGVpZ2h0ID8/IDUwKSAtIDMwKSA/PyA1MFwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLi0tYWZ0ZXItaGVpZ2h0LnB4XT1cIigoc3R5bGVzPy5jb250YWluZXJIZWlnaHQgPz8gNTApLSAzMClcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPGltZyBsb2FkaW5nPVwibGF6eVwiIFtzdHlsZS5oZWlnaHQucHhdPVwiKHN0eWxlcz8uY29udGFpbmVySGVpZ2h0ID8/IDEpIC8gKGlzTW9iaWxlID8gMiA6IDEpXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGgucHhdPVwiKHN0eWxlcz8uY29udGFpbmVyV2lkdGggPz8gMSkgLyAoaXNNb2JpbGUgPyAyIDogMSlcIlxuICAgICAgICAgICAgICAgIG9uZXJyb3I9XCJ0aGlzLnNyYz0naHR0cHM6Ly9pLnBvc3RpbWcuY2MvaFBTMkpwVjAvbm8taW1hZ2UtYXZhaWxhYmxlLmpwZydcIlxuICAgICAgICAgICAgICAgIFtzcmNdPVwiZGF0YS5pbWdVcmw/LlswXSA/PyAnaHR0cHM6Ly9pLnBvc3RpbWcuY2MvaFBTMkpwVjAvbm8taW1hZ2UtYXZhaWxhYmxlLmpwZydcIiBhbHQ9XCJcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2F0ZWdvcnktaW1hZ2VcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QtY291bnRcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJzdHlsZXM/LmJhY2tncm91bmQ/LmNvbG9yXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiZ2V0Q29sb3Ioc3R5bGVzPy5iYWNrZ3JvdW5kPy5jb2xvcilcIj57eyhkYXRhPy5pdGVtSWRzPy5sZW5ndGggPz8gMCkgKyBcIlxuICAgICAgICAgICAgICAgIFwiICsgXCJkZXNpZ25zXCJ9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcnktbmFtZSBib2R5LWxhcmdlIHAtMlwiICpuZ0lmPVwiY29udGVudD8uZGlzcGxheT8uc2hvd0hlYWRpbmdcIlxuICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZF09XCJzdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCJcbiAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImdldENvbG9yKHN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3IpXCI+e3tkYXRhLmNvbGxlY3Rpb25OYW1lfX08L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgIDwvZGl2PlxuXG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3R5bGVzPy5kZXZpZGVyPy5kaXNwbGF5XCI+XG4gICAgICA8c2ltcG8tc3ZnLWRpdmlkZXIgW2RpdmlkZXJUeXBlXT1cInN0eWxlcz8uZGV2aWRlcj8uZGV2aWRlclR5cGVcIlxuICAgICAgICBbY29sb3JdPVwibmV4dENvbXBvbmVudENvbG9yPy5jb2xvclwiPjwvc2ltcG8tc3ZnLWRpdmlkZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGRpdiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGVkaXR9XCIgKm5nSWY9XCJzaG93RWRpdG9yc1wiPlxuICAgICAgPHNpbXBvLWhvdmVyLWVsZW1lbnRzIFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIiBbZWRpdE9wdGlvbnNdPVwiZWRpdFwiPjwvc2ltcG8taG92ZXItZWxlbWVudHM+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cInNob3dEZWxldGVcIiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGRlbGV0ZX1cIj5cbiAgICAgIDxzaW1wby1kZWxldGUtaG92ZXItZWxlbWVudCBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCI+PC9zaW1wby1kZWxldGUtaG92ZXItZWxlbWVudD5cbiAgICA8L2Rpdj5cblxuICA8L3NlY3Rpb24+XG48L25nLWNvbnRhaW5lcj5cblxuPG5neC1za2VsZXRvbi1sb2FkZXIgKm5nSWY9XCJpc0xvYWRpbmdcIiBjb3VudD1cIjFcIiBhcHBlYXJhbmNlPVwiY2lyY2xlXCIgW3RoZW1lXT1cIntcbiAgd2lkdGg6ICcxMDAlJyxcbiAgaGVpZ2h0OiAnNDB2aCcsXG4gICdib3JkZXItcmFkaXVzJzogJzEwcHgnLFxuICAncG9zaXRpb24nOiAncmVsYXRpdmUnLFxuICAncmlnaHQnOiAnNXB4J1xufVwiPlxuPC9uZ3gtc2tlbGV0b24tbG9hZGVyPiJdfQ==
|
@@ -1,2 +1,2 @@
|
|
1
1
|
export {};
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LWNvbGxlY3Rpb24ubW9kYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2Vjb21tZXJjZS9zZWN0aW9ucy9uZXctY29sbGVjdGlvbi9uZXctY29sbGVjdGlvbi5tb2RhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTElOS19UWVBFIH0gZnJvbSBcIi4uLy4uLy4uL3N0eWxlcy90eXBlc1wiO1xuaW1wb3J0IHsgSW5wdXRUZXh0TW9kZWwsIERpc3BsYXlTZWN0aW9uLCBTdHlsZXNNb2RlbCwgSW1hZ2VTdHlsZSB9IGZyb20gXCIuLi8uLi8uLi9zdHlsZXMvc3R5bGUubW9kZWxcIjtcbmltcG9ydCB7IENvcm5lcnMgfSBmcm9tIFwiLi4vLi4vLi4vLi9zdHlsZXMvaW5kZXhcIjtcbmltcG9ydCB7IERpc3BsYXkgfSBmcm9tIFwiLi4vZmVhdHVyZWQtcHJvZHVjdHMvZmVhdHVyZWQtcHJvZHVjdHMubW9kYWxcIjtcblxuZXhwb3J0IGludGVyZmFjZSBOZXdDb2xsZWN0aW9uTW9kYWwge1xuICBpZDogc3RyaW5nLFxuICBzZWN0aW9uVHlwZTogc3RyaW5nLFxuICBzZWN0aW9uTmFtZTogc3RyaW5nLFxuICBjb250ZW50OiBOZXdDb2xsZWN0aW9uQ29udGVudE1vZGFsO1xuICBzdHlsZXM6IE5ld0NvbGxlY3Rpb25TdHlsZU1vZGFsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5ld0NvbGxlY3Rpb25Db250ZW50TW9kYWwge1xuICBpbnB1dFRleHQgOiBJbnB1dFRleHRNb2RlbFtdO1xuICBjb2xsZWN0aW9uSWQ/OiBzdHJpbmc7XG4gIGNvbGxlY3Rpb25JZHM/OiBzdHJpbmdbXTtcbiAgZGlzcGxheTogRGlzcGxheTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZXdDb2xsZWN0aW9uU3R5bGVNb2RhbCBleHRlbmRzIFN0eWxlc01vZGVse1xuICBtYXhpbXVtUHJvZHVjdDogbnVtYmVyO1xuICBkaXJlY3Rpb246IFwiUk9XXCIgfCBcIkNPTFVNTlwiLFxuICBjb250YWluZXJIZWlnaHQ6IG51bWJlcixcbiAgY29udGFpbmVyV2lkdGg6IG51bWJlcixcbiAgY29ybmVycyA6IENvcm5lcnNcbn1cbiJdfQ==
|
@@ -103,11 +103,12 @@ export class OrderDetailsComponent {
|
|
103
103
|
submitReview(item) {
|
104
104
|
console.log(item);
|
105
105
|
let payload = {
|
106
|
-
userId: this.storageService.getUser()?.userId,
|
106
|
+
userId: this.storageService.getUser()?.userId ?? "",
|
107
107
|
businessId: localStorage.getItem('businessId') ?? "",
|
108
108
|
productId: item.itemId,
|
109
109
|
rating: item.rating,
|
110
110
|
review: item.review,
|
111
|
+
orderId: this.orderDetailData?.userOrderId ?? "",
|
111
112
|
userName: this.storageService.getUser()?.contact.name
|
112
113
|
};
|
113
114
|
this.restService.addReviewToProduct(payload).subscribe({
|
@@ -119,10 +120,10 @@ export class OrderDetailsComponent {
|
|
119
120
|
}
|
120
121
|
});
|
121
122
|
}
|
122
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
123
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: OrderDetailsComponent, isStandalone: true, selector: "simpo-order-details", inputs: { responseData: "responseData", data: "data", index: "index", edit: "edit", delete: "delete", customClass: "customClass", orderDetailData: "orderDetailData" }, outputs: { goBackEmitter: "goBackEmitter" }, ngImport: i0, template: "<ng-container *ngIf=\"!isLoading\">\r\n <section class=\"d-flex justify-content-between main-section\" [style.width.vw]=\"isMobile ? '100' : '65'\"\r\n style=\"margin: auto;\" [attr.style]=\"customClass\">\r\n <div class=\"left\" [style.width.%]=\"isMobile ? '90' : '70'\">\r\n <h1 class=\"fs-3 fw-normal mb-3 d-flex align-items-center onlyDesktop position-relative\"\r\n style=\"left: -35px;\">\r\n <mat-icon style=\"cursor: pointer;\" (click)=\"goBack()\">keyboard_arrow_left</mat-icon>\r\n <span>Order Details</span>\r\n </h1>\r\n <div class=\"d-flex justify-content-between align-items-end orderNum\">\r\n <div class=\"d-flex flex-column\">\r\n <span class=\"fs-5\">Order {{ orderDetailData?.orderNum }}</span>\r\n <span class=\"fs-6\">{{ orderDetailData?.createdTimeStamp | date: 'medium' }}, {{\r\n orderDetailData?.brandOrderDetails?.[0]?.orderedItems.length }} items | <span\r\n [innerHTML]=\"currency\"></span>\r\n {{orderDetailData?.brandOrderDetails?.[0]?.billDetails?.totalGrossValue}}</span>\r\n </div>\r\n <span class=\"fw-bold fs-5\">{{orderDetailData?.brandOrderDetails?.[0]?.businessName | titlecase}}</span>\r\n </div>\r\n <ng-container *ngIf=\"!isMobile\">\r\n <ng-container *ngTemplateOutlet=\"timelineContainer\"></ng-container>\r\n </ng-container>\r\n <div>\r\n <div *ngFor=\"let item of orderDetailData?.brandOrderDetails[0]?.orderedItems\" class=\"d-flex mb-2\"\r\n style=\"gap: 10px; width: 100%;\">\r\n <img loading=\"lazy\" onerror=\"this.src='https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\"\r\n [src]=\"item.imgUrl\" alt=\"\" style=\"height: 85px;width: 85px; border-radius: 5px;\">\r\n <div class=\"d-flex flex-column justify-content-center\" style=\"gap: 6px; width: 89%;\">\r\n <span class=\"fs-6\">{{item.itemName}}</span>\r\n <!-- <span class=\"fs-6\">Size: XS</span> -->\r\n <div class=\"d-flex justify-content-between fs-6\">\r\n <span>{{item.quantity}} X <span [innerHTML]=\"currency\"></span> <span\r\n class=\"fw-bold\">{{(item.discountedPrice) | number: '1.0-2'}}</span></span>\r\n <span> <span [innerHTML]=\"currency\"></span> <span class=\"fw-bold\">{{(item.discountedPrice *\r\n item.quantity) | number: '1.0-2'}}</span></span>\r\n </div>\r\n <div class=\"review-rating d-flex justify-content-between flex-column\">\r\n <div class=\"w-75\">\r\n <p-rating [(ngModel)]=\"item.rating\" [cancel]=\"false\" [readonly]=\"false\" />\r\n <div class=\"message w-100\">\r\n <div class=\"f-13\">Add a Detailed Review</div>\r\n <textarea class=\"w-100 br-6 f-13\" [(ngModel)]=\"item.review\"></textarea>\r\n </div>\r\n </div>\r\n <div class=\"d-flex align-items-end\">\r\n <div (click)=\"submitReview(item)\" class=\"d-flex align-items-end f-16 fw-800\">Submit</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"isMobile\">\r\n <ng-container *ngTemplateOutlet=\"timelineContainer\"></ng-container>\r\n </ng-container>\r\n <div class=\"fs-6 mt-25\">\r\n <div class=\"d-flex justify-content-between my-2\">\r\n <span class=\"fw-normal\">Item Total</span>\r\n <span class=\"fw-bold\"><span [innerHTML]=\"currency\"></span>\r\n {{orderDetailData?.billDetails?.totalNetValue | number:'1.0-2'}}</span>\r\n </div>\r\n <div class=\"d-flex justify-content-between my-2\" *ngIf=\"orderDetailData?.billDetails?.discountAmount\">\r\n <span class=\"fw-normal\">Discount</span>\r\n <span class=\"fw-bold\"><span [innerHTML]=\"currency\"></span>\r\n {{orderDetailData?.billDetails?.discountAmount | number:'1.0-2'}}</span>\r\n </div>\r\n <div class=\"d-flex justify-content-between my-2\">\r\n <span class=\"fw-normal\">Total Tax</span>\r\n <span class=\"fw-bold\"><span [innerHTML]=\"currency\"></span>\r\n {{orderDetailData?.billDetails?.discountAmount ?\r\n orderDetailData?.billDetails?.totalTaxAfterDiscount :\r\n orderDetailData?.billDetails?.totalTax | number:'1.0-2'}}</span>\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-between my-2\">\r\n <span>Delivery</span>\r\n <span>FREE</span>\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-between my-2\">\r\n <span class=\"fw-normal\">Grand Total</span>\r\n <span class=\"fw-bold\"><span [innerHTML]=\"currency\"></span>\r\n {{orderDetailData?.billDetails?.discountAmount ? (orderDetailData?.billDetails?.totalNetValue -\r\n orderDetailData?.billDetails?.discountAmount +\r\n orderDetailData?.billDetails?.totalTaxAfterDiscount) :\r\n orderDetailData?.billDetails?.totalGrossValue | number:'1.0-2'}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"\" style=\"width: 28%;\" [style.width.%]=\"isMobile ? '90' : '28'\">\r\n <div class=\"right\">\r\n <h1 class=\"mb-3 fs-5\">User Details</h1>\r\n <div class=\"my-2 fs-6\">\r\n <span style=\"margin-right: 10px;\">Name:</span>\r\n <span class=\"fw-bold pl-2\">{{orderDetailData?.addressDetails?.receiverName}}</span>\r\n </div>\r\n <div class=\"my-2 fs-6\">\r\n <span style=\"margin-right: 10px\">Phone:</span>\r\n <span class=\"fw-bold pl-2\">{{ orderDetailData?.addressDetails?.receiverPhone }}</span>\r\n </div>\r\n <div class=\"my-2 fs-6\">\r\n <span style=\"margin-right: 10px\">Address:</span>\r\n <span class=\"fw-bold pl-2\">{{ orderAddress }}</span>\r\n </div>\r\n <div class=\"my-2 fs-6\">\r\n <span style=\"margin-right: 10px\">Payment:</span>\r\n <span class=\"fw-bold pl-2\">Manual Payment</span>\r\n </div>\r\n <a (click)=\"trackOrder()\" class=\"track-order\" *ngIf=\"orderDetailData?.orderTrackingLink\">Track Order\r\n </a>\r\n </div>\r\n </div>\r\n </section>\r\n</ng-container>\r\n\r\n<ng-template #timelineContainer>\r\n <hr />\r\n <div class=\"timeline\">\r\n <p-timeline [value]=\"orderTimiline\">\r\n <ng-template pTemplate=\"content\" let-event>\r\n <div class=\"d-flex time-line\">\r\n <mat-icon style=\"margin-right: 10px;\">{{ event.icon }}</mat-icon>\r\n <div class=\"d-flex flex-column ml-2\">\r\n <span class=\"fw-normal fs-6\">{{ event.name?.replaceAll(\"_\", \" \") }}</span>\r\n <div class=\"fs-6 \">{{event.desc?.replaceAll(\"_\", \" \")}}</div>\r\n <!-- <div class=\"action-btn\">\r\n <button *ngIf=\"canCancelOrder\">Cancel Order</button>\r\n </div> -->\r\n </div>\r\n </div>\r\n </ng-template>\r\n </p-timeline>\r\n </div>\r\n <hr />\r\n</ng-template>\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 'right': '5px'\r\n }\">\r\n</ngx-skeleton-loader>", styles: [".right{height:250px;padding:15px;background-color:#f8f8f8;border-radius:8px;color:#000}hr{border-top-width:2px;margin:15px 0}.f-13{font-size:13px}.f-16{font-size:16px}.fw-800{font-weight:800}.br-6{border-radius:6px}textarea{resize:unset}.action-btn>button{font-size:14px!important;border:none;width:fit-content!important;margin-top:5px;border-radius:3px;padding:5px 10px;background-color:tomato;color:#fff}.mat-icon{height:30px;width:30px;font-size:30px}.timeline{margin:25px 0}.onlyMobile{display:none}.track-order{background-color:#000;color:#fff;border:1px solid black;width:auto;border-radius:3px;padding:5px}@media only screen and (max-width: 475px){.onlyDesktop{display:none!important}.onlyMobile{display:block}.mat-icon{width:46px}.time-line{padding-bottom:6px}.right{width:98%!important;margin-bottom:4px!important;height:auto!important;padding:15px!important;margin-top:5%}.main-section{width:100%!important;flex-direction:column!important}.left{width:100%!important;padding:3%}.orderNum{margin-bottom:25px}}@media (min-width:768px) and (max-width:1024px){.left{padding:3%;width:70%}.right{width:28%!important;padding:2%;margin-top:10%;margin-right:3%}}.mt-25{margin-top:25px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i5.DecimalPipe, name: "number" }, { kind: "pipe", type: i5.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i5.DatePipe, name: "date" }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i6.NgxSkeletonLoaderComponent, selector: "ngx-skeleton-loader", inputs: ["count", "loadingText", "appearance", "animation", "ariaLabel", "theme"] }, { kind: "ngmodule", type: TimelineModule }, { kind: "component", type: i7.Timeline, selector: "p-timeline", inputs: ["value", "style", "styleClass", "align", "layout"] }, { kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: PanelModule }, { kind: "ngmodule", type: RatingModule }, { kind: "component", type: i8.Rating, selector: "p-rating", inputs: ["disabled", "readonly", "stars", "cancel", "iconOnClass", "iconOnStyle", "iconOffClass", "iconOffStyle", "iconCancelClass", "iconCancelStyle", "autofocus"], outputs: ["onRate", "onCancel", "onFocus", "onBlur"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i9.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i9.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
123
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OrderDetailsComponent, deps: [{ token: i1.EventsService }, { token: i2.StorageServiceService }, { token: i3.RestService }, { token: i4.MessageService }], target: i0.ɵɵFactoryTarget.Component }); }
|
124
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OrderDetailsComponent, isStandalone: true, selector: "simpo-order-details", inputs: { responseData: "responseData", data: "data", index: "index", edit: "edit", delete: "delete", customClass: "customClass", orderDetailData: "orderDetailData" }, outputs: { goBackEmitter: "goBackEmitter" }, ngImport: i0, template: "<ng-container *ngIf=\"!isLoading\">\n <section class=\"d-flex justify-content-between main-section\" [style.width.vw]=\"isMobile ? '100' : '65'\"\n style=\"margin: auto;\" [attr.style]=\"customClass\">\n <div class=\"left\" [style.width.%]=\"isMobile ? '90' : '70'\">\n <h1 class=\"fs-3 fw-normal mb-3 d-flex align-items-center onlyDesktop position-relative\"\n style=\"left: -35px;\">\n <mat-icon style=\"cursor: pointer;\" (click)=\"goBack()\">keyboard_arrow_left</mat-icon>\n <span>Order Details</span>\n </h1>\n <div class=\"d-flex justify-content-between align-items-end orderNum\">\n <div class=\"d-flex flex-column\">\n <span class=\"fs-5\">Order {{ orderDetailData?.orderNum }}</span>\n <span class=\"fs-6\">{{ orderDetailData?.createdTimeStamp | date: 'medium' }}, {{\n orderDetailData?.brandOrderDetails?.[0]?.orderedItems.length }} items | <span\n [innerHTML]=\"currency\"></span>\n {{orderDetailData?.brandOrderDetails?.[0]?.billDetails?.totalGrossValue}}</span>\n </div>\n <span class=\"fw-bold fs-5\">{{orderDetailData?.brandOrderDetails?.[0]?.businessName | titlecase}}</span>\n </div>\n <ng-container *ngIf=\"!isMobile\">\n <ng-container *ngTemplateOutlet=\"timelineContainer\"></ng-container>\n </ng-container>\n <div>\n <div *ngFor=\"let item of orderDetailData?.brandOrderDetails[0]?.orderedItems\" class=\"d-flex mb-2\"\n style=\"gap: 10px; width: 100%;\">\n <img loading=\"lazy\" onerror=\"this.src='https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\"\n [src]=\"item.imgUrl\" alt=\"\" style=\"height: 85px;width: 85px; border-radius: 5px;\">\n <div class=\"d-flex flex-column justify-content-center\" style=\"gap: 6px; width: 89%;\">\n <span class=\"fs-6\">{{item.itemName}}</span>\n <!-- <span class=\"fs-6\">Size: XS</span> -->\n <div class=\"d-flex justify-content-between fs-6\">\n <span>{{item.quantity}} X <span [innerHTML]=\"currency\"></span> <span\n class=\"fw-bold\">{{(item.discountedPrice) | number: '1.0-2'}}</span></span>\n <span> <span [innerHTML]=\"currency\"></span> <span class=\"fw-bold\">{{(item.discountedPrice *\n item.quantity) | number: '1.0-2'}}</span></span>\n </div>\n <div class=\"review-rating d-flex justify-content-between flex-column\">\n <div class=\"w-75\">\n <p-rating [(ngModel)]=\"item.rating\" [cancel]=\"false\" [readonly]=\"false\" />\n <div class=\"message w-100\">\n <div class=\"f-13\">Add a Detailed Review</div>\n <textarea class=\"w-100 br-6 f-13\" [(ngModel)]=\"item.review\"></textarea>\n </div>\n </div>\n <div class=\"d-flex align-items-end\">\n <div (click)=\"submitReview(item)\" class=\"d-flex align-items-end f-16 fw-800\">Submit</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <ng-container *ngIf=\"isMobile\">\n <ng-container *ngTemplateOutlet=\"timelineContainer\"></ng-container>\n </ng-container>\n <div class=\"fs-6 mt-25\">\n <div class=\"d-flex justify-content-between my-2\">\n <span class=\"fw-normal\">Item Total</span>\n <span class=\"fw-bold\"><span [innerHTML]=\"currency\"></span>\n {{orderDetailData?.billDetails?.totalNetValue | number:'1.0-2'}}</span>\n </div>\n <div class=\"d-flex justify-content-between my-2\" *ngIf=\"orderDetailData?.billDetails?.discountAmount\">\n <span class=\"fw-normal\">Discount</span>\n <span class=\"fw-bold\"><span [innerHTML]=\"currency\"></span>\n {{orderDetailData?.billDetails?.discountAmount | number:'1.0-2'}}</span>\n </div>\n <div class=\"d-flex justify-content-between my-2\">\n <span class=\"fw-normal\">Total Tax</span>\n <span class=\"fw-bold\"><span [innerHTML]=\"currency\"></span>\n {{orderDetailData?.billDetails?.discountAmount ?\n orderDetailData?.billDetails?.totalTaxAfterDiscount :\n orderDetailData?.billDetails?.totalTax | number:'1.0-2'}}</span>\n </div>\n\n <div class=\"d-flex justify-content-between my-2\">\n <span>Delivery</span>\n <span>FREE</span>\n </div>\n\n <div class=\"d-flex justify-content-between my-2\">\n <span class=\"fw-normal\">Grand Total</span>\n <span class=\"fw-bold\"><span [innerHTML]=\"currency\"></span>\n {{orderDetailData?.billDetails?.discountAmount ? (orderDetailData?.billDetails?.totalNetValue -\n orderDetailData?.billDetails?.discountAmount +\n orderDetailData?.billDetails?.totalTaxAfterDiscount) :\n orderDetailData?.billDetails?.totalGrossValue | number:'1.0-2'}}</span>\n </div>\n </div>\n </div>\n <div class=\"\" style=\"width: 28%;\" [style.width.%]=\"isMobile ? '90' : '28'\">\n <div class=\"right\">\n <h1 class=\"mb-3 fs-5\">User Details</h1>\n <div class=\"my-2 fs-6\">\n <span style=\"margin-right: 10px;\">Name:</span>\n <span class=\"fw-bold pl-2\">{{orderDetailData?.addressDetails?.receiverName}}</span>\n </div>\n <div class=\"my-2 fs-6\">\n <span style=\"margin-right: 10px\">Phone:</span>\n <span class=\"fw-bold pl-2\">{{ orderDetailData?.addressDetails?.receiverPhone }}</span>\n </div>\n <div class=\"my-2 fs-6\">\n <span style=\"margin-right: 10px\">Address:</span>\n <span class=\"fw-bold pl-2\">{{ orderAddress }}</span>\n </div>\n <div class=\"my-2 fs-6\">\n <span style=\"margin-right: 10px\">Payment:</span>\n <span class=\"fw-bold pl-2\">Manual Payment</span>\n </div>\n <a (click)=\"trackOrder()\" class=\"track-order\" *ngIf=\"orderDetailData?.orderTrackingLink\">Track Order\n </a>\n </div>\n </div>\n </section>\n</ng-container>\n\n<ng-template #timelineContainer>\n <hr />\n <div class=\"timeline\">\n <p-timeline [value]=\"orderTimiline\">\n <ng-template pTemplate=\"content\" let-event>\n <div class=\"d-flex time-line\">\n <mat-icon style=\"margin-right: 10px;\">{{ event.icon }}</mat-icon>\n <div class=\"d-flex flex-column ml-2\">\n <span class=\"fw-normal fs-6\">{{ event.name?.replaceAll(\"_\", \" \") }}</span>\n <div class=\"fs-6 \">{{event.desc?.replaceAll(\"_\", \" \")}}</div>\n <!-- <div class=\"action-btn\">\n <button *ngIf=\"canCancelOrder\">Cancel Order</button>\n </div> -->\n </div>\n </div>\n </ng-template>\n </p-timeline>\n </div>\n <hr />\n</ng-template>\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 'right': '5px'\n }\">\n</ngx-skeleton-loader>", styles: [".right{height:250px;padding:15px;background-color:#f8f8f8;border-radius:8px;color:#000}hr{border-top-width:2px;margin:15px 0}.f-13{font-size:13px}.f-16{font-size:16px}.fw-800{font-weight:800}.br-6{border-radius:6px}textarea{resize:unset}.action-btn>button{font-size:14px!important;border:none;width:fit-content!important;margin-top:5px;border-radius:3px;padding:5px 10px;background-color:tomato;color:#fff}.mat-icon{height:30px;width:30px;font-size:30px}.timeline{margin:25px 0}.onlyMobile{display:none}.track-order{background-color:#000;color:#fff;border:1px solid black;width:auto;border-radius:3px;padding:5px}@media only screen and (max-width: 475px){.onlyDesktop{display:none!important}.onlyMobile{display:block}.mat-icon{width:46px}.time-line{padding-bottom:6px}.right{width:98%!important;margin-bottom:4px!important;height:auto!important;padding:15px!important;margin-top:5%}.main-section{width:100%!important;flex-direction:column!important}.left{width:100%!important;padding:3%}.orderNum{margin-bottom:25px}}@media (min-width:768px) and (max-width:1024px){.left{padding:3%;width:70%}.right{width:28%!important;padding:2%;margin-top:10%;margin-right:3%}}.mt-25{margin-top:25px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i5.DecimalPipe, name: "number" }, { kind: "pipe", type: i5.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i5.DatePipe, name: "date" }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i6.NgxSkeletonLoaderComponent, selector: "ngx-skeleton-loader", inputs: ["count", "loadingText", "appearance", "animation", "ariaLabel", "theme"] }, { kind: "ngmodule", type: TimelineModule }, { kind: "component", type: i7.Timeline, selector: "p-timeline", inputs: ["value", "style", "styleClass", "align", "layout"] }, { kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: PanelModule }, { kind: "ngmodule", type: RatingModule }, { kind: "component", type: i8.Rating, selector: "p-rating", inputs: ["disabled", "readonly", "stars", "cancel", "iconOnClass", "iconOnStyle", "iconOffClass", "iconOffStyle", "iconCancelClass", "iconCancelStyle", "autofocus"], outputs: ["onRate", "onCancel", "onFocus", "onBlur"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i9.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i9.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
124
125
|
}
|
125
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
126
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OrderDetailsComponent, decorators: [{
|
126
127
|
type: Component,
|
127
128
|
args: [{ selector: 'simpo-order-details', standalone: true, imports: [
|
128
129
|
CommonModule,
|
@@ -132,7 +133,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
|
|
132
133
|
PanelModule,
|
133
134
|
RatingModule,
|
134
135
|
FormsModule
|
135
|
-
], template: "<ng-container *ngIf=\"!isLoading\">\
|
136
|
+
], template: "<ng-container *ngIf=\"!isLoading\">\n <section class=\"d-flex justify-content-between main-section\" [style.width.vw]=\"isMobile ? '100' : '65'\"\n style=\"margin: auto;\" [attr.style]=\"customClass\">\n <div class=\"left\" [style.width.%]=\"isMobile ? '90' : '70'\">\n <h1 class=\"fs-3 fw-normal mb-3 d-flex align-items-center onlyDesktop position-relative\"\n style=\"left: -35px;\">\n <mat-icon style=\"cursor: pointer;\" (click)=\"goBack()\">keyboard_arrow_left</mat-icon>\n <span>Order Details</span>\n </h1>\n <div class=\"d-flex justify-content-between align-items-end orderNum\">\n <div class=\"d-flex flex-column\">\n <span class=\"fs-5\">Order {{ orderDetailData?.orderNum }}</span>\n <span class=\"fs-6\">{{ orderDetailData?.createdTimeStamp | date: 'medium' }}, {{\n orderDetailData?.brandOrderDetails?.[0]?.orderedItems.length }} items | <span\n [innerHTML]=\"currency\"></span>\n {{orderDetailData?.brandOrderDetails?.[0]?.billDetails?.totalGrossValue}}</span>\n </div>\n <span class=\"fw-bold fs-5\">{{orderDetailData?.brandOrderDetails?.[0]?.businessName | titlecase}}</span>\n </div>\n <ng-container *ngIf=\"!isMobile\">\n <ng-container *ngTemplateOutlet=\"timelineContainer\"></ng-container>\n </ng-container>\n <div>\n <div *ngFor=\"let item of orderDetailData?.brandOrderDetails[0]?.orderedItems\" class=\"d-flex mb-2\"\n style=\"gap: 10px; width: 100%;\">\n <img loading=\"lazy\" onerror=\"this.src='https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\"\n [src]=\"item.imgUrl\" alt=\"\" style=\"height: 85px;width: 85px; border-radius: 5px;\">\n <div class=\"d-flex flex-column justify-content-center\" style=\"gap: 6px; width: 89%;\">\n <span class=\"fs-6\">{{item.itemName}}</span>\n <!-- <span class=\"fs-6\">Size: XS</span> -->\n <div class=\"d-flex justify-content-between fs-6\">\n <span>{{item.quantity}} X <span [innerHTML]=\"currency\"></span> <span\n class=\"fw-bold\">{{(item.discountedPrice) | number: '1.0-2'}}</span></span>\n <span> <span [innerHTML]=\"currency\"></span> <span class=\"fw-bold\">{{(item.discountedPrice *\n item.quantity) | number: '1.0-2'}}</span></span>\n </div>\n <div class=\"review-rating d-flex justify-content-between flex-column\">\n <div class=\"w-75\">\n <p-rating [(ngModel)]=\"item.rating\" [cancel]=\"false\" [readonly]=\"false\" />\n <div class=\"message w-100\">\n <div class=\"f-13\">Add a Detailed Review</div>\n <textarea class=\"w-100 br-6 f-13\" [(ngModel)]=\"item.review\"></textarea>\n </div>\n </div>\n <div class=\"d-flex align-items-end\">\n <div (click)=\"submitReview(item)\" class=\"d-flex align-items-end f-16 fw-800\">Submit</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <ng-container *ngIf=\"isMobile\">\n <ng-container *ngTemplateOutlet=\"timelineContainer\"></ng-container>\n </ng-container>\n <div class=\"fs-6 mt-25\">\n <div class=\"d-flex justify-content-between my-2\">\n <span class=\"fw-normal\">Item Total</span>\n <span class=\"fw-bold\"><span [innerHTML]=\"currency\"></span>\n {{orderDetailData?.billDetails?.totalNetValue | number:'1.0-2'}}</span>\n </div>\n <div class=\"d-flex justify-content-between my-2\" *ngIf=\"orderDetailData?.billDetails?.discountAmount\">\n <span class=\"fw-normal\">Discount</span>\n <span class=\"fw-bold\"><span [innerHTML]=\"currency\"></span>\n {{orderDetailData?.billDetails?.discountAmount | number:'1.0-2'}}</span>\n </div>\n <div class=\"d-flex justify-content-between my-2\">\n <span class=\"fw-normal\">Total Tax</span>\n <span class=\"fw-bold\"><span [innerHTML]=\"currency\"></span>\n {{orderDetailData?.billDetails?.discountAmount ?\n orderDetailData?.billDetails?.totalTaxAfterDiscount :\n orderDetailData?.billDetails?.totalTax | number:'1.0-2'}}</span>\n </div>\n\n <div class=\"d-flex justify-content-between my-2\">\n <span>Delivery</span>\n <span>FREE</span>\n </div>\n\n <div class=\"d-flex justify-content-between my-2\">\n <span class=\"fw-normal\">Grand Total</span>\n <span class=\"fw-bold\"><span [innerHTML]=\"currency\"></span>\n {{orderDetailData?.billDetails?.discountAmount ? (orderDetailData?.billDetails?.totalNetValue -\n orderDetailData?.billDetails?.discountAmount +\n orderDetailData?.billDetails?.totalTaxAfterDiscount) :\n orderDetailData?.billDetails?.totalGrossValue | number:'1.0-2'}}</span>\n </div>\n </div>\n </div>\n <div class=\"\" style=\"width: 28%;\" [style.width.%]=\"isMobile ? '90' : '28'\">\n <div class=\"right\">\n <h1 class=\"mb-3 fs-5\">User Details</h1>\n <div class=\"my-2 fs-6\">\n <span style=\"margin-right: 10px;\">Name:</span>\n <span class=\"fw-bold pl-2\">{{orderDetailData?.addressDetails?.receiverName}}</span>\n </div>\n <div class=\"my-2 fs-6\">\n <span style=\"margin-right: 10px\">Phone:</span>\n <span class=\"fw-bold pl-2\">{{ orderDetailData?.addressDetails?.receiverPhone }}</span>\n </div>\n <div class=\"my-2 fs-6\">\n <span style=\"margin-right: 10px\">Address:</span>\n <span class=\"fw-bold pl-2\">{{ orderAddress }}</span>\n </div>\n <div class=\"my-2 fs-6\">\n <span style=\"margin-right: 10px\">Payment:</span>\n <span class=\"fw-bold pl-2\">Manual Payment</span>\n </div>\n <a (click)=\"trackOrder()\" class=\"track-order\" *ngIf=\"orderDetailData?.orderTrackingLink\">Track Order\n </a>\n </div>\n </div>\n </section>\n</ng-container>\n\n<ng-template #timelineContainer>\n <hr />\n <div class=\"timeline\">\n <p-timeline [value]=\"orderTimiline\">\n <ng-template pTemplate=\"content\" let-event>\n <div class=\"d-flex time-line\">\n <mat-icon style=\"margin-right: 10px;\">{{ event.icon }}</mat-icon>\n <div class=\"d-flex flex-column ml-2\">\n <span class=\"fw-normal fs-6\">{{ event.name?.replaceAll(\"_\", \" \") }}</span>\n <div class=\"fs-6 \">{{event.desc?.replaceAll(\"_\", \" \")}}</div>\n <!-- <div class=\"action-btn\">\n <button *ngIf=\"canCancelOrder\">Cancel Order</button>\n </div> -->\n </div>\n </div>\n </ng-template>\n </p-timeline>\n </div>\n <hr />\n</ng-template>\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 'right': '5px'\n }\">\n</ngx-skeleton-loader>", styles: [".right{height:250px;padding:15px;background-color:#f8f8f8;border-radius:8px;color:#000}hr{border-top-width:2px;margin:15px 0}.f-13{font-size:13px}.f-16{font-size:16px}.fw-800{font-weight:800}.br-6{border-radius:6px}textarea{resize:unset}.action-btn>button{font-size:14px!important;border:none;width:fit-content!important;margin-top:5px;border-radius:3px;padding:5px 10px;background-color:tomato;color:#fff}.mat-icon{height:30px;width:30px;font-size:30px}.timeline{margin:25px 0}.onlyMobile{display:none}.track-order{background-color:#000;color:#fff;border:1px solid black;width:auto;border-radius:3px;padding:5px}@media only screen and (max-width: 475px){.onlyDesktop{display:none!important}.onlyMobile{display:block}.mat-icon{width:46px}.time-line{padding-bottom:6px}.right{width:98%!important;margin-bottom:4px!important;height:auto!important;padding:15px!important;margin-top:5%}.main-section{width:100%!important;flex-direction:column!important}.left{width:100%!important;padding:3%}.orderNum{margin-bottom:25px}}@media (min-width:768px) and (max-width:1024px){.left{padding:3%;width:70%}.right{width:28%!important;padding:2%;margin-top:10%;margin-right:3%}}.mt-25{margin-top:25px}\n"] }]
|
136
137
|
}], ctorParameters: () => [{ type: i1.EventsService }, { type: i2.StorageServiceService }, { type: i3.RestService }, { type: i4.MessageService }], propDecorators: { responseData: [{
|
137
138
|
type: Input
|
138
139
|
}], data: [{
|
@@ -151,4 +152,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
|
|
151
152
|
}], goBackEmitter: [{
|
152
153
|
type: Output
|
153
154
|
}] } });
|
154
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItZGV0YWlscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2Vjb21tZXJjZS9zZWN0aW9ucy9vcmRlci1kZXRhaWxzL29yZGVyLWRldGFpbHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvb3JkZXItZGV0YWlscy9vcmRlci1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7OztBQW9CN0MsTUFBTSxPQUFPLHFCQUFxQjtJQVloQyxZQUNtQixhQUE0QixFQUNyQyxjQUFxQyxFQUNyQyxXQUF3QixFQUN4QixjQUE4QjtRQUhyQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUNyQyxtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFDckMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBUjlCLGtCQUFhLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFDdkUsY0FBUyxHQUFZLEtBQUssQ0FBQztRQVVwQixrQkFBYSxHQUFRLEVBQUUsQ0FBQztRQXFGL0Isa0JBQWEsR0FBVyxDQUFDLENBQUE7SUF2RnJCLENBQUM7SUFJTCxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQztRQUNoQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDckcsT0FBTztnQkFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO2dCQUN4QyxJQUFJLEVBQUUsUUFBUSxDQUFDLEtBQUs7Z0JBQ3BCLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSTthQUNwQixDQUFBO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQzFELElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVPLE9BQU8sQ0FBQyxJQUF1SDtRQUNySSxRQUFRLElBQUksRUFBRSxDQUFDO1lBQ2IsS0FBSyxjQUFjLENBQUM7WUFDcEIsS0FBSyxpQkFBaUI7Z0JBQ3BCLE9BQU8sU0FBUyxDQUFDO1lBQ25CLEtBQUssWUFBWSxDQUFDO1lBQ2xCLEtBQUssWUFBWSxDQUFDO1lBQ2xCLEtBQUssa0JBQWtCO2dCQUNyQixPQUFPLGdCQUFnQixDQUFDO1lBQzFCLEtBQUssV0FBVztnQkFDZCxPQUFPLE9BQU8sQ0FBQztZQUNqQixLQUFLLFdBQVc7Z0JBQ2QsT0FBTyxRQUFRLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUM7SUFDRCxNQUFNO1FBQ0osSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLEtBQUssSUFBSSxRQUFRLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBQ0QsSUFBSSxRQUFRO1FBQ1YsT0FBTyxNQUFNLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQztJQUNsQyxDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsT0FBZTtRQUNoQyxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBQ08sa0JBQWtCLENBQUMsUUFBZ0I7UUFFekMsSUFBSSxRQUFRLENBQUMsTUFBTSxJQUFJLENBQUM7WUFDdEIsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFdkMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXRDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRS9DLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ1osQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDWixDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUVaLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUV4SCxPQUFPLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBQ08sVUFBVSxDQUFDLFFBQWdCO1FBQ2pDLFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN0QyxJQUFJLEtBQUssR0FBRyxHQUFHLENBQUM7UUFDaEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDeEIsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLGtCQUFrQixDQUFDLFFBQVEsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFDRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxlQUFlLEVBQUUsY0FBYyxFQUFFLFlBQVksR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxjQUFjLEVBQUUsWUFBWSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLGNBQWMsRUFBRSxZQUFZLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsY0FBYyxFQUFFLFFBQVEsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxjQUFjLEVBQUUsU0FBUyxDQUFDO0lBQ3JTLENBQUM7SUFFRCxVQUFVO1FBQ1IsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBUztRQUNwQixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xCLElBQUksT0FBTyxHQUFHO1lBQ1osTUFBTSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTTtZQUM3QyxVQUFVLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFO1lBQ3BELFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTTtZQUN0QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLFFBQVEsRUFBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1NBQ3ZELENBQUE7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNyRCxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLDJCQUEyQixFQUFFLENBQUMsQ0FBQztZQUMzRyxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLDRCQUE0QixFQUFFLENBQUMsQ0FBQztZQUMxRyxDQUFDO1NBQ0YsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs4R0EzSFUscUJBQXFCO2tHQUFyQixxQkFBcUIsb1NDOUJsQyw2OVFBOElzQiw0dENEM0hsQixZQUFZLDhrQkFDWixvQkFBb0IsOE1BQ3BCLGNBQWMscVFBQ2QsT0FBTywwSUFDUCxXQUFXLDhCQUNYLFlBQVksd1RBQ1osV0FBVzs7MkZBS0YscUJBQXFCO2tCQWZqQyxTQUFTOytCQUNFLHFCQUFxQixjQUNuQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLGNBQWM7d0JBQ2QsT0FBTzt3QkFDUCxXQUFXO3dCQUNYLFlBQVk7d0JBQ1osV0FBVztxQkFDWjs2S0FLUSxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNvQixlQUFlO3NCQUF4QyxLQUFLO3VCQUFDLGlCQUFpQjtnQkFDZCxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IFNpbXBvQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9pbmRleCc7XHJcbmltcG9ydCB7IFRpbWVsaW5lTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90aW1lbGluZSc7XHJcbmltcG9ydCB7IEV2ZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9ldmVudHMuc2VydmljZSc7XHJcbmltcG9ydCB7IFByb2ZpbGVTdHlsZXNNb2RhbCB9IGZyb20gJy4uL3VzZXItcHJvZmlsZS91c2VyLXByb2ZpbGUubW9kYWwnO1xyXG5pbXBvcnQgeyBCVVNJTkVTU19DT05TVEFOVFMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvYnVzaW5lc3MuY29uc3RhbnQnO1xyXG5pbXBvcnQgeyBQYW5lbE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvcGFuZWwnO1xyXG5pbXBvcnQgeyBSYXRpbmdNb2R1bGUgfSBmcm9tICdwcmltZW5nL3JhdGluZyc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3Jlc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby1vcmRlci1kZXRhaWxzJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFNpbXBvQ29tcG9uZW50TW9kdWxlLFxyXG4gICAgVGltZWxpbmVNb2R1bGUsXHJcbiAgICBNYXRJY29uLFxyXG4gICAgUGFuZWxNb2R1bGUsXHJcbiAgICBSYXRpbmdNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL29yZGVyLWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9vcmRlci1kZXRhaWxzLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPcmRlckRldGFpbHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIHJlc3BvbnNlRGF0YT86IGFueTtcclxuICBASW5wdXQoKSBkYXRhPzogYW55O1xyXG4gIEBJbnB1dCgpIGluZGV4PzogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGVkaXQ/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGRlbGV0ZT86IGJvb2xlYW47XHJcbiAgQElucHV0KCkgY3VzdG9tQ2xhc3M/OiBzdHJpbmc7XHJcbiAgQElucHV0KFwib3JkZXJEZXRhaWxEYXRhXCIpIG9yZGVyRGV0YWlsRGF0YTogYW55O1xyXG4gIEBPdXRwdXQoKSBnb0JhY2tFbWl0dGVyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc3R5bGVzPzogUHJvZmlsZVN0eWxlc01vZGFsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2V2ZW50U2VydmljZTogRXZlbnRzU2VydmljZSxcclxuICAgIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBwdWJsaWMgb3JkZXJUaW1pbGluZTogYW55ID0gW107XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdHlsZXMgPSB0aGlzLmRhdGE/LnN0eWxlcztcclxuICAgIHRoaXMub3JkZXJUaW1pbGluZSA9IHRoaXMub3JkZXJEZXRhaWxEYXRhPy5icmFuZE9yZGVyRGV0YWlscz8uWzBdPy50aW1lTGluZUxpc3Q/Lm1hcCgodGltZWxpbmU6IGFueSkgPT4ge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGljb246IHRoaXMuZ2V0SWNvbih0aW1lbGluZS5vcmRlclN0YXR1cyksXHJcbiAgICAgICAgbmFtZTogdGltZWxpbmUudGl0bGUsXHJcbiAgICAgICAgZGVzYzogdGltZWxpbmUuYm9keVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG5cclxuICAgIHRoaXMuX2V2ZW50U2VydmljZS5zaG93TG9hZGluZ1NjcmVlbi5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gcmVzcG9uc2U7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRJY29uKHR5cGU6IFwiT1JERVJfUExBQ0VEXCIgfCBcIk9SREVSX0NPTkZJUk1FRFwiIHwgXCJESVNQQVRDSEVEXCIgfCBcIklOX1RSQU5TSVRcIiB8IFwiT1VUX0ZPUl9ERUxJVkVSWVwiIHwgXCJERUxJVkVSRURcIiB8IFwiQ0FOQ0VMTEVEXCIpIHtcclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlIFwiT1JERVJfUExBQ0VEXCI6XHJcbiAgICAgIGNhc2UgXCJPUkRFUl9DT05GSVJNRURcIjpcclxuICAgICAgICByZXR1cm4gXCJ3aWRnZXRzXCI7XHJcbiAgICAgIGNhc2UgXCJESVNQQVRDSEVEXCI6XHJcbiAgICAgIGNhc2UgXCJJTl9UUkFOU0lUXCI6XHJcbiAgICAgIGNhc2UgXCJPVVRfRk9SX0RFTElWRVJZXCI6XHJcbiAgICAgICAgcmV0dXJuIFwibG9jYWxfc2hpcHBpbmdcIjtcclxuICAgICAgY2FzZSBcIkRFTElWRVJFRFwiOlxyXG4gICAgICAgIHJldHVybiBcImluYm94XCI7XHJcbiAgICAgIGNhc2UgXCJDQU5DRUxMRURcIjpcclxuICAgICAgICByZXR1cm4gXCJjYW5jZWxcIjtcclxuICAgIH1cclxuICB9XHJcbiAgZ29CYWNrKCkge1xyXG4gICAgdGhpcy5nb0JhY2tFbWl0dGVyLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIGdldCBnZXRDYXJkQkdDb2xvcigpIHtcclxuICAgIHJldHVybiB0aGlzLmdldENvbXBsZW1lbnRDb2xvcih0aGlzLnN0eWxlcz8uYmFja2dyb3VuZC5jb2xvciA/PyBcIiMwMDAwMFwiKTtcclxuICB9XHJcbiAgZ2V0IGlzTW9iaWxlKCkge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoIDw9IDQ3NTtcclxuICB9XHJcbiAgZ2V0U3VwcG9ydGluZ0NvbG9yKGJnQ29sb3I6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRDb21wbGVtZW50Q29sb3IoYmdDb2xvcik7XHJcbiAgfVxyXG4gIHByaXZhdGUgZ2V0Q29tcGxlbWVudENvbG9yKGhleENvbG9yOiBzdHJpbmcpIHtcclxuXHJcbiAgICBpZiAoaGV4Q29sb3IubGVuZ3RoIDw9IDQpXHJcbiAgICAgIGhleENvbG9yID0gdGhpcy5jb252ZXJ0SEVYKGhleENvbG9yKTtcclxuXHJcbiAgICBoZXhDb2xvciA9IGhleENvbG9yLnJlcGxhY2UoL14jLywgJycpO1xyXG5cclxuICAgIGxldCByID0gcGFyc2VJbnQoaGV4Q29sb3Iuc3Vic3RyaW5nKDAsIDIpLCAxNik7XHJcbiAgICBsZXQgZyA9IHBhcnNlSW50KGhleENvbG9yLnN1YnN0cmluZygyLCA0KSwgMTYpO1xyXG4gICAgbGV0IGIgPSBwYXJzZUludChoZXhDb2xvci5zdWJzdHJpbmcoNCwgNiksIDE2KTtcclxuXHJcbiAgICByID0gMjU1IC0gcjtcclxuICAgIGcgPSAyNTUgLSBnO1xyXG4gICAgYiA9IDI1NSAtIGI7XHJcblxyXG4gICAgbGV0IGNvbXBIZXggPSBgIyR7ci50b1N0cmluZygxNikucGFkU3RhcnQoMiwgJzAnKX0ke2cudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsICcwJyl9JHtiLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCAnMCcpfWA7XHJcblxyXG4gICAgcmV0dXJuIGNvbXBIZXgudG9VcHBlckNhc2UoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBjb252ZXJ0SEVYKGhleENvbG9yOiBzdHJpbmcpIHtcclxuICAgIGhleENvbG9yID0gaGV4Q29sb3IucmVwbGFjZSgvXiMvLCAnJyk7XHJcbiAgICBsZXQgY29sb3IgPSBcIiNcIjtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMzsgaSsrKVxyXG4gICAgICBjb2xvciArPSAoaGV4Q29sb3JbaV0gKyBoZXhDb2xvcltpICsgMV0pO1xyXG4gICAgcmV0dXJuIGNvbG9yO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGN1cnJlbmN5KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gQlVTSU5FU1NfQ09OU1RBTlRTLkNVUlJFTkNZO1xyXG4gIH1cclxuICBnZXQgY2FuQ2FuY2VsT3JkZXIoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5vcmRlclRpbWlsaW5lPy5sZW5ndGggPT0gMTtcclxuICB9XHJcbiAgZ2V0IG9yZGVyQWRkcmVzcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMub3JkZXJEZXRhaWxEYXRhPy5hZGRyZXNzRGV0YWlscz8uYWRkcmVzc0xpbmUxICsgJywgJyArIHRoaXMub3JkZXJEZXRhaWxEYXRhPy5hZGRyZXNzRGV0YWlscz8uYWRkcmVzc0xpbmUyICsgJywgJyArIHRoaXMub3JkZXJEZXRhaWxEYXRhPy5hZGRyZXNzRGV0YWlscz8ubG9jYWxpdHlOYW1lICsgJywgJyArIHRoaXMub3JkZXJEZXRhaWxEYXRhPy5hZGRyZXNzRGV0YWlscz8uY2l0eU5hbWUgKyAnLCAnICsgdGhpcy5vcmRlckRldGFpbERhdGE/LmFkZHJlc3NEZXRhaWxzPy5zdGF0ZU5hbWU7XHJcbiAgfVxyXG5cclxuICB0cmFja09yZGVyKCkge1xyXG4gICAgd2luZG93Lm9wZW4odGhpcy5vcmRlckRldGFpbERhdGE/Lm9yZGVyVHJhY2tpbmdMaW5rLCAnX2JsYW5rJyk7XHJcbiAgfVxyXG4gIHByb2R1Y3RSZXZpZXc6IG51bWJlciA9IDBcclxuICBzdWJtaXRSZXZpZXcoaXRlbTogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZyhpdGVtKTtcclxuICAgIGxldCBwYXlsb2FkID0ge1xyXG4gICAgICB1c2VySWQ6IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VXNlcigpPy51c2VySWQsXHJcbiAgICAgIGJ1c2luZXNzSWQ6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdidXNpbmVzc0lkJykgPz8gXCJcIixcclxuICAgICAgcHJvZHVjdElkOiBpdGVtLml0ZW1JZCxcclxuICAgICAgcmF0aW5nOiBpdGVtLnJhdGluZyxcclxuICAgICAgcmV2aWV3OiBpdGVtLnJldmlldyxcclxuICAgICAgdXNlck5hbWUgOiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXIoKT8uY29udGFjdC5uYW1lXHJcbiAgICB9XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmFkZFJldmlld1RvUHJvZHVjdChwYXlsb2FkKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnc3VjY2VzcycsIHN1bW1hcnk6ICdSZXZpZXcnLCBkZXRhaWw6ICdSZXZpZXcgQWRkZWQgU3VjY2Vzc2Z1bGx5JyB9KTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6ICdSZXZpZXcnLCBkZXRhaWw6ICdBZGRpbmcgUmV2aWV3IENhdXNlZCBlcnJvcicgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNMb2FkaW5nXCI+XHJcbiAgICA8c2VjdGlvbiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtYWluLXNlY3Rpb25cIiBbc3R5bGUud2lkdGgudnddPVwiaXNNb2JpbGUgPyAnMTAwJyA6ICc2NSdcIlxyXG4gICAgICAgIHN0eWxlPVwibWFyZ2luOiBhdXRvO1wiIFthdHRyLnN0eWxlXT1cImN1c3RvbUNsYXNzXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbc3R5bGUud2lkdGguJV09XCJpc01vYmlsZSA/ICc5MCcgOiAnNzAnXCI+XHJcbiAgICAgICAgICAgIDxoMSBjbGFzcz1cImZzLTMgZnctbm9ybWFsIG1iLTMgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBvbmx5RGVza3RvcCBwb3NpdGlvbi1yZWxhdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cImxlZnQ6IC0zNXB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyO1wiIChjbGljayk9XCJnb0JhY2soKVwiPmtleWJvYXJkX2Fycm93X2xlZnQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+T3JkZXIgRGV0YWlsczwvc3Bhbj5cclxuICAgICAgICAgICAgPC9oMT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1lbmQgb3JkZXJOdW1cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZzLTVcIj5PcmRlciB7eyBvcmRlckRldGFpbERhdGE/Lm9yZGVyTnVtIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnMtNlwiPnt7IG9yZGVyRGV0YWlsRGF0YT8uY3JlYXRlZFRpbWVTdGFtcCB8IGRhdGU6ICdtZWRpdW0nIH19LCB7e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmRlckRldGFpbERhdGE/LmJyYW5kT3JkZXJEZXRhaWxzPy5bMF0/Lm9yZGVyZWRJdGVtcy5sZW5ndGggfX0gaXRlbXMgfCA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJjdXJyZW5jeVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tvcmRlckRldGFpbERhdGE/LmJyYW5kT3JkZXJEZXRhaWxzPy5bMF0/LmJpbGxEZXRhaWxzPy50b3RhbEdyb3NzVmFsdWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1ib2xkIGZzLTVcIj57e29yZGVyRGV0YWlsRGF0YT8uYnJhbmRPcmRlckRldGFpbHM/LlswXT8uYnVzaW5lc3NOYW1lIHwgdGl0bGVjYXNlfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTW9iaWxlXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGltZWxpbmVDb250YWluZXJcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIG9yZGVyRGV0YWlsRGF0YT8uYnJhbmRPcmRlckRldGFpbHNbMF0/Lm9yZGVyZWRJdGVtc1wiIGNsYXNzPVwiZC1mbGV4IG1iLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiZ2FwOiAxMHB4OyB3aWR0aDogMTAwJTtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgb25lcnJvcj1cInRoaXMuc3JjPSdodHRwczovL2kucG9zdGltZy5jYy9oUFMySnBWMC9uby1pbWFnZS1hdmFpbGFibGUuanBnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiaXRlbS5pbWdVcmxcIiBhbHQ9XCJcIiBzdHlsZT1cImhlaWdodDogODVweDt3aWR0aDogODVweDsgYm9yZGVyLXJhZGl1czogNXB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlclwiIHN0eWxlPVwiZ2FwOiA2cHg7IHdpZHRoOiA4OSU7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnMtNlwiPnt7aXRlbS5pdGVtTmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwiZnMtNlwiPlNpemU6IFhTPC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBmcy02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e2l0ZW0ucXVhbnRpdHl9fSBYIDxzcGFuIFtpbm5lckhUTUxdPVwiY3VycmVuY3lcIj48L3NwYW4+IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnctYm9sZFwiPnt7KGl0ZW0uZGlzY291bnRlZFByaWNlKSB8IG51bWJlcjogJzEuMC0yJ319PC9zcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiA8c3BhbiBbaW5uZXJIVE1MXT1cImN1cnJlbmN5XCI+PC9zcGFuPiA8c3BhbiBjbGFzcz1cImZ3LWJvbGRcIj57eyhpdGVtLmRpc2NvdW50ZWRQcmljZSAqXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ucXVhbnRpdHkpIHwgbnVtYmVyOiAnMS4wLTInfX08L3NwYW4+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJldmlldy1yYXRpbmcgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy03NVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLXJhdGluZyBbKG5nTW9kZWwpXT1cIml0ZW0ucmF0aW5nXCIgW2NhbmNlbF09XCJmYWxzZVwiIFtyZWFkb25seV09XCJmYWxzZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2Ugdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImYtMTNcIj5BZGQgYSBEZXRhaWxlZCBSZXZpZXc8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIGNsYXNzPVwidy0xMDAgYnItNiBmLTEzXCIgWyhuZ01vZGVsKV09XCJpdGVtLnJldmlld1wiPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwic3VibWl0UmV2aWV3KGl0ZW0pXCIgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtZW5kIGYtMTYgZnctODAwXCI+U3VibWl0PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc01vYmlsZVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRpbWVsaW5lQ29udGFpbmVyXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnMtNiBtdC0yNVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBteS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1ub3JtYWxcIj5JdGVtIFRvdGFsPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctYm9sZFwiPjxzcGFuIFtpbm5lckhUTUxdPVwiY3VycmVuY3lcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7b3JkZXJEZXRhaWxEYXRhPy5iaWxsRGV0YWlscz8udG90YWxOZXRWYWx1ZSB8IG51bWJlcjonMS4wLTInfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXktMlwiICpuZ0lmPVwib3JkZXJEZXRhaWxEYXRhPy5iaWxsRGV0YWlscz8uZGlzY291bnRBbW91bnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LW5vcm1hbFwiPkRpc2NvdW50PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctYm9sZFwiPjxzcGFuIFtpbm5lckhUTUxdPVwiY3VycmVuY3lcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7b3JkZXJEZXRhaWxEYXRhPy5iaWxsRGV0YWlscz8uZGlzY291bnRBbW91bnQgfCBudW1iZXI6JzEuMC0yJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG15LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LW5vcm1hbFwiPlRvdGFsIFRheDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LWJvbGRcIj48c3BhbiBbaW5uZXJIVE1MXT1cImN1cnJlbmN5XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e29yZGVyRGV0YWlsRGF0YT8uYmlsbERldGFpbHM/LmRpc2NvdW50QW1vdW50ID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXJEZXRhaWxEYXRhPy5iaWxsRGV0YWlscz8udG90YWxUYXhBZnRlckRpc2NvdW50IDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXJEZXRhaWxEYXRhPy5iaWxsRGV0YWlscz8udG90YWxUYXggfCBudW1iZXI6JzEuMC0yJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBteS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+RGVsaXZlcnk8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+RlJFRTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctbm9ybWFsXCI+R3JhbmQgVG90YWw8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1ib2xkXCI+PHNwYW4gW2lubmVySFRNTF09XCJjdXJyZW5jeVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tvcmRlckRldGFpbERhdGE/LmJpbGxEZXRhaWxzPy5kaXNjb3VudEFtb3VudCA/IChvcmRlckRldGFpbERhdGE/LmJpbGxEZXRhaWxzPy50b3RhbE5ldFZhbHVlIC1cclxuICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXJEZXRhaWxEYXRhPy5iaWxsRGV0YWlscz8uZGlzY291bnRBbW91bnQgK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmRlckRldGFpbERhdGE/LmJpbGxEZXRhaWxzPy50b3RhbFRheEFmdGVyRGlzY291bnQpIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXJEZXRhaWxEYXRhPy5iaWxsRGV0YWlscz8udG90YWxHcm9zc1ZhbHVlIHwgbnVtYmVyOicxLjAtMid9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiXCIgc3R5bGU9XCJ3aWR0aDogMjglO1wiIFtzdHlsZS53aWR0aC4lXT1cImlzTW9iaWxlID8gJzkwJyA6ICcyOCdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8aDEgY2xhc3M9XCJtYi0zIGZzLTVcIj5Vc2VyIERldGFpbHM8L2gxPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTIgZnMtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxMHB4O1wiPk5hbWU6PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctYm9sZCBwbC0yXCI+e3tvcmRlckRldGFpbERhdGE/LmFkZHJlc3NEZXRhaWxzPy5yZWNlaXZlck5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTIgZnMtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxMHB4XCI+UGhvbmU6PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctYm9sZCBwbC0yXCI+e3sgb3JkZXJEZXRhaWxEYXRhPy5hZGRyZXNzRGV0YWlscz8ucmVjZWl2ZXJQaG9uZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTIgZnMtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxMHB4XCI+QWRkcmVzczo8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1ib2xkIHBsLTJcIj57eyBvcmRlckFkZHJlc3MgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS0yIGZzLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cIm1hcmdpbi1yaWdodDogMTBweFwiPlBheW1lbnQ6PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctYm9sZCBwbC0yXCI+TWFudWFsIFBheW1lbnQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxhIChjbGljayk9XCJ0cmFja09yZGVyKClcIiBjbGFzcz1cInRyYWNrLW9yZGVyXCIgKm5nSWY9XCJvcmRlckRldGFpbERhdGE/Lm9yZGVyVHJhY2tpbmdMaW5rXCI+VHJhY2sgT3JkZXJcclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPG5nLXRlbXBsYXRlICN0aW1lbGluZUNvbnRhaW5lcj5cclxuICAgIDxociAvPlxyXG4gICAgPGRpdiBjbGFzcz1cInRpbWVsaW5lXCI+XHJcbiAgICAgICAgPHAtdGltZWxpbmUgW3ZhbHVlXT1cIm9yZGVyVGltaWxpbmVcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNvbnRlbnRcIiBsZXQtZXZlbnQ+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IHRpbWUtbGluZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBzdHlsZT1cIm1hcmdpbi1yaWdodDogMTBweDtcIj57eyBldmVudC5pY29uIH19PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIG1sLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1ub3JtYWwgZnMtNlwiPnt7IGV2ZW50Lm5hbWU/LnJlcGxhY2VBbGwoXCJfXCIsIFwiIFwiKSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZzLTYgXCI+e3tldmVudC5kZXNjPy5yZXBsYWNlQWxsKFwiX1wiLCBcIiBcIil9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJhY3Rpb24tYnRuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiY2FuQ2FuY2VsT3JkZXJcIj5DYW5jZWwgT3JkZXI8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9wLXRpbWVsaW5lPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8aHIgLz5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZ3gtc2tlbGV0b24tbG9hZGVyICpuZ0lmPVwiaXNMb2FkaW5nXCIgY291bnQ9XCIxXCIgYXBwZWFyYW5jZT1cImNpcmNsZVwiIFt0aGVtZV09XCJ7XHJcbiAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgaGVpZ2h0OiAnNDB2aCcsXHJcbiAgICAnYm9yZGVyLXJhZGl1cyc6ICcxMHB4JyxcclxuICAgICdwb3NpdGlvbic6ICdyZWxhdGl2ZScsXHJcbiAgICAncmlnaHQnOiAnNXB4J1xyXG4gIH1cIj5cclxuPC9uZ3gtc2tlbGV0b24tbG9hZGVyPiJdfQ==
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItZGV0YWlscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2Vjb21tZXJjZS9zZWN0aW9ucy9vcmRlci1kZXRhaWxzL29yZGVyLWRldGFpbHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvb3JkZXItZGV0YWlscy9vcmRlci1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7OztBQW9CN0MsTUFBTSxPQUFPLHFCQUFxQjtJQVloQyxZQUNtQixhQUE0QixFQUNyQyxjQUFxQyxFQUNyQyxXQUF3QixFQUN4QixjQUE4QjtRQUhyQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUNyQyxtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFDckMsZ0JBQVcsR0FBWCxXQUFX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RyxDQUFDLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSw0QkFBNEIsRUFBRSxDQUFDLENBQUM7WUFDMUcsQ0FBQztTQUNGLENBQUMsQ0FBQTtJQUNKLENBQUM7K0dBNUhVLHFCQUFxQjttR0FBckIscUJBQXFCLG9TQzlCbEMsaXNRQThJc0IsNHRDRDNIbEIsWUFBWSw4a0JBQ1osb0JBQW9CLDhNQUNwQixjQUFjLHFRQUNkLE9BQU8sMElBQ1AsV0FBVyw4QkFDWCxZQUFZLHdUQUNaLFdBQVc7OzRGQUtGLHFCQUFxQjtrQkFmakMsU0FBUzsrQkFDRSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osb0JBQW9CO3dCQUNwQixjQUFjO3dCQUNkLE9BQU87d0JBQ1AsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLFdBQVc7cUJBQ1o7NktBS1EsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDb0IsZUFBZTtzQkFBeEMsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBQ2QsYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBTaW1wb0NvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvaW5kZXgnO1xuaW1wb3J0IHsgVGltZWxpbmVNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RpbWVsaW5lJztcbmltcG9ydCB7IEV2ZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9ldmVudHMuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9maWxlU3R5bGVzTW9kYWwgfSBmcm9tICcuLi91c2VyLXByb2ZpbGUvdXNlci1wcm9maWxlLm1vZGFsJztcbmltcG9ydCB7IEJVU0lORVNTX0NPTlNUQU5UUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9idXNpbmVzcy5jb25zdGFudCc7XG5pbXBvcnQgeyBQYW5lbE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvcGFuZWwnO1xuaW1wb3J0IHsgUmF0aW5nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9yYXRpbmcnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpbXBvLW9yZGVyLWRldGFpbHMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFNpbXBvQ29tcG9uZW50TW9kdWxlLFxuICAgIFRpbWVsaW5lTW9kdWxlLFxuICAgIE1hdEljb24sXG4gICAgUGFuZWxNb2R1bGUsXG4gICAgUmF0aW5nTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9vcmRlci1kZXRhaWxzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL29yZGVyLWRldGFpbHMuY29tcG9uZW50LmNzcydcbn0pXG5leHBvcnQgY2xhc3MgT3JkZXJEZXRhaWxzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcmVzcG9uc2VEYXRhPzogYW55O1xuICBASW5wdXQoKSBkYXRhPzogYW55O1xuICBASW5wdXQoKSBpbmRleD86IG51bWJlcjtcbiAgQElucHV0KCkgZWRpdD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRlbGV0ZT86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGN1c3RvbUNsYXNzPzogc3RyaW5nO1xuICBASW5wdXQoXCJvcmRlckRldGFpbERhdGFcIikgb3JkZXJEZXRhaWxEYXRhOiBhbnk7XG4gIEBPdXRwdXQoKSBnb0JhY2tFbWl0dGVyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBzdHlsZXM/OiBQcm9maWxlU3R5bGVzTW9kYWw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZXZlbnRTZXJ2aWNlOiBFdmVudHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSxcbiAgICBwcml2YXRlIHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSxcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZVxuICApIHsgfVxuXG4gIHB1YmxpYyBvcmRlclRpbWlsaW5lOiBhbnkgPSBbXTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0eWxlcyA9IHRoaXMuZGF0YT8uc3R5bGVzO1xuICAgIHRoaXMub3JkZXJUaW1pbGluZSA9IHRoaXMub3JkZXJEZXRhaWxEYXRhPy5icmFuZE9yZGVyRGV0YWlscz8uWzBdPy50aW1lTGluZUxpc3Q/Lm1hcCgodGltZWxpbmU6IGFueSkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWNvbjogdGhpcy5nZXRJY29uKHRpbWVsaW5lLm9yZGVyU3RhdHVzKSxcbiAgICAgICAgbmFtZTogdGltZWxpbmUudGl0bGUsXG4gICAgICAgIGRlc2M6IHRpbWVsaW5lLmJvZHlcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLnNob3dMb2FkaW5nU2NyZWVuLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gcmVzcG9uc2U7XG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SWNvbih0eXBlOiBcIk9SREVSX1BMQUNFRFwiIHwgXCJPUkRFUl9DT05GSVJNRURcIiB8IFwiRElTUEFUQ0hFRFwiIHwgXCJJTl9UUkFOU0lUXCIgfCBcIk9VVF9GT1JfREVMSVZFUllcIiB8IFwiREVMSVZFUkVEXCIgfCBcIkNBTkNFTExFRFwiKSB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIFwiT1JERVJfUExBQ0VEXCI6XG4gICAgICBjYXNlIFwiT1JERVJfQ09ORklSTUVEXCI6XG4gICAgICAgIHJldHVybiBcIndpZGdldHNcIjtcbiAgICAgIGNhc2UgXCJESVNQQVRDSEVEXCI6XG4gICAgICBjYXNlIFwiSU5fVFJBTlNJVFwiOlxuICAgICAgY2FzZSBcIk9VVF9GT1JfREVMSVZFUllcIjpcbiAgICAgICAgcmV0dXJuIFwibG9jYWxfc2hpcHBpbmdcIjtcbiAgICAgIGNhc2UgXCJERUxJVkVSRURcIjpcbiAgICAgICAgcmV0dXJuIFwiaW5ib3hcIjtcbiAgICAgIGNhc2UgXCJDQU5DRUxMRURcIjpcbiAgICAgICAgcmV0dXJuIFwiY2FuY2VsXCI7XG4gICAgfVxuICB9XG4gIGdvQmFjaygpIHtcbiAgICB0aGlzLmdvQmFja0VtaXR0ZXIuZW1pdCgpO1xuICB9XG5cbiAgZ2V0IGdldENhcmRCR0NvbG9yKCkge1xuICAgIHJldHVybiB0aGlzLmdldENvbXBsZW1lbnRDb2xvcih0aGlzLnN0eWxlcz8uYmFja2dyb3VuZC5jb2xvciA/PyBcIiMwMDAwMFwiKTtcbiAgfVxuICBnZXQgaXNNb2JpbGUoKSB7XG4gICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoIDw9IDQ3NTtcbiAgfVxuICBnZXRTdXBwb3J0aW5nQ29sb3IoYmdDb2xvcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRDb21wbGVtZW50Q29sb3IoYmdDb2xvcik7XG4gIH1cbiAgcHJpdmF0ZSBnZXRDb21wbGVtZW50Q29sb3IoaGV4Q29sb3I6IHN0cmluZykge1xuXG4gICAgaWYgKGhleENvbG9yLmxlbmd0aCA8PSA0KVxuICAgICAgaGV4Q29sb3IgPSB0aGlzLmNvbnZlcnRIRVgoaGV4Q29sb3IpO1xuXG4gICAgaGV4Q29sb3IgPSBoZXhDb2xvci5yZXBsYWNlKC9eIy8sICcnKTtcblxuICAgIGxldCByID0gcGFyc2VJbnQoaGV4Q29sb3Iuc3Vic3RyaW5nKDAsIDIpLCAxNik7XG4gICAgbGV0IGcgPSBwYXJzZUludChoZXhDb2xvci5zdWJzdHJpbmcoMiwgNCksIDE2KTtcbiAgICBsZXQgYiA9IHBhcnNlSW50KGhleENvbG9yLnN1YnN0cmluZyg0LCA2KSwgMTYpO1xuXG4gICAgciA9IDI1NSAtIHI7XG4gICAgZyA9IDI1NSAtIGc7XG4gICAgYiA9IDI1NSAtIGI7XG5cbiAgICBsZXQgY29tcEhleCA9IGAjJHtyLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCAnMCcpfSR7Zy50b1N0cmluZygxNikucGFkU3RhcnQoMiwgJzAnKX0ke2IudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsICcwJyl9YDtcblxuICAgIHJldHVybiBjb21wSGV4LnRvVXBwZXJDYXNlKCk7XG4gIH1cbiAgcHJpdmF0ZSBjb252ZXJ0SEVYKGhleENvbG9yOiBzdHJpbmcpIHtcbiAgICBoZXhDb2xvciA9IGhleENvbG9yLnJlcGxhY2UoL14jLywgJycpO1xuICAgIGxldCBjb2xvciA9IFwiI1wiO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMzsgaSsrKVxuICAgICAgY29sb3IgKz0gKGhleENvbG9yW2ldICsgaGV4Q29sb3JbaSArIDFdKTtcbiAgICByZXR1cm4gY29sb3I7XG4gIH1cblxuICBnZXQgY3VycmVuY3koKTogc3RyaW5nIHtcbiAgICByZXR1cm4gQlVTSU5FU1NfQ09OU1RBTlRTLkNVUlJFTkNZO1xuICB9XG4gIGdldCBjYW5DYW5jZWxPcmRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5vcmRlclRpbWlsaW5lPy5sZW5ndGggPT0gMTtcbiAgfVxuICBnZXQgb3JkZXJBZGRyZXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMub3JkZXJEZXRhaWxEYXRhPy5hZGRyZXNzRGV0YWlscz8uYWRkcmVzc0xpbmUxICsgJywgJyArIHRoaXMub3JkZXJEZXRhaWxEYXRhPy5hZGRyZXNzRGV0YWlscz8uYWRkcmVzc0xpbmUyICsgJywgJyArIHRoaXMub3JkZXJEZXRhaWxEYXRhPy5hZGRyZXNzRGV0YWlscz8ubG9jYWxpdHlOYW1lICsgJywgJyArIHRoaXMub3JkZXJEZXRhaWxEYXRhPy5hZGRyZXNzRGV0YWlscz8uY2l0eU5hbWUgKyAnLCAnICsgdGhpcy5vcmRlckRldGFpbERhdGE/LmFkZHJlc3NEZXRhaWxzPy5zdGF0ZU5hbWU7XG4gIH1cblxuICB0cmFja09yZGVyKCkge1xuICAgIHdpbmRvdy5vcGVuKHRoaXMub3JkZXJEZXRhaWxEYXRhPy5vcmRlclRyYWNraW5nTGluaywgJ19ibGFuaycpO1xuICB9XG4gIHByb2R1Y3RSZXZpZXc6IG51bWJlciA9IDBcbiAgc3VibWl0UmV2aWV3KGl0ZW06IGFueSkge1xuICAgIGNvbnNvbGUubG9nKGl0ZW0pO1xuICAgIGxldCBwYXlsb2FkID0ge1xuICAgICAgdXNlcklkOiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXIoKT8udXNlcklkID8/IFwiXCIsXG4gICAgICBidXNpbmVzc0lkOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYnVzaW5lc3NJZCcpID8/IFwiXCIsXG4gICAgICBwcm9kdWN0SWQ6IGl0ZW0uaXRlbUlkLFxuICAgICAgcmF0aW5nOiBpdGVtLnJhdGluZyxcbiAgICAgIHJldmlldzogaXRlbS5yZXZpZXcsXG4gICAgICBvcmRlcklkIDogdGhpcy5vcmRlckRldGFpbERhdGE/LnVzZXJPcmRlcklkID8/IFwiXCIsXG4gICAgICB1c2VyTmFtZSA6IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VXNlcigpPy5jb250YWN0Lm5hbWVcbiAgICB9XG4gICAgdGhpcy5yZXN0U2VydmljZS5hZGRSZXZpZXdUb1Byb2R1Y3QocGF5bG9hZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnc3VjY2VzcycsIHN1bW1hcnk6ICdSZXZpZXcnLCBkZXRhaWw6ICdSZXZpZXcgQWRkZWQgU3VjY2Vzc2Z1bGx5JyB9KTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6ICdSZXZpZXcnLCBkZXRhaWw6ICdBZGRpbmcgUmV2aWV3IENhdXNlZCBlcnJvcicgfSk7XG4gICAgICB9XG4gICAgfSlcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0xvYWRpbmdcIj5cbiAgICA8c2VjdGlvbiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtYWluLXNlY3Rpb25cIiBbc3R5bGUud2lkdGgudnddPVwiaXNNb2JpbGUgPyAnMTAwJyA6ICc2NSdcIlxuICAgICAgICBzdHlsZT1cIm1hcmdpbjogYXV0bztcIiBbYXR0ci5zdHlsZV09XCJjdXN0b21DbGFzc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtzdHlsZS53aWR0aC4lXT1cImlzTW9iaWxlID8gJzkwJyA6ICc3MCdcIj5cbiAgICAgICAgICAgIDxoMSBjbGFzcz1cImZzLTMgZnctbm9ybWFsIG1iLTMgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBvbmx5RGVza3RvcCBwb3NpdGlvbi1yZWxhdGl2ZVwiXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJsZWZ0OiAtMzVweDtcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7XCIgKGNsaWNrKT1cImdvQmFjaygpXCI+a2V5Ym9hcmRfYXJyb3dfbGVmdDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPHNwYW4+T3JkZXIgRGV0YWlsczwvc3Bhbj5cbiAgICAgICAgICAgIDwvaDE+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWVuZCBvcmRlck51bVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW5cIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmcy01XCI+T3JkZXIge3sgb3JkZXJEZXRhaWxEYXRhPy5vcmRlck51bSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmcy02XCI+e3sgb3JkZXJEZXRhaWxEYXRhPy5jcmVhdGVkVGltZVN0YW1wIHwgZGF0ZTogJ21lZGl1bScgfX0sIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcmRlckRldGFpbERhdGE/LmJyYW5kT3JkZXJEZXRhaWxzPy5bMF0/Lm9yZGVyZWRJdGVtcy5sZW5ndGggfX0gaXRlbXMgfCA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiY3VycmVuY3lcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e29yZGVyRGV0YWlsRGF0YT8uYnJhbmRPcmRlckRldGFpbHM/LlswXT8uYmlsbERldGFpbHM/LnRvdGFsR3Jvc3NWYWx1ZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctYm9sZCBmcy01XCI+e3tvcmRlckRldGFpbERhdGE/LmJyYW5kT3JkZXJEZXRhaWxzPy5bMF0/LmJ1c2luZXNzTmFtZSB8IHRpdGxlY2FzZX19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTW9iaWxlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRpbWVsaW5lQ29udGFpbmVyXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBvcmRlckRldGFpbERhdGE/LmJyYW5kT3JkZXJEZXRhaWxzWzBdPy5vcmRlcmVkSXRlbXNcIiBjbGFzcz1cImQtZmxleCBtYi0yXCJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJnYXA6IDEwcHg7IHdpZHRoOiAxMDAlO1wiPlxuICAgICAgICAgICAgICAgICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgb25lcnJvcj1cInRoaXMuc3JjPSdodHRwczovL2kucG9zdGltZy5jYy9oUFMySnBWMC9uby1pbWFnZS1hdmFpbGFibGUuanBnJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIml0ZW0uaW1nVXJsXCIgYWx0PVwiXCIgc3R5bGU9XCJoZWlnaHQ6IDg1cHg7d2lkdGg6IDg1cHg7IGJvcmRlci1yYWRpdXM6IDVweDtcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCIgc3R5bGU9XCJnYXA6IDZweDsgd2lkdGg6IDg5JTtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnMtNlwiPnt7aXRlbS5pdGVtTmFtZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cImZzLTZcIj5TaXplOiBYUzwvc3Bhbj4gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGZzLTZcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e2l0ZW0ucXVhbnRpdHl9fSBYIDxzcGFuIFtpbm5lckhUTUxdPVwiY3VycmVuY3lcIj48L3NwYW4+IDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ3LWJvbGRcIj57eyhpdGVtLmRpc2NvdW50ZWRQcmljZSkgfCBudW1iZXI6ICcxLjAtMid9fTwvc3Bhbj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+IDxzcGFuIFtpbm5lckhUTUxdPVwiY3VycmVuY3lcIj48L3NwYW4+IDxzcGFuIGNsYXNzPVwiZnctYm9sZFwiPnt7KGl0ZW0uZGlzY291bnRlZFByaWNlICpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ucXVhbnRpdHkpIHwgbnVtYmVyOiAnMS4wLTInfX08L3NwYW4+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmV2aWV3LXJhdGluZyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gZmxleC1jb2x1bW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy03NVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1yYXRpbmcgWyhuZ01vZGVsKV09XCJpdGVtLnJhdGluZ1wiIFtjYW5jZWxdPVwiZmFsc2VcIiBbcmVhZG9ubHldPVwiZmFsc2VcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVzc2FnZSB3LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImYtMTNcIj5BZGQgYSBEZXRhaWxlZCBSZXZpZXc8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBjbGFzcz1cInctMTAwIGJyLTYgZi0xM1wiIFsobmdNb2RlbCldPVwiaXRlbS5yZXZpZXdcIj48L3RleHRhcmVhPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWVuZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJzdWJtaXRSZXZpZXcoaXRlbSlcIiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1lbmQgZi0xNiBmdy04MDBcIj5TdWJtaXQ8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTW9iaWxlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRpbWVsaW5lQ29udGFpbmVyXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmcy02IG10LTI1XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBteS0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctbm9ybWFsXCI+SXRlbSBUb3RhbDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1ib2xkXCI+PHNwYW4gW2lubmVySFRNTF09XCJjdXJyZW5jeVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7b3JkZXJEZXRhaWxEYXRhPy5iaWxsRGV0YWlscz8udG90YWxOZXRWYWx1ZSB8IG51bWJlcjonMS4wLTInfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBteS0yXCIgKm5nSWY9XCJvcmRlckRldGFpbERhdGE/LmJpbGxEZXRhaWxzPy5kaXNjb3VudEFtb3VudFwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LW5vcm1hbFwiPkRpc2NvdW50PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LWJvbGRcIj48c3BhbiBbaW5uZXJIVE1MXT1cImN1cnJlbmN5XCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tvcmRlckRldGFpbERhdGE/LmJpbGxEZXRhaWxzPy5kaXNjb3VudEFtb3VudCB8IG51bWJlcjonMS4wLTInfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBteS0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctbm9ybWFsXCI+VG90YWwgVGF4PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LWJvbGRcIj48c3BhbiBbaW5uZXJIVE1MXT1cImN1cnJlbmN5XCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tvcmRlckRldGFpbERhdGE/LmJpbGxEZXRhaWxzPy5kaXNjb3VudEFtb3VudCA/XG4gICAgICAgICAgICAgICAgICAgICAgICBvcmRlckRldGFpbERhdGE/LmJpbGxEZXRhaWxzPy50b3RhbFRheEFmdGVyRGlzY291bnQgOlxuICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXJEZXRhaWxEYXRhPy5iaWxsRGV0YWlscz8udG90YWxUYXggfCBudW1iZXI6JzEuMC0yJ319PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBteS0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPkRlbGl2ZXJ5PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj5GUkVFPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBteS0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctbm9ybWFsXCI+R3JhbmQgVG90YWw8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctYm9sZFwiPjxzcGFuIFtpbm5lckhUTUxdPVwiY3VycmVuY3lcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e29yZGVyRGV0YWlsRGF0YT8uYmlsbERldGFpbHM/LmRpc2NvdW50QW1vdW50ID8gKG9yZGVyRGV0YWlsRGF0YT8uYmlsbERldGFpbHM/LnRvdGFsTmV0VmFsdWUgLVxuICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXJEZXRhaWxEYXRhPy5iaWxsRGV0YWlscz8uZGlzY291bnRBbW91bnQgK1xuICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXJEZXRhaWxEYXRhPy5iaWxsRGV0YWlscz8udG90YWxUYXhBZnRlckRpc2NvdW50KSA6XG4gICAgICAgICAgICAgICAgICAgICAgICBvcmRlckRldGFpbERhdGE/LmJpbGxEZXRhaWxzPy50b3RhbEdyb3NzVmFsdWUgfCBudW1iZXI6JzEuMC0yJ319PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiXCIgc3R5bGU9XCJ3aWR0aDogMjglO1wiIFtzdHlsZS53aWR0aC4lXT1cImlzTW9iaWxlID8gJzkwJyA6ICcyOCdcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxuICAgICAgICAgICAgICAgIDxoMSBjbGFzcz1cIm1iLTMgZnMtNVwiPlVzZXIgRGV0YWlsczwvaDE+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTIgZnMtNlwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cIm1hcmdpbi1yaWdodDogMTBweDtcIj5OYW1lOjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1ib2xkIHBsLTJcIj57e29yZGVyRGV0YWlsRGF0YT8uYWRkcmVzc0RldGFpbHM/LnJlY2VpdmVyTmFtZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS0yIGZzLTZcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDEwcHhcIj5QaG9uZTo8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctYm9sZCBwbC0yXCI+e3sgb3JkZXJEZXRhaWxEYXRhPy5hZGRyZXNzRGV0YWlscz8ucmVjZWl2ZXJQaG9uZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktMiBmcy02XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxMHB4XCI+QWRkcmVzczo8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctYm9sZCBwbC0yXCI+e3sgb3JkZXJBZGRyZXNzIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS0yIGZzLTZcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDEwcHhcIj5QYXltZW50Ojwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1ib2xkIHBsLTJcIj5NYW51YWwgUGF5bWVudDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwidHJhY2tPcmRlcigpXCIgY2xhc3M9XCJ0cmFjay1vcmRlclwiICpuZ0lmPVwib3JkZXJEZXRhaWxEYXRhPy5vcmRlclRyYWNraW5nTGlua1wiPlRyYWNrIE9yZGVyXG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvc2VjdGlvbj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI3RpbWVsaW5lQ29udGFpbmVyPlxuICAgIDxociAvPlxuICAgIDxkaXYgY2xhc3M9XCJ0aW1lbGluZVwiPlxuICAgICAgICA8cC10aW1lbGluZSBbdmFsdWVdPVwib3JkZXJUaW1pbGluZVwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNvbnRlbnRcIiBsZXQtZXZlbnQ+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCB0aW1lLWxpbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxMHB4O1wiPnt7IGV2ZW50Lmljb24gfX08L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIG1sLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctbm9ybWFsIGZzLTZcIj57eyBldmVudC5uYW1lPy5yZXBsYWNlQWxsKFwiX1wiLCBcIiBcIikgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnMtNiBcIj57e2V2ZW50LmRlc2M/LnJlcGxhY2VBbGwoXCJfXCIsIFwiIFwiKX19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJhY3Rpb24tYnRuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImNhbkNhbmNlbE9yZGVyXCI+Q2FuY2VsIE9yZGVyPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9wLXRpbWVsaW5lPlxuICAgIDwvZGl2PlxuICAgIDxociAvPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5neC1za2VsZXRvbi1sb2FkZXIgKm5nSWY9XCJpc0xvYWRpbmdcIiBjb3VudD1cIjFcIiBhcHBlYXJhbmNlPVwiY2lyY2xlXCIgW3RoZW1lXT1cIntcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIGhlaWdodDogJzQwdmgnLFxuICAgICdib3JkZXItcmFkaXVzJzogJzEwcHgnLFxuICAgICdwb3NpdGlvbic6ICdyZWxhdGl2ZScsXG4gICAgJ3JpZ2h0JzogJzVweCdcbiAgfVwiPlxuPC9uZ3gtc2tlbGV0b24tbG9hZGVyPiJdfQ==
|
@@ -26,14 +26,14 @@ export class PagninationComponent {
|
|
26
26
|
this.paginationChange.emit(this.currentPage);
|
27
27
|
// this.router.navigate(['/list'], { queryParams: {pageNo: this.currentPage} });
|
28
28
|
}
|
29
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
30
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PagninationComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
30
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PagninationComponent, isStandalone: true, selector: "simpo-pagnination", inputs: { totalPages: "totalPages", currentPage: "currentPage" }, outputs: { paginationChange: "paginationChange" }, ngImport: i0, template: "<section class=\"d-flex w-100 justify-content-center main-section\">\n <div class=\"pagniation-btn\" (click)=\"goToPrev()\" [style.visibility]=\"currentPage == 1 ? 'hidden' : 'visible'\">Prev</div>\n <ng-container *ngFor=\"let _ of [].constructor(totalPages); let idx = index\">\n <span class=\"pagniation-btn\" [ngClass]=\"{'selected-page': (idx +1) == currentPage}\" (click)=\"goToSelection(idx)\">{{idx +1}}</span>\n </ng-container>\n <!-- <div *ngIf=\"totalPages > 6\" class=\"d-flex align-items-center\">\n <span class=\"pagniation-btn fs-2\">...</span>\n <span class=\"pagniation-btn\">{{totalPages}}</span>\n </div> -->\n <div class=\"pagniation-btn\" (click)=\"goToNext()\" [style.visibility]=\"currentPage == totalPages ? 'hidden' : 'visible'\">Next</div>\n</section>\n", styles: [".pagniation-btn{font-size:14px;padding:5px;border-radius:2px;width:45px;height:40px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#000}.selected-page{background-color:#000;color:#fff}@media only screen and (max-width: 475px){.main-section{position:relative;right:22px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
|
31
31
|
}
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PagninationComponent, decorators: [{
|
33
33
|
type: Component,
|
34
34
|
args: [{ selector: 'simpo-pagnination', standalone: true, imports: [
|
35
35
|
CommonModule
|
36
|
-
], template: "<section class=\"d-flex w-100 justify-content-center main-section\">\
|
36
|
+
], template: "<section class=\"d-flex w-100 justify-content-center main-section\">\n <div class=\"pagniation-btn\" (click)=\"goToPrev()\" [style.visibility]=\"currentPage == 1 ? 'hidden' : 'visible'\">Prev</div>\n <ng-container *ngFor=\"let _ of [].constructor(totalPages); let idx = index\">\n <span class=\"pagniation-btn\" [ngClass]=\"{'selected-page': (idx +1) == currentPage}\" (click)=\"goToSelection(idx)\">{{idx +1}}</span>\n </ng-container>\n <!-- <div *ngIf=\"totalPages > 6\" class=\"d-flex align-items-center\">\n <span class=\"pagniation-btn fs-2\">...</span>\n <span class=\"pagniation-btn\">{{totalPages}}</span>\n </div> -->\n <div class=\"pagniation-btn\" (click)=\"goToNext()\" [style.visibility]=\"currentPage == totalPages ? 'hidden' : 'visible'\">Next</div>\n</section>\n", styles: [".pagniation-btn{font-size:14px;padding:5px;border-radius:2px;width:45px;height:40px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#000}.selected-page{background-color:#000;color:#fff}@media only screen and (max-width: 475px){.main-section{position:relative;right:22px}}\n"] }]
|
37
37
|
}], ctorParameters: () => [{ type: i1.Router }], propDecorators: { totalPages: [{
|
38
38
|
type: Input
|
39
39
|
}], currentPage: [{
|
@@ -41,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
|
|
41
41
|
}], paginationChange: [{
|
42
42
|
type: Output
|
43
43
|
}] } });
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnbmluYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvcGFnbmluYXRpb24vcGFnbmluYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvcGFnbmluYXRpb24vcGFnbmluYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFZL0UsTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixZQUNtQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUd4QixlQUFVLEdBQVcsQ0FBQyxDQUFDO1FBQ3ZCLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBQ3ZCLHFCQUFnQixHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3ZFLFVBQUssR0FBRyxDQUFDLENBQUM7SUFMZCxDQUFDO0lBT0osUUFBUTtJQUNSLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hELG1GQUFtRjtJQUNyRixDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRSxDQUFDLENBQUMsQ0FBQztRQUNoRCxtRkFBbUY7SUFDckYsQ0FBQztJQUNELGFBQWEsQ0FBQyxLQUFhO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxHQUFFLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM3QyxnRkFBZ0Y7SUFDbEYsQ0FBQzsrR0ExQlUsb0JBQW9CO21HQUFwQixvQkFBb0Isa01DYmpDLG16QkFXQSxzV0RISSxZQUFZOzs0RkFLSCxvQkFBb0I7a0JBVGhDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUDt3QkFDUCxZQUFZO3FCQUNiOzJFQVVRLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDSSxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2ltcG8tcGFnbmluYXRpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWduaW5hdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wYWduaW5hdGlvbi5jb21wb25lbnQuY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBQYWduaW5hdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlclxuICApIHt9XG5cbiAgQElucHV0KCkgdG90YWxQYWdlczogbnVtYmVyID0gMTtcbiAgQElucHV0KCkgY3VycmVudFBhZ2U6IG51bWJlciA9IDE7XG4gIEBPdXRwdXQoKSBwYWdpbmF0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICBwdWJsaWMgYm91bmQgPSA1O1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgZ29Ub05leHQoKSB7XG4gICAgdGhpcy5wYWdpbmF0aW9uQ2hhbmdlLmVtaXQodGhpcy5jdXJyZW50UGFnZSArMSk7XG4gICAgLy8gdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbGlzdCddLCB7IHF1ZXJ5UGFyYW1zOiB7cGFnZU5vOiB0aGlzLmN1cnJlbnRQYWdlICsxfSB9KTtcbiAgfVxuICBnb1RvUHJldigpIHtcbiAgICB0aGlzLnBhZ2luYXRpb25DaGFuZ2UuZW1pdCh0aGlzLmN1cnJlbnRQYWdlIC0xKTtcbiAgICAvLyB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9saXN0J10sIHsgcXVlcnlQYXJhbXM6IHtwYWdlTm86IHRoaXMuY3VycmVudFBhZ2UgLTF9IH0pO1xuICB9XG4gIGdvVG9TZWxlY3Rpb24oaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuY3VycmVudFBhZ2UgPSBpbmRleCArMTtcbiAgICB0aGlzLnBhZ2luYXRpb25DaGFuZ2UuZW1pdCh0aGlzLmN1cnJlbnRQYWdlKTtcbiAgICAvLyB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9saXN0J10sIHsgcXVlcnlQYXJhbXM6IHtwYWdlTm86IHRoaXMuY3VycmVudFBhZ2V9IH0pO1xuICB9XG59XG4iLCI8c2VjdGlvbiBjbGFzcz1cImQtZmxleCB3LTEwMCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIG1haW4tc2VjdGlvblwiPlxuICAgIDxkaXYgY2xhc3M9XCJwYWduaWF0aW9uLWJ0blwiIChjbGljayk9XCJnb1RvUHJldigpXCIgW3N0eWxlLnZpc2liaWxpdHldPVwiY3VycmVudFBhZ2UgPT0gMSA/ICdoaWRkZW4nIDogJ3Zpc2libGUnXCI+UHJldjwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IF8gb2YgW10uY29uc3RydWN0b3IodG90YWxQYWdlcyk7IGxldCBpZHggPSBpbmRleFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInBhZ25pYXRpb24tYnRuXCIgW25nQ2xhc3NdPVwieydzZWxlY3RlZC1wYWdlJzogKGlkeCArMSkgPT0gY3VycmVudFBhZ2V9XCIgKGNsaWNrKT1cImdvVG9TZWxlY3Rpb24oaWR4KVwiPnt7aWR4ICsxfX08L3NwYW4+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPCEtLSA8ZGl2ICpuZ0lmPVwidG90YWxQYWdlcyA+IDZcIiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwYWduaWF0aW9uLWJ0biBmcy0yXCI+Li4uPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInBhZ25pYXRpb24tYnRuXCI+e3t0b3RhbFBhZ2VzfX08L3NwYW4+XG4gICAgPC9kaXY+IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJwYWduaWF0aW9uLWJ0blwiIChjbGljayk9XCJnb1RvTmV4dCgpXCIgW3N0eWxlLnZpc2liaWxpdHldPVwiY3VycmVudFBhZ2UgPT0gdG90YWxQYWdlcyA/ICdoaWRkZW4nIDogJ3Zpc2libGUnXCI+TmV4dDwvZGl2PlxuPC9zZWN0aW9uPlxuIl19
|