simpo-component-library 3.6.80 → 3.6.82

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 (224) 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 +5 -5
  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/components/trasport-availability/trasport-availability.component.mjs +4 -4
  10. package/esm2022/lib/constants/business.constant.mjs +1 -1
  11. package/esm2022/lib/directive/animation-directive.mjs +4 -4
  12. package/esm2022/lib/directive/background-directive.mjs +4 -4
  13. package/esm2022/lib/directive/banner-content-fit-directive.mjs +4 -4
  14. package/esm2022/lib/directive/blur-content.directive.mjs +4 -4
  15. package/esm2022/lib/directive/border-directive.mjs +5 -5
  16. package/esm2022/lib/directive/borderlessImage.directive.mjs +4 -4
  17. package/esm2022/lib/directive/button-directive.directive.mjs +32 -5
  18. package/esm2022/lib/directive/button-editor.directive.mjs +4 -4
  19. package/esm2022/lib/directive/color.directive.mjs +4 -4
  20. package/esm2022/lib/directive/column-directive.directive.mjs +4 -4
  21. package/esm2022/lib/directive/container-alignment.directive.mjs +4 -4
  22. package/esm2022/lib/directive/container-fir.directive.mjs +4 -4
  23. package/esm2022/lib/directive/content-alignment-directive.mjs +4 -4
  24. package/esm2022/lib/directive/content-fit-directive.mjs +4 -4
  25. package/esm2022/lib/directive/content-title-spacing.directive.mjs +7 -7
  26. package/esm2022/lib/directive/contenteditable.directive.mjs +4 -4
  27. package/esm2022/lib/directive/corner-directive.mjs +4 -4
  28. package/esm2022/lib/directive/footer-layout-directive.mjs +4 -4
  29. package/esm2022/lib/directive/hover-animation.directive.mjs +11 -4
  30. package/esm2022/lib/directive/hover-element-directive.mjs +4 -4
  31. package/esm2022/lib/directive/hoverborder.directive.mjs +4 -4
  32. package/esm2022/lib/directive/image-container.directive.mjs +4 -4
  33. package/esm2022/lib/directive/image-directive.directive.mjs +4 -4
  34. package/esm2022/lib/directive/image-editor.directive.mjs +4 -4
  35. package/esm2022/lib/directive/image-position.directive.mjs +4 -4
  36. package/esm2022/lib/directive/overlay-directive.mjs +4 -4
  37. package/esm2022/lib/directive/position-layout-directive.directive.mjs +4 -4
  38. package/esm2022/lib/directive/removeCarousel-directive.mjs +4 -4
  39. package/esm2022/lib/directive/spacing-around.directive.mjs +4 -4
  40. package/esm2022/lib/directive/spacing-horizontal.directive.mjs +5 -4
  41. package/esm2022/lib/directive/sticky-directive.mjs +4 -4
  42. package/esm2022/lib/directive/text-background-directive.directive.mjs +4 -4
  43. package/esm2022/lib/directive/text-size.directive.mjs +4 -4
  44. package/esm2022/lib/directive/wrap-containers.directive.mjs +4 -4
  45. package/esm2022/lib/ecommerce/sections/address/address.component.mjs +5 -5
  46. package/esm2022/lib/ecommerce/sections/authenticate-user/authenticate-user.component.mjs +5 -5
  47. package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.component.mjs +5 -5
  48. package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.model.mjs +1 -1
  49. package/esm2022/lib/ecommerce/sections/cart/cart.component.mjs +5 -5
  50. package/esm2022/lib/ecommerce/sections/cart/cart.modal.mjs +1 -1
  51. package/esm2022/lib/ecommerce/sections/category-product/category-product.component.mjs +5 -5
  52. package/esm2022/lib/ecommerce/sections/category-product/category-product.model.mjs +1 -1
  53. package/esm2022/lib/ecommerce/sections/checkout/checkout.component.mjs +5 -5
  54. package/esm2022/lib/ecommerce/sections/checkout/checkout.modal.mjs +1 -1
  55. package/esm2022/lib/ecommerce/sections/customer-review/customer-review.component.mjs +5 -5
  56. package/esm2022/lib/ecommerce/sections/customer-review/customer-review.model.mjs +1 -1
  57. package/esm2022/lib/ecommerce/sections/featured-category/featured-category.component.mjs +5 -5
  58. package/esm2022/lib/ecommerce/sections/featured-category/featured-category.modal.mjs +1 -1
  59. package/esm2022/lib/ecommerce/sections/featured-category/featured-collection.component.mjs +5 -5
  60. package/esm2022/lib/ecommerce/sections/featured-products/featured-products.component.mjs +5 -5
  61. package/esm2022/lib/ecommerce/sections/featured-products/featured-products.modal.mjs +1 -1
  62. package/esm2022/lib/ecommerce/sections/item-varient/item-varient.component.mjs +5 -5
  63. package/esm2022/lib/ecommerce/sections/order-details/order-details.component.mjs +5 -5
  64. package/esm2022/lib/ecommerce/sections/pagnination/pagnination.component.mjs +5 -5
  65. package/esm2022/lib/ecommerce/sections/product-category-list/product-category-list.component.mjs +5 -5
  66. package/esm2022/lib/ecommerce/sections/product-category-list/product-category-list.model.mjs +1 -1
  67. package/esm2022/lib/ecommerce/sections/product-desc/product-desc.component.mjs +5 -5
  68. package/esm2022/lib/ecommerce/sections/product-desc/product-desc.modal.mjs +1 -1
  69. package/esm2022/lib/ecommerce/sections/product-list/product-list.component.mjs +6 -6
  70. package/esm2022/lib/ecommerce/sections/product-list/product-list.modal.mjs +1 -1
  71. package/esm2022/lib/ecommerce/sections/small-product-listing/small-product-listing.component.mjs +5 -5
  72. package/esm2022/lib/ecommerce/sections/user-basic-info/user-basic-info.component.mjs +5 -5
  73. package/esm2022/lib/ecommerce/sections/user-profile/user-profile.component.mjs +5 -5
  74. package/esm2022/lib/ecommerce/sections/user-profile/user-profile.modal.mjs +1 -1
  75. package/esm2022/lib/ecommerce/sections/verify-payment/verify-payment.component.mjs +5 -5
  76. package/esm2022/lib/ecommerce/sections/verify-payment/verify-payment.model.mjs +1 -1
  77. package/esm2022/lib/ecommerce/sections/whislist/whislist.component.mjs +5 -5
  78. package/esm2022/lib/ecommerce/styles/BaseCollection.modal.mjs +1 -1
  79. package/esm2022/lib/ecommerce/styles/Collection.modal.mjs +1 -1
  80. package/esm2022/lib/ecommerce/styles/OrderedItems.modal.mjs +1 -1
  81. package/esm2022/lib/ecommerce/styles/PincodeLocation.model.mjs +1 -1
  82. package/esm2022/lib/ecommerce/styles/PincodeLocationInter.model.mjs +1 -1
  83. package/esm2022/lib/ecommerce/styles/cart.modal.mjs +1 -1
  84. package/esm2022/lib/ecommerce/styles/category.modal.mjs +1 -1
  85. package/esm2022/lib/ecommerce/styles/order.modal.mjs +1 -1
  86. package/esm2022/lib/ecommerce/styles/product.modal.mjs +1 -1
  87. package/esm2022/lib/ecommerce/styles/review.modal.mjs +1 -1
  88. package/esm2022/lib/ecommerce/styles/user.modal.mjs +1 -1
  89. package/esm2022/lib/elements/add-section/add-section.component.mjs +5 -5
  90. package/esm2022/lib/elements/below-image-card/below-image-card.component.mjs +11 -6
  91. package/esm2022/lib/elements/button/button.component.mjs +5 -5
  92. package/esm2022/lib/elements/button/button.model.mjs +1 -1
  93. package/esm2022/lib/elements/card-skeleton-loader/card-skeleton-loader.component.mjs +5 -5
  94. package/esm2022/lib/elements/covering-image-card/covering-image-card.component.mjs +10 -6
  95. package/esm2022/lib/elements/editor-service.service.mjs +5 -5
  96. package/esm2022/lib/elements/heading-element/heading-element.component.mjs +5 -5
  97. package/esm2022/lib/elements/image-editor/image-editor.component.mjs +5 -5
  98. package/esm2022/lib/elements/index.mjs +5 -5
  99. package/esm2022/lib/elements/link-editor/link-editor.component.mjs +10 -9
  100. package/esm2022/lib/elements/media-selector/media-selector.component.mjs +5 -5
  101. package/esm2022/lib/elements/navbar-button-element/navbar-button-element.component.mjs +4 -4
  102. package/esm2022/lib/elements/portfolio/portfolio.component.mjs +5 -5
  103. package/esm2022/lib/elements/pricing-s1/pricing-s1.component.mjs +61 -0
  104. package/esm2022/lib/elements/property/property.component.mjs +5 -5
  105. package/esm2022/lib/elements/simpo-button/simpo-button.component.mjs +5 -5
  106. package/esm2022/lib/elements/socia-icons/socia-icons.component.mjs +4 -4
  107. package/esm2022/lib/elements/svg-divider/svg-divider.component.mjs +5 -5
  108. package/esm2022/lib/elements/text/text.component.mjs +5 -5
  109. package/esm2022/lib/elements/text-editor/text-editor.component.mjs +5 -5
  110. package/esm2022/lib/elements/top-of-image-card/top-of-image-card.component.mjs +5 -5
  111. package/esm2022/lib/pipes/amount.pipe.mjs +4 -4
  112. package/esm2022/lib/pipes/gender.pipe.mjs +4 -4
  113. package/esm2022/lib/sections/BaseSection.mjs +1 -1
  114. package/esm2022/lib/sections/add-new-section/add-new-section.component.mjs +5 -5
  115. package/esm2022/lib/sections/appointment-form/appointment-form.component.mjs +14 -9
  116. package/esm2022/lib/sections/appointment-form/appointment-form.model.mjs +1 -1
  117. package/esm2022/lib/sections/banner-carousel/banner-carousel.component.mjs +8 -9
  118. package/esm2022/lib/sections/banner-carousel/banner-carousel.model.mjs +1 -1
  119. package/esm2022/lib/sections/banner-grid-section/banner-grid-section.component.mjs +5 -5
  120. package/esm2022/lib/sections/banner-section/banner-section.component.mjs +5 -5
  121. package/esm2022/lib/sections/blog-list/blog-list.component.mjs +5 -5
  122. package/esm2022/lib/sections/blog-list/blog-list.model.mjs +1 -1
  123. package/esm2022/lib/sections/carousel-banner/carousel-banner.component.mjs +4 -4
  124. package/esm2022/lib/sections/choose-us-section/choose-us-section.component.mjs +5 -5
  125. package/esm2022/lib/sections/choose-us-section/choose-us-section.model.mjs +1 -1
  126. package/esm2022/lib/sections/contact-us/contact-us.component.mjs +39 -9
  127. package/esm2022/lib/sections/contact-us/contact-us.modal.mjs +1 -1
  128. package/esm2022/lib/sections/faq-section/faq-section.component.mjs +6 -6
  129. package/esm2022/lib/sections/faq-section/faq-section.modal.mjs +1 -1
  130. package/esm2022/lib/sections/features-section/features-section.component.mjs +5 -5
  131. package/esm2022/lib/sections/features-section/features-section.model.mjs +1 -1
  132. package/esm2022/lib/sections/footer/footer.component.mjs +5 -5
  133. package/esm2022/lib/sections/footer/footer.modal.mjs +1 -1
  134. package/esm2022/lib/sections/footer-section/footer-section.component.mjs +4 -4
  135. package/esm2022/lib/sections/header-section/header-section.component.mjs +5 -5
  136. package/esm2022/lib/sections/header-section/header-section.model.mjs +1 -1
  137. package/esm2022/lib/sections/header-text/header-text.component.mjs +5 -5
  138. package/esm2022/lib/sections/header-text/header-text.model.mjs +1 -1
  139. package/esm2022/lib/sections/image-carousel-section/image-carousel-section.component.mjs +5 -5
  140. package/esm2022/lib/sections/image-carousel-section/image-carousel.model.mjs +1 -1
  141. package/esm2022/lib/sections/image-grid-section/image-grid-section.component.mjs +5 -5
  142. package/esm2022/lib/sections/image-grid-section/image-grid-section.model.mjs +1 -1
  143. package/esm2022/lib/sections/image-section/image-section.component.mjs +11 -6
  144. package/esm2022/lib/sections/image-section/image-section.model.mjs +1 -1
  145. package/esm2022/lib/sections/location-section/location-section.component.mjs +5 -5
  146. package/esm2022/lib/sections/location-section/location-section.modal.mjs +1 -1
  147. package/esm2022/lib/sections/logo-gallery/logo-gallery.component.mjs +11 -6
  148. package/esm2022/lib/sections/logo-showcase/logo-showcase.component.mjs +5 -5
  149. package/esm2022/lib/sections/logo-showcase/logo-showcase.modal.mjs +1 -1
  150. package/esm2022/lib/sections/moving-text/moving-text.component.mjs +61 -52
  151. package/esm2022/lib/sections/moving-text/moving-text.modal.mjs +1 -1
  152. package/esm2022/lib/sections/navbar-section/navbar-section.component.mjs +4 -4
  153. package/esm2022/lib/sections/new-services/new-services.component.mjs +5 -5
  154. package/esm2022/lib/sections/new-services/new-services.model.mjs +1 -1
  155. package/esm2022/lib/sections/new-testimonials/new-testimonials.component.mjs +13 -6
  156. package/esm2022/lib/sections/new-testimonials/new-testimonials.model.mjs +1 -1
  157. package/esm2022/lib/sections/pricing-section/pricing-section.component.mjs +13 -6
  158. package/esm2022/lib/sections/pricing-section/pricing-section.modal.mjs +1 -1
  159. package/esm2022/lib/sections/process-modern/process-modern.component.mjs +5 -5
  160. package/esm2022/lib/sections/process-modern/process-modern.model.mjs +1 -1
  161. package/esm2022/lib/sections/process-section/process-section.component.mjs +5 -5
  162. package/esm2022/lib/sections/process-section/process-section.modal.mjs +1 -1
  163. package/esm2022/lib/sections/property-component/property-component.component.mjs +5 -5
  164. package/esm2022/lib/sections/property-component/property-component.modal.mjs +1 -1
  165. package/esm2022/lib/sections/property-list/property-list.component.mjs +5 -5
  166. package/esm2022/lib/sections/property-list/property-list.modal.mjs +1 -1
  167. package/esm2022/lib/sections/recent-blog-post-section/recent-blog-post-section.component.mjs +8 -6
  168. package/esm2022/lib/sections/recent-blog-post-section/recent-blog-post-section.model.mjs +1 -1
  169. package/esm2022/lib/sections/registration-form/registration-form.component.mjs +6 -6
  170. package/esm2022/lib/sections/registration-form/registrationForm.model.mjs +1 -1
  171. package/esm2022/lib/sections/service-section/service-section.component.mjs +5 -5
  172. package/esm2022/lib/sections/service-section/service-section.model.mjs +1 -1
  173. package/esm2022/lib/sections/skeleton-loader-section/skeleton-loader-section.component.mjs +5 -5
  174. package/esm2022/lib/sections/team-member-section/team-member-section.component.mjs +5 -5
  175. package/esm2022/lib/sections/team-member-section/team-member-section.model.mjs +1 -1
  176. package/esm2022/lib/sections/testimonial-fullwidth/testimonial-fullwidth.component.mjs +8 -5
  177. package/esm2022/lib/sections/testimonial-fullwidth/testimonial-fullwidth.model.mjs +1 -1
  178. package/esm2022/lib/sections/testimonial-section/testimonial-section.component.mjs +5 -5
  179. package/esm2022/lib/sections/testimonial-section/testimonial-section.model.mjs +1 -1
  180. package/esm2022/lib/sections/testimonial-video/testimonial-video.component.mjs +5 -5
  181. package/esm2022/lib/sections/testimonial-video/testimonial-video.model.mjs +1 -1
  182. package/esm2022/lib/sections/text-image-section/text-image-section.component.mjs +5 -5
  183. package/esm2022/lib/sections/text-section/text-section.component.mjs +4 -4
  184. package/esm2022/lib/sections/text-section/text-section.model.mjs +1 -1
  185. package/esm2022/lib/sections/usp-video-section/usp-video-section.component.mjs +5 -5
  186. package/esm2022/lib/sections/usp-video-section/usp-video-section.model.mjs +1 -1
  187. package/esm2022/lib/sections/video-section/video-section.component.mjs +5 -5
  188. package/esm2022/lib/sections/video-section/video-section.model.mjs +1 -1
  189. package/esm2022/lib/sections/view-blog/view-blog.component.mjs +5 -5
  190. package/esm2022/lib/services/cart.service.mjs +4 -4
  191. package/esm2022/lib/services/endUser.service.mjs +4 -4
  192. package/esm2022/lib/services/events.service.mjs +4 -4
  193. package/esm2022/lib/services/image-upload-service.service.mjs +4 -4
  194. package/esm2022/lib/services/rest.service.mjs +4 -4
  195. package/esm2022/lib/services/sanitizeHtml.mjs +4 -4
  196. package/esm2022/lib/services/storage.service.mjs +4 -4
  197. package/esm2022/lib/styles/index.mjs +1 -1
  198. package/esm2022/lib/styles/style.model.mjs +3 -2
  199. package/esm2022/lib/styles/types.mjs +1 -1
  200. package/esm2022/lib/tokens/api-token.mjs +1 -1
  201. package/esm2022/public-api.mjs +1 -1
  202. package/fesm2022/simpo-component-library.mjs +840 -688
  203. package/fesm2022/simpo-component-library.mjs.map +1 -1
  204. package/lib/elements/below-image-card/below-image-card.component.d.ts +3 -0
  205. package/lib/elements/covering-image-card/covering-image-card.component.d.ts +3 -0
  206. package/lib/elements/link-editor/link-editor.component.d.ts +1 -1
  207. package/lib/elements/pricing-s1/pricing-s1.component.d.ts +20 -0
  208. package/lib/sections/contact-us/contact-us.component.d.ts +2 -1
  209. package/lib/sections/contact-us/contact-us.modal.d.ts +5 -1
  210. package/lib/sections/header-section/header-section.model.d.ts +5 -1
  211. package/lib/sections/header-text/header-text.model.d.ts +2 -1
  212. package/lib/sections/image-section/image-section.component.d.ts +2 -1
  213. package/lib/sections/logo-gallery/logo-gallery.component.d.ts +2 -1
  214. package/lib/sections/moving-text/moving-text.component.d.ts +11 -9
  215. package/lib/sections/new-testimonials/new-testimonials.component.d.ts +2 -1
  216. package/lib/sections/pricing-section/pricing-section.component.d.ts +1 -0
  217. package/lib/sections/pricing-section/pricing-section.modal.d.ts +2 -0
  218. package/lib/sections/testimonial-fullwidth/testimonial-fullwidth.component.d.ts +1 -0
  219. package/lib/styles/style.model.d.ts +1 -0
  220. package/lib/styles/types.d.ts +3 -1
  221. package/package.json +1 -1
  222. package/simpo-component-library-3.6.82.tgz +0 -0
  223. package/src/lib/styles/global-styles.css +191 -191
  224. package/simpo-component-library-3.6.80.tgz +0 -0
@@ -1,4 +1,4 @@
1
- import { Component, HostListener, Input } from '@angular/core';
1
+ import { Component, Input } from '@angular/core';
2
2
  import BaseSection from '../BaseSection';
3
3
  import { CommonModule } from '@angular/common';
4
4
  import { SimpoElementsModule } from '../../elements/index';
@@ -16,73 +16,85 @@ export class MovingTextComponent extends BaseSection {
16
16
  constructor(_eventService) {
17
17
  super();
18
18
  this._eventService = _eventService;
19
- this.screenWidth = "";
20
19
  this.currentIndex = 0;
20
+ this.previousIndex = -1;
21
21
  this.isTransitioning = false;
22
22
  this.animationDirection = 'left';
23
- this.alternateDirection = true;
23
+ this.animationDuration = 800; // Match CSS animation duration
24
+ this.displayDuration = 3000; // How long each item shows
24
25
  }
25
26
  ngOnInit() {
26
- if (this.data?.styles?.headlineAnimationType === 'SoftTransition' &&
27
+ if (this.data?.styles?.headline?.headlineAnimationType === 'SoftTransition' &&
27
28
  this.data?.content?.listItem?.data?.length) {
28
29
  setTimeout(() => {
29
30
  this.startAnimationCycle();
30
31
  }, 100);
31
32
  }
32
33
  }
33
- ngOnChanges() {
34
- if (this.data?.styles?.headlineAnimationType === 'SoftTransition') {
35
- setTimeout(() => {
36
- this.startAnimationCycle();
37
- }, 100);
34
+ ngOnDestroy() {
35
+ if (this.interval) {
36
+ clearInterval(this.interval);
38
37
  }
39
38
  }
40
- editSection() {
41
- this._eventService.toggleEditorEvent.emit(false);
42
- setTimeout(() => {
43
- this._eventService.editSection.emit({ data: this.data });
44
- }, 100);
45
- }
46
- stopPropagation(event) {
47
- event.stopPropagation();
48
- }
49
- getScreenSize() {
50
- this.screenWidth = window.innerWidth;
51
- }
52
39
  startAnimationCycle() {
53
40
  if (!this.data?.content?.listItem?.data?.length) {
54
41
  return;
55
42
  }
43
+ // Clear any existing interval
44
+ if (this.interval) {
45
+ clearInterval(this.interval);
46
+ }
56
47
  this.currentIndex = 0;
57
- this.animationDirection = 'left';
48
+ this.previousIndex = -1;
49
+ this.animationDirection = 'right'; // Start with right animation
58
50
  this.interval = setInterval(() => {
59
- const nextIndex = (this.currentIndex + 1) % this.data.content.listItem.data.length;
60
- const currentItemIndex = this.currentIndex;
61
- setTimeout(() => {
62
- const items = document.querySelectorAll('.list-item');
63
- if (items && items.length > currentItemIndex) {
64
- const currentItem = items[currentItemIndex];
65
- if (this.animationDirection === 'left') {
66
- currentItem.classList.add('fade-out-right');
67
- }
68
- else {
69
- currentItem.classList.add('fade-out-left');
70
- }
71
- setTimeout(() => {
72
- currentItem.classList.remove('fade-out-right', 'fade-out-left');
73
- }, 800);
74
- }
75
- }, 0);
76
- this.currentIndex = nextIndex;
77
- if (this.alternateDirection) {
78
- this.animationDirection = this.animationDirection === 'left' ? 'right' : 'left';
79
- }
80
- }, 3000);
51
+ this.transitionToNext();
52
+ }, this.displayDuration);
53
+ }
54
+ transitionToNext() {
55
+ if (this.isTransitioning)
56
+ return;
57
+ this.isTransitioning = true;
58
+ this.previousIndex = this.currentIndex;
59
+ // Calculate next index
60
+ this.currentIndex = (this.currentIndex + 1) % this.data.content.listItem.data.length;
61
+ // Alternate direction for variety
62
+ this.animationDirection = this.animationDirection === 'left' ? 'right' : 'left';
63
+ // Reset transition flag after animation completes
64
+ setTimeout(() => {
65
+ this.isTransitioning = false;
66
+ this.previousIndex = -1;
67
+ }, this.animationDuration);
68
+ }
69
+ // Method to check if item should be visible
70
+ isItemVisible(index) {
71
+ return index === this.currentIndex || index === this.previousIndex;
72
+ }
73
+ // Method to get animation class for item
74
+ getItemClass(index) {
75
+ if (index === this.currentIndex) {
76
+ return `active fade-in-${this.animationDirection}`;
77
+ }
78
+ else if (index === this.previousIndex && this.isTransitioning) {
79
+ return `fade-out-${this.animationDirection === 'left' ? 'right' : 'left'}`;
80
+ }
81
+ return '';
82
+ }
83
+ getTextColor(bgColor) {
84
+ if (bgColor) {
85
+ const threshold = 130;
86
+ const r = parseInt(bgColor.slice(1, 3), 16);
87
+ const g = parseInt(bgColor.slice(3, 5), 16);
88
+ const b = parseInt(bgColor.slice(5, 7), 16);
89
+ const brightness = (r * 299 + g * 587 + b * 114) / 1000;
90
+ return brightness > threshold ? '#000000' : '#ffffff';
91
+ }
92
+ return "#ffffff";
81
93
  }
82
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MovingTextComponent, deps: [{ token: i1.EventsService }], target: i0.ɵɵFactoryTarget.Component }); }
83
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MovingTextComponent, isStandalone: true, selector: "simpo-moving-text", inputs: { data: "data", edit: "edit", delete: "delete", customClass: "customClass", index: "index" }, host: { listeners: { "window: resize": "getScreenSize($event)" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<section class=\"main-container\" simpoHover (hovering)=\"showEditTabs($event)\" [id]=\"data?.id\" [attr.style]=\"customClass\">\n <div class=\"slider-wrapper px-2 py-2 d-flex align-items-center justify-content-between\"\n [style.backgroundColor]=\"data?.styles?.background?.accentColor\">\n <div class=\"slider-track w-100 d-flex justify-content-between align-items-center\"\n *ngIf=\"data?.styles?.headlineAnimationType == 'InfiniteScroll'\">\n <ng-container *ngFor=\"let item of data?.content?.listItem?.data; let i = index\">\n <div class=\"sliding-text\">\n {{item.inputText[0].value}}\n </div>\n </ng-container>\n </div>\n <div *ngIf=\"data?.styles?.headlineAnimationType == 'SoftTransition'\" class=\"list-container\">\n <ng-container *ngFor=\"let item of data?.content?.listItem?.data; let i = index\">\n <div class=\"list-item d-flex align-items-center justify-content-center w-100\" [ngClass]=\"{\n 'active': currentIndex === i,\n 'fade-in-left': animationDirection === 'left' && currentIndex === i,\n 'fade-in-right': animationDirection === 'right' && currentIndex === i\n }\">\n {{item.inputText[0].value}}\n </div>\n </ng-container>\n </div>\n <ng-container *ngIf=\"data?.styles?.headlineAnimationType == 'NoEffect'\">\n <ng-container *ngFor=\"let item of data?.content?.listItem?.data\">\n <div class=\"d-flex align-items-center justify-content-center w-100\">\n {{item.inputText[0].value}}\n </div>\n </ng-container>\n </ng-container>\n </div>\n <!-- Your existing edit/delete elements -->\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\n </div>\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\n </div>\n</section>", styles: [".main-container{position:relative;height:auto}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.slider-wrapper{position:relative;overflow:hidden}.slider-track{display:flex;gap:2rem;height:20px;width:max-content;animation:scrollLeft 30s linear infinite;animation-play-state:running;will-change:transform}.slider-track:hover{animation-play-state:paused}.sliding-text{flex-shrink:0;white-space:nowrap;padding:0 1rem;position:relative}@keyframes scrollLeft{0%{transform:translate(100%)}to{transform:translate(-100%)}}.list-container{position:relative;width:100%;height:20px;overflow:hidden;display:flex;align-items:center;justify-content:center}.list-item{position:absolute;width:100%;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .8s ease,transform .8s ease;text-align:center}.list-item.active{opacity:1;visibility:visible}.fade-in-left{animation:fadeInLeft .8s forwards}.fade-out-left{animation:fadeOutLeft .8s forwards}.fade-in-right{animation:fadeInRight .8s forwards}.fade-out-right{animation:fadeOutRight .8s forwards}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-100px)}to{opacity:1;transform:translate(0)}}@keyframes fadeOutLeft{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-100px)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(100px)}to{opacity:1;transform:translate(0)}}@keyframes fadeOutRight{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100px)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: SimpoElementsModule }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i3.HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: i4.DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "directive", type: HoverDirective, selector: "[simpoHover]", outputs: ["hovering"] }] }); }
94
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: MovingTextComponent, deps: [{ token: i1.EventsService }], target: i0.ɵɵFactoryTarget.Component }); }
95
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: MovingTextComponent, isStandalone: true, selector: "simpo-moving-text", inputs: { data: "data", edit: "edit", delete: "delete", customClass: "customClass", index: "index" }, usesInheritance: true, ngImport: i0, template: "<section class=\"main-container\" simpoHover (hovering)=\"showEditTabs($event)\" [id]=\"data?.id\" [attr.style]=\"customClass\">\r\n <div class=\"slider-wrapper px-2 py-2 d-flex align-items-center justify-content-between\"\r\n [style.background]=\"data?.styles?.headline?.color\">\r\n \r\n <!-- Infinite Scroll Animation -->\r\n <div class=\"slider-track w-100 d-flex justify-content-between align-items-center\"\r\n *ngIf=\"data?.styles?.headline?.headlineAnimationType == 'InfiniteScroll'\">\r\n <ng-container *ngFor=\"let item of data?.content?.listItem?.data; let i = index\">\r\n <div class=\"sliding-text text-nowrap\" [style.color]=\"getTextColor(data?.styles?.headline?.color)\">\r\n {{item.inputText[0].value}}\r\n </div>\r\n </ng-container>\r\n </div>\r\n \r\n <!-- Soft Transition Animation -->\r\n <div *ngIf=\"data?.styles?.headline?.headlineAnimationType == 'SoftTransition'\" class=\"list-container\">\r\n <ng-container *ngFor=\"let item of data?.content?.listItem?.data; let i = index\">\r\n <div class=\"list-item text-nowrap\" \r\n [ngClass]=\"getItemClass(i)\"\r\n [class.visible]=\"isItemVisible(i)\"\r\n [style.color]=\"getTextColor(data?.styles?.headline?.color)\">\r\n {{item.inputText[0].value}}\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <!-- No Effect -->\r\n <ng-container *ngIf=\"data?.styles?.headline?.headlineAnimationType == 'NoEffect'\">\r\n <ng-container *ngFor=\"let item of data?.content?.listItem?.data\">\r\n <div class=\"d-flex align-items-center justify-content-center w-100 text-nowrap\" \r\n [style.color]=\"getTextColor(data?.styles?.headline?.color)\">\r\n {{item.inputText[0].value}}\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n <!-- Existing hover elements -->\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n</section>", styles: [".main-container{position:relative;height:auto}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.slider-wrapper{position:relative;overflow:hidden}.slider-track{display:flex;gap:2rem;height:20px;width:max-content;animation:scrollLeft 30s linear infinite;animation-play-state:running;will-change:transform}.slider-track:hover{animation-play-state:paused}.sliding-text{flex-shrink:0;white-space:nowrap;padding:0 1rem;position:relative}@keyframes scrollLeft{0%{transform:translate(100%)}to{transform:translate(-100%)}}.list-container{position:relative;width:100%;height:20px;overflow:hidden;display:flex;align-items:center;justify-content:center}.list-item{position:absolute;width:100%;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .8s ease,transform .8s ease;text-align:center}.list-item.active{opacity:1;visibility:visible}.fade-in-left{animation:fadeInLeft .8s forwards}.fade-out-left{animation:fadeOutLeft .8s forwards}.fade-in-right{animation:fadeInRight .8s forwards}.fade-out-right{animation:fadeOutRight .8s forwards}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-100px)}to{opacity:1;transform:translate(0)}}@keyframes fadeOutLeft{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-100px)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(100px)}to{opacity:1;transform:translate(0)}}@keyframes fadeOutRight{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100px)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: SimpoElementsModule }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i3.HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: i4.DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "directive", type: HoverDirective, selector: "[simpoHover]", outputs: ["hovering"] }] }); }
84
96
  }
85
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MovingTextComponent, decorators: [{
97
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: MovingTextComponent, decorators: [{
86
98
  type: Component,
87
99
  args: [{ selector: 'simpo-moving-text', standalone: true, imports: [
88
100
  CommonModule,
@@ -92,7 +104,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
92
104
  SimpoHoverBorderDirective,
93
105
  HoverDirective,
94
106
  TextBackgroundDirectiveDirective,
95
- ], template: "<section class=\"main-container\" simpoHover (hovering)=\"showEditTabs($event)\" [id]=\"data?.id\" [attr.style]=\"customClass\">\n <div class=\"slider-wrapper px-2 py-2 d-flex align-items-center justify-content-between\"\n [style.backgroundColor]=\"data?.styles?.background?.accentColor\">\n <div class=\"slider-track w-100 d-flex justify-content-between align-items-center\"\n *ngIf=\"data?.styles?.headlineAnimationType == 'InfiniteScroll'\">\n <ng-container *ngFor=\"let item of data?.content?.listItem?.data; let i = index\">\n <div class=\"sliding-text\">\n {{item.inputText[0].value}}\n </div>\n </ng-container>\n </div>\n <div *ngIf=\"data?.styles?.headlineAnimationType == 'SoftTransition'\" class=\"list-container\">\n <ng-container *ngFor=\"let item of data?.content?.listItem?.data; let i = index\">\n <div class=\"list-item d-flex align-items-center justify-content-center w-100\" [ngClass]=\"{\n 'active': currentIndex === i,\n 'fade-in-left': animationDirection === 'left' && currentIndex === i,\n 'fade-in-right': animationDirection === 'right' && currentIndex === i\n }\">\n {{item.inputText[0].value}}\n </div>\n </ng-container>\n </div>\n <ng-container *ngIf=\"data?.styles?.headlineAnimationType == 'NoEffect'\">\n <ng-container *ngFor=\"let item of data?.content?.listItem?.data\">\n <div class=\"d-flex align-items-center justify-content-center w-100\">\n {{item.inputText[0].value}}\n </div>\n </ng-container>\n </ng-container>\n </div>\n <!-- Your existing edit/delete elements -->\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\n </div>\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\n </div>\n</section>", styles: [".main-container{position:relative;height:auto}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.slider-wrapper{position:relative;overflow:hidden}.slider-track{display:flex;gap:2rem;height:20px;width:max-content;animation:scrollLeft 30s linear infinite;animation-play-state:running;will-change:transform}.slider-track:hover{animation-play-state:paused}.sliding-text{flex-shrink:0;white-space:nowrap;padding:0 1rem;position:relative}@keyframes scrollLeft{0%{transform:translate(100%)}to{transform:translate(-100%)}}.list-container{position:relative;width:100%;height:20px;overflow:hidden;display:flex;align-items:center;justify-content:center}.list-item{position:absolute;width:100%;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .8s ease,transform .8s ease;text-align:center}.list-item.active{opacity:1;visibility:visible}.fade-in-left{animation:fadeInLeft .8s forwards}.fade-out-left{animation:fadeOutLeft .8s forwards}.fade-in-right{animation:fadeInRight .8s forwards}.fade-out-right{animation:fadeOutRight .8s forwards}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-100px)}to{opacity:1;transform:translate(0)}}@keyframes fadeOutLeft{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-100px)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(100px)}to{opacity:1;transform:translate(0)}}@keyframes fadeOutRight{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100px)}}\n"] }]
107
+ ], template: "<section class=\"main-container\" simpoHover (hovering)=\"showEditTabs($event)\" [id]=\"data?.id\" [attr.style]=\"customClass\">\r\n <div class=\"slider-wrapper px-2 py-2 d-flex align-items-center justify-content-between\"\r\n [style.background]=\"data?.styles?.headline?.color\">\r\n \r\n <!-- Infinite Scroll Animation -->\r\n <div class=\"slider-track w-100 d-flex justify-content-between align-items-center\"\r\n *ngIf=\"data?.styles?.headline?.headlineAnimationType == 'InfiniteScroll'\">\r\n <ng-container *ngFor=\"let item of data?.content?.listItem?.data; let i = index\">\r\n <div class=\"sliding-text text-nowrap\" [style.color]=\"getTextColor(data?.styles?.headline?.color)\">\r\n {{item.inputText[0].value}}\r\n </div>\r\n </ng-container>\r\n </div>\r\n \r\n <!-- Soft Transition Animation -->\r\n <div *ngIf=\"data?.styles?.headline?.headlineAnimationType == 'SoftTransition'\" class=\"list-container\">\r\n <ng-container *ngFor=\"let item of data?.content?.listItem?.data; let i = index\">\r\n <div class=\"list-item text-nowrap\" \r\n [ngClass]=\"getItemClass(i)\"\r\n [class.visible]=\"isItemVisible(i)\"\r\n [style.color]=\"getTextColor(data?.styles?.headline?.color)\">\r\n {{item.inputText[0].value}}\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <!-- No Effect -->\r\n <ng-container *ngIf=\"data?.styles?.headline?.headlineAnimationType == 'NoEffect'\">\r\n <ng-container *ngFor=\"let item of data?.content?.listItem?.data\">\r\n <div class=\"d-flex align-items-center justify-content-center w-100 text-nowrap\" \r\n [style.color]=\"getTextColor(data?.styles?.headline?.color)\">\r\n {{item.inputText[0].value}}\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n <!-- Existing hover elements -->\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n</section>", styles: [".main-container{position:relative;height:auto}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.slider-wrapper{position:relative;overflow:hidden}.slider-track{display:flex;gap:2rem;height:20px;width:max-content;animation:scrollLeft 30s linear infinite;animation-play-state:running;will-change:transform}.slider-track:hover{animation-play-state:paused}.sliding-text{flex-shrink:0;white-space:nowrap;padding:0 1rem;position:relative}@keyframes scrollLeft{0%{transform:translate(100%)}to{transform:translate(-100%)}}.list-container{position:relative;width:100%;height:20px;overflow:hidden;display:flex;align-items:center;justify-content:center}.list-item{position:absolute;width:100%;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .8s ease,transform .8s ease;text-align:center}.list-item.active{opacity:1;visibility:visible}.fade-in-left{animation:fadeInLeft .8s forwards}.fade-out-left{animation:fadeOutLeft .8s forwards}.fade-in-right{animation:fadeInRight .8s forwards}.fade-out-right{animation:fadeOutRight .8s forwards}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-100px)}to{opacity:1;transform:translate(0)}}@keyframes fadeOutLeft{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-100px)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(100px)}to{opacity:1;transform:translate(0)}}@keyframes fadeOutRight{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100px)}}\n"] }]
96
108
  }], ctorParameters: () => [{ type: i1.EventsService }], propDecorators: { data: [{
97
109
  type: Input
98
110
  }], edit: [{
@@ -103,8 +115,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
103
115
  type: Input
104
116
  }], index: [{
105
117
  type: Input
106
- }], getScreenSize: [{
107
- type: HostListener,
108
- args: ["window: resize", ["$event"]]
109
118
  }] } });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92aW5nLXRleHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZWN0aW9ucy9tb3ZpbmctdGV4dC9tb3ZpbmctdGV4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL21vdmluZy10ZXh0L21vdmluZy10ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLFdBQVcsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHFEQUFxRCxDQUFDOzs7Ozs7QUFnQnZHLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxXQUFXO0lBU2xELFlBQW9CLGFBQTRCO1FBQzlDLEtBQUssRUFBRSxDQUFDO1FBRFUsa0JBQWEsR0FBYixhQUFhLENBQWU7UUE4QmhELGdCQUFXLEdBQVEsRUFBRSxDQUFBO1FBS3JCLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLHVCQUFrQixHQUFHLE1BQU0sQ0FB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QUFHLFNBQVMsQ0FBQztZQUU5QixJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUM1QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDbEYsQ0FBQztRQUVILENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNYLENBQUM7K0dBckZVLG1CQUFtQjttR0FBbkIsbUJBQW1CLG1TQzFCaEMsMnRFQXFDVSxpaEREdEJOLFlBQVksNlZBQ1osbUJBQW1CLDhCQUNuQixvQkFBb0Isb1dBR3BCLGNBQWM7OzRGQU1MLG1CQUFtQjtrQkFmL0IsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLG1CQUFtQjt3QkFDbkIseUJBQXlCO3dCQUN6QixjQUFjO3dCQUNkLGdDQUFnQztxQkFDakM7a0ZBT1EsSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBa0NOLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IEJhc2VTZWN0aW9uIGZyb20gJy4uL0Jhc2VTZWN0aW9uJztcbmltcG9ydCB7IE1vdmluZ1RleHRNb2RhbCB9IGZyb20gJy4vbW92aW5nLXRleHQubW9kYWwnO1xuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTaW1wb0VsZW1lbnRzTW9kdWxlIH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvaW5kZXgnO1xuaW1wb3J0IHsgU2ltcG9Db21wb25lbnRNb2R1bGUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2luZGV4JztcbmltcG9ydCB7IEJhY2tncm91bmREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYmFja2dyb3VuZC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2ltcG9Ib3ZlckJvcmRlckRpcmVjdGl2ZSB9IGZyb20gXCIuLi8uLi9kaXJlY3RpdmUvaG92ZXJib3JkZXIuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBIb3ZlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9ob3Zlci1lbGVtZW50LWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUZXh0QmFja2dyb3VuZERpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS90ZXh0LWJhY2tncm91bmQtZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaW1wby1tb3ZpbmctdGV4dCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU2ltcG9FbGVtZW50c01vZHVsZSxcbiAgICBTaW1wb0NvbXBvbmVudE1vZHVsZSxcbiAgICBCYWNrZ3JvdW5kRGlyZWN0aXZlLFxuICAgIFNpbXBvSG92ZXJCb3JkZXJEaXJlY3RpdmUsXG4gICAgSG92ZXJEaXJlY3RpdmUsXG4gICAgVGV4dEJhY2tncm91bmREaXJlY3RpdmVEaXJlY3RpdmUsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9tb3ZpbmctdGV4dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9tb3ZpbmctdGV4dC5jb21wb25lbnQuY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgTW92aW5nVGV4dENvbXBvbmVudCBleHRlbmRzIEJhc2VTZWN0aW9uIHtcblxuXG4gIEBJbnB1dCgpIGRhdGE/IDogYW55O1xuICBASW5wdXQoKSBlZGl0PzogYm9vbGVhbjtcbiAgQElucHV0KCkgZGVsZXRlPzogYm9vbGVhbjtcbiAgQElucHV0KCkgY3VzdG9tQ2xhc3M/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGluZGV4PzogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2V2ZW50U2VydmljZTogRXZlbnRzU2VydmljZSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5kYXRhPy5zdHlsZXM/LmhlYWRsaW5lQW5pbWF0aW9uVHlwZSA9PT0gJ1NvZnRUcmFuc2l0aW9uJyAmJlxuICAgICAgdGhpcy5kYXRhPy5jb250ZW50Py5saXN0SXRlbT8uZGF0YT8ubGVuZ3RoKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zdGFydEFuaW1hdGlvbkN5Y2xlKCk7XG4gICAgICB9LCAxMDApO1xuICAgIH1cbiAgfVxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICBpZiAodGhpcy5kYXRhPy5zdHlsZXM/LmhlYWRsaW5lQW5pbWF0aW9uVHlwZSA9PT0gJ1NvZnRUcmFuc2l0aW9uJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc3RhcnRBbmltYXRpb25DeWNsZSgpO1xuICAgICAgfSwgMTAwKTtcbiAgICB9XG4gIH1cbiAgZWRpdFNlY3Rpb24oKSB7XG5cbiAgICB0aGlzLl9ldmVudFNlcnZpY2UudG9nZ2xlRWRpdG9yRXZlbnQuZW1pdChmYWxzZSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl9ldmVudFNlcnZpY2UuZWRpdFNlY3Rpb24uZW1pdCh7IGRhdGE6IHRoaXMuZGF0YSB9KTtcbiAgICB9LCAxMDApO1xuICB9XG4gIHN0b3BQcm9wYWdhdGlvbihldmVudDogYW55KSB7XG5cbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuICBzY3JlZW5XaWR0aDogYW55ID0gXCJcIlxuICBASG9zdExpc3RlbmVyKFwid2luZG93OiByZXNpemVcIiwgW1wiJGV2ZW50XCJdKVxuICBnZXRTY3JlZW5TaXplKCkge1xuICAgIHRoaXMuc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgfVxuICBjdXJyZW50SW5kZXggPSAwO1xuICBpc1RyYW5zaXRpb25pbmcgPSBmYWxzZTtcbiAgYW5pbWF0aW9uRGlyZWN0aW9uID0gJ2xlZnQnO1xuICBwcml2YXRlIGludGVydmFsOiBhbnk7XG4gIHByaXZhdGUgYWx0ZXJuYXRlRGlyZWN0aW9uID0gdHJ1ZTtcbiAgc3RhcnRBbmltYXRpb25DeWNsZSgpIHtcbiAgICBpZiAoIXRoaXMuZGF0YT8uY29udGVudD8ubGlzdEl0ZW0/LmRhdGE/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY3VycmVudEluZGV4ID0gMDtcbiAgICB0aGlzLmFuaW1hdGlvbkRpcmVjdGlvbiA9ICdsZWZ0JztcblxuICAgIHRoaXMuaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBjb25zdCBuZXh0SW5kZXggPSAodGhpcy5jdXJyZW50SW5kZXggKyAxKSAlIHRoaXMuZGF0YSEuY29udGVudCEubGlzdEl0ZW0hLmRhdGEhLmxlbmd0aDtcbiAgICAgIGNvbnN0IGN1cnJlbnRJdGVtSW5kZXggPSB0aGlzLmN1cnJlbnRJbmRleDtcblxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmxpc3QtaXRlbScpO1xuICAgICAgICBpZiAoaXRlbXMgJiYgaXRlbXMubGVuZ3RoID4gY3VycmVudEl0ZW1JbmRleCkge1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnRJdGVtID0gaXRlbXNbY3VycmVudEl0ZW1JbmRleF0gYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgICAgICBpZiAodGhpcy5hbmltYXRpb25EaXJlY3Rpb24gPT09ICdsZWZ0Jykge1xuICAgICAgICAgICAgY3VycmVudEl0ZW0uY2xhc3NMaXN0LmFkZCgnZmFkZS1vdXQtcmlnaHQnKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY3VycmVudEl0ZW0uY2xhc3NMaXN0LmFkZCgnZmFkZS1vdXQtbGVmdCcpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgY3VycmVudEl0ZW0uY2xhc3NMaXN0LnJlbW92ZSgnZmFkZS1vdXQtcmlnaHQnLCAnZmFkZS1vdXQtbGVmdCcpO1xuICAgICAgICAgIH0sIDgwMCk7XG4gICAgICAgIH1cbiAgICAgIH0sIDApO1xuXG4gICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IG5leHRJbmRleDtcblxuICAgICAgaWYgKHRoaXMuYWx0ZXJuYXRlRGlyZWN0aW9uKSB7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uRGlyZWN0aW9uID0gdGhpcy5hbmltYXRpb25EaXJlY3Rpb24gPT09ICdsZWZ0JyA/ICdyaWdodCcgOiAnbGVmdCc7XG4gICAgICB9XG5cbiAgICB9LCAzMDAwKTsgXG4gIH1cbn1cbiIsIjxzZWN0aW9uIGNsYXNzPVwibWFpbi1jb250YWluZXJcIiBzaW1wb0hvdmVyIChob3ZlcmluZyk9XCJzaG93RWRpdFRhYnMoJGV2ZW50KVwiIFtpZF09XCJkYXRhPy5pZFwiIFthdHRyLnN0eWxlXT1cImN1c3RvbUNsYXNzXCI+XG4gICAgPGRpdiBjbGFzcz1cInNsaWRlci13cmFwcGVyIHB4LTIgcHktMiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCJcbiAgICAgICAgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbGlkZXItdHJhY2sgdy0xMDAgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgICAqbmdJZj1cImRhdGE/LnN0eWxlcz8uaGVhZGxpbmVBbmltYXRpb25UeXBlID09ICdJbmZpbml0ZVNjcm9sbCdcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YT8uY29udGVudD8ubGlzdEl0ZW0/LmRhdGE7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2xpZGluZy10ZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgIHt7aXRlbS5pbnB1dFRleHRbMF0udmFsdWV9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZGF0YT8uc3R5bGVzPy5oZWFkbGluZUFuaW1hdGlvblR5cGUgPT0gJ1NvZnRUcmFuc2l0aW9uJ1wiIGNsYXNzPVwibGlzdC1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YT8uY29udGVudD8ubGlzdEl0ZW0/LmRhdGE7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciB3LTEwMFwiIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICdhY3RpdmUnOiBjdXJyZW50SW5kZXggPT09IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAnZmFkZS1pbi1sZWZ0JzogYW5pbWF0aW9uRGlyZWN0aW9uID09PSAnbGVmdCcgJiYgY3VycmVudEluZGV4ID09PSBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2ZhZGUtaW4tcmlnaHQnOiBhbmltYXRpb25EaXJlY3Rpb24gPT09ICdyaWdodCcgJiYgY3VycmVudEluZGV4ID09PSBpXG4gICAgICAgICAgICAgICAgICAgICB9XCI+XG4gICAgICAgICAgICAgICAgICAgIHt7aXRlbS5pbnB1dFRleHRbMF0udmFsdWV9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YT8uc3R5bGVzPy5oZWFkbGluZUFuaW1hdGlvblR5cGUgPT0gJ05vRWZmZWN0J1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkYXRhPy5jb250ZW50Py5saXN0SXRlbT8uZGF0YVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgdy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAge3tpdGVtLmlucHV0VGV4dFswXS52YWx1ZX19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBZb3VyIGV4aXN0aW5nIGVkaXQvZGVsZXRlIGVsZW1lbnRzIC0tPlxuICAgIDxkaXYgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBlZGl0fVwiICpuZ0lmPVwic2hvd0VkaXRvcnNcIj5cbiAgICAgICAgPHNpbXBvLWhvdmVyLWVsZW1lbnRzIFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIiBbZWRpdE9wdGlvbnNdPVwiZWRpdFwiPjwvc2ltcG8taG92ZXItZWxlbWVudHM+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cInNob3dEZWxldGVcIiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGRlbGV0ZX1cIj5cbiAgICAgICAgPHNpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50IFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIj48L3NpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50PlxuICAgIDwvZGl2PlxuPC9zZWN0aW9uPiJdfQ==
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92aW5nLXRleHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZWN0aW9ucy9tb3ZpbmctdGV4dC9tb3ZpbmctdGV4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL21vdmluZy10ZXh0L21vdmluZy10ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdCLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLFdBQVcsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHFEQUFxRCxDQUFDOzs7Ozs7QUFnQnZHLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxXQUFXO0lBZWxELFlBQW9CLGFBQTRCO1FBQzlDLEtBQUssRUFBRSxDQUFDO1FBRFUsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFSaEQsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsa0JBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNuQixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4Qix1QkFBa0IsR0FBcUIsTUFBTSxDQUFDO1FB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QkFBeUI7d0JBQ3pCLGNBQWM7d0JBQ2QsZ0NBQWdDO3FCQUNqQztrRkFLUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgQmFzZVNlY3Rpb24gZnJvbSAnLi4vQmFzZVNlY3Rpb24nO1xyXG5pbXBvcnQgeyBNb3ZpbmdUZXh0TW9kYWwgfSBmcm9tICcuL21vdmluZy10ZXh0Lm1vZGFsJztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgU2ltcG9FbGVtZW50c01vZHVsZSB9IGZyb20gJy4uLy4uL2VsZW1lbnRzL2luZGV4JztcclxuaW1wb3J0IHsgU2ltcG9Db21wb25lbnRNb2R1bGUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2luZGV4JztcclxuaW1wb3J0IHsgQmFja2dyb3VuZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9iYWNrZ3JvdW5kLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFNpbXBvSG92ZXJCb3JkZXJEaXJlY3RpdmUgfSBmcm9tIFwiLi4vLi4vZGlyZWN0aXZlL2hvdmVyYm9yZGVyLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQgeyBIb3ZlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9ob3Zlci1lbGVtZW50LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFRleHRCYWNrZ3JvdW5kRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL3RleHQtYmFja2dyb3VuZC1kaXJlY3RpdmUuZGlyZWN0aXZlJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby1tb3ZpbmctdGV4dCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBTaW1wb0VsZW1lbnRzTW9kdWxlLFxyXG4gICAgU2ltcG9Db21wb25lbnRNb2R1bGUsXHJcbiAgICBCYWNrZ3JvdW5kRGlyZWN0aXZlLFxyXG4gICAgU2ltcG9Ib3ZlckJvcmRlckRpcmVjdGl2ZSxcclxuICAgIEhvdmVyRGlyZWN0aXZlLFxyXG4gICAgVGV4dEJhY2tncm91bmREaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vbW92aW5nLXRleHQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9tb3ZpbmctdGV4dC5jb21wb25lbnQuY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vdmluZ1RleHRDb21wb25lbnQgZXh0ZW5kcyBCYXNlU2VjdGlvbiB7XHJcbiAgQElucHV0KCkgZGF0YT86IGFueTtcclxuICBASW5wdXQoKSBlZGl0PzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBkZWxldGU/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGN1c3RvbUNsYXNzPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGluZGV4PzogbnVtYmVyO1xyXG5cclxuICBjdXJyZW50SW5kZXggPSAwO1xyXG4gIHByZXZpb3VzSW5kZXggPSAtMTtcclxuICBpc1RyYW5zaXRpb25pbmcgPSBmYWxzZTtcclxuICBhbmltYXRpb25EaXJlY3Rpb246ICdsZWZ0JyB8ICdyaWdodCcgPSAnbGVmdCc7XHJcbiAgcHJpdmF0ZSBpbnRlcnZhbDogYW55O1xyXG4gIHByaXZhdGUgYW5pbWF0aW9uRHVyYXRpb24gPSA4MDA7IC8vIE1hdGNoIENTUyBhbmltYXRpb24gZHVyYXRpb25cclxuICBwcml2YXRlIGRpc3BsYXlEdXJhdGlvbiA9IDMwMDA7IC8vIEhvdyBsb25nIGVhY2ggaXRlbSBzaG93c1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9ldmVudFNlcnZpY2U6IEV2ZW50c1NlcnZpY2UpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLmRhdGE/LnN0eWxlcz8uaGVhZGxpbmU/LmhlYWRsaW5lQW5pbWF0aW9uVHlwZSA9PT0gJ1NvZnRUcmFuc2l0aW9uJyAmJlxyXG4gICAgICAgIHRoaXMuZGF0YT8uY29udGVudD8ubGlzdEl0ZW0/LmRhdGE/Lmxlbmd0aCkge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnN0YXJ0QW5pbWF0aW9uQ3ljbGUoKTtcclxuICAgICAgfSwgMTAwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMuaW50ZXJ2YWwpIHtcclxuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN0YXJ0QW5pbWF0aW9uQ3ljbGUoKSB7XHJcbiAgICBpZiAoIXRoaXMuZGF0YT8uY29udGVudD8ubGlzdEl0ZW0/LmRhdGE/Lmxlbmd0aCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ2xlYXIgYW55IGV4aXN0aW5nIGludGVydmFsXHJcbiAgICBpZiAodGhpcy5pbnRlcnZhbCkge1xyXG4gICAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWwpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY3VycmVudEluZGV4ID0gMDtcclxuICAgIHRoaXMucHJldmlvdXNJbmRleCA9IC0xO1xyXG4gICAgdGhpcy5hbmltYXRpb25EaXJlY3Rpb24gPSAncmlnaHQnOyAvLyBTdGFydCB3aXRoIHJpZ2h0IGFuaW1hdGlvblxyXG5cclxuICAgIHRoaXMuaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgIHRoaXMudHJhbnNpdGlvblRvTmV4dCgpO1xyXG4gICAgfSwgdGhpcy5kaXNwbGF5RHVyYXRpb24pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB0cmFuc2l0aW9uVG9OZXh0KCkge1xyXG4gICAgaWYgKHRoaXMuaXNUcmFuc2l0aW9uaW5nKSByZXR1cm47XHJcblxyXG4gICAgdGhpcy5pc1RyYW5zaXRpb25pbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5wcmV2aW91c0luZGV4ID0gdGhpcy5jdXJyZW50SW5kZXg7XHJcbiAgICBcclxuICAgIC8vIENhbGN1bGF0ZSBuZXh0IGluZGV4XHJcbiAgICB0aGlzLmN1cnJlbnRJbmRleCA9ICh0aGlzLmN1cnJlbnRJbmRleCArIDEpICUgdGhpcy5kYXRhIS5jb250ZW50IS5saXN0SXRlbSEuZGF0YSEubGVuZ3RoO1xyXG4gICAgXHJcbiAgICAvLyBBbHRlcm5hdGUgZGlyZWN0aW9uIGZvciB2YXJpZXR5XHJcbiAgICB0aGlzLmFuaW1hdGlvbkRpcmVjdGlvbiA9IHRoaXMuYW5pbWF0aW9uRGlyZWN0aW9uID09PSAnbGVmdCcgPyAncmlnaHQnIDogJ2xlZnQnO1xyXG5cclxuICAgIC8vIFJlc2V0IHRyYW5zaXRpb24gZmxhZyBhZnRlciBhbmltYXRpb24gY29tcGxldGVzXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5pc1RyYW5zaXRpb25pbmcgPSBmYWxzZTtcclxuICAgICAgdGhpcy5wcmV2aW91c0luZGV4ID0gLTE7XHJcbiAgICB9LCB0aGlzLmFuaW1hdGlvbkR1cmF0aW9uKTtcclxuICB9XHJcblxyXG4gIC8vIE1ldGhvZCB0byBjaGVjayBpZiBpdGVtIHNob3VsZCBiZSB2aXNpYmxlXHJcbiAgaXNJdGVtVmlzaWJsZShpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gaW5kZXggPT09IHRoaXMuY3VycmVudEluZGV4IHx8IGluZGV4ID09PSB0aGlzLnByZXZpb3VzSW5kZXg7XHJcbiAgfVxyXG5cclxuICAvLyBNZXRob2QgdG8gZ2V0IGFuaW1hdGlvbiBjbGFzcyBmb3IgaXRlbVxyXG4gIGdldEl0ZW1DbGFzcyhpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGlmIChpbmRleCA9PT0gdGhpcy5jdXJyZW50SW5kZXgpIHtcclxuICAgICAgcmV0dXJuIGBhY3RpdmUgZmFkZS1pbi0ke3RoaXMuYW5pbWF0aW9uRGlyZWN0aW9ufWA7XHJcbiAgICB9IGVsc2UgaWYgKGluZGV4ID09PSB0aGlzLnByZXZpb3VzSW5kZXggJiYgdGhpcy5pc1RyYW5zaXRpb25pbmcpIHtcclxuICAgICAgcmV0dXJuIGBmYWRlLW91dC0ke3RoaXMuYW5pbWF0aW9uRGlyZWN0aW9uID09PSAnbGVmdCcgPyAncmlnaHQnIDogJ2xlZnQnfWA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBnZXRUZXh0Q29sb3IoYmdDb2xvcjogc3RyaW5nKSB7XHJcbiAgICBpZiAoYmdDb2xvcikge1xyXG4gICAgICBjb25zdCB0aHJlc2hvbGQgPSAxMzA7XHJcbiAgICAgIGNvbnN0IHIgPSBwYXJzZUludChiZ0NvbG9yLnNsaWNlKDEsIDMpLCAxNik7XHJcbiAgICAgIGNvbnN0IGcgPSBwYXJzZUludChiZ0NvbG9yLnNsaWNlKDMsIDUpLCAxNik7XHJcbiAgICAgIGNvbnN0IGIgPSBwYXJzZUludChiZ0NvbG9yLnNsaWNlKDUsIDcpLCAxNik7XHJcbiAgICAgIGNvbnN0IGJyaWdodG5lc3MgPSAociAqIDI5OSArIGcgKiA1ODcgKyBiICogMTE0KSAvIDEwMDA7XHJcbiAgICAgIHJldHVybiBicmlnaHRuZXNzID4gdGhyZXNob2xkID8gJyMwMDAwMDAnIDogJyNmZmZmZmYnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFwiI2ZmZmZmZlwiO1xyXG4gIH1cclxufSIsIjxzZWN0aW9uIGNsYXNzPVwibWFpbi1jb250YWluZXJcIiBzaW1wb0hvdmVyIChob3ZlcmluZyk9XCJzaG93RWRpdFRhYnMoJGV2ZW50KVwiIFtpZF09XCJkYXRhPy5pZFwiIFthdHRyLnN0eWxlXT1cImN1c3RvbUNsYXNzXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2xpZGVyLXdyYXBwZXIgcHgtMiBweS0yIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIlxyXG4gICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cImRhdGE/LnN0eWxlcz8uaGVhZGxpbmU/LmNvbG9yXCI+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPCEtLSBJbmZpbml0ZSBTY3JvbGwgQW5pbWF0aW9uIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbGlkZXItdHJhY2sgdy0xMDAgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwiZGF0YT8uc3R5bGVzPy5oZWFkbGluZT8uaGVhZGxpbmVBbmltYXRpb25UeXBlID09ICdJbmZpbml0ZVNjcm9sbCdcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkYXRhPy5jb250ZW50Py5saXN0SXRlbT8uZGF0YTsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNsaWRpbmctdGV4dCB0ZXh0LW5vd3JhcFwiIFtzdHlsZS5jb2xvcl09XCJnZXRUZXh0Q29sb3IoZGF0YT8uc3R5bGVzPy5oZWFkbGluZT8uY29sb3IpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tpdGVtLmlucHV0VGV4dFswXS52YWx1ZX19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPCEtLSBTb2Z0IFRyYW5zaXRpb24gQW5pbWF0aW9uIC0tPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJkYXRhPy5zdHlsZXM/LmhlYWRsaW5lPy5oZWFkbGluZUFuaW1hdGlvblR5cGUgPT0gJ1NvZnRUcmFuc2l0aW9uJ1wiIGNsYXNzPVwibGlzdC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkYXRhPy5jb250ZW50Py5saXN0SXRlbT8uZGF0YTsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtaXRlbSB0ZXh0LW5vd3JhcFwiIFxyXG4gICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJnZXRJdGVtQ2xhc3MoaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbY2xhc3MudmlzaWJsZV09XCJpc0l0ZW1WaXNpYmxlKGkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImdldFRleHRDb2xvcihkYXRhPy5zdHlsZXM/LmhlYWRsaW5lPy5jb2xvcilcIj5cclxuICAgICAgICAgICAgICAgICAgICB7e2l0ZW0uaW5wdXRUZXh0WzBdLnZhbHVlfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBObyBFZmZlY3QgLS0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGE/LnN0eWxlcz8uaGVhZGxpbmU/LmhlYWRsaW5lQW5pbWF0aW9uVHlwZSA9PSAnTm9FZmZlY3QnXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YT8uY29udGVudD8ubGlzdEl0ZW0/LmRhdGFcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgdy0xMDAgdGV4dC1ub3dyYXBcIiBcclxuICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImdldFRleHRDb2xvcihkYXRhPy5zdHlsZXM/LmhlYWRsaW5lPy5jb2xvcilcIj5cclxuICAgICAgICAgICAgICAgICAgICB7e2l0ZW0uaW5wdXRUZXh0WzBdLnZhbHVlfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS0gRXhpc3RpbmcgaG92ZXIgZWxlbWVudHMgLS0+XHJcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZWRpdH1cIiAqbmdJZj1cInNob3dFZGl0b3JzXCI+XHJcbiAgICAgICAgPHNpbXBvLWhvdmVyLWVsZW1lbnRzIFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIiBbZWRpdE9wdGlvbnNdPVwiZWRpdFwiPjwvc2ltcG8taG92ZXItZWxlbWVudHM+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJzaG93RGVsZXRlXCIgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBkZWxldGV9XCI+XHJcbiAgICAgICAgPHNpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50IFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIj48L3NpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50PlxyXG4gICAgPC9kaXY+XHJcbjwvc2VjdGlvbj4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92aW5nLXRleHQubW9kYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL21vdmluZy10ZXh0L21vdmluZy10ZXh0Lm1vZGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyAgIEltYWdlU3R5bGUsICBMaXN0SXRlbU1vZGFsLCBQb3NpdGlvbkxheW91dE1vZGFsLCBTdHlsZXNNb2RlbCwgSW1hZ2UsIElucHV0VGV4dE1vZGVsLCBBY3Rpb25Nb2RlbCwgQmFubmVyU3R5bGVzTW9kZWwsIEJhY2tncm91bmRNb2RlbCAgfSBmcm9tICcuLy4uLy4uL3N0eWxlcy9zdHlsZS5tb2RlbCc7XG5pbXBvcnQgeyAgaGVhZGxpbmVBbmltYXRpb25UeXBlIH0gZnJvbSBcIi4vLi4vLi4vc3R5bGVzL2luZGV4XCJcblxuZXhwb3J0IGludGVyZmFjZSBNb3ZpbmdUZXh0TW9kYWwge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgc2VjdGlvblR5cGU6IHN0cmluZztcbiAgICBzZWN0aW9uTmFtZTogc3RyaW5nO1xuICAgIGNvbnRlbnQ6IE1vdmluZ1RleHRDb250ZW50TW9kYWw7XG4gICAgc3R5bGVzOiBNb3ZpbmdUZXh0U3R5bGVzTW9kYWw7ICBcbn1cbmV4cG9ydCBpbnRlcmZhY2UgTW92aW5nVGV4dENvbnRlbnRNb2RhbCB7XG4gICAgbGlzdEl0ZW06IExpc3RJdGVtTW9kYWw8TmV3U2VydmljZXNJdGVtTW9kZWw+O1xufVxuZXhwb3J0IGludGVyZmFjZSBOZXdTZXJ2aWNlc0l0ZW1Nb2RlbCB7XG4gICAgaW5wdXRUZXh0OiBJbnB1dFRleHRNb2RlbFtdO1xufVxuZXhwb3J0IGludGVyZmFjZSBNb3ZpbmdUZXh0U3R5bGVzTW9kYWx7IFxuICAgIGJhY2tncm91bmQgOiBCYWNrZ3JvdW5kTW9kZWxcbiAgICBoZWFkbGluZUFuaW1hdGlvblR5cGUgOiBoZWFkbGluZUFuaW1hdGlvblR5cGVcbn0iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92aW5nLXRleHQubW9kYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL21vdmluZy10ZXh0L21vdmluZy10ZXh0Lm1vZGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyAgIEltYWdlU3R5bGUsICBMaXN0SXRlbU1vZGFsLCBQb3NpdGlvbkxheW91dE1vZGFsLCBTdHlsZXNNb2RlbCwgSW1hZ2UsIElucHV0VGV4dE1vZGVsLCBBY3Rpb25Nb2RlbCwgQmFubmVyU3R5bGVzTW9kZWwsIEJhY2tncm91bmRNb2RlbCAgfSBmcm9tICcuLy4uLy4uL3N0eWxlcy9zdHlsZS5tb2RlbCc7XHJcbmltcG9ydCB7ICBoZWFkbGluZUFuaW1hdGlvblR5cGUgfSBmcm9tIFwiLi8uLi8uLi9zdHlsZXMvaW5kZXhcIlxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNb3ZpbmdUZXh0TW9kYWwge1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIHNlY3Rpb25UeXBlOiBzdHJpbmc7XHJcbiAgICBzZWN0aW9uTmFtZTogc3RyaW5nO1xyXG4gICAgY29udGVudDogTW92aW5nVGV4dENvbnRlbnRNb2RhbDtcclxuICAgIHN0eWxlczogTW92aW5nVGV4dFN0eWxlc01vZGFsOyAgXHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBNb3ZpbmdUZXh0Q29udGVudE1vZGFsIHtcclxuICAgIGxpc3RJdGVtOiBMaXN0SXRlbU1vZGFsPE5ld1NlcnZpY2VzSXRlbU1vZGVsPjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIE5ld1NlcnZpY2VzSXRlbU1vZGVsIHtcclxuICAgIGlucHV0VGV4dDogSW5wdXRUZXh0TW9kZWxbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIE1vdmluZ1RleHRTdHlsZXNNb2RhbHsgXHJcbiAgICBiYWNrZ3JvdW5kIDogQmFja2dyb3VuZE1vZGVsXHJcbiAgICBoZWFkbGluZUFuaW1hdGlvblR5cGUgOiBoZWFkbGluZUFuaW1hdGlvblR5cGVcclxufSJdfQ==