ctt-babylon 0.9.17 → 0.9.18

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 (844) hide show
  1. package/esm2022/lib/Enum/buttons-type.enum.mjs +6 -0
  2. package/esm2022/lib/Enum/index.mjs +3 -0
  3. package/esm2022/lib/Enum/logo-type.enum.mjs +10 -0
  4. package/esm2022/lib/Enum/services.enum.mjs +8 -0
  5. package/esm2022/lib/Enum/views.enum.mjs +5 -0
  6. package/esm2022/lib/components/core/babylon-404/babylon-404.component.mjs +18 -5
  7. package/esm2022/lib/components/core/babylon-404/babylon-404.interface.mjs +2 -0
  8. package/esm2022/lib/components/core/babylon-404/index.mjs +3 -0
  9. package/esm2022/lib/components/core/babylon-action-banner/babylon-action-banner.component.mjs +30 -0
  10. package/esm2022/lib/components/core/babylon-action-banner/babylon-action-banner.interface.mjs +2 -0
  11. package/esm2022/lib/components/core/babylon-action-banner/index.mjs +3 -0
  12. package/esm2022/lib/components/core/babylon-advantages/babylon-advantages-info.interface.mjs +2 -0
  13. package/esm2022/lib/components/core/babylon-advantages/babylon-advantages.component.mjs +29 -5
  14. package/esm2022/lib/components/core/babylon-advantages/babylon-advantages.interface.mjs +2 -0
  15. package/esm2022/lib/components/core/babylon-advantages/index.mjs +4 -0
  16. package/esm2022/lib/components/core/babylon-advantages-v2/babylon-advantages-v2.component.mjs +9 -5
  17. package/esm2022/lib/components/core/babylon-advantages-v2/index.mjs +2 -0
  18. package/esm2022/lib/components/core/babylon-av-c4-img-text/babylon-av-c4-img-text.component.mjs +19 -0
  19. package/esm2022/lib/components/core/babylon-av-c4-img-text/index.mjs +2 -0
  20. package/esm2022/lib/components/core/babylon-banner-gallery/babylon-banner-gallery.component.mjs +31 -5
  21. package/esm2022/lib/components/core/babylon-banner-gallery/babylon-banner-gallery.interface.mjs +2 -0
  22. package/esm2022/lib/components/core/babylon-banner-gallery/index.mjs +3 -0
  23. package/esm2022/lib/components/core/babylon-banner-info/babylon-banner-info.component.mjs +133 -6
  24. package/esm2022/lib/components/core/babylon-banner-info/babylon-banner-info.interface.mjs +2 -0
  25. package/esm2022/lib/components/core/babylon-banner-info/index.mjs +3 -0
  26. package/esm2022/lib/components/core/babylon-banner-newsletter/babylon-banner-newsletter.component.mjs +39 -5
  27. package/esm2022/lib/components/core/babylon-banner-newsletter/babylon-banner-newsletter.interface.mjs +2 -0
  28. package/esm2022/lib/components/core/babylon-banner-newsletter/index.mjs +3 -0
  29. package/esm2022/lib/components/core/babylon-blog-details/babylon-blog-details.component.mjs +98 -5
  30. package/esm2022/lib/components/core/babylon-blog-details/babylon-blog-details.interface.mjs +2 -0
  31. package/esm2022/lib/components/core/babylon-blog-details/index.mjs +3 -0
  32. package/esm2022/lib/components/core/babylon-blog-list/babylon-blog-list.component.mjs +80 -6
  33. package/esm2022/lib/components/core/babylon-blog-list/babylon-blog-list.interface.mjs +2 -0
  34. package/esm2022/lib/components/core/babylon-blog-list/index.mjs +3 -0
  35. package/esm2022/lib/components/core/babylon-breadcrumb/babylon-breadcrumb.component.mjs +14 -5
  36. package/esm2022/lib/components/core/babylon-breadcrumb/babylon-breadcrumb.interface.mjs +2 -0
  37. package/esm2022/lib/components/core/babylon-breadcrumb/index.mjs +3 -0
  38. package/esm2022/lib/components/core/babylon-color-picker/babylon-color-picker.component.mjs +267 -0
  39. package/esm2022/lib/components/core/babylon-color-picker/index.mjs +2 -0
  40. package/esm2022/lib/components/core/babylon-comingsoon/babylon-comingsoon.component.mjs +10 -5
  41. package/esm2022/lib/components/core/babylon-comingsoon/babylon-comingsoon.interface.mjs +2 -0
  42. package/esm2022/lib/components/core/babylon-comingsoon/index.mjs +3 -0
  43. package/esm2022/lib/components/core/babylon-contact-address/babylon-contact-address.component.mjs +19 -0
  44. package/esm2022/lib/components/core/babylon-contact-address/babylon-contact-address.interface.mjs +2 -0
  45. package/esm2022/lib/components/core/babylon-contact-address/index.mjs +3 -0
  46. package/esm2022/lib/components/core/babylon-contact-form/babylon-contact-form.component.mjs +134 -20
  47. package/esm2022/lib/components/core/babylon-contact-form/babylon-contact-form.interface.mjs +2 -0
  48. package/esm2022/lib/components/core/babylon-contact-form/index.mjs +3 -0
  49. package/esm2022/lib/components/core/babylon-contact-how/babylon-contact-how.component.mjs +23 -6
  50. package/esm2022/lib/components/core/babylon-contact-how/babylon-contact-how.interface.mjs +2 -0
  51. package/esm2022/lib/components/core/babylon-contact-how/index.mjs +3 -0
  52. package/esm2022/lib/components/core/babylon-contact-map/babylon-contact-map.component.mjs +29 -6
  53. package/esm2022/lib/components/core/babylon-contact-map/babylon-contact-map.interface.mjs +2 -0
  54. package/esm2022/lib/components/core/babylon-contact-map/index.mjs +3 -0
  55. package/esm2022/lib/components/core/babylon-container-text-l2/babylon-container-text-l2.component.mjs +5 -3
  56. package/esm2022/lib/components/core/babylon-container-text-l2/index.mjs +2 -0
  57. package/esm2022/lib/components/core/babylon-engine/babylon-engine.component.mjs +246 -22
  58. package/esm2022/lib/components/core/babylon-engine/babylon-engine.interface.mjs +2 -0
  59. package/esm2022/lib/components/core/babylon-engine/index.mjs +3 -0
  60. package/esm2022/lib/components/core/babylon-engine-modal/babylon-engine-modal.component.mjs +225 -33
  61. package/esm2022/lib/components/core/babylon-engine-modal/babylon-engine-modal.interface.mjs +2 -0
  62. package/esm2022/lib/components/core/babylon-engine-modal/index.mjs +3 -0
  63. package/esm2022/lib/components/core/babylon-external-script/babylon-external-script.component.mjs +80 -0
  64. package/esm2022/lib/components/core/babylon-external-script/babylon-external-script.interface.mjs +2 -0
  65. package/esm2022/lib/components/core/babylon-external-script/index.mjs +3 -0
  66. package/esm2022/lib/components/core/babylon-faq/babylon-faq.component.mjs +38 -5
  67. package/esm2022/lib/components/core/babylon-faq/babylon-faq.interface.mjs +2 -0
  68. package/esm2022/lib/components/core/babylon-faq/index.mjs +3 -0
  69. package/esm2022/lib/components/core/babylon-faq-v2/babylon-faq-v2.component.mjs +18 -5
  70. package/esm2022/lib/components/core/babylon-faq-v2/index.mjs +2 -0
  71. package/esm2022/lib/components/core/babylon-feature-pills-number/babylon-feature-pills-number.component.mjs +9 -5
  72. package/esm2022/lib/components/core/babylon-feature-pills-number/index.mjs +2 -0
  73. package/esm2022/lib/components/core/babylon-features-slider/babylon-features-slider.component.mjs +28 -6
  74. package/esm2022/lib/components/core/babylon-features-slider/babylon-features-slider.interface.mjs +2 -0
  75. package/esm2022/lib/components/core/babylon-features-slider/index.mjs +3 -0
  76. package/esm2022/lib/components/core/babylon-filter-modal/babylon-filter-modal.component.mjs +16 -6
  77. package/esm2022/lib/components/core/babylon-filter-modal/index.mjs +2 -0
  78. package/esm2022/lib/components/core/babylon-floating-buttons/babylon-floating-buttons.component.mjs +121 -0
  79. package/esm2022/lib/components/core/babylon-floating-buttons/babylon-floating-buttons.interface.mjs +2 -0
  80. package/esm2022/lib/components/core/babylon-floating-buttons/index.mjs +3 -0
  81. package/esm2022/lib/components/core/babylon-footer-contact/babylon-footer-contact.component.mjs +25 -5
  82. package/esm2022/lib/components/core/babylon-footer-contact/babylon-footer-contact.interface.mjs +2 -0
  83. package/esm2022/lib/components/core/babylon-footer-contact/index.mjs +3 -0
  84. package/esm2022/lib/components/core/babylon-footer-links/babylon-footer-links.component.mjs +13 -5
  85. package/esm2022/lib/components/core/babylon-footer-links/babylon-footer-links.interface.mjs +2 -0
  86. package/esm2022/lib/components/core/babylon-footer-links/index.mjs +3 -0
  87. package/esm2022/lib/components/core/babylon-footer-logos/babylon-footer-logos.component.mjs +23 -5
  88. package/esm2022/lib/components/core/babylon-footer-logos/babylon-footer-logos.interface.mjs +2 -0
  89. package/esm2022/lib/components/core/babylon-footer-logos/index.mjs +3 -0
  90. package/esm2022/lib/components/core/babylon-footer-social/babylon-footer-social.component.mjs +14 -5
  91. package/esm2022/lib/components/core/babylon-footer-social/babylon-footer-social.interface.mjs +3 -0
  92. package/esm2022/lib/components/core/babylon-footer-social/index.mjs +3 -0
  93. package/esm2022/lib/components/core/babylon-gallery/babylon-gallery.component.mjs +72 -23
  94. package/esm2022/lib/components/core/babylon-gallery/babylon-gallery.interface.mjs +2 -0
  95. package/esm2022/lib/components/core/babylon-gallery/index.mjs +3 -0
  96. package/esm2022/lib/components/core/babylon-global-modal/babylon-global-modal.component.mjs +38 -0
  97. package/esm2022/lib/components/core/babylon-global-modal/babylon-global-modal.interface.mjs +2 -0
  98. package/esm2022/lib/components/core/babylon-global-modal/index.mjs +3 -0
  99. package/esm2022/lib/components/core/babylon-grid-gallery/babylon-grid-gallery.component.mjs +42 -6
  100. package/esm2022/lib/components/core/babylon-grid-gallery/babylon-grid-gallery.interface.mjs +2 -0
  101. package/esm2022/lib/components/core/babylon-grid-gallery/index.mjs +3 -0
  102. package/esm2022/lib/components/core/babylon-guests-popup/babylon-guests-popup.component.mjs +91 -7
  103. package/esm2022/lib/components/core/babylon-guests-popup/babylon-guests-popup.interface.mjs +2 -0
  104. package/esm2022/lib/components/core/babylon-guests-popup/index.mjs +3 -0
  105. package/esm2022/lib/components/core/babylon-head-intro/babylon-head-intro.component.mjs +24 -5
  106. package/esm2022/lib/components/core/babylon-head-intro/babylon-head-intro.interface.mjs +2 -0
  107. package/esm2022/lib/components/core/babylon-head-intro/index.mjs +3 -0
  108. package/esm2022/lib/components/core/babylon-header-book-show/babylon-header-book-show.component.mjs +114 -52
  109. package/esm2022/lib/components/core/babylon-header-book-show/babylon-header-book-show.interface.mjs +2 -0
  110. package/esm2022/lib/components/core/babylon-header-book-show/index.mjs +3 -0
  111. package/esm2022/lib/components/core/babylon-header-clear/babylon-header-clear.component.mjs +143 -53
  112. package/esm2022/lib/components/core/babylon-header-clear/babylon-header-clear.interface.mjs +2 -0
  113. package/esm2022/lib/components/core/babylon-header-clear/index.mjs +3 -0
  114. package/esm2022/lib/components/core/babylon-header-menu-center/babylon-header-menu-center.component.mjs +148 -52
  115. package/esm2022/lib/components/core/babylon-header-menu-center/babylon-header-menu-center.interface.mjs +2 -0
  116. package/esm2022/lib/components/core/babylon-header-menu-center/index.mjs +3 -0
  117. package/esm2022/lib/components/core/babylon-header-menu-logo-center/babylon-header-menu-logo-center.component.mjs +122 -0
  118. package/esm2022/lib/components/core/babylon-header-menu-logo-center/babylon-header-menu-logo-center.interface.mjs +2 -0
  119. package/esm2022/lib/components/core/babylon-header-menu-logo-center/index.mjs +3 -0
  120. package/esm2022/lib/components/core/babylon-header-menu-show/babylon-header-menu-show.component.mjs +92 -52
  121. package/esm2022/lib/components/core/babylon-header-menu-show/babylon-header-menu-show.interface.mjs +2 -0
  122. package/esm2022/lib/components/core/babylon-header-menu-show/index.mjs +3 -0
  123. package/esm2022/lib/components/core/babylon-header-mobile/babylon-header-mobile.component.mjs +156 -0
  124. package/esm2022/lib/components/core/babylon-header-mobile/babylon-header-mobile.interface.mjs +2 -0
  125. package/esm2022/lib/components/core/babylon-header-mobile/index.mjs +3 -0
  126. package/esm2022/lib/components/core/babylon-hotels-list/babylon-hotel.interface.mjs +2 -0
  127. package/esm2022/lib/components/core/babylon-hotels-list/babylon-hotels-list.component.mjs +12 -5
  128. package/esm2022/lib/components/core/babylon-hotels-list/babylon-hotels-list.interface.mjs +2 -0
  129. package/esm2022/lib/components/core/babylon-hotels-list/index.mjs +4 -0
  130. package/esm2022/lib/components/core/babylon-hotels-slider/babylon-hotels-slider.component.mjs +19 -6
  131. package/esm2022/lib/components/core/babylon-hotels-slider/babylon-hotels-slider.interface.mjs +2 -0
  132. package/esm2022/lib/components/core/babylon-hotels-slider/index.mjs +3 -0
  133. package/esm2022/lib/components/core/babylon-info-big/babylon-info-big.component.mjs +19 -5
  134. package/esm2022/lib/components/core/babylon-info-big/babylon-info-big.interface.mjs +2 -0
  135. package/esm2022/lib/components/core/babylon-info-big/index.mjs +3 -0
  136. package/esm2022/lib/components/core/babylon-info-big-v3/babylon-info-big-v3.component.mjs +9 -5
  137. package/esm2022/lib/components/core/babylon-info-big-v3/index.mjs +2 -0
  138. package/esm2022/lib/components/core/babylon-info-grid/babylon-info-grid.component.mjs +31 -7
  139. package/esm2022/lib/components/core/babylon-info-grid/babylon-info-grid.interface.mjs +3 -0
  140. package/esm2022/lib/components/core/babylon-info-grid/index.mjs +3 -0
  141. package/esm2022/lib/components/core/babylon-info-img/babylon-info-img.component.mjs +95 -5
  142. package/esm2022/lib/components/core/babylon-info-img/babylon-info-img.interface.mjs +2 -0
  143. package/esm2022/lib/components/core/babylon-info-img/index.mjs +3 -0
  144. package/esm2022/lib/components/core/babylon-info-img-slider/babylon-info-img-slider.component.mjs +56 -0
  145. package/esm2022/lib/components/core/babylon-info-img-slider/babylon-info-img-slider.interface.mjs +2 -0
  146. package/esm2022/lib/components/core/babylon-info-img-slider/index.mjs +3 -0
  147. package/esm2022/lib/components/core/babylon-info-intro/babylon-info-intro.component.mjs +62 -5
  148. package/esm2022/lib/components/core/babylon-info-intro/babylon-info-intro.interface.mjs +2 -0
  149. package/esm2022/lib/components/core/babylon-info-intro/index.mjs +3 -0
  150. package/esm2022/lib/components/core/babylon-info-show-img/babylon-info-show-img.component.mjs +7 -5
  151. package/esm2022/lib/components/core/babylon-info-show-img/index.mjs +2 -0
  152. package/esm2022/lib/components/core/babylon-info-zig-zag/babylon-info-zig-zag.component.mjs +31 -5
  153. package/esm2022/lib/components/core/babylon-info-zig-zag/babylon-info-zig-zag.interface.mjs +2 -0
  154. package/esm2022/lib/components/core/babylon-info-zig-zag/index.mjs +3 -0
  155. package/esm2022/lib/components/core/babylon-info-zig-zag-counter/babylon-info-zig-zag-counter.component.mjs +92 -0
  156. package/esm2022/lib/components/core/babylon-info-zig-zag-counter/babylon-info-zig-zag-counter.interface.mjs +2 -0
  157. package/esm2022/lib/components/core/babylon-info-zig-zag-counter/index.mjs +3 -0
  158. package/esm2022/lib/components/core/babylon-info-zigzag-v2/babylon-info-zigzag-v2.component.mjs +19 -5
  159. package/esm2022/lib/components/core/babylon-info-zigzag-v2/babylon-info-zigzag-v2.interface.mjs +2 -0
  160. package/esm2022/lib/components/core/babylon-info-zigzag-v2/index.mjs +3 -0
  161. package/esm2022/lib/components/core/babylon-info2col-img/babylon-info2col-img.component.mjs +36 -0
  162. package/esm2022/lib/components/core/babylon-info2col-img/babylon-info2col-img.interface.mjs +2 -0
  163. package/esm2022/lib/components/core/babylon-info2col-img/index.mjs +3 -0
  164. package/esm2022/lib/components/core/babylon-info2img/babylon-info2img.component.mjs +30 -5
  165. package/esm2022/lib/components/core/babylon-info2img/babylon-info2img.interface.mjs +2 -0
  166. package/esm2022/lib/components/core/babylon-info2img/index.mjs +3 -0
  167. package/esm2022/lib/components/core/babylon-info2img-big/babylon-info2img-big.component.mjs +38 -5
  168. package/esm2022/lib/components/core/babylon-info2img-big/babylon-info2img-big.interface.mjs +2 -0
  169. package/esm2022/lib/components/core/babylon-info2img-big/index.mjs +3 -0
  170. package/esm2022/lib/components/core/babylon-info3img/babylon-info3img.component.mjs +19 -5
  171. package/esm2022/lib/components/core/babylon-info3img/index.mjs +2 -0
  172. package/esm2022/lib/components/core/babylon-info4img/babylon-info4img.component.mjs +23 -5
  173. package/esm2022/lib/components/core/babylon-info4img/babylon-info4img.interface.mjs +2 -0
  174. package/esm2022/lib/components/core/babylon-info4img/index.mjs +3 -0
  175. package/esm2022/lib/components/core/babylon-items-grid/babylon-items-grid.component.mjs +21 -5
  176. package/esm2022/lib/components/core/babylon-items-grid/babylon-items-grid.interface.mjs +2 -0
  177. package/esm2022/lib/components/core/babylon-items-grid/index.mjs +3 -0
  178. package/esm2022/lib/components/core/babylon-language-modal/babylon-language-modal.component.mjs +13 -7
  179. package/esm2022/lib/components/core/babylon-language-modal/babylon-language-modal.interface.mjs +2 -0
  180. package/esm2022/lib/components/core/babylon-language-modal/index.mjs +3 -0
  181. package/esm2022/lib/components/core/babylon-legal/babylon-legal.component.mjs +19 -5
  182. package/esm2022/lib/components/core/babylon-legal/babylon-legal.interface.mjs +2 -0
  183. package/esm2022/lib/components/core/babylon-legal/index.mjs +3 -0
  184. package/esm2022/lib/components/core/babylon-list-c3-img-txt/babylon-list-c3-img-txt.component.mjs +12 -5
  185. package/esm2022/lib/components/core/babylon-list-c3-img-txt/index.mjs +2 -0
  186. package/esm2022/lib/components/core/babylon-list-grid/babylon-list-grid.component.mjs +15 -5
  187. package/esm2022/lib/components/core/babylon-list-grid/babylon-list-grid.interface.mjs +3 -0
  188. package/esm2022/lib/components/core/babylon-list-grid/index.mjs +3 -0
  189. package/esm2022/lib/components/core/babylon-modal-menu/babylon-modal-menu.component.mjs +139 -0
  190. package/esm2022/lib/components/core/babylon-modal-multiple-motors/babylon-modal-multiple-motors.component.mjs +46 -0
  191. package/esm2022/lib/components/core/babylon-modal-multiple-motors/babylon-modal-multiple-motors.interface.mjs +2 -0
  192. package/esm2022/lib/components/core/babylon-modal-multiple-motors/index.mjs +3 -0
  193. package/esm2022/lib/components/core/babylon-modal-popup/babylon-modal-popup.component.mjs +39 -0
  194. package/esm2022/lib/components/core/babylon-modal-popup/babylon-modal-popup.interface.mjs +2 -0
  195. package/esm2022/lib/components/core/babylon-modal-popup/index.mjs +3 -0
  196. package/esm2022/lib/components/core/babylon-newsletter/babylon-newsletter.component.mjs +52 -9
  197. package/esm2022/lib/components/core/babylon-newsletter/babylon-newsletter.interface.mjs +3 -0
  198. package/esm2022/lib/components/core/babylon-newsletter/index.mjs +3 -0
  199. package/esm2022/lib/components/core/babylon-offer-detail/babylon-offer-detail.component.mjs +37 -5
  200. package/esm2022/lib/components/core/babylon-offer-detail/babylon-offer-detail.interface.mjs +2 -0
  201. package/esm2022/lib/components/core/babylon-offer-detail/index.mjs +3 -0
  202. package/esm2022/lib/components/core/babylon-offer-popup/babylon-offer-popup.component.mjs +34 -11
  203. package/esm2022/lib/components/core/babylon-offer-popup/babylon-offer-popup.interface.mjs +2 -0
  204. package/esm2022/lib/components/core/babylon-offer-popup/index.mjs +3 -0
  205. package/esm2022/lib/components/core/babylon-offer-popupV2/babylon-offer-popup-v2.component.mjs +49 -0
  206. package/esm2022/lib/components/core/babylon-offer-popupV2/babylon-offer-popup-v2.interface.mjs +2 -0
  207. package/esm2022/lib/components/core/babylon-offer-popupV2/index.mjs +3 -0
  208. package/esm2022/lib/components/core/babylon-offer-slider/babylon-offer-slider.component.mjs +20 -5
  209. package/esm2022/lib/components/core/babylon-offer-slider/babylon-offer-slider.interface.mjs +2 -0
  210. package/esm2022/lib/components/core/babylon-offer-slider/babylon-offer.interface.mjs +2 -0
  211. package/esm2022/lib/components/core/babylon-offer-slider/index.mjs +4 -0
  212. package/esm2022/lib/components/core/babylon-offers-list/babylon-offers-list.component.mjs +47 -5
  213. package/esm2022/lib/components/core/babylon-offers-list/babylon-offers-list.interface.mjs +2 -0
  214. package/esm2022/lib/components/core/babylon-offers-list/index.mjs +3 -0
  215. package/esm2022/lib/components/core/babylon-offers-slider/babylon-offers-slider.component.mjs +20 -5
  216. package/esm2022/lib/components/core/babylon-offers-slider/index.mjs +2 -0
  217. package/esm2022/lib/components/core/babylon-preload/babylon-preload.component.mjs +28 -4
  218. package/esm2022/lib/components/core/babylon-preload/index.mjs +2 -0
  219. package/esm2022/lib/components/core/babylon-press-list/babylon-press-list.component.mjs +27 -0
  220. package/esm2022/lib/components/core/babylon-press-list/babylon-press-list.interface.mjs +2 -0
  221. package/esm2022/lib/components/core/babylon-press-list/index.mjs +3 -0
  222. package/esm2022/lib/components/core/babylon-room-details/babylon-room-detail.interface.mjs +2 -0
  223. package/esm2022/lib/components/core/babylon-room-details/babylon-room-details.component.mjs +19 -5
  224. package/esm2022/lib/components/core/babylon-room-details/index.mjs +3 -0
  225. package/esm2022/lib/components/core/babylon-rooms-cols/babylon-rooms-cols.component.mjs +158 -5
  226. package/esm2022/lib/components/core/babylon-rooms-cols/babylon-rooms-cols.interface.mjs +2 -0
  227. package/esm2022/lib/components/core/babylon-rooms-cols/index.mjs +3 -0
  228. package/esm2022/lib/components/core/babylon-rooms-grid/babylon-rooms-grid.component.mjs +19 -6
  229. package/esm2022/lib/components/core/babylon-rooms-grid/babylon-rooms-grid.interface.mjs +2 -0
  230. package/esm2022/lib/components/core/babylon-rooms-grid/index.mjs +3 -0
  231. package/esm2022/lib/components/core/babylon-rooms-list/babylon-rooms-list.component.mjs +32 -6
  232. package/esm2022/lib/components/core/babylon-rooms-list/babylon-rooms-list.interface.mjs +2 -0
  233. package/esm2022/lib/components/core/babylon-rooms-list/index.mjs +3 -0
  234. package/esm2022/lib/components/core/babylon-rooms-slider/babylon-room.interface.mjs +2 -0
  235. package/esm2022/lib/components/core/babylon-rooms-slider/babylon-rooms-slider.component.mjs +25 -5
  236. package/esm2022/lib/components/core/babylon-rooms-slider/babylon-rooms-slider.interface.mjs +2 -0
  237. package/esm2022/lib/components/core/babylon-rooms-slider/babylon-rooms-text-info.interface.mjs +2 -0
  238. package/esm2022/lib/components/core/babylon-rooms-slider/index.mjs +5 -0
  239. package/esm2022/lib/components/core/babylon-services-slider/babylon-service-slider.interface.mjs +2 -0
  240. package/esm2022/lib/components/core/babylon-services-slider/babylon-services-slider.component.mjs +17 -5
  241. package/esm2022/lib/components/core/babylon-services-slider/index.mjs +3 -0
  242. package/esm2022/lib/components/core/babylon-sli-c1-img-text/babylon-sli-c1-img-text.component.mjs +12 -0
  243. package/esm2022/lib/components/core/babylon-sli-c1-img-text/index.mjs +2 -0
  244. package/esm2022/lib/components/core/babylon-sli-c5-img-txt/babylon-sli-c5-img-txt.component.mjs +13 -0
  245. package/esm2022/lib/components/core/babylon-sli-c5-img-txt/index.mjs +2 -0
  246. package/esm2022/lib/components/core/babylon-slider-img-static/babylon-slider-img-static.component.mjs +12 -5
  247. package/esm2022/lib/components/core/babylon-slider-img-static/index.mjs +2 -0
  248. package/esm2022/lib/components/core/babylon-slider-img-static-v2/babylon-slider-img-static-v2.component.mjs +12 -5
  249. package/esm2022/lib/components/core/babylon-slider-img-static-v2/index.mjs +2 -0
  250. package/esm2022/lib/components/core/babylon-slider-img-video/babylon-slider-img-video.component.mjs +24 -4
  251. package/esm2022/lib/components/core/babylon-slider-img-video/index.mjs +2 -0
  252. package/esm2022/lib/components/core/babylon-slider2col/babylon-slider2col.component.mjs +28 -5
  253. package/esm2022/lib/components/core/babylon-slider2col/index.mjs +2 -0
  254. package/esm2022/lib/components/core/babylon-slider2items/babylon-slider2items.component.mjs +15 -5
  255. package/esm2022/lib/components/core/babylon-slider2items/babylon-slider2items.interface.mjs +2 -0
  256. package/esm2022/lib/components/core/babylon-slider2items/index.mjs +3 -0
  257. package/esm2022/lib/components/core/babylon-slider3col/babylon-slider3col.component.mjs +59 -0
  258. package/esm2022/lib/components/core/babylon-slider3col/index.mjs +2 -0
  259. package/esm2022/lib/components/core/babylon-slider3col-clear/babylon-slider3col-clear.component.mjs +11 -0
  260. package/esm2022/lib/components/core/babylon-slider3col-clear/index.mjs +2 -0
  261. package/esm2022/lib/components/core/babylon-slider3items/babylon-slider3items.component.mjs +14 -5
  262. package/esm2022/lib/components/core/babylon-slider3items/babylon-slider3items.interface.mjs +2 -0
  263. package/esm2022/lib/components/core/babylon-slider3items/index.mjs +3 -0
  264. package/esm2022/lib/components/core/babylon-slider4col/babylon-slider4col.component.mjs +37 -5
  265. package/esm2022/lib/components/core/babylon-slider4col/index.mjs +2 -0
  266. package/esm2022/lib/components/core/babylon-social-bar/babylon-social-bar.component.mjs +14 -5
  267. package/esm2022/lib/components/core/babylon-social-bar/index.mjs +2 -0
  268. package/esm2022/lib/components/core/babylon-static-footer/babylon-static-footer.component.mjs +104 -6
  269. package/esm2022/lib/components/core/babylon-static-footer/babylon-static-footer.interface.mjs +2 -0
  270. package/esm2022/lib/components/core/babylon-static-footer/index.mjs +3 -0
  271. package/esm2022/lib/components/core/babylon-static-footer-v2/babylon-static-footer-v2.component.mjs +48 -8
  272. package/esm2022/lib/components/core/babylon-static-footer-v2/babylon-static-footer-v2.interface.mjs +2 -0
  273. package/esm2022/lib/components/core/babylon-static-footer-v2/index.mjs +3 -0
  274. package/esm2022/lib/components/core/babylon-submenu-hotel/babylon-submenu-hotel.component.mjs +35 -5
  275. package/esm2022/lib/components/core/babylon-submenu-hotel/babylon-submenu-hotel.interface.mjs +2 -0
  276. package/esm2022/lib/components/core/babylon-submenu-hotel/index.mjs +3 -0
  277. package/esm2022/lib/components/core/babylon-thanks/babylon-thanks.component.mjs +18 -5
  278. package/esm2022/lib/components/core/babylon-thanks/babylon-thanks.interface.mjs +2 -0
  279. package/esm2022/lib/components/core/babylon-thanks/index.mjs +3 -0
  280. package/esm2022/lib/components/core/babylon-top-simple-banner/babylon-top-simple-banner.component.mjs +12 -6
  281. package/esm2022/lib/components/core/babylon-top-simple-banner/index.mjs +2 -0
  282. package/esm2022/lib/components/core/babylon-top-slider/babylon-top-slider-item.interface.mjs +2 -0
  283. package/esm2022/lib/components/core/babylon-top-slider/babylon-top-slider.component.mjs +187 -5
  284. package/esm2022/lib/components/core/babylon-top-slider/babylon-top-slider.interface.mjs +2 -0
  285. package/esm2022/lib/components/core/babylon-top-slider/index.mjs +4 -0
  286. package/esm2022/lib/components/core/babylon-top-slider-thumbs/babylon-top-slider-thumbs.component.mjs +33 -6
  287. package/esm2022/lib/components/core/babylon-top-slider-thumbs/babylon-top-slider-thumbs.interface.mjs +2 -0
  288. package/esm2022/lib/components/core/babylon-top-slider-thumbs/index.mjs +3 -0
  289. package/esm2022/lib/components/core/babylon-top-slider-v2/babylon-top-slider-v2-item.interface.mjs +2 -0
  290. package/esm2022/lib/components/core/babylon-top-slider-v2/babylon-top-slider-v2.component.mjs +22 -5
  291. package/esm2022/lib/components/core/babylon-top-slider-v2/babylon-top-slider-v2.interface.mjs +2 -0
  292. package/esm2022/lib/components/core/babylon-top-slider-v2/index.mjs +4 -0
  293. package/esm2022/lib/components/core/babylon-top-slider-video/babylon-top-slider-video.component.mjs +194 -5
  294. package/esm2022/lib/components/core/babylon-top-slider-video/babylon-top-slider-video.interface.mjs +2 -0
  295. package/esm2022/lib/components/core/babylon-top-slider-video/babylon-video-source.interface.mjs +2 -0
  296. package/esm2022/lib/components/core/babylon-top-slider-video/index.mjs +4 -0
  297. package/esm2022/lib/components/core/babylon-top-slider-video-v2/babylon-top-slider-video-v2.component.mjs +7 -5
  298. package/esm2022/lib/components/core/babylon-top-slider-video-v2/index.mjs +2 -0
  299. package/esm2022/lib/components/core/babylon-webmap/babylon-webmap.component.mjs +23 -5
  300. package/esm2022/lib/components/core/babylon-webmap/babylon-webmap.interface.mjs +2 -0
  301. package/esm2022/lib/components/core/babylon-webmap/index.mjs +3 -0
  302. package/esm2022/lib/components/core/index.mjs +104 -0
  303. package/esm2022/lib/components/shared/babylon-dynamic-heading/babylon-dynamic-heading.component.mjs +130 -0
  304. package/esm2022/lib/components/shared/babylon-dynamic-heading/babylon-dynamic-heading.interface.mjs +2 -0
  305. package/esm2022/lib/components/shared/babylon-dynamic-heading/index.mjs +3 -0
  306. package/esm2022/lib/components/shared/babylon-search/babylon-search.component.mjs +82 -0
  307. package/esm2022/lib/components/shared/babylon-search/index.mjs +2 -0
  308. package/esm2022/lib/components/shared/index.mjs +2 -0
  309. package/esm2022/lib/directives/babylon-background-strip/babylon-background-strip.directive.mjs +71 -0
  310. package/esm2022/lib/directives/babylon-customs/babylon-custom-mouse-pointer.directive.mjs +52 -0
  311. package/esm2022/lib/directives/babylon-galleries/babylon-light-gallery.directive.mjs +107 -0
  312. package/esm2022/lib/directives/babylon-hobble-effect/babylon-hobble-effect.directive.mjs +60 -0
  313. package/esm2022/lib/directives/babylon-pagination/babylon-pagination.directive.mjs +127 -0
  314. package/esm2022/lib/directives/babylon-sliders/babylon-custom-slider.directive.mjs +62 -0
  315. package/esm2022/lib/directives/babylon-sliders/babylon-hotels-slider.directive.mjs +107 -0
  316. package/esm2022/lib/directives/babylon-sliders/babylon-sliders.directive.mjs +438 -0
  317. package/esm2022/lib/directives/babylon-sliders/babylon-swiper-slider.directive.mjs +107 -0
  318. package/esm2022/lib/directives/babylon-sliders/babylon-swiper.directive.mjs +125 -0
  319. package/esm2022/lib/directives/data-background/data-background.directive.mjs +32 -0
  320. package/esm2022/lib/directives/link-type/link-type.directive.mjs +288 -0
  321. package/esm2022/lib/directives/scrolls/scroll-to.directive.mjs +195 -0
  322. package/esm2022/lib/directives/scrolls/scroll-up.directive.mjs +27 -0
  323. package/esm2022/lib/directives/scrolls/show-only-top.directive.mjs +110 -0
  324. package/esm2022/lib/directives/sliders/slick-init.directive.mjs +38 -11
  325. package/esm2022/lib/directives/utils/sticky-avoid-footer.directive.mjs +9 -3
  326. package/esm2022/lib/interfaces/babylon-advantages-item.interface.mjs +2 -0
  327. package/esm2022/lib/interfaces/babylon-button.interface.mjs +2 -0
  328. package/esm2022/lib/interfaces/babylon-consult-type.interface.mjs +2 -0
  329. package/esm2022/lib/interfaces/babylon-dropdown.interface.mjs +2 -0
  330. package/esm2022/lib/interfaces/babylon-equipments-item.interface.mjs +2 -0
  331. package/esm2022/lib/interfaces/babylon-global-icon.interface.mjs +2 -0
  332. package/esm2022/lib/interfaces/babylon-global.interface.mjs +2 -0
  333. package/esm2022/lib/interfaces/babylon-icon.interface.mjs +2 -0
  334. package/esm2022/lib/interfaces/babylon-image.interface.mjs +2 -0
  335. package/esm2022/lib/interfaces/babylon-input.interface.mjs +2 -0
  336. package/esm2022/lib/interfaces/babylon-item.interface.mjs +2 -0
  337. package/esm2022/lib/interfaces/babylon-menu-button.interface.mjs +2 -0
  338. package/esm2022/lib/interfaces/babylon-menu-info.interface.mjs +2 -0
  339. package/esm2022/lib/interfaces/babylon-multimedia.interface.mjs +2 -0
  340. package/esm2022/lib/interfaces/babylon-page-config.interface.mjs +2 -0
  341. package/esm2022/lib/interfaces/babylon-site-config.interface.mjs +2 -0
  342. package/esm2022/lib/interfaces/babylon-tags.interface.mjs +2 -0
  343. package/esm2022/lib/interfaces/babylon-text-info.interface.mjs +2 -0
  344. package/esm2022/lib/interfaces/babylon-texts-colors.interface.mjs +2 -0
  345. package/esm2022/lib/interfaces/babylon-texts.interface.mjs +2 -0
  346. package/esm2022/lib/interfaces/babylon-video.interface.mjs +2 -0
  347. package/esm2022/lib/interfaces/index.mjs +16 -0
  348. package/esm2022/lib/pipes/babylon-clean-phone.pipe.mjs +14 -0
  349. package/esm2022/lib/pipes/babylon-currency.pipe.mjs +29 -0
  350. package/esm2022/lib/services/color-panel.service.mjs +316 -0
  351. package/esm2022/lib/services/engine-state.service.mjs +24 -0
  352. package/esm2022/lib/services/index.mjs +3 -1
  353. package/esm2022/lib/services/mapper/index.mjs +3 -0
  354. package/esm2022/lib/services/mapper/mapper.service.mjs +2665 -0
  355. package/esm2022/lib/services/mapper/mapper.service.token.mjs +3 -0
  356. package/esm2022/lib/services/modals-service/index.mjs +2 -0
  357. package/esm2022/lib/services/modals-service/modals.service.mjs +77 -0
  358. package/esm2022/lib/services/screen-sizer/screen-sizer.service.mjs +46 -35
  359. package/esm2022/lib/utils/complex-links.token.mjs +6 -0
  360. package/esm2022/lib/utils/index.mjs +2 -0
  361. package/esm2022/lib/utils/utils.mjs +153 -0
  362. package/esm2022/public-api.mjs +11 -117
  363. package/fesm2022/ctt-babylon.mjs +10717 -2794
  364. package/fesm2022/ctt-babylon.mjs.map +1 -1
  365. package/lib/Enum/buttons-type.enum.d.ts +4 -0
  366. package/lib/Enum/index.d.ts +2 -0
  367. package/lib/Enum/logo-type.enum.d.ts +8 -0
  368. package/lib/Enum/services.enum.d.ts +6 -0
  369. package/lib/Enum/views.enum.d.ts +3 -0
  370. package/lib/components/core/babylon-404/babylon-404.component.d.ts +8 -1
  371. package/lib/components/core/babylon-404/babylon-404.interface.d.ts +9 -0
  372. package/lib/components/core/babylon-404/index.d.ts +2 -0
  373. package/lib/components/core/babylon-action-banner/babylon-action-banner.component.d.ts +14 -0
  374. package/lib/components/core/babylon-action-banner/babylon-action-banner.interface.d.ts +9 -0
  375. package/lib/components/core/babylon-action-banner/index.d.ts +2 -0
  376. package/lib/components/core/babylon-advantages/babylon-advantages-info.interface.d.ts +5 -0
  377. package/lib/components/core/babylon-advantages/babylon-advantages.component.d.ts +14 -1
  378. package/lib/components/core/babylon-advantages/babylon-advantages.interface.d.ts +13 -0
  379. package/lib/components/core/babylon-advantages/index.d.ts +3 -0
  380. package/lib/components/core/babylon-advantages-v2/babylon-advantages-v2.component.d.ts +5 -1
  381. package/lib/components/core/babylon-advantages-v2/index.d.ts +1 -0
  382. package/lib/components/core/babylon-av-c4-img-text/babylon-av-c4-img-text.component.d.ts +9 -0
  383. package/lib/components/core/babylon-av-c4-img-text/index.d.ts +1 -0
  384. package/lib/components/core/babylon-banner-gallery/babylon-banner-gallery.component.d.ts +11 -1
  385. package/lib/components/core/babylon-banner-gallery/babylon-banner-gallery.interface.d.ts +9 -0
  386. package/lib/components/core/babylon-banner-gallery/index.d.ts +2 -0
  387. package/lib/components/core/babylon-banner-info/babylon-banner-info.component.d.ts +25 -2
  388. package/lib/components/core/babylon-banner-info/babylon-banner-info.interface.d.ts +10 -0
  389. package/lib/components/core/babylon-banner-info/index.d.ts +2 -0
  390. package/lib/components/core/babylon-banner-newsletter/babylon-banner-newsletter.component.d.ts +16 -1
  391. package/lib/components/core/babylon-banner-newsletter/babylon-banner-newsletter.interface.d.ts +9 -0
  392. package/lib/components/core/babylon-banner-newsletter/index.d.ts +2 -0
  393. package/lib/components/core/babylon-blog-details/babylon-blog-details.component.d.ts +39 -1
  394. package/lib/components/core/babylon-blog-details/babylon-blog-details.interface.d.ts +24 -0
  395. package/lib/components/core/babylon-blog-details/index.d.ts +2 -0
  396. package/lib/components/core/babylon-blog-list/babylon-blog-list.component.d.ts +47 -2
  397. package/lib/components/core/babylon-blog-list/babylon-blog-list.interface.d.ts +18 -0
  398. package/lib/components/core/babylon-blog-list/index.d.ts +2 -0
  399. package/lib/components/core/babylon-breadcrumb/babylon-breadcrumb.component.d.ts +4 -1
  400. package/lib/components/core/babylon-breadcrumb/babylon-breadcrumb.interface.d.ts +4 -0
  401. package/lib/components/core/babylon-breadcrumb/index.d.ts +2 -0
  402. package/lib/components/core/babylon-color-picker/babylon-color-picker.component.d.ts +57 -0
  403. package/lib/components/core/babylon-color-picker/index.d.ts +1 -0
  404. package/lib/components/core/babylon-comingsoon/babylon-comingsoon.component.d.ts +12 -1
  405. package/lib/components/core/babylon-comingsoon/babylon-comingsoon.interface.d.ts +11 -0
  406. package/lib/components/core/babylon-comingsoon/index.d.ts +2 -0
  407. package/lib/components/core/babylon-contact-address/babylon-contact-address.component.d.ts +22 -0
  408. package/lib/components/core/babylon-contact-address/babylon-contact-address.interface.d.ts +4 -0
  409. package/lib/components/core/babylon-contact-address/index.d.ts +2 -0
  410. package/lib/components/core/babylon-contact-form/babylon-contact-form.component.d.ts +35 -6
  411. package/lib/components/core/babylon-contact-form/babylon-contact-form.interface.d.ts +15 -0
  412. package/lib/components/core/babylon-contact-form/index.d.ts +2 -0
  413. package/lib/components/core/babylon-contact-how/babylon-contact-how.component.d.ts +14 -2
  414. package/lib/components/core/babylon-contact-how/babylon-contact-how.interface.d.ts +6 -0
  415. package/lib/components/core/babylon-contact-how/index.d.ts +2 -0
  416. package/lib/components/core/babylon-contact-map/babylon-contact-map.component.d.ts +16 -2
  417. package/lib/components/core/babylon-contact-map/babylon-contact-map.interface.d.ts +8 -0
  418. package/lib/components/core/babylon-contact-map/index.d.ts +2 -0
  419. package/lib/components/core/babylon-container-text-l2/babylon-container-text-l2.component.d.ts +3 -1
  420. package/lib/components/core/babylon-container-text-l2/index.d.ts +1 -0
  421. package/lib/components/core/babylon-engine/babylon-engine.component.d.ts +73 -11
  422. package/lib/components/core/babylon-engine/babylon-engine.interface.d.ts +24 -0
  423. package/lib/components/core/babylon-engine/index.d.ts +2 -0
  424. package/lib/components/core/babylon-engine-modal/babylon-engine-modal.component.d.ts +60 -16
  425. package/lib/components/core/babylon-engine-modal/babylon-engine-modal.interface.d.ts +22 -0
  426. package/lib/components/core/babylon-engine-modal/index.d.ts +2 -0
  427. package/lib/components/core/babylon-external-script/babylon-external-script.component.d.ts +21 -0
  428. package/lib/components/core/babylon-external-script/babylon-external-script.interface.d.ts +5 -0
  429. package/lib/components/core/babylon-external-script/index.d.ts +2 -0
  430. package/lib/components/core/babylon-faq/babylon-faq.component.d.ts +12 -1
  431. package/lib/components/core/babylon-faq/babylon-faq.interface.d.ts +8 -0
  432. package/lib/components/core/babylon-faq/index.d.ts +2 -0
  433. package/lib/components/core/babylon-faq-v2/babylon-faq-v2.component.d.ts +10 -1
  434. package/lib/components/core/babylon-faq-v2/index.d.ts +1 -0
  435. package/lib/components/core/babylon-feature-pills-number/babylon-feature-pills-number.component.d.ts +4 -1
  436. package/lib/components/core/babylon-feature-pills-number/index.d.ts +1 -0
  437. package/lib/components/core/babylon-features-slider/babylon-features-slider.component.d.ts +18 -2
  438. package/lib/components/core/babylon-features-slider/babylon-features-slider.interface.d.ts +8 -0
  439. package/lib/components/core/babylon-features-slider/index.d.ts +2 -0
  440. package/lib/components/core/babylon-filter-modal/babylon-filter-modal.component.d.ts +8 -3
  441. package/lib/components/core/babylon-filter-modal/index.d.ts +1 -0
  442. package/lib/components/core/babylon-floating-buttons/babylon-floating-buttons.component.d.ts +39 -0
  443. package/lib/components/core/babylon-floating-buttons/babylon-floating-buttons.interface.d.ts +8 -0
  444. package/lib/components/core/babylon-floating-buttons/index.d.ts +2 -0
  445. package/lib/components/core/babylon-footer-contact/babylon-footer-contact.component.d.ts +24 -1
  446. package/lib/components/core/babylon-footer-contact/babylon-footer-contact.interface.d.ts +14 -0
  447. package/lib/components/core/babylon-footer-contact/index.d.ts +2 -0
  448. package/lib/components/core/babylon-footer-links/babylon-footer-links.component.d.ts +5 -1
  449. package/lib/components/core/babylon-footer-links/babylon-footer-links.interface.d.ts +6 -0
  450. package/lib/components/core/babylon-footer-links/index.d.ts +2 -0
  451. package/lib/components/core/babylon-footer-logos/babylon-footer-logos.component.d.ts +11 -1
  452. package/lib/components/core/babylon-footer-logos/babylon-footer-logos.interface.d.ts +7 -0
  453. package/lib/components/core/babylon-footer-logos/index.d.ts +2 -0
  454. package/lib/components/core/babylon-footer-social/babylon-footer-social.component.d.ts +5 -1
  455. package/lib/components/core/babylon-footer-social/babylon-footer-social.interface.d.ts +6 -0
  456. package/lib/components/core/babylon-footer-social/index.d.ts +2 -0
  457. package/lib/components/core/babylon-gallery/babylon-gallery.component.d.ts +34 -8
  458. package/lib/components/core/babylon-gallery/babylon-gallery.interface.d.ts +12 -0
  459. package/lib/components/core/babylon-gallery/index.d.ts +2 -0
  460. package/lib/components/core/babylon-global-modal/babylon-global-modal.component.d.ts +31 -0
  461. package/lib/components/core/babylon-global-modal/babylon-global-modal.interface.d.ts +8 -0
  462. package/lib/components/core/babylon-global-modal/index.d.ts +2 -0
  463. package/lib/components/core/babylon-grid-gallery/babylon-grid-gallery.component.d.ts +19 -2
  464. package/lib/components/core/babylon-grid-gallery/babylon-grid-gallery.interface.d.ts +8 -0
  465. package/lib/components/core/babylon-grid-gallery/index.d.ts +2 -0
  466. package/lib/components/core/babylon-guests-popup/babylon-guests-popup.component.d.ts +24 -7
  467. package/lib/components/core/babylon-guests-popup/babylon-guests-popup.interface.d.ts +11 -0
  468. package/lib/components/core/babylon-guests-popup/index.d.ts +2 -0
  469. package/lib/components/core/babylon-head-intro/babylon-head-intro.component.d.ts +9 -1
  470. package/lib/components/core/babylon-head-intro/babylon-head-intro.interface.d.ts +10 -0
  471. package/lib/components/core/babylon-head-intro/index.d.ts +2 -0
  472. package/lib/components/core/babylon-header-book-show/babylon-header-book-show.component.d.ts +35 -7
  473. package/lib/components/core/babylon-header-book-show/babylon-header-book-show.interface.d.ts +20 -0
  474. package/lib/components/core/babylon-header-book-show/index.d.ts +2 -0
  475. package/lib/components/core/babylon-header-clear/babylon-header-clear.component.d.ts +34 -9
  476. package/lib/components/core/babylon-header-clear/babylon-header-clear.interface.d.ts +22 -0
  477. package/lib/components/core/babylon-header-clear/index.d.ts +2 -0
  478. package/lib/components/core/babylon-header-menu-center/babylon-header-menu-center.component.d.ts +33 -8
  479. package/lib/components/core/babylon-header-menu-center/babylon-header-menu-center.interface.d.ts +19 -0
  480. package/lib/components/core/babylon-header-menu-center/index.d.ts +2 -0
  481. package/lib/components/core/babylon-header-menu-logo-center/babylon-header-menu-logo-center.component.d.ts +40 -0
  482. package/lib/components/core/babylon-header-menu-logo-center/babylon-header-menu-logo-center.interface.d.ts +23 -0
  483. package/lib/components/core/babylon-header-menu-logo-center/index.d.ts +2 -0
  484. package/lib/components/core/babylon-header-menu-show/babylon-header-menu-show.component.d.ts +29 -8
  485. package/lib/components/core/babylon-header-menu-show/babylon-header-menu-show.interface.d.ts +18 -0
  486. package/lib/components/core/babylon-header-menu-show/index.d.ts +2 -0
  487. package/lib/components/core/babylon-header-mobile/babylon-header-mobile.component.d.ts +53 -0
  488. package/lib/components/core/babylon-header-mobile/babylon-header-mobile.interface.d.ts +26 -0
  489. package/lib/components/core/babylon-header-mobile/index.d.ts +2 -0
  490. package/lib/components/core/babylon-hotels-list/babylon-hotel.interface.d.ts +18 -0
  491. package/lib/components/core/babylon-hotels-list/babylon-hotels-list.component.d.ts +5 -1
  492. package/lib/components/core/babylon-hotels-list/babylon-hotels-list.interface.d.ts +6 -0
  493. package/lib/components/core/babylon-hotels-list/index.d.ts +3 -0
  494. package/lib/components/core/babylon-hotels-slider/babylon-hotels-slider.component.d.ts +5 -1
  495. package/lib/components/core/babylon-hotels-slider/babylon-hotels-slider.interface.d.ts +6 -0
  496. package/lib/components/core/babylon-hotels-slider/index.d.ts +2 -0
  497. package/lib/components/core/babylon-info-big/babylon-info-big.component.d.ts +9 -1
  498. package/lib/components/core/babylon-info-big/babylon-info-big.interface.d.ts +10 -0
  499. package/lib/components/core/babylon-info-big/index.d.ts +2 -0
  500. package/lib/components/core/babylon-info-big-v3/babylon-info-big-v3.component.d.ts +5 -1
  501. package/lib/components/core/babylon-info-big-v3/index.d.ts +1 -0
  502. package/lib/components/core/babylon-info-grid/babylon-info-grid.component.d.ts +22 -3
  503. package/lib/components/core/babylon-info-grid/babylon-info-grid.interface.d.ts +9 -0
  504. package/lib/components/core/babylon-info-grid/index.d.ts +2 -0
  505. package/lib/components/core/babylon-info-img/babylon-info-img.component.d.ts +40 -2
  506. package/lib/components/core/babylon-info-img/babylon-info-img.interface.d.ts +27 -0
  507. package/lib/components/core/babylon-info-img/index.d.ts +2 -0
  508. package/lib/components/core/babylon-info-img-slider/babylon-info-img-slider.component.d.ts +33 -0
  509. package/lib/components/core/babylon-info-img-slider/babylon-info-img-slider.interface.d.ts +11 -0
  510. package/lib/components/core/babylon-info-img-slider/index.d.ts +2 -0
  511. package/lib/components/core/babylon-info-intro/babylon-info-intro.component.d.ts +26 -1
  512. package/lib/components/core/babylon-info-intro/babylon-info-intro.interface.d.ts +19 -0
  513. package/lib/components/core/babylon-info-intro/index.d.ts +2 -0
  514. package/lib/components/core/babylon-info-show-img/babylon-info-show-img.component.d.ts +3 -1
  515. package/lib/components/core/babylon-info-show-img/index.d.ts +1 -0
  516. package/lib/components/core/babylon-info-zig-zag/babylon-info-zig-zag.component.d.ts +29 -1
  517. package/lib/components/core/babylon-info-zig-zag/babylon-info-zig-zag.interface.d.ts +12 -0
  518. package/lib/components/core/babylon-info-zig-zag/index.d.ts +2 -0
  519. package/lib/components/core/babylon-info-zig-zag-counter/babylon-info-zig-zag-counter.component.d.ts +47 -0
  520. package/lib/components/core/babylon-info-zig-zag-counter/babylon-info-zig-zag-counter.interface.d.ts +14 -0
  521. package/lib/components/core/babylon-info-zig-zag-counter/index.d.ts +2 -0
  522. package/lib/components/core/babylon-info-zigzag-v2/babylon-info-zigzag-v2.component.d.ts +16 -1
  523. package/lib/components/core/babylon-info-zigzag-v2/babylon-info-zigzag-v2.interface.d.ts +5 -0
  524. package/lib/components/core/babylon-info-zigzag-v2/index.d.ts +2 -0
  525. package/lib/components/core/babylon-info2col-img/babylon-info2col-img.component.d.ts +21 -0
  526. package/lib/components/core/babylon-info2col-img/babylon-info2col-img.interface.d.ts +12 -0
  527. package/lib/components/core/babylon-info2col-img/index.d.ts +2 -0
  528. package/lib/components/core/babylon-info2img/babylon-info2img.component.d.ts +14 -1
  529. package/lib/components/core/babylon-info2img/babylon-info2img.interface.d.ts +11 -0
  530. package/lib/components/core/babylon-info2img/index.d.ts +2 -0
  531. package/lib/components/core/babylon-info2img-big/babylon-info2img-big.component.d.ts +16 -1
  532. package/lib/components/core/babylon-info2img-big/babylon-info2img-big.interface.d.ts +14 -0
  533. package/lib/components/core/babylon-info2img-big/index.d.ts +2 -0
  534. package/lib/components/core/babylon-info3img/babylon-info3img.component.d.ts +9 -1
  535. package/lib/components/core/babylon-info3img/index.d.ts +1 -0
  536. package/lib/components/core/babylon-info4img/babylon-info4img.component.d.ts +11 -1
  537. package/lib/components/core/babylon-info4img/babylon-info4img.interface.d.ts +12 -0
  538. package/lib/components/core/babylon-info4img/index.d.ts +2 -0
  539. package/lib/components/core/babylon-items-grid/babylon-items-grid.component.d.ts +14 -1
  540. package/lib/components/core/babylon-items-grid/babylon-items-grid.interface.d.ts +8 -0
  541. package/lib/components/core/babylon-items-grid/index.d.ts +2 -0
  542. package/lib/components/core/babylon-language-modal/babylon-language-modal.component.d.ts +12 -5
  543. package/lib/components/core/babylon-language-modal/babylon-language-modal.interface.d.ts +7 -0
  544. package/lib/components/core/babylon-language-modal/index.d.ts +2 -0
  545. package/lib/components/core/babylon-legal/babylon-legal.component.d.ts +9 -1
  546. package/lib/components/core/babylon-legal/babylon-legal.interface.d.ts +7 -0
  547. package/lib/components/core/babylon-legal/index.d.ts +2 -0
  548. package/lib/components/core/babylon-list-c3-img-txt/babylon-list-c3-img-txt.component.d.ts +5 -1
  549. package/lib/components/core/babylon-list-c3-img-txt/index.d.ts +1 -0
  550. package/lib/components/core/babylon-list-grid/babylon-list-grid.component.d.ts +17 -1
  551. package/lib/components/core/babylon-list-grid/babylon-list-grid.interface.d.ts +8 -0
  552. package/lib/components/core/babylon-list-grid/index.d.ts +2 -0
  553. package/lib/components/core/babylon-modal-menu/babylon-modal-menu.component.d.ts +45 -0
  554. package/lib/components/core/babylon-modal-multiple-motors/babylon-modal-multiple-motors.component.d.ts +18 -0
  555. package/lib/components/core/babylon-modal-multiple-motors/babylon-modal-multiple-motors.interface.d.ts +8 -0
  556. package/lib/components/core/babylon-modal-multiple-motors/index.d.ts +2 -0
  557. package/lib/components/core/babylon-modal-popup/babylon-modal-popup.component.d.ts +25 -0
  558. package/lib/components/core/babylon-modal-popup/babylon-modal-popup.interface.d.ts +9 -0
  559. package/lib/components/core/babylon-modal-popup/index.d.ts +2 -0
  560. package/lib/components/core/babylon-newsletter/babylon-newsletter.component.d.ts +19 -3
  561. package/lib/components/core/babylon-newsletter/babylon-newsletter.interface.d.ts +9 -0
  562. package/lib/components/core/babylon-newsletter/index.d.ts +2 -0
  563. package/lib/components/core/babylon-offer-detail/babylon-offer-detail.component.d.ts +16 -1
  564. package/lib/components/core/babylon-offer-detail/babylon-offer-detail.interface.d.ts +17 -0
  565. package/lib/components/core/babylon-offer-detail/index.d.ts +2 -0
  566. package/lib/components/core/babylon-offer-popup/babylon-offer-popup.component.d.ts +18 -5
  567. package/lib/components/core/babylon-offer-popup/babylon-offer-popup.interface.d.ts +7 -0
  568. package/lib/components/core/babylon-offer-popup/index.d.ts +2 -0
  569. package/lib/components/core/babylon-offer-popupV2/babylon-offer-popup-v2.component.d.ts +21 -0
  570. package/lib/components/core/babylon-offer-popupV2/babylon-offer-popup-v2.interface.d.ts +9 -0
  571. package/lib/components/core/babylon-offer-popupV2/index.d.ts +2 -0
  572. package/lib/components/core/babylon-offer-slider/babylon-offer-slider.component.d.ts +6 -1
  573. package/lib/components/core/babylon-offer-slider/babylon-offer-slider.interface.d.ts +7 -0
  574. package/lib/components/core/babylon-offer-slider/babylon-offer.interface.d.ts +18 -0
  575. package/lib/components/core/babylon-offer-slider/index.d.ts +3 -0
  576. package/lib/components/core/babylon-offers-list/babylon-offers-list.component.d.ts +33 -2
  577. package/lib/components/core/babylon-offers-list/babylon-offers-list.interface.d.ts +14 -0
  578. package/lib/components/core/babylon-offers-list/index.d.ts +2 -0
  579. package/lib/components/core/babylon-offers-slider/babylon-offers-slider.component.d.ts +5 -1
  580. package/lib/components/core/babylon-offers-slider/index.d.ts +1 -0
  581. package/lib/components/core/babylon-preload/babylon-preload.component.d.ts +5 -1
  582. package/lib/components/core/babylon-preload/index.d.ts +1 -0
  583. package/lib/components/core/babylon-press-list/babylon-press-list.component.d.ts +17 -0
  584. package/lib/components/core/babylon-press-list/babylon-press-list.interface.d.ts +8 -0
  585. package/lib/components/core/babylon-press-list/index.d.ts +2 -0
  586. package/lib/components/core/babylon-room-details/babylon-room-detail.interface.d.ts +20 -0
  587. package/lib/components/core/babylon-room-details/babylon-room-details.component.d.ts +13 -1
  588. package/lib/components/core/babylon-room-details/index.d.ts +2 -0
  589. package/lib/components/core/babylon-rooms-cols/babylon-rooms-cols.component.d.ts +39 -1
  590. package/lib/components/core/babylon-rooms-cols/babylon-rooms-cols.interface.d.ts +10 -0
  591. package/lib/components/core/babylon-rooms-cols/index.d.ts +2 -0
  592. package/lib/components/core/babylon-rooms-grid/babylon-rooms-grid.component.d.ts +10 -1
  593. package/lib/components/core/babylon-rooms-grid/babylon-rooms-grid.interface.d.ts +8 -0
  594. package/lib/components/core/babylon-rooms-grid/index.d.ts +2 -0
  595. package/lib/components/core/babylon-rooms-list/babylon-rooms-list.component.d.ts +27 -1
  596. package/lib/components/core/babylon-rooms-list/babylon-rooms-list.interface.d.ts +6 -0
  597. package/lib/components/core/babylon-rooms-list/index.d.ts +2 -0
  598. package/lib/components/core/babylon-rooms-slider/babylon-room.interface.d.ts +15 -0
  599. package/lib/components/core/babylon-rooms-slider/babylon-rooms-slider.component.d.ts +6 -1
  600. package/lib/components/core/babylon-rooms-slider/babylon-rooms-slider.interface.d.ts +6 -0
  601. package/lib/components/core/babylon-rooms-slider/babylon-rooms-text-info.interface.d.ts +8 -0
  602. package/lib/components/core/babylon-rooms-slider/index.d.ts +4 -0
  603. package/lib/components/core/babylon-services-slider/babylon-service-slider.interface.d.ts +6 -0
  604. package/lib/components/core/babylon-services-slider/babylon-services-slider.component.d.ts +7 -1
  605. package/lib/components/core/babylon-services-slider/index.d.ts +2 -0
  606. package/lib/components/core/babylon-sli-c1-img-text/babylon-sli-c1-img-text.component.d.ts +5 -0
  607. package/lib/components/core/babylon-sli-c1-img-text/index.d.ts +1 -0
  608. package/lib/components/core/babylon-sli-c5-img-txt/babylon-sli-c5-img-txt.component.d.ts +5 -0
  609. package/lib/components/core/babylon-sli-c5-img-txt/index.d.ts +1 -0
  610. package/lib/components/core/babylon-slider-img-static/babylon-slider-img-static.component.d.ts +6 -1
  611. package/lib/components/core/babylon-slider-img-static/index.d.ts +1 -0
  612. package/lib/components/core/babylon-slider-img-static-v2/babylon-slider-img-static-v2.component.d.ts +6 -1
  613. package/lib/components/core/babylon-slider-img-static-v2/index.d.ts +1 -0
  614. package/lib/components/core/babylon-slider-img-video/babylon-slider-img-video.component.d.ts +9 -1
  615. package/lib/components/core/babylon-slider-img-video/index.d.ts +1 -0
  616. package/lib/components/core/babylon-slider2col/babylon-slider2col.component.d.ts +22 -1
  617. package/lib/components/core/babylon-slider2col/index.d.ts +1 -0
  618. package/lib/components/core/babylon-slider2items/babylon-slider2items.component.d.ts +5 -1
  619. package/lib/components/core/babylon-slider2items/babylon-slider2items.interface.d.ts +6 -0
  620. package/lib/components/core/babylon-slider2items/index.d.ts +2 -0
  621. package/lib/components/core/babylon-slider3col/babylon-slider3col.component.d.ts +23 -0
  622. package/lib/components/core/babylon-slider3col/index.d.ts +1 -0
  623. package/lib/components/core/babylon-slider3col-clear/babylon-slider3col-clear.component.d.ts +5 -0
  624. package/lib/components/core/babylon-slider3col-clear/index.d.ts +1 -0
  625. package/lib/components/core/babylon-slider3items/babylon-slider3items.component.d.ts +15 -1
  626. package/lib/components/core/babylon-slider3items/babylon-slider3items.interface.d.ts +6 -0
  627. package/lib/components/core/babylon-slider3items/index.d.ts +2 -0
  628. package/lib/components/core/babylon-slider4col/babylon-slider4col.component.d.ts +15 -1
  629. package/lib/components/core/babylon-slider4col/index.d.ts +1 -0
  630. package/lib/components/core/babylon-social-bar/babylon-social-bar.component.d.ts +5 -1
  631. package/lib/components/core/babylon-social-bar/index.d.ts +1 -0
  632. package/lib/components/core/babylon-static-footer/babylon-static-footer.component.d.ts +55 -2
  633. package/lib/components/core/babylon-static-footer/babylon-static-footer.interface.d.ts +29 -0
  634. package/lib/components/core/babylon-static-footer/index.d.ts +2 -0
  635. package/lib/components/core/babylon-static-footer-v2/babylon-static-footer-v2.component.d.ts +24 -3
  636. package/lib/components/core/babylon-static-footer-v2/babylon-static-footer-v2.interface.d.ts +18 -0
  637. package/lib/components/core/babylon-static-footer-v2/index.d.ts +2 -0
  638. package/lib/components/core/babylon-submenu-hotel/babylon-submenu-hotel.component.d.ts +13 -2
  639. package/lib/components/core/babylon-submenu-hotel/babylon-submenu-hotel.interface.d.ts +5 -0
  640. package/lib/components/core/babylon-submenu-hotel/index.d.ts +2 -0
  641. package/lib/components/core/babylon-thanks/babylon-thanks.component.d.ts +7 -1
  642. package/lib/components/core/babylon-thanks/babylon-thanks.interface.d.ts +7 -0
  643. package/lib/components/core/babylon-thanks/index.d.ts +2 -0
  644. package/lib/components/core/babylon-top-simple-banner/babylon-top-simple-banner.component.d.ts +6 -2
  645. package/lib/components/core/babylon-top-simple-banner/index.d.ts +1 -0
  646. package/lib/components/core/babylon-top-slider/babylon-top-slider-item.interface.d.ts +9 -0
  647. package/lib/components/core/babylon-top-slider/babylon-top-slider.component.d.ts +37 -2
  648. package/lib/components/core/babylon-top-slider/babylon-top-slider.interface.d.ts +12 -0
  649. package/lib/components/core/babylon-top-slider/index.d.ts +3 -0
  650. package/lib/components/core/babylon-top-slider-thumbs/babylon-top-slider-thumbs.component.d.ts +12 -2
  651. package/lib/components/core/babylon-top-slider-thumbs/babylon-top-slider-thumbs.interface.d.ts +8 -0
  652. package/lib/components/core/babylon-top-slider-thumbs/index.d.ts +2 -0
  653. package/lib/components/core/babylon-top-slider-v2/babylon-top-slider-v2-item.interface.d.ts +7 -0
  654. package/lib/components/core/babylon-top-slider-v2/babylon-top-slider-v2.component.d.ts +10 -1
  655. package/lib/components/core/babylon-top-slider-v2/babylon-top-slider-v2.interface.d.ts +8 -0
  656. package/lib/components/core/babylon-top-slider-v2/index.d.ts +3 -0
  657. package/lib/components/core/babylon-top-slider-video/babylon-top-slider-video.component.d.ts +34 -2
  658. package/lib/components/core/babylon-top-slider-video/babylon-top-slider-video.interface.d.ts +9 -0
  659. package/lib/components/core/babylon-top-slider-video/babylon-video-source.interface.d.ts +5 -0
  660. package/lib/components/core/babylon-top-slider-video/index.d.ts +3 -0
  661. package/lib/components/core/babylon-top-slider-video-v2/babylon-top-slider-video-v2.component.d.ts +3 -1
  662. package/lib/components/core/babylon-top-slider-video-v2/index.d.ts +1 -0
  663. package/lib/components/core/babylon-webmap/babylon-webmap.component.d.ts +11 -1
  664. package/lib/components/core/babylon-webmap/babylon-webmap.interface.d.ts +9 -0
  665. package/lib/components/core/babylon-webmap/index.d.ts +2 -0
  666. package/lib/components/core/index.d.ts +103 -0
  667. package/lib/components/shared/babylon-dynamic-heading/babylon-dynamic-heading.component.d.ts +33 -0
  668. package/lib/components/shared/babylon-dynamic-heading/babylon-dynamic-heading.interface.d.ts +5 -0
  669. package/lib/components/shared/babylon-dynamic-heading/index.d.ts +2 -0
  670. package/lib/components/shared/babylon-search/babylon-search.component.d.ts +30 -0
  671. package/lib/components/shared/babylon-search/index.d.ts +1 -0
  672. package/lib/components/shared/index.d.ts +1 -0
  673. package/lib/directives/babylon-background-strip/babylon-background-strip.directive.d.ts +17 -0
  674. package/lib/directives/babylon-customs/babylon-custom-mouse-pointer.directive.d.ts +12 -0
  675. package/lib/directives/babylon-galleries/babylon-light-gallery.directive.d.ts +18 -0
  676. package/lib/directives/babylon-hobble-effect/babylon-hobble-effect.directive.d.ts +15 -0
  677. package/lib/directives/babylon-pagination/babylon-pagination.directive.d.ts +39 -0
  678. package/lib/directives/babylon-sliders/babylon-custom-slider.directive.d.ts +13 -0
  679. package/{directives → lib/directives/babylon-sliders}/babylon-hotels-slider.directive.d.ts +2 -1
  680. package/lib/directives/babylon-sliders/babylon-sliders.directive.d.ts +36 -0
  681. package/lib/directives/babylon-sliders/babylon-swiper-slider.directive.d.ts +14 -0
  682. package/lib/directives/babylon-sliders/babylon-swiper.directive.d.ts +17 -0
  683. package/lib/directives/data-background/data-background.directive.d.ts +11 -0
  684. package/lib/directives/link-type/link-type.directive.d.ts +40 -0
  685. package/lib/directives/{scroll → scrolls}/scroll-to.directive.d.ts +1 -1
  686. package/lib/directives/scrolls/scroll-up.directive.d.ts +7 -0
  687. package/lib/directives/{scroll → scrolls}/show-only-top.directive.d.ts +3 -2
  688. package/lib/directives/utils/sticky-avoid-footer.directive.d.ts +2 -1
  689. package/lib/interfaces/babylon-advantages-item.interface.d.ts +5 -0
  690. package/lib/interfaces/babylon-button.interface.d.ts +9 -0
  691. package/lib/interfaces/babylon-consult-type.interface.d.ts +10 -0
  692. package/lib/interfaces/babylon-dropdown.interface.d.ts +9 -0
  693. package/lib/interfaces/babylon-equipments-item.interface.d.ts +5 -0
  694. package/lib/interfaces/babylon-global-icon.interface.d.ts +4 -0
  695. package/lib/interfaces/babylon-global.interface.d.ts +22 -0
  696. package/lib/interfaces/babylon-icon.interface.d.ts +6 -0
  697. package/lib/interfaces/babylon-image.interface.d.ts +16 -0
  698. package/lib/interfaces/babylon-input.interface.d.ts +12 -0
  699. package/lib/interfaces/babylon-item.interface.d.ts +12 -0
  700. package/lib/interfaces/babylon-menu-button.interface.d.ts +10 -0
  701. package/lib/interfaces/babylon-menu-info.interface.d.ts +27 -0
  702. package/lib/interfaces/babylon-multimedia.interface.d.ts +8 -0
  703. package/lib/interfaces/babylon-page-config.interface.d.ts +43 -0
  704. package/lib/interfaces/babylon-site-config.interface.d.ts +57 -0
  705. package/lib/interfaces/babylon-tags.interface.d.ts +21 -0
  706. package/lib/interfaces/babylon-text-info.interface.d.ts +21 -0
  707. package/lib/interfaces/babylon-texts-colors.interface.d.ts +20 -0
  708. package/lib/interfaces/babylon-texts.interface.d.ts +5 -0
  709. package/lib/interfaces/babylon-video.interface.d.ts +5 -0
  710. package/lib/interfaces/index.d.ts +15 -0
  711. package/lib/pipes/babylon-clean-phone.pipe.d.ts +7 -0
  712. package/lib/pipes/babylon-currency.pipe.d.ts +7 -0
  713. package/lib/services/color-panel.service.d.ts +41 -0
  714. package/lib/services/engine-state.service.d.ts +10 -0
  715. package/lib/services/index.d.ts +2 -0
  716. package/lib/services/mapper/index.d.ts +2 -0
  717. package/lib/services/mapper/mapper.service.d.ts +144 -0
  718. package/lib/services/mapper/mapper.service.token.d.ts +2 -0
  719. package/lib/services/modals-service/index.d.ts +1 -0
  720. package/lib/services/modals-service/modals.service.d.ts +15 -0
  721. package/lib/services/screen-sizer/screen-sizer.service.d.ts +2 -0
  722. package/lib/styles/styles/babylon/_spacing.css +1 -0
  723. package/lib/styles/styles/babylon/_spacing.scss +72 -0
  724. package/lib/styles/styles/babylon/common.css +1 -0
  725. package/lib/styles/styles/babylon/common.scss +1830 -0
  726. package/lib/styles/styles/babylon/globals.css +1 -0
  727. package/lib/styles/styles/babylon/globals.scss +1129 -0
  728. package/lib/styles/styles/babylon/mixins.css +1 -0
  729. package/lib/styles/styles/babylon/mixins.scss +1031 -0
  730. package/lib/styles/styles/babylon/reset.css +1 -0
  731. package/lib/styles/styles/babylon/reset.scss +136 -0
  732. package/lib/styles/styles/babylon/slide.css +1 -0
  733. package/lib/styles/styles/babylon/slider.css +1 -0
  734. package/lib/styles/styles/babylon/slider.scss +876 -0
  735. package/lib/styles/styles/babylon/structure.css +0 -0
  736. package/lib/styles/styles/babylon/structure.scss +1 -0
  737. package/lib/styles/styles/babylon/variables-v2.css +0 -0
  738. package/lib/styles/styles/babylon/variables.css +1 -0
  739. package/lib/styles/styles/babylon/variables.scss +330 -0
  740. package/lib/styles/styles-babylon.scss +48 -7
  741. package/lib/utils/complex-links.token.d.ts +2 -0
  742. package/lib/utils/index.d.ts +1 -0
  743. package/lib/utils/utils.d.ts +14 -0
  744. package/package.json +11 -4
  745. package/public-api.d.ts +6 -114
  746. package/esm2022/directives/babylon-hotels-slider.directive.mjs +0 -103
  747. package/esm2022/lib/components/core/babylon-404-v2/babylon-404-v2.component.mjs +0 -11
  748. package/esm2022/lib/components/core/babylon-breadcrumb-v2/babylon-breadcrumb-v2.component.mjs +0 -11
  749. package/esm2022/lib/components/core/babylon-contact-form-v2/babylon-contact-form-v2.component.mjs +0 -37
  750. package/esm2022/lib/components/core/babylon-engine-modal-v2/babylon-engine-modal-v2.component.mjs +0 -130
  751. package/esm2022/lib/components/core/babylon-feature-pills/babylon-feature-pills.component.mjs +0 -11
  752. package/esm2022/lib/components/core/babylon-filter-modal-v2/babylon-filter-modal-v2.component.mjs +0 -21
  753. package/esm2022/lib/components/core/babylon-gallery-v2/babylon-gallery-v2.component.mjs +0 -105
  754. package/esm2022/lib/components/core/babylon-header-clear-v2/babylon-header-clear-v2.component.mjs +0 -76
  755. package/esm2022/lib/components/core/babylon-img-banner/babylon-img-banner.component.mjs +0 -13
  756. package/esm2022/lib/components/core/babylon-info-big-v2/babylon-info-big-v2.component.mjs +0 -61
  757. package/esm2022/lib/components/core/babylon-info-circle-imgs/babylon-info-circle-imgs.component.mjs +0 -11
  758. package/esm2022/lib/components/core/babylon-info-img-v2/babylon-info-img-v2.component.mjs +0 -11
  759. package/esm2022/lib/components/core/babylon-info-zigzag-v3/babylon-info-zigzag-v3.component.mjs +0 -18
  760. package/esm2022/lib/components/core/babylon-info-zigzag-v3-1/babylon-info-zigzag-v3-1.component.mjs +0 -11
  761. package/esm2022/lib/components/core/babylon-info-zigzag-v4/babylon-info-zigzag-v4.component.mjs +0 -13
  762. package/esm2022/lib/components/core/babylon-language-modal-v2/babylon-language-modal-v2.component.mjs +0 -28
  763. package/esm2022/lib/components/core/babylon-lis-c2-img-vid/babylon-lis-c2-img-vid.component.mjs +0 -39
  764. package/esm2022/lib/components/core/babylon-lis-c4-txt-img-pdf/babylon-lis-c4-txt-img-pdf.component.mjs +0 -57
  765. package/esm2022/lib/components/core/babylon-lis-c5-txt-img-svg/babylon-lis-c5-txt-img-svg.component.mjs +0 -55
  766. package/esm2022/lib/components/core/babylon-list-box-info/babylon-list-box-info.component.mjs +0 -11
  767. package/esm2022/lib/components/core/babylon-list-img/babylon-list-img.component.mjs +0 -71
  768. package/esm2022/lib/components/core/babylon-list-img-info/babylon-list-img-info.component.mjs +0 -11
  769. package/esm2022/lib/components/core/babylon-list-img-v2/babylon-list-img-v2.component.mjs +0 -11
  770. package/esm2022/lib/components/core/babylon-loyalty-table/babylon-loyalty-table.component.mjs +0 -65
  771. package/esm2022/lib/components/core/babylon-menu-modal/babylon-menu-modal.component.mjs +0 -19
  772. package/esm2022/lib/components/core/babylon-newsletter-modal/babylon-newsletter-modal.component.mjs +0 -19
  773. package/esm2022/lib/components/core/babylon-offer-detail-v2/babylon-offer-detail-v2.component.mjs +0 -11
  774. package/esm2022/lib/components/core/babylon-offer-popup-v2/babylon-offer-popup-v2.component.mjs +0 -19
  775. package/esm2022/lib/components/core/babylon-reviews/babylon-reviews.component.mjs +0 -169
  776. package/esm2022/lib/components/core/babylon-rooms-list-v2/babylon-rooms-list-v2.component.mjs +0 -11
  777. package/esm2022/lib/components/core/babylon-simple-img-info/babylon-simple-img-info.component.mjs +0 -12
  778. package/esm2022/lib/components/core/babylon-slider-box/babylon-slider-box.component.mjs +0 -12
  779. package/esm2022/lib/components/core/babylon-slider2col-v2/babylon-slider2col-v2.component.mjs +0 -13
  780. package/esm2022/lib/components/core/babylon-slider3col/babylon-slider3colcomponent.mjs +0 -11
  781. package/esm2022/lib/components/core/babylon-slider3col-v2/babylon-slider3col-v2.component.mjs +0 -12
  782. package/esm2022/lib/components/core/babylon-social-bar-v2/babylon-social-bar-v2.component.mjs +0 -11
  783. package/esm2022/lib/components/core/babylon-static-footer-v3/babylon-static-footer-v3.component.mjs +0 -67
  784. package/esm2022/lib/components/core/babylon-top-simple-img/babylon-top-simple-img.component.mjs +0 -11
  785. package/esm2022/lib/components/core/babylon-variant-selector/babylon-variant-selector.component.mjs +0 -82
  786. package/esm2022/lib/components/core/babylon-webmap-v2/babylon-webmap-v2.component.mjs +0 -11
  787. package/esm2022/lib/directives/images/swap-on-reload.directive.mjs +0 -83
  788. package/esm2022/lib/directives/scroll/scroll-to.directive.mjs +0 -183
  789. package/esm2022/lib/directives/scroll/show-only-top.directive.mjs +0 -103
  790. package/lib/components/core/babylon-404-v2/babylon-404-v2.component.d.ts +0 -5
  791. package/lib/components/core/babylon-breadcrumb-v2/babylon-breadcrumb-v2.component.d.ts +0 -5
  792. package/lib/components/core/babylon-contact-form-v2/babylon-contact-form-v2.component.d.ts +0 -10
  793. package/lib/components/core/babylon-engine-modal-v2/babylon-engine-modal-v2.component.d.ts +0 -44
  794. package/lib/components/core/babylon-feature-pills/babylon-feature-pills.component.d.ts +0 -5
  795. package/lib/components/core/babylon-filter-modal-v2/babylon-filter-modal-v2.component.d.ts +0 -10
  796. package/lib/components/core/babylon-gallery-v2/babylon-gallery-v2.component.d.ts +0 -22
  797. package/lib/components/core/babylon-header-clear-v2/babylon-header-clear-v2.component.d.ts +0 -16
  798. package/lib/components/core/babylon-img-banner/babylon-img-banner.component.d.ts +0 -5
  799. package/lib/components/core/babylon-info-big-v2/babylon-info-big-v2.component.d.ts +0 -12
  800. package/lib/components/core/babylon-info-circle-imgs/babylon-info-circle-imgs.component.d.ts +0 -5
  801. package/lib/components/core/babylon-info-img-v2/babylon-info-img-v2.component.d.ts +0 -5
  802. package/lib/components/core/babylon-info-zigzag-v3/babylon-info-zigzag-v3.component.d.ts +0 -6
  803. package/lib/components/core/babylon-info-zigzag-v3-1/babylon-info-zigzag-v3-1.component.d.ts +0 -5
  804. package/lib/components/core/babylon-info-zigzag-v4/babylon-info-zigzag-v4.component.d.ts +0 -5
  805. package/lib/components/core/babylon-language-modal-v2/babylon-language-modal-v2.component.d.ts +0 -12
  806. package/lib/components/core/babylon-lis-c2-img-vid/babylon-lis-c2-img-vid.component.d.ts +0 -12
  807. package/lib/components/core/babylon-lis-c4-txt-img-pdf/babylon-lis-c4-txt-img-pdf.component.d.ts +0 -24
  808. package/lib/components/core/babylon-lis-c5-txt-img-svg/babylon-lis-c5-txt-img-svg.component.d.ts +0 -24
  809. package/lib/components/core/babylon-list-box-info/babylon-list-box-info.component.d.ts +0 -5
  810. package/lib/components/core/babylon-list-img/babylon-list-img.component.d.ts +0 -26
  811. package/lib/components/core/babylon-list-img-info/babylon-list-img-info.component.d.ts +0 -5
  812. package/lib/components/core/babylon-list-img-v2/babylon-list-img-v2.component.d.ts +0 -5
  813. package/lib/components/core/babylon-loyalty-table/babylon-loyalty-table.component.d.ts +0 -10
  814. package/lib/components/core/babylon-menu-modal/babylon-menu-modal.component.d.ts +0 -7
  815. package/lib/components/core/babylon-newsletter-modal/babylon-newsletter-modal.component.d.ts +0 -7
  816. package/lib/components/core/babylon-offer-detail-v2/babylon-offer-detail-v2.component.d.ts +0 -5
  817. package/lib/components/core/babylon-offer-popup-v2/babylon-offer-popup-v2.component.d.ts +0 -7
  818. package/lib/components/core/babylon-reviews/babylon-reviews.component.d.ts +0 -28
  819. package/lib/components/core/babylon-rooms-list-v2/babylon-rooms-list-v2.component.d.ts +0 -5
  820. package/lib/components/core/babylon-simple-img-info/babylon-simple-img-info.component.d.ts +0 -5
  821. package/lib/components/core/babylon-slider-box/babylon-slider-box.component.d.ts +0 -5
  822. package/lib/components/core/babylon-slider2col-v2/babylon-slider2col-v2.component.d.ts +0 -5
  823. package/lib/components/core/babylon-slider3col/babylon-slider3colcomponent.d.ts +0 -5
  824. package/lib/components/core/babylon-slider3col-v2/babylon-slider3col-v2.component.d.ts +0 -5
  825. package/lib/components/core/babylon-social-bar-v2/babylon-social-bar-v2.component.d.ts +0 -5
  826. package/lib/components/core/babylon-static-footer-v3/babylon-static-footer-v3.component.d.ts +0 -12
  827. package/lib/components/core/babylon-top-simple-img/babylon-top-simple-img.component.d.ts +0 -5
  828. package/lib/components/core/babylon-variant-selector/babylon-variant-selector.component.d.ts +0 -12
  829. package/lib/components/core/babylon-webmap-v2/babylon-webmap-v2.component.d.ts +0 -5
  830. package/lib/directives/images/swap-on-reload.directive.d.ts +0 -22
  831. /package/lib/styles/styles/babylon/{scss-daba/airDatePicker.min.css → airDatePicker.min.css} +0 -0
  832. /package/lib/styles/styles/babylon/{scss-daba/aos.min.css → aos.min.css} +0 -0
  833. /package/lib/styles/styles/babylon/{scss-daba/buttons.css → buttons.css} +0 -0
  834. /package/lib/styles/styles/babylon/{scss-daba/buttons.scss → buttons.scss} +0 -0
  835. /package/lib/styles/styles/babylon/{scss-daba/fancybox.css → fancybox.css} +0 -0
  836. /package/lib/styles/styles/babylon/{scss-daba/fancybox.min.css → fancybox.min.css} +0 -0
  837. /package/lib/styles/styles/babylon/{scss-daba/funciones.css → funciones.css} +0 -0
  838. /package/lib/styles/styles/babylon/{scss-daba/funciones.scss → funciones.scss} +0 -0
  839. /package/lib/styles/styles/babylon/{scss-daba/inputs.css → inputs.css} +0 -0
  840. /package/lib/styles/styles/babylon/{scss-daba/inputs.scss → inputs.scss} +0 -0
  841. /package/lib/styles/styles/babylon/{scss-daba/jquery.fancybox.min.css → jquery.fancybox.min.css} +0 -0
  842. /package/lib/styles/styles/babylon/{scss-daba/style.css → style.css} +0 -0
  843. /package/lib/styles/styles/babylon/{scss-daba/style.scss → style.scss} +0 -0
  844. /package/lib/styles/styles/babylon/{scss-daba/swiper-bundle.min.css → swiper-bundle.min.css} +0 -0
@@ -0,0 +1,195 @@
1
+ import { isPlatformBrowser } from '@angular/common';
2
+ import { Directive, HostBinding, HostListener, Inject, PLATFORM_ID, } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../services/scroll/scroll-spy.service";
5
+ export class ScrollToDirective {
6
+ constructor(el, spy, platformId) {
7
+ this.el = el;
8
+ this.spy = spy;
9
+ this.platformId = platformId;
10
+ this.role = 'button';
11
+ this.tabindex = '0';
12
+ this.isActive = false;
13
+ }
14
+ ngOnInit() {
15
+ if (!isPlatformBrowser(this.platformId))
16
+ return;
17
+ this.spy.register(this);
18
+ this.onScrollY(this.rootScrollTop());
19
+ }
20
+ ngOnDestroy() {
21
+ this.spy.unregister(this);
22
+ }
23
+ // ==== Eventos ====
24
+ onClick(ev) {
25
+ ev.preventDefault();
26
+ this.scrollToTarget(false);
27
+ }
28
+ onKey(ev) {
29
+ ev.preventDefault();
30
+ this.scrollToTarget(false);
31
+ }
32
+ // ==== Helpers ====
33
+ attr(name) {
34
+ return this.el.nativeElement.getAttribute(name);
35
+ }
36
+ spacerBase() {
37
+ const raw = this.attr('data-scroll_spacer');
38
+ const n = raw ? parseInt(raw, 10) : 0;
39
+ return Number.isFinite(n) ? n : 0;
40
+ }
41
+ widthAdj(onScroll) {
42
+ if (!isPlatformBrowser(this.platformId))
43
+ return 0;
44
+ const w = window.innerWidth || document.documentElement.clientWidth || 0;
45
+ if (onScroll) {
46
+ if (w >= 768)
47
+ return 30;
48
+ if (w >= 540)
49
+ return 20;
50
+ }
51
+ else {
52
+ if (w >= 768)
53
+ return 20;
54
+ if (w >= 540)
55
+ return 10;
56
+ }
57
+ return 0;
58
+ }
59
+ targetEl() {
60
+ const sel = this.attr('data-scroll_to');
61
+ return sel ? document.querySelector(sel) : null;
62
+ }
63
+ /** selector opcional para scroller custom */
64
+ scrollContainer() {
65
+ const sel = this.attr('data-scroll_container');
66
+ if (!sel)
67
+ return null;
68
+ return document.querySelector(sel);
69
+ }
70
+ rootScrollTop() {
71
+ if (!isPlatformBrowser(this.platformId))
72
+ return 0;
73
+ const se = document.scrollingElement;
74
+ return se
75
+ ? se.scrollTop
76
+ : window.pageYOffset || document.documentElement.scrollTop || 0;
77
+ }
78
+ pageTop(el) {
79
+ if (!isPlatformBrowser(this.platformId))
80
+ return 0;
81
+ const rect = el.getBoundingClientRect();
82
+ const pageY = window.pageYOffset || document.documentElement.scrollTop || 0;
83
+ return rect.top + pageY;
84
+ }
85
+ computeScrollTop(onScroll) {
86
+ if (!isPlatformBrowser(this.platformId))
87
+ return null;
88
+ const target = this.targetEl();
89
+ if (!target)
90
+ return null;
91
+ const spacer = this.spacerBase() + this.widthAdj(onScroll);
92
+ // 1) Si hay contenedor custom, calculamos relativo a él
93
+ const container = this.scrollContainer();
94
+ if (container) {
95
+ const targetPage = this.pageTop(target);
96
+ const containerPage = this.pageTop(container);
97
+ // posición del target dentro del contenedor + scroll actual del contenedor
98
+ const relative = targetPage - containerPage;
99
+ const top = relative - spacer;
100
+ return { scroller: container, top: top < 0 ? 0 : top };
101
+ }
102
+ // 2) Por defecto: documento (como $('html, body'))
103
+ const top = this.pageTop(target) - spacer;
104
+ return { scroller: window, top: top < 0 ? 0 : top };
105
+ }
106
+ scrollToTarget(fromScrollHandler) {
107
+ if (!isPlatformBrowser(this.platformId))
108
+ return;
109
+ const data = this.computeScrollTop(false);
110
+ if (!data)
111
+ return;
112
+ const behavior = window.matchMedia?.('(prefers-reduced-motion: reduce)').matches
113
+ ? 'auto'
114
+ : 'smooth';
115
+ if (data.scroller instanceof HTMLElement) {
116
+ data.scroller.scrollTo({ top: data.top, behavior });
117
+ }
118
+ else {
119
+ window.scrollTo({ top: data.top, behavior });
120
+ }
121
+ if (this.groupIsActive() && !fromScrollHandler)
122
+ this.activateSelfAndDeactivateSiblings();
123
+ }
124
+ groupIsActive() {
125
+ const ul = this.el.nativeElement.closest('ul');
126
+ return ul?.getAttribute('data-scroll_active') === 'true';
127
+ }
128
+ activateSelfAndDeactivateSiblings() {
129
+ this.isActive = true;
130
+ if (!this.groupIsActive())
131
+ return;
132
+ const parent = this.el.nativeElement.parentElement;
133
+ if (!parent)
134
+ return;
135
+ Array.from(parent.children).forEach((ch) => {
136
+ if (ch !== this.el.nativeElement)
137
+ ch.classList.remove('active');
138
+ });
139
+ }
140
+ // ==== ScrollSpyTarget ====
141
+ onScrollY(scrollY) {
142
+ if (!isPlatformBrowser(this.platformId))
143
+ return;
144
+ const target = this.targetEl();
145
+ if (!target)
146
+ return;
147
+ const style = window.getComputedStyle(target);
148
+ if (style.display === 'none') {
149
+ this.isActive = false;
150
+ return;
151
+ }
152
+ // Para marcar activo baste con usar la ventana
153
+ const data = this.computeScrollTop(true);
154
+ if (!data)
155
+ return;
156
+ const top = data.scroller instanceof HTMLElement
157
+ ? this.rootScrollTop()
158
+ : data.top;
159
+ const height = Math.max(target.offsetHeight, 1);
160
+ const inRange = scrollY >= data.top && scrollY < data.top + height;
161
+ if (this.groupIsActive())
162
+ this.isActive = inRange;
163
+ }
164
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ScrollToDirective, deps: [{ token: i0.ElementRef }, { token: i1.ScrollSpyService }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive }); }
165
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: ScrollToDirective, isStandalone: true, selector: ".js-scrollto,[appScrollTo]", host: { listeners: { "click": "onClick($event)", "keydown.enter": "onKey($event)", "keydown.space": "onKey($event)" }, properties: { "attr.role": "this.role", "attr.tabindex": "this.tabindex", "class.active": "this.isActive" } }, ngImport: i0 }); }
166
+ }
167
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ScrollToDirective, decorators: [{
168
+ type: Directive,
169
+ args: [{
170
+ selector: '.js-scrollto,[appScrollTo]',
171
+ standalone: true,
172
+ }]
173
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.ScrollSpyService }, { type: undefined, decorators: [{
174
+ type: Inject,
175
+ args: [PLATFORM_ID]
176
+ }] }], propDecorators: { role: [{
177
+ type: HostBinding,
178
+ args: ['attr.role']
179
+ }], tabindex: [{
180
+ type: HostBinding,
181
+ args: ['attr.tabindex']
182
+ }], isActive: [{
183
+ type: HostBinding,
184
+ args: ['class.active']
185
+ }], onClick: [{
186
+ type: HostListener,
187
+ args: ['click', ['$event']]
188
+ }], onKey: [{
189
+ type: HostListener,
190
+ args: ['keydown.enter', ['$event']]
191
+ }, {
192
+ type: HostListener,
193
+ args: ['keydown.space', ['$event']]
194
+ }] } });
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLXRvLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhYnlsb24vc3JjL2xpYi9kaXJlY3RpdmVzL3Njcm9sbHMvc2Nyb2xsLXRvLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0gsU0FBUyxFQUVULFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUdOLFdBQVcsR0FDZCxNQUFNLGVBQWUsQ0FBQzs7O0FBVXZCLE1BQU0sT0FBTyxpQkFBaUI7SUFLMUIsWUFDWSxFQUEyQixFQUMzQixHQUFxQixFQUNBLFVBQWtCO1FBRnZDLE9BQUUsR0FBRixFQUFFLENBQXlCO1FBQzNCLFFBQUcsR0FBSCxHQUFHLENBQWtCO1FBQ0EsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQVB6QixTQUFJLEdBQUcsUUFBUSxDQUFDO1FBQ1osYUFBUSxHQUFHLEdBQUcsQ0FBQztRQUNoQixhQUFRLEdBQUcsS0FBSyxDQUFDO0lBTTNDLENBQUM7SUFFSixRQUFRO1FBQ0osSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7WUFBRSxPQUFPO1FBQ2hELElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsb0JBQW9CO0lBRXBCLE9BQU8sQ0FBQyxFQUFTO1FBQ2IsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7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LElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUFFLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO0lBQ3RELENBQUM7K0dBNUtRLGlCQUFpQiw0RUFRZCxXQUFXO21HQVJkLGlCQUFpQjs7NEZBQWpCLGlCQUFpQjtrQkFKN0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsNEJBQTRCO29CQUN0QyxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OzBCQVNRLE1BQU07MkJBQUMsV0FBVzt5Q0FQRyxJQUFJO3NCQUE3QixXQUFXO3VCQUFDLFdBQVc7Z0JBQ00sUUFBUTtzQkFBckMsV0FBVzt1QkFBQyxlQUFlO2dCQUNDLFFBQVE7c0JBQXBDLFdBQVc7dUJBQUMsY0FBYztnQkFvQjNCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBUWpDLEtBQUs7c0JBRkosWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUN4QyxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFBMQVRGT1JNX0lELFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgU2Nyb2xsU3B5U2VydmljZSxcbiAgICBTY3JvbGxTcHlUYXJnZXQsXG59IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Njcm9sbC9zY3JvbGwtc3B5LnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJy5qcy1zY3JvbGx0byxbYXBwU2Nyb2xsVG9dJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBTY3JvbGxUb0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBTY3JvbGxTcHlUYXJnZXQge1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJykgcm9sZSA9ICdidXR0b24nO1xuICAgIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpIHRhYmluZGV4ID0gJzAnO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuYWN0aXZlJykgaXNBY3RpdmUgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgcHJpdmF0ZSBzcHk6IFNjcm9sbFNweVNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogb2JqZWN0XG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuICAgICAgICB0aGlzLnNweS5yZWdpc3Rlcih0aGlzKTtcbiAgICAgICAgdGhpcy5vblNjcm9sbFkodGhpcy5yb290U2Nyb2xsVG9wKCkpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNweS51bnJlZ2lzdGVyKHRoaXMpO1xuICAgIH1cblxuICAgIC8vID09PT0gRXZlbnRvcyA9PT09XG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICAgIG9uQ2xpY2soZXY6IEV2ZW50KSB7XG4gICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9UYXJnZXQoZmFsc2UpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZW50ZXInLCBbJyRldmVudCddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uc3BhY2UnLCBbJyRldmVudCddKVxuICAgIG9uS2V5KGV2OiBFdmVudCkge1xuICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnNjcm9sbFRvVGFyZ2V0KGZhbHNlKTtcbiAgICB9XG5cbiAgICAvLyA9PT09IEhlbHBlcnMgPT09PVxuICAgIHByaXZhdGUgYXR0cihuYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWwubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUobmFtZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzcGFjZXJCYXNlKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHJhdyA9IHRoaXMuYXR0cignZGF0YS1zY3JvbGxfc3BhY2VyJyk7XG4gICAgICAgIGNvbnN0IG4gPSByYXcgPyBwYXJzZUludChyYXcsIDEwKSA6IDA7XG4gICAgICAgIHJldHVybiBOdW1iZXIuaXNGaW5pdGUobikgPyBuIDogMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHdpZHRoQWRqKG9uU2Nyb2xsOiBib29sZWFuKTogbnVtYmVyIHtcbiAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuIDA7XG5cbiAgICAgICAgY29uc3QgdyA9XG4gICAgICAgICAgICB3aW5kb3cuaW5uZXJXaWR0aCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGggfHwgMDtcbiAgICAgICAgaWYgKG9uU2Nyb2xsKSB7XG4gICAgICAgICAgICBpZiAodyA+PSA3NjgpIHJldHVybiAzMDtcbiAgICAgICAgICAgIGlmICh3ID49IDU0MCkgcmV0dXJuIDIwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHcgPj0gNzY4KSByZXR1cm4gMjA7XG4gICAgICAgICAgICBpZiAodyA+PSA1NDApIHJldHVybiAxMDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRhcmdldEVsKCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IHNlbCA9IHRoaXMuYXR0cignZGF0YS1zY3JvbGxfdG8nKTtcbiAgICAgICAgcmV0dXJuIHNlbCA/IChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlbCkgYXMgSFRNTEVsZW1lbnQgfCBudWxsKSA6IG51bGw7XG4gICAgfVxuXG4gICAgLyoqIHNlbGVjdG9yIG9wY2lvbmFsIHBhcmEgc2Nyb2xsZXIgY3VzdG9tICovXG4gICAgcHJpdmF0ZSBzY3JvbGxDb250YWluZXIoKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgY29uc3Qgc2VsID0gdGhpcy5hdHRyKCdkYXRhLXNjcm9sbF9jb250YWluZXInKTtcbiAgICAgICAgaWYgKCFzZWwpIHJldHVybiBudWxsO1xuICAgICAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWwpIGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJvb3RTY3JvbGxUb3AoKTogbnVtYmVyIHtcbiAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuIDA7XG4gICAgICAgIGNvbnN0IHNlID0gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgICAgIHJldHVybiBzZVxuICAgICAgICAgICAgPyBzZS5zY3JvbGxUb3BcbiAgICAgICAgICAgIDogd2luZG93LnBhZ2VZT2Zmc2V0IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHwgMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBhZ2VUb3AoZWw6IEhUTUxFbGVtZW50KTogbnVtYmVyIHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm4gMDtcbiAgICAgICAgY29uc3QgcmVjdCA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCBwYWdlWSA9XG4gICAgICAgICAgICB3aW5kb3cucGFnZVlPZmZzZXQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCB8fCAwO1xuICAgICAgICByZXR1cm4gcmVjdC50b3AgKyBwYWdlWTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbXB1dGVTY3JvbGxUb3AoXG4gICAgICAgIG9uU2Nyb2xsOiBib29sZWFuXG4gICAgKTogeyBzY3JvbGxlcjogSFRNTEVsZW1lbnQgfCBXaW5kb3c7IHRvcDogbnVtYmVyIH0gfCBudWxsIHtcbiAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuIG51bGw7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IHRoaXMudGFyZ2V0RWwoKTtcbiAgICAgICAgaWYgKCF0YXJnZXQpIHJldHVybiBudWxsO1xuXG4gICAgICAgIGNvbnN0IHNwYWNlciA9IHRoaXMuc3BhY2VyQmFzZSgpICsgdGhpcy53aWR0aEFkaihvblNjcm9sbCk7XG5cbiAgICAgICAgLy8gMSkgU2kgaGF5IGNvbnRlbmVkb3IgY3VzdG9tLCBjYWxjdWxhbW9zIHJlbGF0aXZvIGEgw6lsXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuc2Nyb2xsQ29udGFpbmVyKCk7XG4gICAgICAgIGlmIChjb250YWluZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldFBhZ2UgPSB0aGlzLnBhZ2VUb3AodGFyZ2V0KTtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lclBhZ2UgPSB0aGlzLnBhZ2VUb3AoY29udGFpbmVyKTtcbiAgICAgICAgICAgIC8vIHBvc2ljacOzbiBkZWwgdGFyZ2V0IGRlbnRybyBkZWwgY29udGVuZWRvciArIHNjcm9sbCBhY3R1YWwgZGVsIGNvbnRlbmVkb3JcbiAgICAgICAgICAgIGNvbnN0IHJlbGF0aXZlID0gdGFyZ2V0UGFnZSAtIGNvbnRhaW5lclBhZ2U7XG4gICAgICAgICAgICBjb25zdCB0b3AgPSByZWxhdGl2ZSAtIHNwYWNlcjtcbiAgICAgICAgICAgIHJldHVybiB7IHNjcm9sbGVyOiBjb250YWluZXIsIHRvcDogdG9wIDwgMCA/IDAgOiB0b3AgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIDIpIFBvciBkZWZlY3RvOiBkb2N1bWVudG8gKGNvbW8gJCgnaHRtbCwgYm9keScpKVxuICAgICAgICBjb25zdCB0b3AgPSB0aGlzLnBhZ2VUb3AodGFyZ2V0KSAtIHNwYWNlcjtcbiAgICAgICAgcmV0dXJuIHsgc2Nyb2xsZXI6IHdpbmRvdywgdG9wOiB0b3AgPCAwID8gMCA6IHRvcCB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgc2Nyb2xsVG9UYXJnZXQoZnJvbVNjcm9sbEhhbmRsZXI6IGJvb2xlYW4pIHtcbiAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5jb21wdXRlU2Nyb2xsVG9wKGZhbHNlKTtcbiAgICAgICAgaWYgKCFkYXRhKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgYmVoYXZpb3I6IFNjcm9sbEJlaGF2aW9yID0gd2luZG93Lm1hdGNoTWVkaWE/LihcbiAgICAgICAgICAgICcocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSdcbiAgICAgICAgKS5tYXRjaGVzXG4gICAgICAgICAgICA/ICdhdXRvJ1xuICAgICAgICAgICAgOiAnc21vb3RoJztcblxuICAgICAgICBpZiAoZGF0YS5zY3JvbGxlciBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgICAgICBkYXRhLnNjcm9sbGVyLnNjcm9sbFRvKHsgdG9wOiBkYXRhLnRvcCwgYmVoYXZpb3IgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IGRhdGEudG9wLCBiZWhhdmlvciB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmdyb3VwSXNBY3RpdmUoKSAmJiAhZnJvbVNjcm9sbEhhbmRsZXIpXG4gICAgICAgICAgICB0aGlzLmFjdGl2YXRlU2VsZkFuZERlYWN0aXZhdGVTaWJsaW5ncygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ3JvdXBJc0FjdGl2ZSgpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgdWwgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xvc2VzdCgndWwnKTtcbiAgICAgICAgcmV0dXJuIHVsPy5nZXRBdHRyaWJ1dGUoJ2RhdGEtc2Nyb2xsX2FjdGl2ZScpID09PSAndHJ1ZSc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZVNlbGZBbmREZWFjdGl2YXRlU2libGluZ3MoKSB7XG4gICAgICAgIHRoaXMuaXNBY3RpdmUgPSB0cnVlO1xuICAgICAgICBpZiAoIXRoaXMuZ3JvdXBJc0FjdGl2ZSgpKSByZXR1cm47XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgICAgICBpZiAoIXBhcmVudCkgcmV0dXJuO1xuICAgICAgICBBcnJheS5mcm9tKHBhcmVudC5jaGlsZHJlbikuZm9yRWFjaCgoY2gpID0+IHtcbiAgICAgICAgICAgIGlmIChjaCAhPT0gdGhpcy5lbC5uYXRpdmVFbGVtZW50KSBjaC5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gPT09PSBTY3JvbGxTcHlUYXJnZXQgPT09PVxuICAgIG9uU2Nyb2xsWShzY3JvbGxZOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuICAgICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLnRhcmdldEVsKCk7XG4gICAgICAgIGlmICghdGFyZ2V0KSByZXR1cm47XG4gICAgICAgIGNvbnN0IHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KTtcbiAgICAgICAgaWYgKHN0eWxlLmRpc3BsYXkgPT09ICdub25lJykge1xuICAgICAgICAgICAgdGhpcy5pc0FjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUGFyYSBtYXJjYXIgYWN0aXZvIGJhc3RlIGNvbiB1c2FyIGxhIHZlbnRhbmFcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuY29tcHV0ZVNjcm9sbFRvcCh0cnVlKTtcbiAgICAgICAgaWYgKCFkYXRhKSByZXR1cm47XG4gICAgICAgIGNvbnN0IHRvcCA9XG4gICAgICAgICAgICBkYXRhLnNjcm9sbGVyIGluc3RhbmNlb2YgSFRNTEVsZW1lbnRcbiAgICAgICAgICAgICAgICA/IHRoaXMucm9vdFNjcm9sbFRvcCgpXG4gICAgICAgICAgICAgICAgOiBkYXRhLnRvcDtcbiAgICAgICAgY29uc3QgaGVpZ2h0ID0gTWF0aC5tYXgodGFyZ2V0Lm9mZnNldEhlaWdodCwgMSk7XG4gICAgICAgIGNvbnN0IGluUmFuZ2UgPSBzY3JvbGxZID49IGRhdGEudG9wICYmIHNjcm9sbFkgPCBkYXRhLnRvcCArIGhlaWdodDtcblxuICAgICAgICBpZiAodGhpcy5ncm91cElzQWN0aXZlKCkpIHRoaXMuaXNBY3RpdmUgPSBpblJhbmdlO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,27 @@
1
+ import { isPlatformBrowser } from '@angular/common';
2
+ import { Directive, HostListener, inject, PLATFORM_ID } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export class BabylonScrollUpDirective {
5
+ constructor() {
6
+ this.platformId = inject(PLATFORM_ID);
7
+ }
8
+ onClick(event) {
9
+ if (isPlatformBrowser(this.platformId)) {
10
+ event.preventDefault();
11
+ window.scrollTo({ top: 0, behavior: 'smooth' });
12
+ }
13
+ }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BabylonScrollUpDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
15
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: BabylonScrollUpDirective, isStandalone: true, selector: "[scrollUp]", host: { listeners: { "click": "onClick($event)" } }, ngImport: i0 }); }
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BabylonScrollUpDirective, decorators: [{
18
+ type: Directive,
19
+ args: [{
20
+ selector: '[scrollUp]',
21
+ standalone: true,
22
+ }]
23
+ }], propDecorators: { onClick: [{
24
+ type: HostListener,
25
+ args: ['click', ['$event']]
26
+ }] } });
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLXVwLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhYnlsb24vc3JjL2xpYi9kaXJlY3RpdmVzL3Njcm9sbHMvc2Nyb2xsLXVwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU03RSxNQUFNLE9BQU8sd0JBQXdCO0lBSnJDO1FBS1ksZUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztLQVM1QztJQU5HLE9BQU8sQ0FBQyxLQUFZO1FBQ2hCLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3BDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztTQUNuRDtJQUNMLENBQUM7K0dBVFEsd0JBQXdCO21HQUF4Qix3QkFBd0I7OzRGQUF4Qix3QkFBd0I7a0JBSnBDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs4QkFLRyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIGluamVjdCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbc2Nyb2xsVXBdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBCYWJ5bG9uU2Nyb2xsVXBEaXJlY3RpdmUge1xuICAgIHByaXZhdGUgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgb25DbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IDAsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,110 @@
1
+ // directives/show-only-at-top.directive.ts
2
+ import { isPlatformBrowser } from '@angular/common';
3
+ import { Directive, HostBinding, Inject, Input, PLATFORM_ID, } from '@angular/core';
4
+ import * as i0 from "@angular/core";
5
+ export class ShowOnlyAtTopDirective {
6
+ get cls() {
7
+ return this.hidden;
8
+ }
9
+ get op() {
10
+ return this.hidden ? '0' : '1';
11
+ }
12
+ get pe() {
13
+ return this.hidden ? 'none' : 'auto';
14
+ }
15
+ constructor(zone, platformId) {
16
+ this.zone = zone;
17
+ this.platformId = platformId;
18
+ /** Rango en px desde el top en el que el botón permanece visible */
19
+ this.topShowPx = 10; // ajusta a 4–16 si quieres más/menos sensible
20
+ this.minWidth = 540;
21
+ this.hidden = false;
22
+ this.active = false;
23
+ this.ticking = false;
24
+ this.t = 'opacity .25s ease, transform .25s ease';
25
+ }
26
+ ngAfterViewInit() {
27
+ if (!isPlatformBrowser(this.platformId))
28
+ return;
29
+ const evaluateScroll = () => {
30
+ const y = Math.max(window.scrollY, document.documentElement.scrollTop || 0);
31
+ const shouldHide = this.active && y > this.topShowPx;
32
+ if (shouldHide !== this.hidden)
33
+ this.hidden = shouldHide;
34
+ };
35
+ const applyActiveState = () => {
36
+ const nowActive = window.innerWidth >= this.minWidth;
37
+ if (nowActive === this.active)
38
+ return;
39
+ this.active = nowActive;
40
+ if (!this.active) {
41
+ // Desactivado en < minWidth: muestra siempre y no escucha scroll
42
+ this.hidden = false;
43
+ window.removeEventListener('scroll', onScroll);
44
+ }
45
+ else {
46
+ // Re-activar
47
+ window.addEventListener('scroll', onScroll, { passive: true });
48
+ evaluateScroll();
49
+ }
50
+ };
51
+ const onScroll = () => {
52
+ if (this.ticking)
53
+ return;
54
+ this.ticking = true;
55
+ requestAnimationFrame(() => {
56
+ evaluateScroll();
57
+ this.ticking = false;
58
+ });
59
+ };
60
+ const onResize = () => {
61
+ applyActiveState();
62
+ if (this.active)
63
+ onScroll();
64
+ };
65
+ this.zone.runOutsideAngular(() => {
66
+ // Setup inicial
67
+ applyActiveState();
68
+ if (this.active) {
69
+ window.addEventListener('scroll', onScroll, { passive: true });
70
+ evaluateScroll();
71
+ }
72
+ window.addEventListener('resize', onResize, { passive: true });
73
+ this.offScroll = () => window.removeEventListener('scroll', onScroll);
74
+ this.offResize = () => window.removeEventListener('resize', onResize);
75
+ });
76
+ }
77
+ ngOnDestroy() {
78
+ this.offScroll?.();
79
+ this.offResize?.();
80
+ }
81
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ShowOnlyAtTopDirective, deps: [{ token: i0.NgZone }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive }); }
82
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: ShowOnlyAtTopDirective, isStandalone: true, selector: "[showOnlyAtTop]", inputs: { topShowPx: "topShowPx", minWidth: "minWidth" }, host: { properties: { "style.transition": "this.t", "class.is-hidden": "this.cls", "style.opacity": "this.op", "style.pointerEvents": "this.pe" } }, ngImport: i0 }); }
83
+ }
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ShowOnlyAtTopDirective, decorators: [{
85
+ type: Directive,
86
+ args: [{
87
+ selector: '[showOnlyAtTop]',
88
+ standalone: true,
89
+ }]
90
+ }], ctorParameters: () => [{ type: i0.NgZone }, { type: undefined, decorators: [{
91
+ type: Inject,
92
+ args: [PLATFORM_ID]
93
+ }] }], propDecorators: { topShowPx: [{
94
+ type: Input
95
+ }], minWidth: [{
96
+ type: Input
97
+ }], t: [{
98
+ type: HostBinding,
99
+ args: ['style.transition']
100
+ }], cls: [{
101
+ type: HostBinding,
102
+ args: ['class.is-hidden']
103
+ }], op: [{
104
+ type: HostBinding,
105
+ args: ['style.opacity']
106
+ }], pe: [{
107
+ type: HostBinding,
108
+ args: ['style.pointerEvents']
109
+ }] } });
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1vbmx5LXRvcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvZGlyZWN0aXZlcy9zY3JvbGxzL3Nob3ctb25seS10b3AuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJDQUEyQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBRUgsU0FBUyxFQUNULFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUdMLFdBQVcsR0FDZCxNQUFNLGVBQWUsQ0FBQzs7QUFNdkIsTUFBTSxPQUFPLHNCQUFzQjtJQVkvQixJQUFvQyxHQUFHO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBQ0QsSUFBa0MsRUFBRTtRQUNoQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQ25DLENBQUM7SUFDRCxJQUF3QyxFQUFFO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDekMsQ0FBQztJQUVELFlBQW9CLElBQVksRUFBK0IsVUFBa0I7UUFBN0QsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUErQixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBckJqRixvRUFBb0U7UUFDM0QsY0FBUyxHQUFHLEVBQUUsQ0FBQyxDQUFDLDhDQUE4QztRQUM5RCxhQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ2hCLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBR2YsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVTLE1BQUMsR0FDOUIsd0NBQXdDLENBQUM7SUFXdUMsQ0FBQztJQUVyRixlQUFlO1FBQ2IsSUFB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Ozs0RkFBdEIsc0JBQXNCO2tCQUpsQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs7MEJBdUJzQyxNQUFNOzJCQUFDLFdBQVc7eUNBcEI1QyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBTzJCLENBQUM7c0JBQWpDLFdBQVc7dUJBQUMsa0JBQWtCO2dCQUVLLEdBQUc7c0JBQXRDLFdBQVc7dUJBQUMsaUJBQWlCO2dCQUdJLEVBQUU7c0JBQW5DLFdBQVc7dUJBQUMsZUFBZTtnQkFHWSxFQUFFO3NCQUF6QyxXQUFXO3VCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIGRpcmVjdGl2ZXMvc2hvdy1vbmx5LWF0LXRvcC5kaXJlY3RpdmUudHNcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBEaXJlY3RpdmUsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgUExBVEZPUk1fSUQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tzaG93T25seUF0VG9wXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgU2hvd09ubHlBdFRvcERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqIFJhbmdvIGVuIHB4IGRlc2RlIGVsIHRvcCBlbiBlbCBxdWUgZWwgYm90w7NuIHBlcm1hbmVjZSB2aXNpYmxlICovXG4gICAgQElucHV0KCkgdG9wU2hvd1B4ID0gMTA7IC8vIGFqdXN0YSBhIDTigJMxNiBzaSBxdWllcmVzIG3DoXMvbWVub3Mgc2Vuc2libGVcbiAgICBASW5wdXQoKSBtaW5XaWR0aCA9IDU0MDtcbiAgICBwcml2YXRlIGhpZGRlbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgYWN0aXZlID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBvZmZTY3JvbGw/OiAoKSA9PiB2b2lkO1xuICAgIHByaXZhdGUgb2ZmUmVzaXplPzogKCkgPT4gdm9pZDtcbiAgICBwcml2YXRlIHRpY2tpbmcgPSBmYWxzZTtcblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUudHJhbnNpdGlvbicpIHQgPVxuICAgICAgICAnb3BhY2l0eSAuMjVzIGVhc2UsIHRyYW5zZm9ybSAuMjVzIGVhc2UnO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaXMtaGlkZGVuJykgZ2V0IGNscygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGlkZGVuO1xuICAgIH1cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLm9wYWNpdHknKSBnZXQgb3AoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmhpZGRlbiA/ICcwJyA6ICcxJztcbiAgICB9XG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5wb2ludGVyRXZlbnRzJykgZ2V0IHBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5oaWRkZW4gPyAnbm9uZScgOiAnYXV0byc7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB6b25lOiBOZ1pvbmUsIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogb2JqZWN0KSB7fVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG4gICAgICAgIGNvbnN0IGV2YWx1YXRlU2Nyb2xsID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeSA9IE1hdGgubWF4KFxuICAgICAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxZLFxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHwgMFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IHNob3VsZEhpZGUgPSB0aGlzLmFjdGl2ZSAmJiB5ID4gdGhpcy50b3BTaG93UHg7XG4gICAgICAgICAgICBpZiAoc2hvdWxkSGlkZSAhPT0gdGhpcy5oaWRkZW4pIHRoaXMuaGlkZGVuID0gc2hvdWxkSGlkZTtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBhcHBseUFjdGl2ZVN0YXRlID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgbm93QWN0aXZlID0gd2luZG93LmlubmVyV2lkdGggPj0gdGhpcy5taW5XaWR0aDtcbiAgICAgICAgICAgIGlmIChub3dBY3RpdmUgPT09IHRoaXMuYWN0aXZlKSByZXR1cm47XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZSA9IG5vd0FjdGl2ZTtcbiAgICAgICAgICAgIGlmICghdGhpcy5hY3RpdmUpIHtcbiAgICAgICAgICAgICAgICAvLyBEZXNhY3RpdmFkbyBlbiA8IG1pbldpZHRoOiBtdWVzdHJhIHNpZW1wcmUgeSBubyBlc2N1Y2hhIHNjcm9sbFxuICAgICAgICAgICAgICAgIHRoaXMuaGlkZGVuID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uU2Nyb2xsKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gUmUtYWN0aXZhclxuICAgICAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvblNjcm9sbCwgeyBwYXNzaXZlOiB0cnVlIH0pO1xuICAgICAgICAgICAgICAgIGV2YWx1YXRlU2Nyb2xsKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3Qgb25TY3JvbGwgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy50aWNraW5nKSByZXR1cm47XG4gICAgICAgICAgICB0aGlzLnRpY2tpbmcgPSB0cnVlO1xuICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgICAgICBldmFsdWF0ZVNjcm9sbCgpO1xuICAgICAgICAgICAgICAgIHRoaXMudGlja2luZyA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3Qgb25SZXNpemUgPSAoKSA9PiB7XG4gICAgICAgICAgICBhcHBseUFjdGl2ZVN0YXRlKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5hY3RpdmUpIG9uU2Nyb2xsKCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIC8vIFNldHVwIGluaWNpYWxcbiAgICAgICAgICAgIGFwcGx5QWN0aXZlU3RhdGUoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZSkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvblNjcm9sbCwgeyBwYXNzaXZlOiB0cnVlIH0pO1xuICAgICAgICAgICAgICAgIGV2YWx1YXRlU2Nyb2xsKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgb25SZXNpemUsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgICAgIHRoaXMub2ZmU2Nyb2xsID0gKCkgPT5cbiAgICAgICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25TY3JvbGwpO1xuICAgICAgICAgICAgdGhpcy5vZmZSZXNpemUgPSAoKSA9PlxuICAgICAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBvblJlc2l6ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9mZlNjcm9sbD8uKCk7XG4gICAgICAgIHRoaXMub2ZmUmVzaXplPy4oKTtcbiAgICB9XG59XG4iXX0=
@@ -9,7 +9,13 @@ export class SlickInitDirective {
9
9
  async ngAfterViewInit() {
10
10
  if (!isPlatformBrowser(this.platformId))
11
11
  return;
12
- await this.waitForSlick(); // espera a $ y $.fn.slick
12
+ // 1) Espera a que jquery + slick estén listos
13
+ const slickReady = await this.waitForSlick();
14
+ // 2) Si NO están, no sigas (evita $ undefined)
15
+ if (!slickReady || typeof $ === 'undefined' || !$.fn || !$.fn.slick) {
16
+ console.warn('[SlickInitDirective] jQuery/Slick no están disponibles, no inicializo el slider');
17
+ return;
18
+ }
13
19
  const parent = this.host.nativeElement;
14
20
  const get = (name) => parent.getAttribute(name);
15
21
  const getBool = (name) => {
@@ -73,8 +79,9 @@ export class SlickInitDirective {
73
79
  nextArrow +=
74
80
  "<button type='button' class='slick-next icon-large'><svg aria-hidden='true' focusable='false'><use href='/assets/babylon/svg/icon-arrow-large.svg#icon-arrow-large'></use></svg></button>";
75
81
  }
76
- // --- normalizar altura en vertical (sin 'this' implícito) ---
77
82
  const updateVerticalHeight = () => {
83
+ if (!isPlatformBrowser(this.platformId))
84
+ return;
78
85
  const $el = $(sliderSelector);
79
86
  if (window.innerWidth >= 541) {
80
87
  let maxH = 0;
@@ -99,7 +106,6 @@ export class SlickInitDirective {
99
106
  passive: true,
100
107
  });
101
108
  }
102
- // --- INIT SLICK ---
103
109
  $(sliderSelector).slick({
104
110
  dots: showDots,
105
111
  arrows: showBtns,
@@ -161,10 +167,30 @@ export class SlickInitDirective {
161
167
  },
162
168
  ],
163
169
  });
170
+ const slides = sliderSelector.querySelectorAll('.slick-slide');
171
+ const toggleBotonActivo = () => {
172
+ if (window.innerWidth < 1024) {
173
+ slides.forEach((slide) => slide.classList.add('botonactivo'));
174
+ }
175
+ else {
176
+ slides.forEach((slide) => slide.classList.remove('botonactivo'));
177
+ }
178
+ };
179
+ // ejecutamos al iniciar
180
+ toggleBotonActivo();
181
+ // y al redimensionar
182
+ const resizeHandlerLocal = () => toggleBotonActivo();
183
+ window.addEventListener('resize', resizeHandlerLocal, {
184
+ passive: true,
185
+ });
186
+ // si ya usas this.resizeHandler, puedes reutilizarlo:
187
+ this.resizeHandler = resizeHandlerLocal;
164
188
  }
165
189
  ngOnDestroy() {
166
190
  if (!isPlatformBrowser(this.platformId))
167
191
  return;
192
+ if (typeof $ === 'undefined' || !$.fn?.slick)
193
+ return;
168
194
  if (this.sliderEl && $(this.sliderEl).hasClass('slick-initialized')) {
169
195
  try {
170
196
  $(this.sliderEl).slick('unslick');
@@ -177,18 +203,19 @@ export class SlickInitDirective {
177
203
  window.removeEventListener('resize', this.resizeHandler);
178
204
  }
179
205
  }
180
- // Espera a $ y slick: resuelve (no rechaza) y loguea si no llegan
181
- waitForSlick(timeoutMs = 4000, stepMs = 100) {
206
+ // Devuelve true si jQuery+Slick llegan a estar disponibles, false si no
207
+ waitForSlick(timeoutMs = 8000, stepMs = 100) {
182
208
  if (!isPlatformBrowser(this.platformId))
183
- return Promise.resolve();
209
+ return Promise.resolve(false);
184
210
  const start = performance.now();
185
211
  return new Promise((resolve) => {
186
212
  const check = () => {
187
- if (typeof $ !== 'undefined' && $.fn && $.fn.slick)
188
- return resolve();
213
+ if (typeof $ !== 'undefined' && $.fn && $.fn.slick) {
214
+ return resolve(true);
215
+ }
189
216
  if (performance.now() - start > timeoutMs) {
190
- console.warn('[SlickInitDirective] Slick no disponible. ¿Cargaste jQuery y slick?');
191
- return resolve(); // evita error si no llega
217
+ console.warn('[SlickInitDirective] Slick no disponible tras timeout. ¿Scripts cargados?');
218
+ return resolve(false);
192
219
  }
193
220
  setTimeout(check, stepMs);
194
221
  };
@@ -208,4 +235,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
208
235
  type: Inject,
209
236
  args: [PLATFORM_ID]
210
237
  }] }] });
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2staW5pdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvZGlyZWN0aXZlcy9zbGlkZXJzL3NsaWNrLWluaXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFFSCxTQUFTLEVBRVQsTUFBTSxFQUVOLFdBQVcsR0FDZCxNQUFNLGVBQWUsQ0FBQzs7QUFTdkIsTUFBTSxPQUFPLGtCQUFrQjtJQUkzQixZQUNZLElBQTZCLEVBQ1IsVUFBa0I7UUFEdkMsU0FBSSxHQUFKLElBQUksQ0FBeUI7UUFDUixlQUFVLEdBQVYsVUFBVSxDQUFRO0lBQ2hELENBQUM7SUFFSixLQUFLLENBQUMsZUFBZTtRQUNqQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUFFLE9BQU87UUFDaEQsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQywwQkFBMEI7UUFFckQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDdkMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRTtZQUM3QixNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEIsT0FBTyxDQUFDLEtBQUssTUFBTSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSyxDQUFTLEtBQUssSUFBSSxDQUFDO1FBQ3hFLENBQUMsQ0FBQztRQUNGLE1BQU0sTUFBTSxHQUFHLENBQUMsSUFBWSxFQUFFLEdBQUcsR0FB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RTtvQkFDdkMsT0FBTyxDQUFDLElBQUksQ0FDUixxRUFBcUUsQ0FDeEUsQ0FBQztvQkFDRixPQUFPLE9BQU8sRUFBRSxDQUFDLENBQUMsMEJBQTBCO2lCQUMvQztnQkFDRCxVQUFVLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzlCLENBQUMsQ0FBQztZQUNGLEtBQUssRUFBRSxDQUFDO1FBQ1osQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQXhOUSxrQkFBa0IsNENBTWYsV0FBVzttR0FOZCxrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBSjlCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGtDQUFrQztvQkFDNUMsVUFBVSxFQUFFLElBQUk7aUJBQ25COzswQkFPUSxNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5qZWN0LFxuICAgIE9uRGVzdHJveSxcbiAgICBQTEFURk9STV9JRCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8vIFNpIG5vIHRpZW5lcyBAdHlwZXMvanF1ZXJ5LCBkw6lqYWxvIGNvbW8gYW55XG5kZWNsYXJlIGNvbnN0ICQ6IGFueTtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICcuanMtYWN0aXZlLXNsaWRlcixbYXBwU2xpY2tJbml0XScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgU2xpY2tJbml0RGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIHJlc2l6ZUhhbmRsZXI/OiAoKSA9PiB2b2lkO1xuICAgIHByaXZhdGUgc2xpZGVyRWw/OiBIVE1MRWxlbWVudDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGhvc3Q6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IG9iamVjdFxuICAgICkge31cblxuICAgIGFzeW5jIG5nQWZ0ZXJWaWV3SW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG4gICAgICAgIGF3YWl0IHRoaXMud2FpdEZvclNsaWNrKCk7IC8vIGVzcGVyYSBhICQgeSAkLmZuLnNsaWNrXG5cbiAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGdldCA9IChuYW1lOiBzdHJpbmcpID0+IHBhcmVudC5nZXRBdHRyaWJ1dGUobmFtZSk7XG4gICAgICAgIGNvbnN0IGdldEJvb2wgPSAobmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2ID0gZ2V0KG5hbWUpO1xuICAgICAgICAgICAgcmV0dXJuIHYgPT09ICd0cnVlJyB8fCB2ID09PSAnMScgfHwgdiA9PT0gJycgfHwgKHYgYXMgYW55KSA9PT0gdHJ1ZTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZ2V0TnVtID0gKG5hbWU6IHN0cmluZywgZGVmID0gMCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdiA9IE51bWJlcihnZXQobmFtZSkpO1xuICAgICAgICAgICAgcmV0dXJuIE51bWJlci5pc0Zpbml0ZSh2KSA/IHYgOiBkZWY7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3Qgc2xpZGVyTmFtZSA9IGdldCgnZGF0YS1zbGlkZXJfbmFtZScpIHx8ICcnO1xuICAgICAgICBjb25zdCBzbGlkZXJTcGVlZCA9IGdldE51bSgnZGF0YS1zbGlkZXJfc3BlZWQnLCA3NTApO1xuICAgICAgICBjb25zdCBzaG93QnRucyA9IGdldEJvb2woJ2RhdGEtc2xpZGVyX3Nob3didG5zJyk7XG4gICAgICAgIGNvbnN0IHNob3dEb3RzID0gZ2V0Qm9vbCgnZGF0YS1zbGlkZXJfc2hvd2RvdHMnKTtcbiAgICAgICAgY29uc3QgZmFkZSA9IGdldEJvb2woJ2RhdGEtc2xpZGVyX2ZhZGUnKTtcbiAgICAgICAgY29uc3QgY2VudGVyTW9kZSA9IGdldEJvb2woJ2RhdGEtc2xpZGVyX2NlbnRlcm1vZGUnKTtcbiAgICAgICAgY29uc3QgYXV0b3BsYXkgPSBnZXRCb29sKCdkYXRhLXNsaWRlcl9hdXRvcGxheScpO1xuICAgICAgICBjb25zdCBzbGlkZXNQYyA9IGdldE51bSgnZGF0YS1zbGlkZXNfcGMnLCAxKTtcbiAgICAgICAgY29uc3Qgc2xpZGVzTGFwdG9wID0gZ2V0TnVtKCdkYXRhLXNsaWRlc19sYXB0b3AnKSB8fCBzbGlkZXNQYztcbiAgICAgICAgY29uc3Qgc2xpZGVzVGFibGV0ID0gZ2V0TnVtKCdkYXRhLXNsaWRlc190YWJsZXQnKSB8fCBzbGlkZXNMYXB0b3A7XG4gICAgICAgIGNvbnN0IHNsaWRlc01vYmlsZSA9IGdldE51bSgnZGF0YS1zbGlkZXNfbW9iaWxlJykgfHwgc2xpZGVzVGFibGV0O1xuICAgICAgICBjb25zdCBzbGlkZXNNb2JpbGVTbWFsbCA9XG4gICAgICAgICAgICBnZXROdW0oJ2RhdGEtc2xpZGVzX21vYmlsZV9zbWFsbCcpIHx8IHNsaWRlc01vYmlsZTtcbiAgICAgICAgY29uc3Qgc2xpZGVzTW9iaWxlWFNtYWxsID1cbiAgICAgICAgICAgIGdldE51bSgnZGF0YS1zbGlkZXNfbW9iaWxlX3hzbWFsbCcpIHx8IHNsaWRlc01vYmlsZVNtYWxsO1xuICAgICAgICBjb25zdCBpbmZpbml0ZSA9IGdldEJvb2woJ2RhdGEtc2xpZGVzX2luZmluaXRlJyk7XG5cbiAgICAgICAgbGV0IHJvd3NQYyA9IGdldE51bSgnZGF0YS1zbGlkZXNyb3dzX3BjJywgMSk7XG4gICAgICAgIGxldCByb3dzTGFwdG9wID0gZ2V0TnVtKCdkYXRhLXNsaWRlc3Jvd3NfbGFwdG9wJywgMSk7XG4gICAgICAgIGxldCByb3dzVGFibGV0ID0gZ2V0TnVtKCdkYXRhLXNsaWRlc3Jvd3NfdGFibGV0JywgMSk7XG4gICAgICAgIGxldCByb3dzTW9iaWxlID0gZ2V0TnVtKCdkYXRhLXNsaWRlc3Jvd3NfbW9iaWxlJywgMSk7XG4gICAgICAgIGxldCByb3dzTW9iaWxlU21hbGwgPSBnZXROdW0oJ2RhdGEtc2xpZGVzcm93c19tb2JpbGVfc21hbGwnLCAxKTtcbiAgICAgICAgbGV0IHJvd3NNb2JpbGVYU21hbGwgPSBnZXROdW0oJ2RhdGEtc2xpZGVzcm93c19tb2JpbGVfeHNtYWxsJywgMSk7XG5cbiAgICAgICAgY29uc3QgYXNOYXZGb3IgPSBnZXQoJ2RhdGEtc2xpZGVyX2FzTmF2Rm9yJykgfHwgdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCB2ZXJ0aWNhbCA9IGdldEJvb2woJ2RhdGEtc2xpZGVyX3ZlcnRpY2FsJyk7XG4gICAgICAgIGNvbnN0IGFkYXB0aXZlSGVpZ2h0ID0gZ2V0Qm9vbCgnZGF0YS1zbGlkZXJfYWRhcHRpdmVfaGVpZ2h0Jyk7XG4gICAgICAgIGNvbnN0IHBhdXNlID0gZ2V0Qm9vbCgnZGF0YS1zbGlkZXJfcGF1c2UnKTtcbiAgICAgICAgY29uc3QgZHJhZ2dhYmxlID0gZ2V0Qm9vbCgnZGF0YS1zbGlkZXJfZHJhZ2dhYmxlJyk7XG4gICAgICAgIGNvbnN0IHJ0bCA9IGdldEJvb2woJ2RhdGEtc2xpZGVyX3J0bCcpO1xuICAgICAgICBjb25zdCB2YXJpYWJsZVdpZHRoID0gZ2V0Qm9vbCgnZGF0YS1zbGlkZXJfdmFyaWFibGVfd2lkdGgnKTtcbiAgICAgICAgY29uc3QgYnRuc01vZGUgPSBnZXQoJ2RhdGEtc2xpZGVyX2J0bnMnKSB8fCAnJztcblxuICAgICAgICBpZiAod2luZG93LmlubmVyV2lkdGggPCA1NDAgJiYgcGFyZW50LmNsYXNzTGlzdC5jb250YWlucygncm93cy0yJykpIHtcbiAgICAgICAgICAgIHJvd3NQYyA9IDE7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzbGlkZXJBcnJvd3MgPSBwYXJlbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICcuanMtc2xpZGVyLWFycm93cydcbiAgICAgICAgKSBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgICAgIGNvbnN0IHNsaWRlckRvdHMgPSBwYXJlbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICcuanMtc2xpZGVyLWRvdHMnXG4gICAgICAgICkgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgICAgICBjb25zdCBzbGlkZXJTZWxlY3RvciA9IHBhcmVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgJy4nICsgc2xpZGVyTmFtZVxuICAgICAgICApIGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgICAgICAgaWYgKCFzbGlkZXJTZWxlY3RvcikgcmV0dXJuO1xuICAgICAgICB0aGlzLnNsaWRlckVsID0gc2xpZGVyU2VsZWN0b3I7XG5cbiAgICAgICAgaWYgKCQoc2xpZGVyU2VsZWN0b3IpLmhhc0NsYXNzKCdzbGljay1pbml0aWFsaXplZCcpKSByZXR1cm47XG5cbiAgICAgICAgbGV0IHByZXZBcnJvdyA9ICcnO1xuICAgICAgICBsZXQgbmV4dEFycm93ID0gJyc7XG4gICAgICAgIGlmIChidG5zTW9kZS5pbmNsdWRlcygnaWNvbi1zbWFsbCcpKSB7XG4gICAgICAgICAgICBwcmV2QXJyb3cgKz1cbiAgICAgICAgICAgICAgICBcIjxidXR0b24gdHlwZT0nYnV0dG9uJyBjbGFzcz0nc2xpY2stcHJldiBpY29uLXNtYWxsJz48c3ZnIGFyaWEtaGlkZGVuPSd0cnVlJyBmb2N1c2FibGU9J2ZhbHNlJyBjbGFzcz0nbGluZSc+PHVzZSBocmVmPScvYXNzZXRzL2JhYnlsb24vc3ZnL2Fycm93LWxpbmUuc3ZnI2Fycm93LWxpbmUnPjwvdXNlPjwvc3ZnPjxzdmcgYXJpYS1oaWRkZW49J3RydWUnIGZvY3VzYWJsZT0nZmFsc2UnPjx1c2UgaHJlZj0nL2Fzc2V0cy9iYWJ5bG9uL3N2Zy9pY29uLWFycm93LnN2ZyNpY29uLWFycm93Jz48L3VzZT48L3N2Zz48L2J1dHRvbj5cIjtcbiAgICAgICAgICAgIG5leHRBcnJvdyArPVxuICAgICAgICAgICAgICAgIFwiPGJ1dHRvbiB0eXBlPSdidXR0b24nIGNsYXNzPSdzbGljay1uZXh0IGljb24tc21hbGwnPjxzdmcgYXJpYS1oaWRkZW49J3RydWUnIGZvY3VzYWJsZT0nZmFsc2UnIGNsYXNzPSdsaW5lJz48dXNlIGhyZWY9Jy9hc3NldHMvYmFieWxvbi9zdmcvYXJyb3ctbGluZS5zdmcjYXJyb3ctbGluZSc+PC91c2U+PC9zdmc+PHN2ZyBhcmlhLWhpZGRlbj0ndHJ1ZScgZm9jdXNhYmxlPSdmYWxzZSc+PHVzZSBocmVmPScvYXNzZXRzL2JhYnlsb24vc3ZnL2ljb24tYXJyb3cuc3ZnI2ljb24tYXJyb3cnPjwvdXNlPjwvc3ZnPjwvYnV0dG9uPlwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChidG5zTW9kZS5pbmNsdWRlcygnaWNvbi1sYXJnZScpKSB7XG4gICAgICAgICAgICBwcmV2QXJyb3cgKz1cbiAgICAgICAgICAgICAgICBcIjxidXR0b24gdHlwZT0nYnV0dG9uJyBjbGFzcz0nc2xpY2stcHJldiBpY29uLWxhcmdlJz48c3ZnIGFyaWEtaGlkZGVuPSd0cnVlJyBmb2N1c2FibGU9J2ZhbHNlJz48dXNlIGhyZWY9Jy9hc3NldHMvYmFieWxvbi9zdmcvaWNvbi1hcnJvdy1sYXJnZS5zdmcjaWNvbi1hcnJvdy1sYXJnZSc+PC91c2U+PC9zdmc+PC9idXR0b24+XCI7XG4gICAgICAgICAgICBuZXh0QXJyb3cgKz1cbiAgICAgICAgICAgICAgICBcIjxidXR0b24gdHlwZT0nYnV0dG9uJyBjbGFzcz0nc2xpY2stbmV4dCBpY29uLWxhcmdlJz48c3ZnIGFyaWEtaGlkZGVuPSd0cnVlJyBmb2N1c2FibGU9J2ZhbHNlJz48dXNlIGhyZWY9Jy9hc3NldHMvYmFieWxvbi9zdmcvaWNvbi1hcnJvdy1sYXJnZS5zdmcjaWNvbi1hcnJvdy1sYXJnZSc+PC91c2U+PC9zdmc+PC9idXR0b24+XCI7XG4gICAgICAgIH1cblxuICAgICAgICAvLyAtLS0gbm9ybWFsaXphciBhbHR1cmEgZW4gdmVydGljYWwgKHNpbiAndGhpcycgaW1wbMOtY2l0bykgLS0tXG4gICAgICAgIGNvbnN0IHVwZGF0ZVZlcnRpY2FsSGVpZ2h0ID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgJGVsID0gJChzbGlkZXJTZWxlY3Rvcik7XG4gICAgICAgICAgICBpZiAod2luZG93LmlubmVyV2lkdGggPj0gNTQxKSB7XG4gICAgICAgICAgICAgICAgbGV0IG1heEggPSAwO1xuICAgICAgICAgICAgICAgICRlbC5maW5kKCcuc2xpY2stc2xpZGU6bm90KC5zbGljay1jbG9uZWQpJykuZWFjaChcbiAgICAgICAgICAgICAgICAgICAgKF86IG51bWJlciwgZWw6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoID0gKCQoZWwpIGFzIGFueSkub3V0ZXJIZWlnaHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoID4gbWF4SCkgbWF4SCA9IGg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICRlbC5maW5kKCcuc2xpY2stc2xpZGUnKS5lYWNoKChfOiBudW1iZXIsIGVsOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAoJChlbCkgYXMgYW55KS5jc3MoJ2hlaWdodCcsIGAke21heEh9cHhgKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgJChzbGlkZXJTZWxlY3RvcikuZmluZCgnLnNsaWNrLXNsaWRlJykuY3NzKCdoZWlnaHQnLCAnJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHZlcnRpY2FsKSB7XG4gICAgICAgICAgICAkKHNsaWRlclNlbGVjdG9yKS5vbignc2V0UG9zaXRpb24nLCB1cGRhdGVWZXJ0aWNhbEhlaWdodCk7XG4gICAgICAgICAgICAkKHNsaWRlclNlbGVjdG9yKS5vbignaW5pdCcsICgpID0+XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCh1cGRhdGVWZXJ0aWNhbEhlaWdodCwgMClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLnJlc2l6ZUhhbmRsZXIgPSAoKSA9PiB1cGRhdGVWZXJ0aWNhbEhlaWdodCgpO1xuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMucmVzaXplSGFuZGxlciwge1xuICAgICAgICAgICAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIC0tLSBJTklUIFNMSUNLIC0tLVxuICAgICAgICAkKHNsaWRlclNlbGVjdG9yKS5zbGljayh7XG4gICAgICAgICAgICBkb3RzOiBzaG93RG90cyxcbiAgICAgICAgICAgIGFycm93czogc2hvd0J0bnMsXG4gICAgICAgICAgICBhcHBlbmRBcnJvd3M6IHNsaWRlckFycm93cyB8fCBwYXJlbnQsXG4gICAgICAgICAgICBwcmV2QXJyb3csXG4gICAgICAgICAgICBuZXh0QXJyb3csXG4gICAgICAgICAgICBhcHBlbmREb3RzOiBzbGlkZXJEb3RzIHx8IHBhcmVudCxcbiAgICAgICAgICAgIGluZmluaXRlLFxuICAgICAgICAgICAgdXNlVHJhbnNmb3JtOiB0cnVlLFxuICAgICAgICAgICAgZmFkZSxcbiAgICAgICAgICAgIGNlbnRlck1vZGUsXG4gICAgICAgICAgICBjZW50ZXJQYWRkaW5nOiAnMCcsXG4gICAgICAgICAgICBjc3NFYXNlOiAnY3ViaWMtYmV6aWVyKDAuNzg1LCAwLjEzNSwgMC4xNSwgMC44NiknLFxuICAgICAgICAgICAgc3BlZWQ6IHNsaWRlclNwZWVkLFxuICAgICAgICAgICAgc2xpZGVzVG9TaG93OiBzbGlkZXNQYyxcbiAgICAgICAgICAgIHNsaWRlc1RvU2Nyb2xsOiAxLFxuICAgICAgICAgICAgcm93czogcm93c1BjLFxuICAgICAgICAgICAgYXV0b3BsYXksXG4gICAgICAgICAgICBhdXRvcGxheVNwZWVkOiA1MDAwLFxuICAgICAgICAgICAgc3dpcGVUb1NsaWRlOiB0cnVlLFxuICAgICAgICAgICAgdmVydGljYWwsXG4gICAgICAgICAgICB2ZXJ0aWNhbFN3aXBpbmc6IHZlcnRpY2FsLFxuICAgICAgICAgICAgYWRhcHRpdmVIZWlnaHQsXG4gICAgICAgICAgICBhc05hdkZvcixcbiAgICAgICAgICAgIHBhdXNlT25Gb2N1czogcGF1c2UsXG4gICAgICAgICAgICBwYXVzZU9uSG92ZXI6IHBhdXNlLFxuICAgICAgICAgICAgZHJhZ2dhYmxlLFxuICAgICAgICAgICAgc3dpcGU6IGRyYWdnYWJsZSxcbiAgICAgICAgICAgIHJ0bCxcbiAgICAgICAgICAgIHZhcmlhYmxlV2lkdGgsXG4gICAgICAgICAgICByZXNwb25zaXZlOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBicmVha3BvaW50OiAxNjgwLFxuICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczogeyBzbGlkZXNUb1Nob3c6IHNsaWRlc0xhcHRvcCwgcm93czogcm93c0xhcHRvcCB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBicmVha3BvaW50OiAxMzY2LFxuICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczogeyBzbGlkZXNUb1Nob3c6IHNsaWRlc1RhYmxldCwgcm93czogcm93c1RhYmxldCB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBicmVha3BvaW50OiAxMjgwLFxuICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczogeyBzbGlkZXNUb1Nob3c6IHNsaWRlc01vYmlsZSwgcm93czogcm93c01vYmlsZSB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBicmVha3BvaW50OiAxMDIzLFxuICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TaG93OiBzbGlkZXNNb2JpbGVTbWFsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M6IHJvd3NNb2JpbGVTbWFsbCxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludDogNzY3LFxuICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TaG93OiBzbGlkZXNNb2JpbGVYU21hbGwsXG4gICAgICAgICAgICAgICAgICAgICAgICByb3dzOiByb3dzTW9iaWxlWFNtYWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmVydGljYWw6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmVydGljYWxTd2lwaW5nOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuICAgICAgICBpZiAodGhpcy5zbGlkZXJFbCAmJiAkKHRoaXMuc2xpZGVyRWwpLmhhc0NsYXNzKCdzbGljay1pbml0aWFsaXplZCcpKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICQodGhpcy5zbGlkZXJFbCkuc2xpY2soJ3Vuc2xpY2snKTtcbiAgICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgICAgIC8qIG5hZGEgKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5yZXNpemVIYW5kbGVyKSB7XG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5yZXNpemVIYW5kbGVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEVzcGVyYSBhICQgeSBzbGljazogcmVzdWVsdmUgKG5vIHJlY2hhemEpIHkgbG9ndWVhIHNpIG5vIGxsZWdhblxuICAgIHByaXZhdGUgd2FpdEZvclNsaWNrKHRpbWVvdXRNcyA9IDQwMDAsIHN0ZXBNcyA9IDEwMCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjaGVjayA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mICQgIT09ICd1bmRlZmluZWQnICYmICQuZm4gJiYgJC5mbi5zbGljaylcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICBpZiAocGVyZm9ybWFuY2Uubm93KCkgLSBzdGFydCA+IHRpbWVvdXRNcykge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgICAgICAgICAnW1NsaWNrSW5pdERpcmVjdGl2ZV0gU2xpY2sgbm8gZGlzcG9uaWJsZS4gwr9DYXJnYXN0ZSBqUXVlcnkgeSBzbGljaz8nXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNvbHZlKCk7IC8vIGV2aXRhIGVycm9yIHNpIG5vIGxsZWdhXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoY2hlY2ssIHN0ZXBNcyk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2staW5pdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvZGlyZWN0aXZlcy9zbGlkZXJzL3NsaWNrLWluaXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFFSCxTQUFTLEVBRVQsTUFBTSxFQUVOLFdBQVcsR0FDZCxNQUFNLGVBQWUsQ0FBQzs7QUFTdkIsTUFBTSxPQUFPLGtCQUFrQjtJQUkzQixZQUNZLElBQTZCLEVBQ1IsVUFBa0I7UUFEdkMsU0FBSSxHQUFKLElBQUksQ0FBeUI7UUFDUixlQUFVLEdBQVYsVUFBVSxDQUFRO0lBQ2hELENBQUM7SUFFSixLQUFLLENBQUMsZUFBZTtRQUNqQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUFFLE9BQU87UUFFaEQsOENBQThDO1FBQzlDLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRTdDLCtDQUErQztRQUMvQyxJQUFJLENBQUMsVUFBVSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFdBQVcsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRTtZQUNqRSxPQUFPLENBQUMsSUFBSSxDQUNSLGlGQUFpRixDQUNwRixDQUFDO1lBQ0YsT0FBTztTQUNWO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDdkMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFB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QUFJLFdBQVcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFLLEdBQUcsU0FBUyxFQUFFO29CQUN2QyxPQUFPLENBQUMsSUFBSSxDQUNSLDJFQUEyRSxDQUM5RSxDQUFDO29CQUNGLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUN6QjtnQkFDRCxVQUFVLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzlCLENBQUMsQ0FBQztZQUNGLEtBQUssRUFBRSxDQUFDO1FBQ1osQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQTlQUSxrQkFBa0IsNENBTWYsV0FBVzttR0FOZCxrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBSjlCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGtDQUFrQztvQkFDNUMsVUFBVSxFQUFFLElBQUk7aUJBQ25COzswQkFPUSxNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5qZWN0LFxuICAgIE9uRGVzdHJveSxcbiAgICBQTEFURk9STV9JRCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8vIHNpZ3VlIGlndWFsLCBzw7NsbyBwYXJhIFRTXG5kZWNsYXJlIGNvbnN0ICQ6IGFueTtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICcuanMtYWN0aXZlLXNsaWRlcixbYXBwU2xpY2tJbml0XScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgU2xpY2tJbml0RGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIHJlc2l6ZUhhbmRsZXI/OiAoKSA9PiB2b2lkO1xuICAgIHByaXZhdGUgc2xpZGVyRWw/OiBIVE1MRWxlbWVudDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGhvc3Q6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IG9iamVjdFxuICAgICkge31cblxuICAgIGFzeW5jIG5nQWZ0ZXJWaWV3SW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG5cbiAgICAgICAgLy8gMSkgRXNwZXJhIGEgcXVlIGpxdWVyeSArIHNsaWNrIGVzdMOpbiBsaXN0b3NcbiAgICAgICAgY29uc3Qgc2xpY2tSZWFkeSA9IGF3YWl0IHRoaXMud2FpdEZvclNsaWNrKCk7XG5cbiAgICAgICAgLy8gMikgU2kgTk8gZXN0w6FuLCBubyBzaWdhcyAoZXZpdGEgJCB1bmRlZmluZWQpXG4gICAgICAgIGlmICghc2xpY2tSZWFkeSB8fCB0eXBlb2YgJCA9PT0gJ3VuZGVmaW5lZCcgfHwgISQuZm4gfHwgISQuZm4uc2xpY2spIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICAnW1NsaWNrSW5pdERpcmVjdGl2ZV0galF1ZXJ5L1NsaWNrIG5vIGVzdMOhbiBkaXNwb25pYmxlcywgbm8gaW5pY2lhbGl6byBlbCBzbGlkZXInXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGdldCA9IChuYW1lOiBzdHJpbmcpID0+IHBhcmVudC5nZXRBdHRyaWJ1dGUobmFtZSk7XG4gICAgICAgIGNvbnN0IGdldEJvb2wgPSAobmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2ID0gZ2V0KG5hbWUpO1xuICAgICAgICAgICAgcmV0dXJuIHYgPT09ICd0cnVlJyB8fCB2ID09PSAnMScgfHwgdiA9PT0gJycgfHwgKHYgYXMgYW55KSA9PT0gdHJ1ZTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZ2V0TnVtID0gKG5hbWU6IHN0cmluZywgZGVmID0gMCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdiA9IE51bWJlcihnZXQobmFtZSkpO1xuICAgICAgICAgICAgcmV0dXJuIE51bWJlci5pc0Zpbml0ZSh2KSA/IHYgOiBkZWY7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3Qgc2xpZGVyTmFtZSA9IGdldCgnZGF0YS1zbGlkZXJfbmFtZScpIHx8ICcnO1xuICAgICAgICBjb25zdCBzbGlkZXJTcGVlZCA9IGdldE51bSgnZGF0YS1zbGlkZXJfc3BlZWQnLCA3NTApO1xuICAgICAgICBjb25zdCBzaG93QnRucyA9IGdldEJvb2woJ2RhdGEtc2xpZGVyX3Nob3didG5zJyk7XG4gICAgICAgIGNvbnN0IHNob3dEb3RzID0gZ2V0Qm9vbCgnZGF0YS1zbGlkZXJfc2hvd2RvdHMnKTtcbiAgICAgICAgY29uc3QgZmFkZSA9IGdldEJvb2woJ2RhdGEtc2xpZGVyX2ZhZGUnKTtcbiAgICAgICAgY29uc3QgY2VudGVyTW9kZSA9IGdldEJvb2woJ2RhdGEtc2xpZGVyX2NlbnRlcm1vZGUnKTtcbiAgICAgICAgY29uc3QgYXV0b3BsYXkgPSBnZXRCb29sKCdkYXRhLXNsaWRlcl9hdXRvcGxheScpO1xuICAgICAgICBjb25zdCBzbGlkZXNQYyA9IGdldE51bSgnZGF0YS1zbGlkZXNfcGMnLCAxKTtcbiAgICAgICAgY29uc3Qgc2xpZGVzTGFwdG9wID0gZ2V0TnVtKCdkYXRhLXNsaWRlc19sYXB0b3AnKSB8fCBzbGlkZXNQYztcbiAgICAgICAgY29uc3Qgc2xpZGVzVGFibGV0ID0gZ2V0TnVtKCdkYXRhLXNsaWRlc190YWJsZXQnKSB8fCBzbGlkZXNMYXB0b3A7XG4gICAgICAgIGNvbnN0IHNsaWRlc01vYmlsZSA9IGdldE51bSgnZGF0YS1zbGlkZXNfbW9iaWxlJykgfHwgc2xpZGVzVGFibGV0O1xuICAgICAgICBjb25zdCBzbGlkZXNNb2JpbGVTbWFsbCA9XG4gICAgICAgICAgICBnZXROdW0oJ2RhdGEtc2xpZGVzX21vYmlsZV9zbWFsbCcpIHx8IHNsaWRlc01vYmlsZTtcbiAgICAgICAgY29uc3Qgc2xpZGVzTW9iaWxlWFNtYWxsID1cbiAgICAgICAgICAgIGdldE51bSgnZGF0YS1zbGlkZXNfbW9iaWxlX3hzbWFsbCcpIHx8IHNsaWRlc01vYmlsZVNtYWxsO1xuICAgICAgICBjb25zdCBpbmZpbml0ZSA9IGdldEJvb2woJ2RhdGEtc2xpZGVzX2luZmluaXRlJyk7XG5cbiAgICAgICAgbGV0IHJvd3NQYyA9IGdldE51bSgnZGF0YS1zbGlkZXNyb3dzX3BjJywgMSk7XG4gICAgICAgIGxldCByb3dzTGFwdG9wID0gZ2V0TnVtKCdkYXRhLXNsaWRlc3Jvd3NfbGFwdG9wJywgMSk7XG4gICAgICAgIGxldCByb3dzVGFibGV0ID0gZ2V0TnVtKCdkYXRhLXNsaWRlc3Jvd3NfdGFibGV0JywgMSk7XG4gICAgICAgIGxldCByb3dzTW9iaWxlID0gZ2V0TnVtKCdkYXRhLXNsaWRlc3Jvd3NfbW9iaWxlJywgMSk7XG4gICAgICAgIGxldCByb3dzTW9iaWxlU21hbGwgPSBnZXROdW0oJ2RhdGEtc2xpZGVzcm93c19tb2JpbGVfc21hbGwnLCAxKTtcbiAgICAgICAgbGV0IHJvd3NNb2JpbGVYU21hbGwgPSBnZXROdW0oJ2RhdGEtc2xpZGVzcm93c19tb2JpbGVfeHNtYWxsJywgMSk7XG5cbiAgICAgICAgY29uc3QgYXNOYXZGb3IgPSBnZXQoJ2RhdGEtc2xpZGVyX2FzTmF2Rm9yJykgfHwgdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCB2ZXJ0aWNhbCA9IGdldEJvb2woJ2RhdGEtc2xpZGVyX3ZlcnRpY2FsJyk7XG4gICAgICAgIGNvbnN0IGFkYXB0aXZlSGVpZ2h0ID0gZ2V0Qm9vbCgnZGF0YS1zbGlkZXJfYWRhcHRpdmVfaGVpZ2h0Jyk7XG4gICAgICAgIGNvbnN0IHBhdXNlID0gZ2V0Qm9vbCgnZGF0YS1zbGlkZXJfcGF1c2UnKTtcbiAgICAgICAgY29uc3QgZHJhZ2dhYmxlID0gZ2V0Qm9vbCgnZGF0YS1zbGlkZXJfZHJhZ2dhYmxlJyk7XG4gICAgICAgIGNvbnN0IHJ0bCA9IGdldEJvb2woJ2RhdGEtc2xpZGVyX3J0bCcpO1xuICAgICAgICBjb25zdCB2YXJpYWJsZVdpZHRoID0gZ2V0Qm9vbCgnZGF0YS1zbGlkZXJfdmFyaWFibGVfd2lkdGgnKTtcbiAgICAgICAgY29uc3QgYnRuc01vZGUgPSBnZXQoJ2RhdGEtc2xpZGVyX2J0bnMnKSB8fCAnJztcblxuICAgICAgICBpZiAod2luZG93LmlubmVyV2lkdGggPCA1NDAgJiYgcGFyZW50LmNsYXNzTGlzdC5jb250YWlucygncm93cy0yJykpIHtcbiAgICAgICAgICAgIHJvd3NQYyA9IDE7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzbGlkZXJBcnJvd3MgPSBwYXJlbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICcuanMtc2xpZGVyLWFycm93cydcbiAgICAgICAgKSBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgICAgIGNvbnN0IHNsaWRlckRvdHMgPSBwYXJlbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICcuanMtc2xpZGVyLWRvdHMnXG4gICAgICAgICkgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgICAgICBjb25zdCBzbGlkZXJTZWxlY3RvciA9IHBhcmVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgJy4nICsgc2xpZGVyTmFtZVxuICAgICAgICApIGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgICAgICAgaWYgKCFzbGlkZXJTZWxlY3RvcikgcmV0dXJuO1xuICAgICAgICB0aGlzLnNsaWRlckVsID0gc2xpZGVyU2VsZWN0b3I7XG5cbiAgICAgICAgaWYgKCQoc2xpZGVyU2VsZWN0b3IpLmhhc0NsYXNzKCdzbGljay1pbml0aWFsaXplZCcpKSByZXR1cm47XG5cbiAgICAgICAgbGV0IHByZXZBcnJvdyA9ICcnO1xuICAgICAgICBsZXQgbmV4dEFycm93ID0gJyc7XG4gICAgICAgIGlmIChidG5zTW9kZS5pbmNsdWRlcygnaWNvbi1zbWFsbCcpKSB7XG4gICAgICAgICAgICBwcmV2QXJyb3cgKz1cbiAgICAgICAgICAgICAgICBcIjxidXR0b24gdHlwZT0nYnV0dG9uJyBjbGFzcz0nc2xpY2stcHJldiBpY29uLXNtYWxsJz48c3ZnIGFyaWEtaGlkZGVuPSd0cnVlJyBmb2N1c2FibGU9J2ZhbHNlJyBjbGFzcz0nbGluZSc+PHVzZSBocmVmPScvYXNzZXRzL2JhYnlsb24vc3ZnL2Fycm93LWxpbmUuc3ZnI2Fycm93LWxpbmUnPjwvdXNlPjwvc3ZnPjxzdmcgYXJpYS1oaWRkZW49J3RydWUnIGZvY3VzYWJsZT0nZmFsc2UnPjx1c2UgaHJlZj0nL2Fzc2V0cy9iYWJ5bG9uL3N2Zy9pY29uLWFycm93LnN2ZyNpY29uLWFycm93Jz48L3VzZT48L3N2Zz48L2J1dHRvbj5cIjtcbiAgICAgICAgICAgIG5leHRBcnJvdyArPVxuICAgICAgICAgICAgICAgIFwiPGJ1dHRvbiB0eXBlPSdidXR0b24nIGNsYXNzPSdzbGljay1uZXh0IGljb24tc21hbGwnPjxzdmcgYXJpYS1oaWRkZW49J3RydWUnIGZvY3VzYWJsZT0nZmFsc2UnIGNsYXNzPSdsaW5lJz48dXNlIGhyZWY9Jy9hc3NldHMvYmFieWxvbi9zdmcvYXJyb3ctbGluZS5zdmcjYXJyb3ctbGluZSc+PC91c2U+PC9zdmc+PHN2ZyBhcmlhLWhpZGRlbj0ndHJ1ZScgZm9jdXNhYmxlPSdmYWxzZSc+PHVzZSBocmVmPScvYXNzZXRzL2JhYnlsb24vc3ZnL2ljb24tYXJyb3cuc3ZnI2ljb24tYXJyb3cnPjwvdXNlPjwvc3ZnPjwvYnV0dG9uPlwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChidG5zTW9kZS5pbmNsdWRlcygnaWNvbi1sYXJnZScpKSB7XG4gICAgICAgICAgICBwcmV2QXJyb3cgKz1cbiAgICAgICAgICAgICAgICBcIjxidXR0b24gdHlwZT0nYnV0dG9uJyBjbGFzcz0nc2xpY2stcHJldiBpY29uLWxhcmdlJz48c3ZnIGFyaWEtaGlkZGVuPSd0cnVlJyBmb2N1c2FibGU9J2ZhbHNlJz48dXNlIGhyZWY9Jy9hc3NldHMvYmFieWxvbi9zdmcvaWNvbi1hcnJvdy1sYXJnZS5zdmcjaWNvbi1hcnJvdy1sYXJnZSc+PC91c2U+PC9zdmc+PC9idXR0b24+XCI7XG4gICAgICAgICAgICBuZXh0QXJyb3cgKz1cbiAgICAgICAgICAgICAgICBcIjxidXR0b24gdHlwZT0nYnV0dG9uJyBjbGFzcz0nc2xpY2stbmV4dCBpY29uLWxhcmdlJz48c3ZnIGFyaWEtaGlkZGVuPSd0cnVlJyBmb2N1c2FibGU9J2ZhbHNlJz48dXNlIGhyZWY9Jy9hc3NldHMvYmFieWxvbi9zdmcvaWNvbi1hcnJvdy1sYXJnZS5zdmcjaWNvbi1hcnJvdy1sYXJnZSc+PC91c2U+PC9zdmc+PC9idXR0b24+XCI7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB1cGRhdGVWZXJ0aWNhbEhlaWdodCA9ICgpID0+IHtcbiAgICAgICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuICAgICAgICAgICAgY29uc3QgJGVsID0gJChzbGlkZXJTZWxlY3Rvcik7XG5cbiAgICAgICAgICAgIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA+PSA1NDEpIHtcbiAgICAgICAgICAgICAgICBsZXQgbWF4SCA9IDA7XG4gICAgICAgICAgICAgICAgJGVsLmZpbmQoJy5zbGljay1zbGlkZTpub3QoLnNsaWNrLWNsb25lZCknKS5lYWNoKFxuICAgICAgICAgICAgICAgICAgICAoXzogbnVtYmVyLCBlbDogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGggPSAoJChlbCkgYXMgYW55KS5vdXRlckhlaWdodCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGggPiBtYXhIKSBtYXhIID0gaDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgJGVsLmZpbmQoJy5zbGljay1zbGlkZScpLmVhY2goKF86IG51bWJlciwgZWw6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICgkKGVsKSBhcyBhbnkpLmNzcygnaGVpZ2h0JywgYCR7bWF4SH1weGApO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAkKHNsaWRlclNlbGVjdG9yKS5maW5kKCcuc2xpY2stc2xpZGUnKS5jc3MoJ2hlaWdodCcsICcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodmVydGljYWwpIHtcbiAgICAgICAgICAgICQoc2xpZGVyU2VsZWN0b3IpLm9uKCdzZXRQb3NpdGlvbicsIHVwZGF0ZVZlcnRpY2FsSGVpZ2h0KTtcbiAgICAgICAgICAgICQoc2xpZGVyU2VsZWN0b3IpLm9uKCdpbml0JywgKCkgPT5cbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHVwZGF0ZVZlcnRpY2FsSGVpZ2h0LCAwKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMucmVzaXplSGFuZGxlciA9ICgpID0+IHVwZGF0ZVZlcnRpY2FsSGVpZ2h0KCk7XG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5yZXNpemVIYW5kbGVyLCB7XG4gICAgICAgICAgICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJChzbGlkZXJTZWxlY3Rvcikuc2xpY2soe1xuICAgICAgICAgICAgZG90czogc2hvd0RvdHMsXG4gICAgICAgICAgICBhcnJvd3M6IHNob3dCdG5zLFxuICAgICAgICAgICAgYXBwZW5kQXJyb3dzOiBzbGlkZXJBcnJvd3MgfHwgcGFyZW50LFxuICAgICAgICAgICAgcHJldkFycm93LFxuICAgICAgICAgICAgbmV4dEFycm93LFxuICAgICAgICAgICAgYXBwZW5kRG90czogc2xpZGVyRG90cyB8fCBwYXJlbnQsXG4gICAgICAgICAgICBpbmZpbml0ZSxcbiAgICAgICAgICAgIHVzZVRyYW5zZm9ybTogdHJ1ZSxcbiAgICAgICAgICAgIGZhZGUsXG4gICAgICAgICAgICBjZW50ZXJNb2RlLFxuICAgICAgICAgICAgY2VudGVyUGFkZGluZzogJzAnLFxuICAgICAgICAgICAgY3NzRWFzZTogJ2N1YmljLWJlemllcigwLjc4NSwgMC4xMzUsIDAuMTUsIDAuODYpJyxcbiAgICAgICAgICAgIHNwZWVkOiBzbGlkZXJTcGVlZCxcbiAgICAgICAgICAgIHNsaWRlc1RvU2hvdzogc2xpZGVzUGMsXG4gICAgICAgICAgICBzbGlkZXNUb1Njcm9sbDogMSxcbiAgICAgICAgICAgIHJvd3M6IHJvd3NQYyxcbiAgICAgICAgICAgIGF1dG9wbGF5LFxuICAgICAgICAgICAgYXV0b3BsYXlTcGVlZDogNTAwMCxcbiAgICAgICAgICAgIHN3aXBlVG9TbGlkZTogdHJ1ZSxcbiAgICAgICAgICAgIHZlcnRpY2FsLFxuICAgICAgICAgICAgdmVydGljYWxTd2lwaW5nOiB2ZXJ0aWNhbCxcbiAgICAgICAgICAgIGFkYXB0aXZlSGVpZ2h0LFxuICAgICAgICAgICAgYXNOYXZGb3IsXG4gICAgICAgICAgICBwYXVzZU9uRm9jdXM6IHBhdXNlLFxuICAgICAgICAgICAgcGF1c2VPbkhvdmVyOiBwYXVzZSxcbiAgICAgICAgICAgIGRyYWdnYWJsZSxcbiAgICAgICAgICAgIHN3aXBlOiBkcmFnZ2FibGUsXG4gICAgICAgICAgICBydGwsXG4gICAgICAgICAgICB2YXJpYWJsZVdpZHRoLFxuICAgICAgICAgICAgcmVzcG9uc2l2ZTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludDogMTY4MCxcbiAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M6IHsgc2xpZGVzVG9TaG93OiBzbGlkZXNMYXB0b3AsIHJvd3M6IHJvd3NMYXB0b3AgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludDogMTM2NixcbiAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M6IHsgc2xpZGVzVG9TaG93OiBzbGlkZXNUYWJsZXQsIHJvd3M6IHJvd3NUYWJsZXQgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludDogMTI4MCxcbiAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M6IHsgc2xpZGVzVG9TaG93OiBzbGlkZXNNb2JpbGUsIHJvd3M6IHJvd3NNb2JpbGUgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludDogMTAyMyxcbiAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1RvU2hvdzogc2xpZGVzTW9iaWxlU21hbGwsXG4gICAgICAgICAgICAgICAgICAgICAgICByb3dzOiByb3dzTW9iaWxlU21hbGwsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrcG9pbnQ6IDc2NyxcbiAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1RvU2hvdzogc2xpZGVzTW9iaWxlWFNtYWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm93czogcm93c01vYmlsZVhTbWFsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsU3dpcGluZzogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHNsaWRlcyA9IHNsaWRlclNlbGVjdG9yLnF1ZXJ5U2VsZWN0b3JBbGwoJy5zbGljay1zbGlkZScpO1xuXG4gICAgICAgIGNvbnN0IHRvZ2dsZUJvdG9uQWN0aXZvID0gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDwgMTAyNCkge1xuICAgICAgICAgICAgICAgIHNsaWRlcy5mb3JFYWNoKChzbGlkZSkgPT4gc2xpZGUuY2xhc3NMaXN0LmFkZCgnYm90b25hY3Rpdm8nKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNsaWRlcy5mb3JFYWNoKChzbGlkZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgc2xpZGUuY2xhc3NMaXN0LnJlbW92ZSgnYm90b25hY3Rpdm8nKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gZWplY3V0YW1vcyBhbCBpbmljaWFyXG4gICAgICAgIHRvZ2dsZUJvdG9uQWN0aXZvKCk7XG5cbiAgICAgICAgLy8geSBhbCByZWRpbWVuc2lvbmFyXG4gICAgICAgIGNvbnN0IHJlc2l6ZUhhbmRsZXJMb2NhbCA9ICgpID0+IHRvZ2dsZUJvdG9uQWN0aXZvKCk7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCByZXNpemVIYW5kbGVyTG9jYWwsIHtcbiAgICAgICAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIHNpIHlhIHVzYXMgdGhpcy5yZXNpemVIYW5kbGVyLCBwdWVkZXMgcmV1dGlsaXphcmxvOlxuICAgICAgICB0aGlzLnJlc2l6ZUhhbmRsZXIgPSByZXNpemVIYW5kbGVyTG9jYWw7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuICAgICAgICBpZiAodHlwZW9mICQgPT09ICd1bmRlZmluZWQnIHx8ICEkLmZuPy5zbGljaykgcmV0dXJuO1xuXG4gICAgICAgIGlmICh0aGlzLnNsaWRlckVsICYmICQodGhpcy5zbGlkZXJFbCkuaGFzQ2xhc3MoJ3NsaWNrLWluaXRpYWxpemVkJykpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgJCh0aGlzLnNsaWRlckVsKS5zbGljaygndW5zbGljaycpO1xuICAgICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAgICAgLyogbmFkYSAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnJlc2l6ZUhhbmRsZXIpIHtcbiAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnJlc2l6ZUhhbmRsZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGV2dWVsdmUgdHJ1ZSBzaSBqUXVlcnkrU2xpY2sgbGxlZ2FuIGEgZXN0YXIgZGlzcG9uaWJsZXMsIGZhbHNlIHNpIG5vXG4gICAgcHJpdmF0ZSB3YWl0Rm9yU2xpY2sodGltZW91dE1zID0gODAwMCwgc3RlcE1zID0gMTAwKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmYWxzZSk7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gcGVyZm9ybWFuY2Uubm93KCk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPGJvb2xlYW4+KChyZXNvbHZlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjaGVjayA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mICQgIT09ICd1bmRlZmluZWQnICYmICQuZm4gJiYgJC5mbi5zbGljaykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnQgPiB0aW1lb3V0TXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ1tTbGlja0luaXREaXJlY3RpdmVdIFNsaWNrIG5vIGRpc3BvbmlibGUgdHJhcyB0aW1lb3V0LiDCv1NjcmlwdHMgY2FyZ2Fkb3M/J1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZShmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoY2hlY2ssIHN0ZXBNcyk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19