{ "version": 3, "sources": [ "DropEvent.ts" ], "names": [ "BaseEvent", "arr", "DropEvent", "constructor", "dropState", "dragEvent", "type", "super", "_interaction", "this", "target", "dropzone", "relatedTarget", "draggable", "timeStamp", "propagationStopped", "immediatePropagationStopped", "element", "prev", "cur", "currentTarget", "interactable", "reject", "rejected", "events", "enter", "stopImmediatePropagation", "activeDrops", "index", "findIndex", "splice", "deactivateEvent", "fire", "preventDefault", "stopPropagation" ], "mappings": "oBAASA,MAAiB,yCAIdC,MAAS,iCAEd,MAAMC,kBAAkBF,EAa7BG,YAAaC,EAAyCC,EAAkCC,GACtFC,MAAMF,EAAUG,cADoFC,KAZtGC,YAYsG,EAAAD,KAXtGE,cAWsG,EAAAF,KAVtGJ,eAUsG,EAAAI,KATtGG,mBASsG,EAAAH,KARtGI,eAQsG,EAAAJ,KAPtGK,eAOsG,EAAAL,KANtGM,oBAAqB,EAMiFN,KALtGO,6BAA8B,EAQ5B,MAAMC,QAAEA,EAAFN,SAAWA,GAAsB,cAATL,EAC1BF,EAAUc,KACVd,EAAUe,IAEdV,KAAKH,KAAgBA,EACrBG,KAAKC,OAAgBO,EACrBR,KAAKW,cAAgBH,EACrBR,KAAKE,SAAgBA,EACrBF,KAAKJ,UAAgBA,EACrBI,KAAKG,cAAgBP,EAAUK,OAC/BD,KAAKI,UAAgBR,EAAUgB,aAC/BZ,KAAKK,UAAgBT,EAAUS,UAUjCQ,SACE,MAAMlB,UAAEA,GAAcK,KAAKD,aAE3B,GACiB,iBAAdC,KAAKH,MACHG,KAAKE,UACNP,EAAUe,IAAIR,WAAaF,KAAKE,UAChCP,EAAUe,IAAIF,UAAYR,KAAKC,OAYnC,GARAN,EAAUc,KAAKP,SAAWF,KAAKE,SAC/BP,EAAUc,KAAKD,QAAUR,KAAKC,OAE9BN,EAAUmB,UAAW,EACrBnB,EAAUoB,OAAOC,MAAQ,KAEzBhB,KAAKiB,2BAEa,iBAAdjB,KAAKH,KAAyB,CAChC,MAAMqB,EAAcvB,EAAUuB,YACxBC,EAAQ3B,EAAI4B,UAAUF,GAAa,EAAGhB,SAAAA,EAAUM,QAAAA,KACpDN,IAAaF,KAAKE,UAAYM,IAAYR,KAAKC,SAEjDN,EAAUuB,YAAYG,OAAOF,EAAO,GAEpC,MAAMG,EAAkB,IAAI7B,UAAUE,EAAWK,KAAKJ,UAAW,kBAEjE0B,EAAgBpB,SAAWF,KAAKE,SAChCoB,EAAgBrB,OAASD,KAAKC,OAE9BD,KAAKE,SAASqB,KAAKD,QAGnBtB,KAAKE,SAASqB,KAAK,IAAI9B,UAAUE,EAAWK,KAAKJ,UAAW,cAIhE4B,kBAEAC,kBACEzB,KAAKM,oBAAqB,EAG5BW,2BACEjB,KAAKO,4BAA8BP,KAAKM,oBAAqB", "sourcesContent": [ "import { BaseEvent } from '@interactjs/core/BaseEvent'\nimport { InteractEvent } from '@interactjs/core/InteractEvent'\nimport { Interactable } from '@interactjs/core/Interactable'\nimport { Element } from '@interactjs/types/index'\nimport * as arr from '@interactjs/utils/arr'\n\nexport class DropEvent extends BaseEvent<'drag'> {\n target: Element\n dropzone: Interactable\n dragEvent: InteractEvent<'drag'>\n relatedTarget: Element\n draggable: Interactable\n timeStamp: number\n propagationStopped = false\n immediatePropagationStopped = false\n\n /**\n * Class of events fired on dropzones during drags with acceptable targets.\n */\n constructor (dropState: import('./plugin').DropState, dragEvent: InteractEvent<'drag'>, type: string) {\n super(dragEvent._interaction)\n\n const { element, dropzone } = type === 'dragleave'\n ? dropState.prev\n : dropState.cur\n\n this.type = type\n this.target = element\n this.currentTarget = element\n this.dropzone = dropzone\n this.dragEvent = dragEvent\n this.relatedTarget = dragEvent.target\n this.draggable = dragEvent.interactable\n this.timeStamp = dragEvent.timeStamp\n }\n\n /**\n * If this is a `dropactivate` event, the dropzone element will be\n * deactivated.\n *\n * If this is a `dragmove` or `dragenter`, a `dragleave` will be fired on the\n * dropzone element and more.\n */\n reject () {\n const { dropState } = this._interaction\n\n if (\n (this.type !== 'dropactivate') && (\n !this.dropzone ||\n dropState.cur.dropzone !== this.dropzone ||\n dropState.cur.element !== this.target)) {\n return\n }\n\n dropState.prev.dropzone = this.dropzone\n dropState.prev.element = this.target\n\n dropState.rejected = true\n dropState.events.enter = null\n\n this.stopImmediatePropagation()\n\n if (this.type === 'dropactivate') {\n const activeDrops = dropState.activeDrops\n const index = arr.findIndex(activeDrops, ({ dropzone, element }) =>\n dropzone === this.dropzone && element === this.target)\n\n dropState.activeDrops.splice(index, 1)\n\n const deactivateEvent = new DropEvent(dropState, this.dragEvent, 'dropdeactivate')\n\n deactivateEvent.dropzone = this.dropzone\n deactivateEvent.target = this.target\n\n this.dropzone.fire(deactivateEvent)\n }\n else {\n this.dropzone.fire(new DropEvent(dropState, this.dragEvent, 'dragleave'))\n }\n }\n\n preventDefault () {}\n\n stopPropagation () {\n this.propagationStopped = true\n }\n\n stopImmediatePropagation () {\n this.immediatePropagationStopped = this.propagationStopped = true\n }\n}\n" ] }