simpo-component-library 3.6.690 → 3.6.692

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.
@@ -63,7 +63,7 @@ export class FeaturedCategoryComponent extends BaseSection {
63
63
  }
64
64
  getAllCategories() {
65
65
  let payload = {
66
- businessId: localStorage.getItem('businessId') || '1f128579- fdc1 - 6eeb-a63c - 891ba35b59f1',
66
+ businessId: localStorage.getItem('businessId') || '1f128579-fdc1-6eeb-a63c-891ba35b59f1',
67
67
  searchText: '',
68
68
  pageNo: 0,
69
69
  pageSize: 1000
@@ -133,7 +133,7 @@ export class FeaturedCategoryComponent extends BaseSection {
133
133
  return this.styles?.layout?.align || '';
134
134
  }
135
135
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FeaturedCategoryComponent, deps: [{ token: PLATFORM_ID }, { token: i1.Router }, { token: i2.RestService }, { token: i3.EventsService }], target: i0.ɵɵFactoryTarget.Component }); }
136
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FeaturedCategoryComponent, isStandalone: true, selector: "simpo-featured-category", inputs: { data: "data", responseData: "responseData", index: "index", edit: "edit", delete: "delete", customClass: "customClass", nextComponentColor: "nextComponentColor" }, viewQueries: [{ propertyName: "categoryParent", first: true, predicate: ["categoryParent1"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!isLoading\">\r\n <section class=\"container-fluid total-container p-0\" [id]=\"data?.id\" simpoHover (hovering)=\"showEditTabs($event)\"\r\n [attr.style]=\"customClass\">\r\n <div [spacingAround]=\"stylesLayout\" [id]=\"data?.id\" [simpoBorder]=\"styles?.border\" class=\"border-radius-unset\">\r\n <div [id]=\"data?.id\" #mainContainer [simpoAnimation]=\"styles?.animation\" [simpoBackground]=\"styles?.background\"\r\n [simpoCorner]=\"styles?.corners\" class=\"d-flex w-100\">\r\n <div class=\"d-flex flex-column w-100\" [simpoOverlay]=\"styles?.background\" [simpoCorner]=\"styles?.corners\"\r\n [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\" [spacingHorizontal]=\"stylesLayout\"\r\n [simpoAnimation]=\"styles?.animation\">\r\n <div *ngFor=\"let item of content?.inputText\" class=\"text-container\">\r\n <!-- <div class = \"content-side\"[innerHTML]=\"item.value | sanitizeHtml\" [ngClass]=\"item.label === 'Heading' ? 'heading-large lh-2 mb-3' : 'body-large'\"> -->\r\n <ng-container *ngIf=\"edit || item.value\">\r\n <div class=\"pt-3 w-100\">\r\n <simpo-text-editor [(value)]=\"item.value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n </div>\r\n </ng-container>\r\n <!-- </div> -->\r\n </div>\r\n <div class=\"category-parent\" [ngClass]=\"{'flex-wrap': getDirection == 'COLUMN'}\"\r\n [simpoContainerAlignment]=\"styles?.layout\" [id]=\"data?.id\"\r\n [style.justifyContent]=\"!isMobile ? getJustifyContent() : ''\" #categoryParent1>\r\n <div\r\n *ngFor=\"let data of responseData | slice:getSliceParameters()[0]:getSliceParameters()[1]; let idx = index\"\r\n (click)=\"redirectToListPage(data)\" class=\"d-flex flex-column align-items-center maxw-170\"\r\n [ngClass]=\"{ 'w-48 d-flex flex-column align-items-center' : isMobile}\">\r\n <img [style.borderRadius.px]=\"(styles?.border?.radius ?? 1) / (isMobile ? 2 : 1)\"\r\n [style.height.px]=\"(styles?.containerHeight ?? 1) / (isMobile ? 2 : 1)\"\r\n [style.width.px]=\"(styles?.containerWidth ?? 1) / (isMobile ? 2 : 1)\" loading=\"lazy\"\r\n onerror=\"this.src='https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\"\r\n [src]=\"data.imgUrl?.[0] ?? 'https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\" alt=\"\"\r\n class=\"category-image\" [ngClass]=\"{'category-new-image' : isMobile && getDirection == 'COLUMN'}\">\r\n <div *ngIf=\"content?.display?.showHeading\">{{data.categoryName}}</div>\r\n <!-- class=\"category-name body-large\" -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"styles?.devider?.display\">\r\n <simpo-svg-divider [dividerType]=\"styles?.devider?.deviderType\"\r\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n\r\n </section>\r\n</ng-container>\r\n\r\n<ngx-skeleton-loader *ngIf=\"isLoading\" count=\"1\" appearance=\"circle\" [theme]=\"{\r\n width: '100%',\r\n height: '40vh',\r\n 'border-radius': '10px',\r\n 'position': 'relative',\r\n 'right': '5px'\r\n}\">\r\n</ngx-skeleton-loader>", styles: [".mt-15{margin-top:15px}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.text-container{min-width:100px}.maxw-170{max-width:170px!important}.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:25px 0% 2%;display:flex;width:100%;max-width:100%;gap:25px;overflow-x:scroll;font-size:16px!important;cursor:pointer}.hovering-effect:hover{font-size:22px!important;transition:.3s ease-in-out}.category-image{display:flex;flex-wrap:wrap;margin-bottom:15px;transition-duration:.3s;-webkit-transform:scale(1);transform:scale(1);-webkit-transition:.3s ease-in-out;transition:.3s ease-in-out}.category-image:hover{-webkit-transform:scale(1.1);transform:scale(1.1)}.category-parent::-webkit-scrollbar{display:none}.span{width:141px;height:15px}.category-name{color:#222;font-size:16px;line-height:normal;font-weight:600}.border-radius-unset{border-radius:unset!important}@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}.w-48{width:48%!important}.category-new-image{height:150px!important;width:100%!important}.header{gap:7px}.category-parent{gap:8px;margin-top:15px;padding-left:0!important;padding-right:0!important;padding-top:0!important}.category-parent::-webkit-scrollbar{display:flex!important;height:3px}.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: "pipe", type: i4.SlicePipe, name: "slice" }, { 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:
136
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FeaturedCategoryComponent, isStandalone: true, selector: "simpo-featured-category", inputs: { data: "data", responseData: "responseData", index: "index", edit: "edit", delete: "delete", customClass: "customClass", nextComponentColor: "nextComponentColor" }, viewQueries: [{ propertyName: "categoryParent", first: true, predicate: ["categoryParent1"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!isLoading\">\r\n <section class=\"container-fluid total-container p-0\" [id]=\"data?.id\" simpoHover (hovering)=\"showEditTabs($event)\"\r\n [attr.style]=\"customClass\">\r\n <div [spacingAround]=\"stylesLayout\" [id]=\"data?.id\" [simpoBorder]=\"styles?.border\" class=\"border-radius-unset\">\r\n <div [id]=\"data?.id\" #mainContainer [simpoAnimation]=\"styles?.animation\" [simpoBackground]=\"styles?.background\"\r\n [simpoCorner]=\"styles?.corners\" class=\"d-flex w-100\">\r\n <div class=\"d-flex flex-column w-100\" [simpoOverlay]=\"styles?.background\" [simpoCorner]=\"styles?.corners\"\r\n [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\" [spacingHorizontal]=\"stylesLayout\"\r\n [simpoAnimation]=\"styles?.animation\">\r\n <div *ngFor=\"let item of content?.inputText\" class=\"text-container\">\r\n <!-- <div class = \"content-side\"[innerHTML]=\"item.value | sanitizeHtml\" [ngClass]=\"item.label === 'Heading' ? 'heading-large lh-2 mb-3' : 'body-large'\"> -->\r\n <ng-container *ngIf=\"edit || item.value\">\r\n <div class=\"pt-3 w-100\">\r\n <simpo-text-editor [(value)]=\"item.value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n </div>\r\n </ng-container>\r\n <!-- </div> -->\r\n </div>\r\n <div class=\"category-parent\" [ngClass]=\"{'flex-wrap': getDirection == 'COLUMN'}\"\r\n [simpoContainerAlignment]=\"styles?.layout\" [id]=\"data?.id\"\r\n [style.justifyContent]=\"!isMobile ? getJustifyContent() : ''\" #categoryParent1>\r\n <div\r\n *ngFor=\"let data of responseData | slice:getSliceParameters()[0]:getSliceParameters()[1]; let idx = index\"\r\n (click)=\"redirectToListPage(data)\" class=\"d-flex flex-column align-items-center w-fit-content\"\r\n [ngClass]=\"{ 'w-48 d-flex flex-column align-items-center' : isMobile}\">\r\n <img [style.borderRadius.px]=\"(styles?.border?.radius ?? 1) / (isMobile ? 2 : 1)\"\r\n [style.height.px]=\"(styles?.containerHeight ?? 1) / (isMobile ? 2 : 1)\"\r\n [style.width.px]=\"(styles?.containerWidth ?? 1) / (isMobile ? 2 : 1)\" loading=\"lazy\"\r\n onerror=\"this.src='https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\"\r\n [src]=\"data.imgUrl?.[0] ?? 'https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\" alt=\"\"\r\n class=\"category-image\" [ngClass]=\"{'category-new-image' : isMobile && getDirection == 'COLUMN'}\">\r\n <div *ngIf=\"content?.display?.showHeading\"\r\n [style.width.px]=\"(styles?.containerWidth ?? 1) / (isMobile ? 2 : 1)\">{{data.categoryName}}</div>\r\n <!-- class=\"category-name body-large\" -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"styles?.devider?.display\">\r\n <simpo-svg-divider [dividerType]=\"styles?.devider?.deviderType\"\r\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n\r\n </section>\r\n</ng-container>\r\n\r\n<ngx-skeleton-loader *ngIf=\"isLoading\" count=\"1\" appearance=\"circle\" [theme]=\"{\r\n width: '100%',\r\n height: '40vh',\r\n 'border-radius': '10px',\r\n 'position': 'relative',\r\n 'right': '5px'\r\n}\">\r\n</ngx-skeleton-loader>", styles: [".mt-15{margin-top:15px}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.text-container{min-width:100px}.w-fit-content{width:fit-content!important}.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:25px 0% 2%;display:flex;width:100%;max-width:100%;gap:25px;overflow-x:scroll;font-size:16px!important;cursor:pointer}.hovering-effect:hover{font-size:22px!important;transition:.3s ease-in-out}.category-image{display:flex;flex-wrap:wrap;margin-bottom:15px;transition-duration:.3s;-webkit-transform:scale(1);transform:scale(1);-webkit-transition:.3s ease-in-out;transition:.3s ease-in-out}.category-image:hover{-webkit-transform:scale(1.1);transform:scale(1.1)}.category-parent::-webkit-scrollbar{display:none}.span{width:141px;height:15px}.category-name{color:#222;font-size:16px;line-height:normal;font-weight:600}.border-radius-unset{border-radius:unset!important}@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}.w-48{width:48%!important}.category-new-image{height:150px!important;width:100%!important}.header{gap:7px}.category-parent{gap:8px;margin-top:15px;padding-left:0!important;padding-right:0!important;padding-top:0!important}.category-parent::-webkit-scrollbar{display:flex!important;height:3px}.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: "pipe", type: i4.SlicePipe, name: "slice" }, { 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:
137
137
  //directive
138
138
  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: BorderDirective, selector: "[simpoBorder]", inputs: ["simpoBorder"] }, { kind: "directive", type: CornerDirective, selector: "[simpoCorner]", inputs: ["simpoCorner"] }, { kind: "directive", type: HoverDirective, selector: "[simpoHover]", outputs: ["hovering"] }, { kind: "directive", type: SpacingHorizontalDirective, selector: "[spacingHorizontal]", inputs: ["spacingHorizontal", "isHeader"] }, { kind: "directive", type: SimpoContainerAligment, selector: "[simpoContainerAlignment]", inputs: ["simpoContainerAlignment"] }, { 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", "type"], outputs: ["valueChange"] }, { kind: "directive", type: SpacingAroundDirective, selector: "[spacingAround]", inputs: ["spacingAround", "backgroundInfo"] }] }); }
139
139
  }
@@ -157,7 +157,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
157
157
  SvgDividerComponent,
158
158
  TextEditorComponent,
159
159
  SpacingAroundDirective,
160
- ], template: "<ng-container *ngIf=\"!isLoading\">\r\n <section class=\"container-fluid total-container p-0\" [id]=\"data?.id\" simpoHover (hovering)=\"showEditTabs($event)\"\r\n [attr.style]=\"customClass\">\r\n <div [spacingAround]=\"stylesLayout\" [id]=\"data?.id\" [simpoBorder]=\"styles?.border\" class=\"border-radius-unset\">\r\n <div [id]=\"data?.id\" #mainContainer [simpoAnimation]=\"styles?.animation\" [simpoBackground]=\"styles?.background\"\r\n [simpoCorner]=\"styles?.corners\" class=\"d-flex w-100\">\r\n <div class=\"d-flex flex-column w-100\" [simpoOverlay]=\"styles?.background\" [simpoCorner]=\"styles?.corners\"\r\n [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\" [spacingHorizontal]=\"stylesLayout\"\r\n [simpoAnimation]=\"styles?.animation\">\r\n <div *ngFor=\"let item of content?.inputText\" class=\"text-container\">\r\n <!-- <div class = \"content-side\"[innerHTML]=\"item.value | sanitizeHtml\" [ngClass]=\"item.label === 'Heading' ? 'heading-large lh-2 mb-3' : 'body-large'\"> -->\r\n <ng-container *ngIf=\"edit || item.value\">\r\n <div class=\"pt-3 w-100\">\r\n <simpo-text-editor [(value)]=\"item.value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n </div>\r\n </ng-container>\r\n <!-- </div> -->\r\n </div>\r\n <div class=\"category-parent\" [ngClass]=\"{'flex-wrap': getDirection == 'COLUMN'}\"\r\n [simpoContainerAlignment]=\"styles?.layout\" [id]=\"data?.id\"\r\n [style.justifyContent]=\"!isMobile ? getJustifyContent() : ''\" #categoryParent1>\r\n <div\r\n *ngFor=\"let data of responseData | slice:getSliceParameters()[0]:getSliceParameters()[1]; let idx = index\"\r\n (click)=\"redirectToListPage(data)\" class=\"d-flex flex-column align-items-center maxw-170\"\r\n [ngClass]=\"{ 'w-48 d-flex flex-column align-items-center' : isMobile}\">\r\n <img [style.borderRadius.px]=\"(styles?.border?.radius ?? 1) / (isMobile ? 2 : 1)\"\r\n [style.height.px]=\"(styles?.containerHeight ?? 1) / (isMobile ? 2 : 1)\"\r\n [style.width.px]=\"(styles?.containerWidth ?? 1) / (isMobile ? 2 : 1)\" loading=\"lazy\"\r\n onerror=\"this.src='https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\"\r\n [src]=\"data.imgUrl?.[0] ?? 'https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\" alt=\"\"\r\n class=\"category-image\" [ngClass]=\"{'category-new-image' : isMobile && getDirection == 'COLUMN'}\">\r\n <div *ngIf=\"content?.display?.showHeading\">{{data.categoryName}}</div>\r\n <!-- class=\"category-name body-large\" -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"styles?.devider?.display\">\r\n <simpo-svg-divider [dividerType]=\"styles?.devider?.deviderType\"\r\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n\r\n </section>\r\n</ng-container>\r\n\r\n<ngx-skeleton-loader *ngIf=\"isLoading\" count=\"1\" appearance=\"circle\" [theme]=\"{\r\n width: '100%',\r\n height: '40vh',\r\n 'border-radius': '10px',\r\n 'position': 'relative',\r\n 'right': '5px'\r\n}\">\r\n</ngx-skeleton-loader>", styles: [".mt-15{margin-top:15px}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.text-container{min-width:100px}.maxw-170{max-width:170px!important}.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:25px 0% 2%;display:flex;width:100%;max-width:100%;gap:25px;overflow-x:scroll;font-size:16px!important;cursor:pointer}.hovering-effect:hover{font-size:22px!important;transition:.3s ease-in-out}.category-image{display:flex;flex-wrap:wrap;margin-bottom:15px;transition-duration:.3s;-webkit-transform:scale(1);transform:scale(1);-webkit-transition:.3s ease-in-out;transition:.3s ease-in-out}.category-image:hover{-webkit-transform:scale(1.1);transform:scale(1.1)}.category-parent::-webkit-scrollbar{display:none}.span{width:141px;height:15px}.category-name{color:#222;font-size:16px;line-height:normal;font-weight:600}.border-radius-unset{border-radius:unset!important}@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}.w-48{width:48%!important}.category-new-image{height:150px!important;width:100%!important}.header{gap:7px}.category-parent{gap:8px;margin-top:15px;padding-left:0!important;padding-right:0!important;padding-top:0!important}.category-parent::-webkit-scrollbar{display:flex!important;height:3px}.span{width:70.5px;height:7.5px}.category-name{font-size:12px}}\n"] }]
160
+ ], template: "<ng-container *ngIf=\"!isLoading\">\r\n <section class=\"container-fluid total-container p-0\" [id]=\"data?.id\" simpoHover (hovering)=\"showEditTabs($event)\"\r\n [attr.style]=\"customClass\">\r\n <div [spacingAround]=\"stylesLayout\" [id]=\"data?.id\" [simpoBorder]=\"styles?.border\" class=\"border-radius-unset\">\r\n <div [id]=\"data?.id\" #mainContainer [simpoAnimation]=\"styles?.animation\" [simpoBackground]=\"styles?.background\"\r\n [simpoCorner]=\"styles?.corners\" class=\"d-flex w-100\">\r\n <div class=\"d-flex flex-column w-100\" [simpoOverlay]=\"styles?.background\" [simpoCorner]=\"styles?.corners\"\r\n [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\" [spacingHorizontal]=\"stylesLayout\"\r\n [simpoAnimation]=\"styles?.animation\">\r\n <div *ngFor=\"let item of content?.inputText\" class=\"text-container\">\r\n <!-- <div class = \"content-side\"[innerHTML]=\"item.value | sanitizeHtml\" [ngClass]=\"item.label === 'Heading' ? 'heading-large lh-2 mb-3' : 'body-large'\"> -->\r\n <ng-container *ngIf=\"edit || item.value\">\r\n <div class=\"pt-3 w-100\">\r\n <simpo-text-editor [(value)]=\"item.value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n </div>\r\n </ng-container>\r\n <!-- </div> -->\r\n </div>\r\n <div class=\"category-parent\" [ngClass]=\"{'flex-wrap': getDirection == 'COLUMN'}\"\r\n [simpoContainerAlignment]=\"styles?.layout\" [id]=\"data?.id\"\r\n [style.justifyContent]=\"!isMobile ? getJustifyContent() : ''\" #categoryParent1>\r\n <div\r\n *ngFor=\"let data of responseData | slice:getSliceParameters()[0]:getSliceParameters()[1]; let idx = index\"\r\n (click)=\"redirectToListPage(data)\" class=\"d-flex flex-column align-items-center w-fit-content\"\r\n [ngClass]=\"{ 'w-48 d-flex flex-column align-items-center' : isMobile}\">\r\n <img [style.borderRadius.px]=\"(styles?.border?.radius ?? 1) / (isMobile ? 2 : 1)\"\r\n [style.height.px]=\"(styles?.containerHeight ?? 1) / (isMobile ? 2 : 1)\"\r\n [style.width.px]=\"(styles?.containerWidth ?? 1) / (isMobile ? 2 : 1)\" loading=\"lazy\"\r\n onerror=\"this.src='https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\"\r\n [src]=\"data.imgUrl?.[0] ?? 'https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\" alt=\"\"\r\n class=\"category-image\" [ngClass]=\"{'category-new-image' : isMobile && getDirection == 'COLUMN'}\">\r\n <div *ngIf=\"content?.display?.showHeading\"\r\n [style.width.px]=\"(styles?.containerWidth ?? 1) / (isMobile ? 2 : 1)\">{{data.categoryName}}</div>\r\n <!-- class=\"category-name body-large\" -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"styles?.devider?.display\">\r\n <simpo-svg-divider [dividerType]=\"styles?.devider?.deviderType\"\r\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n\r\n </section>\r\n</ng-container>\r\n\r\n<ngx-skeleton-loader *ngIf=\"isLoading\" count=\"1\" appearance=\"circle\" [theme]=\"{\r\n width: '100%',\r\n height: '40vh',\r\n 'border-radius': '10px',\r\n 'position': 'relative',\r\n 'right': '5px'\r\n}\">\r\n</ngx-skeleton-loader>", styles: [".mt-15{margin-top:15px}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.text-container{min-width:100px}.w-fit-content{width:fit-content!important}.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:25px 0% 2%;display:flex;width:100%;max-width:100%;gap:25px;overflow-x:scroll;font-size:16px!important;cursor:pointer}.hovering-effect:hover{font-size:22px!important;transition:.3s ease-in-out}.category-image{display:flex;flex-wrap:wrap;margin-bottom:15px;transition-duration:.3s;-webkit-transform:scale(1);transform:scale(1);-webkit-transition:.3s ease-in-out;transition:.3s ease-in-out}.category-image:hover{-webkit-transform:scale(1.1);transform:scale(1.1)}.category-parent::-webkit-scrollbar{display:none}.span{width:141px;height:15px}.category-name{color:#222;font-size:16px;line-height:normal;font-weight:600}.border-radius-unset{border-radius:unset!important}@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}.w-48{width:48%!important}.category-new-image{height:150px!important;width:100%!important}.header{gap:7px}.category-parent{gap:8px;margin-top:15px;padding-left:0!important;padding-right:0!important;padding-top:0!important}.category-parent::-webkit-scrollbar{display:flex!important;height:3px}.span{width:70.5px;height:7.5px}.category-name{font-size:12px}}\n"] }]
161
161
  }], ctorParameters: () => [{ type: Object, decorators: [{
162
162
  type: Inject,
163
163
  args: [PLATFORM_ID]
@@ -179,4 +179,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
179
179
  }], nextComponentColor: [{
180
180
  type: Input
181
181
  }] } });
182
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZWQtY2F0ZWdvcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvZmVhdHVyZWQtY2F0ZWdvcnkvZmVhdHVyZWQtY2F0ZWdvcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvZmVhdHVyZWQtY2F0ZWdvcnkvZmVhdHVyZWQtY2F0ZWdvcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBNEIsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNHLE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRS9FLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzFHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEy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d0JBQ25CLHNCQUFzQjtxQkFDdkI7OzBCQXFCRSxNQUFNOzJCQUFDLFdBQVc7b0hBaEI0QixjQUFjO3NCQUE5RCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFFdEMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFRyxrQkFBa0I7c0JBQTFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBJbnB1dCwgUExBVEZPUk1fSUQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFuaW1hdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9hbmltYXRpb24tZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQmFja2dyb3VuZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9iYWNrZ3JvdW5kLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEJvcmRlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9ib3JkZXItZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29ybmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2Nvcm5lci1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBIb3ZlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9ob3Zlci1lbGVtZW50LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE92ZXJsYXlEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvb3ZlcmxheS1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb250ZW50Rml0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnQtZml0LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEV2ZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGV4dEJhY2tncm91bmREaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvdGV4dC1iYWNrZ3JvdW5kLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTaW1wb0NvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvaW5kZXgnO1xyXG5pbXBvcnQgQmFzZVNlY3Rpb24gZnJvbSAnLi4vLi4vLi4vc2VjdGlvbnMvQmFzZVNlY3Rpb24nO1xyXG5pbXBvcnQgeyBDb2xvckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9jb2xvci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBGZWF0dXJlZENhdGVnb3J5Q29udGVudE1vZGFsLCBGZWF0dXJlZENhdGVnb3J5TW9kYWwsIEZlYXR1cmVkQ2F0ZWdvcnlTdHlsZXNNb2RlbCB9IGZyb20gJy4vZmVhdHVyZWQtY2F0ZWdvcnkubW9kYWwnO1xyXG5pbXBvcnQgeyBDYXRlZ29yeSB9IGZyb20gJy4uLy4uL3N0eWxlcy9jYXRlZ29yeS5tb2RhbCc7XHJcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcmVzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU2FuaXRpemVIdG1sUGlwZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3Nhbml0aXplSHRtbCc7XHJcbmltcG9ydCB7IFNwYWNpbmdIb3Jpem9udGFsRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL3NwYWNpbmctaG9yaXpvbnRhbC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTaW1wb0NvbnRhaW5lckFsaWdtZW50IH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2NvbnRhaW5lci1hbGlnbm1lbnQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQmFja2dyb3VuZE1vZGVsLCBMYXlPdXRNb2RlbCB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9zdHlsZS5tb2RlbCc7XHJcbmltcG9ydCB7IFN2Z0RpdmlkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9lbGVtZW50cy9zdmctZGl2aWRlci9zdmctZGl2aWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZXh0RWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZWxlbWVudHMvdGV4dC1lZGl0b3IvdGV4dC1lZGl0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3BhY2luZ0Fyb3VuZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9zcGFjaW5nLWFyb3VuZC5kaXJlY3RpdmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby1mZWF0dXJlZC1jYXRlZ29yeScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSxcclxuICAgIFNpbXBvQ29tcG9uZW50TW9kdWxlLFxyXG5cclxuICAgIC8vZGlyZWN0aXZlXHJcbiAgICBBbmltYXRpb25EaXJlY3RpdmUsXHJcbiAgICBDb250ZW50Rml0RGlyZWN0aXZlLFxyXG4gICAgQmFja2dyb3VuZERpcmVjdGl2ZSxcclxuICAgIEJvcmRlckRpcmVjdGl2ZSxcclxuICAgIENvcm5lckRpcmVjdGl2ZSxcclxuICAgIEhvdmVyRGlyZWN0aXZlLFxyXG4gICAgU3BhY2luZ0hvcml6b250YWxEaXJlY3RpdmUsXHJcbiAgICBTaW1wb0NvbnRhaW5lckFsaWdtZW50LFxyXG4gICAgT3ZlcmxheURpcmVjdGl2ZSxcclxuICAgIFRleHRCYWNrZ3JvdW5kRGlyZWN0aXZlRGlyZWN0aXZlLFxyXG4gICAgQ29sb3JEaXJlY3RpdmUsXHJcbiAgICBTYW5pdGl6ZUh0bWxQaXBlLFxyXG4gICAgU3ZnRGl2aWRlckNvbXBvbmVudCxcclxuICAgIFRleHRFZGl0b3JDb21wb25lbnQsXHJcbiAgICBTcGFjaW5nQXJvdW5kRGlyZWN0aXZlLFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZlYXR1cmVkLWNhdGVnb3J5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZmVhdHVyZWQtY2F0ZWdvcnkuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEZlYXR1cmVkQ2F0ZWdvcnlDb21wb25lbnQgZXh0ZW5kcyBCYXNlU2VjdGlvbiB7XHJcbiAgQFZpZXdDaGlsZCgnY2F0ZWdvcnlQYXJlbnQxJywgeyBzdGF0aWM6IGZhbHNlIH0pIGNhdGVnb3J5UGFyZW50ITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcblxyXG4gIEBJbnB1dCgpIGRhdGE/OiBGZWF0dXJlZENhdGVnb3J5TW9kYWwgfCBhbnk7XHJcbiAgQElucHV0KCkgcmVzcG9uc2VEYXRhPzogQ2F0ZWdvcnlbXSB8IGFueVtdO1xyXG4gIEBJbnB1dCgpIGluZGV4PzogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGVkaXQ/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGRlbGV0ZT86IGJvb2xlYW47XHJcbiAgQElucHV0KCkgY3VzdG9tQ2xhc3M/OiBzdHJpbmc7XHJcbiAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbmV4dENvbXBvbmVudENvbG9yPzogQmFja2dyb3VuZE1vZGVsO1xyXG5cclxuXHJcbiAgY29udGVudD86IEZlYXR1cmVkQ2F0ZWdvcnlDb250ZW50TW9kYWw7XHJcbiAgc3R5bGVzPzogRmVhdHVyZWRDYXRlZ29yeVN0eWxlc01vZGVsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogT2JqZWN0LFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZXZlbnRTZXJ2aWNlOiBFdmVudHNTZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgc3VwZXIoKVxyXG4gIH1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuY29udGVudCA9IHRoaXMuZGF0YT8uY29udGVudDtcclxuICAgIHRoaXMuc3R5bGVzID0gdGhpcy5kYXRhPy5zdHlsZXM7XHJcbiAgICAvLyB0aGlzLmdldEFsbENhdGVnb3JpZXNCeUNvbGxlY3Rpb25JZCgpO1xyXG4gICAgdGhpcy5nZXRBbGxDYXRlZ29yaWVzKCk7XHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2Uuc2hvd0xvYWRpbmdTY3JlZW4uc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHJlc3BvbnNlO1xyXG4gICAgfSlcclxuICAgIHRoaXMuX2V2ZW50U2VydmljZS5jYXRlZ29yeUxpc3RFdmVudC5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGlmIChyZXNwb25zZSA9PT0gJ0RFU0VMRUNUSU9OJykge1xyXG4gICAgICAgIHRoaXMucmVzcG9uc2VEYXRhID0gW107XHJcbiAgICAgICAgdGhpcy5kYXRhLmNvbnRlbnQuY2F0ZWdvcmllc0lkcyA9IFtdO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKHJlc3BvbnNlID09PSAnQUxMJykge1xyXG4gICAgICAgIHRoaXMuYWxsQ2F0ZWdvcmllc1NlbGVjdGVkKClcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLmdldENhdGVnb3JpZXNCeUlkKCk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICAvLyB0aGlzLl9ldmVudFNlcnZpY2Uud3JhcERpcmVjdGlvbi5zdWJzY3JpYmUoKHJlc3BvbnNlKT0+IHtcclxuICAgIC8vICAgaWYgKHJlc3BvbnNlID09PSB0aGlzLmRhdGE/LmlkICYmIHRoaXMuc3R5bGVzKVxyXG4gICAgLy8gICAgIHRoaXMuc3R5bGVzLmRpcmVjdGlvbiA9IHJlc3BvbnNlIGFzIFwiUk9XXCIgfCBcIkNPTFVNTlwiO1xyXG4gICAgLy8gfSlcclxuICB9XHJcbiAgYWxsQ2F0ZWdvcmllczogYW55W10gPSBbXTtcclxuICBnZXRBbGxDYXRlZ29yaWVzKCkge1xyXG4gICAgbGV0IHBheWxvYWQgPSB7XHJcbiAgICAgIGJ1c2luZXNzSWQ6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdidXNpbmVzc0lkJykgfHwgJzFmMTI4NTc5LSBmZGMxIC0gNmVlYi1hNjNjIC0gODkxYmEzNWI1OWYxJyxcclxuICAgICAgc2VhcmNoVGV4dDogJycsXHJcbiAgICAgIHBhZ2VObzogMCxcclxuICAgICAgcGFnZVNpemU6IDEwMDBcclxuICAgIH1cclxuICAgIHRoaXMucmVzdFNlcnZpY2UuZ2V0QWxsQ2F0ZWdvcmllc0J5QnVzaW5lc3NJZChwYXlsb2FkKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5hbGxDYXRlZ29yaWVzID0gcmVzcG9uc2U/LmRhdGE/LmRhdGE7XHJcbiAgICAgIGlmICghdGhpcy5lZGl0KSB7XHJcbiAgICAgICAgdGhpcy5yZXNwb25zZURhdGEgPSBbXTtcclxuICAgICAgICBpZiAodGhpcy5kYXRhPy5jb250ZW50Py5jYXRlZ29yaWVzSWRzPy5sZW5ndGggPj0gMSkge1xyXG4gICAgICAgICAgdGhpcy5kYXRhPy5jb250ZW50Py5jYXRlZ29yaWVzSWRzPy5mb3JFYWNoKChpZDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoZWRDYXRlZ29yeSA9IHRoaXMuYWxsQ2F0ZWdvcmllcy5maW5kKFxyXG4gICAgICAgICAgICAgIChjYXRlZ29yeTogYW55KSA9PiBjYXRlZ29yeS5jYXRlZ29yeUlkID09PSBpZFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBpZiAobWF0Y2hlZENhdGVnb3J5KSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5yZXNwb25zZURhdGE/LnB1c2gobWF0Y2hlZENhdGVnb3J5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBhbGxDYXRlZ29yaWVzU2VsZWN0ZWQoKSB7XHJcbiAgICB0aGlzLnJlc3BvbnNlRGF0YSA9IHRoaXMuYWxsQ2F0ZWdvcmllcztcclxuICAgIHRoaXMuZGF0YS5jb250ZW50LmNhdGVnb3JpZUlkcyA9IFtdO1xyXG4gICAgdGhpcy5kYXRhLmNvbnRlbnQuY2F0ZWdvcmllc0lkcyA9IHRoaXMuYWxsQ2F0ZWdvcmllcy5tYXAoKGNhdGVnb3J5OiBhbnkpID0+IGNhdGVnb3J5LmNhdGVnb3J5SWQpO1xyXG4gIH1cclxuICBnZXRDYXRlZ29yaWVzQnlJZCgpIHtcclxuICAgIHRoaXMucmVzcG9uc2VEYXRhID0gdGhpcy5hbGxDYXRlZ29yaWVzLmZpbHRlcigoY2F0ZWdvcnk6IGFueSkgPT5cclxuICAgICAgdGhpcy5kYXRhPy5jb250ZW50Py5jYXRlZ29yaWVzSWRzPy5pbmNsdWRlcyhjYXRlZ29yeS5jYXRlZ29yeUlkKVxyXG4gICAgKTtcclxuICB9XHJcbiAgZ2V0U2xpY2VQYXJhbWV0ZXJzKCkge1xyXG4gICAgcmV0dXJuIFswLCAodGhpcy5zdHlsZXM/Lm1heGltdW1Qcm9kdWN0IHx8IDApXTtcclxuICB9XHJcblxyXG4gIHJlZGlyZWN0VG9MaXN0UGFnZShjYXRlZ29yeTogYW55KSB7XHJcbiAgICBjYXRlZ29yeSA9IGNhdGVnb3J5LmNhdGVnb3J5TmFtZT8ucmVwbGFjZUFsbChcIiBcIiwgXCJfXCIpO1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbGlzdCddLCB7IHF1ZXJ5UGFyYW1zOiB7IGNhdGVnb3J5OiBjYXRlZ29yeSB9IH0pO1xyXG4gIH1cclxuICBnZXRBbGxDYXRlZ29yaWVzQnlDb2xsZWN0aW9uSWQoKSB7XHJcbiAgICBpZiAoIXRoaXMuZGF0YT8uY29udGVudC5jb2xsZWN0aW9uSWQpXHJcbiAgICAgIHJldHVybjtcclxuICAgIHRoaXMucmVzdFNlcnZpY2UuZ2V0Q2F0ZWdvcmllc0J5Q29sbGVjdGlvbklkKHRoaXMuZGF0YT8uY29udGVudC5jb2xsZWN0aW9uSWQpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcclxuICAgICAgdGhpcy5yZXNwb25zZURhdGEgPSByZXNwb25zZTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBlZGl0U2VjdGlvbigpIHtcclxuICAgIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA8PSA0NzUpXHJcbiAgICAgIHJldHVybjtcclxuICAgIHRoaXMuX2V2ZW50U2VydmljZS50b2dnbGVFZGl0b3JFdmVudC5lbWl0KGZhbHNlKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLl9ldmVudFNlcnZpY2UuZWRpdFNlY3Rpb24uZW1pdCh7IGRhdGE6IHRoaXMuZGF0YSB9KTtcclxuICAgIH0sIDEwMCk7XHJcbiAgfVxyXG4gIGdldCBnZXREaXJlY3Rpb24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdHlsZXM/LmRpcmVjdGlvbjtcclxuICB9XHJcbiAgZ2V0IHN0eWxlc0xheW91dCgpIHtcclxuICAgIHJldHVybiB7IC4uLnRoaXMuc3R5bGVzPy5sYXlvdXQgfSBhcyBMYXlPdXRNb2RlbDtcclxuICB9XHJcbiAgZ2V0IGlzTW9iaWxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoIDw9IDQ3NTtcclxuICB9XHJcbiAgZ2V0SnVzdGlmeUNvbnRlbnQoKSB7XHJcbiAgICBjb25zdCBlbCA9IHRoaXMuY2F0ZWdvcnlQYXJlbnQ/Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBpZiAoIWVsKSByZXR1cm4gJyc7XHJcbiAgICBjb25zdCBpc092ZXJmbG93aW5nID0gZWwuc2Nyb2xsV2lkdGggPiBlbC5jbGllbnRXaWR0aDtcclxuICAgIGlmIChpc092ZXJmbG93aW5nKSB7XHJcbiAgICAgIHJldHVybiAnZmxleC1zdGFydCc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5zdHlsZXM/LmxheW91dD8uYWxpZ24gfHwgJyc7XHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNMb2FkaW5nXCI+XHJcbiAgPHNlY3Rpb24gY2xhc3M9XCJjb250YWluZXItZmx1aWQgdG90YWwtY29udGFpbmVyIHAtMFwiIFtpZF09XCJkYXRhPy5pZFwiIHNpbXBvSG92ZXIgKGhvdmVyaW5nKT1cInNob3dFZGl0VGFicygkZXZlbnQpXCJcclxuICAgIFthdHRyLnN0eWxlXT1cImN1c3RvbUNsYXNzXCI+XHJcbiAgICA8ZGl2IFtzcGFjaW5nQXJvdW5kXT1cInN0eWxlc0xheW91dFwiIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0JvcmRlcl09XCJzdHlsZXM/LmJvcmRlclwiIGNsYXNzPVwiYm9yZGVyLXJhZGl1cy11bnNldFwiPlxyXG4gICAgICA8ZGl2IFtpZF09XCJkYXRhPy5pZFwiICNtYWluQ29udGFpbmVyIFtzaW1wb0FuaW1hdGlvbl09XCJzdHlsZXM/LmFuaW1hdGlvblwiIFtzaW1wb0JhY2tncm91bmRdPVwic3R5bGVzPy5iYWNrZ3JvdW5kXCJcclxuICAgICAgICBbc2ltcG9Db3JuZXJdPVwic3R5bGVzPy5jb3JuZXJzXCIgY2xhc3M9XCJkLWZsZXggdy0xMDBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIHctMTAwXCIgW3NpbXBvT3ZlcmxheV09XCJzdHlsZXM/LmJhY2tncm91bmRcIiBbc2ltcG9Db3JuZXJdPVwic3R5bGVzPy5jb3JuZXJzXCJcclxuICAgICAgICAgIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0xheW91dF09XCJzdHlsZXM/LmxheW91dFwiIFtzcGFjaW5nSG9yaXpvbnRhbF09XCJzdHlsZXNMYXlvdXRcIlxyXG4gICAgICAgICAgW3NpbXBvQW5pbWF0aW9uXT1cInN0eWxlcz8uYW5pbWF0aW9uXCI+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbnRlbnQ/LmlucHV0VGV4dFwiIGNsYXNzPVwidGV4dC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2ICBjbGFzcyA9IFwiY29udGVudC1zaWRlXCJbaW5uZXJIVE1MXT1cIml0ZW0udmFsdWUgfCBzYW5pdGl6ZUh0bWxcIiBbbmdDbGFzc109XCJpdGVtLmxhYmVsID09PSAnSGVhZGluZycgPyAnaGVhZGluZy1sYXJnZSBsaC0yIG1iLTMnIDogJ2JvZHktbGFyZ2UnXCI+IC0tPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWRpdCB8fCBpdGVtLnZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB0LTMgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgIDxzaW1wby10ZXh0LWVkaXRvciBbKHZhbHVlKV09XCJpdGVtLnZhbHVlXCIgW2VkaXRhYmxlXT1cImVkaXQgfHwgZmFsc2VcIj48L3NpbXBvLXRleHQtZWRpdG9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPCEtLSA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yeS1wYXJlbnRcIiBbbmdDbGFzc109XCJ7J2ZsZXgtd3JhcCc6IGdldERpcmVjdGlvbiA9PSAnQ09MVU1OJ31cIlxyXG4gICAgICAgICAgICBbc2ltcG9Db250YWluZXJBbGlnbm1lbnRdPVwic3R5bGVzPy5sYXlvdXRcIiBbaWRdPVwiZGF0YT8uaWRcIlxyXG4gICAgICAgICAgICBbc3R5bGUuanVzdGlmeUNvbnRlbnRdPVwiIWlzTW9iaWxlID8gZ2V0SnVzdGlmeUNvbnRlbnQoKSA6ICcnXCIgI2NhdGVnb3J5UGFyZW50MT5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBkYXRhIG9mIHJlc3BvbnNlRGF0YSB8IHNsaWNlOmdldFNsaWNlUGFyYW1ldGVycygpWzBdOmdldFNsaWNlUGFyYW1ldGVycygpWzFdOyBsZXQgaWR4ID0gaW5kZXhcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJyZWRpcmVjdFRvTGlzdFBhZ2UoZGF0YSlcIiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIgbWF4dy0xNzBcIlxyXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3ctNDggZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlcicgOiBpc01vYmlsZX1cIj5cclxuICAgICAgICAgICAgICA8aW1nIFtzdHlsZS5ib3JkZXJSYWRpdXMucHhdPVwiKHN0eWxlcz8uYm9yZGVyPy5yYWRpdXMgPz8gMSkgLyAoaXNNb2JpbGUgPyAyIDogMSlcIlxyXG4gICAgICAgICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCIoc3R5bGVzPy5jb250YWluZXJIZWlnaHQgPz8gMSkgLyAoaXNNb2JpbGUgPyAyIDogMSlcIlxyXG4gICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cIihzdHlsZXM/LmNvbnRhaW5lcldpZHRoID8/IDEpIC8gKGlzTW9iaWxlID8gMiA6IDEpXCIgbG9hZGluZz1cImxhenlcIlxyXG4gICAgICAgICAgICAgICAgb25lcnJvcj1cInRoaXMuc3JjPSdodHRwczovL2kucG9zdGltZy5jYy9oUFMySnBWMC9uby1pbWFnZS1hdmFpbGFibGUuanBnJ1wiXHJcbiAgICAgICAgICAgICAgICBbc3JjXT1cImRhdGEuaW1nVXJsPy5bMF0gPz8gJ2h0dHBzOi8vaS5wb3N0aW1nLmNjL2hQUzJKcFYwL25vLWltYWdlLWF2YWlsYWJsZS5qcGcnXCIgYWx0PVwiXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2F0ZWdvcnktaW1hZ2VcIiBbbmdDbGFzc109XCJ7J2NhdGVnb3J5LW5ldy1pbWFnZScgOiBpc01vYmlsZSAmJiBnZXREaXJlY3Rpb24gPT0gJ0NPTFVNTid9XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbnRlbnQ/LmRpc3BsYXk/LnNob3dIZWFkaW5nXCI+e3tkYXRhLmNhdGVnb3J5TmFtZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgPCEtLSBjbGFzcz1cImNhdGVnb3J5LW5hbWUgYm9keS1sYXJnZVwiICAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3R5bGVzPy5kZXZpZGVyPy5kaXNwbGF5XCI+XHJcbiAgICAgIDxzaW1wby1zdmctZGl2aWRlciBbZGl2aWRlclR5cGVdPVwic3R5bGVzPy5kZXZpZGVyPy5kZXZpZGVyVHlwZVwiXHJcbiAgICAgICAgW2NvbG9yXT1cIm5leHRDb21wb25lbnRDb2xvcj8uY29sb3JcIj48L3NpbXBvLXN2Zy1kaXZpZGVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZWRpdH1cIiAqbmdJZj1cInNob3dFZGl0b3JzXCI+XHJcbiAgICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIj48L3NpbXBvLWhvdmVyLWVsZW1lbnRzPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0RlbGV0ZVwiIFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZGVsZXRlfVwiPlxyXG4gICAgICA8c2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiPjwvc2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQ+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgPC9zZWN0aW9uPlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZ3gtc2tlbGV0b24tbG9hZGVyICpuZ0lmPVwiaXNMb2FkaW5nXCIgY291bnQ9XCIxXCIgYXBwZWFyYW5jZT1cImNpcmNsZVwiIFt0aGVtZV09XCJ7XHJcbiAgd2lkdGg6ICcxMDAlJyxcclxuICBoZWlnaHQ6ICc0MHZoJyxcclxuICAnYm9yZGVyLXJhZGl1cyc6ICcxMHB4JyxcclxuICAncG9zaXRpb24nOiAncmVsYXRpdmUnLFxyXG4gICdyaWdodCc6ICc1cHgnXHJcbn1cIj5cclxuPC9uZ3gtc2tlbGV0b24tbG9hZGVyPiJdfQ==
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZWQtY2F0ZWdvcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvZmVhdHVyZWQtY2F0ZWdvcnkvZmVhdHVyZWQtY2F0ZWdvcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvZmVhdHVyZWQtY2F0ZWdvcnkvZmVhdHVyZWQtY2F0ZWdvcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBNEIsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNHLE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRS9FLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzFHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sV0FBVyxNQUFNLCtCQUErQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUtwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUM3RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUUxRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMxRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMxRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7Ozs7O0FBNEJyRixNQUFNLE9BQU8seUJBQTBCLFNBQVEsV0FBVztJQWdCeEQsWUFDK0IsVUFBa0IsRUFDOUIsTUFBYyxFQUNkLFdBQXdCLEVBQ3hCLGFBQTRCO1FBRTdDLEtBQUssRUFBRSxDQUFBO1FBTHNCLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDOUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBWC9DLGNBQVMsR0FBWSxLQUFLLENBQUM7UUF3QzNCLGtCQUFhLEdBQVUsRUFBRSxDQUFDO0lBMUIxQixDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7UUFDbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQztRQUNoQyx5Q0FBeUM7UUFDekMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUMxRCxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDMUQsSUFBSSxRQUFRLEtBQUssYUFBYSxFQUFFLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO2dCQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1lBQ3ZDLENBQUM7aUJBQ0ksSUFBSSxRQUFRLEtBQUssS0FBSyxFQUFFLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFBO1lBQzlCLENBQUM7aUJBQ0ksQ0FBQztnQkFDSixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMzQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFDRiw0REFBNEQ7UUFDNUQsbURBQW1EO1FBQ25ELDREQUE0RDtRQUM1RCxLQUFLO0lBQ1AsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksT0FBTyxHQUFHO1lBQ1osVUFBVSxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksc0NBQXNDO1lBQ3hGLFVBQVUsRUFBRSxFQUFFO1lBQ2QsTUFBTSxFQUFFLENBQUM7WUFDVCxRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUE7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLDRCQUE0QixDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQ2pGLElBQUksQ0FBQyxhQUFhLEdBQUcsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDZixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO29CQUNuRCxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUMsRUFBTyxFQUFFLEVBQUU7d0JBQ3JELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUM3QyxDQUFDLFFBQWEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsS0FBSyxFQUFFLENBQzlDLENBQUM7d0JBQ0YsSUFBSSxlQUFlLEVBQUUsQ0FBQzs0QkFDcEIsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7d0JBQzNDLENBQUM7b0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFDRCxxQkFBcUI7UUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbkcsQ0FBQztJQUNELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRSxDQUM5RCxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FDakUsQ0FBQztJQUNKLENBQUM7SUFDRCxrQkFBa0I7UUFDaEIsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsY0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELGtCQUFrQixDQUFDLFFBQWE7UUFDOUIsUUFBUSxHQUFHLFFBQVEsQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBQ0QsOEJBQThCO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxZQUFZO1lBQ2xDLE9BQU87UUFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ25HLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLE1BQU0sQ0FBQyxVQUFVLElBQUksR0FBRztZQUMxQixPQUFPO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMzRCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBQ0QsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsSUFBSSxZQUFZO1FBQ2QsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQWlCLENBQUM7SUFDbkQsQ0FBQztJQUNELElBQUksUUFBUTtRQUNWLE9BQU8sTUFBTSxDQUFDLFVBQVUsSUFBSSxHQUFHLENBQUM7SUFDbEMsQ0FBQztJQUNELGlCQUFpQjtRQUNmLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsYUFBYSxDQUFDO1FBQzlDLElBQUksQ0FBQyxFQUFFO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDbkIsTUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDO1FBQ3RELElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEIsT0FBTyxZQUFZLENBQUM7UUFDdEIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUMxQyxDQUFDOytHQTdIVSx5QkFBeUIsa0JBaUIxQixXQUFXO21HQWpCVix5QkFBeUIsMllDckR0QyxzeUhBNkRzQixrbUREL0JWLFlBQVksa1pBQUUsV0FBVyw4QkFDakMsb0JBQW9CO2dCQUVwQixXQUFXO2dCQUNYLGtCQUFrQix5RkFDbEIsbUJBQW1CLG1GQUNuQixtQkFBbUIsMEdBQ25CLGVBQWUsbUZBQ2YsZUFBZSxtRkFDZixjQUFjLGdGQUNkLDBCQUEwQiwyR0FDMUIsc0JBQXNCLDJHQUN0QixnQkFBZ0IscUZBSWhCLG1CQUFtQixnR0FDbkIsbUJBQW1CLHFKQUNuQixzQkFBc0I7OzRGQUtiLHlCQUF5QjtrQkExQnJDLFNBQVM7K0JBQ0UseUJBQXlCLGNBQ3ZCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxXQUFXO3dCQUNqQyxvQkFBb0I7d0JBRXBCLFdBQVc7d0JBQ1gsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsMEJBQTBCO3dCQUMxQixzQkFBc0I7d0JBQ3RCLGdCQUFnQjt3QkFDaEIsZ0NBQWdDO3dCQUNoQyxjQUFjO3dCQUNkLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLHNCQUFzQjtxQkFDdkI7OzBCQXFCRSxNQUFNOzJCQUFDLFdBQVc7b0hBaEI0QixjQUFjO3NCQUE5RCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFFdEMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFRyxrQkFBa0I7c0JBQTFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBJbnB1dCwgUExBVEZPUk1fSUQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFuaW1hdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9hbmltYXRpb24tZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQmFja2dyb3VuZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9iYWNrZ3JvdW5kLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEJvcmRlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9ib3JkZXItZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29ybmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2Nvcm5lci1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBIb3ZlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9ob3Zlci1lbGVtZW50LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE92ZXJsYXlEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvb3ZlcmxheS1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb250ZW50Rml0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnQtZml0LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEV2ZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGV4dEJhY2tncm91bmREaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvdGV4dC1iYWNrZ3JvdW5kLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTaW1wb0NvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvaW5kZXgnO1xyXG5pbXBvcnQgQmFzZVNlY3Rpb24gZnJvbSAnLi4vLi4vLi4vc2VjdGlvbnMvQmFzZVNlY3Rpb24nO1xyXG5pbXBvcnQgeyBDb2xvckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9jb2xvci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBGZWF0dXJlZENhdGVnb3J5Q29udGVudE1vZGFsLCBGZWF0dXJlZENhdGVnb3J5TW9kYWwsIEZlYXR1cmVkQ2F0ZWdvcnlTdHlsZXNNb2RlbCB9IGZyb20gJy4vZmVhdHVyZWQtY2F0ZWdvcnkubW9kYWwnO1xyXG5pbXBvcnQgeyBDYXRlZ29yeSB9IGZyb20gJy4uLy4uL3N0eWxlcy9jYXRlZ29yeS5tb2RhbCc7XHJcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcmVzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU2FuaXRpemVIdG1sUGlwZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3Nhbml0aXplSHRtbCc7XHJcbmltcG9ydCB7IFNwYWNpbmdIb3Jpem9udGFsRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL3NwYWNpbmctaG9yaXpvbnRhbC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTaW1wb0NvbnRhaW5lckFsaWdtZW50IH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2NvbnRhaW5lci1hbGlnbm1lbnQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQmFja2dyb3VuZE1vZGVsLCBMYXlPdXRNb2RlbCB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9zdHlsZS5tb2RlbCc7XHJcbmltcG9ydCB7IFN2Z0RpdmlkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9lbGVtZW50cy9zdmctZGl2aWRlci9zdmctZGl2aWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZXh0RWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZWxlbWVudHMvdGV4dC1lZGl0b3IvdGV4dC1lZGl0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3BhY2luZ0Fyb3VuZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9zcGFjaW5nLWFyb3VuZC5kaXJlY3RpdmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby1mZWF0dXJlZC1jYXRlZ29yeScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSxcclxuICAgIFNpbXBvQ29tcG9uZW50TW9kdWxlLFxyXG5cclxuICAgIC8vZGlyZWN0aXZlXHJcbiAgICBBbmltYXRpb25EaXJlY3RpdmUsXHJcbiAgICBDb250ZW50Rml0RGlyZWN0aXZlLFxyXG4gICAgQmFja2dyb3VuZERpcmVjdGl2ZSxcclxuICAgIEJvcmRlckRpcmVjdGl2ZSxcclxuICAgIENvcm5lckRpcmVjdGl2ZSxcclxuICAgIEhvdmVyRGlyZWN0aXZlLFxyXG4gICAgU3BhY2luZ0hvcml6b250YWxEaXJlY3RpdmUsXHJcbiAgICBTaW1wb0NvbnRhaW5lckFsaWdtZW50LFxyXG4gICAgT3ZlcmxheURpcmVjdGl2ZSxcclxuICAgIFRleHRCYWNrZ3JvdW5kRGlyZWN0aXZlRGlyZWN0aXZlLFxyXG4gICAgQ29sb3JEaXJlY3RpdmUsXHJcbiAgICBTYW5pdGl6ZUh0bWxQaXBlLFxyXG4gICAgU3ZnRGl2aWRlckNvbXBvbmVudCxcclxuICAgIFRleHRFZGl0b3JDb21wb25lbnQsXHJcbiAgICBTcGFjaW5nQXJvdW5kRGlyZWN0aXZlLFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZlYXR1cmVkLWNhdGVnb3J5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZmVhdHVyZWQtY2F0ZWdvcnkuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEZlYXR1cmVkQ2F0ZWdvcnlDb21wb25lbnQgZXh0ZW5kcyBCYXNlU2VjdGlvbiB7XHJcbiAgQFZpZXdDaGlsZCgnY2F0ZWdvcnlQYXJlbnQxJywgeyBzdGF0aWM6IGZhbHNlIH0pIGNhdGVnb3J5UGFyZW50ITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcblxyXG4gIEBJbnB1dCgpIGRhdGE/OiBGZWF0dXJlZENhdGVnb3J5TW9kYWwgfCBhbnk7XHJcbiAgQElucHV0KCkgcmVzcG9uc2VEYXRhPzogQ2F0ZWdvcnlbXSB8IGFueVtdO1xyXG4gIEBJbnB1dCgpIGluZGV4PzogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGVkaXQ/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGRlbGV0ZT86IGJvb2xlYW47XHJcbiAgQElucHV0KCkgY3VzdG9tQ2xhc3M/OiBzdHJpbmc7XHJcbiAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbmV4dENvbXBvbmVudENvbG9yPzogQmFja2dyb3VuZE1vZGVsO1xyXG5cclxuXHJcbiAgY29udGVudD86IEZlYXR1cmVkQ2F0ZWdvcnlDb250ZW50TW9kYWw7XHJcbiAgc3R5bGVzPzogRmVhdHVyZWRDYXRlZ29yeVN0eWxlc01vZGVsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogT2JqZWN0LFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZXZlbnRTZXJ2aWNlOiBFdmVudHNTZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgc3VwZXIoKVxyXG4gIH1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuY29udGVudCA9IHRoaXMuZGF0YT8uY29udGVudDtcclxuICAgIHRoaXMuc3R5bGVzID0gdGhpcy5kYXRhPy5zdHlsZXM7XHJcbiAgICAvLyB0aGlzLmdldEFsbENhdGVnb3JpZXNCeUNvbGxlY3Rpb25JZCgpO1xyXG4gICAgdGhpcy5nZXRBbGxDYXRlZ29yaWVzKCk7XHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2Uuc2hvd0xvYWRpbmdTY3JlZW4uc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHJlc3BvbnNlO1xyXG4gICAgfSlcclxuICAgIHRoaXMuX2V2ZW50U2VydmljZS5jYXRlZ29yeUxpc3RFdmVudC5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGlmIChyZXNwb25zZSA9PT0gJ0RFU0VMRUNUSU9OJykge1xyXG4gICAgICAgIHRoaXMucmVzcG9uc2VEYXRhID0gW107XHJcbiAgICAgICAgdGhpcy5kYXRhLmNvbnRlbnQuY2F0ZWdvcmllc0lkcyA9IFtdO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKHJlc3BvbnNlID09PSAnQUxMJykge1xyXG4gICAgICAgIHRoaXMuYWxsQ2F0ZWdvcmllc1NlbGVjdGVkKClcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLmdldENhdGVnb3JpZXNCeUlkKCk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICAvLyB0aGlzLl9ldmVudFNlcnZpY2Uud3JhcERpcmVjdGlvbi5zdWJzY3JpYmUoKHJlc3BvbnNlKT0+IHtcclxuICAgIC8vICAgaWYgKHJlc3BvbnNlID09PSB0aGlzLmRhdGE/LmlkICYmIHRoaXMuc3R5bGVzKVxyXG4gICAgLy8gICAgIHRoaXMuc3R5bGVzLmRpcmVjdGlvbiA9IHJlc3BvbnNlIGFzIFwiUk9XXCIgfCBcIkNPTFVNTlwiO1xyXG4gICAgLy8gfSlcclxuICB9XHJcbiAgYWxsQ2F0ZWdvcmllczogYW55W10gPSBbXTtcclxuICBnZXRBbGxDYXRlZ29yaWVzKCkge1xyXG4gICAgbGV0IHBheWxvYWQgPSB7XHJcbiAgICAgIGJ1c2luZXNzSWQ6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdidXNpbmVzc0lkJykgfHwgJzFmMTI4NTc5LWZkYzEtNmVlYi1hNjNjLTg5MWJhMzViNTlmMScsXHJcbiAgICAgIHNlYXJjaFRleHQ6ICcnLFxyXG4gICAgICBwYWdlTm86IDAsXHJcbiAgICAgIHBhZ2VTaXplOiAxMDAwXHJcbiAgICB9XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmdldEFsbENhdGVnb3JpZXNCeUJ1c2luZXNzSWQocGF5bG9hZCkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuYWxsQ2F0ZWdvcmllcyA9IHJlc3BvbnNlPy5kYXRhPy5kYXRhO1xyXG4gICAgICBpZiAoIXRoaXMuZWRpdCkge1xyXG4gICAgICAgIHRoaXMucmVzcG9uc2VEYXRhID0gW107XHJcbiAgICAgICAgaWYgKHRoaXMuZGF0YT8uY29udGVudD8uY2F0ZWdvcmllc0lkcz8ubGVuZ3RoID49IDEpIHtcclxuICAgICAgICAgIHRoaXMuZGF0YT8uY29udGVudD8uY2F0ZWdvcmllc0lkcz8uZm9yRWFjaCgoaWQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBtYXRjaGVkQ2F0ZWdvcnkgPSB0aGlzLmFsbENhdGVnb3JpZXMuZmluZChcclxuICAgICAgICAgICAgICAoY2F0ZWdvcnk6IGFueSkgPT4gY2F0ZWdvcnkuY2F0ZWdvcnlJZCA9PT0gaWRcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgaWYgKG1hdGNoZWRDYXRlZ29yeSkge1xyXG4gICAgICAgICAgICAgIHRoaXMucmVzcG9uc2VEYXRhPy5wdXNoKG1hdGNoZWRDYXRlZ29yeSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgYWxsQ2F0ZWdvcmllc1NlbGVjdGVkKCkge1xyXG4gICAgdGhpcy5yZXNwb25zZURhdGEgPSB0aGlzLmFsbENhdGVnb3JpZXM7XHJcbiAgICB0aGlzLmRhdGEuY29udGVudC5jYXRlZ29yaWVJZHMgPSBbXTtcclxuICAgIHRoaXMuZGF0YS5jb250ZW50LmNhdGVnb3JpZXNJZHMgPSB0aGlzLmFsbENhdGVnb3JpZXMubWFwKChjYXRlZ29yeTogYW55KSA9PiBjYXRlZ29yeS5jYXRlZ29yeUlkKTtcclxuICB9XHJcbiAgZ2V0Q2F0ZWdvcmllc0J5SWQoKSB7XHJcbiAgICB0aGlzLnJlc3BvbnNlRGF0YSA9IHRoaXMuYWxsQ2F0ZWdvcmllcy5maWx0ZXIoKGNhdGVnb3J5OiBhbnkpID0+XHJcbiAgICAgIHRoaXMuZGF0YT8uY29udGVudD8uY2F0ZWdvcmllc0lkcz8uaW5jbHVkZXMoY2F0ZWdvcnkuY2F0ZWdvcnlJZClcclxuICAgICk7XHJcbiAgfVxyXG4gIGdldFNsaWNlUGFyYW1ldGVycygpIHtcclxuICAgIHJldHVybiBbMCwgKHRoaXMuc3R5bGVzPy5tYXhpbXVtUHJvZHVjdCB8fCAwKV07XHJcbiAgfVxyXG5cclxuICByZWRpcmVjdFRvTGlzdFBhZ2UoY2F0ZWdvcnk6IGFueSkge1xyXG4gICAgY2F0ZWdvcnkgPSBjYXRlZ29yeS5jYXRlZ29yeU5hbWU/LnJlcGxhY2VBbGwoXCIgXCIsIFwiX1wiKTtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2xpc3QnXSwgeyBxdWVyeVBhcmFtczogeyBjYXRlZ29yeTogY2F0ZWdvcnkgfSB9KTtcclxuICB9XHJcbiAgZ2V0QWxsQ2F0ZWdvcmllc0J5Q29sbGVjdGlvbklkKCkge1xyXG4gICAgaWYgKCF0aGlzLmRhdGE/LmNvbnRlbnQuY29sbGVjdGlvbklkKVxyXG4gICAgICByZXR1cm47XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmdldENhdGVnb3JpZXNCeUNvbGxlY3Rpb25JZCh0aGlzLmRhdGE/LmNvbnRlbnQuY29sbGVjdGlvbklkKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIHRoaXMucmVzcG9uc2VEYXRhID0gcmVzcG9uc2U7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZWRpdFNlY3Rpb24oKSB7XHJcbiAgICBpZiAod2luZG93LmlubmVyV2lkdGggPD0gNDc1KVxyXG4gICAgICByZXR1cm47XHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UudG9nZ2xlRWRpdG9yRXZlbnQuZW1pdChmYWxzZSk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmVkaXRTZWN0aW9uLmVtaXQoeyBkYXRhOiB0aGlzLmRhdGEgfSk7XHJcbiAgICB9LCAxMDApO1xyXG4gIH1cclxuICBnZXQgZ2V0RGlyZWN0aW9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3R5bGVzPy5kaXJlY3Rpb247XHJcbiAgfVxyXG4gIGdldCBzdHlsZXNMYXlvdXQoKSB7XHJcbiAgICByZXR1cm4geyAuLi50aGlzLnN0eWxlcz8ubGF5b3V0IH0gYXMgTGF5T3V0TW9kZWw7XHJcbiAgfVxyXG4gIGdldCBpc01vYmlsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB3aW5kb3cuaW5uZXJXaWR0aCA8PSA0NzU7XHJcbiAgfVxyXG4gIGdldEp1c3RpZnlDb250ZW50KCkge1xyXG4gICAgY29uc3QgZWwgPSB0aGlzLmNhdGVnb3J5UGFyZW50Py5uYXRpdmVFbGVtZW50O1xyXG4gICAgaWYgKCFlbCkgcmV0dXJuICcnO1xyXG4gICAgY29uc3QgaXNPdmVyZmxvd2luZyA9IGVsLnNjcm9sbFdpZHRoID4gZWwuY2xpZW50V2lkdGg7XHJcbiAgICBpZiAoaXNPdmVyZmxvd2luZykge1xyXG4gICAgICByZXR1cm4gJ2ZsZXgtc3RhcnQnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuc3R5bGVzPy5sYXlvdXQ/LmFsaWduIHx8ICcnO1xyXG4gIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTG9hZGluZ1wiPlxyXG4gIDxzZWN0aW9uIGNsYXNzPVwiY29udGFpbmVyLWZsdWlkIHRvdGFsLWNvbnRhaW5lciBwLTBcIiBbaWRdPVwiZGF0YT8uaWRcIiBzaW1wb0hvdmVyIChob3ZlcmluZyk9XCJzaG93RWRpdFRhYnMoJGV2ZW50KVwiXHJcbiAgICBbYXR0ci5zdHlsZV09XCJjdXN0b21DbGFzc1wiPlxyXG4gICAgPGRpdiBbc3BhY2luZ0Fyb3VuZF09XCJzdHlsZXNMYXlvdXRcIiBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9Cb3JkZXJdPVwic3R5bGVzPy5ib3JkZXJcIiBjbGFzcz1cImJvcmRlci1yYWRpdXMtdW5zZXRcIj5cclxuICAgICAgPGRpdiBbaWRdPVwiZGF0YT8uaWRcIiAjbWFpbkNvbnRhaW5lciBbc2ltcG9BbmltYXRpb25dPVwic3R5bGVzPy5hbmltYXRpb25cIiBbc2ltcG9CYWNrZ3JvdW5kXT1cInN0eWxlcz8uYmFja2dyb3VuZFwiXHJcbiAgICAgICAgW3NpbXBvQ29ybmVyXT1cInN0eWxlcz8uY29ybmVyc1wiIGNsYXNzPVwiZC1mbGV4IHctMTAwXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiB3LTEwMFwiIFtzaW1wb092ZXJsYXldPVwic3R5bGVzPy5iYWNrZ3JvdW5kXCIgW3NpbXBvQ29ybmVyXT1cInN0eWxlcz8uY29ybmVyc1wiXHJcbiAgICAgICAgICBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9MYXlvdXRdPVwic3R5bGVzPy5sYXlvdXRcIiBbc3BhY2luZ0hvcml6b250YWxdPVwic3R5bGVzTGF5b3V0XCJcclxuICAgICAgICAgIFtzaW1wb0FuaW1hdGlvbl09XCJzdHlsZXM/LmFuaW1hdGlvblwiPlxyXG4gICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb250ZW50Py5pbnB1dFRleHRcIiBjbGFzcz1cInRleHQtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDwhLS0gPGRpdiAgY2xhc3MgPSBcImNvbnRlbnQtc2lkZVwiW2lubmVySFRNTF09XCJpdGVtLnZhbHVlIHwgc2FuaXRpemVIdG1sXCIgW25nQ2xhc3NdPVwiaXRlbS5sYWJlbCA9PT0gJ0hlYWRpbmcnID8gJ2hlYWRpbmctbGFyZ2UgbGgtMiBtYi0zJyA6ICdib2R5LWxhcmdlJ1wiPiAtLT5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVkaXQgfHwgaXRlbS52YWx1ZVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwdC0zIHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICA8c2ltcG8tdGV4dC1lZGl0b3IgWyh2YWx1ZSldPVwiaXRlbS52YWx1ZVwiIFtlZGl0YWJsZV09XCJlZGl0IHx8IGZhbHNlXCI+PC9zaW1wby10ZXh0LWVkaXRvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwhLS0gPC9kaXY+IC0tPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcnktcGFyZW50XCIgW25nQ2xhc3NdPVwieydmbGV4LXdyYXAnOiBnZXREaXJlY3Rpb24gPT0gJ0NPTFVNTid9XCJcclxuICAgICAgICAgICAgW3NpbXBvQ29udGFpbmVyQWxpZ25tZW50XT1cInN0eWxlcz8ubGF5b3V0XCIgW2lkXT1cImRhdGE/LmlkXCJcclxuICAgICAgICAgICAgW3N0eWxlLmp1c3RpZnlDb250ZW50XT1cIiFpc01vYmlsZSA/IGdldEp1c3RpZnlDb250ZW50KCkgOiAnJ1wiICNjYXRlZ29yeVBhcmVudDE+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZGF0YSBvZiByZXNwb25zZURhdGEgfCBzbGljZTpnZXRTbGljZVBhcmFtZXRlcnMoKVswXTpnZXRTbGljZVBhcmFtZXRlcnMoKVsxXTsgbGV0IGlkeCA9IGluZGV4XCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwicmVkaXJlY3RUb0xpc3RQYWdlKGRhdGEpXCIgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIHctZml0LWNvbnRlbnRcIlxyXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3ctNDggZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlcicgOiBpc01vYmlsZX1cIj5cclxuICAgICAgICAgICAgICA8aW1nIFtzdHlsZS5ib3JkZXJSYWRpdXMucHhdPVwiKHN0eWxlcz8uYm9yZGVyPy5yYWRpdXMgPz8gMSkgLyAoaXNNb2JpbGUgPyAyIDogMSlcIlxyXG4gICAgICAgICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCIoc3R5bGVzPy5jb250YWluZXJIZWlnaHQgPz8gMSkgLyAoaXNNb2JpbGUgPyAyIDogMSlcIlxyXG4gICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cIihzdHlsZXM/LmNvbnRhaW5lcldpZHRoID8/IDEpIC8gKGlzTW9iaWxlID8gMiA6IDEpXCIgbG9hZGluZz1cImxhenlcIlxyXG4gICAgICAgICAgICAgICAgb25lcnJvcj1cInRoaXMuc3JjPSdodHRwczovL2kucG9zdGltZy5jYy9oUFMySnBWMC9uby1pbWFnZS1hdmFpbGFibGUuanBnJ1wiXHJcbiAgICAgICAgICAgICAgICBbc3JjXT1cImRhdGEuaW1nVXJsPy5bMF0gPz8gJ2h0dHBzOi8vaS5wb3N0aW1nLmNjL2hQUzJKcFYwL25vLWltYWdlLWF2YWlsYWJsZS5qcGcnXCIgYWx0PVwiXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2F0ZWdvcnktaW1hZ2VcIiBbbmdDbGFzc109XCJ7J2NhdGVnb3J5LW5ldy1pbWFnZScgOiBpc01vYmlsZSAmJiBnZXREaXJlY3Rpb24gPT0gJ0NPTFVNTid9XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbnRlbnQ/LmRpc3BsYXk/LnNob3dIZWFkaW5nXCJcclxuICAgICAgICAgICAgICAgIFtzdHlsZS53aWR0aC5weF09XCIoc3R5bGVzPy5jb250YWluZXJXaWR0aCA/PyAxKSAvIChpc01vYmlsZSA/IDIgOiAxKVwiPnt7ZGF0YS5jYXRlZ29yeU5hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDwhLS0gY2xhc3M9XCJjYXRlZ29yeS1uYW1lIGJvZHktbGFyZ2VcIiAgLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0eWxlcz8uZGV2aWRlcj8uZGlzcGxheVwiPlxyXG4gICAgICA8c2ltcG8tc3ZnLWRpdmlkZXIgW2RpdmlkZXJUeXBlXT1cInN0eWxlcz8uZGV2aWRlcj8uZGV2aWRlclR5cGVcIlxyXG4gICAgICAgIFtjb2xvcl09XCJuZXh0Q29tcG9uZW50Q29sb3I/LmNvbG9yXCI+PC9zaW1wby1zdmctZGl2aWRlcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPGRpdiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGVkaXR9XCIgKm5nSWY9XCJzaG93RWRpdG9yc1wiPlxyXG4gICAgICA8c2ltcG8taG92ZXItZWxlbWVudHMgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiIFtlZGl0T3B0aW9uc109XCJlZGl0XCI+PC9zaW1wby1ob3Zlci1lbGVtZW50cz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cInNob3dEZWxldGVcIiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGRlbGV0ZX1cIj5cclxuICAgICAgPHNpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50IFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIj48L3NpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gIDwvc2VjdGlvbj5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48bmd4LXNrZWxldG9uLWxvYWRlciAqbmdJZj1cImlzTG9hZGluZ1wiIGNvdW50PVwiMVwiIGFwcGVhcmFuY2U9XCJjaXJjbGVcIiBbdGhlbWVdPVwie1xyXG4gIHdpZHRoOiAnMTAwJScsXHJcbiAgaGVpZ2h0OiAnNDB2aCcsXHJcbiAgJ2JvcmRlci1yYWRpdXMnOiAnMTBweCcsXHJcbiAgJ3Bvc2l0aW9uJzogJ3JlbGF0aXZlJyxcclxuICAncmlnaHQnOiAnNXB4J1xyXG59XCI+XHJcbjwvbmd4LXNrZWxldG9uLWxvYWRlcj4iXX0=
@@ -108,7 +108,7 @@ export class FeaturedCollectionComponent extends BaseSection {
108
108
  return this.styles?.layout?.align || '';
109
109
  }
110
110
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FeaturedCollectionComponent, deps: [{ token: i1.Router }, { token: i2.RestService }, { token: i3.EventsService }], target: i0.ɵɵFactoryTarget.Component }); }
111
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FeaturedCollectionComponent, isStandalone: true, selector: "simpo-featured-collection", inputs: { data: "data", responseData: "responseData", index: "index", edit: "edit", delete: "delete", customClass: "customClass", nextComponentColor: "nextComponentColor" }, viewQueries: [{ propertyName: "categoryParent", first: true, predicate: ["categoryParent1"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!isLoading\">\r\n <section class=\"container-fluid total-container p-0\" [id]=\"data?.id\" simpoHover (hovering)=\"showEditTabs($event)\"\r\n [attr.style]=\"customClass\">\r\n <div [spacingAround]=\"stylesLayout\" [id]=\"data?.id\" [simpoBorder]=\"styles?.border\" class=\"border-radius-unset\">\r\n <div [id]=\"data?.id\" #mainContainer [simpoAnimation]=\"styles?.animation\" [simpoBackground]=\"styles?.background\"\r\n [simpoCorner]=\"styles?.corners\" class=\"d-flex w-100\">\r\n <div class=\"d-flex flex-column w-100\" [simpoOverlay]=\"styles?.background\" [simpoCorner]=\"styles?.corners\"\r\n [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\" [spacingHorizontal]=\"stylesLayout\"\r\n [simpoAnimation]=\"styles?.animation\">\r\n <div *ngFor=\"let item of content?.inputText\" class=\"text-container\">\r\n <!-- <div class = \"content-side\"[innerHTML]=\"item.value | sanitizeHtml\" [ngClass]=\"item.label === 'Heading' ? 'heading-large lh-2 mb-3' : 'body-large'\"> -->\r\n <ng-container *ngIf=\"edit || item.value\">\r\n <div class=\"pt-3 w-100\">\r\n <simpo-text-editor [(value)]=\"item.value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n </div>\r\n </ng-container>\r\n <!-- </div> -->\r\n </div>\r\n <div class=\"category-parent\" [ngClass]=\"{'flex-wrap': getDirection == 'COLUMN'}\"\r\n [simpoContainerAlignment]=\"styles?.layout\" [id]=\"data?.id\"\r\n [style.justifyContent]=\"!isMobile ? getJustifyContent() : ''\" #categoryParent1>\r\n <div\r\n *ngFor=\"let data of responseData | slice:getSliceParameters()[0]:getSliceParameters()[1]; let idx = index\"\r\n (click)=\"redirectToListPage(data)\" class=\"d-flex flex-column align-items-center maxw-170\"\r\n [ngClass]=\"{ 'w-48 d-flex flex-column align-items-center' : isMobile}\">\r\n <img [style.borderRadius.px]=\"(styles?.border?.radius ?? 1) / (isMobile ? 2 : 1)\"\r\n [style.height.px]=\"(styles?.containerHeight ?? 1) / (isMobile ? 2 : 1)\"\r\n [style.width.px]=\"(styles?.containerWidth ?? 1) / (isMobile ? 2 : 1)\" loading=\"lazy\"\r\n onerror=\"this.src='https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\"\r\n [src]=\"data.imgUrl?.[0] ?? 'https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\" alt=\"\"\r\n class=\"category-image\" [ngClass]=\"{'category-new-image' : isMobile && getDirection == 'COLUMN'}\">\r\n <div *ngIf=\"content?.display?.showHeading\">{{data.categoryName}}</div>\r\n <!-- class=\"category-name body-large\" -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"styles?.devider?.display\">\r\n <simpo-svg-divider [dividerType]=\"styles?.devider?.deviderType\"\r\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n\r\n </section>\r\n</ng-container>\r\n\r\n<ngx-skeleton-loader *ngIf=\"isLoading\" count=\"1\" appearance=\"circle\" [theme]=\"{\r\n width: '100%',\r\n height: '40vh',\r\n 'border-radius': '10px',\r\n 'position': 'relative',\r\n 'right': '5px'\r\n}\">\r\n</ngx-skeleton-loader>", styles: [".mt-15{margin-top:15px}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.text-container{min-width:100px}.maxw-170{max-width:170px!important}.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:25px 0% 2%;display:flex;width:100%;max-width:100%;gap:25px;overflow-x:scroll;font-size:16px!important;cursor:pointer}.hovering-effect:hover{font-size:22px!important;transition:.3s ease-in-out}.category-image{display:flex;flex-wrap:wrap;margin-bottom:15px;transition-duration:.3s;-webkit-transform:scale(1);transform:scale(1);-webkit-transition:.3s ease-in-out;transition:.3s ease-in-out}.category-image:hover{-webkit-transform:scale(1.1);transform:scale(1.1)}.category-parent::-webkit-scrollbar{display:none}.span{width:141px;height:15px}.category-name{color:#222;font-size:16px;line-height:normal;font-weight:600}.border-radius-unset{border-radius:unset!important}@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}.w-48{width:48%!important}.category-new-image{height:150px!important;width:100%!important}.header{gap:7px}.category-parent{gap:8px;margin-top:15px;padding-left:0!important;padding-right:0!important;padding-top:0!important}.category-parent::-webkit-scrollbar{display:flex!important;height:3px}.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: "pipe", type: i4.SlicePipe, name: "slice" }, { 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:
111
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FeaturedCollectionComponent, isStandalone: true, selector: "simpo-featured-collection", inputs: { data: "data", responseData: "responseData", index: "index", edit: "edit", delete: "delete", customClass: "customClass", nextComponentColor: "nextComponentColor" }, viewQueries: [{ propertyName: "categoryParent", first: true, predicate: ["categoryParent1"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!isLoading\">\r\n <section class=\"container-fluid total-container p-0\" [id]=\"data?.id\" simpoHover (hovering)=\"showEditTabs($event)\"\r\n [attr.style]=\"customClass\">\r\n <div [spacingAround]=\"stylesLayout\" [id]=\"data?.id\" [simpoBorder]=\"styles?.border\" class=\"border-radius-unset\">\r\n <div [id]=\"data?.id\" #mainContainer [simpoAnimation]=\"styles?.animation\" [simpoBackground]=\"styles?.background\"\r\n [simpoCorner]=\"styles?.corners\" class=\"d-flex w-100\">\r\n <div class=\"d-flex flex-column w-100\" [simpoOverlay]=\"styles?.background\" [simpoCorner]=\"styles?.corners\"\r\n [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\" [spacingHorizontal]=\"stylesLayout\"\r\n [simpoAnimation]=\"styles?.animation\">\r\n <div *ngFor=\"let item of content?.inputText\" class=\"text-container\">\r\n <!-- <div class = \"content-side\"[innerHTML]=\"item.value | sanitizeHtml\" [ngClass]=\"item.label === 'Heading' ? 'heading-large lh-2 mb-3' : 'body-large'\"> -->\r\n <ng-container *ngIf=\"edit || item.value\">\r\n <div class=\"pt-3 w-100\">\r\n <simpo-text-editor [(value)]=\"item.value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n </div>\r\n </ng-container>\r\n <!-- </div> -->\r\n </div>\r\n <div class=\"category-parent\" [ngClass]=\"{'flex-wrap': getDirection == 'COLUMN'}\"\r\n [simpoContainerAlignment]=\"styles?.layout\" [id]=\"data?.id\"\r\n [style.justifyContent]=\"!isMobile ? getJustifyContent() : ''\" #categoryParent1>\r\n <div\r\n *ngFor=\"let data of responseData | slice:getSliceParameters()[0]:getSliceParameters()[1]; let idx = index\"\r\n (click)=\"redirectToListPage(data)\" class=\"d-flex flex-column align-items-center w-fit-content\"\r\n [ngClass]=\"{ 'w-48 d-flex flex-column align-items-center' : isMobile}\">\r\n <img [style.borderRadius.px]=\"(styles?.border?.radius ?? 1) / (isMobile ? 2 : 1)\"\r\n [style.height.px]=\"(styles?.containerHeight ?? 1) / (isMobile ? 2 : 1)\"\r\n [style.width.px]=\"(styles?.containerWidth ?? 1) / (isMobile ? 2 : 1)\" loading=\"lazy\"\r\n onerror=\"this.src='https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\"\r\n [src]=\"data.imgUrl?.[0] ?? 'https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\" alt=\"\"\r\n class=\"category-image\" [ngClass]=\"{'category-new-image' : isMobile && getDirection == 'COLUMN'}\">\r\n <div *ngIf=\"content?.display?.showHeading\"\r\n [style.width.px]=\"(styles?.containerWidth ?? 1) / (isMobile ? 2 : 1)\">{{data.categoryName}}</div>\r\n <!-- class=\"category-name body-large\" -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"styles?.devider?.display\">\r\n <simpo-svg-divider [dividerType]=\"styles?.devider?.deviderType\"\r\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n\r\n </section>\r\n</ng-container>\r\n\r\n<ngx-skeleton-loader *ngIf=\"isLoading\" count=\"1\" appearance=\"circle\" [theme]=\"{\r\n width: '100%',\r\n height: '40vh',\r\n 'border-radius': '10px',\r\n 'position': 'relative',\r\n 'right': '5px'\r\n}\">\r\n</ngx-skeleton-loader>", styles: [".mt-15{margin-top:15px}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.text-container{min-width:100px}.w-fit-content{width:fit-content!important}.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:25px 0% 2%;display:flex;width:100%;max-width:100%;gap:25px;overflow-x:scroll;font-size:16px!important;cursor:pointer}.hovering-effect:hover{font-size:22px!important;transition:.3s ease-in-out}.category-image{display:flex;flex-wrap:wrap;margin-bottom:15px;transition-duration:.3s;-webkit-transform:scale(1);transform:scale(1);-webkit-transition:.3s ease-in-out;transition:.3s ease-in-out}.category-image:hover{-webkit-transform:scale(1.1);transform:scale(1.1)}.category-parent::-webkit-scrollbar{display:none}.span{width:141px;height:15px}.category-name{color:#222;font-size:16px;line-height:normal;font-weight:600}.border-radius-unset{border-radius:unset!important}@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}.w-48{width:48%!important}.category-new-image{height:150px!important;width:100%!important}.header{gap:7px}.category-parent{gap:8px;margin-top:15px;padding-left:0!important;padding-right:0!important;padding-top:0!important}.category-parent::-webkit-scrollbar{display:flex!important;height:3px}.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: "pipe", type: i4.SlicePipe, name: "slice" }, { 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:
112
112
  //directive
113
113
  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: BorderDirective, selector: "[simpoBorder]", inputs: ["simpoBorder"] }, { 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", "type"], outputs: ["valueChange"] }, { kind: "directive", type: SpacingAroundDirective, selector: "[spacingAround]", inputs: ["spacingAround", "backgroundInfo"] }] }); }
114
114
  }
@@ -133,7 +133,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
133
133
  SanitizeHtmlPipe, SvgDividerComponent,
134
134
  TextEditorComponent,
135
135
  SpacingAroundDirective,
136
- ], template: "<ng-container *ngIf=\"!isLoading\">\r\n <section class=\"container-fluid total-container p-0\" [id]=\"data?.id\" simpoHover (hovering)=\"showEditTabs($event)\"\r\n [attr.style]=\"customClass\">\r\n <div [spacingAround]=\"stylesLayout\" [id]=\"data?.id\" [simpoBorder]=\"styles?.border\" class=\"border-radius-unset\">\r\n <div [id]=\"data?.id\" #mainContainer [simpoAnimation]=\"styles?.animation\" [simpoBackground]=\"styles?.background\"\r\n [simpoCorner]=\"styles?.corners\" class=\"d-flex w-100\">\r\n <div class=\"d-flex flex-column w-100\" [simpoOverlay]=\"styles?.background\" [simpoCorner]=\"styles?.corners\"\r\n [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\" [spacingHorizontal]=\"stylesLayout\"\r\n [simpoAnimation]=\"styles?.animation\">\r\n <div *ngFor=\"let item of content?.inputText\" class=\"text-container\">\r\n <!-- <div class = \"content-side\"[innerHTML]=\"item.value | sanitizeHtml\" [ngClass]=\"item.label === 'Heading' ? 'heading-large lh-2 mb-3' : 'body-large'\"> -->\r\n <ng-container *ngIf=\"edit || item.value\">\r\n <div class=\"pt-3 w-100\">\r\n <simpo-text-editor [(value)]=\"item.value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n </div>\r\n </ng-container>\r\n <!-- </div> -->\r\n </div>\r\n <div class=\"category-parent\" [ngClass]=\"{'flex-wrap': getDirection == 'COLUMN'}\"\r\n [simpoContainerAlignment]=\"styles?.layout\" [id]=\"data?.id\"\r\n [style.justifyContent]=\"!isMobile ? getJustifyContent() : ''\" #categoryParent1>\r\n <div\r\n *ngFor=\"let data of responseData | slice:getSliceParameters()[0]:getSliceParameters()[1]; let idx = index\"\r\n (click)=\"redirectToListPage(data)\" class=\"d-flex flex-column align-items-center maxw-170\"\r\n [ngClass]=\"{ 'w-48 d-flex flex-column align-items-center' : isMobile}\">\r\n <img [style.borderRadius.px]=\"(styles?.border?.radius ?? 1) / (isMobile ? 2 : 1)\"\r\n [style.height.px]=\"(styles?.containerHeight ?? 1) / (isMobile ? 2 : 1)\"\r\n [style.width.px]=\"(styles?.containerWidth ?? 1) / (isMobile ? 2 : 1)\" loading=\"lazy\"\r\n onerror=\"this.src='https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\"\r\n [src]=\"data.imgUrl?.[0] ?? 'https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\" alt=\"\"\r\n class=\"category-image\" [ngClass]=\"{'category-new-image' : isMobile && getDirection == 'COLUMN'}\">\r\n <div *ngIf=\"content?.display?.showHeading\">{{data.categoryName}}</div>\r\n <!-- class=\"category-name body-large\" -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"styles?.devider?.display\">\r\n <simpo-svg-divider [dividerType]=\"styles?.devider?.deviderType\"\r\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n\r\n </section>\r\n</ng-container>\r\n\r\n<ngx-skeleton-loader *ngIf=\"isLoading\" count=\"1\" appearance=\"circle\" [theme]=\"{\r\n width: '100%',\r\n height: '40vh',\r\n 'border-radius': '10px',\r\n 'position': 'relative',\r\n 'right': '5px'\r\n}\">\r\n</ngx-skeleton-loader>", styles: [".mt-15{margin-top:15px}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.text-container{min-width:100px}.maxw-170{max-width:170px!important}.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:25px 0% 2%;display:flex;width:100%;max-width:100%;gap:25px;overflow-x:scroll;font-size:16px!important;cursor:pointer}.hovering-effect:hover{font-size:22px!important;transition:.3s ease-in-out}.category-image{display:flex;flex-wrap:wrap;margin-bottom:15px;transition-duration:.3s;-webkit-transform:scale(1);transform:scale(1);-webkit-transition:.3s ease-in-out;transition:.3s ease-in-out}.category-image:hover{-webkit-transform:scale(1.1);transform:scale(1.1)}.category-parent::-webkit-scrollbar{display:none}.span{width:141px;height:15px}.category-name{color:#222;font-size:16px;line-height:normal;font-weight:600}.border-radius-unset{border-radius:unset!important}@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}.w-48{width:48%!important}.category-new-image{height:150px!important;width:100%!important}.header{gap:7px}.category-parent{gap:8px;margin-top:15px;padding-left:0!important;padding-right:0!important;padding-top:0!important}.category-parent::-webkit-scrollbar{display:flex!important;height:3px}.span{width:70.5px;height:7.5px}.category-name{font-size:12px}}\n"] }]
136
+ ], template: "<ng-container *ngIf=\"!isLoading\">\r\n <section class=\"container-fluid total-container p-0\" [id]=\"data?.id\" simpoHover (hovering)=\"showEditTabs($event)\"\r\n [attr.style]=\"customClass\">\r\n <div [spacingAround]=\"stylesLayout\" [id]=\"data?.id\" [simpoBorder]=\"styles?.border\" class=\"border-radius-unset\">\r\n <div [id]=\"data?.id\" #mainContainer [simpoAnimation]=\"styles?.animation\" [simpoBackground]=\"styles?.background\"\r\n [simpoCorner]=\"styles?.corners\" class=\"d-flex w-100\">\r\n <div class=\"d-flex flex-column w-100\" [simpoOverlay]=\"styles?.background\" [simpoCorner]=\"styles?.corners\"\r\n [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\" [spacingHorizontal]=\"stylesLayout\"\r\n [simpoAnimation]=\"styles?.animation\">\r\n <div *ngFor=\"let item of content?.inputText\" class=\"text-container\">\r\n <!-- <div class = \"content-side\"[innerHTML]=\"item.value | sanitizeHtml\" [ngClass]=\"item.label === 'Heading' ? 'heading-large lh-2 mb-3' : 'body-large'\"> -->\r\n <ng-container *ngIf=\"edit || item.value\">\r\n <div class=\"pt-3 w-100\">\r\n <simpo-text-editor [(value)]=\"item.value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n </div>\r\n </ng-container>\r\n <!-- </div> -->\r\n </div>\r\n <div class=\"category-parent\" [ngClass]=\"{'flex-wrap': getDirection == 'COLUMN'}\"\r\n [simpoContainerAlignment]=\"styles?.layout\" [id]=\"data?.id\"\r\n [style.justifyContent]=\"!isMobile ? getJustifyContent() : ''\" #categoryParent1>\r\n <div\r\n *ngFor=\"let data of responseData | slice:getSliceParameters()[0]:getSliceParameters()[1]; let idx = index\"\r\n (click)=\"redirectToListPage(data)\" class=\"d-flex flex-column align-items-center w-fit-content\"\r\n [ngClass]=\"{ 'w-48 d-flex flex-column align-items-center' : isMobile}\">\r\n <img [style.borderRadius.px]=\"(styles?.border?.radius ?? 1) / (isMobile ? 2 : 1)\"\r\n [style.height.px]=\"(styles?.containerHeight ?? 1) / (isMobile ? 2 : 1)\"\r\n [style.width.px]=\"(styles?.containerWidth ?? 1) / (isMobile ? 2 : 1)\" loading=\"lazy\"\r\n onerror=\"this.src='https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\"\r\n [src]=\"data.imgUrl?.[0] ?? 'https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\" alt=\"\"\r\n class=\"category-image\" [ngClass]=\"{'category-new-image' : isMobile && getDirection == 'COLUMN'}\">\r\n <div *ngIf=\"content?.display?.showHeading\"\r\n [style.width.px]=\"(styles?.containerWidth ?? 1) / (isMobile ? 2 : 1)\">{{data.categoryName}}</div>\r\n <!-- class=\"category-name body-large\" -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"styles?.devider?.display\">\r\n <simpo-svg-divider [dividerType]=\"styles?.devider?.deviderType\"\r\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n\r\n </section>\r\n</ng-container>\r\n\r\n<ngx-skeleton-loader *ngIf=\"isLoading\" count=\"1\" appearance=\"circle\" [theme]=\"{\r\n width: '100%',\r\n height: '40vh',\r\n 'border-radius': '10px',\r\n 'position': 'relative',\r\n 'right': '5px'\r\n}\">\r\n</ngx-skeleton-loader>", styles: [".mt-15{margin-top:15px}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.text-container{min-width:100px}.w-fit-content{width:fit-content!important}.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:25px 0% 2%;display:flex;width:100%;max-width:100%;gap:25px;overflow-x:scroll;font-size:16px!important;cursor:pointer}.hovering-effect:hover{font-size:22px!important;transition:.3s ease-in-out}.category-image{display:flex;flex-wrap:wrap;margin-bottom:15px;transition-duration:.3s;-webkit-transform:scale(1);transform:scale(1);-webkit-transition:.3s ease-in-out;transition:.3s ease-in-out}.category-image:hover{-webkit-transform:scale(1.1);transform:scale(1.1)}.category-parent::-webkit-scrollbar{display:none}.span{width:141px;height:15px}.category-name{color:#222;font-size:16px;line-height:normal;font-weight:600}.border-radius-unset{border-radius:unset!important}@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}.w-48{width:48%!important}.category-new-image{height:150px!important;width:100%!important}.header{gap:7px}.category-parent{gap:8px;margin-top:15px;padding-left:0!important;padding-right:0!important;padding-top:0!important}.category-parent::-webkit-scrollbar{display:flex!important;height:3px}.span{width:70.5px;height:7.5px}.category-name{font-size:12px}}\n"] }]
137
137
  }], ctorParameters: () => [{ type: i1.Router }, { type: i2.RestService }, { type: i3.EventsService }], propDecorators: { categoryParent: [{
138
138
  type: ViewChild,
139
139
  args: ['categoryParent1', { static: false }]
@@ -152,4 +152,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
152
152
  }], nextComponentColor: [{
153
153
  type: Input
154
154
  }] } });
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZWQtY29sbGVjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2Vjb21tZXJjZS9zZWN0aW9ucy9mZWF0dXJlZC1jYXRlZ29yeS9mZWF0dXJlZC1jb2xsZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvZWNvbW1lcmNlL3NlY3Rpb25zL2ZlYXR1cmVkLWNhdGVnb3J5L2ZlYXR1cmVkLWNhdGVnb3J5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9DLEtBQUssRUFBZSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0csT0FBTyxFQUFFLFlBQVksRUFBcUIsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFL0UsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDMUcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FB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QUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ3RDLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsa0JBQWtCO3NCQUExQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgSW5wdXQsIFBMQVRGT1JNX0lELCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBbmltYXRpb25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvYW5pbWF0aW9uLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEJhY2tncm91bmREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvYmFja2dyb3VuZC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBCb3JkZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvYm9yZGVyLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvcm5lckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9jb3JuZXItZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvaG92ZXItZWxlbWVudC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBPdmVybGF5RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL292ZXJsYXktZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29udGVudEZpdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9jb250ZW50LWZpdC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi8uLi8uLi9zZXJ2aWNlcy9ldmVudHMuc2VydmljZSc7XHJcbmltcG9ydCB7IFRleHRCYWNrZ3JvdW5kRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL3RleHQtYmFja2dyb3VuZC1kaXJlY3RpdmUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2ltcG9Db21wb25lbnRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2luZGV4JztcclxuaW1wb3J0IEJhc2VTZWN0aW9uIGZyb20gJy4uLy4uLy4uL3NlY3Rpb25zL0Jhc2VTZWN0aW9uJztcclxuaW1wb3J0IHsgQ29sb3JEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvY29sb3IuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRmVhdHVyZWRDYXRlZ29yeUNvbnRlbnRNb2RhbCwgRmVhdHVyZWRDYXRlZ29yeU1vZGFsLCBGZWF0dXJlZENhdGVnb3J5U3R5bGVzTW9kZWwgfSBmcm9tICcuL2ZlYXR1cmVkLWNhdGVnb3J5Lm1vZGFsJztcclxuaW1wb3J0IHsgQ2F0ZWdvcnkgfSBmcm9tICcuLi8uLi9zdHlsZXMvY2F0ZWdvcnkubW9kYWwnO1xyXG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3Jlc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9zdHlsZXMvQ29sbGVjdGlvbi5tb2RhbCc7XHJcbmltcG9ydCB7IFNhbml0aXplSHRtbFBpcGUgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zYW5pdGl6ZUh0bWwnO1xyXG5pbXBvcnQgeyBTcGFjaW5nSG9yaXpvbnRhbERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9zcGFjaW5nLWhvcml6b250YWwuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2ltcG9Db250YWluZXJBbGlnbWVudCB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9jb250YWluZXItYWxpZ25tZW50LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEJhY2tncm91bmRNb2RlbCwgQmFubmVyU3R5bGVzTW9kZWwsIExheU91dE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcclxuaW1wb3J0IHsgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IFN2Z0RpdmlkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9lbGVtZW50cy9zdmctZGl2aWRlci9zdmctZGl2aWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZXh0RWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZWxlbWVudHMvdGV4dC1lZGl0b3IvdGV4dC1lZGl0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3BhY2luZ0Fyb3VuZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9zcGFjaW5nLWFyb3VuZC5kaXJlY3RpdmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby1mZWF0dXJlZC1jb2xsZWN0aW9uJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgU2ltcG9Db21wb25lbnRNb2R1bGUsXHJcblxyXG4gICAgLy9kaXJlY3RpdmVcclxuICAgIEFuaW1hdGlvbkRpcmVjdGl2ZSxcclxuICAgIENvbnRlbnRGaXREaXJlY3RpdmUsXHJcbiAgICBCYWNrZ3JvdW5kRGlyZWN0aXZlLFxyXG4gICAgQm9yZGVyRGlyZWN0aXZlLFxyXG4gICAgU2ltcG9Db250YWluZXJBbGlnbWVudCxcclxuICAgIFNwYWNpbmdIb3Jpem9udGFsRGlyZWN0aXZlLFxyXG4gICAgQ29ybmVyRGlyZWN0aXZlLFxyXG4gICAgSG92ZXJEaXJlY3RpdmUsXHJcbiAgICBPdmVybGF5RGlyZWN0aXZlLFxyXG4gICAgVGV4dEJhY2tncm91bmREaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBDb2xvckRpcmVjdGl2ZSxcclxuICAgIFNhbml0aXplSHRtbFBpcGUsIFN2Z0RpdmlkZXJDb21wb25lbnQsXHJcbiAgICBUZXh0RWRpdG9yQ29tcG9uZW50LFxyXG4gICAgU3BhY2luZ0Fyb3VuZERpcmVjdGl2ZSxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mZWF0dXJlZC1jYXRlZ29yeS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2ZlYXR1cmVkLWNhdGVnb3J5LmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGZWF0dXJlZENvbGxlY3Rpb25Db21wb25lbnQgZXh0ZW5kcyBCYXNlU2VjdGlvbiB7XHJcbiAgQFZpZXdDaGlsZCgnY2F0ZWdvcnlQYXJlbnQxJywgeyBzdGF0aWM6IGZhbHNlIH0pIGNhdGVnb3J5UGFyZW50ITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgQElucHV0KCkgZGF0YT86IEZlYXR1cmVkQ2F0ZWdvcnlNb2RhbDtcclxuICBASW5wdXQoKSByZXNwb25zZURhdGE/OiBDYXRlZ29yeVtdXHJcbiAgQElucHV0KCkgaW5kZXg/OiBudW1iZXI7XHJcbiAgQElucHV0KCkgZWRpdD86IGJvb2xlYW47XHJcbiAgQElucHV0KCkgZGVsZXRlPzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBjdXN0b21DbGFzcz86IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgbmV4dENvbXBvbmVudENvbG9yPzogQmFja2dyb3VuZE1vZGVsO1xyXG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNvbnRlbnQ/OiBGZWF0dXJlZENhdGVnb3J5Q29udGVudE1vZGFsO1xyXG4gIHN0eWxlcz86IEZlYXR1cmVkQ2F0ZWdvcnlTdHlsZXNNb2RlbDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXN0U2VydmljZTogUmVzdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ldmVudFNlcnZpY2U6IEV2ZW50c1NlcnZpY2UsXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpXHJcbiAgfVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5jb250ZW50ID0gdGhpcy5kYXRhPy5jb250ZW50O1xyXG4gICAgdGhpcy5zdHlsZXMgPSB0aGlzLmRhdGE/LnN0eWxlcztcclxuICAgIHRoaXMuZ2V0Q29sbGVjdGlvbnNJZHMoKTtcclxuICAgIHRoaXMuX2V2ZW50U2VydmljZS5zaG93TG9hZGluZ1NjcmVlbi5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gcmVzcG9uc2U7XHJcbiAgICB9KVxyXG4gICAgLy8gdGhpcy5fZXZlbnRTZXJ2aWNlLndyYXBEaXJlY3Rpb24uc3Vic2NyaWJlKChyZXNwb25zZSk9PiB7XHJcbiAgICAvLyAgIGlmIChyZXNwb25zZSA9PT0gdGhpcy5kYXRhPy5pZCAmJiB0aGlzLnN0eWxlcylcclxuICAgIC8vICAgICB0aGlzLnN0eWxlcy5kaXJlY3Rpb24gPSByZXNwb25zZSBhcyBcIlJPV1wiIHwgXCJDT0xVTU5cIjtcclxuICAgIC8vIH0pXHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UuY29sbGVjdGlvbnNMaXN0RXZlbnQuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICB0aGlzLmdldENvbGxlY3Rpb25zSWRzKCk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0U2xpY2VQYXJhbWV0ZXJzKCkge1xyXG4gICAgcmV0dXJuIFswLCAodGhpcy5zdHlsZXM/Lm1heGltdW1Qcm9kdWN0IHx8IDApXTtcclxuICB9XHJcbiAgZ2V0Q29sbGVjdGlvbnNJZHMoKSB7XHJcbiAgICBpZiAoIXRoaXMuY29udGVudD8uY29sbGVjdGlvbklkcylcclxuICAgICAgcmV0dXJuO1xyXG4gICAgdGhpcy5yZXN0U2VydmljZS5nZXRDb2xsZWN0aW9uQnlJZHModGhpcy5jb250ZW50Py5jb2xsZWN0aW9uSWRzKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5yZXNwb25zZURhdGEgPSByZXNwb25zZS5maWx0ZXIoKGNhdGVnb3J5OiBhbnkpID0+IGNhdGVnb3J5LmZlYXR1cmVkQ29sbGVjdGlvbiB8fCB0cnVlKS5tYXAoKGNvbGxlY3Rpb246IENvbGxlY3Rpb24pID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgLi4uY29sbGVjdGlvbixcclxuICAgICAgICAgIGNhdGVnb3J5TmFtZTogY29sbGVjdGlvbi5jb2xsZWN0aW9uTmFtZSxcclxuICAgICAgICAgIGNhdGVnb3J5SWQ6IGNvbGxlY3Rpb24uY29sbGVjdGlvbklkXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICB0aGlzLmNvbnRlbnQ/LmNvbGxlY3Rpb25JZHM/LmZvckVhY2goKGlkOiBzdHJpbmcsIGNvbGxlY3Rpb25JbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgbGV0IGluZGV4ID0gLTE7XHJcbiAgICAgICAgdGhpcy5yZXNwb25zZURhdGE/LmZvckVhY2goKGRhdGE6IGFueSwgaWR4KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZGF0YS5jb2xsZWN0aW9uSWQgPT0gaWQpXHJcbiAgICAgICAgICAgIGluZGV4ID0gaWR4O1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgdGhpcy5kcm9wQ29sbGVjdGlvbihpbmRleCwgY29sbGVjdGlvbkluZGV4KTtcclxuICAgICAgfSlcclxuICAgIH0pXHJcblxyXG4gIH1cclxuICBkcm9wQ29sbGVjdGlvbihzdGFydElkeDogbnVtYmVyLCBlbmRJZHg6IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMucmVzcG9uc2VEYXRhKVxyXG4gICAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5yZXNwb25zZURhdGEsIHN0YXJ0SWR4LCBlbmRJZHgpO1xyXG4gIH1cclxuICByZWRpcmVjdFRvTGlzdFBhZ2UoY29sbGVjdGlvbjogYW55KSB7XHJcbiAgICBjb2xsZWN0aW9uID0gY29sbGVjdGlvbi5jb2xsZWN0aW9uTmFtZTtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2xpc3QnXSwgeyBxdWVyeVBhcmFtczogeyBjb2xsZWN0aW9uczogY29sbGVjdGlvbiB9IH0pO1xyXG4gIH1cclxuICBnZXQgc3R5bGVzTGF5b3V0KCkge1xyXG4gICAgcmV0dXJuIHsgLi4udGhpcy5zdHlsZXM/LmxheW91dCB9IGFzIExheU91dE1vZGVsO1xyXG4gIH1cclxuICBnZXQgZ2V0RGlyZWN0aW9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3R5bGVzPy5kaXJlY3Rpb247XHJcbiAgfVxyXG4gIGdldCBpc01vYmlsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB3aW5kb3cuaW5uZXJXaWR0aCA8PSA0NzU7XHJcbiAgfVxyXG4gIGVkaXRTZWN0aW9uKCkge1xyXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLnRvZ2dsZUVkaXRvckV2ZW50LmVtaXQoZmFsc2UpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX2V2ZW50U2VydmljZS5lZGl0U2VjdGlvbi5lbWl0KHsgZGF0YTogdGhpcy5kYXRhIH0pO1xyXG4gICAgfSwgMTAwKTtcclxuICB9XHJcbiAgZ2V0SnVzdGlmeUNvbnRlbnQoKSB7XHJcbiAgICBjb25zdCBlbCA9IHRoaXMuY2F0ZWdvcnlQYXJlbnQ/Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBpZiAoIWVsKSByZXR1cm4gJyc7XHJcbiAgICBjb25zdCBpc092ZXJmbG93aW5nID0gZWwuc2Nyb2xsV2lkdGggPiBlbC5jbGllbnRXaWR0aDtcclxuICAgIGlmIChpc092ZXJmbG93aW5nKSB7XHJcbiAgICAgIHJldHVybiAnZmxleC1zdGFydCc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5zdHlsZXM/LmxheW91dD8uYWxpZ24gfHwgJyc7XHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNMb2FkaW5nXCI+XHJcbiAgPHNlY3Rpb24gY2xhc3M9XCJjb250YWluZXItZmx1aWQgdG90YWwtY29udGFpbmVyIHAtMFwiIFtpZF09XCJkYXRhPy5pZFwiIHNpbXBvSG92ZXIgKGhvdmVyaW5nKT1cInNob3dFZGl0VGFicygkZXZlbnQpXCJcclxuICAgIFthdHRyLnN0eWxlXT1cImN1c3RvbUNsYXNzXCI+XHJcbiAgICA8ZGl2IFtzcGFjaW5nQXJvdW5kXT1cInN0eWxlc0xheW91dFwiIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0JvcmRlcl09XCJzdHlsZXM/LmJvcmRlclwiIGNsYXNzPVwiYm9yZGVyLXJhZGl1cy11bnNldFwiPlxyXG4gICAgICA8ZGl2IFtpZF09XCJkYXRhPy5pZFwiICNtYWluQ29udGFpbmVyIFtzaW1wb0FuaW1hdGlvbl09XCJzdHlsZXM/LmFuaW1hdGlvblwiIFtzaW1wb0JhY2tncm91bmRdPVwic3R5bGVzPy5iYWNrZ3JvdW5kXCJcclxuICAgICAgICBbc2ltcG9Db3JuZXJdPVwic3R5bGVzPy5jb3JuZXJzXCIgY2xhc3M9XCJkLWZsZXggdy0xMDBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIHctMTAwXCIgW3NpbXBvT3ZlcmxheV09XCJzdHlsZXM/LmJhY2tncm91bmRcIiBbc2ltcG9Db3JuZXJdPVwic3R5bGVzPy5jb3JuZXJzXCJcclxuICAgICAgICAgIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0xheW91dF09XCJzdHlsZXM/LmxheW91dFwiIFtzcGFjaW5nSG9yaXpvbnRhbF09XCJzdHlsZXNMYXlvdXRcIlxyXG4gICAgICAgICAgW3NpbXBvQW5pbWF0aW9uXT1cInN0eWxlcz8uYW5pbWF0aW9uXCI+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbnRlbnQ/LmlucHV0VGV4dFwiIGNsYXNzPVwidGV4dC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2ICBjbGFzcyA9IFwiY29udGVudC1zaWRlXCJbaW5uZXJIVE1MXT1cIml0ZW0udmFsdWUgfCBzYW5pdGl6ZUh0bWxcIiBbbmdDbGFzc109XCJpdGVtLmxhYmVsID09PSAnSGVhZGluZycgPyAnaGVhZGluZy1sYXJnZSBsaC0yIG1iLTMnIDogJ2JvZHktbGFyZ2UnXCI+IC0tPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWRpdCB8fCBpdGVtLnZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB0LTMgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgIDxzaW1wby10ZXh0LWVkaXRvciBbKHZhbHVlKV09XCJpdGVtLnZhbHVlXCIgW2VkaXRhYmxlXT1cImVkaXQgfHwgZmFsc2VcIj48L3NpbXBvLXRleHQtZWRpdG9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPCEtLSA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yeS1wYXJlbnRcIiBbbmdDbGFzc109XCJ7J2ZsZXgtd3JhcCc6IGdldERpcmVjdGlvbiA9PSAnQ09MVU1OJ31cIlxyXG4gICAgICAgICAgICBbc2ltcG9Db250YWluZXJBbGlnbm1lbnRdPVwic3R5bGVzPy5sYXlvdXRcIiBbaWRdPVwiZGF0YT8uaWRcIlxyXG4gICAgICAgICAgICBbc3R5bGUuanVzdGlmeUNvbnRlbnRdPVwiIWlzTW9iaWxlID8gZ2V0SnVzdGlmeUNvbnRlbnQoKSA6ICcnXCIgI2NhdGVnb3J5UGFyZW50MT5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBkYXRhIG9mIHJlc3BvbnNlRGF0YSB8IHNsaWNlOmdldFNsaWNlUGFyYW1ldGVycygpWzBdOmdldFNsaWNlUGFyYW1ldGVycygpWzFdOyBsZXQgaWR4ID0gaW5kZXhcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJyZWRpcmVjdFRvTGlzdFBhZ2UoZGF0YSlcIiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIgbWF4dy0xNzBcIlxyXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3ctNDggZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlcicgOiBpc01vYmlsZX1cIj5cclxuICAgICAgICAgICAgICA8aW1nIFtzdHlsZS5ib3JkZXJSYWRpdXMucHhdPVwiKHN0eWxlcz8uYm9yZGVyPy5yYWRpdXMgPz8gMSkgLyAoaXNNb2JpbGUgPyAyIDogMSlcIlxyXG4gICAgICAgICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCIoc3R5bGVzPy5jb250YWluZXJIZWlnaHQgPz8gMSkgLyAoaXNNb2JpbGUgPyAyIDogMSlcIlxyXG4gICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cIihzdHlsZXM/LmNvbnRhaW5lcldpZHRoID8/IDEpIC8gKGlzTW9iaWxlID8gMiA6IDEpXCIgbG9hZGluZz1cImxhenlcIlxyXG4gICAgICAgICAgICAgICAgb25lcnJvcj1cInRoaXMuc3JjPSdodHRwczovL2kucG9zdGltZy5jYy9oUFMySnBWMC9uby1pbWFnZS1hdmFpbGFibGUuanBnJ1wiXHJcbiAgICAgICAgICAgICAgICBbc3JjXT1cImRhdGEuaW1nVXJsPy5bMF0gPz8gJ2h0dHBzOi8vaS5wb3N0aW1nLmNjL2hQUzJKcFYwL25vLWltYWdlLWF2YWlsYWJsZS5qcGcnXCIgYWx0PVwiXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2F0ZWdvcnktaW1hZ2VcIiBbbmdDbGFzc109XCJ7J2NhdGVnb3J5LW5ldy1pbWFnZScgOiBpc01vYmlsZSAmJiBnZXREaXJlY3Rpb24gPT0gJ0NPTFVNTid9XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbnRlbnQ/LmRpc3BsYXk/LnNob3dIZWFkaW5nXCI+e3tkYXRhLmNhdGVnb3J5TmFtZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgPCEtLSBjbGFzcz1cImNhdGVnb3J5LW5hbWUgYm9keS1sYXJnZVwiICAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3R5bGVzPy5kZXZpZGVyPy5kaXNwbGF5XCI+XHJcbiAgICAgIDxzaW1wby1zdmctZGl2aWRlciBbZGl2aWRlclR5cGVdPVwic3R5bGVzPy5kZXZpZGVyPy5kZXZpZGVyVHlwZVwiXHJcbiAgICAgICAgW2NvbG9yXT1cIm5leHRDb21wb25lbnRDb2xvcj8uY29sb3JcIj48L3NpbXBvLXN2Zy1kaXZpZGVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZWRpdH1cIiAqbmdJZj1cInNob3dFZGl0b3JzXCI+XHJcbiAgICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIj48L3NpbXBvLWhvdmVyLWVsZW1lbnRzPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0RlbGV0ZVwiIFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZGVsZXRlfVwiPlxyXG4gICAgICA8c2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiPjwvc2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQ+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgPC9zZWN0aW9uPlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZ3gtc2tlbGV0b24tbG9hZGVyICpuZ0lmPVwiaXNMb2FkaW5nXCIgY291bnQ9XCIxXCIgYXBwZWFyYW5jZT1cImNpcmNsZVwiIFt0aGVtZV09XCJ7XHJcbiAgd2lkdGg6ICcxMDAlJyxcclxuICBoZWlnaHQ6ICc0MHZoJyxcclxuICAnYm9yZGVyLXJhZGl1cyc6ICcxMHB4JyxcclxuICAncG9zaXRpb24nOiAncmVsYXRpdmUnLFxyXG4gICdyaWdodCc6ICc1cHgnXHJcbn1cIj5cclxuPC9uZ3gtc2tlbGV0b24tbG9hZGVyPiJdfQ==
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZWQtY29sbGVjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2Vjb21tZXJjZS9zZWN0aW9ucy9mZWF0dXJlZC1jYXRlZ29yeS9mZWF0dXJlZC1jb2xsZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvZWNvbW1lcmNlL3NlY3Rpb25zL2ZlYXR1cmVkLWNhdGVnb3J5L2ZlYXR1cmVkLWNhdGVnb3J5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9DLEtBQUssRUFBZSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0csT0FBTyxFQUFFLFlBQVksRUFBcUIsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFL0UsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDMUcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FB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QUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ3RDLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsa0JBQWtCO3NCQUExQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgSW5wdXQsIFBMQVRGT1JNX0lELCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBbmltYXRpb25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvYW5pbWF0aW9uLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEJhY2tncm91bmREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvYmFja2dyb3VuZC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBCb3JkZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvYm9yZGVyLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvcm5lckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9jb3JuZXItZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvaG92ZXItZWxlbWVudC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBPdmVybGF5RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL292ZXJsYXktZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29udGVudEZpdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9jb250ZW50LWZpdC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi8uLi8uLi9zZXJ2aWNlcy9ldmVudHMuc2VydmljZSc7XHJcbmltcG9ydCB7IFRleHRCYWNrZ3JvdW5kRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL3RleHQtYmFja2dyb3VuZC1kaXJlY3RpdmUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2ltcG9Db21wb25lbnRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2luZGV4JztcclxuaW1wb3J0IEJhc2VTZWN0aW9uIGZyb20gJy4uLy4uLy4uL3NlY3Rpb25zL0Jhc2VTZWN0aW9uJztcclxuaW1wb3J0IHsgQ29sb3JEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvY29sb3IuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRmVhdHVyZWRDYXRlZ29yeUNvbnRlbnRNb2RhbCwgRmVhdHVyZWRDYXRlZ29yeU1vZGFsLCBGZWF0dXJlZENhdGVnb3J5U3R5bGVzTW9kZWwgfSBmcm9tICcuL2ZlYXR1cmVkLWNhdGVnb3J5Lm1vZGFsJztcclxuaW1wb3J0IHsgQ2F0ZWdvcnkgfSBmcm9tICcuLi8uLi9zdHlsZXMvY2F0ZWdvcnkubW9kYWwnO1xyXG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3Jlc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9zdHlsZXMvQ29sbGVjdGlvbi5tb2RhbCc7XHJcbmltcG9ydCB7IFNhbml0aXplSHRtbFBpcGUgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zYW5pdGl6ZUh0bWwnO1xyXG5pbXBvcnQgeyBTcGFjaW5nSG9yaXpvbnRhbERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9zcGFjaW5nLWhvcml6b250YWwuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2ltcG9Db250YWluZXJBbGlnbWVudCB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9jb250YWluZXItYWxpZ25tZW50LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEJhY2tncm91bmRNb2RlbCwgQmFubmVyU3R5bGVzTW9kZWwsIExheU91dE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcclxuaW1wb3J0IHsgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IFN2Z0RpdmlkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9lbGVtZW50cy9zdmctZGl2aWRlci9zdmctZGl2aWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZXh0RWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZWxlbWVudHMvdGV4dC1lZGl0b3IvdGV4dC1lZGl0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3BhY2luZ0Fyb3VuZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9zcGFjaW5nLWFyb3VuZC5kaXJlY3RpdmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby1mZWF0dXJlZC1jb2xsZWN0aW9uJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgU2ltcG9Db21wb25lbnRNb2R1bGUsXHJcblxyXG4gICAgLy9kaXJlY3RpdmVcclxuICAgIEFuaW1hdGlvbkRpcmVjdGl2ZSxcclxuICAgIENvbnRlbnRGaXREaXJlY3RpdmUsXHJcbiAgICBCYWNrZ3JvdW5kRGlyZWN0aXZlLFxyXG4gICAgQm9yZGVyRGlyZWN0aXZlLFxyXG4gICAgU2ltcG9Db250YWluZXJBbGlnbWVudCxcclxuICAgIFNwYWNpbmdIb3Jpem9udGFsRGlyZWN0aXZlLFxyXG4gICAgQ29ybmVyRGlyZWN0aXZlLFxyXG4gICAgSG92ZXJEaXJlY3RpdmUsXHJcbiAgICBPdmVybGF5RGlyZWN0aXZlLFxyXG4gICAgVGV4dEJhY2tncm91bmREaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBDb2xvckRpcmVjdGl2ZSxcclxuICAgIFNhbml0aXplSHRtbFBpcGUsIFN2Z0RpdmlkZXJDb21wb25lbnQsXHJcbiAgICBUZXh0RWRpdG9yQ29tcG9uZW50LFxyXG4gICAgU3BhY2luZ0Fyb3VuZERpcmVjdGl2ZSxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mZWF0dXJlZC1jYXRlZ29yeS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2ZlYXR1cmVkLWNhdGVnb3J5LmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGZWF0dXJlZENvbGxlY3Rpb25Db21wb25lbnQgZXh0ZW5kcyBCYXNlU2VjdGlvbiB7XHJcbiAgQFZpZXdDaGlsZCgnY2F0ZWdvcnlQYXJlbnQxJywgeyBzdGF0aWM6IGZhbHNlIH0pIGNhdGVnb3J5UGFyZW50ITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgQElucHV0KCkgZGF0YT86IEZlYXR1cmVkQ2F0ZWdvcnlNb2RhbDtcclxuICBASW5wdXQoKSByZXNwb25zZURhdGE/OiBDYXRlZ29yeVtdXHJcbiAgQElucHV0KCkgaW5kZXg/OiBudW1iZXI7XHJcbiAgQElucHV0KCkgZWRpdD86IGJvb2xlYW47XHJcbiAgQElucHV0KCkgZGVsZXRlPzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBjdXN0b21DbGFzcz86IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgbmV4dENvbXBvbmVudENvbG9yPzogQmFja2dyb3VuZE1vZGVsO1xyXG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNvbnRlbnQ/OiBGZWF0dXJlZENhdGVnb3J5Q29udGVudE1vZGFsO1xyXG4gIHN0eWxlcz86IEZlYXR1cmVkQ2F0ZWdvcnlTdHlsZXNNb2RlbDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXN0U2VydmljZTogUmVzdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ldmVudFNlcnZpY2U6IEV2ZW50c1NlcnZpY2UsXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpXHJcbiAgfVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5jb250ZW50ID0gdGhpcy5kYXRhPy5jb250ZW50O1xyXG4gICAgdGhpcy5zdHlsZXMgPSB0aGlzLmRhdGE/LnN0eWxlcztcclxuICAgIHRoaXMuZ2V0Q29sbGVjdGlvbnNJZHMoKTtcclxuICAgIHRoaXMuX2V2ZW50U2VydmljZS5zaG93TG9hZGluZ1NjcmVlbi5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gcmVzcG9uc2U7XHJcbiAgICB9KVxyXG4gICAgLy8gdGhpcy5fZXZlbnRTZXJ2aWNlLndyYXBEaXJlY3Rpb24uc3Vic2NyaWJlKChyZXNwb25zZSk9PiB7XHJcbiAgICAvLyAgIGlmIChyZXNwb25zZSA9PT0gdGhpcy5kYXRhPy5pZCAmJiB0aGlzLnN0eWxlcylcclxuICAgIC8vICAgICB0aGlzLnN0eWxlcy5kaXJlY3Rpb24gPSByZXNwb25zZSBhcyBcIlJPV1wiIHwgXCJDT0xVTU5cIjtcclxuICAgIC8vIH0pXHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UuY29sbGVjdGlvbnNMaXN0RXZlbnQuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICB0aGlzLmdldENvbGxlY3Rpb25zSWRzKCk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0U2xpY2VQYXJhbWV0ZXJzKCkge1xyXG4gICAgcmV0dXJuIFswLCAodGhpcy5zdHlsZXM/Lm1heGltdW1Qcm9kdWN0IHx8IDApXTtcclxuICB9XHJcbiAgZ2V0Q29sbGVjdGlvbnNJZHMoKSB7XHJcbiAgICBpZiAoIXRoaXMuY29udGVudD8uY29sbGVjdGlvbklkcylcclxuICAgICAgcmV0dXJuO1xyXG4gICAgdGhpcy5yZXN0U2VydmljZS5nZXRDb2xsZWN0aW9uQnlJZHModGhpcy5jb250ZW50Py5jb2xsZWN0aW9uSWRzKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5yZXNwb25zZURhdGEgPSByZXNwb25zZS5maWx0ZXIoKGNhdGVnb3J5OiBhbnkpID0+IGNhdGVnb3J5LmZlYXR1cmVkQ29sbGVjdGlvbiB8fCB0cnVlKS5tYXAoKGNvbGxlY3Rpb246IENvbGxlY3Rpb24pID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgLi4uY29sbGVjdGlvbixcclxuICAgICAgICAgIGNhdGVnb3J5TmFtZTogY29sbGVjdGlvbi5jb2xsZWN0aW9uTmFtZSxcclxuICAgICAgICAgIGNhdGVnb3J5SWQ6IGNvbGxlY3Rpb24uY29sbGVjdGlvbklkXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICB0aGlzLmNvbnRlbnQ/LmNvbGxlY3Rpb25JZHM/LmZvckVhY2goKGlkOiBzdHJpbmcsIGNvbGxlY3Rpb25JbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgbGV0IGluZGV4ID0gLTE7XHJcbiAgICAgICAgdGhpcy5yZXNwb25zZURhdGE/LmZvckVhY2goKGRhdGE6IGFueSwgaWR4KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZGF0YS5jb2xsZWN0aW9uSWQgPT0gaWQpXHJcbiAgICAgICAgICAgIGluZGV4ID0gaWR4O1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgdGhpcy5kcm9wQ29sbGVjdGlvbihpbmRleCwgY29sbGVjdGlvbkluZGV4KTtcclxuICAgICAgfSlcclxuICAgIH0pXHJcblxyXG4gIH1cclxuICBkcm9wQ29sbGVjdGlvbihzdGFydElkeDogbnVtYmVyLCBlbmRJZHg6IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMucmVzcG9uc2VEYXRhKVxyXG4gICAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5yZXNwb25zZURhdGEsIHN0YXJ0SWR4LCBlbmRJZHgpO1xyXG4gIH1cclxuICByZWRpcmVjdFRvTGlzdFBhZ2UoY29sbGVjdGlvbjogYW55KSB7XHJcbiAgICBjb2xsZWN0aW9uID0gY29sbGVjdGlvbi5jb2xsZWN0aW9uTmFtZTtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2xpc3QnXSwgeyBxdWVyeVBhcmFtczogeyBjb2xsZWN0aW9uczogY29sbGVjdGlvbiB9IH0pO1xyXG4gIH1cclxuICBnZXQgc3R5bGVzTGF5b3V0KCkge1xyXG4gICAgcmV0dXJuIHsgLi4udGhpcy5zdHlsZXM/LmxheW91dCB9IGFzIExheU91dE1vZGVsO1xyXG4gIH1cclxuICBnZXQgZ2V0RGlyZWN0aW9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3R5bGVzPy5kaXJlY3Rpb247XHJcbiAgfVxyXG4gIGdldCBpc01vYmlsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB3aW5kb3cuaW5uZXJXaWR0aCA8PSA0NzU7XHJcbiAgfVxyXG4gIGVkaXRTZWN0aW9uKCkge1xyXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLnRvZ2dsZUVkaXRvckV2ZW50LmVtaXQoZmFsc2UpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX2V2ZW50U2VydmljZS5lZGl0U2VjdGlvbi5lbWl0KHsgZGF0YTogdGhpcy5kYXRhIH0pO1xyXG4gICAgfSwgMTAwKTtcclxuICB9XHJcbiAgZ2V0SnVzdGlmeUNvbnRlbnQoKSB7XHJcbiAgICBjb25zdCBlbCA9IHRoaXMuY2F0ZWdvcnlQYXJlbnQ/Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBpZiAoIWVsKSByZXR1cm4gJyc7XHJcbiAgICBjb25zdCBpc092ZXJmbG93aW5nID0gZWwuc2Nyb2xsV2lkdGggPiBlbC5jbGllbnRXaWR0aDtcclxuICAgIGlmIChpc092ZXJmbG93aW5nKSB7XHJcbiAgICAgIHJldHVybiAnZmxleC1zdGFydCc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5zdHlsZXM/LmxheW91dD8uYWxpZ24gfHwgJyc7XHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNMb2FkaW5nXCI+XHJcbiAgPHNlY3Rpb24gY2xhc3M9XCJjb250YWluZXItZmx1aWQgdG90YWwtY29udGFpbmVyIHAtMFwiIFtpZF09XCJkYXRhPy5pZFwiIHNpbXBvSG92ZXIgKGhvdmVyaW5nKT1cInNob3dFZGl0VGFicygkZXZlbnQpXCJcclxuICAgIFthdHRyLnN0eWxlXT1cImN1c3RvbUNsYXNzXCI+XHJcbiAgICA8ZGl2IFtzcGFjaW5nQXJvdW5kXT1cInN0eWxlc0xheW91dFwiIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0JvcmRlcl09XCJzdHlsZXM/LmJvcmRlclwiIGNsYXNzPVwiYm9yZGVyLXJhZGl1cy11bnNldFwiPlxyXG4gICAgICA8ZGl2IFtpZF09XCJkYXRhPy5pZFwiICNtYWluQ29udGFpbmVyIFtzaW1wb0FuaW1hdGlvbl09XCJzdHlsZXM/LmFuaW1hdGlvblwiIFtzaW1wb0JhY2tncm91bmRdPVwic3R5bGVzPy5iYWNrZ3JvdW5kXCJcclxuICAgICAgICBbc2ltcG9Db3JuZXJdPVwic3R5bGVzPy5jb3JuZXJzXCIgY2xhc3M9XCJkLWZsZXggdy0xMDBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIHctMTAwXCIgW3NpbXBvT3ZlcmxheV09XCJzdHlsZXM/LmJhY2tncm91bmRcIiBbc2ltcG9Db3JuZXJdPVwic3R5bGVzPy5jb3JuZXJzXCJcclxuICAgICAgICAgIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0xheW91dF09XCJzdHlsZXM/LmxheW91dFwiIFtzcGFjaW5nSG9yaXpvbnRhbF09XCJzdHlsZXNMYXlvdXRcIlxyXG4gICAgICAgICAgW3NpbXBvQW5pbWF0aW9uXT1cInN0eWxlcz8uYW5pbWF0aW9uXCI+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbnRlbnQ/LmlucHV0VGV4dFwiIGNsYXNzPVwidGV4dC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2ICBjbGFzcyA9IFwiY29udGVudC1zaWRlXCJbaW5uZXJIVE1MXT1cIml0ZW0udmFsdWUgfCBzYW5pdGl6ZUh0bWxcIiBbbmdDbGFzc109XCJpdGVtLmxhYmVsID09PSAnSGVhZGluZycgPyAnaGVhZGluZy1sYXJnZSBsaC0yIG1iLTMnIDogJ2JvZHktbGFyZ2UnXCI+IC0tPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWRpdCB8fCBpdGVtLnZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB0LTMgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgIDxzaW1wby10ZXh0LWVkaXRvciBbKHZhbHVlKV09XCJpdGVtLnZhbHVlXCIgW2VkaXRhYmxlXT1cImVkaXQgfHwgZmFsc2VcIj48L3NpbXBvLXRleHQtZWRpdG9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPCEtLSA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yeS1wYXJlbnRcIiBbbmdDbGFzc109XCJ7J2ZsZXgtd3JhcCc6IGdldERpcmVjdGlvbiA9PSAnQ09MVU1OJ31cIlxyXG4gICAgICAgICAgICBbc2ltcG9Db250YWluZXJBbGlnbm1lbnRdPVwic3R5bGVzPy5sYXlvdXRcIiBbaWRdPVwiZGF0YT8uaWRcIlxyXG4gICAgICAgICAgICBbc3R5bGUuanVzdGlmeUNvbnRlbnRdPVwiIWlzTW9iaWxlID8gZ2V0SnVzdGlmeUNvbnRlbnQoKSA6ICcnXCIgI2NhdGVnb3J5UGFyZW50MT5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBkYXRhIG9mIHJlc3BvbnNlRGF0YSB8IHNsaWNlOmdldFNsaWNlUGFyYW1ldGVycygpWzBdOmdldFNsaWNlUGFyYW1ldGVycygpWzFdOyBsZXQgaWR4ID0gaW5kZXhcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJyZWRpcmVjdFRvTGlzdFBhZ2UoZGF0YSlcIiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIgdy1maXQtY29udGVudFwiXHJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAndy00OCBkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyJyA6IGlzTW9iaWxlfVwiPlxyXG4gICAgICAgICAgICAgIDxpbWcgW3N0eWxlLmJvcmRlclJhZGl1cy5weF09XCIoc3R5bGVzPy5ib3JkZXI/LnJhZGl1cyA/PyAxKSAvIChpc01vYmlsZSA/IDIgOiAxKVwiXHJcbiAgICAgICAgICAgICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cIihzdHlsZXM/LmNvbnRhaW5lckhlaWdodCA/PyAxKSAvIChpc01vYmlsZSA/IDIgOiAxKVwiXHJcbiAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGgucHhdPVwiKHN0eWxlcz8uY29udGFpbmVyV2lkdGggPz8gMSkgLyAoaXNNb2JpbGUgPyAyIDogMSlcIiBsb2FkaW5nPVwibGF6eVwiXHJcbiAgICAgICAgICAgICAgICBvbmVycm9yPVwidGhpcy5zcmM9J2h0dHBzOi8vaS5wb3N0aW1nLmNjL2hQUzJKcFYwL25vLWltYWdlLWF2YWlsYWJsZS5qcGcnXCJcclxuICAgICAgICAgICAgICAgIFtzcmNdPVwiZGF0YS5pbWdVcmw/LlswXSA/PyAnaHR0cHM6Ly9pLnBvc3RpbWcuY2MvaFBTMkpwVjAvbm8taW1hZ2UtYXZhaWxhYmxlLmpwZydcIiBhbHQ9XCJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjYXRlZ29yeS1pbWFnZVwiIFtuZ0NsYXNzXT1cInsnY2F0ZWdvcnktbmV3LWltYWdlJyA6IGlzTW9iaWxlICYmIGdldERpcmVjdGlvbiA9PSAnQ09MVU1OJ31cIj5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29udGVudD8uZGlzcGxheT8uc2hvd0hlYWRpbmdcIlxyXG4gICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cIihzdHlsZXM/LmNvbnRhaW5lcldpZHRoID8/IDEpIC8gKGlzTW9iaWxlID8gMiA6IDEpXCI+e3tkYXRhLmNhdGVnb3J5TmFtZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgPCEtLSBjbGFzcz1cImNhdGVnb3J5LW5hbWUgYm9keS1sYXJnZVwiICAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3R5bGVzPy5kZXZpZGVyPy5kaXNwbGF5XCI+XHJcbiAgICAgIDxzaW1wby1zdmctZGl2aWRlciBbZGl2aWRlclR5cGVdPVwic3R5bGVzPy5kZXZpZGVyPy5kZXZpZGVyVHlwZVwiXHJcbiAgICAgICAgW2NvbG9yXT1cIm5leHRDb21wb25lbnRDb2xvcj8uY29sb3JcIj48L3NpbXBvLXN2Zy1kaXZpZGVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZWRpdH1cIiAqbmdJZj1cInNob3dFZGl0b3JzXCI+XHJcbiAgICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIj48L3NpbXBvLWhvdmVyLWVsZW1lbnRzPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0RlbGV0ZVwiIFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZGVsZXRlfVwiPlxyXG4gICAgICA8c2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiPjwvc2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQ+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgPC9zZWN0aW9uPlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZ3gtc2tlbGV0b24tbG9hZGVyICpuZ0lmPVwiaXNMb2FkaW5nXCIgY291bnQ9XCIxXCIgYXBwZWFyYW5jZT1cImNpcmNsZVwiIFt0aGVtZV09XCJ7XHJcbiAgd2lkdGg6ICcxMDAlJyxcclxuICBoZWlnaHQ6ICc0MHZoJyxcclxuICAnYm9yZGVyLXJhZGl1cyc6ICcxMHB4JyxcclxuICAncG9zaXRpb24nOiAncmVsYXRpdmUnLFxyXG4gICdyaWdodCc6ICc1cHgnXHJcbn1cIj5cclxuPC9uZ3gtc2tlbGV0b24tbG9hZGVyPiJdfQ==