{ "version": 3, "sources": [ "interactableTargets.ts" ], "names": [ "Interactable", "extend", "install", "scope", "prototype", "pointerEvents", "pointerEventsMethod", "__backCompatOption", "_backCompatOption", "optionName", "newValue", "ret", "call", "events", "options", "plugin", "id", "listeners", "targets", "node", "type", "eventTarget", "interactables", "forEachMatch", "interactable", "eventable", "types", "length", "testIgnoreAllow", "push", "props", "getRect", "element", "defaults" ], "mappings": "AAAA,SAASA,YAAT,QAA6B,yBAA7B;AAGA,OAAOC,MAAP,MAAmB,oBAAnB;;AASA,SAASC,OAAT,CAAkBC,KAAlB,EAAgC;AAC9B,QAAM;AAAEH,IAAAA;AAAF,MAAmBG,KAAzB;AAEAH,EAAAA,YAAY,CAACI,SAAb,CAAuBC,aAAvB,GAAuCC,mBAAvC;AAEA,QAAMC,kBAAkB,GAAGP,YAAY,CAACI,SAAb,CAAuBI,iBAAlD;;AAEAR,EAAAA,YAAY,CAACI,SAAb,CAAuBI,iBAAvB,GAA2C,UAAUC,UAAV,EAAsBC,QAAtB,EAAgC;AACzE,UAAMC,GAAG,GAAGJ,kBAAkB,CAACK,IAAnB,CAAwB,IAAxB,EAA8BH,UAA9B,EAA0CC,QAA1C,CAAZ;;AAEA,QAAIC,GAAG,KAAK,IAAZ,EAAkB;AAChB,WAAKE,MAAL,CAAYC,OAAZ,CAAoBL,UAApB,IAAkCC,QAAlC;AACD;;AAED,WAAOC,GAAP;AACD,GARD;AASD;;AAED,SAASL,mBAAT,CAAkDQ,OAAlD,EAAgE;AAC9Db,EAAAA,MAAM,CAAC,KAAKY,MAAL,CAAYC,OAAb,EAAsBA,OAAtB,CAAN;AAEA,SAAO,IAAP;AACD;;AAED,MAAMC,MAAc,GAAG;AACrBC,EAAAA,EAAE,EAAE,oCADiB;AAErBd,EAAAA,OAFqB;AAGrBe,EAAAA,SAAS,EAAE;AACT,qCAAiC,CAAC;AAChCC,MAAAA,OADgC;AAEhCC,MAAAA,IAFgC;AAGhCC,MAAAA,IAHgC;AAIhCC,MAAAA;AAJgC,KAAD,EAK9BlB,KAL8B,KAKpB;AACXA,MAAAA,KAAK,CAACmB,aAAN,CAAoBC,YAApB,CAAiCJ,IAAjC,EAAwCK,YAAD,IAAgC;AACrE,cAAMC,SAAS,GAAGD,YAAY,CAACX,MAA/B;AACA,cAAMC,OAAO,GAAGW,SAAS,CAACX,OAA1B;;AAEA,YACEW,SAAS,CAACC,KAAV,CAAgBN,IAAhB,KACAK,SAAS,CAACC,KAAV,CAAgBN,IAAhB,EAAsBO,MADtB,IAEFH,YAAY,CAACI,eAAb,CAA6Bd,OAA7B,EAAsCK,IAAtC,EAA4CE,WAA5C,CAHA,EAG0D;AACxDH,UAAAA,OAAO,CAACW,IAAR,CAAa;AACXV,YAAAA,IADW;AAEXM,YAAAA,SAFW;AAGXK,YAAAA,KAAK,EAAE;AAAEN,cAAAA;AAAF;AAHI,WAAb;AAKD;AACF,OAdD;AAeD,KAtBQ;AAwBT,wBAAoB,CAAC;AAAEA,MAAAA;AAAF,KAAD,KAAsB;AACxCA,MAAAA,YAAY,CAACX,MAAb,CAAoBkB,OAApB,GAA8B,UAAUC,OAAV,EAA4B;AACxD,eAAOR,YAAY,CAACO,OAAb,CAAqBC,OAArB,CAAP;AACD,OAFD;AAGD,KA5BQ;AA8BT,wBAAoB,CAAC;AAAER,MAAAA,YAAF;AAAgBV,MAAAA;AAAhB,KAAD,EAA4BX,KAA5B,KAAsC;AACxDF,MAAAA,MAAM,CAACuB,YAAY,CAACX,MAAb,CAAoBC,OAArB,EAA8BX,KAAK,CAACE,aAAN,CAAoB4B,QAAlD,CAAN;AACAhC,MAAAA,MAAM,CAACuB,YAAY,CAACX,MAAb,CAAoBC,OAArB,EAA8BA,OAAO,CAACT,aAAR,IAAyB,EAAvD,CAAN;AACD;AAjCQ;AAHU,CAAvB;AAwCA,eAAeU,MAAf", "sourcesContent": [ "import { Interactable } from '@interactjs/core/Interactable'\nimport { Scope, Plugin } from '@interactjs/core/scope'\nimport { Element } from '@interactjs/types/index'\nimport extend from '@interactjs/utils/extend'\n\ndeclare module '@interactjs/core/Interactable' {\n interface Interactable {\n pointerEvents: typeof pointerEventsMethod\n __backCompatOption: (optionName: string, newValue: any) => any\n }\n}\n\nfunction install (scope: Scope) {\n const { Interactable } = scope\n\n Interactable.prototype.pointerEvents = pointerEventsMethod\n\n const __backCompatOption = Interactable.prototype._backCompatOption\n\n Interactable.prototype._backCompatOption = function (optionName, newValue) {\n const ret = __backCompatOption.call(this, optionName, newValue)\n\n if (ret === this) {\n this.events.options[optionName] = newValue\n }\n\n return ret\n }\n}\n\nfunction pointerEventsMethod (this: Interactable, options: any) {\n extend(this.events.options, options)\n\n return this\n}\n\nconst plugin: Plugin = {\n id: 'pointer-events/interactableTargets',\n install,\n listeners: {\n 'pointerEvents:collect-targets': ({\n targets,\n node,\n type,\n eventTarget,\n }, scope) => {\n scope.interactables.forEachMatch(node, (interactable: Interactable) => {\n const eventable = interactable.events\n const options = eventable.options\n\n if (\n eventable.types[type] &&\n eventable.types[type].length &&\n interactable.testIgnoreAllow(options, node, eventTarget)) {\n targets.push({\n node,\n eventable,\n props: { interactable },\n })\n }\n })\n },\n\n 'interactable:new': ({ interactable }) => {\n interactable.events.getRect = function (element: Element) {\n return interactable.getRect(element)\n }\n },\n\n 'interactable:set': ({ interactable, options }, scope) => {\n extend(interactable.events.options, scope.pointerEvents.defaults)\n extend(interactable.events.options, options.pointerEvents || {})\n },\n },\n}\n\nexport default plugin\n" ] }