swiper
Version:
Most modern mobile touch slider and framework with hardware accelerated transitions
2 lines • 2.17 kB
JavaScript
import{g as getDocument,a as getWindow}from"../shared/ssr-window.esm.min.mjs";import{b as elementParents,d as elementOffset}from"../shared/utils.min.mjs";function Keyboard({swiper:e,extendParams:t,on:n,emit:a}){const r=getDocument(),l=getWindow();function i(t){if(!e.enabled)return;const{rtlTranslate:n}=e;let i=t;i.originalEvent&&(i=i.originalEvent);const o=i.keyCode||i.charCode,s=e.params.keyboard.pageUpDown,d=s&&33===o,m=s&&34===o,f=37===o,b=39===o,c=38===o,p=40===o;if(!e.allowSlideNext&&(e.isHorizontal()&&b||e.isVertical()&&p||m))return!1;if(!e.allowSlidePrev&&(e.isHorizontal()&&f||e.isVertical()&&c||d))return!1;if(!(i.shiftKey||i.altKey||i.ctrlKey||i.metaKey||r.activeElement&&(r.activeElement.isContentEditable||r.activeElement.nodeName&&("input"===r.activeElement.nodeName.toLowerCase()||"textarea"===r.activeElement.nodeName.toLowerCase())))){if(e.params.keyboard.onlyInViewport&&(d||m||f||b||c||p)){let t=!1;if(elementParents(e.el,`.${e.params.slideClass}, swiper-slide`).length>0&&0===elementParents(e.el,`.${e.params.slideActiveClass}`).length)return;const a=e.el,r=a.clientWidth,i=a.clientHeight,o=l.innerWidth,s=l.innerHeight,d=elementOffset(a);n&&(d.left-=a.scrollLeft);const m=[[d.left,d.top],[d.left+r,d.top],[d.left,d.top+i],[d.left+r,d.top+i]];for(let e=0;e<m.length;e+=1){const n=m[e];if(n[0]>=0&&n[0]<=o&&n[1]>=0&&n[1]<=s){if(0===n[0]&&0===n[1])continue;t=!0}}if(!t)return}e.isHorizontal()?((d||m||f||b)&&(i.preventDefault?i.preventDefault():i.returnValue=!1),((m||b)&&!n||(d||f)&&n)&&e.slideNext(),((d||f)&&!n||(m||b)&&n)&&e.slidePrev()):((d||m||c||p)&&(i.preventDefault?i.preventDefault():i.returnValue=!1),(m||p)&&e.slideNext(),(d||c)&&e.slidePrev()),a("keyPress",o)}}function o(){e.keyboard.enabled||(r.addEventListener("keydown",i),e.keyboard.enabled=!0)}function s(){e.keyboard.enabled&&(r.removeEventListener("keydown",i),e.keyboard.enabled=!1)}e.keyboard={enabled:!1},t({keyboard:{enabled:!1,onlyInViewport:!0,pageUpDown:!0}}),n("init",()=>{e.params.keyboard.enabled&&o()}),n("destroy",()=>{e.keyboard.enabled&&s()}),Object.assign(e.keyboard,{enable:o,disable:s})}export{Keyboard as default};
//# sourceMappingURL=keyboard.min.mjs.map