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.
- package/esm2022/lib/Enum/buttons-type.enum.mjs +6 -0
- package/esm2022/lib/Enum/index.mjs +3 -0
- package/esm2022/lib/Enum/logo-type.enum.mjs +10 -0
- package/esm2022/lib/Enum/services.enum.mjs +8 -0
- package/esm2022/lib/Enum/views.enum.mjs +5 -0
- package/esm2022/lib/components/core/babylon-404/babylon-404.component.mjs +18 -5
- package/esm2022/lib/components/core/babylon-404/babylon-404.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-404/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-action-banner/babylon-action-banner.component.mjs +30 -0
- package/esm2022/lib/components/core/babylon-action-banner/babylon-action-banner.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-action-banner/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-advantages/babylon-advantages-info.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-advantages/babylon-advantages.component.mjs +29 -5
- package/esm2022/lib/components/core/babylon-advantages/babylon-advantages.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-advantages/index.mjs +4 -0
- package/esm2022/lib/components/core/babylon-advantages-v2/babylon-advantages-v2.component.mjs +9 -5
- package/esm2022/lib/components/core/babylon-advantages-v2/index.mjs +2 -0
- package/esm2022/lib/components/core/babylon-av-c4-img-text/babylon-av-c4-img-text.component.mjs +19 -0
- package/esm2022/lib/components/core/babylon-av-c4-img-text/index.mjs +2 -0
- package/esm2022/lib/components/core/babylon-banner-gallery/babylon-banner-gallery.component.mjs +31 -5
- package/esm2022/lib/components/core/babylon-banner-gallery/babylon-banner-gallery.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-banner-gallery/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-banner-info/babylon-banner-info.component.mjs +133 -6
- package/esm2022/lib/components/core/babylon-banner-info/babylon-banner-info.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-banner-info/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-banner-newsletter/babylon-banner-newsletter.component.mjs +39 -5
- package/esm2022/lib/components/core/babylon-banner-newsletter/babylon-banner-newsletter.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-banner-newsletter/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-blog-details/babylon-blog-details.component.mjs +98 -5
- package/esm2022/lib/components/core/babylon-blog-details/babylon-blog-details.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-blog-details/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-blog-list/babylon-blog-list.component.mjs +80 -6
- package/esm2022/lib/components/core/babylon-blog-list/babylon-blog-list.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-blog-list/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-breadcrumb/babylon-breadcrumb.component.mjs +14 -5
- package/esm2022/lib/components/core/babylon-breadcrumb/babylon-breadcrumb.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-breadcrumb/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-color-picker/babylon-color-picker.component.mjs +267 -0
- package/esm2022/lib/components/core/babylon-color-picker/index.mjs +2 -0
- package/esm2022/lib/components/core/babylon-comingsoon/babylon-comingsoon.component.mjs +10 -5
- package/esm2022/lib/components/core/babylon-comingsoon/babylon-comingsoon.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-comingsoon/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-contact-address/babylon-contact-address.component.mjs +19 -0
- package/esm2022/lib/components/core/babylon-contact-address/babylon-contact-address.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-contact-address/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-contact-form/babylon-contact-form.component.mjs +134 -20
- package/esm2022/lib/components/core/babylon-contact-form/babylon-contact-form.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-contact-form/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-contact-how/babylon-contact-how.component.mjs +23 -6
- package/esm2022/lib/components/core/babylon-contact-how/babylon-contact-how.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-contact-how/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-contact-map/babylon-contact-map.component.mjs +29 -6
- package/esm2022/lib/components/core/babylon-contact-map/babylon-contact-map.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-contact-map/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-container-text-l2/babylon-container-text-l2.component.mjs +5 -3
- package/esm2022/lib/components/core/babylon-container-text-l2/index.mjs +2 -0
- package/esm2022/lib/components/core/babylon-engine/babylon-engine.component.mjs +246 -22
- package/esm2022/lib/components/core/babylon-engine/babylon-engine.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-engine/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-engine-modal/babylon-engine-modal.component.mjs +225 -33
- package/esm2022/lib/components/core/babylon-engine-modal/babylon-engine-modal.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-engine-modal/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-external-script/babylon-external-script.component.mjs +80 -0
- package/esm2022/lib/components/core/babylon-external-script/babylon-external-script.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-external-script/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-faq/babylon-faq.component.mjs +38 -5
- package/esm2022/lib/components/core/babylon-faq/babylon-faq.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-faq/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-faq-v2/babylon-faq-v2.component.mjs +18 -5
- package/esm2022/lib/components/core/babylon-faq-v2/index.mjs +2 -0
- package/esm2022/lib/components/core/babylon-feature-pills-number/babylon-feature-pills-number.component.mjs +9 -5
- package/esm2022/lib/components/core/babylon-feature-pills-number/index.mjs +2 -0
- package/esm2022/lib/components/core/babylon-features-slider/babylon-features-slider.component.mjs +28 -6
- package/esm2022/lib/components/core/babylon-features-slider/babylon-features-slider.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-features-slider/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-filter-modal/babylon-filter-modal.component.mjs +16 -6
- package/esm2022/lib/components/core/babylon-filter-modal/index.mjs +2 -0
- package/esm2022/lib/components/core/babylon-floating-buttons/babylon-floating-buttons.component.mjs +121 -0
- package/esm2022/lib/components/core/babylon-floating-buttons/babylon-floating-buttons.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-floating-buttons/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-footer-contact/babylon-footer-contact.component.mjs +25 -5
- package/esm2022/lib/components/core/babylon-footer-contact/babylon-footer-contact.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-footer-contact/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-footer-links/babylon-footer-links.component.mjs +13 -5
- package/esm2022/lib/components/core/babylon-footer-links/babylon-footer-links.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-footer-links/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-footer-logos/babylon-footer-logos.component.mjs +23 -5
- package/esm2022/lib/components/core/babylon-footer-logos/babylon-footer-logos.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-footer-logos/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-footer-social/babylon-footer-social.component.mjs +14 -5
- package/esm2022/lib/components/core/babylon-footer-social/babylon-footer-social.interface.mjs +3 -0
- package/esm2022/lib/components/core/babylon-footer-social/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-gallery/babylon-gallery.component.mjs +72 -23
- package/esm2022/lib/components/core/babylon-gallery/babylon-gallery.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-gallery/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-global-modal/babylon-global-modal.component.mjs +38 -0
- package/esm2022/lib/components/core/babylon-global-modal/babylon-global-modal.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-global-modal/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-grid-gallery/babylon-grid-gallery.component.mjs +42 -6
- package/esm2022/lib/components/core/babylon-grid-gallery/babylon-grid-gallery.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-grid-gallery/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-guests-popup/babylon-guests-popup.component.mjs +91 -7
- package/esm2022/lib/components/core/babylon-guests-popup/babylon-guests-popup.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-guests-popup/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-head-intro/babylon-head-intro.component.mjs +24 -5
- package/esm2022/lib/components/core/babylon-head-intro/babylon-head-intro.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-head-intro/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-header-book-show/babylon-header-book-show.component.mjs +114 -52
- package/esm2022/lib/components/core/babylon-header-book-show/babylon-header-book-show.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-header-book-show/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-header-clear/babylon-header-clear.component.mjs +143 -53
- package/esm2022/lib/components/core/babylon-header-clear/babylon-header-clear.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-header-clear/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-header-menu-center/babylon-header-menu-center.component.mjs +148 -52
- package/esm2022/lib/components/core/babylon-header-menu-center/babylon-header-menu-center.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-header-menu-center/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-header-menu-logo-center/babylon-header-menu-logo-center.component.mjs +122 -0
- package/esm2022/lib/components/core/babylon-header-menu-logo-center/babylon-header-menu-logo-center.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-header-menu-logo-center/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-header-menu-show/babylon-header-menu-show.component.mjs +92 -52
- package/esm2022/lib/components/core/babylon-header-menu-show/babylon-header-menu-show.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-header-menu-show/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-header-mobile/babylon-header-mobile.component.mjs +156 -0
- package/esm2022/lib/components/core/babylon-header-mobile/babylon-header-mobile.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-header-mobile/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-hotels-list/babylon-hotel.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-hotels-list/babylon-hotels-list.component.mjs +12 -5
- package/esm2022/lib/components/core/babylon-hotels-list/babylon-hotels-list.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-hotels-list/index.mjs +4 -0
- package/esm2022/lib/components/core/babylon-hotels-slider/babylon-hotels-slider.component.mjs +19 -6
- package/esm2022/lib/components/core/babylon-hotels-slider/babylon-hotels-slider.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-hotels-slider/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-info-big/babylon-info-big.component.mjs +19 -5
- package/esm2022/lib/components/core/babylon-info-big/babylon-info-big.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-info-big/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-info-big-v3/babylon-info-big-v3.component.mjs +9 -5
- package/esm2022/lib/components/core/babylon-info-big-v3/index.mjs +2 -0
- package/esm2022/lib/components/core/babylon-info-grid/babylon-info-grid.component.mjs +31 -7
- package/esm2022/lib/components/core/babylon-info-grid/babylon-info-grid.interface.mjs +3 -0
- package/esm2022/lib/components/core/babylon-info-grid/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-info-img/babylon-info-img.component.mjs +95 -5
- package/esm2022/lib/components/core/babylon-info-img/babylon-info-img.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-info-img/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-info-img-slider/babylon-info-img-slider.component.mjs +56 -0
- package/esm2022/lib/components/core/babylon-info-img-slider/babylon-info-img-slider.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-info-img-slider/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-info-intro/babylon-info-intro.component.mjs +62 -5
- package/esm2022/lib/components/core/babylon-info-intro/babylon-info-intro.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-info-intro/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-info-show-img/babylon-info-show-img.component.mjs +7 -5
- package/esm2022/lib/components/core/babylon-info-show-img/index.mjs +2 -0
- package/esm2022/lib/components/core/babylon-info-zig-zag/babylon-info-zig-zag.component.mjs +31 -5
- package/esm2022/lib/components/core/babylon-info-zig-zag/babylon-info-zig-zag.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-info-zig-zag/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-info-zig-zag-counter/babylon-info-zig-zag-counter.component.mjs +92 -0
- package/esm2022/lib/components/core/babylon-info-zig-zag-counter/babylon-info-zig-zag-counter.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-info-zig-zag-counter/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-info-zigzag-v2/babylon-info-zigzag-v2.component.mjs +19 -5
- package/esm2022/lib/components/core/babylon-info-zigzag-v2/babylon-info-zigzag-v2.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-info-zigzag-v2/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-info2col-img/babylon-info2col-img.component.mjs +36 -0
- package/esm2022/lib/components/core/babylon-info2col-img/babylon-info2col-img.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-info2col-img/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-info2img/babylon-info2img.component.mjs +30 -5
- package/esm2022/lib/components/core/babylon-info2img/babylon-info2img.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-info2img/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-info2img-big/babylon-info2img-big.component.mjs +38 -5
- package/esm2022/lib/components/core/babylon-info2img-big/babylon-info2img-big.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-info2img-big/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-info3img/babylon-info3img.component.mjs +19 -5
- package/esm2022/lib/components/core/babylon-info3img/index.mjs +2 -0
- package/esm2022/lib/components/core/babylon-info4img/babylon-info4img.component.mjs +23 -5
- package/esm2022/lib/components/core/babylon-info4img/babylon-info4img.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-info4img/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-items-grid/babylon-items-grid.component.mjs +21 -5
- package/esm2022/lib/components/core/babylon-items-grid/babylon-items-grid.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-items-grid/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-language-modal/babylon-language-modal.component.mjs +13 -7
- package/esm2022/lib/components/core/babylon-language-modal/babylon-language-modal.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-language-modal/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-legal/babylon-legal.component.mjs +19 -5
- package/esm2022/lib/components/core/babylon-legal/babylon-legal.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-legal/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-list-c3-img-txt/babylon-list-c3-img-txt.component.mjs +12 -5
- package/esm2022/lib/components/core/babylon-list-c3-img-txt/index.mjs +2 -0
- package/esm2022/lib/components/core/babylon-list-grid/babylon-list-grid.component.mjs +15 -5
- package/esm2022/lib/components/core/babylon-list-grid/babylon-list-grid.interface.mjs +3 -0
- package/esm2022/lib/components/core/babylon-list-grid/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-modal-menu/babylon-modal-menu.component.mjs +139 -0
- package/esm2022/lib/components/core/babylon-modal-multiple-motors/babylon-modal-multiple-motors.component.mjs +46 -0
- package/esm2022/lib/components/core/babylon-modal-multiple-motors/babylon-modal-multiple-motors.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-modal-multiple-motors/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-modal-popup/babylon-modal-popup.component.mjs +39 -0
- package/esm2022/lib/components/core/babylon-modal-popup/babylon-modal-popup.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-modal-popup/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-newsletter/babylon-newsletter.component.mjs +52 -9
- package/esm2022/lib/components/core/babylon-newsletter/babylon-newsletter.interface.mjs +3 -0
- package/esm2022/lib/components/core/babylon-newsletter/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-offer-detail/babylon-offer-detail.component.mjs +37 -5
- package/esm2022/lib/components/core/babylon-offer-detail/babylon-offer-detail.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-offer-detail/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-offer-popup/babylon-offer-popup.component.mjs +34 -11
- package/esm2022/lib/components/core/babylon-offer-popup/babylon-offer-popup.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-offer-popup/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-offer-popupV2/babylon-offer-popup-v2.component.mjs +49 -0
- package/esm2022/lib/components/core/babylon-offer-popupV2/babylon-offer-popup-v2.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-offer-popupV2/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-offer-slider/babylon-offer-slider.component.mjs +20 -5
- package/esm2022/lib/components/core/babylon-offer-slider/babylon-offer-slider.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-offer-slider/babylon-offer.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-offer-slider/index.mjs +4 -0
- package/esm2022/lib/components/core/babylon-offers-list/babylon-offers-list.component.mjs +47 -5
- package/esm2022/lib/components/core/babylon-offers-list/babylon-offers-list.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-offers-list/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-offers-slider/babylon-offers-slider.component.mjs +20 -5
- package/esm2022/lib/components/core/babylon-offers-slider/index.mjs +2 -0
- package/esm2022/lib/components/core/babylon-preload/babylon-preload.component.mjs +28 -4
- package/esm2022/lib/components/core/babylon-preload/index.mjs +2 -0
- package/esm2022/lib/components/core/babylon-press-list/babylon-press-list.component.mjs +27 -0
- package/esm2022/lib/components/core/babylon-press-list/babylon-press-list.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-press-list/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-room-details/babylon-room-detail.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-room-details/babylon-room-details.component.mjs +19 -5
- package/esm2022/lib/components/core/babylon-room-details/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-rooms-cols/babylon-rooms-cols.component.mjs +158 -5
- package/esm2022/lib/components/core/babylon-rooms-cols/babylon-rooms-cols.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-rooms-cols/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-rooms-grid/babylon-rooms-grid.component.mjs +19 -6
- package/esm2022/lib/components/core/babylon-rooms-grid/babylon-rooms-grid.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-rooms-grid/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-rooms-list/babylon-rooms-list.component.mjs +32 -6
- package/esm2022/lib/components/core/babylon-rooms-list/babylon-rooms-list.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-rooms-list/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-rooms-slider/babylon-room.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-rooms-slider/babylon-rooms-slider.component.mjs +25 -5
- package/esm2022/lib/components/core/babylon-rooms-slider/babylon-rooms-slider.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-rooms-slider/babylon-rooms-text-info.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-rooms-slider/index.mjs +5 -0
- package/esm2022/lib/components/core/babylon-services-slider/babylon-service-slider.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-services-slider/babylon-services-slider.component.mjs +17 -5
- package/esm2022/lib/components/core/babylon-services-slider/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-sli-c1-img-text/babylon-sli-c1-img-text.component.mjs +12 -0
- package/esm2022/lib/components/core/babylon-sli-c1-img-text/index.mjs +2 -0
- package/esm2022/lib/components/core/babylon-sli-c5-img-txt/babylon-sli-c5-img-txt.component.mjs +13 -0
- package/esm2022/lib/components/core/babylon-sli-c5-img-txt/index.mjs +2 -0
- package/esm2022/lib/components/core/babylon-slider-img-static/babylon-slider-img-static.component.mjs +12 -5
- package/esm2022/lib/components/core/babylon-slider-img-static/index.mjs +2 -0
- package/esm2022/lib/components/core/babylon-slider-img-static-v2/babylon-slider-img-static-v2.component.mjs +12 -5
- package/esm2022/lib/components/core/babylon-slider-img-static-v2/index.mjs +2 -0
- package/esm2022/lib/components/core/babylon-slider-img-video/babylon-slider-img-video.component.mjs +24 -4
- package/esm2022/lib/components/core/babylon-slider-img-video/index.mjs +2 -0
- package/esm2022/lib/components/core/babylon-slider2col/babylon-slider2col.component.mjs +28 -5
- package/esm2022/lib/components/core/babylon-slider2col/index.mjs +2 -0
- package/esm2022/lib/components/core/babylon-slider2items/babylon-slider2items.component.mjs +15 -5
- package/esm2022/lib/components/core/babylon-slider2items/babylon-slider2items.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-slider2items/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-slider3col/babylon-slider3col.component.mjs +59 -0
- package/esm2022/lib/components/core/babylon-slider3col/index.mjs +2 -0
- package/esm2022/lib/components/core/babylon-slider3col-clear/babylon-slider3col-clear.component.mjs +11 -0
- package/esm2022/lib/components/core/babylon-slider3col-clear/index.mjs +2 -0
- package/esm2022/lib/components/core/babylon-slider3items/babylon-slider3items.component.mjs +14 -5
- package/esm2022/lib/components/core/babylon-slider3items/babylon-slider3items.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-slider3items/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-slider4col/babylon-slider4col.component.mjs +37 -5
- package/esm2022/lib/components/core/babylon-slider4col/index.mjs +2 -0
- package/esm2022/lib/components/core/babylon-social-bar/babylon-social-bar.component.mjs +14 -5
- package/esm2022/lib/components/core/babylon-social-bar/index.mjs +2 -0
- package/esm2022/lib/components/core/babylon-static-footer/babylon-static-footer.component.mjs +104 -6
- package/esm2022/lib/components/core/babylon-static-footer/babylon-static-footer.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-static-footer/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-static-footer-v2/babylon-static-footer-v2.component.mjs +48 -8
- package/esm2022/lib/components/core/babylon-static-footer-v2/babylon-static-footer-v2.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-static-footer-v2/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-submenu-hotel/babylon-submenu-hotel.component.mjs +35 -5
- package/esm2022/lib/components/core/babylon-submenu-hotel/babylon-submenu-hotel.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-submenu-hotel/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-thanks/babylon-thanks.component.mjs +18 -5
- package/esm2022/lib/components/core/babylon-thanks/babylon-thanks.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-thanks/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-top-simple-banner/babylon-top-simple-banner.component.mjs +12 -6
- package/esm2022/lib/components/core/babylon-top-simple-banner/index.mjs +2 -0
- package/esm2022/lib/components/core/babylon-top-slider/babylon-top-slider-item.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-top-slider/babylon-top-slider.component.mjs +187 -5
- package/esm2022/lib/components/core/babylon-top-slider/babylon-top-slider.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-top-slider/index.mjs +4 -0
- package/esm2022/lib/components/core/babylon-top-slider-thumbs/babylon-top-slider-thumbs.component.mjs +33 -6
- package/esm2022/lib/components/core/babylon-top-slider-thumbs/babylon-top-slider-thumbs.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-top-slider-thumbs/index.mjs +3 -0
- package/esm2022/lib/components/core/babylon-top-slider-v2/babylon-top-slider-v2-item.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-top-slider-v2/babylon-top-slider-v2.component.mjs +22 -5
- package/esm2022/lib/components/core/babylon-top-slider-v2/babylon-top-slider-v2.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-top-slider-v2/index.mjs +4 -0
- package/esm2022/lib/components/core/babylon-top-slider-video/babylon-top-slider-video.component.mjs +194 -5
- package/esm2022/lib/components/core/babylon-top-slider-video/babylon-top-slider-video.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-top-slider-video/babylon-video-source.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-top-slider-video/index.mjs +4 -0
- package/esm2022/lib/components/core/babylon-top-slider-video-v2/babylon-top-slider-video-v2.component.mjs +7 -5
- package/esm2022/lib/components/core/babylon-top-slider-video-v2/index.mjs +2 -0
- package/esm2022/lib/components/core/babylon-webmap/babylon-webmap.component.mjs +23 -5
- package/esm2022/lib/components/core/babylon-webmap/babylon-webmap.interface.mjs +2 -0
- package/esm2022/lib/components/core/babylon-webmap/index.mjs +3 -0
- package/esm2022/lib/components/core/index.mjs +104 -0
- package/esm2022/lib/components/shared/babylon-dynamic-heading/babylon-dynamic-heading.component.mjs +130 -0
- package/esm2022/lib/components/shared/babylon-dynamic-heading/babylon-dynamic-heading.interface.mjs +2 -0
- package/esm2022/lib/components/shared/babylon-dynamic-heading/index.mjs +3 -0
- package/esm2022/lib/components/shared/babylon-search/babylon-search.component.mjs +82 -0
- package/esm2022/lib/components/shared/babylon-search/index.mjs +2 -0
- package/esm2022/lib/components/shared/index.mjs +2 -0
- package/esm2022/lib/directives/babylon-background-strip/babylon-background-strip.directive.mjs +71 -0
- package/esm2022/lib/directives/babylon-customs/babylon-custom-mouse-pointer.directive.mjs +52 -0
- package/esm2022/lib/directives/babylon-galleries/babylon-light-gallery.directive.mjs +107 -0
- package/esm2022/lib/directives/babylon-hobble-effect/babylon-hobble-effect.directive.mjs +60 -0
- package/esm2022/lib/directives/babylon-pagination/babylon-pagination.directive.mjs +127 -0
- package/esm2022/lib/directives/babylon-sliders/babylon-custom-slider.directive.mjs +62 -0
- package/esm2022/lib/directives/babylon-sliders/babylon-hotels-slider.directive.mjs +107 -0
- package/esm2022/lib/directives/babylon-sliders/babylon-sliders.directive.mjs +438 -0
- package/esm2022/lib/directives/babylon-sliders/babylon-swiper-slider.directive.mjs +107 -0
- package/esm2022/lib/directives/babylon-sliders/babylon-swiper.directive.mjs +125 -0
- package/esm2022/lib/directives/data-background/data-background.directive.mjs +32 -0
- package/esm2022/lib/directives/link-type/link-type.directive.mjs +288 -0
- package/esm2022/lib/directives/scrolls/scroll-to.directive.mjs +195 -0
- package/esm2022/lib/directives/scrolls/scroll-up.directive.mjs +27 -0
- package/esm2022/lib/directives/scrolls/show-only-top.directive.mjs +110 -0
- package/esm2022/lib/directives/sliders/slick-init.directive.mjs +38 -11
- package/esm2022/lib/directives/utils/sticky-avoid-footer.directive.mjs +9 -3
- package/esm2022/lib/interfaces/babylon-advantages-item.interface.mjs +2 -0
- package/esm2022/lib/interfaces/babylon-button.interface.mjs +2 -0
- package/esm2022/lib/interfaces/babylon-consult-type.interface.mjs +2 -0
- package/esm2022/lib/interfaces/babylon-dropdown.interface.mjs +2 -0
- package/esm2022/lib/interfaces/babylon-equipments-item.interface.mjs +2 -0
- package/esm2022/lib/interfaces/babylon-global-icon.interface.mjs +2 -0
- package/esm2022/lib/interfaces/babylon-global.interface.mjs +2 -0
- package/esm2022/lib/interfaces/babylon-icon.interface.mjs +2 -0
- package/esm2022/lib/interfaces/babylon-image.interface.mjs +2 -0
- package/esm2022/lib/interfaces/babylon-input.interface.mjs +2 -0
- package/esm2022/lib/interfaces/babylon-item.interface.mjs +2 -0
- package/esm2022/lib/interfaces/babylon-menu-button.interface.mjs +2 -0
- package/esm2022/lib/interfaces/babylon-menu-info.interface.mjs +2 -0
- package/esm2022/lib/interfaces/babylon-multimedia.interface.mjs +2 -0
- package/esm2022/lib/interfaces/babylon-page-config.interface.mjs +2 -0
- package/esm2022/lib/interfaces/babylon-site-config.interface.mjs +2 -0
- package/esm2022/lib/interfaces/babylon-tags.interface.mjs +2 -0
- package/esm2022/lib/interfaces/babylon-text-info.interface.mjs +2 -0
- package/esm2022/lib/interfaces/babylon-texts-colors.interface.mjs +2 -0
- package/esm2022/lib/interfaces/babylon-texts.interface.mjs +2 -0
- package/esm2022/lib/interfaces/babylon-video.interface.mjs +2 -0
- package/esm2022/lib/interfaces/index.mjs +16 -0
- package/esm2022/lib/pipes/babylon-clean-phone.pipe.mjs +14 -0
- package/esm2022/lib/pipes/babylon-currency.pipe.mjs +29 -0
- package/esm2022/lib/services/color-panel.service.mjs +316 -0
- package/esm2022/lib/services/engine-state.service.mjs +24 -0
- package/esm2022/lib/services/index.mjs +3 -1
- package/esm2022/lib/services/mapper/index.mjs +3 -0
- package/esm2022/lib/services/mapper/mapper.service.mjs +2665 -0
- package/esm2022/lib/services/mapper/mapper.service.token.mjs +3 -0
- package/esm2022/lib/services/modals-service/index.mjs +2 -0
- package/esm2022/lib/services/modals-service/modals.service.mjs +77 -0
- package/esm2022/lib/services/screen-sizer/screen-sizer.service.mjs +46 -35
- package/esm2022/lib/utils/complex-links.token.mjs +6 -0
- package/esm2022/lib/utils/index.mjs +2 -0
- package/esm2022/lib/utils/utils.mjs +153 -0
- package/esm2022/public-api.mjs +11 -117
- package/fesm2022/ctt-babylon.mjs +10717 -2794
- package/fesm2022/ctt-babylon.mjs.map +1 -1
- package/lib/Enum/buttons-type.enum.d.ts +4 -0
- package/lib/Enum/index.d.ts +2 -0
- package/lib/Enum/logo-type.enum.d.ts +8 -0
- package/lib/Enum/services.enum.d.ts +6 -0
- package/lib/Enum/views.enum.d.ts +3 -0
- package/lib/components/core/babylon-404/babylon-404.component.d.ts +8 -1
- package/lib/components/core/babylon-404/babylon-404.interface.d.ts +9 -0
- package/lib/components/core/babylon-404/index.d.ts +2 -0
- package/lib/components/core/babylon-action-banner/babylon-action-banner.component.d.ts +14 -0
- package/lib/components/core/babylon-action-banner/babylon-action-banner.interface.d.ts +9 -0
- package/lib/components/core/babylon-action-banner/index.d.ts +2 -0
- package/lib/components/core/babylon-advantages/babylon-advantages-info.interface.d.ts +5 -0
- package/lib/components/core/babylon-advantages/babylon-advantages.component.d.ts +14 -1
- package/lib/components/core/babylon-advantages/babylon-advantages.interface.d.ts +13 -0
- package/lib/components/core/babylon-advantages/index.d.ts +3 -0
- package/lib/components/core/babylon-advantages-v2/babylon-advantages-v2.component.d.ts +5 -1
- package/lib/components/core/babylon-advantages-v2/index.d.ts +1 -0
- package/lib/components/core/babylon-av-c4-img-text/babylon-av-c4-img-text.component.d.ts +9 -0
- package/lib/components/core/babylon-av-c4-img-text/index.d.ts +1 -0
- package/lib/components/core/babylon-banner-gallery/babylon-banner-gallery.component.d.ts +11 -1
- package/lib/components/core/babylon-banner-gallery/babylon-banner-gallery.interface.d.ts +9 -0
- package/lib/components/core/babylon-banner-gallery/index.d.ts +2 -0
- package/lib/components/core/babylon-banner-info/babylon-banner-info.component.d.ts +25 -2
- package/lib/components/core/babylon-banner-info/babylon-banner-info.interface.d.ts +10 -0
- package/lib/components/core/babylon-banner-info/index.d.ts +2 -0
- package/lib/components/core/babylon-banner-newsletter/babylon-banner-newsletter.component.d.ts +16 -1
- package/lib/components/core/babylon-banner-newsletter/babylon-banner-newsletter.interface.d.ts +9 -0
- package/lib/components/core/babylon-banner-newsletter/index.d.ts +2 -0
- package/lib/components/core/babylon-blog-details/babylon-blog-details.component.d.ts +39 -1
- package/lib/components/core/babylon-blog-details/babylon-blog-details.interface.d.ts +24 -0
- package/lib/components/core/babylon-blog-details/index.d.ts +2 -0
- package/lib/components/core/babylon-blog-list/babylon-blog-list.component.d.ts +47 -2
- package/lib/components/core/babylon-blog-list/babylon-blog-list.interface.d.ts +18 -0
- package/lib/components/core/babylon-blog-list/index.d.ts +2 -0
- package/lib/components/core/babylon-breadcrumb/babylon-breadcrumb.component.d.ts +4 -1
- package/lib/components/core/babylon-breadcrumb/babylon-breadcrumb.interface.d.ts +4 -0
- package/lib/components/core/babylon-breadcrumb/index.d.ts +2 -0
- package/lib/components/core/babylon-color-picker/babylon-color-picker.component.d.ts +57 -0
- package/lib/components/core/babylon-color-picker/index.d.ts +1 -0
- package/lib/components/core/babylon-comingsoon/babylon-comingsoon.component.d.ts +12 -1
- package/lib/components/core/babylon-comingsoon/babylon-comingsoon.interface.d.ts +11 -0
- package/lib/components/core/babylon-comingsoon/index.d.ts +2 -0
- package/lib/components/core/babylon-contact-address/babylon-contact-address.component.d.ts +22 -0
- package/lib/components/core/babylon-contact-address/babylon-contact-address.interface.d.ts +4 -0
- package/lib/components/core/babylon-contact-address/index.d.ts +2 -0
- package/lib/components/core/babylon-contact-form/babylon-contact-form.component.d.ts +35 -6
- package/lib/components/core/babylon-contact-form/babylon-contact-form.interface.d.ts +15 -0
- package/lib/components/core/babylon-contact-form/index.d.ts +2 -0
- package/lib/components/core/babylon-contact-how/babylon-contact-how.component.d.ts +14 -2
- package/lib/components/core/babylon-contact-how/babylon-contact-how.interface.d.ts +6 -0
- package/lib/components/core/babylon-contact-how/index.d.ts +2 -0
- package/lib/components/core/babylon-contact-map/babylon-contact-map.component.d.ts +16 -2
- package/lib/components/core/babylon-contact-map/babylon-contact-map.interface.d.ts +8 -0
- package/lib/components/core/babylon-contact-map/index.d.ts +2 -0
- package/lib/components/core/babylon-container-text-l2/babylon-container-text-l2.component.d.ts +3 -1
- package/lib/components/core/babylon-container-text-l2/index.d.ts +1 -0
- package/lib/components/core/babylon-engine/babylon-engine.component.d.ts +73 -11
- package/lib/components/core/babylon-engine/babylon-engine.interface.d.ts +24 -0
- package/lib/components/core/babylon-engine/index.d.ts +2 -0
- package/lib/components/core/babylon-engine-modal/babylon-engine-modal.component.d.ts +60 -16
- package/lib/components/core/babylon-engine-modal/babylon-engine-modal.interface.d.ts +22 -0
- package/lib/components/core/babylon-engine-modal/index.d.ts +2 -0
- package/lib/components/core/babylon-external-script/babylon-external-script.component.d.ts +21 -0
- package/lib/components/core/babylon-external-script/babylon-external-script.interface.d.ts +5 -0
- package/lib/components/core/babylon-external-script/index.d.ts +2 -0
- package/lib/components/core/babylon-faq/babylon-faq.component.d.ts +12 -1
- package/lib/components/core/babylon-faq/babylon-faq.interface.d.ts +8 -0
- package/lib/components/core/babylon-faq/index.d.ts +2 -0
- package/lib/components/core/babylon-faq-v2/babylon-faq-v2.component.d.ts +10 -1
- package/lib/components/core/babylon-faq-v2/index.d.ts +1 -0
- package/lib/components/core/babylon-feature-pills-number/babylon-feature-pills-number.component.d.ts +4 -1
- package/lib/components/core/babylon-feature-pills-number/index.d.ts +1 -0
- package/lib/components/core/babylon-features-slider/babylon-features-slider.component.d.ts +18 -2
- package/lib/components/core/babylon-features-slider/babylon-features-slider.interface.d.ts +8 -0
- package/lib/components/core/babylon-features-slider/index.d.ts +2 -0
- package/lib/components/core/babylon-filter-modal/babylon-filter-modal.component.d.ts +8 -3
- package/lib/components/core/babylon-filter-modal/index.d.ts +1 -0
- package/lib/components/core/babylon-floating-buttons/babylon-floating-buttons.component.d.ts +39 -0
- package/lib/components/core/babylon-floating-buttons/babylon-floating-buttons.interface.d.ts +8 -0
- package/lib/components/core/babylon-floating-buttons/index.d.ts +2 -0
- package/lib/components/core/babylon-footer-contact/babylon-footer-contact.component.d.ts +24 -1
- package/lib/components/core/babylon-footer-contact/babylon-footer-contact.interface.d.ts +14 -0
- package/lib/components/core/babylon-footer-contact/index.d.ts +2 -0
- package/lib/components/core/babylon-footer-links/babylon-footer-links.component.d.ts +5 -1
- package/lib/components/core/babylon-footer-links/babylon-footer-links.interface.d.ts +6 -0
- package/lib/components/core/babylon-footer-links/index.d.ts +2 -0
- package/lib/components/core/babylon-footer-logos/babylon-footer-logos.component.d.ts +11 -1
- package/lib/components/core/babylon-footer-logos/babylon-footer-logos.interface.d.ts +7 -0
- package/lib/components/core/babylon-footer-logos/index.d.ts +2 -0
- package/lib/components/core/babylon-footer-social/babylon-footer-social.component.d.ts +5 -1
- package/lib/components/core/babylon-footer-social/babylon-footer-social.interface.d.ts +6 -0
- package/lib/components/core/babylon-footer-social/index.d.ts +2 -0
- package/lib/components/core/babylon-gallery/babylon-gallery.component.d.ts +34 -8
- package/lib/components/core/babylon-gallery/babylon-gallery.interface.d.ts +12 -0
- package/lib/components/core/babylon-gallery/index.d.ts +2 -0
- package/lib/components/core/babylon-global-modal/babylon-global-modal.component.d.ts +31 -0
- package/lib/components/core/babylon-global-modal/babylon-global-modal.interface.d.ts +8 -0
- package/lib/components/core/babylon-global-modal/index.d.ts +2 -0
- package/lib/components/core/babylon-grid-gallery/babylon-grid-gallery.component.d.ts +19 -2
- package/lib/components/core/babylon-grid-gallery/babylon-grid-gallery.interface.d.ts +8 -0
- package/lib/components/core/babylon-grid-gallery/index.d.ts +2 -0
- package/lib/components/core/babylon-guests-popup/babylon-guests-popup.component.d.ts +24 -7
- package/lib/components/core/babylon-guests-popup/babylon-guests-popup.interface.d.ts +11 -0
- package/lib/components/core/babylon-guests-popup/index.d.ts +2 -0
- package/lib/components/core/babylon-head-intro/babylon-head-intro.component.d.ts +9 -1
- package/lib/components/core/babylon-head-intro/babylon-head-intro.interface.d.ts +10 -0
- package/lib/components/core/babylon-head-intro/index.d.ts +2 -0
- package/lib/components/core/babylon-header-book-show/babylon-header-book-show.component.d.ts +35 -7
- package/lib/components/core/babylon-header-book-show/babylon-header-book-show.interface.d.ts +20 -0
- package/lib/components/core/babylon-header-book-show/index.d.ts +2 -0
- package/lib/components/core/babylon-header-clear/babylon-header-clear.component.d.ts +34 -9
- package/lib/components/core/babylon-header-clear/babylon-header-clear.interface.d.ts +22 -0
- package/lib/components/core/babylon-header-clear/index.d.ts +2 -0
- package/lib/components/core/babylon-header-menu-center/babylon-header-menu-center.component.d.ts +33 -8
- package/lib/components/core/babylon-header-menu-center/babylon-header-menu-center.interface.d.ts +19 -0
- package/lib/components/core/babylon-header-menu-center/index.d.ts +2 -0
- package/lib/components/core/babylon-header-menu-logo-center/babylon-header-menu-logo-center.component.d.ts +40 -0
- package/lib/components/core/babylon-header-menu-logo-center/babylon-header-menu-logo-center.interface.d.ts +23 -0
- package/lib/components/core/babylon-header-menu-logo-center/index.d.ts +2 -0
- package/lib/components/core/babylon-header-menu-show/babylon-header-menu-show.component.d.ts +29 -8
- package/lib/components/core/babylon-header-menu-show/babylon-header-menu-show.interface.d.ts +18 -0
- package/lib/components/core/babylon-header-menu-show/index.d.ts +2 -0
- package/lib/components/core/babylon-header-mobile/babylon-header-mobile.component.d.ts +53 -0
- package/lib/components/core/babylon-header-mobile/babylon-header-mobile.interface.d.ts +26 -0
- package/lib/components/core/babylon-header-mobile/index.d.ts +2 -0
- package/lib/components/core/babylon-hotels-list/babylon-hotel.interface.d.ts +18 -0
- package/lib/components/core/babylon-hotels-list/babylon-hotels-list.component.d.ts +5 -1
- package/lib/components/core/babylon-hotels-list/babylon-hotels-list.interface.d.ts +6 -0
- package/lib/components/core/babylon-hotels-list/index.d.ts +3 -0
- package/lib/components/core/babylon-hotels-slider/babylon-hotels-slider.component.d.ts +5 -1
- package/lib/components/core/babylon-hotels-slider/babylon-hotels-slider.interface.d.ts +6 -0
- package/lib/components/core/babylon-hotels-slider/index.d.ts +2 -0
- package/lib/components/core/babylon-info-big/babylon-info-big.component.d.ts +9 -1
- package/lib/components/core/babylon-info-big/babylon-info-big.interface.d.ts +10 -0
- package/lib/components/core/babylon-info-big/index.d.ts +2 -0
- package/lib/components/core/babylon-info-big-v3/babylon-info-big-v3.component.d.ts +5 -1
- package/lib/components/core/babylon-info-big-v3/index.d.ts +1 -0
- package/lib/components/core/babylon-info-grid/babylon-info-grid.component.d.ts +22 -3
- package/lib/components/core/babylon-info-grid/babylon-info-grid.interface.d.ts +9 -0
- package/lib/components/core/babylon-info-grid/index.d.ts +2 -0
- package/lib/components/core/babylon-info-img/babylon-info-img.component.d.ts +40 -2
- package/lib/components/core/babylon-info-img/babylon-info-img.interface.d.ts +27 -0
- package/lib/components/core/babylon-info-img/index.d.ts +2 -0
- package/lib/components/core/babylon-info-img-slider/babylon-info-img-slider.component.d.ts +33 -0
- package/lib/components/core/babylon-info-img-slider/babylon-info-img-slider.interface.d.ts +11 -0
- package/lib/components/core/babylon-info-img-slider/index.d.ts +2 -0
- package/lib/components/core/babylon-info-intro/babylon-info-intro.component.d.ts +26 -1
- package/lib/components/core/babylon-info-intro/babylon-info-intro.interface.d.ts +19 -0
- package/lib/components/core/babylon-info-intro/index.d.ts +2 -0
- package/lib/components/core/babylon-info-show-img/babylon-info-show-img.component.d.ts +3 -1
- package/lib/components/core/babylon-info-show-img/index.d.ts +1 -0
- package/lib/components/core/babylon-info-zig-zag/babylon-info-zig-zag.component.d.ts +29 -1
- package/lib/components/core/babylon-info-zig-zag/babylon-info-zig-zag.interface.d.ts +12 -0
- package/lib/components/core/babylon-info-zig-zag/index.d.ts +2 -0
- package/lib/components/core/babylon-info-zig-zag-counter/babylon-info-zig-zag-counter.component.d.ts +47 -0
- package/lib/components/core/babylon-info-zig-zag-counter/babylon-info-zig-zag-counter.interface.d.ts +14 -0
- package/lib/components/core/babylon-info-zig-zag-counter/index.d.ts +2 -0
- package/lib/components/core/babylon-info-zigzag-v2/babylon-info-zigzag-v2.component.d.ts +16 -1
- package/lib/components/core/babylon-info-zigzag-v2/babylon-info-zigzag-v2.interface.d.ts +5 -0
- package/lib/components/core/babylon-info-zigzag-v2/index.d.ts +2 -0
- package/lib/components/core/babylon-info2col-img/babylon-info2col-img.component.d.ts +21 -0
- package/lib/components/core/babylon-info2col-img/babylon-info2col-img.interface.d.ts +12 -0
- package/lib/components/core/babylon-info2col-img/index.d.ts +2 -0
- package/lib/components/core/babylon-info2img/babylon-info2img.component.d.ts +14 -1
- package/lib/components/core/babylon-info2img/babylon-info2img.interface.d.ts +11 -0
- package/lib/components/core/babylon-info2img/index.d.ts +2 -0
- package/lib/components/core/babylon-info2img-big/babylon-info2img-big.component.d.ts +16 -1
- package/lib/components/core/babylon-info2img-big/babylon-info2img-big.interface.d.ts +14 -0
- package/lib/components/core/babylon-info2img-big/index.d.ts +2 -0
- package/lib/components/core/babylon-info3img/babylon-info3img.component.d.ts +9 -1
- package/lib/components/core/babylon-info3img/index.d.ts +1 -0
- package/lib/components/core/babylon-info4img/babylon-info4img.component.d.ts +11 -1
- package/lib/components/core/babylon-info4img/babylon-info4img.interface.d.ts +12 -0
- package/lib/components/core/babylon-info4img/index.d.ts +2 -0
- package/lib/components/core/babylon-items-grid/babylon-items-grid.component.d.ts +14 -1
- package/lib/components/core/babylon-items-grid/babylon-items-grid.interface.d.ts +8 -0
- package/lib/components/core/babylon-items-grid/index.d.ts +2 -0
- package/lib/components/core/babylon-language-modal/babylon-language-modal.component.d.ts +12 -5
- package/lib/components/core/babylon-language-modal/babylon-language-modal.interface.d.ts +7 -0
- package/lib/components/core/babylon-language-modal/index.d.ts +2 -0
- package/lib/components/core/babylon-legal/babylon-legal.component.d.ts +9 -1
- package/lib/components/core/babylon-legal/babylon-legal.interface.d.ts +7 -0
- package/lib/components/core/babylon-legal/index.d.ts +2 -0
- package/lib/components/core/babylon-list-c3-img-txt/babylon-list-c3-img-txt.component.d.ts +5 -1
- package/lib/components/core/babylon-list-c3-img-txt/index.d.ts +1 -0
- package/lib/components/core/babylon-list-grid/babylon-list-grid.component.d.ts +17 -1
- package/lib/components/core/babylon-list-grid/babylon-list-grid.interface.d.ts +8 -0
- package/lib/components/core/babylon-list-grid/index.d.ts +2 -0
- package/lib/components/core/babylon-modal-menu/babylon-modal-menu.component.d.ts +45 -0
- package/lib/components/core/babylon-modal-multiple-motors/babylon-modal-multiple-motors.component.d.ts +18 -0
- package/lib/components/core/babylon-modal-multiple-motors/babylon-modal-multiple-motors.interface.d.ts +8 -0
- package/lib/components/core/babylon-modal-multiple-motors/index.d.ts +2 -0
- package/lib/components/core/babylon-modal-popup/babylon-modal-popup.component.d.ts +25 -0
- package/lib/components/core/babylon-modal-popup/babylon-modal-popup.interface.d.ts +9 -0
- package/lib/components/core/babylon-modal-popup/index.d.ts +2 -0
- package/lib/components/core/babylon-newsletter/babylon-newsletter.component.d.ts +19 -3
- package/lib/components/core/babylon-newsletter/babylon-newsletter.interface.d.ts +9 -0
- package/lib/components/core/babylon-newsletter/index.d.ts +2 -0
- package/lib/components/core/babylon-offer-detail/babylon-offer-detail.component.d.ts +16 -1
- package/lib/components/core/babylon-offer-detail/babylon-offer-detail.interface.d.ts +17 -0
- package/lib/components/core/babylon-offer-detail/index.d.ts +2 -0
- package/lib/components/core/babylon-offer-popup/babylon-offer-popup.component.d.ts +18 -5
- package/lib/components/core/babylon-offer-popup/babylon-offer-popup.interface.d.ts +7 -0
- package/lib/components/core/babylon-offer-popup/index.d.ts +2 -0
- package/lib/components/core/babylon-offer-popupV2/babylon-offer-popup-v2.component.d.ts +21 -0
- package/lib/components/core/babylon-offer-popupV2/babylon-offer-popup-v2.interface.d.ts +9 -0
- package/lib/components/core/babylon-offer-popupV2/index.d.ts +2 -0
- package/lib/components/core/babylon-offer-slider/babylon-offer-slider.component.d.ts +6 -1
- package/lib/components/core/babylon-offer-slider/babylon-offer-slider.interface.d.ts +7 -0
- package/lib/components/core/babylon-offer-slider/babylon-offer.interface.d.ts +18 -0
- package/lib/components/core/babylon-offer-slider/index.d.ts +3 -0
- package/lib/components/core/babylon-offers-list/babylon-offers-list.component.d.ts +33 -2
- package/lib/components/core/babylon-offers-list/babylon-offers-list.interface.d.ts +14 -0
- package/lib/components/core/babylon-offers-list/index.d.ts +2 -0
- package/lib/components/core/babylon-offers-slider/babylon-offers-slider.component.d.ts +5 -1
- package/lib/components/core/babylon-offers-slider/index.d.ts +1 -0
- package/lib/components/core/babylon-preload/babylon-preload.component.d.ts +5 -1
- package/lib/components/core/babylon-preload/index.d.ts +1 -0
- package/lib/components/core/babylon-press-list/babylon-press-list.component.d.ts +17 -0
- package/lib/components/core/babylon-press-list/babylon-press-list.interface.d.ts +8 -0
- package/lib/components/core/babylon-press-list/index.d.ts +2 -0
- package/lib/components/core/babylon-room-details/babylon-room-detail.interface.d.ts +20 -0
- package/lib/components/core/babylon-room-details/babylon-room-details.component.d.ts +13 -1
- package/lib/components/core/babylon-room-details/index.d.ts +2 -0
- package/lib/components/core/babylon-rooms-cols/babylon-rooms-cols.component.d.ts +39 -1
- package/lib/components/core/babylon-rooms-cols/babylon-rooms-cols.interface.d.ts +10 -0
- package/lib/components/core/babylon-rooms-cols/index.d.ts +2 -0
- package/lib/components/core/babylon-rooms-grid/babylon-rooms-grid.component.d.ts +10 -1
- package/lib/components/core/babylon-rooms-grid/babylon-rooms-grid.interface.d.ts +8 -0
- package/lib/components/core/babylon-rooms-grid/index.d.ts +2 -0
- package/lib/components/core/babylon-rooms-list/babylon-rooms-list.component.d.ts +27 -1
- package/lib/components/core/babylon-rooms-list/babylon-rooms-list.interface.d.ts +6 -0
- package/lib/components/core/babylon-rooms-list/index.d.ts +2 -0
- package/lib/components/core/babylon-rooms-slider/babylon-room.interface.d.ts +15 -0
- package/lib/components/core/babylon-rooms-slider/babylon-rooms-slider.component.d.ts +6 -1
- package/lib/components/core/babylon-rooms-slider/babylon-rooms-slider.interface.d.ts +6 -0
- package/lib/components/core/babylon-rooms-slider/babylon-rooms-text-info.interface.d.ts +8 -0
- package/lib/components/core/babylon-rooms-slider/index.d.ts +4 -0
- package/lib/components/core/babylon-services-slider/babylon-service-slider.interface.d.ts +6 -0
- package/lib/components/core/babylon-services-slider/babylon-services-slider.component.d.ts +7 -1
- package/lib/components/core/babylon-services-slider/index.d.ts +2 -0
- package/lib/components/core/babylon-sli-c1-img-text/babylon-sli-c1-img-text.component.d.ts +5 -0
- package/lib/components/core/babylon-sli-c1-img-text/index.d.ts +1 -0
- package/lib/components/core/babylon-sli-c5-img-txt/babylon-sli-c5-img-txt.component.d.ts +5 -0
- package/lib/components/core/babylon-sli-c5-img-txt/index.d.ts +1 -0
- package/lib/components/core/babylon-slider-img-static/babylon-slider-img-static.component.d.ts +6 -1
- package/lib/components/core/babylon-slider-img-static/index.d.ts +1 -0
- package/lib/components/core/babylon-slider-img-static-v2/babylon-slider-img-static-v2.component.d.ts +6 -1
- package/lib/components/core/babylon-slider-img-static-v2/index.d.ts +1 -0
- package/lib/components/core/babylon-slider-img-video/babylon-slider-img-video.component.d.ts +9 -1
- package/lib/components/core/babylon-slider-img-video/index.d.ts +1 -0
- package/lib/components/core/babylon-slider2col/babylon-slider2col.component.d.ts +22 -1
- package/lib/components/core/babylon-slider2col/index.d.ts +1 -0
- package/lib/components/core/babylon-slider2items/babylon-slider2items.component.d.ts +5 -1
- package/lib/components/core/babylon-slider2items/babylon-slider2items.interface.d.ts +6 -0
- package/lib/components/core/babylon-slider2items/index.d.ts +2 -0
- package/lib/components/core/babylon-slider3col/babylon-slider3col.component.d.ts +23 -0
- package/lib/components/core/babylon-slider3col/index.d.ts +1 -0
- package/lib/components/core/babylon-slider3col-clear/babylon-slider3col-clear.component.d.ts +5 -0
- package/lib/components/core/babylon-slider3col-clear/index.d.ts +1 -0
- package/lib/components/core/babylon-slider3items/babylon-slider3items.component.d.ts +15 -1
- package/lib/components/core/babylon-slider3items/babylon-slider3items.interface.d.ts +6 -0
- package/lib/components/core/babylon-slider3items/index.d.ts +2 -0
- package/lib/components/core/babylon-slider4col/babylon-slider4col.component.d.ts +15 -1
- package/lib/components/core/babylon-slider4col/index.d.ts +1 -0
- package/lib/components/core/babylon-social-bar/babylon-social-bar.component.d.ts +5 -1
- package/lib/components/core/babylon-social-bar/index.d.ts +1 -0
- package/lib/components/core/babylon-static-footer/babylon-static-footer.component.d.ts +55 -2
- package/lib/components/core/babylon-static-footer/babylon-static-footer.interface.d.ts +29 -0
- package/lib/components/core/babylon-static-footer/index.d.ts +2 -0
- package/lib/components/core/babylon-static-footer-v2/babylon-static-footer-v2.component.d.ts +24 -3
- package/lib/components/core/babylon-static-footer-v2/babylon-static-footer-v2.interface.d.ts +18 -0
- package/lib/components/core/babylon-static-footer-v2/index.d.ts +2 -0
- package/lib/components/core/babylon-submenu-hotel/babylon-submenu-hotel.component.d.ts +13 -2
- package/lib/components/core/babylon-submenu-hotel/babylon-submenu-hotel.interface.d.ts +5 -0
- package/lib/components/core/babylon-submenu-hotel/index.d.ts +2 -0
- package/lib/components/core/babylon-thanks/babylon-thanks.component.d.ts +7 -1
- package/lib/components/core/babylon-thanks/babylon-thanks.interface.d.ts +7 -0
- package/lib/components/core/babylon-thanks/index.d.ts +2 -0
- package/lib/components/core/babylon-top-simple-banner/babylon-top-simple-banner.component.d.ts +6 -2
- package/lib/components/core/babylon-top-simple-banner/index.d.ts +1 -0
- package/lib/components/core/babylon-top-slider/babylon-top-slider-item.interface.d.ts +9 -0
- package/lib/components/core/babylon-top-slider/babylon-top-slider.component.d.ts +37 -2
- package/lib/components/core/babylon-top-slider/babylon-top-slider.interface.d.ts +12 -0
- package/lib/components/core/babylon-top-slider/index.d.ts +3 -0
- package/lib/components/core/babylon-top-slider-thumbs/babylon-top-slider-thumbs.component.d.ts +12 -2
- package/lib/components/core/babylon-top-slider-thumbs/babylon-top-slider-thumbs.interface.d.ts +8 -0
- package/lib/components/core/babylon-top-slider-thumbs/index.d.ts +2 -0
- package/lib/components/core/babylon-top-slider-v2/babylon-top-slider-v2-item.interface.d.ts +7 -0
- package/lib/components/core/babylon-top-slider-v2/babylon-top-slider-v2.component.d.ts +10 -1
- package/lib/components/core/babylon-top-slider-v2/babylon-top-slider-v2.interface.d.ts +8 -0
- package/lib/components/core/babylon-top-slider-v2/index.d.ts +3 -0
- package/lib/components/core/babylon-top-slider-video/babylon-top-slider-video.component.d.ts +34 -2
- package/lib/components/core/babylon-top-slider-video/babylon-top-slider-video.interface.d.ts +9 -0
- package/lib/components/core/babylon-top-slider-video/babylon-video-source.interface.d.ts +5 -0
- package/lib/components/core/babylon-top-slider-video/index.d.ts +3 -0
- package/lib/components/core/babylon-top-slider-video-v2/babylon-top-slider-video-v2.component.d.ts +3 -1
- package/lib/components/core/babylon-top-slider-video-v2/index.d.ts +1 -0
- package/lib/components/core/babylon-webmap/babylon-webmap.component.d.ts +11 -1
- package/lib/components/core/babylon-webmap/babylon-webmap.interface.d.ts +9 -0
- package/lib/components/core/babylon-webmap/index.d.ts +2 -0
- package/lib/components/core/index.d.ts +103 -0
- package/lib/components/shared/babylon-dynamic-heading/babylon-dynamic-heading.component.d.ts +33 -0
- package/lib/components/shared/babylon-dynamic-heading/babylon-dynamic-heading.interface.d.ts +5 -0
- package/lib/components/shared/babylon-dynamic-heading/index.d.ts +2 -0
- package/lib/components/shared/babylon-search/babylon-search.component.d.ts +30 -0
- package/lib/components/shared/babylon-search/index.d.ts +1 -0
- package/lib/components/shared/index.d.ts +1 -0
- package/lib/directives/babylon-background-strip/babylon-background-strip.directive.d.ts +17 -0
- package/lib/directives/babylon-customs/babylon-custom-mouse-pointer.directive.d.ts +12 -0
- package/lib/directives/babylon-galleries/babylon-light-gallery.directive.d.ts +18 -0
- package/lib/directives/babylon-hobble-effect/babylon-hobble-effect.directive.d.ts +15 -0
- package/lib/directives/babylon-pagination/babylon-pagination.directive.d.ts +39 -0
- package/lib/directives/babylon-sliders/babylon-custom-slider.directive.d.ts +13 -0
- package/{directives → lib/directives/babylon-sliders}/babylon-hotels-slider.directive.d.ts +2 -1
- package/lib/directives/babylon-sliders/babylon-sliders.directive.d.ts +36 -0
- package/lib/directives/babylon-sliders/babylon-swiper-slider.directive.d.ts +14 -0
- package/lib/directives/babylon-sliders/babylon-swiper.directive.d.ts +17 -0
- package/lib/directives/data-background/data-background.directive.d.ts +11 -0
- package/lib/directives/link-type/link-type.directive.d.ts +40 -0
- package/lib/directives/{scroll → scrolls}/scroll-to.directive.d.ts +1 -1
- package/lib/directives/scrolls/scroll-up.directive.d.ts +7 -0
- package/lib/directives/{scroll → scrolls}/show-only-top.directive.d.ts +3 -2
- package/lib/directives/utils/sticky-avoid-footer.directive.d.ts +2 -1
- package/lib/interfaces/babylon-advantages-item.interface.d.ts +5 -0
- package/lib/interfaces/babylon-button.interface.d.ts +9 -0
- package/lib/interfaces/babylon-consult-type.interface.d.ts +10 -0
- package/lib/interfaces/babylon-dropdown.interface.d.ts +9 -0
- package/lib/interfaces/babylon-equipments-item.interface.d.ts +5 -0
- package/lib/interfaces/babylon-global-icon.interface.d.ts +4 -0
- package/lib/interfaces/babylon-global.interface.d.ts +22 -0
- package/lib/interfaces/babylon-icon.interface.d.ts +6 -0
- package/lib/interfaces/babylon-image.interface.d.ts +16 -0
- package/lib/interfaces/babylon-input.interface.d.ts +12 -0
- package/lib/interfaces/babylon-item.interface.d.ts +12 -0
- package/lib/interfaces/babylon-menu-button.interface.d.ts +10 -0
- package/lib/interfaces/babylon-menu-info.interface.d.ts +27 -0
- package/lib/interfaces/babylon-multimedia.interface.d.ts +8 -0
- package/lib/interfaces/babylon-page-config.interface.d.ts +43 -0
- package/lib/interfaces/babylon-site-config.interface.d.ts +57 -0
- package/lib/interfaces/babylon-tags.interface.d.ts +21 -0
- package/lib/interfaces/babylon-text-info.interface.d.ts +21 -0
- package/lib/interfaces/babylon-texts-colors.interface.d.ts +20 -0
- package/lib/interfaces/babylon-texts.interface.d.ts +5 -0
- package/lib/interfaces/babylon-video.interface.d.ts +5 -0
- package/lib/interfaces/index.d.ts +15 -0
- package/lib/pipes/babylon-clean-phone.pipe.d.ts +7 -0
- package/lib/pipes/babylon-currency.pipe.d.ts +7 -0
- package/lib/services/color-panel.service.d.ts +41 -0
- package/lib/services/engine-state.service.d.ts +10 -0
- package/lib/services/index.d.ts +2 -0
- package/lib/services/mapper/index.d.ts +2 -0
- package/lib/services/mapper/mapper.service.d.ts +144 -0
- package/lib/services/mapper/mapper.service.token.d.ts +2 -0
- package/lib/services/modals-service/index.d.ts +1 -0
- package/lib/services/modals-service/modals.service.d.ts +15 -0
- package/lib/services/screen-sizer/screen-sizer.service.d.ts +2 -0
- package/lib/styles/styles/babylon/_spacing.css +1 -0
- package/lib/styles/styles/babylon/_spacing.scss +72 -0
- package/lib/styles/styles/babylon/common.css +1 -0
- package/lib/styles/styles/babylon/common.scss +1830 -0
- package/lib/styles/styles/babylon/globals.css +1 -0
- package/lib/styles/styles/babylon/globals.scss +1129 -0
- package/lib/styles/styles/babylon/mixins.css +1 -0
- package/lib/styles/styles/babylon/mixins.scss +1031 -0
- package/lib/styles/styles/babylon/reset.css +1 -0
- package/lib/styles/styles/babylon/reset.scss +136 -0
- package/lib/styles/styles/babylon/slide.css +1 -0
- package/lib/styles/styles/babylon/slider.css +1 -0
- package/lib/styles/styles/babylon/slider.scss +876 -0
- package/lib/styles/styles/babylon/structure.css +0 -0
- package/lib/styles/styles/babylon/structure.scss +1 -0
- package/lib/styles/styles/babylon/variables-v2.css +0 -0
- package/lib/styles/styles/babylon/variables.css +1 -0
- package/lib/styles/styles/babylon/variables.scss +330 -0
- package/lib/styles/styles-babylon.scss +48 -7
- package/lib/utils/complex-links.token.d.ts +2 -0
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/utils.d.ts +14 -0
- package/package.json +11 -4
- package/public-api.d.ts +6 -114
- package/esm2022/directives/babylon-hotels-slider.directive.mjs +0 -103
- package/esm2022/lib/components/core/babylon-404-v2/babylon-404-v2.component.mjs +0 -11
- package/esm2022/lib/components/core/babylon-breadcrumb-v2/babylon-breadcrumb-v2.component.mjs +0 -11
- package/esm2022/lib/components/core/babylon-contact-form-v2/babylon-contact-form-v2.component.mjs +0 -37
- package/esm2022/lib/components/core/babylon-engine-modal-v2/babylon-engine-modal-v2.component.mjs +0 -130
- package/esm2022/lib/components/core/babylon-feature-pills/babylon-feature-pills.component.mjs +0 -11
- package/esm2022/lib/components/core/babylon-filter-modal-v2/babylon-filter-modal-v2.component.mjs +0 -21
- package/esm2022/lib/components/core/babylon-gallery-v2/babylon-gallery-v2.component.mjs +0 -105
- package/esm2022/lib/components/core/babylon-header-clear-v2/babylon-header-clear-v2.component.mjs +0 -76
- package/esm2022/lib/components/core/babylon-img-banner/babylon-img-banner.component.mjs +0 -13
- package/esm2022/lib/components/core/babylon-info-big-v2/babylon-info-big-v2.component.mjs +0 -61
- package/esm2022/lib/components/core/babylon-info-circle-imgs/babylon-info-circle-imgs.component.mjs +0 -11
- package/esm2022/lib/components/core/babylon-info-img-v2/babylon-info-img-v2.component.mjs +0 -11
- package/esm2022/lib/components/core/babylon-info-zigzag-v3/babylon-info-zigzag-v3.component.mjs +0 -18
- package/esm2022/lib/components/core/babylon-info-zigzag-v3-1/babylon-info-zigzag-v3-1.component.mjs +0 -11
- package/esm2022/lib/components/core/babylon-info-zigzag-v4/babylon-info-zigzag-v4.component.mjs +0 -13
- package/esm2022/lib/components/core/babylon-language-modal-v2/babylon-language-modal-v2.component.mjs +0 -28
- package/esm2022/lib/components/core/babylon-lis-c2-img-vid/babylon-lis-c2-img-vid.component.mjs +0 -39
- package/esm2022/lib/components/core/babylon-lis-c4-txt-img-pdf/babylon-lis-c4-txt-img-pdf.component.mjs +0 -57
- package/esm2022/lib/components/core/babylon-lis-c5-txt-img-svg/babylon-lis-c5-txt-img-svg.component.mjs +0 -55
- package/esm2022/lib/components/core/babylon-list-box-info/babylon-list-box-info.component.mjs +0 -11
- package/esm2022/lib/components/core/babylon-list-img/babylon-list-img.component.mjs +0 -71
- package/esm2022/lib/components/core/babylon-list-img-info/babylon-list-img-info.component.mjs +0 -11
- package/esm2022/lib/components/core/babylon-list-img-v2/babylon-list-img-v2.component.mjs +0 -11
- package/esm2022/lib/components/core/babylon-loyalty-table/babylon-loyalty-table.component.mjs +0 -65
- package/esm2022/lib/components/core/babylon-menu-modal/babylon-menu-modal.component.mjs +0 -19
- package/esm2022/lib/components/core/babylon-newsletter-modal/babylon-newsletter-modal.component.mjs +0 -19
- package/esm2022/lib/components/core/babylon-offer-detail-v2/babylon-offer-detail-v2.component.mjs +0 -11
- package/esm2022/lib/components/core/babylon-offer-popup-v2/babylon-offer-popup-v2.component.mjs +0 -19
- package/esm2022/lib/components/core/babylon-reviews/babylon-reviews.component.mjs +0 -169
- package/esm2022/lib/components/core/babylon-rooms-list-v2/babylon-rooms-list-v2.component.mjs +0 -11
- package/esm2022/lib/components/core/babylon-simple-img-info/babylon-simple-img-info.component.mjs +0 -12
- package/esm2022/lib/components/core/babylon-slider-box/babylon-slider-box.component.mjs +0 -12
- package/esm2022/lib/components/core/babylon-slider2col-v2/babylon-slider2col-v2.component.mjs +0 -13
- package/esm2022/lib/components/core/babylon-slider3col/babylon-slider3colcomponent.mjs +0 -11
- package/esm2022/lib/components/core/babylon-slider3col-v2/babylon-slider3col-v2.component.mjs +0 -12
- package/esm2022/lib/components/core/babylon-social-bar-v2/babylon-social-bar-v2.component.mjs +0 -11
- package/esm2022/lib/components/core/babylon-static-footer-v3/babylon-static-footer-v3.component.mjs +0 -67
- package/esm2022/lib/components/core/babylon-top-simple-img/babylon-top-simple-img.component.mjs +0 -11
- package/esm2022/lib/components/core/babylon-variant-selector/babylon-variant-selector.component.mjs +0 -82
- package/esm2022/lib/components/core/babylon-webmap-v2/babylon-webmap-v2.component.mjs +0 -11
- package/esm2022/lib/directives/images/swap-on-reload.directive.mjs +0 -83
- package/esm2022/lib/directives/scroll/scroll-to.directive.mjs +0 -183
- package/esm2022/lib/directives/scroll/show-only-top.directive.mjs +0 -103
- package/lib/components/core/babylon-404-v2/babylon-404-v2.component.d.ts +0 -5
- package/lib/components/core/babylon-breadcrumb-v2/babylon-breadcrumb-v2.component.d.ts +0 -5
- package/lib/components/core/babylon-contact-form-v2/babylon-contact-form-v2.component.d.ts +0 -10
- package/lib/components/core/babylon-engine-modal-v2/babylon-engine-modal-v2.component.d.ts +0 -44
- package/lib/components/core/babylon-feature-pills/babylon-feature-pills.component.d.ts +0 -5
- package/lib/components/core/babylon-filter-modal-v2/babylon-filter-modal-v2.component.d.ts +0 -10
- package/lib/components/core/babylon-gallery-v2/babylon-gallery-v2.component.d.ts +0 -22
- package/lib/components/core/babylon-header-clear-v2/babylon-header-clear-v2.component.d.ts +0 -16
- package/lib/components/core/babylon-img-banner/babylon-img-banner.component.d.ts +0 -5
- package/lib/components/core/babylon-info-big-v2/babylon-info-big-v2.component.d.ts +0 -12
- package/lib/components/core/babylon-info-circle-imgs/babylon-info-circle-imgs.component.d.ts +0 -5
- package/lib/components/core/babylon-info-img-v2/babylon-info-img-v2.component.d.ts +0 -5
- package/lib/components/core/babylon-info-zigzag-v3/babylon-info-zigzag-v3.component.d.ts +0 -6
- package/lib/components/core/babylon-info-zigzag-v3-1/babylon-info-zigzag-v3-1.component.d.ts +0 -5
- package/lib/components/core/babylon-info-zigzag-v4/babylon-info-zigzag-v4.component.d.ts +0 -5
- package/lib/components/core/babylon-language-modal-v2/babylon-language-modal-v2.component.d.ts +0 -12
- package/lib/components/core/babylon-lis-c2-img-vid/babylon-lis-c2-img-vid.component.d.ts +0 -12
- package/lib/components/core/babylon-lis-c4-txt-img-pdf/babylon-lis-c4-txt-img-pdf.component.d.ts +0 -24
- package/lib/components/core/babylon-lis-c5-txt-img-svg/babylon-lis-c5-txt-img-svg.component.d.ts +0 -24
- package/lib/components/core/babylon-list-box-info/babylon-list-box-info.component.d.ts +0 -5
- package/lib/components/core/babylon-list-img/babylon-list-img.component.d.ts +0 -26
- package/lib/components/core/babylon-list-img-info/babylon-list-img-info.component.d.ts +0 -5
- package/lib/components/core/babylon-list-img-v2/babylon-list-img-v2.component.d.ts +0 -5
- package/lib/components/core/babylon-loyalty-table/babylon-loyalty-table.component.d.ts +0 -10
- package/lib/components/core/babylon-menu-modal/babylon-menu-modal.component.d.ts +0 -7
- package/lib/components/core/babylon-newsletter-modal/babylon-newsletter-modal.component.d.ts +0 -7
- package/lib/components/core/babylon-offer-detail-v2/babylon-offer-detail-v2.component.d.ts +0 -5
- package/lib/components/core/babylon-offer-popup-v2/babylon-offer-popup-v2.component.d.ts +0 -7
- package/lib/components/core/babylon-reviews/babylon-reviews.component.d.ts +0 -28
- package/lib/components/core/babylon-rooms-list-v2/babylon-rooms-list-v2.component.d.ts +0 -5
- package/lib/components/core/babylon-simple-img-info/babylon-simple-img-info.component.d.ts +0 -5
- package/lib/components/core/babylon-slider-box/babylon-slider-box.component.d.ts +0 -5
- package/lib/components/core/babylon-slider2col-v2/babylon-slider2col-v2.component.d.ts +0 -5
- package/lib/components/core/babylon-slider3col/babylon-slider3colcomponent.d.ts +0 -5
- package/lib/components/core/babylon-slider3col-v2/babylon-slider3col-v2.component.d.ts +0 -5
- package/lib/components/core/babylon-social-bar-v2/babylon-social-bar-v2.component.d.ts +0 -5
- package/lib/components/core/babylon-static-footer-v3/babylon-static-footer-v3.component.d.ts +0 -12
- package/lib/components/core/babylon-top-simple-img/babylon-top-simple-img.component.d.ts +0 -5
- package/lib/components/core/babylon-variant-selector/babylon-variant-selector.component.d.ts +0 -12
- package/lib/components/core/babylon-webmap-v2/babylon-webmap-v2.component.d.ts +0 -5
- package/lib/directives/images/swap-on-reload.directive.d.ts +0 -22
- /package/lib/styles/styles/babylon/{scss-daba/airDatePicker.min.css → airDatePicker.min.css} +0 -0
- /package/lib/styles/styles/babylon/{scss-daba/aos.min.css → aos.min.css} +0 -0
- /package/lib/styles/styles/babylon/{scss-daba/buttons.css → buttons.css} +0 -0
- /package/lib/styles/styles/babylon/{scss-daba/buttons.scss → buttons.scss} +0 -0
- /package/lib/styles/styles/babylon/{scss-daba/fancybox.css → fancybox.css} +0 -0
- /package/lib/styles/styles/babylon/{scss-daba/fancybox.min.css → fancybox.min.css} +0 -0
- /package/lib/styles/styles/babylon/{scss-daba/funciones.css → funciones.css} +0 -0
- /package/lib/styles/styles/babylon/{scss-daba/funciones.scss → funciones.scss} +0 -0
- /package/lib/styles/styles/babylon/{scss-daba/inputs.css → inputs.css} +0 -0
- /package/lib/styles/styles/babylon/{scss-daba/inputs.scss → inputs.scss} +0 -0
- /package/lib/styles/styles/babylon/{scss-daba/jquery.fancybox.min.css → jquery.fancybox.min.css} +0 -0
- /package/lib/styles/styles/babylon/{scss-daba/style.css → style.css} +0 -0
- /package/lib/styles/styles/babylon/{scss-daba/style.scss → style.scss} +0 -0
- /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
|
-
|
|
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
|
-
//
|
|
181
|
-
waitForSlick(timeoutMs =
|
|
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. ¿
|
|
191
|
-
return resolve();
|
|
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
|