UNPKG

@anoki/fse-ui

Version:

FSE UI components library

3 lines (2 loc) • 6.04 kB
"use strict";const F=require("./index.cjs470.js"),y=require("./index.cjs469.js"),a=require("./index.cjs468.js");function z(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,x=new Date().getTime();function f(e){const t=r;t.length!==0&&a.s(t,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 L(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 M(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 G(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 U(){if(i.params.loop||i.params.rewind||!i.navigation)return;const{nextEl:e,prevEl:t}=i.navigation;t&&(i.isBeginning?(w(t),L(t)):(A(t),g(t))),e&&(i.isEnd?(w(e),L(e)):(A(e),g(e)))}function S(){return i.pagination&&i.pagination.bullets&&i.pagination.bullets.length}function k(){return S()&&i.params.pagination.clickable}function W(){const e=i.params.a11y;S()&&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.i(t)+1)))),t.matches(y.c(i.params.pagination.bulletActiveClass))?t.setAttribute("aria-current","true"):t.removeAttribute("aria-current")})}const C=(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)})})},I=e=>{x=new Date().getTime()},h=e=>{if(i.a11y.clicked||!i.params.a11y.scrollOnFocus||new Date().getTime()-x<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(i.getSlideIndexWhenGrid(parseInt(t.getAttribute("data-swiper-slide-index"))),0):i.slideTo(i.getSlideIndexWhenGrid(i.slides.indexOf(t)),0),p=!1)}))},D=()=>{const e=i.params.a11y;e.itemRoleDescriptionMessage&&M(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)})},H=()=>{const e=i.params.a11y;i.el.append(r);const t=i.el;e.containerRoleDescriptionMessage&&M(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),G(n,l),D();let{nextEl:c,prevEl:v}=i.navigation?i.navigation:{};c=a.m(c),v=a.m(v),c&&c.forEach(b=>C(b,s,e.nextSlideMessage)),v&&v.forEach(b=>C(b,s,e.prevSlideMessage)),k()&&a.m(i.pagination.el).forEach($=>{$.addEventListener("keydown",d)}),F.g().addEventListener("visibilitychange",I),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 V(){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)),k()&&a.m(i.pagination.el).forEach(l=>{l.removeEventListener("keydown",d)}),F.g().removeEventListener("visibilitychange",I),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&&H()}),o("slidesLengthChange snapGridLengthChange slidesGridLengthChange",()=>{i.params.a11y.enabled&&D()}),o("fromEdge toEdge afterInit lock unlock",()=>{i.params.a11y.enabled&&U()}),o("paginationUpdate",()=>{i.params.a11y.enabled&&W()}),o("destroy",()=>{i.params.a11y.enabled&&V()})}module.exports=z; //# sourceMappingURL=index.cjs261.js.map