simpo-component-library 3.3.1 → 3.3.5

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.
Files changed (204) hide show
  1. package/README.md +24 -24
  2. package/esm2022/lib/components/delete-hover-element/delete-hover-element.component.mjs +5 -5
  3. package/esm2022/lib/components/document/document.component.mjs +5 -5
  4. package/esm2022/lib/components/hover-elements/hover-elements.component.mjs +4 -4
  5. package/esm2022/lib/components/image-loading/image-loading.component.mjs +5 -5
  6. package/esm2022/lib/components/index.mjs +5 -5
  7. package/esm2022/lib/components/input-fields/input-fields.component.mjs +4 -4
  8. package/esm2022/lib/components/payment-details/payment-details.component.mjs +5 -5
  9. package/esm2022/lib/constants/business.constant.mjs +1 -1
  10. package/esm2022/lib/directive/animation-directive.mjs +4 -4
  11. package/esm2022/lib/directive/background-directive.mjs +4 -4
  12. package/esm2022/lib/directive/banner-content-fit-directive.mjs +4 -4
  13. package/esm2022/lib/directive/blur-content.directive.mjs +4 -4
  14. package/esm2022/lib/directive/border-directive.mjs +4 -4
  15. package/esm2022/lib/directive/borderlessImage.directive.mjs +4 -4
  16. package/esm2022/lib/directive/button-directive.directive.mjs +4 -4
  17. package/esm2022/lib/directive/button-editor.directive.mjs +4 -4
  18. package/esm2022/lib/directive/color.directive.mjs +4 -4
  19. package/esm2022/lib/directive/column-directive.directive.mjs +4 -4
  20. package/esm2022/lib/directive/container-alignment.directive.mjs +4 -4
  21. package/esm2022/lib/directive/container-fir.directive.mjs +4 -4
  22. package/esm2022/lib/directive/content-alignment-directive.mjs +4 -4
  23. package/esm2022/lib/directive/content-fit-directive.mjs +4 -4
  24. package/esm2022/lib/directive/content-title-spacing.directive.mjs +4 -4
  25. package/esm2022/lib/directive/contenteditable.directive.mjs +4 -4
  26. package/esm2022/lib/directive/corner-directive.mjs +4 -4
  27. package/esm2022/lib/directive/footer-layout-directive.mjs +4 -4
  28. package/esm2022/lib/directive/hover-element-directive.mjs +4 -4
  29. package/esm2022/lib/directive/hoverborder.directive.mjs +4 -4
  30. package/esm2022/lib/directive/image-container.directive.mjs +4 -4
  31. package/esm2022/lib/directive/image-directive.directive.mjs +4 -4
  32. package/esm2022/lib/directive/image-editor.directive.mjs +4 -4
  33. package/esm2022/lib/directive/image-position.directive.mjs +4 -4
  34. package/esm2022/lib/directive/overlay-directive.mjs +4 -4
  35. package/esm2022/lib/directive/position-layout-directive.directive.mjs +4 -4
  36. package/esm2022/lib/directive/removeCarousel-directive.mjs +4 -4
  37. package/esm2022/lib/directive/spacing-around.directive.mjs +4 -4
  38. package/esm2022/lib/directive/spacing-horizontal.directive.mjs +4 -4
  39. package/esm2022/lib/directive/sticky-directive.mjs +4 -4
  40. package/esm2022/lib/directive/text-background-directive.directive.mjs +4 -4
  41. package/esm2022/lib/directive/text-size.directive.mjs +4 -4
  42. package/esm2022/lib/directive/wrap-containers.directive.mjs +4 -4
  43. package/esm2022/lib/ecommerce/sections/address/address.component.mjs +5 -5
  44. package/esm2022/lib/ecommerce/sections/authenticate-user/authenticate-user.component.mjs +5 -5
  45. package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.component.mjs +5 -5
  46. package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.model.mjs +1 -1
  47. package/esm2022/lib/ecommerce/sections/cart/cart.component.mjs +5 -5
  48. package/esm2022/lib/ecommerce/sections/cart/cart.modal.mjs +1 -1
  49. package/esm2022/lib/ecommerce/sections/category-product/category-product.component.mjs +5 -5
  50. package/esm2022/lib/ecommerce/sections/category-product/category-product.model.mjs +1 -1
  51. package/esm2022/lib/ecommerce/sections/checkout/checkout.component.mjs +5 -5
  52. package/esm2022/lib/ecommerce/sections/checkout/checkout.modal.mjs +1 -1
  53. package/esm2022/lib/ecommerce/sections/customer-review/customer-review.component.mjs +5 -5
  54. package/esm2022/lib/ecommerce/sections/customer-review/customer-review.model.mjs +1 -1
  55. package/esm2022/lib/ecommerce/sections/featured-category/featured-category.component.mjs +5 -5
  56. package/esm2022/lib/ecommerce/sections/featured-category/featured-category.modal.mjs +1 -1
  57. package/esm2022/lib/ecommerce/sections/featured-category/featured-collection.component.mjs +5 -5
  58. package/esm2022/lib/ecommerce/sections/featured-products/featured-products.component.mjs +5 -5
  59. package/esm2022/lib/ecommerce/sections/featured-products/featured-products.modal.mjs +1 -1
  60. package/esm2022/lib/ecommerce/sections/item-varient/item-varient.component.mjs +5 -5
  61. package/esm2022/lib/ecommerce/sections/order-details/order-details.component.mjs +5 -5
  62. package/esm2022/lib/ecommerce/sections/pagnination/pagnination.component.mjs +5 -5
  63. package/esm2022/lib/ecommerce/sections/product-category-list/product-category-list.component.mjs +5 -5
  64. package/esm2022/lib/ecommerce/sections/product-category-list/product-category-list.model.mjs +1 -1
  65. package/esm2022/lib/ecommerce/sections/product-desc/product-desc.component.mjs +5 -5
  66. package/esm2022/lib/ecommerce/sections/product-desc/product-desc.modal.mjs +1 -1
  67. package/esm2022/lib/ecommerce/sections/product-list/product-list.component.mjs +6 -6
  68. package/esm2022/lib/ecommerce/sections/product-list/product-list.modal.mjs +1 -1
  69. package/esm2022/lib/ecommerce/sections/small-product-listing/small-product-listing.component.mjs +5 -5
  70. package/esm2022/lib/ecommerce/sections/user-basic-info/user-basic-info.component.mjs +5 -5
  71. package/esm2022/lib/ecommerce/sections/user-profile/user-profile.component.mjs +5 -5
  72. package/esm2022/lib/ecommerce/sections/user-profile/user-profile.modal.mjs +1 -1
  73. package/esm2022/lib/ecommerce/sections/verify-payment/verify-payment.component.mjs +5 -5
  74. package/esm2022/lib/ecommerce/sections/verify-payment/verify-payment.model.mjs +1 -1
  75. package/esm2022/lib/ecommerce/sections/whislist/whislist.component.mjs +5 -5
  76. package/esm2022/lib/ecommerce/styles/BaseCollection.modal.mjs +1 -1
  77. package/esm2022/lib/ecommerce/styles/Collection.modal.mjs +1 -1
  78. package/esm2022/lib/ecommerce/styles/OrderedItems.modal.mjs +1 -1
  79. package/esm2022/lib/ecommerce/styles/PincodeLocation.model.mjs +1 -1
  80. package/esm2022/lib/ecommerce/styles/PincodeLocationInter.model.mjs +1 -1
  81. package/esm2022/lib/ecommerce/styles/cart.modal.mjs +1 -1
  82. package/esm2022/lib/ecommerce/styles/category.modal.mjs +1 -1
  83. package/esm2022/lib/ecommerce/styles/order.modal.mjs +1 -1
  84. package/esm2022/lib/ecommerce/styles/product.modal.mjs +1 -1
  85. package/esm2022/lib/ecommerce/styles/review.modal.mjs +1 -1
  86. package/esm2022/lib/ecommerce/styles/user.modal.mjs +1 -1
  87. package/esm2022/lib/elements/add-section/add-section.component.mjs +5 -5
  88. package/esm2022/lib/elements/below-image-card/below-image-card.component.mjs +5 -5
  89. package/esm2022/lib/elements/button/button.component.mjs +5 -5
  90. package/esm2022/lib/elements/button/button.model.mjs +1 -1
  91. package/esm2022/lib/elements/card-skeleton-loader/card-skeleton-loader.component.mjs +5 -5
  92. package/esm2022/lib/elements/covering-image-card/covering-image-card.component.mjs +5 -5
  93. package/esm2022/lib/elements/editor-service.service.mjs +4 -4
  94. package/esm2022/lib/elements/heading-element/heading-element.component.mjs +5 -5
  95. package/esm2022/lib/elements/image-editor/image-editor.component.mjs +5 -5
  96. package/esm2022/lib/elements/index.mjs +5 -5
  97. package/esm2022/lib/elements/link-editor/link-editor.component.mjs +5 -5
  98. package/esm2022/lib/elements/media-selector/media-selector.component.mjs +5 -5
  99. package/esm2022/lib/elements/navbar-button-element/navbar-button-element.component.mjs +4 -4
  100. package/esm2022/lib/elements/portfolio/portfolio.component.mjs +5 -5
  101. package/esm2022/lib/elements/property/property.component.mjs +5 -5
  102. package/esm2022/lib/elements/simpo-button/simpo-button.component.mjs +5 -5
  103. package/esm2022/lib/elements/socia-icons/socia-icons.component.mjs +4 -4
  104. package/esm2022/lib/elements/svg-divider/svg-divider.component.mjs +5 -5
  105. package/esm2022/lib/elements/text/text.component.mjs +5 -5
  106. package/esm2022/lib/elements/text-editor/text-editor.component.mjs +40 -40
  107. package/esm2022/lib/elements/top-of-image-card/top-of-image-card.component.mjs +5 -5
  108. package/esm2022/lib/pipes/amount.pipe.mjs +4 -4
  109. package/esm2022/lib/pipes/gender.pipe.mjs +4 -4
  110. package/esm2022/lib/sections/BaseSection.mjs +1 -1
  111. package/esm2022/lib/sections/add-new-section/add-new-section.component.mjs +5 -5
  112. package/esm2022/lib/sections/appointment-form/appointment-form.component.mjs +5 -5
  113. package/esm2022/lib/sections/appointment-form/appointment-form.model.mjs +1 -1
  114. package/esm2022/lib/sections/banner-carousel/banner-carousel.component.mjs +5 -5
  115. package/esm2022/lib/sections/banner-carousel/banner-carousel.model.mjs +1 -1
  116. package/esm2022/lib/sections/banner-grid-section/banner-grid-section.component.mjs +5 -5
  117. package/esm2022/lib/sections/banner-section/banner-section.component.mjs +4 -4
  118. package/esm2022/lib/sections/blog-list/blog-list.component.mjs +5 -5
  119. package/esm2022/lib/sections/blog-list/blog-list.model.mjs +1 -1
  120. package/esm2022/lib/sections/carousel-banner/carousel-banner.component.mjs +4 -4
  121. package/esm2022/lib/sections/choose-us-section/choose-us-section.component.mjs +5 -5
  122. package/esm2022/lib/sections/choose-us-section/choose-us-section.model.mjs +1 -1
  123. package/esm2022/lib/sections/contact-us/contact-us.component.mjs +4 -4
  124. package/esm2022/lib/sections/faq-section/faq-section.component.mjs +5 -5
  125. package/esm2022/lib/sections/faq-section/faq-section.modal.mjs +1 -1
  126. package/esm2022/lib/sections/features-section/features-section.component.mjs +5 -5
  127. package/esm2022/lib/sections/features-section/features-section.model.mjs +1 -1
  128. package/esm2022/lib/sections/footer/footer.component.mjs +5 -5
  129. package/esm2022/lib/sections/footer/footer.modal.mjs +1 -1
  130. package/esm2022/lib/sections/footer-section/footer-section.component.mjs +4 -4
  131. package/esm2022/lib/sections/header-section/header-section.component.mjs +5 -5
  132. package/esm2022/lib/sections/header-section/header-section.model.mjs +1 -1
  133. package/esm2022/lib/sections/header-text/header-text.component.mjs +5 -5
  134. package/esm2022/lib/sections/header-text/header-text.model.mjs +1 -1
  135. package/esm2022/lib/sections/image-carousel-section/image-carousel-section.component.mjs +5 -5
  136. package/esm2022/lib/sections/image-carousel-section/image-carousel.model.mjs +1 -1
  137. package/esm2022/lib/sections/image-grid-section/image-grid-section.component.mjs +5 -5
  138. package/esm2022/lib/sections/image-grid-section/image-grid-section.model.mjs +1 -1
  139. package/esm2022/lib/sections/image-section/image-section.component.mjs +5 -5
  140. package/esm2022/lib/sections/image-section/image-section.model.mjs +1 -1
  141. package/esm2022/lib/sections/location-section/location-section.component.mjs +5 -5
  142. package/esm2022/lib/sections/location-section/location-section.modal.mjs +1 -1
  143. package/esm2022/lib/sections/logo-gallery/logo-gallery.component.mjs +4 -4
  144. package/esm2022/lib/sections/logo-showcase/logo-showcase.component.mjs +5 -5
  145. package/esm2022/lib/sections/logo-showcase/logo-showcase.modal.mjs +1 -1
  146. package/esm2022/lib/sections/navbar-section/navbar-section.component.mjs +4 -4
  147. package/esm2022/lib/sections/new-services/new-services.component.mjs +5 -5
  148. package/esm2022/lib/sections/new-services/new-services.model.mjs +1 -1
  149. package/esm2022/lib/sections/new-testimonials/new-testimonials.component.mjs +5 -5
  150. package/esm2022/lib/sections/new-testimonials/new-testimonials.model.mjs +1 -1
  151. package/esm2022/lib/sections/pricing-section/pricing-section.component.mjs +5 -5
  152. package/esm2022/lib/sections/pricing-section/pricing-section.modal.mjs +1 -1
  153. package/esm2022/lib/sections/process-modern/process-modern.component.mjs +5 -5
  154. package/esm2022/lib/sections/process-modern/process-modern.model.mjs +1 -1
  155. package/esm2022/lib/sections/process-section/process-section.component.mjs +5 -5
  156. package/esm2022/lib/sections/process-section/process-section.modal.mjs +1 -1
  157. package/esm2022/lib/sections/property-component/property-component.component.mjs +5 -5
  158. package/esm2022/lib/sections/property-component/property-component.modal.mjs +1 -1
  159. package/esm2022/lib/sections/property-list/property-list.component.mjs +5 -5
  160. package/esm2022/lib/sections/property-list/property-list.modal.mjs +1 -1
  161. package/esm2022/lib/sections/recent-blog-post-section/recent-blog-post-section.component.mjs +5 -5
  162. package/esm2022/lib/sections/recent-blog-post-section/recent-blog-post-section.model.mjs +1 -1
  163. package/esm2022/lib/sections/registration-form/registration-form.component.mjs +6 -6
  164. package/esm2022/lib/sections/registration-form/registrationForm.model.mjs +1 -1
  165. package/esm2022/lib/sections/service-section/service-section.component.mjs +5 -5
  166. package/esm2022/lib/sections/service-section/service-section.model.mjs +1 -1
  167. package/esm2022/lib/sections/skeleton-loader-section/skeleton-loader-section.component.mjs +5 -5
  168. package/esm2022/lib/sections/team-member-section/team-member-section.component.mjs +5 -5
  169. package/esm2022/lib/sections/team-member-section/team-member-section.model.mjs +1 -1
  170. package/esm2022/lib/sections/testimonial-fullwidth/testimonial-fullwidth.component.mjs +5 -5
  171. package/esm2022/lib/sections/testimonial-fullwidth/testimonial-fullwidth.model.mjs +1 -1
  172. package/esm2022/lib/sections/testimonial-section/testimonial-section.component.mjs +5 -5
  173. package/esm2022/lib/sections/testimonial-section/testimonial-section.model.mjs +1 -1
  174. package/esm2022/lib/sections/testimonial-video/testimonial-video.component.mjs +5 -5
  175. package/esm2022/lib/sections/testimonial-video/testimonial-video.model.mjs +1 -1
  176. package/esm2022/lib/sections/text-image-section/text-image-section.component.mjs +4 -4
  177. package/esm2022/lib/sections/text-section/text-section.component.mjs +4 -4
  178. package/esm2022/lib/sections/text-section/text-section.model.mjs +1 -1
  179. package/esm2022/lib/sections/usp-video-section/usp-video-section.component.mjs +5 -5
  180. package/esm2022/lib/sections/usp-video-section/usp-video-section.model.mjs +1 -1
  181. package/esm2022/lib/sections/video-section/video-section.component.mjs +5 -5
  182. package/esm2022/lib/sections/video-section/video-section.model.mjs +1 -1
  183. package/esm2022/lib/sections/view-blog/view-blog.component.mjs +5 -5
  184. package/esm2022/lib/services/cart.service.mjs +4 -4
  185. package/esm2022/lib/services/endUser.service.mjs +4 -4
  186. package/esm2022/lib/services/events.service.mjs +4 -4
  187. package/esm2022/lib/services/image-upload-service.service.mjs +15 -10
  188. package/esm2022/lib/services/rest.service.mjs +4 -4
  189. package/esm2022/lib/services/sanitizeHtml.mjs +4 -4
  190. package/esm2022/lib/services/storage.service.mjs +4 -4
  191. package/esm2022/lib/styles/index.mjs +1 -1
  192. package/esm2022/lib/styles/style.model.mjs +1 -1
  193. package/esm2022/lib/styles/types.mjs +1 -1
  194. package/esm2022/lib/tokens/api-token.mjs +2 -1
  195. package/esm2022/public-api.mjs +1 -1
  196. package/fesm2022/simpo-component-library.mjs +517 -512
  197. package/fesm2022/simpo-component-library.mjs.map +1 -1
  198. package/lib/elements/text-editor/text-editor.component.d.ts +4 -1
  199. package/lib/services/image-upload-service.service.d.ts +2 -2
  200. package/lib/tokens/api-token.d.ts +1 -0
  201. package/package.json +1 -1
  202. package/simpo-component-library-3.3.5.tgz +0 -0
  203. package/src/lib/styles/global-styles.css +191 -191
  204. package/simpo-component-library-3.3.1.tgz +0 -0
@@ -33,6 +33,7 @@ export class TextEditorComponent {
33
33
  this.selectedColorType = 'SOLID';
34
34
  this.primaryColor = '#000000';
35
35
  this.secondaryColor = '#000000';
36
+ this.savedRange = null;
36
37
  }
37
38
  ngOnInit() {
38
39
  if (isPlatformBrowser(this.platformId)) {
@@ -142,6 +143,7 @@ export class TextEditorComponent {
142
143
  changeColor(event) {
143
144
  if (!isPlatformBrowser(this.platformId))
144
145
  return;
146
+ this.restoreSelection(); // Restore the selection before applying color
145
147
  const color = event.target.value;
146
148
  // First check if we need to clear gradient styling
147
149
  const selection = window.getSelection();
@@ -187,7 +189,8 @@ export class TextEditorComponent {
187
189
  this.formatText('formatBlock', selectedValue);
188
190
  }
189
191
  openColorPicker() {
190
- this.colorPicker.nativeElement.click(); // Programmatically trigger input
192
+ // this.colorPicker.nativeElement.click(); // Programmatically trigger input
193
+ this.saveSelection(); // Save the current selection
191
194
  }
192
195
  readFormattingProperties() {
193
196
  if (!isPlatformBrowser(this.platformId))
@@ -245,11 +248,11 @@ export class TextEditorComponent {
245
248
  };
246
249
  }
247
250
  changeGradientColor() {
251
+ this.restoreSelection(); // Restore the selection before applying gradient
248
252
  const color = `linear-gradient(94.22deg, ${this.primaryColor} -4.45%, ${this.secondaryColor} 111.88%)`;
249
253
  this.applyGradientToText(color);
250
254
  }
251
255
  applyGradientToText(gradientValue) {
252
- // const gradientValue = (event.target as HTMLSelectElement).value;
253
256
  if (!isPlatformBrowser(this.platformId))
254
257
  return;
255
258
  const selection = window.getSelection();
@@ -257,41 +260,25 @@ export class TextEditorComponent {
257
260
  return;
258
261
  // Get the current selection range
259
262
  const range = selection.getRangeAt(0);
260
- // Check if selection is already inside a styled element
261
- let targetElement = range.commonAncestorContainer;
262
- if (!targetElement)
263
+ // Check if the range is valid for wrapping
264
+ if (!range || range.collapsed)
263
265
  return;
264
- if (targetElement.nodeType === Node.TEXT_NODE && targetElement.parentElement) {
265
- targetElement = targetElement.parentElement;
266
- }
267
- // Restore selection before applying styles
266
+ // Extract the selected content
267
+ const selectedContent = range.extractContents();
268
+ // Create a new <span> element to wrap the selected text
269
+ const span = document.createElement('span');
270
+ span.style.background = gradientValue;
271
+ span.style.backgroundClip = 'text';
272
+ span.style.webkitBackgroundClip = 'text';
273
+ span.style.color = 'transparent';
274
+ span.style.webkitTextFillColor = 'transparent';
275
+ // Append the selected content to the <span>
276
+ span.appendChild(selectedContent);
277
+ // Insert the <span> back into the range
278
+ range.insertNode(span);
279
+ // Clear the selection
268
280
  selection.removeAllRanges();
269
- selection.addRange(range);
270
- // If selection is already inside a styled element, just update its style
271
- if (targetElement && targetElement instanceof HTMLElement) {
272
- // Apply gradient directly to the existing element
273
- targetElement.style.background = gradientValue;
274
- targetElement.style.backgroundClip = 'text';
275
- targetElement.style.webkitBackgroundClip = 'text';
276
- targetElement.style.color = 'transparent';
277
- targetElement.style.webkitTextFillColor = 'transparent';
278
- }
279
- else {
280
- // If no suitable element exists, we have to create a minimal wrapper
281
- // Use the existing execCommand to avoid manual DOM manipulation
282
- document.execCommand('foreColor', false, '#000000');
283
- // Find the element that was just created and update it
284
- const newElements = document.querySelectorAll('font[color="#000000"]');
285
- if (newElements.length > 0) {
286
- const lastElement = newElements[newElements.length - 1];
287
- lastElement.style.background = gradientValue;
288
- lastElement.style.backgroundClip = 'text';
289
- lastElement.style.webkitBackgroundClip = 'text';
290
- lastElement.style.color = 'transparent';
291
- lastElement.style.webkitTextFillColor = 'transparent';
292
- lastElement.removeAttribute('color');
293
- }
294
- }
281
+ // Emit the updated HTML content
295
282
  this.valueChange.emit(this.editor.nativeElement.innerHTML);
296
283
  }
297
284
  regenerateText() {
@@ -308,17 +295,30 @@ export class TextEditorComponent {
308
295
  this.value = res.data;
309
296
  });
310
297
  }
311
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextEditorComponent, deps: [{ token: i1.ElementServiceService }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component }); }
312
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TextEditorComponent, isStandalone: true, selector: "simpo-text-editor", inputs: { value: "value", editable: "editable", sectionId: "sectionId", label: "label" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "toolbar", first: true, predicate: ["toolbar"], descendants: true }, { propertyName: "editor", first: true, predicate: ["editor"], descendants: true }, { propertyName: "colorPicker", first: true, predicate: ["colorPicker"], descendants: true }, { propertyName: "parentElement", first: true, predicate: ["parentElement"], descendants: true }, { propertyName: "suggestion", first: true, predicate: ["suggestion"], descendants: true }], ngImport: i0, template: "<div class=\"editor-container\" [ngClass]=\"{'border': editable}\" #parentElement>\n <div [contenteditable]=\"editable\" [(ngModel)]=\"value\" class=\"editable-text\" (mouseup)=\"showToolbar($event)\" #editor\n (ngModelChange)=\"updateText($event)\" (mousedown)=\"hideToolbar($event)\">\n </div>\n\n <div class=\"toolbar\" *ngIf=\"editable && show\" [ngStyle]=\"{'top.px': toolbarY}\" [style.right]=\"rightZero ? '0px' : 'auto'\" [style.left]=\"!rightZero ? '0px' : 'auto'\" #toolbar >\n <!-- <select class=\"tool\" (change)=\"onFormatChange($event)\" [(ngModel)]=\"toolbarData.selectedHeading\">\n <option value=\"H1\">Heading1</option>\n <option value=\"H2\">Heading2</option>\n <option value=\"H3\">Heading3</option>\n <option value=\"div\">Text</option>\n </select> -->\n\n <button class=\"tool\" (click)=\"formatText('bold')\" [ngClass]=\"{'selectedTool': toolbarData.isBold}\"><mat-icon> format_bold</mat-icon></button>\n <button class=\"tool\" (click)=\"formatText('italic')\" [ngClass]=\"{'selectedTool': toolbarData.isItalic}\"><mat-icon> format_italic</mat-icon></button>\n <button class=\"tool\" (click)=\"formatText('underline')\" [ngClass]=\"{'selectedTool': toolbarData.isUnderlined}\"><mat-icon> format_underlined</mat-icon></button>\n\n <select class=\"tool\" (change)=\"changeFontSize($event)\" [(ngModel)]=\"toolbarData.selectedSize\">\n <option value=\"\" selected>Default</option>\n <option value=\"clamp(0.75rem, 2vw, 1rem)\">Small</option>\n <option value=\"clamp(1rem, 3vw, 1.5rem)\">Medium</option>\n <option value=\"clamp(1.25rem, 4vw, 2rem)\">Large</option>\n <option value=\"clamp(2rem, 5vw, 3rem)\">Extra Large</option>\n <option value=\"clamp(3.5rem, 7vw, 4.5rem)\">Huge</option>\n </select>\n\n <button class=\"tool\" (click)=\"formatText('insertOrderedList')\" [ngClass]=\"{'selectedTool': toolbarData.selectedList === 'insertOrderedList'}\"><mat-icon>format_list_numbered</mat-icon></button>\n <button class=\"tool\" (click)=\"formatText('insertUnorderedList')\" [ngClass]=\"{'selectedTool': toolbarData.selectedList === 'insertUnorderedList'}\"><mat-icon> format_list_bulleted</mat-icon></button>\n\n <button class=\"tool\" (click)=\"formatText('justifyLeft')\" [ngClass]=\"{'selectedTool': toolbarData.selectedAlignment === 'justifyLeft'}\"><mat-icon> format_align_left</mat-icon></button>\n <button class=\"tool\" (click)=\"formatText('justifyCenter')\" [ngClass]=\"{'selectedTool': toolbarData.selectedAlignment === 'justifyCenter'}\"><mat-icon> format_align_center</mat-icon></button>\n <button class=\"tool\" (click)=\"formatText('justifyRight')\" [ngClass]=\"{'selectedTool': toolbarData.selectedAlignment === 'justifyRight'}\"><mat-icon> format_align_right</mat-icon></button>\n\n <div class=\"colorType\">\n <button class=\"solid\" [ngClass]=\"{'solidColorSelected': selectedColorType === 'SOLID'}\" (click)=\"selectedColorType = 'SOLID'\">Solid</button>\n <button class=\"gradient\" [ngClass]=\"{'gradientColorSelected': selectedColorType === 'GRADIENT'}\" (click)=\"selectedColorType = 'GRADIENT'\">Gradient</button>\n </div>\n\n <button class=\"tool color-picker-btn\" (click)=\"openColorPicker()\" *ngIf=\"selectedColorType === 'SOLID'\">\n <mat-icon>format_color_text</mat-icon>\n <input type=\"color\" #colorPicker class=\"hidden-color-picker\" (input)=\"changeColor($event)\" [(ngModel)]=\"toolbarData.selectedColor\">\n </button>\n\n <div class=\"colorType\" *ngIf=\"selectedColorType === 'GRADIENT'\">\n <button class=\"tool color-picker-btn\" (click)=\"primaryColorPicker.click()\">\n <mat-icon>format_color_text</mat-icon>\n <input type=\"color\" #primaryColorPicker class=\"hidden-color-picker\" (input)=\"changeGradientColor()\" [(ngModel)]=\"primaryColor\">\n </button>\n <button class=\"tool color-picker-btn\" (click)=\"secondaryColorPicker.click()\">\n <mat-icon>format_color_text</mat-icon>\n <input type=\"color\" #secondaryColorPicker class=\"hidden-color-picker\" (input)=\"changeGradientColor()\" [(ngModel)]=\"secondaryColor\">\n </button>\n </div>\n </div>\n\n <div class=\"suggestion-box\" [ngStyle]=\"{'top.px': suggestionY}\" [style.right]=\"rightZero ? '0px' : 'auto'\" [style.left]=\"!rightZero ? '0px' : 'auto'\" *ngIf=\"editable && label && showSuggestion\" #suggestion>\n <div class=\"suggestion\" (click)=\"regenerateText()\">\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/887493c1742273970151Frame%201244831740.png\" alt=\"\">\n <div>\n <p class=\"name\">Regenerate Text</p>\n <p class=\"desc\">Get a fresh variation of a current text</p>\n </div>\n </div>\n </div>\n</div>\n", styles: [".toolbar,.tool option{font-family:var(--primary-font-family)}mat-icon{font-family:Material Icons!important}.editor-container{position:relative;display:inline-block;width:100%}.editor-container div{outline:none}.editable-text{padding:4px;cursor:text}.toolbar{position:absolute;background:#fff;border:1px solid #ccc;box-shadow:0 2px 5px #0003;display:flex;gap:5px;align-items:center;z-index:100000;box-shadow:#00000029 0 1px 4px;padding:5px 15px;border-radius:22px}.toolbar button{background:none;border:none;padding:5px 8px;cursor:pointer;font-weight:700;display:flex;align-items:center}.toolbar button:hover{background:#ddd}.toolbar select{padding:3px;border:none;outline:none;font-size:14px;font-weight:600;cursor:pointer}.toolbar input[type=color]{border:none;width:30px;height:30px;padding:0;cursor:pointer}.color-picker-btn{position:relative;background:none;border:none;cursor:pointer;padding:5px}.hidden-color-picker{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;cursor:pointer}.border{border:1px solid #E9E9E9!important;border-radius:8px}.selectedTool{background:var(--primary-bg-color)!important;color:#fff;border-radius:5px}p{margin-bottom:0rem!important}.suggestion-box{position:absolute;background:#fff;border:1px solid #ccc;box-shadow:0 2px 5px #0003;z-index:10000;box-shadow:#00000029 0 1px 4px;padding:5px 15px;border-radius:10px}.suggestion{display:flex;gap:10px;width:307px;align-items:center;cursor:pointer}.suggestion img{border-radius:5px;width:32px;height:32px;background:#faf1fc;padding:3px}.suggestion .name{color:#000;font-family:var(--primary-font-family)}.suggestion .desc{color:#000;font-size:12px;color:#918585;font-family:var(--primary-font-family)}.colorType{display:flex;border:1px solid #E9E9E9;border-radius:5px;height:35px}.colorType .solid{border-right:1px solid #E9E9E9;font-size:14px!important;font-family:Mulish}.colorType .gradient{font-size:14px!important;font-family:Mulish}.solidColorSelected{background:var(--primary-bg-color)!important;color:#fff;border-top-left-radius:5px;border-bottom-left-radius:5px}.gradientColorSelected{background:var(--primary-bg-color)!important;color:#fff;border-top-right-radius:5px;border-bottom-right-radius:5px}@media screen and (max-width: 475px){.toolbar{max-width:100%;flex-wrap:wrap;row-gap:15px}.tool{width:max-content!important}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ContenteditableValueAccessor, selector: "[contenteditable][ngModel]", inputs: ["contenteditable"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
298
+ saveSelection() {
299
+ const selection = window.getSelection();
300
+ if (selection && selection.rangeCount > 0) {
301
+ this.savedRange = selection.getRangeAt(0);
302
+ }
303
+ }
304
+ restoreSelection() {
305
+ if (this.savedRange) {
306
+ const selection = window.getSelection();
307
+ selection?.removeAllRanges();
308
+ selection?.addRange(this.savedRange);
309
+ }
310
+ }
311
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: TextEditorComponent, deps: [{ token: i1.ElementServiceService }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component }); }
312
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: TextEditorComponent, isStandalone: true, selector: "simpo-text-editor", inputs: { value: "value", editable: "editable", sectionId: "sectionId", label: "label" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "toolbar", first: true, predicate: ["toolbar"], descendants: true }, { propertyName: "editor", first: true, predicate: ["editor"], descendants: true }, { propertyName: "colorPicker", first: true, predicate: ["colorPicker"], descendants: true }, { propertyName: "parentElement", first: true, predicate: ["parentElement"], descendants: true }, { propertyName: "suggestion", first: true, predicate: ["suggestion"], descendants: true }], ngImport: i0, template: "<div class=\"editor-container\" [ngClass]=\"{'border': editable}\" #parentElement>\r\n <div [contenteditable]=\"editable\" [(ngModel)]=\"value\" class=\"editable-text\" (mouseup)=\"showToolbar($event)\" #editor\r\n (ngModelChange)=\"updateText($event)\" (mousedown)=\"hideToolbar($event)\">\r\n </div>\r\n\r\n <div class=\"toolbar\" *ngIf=\"editable && show\" [ngStyle]=\"{'top.px': toolbarY}\" [style.right]=\"rightZero ? '0px' : 'auto'\" [style.left]=\"!rightZero ? '0px' : 'auto'\" #toolbar >\r\n <!-- <select class=\"tool\" (change)=\"onFormatChange($event)\" [(ngModel)]=\"toolbarData.selectedHeading\">\r\n <option value=\"H1\">Heading1</option>\r\n <option value=\"H2\">Heading2</option>\r\n <option value=\"H3\">Heading3</option>\r\n <option value=\"div\">Text</option>\r\n </select> -->\r\n\r\n <button class=\"tool\" (click)=\"formatText('bold')\" [ngClass]=\"{'selectedTool': toolbarData.isBold}\"><mat-icon> format_bold</mat-icon></button>\r\n <button class=\"tool\" (click)=\"formatText('italic')\" [ngClass]=\"{'selectedTool': toolbarData.isItalic}\"><mat-icon> format_italic</mat-icon></button>\r\n <button class=\"tool\" (click)=\"formatText('underline')\" [ngClass]=\"{'selectedTool': toolbarData.isUnderlined}\"><mat-icon> format_underlined</mat-icon></button>\r\n\r\n <select class=\"tool\" (change)=\"changeFontSize($event)\" [(ngModel)]=\"toolbarData.selectedSize\">\r\n <option value=\"\" selected>Default</option>\r\n <option value=\"clamp(0.75rem, 2vw, 1rem)\">Small</option>\r\n <option value=\"clamp(1rem, 3vw, 1.5rem)\">Medium</option>\r\n <option value=\"clamp(1.25rem, 4vw, 2rem)\">Large</option>\r\n <option value=\"clamp(2rem, 5vw, 3rem)\">Extra Large</option>\r\n <option value=\"clamp(3.1rem, 7vw, 4.5rem)\">Huge</option>\r\n </select>\r\n\r\n <button class=\"tool\" (click)=\"formatText('insertOrderedList')\" [ngClass]=\"{'selectedTool': toolbarData.selectedList === 'insertOrderedList'}\"><mat-icon>format_list_numbered</mat-icon></button>\r\n <button class=\"tool\" (click)=\"formatText('insertUnorderedList')\" [ngClass]=\"{'selectedTool': toolbarData.selectedList === 'insertUnorderedList'}\"><mat-icon> format_list_bulleted</mat-icon></button>\r\n\r\n <button class=\"tool\" (click)=\"formatText('justifyLeft')\" [ngClass]=\"{'selectedTool': toolbarData.selectedAlignment === 'justifyLeft'}\"><mat-icon> format_align_left</mat-icon></button>\r\n <button class=\"tool\" (click)=\"formatText('justifyCenter')\" [ngClass]=\"{'selectedTool': toolbarData.selectedAlignment === 'justifyCenter'}\"><mat-icon> format_align_center</mat-icon></button>\r\n <button class=\"tool\" (click)=\"formatText('justifyRight')\" [ngClass]=\"{'selectedTool': toolbarData.selectedAlignment === 'justifyRight'}\"><mat-icon> format_align_right</mat-icon></button>\r\n\r\n <div class=\"colorType\">\r\n <button class=\"solid\" [ngClass]=\"{'solidColorSelected': selectedColorType === 'SOLID'}\" (click)=\"selectedColorType = 'SOLID'\">Solid</button>\r\n <button class=\"gradient\" [ngClass]=\"{'gradientColorSelected': selectedColorType === 'GRADIENT'}\" (click)=\"selectedColorType = 'GRADIENT'\">Gradient</button>\r\n </div>\r\n\r\n <button class=\"tool color-picker-btn\" (click)=\"openColorPicker()\" *ngIf=\"selectedColorType === 'SOLID'\">\r\n <mat-icon>format_color_text</mat-icon>\r\n <input type=\"color\" #colorPicker class=\"hidden-color-picker\" (input)=\"changeColor($event)\" [(ngModel)]=\"toolbarData.selectedColor\">\r\n </button>\r\n \r\n <div class=\"colorType\" *ngIf=\"selectedColorType === 'GRADIENT'\">\r\n <button class=\"tool color-picker-btn\" (click)=\"openColorPicker(); primaryColorPicker.click()\">\r\n <mat-icon>format_color_text</mat-icon>\r\n <input type=\"color\" #primaryColorPicker class=\"hidden-color-picker\" (input)=\"changeGradientColor()\" [(ngModel)]=\"primaryColor\">\r\n </button>\r\n <button class=\"tool color-picker-btn\" (click)=\"openColorPicker(); secondaryColorPicker.click()\">\r\n <mat-icon>format_color_text</mat-icon>\r\n <input type=\"color\" #secondaryColorPicker class=\"hidden-color-picker\" (input)=\"changeGradientColor()\" [(ngModel)]=\"secondaryColor\">\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"suggestion-box\" [ngStyle]=\"{'top.px': suggestionY}\" [style.right]=\"rightZero ? '0px' : 'auto'\" [style.left]=\"!rightZero ? '0px' : 'auto'\" *ngIf=\"editable && label && showSuggestion\" #suggestion>\r\n <div class=\"suggestion\" (click)=\"regenerateText()\">\r\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/887493c1742273970151Frame%201244831740.png\" alt=\"\">\r\n <div>\r\n <p class=\"name\">Regenerate Text</p>\r\n <p class=\"desc\">Get a fresh variation of a current text</p>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".toolbar,.tool option{font-family:var(--primary-font-family)}mat-icon{font-family:Material Icons!important}.editor-container{position:relative;display:inline-block;overflow:visible;width:100%}.editor-container div{outline:none}.editable-text{padding:4px;cursor:text}.toolbar{position:absolute;background:#fff;border:1px solid #ccc;box-shadow:0 2px 5px #0003;display:flex;gap:5px;align-items:center;z-index:100000;box-shadow:#00000029 0 1px 4px;padding:5px 15px;border-radius:22px}.toolbar button{background:none;border:none;padding:5px 8px;cursor:pointer;font-weight:700;display:flex;align-items:center}.toolbar button:hover{background:#ddd}.toolbar select{padding:3px;border:none;outline:none;font-size:14px;font-weight:600;cursor:pointer}.toolbar input[type=color]{border:none;width:30px;height:30px;padding:0;cursor:pointer}.color-picker-btn{position:relative;background:none;border:none;cursor:pointer;padding:5px}.hidden-color-picker{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;cursor:pointer}.border{border:1px solid #E9E9E9!important;border-radius:8px}.selectedTool{background:var(--primary-bg-color)!important;color:#fff;border-radius:5px}p{margin-bottom:0rem!important}.suggestion-box{position:absolute;background:#fff;border:1px solid #ccc;box-shadow:0 2px 5px #0003;z-index:10000;box-shadow:#00000029 0 1px 4px;padding:5px 15px;border-radius:10px}.suggestion{display:flex;gap:10px;width:307px;align-items:center;cursor:pointer}.suggestion img{border-radius:5px;width:32px;height:32px;background:#faf1fc;padding:3px}.suggestion .name{color:#000;font-family:var(--primary-font-family)}.suggestion .desc{color:#000;font-size:12px;color:#918585;font-family:var(--primary-font-family)}.colorType{display:flex;border:1px solid #E9E9E9;border-radius:5px;height:35px}.colorType .solid{border-right:1px solid #E9E9E9;font-size:14px!important;font-family:Mulish}.colorType .gradient{font-size:14px!important;font-family:Mulish}.solidColorSelected{background:var(--primary-bg-color)!important;color:#fff;border-top-left-radius:5px;border-bottom-left-radius:5px}.gradientColorSelected{background:var(--primary-bg-color)!important;color:#fff;border-top-right-radius:5px;border-bottom-right-radius:5px}@media screen and (max-width: 475px){.toolbar{max-width:100%;flex-wrap:wrap;row-gap:15px}.tool{width:max-content!important}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ContenteditableValueAccessor, selector: "[contenteditable][ngModel]", inputs: ["contenteditable"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
313
313
  }
314
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextEditorComponent, decorators: [{
314
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: TextEditorComponent, decorators: [{
315
315
  type: Component,
316
316
  args: [{ selector: 'simpo-text-editor', standalone: true, imports: [
317
317
  CommonModule,
318
318
  FormsModule,
319
319
  ContenteditableValueAccessor,
320
320
  MatIconModule
321
- ], template: "<div class=\"editor-container\" [ngClass]=\"{'border': editable}\" #parentElement>\n <div [contenteditable]=\"editable\" [(ngModel)]=\"value\" class=\"editable-text\" (mouseup)=\"showToolbar($event)\" #editor\n (ngModelChange)=\"updateText($event)\" (mousedown)=\"hideToolbar($event)\">\n </div>\n\n <div class=\"toolbar\" *ngIf=\"editable && show\" [ngStyle]=\"{'top.px': toolbarY}\" [style.right]=\"rightZero ? '0px' : 'auto'\" [style.left]=\"!rightZero ? '0px' : 'auto'\" #toolbar >\n <!-- <select class=\"tool\" (change)=\"onFormatChange($event)\" [(ngModel)]=\"toolbarData.selectedHeading\">\n <option value=\"H1\">Heading1</option>\n <option value=\"H2\">Heading2</option>\n <option value=\"H3\">Heading3</option>\n <option value=\"div\">Text</option>\n </select> -->\n\n <button class=\"tool\" (click)=\"formatText('bold')\" [ngClass]=\"{'selectedTool': toolbarData.isBold}\"><mat-icon> format_bold</mat-icon></button>\n <button class=\"tool\" (click)=\"formatText('italic')\" [ngClass]=\"{'selectedTool': toolbarData.isItalic}\"><mat-icon> format_italic</mat-icon></button>\n <button class=\"tool\" (click)=\"formatText('underline')\" [ngClass]=\"{'selectedTool': toolbarData.isUnderlined}\"><mat-icon> format_underlined</mat-icon></button>\n\n <select class=\"tool\" (change)=\"changeFontSize($event)\" [(ngModel)]=\"toolbarData.selectedSize\">\n <option value=\"\" selected>Default</option>\n <option value=\"clamp(0.75rem, 2vw, 1rem)\">Small</option>\n <option value=\"clamp(1rem, 3vw, 1.5rem)\">Medium</option>\n <option value=\"clamp(1.25rem, 4vw, 2rem)\">Large</option>\n <option value=\"clamp(2rem, 5vw, 3rem)\">Extra Large</option>\n <option value=\"clamp(3.5rem, 7vw, 4.5rem)\">Huge</option>\n </select>\n\n <button class=\"tool\" (click)=\"formatText('insertOrderedList')\" [ngClass]=\"{'selectedTool': toolbarData.selectedList === 'insertOrderedList'}\"><mat-icon>format_list_numbered</mat-icon></button>\n <button class=\"tool\" (click)=\"formatText('insertUnorderedList')\" [ngClass]=\"{'selectedTool': toolbarData.selectedList === 'insertUnorderedList'}\"><mat-icon> format_list_bulleted</mat-icon></button>\n\n <button class=\"tool\" (click)=\"formatText('justifyLeft')\" [ngClass]=\"{'selectedTool': toolbarData.selectedAlignment === 'justifyLeft'}\"><mat-icon> format_align_left</mat-icon></button>\n <button class=\"tool\" (click)=\"formatText('justifyCenter')\" [ngClass]=\"{'selectedTool': toolbarData.selectedAlignment === 'justifyCenter'}\"><mat-icon> format_align_center</mat-icon></button>\n <button class=\"tool\" (click)=\"formatText('justifyRight')\" [ngClass]=\"{'selectedTool': toolbarData.selectedAlignment === 'justifyRight'}\"><mat-icon> format_align_right</mat-icon></button>\n\n <div class=\"colorType\">\n <button class=\"solid\" [ngClass]=\"{'solidColorSelected': selectedColorType === 'SOLID'}\" (click)=\"selectedColorType = 'SOLID'\">Solid</button>\n <button class=\"gradient\" [ngClass]=\"{'gradientColorSelected': selectedColorType === 'GRADIENT'}\" (click)=\"selectedColorType = 'GRADIENT'\">Gradient</button>\n </div>\n\n <button class=\"tool color-picker-btn\" (click)=\"openColorPicker()\" *ngIf=\"selectedColorType === 'SOLID'\">\n <mat-icon>format_color_text</mat-icon>\n <input type=\"color\" #colorPicker class=\"hidden-color-picker\" (input)=\"changeColor($event)\" [(ngModel)]=\"toolbarData.selectedColor\">\n </button>\n\n <div class=\"colorType\" *ngIf=\"selectedColorType === 'GRADIENT'\">\n <button class=\"tool color-picker-btn\" (click)=\"primaryColorPicker.click()\">\n <mat-icon>format_color_text</mat-icon>\n <input type=\"color\" #primaryColorPicker class=\"hidden-color-picker\" (input)=\"changeGradientColor()\" [(ngModel)]=\"primaryColor\">\n </button>\n <button class=\"tool color-picker-btn\" (click)=\"secondaryColorPicker.click()\">\n <mat-icon>format_color_text</mat-icon>\n <input type=\"color\" #secondaryColorPicker class=\"hidden-color-picker\" (input)=\"changeGradientColor()\" [(ngModel)]=\"secondaryColor\">\n </button>\n </div>\n </div>\n\n <div class=\"suggestion-box\" [ngStyle]=\"{'top.px': suggestionY}\" [style.right]=\"rightZero ? '0px' : 'auto'\" [style.left]=\"!rightZero ? '0px' : 'auto'\" *ngIf=\"editable && label && showSuggestion\" #suggestion>\n <div class=\"suggestion\" (click)=\"regenerateText()\">\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/887493c1742273970151Frame%201244831740.png\" alt=\"\">\n <div>\n <p class=\"name\">Regenerate Text</p>\n <p class=\"desc\">Get a fresh variation of a current text</p>\n </div>\n </div>\n </div>\n</div>\n", styles: [".toolbar,.tool option{font-family:var(--primary-font-family)}mat-icon{font-family:Material Icons!important}.editor-container{position:relative;display:inline-block;width:100%}.editor-container div{outline:none}.editable-text{padding:4px;cursor:text}.toolbar{position:absolute;background:#fff;border:1px solid #ccc;box-shadow:0 2px 5px #0003;display:flex;gap:5px;align-items:center;z-index:100000;box-shadow:#00000029 0 1px 4px;padding:5px 15px;border-radius:22px}.toolbar button{background:none;border:none;padding:5px 8px;cursor:pointer;font-weight:700;display:flex;align-items:center}.toolbar button:hover{background:#ddd}.toolbar select{padding:3px;border:none;outline:none;font-size:14px;font-weight:600;cursor:pointer}.toolbar input[type=color]{border:none;width:30px;height:30px;padding:0;cursor:pointer}.color-picker-btn{position:relative;background:none;border:none;cursor:pointer;padding:5px}.hidden-color-picker{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;cursor:pointer}.border{border:1px solid #E9E9E9!important;border-radius:8px}.selectedTool{background:var(--primary-bg-color)!important;color:#fff;border-radius:5px}p{margin-bottom:0rem!important}.suggestion-box{position:absolute;background:#fff;border:1px solid #ccc;box-shadow:0 2px 5px #0003;z-index:10000;box-shadow:#00000029 0 1px 4px;padding:5px 15px;border-radius:10px}.suggestion{display:flex;gap:10px;width:307px;align-items:center;cursor:pointer}.suggestion img{border-radius:5px;width:32px;height:32px;background:#faf1fc;padding:3px}.suggestion .name{color:#000;font-family:var(--primary-font-family)}.suggestion .desc{color:#000;font-size:12px;color:#918585;font-family:var(--primary-font-family)}.colorType{display:flex;border:1px solid #E9E9E9;border-radius:5px;height:35px}.colorType .solid{border-right:1px solid #E9E9E9;font-size:14px!important;font-family:Mulish}.colorType .gradient{font-size:14px!important;font-family:Mulish}.solidColorSelected{background:var(--primary-bg-color)!important;color:#fff;border-top-left-radius:5px;border-bottom-left-radius:5px}.gradientColorSelected{background:var(--primary-bg-color)!important;color:#fff;border-top-right-radius:5px;border-bottom-right-radius:5px}@media screen and (max-width: 475px){.toolbar{max-width:100%;flex-wrap:wrap;row-gap:15px}.tool{width:max-content!important}}\n"] }]
321
+ ], template: "<div class=\"editor-container\" [ngClass]=\"{'border': editable}\" #parentElement>\r\n <div [contenteditable]=\"editable\" [(ngModel)]=\"value\" class=\"editable-text\" (mouseup)=\"showToolbar($event)\" #editor\r\n (ngModelChange)=\"updateText($event)\" (mousedown)=\"hideToolbar($event)\">\r\n </div>\r\n\r\n <div class=\"toolbar\" *ngIf=\"editable && show\" [ngStyle]=\"{'top.px': toolbarY}\" [style.right]=\"rightZero ? '0px' : 'auto'\" [style.left]=\"!rightZero ? '0px' : 'auto'\" #toolbar >\r\n <!-- <select class=\"tool\" (change)=\"onFormatChange($event)\" [(ngModel)]=\"toolbarData.selectedHeading\">\r\n <option value=\"H1\">Heading1</option>\r\n <option value=\"H2\">Heading2</option>\r\n <option value=\"H3\">Heading3</option>\r\n <option value=\"div\">Text</option>\r\n </select> -->\r\n\r\n <button class=\"tool\" (click)=\"formatText('bold')\" [ngClass]=\"{'selectedTool': toolbarData.isBold}\"><mat-icon> format_bold</mat-icon></button>\r\n <button class=\"tool\" (click)=\"formatText('italic')\" [ngClass]=\"{'selectedTool': toolbarData.isItalic}\"><mat-icon> format_italic</mat-icon></button>\r\n <button class=\"tool\" (click)=\"formatText('underline')\" [ngClass]=\"{'selectedTool': toolbarData.isUnderlined}\"><mat-icon> format_underlined</mat-icon></button>\r\n\r\n <select class=\"tool\" (change)=\"changeFontSize($event)\" [(ngModel)]=\"toolbarData.selectedSize\">\r\n <option value=\"\" selected>Default</option>\r\n <option value=\"clamp(0.75rem, 2vw, 1rem)\">Small</option>\r\n <option value=\"clamp(1rem, 3vw, 1.5rem)\">Medium</option>\r\n <option value=\"clamp(1.25rem, 4vw, 2rem)\">Large</option>\r\n <option value=\"clamp(2rem, 5vw, 3rem)\">Extra Large</option>\r\n <option value=\"clamp(3.1rem, 7vw, 4.5rem)\">Huge</option>\r\n </select>\r\n\r\n <button class=\"tool\" (click)=\"formatText('insertOrderedList')\" [ngClass]=\"{'selectedTool': toolbarData.selectedList === 'insertOrderedList'}\"><mat-icon>format_list_numbered</mat-icon></button>\r\n <button class=\"tool\" (click)=\"formatText('insertUnorderedList')\" [ngClass]=\"{'selectedTool': toolbarData.selectedList === 'insertUnorderedList'}\"><mat-icon> format_list_bulleted</mat-icon></button>\r\n\r\n <button class=\"tool\" (click)=\"formatText('justifyLeft')\" [ngClass]=\"{'selectedTool': toolbarData.selectedAlignment === 'justifyLeft'}\"><mat-icon> format_align_left</mat-icon></button>\r\n <button class=\"tool\" (click)=\"formatText('justifyCenter')\" [ngClass]=\"{'selectedTool': toolbarData.selectedAlignment === 'justifyCenter'}\"><mat-icon> format_align_center</mat-icon></button>\r\n <button class=\"tool\" (click)=\"formatText('justifyRight')\" [ngClass]=\"{'selectedTool': toolbarData.selectedAlignment === 'justifyRight'}\"><mat-icon> format_align_right</mat-icon></button>\r\n\r\n <div class=\"colorType\">\r\n <button class=\"solid\" [ngClass]=\"{'solidColorSelected': selectedColorType === 'SOLID'}\" (click)=\"selectedColorType = 'SOLID'\">Solid</button>\r\n <button class=\"gradient\" [ngClass]=\"{'gradientColorSelected': selectedColorType === 'GRADIENT'}\" (click)=\"selectedColorType = 'GRADIENT'\">Gradient</button>\r\n </div>\r\n\r\n <button class=\"tool color-picker-btn\" (click)=\"openColorPicker()\" *ngIf=\"selectedColorType === 'SOLID'\">\r\n <mat-icon>format_color_text</mat-icon>\r\n <input type=\"color\" #colorPicker class=\"hidden-color-picker\" (input)=\"changeColor($event)\" [(ngModel)]=\"toolbarData.selectedColor\">\r\n </button>\r\n \r\n <div class=\"colorType\" *ngIf=\"selectedColorType === 'GRADIENT'\">\r\n <button class=\"tool color-picker-btn\" (click)=\"openColorPicker(); primaryColorPicker.click()\">\r\n <mat-icon>format_color_text</mat-icon>\r\n <input type=\"color\" #primaryColorPicker class=\"hidden-color-picker\" (input)=\"changeGradientColor()\" [(ngModel)]=\"primaryColor\">\r\n </button>\r\n <button class=\"tool color-picker-btn\" (click)=\"openColorPicker(); secondaryColorPicker.click()\">\r\n <mat-icon>format_color_text</mat-icon>\r\n <input type=\"color\" #secondaryColorPicker class=\"hidden-color-picker\" (input)=\"changeGradientColor()\" [(ngModel)]=\"secondaryColor\">\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"suggestion-box\" [ngStyle]=\"{'top.px': suggestionY}\" [style.right]=\"rightZero ? '0px' : 'auto'\" [style.left]=\"!rightZero ? '0px' : 'auto'\" *ngIf=\"editable && label && showSuggestion\" #suggestion>\r\n <div class=\"suggestion\" (click)=\"regenerateText()\">\r\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/887493c1742273970151Frame%201244831740.png\" alt=\"\">\r\n <div>\r\n <p class=\"name\">Regenerate Text</p>\r\n <p class=\"desc\">Get a fresh variation of a current text</p>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".toolbar,.tool option{font-family:var(--primary-font-family)}mat-icon{font-family:Material Icons!important}.editor-container{position:relative;display:inline-block;overflow:visible;width:100%}.editor-container div{outline:none}.editable-text{padding:4px;cursor:text}.toolbar{position:absolute;background:#fff;border:1px solid #ccc;box-shadow:0 2px 5px #0003;display:flex;gap:5px;align-items:center;z-index:100000;box-shadow:#00000029 0 1px 4px;padding:5px 15px;border-radius:22px}.toolbar button{background:none;border:none;padding:5px 8px;cursor:pointer;font-weight:700;display:flex;align-items:center}.toolbar button:hover{background:#ddd}.toolbar select{padding:3px;border:none;outline:none;font-size:14px;font-weight:600;cursor:pointer}.toolbar input[type=color]{border:none;width:30px;height:30px;padding:0;cursor:pointer}.color-picker-btn{position:relative;background:none;border:none;cursor:pointer;padding:5px}.hidden-color-picker{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;cursor:pointer}.border{border:1px solid #E9E9E9!important;border-radius:8px}.selectedTool{background:var(--primary-bg-color)!important;color:#fff;border-radius:5px}p{margin-bottom:0rem!important}.suggestion-box{position:absolute;background:#fff;border:1px solid #ccc;box-shadow:0 2px 5px #0003;z-index:10000;box-shadow:#00000029 0 1px 4px;padding:5px 15px;border-radius:10px}.suggestion{display:flex;gap:10px;width:307px;align-items:center;cursor:pointer}.suggestion img{border-radius:5px;width:32px;height:32px;background:#faf1fc;padding:3px}.suggestion .name{color:#000;font-family:var(--primary-font-family)}.suggestion .desc{color:#000;font-size:12px;color:#918585;font-family:var(--primary-font-family)}.colorType{display:flex;border:1px solid #E9E9E9;border-radius:5px;height:35px}.colorType .solid{border-right:1px solid #E9E9E9;font-size:14px!important;font-family:Mulish}.colorType .gradient{font-size:14px!important;font-family:Mulish}.solidColorSelected{background:var(--primary-bg-color)!important;color:#fff;border-top-left-radius:5px;border-bottom-left-radius:5px}.gradientColorSelected{background:var(--primary-bg-color)!important;color:#fff;border-top-right-radius:5px;border-bottom-right-radius:5px}@media screen and (max-width: 475px){.toolbar{max-width:100%;flex-wrap:wrap;row-gap:15px}.tool{width:max-content!important}}\n"] }]
322
322
  }], ctorParameters: () => [{ type: i1.ElementServiceService }, { type: Object, decorators: [{
323
323
  type: Inject,
324
324
  args: [PLATFORM_ID]
@@ -348,4 +348,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
348
348
  }], label: [{
349
349
  type: Input
350
350
  }] } });
351
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lbGVtZW50cy90ZXh0LWVkaXRvci90ZXh0LWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL3RleHQtZWRpdG9yL3RleHQtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3RJLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN6RixPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7QUFnQnZELE1BQU0sT0FBTyxtQkFBbUI7SUFnQzlCLFlBQW9CLGFBQW9DLEVBQ3pCLFVBQWtCO1FBRDdCLGtCQUFhLEdBQWIsYUFBYSxDQUF1QjtRQUN6QixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBMUJ4QyxVQUFLLEdBQVcscUNBQXFDLENBQUM7UUFDckQsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzFDLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFJbkMsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUNiLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFDYixnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixjQUFTLEdBQVksSUFBSSxDQUFDO1FBQzFCLG1CQUFjLEdBQVksS0FB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QVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDWixXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ0ksYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQUNrQixVQUFVO3NCQUFyRCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBRWpDLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNFLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT3V0cHV0LCBQTEFURk9STV9JRCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb250ZW50ZWRpdGFibGVWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnRlZGl0YWJsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Jlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBFbGVtZW50U2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi9lZGl0b3Itc2VydmljZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2ltcG8tdGV4dC1lZGl0b3InLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIENvbnRlbnRlZGl0YWJsZVZhbHVlQWNjZXNzb3IsXG4gICAgTWF0SWNvbk1vZHVsZVxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dC1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdGV4dC1lZGl0b3IuY29tcG9uZW50LmNzcydcbn0pXG5leHBvcnQgY2xhc3MgVGV4dEVkaXRvckNvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGQoJ3Rvb2xiYXInLCB7IHN0YXRpYzogZmFsc2UgfSkgdG9vbGJhciE6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2VkaXRvcicsIHsgc3RhdGljOiBmYWxzZSB9KSBlZGl0b3IhOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdjb2xvclBpY2tlcicpIGNvbG9yUGlja2VyITogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgncGFyZW50RWxlbWVudCcpIHBhcmVudEVsZW1lbnQhOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdzdWdnZXN0aW9uJywgeyBzdGF0aWM6IGZhbHNlIH0pIHN1Z2dlc3Rpb24hOiBFbGVtZW50UmVmO1xuXG4gIEBJbnB1dCgpIHZhbHVlOiBzdHJpbmcgPSAnPHA+SGVsbG8gdGhpcyBpcyBwYWxhc2ggbWFraGlqYTwvcD4nO1xuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQElucHV0KCkgZWRpdGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2VjdGlvbklkPzogc3RyaW5nO1xuICBASW5wdXQoKSBsYWJlbD86IHN0cmluZztcblxuICBzaG93ID0gZmFsc2U7XG4gIHRvb2xiYXJZID0gMDtcbiAgc3VnZ2VzdGlvblkgPSAwO1xuICByaWdodFplcm86IGJvb2xlYW4gPSB0cnVlO1xuICBzaG93U3VnZ2VzdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuICB0b29sYmFyRGF0YTogYW55ID0ge1xuICAgIHNlbGVjdGVkSGVhZGluZzogJycsXG4gICAgaXNCb2xkOiBmYWxzZSxcbiAgICBpc0l0YWxpYzogZmFsc2UsXG4gICAgaXNVbmRlcmxpbmVkOiBmYWxzZSxcbiAgICBzZWxlY3RlZFNpemU6ICcnLFxuICAgIHNlbGVjdGVkTGlzdDogJycsXG4gICAgc2VsZWN0ZWRBbGlnbm1lbnQ6ICcnLFxuICAgIHNlbGVjdGVkQ29sb3I6ICcnXG4gIH1cbiAgc2VsZWN0ZWRDb2xvclR5cGU6ICdTT0xJRCcgfCAnR1JBRElFTlQnID0gJ1NPTElEJztcbiAgcHJpbWFyeUNvbG9yOiBzdHJpbmcgPSAnIzAwMDAwMCc7XG4gIHNlY29uZGFyeUNvbG9yOiBzdHJpbmcgPSAnIzAwMDAwMCc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlZGl0b3JTZXJ2aWNlOiBFbGVtZW50U2VydmljZVNlcnZpY2UsXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBPYmplY3RcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5oaWRlVG9vbGJhci5iaW5kKHRoaXMpKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5oaWRlVG9vbGJhci5iaW5kKHRoaXMpKTtcbiAgICB9XG4gIH1cblxuXG4gIHNob3dUb29sYmFyKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpIHx8ICF0aGlzLmVkaXRhYmxlKSByZXR1cm47XG5cbiAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gICAgaWYgKHNlbGVjdGlvbiA9PSBudWxsKVxuICAgICAgcmV0dXJuO1xuXG4gICAgY29uc3QgcmFuZ2UgPSBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKTtcbiAgICBjb25zdCByZWN0ID0gcmFuZ2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgcGFyZW50UmVjdCA9IHRoaXMucGFyZW50RWxlbWVudC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHRvcEZyb21QYXJlbnQgPSByZWN0LnRvcCAtIHBhcmVudFJlY3QudG9wO1xuXG4gICAgaWYgKHNlbGVjdGlvbiAmJiBzZWxlY3Rpb24ucmFuZ2VDb3VudCA+IDApIHtcbiAgICAgIHRoaXMuc3VnZ2VzdGlvblkgPSB0b3BGcm9tUGFyZW50ICsgMzA7XG4gICAgICB0aGlzLnNob3dTdWdnZXN0aW9uID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoc2VsZWN0aW9uICYmIHNlbGVjdGlvbi50b1N0cmluZygpLnRyaW0oKSAhPT0gJycpIHtcbiAgICAgIGNvbnN0IHRvb2xiYXJXaWR0aCA9IDU0MTtcblxuICAgICAgY29uc3Qgdmlld3BvcnRXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgICAgY29uc3QgcmlnaHRQb3NpdG9uID0gdmlld3BvcnRXaWR0aCAtIHBhcmVudFJlY3QubGVmdDtcbiAgICAgIGlmIChyaWdodFBvc2l0b24gKyB0b29sYmFyV2lkdGggPiB2aWV3cG9ydFdpZHRoKSB7XG4gICAgICAgIHRoaXMucmlnaHRaZXJvID0gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJpZ2h0WmVybyA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIHRoaXMudG9vbGJhclkgPSB0b3BGcm9tUGFyZW50ICsgMzA7XG5cbiAgICAgIHRoaXMucmVGb3JtYXR0aW5nRGF0YSgpO1xuICAgICAgdGhpcy5yZWFkRm9ybWF0dGluZ1Byb3BlcnRpZXMoKTtcblxuICAgICAgdGhpcy5zaG93ID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zaG93ID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgaGlkZVRvb2xiYXIoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkgfHwgIXRoaXMuZWRpdGFibGUpIHJldHVybjtcblxuICAgIGNvbnN0IGNsaWNrZWRJbnNpZGVFZGl0b3IgPSB0aGlzLmVkaXRvcj8ubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpO1xuICAgIGNvbnN0IGNsaWNrZWRJbnNpZGVUb29sYmFyID0gdGhpcy50b29sYmFyPy5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCk7XG4gICAgY29uc3QgY2xpY2tlZEluc2lkZVN1Z2dlc3Rpb24gPSB0aGlzLnN1Z2dlc3Rpb24/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KTtcblxuICAgIC8vIEhpZGUgdGhlIHRvb2xiYXIgaWYgdGhlIGNsaWNrIGlzIG91dHNpZGUgYm90aCB0aGUgZWRpdG9yIGFuZCB0b29sYmFyXG4gICAgaWYgKCFjbGlja2VkSW5zaWRlRWRpdG9yICYmICFjbGlja2VkSW5zaWRlVG9vbGJhcikge1xuICAgICAgdGhpcy5zaG93ID0gZmFsc2U7XG4gICAgfVxuICAgIGlmICghY2xpY2tlZEluc2lkZUVkaXRvciAmJiAhY2xpY2tlZEluc2lkZVN1Z2dlc3Rpb24pIHtcbiAgICAgIHRoaXMuc2hvd1N1Z2dlc3Rpb24gPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBmb3JtYXRUZXh0KGNvbW1hbmQ6IHN0cmluZywgdmFsdWU6IHN0cmluZyA9ICcnKSB7XG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG5cbiAgICAvLyAgIGlmIChjb21tYW5kID09PSAnZm9ybWF0QmxvY2snKSB7XG4gICAgLy8gICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAvLyAgICAgaWYgKCFzZWxlY3Rpb24gfHwgc2VsZWN0aW9uLnJhbmdlQ291bnQgPT09IDApIHJldHVybjtcblxuICAgIC8vICAgICBjb25zdCByYW5nZSA9IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApO1xuICAgIC8vICAgICBjb25zdCBzZWxlY3RlZFRleHQgPSBzZWxlY3Rpb24udG9TdHJpbmcoKTtcblxuICAgIC8vICAgICBpZiAoc2VsZWN0ZWRUZXh0KSB7XG4gICAgLy8gICAgICAgICBjb25zdCBuZXdFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh2YWx1ZSk7XG4gICAgLy8gICAgICAgICBuZXdFbGVtZW50LnRleHRDb250ZW50ID0gc2VsZWN0ZWRUZXh0O1xuXG4gICAgLy8gICAgICAgICByYW5nZS5kZWxldGVDb250ZW50cygpO1xuICAgIC8vICAgICAgICAgcmFuZ2UuaW5zZXJ0Tm9kZShuZXdFbGVtZW50KTtcblxuICAgIC8vICAgICAgICAgdGhpcy50b29sYmFyRGF0YS5zZWxlY3RlZEhlYWRpbmcgPSB2YWx1ZTtcbiAgICAvLyAgICAgICAgIHJldHVybjtcbiAgICAvLyAgICAgfVxuICAgIC8vIH1cbiAgICBkb2N1bWVudC5leGVjQ29tbWFuZChjb21tYW5kLCBmYWxzZSwgdmFsdWUpO1xuXG4gICAgaWYgKGNvbW1hbmQgPT09ICdib2xkJylcbiAgICAgIHRoaXMudG9vbGJhckRhdGEuaXNCb2xkID0gIXRoaXMudG9vbGJhckRhdGEuaXNCb2xkO1xuICAgIGlmIChjb21tYW5kID09PSAnaXRhbGljJylcbiAgICAgIHRoaXMudG9vbGJhckRhdGEuaXNJdGFsaWMgPSAhdGhpcy50b29sYmFyRGF0YS5pc0l0YWxpYztcbiAgICBpZiAoY29tbWFuZCA9PT0gJ3VuZGVybGluZScpXG4gICAgICB0aGlzLnRvb2xiYXJEYXRhLmlzVW5kZXJsaW5lZCA9ICF0aGlzLnRvb2xiYXJEYXRhLmlzVW5kZXJsaW5lZFxuICAgIGlmIChjb21tYW5kID09PSAnaW5zZXJ0T3JkZXJlZExpc3QnIHx8IGNvbW1hbmQgPT09ICdpbnNlcnRVbm9yZGVyZWRMaXN0JylcbiAgICAgIHRoaXMudG9vbGJhckRhdGEuc2VsZWN0ZWRMaXN0ID0gY29tbWFuZCA9PT0gdGhpcy50b29sYmFyRGF0YS5zZWxlY3RlZExpc3QgPyAnJyA6IGNvbW1hbmQ7XG4gICAgaWYgKGNvbW1hbmQgPT09ICdqdXN0aWZ5TGVmdCcgfHwgY29tbWFuZCA9PT0gJ2p1c3RpZnlDZW50ZXInIHx8IGNvbW1hbmQgPT09ICdqdXN0aWZ5UmlnaHQnKVxuICAgICAgdGhpcy50b29sYmFyRGF0YS5zZWxlY3RlZEFsaWdubWVudCA9IGNvbW1hbmQgPT09IHRoaXMudG9vbGJhckRhdGEuc2VsZWN0ZWRBbGlnbm1lbnQgPyAnJyA6IGNvbW1hbmQ7XG4gICAgaWYgKGNvbW1hbmQgPT09ICdmb3JtYXRCbG9jaycpXG4gICAgICB0aGlzLnRvb2xiYXJEYXRhLnNlbGVjdGVkSGVhZGluZyA9IHZhbHVlO1xuICB9XG5cbiAgY2hhbmdlRm9udFNpemUoZXZlbnQ6IGFueSkge1xuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuXG4gICAgY29uc3Qgc2l6ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcblxuICAgIC8vIEFwcGx5IGEgZGVmYXVsdCBzaXplIG9mIDQgKG5lZWRlZCBmb3IgZXhlY0NvbW1hbmQgdG8gd29yaylcbiAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnZm9udFNpemUnLCBmYWxzZSwgJzQnKTtcblxuICAgIC8vIENvbnZlcnQgc2VsZWN0ZWQgZm9udCBlbGVtZW50cyB0byBoYXZlIGFjdHVhbCBmb250LXNpemUgaW5zdGVhZCBvZiBcInNpemVcIiBhdHRyaWJ1dGVcbiAgICBjb25zdCBlbGVtZW50cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJmb250W3NpemU9JzQnXVwiKTtcbiAgICBlbGVtZW50cy5mb3JFYWNoKGVsID0+IHtcbiAgICAgIGNvbnN0IGh0bWxFbGVtZW50ID0gZWwgYXMgSFRNTEVsZW1lbnQ7IC8vIOKchSBFeHBsaWNpdGx5IGNhc3QgdG8gSFRNTEVsZW1lbnRcbiAgICAgIGh0bWxFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnc2l6ZScpOyAvLyBSZW1vdmUgb2xkIHNpemUgYXR0cmlidXRlXG4gICAgICBodG1sRWxlbWVudC5zdHlsZS5mb250U2l6ZSA9IHNpemU7IC8vIEFwcGx5IENTUyBmb250IHNpemVcbiAgICB9KTtcbiAgICB0aGlzLnRvb2xiYXJEYXRhLnNlbGVjdGVkU2l6ZSA9IHNpemU7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMuZWRpdG9yLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MKTtcbiAgICAvLyB0aGlzLnNob3cgPSBmYWxzZTsgLy8gSGlkZSB0b29sYmFyIGFmdGVyIGFjdGlvblxuICB9XG5cbiAgY2hhbmdlQ29sb3IoZXZlbnQ6IGFueSkge1xuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgY29sb3IgPSBldmVudC50YXJnZXQudmFsdWU7XG5cbiAgICAvLyBGaXJzdCBjaGVjayBpZiB3ZSBuZWVkIHRvIGNsZWFyIGdyYWRpZW50IHN0eWxpbmdcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gICAgaWYgKHNlbGVjdGlvbiAmJiBzZWxlY3Rpb24ucmFuZ2VDb3VudCA+IDApIHtcbiAgICAgIGNvbnN0IHJhbmdlID0gc2VsZWN0aW9uLmdldFJhbmdlQXQoMCk7XG4gICAgICBsZXQgdGFyZ2V0RWxlbWVudDogTm9kZSB8IG51bGwgPSByYW5nZS5jb21tb25BbmNlc3RvckNvbnRhaW5lcjtcblxuICAgICAgaWYgKCF0YXJnZXRFbGVtZW50KSByZXR1cm47XG5cbiAgICAgIGlmICh0YXJnZXRFbGVtZW50Lm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSAmJiB0YXJnZXRFbGVtZW50LnBhcmVudEVsZW1lbnQpIHtcbiAgICAgICAgdGFyZ2V0RWxlbWVudCA9IHRhcmdldEVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICAgIH1cblxuICAgICAgLy8gSWYgdGhlIHRhcmdldCBlbGVtZW50IGhhcyBncmFkaWVudCBzdHlsaW5nLCB3ZSBuZWVkIHRvIGNsZWFyIGl0IGZpcnN0XG4gICAgICBpZiAodGFyZ2V0RWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgIC8vIENoZWNrIGlmIGVsZW1lbnQgaGFzIGdyYWRpZW50IHN0eWxpbmdcbiAgICAgICAgY29uc3QgaGFzR3JhZGllbnRTdHlsaW5nID1cbiAgICAgICAgICB0YXJnZXRFbGVtZW50LnN0eWxlLmJhY2tncm91bmRDbGlwID09PSAndGV4dCcgfHxcbiAgICAgICAgICB0YXJnZXRFbGVtZW50LnN0eWxlLndlYmtpdEJhY2tncm91bmRDbGlwID09PSAndGV4dCc7XG5cbiAgICAgICAgaWYgKGhhc0dyYWRpZW50U3R5bGluZykge1xuICAgICAgICAgIC8vIFJlbW92ZSBncmFkaWVudCBzdHlsaW5nXG4gICAgICAgICAgdGFyZ2V0RWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kID0gJyc7XG4gICAgICAgICAgdGFyZ2V0RWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kQ2xpcCA9ICcnO1xuICAgICAgICAgIHRhcmdldEVsZW1lbnQuc3R5bGUud2Via2l0QmFja2dyb3VuZENsaXAgPSAnJztcbiAgICAgICAgICB0YXJnZXRFbGVtZW50LnN0eWxlLndlYmtpdFRleHRGaWxsQ29sb3IgPSAnJztcblxuICAgICAgICAgIC8vIEZvcmNlIHJlbW92ZSB0aGUgdHJhbnNwYXJlbmN5IHRoYXQgd2FzIGFwcGxpZWQgZm9yIGdyYWRpZW50c1xuICAgICAgICAgIHRhcmdldEVsZW1lbnQuc3R5bGUuY29sb3IgPSBjb2xvcjtcblxuICAgICAgICAgIC8vIEVuc3VyZSB0aGUgY2hhbmdlIGlzIGVtaXR0ZWRcbiAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy5lZGl0b3IubmF0aXZlRWxlbWVudC5pbm5lckhUTUwpO1xuICAgICAgICAgIHRoaXMudG9vbGJhckRhdGEuc2VsZWN0ZWRDb2xvciA9IGNvbG9yO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIHdlIGRpZG4ndCBmaW5kIGFuIGVsZW1lbnQgd2l0aCBncmFkaWVudCBzdHlsaW5nIG9yIGNvdWxkbid0IGhhbmRsZSBpdCxcbiAgICAvLyBmYWxsIGJhY2sgdG8gdGhlIHN0YW5kYXJkIGV4ZWNDb21tYW5kIGFwcHJvYWNoXG4gICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2ZvcmVDb2xvcicsIGZhbHNlLCBjb2xvcik7XG4gICAgdGhpcy50b29sYmFyRGF0YS5zZWxlY3RlZENvbG9yID0gY29sb3I7XG4gIH1cbiAgdXBkYXRlVGV4dChldmVudDogRXZlbnQpIHtcbiAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmVkaXRvci5uYXRpdmVFbGVtZW50LmlubmVySFRNTClcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy5lZGl0b3IubmF0aXZlRWxlbWVudC5pbm5lckhUTUwpO1xuICB9XG5cbiAgb25Gb3JtYXRDaGFuZ2UoZXZlbnQ6IEV2ZW50KSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTFNlbGVjdEVsZW1lbnQpLnZhbHVlO1xuICAgIHRoaXMuZm9ybWF0VGV4dCgnZm9ybWF0QmxvY2snLCBzZWxlY3RlZFZhbHVlKTtcbiAgfVxuXG5cbiAgb3BlbkNvbG9yUGlja2VyKCkge1xuICAgIHRoaXMuY29sb3JQaWNrZXIubmF0aXZlRWxlbWVudC5jbGljaygpOyAvLyBQcm9ncmFtbWF0aWNhbGx5IHRyaWdnZXIgaW5wdXRcbiAgfVxuXG4gIHJlYWRGb3JtYXR0aW5nUHJvcGVydGllcygpIHtcbiAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybjtcblxuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICBpZiAoIXNlbGVjdGlvbikgcmV0dXJuO1xuICAgIGNvbnN0IG5vZGUgPSBzZWxlY3Rpb24uZm9jdXNOb2RlIGFzIEhUTUxFbGVtZW50O1xuXG4gICAgLy8gQ2hlY2sgaWYgbm9kZSBpcyBudWxsXG4gICAgaWYgKCFub2RlKSByZXR1cm47XG5cbiAgICBsZXQgZWxlbWVudCA9IG5vZGUucGFyZW50RWxlbWVudDtcbiAgICB3aGlsZSAoZWxlbWVudCkge1xuICAgICAgY29uc3Qgbm9kZU5hbWUgPSBlbGVtZW50Lm5vZGVOYW1lO1xuXG4gICAgICBpZiAobm9kZU5hbWUgPT09ICdIMScgfHwgbm9kZU5hbWUgPT09ICdIMicgfHwgbm9kZU5hbWUgPT09ICdIMycpIHtcbiAgICAgICAgdGhpcy50b29sYmFyRGF0YS5zZWxlY3RlZEhlYWRpbmcgPSBub2RlTmFtZTtcbiAgICAgIH0gZWxzZSBpZiAobm9kZU5hbWUgPT09ICdCJyB8fCBub2RlTmFtZSA9PT0gJ1NUUk9ORycpIHtcbiAgICAgICAgdGhpcy50b29sYmFyRGF0YS5pc0JvbGQgPSB0cnVlO1xuICAgICAgfSBlbHNlIGlmIChub2RlTmFtZSA9PT0gJ0knIHx8IG5vZGVOYW1lID09PSAnRU0nKSB7XG4gICAgICAgIHRoaXMudG9vbGJhckRhdGEuaXNJdGFsaWMgPSB0cnVlO1xuICAgICAgfSBlbHNlIGlmIChub2RlTmFtZSA9PT0gJ1UnKSB7XG4gICAgICAgIHRoaXMudG9vbGJhckRhdGEuaXNVbmRlcmxpbmVkID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSBpZiAobm9kZU5hbWUgPT09ICdPTCcpIHtcbiAgICAgICAgdGhpcy50b29sYmFyRGF0YS5zZWxlY3RlZExpc3QgPSAnaW5zZXJ0T3JkZXJlZExpc3QnO1xuICAgICAgfSBlbHNlIGlmIChub2RlTmFtZSA9PT0gJ1VMJykge1xuICAgICAgICB0aGlzLnRvb2xiYXJEYXRhLnNlbGVjdGVkTGlzdCA9ICdpbnNlcnRVbm9yZGVyZWRMaXN0JztcbiAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5zdHlsZS50ZXh0QWxpZ24pIHtcbiAgICAgICAgdGhpcy50b29sYmFyRGF0YS5zZWxlY3RlZEFsaWdubWVudCA9IGBqdXN0aWZ5JHtlbGVtZW50LnN0eWxlLnRleHRBbGlnbi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGVsZW1lbnQuc3R5bGUudGV4dEFsaWduLnNsaWNlKDEpfWA7XG4gICAgICB9IGVsc2UgaWYgKGVsZW1lbnQuc3R5bGUuZm9udFNpemUpIHtcbiAgICAgICAgdGhpcy50b29sYmFyRGF0YS5zZWxlY3RlZFNpemUgPSBlbGVtZW50LnN0eWxlLmZvbnRTaXplO1xuICAgICAgfSBlbHNlIGlmIChlbGVtZW50LnN0eWxlLmNvbG9yKSB7XG4gICAgICAgIHRoaXMudG9vbGJhckRhdGEuc2VsZWN0ZWRDb2xvciA9IGVsZW1lbnQuc3R5bGUuY29sb3JcbiAgICAgIH1cblxuXG4gICAgICBlbGVtZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgIH1cbiAgfVxuXG4gIHJlRm9ybWF0dGluZ0RhdGEoKSB7XG4gICAgdGhpcy50b29sYmFyRGF0YSA9IHtcbiAgICAgIHNlbGVjdGVkSGVhZGluZzogJycsXG4gICAgICBpc0JvbGQ6IGZhbHNlLFxuICAgICAgaXNJdGFsaWM6IGZhbHNlLFxuICAgICAgaXNVbmRlcmxpbmVkOiBmYWxzZSxcbiAgICAgIHNlbGVjdGVkU2l6ZTogJycsXG4gICAgICBzZWxlY3RlZExpc3Q6ICcnLFxuICAgICAgc2VsZWN0ZWRBbGlnbm1lbnQ6ICcnLFxuICAgICAgc2VsZWN0ZWRDb2xvcjogJydcbiAgICB9XG4gIH1cblxuICBjaGFuZ2VHcmFkaWVudENvbG9yKCkge1xuICAgIGNvbnN0IGNvbG9yID0gYGxpbmVhci1ncmFkaWVudCg5NC4yMmRlZywgJHt0aGlzLnByaW1hcnlDb2xvcn0gLTQuNDUlLCAke3RoaXMuc2Vjb25kYXJ5Q29sb3J9IDExMS44OCUpYFxuICAgIHRoaXMuYXBwbHlHcmFkaWVudFRvVGV4dChjb2xvcilcbiAgfVxuXG4gIGFwcGx5R3JhZGllbnRUb1RleHQoZ3JhZGllbnRWYWx1ZTogYW55KSB7XG4gICAgLy8gY29uc3QgZ3JhZGllbnRWYWx1ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTFNlbGVjdEVsZW1lbnQpLnZhbHVlO1xuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuXG4gICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgIGlmICghc2VsZWN0aW9uIHx8IHNlbGVjdGlvbi5yYW5nZUNvdW50ID09PSAwKSByZXR1cm47XG5cbiAgICAvLyBHZXQgdGhlIGN1cnJlbnQgc2VsZWN0aW9uIHJhbmdlXG4gICAgY29uc3QgcmFuZ2UgPSBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKTtcblxuICAgIC8vIENoZWNrIGlmIHNlbGVjdGlvbiBpcyBhbHJlYWR5IGluc2lkZSBhIHN0eWxlZCBlbGVtZW50XG4gICAgbGV0IHRhcmdldEVsZW1lbnQ6IE5vZGUgfCBudWxsID0gcmFuZ2UuY29tbW9uQW5jZXN0b3JDb250YWluZXI7XG4gICAgaWYgKCF0YXJnZXRFbGVtZW50KSByZXR1cm47XG5cbiAgICBpZiAodGFyZ2V0RWxlbWVudC5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUgJiYgdGFyZ2V0RWxlbWVudC5wYXJlbnRFbGVtZW50KSB7XG4gICAgICB0YXJnZXRFbGVtZW50ID0gdGFyZ2V0RWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgIH1cblxuICAgIC8vIFJlc3RvcmUgc2VsZWN0aW9uIGJlZm9yZSBhcHBseWluZyBzdHlsZXNcbiAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgc2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKTtcblxuXG4gICAgLy8gSWYgc2VsZWN0aW9uIGlzIGFscmVhZHkgaW5zaWRlIGEgc3R5bGVkIGVsZW1lbnQsIGp1c3QgdXBkYXRlIGl0cyBzdHlsZVxuICAgIGlmICh0YXJnZXRFbGVtZW50ICYmIHRhcmdldEVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgLy8gQXBwbHkgZ3JhZGllbnQgZGlyZWN0bHkgdG8gdGhlIGV4aXN0aW5nIGVsZW1lbnRcbiAgICAgIHRhcmdldEVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZCA9IGdyYWRpZW50VmFsdWU7XG4gICAgICB0YXJnZXRFbGVtZW50LnN0eWxlLmJhY2tncm91bmRDbGlwID0gJ3RleHQnO1xuICAgICAgdGFyZ2V0RWxlbWVudC5zdHlsZS53ZWJraXRCYWNrZ3JvdW5kQ2xpcCA9ICd0ZXh0JztcbiAgICAgIHRhcmdldEVsZW1lbnQuc3R5bGUuY29sb3IgPSAndHJhbnNwYXJlbnQnO1xuICAgICAgdGFyZ2V0RWxlbWVudC5zdHlsZS53ZWJraXRUZXh0RmlsbENvbG9yID0gJ3RyYW5zcGFyZW50JztcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWYgbm8gc3VpdGFibGUgZWxlbWVudCBleGlzdHMsIHdlIGhhdmUgdG8gY3JlYXRlIGEgbWluaW1hbCB3cmFwcGVyXG4gICAgICAvLyBVc2UgdGhlIGV4aXN0aW5nIGV4ZWNDb21tYW5kIHRvIGF2b2lkIG1hbnVhbCBET00gbWFuaXB1bGF0aW9uXG4gICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnZm9yZUNvbG9yJywgZmFsc2UsICcjMDAwMDAwJyk7XG5cbiAgICAgIC8vIEZpbmQgdGhlIGVsZW1lbnQgdGhhdCB3YXMganVzdCBjcmVhdGVkIGFuZCB1cGRhdGUgaXRcbiAgICAgIGNvbnN0IG5ld0VsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZm9udFtjb2xvcj1cIiMwMDAwMDBcIl0nKTtcbiAgICAgIGlmIChuZXdFbGVtZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IGxhc3RFbGVtZW50ID0gbmV3RWxlbWVudHNbbmV3RWxlbWVudHMubGVuZ3RoIC0gMV0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGxhc3RFbGVtZW50LnN0eWxlLmJhY2tncm91bmQgPSBncmFkaWVudFZhbHVlO1xuICAgICAgICBsYXN0RWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kQ2xpcCA9ICd0ZXh0JztcbiAgICAgICAgbGFzdEVsZW1lbnQuc3R5bGUud2Via2l0QmFja2dyb3VuZENsaXAgPSAndGV4dCc7XG4gICAgICAgIGxhc3RFbGVtZW50LnN0eWxlLmNvbG9yID0gJ3RyYW5zcGFyZW50JztcbiAgICAgICAgbGFzdEVsZW1lbnQuc3R5bGUud2Via2l0VGV4dEZpbGxDb2xvciA9ICd0cmFuc3BhcmVudCc7XG4gICAgICAgIGxhc3RFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnY29sb3InKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy5lZGl0b3IubmF0aXZlRWxlbWVudC5pbm5lckhUTUwpO1xuICB9XG5cbiAgcmVnZW5lcmF0ZVRleHQoKSB7XG4gICAgbGV0IHBheWxvYWQgPSB7XG4gICAgICBidXNpbmVzc0lkOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYnVzaW5lc3NJZCcpLFxuICAgICAgZGF0YUlkOiB0aGlzLnNlY3Rpb25JZCxcbiAgICAgIHN1YkluZHVzdHJ5SWQ6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdzdWJJbmR1c3RyeUlkJyksXG4gICAgICBzdWdnZXN0ZWREYXRhVHlwZTogJ0NPTVBPTkVOVCcsXG4gICAgICB0b25lOiAnUFJPRkVTU0lPTkFMJyxcbiAgICAgIHZhbHVlOiB0aGlzLnZhbHVlLFxuICAgICAgbGFiZWw6IHRoaXMubGFiZWxcbiAgICB9XG5cbiAgICB0aGlzLmVkaXRvclNlcnZpY2UucmVnZW5lcmF0ZVRleHQocGF5bG9hZCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgdGhpcy52YWx1ZSA9IHJlcy5kYXRhO1xuICAgIH0pXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJlZGl0b3ItY29udGFpbmVyXCIgW25nQ2xhc3NdPVwieydib3JkZXInOiBlZGl0YWJsZX1cIiAjcGFyZW50RWxlbWVudD5cbiAgPGRpdiBbY29udGVudGVkaXRhYmxlXT1cImVkaXRhYmxlXCIgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiIGNsYXNzPVwiZWRpdGFibGUtdGV4dFwiIChtb3VzZXVwKT1cInNob3dUb29sYmFyKCRldmVudClcIiAjZWRpdG9yXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlVGV4dCgkZXZlbnQpXCIgKG1vdXNlZG93bik9XCJoaWRlVG9vbGJhcigkZXZlbnQpXCI+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJ0b29sYmFyXCIgKm5nSWY9XCJlZGl0YWJsZSAmJiBzaG93XCIgW25nU3R5bGVdPVwieyd0b3AucHgnOiB0b29sYmFyWX1cIiBbc3R5bGUucmlnaHRdPVwicmlnaHRaZXJvID8gJzBweCcgOiAnYXV0bydcIiBbc3R5bGUubGVmdF09XCIhcmlnaHRaZXJvID8gJzBweCcgOiAnYXV0bydcIiAjdG9vbGJhciA+XG4gICAgPCEtLSA8c2VsZWN0IGNsYXNzPVwidG9vbFwiIChjaGFuZ2UpPVwib25Gb3JtYXRDaGFuZ2UoJGV2ZW50KVwiIFsobmdNb2RlbCldPVwidG9vbGJhckRhdGEuc2VsZWN0ZWRIZWFkaW5nXCI+XG4gICAgICA8b3B0aW9uIHZhbHVlPVwiSDFcIj5IZWFkaW5nMTwvb3B0aW9uPlxuICAgICAgPG9wdGlvbiB2YWx1ZT1cIkgyXCI+SGVhZGluZzI8L29wdGlvbj5cbiAgICAgIDxvcHRpb24gdmFsdWU9XCJIM1wiPkhlYWRpbmczPC9vcHRpb24+XG4gICAgICA8b3B0aW9uIHZhbHVlPVwiZGl2XCI+VGV4dDwvb3B0aW9uPlxuICAgIDwvc2VsZWN0PiAtLT5cblxuICAgIDxidXR0b24gY2xhc3M9XCJ0b29sXCIgKGNsaWNrKT1cImZvcm1hdFRleHQoJ2JvbGQnKVwiIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWRUb29sJzogdG9vbGJhckRhdGEuaXNCb2xkfVwiPjxtYXQtaWNvbj4gZm9ybWF0X2JvbGQ8L21hdC1pY29uPjwvYnV0dG9uPlxuICAgIDxidXR0b24gY2xhc3M9XCJ0b29sXCIgKGNsaWNrKT1cImZvcm1hdFRleHQoJ2l0YWxpYycpXCIgW25nQ2xhc3NdPVwieydzZWxlY3RlZFRvb2wnOiB0b29sYmFyRGF0YS5pc0l0YWxpY31cIj48bWF0LWljb24+IGZvcm1hdF9pdGFsaWM8L21hdC1pY29uPjwvYnV0dG9uPlxuICAgIDxidXR0b24gY2xhc3M9XCJ0b29sXCIgKGNsaWNrKT1cImZvcm1hdFRleHQoJ3VuZGVybGluZScpXCIgW25nQ2xhc3NdPVwieydzZWxlY3RlZFRvb2wnOiB0b29sYmFyRGF0YS5pc1VuZGVybGluZWR9XCI+PG1hdC1pY29uPiBmb3JtYXRfdW5kZXJsaW5lZDwvbWF0LWljb24+PC9idXR0b24+XG5cbiAgICA8c2VsZWN0IGNsYXNzPVwidG9vbFwiIChjaGFuZ2UpPVwiY2hhbmdlRm9udFNpemUoJGV2ZW50KVwiIFsobmdNb2RlbCldPVwidG9vbGJhckRhdGEuc2VsZWN0ZWRTaXplXCI+XG4gICAgICA8b3B0aW9uIHZhbHVlPVwiXCIgc2VsZWN0ZWQ+RGVmYXVsdDwvb3B0aW9uPlxuICAgICAgPG9wdGlvbiB2YWx1ZT1cImNsYW1wKDAuNzVyZW0sIDJ2dywgMXJlbSlcIj5TbWFsbDwvb3B0aW9uPlxuICAgICAgPG9wdGlvbiB2YWx1ZT1cImNsYW1wKDFyZW0sIDN2dywgMS41cmVtKVwiPk1lZGl1bTwvb3B0aW9uPlxuICAgICAgPG9wdGlvbiB2YWx1ZT1cImNsYW1wKDEuMjVyZW0sIDR2dywgMnJlbSlcIj5MYXJnZTwvb3B0aW9uPlxuICAgICAgPG9wdGlvbiB2YWx1ZT1cImNsYW1wKDJyZW0sIDV2dywgM3JlbSlcIj5FeHRyYSBMYXJnZTwvb3B0aW9uPlxuICAgICAgPG9wdGlvbiB2YWx1ZT1cImNsYW1wKDMuNXJlbSwgN3Z3LCA0LjVyZW0pXCI+SHVnZTwvb3B0aW9uPlxuICAgIDwvc2VsZWN0PlxuXG4gICAgPGJ1dHRvbiBjbGFzcz1cInRvb2xcIiAoY2xpY2spPVwiZm9ybWF0VGV4dCgnaW5zZXJ0T3JkZXJlZExpc3QnKVwiIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWRUb29sJzogdG9vbGJhckRhdGEuc2VsZWN0ZWRMaXN0ID09PSAnaW5zZXJ0T3JkZXJlZExpc3QnfVwiPjxtYXQtaWNvbj5mb3JtYXRfbGlzdF9udW1iZXJlZDwvbWF0LWljb24+PC9idXR0b24+XG4gICAgPGJ1dHRvbiBjbGFzcz1cInRvb2xcIiAoY2xpY2spPVwiZm9ybWF0VGV4dCgnaW5zZXJ0VW5vcmRlcmVkTGlzdCcpXCIgW25nQ2xhc3NdPVwieydzZWxlY3RlZFRvb2wnOiB0b29sYmFyRGF0YS5zZWxlY3RlZExpc3QgPT09ICdpbnNlcnRVbm9yZGVyZWRMaXN0J31cIj48bWF0LWljb24+IGZvcm1hdF9saXN0X2J1bGxldGVkPC9tYXQtaWNvbj48L2J1dHRvbj5cblxuICAgIDxidXR0b24gY2xhc3M9XCJ0b29sXCIgKGNsaWNrKT1cImZvcm1hdFRleHQoJ2p1c3RpZnlMZWZ0JylcIiBbbmdDbGFzc109XCJ7J3NlbGVjdGVkVG9vbCc6IHRvb2xiYXJEYXRhLnNlbGVjdGVkQWxpZ25tZW50ID09PSAnanVzdGlmeUxlZnQnfVwiPjxtYXQtaWNvbj4gZm9ybWF0X2FsaWduX2xlZnQ8L21hdC1pY29uPjwvYnV0dG9uPlxuICAgIDxidXR0b24gY2xhc3M9XCJ0b29sXCIgKGNsaWNrKT1cImZvcm1hdFRleHQoJ2p1c3RpZnlDZW50ZXInKVwiIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWRUb29sJzogdG9vbGJhckRhdGEuc2VsZWN0ZWRBbGlnbm1lbnQgPT09ICdqdXN0aWZ5Q2VudGVyJ31cIj48bWF0LWljb24+IGZvcm1hdF9hbGlnbl9jZW50ZXI8L21hdC1pY29uPjwvYnV0dG9uPlxuICAgIDxidXR0b24gY2xhc3M9XCJ0b29sXCIgKGNsaWNrKT1cImZvcm1hdFRleHQoJ2p1c3RpZnlSaWdodCcpXCIgW25nQ2xhc3NdPVwieydzZWxlY3RlZFRvb2wnOiB0b29sYmFyRGF0YS5zZWxlY3RlZEFsaWdubWVudCA9PT0gJ2p1c3RpZnlSaWdodCd9XCI+PG1hdC1pY29uPiBmb3JtYXRfYWxpZ25fcmlnaHQ8L21hdC1pY29uPjwvYnV0dG9uPlxuXG4gICAgPGRpdiBjbGFzcz1cImNvbG9yVHlwZVwiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cInNvbGlkXCIgW25nQ2xhc3NdPVwieydzb2xpZENvbG9yU2VsZWN0ZWQnOiBzZWxlY3RlZENvbG9yVHlwZSA9PT0gJ1NPTElEJ31cIiAoY2xpY2spPVwic2VsZWN0ZWRDb2xvclR5cGUgPSAnU09MSUQnXCI+U29saWQ8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJncmFkaWVudFwiIFtuZ0NsYXNzXT1cInsnZ3JhZGllbnRDb2xvclNlbGVjdGVkJzogc2VsZWN0ZWRDb2xvclR5cGUgPT09ICdHUkFESUVOVCd9XCIgKGNsaWNrKT1cInNlbGVjdGVkQ29sb3JUeXBlID0gJ0dSQURJRU5UJ1wiPkdyYWRpZW50PC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8YnV0dG9uIGNsYXNzPVwidG9vbCBjb2xvci1waWNrZXItYnRuXCIgKGNsaWNrKT1cIm9wZW5Db2xvclBpY2tlcigpXCIgKm5nSWY9XCJzZWxlY3RlZENvbG9yVHlwZSA9PT0gJ1NPTElEJ1wiPlxuICAgICAgPG1hdC1pY29uPmZvcm1hdF9jb2xvcl90ZXh0PC9tYXQtaWNvbj5cbiAgICAgIDxpbnB1dCB0eXBlPVwiY29sb3JcIiAjY29sb3JQaWNrZXIgY2xhc3M9XCJoaWRkZW4tY29sb3ItcGlja2VyXCIgKGlucHV0KT1cImNoYW5nZUNvbG9yKCRldmVudClcIiBbKG5nTW9kZWwpXT1cInRvb2xiYXJEYXRhLnNlbGVjdGVkQ29sb3JcIj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxkaXYgY2xhc3M9XCJjb2xvclR5cGVcIiAqbmdJZj1cInNlbGVjdGVkQ29sb3JUeXBlID09PSAnR1JBRElFTlQnXCI+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwidG9vbCBjb2xvci1waWNrZXItYnRuXCIgKGNsaWNrKT1cInByaW1hcnlDb2xvclBpY2tlci5jbGljaygpXCI+XG4gICAgICAgIDxtYXQtaWNvbj5mb3JtYXRfY29sb3JfdGV4dDwvbWF0LWljb24+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwiY29sb3JcIiAjcHJpbWFyeUNvbG9yUGlja2VyIGNsYXNzPVwiaGlkZGVuLWNvbG9yLXBpY2tlclwiIChpbnB1dCk9XCJjaGFuZ2VHcmFkaWVudENvbG9yKClcIiBbKG5nTW9kZWwpXT1cInByaW1hcnlDb2xvclwiPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwidG9vbCBjb2xvci1waWNrZXItYnRuXCIgKGNsaWNrKT1cInNlY29uZGFyeUNvbG9yUGlja2VyLmNsaWNrKClcIj5cbiAgICAgICAgPG1hdC1pY29uPmZvcm1hdF9jb2xvcl90ZXh0PC9tYXQtaWNvbj5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJjb2xvclwiICNzZWNvbmRhcnlDb2xvclBpY2tlciBjbGFzcz1cImhpZGRlbi1jb2xvci1waWNrZXJcIiAoaW5wdXQpPVwiY2hhbmdlR3JhZGllbnRDb2xvcigpXCIgWyhuZ01vZGVsKV09XCJzZWNvbmRhcnlDb2xvclwiPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJzdWdnZXN0aW9uLWJveFwiIFtuZ1N0eWxlXT1cInsndG9wLnB4Jzogc3VnZ2VzdGlvbll9XCIgW3N0eWxlLnJpZ2h0XT1cInJpZ2h0WmVybyA/ICcwcHgnIDogJ2F1dG8nXCIgW3N0eWxlLmxlZnRdPVwiIXJpZ2h0WmVybyA/ICcwcHgnIDogJ2F1dG8nXCIgKm5nSWY9XCJlZGl0YWJsZSAmJiBsYWJlbCAmJiBzaG93U3VnZ2VzdGlvblwiICNzdWdnZXN0aW9uPlxuICAgIDxkaXYgY2xhc3M9XCJzdWdnZXN0aW9uXCIgKGNsaWNrKT1cInJlZ2VuZXJhdGVUZXh0KClcIj5cbiAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9wcm9kLXNpbXBvLnMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbS9wcm9kLWltYWdlcy84ODc0OTNjMTc0MjI3Mzk3MDE1MUZyYW1lJTIwMTI0NDgzMTc0MC5wbmdcIiBhbHQ9XCJcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxwIGNsYXNzPVwibmFtZVwiPlJlZ2VuZXJhdGUgVGV4dDwvcD5cbiAgICAgICAgPHAgY2xhc3M9XCJkZXNjXCI+R2V0IGEgZnJlc2ggdmFyaWF0aW9uIG9mIGEgY3VycmVudCB0ZXh0PC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
351
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lbGVtZW50cy90ZXh0LWVkaXRvci90ZXh0LWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL3RleHQtZWRpdG9yL3RleHQtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3RJLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN6RixPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7QUFnQnZELE1BQU0sT0FBTyxtQkFBbUI7SUFnQzlCLFlBQW9CLGFBQW9DLEVBQ3pCLFVBQWtCO1FBRDdCLGtCQUFhLEdBQWIsYUFBYSxDQUF1QjtRQUN6QixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBMUJ4QyxVQUFLLEdBQVcscUNBQXFDLENBQUM7UUFDckQsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzFDLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFJbkMsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUNiLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFDYixnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixjQUFTLEdBQVksSUFBSSxDQUFDO1FBQzFCLG1CQUFjLEdBQVksS0FB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QixVQUFVO3NCQUFyRCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBRWpDLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNFLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT3V0cHV0LCBQTEFURk9STV9JRCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ29udGVudGVkaXRhYmxlVmFsdWVBY2Nlc3NvciB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb250ZW50ZWRpdGFibGUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFbGVtZW50U2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi9lZGl0b3Itc2VydmljZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ltcG8tdGV4dC1lZGl0b3InLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBDb250ZW50ZWRpdGFibGVWYWx1ZUFjY2Vzc29yLFxyXG4gICAgTWF0SWNvbk1vZHVsZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHQtZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdGV4dC1lZGl0b3IuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFRleHRFZGl0b3JDb21wb25lbnQge1xyXG4gIEBWaWV3Q2hpbGQoJ3Rvb2xiYXInLCB7IHN0YXRpYzogZmFsc2UgfSkgdG9vbGJhciE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnZWRpdG9yJywgeyBzdGF0aWM6IGZhbHNlIH0pIGVkaXRvciE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnY29sb3JQaWNrZXInKSBjb2xvclBpY2tlciE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgncGFyZW50RWxlbWVudCcpIHBhcmVudEVsZW1lbnQhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ3N1Z2dlc3Rpb24nLCB7IHN0YXRpYzogZmFsc2UgfSkgc3VnZ2VzdGlvbiE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBJbnB1dCgpIHZhbHVlOiBzdHJpbmcgPSAnPHA+SGVsbG8gdGhpcyBpcyBwYWxhc2ggbWFraGlqYTwvcD4nO1xyXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBJbnB1dCgpIGVkaXRhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2VjdGlvbklkPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGxhYmVsPzogc3RyaW5nO1xyXG5cclxuICBzaG93ID0gZmFsc2U7XHJcbiAgdG9vbGJhclkgPSAwO1xyXG4gIHN1Z2dlc3Rpb25ZID0gMDtcclxuICByaWdodFplcm86IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHNob3dTdWdnZXN0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdG9vbGJhckRhdGE6IGFueSA9IHtcclxuICAgIHNlbGVjdGVkSGVhZGluZzogJycsXHJcbiAgICBpc0JvbGQ6IGZhbHNlLFxyXG4gICAgaXNJdGFsaWM6IGZhbHNlLFxyXG4gICAgaXNVbmRlcmxpbmVkOiBmYWxzZSxcclxuICAgIHNlbGVjdGVkU2l6ZTogJycsXHJcbiAgICBzZWxlY3RlZExpc3Q6ICcnLFxyXG4gICAgc2VsZWN0ZWRBbGlnbm1lbnQ6ICcnLFxyXG4gICAgc2VsZWN0ZWRDb2xvcjogJydcclxuICB9XHJcbiAgc2VsZWN0ZWRDb2xvclR5cGU6ICdTT0xJRCcgfCAnR1JBRElFTlQnID0gJ1NPTElEJztcclxuICBwcmltYXJ5Q29sb3I6IHN0cmluZyA9ICcjMDAwMDAwJztcclxuICBzZWNvbmRhcnlDb2xvcjogc3RyaW5nID0gJyMwMDAwMDAnO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVkaXRvclNlcnZpY2U6IEVsZW1lbnRTZXJ2aWNlU2VydmljZSxcclxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogT2JqZWN0XHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xyXG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLmhpZGVUb29sYmFyLmJpbmQodGhpcykpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xyXG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLmhpZGVUb29sYmFyLmJpbmQodGhpcykpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIHNob3dUb29sYmFyKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkgfHwgIXRoaXMuZWRpdGFibGUpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XHJcbiAgICBpZiAoc2VsZWN0aW9uID09IG51bGwpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICBjb25zdCByYW5nZSA9IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApO1xyXG4gICAgY29uc3QgcmVjdCA9IHJhbmdlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgY29uc3QgcGFyZW50UmVjdCA9IHRoaXMucGFyZW50RWxlbWVudC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgY29uc3QgdG9wRnJvbVBhcmVudCA9IHJlY3QudG9wIC0gcGFyZW50UmVjdC50b3A7XHJcblxyXG4gICAgaWYgKHNlbGVjdGlvbiAmJiBzZWxlY3Rpb24ucmFuZ2VDb3VudCA+IDApIHtcclxuICAgICAgdGhpcy5zdWdnZXN0aW9uWSA9IHRvcEZyb21QYXJlbnQgKyAzMDtcclxuICAgICAgdGhpcy5zaG93U3VnZ2VzdGlvbiA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHNlbGVjdGlvbiAmJiBzZWxlY3Rpb24udG9TdHJpbmcoKS50cmltKCkgIT09ICcnKSB7XHJcbiAgICAgIGNvbnN0IHRvb2xiYXJXaWR0aCA9IDU0MTtcclxuXHJcbiAgICAgIGNvbnN0IHZpZXdwb3J0V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICAgICAgY29uc3QgcmlnaHRQb3NpdG9uID0gdmlld3BvcnRXaWR0aCAtIHBhcmVudFJlY3QubGVmdDtcclxuICAgICAgaWYgKHJpZ2h0UG9zaXRvbiArIHRvb2xiYXJXaWR0aCA+IHZpZXdwb3J0V2lkdGgpIHtcclxuICAgICAgICB0aGlzLnJpZ2h0WmVybyA9IGZhbHNlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucmlnaHRaZXJvID0gdHJ1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy50b29sYmFyWSA9IHRvcEZyb21QYXJlbnQgKyAzMDtcclxuXHJcbiAgICAgIHRoaXMucmVGb3JtYXR0aW5nRGF0YSgpO1xyXG4gICAgICB0aGlzLnJlYWRGb3JtYXR0aW5nUHJvcGVydGllcygpO1xyXG5cclxuICAgICAgdGhpcy5zaG93ID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvdyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGlkZVRvb2xiYXIoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSB8fCAhdGhpcy5lZGl0YWJsZSkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGNsaWNrZWRJbnNpZGVFZGl0b3IgPSB0aGlzLmVkaXRvcj8ubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpO1xyXG4gICAgY29uc3QgY2xpY2tlZEluc2lkZVRvb2xiYXIgPSB0aGlzLnRvb2xiYXI/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KTtcclxuICAgIGNvbnN0IGNsaWNrZWRJbnNpZGVTdWdnZXN0aW9uID0gdGhpcy5zdWdnZXN0aW9uPy5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCk7XHJcblxyXG4gICAgLy8gSGlkZSB0aGUgdG9vbGJhciBpZiB0aGUgY2xpY2sgaXMgb3V0c2lkZSBib3RoIHRoZSBlZGl0b3IgYW5kIHRvb2xiYXJcclxuICAgIGlmICghY2xpY2tlZEluc2lkZUVkaXRvciAmJiAhY2xpY2tlZEluc2lkZVRvb2xiYXIpIHtcclxuICAgICAgdGhpcy5zaG93ID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAoIWNsaWNrZWRJbnNpZGVFZGl0b3IgJiYgIWNsaWNrZWRJbnNpZGVTdWdnZXN0aW9uKSB7XHJcbiAgICAgIHRoaXMuc2hvd1N1Z2dlc3Rpb24gPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZvcm1hdFRleHQoY29tbWFuZDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nID0gJycpIHtcclxuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xyXG5cclxuICAgIC8vICAgaWYgKGNvbW1hbmQgPT09ICdmb3JtYXRCbG9jaycpIHtcclxuICAgIC8vICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XHJcbiAgICAvLyAgICAgaWYgKCFzZWxlY3Rpb24gfHwgc2VsZWN0aW9uLnJhbmdlQ291bnQgPT09IDApIHJldHVybjtcclxuXHJcbiAgICAvLyAgICAgY29uc3QgcmFuZ2UgPSBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKTtcclxuICAgIC8vICAgICBjb25zdCBzZWxlY3RlZFRleHQgPSBzZWxlY3Rpb24udG9TdHJpbmcoKTtcclxuXHJcbiAgICAvLyAgICAgaWYgKHNlbGVjdGVkVGV4dCkge1xyXG4gICAgLy8gICAgICAgICBjb25zdCBuZXdFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh2YWx1ZSk7XHJcbiAgICAvLyAgICAgICAgIG5ld0VsZW1lbnQudGV4dENvbnRlbnQgPSBzZWxlY3RlZFRleHQ7XHJcblxyXG4gICAgLy8gICAgICAgICByYW5nZS5kZWxldGVDb250ZW50cygpO1xyXG4gICAgLy8gICAgICAgICByYW5nZS5pbnNlcnROb2RlKG5ld0VsZW1lbnQpO1xyXG5cclxuICAgIC8vICAgICAgICAgdGhpcy50b29sYmFyRGF0YS5zZWxlY3RlZEhlYWRpbmcgPSB2YWx1ZTtcclxuICAgIC8vICAgICAgICAgcmV0dXJuO1xyXG4gICAgLy8gICAgIH1cclxuICAgIC8vIH1cclxuICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKGNvbW1hbmQsIGZhbHNlLCB2YWx1ZSk7XHJcblxyXG4gICAgaWYgKGNvbW1hbmQgPT09ICdib2xkJylcclxuICAgICAgdGhpcy50b29sYmFyRGF0YS5pc0JvbGQgPSAhdGhpcy50b29sYmFyRGF0YS5pc0JvbGQ7XHJcbiAgICBpZiAoY29tbWFuZCA9PT0gJ2l0YWxpYycpXHJcbiAgICAgIHRoaXMudG9vbGJhckRhdGEuaXNJdGFsaWMgPSAhdGhpcy50b29sYmFyRGF0YS5pc0l0YWxpYztcclxuICAgIGlmIChjb21tYW5kID09PSAndW5kZXJsaW5lJylcclxuICAgICAgdGhpcy50b29sYmFyRGF0YS5pc1VuZGVybGluZWQgPSAhdGhpcy50b29sYmFyRGF0YS5pc1VuZGVybGluZWRcclxuICAgIGlmIChjb21tYW5kID09PSAnaW5zZXJ0T3JkZXJlZExpc3QnIHx8IGNvbW1hbmQgPT09ICdpbnNlcnRVbm9yZGVyZWRMaXN0JylcclxuICAgICAgdGhpcy50b29sYmFyRGF0YS5zZWxlY3RlZExpc3QgPSBjb21tYW5kID09PSB0aGlzLnRvb2xiYXJEYXRhLnNlbGVjdGVkTGlzdCA/ICcnIDogY29tbWFuZDtcclxuICAgIGlmIChjb21tYW5kID09PSAnanVzdGlmeUxlZnQnIHx8IGNvbW1hbmQgPT09ICdqdXN0aWZ5Q2VudGVyJyB8fCBjb21tYW5kID09PSAnanVzdGlmeVJpZ2h0JylcclxuICAgICAgdGhpcy50b29sYmFyRGF0YS5zZWxlY3RlZEFsaWdubWVudCA9IGNvbW1hbmQgPT09IHRoaXMudG9vbGJhckRhdGEuc2VsZWN0ZWRBbGlnbm1lbnQgPyAnJyA6IGNvbW1hbmQ7XHJcbiAgICBpZiAoY29tbWFuZCA9PT0gJ2Zvcm1hdEJsb2NrJylcclxuICAgICAgdGhpcy50b29sYmFyRGF0YS5zZWxlY3RlZEhlYWRpbmcgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGNoYW5nZUZvbnRTaXplKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IHNpemUgPSBldmVudC50YXJnZXQudmFsdWU7XHJcblxyXG4gICAgLy8gQXBwbHkgYSBkZWZhdWx0IHNpemUgb2YgNCAobmVlZGVkIGZvciBleGVjQ29tbWFuZCB0byB3b3JrKVxyXG4gICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2ZvbnRTaXplJywgZmFsc2UsICc0Jyk7XHJcblxyXG4gICAgLy8gQ29udmVydCBzZWxlY3RlZCBmb250IGVsZW1lbnRzIHRvIGhhdmUgYWN0dWFsIGZvbnQtc2l6ZSBpbnN0ZWFkIG9mIFwic2l6ZVwiIGF0dHJpYnV0ZVxyXG4gICAgY29uc3QgZWxlbWVudHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiZm9udFtzaXplPSc0J11cIik7XHJcbiAgICBlbGVtZW50cy5mb3JFYWNoKGVsID0+IHtcclxuICAgICAgY29uc3QgaHRtbEVsZW1lbnQgPSBlbCBhcyBIVE1MRWxlbWVudDsgLy8g4pyFIEV4cGxpY2l0bHkgY2FzdCB0byBIVE1MRWxlbWVudFxyXG4gICAgICBodG1sRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ3NpemUnKTsgLy8gUmVtb3ZlIG9sZCBzaXplIGF0dHJpYnV0ZVxyXG4gICAgICBodG1sRWxlbWVudC5zdHlsZS5mb250U2l6ZSA9IHNpemU7IC8vIEFwcGx5IENTUyBmb250IHNpemVcclxuICAgIH0pO1xyXG4gICAgdGhpcy50b29sYmFyRGF0YS5zZWxlY3RlZFNpemUgPSBzaXplO1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMuZWRpdG9yLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MKTtcclxuICAgIC8vIHRoaXMuc2hvdyA9IGZhbHNlOyAvLyBIaWRlIHRvb2xiYXIgYWZ0ZXIgYWN0aW9uXHJcbiAgfVxyXG5cclxuICBjaGFuZ2VDb2xvcihldmVudDogYW55KSB7XHJcbiAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybjtcclxuICAgIHRoaXMucmVzdG9yZVNlbGVjdGlvbigpOyAvLyBSZXN0b3JlIHRoZSBzZWxlY3Rpb24gYmVmb3JlIGFwcGx5aW5nIGNvbG9yXHJcblxyXG4gICAgY29uc3QgY29sb3IgPSBldmVudC50YXJnZXQudmFsdWU7XHJcblxyXG4gICAgLy8gRmlyc3QgY2hlY2sgaWYgd2UgbmVlZCB0byBjbGVhciBncmFkaWVudCBzdHlsaW5nXHJcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XHJcbiAgICBpZiAoc2VsZWN0aW9uICYmIHNlbGVjdGlvbi5yYW5nZUNvdW50ID4gMCkge1xyXG4gICAgICBjb25zdCByYW5nZSA9IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApO1xyXG4gICAgICBsZXQgdGFyZ2V0RWxlbWVudDogTm9kZSB8IG51bGwgPSByYW5nZS5jb21tb25BbmNlc3RvckNvbnRhaW5lcjtcclxuXHJcblxyXG4gICAgICBpZiAoIXRhcmdldEVsZW1lbnQpIHJldHVybjtcclxuXHJcbiAgICAgIGlmICh0YXJnZXRFbGVtZW50Lm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSAmJiB0YXJnZXRFbGVtZW50LnBhcmVudEVsZW1lbnQpIHtcclxuICAgICAgICB0YXJnZXRFbGVtZW50ID0gdGFyZ2V0RWxlbWVudC5wYXJlbnRFbGVtZW50O1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBJZiB0aGUgdGFyZ2V0IGVsZW1lbnQgaGFzIGdyYWRpZW50IHN0eWxpbmcsIHdlIG5lZWQgdG8gY2xlYXIgaXQgZmlyc3RcclxuICAgICAgaWYgKHRhcmdldEVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xyXG4gICAgICAgIC8vIENoZWNrIGlmIGVsZW1lbnQgaGFzIGdyYWRpZW50IHN0eWxpbmdcclxuICAgICAgICBjb25zdCBoYXNHcmFkaWVudFN0eWxpbmcgPVxyXG4gICAgICAgICAgdGFyZ2V0RWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kQ2xpcCA9PT0gJ3RleHQnIHx8XHJcbiAgICAgICAgICB0YXJnZXRFbGVtZW50LnN0eWxlLndlYmtpdEJhY2tncm91bmRDbGlwID09PSAndGV4dCc7XHJcblxyXG4gICAgICAgIGlmIChoYXNHcmFkaWVudFN0eWxpbmcpIHtcclxuICAgICAgICAgIC8vIFJlbW92ZSBncmFkaWVudCBzdHlsaW5nXHJcbiAgICAgICAgICB0YXJnZXRFbGVtZW50LnN0eWxlLmJhY2tncm91bmQgPSAnJztcclxuICAgICAgICAgIHRhcmdldEVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZENsaXAgPSAnJztcclxuICAgICAgICAgIHRhcmdldEVsZW1lbnQuc3R5bGUud2Via2l0QmFja2dyb3VuZENsaXAgPSAnJztcclxuICAgICAgICAgIHRhcmdldEVsZW1lbnQuc3R5bGUud2Via2l0VGV4dEZpbGxDb2xvciA9ICcnO1xyXG5cclxuICAgICAgICAgIC8vIEZvcmNlIHJlbW92ZSB0aGUgdHJhbnNwYXJlbmN5IHRoYXQgd2FzIGFwcGxpZWQgZm9yIGdyYWRpZW50c1xyXG4gICAgICAgICAgdGFyZ2V0RWxlbWVudC5zdHlsZS5jb2xvciA9IGNvbG9yO1xyXG5cclxuICAgICAgICAgIC8vIEVuc3VyZSB0aGUgY2hhbmdlIGlzIGVtaXR0ZWRcclxuICAgICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLmVkaXRvci5uYXRpdmVFbGVtZW50LmlubmVySFRNTCk7XHJcbiAgICAgICAgICB0aGlzLnRvb2xiYXJEYXRhLnNlbGVjdGVkQ29sb3IgPSBjb2xvcjtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBJZiB3ZSBkaWRuJ3QgZmluZCBhbiBlbGVtZW50IHdpdGggZ3JhZGllbnQgc3R5bGluZyBvciBjb3VsZG4ndCBoYW5kbGUgaXQsXHJcbiAgICAvLyBmYWxsIGJhY2sgdG8gdGhlIHN0YW5kYXJkIGV4ZWNDb21tYW5kIGFwcHJvYWNoXHJcbiAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnZm9yZUNvbG9yJywgZmFsc2UsIGNvbG9yKTtcclxuICAgIHRoaXMudG9vbGJhckRhdGEuc2VsZWN0ZWRDb2xvciA9IGNvbG9yO1xyXG4gIH1cclxuICB1cGRhdGVUZXh0KGV2ZW50OiBFdmVudCkge1xyXG4gICAgLy8gY29uc29sZS5sb2codGhpcy5lZGl0b3IubmF0aXZlRWxlbWVudC5pbm5lckhUTUwpXHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy5lZGl0b3IubmF0aXZlRWxlbWVudC5pbm5lckhUTUwpO1xyXG4gIH1cclxuXHJcbiAgb25Gb3JtYXRDaGFuZ2UoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBjb25zdCBzZWxlY3RlZFZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MU2VsZWN0RWxlbWVudCkudmFsdWU7XHJcbiAgICB0aGlzLmZvcm1hdFRleHQoJ2Zvcm1hdEJsb2NrJywgc2VsZWN0ZWRWYWx1ZSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgb3BlbkNvbG9yUGlja2VyKCkge1xyXG4gICAgLy8gdGhpcy5jb2xvclBpY2tlci5uYXRpdmVFbGVtZW50LmNsaWNrKCk7IC8vIFByb2dyYW1tYXRpY2FsbHkgdHJpZ2dlciBpbnB1dFxyXG4gICAgdGhpcy5zYXZlU2VsZWN0aW9uKCk7IC8vIFNhdmUgdGhlIGN1cnJlbnQgc2VsZWN0aW9uXHJcbiAgfVxyXG5cclxuICByZWFkRm9ybWF0dGluZ1Byb3BlcnRpZXMoKSB7XHJcbiAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XHJcbiAgICBpZiAoIXNlbGVjdGlvbikgcmV0dXJuO1xyXG4gICAgY29uc3Qgbm9kZSA9IHNlbGVjdGlvbi5mb2N1c05vZGUgYXMgSFRNTEVsZW1lbnQ7XHJcblxyXG4gICAgLy8gQ2hlY2sgaWYgbm9kZSBpcyBudWxsXHJcbiAgICBpZiAoIW5vZGUpIHJldHVybjtcclxuXHJcbiAgICBsZXQgZWxlbWVudCA9IG5vZGUucGFyZW50RWxlbWVudDtcclxuICAgIHdoaWxlIChlbGVtZW50KSB7XHJcbiAgICAgIGNvbnN0IG5vZGVOYW1lID0gZWxlbWVudC5ub2RlTmFtZTtcclxuXHJcbiAgICAgIGlmIChub2RlTmFtZSA9PT0gJ0gxJyB8fCBub2RlTmFtZSA9PT0gJ0gyJyB8fCBub2RlTmFtZSA9PT0gJ0gzJykge1xyXG4gICAgICAgIHRoaXMudG9vbGJhckRhdGEuc2VsZWN0ZWRIZWFkaW5nID0gbm9kZU5hbWU7XHJcbiAgICAgIH0gZWxzZSBpZiAobm9kZU5hbWUgPT09ICdCJyB8fCBub2RlTmFtZSA9PT0gJ1NUUk9ORycpIHtcclxuICAgICAgICB0aGlzLnRvb2xiYXJEYXRhLmlzQm9sZCA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSBpZiAobm9kZU5hbWUgPT09ICdJJyB8fCBub2RlTmFtZSA9PT0gJ0VNJykge1xyXG4gICAgICAgIHRoaXMudG9vbGJhckRhdGEuaXNJdGFsaWMgPSB0cnVlO1xyXG4gICAgICB9IGVsc2UgaWYgKG5vZGVOYW1lID09PSAnVScpIHtcclxuICAgICAgICB0aGlzLnRvb2xiYXJEYXRhLmlzVW5kZXJsaW5lZCA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSBpZiAobm9kZU5hbWUgPT09ICdPTCcpIHtcclxuICAgICAgICB0aGlzLnRvb2xiYXJEYXRhLnNlbGVjdGVkTGlzdCA9ICdpbnNlcnRPcmRlcmVkTGlzdCc7XHJcbiAgICAgIH0gZWxzZSBpZiAobm9kZU5hbWUgPT09ICdVTCcpIHtcclxuICAgICAgICB0aGlzLnRvb2xiYXJEYXRhLnNlbGVjdGVkTGlzdCA9ICdpbnNlcnRVbm9yZGVyZWRMaXN0JztcclxuICAgICAgfSBlbHNlIGlmIChlbGVtZW50LnN0eWxlLnRleHRBbGlnbikge1xyXG4gICAgICAgIHRoaXMudG9vbGJhckRhdGEuc2VsZWN0ZWRBbGlnbm1lbnQgPSBganVzdGlmeSR7ZWxlbWVudC5zdHlsZS50ZXh0QWxpZ24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBlbGVtZW50LnN0eWxlLnRleHRBbGlnbi5zbGljZSgxKX1gO1xyXG4gICAgICB9IGVsc2UgaWYgKGVsZW1lbnQuc3R5bGUuZm9udFNpemUpIHtcclxuICAgICAgICB0aGlzLnRvb2xiYXJEYXRhLnNlbGVjdGVkU2l6ZSA9IGVsZW1lbnQuc3R5bGUuZm9udFNpemU7XHJcbiAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5zdHlsZS5jb2xvcikge1xyXG4gICAgICAgIHRoaXMudG9vbGJhckRhdGEuc2VsZWN0ZWRDb2xvciA9IGVsZW1lbnQuc3R5bGUuY29sb3JcclxuICAgICAgfVxyXG5cclxuXHJcbiAgICAgIGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZUZvcm1hdHRpbmdEYXRhKCkge1xyXG4gICAgdGhpcy50b29sYmFyRGF0YSA9IHtcclxuICAgICAgc2VsZWN0ZWRIZWFkaW5nOiAnJyxcclxuICAgICAgaXNCb2xkOiBmYWxzZSxcclxuICAgICAgaXNJdGFsaWM6IGZhbHNlLFxyXG4gICAgICBpc1VuZGVybGluZWQ6IGZhbHNlLFxyXG4gICAgICBzZWxlY3RlZFNpemU6ICcnLFxyXG4gICAgICBzZWxlY3RlZExpc3Q6ICcnLFxyXG4gICAgICBzZWxlY3RlZEFsaWdubWVudDogJycsXHJcbiAgICAgIHNlbGVjdGVkQ29sb3I6ICcnXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VHcmFkaWVudENvbG9yKCkge1xyXG4gICAgdGhpcy5yZXN0b3JlU2VsZWN0aW9uKCk7IC8vIFJlc3RvcmUgdGhlIHNlbGVjdGlvbiBiZWZvcmUgYXBwbHlpbmcgZ3JhZGllbnRcclxuICAgIGNvbnN0IGNvbG9yID0gYGxpbmVhci1ncmFkaWVudCg5NC4yMmRlZywgJHt0aGlzLnByaW1hcnlDb2xvcn0gLTQuNDUlLCAke3RoaXMuc2Vjb25kYXJ5Q29sb3J9IDExMS44OCUpYFxyXG4gICAgdGhpcy5hcHBseUdyYWRpZW50VG9UZXh0KGNvbG9yKVxyXG4gIH1cclxuXHJcbiAgYXBwbHlHcmFkaWVudFRvVGV4dChncmFkaWVudFZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcclxuICAgIGlmICghc2VsZWN0aW9uIHx8IHNlbGVjdGlvbi5yYW5nZUNvdW50ID09PSAwKSByZXR1cm47XHJcblxyXG4gICAgLy8gR2V0IHRoZSBjdXJyZW50IHNlbGVjdGlvbiByYW5nZVxyXG4gICAgY29uc3QgcmFuZ2UgPSBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKTtcclxuXHJcbiAgICAvLyBDaGVjayBpZiB0aGUgcmFuZ2UgaXMgdmFsaWQgZm9yIHdyYXBwaW5nXHJcbiAgICBpZiAoIXJhbmdlIHx8IHJhbmdlLmNvbGxhcHNlZCkgcmV0dXJuO1xyXG5cclxuICAgIC8vIEV4dHJhY3QgdGhlIHNlbGVjdGVkIGNvbnRlbnRcclxuICAgIGNvbnN0IHNlbGVjdGVkQ29udGVudCA9IHJhbmdlLmV4dHJhY3RDb250ZW50cygpO1xyXG5cclxuXHJcbiAgICAvLyBDcmVhdGUgYSBuZXcgPHNwYW4+IGVsZW1lbnQgdG8gd3JhcCB0aGUgc2VsZWN0ZWQgdGV4dFxyXG4gICAgY29uc3Qgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuICAgIHNwYW4uc3R5bGUuYmFja2dyb3VuZCA9IGdyYWRpZW50VmFsdWU7XHJcbiAgICBzcGFuLnN0eWxlLmJhY2tncm91bmRDbGlwID0gJ3RleHQnO1xyXG4gICAgc3Bhbi5zdHlsZS53ZWJraXRCYWNrZ3JvdW5kQ2xpcCA9ICd0ZXh0JztcclxuICAgIHNwYW4uc3R5bGUuY29sb3IgPSAndHJhbnNwYXJlbnQnO1xyXG4gICAgc3Bhbi5zdHlsZS53ZWJraXRUZXh0RmlsbENvbG9yID0gJ3RyYW5zcGFyZW50JztcclxuXHJcbiAgICAvLyBBcHBlbmQgdGhlIHNlbGVjdGVkIGNvbnRlbnQgdG8gdGhlIDxzcGFuPlxyXG4gICAgc3Bhbi5hcHBlbmRDaGlsZChzZWxlY3RlZENvbnRlbnQpO1xyXG5cclxuICAgIC8vIEluc2VydCB0aGUgPHNwYW4+IGJhY2sgaW50byB0aGUgcmFuZ2VcclxuICAgIHJhbmdlLmluc2VydE5vZGUoc3Bhbik7XHJcblxyXG4gICAgLy8gQ2xlYXIgdGhlIHNlbGVjdGlvblxyXG4gICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpO1xyXG5cclxuICAgIC8vIEVtaXQgdGhlIHVwZGF0ZWQgSFRNTCBjb250ZW50XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy5lZGl0b3IubmF0aXZlRWxlbWVudC5pbm5lckhUTUwpO1xyXG4gIH1cclxuICByZWdlbmVyYXRlVGV4dCgpIHtcclxuICAgIGxldCBwYXlsb2FkID0ge1xyXG4gICAgICBidXNpbmVzc0lkOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYnVzaW5lc3NJZCcpLFxyXG4gICAgICBkYXRhSWQ6IHRoaXMuc2VjdGlvbklkLFxyXG4gICAgICBzdWJJbmR1c3RyeUlkOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc3ViSW5kdXN0cnlJZCcpLFxyXG4gICAgICBzdWdnZXN0ZWREYXRhVHlwZTogJ0NPTVBPTkVOVCcsXHJcbiAgICAgIHRvbmU6ICdQUk9GRVNTSU9OQUwnLFxyXG4gICAgICB2YWx1ZTogdGhpcy52YWx1ZSxcclxuICAgICAgbGFiZWw6IHRoaXMubGFiZWxcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmVkaXRvclNlcnZpY2UucmVnZW5lcmF0ZVRleHQocGF5bG9hZCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnZhbHVlID0gcmVzLmRhdGE7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzYXZlZFJhbmdlOiBSYW5nZSB8IG51bGwgPSBudWxsO1xyXG5cclxuXHJcbiAgc2F2ZVNlbGVjdGlvbigpOiB2b2lkIHtcclxuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcclxuICAgIGlmIChzZWxlY3Rpb24gJiYgc2VsZWN0aW9uLnJhbmdlQ291bnQgPiAwKSB7XHJcbiAgICAgIHRoaXMuc2F2ZWRSYW5nZSA9IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVzdG9yZVNlbGVjdGlvbigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNhdmVkUmFuZ2UpIHtcclxuICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xyXG4gICAgICBzZWxlY3Rpb24/LnJlbW92ZUFsbFJhbmdlcygpO1xyXG4gICAgICBzZWxlY3Rpb24/LmFkZFJhbmdlKHRoaXMuc2F2ZWRSYW5nZSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJlZGl0b3ItY29udGFpbmVyXCIgW25nQ2xhc3NdPVwieydib3JkZXInOiBlZGl0YWJsZX1cIiAjcGFyZW50RWxlbWVudD5cclxuICA8ZGl2IFtjb250ZW50ZWRpdGFibGVdPVwiZWRpdGFibGVcIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgY2xhc3M9XCJlZGl0YWJsZS10ZXh0XCIgKG1vdXNldXApPVwic2hvd1Rvb2xiYXIoJGV2ZW50KVwiICNlZGl0b3JcclxuICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZVRleHQoJGV2ZW50KVwiIChtb3VzZWRvd24pPVwiaGlkZVRvb2xiYXIoJGV2ZW50KVwiPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwidG9vbGJhclwiICpuZ0lmPVwiZWRpdGFibGUgJiYgc2hvd1wiIFtuZ1N0eWxlXT1cInsndG9wLnB4JzogdG9vbGJhcll9XCIgW3N0eWxlLnJpZ2h0XT1cInJpZ2h0WmVybyA/ICcwcHgnIDogJ2F1dG8nXCIgW3N0eWxlLmxlZnRdPVwiIXJpZ2h0WmVybyA/ICcwcHgnIDogJ2F1dG8nXCIgI3Rvb2xiYXIgPlxyXG4gICAgPCEtLSA8c2VsZWN0IGNsYXNzPVwidG9vbFwiIChjaGFuZ2UpPVwib25Gb3JtYXRDaGFuZ2UoJGV2ZW50KVwiIFsobmdNb2RlbCldPVwidG9vbGJhckRhdGEuc2VsZWN0ZWRIZWFkaW5nXCI+XHJcbiAgICAgIDxvcHRpb24gdmFsdWU9XCJIMVwiPkhlYWRpbmcxPC9vcHRpb24+XHJcbiAgICAgIDxvcHRpb24gdmFsdWU9XCJIMlwiPkhlYWRpbmcyPC9vcHRpb24+XHJcbiAgICAgIDxvcHRpb24gdmFsdWU9XCJIM1wiPkhlYWRpbmczPC9vcHRpb24+XHJcbiAgICAgIDxvcHRpb24gdmFsdWU9XCJkaXZcIj5UZXh0PC9vcHRpb24+XHJcbiAgICA8L3NlbGVjdD4gLS0+XHJcblxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cInRvb2xcIiAoY2xpY2spPVwiZm9ybWF0VGV4dCgnYm9sZCcpXCIgW25nQ2xhc3NdPVwieydzZWxlY3RlZFRvb2wnOiB0b29sYmFyRGF0YS5pc0JvbGR9XCI+PG1hdC1pY29uPiBmb3JtYXRfYm9sZDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwidG9vbFwiIChjbGljayk9XCJmb3JtYXRUZXh0KCdpdGFsaWMnKVwiIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWRUb29sJzogdG9vbGJhckRhdGEuaXNJdGFsaWN9XCI+PG1hdC1pY29uPiBmb3JtYXRfaXRhbGljPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJ0b29sXCIgKGNsaWNrKT1cImZvcm1hdFRleHQoJ3VuZGVybGluZScpXCIgW25nQ2xhc3NdPVwieydzZWxlY3RlZFRvb2wnOiB0b29sYmFyRGF0YS5pc1VuZGVybGluZWR9XCI+PG1hdC1pY29uPiBmb3JtYXRfdW5kZXJsaW5lZDwvbWF0LWljb24+PC9idXR0b24+XHJcblxyXG4gICAgPHNlbGVjdCBjbGFzcz1cInRvb2xcIiAoY2hhbmdlKT1cImNoYW5nZUZvbnRTaXplKCRldmVudClcIiBbKG5nTW9kZWwpXT1cInRvb2xiYXJEYXRhLnNlbGVjdGVkU2l6ZVwiPlxyXG4gICAgICA8b3B0aW9uIHZhbHVlPVwiXCIgc2VsZWN0ZWQ+RGVmYXVsdDwvb3B0aW9uPlxyXG4gICAgICA8b3B0aW9uIHZhbHVlPVwiY2xhbXAoMC43NXJlbSwgMnZ3LCAxcmVtKVwiPlNtYWxsPC9vcHRpb24+XHJcbiAgICAgIDxvcHRpb24gdmFsdWU9XCJjbGFtcCgxcmVtLCAzdncsIDEuNXJlbSlcIj5NZWRpdW08L29wdGlvbj5cclxuICAgICAgPG9wdGlvbiB2YWx1ZT1cImNsYW1wKDEuMjVyZW0sIDR2dywgMnJlbSlcIj5MYXJnZTwvb3B0aW9uPlxyXG4gICAgICA8b3B0aW9uIHZhbHVlPVwiY2xhbXAoMnJlbSwgNXZ3LCAzcmVtKVwiPkV4dHJhIExhcmdlPC9vcHRpb24+XHJcbiAgICAgIDxvcHRpb24gdmFsdWU9XCJjbGFtcCgzLjFyZW0sIDd2dywgNC41cmVtKVwiPkh1Z2U8L29wdGlvbj5cclxuICAgIDwvc2VsZWN0PlxyXG5cclxuICAgIDxidXR0b24gY2xhc3M9XCJ0b29sXCIgKGNsaWNrKT1cImZvcm1hdFRleHQoJ2luc2VydE9yZGVyZWRMaXN0JylcIiBbbmdDbGFzc109XCJ7J3NlbGVjdGVkVG9vbCc6IHRvb2xiYXJEYXRhLnNlbGVjdGVkTGlzdCA9PT0gJ2luc2VydE9yZGVyZWRMaXN0J31cIj48bWF0LWljb24+Zm9ybWF0X2xpc3RfbnVtYmVyZWQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cInRvb2xcIiAoY2xpY2spPVwiZm9ybWF0VGV4dCgnaW5zZXJ0VW5vcmRlcmVkTGlzdCcpXCIgW25nQ2xhc3NdPVwieydzZWxlY3RlZFRvb2wnOiB0b29sYmFyRGF0YS5zZWxlY3RlZExpc3QgPT09ICdpbnNlcnRVbm9yZGVyZWRMaXN0J31cIj48bWF0LWljb24+IGZvcm1hdF9saXN0X2J1bGxldGVkPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuXHJcbiAgICA8YnV0dG9uIGNsYXNzPVwidG9vbFwiIChjbGljayk9XCJmb3JtYXRUZXh0KCdqdXN0aWZ5TGVmdCcpXCIgW25nQ2xhc3NdPVwieydzZWxlY3RlZFRvb2wnOiB0b29sYmFyRGF0YS5zZWxlY3RlZEFsaWdubWVudCA9PT0gJ2p1c3RpZnlMZWZ0J31cIj48bWF0LWljb24+IGZvcm1hdF9hbGlnbl9sZWZ0PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJ0b29sXCIgKGNsaWNrKT1cImZvcm1hdFRleHQoJ2p1c3RpZnlDZW50ZXInKVwiIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWRUb29sJzogdG9vbGJhckRhdGEuc2VsZWN0ZWRBbGlnbm1lbnQgPT09ICdqdXN0aWZ5Q2VudGVyJ31cIj48bWF0LWljb24+IGZvcm1hdF9hbGlnbl9jZW50ZXI8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cInRvb2xcIiAoY2xpY2spPVwiZm9ybWF0VGV4dCgnanVzdGlmeVJpZ2h0JylcIiBbbmdDbGFzc109XCJ7J3NlbGVjdGVkVG9vbCc6IHRvb2xiYXJEYXRhLnNlbGVjdGVkQWxpZ25tZW50ID09PSAnanVzdGlmeVJpZ2h0J31cIj48bWF0LWljb24+IGZvcm1hdF9hbGlnbl9yaWdodDwvbWF0LWljb24+PC9idXR0b24+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImNvbG9yVHlwZVwiPlxyXG4gICAgICA8YnV0dG9uIGNsYXNzPVwic29saWRcIiBbbmdDbGFzc109XCJ7J3NvbGlkQ29sb3JTZWxlY3RlZCc6IHNlbGVjdGVkQ29sb3JUeXBlID09PSAnU09MSUQnfVwiIChjbGljayk9XCJzZWxlY3RlZENvbG9yVHlwZSA9ICdTT0xJRCdcIj5Tb2xpZDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIGNsYXNzPVwiZ3JhZGllbnRcIiBbbmdDbGFzc109XCJ7J2dyYWRpZW50Q29sb3JTZWxlY3RlZCc6IHNlbGVjdGVkQ29sb3JUeXBlID09PSAnR1JBRElFTlQnfVwiIChjbGljayk9XCJzZWxlY3RlZENvbG9yVHlwZSA9ICdHUkFESUVOVCdcIj5HcmFkaWVudDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cInRvb2wgY29sb3ItcGlja2VyLWJ0blwiIChjbGljayk9XCJvcGVuQ29sb3JQaWNrZXIoKVwiICpuZ0lmPVwic2VsZWN0ZWRDb2xvclR5cGUgPT09ICdTT0xJRCdcIj5cclxuICAgICAgPG1hdC1pY29uPmZvcm1hdF9jb2xvcl90ZXh0PC9tYXQtaWNvbj5cclxuICAgICAgPGlucHV0IHR5cGU9XCJjb2xvclwiICNjb2xvclBpY2tlciBjbGFzcz1cImhpZGRlbi1jb2xvci1waWNrZXJcIiAoaW5wdXQpPVwiY2hhbmdlQ29sb3IoJGV2ZW50KVwiIFsobmdNb2RlbCldPVwidG9vbGJhckRhdGEuc2VsZWN0ZWRDb2xvclwiPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICBcclxuICAgIDxkaXYgY2xhc3M9XCJjb2xvclR5cGVcIiAqbmdJZj1cInNlbGVjdGVkQ29sb3JUeXBlID09PSAnR1JBRElFTlQnXCI+XHJcbiAgICAgIDxidXR0b24gY2xhc3M9XCJ0b29sIGNvbG9yLXBpY2tlci1idG5cIiAoY2xpY2spPVwib3BlbkNvbG9yUGlja2VyKCk7IHByaW1hcnlDb2xvclBpY2tlci5jbGljaygpXCI+XHJcbiAgICAgICAgPG1hdC1pY29uPmZvcm1hdF9jb2xvcl90ZXh0PC9tYXQtaWNvbj5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cImNvbG9yXCIgI3ByaW1hcnlDb2xvclBpY2tlciBjbGFzcz1cImhpZGRlbi1jb2xvci1waWNrZXJcIiAoaW5wdXQpPVwiY2hhbmdlR3JhZGllbnRDb2xvcigpXCIgWyhuZ01vZGVsKV09XCJwcmltYXJ5Q29sb3JcIj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gY2xhc3M9XCJ0b29sIGNvbG9yLXBpY2tlci1idG5cIiAoY2xpY2spPVwib3BlbkNvbG9yUGlja2VyKCk7IHNlY29uZGFyeUNvbG9yUGlja2VyLmNsaWNrKClcIj5cclxuICAgICAgICA8bWF0LWljb24+Zm9ybWF0X2NvbG9yX3RleHQ8L21hdC1pY29uPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwiY29sb3JcIiAjc2Vjb25kYXJ5Q29sb3JQaWNrZXIgY2xhc3M9XCJoaWRkZW4tY29sb3ItcGlja2VyXCIgKGlucHV0KT1cImNoYW5nZUdyYWRpZW50Q29sb3IoKVwiIFsobmdNb2RlbCldPVwic2Vjb25kYXJ5Q29sb3JcIj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cInN1Z2dlc3Rpb24tYm94XCIgW25nU3R5bGVdPVwieyd0b3AucHgnOiBzdWdnZXN0aW9uWX1cIiBbc3R5bGUucmlnaHRdPVwicmlnaHRaZXJvID8gJzBweCcgOiAnYXV0bydcIiBbc3R5bGUubGVmdF09XCIhcmlnaHRaZXJvID8gJzBweCcgOiAnYXV0bydcIiAqbmdJZj1cImVkaXRhYmxlICYmIGxhYmVsICYmIHNob3dTdWdnZXN0aW9uXCIgI3N1Z2dlc3Rpb24+XHJcbiAgICA8ZGl2IGNsYXNzPVwic3VnZ2VzdGlvblwiIChjbGljayk9XCJyZWdlbmVyYXRlVGV4dCgpXCI+XHJcbiAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9wcm9kLXNpbXBvLnMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbS9wcm9kLWltYWdlcy84ODc0OTNjMTc0MjI3Mzk3MDE1MUZyYW1lJTIwMTI0NDgzMTc0MC5wbmdcIiBhbHQ9XCJcIj5cclxuICAgICAgPGRpdj5cclxuICAgICAgICA8cCBjbGFzcz1cIm5hbWVcIj5SZWdlbmVyYXRlIFRleHQ8L3A+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJkZXNjXCI+R2V0IGEgZnJlc2ggdmFyaWF0aW9uIG9mIGEgY3VycmVudCB0ZXh0PC9wPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -17,12 +17,12 @@ export class TopOfImageCardComponent {
17
17
  redirectTo() {
18
18
  this._eventService.buttonRedirection.emit({ data: this.data.button });
19
19
  }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TopOfImageCardComponent, deps: [{ token: i1.EventsService }], target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TopOfImageCardComponent, isStandalone: true, selector: "simpo-top-of-image-card", inputs: { data: "data", styles: "styles", content: "content", componentId: "componentId", button: "button", edit: "edit" }, ngImport: i0, template: "<!-- <div style=\"position: relative;\">\n\n <img loading=\"lazy\" [src]=\"data.image.url\" [alt]=\"data.image.altText\" [simpoImageDirective]=\"styles?.image\"\n [simpoCorner]=\"styles?.corners\" [id]=\"componentId\" class=\"w-100\" *ngIf=\"content.showImage\">\n\n <div class=\"content\" [simpoCorner]=\"styles?.corners\" [id]=\"componentId\" [simpoTextBackgroundDirective]=\"styles?.textBackground\">\n <div style=\"color: white;\" class=\"heading-medium mb-1\" [innerHtml]=\"data.inputText[0].value\"\n *ngIf=\"content.showHeading\"></div>\n <div style=\"color: white;\" class=\"body-desc\" [innerHtml]=\"data.inputText[01].value\" *ngIf=\"content.showContent\">\n </div>\n <app-button-element [buttonData]=\"data?.button\" [sectionId]=\"componentId\" [buttonStyle]=\"styles?.button\" [color]=\"styles?.background?.accentColor\"></app-button-element>\n </div>\n</div>\n -->\n<div class=\"top-container\" (click)=\"(content?.display?.showLink && content?.display?.linkType === 'List Item' ? redirectTo() : '')\"\n [ngStyle]=\"{'background-image' : content.display.showImage ? 'url('+data.image.url+')' : ''}\"\n [simpoCorner]=\"styles?.corners\" [id]=\"componentId\">\n <div [simpoImageDirective]=\"styles?.image\" [id]=\"componentId\" *ngIf=\"content.display.showImage\"></div>\n <div class=\"content\" [simpoCorner]=\"styles?.corners\" [id]=\"componentId\"\n [simpoTextBackgroundDirective]=\"content.display.showImage ? styles?.textBackground : ''\">\n <div class=\"heading-medium mb-1 lh-40\" *ngIf=\"content.display.showHeading\">\n <simpo-text-editor [(value)]=\"data.inputText[0].value \" [editable]=\"edit || false\"></simpo-text-editor>\n\n </div>\n <div class=\"body-desc\" *ngIf=\"content.display.showContent\">\n <simpo-text-editor [(value)]=\"data.inputText[1].value \" [editable]=\"edit || false\"></simpo-text-editor>\n </div>\n <div *ngIf=\"content.display.showLink && content.display.linkType === 'Button'\">\n <app-button-element [buttonContent]=\"data.button\" [buttonStyle]=\"button?.styles\" [sectionId]=\"componentId\"\n [buttonId]=\"button ? button.id : ''\" [color]=\"styles?.background?.accentColor\" [backgroundInfo]=\"data?.styles?.background\"></app-button-element>\n </div>\n </div>\n</div>\n", styles: [".w-100{width:100%}.mb-1{margin-bottom:1rem!important}.content{padding:3rem 1.5rem 1.5rem;min-height:256px;display:flex;flex-direction:column;justify-content:end;bottom:0}.top-container{background-position:center center;background-size:cover;height:100%;position:relative;display:flex;flex-direction:column;justify-content:flex-end}.lh-40{line-height:40px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: ImageDirectiveDirective, selector: "[simpoImageDirective]", inputs: ["simpoImageDirective"] }, { kind: "directive", type: CornerDirective, selector: "[simpoCorner]", inputs: ["simpoCorner"] }, { kind: "directive", type: TextBackgroundDirectiveDirective, selector: "[simpoTextBackgroundDirective]", inputs: ["simpoTextBackgroundDirective"] }, { kind: "component", type: TextEditorComponent, selector: "simpo-text-editor", inputs: ["value", "editable", "sectionId", "label"], outputs: ["valueChange"] }, { kind: "component", type: SimpoButtonComponent, selector: "app-button-element", inputs: ["buttonContent", "buttonStyle", "buttonId", "color", "sectionId", "edit", "backgroundInfo"] }] }); }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: TopOfImageCardComponent, deps: [{ token: i1.EventsService }], target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: TopOfImageCardComponent, isStandalone: true, selector: "simpo-top-of-image-card", inputs: { data: "data", styles: "styles", content: "content", componentId: "componentId", button: "button", edit: "edit" }, ngImport: i0, template: "<!-- <div style=\"position: relative;\">\r\n\r\n <img loading=\"lazy\" [src]=\"data.image.url\" [alt]=\"data.image.altText\" [simpoImageDirective]=\"styles?.image\"\r\n [simpoCorner]=\"styles?.corners\" [id]=\"componentId\" class=\"w-100\" *ngIf=\"content.showImage\">\r\n\r\n <div class=\"content\" [simpoCorner]=\"styles?.corners\" [id]=\"componentId\" [simpoTextBackgroundDirective]=\"styles?.textBackground\">\r\n <div style=\"color: white;\" class=\"heading-medium mb-1\" [innerHtml]=\"data.inputText[0].value\"\r\n *ngIf=\"content.showHeading\"></div>\r\n <div style=\"color: white;\" class=\"body-desc\" [innerHtml]=\"data.inputText[01].value\" *ngIf=\"content.showContent\">\r\n </div>\r\n <app-button-element [buttonData]=\"data?.button\" [sectionId]=\"componentId\" [buttonStyle]=\"styles?.button\" [color]=\"styles?.background?.accentColor\"></app-button-element>\r\n </div>\r\n</div>\r\n -->\r\n<div class=\"top-container\" (click)=\"(content?.display?.showLink && content?.display?.linkType === 'List Item' ? redirectTo() : '')\"\r\n [ngStyle]=\"{'background-image' : content.display.showImage ? 'url('+data.image.url+')' : ''}\"\r\n [simpoCorner]=\"styles?.corners\" [id]=\"componentId\">\r\n <div [simpoImageDirective]=\"styles?.image\" [id]=\"componentId\" *ngIf=\"content.display.showImage\"></div>\r\n <div class=\"content\" [simpoCorner]=\"styles?.corners\" [id]=\"componentId\"\r\n [simpoTextBackgroundDirective]=\"content.display.showImage ? styles?.textBackground : ''\">\r\n <div class=\"heading-medium mb-1 lh-40\" *ngIf=\"content.display.showHeading\">\r\n <simpo-text-editor [(value)]=\"data.inputText[0].value \" [editable]=\"edit || false\"></simpo-text-editor>\r\n\r\n </div>\r\n <div class=\"body-desc\" *ngIf=\"content.display.showContent\">\r\n <simpo-text-editor [(value)]=\"data.inputText[1].value \" [editable]=\"edit || false\"></simpo-text-editor>\r\n </div>\r\n <div *ngIf=\"content.display.showLink && content.display.linkType === 'Button'\">\r\n <app-button-element [buttonContent]=\"data.button\" [buttonStyle]=\"button?.styles\" [sectionId]=\"componentId\"\r\n [buttonId]=\"button ? button.id : ''\" [color]=\"styles?.background?.accentColor\" [backgroundInfo]=\"data?.styles?.background\"></app-button-element>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".w-100{width:100%}.mb-1{margin-bottom:1rem!important}.content{padding:3rem 1.5rem 1.5rem;min-height:256px;display:flex;flex-direction:column;justify-content:end;bottom:0}.top-container{background-position:center center;background-size:cover;height:100%;position:relative;display:flex;flex-direction:column;justify-content:flex-end}.lh-40{line-height:40px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: ImageDirectiveDirective, selector: "[simpoImageDirective]", inputs: ["simpoImageDirective"] }, { kind: "directive", type: CornerDirective, selector: "[simpoCorner]", inputs: ["simpoCorner"] }, { kind: "directive", type: TextBackgroundDirectiveDirective, selector: "[simpoTextBackgroundDirective]", inputs: ["simpoTextBackgroundDirective"] }, { kind: "component", type: TextEditorComponent, selector: "simpo-text-editor", inputs: ["value", "editable", "sectionId", "label"], outputs: ["valueChange"] }, { kind: "component", type: SimpoButtonComponent, selector: "app-button-element", inputs: ["buttonContent", "buttonStyle", "buttonId", "color", "sectionId", "edit", "backgroundInfo"] }] }); }
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TopOfImageCardComponent, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: TopOfImageCardComponent, decorators: [{
24
24
  type: Component,
25
- args: [{ selector: 'simpo-top-of-image-card', standalone: true, imports: [CommonModule, ImageDirectiveDirective, CornerDirective, TextBackgroundDirectiveDirective, TextEditorComponent, SimpoButtonComponent], template: "<!-- <div style=\"position: relative;\">\n\n <img loading=\"lazy\" [src]=\"data.image.url\" [alt]=\"data.image.altText\" [simpoImageDirective]=\"styles?.image\"\n [simpoCorner]=\"styles?.corners\" [id]=\"componentId\" class=\"w-100\" *ngIf=\"content.showImage\">\n\n <div class=\"content\" [simpoCorner]=\"styles?.corners\" [id]=\"componentId\" [simpoTextBackgroundDirective]=\"styles?.textBackground\">\n <div style=\"color: white;\" class=\"heading-medium mb-1\" [innerHtml]=\"data.inputText[0].value\"\n *ngIf=\"content.showHeading\"></div>\n <div style=\"color: white;\" class=\"body-desc\" [innerHtml]=\"data.inputText[01].value\" *ngIf=\"content.showContent\">\n </div>\n <app-button-element [buttonData]=\"data?.button\" [sectionId]=\"componentId\" [buttonStyle]=\"styles?.button\" [color]=\"styles?.background?.accentColor\"></app-button-element>\n </div>\n</div>\n -->\n<div class=\"top-container\" (click)=\"(content?.display?.showLink && content?.display?.linkType === 'List Item' ? redirectTo() : '')\"\n [ngStyle]=\"{'background-image' : content.display.showImage ? 'url('+data.image.url+')' : ''}\"\n [simpoCorner]=\"styles?.corners\" [id]=\"componentId\">\n <div [simpoImageDirective]=\"styles?.image\" [id]=\"componentId\" *ngIf=\"content.display.showImage\"></div>\n <div class=\"content\" [simpoCorner]=\"styles?.corners\" [id]=\"componentId\"\n [simpoTextBackgroundDirective]=\"content.display.showImage ? styles?.textBackground : ''\">\n <div class=\"heading-medium mb-1 lh-40\" *ngIf=\"content.display.showHeading\">\n <simpo-text-editor [(value)]=\"data.inputText[0].value \" [editable]=\"edit || false\"></simpo-text-editor>\n\n </div>\n <div class=\"body-desc\" *ngIf=\"content.display.showContent\">\n <simpo-text-editor [(value)]=\"data.inputText[1].value \" [editable]=\"edit || false\"></simpo-text-editor>\n </div>\n <div *ngIf=\"content.display.showLink && content.display.linkType === 'Button'\">\n <app-button-element [buttonContent]=\"data.button\" [buttonStyle]=\"button?.styles\" [sectionId]=\"componentId\"\n [buttonId]=\"button ? button.id : ''\" [color]=\"styles?.background?.accentColor\" [backgroundInfo]=\"data?.styles?.background\"></app-button-element>\n </div>\n </div>\n</div>\n", styles: [".w-100{width:100%}.mb-1{margin-bottom:1rem!important}.content{padding:3rem 1.5rem 1.5rem;min-height:256px;display:flex;flex-direction:column;justify-content:end;bottom:0}.top-container{background-position:center center;background-size:cover;height:100%;position:relative;display:flex;flex-direction:column;justify-content:flex-end}.lh-40{line-height:40px}\n"] }]
25
+ args: [{ selector: 'simpo-top-of-image-card', standalone: true, imports: [CommonModule, ImageDirectiveDirective, CornerDirective, TextBackgroundDirectiveDirective, TextEditorComponent, SimpoButtonComponent], template: "<!-- <div style=\"position: relative;\">\r\n\r\n <img loading=\"lazy\" [src]=\"data.image.url\" [alt]=\"data.image.altText\" [simpoImageDirective]=\"styles?.image\"\r\n [simpoCorner]=\"styles?.corners\" [id]=\"componentId\" class=\"w-100\" *ngIf=\"content.showImage\">\r\n\r\n <div class=\"content\" [simpoCorner]=\"styles?.corners\" [id]=\"componentId\" [simpoTextBackgroundDirective]=\"styles?.textBackground\">\r\n <div style=\"color: white;\" class=\"heading-medium mb-1\" [innerHtml]=\"data.inputText[0].value\"\r\n *ngIf=\"content.showHeading\"></div>\r\n <div style=\"color: white;\" class=\"body-desc\" [innerHtml]=\"data.inputText[01].value\" *ngIf=\"content.showContent\">\r\n </div>\r\n <app-button-element [buttonData]=\"data?.button\" [sectionId]=\"componentId\" [buttonStyle]=\"styles?.button\" [color]=\"styles?.background?.accentColor\"></app-button-element>\r\n </div>\r\n</div>\r\n -->\r\n<div class=\"top-container\" (click)=\"(content?.display?.showLink && content?.display?.linkType === 'List Item' ? redirectTo() : '')\"\r\n [ngStyle]=\"{'background-image' : content.display.showImage ? 'url('+data.image.url+')' : ''}\"\r\n [simpoCorner]=\"styles?.corners\" [id]=\"componentId\">\r\n <div [simpoImageDirective]=\"styles?.image\" [id]=\"componentId\" *ngIf=\"content.display.showImage\"></div>\r\n <div class=\"content\" [simpoCorner]=\"styles?.corners\" [id]=\"componentId\"\r\n [simpoTextBackgroundDirective]=\"content.display.showImage ? styles?.textBackground : ''\">\r\n <div class=\"heading-medium mb-1 lh-40\" *ngIf=\"content.display.showHeading\">\r\n <simpo-text-editor [(value)]=\"data.inputText[0].value \" [editable]=\"edit || false\"></simpo-text-editor>\r\n\r\n </div>\r\n <div class=\"body-desc\" *ngIf=\"content.display.showContent\">\r\n <simpo-text-editor [(value)]=\"data.inputText[1].value \" [editable]=\"edit || false\"></simpo-text-editor>\r\n </div>\r\n <div *ngIf=\"content.display.showLink && content.display.linkType === 'Button'\">\r\n <app-button-element [buttonContent]=\"data.button\" [buttonStyle]=\"button?.styles\" [sectionId]=\"componentId\"\r\n [buttonId]=\"button ? button.id : ''\" [color]=\"styles?.background?.accentColor\" [backgroundInfo]=\"data?.styles?.background\"></app-button-element>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".w-100{width:100%}.mb-1{margin-bottom:1rem!important}.content{padding:3rem 1.5rem 1.5rem;min-height:256px;display:flex;flex-direction:column;justify-content:end;bottom:0}.top-container{background-position:center center;background-size:cover;height:100%;position:relative;display:flex;flex-direction:column;justify-content:flex-end}.lh-40{line-height:40px}\n"] }]
26
26
  }], ctorParameters: () => [{ type: i1.EventsService }], propDecorators: { data: [{
27
27
  type: Input
28
28
  }], styles: [{
@@ -36,4 +36,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
36
36
  }], edit: [{
37
37
  type: Input
38
38
  }] } });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wLW9mLWltYWdlLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lbGVtZW50cy90b3Atb2YtaW1hZ2UtY2FyZC90b3Atb2YtaW1hZ2UtY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL3RvcC1vZi1pbWFnZS1jYXJkL3RvcC1vZi1pbWFnZS1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDekcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFHOUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7QUFTM0UsTUFBTSxPQUFPLHVCQUF1QjtJQVFsQyxZQUFvQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUFFLENBQUM7SUFDbkQsUUFBUTtJQUVSLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7K0dBZlUsdUJBQXVCO21HQUF2Qix1QkFBdUIsK01DakJwQywydkVBaUNBLDhaRHBCWSxZQUFZLHdOQUFDLHVCQUF1QixtR0FBQyxlQUFlLG1GQUFDLGdDQUFnQyxxSEFBQyxtQkFBbUIsNklBQUMsb0JBQW9COzs0RkFJN0gsdUJBQXVCO2tCQVBuQyxTQUFTOytCQUNFLHlCQUF5QixjQUN2QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUMsdUJBQXVCLEVBQUMsZUFBZSxFQUFDLGdDQUFnQyxFQUFDLG1CQUFtQixFQUFDLG9CQUFvQixDQUFDO2tGQUtoSSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29ybmVyRGlyZWN0aXZlIH0gZnJvbSAnLi8uLi8uLi9kaXJlY3RpdmUvY29ybmVyLWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJbWFnZURpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4vLi4vLi4vZGlyZWN0aXZlL2ltYWdlLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVGV4dEJhY2tncm91bmREaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLy4uLy4uL2RpcmVjdGl2ZS90ZXh0LWJhY2tncm91bmQtZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTaW1wb0J1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL3NpbXBvLWJ1dHRvbi9zaW1wby1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbk1vZGVsIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcbmltcG9ydCB7IEV2ZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ldmVudHMuc2VydmljZSc7XG5pbXBvcnQgeyBUZXh0RWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vdGV4dC1lZGl0b3IvdGV4dC1lZGl0b3IuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2ltcG8tdG9wLW9mLWltYWdlLWNhcmQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLEltYWdlRGlyZWN0aXZlRGlyZWN0aXZlLENvcm5lckRpcmVjdGl2ZSxUZXh0QmFja2dyb3VuZERpcmVjdGl2ZURpcmVjdGl2ZSxUZXh0RWRpdG9yQ29tcG9uZW50LFNpbXBvQnV0dG9uQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RvcC1vZi1pbWFnZS1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3RvcC1vZi1pbWFnZS1jYXJkLmNvbXBvbmVudC5jc3MnXG59KVxuZXhwb3J0IGNsYXNzIFRvcE9mSW1hZ2VDYXJkQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZGF0YTogYW55O1xuICBASW5wdXQoKSBzdHlsZXM6IGFueTtcbiAgQElucHV0KCkgY29udGVudDogYW55O1xuICBASW5wdXQoKSBjb21wb25lbnRJZD86IHN0cmluZztcbiAgQElucHV0KCkgYnV0dG9uPzogQnV0dG9uTW9kZWw7XG4gIEBJbnB1dCgpIGVkaXQ/IDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9ldmVudFNlcnZpY2U6IEV2ZW50c1NlcnZpY2Upe31cbiAgbmdPbkluaXQoKXtcblxuICB9XG5cbiAgcmVkaXJlY3RUbygpe1xuICAgIHRoaXMuX2V2ZW50U2VydmljZS5idXR0b25SZWRpcmVjdGlvbi5lbWl0KHtkYXRhOiB0aGlzLmRhdGEuYnV0dG9ufSk7XG4gIH1cbn1cbiIsIjwhLS0gPGRpdiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTtcIj5cblxuICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgIFtzcmNdPVwiZGF0YS5pbWFnZS51cmxcIiBbYWx0XT1cImRhdGEuaW1hZ2UuYWx0VGV4dFwiIFtzaW1wb0ltYWdlRGlyZWN0aXZlXT1cInN0eWxlcz8uaW1hZ2VcIlxuICAgIFtzaW1wb0Nvcm5lcl09XCJzdHlsZXM/LmNvcm5lcnNcIiBbaWRdPVwiY29tcG9uZW50SWRcIiBjbGFzcz1cInctMTAwXCIgKm5nSWY9XCJjb250ZW50LnNob3dJbWFnZVwiPlxuXG4gIDxkaXYgY2xhc3M9XCJjb250ZW50XCIgW3NpbXBvQ29ybmVyXT1cInN0eWxlcz8uY29ybmVyc1wiIFtpZF09XCJjb21wb25lbnRJZFwiIFtzaW1wb1RleHRCYWNrZ3JvdW5kRGlyZWN0aXZlXT1cInN0eWxlcz8udGV4dEJhY2tncm91bmRcIj5cbiAgICA8ZGl2IHN0eWxlPVwiY29sb3I6IHdoaXRlO1wiIGNsYXNzPVwiaGVhZGluZy1tZWRpdW0gbWItMVwiIFtpbm5lckh0bWxdPVwiZGF0YS5pbnB1dFRleHRbMF0udmFsdWVcIlxuICAgICAgKm5nSWY9XCJjb250ZW50LnNob3dIZWFkaW5nXCI+PC9kaXY+XG4gICAgPGRpdiBzdHlsZT1cImNvbG9yOiB3aGl0ZTtcIiBjbGFzcz1cImJvZHktZGVzY1wiIFtpbm5lckh0bWxdPVwiZGF0YS5pbnB1dFRleHRbMDFdLnZhbHVlXCIgKm5nSWY9XCJjb250ZW50LnNob3dDb250ZW50XCI+XG4gICAgPC9kaXY+XG4gICAgPGFwcC1idXR0b24tZWxlbWVudCBbYnV0dG9uRGF0YV09XCJkYXRhPy5idXR0b25cIiBbc2VjdGlvbklkXT1cImNvbXBvbmVudElkXCIgW2J1dHRvblN0eWxlXT1cInN0eWxlcz8uYnV0dG9uXCIgW2NvbG9yXT1cInN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj48L2FwcC1idXR0b24tZWxlbWVudD5cbiAgPC9kaXY+XG48L2Rpdj5cbiAtLT5cbjxkaXYgY2xhc3M9XCJ0b3AtY29udGFpbmVyXCIgIChjbGljayk9XCIoY29udGVudD8uZGlzcGxheT8uc2hvd0xpbmsgJiYgY29udGVudD8uZGlzcGxheT8ubGlua1R5cGUgPT09ICdMaXN0IEl0ZW0nID8gcmVkaXJlY3RUbygpIDogJycpXCJcbiAgW25nU3R5bGVdPVwieydiYWNrZ3JvdW5kLWltYWdlJyA6IGNvbnRlbnQuZGlzcGxheS5zaG93SW1hZ2UgPyAndXJsKCcrZGF0YS5pbWFnZS51cmwrJyknIDogJyd9XCJcbiAgW3NpbXBvQ29ybmVyXT1cInN0eWxlcz8uY29ybmVyc1wiIFtpZF09XCJjb21wb25lbnRJZFwiPlxuICA8ZGl2IFtzaW1wb0ltYWdlRGlyZWN0aXZlXT1cInN0eWxlcz8uaW1hZ2VcIiBbaWRdPVwiY29tcG9uZW50SWRcIiAqbmdJZj1cImNvbnRlbnQuZGlzcGxheS5zaG93SW1hZ2VcIj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIiBbc2ltcG9Db3JuZXJdPVwic3R5bGVzPy5jb3JuZXJzXCIgW2lkXT1cImNvbXBvbmVudElkXCJcbiAgICBbc2ltcG9UZXh0QmFja2dyb3VuZERpcmVjdGl2ZV09XCJjb250ZW50LmRpc3BsYXkuc2hvd0ltYWdlID8gc3R5bGVzPy50ZXh0QmFja2dyb3VuZCA6ICcnXCI+XG4gICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbWVkaXVtIG1iLTEgbGgtNDBcIiAgKm5nSWY9XCJjb250ZW50LmRpc3BsYXkuc2hvd0hlYWRpbmdcIj5cbiAgICAgIDxzaW1wby10ZXh0LWVkaXRvciBbKHZhbHVlKV09XCJkYXRhLmlucHV0VGV4dFswXS52YWx1ZSBcIiBbZWRpdGFibGVdPVwiZWRpdCB8fCBmYWxzZVwiPjwvc2ltcG8tdGV4dC1lZGl0b3I+XG5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYm9keS1kZXNjXCIgKm5nSWY9XCJjb250ZW50LmRpc3BsYXkuc2hvd0NvbnRlbnRcIj5cbiAgICAgIDxzaW1wby10ZXh0LWVkaXRvciBbKHZhbHVlKV09XCJkYXRhLmlucHV0VGV4dFsxXS52YWx1ZSBcIiBbZWRpdGFibGVdPVwiZWRpdCB8fCBmYWxzZVwiPjwvc2ltcG8tdGV4dC1lZGl0b3I+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImNvbnRlbnQuZGlzcGxheS5zaG93TGluayAmJiBjb250ZW50LmRpc3BsYXkubGlua1R5cGUgPT09ICdCdXR0b24nXCI+XG4gICAgICA8YXBwLWJ1dHRvbi1lbGVtZW50IFtidXR0b25Db250ZW50XT1cImRhdGEuYnV0dG9uXCIgW2J1dHRvblN0eWxlXT1cImJ1dHRvbj8uc3R5bGVzXCIgW3NlY3Rpb25JZF09XCJjb21wb25lbnRJZFwiXG4gICAgICAgIFtidXR0b25JZF09XCJidXR0b24gPyBidXR0b24uaWQgOiAnJ1wiIFtjb2xvcl09XCJzdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCIgW2JhY2tncm91bmRJbmZvXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZFwiPjwvYXBwLWJ1dHRvbi1lbGVtZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wLW9mLWltYWdlLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lbGVtZW50cy90b3Atb2YtaW1hZ2UtY2FyZC90b3Atb2YtaW1hZ2UtY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL3RvcC1vZi1pbWFnZS1jYXJkL3RvcC1vZi1pbWFnZS1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDekcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFHOUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7QUFTM0UsTUFBTSxPQUFPLHVCQUF1QjtJQVFsQyxZQUFvQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUFFLENBQUM7SUFDbkQsUUFBUTtJQUVSLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7OEdBZlUsdUJBQXVCO2tHQUF2Qix1QkFBdUIsK01DakJwQyw2ekVBaUNBLDhaRHBCWSxZQUFZLHdOQUFDLHVCQUF1QixtR0FBQyxlQUFlLG1GQUFDLGdDQUFnQyxxSEFBQyxtQkFBbUIsNklBQUMsb0JBQW9COzsyRkFJN0gsdUJBQXVCO2tCQVBuQyxTQUFTOytCQUNFLHlCQUF5QixjQUN2QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUMsdUJBQXVCLEVBQUMsZUFBZSxFQUFDLGdDQUFnQyxFQUFDLG1CQUFtQixFQUFDLG9CQUFvQixDQUFDO2tGQUtoSSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvcm5lckRpcmVjdGl2ZSB9IGZyb20gJy4vLi4vLi4vZGlyZWN0aXZlL2Nvcm5lci1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBJbWFnZURpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4vLi4vLi4vZGlyZWN0aXZlL2ltYWdlLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBUZXh0QmFja2dyb3VuZERpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4vLi4vLi4vZGlyZWN0aXZlL3RleHQtYmFja2dyb3VuZC1kaXJlY3RpdmUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2ltcG9CdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9zaW1wby1idXR0b24vc2ltcG8tYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJ1dHRvbk1vZGVsIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGV4dEVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4uL3RleHQtZWRpdG9yL3RleHQtZWRpdG9yLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NpbXBvLXRvcC1vZi1pbWFnZS1jYXJkJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsSW1hZ2VEaXJlY3RpdmVEaXJlY3RpdmUsQ29ybmVyRGlyZWN0aXZlLFRleHRCYWNrZ3JvdW5kRGlyZWN0aXZlRGlyZWN0aXZlLFRleHRFZGl0b3JDb21wb25lbnQsU2ltcG9CdXR0b25Db21wb25lbnRdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90b3Atb2YtaW1hZ2UtY2FyZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3RvcC1vZi1pbWFnZS1jYXJkLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUb3BPZkltYWdlQ2FyZENvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgZGF0YTogYW55O1xyXG4gIEBJbnB1dCgpIHN0eWxlczogYW55O1xyXG4gIEBJbnB1dCgpIGNvbnRlbnQ6IGFueTtcclxuICBASW5wdXQoKSBjb21wb25lbnRJZD86IHN0cmluZztcclxuICBASW5wdXQoKSBidXR0b24/OiBCdXR0b25Nb2RlbDtcclxuICBASW5wdXQoKSBlZGl0PyA6IGJvb2xlYW47XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2V2ZW50U2VydmljZTogRXZlbnRzU2VydmljZSl7fVxyXG4gIG5nT25Jbml0KCl7XHJcblxyXG4gIH1cclxuXHJcbiAgcmVkaXJlY3RUbygpe1xyXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmJ1dHRvblJlZGlyZWN0aW9uLmVtaXQoe2RhdGE6IHRoaXMuZGF0YS5idXR0b259KTtcclxuICB9XHJcbn1cclxuIiwiPCEtLSA8ZGl2IHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO1wiPlxyXG5cclxuICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgIFtzcmNdPVwiZGF0YS5pbWFnZS51cmxcIiBbYWx0XT1cImRhdGEuaW1hZ2UuYWx0VGV4dFwiIFtzaW1wb0ltYWdlRGlyZWN0aXZlXT1cInN0eWxlcz8uaW1hZ2VcIlxyXG4gICAgW3NpbXBvQ29ybmVyXT1cInN0eWxlcz8uY29ybmVyc1wiIFtpZF09XCJjb21wb25lbnRJZFwiIGNsYXNzPVwidy0xMDBcIiAqbmdJZj1cImNvbnRlbnQuc2hvd0ltYWdlXCI+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJjb250ZW50XCIgW3NpbXBvQ29ybmVyXT1cInN0eWxlcz8uY29ybmVyc1wiIFtpZF09XCJjb21wb25lbnRJZFwiIFtzaW1wb1RleHRCYWNrZ3JvdW5kRGlyZWN0aXZlXT1cInN0eWxlcz8udGV4dEJhY2tncm91bmRcIj5cclxuICAgIDxkaXYgc3R5bGU9XCJjb2xvcjogd2hpdGU7XCIgY2xhc3M9XCJoZWFkaW5nLW1lZGl1bSBtYi0xXCIgW2lubmVySHRtbF09XCJkYXRhLmlucHV0VGV4dFswXS52YWx1ZVwiXHJcbiAgICAgICpuZ0lmPVwiY29udGVudC5zaG93SGVhZGluZ1wiPjwvZGl2PlxyXG4gICAgPGRpdiBzdHlsZT1cImNvbG9yOiB3aGl0ZTtcIiBjbGFzcz1cImJvZHktZGVzY1wiIFtpbm5lckh0bWxdPVwiZGF0YS5pbnB1dFRleHRbMDFdLnZhbHVlXCIgKm5nSWY9XCJjb250ZW50LnNob3dDb250ZW50XCI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxhcHAtYnV0dG9uLWVsZW1lbnQgW2J1dHRvbkRhdGFdPVwiZGF0YT8uYnV0dG9uXCIgW3NlY3Rpb25JZF09XCJjb21wb25lbnRJZFwiIFtidXR0b25TdHlsZV09XCJzdHlsZXM/LmJ1dHRvblwiIFtjb2xvcl09XCJzdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+PC9hcHAtYnV0dG9uLWVsZW1lbnQ+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4gLS0+XHJcbjxkaXYgY2xhc3M9XCJ0b3AtY29udGFpbmVyXCIgIChjbGljayk9XCIoY29udGVudD8uZGlzcGxheT8uc2hvd0xpbmsgJiYgY29udGVudD8uZGlzcGxheT8ubGlua1R5cGUgPT09ICdMaXN0IEl0ZW0nID8gcmVkaXJlY3RUbygpIDogJycpXCJcclxuICBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQtaW1hZ2UnIDogY29udGVudC5kaXNwbGF5LnNob3dJbWFnZSA/ICd1cmwoJytkYXRhLmltYWdlLnVybCsnKScgOiAnJ31cIlxyXG4gIFtzaW1wb0Nvcm5lcl09XCJzdHlsZXM/LmNvcm5lcnNcIiBbaWRdPVwiY29tcG9uZW50SWRcIj5cclxuICA8ZGl2IFtzaW1wb0ltYWdlRGlyZWN0aXZlXT1cInN0eWxlcz8uaW1hZ2VcIiBbaWRdPVwiY29tcG9uZW50SWRcIiAqbmdJZj1cImNvbnRlbnQuZGlzcGxheS5zaG93SW1hZ2VcIj48L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiY29udGVudFwiIFtzaW1wb0Nvcm5lcl09XCJzdHlsZXM/LmNvcm5lcnNcIiBbaWRdPVwiY29tcG9uZW50SWRcIlxyXG4gICAgW3NpbXBvVGV4dEJhY2tncm91bmREaXJlY3RpdmVdPVwiY29udGVudC5kaXNwbGF5LnNob3dJbWFnZSA/IHN0eWxlcz8udGV4dEJhY2tncm91bmQgOiAnJ1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbWVkaXVtIG1iLTEgbGgtNDBcIiAgKm5nSWY9XCJjb250ZW50LmRpc3BsYXkuc2hvd0hlYWRpbmdcIj5cclxuICAgICAgPHNpbXBvLXRleHQtZWRpdG9yIFsodmFsdWUpXT1cImRhdGEuaW5wdXRUZXh0WzBdLnZhbHVlIFwiIFtlZGl0YWJsZV09XCJlZGl0IHx8IGZhbHNlXCI+PC9zaW1wby10ZXh0LWVkaXRvcj5cclxuXHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJib2R5LWRlc2NcIiAqbmdJZj1cImNvbnRlbnQuZGlzcGxheS5zaG93Q29udGVudFwiPlxyXG4gICAgICA8c2ltcG8tdGV4dC1lZGl0b3IgWyh2YWx1ZSldPVwiZGF0YS5pbnB1dFRleHRbMV0udmFsdWUgXCIgW2VkaXRhYmxlXT1cImVkaXQgfHwgZmFsc2VcIj48L3NpbXBvLXRleHQtZWRpdG9yPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiY29udGVudC5kaXNwbGF5LnNob3dMaW5rICYmIGNvbnRlbnQuZGlzcGxheS5saW5rVHlwZSA9PT0gJ0J1dHRvbidcIj5cclxuICAgICAgPGFwcC1idXR0b24tZWxlbWVudCBbYnV0dG9uQ29udGVudF09XCJkYXRhLmJ1dHRvblwiIFtidXR0b25TdHlsZV09XCJidXR0b24/LnN0eWxlc1wiIFtzZWN0aW9uSWRdPVwiY29tcG9uZW50SWRcIlxyXG4gICAgICAgIFtidXR0b25JZF09XCJidXR0b24gPyBidXR0b24uaWQgOiAnJ1wiIFtjb2xvcl09XCJzdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCIgW2JhY2tncm91bmRJbmZvXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZFwiPjwvYXBwLWJ1dHRvbi1lbGVtZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -22,14 +22,14 @@ export class FormateAmount {
22
22
  }
23
23
  }
24
24
  }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormateAmount, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
26
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: FormateAmount, isStandalone: true, name: "formateAmount" }); }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: FormateAmount, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
26
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.4", ngImport: i0, type: FormateAmount, isStandalone: true, name: "formateAmount" }); }
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormateAmount, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: FormateAmount, decorators: [{
29
29
  type: Pipe,
30
30
  args: [{
31
31
  standalone: true,
32
32
  name: 'formateAmount',
33
33
  }]
34
34
  }] });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1vdW50LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3BpcGVzL2Ftb3VudC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDOztBQWFsRCxNQUFNLE9BQU8sYUFBYTtJQUV0QixTQUFTLENBQUMsS0FBc0IsRUFBRSxTQUF3QixLQUFLO1FBRTNELElBQUksTUFBTSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ2xCLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQywrQkFBZ0IsRUFBRSxDQUFDO2dCQUNoQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyw4QkFBZSxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ2pELENBQUM7aUJBQU0sSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLDZCQUFnQixFQUFFLENBQUM7Z0JBQ3ZDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDRCQUFlLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDakQsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzVCLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxnQ0FBa0IsRUFBRSxDQUFDO2dCQUNsQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQywrQkFBaUIsQ0FBQyxHQUFHLElBQUksQ0FBQztZQUNuRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDNUIsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDOytHQW5CUSxhQUFhOzZHQUFiLGFBQWE7OzRGQUFiLGFBQWE7a0JBSnpCLElBQUk7bUJBQUM7b0JBQ0osVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRSxlQUFlO2lCQUN0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UGlwZSwgUGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cblxuY29uc3QgZW51bSBBTU9VTlQge1xuICAgIExBS0hTID0gMTAwMDAwLFxuICAgIENST1JFID0gMTAwMDAwMDAsXG4gICAgTUlMTElPTiA9IDEwMDAwMDBcbn1cblxuQFBpcGUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBuYW1lOiAnZm9ybWF0ZUFtb3VudCcsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1hdGVBbW91bnQgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICAgIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyLCBzeXN0ZW06IFwiSU5EXCIgfCBcIklOVFwiID0gXCJJTkRcIik6IHN0cmluZyB7XG5cbiAgICAgICAgaWYgKHN5c3RlbSA9PSBcIklORFwiKSB7XG4gICAgICAgICAgICBpZiAoTnVtYmVyKHZhbHVlKSA+PSBBTU9VTlQuQ1JPUkUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKE51bWJlcih2YWx1ZSkgLyBBTU9VTlQuQ1JPUkUpICsgJ2NyJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoTnVtYmVyKHZhbHVlKSA+PSBBTU9VTlQuTEFLSFMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKE51bWJlcih2YWx1ZSkgLyBBTU9VTlQuTEFLSFMpICsgJ2xrJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoTnVtYmVyKHZhbHVlKSA+PSBBTU9VTlQuTUlMTElPTikge1xuICAgICAgICAgICAgICAgIHJldHVybiAoTnVtYmVyKHZhbHVlKSAvIEFNT1VOVC5NSUxMSU9OKSArICdtbic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSJdfQ==
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1vdW50LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3BpcGVzL2Ftb3VudC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDOztBQWFsRCxNQUFNLE9BQU8sYUFBYTtJQUV0QixTQUFTLENBQUMsS0FBc0IsRUFBRSxTQUF3QixLQUFLO1FBRTNELElBQUksTUFBTSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ2xCLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQywrQkFBZ0IsRUFBRSxDQUFDO2dCQUNoQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyw4QkFBZSxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ2pELENBQUM7aUJBQU0sSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLDZCQUFnQixFQUFFLENBQUM7Z0JBQ3ZDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDRCQUFlLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDakQsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzVCLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxnQ0FBa0IsRUFBRSxDQUFDO2dCQUNsQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQywrQkFBaUIsQ0FBQyxHQUFHLElBQUksQ0FBQztZQUNuRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDNUIsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDOzhHQW5CUSxhQUFhOzRHQUFiLGFBQWE7OzJGQUFiLGFBQWE7a0JBSnpCLElBQUk7bUJBQUM7b0JBQ0osVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRSxlQUFlO2lCQUN0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UGlwZSwgUGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5cclxuY29uc3QgZW51bSBBTU9VTlQge1xyXG4gICAgTEFLSFMgPSAxMDAwMDAsXHJcbiAgICBDUk9SRSA9IDEwMDAwMDAwLFxyXG4gICAgTUlMTElPTiA9IDEwMDAwMDBcclxufVxyXG5cclxuQFBpcGUoe1xyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgbmFtZTogJ2Zvcm1hdGVBbW91bnQnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybWF0ZUFtb3VudCBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICAgIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyLCBzeXN0ZW06IFwiSU5EXCIgfCBcIklOVFwiID0gXCJJTkRcIik6IHN0cmluZyB7XHJcblxyXG4gICAgICAgIGlmIChzeXN0ZW0gPT0gXCJJTkRcIikge1xyXG4gICAgICAgICAgICBpZiAoTnVtYmVyKHZhbHVlKSA+PSBBTU9VTlQuQ1JPUkUpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAoTnVtYmVyKHZhbHVlKSAvIEFNT1VOVC5DUk9SRSkgKyAnY3InO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKE51bWJlcih2YWx1ZSkgPj0gQU1PVU5ULkxBS0hTKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKE51bWJlcih2YWx1ZSkgLyBBTU9VTlQuTEFLSFMpICsgJ2xrJztcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKE51bWJlcih2YWx1ZSkgPj0gQU1PVU5ULk1JTExJT04pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAoTnVtYmVyKHZhbHVlKSAvIEFNT1VOVC5NSUxMSU9OKSArICdtbic7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ==
@@ -23,14 +23,14 @@ export class GenderIcon {
23
23
  return "https://i.postimg.cc/636tTnW1/user.png";
24
24
  }
25
25
  }
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GenderIcon, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
27
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: GenderIcon, isStandalone: true, name: "genderIcon" }); }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: GenderIcon, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
27
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.4", ngImport: i0, type: GenderIcon, isStandalone: true, name: "genderIcon" }); }
28
28
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GenderIcon, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: GenderIcon, decorators: [{
30
30
  type: Pipe,
31
31
  args: [{
32
32
  standalone: true,
33
33
  name: 'genderIcon',
34
34
  }]
35
35
  }] });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZGVyLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3BpcGVzL2dlbmRlci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDOztBQVNsRCxNQUFNLE9BQU8sVUFBVTtJQUVuQixTQUFTLENBQUMsTUFBOEI7UUFDcEMsUUFBTyxNQUFNLEVBQUUsQ0FBQztZQUNaLEtBQUssTUFBTTtnQkFDUCxPQUFPLHVDQUF1QyxDQUFDO1lBQ25ELEtBQUssUUFBUTtnQkFDVCxPQUFPLDBDQUEwQyxDQUFDO1lBQ3RELEtBQUssUUFBUTtnQkFDVCxPQUFPLHdDQUF3QyxDQUFDO1lBQ3BELEtBQUssT0FBTztnQkFDUixPQUFPLHlDQUF5QyxDQUFDO1lBQ3JELEtBQUssUUFBUTtnQkFDVCxPQUFPLDhDQUE4QyxDQUFDO1lBQzFELEtBQUssT0FBTztnQkFDUixPQUFPLDhDQUE4QyxDQUFDO1lBQzFELEtBQUssVUFBVTtnQkFDWCxPQUFPLDRDQUE0QyxDQUFDO1lBQ3hELEtBQUssVUFBVTtnQkFDWCxPQUFPLDhDQUE4QyxDQUFDO1lBQzFEO2dCQUNJLE9BQU8sd0NBQXdDLENBQUM7UUFDeEQsQ0FBQztJQUNMLENBQUM7K0dBdkJRLFVBQVU7NkdBQVYsVUFBVTs7NEZBQVYsVUFBVTtrQkFKdEIsSUFBSTttQkFBQztvQkFDSixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFLFlBQVk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEdFTkRFUiB9IGZyb20gJy4uL2Vjb21tZXJjZS9zdHlsZXMvdXNlci5tb2RhbCc7XG5cbmRlY2xhcmUgdHlwZSBJQ09OUyA9IFwiTU9CSUxFXCIgfCBcIkVNQUlMXCIgfCBcIk9SREVSXCIgfCBcIldJU0hMSVNUXCIgfCBcIkxPQ0FUSU9OXCI7XG5cbkBQaXBlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgbmFtZTogJ2dlbmRlckljb24nLFxufSlcbmV4cG9ydCBjbGFzcyBHZW5kZXJJY29uIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgICB0cmFuc2Zvcm0oZ2VuZGVyOiBHRU5ERVIgfCBzdHJpbmcgfCBudWxsICk6IHN0cmluZyB7XG4gICAgICAgIHN3aXRjaChnZW5kZXIpIHtcbiAgICAgICAgICAgIGNhc2UgXCJNQUxFXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiaHR0cHM6Ly9pLnBvc3RpbWcuY2MvRHpuS1lMWHkvbWFuLnBuZ1wiO1xuICAgICAgICAgICAgY2FzZSBcIkZFTUFMRVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcImh0dHBzOi8vaS5wb3N0aW1nLmNjL2QxV3ZDM0RRL2ZlbWFsZS5wbmdcIjtcbiAgICAgICAgICAgIGNhc2UgXCJPVEhFUlNcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJodHRwczovL2kucG9zdGltZy5jYy82MzZ0VG5XMS91c2VyLnBuZ1wiO1xuICAgICAgICAgICAgY2FzZSBcIkVNQUlMXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiaHR0cHM6Ly9pLnBvc3RpbWcuY2MvYzRjSDF4QkgvZW1haWwucG5nXCI7XG4gICAgICAgICAgICBjYXNlIFwiTU9CSUxFXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiaHR0cHM6Ly9pLnBvc3RpbWcuY2MvM05GS3cxcDYvc21hcnRwaG9uZS5wbmdcIjtcbiAgICAgICAgICAgIGNhc2UgXCJPUkRFUlwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcImh0dHBzOi8vaS5wb3N0aW1nLmNjLzJ5MDZ6WVBNL2NoZWNrb3V0LTEucG5nXCI7XG4gICAgICAgICAgICBjYXNlIFwiTE9DQVRJT05cIjogXG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiaHR0cHM6Ly9pLnBvc3RpbWcuY2MvTDh3SllIbk0vbG9jYXRpb24ucG5nXCI7XG4gICAgICAgICAgICBjYXNlIFwiV0lTSExJU1RcIjogXG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiaHR0cHM6Ly9pLnBvc3RpbWcuY2MvaFBDem44bnYvd2lzaGxpc3QtMS5wbmdcIjtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiaHR0cHM6Ly9pLnBvc3RpbWcuY2MvNjM2dFRuVzEvdXNlci5wbmdcIjtcbiAgICAgICAgfVxuICAgIH1cbn0iXX0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZGVyLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3BpcGVzL2dlbmRlci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDOztBQVNsRCxNQUFNLE9BQU8sVUFBVTtJQUVuQixTQUFTLENBQUMsTUFBOEI7UUFDcEMsUUFBTyxNQUFNLEVBQUUsQ0FBQztZQUNaLEtBQUssTUFBTTtnQkFDUCxPQUFPLHVDQUF1QyxDQUFDO1lBQ25ELEtBQUssUUFBUTtnQkFDVCxPQUFPLDBDQUEwQyxDQUFDO1lBQ3RELEtBQUssUUFBUTtnQkFDVCxPQUFPLHdDQUF3QyxDQUFDO1lBQ3BELEtBQUssT0FBTztnQkFDUixPQUFPLHlDQUF5QyxDQUFDO1lBQ3JELEtBQUssUUFBUTtnQkFDVCxPQUFPLDhDQUE4QyxDQUFDO1lBQzFELEtBQUssT0FBTztnQkFDUixPQUFPLDhDQUE4QyxDQUFDO1lBQzFELEtBQUssVUFBVTtnQkFDWCxPQUFPLDRDQUE0QyxDQUFDO1lBQ3hELEtBQUssVUFBVTtnQkFDWCxPQUFPLDhDQUE4QyxDQUFDO1lBQzFEO2dCQUNJLE9BQU8sd0NBQXdDLENBQUM7UUFDeEQsQ0FBQztJQUNMLENBQUM7OEdBdkJRLFVBQVU7NEdBQVYsVUFBVTs7MkZBQVYsVUFBVTtrQkFKdEIsSUFBSTttQkFBQztvQkFDSixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFLFlBQVk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgR0VOREVSIH0gZnJvbSAnLi4vZWNvbW1lcmNlL3N0eWxlcy91c2VyLm1vZGFsJztcclxuXHJcbmRlY2xhcmUgdHlwZSBJQ09OUyA9IFwiTU9CSUxFXCIgfCBcIkVNQUlMXCIgfCBcIk9SREVSXCIgfCBcIldJU0hMSVNUXCIgfCBcIkxPQ0FUSU9OXCI7XHJcblxyXG5AUGlwZSh7XHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBuYW1lOiAnZ2VuZGVySWNvbicsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHZW5kZXJJY29uIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcblxyXG4gICAgdHJhbnNmb3JtKGdlbmRlcjogR0VOREVSIHwgc3RyaW5nIHwgbnVsbCApOiBzdHJpbmcge1xyXG4gICAgICAgIHN3aXRjaChnZW5kZXIpIHtcclxuICAgICAgICAgICAgY2FzZSBcIk1BTEVcIjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBcImh0dHBzOi8vaS5wb3N0aW1nLmNjL0R6bktZTFh5L21hbi5wbmdcIjtcclxuICAgICAgICAgICAgY2FzZSBcIkZFTUFMRVwiOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiaHR0cHM6Ly9pLnBvc3RpbWcuY2MvZDFXdkMzRFEvZmVtYWxlLnBuZ1wiO1xyXG4gICAgICAgICAgICBjYXNlIFwiT1RIRVJTXCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJodHRwczovL2kucG9zdGltZy5jYy82MzZ0VG5XMS91c2VyLnBuZ1wiO1xyXG4gICAgICAgICAgICBjYXNlIFwiRU1BSUxcIjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBcImh0dHBzOi8vaS5wb3N0aW1nLmNjL2M0Y0gxeEJIL2VtYWlsLnBuZ1wiO1xyXG4gICAgICAgICAgICBjYXNlIFwiTU9CSUxFXCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJodHRwczovL2kucG9zdGltZy5jYy8zTkZLdzFwNi9zbWFydHBob25lLnBuZ1wiO1xyXG4gICAgICAgICAgICBjYXNlIFwiT1JERVJcIjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBcImh0dHBzOi8vaS5wb3N0aW1nLmNjLzJ5MDZ6WVBNL2NoZWNrb3V0LTEucG5nXCI7XHJcbiAgICAgICAgICAgIGNhc2UgXCJMT0NBVElPTlwiOiBcclxuICAgICAgICAgICAgICAgIHJldHVybiBcImh0dHBzOi8vaS5wb3N0aW1nLmNjL0w4d0pZSG5NL2xvY2F0aW9uLnBuZ1wiO1xyXG4gICAgICAgICAgICBjYXNlIFwiV0lTSExJU1RcIjogXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJodHRwczovL2kucG9zdGltZy5jYy9oUEN6bjhudi93aXNobGlzdC0xLnBuZ1wiO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiaHR0cHM6Ly9pLnBvc3RpbWcuY2MvNjM2dFRuVzEvdXNlci5wbmdcIjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iXX0=
@@ -13,4 +13,4 @@ export default class BaseSection {
13
13
  }
14
14
  }
15
15
  }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZVNlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL0Jhc2VTZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxPQUFPLE9BQWdCLFdBQVc7SUFBekM7UUFFRSxtQkFBYyxHQUFJLEtBQUssQ0FBQztRQUN4QixnQkFBVyxHQUFhLEtBQUssQ0FBQztRQUU5QixlQUFVLEdBQWEsS0FBSyxDQUFDO0lBUy9CLENBQUM7SUFSQyxZQUFZLENBQUMsTUFBYztRQUV6QixJQUFHLElBQUksQ0FBQyxjQUFjLEVBQUMsQ0FBQztZQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztRQUMzQixDQUFDO2FBQUksQ0FBQztZQUNKLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudHNTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGFic3RyYWN0IGNsYXNzIEJhc2VTZWN0aW9ue1xuXG4gIGRlbGV0ZVNlbGVjdGVkPyA9IGZhbHNlO1xuICBzaG93RWRpdG9ycyA6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBzaG93RGVsZXRlIDogYm9vbGVhbiA9IGZhbHNlO1xuICBzaG93RWRpdFRhYnMoaXNTaG93OmJvb2xlYW4pe1xuXG4gICAgaWYodGhpcy5kZWxldGVTZWxlY3RlZCl7XG4gICAgICB0aGlzLnNob3dEZWxldGUgPSBpc1Nob3c7XG4gICAgfWVsc2V7XG4gICAgICB0aGlzLnNob3dFZGl0b3JzID0gaXNTaG93O1xuICAgIH1cbiAgfVxufVxuIl19
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZVNlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL0Jhc2VTZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxPQUFPLE9BQWdCLFdBQVc7SUFBekM7UUFFRSxtQkFBYyxHQUFJLEtBQUssQ0FBQztRQUN4QixnQkFBVyxHQUFhLEtBQUssQ0FBQztRQUU5QixlQUFVLEdBQWEsS0FBSyxDQUFDO0lBUy9CLENBQUM7SUFSQyxZQUFZLENBQUMsTUFBYztRQUV6QixJQUFHLElBQUksQ0FBQyxjQUFjLEVBQUMsQ0FBQztZQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztRQUMzQixDQUFDO2FBQUksQ0FBQztZQUNKLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudHNTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBhYnN0cmFjdCBjbGFzcyBCYXNlU2VjdGlvbntcclxuXHJcbiAgZGVsZXRlU2VsZWN0ZWQ/ID0gZmFsc2U7XHJcbiAgc2hvd0VkaXRvcnMgOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHNob3dEZWxldGUgOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0VkaXRUYWJzKGlzU2hvdzpib29sZWFuKXtcclxuXHJcbiAgICBpZih0aGlzLmRlbGV0ZVNlbGVjdGVkKXtcclxuICAgICAgdGhpcy5zaG93RGVsZXRlID0gaXNTaG93O1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuc2hvd0VkaXRvcnMgPSBpc1Nob3c7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==