@anoki/fse-ui
Version:
FSE UI components library
3 lines (2 loc) • 6.01 kB
JavaScript
;const F=require("./index.cjs469.js"),y=require("./index.cjs468.js"),a=require("./index.cjs467.js");function K(P){let{swiper:i,extendParams:N,on:o}=P;N({a11y:{enabled:!0,notificationClass:"swiper-notification",prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide",paginationBulletMessage:"Go to slide {{index}}",slideLabelMessage:"{{index}} / {{slidesLength}}",containerMessage:null,containerRoleDescriptionMessage:null,containerRole:null,itemRoleDescriptionMessage:null,slideRole:"group",id:null,scrollOnFocus:!0}}),i.a11y={clicked:!1};let r=null,p,u,L=new Date().getTime();function f(e){const t=r;t.length!==0&&(t.innerHTML="",t.innerHTML=e)}function B(e){const t=()=>Math.round(16*Math.random()).toString(16);return"x".repeat(e).replace(/x/g,t)}function g(e){e=a.m(e),e.forEach(t=>{t.setAttribute("tabIndex","0")})}function M(e){e=a.m(e),e.forEach(t=>{t.setAttribute("tabIndex","-1")})}function m(e,t){e=a.m(e),e.forEach(n=>{n.setAttribute("role",t)})}function x(e,t){e=a.m(e),e.forEach(n=>{n.setAttribute("aria-roledescription",t)})}function q(e,t){e=a.m(e),e.forEach(n=>{n.setAttribute("aria-controls",t)})}function E(e,t){e=a.m(e),e.forEach(n=>{n.setAttribute("aria-label",t)})}function O(e,t){e=a.m(e),e.forEach(n=>{n.setAttribute("id",t)})}function H(e,t){e=a.m(e),e.forEach(n=>{n.setAttribute("aria-live",t)})}function w(e){e=a.m(e),e.forEach(t=>{t.setAttribute("aria-disabled",!0)})}function A(e){e=a.m(e),e.forEach(t=>{t.setAttribute("aria-disabled",!1)})}function d(e){if(e.keyCode!==13&&e.keyCode!==32)return;const t=i.params.a11y,n=e.target;if(!(i.pagination&&i.pagination.el&&(n===i.pagination.el||i.pagination.el.contains(e.target))&&!e.target.matches(y.c(i.params.pagination.bulletClass)))){if(i.navigation&&i.navigation.prevEl&&i.navigation.nextEl){const s=a.m(i.navigation.prevEl);a.m(i.navigation.nextEl).includes(n)&&(i.isEnd&&!i.params.loop||i.slideNext(),i.isEnd?f(t.lastSlideMessage):f(t.nextSlideMessage)),s.includes(n)&&(i.isBeginning&&!i.params.loop||i.slidePrev(),i.isBeginning?f(t.firstSlideMessage):f(t.prevSlideMessage))}i.pagination&&n.matches(y.c(i.params.pagination.bulletClass))&&n.click()}}function G(){if(i.params.loop||i.params.rewind||!i.navigation)return;const{nextEl:e,prevEl:t}=i.navigation;t&&(i.isBeginning?(w(t),M(t)):(A(t),g(t))),e&&(i.isEnd?(w(e),M(e)):(A(e),g(e)))}function k(){return i.pagination&&i.pagination.bullets&&i.pagination.bullets.length}function C(){return k()&&i.params.pagination.clickable}function U(){const e=i.params.a11y;k()&&i.pagination.bullets.forEach(t=>{i.params.pagination.clickable&&(g(t),i.params.pagination.renderBullet||(m(t,"button"),E(t,e.paginationBulletMessage.replace(/\{\{index\}\}/,a.h(t)+1)))),t.matches(y.c(i.params.pagination.bulletActiveClass))?t.setAttribute("aria-current","true"):t.removeAttribute("aria-current")})}const S=(e,t,n)=>{g(e),e.tagName!=="BUTTON"&&(m(e,"button"),e.addEventListener("keydown",d)),E(e,n),q(e,t)},R=e=>{u&&u!==e.target&&!u.contains(e.target)&&(p=!0),i.a11y.clicked=!0},T=()=>{p=!1,requestAnimationFrame(()=>{requestAnimationFrame(()=>{i.destroyed||(i.a11y.clicked=!1)})})},D=e=>{L=new Date().getTime()},h=e=>{if(i.a11y.clicked||!i.params.a11y.scrollOnFocus||new Date().getTime()-L<100)return;const t=e.target.closest(`.${i.params.slideClass}, swiper-slide`);if(!t||!i.slides.includes(t))return;u=t;const n=i.slides.indexOf(t)===i.activeIndex,s=i.params.watchSlidesProgress&&i.visibleSlides&&i.visibleSlides.includes(t);n||s||e.sourceCapabilities&&e.sourceCapabilities.firesTouchEvents||(i.isHorizontal()?i.el.scrollLeft=0:i.el.scrollTop=0,requestAnimationFrame(()=>{p||(i.params.loop?i.slideToLoop(parseInt(t.getAttribute("data-swiper-slide-index")),0):i.slideTo(i.slides.indexOf(t),0),p=!1)}))},I=()=>{const e=i.params.a11y;e.itemRoleDescriptionMessage&&x(i.slides,e.itemRoleDescriptionMessage),e.slideRole&&m(i.slides,e.slideRole);const t=i.slides.length;e.slideLabelMessage&&i.slides.forEach((n,s)=>{const l=i.params.loop?parseInt(n.getAttribute("data-swiper-slide-index"),10):s,c=e.slideLabelMessage.replace(/\{\{index\}\}/,l+1).replace(/\{\{slidesLength\}\}/,t);E(n,c)})},V=()=>{const e=i.params.a11y;i.el.append(r);const t=i.el;e.containerRoleDescriptionMessage&&x(t,e.containerRoleDescriptionMessage),e.containerMessage&&E(t,e.containerMessage),e.containerRole&&m(t,e.containerRole);const n=i.wrapperEl,s=e.id||n.getAttribute("id")||`swiper-wrapper-${B(16)}`,l=i.params.autoplay&&i.params.autoplay.enabled?"off":"polite";O(n,s),H(n,l),I();let{nextEl:c,prevEl:v}=i.navigation?i.navigation:{};c=a.m(c),v=a.m(v),c&&c.forEach(b=>S(b,s,e.nextSlideMessage)),v&&v.forEach(b=>S(b,s,e.prevSlideMessage)),C()&&a.m(i.pagination.el).forEach(z=>{z.addEventListener("keydown",d)}),F.g().addEventListener("visibilitychange",D),i.el.addEventListener("focus",h,!0),i.el.addEventListener("focus",h,!0),i.el.addEventListener("pointerdown",R,!0),i.el.addEventListener("pointerup",T,!0)};function $(){r&&r.remove();let{nextEl:e,prevEl:t}=i.navigation?i.navigation:{};e=a.m(e),t=a.m(t),e&&e.forEach(s=>s.removeEventListener("keydown",d)),t&&t.forEach(s=>s.removeEventListener("keydown",d)),C()&&a.m(i.pagination.el).forEach(l=>{l.removeEventListener("keydown",d)}),F.g().removeEventListener("visibilitychange",D),i.el&&typeof i.el!="string"&&(i.el.removeEventListener("focus",h,!0),i.el.removeEventListener("pointerdown",R,!0),i.el.removeEventListener("pointerup",T,!0))}o("beforeInit",()=>{r=a.c("span",i.params.a11y.notificationClass),r.setAttribute("aria-live","assertive"),r.setAttribute("aria-atomic","true")}),o("afterInit",()=>{i.params.a11y.enabled&&V()}),o("slidesLengthChange snapGridLengthChange slidesGridLengthChange",()=>{i.params.a11y.enabled&&I()}),o("fromEdge toEdge afterInit lock unlock",()=>{i.params.a11y.enabled&&G()}),o("paginationUpdate",()=>{i.params.a11y.enabled&&U()}),o("destroy",()=>{i.params.a11y.enabled&&$()})}module.exports=K;
//# sourceMappingURL=index.cjs264.js.map