@vxe-ui/core
Version:
Vxe UI core library
1 lines • 3.05 kB
JavaScript
Object.defineProperty(exports,"__esModule",{value:!0}),exports.globalEvents=exports.createEvent=exports.GLOBAL_EVENT_KEYS=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let GLOBAL_EVENT_KEYS=exports.GLOBAL_EVENT_KEYS={F2:"F2",F10:"F10",TAB:"Tab",ESCAPE:"Escape",ENTER:"Enter",DELETE:"Delete",BACKSPACE:"Backspace",SPACEBAR:" ",CONTEXT_MENU:"ContextMenu",ARROW_UP:"ArrowUp",ARROW_DOWN:"ArrowDown",ARROW_LEFT:"ArrowLeft",ARROW_RIGHT:"ArrowRight",PAGE_UP:"PageUp",PAGE_DOWN:"PageDown",HOME:"Home",END:"End",A:"A",X:"X",C:"C",V:"V",D:"D",F:"F",H:"H",M:"M",Y:"Y",Z:"Z",R:"R",P:"P"},browse=_xeUtils.default.browse(),convertEventKeys={" ":"Spacebar",Apps:GLOBAL_EVENT_KEYS.CONTEXT_MENU,Del:GLOBAL_EVENT_KEYS.DELETE,Up:GLOBAL_EVENT_KEYS.ARROW_UP,Down:GLOBAL_EVENT_KEYS.ARROW_DOWN,Left:GLOBAL_EVENT_KEYS.ARROW_LEFT,Right:GLOBAL_EVENT_KEYS.ARROW_RIGHT},wheelName=browse.firefox?"DOMMouseScroll":"mousewheel",eventStore=[];function triggerEvent(n){let r=n.type===wheelName;eventStore.forEach(({type:e,cb:t})=>{n.cancelBubble||(e===n.type||r&&"mousewheel"===e)&&t(n)})}class VxeComponentEvent{constructor(e,t,n){Object.defineProperty(this,"$event",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"type",{enumerable:!0,configurable:!0,writable:!0,value:""}),Object.defineProperty(this,"key",{enumerable:!0,configurable:!0,writable:!0,value:""}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:""}),(this.$event=e)&&(e.type&&(this.type=e.type),e.key&&(this.key=e.key),e.code)&&(this.code=e.code),Object.assign(this,t),_xeUtils.default.objectEach(n,(n,r)=>{if(_xeUtils.default.isFunction(n)){let e=null,t=!1;Object.defineProperty(this,r,{get(){return t||(t=!0,e=n()),e}})}else this[r]=n})}stopPropagation(){var e=this.$event;e&&e.stopPropagation()}preventDefault(){var e=this.$event;e&&e.preventDefault()}}let createEvent=(e,t,n)=>(e instanceof VxeComponentEvent&&(e=e.$event),new VxeComponentEvent(e,t,n)),globalEvents=(exports.createEvent=createEvent,exports.globalEvents={on(e,t,n){eventStore.push({comp:e,type:t,cb:n})},off(t,n){_xeUtils.default.remove(eventStore,e=>e.comp===t&&e.type===n)},hasKey(e,t){return!(!t||(e=e.key,t=t.toLowerCase(),!e)||t!==e.toLowerCase()&&(!convertEventKeys[e]||convertEventKeys[e].toLowerCase()!==t))}});browse.isDoc&&(browse.msie||(window.addEventListener("copy",triggerEvent,!1),window.addEventListener("cut",triggerEvent,!1),window.addEventListener("paste",triggerEvent,!1)),document.addEventListener("scroll",triggerEvent,!0),document.addEventListener("keydown",triggerEvent,!1),document.addEventListener("contextmenu",triggerEvent,!1),window.addEventListener("mousedown",triggerEvent,!1),window.addEventListener("click",triggerEvent,!1),window.addEventListener("blur",triggerEvent,!1),window.addEventListener("resize",triggerEvent,!1),window.addEventListener(wheelName,_xeUtils.default.throttle(triggerEvent,100,{leading:!0,trailing:!1}),{passive:!0,capture:!1}));