UNPKG

@tsparticles/plugin-motion

Version:

tsParticles motion sickness plugin

2 lines 2.38 kB
/*! For license information please see tsparticles.plugin.motion.min.js.LICENSE.txt */ !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("@tsparticles/engine"));else if("function"==typeof define&&define.amd)define(["@tsparticles/engine"],t);else{var o="object"==typeof exports?t(require("@tsparticles/engine")):t(e.window);for(var i in o)("object"==typeof exports?exports:e)[i]=o[i]}}(this,(e=>(()=>{var t={303:t=>{t.exports=e}},o={};function i(e){var r=o[e];if(void 0!==r)return r.exports;var n=o[e]={exports:{}};return t[e](n,n.exports,i),n.exports}i.d=(e,t)=>{for(var o in t)i.o(t,o)&&!i.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};i.r(r),i.d(r,{loadMotionPlugin:()=>l});var n=i(303);class a{constructor(){this.factor=4,this.value=!0}load(e){(0,n.isNull)(e)||(void 0!==e.factor&&(this.factor=e.factor),void 0!==e.value&&(this.value=e.value))}}class s{constructor(){this.disable=!0,this.reduce=new a}load(e){(0,n.isNull)(e)||(void 0!==e.disable&&(this.disable=e.disable),this.reduce.load(e.reduce))}}class c{constructor(e,t){this._handleMotionChange=e=>{const t=this._container,o=t.actualOptions.motion;o&&(e.matches?o.disable?t.retina.reduceFactor=0:t.retina.reduceFactor=o.reduce.value?1/o.reduce.factor:1:t.retina.reduceFactor=1)},this._container=e,this._engine=t}async init(){const e=this._container,t=e.actualOptions.motion;if(!t||!t.disable&&!t.reduce.value)return void(e.retina.reduceFactor=1);const o=(0,n.safeMatchMedia)("(prefers-reduced-motion: reduce)");if(!o)return void(e.retina.reduceFactor=1);this._handleMotionChange(o);const i=()=>{(async()=>{this._handleMotionChange(o);try{await e.refresh()}catch{}})()};void 0!==o.addEventListener?o.addEventListener("change",i):void 0!==o.addListener&&o.addListener(i),await Promise.resolve()}}class d{constructor(e){this.id="motion",this._engine=e}getPlugin(e){return Promise.resolve(new c(e,this._engine))}loadOptions(e,t){if(!this.needsPlugin())return;let o=e.motion;o?.load||(e.motion=o=new s),o.load(t?.motion)}needsPlugin(){return!0}}async function l(e,t=!0){e.checkVersion("3.9.1"),await e.addPlugin(new d(e),t)}return r})()));