element-plus
Version:
A Component Library for Vue 3
1 lines • 2.82 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../../../../packages/directives/mousewheel/index.ts"],"sourcesContent":["import normalizeWheel from 'normalize-wheel-es'\n\nimport type { ObjectDirective } from 'vue'\nimport type { NormalizedWheelEvent } from 'normalize-wheel-es'\n\nexport const SCOPE = '_Mousewheel'\n\nexport interface WheelElement extends HTMLElement {\n [SCOPE]: null | {\n wheelHandler?: (event: WheelEvent) => void\n }\n}\n\nexport type MousewheelCallback = (\n e: WheelEvent,\n normalized: NormalizedWheelEvent\n) => void\n\nconst mousewheel = function (\n element: WheelElement,\n callback: MousewheelCallback\n) {\n if (element && element.addEventListener) {\n removeWheelHandler(element)\n\n const fn = function (this: HTMLElement, event: WheelEvent) {\n const normalized = normalizeWheel(event)\n callback && Reflect.apply(callback, this, [event, normalized])\n }\n\n element[SCOPE] = { wheelHandler: fn }\n element.addEventListener('wheel', fn, { passive: true })\n }\n}\n\nconst removeWheelHandler = (element: WheelElement) => {\n if (element[SCOPE]?.wheelHandler) {\n element.removeEventListener('wheel', element[SCOPE].wheelHandler)\n element[SCOPE] = null\n }\n}\n\nconst Mousewheel: ObjectDirective<WheelElement, MousewheelCallback> = {\n beforeMount(el, binding) {\n mousewheel(el, binding.value)\n },\n unmounted(el) {\n removeWheelHandler(el)\n },\n updated(el, binding) {\n if (binding.value !== binding.oldValue) {\n mousewheel(el, binding.value)\n }\n },\n}\n\nexport default Mousewheel\n"],"names":[],"mappings":";;AAKO,MAAM,KAAQ,GAAA,cAAA;AAarB,MAAM,UAAA,GAAa,SACjB,OAAA,EACA,QACA,EAAA;AACA,EAAI,IAAA,OAAA,IAAW,QAAQ,gBAAkB,EAAA;AACvC,IAAA,kBAAA,CAAmB,OAAO,CAAA,CAAA;AAE1B,IAAM,MAAA,EAAA,GAAK,SAA6B,KAAmB,EAAA;AACzD,MAAM,MAAA,UAAA,GAAa,eAAe,KAAK,CAAA,CAAA;AACvC,MAAA,QAAA,IAAY,QAAQ,KAAM,CAAA,QAAA,EAAU,MAAM,CAAC,KAAA,EAAO,UAAU,CAAC,CAAA,CAAA;AAAA,KAC/D,CAAA;AAEA,IAAQ,OAAA,CAAA,KAAA,CAAA,GAAS,EAAE,YAAA,EAAc,EAAG,EAAA,CAAA;AACpC,IAAA,OAAA,CAAQ,iBAAiB,OAAS,EAAA,EAAA,EAAI,EAAE,OAAA,EAAS,MAAM,CAAA,CAAA;AAAA,GACzD;AACF,CAAA,CAAA;AAEA,MAAM,kBAAA,GAAqB,CAAC,OAA0B,KAAA;AAnCtD,EAAA,IAAA,EAAA,CAAA;AAoCE,EAAI,IAAA,CAAA,EAAA,GAAA,OAAA,CAAQ,KAAR,CAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAgB,YAAc,EAAA;AAChC,IAAA,OAAA,CAAQ,mBAAoB,CAAA,OAAA,EAAS,OAAQ,CAAA,KAAA,CAAA,CAAO,YAAY,CAAA,CAAA;AAChE,IAAA,OAAA,CAAQ,KAAS,CAAA,GAAA,IAAA,CAAA;AAAA,GACnB;AACF,CAAA,CAAA;AAEA,MAAM,UAAgE,GAAA;AAAA,EACpE,WAAA,CAAY,IAAI,OAAS,EAAA;AACvB,IAAW,UAAA,CAAA,EAAA,EAAI,QAAQ,KAAK,CAAA,CAAA;AAAA,GAC9B;AAAA,EACA,UAAU,EAAI,EAAA;AACZ,IAAA,kBAAA,CAAmB,EAAE,CAAA,CAAA;AAAA,GACvB;AAAA,EACA,OAAA,CAAQ,IAAI,OAAS,EAAA;AACnB,IAAI,IAAA,OAAA,CAAQ,KAAU,KAAA,OAAA,CAAQ,QAAU,EAAA;AACtC,MAAW,UAAA,CAAA,EAAA,EAAI,QAAQ,KAAK,CAAA,CAAA;AAAA,KAC9B;AAAA,GACF;AACF;;;;"}