UNPKG

@fancyapps/ui

Version:

Robust JavaScript UI Component Library

3 lines (2 loc) 2.45 kB
/*! License details at fancyapps.com/license */ import{isPlainObject as n}from"../utils/isPlainObject.js";import{isString as i}from"../utils/isString.js";const o={defaultCaption:"<em>{{NO_CAPTION}}</em>",mainTpl:'<dialog class="fancybox__dialog">\n <div class="fancybox__container" tabindex="0" aria-label="{{MODAL}}">\n <div class="fancybox__backdrop"></div>\n <div class="fancybox__carousel">\n <div class="fancybox__grid">\n <div class="fancybox__column with-viewport">\n <div class="fancybox__viewport"></div>\n </div>\n <div class="fancybox__column with-sidebar">\n <div class="fancybox__sidebar"></div>\n </div>\n </div>\n </div>\n </div>\n </dialog>',showOnStart:!0},t=()=>{let t,l=!1;function a(){const i=null==t?void 0:t.getOptions().Sidebar;return n(i)?Object.assign(Object.assign({},o),i):o}function e(n){var i;l&&(null===(i=null==t?void 0:t.getContainer())||void 0===i||i.classList.toggle("has-sidebar",n))}function s(){var n;const i=null===(n=null==t?void 0:t.getCarousel())||void 0===n?void 0:n.getPlugins().Toolbar;null==i||i.add("sidebar",{tpl:'<button class="f-button" title="{{TOGGLE_SIDEBAR}}"><svg><circle cx="12" cy="12" r="10"/><path d="M12 16v-4M12 8h.01"/></svg></button>',click:()=>e()})}function r(){const n=null==t?void 0:t.getOptions();if(!t||!n||!1===n.Sidebar)return;l=!0;const o=a();n.mainTpl=o.mainTpl,n.Carousel=n.Carousel||{},n.Carousel.formatCaption=(n,l)=>{var a;let e=l.caption||"";if(!e){const n=null===(a=null==t?void 0:t.getOptions().triggerEl)||void 0===a?void 0:a.dataset.fancybox;if(n){const i=document.querySelector(`[data-fancybox-caption="${n}"]`);i&&(e=i.innerHTML)}}if(!e){const n=o.defaultCaption;e="function"==typeof n?t?n(t):"":n}return e&&i(e)&&t&&(e=t.localize(e)),e},n.Carousel.captionEl=()=>{var n;return(null===(n=null==t?void 0:t.getContainer())||void 0===n?void 0:n.querySelector(".fancybox__sidebar"))||null};let e=n.Carousel.Thumbs;!1!==e&&(e=e||{},e.parentEl=n=>{var i;return(null===(i=n.getViewport())||void 0===i?void 0:i.parentElement)||null},n.Carousel.Thumbs=e)}function u(){e(a().showOnStart)}return{init:function(n){t=n,t.on("Carousel.initPlugins",s),t.on("initSlides",r),t.on("initLayout",u)},destroy:function(){l=!1,null==t||t.off("Carousel.initPlugins",s),null==t||t.off("initSlides",r),null==t||t.off("initLayout",u)},isEnabled:function(){return l},toggle:e}};export{t as Sidebar};