From 514de88861dfd748acc4ae4e63ffc282f88ef490 Mon Sep 17 00:00:00 2001 From: Gustavo Santos Date: Tue, 5 Mar 2019 13:15:19 +0000 Subject: [PATCH] new events emited by GridLayout, release 2.3.4 --- CHANGELOG.md | 3 +- README.md | 54 ++++++++++++++++++++++++++++- dist/vue-grid-layout.common.js | 22 +++++++----- dist/vue-grid-layout.common.js.map | 2 +- dist/vue-grid-layout.umd.js | 22 +++++++----- dist/vue-grid-layout.umd.js.map | 2 +- dist/vue-grid-layout.umd.min.js | 2 +- dist/vue-grid-layout.umd.min.js.map | 2 +- examples/02-events.html | 7 +++- examples/02-events.js | 21 +++++++++++ src/App.vue | 24 ++++++++++++- src/components/GridLayout.vue | 25 ++++++++----- 12 files changed, 153 insertions(+), 33 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d7766fac..94e0c29c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,12 +1,13 @@ # Changelog -## 2.3.4 (UNRELEASED) +## 2.3.4 (Mar 5, 2019) * Support for static items (thanks [panjiangyi](https://github.com/panjiangyi)). * RTL bugfix (thanks [irvingwa](https://github.com/irvingwa)). * Memory leak fixes (thanks [aiankile](https://github.com/aiankile)). * Fixed exception on grid layout mount (thanks [BenoitZugmeyer](https://github.com/BenoitZugmeyer)). * Fixed overlapping and resizing bugs on responsive mode (thanks [shpfive](https://github.com/shpfive)). +* Added new events emited by GridLayout (layout-created, layout-before-mount, layout-mounted, layout-ready) (thanks [samuelmolinski](https://github.com/samuelmolinski)). ## 2.3.3 (Dec 26, 2018) diff --git a/README.md b/README.md index 5e9f722b..255170a1 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ vue-grid-layout is a grid layout system, like [Gridster](http://dsmorse.github.io/gridster.js/), for Vue.js. **Heavily inspired in [React-Grid-Layout](https://github.com/STRML/react-grid-layout)** -### **Current version:** 2.3.3 (Supports Vue 2.2+) +### **Current version:** 2.3.4 (Supports Vue 2.2+) ### **For Vue 2.1.10 and below use version [2.1.3](https://github.com/jbaysolutions/vue-grid-layout/tree/2.1.3)** ### **For Vue 1 use version [1.0.3](https://github.com/jbaysolutions/vue-grid-layout/tree/1.0.3)** @@ -451,6 +451,10 @@ Working example [here](https://jbaysolutions.github.io/vue-grid-layout/examples/ :vertical-compact="true" :margin="[10, 10]" :use-css-transforms="true" + @layout-created="layoutCreatedEvent" + @layout-before-mount="layoutBeforeMountEvent" + @layout-mounted="layoutMountedEvent" + @layout-ready="layoutReadyEvent" @layout-updated="layoutUpdatedEvent" > @@ -469,6 +473,54 @@ Working example [here](https://jbaysolutions.github.io/vue-grid-layout/examples/ ```` +* **layoutCreatedEvent** + + Layout created event + + Emited on the component created lifecycle hook + +```javascript + layoutCreatedEvent: function(newLayout){ + console.log("Created layout: ", newLayout) + } +``` + +* **layoutBeforeMountEvent** + + Layout beforeMount event + + Emited on the component beforeMount lifecycle hook + +```javascript + layoutBeforeMountEvent: function(newLayout){ + console.log("beforeMount layout: ", newLayout) + } +``` + +* **layoutMountedEvent** + + Layout mounted event + + Emited on the component mounted lifecycle hook + +```javascript + layoutMountedEvent: function(newLayout){ + console.log("Mounted layout: ", newLayout) + } +``` + +* **layoutReadyEvent** + + Layout ready event + + Emited when all the operations on the mount hook finish + +```javascript + layoutReadyEvent: function(newLayout){ + console.log("Ready layout: ", newLayout) + } +``` + * **layoutUpdatedEvent** Layout updated event diff --git a/dist/vue-grid-layout.common.js b/dist/vue-grid-layout.common.js index ac12ffbc..09f0cb1d 100644 --- a/dist/vue-grid-layout.common.js +++ b/dist/vue-grid-layout.common.js @@ -6420,12 +6420,12 @@ var component = normalizeComponent( ) /* harmony default export */ var GridItem = (component.exports); -// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"3028f95f-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/GridLayout.vue?vue&type=template&id=ba4fc54e& -var GridLayoutvue_type_template_id_ba4fc54e_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:"item",staticClass:"vue-grid-layout",style:(_vm.mergedStyle)},[_vm._t("default"),_c('grid-item',{directives:[{name:"show",rawName:"v-show",value:(_vm.isDragging),expression:"isDragging"}],staticClass:"vue-grid-placeholder",attrs:{"x":_vm.placeholder.x,"y":_vm.placeholder.y,"w":_vm.placeholder.w,"h":_vm.placeholder.h,"i":_vm.placeholder.i}})],2)} -var GridLayoutvue_type_template_id_ba4fc54e_staticRenderFns = [] +// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"3028f95f-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/GridLayout.vue?vue&type=template&id=16f9e7c6& +var GridLayoutvue_type_template_id_16f9e7c6_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:"item",staticClass:"vue-grid-layout",style:(_vm.mergedStyle)},[_vm._t("default"),_c('grid-item',{directives:[{name:"show",rawName:"v-show",value:(_vm.isDragging),expression:"isDragging"}],staticClass:"vue-grid-placeholder",attrs:{"x":_vm.placeholder.x,"y":_vm.placeholder.y,"w":_vm.placeholder.w,"h":_vm.placeholder.h,"i":_vm.placeholder.i}})],2)} +var GridLayoutvue_type_template_id_16f9e7c6_staticRenderFns = [] -// CONCATENATED MODULE: ./src/components/GridLayout.vue?vue&type=template&id=ba4fc54e& +// CONCATENATED MODULE: ./src/components/GridLayout.vue?vue&type=template&id=16f9e7c6& // CONCATENATED MODULE: ./src/helpers/responsiveUtils.js @@ -6750,6 +6750,7 @@ var elementResizeDetectorMaker = __webpack_require__("eec4"); self.eventBus = self._provided.eventBus; self.eventBus.$on('resizeEvent', self.resizeEventHandler); self.eventBus.$on('dragEvent', self.dragEventHandler); + self.$emit('layout-created', self.layout); }, beforeDestroy: function beforeDestroy() { //Remove listeners @@ -6759,7 +6760,11 @@ var elementResizeDetectorMaker = __webpack_require__("eec4"); removeWindowEventListener("resize", this.onWindowResize); this.erd.uninstall(this.$refs.item); }, + beforeMount: function beforeMount() { + this.$emit('layout-before-mount', this.layout); + }, mounted: function mounted() { + this.$emit('layout-mounted', this.layout); this.$nextTick(function () { validateLayout(this.layout); this.originalLayout = this.layout; @@ -6783,6 +6788,7 @@ var elementResizeDetectorMaker = __webpack_require__("eec4"); self.onWindowResize(); }); }); + self.$emit('layout-ready', self.layout); }); }); }, @@ -6942,7 +6948,7 @@ var elementResizeDetectorMaker = __webpack_require__("eec4"); var newBreakpoint = getBreakpointFromWidth(this.breakpoints, this.width); var newCols = getColsFromBreakpoint(newBreakpoint, this.cols); // save actual layout in layouts - if (this.lastBreakpoint != null && !this.layouts[this.lastBreakpoint]) this.layouts[this.lastBreakpoint] = cloneLayout(this.layout); // Find or generate a new layout. + if (this.lastBreakpoint != null && !this.layouts[this.lastBreakpoint]) this.layouts[this.lastBreakpoint] = cloneLayout(this.layout); // Find or generate a new layout. var layout = findOrGenerateResponsiveLayout(this.originalLayout, this.layouts, this.breakpoints, newBreakpoint, this.lastBreakpoint, newCols, this.verticalCompact); // Store the new layout. @@ -6957,7 +6963,7 @@ var elementResizeDetectorMaker = __webpack_require__("eec4"); // clear layouts this.layouts = {}; }, - // find difference in layouts + // find difference in layouts findDifference: function findDifference(layout, originalLayout) { //Find values that are in result1 but not in result2 var uniqueResultOne = layout.filter(function (obj) { @@ -6992,8 +6998,8 @@ var GridLayoutvue_type_style_index_0_lang_css_ = __webpack_require__("e279"); var GridLayout_component = normalizeComponent( components_GridLayoutvue_type_script_lang_js_, - GridLayoutvue_type_template_id_ba4fc54e_render, - GridLayoutvue_type_template_id_ba4fc54e_staticRenderFns, + GridLayoutvue_type_template_id_16f9e7c6_render, + GridLayoutvue_type_template_id_16f9e7c6_staticRenderFns, false, null, null, diff --git a/dist/vue-grid-layout.common.js.map b/dist/vue-grid-layout.common.js.map index 7203ead4..95e6b423 100644 --- a/dist/vue-grid-layout.common.js.map +++ b/dist/vue-grid-layout.common.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://VueGridLayout/webpack/bootstrap","webpack://VueGridLayout/./node_modules/core-js/modules/_iter-define.js","webpack://VueGridLayout/./node_modules/core-js/modules/_string-at.js","webpack://VueGridLayout/./node_modules/core-js/modules/_advance-string-index.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_has.js","webpack://VueGridLayout/./node_modules/core-js/modules/_flags.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-keys.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_to-absolute-index.js","webpack://VueGridLayout/./src/components/GridLayout.vue?43b0","webpack://VueGridLayout/./node_modules/core-js/modules/_object-gopd.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-dps.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_enum-bug-keys.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/detection-strategy/object.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/browser-detector.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/es6.array.is-array.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_to-primitive.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_dom-create.js","webpack://VueGridLayout/./node_modules/core-js/modules/_fix-re-wks.js","webpack://VueGridLayout/./node_modules/core-js/modules/_dom-create.js","webpack://VueGridLayout/./node_modules/css-loader/lib/css-base.js","webpack://VueGridLayout/./node_modules/core-js/modules/_classof.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_to-object.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_defined.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_fails.js","webpack://VueGridLayout/./node_modules/core-js/modules/_redefine.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-create.js","webpack://VueGridLayout/./node_modules/core-js/modules/_wks.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/id-generator.js","webpack://VueGridLayout/./node_modules/core-js/modules/_library.js","webpack://VueGridLayout/./node_modules/core-js/modules/_cof.js","webpack://VueGridLayout/./node_modules/core-js/modules/_strict-method.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/es6.object.keys.js","webpack://VueGridLayout/./node_modules/core-js/modules/_hide.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_iobject.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_hide.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_to-iobject.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-gpo.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_to-integer.js","webpack://VueGridLayout/./node_modules/core-js/modules/_iter-create.js","webpack://VueGridLayout/./node_modules/core-js/modules/_to-integer.js","webpack://VueGridLayout/./node_modules/core-js/modules/_property-desc.js","webpack://VueGridLayout/./node_modules/vue-style-loader/lib/listToStyles.js","webpack://VueGridLayout/./node_modules/vue-style-loader/lib/addStylesClient.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/listener-handler.js","webpack://VueGridLayout/./node_modules/core-js/modules/_to-object.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/id-handler.js","webpack://VueGridLayout/./node_modules/batch-processor/src/utils.js","webpack://VueGridLayout/./node_modules/core-js/modules/_regexp-exec.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-pie.js","webpack://VueGridLayout/./node_modules/core-js/modules/_shared.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_shared-key.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.array.sort.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_core.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_array-includes.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/element-utils.js","webpack://VueGridLayout/./node_modules/core-js/modules/_export.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_parse-int.js","webpack://VueGridLayout/./node_modules/core-js/modules/_inherit-if-required.js","webpack://VueGridLayout/./src/components/GridItem.vue?70f1","webpack://VueGridLayout/./node_modules/core-js/modules/_regexp-exec-abstract.js","webpack://VueGridLayout/./node_modules/core-js/modules/_shared-key.js","webpack://VueGridLayout/./node_modules/core-js/modules/_iobject.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_uid.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_export.js","webpack://VueGridLayout/./node_modules/core-js/modules/_to-iobject.js","webpack://VueGridLayout/./node_modules/core-js/modules/_has.js","webpack://VueGridLayout/./node_modules/core-js/modules/_to-primitive.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_cof.js","webpack://VueGridLayout/./src/components/GridItem.vue?73c4","webpack://VueGridLayout/./node_modules/core-js/library/modules/es6.parse-int.js","webpack://VueGridLayout/./node_modules/core-js/modules/_global.js","webpack://VueGridLayout/./node_modules/core-js/modules/_to-absolute-index.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_ie8-dom-define.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_a-function.js","webpack://VueGridLayout/./node_modules/core-js/modules/_fails.js","webpack://VueGridLayout/./node_modules/core-js/modules/_set-to-string-tag.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.function.name.js","webpack://VueGridLayout/./node_modules/core-js/modules/_core.js","webpack://VueGridLayout/./node_modules/core-js/modules/_iterators.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-dp.js","webpack://VueGridLayout/./node_modules/core-js/library/fn/object/keys.js","webpack://VueGridLayout/./node_modules/core-js/modules/_set-proto.js","webpack://VueGridLayout/external {\"commonjs\":\"vue\",\"commonjs2\":\"vue\",\"root\":\"Vue\"}","webpack://VueGridLayout/./node_modules/core-js/library/modules/_descriptors.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_is-array.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-gopn.js","webpack://VueGridLayout/./node_modules/core-js/modules/_ctx.js","webpack://VueGridLayout/./node_modules/core-js/modules/_add-to-unscopables.js","webpack://VueGridLayout/./src/components/GridItem.vue?b235","webpack://VueGridLayout/./node_modules/core-js/modules/_to-length.js","webpack://VueGridLayout/./node_modules/core-js/modules/_descriptors.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_string-trim.js","webpack://VueGridLayout/./node_modules/core-js/library/fn/json/stringify.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.regexp.replace.js","webpack://VueGridLayout/./node_modules/@babel/runtime-corejs2/core-js/object/keys.js","webpack://VueGridLayout/./node_modules/@babel/runtime-corejs2/core-js/array/is-array.js","webpack://VueGridLayout/./node_modules/core-js/modules/_string-trim.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/reporter.js","webpack://VueGridLayout/./node_modules/core-js/modules/web.dom.iterable.js","webpack://VueGridLayout/./src/components/GridLayout.vue?af6b","webpack://VueGridLayout/./node_modules/core-js/library/modules/_property-desc.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.regexp.exec.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_to-length.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/collection-utils.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_library.js","webpack://VueGridLayout/./node_modules/core-js/library/fn/parse-int.js","webpack://VueGridLayout/./node_modules/core-js/modules/_defined.js","webpack://VueGridLayout/./node_modules/batch-processor/src/batch-processor.js","webpack://VueGridLayout/./node_modules/core-js/modules/_array-includes.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_object-keys.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.number.constructor.js","webpack://VueGridLayout/./node_modules/core-js/modules/_ie8-dom-define.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/detection-strategy/scroll.js","webpack://VueGridLayout/./node_modules/core-js/modules/_uid.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.array.iterator.js","webpack://VueGridLayout/./node_modules/core-js/modules/_an-object.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-keys-internal.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_object-sap.js","webpack://VueGridLayout/./node_modules/core-js/modules/_is-object.js","webpack://VueGridLayout/./node_modules/core-js/modules/_iter-step.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/state-handler.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_ctx.js","webpack://VueGridLayout/./node_modules/core-js/modules/_a-function.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_object-dp.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_shared.js","webpack://VueGridLayout/./node_modules/core-js/modules/_enum-bug-keys.js","webpack://VueGridLayout/./src/components/GridLayout.vue?2bdf","webpack://VueGridLayout/./node_modules/core-js/library/modules/_an-object.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_global.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_string-ws.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_object-keys-internal.js","webpack://VueGridLayout/./node_modules/@babel/runtime-corejs2/core-js/parse-int.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/element-resize-detector.js","webpack://VueGridLayout/./node_modules/core-js/library/fn/array/is-array.js","webpack://VueGridLayout/./node_modules/@babel/runtime-corejs2/core-js/json/stringify.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_is-object.js","webpack://VueGridLayout/./node_modules/core-js/modules/_function-to-string.js","webpack://VueGridLayout/./node_modules/core-js/modules/_html.js","webpack://VueGridLayout/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://VueGridLayout/./src/components/GridItem.vue?d2b9","webpack://VueGridLayout/./src/helpers/utils.js","webpack://VueGridLayout/./src/helpers/draggableUtils.js","webpack://VueGridLayout/./src/helpers/DOM.js","webpack://VueGridLayout/src/components/GridItem.vue","webpack://VueGridLayout/./src/components/GridItem.vue?2537","webpack://VueGridLayout/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://VueGridLayout/./src/components/GridItem.vue","webpack://VueGridLayout/./src/components/GridLayout.vue?49f6","webpack://VueGridLayout/./src/helpers/responsiveUtils.js","webpack://VueGridLayout/src/components/GridLayout.vue","webpack://VueGridLayout/./src/components/GridLayout.vue?2dea","webpack://VueGridLayout/./src/components/GridLayout.vue","webpack://VueGridLayout/./src/components/index.js","webpack://VueGridLayout/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js","webpack://VueGridLayout/./node_modules/interactjs/dist/interact.js","webpack://VueGridLayout/./node_modules/core-js/modules/_string-ws.js"],"names":["bottom","layout","max","bottomY","i","len","length","y","h","cloneLayout","newLayout","Array","cloneLayoutItem","layoutItem","JSON","parse","collides","l1","l2","x","w","compact","verticalCompact","compareWith","getStatics","sorted","sortLayoutItemsByRowCol","out","l","static","compactItem","push","indexOf","moved","getFirstCollision","correctBounds","bounds","collidesWith","cols","getLayoutItem","id","getAllCollisions","filter","moveElement","isUserAction","movingUp","reverse","collisions","collision","moveElementAwayFromCollision","itemToMove","fakeItem","Math","undefined","perc","num","setTransform","top","left","width","height","translate","transform","WebkitTransform","MozTransform","msTransform","OTransform","position","setTransformRtl","right","setTopLeft","setTopRight","concat","sort","a","b","validateLayout","contextName","subProps","Error","item","j","autoBindHandlers","el","fns","forEach","key","bind","createMarkup","obj","keys","result","val","hyphenate","addPx","IS_UNITLESS","animationIterationCount","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridColumn","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","stopOpacity","strokeDashoffset","strokeOpacity","strokeWidth","name","value","hyphenateRE","str","replace","toLowerCase","findItemInArray","array","property","findAndRemove","index","splice","getControlPosition","e","offsetXYFromParentOf","evt","offsetParent","target","document","body","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","createCoreData","lastX","lastY","isStart","isNum","deltaX","deltaY","isNaN","currentDir","hasDocument","hasWindow","window","getDocumentDir","direction","dir","getElementsByTagName","getAttribute","setDocumentDir","html","setAttribute","addWindowEventListener","event","callback","addEventListener","removeWindowEventListener","removeEventListener","getBreakpointFromWidth","breakpoints","sortBreakpoints","matching","breakpointName","getColsFromBreakpoint","breakpoint","findOrGenerateResponsiveLayout","orgLayout","layouts","lastBreakpoint","breakpointsSorted","breakpointsAbove","slice","generateResponsiveLayout","VueGridLayout","GridLayout","GridItem","Vue","component"],"mappings":"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CA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,+CAA+C,oBAAoB,QAAQ,SAAS,aAAa,cAAc,cAAc,YAAY,WAAW,YAAY,gBAAgB,sBAAsB;;AAEtM;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;;AAE7B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtNa;;AAEb;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;;;;;;;ACtCA;AACA,cAAc,mBAAO,CAAC,MAAW;;AAEjC,6BAA6B,UAAU,mBAAO,CAAC,MAAa,GAAG;;;;;;;;ACH/D;AACA,eAAe,mBAAO,CAAC,MAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA,eAAe,mBAAO,CAAC,MAAc;AACrC,eAAe,mBAAO,CAAC,MAAW;AAClC;AACA;AACA;AACA;AACA;;;;;;;;;ACNa;AACb,mBAAO,CAAC,MAAmB;AAC3B,eAAe,mBAAO,CAAC,MAAa;AACpC,WAAW,mBAAO,CAAC,MAAS;AAC5B,YAAY,mBAAO,CAAC,MAAU;AAC9B,cAAc,mBAAO,CAAC,MAAY;AAClC,UAAU,mBAAO,CAAC,MAAQ;AAC1B,iBAAiB,mBAAO,CAAC,MAAgB;;AAEzC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,yBAAyB,4CAA4C;AACrE;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,UAAU;AACvC;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB,aAAa;AAC3D;AACA;AACA;AACA;AACA,6CAA6C,WAAW;AACxD;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,kBAAkB;AAClB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAAgC,qCAAqC;AACrE;AACA;AACA,2BAA2B,gCAAgC;AAC3D;AACA;AACA;;;;;;;;AC/FA,eAAe,mBAAO,CAAC,MAAc;AACrC,eAAe,mBAAO,CAAC,MAAW;AAClC;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gBAAgB;AACnD,IAAI;AACJ;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,oDAAoD,cAAc;;AAElE;AACA;;;;;;;;AC3EA;AACA,UAAU,mBAAO,CAAC,MAAQ;AAC1B,UAAU,mBAAO,CAAC,MAAQ;AAC1B;AACA,2BAA2B,kBAAkB,EAAE;;AAE/C;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA,cAAc,mBAAO,CAAC,MAAY;AAClC;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;ACNA,aAAa,mBAAO,CAAC,MAAW;AAChC,WAAW,mBAAO,CAAC,MAAS;AAC5B,UAAU,mBAAO,CAAC,MAAQ;AAC1B,UAAU,mBAAO,CAAC,MAAQ;AAC1B,gBAAgB,mBAAO,CAAC,MAAuB;AAC/C;AACA;;AAEA,mBAAO,CAAC,MAAS;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;;;;;;;;AC9BD;AACA,eAAe,mBAAO,CAAC,MAAc;AACrC,UAAU,mBAAO,CAAC,MAAe;AACjC,kBAAkB,mBAAO,CAAC,MAAkB;AAC5C,eAAe,mBAAO,CAAC,MAAe;AACtC,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA,eAAe,mBAAO,CAAC,MAAe;AACtC;AACA;AACA;AACA;AACA;AACA,EAAE,mBAAO,CAAC,MAAS;AACnB,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;ACxCA,YAAY,mBAAO,CAAC,MAAW;AAC/B,UAAU,mBAAO,CAAC,MAAQ;AAC1B,aAAa,mBAAO,CAAC,MAAW;AAChC;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACVa;;AAEb;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;ACjBA;;;;;;;;ACAA,iBAAiB;;AAEjB;AACA;AACA;;;;;;;;;ACJa;AACb,YAAY,mBAAO,CAAC,MAAU;;AAE9B;AACA;AACA;AACA,yCAAyC,cAAc;AACvD,GAAG;AACH;;;;;;;;ACRA;AACA,eAAe,mBAAO,CAAC,MAAc;AACrC,YAAY,mBAAO,CAAC,MAAgB;;AAEpC,mBAAO,CAAC,MAAe;AACvB;AACA;AACA;AACA,CAAC;;;;;;;;ACRD,SAAS,mBAAO,CAAC,MAAc;AAC/B,iBAAiB,mBAAO,CAAC,MAAkB;AAC3C,iBAAiB,mBAAO,CAAC,MAAgB;AACzC;AACA,CAAC;AACD;AACA;AACA;;;;;;;;ACPA;AACA,UAAU,mBAAO,CAAC,MAAQ;AAC1B;AACA;AACA;AACA;;;;;;;;ACLA,SAAS,mBAAO,CAAC,MAAc;AAC/B,iBAAiB,mBAAO,CAAC,MAAkB;AAC3C,iBAAiB,mBAAO,CAAC,MAAgB;AACzC;AACA,CAAC;AACD;AACA;AACA;;;;;;;;ACPA;AACA,cAAc,mBAAO,CAAC,MAAY;AAClC,cAAc,mBAAO,CAAC,MAAY;AAClC;AACA;AACA;;;;;;;;ACLA;AACA,UAAU,mBAAO,CAAC,MAAQ;AAC1B,eAAe,mBAAO,CAAC,MAAc;AACrC,eAAe,mBAAO,CAAC,MAAe;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLa;AACb,aAAa,mBAAO,CAAC,MAAkB;AACvC,iBAAiB,mBAAO,CAAC,MAAkB;AAC3C,qBAAqB,mBAAO,CAAC,MAAsB;AACnD;;AAEA;AACA,mBAAO,CAAC,MAAS,qBAAqB,mBAAO,CAAC,MAAQ,4BAA4B,aAAa,EAAE;;AAEjG;AACA,qDAAqD,4BAA4B;AACjF;AACA;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACe;AACf;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,wBAAwB;AAC3D,KAAK;AACL;AACA;AACA;AACA;AACA;;;AC1BA;AAAA;AACA;AACA;AACA;AACA;;AAEyC;;AAEzC;;AAEA;AACA;AACA;AACA;AACA,UAAU,iBAAiB;AAC3B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;;AAEA;;AAEA,eAAe,YAAY;AAC3B;;AAEA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B;AACA,KAAK;AACL;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7Na;;AAEb;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3DA;AACA,cAAc,mBAAO,CAAC,MAAY;AAClC;AACA;AACA;;;;;;;;;ACJa;;AAEb;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,mBAAmB;AACpC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,mBAAmB;AACpC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;AC9Ca;;AAEb;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;ACda;;AAEb,kBAAkB,mBAAO,CAAC,MAAU;;AAEpC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;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ACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;;;;;;;ACrHD,iBAAiB,mBAAO,CAAC,MAAgC,E;;;;;;;ACAzD,iBAAiB,mBAAO,CAAC,MAAmC,E;;;;;;;ACA5D,cAAc,mBAAO,CAAC,MAAW;AACjC,cAAc,mBAAO,CAAC,MAAY;AAClC,YAAY,mBAAO,CAAC,MAAU;AAC9B,aAAa,mBAAO,CAAC,MAAc;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;AC7Ba;;AAEb;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,iBAAiB;AACjB,mCAAmC,sBAAsB;AACzD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,E;;;;;;;AC1CA,iBAAiB,mBAAO,CAAC,MAAsB;AAC/C,cAAc,mBAAO,CAAC,MAAgB;AACtC,eAAe,mBAAO,CAAC,MAAa;AACpC,aAAa,mBAAO,CAAC,MAAW;AAChC,WAAW,mBAAO,CAAC,MAAS;AAC5B,gBAAgB,mBAAO,CAAC,MAAc;AACtC,UAAU,mBAAO,CAAC,MAAQ;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAoD,wBAAwB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA,2BAA2B,mBAAO,CAAC,MAA+C;AAClF;;;AAGA;AACA,cAAc,QAAS,oBAAoB,kBAAkB,mCAAmC,2BAA2B;;AAE3H;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPa;AACb,iBAAiB,mBAAO,CAAC,MAAgB;AACzC,mBAAO,CAAC,MAAW;AACnB;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;;;;;;;;ACRD;AACA,gBAAgB,mBAAO,CAAC,MAAe;AACvC;AACA;AACA,2DAA2D;AAC3D;;;;;;;;;ACLa;;AAEb;;AAEA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,SAAS;AACpB,aAAa,EAAE;AACf;AACA;AACA,kBAAkB,uBAAuB;AACzC;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;;;;;;;;ACAA,mBAAO,CAAC,MAA0B;AAClC,iBAAiB,mBAAO,CAAC,MAAkB;;;;;;;;ACD3C;AACA;AACA;AACA;AACA;;;;;;;;;ACJa;;AAEb,YAAY,mBAAO,CAAC,MAAS;;AAE7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AAC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ACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,mCAAmC,iBAAiB;AACpD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kEAAkE,iBAAiB,YAAY,aAAa,aAAa,kBAAkB,WAAW,YAAY;AAClK;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,2CAA2C,kBAAkB,sBAAsB,wBAAwB;AAC3G;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,8DAA8D,YAAY,kBAAkB,aAAa,oBAAoB,aAAa,cAAc,WAAW,UAAU;AAC7K,8DAA8D,YAAY,kBAAkB,aAAa,oBAAoB;AAC7H,8DAA8D,YAAY,kBAAkB,aAAa,oBAAoB,aAAa,cAAc;AACxJ,8DAA8D,YAAY,kBAAkB,aAAa,oBAAoB,aAAa,cAAc;AACxJ,8DAA8D,SAAS,QAAQ;AAC/E,8DAA8D,aAAa,cAAc;;AAEzF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;A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;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB;;AAEA;AACA;AACA,UAAU;AACV,cAAc,QAAQ;AACtB;AACA;AACA,cAAc,UAAU;AACxB;AACA,cAAc,SAAS;AACvB;AACA;AACA,cAAc,QAAQ;AACtB;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,qCAAqC,6CAA6C,EAAE;AACpF;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,mFAAmF,qBAAqB;;AAExG;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,kBAAkB;AACjC,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA,8EAA8E;AAC9E;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA,yDAAyD,eAAe;AACxE;;AAEA;AACA;AACA;AACA;AACA;;AAEA;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BA,qBA3BA;AA4BA,oBA5BA;AA6BA,oBA7BA;AA8BA,oBA9BA;AA+BA;AA/BA;AAiCA,GAtIA;AAuIA,SAvIA,qBAuIA;AAAA;;AACA,oBADA,CAGA;;AACA;AACA;AACA,KAFA;;AAIA;AACA;AACA,KAFA;;AAIA;AACA;AACA;AACA;AACA,KAJA;;AAMA;AACA;AACA;AACA;AACA,KAJA;;AAMA;AACA;AACA,KAFA;;AAIA;AACA;;AACA;AACA,KAHA;;AAKA;AACA;AACA,KAFA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA,GArLA;AAsLA;AACA,oBADA,CAEA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAVA,CAUA;AACA,GAjMA;AAkMA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA,KAFA,MAEA;AACA;AACA;;AACA;AACA;AACA,KAFA,MAEA;AACA;AACA;;AACA;AACA;AACA,GApNA;AAqNA;AACA;AACA;AACA,KAHA;AAIA;AACA;AACA;AACA,KAPA;AAQA;AACA;AACA,KAVA;AAWA;AACA;AACA,KAbA;AAcA;AACA;AACA,KAhBA;AAiBA;AACA;AACA,KAnBA;AAoBA;AACA;AACA;AACA,KAvBA;AAwBA;AACA;AACA;AACA,KA3BA;AA4BA;AACA;AACA;AACA,KA/BA;AAgCA;AACA;AACA;AACA,KAnCA;AAoCA;AACA;AACA;AACA,KAvCA;AAwCA;AACA;AACA;AACA,KA3CA;AA4CA;AACA;AACA;AACA;AACA;AAhDA,GArNA;AAuQA;AACA,yBADA,mCACA;AACA;AACA,KAHA;AAIA,aAJA,uBAIA;AACA;AACA,KANA;AAOA,aAPA,uBAOA;AACA;AACA,KATA;AAUA,wBAVA,kCAUA;AACA;AACA;AACA,OAFA,MAEA;AACA;AACA;AACA;AAhBA,GAvQA;AAyRA;AACA;AACA;AACA;AACA;AACA,OAHA,MAGA;AACA;AACA;AACA;;AACA;;AAGA;AACA,oCADA,CAEA;;AACA;AACA;AACA,SAFA,MAEA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;AAEA,gBAzBA,CA0BA;;AACA;AACA;AACA;AACA;AACA,SAFA,MAEA;AACA;AACA;AAEA,OARA,MAQA;AAAA;AACA;AACA;AACA;AACA,SAFA,MAEA;AACA;AACA;AACA;;AACA;AAEA,KA9CA;AA+CA;AACA;AACA,+CAFA,CAGA;;AACA,mCAJA,CAIA;;AAJA,UAKA,CALA,GAKA,QALA,CAKA,CALA;AAAA,UAKA,CALA,GAKA,QALA,CAKA,CALA;AAOA;AAAA;AAAA;AAAA;AACA;;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AAAA;AACA;AACA;;AACA;AACA;AACA,aAFA,MAEA;AACA;AACA;;AACA,qEARA,CAUA;;AACA;AACA;AACA;;AACA;AAAA;AACA;AACA;AACA;AACA,wCAJA,CAKA;;AACA;AACA;AACA;AACA;AAlCA,OATA,CA8CA;;;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AAEA;AACA;AACA;;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA,KA7HA;AA8HA,cA9HA,sBA8HA,KA9HA,EA8HA;AACA;AACA;AAEA,+CAJA,CAMA;;AACA,oCAPA,CAOA;;AAPA,UAQA,CARA,GAQA,QARA,CAQA,CARA;AAAA,UAQA,CARA,GAQA,QARA,CAQA,CARA,EAUA;;AACA;AAAA;AAAA;AAAA;;AACA;AACA;AAAA;AACA;AACA;AAEA;AACA;;AACA;AACA;AACA,aAFA,MAEA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;AACA;AAAA;AACA;;AACA;;AACA,mEAHA,CAIA;;;AACA;AACA;AACA,aAFA,MAEA;AACA;AACA;;AACA,gEAVA,CAWA;AACA;;AACA;AACA,oCAdA,CAeA;;AACA;AACA;;AACA;AAAA;AACA,yEADA,CAEA;;AACA;AACA;AACA,aAFA,MAEA;AACA;AACA;;AACA,mEARA,CASA;AACA;AACA;;AACA;AACA;AACA;AAjDA,OAZA,CAgEA;;;AACA;;AACA;AACA;AACA,OAFA,MAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA,KAhNA;AAiNA;AACA,yCADA,CAEA;;AACA;;AACA;AACA;AACA,oEADA;AAEA,wEAFA;AAGA;AACA;AACA;AACA,oGANA;AAOA;AAPA;AASA,OAVA,MAUA;AACA;AACA,mEADA;AAEA,wEAFA;AAGA;AACA;AACA;AACA,oGANA;AAOA;AAPA;AASA;;AAGA;AACA,KA7OA;;AA8OA;;;;;;AAMA;AACA,UArPA,kBAqPA,GArPA,EAqPA,IArPA,EAqPA;AACA,yCADA,CAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA,qFAXA,CAaA;;AACA;AACA;AAEA;AAAA;AAAA;AAAA;AACA,KAvQA;AAwQA;AACA,gBAzQA,0BAyQA;AACA,0FADA,CAEA;;AACA;AACA,KA7QA;;AA+QA;;;;;;AAMA,UArRA,kBAqRA,MArRA,EAqRA,KArRA,EAqRA;AACA,yCADA,CAGA;AACA;AACA;;AACA;AACA,wFAPA,CASA;;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA,KAlSA;AAmSA;AACA;;AACA;AACA;AACA;AACA,KAxSA;AAySA;AACA;AACA,KA3SA;AA4SA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA,yCADA;AAEA;AAFA;AAIA;AACA;;AACA;AACA;AACA;AACA;AACA,WAFA;AAGA;AACA,OAbA,MAaA;AACA;AACA;AADA;AAGA;AACA,KAnUA;AAoUA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA,oEAFA,CAIA;AACA;;AAEA;AACA,mCADA;AAEA;AACA;AACA,uBADA;AAEA,kDAFA;AAGA,mDAHA;AAIA;AAJA,WAHA;AASA,2CATA;AAUA;AACA;AACA,oCADA;AAEA;AAFA,aADA;AAKA;AACA,oCADA;AAEA;AAFA;AALA;AAVA;AAsBA;;AACA;AACA;AACA,2BACA,EADA,CACA,kCADA,EACA;AACA;AACA,WAHA;AAIA;AACA,OArCA,MAqCA;AACA;AACA;AADA;AAGA;AACA,KAnXA;AAoXA;AACA;AACA;AACA;AAEA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AAEA;AACA;AACA;;AACA;AACA;AACA,OAzBA,CA2BA;AACA;;;AAEA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AAzZA;AAzRA,G;;AC/FkU,CAAgB,gHAAG,EAAC,C;;;;;ACAtV;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AC5FuF;AAC3B;AACL;AACa;;;AAGpE;AAC0F;AAC1F,gBAAgB,kBAAU;AAC1B,EAAE,2CAAM;AACR,EAAE,MAAM;AACR,EAAE,eAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEe,8D;;ACnBf,IAAI,8CAAM,gBAAgB,aAAa,0BAA0B,wBAAwB,iBAAiB,iEAAiE,oCAAoC,aAAa,4EAA4E,4CAA4C,+GAA+G;AACnc,IAAI,uDAAe;;;;;;;;ACDnB;AAEA;;;;;;;;AAOA;;;;;;;;;;AAOO,SAASI,sBAAT,CAAgCC;AAAhC;AAAA,EAA0DtH;AAA1D;AAAA;AAAA;AAAqF;AAC1F,MAAMlC,MAAM,GAAGyJ,eAAe,CAACD,WAAD,CAA9B;AACA,MAAIE,QAAQ,GAAG1J,MAAM,CAAC,CAAD,CAArB;;AACA,OAAK,IAAIrB,CAAC,GAAG,CAAR,EAAWC,GAAG,GA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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;AAGA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA,CAAC,EAAE,wFAAwF;AAC3F;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF;AACjF;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,+BAA+B;AACtD;AACA,aAAa,QAAQ;AACrB,cAAc,OAAO;AACrB;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,8BAA8B;AAC9B,cAAc,kBAAkB;AAChC;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,2BAA2B;AACjD;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,0BAA0B;AACvC,uCAAuC,aAAa;AACpD;AACA;AACA,cAAc,OAAO;AACrB;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,iBAAiB;AACjB,cAAc,gBAAgB;AAC9B;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,KAAK;AACnB;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B;AACA,cAAc,aAAa;AAC3B;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,wBAAwB;AAC/C;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,wBAAwB;AACrC;AACA,aAAa,SAAS;AACtB,aAAa,iBAAiB;AAC9B;AACA,cAAc,OAAO;AACrB;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,wBAAwB;AACrC;AACA,aAAa,SAAS;AACtB,aAAa,iBAAiB;AAC9B;AACA,cAAc,OAAO;AACrB;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,cAAc,OAAO;AACrB;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,qBAAqB,2CAA2C;AAChE;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,2BAA2B,qBAAqB;;AAEhD;;AAEA;AACA,qBAAqB,yCAAyC;AAC9D;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA,iBAAiB,iBAAiB;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,mBAAmB,mBAAmB;AACtC;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,sPAAsP;AACzP;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,uBAAuB;AACvB,wBAAwB;;AAExB,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,aAAa;AAC1B,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,eAAe,aAAa;AAC5B;AACA;;AAEA;AACA;AACA,aAAa,aAAa;AAC1B,eAAe,aAAa;AAC5B;AACA;;AAEA;AACA;AACA,aAAa,qCAAqC;AAClD,eAAe,qCAAqC;AACpD;AACA;;AAEA,0BAA0B;AAC1B;;AAEA;AACA;;AAEA,0BAA0B;;AAE1B;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,8BAA8B,eAAe;AAC7C;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,qBAAqB;AAClE;AACA;AACA,aAAa,OAAO;AACpB,aAAa,aAAa;AAC1B,aAAa,QAAQ;AACrB,cAAc,OAAO;AACrB;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,QAAQ,eAAe;AAChE;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,iBAAiB;;AAEtB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B;;;AAGA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;AAGA;AACA,0BAA0B,oBAAoB;;AAE9C;AACA,mCAAmC,oBAAoB;AACvD,kDAAkD,oBAAoB;AACtE;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED,gBAAgB,yBAAyB;AACzC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB;;AAErB;AACA;;AAEA,uBAAuB,mCAAmC;AAC1D;;AAEA;AACA;;AAEA;AACA;;AAEA,+DAA+D,2BAA2B;AAC1F;AACA,KAAK;AACL;;AAEA;AACA;AACA,uBAAuB,kDAAkD;AACzE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0CAA0C,2BAA2B;AACrE;;AAEA;AACA;AACA;;AAEA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,iCAAiC;AACpD;;AAEA;AACA;;AAEA;AACA,4BAA4B,yCAAyC;AACrE;AACA;;AAEA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,yEAAyE,iBAAiB;AAC1F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,+IAA+I;AAClJ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,wCAAwC;AAC3C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA,kCAAkC,sGAAsG;AACxI,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,mCAAmC;AACnC,mCAAmC;AACnC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA;AACA,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,4GAA4G;AAC/G;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA,kBAAkB,iCAAiC;AACnD;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,qBAAqB,2BAA2B;AAChD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB,kCAAkC;AACnD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,kCAAkC;AACnD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,8CAA8C;AAC/D;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uCAAuC,oBAAoB;;AAE3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,eAAe;;AAEnD;AACA;AACA;AACA;AACA,wCAAwC,uBAAuB;;AAE/D;AACA;AACA;AACA;AACA,0CAA0C,yBAAyB;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA;AACA,gCAAgC;AAChC,iCAAiC;AACjC,oCAAoC;AACpC,qCAAqC;AACrC,gCAAgC;;AAEhC;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,mBAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,2IAA2I;AAC9I;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,cAAc;AACd;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,mCAAmC;AACnC,mCAAmC;AACnC,mCAAmC;AACnC;AACA;AACA,kCAAkC,6BAA6B;AAC/D;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,YAAY,aAAa;;AAEzB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,4GAA4G;AAC/G;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA,8BAA8B;AAC9B;;AAEA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;;AAErC;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B;AAC5B,6BAA6B;AAC7B,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,iCAAiC;AACjC,iCAAiC;AACjC,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,6BAA6B;AACjE;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA;AACA,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,kIAAkI;AACrI;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA;;AAEA,CAAC,EAAE,mHAAmH;AACtH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sBAAsB,mDAAmD;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA,WAAW,wBAAwB;AACnC;AACA,YAAY,0BAA0B;AACtC;AACA;AACA;AACA;AACA,CAAC,6EAA6E,qBAAqB;;AAEnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,WAAW,wBAAwB;AACnC;AACA,YAAY,0BAA0B;AACtC;AACA;AACA;AACA;AACA,CAAC,4EAA4E,oBAAoB;;AAEjG;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA,YAAY,wBAAwB;AACpC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,kBAAkB,2BAA2B;AAC7C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,CAAC,EAAE,8FAA8F;AACjG;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,uCAAuC,SAAS;AAChD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,4BAA4B,2BAA2B;AACvD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB,gCAAgC;AAClD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,gLAAgL;AACnL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,CAAC,EAAE,sFAAsF;AACzF;;AAEA;;AAEA,CAAC,EAAE,mCAAmC;AACtC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,CAAC,EAAE,+BAA+B;AAClC;;AAEA;;AAEA,CAAC,EAAE,mCAAmC;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,aAAa,aAAa;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC,GAAG;AACJ;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,CAAC,EAAE,+eAA+e;AAClf;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB;;AAEhB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B;AAC5B;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,CAAC,EAAE,0FAA0F;AAC7F;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC,WAAW,SAAS;AACpB,WAAW,iBAAiB;AAC5B;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,kBAAkB;AACtC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,kDAAkD,mBAAmB;AACrE;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC;AACA,WAAW,SAAS;AACpB,WAAW,iBAAiB;AAC5B;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,mBAAmB;AACxC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,wGAAwG;AAC3G;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,sBAAsB;AAClC;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,mCAAmC,WAAW;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,iCAAiC;AACpD;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,CAAC,EAAE,iIAAiI;AACpI;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,6BAA6B;AACjD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC;;AAElC,qBAAqB,8BAA8B;AACnD;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA,qBAAqB,8BAA8B;AACnD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8BAA8B;AAC9B;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA,qBAAqB,8BAA8B;AACnD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA,+BAA+B;;AAE/B,mBAAmB,4BAA4B;AAC/C;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B;AAC7B;AACA,2DAA2D;AAC3D;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,6DAA6D;AAChE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qCAAqC,2BAA2B,kBAAkB;;AAElF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,iDAAiD;AACpD;;AAEA;AACA;AACA;AACA;AACA,aAAa,wBAAwB;AACrC;AACA,eAAe,+CAA+C;AAC9D,eAAe,+CAA+C;AAC9D,MAAM;AACN,IAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,eAAe;AACf,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA,4BAA4B;AAC5B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,qCAAqC,2BAA2B,kBAAkB;AAClF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,CAAC,EAAE,2GAA2G;AAC9G;;AAEA;AACA;AACA;AACA;AACA,aAAa,wBAAwB;AACrC;AACA,aAAa,4BAA4B;AACzC,aAAa,4BAA4B;AACzC,MAAM;AACN,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa;AACb,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B;AAC5B,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,CAAC,EAAE,gHAAgH;AACnH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA,kDAAkD;AAClD;;AAEA;AACA,sBAAsB,oCAAoC;AAC1D;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd,KAAK;AACL;;AAEA,4BAA4B;;AAE5B;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,qBAAqB,sBAAsB;AAC3C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,uBAAuB,sCAAsC;AAC7D;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,SAAS;AAC9C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,kEAAkE;AACrE;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,eAAe,aAAa;AAC5B;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA,8BAA8B;AAC9B;AACA;;AAEA,iCAAiC;AACjC;;AAEA,oBAAoB,qCAAqC;AACzD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;;AAGA,iCAAiC;AACjC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,CAAC,EAAE,qFAAqF;AACxF;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;AAGA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;;AAEA;AACA,CAAC;;AAED,CAAC,EAAE,2BAA2B;AAC9B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,oBAAoB;AACrC;;AAEA,uCAAuC;AACvC;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,kBAAkB;AACpC;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,0CAA0C;AAC1C,CAAC;;AAED;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,mBAAmB;AACtC;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,mBAAmB,gCAAgC;AACnD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,kGAAkG;AAC5G;AACA,CAAC;;AAED;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,iGAAiG;AAC3G;AACA;;AAEA,eAAe,0BAA0B;AACzC;AACA;;AAEA;AACA,6BAA6B;AAC7B,0BAA0B;AAC1B,8BAA8B,MAAM,oBAAoB;AACxD,CAAC;;AAED;AACA;;AAEA,CAAC,EAAE,kGAAkG;AACrG;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,CAAC,EAAE,+BAA+B;AAClC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,gBAAgB;AAChB,OAAO;AACP;AACA,GAAG;AACH,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,CAAC,EAAE,sGAAsG;AACzG;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC,qBAAqB;AACvD,GAAG;;AAEH;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,qCAAqC,qBAAqB;AAC1D,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,kGAAkG;AACrG;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,6BAA6B;AACjD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;;AAEA,CAAC,GAAG;AACJ;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB,oBAAoB;AACtC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,CAAC,GAAG;AACJ;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA,CAAC,EAAE,0CAA0C;AAC7C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA,CAAC,EAAE,UAAU;AACb;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,cAAc;AACjB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,qBAAqB;AACpC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,yDAAyD;AAC5D;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA,KAAK;AACL,sBAAsB,UAAU;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,wBAAwB;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8CAA8C,YAAY;AAC1D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,8CAA8C,YAAY;AAC1D;AACA;;AAEA;;AAEA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,mBAAmB,gCAAgC;AACnD;AACA;;AAEA;;AAEA;;AAEA;;AAEA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qCAAqC;AACrC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,CAAC,EAAE,4FAA4F;AAC/F;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC,GAAG;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,kCAAkC;AAClC;;AAEA,CAAC,EAAE,YAAY;AACf;;AAEA;AACA;AACA;;AAEA,CAAC,GAAG;AACJ;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,iIAAiI;AACpI;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB;;AAEnB,oBAAoB,gCAAgC;AACpD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,iCAAiC;AACtD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,qBAAqB,iCAAiC;AACtD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,iCAAiC;AACtD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA,qBAAqB,iCAAiC;AACtD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA,qBAAqB,iCAAiC;AACtD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,2BAA2B;AAC9B;;AAEA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q;AACA;;AAEA;AACA,4BAA4B;;AAE5B;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,8BAA8B;AACjC;;AAEA;AACA;AACA;;AAEA,CAAC,GAAG;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,GAAG;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,sBAAsB;AAC1C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,6FAA6F;AAChG;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,eAAe,qDAAqD;AACpE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,CAAC,EAAE,cAAc;AACjB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,wCAAwC;AAC3C;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA,CAAC,EAAE,gBAAgB,EAAE,GAAG;AACxB,CAAC;;;AAGD;;;;;;;;ACngOA;AACA","file":"vue-grid-layout.common.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar at = require('./_string-at')(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// style-loader: Adds some css to the DOM by adding a \r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GridItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GridItem.vue?vue&type=script&lang=js&\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./GridItem.vue?vue&type=template&id=6724f499&\"\nimport script from \"./GridItem.vue?vue&type=script&lang=js&\"\nexport * from \"./GridItem.vue?vue&type=script&lang=js&\"\nimport style0 from \"./GridItem.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"item\",staticClass:\"vue-grid-layout\",style:(_vm.mergedStyle)},[_vm._t(\"default\"),_c('grid-item',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isDragging),expression:\"isDragging\"}],staticClass:\"vue-grid-placeholder\",attrs:{\"x\":_vm.placeholder.x,\"y\":_vm.placeholder.y,\"w\":_vm.placeholder.w,\"h\":_vm.placeholder.h,\"i\":_vm.placeholder.i}})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","// @flow\r\n\r\nimport {cloneLayout, compact, correctBounds} from './utils';\r\n\r\nimport type {Layout} from './utils';\r\nexport type ResponsiveLayout = {lg?: Layout, md?: Layout, sm?: Layout, xs?: Layout, xxs?: Layout};\r\ntype Breakpoint = string;\r\ntype Breakpoints = {lg?: number, md?: number, sm?: number, xs?: number, xxs?: number};\r\n\r\n/**\r\n * Given a width, find the highest breakpoint that matches is valid for it (width > breakpoint).\r\n *\r\n * @param {Object} breakpoints Breakpoints object (e.g. {lg: 1200, md: 960, ...})\r\n * @param {Number} width Screen width.\r\n * @return {String} Highest breakpoint that is less than width.\r\n */\r\nexport function getBreakpointFromWidth(breakpoints: Breakpoints, width: number): Breakpoint {\r\n const sorted = sortBreakpoints(breakpoints);\r\n let matching = sorted[0];\r\n for (let i = 1, len = sorted.length; i < len; i++) {\r\n const breakpointName = sorted[i];\r\n if (width > breakpoints[breakpointName]) matching = breakpointName;\r\n }\r\n return matching;\r\n}\r\n\r\n\r\n/**\r\n * Given a breakpoint, get the # of cols set for it.\r\n * @param {String} breakpoint Breakpoint name.\r\n * @param {Object} cols Map of breakpoints to cols.\r\n * @return {Number} Number of cols.\r\n */\r\nexport function getColsFromBreakpoint(breakpoint: Breakpoint, cols: Breakpoints): number {\r\n if (!cols[breakpoint]) {\r\n throw new Error(\"ResponsiveGridLayout: `cols` entry for breakpoint \" + breakpoint + \" is missing!\");\r\n }\r\n return cols[breakpoint];\r\n}\r\n\r\n/**\r\n * Given existing layouts and a new breakpoint, find or generate a new layout.\r\n *\r\n * This finds the layout above the new one and generates from it, if it exists.\r\n *\r\n * @param {Array} orgLayout Original layout.\r\n * @param {Object} layouts Existing layouts.\r\n * @param {Array} breakpoints All breakpoints.\r\n * @param {String} breakpoint New breakpoint.\r\n * @param {String} breakpoint Last breakpoint (for fallback).\r\n * @param {Number} cols Column count at new breakpoint.\r\n * @param {Boolean} verticalCompact Whether or not to compact the layout\r\n * vertically.\r\n * @return {Array} New layout.\r\n */\r\nexport function findOrGenerateResponsiveLayout(orgLayout: Layout, layouts: ResponsiveLayout, breakpoints: Breakpoints,\r\n breakpoint: Breakpoint, lastBreakpoint: Breakpoint,\r\n cols: number, verticalCompact: boolean): Layout {\r\n // If it already exists, just return it.\r\n if (layouts[breakpoint]) return cloneLayout(layouts[breakpoint]);\r\n // Find or generate the next layout\r\n let layout = orgLayout;\r\n\r\n const breakpointsSorted = sortBreakpoints(breakpoints);\r\n const breakpointsAbove = breakpointsSorted.slice(breakpointsSorted.indexOf(breakpoint));\r\n for (let i = 0, len = breakpointsAbove.length; i < len; i++) {\r\n const b = breakpointsAbove[i];\r\n if (layouts[b]) {\r\n layout = layouts[b];\r\n break;\r\n }\r\n }\r\n layout = cloneLayout(layout || []); // clone layout so we don't modify existing items\r\n return compact(correctBounds(layout, {cols: cols}), verticalCompact);\r\n}\r\n\r\nexport function generateResponsiveLayout(layout: Layout, breakpoints: Breakpoints,\r\n breakpoint: Breakpoint, lastBreakpoint: Breakpoint,\r\n cols: number, verticalCompact: boolean): Layout {\r\n // If it already exists, just return it.\r\n /*if (layouts[breakpoint]) return cloneLayout(layouts[breakpoint]);\r\n // Find or generate the next layout\r\n let layout = layouts[lastBreakpoint];*/\r\n /*const breakpointsSorted = sortBreakpoints(breakpoints);\r\n const breakpointsAbove = breakpointsSorted.slice(breakpointsSorted.indexOf(breakpoint));\r\n for (let i = 0, len = breakpointsAbove.length; i < len; i++) {\r\n const b = breakpointsAbove[i];\r\n if (layouts[b]) {\r\n layout = layouts[b];\r\n break;\r\n }\r\n }*/\r\n layout = cloneLayout(layout || []); // clone layout so we don't modify existing items\r\n return compact(correctBounds(layout, {cols: cols}), verticalCompact);\r\n}\r\n\r\n/**\r\n * Given breakpoints, return an array of breakpoints sorted by width. This is usually\r\n * e.g. ['xxs', 'xs', 'sm', ...]\r\n *\r\n * @param {Object} breakpoints Key/value pair of breakpoint names to widths.\r\n * @return {Array} Sorted breakpoints.\r\n */\r\nexport function sortBreakpoints(breakpoints: Breakpoints): Array {\r\n const keys: Array = Object.keys(breakpoints);\r\n return keys.sort(function(a, b) {\r\n return breakpoints[a] - breakpoints[b];\r\n });\r\n}\r\n","\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GridLayout.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GridLayout.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./GridLayout.vue?vue&type=template&id=ba4fc54e&\"\nimport script from \"./GridLayout.vue?vue&type=script&lang=js&\"\nexport * from \"./GridLayout.vue?vue&type=script&lang=js&\"\nimport style0 from \"./GridLayout.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\";\r\nimport GridItem from './GridItem.vue';\r\nimport GridLayout from './GridLayout.vue';\r\n// import ResponsiveGridLayout from './ResponsiveGridLayout.vue';\r\n\r\n\r\nconst VueGridLayout = {\r\n // ResponsiveGridLayout,\r\n GridLayout,\r\n GridItem\r\n}\r\n\r\n// module.exports = VueGridLayout;\r\n\r\nObject.keys(VueGridLayout).forEach(name => {\r\n Vue.component(name, VueGridLayout[name]);\r\n});\r\n\r\nexport default VueGridLayout;\r\nexport { GridLayout, GridItem };","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n","/**\n * interact.js v1.3.4\n *\n * Copyright (c) 2012-2018 Taye Adeyemi \n * Released under the MIT License.\n * https://raw.github.com/taye/interact.js/master/LICENSE\n */\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.interact = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o 6 && arguments[6] !== undefined ? arguments[6] : false;\n\n _classCallCheck(this, InteractEvent);\n\n var target = interaction.target;\n var deltaSource = (target && target.options || defaults).deltaSource;\n var origin = getOriginXY(target, element, action);\n var starting = phase === 'start';\n var ending = phase === 'end';\n var coords = starting ? interaction.startCoords : interaction.curCoords;\n var prevEvent = interaction.prevEvent;\n\n element = element || interaction.element;\n\n var page = extend({}, coords.page);\n var client = extend({}, coords.client);\n\n page.x -= origin.x;\n page.y -= origin.y;\n\n client.x -= origin.x;\n client.y -= origin.y;\n\n this.ctrlKey = event.ctrlKey;\n this.altKey = event.altKey;\n this.shiftKey = event.shiftKey;\n this.metaKey = event.metaKey;\n this.button = event.button;\n this.buttons = event.buttons;\n this.target = element;\n this.currentTarget = element;\n this.relatedTarget = related || null;\n this.preEnd = preEnd;\n this.type = action + (phase || '');\n this.interaction = interaction;\n this.interactable = target;\n\n this.t0 = starting ? interaction.downTimes[interaction.downTimes.length - 1] : prevEvent.t0;\n\n var signalArg = {\n interaction: interaction,\n event: event,\n action: action,\n phase: phase,\n element: element,\n related: related,\n page: page,\n client: client,\n coords: coords,\n starting: starting,\n ending: ending,\n deltaSource: deltaSource,\n iEvent: this\n };\n\n signals.fire('set-xy', signalArg);\n\n if (ending) {\n // use previous coords when ending\n this.pageX = prevEvent.pageX;\n this.pageY = prevEvent.pageY;\n this.clientX = prevEvent.clientX;\n this.clientY = prevEvent.clientY;\n } else {\n this.pageX = page.x;\n this.pageY = page.y;\n this.clientX = client.x;\n this.clientY = client.y;\n }\n\n this.x0 = interaction.startCoords.page.x - origin.x;\n this.y0 = interaction.startCoords.page.y - origin.y;\n this.clientX0 = interaction.startCoords.client.x - origin.x;\n this.clientY0 = interaction.startCoords.client.y - origin.y;\n\n signals.fire('set-delta', signalArg);\n\n this.timeStamp = coords.timeStamp;\n this.dt = interaction.pointerDelta.timeStamp;\n this.duration = this.timeStamp - this.t0;\n\n // speed and velocity in pixels per second\n this.speed = interaction.pointerDelta[deltaSource].speed;\n this.velocityX = interaction.pointerDelta[deltaSource].vx;\n this.velocityY = interaction.pointerDelta[deltaSource].vy;\n\n this.swipe = ending || phase === 'inertiastart' ? this.getSwipe() : null;\n\n signals.fire('new', signalArg);\n }\n\n InteractEvent.prototype.getSwipe = function getSwipe() {\n var interaction = this.interaction;\n\n if (interaction.prevEvent.speed < 600 || this.timeStamp - interaction.prevEvent.timeStamp > 150) {\n return null;\n }\n\n var angle = 180 * Math.atan2(interaction.prevEvent.velocityY, interaction.prevEvent.velocityX) / Math.PI;\n var overlap = 22.5;\n\n if (angle < 0) {\n angle += 360;\n }\n\n var left = 135 - overlap <= angle && angle < 225 + overlap;\n var up = 225 - overlap <= angle && angle < 315 + overlap;\n\n var right = !left && (315 - overlap <= angle || angle < 45 + overlap);\n var down = !up && 45 - overlap <= angle && angle < 135 + overlap;\n\n return {\n up: up,\n down: down,\n left: left,\n right: right,\n angle: angle,\n speed: interaction.prevEvent.speed,\n velocity: {\n x: interaction.prevEvent.velocityX,\n y: interaction.prevEvent.velocityY\n }\n };\n };\n\n InteractEvent.prototype.preventDefault = function preventDefault() {};\n\n /** */\n\n\n InteractEvent.prototype.stopImmediatePropagation = function stopImmediatePropagation() {\n this.immediatePropagationStopped = this.propagationStopped = true;\n };\n\n /** */\n\n\n InteractEvent.prototype.stopPropagation = function stopPropagation() {\n this.propagationStopped = true;\n };\n\n return InteractEvent;\n}();\n\nsignals.on('set-delta', function (_ref) {\n var iEvent = _ref.iEvent,\n interaction = _ref.interaction,\n starting = _ref.starting,\n deltaSource = _ref.deltaSource;\n\n var prevEvent = starting ? iEvent : interaction.prevEvent;\n\n if (deltaSource === 'client') {\n iEvent.dx = iEvent.clientX - prevEvent.clientX;\n iEvent.dy = iEvent.clientY - prevEvent.clientY;\n } else {\n iEvent.dx = iEvent.pageX - prevEvent.pageX;\n iEvent.dy = iEvent.pageY - prevEvent.pageY;\n }\n});\n\nInteractEvent.signals = signals;\n\nmodule.exports = InteractEvent;\n\n},{\"./defaultOptions\":18,\"./utils/Signals\":34,\"./utils/extend\":41,\"./utils/getOriginXY\":42}],4:[function(require,module,exports){\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar clone = require('./utils/clone');\nvar is = require('./utils/is');\nvar events = require('./utils/events');\nvar extend = require('./utils/extend');\nvar actions = require('./actions/base');\nvar scope = require('./scope');\nvar Eventable = require('./Eventable');\nvar defaults = require('./defaultOptions');\nvar signals = require('./utils/Signals').new();\n\nvar _require = require('./utils/domUtils'),\n getElementRect = _require.getElementRect,\n nodeContains = _require.nodeContains,\n trySelector = _require.trySelector,\n matchesSelector = _require.matchesSelector;\n\nvar _require2 = require('./utils/window'),\n getWindow = _require2.getWindow;\n\nvar _require3 = require('./utils/arr'),\n contains = _require3.contains;\n\nvar _require4 = require('./utils/browser'),\n wheelEvent = _require4.wheelEvent;\n\n// all set interactables\n\n\nscope.interactables = [];\n\nvar Interactable = function () {\n /** */\n function Interactable(target, options) {\n _classCallCheck(this, Interactable);\n\n options = options || {};\n\n this.target = target;\n this.events = new Eventable();\n this._context = options.context || scope.document;\n this._win = getWindow(trySelector(target) ? this._context : target);\n this._doc = this._win.document;\n\n signals.fire('new', {\n target: target,\n options: options,\n interactable: this,\n win: this._win\n });\n\n scope.addDocument(this._doc, this._win);\n\n scope.interactables.push(this);\n\n this.set(options);\n }\n\n Interactable.prototype.setOnEvents = function setOnEvents(action, phases) {\n var onAction = 'on' + action;\n\n if (is.function(phases.onstart)) {\n this.events[onAction + 'start'] = phases.onstart;\n }\n if (is.function(phases.onmove)) {\n this.events[onAction + 'move'] = phases.onmove;\n }\n if (is.function(phases.onend)) {\n this.events[onAction + 'end'] = phases.onend;\n }\n if (is.function(phases.oninertiastart)) {\n this.events[onAction + 'inertiastart'] = phases.oninertiastart;\n }\n\n return this;\n };\n\n Interactable.prototype.setPerAction = function setPerAction(action, options) {\n // for all the default per-action options\n for (var option in options) {\n // if this option exists for this action\n if (option in defaults[action]) {\n // if the option in the options arg is an object value\n if (is.object(options[option])) {\n // duplicate the object and merge\n this.options[action][option] = clone(this.options[action][option] || {});\n extend(this.options[action][option], options[option]);\n\n if (is.object(defaults.perAction[option]) && 'enabled' in defaults.perAction[option]) {\n this.options[action][option].enabled = options[option].enabled === false ? false : true;\n }\n } else if (is.bool(options[option]) && is.object(defaults.perAction[option])) {\n this.options[action][option].enabled = options[option];\n } else if (options[option] !== undefined) {\n // or if it's not undefined, do a plain assignment\n this.options[action][option] = options[option];\n }\n }\n }\n };\n\n /**\n * The default function to get an Interactables bounding rect. Can be\n * overridden using {@link Interactable.rectChecker}.\n *\n * @param {Element} [element] The element to measure.\n * @return {object} The object's bounding rectangle.\n */\n\n\n Interactable.prototype.getRect = function getRect(element) {\n element = element || this.target;\n\n if (is.string(this.target) && !is.element(element)) {\n element = this._context.querySelector(this.target);\n }\n\n return getElementRect(element);\n };\n\n /**\n * Returns or sets the function used to calculate the interactable's\n * element's rectangle\n *\n * @param {function} [checker] A function which returns this Interactable's\n * bounding rectangle. See {@link Interactable.getRect}\n * @return {function | object} The checker function or this Interactable\n */\n\n\n Interactable.prototype.rectChecker = function rectChecker(checker) {\n if (is.function(checker)) {\n this.getRect = checker;\n\n return this;\n }\n\n if (checker === null) {\n delete this.options.getRect;\n\n return this;\n }\n\n return this.getRect;\n };\n\n Interactable.prototype._backCompatOption = function _backCompatOption(optionName, newValue) {\n if (trySelector(newValue) || is.object(newValue)) {\n this.options[optionName] = newValue;\n\n for (var _i = 0; _i < actions.names.length; _i++) {\n var _ref;\n\n _ref = actions.names[_i];\n var action = _ref;\n\n this.options[action][optionName] = newValue;\n }\n\n return this;\n }\n\n return this.options[optionName];\n };\n\n /**\n * Gets or sets the origin of the Interactable's element. The x and y\n * of the origin will be subtracted from action event coordinates.\n *\n * @param {Element | object | string} [origin] An HTML or SVG Element whose\n * rect will be used, an object eg. { x: 0, y: 0 } or string 'parent', 'self'\n * or any CSS selector\n *\n * @return {object} The current origin or this Interactable\n */\n\n\n Interactable.prototype.origin = function origin(newValue) {\n return this._backCompatOption('origin', newValue);\n };\n\n /**\n * Returns or sets the mouse coordinate types used to calculate the\n * movement of the pointer.\n *\n * @param {string} [newValue] Use 'client' if you will be scrolling while\n * interacting; Use 'page' if you want autoScroll to work\n * @return {string | object} The current deltaSource or this Interactable\n */\n\n\n Interactable.prototype.deltaSource = function deltaSource(newValue) {\n if (newValue === 'page' || newValue === 'client') {\n this.options.deltaSource = newValue;\n\n return this;\n }\n\n return this.options.deltaSource;\n };\n\n /**\n * Gets the selector context Node of the Interactable. The default is\n * `window.document`.\n *\n * @return {Node} The context Node of this Interactable\n */\n\n\n Interactable.prototype.context = function context() {\n return this._context;\n };\n\n Interactable.prototype.inContext = function inContext(element) {\n return this._context === element.ownerDocument || nodeContains(this._context, element);\n };\n\n /**\n * Calls listeners for the given InteractEvent type bound globally\n * and directly to this Interactable\n *\n * @param {InteractEvent} iEvent The InteractEvent object to be fired on this\n * Interactable\n * @return {Interactable} this Interactable\n */\n\n\n Interactable.prototype.fire = function fire(iEvent) {\n this.events.fire(iEvent);\n\n return this;\n };\n\n Interactable.prototype._onOffMultiple = function _onOffMultiple(method, eventType, listener, options) {\n if (is.string(eventType) && eventType.search(' ') !== -1) {\n eventType = eventType.trim().split(/ +/);\n }\n\n if (is.array(eventType)) {\n for (var _i2 = 0; _i2 < eventType.length; _i2++) {\n var _ref2;\n\n _ref2 = eventType[_i2];\n var type = _ref2;\n\n this[method](type, listener, options);\n }\n\n return true;\n }\n\n if (is.object(eventType)) {\n for (var prop in eventType) {\n this[method](prop, eventType[prop], listener);\n }\n\n return true;\n }\n };\n\n /**\n * Binds a listener for an InteractEvent, pointerEvent or DOM event.\n *\n * @param {string | array | object} eventType The types of events to listen\n * for\n * @param {function} listener The function event (s)\n * @param {object | boolean} [options] options object or useCapture flag\n * for addEventListener\n * @return {object} This Interactable\n */\n\n\n Interactable.prototype.on = function on(eventType, listener, options) {\n if (this._onOffMultiple('on', eventType, listener, options)) {\n return this;\n }\n\n if (eventType === 'wheel') {\n eventType = wheelEvent;\n }\n\n if (contains(Interactable.eventTypes, eventType)) {\n this.events.on(eventType, listener);\n }\n // delegated event for selector\n else if (is.string(this.target)) {\n events.addDelegate(this.target, this._context, eventType, listener, options);\n } else {\n events.add(this.target, eventType, listener, options);\n }\n\n return this;\n };\n\n /**\n * Removes an InteractEvent, pointerEvent or DOM event listener\n *\n * @param {string | array | object} eventType The types of events that were\n * listened for\n * @param {function} listener The listener function to be removed\n * @param {object | boolean} [options] options object or useCapture flag for\n * removeEventListener\n * @return {object} This Interactable\n */\n\n\n Interactable.prototype.off = function off(eventType, listener, options) {\n if (this._onOffMultiple('off', eventType, listener, options)) {\n return this;\n }\n\n if (eventType === 'wheel') {\n eventType = wheelEvent;\n }\n\n // if it is an action event type\n if (contains(Interactable.eventTypes, eventType)) {\n this.events.off(eventType, listener);\n }\n // delegated event\n else if (is.string(this.target)) {\n events.removeDelegate(this.target, this._context, eventType, listener, options);\n }\n // remove listener from this Interatable's element\n else {\n events.remove(this.target, eventType, listener, options);\n }\n\n return this;\n };\n\n /**\n * Reset the options of this Interactable\n *\n * @param {object} options The new settings to apply\n * @return {object} This Interactable\n */\n\n\n Interactable.prototype.set = function set(options) {\n if (!is.object(options)) {\n options = {};\n }\n\n this.options = clone(defaults.base);\n\n var perActions = clone(defaults.perAction);\n\n for (var actionName in actions.methodDict) {\n var methodName = actions.methodDict[actionName];\n\n this.options[actionName] = clone(defaults[actionName]);\n\n this.setPerAction(actionName, perActions);\n\n this[methodName](options[actionName]);\n }\n\n for (var _i3 = 0; _i3 < Interactable.settingsMethods.length; _i3++) {\n var _ref3;\n\n _ref3 = Interactable.settingsMethods[_i3];\n var setting = _ref3;\n\n this.options[setting] = defaults.base[setting];\n\n if (setting in options) {\n this[setting](options[setting]);\n }\n }\n\n signals.fire('set', {\n options: options,\n interactable: this\n });\n\n return this;\n };\n\n /**\n * Remove this interactable from the list of interactables and remove it's\n * action capabilities and event listeners\n *\n * @return {interact}\n */\n\n\n Interactable.prototype.unset = function unset() {\n events.remove(this.target, 'all');\n\n if (is.string(this.target)) {\n // remove delegated events\n for (var type in events.delegatedEvents) {\n var delegated = events.delegatedEvents[type];\n\n if (delegated.selectors[0] === this.target && delegated.contexts[0] === this._context) {\n\n delegated.selectors.splice(0, 1);\n delegated.contexts.splice(0, 1);\n delegated.listeners.splice(0, 1);\n\n // remove the arrays if they are empty\n if (!delegated.selectors.length) {\n delegated[type] = null;\n }\n }\n\n events.remove(this._context, type, events.delegateListener);\n events.remove(this._context, type, events.delegateUseCapture, true);\n }\n } else {\n events.remove(this, 'all');\n }\n\n signals.fire('unset', { interactable: this });\n\n scope.interactables.splice(scope.interactables.indexOf(this), 1);\n\n // Stop related interactions when an Interactable is unset\n for (var _i4 = 0; _i4 < (scope.interactions || []).length; _i4++) {\n var _ref4;\n\n _ref4 = (scope.interactions || [])[_i4];\n var interaction = _ref4;\n\n if (interaction.target === this && interaction.interacting() && !interaction._ending) {\n interaction.stop();\n }\n }\n\n return scope.interact;\n };\n\n return Interactable;\n}();\n\nscope.interactables.indexOfElement = function indexOfElement(target, context) {\n context = context || scope.document;\n\n for (var i = 0; i < this.length; i++) {\n var interactable = this[i];\n\n if (interactable.target === target && interactable._context === context) {\n return i;\n }\n }\n return -1;\n};\n\nscope.interactables.get = function interactableGet(element, options, dontCheckInContext) {\n var ret = this[this.indexOfElement(element, options && options.context)];\n\n return ret && (is.string(element) || dontCheckInContext || ret.inContext(element)) ? ret : null;\n};\n\nscope.interactables.forEachMatch = function (element, callback) {\n for (var _i5 = 0; _i5 < this.length; _i5++) {\n var _ref5;\n\n _ref5 = this[_i5];\n var interactable = _ref5;\n\n var ret = void 0;\n\n if ((is.string(interactable.target)\n // target is a selector and the element matches\n ? is.element(element) && matchesSelector(element, interactable.target) :\n // target is the element\n element === interactable.target) &&\n // the element is in context\n interactable.inContext(element)) {\n ret = callback(interactable);\n }\n\n if (ret !== undefined) {\n return ret;\n }\n }\n};\n\n// all interact.js eventTypes\nInteractable.eventTypes = scope.eventTypes = [];\n\nInteractable.signals = signals;\n\nInteractable.settingsMethods = ['deltaSource', 'origin', 'preventDefault', 'rectChecker'];\n\nmodule.exports = Interactable;\n\n},{\"./Eventable\":2,\"./actions/base\":6,\"./defaultOptions\":18,\"./scope\":33,\"./utils/Signals\":34,\"./utils/arr\":35,\"./utils/browser\":36,\"./utils/clone\":37,\"./utils/domUtils\":39,\"./utils/events\":40,\"./utils/extend\":41,\"./utils/is\":46,\"./utils/window\":52}],5:[function(require,module,exports){\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar scope = require('./scope');\nvar utils = require('./utils');\nvar events = require('./utils/events');\nvar browser = require('./utils/browser');\nvar domObjects = require('./utils/domObjects');\nvar finder = require('./utils/interactionFinder');\nvar signals = require('./utils/Signals').new();\n\nvar listeners = {};\nvar methodNames = ['pointerDown', 'pointerMove', 'pointerUp', 'updatePointer', 'removePointer'];\n\n// for ignoring browser's simulated mouse events\nvar prevTouchTime = 0;\n\n// all active and idle interactions\nscope.interactions = [];\n\nvar Interaction = function () {\n /** */\n function Interaction(_ref) {\n var pointerType = _ref.pointerType;\n\n _classCallCheck(this, Interaction);\n\n this.target = null; // current interactable being interacted with\n this.element = null; // the target element of the interactable\n\n this.prepared = { // action that's ready to be fired on next move event\n name: null,\n axis: null,\n edges: null\n };\n\n // keep track of added pointers\n this.pointers = [];\n this.pointerIds = [];\n this.downTargets = [];\n this.downTimes = [];\n\n // Previous native pointer move event coordinates\n this.prevCoords = {\n page: { x: 0, y: 0 },\n client: { x: 0, y: 0 },\n timeStamp: 0\n };\n // current native pointer move event coordinates\n this.curCoords = {\n page: { x: 0, y: 0 },\n client: { x: 0, y: 0 },\n timeStamp: 0\n };\n\n // Starting InteractEvent pointer coordinates\n this.startCoords = {\n page: { x: 0, y: 0 },\n client: { x: 0, y: 0 },\n timeStamp: 0\n };\n\n // Change in coordinates and time of the pointer\n this.pointerDelta = {\n page: { x: 0, y: 0, vx: 0, vy: 0, speed: 0 },\n client: { x: 0, y: 0, vx: 0, vy: 0, speed: 0 },\n timeStamp: 0\n };\n\n this.downEvent = null; // pointerdown/mousedown/touchstart event\n this.downPointer = {};\n\n this._eventTarget = null;\n this._curEventTarget = null;\n\n this.prevEvent = null; // previous action event\n\n this.pointerIsDown = false;\n this.pointerWasMoved = false;\n this._interacting = false;\n this._ending = false;\n\n this.pointerType = pointerType;\n\n signals.fire('new', this);\n\n scope.interactions.push(this);\n }\n\n Interaction.prototype.pointerDown = function pointerDown(pointer, event, eventTarget) {\n var pointerIndex = this.updatePointer(pointer, event, true);\n\n signals.fire('down', {\n pointer: pointer,\n event: event,\n eventTarget: eventTarget,\n pointerIndex: pointerIndex,\n interaction: this\n });\n };\n\n /**\n * ```js\n * interact(target)\n * .draggable({\n * // disable the default drag start by down->move\n * manualStart: true\n * })\n * // start dragging after the user holds the pointer down\n * .on('hold', function (event) {\n * var interaction = event.interaction;\n *\n * if (!interaction.interacting()) {\n * interaction.start({ name: 'drag' },\n * event.interactable,\n * event.currentTarget);\n * }\n * });\n * ```\n *\n * Start an action with the given Interactable and Element as tartgets. The\n * action must be enabled for the target Interactable and an appropriate\n * number of pointers must be held down - 1 for drag/resize, 2 for gesture.\n *\n * Use it with `interactable.able({ manualStart: false })` to always\n * [start actions manually](https://github.com/taye/interact.js/issues/114)\n *\n * @param {object} action The action to be performed - drag, resize, etc.\n * @param {Interactable} target The Interactable to target\n * @param {Element} element The DOM Element to target\n * @return {object} interact\n */\n\n\n Interaction.prototype.start = function start(action, target, element) {\n if (this.interacting() || !this.pointerIsDown || this.pointerIds.length < (action.name === 'gesture' ? 2 : 1)) {\n return;\n }\n\n // if this interaction had been removed after stopping\n // add it back\n if (scope.interactions.indexOf(this) === -1) {\n scope.interactions.push(this);\n }\n\n utils.copyAction(this.prepared, action);\n this.target = target;\n this.element = element;\n\n signals.fire('action-start', {\n interaction: this,\n event: this.downEvent\n });\n };\n\n Interaction.prototype.pointerMove = function pointerMove(pointer, event, eventTarget) {\n if (!this.simulation) {\n this.updatePointer(pointer);\n utils.setCoords(this.curCoords, this.pointers);\n }\n\n var duplicateMove = this.curCoords.page.x === this.prevCoords.page.x && this.curCoords.page.y === this.prevCoords.page.y && this.curCoords.client.x === this.prevCoords.client.x && this.curCoords.client.y === this.prevCoords.client.y;\n\n var dx = void 0;\n var dy = void 0;\n\n // register movement greater than pointerMoveTolerance\n if (this.pointerIsDown && !this.pointerWasMoved) {\n dx = this.curCoords.client.x - this.startCoords.client.x;\n dy = this.curCoords.client.y - this.startCoords.client.y;\n\n this.pointerWasMoved = utils.hypot(dx, dy) > Interaction.pointerMoveTolerance;\n }\n\n var signalArg = {\n pointer: pointer,\n pointerIndex: this.getPointerIndex(pointer),\n event: event,\n eventTarget: eventTarget,\n dx: dx,\n dy: dy,\n duplicate: duplicateMove,\n interaction: this,\n interactingBeforeMove: this.interacting()\n };\n\n if (!duplicateMove) {\n // set pointer coordinate, time changes and speeds\n utils.setCoordDeltas(this.pointerDelta, this.prevCoords, this.curCoords);\n }\n\n signals.fire('move', signalArg);\n\n if (!duplicateMove) {\n // if interacting, fire an 'action-move' signal etc\n if (this.interacting()) {\n this.doMove(signalArg);\n }\n\n if (this.pointerWasMoved) {\n utils.copyCoords(this.prevCoords, this.curCoords);\n }\n }\n };\n\n /**\n * ```js\n * interact(target)\n * .draggable(true)\n * .on('dragmove', function (event) {\n * if (someCondition) {\n * // change the snap settings\n * event.interactable.draggable({ snap: { targets: [] }});\n * // fire another move event with re-calculated snap\n * event.interaction.doMove();\n * }\n * });\n * ```\n *\n * Force a move of the current action at the same coordinates. Useful if\n * snap/restrict has been changed and you want a movement with the new\n * settings.\n */\n\n\n Interaction.prototype.doMove = function doMove(signalArg) {\n signalArg = utils.extend({\n pointer: this.pointers[0],\n event: this.prevEvent,\n eventTarget: this._eventTarget,\n interaction: this\n }, signalArg || {});\n\n signals.fire('before-action-move', signalArg);\n\n if (!this._dontFireMove) {\n signals.fire('action-move', signalArg);\n }\n\n this._dontFireMove = false;\n };\n\n // End interact move events and stop auto-scroll unless simulation is running\n\n\n Interaction.prototype.pointerUp = function pointerUp(pointer, event, eventTarget, curEventTarget) {\n var pointerIndex = this.getPointerIndex(pointer);\n\n signals.fire(/cancel$/i.test(event.type) ? 'cancel' : 'up', {\n pointer: pointer,\n pointerIndex: pointerIndex,\n event: event,\n eventTarget: eventTarget,\n curEventTarget: curEventTarget,\n interaction: this\n });\n\n if (!this.simulation) {\n this.end(event);\n }\n\n this.pointerIsDown = false;\n this.removePointer(pointer, event);\n };\n\n /**\n * ```js\n * interact(target)\n * .draggable(true)\n * .on('move', function (event) {\n * if (event.pageX > 1000) {\n * // end the current action\n * event.interaction.end();\n * // stop all further listeners from being called\n * event.stopImmediatePropagation();\n * }\n * });\n * ```\n *\n * Stop the current action and fire an end event. Inertial movement does\n * not happen.\n *\n * @param {PointerEvent} [event]\n */\n\n\n Interaction.prototype.end = function end(event) {\n this._ending = true;\n\n event = event || this.prevEvent;\n\n if (this.interacting()) {\n signals.fire('action-end', {\n event: event,\n interaction: this\n });\n }\n\n this.stop();\n this._ending = false;\n };\n\n Interaction.prototype.currentAction = function currentAction() {\n return this._interacting ? this.prepared.name : null;\n };\n\n Interaction.prototype.interacting = function interacting() {\n return this._interacting;\n };\n\n /** */\n\n\n Interaction.prototype.stop = function stop() {\n signals.fire('stop', { interaction: this });\n\n if (this._interacting) {\n signals.fire('stop-active', { interaction: this });\n signals.fire('stop-' + this.prepared.name, { interaction: this });\n }\n\n this.target = this.element = null;\n\n this._interacting = false;\n this.prepared.name = this.prevEvent = null;\n };\n\n Interaction.prototype.getPointerIndex = function getPointerIndex(pointer) {\n // mouse and pen interactions may have only one pointer\n if (this.pointerType === 'mouse' || this.pointerType === 'pen') {\n return 0;\n }\n\n return this.pointerIds.indexOf(utils.getPointerId(pointer));\n };\n\n Interaction.prototype.updatePointer = function updatePointer(pointer, event) {\n var down = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : event && /(down|start)$/i.test(event.type);\n\n var id = utils.getPointerId(pointer);\n var index = this.getPointerIndex(pointer);\n\n if (index === -1) {\n index = this.pointerIds.length;\n this.pointerIds[index] = id;\n }\n\n if (down) {\n signals.fire('update-pointer-down', {\n pointer: pointer,\n event: event,\n down: down,\n pointerId: id,\n pointerIndex: index,\n interaction: this\n });\n }\n\n this.pointers[index] = pointer;\n\n return index;\n };\n\n Interaction.prototype.removePointer = function removePointer(pointer, event) {\n var index = this.getPointerIndex(pointer);\n\n if (index === -1) {\n return;\n }\n\n signals.fire('remove-pointer', {\n pointer: pointer,\n event: event,\n pointerIndex: index,\n interaction: this\n });\n\n this.pointers.splice(index, 1);\n this.pointerIds.splice(index, 1);\n this.downTargets.splice(index, 1);\n this.downTimes.splice(index, 1);\n };\n\n Interaction.prototype._updateEventTargets = function _updateEventTargets(target, currentTarget) {\n this._eventTarget = target;\n this._curEventTarget = currentTarget;\n };\n\n return Interaction;\n}();\n\nfor (var _i = 0; _i < methodNames.length; _i++) {\n var method = methodNames[_i];\n listeners[method] = doOnInteractions(method);\n}\n\nfunction doOnInteractions(method) {\n return function (event) {\n var pointerType = utils.getPointerType(event);\n\n var _utils$getEventTarget = utils.getEventTargets(event),\n eventTarget = _utils$getEventTarget[0],\n curEventTarget = _utils$getEventTarget[1];\n\n var matches = []; // [ [pointer, interaction], ...]\n\n if (browser.supportsTouch && /touch/.test(event.type)) {\n prevTouchTime = new Date().getTime();\n\n for (var _i2 = 0; _i2 < event.changedTouches.length; _i2++) {\n var _ref2;\n\n _ref2 = event.changedTouches[_i2];\n var changedTouch = _ref2;\n\n var pointer = changedTouch;\n var interaction = finder.search(pointer, event.type, eventTarget);\n\n matches.push([pointer, interaction || new Interaction({ pointerType: pointerType })]);\n }\n } else {\n var invalidPointer = false;\n\n if (!browser.supportsPointerEvent && /mouse/.test(event.type)) {\n // ignore mouse events while touch interactions are active\n for (var i = 0; i < scope.interactions.length && !invalidPointer; i++) {\n invalidPointer = scope.interactions[i].pointerType !== 'mouse' && scope.interactions[i].pointerIsDown;\n }\n\n // try to ignore mouse events that are simulated by the browser\n // after a touch event\n invalidPointer = invalidPointer || new Date().getTime() - prevTouchTime < 500\n // on iOS and Firefox Mobile, MouseEvent.timeStamp is zero if simulated\n || event.timeStamp === 0;\n }\n\n if (!invalidPointer) {\n var _interaction = finder.search(event, event.type, eventTarget);\n\n if (!_interaction) {\n _interaction = new Interaction({ pointerType: pointerType });\n }\n\n matches.push([event, _interaction]);\n }\n }\n\n for (var _i3 = 0; _i3 < matches.length; _i3++) {\n var _ref3 = matches[_i3];\n var _pointer = _ref3[0];\n var _interaction2 = _ref3[1];\n\n _interaction2._updateEventTargets(eventTarget, curEventTarget);\n _interaction2[method](_pointer, event, eventTarget, curEventTarget);\n }\n };\n}\n\nfunction endAll(event) {\n for (var _i4 = 0; _i4 < scope.interactions.length; _i4++) {\n var _ref4;\n\n _ref4 = scope.interactions[_i4];\n var interaction = _ref4;\n\n interaction.end(event);\n signals.fire('endall', { event: event, interaction: interaction });\n }\n}\n\nvar docEvents = {/* 'eventType': listenerFunc */};\nvar pEventTypes = browser.pEventTypes;\n\nif (domObjects.PointerEvent) {\n docEvents[pEventTypes.down] = listeners.pointerDown;\n docEvents[pEventTypes.move] = listeners.pointerMove;\n docEvents[pEventTypes.up] = listeners.pointerUp;\n docEvents[pEventTypes.cancel] = listeners.pointerUp;\n} else {\n docEvents.mousedown = listeners.pointerDown;\n docEvents.mousemove = listeners.pointerMove;\n docEvents.mouseup = listeners.pointerUp;\n\n docEvents.touchstart = listeners.pointerDown;\n docEvents.touchmove = listeners.pointerMove;\n docEvents.touchend = listeners.pointerUp;\n docEvents.touchcancel = listeners.pointerUp;\n}\n\ndocEvents.blur = endAll;\n\nfunction onDocSignal(_ref5, signalName) {\n var doc = _ref5.doc;\n\n var eventMethod = signalName.indexOf('add') === 0 ? events.add : events.remove;\n\n // delegate event listener\n for (var eventType in scope.delegatedEvents) {\n eventMethod(doc, eventType, events.delegateListener);\n eventMethod(doc, eventType, events.delegateUseCapture, true);\n }\n\n for (var _eventType in docEvents) {\n eventMethod(doc, _eventType, docEvents[_eventType], browser.isIOS ? { passive: false } : undefined);\n }\n}\n\nsignals.on('update-pointer-down', function (_ref6) {\n var interaction = _ref6.interaction,\n pointer = _ref6.pointer,\n pointerId = _ref6.pointerId,\n pointerIndex = _ref6.pointerIndex,\n event = _ref6.event,\n eventTarget = _ref6.eventTarget,\n down = _ref6.down;\n\n interaction.pointerIds[pointerIndex] = pointerId;\n interaction.pointers[pointerIndex] = pointer;\n\n if (down) {\n interaction.pointerIsDown = true;\n }\n\n if (!interaction.interacting()) {\n utils.setCoords(interaction.startCoords, interaction.pointers);\n\n utils.copyCoords(interaction.curCoords, interaction.startCoords);\n utils.copyCoords(interaction.prevCoords, interaction.startCoords);\n\n interaction.downEvent = event;\n interaction.downTimes[pointerIndex] = interaction.curCoords.timeStamp;\n interaction.downTargets[pointerIndex] = eventTarget || event && utils.getEventTargets(event)[0];\n interaction.pointerWasMoved = false;\n\n utils.pointerExtend(interaction.downPointer, pointer);\n }\n});\n\nscope.signals.on('add-document', onDocSignal);\nscope.signals.on('remove-document', onDocSignal);\n\nInteraction.pointerMoveTolerance = 1;\nInteraction.doOnInteractions = doOnInteractions;\nInteraction.endAll = endAll;\nInteraction.signals = signals;\nInteraction.docEvents = docEvents;\n\nscope.endAllInteractions = endAll;\n\nmodule.exports = Interaction;\n\n},{\"./scope\":33,\"./utils\":44,\"./utils/Signals\":34,\"./utils/browser\":36,\"./utils/domObjects\":38,\"./utils/events\":40,\"./utils/interactionFinder\":45}],6:[function(require,module,exports){\n'use strict';\n\nvar Interaction = require('../Interaction');\nvar InteractEvent = require('../InteractEvent');\n\nvar actions = {\n firePrepared: firePrepared,\n names: [],\n methodDict: {}\n};\n\nInteraction.signals.on('action-start', function (_ref) {\n var interaction = _ref.interaction,\n event = _ref.event;\n\n interaction._interacting = true;\n firePrepared(interaction, event, 'start');\n});\n\nInteraction.signals.on('action-move', function (_ref2) {\n var interaction = _ref2.interaction,\n event = _ref2.event,\n preEnd = _ref2.preEnd;\n\n firePrepared(interaction, event, 'move', preEnd);\n\n // if the action was ended in a listener\n if (!interaction.interacting()) {\n return false;\n }\n});\n\nInteraction.signals.on('action-end', function (_ref3) {\n var interaction = _ref3.interaction,\n event = _ref3.event;\n\n firePrepared(interaction, event, 'end');\n});\n\nfunction firePrepared(interaction, event, phase, preEnd) {\n var actionName = interaction.prepared.name;\n\n var newEvent = new InteractEvent(interaction, event, actionName, phase, interaction.element, null, preEnd);\n\n interaction.target.fire(newEvent);\n interaction.prevEvent = newEvent;\n}\n\nmodule.exports = actions;\n\n},{\"../InteractEvent\":3,\"../Interaction\":5}],7:[function(require,module,exports){\n'use strict';\n\nvar actions = require('./base');\nvar utils = require('../utils');\nvar InteractEvent = require('../InteractEvent');\n/** @lends Interactable */\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar defaultOptions = require('../defaultOptions');\n\nvar drag = {\n defaults: {\n enabled: false,\n mouseButtons: null,\n\n origin: null,\n snap: null,\n restrict: null,\n inertia: null,\n autoScroll: null,\n\n startAxis: 'xy',\n lockAxis: 'xy'\n },\n\n checker: function checker(pointer, event, interactable) {\n var dragOptions = interactable.options.drag;\n\n return dragOptions.enabled ? { name: 'drag', axis: dragOptions.lockAxis === 'start' ? dragOptions.startAxis : dragOptions.lockAxis } : null;\n },\n\n getCursor: function getCursor() {\n return 'move';\n }\n};\n\nInteraction.signals.on('before-action-move', function (_ref) {\n var interaction = _ref.interaction;\n\n if (interaction.prepared.name !== 'drag') {\n return;\n }\n\n var axis = interaction.prepared.axis;\n\n if (axis === 'x') {\n interaction.curCoords.page.y = interaction.startCoords.page.y;\n interaction.curCoords.client.y = interaction.startCoords.client.y;\n\n interaction.pointerDelta.page.speed = Math.abs(interaction.pointerDelta.page.vx);\n interaction.pointerDelta.client.speed = Math.abs(interaction.pointerDelta.client.vx);\n interaction.pointerDelta.client.vy = 0;\n interaction.pointerDelta.page.vy = 0;\n } else if (axis === 'y') {\n interaction.curCoords.page.x = interaction.startCoords.page.x;\n interaction.curCoords.client.x = interaction.startCoords.client.x;\n\n interaction.pointerDelta.page.speed = Math.abs(interaction.pointerDelta.page.vy);\n interaction.pointerDelta.client.speed = Math.abs(interaction.pointerDelta.client.vy);\n interaction.pointerDelta.client.vx = 0;\n interaction.pointerDelta.page.vx = 0;\n }\n});\n\n// dragmove\nInteractEvent.signals.on('new', function (_ref2) {\n var iEvent = _ref2.iEvent,\n interaction = _ref2.interaction;\n\n if (iEvent.type !== 'dragmove') {\n return;\n }\n\n var axis = interaction.prepared.axis;\n\n if (axis === 'x') {\n iEvent.pageY = interaction.startCoords.page.y;\n iEvent.clientY = interaction.startCoords.client.y;\n iEvent.dy = 0;\n } else if (axis === 'y') {\n iEvent.pageX = interaction.startCoords.page.x;\n iEvent.clientX = interaction.startCoords.client.x;\n iEvent.dx = 0;\n }\n});\n\n/**\n * ```js\n * interact(element).draggable({\n * onstart: function (event) {},\n * onmove : function (event) {},\n * onend : function (event) {},\n *\n * // the axis in which the first movement must be\n * // for the drag sequence to start\n * // 'xy' by default - any direction\n * startAxis: 'x' || 'y' || 'xy',\n *\n * // 'xy' by default - don't restrict to one axis (move in any direction)\n * // 'x' or 'y' to restrict movement to either axis\n * // 'start' to restrict movement to the axis the drag started in\n * lockAxis: 'x' || 'y' || 'xy' || 'start',\n *\n * // max number of drags that can happen concurrently\n * // with elements of this Interactable. Infinity by default\n * max: Infinity,\n *\n * // max number of drags that can target the same element+Interactable\n * // 1 by default\n * maxPerElement: 2\n * });\n *\n * var isDraggable = interact('element').draggable(); // true\n * ```\n *\n * Get or set whether drag actions can be performed on the target\n *\n * @param {boolean | object} [options] true/false or An object with event\n * listeners to be fired on drag events (object makes the Interactable\n * draggable)\n * @return {boolean | Interactable} boolean indicating if this can be the\n * target of drag events, or this Interctable\n */\nInteractable.prototype.draggable = function (options) {\n if (utils.is.object(options)) {\n this.options.drag.enabled = options.enabled === false ? false : true;\n this.setPerAction('drag', options);\n this.setOnEvents('drag', options);\n\n if (/^(xy|x|y|start)$/.test(options.lockAxis)) {\n this.options.drag.lockAxis = options.lockAxis;\n }\n if (/^(xy|x|y)$/.test(options.startAxis)) {\n this.options.drag.startAxis = options.startAxis;\n }\n\n return this;\n }\n\n if (utils.is.bool(options)) {\n this.options.drag.enabled = options;\n\n if (!options) {\n this.ondragstart = this.ondragstart = this.ondragend = null;\n }\n\n return this;\n }\n\n return this.options.drag;\n};\n\nactions.drag = drag;\nactions.names.push('drag');\nutils.merge(Interactable.eventTypes, ['dragstart', 'dragmove', 'draginertiastart', 'draginertiaresume', 'dragend']);\nactions.methodDict.drag = 'draggable';\n\ndefaultOptions.drag = drag.defaults;\n\nmodule.exports = drag;\n\n},{\"../InteractEvent\":3,\"../Interactable\":4,\"../Interaction\":5,\"../defaultOptions\":18,\"../utils\":44,\"./base\":6}],8:[function(require,module,exports){\n'use strict';\n\nvar actions = require('./base');\nvar utils = require('../utils');\nvar scope = require('../scope');\n/** @lends module:interact */\nvar interact = require('../interact');\nvar InteractEvent = require('../InteractEvent');\n/** @lends Interactable */\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar defaultOptions = require('../defaultOptions');\n\nvar drop = {\n defaults: {\n enabled: false,\n accept: null,\n overlap: 'pointer'\n }\n};\n\nvar dynamicDrop = false;\n\nInteraction.signals.on('action-start', function (_ref) {\n var interaction = _ref.interaction,\n event = _ref.event;\n\n if (interaction.prepared.name !== 'drag') {\n return;\n }\n\n // reset active dropzones\n interaction.activeDrops.dropzones = [];\n interaction.activeDrops.elements = [];\n interaction.activeDrops.rects = [];\n\n interaction.dropEvents = null;\n\n if (!interaction.dynamicDrop) {\n setActiveDrops(interaction.activeDrops, interaction.element);\n }\n\n var dragEvent = interaction.prevEvent;\n var dropEvents = getDropEvents(interaction, event, dragEvent);\n\n if (dropEvents.activate) {\n fireActiveDrops(interaction.activeDrops, dropEvents.activate);\n }\n});\n\nInteractEvent.signals.on('new', function (_ref2) {\n var interaction = _ref2.interaction,\n iEvent = _ref2.iEvent,\n event = _ref2.event;\n\n if (iEvent.type !== 'dragmove' && iEvent.type !== 'dragend') {\n return;\n }\n\n var draggableElement = interaction.element;\n var dragEvent = iEvent;\n var dropResult = getDrop(dragEvent, event, draggableElement);\n\n interaction.dropTarget = dropResult.dropzone;\n interaction.dropElement = dropResult.element;\n\n interaction.dropEvents = getDropEvents(interaction, event, dragEvent);\n});\n\nInteraction.signals.on('action-move', function (_ref3) {\n var interaction = _ref3.interaction;\n\n if (interaction.prepared.name !== 'drag') {\n return;\n }\n\n fireDropEvents(interaction, interaction.dropEvents);\n});\n\nInteraction.signals.on('action-end', function (_ref4) {\n var interaction = _ref4.interaction;\n\n if (interaction.prepared.name === 'drag') {\n fireDropEvents(interaction, interaction.dropEvents);\n }\n});\n\nInteraction.signals.on('stop-drag', function (_ref5) {\n var interaction = _ref5.interaction;\n\n interaction.activeDrops = {\n dropzones: null,\n elements: null,\n rects: null\n };\n\n interaction.dropEvents = null;\n});\n\nfunction collectDrops(activeDrops, element) {\n var drops = [];\n var elements = [];\n\n // collect all dropzones and their elements which qualify for a drop\n for (var _i = 0; _i < scope.interactables.length; _i++) {\n var _ref6;\n\n _ref6 = scope.interactables[_i];\n var current = _ref6;\n\n if (!current.options.drop.enabled) {\n continue;\n }\n\n var accept = current.options.drop.accept;\n\n // test the draggable element against the dropzone's accept setting\n if (utils.is.element(accept) && accept !== element || utils.is.string(accept) && !utils.matchesSelector(element, accept)) {\n\n continue;\n }\n\n // query for new elements if necessary\n var dropElements = utils.is.string(current.target) ? current._context.querySelectorAll(current.target) : [current.target];\n\n for (var _i2 = 0; _i2 < dropElements.length; _i2++) {\n var _ref7;\n\n _ref7 = dropElements[_i2];\n var currentElement = _ref7;\n\n if (currentElement !== element) {\n drops.push(current);\n elements.push(currentElement);\n }\n }\n }\n\n return {\n elements: elements,\n dropzones: drops\n };\n}\n\nfunction fireActiveDrops(activeDrops, event) {\n var prevElement = void 0;\n\n // loop through all active dropzones and trigger event\n for (var i = 0; i < activeDrops.dropzones.length; i++) {\n var current = activeDrops.dropzones[i];\n var currentElement = activeDrops.elements[i];\n\n // prevent trigger of duplicate events on same element\n if (currentElement !== prevElement) {\n // set current element as event target\n event.target = currentElement;\n current.fire(event);\n }\n prevElement = currentElement;\n }\n}\n\n// Collect a new set of possible drops and save them in activeDrops.\n// setActiveDrops should always be called when a drag has just started or a\n// drag event happens while dynamicDrop is true\nfunction setActiveDrops(activeDrops, dragElement) {\n // get dropzones and their elements that could receive the draggable\n var possibleDrops = collectDrops(activeDrops, dragElement);\n\n activeDrops.dropzones = possibleDrops.dropzones;\n activeDrops.elements = possibleDrops.elements;\n activeDrops.rects = [];\n\n for (var i = 0; i < activeDrops.dropzones.length; i++) {\n activeDrops.rects[i] = activeDrops.dropzones[i].getRect(activeDrops.elements[i]);\n }\n}\n\nfunction getDrop(dragEvent, event, dragElement) {\n var interaction = dragEvent.interaction;\n var validDrops = [];\n\n if (dynamicDrop) {\n setActiveDrops(interaction.activeDrops, dragElement);\n }\n\n // collect all dropzones and their elements which qualify for a drop\n for (var j = 0; j < interaction.activeDrops.dropzones.length; j++) {\n var current = interaction.activeDrops.dropzones[j];\n var currentElement = interaction.activeDrops.elements[j];\n var rect = interaction.activeDrops.rects[j];\n\n validDrops.push(current.dropCheck(dragEvent, event, interaction.target, dragElement, currentElement, rect) ? currentElement : null);\n }\n\n // get the most appropriate dropzone based on DOM depth and order\n var dropIndex = utils.indexOfDeepestElement(validDrops);\n\n return {\n dropzone: interaction.activeDrops.dropzones[dropIndex] || null,\n element: interaction.activeDrops.elements[dropIndex] || null\n };\n}\n\nfunction getDropEvents(interaction, pointerEvent, dragEvent) {\n var dropEvents = {\n enter: null,\n leave: null,\n activate: null,\n deactivate: null,\n move: null,\n drop: null\n };\n\n var tmpl = {\n dragEvent: dragEvent,\n interaction: interaction,\n target: interaction.dropElement,\n dropzone: interaction.dropTarget,\n relatedTarget: dragEvent.target,\n draggable: dragEvent.interactable,\n timeStamp: dragEvent.timeStamp\n };\n\n if (interaction.dropElement !== interaction.prevDropElement) {\n // if there was a prevDropTarget, create a dragleave event\n if (interaction.prevDropTarget) {\n dropEvents.leave = utils.extend({ type: 'dragleave' }, tmpl);\n\n dragEvent.dragLeave = dropEvents.leave.target = interaction.prevDropElement;\n dragEvent.prevDropzone = dropEvents.leave.dropzone = interaction.prevDropTarget;\n }\n // if the dropTarget is not null, create a dragenter event\n if (interaction.dropTarget) {\n dropEvents.enter = {\n dragEvent: dragEvent,\n interaction: interaction,\n target: interaction.dropElement,\n dropzone: interaction.dropTarget,\n relatedTarget: dragEvent.target,\n draggable: dragEvent.interactable,\n timeStamp: dragEvent.timeStamp,\n type: 'dragenter'\n };\n\n dragEvent.dragEnter = interaction.dropElement;\n dragEvent.dropzone = interaction.dropTarget;\n }\n }\n\n if (dragEvent.type === 'dragend' && interaction.dropTarget) {\n dropEvents.drop = utils.extend({ type: 'drop' }, tmpl);\n\n dragEvent.dropzone = interaction.dropTarget;\n dragEvent.relatedTarget = interaction.dropElement;\n }\n if (dragEvent.type === 'dragstart') {\n dropEvents.activate = utils.extend({ type: 'dropactivate' }, tmpl);\n\n dropEvents.activate.target = null;\n dropEvents.activate.dropzone = null;\n }\n if (dragEvent.type === 'dragend') {\n dropEvents.deactivate = utils.extend({ type: 'dropdeactivate' }, tmpl);\n\n dropEvents.deactivate.target = null;\n dropEvents.deactivate.dropzone = null;\n }\n if (dragEvent.type === 'dragmove' && interaction.dropTarget) {\n dropEvents.move = utils.extend({\n dragmove: dragEvent,\n type: 'dropmove'\n }, tmpl);\n\n dragEvent.dropzone = interaction.dropTarget;\n }\n\n return dropEvents;\n}\n\nfunction fireDropEvents(interaction, dropEvents) {\n var activeDrops = interaction.activeDrops,\n prevDropTarget = interaction.prevDropTarget,\n dropTarget = interaction.dropTarget,\n dropElement = interaction.dropElement;\n\n\n if (dropEvents.leave) {\n prevDropTarget.fire(dropEvents.leave);\n }\n if (dropEvents.move) {\n dropTarget.fire(dropEvents.move);\n }\n if (dropEvents.enter) {\n dropTarget.fire(dropEvents.enter);\n }\n if (dropEvents.drop) {\n dropTarget.fire(dropEvents.drop);\n }\n if (dropEvents.deactivate) {\n fireActiveDrops(activeDrops, dropEvents.deactivate);\n }\n\n interaction.prevDropTarget = dropTarget;\n interaction.prevDropElement = dropElement;\n}\n\n/**\n * ```js\n * interact(target)\n * .dropChecker(function(dragEvent, // related dragmove or dragend event\n * event, // TouchEvent/PointerEvent/MouseEvent\n * dropped, // bool result of the default checker\n * dropzone, // dropzone Interactable\n * dropElement, // dropzone elemnt\n * draggable, // draggable Interactable\n * draggableElement) {// draggable element\n *\n * return dropped && event.target.hasAttribute('allow-drop');\n * }\n * ```\n *\n * ```js\n * interact('.drop').dropzone({\n * accept: '.can-drop' || document.getElementById('single-drop'),\n * overlap: 'pointer' || 'center' || zeroToOne\n * }\n * ```\n *\n * Returns or sets whether draggables can be dropped onto this target to\n * trigger drop events\n *\n * Dropzones can receive the following events:\n * - `dropactivate` and `dropdeactivate` when an acceptable drag starts and ends\n * - `dragenter` and `dragleave` when a draggable enters and leaves the dropzone\n * - `dragmove` when a draggable that has entered the dropzone is moved\n * - `drop` when a draggable is dropped into this dropzone\n *\n * Use the `accept` option to allow only elements that match the given CSS\n * selector or element. The value can be:\n *\n * - **an Element** - only that element can be dropped into this dropzone.\n * - **a string**, - the element being dragged must match it as a CSS selector.\n * - **`null`** - accept options is cleared - it accepts any element.\n *\n * Use the `overlap` option to set how drops are checked for. The allowed\n * values are:\n *\n * - `'pointer'`, the pointer must be over the dropzone (default)\n * - `'center'`, the draggable element's center must be over the dropzone\n * - a number from 0-1 which is the `(intersection area) / (draggable area)`.\n * e.g. `0.5` for drop to happen when half of the area of the draggable is\n * over the dropzone\n *\n * Use the `checker` option to specify a function to check if a dragged element\n * is over this Interactable.\n *\n * @param {boolean | object | null} [options] The new options to be set.\n * @return {boolean | Interactable} The current setting or this Interactable\n */\nInteractable.prototype.dropzone = function (options) {\n if (utils.is.object(options)) {\n this.options.drop.enabled = options.enabled === false ? false : true;\n\n if (utils.is.function(options.ondrop)) {\n this.events.ondrop = options.ondrop;\n }\n if (utils.is.function(options.ondropactivate)) {\n this.events.ondropactivate = options.ondropactivate;\n }\n if (utils.is.function(options.ondropdeactivate)) {\n this.events.ondropdeactivate = options.ondropdeactivate;\n }\n if (utils.is.function(options.ondragenter)) {\n this.events.ondragenter = options.ondragenter;\n }\n if (utils.is.function(options.ondragleave)) {\n this.events.ondragleave = options.ondragleave;\n }\n if (utils.is.function(options.ondropmove)) {\n this.events.ondropmove = options.ondropmove;\n }\n\n if (/^(pointer|center)$/.test(options.overlap)) {\n this.options.drop.overlap = options.overlap;\n } else if (utils.is.number(options.overlap)) {\n this.options.drop.overlap = Math.max(Math.min(1, options.overlap), 0);\n }\n if ('accept' in options) {\n this.options.drop.accept = options.accept;\n }\n if ('checker' in options) {\n this.options.drop.checker = options.checker;\n }\n\n return this;\n }\n\n if (utils.is.bool(options)) {\n this.options.drop.enabled = options;\n\n if (!options) {\n this.ondragenter = this.ondragleave = this.ondrop = this.ondropactivate = this.ondropdeactivate = null;\n }\n\n return this;\n }\n\n return this.options.drop;\n};\n\nInteractable.prototype.dropCheck = function (dragEvent, event, draggable, draggableElement, dropElement, rect) {\n var dropped = false;\n\n // if the dropzone has no rect (eg. display: none)\n // call the custom dropChecker or just return false\n if (!(rect = rect || this.getRect(dropElement))) {\n return this.options.drop.checker ? this.options.drop.checker(dragEvent, event, dropped, this, dropElement, draggable, draggableElement) : false;\n }\n\n var dropOverlap = this.options.drop.overlap;\n\n if (dropOverlap === 'pointer') {\n var origin = utils.getOriginXY(draggable, draggableElement, 'drag');\n var page = utils.getPageXY(dragEvent);\n\n page.x += origin.x;\n page.y += origin.y;\n\n var horizontal = page.x > rect.left && page.x < rect.right;\n var vertical = page.y > rect.top && page.y < rect.bottom;\n\n dropped = horizontal && vertical;\n }\n\n var dragRect = draggable.getRect(draggableElement);\n\n if (dragRect && dropOverlap === 'center') {\n var cx = dragRect.left + dragRect.width / 2;\n var cy = dragRect.top + dragRect.height / 2;\n\n dropped = cx >= rect.left && cx <= rect.right && cy >= rect.top && cy <= rect.bottom;\n }\n\n if (dragRect && utils.is.number(dropOverlap)) {\n var overlapArea = Math.max(0, Math.min(rect.right, dragRect.right) - Math.max(rect.left, dragRect.left)) * Math.max(0, Math.min(rect.bottom, dragRect.bottom) - Math.max(rect.top, dragRect.top));\n\n var overlapRatio = overlapArea / (dragRect.width * dragRect.height);\n\n dropped = overlapRatio >= dropOverlap;\n }\n\n if (this.options.drop.checker) {\n dropped = this.options.drop.checker(dragEvent, event, dropped, this, dropElement, draggable, draggableElement);\n }\n\n return dropped;\n};\n\nInteractable.signals.on('unset', function (_ref8) {\n var interactable = _ref8.interactable;\n\n interactable.dropzone(false);\n});\n\nInteractable.settingsMethods.push('dropChecker');\n\nInteraction.signals.on('new', function (interaction) {\n interaction.dropTarget = null; // the dropzone a drag target might be dropped into\n interaction.dropElement = null; // the element at the time of checking\n interaction.prevDropTarget = null; // the dropzone that was recently dragged away from\n interaction.prevDropElement = null; // the element at the time of checking\n interaction.dropEvents = null; // the dropEvents related to the current drag event\n\n interaction.activeDrops = {\n dropzones: [], // the dropzones that are mentioned below\n elements: [], // elements of dropzones that accept the target draggable\n rects: [] // the rects of the elements mentioned above\n };\n});\n\nInteraction.signals.on('stop', function (_ref9) {\n var interaction = _ref9.interaction;\n\n interaction.dropTarget = interaction.dropElement = interaction.prevDropTarget = interaction.prevDropElement = null;\n});\n\n/**\n * Returns or sets whether the dimensions of dropzone elements are calculated\n * on every dragmove or only on dragstart for the default dropChecker\n *\n * @param {boolean} [newValue] True to check on each move. False to check only\n * before start\n * @return {boolean | interact} The current setting or interact\n */\ninteract.dynamicDrop = function (newValue) {\n if (utils.is.bool(newValue)) {\n //if (dragging && dynamicDrop !== newValue && !newValue) {\n //calcRects(dropzones);\n //}\n\n dynamicDrop = newValue;\n\n return interact;\n }\n return dynamicDrop;\n};\n\nutils.merge(Interactable.eventTypes, ['dragenter', 'dragleave', 'dropactivate', 'dropdeactivate', 'dropmove', 'drop']);\nactions.methodDict.drop = 'dropzone';\n\ndefaultOptions.drop = drop.defaults;\n\nmodule.exports = drop;\n\n},{\"../InteractEvent\":3,\"../Interactable\":4,\"../Interaction\":5,\"../defaultOptions\":18,\"../interact\":21,\"../scope\":33,\"../utils\":44,\"./base\":6}],9:[function(require,module,exports){\n'use strict';\n\nvar actions = require('./base');\nvar utils = require('../utils');\nvar InteractEvent = require('../InteractEvent');\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar defaultOptions = require('../defaultOptions');\n\nvar gesture = {\n defaults: {\n enabled: false,\n origin: null,\n restrict: null\n },\n\n checker: function checker(pointer, event, interactable, element, interaction) {\n if (interaction.pointerIds.length >= 2) {\n return { name: 'gesture' };\n }\n\n return null;\n },\n\n getCursor: function getCursor() {\n return '';\n }\n};\n\nInteractEvent.signals.on('new', function (_ref) {\n var iEvent = _ref.iEvent,\n interaction = _ref.interaction;\n\n if (iEvent.type !== 'gesturestart') {\n return;\n }\n iEvent.ds = 0;\n\n interaction.gesture.startDistance = interaction.gesture.prevDistance = iEvent.distance;\n interaction.gesture.startAngle = interaction.gesture.prevAngle = iEvent.angle;\n interaction.gesture.scale = 1;\n});\n\nInteractEvent.signals.on('new', function (_ref2) {\n var iEvent = _ref2.iEvent,\n interaction = _ref2.interaction;\n\n if (iEvent.type !== 'gesturemove') {\n return;\n }\n\n iEvent.ds = iEvent.scale - interaction.gesture.scale;\n\n interaction.target.fire(iEvent);\n\n interaction.gesture.prevAngle = iEvent.angle;\n interaction.gesture.prevDistance = iEvent.distance;\n\n if (iEvent.scale !== Infinity && iEvent.scale !== null && iEvent.scale !== undefined && !isNaN(iEvent.scale)) {\n\n interaction.gesture.scale = iEvent.scale;\n }\n});\n\n/**\n * ```js\n * interact(element).gesturable({\n * onstart: function (event) {},\n * onmove : function (event) {},\n * onend : function (event) {},\n *\n * // limit multiple gestures.\n * // See the explanation in {@link Interactable.draggable} example\n * max: Infinity,\n * maxPerElement: 1,\n * });\n *\n * var isGestureable = interact(element).gesturable();\n * ```\n *\n * Gets or sets whether multitouch gestures can be performed on the target\n *\n * @param {boolean | object} [options] true/false or An object with event\n * listeners to be fired on gesture events (makes the Interactable gesturable)\n * @return {boolean | Interactable} A boolean indicating if this can be the\n * target of gesture events, or this Interactable\n */\nInteractable.prototype.gesturable = function (options) {\n if (utils.is.object(options)) {\n this.options.gesture.enabled = options.enabled === false ? false : true;\n this.setPerAction('gesture', options);\n this.setOnEvents('gesture', options);\n\n return this;\n }\n\n if (utils.is.bool(options)) {\n this.options.gesture.enabled = options;\n\n if (!options) {\n this.ongesturestart = this.ongesturestart = this.ongestureend = null;\n }\n\n return this;\n }\n\n return this.options.gesture;\n};\n\nInteractEvent.signals.on('set-delta', function (_ref3) {\n var interaction = _ref3.interaction,\n iEvent = _ref3.iEvent,\n action = _ref3.action,\n event = _ref3.event,\n starting = _ref3.starting,\n ending = _ref3.ending,\n deltaSource = _ref3.deltaSource;\n\n if (action !== 'gesture') {\n return;\n }\n\n var pointers = interaction.pointers;\n\n iEvent.touches = [pointers[0], pointers[1]];\n\n if (starting) {\n iEvent.distance = utils.touchDistance(pointers, deltaSource);\n iEvent.box = utils.touchBBox(pointers);\n iEvent.scale = 1;\n iEvent.ds = 0;\n iEvent.angle = utils.touchAngle(pointers, undefined, deltaSource);\n iEvent.da = 0;\n } else if (ending || event instanceof InteractEvent) {\n iEvent.distance = interaction.prevEvent.distance;\n iEvent.box = interaction.prevEvent.box;\n iEvent.scale = interaction.prevEvent.scale;\n iEvent.ds = iEvent.scale - 1;\n iEvent.angle = interaction.prevEvent.angle;\n iEvent.da = iEvent.angle - interaction.gesture.startAngle;\n } else {\n iEvent.distance = utils.touchDistance(pointers, deltaSource);\n iEvent.box = utils.touchBBox(pointers);\n iEvent.scale = iEvent.distance / interaction.gesture.startDistance;\n iEvent.angle = utils.touchAngle(pointers, interaction.gesture.prevAngle, deltaSource);\n\n iEvent.ds = iEvent.scale - interaction.gesture.prevScale;\n iEvent.da = iEvent.angle - interaction.gesture.prevAngle;\n }\n});\n\nInteraction.signals.on('new', function (interaction) {\n interaction.gesture = {\n start: { x: 0, y: 0 },\n\n startDistance: 0, // distance between two touches of touchStart\n prevDistance: 0,\n distance: 0,\n\n scale: 1, // gesture.distance / gesture.startDistance\n\n startAngle: 0, // angle of line joining two touches\n prevAngle: 0 // angle of the previous gesture event\n };\n});\n\nactions.gesture = gesture;\nactions.names.push('gesture');\nutils.merge(Interactable.eventTypes, ['gesturestart', 'gesturemove', 'gestureend']);\nactions.methodDict.gesture = 'gesturable';\n\ndefaultOptions.gesture = gesture.defaults;\n\nmodule.exports = gesture;\n\n},{\"../InteractEvent\":3,\"../Interactable\":4,\"../Interaction\":5,\"../defaultOptions\":18,\"../utils\":44,\"./base\":6}],10:[function(require,module,exports){\n'use strict';\n\nvar actions = require('./base');\nvar utils = require('../utils');\nvar browser = require('../utils/browser');\nvar InteractEvent = require('../InteractEvent');\n/** @lends Interactable */\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar defaultOptions = require('../defaultOptions');\n\n// Less Precision with touch input\nvar defaultMargin = browser.supportsTouch || browser.supportsPointerEvent ? 20 : 10;\n\nvar resize = {\n defaults: {\n enabled: false,\n mouseButtons: null,\n\n origin: null,\n snap: null,\n restrict: null,\n inertia: null,\n autoScroll: null,\n\n square: false,\n preserveAspectRatio: false,\n axis: 'xy',\n\n // use default margin\n margin: NaN,\n\n // object with props left, right, top, bottom which are\n // true/false values to resize when the pointer is over that edge,\n // CSS selectors to match the handles for each direction\n // or the Elements for each handle\n edges: null,\n\n // a value of 'none' will limit the resize rect to a minimum of 0x0\n // 'negate' will alow the rect to have negative width/height\n // 'reposition' will keep the width/height positive by swapping\n // the top and bottom edges and/or swapping the left and right edges\n invert: 'none'\n },\n\n checker: function checker(pointer, event, interactable, element, interaction, rect) {\n if (!rect) {\n return null;\n }\n\n var page = utils.extend({}, interaction.curCoords.page);\n var options = interactable.options;\n\n if (options.resize.enabled) {\n var resizeOptions = options.resize;\n var resizeEdges = { left: false, right: false, top: false, bottom: false };\n\n // if using resize.edges\n if (utils.is.object(resizeOptions.edges)) {\n for (var edge in resizeEdges) {\n resizeEdges[edge] = checkResizeEdge(edge, resizeOptions.edges[edge], page, interaction._eventTarget, element, rect, resizeOptions.margin || defaultMargin);\n }\n\n resizeEdges.left = resizeEdges.left && !resizeEdges.right;\n resizeEdges.top = resizeEdges.top && !resizeEdges.bottom;\n\n if (resizeEdges.left || resizeEdges.right || resizeEdges.top || resizeEdges.bottom) {\n return {\n name: 'resize',\n edges: resizeEdges\n };\n }\n } else {\n var right = options.resize.axis !== 'y' && page.x > rect.right - defaultMargin;\n var bottom = options.resize.axis !== 'x' && page.y > rect.bottom - defaultMargin;\n\n if (right || bottom) {\n return {\n name: 'resize',\n axes: (right ? 'x' : '') + (bottom ? 'y' : '')\n };\n }\n }\n }\n\n return null;\n },\n\n cursors: browser.isIe9 ? {\n x: 'e-resize',\n y: 's-resize',\n xy: 'se-resize',\n\n top: 'n-resize',\n left: 'w-resize',\n bottom: 's-resize',\n right: 'e-resize',\n topleft: 'se-resize',\n bottomright: 'se-resize',\n topright: 'ne-resize',\n bottomleft: 'ne-resize'\n } : {\n x: 'ew-resize',\n y: 'ns-resize',\n xy: 'nwse-resize',\n\n top: 'ns-resize',\n left: 'ew-resize',\n bottom: 'ns-resize',\n right: 'ew-resize',\n topleft: 'nwse-resize',\n bottomright: 'nwse-resize',\n topright: 'nesw-resize',\n bottomleft: 'nesw-resize'\n },\n\n getCursor: function getCursor(action) {\n if (action.axis) {\n return resize.cursors[action.name + action.axis];\n } else if (action.edges) {\n var cursorKey = '';\n var edgeNames = ['top', 'bottom', 'left', 'right'];\n\n for (var i = 0; i < 4; i++) {\n if (action.edges[edgeNames[i]]) {\n cursorKey += edgeNames[i];\n }\n }\n\n return resize.cursors[cursorKey];\n }\n }\n};\n\n// resizestart\nInteractEvent.signals.on('new', function (_ref) {\n var iEvent = _ref.iEvent,\n interaction = _ref.interaction;\n\n if (iEvent.type !== 'resizestart' || !interaction.prepared.edges) {\n return;\n }\n\n var startRect = interaction.target.getRect(interaction.element);\n var resizeOptions = interaction.target.options.resize;\n\n /*\n * When using the `resizable.square` or `resizable.preserveAspectRatio` options, resizing from one edge\n * will affect another. E.g. with `resizable.square`, resizing to make the right edge larger will make\n * the bottom edge larger by the same amount. We call these 'linked' edges. Any linked edges will depend\n * on the active edges and the edge being interacted with.\n */\n if (resizeOptions.square || resizeOptions.preserveAspectRatio) {\n var linkedEdges = utils.extend({}, interaction.prepared.edges);\n\n linkedEdges.top = linkedEdges.top || linkedEdges.left && !linkedEdges.bottom;\n linkedEdges.left = linkedEdges.left || linkedEdges.top && !linkedEdges.right;\n linkedEdges.bottom = linkedEdges.bottom || linkedEdges.right && !linkedEdges.top;\n linkedEdges.right = linkedEdges.right || linkedEdges.bottom && !linkedEdges.left;\n\n interaction.prepared._linkedEdges = linkedEdges;\n } else {\n interaction.prepared._linkedEdges = null;\n }\n\n // if using `resizable.preserveAspectRatio` option, record aspect ratio at the start of the resize\n if (resizeOptions.preserveAspectRatio) {\n interaction.resizeStartAspectRatio = startRect.width / startRect.height;\n }\n\n interaction.resizeRects = {\n start: startRect,\n current: utils.extend({}, startRect),\n inverted: utils.extend({}, startRect),\n previous: utils.extend({}, startRect),\n delta: {\n left: 0, right: 0, width: 0,\n top: 0, bottom: 0, height: 0\n }\n };\n\n iEvent.rect = interaction.resizeRects.inverted;\n iEvent.deltaRect = interaction.resizeRects.delta;\n});\n\n// resizemove\nInteractEvent.signals.on('new', function (_ref2) {\n var iEvent = _ref2.iEvent,\n phase = _ref2.phase,\n interaction = _ref2.interaction;\n\n if (phase !== 'move' || !interaction.prepared.edges) {\n return;\n }\n\n var resizeOptions = interaction.target.options.resize;\n var invert = resizeOptions.invert;\n var invertible = invert === 'reposition' || invert === 'negate';\n\n var edges = interaction.prepared.edges;\n\n var start = interaction.resizeRects.start;\n var current = interaction.resizeRects.current;\n var inverted = interaction.resizeRects.inverted;\n var delta = interaction.resizeRects.delta;\n var previous = utils.extend(interaction.resizeRects.previous, inverted);\n var originalEdges = edges;\n\n var dx = iEvent.dx;\n var dy = iEvent.dy;\n\n if (resizeOptions.preserveAspectRatio || resizeOptions.square) {\n // `resize.preserveAspectRatio` takes precedence over `resize.square`\n var startAspectRatio = resizeOptions.preserveAspectRatio ? interaction.resizeStartAspectRatio : 1;\n\n edges = interaction.prepared._linkedEdges;\n\n if (originalEdges.left && originalEdges.bottom || originalEdges.right && originalEdges.top) {\n dy = -dx / startAspectRatio;\n } else if (originalEdges.left || originalEdges.right) {\n dy = dx / startAspectRatio;\n } else if (originalEdges.top || originalEdges.bottom) {\n dx = dy * startAspectRatio;\n }\n }\n\n // update the 'current' rect without modifications\n if (edges.top) {\n current.top += dy;\n }\n if (edges.bottom) {\n current.bottom += dy;\n }\n if (edges.left) {\n current.left += dx;\n }\n if (edges.right) {\n current.right += dx;\n }\n\n if (invertible) {\n // if invertible, copy the current rect\n utils.extend(inverted, current);\n\n if (invert === 'reposition') {\n // swap edge values if necessary to keep width/height positive\n var swap = void 0;\n\n if (inverted.top > inverted.bottom) {\n swap = inverted.top;\n\n inverted.top = inverted.bottom;\n inverted.bottom = swap;\n }\n if (inverted.left > inverted.right) {\n swap = inverted.left;\n\n inverted.left = inverted.right;\n inverted.right = swap;\n }\n }\n } else {\n // if not invertible, restrict to minimum of 0x0 rect\n inverted.top = Math.min(current.top, start.bottom);\n inverted.bottom = Math.max(current.bottom, start.top);\n inverted.left = Math.min(current.left, start.right);\n inverted.right = Math.max(current.right, start.left);\n }\n\n inverted.width = inverted.right - inverted.left;\n inverted.height = inverted.bottom - inverted.top;\n\n for (var edge in inverted) {\n delta[edge] = inverted[edge] - previous[edge];\n }\n\n iEvent.edges = interaction.prepared.edges;\n iEvent.rect = inverted;\n iEvent.deltaRect = delta;\n});\n\n/**\n * ```js\n * interact(element).resizable({\n * onstart: function (event) {},\n * onmove : function (event) {},\n * onend : function (event) {},\n *\n * edges: {\n * top : true, // Use pointer coords to check for resize.\n * left : false, // Disable resizing from left edge.\n * bottom: '.resize-s',// Resize if pointer target matches selector\n * right : handleEl // Resize if pointer target is the given Element\n * },\n *\n * // Width and height can be adjusted independently. When `true`, width and\n * // height are adjusted at a 1:1 ratio.\n * square: false,\n *\n * // Width and height can be adjusted independently. When `true`, width and\n * // height maintain the aspect ratio they had when resizing started.\n * preserveAspectRatio: false,\n *\n * // a value of 'none' will limit the resize rect to a minimum of 0x0\n * // 'negate' will allow the rect to have negative width/height\n * // 'reposition' will keep the width/height positive by swapping\n * // the top and bottom edges and/or swapping the left and right edges\n * invert: 'none' || 'negate' || 'reposition'\n *\n * // limit multiple resizes.\n * // See the explanation in the {@link Interactable.draggable} example\n * max: Infinity,\n * maxPerElement: 1,\n * });\n *\n * var isResizeable = interact(element).resizable();\n * ```\n *\n * Gets or sets whether resize actions can be performed on the target\n *\n * @param {boolean | object} [options] true/false or An object with event\n * listeners to be fired on resize events (object makes the Interactable\n * resizable)\n * @return {boolean | Interactable} A boolean indicating if this can be the\n * target of resize elements, or this Interactable\n */\nInteractable.prototype.resizable = function (options) {\n if (utils.is.object(options)) {\n this.options.resize.enabled = options.enabled === false ? false : true;\n this.setPerAction('resize', options);\n this.setOnEvents('resize', options);\n\n if (/^x$|^y$|^xy$/.test(options.axis)) {\n this.options.resize.axis = options.axis;\n } else if (options.axis === null) {\n this.options.resize.axis = defaultOptions.resize.axis;\n }\n\n if (utils.is.bool(options.preserveAspectRatio)) {\n this.options.resize.preserveAspectRatio = options.preserveAspectRatio;\n } else if (utils.is.bool(options.square)) {\n this.options.resize.square = options.square;\n }\n\n return this;\n }\n if (utils.is.bool(options)) {\n this.options.resize.enabled = options;\n\n if (!options) {\n this.onresizestart = this.onresizestart = this.onresizeend = null;\n }\n\n return this;\n }\n return this.options.resize;\n};\n\nfunction checkResizeEdge(name, value, page, element, interactableElement, rect, margin) {\n // false, '', undefined, null\n if (!value) {\n return false;\n }\n\n // true value, use pointer coords and element rect\n if (value === true) {\n // if dimensions are negative, \"switch\" edges\n var width = utils.is.number(rect.width) ? rect.width : rect.right - rect.left;\n var height = utils.is.number(rect.height) ? rect.height : rect.bottom - rect.top;\n\n if (width < 0) {\n if (name === 'left') {\n name = 'right';\n } else if (name === 'right') {\n name = 'left';\n }\n }\n if (height < 0) {\n if (name === 'top') {\n name = 'bottom';\n } else if (name === 'bottom') {\n name = 'top';\n }\n }\n\n if (name === 'left') {\n return page.x < (width >= 0 ? rect.left : rect.right) + margin;\n }\n if (name === 'top') {\n return page.y < (height >= 0 ? rect.top : rect.bottom) + margin;\n }\n\n if (name === 'right') {\n return page.x > (width >= 0 ? rect.right : rect.left) - margin;\n }\n if (name === 'bottom') {\n return page.y > (height >= 0 ? rect.bottom : rect.top) - margin;\n }\n }\n\n // the remaining checks require an element\n if (!utils.is.element(element)) {\n return false;\n }\n\n return utils.is.element(value)\n // the value is an element to use as a resize handle\n ? value === element\n // otherwise check if element matches value as selector\n : utils.matchesUpTo(element, value, interactableElement);\n}\n\nInteraction.signals.on('new', function (interaction) {\n interaction.resizeAxes = 'xy';\n});\n\nInteractEvent.signals.on('set-delta', function (_ref3) {\n var interaction = _ref3.interaction,\n iEvent = _ref3.iEvent,\n action = _ref3.action;\n\n if (action !== 'resize' || !interaction.resizeAxes) {\n return;\n }\n\n var options = interaction.target.options;\n\n if (options.resize.square) {\n if (interaction.resizeAxes === 'y') {\n iEvent.dx = iEvent.dy;\n } else {\n iEvent.dy = iEvent.dx;\n }\n iEvent.axes = 'xy';\n } else {\n iEvent.axes = interaction.resizeAxes;\n\n if (interaction.resizeAxes === 'x') {\n iEvent.dy = 0;\n } else if (interaction.resizeAxes === 'y') {\n iEvent.dx = 0;\n }\n }\n});\n\nactions.resize = resize;\nactions.names.push('resize');\nutils.merge(Interactable.eventTypes, ['resizestart', 'resizemove', 'resizeinertiastart', 'resizeinertiaresume', 'resizeend']);\nactions.methodDict.resize = 'resizable';\n\ndefaultOptions.resize = resize.defaults;\n\nmodule.exports = resize;\n\n},{\"../InteractEvent\":3,\"../Interactable\":4,\"../Interaction\":5,\"../defaultOptions\":18,\"../utils\":44,\"../utils/browser\":36,\"./base\":6}],11:[function(require,module,exports){\n'use strict';\n\nvar raf = require('./utils/raf');\nvar getWindow = require('./utils/window').getWindow;\nvar is = require('./utils/is');\nvar domUtils = require('./utils/domUtils');\nvar Interaction = require('./Interaction');\nvar defaultOptions = require('./defaultOptions');\n\nvar autoScroll = {\n defaults: {\n enabled: false,\n container: null, // the item that is scrolled (Window or HTMLElement)\n margin: 60,\n speed: 300 // the scroll speed in pixels per second\n },\n\n interaction: null,\n i: null, // the handle returned by window.setInterval\n x: 0, y: 0, // Direction each pulse is to scroll in\n\n isScrolling: false,\n prevTime: 0,\n\n start: function start(interaction) {\n autoScroll.isScrolling = true;\n raf.cancel(autoScroll.i);\n\n autoScroll.interaction = interaction;\n autoScroll.prevTime = new Date().getTime();\n autoScroll.i = raf.request(autoScroll.scroll);\n },\n\n stop: function stop() {\n autoScroll.isScrolling = false;\n raf.cancel(autoScroll.i);\n },\n\n // scroll the window by the values in scroll.x/y\n scroll: function scroll() {\n var options = autoScroll.interaction.target.options[autoScroll.interaction.prepared.name].autoScroll;\n var container = options.container || getWindow(autoScroll.interaction.element);\n var now = new Date().getTime();\n // change in time in seconds\n var dt = (now - autoScroll.prevTime) / 1000;\n // displacement\n var s = options.speed * dt;\n\n if (s >= 1) {\n if (is.window(container)) {\n container.scrollBy(autoScroll.x * s, autoScroll.y * s);\n } else if (container) {\n container.scrollLeft += autoScroll.x * s;\n container.scrollTop += autoScroll.y * s;\n }\n\n autoScroll.prevTime = now;\n }\n\n if (autoScroll.isScrolling) {\n raf.cancel(autoScroll.i);\n autoScroll.i = raf.request(autoScroll.scroll);\n }\n },\n check: function check(interactable, actionName) {\n var options = interactable.options;\n\n return options[actionName].autoScroll && options[actionName].autoScroll.enabled;\n },\n onInteractionMove: function onInteractionMove(_ref) {\n var interaction = _ref.interaction,\n pointer = _ref.pointer;\n\n if (!(interaction.interacting() && autoScroll.check(interaction.target, interaction.prepared.name))) {\n return;\n }\n\n if (interaction.simulation) {\n autoScroll.x = autoScroll.y = 0;\n return;\n }\n\n var top = void 0;\n var right = void 0;\n var bottom = void 0;\n var left = void 0;\n\n var options = interaction.target.options[interaction.prepared.name].autoScroll;\n var container = options.container || getWindow(interaction.element);\n\n if (is.window(container)) {\n left = pointer.clientX < autoScroll.margin;\n top = pointer.clientY < autoScroll.margin;\n right = pointer.clientX > container.innerWidth - autoScroll.margin;\n bottom = pointer.clientY > container.innerHeight - autoScroll.margin;\n } else {\n var rect = domUtils.getElementClientRect(container);\n\n left = pointer.clientX < rect.left + autoScroll.margin;\n top = pointer.clientY < rect.top + autoScroll.margin;\n right = pointer.clientX > rect.right - autoScroll.margin;\n bottom = pointer.clientY > rect.bottom - autoScroll.margin;\n }\n\n autoScroll.x = right ? 1 : left ? -1 : 0;\n autoScroll.y = bottom ? 1 : top ? -1 : 0;\n\n if (!autoScroll.isScrolling) {\n // set the autoScroll properties to those of the target\n autoScroll.margin = options.margin;\n autoScroll.speed = options.speed;\n\n autoScroll.start(interaction);\n }\n }\n};\n\nInteraction.signals.on('stop-active', function () {\n autoScroll.stop();\n});\n\nInteraction.signals.on('action-move', autoScroll.onInteractionMove);\n\ndefaultOptions.perAction.autoScroll = autoScroll.defaults;\n\nmodule.exports = autoScroll;\n\n},{\"./Interaction\":5,\"./defaultOptions\":18,\"./utils/domUtils\":39,\"./utils/is\":46,\"./utils/raf\":50,\"./utils/window\":52}],12:[function(require,module,exports){\n'use strict';\n\n/** @lends Interactable */\nvar Interactable = require('../Interactable');\nvar actions = require('../actions/base');\nvar is = require('../utils/is');\nvar domUtils = require('../utils/domUtils');\n\nvar _require = require('../utils'),\n warnOnce = _require.warnOnce;\n\nInteractable.prototype.getAction = function (pointer, event, interaction, element) {\n var action = this.defaultActionChecker(pointer, event, interaction, element);\n\n if (this.options.actionChecker) {\n return this.options.actionChecker(pointer, event, action, this, element, interaction);\n }\n\n return action;\n};\n\n/**\n * ```js\n * interact(element, { ignoreFrom: document.getElementById('no-action') });\n * // or\n * interact(element).ignoreFrom('input, textarea, a');\n * ```\n * @deprecated\n * If the target of the `mousedown`, `pointerdown` or `touchstart` event or any\n * of it's parents match the given CSS selector or Element, no\n * drag/resize/gesture is started.\n *\n * Don't use this method. Instead set the `ignoreFrom` option for each action\n * or for `pointerEvents`\n *\n * @example\n * interact(targett)\n * .draggable({\n * ignoreFrom: 'input, textarea, a[href]'',\n * })\n * .pointerEvents({\n * ignoreFrom: '[no-pointer]',\n * });\n *\n * @param {string | Element | null} [newValue] a CSS selector string, an\n * Element or `null` to not ignore any elements\n * @return {string | Element | object} The current ignoreFrom value or this\n * Interactable\n */\nInteractable.prototype.ignoreFrom = warnOnce(function (newValue) {\n return this._backCompatOption('ignoreFrom', newValue);\n}, 'Interactable.ignoreForm() has been deprecated. Use Interactble.draggable({ignoreFrom: newValue}).');\n\n/**\n * ```js\n *\n * @deprecated\n * A drag/resize/gesture is started only If the target of the `mousedown`,\n * `pointerdown` or `touchstart` event or any of it's parents match the given\n * CSS selector or Element.\n *\n * Don't use this method. Instead set the `allowFrom` option for each action\n * or for `pointerEvents`\n *\n * @example\n * interact(targett)\n * .resizable({\n * allowFrom: '.resize-handle',\n * .pointerEvents({\n * allowFrom: '.handle',,\n * });\n *\n * @param {string | Element | null} [newValue] a CSS selector string, an\n * Element or `null` to allow from any element\n * @return {string | Element | object} The current allowFrom value or this\n * Interactable\n */\nInteractable.prototype.allowFrom = warnOnce(function (newValue) {\n return this._backCompatOption('allowFrom', newValue);\n}, 'Interactable.allowForm() has been deprecated. Use Interactble.draggable({allowFrom: newValue}).');\n\nInteractable.prototype.testIgnore = function (ignoreFrom, interactableElement, element) {\n if (!ignoreFrom || !is.element(element)) {\n return false;\n }\n\n if (is.string(ignoreFrom)) {\n return domUtils.matchesUpTo(element, ignoreFrom, interactableElement);\n } else if (is.element(ignoreFrom)) {\n return domUtils.nodeContains(ignoreFrom, element);\n }\n\n return false;\n};\n\nInteractable.prototype.testAllow = function (allowFrom, interactableElement, element) {\n if (!allowFrom) {\n return true;\n }\n\n if (!is.element(element)) {\n return false;\n }\n\n if (is.string(allowFrom)) {\n return domUtils.matchesUpTo(element, allowFrom, interactableElement);\n } else if (is.element(allowFrom)) {\n return domUtils.nodeContains(allowFrom, element);\n }\n\n return false;\n};\n\nInteractable.prototype.testIgnoreAllow = function (options, interactableElement, eventTarget) {\n return !this.testIgnore(options.ignoreFrom, interactableElement, eventTarget) && this.testAllow(options.allowFrom, interactableElement, eventTarget);\n};\n\n/**\n * ```js\n * interact('.resize-drag')\n * .resizable(true)\n * .draggable(true)\n * .actionChecker(function (pointer, event, action, interactable, element, interaction) {\n *\n * if (interact.matchesSelector(event.target, '.drag-handle') {\n * // force drag with handle target\n * action.name = drag;\n * }\n * else {\n * // resize from the top and right edges\n * action.name = 'resize';\n * action.edges = { top: true, right: true };\n * }\n *\n * return action;\n * });\n * ```\n *\n * Gets or sets the function used to check action to be performed on\n * pointerDown\n *\n * @param {function | null} [checker] A function which takes a pointer event,\n * defaultAction string, interactable, element and interaction as parameters\n * and returns an object with name property 'drag' 'resize' or 'gesture' and\n * optionally an `edges` object with boolean 'top', 'left', 'bottom' and right\n * props.\n * @return {Function | Interactable} The checker function or this Interactable\n */\nInteractable.prototype.actionChecker = function (checker) {\n if (is.function(checker)) {\n this.options.actionChecker = checker;\n\n return this;\n }\n\n if (checker === null) {\n delete this.options.actionChecker;\n\n return this;\n }\n\n return this.options.actionChecker;\n};\n\n/**\n * Returns or sets whether the the cursor should be changed depending on the\n * action that would be performed if the mouse were pressed and dragged.\n *\n * @param {boolean} [newValue]\n * @return {boolean | Interactable} The current setting or this Interactable\n */\nInteractable.prototype.styleCursor = function (newValue) {\n if (is.bool(newValue)) {\n this.options.styleCursor = newValue;\n\n return this;\n }\n\n if (newValue === null) {\n delete this.options.styleCursor;\n\n return this;\n }\n\n return this.options.styleCursor;\n};\n\nInteractable.prototype.defaultActionChecker = function (pointer, event, interaction, element) {\n var rect = this.getRect(element);\n var buttons = event.buttons || {\n 0: 1,\n 1: 4,\n 3: 8,\n 4: 16\n }[event.button];\n var action = null;\n\n for (var _i = 0; _i < actions.names.length; _i++) {\n var _ref;\n\n _ref = actions.names[_i];\n var actionName = _ref;\n\n // check mouseButton setting if the pointer is down\n if (interaction.pointerIsDown && /mouse|pointer/.test(interaction.pointerType) && (buttons & this.options[actionName].mouseButtons) === 0) {\n continue;\n }\n\n action = actions[actionName].checker(pointer, event, this, element, interaction, rect);\n\n if (action) {\n return action;\n }\n }\n};\n\n},{\"../Interactable\":4,\"../actions/base\":6,\"../utils\":44,\"../utils/domUtils\":39,\"../utils/is\":46}],13:[function(require,module,exports){\n'use strict';\n\nvar interact = require('../interact');\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar actions = require('../actions/base');\nvar defaultOptions = require('../defaultOptions');\nvar scope = require('../scope');\nvar utils = require('../utils');\nvar signals = require('../utils/Signals').new();\n\nrequire('./InteractableMethods');\n\nvar autoStart = {\n signals: signals,\n withinInteractionLimit: withinInteractionLimit,\n // Allow this many interactions to happen simultaneously\n maxInteractions: Infinity,\n defaults: {\n perAction: {\n manualStart: false,\n max: Infinity,\n maxPerElement: 1,\n allowFrom: null,\n ignoreFrom: null,\n\n // only allow left button by default\n // see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons#Return_value\n mouseButtons: 1\n }\n },\n setActionDefaults: function setActionDefaults(action) {\n utils.extend(action.defaults, autoStart.defaults.perAction);\n },\n validateAction: validateAction\n};\n\n// set cursor style on mousedown\nInteraction.signals.on('down', function (_ref) {\n var interaction = _ref.interaction,\n pointer = _ref.pointer,\n event = _ref.event,\n eventTarget = _ref.eventTarget;\n\n if (interaction.interacting()) {\n return;\n }\n\n var actionInfo = getActionInfo(interaction, pointer, event, eventTarget);\n prepare(interaction, actionInfo);\n});\n\n// set cursor style on mousemove\nInteraction.signals.on('move', function (_ref2) {\n var interaction = _ref2.interaction,\n pointer = _ref2.pointer,\n event = _ref2.event,\n eventTarget = _ref2.eventTarget;\n\n if (interaction.pointerType !== 'mouse' || interaction.pointerIsDown || interaction.interacting()) {\n return;\n }\n\n var actionInfo = getActionInfo(interaction, pointer, event, eventTarget);\n prepare(interaction, actionInfo);\n});\n\nInteraction.signals.on('move', function (arg) {\n var interaction = arg.interaction,\n event = arg.event;\n\n\n if (!interaction.pointerIsDown || interaction.interacting() || !interaction.pointerWasMoved || !interaction.prepared.name) {\n return;\n }\n\n signals.fire('before-start', arg);\n\n var target = interaction.target;\n\n if (interaction.prepared.name && target) {\n // check manualStart and interaction limit\n if (target.options[interaction.prepared.name].manualStart || !withinInteractionLimit(target, interaction.element, interaction.prepared)) {\n interaction.stop(event);\n } else {\n interaction.start(interaction.prepared, target, interaction.element);\n }\n }\n});\n\n// Check if the current target supports the action.\n// If so, return the validated action. Otherwise, return null\nfunction validateAction(action, interactable, element, eventTarget) {\n if (utils.is.object(action) && interactable.testIgnoreAllow(interactable.options[action.name], element, eventTarget) && interactable.options[action.name].enabled && withinInteractionLimit(interactable, element, action)) {\n return action;\n }\n\n return null;\n}\n\nfunction validateSelector(interaction, pointer, event, matches, matchElements, eventTarget) {\n for (var i = 0, len = matches.length; i < len; i++) {\n var match = matches[i];\n var matchElement = matchElements[i];\n var action = validateAction(match.getAction(pointer, event, interaction, matchElement), match, matchElement, eventTarget);\n\n if (action) {\n return {\n action: action,\n target: match,\n element: matchElement\n };\n }\n }\n\n return {};\n}\n\nfunction getActionInfo(interaction, pointer, event, eventTarget) {\n var matches = [];\n var matchElements = [];\n\n var element = eventTarget;\n\n function pushMatches(interactable) {\n matches.push(interactable);\n matchElements.push(element);\n }\n\n while (utils.is.element(element)) {\n matches = [];\n matchElements = [];\n\n scope.interactables.forEachMatch(element, pushMatches);\n\n var actionInfo = validateSelector(interaction, pointer, event, matches, matchElements, eventTarget);\n\n if (actionInfo.action && !actionInfo.target.options[actionInfo.action.name].manualStart) {\n return actionInfo;\n }\n\n element = utils.parentNode(element);\n }\n\n return {};\n}\n\nfunction prepare(interaction, _ref3) {\n var action = _ref3.action,\n target = _ref3.target,\n element = _ref3.element;\n\n action = action || {};\n\n if (interaction.target && interaction.target.options.styleCursor) {\n interaction.target._doc.documentElement.style.cursor = '';\n }\n\n interaction.target = target;\n interaction.element = element;\n utils.copyAction(interaction.prepared, action);\n\n if (target && target.options.styleCursor) {\n var cursor = action ? actions[action.name].getCursor(action) : '';\n interaction.target._doc.documentElement.style.cursor = cursor;\n }\n\n signals.fire('prepared', { interaction: interaction });\n}\n\nInteraction.signals.on('stop', function (_ref4) {\n var interaction = _ref4.interaction;\n\n var target = interaction.target;\n\n if (target && target.options.styleCursor) {\n target._doc.documentElement.style.cursor = '';\n }\n});\n\nfunction withinInteractionLimit(interactable, element, action) {\n var options = interactable.options;\n var maxActions = options[action.name].max;\n var maxPerElement = options[action.name].maxPerElement;\n var activeInteractions = 0;\n var targetCount = 0;\n var targetElementCount = 0;\n\n // no actions if any of these values == 0\n if (!(maxActions && maxPerElement && autoStart.maxInteractions)) {\n return;\n }\n\n for (var _i = 0; _i < scope.interactions.length; _i++) {\n var _ref5;\n\n _ref5 = scope.interactions[_i];\n var interaction = _ref5;\n\n var otherAction = interaction.prepared.name;\n\n if (!interaction.interacting()) {\n continue;\n }\n\n activeInteractions++;\n\n if (activeInteractions >= autoStart.maxInteractions) {\n return false;\n }\n\n if (interaction.target !== interactable) {\n continue;\n }\n\n targetCount += otherAction === action.name | 0;\n\n if (targetCount >= maxActions) {\n return false;\n }\n\n if (interaction.element === element) {\n targetElementCount++;\n\n if (otherAction !== action.name || targetElementCount >= maxPerElement) {\n return false;\n }\n }\n }\n\n return autoStart.maxInteractions > 0;\n}\n\n/**\n * Returns or sets the maximum number of concurrent interactions allowed. By\n * default only 1 interaction is allowed at a time (for backwards\n * compatibility). To allow multiple interactions on the same Interactables and\n * elements, you need to enable it in the draggable, resizable and gesturable\n * `'max'` and `'maxPerElement'` options.\n *\n * @alias module:interact.maxInteractions\n *\n * @param {number} [newValue] Any number. newValue <= 0 means no interactions.\n */\ninteract.maxInteractions = function (newValue) {\n if (utils.is.number(newValue)) {\n autoStart.maxInteractions = newValue;\n\n return interact;\n }\n\n return autoStart.maxInteractions;\n};\n\nInteractable.settingsMethods.push('styleCursor');\nInteractable.settingsMethods.push('actionChecker');\nInteractable.settingsMethods.push('ignoreFrom');\nInteractable.settingsMethods.push('allowFrom');\n\ndefaultOptions.base.actionChecker = null;\ndefaultOptions.base.styleCursor = true;\n\nutils.extend(defaultOptions.perAction, autoStart.defaults.perAction);\n\nmodule.exports = autoStart;\n\n},{\"../Interactable\":4,\"../Interaction\":5,\"../actions/base\":6,\"../defaultOptions\":18,\"../interact\":21,\"../scope\":33,\"../utils\":44,\"../utils/Signals\":34,\"./InteractableMethods\":12}],14:[function(require,module,exports){\n'use strict';\n\nvar autoStart = require('./base');\nvar scope = require('../scope');\nvar is = require('../utils/is');\n\nvar _require = require('../utils/domUtils'),\n parentNode = _require.parentNode;\n\nautoStart.setActionDefaults(require('../actions/drag'));\n\nautoStart.signals.on('before-start', function (_ref) {\n var interaction = _ref.interaction,\n eventTarget = _ref.eventTarget,\n dx = _ref.dx,\n dy = _ref.dy;\n\n if (interaction.prepared.name !== 'drag') {\n return;\n }\n\n // check if a drag is in the correct axis\n var absX = Math.abs(dx);\n var absY = Math.abs(dy);\n var targetOptions = interaction.target.options.drag;\n var startAxis = targetOptions.startAxis;\n var currentAxis = absX > absY ? 'x' : absX < absY ? 'y' : 'xy';\n\n interaction.prepared.axis = targetOptions.lockAxis === 'start' ? currentAxis[0] // always lock to one axis even if currentAxis === 'xy'\n : targetOptions.lockAxis;\n\n // if the movement isn't in the startAxis of the interactable\n if (currentAxis !== 'xy' && startAxis !== 'xy' && startAxis !== currentAxis) {\n // cancel the prepared action\n interaction.prepared.name = null;\n\n // then try to get a drag from another ineractable\n var element = eventTarget;\n\n var getDraggable = function getDraggable(interactable) {\n if (interactable === interaction.target) {\n return;\n }\n\n var options = interaction.target.options.drag;\n\n if (!options.manualStart && interactable.testIgnoreAllow(options, element, eventTarget)) {\n\n var action = interactable.getAction(interaction.downPointer, interaction.downEvent, interaction, element);\n\n if (action && action.name === 'drag' && checkStartAxis(currentAxis, interactable) && autoStart.validateAction(action, interactable, element, eventTarget)) {\n\n return interactable;\n }\n }\n };\n\n // check all interactables\n while (is.element(element)) {\n var interactable = scope.interactables.forEachMatch(element, getDraggable);\n\n if (interactable) {\n interaction.prepared.name = 'drag';\n interaction.target = interactable;\n interaction.element = element;\n break;\n }\n\n element = parentNode(element);\n }\n }\n});\n\nfunction checkStartAxis(startAxis, interactable) {\n if (!interactable) {\n return false;\n }\n\n var thisAxis = interactable.options.drag.startAxis;\n\n return startAxis === 'xy' || thisAxis === 'xy' || thisAxis === startAxis;\n}\n\n},{\"../actions/drag\":7,\"../scope\":33,\"../utils/domUtils\":39,\"../utils/is\":46,\"./base\":13}],15:[function(require,module,exports){\n'use strict';\n\nrequire('./base').setActionDefaults(require('../actions/gesture'));\n\n},{\"../actions/gesture\":9,\"./base\":13}],16:[function(require,module,exports){\n'use strict';\n\nvar autoStart = require('./base');\nvar Interaction = require('../Interaction');\n\nautoStart.defaults.perAction.hold = 0;\nautoStart.defaults.perAction.delay = 0;\n\nInteraction.signals.on('new', function (interaction) {\n interaction.autoStartHoldTimer = null;\n});\n\nautoStart.signals.on('prepared', function (_ref) {\n var interaction = _ref.interaction;\n\n var hold = getHoldDuration(interaction);\n\n if (hold > 0) {\n interaction.autoStartHoldTimer = setTimeout(function () {\n interaction.start(interaction.prepared, interaction.target, interaction.element);\n }, hold);\n }\n});\n\nInteraction.signals.on('move', function (_ref2) {\n var interaction = _ref2.interaction,\n duplicate = _ref2.duplicate;\n\n if (interaction.pointerWasMoved && !duplicate) {\n clearTimeout(interaction.autoStartHoldTimer);\n }\n});\n\n// prevent regular down->move autoStart\nautoStart.signals.on('before-start', function (_ref3) {\n var interaction = _ref3.interaction;\n\n var hold = getHoldDuration(interaction);\n\n if (hold > 0) {\n interaction.prepared.name = null;\n }\n});\n\nfunction getHoldDuration(interaction) {\n var actionName = interaction.prepared && interaction.prepared.name;\n\n if (!actionName) {\n return null;\n }\n\n var options = interaction.target.options;\n\n return options[actionName].hold || options[actionName].delay;\n}\n\nmodule.exports = {\n getHoldDuration: getHoldDuration\n};\n\n},{\"../Interaction\":5,\"./base\":13}],17:[function(require,module,exports){\n'use strict';\n\nrequire('./base').setActionDefaults(require('../actions/resize'));\n\n},{\"../actions/resize\":10,\"./base\":13}],18:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n base: {\n accept: null,\n preventDefault: 'auto',\n deltaSource: 'page'\n },\n\n perAction: {\n origin: { x: 0, y: 0 },\n\n inertia: {\n enabled: false,\n resistance: 10, // the lambda in exponential decay\n minSpeed: 100, // target speed must be above this for inertia to start\n endSpeed: 10, // the speed at which inertia is slow enough to stop\n allowResume: true, // allow resuming an action in inertia phase\n smoothEndDuration: 300 // animate to snap/restrict endOnly if there's no inertia\n }\n }\n};\n\n},{}],19:[function(require,module,exports){\n'use strict';\n\n/* browser entry point */\n\n// inertia\nrequire('./inertia');\n\n// modifiers\nrequire('./modifiers/snap');\nrequire('./modifiers/restrict');\n\n// pointerEvents\nrequire('./pointerEvents/base');\nrequire('./pointerEvents/holdRepeat');\nrequire('./pointerEvents/interactableTargets');\n\n// autoStart hold\nrequire('./autoStart/hold');\n\n// actions\nrequire('./actions/gesture');\nrequire('./actions/resize');\nrequire('./actions/drag');\nrequire('./actions/drop');\n\n// load these modifiers after resize is loaded\nrequire('./modifiers/snapSize');\nrequire('./modifiers/restrictEdges');\nrequire('./modifiers/restrictSize');\n\n// autoStart actions\nrequire('./autoStart/gesture');\nrequire('./autoStart/resize');\nrequire('./autoStart/drag');\n\n// Interactable preventDefault setting\nrequire('./interactablePreventDefault.js');\n\n// autoScroll\nrequire('./autoScroll');\n\n// export interact\nmodule.exports = require('./interact');\n\n},{\"./actions/drag\":7,\"./actions/drop\":8,\"./actions/gesture\":9,\"./actions/resize\":10,\"./autoScroll\":11,\"./autoStart/drag\":14,\"./autoStart/gesture\":15,\"./autoStart/hold\":16,\"./autoStart/resize\":17,\"./inertia\":20,\"./interact\":21,\"./interactablePreventDefault.js\":22,\"./modifiers/restrict\":24,\"./modifiers/restrictEdges\":25,\"./modifiers/restrictSize\":26,\"./modifiers/snap\":27,\"./modifiers/snapSize\":28,\"./pointerEvents/base\":30,\"./pointerEvents/holdRepeat\":31,\"./pointerEvents/interactableTargets\":32}],20:[function(require,module,exports){\n'use strict';\n\nvar InteractEvent = require('./InteractEvent');\nvar Interaction = require('./Interaction');\nvar modifiers = require('./modifiers/base');\nvar utils = require('./utils');\nvar animationFrame = require('./utils/raf');\n\nInteraction.signals.on('new', function (interaction) {\n interaction.inertiaStatus = {\n active: false,\n smoothEnd: false,\n allowResume: false,\n\n startEvent: null,\n upCoords: {},\n\n xe: 0, ye: 0,\n sx: 0, sy: 0,\n\n t0: 0,\n vx0: 0, vys: 0,\n duration: 0,\n\n lambda_v0: 0,\n one_ve_v0: 0,\n i: null\n };\n\n interaction.boundInertiaFrame = function () {\n return inertiaFrame.apply(interaction);\n };\n interaction.boundSmoothEndFrame = function () {\n return smoothEndFrame.apply(interaction);\n };\n});\n\nInteraction.signals.on('down', function (_ref) {\n var interaction = _ref.interaction,\n event = _ref.event,\n pointer = _ref.pointer,\n eventTarget = _ref.eventTarget;\n\n var status = interaction.inertiaStatus;\n\n // Check if the down event hits the current inertia target\n if (status.active) {\n var element = eventTarget;\n\n // climb up the DOM tree from the event target\n while (utils.is.element(element)) {\n\n // if interaction element is the current inertia target element\n if (element === interaction.element) {\n // stop inertia\n animationFrame.cancel(status.i);\n status.active = false;\n interaction.simulation = null;\n\n // update pointers to the down event's coordinates\n interaction.updatePointer(pointer);\n utils.setCoords(interaction.curCoords, interaction.pointers);\n\n // fire appropriate signals\n var signalArg = { interaction: interaction };\n Interaction.signals.fire('before-action-move', signalArg);\n Interaction.signals.fire('action-resume', signalArg);\n\n // fire a reume event\n var resumeEvent = new InteractEvent(interaction, event, interaction.prepared.name, 'inertiaresume', interaction.element);\n\n interaction.target.fire(resumeEvent);\n interaction.prevEvent = resumeEvent;\n modifiers.resetStatuses(interaction.modifierStatuses);\n\n utils.copyCoords(interaction.prevCoords, interaction.curCoords);\n break;\n }\n\n element = utils.parentNode(element);\n }\n }\n});\n\nInteraction.signals.on('up', function (_ref2) {\n var interaction = _ref2.interaction,\n event = _ref2.event;\n\n var status = interaction.inertiaStatus;\n\n if (!interaction.interacting() || status.active) {\n return;\n }\n\n var target = interaction.target;\n var options = target && target.options;\n var inertiaOptions = options && interaction.prepared.name && options[interaction.prepared.name].inertia;\n\n var now = new Date().getTime();\n var statuses = {};\n var page = utils.extend({}, interaction.curCoords.page);\n var pointerSpeed = interaction.pointerDelta.client.speed;\n\n var smoothEnd = false;\n var modifierResult = void 0;\n\n // check if inertia should be started\n var inertiaPossible = inertiaOptions && inertiaOptions.enabled && interaction.prepared.name !== 'gesture' && event !== status.startEvent;\n\n var inertia = inertiaPossible && now - interaction.curCoords.timeStamp < 50 && pointerSpeed > inertiaOptions.minSpeed && pointerSpeed > inertiaOptions.endSpeed;\n\n var modifierArg = {\n interaction: interaction,\n pageCoords: page,\n statuses: statuses,\n preEnd: true,\n requireEndOnly: true\n };\n\n // smoothEnd\n if (inertiaPossible && !inertia) {\n modifiers.resetStatuses(statuses);\n\n modifierResult = modifiers.setAll(modifierArg);\n\n if (modifierResult.shouldMove && modifierResult.locked) {\n smoothEnd = true;\n }\n }\n\n if (!(inertia || smoothEnd)) {\n return;\n }\n\n utils.copyCoords(status.upCoords, interaction.curCoords);\n\n interaction.pointers[0] = status.startEvent = new InteractEvent(interaction, event, interaction.prepared.name, 'inertiastart', interaction.element);\n\n status.t0 = now;\n\n status.active = true;\n status.allowResume = inertiaOptions.allowResume;\n interaction.simulation = status;\n\n target.fire(status.startEvent);\n\n if (inertia) {\n status.vx0 = interaction.pointerDelta.client.vx;\n status.vy0 = interaction.pointerDelta.client.vy;\n status.v0 = pointerSpeed;\n\n calcInertia(interaction, status);\n\n utils.extend(page, interaction.curCoords.page);\n\n page.x += status.xe;\n page.y += status.ye;\n\n modifiers.resetStatuses(statuses);\n\n modifierResult = modifiers.setAll(modifierArg);\n\n status.modifiedXe += modifierResult.dx;\n status.modifiedYe += modifierResult.dy;\n\n status.i = animationFrame.request(interaction.boundInertiaFrame);\n } else {\n status.smoothEnd = true;\n status.xe = modifierResult.dx;\n status.ye = modifierResult.dy;\n\n status.sx = status.sy = 0;\n\n status.i = animationFrame.request(interaction.boundSmoothEndFrame);\n }\n});\n\nInteraction.signals.on('stop-active', function (_ref3) {\n var interaction = _ref3.interaction;\n\n var status = interaction.inertiaStatus;\n\n if (status.active) {\n animationFrame.cancel(status.i);\n status.active = false;\n interaction.simulation = null;\n }\n});\n\nfunction calcInertia(interaction, status) {\n var inertiaOptions = interaction.target.options[interaction.prepared.name].inertia;\n var lambda = inertiaOptions.resistance;\n var inertiaDur = -Math.log(inertiaOptions.endSpeed / status.v0) / lambda;\n\n status.x0 = interaction.prevEvent.pageX;\n status.y0 = interaction.prevEvent.pageY;\n status.t0 = status.startEvent.timeStamp / 1000;\n status.sx = status.sy = 0;\n\n status.modifiedXe = status.xe = (status.vx0 - inertiaDur) / lambda;\n status.modifiedYe = status.ye = (status.vy0 - inertiaDur) / lambda;\n status.te = inertiaDur;\n\n status.lambda_v0 = lambda / status.v0;\n status.one_ve_v0 = 1 - inertiaOptions.endSpeed / status.v0;\n}\n\nfunction inertiaFrame() {\n updateInertiaCoords(this);\n utils.setCoordDeltas(this.pointerDelta, this.prevCoords, this.curCoords);\n\n var status = this.inertiaStatus;\n var options = this.target.options[this.prepared.name].inertia;\n var lambda = options.resistance;\n var t = new Date().getTime() / 1000 - status.t0;\n\n if (t < status.te) {\n\n var progress = 1 - (Math.exp(-lambda * t) - status.lambda_v0) / status.one_ve_v0;\n\n if (status.modifiedXe === status.xe && status.modifiedYe === status.ye) {\n status.sx = status.xe * progress;\n status.sy = status.ye * progress;\n } else {\n var quadPoint = utils.getQuadraticCurvePoint(0, 0, status.xe, status.ye, status.modifiedXe, status.modifiedYe, progress);\n\n status.sx = quadPoint.x;\n status.sy = quadPoint.y;\n }\n\n this.doMove();\n\n status.i = animationFrame.request(this.boundInertiaFrame);\n } else {\n status.sx = status.modifiedXe;\n status.sy = status.modifiedYe;\n\n this.doMove();\n this.end(status.startEvent);\n status.active = false;\n this.simulation = null;\n }\n\n utils.copyCoords(this.prevCoords, this.curCoords);\n}\n\nfunction smoothEndFrame() {\n updateInertiaCoords(this);\n\n var status = this.inertiaStatus;\n var t = new Date().getTime() - status.t0;\n var duration = this.target.options[this.prepared.name].inertia.smoothEndDuration;\n\n if (t < duration) {\n status.sx = utils.easeOutQuad(t, 0, status.xe, duration);\n status.sy = utils.easeOutQuad(t, 0, status.ye, duration);\n\n this.pointerMove(status.startEvent, status.startEvent);\n\n status.i = animationFrame.request(this.boundSmoothEndFrame);\n } else {\n status.sx = status.xe;\n status.sy = status.ye;\n\n this.pointerMove(status.startEvent, status.startEvent);\n this.end(status.startEvent);\n\n status.smoothEnd = status.active = false;\n this.simulation = null;\n }\n}\n\nfunction updateInertiaCoords(interaction) {\n var status = interaction.inertiaStatus;\n\n // return if inertia isn't running\n if (!status.active) {\n return;\n }\n\n var pageUp = status.upCoords.page;\n var clientUp = status.upCoords.client;\n\n utils.setCoords(interaction.curCoords, [{\n pageX: pageUp.x + status.sx,\n pageY: pageUp.y + status.sy,\n clientX: clientUp.x + status.sx,\n clientY: clientUp.y + status.sy\n }]);\n}\n\n},{\"./InteractEvent\":3,\"./Interaction\":5,\"./modifiers/base\":23,\"./utils\":44,\"./utils/raf\":50}],21:[function(require,module,exports){\n'use strict';\n\n/** @module interact */\n\nvar browser = require('./utils/browser');\nvar events = require('./utils/events');\nvar utils = require('./utils');\nvar scope = require('./scope');\nvar Interactable = require('./Interactable');\nvar Interaction = require('./Interaction');\n\nvar globalEvents = {};\n\n/**\n * ```js\n * interact('#draggable').draggable(true);\n *\n * var rectables = interact('rect');\n * rectables\n * .gesturable(true)\n * .on('gesturemove', function (event) {\n * // ...\n * });\n * ```\n *\n * The methods of this variable can be used to set elements as interactables\n * and also to change various default settings.\n *\n * Calling it as a function and passing an element or a valid CSS selector\n * string returns an Interactable object which has various methods to configure\n * it.\n *\n * @global\n *\n * @param {Element | string} element The HTML or SVG Element to interact with\n * or CSS selector\n * @return {Interactable}\n */\nfunction interact(element, options) {\n var interactable = scope.interactables.get(element, options);\n\n if (!interactable) {\n interactable = new Interactable(element, options);\n interactable.events.global = globalEvents;\n }\n\n return interactable;\n}\n\n/**\n * Check if an element or selector has been set with the {@link interact}\n * function\n *\n * @alias module:interact.isSet\n *\n * @param {Element} element The Element being searched for\n * @return {boolean} Indicates if the element or CSS selector was previously\n * passed to interact\n*/\ninteract.isSet = function (element, options) {\n return scope.interactables.indexOfElement(element, options && options.context) !== -1;\n};\n\n/**\n * Add a global listener for an InteractEvent or adds a DOM event to `document`\n *\n * @alias module:interact.on\n *\n * @param {string | array | object} type The types of events to listen for\n * @param {function} listener The function event (s)\n * @param {object | boolean} [options] object or useCapture flag for\n * addEventListener\n * @return {object} interact\n */\ninteract.on = function (type, listener, options) {\n if (utils.is.string(type) && type.search(' ') !== -1) {\n type = type.trim().split(/ +/);\n }\n\n if (utils.is.array(type)) {\n for (var _i = 0; _i < type.length; _i++) {\n var _ref;\n\n _ref = type[_i];\n var eventType = _ref;\n\n interact.on(eventType, listener, options);\n }\n\n return interact;\n }\n\n if (utils.is.object(type)) {\n for (var prop in type) {\n interact.on(prop, type[prop], listener);\n }\n\n return interact;\n }\n\n // if it is an InteractEvent type, add listener to globalEvents\n if (utils.contains(Interactable.eventTypes, type)) {\n // if this type of event was never bound\n if (!globalEvents[type]) {\n globalEvents[type] = [listener];\n } else {\n globalEvents[type].push(listener);\n }\n }\n // If non InteractEvent type, addEventListener to document\n else {\n events.add(scope.document, type, listener, { options: options });\n }\n\n return interact;\n};\n\n/**\n * Removes a global InteractEvent listener or DOM event from `document`\n *\n * @alias module:interact.off\n *\n * @param {string | array | object} type The types of events that were listened\n * for\n * @param {function} listener The listener function to be removed\n * @param {object | boolean} options [options] object or useCapture flag for\n * removeEventListener\n * @return {object} interact\n */\ninteract.off = function (type, listener, options) {\n if (utils.is.string(type) && type.search(' ') !== -1) {\n type = type.trim().split(/ +/);\n }\n\n if (utils.is.array(type)) {\n for (var _i2 = 0; _i2 < type.length; _i2++) {\n var _ref2;\n\n _ref2 = type[_i2];\n var eventType = _ref2;\n\n interact.off(eventType, listener, options);\n }\n\n return interact;\n }\n\n if (utils.is.object(type)) {\n for (var prop in type) {\n interact.off(prop, type[prop], listener);\n }\n\n return interact;\n }\n\n if (!utils.contains(Interactable.eventTypes, type)) {\n events.remove(scope.document, type, listener, options);\n } else {\n var index = void 0;\n\n if (type in globalEvents && (index = globalEvents[type].indexOf(listener)) !== -1) {\n globalEvents[type].splice(index, 1);\n }\n }\n\n return interact;\n};\n\n/**\n * Returns an object which exposes internal data\n\n * @alias module:interact.debug\n *\n * @return {object} An object with properties that outline the current state\n * and expose internal functions and variables\n */\ninteract.debug = function () {\n return scope;\n};\n\n// expose the functions used to calculate multi-touch properties\ninteract.getPointerAverage = utils.pointerAverage;\ninteract.getTouchBBox = utils.touchBBox;\ninteract.getTouchDistance = utils.touchDistance;\ninteract.getTouchAngle = utils.touchAngle;\n\ninteract.getElementRect = utils.getElementRect;\ninteract.getElementClientRect = utils.getElementClientRect;\ninteract.matchesSelector = utils.matchesSelector;\ninteract.closest = utils.closest;\n\n/**\n * @alias module:interact.supportsTouch\n *\n * @return {boolean} Whether or not the browser supports touch input\n */\ninteract.supportsTouch = function () {\n return browser.supportsTouch;\n};\n\n/**\n * @alias module:interact.supportsPointerEvent\n *\n * @return {boolean} Whether or not the browser supports PointerEvents\n */\ninteract.supportsPointerEvent = function () {\n return browser.supportsPointerEvent;\n};\n\n/**\n * Cancels all interactions (end events are not fired)\n *\n * @alias module:interact.stop\n *\n * @param {Event} event An event on which to call preventDefault()\n * @return {object} interact\n */\ninteract.stop = function (event) {\n for (var i = scope.interactions.length - 1; i >= 0; i--) {\n scope.interactions[i].stop(event);\n }\n\n return interact;\n};\n\n/**\n * Returns or sets the distance the pointer must be moved before an action\n * sequence occurs. This also affects tolerance for tap events.\n *\n * @alias module:interact.pointerMoveTolerance\n *\n * @param {number} [newValue] The movement from the start position must be greater than this value\n * @return {interact | number}\n */\ninteract.pointerMoveTolerance = function (newValue) {\n if (utils.is.number(newValue)) {\n Interaction.pointerMoveTolerance = newValue;\n\n return interact;\n }\n\n return Interaction.pointerMoveTolerance;\n};\n\ninteract.addDocument = scope.addDocument;\ninteract.removeDocument = scope.removeDocument;\n\nscope.interact = interact;\n\nmodule.exports = interact;\n\n},{\"./Interactable\":4,\"./Interaction\":5,\"./scope\":33,\"./utils\":44,\"./utils/browser\":36,\"./utils/events\":40}],22:[function(require,module,exports){\n'use strict';\n\nvar Interactable = require('./Interactable');\nvar Interaction = require('./Interaction');\nvar scope = require('./scope');\nvar is = require('./utils/is');\nvar events = require('./utils/events');\nvar browser = require('./utils/browser');\n\nvar _require = require('./utils/domUtils'),\n nodeContains = _require.nodeContains,\n matchesSelector = _require.matchesSelector;\n\n/**\n * Returns or sets whether to prevent the browser's default behaviour in\n * response to pointer events. Can be set to:\n * - `'always'` to always prevent\n * - `'never'` to never prevent\n * - `'auto'` to let interact.js try to determine what would be best\n *\n * @param {string} [newValue] `true`, `false` or `'auto'`\n * @return {string | Interactable} The current setting or this Interactable\n */\n\n\nInteractable.prototype.preventDefault = function (newValue) {\n if (/^(always|never|auto)$/.test(newValue)) {\n this.options.preventDefault = newValue;\n return this;\n }\n\n if (is.bool(newValue)) {\n this.options.preventDefault = newValue ? 'always' : 'never';\n return this;\n }\n\n return this.options.preventDefault;\n};\n\nInteractable.prototype.checkAndPreventDefault = function (event) {\n var setting = this.options.preventDefault;\n\n if (setting === 'never') {\n return;\n }\n\n if (setting === 'always') {\n event.preventDefault();\n return;\n }\n\n // setting === 'auto'\n\n // don't preventDefault of touch{start,move} events if the browser supports passive\n // events listeners. CSS touch-action and user-selecct should be used instead\n if (events.supportsPassive && /^touch(start|move)$/.test(event.type) && !browser.isIOS) {\n return;\n }\n\n // don't preventDefault of pointerdown events\n if (/^(mouse|pointer|touch)*(down|start)/i.test(event.type)) {\n return;\n }\n\n // don't preventDefault on editable elements\n if (is.element(event.target) && matchesSelector(event.target, 'input,select,textarea,[contenteditable=true],[contenteditable=true] *')) {\n return;\n }\n\n event.preventDefault();\n};\n\nfunction onInteractionEvent(_ref) {\n var interaction = _ref.interaction,\n event = _ref.event;\n\n if (interaction.target) {\n interaction.target.checkAndPreventDefault(event);\n }\n}\n\nvar _arr = ['down', 'move', 'up', 'cancel'];\nfor (var _i = 0; _i < _arr.length; _i++) {\n var eventSignal = _arr[_i];\n Interaction.signals.on(eventSignal, onInteractionEvent);\n}\n\n// prevent native HTML5 drag on interact.js target elements\nInteraction.docEvents.dragstart = function preventNativeDrag(event) {\n for (var _i2 = 0; _i2 < scope.interactions.length; _i2++) {\n var _ref2;\n\n _ref2 = scope.interactions[_i2];\n var interaction = _ref2;\n\n\n if (interaction.element && (interaction.element === event.target || nodeContains(interaction.element, event.target))) {\n\n interaction.target.checkAndPreventDefault(event);\n return;\n }\n }\n};\n\n},{\"./Interactable\":4,\"./Interaction\":5,\"./scope\":33,\"./utils/browser\":36,\"./utils/domUtils\":39,\"./utils/events\":40,\"./utils/is\":46}],23:[function(require,module,exports){\n'use strict';\n\nvar InteractEvent = require('../InteractEvent');\nvar Interaction = require('../Interaction');\nvar extend = require('../utils/extend');\n\nvar modifiers = {\n names: [],\n\n setOffsets: function setOffsets(arg) {\n var interaction = arg.interaction,\n page = arg.pageCoords;\n var target = interaction.target,\n element = interaction.element,\n startOffset = interaction.startOffset;\n\n var rect = target.getRect(element);\n\n if (rect) {\n startOffset.left = page.x - rect.left;\n startOffset.top = page.y - rect.top;\n\n startOffset.right = rect.right - page.x;\n startOffset.bottom = rect.bottom - page.y;\n\n if (!('width' in rect)) {\n rect.width = rect.right - rect.left;\n }\n if (!('height' in rect)) {\n rect.height = rect.bottom - rect.top;\n }\n } else {\n startOffset.left = startOffset.top = startOffset.right = startOffset.bottom = 0;\n }\n\n arg.rect = rect;\n arg.interactable = target;\n arg.element = element;\n\n for (var _i = 0; _i < modifiers.names.length; _i++) {\n var _ref;\n\n _ref = modifiers.names[_i];\n var modifierName = _ref;\n\n arg.options = target.options[interaction.prepared.name][modifierName];\n\n if (!arg.options) {\n continue;\n }\n\n interaction.modifierOffsets[modifierName] = modifiers[modifierName].setOffset(arg);\n }\n },\n\n setAll: function setAll(arg) {\n var interaction = arg.interaction,\n statuses = arg.statuses,\n preEnd = arg.preEnd,\n requireEndOnly = arg.requireEndOnly;\n\n var result = {\n dx: 0,\n dy: 0,\n changed: false,\n locked: false,\n shouldMove: true\n };\n\n arg.modifiedCoords = extend({}, arg.pageCoords);\n\n for (var _i2 = 0; _i2 < modifiers.names.length; _i2++) {\n var _ref2;\n\n _ref2 = modifiers.names[_i2];\n var modifierName = _ref2;\n\n var modifier = modifiers[modifierName];\n var options = interaction.target.options[interaction.prepared.name][modifierName];\n\n if (!shouldDo(options, preEnd, requireEndOnly)) {\n continue;\n }\n\n arg.status = arg.status = statuses[modifierName];\n arg.options = options;\n arg.offset = arg.interaction.modifierOffsets[modifierName];\n\n modifier.set(arg);\n\n if (arg.status.locked) {\n arg.modifiedCoords.x += arg.status.dx;\n arg.modifiedCoords.y += arg.status.dy;\n\n result.dx += arg.status.dx;\n result.dy += arg.status.dy;\n\n result.locked = true;\n }\n }\n\n // a move should be fired if:\n // - there are no modifiers enabled,\n // - no modifiers are \"locked\" i.e. have changed the pointer's coordinates, or\n // - the locked coords have changed since the last pointer move\n result.shouldMove = !arg.status || !result.locked || arg.status.changed;\n\n return result;\n },\n\n resetStatuses: function resetStatuses(statuses) {\n for (var _i3 = 0; _i3 < modifiers.names.length; _i3++) {\n var _ref3;\n\n _ref3 = modifiers.names[_i3];\n var modifierName = _ref3;\n\n var status = statuses[modifierName] || {};\n\n status.dx = status.dy = 0;\n status.modifiedX = status.modifiedY = NaN;\n status.locked = false;\n status.changed = true;\n\n statuses[modifierName] = status;\n }\n\n return statuses;\n },\n\n start: function start(_ref4, signalName) {\n var interaction = _ref4.interaction;\n\n var arg = {\n interaction: interaction,\n pageCoords: (signalName === 'action-resume' ? interaction.curCoords : interaction.startCoords).page,\n startOffset: interaction.startOffset,\n statuses: interaction.modifierStatuses,\n preEnd: false,\n requireEndOnly: false\n };\n\n modifiers.setOffsets(arg);\n modifiers.resetStatuses(arg.statuses);\n\n arg.pageCoords = extend({}, interaction.startCoords.page);\n interaction.modifierResult = modifiers.setAll(arg);\n },\n\n beforeMove: function beforeMove(_ref5) {\n var interaction = _ref5.interaction,\n preEnd = _ref5.preEnd,\n interactingBeforeMove = _ref5.interactingBeforeMove;\n\n var modifierResult = modifiers.setAll({\n interaction: interaction,\n preEnd: preEnd,\n pageCoords: interaction.curCoords.page,\n statuses: interaction.modifierStatuses,\n requireEndOnly: false\n });\n\n // don't fire an action move if a modifier would keep the event in the same\n // cordinates as before\n if (!modifierResult.shouldMove && interactingBeforeMove) {\n interaction._dontFireMove = true;\n }\n\n interaction.modifierResult = modifierResult;\n },\n\n end: function end(_ref6) {\n var interaction = _ref6.interaction,\n event = _ref6.event;\n\n for (var _i4 = 0; _i4 < modifiers.names.length; _i4++) {\n var _ref7;\n\n _ref7 = modifiers.names[_i4];\n var modifierName = _ref7;\n\n var options = interaction.target.options[interaction.prepared.name][modifierName];\n\n // if the endOnly option is true for any modifier\n if (shouldDo(options, true, true)) {\n // fire a move event at the modified coordinates\n interaction.doMove({ event: event, preEnd: true });\n break;\n }\n }\n },\n\n setXY: function setXY(arg) {\n var iEvent = arg.iEvent,\n interaction = arg.interaction;\n\n var modifierArg = extend({}, arg);\n\n for (var i = 0; i < modifiers.names.length; i++) {\n var modifierName = modifiers.names[i];\n modifierArg.options = interaction.target.options[interaction.prepared.name][modifierName];\n\n if (!modifierArg.options) {\n continue;\n }\n\n var modifier = modifiers[modifierName];\n\n modifierArg.status = interaction.modifierStatuses[modifierName];\n\n iEvent[modifierName] = modifier.modifyCoords(modifierArg);\n }\n }\n};\n\nInteraction.signals.on('new', function (interaction) {\n interaction.startOffset = { left: 0, right: 0, top: 0, bottom: 0 };\n interaction.modifierOffsets = {};\n interaction.modifierStatuses = modifiers.resetStatuses({});\n interaction.modifierResult = null;\n});\n\nInteraction.signals.on('action-start', modifiers.start);\nInteraction.signals.on('action-resume', modifiers.start);\nInteraction.signals.on('before-action-move', modifiers.beforeMove);\nInteraction.signals.on('action-end', modifiers.end);\n\nInteractEvent.signals.on('set-xy', modifiers.setXY);\n\nfunction shouldDo(options, preEnd, requireEndOnly) {\n return options && options.enabled && (preEnd || !options.endOnly) && (!requireEndOnly || options.endOnly);\n}\n\nmodule.exports = modifiers;\n\n},{\"../InteractEvent\":3,\"../Interaction\":5,\"../utils/extend\":41}],24:[function(require,module,exports){\n'use strict';\n\nvar modifiers = require('./base');\nvar utils = require('../utils');\nvar defaultOptions = require('../defaultOptions');\n\nvar restrict = {\n defaults: {\n enabled: false,\n endOnly: false,\n restriction: null,\n elementRect: null\n },\n\n setOffset: function setOffset(_ref) {\n var rect = _ref.rect,\n startOffset = _ref.startOffset,\n options = _ref.options;\n\n var elementRect = options && options.elementRect;\n var offset = {};\n\n if (rect && elementRect) {\n offset.left = startOffset.left - rect.width * elementRect.left;\n offset.top = startOffset.top - rect.height * elementRect.top;\n\n offset.right = startOffset.right - rect.width * (1 - elementRect.right);\n offset.bottom = startOffset.bottom - rect.height * (1 - elementRect.bottom);\n } else {\n offset.left = offset.top = offset.right = offset.bottom = 0;\n }\n\n return offset;\n },\n\n set: function set(_ref2) {\n var modifiedCoords = _ref2.modifiedCoords,\n interaction = _ref2.interaction,\n status = _ref2.status,\n options = _ref2.options;\n\n if (!options) {\n return status;\n }\n\n var page = status.useStatusXY ? { x: status.x, y: status.y } : utils.extend({}, modifiedCoords);\n\n var restriction = getRestrictionRect(options.restriction, interaction, page);\n\n if (!restriction) {\n return status;\n }\n\n status.dx = 0;\n status.dy = 0;\n status.locked = false;\n\n var rect = restriction;\n var modifiedX = page.x;\n var modifiedY = page.y;\n\n var offset = interaction.modifierOffsets.restrict;\n\n // object is assumed to have\n // x, y, width, height or\n // left, top, right, bottom\n if ('x' in restriction && 'y' in restriction) {\n modifiedX = Math.max(Math.min(rect.x + rect.width - offset.right, page.x), rect.x + offset.left);\n modifiedY = Math.max(Math.min(rect.y + rect.height - offset.bottom, page.y), rect.y + offset.top);\n } else {\n modifiedX = Math.max(Math.min(rect.right - offset.right, page.x), rect.left + offset.left);\n modifiedY = Math.max(Math.min(rect.bottom - offset.bottom, page.y), rect.top + offset.top);\n }\n\n status.dx = modifiedX - page.x;\n status.dy = modifiedY - page.y;\n\n status.changed = status.modifiedX !== modifiedX || status.modifiedY !== modifiedY;\n status.locked = !!(status.dx || status.dy);\n\n status.modifiedX = modifiedX;\n status.modifiedY = modifiedY;\n },\n\n modifyCoords: function modifyCoords(_ref3) {\n var page = _ref3.page,\n client = _ref3.client,\n status = _ref3.status,\n phase = _ref3.phase,\n options = _ref3.options;\n\n var elementRect = options && options.elementRect;\n\n if (options && options.enabled && !(phase === 'start' && elementRect && status.locked)) {\n\n if (status.locked) {\n page.x += status.dx;\n page.y += status.dy;\n client.x += status.dx;\n client.y += status.dy;\n\n return {\n dx: status.dx,\n dy: status.dy\n };\n }\n }\n },\n\n getRestrictionRect: getRestrictionRect\n};\n\nfunction getRestrictionRect(value, interaction, page) {\n if (utils.is.function(value)) {\n return utils.resolveRectLike(value, interaction.target, interaction.element, [page.x, page.y, interaction]);\n } else {\n return utils.resolveRectLike(value, interaction.target, interaction.element);\n }\n}\n\nmodifiers.restrict = restrict;\nmodifiers.names.push('restrict');\n\ndefaultOptions.perAction.restrict = restrict.defaults;\n\nmodule.exports = restrict;\n\n},{\"../defaultOptions\":18,\"../utils\":44,\"./base\":23}],25:[function(require,module,exports){\n'use strict';\n\n// This module adds the options.resize.restrictEdges setting which sets min and\n// max for the top, left, bottom and right edges of the target being resized.\n//\n// interact(target).resize({\n// edges: { top: true, left: true },\n// restrictEdges: {\n// inner: { top: 200, left: 200, right: 400, bottom: 400 },\n// outer: { top: 0, left: 0, right: 600, bottom: 600 },\n// },\n// });\n\nvar modifiers = require('./base');\nvar utils = require('../utils');\nvar rectUtils = require('../utils/rect');\nvar defaultOptions = require('../defaultOptions');\nvar resize = require('../actions/resize');\n\nvar _require = require('./restrict'),\n getRestrictionRect = _require.getRestrictionRect;\n\nvar noInner = { top: +Infinity, left: +Infinity, bottom: -Infinity, right: -Infinity };\nvar noOuter = { top: -Infinity, left: -Infinity, bottom: +Infinity, right: +Infinity };\n\nvar restrictEdges = {\n defaults: {\n enabled: false,\n endOnly: false,\n min: null,\n max: null,\n offset: null\n },\n\n setOffset: function setOffset(_ref) {\n var interaction = _ref.interaction,\n startOffset = _ref.startOffset,\n options = _ref.options;\n\n if (!options) {\n return utils.extend({}, startOffset);\n }\n\n var offset = getRestrictionRect(options.offset, interaction, interaction.startCoords.page);\n\n if (offset) {\n return {\n top: startOffset.top + offset.y,\n left: startOffset.left + offset.x,\n bottom: startOffset.bottom + offset.y,\n right: startOffset.right + offset.x\n };\n }\n\n return startOffset;\n },\n\n set: function set(_ref2) {\n var modifiedCoords = _ref2.modifiedCoords,\n interaction = _ref2.interaction,\n status = _ref2.status,\n offset = _ref2.offset,\n options = _ref2.options;\n\n var edges = interaction.prepared.linkedEdges || interaction.prepared.edges;\n\n if (!interaction.interacting() || !edges) {\n return;\n }\n\n var page = status.useStatusXY ? { x: status.x, y: status.y } : utils.extend({}, modifiedCoords);\n var inner = rectUtils.xywhToTlbr(getRestrictionRect(options.inner, interaction, page)) || noInner;\n var outer = rectUtils.xywhToTlbr(getRestrictionRect(options.outer, interaction, page)) || noOuter;\n\n var modifiedX = page.x;\n var modifiedY = page.y;\n\n status.dx = 0;\n status.dy = 0;\n status.locked = false;\n\n if (edges.top) {\n modifiedY = Math.min(Math.max(outer.top + offset.top, page.y), inner.top + offset.top);\n } else if (edges.bottom) {\n modifiedY = Math.max(Math.min(outer.bottom - offset.bottom, page.y), inner.bottom - offset.bottom);\n }\n if (edges.left) {\n modifiedX = Math.min(Math.max(outer.left + offset.left, page.x), inner.left + offset.left);\n } else if (edges.right) {\n modifiedX = Math.max(Math.min(outer.right - offset.right, page.x), inner.right - offset.right);\n }\n\n status.dx = modifiedX - page.x;\n status.dy = modifiedY - page.y;\n\n status.changed = status.modifiedX !== modifiedX || status.modifiedY !== modifiedY;\n status.locked = !!(status.dx || status.dy);\n\n status.modifiedX = modifiedX;\n status.modifiedY = modifiedY;\n },\n\n modifyCoords: function modifyCoords(_ref3) {\n var page = _ref3.page,\n client = _ref3.client,\n status = _ref3.status,\n phase = _ref3.phase,\n options = _ref3.options;\n\n if (options && options.enabled && !(phase === 'start' && status.locked)) {\n\n if (status.locked) {\n page.x += status.dx;\n page.y += status.dy;\n client.x += status.dx;\n client.y += status.dy;\n\n return {\n dx: status.dx,\n dy: status.dy\n };\n }\n }\n },\n\n noInner: noInner,\n noOuter: noOuter,\n getRestrictionRect: getRestrictionRect\n};\n\nmodifiers.restrictEdges = restrictEdges;\nmodifiers.names.push('restrictEdges');\n\ndefaultOptions.perAction.restrictEdges = restrictEdges.defaults;\nresize.defaults.restrictEdges = restrictEdges.defaults;\n\nmodule.exports = restrictEdges;\n\n},{\"../actions/resize\":10,\"../defaultOptions\":18,\"../utils\":44,\"../utils/rect\":51,\"./base\":23,\"./restrict\":24}],26:[function(require,module,exports){\n'use strict';\n\n// This module adds the options.resize.restrictSize setting which sets min and\n// max width and height for the target being resized.\n//\n// interact(target).resize({\n// edges: { top: true, left: true },\n// restrictSize: {\n// min: { width: -600, height: -600 },\n// max: { width: 600, height: 600 },\n// },\n// });\n\nvar modifiers = require('./base');\nvar restrictEdges = require('./restrictEdges');\nvar utils = require('../utils');\nvar rectUtils = require('../utils/rect');\nvar defaultOptions = require('../defaultOptions');\nvar resize = require('../actions/resize');\n\nvar noMin = { width: -Infinity, height: -Infinity };\nvar noMax = { width: +Infinity, height: +Infinity };\n\nvar restrictSize = {\n defaults: {\n enabled: false,\n endOnly: false,\n min: null,\n max: null\n },\n\n setOffset: function setOffset(_ref) {\n var interaction = _ref.interaction;\n\n return interaction.startOffset;\n },\n\n set: function set(arg) {\n var interaction = arg.interaction,\n options = arg.options;\n\n var edges = interaction.prepared.linkedEdges || interaction.prepared.edges;\n\n if (!interaction.interacting() || !edges) {\n return;\n }\n\n var rect = rectUtils.xywhToTlbr(interaction.resizeRects.inverted);\n\n var minSize = rectUtils.tlbrToXywh(restrictEdges.getRestrictionRect(options.min, interaction)) || noMin;\n var maxSize = rectUtils.tlbrToXywh(restrictEdges.getRestrictionRect(options.max, interaction)) || noMax;\n\n arg.options = {\n enabled: options.enabled,\n endOnly: options.endOnly,\n inner: utils.extend({}, restrictEdges.noInner),\n outer: utils.extend({}, restrictEdges.noOuter)\n };\n\n if (edges.top) {\n arg.options.inner.top = rect.bottom - minSize.height;\n arg.options.outer.top = rect.bottom - maxSize.height;\n } else if (edges.bottom) {\n arg.options.inner.bottom = rect.top + minSize.height;\n arg.options.outer.bottom = rect.top + maxSize.height;\n }\n if (edges.left) {\n arg.options.inner.left = rect.right - minSize.width;\n arg.options.outer.left = rect.right - maxSize.width;\n } else if (edges.right) {\n arg.options.inner.right = rect.left + minSize.width;\n arg.options.outer.right = rect.left + maxSize.width;\n }\n\n restrictEdges.set(arg);\n },\n\n modifyCoords: restrictEdges.modifyCoords\n};\n\nmodifiers.restrictSize = restrictSize;\nmodifiers.names.push('restrictSize');\n\ndefaultOptions.perAction.restrictSize = restrictSize.defaults;\nresize.defaults.restrictSize = restrictSize.defaults;\n\nmodule.exports = restrictSize;\n\n},{\"../actions/resize\":10,\"../defaultOptions\":18,\"../utils\":44,\"../utils/rect\":51,\"./base\":23,\"./restrictEdges\":25}],27:[function(require,module,exports){\n'use strict';\n\nvar modifiers = require('./base');\nvar interact = require('../interact');\nvar utils = require('../utils');\nvar defaultOptions = require('../defaultOptions');\n\nvar snap = {\n defaults: {\n enabled: false,\n endOnly: false,\n range: Infinity,\n targets: null,\n offsets: null,\n\n relativePoints: null\n },\n\n setOffset: function setOffset(_ref) {\n var interaction = _ref.interaction,\n interactable = _ref.interactable,\n element = _ref.element,\n rect = _ref.rect,\n startOffset = _ref.startOffset,\n options = _ref.options;\n\n var offsets = [];\n var optionsOrigin = utils.rectToXY(utils.resolveRectLike(options.origin));\n var origin = optionsOrigin || utils.getOriginXY(interactable, element, interaction.prepared.name);\n options = options || interactable.options[interaction.prepared.name].snap || {};\n\n var snapOffset = void 0;\n\n if (options.offset === 'startCoords') {\n snapOffset = {\n x: interaction.startCoords.page.x - origin.x,\n y: interaction.startCoords.page.y - origin.y\n };\n } else {\n var offsetRect = utils.resolveRectLike(options.offset, interactable, element, [interaction]);\n\n snapOffset = utils.rectToXY(offsetRect) || { x: 0, y: 0 };\n }\n\n if (rect && options.relativePoints && options.relativePoints.length) {\n for (var _i = 0; _i < options.relativePoints.length; _i++) {\n var _ref3;\n\n _ref3 = options.relativePoints[_i];\n var _ref2 = _ref3;\n var relativeX = _ref2.x;\n var relativeY = _ref2.y;\n\n offsets.push({\n x: startOffset.left - rect.width * relativeX + snapOffset.x,\n y: startOffset.top - rect.height * relativeY + snapOffset.y\n });\n }\n } else {\n offsets.push(snapOffset);\n }\n\n return offsets;\n },\n\n set: function set(_ref4) {\n var interaction = _ref4.interaction,\n modifiedCoords = _ref4.modifiedCoords,\n status = _ref4.status,\n options = _ref4.options,\n offsets = _ref4.offset;\n\n var targets = [];\n var target = void 0;\n var page = void 0;\n var i = void 0;\n\n if (status.useStatusXY) {\n page = { x: status.x, y: status.y };\n } else {\n var origin = utils.getOriginXY(interaction.target, interaction.element, interaction.prepared.name);\n\n page = utils.extend({}, modifiedCoords);\n\n page.x -= origin.x;\n page.y -= origin.y;\n }\n\n status.realX = page.x;\n status.realY = page.y;\n\n var len = options.targets ? options.targets.length : 0;\n\n for (var _i2 = 0; _i2 < offsets.length; _i2++) {\n var _ref6;\n\n _ref6 = offsets[_i2];\n var _ref5 = _ref6;\n var offsetX = _ref5.x;\n var offsetY = _ref5.y;\n\n var relativeX = page.x - offsetX;\n var relativeY = page.y - offsetY;\n\n for (var _i3 = 0; _i3 < (options.targets || []).length; _i3++) {\n var _ref7;\n\n _ref7 = (options.targets || [])[_i3];\n var snapTarget = _ref7;\n\n if (utils.is.function(snapTarget)) {\n target = snapTarget(relativeX, relativeY, interaction);\n } else {\n target = snapTarget;\n }\n\n if (!target) {\n continue;\n }\n\n targets.push({\n x: utils.is.number(target.x) ? target.x + offsetX : relativeX,\n y: utils.is.number(target.y) ? target.y + offsetY : relativeY,\n\n range: utils.is.number(target.range) ? target.range : options.range\n });\n }\n }\n\n var closest = {\n target: null,\n inRange: false,\n distance: 0,\n range: 0,\n dx: 0,\n dy: 0\n };\n\n for (i = 0, len = targets.length; i < len; i++) {\n target = targets[i];\n\n var range = target.range;\n var dx = target.x - page.x;\n var dy = target.y - page.y;\n var distance = utils.hypot(dx, dy);\n var inRange = distance <= range;\n\n // Infinite targets count as being out of range\n // compared to non infinite ones that are in range\n if (range === Infinity && closest.inRange && closest.range !== Infinity) {\n inRange = false;\n }\n\n if (!closest.target || (inRange\n // is the closest target in range?\n ? closest.inRange && range !== Infinity\n // the pointer is relatively deeper in this target\n ? distance / range < closest.distance / closest.range\n // this target has Infinite range and the closest doesn't\n : range === Infinity && closest.range !== Infinity ||\n // OR this target is closer that the previous closest\n distance < closest.distance :\n // The other is not in range and the pointer is closer to this target\n !closest.inRange && distance < closest.distance)) {\n\n closest.target = target;\n closest.distance = distance;\n closest.range = range;\n closest.inRange = inRange;\n closest.dx = dx;\n closest.dy = dy;\n\n status.range = range;\n }\n }\n\n var snapChanged = void 0;\n\n if (closest.target) {\n snapChanged = status.modifiedX !== closest.target.x || status.modifiedY !== closest.target.y;\n\n status.modifiedX = closest.target.x;\n status.modifiedY = closest.target.y;\n } else {\n snapChanged = true;\n\n status.modifiedX = NaN;\n status.modifiedY = NaN;\n }\n\n status.dx = closest.dx;\n status.dy = closest.dy;\n\n status.changed = snapChanged || closest.inRange && !status.locked;\n status.locked = closest.inRange;\n },\n\n modifyCoords: function modifyCoords(_ref8) {\n var page = _ref8.page,\n client = _ref8.client,\n status = _ref8.status,\n phase = _ref8.phase,\n options = _ref8.options;\n\n var relativePoints = options && options.relativePoints;\n\n if (options && options.enabled && !(phase === 'start' && relativePoints && relativePoints.length)) {\n\n if (status.locked) {\n page.x += status.dx;\n page.y += status.dy;\n client.x += status.dx;\n client.y += status.dy;\n }\n\n return {\n range: status.range,\n locked: status.locked,\n x: status.modifiedX,\n y: status.modifiedY,\n realX: status.realX,\n realY: status.realY,\n dx: status.dx,\n dy: status.dy\n };\n }\n }\n};\n\ninteract.createSnapGrid = function (grid) {\n return function (x, y) {\n var limits = grid.limits || {\n left: -Infinity,\n right: Infinity,\n top: -Infinity,\n bottom: Infinity\n };\n var offsetX = 0;\n var offsetY = 0;\n\n if (utils.is.object(grid.offset)) {\n offsetX = grid.offset.x;\n offsetY = grid.offset.y;\n }\n\n var gridx = Math.round((x - offsetX) / grid.x);\n var gridy = Math.round((y - offsetY) / grid.y);\n\n var newX = Math.max(limits.left, Math.min(limits.right, gridx * grid.x + offsetX));\n var newY = Math.max(limits.top, Math.min(limits.bottom, gridy * grid.y + offsetY));\n\n return {\n x: newX,\n y: newY,\n range: grid.range\n };\n };\n};\n\nmodifiers.snap = snap;\nmodifiers.names.push('snap');\n\ndefaultOptions.perAction.snap = snap.defaults;\n\nmodule.exports = snap;\n\n},{\"../defaultOptions\":18,\"../interact\":21,\"../utils\":44,\"./base\":23}],28:[function(require,module,exports){\n'use strict';\n\n// This module allows snapping of the size of targets during resize\n// interactions.\n\nvar modifiers = require('./base');\nvar snap = require('./snap');\nvar defaultOptions = require('../defaultOptions');\nvar resize = require('../actions/resize');\nvar utils = require('../utils/');\n\nvar snapSize = {\n defaults: {\n enabled: false,\n endOnly: false,\n range: Infinity,\n targets: null,\n offsets: null\n },\n\n setOffset: function setOffset(arg) {\n var interaction = arg.interaction,\n options = arg.options;\n\n var edges = interaction.prepared.edges;\n\n if (!edges) {\n return;\n }\n\n arg.options = {\n relativePoints: [{\n x: edges.left ? 0 : 1,\n y: edges.top ? 0 : 1\n }],\n origin: { x: 0, y: 0 },\n offset: 'self',\n range: options.range\n };\n\n var offsets = snap.setOffset(arg);\n arg.options = options;\n\n return offsets;\n },\n\n set: function set(arg) {\n var interaction = arg.interaction,\n options = arg.options,\n offset = arg.offset,\n modifiedCoords = arg.modifiedCoords;\n\n var page = utils.extend({}, modifiedCoords);\n var relativeX = page.x - offset[0].x;\n var relativeY = page.y - offset[0].y;\n\n arg.options = utils.extend({}, options);\n arg.options.targets = [];\n\n for (var _i = 0; _i < (options.targets || []).length; _i++) {\n var _ref;\n\n _ref = (options.targets || [])[_i];\n var snapTarget = _ref;\n\n var target = void 0;\n\n if (utils.is.function(snapTarget)) {\n target = snapTarget(relativeX, relativeY, interaction);\n } else {\n target = snapTarget;\n }\n\n if (!target) {\n continue;\n }\n\n if ('width' in target && 'height' in target) {\n target.x = target.width;\n target.y = target.height;\n }\n\n arg.options.targets.push(target);\n }\n\n snap.set(arg);\n },\n\n modifyCoords: function modifyCoords(arg) {\n var options = arg.options;\n\n\n arg.options = utils.extend({}, options);\n arg.options.enabled = options.enabled;\n arg.options.relativePoints = [null];\n\n snap.modifyCoords(arg);\n }\n};\n\nmodifiers.snapSize = snapSize;\nmodifiers.names.push('snapSize');\n\ndefaultOptions.perAction.snapSize = snapSize.defaults;\nresize.defaults.snapSize = snapSize.defaults;\n\nmodule.exports = snapSize;\n\n},{\"../actions/resize\":10,\"../defaultOptions\":18,\"../utils/\":44,\"./base\":23,\"./snap\":27}],29:[function(require,module,exports){\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar pointerUtils = require('../utils/pointerUtils');\n\nmodule.exports = function () {\n /** */\n function PointerEvent(type, pointer, event, eventTarget, interaction) {\n _classCallCheck(this, PointerEvent);\n\n pointerUtils.pointerExtend(this, event);\n\n if (event !== pointer) {\n pointerUtils.pointerExtend(this, pointer);\n }\n\n this.interaction = interaction;\n\n this.timeStamp = new Date().getTime();\n this.originalEvent = event;\n this.type = type;\n this.pointerId = pointerUtils.getPointerId(pointer);\n this.pointerType = pointerUtils.getPointerType(pointer);\n this.target = eventTarget;\n this.currentTarget = null;\n\n if (type === 'tap') {\n var pointerIndex = interaction.getPointerIndex(pointer);\n this.dt = this.timeStamp - interaction.downTimes[pointerIndex];\n\n var interval = this.timeStamp - interaction.tapTime;\n\n this.double = !!(interaction.prevTap && interaction.prevTap.type !== 'doubletap' && interaction.prevTap.target === this.target && interval < 500);\n } else if (type === 'doubletap') {\n this.dt = pointer.timeStamp - interaction.tapTime;\n }\n }\n\n PointerEvent.prototype.subtractOrigin = function subtractOrigin(_ref) {\n var originX = _ref.x,\n originY = _ref.y;\n\n this.pageX -= originX;\n this.pageY -= originY;\n this.clientX -= originX;\n this.clientY -= originY;\n\n return this;\n };\n\n PointerEvent.prototype.addOrigin = function addOrigin(_ref2) {\n var originX = _ref2.x,\n originY = _ref2.y;\n\n this.pageX += originX;\n this.pageY += originY;\n this.clientX += originX;\n this.clientY += originY;\n\n return this;\n };\n\n /** */\n\n\n PointerEvent.prototype.preventDefault = function preventDefault() {\n this.originalEvent.preventDefault();\n };\n\n /** */\n\n\n PointerEvent.prototype.stopPropagation = function stopPropagation() {\n this.propagationStopped = true;\n };\n\n /** */\n\n\n PointerEvent.prototype.stopImmediatePropagation = function stopImmediatePropagation() {\n this.immediatePropagationStopped = this.propagationStopped = true;\n };\n\n return PointerEvent;\n}();\n\n},{\"../utils/pointerUtils\":49}],30:[function(require,module,exports){\n'use strict';\n\nvar PointerEvent = require('./PointerEvent');\nvar Interaction = require('../Interaction');\nvar utils = require('../utils');\nvar defaults = require('../defaultOptions');\nvar signals = require('../utils/Signals').new();\n\nvar simpleSignals = ['down', 'up', 'cancel'];\nvar simpleEvents = ['down', 'up', 'cancel'];\n\nvar pointerEvents = {\n PointerEvent: PointerEvent,\n fire: fire,\n collectEventTargets: collectEventTargets,\n signals: signals,\n defaults: {\n holdDuration: 600,\n ignoreFrom: null,\n allowFrom: null,\n origin: { x: 0, y: 0 }\n },\n types: ['down', 'move', 'up', 'cancel', 'tap', 'doubletap', 'hold']\n};\n\nfunction fire(arg) {\n var interaction = arg.interaction,\n pointer = arg.pointer,\n event = arg.event,\n eventTarget = arg.eventTarget,\n _arg$type = arg.type,\n type = _arg$type === undefined ? arg.pointerEvent.type : _arg$type,\n _arg$targets = arg.targets,\n targets = _arg$targets === undefined ? collectEventTargets(arg) : _arg$targets,\n _arg$pointerEvent = arg.pointerEvent,\n pointerEvent = _arg$pointerEvent === undefined ? new PointerEvent(type, pointer, event, eventTarget, interaction) : _arg$pointerEvent;\n\n\n var signalArg = {\n interaction: interaction,\n pointer: pointer,\n event: event,\n eventTarget: eventTarget,\n targets: targets,\n type: type,\n pointerEvent: pointerEvent\n };\n\n for (var i = 0; i < targets.length; i++) {\n var target = targets[i];\n\n for (var prop in target.props || {}) {\n pointerEvent[prop] = target.props[prop];\n }\n\n var origin = utils.getOriginXY(target.eventable, target.element);\n\n pointerEvent.subtractOrigin(origin);\n pointerEvent.eventable = target.eventable;\n pointerEvent.currentTarget = target.element;\n\n target.eventable.fire(pointerEvent);\n\n pointerEvent.addOrigin(origin);\n\n if (pointerEvent.immediatePropagationStopped || pointerEvent.propagationStopped && i + 1 < targets.length && targets[i + 1].element !== pointerEvent.currentTarget) {\n break;\n }\n }\n\n signals.fire('fired', signalArg);\n\n if (type === 'tap') {\n // if pointerEvent should make a double tap, create and fire a doubletap\n // PointerEvent and use that as the prevTap\n var prevTap = pointerEvent.double ? fire({\n interaction: interaction, pointer: pointer, event: event, eventTarget: eventTarget,\n type: 'doubletap'\n }) : pointerEvent;\n\n interaction.prevTap = prevTap;\n interaction.tapTime = prevTap.timeStamp;\n }\n\n return pointerEvent;\n}\n\nfunction collectEventTargets(_ref) {\n var interaction = _ref.interaction,\n pointer = _ref.pointer,\n event = _ref.event,\n eventTarget = _ref.eventTarget,\n type = _ref.type;\n\n var pointerIndex = interaction.getPointerIndex(pointer);\n\n // do not fire a tap event if the pointer was moved before being lifted\n if (type === 'tap' && (interaction.pointerWasMoved\n // or if the pointerup target is different to the pointerdown target\n || !(interaction.downTargets[pointerIndex] && interaction.downTargets[pointerIndex] === eventTarget))) {\n return [];\n }\n\n var path = utils.getPath(eventTarget);\n var signalArg = {\n interaction: interaction,\n pointer: pointer,\n event: event,\n eventTarget: eventTarget,\n type: type,\n path: path,\n targets: [],\n element: null\n };\n\n for (var _i = 0; _i < path.length; _i++) {\n var _ref2;\n\n _ref2 = path[_i];\n var element = _ref2;\n\n signalArg.element = element;\n\n signals.fire('collect-targets', signalArg);\n }\n\n if (type === 'hold') {\n signalArg.targets = signalArg.targets.filter(function (target) {\n return target.eventable.options.holdDuration === interaction.holdTimers[pointerIndex].duration;\n });\n }\n\n return signalArg.targets;\n}\n\nInteraction.signals.on('update-pointer-down', function (_ref3) {\n var interaction = _ref3.interaction,\n pointerIndex = _ref3.pointerIndex;\n\n interaction.holdTimers[pointerIndex] = { duration: Infinity, timeout: null };\n});\n\nInteraction.signals.on('remove-pointer', function (_ref4) {\n var interaction = _ref4.interaction,\n pointerIndex = _ref4.pointerIndex;\n\n interaction.holdTimers.splice(pointerIndex, 1);\n});\n\nInteraction.signals.on('move', function (_ref5) {\n var interaction = _ref5.interaction,\n pointer = _ref5.pointer,\n event = _ref5.event,\n eventTarget = _ref5.eventTarget,\n duplicateMove = _ref5.duplicateMove;\n\n var pointerIndex = interaction.getPointerIndex(pointer);\n\n if (!duplicateMove && (!interaction.pointerIsDown || interaction.pointerWasMoved)) {\n if (interaction.pointerIsDown) {\n clearTimeout(interaction.holdTimers[pointerIndex].timeout);\n }\n\n fire({\n interaction: interaction, pointer: pointer, event: event, eventTarget: eventTarget,\n type: 'move'\n });\n }\n});\n\nInteraction.signals.on('down', function (_ref6) {\n var interaction = _ref6.interaction,\n pointer = _ref6.pointer,\n event = _ref6.event,\n eventTarget = _ref6.eventTarget,\n pointerIndex = _ref6.pointerIndex;\n\n var timer = interaction.holdTimers[pointerIndex];\n var path = utils.getPath(eventTarget);\n var signalArg = {\n interaction: interaction,\n pointer: pointer,\n event: event,\n eventTarget: eventTarget,\n type: 'hold',\n targets: [],\n path: path,\n element: null\n };\n\n for (var _i2 = 0; _i2 < path.length; _i2++) {\n var _ref7;\n\n _ref7 = path[_i2];\n var element = _ref7;\n\n signalArg.element = element;\n\n signals.fire('collect-targets', signalArg);\n }\n\n if (!signalArg.targets.length) {\n return;\n }\n\n var minDuration = Infinity;\n\n for (var _i3 = 0; _i3 < signalArg.targets.length; _i3++) {\n var _ref8;\n\n _ref8 = signalArg.targets[_i3];\n var target = _ref8;\n\n var holdDuration = target.eventable.options.holdDuration;\n\n if (holdDuration < minDuration) {\n minDuration = holdDuration;\n }\n }\n\n timer.duration = minDuration;\n timer.timeout = setTimeout(function () {\n fire({\n interaction: interaction,\n eventTarget: eventTarget,\n pointer: pointer,\n event: event,\n type: 'hold'\n });\n }, minDuration);\n});\n\nInteraction.signals.on('up', function (_ref9) {\n var interaction = _ref9.interaction,\n pointer = _ref9.pointer,\n event = _ref9.event,\n eventTarget = _ref9.eventTarget;\n\n if (!interaction.pointerWasMoved) {\n fire({ interaction: interaction, eventTarget: eventTarget, pointer: pointer, event: event, type: 'tap' });\n }\n});\n\nvar _arr = ['up', 'cancel'];\nfor (var _i4 = 0; _i4 < _arr.length; _i4++) {\n var signalName = _arr[_i4];\n Interaction.signals.on(signalName, function (_ref11) {\n var interaction = _ref11.interaction,\n pointerIndex = _ref11.pointerIndex;\n\n if (interaction.holdTimers[pointerIndex]) {\n clearTimeout(interaction.holdTimers[pointerIndex].timeout);\n }\n });\n}\n\nfunction createSignalListener(type) {\n return function (_ref10) {\n var interaction = _ref10.interaction,\n pointer = _ref10.pointer,\n event = _ref10.event,\n eventTarget = _ref10.eventTarget;\n\n fire({ interaction: interaction, eventTarget: eventTarget, pointer: pointer, event: event, type: type });\n };\n}\n\nfor (var i = 0; i < simpleSignals.length; i++) {\n Interaction.signals.on(simpleSignals[i], createSignalListener(simpleEvents[i]));\n}\n\nInteraction.signals.on('new', function (interaction) {\n interaction.prevTap = null; // the most recent tap event on this interaction\n interaction.tapTime = 0; // time of the most recent tap event\n interaction.holdTimers = []; // [{ duration, timeout }]\n});\n\ndefaults.pointerEvents = pointerEvents.defaults;\nmodule.exports = pointerEvents;\n\n},{\"../Interaction\":5,\"../defaultOptions\":18,\"../utils\":44,\"../utils/Signals\":34,\"./PointerEvent\":29}],31:[function(require,module,exports){\n'use strict';\n\nvar pointerEvents = require('./base');\nvar Interaction = require('../Interaction');\n\npointerEvents.signals.on('new', onNew);\npointerEvents.signals.on('fired', onFired);\n\nvar _arr = ['move', 'up', 'cancel', 'endall'];\nfor (var _i = 0; _i < _arr.length; _i++) {\n var signal = _arr[_i];\n Interaction.signals.on(signal, endHoldRepeat);\n}\n\nfunction onNew(_ref) {\n var pointerEvent = _ref.pointerEvent;\n\n if (pointerEvent.type !== 'hold') {\n return;\n }\n\n pointerEvent.count = (pointerEvent.count || 0) + 1;\n}\n\nfunction onFired(_ref2) {\n var interaction = _ref2.interaction,\n pointerEvent = _ref2.pointerEvent,\n eventTarget = _ref2.eventTarget,\n targets = _ref2.targets;\n\n if (pointerEvent.type !== 'hold' || !targets.length) {\n return;\n }\n\n // get the repeat interval from the first eventable\n var interval = targets[0].eventable.options.holdRepeatInterval;\n\n // don't repeat if the interval is 0 or less\n if (interval <= 0) {\n return;\n }\n\n // set a timeout to fire the holdrepeat event\n interaction.holdIntervalHandle = setTimeout(function () {\n pointerEvents.fire({\n interaction: interaction,\n eventTarget: eventTarget,\n type: 'hold',\n pointer: pointerEvent,\n event: pointerEvent\n });\n }, interval);\n}\n\nfunction endHoldRepeat(_ref3) {\n var interaction = _ref3.interaction;\n\n // set the interaction's holdStopTime property\n // to stop further holdRepeat events\n if (interaction.holdIntervalHandle) {\n clearInterval(interaction.holdIntervalHandle);\n interaction.holdIntervalHandle = null;\n }\n}\n\n// don't repeat by default\npointerEvents.defaults.holdRepeatInterval = 0;\npointerEvents.types.push('holdrepeat');\n\nmodule.exports = {\n onNew: onNew,\n onFired: onFired,\n endHoldRepeat: endHoldRepeat\n};\n\n},{\"../Interaction\":5,\"./base\":30}],32:[function(require,module,exports){\n'use strict';\n\nvar pointerEvents = require('./base');\nvar Interactable = require('../Interactable');\nvar is = require('../utils/is');\nvar scope = require('../scope');\nvar extend = require('../utils/extend');\n\nvar _require = require('../utils/arr'),\n merge = _require.merge;\n\npointerEvents.signals.on('collect-targets', function (_ref) {\n var targets = _ref.targets,\n element = _ref.element,\n type = _ref.type,\n eventTarget = _ref.eventTarget;\n\n scope.interactables.forEachMatch(element, function (interactable) {\n var eventable = interactable.events;\n var options = eventable.options;\n\n if (eventable[type] && is.element(element) && interactable.testIgnoreAllow(options, element, eventTarget)) {\n\n targets.push({\n element: element,\n eventable: eventable,\n props: { interactable: interactable }\n });\n }\n });\n});\n\nInteractable.signals.on('new', function (_ref2) {\n var interactable = _ref2.interactable;\n\n interactable.events.getRect = function (element) {\n return interactable.getRect(element);\n };\n});\n\nInteractable.signals.on('set', function (_ref3) {\n var interactable = _ref3.interactable,\n options = _ref3.options;\n\n extend(interactable.events.options, pointerEvents.defaults);\n extend(interactable.events.options, options);\n});\n\nmerge(Interactable.eventTypes, pointerEvents.types);\n\nInteractable.prototype.pointerEvents = function (options) {\n extend(this.events.options, options);\n\n return this;\n};\n\nvar __backCompatOption = Interactable.prototype._backCompatOption;\n\nInteractable.prototype._backCompatOption = function (optionName, newValue) {\n var ret = __backCompatOption.call(this, optionName, newValue);\n\n if (ret === this) {\n this.events.options[optionName] = newValue;\n }\n\n return ret;\n};\n\nInteractable.settingsMethods.push('pointerEvents');\n\n},{\"../Interactable\":4,\"../scope\":33,\"../utils/arr\":35,\"../utils/extend\":41,\"../utils/is\":46,\"./base\":30}],33:[function(require,module,exports){\n'use strict';\n\nvar utils = require('./utils');\nvar events = require('./utils/events');\nvar signals = require('./utils/Signals').new();\n\nvar _require = require('./utils/window'),\n getWindow = _require.getWindow;\n\nvar scope = {\n signals: signals,\n events: events,\n utils: utils,\n\n // main document\n document: require('./utils/domObjects').document,\n // all documents being listened to\n documents: [],\n\n addDocument: function addDocument(doc, win) {\n // do nothing if document is already known\n if (utils.contains(scope.documents, doc)) {\n return false;\n }\n\n win = win || getWindow(doc);\n\n scope.documents.push(doc);\n events.documents.push(doc);\n\n // don't add an unload event for the main document\n // so that the page may be cached in browser history\n if (doc !== scope.document) {\n events.add(win, 'unload', scope.onWindowUnload);\n }\n\n signals.fire('add-document', { doc: doc, win: win });\n },\n\n removeDocument: function removeDocument(doc, win) {\n var index = scope.documents.indexOf(doc);\n\n win = win || getWindow(doc);\n\n events.remove(win, 'unload', scope.onWindowUnload);\n\n scope.documents.splice(index, 1);\n events.documents.splice(index, 1);\n\n signals.fire('remove-document', { win: win, doc: doc });\n },\n\n onWindowUnload: function onWindowUnload() {\n scope.removeDocument(this.document, this);\n }\n};\n\nmodule.exports = scope;\n\n},{\"./utils\":44,\"./utils/Signals\":34,\"./utils/domObjects\":38,\"./utils/events\":40,\"./utils/window\":52}],34:[function(require,module,exports){\n\"use strict\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Signals = function () {\n function Signals() {\n _classCallCheck(this, Signals);\n\n this.listeners = {\n // signalName: [listeners],\n };\n }\n\n Signals.prototype.on = function on(name, listener) {\n if (!this.listeners[name]) {\n this.listeners[name] = [listener];\n return;\n }\n\n this.listeners[name].push(listener);\n };\n\n Signals.prototype.off = function off(name, listener) {\n if (!this.listeners[name]) {\n return;\n }\n\n var index = this.listeners[name].indexOf(listener);\n\n if (index !== -1) {\n this.listeners[name].splice(index, 1);\n }\n };\n\n Signals.prototype.fire = function fire(name, arg) {\n var targetListeners = this.listeners[name];\n\n if (!targetListeners) {\n return;\n }\n\n for (var _i = 0; _i < targetListeners.length; _i++) {\n var _ref;\n\n _ref = targetListeners[_i];\n var listener = _ref;\n\n if (listener(arg, name) === false) {\n return;\n }\n }\n };\n\n return Signals;\n}();\n\nSignals.new = function () {\n return new Signals();\n};\n\nmodule.exports = Signals;\n\n},{}],35:[function(require,module,exports){\n\"use strict\";\n\nfunction contains(array, target) {\n return array.indexOf(target) !== -1;\n}\n\nfunction merge(target, source) {\n for (var _i = 0; _i < source.length; _i++) {\n var _ref;\n\n _ref = source[_i];\n var item = _ref;\n\n target.push(item);\n }\n\n return target;\n}\n\nmodule.exports = {\n contains: contains,\n merge: merge\n};\n\n},{}],36:[function(require,module,exports){\n'use strict';\n\nvar _require = require('./window'),\n window = _require.window;\n\nvar is = require('./is');\nvar domObjects = require('./domObjects');\n\nvar Element = domObjects.Element;\nvar navigator = window.navigator;\n\nvar browser = {\n // Does the browser support touch input?\n supportsTouch: !!('ontouchstart' in window || is.function(window.DocumentTouch) && domObjects.document instanceof window.DocumentTouch),\n\n // Does the browser support PointerEvents\n supportsPointerEvent: !!domObjects.PointerEvent,\n\n isIOS: /iP(hone|od|ad)/.test(navigator.platform),\n\n // scrolling doesn't change the result of getClientRects on iOS 7\n isIOS7: /iP(hone|od|ad)/.test(navigator.platform) && /OS 7[^\\d]/.test(navigator.appVersion),\n\n isIe9: /MSIE 9/.test(navigator.userAgent),\n\n // prefix matchesSelector\n prefixedMatchesSelector: 'matches' in Element.prototype ? 'matches' : 'webkitMatchesSelector' in Element.prototype ? 'webkitMatchesSelector' : 'mozMatchesSelector' in Element.prototype ? 'mozMatchesSelector' : 'oMatchesSelector' in Element.prototype ? 'oMatchesSelector' : 'msMatchesSelector',\n\n pEventTypes: domObjects.PointerEvent ? domObjects.PointerEvent === window.MSPointerEvent ? {\n up: 'MSPointerUp',\n down: 'MSPointerDown',\n over: 'mouseover',\n out: 'mouseout',\n move: 'MSPointerMove',\n cancel: 'MSPointerCancel'\n } : {\n up: 'pointerup',\n down: 'pointerdown',\n over: 'pointerover',\n out: 'pointerout',\n move: 'pointermove',\n cancel: 'pointercancel'\n } : null,\n\n // because Webkit and Opera still use 'mousewheel' event type\n wheelEvent: 'onmousewheel' in domObjects.document ? 'mousewheel' : 'wheel'\n\n};\n\n// Opera Mobile must be handled differently\nbrowser.isOperaMobile = navigator.appName === 'Opera' && browser.supportsTouch && navigator.userAgent.match('Presto');\n\nmodule.exports = browser;\n\n},{\"./domObjects\":38,\"./is\":46,\"./window\":52}],37:[function(require,module,exports){\n'use strict';\n\nvar is = require('./is');\n\nmodule.exports = function clone(source) {\n var dest = {};\n for (var prop in source) {\n if (is.plainObject(source[prop])) {\n dest[prop] = clone(source[prop]);\n } else {\n dest[prop] = source[prop];\n }\n }\n return dest;\n};\n\n},{\"./is\":46}],38:[function(require,module,exports){\n'use strict';\n\nvar domObjects = {};\nvar win = require('./window').window;\n\nfunction blank() {}\n\ndomObjects.document = win.document;\ndomObjects.DocumentFragment = win.DocumentFragment || blank;\ndomObjects.SVGElement = win.SVGElement || blank;\ndomObjects.SVGSVGElement = win.SVGSVGElement || blank;\ndomObjects.SVGElementInstance = win.SVGElementInstance || blank;\ndomObjects.Element = win.Element || blank;\ndomObjects.HTMLElement = win.HTMLElement || domObjects.Element;\n\ndomObjects.Event = win.Event;\ndomObjects.Touch = win.Touch || blank;\ndomObjects.PointerEvent = win.PointerEvent || win.MSPointerEvent;\n\nmodule.exports = domObjects;\n\n},{\"./window\":52}],39:[function(require,module,exports){\n'use strict';\n\nvar win = require('./window');\nvar browser = require('./browser');\nvar is = require('./is');\nvar domObjects = require('./domObjects');\n\nvar domUtils = {\n nodeContains: function nodeContains(parent, child) {\n while (child) {\n if (child === parent) {\n return true;\n }\n\n child = child.parentNode;\n }\n\n return false;\n },\n\n closest: function closest(element, selector) {\n while (is.element(element)) {\n if (domUtils.matchesSelector(element, selector)) {\n return element;\n }\n\n element = domUtils.parentNode(element);\n }\n\n return null;\n },\n\n parentNode: function parentNode(node) {\n var parent = node.parentNode;\n\n if (is.docFrag(parent)) {\n // skip past #shado-root fragments\n while ((parent = parent.host) && is.docFrag(parent)) {\n continue;\n }\n\n return parent;\n }\n\n return parent;\n },\n\n matchesSelector: function matchesSelector(element, selector) {\n // remove /deep/ from selectors if shadowDOM polyfill is used\n if (win.window !== win.realWindow) {\n selector = selector.replace(/\\/deep\\//g, ' ');\n }\n\n return element[browser.prefixedMatchesSelector](selector);\n },\n\n // Test for the element that's \"above\" all other qualifiers\n indexOfDeepestElement: function indexOfDeepestElement(elements) {\n var deepestZoneParents = [];\n var dropzoneParents = [];\n var dropzone = void 0;\n var deepestZone = elements[0];\n var index = deepestZone ? 0 : -1;\n var parent = void 0;\n var child = void 0;\n var i = void 0;\n var n = void 0;\n\n for (i = 1; i < elements.length; i++) {\n dropzone = elements[i];\n\n // an element might belong to multiple selector dropzones\n if (!dropzone || dropzone === deepestZone) {\n continue;\n }\n\n if (!deepestZone) {\n deepestZone = dropzone;\n index = i;\n continue;\n }\n\n // check if the deepest or current are document.documentElement or document.rootElement\n // - if the current dropzone is, do nothing and continue\n if (dropzone.parentNode === dropzone.ownerDocument) {\n continue;\n }\n // - if deepest is, update with the current dropzone and continue to next\n else if (deepestZone.parentNode === dropzone.ownerDocument) {\n deepestZone = dropzone;\n index = i;\n continue;\n }\n\n if (!deepestZoneParents.length) {\n parent = deepestZone;\n while (parent.parentNode && parent.parentNode !== parent.ownerDocument) {\n deepestZoneParents.unshift(parent);\n parent = parent.parentNode;\n }\n }\n\n // if this element is an svg element and the current deepest is\n // an HTMLElement\n if (deepestZone instanceof domObjects.HTMLElement && dropzone instanceof domObjects.SVGElement && !(dropzone instanceof domObjects.SVGSVGElement)) {\n\n if (dropzone === deepestZone.parentNode) {\n continue;\n }\n\n parent = dropzone.ownerSVGElement;\n } else {\n parent = dropzone;\n }\n\n dropzoneParents = [];\n\n while (parent.parentNode !== parent.ownerDocument) {\n dropzoneParents.unshift(parent);\n parent = parent.parentNode;\n }\n\n n = 0;\n\n // get (position of last common ancestor) + 1\n while (dropzoneParents[n] && dropzoneParents[n] === deepestZoneParents[n]) {\n n++;\n }\n\n var parents = [dropzoneParents[n - 1], dropzoneParents[n], deepestZoneParents[n]];\n\n child = parents[0].lastChild;\n\n while (child) {\n if (child === parents[1]) {\n deepestZone = dropzone;\n index = i;\n deepestZoneParents = [];\n\n break;\n } else if (child === parents[2]) {\n break;\n }\n\n child = child.previousSibling;\n }\n }\n\n return index;\n },\n\n matchesUpTo: function matchesUpTo(element, selector, limit) {\n while (is.element(element)) {\n if (domUtils.matchesSelector(element, selector)) {\n return true;\n }\n\n element = domUtils.parentNode(element);\n\n if (element === limit) {\n return domUtils.matchesSelector(element, selector);\n }\n }\n\n return false;\n },\n\n getActualElement: function getActualElement(element) {\n return element instanceof domObjects.SVGElementInstance ? element.correspondingUseElement : element;\n },\n\n getScrollXY: function getScrollXY(relevantWindow) {\n relevantWindow = relevantWindow || win.window;\n return {\n x: relevantWindow.scrollX || relevantWindow.document.documentElement.scrollLeft,\n y: relevantWindow.scrollY || relevantWindow.document.documentElement.scrollTop\n };\n },\n\n getElementClientRect: function getElementClientRect(element) {\n var clientRect = element instanceof domObjects.SVGElement ? element.getBoundingClientRect() : element.getClientRects()[0];\n\n return clientRect && {\n left: clientRect.left,\n right: clientRect.right,\n top: clientRect.top,\n bottom: clientRect.bottom,\n width: clientRect.width || clientRect.right - clientRect.left,\n height: clientRect.height || clientRect.bottom - clientRect.top\n };\n },\n\n getElementRect: function getElementRect(element) {\n var clientRect = domUtils.getElementClientRect(element);\n\n if (!browser.isIOS7 && clientRect) {\n var scroll = domUtils.getScrollXY(win.getWindow(element));\n\n clientRect.left += scroll.x;\n clientRect.right += scroll.x;\n clientRect.top += scroll.y;\n clientRect.bottom += scroll.y;\n }\n\n return clientRect;\n },\n\n getPath: function getPath(element) {\n var path = [];\n\n while (element) {\n path.push(element);\n element = domUtils.parentNode(element);\n }\n\n return path;\n },\n\n trySelector: function trySelector(value) {\n if (!is.string(value)) {\n return false;\n }\n\n // an exception will be raised if it is invalid\n domObjects.document.querySelector(value);\n return true;\n }\n};\n\nmodule.exports = domUtils;\n\n},{\"./browser\":36,\"./domObjects\":38,\"./is\":46,\"./window\":52}],40:[function(require,module,exports){\n'use strict';\n\nvar is = require('./is');\nvar domUtils = require('./domUtils');\nvar pointerUtils = require('./pointerUtils');\nvar pExtend = require('./pointerExtend');\n\nvar _require = require('./window'),\n window = _require.window;\n\nvar _require2 = require('./arr'),\n contains = _require2.contains;\n\nvar elements = [];\nvar targets = [];\n\n// {\n// type: {\n// selectors: ['selector', ...],\n// contexts : [document, ...],\n// listeners: [[listener, capture, passive], ...]\n// }\n// }\nvar delegatedEvents = {};\nvar documents = [];\n\nvar supportsOptions = function () {\n var supported = false;\n\n window.document.createElement('div').addEventListener('test', null, {\n get capture() {\n supported = true;\n }\n });\n\n return supported;\n}();\n\nfunction add(element, type, listener, optionalArg) {\n var options = getOptions(optionalArg);\n var elementIndex = elements.indexOf(element);\n var target = targets[elementIndex];\n\n if (!target) {\n target = {\n events: {},\n typeCount: 0\n };\n\n elementIndex = elements.push(element) - 1;\n targets.push(target);\n }\n\n if (!target.events[type]) {\n target.events[type] = [];\n target.typeCount++;\n }\n\n if (!contains(target.events[type], listener)) {\n element.addEventListener(type, listener, supportsOptions ? options : !!options.capture);\n target.events[type].push(listener);\n }\n}\n\nfunction remove(element, type, listener, optionalArg) {\n var options = getOptions(optionalArg);\n var elementIndex = elements.indexOf(element);\n var target = targets[elementIndex];\n\n if (!target || !target.events) {\n return;\n }\n\n if (type === 'all') {\n for (type in target.events) {\n if (target.events.hasOwnProperty(type)) {\n remove(element, type, 'all');\n }\n }\n return;\n }\n\n if (target.events[type]) {\n var len = target.events[type].length;\n\n if (listener === 'all') {\n for (var i = 0; i < len; i++) {\n remove(element, type, target.events[type][i], options);\n }\n return;\n } else {\n for (var _i = 0; _i < len; _i++) {\n if (target.events[type][_i] === listener) {\n element.removeEventListener('on' + type, listener, supportsOptions ? options : !!options.capture);\n target.events[type].splice(_i, 1);\n\n break;\n }\n }\n }\n\n if (target.events[type] && target.events[type].length === 0) {\n target.events[type] = null;\n target.typeCount--;\n }\n }\n\n if (!target.typeCount) {\n targets.splice(elementIndex, 1);\n elements.splice(elementIndex, 1);\n }\n}\n\nfunction addDelegate(selector, context, type, listener, optionalArg) {\n var options = getOptions(optionalArg);\n if (!delegatedEvents[type]) {\n delegatedEvents[type] = {\n selectors: [],\n contexts: [],\n listeners: []\n };\n\n // add delegate listener functions\n for (var _i2 = 0; _i2 < documents.length; _i2++) {\n var doc = documents[_i2];\n add(doc, type, delegateListener);\n add(doc, type, delegateUseCapture, true);\n }\n }\n\n var delegated = delegatedEvents[type];\n var index = void 0;\n\n for (index = delegated.selectors.length - 1; index >= 0; index--) {\n if (delegated.selectors[index] === selector && delegated.contexts[index] === context) {\n break;\n }\n }\n\n if (index === -1) {\n index = delegated.selectors.length;\n\n delegated.selectors.push(selector);\n delegated.contexts.push(context);\n delegated.listeners.push([]);\n }\n\n // keep listener and capture and passive flags\n delegated.listeners[index].push([listener, !!options.capture, options.passive]);\n}\n\nfunction removeDelegate(selector, context, type, listener, optionalArg) {\n var options = getOptions(optionalArg);\n var delegated = delegatedEvents[type];\n var matchFound = false;\n var index = void 0;\n\n if (!delegated) {\n return;\n }\n\n // count from last index of delegated to 0\n for (index = delegated.selectors.length - 1; index >= 0; index--) {\n // look for matching selector and context Node\n if (delegated.selectors[index] === selector && delegated.contexts[index] === context) {\n\n var listeners = delegated.listeners[index];\n\n // each item of the listeners array is an array: [function, capture, passive]\n for (var i = listeners.length - 1; i >= 0; i--) {\n var _listeners$i = listeners[i],\n fn = _listeners$i[0],\n capture = _listeners$i[1],\n passive = _listeners$i[2];\n\n // check if the listener functions and capture and passive flags match\n\n if (fn === listener && capture === !!options.capture && passive === options.passive) {\n // remove the listener from the array of listeners\n listeners.splice(i, 1);\n\n // if all listeners for this interactable have been removed\n // remove the interactable from the delegated arrays\n if (!listeners.length) {\n delegated.selectors.splice(index, 1);\n delegated.contexts.splice(index, 1);\n delegated.listeners.splice(index, 1);\n\n // remove delegate function from context\n remove(context, type, delegateListener);\n remove(context, type, delegateUseCapture, true);\n\n // remove the arrays if they are empty\n if (!delegated.selectors.length) {\n delegatedEvents[type] = null;\n }\n }\n\n // only remove one listener\n matchFound = true;\n break;\n }\n }\n\n if (matchFound) {\n break;\n }\n }\n }\n}\n\n// bound to the interactable context when a DOM event\n// listener is added to a selector interactable\nfunction delegateListener(event, optionalArg) {\n var options = getOptions(optionalArg);\n var fakeEvent = {};\n var delegated = delegatedEvents[event.type];\n\n var _pointerUtils$getEven = pointerUtils.getEventTargets(event),\n eventTarget = _pointerUtils$getEven[0];\n\n var element = eventTarget;\n\n // duplicate the event so that currentTarget can be changed\n pExtend(fakeEvent, event);\n\n fakeEvent.originalEvent = event;\n fakeEvent.preventDefault = preventOriginalDefault;\n\n // climb up document tree looking for selector matches\n while (is.element(element)) {\n for (var i = 0; i < delegated.selectors.length; i++) {\n var selector = delegated.selectors[i];\n var context = delegated.contexts[i];\n\n if (domUtils.matchesSelector(element, selector) && domUtils.nodeContains(context, eventTarget) && domUtils.nodeContains(context, element)) {\n\n var listeners = delegated.listeners[i];\n\n fakeEvent.currentTarget = element;\n\n for (var j = 0; j < listeners.length; j++) {\n var _listeners$j = listeners[j],\n fn = _listeners$j[0],\n capture = _listeners$j[1],\n passive = _listeners$j[2];\n\n\n if (capture === !!options.capture && passive === options.passive) {\n fn(fakeEvent);\n }\n }\n }\n }\n\n element = domUtils.parentNode(element);\n }\n}\n\nfunction delegateUseCapture(event) {\n return delegateListener.call(this, event, true);\n}\n\nfunction preventOriginalDefault() {\n this.originalEvent.preventDefault();\n}\n\nfunction getOptions(param) {\n return is.object(param) ? param : { capture: param };\n}\n\nmodule.exports = {\n add: add,\n remove: remove,\n\n addDelegate: addDelegate,\n removeDelegate: removeDelegate,\n\n delegateListener: delegateListener,\n delegateUseCapture: delegateUseCapture,\n delegatedEvents: delegatedEvents,\n documents: documents,\n\n supportsOptions: supportsOptions,\n\n _elements: elements,\n _targets: targets\n};\n\n},{\"./arr\":35,\"./domUtils\":39,\"./is\":46,\"./pointerExtend\":48,\"./pointerUtils\":49,\"./window\":52}],41:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = function extend(dest, source) {\n for (var prop in source) {\n dest[prop] = source[prop];\n }\n return dest;\n};\n\n},{}],42:[function(require,module,exports){\n'use strict';\n\nvar _require = require('./rect'),\n resolveRectLike = _require.resolveRectLike,\n rectToXY = _require.rectToXY;\n\nmodule.exports = function (target, element, action) {\n var actionOptions = target.options[action];\n var actionOrigin = actionOptions && actionOptions.origin;\n var origin = actionOrigin || target.options.origin;\n\n var originRect = resolveRectLike(origin, target, element, [target && element]);\n\n return rectToXY(originRect) || { x: 0, y: 0 };\n};\n\n},{\"./rect\":51}],43:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = function (x, y) {\n return Math.sqrt(x * x + y * y);\n};\n\n},{}],44:[function(require,module,exports){\n'use strict';\n\nvar extend = require('./extend');\nvar win = require('./window');\n\nvar utils = {\n warnOnce: function warnOnce(method, message) {\n var warned = false;\n\n return function () {\n if (!warned) {\n win.window.console.warn(message);\n warned = true;\n }\n\n return method.apply(this, arguments);\n };\n },\n\n // http://stackoverflow.com/a/5634528/2280888\n _getQBezierValue: function _getQBezierValue(t, p1, p2, p3) {\n var iT = 1 - t;\n return iT * iT * p1 + 2 * iT * t * p2 + t * t * p3;\n },\n\n getQuadraticCurvePoint: function getQuadraticCurvePoint(startX, startY, cpX, cpY, endX, endY, position) {\n return {\n x: utils._getQBezierValue(position, startX, cpX, endX),\n y: utils._getQBezierValue(position, startY, cpY, endY)\n };\n },\n\n // http://gizma.com/easing/\n easeOutQuad: function easeOutQuad(t, b, c, d) {\n t /= d;\n return -c * t * (t - 2) + b;\n },\n\n copyAction: function copyAction(dest, src) {\n dest.name = src.name;\n dest.axis = src.axis;\n dest.edges = src.edges;\n\n return dest;\n },\n\n is: require('./is'),\n extend: extend,\n hypot: require('./hypot'),\n getOriginXY: require('./getOriginXY')\n};\n\nextend(utils, require('./arr'));\nextend(utils, require('./domUtils'));\nextend(utils, require('./pointerUtils'));\nextend(utils, require('./rect'));\n\nmodule.exports = utils;\n\n},{\"./arr\":35,\"./domUtils\":39,\"./extend\":41,\"./getOriginXY\":42,\"./hypot\":43,\"./is\":46,\"./pointerUtils\":49,\"./rect\":51,\"./window\":52}],45:[function(require,module,exports){\n'use strict';\n\nvar scope = require('../scope');\nvar utils = require('./index');\n\nvar finder = {\n methodOrder: ['simulationResume', 'mouseOrPen', 'hasPointer', 'idle'],\n\n search: function search(pointer, eventType, eventTarget) {\n var pointerType = utils.getPointerType(pointer);\n var pointerId = utils.getPointerId(pointer);\n var details = { pointer: pointer, pointerId: pointerId, pointerType: pointerType, eventType: eventType, eventTarget: eventTarget };\n\n for (var _i = 0; _i < finder.methodOrder.length; _i++) {\n var _ref;\n\n _ref = finder.methodOrder[_i];\n var method = _ref;\n\n var interaction = finder[method](details);\n\n if (interaction) {\n return interaction;\n }\n }\n },\n\n // try to resume simulation with a new pointer\n simulationResume: function simulationResume(_ref2) {\n var pointerType = _ref2.pointerType,\n eventType = _ref2.eventType,\n eventTarget = _ref2.eventTarget;\n\n if (!/down|start/i.test(eventType)) {\n return null;\n }\n\n for (var _i2 = 0; _i2 < scope.interactions.length; _i2++) {\n var _ref3;\n\n _ref3 = scope.interactions[_i2];\n var interaction = _ref3;\n\n var element = eventTarget;\n\n if (interaction.simulation && interaction.simulation.allowResume && interaction.pointerType === pointerType) {\n while (element) {\n // if the element is the interaction element\n if (element === interaction.element) {\n return interaction;\n }\n element = utils.parentNode(element);\n }\n }\n }\n\n return null;\n },\n\n // if it's a mouse or pen interaction\n mouseOrPen: function mouseOrPen(_ref4) {\n var pointerId = _ref4.pointerId,\n pointerType = _ref4.pointerType,\n eventType = _ref4.eventType;\n\n if (pointerType !== 'mouse' && pointerType !== 'pen') {\n return null;\n }\n\n var firstNonActive = void 0;\n\n for (var _i3 = 0; _i3 < scope.interactions.length; _i3++) {\n var _ref5;\n\n _ref5 = scope.interactions[_i3];\n var interaction = _ref5;\n\n if (interaction.pointerType === pointerType) {\n // if it's a down event, skip interactions with running simulations\n if (interaction.simulation && !utils.contains(interaction.pointerIds, pointerId)) {\n continue;\n }\n\n // if the interaction is active, return it immediately\n if (interaction.interacting()) {\n return interaction;\n }\n // otherwise save it and look for another active interaction\n else if (!firstNonActive) {\n firstNonActive = interaction;\n }\n }\n }\n\n // if no active mouse interaction was found use the first inactive mouse\n // interaction\n if (firstNonActive) {\n return firstNonActive;\n }\n\n // find any mouse or pen interaction.\n // ignore the interaction if the eventType is a *down, and a simulation\n // is active\n for (var _i4 = 0; _i4 < scope.interactions.length; _i4++) {\n var _ref6;\n\n _ref6 = scope.interactions[_i4];\n var _interaction = _ref6;\n\n if (_interaction.pointerType === pointerType && !(/down/i.test(eventType) && _interaction.simulation)) {\n return _interaction;\n }\n }\n\n return null;\n },\n\n // get interaction that has this pointer\n hasPointer: function hasPointer(_ref7) {\n var pointerId = _ref7.pointerId;\n\n for (var _i5 = 0; _i5 < scope.interactions.length; _i5++) {\n var _ref8;\n\n _ref8 = scope.interactions[_i5];\n var interaction = _ref8;\n\n if (utils.contains(interaction.pointerIds, pointerId)) {\n return interaction;\n }\n }\n },\n\n // get first idle interaction with a matching pointerType\n idle: function idle(_ref9) {\n var pointerType = _ref9.pointerType;\n\n for (var _i6 = 0; _i6 < scope.interactions.length; _i6++) {\n var _ref10;\n\n _ref10 = scope.interactions[_i6];\n var interaction = _ref10;\n\n // if there's already a pointer held down\n if (interaction.pointerIds.length === 1) {\n var target = interaction.target;\n // don't add this pointer if there is a target interactable and it\n // isn't gesturable\n if (target && !target.options.gesture.enabled) {\n continue;\n }\n }\n // maximum of 2 pointers per interaction\n else if (interaction.pointerIds.length >= 2) {\n continue;\n }\n\n if (!interaction.interacting() && pointerType === interaction.pointerType) {\n return interaction;\n }\n }\n\n return null;\n }\n};\n\nmodule.exports = finder;\n\n},{\"../scope\":33,\"./index\":44}],46:[function(require,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar win = require('./window');\nvar isWindow = require('./isWindow');\n\nvar is = {\n array: function array() {},\n\n window: function window(thing) {\n return thing === win.window || isWindow(thing);\n },\n\n docFrag: function docFrag(thing) {\n return is.object(thing) && thing.nodeType === 11;\n },\n\n object: function object(thing) {\n return !!thing && (typeof thing === 'undefined' ? 'undefined' : _typeof(thing)) === 'object';\n },\n\n function: function _function(thing) {\n return typeof thing === 'function';\n },\n\n number: function number(thing) {\n return typeof thing === 'number';\n },\n\n bool: function bool(thing) {\n return typeof thing === 'boolean';\n },\n\n string: function string(thing) {\n return typeof thing === 'string';\n },\n\n element: function element(thing) {\n if (!thing || (typeof thing === 'undefined' ? 'undefined' : _typeof(thing)) !== 'object') {\n return false;\n }\n\n var _window = win.getWindow(thing) || win.window;\n\n return (/object|function/.test(_typeof(_window.Element)) ? thing instanceof _window.Element //DOM2\n : thing.nodeType === 1 && typeof thing.nodeName === 'string'\n );\n },\n\n plainObject: function plainObject(thing) {\n return is.object(thing) && thing.constructor.name === 'Object';\n }\n};\n\nis.array = function (thing) {\n return is.object(thing) && typeof thing.length !== 'undefined' && is.function(thing.splice);\n};\n\nmodule.exports = is;\n\n},{\"./isWindow\":47,\"./window\":52}],47:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = function (thing) {\n return !!(thing && thing.Window) && thing instanceof thing.Window;\n};\n\n},{}],48:[function(require,module,exports){\n'use strict';\n\nfunction pointerExtend(dest, source) {\n for (var prop in source) {\n var prefixedPropREs = module.exports.prefixedPropREs;\n var deprecated = false;\n\n // skip deprecated prefixed properties\n for (var vendor in prefixedPropREs) {\n if (prop.indexOf(vendor) === 0 && prefixedPropREs[vendor].test(prop)) {\n deprecated = true;\n break;\n }\n }\n\n if (!deprecated && typeof source[prop] !== 'function') {\n dest[prop] = source[prop];\n }\n }\n return dest;\n}\n\npointerExtend.prefixedPropREs = {\n webkit: /(Movement[XY]|Radius[XY]|RotationAngle|Force)$/\n};\n\nmodule.exports = pointerExtend;\n\n},{}],49:[function(require,module,exports){\n'use strict';\n\nvar hypot = require('./hypot');\nvar browser = require('./browser');\nvar dom = require('./domObjects');\nvar domUtils = require('./domUtils');\nvar domObjects = require('./domObjects');\nvar is = require('./is');\nvar pointerExtend = require('./pointerExtend');\n\nvar pointerUtils = {\n copyCoords: function copyCoords(dest, src) {\n dest.page = dest.page || {};\n dest.page.x = src.page.x;\n dest.page.y = src.page.y;\n\n dest.client = dest.client || {};\n dest.client.x = src.client.x;\n dest.client.y = src.client.y;\n\n dest.timeStamp = src.timeStamp;\n },\n\n setCoordDeltas: function setCoordDeltas(targetObj, prev, cur) {\n targetObj.page.x = cur.page.x - prev.page.x;\n targetObj.page.y = cur.page.y - prev.page.y;\n targetObj.client.x = cur.client.x - prev.client.x;\n targetObj.client.y = cur.client.y - prev.client.y;\n targetObj.timeStamp = cur.timeStamp - prev.timeStamp;\n\n // set pointer velocity\n var dt = Math.max(targetObj.timeStamp / 1000, 0.001);\n\n targetObj.page.speed = hypot(targetObj.page.x, targetObj.page.y) / dt;\n targetObj.page.vx = targetObj.page.x / dt;\n targetObj.page.vy = targetObj.page.y / dt;\n\n targetObj.client.speed = hypot(targetObj.client.x, targetObj.page.y) / dt;\n targetObj.client.vx = targetObj.client.x / dt;\n targetObj.client.vy = targetObj.client.y / dt;\n },\n\n isNativePointer: function isNativePointer(pointer) {\n return pointer instanceof dom.Event || pointer instanceof dom.Touch;\n },\n\n // Get specified X/Y coords for mouse or event.touches[0]\n getXY: function getXY(type, pointer, xy) {\n xy = xy || {};\n type = type || 'page';\n\n xy.x = pointer[type + 'X'];\n xy.y = pointer[type + 'Y'];\n\n return xy;\n },\n\n getPageXY: function getPageXY(pointer, page) {\n page = page || {};\n\n // Opera Mobile handles the viewport and scrolling oddly\n if (browser.isOperaMobile && pointerUtils.isNativePointer(pointer)) {\n pointerUtils.getXY('screen', pointer, page);\n\n page.x += window.scrollX;\n page.y += window.scrollY;\n } else {\n pointerUtils.getXY('page', pointer, page);\n }\n\n return page;\n },\n\n getClientXY: function getClientXY(pointer, client) {\n client = client || {};\n\n if (browser.isOperaMobile && pointerUtils.isNativePointer(pointer)) {\n // Opera Mobile handles the viewport and scrolling oddly\n pointerUtils.getXY('screen', pointer, client);\n } else {\n pointerUtils.getXY('client', pointer, client);\n }\n\n return client;\n },\n\n getPointerId: function getPointerId(pointer) {\n return is.number(pointer.pointerId) ? pointer.pointerId : pointer.identifier;\n },\n\n setCoords: function setCoords(targetObj, pointers, timeStamp) {\n var pointer = pointers.length > 1 ? pointerUtils.pointerAverage(pointers) : pointers[0];\n\n var tmpXY = {};\n\n pointerUtils.getPageXY(pointer, tmpXY);\n targetObj.page.x = tmpXY.x;\n targetObj.page.y = tmpXY.y;\n\n pointerUtils.getClientXY(pointer, tmpXY);\n targetObj.client.x = tmpXY.x;\n targetObj.client.y = tmpXY.y;\n\n targetObj.timeStamp = is.number(timeStamp) ? timeStamp : new Date().getTime();\n },\n\n pointerExtend: pointerExtend,\n\n getTouchPair: function getTouchPair(event) {\n var touches = [];\n\n // array of touches is supplied\n if (is.array(event)) {\n touches[0] = event[0];\n touches[1] = event[1];\n }\n // an event\n else {\n if (event.type === 'touchend') {\n if (event.touches.length === 1) {\n touches[0] = event.touches[0];\n touches[1] = event.changedTouches[0];\n } else if (event.touches.length === 0) {\n touches[0] = event.changedTouches[0];\n touches[1] = event.changedTouches[1];\n }\n } else {\n touches[0] = event.touches[0];\n touches[1] = event.touches[1];\n }\n }\n\n return touches;\n },\n\n pointerAverage: function pointerAverage(pointers) {\n var average = {\n pageX: 0,\n pageY: 0,\n clientX: 0,\n clientY: 0,\n screenX: 0,\n screenY: 0\n };\n\n for (var _i = 0; _i < pointers.length; _i++) {\n var _ref;\n\n _ref = pointers[_i];\n var pointer = _ref;\n\n for (var _prop in average) {\n average[_prop] += pointer[_prop];\n }\n }\n for (var prop in average) {\n average[prop] /= pointers.length;\n }\n\n return average;\n },\n\n touchBBox: function touchBBox(event) {\n if (!event.length && !(event.touches && event.touches.length > 1)) {\n return;\n }\n\n var touches = pointerUtils.getTouchPair(event);\n var minX = Math.min(touches[0].pageX, touches[1].pageX);\n var minY = Math.min(touches[0].pageY, touches[1].pageY);\n var maxX = Math.max(touches[0].pageX, touches[1].pageX);\n var maxY = Math.max(touches[0].pageY, touches[1].pageY);\n\n return {\n x: minX,\n y: minY,\n left: minX,\n top: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n },\n\n touchDistance: function touchDistance(event, deltaSource) {\n var sourceX = deltaSource + 'X';\n var sourceY = deltaSource + 'Y';\n var touches = pointerUtils.getTouchPair(event);\n\n var dx = touches[0][sourceX] - touches[1][sourceX];\n var dy = touches[0][sourceY] - touches[1][sourceY];\n\n return hypot(dx, dy);\n },\n\n touchAngle: function touchAngle(event, prevAngle, deltaSource) {\n var sourceX = deltaSource + 'X';\n var sourceY = deltaSource + 'Y';\n var touches = pointerUtils.getTouchPair(event);\n var dx = touches[1][sourceX] - touches[0][sourceX];\n var dy = touches[1][sourceY] - touches[0][sourceY];\n var angle = 180 * Math.atan2(dy, dx) / Math.PI;\n\n return angle;\n },\n\n getPointerType: function getPointerType(pointer) {\n return is.string(pointer.pointerType) ? pointer.pointerType : is.number(pointer.pointerType) ? [undefined, undefined, 'touch', 'pen', 'mouse'][pointer.pointerType]\n // if the PointerEvent API isn't available, then the \"pointer\" must\n // be either a MouseEvent, TouchEvent, or Touch object\n : /touch/.test(pointer.type) || pointer instanceof domObjects.Touch ? 'touch' : 'mouse';\n },\n\n // [ event.target, event.currentTarget ]\n getEventTargets: function getEventTargets(event) {\n var path = is.function(event.composedPath) ? event.composedPath() : event.path;\n\n return [domUtils.getActualElement(path ? path[0] : event.target), domUtils.getActualElement(event.currentTarget)];\n }\n};\n\nmodule.exports = pointerUtils;\n\n},{\"./browser\":36,\"./domObjects\":38,\"./domUtils\":39,\"./hypot\":43,\"./is\":46,\"./pointerExtend\":48}],50:[function(require,module,exports){\n'use strict';\n\nvar _require = require('./window'),\n window = _require.window;\n\nvar vendors = ['ms', 'moz', 'webkit', 'o'];\nvar lastTime = 0;\nvar request = void 0;\nvar cancel = void 0;\n\nfor (var x = 0; x < vendors.length && !window.requestAnimationFrame; x++) {\n request = window[vendors[x] + 'RequestAnimationFrame'];\n cancel = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];\n}\n\nif (!request) {\n request = function request(callback) {\n var currTime = new Date().getTime();\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\n var id = setTimeout(function () {\n callback(currTime + timeToCall);\n }, timeToCall);\n\n lastTime = currTime + timeToCall;\n return id;\n };\n}\n\nif (!cancel) {\n cancel = function cancel(id) {\n clearTimeout(id);\n };\n}\n\nmodule.exports = {\n request: request,\n cancel: cancel\n};\n\n},{\"./window\":52}],51:[function(require,module,exports){\n'use strict';\n\nvar extend = require('./extend');\nvar is = require('./is');\n\nvar _require = require('./domUtils'),\n closest = _require.closest,\n parentNode = _require.parentNode,\n getElementRect = _require.getElementRect;\n\nvar rectUtils = {\n getStringOptionResult: function getStringOptionResult(value, interactable, element) {\n if (!is.string(value)) {\n return null;\n }\n\n if (value === 'parent') {\n value = parentNode(element);\n } else if (value === 'self') {\n value = interactable.getRect(element);\n } else {\n value = closest(element, value);\n }\n\n return value;\n },\n\n resolveRectLike: function resolveRectLike(value, interactable, element, functionArgs) {\n value = rectUtils.getStringOptionResult(value, interactable, element) || value;\n\n if (is.function(value)) {\n value = value.apply(null, functionArgs);\n }\n\n if (is.element(value)) {\n value = getElementRect(value);\n }\n\n return value;\n },\n\n rectToXY: function rectToXY(rect) {\n return rect && {\n x: 'x' in rect ? rect.x : rect.left,\n y: 'y' in rect ? rect.y : rect.top\n };\n },\n\n xywhToTlbr: function xywhToTlbr(rect) {\n if (rect && !('left' in rect && 'top' in rect)) {\n rect = extend({}, rect);\n\n rect.left = rect.x || 0;\n rect.top = rect.y || 0;\n rect.right = rect.right || rect.left + rect.width;\n rect.bottom = rect.bottom || rect.top + rect.height;\n }\n\n return rect;\n },\n\n tlbrToXywh: function tlbrToXywh(rect) {\n if (rect && !('x' in rect && 'y' in rect)) {\n rect = extend({}, rect);\n\n rect.x = rect.left || 0;\n rect.top = rect.top || 0;\n rect.width = rect.width || rect.right - rect.x;\n rect.height = rect.height || rect.bottom - rect.y;\n }\n\n return rect;\n }\n};\n\nmodule.exports = rectUtils;\n\n},{\"./domUtils\":39,\"./extend\":41,\"./is\":46}],52:[function(require,module,exports){\n'use strict';\n\nvar win = module.exports;\nvar isWindow = require('./isWindow');\n\nfunction init(window) {\n // get wrapped window if using Shadow DOM polyfill\n\n win.realWindow = window;\n\n // create a TextNode\n var el = window.document.createTextNode('');\n\n // check if it's wrapped by a polyfill\n if (el.ownerDocument !== window.document && typeof window.wrap === 'function' && window.wrap(el) === el) {\n // use wrapped window\n window = window.wrap(window);\n }\n\n win.window = window;\n}\n\nif (typeof window === 'undefined') {\n win.window = undefined;\n win.realWindow = undefined;\n} else {\n init(window);\n}\n\nwin.getWindow = function getWindow(node) {\n if (isWindow(node)) {\n return node;\n }\n\n var rootNode = node.ownerDocument || node;\n\n return rootNode.defaultView || rootNode.parentWindow || win.window;\n};\n\nwin.init = init;\n\n},{\"./isWindow\":47}]},{},[1])(1)\n});\n\n\n//# sourceMappingURL=interact.js.map\n","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://VueGridLayout/webpack/bootstrap","webpack://VueGridLayout/./node_modules/core-js/modules/_iter-define.js","webpack://VueGridLayout/./node_modules/core-js/modules/_string-at.js","webpack://VueGridLayout/./node_modules/core-js/modules/_advance-string-index.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_has.js","webpack://VueGridLayout/./node_modules/core-js/modules/_flags.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-keys.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_to-absolute-index.js","webpack://VueGridLayout/./src/components/GridLayout.vue?43b0","webpack://VueGridLayout/./node_modules/core-js/modules/_object-gopd.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-dps.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_enum-bug-keys.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/detection-strategy/object.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/browser-detector.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/es6.array.is-array.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_to-primitive.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_dom-create.js","webpack://VueGridLayout/./node_modules/core-js/modules/_fix-re-wks.js","webpack://VueGridLayout/./node_modules/core-js/modules/_dom-create.js","webpack://VueGridLayout/./node_modules/css-loader/lib/css-base.js","webpack://VueGridLayout/./node_modules/core-js/modules/_classof.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_to-object.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_defined.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_fails.js","webpack://VueGridLayout/./node_modules/core-js/modules/_redefine.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-create.js","webpack://VueGridLayout/./node_modules/core-js/modules/_wks.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/id-generator.js","webpack://VueGridLayout/./node_modules/core-js/modules/_library.js","webpack://VueGridLayout/./node_modules/core-js/modules/_cof.js","webpack://VueGridLayout/./node_modules/core-js/modules/_strict-method.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/es6.object.keys.js","webpack://VueGridLayout/./node_modules/core-js/modules/_hide.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_iobject.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_hide.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_to-iobject.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-gpo.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_to-integer.js","webpack://VueGridLayout/./node_modules/core-js/modules/_iter-create.js","webpack://VueGridLayout/./node_modules/core-js/modules/_to-integer.js","webpack://VueGridLayout/./node_modules/core-js/modules/_property-desc.js","webpack://VueGridLayout/./node_modules/vue-style-loader/lib/listToStyles.js","webpack://VueGridLayout/./node_modules/vue-style-loader/lib/addStylesClient.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/listener-handler.js","webpack://VueGridLayout/./node_modules/core-js/modules/_to-object.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/id-handler.js","webpack://VueGridLayout/./node_modules/batch-processor/src/utils.js","webpack://VueGridLayout/./node_modules/core-js/modules/_regexp-exec.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-pie.js","webpack://VueGridLayout/./node_modules/core-js/modules/_shared.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_shared-key.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.array.sort.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_core.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_array-includes.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/element-utils.js","webpack://VueGridLayout/./node_modules/core-js/modules/_export.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_parse-int.js","webpack://VueGridLayout/./node_modules/core-js/modules/_inherit-if-required.js","webpack://VueGridLayout/./src/components/GridItem.vue?70f1","webpack://VueGridLayout/./node_modules/core-js/modules/_regexp-exec-abstract.js","webpack://VueGridLayout/./node_modules/core-js/modules/_shared-key.js","webpack://VueGridLayout/./node_modules/core-js/modules/_iobject.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_uid.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_export.js","webpack://VueGridLayout/./node_modules/core-js/modules/_to-iobject.js","webpack://VueGridLayout/./node_modules/core-js/modules/_has.js","webpack://VueGridLayout/./node_modules/core-js/modules/_to-primitive.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_cof.js","webpack://VueGridLayout/./src/components/GridItem.vue?73c4","webpack://VueGridLayout/./node_modules/core-js/library/modules/es6.parse-int.js","webpack://VueGridLayout/./node_modules/core-js/modules/_global.js","webpack://VueGridLayout/./node_modules/core-js/modules/_to-absolute-index.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_ie8-dom-define.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_a-function.js","webpack://VueGridLayout/./node_modules/core-js/modules/_fails.js","webpack://VueGridLayout/./node_modules/core-js/modules/_set-to-string-tag.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.function.name.js","webpack://VueGridLayout/./node_modules/core-js/modules/_core.js","webpack://VueGridLayout/./node_modules/core-js/modules/_iterators.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-dp.js","webpack://VueGridLayout/./node_modules/core-js/library/fn/object/keys.js","webpack://VueGridLayout/./node_modules/core-js/modules/_set-proto.js","webpack://VueGridLayout/external {\"commonjs\":\"vue\",\"commonjs2\":\"vue\",\"root\":\"Vue\"}","webpack://VueGridLayout/./node_modules/core-js/library/modules/_descriptors.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_is-array.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-gopn.js","webpack://VueGridLayout/./node_modules/core-js/modules/_ctx.js","webpack://VueGridLayout/./node_modules/core-js/modules/_add-to-unscopables.js","webpack://VueGridLayout/./src/components/GridItem.vue?b235","webpack://VueGridLayout/./node_modules/core-js/modules/_to-length.js","webpack://VueGridLayout/./node_modules/core-js/modules/_descriptors.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_string-trim.js","webpack://VueGridLayout/./node_modules/core-js/library/fn/json/stringify.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.regexp.replace.js","webpack://VueGridLayout/./node_modules/@babel/runtime-corejs2/core-js/object/keys.js","webpack://VueGridLayout/./node_modules/@babel/runtime-corejs2/core-js/array/is-array.js","webpack://VueGridLayout/./node_modules/core-js/modules/_string-trim.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/reporter.js","webpack://VueGridLayout/./node_modules/core-js/modules/web.dom.iterable.js","webpack://VueGridLayout/./src/components/GridLayout.vue?af6b","webpack://VueGridLayout/./node_modules/core-js/library/modules/_property-desc.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.regexp.exec.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_to-length.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/collection-utils.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_library.js","webpack://VueGridLayout/./node_modules/core-js/library/fn/parse-int.js","webpack://VueGridLayout/./node_modules/core-js/modules/_defined.js","webpack://VueGridLayout/./node_modules/batch-processor/src/batch-processor.js","webpack://VueGridLayout/./node_modules/core-js/modules/_array-includes.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_object-keys.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.number.constructor.js","webpack://VueGridLayout/./node_modules/core-js/modules/_ie8-dom-define.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/detection-strategy/scroll.js","webpack://VueGridLayout/./node_modules/core-js/modules/_uid.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.array.iterator.js","webpack://VueGridLayout/./node_modules/core-js/modules/_an-object.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-keys-internal.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_object-sap.js","webpack://VueGridLayout/./node_modules/core-js/modules/_is-object.js","webpack://VueGridLayout/./node_modules/core-js/modules/_iter-step.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/state-handler.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_ctx.js","webpack://VueGridLayout/./node_modules/core-js/modules/_a-function.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_object-dp.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_shared.js","webpack://VueGridLayout/./node_modules/core-js/modules/_enum-bug-keys.js","webpack://VueGridLayout/./src/components/GridLayout.vue?2bdf","webpack://VueGridLayout/./node_modules/core-js/library/modules/_an-object.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_global.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_string-ws.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_object-keys-internal.js","webpack://VueGridLayout/./node_modules/@babel/runtime-corejs2/core-js/parse-int.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/element-resize-detector.js","webpack://VueGridLayout/./node_modules/core-js/library/fn/array/is-array.js","webpack://VueGridLayout/./node_modules/@babel/runtime-corejs2/core-js/json/stringify.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_is-object.js","webpack://VueGridLayout/./node_modules/core-js/modules/_function-to-string.js","webpack://VueGridLayout/./node_modules/core-js/modules/_html.js","webpack://VueGridLayout/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://VueGridLayout/./src/components/GridItem.vue?d2b9","webpack://VueGridLayout/./src/helpers/utils.js","webpack://VueGridLayout/./src/helpers/draggableUtils.js","webpack://VueGridLayout/./src/helpers/DOM.js","webpack://VueGridLayout/src/components/GridItem.vue","webpack://VueGridLayout/./src/components/GridItem.vue?2537","webpack://VueGridLayout/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://VueGridLayout/./src/components/GridItem.vue","webpack://VueGridLayout/./src/components/GridLayout.vue?972e","webpack://VueGridLayout/./src/helpers/responsiveUtils.js","webpack://VueGridLayout/src/components/GridLayout.vue","webpack://VueGridLayout/./src/components/GridLayout.vue?2dea","webpack://VueGridLayout/./src/components/GridLayout.vue","webpack://VueGridLayout/./src/components/index.js","webpack://VueGridLayout/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js","webpack://VueGridLayout/./node_modules/interactjs/dist/interact.js","webpack://VueGridLayout/./node_modules/core-js/modules/_string-ws.js"],"names":["bottom","layout","max","bottomY","i","len","length","y","h","cloneLayout","newLayout","Array","cloneLayoutItem","layoutItem","JSON","parse","collides","l1","l2","x","w","compact","verticalCompact","compareWith","getStatics","sorted","sortLayoutItemsByRowCol","out","l","static","compactItem","push","indexOf","moved","getFirstCollision","correctBounds","bounds","collidesWith","cols","getLayoutItem","id","getAllCollisions","filter","moveElement","isUserAction","movingUp","reverse","collisions","collision","moveElementAwayFromCollision","itemToMove","fakeItem","Math","undefined","perc","num","setTransform","top","left","width","height","translate","transform","WebkitTransform","MozTransform","msTransform","OTransform","position","setTransformRtl","right","setTopLeft","setTopRight","concat","sort","a","b","validateLayout","contextName","subProps","Error","item","j","autoBindHandlers","el","fns","forEach","key","bind","createMarkup","obj","keys","result","val","hyphenate","addPx","IS_UNITLESS","animationIterationCount","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridColumn","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","stopOpacity","strokeDashoffset","strokeOpacity","strokeWidth","name","value","hyphenateRE","str","replace","toLowerCase","findItemInArray","array","property","findAndRemove","index","splice","getControlPosition","e","offsetXYFromParentOf","evt","offsetParent","target","document","body","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","createCoreData","lastX","lastY","isStart","isNum","deltaX","deltaY","isNaN","currentDir","hasDocument","hasWindow","window","getDocumentDir","direction","dir","getElementsByTagName","getAttribute","setDocumentDir","html","setAttribute","addWindowEventListener","event","callback","addEventListener","removeWindowEventListener","removeEventListener","getBreakpointFromWidth","breakpoints","sortBreakpoints","matching","breakpointName","getColsFromBreakpoint","breakpoint","findOrGenerateResponsiveLayout","orgLayout","layouts","lastBreakpoint","breakpointsSorted","breakpointsAbove","slice","generateResponsiveLayout","VueGridLayout","GridLayout","GridItem","Vue","component"],"mappings":"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CA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,+CAA+C,oBAAoB,QAAQ,SAAS,aAAa,cAAc,cAAc,YAAY,WAAW,YAAY,gBAAgB,sBAAsB;;AAEtM;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;;AAE7B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtNa;;AAEb;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;;;;;;;ACtCA;AACA,cAAc,mBAAO,CAAC,MAAW;;AAEjC,6BAA6B,UAAU,mBAAO,CAAC,MAAa,GAAG;;;;;;;;ACH/D;AACA,eAAe,mBAAO,CAAC,MAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA,eAAe,mBAAO,CAAC,MAAc;AACrC,eAAe,mBAAO,CAAC,MAAW;AAClC;AACA;AACA;AACA;AACA;;;;;;;;;ACNa;AACb,mBAAO,CAAC,MAAmB;AAC3B,eAAe,mBAAO,CAAC,MAAa;AACpC,WAAW,mBAAO,CAAC,MAAS;AAC5B,YAAY,mBAAO,CAAC,MAAU;AAC9B,cAAc,mBAAO,CAAC,MAAY;AAClC,UAAU,mBAAO,CAAC,MAAQ;AAC1B,iBAAiB,mBAAO,CAAC,MAAgB;;AAEzC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,yBAAyB,4CAA4C;AACrE;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,UAAU;AACvC;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB,aAAa;AAC3D;AACA;AACA;AACA;AACA,6CAA6C,WAAW;AACxD;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,kBAAkB;AAClB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAAgC,qCAAqC;AACrE;AACA;AACA,2BAA2B,gCAAgC;AAC3D;AACA;AACA;;;;;;;;AC/FA,eAAe,mBAAO,CAAC,MAAc;AACrC,eAAe,mBAAO,CAAC,MAAW;AAClC;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gBAAgB;AACnD,IAAI;AACJ;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,oDAAoD,cAAc;;AAElE;AACA;;;;;;;;AC3EA;AACA,UAAU,mBAAO,CAAC,MAAQ;AAC1B,UAAU,mBAAO,CAAC,MAAQ;AAC1B;AACA,2BAA2B,kBAAkB,EAAE;;AAE/C;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA,cAAc,mBAAO,CAAC,MAAY;AAClC;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;ACNA,aAAa,mBAAO,CAAC,MAAW;AAChC,WAAW,mBAAO,CAAC,MAAS;AAC5B,UAAU,mBAAO,CAAC,MAAQ;AAC1B,UAAU,mBAAO,CAAC,MAAQ;AAC1B,gBAAgB,mBAAO,CAAC,MAAuB;AAC/C;AACA;;AAEA,mBAAO,CAAC,MAAS;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;;;;;;;;AC9BD;AACA,eAAe,mBAAO,CAAC,MAAc;AACrC,UAAU,mBAAO,CAAC,MAAe;AACjC,kBAAkB,mBAAO,CAAC,MAAkB;AAC5C,eAAe,mBAAO,CAAC,MAAe;AACtC,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA,eAAe,mBAAO,CAAC,MAAe;AACtC;AACA;AACA;AACA;AACA;AACA,EAAE,mBAAO,CAAC,MAAS;AACnB,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;ACxCA,YAAY,mBAAO,CAAC,MAAW;AAC/B,UAAU,mBAAO,CAAC,MAAQ;AAC1B,aAAa,mBAAO,CAAC,MAAW;AAChC;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACVa;;AAEb;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;ACjBA;;;;;;;;ACAA,iBAAiB;;AAEjB;AACA;AACA;;;;;;;;;ACJa;AACb,YAAY,mBAAO,CAAC,MAAU;;AAE9B;AACA;AACA;AACA,yCAAyC,cAAc;AACvD,GAAG;AACH;;;;;;;;ACRA;AACA,eAAe,mBAAO,CAAC,MAAc;AACrC,YAAY,mBAAO,CAAC,MAAgB;;AAEpC,mBAAO,CAAC,MAAe;AACvB;AACA;AACA;AACA,CAAC;;;;;;;;ACRD,SAAS,mBAAO,CAAC,MAAc;AAC/B,iBAAiB,mBAAO,CAAC,MAAkB;AAC3C,iBAAiB,mBAAO,CAAC,MAAgB;AACzC;AACA,CAAC;AACD;AACA;AACA;;;;;;;;ACPA;AACA,UAAU,mBAAO,CAAC,MAAQ;AAC1B;AACA;AACA;AACA;;;;;;;;ACLA,SAAS,mBAAO,CAAC,MAAc;AAC/B,iBAAiB,mBAAO,CAAC,MAAkB;AAC3C,iBAAiB,mBAAO,CAAC,MAAgB;AACzC;AACA,CAAC;AACD;AACA;AACA;;;;;;;;ACPA;AACA,cAAc,mBAAO,CAAC,MAAY;AAClC,cAAc,mBAAO,CAAC,MAAY;AAClC;AACA;AACA;;;;;;;;ACLA;AACA,UAAU,mBAAO,CAAC,MAAQ;AAC1B,eAAe,mBAAO,CAAC,MAAc;AACrC,eAAe,mBAAO,CAAC,MAAe;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLa;AACb,aAAa,mBAAO,CAAC,MAAkB;AACvC,iBAAiB,mBAAO,CAAC,MAAkB;AAC3C,qBAAqB,mBAAO,CAAC,MAAsB;AACnD;;AAEA;AACA,mBAAO,CAAC,MAAS,qBAAqB,mBAAO,CAAC,MAAQ,4BAA4B,aAAa,EAAE;;AAEjG;AACA,qDAAqD,4BAA4B;AACjF;AACA;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACe;AACf;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,wBAAwB;AAC3D,KAAK;AACL;AACA;AACA;AACA;AACA;;;AC1BA;AAAA;AACA;AACA;AACA;AACA;;AAEyC;;AAEzC;;AAEA;AACA;AACA;AACA;AACA,UAAU,iBAAiB;AAC3B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;;AAEA;;AAEA,eAAe,YAAY;AAC3B;;AAEA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B;AACA,KAAK;AACL;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7Na;;AAEb;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3DA;AACA,cAAc,mBAAO,CAAC,MAAY;AAClC;AACA;AACA;;;;;;;;;ACJa;;AAEb;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,mBAAmB;AACpC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,mBAAmB;AACpC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;AC9Ca;;AAEb;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;ACda;;AAEb,kBAAkB,mBAAO,CAAC,MAAU;;AAEpC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;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ACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;;;;;;;ACrHD,iBAAiB,mBAAO,CAAC,MAAgC,E;;;;;;;ACAzD,iBAAiB,mBAAO,CAAC,MAAmC,E;;;;;;;ACA5D,cAAc,mBAAO,CAAC,MAAW;AACjC,cAAc,mBAAO,CAAC,MAAY;AAClC,YAAY,mBAAO,CAAC,MAAU;AAC9B,aAAa,mBAAO,CAAC,MAAc;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;AC7Ba;;AAEb;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,iBAAiB;AACjB,mCAAmC,sBAAsB;AACzD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,E;;;;;;;AC1CA,iBAAiB,mBAAO,CAAC,MAAsB;AAC/C,cAAc,mBAAO,CAAC,MAAgB;AACtC,eAAe,mBAAO,CAAC,MAAa;AACpC,aAAa,mBAAO,CAAC,MAAW;AAChC,WAAW,mBAAO,CAAC,MAAS;AAC5B,gBAAgB,mBAAO,CAAC,MAAc;AACtC,UAAU,mBAAO,CAAC,MAAQ;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAoD,wBAAwB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA,2BAA2B,mBAAO,CAAC,MAA+C;AAClF;;;AAGA;AACA,cAAc,QAAS,oBAAoB,kBAAkB,mCAAmC,2BAA2B;;AAE3H;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPa;AACb,iBAAiB,mBAAO,CAAC,MAAgB;AACzC,mBAAO,CAAC,MAAW;AACnB;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;;;;;;;;ACRD;AACA,gBAAgB,mBAAO,CAAC,MAAe;AACvC;AACA;AACA,2DAA2D;AAC3D;;;;;;;;;ACLa;;AAEb;;AAEA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,SAAS;AACpB,aAAa,EAAE;AACf;AACA;AACA,kBAAkB,uBAAuB;AACzC;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;;;;;;;;ACAA,mBAAO,CAAC,MAA0B;AAClC,iBAAiB,mBAAO,CAAC,MAAkB;;;;;;;;ACD3C;AACA;AACA;AACA;AACA;;;;;;;;;ACJa;;AAEb,YAAY,mBAAO,CAAC,MAAS;;AAE7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AAC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ACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,mCAAmC,iBAAiB;AACpD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kEAAkE,iBAAiB,YAAY,aAAa,aAAa,kBAAkB,WAAW,YAAY;AAClK;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,2CAA2C,kBAAkB,sBAAsB,wBAAwB;AAC3G;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,8DAA8D,YAAY,kBAAkB,aAAa,oBAAoB,aAAa,cAAc,WAAW,UAAU;AAC7K,8DAA8D,YAAY,kBAAkB,aAAa,oBAAoB;AAC7H,8DAA8D,YAAY,kBAAkB,aAAa,oBAAoB,aAAa,cAAc;AACxJ,8DAA8D,YAAY,kBAAkB,aAAa,oBAAoB,aAAa,cAAc;AACxJ,8DAA8D,SAAS,QAAQ;AAC/E,8DAA8D,aAAa,cAAc;;AAEzF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtoBA;AACA;AACA;AACA;AACA;;;;;;;;;ACJa;AACb,uBAAuB,mBAAO,CAAC,MAAuB;AACtD,WAAW,mBAAO,CAAC,MAAc;AACjC,gBAAgB,mBAAO,CAAC,MAAc;AACtC,gBAAgB,mBAAO,CAAC,MAAe;;AAEvC;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,MAAgB;AACzC,gCAAgC;AAChC,cAAc;AACd,iBAAiB;AACjB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;;;;;;;ACjCA,eAAe,mBAAO,CAAC,MAAc;AACrC;AACA;AACA;AACA;;;;;;;;ACJA,UAAU,mBAAO,CAAC,MAAQ;AAC1B,gBAAgB,mBAAO,CAAC,MAAe;AACvC,mBAAmB,mBAAO,CAAC,MAAmB;AAC9C,eAAe,mBAAO,CAAC,MAAe;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA,cAAc,mBAAO,CAAC,MAAW;AACjC,WAAW,mBAAO,CAAC,MAAS;AAC5B,YAAY,mBAAO,CAAC,MAAU;AAC9B;AACA,6BAA6B;AAC7B;AACA;AACA,qDAAqD,OAAO,EAAE;AAC9D;;;;;;;;ACTA;AACA;AACA;;;;;;;;ACFA;AACA,UAAU;AACV;;;;;;;;;ACFa;;AAEb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA,gBAAgB,mBAAO,CAAC,MAAe;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;;;;;;;;ACHA,eAAe,mBAAO,CAAC,MAAc;AACrC,qBAAqB,mBAAO,CAAC,MAAmB;AAChD,kBAAkB,mBAAO,CAAC,MAAiB;AAC3C;;AAEA,YAAY,mBAAO,CAAC,MAAgB;AACpC;AACA;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;AACA;AACA;AACA;;;;;;;;ACfA,WAAW,mBAAO,CAAC,MAAS;AAC5B,aAAa,mBAAO,CAAC,MAAW;AAChC;AACA,kDAAkD;;AAElD;AACA,qEAAqE;AACrE,CAAC;AACD;AACA,QAAQ,mBAAO,CAAC,MAAY;AAC5B;AACA,CAAC;;;;;;;;ACXD;AACA;AACA;AACA;;;;;;;;;ACHA;AAAA;AAAA;AAAkf,CAAgB,whBAAG,EAAC,C;;;;;;;ACAtgB,eAAe,mBAAO,CAAC,MAAc;AACrC;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA,yCAAyC;;;;;;;;ACLzC;AACA;;;;;;;;ACDA,UAAU,mBAAO,CAAC,MAAQ;AAC1B,gBAAgB,mBAAO,CAAC,MAAe;AACvC,mBAAmB,mBAAO,CAAC,MAAmB;AAC9C,eAAe,mBAAO,CAAC,MAAe;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA,iBAAiB,mBAAO,CAAC,MAA8B,E;;;;;;;;ACA1C;;AAEb,8BAA8B,mBAAO,CAAC,MAAoB;AAC1D,8BAA8B,mBAAO,CAAC,MAAiB;AACvD,8BAA8B,mBAAO,CAAC,MAAoB;AAC1D,8BAA8B,mBAAO,CAAC,MAAgB;AACtD,8BAA8B,mBAAO,CAAC,MAAc;AACpD,8BAA8B,mBAAO,CAAC,MAAY;AAClD,8BAA8B,mBAAO,CAAC,MAAoB;AAC1D,8BAA8B,mBAAO,CAAC,MAAiB;AACvD,8BAA8B,mBAAO,CAAC,MAAiB;;AAEvD;AACA,8BAA8B,mBAAO,CAAC,MAAgC;AACtE,8BAA8B,mBAAO,CAAC,MAAgC;;AAEtE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB;;AAEA;AACA;AACA,UAAU;AACV,cAAc,QAAQ;AACtB;AACA;AACA,cAAc,UAAU;AACxB;AACA,cAAc,SAAS;AACvB;AACA;AACA,cAAc,QAAQ;AACtB;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,qCAAqC,6CAA6C,EAAE;AACpF;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,mFAAmF,qBAAqB;;AAExG;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,kBAAkB;AACjC,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA,8EAA8E;AAC9E;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA,yDAAyD,eAAe;AACxE;;AAEA;AACA;AACA;AACA;AACA;;AAEA;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BA,qBA3BA;AA4BA,oBA5BA;AA6BA,oBA7BA;AA8BA,oBA9BA;AA+BA;AA/BA;AAiCA,GAtIA;AAuIA,SAvIA,qBAuIA;AAAA;;AACA,oBADA,CAGA;;AACA;AACA;AACA,KAFA;;AAIA;AACA;AACA,KAFA;;AAIA;AACA;AACA;AACA;AACA,KAJA;;AAMA;AACA;AACA;AACA;AACA,KAJA;;AAMA;AACA;AACA,KAFA;;AAIA;AACA;;AACA;AACA,KAHA;;AAKA;AACA;AACA,KAFA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA,GArLA;AAsLA;AACA,oBADA,CAEA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAVA,CAUA;AACA,GAjMA;AAkMA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA,KAFA,MAEA;AACA;AACA;;AACA;AACA;AACA,KAFA,MAEA;AACA;AACA;;AACA;AACA;AACA,GApNA;AAqNA;AACA;AACA;AACA,KAHA;AAIA;AACA;AACA;AACA,KAPA;AAQA;AACA;AACA,KAVA;AAWA;AACA;AACA,KAbA;AAcA;AACA;AACA,KAhBA;AAiBA;AACA;AACA,KAnBA;AAoBA;AACA;AACA;AACA,KAvBA;AAwBA;AACA;AACA;AACA,KA3BA;AA4BA;AACA;AACA;AACA,KA/BA;AAgCA;AACA;AACA;AACA,KAnCA;AAoCA;AACA;AACA;AACA,KAvCA;AAwCA;AACA;AACA;AACA,KA3CA;AA4CA;AACA;AACA;AACA;AACA;AAhDA,GArNA;AAuQA;AACA,yBADA,mCACA;AACA;AACA,KAHA;AAIA,aAJA,uBAIA;AACA;AACA,KANA;AAOA,aAPA,uBAOA;AACA;AACA,KATA;AAUA,wBAVA,kCAUA;AACA;AACA;AACA,OAFA,MAEA;AACA;AACA;AACA;AAhBA,GAvQA;AAyRA;AACA;AACA;AACA;AACA;AACA,OAHA,MAGA;AACA;AACA;AACA;;AACA;;AAGA;AACA,oCADA,CAEA;;AACA;AACA;AACA,SAFA,MAEA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;AAEA,gBAzBA,CA0BA;;AACA;AACA;AACA;AACA;AACA,SAFA,MAEA;AACA;AACA;AAEA,OARA,MAQA;AAAA;AACA;AACA;AACA;AACA,SAFA,MAEA;AACA;AACA;AACA;;AACA;AAEA,KA9CA;AA+CA;AACA;AACA,+CAFA,CAGA;;AACA,mCAJA,CAIA;;AAJA,UAKA,CALA,GAKA,QALA,CAKA,CALA;AAAA,UAKA,CALA,GAKA,QALA,CAKA,CALA;AAOA;AAAA;AAAA;AAAA;AACA;;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AAAA;AACA;AACA;;AACA;AACA;AACA,aAFA,MAEA;AACA;AACA;;AACA,qEARA,CAUA;;AACA;AACA;AACA;;AACA;AAAA;AACA;AACA;AACA;AACA,wCAJA,CAKA;;AACA;AACA;AACA;AACA;AAlCA,OATA,CA8CA;;;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AAEA;AACA;AACA;;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA,KA7HA;AA8HA,cA9HA,sBA8HA,KA9HA,EA8HA;AACA;AACA;AAEA,+CAJA,CAMA;;AACA,oCAPA,CAOA;;AAPA,UAQA,CARA,GAQA,QARA,CAQA,CARA;AAAA,UAQA,CARA,GAQA,QARA,CAQA,CARA,EAUA;;AACA;AAAA;AAAA;AAAA;;AACA;AACA;AAAA;AACA;AACA;AAEA;AACA;;AACA;AACA;AACA,aAFA,MAEA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;AACA;AAAA;AACA;;AACA;;AACA,mEAHA,CAIA;;;AACA;AACA;AACA,aAFA,MAEA;AACA;AACA;;AACA,gEAVA,CAWA;AACA;;AACA;AACA,oCAdA,CAeA;;AACA;AACA;;AACA;AAAA;AACA,yEADA,CAEA;;AACA;AACA;AACA,aAFA,MAEA;AACA;AACA;;AACA,mEARA,CASA;AACA;AACA;;AACA;AACA;AACA;AAjDA,OAZA,CAgEA;;;AACA;;AACA;AACA;AACA,OAFA,MAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA,KAhNA;AAiNA;AACA,yCADA,CAEA;;AACA;;AACA;AACA;AACA,oEADA;AAEA,wEAFA;AAGA;AACA;AACA;AACA,oGANA;AAOA;AAPA;AASA,OAVA,MAUA;AACA;AACA,mEADA;AAEA,wEAFA;AAGA;AACA;AACA;AACA,oGANA;AAOA;AAPA;AASA;;AAGA;AACA,KA7OA;;AA8OA;;;;;;AAMA;AACA,UArPA,kBAqPA,GArPA,EAqPA,IArPA,EAqPA;AACA,yCADA,CAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA,qFAXA,CAaA;;AACA;AACA;AAEA;AAAA;AAAA;AAAA;AACA,KAvQA;AAwQA;AACA,gBAzQA,0BAyQA;AACA,0FADA,CAEA;;AACA;AACA,KA7QA;;AA+QA;;;;;;AAMA,UArRA,kBAqRA,MArRA,EAqRA,KArRA,EAqRA;AACA,yCADA,CAGA;AACA;AACA;;AACA;AACA,wFAPA,CASA;;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA,KAlSA;AAmSA;AACA;;AACA;AACA;AACA;AACA,KAxSA;AAySA;AACA;AACA,KA3SA;AA4SA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA,yCADA;AAEA;AAFA;AAIA;AACA;;AACA;AACA;AACA;AACA;AACA,WAFA;AAGA;AACA,OAbA,MAaA;AACA;AACA;AADA;AAGA;AACA,KAnUA;AAoUA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA,oEAFA,CAIA;AACA;;AAEA;AACA,mCADA;AAEA;AACA;AACA,uBADA;AAEA,kDAFA;AAGA,mDAHA;AAIA;AAJA,WAHA;AASA,2CATA;AAUA;AACA;AACA,oCADA;AAEA;AAFA,aADA;AAKA;AACA,oCADA;AAEA;AAFA;AALA;AAVA;AAsBA;;AACA;AACA;AACA,2BACA,EADA,CACA,kCADA,EACA;AACA;AACA,WAHA;AAIA;AACA,OArCA,MAqCA;AACA;AACA;AADA;AAGA;AACA,KAnXA;AAoXA;AACA;AACA;AACA;AAEA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AAEA;AACA;AACA;;AACA;AACA;AACA,OAzBA,CA2BA;AACA;;;AAEA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AAzZA;AAzRA,G;;AC/FkU,CAAgB,gHAAG,EAAC,C;;;;;ACAtV;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AC5FuF;AAC3B;AACL;AACa;;;AAGpE;AAC0F;AAC1F,gBAAgB,kBAAU;AAC1B,EAAE,2CAAM;AACR,EAAE,MAAM;AACR,EAAE,eAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEe,8D;;ACnBf,IAAI,8CAAM,gBAAgB,aAAa,0BAA0B,wBAAwB,iBAAiB,iEAAiE,oCAAoC,aAAa,4EAA4E,4CAA4C,+GAA+G;AACnc,IAAI,uDAAe;;;;;;;;ACDnB;AAEA;;;;;;;;AAOA;;;;;;;;;;AAOO,SAASI,sBAAT,CAAgCC;AAAhC;AAAA,EAA0DtH;AAA1D;AAAA;AAAA;AAAqF;AAC1F,MAAMlC,MAAM,GAAGyJ,eAAe,CAACD,WAAD,CAA9B;AACA,MAAIE,QAAQ,GAAG1J,MAAM,CAAC,CAAD,CAArB;;AACA,OAAK,IAAIrB,CAAC,GAAG,CAAR,EAAWC,GAAG,GA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,iBADA;AAEA;AAFA,KA5CA;AAgDA;AACA,mBADA;AAEA;AAFA,KAhDA;AAoDA;AACA,kBADA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAFA,KApDA;AAwDA;AACA,kBADA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAFA;AAxDA,GAVA;AAuEA;AACA;AACA,iBADA;AAEA,qBAFA;AAGA,yBAHA;AAIA,uBAJA;AAKA;AACA,YADA;AAEA,YAFA;AAGA,YAHA;AAIA,YAJA;AAKA;AALA,OALA;AAYA,iBAZA;AAYA;AACA,0BAbA;AAaA;AACA,0BAdA,CAcA;;AAdA;AAgBA,GAxFA;AAyFA,SAzFA,qBAyFA;AACA,oBADA,CAGA;;AACA;AACA;AACA,KAFA;;AAIA;AACA;AACA,KAFA;;AAIA;AACA;AACA;AACA;AACA;AACA,GA1GA;AA2GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAlHA;AAmHA;AACA;AACA,GArHA;AAsHA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA,wCAHA,CAKA;;AACA;AACA;;AACA;AAEA;AACA;AACA;AACA,8BADA,CACA;;AADA;AAGA;AACA;AACA,WAFA;AAGA,SAPA;AASA;AACA,OAtBA;AAuBA,KA5BA;AA6BA,GArJA;AAsJA;AACA;AACA;AACA;AACA;AACA;AACA,OAJA;AAKA,KAPA;AAQA;AACA;AACA,KAVA;AAWA;AACA;AACA,KAbA;AAcA;AACA;AACA,KAhBA;AAiBA;AACA;AACA,KAnBA;AAoBA;AACA;AACA,KAtBA;AAuBA,cAvBA,wBAuBA;AACA;AACA;AACA;AACA;;AACA;AACA;AA7BA,GAtJA;AAqLA;AACA,gBADA,0BACA;AACA;AACA;AACA;AAEA;;AACA;AACA;AACA;AACA;AACA,aAFA,MAEA;AACA;AACA;AACA;AACA,iBAFA;AAGA,eAJA;AAKA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KA5BA;AA6BA;AACA;AACA;AADA;AAGA,KAjCA;AAkCA;AACA;AACA;AACA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AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;AAGA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA,CAAC,EAAE,wFAAwF;AAC3F;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF;AACjF;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,+BAA+B;AACtD;AACA,aAAa,QAAQ;AACrB,cAAc,OAAO;AACrB;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,8BAA8B;AAC9B,cAAc,kBAAkB;AAChC;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,2BAA2B;AACjD;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,0BAA0B;AACvC,uCAAuC,aAAa;AACpD;AACA;AACA,cAAc,OAAO;AACrB;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,iBAAiB;AACjB,cAAc,gBAAgB;AAC9B;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,KAAK;AACnB;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B;AACA,cAAc,aAAa;AAC3B;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,wBAAwB;AAC/C;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,wBAAwB;AACrC;AACA,aAAa,SAAS;AACtB,aAAa,iBAAiB;AAC9B;AACA,cAAc,OAAO;AACrB;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,wBAAwB;AACrC;AACA,aAAa,SAAS;AACtB,aAAa,iBAAiB;AAC9B;AACA,cAAc,OAAO;AACrB;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,cAAc,OAAO;AACrB;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,qBAAqB,2CAA2C;AAChE;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,2BAA2B,qBAAqB;;AAEhD;;AAEA;AACA,qBAAqB,yCAAyC;AAC9D;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA,iBAAiB,iBAAiB;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,mBAAmB,mBAAmB;AACtC;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,sPAAsP;AACzP;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,uBAAuB;AACvB,wBAAwB;;AAExB,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,aAAa;AAC1B,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,eAAe,aAAa;AAC5B;AACA;;AAEA;AACA;AACA,aAAa,aAAa;AAC1B,eAAe,aAAa;AAC5B;AACA;;AAEA;AACA;AACA,aAAa,qCAAqC;AAClD,eAAe,qCAAqC;AACpD;AACA;;AAEA,0BAA0B;AAC1B;;AAEA;AACA;;AAEA,0BAA0B;;AAE1B;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,8BAA8B,eAAe;AAC7C;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,qBAAqB;AAClE;AACA;AACA,aAAa,OAAO;AACpB,aAAa,aAAa;AAC1B,aAAa,QAAQ;AACrB,cAAc,OAAO;AACrB;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,QAAQ,eAAe;AAChE;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,iBAAiB;;AAEtB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B;;;AAGA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;AAGA;AACA,0BAA0B,oBAAoB;;AAE9C;AACA,mCAAmC,oBAAoB;AACvD,kDAAkD,oBAAoB;AACtE;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED,gBAAgB,yBAAyB;AACzC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB;;AAErB;AACA;;AAEA,uBAAuB,mCAAmC;AAC1D;;AAEA;AACA;;AAEA;AACA;;AAEA,+DAA+D,2BAA2B;AAC1F;AACA,KAAK;AACL;;AAEA;AACA;AACA,uBAAuB,kDAAkD;AACzE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0CAA0C,2BAA2B;AACrE;;AAEA;AACA;AACA;;AAEA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,iCAAiC;AACpD;;AAEA;AACA;;AAEA;AACA,4BAA4B,yCAAyC;AACrE;AACA;;AAEA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,yEAAyE,iBAAiB;AAC1F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,+IAA+I;AAClJ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,wCAAwC;AAC3C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA,kCAAkC,sGAAsG;AACxI,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,mCAAmC;AACnC,mCAAmC;AACnC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA;AACA,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,4GAA4G;AAC/G;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA,kBAAkB,iCAAiC;AACnD;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,qBAAqB,2BAA2B;AAChD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB,kCAAkC;AACnD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,kCAAkC;AACnD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,8CAA8C;AAC/D;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uCAAuC,oBAAoB;;AAE3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,eAAe;;AAEnD;AACA;AACA;AACA;AACA,wCAAwC,uBAAuB;;AAE/D;AACA;AACA;AACA;AACA,0CAA0C,yBAAyB;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA;AACA,gCAAgC;AAChC,iCAAiC;AACjC,oCAAoC;AACpC,qCAAqC;AACrC,gCAAgC;;AAEhC;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,mBAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,2IAA2I;AAC9I;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,cAAc;AACd;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,mCAAmC;AACnC,mCAAmC;AACnC,mCAAmC;AACnC;AACA;AACA,kCAAkC,6BAA6B;AAC/D;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,YAAY,aAAa;;AAEzB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,4GAA4G;AAC/G;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA,8BAA8B;AAC9B;;AAEA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;;AAErC;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B;AAC5B,6BAA6B;AAC7B,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,iCAAiC;AACjC,iCAAiC;AACjC,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,6BAA6B;AACjE;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA;AACA,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,kIAAkI;AACrI;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA;;AAEA,CAAC,EAAE,mHAAmH;AACtH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sBAAsB,mDAAmD;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA,WAAW,wBAAwB;AACnC;AACA,YAAY,0BAA0B;AACtC;AACA;AACA;AACA;AACA,CAAC,6EAA6E,qBAAqB;;AAEnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,WAAW,wBAAwB;AACnC;AACA,YAAY,0BAA0B;AACtC;AACA;AACA;AACA;AACA,CAAC,4EAA4E,oBAAoB;;AAEjG;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA,YAAY,wBAAwB;AACpC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,kBAAkB,2BAA2B;AAC7C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,CAAC,EAAE,8FAA8F;AACjG;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,uCAAuC,SAAS;AAChD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,4BAA4B,2BAA2B;AACvD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB,gCAAgC;AAClD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,gLAAgL;AACnL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,CAAC,EAAE,sFAAsF;AACzF;;AAEA;;AAEA,CAAC,EAAE,mCAAmC;AACtC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,CAAC,EAAE,+BAA+B;AAClC;;AAEA;;AAEA,CAAC,EAAE,mCAAmC;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,aAAa,aAAa;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC,GAAG;AACJ;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,CAAC,EAAE,+eAA+e;AAClf;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB;;AAEhB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B;AAC5B;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,CAAC,EAAE,0FAA0F;AAC7F;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC,WAAW,SAAS;AACpB,WAAW,iBAAiB;AAC5B;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,kBAAkB;AACtC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,kDAAkD,mBAAmB;AACrE;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC;AACA,WAAW,SAAS;AACpB,WAAW,iBAAiB;AAC5B;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,mBAAmB;AACxC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,wGAAwG;AAC3G;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,sBAAsB;AAClC;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,mCAAmC,WAAW;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,iCAAiC;AACpD;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,CAAC,EAAE,iIAAiI;AACpI;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,6BAA6B;AACjD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC;;AAElC,qBAAqB,8BAA8B;AACnD;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA,qBAAqB,8BAA8B;AACnD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8BAA8B;AAC9B;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA,qBAAqB,8BAA8B;AACnD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA,+BAA+B;;AAE/B,mBAAmB,4BAA4B;AAC/C;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B;AAC7B;AACA,2DAA2D;AAC3D;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,6DAA6D;AAChE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qCAAqC,2BAA2B,kBAAkB;;AAElF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,iDAAiD;AACpD;;AAEA;AACA;AACA;AACA;AACA,aAAa,wBAAwB;AACrC;AACA,eAAe,+CAA+C;AAC9D,eAAe,+CAA+C;AAC9D,MAAM;AACN,IAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,eAAe;AACf,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA,4BAA4B;AAC5B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,qCAAqC,2BAA2B,kBAAkB;AAClF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,CAAC,EAAE,2GAA2G;AAC9G;;AAEA;AACA;AACA;AACA;AACA,aAAa,wBAAwB;AACrC;AACA,aAAa,4BAA4B;AACzC,aAAa,4BAA4B;AACzC,MAAM;AACN,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa;AACb,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B;AAC5B,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,CAAC,EAAE,gHAAgH;AACnH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA,kDAAkD;AAClD;;AAEA;AACA,sBAAsB,oCAAoC;AAC1D;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd,KAAK;AACL;;AAEA,4BAA4B;;AAE5B;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,qBAAqB,sBAAsB;AAC3C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,uBAAuB,sCAAsC;AAC7D;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,SAAS;AAC9C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,kEAAkE;AACrE;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,eAAe,aAAa;AAC5B;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA,8BAA8B;AAC9B;AACA;;AAEA,iCAAiC;AACjC;;AAEA,oBAAoB,qCAAqC;AACzD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;;AAGA,iCAAiC;AACjC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,CAAC,EAAE,qFAAqF;AACxF;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;AAGA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;;AAEA;AACA,CAAC;;AAED,CAAC,EAAE,2BAA2B;AAC9B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,oBAAoB;AACrC;;AAEA,uCAAuC;AACvC;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,kBAAkB;AACpC;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,0CAA0C;AAC1C,CAAC;;AAED;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,mBAAmB;AACtC;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,mBAAmB,gCAAgC;AACnD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,kGAAkG;AAC5G;AACA,CAAC;;AAED;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,iGAAiG;AAC3G;AACA;;AAEA,eAAe,0BAA0B;AACzC;AACA;;AAEA;AACA,6BAA6B;AAC7B,0BAA0B;AAC1B,8BAA8B,MAAM,oBAAoB;AACxD,CAAC;;AAED;AACA;;AAEA,CAAC,EAAE,kGAAkG;AACrG;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,CAAC,EAAE,+BAA+B;AAClC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,gBAAgB;AAChB,OAAO;AACP;AACA,GAAG;AACH,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,CAAC,EAAE,sGAAsG;AACzG;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC,qBAAqB;AACvD,GAAG;;AAEH;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,qCAAqC,qBAAqB;AAC1D,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,kGAAkG;AACrG;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,6BAA6B;AACjD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;;AAEA,CAAC,GAAG;AACJ;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB,oBAAoB;AACtC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,CAAC,GAAG;AACJ;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA,CAAC,EAAE,0CAA0C;AAC7C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA,CAAC,EAAE,UAAU;AACb;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,cAAc;AACjB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,qBAAqB;AACpC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,yDAAyD;AAC5D;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA,KAAK;AACL,sBAAsB,UAAU;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,wBAAwB;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8CAA8C,YAAY;AAC1D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,8CAA8C,YAAY;AAC1D;AACA;;AAEA;;AAEA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,mBAAmB,gCAAgC;AACnD;AACA;;AAEA;;AAEA;;AAEA;;AAEA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qCAAqC;AACrC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,CAAC,EAAE,4FAA4F;AAC/F;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC,GAAG;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,kCAAkC;AAClC;;AAEA,CAAC,EAAE,YAAY;AACf;;AAEA;AACA;AACA;;AAEA,CAAC,GAAG;AACJ;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,iIAAiI;AACpI;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB;;AAEnB,oBAAoB,gCAAgC;AACpD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,iCAAiC;AACtD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,qBAAqB,iCAAiC;AACtD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,iCAAiC;AACtD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA,qBAAqB,iCAAiC;AACtD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA,qBAAqB,iCAAiC;AACtD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,2BAA2B;AAC9B;;AAEA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q;AACA;;AAEA;AACA,4BAA4B;;AAE5B;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,8BAA8B;AACjC;;AAEA;AACA;AACA;;AAEA,CAAC,GAAG;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,GAAG;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,sBAAsB;AAC1C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,6FAA6F;AAChG;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,eAAe,qDAAqD;AACpE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,CAAC,EAAE,cAAc;AACjB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,wCAAwC;AAC3C;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA,CAAC,EAAE,gBAAgB,EAAE,GAAG;AACxB,CAAC;;;AAGD;;;;;;;;ACngOA;AACA","file":"vue-grid-layout.common.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar at = require('./_string-at')(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// style-loader: Adds some css to the DOM by adding a \r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GridItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GridItem.vue?vue&type=script&lang=js&\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./GridItem.vue?vue&type=template&id=6724f499&\"\nimport script from \"./GridItem.vue?vue&type=script&lang=js&\"\nexport * from \"./GridItem.vue?vue&type=script&lang=js&\"\nimport style0 from \"./GridItem.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"item\",staticClass:\"vue-grid-layout\",style:(_vm.mergedStyle)},[_vm._t(\"default\"),_c('grid-item',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isDragging),expression:\"isDragging\"}],staticClass:\"vue-grid-placeholder\",attrs:{\"x\":_vm.placeholder.x,\"y\":_vm.placeholder.y,\"w\":_vm.placeholder.w,\"h\":_vm.placeholder.h,\"i\":_vm.placeholder.i}})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","// @flow\r\n\r\nimport {cloneLayout, compact, correctBounds} from './utils';\r\n\r\nimport type {Layout} from './utils';\r\nexport type ResponsiveLayout = {lg?: Layout, md?: Layout, sm?: Layout, xs?: Layout, xxs?: Layout};\r\ntype Breakpoint = string;\r\ntype Breakpoints = {lg?: number, md?: number, sm?: number, xs?: number, xxs?: number};\r\n\r\n/**\r\n * Given a width, find the highest breakpoint that matches is valid for it (width > breakpoint).\r\n *\r\n * @param {Object} breakpoints Breakpoints object (e.g. {lg: 1200, md: 960, ...})\r\n * @param {Number} width Screen width.\r\n * @return {String} Highest breakpoint that is less than width.\r\n */\r\nexport function getBreakpointFromWidth(breakpoints: Breakpoints, width: number): Breakpoint {\r\n const sorted = sortBreakpoints(breakpoints);\r\n let matching = sorted[0];\r\n for (let i = 1, len = sorted.length; i < len; i++) {\r\n const breakpointName = sorted[i];\r\n if (width > breakpoints[breakpointName]) matching = breakpointName;\r\n }\r\n return matching;\r\n}\r\n\r\n\r\n/**\r\n * Given a breakpoint, get the # of cols set for it.\r\n * @param {String} breakpoint Breakpoint name.\r\n * @param {Object} cols Map of breakpoints to cols.\r\n * @return {Number} Number of cols.\r\n */\r\nexport function getColsFromBreakpoint(breakpoint: Breakpoint, cols: Breakpoints): number {\r\n if (!cols[breakpoint]) {\r\n throw new Error(\"ResponsiveGridLayout: `cols` entry for breakpoint \" + breakpoint + \" is missing!\");\r\n }\r\n return cols[breakpoint];\r\n}\r\n\r\n/**\r\n * Given existing layouts and a new breakpoint, find or generate a new layout.\r\n *\r\n * This finds the layout above the new one and generates from it, if it exists.\r\n *\r\n * @param {Array} orgLayout Original layout.\r\n * @param {Object} layouts Existing layouts.\r\n * @param {Array} breakpoints All breakpoints.\r\n * @param {String} breakpoint New breakpoint.\r\n * @param {String} breakpoint Last breakpoint (for fallback).\r\n * @param {Number} cols Column count at new breakpoint.\r\n * @param {Boolean} verticalCompact Whether or not to compact the layout\r\n * vertically.\r\n * @return {Array} New layout.\r\n */\r\nexport function findOrGenerateResponsiveLayout(orgLayout: Layout, layouts: ResponsiveLayout, breakpoints: Breakpoints,\r\n breakpoint: Breakpoint, lastBreakpoint: Breakpoint,\r\n cols: number, verticalCompact: boolean): Layout {\r\n // If it already exists, just return it.\r\n if (layouts[breakpoint]) return cloneLayout(layouts[breakpoint]);\r\n // Find or generate the next layout\r\n let layout = orgLayout;\r\n\r\n const breakpointsSorted = sortBreakpoints(breakpoints);\r\n const breakpointsAbove = breakpointsSorted.slice(breakpointsSorted.indexOf(breakpoint));\r\n for (let i = 0, len = breakpointsAbove.length; i < len; i++) {\r\n const b = breakpointsAbove[i];\r\n if (layouts[b]) {\r\n layout = layouts[b];\r\n break;\r\n }\r\n }\r\n layout = cloneLayout(layout || []); // clone layout so we don't modify existing items\r\n return compact(correctBounds(layout, {cols: cols}), verticalCompact);\r\n}\r\n\r\nexport function generateResponsiveLayout(layout: Layout, breakpoints: Breakpoints,\r\n breakpoint: Breakpoint, lastBreakpoint: Breakpoint,\r\n cols: number, verticalCompact: boolean): Layout {\r\n // If it already exists, just return it.\r\n /*if (layouts[breakpoint]) return cloneLayout(layouts[breakpoint]);\r\n // Find or generate the next layout\r\n let layout = layouts[lastBreakpoint];*/\r\n /*const breakpointsSorted = sortBreakpoints(breakpoints);\r\n const breakpointsAbove = breakpointsSorted.slice(breakpointsSorted.indexOf(breakpoint));\r\n for (let i = 0, len = breakpointsAbove.length; i < len; i++) {\r\n const b = breakpointsAbove[i];\r\n if (layouts[b]) {\r\n layout = layouts[b];\r\n break;\r\n }\r\n }*/\r\n layout = cloneLayout(layout || []); // clone layout so we don't modify existing items\r\n return compact(correctBounds(layout, {cols: cols}), verticalCompact);\r\n}\r\n\r\n/**\r\n * Given breakpoints, return an array of breakpoints sorted by width. This is usually\r\n * e.g. ['xxs', 'xs', 'sm', ...]\r\n *\r\n * @param {Object} breakpoints Key/value pair of breakpoint names to widths.\r\n * @return {Array} Sorted breakpoints.\r\n */\r\nexport function sortBreakpoints(breakpoints: Breakpoints): Array {\r\n const keys: Array = Object.keys(breakpoints);\r\n return keys.sort(function(a, b) {\r\n return breakpoints[a] - breakpoints[b];\r\n });\r\n}\r\n","\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GridLayout.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GridLayout.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./GridLayout.vue?vue&type=template&id=16f9e7c6&\"\nimport script from \"./GridLayout.vue?vue&type=script&lang=js&\"\nexport * from \"./GridLayout.vue?vue&type=script&lang=js&\"\nimport style0 from \"./GridLayout.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\";\r\nimport GridItem from './GridItem.vue';\r\nimport GridLayout from './GridLayout.vue';\r\n// import ResponsiveGridLayout from './ResponsiveGridLayout.vue';\r\n\r\n\r\nconst VueGridLayout = {\r\n // ResponsiveGridLayout,\r\n GridLayout,\r\n GridItem\r\n}\r\n\r\n// module.exports = VueGridLayout;\r\n\r\nObject.keys(VueGridLayout).forEach(name => {\r\n Vue.component(name, VueGridLayout[name]);\r\n});\r\n\r\nexport default VueGridLayout;\r\nexport { GridLayout, GridItem };","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n","/**\n * interact.js v1.3.4\n *\n * Copyright (c) 2012-2018 Taye Adeyemi \n * Released under the MIT License.\n * https://raw.github.com/taye/interact.js/master/LICENSE\n */\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.interact = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o 6 && arguments[6] !== undefined ? arguments[6] : false;\n\n _classCallCheck(this, InteractEvent);\n\n var target = interaction.target;\n var deltaSource = (target && target.options || defaults).deltaSource;\n var origin = getOriginXY(target, element, action);\n var starting = phase === 'start';\n var ending = phase === 'end';\n var coords = starting ? interaction.startCoords : interaction.curCoords;\n var prevEvent = interaction.prevEvent;\n\n element = element || interaction.element;\n\n var page = extend({}, coords.page);\n var client = extend({}, coords.client);\n\n page.x -= origin.x;\n page.y -= origin.y;\n\n client.x -= origin.x;\n client.y -= origin.y;\n\n this.ctrlKey = event.ctrlKey;\n this.altKey = event.altKey;\n this.shiftKey = event.shiftKey;\n this.metaKey = event.metaKey;\n this.button = event.button;\n this.buttons = event.buttons;\n this.target = element;\n this.currentTarget = element;\n this.relatedTarget = related || null;\n this.preEnd = preEnd;\n this.type = action + (phase || '');\n this.interaction = interaction;\n this.interactable = target;\n\n this.t0 = starting ? interaction.downTimes[interaction.downTimes.length - 1] : prevEvent.t0;\n\n var signalArg = {\n interaction: interaction,\n event: event,\n action: action,\n phase: phase,\n element: element,\n related: related,\n page: page,\n client: client,\n coords: coords,\n starting: starting,\n ending: ending,\n deltaSource: deltaSource,\n iEvent: this\n };\n\n signals.fire('set-xy', signalArg);\n\n if (ending) {\n // use previous coords when ending\n this.pageX = prevEvent.pageX;\n this.pageY = prevEvent.pageY;\n this.clientX = prevEvent.clientX;\n this.clientY = prevEvent.clientY;\n } else {\n this.pageX = page.x;\n this.pageY = page.y;\n this.clientX = client.x;\n this.clientY = client.y;\n }\n\n this.x0 = interaction.startCoords.page.x - origin.x;\n this.y0 = interaction.startCoords.page.y - origin.y;\n this.clientX0 = interaction.startCoords.client.x - origin.x;\n this.clientY0 = interaction.startCoords.client.y - origin.y;\n\n signals.fire('set-delta', signalArg);\n\n this.timeStamp = coords.timeStamp;\n this.dt = interaction.pointerDelta.timeStamp;\n this.duration = this.timeStamp - this.t0;\n\n // speed and velocity in pixels per second\n this.speed = interaction.pointerDelta[deltaSource].speed;\n this.velocityX = interaction.pointerDelta[deltaSource].vx;\n this.velocityY = interaction.pointerDelta[deltaSource].vy;\n\n this.swipe = ending || phase === 'inertiastart' ? this.getSwipe() : null;\n\n signals.fire('new', signalArg);\n }\n\n InteractEvent.prototype.getSwipe = function getSwipe() {\n var interaction = this.interaction;\n\n if (interaction.prevEvent.speed < 600 || this.timeStamp - interaction.prevEvent.timeStamp > 150) {\n return null;\n }\n\n var angle = 180 * Math.atan2(interaction.prevEvent.velocityY, interaction.prevEvent.velocityX) / Math.PI;\n var overlap = 22.5;\n\n if (angle < 0) {\n angle += 360;\n }\n\n var left = 135 - overlap <= angle && angle < 225 + overlap;\n var up = 225 - overlap <= angle && angle < 315 + overlap;\n\n var right = !left && (315 - overlap <= angle || angle < 45 + overlap);\n var down = !up && 45 - overlap <= angle && angle < 135 + overlap;\n\n return {\n up: up,\n down: down,\n left: left,\n right: right,\n angle: angle,\n speed: interaction.prevEvent.speed,\n velocity: {\n x: interaction.prevEvent.velocityX,\n y: interaction.prevEvent.velocityY\n }\n };\n };\n\n InteractEvent.prototype.preventDefault = function preventDefault() {};\n\n /** */\n\n\n InteractEvent.prototype.stopImmediatePropagation = function stopImmediatePropagation() {\n this.immediatePropagationStopped = this.propagationStopped = true;\n };\n\n /** */\n\n\n InteractEvent.prototype.stopPropagation = function stopPropagation() {\n this.propagationStopped = true;\n };\n\n return InteractEvent;\n}();\n\nsignals.on('set-delta', function (_ref) {\n var iEvent = _ref.iEvent,\n interaction = _ref.interaction,\n starting = _ref.starting,\n deltaSource = _ref.deltaSource;\n\n var prevEvent = starting ? iEvent : interaction.prevEvent;\n\n if (deltaSource === 'client') {\n iEvent.dx = iEvent.clientX - prevEvent.clientX;\n iEvent.dy = iEvent.clientY - prevEvent.clientY;\n } else {\n iEvent.dx = iEvent.pageX - prevEvent.pageX;\n iEvent.dy = iEvent.pageY - prevEvent.pageY;\n }\n});\n\nInteractEvent.signals = signals;\n\nmodule.exports = InteractEvent;\n\n},{\"./defaultOptions\":18,\"./utils/Signals\":34,\"./utils/extend\":41,\"./utils/getOriginXY\":42}],4:[function(require,module,exports){\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar clone = require('./utils/clone');\nvar is = require('./utils/is');\nvar events = require('./utils/events');\nvar extend = require('./utils/extend');\nvar actions = require('./actions/base');\nvar scope = require('./scope');\nvar Eventable = require('./Eventable');\nvar defaults = require('./defaultOptions');\nvar signals = require('./utils/Signals').new();\n\nvar _require = require('./utils/domUtils'),\n getElementRect = _require.getElementRect,\n nodeContains = _require.nodeContains,\n trySelector = _require.trySelector,\n matchesSelector = _require.matchesSelector;\n\nvar _require2 = require('./utils/window'),\n getWindow = _require2.getWindow;\n\nvar _require3 = require('./utils/arr'),\n contains = _require3.contains;\n\nvar _require4 = require('./utils/browser'),\n wheelEvent = _require4.wheelEvent;\n\n// all set interactables\n\n\nscope.interactables = [];\n\nvar Interactable = function () {\n /** */\n function Interactable(target, options) {\n _classCallCheck(this, Interactable);\n\n options = options || {};\n\n this.target = target;\n this.events = new Eventable();\n this._context = options.context || scope.document;\n this._win = getWindow(trySelector(target) ? this._context : target);\n this._doc = this._win.document;\n\n signals.fire('new', {\n target: target,\n options: options,\n interactable: this,\n win: this._win\n });\n\n scope.addDocument(this._doc, this._win);\n\n scope.interactables.push(this);\n\n this.set(options);\n }\n\n Interactable.prototype.setOnEvents = function setOnEvents(action, phases) {\n var onAction = 'on' + action;\n\n if (is.function(phases.onstart)) {\n this.events[onAction + 'start'] = phases.onstart;\n }\n if (is.function(phases.onmove)) {\n this.events[onAction + 'move'] = phases.onmove;\n }\n if (is.function(phases.onend)) {\n this.events[onAction + 'end'] = phases.onend;\n }\n if (is.function(phases.oninertiastart)) {\n this.events[onAction + 'inertiastart'] = phases.oninertiastart;\n }\n\n return this;\n };\n\n Interactable.prototype.setPerAction = function setPerAction(action, options) {\n // for all the default per-action options\n for (var option in options) {\n // if this option exists for this action\n if (option in defaults[action]) {\n // if the option in the options arg is an object value\n if (is.object(options[option])) {\n // duplicate the object and merge\n this.options[action][option] = clone(this.options[action][option] || {});\n extend(this.options[action][option], options[option]);\n\n if (is.object(defaults.perAction[option]) && 'enabled' in defaults.perAction[option]) {\n this.options[action][option].enabled = options[option].enabled === false ? false : true;\n }\n } else if (is.bool(options[option]) && is.object(defaults.perAction[option])) {\n this.options[action][option].enabled = options[option];\n } else if (options[option] !== undefined) {\n // or if it's not undefined, do a plain assignment\n this.options[action][option] = options[option];\n }\n }\n }\n };\n\n /**\n * The default function to get an Interactables bounding rect. Can be\n * overridden using {@link Interactable.rectChecker}.\n *\n * @param {Element} [element] The element to measure.\n * @return {object} The object's bounding rectangle.\n */\n\n\n Interactable.prototype.getRect = function getRect(element) {\n element = element || this.target;\n\n if (is.string(this.target) && !is.element(element)) {\n element = this._context.querySelector(this.target);\n }\n\n return getElementRect(element);\n };\n\n /**\n * Returns or sets the function used to calculate the interactable's\n * element's rectangle\n *\n * @param {function} [checker] A function which returns this Interactable's\n * bounding rectangle. See {@link Interactable.getRect}\n * @return {function | object} The checker function or this Interactable\n */\n\n\n Interactable.prototype.rectChecker = function rectChecker(checker) {\n if (is.function(checker)) {\n this.getRect = checker;\n\n return this;\n }\n\n if (checker === null) {\n delete this.options.getRect;\n\n return this;\n }\n\n return this.getRect;\n };\n\n Interactable.prototype._backCompatOption = function _backCompatOption(optionName, newValue) {\n if (trySelector(newValue) || is.object(newValue)) {\n this.options[optionName] = newValue;\n\n for (var _i = 0; _i < actions.names.length; _i++) {\n var _ref;\n\n _ref = actions.names[_i];\n var action = _ref;\n\n this.options[action][optionName] = newValue;\n }\n\n return this;\n }\n\n return this.options[optionName];\n };\n\n /**\n * Gets or sets the origin of the Interactable's element. The x and y\n * of the origin will be subtracted from action event coordinates.\n *\n * @param {Element | object | string} [origin] An HTML or SVG Element whose\n * rect will be used, an object eg. { x: 0, y: 0 } or string 'parent', 'self'\n * or any CSS selector\n *\n * @return {object} The current origin or this Interactable\n */\n\n\n Interactable.prototype.origin = function origin(newValue) {\n return this._backCompatOption('origin', newValue);\n };\n\n /**\n * Returns or sets the mouse coordinate types used to calculate the\n * movement of the pointer.\n *\n * @param {string} [newValue] Use 'client' if you will be scrolling while\n * interacting; Use 'page' if you want autoScroll to work\n * @return {string | object} The current deltaSource or this Interactable\n */\n\n\n Interactable.prototype.deltaSource = function deltaSource(newValue) {\n if (newValue === 'page' || newValue === 'client') {\n this.options.deltaSource = newValue;\n\n return this;\n }\n\n return this.options.deltaSource;\n };\n\n /**\n * Gets the selector context Node of the Interactable. The default is\n * `window.document`.\n *\n * @return {Node} The context Node of this Interactable\n */\n\n\n Interactable.prototype.context = function context() {\n return this._context;\n };\n\n Interactable.prototype.inContext = function inContext(element) {\n return this._context === element.ownerDocument || nodeContains(this._context, element);\n };\n\n /**\n * Calls listeners for the given InteractEvent type bound globally\n * and directly to this Interactable\n *\n * @param {InteractEvent} iEvent The InteractEvent object to be fired on this\n * Interactable\n * @return {Interactable} this Interactable\n */\n\n\n Interactable.prototype.fire = function fire(iEvent) {\n this.events.fire(iEvent);\n\n return this;\n };\n\n Interactable.prototype._onOffMultiple = function _onOffMultiple(method, eventType, listener, options) {\n if (is.string(eventType) && eventType.search(' ') !== -1) {\n eventType = eventType.trim().split(/ +/);\n }\n\n if (is.array(eventType)) {\n for (var _i2 = 0; _i2 < eventType.length; _i2++) {\n var _ref2;\n\n _ref2 = eventType[_i2];\n var type = _ref2;\n\n this[method](type, listener, options);\n }\n\n return true;\n }\n\n if (is.object(eventType)) {\n for (var prop in eventType) {\n this[method](prop, eventType[prop], listener);\n }\n\n return true;\n }\n };\n\n /**\n * Binds a listener for an InteractEvent, pointerEvent or DOM event.\n *\n * @param {string | array | object} eventType The types of events to listen\n * for\n * @param {function} listener The function event (s)\n * @param {object | boolean} [options] options object or useCapture flag\n * for addEventListener\n * @return {object} This Interactable\n */\n\n\n Interactable.prototype.on = function on(eventType, listener, options) {\n if (this._onOffMultiple('on', eventType, listener, options)) {\n return this;\n }\n\n if (eventType === 'wheel') {\n eventType = wheelEvent;\n }\n\n if (contains(Interactable.eventTypes, eventType)) {\n this.events.on(eventType, listener);\n }\n // delegated event for selector\n else if (is.string(this.target)) {\n events.addDelegate(this.target, this._context, eventType, listener, options);\n } else {\n events.add(this.target, eventType, listener, options);\n }\n\n return this;\n };\n\n /**\n * Removes an InteractEvent, pointerEvent or DOM event listener\n *\n * @param {string | array | object} eventType The types of events that were\n * listened for\n * @param {function} listener The listener function to be removed\n * @param {object | boolean} [options] options object or useCapture flag for\n * removeEventListener\n * @return {object} This Interactable\n */\n\n\n Interactable.prototype.off = function off(eventType, listener, options) {\n if (this._onOffMultiple('off', eventType, listener, options)) {\n return this;\n }\n\n if (eventType === 'wheel') {\n eventType = wheelEvent;\n }\n\n // if it is an action event type\n if (contains(Interactable.eventTypes, eventType)) {\n this.events.off(eventType, listener);\n }\n // delegated event\n else if (is.string(this.target)) {\n events.removeDelegate(this.target, this._context, eventType, listener, options);\n }\n // remove listener from this Interatable's element\n else {\n events.remove(this.target, eventType, listener, options);\n }\n\n return this;\n };\n\n /**\n * Reset the options of this Interactable\n *\n * @param {object} options The new settings to apply\n * @return {object} This Interactable\n */\n\n\n Interactable.prototype.set = function set(options) {\n if (!is.object(options)) {\n options = {};\n }\n\n this.options = clone(defaults.base);\n\n var perActions = clone(defaults.perAction);\n\n for (var actionName in actions.methodDict) {\n var methodName = actions.methodDict[actionName];\n\n this.options[actionName] = clone(defaults[actionName]);\n\n this.setPerAction(actionName, perActions);\n\n this[methodName](options[actionName]);\n }\n\n for (var _i3 = 0; _i3 < Interactable.settingsMethods.length; _i3++) {\n var _ref3;\n\n _ref3 = Interactable.settingsMethods[_i3];\n var setting = _ref3;\n\n this.options[setting] = defaults.base[setting];\n\n if (setting in options) {\n this[setting](options[setting]);\n }\n }\n\n signals.fire('set', {\n options: options,\n interactable: this\n });\n\n return this;\n };\n\n /**\n * Remove this interactable from the list of interactables and remove it's\n * action capabilities and event listeners\n *\n * @return {interact}\n */\n\n\n Interactable.prototype.unset = function unset() {\n events.remove(this.target, 'all');\n\n if (is.string(this.target)) {\n // remove delegated events\n for (var type in events.delegatedEvents) {\n var delegated = events.delegatedEvents[type];\n\n if (delegated.selectors[0] === this.target && delegated.contexts[0] === this._context) {\n\n delegated.selectors.splice(0, 1);\n delegated.contexts.splice(0, 1);\n delegated.listeners.splice(0, 1);\n\n // remove the arrays if they are empty\n if (!delegated.selectors.length) {\n delegated[type] = null;\n }\n }\n\n events.remove(this._context, type, events.delegateListener);\n events.remove(this._context, type, events.delegateUseCapture, true);\n }\n } else {\n events.remove(this, 'all');\n }\n\n signals.fire('unset', { interactable: this });\n\n scope.interactables.splice(scope.interactables.indexOf(this), 1);\n\n // Stop related interactions when an Interactable is unset\n for (var _i4 = 0; _i4 < (scope.interactions || []).length; _i4++) {\n var _ref4;\n\n _ref4 = (scope.interactions || [])[_i4];\n var interaction = _ref4;\n\n if (interaction.target === this && interaction.interacting() && !interaction._ending) {\n interaction.stop();\n }\n }\n\n return scope.interact;\n };\n\n return Interactable;\n}();\n\nscope.interactables.indexOfElement = function indexOfElement(target, context) {\n context = context || scope.document;\n\n for (var i = 0; i < this.length; i++) {\n var interactable = this[i];\n\n if (interactable.target === target && interactable._context === context) {\n return i;\n }\n }\n return -1;\n};\n\nscope.interactables.get = function interactableGet(element, options, dontCheckInContext) {\n var ret = this[this.indexOfElement(element, options && options.context)];\n\n return ret && (is.string(element) || dontCheckInContext || ret.inContext(element)) ? ret : null;\n};\n\nscope.interactables.forEachMatch = function (element, callback) {\n for (var _i5 = 0; _i5 < this.length; _i5++) {\n var _ref5;\n\n _ref5 = this[_i5];\n var interactable = _ref5;\n\n var ret = void 0;\n\n if ((is.string(interactable.target)\n // target is a selector and the element matches\n ? is.element(element) && matchesSelector(element, interactable.target) :\n // target is the element\n element === interactable.target) &&\n // the element is in context\n interactable.inContext(element)) {\n ret = callback(interactable);\n }\n\n if (ret !== undefined) {\n return ret;\n }\n }\n};\n\n// all interact.js eventTypes\nInteractable.eventTypes = scope.eventTypes = [];\n\nInteractable.signals = signals;\n\nInteractable.settingsMethods = ['deltaSource', 'origin', 'preventDefault', 'rectChecker'];\n\nmodule.exports = Interactable;\n\n},{\"./Eventable\":2,\"./actions/base\":6,\"./defaultOptions\":18,\"./scope\":33,\"./utils/Signals\":34,\"./utils/arr\":35,\"./utils/browser\":36,\"./utils/clone\":37,\"./utils/domUtils\":39,\"./utils/events\":40,\"./utils/extend\":41,\"./utils/is\":46,\"./utils/window\":52}],5:[function(require,module,exports){\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar scope = require('./scope');\nvar utils = require('./utils');\nvar events = require('./utils/events');\nvar browser = require('./utils/browser');\nvar domObjects = require('./utils/domObjects');\nvar finder = require('./utils/interactionFinder');\nvar signals = require('./utils/Signals').new();\n\nvar listeners = {};\nvar methodNames = ['pointerDown', 'pointerMove', 'pointerUp', 'updatePointer', 'removePointer'];\n\n// for ignoring browser's simulated mouse events\nvar prevTouchTime = 0;\n\n// all active and idle interactions\nscope.interactions = [];\n\nvar Interaction = function () {\n /** */\n function Interaction(_ref) {\n var pointerType = _ref.pointerType;\n\n _classCallCheck(this, Interaction);\n\n this.target = null; // current interactable being interacted with\n this.element = null; // the target element of the interactable\n\n this.prepared = { // action that's ready to be fired on next move event\n name: null,\n axis: null,\n edges: null\n };\n\n // keep track of added pointers\n this.pointers = [];\n this.pointerIds = [];\n this.downTargets = [];\n this.downTimes = [];\n\n // Previous native pointer move event coordinates\n this.prevCoords = {\n page: { x: 0, y: 0 },\n client: { x: 0, y: 0 },\n timeStamp: 0\n };\n // current native pointer move event coordinates\n this.curCoords = {\n page: { x: 0, y: 0 },\n client: { x: 0, y: 0 },\n timeStamp: 0\n };\n\n // Starting InteractEvent pointer coordinates\n this.startCoords = {\n page: { x: 0, y: 0 },\n client: { x: 0, y: 0 },\n timeStamp: 0\n };\n\n // Change in coordinates and time of the pointer\n this.pointerDelta = {\n page: { x: 0, y: 0, vx: 0, vy: 0, speed: 0 },\n client: { x: 0, y: 0, vx: 0, vy: 0, speed: 0 },\n timeStamp: 0\n };\n\n this.downEvent = null; // pointerdown/mousedown/touchstart event\n this.downPointer = {};\n\n this._eventTarget = null;\n this._curEventTarget = null;\n\n this.prevEvent = null; // previous action event\n\n this.pointerIsDown = false;\n this.pointerWasMoved = false;\n this._interacting = false;\n this._ending = false;\n\n this.pointerType = pointerType;\n\n signals.fire('new', this);\n\n scope.interactions.push(this);\n }\n\n Interaction.prototype.pointerDown = function pointerDown(pointer, event, eventTarget) {\n var pointerIndex = this.updatePointer(pointer, event, true);\n\n signals.fire('down', {\n pointer: pointer,\n event: event,\n eventTarget: eventTarget,\n pointerIndex: pointerIndex,\n interaction: this\n });\n };\n\n /**\n * ```js\n * interact(target)\n * .draggable({\n * // disable the default drag start by down->move\n * manualStart: true\n * })\n * // start dragging after the user holds the pointer down\n * .on('hold', function (event) {\n * var interaction = event.interaction;\n *\n * if (!interaction.interacting()) {\n * interaction.start({ name: 'drag' },\n * event.interactable,\n * event.currentTarget);\n * }\n * });\n * ```\n *\n * Start an action with the given Interactable and Element as tartgets. The\n * action must be enabled for the target Interactable and an appropriate\n * number of pointers must be held down - 1 for drag/resize, 2 for gesture.\n *\n * Use it with `interactable.able({ manualStart: false })` to always\n * [start actions manually](https://github.com/taye/interact.js/issues/114)\n *\n * @param {object} action The action to be performed - drag, resize, etc.\n * @param {Interactable} target The Interactable to target\n * @param {Element} element The DOM Element to target\n * @return {object} interact\n */\n\n\n Interaction.prototype.start = function start(action, target, element) {\n if (this.interacting() || !this.pointerIsDown || this.pointerIds.length < (action.name === 'gesture' ? 2 : 1)) {\n return;\n }\n\n // if this interaction had been removed after stopping\n // add it back\n if (scope.interactions.indexOf(this) === -1) {\n scope.interactions.push(this);\n }\n\n utils.copyAction(this.prepared, action);\n this.target = target;\n this.element = element;\n\n signals.fire('action-start', {\n interaction: this,\n event: this.downEvent\n });\n };\n\n Interaction.prototype.pointerMove = function pointerMove(pointer, event, eventTarget) {\n if (!this.simulation) {\n this.updatePointer(pointer);\n utils.setCoords(this.curCoords, this.pointers);\n }\n\n var duplicateMove = this.curCoords.page.x === this.prevCoords.page.x && this.curCoords.page.y === this.prevCoords.page.y && this.curCoords.client.x === this.prevCoords.client.x && this.curCoords.client.y === this.prevCoords.client.y;\n\n var dx = void 0;\n var dy = void 0;\n\n // register movement greater than pointerMoveTolerance\n if (this.pointerIsDown && !this.pointerWasMoved) {\n dx = this.curCoords.client.x - this.startCoords.client.x;\n dy = this.curCoords.client.y - this.startCoords.client.y;\n\n this.pointerWasMoved = utils.hypot(dx, dy) > Interaction.pointerMoveTolerance;\n }\n\n var signalArg = {\n pointer: pointer,\n pointerIndex: this.getPointerIndex(pointer),\n event: event,\n eventTarget: eventTarget,\n dx: dx,\n dy: dy,\n duplicate: duplicateMove,\n interaction: this,\n interactingBeforeMove: this.interacting()\n };\n\n if (!duplicateMove) {\n // set pointer coordinate, time changes and speeds\n utils.setCoordDeltas(this.pointerDelta, this.prevCoords, this.curCoords);\n }\n\n signals.fire('move', signalArg);\n\n if (!duplicateMove) {\n // if interacting, fire an 'action-move' signal etc\n if (this.interacting()) {\n this.doMove(signalArg);\n }\n\n if (this.pointerWasMoved) {\n utils.copyCoords(this.prevCoords, this.curCoords);\n }\n }\n };\n\n /**\n * ```js\n * interact(target)\n * .draggable(true)\n * .on('dragmove', function (event) {\n * if (someCondition) {\n * // change the snap settings\n * event.interactable.draggable({ snap: { targets: [] }});\n * // fire another move event with re-calculated snap\n * event.interaction.doMove();\n * }\n * });\n * ```\n *\n * Force a move of the current action at the same coordinates. Useful if\n * snap/restrict has been changed and you want a movement with the new\n * settings.\n */\n\n\n Interaction.prototype.doMove = function doMove(signalArg) {\n signalArg = utils.extend({\n pointer: this.pointers[0],\n event: this.prevEvent,\n eventTarget: this._eventTarget,\n interaction: this\n }, signalArg || {});\n\n signals.fire('before-action-move', signalArg);\n\n if (!this._dontFireMove) {\n signals.fire('action-move', signalArg);\n }\n\n this._dontFireMove = false;\n };\n\n // End interact move events and stop auto-scroll unless simulation is running\n\n\n Interaction.prototype.pointerUp = function pointerUp(pointer, event, eventTarget, curEventTarget) {\n var pointerIndex = this.getPointerIndex(pointer);\n\n signals.fire(/cancel$/i.test(event.type) ? 'cancel' : 'up', {\n pointer: pointer,\n pointerIndex: pointerIndex,\n event: event,\n eventTarget: eventTarget,\n curEventTarget: curEventTarget,\n interaction: this\n });\n\n if (!this.simulation) {\n this.end(event);\n }\n\n this.pointerIsDown = false;\n this.removePointer(pointer, event);\n };\n\n /**\n * ```js\n * interact(target)\n * .draggable(true)\n * .on('move', function (event) {\n * if (event.pageX > 1000) {\n * // end the current action\n * event.interaction.end();\n * // stop all further listeners from being called\n * event.stopImmediatePropagation();\n * }\n * });\n * ```\n *\n * Stop the current action and fire an end event. Inertial movement does\n * not happen.\n *\n * @param {PointerEvent} [event]\n */\n\n\n Interaction.prototype.end = function end(event) {\n this._ending = true;\n\n event = event || this.prevEvent;\n\n if (this.interacting()) {\n signals.fire('action-end', {\n event: event,\n interaction: this\n });\n }\n\n this.stop();\n this._ending = false;\n };\n\n Interaction.prototype.currentAction = function currentAction() {\n return this._interacting ? this.prepared.name : null;\n };\n\n Interaction.prototype.interacting = function interacting() {\n return this._interacting;\n };\n\n /** */\n\n\n Interaction.prototype.stop = function stop() {\n signals.fire('stop', { interaction: this });\n\n if (this._interacting) {\n signals.fire('stop-active', { interaction: this });\n signals.fire('stop-' + this.prepared.name, { interaction: this });\n }\n\n this.target = this.element = null;\n\n this._interacting = false;\n this.prepared.name = this.prevEvent = null;\n };\n\n Interaction.prototype.getPointerIndex = function getPointerIndex(pointer) {\n // mouse and pen interactions may have only one pointer\n if (this.pointerType === 'mouse' || this.pointerType === 'pen') {\n return 0;\n }\n\n return this.pointerIds.indexOf(utils.getPointerId(pointer));\n };\n\n Interaction.prototype.updatePointer = function updatePointer(pointer, event) {\n var down = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : event && /(down|start)$/i.test(event.type);\n\n var id = utils.getPointerId(pointer);\n var index = this.getPointerIndex(pointer);\n\n if (index === -1) {\n index = this.pointerIds.length;\n this.pointerIds[index] = id;\n }\n\n if (down) {\n signals.fire('update-pointer-down', {\n pointer: pointer,\n event: event,\n down: down,\n pointerId: id,\n pointerIndex: index,\n interaction: this\n });\n }\n\n this.pointers[index] = pointer;\n\n return index;\n };\n\n Interaction.prototype.removePointer = function removePointer(pointer, event) {\n var index = this.getPointerIndex(pointer);\n\n if (index === -1) {\n return;\n }\n\n signals.fire('remove-pointer', {\n pointer: pointer,\n event: event,\n pointerIndex: index,\n interaction: this\n });\n\n this.pointers.splice(index, 1);\n this.pointerIds.splice(index, 1);\n this.downTargets.splice(index, 1);\n this.downTimes.splice(index, 1);\n };\n\n Interaction.prototype._updateEventTargets = function _updateEventTargets(target, currentTarget) {\n this._eventTarget = target;\n this._curEventTarget = currentTarget;\n };\n\n return Interaction;\n}();\n\nfor (var _i = 0; _i < methodNames.length; _i++) {\n var method = methodNames[_i];\n listeners[method] = doOnInteractions(method);\n}\n\nfunction doOnInteractions(method) {\n return function (event) {\n var pointerType = utils.getPointerType(event);\n\n var _utils$getEventTarget = utils.getEventTargets(event),\n eventTarget = _utils$getEventTarget[0],\n curEventTarget = _utils$getEventTarget[1];\n\n var matches = []; // [ [pointer, interaction], ...]\n\n if (browser.supportsTouch && /touch/.test(event.type)) {\n prevTouchTime = new Date().getTime();\n\n for (var _i2 = 0; _i2 < event.changedTouches.length; _i2++) {\n var _ref2;\n\n _ref2 = event.changedTouches[_i2];\n var changedTouch = _ref2;\n\n var pointer = changedTouch;\n var interaction = finder.search(pointer, event.type, eventTarget);\n\n matches.push([pointer, interaction || new Interaction({ pointerType: pointerType })]);\n }\n } else {\n var invalidPointer = false;\n\n if (!browser.supportsPointerEvent && /mouse/.test(event.type)) {\n // ignore mouse events while touch interactions are active\n for (var i = 0; i < scope.interactions.length && !invalidPointer; i++) {\n invalidPointer = scope.interactions[i].pointerType !== 'mouse' && scope.interactions[i].pointerIsDown;\n }\n\n // try to ignore mouse events that are simulated by the browser\n // after a touch event\n invalidPointer = invalidPointer || new Date().getTime() - prevTouchTime < 500\n // on iOS and Firefox Mobile, MouseEvent.timeStamp is zero if simulated\n || event.timeStamp === 0;\n }\n\n if (!invalidPointer) {\n var _interaction = finder.search(event, event.type, eventTarget);\n\n if (!_interaction) {\n _interaction = new Interaction({ pointerType: pointerType });\n }\n\n matches.push([event, _interaction]);\n }\n }\n\n for (var _i3 = 0; _i3 < matches.length; _i3++) {\n var _ref3 = matches[_i3];\n var _pointer = _ref3[0];\n var _interaction2 = _ref3[1];\n\n _interaction2._updateEventTargets(eventTarget, curEventTarget);\n _interaction2[method](_pointer, event, eventTarget, curEventTarget);\n }\n };\n}\n\nfunction endAll(event) {\n for (var _i4 = 0; _i4 < scope.interactions.length; _i4++) {\n var _ref4;\n\n _ref4 = scope.interactions[_i4];\n var interaction = _ref4;\n\n interaction.end(event);\n signals.fire('endall', { event: event, interaction: interaction });\n }\n}\n\nvar docEvents = {/* 'eventType': listenerFunc */};\nvar pEventTypes = browser.pEventTypes;\n\nif (domObjects.PointerEvent) {\n docEvents[pEventTypes.down] = listeners.pointerDown;\n docEvents[pEventTypes.move] = listeners.pointerMove;\n docEvents[pEventTypes.up] = listeners.pointerUp;\n docEvents[pEventTypes.cancel] = listeners.pointerUp;\n} else {\n docEvents.mousedown = listeners.pointerDown;\n docEvents.mousemove = listeners.pointerMove;\n docEvents.mouseup = listeners.pointerUp;\n\n docEvents.touchstart = listeners.pointerDown;\n docEvents.touchmove = listeners.pointerMove;\n docEvents.touchend = listeners.pointerUp;\n docEvents.touchcancel = listeners.pointerUp;\n}\n\ndocEvents.blur = endAll;\n\nfunction onDocSignal(_ref5, signalName) {\n var doc = _ref5.doc;\n\n var eventMethod = signalName.indexOf('add') === 0 ? events.add : events.remove;\n\n // delegate event listener\n for (var eventType in scope.delegatedEvents) {\n eventMethod(doc, eventType, events.delegateListener);\n eventMethod(doc, eventType, events.delegateUseCapture, true);\n }\n\n for (var _eventType in docEvents) {\n eventMethod(doc, _eventType, docEvents[_eventType], browser.isIOS ? { passive: false } : undefined);\n }\n}\n\nsignals.on('update-pointer-down', function (_ref6) {\n var interaction = _ref6.interaction,\n pointer = _ref6.pointer,\n pointerId = _ref6.pointerId,\n pointerIndex = _ref6.pointerIndex,\n event = _ref6.event,\n eventTarget = _ref6.eventTarget,\n down = _ref6.down;\n\n interaction.pointerIds[pointerIndex] = pointerId;\n interaction.pointers[pointerIndex] = pointer;\n\n if (down) {\n interaction.pointerIsDown = true;\n }\n\n if (!interaction.interacting()) {\n utils.setCoords(interaction.startCoords, interaction.pointers);\n\n utils.copyCoords(interaction.curCoords, interaction.startCoords);\n utils.copyCoords(interaction.prevCoords, interaction.startCoords);\n\n interaction.downEvent = event;\n interaction.downTimes[pointerIndex] = interaction.curCoords.timeStamp;\n interaction.downTargets[pointerIndex] = eventTarget || event && utils.getEventTargets(event)[0];\n interaction.pointerWasMoved = false;\n\n utils.pointerExtend(interaction.downPointer, pointer);\n }\n});\n\nscope.signals.on('add-document', onDocSignal);\nscope.signals.on('remove-document', onDocSignal);\n\nInteraction.pointerMoveTolerance = 1;\nInteraction.doOnInteractions = doOnInteractions;\nInteraction.endAll = endAll;\nInteraction.signals = signals;\nInteraction.docEvents = docEvents;\n\nscope.endAllInteractions = endAll;\n\nmodule.exports = Interaction;\n\n},{\"./scope\":33,\"./utils\":44,\"./utils/Signals\":34,\"./utils/browser\":36,\"./utils/domObjects\":38,\"./utils/events\":40,\"./utils/interactionFinder\":45}],6:[function(require,module,exports){\n'use strict';\n\nvar Interaction = require('../Interaction');\nvar InteractEvent = require('../InteractEvent');\n\nvar actions = {\n firePrepared: firePrepared,\n names: [],\n methodDict: {}\n};\n\nInteraction.signals.on('action-start', function (_ref) {\n var interaction = _ref.interaction,\n event = _ref.event;\n\n interaction._interacting = true;\n firePrepared(interaction, event, 'start');\n});\n\nInteraction.signals.on('action-move', function (_ref2) {\n var interaction = _ref2.interaction,\n event = _ref2.event,\n preEnd = _ref2.preEnd;\n\n firePrepared(interaction, event, 'move', preEnd);\n\n // if the action was ended in a listener\n if (!interaction.interacting()) {\n return false;\n }\n});\n\nInteraction.signals.on('action-end', function (_ref3) {\n var interaction = _ref3.interaction,\n event = _ref3.event;\n\n firePrepared(interaction, event, 'end');\n});\n\nfunction firePrepared(interaction, event, phase, preEnd) {\n var actionName = interaction.prepared.name;\n\n var newEvent = new InteractEvent(interaction, event, actionName, phase, interaction.element, null, preEnd);\n\n interaction.target.fire(newEvent);\n interaction.prevEvent = newEvent;\n}\n\nmodule.exports = actions;\n\n},{\"../InteractEvent\":3,\"../Interaction\":5}],7:[function(require,module,exports){\n'use strict';\n\nvar actions = require('./base');\nvar utils = require('../utils');\nvar InteractEvent = require('../InteractEvent');\n/** @lends Interactable */\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar defaultOptions = require('../defaultOptions');\n\nvar drag = {\n defaults: {\n enabled: false,\n mouseButtons: null,\n\n origin: null,\n snap: null,\n restrict: null,\n inertia: null,\n autoScroll: null,\n\n startAxis: 'xy',\n lockAxis: 'xy'\n },\n\n checker: function checker(pointer, event, interactable) {\n var dragOptions = interactable.options.drag;\n\n return dragOptions.enabled ? { name: 'drag', axis: dragOptions.lockAxis === 'start' ? dragOptions.startAxis : dragOptions.lockAxis } : null;\n },\n\n getCursor: function getCursor() {\n return 'move';\n }\n};\n\nInteraction.signals.on('before-action-move', function (_ref) {\n var interaction = _ref.interaction;\n\n if (interaction.prepared.name !== 'drag') {\n return;\n }\n\n var axis = interaction.prepared.axis;\n\n if (axis === 'x') {\n interaction.curCoords.page.y = interaction.startCoords.page.y;\n interaction.curCoords.client.y = interaction.startCoords.client.y;\n\n interaction.pointerDelta.page.speed = Math.abs(interaction.pointerDelta.page.vx);\n interaction.pointerDelta.client.speed = Math.abs(interaction.pointerDelta.client.vx);\n interaction.pointerDelta.client.vy = 0;\n interaction.pointerDelta.page.vy = 0;\n } else if (axis === 'y') {\n interaction.curCoords.page.x = interaction.startCoords.page.x;\n interaction.curCoords.client.x = interaction.startCoords.client.x;\n\n interaction.pointerDelta.page.speed = Math.abs(interaction.pointerDelta.page.vy);\n interaction.pointerDelta.client.speed = Math.abs(interaction.pointerDelta.client.vy);\n interaction.pointerDelta.client.vx = 0;\n interaction.pointerDelta.page.vx = 0;\n }\n});\n\n// dragmove\nInteractEvent.signals.on('new', function (_ref2) {\n var iEvent = _ref2.iEvent,\n interaction = _ref2.interaction;\n\n if (iEvent.type !== 'dragmove') {\n return;\n }\n\n var axis = interaction.prepared.axis;\n\n if (axis === 'x') {\n iEvent.pageY = interaction.startCoords.page.y;\n iEvent.clientY = interaction.startCoords.client.y;\n iEvent.dy = 0;\n } else if (axis === 'y') {\n iEvent.pageX = interaction.startCoords.page.x;\n iEvent.clientX = interaction.startCoords.client.x;\n iEvent.dx = 0;\n }\n});\n\n/**\n * ```js\n * interact(element).draggable({\n * onstart: function (event) {},\n * onmove : function (event) {},\n * onend : function (event) {},\n *\n * // the axis in which the first movement must be\n * // for the drag sequence to start\n * // 'xy' by default - any direction\n * startAxis: 'x' || 'y' || 'xy',\n *\n * // 'xy' by default - don't restrict to one axis (move in any direction)\n * // 'x' or 'y' to restrict movement to either axis\n * // 'start' to restrict movement to the axis the drag started in\n * lockAxis: 'x' || 'y' || 'xy' || 'start',\n *\n * // max number of drags that can happen concurrently\n * // with elements of this Interactable. Infinity by default\n * max: Infinity,\n *\n * // max number of drags that can target the same element+Interactable\n * // 1 by default\n * maxPerElement: 2\n * });\n *\n * var isDraggable = interact('element').draggable(); // true\n * ```\n *\n * Get or set whether drag actions can be performed on the target\n *\n * @param {boolean | object} [options] true/false or An object with event\n * listeners to be fired on drag events (object makes the Interactable\n * draggable)\n * @return {boolean | Interactable} boolean indicating if this can be the\n * target of drag events, or this Interctable\n */\nInteractable.prototype.draggable = function (options) {\n if (utils.is.object(options)) {\n this.options.drag.enabled = options.enabled === false ? false : true;\n this.setPerAction('drag', options);\n this.setOnEvents('drag', options);\n\n if (/^(xy|x|y|start)$/.test(options.lockAxis)) {\n this.options.drag.lockAxis = options.lockAxis;\n }\n if (/^(xy|x|y)$/.test(options.startAxis)) {\n this.options.drag.startAxis = options.startAxis;\n }\n\n return this;\n }\n\n if (utils.is.bool(options)) {\n this.options.drag.enabled = options;\n\n if (!options) {\n this.ondragstart = this.ondragstart = this.ondragend = null;\n }\n\n return this;\n }\n\n return this.options.drag;\n};\n\nactions.drag = drag;\nactions.names.push('drag');\nutils.merge(Interactable.eventTypes, ['dragstart', 'dragmove', 'draginertiastart', 'draginertiaresume', 'dragend']);\nactions.methodDict.drag = 'draggable';\n\ndefaultOptions.drag = drag.defaults;\n\nmodule.exports = drag;\n\n},{\"../InteractEvent\":3,\"../Interactable\":4,\"../Interaction\":5,\"../defaultOptions\":18,\"../utils\":44,\"./base\":6}],8:[function(require,module,exports){\n'use strict';\n\nvar actions = require('./base');\nvar utils = require('../utils');\nvar scope = require('../scope');\n/** @lends module:interact */\nvar interact = require('../interact');\nvar InteractEvent = require('../InteractEvent');\n/** @lends Interactable */\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar defaultOptions = require('../defaultOptions');\n\nvar drop = {\n defaults: {\n enabled: false,\n accept: null,\n overlap: 'pointer'\n }\n};\n\nvar dynamicDrop = false;\n\nInteraction.signals.on('action-start', function (_ref) {\n var interaction = _ref.interaction,\n event = _ref.event;\n\n if (interaction.prepared.name !== 'drag') {\n return;\n }\n\n // reset active dropzones\n interaction.activeDrops.dropzones = [];\n interaction.activeDrops.elements = [];\n interaction.activeDrops.rects = [];\n\n interaction.dropEvents = null;\n\n if (!interaction.dynamicDrop) {\n setActiveDrops(interaction.activeDrops, interaction.element);\n }\n\n var dragEvent = interaction.prevEvent;\n var dropEvents = getDropEvents(interaction, event, dragEvent);\n\n if (dropEvents.activate) {\n fireActiveDrops(interaction.activeDrops, dropEvents.activate);\n }\n});\n\nInteractEvent.signals.on('new', function (_ref2) {\n var interaction = _ref2.interaction,\n iEvent = _ref2.iEvent,\n event = _ref2.event;\n\n if (iEvent.type !== 'dragmove' && iEvent.type !== 'dragend') {\n return;\n }\n\n var draggableElement = interaction.element;\n var dragEvent = iEvent;\n var dropResult = getDrop(dragEvent, event, draggableElement);\n\n interaction.dropTarget = dropResult.dropzone;\n interaction.dropElement = dropResult.element;\n\n interaction.dropEvents = getDropEvents(interaction, event, dragEvent);\n});\n\nInteraction.signals.on('action-move', function (_ref3) {\n var interaction = _ref3.interaction;\n\n if (interaction.prepared.name !== 'drag') {\n return;\n }\n\n fireDropEvents(interaction, interaction.dropEvents);\n});\n\nInteraction.signals.on('action-end', function (_ref4) {\n var interaction = _ref4.interaction;\n\n if (interaction.prepared.name === 'drag') {\n fireDropEvents(interaction, interaction.dropEvents);\n }\n});\n\nInteraction.signals.on('stop-drag', function (_ref5) {\n var interaction = _ref5.interaction;\n\n interaction.activeDrops = {\n dropzones: null,\n elements: null,\n rects: null\n };\n\n interaction.dropEvents = null;\n});\n\nfunction collectDrops(activeDrops, element) {\n var drops = [];\n var elements = [];\n\n // collect all dropzones and their elements which qualify for a drop\n for (var _i = 0; _i < scope.interactables.length; _i++) {\n var _ref6;\n\n _ref6 = scope.interactables[_i];\n var current = _ref6;\n\n if (!current.options.drop.enabled) {\n continue;\n }\n\n var accept = current.options.drop.accept;\n\n // test the draggable element against the dropzone's accept setting\n if (utils.is.element(accept) && accept !== element || utils.is.string(accept) && !utils.matchesSelector(element, accept)) {\n\n continue;\n }\n\n // query for new elements if necessary\n var dropElements = utils.is.string(current.target) ? current._context.querySelectorAll(current.target) : [current.target];\n\n for (var _i2 = 0; _i2 < dropElements.length; _i2++) {\n var _ref7;\n\n _ref7 = dropElements[_i2];\n var currentElement = _ref7;\n\n if (currentElement !== element) {\n drops.push(current);\n elements.push(currentElement);\n }\n }\n }\n\n return {\n elements: elements,\n dropzones: drops\n };\n}\n\nfunction fireActiveDrops(activeDrops, event) {\n var prevElement = void 0;\n\n // loop through all active dropzones and trigger event\n for (var i = 0; i < activeDrops.dropzones.length; i++) {\n var current = activeDrops.dropzones[i];\n var currentElement = activeDrops.elements[i];\n\n // prevent trigger of duplicate events on same element\n if (currentElement !== prevElement) {\n // set current element as event target\n event.target = currentElement;\n current.fire(event);\n }\n prevElement = currentElement;\n }\n}\n\n// Collect a new set of possible drops and save them in activeDrops.\n// setActiveDrops should always be called when a drag has just started or a\n// drag event happens while dynamicDrop is true\nfunction setActiveDrops(activeDrops, dragElement) {\n // get dropzones and their elements that could receive the draggable\n var possibleDrops = collectDrops(activeDrops, dragElement);\n\n activeDrops.dropzones = possibleDrops.dropzones;\n activeDrops.elements = possibleDrops.elements;\n activeDrops.rects = [];\n\n for (var i = 0; i < activeDrops.dropzones.length; i++) {\n activeDrops.rects[i] = activeDrops.dropzones[i].getRect(activeDrops.elements[i]);\n }\n}\n\nfunction getDrop(dragEvent, event, dragElement) {\n var interaction = dragEvent.interaction;\n var validDrops = [];\n\n if (dynamicDrop) {\n setActiveDrops(interaction.activeDrops, dragElement);\n }\n\n // collect all dropzones and their elements which qualify for a drop\n for (var j = 0; j < interaction.activeDrops.dropzones.length; j++) {\n var current = interaction.activeDrops.dropzones[j];\n var currentElement = interaction.activeDrops.elements[j];\n var rect = interaction.activeDrops.rects[j];\n\n validDrops.push(current.dropCheck(dragEvent, event, interaction.target, dragElement, currentElement, rect) ? currentElement : null);\n }\n\n // get the most appropriate dropzone based on DOM depth and order\n var dropIndex = utils.indexOfDeepestElement(validDrops);\n\n return {\n dropzone: interaction.activeDrops.dropzones[dropIndex] || null,\n element: interaction.activeDrops.elements[dropIndex] || null\n };\n}\n\nfunction getDropEvents(interaction, pointerEvent, dragEvent) {\n var dropEvents = {\n enter: null,\n leave: null,\n activate: null,\n deactivate: null,\n move: null,\n drop: null\n };\n\n var tmpl = {\n dragEvent: dragEvent,\n interaction: interaction,\n target: interaction.dropElement,\n dropzone: interaction.dropTarget,\n relatedTarget: dragEvent.target,\n draggable: dragEvent.interactable,\n timeStamp: dragEvent.timeStamp\n };\n\n if (interaction.dropElement !== interaction.prevDropElement) {\n // if there was a prevDropTarget, create a dragleave event\n if (interaction.prevDropTarget) {\n dropEvents.leave = utils.extend({ type: 'dragleave' }, tmpl);\n\n dragEvent.dragLeave = dropEvents.leave.target = interaction.prevDropElement;\n dragEvent.prevDropzone = dropEvents.leave.dropzone = interaction.prevDropTarget;\n }\n // if the dropTarget is not null, create a dragenter event\n if (interaction.dropTarget) {\n dropEvents.enter = {\n dragEvent: dragEvent,\n interaction: interaction,\n target: interaction.dropElement,\n dropzone: interaction.dropTarget,\n relatedTarget: dragEvent.target,\n draggable: dragEvent.interactable,\n timeStamp: dragEvent.timeStamp,\n type: 'dragenter'\n };\n\n dragEvent.dragEnter = interaction.dropElement;\n dragEvent.dropzone = interaction.dropTarget;\n }\n }\n\n if (dragEvent.type === 'dragend' && interaction.dropTarget) {\n dropEvents.drop = utils.extend({ type: 'drop' }, tmpl);\n\n dragEvent.dropzone = interaction.dropTarget;\n dragEvent.relatedTarget = interaction.dropElement;\n }\n if (dragEvent.type === 'dragstart') {\n dropEvents.activate = utils.extend({ type: 'dropactivate' }, tmpl);\n\n dropEvents.activate.target = null;\n dropEvents.activate.dropzone = null;\n }\n if (dragEvent.type === 'dragend') {\n dropEvents.deactivate = utils.extend({ type: 'dropdeactivate' }, tmpl);\n\n dropEvents.deactivate.target = null;\n dropEvents.deactivate.dropzone = null;\n }\n if (dragEvent.type === 'dragmove' && interaction.dropTarget) {\n dropEvents.move = utils.extend({\n dragmove: dragEvent,\n type: 'dropmove'\n }, tmpl);\n\n dragEvent.dropzone = interaction.dropTarget;\n }\n\n return dropEvents;\n}\n\nfunction fireDropEvents(interaction, dropEvents) {\n var activeDrops = interaction.activeDrops,\n prevDropTarget = interaction.prevDropTarget,\n dropTarget = interaction.dropTarget,\n dropElement = interaction.dropElement;\n\n\n if (dropEvents.leave) {\n prevDropTarget.fire(dropEvents.leave);\n }\n if (dropEvents.move) {\n dropTarget.fire(dropEvents.move);\n }\n if (dropEvents.enter) {\n dropTarget.fire(dropEvents.enter);\n }\n if (dropEvents.drop) {\n dropTarget.fire(dropEvents.drop);\n }\n if (dropEvents.deactivate) {\n fireActiveDrops(activeDrops, dropEvents.deactivate);\n }\n\n interaction.prevDropTarget = dropTarget;\n interaction.prevDropElement = dropElement;\n}\n\n/**\n * ```js\n * interact(target)\n * .dropChecker(function(dragEvent, // related dragmove or dragend event\n * event, // TouchEvent/PointerEvent/MouseEvent\n * dropped, // bool result of the default checker\n * dropzone, // dropzone Interactable\n * dropElement, // dropzone elemnt\n * draggable, // draggable Interactable\n * draggableElement) {// draggable element\n *\n * return dropped && event.target.hasAttribute('allow-drop');\n * }\n * ```\n *\n * ```js\n * interact('.drop').dropzone({\n * accept: '.can-drop' || document.getElementById('single-drop'),\n * overlap: 'pointer' || 'center' || zeroToOne\n * }\n * ```\n *\n * Returns or sets whether draggables can be dropped onto this target to\n * trigger drop events\n *\n * Dropzones can receive the following events:\n * - `dropactivate` and `dropdeactivate` when an acceptable drag starts and ends\n * - `dragenter` and `dragleave` when a draggable enters and leaves the dropzone\n * - `dragmove` when a draggable that has entered the dropzone is moved\n * - `drop` when a draggable is dropped into this dropzone\n *\n * Use the `accept` option to allow only elements that match the given CSS\n * selector or element. The value can be:\n *\n * - **an Element** - only that element can be dropped into this dropzone.\n * - **a string**, - the element being dragged must match it as a CSS selector.\n * - **`null`** - accept options is cleared - it accepts any element.\n *\n * Use the `overlap` option to set how drops are checked for. The allowed\n * values are:\n *\n * - `'pointer'`, the pointer must be over the dropzone (default)\n * - `'center'`, the draggable element's center must be over the dropzone\n * - a number from 0-1 which is the `(intersection area) / (draggable area)`.\n * e.g. `0.5` for drop to happen when half of the area of the draggable is\n * over the dropzone\n *\n * Use the `checker` option to specify a function to check if a dragged element\n * is over this Interactable.\n *\n * @param {boolean | object | null} [options] The new options to be set.\n * @return {boolean | Interactable} The current setting or this Interactable\n */\nInteractable.prototype.dropzone = function (options) {\n if (utils.is.object(options)) {\n this.options.drop.enabled = options.enabled === false ? false : true;\n\n if (utils.is.function(options.ondrop)) {\n this.events.ondrop = options.ondrop;\n }\n if (utils.is.function(options.ondropactivate)) {\n this.events.ondropactivate = options.ondropactivate;\n }\n if (utils.is.function(options.ondropdeactivate)) {\n this.events.ondropdeactivate = options.ondropdeactivate;\n }\n if (utils.is.function(options.ondragenter)) {\n this.events.ondragenter = options.ondragenter;\n }\n if (utils.is.function(options.ondragleave)) {\n this.events.ondragleave = options.ondragleave;\n }\n if (utils.is.function(options.ondropmove)) {\n this.events.ondropmove = options.ondropmove;\n }\n\n if (/^(pointer|center)$/.test(options.overlap)) {\n this.options.drop.overlap = options.overlap;\n } else if (utils.is.number(options.overlap)) {\n this.options.drop.overlap = Math.max(Math.min(1, options.overlap), 0);\n }\n if ('accept' in options) {\n this.options.drop.accept = options.accept;\n }\n if ('checker' in options) {\n this.options.drop.checker = options.checker;\n }\n\n return this;\n }\n\n if (utils.is.bool(options)) {\n this.options.drop.enabled = options;\n\n if (!options) {\n this.ondragenter = this.ondragleave = this.ondrop = this.ondropactivate = this.ondropdeactivate = null;\n }\n\n return this;\n }\n\n return this.options.drop;\n};\n\nInteractable.prototype.dropCheck = function (dragEvent, event, draggable, draggableElement, dropElement, rect) {\n var dropped = false;\n\n // if the dropzone has no rect (eg. display: none)\n // call the custom dropChecker or just return false\n if (!(rect = rect || this.getRect(dropElement))) {\n return this.options.drop.checker ? this.options.drop.checker(dragEvent, event, dropped, this, dropElement, draggable, draggableElement) : false;\n }\n\n var dropOverlap = this.options.drop.overlap;\n\n if (dropOverlap === 'pointer') {\n var origin = utils.getOriginXY(draggable, draggableElement, 'drag');\n var page = utils.getPageXY(dragEvent);\n\n page.x += origin.x;\n page.y += origin.y;\n\n var horizontal = page.x > rect.left && page.x < rect.right;\n var vertical = page.y > rect.top && page.y < rect.bottom;\n\n dropped = horizontal && vertical;\n }\n\n var dragRect = draggable.getRect(draggableElement);\n\n if (dragRect && dropOverlap === 'center') {\n var cx = dragRect.left + dragRect.width / 2;\n var cy = dragRect.top + dragRect.height / 2;\n\n dropped = cx >= rect.left && cx <= rect.right && cy >= rect.top && cy <= rect.bottom;\n }\n\n if (dragRect && utils.is.number(dropOverlap)) {\n var overlapArea = Math.max(0, Math.min(rect.right, dragRect.right) - Math.max(rect.left, dragRect.left)) * Math.max(0, Math.min(rect.bottom, dragRect.bottom) - Math.max(rect.top, dragRect.top));\n\n var overlapRatio = overlapArea / (dragRect.width * dragRect.height);\n\n dropped = overlapRatio >= dropOverlap;\n }\n\n if (this.options.drop.checker) {\n dropped = this.options.drop.checker(dragEvent, event, dropped, this, dropElement, draggable, draggableElement);\n }\n\n return dropped;\n};\n\nInteractable.signals.on('unset', function (_ref8) {\n var interactable = _ref8.interactable;\n\n interactable.dropzone(false);\n});\n\nInteractable.settingsMethods.push('dropChecker');\n\nInteraction.signals.on('new', function (interaction) {\n interaction.dropTarget = null; // the dropzone a drag target might be dropped into\n interaction.dropElement = null; // the element at the time of checking\n interaction.prevDropTarget = null; // the dropzone that was recently dragged away from\n interaction.prevDropElement = null; // the element at the time of checking\n interaction.dropEvents = null; // the dropEvents related to the current drag event\n\n interaction.activeDrops = {\n dropzones: [], // the dropzones that are mentioned below\n elements: [], // elements of dropzones that accept the target draggable\n rects: [] // the rects of the elements mentioned above\n };\n});\n\nInteraction.signals.on('stop', function (_ref9) {\n var interaction = _ref9.interaction;\n\n interaction.dropTarget = interaction.dropElement = interaction.prevDropTarget = interaction.prevDropElement = null;\n});\n\n/**\n * Returns or sets whether the dimensions of dropzone elements are calculated\n * on every dragmove or only on dragstart for the default dropChecker\n *\n * @param {boolean} [newValue] True to check on each move. False to check only\n * before start\n * @return {boolean | interact} The current setting or interact\n */\ninteract.dynamicDrop = function (newValue) {\n if (utils.is.bool(newValue)) {\n //if (dragging && dynamicDrop !== newValue && !newValue) {\n //calcRects(dropzones);\n //}\n\n dynamicDrop = newValue;\n\n return interact;\n }\n return dynamicDrop;\n};\n\nutils.merge(Interactable.eventTypes, ['dragenter', 'dragleave', 'dropactivate', 'dropdeactivate', 'dropmove', 'drop']);\nactions.methodDict.drop = 'dropzone';\n\ndefaultOptions.drop = drop.defaults;\n\nmodule.exports = drop;\n\n},{\"../InteractEvent\":3,\"../Interactable\":4,\"../Interaction\":5,\"../defaultOptions\":18,\"../interact\":21,\"../scope\":33,\"../utils\":44,\"./base\":6}],9:[function(require,module,exports){\n'use strict';\n\nvar actions = require('./base');\nvar utils = require('../utils');\nvar InteractEvent = require('../InteractEvent');\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar defaultOptions = require('../defaultOptions');\n\nvar gesture = {\n defaults: {\n enabled: false,\n origin: null,\n restrict: null\n },\n\n checker: function checker(pointer, event, interactable, element, interaction) {\n if (interaction.pointerIds.length >= 2) {\n return { name: 'gesture' };\n }\n\n return null;\n },\n\n getCursor: function getCursor() {\n return '';\n }\n};\n\nInteractEvent.signals.on('new', function (_ref) {\n var iEvent = _ref.iEvent,\n interaction = _ref.interaction;\n\n if (iEvent.type !== 'gesturestart') {\n return;\n }\n iEvent.ds = 0;\n\n interaction.gesture.startDistance = interaction.gesture.prevDistance = iEvent.distance;\n interaction.gesture.startAngle = interaction.gesture.prevAngle = iEvent.angle;\n interaction.gesture.scale = 1;\n});\n\nInteractEvent.signals.on('new', function (_ref2) {\n var iEvent = _ref2.iEvent,\n interaction = _ref2.interaction;\n\n if (iEvent.type !== 'gesturemove') {\n return;\n }\n\n iEvent.ds = iEvent.scale - interaction.gesture.scale;\n\n interaction.target.fire(iEvent);\n\n interaction.gesture.prevAngle = iEvent.angle;\n interaction.gesture.prevDistance = iEvent.distance;\n\n if (iEvent.scale !== Infinity && iEvent.scale !== null && iEvent.scale !== undefined && !isNaN(iEvent.scale)) {\n\n interaction.gesture.scale = iEvent.scale;\n }\n});\n\n/**\n * ```js\n * interact(element).gesturable({\n * onstart: function (event) {},\n * onmove : function (event) {},\n * onend : function (event) {},\n *\n * // limit multiple gestures.\n * // See the explanation in {@link Interactable.draggable} example\n * max: Infinity,\n * maxPerElement: 1,\n * });\n *\n * var isGestureable = interact(element).gesturable();\n * ```\n *\n * Gets or sets whether multitouch gestures can be performed on the target\n *\n * @param {boolean | object} [options] true/false or An object with event\n * listeners to be fired on gesture events (makes the Interactable gesturable)\n * @return {boolean | Interactable} A boolean indicating if this can be the\n * target of gesture events, or this Interactable\n */\nInteractable.prototype.gesturable = function (options) {\n if (utils.is.object(options)) {\n this.options.gesture.enabled = options.enabled === false ? false : true;\n this.setPerAction('gesture', options);\n this.setOnEvents('gesture', options);\n\n return this;\n }\n\n if (utils.is.bool(options)) {\n this.options.gesture.enabled = options;\n\n if (!options) {\n this.ongesturestart = this.ongesturestart = this.ongestureend = null;\n }\n\n return this;\n }\n\n return this.options.gesture;\n};\n\nInteractEvent.signals.on('set-delta', function (_ref3) {\n var interaction = _ref3.interaction,\n iEvent = _ref3.iEvent,\n action = _ref3.action,\n event = _ref3.event,\n starting = _ref3.starting,\n ending = _ref3.ending,\n deltaSource = _ref3.deltaSource;\n\n if (action !== 'gesture') {\n return;\n }\n\n var pointers = interaction.pointers;\n\n iEvent.touches = [pointers[0], pointers[1]];\n\n if (starting) {\n iEvent.distance = utils.touchDistance(pointers, deltaSource);\n iEvent.box = utils.touchBBox(pointers);\n iEvent.scale = 1;\n iEvent.ds = 0;\n iEvent.angle = utils.touchAngle(pointers, undefined, deltaSource);\n iEvent.da = 0;\n } else if (ending || event instanceof InteractEvent) {\n iEvent.distance = interaction.prevEvent.distance;\n iEvent.box = interaction.prevEvent.box;\n iEvent.scale = interaction.prevEvent.scale;\n iEvent.ds = iEvent.scale - 1;\n iEvent.angle = interaction.prevEvent.angle;\n iEvent.da = iEvent.angle - interaction.gesture.startAngle;\n } else {\n iEvent.distance = utils.touchDistance(pointers, deltaSource);\n iEvent.box = utils.touchBBox(pointers);\n iEvent.scale = iEvent.distance / interaction.gesture.startDistance;\n iEvent.angle = utils.touchAngle(pointers, interaction.gesture.prevAngle, deltaSource);\n\n iEvent.ds = iEvent.scale - interaction.gesture.prevScale;\n iEvent.da = iEvent.angle - interaction.gesture.prevAngle;\n }\n});\n\nInteraction.signals.on('new', function (interaction) {\n interaction.gesture = {\n start: { x: 0, y: 0 },\n\n startDistance: 0, // distance between two touches of touchStart\n prevDistance: 0,\n distance: 0,\n\n scale: 1, // gesture.distance / gesture.startDistance\n\n startAngle: 0, // angle of line joining two touches\n prevAngle: 0 // angle of the previous gesture event\n };\n});\n\nactions.gesture = gesture;\nactions.names.push('gesture');\nutils.merge(Interactable.eventTypes, ['gesturestart', 'gesturemove', 'gestureend']);\nactions.methodDict.gesture = 'gesturable';\n\ndefaultOptions.gesture = gesture.defaults;\n\nmodule.exports = gesture;\n\n},{\"../InteractEvent\":3,\"../Interactable\":4,\"../Interaction\":5,\"../defaultOptions\":18,\"../utils\":44,\"./base\":6}],10:[function(require,module,exports){\n'use strict';\n\nvar actions = require('./base');\nvar utils = require('../utils');\nvar browser = require('../utils/browser');\nvar InteractEvent = require('../InteractEvent');\n/** @lends Interactable */\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar defaultOptions = require('../defaultOptions');\n\n// Less Precision with touch input\nvar defaultMargin = browser.supportsTouch || browser.supportsPointerEvent ? 20 : 10;\n\nvar resize = {\n defaults: {\n enabled: false,\n mouseButtons: null,\n\n origin: null,\n snap: null,\n restrict: null,\n inertia: null,\n autoScroll: null,\n\n square: false,\n preserveAspectRatio: false,\n axis: 'xy',\n\n // use default margin\n margin: NaN,\n\n // object with props left, right, top, bottom which are\n // true/false values to resize when the pointer is over that edge,\n // CSS selectors to match the handles for each direction\n // or the Elements for each handle\n edges: null,\n\n // a value of 'none' will limit the resize rect to a minimum of 0x0\n // 'negate' will alow the rect to have negative width/height\n // 'reposition' will keep the width/height positive by swapping\n // the top and bottom edges and/or swapping the left and right edges\n invert: 'none'\n },\n\n checker: function checker(pointer, event, interactable, element, interaction, rect) {\n if (!rect) {\n return null;\n }\n\n var page = utils.extend({}, interaction.curCoords.page);\n var options = interactable.options;\n\n if (options.resize.enabled) {\n var resizeOptions = options.resize;\n var resizeEdges = { left: false, right: false, top: false, bottom: false };\n\n // if using resize.edges\n if (utils.is.object(resizeOptions.edges)) {\n for (var edge in resizeEdges) {\n resizeEdges[edge] = checkResizeEdge(edge, resizeOptions.edges[edge], page, interaction._eventTarget, element, rect, resizeOptions.margin || defaultMargin);\n }\n\n resizeEdges.left = resizeEdges.left && !resizeEdges.right;\n resizeEdges.top = resizeEdges.top && !resizeEdges.bottom;\n\n if (resizeEdges.left || resizeEdges.right || resizeEdges.top || resizeEdges.bottom) {\n return {\n name: 'resize',\n edges: resizeEdges\n };\n }\n } else {\n var right = options.resize.axis !== 'y' && page.x > rect.right - defaultMargin;\n var bottom = options.resize.axis !== 'x' && page.y > rect.bottom - defaultMargin;\n\n if (right || bottom) {\n return {\n name: 'resize',\n axes: (right ? 'x' : '') + (bottom ? 'y' : '')\n };\n }\n }\n }\n\n return null;\n },\n\n cursors: browser.isIe9 ? {\n x: 'e-resize',\n y: 's-resize',\n xy: 'se-resize',\n\n top: 'n-resize',\n left: 'w-resize',\n bottom: 's-resize',\n right: 'e-resize',\n topleft: 'se-resize',\n bottomright: 'se-resize',\n topright: 'ne-resize',\n bottomleft: 'ne-resize'\n } : {\n x: 'ew-resize',\n y: 'ns-resize',\n xy: 'nwse-resize',\n\n top: 'ns-resize',\n left: 'ew-resize',\n bottom: 'ns-resize',\n right: 'ew-resize',\n topleft: 'nwse-resize',\n bottomright: 'nwse-resize',\n topright: 'nesw-resize',\n bottomleft: 'nesw-resize'\n },\n\n getCursor: function getCursor(action) {\n if (action.axis) {\n return resize.cursors[action.name + action.axis];\n } else if (action.edges) {\n var cursorKey = '';\n var edgeNames = ['top', 'bottom', 'left', 'right'];\n\n for (var i = 0; i < 4; i++) {\n if (action.edges[edgeNames[i]]) {\n cursorKey += edgeNames[i];\n }\n }\n\n return resize.cursors[cursorKey];\n }\n }\n};\n\n// resizestart\nInteractEvent.signals.on('new', function (_ref) {\n var iEvent = _ref.iEvent,\n interaction = _ref.interaction;\n\n if (iEvent.type !== 'resizestart' || !interaction.prepared.edges) {\n return;\n }\n\n var startRect = interaction.target.getRect(interaction.element);\n var resizeOptions = interaction.target.options.resize;\n\n /*\n * When using the `resizable.square` or `resizable.preserveAspectRatio` options, resizing from one edge\n * will affect another. E.g. with `resizable.square`, resizing to make the right edge larger will make\n * the bottom edge larger by the same amount. We call these 'linked' edges. Any linked edges will depend\n * on the active edges and the edge being interacted with.\n */\n if (resizeOptions.square || resizeOptions.preserveAspectRatio) {\n var linkedEdges = utils.extend({}, interaction.prepared.edges);\n\n linkedEdges.top = linkedEdges.top || linkedEdges.left && !linkedEdges.bottom;\n linkedEdges.left = linkedEdges.left || linkedEdges.top && !linkedEdges.right;\n linkedEdges.bottom = linkedEdges.bottom || linkedEdges.right && !linkedEdges.top;\n linkedEdges.right = linkedEdges.right || linkedEdges.bottom && !linkedEdges.left;\n\n interaction.prepared._linkedEdges = linkedEdges;\n } else {\n interaction.prepared._linkedEdges = null;\n }\n\n // if using `resizable.preserveAspectRatio` option, record aspect ratio at the start of the resize\n if (resizeOptions.preserveAspectRatio) {\n interaction.resizeStartAspectRatio = startRect.width / startRect.height;\n }\n\n interaction.resizeRects = {\n start: startRect,\n current: utils.extend({}, startRect),\n inverted: utils.extend({}, startRect),\n previous: utils.extend({}, startRect),\n delta: {\n left: 0, right: 0, width: 0,\n top: 0, bottom: 0, height: 0\n }\n };\n\n iEvent.rect = interaction.resizeRects.inverted;\n iEvent.deltaRect = interaction.resizeRects.delta;\n});\n\n// resizemove\nInteractEvent.signals.on('new', function (_ref2) {\n var iEvent = _ref2.iEvent,\n phase = _ref2.phase,\n interaction = _ref2.interaction;\n\n if (phase !== 'move' || !interaction.prepared.edges) {\n return;\n }\n\n var resizeOptions = interaction.target.options.resize;\n var invert = resizeOptions.invert;\n var invertible = invert === 'reposition' || invert === 'negate';\n\n var edges = interaction.prepared.edges;\n\n var start = interaction.resizeRects.start;\n var current = interaction.resizeRects.current;\n var inverted = interaction.resizeRects.inverted;\n var delta = interaction.resizeRects.delta;\n var previous = utils.extend(interaction.resizeRects.previous, inverted);\n var originalEdges = edges;\n\n var dx = iEvent.dx;\n var dy = iEvent.dy;\n\n if (resizeOptions.preserveAspectRatio || resizeOptions.square) {\n // `resize.preserveAspectRatio` takes precedence over `resize.square`\n var startAspectRatio = resizeOptions.preserveAspectRatio ? interaction.resizeStartAspectRatio : 1;\n\n edges = interaction.prepared._linkedEdges;\n\n if (originalEdges.left && originalEdges.bottom || originalEdges.right && originalEdges.top) {\n dy = -dx / startAspectRatio;\n } else if (originalEdges.left || originalEdges.right) {\n dy = dx / startAspectRatio;\n } else if (originalEdges.top || originalEdges.bottom) {\n dx = dy * startAspectRatio;\n }\n }\n\n // update the 'current' rect without modifications\n if (edges.top) {\n current.top += dy;\n }\n if (edges.bottom) {\n current.bottom += dy;\n }\n if (edges.left) {\n current.left += dx;\n }\n if (edges.right) {\n current.right += dx;\n }\n\n if (invertible) {\n // if invertible, copy the current rect\n utils.extend(inverted, current);\n\n if (invert === 'reposition') {\n // swap edge values if necessary to keep width/height positive\n var swap = void 0;\n\n if (inverted.top > inverted.bottom) {\n swap = inverted.top;\n\n inverted.top = inverted.bottom;\n inverted.bottom = swap;\n }\n if (inverted.left > inverted.right) {\n swap = inverted.left;\n\n inverted.left = inverted.right;\n inverted.right = swap;\n }\n }\n } else {\n // if not invertible, restrict to minimum of 0x0 rect\n inverted.top = Math.min(current.top, start.bottom);\n inverted.bottom = Math.max(current.bottom, start.top);\n inverted.left = Math.min(current.left, start.right);\n inverted.right = Math.max(current.right, start.left);\n }\n\n inverted.width = inverted.right - inverted.left;\n inverted.height = inverted.bottom - inverted.top;\n\n for (var edge in inverted) {\n delta[edge] = inverted[edge] - previous[edge];\n }\n\n iEvent.edges = interaction.prepared.edges;\n iEvent.rect = inverted;\n iEvent.deltaRect = delta;\n});\n\n/**\n * ```js\n * interact(element).resizable({\n * onstart: function (event) {},\n * onmove : function (event) {},\n * onend : function (event) {},\n *\n * edges: {\n * top : true, // Use pointer coords to check for resize.\n * left : false, // Disable resizing from left edge.\n * bottom: '.resize-s',// Resize if pointer target matches selector\n * right : handleEl // Resize if pointer target is the given Element\n * },\n *\n * // Width and height can be adjusted independently. When `true`, width and\n * // height are adjusted at a 1:1 ratio.\n * square: false,\n *\n * // Width and height can be adjusted independently. When `true`, width and\n * // height maintain the aspect ratio they had when resizing started.\n * preserveAspectRatio: false,\n *\n * // a value of 'none' will limit the resize rect to a minimum of 0x0\n * // 'negate' will allow the rect to have negative width/height\n * // 'reposition' will keep the width/height positive by swapping\n * // the top and bottom edges and/or swapping the left and right edges\n * invert: 'none' || 'negate' || 'reposition'\n *\n * // limit multiple resizes.\n * // See the explanation in the {@link Interactable.draggable} example\n * max: Infinity,\n * maxPerElement: 1,\n * });\n *\n * var isResizeable = interact(element).resizable();\n * ```\n *\n * Gets or sets whether resize actions can be performed on the target\n *\n * @param {boolean | object} [options] true/false or An object with event\n * listeners to be fired on resize events (object makes the Interactable\n * resizable)\n * @return {boolean | Interactable} A boolean indicating if this can be the\n * target of resize elements, or this Interactable\n */\nInteractable.prototype.resizable = function (options) {\n if (utils.is.object(options)) {\n this.options.resize.enabled = options.enabled === false ? false : true;\n this.setPerAction('resize', options);\n this.setOnEvents('resize', options);\n\n if (/^x$|^y$|^xy$/.test(options.axis)) {\n this.options.resize.axis = options.axis;\n } else if (options.axis === null) {\n this.options.resize.axis = defaultOptions.resize.axis;\n }\n\n if (utils.is.bool(options.preserveAspectRatio)) {\n this.options.resize.preserveAspectRatio = options.preserveAspectRatio;\n } else if (utils.is.bool(options.square)) {\n this.options.resize.square = options.square;\n }\n\n return this;\n }\n if (utils.is.bool(options)) {\n this.options.resize.enabled = options;\n\n if (!options) {\n this.onresizestart = this.onresizestart = this.onresizeend = null;\n }\n\n return this;\n }\n return this.options.resize;\n};\n\nfunction checkResizeEdge(name, value, page, element, interactableElement, rect, margin) {\n // false, '', undefined, null\n if (!value) {\n return false;\n }\n\n // true value, use pointer coords and element rect\n if (value === true) {\n // if dimensions are negative, \"switch\" edges\n var width = utils.is.number(rect.width) ? rect.width : rect.right - rect.left;\n var height = utils.is.number(rect.height) ? rect.height : rect.bottom - rect.top;\n\n if (width < 0) {\n if (name === 'left') {\n name = 'right';\n } else if (name === 'right') {\n name = 'left';\n }\n }\n if (height < 0) {\n if (name === 'top') {\n name = 'bottom';\n } else if (name === 'bottom') {\n name = 'top';\n }\n }\n\n if (name === 'left') {\n return page.x < (width >= 0 ? rect.left : rect.right) + margin;\n }\n if (name === 'top') {\n return page.y < (height >= 0 ? rect.top : rect.bottom) + margin;\n }\n\n if (name === 'right') {\n return page.x > (width >= 0 ? rect.right : rect.left) - margin;\n }\n if (name === 'bottom') {\n return page.y > (height >= 0 ? rect.bottom : rect.top) - margin;\n }\n }\n\n // the remaining checks require an element\n if (!utils.is.element(element)) {\n return false;\n }\n\n return utils.is.element(value)\n // the value is an element to use as a resize handle\n ? value === element\n // otherwise check if element matches value as selector\n : utils.matchesUpTo(element, value, interactableElement);\n}\n\nInteraction.signals.on('new', function (interaction) {\n interaction.resizeAxes = 'xy';\n});\n\nInteractEvent.signals.on('set-delta', function (_ref3) {\n var interaction = _ref3.interaction,\n iEvent = _ref3.iEvent,\n action = _ref3.action;\n\n if (action !== 'resize' || !interaction.resizeAxes) {\n return;\n }\n\n var options = interaction.target.options;\n\n if (options.resize.square) {\n if (interaction.resizeAxes === 'y') {\n iEvent.dx = iEvent.dy;\n } else {\n iEvent.dy = iEvent.dx;\n }\n iEvent.axes = 'xy';\n } else {\n iEvent.axes = interaction.resizeAxes;\n\n if (interaction.resizeAxes === 'x') {\n iEvent.dy = 0;\n } else if (interaction.resizeAxes === 'y') {\n iEvent.dx = 0;\n }\n }\n});\n\nactions.resize = resize;\nactions.names.push('resize');\nutils.merge(Interactable.eventTypes, ['resizestart', 'resizemove', 'resizeinertiastart', 'resizeinertiaresume', 'resizeend']);\nactions.methodDict.resize = 'resizable';\n\ndefaultOptions.resize = resize.defaults;\n\nmodule.exports = resize;\n\n},{\"../InteractEvent\":3,\"../Interactable\":4,\"../Interaction\":5,\"../defaultOptions\":18,\"../utils\":44,\"../utils/browser\":36,\"./base\":6}],11:[function(require,module,exports){\n'use strict';\n\nvar raf = require('./utils/raf');\nvar getWindow = require('./utils/window').getWindow;\nvar is = require('./utils/is');\nvar domUtils = require('./utils/domUtils');\nvar Interaction = require('./Interaction');\nvar defaultOptions = require('./defaultOptions');\n\nvar autoScroll = {\n defaults: {\n enabled: false,\n container: null, // the item that is scrolled (Window or HTMLElement)\n margin: 60,\n speed: 300 // the scroll speed in pixels per second\n },\n\n interaction: null,\n i: null, // the handle returned by window.setInterval\n x: 0, y: 0, // Direction each pulse is to scroll in\n\n isScrolling: false,\n prevTime: 0,\n\n start: function start(interaction) {\n autoScroll.isScrolling = true;\n raf.cancel(autoScroll.i);\n\n autoScroll.interaction = interaction;\n autoScroll.prevTime = new Date().getTime();\n autoScroll.i = raf.request(autoScroll.scroll);\n },\n\n stop: function stop() {\n autoScroll.isScrolling = false;\n raf.cancel(autoScroll.i);\n },\n\n // scroll the window by the values in scroll.x/y\n scroll: function scroll() {\n var options = autoScroll.interaction.target.options[autoScroll.interaction.prepared.name].autoScroll;\n var container = options.container || getWindow(autoScroll.interaction.element);\n var now = new Date().getTime();\n // change in time in seconds\n var dt = (now - autoScroll.prevTime) / 1000;\n // displacement\n var s = options.speed * dt;\n\n if (s >= 1) {\n if (is.window(container)) {\n container.scrollBy(autoScroll.x * s, autoScroll.y * s);\n } else if (container) {\n container.scrollLeft += autoScroll.x * s;\n container.scrollTop += autoScroll.y * s;\n }\n\n autoScroll.prevTime = now;\n }\n\n if (autoScroll.isScrolling) {\n raf.cancel(autoScroll.i);\n autoScroll.i = raf.request(autoScroll.scroll);\n }\n },\n check: function check(interactable, actionName) {\n var options = interactable.options;\n\n return options[actionName].autoScroll && options[actionName].autoScroll.enabled;\n },\n onInteractionMove: function onInteractionMove(_ref) {\n var interaction = _ref.interaction,\n pointer = _ref.pointer;\n\n if (!(interaction.interacting() && autoScroll.check(interaction.target, interaction.prepared.name))) {\n return;\n }\n\n if (interaction.simulation) {\n autoScroll.x = autoScroll.y = 0;\n return;\n }\n\n var top = void 0;\n var right = void 0;\n var bottom = void 0;\n var left = void 0;\n\n var options = interaction.target.options[interaction.prepared.name].autoScroll;\n var container = options.container || getWindow(interaction.element);\n\n if (is.window(container)) {\n left = pointer.clientX < autoScroll.margin;\n top = pointer.clientY < autoScroll.margin;\n right = pointer.clientX > container.innerWidth - autoScroll.margin;\n bottom = pointer.clientY > container.innerHeight - autoScroll.margin;\n } else {\n var rect = domUtils.getElementClientRect(container);\n\n left = pointer.clientX < rect.left + autoScroll.margin;\n top = pointer.clientY < rect.top + autoScroll.margin;\n right = pointer.clientX > rect.right - autoScroll.margin;\n bottom = pointer.clientY > rect.bottom - autoScroll.margin;\n }\n\n autoScroll.x = right ? 1 : left ? -1 : 0;\n autoScroll.y = bottom ? 1 : top ? -1 : 0;\n\n if (!autoScroll.isScrolling) {\n // set the autoScroll properties to those of the target\n autoScroll.margin = options.margin;\n autoScroll.speed = options.speed;\n\n autoScroll.start(interaction);\n }\n }\n};\n\nInteraction.signals.on('stop-active', function () {\n autoScroll.stop();\n});\n\nInteraction.signals.on('action-move', autoScroll.onInteractionMove);\n\ndefaultOptions.perAction.autoScroll = autoScroll.defaults;\n\nmodule.exports = autoScroll;\n\n},{\"./Interaction\":5,\"./defaultOptions\":18,\"./utils/domUtils\":39,\"./utils/is\":46,\"./utils/raf\":50,\"./utils/window\":52}],12:[function(require,module,exports){\n'use strict';\n\n/** @lends Interactable */\nvar Interactable = require('../Interactable');\nvar actions = require('../actions/base');\nvar is = require('../utils/is');\nvar domUtils = require('../utils/domUtils');\n\nvar _require = require('../utils'),\n warnOnce = _require.warnOnce;\n\nInteractable.prototype.getAction = function (pointer, event, interaction, element) {\n var action = this.defaultActionChecker(pointer, event, interaction, element);\n\n if (this.options.actionChecker) {\n return this.options.actionChecker(pointer, event, action, this, element, interaction);\n }\n\n return action;\n};\n\n/**\n * ```js\n * interact(element, { ignoreFrom: document.getElementById('no-action') });\n * // or\n * interact(element).ignoreFrom('input, textarea, a');\n * ```\n * @deprecated\n * If the target of the `mousedown`, `pointerdown` or `touchstart` event or any\n * of it's parents match the given CSS selector or Element, no\n * drag/resize/gesture is started.\n *\n * Don't use this method. Instead set the `ignoreFrom` option for each action\n * or for `pointerEvents`\n *\n * @example\n * interact(targett)\n * .draggable({\n * ignoreFrom: 'input, textarea, a[href]'',\n * })\n * .pointerEvents({\n * ignoreFrom: '[no-pointer]',\n * });\n *\n * @param {string | Element | null} [newValue] a CSS selector string, an\n * Element or `null` to not ignore any elements\n * @return {string | Element | object} The current ignoreFrom value or this\n * Interactable\n */\nInteractable.prototype.ignoreFrom = warnOnce(function (newValue) {\n return this._backCompatOption('ignoreFrom', newValue);\n}, 'Interactable.ignoreForm() has been deprecated. Use Interactble.draggable({ignoreFrom: newValue}).');\n\n/**\n * ```js\n *\n * @deprecated\n * A drag/resize/gesture is started only If the target of the `mousedown`,\n * `pointerdown` or `touchstart` event or any of it's parents match the given\n * CSS selector or Element.\n *\n * Don't use this method. Instead set the `allowFrom` option for each action\n * or for `pointerEvents`\n *\n * @example\n * interact(targett)\n * .resizable({\n * allowFrom: '.resize-handle',\n * .pointerEvents({\n * allowFrom: '.handle',,\n * });\n *\n * @param {string | Element | null} [newValue] a CSS selector string, an\n * Element or `null` to allow from any element\n * @return {string | Element | object} The current allowFrom value or this\n * Interactable\n */\nInteractable.prototype.allowFrom = warnOnce(function (newValue) {\n return this._backCompatOption('allowFrom', newValue);\n}, 'Interactable.allowForm() has been deprecated. Use Interactble.draggable({allowFrom: newValue}).');\n\nInteractable.prototype.testIgnore = function (ignoreFrom, interactableElement, element) {\n if (!ignoreFrom || !is.element(element)) {\n return false;\n }\n\n if (is.string(ignoreFrom)) {\n return domUtils.matchesUpTo(element, ignoreFrom, interactableElement);\n } else if (is.element(ignoreFrom)) {\n return domUtils.nodeContains(ignoreFrom, element);\n }\n\n return false;\n};\n\nInteractable.prototype.testAllow = function (allowFrom, interactableElement, element) {\n if (!allowFrom) {\n return true;\n }\n\n if (!is.element(element)) {\n return false;\n }\n\n if (is.string(allowFrom)) {\n return domUtils.matchesUpTo(element, allowFrom, interactableElement);\n } else if (is.element(allowFrom)) {\n return domUtils.nodeContains(allowFrom, element);\n }\n\n return false;\n};\n\nInteractable.prototype.testIgnoreAllow = function (options, interactableElement, eventTarget) {\n return !this.testIgnore(options.ignoreFrom, interactableElement, eventTarget) && this.testAllow(options.allowFrom, interactableElement, eventTarget);\n};\n\n/**\n * ```js\n * interact('.resize-drag')\n * .resizable(true)\n * .draggable(true)\n * .actionChecker(function (pointer, event, action, interactable, element, interaction) {\n *\n * if (interact.matchesSelector(event.target, '.drag-handle') {\n * // force drag with handle target\n * action.name = drag;\n * }\n * else {\n * // resize from the top and right edges\n * action.name = 'resize';\n * action.edges = { top: true, right: true };\n * }\n *\n * return action;\n * });\n * ```\n *\n * Gets or sets the function used to check action to be performed on\n * pointerDown\n *\n * @param {function | null} [checker] A function which takes a pointer event,\n * defaultAction string, interactable, element and interaction as parameters\n * and returns an object with name property 'drag' 'resize' or 'gesture' and\n * optionally an `edges` object with boolean 'top', 'left', 'bottom' and right\n * props.\n * @return {Function | Interactable} The checker function or this Interactable\n */\nInteractable.prototype.actionChecker = function (checker) {\n if (is.function(checker)) {\n this.options.actionChecker = checker;\n\n return this;\n }\n\n if (checker === null) {\n delete this.options.actionChecker;\n\n return this;\n }\n\n return this.options.actionChecker;\n};\n\n/**\n * Returns or sets whether the the cursor should be changed depending on the\n * action that would be performed if the mouse were pressed and dragged.\n *\n * @param {boolean} [newValue]\n * @return {boolean | Interactable} The current setting or this Interactable\n */\nInteractable.prototype.styleCursor = function (newValue) {\n if (is.bool(newValue)) {\n this.options.styleCursor = newValue;\n\n return this;\n }\n\n if (newValue === null) {\n delete this.options.styleCursor;\n\n return this;\n }\n\n return this.options.styleCursor;\n};\n\nInteractable.prototype.defaultActionChecker = function (pointer, event, interaction, element) {\n var rect = this.getRect(element);\n var buttons = event.buttons || {\n 0: 1,\n 1: 4,\n 3: 8,\n 4: 16\n }[event.button];\n var action = null;\n\n for (var _i = 0; _i < actions.names.length; _i++) {\n var _ref;\n\n _ref = actions.names[_i];\n var actionName = _ref;\n\n // check mouseButton setting if the pointer is down\n if (interaction.pointerIsDown && /mouse|pointer/.test(interaction.pointerType) && (buttons & this.options[actionName].mouseButtons) === 0) {\n continue;\n }\n\n action = actions[actionName].checker(pointer, event, this, element, interaction, rect);\n\n if (action) {\n return action;\n }\n }\n};\n\n},{\"../Interactable\":4,\"../actions/base\":6,\"../utils\":44,\"../utils/domUtils\":39,\"../utils/is\":46}],13:[function(require,module,exports){\n'use strict';\n\nvar interact = require('../interact');\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar actions = require('../actions/base');\nvar defaultOptions = require('../defaultOptions');\nvar scope = require('../scope');\nvar utils = require('../utils');\nvar signals = require('../utils/Signals').new();\n\nrequire('./InteractableMethods');\n\nvar autoStart = {\n signals: signals,\n withinInteractionLimit: withinInteractionLimit,\n // Allow this many interactions to happen simultaneously\n maxInteractions: Infinity,\n defaults: {\n perAction: {\n manualStart: false,\n max: Infinity,\n maxPerElement: 1,\n allowFrom: null,\n ignoreFrom: null,\n\n // only allow left button by default\n // see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons#Return_value\n mouseButtons: 1\n }\n },\n setActionDefaults: function setActionDefaults(action) {\n utils.extend(action.defaults, autoStart.defaults.perAction);\n },\n validateAction: validateAction\n};\n\n// set cursor style on mousedown\nInteraction.signals.on('down', function (_ref) {\n var interaction = _ref.interaction,\n pointer = _ref.pointer,\n event = _ref.event,\n eventTarget = _ref.eventTarget;\n\n if (interaction.interacting()) {\n return;\n }\n\n var actionInfo = getActionInfo(interaction, pointer, event, eventTarget);\n prepare(interaction, actionInfo);\n});\n\n// set cursor style on mousemove\nInteraction.signals.on('move', function (_ref2) {\n var interaction = _ref2.interaction,\n pointer = _ref2.pointer,\n event = _ref2.event,\n eventTarget = _ref2.eventTarget;\n\n if (interaction.pointerType !== 'mouse' || interaction.pointerIsDown || interaction.interacting()) {\n return;\n }\n\n var actionInfo = getActionInfo(interaction, pointer, event, eventTarget);\n prepare(interaction, actionInfo);\n});\n\nInteraction.signals.on('move', function (arg) {\n var interaction = arg.interaction,\n event = arg.event;\n\n\n if (!interaction.pointerIsDown || interaction.interacting() || !interaction.pointerWasMoved || !interaction.prepared.name) {\n return;\n }\n\n signals.fire('before-start', arg);\n\n var target = interaction.target;\n\n if (interaction.prepared.name && target) {\n // check manualStart and interaction limit\n if (target.options[interaction.prepared.name].manualStart || !withinInteractionLimit(target, interaction.element, interaction.prepared)) {\n interaction.stop(event);\n } else {\n interaction.start(interaction.prepared, target, interaction.element);\n }\n }\n});\n\n// Check if the current target supports the action.\n// If so, return the validated action. Otherwise, return null\nfunction validateAction(action, interactable, element, eventTarget) {\n if (utils.is.object(action) && interactable.testIgnoreAllow(interactable.options[action.name], element, eventTarget) && interactable.options[action.name].enabled && withinInteractionLimit(interactable, element, action)) {\n return action;\n }\n\n return null;\n}\n\nfunction validateSelector(interaction, pointer, event, matches, matchElements, eventTarget) {\n for (var i = 0, len = matches.length; i < len; i++) {\n var match = matches[i];\n var matchElement = matchElements[i];\n var action = validateAction(match.getAction(pointer, event, interaction, matchElement), match, matchElement, eventTarget);\n\n if (action) {\n return {\n action: action,\n target: match,\n element: matchElement\n };\n }\n }\n\n return {};\n}\n\nfunction getActionInfo(interaction, pointer, event, eventTarget) {\n var matches = [];\n var matchElements = [];\n\n var element = eventTarget;\n\n function pushMatches(interactable) {\n matches.push(interactable);\n matchElements.push(element);\n }\n\n while (utils.is.element(element)) {\n matches = [];\n matchElements = [];\n\n scope.interactables.forEachMatch(element, pushMatches);\n\n var actionInfo = validateSelector(interaction, pointer, event, matches, matchElements, eventTarget);\n\n if (actionInfo.action && !actionInfo.target.options[actionInfo.action.name].manualStart) {\n return actionInfo;\n }\n\n element = utils.parentNode(element);\n }\n\n return {};\n}\n\nfunction prepare(interaction, _ref3) {\n var action = _ref3.action,\n target = _ref3.target,\n element = _ref3.element;\n\n action = action || {};\n\n if (interaction.target && interaction.target.options.styleCursor) {\n interaction.target._doc.documentElement.style.cursor = '';\n }\n\n interaction.target = target;\n interaction.element = element;\n utils.copyAction(interaction.prepared, action);\n\n if (target && target.options.styleCursor) {\n var cursor = action ? actions[action.name].getCursor(action) : '';\n interaction.target._doc.documentElement.style.cursor = cursor;\n }\n\n signals.fire('prepared', { interaction: interaction });\n}\n\nInteraction.signals.on('stop', function (_ref4) {\n var interaction = _ref4.interaction;\n\n var target = interaction.target;\n\n if (target && target.options.styleCursor) {\n target._doc.documentElement.style.cursor = '';\n }\n});\n\nfunction withinInteractionLimit(interactable, element, action) {\n var options = interactable.options;\n var maxActions = options[action.name].max;\n var maxPerElement = options[action.name].maxPerElement;\n var activeInteractions = 0;\n var targetCount = 0;\n var targetElementCount = 0;\n\n // no actions if any of these values == 0\n if (!(maxActions && maxPerElement && autoStart.maxInteractions)) {\n return;\n }\n\n for (var _i = 0; _i < scope.interactions.length; _i++) {\n var _ref5;\n\n _ref5 = scope.interactions[_i];\n var interaction = _ref5;\n\n var otherAction = interaction.prepared.name;\n\n if (!interaction.interacting()) {\n continue;\n }\n\n activeInteractions++;\n\n if (activeInteractions >= autoStart.maxInteractions) {\n return false;\n }\n\n if (interaction.target !== interactable) {\n continue;\n }\n\n targetCount += otherAction === action.name | 0;\n\n if (targetCount >= maxActions) {\n return false;\n }\n\n if (interaction.element === element) {\n targetElementCount++;\n\n if (otherAction !== action.name || targetElementCount >= maxPerElement) {\n return false;\n }\n }\n }\n\n return autoStart.maxInteractions > 0;\n}\n\n/**\n * Returns or sets the maximum number of concurrent interactions allowed. By\n * default only 1 interaction is allowed at a time (for backwards\n * compatibility). To allow multiple interactions on the same Interactables and\n * elements, you need to enable it in the draggable, resizable and gesturable\n * `'max'` and `'maxPerElement'` options.\n *\n * @alias module:interact.maxInteractions\n *\n * @param {number} [newValue] Any number. newValue <= 0 means no interactions.\n */\ninteract.maxInteractions = function (newValue) {\n if (utils.is.number(newValue)) {\n autoStart.maxInteractions = newValue;\n\n return interact;\n }\n\n return autoStart.maxInteractions;\n};\n\nInteractable.settingsMethods.push('styleCursor');\nInteractable.settingsMethods.push('actionChecker');\nInteractable.settingsMethods.push('ignoreFrom');\nInteractable.settingsMethods.push('allowFrom');\n\ndefaultOptions.base.actionChecker = null;\ndefaultOptions.base.styleCursor = true;\n\nutils.extend(defaultOptions.perAction, autoStart.defaults.perAction);\n\nmodule.exports = autoStart;\n\n},{\"../Interactable\":4,\"../Interaction\":5,\"../actions/base\":6,\"../defaultOptions\":18,\"../interact\":21,\"../scope\":33,\"../utils\":44,\"../utils/Signals\":34,\"./InteractableMethods\":12}],14:[function(require,module,exports){\n'use strict';\n\nvar autoStart = require('./base');\nvar scope = require('../scope');\nvar is = require('../utils/is');\n\nvar _require = require('../utils/domUtils'),\n parentNode = _require.parentNode;\n\nautoStart.setActionDefaults(require('../actions/drag'));\n\nautoStart.signals.on('before-start', function (_ref) {\n var interaction = _ref.interaction,\n eventTarget = _ref.eventTarget,\n dx = _ref.dx,\n dy = _ref.dy;\n\n if (interaction.prepared.name !== 'drag') {\n return;\n }\n\n // check if a drag is in the correct axis\n var absX = Math.abs(dx);\n var absY = Math.abs(dy);\n var targetOptions = interaction.target.options.drag;\n var startAxis = targetOptions.startAxis;\n var currentAxis = absX > absY ? 'x' : absX < absY ? 'y' : 'xy';\n\n interaction.prepared.axis = targetOptions.lockAxis === 'start' ? currentAxis[0] // always lock to one axis even if currentAxis === 'xy'\n : targetOptions.lockAxis;\n\n // if the movement isn't in the startAxis of the interactable\n if (currentAxis !== 'xy' && startAxis !== 'xy' && startAxis !== currentAxis) {\n // cancel the prepared action\n interaction.prepared.name = null;\n\n // then try to get a drag from another ineractable\n var element = eventTarget;\n\n var getDraggable = function getDraggable(interactable) {\n if (interactable === interaction.target) {\n return;\n }\n\n var options = interaction.target.options.drag;\n\n if (!options.manualStart && interactable.testIgnoreAllow(options, element, eventTarget)) {\n\n var action = interactable.getAction(interaction.downPointer, interaction.downEvent, interaction, element);\n\n if (action && action.name === 'drag' && checkStartAxis(currentAxis, interactable) && autoStart.validateAction(action, interactable, element, eventTarget)) {\n\n return interactable;\n }\n }\n };\n\n // check all interactables\n while (is.element(element)) {\n var interactable = scope.interactables.forEachMatch(element, getDraggable);\n\n if (interactable) {\n interaction.prepared.name = 'drag';\n interaction.target = interactable;\n interaction.element = element;\n break;\n }\n\n element = parentNode(element);\n }\n }\n});\n\nfunction checkStartAxis(startAxis, interactable) {\n if (!interactable) {\n return false;\n }\n\n var thisAxis = interactable.options.drag.startAxis;\n\n return startAxis === 'xy' || thisAxis === 'xy' || thisAxis === startAxis;\n}\n\n},{\"../actions/drag\":7,\"../scope\":33,\"../utils/domUtils\":39,\"../utils/is\":46,\"./base\":13}],15:[function(require,module,exports){\n'use strict';\n\nrequire('./base').setActionDefaults(require('../actions/gesture'));\n\n},{\"../actions/gesture\":9,\"./base\":13}],16:[function(require,module,exports){\n'use strict';\n\nvar autoStart = require('./base');\nvar Interaction = require('../Interaction');\n\nautoStart.defaults.perAction.hold = 0;\nautoStart.defaults.perAction.delay = 0;\n\nInteraction.signals.on('new', function (interaction) {\n interaction.autoStartHoldTimer = null;\n});\n\nautoStart.signals.on('prepared', function (_ref) {\n var interaction = _ref.interaction;\n\n var hold = getHoldDuration(interaction);\n\n if (hold > 0) {\n interaction.autoStartHoldTimer = setTimeout(function () {\n interaction.start(interaction.prepared, interaction.target, interaction.element);\n }, hold);\n }\n});\n\nInteraction.signals.on('move', function (_ref2) {\n var interaction = _ref2.interaction,\n duplicate = _ref2.duplicate;\n\n if (interaction.pointerWasMoved && !duplicate) {\n clearTimeout(interaction.autoStartHoldTimer);\n }\n});\n\n// prevent regular down->move autoStart\nautoStart.signals.on('before-start', function (_ref3) {\n var interaction = _ref3.interaction;\n\n var hold = getHoldDuration(interaction);\n\n if (hold > 0) {\n interaction.prepared.name = null;\n }\n});\n\nfunction getHoldDuration(interaction) {\n var actionName = interaction.prepared && interaction.prepared.name;\n\n if (!actionName) {\n return null;\n }\n\n var options = interaction.target.options;\n\n return options[actionName].hold || options[actionName].delay;\n}\n\nmodule.exports = {\n getHoldDuration: getHoldDuration\n};\n\n},{\"../Interaction\":5,\"./base\":13}],17:[function(require,module,exports){\n'use strict';\n\nrequire('./base').setActionDefaults(require('../actions/resize'));\n\n},{\"../actions/resize\":10,\"./base\":13}],18:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n base: {\n accept: null,\n preventDefault: 'auto',\n deltaSource: 'page'\n },\n\n perAction: {\n origin: { x: 0, y: 0 },\n\n inertia: {\n enabled: false,\n resistance: 10, // the lambda in exponential decay\n minSpeed: 100, // target speed must be above this for inertia to start\n endSpeed: 10, // the speed at which inertia is slow enough to stop\n allowResume: true, // allow resuming an action in inertia phase\n smoothEndDuration: 300 // animate to snap/restrict endOnly if there's no inertia\n }\n }\n};\n\n},{}],19:[function(require,module,exports){\n'use strict';\n\n/* browser entry point */\n\n// inertia\nrequire('./inertia');\n\n// modifiers\nrequire('./modifiers/snap');\nrequire('./modifiers/restrict');\n\n// pointerEvents\nrequire('./pointerEvents/base');\nrequire('./pointerEvents/holdRepeat');\nrequire('./pointerEvents/interactableTargets');\n\n// autoStart hold\nrequire('./autoStart/hold');\n\n// actions\nrequire('./actions/gesture');\nrequire('./actions/resize');\nrequire('./actions/drag');\nrequire('./actions/drop');\n\n// load these modifiers after resize is loaded\nrequire('./modifiers/snapSize');\nrequire('./modifiers/restrictEdges');\nrequire('./modifiers/restrictSize');\n\n// autoStart actions\nrequire('./autoStart/gesture');\nrequire('./autoStart/resize');\nrequire('./autoStart/drag');\n\n// Interactable preventDefault setting\nrequire('./interactablePreventDefault.js');\n\n// autoScroll\nrequire('./autoScroll');\n\n// export interact\nmodule.exports = require('./interact');\n\n},{\"./actions/drag\":7,\"./actions/drop\":8,\"./actions/gesture\":9,\"./actions/resize\":10,\"./autoScroll\":11,\"./autoStart/drag\":14,\"./autoStart/gesture\":15,\"./autoStart/hold\":16,\"./autoStart/resize\":17,\"./inertia\":20,\"./interact\":21,\"./interactablePreventDefault.js\":22,\"./modifiers/restrict\":24,\"./modifiers/restrictEdges\":25,\"./modifiers/restrictSize\":26,\"./modifiers/snap\":27,\"./modifiers/snapSize\":28,\"./pointerEvents/base\":30,\"./pointerEvents/holdRepeat\":31,\"./pointerEvents/interactableTargets\":32}],20:[function(require,module,exports){\n'use strict';\n\nvar InteractEvent = require('./InteractEvent');\nvar Interaction = require('./Interaction');\nvar modifiers = require('./modifiers/base');\nvar utils = require('./utils');\nvar animationFrame = require('./utils/raf');\n\nInteraction.signals.on('new', function (interaction) {\n interaction.inertiaStatus = {\n active: false,\n smoothEnd: false,\n allowResume: false,\n\n startEvent: null,\n upCoords: {},\n\n xe: 0, ye: 0,\n sx: 0, sy: 0,\n\n t0: 0,\n vx0: 0, vys: 0,\n duration: 0,\n\n lambda_v0: 0,\n one_ve_v0: 0,\n i: null\n };\n\n interaction.boundInertiaFrame = function () {\n return inertiaFrame.apply(interaction);\n };\n interaction.boundSmoothEndFrame = function () {\n return smoothEndFrame.apply(interaction);\n };\n});\n\nInteraction.signals.on('down', function (_ref) {\n var interaction = _ref.interaction,\n event = _ref.event,\n pointer = _ref.pointer,\n eventTarget = _ref.eventTarget;\n\n var status = interaction.inertiaStatus;\n\n // Check if the down event hits the current inertia target\n if (status.active) {\n var element = eventTarget;\n\n // climb up the DOM tree from the event target\n while (utils.is.element(element)) {\n\n // if interaction element is the current inertia target element\n if (element === interaction.element) {\n // stop inertia\n animationFrame.cancel(status.i);\n status.active = false;\n interaction.simulation = null;\n\n // update pointers to the down event's coordinates\n interaction.updatePointer(pointer);\n utils.setCoords(interaction.curCoords, interaction.pointers);\n\n // fire appropriate signals\n var signalArg = { interaction: interaction };\n Interaction.signals.fire('before-action-move', signalArg);\n Interaction.signals.fire('action-resume', signalArg);\n\n // fire a reume event\n var resumeEvent = new InteractEvent(interaction, event, interaction.prepared.name, 'inertiaresume', interaction.element);\n\n interaction.target.fire(resumeEvent);\n interaction.prevEvent = resumeEvent;\n modifiers.resetStatuses(interaction.modifierStatuses);\n\n utils.copyCoords(interaction.prevCoords, interaction.curCoords);\n break;\n }\n\n element = utils.parentNode(element);\n }\n }\n});\n\nInteraction.signals.on('up', function (_ref2) {\n var interaction = _ref2.interaction,\n event = _ref2.event;\n\n var status = interaction.inertiaStatus;\n\n if (!interaction.interacting() || status.active) {\n return;\n }\n\n var target = interaction.target;\n var options = target && target.options;\n var inertiaOptions = options && interaction.prepared.name && options[interaction.prepared.name].inertia;\n\n var now = new Date().getTime();\n var statuses = {};\n var page = utils.extend({}, interaction.curCoords.page);\n var pointerSpeed = interaction.pointerDelta.client.speed;\n\n var smoothEnd = false;\n var modifierResult = void 0;\n\n // check if inertia should be started\n var inertiaPossible = inertiaOptions && inertiaOptions.enabled && interaction.prepared.name !== 'gesture' && event !== status.startEvent;\n\n var inertia = inertiaPossible && now - interaction.curCoords.timeStamp < 50 && pointerSpeed > inertiaOptions.minSpeed && pointerSpeed > inertiaOptions.endSpeed;\n\n var modifierArg = {\n interaction: interaction,\n pageCoords: page,\n statuses: statuses,\n preEnd: true,\n requireEndOnly: true\n };\n\n // smoothEnd\n if (inertiaPossible && !inertia) {\n modifiers.resetStatuses(statuses);\n\n modifierResult = modifiers.setAll(modifierArg);\n\n if (modifierResult.shouldMove && modifierResult.locked) {\n smoothEnd = true;\n }\n }\n\n if (!(inertia || smoothEnd)) {\n return;\n }\n\n utils.copyCoords(status.upCoords, interaction.curCoords);\n\n interaction.pointers[0] = status.startEvent = new InteractEvent(interaction, event, interaction.prepared.name, 'inertiastart', interaction.element);\n\n status.t0 = now;\n\n status.active = true;\n status.allowResume = inertiaOptions.allowResume;\n interaction.simulation = status;\n\n target.fire(status.startEvent);\n\n if (inertia) {\n status.vx0 = interaction.pointerDelta.client.vx;\n status.vy0 = interaction.pointerDelta.client.vy;\n status.v0 = pointerSpeed;\n\n calcInertia(interaction, status);\n\n utils.extend(page, interaction.curCoords.page);\n\n page.x += status.xe;\n page.y += status.ye;\n\n modifiers.resetStatuses(statuses);\n\n modifierResult = modifiers.setAll(modifierArg);\n\n status.modifiedXe += modifierResult.dx;\n status.modifiedYe += modifierResult.dy;\n\n status.i = animationFrame.request(interaction.boundInertiaFrame);\n } else {\n status.smoothEnd = true;\n status.xe = modifierResult.dx;\n status.ye = modifierResult.dy;\n\n status.sx = status.sy = 0;\n\n status.i = animationFrame.request(interaction.boundSmoothEndFrame);\n }\n});\n\nInteraction.signals.on('stop-active', function (_ref3) {\n var interaction = _ref3.interaction;\n\n var status = interaction.inertiaStatus;\n\n if (status.active) {\n animationFrame.cancel(status.i);\n status.active = false;\n interaction.simulation = null;\n }\n});\n\nfunction calcInertia(interaction, status) {\n var inertiaOptions = interaction.target.options[interaction.prepared.name].inertia;\n var lambda = inertiaOptions.resistance;\n var inertiaDur = -Math.log(inertiaOptions.endSpeed / status.v0) / lambda;\n\n status.x0 = interaction.prevEvent.pageX;\n status.y0 = interaction.prevEvent.pageY;\n status.t0 = status.startEvent.timeStamp / 1000;\n status.sx = status.sy = 0;\n\n status.modifiedXe = status.xe = (status.vx0 - inertiaDur) / lambda;\n status.modifiedYe = status.ye = (status.vy0 - inertiaDur) / lambda;\n status.te = inertiaDur;\n\n status.lambda_v0 = lambda / status.v0;\n status.one_ve_v0 = 1 - inertiaOptions.endSpeed / status.v0;\n}\n\nfunction inertiaFrame() {\n updateInertiaCoords(this);\n utils.setCoordDeltas(this.pointerDelta, this.prevCoords, this.curCoords);\n\n var status = this.inertiaStatus;\n var options = this.target.options[this.prepared.name].inertia;\n var lambda = options.resistance;\n var t = new Date().getTime() / 1000 - status.t0;\n\n if (t < status.te) {\n\n var progress = 1 - (Math.exp(-lambda * t) - status.lambda_v0) / status.one_ve_v0;\n\n if (status.modifiedXe === status.xe && status.modifiedYe === status.ye) {\n status.sx = status.xe * progress;\n status.sy = status.ye * progress;\n } else {\n var quadPoint = utils.getQuadraticCurvePoint(0, 0, status.xe, status.ye, status.modifiedXe, status.modifiedYe, progress);\n\n status.sx = quadPoint.x;\n status.sy = quadPoint.y;\n }\n\n this.doMove();\n\n status.i = animationFrame.request(this.boundInertiaFrame);\n } else {\n status.sx = status.modifiedXe;\n status.sy = status.modifiedYe;\n\n this.doMove();\n this.end(status.startEvent);\n status.active = false;\n this.simulation = null;\n }\n\n utils.copyCoords(this.prevCoords, this.curCoords);\n}\n\nfunction smoothEndFrame() {\n updateInertiaCoords(this);\n\n var status = this.inertiaStatus;\n var t = new Date().getTime() - status.t0;\n var duration = this.target.options[this.prepared.name].inertia.smoothEndDuration;\n\n if (t < duration) {\n status.sx = utils.easeOutQuad(t, 0, status.xe, duration);\n status.sy = utils.easeOutQuad(t, 0, status.ye, duration);\n\n this.pointerMove(status.startEvent, status.startEvent);\n\n status.i = animationFrame.request(this.boundSmoothEndFrame);\n } else {\n status.sx = status.xe;\n status.sy = status.ye;\n\n this.pointerMove(status.startEvent, status.startEvent);\n this.end(status.startEvent);\n\n status.smoothEnd = status.active = false;\n this.simulation = null;\n }\n}\n\nfunction updateInertiaCoords(interaction) {\n var status = interaction.inertiaStatus;\n\n // return if inertia isn't running\n if (!status.active) {\n return;\n }\n\n var pageUp = status.upCoords.page;\n var clientUp = status.upCoords.client;\n\n utils.setCoords(interaction.curCoords, [{\n pageX: pageUp.x + status.sx,\n pageY: pageUp.y + status.sy,\n clientX: clientUp.x + status.sx,\n clientY: clientUp.y + status.sy\n }]);\n}\n\n},{\"./InteractEvent\":3,\"./Interaction\":5,\"./modifiers/base\":23,\"./utils\":44,\"./utils/raf\":50}],21:[function(require,module,exports){\n'use strict';\n\n/** @module interact */\n\nvar browser = require('./utils/browser');\nvar events = require('./utils/events');\nvar utils = require('./utils');\nvar scope = require('./scope');\nvar Interactable = require('./Interactable');\nvar Interaction = require('./Interaction');\n\nvar globalEvents = {};\n\n/**\n * ```js\n * interact('#draggable').draggable(true);\n *\n * var rectables = interact('rect');\n * rectables\n * .gesturable(true)\n * .on('gesturemove', function (event) {\n * // ...\n * });\n * ```\n *\n * The methods of this variable can be used to set elements as interactables\n * and also to change various default settings.\n *\n * Calling it as a function and passing an element or a valid CSS selector\n * string returns an Interactable object which has various methods to configure\n * it.\n *\n * @global\n *\n * @param {Element | string} element The HTML or SVG Element to interact with\n * or CSS selector\n * @return {Interactable}\n */\nfunction interact(element, options) {\n var interactable = scope.interactables.get(element, options);\n\n if (!interactable) {\n interactable = new Interactable(element, options);\n interactable.events.global = globalEvents;\n }\n\n return interactable;\n}\n\n/**\n * Check if an element or selector has been set with the {@link interact}\n * function\n *\n * @alias module:interact.isSet\n *\n * @param {Element} element The Element being searched for\n * @return {boolean} Indicates if the element or CSS selector was previously\n * passed to interact\n*/\ninteract.isSet = function (element, options) {\n return scope.interactables.indexOfElement(element, options && options.context) !== -1;\n};\n\n/**\n * Add a global listener for an InteractEvent or adds a DOM event to `document`\n *\n * @alias module:interact.on\n *\n * @param {string | array | object} type The types of events to listen for\n * @param {function} listener The function event (s)\n * @param {object | boolean} [options] object or useCapture flag for\n * addEventListener\n * @return {object} interact\n */\ninteract.on = function (type, listener, options) {\n if (utils.is.string(type) && type.search(' ') !== -1) {\n type = type.trim().split(/ +/);\n }\n\n if (utils.is.array(type)) {\n for (var _i = 0; _i < type.length; _i++) {\n var _ref;\n\n _ref = type[_i];\n var eventType = _ref;\n\n interact.on(eventType, listener, options);\n }\n\n return interact;\n }\n\n if (utils.is.object(type)) {\n for (var prop in type) {\n interact.on(prop, type[prop], listener);\n }\n\n return interact;\n }\n\n // if it is an InteractEvent type, add listener to globalEvents\n if (utils.contains(Interactable.eventTypes, type)) {\n // if this type of event was never bound\n if (!globalEvents[type]) {\n globalEvents[type] = [listener];\n } else {\n globalEvents[type].push(listener);\n }\n }\n // If non InteractEvent type, addEventListener to document\n else {\n events.add(scope.document, type, listener, { options: options });\n }\n\n return interact;\n};\n\n/**\n * Removes a global InteractEvent listener or DOM event from `document`\n *\n * @alias module:interact.off\n *\n * @param {string | array | object} type The types of events that were listened\n * for\n * @param {function} listener The listener function to be removed\n * @param {object | boolean} options [options] object or useCapture flag for\n * removeEventListener\n * @return {object} interact\n */\ninteract.off = function (type, listener, options) {\n if (utils.is.string(type) && type.search(' ') !== -1) {\n type = type.trim().split(/ +/);\n }\n\n if (utils.is.array(type)) {\n for (var _i2 = 0; _i2 < type.length; _i2++) {\n var _ref2;\n\n _ref2 = type[_i2];\n var eventType = _ref2;\n\n interact.off(eventType, listener, options);\n }\n\n return interact;\n }\n\n if (utils.is.object(type)) {\n for (var prop in type) {\n interact.off(prop, type[prop], listener);\n }\n\n return interact;\n }\n\n if (!utils.contains(Interactable.eventTypes, type)) {\n events.remove(scope.document, type, listener, options);\n } else {\n var index = void 0;\n\n if (type in globalEvents && (index = globalEvents[type].indexOf(listener)) !== -1) {\n globalEvents[type].splice(index, 1);\n }\n }\n\n return interact;\n};\n\n/**\n * Returns an object which exposes internal data\n\n * @alias module:interact.debug\n *\n * @return {object} An object with properties that outline the current state\n * and expose internal functions and variables\n */\ninteract.debug = function () {\n return scope;\n};\n\n// expose the functions used to calculate multi-touch properties\ninteract.getPointerAverage = utils.pointerAverage;\ninteract.getTouchBBox = utils.touchBBox;\ninteract.getTouchDistance = utils.touchDistance;\ninteract.getTouchAngle = utils.touchAngle;\n\ninteract.getElementRect = utils.getElementRect;\ninteract.getElementClientRect = utils.getElementClientRect;\ninteract.matchesSelector = utils.matchesSelector;\ninteract.closest = utils.closest;\n\n/**\n * @alias module:interact.supportsTouch\n *\n * @return {boolean} Whether or not the browser supports touch input\n */\ninteract.supportsTouch = function () {\n return browser.supportsTouch;\n};\n\n/**\n * @alias module:interact.supportsPointerEvent\n *\n * @return {boolean} Whether or not the browser supports PointerEvents\n */\ninteract.supportsPointerEvent = function () {\n return browser.supportsPointerEvent;\n};\n\n/**\n * Cancels all interactions (end events are not fired)\n *\n * @alias module:interact.stop\n *\n * @param {Event} event An event on which to call preventDefault()\n * @return {object} interact\n */\ninteract.stop = function (event) {\n for (var i = scope.interactions.length - 1; i >= 0; i--) {\n scope.interactions[i].stop(event);\n }\n\n return interact;\n};\n\n/**\n * Returns or sets the distance the pointer must be moved before an action\n * sequence occurs. This also affects tolerance for tap events.\n *\n * @alias module:interact.pointerMoveTolerance\n *\n * @param {number} [newValue] The movement from the start position must be greater than this value\n * @return {interact | number}\n */\ninteract.pointerMoveTolerance = function (newValue) {\n if (utils.is.number(newValue)) {\n Interaction.pointerMoveTolerance = newValue;\n\n return interact;\n }\n\n return Interaction.pointerMoveTolerance;\n};\n\ninteract.addDocument = scope.addDocument;\ninteract.removeDocument = scope.removeDocument;\n\nscope.interact = interact;\n\nmodule.exports = interact;\n\n},{\"./Interactable\":4,\"./Interaction\":5,\"./scope\":33,\"./utils\":44,\"./utils/browser\":36,\"./utils/events\":40}],22:[function(require,module,exports){\n'use strict';\n\nvar Interactable = require('./Interactable');\nvar Interaction = require('./Interaction');\nvar scope = require('./scope');\nvar is = require('./utils/is');\nvar events = require('./utils/events');\nvar browser = require('./utils/browser');\n\nvar _require = require('./utils/domUtils'),\n nodeContains = _require.nodeContains,\n matchesSelector = _require.matchesSelector;\n\n/**\n * Returns or sets whether to prevent the browser's default behaviour in\n * response to pointer events. Can be set to:\n * - `'always'` to always prevent\n * - `'never'` to never prevent\n * - `'auto'` to let interact.js try to determine what would be best\n *\n * @param {string} [newValue] `true`, `false` or `'auto'`\n * @return {string | Interactable} The current setting or this Interactable\n */\n\n\nInteractable.prototype.preventDefault = function (newValue) {\n if (/^(always|never|auto)$/.test(newValue)) {\n this.options.preventDefault = newValue;\n return this;\n }\n\n if (is.bool(newValue)) {\n this.options.preventDefault = newValue ? 'always' : 'never';\n return this;\n }\n\n return this.options.preventDefault;\n};\n\nInteractable.prototype.checkAndPreventDefault = function (event) {\n var setting = this.options.preventDefault;\n\n if (setting === 'never') {\n return;\n }\n\n if (setting === 'always') {\n event.preventDefault();\n return;\n }\n\n // setting === 'auto'\n\n // don't preventDefault of touch{start,move} events if the browser supports passive\n // events listeners. CSS touch-action and user-selecct should be used instead\n if (events.supportsPassive && /^touch(start|move)$/.test(event.type) && !browser.isIOS) {\n return;\n }\n\n // don't preventDefault of pointerdown events\n if (/^(mouse|pointer|touch)*(down|start)/i.test(event.type)) {\n return;\n }\n\n // don't preventDefault on editable elements\n if (is.element(event.target) && matchesSelector(event.target, 'input,select,textarea,[contenteditable=true],[contenteditable=true] *')) {\n return;\n }\n\n event.preventDefault();\n};\n\nfunction onInteractionEvent(_ref) {\n var interaction = _ref.interaction,\n event = _ref.event;\n\n if (interaction.target) {\n interaction.target.checkAndPreventDefault(event);\n }\n}\n\nvar _arr = ['down', 'move', 'up', 'cancel'];\nfor (var _i = 0; _i < _arr.length; _i++) {\n var eventSignal = _arr[_i];\n Interaction.signals.on(eventSignal, onInteractionEvent);\n}\n\n// prevent native HTML5 drag on interact.js target elements\nInteraction.docEvents.dragstart = function preventNativeDrag(event) {\n for (var _i2 = 0; _i2 < scope.interactions.length; _i2++) {\n var _ref2;\n\n _ref2 = scope.interactions[_i2];\n var interaction = _ref2;\n\n\n if (interaction.element && (interaction.element === event.target || nodeContains(interaction.element, event.target))) {\n\n interaction.target.checkAndPreventDefault(event);\n return;\n }\n }\n};\n\n},{\"./Interactable\":4,\"./Interaction\":5,\"./scope\":33,\"./utils/browser\":36,\"./utils/domUtils\":39,\"./utils/events\":40,\"./utils/is\":46}],23:[function(require,module,exports){\n'use strict';\n\nvar InteractEvent = require('../InteractEvent');\nvar Interaction = require('../Interaction');\nvar extend = require('../utils/extend');\n\nvar modifiers = {\n names: [],\n\n setOffsets: function setOffsets(arg) {\n var interaction = arg.interaction,\n page = arg.pageCoords;\n var target = interaction.target,\n element = interaction.element,\n startOffset = interaction.startOffset;\n\n var rect = target.getRect(element);\n\n if (rect) {\n startOffset.left = page.x - rect.left;\n startOffset.top = page.y - rect.top;\n\n startOffset.right = rect.right - page.x;\n startOffset.bottom = rect.bottom - page.y;\n\n if (!('width' in rect)) {\n rect.width = rect.right - rect.left;\n }\n if (!('height' in rect)) {\n rect.height = rect.bottom - rect.top;\n }\n } else {\n startOffset.left = startOffset.top = startOffset.right = startOffset.bottom = 0;\n }\n\n arg.rect = rect;\n arg.interactable = target;\n arg.element = element;\n\n for (var _i = 0; _i < modifiers.names.length; _i++) {\n var _ref;\n\n _ref = modifiers.names[_i];\n var modifierName = _ref;\n\n arg.options = target.options[interaction.prepared.name][modifierName];\n\n if (!arg.options) {\n continue;\n }\n\n interaction.modifierOffsets[modifierName] = modifiers[modifierName].setOffset(arg);\n }\n },\n\n setAll: function setAll(arg) {\n var interaction = arg.interaction,\n statuses = arg.statuses,\n preEnd = arg.preEnd,\n requireEndOnly = arg.requireEndOnly;\n\n var result = {\n dx: 0,\n dy: 0,\n changed: false,\n locked: false,\n shouldMove: true\n };\n\n arg.modifiedCoords = extend({}, arg.pageCoords);\n\n for (var _i2 = 0; _i2 < modifiers.names.length; _i2++) {\n var _ref2;\n\n _ref2 = modifiers.names[_i2];\n var modifierName = _ref2;\n\n var modifier = modifiers[modifierName];\n var options = interaction.target.options[interaction.prepared.name][modifierName];\n\n if (!shouldDo(options, preEnd, requireEndOnly)) {\n continue;\n }\n\n arg.status = arg.status = statuses[modifierName];\n arg.options = options;\n arg.offset = arg.interaction.modifierOffsets[modifierName];\n\n modifier.set(arg);\n\n if (arg.status.locked) {\n arg.modifiedCoords.x += arg.status.dx;\n arg.modifiedCoords.y += arg.status.dy;\n\n result.dx += arg.status.dx;\n result.dy += arg.status.dy;\n\n result.locked = true;\n }\n }\n\n // a move should be fired if:\n // - there are no modifiers enabled,\n // - no modifiers are \"locked\" i.e. have changed the pointer's coordinates, or\n // - the locked coords have changed since the last pointer move\n result.shouldMove = !arg.status || !result.locked || arg.status.changed;\n\n return result;\n },\n\n resetStatuses: function resetStatuses(statuses) {\n for (var _i3 = 0; _i3 < modifiers.names.length; _i3++) {\n var _ref3;\n\n _ref3 = modifiers.names[_i3];\n var modifierName = _ref3;\n\n var status = statuses[modifierName] || {};\n\n status.dx = status.dy = 0;\n status.modifiedX = status.modifiedY = NaN;\n status.locked = false;\n status.changed = true;\n\n statuses[modifierName] = status;\n }\n\n return statuses;\n },\n\n start: function start(_ref4, signalName) {\n var interaction = _ref4.interaction;\n\n var arg = {\n interaction: interaction,\n pageCoords: (signalName === 'action-resume' ? interaction.curCoords : interaction.startCoords).page,\n startOffset: interaction.startOffset,\n statuses: interaction.modifierStatuses,\n preEnd: false,\n requireEndOnly: false\n };\n\n modifiers.setOffsets(arg);\n modifiers.resetStatuses(arg.statuses);\n\n arg.pageCoords = extend({}, interaction.startCoords.page);\n interaction.modifierResult = modifiers.setAll(arg);\n },\n\n beforeMove: function beforeMove(_ref5) {\n var interaction = _ref5.interaction,\n preEnd = _ref5.preEnd,\n interactingBeforeMove = _ref5.interactingBeforeMove;\n\n var modifierResult = modifiers.setAll({\n interaction: interaction,\n preEnd: preEnd,\n pageCoords: interaction.curCoords.page,\n statuses: interaction.modifierStatuses,\n requireEndOnly: false\n });\n\n // don't fire an action move if a modifier would keep the event in the same\n // cordinates as before\n if (!modifierResult.shouldMove && interactingBeforeMove) {\n interaction._dontFireMove = true;\n }\n\n interaction.modifierResult = modifierResult;\n },\n\n end: function end(_ref6) {\n var interaction = _ref6.interaction,\n event = _ref6.event;\n\n for (var _i4 = 0; _i4 < modifiers.names.length; _i4++) {\n var _ref7;\n\n _ref7 = modifiers.names[_i4];\n var modifierName = _ref7;\n\n var options = interaction.target.options[interaction.prepared.name][modifierName];\n\n // if the endOnly option is true for any modifier\n if (shouldDo(options, true, true)) {\n // fire a move event at the modified coordinates\n interaction.doMove({ event: event, preEnd: true });\n break;\n }\n }\n },\n\n setXY: function setXY(arg) {\n var iEvent = arg.iEvent,\n interaction = arg.interaction;\n\n var modifierArg = extend({}, arg);\n\n for (var i = 0; i < modifiers.names.length; i++) {\n var modifierName = modifiers.names[i];\n modifierArg.options = interaction.target.options[interaction.prepared.name][modifierName];\n\n if (!modifierArg.options) {\n continue;\n }\n\n var modifier = modifiers[modifierName];\n\n modifierArg.status = interaction.modifierStatuses[modifierName];\n\n iEvent[modifierName] = modifier.modifyCoords(modifierArg);\n }\n }\n};\n\nInteraction.signals.on('new', function (interaction) {\n interaction.startOffset = { left: 0, right: 0, top: 0, bottom: 0 };\n interaction.modifierOffsets = {};\n interaction.modifierStatuses = modifiers.resetStatuses({});\n interaction.modifierResult = null;\n});\n\nInteraction.signals.on('action-start', modifiers.start);\nInteraction.signals.on('action-resume', modifiers.start);\nInteraction.signals.on('before-action-move', modifiers.beforeMove);\nInteraction.signals.on('action-end', modifiers.end);\n\nInteractEvent.signals.on('set-xy', modifiers.setXY);\n\nfunction shouldDo(options, preEnd, requireEndOnly) {\n return options && options.enabled && (preEnd || !options.endOnly) && (!requireEndOnly || options.endOnly);\n}\n\nmodule.exports = modifiers;\n\n},{\"../InteractEvent\":3,\"../Interaction\":5,\"../utils/extend\":41}],24:[function(require,module,exports){\n'use strict';\n\nvar modifiers = require('./base');\nvar utils = require('../utils');\nvar defaultOptions = require('../defaultOptions');\n\nvar restrict = {\n defaults: {\n enabled: false,\n endOnly: false,\n restriction: null,\n elementRect: null\n },\n\n setOffset: function setOffset(_ref) {\n var rect = _ref.rect,\n startOffset = _ref.startOffset,\n options = _ref.options;\n\n var elementRect = options && options.elementRect;\n var offset = {};\n\n if (rect && elementRect) {\n offset.left = startOffset.left - rect.width * elementRect.left;\n offset.top = startOffset.top - rect.height * elementRect.top;\n\n offset.right = startOffset.right - rect.width * (1 - elementRect.right);\n offset.bottom = startOffset.bottom - rect.height * (1 - elementRect.bottom);\n } else {\n offset.left = offset.top = offset.right = offset.bottom = 0;\n }\n\n return offset;\n },\n\n set: function set(_ref2) {\n var modifiedCoords = _ref2.modifiedCoords,\n interaction = _ref2.interaction,\n status = _ref2.status,\n options = _ref2.options;\n\n if (!options) {\n return status;\n }\n\n var page = status.useStatusXY ? { x: status.x, y: status.y } : utils.extend({}, modifiedCoords);\n\n var restriction = getRestrictionRect(options.restriction, interaction, page);\n\n if (!restriction) {\n return status;\n }\n\n status.dx = 0;\n status.dy = 0;\n status.locked = false;\n\n var rect = restriction;\n var modifiedX = page.x;\n var modifiedY = page.y;\n\n var offset = interaction.modifierOffsets.restrict;\n\n // object is assumed to have\n // x, y, width, height or\n // left, top, right, bottom\n if ('x' in restriction && 'y' in restriction) {\n modifiedX = Math.max(Math.min(rect.x + rect.width - offset.right, page.x), rect.x + offset.left);\n modifiedY = Math.max(Math.min(rect.y + rect.height - offset.bottom, page.y), rect.y + offset.top);\n } else {\n modifiedX = Math.max(Math.min(rect.right - offset.right, page.x), rect.left + offset.left);\n modifiedY = Math.max(Math.min(rect.bottom - offset.bottom, page.y), rect.top + offset.top);\n }\n\n status.dx = modifiedX - page.x;\n status.dy = modifiedY - page.y;\n\n status.changed = status.modifiedX !== modifiedX || status.modifiedY !== modifiedY;\n status.locked = !!(status.dx || status.dy);\n\n status.modifiedX = modifiedX;\n status.modifiedY = modifiedY;\n },\n\n modifyCoords: function modifyCoords(_ref3) {\n var page = _ref3.page,\n client = _ref3.client,\n status = _ref3.status,\n phase = _ref3.phase,\n options = _ref3.options;\n\n var elementRect = options && options.elementRect;\n\n if (options && options.enabled && !(phase === 'start' && elementRect && status.locked)) {\n\n if (status.locked) {\n page.x += status.dx;\n page.y += status.dy;\n client.x += status.dx;\n client.y += status.dy;\n\n return {\n dx: status.dx,\n dy: status.dy\n };\n }\n }\n },\n\n getRestrictionRect: getRestrictionRect\n};\n\nfunction getRestrictionRect(value, interaction, page) {\n if (utils.is.function(value)) {\n return utils.resolveRectLike(value, interaction.target, interaction.element, [page.x, page.y, interaction]);\n } else {\n return utils.resolveRectLike(value, interaction.target, interaction.element);\n }\n}\n\nmodifiers.restrict = restrict;\nmodifiers.names.push('restrict');\n\ndefaultOptions.perAction.restrict = restrict.defaults;\n\nmodule.exports = restrict;\n\n},{\"../defaultOptions\":18,\"../utils\":44,\"./base\":23}],25:[function(require,module,exports){\n'use strict';\n\n// This module adds the options.resize.restrictEdges setting which sets min and\n// max for the top, left, bottom and right edges of the target being resized.\n//\n// interact(target).resize({\n// edges: { top: true, left: true },\n// restrictEdges: {\n// inner: { top: 200, left: 200, right: 400, bottom: 400 },\n// outer: { top: 0, left: 0, right: 600, bottom: 600 },\n// },\n// });\n\nvar modifiers = require('./base');\nvar utils = require('../utils');\nvar rectUtils = require('../utils/rect');\nvar defaultOptions = require('../defaultOptions');\nvar resize = require('../actions/resize');\n\nvar _require = require('./restrict'),\n getRestrictionRect = _require.getRestrictionRect;\n\nvar noInner = { top: +Infinity, left: +Infinity, bottom: -Infinity, right: -Infinity };\nvar noOuter = { top: -Infinity, left: -Infinity, bottom: +Infinity, right: +Infinity };\n\nvar restrictEdges = {\n defaults: {\n enabled: false,\n endOnly: false,\n min: null,\n max: null,\n offset: null\n },\n\n setOffset: function setOffset(_ref) {\n var interaction = _ref.interaction,\n startOffset = _ref.startOffset,\n options = _ref.options;\n\n if (!options) {\n return utils.extend({}, startOffset);\n }\n\n var offset = getRestrictionRect(options.offset, interaction, interaction.startCoords.page);\n\n if (offset) {\n return {\n top: startOffset.top + offset.y,\n left: startOffset.left + offset.x,\n bottom: startOffset.bottom + offset.y,\n right: startOffset.right + offset.x\n };\n }\n\n return startOffset;\n },\n\n set: function set(_ref2) {\n var modifiedCoords = _ref2.modifiedCoords,\n interaction = _ref2.interaction,\n status = _ref2.status,\n offset = _ref2.offset,\n options = _ref2.options;\n\n var edges = interaction.prepared.linkedEdges || interaction.prepared.edges;\n\n if (!interaction.interacting() || !edges) {\n return;\n }\n\n var page = status.useStatusXY ? { x: status.x, y: status.y } : utils.extend({}, modifiedCoords);\n var inner = rectUtils.xywhToTlbr(getRestrictionRect(options.inner, interaction, page)) || noInner;\n var outer = rectUtils.xywhToTlbr(getRestrictionRect(options.outer, interaction, page)) || noOuter;\n\n var modifiedX = page.x;\n var modifiedY = page.y;\n\n status.dx = 0;\n status.dy = 0;\n status.locked = false;\n\n if (edges.top) {\n modifiedY = Math.min(Math.max(outer.top + offset.top, page.y), inner.top + offset.top);\n } else if (edges.bottom) {\n modifiedY = Math.max(Math.min(outer.bottom - offset.bottom, page.y), inner.bottom - offset.bottom);\n }\n if (edges.left) {\n modifiedX = Math.min(Math.max(outer.left + offset.left, page.x), inner.left + offset.left);\n } else if (edges.right) {\n modifiedX = Math.max(Math.min(outer.right - offset.right, page.x), inner.right - offset.right);\n }\n\n status.dx = modifiedX - page.x;\n status.dy = modifiedY - page.y;\n\n status.changed = status.modifiedX !== modifiedX || status.modifiedY !== modifiedY;\n status.locked = !!(status.dx || status.dy);\n\n status.modifiedX = modifiedX;\n status.modifiedY = modifiedY;\n },\n\n modifyCoords: function modifyCoords(_ref3) {\n var page = _ref3.page,\n client = _ref3.client,\n status = _ref3.status,\n phase = _ref3.phase,\n options = _ref3.options;\n\n if (options && options.enabled && !(phase === 'start' && status.locked)) {\n\n if (status.locked) {\n page.x += status.dx;\n page.y += status.dy;\n client.x += status.dx;\n client.y += status.dy;\n\n return {\n dx: status.dx,\n dy: status.dy\n };\n }\n }\n },\n\n noInner: noInner,\n noOuter: noOuter,\n getRestrictionRect: getRestrictionRect\n};\n\nmodifiers.restrictEdges = restrictEdges;\nmodifiers.names.push('restrictEdges');\n\ndefaultOptions.perAction.restrictEdges = restrictEdges.defaults;\nresize.defaults.restrictEdges = restrictEdges.defaults;\n\nmodule.exports = restrictEdges;\n\n},{\"../actions/resize\":10,\"../defaultOptions\":18,\"../utils\":44,\"../utils/rect\":51,\"./base\":23,\"./restrict\":24}],26:[function(require,module,exports){\n'use strict';\n\n// This module adds the options.resize.restrictSize setting which sets min and\n// max width and height for the target being resized.\n//\n// interact(target).resize({\n// edges: { top: true, left: true },\n// restrictSize: {\n// min: { width: -600, height: -600 },\n// max: { width: 600, height: 600 },\n// },\n// });\n\nvar modifiers = require('./base');\nvar restrictEdges = require('./restrictEdges');\nvar utils = require('../utils');\nvar rectUtils = require('../utils/rect');\nvar defaultOptions = require('../defaultOptions');\nvar resize = require('../actions/resize');\n\nvar noMin = { width: -Infinity, height: -Infinity };\nvar noMax = { width: +Infinity, height: +Infinity };\n\nvar restrictSize = {\n defaults: {\n enabled: false,\n endOnly: false,\n min: null,\n max: null\n },\n\n setOffset: function setOffset(_ref) {\n var interaction = _ref.interaction;\n\n return interaction.startOffset;\n },\n\n set: function set(arg) {\n var interaction = arg.interaction,\n options = arg.options;\n\n var edges = interaction.prepared.linkedEdges || interaction.prepared.edges;\n\n if (!interaction.interacting() || !edges) {\n return;\n }\n\n var rect = rectUtils.xywhToTlbr(interaction.resizeRects.inverted);\n\n var minSize = rectUtils.tlbrToXywh(restrictEdges.getRestrictionRect(options.min, interaction)) || noMin;\n var maxSize = rectUtils.tlbrToXywh(restrictEdges.getRestrictionRect(options.max, interaction)) || noMax;\n\n arg.options = {\n enabled: options.enabled,\n endOnly: options.endOnly,\n inner: utils.extend({}, restrictEdges.noInner),\n outer: utils.extend({}, restrictEdges.noOuter)\n };\n\n if (edges.top) {\n arg.options.inner.top = rect.bottom - minSize.height;\n arg.options.outer.top = rect.bottom - maxSize.height;\n } else if (edges.bottom) {\n arg.options.inner.bottom = rect.top + minSize.height;\n arg.options.outer.bottom = rect.top + maxSize.height;\n }\n if (edges.left) {\n arg.options.inner.left = rect.right - minSize.width;\n arg.options.outer.left = rect.right - maxSize.width;\n } else if (edges.right) {\n arg.options.inner.right = rect.left + minSize.width;\n arg.options.outer.right = rect.left + maxSize.width;\n }\n\n restrictEdges.set(arg);\n },\n\n modifyCoords: restrictEdges.modifyCoords\n};\n\nmodifiers.restrictSize = restrictSize;\nmodifiers.names.push('restrictSize');\n\ndefaultOptions.perAction.restrictSize = restrictSize.defaults;\nresize.defaults.restrictSize = restrictSize.defaults;\n\nmodule.exports = restrictSize;\n\n},{\"../actions/resize\":10,\"../defaultOptions\":18,\"../utils\":44,\"../utils/rect\":51,\"./base\":23,\"./restrictEdges\":25}],27:[function(require,module,exports){\n'use strict';\n\nvar modifiers = require('./base');\nvar interact = require('../interact');\nvar utils = require('../utils');\nvar defaultOptions = require('../defaultOptions');\n\nvar snap = {\n defaults: {\n enabled: false,\n endOnly: false,\n range: Infinity,\n targets: null,\n offsets: null,\n\n relativePoints: null\n },\n\n setOffset: function setOffset(_ref) {\n var interaction = _ref.interaction,\n interactable = _ref.interactable,\n element = _ref.element,\n rect = _ref.rect,\n startOffset = _ref.startOffset,\n options = _ref.options;\n\n var offsets = [];\n var optionsOrigin = utils.rectToXY(utils.resolveRectLike(options.origin));\n var origin = optionsOrigin || utils.getOriginXY(interactable, element, interaction.prepared.name);\n options = options || interactable.options[interaction.prepared.name].snap || {};\n\n var snapOffset = void 0;\n\n if (options.offset === 'startCoords') {\n snapOffset = {\n x: interaction.startCoords.page.x - origin.x,\n y: interaction.startCoords.page.y - origin.y\n };\n } else {\n var offsetRect = utils.resolveRectLike(options.offset, interactable, element, [interaction]);\n\n snapOffset = utils.rectToXY(offsetRect) || { x: 0, y: 0 };\n }\n\n if (rect && options.relativePoints && options.relativePoints.length) {\n for (var _i = 0; _i < options.relativePoints.length; _i++) {\n var _ref3;\n\n _ref3 = options.relativePoints[_i];\n var _ref2 = _ref3;\n var relativeX = _ref2.x;\n var relativeY = _ref2.y;\n\n offsets.push({\n x: startOffset.left - rect.width * relativeX + snapOffset.x,\n y: startOffset.top - rect.height * relativeY + snapOffset.y\n });\n }\n } else {\n offsets.push(snapOffset);\n }\n\n return offsets;\n },\n\n set: function set(_ref4) {\n var interaction = _ref4.interaction,\n modifiedCoords = _ref4.modifiedCoords,\n status = _ref4.status,\n options = _ref4.options,\n offsets = _ref4.offset;\n\n var targets = [];\n var target = void 0;\n var page = void 0;\n var i = void 0;\n\n if (status.useStatusXY) {\n page = { x: status.x, y: status.y };\n } else {\n var origin = utils.getOriginXY(interaction.target, interaction.element, interaction.prepared.name);\n\n page = utils.extend({}, modifiedCoords);\n\n page.x -= origin.x;\n page.y -= origin.y;\n }\n\n status.realX = page.x;\n status.realY = page.y;\n\n var len = options.targets ? options.targets.length : 0;\n\n for (var _i2 = 0; _i2 < offsets.length; _i2++) {\n var _ref6;\n\n _ref6 = offsets[_i2];\n var _ref5 = _ref6;\n var offsetX = _ref5.x;\n var offsetY = _ref5.y;\n\n var relativeX = page.x - offsetX;\n var relativeY = page.y - offsetY;\n\n for (var _i3 = 0; _i3 < (options.targets || []).length; _i3++) {\n var _ref7;\n\n _ref7 = (options.targets || [])[_i3];\n var snapTarget = _ref7;\n\n if (utils.is.function(snapTarget)) {\n target = snapTarget(relativeX, relativeY, interaction);\n } else {\n target = snapTarget;\n }\n\n if (!target) {\n continue;\n }\n\n targets.push({\n x: utils.is.number(target.x) ? target.x + offsetX : relativeX,\n y: utils.is.number(target.y) ? target.y + offsetY : relativeY,\n\n range: utils.is.number(target.range) ? target.range : options.range\n });\n }\n }\n\n var closest = {\n target: null,\n inRange: false,\n distance: 0,\n range: 0,\n dx: 0,\n dy: 0\n };\n\n for (i = 0, len = targets.length; i < len; i++) {\n target = targets[i];\n\n var range = target.range;\n var dx = target.x - page.x;\n var dy = target.y - page.y;\n var distance = utils.hypot(dx, dy);\n var inRange = distance <= range;\n\n // Infinite targets count as being out of range\n // compared to non infinite ones that are in range\n if (range === Infinity && closest.inRange && closest.range !== Infinity) {\n inRange = false;\n }\n\n if (!closest.target || (inRange\n // is the closest target in range?\n ? closest.inRange && range !== Infinity\n // the pointer is relatively deeper in this target\n ? distance / range < closest.distance / closest.range\n // this target has Infinite range and the closest doesn't\n : range === Infinity && closest.range !== Infinity ||\n // OR this target is closer that the previous closest\n distance < closest.distance :\n // The other is not in range and the pointer is closer to this target\n !closest.inRange && distance < closest.distance)) {\n\n closest.target = target;\n closest.distance = distance;\n closest.range = range;\n closest.inRange = inRange;\n closest.dx = dx;\n closest.dy = dy;\n\n status.range = range;\n }\n }\n\n var snapChanged = void 0;\n\n if (closest.target) {\n snapChanged = status.modifiedX !== closest.target.x || status.modifiedY !== closest.target.y;\n\n status.modifiedX = closest.target.x;\n status.modifiedY = closest.target.y;\n } else {\n snapChanged = true;\n\n status.modifiedX = NaN;\n status.modifiedY = NaN;\n }\n\n status.dx = closest.dx;\n status.dy = closest.dy;\n\n status.changed = snapChanged || closest.inRange && !status.locked;\n status.locked = closest.inRange;\n },\n\n modifyCoords: function modifyCoords(_ref8) {\n var page = _ref8.page,\n client = _ref8.client,\n status = _ref8.status,\n phase = _ref8.phase,\n options = _ref8.options;\n\n var relativePoints = options && options.relativePoints;\n\n if (options && options.enabled && !(phase === 'start' && relativePoints && relativePoints.length)) {\n\n if (status.locked) {\n page.x += status.dx;\n page.y += status.dy;\n client.x += status.dx;\n client.y += status.dy;\n }\n\n return {\n range: status.range,\n locked: status.locked,\n x: status.modifiedX,\n y: status.modifiedY,\n realX: status.realX,\n realY: status.realY,\n dx: status.dx,\n dy: status.dy\n };\n }\n }\n};\n\ninteract.createSnapGrid = function (grid) {\n return function (x, y) {\n var limits = grid.limits || {\n left: -Infinity,\n right: Infinity,\n top: -Infinity,\n bottom: Infinity\n };\n var offsetX = 0;\n var offsetY = 0;\n\n if (utils.is.object(grid.offset)) {\n offsetX = grid.offset.x;\n offsetY = grid.offset.y;\n }\n\n var gridx = Math.round((x - offsetX) / grid.x);\n var gridy = Math.round((y - offsetY) / grid.y);\n\n var newX = Math.max(limits.left, Math.min(limits.right, gridx * grid.x + offsetX));\n var newY = Math.max(limits.top, Math.min(limits.bottom, gridy * grid.y + offsetY));\n\n return {\n x: newX,\n y: newY,\n range: grid.range\n };\n };\n};\n\nmodifiers.snap = snap;\nmodifiers.names.push('snap');\n\ndefaultOptions.perAction.snap = snap.defaults;\n\nmodule.exports = snap;\n\n},{\"../defaultOptions\":18,\"../interact\":21,\"../utils\":44,\"./base\":23}],28:[function(require,module,exports){\n'use strict';\n\n// This module allows snapping of the size of targets during resize\n// interactions.\n\nvar modifiers = require('./base');\nvar snap = require('./snap');\nvar defaultOptions = require('../defaultOptions');\nvar resize = require('../actions/resize');\nvar utils = require('../utils/');\n\nvar snapSize = {\n defaults: {\n enabled: false,\n endOnly: false,\n range: Infinity,\n targets: null,\n offsets: null\n },\n\n setOffset: function setOffset(arg) {\n var interaction = arg.interaction,\n options = arg.options;\n\n var edges = interaction.prepared.edges;\n\n if (!edges) {\n return;\n }\n\n arg.options = {\n relativePoints: [{\n x: edges.left ? 0 : 1,\n y: edges.top ? 0 : 1\n }],\n origin: { x: 0, y: 0 },\n offset: 'self',\n range: options.range\n };\n\n var offsets = snap.setOffset(arg);\n arg.options = options;\n\n return offsets;\n },\n\n set: function set(arg) {\n var interaction = arg.interaction,\n options = arg.options,\n offset = arg.offset,\n modifiedCoords = arg.modifiedCoords;\n\n var page = utils.extend({}, modifiedCoords);\n var relativeX = page.x - offset[0].x;\n var relativeY = page.y - offset[0].y;\n\n arg.options = utils.extend({}, options);\n arg.options.targets = [];\n\n for (var _i = 0; _i < (options.targets || []).length; _i++) {\n var _ref;\n\n _ref = (options.targets || [])[_i];\n var snapTarget = _ref;\n\n var target = void 0;\n\n if (utils.is.function(snapTarget)) {\n target = snapTarget(relativeX, relativeY, interaction);\n } else {\n target = snapTarget;\n }\n\n if (!target) {\n continue;\n }\n\n if ('width' in target && 'height' in target) {\n target.x = target.width;\n target.y = target.height;\n }\n\n arg.options.targets.push(target);\n }\n\n snap.set(arg);\n },\n\n modifyCoords: function modifyCoords(arg) {\n var options = arg.options;\n\n\n arg.options = utils.extend({}, options);\n arg.options.enabled = options.enabled;\n arg.options.relativePoints = [null];\n\n snap.modifyCoords(arg);\n }\n};\n\nmodifiers.snapSize = snapSize;\nmodifiers.names.push('snapSize');\n\ndefaultOptions.perAction.snapSize = snapSize.defaults;\nresize.defaults.snapSize = snapSize.defaults;\n\nmodule.exports = snapSize;\n\n},{\"../actions/resize\":10,\"../defaultOptions\":18,\"../utils/\":44,\"./base\":23,\"./snap\":27}],29:[function(require,module,exports){\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar pointerUtils = require('../utils/pointerUtils');\n\nmodule.exports = function () {\n /** */\n function PointerEvent(type, pointer, event, eventTarget, interaction) {\n _classCallCheck(this, PointerEvent);\n\n pointerUtils.pointerExtend(this, event);\n\n if (event !== pointer) {\n pointerUtils.pointerExtend(this, pointer);\n }\n\n this.interaction = interaction;\n\n this.timeStamp = new Date().getTime();\n this.originalEvent = event;\n this.type = type;\n this.pointerId = pointerUtils.getPointerId(pointer);\n this.pointerType = pointerUtils.getPointerType(pointer);\n this.target = eventTarget;\n this.currentTarget = null;\n\n if (type === 'tap') {\n var pointerIndex = interaction.getPointerIndex(pointer);\n this.dt = this.timeStamp - interaction.downTimes[pointerIndex];\n\n var interval = this.timeStamp - interaction.tapTime;\n\n this.double = !!(interaction.prevTap && interaction.prevTap.type !== 'doubletap' && interaction.prevTap.target === this.target && interval < 500);\n } else if (type === 'doubletap') {\n this.dt = pointer.timeStamp - interaction.tapTime;\n }\n }\n\n PointerEvent.prototype.subtractOrigin = function subtractOrigin(_ref) {\n var originX = _ref.x,\n originY = _ref.y;\n\n this.pageX -= originX;\n this.pageY -= originY;\n this.clientX -= originX;\n this.clientY -= originY;\n\n return this;\n };\n\n PointerEvent.prototype.addOrigin = function addOrigin(_ref2) {\n var originX = _ref2.x,\n originY = _ref2.y;\n\n this.pageX += originX;\n this.pageY += originY;\n this.clientX += originX;\n this.clientY += originY;\n\n return this;\n };\n\n /** */\n\n\n PointerEvent.prototype.preventDefault = function preventDefault() {\n this.originalEvent.preventDefault();\n };\n\n /** */\n\n\n PointerEvent.prototype.stopPropagation = function stopPropagation() {\n this.propagationStopped = true;\n };\n\n /** */\n\n\n PointerEvent.prototype.stopImmediatePropagation = function stopImmediatePropagation() {\n this.immediatePropagationStopped = this.propagationStopped = true;\n };\n\n return PointerEvent;\n}();\n\n},{\"../utils/pointerUtils\":49}],30:[function(require,module,exports){\n'use strict';\n\nvar PointerEvent = require('./PointerEvent');\nvar Interaction = require('../Interaction');\nvar utils = require('../utils');\nvar defaults = require('../defaultOptions');\nvar signals = require('../utils/Signals').new();\n\nvar simpleSignals = ['down', 'up', 'cancel'];\nvar simpleEvents = ['down', 'up', 'cancel'];\n\nvar pointerEvents = {\n PointerEvent: PointerEvent,\n fire: fire,\n collectEventTargets: collectEventTargets,\n signals: signals,\n defaults: {\n holdDuration: 600,\n ignoreFrom: null,\n allowFrom: null,\n origin: { x: 0, y: 0 }\n },\n types: ['down', 'move', 'up', 'cancel', 'tap', 'doubletap', 'hold']\n};\n\nfunction fire(arg) {\n var interaction = arg.interaction,\n pointer = arg.pointer,\n event = arg.event,\n eventTarget = arg.eventTarget,\n _arg$type = arg.type,\n type = _arg$type === undefined ? arg.pointerEvent.type : _arg$type,\n _arg$targets = arg.targets,\n targets = _arg$targets === undefined ? collectEventTargets(arg) : _arg$targets,\n _arg$pointerEvent = arg.pointerEvent,\n pointerEvent = _arg$pointerEvent === undefined ? new PointerEvent(type, pointer, event, eventTarget, interaction) : _arg$pointerEvent;\n\n\n var signalArg = {\n interaction: interaction,\n pointer: pointer,\n event: event,\n eventTarget: eventTarget,\n targets: targets,\n type: type,\n pointerEvent: pointerEvent\n };\n\n for (var i = 0; i < targets.length; i++) {\n var target = targets[i];\n\n for (var prop in target.props || {}) {\n pointerEvent[prop] = target.props[prop];\n }\n\n var origin = utils.getOriginXY(target.eventable, target.element);\n\n pointerEvent.subtractOrigin(origin);\n pointerEvent.eventable = target.eventable;\n pointerEvent.currentTarget = target.element;\n\n target.eventable.fire(pointerEvent);\n\n pointerEvent.addOrigin(origin);\n\n if (pointerEvent.immediatePropagationStopped || pointerEvent.propagationStopped && i + 1 < targets.length && targets[i + 1].element !== pointerEvent.currentTarget) {\n break;\n }\n }\n\n signals.fire('fired', signalArg);\n\n if (type === 'tap') {\n // if pointerEvent should make a double tap, create and fire a doubletap\n // PointerEvent and use that as the prevTap\n var prevTap = pointerEvent.double ? fire({\n interaction: interaction, pointer: pointer, event: event, eventTarget: eventTarget,\n type: 'doubletap'\n }) : pointerEvent;\n\n interaction.prevTap = prevTap;\n interaction.tapTime = prevTap.timeStamp;\n }\n\n return pointerEvent;\n}\n\nfunction collectEventTargets(_ref) {\n var interaction = _ref.interaction,\n pointer = _ref.pointer,\n event = _ref.event,\n eventTarget = _ref.eventTarget,\n type = _ref.type;\n\n var pointerIndex = interaction.getPointerIndex(pointer);\n\n // do not fire a tap event if the pointer was moved before being lifted\n if (type === 'tap' && (interaction.pointerWasMoved\n // or if the pointerup target is different to the pointerdown target\n || !(interaction.downTargets[pointerIndex] && interaction.downTargets[pointerIndex] === eventTarget))) {\n return [];\n }\n\n var path = utils.getPath(eventTarget);\n var signalArg = {\n interaction: interaction,\n pointer: pointer,\n event: event,\n eventTarget: eventTarget,\n type: type,\n path: path,\n targets: [],\n element: null\n };\n\n for (var _i = 0; _i < path.length; _i++) {\n var _ref2;\n\n _ref2 = path[_i];\n var element = _ref2;\n\n signalArg.element = element;\n\n signals.fire('collect-targets', signalArg);\n }\n\n if (type === 'hold') {\n signalArg.targets = signalArg.targets.filter(function (target) {\n return target.eventable.options.holdDuration === interaction.holdTimers[pointerIndex].duration;\n });\n }\n\n return signalArg.targets;\n}\n\nInteraction.signals.on('update-pointer-down', function (_ref3) {\n var interaction = _ref3.interaction,\n pointerIndex = _ref3.pointerIndex;\n\n interaction.holdTimers[pointerIndex] = { duration: Infinity, timeout: null };\n});\n\nInteraction.signals.on('remove-pointer', function (_ref4) {\n var interaction = _ref4.interaction,\n pointerIndex = _ref4.pointerIndex;\n\n interaction.holdTimers.splice(pointerIndex, 1);\n});\n\nInteraction.signals.on('move', function (_ref5) {\n var interaction = _ref5.interaction,\n pointer = _ref5.pointer,\n event = _ref5.event,\n eventTarget = _ref5.eventTarget,\n duplicateMove = _ref5.duplicateMove;\n\n var pointerIndex = interaction.getPointerIndex(pointer);\n\n if (!duplicateMove && (!interaction.pointerIsDown || interaction.pointerWasMoved)) {\n if (interaction.pointerIsDown) {\n clearTimeout(interaction.holdTimers[pointerIndex].timeout);\n }\n\n fire({\n interaction: interaction, pointer: pointer, event: event, eventTarget: eventTarget,\n type: 'move'\n });\n }\n});\n\nInteraction.signals.on('down', function (_ref6) {\n var interaction = _ref6.interaction,\n pointer = _ref6.pointer,\n event = _ref6.event,\n eventTarget = _ref6.eventTarget,\n pointerIndex = _ref6.pointerIndex;\n\n var timer = interaction.holdTimers[pointerIndex];\n var path = utils.getPath(eventTarget);\n var signalArg = {\n interaction: interaction,\n pointer: pointer,\n event: event,\n eventTarget: eventTarget,\n type: 'hold',\n targets: [],\n path: path,\n element: null\n };\n\n for (var _i2 = 0; _i2 < path.length; _i2++) {\n var _ref7;\n\n _ref7 = path[_i2];\n var element = _ref7;\n\n signalArg.element = element;\n\n signals.fire('collect-targets', signalArg);\n }\n\n if (!signalArg.targets.length) {\n return;\n }\n\n var minDuration = Infinity;\n\n for (var _i3 = 0; _i3 < signalArg.targets.length; _i3++) {\n var _ref8;\n\n _ref8 = signalArg.targets[_i3];\n var target = _ref8;\n\n var holdDuration = target.eventable.options.holdDuration;\n\n if (holdDuration < minDuration) {\n minDuration = holdDuration;\n }\n }\n\n timer.duration = minDuration;\n timer.timeout = setTimeout(function () {\n fire({\n interaction: interaction,\n eventTarget: eventTarget,\n pointer: pointer,\n event: event,\n type: 'hold'\n });\n }, minDuration);\n});\n\nInteraction.signals.on('up', function (_ref9) {\n var interaction = _ref9.interaction,\n pointer = _ref9.pointer,\n event = _ref9.event,\n eventTarget = _ref9.eventTarget;\n\n if (!interaction.pointerWasMoved) {\n fire({ interaction: interaction, eventTarget: eventTarget, pointer: pointer, event: event, type: 'tap' });\n }\n});\n\nvar _arr = ['up', 'cancel'];\nfor (var _i4 = 0; _i4 < _arr.length; _i4++) {\n var signalName = _arr[_i4];\n Interaction.signals.on(signalName, function (_ref11) {\n var interaction = _ref11.interaction,\n pointerIndex = _ref11.pointerIndex;\n\n if (interaction.holdTimers[pointerIndex]) {\n clearTimeout(interaction.holdTimers[pointerIndex].timeout);\n }\n });\n}\n\nfunction createSignalListener(type) {\n return function (_ref10) {\n var interaction = _ref10.interaction,\n pointer = _ref10.pointer,\n event = _ref10.event,\n eventTarget = _ref10.eventTarget;\n\n fire({ interaction: interaction, eventTarget: eventTarget, pointer: pointer, event: event, type: type });\n };\n}\n\nfor (var i = 0; i < simpleSignals.length; i++) {\n Interaction.signals.on(simpleSignals[i], createSignalListener(simpleEvents[i]));\n}\n\nInteraction.signals.on('new', function (interaction) {\n interaction.prevTap = null; // the most recent tap event on this interaction\n interaction.tapTime = 0; // time of the most recent tap event\n interaction.holdTimers = []; // [{ duration, timeout }]\n});\n\ndefaults.pointerEvents = pointerEvents.defaults;\nmodule.exports = pointerEvents;\n\n},{\"../Interaction\":5,\"../defaultOptions\":18,\"../utils\":44,\"../utils/Signals\":34,\"./PointerEvent\":29}],31:[function(require,module,exports){\n'use strict';\n\nvar pointerEvents = require('./base');\nvar Interaction = require('../Interaction');\n\npointerEvents.signals.on('new', onNew);\npointerEvents.signals.on('fired', onFired);\n\nvar _arr = ['move', 'up', 'cancel', 'endall'];\nfor (var _i = 0; _i < _arr.length; _i++) {\n var signal = _arr[_i];\n Interaction.signals.on(signal, endHoldRepeat);\n}\n\nfunction onNew(_ref) {\n var pointerEvent = _ref.pointerEvent;\n\n if (pointerEvent.type !== 'hold') {\n return;\n }\n\n pointerEvent.count = (pointerEvent.count || 0) + 1;\n}\n\nfunction onFired(_ref2) {\n var interaction = _ref2.interaction,\n pointerEvent = _ref2.pointerEvent,\n eventTarget = _ref2.eventTarget,\n targets = _ref2.targets;\n\n if (pointerEvent.type !== 'hold' || !targets.length) {\n return;\n }\n\n // get the repeat interval from the first eventable\n var interval = targets[0].eventable.options.holdRepeatInterval;\n\n // don't repeat if the interval is 0 or less\n if (interval <= 0) {\n return;\n }\n\n // set a timeout to fire the holdrepeat event\n interaction.holdIntervalHandle = setTimeout(function () {\n pointerEvents.fire({\n interaction: interaction,\n eventTarget: eventTarget,\n type: 'hold',\n pointer: pointerEvent,\n event: pointerEvent\n });\n }, interval);\n}\n\nfunction endHoldRepeat(_ref3) {\n var interaction = _ref3.interaction;\n\n // set the interaction's holdStopTime property\n // to stop further holdRepeat events\n if (interaction.holdIntervalHandle) {\n clearInterval(interaction.holdIntervalHandle);\n interaction.holdIntervalHandle = null;\n }\n}\n\n// don't repeat by default\npointerEvents.defaults.holdRepeatInterval = 0;\npointerEvents.types.push('holdrepeat');\n\nmodule.exports = {\n onNew: onNew,\n onFired: onFired,\n endHoldRepeat: endHoldRepeat\n};\n\n},{\"../Interaction\":5,\"./base\":30}],32:[function(require,module,exports){\n'use strict';\n\nvar pointerEvents = require('./base');\nvar Interactable = require('../Interactable');\nvar is = require('../utils/is');\nvar scope = require('../scope');\nvar extend = require('../utils/extend');\n\nvar _require = require('../utils/arr'),\n merge = _require.merge;\n\npointerEvents.signals.on('collect-targets', function (_ref) {\n var targets = _ref.targets,\n element = _ref.element,\n type = _ref.type,\n eventTarget = _ref.eventTarget;\n\n scope.interactables.forEachMatch(element, function (interactable) {\n var eventable = interactable.events;\n var options = eventable.options;\n\n if (eventable[type] && is.element(element) && interactable.testIgnoreAllow(options, element, eventTarget)) {\n\n targets.push({\n element: element,\n eventable: eventable,\n props: { interactable: interactable }\n });\n }\n });\n});\n\nInteractable.signals.on('new', function (_ref2) {\n var interactable = _ref2.interactable;\n\n interactable.events.getRect = function (element) {\n return interactable.getRect(element);\n };\n});\n\nInteractable.signals.on('set', function (_ref3) {\n var interactable = _ref3.interactable,\n options = _ref3.options;\n\n extend(interactable.events.options, pointerEvents.defaults);\n extend(interactable.events.options, options);\n});\n\nmerge(Interactable.eventTypes, pointerEvents.types);\n\nInteractable.prototype.pointerEvents = function (options) {\n extend(this.events.options, options);\n\n return this;\n};\n\nvar __backCompatOption = Interactable.prototype._backCompatOption;\n\nInteractable.prototype._backCompatOption = function (optionName, newValue) {\n var ret = __backCompatOption.call(this, optionName, newValue);\n\n if (ret === this) {\n this.events.options[optionName] = newValue;\n }\n\n return ret;\n};\n\nInteractable.settingsMethods.push('pointerEvents');\n\n},{\"../Interactable\":4,\"../scope\":33,\"../utils/arr\":35,\"../utils/extend\":41,\"../utils/is\":46,\"./base\":30}],33:[function(require,module,exports){\n'use strict';\n\nvar utils = require('./utils');\nvar events = require('./utils/events');\nvar signals = require('./utils/Signals').new();\n\nvar _require = require('./utils/window'),\n getWindow = _require.getWindow;\n\nvar scope = {\n signals: signals,\n events: events,\n utils: utils,\n\n // main document\n document: require('./utils/domObjects').document,\n // all documents being listened to\n documents: [],\n\n addDocument: function addDocument(doc, win) {\n // do nothing if document is already known\n if (utils.contains(scope.documents, doc)) {\n return false;\n }\n\n win = win || getWindow(doc);\n\n scope.documents.push(doc);\n events.documents.push(doc);\n\n // don't add an unload event for the main document\n // so that the page may be cached in browser history\n if (doc !== scope.document) {\n events.add(win, 'unload', scope.onWindowUnload);\n }\n\n signals.fire('add-document', { doc: doc, win: win });\n },\n\n removeDocument: function removeDocument(doc, win) {\n var index = scope.documents.indexOf(doc);\n\n win = win || getWindow(doc);\n\n events.remove(win, 'unload', scope.onWindowUnload);\n\n scope.documents.splice(index, 1);\n events.documents.splice(index, 1);\n\n signals.fire('remove-document', { win: win, doc: doc });\n },\n\n onWindowUnload: function onWindowUnload() {\n scope.removeDocument(this.document, this);\n }\n};\n\nmodule.exports = scope;\n\n},{\"./utils\":44,\"./utils/Signals\":34,\"./utils/domObjects\":38,\"./utils/events\":40,\"./utils/window\":52}],34:[function(require,module,exports){\n\"use strict\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Signals = function () {\n function Signals() {\n _classCallCheck(this, Signals);\n\n this.listeners = {\n // signalName: [listeners],\n };\n }\n\n Signals.prototype.on = function on(name, listener) {\n if (!this.listeners[name]) {\n this.listeners[name] = [listener];\n return;\n }\n\n this.listeners[name].push(listener);\n };\n\n Signals.prototype.off = function off(name, listener) {\n if (!this.listeners[name]) {\n return;\n }\n\n var index = this.listeners[name].indexOf(listener);\n\n if (index !== -1) {\n this.listeners[name].splice(index, 1);\n }\n };\n\n Signals.prototype.fire = function fire(name, arg) {\n var targetListeners = this.listeners[name];\n\n if (!targetListeners) {\n return;\n }\n\n for (var _i = 0; _i < targetListeners.length; _i++) {\n var _ref;\n\n _ref = targetListeners[_i];\n var listener = _ref;\n\n if (listener(arg, name) === false) {\n return;\n }\n }\n };\n\n return Signals;\n}();\n\nSignals.new = function () {\n return new Signals();\n};\n\nmodule.exports = Signals;\n\n},{}],35:[function(require,module,exports){\n\"use strict\";\n\nfunction contains(array, target) {\n return array.indexOf(target) !== -1;\n}\n\nfunction merge(target, source) {\n for (var _i = 0; _i < source.length; _i++) {\n var _ref;\n\n _ref = source[_i];\n var item = _ref;\n\n target.push(item);\n }\n\n return target;\n}\n\nmodule.exports = {\n contains: contains,\n merge: merge\n};\n\n},{}],36:[function(require,module,exports){\n'use strict';\n\nvar _require = require('./window'),\n window = _require.window;\n\nvar is = require('./is');\nvar domObjects = require('./domObjects');\n\nvar Element = domObjects.Element;\nvar navigator = window.navigator;\n\nvar browser = {\n // Does the browser support touch input?\n supportsTouch: !!('ontouchstart' in window || is.function(window.DocumentTouch) && domObjects.document instanceof window.DocumentTouch),\n\n // Does the browser support PointerEvents\n supportsPointerEvent: !!domObjects.PointerEvent,\n\n isIOS: /iP(hone|od|ad)/.test(navigator.platform),\n\n // scrolling doesn't change the result of getClientRects on iOS 7\n isIOS7: /iP(hone|od|ad)/.test(navigator.platform) && /OS 7[^\\d]/.test(navigator.appVersion),\n\n isIe9: /MSIE 9/.test(navigator.userAgent),\n\n // prefix matchesSelector\n prefixedMatchesSelector: 'matches' in Element.prototype ? 'matches' : 'webkitMatchesSelector' in Element.prototype ? 'webkitMatchesSelector' : 'mozMatchesSelector' in Element.prototype ? 'mozMatchesSelector' : 'oMatchesSelector' in Element.prototype ? 'oMatchesSelector' : 'msMatchesSelector',\n\n pEventTypes: domObjects.PointerEvent ? domObjects.PointerEvent === window.MSPointerEvent ? {\n up: 'MSPointerUp',\n down: 'MSPointerDown',\n over: 'mouseover',\n out: 'mouseout',\n move: 'MSPointerMove',\n cancel: 'MSPointerCancel'\n } : {\n up: 'pointerup',\n down: 'pointerdown',\n over: 'pointerover',\n out: 'pointerout',\n move: 'pointermove',\n cancel: 'pointercancel'\n } : null,\n\n // because Webkit and Opera still use 'mousewheel' event type\n wheelEvent: 'onmousewheel' in domObjects.document ? 'mousewheel' : 'wheel'\n\n};\n\n// Opera Mobile must be handled differently\nbrowser.isOperaMobile = navigator.appName === 'Opera' && browser.supportsTouch && navigator.userAgent.match('Presto');\n\nmodule.exports = browser;\n\n},{\"./domObjects\":38,\"./is\":46,\"./window\":52}],37:[function(require,module,exports){\n'use strict';\n\nvar is = require('./is');\n\nmodule.exports = function clone(source) {\n var dest = {};\n for (var prop in source) {\n if (is.plainObject(source[prop])) {\n dest[prop] = clone(source[prop]);\n } else {\n dest[prop] = source[prop];\n }\n }\n return dest;\n};\n\n},{\"./is\":46}],38:[function(require,module,exports){\n'use strict';\n\nvar domObjects = {};\nvar win = require('./window').window;\n\nfunction blank() {}\n\ndomObjects.document = win.document;\ndomObjects.DocumentFragment = win.DocumentFragment || blank;\ndomObjects.SVGElement = win.SVGElement || blank;\ndomObjects.SVGSVGElement = win.SVGSVGElement || blank;\ndomObjects.SVGElementInstance = win.SVGElementInstance || blank;\ndomObjects.Element = win.Element || blank;\ndomObjects.HTMLElement = win.HTMLElement || domObjects.Element;\n\ndomObjects.Event = win.Event;\ndomObjects.Touch = win.Touch || blank;\ndomObjects.PointerEvent = win.PointerEvent || win.MSPointerEvent;\n\nmodule.exports = domObjects;\n\n},{\"./window\":52}],39:[function(require,module,exports){\n'use strict';\n\nvar win = require('./window');\nvar browser = require('./browser');\nvar is = require('./is');\nvar domObjects = require('./domObjects');\n\nvar domUtils = {\n nodeContains: function nodeContains(parent, child) {\n while (child) {\n if (child === parent) {\n return true;\n }\n\n child = child.parentNode;\n }\n\n return false;\n },\n\n closest: function closest(element, selector) {\n while (is.element(element)) {\n if (domUtils.matchesSelector(element, selector)) {\n return element;\n }\n\n element = domUtils.parentNode(element);\n }\n\n return null;\n },\n\n parentNode: function parentNode(node) {\n var parent = node.parentNode;\n\n if (is.docFrag(parent)) {\n // skip past #shado-root fragments\n while ((parent = parent.host) && is.docFrag(parent)) {\n continue;\n }\n\n return parent;\n }\n\n return parent;\n },\n\n matchesSelector: function matchesSelector(element, selector) {\n // remove /deep/ from selectors if shadowDOM polyfill is used\n if (win.window !== win.realWindow) {\n selector = selector.replace(/\\/deep\\//g, ' ');\n }\n\n return element[browser.prefixedMatchesSelector](selector);\n },\n\n // Test for the element that's \"above\" all other qualifiers\n indexOfDeepestElement: function indexOfDeepestElement(elements) {\n var deepestZoneParents = [];\n var dropzoneParents = [];\n var dropzone = void 0;\n var deepestZone = elements[0];\n var index = deepestZone ? 0 : -1;\n var parent = void 0;\n var child = void 0;\n var i = void 0;\n var n = void 0;\n\n for (i = 1; i < elements.length; i++) {\n dropzone = elements[i];\n\n // an element might belong to multiple selector dropzones\n if (!dropzone || dropzone === deepestZone) {\n continue;\n }\n\n if (!deepestZone) {\n deepestZone = dropzone;\n index = i;\n continue;\n }\n\n // check if the deepest or current are document.documentElement or document.rootElement\n // - if the current dropzone is, do nothing and continue\n if (dropzone.parentNode === dropzone.ownerDocument) {\n continue;\n }\n // - if deepest is, update with the current dropzone and continue to next\n else if (deepestZone.parentNode === dropzone.ownerDocument) {\n deepestZone = dropzone;\n index = i;\n continue;\n }\n\n if (!deepestZoneParents.length) {\n parent = deepestZone;\n while (parent.parentNode && parent.parentNode !== parent.ownerDocument) {\n deepestZoneParents.unshift(parent);\n parent = parent.parentNode;\n }\n }\n\n // if this element is an svg element and the current deepest is\n // an HTMLElement\n if (deepestZone instanceof domObjects.HTMLElement && dropzone instanceof domObjects.SVGElement && !(dropzone instanceof domObjects.SVGSVGElement)) {\n\n if (dropzone === deepestZone.parentNode) {\n continue;\n }\n\n parent = dropzone.ownerSVGElement;\n } else {\n parent = dropzone;\n }\n\n dropzoneParents = [];\n\n while (parent.parentNode !== parent.ownerDocument) {\n dropzoneParents.unshift(parent);\n parent = parent.parentNode;\n }\n\n n = 0;\n\n // get (position of last common ancestor) + 1\n while (dropzoneParents[n] && dropzoneParents[n] === deepestZoneParents[n]) {\n n++;\n }\n\n var parents = [dropzoneParents[n - 1], dropzoneParents[n], deepestZoneParents[n]];\n\n child = parents[0].lastChild;\n\n while (child) {\n if (child === parents[1]) {\n deepestZone = dropzone;\n index = i;\n deepestZoneParents = [];\n\n break;\n } else if (child === parents[2]) {\n break;\n }\n\n child = child.previousSibling;\n }\n }\n\n return index;\n },\n\n matchesUpTo: function matchesUpTo(element, selector, limit) {\n while (is.element(element)) {\n if (domUtils.matchesSelector(element, selector)) {\n return true;\n }\n\n element = domUtils.parentNode(element);\n\n if (element === limit) {\n return domUtils.matchesSelector(element, selector);\n }\n }\n\n return false;\n },\n\n getActualElement: function getActualElement(element) {\n return element instanceof domObjects.SVGElementInstance ? element.correspondingUseElement : element;\n },\n\n getScrollXY: function getScrollXY(relevantWindow) {\n relevantWindow = relevantWindow || win.window;\n return {\n x: relevantWindow.scrollX || relevantWindow.document.documentElement.scrollLeft,\n y: relevantWindow.scrollY || relevantWindow.document.documentElement.scrollTop\n };\n },\n\n getElementClientRect: function getElementClientRect(element) {\n var clientRect = element instanceof domObjects.SVGElement ? element.getBoundingClientRect() : element.getClientRects()[0];\n\n return clientRect && {\n left: clientRect.left,\n right: clientRect.right,\n top: clientRect.top,\n bottom: clientRect.bottom,\n width: clientRect.width || clientRect.right - clientRect.left,\n height: clientRect.height || clientRect.bottom - clientRect.top\n };\n },\n\n getElementRect: function getElementRect(element) {\n var clientRect = domUtils.getElementClientRect(element);\n\n if (!browser.isIOS7 && clientRect) {\n var scroll = domUtils.getScrollXY(win.getWindow(element));\n\n clientRect.left += scroll.x;\n clientRect.right += scroll.x;\n clientRect.top += scroll.y;\n clientRect.bottom += scroll.y;\n }\n\n return clientRect;\n },\n\n getPath: function getPath(element) {\n var path = [];\n\n while (element) {\n path.push(element);\n element = domUtils.parentNode(element);\n }\n\n return path;\n },\n\n trySelector: function trySelector(value) {\n if (!is.string(value)) {\n return false;\n }\n\n // an exception will be raised if it is invalid\n domObjects.document.querySelector(value);\n return true;\n }\n};\n\nmodule.exports = domUtils;\n\n},{\"./browser\":36,\"./domObjects\":38,\"./is\":46,\"./window\":52}],40:[function(require,module,exports){\n'use strict';\n\nvar is = require('./is');\nvar domUtils = require('./domUtils');\nvar pointerUtils = require('./pointerUtils');\nvar pExtend = require('./pointerExtend');\n\nvar _require = require('./window'),\n window = _require.window;\n\nvar _require2 = require('./arr'),\n contains = _require2.contains;\n\nvar elements = [];\nvar targets = [];\n\n// {\n// type: {\n// selectors: ['selector', ...],\n// contexts : [document, ...],\n// listeners: [[listener, capture, passive], ...]\n// }\n// }\nvar delegatedEvents = {};\nvar documents = [];\n\nvar supportsOptions = function () {\n var supported = false;\n\n window.document.createElement('div').addEventListener('test', null, {\n get capture() {\n supported = true;\n }\n });\n\n return supported;\n}();\n\nfunction add(element, type, listener, optionalArg) {\n var options = getOptions(optionalArg);\n var elementIndex = elements.indexOf(element);\n var target = targets[elementIndex];\n\n if (!target) {\n target = {\n events: {},\n typeCount: 0\n };\n\n elementIndex = elements.push(element) - 1;\n targets.push(target);\n }\n\n if (!target.events[type]) {\n target.events[type] = [];\n target.typeCount++;\n }\n\n if (!contains(target.events[type], listener)) {\n element.addEventListener(type, listener, supportsOptions ? options : !!options.capture);\n target.events[type].push(listener);\n }\n}\n\nfunction remove(element, type, listener, optionalArg) {\n var options = getOptions(optionalArg);\n var elementIndex = elements.indexOf(element);\n var target = targets[elementIndex];\n\n if (!target || !target.events) {\n return;\n }\n\n if (type === 'all') {\n for (type in target.events) {\n if (target.events.hasOwnProperty(type)) {\n remove(element, type, 'all');\n }\n }\n return;\n }\n\n if (target.events[type]) {\n var len = target.events[type].length;\n\n if (listener === 'all') {\n for (var i = 0; i < len; i++) {\n remove(element, type, target.events[type][i], options);\n }\n return;\n } else {\n for (var _i = 0; _i < len; _i++) {\n if (target.events[type][_i] === listener) {\n element.removeEventListener('on' + type, listener, supportsOptions ? options : !!options.capture);\n target.events[type].splice(_i, 1);\n\n break;\n }\n }\n }\n\n if (target.events[type] && target.events[type].length === 0) {\n target.events[type] = null;\n target.typeCount--;\n }\n }\n\n if (!target.typeCount) {\n targets.splice(elementIndex, 1);\n elements.splice(elementIndex, 1);\n }\n}\n\nfunction addDelegate(selector, context, type, listener, optionalArg) {\n var options = getOptions(optionalArg);\n if (!delegatedEvents[type]) {\n delegatedEvents[type] = {\n selectors: [],\n contexts: [],\n listeners: []\n };\n\n // add delegate listener functions\n for (var _i2 = 0; _i2 < documents.length; _i2++) {\n var doc = documents[_i2];\n add(doc, type, delegateListener);\n add(doc, type, delegateUseCapture, true);\n }\n }\n\n var delegated = delegatedEvents[type];\n var index = void 0;\n\n for (index = delegated.selectors.length - 1; index >= 0; index--) {\n if (delegated.selectors[index] === selector && delegated.contexts[index] === context) {\n break;\n }\n }\n\n if (index === -1) {\n index = delegated.selectors.length;\n\n delegated.selectors.push(selector);\n delegated.contexts.push(context);\n delegated.listeners.push([]);\n }\n\n // keep listener and capture and passive flags\n delegated.listeners[index].push([listener, !!options.capture, options.passive]);\n}\n\nfunction removeDelegate(selector, context, type, listener, optionalArg) {\n var options = getOptions(optionalArg);\n var delegated = delegatedEvents[type];\n var matchFound = false;\n var index = void 0;\n\n if (!delegated) {\n return;\n }\n\n // count from last index of delegated to 0\n for (index = delegated.selectors.length - 1; index >= 0; index--) {\n // look for matching selector and context Node\n if (delegated.selectors[index] === selector && delegated.contexts[index] === context) {\n\n var listeners = delegated.listeners[index];\n\n // each item of the listeners array is an array: [function, capture, passive]\n for (var i = listeners.length - 1; i >= 0; i--) {\n var _listeners$i = listeners[i],\n fn = _listeners$i[0],\n capture = _listeners$i[1],\n passive = _listeners$i[2];\n\n // check if the listener functions and capture and passive flags match\n\n if (fn === listener && capture === !!options.capture && passive === options.passive) {\n // remove the listener from the array of listeners\n listeners.splice(i, 1);\n\n // if all listeners for this interactable have been removed\n // remove the interactable from the delegated arrays\n if (!listeners.length) {\n delegated.selectors.splice(index, 1);\n delegated.contexts.splice(index, 1);\n delegated.listeners.splice(index, 1);\n\n // remove delegate function from context\n remove(context, type, delegateListener);\n remove(context, type, delegateUseCapture, true);\n\n // remove the arrays if they are empty\n if (!delegated.selectors.length) {\n delegatedEvents[type] = null;\n }\n }\n\n // only remove one listener\n matchFound = true;\n break;\n }\n }\n\n if (matchFound) {\n break;\n }\n }\n }\n}\n\n// bound to the interactable context when a DOM event\n// listener is added to a selector interactable\nfunction delegateListener(event, optionalArg) {\n var options = getOptions(optionalArg);\n var fakeEvent = {};\n var delegated = delegatedEvents[event.type];\n\n var _pointerUtils$getEven = pointerUtils.getEventTargets(event),\n eventTarget = _pointerUtils$getEven[0];\n\n var element = eventTarget;\n\n // duplicate the event so that currentTarget can be changed\n pExtend(fakeEvent, event);\n\n fakeEvent.originalEvent = event;\n fakeEvent.preventDefault = preventOriginalDefault;\n\n // climb up document tree looking for selector matches\n while (is.element(element)) {\n for (var i = 0; i < delegated.selectors.length; i++) {\n var selector = delegated.selectors[i];\n var context = delegated.contexts[i];\n\n if (domUtils.matchesSelector(element, selector) && domUtils.nodeContains(context, eventTarget) && domUtils.nodeContains(context, element)) {\n\n var listeners = delegated.listeners[i];\n\n fakeEvent.currentTarget = element;\n\n for (var j = 0; j < listeners.length; j++) {\n var _listeners$j = listeners[j],\n fn = _listeners$j[0],\n capture = _listeners$j[1],\n passive = _listeners$j[2];\n\n\n if (capture === !!options.capture && passive === options.passive) {\n fn(fakeEvent);\n }\n }\n }\n }\n\n element = domUtils.parentNode(element);\n }\n}\n\nfunction delegateUseCapture(event) {\n return delegateListener.call(this, event, true);\n}\n\nfunction preventOriginalDefault() {\n this.originalEvent.preventDefault();\n}\n\nfunction getOptions(param) {\n return is.object(param) ? param : { capture: param };\n}\n\nmodule.exports = {\n add: add,\n remove: remove,\n\n addDelegate: addDelegate,\n removeDelegate: removeDelegate,\n\n delegateListener: delegateListener,\n delegateUseCapture: delegateUseCapture,\n delegatedEvents: delegatedEvents,\n documents: documents,\n\n supportsOptions: supportsOptions,\n\n _elements: elements,\n _targets: targets\n};\n\n},{\"./arr\":35,\"./domUtils\":39,\"./is\":46,\"./pointerExtend\":48,\"./pointerUtils\":49,\"./window\":52}],41:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = function extend(dest, source) {\n for (var prop in source) {\n dest[prop] = source[prop];\n }\n return dest;\n};\n\n},{}],42:[function(require,module,exports){\n'use strict';\n\nvar _require = require('./rect'),\n resolveRectLike = _require.resolveRectLike,\n rectToXY = _require.rectToXY;\n\nmodule.exports = function (target, element, action) {\n var actionOptions = target.options[action];\n var actionOrigin = actionOptions && actionOptions.origin;\n var origin = actionOrigin || target.options.origin;\n\n var originRect = resolveRectLike(origin, target, element, [target && element]);\n\n return rectToXY(originRect) || { x: 0, y: 0 };\n};\n\n},{\"./rect\":51}],43:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = function (x, y) {\n return Math.sqrt(x * x + y * y);\n};\n\n},{}],44:[function(require,module,exports){\n'use strict';\n\nvar extend = require('./extend');\nvar win = require('./window');\n\nvar utils = {\n warnOnce: function warnOnce(method, message) {\n var warned = false;\n\n return function () {\n if (!warned) {\n win.window.console.warn(message);\n warned = true;\n }\n\n return method.apply(this, arguments);\n };\n },\n\n // http://stackoverflow.com/a/5634528/2280888\n _getQBezierValue: function _getQBezierValue(t, p1, p2, p3) {\n var iT = 1 - t;\n return iT * iT * p1 + 2 * iT * t * p2 + t * t * p3;\n },\n\n getQuadraticCurvePoint: function getQuadraticCurvePoint(startX, startY, cpX, cpY, endX, endY, position) {\n return {\n x: utils._getQBezierValue(position, startX, cpX, endX),\n y: utils._getQBezierValue(position, startY, cpY, endY)\n };\n },\n\n // http://gizma.com/easing/\n easeOutQuad: function easeOutQuad(t, b, c, d) {\n t /= d;\n return -c * t * (t - 2) + b;\n },\n\n copyAction: function copyAction(dest, src) {\n dest.name = src.name;\n dest.axis = src.axis;\n dest.edges = src.edges;\n\n return dest;\n },\n\n is: require('./is'),\n extend: extend,\n hypot: require('./hypot'),\n getOriginXY: require('./getOriginXY')\n};\n\nextend(utils, require('./arr'));\nextend(utils, require('./domUtils'));\nextend(utils, require('./pointerUtils'));\nextend(utils, require('./rect'));\n\nmodule.exports = utils;\n\n},{\"./arr\":35,\"./domUtils\":39,\"./extend\":41,\"./getOriginXY\":42,\"./hypot\":43,\"./is\":46,\"./pointerUtils\":49,\"./rect\":51,\"./window\":52}],45:[function(require,module,exports){\n'use strict';\n\nvar scope = require('../scope');\nvar utils = require('./index');\n\nvar finder = {\n methodOrder: ['simulationResume', 'mouseOrPen', 'hasPointer', 'idle'],\n\n search: function search(pointer, eventType, eventTarget) {\n var pointerType = utils.getPointerType(pointer);\n var pointerId = utils.getPointerId(pointer);\n var details = { pointer: pointer, pointerId: pointerId, pointerType: pointerType, eventType: eventType, eventTarget: eventTarget };\n\n for (var _i = 0; _i < finder.methodOrder.length; _i++) {\n var _ref;\n\n _ref = finder.methodOrder[_i];\n var method = _ref;\n\n var interaction = finder[method](details);\n\n if (interaction) {\n return interaction;\n }\n }\n },\n\n // try to resume simulation with a new pointer\n simulationResume: function simulationResume(_ref2) {\n var pointerType = _ref2.pointerType,\n eventType = _ref2.eventType,\n eventTarget = _ref2.eventTarget;\n\n if (!/down|start/i.test(eventType)) {\n return null;\n }\n\n for (var _i2 = 0; _i2 < scope.interactions.length; _i2++) {\n var _ref3;\n\n _ref3 = scope.interactions[_i2];\n var interaction = _ref3;\n\n var element = eventTarget;\n\n if (interaction.simulation && interaction.simulation.allowResume && interaction.pointerType === pointerType) {\n while (element) {\n // if the element is the interaction element\n if (element === interaction.element) {\n return interaction;\n }\n element = utils.parentNode(element);\n }\n }\n }\n\n return null;\n },\n\n // if it's a mouse or pen interaction\n mouseOrPen: function mouseOrPen(_ref4) {\n var pointerId = _ref4.pointerId,\n pointerType = _ref4.pointerType,\n eventType = _ref4.eventType;\n\n if (pointerType !== 'mouse' && pointerType !== 'pen') {\n return null;\n }\n\n var firstNonActive = void 0;\n\n for (var _i3 = 0; _i3 < scope.interactions.length; _i3++) {\n var _ref5;\n\n _ref5 = scope.interactions[_i3];\n var interaction = _ref5;\n\n if (interaction.pointerType === pointerType) {\n // if it's a down event, skip interactions with running simulations\n if (interaction.simulation && !utils.contains(interaction.pointerIds, pointerId)) {\n continue;\n }\n\n // if the interaction is active, return it immediately\n if (interaction.interacting()) {\n return interaction;\n }\n // otherwise save it and look for another active interaction\n else if (!firstNonActive) {\n firstNonActive = interaction;\n }\n }\n }\n\n // if no active mouse interaction was found use the first inactive mouse\n // interaction\n if (firstNonActive) {\n return firstNonActive;\n }\n\n // find any mouse or pen interaction.\n // ignore the interaction if the eventType is a *down, and a simulation\n // is active\n for (var _i4 = 0; _i4 < scope.interactions.length; _i4++) {\n var _ref6;\n\n _ref6 = scope.interactions[_i4];\n var _interaction = _ref6;\n\n if (_interaction.pointerType === pointerType && !(/down/i.test(eventType) && _interaction.simulation)) {\n return _interaction;\n }\n }\n\n return null;\n },\n\n // get interaction that has this pointer\n hasPointer: function hasPointer(_ref7) {\n var pointerId = _ref7.pointerId;\n\n for (var _i5 = 0; _i5 < scope.interactions.length; _i5++) {\n var _ref8;\n\n _ref8 = scope.interactions[_i5];\n var interaction = _ref8;\n\n if (utils.contains(interaction.pointerIds, pointerId)) {\n return interaction;\n }\n }\n },\n\n // get first idle interaction with a matching pointerType\n idle: function idle(_ref9) {\n var pointerType = _ref9.pointerType;\n\n for (var _i6 = 0; _i6 < scope.interactions.length; _i6++) {\n var _ref10;\n\n _ref10 = scope.interactions[_i6];\n var interaction = _ref10;\n\n // if there's already a pointer held down\n if (interaction.pointerIds.length === 1) {\n var target = interaction.target;\n // don't add this pointer if there is a target interactable and it\n // isn't gesturable\n if (target && !target.options.gesture.enabled) {\n continue;\n }\n }\n // maximum of 2 pointers per interaction\n else if (interaction.pointerIds.length >= 2) {\n continue;\n }\n\n if (!interaction.interacting() && pointerType === interaction.pointerType) {\n return interaction;\n }\n }\n\n return null;\n }\n};\n\nmodule.exports = finder;\n\n},{\"../scope\":33,\"./index\":44}],46:[function(require,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar win = require('./window');\nvar isWindow = require('./isWindow');\n\nvar is = {\n array: function array() {},\n\n window: function window(thing) {\n return thing === win.window || isWindow(thing);\n },\n\n docFrag: function docFrag(thing) {\n return is.object(thing) && thing.nodeType === 11;\n },\n\n object: function object(thing) {\n return !!thing && (typeof thing === 'undefined' ? 'undefined' : _typeof(thing)) === 'object';\n },\n\n function: function _function(thing) {\n return typeof thing === 'function';\n },\n\n number: function number(thing) {\n return typeof thing === 'number';\n },\n\n bool: function bool(thing) {\n return typeof thing === 'boolean';\n },\n\n string: function string(thing) {\n return typeof thing === 'string';\n },\n\n element: function element(thing) {\n if (!thing || (typeof thing === 'undefined' ? 'undefined' : _typeof(thing)) !== 'object') {\n return false;\n }\n\n var _window = win.getWindow(thing) || win.window;\n\n return (/object|function/.test(_typeof(_window.Element)) ? thing instanceof _window.Element //DOM2\n : thing.nodeType === 1 && typeof thing.nodeName === 'string'\n );\n },\n\n plainObject: function plainObject(thing) {\n return is.object(thing) && thing.constructor.name === 'Object';\n }\n};\n\nis.array = function (thing) {\n return is.object(thing) && typeof thing.length !== 'undefined' && is.function(thing.splice);\n};\n\nmodule.exports = is;\n\n},{\"./isWindow\":47,\"./window\":52}],47:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = function (thing) {\n return !!(thing && thing.Window) && thing instanceof thing.Window;\n};\n\n},{}],48:[function(require,module,exports){\n'use strict';\n\nfunction pointerExtend(dest, source) {\n for (var prop in source) {\n var prefixedPropREs = module.exports.prefixedPropREs;\n var deprecated = false;\n\n // skip deprecated prefixed properties\n for (var vendor in prefixedPropREs) {\n if (prop.indexOf(vendor) === 0 && prefixedPropREs[vendor].test(prop)) {\n deprecated = true;\n break;\n }\n }\n\n if (!deprecated && typeof source[prop] !== 'function') {\n dest[prop] = source[prop];\n }\n }\n return dest;\n}\n\npointerExtend.prefixedPropREs = {\n webkit: /(Movement[XY]|Radius[XY]|RotationAngle|Force)$/\n};\n\nmodule.exports = pointerExtend;\n\n},{}],49:[function(require,module,exports){\n'use strict';\n\nvar hypot = require('./hypot');\nvar browser = require('./browser');\nvar dom = require('./domObjects');\nvar domUtils = require('./domUtils');\nvar domObjects = require('./domObjects');\nvar is = require('./is');\nvar pointerExtend = require('./pointerExtend');\n\nvar pointerUtils = {\n copyCoords: function copyCoords(dest, src) {\n dest.page = dest.page || {};\n dest.page.x = src.page.x;\n dest.page.y = src.page.y;\n\n dest.client = dest.client || {};\n dest.client.x = src.client.x;\n dest.client.y = src.client.y;\n\n dest.timeStamp = src.timeStamp;\n },\n\n setCoordDeltas: function setCoordDeltas(targetObj, prev, cur) {\n targetObj.page.x = cur.page.x - prev.page.x;\n targetObj.page.y = cur.page.y - prev.page.y;\n targetObj.client.x = cur.client.x - prev.client.x;\n targetObj.client.y = cur.client.y - prev.client.y;\n targetObj.timeStamp = cur.timeStamp - prev.timeStamp;\n\n // set pointer velocity\n var dt = Math.max(targetObj.timeStamp / 1000, 0.001);\n\n targetObj.page.speed = hypot(targetObj.page.x, targetObj.page.y) / dt;\n targetObj.page.vx = targetObj.page.x / dt;\n targetObj.page.vy = targetObj.page.y / dt;\n\n targetObj.client.speed = hypot(targetObj.client.x, targetObj.page.y) / dt;\n targetObj.client.vx = targetObj.client.x / dt;\n targetObj.client.vy = targetObj.client.y / dt;\n },\n\n isNativePointer: function isNativePointer(pointer) {\n return pointer instanceof dom.Event || pointer instanceof dom.Touch;\n },\n\n // Get specified X/Y coords for mouse or event.touches[0]\n getXY: function getXY(type, pointer, xy) {\n xy = xy || {};\n type = type || 'page';\n\n xy.x = pointer[type + 'X'];\n xy.y = pointer[type + 'Y'];\n\n return xy;\n },\n\n getPageXY: function getPageXY(pointer, page) {\n page = page || {};\n\n // Opera Mobile handles the viewport and scrolling oddly\n if (browser.isOperaMobile && pointerUtils.isNativePointer(pointer)) {\n pointerUtils.getXY('screen', pointer, page);\n\n page.x += window.scrollX;\n page.y += window.scrollY;\n } else {\n pointerUtils.getXY('page', pointer, page);\n }\n\n return page;\n },\n\n getClientXY: function getClientXY(pointer, client) {\n client = client || {};\n\n if (browser.isOperaMobile && pointerUtils.isNativePointer(pointer)) {\n // Opera Mobile handles the viewport and scrolling oddly\n pointerUtils.getXY('screen', pointer, client);\n } else {\n pointerUtils.getXY('client', pointer, client);\n }\n\n return client;\n },\n\n getPointerId: function getPointerId(pointer) {\n return is.number(pointer.pointerId) ? pointer.pointerId : pointer.identifier;\n },\n\n setCoords: function setCoords(targetObj, pointers, timeStamp) {\n var pointer = pointers.length > 1 ? pointerUtils.pointerAverage(pointers) : pointers[0];\n\n var tmpXY = {};\n\n pointerUtils.getPageXY(pointer, tmpXY);\n targetObj.page.x = tmpXY.x;\n targetObj.page.y = tmpXY.y;\n\n pointerUtils.getClientXY(pointer, tmpXY);\n targetObj.client.x = tmpXY.x;\n targetObj.client.y = tmpXY.y;\n\n targetObj.timeStamp = is.number(timeStamp) ? timeStamp : new Date().getTime();\n },\n\n pointerExtend: pointerExtend,\n\n getTouchPair: function getTouchPair(event) {\n var touches = [];\n\n // array of touches is supplied\n if (is.array(event)) {\n touches[0] = event[0];\n touches[1] = event[1];\n }\n // an event\n else {\n if (event.type === 'touchend') {\n if (event.touches.length === 1) {\n touches[0] = event.touches[0];\n touches[1] = event.changedTouches[0];\n } else if (event.touches.length === 0) {\n touches[0] = event.changedTouches[0];\n touches[1] = event.changedTouches[1];\n }\n } else {\n touches[0] = event.touches[0];\n touches[1] = event.touches[1];\n }\n }\n\n return touches;\n },\n\n pointerAverage: function pointerAverage(pointers) {\n var average = {\n pageX: 0,\n pageY: 0,\n clientX: 0,\n clientY: 0,\n screenX: 0,\n screenY: 0\n };\n\n for (var _i = 0; _i < pointers.length; _i++) {\n var _ref;\n\n _ref = pointers[_i];\n var pointer = _ref;\n\n for (var _prop in average) {\n average[_prop] += pointer[_prop];\n }\n }\n for (var prop in average) {\n average[prop] /= pointers.length;\n }\n\n return average;\n },\n\n touchBBox: function touchBBox(event) {\n if (!event.length && !(event.touches && event.touches.length > 1)) {\n return;\n }\n\n var touches = pointerUtils.getTouchPair(event);\n var minX = Math.min(touches[0].pageX, touches[1].pageX);\n var minY = Math.min(touches[0].pageY, touches[1].pageY);\n var maxX = Math.max(touches[0].pageX, touches[1].pageX);\n var maxY = Math.max(touches[0].pageY, touches[1].pageY);\n\n return {\n x: minX,\n y: minY,\n left: minX,\n top: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n },\n\n touchDistance: function touchDistance(event, deltaSource) {\n var sourceX = deltaSource + 'X';\n var sourceY = deltaSource + 'Y';\n var touches = pointerUtils.getTouchPair(event);\n\n var dx = touches[0][sourceX] - touches[1][sourceX];\n var dy = touches[0][sourceY] - touches[1][sourceY];\n\n return hypot(dx, dy);\n },\n\n touchAngle: function touchAngle(event, prevAngle, deltaSource) {\n var sourceX = deltaSource + 'X';\n var sourceY = deltaSource + 'Y';\n var touches = pointerUtils.getTouchPair(event);\n var dx = touches[1][sourceX] - touches[0][sourceX];\n var dy = touches[1][sourceY] - touches[0][sourceY];\n var angle = 180 * Math.atan2(dy, dx) / Math.PI;\n\n return angle;\n },\n\n getPointerType: function getPointerType(pointer) {\n return is.string(pointer.pointerType) ? pointer.pointerType : is.number(pointer.pointerType) ? [undefined, undefined, 'touch', 'pen', 'mouse'][pointer.pointerType]\n // if the PointerEvent API isn't available, then the \"pointer\" must\n // be either a MouseEvent, TouchEvent, or Touch object\n : /touch/.test(pointer.type) || pointer instanceof domObjects.Touch ? 'touch' : 'mouse';\n },\n\n // [ event.target, event.currentTarget ]\n getEventTargets: function getEventTargets(event) {\n var path = is.function(event.composedPath) ? event.composedPath() : event.path;\n\n return [domUtils.getActualElement(path ? path[0] : event.target), domUtils.getActualElement(event.currentTarget)];\n }\n};\n\nmodule.exports = pointerUtils;\n\n},{\"./browser\":36,\"./domObjects\":38,\"./domUtils\":39,\"./hypot\":43,\"./is\":46,\"./pointerExtend\":48}],50:[function(require,module,exports){\n'use strict';\n\nvar _require = require('./window'),\n window = _require.window;\n\nvar vendors = ['ms', 'moz', 'webkit', 'o'];\nvar lastTime = 0;\nvar request = void 0;\nvar cancel = void 0;\n\nfor (var x = 0; x < vendors.length && !window.requestAnimationFrame; x++) {\n request = window[vendors[x] + 'RequestAnimationFrame'];\n cancel = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];\n}\n\nif (!request) {\n request = function request(callback) {\n var currTime = new Date().getTime();\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\n var id = setTimeout(function () {\n callback(currTime + timeToCall);\n }, timeToCall);\n\n lastTime = currTime + timeToCall;\n return id;\n };\n}\n\nif (!cancel) {\n cancel = function cancel(id) {\n clearTimeout(id);\n };\n}\n\nmodule.exports = {\n request: request,\n cancel: cancel\n};\n\n},{\"./window\":52}],51:[function(require,module,exports){\n'use strict';\n\nvar extend = require('./extend');\nvar is = require('./is');\n\nvar _require = require('./domUtils'),\n closest = _require.closest,\n parentNode = _require.parentNode,\n getElementRect = _require.getElementRect;\n\nvar rectUtils = {\n getStringOptionResult: function getStringOptionResult(value, interactable, element) {\n if (!is.string(value)) {\n return null;\n }\n\n if (value === 'parent') {\n value = parentNode(element);\n } else if (value === 'self') {\n value = interactable.getRect(element);\n } else {\n value = closest(element, value);\n }\n\n return value;\n },\n\n resolveRectLike: function resolveRectLike(value, interactable, element, functionArgs) {\n value = rectUtils.getStringOptionResult(value, interactable, element) || value;\n\n if (is.function(value)) {\n value = value.apply(null, functionArgs);\n }\n\n if (is.element(value)) {\n value = getElementRect(value);\n }\n\n return value;\n },\n\n rectToXY: function rectToXY(rect) {\n return rect && {\n x: 'x' in rect ? rect.x : rect.left,\n y: 'y' in rect ? rect.y : rect.top\n };\n },\n\n xywhToTlbr: function xywhToTlbr(rect) {\n if (rect && !('left' in rect && 'top' in rect)) {\n rect = extend({}, rect);\n\n rect.left = rect.x || 0;\n rect.top = rect.y || 0;\n rect.right = rect.right || rect.left + rect.width;\n rect.bottom = rect.bottom || rect.top + rect.height;\n }\n\n return rect;\n },\n\n tlbrToXywh: function tlbrToXywh(rect) {\n if (rect && !('x' in rect && 'y' in rect)) {\n rect = extend({}, rect);\n\n rect.x = rect.left || 0;\n rect.top = rect.top || 0;\n rect.width = rect.width || rect.right - rect.x;\n rect.height = rect.height || rect.bottom - rect.y;\n }\n\n return rect;\n }\n};\n\nmodule.exports = rectUtils;\n\n},{\"./domUtils\":39,\"./extend\":41,\"./is\":46}],52:[function(require,module,exports){\n'use strict';\n\nvar win = module.exports;\nvar isWindow = require('./isWindow');\n\nfunction init(window) {\n // get wrapped window if using Shadow DOM polyfill\n\n win.realWindow = window;\n\n // create a TextNode\n var el = window.document.createTextNode('');\n\n // check if it's wrapped by a polyfill\n if (el.ownerDocument !== window.document && typeof window.wrap === 'function' && window.wrap(el) === el) {\n // use wrapped window\n window = window.wrap(window);\n }\n\n win.window = window;\n}\n\nif (typeof window === 'undefined') {\n win.window = undefined;\n win.realWindow = undefined;\n} else {\n init(window);\n}\n\nwin.getWindow = function getWindow(node) {\n if (isWindow(node)) {\n return node;\n }\n\n var rootNode = node.ownerDocument || node;\n\n return rootNode.defaultView || rootNode.parentWindow || win.window;\n};\n\nwin.init = init;\n\n},{\"./isWindow\":47}]},{},[1])(1)\n});\n\n\n//# sourceMappingURL=interact.js.map\n","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/vue-grid-layout.umd.js b/dist/vue-grid-layout.umd.js index d3f88d76..3d1794fc 100644 --- a/dist/vue-grid-layout.umd.js +++ b/dist/vue-grid-layout.umd.js @@ -6429,12 +6429,12 @@ var component = normalizeComponent( ) /* harmony default export */ var GridItem = (component.exports); -// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"3028f95f-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/GridLayout.vue?vue&type=template&id=ba4fc54e& -var GridLayoutvue_type_template_id_ba4fc54e_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:"item",staticClass:"vue-grid-layout",style:(_vm.mergedStyle)},[_vm._t("default"),_c('grid-item',{directives:[{name:"show",rawName:"v-show",value:(_vm.isDragging),expression:"isDragging"}],staticClass:"vue-grid-placeholder",attrs:{"x":_vm.placeholder.x,"y":_vm.placeholder.y,"w":_vm.placeholder.w,"h":_vm.placeholder.h,"i":_vm.placeholder.i}})],2)} -var GridLayoutvue_type_template_id_ba4fc54e_staticRenderFns = [] +// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"3028f95f-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/GridLayout.vue?vue&type=template&id=16f9e7c6& +var GridLayoutvue_type_template_id_16f9e7c6_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:"item",staticClass:"vue-grid-layout",style:(_vm.mergedStyle)},[_vm._t("default"),_c('grid-item',{directives:[{name:"show",rawName:"v-show",value:(_vm.isDragging),expression:"isDragging"}],staticClass:"vue-grid-placeholder",attrs:{"x":_vm.placeholder.x,"y":_vm.placeholder.y,"w":_vm.placeholder.w,"h":_vm.placeholder.h,"i":_vm.placeholder.i}})],2)} +var GridLayoutvue_type_template_id_16f9e7c6_staticRenderFns = [] -// CONCATENATED MODULE: ./src/components/GridLayout.vue?vue&type=template&id=ba4fc54e& +// CONCATENATED MODULE: ./src/components/GridLayout.vue?vue&type=template&id=16f9e7c6& // CONCATENATED MODULE: ./src/helpers/responsiveUtils.js @@ -6759,6 +6759,7 @@ var elementResizeDetectorMaker = __webpack_require__("eec4"); self.eventBus = self._provided.eventBus; self.eventBus.$on('resizeEvent', self.resizeEventHandler); self.eventBus.$on('dragEvent', self.dragEventHandler); + self.$emit('layout-created', self.layout); }, beforeDestroy: function beforeDestroy() { //Remove listeners @@ -6768,7 +6769,11 @@ var elementResizeDetectorMaker = __webpack_require__("eec4"); removeWindowEventListener("resize", this.onWindowResize); this.erd.uninstall(this.$refs.item); }, + beforeMount: function beforeMount() { + this.$emit('layout-before-mount', this.layout); + }, mounted: function mounted() { + this.$emit('layout-mounted', this.layout); this.$nextTick(function () { validateLayout(this.layout); this.originalLayout = this.layout; @@ -6792,6 +6797,7 @@ var elementResizeDetectorMaker = __webpack_require__("eec4"); self.onWindowResize(); }); }); + self.$emit('layout-ready', self.layout); }); }); }, @@ -6951,7 +6957,7 @@ var elementResizeDetectorMaker = __webpack_require__("eec4"); var newBreakpoint = getBreakpointFromWidth(this.breakpoints, this.width); var newCols = getColsFromBreakpoint(newBreakpoint, this.cols); // save actual layout in layouts - if (this.lastBreakpoint != null && !this.layouts[this.lastBreakpoint]) this.layouts[this.lastBreakpoint] = cloneLayout(this.layout); // Find or generate a new layout. + if (this.lastBreakpoint != null && !this.layouts[this.lastBreakpoint]) this.layouts[this.lastBreakpoint] = cloneLayout(this.layout); // Find or generate a new layout. var layout = findOrGenerateResponsiveLayout(this.originalLayout, this.layouts, this.breakpoints, newBreakpoint, this.lastBreakpoint, newCols, this.verticalCompact); // Store the new layout. @@ -6966,7 +6972,7 @@ var elementResizeDetectorMaker = __webpack_require__("eec4"); // clear layouts this.layouts = {}; }, - // find difference in layouts + // find difference in layouts findDifference: function findDifference(layout, originalLayout) { //Find values that are in result1 but not in result2 var uniqueResultOne = layout.filter(function (obj) { @@ -7001,8 +7007,8 @@ var GridLayoutvue_type_style_index_0_lang_css_ = __webpack_require__("e279"); var GridLayout_component = normalizeComponent( components_GridLayoutvue_type_script_lang_js_, - GridLayoutvue_type_template_id_ba4fc54e_render, - GridLayoutvue_type_template_id_ba4fc54e_staticRenderFns, + GridLayoutvue_type_template_id_16f9e7c6_render, + GridLayoutvue_type_template_id_16f9e7c6_staticRenderFns, false, null, null, diff --git a/dist/vue-grid-layout.umd.js.map b/dist/vue-grid-layout.umd.js.map index 69fbc188..b37ced5d 100644 --- a/dist/vue-grid-layout.umd.js.map +++ b/dist/vue-grid-layout.umd.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://VueGridLayout/webpack/universalModuleDefinition","webpack://VueGridLayout/webpack/bootstrap","webpack://VueGridLayout/./node_modules/core-js/modules/_iter-define.js","webpack://VueGridLayout/./node_modules/core-js/modules/_string-at.js","webpack://VueGridLayout/./node_modules/core-js/modules/_advance-string-index.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_has.js","webpack://VueGridLayout/./node_modules/core-js/modules/_flags.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-keys.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_to-absolute-index.js","webpack://VueGridLayout/./src/components/GridLayout.vue?43b0","webpack://VueGridLayout/./node_modules/core-js/modules/_object-gopd.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-dps.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_enum-bug-keys.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/detection-strategy/object.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/browser-detector.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/es6.array.is-array.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_to-primitive.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_dom-create.js","webpack://VueGridLayout/./node_modules/core-js/modules/_fix-re-wks.js","webpack://VueGridLayout/./node_modules/core-js/modules/_dom-create.js","webpack://VueGridLayout/./node_modules/css-loader/lib/css-base.js","webpack://VueGridLayout/./node_modules/core-js/modules/_classof.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_to-object.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_defined.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_fails.js","webpack://VueGridLayout/./node_modules/core-js/modules/_redefine.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-create.js","webpack://VueGridLayout/./node_modules/core-js/modules/_wks.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/id-generator.js","webpack://VueGridLayout/./node_modules/core-js/modules/_library.js","webpack://VueGridLayout/./node_modules/core-js/modules/_cof.js","webpack://VueGridLayout/./node_modules/core-js/modules/_strict-method.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/es6.object.keys.js","webpack://VueGridLayout/./node_modules/core-js/modules/_hide.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_iobject.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_hide.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_to-iobject.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-gpo.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_to-integer.js","webpack://VueGridLayout/./node_modules/core-js/modules/_iter-create.js","webpack://VueGridLayout/./node_modules/core-js/modules/_to-integer.js","webpack://VueGridLayout/./node_modules/core-js/modules/_property-desc.js","webpack://VueGridLayout/./node_modules/vue-style-loader/lib/listToStyles.js","webpack://VueGridLayout/./node_modules/vue-style-loader/lib/addStylesClient.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/listener-handler.js","webpack://VueGridLayout/./node_modules/core-js/modules/_to-object.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/id-handler.js","webpack://VueGridLayout/./node_modules/batch-processor/src/utils.js","webpack://VueGridLayout/./node_modules/core-js/modules/_regexp-exec.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-pie.js","webpack://VueGridLayout/./node_modules/core-js/modules/_shared.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_shared-key.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.array.sort.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_core.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_array-includes.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/element-utils.js","webpack://VueGridLayout/./node_modules/core-js/modules/_export.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_parse-int.js","webpack://VueGridLayout/./node_modules/core-js/modules/_inherit-if-required.js","webpack://VueGridLayout/./src/components/GridItem.vue?70f1","webpack://VueGridLayout/./node_modules/core-js/modules/_regexp-exec-abstract.js","webpack://VueGridLayout/./node_modules/core-js/modules/_shared-key.js","webpack://VueGridLayout/./node_modules/core-js/modules/_iobject.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_uid.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_export.js","webpack://VueGridLayout/./node_modules/core-js/modules/_to-iobject.js","webpack://VueGridLayout/./node_modules/core-js/modules/_has.js","webpack://VueGridLayout/./node_modules/core-js/modules/_to-primitive.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_cof.js","webpack://VueGridLayout/./src/components/GridItem.vue?73c4","webpack://VueGridLayout/./node_modules/core-js/library/modules/es6.parse-int.js","webpack://VueGridLayout/./node_modules/core-js/modules/_global.js","webpack://VueGridLayout/./node_modules/core-js/modules/_to-absolute-index.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_ie8-dom-define.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_a-function.js","webpack://VueGridLayout/./node_modules/core-js/modules/_fails.js","webpack://VueGridLayout/./node_modules/core-js/modules/_set-to-string-tag.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.function.name.js","webpack://VueGridLayout/./node_modules/core-js/modules/_core.js","webpack://VueGridLayout/./node_modules/core-js/modules/_iterators.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-dp.js","webpack://VueGridLayout/./node_modules/core-js/library/fn/object/keys.js","webpack://VueGridLayout/./node_modules/core-js/modules/_set-proto.js","webpack://VueGridLayout/external {\"commonjs\":\"vue\",\"commonjs2\":\"vue\",\"root\":\"Vue\"}","webpack://VueGridLayout/./node_modules/core-js/library/modules/_descriptors.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_is-array.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-gopn.js","webpack://VueGridLayout/./node_modules/core-js/modules/_ctx.js","webpack://VueGridLayout/./node_modules/core-js/modules/_add-to-unscopables.js","webpack://VueGridLayout/./src/components/GridItem.vue?b235","webpack://VueGridLayout/./node_modules/core-js/modules/_to-length.js","webpack://VueGridLayout/./node_modules/core-js/modules/_descriptors.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_string-trim.js","webpack://VueGridLayout/./node_modules/core-js/library/fn/json/stringify.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.regexp.replace.js","webpack://VueGridLayout/./node_modules/@babel/runtime-corejs2/core-js/object/keys.js","webpack://VueGridLayout/./node_modules/@babel/runtime-corejs2/core-js/array/is-array.js","webpack://VueGridLayout/./node_modules/core-js/modules/_string-trim.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/reporter.js","webpack://VueGridLayout/./node_modules/core-js/modules/web.dom.iterable.js","webpack://VueGridLayout/./src/components/GridLayout.vue?af6b","webpack://VueGridLayout/./node_modules/core-js/library/modules/_property-desc.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.regexp.exec.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_to-length.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/collection-utils.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_library.js","webpack://VueGridLayout/./node_modules/core-js/library/fn/parse-int.js","webpack://VueGridLayout/./node_modules/core-js/modules/_defined.js","webpack://VueGridLayout/./node_modules/batch-processor/src/batch-processor.js","webpack://VueGridLayout/./node_modules/core-js/modules/_array-includes.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_object-keys.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.number.constructor.js","webpack://VueGridLayout/./node_modules/core-js/modules/_ie8-dom-define.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/detection-strategy/scroll.js","webpack://VueGridLayout/./node_modules/core-js/modules/_uid.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.array.iterator.js","webpack://VueGridLayout/./node_modules/core-js/modules/_an-object.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-keys-internal.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_object-sap.js","webpack://VueGridLayout/./node_modules/core-js/modules/_is-object.js","webpack://VueGridLayout/./node_modules/core-js/modules/_iter-step.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/state-handler.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_ctx.js","webpack://VueGridLayout/./node_modules/core-js/modules/_a-function.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_object-dp.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_shared.js","webpack://VueGridLayout/./node_modules/core-js/modules/_enum-bug-keys.js","webpack://VueGridLayout/./src/components/GridLayout.vue?2bdf","webpack://VueGridLayout/./node_modules/core-js/library/modules/_an-object.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_global.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_string-ws.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_object-keys-internal.js","webpack://VueGridLayout/./node_modules/@babel/runtime-corejs2/core-js/parse-int.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/element-resize-detector.js","webpack://VueGridLayout/./node_modules/core-js/library/fn/array/is-array.js","webpack://VueGridLayout/./node_modules/@babel/runtime-corejs2/core-js/json/stringify.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_is-object.js","webpack://VueGridLayout/./node_modules/core-js/modules/_function-to-string.js","webpack://VueGridLayout/./node_modules/core-js/modules/_html.js","webpack://VueGridLayout/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://VueGridLayout/./src/components/GridItem.vue?d2b9","webpack://VueGridLayout/./src/helpers/utils.js","webpack://VueGridLayout/./src/helpers/draggableUtils.js","webpack://VueGridLayout/./src/helpers/DOM.js","webpack://VueGridLayout/src/components/GridItem.vue","webpack://VueGridLayout/./src/components/GridItem.vue?2537","webpack://VueGridLayout/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://VueGridLayout/./src/components/GridItem.vue","webpack://VueGridLayout/./src/components/GridLayout.vue?49f6","webpack://VueGridLayout/./src/helpers/responsiveUtils.js","webpack://VueGridLayout/src/components/GridLayout.vue","webpack://VueGridLayout/./src/components/GridLayout.vue?2dea","webpack://VueGridLayout/./src/components/GridLayout.vue","webpack://VueGridLayout/./src/components/index.js","webpack://VueGridLayout/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js","webpack://VueGridLayout/./node_modules/interactjs/dist/interact.js","webpack://VueGridLayout/./node_modules/core-js/modules/_string-ws.js"],"names":["bottom","layout","max","bottomY","i","len","length","y","h","cloneLayout","newLayout","Array","cloneLayoutItem","layoutItem","JSON","parse","collides","l1","l2","x","w","compact","verticalCompact","compareWith","getStatics","sorted","sortLayoutItemsByRowCol","out","l","static","compactItem","push","indexOf","moved","getFirstCollision","correctBounds","bounds","collidesWith","cols","getLayoutItem","id","getAllCollisions","filter","moveElement","isUserAction","movingUp","reverse","collisions","collision","moveElementAwayFromCollision","itemToMove","fakeItem","Math","undefined","perc","num","setTransform","top","left","width","height","translate","transform","WebkitTransform","MozTransform","msTransform","OTransform","position","setTransformRtl","right","setTopLeft","setTopRight","concat","sort","a","b","validateLayout","contextName","subProps","Error","item","j","autoBindHandlers","el","fns","forEach","key","bind","createMarkup","obj","keys","result","val","hyphenate","addPx","IS_UNITLESS","animationIterationCount","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridColumn","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","stopOpacity","strokeDashoffset","strokeOpacity","strokeWidth","name","value","hyphenateRE","str","replace","toLowerCase","findItemInArray","array","property","findAndRemove","index","splice","getControlPosition","e","offsetXYFromParentOf","evt","offsetParent","target","document","body","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","createCoreData","lastX","lastY","isStart","isNum","deltaX","deltaY","isNaN","currentDir","hasDocument","hasWindow","window","getDocumentDir","direction","dir","getElementsByTagName","getAttribute","setDocumentDir","html","setAttribute","addWindowEventListener","event","callback","addEventListener","removeWindowEventListener","removeEventListener","getBreakpointFromWidth","breakpoints","sortBreakpoints","matching","breakpointName","getColsFromBreakpoint","breakpoint","findOrGenerateResponsiveLayout","orgLayout","layouts","lastBreakpoint","breakpointsSorted","breakpointsAbove","slice","generateResponsiveLayout","VueGridLayout","GridLayout","GridItem","Vue","component"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kDAA0C,gCAAgC;AAC1E;AACA;;AAEA;AACA;AACA;AACA,gEAAwD,kBAAkB;AAC1E;AACA,yDAAiD,cAAc;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAyC,iCAAiC;AAC1E,wHAAgH,mBAAmB,EAAE;AACrI;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;;AAGA;AACA;;;;;;;;;AClFa;AACb,cAAc,mBAAO,CAAC,MAAY;AAClC,cAAc,mBAAO,CAAC,MAAW;AACjC,eAAe,mBAAO,CAAC,MAAa;AACpC,WAAW,mBAAO,CAAC,MAAS;AAC5B,gBAAgB,mBAAO,CAAC,MAAc;AACtC,kBAAkB,mBAAO,CAAC,MAAgB;AAC1C,qBAAqB,mBAAO,CAAC,MAAsB;AACnD,qBAAqB,mBAAO,CAAC,MAAe;AAC5C,eAAe,mBAAO,CAAC,MAAQ;AAC/B,8CAA8C;AAC9C;AACA;AACA;;AAEA,8BAA8B,aAAa;;AAE3C;AACA;AACA;AACA;AACA;AACA,yCAAyC,oCAAoC;AAC7E,6CAA6C,oCAAoC;AACjF,KAAK,4BAA4B,oCAAoC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA,kCAAkC,2BAA2B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;ACpEA,gBAAgB,mBAAO,CAAC,MAAe;AACvC,cAAc,mBAAO,CAAC,MAAY;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBa;AACb,SAAS,mBAAO,CAAC,MAAc;;AAE/B;AACA;AACA;AACA;AACA;;;;;;;;ACPA,uBAAuB;AACvB;AACA;AACA;;;;;;;;;ACHa;AACb;AACA,eAAe,mBAAO,CAAC,MAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AACA,YAAY,mBAAO,CAAC,MAAyB;AAC7C,kBAAkB,mBAAO,CAAC,MAAkB;;AAE5C;AACA;AACA;;;;;;;;ACNA,gBAAgB,mBAAO,CAAC,MAAe;AACvC;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;;AAEA;AACA,cAAc,mBAAO,CAAC,MAAka;AACxb,4CAA4C,QAAS;AACrD;AACA;AACA,UAAU,mBAAO,CAAC,MAA6D;AAC/E,6CAA6C,qCAAqC,E;;;;;;;ACRlF,UAAU,mBAAO,CAAC,MAAe;AACjC,iBAAiB,mBAAO,CAAC,MAAkB;AAC3C,gBAAgB,mBAAO,CAAC,MAAe;AACvC,kBAAkB,mBAAO,CAAC,MAAiB;AAC3C,UAAU,mBAAO,CAAC,MAAQ;AAC1B,qBAAqB,mBAAO,CAAC,MAAmB;AAChD;;AAEA,YAAY,mBAAO,CAAC,MAAgB;AACpC;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;AACA;;;;;;;;ACfA,SAAS,mBAAO,CAAC,MAAc;AAC/B,eAAe,mBAAO,CAAC,MAAc;AACrC,cAAc,mBAAO,CAAC,MAAgB;;AAEtC,iBAAiB,mBAAO,CAAC,MAAgB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AACA;AACA;AACA;;;;;;;;;ACHA;AACA;AACA;AACA;;AAEa;;AAEb,sBAAsB,mBAAO,CAAC,MAAqB;;AAEnD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,+CAA+C,oBAAoB,QAAQ,SAAS,aAAa,cAAc,cAAc,YAAY,WAAW,YAAY,gBAAgB,sBAAsB;;AAEtM;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;;AAE7B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtNa;;AAEb;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;;;;;;;ACtCA;AACA,cAAc,mBAAO,CAAC,MAAW;;AAEjC,6BAA6B,UAAU,mBAAO,CAAC,MAAa,GAAG;;;;;;;;ACH/D;AACA,eAAe,mBAAO,CAAC,MAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA,eAAe,mBAAO,CAAC,MAAc;AACrC,eAAe,mBAAO,CAAC,MAAW;AAClC;AACA;AACA;AACA;AACA;;;;;;;;;ACNa;AACb,mBAAO,CAAC,MAAmB;AAC3B,eAAe,mBAAO,CAAC,MAAa;AACpC,WAAW,mBAAO,CAAC,MAAS;AAC5B,YAAY,mBAAO,CAAC,MAAU;AAC9B,cAAc,mBAAO,CAAC,MAAY;AAClC,UAAU,mBAAO,CAAC,MAAQ;AAC1B,iBAAiB,mBAAO,CAAC,MAAgB;;AAEzC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,yBAAyB,4CAA4C;AACrE;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,UAAU;AACvC;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB,aAAa;AAC3D;AACA;AACA;AACA;AACA,6CAA6C,WAAW;AACxD;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,kBAAkB;AAClB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAAgC,qCAAqC;AACrE;AACA;AACA,2BAA2B,gCAAgC;AAC3D;AACA;AACA;;;;;;;;AC/FA,eAAe,mBAAO,CAAC,MAAc;AACrC,eAAe,mBAAO,CAAC,MAAW;AAClC;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gBAAgB;AACnD,IAAI;AACJ;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AAC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B,mBAAO,CAAC,MAAsB;AACnD;;AAEA;AACA,mBAAO,CAAC,MAAS,qBAAqB,mBAAO,CAAC,MAAQ,4BAA4B,aAAa,EAAE;;AAEjG;AACA,qDAAqD,4BAA4B;AACjF;AACA;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACe;AACf;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,wBAAwB;AAC3D,KAAK;AACL;AACA;AACA;AACA;AACA;;;AC1BA;AAAA;AACA;AACA;AACA;AACA;;AAEyC;;AAEzC;;AAEA;AACA;AACA;AACA;AACA,UAAU,iBAAiB;AAC3B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;;AAEA;;AAEA,eAAe,YAAY;AAC3B;;AAEA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B;AACA,KAAK;AACL;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7Na;;AAEb;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3DA;AACA,cAAc,mBAAO,CAAC,MAAY;AAClC;AACA;AACA;;;;;;;;;ACJa;;AAEb;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,mBAAmB;AACpC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,mBAAmB;AACpC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;AC9Ca;;AAEb;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;ACda;;AAEb,kBAAkB,mBAAO,CAAC,MAAU;;AAEpC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;;;;;;;;ACzDA,cAAc;;;;;;;;ACAd,WAAW,mBAAO,CAAC,MAAS;AAC5B,aAAa,mBAAO,CAAC,MAAW;AAChC;AACA,kDAAkD;;AAElD;AACA,qEAAqE;AACrE,CAAC;AACD;AACA,QAAQ,mBAAO,CAAC,MAAY;AAC5B;AACA,CAAC;;;;;;;;ACXD,aAAa,mBAAO,CAAC,MAAW;AAChC,UAAU,mBAAO,CAAC,MAAQ;AAC1B;AACA;AACA;;;;;;;;;ACJa;AACb,cAAc,mBAAO,CAAC,MAAW;AACjC,gBAAgB,mBAAO,CAAC,MAAe;AACvC,eAAe,mBAAO,CAAC,MAAc;AACrC,YAAY,mBAAO,CAAC,MAAU;AAC9B;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC,MAAM,mBAAO,CAAC,MAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACtBD,6BAA6B;AAC7B,uCAAuC;;;;;;;;ACDvC;AACA;AACA,gBAAgB,mBAAO,CAAC,MAAe;AACvC,eAAe,mBAAO,CAAC,MAAc;AACrC,sBAAsB,mBAAO,CAAC,MAAsB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,YAAY,eAAe;AAChC;AACA,KAAK;AACL;AACA;;;;;;;;;ACtBa;;AAEb;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnDA,aAAa,mBAAO,CAAC,MAAW;AAChC,WAAW,mBAAO,CAAC,MAAS;AAC5B,WAAW,mBAAO,CAAC,MAAS;AAC5B,eAAe,mBAAO,CAAC,MAAa;AACpC,UAAU,mBAAO,CAAC,MAAQ;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,uBAAuB;AACzG,iEAAiE;AACjE,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,eAAe;AACf,eAAe;AACf,eAAe;AACf,gBAAgB;AAChB;;;;;;;;AC1CA,gBAAgB,mBAAO,CAAC,MAAW;AACnC,YAAY,mBAAO,CAAC,MAAgB;AACpC,SAAS,mBAAO,CAAC,MAAc;AAC/B;;AAEA;AACA;AACA;AACA,CAAC;;;;;;;;ACRD,eAAe,mBAAO,CAAC,MAAc;AACrC,qBAAqB,mBAAO,CAAC,MAAc;AAC3C;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;ACRA;AAAA;AAAA;AAAgf,CAAgB,shBAAG,EAAC,C;;;;;;;;ACAvf;;AAEb,cAAc,mBAAO,CAAC,MAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA,aAAa,mBAAO,CAAC,MAAW;AAChC,UAAU,mBAAO,CAAC,MAAQ;AAC1B;AACA;AACA;;;;;;;;ACJA;AACA,UAAU,mBAAO,CAAC,MAAQ;AAC1B;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;AACA;;;;;;;;ACJA,aAAa,mBAAO,CAAC,MAAW;AAChC,WAAW,mBAAO,CAAC,MAAS;AAC5B,UAAU,mBAAO,CAAC,MAAQ;AAC1B,WAAW,mBAAO,CAAC,MAAS;AAC5B,UAAU,mBAAO,CAAC,MAAQ;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA,kFAAkF;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,eAAe;AACf,eAAe;AACf,eAAe;AACf,gBAAgB;AAChB;;;;;;;;AC7DA;AACA,cAAc,mBAAO,CAAC,MAAY;AAClC,cAAc,mBAAO,CAAC,MAAY;AAClC;AACA;AACA;;;;;;;;ACLA,uBAAuB;AACvB;AACA;AACA;;;;;;;;ACHA;AACA,eAAe,mBAAO,CAAC,MAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA,iBAAiB;;AAEjB;AACA;AACA;;;;;;;;ACJA;;AAEA;AACA,cAAc,mBAAO,CAAC,MAAga;AACtb,4CAA4C,QAAS;AACrD;AACA;AACA,UAAU,mBAAO,CAAC,MAA6D;AAC/E,6CAA6C,qCAAqC,E;;;;;;;ACRlF,cAAc,mBAAO,CAAC,MAAW;AACjC,gBAAgB,mBAAO,CAAC,MAAc;AACtC;AACA,0DAA0D,sBAAsB;;;;;;;;ACHhF;AACA;AACA;AACA;AACA;AACA,yCAAyC;;;;;;;;ACLzC,gBAAgB,mBAAO,CAAC,MAAe;AACvC;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA,kBAAkB,mBAAO,CAAC,MAAgB,MAAM,mBAAO,CAAC,MAAU;AAClE,+BAA+B,mBAAO,CAAC,MAAe,gBAAgB,mBAAmB,UAAU,EAAE,EAAE;AACvG,CAAC;;;;;;;;ACFD;AACA;AACA;AACA;;;;;;;;ACHA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;ACNA,UAAU,mBAAO,CAAC,MAAc;AAChC,UAAU,mBAAO,CAAC,MAAQ;AAC1B,UAAU,mBAAO,CAAC,MAAQ;;AAE1B;AACA,oEAAoE,iCAAiC;AACrG;;;;;;;;ACNA,SAAS,mBAAO,CAAC,MAAc;AAC/B;AACA;AACA;;AAEA;AACA,kBAAkB,mBAAO,CAAC,MAAgB;AAC1C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;;;;;;;;ACfD,6BAA6B;AAC7B,uCAAuC;;;;;;;;ACDvC;;;;;;;;ACAA,eAAe,mBAAO,CAAC,MAAc;AACrC,qBAAqB,mBAAO,CAAC,MAAmB;AAChD,kBAAkB,mBAAO,CAAC,MAAiB;AAC3C;;AAEA,YAAY,mBAAO,CAAC,MAAgB;AACpC;AACA;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;AACA;AACA;AACA;;;;;;;;ACfA,mBAAO,CAAC,MAA+B;AACvC,iBAAiB,mBAAO,CAAC,MAAqB;;;;;;;;ACD9C;AACA;AACA,eAAe,mBAAO,CAAC,MAAc;AACrC,eAAe,mBAAO,CAAC,MAAc;AACrC;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA,cAAc,mBAAO,CAAC,MAAQ,iBAAiB,mBAAO,CAAC,MAAgB;AACvE;AACA;AACA,OAAO,YAAY,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;AACA;;;;;;;;ACxBA,mD;;;;;;;ACAA;AACA,kBAAkB,mBAAO,CAAC,MAAU;AACpC,iCAAiC,QAAQ,mBAAmB,UAAU,EAAE,EAAE;AAC1E,CAAC;;;;;;;;ACHD;AACA,UAAU,mBAAO,CAAC,MAAQ;AAC1B;AACA;AACA;;;;;;;;ACJA;AACA,YAAY,mBAAO,CAAC,MAAyB;AAC7C,iBAAiB,mBAAO,CAAC,MAAkB;;AAE3C;AACA;AACA;;;;;;;;ACNA;AACA,gBAAgB,mBAAO,CAAC,MAAe;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA,kBAAkB,mBAAO,CAAC,MAAQ;AAClC;AACA,0CAA0C,mBAAO,CAAC,MAAS,6BAA6B;AACxF;AACA;AACA;;;;;;;;ACNA,2BAA2B,mBAAO,CAAC,MAA+C;AAClF;;;AAGA;AACA,cAAc,QAAS,kBAAkB,gCAAgC,wBAAwB,2CAA2C,mCAAmC,wBAAwB,sBAAsB,kBAAkB,6BAA6B,8CAA8C,sCAAsC,8BAA8B,gDAAgD,OAAO,WAAW,wCAAwC,UAAU,QAAQ,wBAAwB,WAAW,UAAU,sCAAsC,wBAAwB,gBAAgB,UAAU,oCAAoC,eAAe,WAAW,gCAAgC,wBAAwB,UAAU,yBAAyB,sBAAsB,qBAAqB,oBAAoB,iBAAiB,qCAAqC,kBAAkB,WAAW,YAAY,SAAS,QAAQ,oCAAoC,mNAAmN,8BAA8B,oBAAoB,4BAA4B,8BAA8B,8BAA8B,sBAAsB,iBAAiB,yCAAyC,SAAS,OAAO,kCAAkC,6hBAA6hB,2BAA2B,iBAAiB,4BAA4B,8BAA8B,iBAAiB,WAAW,kCAAkC,yBAAyB,sBAAsB,qBAAqB,iBAAiB;;AAEhuE;;;;;;;;ACPA;AACA,gBAAgB,mBAAO,CAAC,MAAe;AACvC;AACA;AACA,2DAA2D;AAC3D;;;;;;;;ACLA;AACA,kBAAkB,mBAAO,CAAC,MAAU;AACpC,iCAAiC,QAAQ,mBAAmB,UAAU,EAAE,EAAE;AAC1E,CAAC;;;;;;;;ACHD,cAAc,mBAAO,CAAC,MAAW;AACjC,cAAc,mBAAO,CAAC,MAAY;AAClC,YAAY,mBAAO,CAAC,MAAU;AAC9B,aAAa,mBAAO,CAAC,MAAc;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC7BA,WAAW,mBAAO,CAAC,MAAqB;AACxC,uCAAuC,4BAA4B;AACnE,yCAAyC;AACzC;AACA;;;;;;;;;ACJa;;AAEb,eAAe,mBAAO,CAAC,MAAc;AACrC,eAAe,mBAAO,CAAC,MAAc;AACrC,eAAe,mBAAO,CAAC,MAAc;AACrC,gBAAgB,mBAAO,CAAC,MAAe;AACvC,yBAAyB,mBAAO,CAAC,MAAyB;AAC1D,iBAAiB,mBAAO,CAAC,MAAyB;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mBAAO,CAAC,MAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;;;;;;;ACrHD,iBAAiB,mBAAO,CAAC,MAAgC,E;;;;;;;ACAzD,iBAAiB,mBAAO,CAAC,MAAmC,E;;;;;;;ACA5D,cAAc,mBAAO,CAAC,MAAW;AACjC,cAAc,mBAAO,CAAC,MAAY;AAClC,YAAY,mBAAO,CAAC,MAAU;AAC9B,aAAa,mBAAO,CAAC,MAAc;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;AC7Ba;;AAEb;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,iBAAiB;AACjB,mCAAmC,sBAAsB;AACzD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,E;;;;;;;AC1CA,iBAAiB,mBAAO,CAAC,MAAsB;AAC/C,cAAc,mBAAO,CAAC,MAAgB;AACtC,eAAe,mBAAO,CAAC,MAAa;AACpC,aAAa,mBAAO,CAAC,MAAW;AAChC,WAAW,mBAAO,CAAC,MAAS;AAC5B,gBAAgB,mBAAO,CAAC,MAAc;AACtC,UAAU,mBAAO,CAAC,MAAQ;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAoD,wBAAwB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA,2BAA2B,mBAAO,CAAC,MAA+C;AAClF;;;AAGA;AACA,cAAc,QAAS,oBAAoB,kBAAkB,mCAAmC,2BAA2B;;AAE3H;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPa;AACb,iBAAiB,mBAAO,CAAC,MAAgB;AACzC,mBAAO,CAAC,MAAW;AACnB;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;;;;;;;;ACRD;AACA,gBAAgB,mBAAO,CAAC,MAAe;AACvC;AACA;AACA,2DAA2D;AAC3D;;;;;;;;;ACLa;;AAEb;;AAEA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,SAAS;AACpB,aAAa,EAAE;AACf;AACA;AACA,kBAAkB,uBAAuB;AACzC;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;;;;;;;;ACAA,mBAAO,CAAC,MAA0B;AAClC,iBAAiB,mBAAO,CAAC,MAAkB;;;;;;;;ACD3C;AACA;AACA;AACA;AACA;;;;;;;;;ACJa;;AAEb,YAAY,mBAAO,CAAC,MAAS;;AAE7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;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,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,mCAAmC,iBAAiB;AACpD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kEAAkE,iBAAiB,YAAY,aAAa,aAAa,kBAAkB,WAAW,YAAY;AAClK;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,2CAA2C,kBAAkB,sBAAsB,wBAAwB;AAC3G;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,8DAA8D,YAAY,kBAAkB,aAAa,oBAAoB,aAAa,cAAc,WAAW,UAAU;AAC7K,8DAA8D,YAAY,kBAAkB,aAAa,oBAAoB;AAC7H,8DAA8D,YAAY,kBAAkB,aAAa,oBAAoB,aAAa,cAAc;AACxJ,8DAA8D,YAAY,kBAAkB,aAAa,oBAAoB,aAAa,cAAc;AACxJ,8DAA8D,SAAS,QAAQ;AAC/E,8DAA8D,aAAa,cAAc;;AAEzF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA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O,CAAC,MAAgC;AACtE,8BAA8B,mBAAO,CAAC,MAAgC;;AAEtE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB;;AAEA;AACA;AACA,UAAU;AACV,cAAc,QAAQ;AACtB;AACA;AACA,cAAc,UAAU;AACxB;AACA,cAAc,SAAS;AACvB;AACA;AACA,cAAc,QAAQ;AACtB;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,qCAAqC,6CAA6C,EAAE;AACpF;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,mFAAmF,qBAAqB;;AAExG;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,kBAAkB;AACjC,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA,8EAA8E;AAC9E;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;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ArBA;AAsBA,2BAtBA;AAwBA,qBAxBA;AAyBA,qBAzBA;AA0BA,qBA1BA;AA2BA,qBA3BA;AA4BA,oBA5BA;AA6BA,oBA7BA;AA8BA,oBA9BA;AA+BA;AA/BA;AAiCA,GAtIA;AAuIA,SAvIA,qBAuIA;AAAA;;AACA,oBADA,CAGA;;AACA;AACA;AACA,KAFA;;AAIA;AACA;AACA,KAFA;;AAIA;AACA;AACA;AACA;AACA,KAJA;;AAMA;AACA;AACA;AACA;AACA,KAJA;;AAMA;AACA;AACA,KAFA;;AAIA;AACA;;AACA;AACA,KAHA;;AAKA;AACA;AACA,KAFA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA,GArLA;AAsLA;AACA,oBADA,CAEA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAVA,CAUA;AACA,GAjMA;AAkMA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA,KAFA,MAEA;AACA;AACA;;AACA;AACA;AACA,KAFA,MAEA;AACA;AACA;;AACA;AACA;AACA,GApNA;AAqNA;AACA;AACA;AACA,KAHA;AAIA;AACA;AACA;AACA,KAPA;AAQA;AACA;AACA,KAVA;AAWA;AACA;AACA,KAbA;AAcA;AACA;AACA,KAhBA;AAiBA;AACA;AACA,KAnBA;AAoBA;AACA;AACA;AACA,KAvBA;AAwBA;AACA;AACA;AACA,KA3BA;AA4BA;AACA;AACA;AACA,KA/BA;AAgCA;AACA;AACA;AACA,KAnCA;AAoCA;AACA;AACA;AACA,KAvCA;AAwCA;AACA;AACA;AACA,KA3CA;AA4CA;AACA;AACA;AACA;AACA;AAhDA,GArNA;AAuQA;AACA,yBADA,mCACA;AACA;AACA,KAHA;AAIA,aAJA,uBAIA;AACA;AACA,KANA;AAOA,aAPA,uBAOA;AACA;AACA,KATA;AAUA,wBAVA,kCAUA;AACA;AACA;AACA,OAFA,MAEA;AACA;AACA;AACA;AAhBA,GAvQA;AAyRA;AACA;AACA;AACA;AACA;AACA,OAHA,MAGA;AACA;AACA;AACA;;AACA;;AAGA;AACA,oCADA,CAEA;;AACA;AACA;AACA,SAFA,MAEA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;AAEA,gBAzBA,CA0BA;;AACA;AACA;AACA;AACA;AACA,SAFA,MAEA;AACA;AACA;AAEA,OARA,MAQA;AAAA;AACA;AACA;AACA;AACA,SAFA,MAEA;AACA;AACA;AACA;;AACA;AAEA,KA9CA;AA+CA;AACA;AACA,+CAFA,CAGA;;AACA,mCAJA,CAIA;;AAJA,UAKA,CALA,GAKA,QALA,CAKA,CALA;AAAA,UAKA,CALA,GAKA,QALA,CAKA,CALA;AAOA;AAAA;AAAA;AAAA;AACA;;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AAAA;AACA;AACA;;AACA;AACA;AACA,aAFA,MAEA;AACA;AACA;;AACA,qEARA,CAUA;;AACA;AACA;AACA;;AACA;AAAA;AACA;AACA;AACA;AACA,wCAJA,CAKA;;AACA;AACA;AACA;AACA;AAlCA,OATA,CA8CA;;;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AAEA;AACA;AACA;;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA,KA7HA;AA8HA,cA9HA,sBA8HA,KA9HA,EA8HA;AACA;AACA;AAEA,+CAJA,CAMA;;AACA,oCAPA,CAOA;;AAPA,UAQA,CARA,GAQA,QARA,CAQA,CARA;AAAA,UAQA,CARA,GAQA,QARA,CAQA,CARA,EAUA;;AACA;AAAA;AAAA;AAAA;;AACA;AACA;AAAA;AACA;AACA;AAEA;AACA;;AACA;AACA;AACA,aAFA,MAEA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;AACA;AAAA;AACA;;AACA;;AACA,mEAHA,CAIA;;;AACA;AACA;AACA,aAFA,MAEA;AACA;AACA;;AACA,gEAVA,CAWA;AACA;;AACA;AACA,oCAdA,CAeA;;AACA;AACA;;AACA;AAAA;AACA,yEADA,CAEA;;AACA;AACA;AACA,aAFA,MAEA;AACA;AACA;;AACA,mEARA,CASA;AACA;AACA;;AACA;AACA;AACA;AAjDA,OAZA,CAgEA;;;AACA;;AACA;AACA;AACA,OAFA,MAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA,KAhNA;AAiNA;AACA,yCADA,CAEA;;AACA;;AACA;AACA;AACA,oEADA;AAEA,wEAFA;AAGA;AACA;AACA;AACA,oGANA;AAOA;AAPA;AASA,OAVA,MAUA;AACA;AACA,mEADA;AAEA,wEAFA;AAGA;AACA;AACA;AACA,oGANA;AAOA;AAPA;AASA;;AAGA;AACA,KA7OA;;AA8OA;;;;;;AAMA;AACA,UArPA,kBAqPA,GArPA,EAqPA,IArPA,EAqPA;AACA,yCADA,CAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA,qFAXA,CAaA;;AACA;AACA;AAEA;AAAA;AAAA;AAAA;AACA,KAvQA;AAwQA;AACA,gBAzQA,0BAyQA;AACA,0FADA,CAEA;;AACA;AACA,KA7QA;;AA+QA;;;;;;AAMA,UArRA,kBAqRA,MArRA,EAqRA,KArRA,EAqRA;AACA,yCADA,CAGA;AACA;AACA;;AACA;AACA,wFAPA,CASA;;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA,KAlSA;AAmSA;AACA;;AACA;AACA;AACA;AACA,KAxSA;AAySA;AACA;AACA,KA3SA;AA4SA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA,yCADA;AAEA;AAFA;AAIA;AACA;;AACA;AACA;AACA;AACA;AACA,WAFA;AAGA;AACA,OAbA,MAaA;AACA;AACA;AADA;AAGA;AACA,KAnUA;AAoUA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA,oEAFA,CAIA;AACA;;AAEA;AACA,mCADA;AAEA;AACA;AACA,uBADA;AAEA,kDAFA;AAGA,mDAHA;AAIA;AAJA,WAHA;AASA,2CATA;AAUA;AACA;AACA,oCADA;AAEA;AAFA,aADA;AAKA;AACA,oCADA;AAEA;AAFA;AALA;AAVA;AAsBA;;AACA;AACA;AACA,2BACA,EADA,CACA,kCADA,EACA;AACA;AACA,WAHA;AAIA;AACA,OArCA,MAqCA;AACA;AACA;AADA;AAGA;AACA,KAnXA;AAoXA;AACA;AACA;AACA;AAEA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AAEA;AACA;AACA;;AACA;AACA;AACA,OAzBA,CA2BA;AACA;;;AAEA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AAzZA;AAzRA,G;;AC/FkU,CAAgB,gHAAG,EAAC,C;;;;;ACAtV;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AC5FuF;AAC3B;AACL;AACa;;;AAGpE;AAC0F;AAC1F,gBAAgB,kBAAU;AAC1B,EAAE,2CAAM;AACR,EAAE,MAAM;AACR,EAAE,eAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEe,8D;;ACnBf,IAAI,8CAAM,gBAAgB,aAAa,0BAA0B,wBAAwB,iBAAiB,iEAAiE,oCAAoC,aAAa,4EAA4E,4CAA4C,+GAA+G;AACnc,IAAI,uDAAe;;;;;;;;ACDnB;AAEA;;;;;;;;AAOA;;;;;;;;;;AAOO,SAASI,sBAAT,CAAgCC;AAAhC;AAAA,EAA0DtH;AAA1D;AAAA;AAAA;AAAqF;AAC1F,MAAMlC,MAAM,GAAGyJ,eAAe,CAACD,WAAD,CAA9B;AACA,MAAIE,QAAQ,GAAG1J,MAAM,CA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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;AAGA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA,CAAC,EAAE,wFAAwF;AAC3F;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF;AACjF;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,+BAA+B;AACtD;AACA,aAAa,QAAQ;AACrB,cAAc,OAAO;AACrB;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,8BAA8B;AAC9B,cAAc,kBAAkB;AAChC;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,2BAA2B;AACjD;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,0BAA0B;AACvC,uCAAuC,aAAa;AACpD;AACA;AACA,cAAc,OAAO;AACrB;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,iBAAiB;AACjB,cAAc,gBAAgB;AAC9B;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,KAAK;AACnB;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B;AACA,cAAc,aAAa;AAC3B;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,wBAAwB;AAC/C;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,wBAAwB;AACrC;AACA,aAAa,SAAS;AACtB,aAAa,iBAAiB;AAC9B;AACA,cAAc,OAAO;AACrB;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,wBAAwB;AACrC;AACA,aAAa,SAAS;AACtB,aAAa,iBAAiB;AAC9B;AACA,cAAc,OAAO;AACrB;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,cAAc,OAAO;AACrB;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,qBAAqB,2CAA2C;AAChE;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,2BAA2B,qBAAqB;;AAEhD;;AAEA;AACA,qBAAqB,yCAAyC;AAC9D;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA,iBAAiB,iBAAiB;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,mBAAmB,mBAAmB;AACtC;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,sPAAsP;AACzP;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,uBAAuB;AACvB,wBAAwB;;AAExB,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,aAAa;AAC1B,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,eAAe,aAAa;AAC5B;AACA;;AAEA;AACA;AACA,aAAa,aAAa;AAC1B,eAAe,aAAa;AAC5B;AACA;;AAEA;AACA;AACA,aAAa,qCAAqC;AAClD,eAAe,qCAAqC;AACpD;AACA;;AAEA,0BAA0B;AAC1B;;AAEA;AACA;;AAEA,0BAA0B;;AAE1B;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,8BAA8B,eAAe;AAC7C;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,qBAAqB;AAClE;AACA;AACA,aAAa,OAAO;AACpB,aAAa,aAAa;AAC1B,aAAa,QAAQ;AACrB,cAAc,OAAO;AACrB;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,QAAQ,eAAe;AAChE;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,iBAAiB;;AAEtB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B;;;AAGA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;AAGA;AACA,0BAA0B,oBAAoB;;AAE9C;AACA,mCAAmC,oBAAoB;AACvD,kDAAkD,oBAAoB;AACtE;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED,gBAAgB,yBAAyB;AACzC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB;;AAErB;AACA;;AAEA,uBAAuB,mCAAmC;AAC1D;;AAEA;AACA;;AAEA;AACA;;AAEA,+DAA+D,2BAA2B;AAC1F;AACA,KAAK;AACL;;AAEA;AACA;AACA,uBAAuB,kDAAkD;AACzE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0CAA0C,2BAA2B;AACrE;;AAEA;AACA;AACA;;AAEA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,iCAAiC;AACpD;;AAEA;AACA;;AAEA;AACA,4BAA4B,yCAAyC;AACrE;AACA;;AAEA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,yEAAyE,iBAAiB;AAC1F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,+IAA+I;AAClJ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,wCAAwC;AAC3C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA,kCAAkC,sGAAsG;AACxI,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,mCAAmC;AACnC,mCAAmC;AACnC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA;AACA,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,4GAA4G;AAC/G;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA,kBAAkB,iCAAiC;AACnD;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,qBAAqB,2BAA2B;AAChD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB,kCAAkC;AACnD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,kCAAkC;AACnD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,8CAA8C;AAC/D;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uCAAuC,oBAAoB;;AAE3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,eAAe;;AAEnD;AACA;AACA;AACA;AACA,wCAAwC,uBAAuB;;AAE/D;AACA;AACA;AACA;AACA,0CAA0C,yBAAyB;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA;AACA,gCAAgC;AAChC,iCAAiC;AACjC,oCAAoC;AACpC,qCAAqC;AACrC,gCAAgC;;AAEhC;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,mBAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,2IAA2I;AAC9I;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,cAAc;AACd;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,mCAAmC;AACnC,mCAAmC;AACnC,mCAAmC;AACnC;AACA;AACA,kCAAkC,6BAA6B;AAC/D;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,YAAY,aAAa;;AAEzB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,4GAA4G;AAC/G;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA,8BAA8B;AAC9B;;AAEA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;;AAErC;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B;AAC5B,6BAA6B;AAC7B,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,iCAAiC;AACjC,iCAAiC;AACjC,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,6BAA6B;AACjE;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA;AACA,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,kIAAkI;AACrI;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA;;AAEA,CAAC,EAAE,mHAAmH;AACtH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sBAAsB,mDAAmD;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA,WAAW,wBAAwB;AACnC;AACA,YAAY,0BAA0B;AACtC;AACA;AACA;AACA;AACA,CAAC,6EAA6E,qBAAqB;;AAEnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,WAAW,wBAAwB;AACnC;AACA,YAAY,0BAA0B;AACtC;AACA;AACA;AACA;AACA,CAAC,4EAA4E,oBAAoB;;AAEjG;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA,YAAY,wBAAwB;AACpC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,kBAAkB,2BAA2B;AAC7C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,CAAC,EAAE,8FAA8F;AACjG;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,uCAAuC,SAAS;AAChD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,4BAA4B,2BAA2B;AACvD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB,gCAAgC;AAClD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,gLAAgL;AACnL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,CAAC,EAAE,sFAAsF;AACzF;;AAEA;;AAEA,CAAC,EAAE,mCAAmC;AACtC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,CAAC,EAAE,+BAA+B;AAClC;;AAEA;;AAEA,CAAC,EAAE,mCAAmC;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,aAAa,aAAa;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC,GAAG;AACJ;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,CAAC,EAAE,+eAA+e;AAClf;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB;;AAEhB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B;AAC5B;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,CAAC,EAAE,0FAA0F;AAC7F;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC,WAAW,SAAS;AACpB,WAAW,iBAAiB;AAC5B;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,kBAAkB;AACtC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,kDAAkD,mBAAmB;AACrE;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC;AACA,WAAW,SAAS;AACpB,WAAW,iBAAiB;AAC5B;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,mBAAmB;AACxC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,wGAAwG;AAC3G;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,sBAAsB;AAClC;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,mCAAmC,WAAW;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,iCAAiC;AACpD;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,CAAC,EAAE,iIAAiI;AACpI;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,6BAA6B;AACjD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC;;AAElC,qBAAqB,8BAA8B;AACnD;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA,qBAAqB,8BAA8B;AACnD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8BAA8B;AAC9B;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA,qBAAqB,8BAA8B;AACnD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA,+BAA+B;;AAE/B,mBAAmB,4BAA4B;AAC/C;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B;AAC7B;AACA,2DAA2D;AAC3D;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,6DAA6D;AAChE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qCAAqC,2BAA2B,kBAAkB;;AAElF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,iDAAiD;AACpD;;AAEA;AACA;AACA;AACA;AACA,aAAa,wBAAwB;AACrC;AACA,eAAe,+CAA+C;AAC9D,eAAe,+CAA+C;AAC9D,MAAM;AACN,IAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,eAAe;AACf,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA,4BAA4B;AAC5B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,qCAAqC,2BAA2B,kBAAkB;AAClF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,CAAC,EAAE,2GAA2G;AAC9G;;AAEA;AACA;AACA;AACA;AACA,aAAa,wBAAwB;AACrC;AACA,aAAa,4BAA4B;AACzC,aAAa,4BAA4B;AACzC,MAAM;AACN,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa;AACb,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B;AAC5B,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,CAAC,EAAE,gHAAgH;AACnH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA,kDAAkD;AAClD;;AAEA;AACA,sBAAsB,oCAAoC;AAC1D;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd,KAAK;AACL;;AAEA,4BAA4B;;AAE5B;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,qBAAqB,sBAAsB;AAC3C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,uBAAuB,sCAAsC;AAC7D;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,SAAS;AAC9C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,kEAAkE;AACrE;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,eAAe,aAAa;AAC5B;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA,8BAA8B;AAC9B;AACA;;AAEA,iCAAiC;AACjC;;AAEA,oBAAoB,qCAAqC;AACzD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;;AAGA,iCAAiC;AACjC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,CAAC,EAAE,qFAAqF;AACxF;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;AAGA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;;AAEA;AACA,CAAC;;AAED,CAAC,EAAE,2BAA2B;AAC9B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,oBAAoB;AACrC;;AAEA,uCAAuC;AACvC;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,kBAAkB;AACpC;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,0CAA0C;AAC1C,CAAC;;AAED;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,mBAAmB;AACtC;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,mBAAmB,gCAAgC;AACnD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,kGAAkG;AAC5G;AACA,CAAC;;AAED;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,iGAAiG;AAC3G;AACA;;AAEA,eAAe,0BAA0B;AACzC;AACA;;AAEA;AACA,6BAA6B;AAC7B,0BAA0B;AAC1B,8BAA8B,MAAM,oBAAoB;AACxD,CAAC;;AAED;AACA;;AAEA,CAAC,EAAE,kGAAkG;AACrG;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,CAAC,EAAE,+BAA+B;AAClC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,gBAAgB;AAChB,OAAO;AACP;AACA,GAAG;AACH,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,CAAC,EAAE,sGAAsG;AACzG;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC,qBAAqB;AACvD,GAAG;;AAEH;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,qCAAqC,qBAAqB;AAC1D,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,kGAAkG;AACrG;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,6BAA6B;AACjD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;;AAEA,CAAC,GAAG;AACJ;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB,oBAAoB;AACtC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,CAAC,GAAG;AACJ;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA,CAAC,EAAE,0CAA0C;AAC7C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA,CAAC,EAAE,UAAU;AACb;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,cAAc;AACjB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,qBAAqB;AACpC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,yDAAyD;AAC5D;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA,KAAK;AACL,sBAAsB,UAAU;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,wBAAwB;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8CAA8C,YAAY;AAC1D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,8CAA8C,YAAY;AAC1D;AACA;;AAEA;;AAEA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,mBAAmB,gCAAgC;AACnD;AACA;;AAEA;;AAEA;;AAEA;;AAEA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qCAAqC;AACrC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,CAAC,EAAE,4FAA4F;AAC/F;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC,GAAG;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,kCAAkC;AAClC;;AAEA,CAAC,EAAE,YAAY;AACf;;AAEA;AACA;AACA;;AAEA,CAAC,GAAG;AACJ;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,iIAAiI;AACpI;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB;;AAEnB,oBAAoB,gCAAgC;AACpD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,iCAAiC;AACtD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,qBAAqB,iCAAiC;AACtD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,iCAAiC;AACtD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA,qBAAqB,iCAAiC;AACtD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA,qBAAqB,iCAAiC;AACtD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,2BAA2B;AAC9B;;AAEA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q;AACA;;AAEA;AACA,4BAA4B;;AAE5B;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,8BAA8B;AACjC;;AAEA;AACA;AACA;;AAEA,CAAC,GAAG;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,GAAG;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,sBAAsB;AAC1C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,6FAA6F;AAChG;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,eAAe,qDAAqD;AACpE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,CAAC,EAAE,cAAc;AACjB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,wCAAwC;AAC3C;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA,CAAC,EAAE,gBAAgB,EAAE,GAAG;AACxB,CAAC;;;AAGD;;;;;;;;ACngOA;AACA","file":"vue-grid-layout.umd.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"vue\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"VueGridLayout\"] = factory(require(\"vue\"));\n\telse\n\t\troot[\"VueGridLayout\"] = factory(root[\"Vue\"]);\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__8bbf__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar at = require('./_string-at')(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// style-loader: Adds some css to the DOM by adding a \r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GridItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GridItem.vue?vue&type=script&lang=js&\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./GridItem.vue?vue&type=template&id=6724f499&\"\nimport script from \"./GridItem.vue?vue&type=script&lang=js&\"\nexport * from \"./GridItem.vue?vue&type=script&lang=js&\"\nimport style0 from \"./GridItem.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"item\",staticClass:\"vue-grid-layout\",style:(_vm.mergedStyle)},[_vm._t(\"default\"),_c('grid-item',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isDragging),expression:\"isDragging\"}],staticClass:\"vue-grid-placeholder\",attrs:{\"x\":_vm.placeholder.x,\"y\":_vm.placeholder.y,\"w\":_vm.placeholder.w,\"h\":_vm.placeholder.h,\"i\":_vm.placeholder.i}})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","// @flow\r\n\r\nimport {cloneLayout, compact, correctBounds} from './utils';\r\n\r\nimport type {Layout} from './utils';\r\nexport type ResponsiveLayout = {lg?: Layout, md?: Layout, sm?: Layout, xs?: Layout, xxs?: Layout};\r\ntype Breakpoint = string;\r\ntype Breakpoints = {lg?: number, md?: number, sm?: number, xs?: number, xxs?: number};\r\n\r\n/**\r\n * Given a width, find the highest breakpoint that matches is valid for it (width > breakpoint).\r\n *\r\n * @param {Object} breakpoints Breakpoints object (e.g. {lg: 1200, md: 960, ...})\r\n * @param {Number} width Screen width.\r\n * @return {String} Highest breakpoint that is less than width.\r\n */\r\nexport function getBreakpointFromWidth(breakpoints: Breakpoints, width: number): Breakpoint {\r\n const sorted = sortBreakpoints(breakpoints);\r\n let matching = sorted[0];\r\n for (let i = 1, len = sorted.length; i < len; i++) {\r\n const breakpointName = sorted[i];\r\n if (width > breakpoints[breakpointName]) matching = breakpointName;\r\n }\r\n return matching;\r\n}\r\n\r\n\r\n/**\r\n * Given a breakpoint, get the # of cols set for it.\r\n * @param {String} breakpoint Breakpoint name.\r\n * @param {Object} cols Map of breakpoints to cols.\r\n * @return {Number} Number of cols.\r\n */\r\nexport function getColsFromBreakpoint(breakpoint: Breakpoint, cols: Breakpoints): number {\r\n if (!cols[breakpoint]) {\r\n throw new Error(\"ResponsiveGridLayout: `cols` entry for breakpoint \" + breakpoint + \" is missing!\");\r\n }\r\n return cols[breakpoint];\r\n}\r\n\r\n/**\r\n * Given existing layouts and a new breakpoint, find or generate a new layout.\r\n *\r\n * This finds the layout above the new one and generates from it, if it exists.\r\n *\r\n * @param {Array} orgLayout Original layout.\r\n * @param {Object} layouts Existing layouts.\r\n * @param {Array} breakpoints All breakpoints.\r\n * @param {String} breakpoint New breakpoint.\r\n * @param {String} breakpoint Last breakpoint (for fallback).\r\n * @param {Number} cols Column count at new breakpoint.\r\n * @param {Boolean} verticalCompact Whether or not to compact the layout\r\n * vertically.\r\n * @return {Array} New layout.\r\n */\r\nexport function findOrGenerateResponsiveLayout(orgLayout: Layout, layouts: ResponsiveLayout, breakpoints: Breakpoints,\r\n breakpoint: Breakpoint, lastBreakpoint: Breakpoint,\r\n cols: number, verticalCompact: boolean): Layout {\r\n // If it already exists, just return it.\r\n if (layouts[breakpoint]) return cloneLayout(layouts[breakpoint]);\r\n // Find or generate the next layout\r\n let layout = orgLayout;\r\n\r\n const breakpointsSorted = sortBreakpoints(breakpoints);\r\n const breakpointsAbove = breakpointsSorted.slice(breakpointsSorted.indexOf(breakpoint));\r\n for (let i = 0, len = breakpointsAbove.length; i < len; i++) {\r\n const b = breakpointsAbove[i];\r\n if (layouts[b]) {\r\n layout = layouts[b];\r\n break;\r\n }\r\n }\r\n layout = cloneLayout(layout || []); // clone layout so we don't modify existing items\r\n return compact(correctBounds(layout, {cols: cols}), verticalCompact);\r\n}\r\n\r\nexport function generateResponsiveLayout(layout: Layout, breakpoints: Breakpoints,\r\n breakpoint: Breakpoint, lastBreakpoint: Breakpoint,\r\n cols: number, verticalCompact: boolean): Layout {\r\n // If it already exists, just return it.\r\n /*if (layouts[breakpoint]) return cloneLayout(layouts[breakpoint]);\r\n // Find or generate the next layout\r\n let layout = layouts[lastBreakpoint];*/\r\n /*const breakpointsSorted = sortBreakpoints(breakpoints);\r\n const breakpointsAbove = breakpointsSorted.slice(breakpointsSorted.indexOf(breakpoint));\r\n for (let i = 0, len = breakpointsAbove.length; i < len; i++) {\r\n const b = breakpointsAbove[i];\r\n if (layouts[b]) {\r\n layout = layouts[b];\r\n break;\r\n }\r\n }*/\r\n layout = cloneLayout(layout || []); // clone layout so we don't modify existing items\r\n return compact(correctBounds(layout, {cols: cols}), verticalCompact);\r\n}\r\n\r\n/**\r\n * Given breakpoints, return an array of breakpoints sorted by width. This is usually\r\n * e.g. ['xxs', 'xs', 'sm', ...]\r\n *\r\n * @param {Object} breakpoints Key/value pair of breakpoint names to widths.\r\n * @return {Array} Sorted breakpoints.\r\n */\r\nexport function sortBreakpoints(breakpoints: Breakpoints): Array {\r\n const keys: Array = Object.keys(breakpoints);\r\n return keys.sort(function(a, b) {\r\n return breakpoints[a] - breakpoints[b];\r\n });\r\n}\r\n","\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GridLayout.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GridLayout.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./GridLayout.vue?vue&type=template&id=ba4fc54e&\"\nimport script from \"./GridLayout.vue?vue&type=script&lang=js&\"\nexport * from \"./GridLayout.vue?vue&type=script&lang=js&\"\nimport style0 from \"./GridLayout.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\";\r\nimport GridItem from './GridItem.vue';\r\nimport GridLayout from './GridLayout.vue';\r\n// import ResponsiveGridLayout from './ResponsiveGridLayout.vue';\r\n\r\n\r\nconst VueGridLayout = {\r\n // ResponsiveGridLayout,\r\n GridLayout,\r\n GridItem\r\n}\r\n\r\n// module.exports = VueGridLayout;\r\n\r\nObject.keys(VueGridLayout).forEach(name => {\r\n Vue.component(name, VueGridLayout[name]);\r\n});\r\n\r\nexport default VueGridLayout;\r\nexport { GridLayout, GridItem };","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n","/**\n * interact.js v1.3.4\n *\n * Copyright (c) 2012-2018 Taye Adeyemi \n * Released under the MIT License.\n * https://raw.github.com/taye/interact.js/master/LICENSE\n */\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.interact = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o 6 && arguments[6] !== undefined ? arguments[6] : false;\n\n _classCallCheck(this, InteractEvent);\n\n var target = interaction.target;\n var deltaSource = (target && target.options || defaults).deltaSource;\n var origin = getOriginXY(target, element, action);\n var starting = phase === 'start';\n var ending = phase === 'end';\n var coords = starting ? interaction.startCoords : interaction.curCoords;\n var prevEvent = interaction.prevEvent;\n\n element = element || interaction.element;\n\n var page = extend({}, coords.page);\n var client = extend({}, coords.client);\n\n page.x -= origin.x;\n page.y -= origin.y;\n\n client.x -= origin.x;\n client.y -= origin.y;\n\n this.ctrlKey = event.ctrlKey;\n this.altKey = event.altKey;\n this.shiftKey = event.shiftKey;\n this.metaKey = event.metaKey;\n this.button = event.button;\n this.buttons = event.buttons;\n this.target = element;\n this.currentTarget = element;\n this.relatedTarget = related || null;\n this.preEnd = preEnd;\n this.type = action + (phase || '');\n this.interaction = interaction;\n this.interactable = target;\n\n this.t0 = starting ? interaction.downTimes[interaction.downTimes.length - 1] : prevEvent.t0;\n\n var signalArg = {\n interaction: interaction,\n event: event,\n action: action,\n phase: phase,\n element: element,\n related: related,\n page: page,\n client: client,\n coords: coords,\n starting: starting,\n ending: ending,\n deltaSource: deltaSource,\n iEvent: this\n };\n\n signals.fire('set-xy', signalArg);\n\n if (ending) {\n // use previous coords when ending\n this.pageX = prevEvent.pageX;\n this.pageY = prevEvent.pageY;\n this.clientX = prevEvent.clientX;\n this.clientY = prevEvent.clientY;\n } else {\n this.pageX = page.x;\n this.pageY = page.y;\n this.clientX = client.x;\n this.clientY = client.y;\n }\n\n this.x0 = interaction.startCoords.page.x - origin.x;\n this.y0 = interaction.startCoords.page.y - origin.y;\n this.clientX0 = interaction.startCoords.client.x - origin.x;\n this.clientY0 = interaction.startCoords.client.y - origin.y;\n\n signals.fire('set-delta', signalArg);\n\n this.timeStamp = coords.timeStamp;\n this.dt = interaction.pointerDelta.timeStamp;\n this.duration = this.timeStamp - this.t0;\n\n // speed and velocity in pixels per second\n this.speed = interaction.pointerDelta[deltaSource].speed;\n this.velocityX = interaction.pointerDelta[deltaSource].vx;\n this.velocityY = interaction.pointerDelta[deltaSource].vy;\n\n this.swipe = ending || phase === 'inertiastart' ? this.getSwipe() : null;\n\n signals.fire('new', signalArg);\n }\n\n InteractEvent.prototype.getSwipe = function getSwipe() {\n var interaction = this.interaction;\n\n if (interaction.prevEvent.speed < 600 || this.timeStamp - interaction.prevEvent.timeStamp > 150) {\n return null;\n }\n\n var angle = 180 * Math.atan2(interaction.prevEvent.velocityY, interaction.prevEvent.velocityX) / Math.PI;\n var overlap = 22.5;\n\n if (angle < 0) {\n angle += 360;\n }\n\n var left = 135 - overlap <= angle && angle < 225 + overlap;\n var up = 225 - overlap <= angle && angle < 315 + overlap;\n\n var right = !left && (315 - overlap <= angle || angle < 45 + overlap);\n var down = !up && 45 - overlap <= angle && angle < 135 + overlap;\n\n return {\n up: up,\n down: down,\n left: left,\n right: right,\n angle: angle,\n speed: interaction.prevEvent.speed,\n velocity: {\n x: interaction.prevEvent.velocityX,\n y: interaction.prevEvent.velocityY\n }\n };\n };\n\n InteractEvent.prototype.preventDefault = function preventDefault() {};\n\n /** */\n\n\n InteractEvent.prototype.stopImmediatePropagation = function stopImmediatePropagation() {\n this.immediatePropagationStopped = this.propagationStopped = true;\n };\n\n /** */\n\n\n InteractEvent.prototype.stopPropagation = function stopPropagation() {\n this.propagationStopped = true;\n };\n\n return InteractEvent;\n}();\n\nsignals.on('set-delta', function (_ref) {\n var iEvent = _ref.iEvent,\n interaction = _ref.interaction,\n starting = _ref.starting,\n deltaSource = _ref.deltaSource;\n\n var prevEvent = starting ? iEvent : interaction.prevEvent;\n\n if (deltaSource === 'client') {\n iEvent.dx = iEvent.clientX - prevEvent.clientX;\n iEvent.dy = iEvent.clientY - prevEvent.clientY;\n } else {\n iEvent.dx = iEvent.pageX - prevEvent.pageX;\n iEvent.dy = iEvent.pageY - prevEvent.pageY;\n }\n});\n\nInteractEvent.signals = signals;\n\nmodule.exports = InteractEvent;\n\n},{\"./defaultOptions\":18,\"./utils/Signals\":34,\"./utils/extend\":41,\"./utils/getOriginXY\":42}],4:[function(require,module,exports){\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar clone = require('./utils/clone');\nvar is = require('./utils/is');\nvar events = require('./utils/events');\nvar extend = require('./utils/extend');\nvar actions = require('./actions/base');\nvar scope = require('./scope');\nvar Eventable = require('./Eventable');\nvar defaults = require('./defaultOptions');\nvar signals = require('./utils/Signals').new();\n\nvar _require = require('./utils/domUtils'),\n getElementRect = _require.getElementRect,\n nodeContains = _require.nodeContains,\n trySelector = _require.trySelector,\n matchesSelector = _require.matchesSelector;\n\nvar _require2 = require('./utils/window'),\n getWindow = _require2.getWindow;\n\nvar _require3 = require('./utils/arr'),\n contains = _require3.contains;\n\nvar _require4 = require('./utils/browser'),\n wheelEvent = _require4.wheelEvent;\n\n// all set interactables\n\n\nscope.interactables = [];\n\nvar Interactable = function () {\n /** */\n function Interactable(target, options) {\n _classCallCheck(this, Interactable);\n\n options = options || {};\n\n this.target = target;\n this.events = new Eventable();\n this._context = options.context || scope.document;\n this._win = getWindow(trySelector(target) ? this._context : target);\n this._doc = this._win.document;\n\n signals.fire('new', {\n target: target,\n options: options,\n interactable: this,\n win: this._win\n });\n\n scope.addDocument(this._doc, this._win);\n\n scope.interactables.push(this);\n\n this.set(options);\n }\n\n Interactable.prototype.setOnEvents = function setOnEvents(action, phases) {\n var onAction = 'on' + action;\n\n if (is.function(phases.onstart)) {\n this.events[onAction + 'start'] = phases.onstart;\n }\n if (is.function(phases.onmove)) {\n this.events[onAction + 'move'] = phases.onmove;\n }\n if (is.function(phases.onend)) {\n this.events[onAction + 'end'] = phases.onend;\n }\n if (is.function(phases.oninertiastart)) {\n this.events[onAction + 'inertiastart'] = phases.oninertiastart;\n }\n\n return this;\n };\n\n Interactable.prototype.setPerAction = function setPerAction(action, options) {\n // for all the default per-action options\n for (var option in options) {\n // if this option exists for this action\n if (option in defaults[action]) {\n // if the option in the options arg is an object value\n if (is.object(options[option])) {\n // duplicate the object and merge\n this.options[action][option] = clone(this.options[action][option] || {});\n extend(this.options[action][option], options[option]);\n\n if (is.object(defaults.perAction[option]) && 'enabled' in defaults.perAction[option]) {\n this.options[action][option].enabled = options[option].enabled === false ? false : true;\n }\n } else if (is.bool(options[option]) && is.object(defaults.perAction[option])) {\n this.options[action][option].enabled = options[option];\n } else if (options[option] !== undefined) {\n // or if it's not undefined, do a plain assignment\n this.options[action][option] = options[option];\n }\n }\n }\n };\n\n /**\n * The default function to get an Interactables bounding rect. Can be\n * overridden using {@link Interactable.rectChecker}.\n *\n * @param {Element} [element] The element to measure.\n * @return {object} The object's bounding rectangle.\n */\n\n\n Interactable.prototype.getRect = function getRect(element) {\n element = element || this.target;\n\n if (is.string(this.target) && !is.element(element)) {\n element = this._context.querySelector(this.target);\n }\n\n return getElementRect(element);\n };\n\n /**\n * Returns or sets the function used to calculate the interactable's\n * element's rectangle\n *\n * @param {function} [checker] A function which returns this Interactable's\n * bounding rectangle. See {@link Interactable.getRect}\n * @return {function | object} The checker function or this Interactable\n */\n\n\n Interactable.prototype.rectChecker = function rectChecker(checker) {\n if (is.function(checker)) {\n this.getRect = checker;\n\n return this;\n }\n\n if (checker === null) {\n delete this.options.getRect;\n\n return this;\n }\n\n return this.getRect;\n };\n\n Interactable.prototype._backCompatOption = function _backCompatOption(optionName, newValue) {\n if (trySelector(newValue) || is.object(newValue)) {\n this.options[optionName] = newValue;\n\n for (var _i = 0; _i < actions.names.length; _i++) {\n var _ref;\n\n _ref = actions.names[_i];\n var action = _ref;\n\n this.options[action][optionName] = newValue;\n }\n\n return this;\n }\n\n return this.options[optionName];\n };\n\n /**\n * Gets or sets the origin of the Interactable's element. The x and y\n * of the origin will be subtracted from action event coordinates.\n *\n * @param {Element | object | string} [origin] An HTML or SVG Element whose\n * rect will be used, an object eg. { x: 0, y: 0 } or string 'parent', 'self'\n * or any CSS selector\n *\n * @return {object} The current origin or this Interactable\n */\n\n\n Interactable.prototype.origin = function origin(newValue) {\n return this._backCompatOption('origin', newValue);\n };\n\n /**\n * Returns or sets the mouse coordinate types used to calculate the\n * movement of the pointer.\n *\n * @param {string} [newValue] Use 'client' if you will be scrolling while\n * interacting; Use 'page' if you want autoScroll to work\n * @return {string | object} The current deltaSource or this Interactable\n */\n\n\n Interactable.prototype.deltaSource = function deltaSource(newValue) {\n if (newValue === 'page' || newValue === 'client') {\n this.options.deltaSource = newValue;\n\n return this;\n }\n\n return this.options.deltaSource;\n };\n\n /**\n * Gets the selector context Node of the Interactable. The default is\n * `window.document`.\n *\n * @return {Node} The context Node of this Interactable\n */\n\n\n Interactable.prototype.context = function context() {\n return this._context;\n };\n\n Interactable.prototype.inContext = function inContext(element) {\n return this._context === element.ownerDocument || nodeContains(this._context, element);\n };\n\n /**\n * Calls listeners for the given InteractEvent type bound globally\n * and directly to this Interactable\n *\n * @param {InteractEvent} iEvent The InteractEvent object to be fired on this\n * Interactable\n * @return {Interactable} this Interactable\n */\n\n\n Interactable.prototype.fire = function fire(iEvent) {\n this.events.fire(iEvent);\n\n return this;\n };\n\n Interactable.prototype._onOffMultiple = function _onOffMultiple(method, eventType, listener, options) {\n if (is.string(eventType) && eventType.search(' ') !== -1) {\n eventType = eventType.trim().split(/ +/);\n }\n\n if (is.array(eventType)) {\n for (var _i2 = 0; _i2 < eventType.length; _i2++) {\n var _ref2;\n\n _ref2 = eventType[_i2];\n var type = _ref2;\n\n this[method](type, listener, options);\n }\n\n return true;\n }\n\n if (is.object(eventType)) {\n for (var prop in eventType) {\n this[method](prop, eventType[prop], listener);\n }\n\n return true;\n }\n };\n\n /**\n * Binds a listener for an InteractEvent, pointerEvent or DOM event.\n *\n * @param {string | array | object} eventType The types of events to listen\n * for\n * @param {function} listener The function event (s)\n * @param {object | boolean} [options] options object or useCapture flag\n * for addEventListener\n * @return {object} This Interactable\n */\n\n\n Interactable.prototype.on = function on(eventType, listener, options) {\n if (this._onOffMultiple('on', eventType, listener, options)) {\n return this;\n }\n\n if (eventType === 'wheel') {\n eventType = wheelEvent;\n }\n\n if (contains(Interactable.eventTypes, eventType)) {\n this.events.on(eventType, listener);\n }\n // delegated event for selector\n else if (is.string(this.target)) {\n events.addDelegate(this.target, this._context, eventType, listener, options);\n } else {\n events.add(this.target, eventType, listener, options);\n }\n\n return this;\n };\n\n /**\n * Removes an InteractEvent, pointerEvent or DOM event listener\n *\n * @param {string | array | object} eventType The types of events that were\n * listened for\n * @param {function} listener The listener function to be removed\n * @param {object | boolean} [options] options object or useCapture flag for\n * removeEventListener\n * @return {object} This Interactable\n */\n\n\n Interactable.prototype.off = function off(eventType, listener, options) {\n if (this._onOffMultiple('off', eventType, listener, options)) {\n return this;\n }\n\n if (eventType === 'wheel') {\n eventType = wheelEvent;\n }\n\n // if it is an action event type\n if (contains(Interactable.eventTypes, eventType)) {\n this.events.off(eventType, listener);\n }\n // delegated event\n else if (is.string(this.target)) {\n events.removeDelegate(this.target, this._context, eventType, listener, options);\n }\n // remove listener from this Interatable's element\n else {\n events.remove(this.target, eventType, listener, options);\n }\n\n return this;\n };\n\n /**\n * Reset the options of this Interactable\n *\n * @param {object} options The new settings to apply\n * @return {object} This Interactable\n */\n\n\n Interactable.prototype.set = function set(options) {\n if (!is.object(options)) {\n options = {};\n }\n\n this.options = clone(defaults.base);\n\n var perActions = clone(defaults.perAction);\n\n for (var actionName in actions.methodDict) {\n var methodName = actions.methodDict[actionName];\n\n this.options[actionName] = clone(defaults[actionName]);\n\n this.setPerAction(actionName, perActions);\n\n this[methodName](options[actionName]);\n }\n\n for (var _i3 = 0; _i3 < Interactable.settingsMethods.length; _i3++) {\n var _ref3;\n\n _ref3 = Interactable.settingsMethods[_i3];\n var setting = _ref3;\n\n this.options[setting] = defaults.base[setting];\n\n if (setting in options) {\n this[setting](options[setting]);\n }\n }\n\n signals.fire('set', {\n options: options,\n interactable: this\n });\n\n return this;\n };\n\n /**\n * Remove this interactable from the list of interactables and remove it's\n * action capabilities and event listeners\n *\n * @return {interact}\n */\n\n\n Interactable.prototype.unset = function unset() {\n events.remove(this.target, 'all');\n\n if (is.string(this.target)) {\n // remove delegated events\n for (var type in events.delegatedEvents) {\n var delegated = events.delegatedEvents[type];\n\n if (delegated.selectors[0] === this.target && delegated.contexts[0] === this._context) {\n\n delegated.selectors.splice(0, 1);\n delegated.contexts.splice(0, 1);\n delegated.listeners.splice(0, 1);\n\n // remove the arrays if they are empty\n if (!delegated.selectors.length) {\n delegated[type] = null;\n }\n }\n\n events.remove(this._context, type, events.delegateListener);\n events.remove(this._context, type, events.delegateUseCapture, true);\n }\n } else {\n events.remove(this, 'all');\n }\n\n signals.fire('unset', { interactable: this });\n\n scope.interactables.splice(scope.interactables.indexOf(this), 1);\n\n // Stop related interactions when an Interactable is unset\n for (var _i4 = 0; _i4 < (scope.interactions || []).length; _i4++) {\n var _ref4;\n\n _ref4 = (scope.interactions || [])[_i4];\n var interaction = _ref4;\n\n if (interaction.target === this && interaction.interacting() && !interaction._ending) {\n interaction.stop();\n }\n }\n\n return scope.interact;\n };\n\n return Interactable;\n}();\n\nscope.interactables.indexOfElement = function indexOfElement(target, context) {\n context = context || scope.document;\n\n for (var i = 0; i < this.length; i++) {\n var interactable = this[i];\n\n if (interactable.target === target && interactable._context === context) {\n return i;\n }\n }\n return -1;\n};\n\nscope.interactables.get = function interactableGet(element, options, dontCheckInContext) {\n var ret = this[this.indexOfElement(element, options && options.context)];\n\n return ret && (is.string(element) || dontCheckInContext || ret.inContext(element)) ? ret : null;\n};\n\nscope.interactables.forEachMatch = function (element, callback) {\n for (var _i5 = 0; _i5 < this.length; _i5++) {\n var _ref5;\n\n _ref5 = this[_i5];\n var interactable = _ref5;\n\n var ret = void 0;\n\n if ((is.string(interactable.target)\n // target is a selector and the element matches\n ? is.element(element) && matchesSelector(element, interactable.target) :\n // target is the element\n element === interactable.target) &&\n // the element is in context\n interactable.inContext(element)) {\n ret = callback(interactable);\n }\n\n if (ret !== undefined) {\n return ret;\n }\n }\n};\n\n// all interact.js eventTypes\nInteractable.eventTypes = scope.eventTypes = [];\n\nInteractable.signals = signals;\n\nInteractable.settingsMethods = ['deltaSource', 'origin', 'preventDefault', 'rectChecker'];\n\nmodule.exports = Interactable;\n\n},{\"./Eventable\":2,\"./actions/base\":6,\"./defaultOptions\":18,\"./scope\":33,\"./utils/Signals\":34,\"./utils/arr\":35,\"./utils/browser\":36,\"./utils/clone\":37,\"./utils/domUtils\":39,\"./utils/events\":40,\"./utils/extend\":41,\"./utils/is\":46,\"./utils/window\":52}],5:[function(require,module,exports){\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar scope = require('./scope');\nvar utils = require('./utils');\nvar events = require('./utils/events');\nvar browser = require('./utils/browser');\nvar domObjects = require('./utils/domObjects');\nvar finder = require('./utils/interactionFinder');\nvar signals = require('./utils/Signals').new();\n\nvar listeners = {};\nvar methodNames = ['pointerDown', 'pointerMove', 'pointerUp', 'updatePointer', 'removePointer'];\n\n// for ignoring browser's simulated mouse events\nvar prevTouchTime = 0;\n\n// all active and idle interactions\nscope.interactions = [];\n\nvar Interaction = function () {\n /** */\n function Interaction(_ref) {\n var pointerType = _ref.pointerType;\n\n _classCallCheck(this, Interaction);\n\n this.target = null; // current interactable being interacted with\n this.element = null; // the target element of the interactable\n\n this.prepared = { // action that's ready to be fired on next move event\n name: null,\n axis: null,\n edges: null\n };\n\n // keep track of added pointers\n this.pointers = [];\n this.pointerIds = [];\n this.downTargets = [];\n this.downTimes = [];\n\n // Previous native pointer move event coordinates\n this.prevCoords = {\n page: { x: 0, y: 0 },\n client: { x: 0, y: 0 },\n timeStamp: 0\n };\n // current native pointer move event coordinates\n this.curCoords = {\n page: { x: 0, y: 0 },\n client: { x: 0, y: 0 },\n timeStamp: 0\n };\n\n // Starting InteractEvent pointer coordinates\n this.startCoords = {\n page: { x: 0, y: 0 },\n client: { x: 0, y: 0 },\n timeStamp: 0\n };\n\n // Change in coordinates and time of the pointer\n this.pointerDelta = {\n page: { x: 0, y: 0, vx: 0, vy: 0, speed: 0 },\n client: { x: 0, y: 0, vx: 0, vy: 0, speed: 0 },\n timeStamp: 0\n };\n\n this.downEvent = null; // pointerdown/mousedown/touchstart event\n this.downPointer = {};\n\n this._eventTarget = null;\n this._curEventTarget = null;\n\n this.prevEvent = null; // previous action event\n\n this.pointerIsDown = false;\n this.pointerWasMoved = false;\n this._interacting = false;\n this._ending = false;\n\n this.pointerType = pointerType;\n\n signals.fire('new', this);\n\n scope.interactions.push(this);\n }\n\n Interaction.prototype.pointerDown = function pointerDown(pointer, event, eventTarget) {\n var pointerIndex = this.updatePointer(pointer, event, true);\n\n signals.fire('down', {\n pointer: pointer,\n event: event,\n eventTarget: eventTarget,\n pointerIndex: pointerIndex,\n interaction: this\n });\n };\n\n /**\n * ```js\n * interact(target)\n * .draggable({\n * // disable the default drag start by down->move\n * manualStart: true\n * })\n * // start dragging after the user holds the pointer down\n * .on('hold', function (event) {\n * var interaction = event.interaction;\n *\n * if (!interaction.interacting()) {\n * interaction.start({ name: 'drag' },\n * event.interactable,\n * event.currentTarget);\n * }\n * });\n * ```\n *\n * Start an action with the given Interactable and Element as tartgets. The\n * action must be enabled for the target Interactable and an appropriate\n * number of pointers must be held down - 1 for drag/resize, 2 for gesture.\n *\n * Use it with `interactable.able({ manualStart: false })` to always\n * [start actions manually](https://github.com/taye/interact.js/issues/114)\n *\n * @param {object} action The action to be performed - drag, resize, etc.\n * @param {Interactable} target The Interactable to target\n * @param {Element} element The DOM Element to target\n * @return {object} interact\n */\n\n\n Interaction.prototype.start = function start(action, target, element) {\n if (this.interacting() || !this.pointerIsDown || this.pointerIds.length < (action.name === 'gesture' ? 2 : 1)) {\n return;\n }\n\n // if this interaction had been removed after stopping\n // add it back\n if (scope.interactions.indexOf(this) === -1) {\n scope.interactions.push(this);\n }\n\n utils.copyAction(this.prepared, action);\n this.target = target;\n this.element = element;\n\n signals.fire('action-start', {\n interaction: this,\n event: this.downEvent\n });\n };\n\n Interaction.prototype.pointerMove = function pointerMove(pointer, event, eventTarget) {\n if (!this.simulation) {\n this.updatePointer(pointer);\n utils.setCoords(this.curCoords, this.pointers);\n }\n\n var duplicateMove = this.curCoords.page.x === this.prevCoords.page.x && this.curCoords.page.y === this.prevCoords.page.y && this.curCoords.client.x === this.prevCoords.client.x && this.curCoords.client.y === this.prevCoords.client.y;\n\n var dx = void 0;\n var dy = void 0;\n\n // register movement greater than pointerMoveTolerance\n if (this.pointerIsDown && !this.pointerWasMoved) {\n dx = this.curCoords.client.x - this.startCoords.client.x;\n dy = this.curCoords.client.y - this.startCoords.client.y;\n\n this.pointerWasMoved = utils.hypot(dx, dy) > Interaction.pointerMoveTolerance;\n }\n\n var signalArg = {\n pointer: pointer,\n pointerIndex: this.getPointerIndex(pointer),\n event: event,\n eventTarget: eventTarget,\n dx: dx,\n dy: dy,\n duplicate: duplicateMove,\n interaction: this,\n interactingBeforeMove: this.interacting()\n };\n\n if (!duplicateMove) {\n // set pointer coordinate, time changes and speeds\n utils.setCoordDeltas(this.pointerDelta, this.prevCoords, this.curCoords);\n }\n\n signals.fire('move', signalArg);\n\n if (!duplicateMove) {\n // if interacting, fire an 'action-move' signal etc\n if (this.interacting()) {\n this.doMove(signalArg);\n }\n\n if (this.pointerWasMoved) {\n utils.copyCoords(this.prevCoords, this.curCoords);\n }\n }\n };\n\n /**\n * ```js\n * interact(target)\n * .draggable(true)\n * .on('dragmove', function (event) {\n * if (someCondition) {\n * // change the snap settings\n * event.interactable.draggable({ snap: { targets: [] }});\n * // fire another move event with re-calculated snap\n * event.interaction.doMove();\n * }\n * });\n * ```\n *\n * Force a move of the current action at the same coordinates. Useful if\n * snap/restrict has been changed and you want a movement with the new\n * settings.\n */\n\n\n Interaction.prototype.doMove = function doMove(signalArg) {\n signalArg = utils.extend({\n pointer: this.pointers[0],\n event: this.prevEvent,\n eventTarget: this._eventTarget,\n interaction: this\n }, signalArg || {});\n\n signals.fire('before-action-move', signalArg);\n\n if (!this._dontFireMove) {\n signals.fire('action-move', signalArg);\n }\n\n this._dontFireMove = false;\n };\n\n // End interact move events and stop auto-scroll unless simulation is running\n\n\n Interaction.prototype.pointerUp = function pointerUp(pointer, event, eventTarget, curEventTarget) {\n var pointerIndex = this.getPointerIndex(pointer);\n\n signals.fire(/cancel$/i.test(event.type) ? 'cancel' : 'up', {\n pointer: pointer,\n pointerIndex: pointerIndex,\n event: event,\n eventTarget: eventTarget,\n curEventTarget: curEventTarget,\n interaction: this\n });\n\n if (!this.simulation) {\n this.end(event);\n }\n\n this.pointerIsDown = false;\n this.removePointer(pointer, event);\n };\n\n /**\n * ```js\n * interact(target)\n * .draggable(true)\n * .on('move', function (event) {\n * if (event.pageX > 1000) {\n * // end the current action\n * event.interaction.end();\n * // stop all further listeners from being called\n * event.stopImmediatePropagation();\n * }\n * });\n * ```\n *\n * Stop the current action and fire an end event. Inertial movement does\n * not happen.\n *\n * @param {PointerEvent} [event]\n */\n\n\n Interaction.prototype.end = function end(event) {\n this._ending = true;\n\n event = event || this.prevEvent;\n\n if (this.interacting()) {\n signals.fire('action-end', {\n event: event,\n interaction: this\n });\n }\n\n this.stop();\n this._ending = false;\n };\n\n Interaction.prototype.currentAction = function currentAction() {\n return this._interacting ? this.prepared.name : null;\n };\n\n Interaction.prototype.interacting = function interacting() {\n return this._interacting;\n };\n\n /** */\n\n\n Interaction.prototype.stop = function stop() {\n signals.fire('stop', { interaction: this });\n\n if (this._interacting) {\n signals.fire('stop-active', { interaction: this });\n signals.fire('stop-' + this.prepared.name, { interaction: this });\n }\n\n this.target = this.element = null;\n\n this._interacting = false;\n this.prepared.name = this.prevEvent = null;\n };\n\n Interaction.prototype.getPointerIndex = function getPointerIndex(pointer) {\n // mouse and pen interactions may have only one pointer\n if (this.pointerType === 'mouse' || this.pointerType === 'pen') {\n return 0;\n }\n\n return this.pointerIds.indexOf(utils.getPointerId(pointer));\n };\n\n Interaction.prototype.updatePointer = function updatePointer(pointer, event) {\n var down = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : event && /(down|start)$/i.test(event.type);\n\n var id = utils.getPointerId(pointer);\n var index = this.getPointerIndex(pointer);\n\n if (index === -1) {\n index = this.pointerIds.length;\n this.pointerIds[index] = id;\n }\n\n if (down) {\n signals.fire('update-pointer-down', {\n pointer: pointer,\n event: event,\n down: down,\n pointerId: id,\n pointerIndex: index,\n interaction: this\n });\n }\n\n this.pointers[index] = pointer;\n\n return index;\n };\n\n Interaction.prototype.removePointer = function removePointer(pointer, event) {\n var index = this.getPointerIndex(pointer);\n\n if (index === -1) {\n return;\n }\n\n signals.fire('remove-pointer', {\n pointer: pointer,\n event: event,\n pointerIndex: index,\n interaction: this\n });\n\n this.pointers.splice(index, 1);\n this.pointerIds.splice(index, 1);\n this.downTargets.splice(index, 1);\n this.downTimes.splice(index, 1);\n };\n\n Interaction.prototype._updateEventTargets = function _updateEventTargets(target, currentTarget) {\n this._eventTarget = target;\n this._curEventTarget = currentTarget;\n };\n\n return Interaction;\n}();\n\nfor (var _i = 0; _i < methodNames.length; _i++) {\n var method = methodNames[_i];\n listeners[method] = doOnInteractions(method);\n}\n\nfunction doOnInteractions(method) {\n return function (event) {\n var pointerType = utils.getPointerType(event);\n\n var _utils$getEventTarget = utils.getEventTargets(event),\n eventTarget = _utils$getEventTarget[0],\n curEventTarget = _utils$getEventTarget[1];\n\n var matches = []; // [ [pointer, interaction], ...]\n\n if (browser.supportsTouch && /touch/.test(event.type)) {\n prevTouchTime = new Date().getTime();\n\n for (var _i2 = 0; _i2 < event.changedTouches.length; _i2++) {\n var _ref2;\n\n _ref2 = event.changedTouches[_i2];\n var changedTouch = _ref2;\n\n var pointer = changedTouch;\n var interaction = finder.search(pointer, event.type, eventTarget);\n\n matches.push([pointer, interaction || new Interaction({ pointerType: pointerType })]);\n }\n } else {\n var invalidPointer = false;\n\n if (!browser.supportsPointerEvent && /mouse/.test(event.type)) {\n // ignore mouse events while touch interactions are active\n for (var i = 0; i < scope.interactions.length && !invalidPointer; i++) {\n invalidPointer = scope.interactions[i].pointerType !== 'mouse' && scope.interactions[i].pointerIsDown;\n }\n\n // try to ignore mouse events that are simulated by the browser\n // after a touch event\n invalidPointer = invalidPointer || new Date().getTime() - prevTouchTime < 500\n // on iOS and Firefox Mobile, MouseEvent.timeStamp is zero if simulated\n || event.timeStamp === 0;\n }\n\n if (!invalidPointer) {\n var _interaction = finder.search(event, event.type, eventTarget);\n\n if (!_interaction) {\n _interaction = new Interaction({ pointerType: pointerType });\n }\n\n matches.push([event, _interaction]);\n }\n }\n\n for (var _i3 = 0; _i3 < matches.length; _i3++) {\n var _ref3 = matches[_i3];\n var _pointer = _ref3[0];\n var _interaction2 = _ref3[1];\n\n _interaction2._updateEventTargets(eventTarget, curEventTarget);\n _interaction2[method](_pointer, event, eventTarget, curEventTarget);\n }\n };\n}\n\nfunction endAll(event) {\n for (var _i4 = 0; _i4 < scope.interactions.length; _i4++) {\n var _ref4;\n\n _ref4 = scope.interactions[_i4];\n var interaction = _ref4;\n\n interaction.end(event);\n signals.fire('endall', { event: event, interaction: interaction });\n }\n}\n\nvar docEvents = {/* 'eventType': listenerFunc */};\nvar pEventTypes = browser.pEventTypes;\n\nif (domObjects.PointerEvent) {\n docEvents[pEventTypes.down] = listeners.pointerDown;\n docEvents[pEventTypes.move] = listeners.pointerMove;\n docEvents[pEventTypes.up] = listeners.pointerUp;\n docEvents[pEventTypes.cancel] = listeners.pointerUp;\n} else {\n docEvents.mousedown = listeners.pointerDown;\n docEvents.mousemove = listeners.pointerMove;\n docEvents.mouseup = listeners.pointerUp;\n\n docEvents.touchstart = listeners.pointerDown;\n docEvents.touchmove = listeners.pointerMove;\n docEvents.touchend = listeners.pointerUp;\n docEvents.touchcancel = listeners.pointerUp;\n}\n\ndocEvents.blur = endAll;\n\nfunction onDocSignal(_ref5, signalName) {\n var doc = _ref5.doc;\n\n var eventMethod = signalName.indexOf('add') === 0 ? events.add : events.remove;\n\n // delegate event listener\n for (var eventType in scope.delegatedEvents) {\n eventMethod(doc, eventType, events.delegateListener);\n eventMethod(doc, eventType, events.delegateUseCapture, true);\n }\n\n for (var _eventType in docEvents) {\n eventMethod(doc, _eventType, docEvents[_eventType], browser.isIOS ? { passive: false } : undefined);\n }\n}\n\nsignals.on('update-pointer-down', function (_ref6) {\n var interaction = _ref6.interaction,\n pointer = _ref6.pointer,\n pointerId = _ref6.pointerId,\n pointerIndex = _ref6.pointerIndex,\n event = _ref6.event,\n eventTarget = _ref6.eventTarget,\n down = _ref6.down;\n\n interaction.pointerIds[pointerIndex] = pointerId;\n interaction.pointers[pointerIndex] = pointer;\n\n if (down) {\n interaction.pointerIsDown = true;\n }\n\n if (!interaction.interacting()) {\n utils.setCoords(interaction.startCoords, interaction.pointers);\n\n utils.copyCoords(interaction.curCoords, interaction.startCoords);\n utils.copyCoords(interaction.prevCoords, interaction.startCoords);\n\n interaction.downEvent = event;\n interaction.downTimes[pointerIndex] = interaction.curCoords.timeStamp;\n interaction.downTargets[pointerIndex] = eventTarget || event && utils.getEventTargets(event)[0];\n interaction.pointerWasMoved = false;\n\n utils.pointerExtend(interaction.downPointer, pointer);\n }\n});\n\nscope.signals.on('add-document', onDocSignal);\nscope.signals.on('remove-document', onDocSignal);\n\nInteraction.pointerMoveTolerance = 1;\nInteraction.doOnInteractions = doOnInteractions;\nInteraction.endAll = endAll;\nInteraction.signals = signals;\nInteraction.docEvents = docEvents;\n\nscope.endAllInteractions = endAll;\n\nmodule.exports = Interaction;\n\n},{\"./scope\":33,\"./utils\":44,\"./utils/Signals\":34,\"./utils/browser\":36,\"./utils/domObjects\":38,\"./utils/events\":40,\"./utils/interactionFinder\":45}],6:[function(require,module,exports){\n'use strict';\n\nvar Interaction = require('../Interaction');\nvar InteractEvent = require('../InteractEvent');\n\nvar actions = {\n firePrepared: firePrepared,\n names: [],\n methodDict: {}\n};\n\nInteraction.signals.on('action-start', function (_ref) {\n var interaction = _ref.interaction,\n event = _ref.event;\n\n interaction._interacting = true;\n firePrepared(interaction, event, 'start');\n});\n\nInteraction.signals.on('action-move', function (_ref2) {\n var interaction = _ref2.interaction,\n event = _ref2.event,\n preEnd = _ref2.preEnd;\n\n firePrepared(interaction, event, 'move', preEnd);\n\n // if the action was ended in a listener\n if (!interaction.interacting()) {\n return false;\n }\n});\n\nInteraction.signals.on('action-end', function (_ref3) {\n var interaction = _ref3.interaction,\n event = _ref3.event;\n\n firePrepared(interaction, event, 'end');\n});\n\nfunction firePrepared(interaction, event, phase, preEnd) {\n var actionName = interaction.prepared.name;\n\n var newEvent = new InteractEvent(interaction, event, actionName, phase, interaction.element, null, preEnd);\n\n interaction.target.fire(newEvent);\n interaction.prevEvent = newEvent;\n}\n\nmodule.exports = actions;\n\n},{\"../InteractEvent\":3,\"../Interaction\":5}],7:[function(require,module,exports){\n'use strict';\n\nvar actions = require('./base');\nvar utils = require('../utils');\nvar InteractEvent = require('../InteractEvent');\n/** @lends Interactable */\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar defaultOptions = require('../defaultOptions');\n\nvar drag = {\n defaults: {\n enabled: false,\n mouseButtons: null,\n\n origin: null,\n snap: null,\n restrict: null,\n inertia: null,\n autoScroll: null,\n\n startAxis: 'xy',\n lockAxis: 'xy'\n },\n\n checker: function checker(pointer, event, interactable) {\n var dragOptions = interactable.options.drag;\n\n return dragOptions.enabled ? { name: 'drag', axis: dragOptions.lockAxis === 'start' ? dragOptions.startAxis : dragOptions.lockAxis } : null;\n },\n\n getCursor: function getCursor() {\n return 'move';\n }\n};\n\nInteraction.signals.on('before-action-move', function (_ref) {\n var interaction = _ref.interaction;\n\n if (interaction.prepared.name !== 'drag') {\n return;\n }\n\n var axis = interaction.prepared.axis;\n\n if (axis === 'x') {\n interaction.curCoords.page.y = interaction.startCoords.page.y;\n interaction.curCoords.client.y = interaction.startCoords.client.y;\n\n interaction.pointerDelta.page.speed = Math.abs(interaction.pointerDelta.page.vx);\n interaction.pointerDelta.client.speed = Math.abs(interaction.pointerDelta.client.vx);\n interaction.pointerDelta.client.vy = 0;\n interaction.pointerDelta.page.vy = 0;\n } else if (axis === 'y') {\n interaction.curCoords.page.x = interaction.startCoords.page.x;\n interaction.curCoords.client.x = interaction.startCoords.client.x;\n\n interaction.pointerDelta.page.speed = Math.abs(interaction.pointerDelta.page.vy);\n interaction.pointerDelta.client.speed = Math.abs(interaction.pointerDelta.client.vy);\n interaction.pointerDelta.client.vx = 0;\n interaction.pointerDelta.page.vx = 0;\n }\n});\n\n// dragmove\nInteractEvent.signals.on('new', function (_ref2) {\n var iEvent = _ref2.iEvent,\n interaction = _ref2.interaction;\n\n if (iEvent.type !== 'dragmove') {\n return;\n }\n\n var axis = interaction.prepared.axis;\n\n if (axis === 'x') {\n iEvent.pageY = interaction.startCoords.page.y;\n iEvent.clientY = interaction.startCoords.client.y;\n iEvent.dy = 0;\n } else if (axis === 'y') {\n iEvent.pageX = interaction.startCoords.page.x;\n iEvent.clientX = interaction.startCoords.client.x;\n iEvent.dx = 0;\n }\n});\n\n/**\n * ```js\n * interact(element).draggable({\n * onstart: function (event) {},\n * onmove : function (event) {},\n * onend : function (event) {},\n *\n * // the axis in which the first movement must be\n * // for the drag sequence to start\n * // 'xy' by default - any direction\n * startAxis: 'x' || 'y' || 'xy',\n *\n * // 'xy' by default - don't restrict to one axis (move in any direction)\n * // 'x' or 'y' to restrict movement to either axis\n * // 'start' to restrict movement to the axis the drag started in\n * lockAxis: 'x' || 'y' || 'xy' || 'start',\n *\n * // max number of drags that can happen concurrently\n * // with elements of this Interactable. Infinity by default\n * max: Infinity,\n *\n * // max number of drags that can target the same element+Interactable\n * // 1 by default\n * maxPerElement: 2\n * });\n *\n * var isDraggable = interact('element').draggable(); // true\n * ```\n *\n * Get or set whether drag actions can be performed on the target\n *\n * @param {boolean | object} [options] true/false or An object with event\n * listeners to be fired on drag events (object makes the Interactable\n * draggable)\n * @return {boolean | Interactable} boolean indicating if this can be the\n * target of drag events, or this Interctable\n */\nInteractable.prototype.draggable = function (options) {\n if (utils.is.object(options)) {\n this.options.drag.enabled = options.enabled === false ? false : true;\n this.setPerAction('drag', options);\n this.setOnEvents('drag', options);\n\n if (/^(xy|x|y|start)$/.test(options.lockAxis)) {\n this.options.drag.lockAxis = options.lockAxis;\n }\n if (/^(xy|x|y)$/.test(options.startAxis)) {\n this.options.drag.startAxis = options.startAxis;\n }\n\n return this;\n }\n\n if (utils.is.bool(options)) {\n this.options.drag.enabled = options;\n\n if (!options) {\n this.ondragstart = this.ondragstart = this.ondragend = null;\n }\n\n return this;\n }\n\n return this.options.drag;\n};\n\nactions.drag = drag;\nactions.names.push('drag');\nutils.merge(Interactable.eventTypes, ['dragstart', 'dragmove', 'draginertiastart', 'draginertiaresume', 'dragend']);\nactions.methodDict.drag = 'draggable';\n\ndefaultOptions.drag = drag.defaults;\n\nmodule.exports = drag;\n\n},{\"../InteractEvent\":3,\"../Interactable\":4,\"../Interaction\":5,\"../defaultOptions\":18,\"../utils\":44,\"./base\":6}],8:[function(require,module,exports){\n'use strict';\n\nvar actions = require('./base');\nvar utils = require('../utils');\nvar scope = require('../scope');\n/** @lends module:interact */\nvar interact = require('../interact');\nvar InteractEvent = require('../InteractEvent');\n/** @lends Interactable */\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar defaultOptions = require('../defaultOptions');\n\nvar drop = {\n defaults: {\n enabled: false,\n accept: null,\n overlap: 'pointer'\n }\n};\n\nvar dynamicDrop = false;\n\nInteraction.signals.on('action-start', function (_ref) {\n var interaction = _ref.interaction,\n event = _ref.event;\n\n if (interaction.prepared.name !== 'drag') {\n return;\n }\n\n // reset active dropzones\n interaction.activeDrops.dropzones = [];\n interaction.activeDrops.elements = [];\n interaction.activeDrops.rects = [];\n\n interaction.dropEvents = null;\n\n if (!interaction.dynamicDrop) {\n setActiveDrops(interaction.activeDrops, interaction.element);\n }\n\n var dragEvent = interaction.prevEvent;\n var dropEvents = getDropEvents(interaction, event, dragEvent);\n\n if (dropEvents.activate) {\n fireActiveDrops(interaction.activeDrops, dropEvents.activate);\n }\n});\n\nInteractEvent.signals.on('new', function (_ref2) {\n var interaction = _ref2.interaction,\n iEvent = _ref2.iEvent,\n event = _ref2.event;\n\n if (iEvent.type !== 'dragmove' && iEvent.type !== 'dragend') {\n return;\n }\n\n var draggableElement = interaction.element;\n var dragEvent = iEvent;\n var dropResult = getDrop(dragEvent, event, draggableElement);\n\n interaction.dropTarget = dropResult.dropzone;\n interaction.dropElement = dropResult.element;\n\n interaction.dropEvents = getDropEvents(interaction, event, dragEvent);\n});\n\nInteraction.signals.on('action-move', function (_ref3) {\n var interaction = _ref3.interaction;\n\n if (interaction.prepared.name !== 'drag') {\n return;\n }\n\n fireDropEvents(interaction, interaction.dropEvents);\n});\n\nInteraction.signals.on('action-end', function (_ref4) {\n var interaction = _ref4.interaction;\n\n if (interaction.prepared.name === 'drag') {\n fireDropEvents(interaction, interaction.dropEvents);\n }\n});\n\nInteraction.signals.on('stop-drag', function (_ref5) {\n var interaction = _ref5.interaction;\n\n interaction.activeDrops = {\n dropzones: null,\n elements: null,\n rects: null\n };\n\n interaction.dropEvents = null;\n});\n\nfunction collectDrops(activeDrops, element) {\n var drops = [];\n var elements = [];\n\n // collect all dropzones and their elements which qualify for a drop\n for (var _i = 0; _i < scope.interactables.length; _i++) {\n var _ref6;\n\n _ref6 = scope.interactables[_i];\n var current = _ref6;\n\n if (!current.options.drop.enabled) {\n continue;\n }\n\n var accept = current.options.drop.accept;\n\n // test the draggable element against the dropzone's accept setting\n if (utils.is.element(accept) && accept !== element || utils.is.string(accept) && !utils.matchesSelector(element, accept)) {\n\n continue;\n }\n\n // query for new elements if necessary\n var dropElements = utils.is.string(current.target) ? current._context.querySelectorAll(current.target) : [current.target];\n\n for (var _i2 = 0; _i2 < dropElements.length; _i2++) {\n var _ref7;\n\n _ref7 = dropElements[_i2];\n var currentElement = _ref7;\n\n if (currentElement !== element) {\n drops.push(current);\n elements.push(currentElement);\n }\n }\n }\n\n return {\n elements: elements,\n dropzones: drops\n };\n}\n\nfunction fireActiveDrops(activeDrops, event) {\n var prevElement = void 0;\n\n // loop through all active dropzones and trigger event\n for (var i = 0; i < activeDrops.dropzones.length; i++) {\n var current = activeDrops.dropzones[i];\n var currentElement = activeDrops.elements[i];\n\n // prevent trigger of duplicate events on same element\n if (currentElement !== prevElement) {\n // set current element as event target\n event.target = currentElement;\n current.fire(event);\n }\n prevElement = currentElement;\n }\n}\n\n// Collect a new set of possible drops and save them in activeDrops.\n// setActiveDrops should always be called when a drag has just started or a\n// drag event happens while dynamicDrop is true\nfunction setActiveDrops(activeDrops, dragElement) {\n // get dropzones and their elements that could receive the draggable\n var possibleDrops = collectDrops(activeDrops, dragElement);\n\n activeDrops.dropzones = possibleDrops.dropzones;\n activeDrops.elements = possibleDrops.elements;\n activeDrops.rects = [];\n\n for (var i = 0; i < activeDrops.dropzones.length; i++) {\n activeDrops.rects[i] = activeDrops.dropzones[i].getRect(activeDrops.elements[i]);\n }\n}\n\nfunction getDrop(dragEvent, event, dragElement) {\n var interaction = dragEvent.interaction;\n var validDrops = [];\n\n if (dynamicDrop) {\n setActiveDrops(interaction.activeDrops, dragElement);\n }\n\n // collect all dropzones and their elements which qualify for a drop\n for (var j = 0; j < interaction.activeDrops.dropzones.length; j++) {\n var current = interaction.activeDrops.dropzones[j];\n var currentElement = interaction.activeDrops.elements[j];\n var rect = interaction.activeDrops.rects[j];\n\n validDrops.push(current.dropCheck(dragEvent, event, interaction.target, dragElement, currentElement, rect) ? currentElement : null);\n }\n\n // get the most appropriate dropzone based on DOM depth and order\n var dropIndex = utils.indexOfDeepestElement(validDrops);\n\n return {\n dropzone: interaction.activeDrops.dropzones[dropIndex] || null,\n element: interaction.activeDrops.elements[dropIndex] || null\n };\n}\n\nfunction getDropEvents(interaction, pointerEvent, dragEvent) {\n var dropEvents = {\n enter: null,\n leave: null,\n activate: null,\n deactivate: null,\n move: null,\n drop: null\n };\n\n var tmpl = {\n dragEvent: dragEvent,\n interaction: interaction,\n target: interaction.dropElement,\n dropzone: interaction.dropTarget,\n relatedTarget: dragEvent.target,\n draggable: dragEvent.interactable,\n timeStamp: dragEvent.timeStamp\n };\n\n if (interaction.dropElement !== interaction.prevDropElement) {\n // if there was a prevDropTarget, create a dragleave event\n if (interaction.prevDropTarget) {\n dropEvents.leave = utils.extend({ type: 'dragleave' }, tmpl);\n\n dragEvent.dragLeave = dropEvents.leave.target = interaction.prevDropElement;\n dragEvent.prevDropzone = dropEvents.leave.dropzone = interaction.prevDropTarget;\n }\n // if the dropTarget is not null, create a dragenter event\n if (interaction.dropTarget) {\n dropEvents.enter = {\n dragEvent: dragEvent,\n interaction: interaction,\n target: interaction.dropElement,\n dropzone: interaction.dropTarget,\n relatedTarget: dragEvent.target,\n draggable: dragEvent.interactable,\n timeStamp: dragEvent.timeStamp,\n type: 'dragenter'\n };\n\n dragEvent.dragEnter = interaction.dropElement;\n dragEvent.dropzone = interaction.dropTarget;\n }\n }\n\n if (dragEvent.type === 'dragend' && interaction.dropTarget) {\n dropEvents.drop = utils.extend({ type: 'drop' }, tmpl);\n\n dragEvent.dropzone = interaction.dropTarget;\n dragEvent.relatedTarget = interaction.dropElement;\n }\n if (dragEvent.type === 'dragstart') {\n dropEvents.activate = utils.extend({ type: 'dropactivate' }, tmpl);\n\n dropEvents.activate.target = null;\n dropEvents.activate.dropzone = null;\n }\n if (dragEvent.type === 'dragend') {\n dropEvents.deactivate = utils.extend({ type: 'dropdeactivate' }, tmpl);\n\n dropEvents.deactivate.target = null;\n dropEvents.deactivate.dropzone = null;\n }\n if (dragEvent.type === 'dragmove' && interaction.dropTarget) {\n dropEvents.move = utils.extend({\n dragmove: dragEvent,\n type: 'dropmove'\n }, tmpl);\n\n dragEvent.dropzone = interaction.dropTarget;\n }\n\n return dropEvents;\n}\n\nfunction fireDropEvents(interaction, dropEvents) {\n var activeDrops = interaction.activeDrops,\n prevDropTarget = interaction.prevDropTarget,\n dropTarget = interaction.dropTarget,\n dropElement = interaction.dropElement;\n\n\n if (dropEvents.leave) {\n prevDropTarget.fire(dropEvents.leave);\n }\n if (dropEvents.move) {\n dropTarget.fire(dropEvents.move);\n }\n if (dropEvents.enter) {\n dropTarget.fire(dropEvents.enter);\n }\n if (dropEvents.drop) {\n dropTarget.fire(dropEvents.drop);\n }\n if (dropEvents.deactivate) {\n fireActiveDrops(activeDrops, dropEvents.deactivate);\n }\n\n interaction.prevDropTarget = dropTarget;\n interaction.prevDropElement = dropElement;\n}\n\n/**\n * ```js\n * interact(target)\n * .dropChecker(function(dragEvent, // related dragmove or dragend event\n * event, // TouchEvent/PointerEvent/MouseEvent\n * dropped, // bool result of the default checker\n * dropzone, // dropzone Interactable\n * dropElement, // dropzone elemnt\n * draggable, // draggable Interactable\n * draggableElement) {// draggable element\n *\n * return dropped && event.target.hasAttribute('allow-drop');\n * }\n * ```\n *\n * ```js\n * interact('.drop').dropzone({\n * accept: '.can-drop' || document.getElementById('single-drop'),\n * overlap: 'pointer' || 'center' || zeroToOne\n * }\n * ```\n *\n * Returns or sets whether draggables can be dropped onto this target to\n * trigger drop events\n *\n * Dropzones can receive the following events:\n * - `dropactivate` and `dropdeactivate` when an acceptable drag starts and ends\n * - `dragenter` and `dragleave` when a draggable enters and leaves the dropzone\n * - `dragmove` when a draggable that has entered the dropzone is moved\n * - `drop` when a draggable is dropped into this dropzone\n *\n * Use the `accept` option to allow only elements that match the given CSS\n * selector or element. The value can be:\n *\n * - **an Element** - only that element can be dropped into this dropzone.\n * - **a string**, - the element being dragged must match it as a CSS selector.\n * - **`null`** - accept options is cleared - it accepts any element.\n *\n * Use the `overlap` option to set how drops are checked for. The allowed\n * values are:\n *\n * - `'pointer'`, the pointer must be over the dropzone (default)\n * - `'center'`, the draggable element's center must be over the dropzone\n * - a number from 0-1 which is the `(intersection area) / (draggable area)`.\n * e.g. `0.5` for drop to happen when half of the area of the draggable is\n * over the dropzone\n *\n * Use the `checker` option to specify a function to check if a dragged element\n * is over this Interactable.\n *\n * @param {boolean | object | null} [options] The new options to be set.\n * @return {boolean | Interactable} The current setting or this Interactable\n */\nInteractable.prototype.dropzone = function (options) {\n if (utils.is.object(options)) {\n this.options.drop.enabled = options.enabled === false ? false : true;\n\n if (utils.is.function(options.ondrop)) {\n this.events.ondrop = options.ondrop;\n }\n if (utils.is.function(options.ondropactivate)) {\n this.events.ondropactivate = options.ondropactivate;\n }\n if (utils.is.function(options.ondropdeactivate)) {\n this.events.ondropdeactivate = options.ondropdeactivate;\n }\n if (utils.is.function(options.ondragenter)) {\n this.events.ondragenter = options.ondragenter;\n }\n if (utils.is.function(options.ondragleave)) {\n this.events.ondragleave = options.ondragleave;\n }\n if (utils.is.function(options.ondropmove)) {\n this.events.ondropmove = options.ondropmove;\n }\n\n if (/^(pointer|center)$/.test(options.overlap)) {\n this.options.drop.overlap = options.overlap;\n } else if (utils.is.number(options.overlap)) {\n this.options.drop.overlap = Math.max(Math.min(1, options.overlap), 0);\n }\n if ('accept' in options) {\n this.options.drop.accept = options.accept;\n }\n if ('checker' in options) {\n this.options.drop.checker = options.checker;\n }\n\n return this;\n }\n\n if (utils.is.bool(options)) {\n this.options.drop.enabled = options;\n\n if (!options) {\n this.ondragenter = this.ondragleave = this.ondrop = this.ondropactivate = this.ondropdeactivate = null;\n }\n\n return this;\n }\n\n return this.options.drop;\n};\n\nInteractable.prototype.dropCheck = function (dragEvent, event, draggable, draggableElement, dropElement, rect) {\n var dropped = false;\n\n // if the dropzone has no rect (eg. display: none)\n // call the custom dropChecker or just return false\n if (!(rect = rect || this.getRect(dropElement))) {\n return this.options.drop.checker ? this.options.drop.checker(dragEvent, event, dropped, this, dropElement, draggable, draggableElement) : false;\n }\n\n var dropOverlap = this.options.drop.overlap;\n\n if (dropOverlap === 'pointer') {\n var origin = utils.getOriginXY(draggable, draggableElement, 'drag');\n var page = utils.getPageXY(dragEvent);\n\n page.x += origin.x;\n page.y += origin.y;\n\n var horizontal = page.x > rect.left && page.x < rect.right;\n var vertical = page.y > rect.top && page.y < rect.bottom;\n\n dropped = horizontal && vertical;\n }\n\n var dragRect = draggable.getRect(draggableElement);\n\n if (dragRect && dropOverlap === 'center') {\n var cx = dragRect.left + dragRect.width / 2;\n var cy = dragRect.top + dragRect.height / 2;\n\n dropped = cx >= rect.left && cx <= rect.right && cy >= rect.top && cy <= rect.bottom;\n }\n\n if (dragRect && utils.is.number(dropOverlap)) {\n var overlapArea = Math.max(0, Math.min(rect.right, dragRect.right) - Math.max(rect.left, dragRect.left)) * Math.max(0, Math.min(rect.bottom, dragRect.bottom) - Math.max(rect.top, dragRect.top));\n\n var overlapRatio = overlapArea / (dragRect.width * dragRect.height);\n\n dropped = overlapRatio >= dropOverlap;\n }\n\n if (this.options.drop.checker) {\n dropped = this.options.drop.checker(dragEvent, event, dropped, this, dropElement, draggable, draggableElement);\n }\n\n return dropped;\n};\n\nInteractable.signals.on('unset', function (_ref8) {\n var interactable = _ref8.interactable;\n\n interactable.dropzone(false);\n});\n\nInteractable.settingsMethods.push('dropChecker');\n\nInteraction.signals.on('new', function (interaction) {\n interaction.dropTarget = null; // the dropzone a drag target might be dropped into\n interaction.dropElement = null; // the element at the time of checking\n interaction.prevDropTarget = null; // the dropzone that was recently dragged away from\n interaction.prevDropElement = null; // the element at the time of checking\n interaction.dropEvents = null; // the dropEvents related to the current drag event\n\n interaction.activeDrops = {\n dropzones: [], // the dropzones that are mentioned below\n elements: [], // elements of dropzones that accept the target draggable\n rects: [] // the rects of the elements mentioned above\n };\n});\n\nInteraction.signals.on('stop', function (_ref9) {\n var interaction = _ref9.interaction;\n\n interaction.dropTarget = interaction.dropElement = interaction.prevDropTarget = interaction.prevDropElement = null;\n});\n\n/**\n * Returns or sets whether the dimensions of dropzone elements are calculated\n * on every dragmove or only on dragstart for the default dropChecker\n *\n * @param {boolean} [newValue] True to check on each move. False to check only\n * before start\n * @return {boolean | interact} The current setting or interact\n */\ninteract.dynamicDrop = function (newValue) {\n if (utils.is.bool(newValue)) {\n //if (dragging && dynamicDrop !== newValue && !newValue) {\n //calcRects(dropzones);\n //}\n\n dynamicDrop = newValue;\n\n return interact;\n }\n return dynamicDrop;\n};\n\nutils.merge(Interactable.eventTypes, ['dragenter', 'dragleave', 'dropactivate', 'dropdeactivate', 'dropmove', 'drop']);\nactions.methodDict.drop = 'dropzone';\n\ndefaultOptions.drop = drop.defaults;\n\nmodule.exports = drop;\n\n},{\"../InteractEvent\":3,\"../Interactable\":4,\"../Interaction\":5,\"../defaultOptions\":18,\"../interact\":21,\"../scope\":33,\"../utils\":44,\"./base\":6}],9:[function(require,module,exports){\n'use strict';\n\nvar actions = require('./base');\nvar utils = require('../utils');\nvar InteractEvent = require('../InteractEvent');\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar defaultOptions = require('../defaultOptions');\n\nvar gesture = {\n defaults: {\n enabled: false,\n origin: null,\n restrict: null\n },\n\n checker: function checker(pointer, event, interactable, element, interaction) {\n if (interaction.pointerIds.length >= 2) {\n return { name: 'gesture' };\n }\n\n return null;\n },\n\n getCursor: function getCursor() {\n return '';\n }\n};\n\nInteractEvent.signals.on('new', function (_ref) {\n var iEvent = _ref.iEvent,\n interaction = _ref.interaction;\n\n if (iEvent.type !== 'gesturestart') {\n return;\n }\n iEvent.ds = 0;\n\n interaction.gesture.startDistance = interaction.gesture.prevDistance = iEvent.distance;\n interaction.gesture.startAngle = interaction.gesture.prevAngle = iEvent.angle;\n interaction.gesture.scale = 1;\n});\n\nInteractEvent.signals.on('new', function (_ref2) {\n var iEvent = _ref2.iEvent,\n interaction = _ref2.interaction;\n\n if (iEvent.type !== 'gesturemove') {\n return;\n }\n\n iEvent.ds = iEvent.scale - interaction.gesture.scale;\n\n interaction.target.fire(iEvent);\n\n interaction.gesture.prevAngle = iEvent.angle;\n interaction.gesture.prevDistance = iEvent.distance;\n\n if (iEvent.scale !== Infinity && iEvent.scale !== null && iEvent.scale !== undefined && !isNaN(iEvent.scale)) {\n\n interaction.gesture.scale = iEvent.scale;\n }\n});\n\n/**\n * ```js\n * interact(element).gesturable({\n * onstart: function (event) {},\n * onmove : function (event) {},\n * onend : function (event) {},\n *\n * // limit multiple gestures.\n * // See the explanation in {@link Interactable.draggable} example\n * max: Infinity,\n * maxPerElement: 1,\n * });\n *\n * var isGestureable = interact(element).gesturable();\n * ```\n *\n * Gets or sets whether multitouch gestures can be performed on the target\n *\n * @param {boolean | object} [options] true/false or An object with event\n * listeners to be fired on gesture events (makes the Interactable gesturable)\n * @return {boolean | Interactable} A boolean indicating if this can be the\n * target of gesture events, or this Interactable\n */\nInteractable.prototype.gesturable = function (options) {\n if (utils.is.object(options)) {\n this.options.gesture.enabled = options.enabled === false ? false : true;\n this.setPerAction('gesture', options);\n this.setOnEvents('gesture', options);\n\n return this;\n }\n\n if (utils.is.bool(options)) {\n this.options.gesture.enabled = options;\n\n if (!options) {\n this.ongesturestart = this.ongesturestart = this.ongestureend = null;\n }\n\n return this;\n }\n\n return this.options.gesture;\n};\n\nInteractEvent.signals.on('set-delta', function (_ref3) {\n var interaction = _ref3.interaction,\n iEvent = _ref3.iEvent,\n action = _ref3.action,\n event = _ref3.event,\n starting = _ref3.starting,\n ending = _ref3.ending,\n deltaSource = _ref3.deltaSource;\n\n if (action !== 'gesture') {\n return;\n }\n\n var pointers = interaction.pointers;\n\n iEvent.touches = [pointers[0], pointers[1]];\n\n if (starting) {\n iEvent.distance = utils.touchDistance(pointers, deltaSource);\n iEvent.box = utils.touchBBox(pointers);\n iEvent.scale = 1;\n iEvent.ds = 0;\n iEvent.angle = utils.touchAngle(pointers, undefined, deltaSource);\n iEvent.da = 0;\n } else if (ending || event instanceof InteractEvent) {\n iEvent.distance = interaction.prevEvent.distance;\n iEvent.box = interaction.prevEvent.box;\n iEvent.scale = interaction.prevEvent.scale;\n iEvent.ds = iEvent.scale - 1;\n iEvent.angle = interaction.prevEvent.angle;\n iEvent.da = iEvent.angle - interaction.gesture.startAngle;\n } else {\n iEvent.distance = utils.touchDistance(pointers, deltaSource);\n iEvent.box = utils.touchBBox(pointers);\n iEvent.scale = iEvent.distance / interaction.gesture.startDistance;\n iEvent.angle = utils.touchAngle(pointers, interaction.gesture.prevAngle, deltaSource);\n\n iEvent.ds = iEvent.scale - interaction.gesture.prevScale;\n iEvent.da = iEvent.angle - interaction.gesture.prevAngle;\n }\n});\n\nInteraction.signals.on('new', function (interaction) {\n interaction.gesture = {\n start: { x: 0, y: 0 },\n\n startDistance: 0, // distance between two touches of touchStart\n prevDistance: 0,\n distance: 0,\n\n scale: 1, // gesture.distance / gesture.startDistance\n\n startAngle: 0, // angle of line joining two touches\n prevAngle: 0 // angle of the previous gesture event\n };\n});\n\nactions.gesture = gesture;\nactions.names.push('gesture');\nutils.merge(Interactable.eventTypes, ['gesturestart', 'gesturemove', 'gestureend']);\nactions.methodDict.gesture = 'gesturable';\n\ndefaultOptions.gesture = gesture.defaults;\n\nmodule.exports = gesture;\n\n},{\"../InteractEvent\":3,\"../Interactable\":4,\"../Interaction\":5,\"../defaultOptions\":18,\"../utils\":44,\"./base\":6}],10:[function(require,module,exports){\n'use strict';\n\nvar actions = require('./base');\nvar utils = require('../utils');\nvar browser = require('../utils/browser');\nvar InteractEvent = require('../InteractEvent');\n/** @lends Interactable */\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar defaultOptions = require('../defaultOptions');\n\n// Less Precision with touch input\nvar defaultMargin = browser.supportsTouch || browser.supportsPointerEvent ? 20 : 10;\n\nvar resize = {\n defaults: {\n enabled: false,\n mouseButtons: null,\n\n origin: null,\n snap: null,\n restrict: null,\n inertia: null,\n autoScroll: null,\n\n square: false,\n preserveAspectRatio: false,\n axis: 'xy',\n\n // use default margin\n margin: NaN,\n\n // object with props left, right, top, bottom which are\n // true/false values to resize when the pointer is over that edge,\n // CSS selectors to match the handles for each direction\n // or the Elements for each handle\n edges: null,\n\n // a value of 'none' will limit the resize rect to a minimum of 0x0\n // 'negate' will alow the rect to have negative width/height\n // 'reposition' will keep the width/height positive by swapping\n // the top and bottom edges and/or swapping the left and right edges\n invert: 'none'\n },\n\n checker: function checker(pointer, event, interactable, element, interaction, rect) {\n if (!rect) {\n return null;\n }\n\n var page = utils.extend({}, interaction.curCoords.page);\n var options = interactable.options;\n\n if (options.resize.enabled) {\n var resizeOptions = options.resize;\n var resizeEdges = { left: false, right: false, top: false, bottom: false };\n\n // if using resize.edges\n if (utils.is.object(resizeOptions.edges)) {\n for (var edge in resizeEdges) {\n resizeEdges[edge] = checkResizeEdge(edge, resizeOptions.edges[edge], page, interaction._eventTarget, element, rect, resizeOptions.margin || defaultMargin);\n }\n\n resizeEdges.left = resizeEdges.left && !resizeEdges.right;\n resizeEdges.top = resizeEdges.top && !resizeEdges.bottom;\n\n if (resizeEdges.left || resizeEdges.right || resizeEdges.top || resizeEdges.bottom) {\n return {\n name: 'resize',\n edges: resizeEdges\n };\n }\n } else {\n var right = options.resize.axis !== 'y' && page.x > rect.right - defaultMargin;\n var bottom = options.resize.axis !== 'x' && page.y > rect.bottom - defaultMargin;\n\n if (right || bottom) {\n return {\n name: 'resize',\n axes: (right ? 'x' : '') + (bottom ? 'y' : '')\n };\n }\n }\n }\n\n return null;\n },\n\n cursors: browser.isIe9 ? {\n x: 'e-resize',\n y: 's-resize',\n xy: 'se-resize',\n\n top: 'n-resize',\n left: 'w-resize',\n bottom: 's-resize',\n right: 'e-resize',\n topleft: 'se-resize',\n bottomright: 'se-resize',\n topright: 'ne-resize',\n bottomleft: 'ne-resize'\n } : {\n x: 'ew-resize',\n y: 'ns-resize',\n xy: 'nwse-resize',\n\n top: 'ns-resize',\n left: 'ew-resize',\n bottom: 'ns-resize',\n right: 'ew-resize',\n topleft: 'nwse-resize',\n bottomright: 'nwse-resize',\n topright: 'nesw-resize',\n bottomleft: 'nesw-resize'\n },\n\n getCursor: function getCursor(action) {\n if (action.axis) {\n return resize.cursors[action.name + action.axis];\n } else if (action.edges) {\n var cursorKey = '';\n var edgeNames = ['top', 'bottom', 'left', 'right'];\n\n for (var i = 0; i < 4; i++) {\n if (action.edges[edgeNames[i]]) {\n cursorKey += edgeNames[i];\n }\n }\n\n return resize.cursors[cursorKey];\n }\n }\n};\n\n// resizestart\nInteractEvent.signals.on('new', function (_ref) {\n var iEvent = _ref.iEvent,\n interaction = _ref.interaction;\n\n if (iEvent.type !== 'resizestart' || !interaction.prepared.edges) {\n return;\n }\n\n var startRect = interaction.target.getRect(interaction.element);\n var resizeOptions = interaction.target.options.resize;\n\n /*\n * When using the `resizable.square` or `resizable.preserveAspectRatio` options, resizing from one edge\n * will affect another. E.g. with `resizable.square`, resizing to make the right edge larger will make\n * the bottom edge larger by the same amount. We call these 'linked' edges. Any linked edges will depend\n * on the active edges and the edge being interacted with.\n */\n if (resizeOptions.square || resizeOptions.preserveAspectRatio) {\n var linkedEdges = utils.extend({}, interaction.prepared.edges);\n\n linkedEdges.top = linkedEdges.top || linkedEdges.left && !linkedEdges.bottom;\n linkedEdges.left = linkedEdges.left || linkedEdges.top && !linkedEdges.right;\n linkedEdges.bottom = linkedEdges.bottom || linkedEdges.right && !linkedEdges.top;\n linkedEdges.right = linkedEdges.right || linkedEdges.bottom && !linkedEdges.left;\n\n interaction.prepared._linkedEdges = linkedEdges;\n } else {\n interaction.prepared._linkedEdges = null;\n }\n\n // if using `resizable.preserveAspectRatio` option, record aspect ratio at the start of the resize\n if (resizeOptions.preserveAspectRatio) {\n interaction.resizeStartAspectRatio = startRect.width / startRect.height;\n }\n\n interaction.resizeRects = {\n start: startRect,\n current: utils.extend({}, startRect),\n inverted: utils.extend({}, startRect),\n previous: utils.extend({}, startRect),\n delta: {\n left: 0, right: 0, width: 0,\n top: 0, bottom: 0, height: 0\n }\n };\n\n iEvent.rect = interaction.resizeRects.inverted;\n iEvent.deltaRect = interaction.resizeRects.delta;\n});\n\n// resizemove\nInteractEvent.signals.on('new', function (_ref2) {\n var iEvent = _ref2.iEvent,\n phase = _ref2.phase,\n interaction = _ref2.interaction;\n\n if (phase !== 'move' || !interaction.prepared.edges) {\n return;\n }\n\n var resizeOptions = interaction.target.options.resize;\n var invert = resizeOptions.invert;\n var invertible = invert === 'reposition' || invert === 'negate';\n\n var edges = interaction.prepared.edges;\n\n var start = interaction.resizeRects.start;\n var current = interaction.resizeRects.current;\n var inverted = interaction.resizeRects.inverted;\n var delta = interaction.resizeRects.delta;\n var previous = utils.extend(interaction.resizeRects.previous, inverted);\n var originalEdges = edges;\n\n var dx = iEvent.dx;\n var dy = iEvent.dy;\n\n if (resizeOptions.preserveAspectRatio || resizeOptions.square) {\n // `resize.preserveAspectRatio` takes precedence over `resize.square`\n var startAspectRatio = resizeOptions.preserveAspectRatio ? interaction.resizeStartAspectRatio : 1;\n\n edges = interaction.prepared._linkedEdges;\n\n if (originalEdges.left && originalEdges.bottom || originalEdges.right && originalEdges.top) {\n dy = -dx / startAspectRatio;\n } else if (originalEdges.left || originalEdges.right) {\n dy = dx / startAspectRatio;\n } else if (originalEdges.top || originalEdges.bottom) {\n dx = dy * startAspectRatio;\n }\n }\n\n // update the 'current' rect without modifications\n if (edges.top) {\n current.top += dy;\n }\n if (edges.bottom) {\n current.bottom += dy;\n }\n if (edges.left) {\n current.left += dx;\n }\n if (edges.right) {\n current.right += dx;\n }\n\n if (invertible) {\n // if invertible, copy the current rect\n utils.extend(inverted, current);\n\n if (invert === 'reposition') {\n // swap edge values if necessary to keep width/height positive\n var swap = void 0;\n\n if (inverted.top > inverted.bottom) {\n swap = inverted.top;\n\n inverted.top = inverted.bottom;\n inverted.bottom = swap;\n }\n if (inverted.left > inverted.right) {\n swap = inverted.left;\n\n inverted.left = inverted.right;\n inverted.right = swap;\n }\n }\n } else {\n // if not invertible, restrict to minimum of 0x0 rect\n inverted.top = Math.min(current.top, start.bottom);\n inverted.bottom = Math.max(current.bottom, start.top);\n inverted.left = Math.min(current.left, start.right);\n inverted.right = Math.max(current.right, start.left);\n }\n\n inverted.width = inverted.right - inverted.left;\n inverted.height = inverted.bottom - inverted.top;\n\n for (var edge in inverted) {\n delta[edge] = inverted[edge] - previous[edge];\n }\n\n iEvent.edges = interaction.prepared.edges;\n iEvent.rect = inverted;\n iEvent.deltaRect = delta;\n});\n\n/**\n * ```js\n * interact(element).resizable({\n * onstart: function (event) {},\n * onmove : function (event) {},\n * onend : function (event) {},\n *\n * edges: {\n * top : true, // Use pointer coords to check for resize.\n * left : false, // Disable resizing from left edge.\n * bottom: '.resize-s',// Resize if pointer target matches selector\n * right : handleEl // Resize if pointer target is the given Element\n * },\n *\n * // Width and height can be adjusted independently. When `true`, width and\n * // height are adjusted at a 1:1 ratio.\n * square: false,\n *\n * // Width and height can be adjusted independently. When `true`, width and\n * // height maintain the aspect ratio they had when resizing started.\n * preserveAspectRatio: false,\n *\n * // a value of 'none' will limit the resize rect to a minimum of 0x0\n * // 'negate' will allow the rect to have negative width/height\n * // 'reposition' will keep the width/height positive by swapping\n * // the top and bottom edges and/or swapping the left and right edges\n * invert: 'none' || 'negate' || 'reposition'\n *\n * // limit multiple resizes.\n * // See the explanation in the {@link Interactable.draggable} example\n * max: Infinity,\n * maxPerElement: 1,\n * });\n *\n * var isResizeable = interact(element).resizable();\n * ```\n *\n * Gets or sets whether resize actions can be performed on the target\n *\n * @param {boolean | object} [options] true/false or An object with event\n * listeners to be fired on resize events (object makes the Interactable\n * resizable)\n * @return {boolean | Interactable} A boolean indicating if this can be the\n * target of resize elements, or this Interactable\n */\nInteractable.prototype.resizable = function (options) {\n if (utils.is.object(options)) {\n this.options.resize.enabled = options.enabled === false ? false : true;\n this.setPerAction('resize', options);\n this.setOnEvents('resize', options);\n\n if (/^x$|^y$|^xy$/.test(options.axis)) {\n this.options.resize.axis = options.axis;\n } else if (options.axis === null) {\n this.options.resize.axis = defaultOptions.resize.axis;\n }\n\n if (utils.is.bool(options.preserveAspectRatio)) {\n this.options.resize.preserveAspectRatio = options.preserveAspectRatio;\n } else if (utils.is.bool(options.square)) {\n this.options.resize.square = options.square;\n }\n\n return this;\n }\n if (utils.is.bool(options)) {\n this.options.resize.enabled = options;\n\n if (!options) {\n this.onresizestart = this.onresizestart = this.onresizeend = null;\n }\n\n return this;\n }\n return this.options.resize;\n};\n\nfunction checkResizeEdge(name, value, page, element, interactableElement, rect, margin) {\n // false, '', undefined, null\n if (!value) {\n return false;\n }\n\n // true value, use pointer coords and element rect\n if (value === true) {\n // if dimensions are negative, \"switch\" edges\n var width = utils.is.number(rect.width) ? rect.width : rect.right - rect.left;\n var height = utils.is.number(rect.height) ? rect.height : rect.bottom - rect.top;\n\n if (width < 0) {\n if (name === 'left') {\n name = 'right';\n } else if (name === 'right') {\n name = 'left';\n }\n }\n if (height < 0) {\n if (name === 'top') {\n name = 'bottom';\n } else if (name === 'bottom') {\n name = 'top';\n }\n }\n\n if (name === 'left') {\n return page.x < (width >= 0 ? rect.left : rect.right) + margin;\n }\n if (name === 'top') {\n return page.y < (height >= 0 ? rect.top : rect.bottom) + margin;\n }\n\n if (name === 'right') {\n return page.x > (width >= 0 ? rect.right : rect.left) - margin;\n }\n if (name === 'bottom') {\n return page.y > (height >= 0 ? rect.bottom : rect.top) - margin;\n }\n }\n\n // the remaining checks require an element\n if (!utils.is.element(element)) {\n return false;\n }\n\n return utils.is.element(value)\n // the value is an element to use as a resize handle\n ? value === element\n // otherwise check if element matches value as selector\n : utils.matchesUpTo(element, value, interactableElement);\n}\n\nInteraction.signals.on('new', function (interaction) {\n interaction.resizeAxes = 'xy';\n});\n\nInteractEvent.signals.on('set-delta', function (_ref3) {\n var interaction = _ref3.interaction,\n iEvent = _ref3.iEvent,\n action = _ref3.action;\n\n if (action !== 'resize' || !interaction.resizeAxes) {\n return;\n }\n\n var options = interaction.target.options;\n\n if (options.resize.square) {\n if (interaction.resizeAxes === 'y') {\n iEvent.dx = iEvent.dy;\n } else {\n iEvent.dy = iEvent.dx;\n }\n iEvent.axes = 'xy';\n } else {\n iEvent.axes = interaction.resizeAxes;\n\n if (interaction.resizeAxes === 'x') {\n iEvent.dy = 0;\n } else if (interaction.resizeAxes === 'y') {\n iEvent.dx = 0;\n }\n }\n});\n\nactions.resize = resize;\nactions.names.push('resize');\nutils.merge(Interactable.eventTypes, ['resizestart', 'resizemove', 'resizeinertiastart', 'resizeinertiaresume', 'resizeend']);\nactions.methodDict.resize = 'resizable';\n\ndefaultOptions.resize = resize.defaults;\n\nmodule.exports = resize;\n\n},{\"../InteractEvent\":3,\"../Interactable\":4,\"../Interaction\":5,\"../defaultOptions\":18,\"../utils\":44,\"../utils/browser\":36,\"./base\":6}],11:[function(require,module,exports){\n'use strict';\n\nvar raf = require('./utils/raf');\nvar getWindow = require('./utils/window').getWindow;\nvar is = require('./utils/is');\nvar domUtils = require('./utils/domUtils');\nvar Interaction = require('./Interaction');\nvar defaultOptions = require('./defaultOptions');\n\nvar autoScroll = {\n defaults: {\n enabled: false,\n container: null, // the item that is scrolled (Window or HTMLElement)\n margin: 60,\n speed: 300 // the scroll speed in pixels per second\n },\n\n interaction: null,\n i: null, // the handle returned by window.setInterval\n x: 0, y: 0, // Direction each pulse is to scroll in\n\n isScrolling: false,\n prevTime: 0,\n\n start: function start(interaction) {\n autoScroll.isScrolling = true;\n raf.cancel(autoScroll.i);\n\n autoScroll.interaction = interaction;\n autoScroll.prevTime = new Date().getTime();\n autoScroll.i = raf.request(autoScroll.scroll);\n },\n\n stop: function stop() {\n autoScroll.isScrolling = false;\n raf.cancel(autoScroll.i);\n },\n\n // scroll the window by the values in scroll.x/y\n scroll: function scroll() {\n var options = autoScroll.interaction.target.options[autoScroll.interaction.prepared.name].autoScroll;\n var container = options.container || getWindow(autoScroll.interaction.element);\n var now = new Date().getTime();\n // change in time in seconds\n var dt = (now - autoScroll.prevTime) / 1000;\n // displacement\n var s = options.speed * dt;\n\n if (s >= 1) {\n if (is.window(container)) {\n container.scrollBy(autoScroll.x * s, autoScroll.y * s);\n } else if (container) {\n container.scrollLeft += autoScroll.x * s;\n container.scrollTop += autoScroll.y * s;\n }\n\n autoScroll.prevTime = now;\n }\n\n if (autoScroll.isScrolling) {\n raf.cancel(autoScroll.i);\n autoScroll.i = raf.request(autoScroll.scroll);\n }\n },\n check: function check(interactable, actionName) {\n var options = interactable.options;\n\n return options[actionName].autoScroll && options[actionName].autoScroll.enabled;\n },\n onInteractionMove: function onInteractionMove(_ref) {\n var interaction = _ref.interaction,\n pointer = _ref.pointer;\n\n if (!(interaction.interacting() && autoScroll.check(interaction.target, interaction.prepared.name))) {\n return;\n }\n\n if (interaction.simulation) {\n autoScroll.x = autoScroll.y = 0;\n return;\n }\n\n var top = void 0;\n var right = void 0;\n var bottom = void 0;\n var left = void 0;\n\n var options = interaction.target.options[interaction.prepared.name].autoScroll;\n var container = options.container || getWindow(interaction.element);\n\n if (is.window(container)) {\n left = pointer.clientX < autoScroll.margin;\n top = pointer.clientY < autoScroll.margin;\n right = pointer.clientX > container.innerWidth - autoScroll.margin;\n bottom = pointer.clientY > container.innerHeight - autoScroll.margin;\n } else {\n var rect = domUtils.getElementClientRect(container);\n\n left = pointer.clientX < rect.left + autoScroll.margin;\n top = pointer.clientY < rect.top + autoScroll.margin;\n right = pointer.clientX > rect.right - autoScroll.margin;\n bottom = pointer.clientY > rect.bottom - autoScroll.margin;\n }\n\n autoScroll.x = right ? 1 : left ? -1 : 0;\n autoScroll.y = bottom ? 1 : top ? -1 : 0;\n\n if (!autoScroll.isScrolling) {\n // set the autoScroll properties to those of the target\n autoScroll.margin = options.margin;\n autoScroll.speed = options.speed;\n\n autoScroll.start(interaction);\n }\n }\n};\n\nInteraction.signals.on('stop-active', function () {\n autoScroll.stop();\n});\n\nInteraction.signals.on('action-move', autoScroll.onInteractionMove);\n\ndefaultOptions.perAction.autoScroll = autoScroll.defaults;\n\nmodule.exports = autoScroll;\n\n},{\"./Interaction\":5,\"./defaultOptions\":18,\"./utils/domUtils\":39,\"./utils/is\":46,\"./utils/raf\":50,\"./utils/window\":52}],12:[function(require,module,exports){\n'use strict';\n\n/** @lends Interactable */\nvar Interactable = require('../Interactable');\nvar actions = require('../actions/base');\nvar is = require('../utils/is');\nvar domUtils = require('../utils/domUtils');\n\nvar _require = require('../utils'),\n warnOnce = _require.warnOnce;\n\nInteractable.prototype.getAction = function (pointer, event, interaction, element) {\n var action = this.defaultActionChecker(pointer, event, interaction, element);\n\n if (this.options.actionChecker) {\n return this.options.actionChecker(pointer, event, action, this, element, interaction);\n }\n\n return action;\n};\n\n/**\n * ```js\n * interact(element, { ignoreFrom: document.getElementById('no-action') });\n * // or\n * interact(element).ignoreFrom('input, textarea, a');\n * ```\n * @deprecated\n * If the target of the `mousedown`, `pointerdown` or `touchstart` event or any\n * of it's parents match the given CSS selector or Element, no\n * drag/resize/gesture is started.\n *\n * Don't use this method. Instead set the `ignoreFrom` option for each action\n * or for `pointerEvents`\n *\n * @example\n * interact(targett)\n * .draggable({\n * ignoreFrom: 'input, textarea, a[href]'',\n * })\n * .pointerEvents({\n * ignoreFrom: '[no-pointer]',\n * });\n *\n * @param {string | Element | null} [newValue] a CSS selector string, an\n * Element or `null` to not ignore any elements\n * @return {string | Element | object} The current ignoreFrom value or this\n * Interactable\n */\nInteractable.prototype.ignoreFrom = warnOnce(function (newValue) {\n return this._backCompatOption('ignoreFrom', newValue);\n}, 'Interactable.ignoreForm() has been deprecated. Use Interactble.draggable({ignoreFrom: newValue}).');\n\n/**\n * ```js\n *\n * @deprecated\n * A drag/resize/gesture is started only If the target of the `mousedown`,\n * `pointerdown` or `touchstart` event or any of it's parents match the given\n * CSS selector or Element.\n *\n * Don't use this method. Instead set the `allowFrom` option for each action\n * or for `pointerEvents`\n *\n * @example\n * interact(targett)\n * .resizable({\n * allowFrom: '.resize-handle',\n * .pointerEvents({\n * allowFrom: '.handle',,\n * });\n *\n * @param {string | Element | null} [newValue] a CSS selector string, an\n * Element or `null` to allow from any element\n * @return {string | Element | object} The current allowFrom value or this\n * Interactable\n */\nInteractable.prototype.allowFrom = warnOnce(function (newValue) {\n return this._backCompatOption('allowFrom', newValue);\n}, 'Interactable.allowForm() has been deprecated. Use Interactble.draggable({allowFrom: newValue}).');\n\nInteractable.prototype.testIgnore = function (ignoreFrom, interactableElement, element) {\n if (!ignoreFrom || !is.element(element)) {\n return false;\n }\n\n if (is.string(ignoreFrom)) {\n return domUtils.matchesUpTo(element, ignoreFrom, interactableElement);\n } else if (is.element(ignoreFrom)) {\n return domUtils.nodeContains(ignoreFrom, element);\n }\n\n return false;\n};\n\nInteractable.prototype.testAllow = function (allowFrom, interactableElement, element) {\n if (!allowFrom) {\n return true;\n }\n\n if (!is.element(element)) {\n return false;\n }\n\n if (is.string(allowFrom)) {\n return domUtils.matchesUpTo(element, allowFrom, interactableElement);\n } else if (is.element(allowFrom)) {\n return domUtils.nodeContains(allowFrom, element);\n }\n\n return false;\n};\n\nInteractable.prototype.testIgnoreAllow = function (options, interactableElement, eventTarget) {\n return !this.testIgnore(options.ignoreFrom, interactableElement, eventTarget) && this.testAllow(options.allowFrom, interactableElement, eventTarget);\n};\n\n/**\n * ```js\n * interact('.resize-drag')\n * .resizable(true)\n * .draggable(true)\n * .actionChecker(function (pointer, event, action, interactable, element, interaction) {\n *\n * if (interact.matchesSelector(event.target, '.drag-handle') {\n * // force drag with handle target\n * action.name = drag;\n * }\n * else {\n * // resize from the top and right edges\n * action.name = 'resize';\n * action.edges = { top: true, right: true };\n * }\n *\n * return action;\n * });\n * ```\n *\n * Gets or sets the function used to check action to be performed on\n * pointerDown\n *\n * @param {function | null} [checker] A function which takes a pointer event,\n * defaultAction string, interactable, element and interaction as parameters\n * and returns an object with name property 'drag' 'resize' or 'gesture' and\n * optionally an `edges` object with boolean 'top', 'left', 'bottom' and right\n * props.\n * @return {Function | Interactable} The checker function or this Interactable\n */\nInteractable.prototype.actionChecker = function (checker) {\n if (is.function(checker)) {\n this.options.actionChecker = checker;\n\n return this;\n }\n\n if (checker === null) {\n delete this.options.actionChecker;\n\n return this;\n }\n\n return this.options.actionChecker;\n};\n\n/**\n * Returns or sets whether the the cursor should be changed depending on the\n * action that would be performed if the mouse were pressed and dragged.\n *\n * @param {boolean} [newValue]\n * @return {boolean | Interactable} The current setting or this Interactable\n */\nInteractable.prototype.styleCursor = function (newValue) {\n if (is.bool(newValue)) {\n this.options.styleCursor = newValue;\n\n return this;\n }\n\n if (newValue === null) {\n delete this.options.styleCursor;\n\n return this;\n }\n\n return this.options.styleCursor;\n};\n\nInteractable.prototype.defaultActionChecker = function (pointer, event, interaction, element) {\n var rect = this.getRect(element);\n var buttons = event.buttons || {\n 0: 1,\n 1: 4,\n 3: 8,\n 4: 16\n }[event.button];\n var action = null;\n\n for (var _i = 0; _i < actions.names.length; _i++) {\n var _ref;\n\n _ref = actions.names[_i];\n var actionName = _ref;\n\n // check mouseButton setting if the pointer is down\n if (interaction.pointerIsDown && /mouse|pointer/.test(interaction.pointerType) && (buttons & this.options[actionName].mouseButtons) === 0) {\n continue;\n }\n\n action = actions[actionName].checker(pointer, event, this, element, interaction, rect);\n\n if (action) {\n return action;\n }\n }\n};\n\n},{\"../Interactable\":4,\"../actions/base\":6,\"../utils\":44,\"../utils/domUtils\":39,\"../utils/is\":46}],13:[function(require,module,exports){\n'use strict';\n\nvar interact = require('../interact');\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar actions = require('../actions/base');\nvar defaultOptions = require('../defaultOptions');\nvar scope = require('../scope');\nvar utils = require('../utils');\nvar signals = require('../utils/Signals').new();\n\nrequire('./InteractableMethods');\n\nvar autoStart = {\n signals: signals,\n withinInteractionLimit: withinInteractionLimit,\n // Allow this many interactions to happen simultaneously\n maxInteractions: Infinity,\n defaults: {\n perAction: {\n manualStart: false,\n max: Infinity,\n maxPerElement: 1,\n allowFrom: null,\n ignoreFrom: null,\n\n // only allow left button by default\n // see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons#Return_value\n mouseButtons: 1\n }\n },\n setActionDefaults: function setActionDefaults(action) {\n utils.extend(action.defaults, autoStart.defaults.perAction);\n },\n validateAction: validateAction\n};\n\n// set cursor style on mousedown\nInteraction.signals.on('down', function (_ref) {\n var interaction = _ref.interaction,\n pointer = _ref.pointer,\n event = _ref.event,\n eventTarget = _ref.eventTarget;\n\n if (interaction.interacting()) {\n return;\n }\n\n var actionInfo = getActionInfo(interaction, pointer, event, eventTarget);\n prepare(interaction, actionInfo);\n});\n\n// set cursor style on mousemove\nInteraction.signals.on('move', function (_ref2) {\n var interaction = _ref2.interaction,\n pointer = _ref2.pointer,\n event = _ref2.event,\n eventTarget = _ref2.eventTarget;\n\n if (interaction.pointerType !== 'mouse' || interaction.pointerIsDown || interaction.interacting()) {\n return;\n }\n\n var actionInfo = getActionInfo(interaction, pointer, event, eventTarget);\n prepare(interaction, actionInfo);\n});\n\nInteraction.signals.on('move', function (arg) {\n var interaction = arg.interaction,\n event = arg.event;\n\n\n if (!interaction.pointerIsDown || interaction.interacting() || !interaction.pointerWasMoved || !interaction.prepared.name) {\n return;\n }\n\n signals.fire('before-start', arg);\n\n var target = interaction.target;\n\n if (interaction.prepared.name && target) {\n // check manualStart and interaction limit\n if (target.options[interaction.prepared.name].manualStart || !withinInteractionLimit(target, interaction.element, interaction.prepared)) {\n interaction.stop(event);\n } else {\n interaction.start(interaction.prepared, target, interaction.element);\n }\n }\n});\n\n// Check if the current target supports the action.\n// If so, return the validated action. Otherwise, return null\nfunction validateAction(action, interactable, element, eventTarget) {\n if (utils.is.object(action) && interactable.testIgnoreAllow(interactable.options[action.name], element, eventTarget) && interactable.options[action.name].enabled && withinInteractionLimit(interactable, element, action)) {\n return action;\n }\n\n return null;\n}\n\nfunction validateSelector(interaction, pointer, event, matches, matchElements, eventTarget) {\n for (var i = 0, len = matches.length; i < len; i++) {\n var match = matches[i];\n var matchElement = matchElements[i];\n var action = validateAction(match.getAction(pointer, event, interaction, matchElement), match, matchElement, eventTarget);\n\n if (action) {\n return {\n action: action,\n target: match,\n element: matchElement\n };\n }\n }\n\n return {};\n}\n\nfunction getActionInfo(interaction, pointer, event, eventTarget) {\n var matches = [];\n var matchElements = [];\n\n var element = eventTarget;\n\n function pushMatches(interactable) {\n matches.push(interactable);\n matchElements.push(element);\n }\n\n while (utils.is.element(element)) {\n matches = [];\n matchElements = [];\n\n scope.interactables.forEachMatch(element, pushMatches);\n\n var actionInfo = validateSelector(interaction, pointer, event, matches, matchElements, eventTarget);\n\n if (actionInfo.action && !actionInfo.target.options[actionInfo.action.name].manualStart) {\n return actionInfo;\n }\n\n element = utils.parentNode(element);\n }\n\n return {};\n}\n\nfunction prepare(interaction, _ref3) {\n var action = _ref3.action,\n target = _ref3.target,\n element = _ref3.element;\n\n action = action || {};\n\n if (interaction.target && interaction.target.options.styleCursor) {\n interaction.target._doc.documentElement.style.cursor = '';\n }\n\n interaction.target = target;\n interaction.element = element;\n utils.copyAction(interaction.prepared, action);\n\n if (target && target.options.styleCursor) {\n var cursor = action ? actions[action.name].getCursor(action) : '';\n interaction.target._doc.documentElement.style.cursor = cursor;\n }\n\n signals.fire('prepared', { interaction: interaction });\n}\n\nInteraction.signals.on('stop', function (_ref4) {\n var interaction = _ref4.interaction;\n\n var target = interaction.target;\n\n if (target && target.options.styleCursor) {\n target._doc.documentElement.style.cursor = '';\n }\n});\n\nfunction withinInteractionLimit(interactable, element, action) {\n var options = interactable.options;\n var maxActions = options[action.name].max;\n var maxPerElement = options[action.name].maxPerElement;\n var activeInteractions = 0;\n var targetCount = 0;\n var targetElementCount = 0;\n\n // no actions if any of these values == 0\n if (!(maxActions && maxPerElement && autoStart.maxInteractions)) {\n return;\n }\n\n for (var _i = 0; _i < scope.interactions.length; _i++) {\n var _ref5;\n\n _ref5 = scope.interactions[_i];\n var interaction = _ref5;\n\n var otherAction = interaction.prepared.name;\n\n if (!interaction.interacting()) {\n continue;\n }\n\n activeInteractions++;\n\n if (activeInteractions >= autoStart.maxInteractions) {\n return false;\n }\n\n if (interaction.target !== interactable) {\n continue;\n }\n\n targetCount += otherAction === action.name | 0;\n\n if (targetCount >= maxActions) {\n return false;\n }\n\n if (interaction.element === element) {\n targetElementCount++;\n\n if (otherAction !== action.name || targetElementCount >= maxPerElement) {\n return false;\n }\n }\n }\n\n return autoStart.maxInteractions > 0;\n}\n\n/**\n * Returns or sets the maximum number of concurrent interactions allowed. By\n * default only 1 interaction is allowed at a time (for backwards\n * compatibility). To allow multiple interactions on the same Interactables and\n * elements, you need to enable it in the draggable, resizable and gesturable\n * `'max'` and `'maxPerElement'` options.\n *\n * @alias module:interact.maxInteractions\n *\n * @param {number} [newValue] Any number. newValue <= 0 means no interactions.\n */\ninteract.maxInteractions = function (newValue) {\n if (utils.is.number(newValue)) {\n autoStart.maxInteractions = newValue;\n\n return interact;\n }\n\n return autoStart.maxInteractions;\n};\n\nInteractable.settingsMethods.push('styleCursor');\nInteractable.settingsMethods.push('actionChecker');\nInteractable.settingsMethods.push('ignoreFrom');\nInteractable.settingsMethods.push('allowFrom');\n\ndefaultOptions.base.actionChecker = null;\ndefaultOptions.base.styleCursor = true;\n\nutils.extend(defaultOptions.perAction, autoStart.defaults.perAction);\n\nmodule.exports = autoStart;\n\n},{\"../Interactable\":4,\"../Interaction\":5,\"../actions/base\":6,\"../defaultOptions\":18,\"../interact\":21,\"../scope\":33,\"../utils\":44,\"../utils/Signals\":34,\"./InteractableMethods\":12}],14:[function(require,module,exports){\n'use strict';\n\nvar autoStart = require('./base');\nvar scope = require('../scope');\nvar is = require('../utils/is');\n\nvar _require = require('../utils/domUtils'),\n parentNode = _require.parentNode;\n\nautoStart.setActionDefaults(require('../actions/drag'));\n\nautoStart.signals.on('before-start', function (_ref) {\n var interaction = _ref.interaction,\n eventTarget = _ref.eventTarget,\n dx = _ref.dx,\n dy = _ref.dy;\n\n if (interaction.prepared.name !== 'drag') {\n return;\n }\n\n // check if a drag is in the correct axis\n var absX = Math.abs(dx);\n var absY = Math.abs(dy);\n var targetOptions = interaction.target.options.drag;\n var startAxis = targetOptions.startAxis;\n var currentAxis = absX > absY ? 'x' : absX < absY ? 'y' : 'xy';\n\n interaction.prepared.axis = targetOptions.lockAxis === 'start' ? currentAxis[0] // always lock to one axis even if currentAxis === 'xy'\n : targetOptions.lockAxis;\n\n // if the movement isn't in the startAxis of the interactable\n if (currentAxis !== 'xy' && startAxis !== 'xy' && startAxis !== currentAxis) {\n // cancel the prepared action\n interaction.prepared.name = null;\n\n // then try to get a drag from another ineractable\n var element = eventTarget;\n\n var getDraggable = function getDraggable(interactable) {\n if (interactable === interaction.target) {\n return;\n }\n\n var options = interaction.target.options.drag;\n\n if (!options.manualStart && interactable.testIgnoreAllow(options, element, eventTarget)) {\n\n var action = interactable.getAction(interaction.downPointer, interaction.downEvent, interaction, element);\n\n if (action && action.name === 'drag' && checkStartAxis(currentAxis, interactable) && autoStart.validateAction(action, interactable, element, eventTarget)) {\n\n return interactable;\n }\n }\n };\n\n // check all interactables\n while (is.element(element)) {\n var interactable = scope.interactables.forEachMatch(element, getDraggable);\n\n if (interactable) {\n interaction.prepared.name = 'drag';\n interaction.target = interactable;\n interaction.element = element;\n break;\n }\n\n element = parentNode(element);\n }\n }\n});\n\nfunction checkStartAxis(startAxis, interactable) {\n if (!interactable) {\n return false;\n }\n\n var thisAxis = interactable.options.drag.startAxis;\n\n return startAxis === 'xy' || thisAxis === 'xy' || thisAxis === startAxis;\n}\n\n},{\"../actions/drag\":7,\"../scope\":33,\"../utils/domUtils\":39,\"../utils/is\":46,\"./base\":13}],15:[function(require,module,exports){\n'use strict';\n\nrequire('./base').setActionDefaults(require('../actions/gesture'));\n\n},{\"../actions/gesture\":9,\"./base\":13}],16:[function(require,module,exports){\n'use strict';\n\nvar autoStart = require('./base');\nvar Interaction = require('../Interaction');\n\nautoStart.defaults.perAction.hold = 0;\nautoStart.defaults.perAction.delay = 0;\n\nInteraction.signals.on('new', function (interaction) {\n interaction.autoStartHoldTimer = null;\n});\n\nautoStart.signals.on('prepared', function (_ref) {\n var interaction = _ref.interaction;\n\n var hold = getHoldDuration(interaction);\n\n if (hold > 0) {\n interaction.autoStartHoldTimer = setTimeout(function () {\n interaction.start(interaction.prepared, interaction.target, interaction.element);\n }, hold);\n }\n});\n\nInteraction.signals.on('move', function (_ref2) {\n var interaction = _ref2.interaction,\n duplicate = _ref2.duplicate;\n\n if (interaction.pointerWasMoved && !duplicate) {\n clearTimeout(interaction.autoStartHoldTimer);\n }\n});\n\n// prevent regular down->move autoStart\nautoStart.signals.on('before-start', function (_ref3) {\n var interaction = _ref3.interaction;\n\n var hold = getHoldDuration(interaction);\n\n if (hold > 0) {\n interaction.prepared.name = null;\n }\n});\n\nfunction getHoldDuration(interaction) {\n var actionName = interaction.prepared && interaction.prepared.name;\n\n if (!actionName) {\n return null;\n }\n\n var options = interaction.target.options;\n\n return options[actionName].hold || options[actionName].delay;\n}\n\nmodule.exports = {\n getHoldDuration: getHoldDuration\n};\n\n},{\"../Interaction\":5,\"./base\":13}],17:[function(require,module,exports){\n'use strict';\n\nrequire('./base').setActionDefaults(require('../actions/resize'));\n\n},{\"../actions/resize\":10,\"./base\":13}],18:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n base: {\n accept: null,\n preventDefault: 'auto',\n deltaSource: 'page'\n },\n\n perAction: {\n origin: { x: 0, y: 0 },\n\n inertia: {\n enabled: false,\n resistance: 10, // the lambda in exponential decay\n minSpeed: 100, // target speed must be above this for inertia to start\n endSpeed: 10, // the speed at which inertia is slow enough to stop\n allowResume: true, // allow resuming an action in inertia phase\n smoothEndDuration: 300 // animate to snap/restrict endOnly if there's no inertia\n }\n }\n};\n\n},{}],19:[function(require,module,exports){\n'use strict';\n\n/* browser entry point */\n\n// inertia\nrequire('./inertia');\n\n// modifiers\nrequire('./modifiers/snap');\nrequire('./modifiers/restrict');\n\n// pointerEvents\nrequire('./pointerEvents/base');\nrequire('./pointerEvents/holdRepeat');\nrequire('./pointerEvents/interactableTargets');\n\n// autoStart hold\nrequire('./autoStart/hold');\n\n// actions\nrequire('./actions/gesture');\nrequire('./actions/resize');\nrequire('./actions/drag');\nrequire('./actions/drop');\n\n// load these modifiers after resize is loaded\nrequire('./modifiers/snapSize');\nrequire('./modifiers/restrictEdges');\nrequire('./modifiers/restrictSize');\n\n// autoStart actions\nrequire('./autoStart/gesture');\nrequire('./autoStart/resize');\nrequire('./autoStart/drag');\n\n// Interactable preventDefault setting\nrequire('./interactablePreventDefault.js');\n\n// autoScroll\nrequire('./autoScroll');\n\n// export interact\nmodule.exports = require('./interact');\n\n},{\"./actions/drag\":7,\"./actions/drop\":8,\"./actions/gesture\":9,\"./actions/resize\":10,\"./autoScroll\":11,\"./autoStart/drag\":14,\"./autoStart/gesture\":15,\"./autoStart/hold\":16,\"./autoStart/resize\":17,\"./inertia\":20,\"./interact\":21,\"./interactablePreventDefault.js\":22,\"./modifiers/restrict\":24,\"./modifiers/restrictEdges\":25,\"./modifiers/restrictSize\":26,\"./modifiers/snap\":27,\"./modifiers/snapSize\":28,\"./pointerEvents/base\":30,\"./pointerEvents/holdRepeat\":31,\"./pointerEvents/interactableTargets\":32}],20:[function(require,module,exports){\n'use strict';\n\nvar InteractEvent = require('./InteractEvent');\nvar Interaction = require('./Interaction');\nvar modifiers = require('./modifiers/base');\nvar utils = require('./utils');\nvar animationFrame = require('./utils/raf');\n\nInteraction.signals.on('new', function (interaction) {\n interaction.inertiaStatus = {\n active: false,\n smoothEnd: false,\n allowResume: false,\n\n startEvent: null,\n upCoords: {},\n\n xe: 0, ye: 0,\n sx: 0, sy: 0,\n\n t0: 0,\n vx0: 0, vys: 0,\n duration: 0,\n\n lambda_v0: 0,\n one_ve_v0: 0,\n i: null\n };\n\n interaction.boundInertiaFrame = function () {\n return inertiaFrame.apply(interaction);\n };\n interaction.boundSmoothEndFrame = function () {\n return smoothEndFrame.apply(interaction);\n };\n});\n\nInteraction.signals.on('down', function (_ref) {\n var interaction = _ref.interaction,\n event = _ref.event,\n pointer = _ref.pointer,\n eventTarget = _ref.eventTarget;\n\n var status = interaction.inertiaStatus;\n\n // Check if the down event hits the current inertia target\n if (status.active) {\n var element = eventTarget;\n\n // climb up the DOM tree from the event target\n while (utils.is.element(element)) {\n\n // if interaction element is the current inertia target element\n if (element === interaction.element) {\n // stop inertia\n animationFrame.cancel(status.i);\n status.active = false;\n interaction.simulation = null;\n\n // update pointers to the down event's coordinates\n interaction.updatePointer(pointer);\n utils.setCoords(interaction.curCoords, interaction.pointers);\n\n // fire appropriate signals\n var signalArg = { interaction: interaction };\n Interaction.signals.fire('before-action-move', signalArg);\n Interaction.signals.fire('action-resume', signalArg);\n\n // fire a reume event\n var resumeEvent = new InteractEvent(interaction, event, interaction.prepared.name, 'inertiaresume', interaction.element);\n\n interaction.target.fire(resumeEvent);\n interaction.prevEvent = resumeEvent;\n modifiers.resetStatuses(interaction.modifierStatuses);\n\n utils.copyCoords(interaction.prevCoords, interaction.curCoords);\n break;\n }\n\n element = utils.parentNode(element);\n }\n }\n});\n\nInteraction.signals.on('up', function (_ref2) {\n var interaction = _ref2.interaction,\n event = _ref2.event;\n\n var status = interaction.inertiaStatus;\n\n if (!interaction.interacting() || status.active) {\n return;\n }\n\n var target = interaction.target;\n var options = target && target.options;\n var inertiaOptions = options && interaction.prepared.name && options[interaction.prepared.name].inertia;\n\n var now = new Date().getTime();\n var statuses = {};\n var page = utils.extend({}, interaction.curCoords.page);\n var pointerSpeed = interaction.pointerDelta.client.speed;\n\n var smoothEnd = false;\n var modifierResult = void 0;\n\n // check if inertia should be started\n var inertiaPossible = inertiaOptions && inertiaOptions.enabled && interaction.prepared.name !== 'gesture' && event !== status.startEvent;\n\n var inertia = inertiaPossible && now - interaction.curCoords.timeStamp < 50 && pointerSpeed > inertiaOptions.minSpeed && pointerSpeed > inertiaOptions.endSpeed;\n\n var modifierArg = {\n interaction: interaction,\n pageCoords: page,\n statuses: statuses,\n preEnd: true,\n requireEndOnly: true\n };\n\n // smoothEnd\n if (inertiaPossible && !inertia) {\n modifiers.resetStatuses(statuses);\n\n modifierResult = modifiers.setAll(modifierArg);\n\n if (modifierResult.shouldMove && modifierResult.locked) {\n smoothEnd = true;\n }\n }\n\n if (!(inertia || smoothEnd)) {\n return;\n }\n\n utils.copyCoords(status.upCoords, interaction.curCoords);\n\n interaction.pointers[0] = status.startEvent = new InteractEvent(interaction, event, interaction.prepared.name, 'inertiastart', interaction.element);\n\n status.t0 = now;\n\n status.active = true;\n status.allowResume = inertiaOptions.allowResume;\n interaction.simulation = status;\n\n target.fire(status.startEvent);\n\n if (inertia) {\n status.vx0 = interaction.pointerDelta.client.vx;\n status.vy0 = interaction.pointerDelta.client.vy;\n status.v0 = pointerSpeed;\n\n calcInertia(interaction, status);\n\n utils.extend(page, interaction.curCoords.page);\n\n page.x += status.xe;\n page.y += status.ye;\n\n modifiers.resetStatuses(statuses);\n\n modifierResult = modifiers.setAll(modifierArg);\n\n status.modifiedXe += modifierResult.dx;\n status.modifiedYe += modifierResult.dy;\n\n status.i = animationFrame.request(interaction.boundInertiaFrame);\n } else {\n status.smoothEnd = true;\n status.xe = modifierResult.dx;\n status.ye = modifierResult.dy;\n\n status.sx = status.sy = 0;\n\n status.i = animationFrame.request(interaction.boundSmoothEndFrame);\n }\n});\n\nInteraction.signals.on('stop-active', function (_ref3) {\n var interaction = _ref3.interaction;\n\n var status = interaction.inertiaStatus;\n\n if (status.active) {\n animationFrame.cancel(status.i);\n status.active = false;\n interaction.simulation = null;\n }\n});\n\nfunction calcInertia(interaction, status) {\n var inertiaOptions = interaction.target.options[interaction.prepared.name].inertia;\n var lambda = inertiaOptions.resistance;\n var inertiaDur = -Math.log(inertiaOptions.endSpeed / status.v0) / lambda;\n\n status.x0 = interaction.prevEvent.pageX;\n status.y0 = interaction.prevEvent.pageY;\n status.t0 = status.startEvent.timeStamp / 1000;\n status.sx = status.sy = 0;\n\n status.modifiedXe = status.xe = (status.vx0 - inertiaDur) / lambda;\n status.modifiedYe = status.ye = (status.vy0 - inertiaDur) / lambda;\n status.te = inertiaDur;\n\n status.lambda_v0 = lambda / status.v0;\n status.one_ve_v0 = 1 - inertiaOptions.endSpeed / status.v0;\n}\n\nfunction inertiaFrame() {\n updateInertiaCoords(this);\n utils.setCoordDeltas(this.pointerDelta, this.prevCoords, this.curCoords);\n\n var status = this.inertiaStatus;\n var options = this.target.options[this.prepared.name].inertia;\n var lambda = options.resistance;\n var t = new Date().getTime() / 1000 - status.t0;\n\n if (t < status.te) {\n\n var progress = 1 - (Math.exp(-lambda * t) - status.lambda_v0) / status.one_ve_v0;\n\n if (status.modifiedXe === status.xe && status.modifiedYe === status.ye) {\n status.sx = status.xe * progress;\n status.sy = status.ye * progress;\n } else {\n var quadPoint = utils.getQuadraticCurvePoint(0, 0, status.xe, status.ye, status.modifiedXe, status.modifiedYe, progress);\n\n status.sx = quadPoint.x;\n status.sy = quadPoint.y;\n }\n\n this.doMove();\n\n status.i = animationFrame.request(this.boundInertiaFrame);\n } else {\n status.sx = status.modifiedXe;\n status.sy = status.modifiedYe;\n\n this.doMove();\n this.end(status.startEvent);\n status.active = false;\n this.simulation = null;\n }\n\n utils.copyCoords(this.prevCoords, this.curCoords);\n}\n\nfunction smoothEndFrame() {\n updateInertiaCoords(this);\n\n var status = this.inertiaStatus;\n var t = new Date().getTime() - status.t0;\n var duration = this.target.options[this.prepared.name].inertia.smoothEndDuration;\n\n if (t < duration) {\n status.sx = utils.easeOutQuad(t, 0, status.xe, duration);\n status.sy = utils.easeOutQuad(t, 0, status.ye, duration);\n\n this.pointerMove(status.startEvent, status.startEvent);\n\n status.i = animationFrame.request(this.boundSmoothEndFrame);\n } else {\n status.sx = status.xe;\n status.sy = status.ye;\n\n this.pointerMove(status.startEvent, status.startEvent);\n this.end(status.startEvent);\n\n status.smoothEnd = status.active = false;\n this.simulation = null;\n }\n}\n\nfunction updateInertiaCoords(interaction) {\n var status = interaction.inertiaStatus;\n\n // return if inertia isn't running\n if (!status.active) {\n return;\n }\n\n var pageUp = status.upCoords.page;\n var clientUp = status.upCoords.client;\n\n utils.setCoords(interaction.curCoords, [{\n pageX: pageUp.x + status.sx,\n pageY: pageUp.y + status.sy,\n clientX: clientUp.x + status.sx,\n clientY: clientUp.y + status.sy\n }]);\n}\n\n},{\"./InteractEvent\":3,\"./Interaction\":5,\"./modifiers/base\":23,\"./utils\":44,\"./utils/raf\":50}],21:[function(require,module,exports){\n'use strict';\n\n/** @module interact */\n\nvar browser = require('./utils/browser');\nvar events = require('./utils/events');\nvar utils = require('./utils');\nvar scope = require('./scope');\nvar Interactable = require('./Interactable');\nvar Interaction = require('./Interaction');\n\nvar globalEvents = {};\n\n/**\n * ```js\n * interact('#draggable').draggable(true);\n *\n * var rectables = interact('rect');\n * rectables\n * .gesturable(true)\n * .on('gesturemove', function (event) {\n * // ...\n * });\n * ```\n *\n * The methods of this variable can be used to set elements as interactables\n * and also to change various default settings.\n *\n * Calling it as a function and passing an element or a valid CSS selector\n * string returns an Interactable object which has various methods to configure\n * it.\n *\n * @global\n *\n * @param {Element | string} element The HTML or SVG Element to interact with\n * or CSS selector\n * @return {Interactable}\n */\nfunction interact(element, options) {\n var interactable = scope.interactables.get(element, options);\n\n if (!interactable) {\n interactable = new Interactable(element, options);\n interactable.events.global = globalEvents;\n }\n\n return interactable;\n}\n\n/**\n * Check if an element or selector has been set with the {@link interact}\n * function\n *\n * @alias module:interact.isSet\n *\n * @param {Element} element The Element being searched for\n * @return {boolean} Indicates if the element or CSS selector was previously\n * passed to interact\n*/\ninteract.isSet = function (element, options) {\n return scope.interactables.indexOfElement(element, options && options.context) !== -1;\n};\n\n/**\n * Add a global listener for an InteractEvent or adds a DOM event to `document`\n *\n * @alias module:interact.on\n *\n * @param {string | array | object} type The types of events to listen for\n * @param {function} listener The function event (s)\n * @param {object | boolean} [options] object or useCapture flag for\n * addEventListener\n * @return {object} interact\n */\ninteract.on = function (type, listener, options) {\n if (utils.is.string(type) && type.search(' ') !== -1) {\n type = type.trim().split(/ +/);\n }\n\n if (utils.is.array(type)) {\n for (var _i = 0; _i < type.length; _i++) {\n var _ref;\n\n _ref = type[_i];\n var eventType = _ref;\n\n interact.on(eventType, listener, options);\n }\n\n return interact;\n }\n\n if (utils.is.object(type)) {\n for (var prop in type) {\n interact.on(prop, type[prop], listener);\n }\n\n return interact;\n }\n\n // if it is an InteractEvent type, add listener to globalEvents\n if (utils.contains(Interactable.eventTypes, type)) {\n // if this type of event was never bound\n if (!globalEvents[type]) {\n globalEvents[type] = [listener];\n } else {\n globalEvents[type].push(listener);\n }\n }\n // If non InteractEvent type, addEventListener to document\n else {\n events.add(scope.document, type, listener, { options: options });\n }\n\n return interact;\n};\n\n/**\n * Removes a global InteractEvent listener or DOM event from `document`\n *\n * @alias module:interact.off\n *\n * @param {string | array | object} type The types of events that were listened\n * for\n * @param {function} listener The listener function to be removed\n * @param {object | boolean} options [options] object or useCapture flag for\n * removeEventListener\n * @return {object} interact\n */\ninteract.off = function (type, listener, options) {\n if (utils.is.string(type) && type.search(' ') !== -1) {\n type = type.trim().split(/ +/);\n }\n\n if (utils.is.array(type)) {\n for (var _i2 = 0; _i2 < type.length; _i2++) {\n var _ref2;\n\n _ref2 = type[_i2];\n var eventType = _ref2;\n\n interact.off(eventType, listener, options);\n }\n\n return interact;\n }\n\n if (utils.is.object(type)) {\n for (var prop in type) {\n interact.off(prop, type[prop], listener);\n }\n\n return interact;\n }\n\n if (!utils.contains(Interactable.eventTypes, type)) {\n events.remove(scope.document, type, listener, options);\n } else {\n var index = void 0;\n\n if (type in globalEvents && (index = globalEvents[type].indexOf(listener)) !== -1) {\n globalEvents[type].splice(index, 1);\n }\n }\n\n return interact;\n};\n\n/**\n * Returns an object which exposes internal data\n\n * @alias module:interact.debug\n *\n * @return {object} An object with properties that outline the current state\n * and expose internal functions and variables\n */\ninteract.debug = function () {\n return scope;\n};\n\n// expose the functions used to calculate multi-touch properties\ninteract.getPointerAverage = utils.pointerAverage;\ninteract.getTouchBBox = utils.touchBBox;\ninteract.getTouchDistance = utils.touchDistance;\ninteract.getTouchAngle = utils.touchAngle;\n\ninteract.getElementRect = utils.getElementRect;\ninteract.getElementClientRect = utils.getElementClientRect;\ninteract.matchesSelector = utils.matchesSelector;\ninteract.closest = utils.closest;\n\n/**\n * @alias module:interact.supportsTouch\n *\n * @return {boolean} Whether or not the browser supports touch input\n */\ninteract.supportsTouch = function () {\n return browser.supportsTouch;\n};\n\n/**\n * @alias module:interact.supportsPointerEvent\n *\n * @return {boolean} Whether or not the browser supports PointerEvents\n */\ninteract.supportsPointerEvent = function () {\n return browser.supportsPointerEvent;\n};\n\n/**\n * Cancels all interactions (end events are not fired)\n *\n * @alias module:interact.stop\n *\n * @param {Event} event An event on which to call preventDefault()\n * @return {object} interact\n */\ninteract.stop = function (event) {\n for (var i = scope.interactions.length - 1; i >= 0; i--) {\n scope.interactions[i].stop(event);\n }\n\n return interact;\n};\n\n/**\n * Returns or sets the distance the pointer must be moved before an action\n * sequence occurs. This also affects tolerance for tap events.\n *\n * @alias module:interact.pointerMoveTolerance\n *\n * @param {number} [newValue] The movement from the start position must be greater than this value\n * @return {interact | number}\n */\ninteract.pointerMoveTolerance = function (newValue) {\n if (utils.is.number(newValue)) {\n Interaction.pointerMoveTolerance = newValue;\n\n return interact;\n }\n\n return Interaction.pointerMoveTolerance;\n};\n\ninteract.addDocument = scope.addDocument;\ninteract.removeDocument = scope.removeDocument;\n\nscope.interact = interact;\n\nmodule.exports = interact;\n\n},{\"./Interactable\":4,\"./Interaction\":5,\"./scope\":33,\"./utils\":44,\"./utils/browser\":36,\"./utils/events\":40}],22:[function(require,module,exports){\n'use strict';\n\nvar Interactable = require('./Interactable');\nvar Interaction = require('./Interaction');\nvar scope = require('./scope');\nvar is = require('./utils/is');\nvar events = require('./utils/events');\nvar browser = require('./utils/browser');\n\nvar _require = require('./utils/domUtils'),\n nodeContains = _require.nodeContains,\n matchesSelector = _require.matchesSelector;\n\n/**\n * Returns or sets whether to prevent the browser's default behaviour in\n * response to pointer events. Can be set to:\n * - `'always'` to always prevent\n * - `'never'` to never prevent\n * - `'auto'` to let interact.js try to determine what would be best\n *\n * @param {string} [newValue] `true`, `false` or `'auto'`\n * @return {string | Interactable} The current setting or this Interactable\n */\n\n\nInteractable.prototype.preventDefault = function (newValue) {\n if (/^(always|never|auto)$/.test(newValue)) {\n this.options.preventDefault = newValue;\n return this;\n }\n\n if (is.bool(newValue)) {\n this.options.preventDefault = newValue ? 'always' : 'never';\n return this;\n }\n\n return this.options.preventDefault;\n};\n\nInteractable.prototype.checkAndPreventDefault = function (event) {\n var setting = this.options.preventDefault;\n\n if (setting === 'never') {\n return;\n }\n\n if (setting === 'always') {\n event.preventDefault();\n return;\n }\n\n // setting === 'auto'\n\n // don't preventDefault of touch{start,move} events if the browser supports passive\n // events listeners. CSS touch-action and user-selecct should be used instead\n if (events.supportsPassive && /^touch(start|move)$/.test(event.type) && !browser.isIOS) {\n return;\n }\n\n // don't preventDefault of pointerdown events\n if (/^(mouse|pointer|touch)*(down|start)/i.test(event.type)) {\n return;\n }\n\n // don't preventDefault on editable elements\n if (is.element(event.target) && matchesSelector(event.target, 'input,select,textarea,[contenteditable=true],[contenteditable=true] *')) {\n return;\n }\n\n event.preventDefault();\n};\n\nfunction onInteractionEvent(_ref) {\n var interaction = _ref.interaction,\n event = _ref.event;\n\n if (interaction.target) {\n interaction.target.checkAndPreventDefault(event);\n }\n}\n\nvar _arr = ['down', 'move', 'up', 'cancel'];\nfor (var _i = 0; _i < _arr.length; _i++) {\n var eventSignal = _arr[_i];\n Interaction.signals.on(eventSignal, onInteractionEvent);\n}\n\n// prevent native HTML5 drag on interact.js target elements\nInteraction.docEvents.dragstart = function preventNativeDrag(event) {\n for (var _i2 = 0; _i2 < scope.interactions.length; _i2++) {\n var _ref2;\n\n _ref2 = scope.interactions[_i2];\n var interaction = _ref2;\n\n\n if (interaction.element && (interaction.element === event.target || nodeContains(interaction.element, event.target))) {\n\n interaction.target.checkAndPreventDefault(event);\n return;\n }\n }\n};\n\n},{\"./Interactable\":4,\"./Interaction\":5,\"./scope\":33,\"./utils/browser\":36,\"./utils/domUtils\":39,\"./utils/events\":40,\"./utils/is\":46}],23:[function(require,module,exports){\n'use strict';\n\nvar InteractEvent = require('../InteractEvent');\nvar Interaction = require('../Interaction');\nvar extend = require('../utils/extend');\n\nvar modifiers = {\n names: [],\n\n setOffsets: function setOffsets(arg) {\n var interaction = arg.interaction,\n page = arg.pageCoords;\n var target = interaction.target,\n element = interaction.element,\n startOffset = interaction.startOffset;\n\n var rect = target.getRect(element);\n\n if (rect) {\n startOffset.left = page.x - rect.left;\n startOffset.top = page.y - rect.top;\n\n startOffset.right = rect.right - page.x;\n startOffset.bottom = rect.bottom - page.y;\n\n if (!('width' in rect)) {\n rect.width = rect.right - rect.left;\n }\n if (!('height' in rect)) {\n rect.height = rect.bottom - rect.top;\n }\n } else {\n startOffset.left = startOffset.top = startOffset.right = startOffset.bottom = 0;\n }\n\n arg.rect = rect;\n arg.interactable = target;\n arg.element = element;\n\n for (var _i = 0; _i < modifiers.names.length; _i++) {\n var _ref;\n\n _ref = modifiers.names[_i];\n var modifierName = _ref;\n\n arg.options = target.options[interaction.prepared.name][modifierName];\n\n if (!arg.options) {\n continue;\n }\n\n interaction.modifierOffsets[modifierName] = modifiers[modifierName].setOffset(arg);\n }\n },\n\n setAll: function setAll(arg) {\n var interaction = arg.interaction,\n statuses = arg.statuses,\n preEnd = arg.preEnd,\n requireEndOnly = arg.requireEndOnly;\n\n var result = {\n dx: 0,\n dy: 0,\n changed: false,\n locked: false,\n shouldMove: true\n };\n\n arg.modifiedCoords = extend({}, arg.pageCoords);\n\n for (var _i2 = 0; _i2 < modifiers.names.length; _i2++) {\n var _ref2;\n\n _ref2 = modifiers.names[_i2];\n var modifierName = _ref2;\n\n var modifier = modifiers[modifierName];\n var options = interaction.target.options[interaction.prepared.name][modifierName];\n\n if (!shouldDo(options, preEnd, requireEndOnly)) {\n continue;\n }\n\n arg.status = arg.status = statuses[modifierName];\n arg.options = options;\n arg.offset = arg.interaction.modifierOffsets[modifierName];\n\n modifier.set(arg);\n\n if (arg.status.locked) {\n arg.modifiedCoords.x += arg.status.dx;\n arg.modifiedCoords.y += arg.status.dy;\n\n result.dx += arg.status.dx;\n result.dy += arg.status.dy;\n\n result.locked = true;\n }\n }\n\n // a move should be fired if:\n // - there are no modifiers enabled,\n // - no modifiers are \"locked\" i.e. have changed the pointer's coordinates, or\n // - the locked coords have changed since the last pointer move\n result.shouldMove = !arg.status || !result.locked || arg.status.changed;\n\n return result;\n },\n\n resetStatuses: function resetStatuses(statuses) {\n for (var _i3 = 0; _i3 < modifiers.names.length; _i3++) {\n var _ref3;\n\n _ref3 = modifiers.names[_i3];\n var modifierName = _ref3;\n\n var status = statuses[modifierName] || {};\n\n status.dx = status.dy = 0;\n status.modifiedX = status.modifiedY = NaN;\n status.locked = false;\n status.changed = true;\n\n statuses[modifierName] = status;\n }\n\n return statuses;\n },\n\n start: function start(_ref4, signalName) {\n var interaction = _ref4.interaction;\n\n var arg = {\n interaction: interaction,\n pageCoords: (signalName === 'action-resume' ? interaction.curCoords : interaction.startCoords).page,\n startOffset: interaction.startOffset,\n statuses: interaction.modifierStatuses,\n preEnd: false,\n requireEndOnly: false\n };\n\n modifiers.setOffsets(arg);\n modifiers.resetStatuses(arg.statuses);\n\n arg.pageCoords = extend({}, interaction.startCoords.page);\n interaction.modifierResult = modifiers.setAll(arg);\n },\n\n beforeMove: function beforeMove(_ref5) {\n var interaction = _ref5.interaction,\n preEnd = _ref5.preEnd,\n interactingBeforeMove = _ref5.interactingBeforeMove;\n\n var modifierResult = modifiers.setAll({\n interaction: interaction,\n preEnd: preEnd,\n pageCoords: interaction.curCoords.page,\n statuses: interaction.modifierStatuses,\n requireEndOnly: false\n });\n\n // don't fire an action move if a modifier would keep the event in the same\n // cordinates as before\n if (!modifierResult.shouldMove && interactingBeforeMove) {\n interaction._dontFireMove = true;\n }\n\n interaction.modifierResult = modifierResult;\n },\n\n end: function end(_ref6) {\n var interaction = _ref6.interaction,\n event = _ref6.event;\n\n for (var _i4 = 0; _i4 < modifiers.names.length; _i4++) {\n var _ref7;\n\n _ref7 = modifiers.names[_i4];\n var modifierName = _ref7;\n\n var options = interaction.target.options[interaction.prepared.name][modifierName];\n\n // if the endOnly option is true for any modifier\n if (shouldDo(options, true, true)) {\n // fire a move event at the modified coordinates\n interaction.doMove({ event: event, preEnd: true });\n break;\n }\n }\n },\n\n setXY: function setXY(arg) {\n var iEvent = arg.iEvent,\n interaction = arg.interaction;\n\n var modifierArg = extend({}, arg);\n\n for (var i = 0; i < modifiers.names.length; i++) {\n var modifierName = modifiers.names[i];\n modifierArg.options = interaction.target.options[interaction.prepared.name][modifierName];\n\n if (!modifierArg.options) {\n continue;\n }\n\n var modifier = modifiers[modifierName];\n\n modifierArg.status = interaction.modifierStatuses[modifierName];\n\n iEvent[modifierName] = modifier.modifyCoords(modifierArg);\n }\n }\n};\n\nInteraction.signals.on('new', function (interaction) {\n interaction.startOffset = { left: 0, right: 0, top: 0, bottom: 0 };\n interaction.modifierOffsets = {};\n interaction.modifierStatuses = modifiers.resetStatuses({});\n interaction.modifierResult = null;\n});\n\nInteraction.signals.on('action-start', modifiers.start);\nInteraction.signals.on('action-resume', modifiers.start);\nInteraction.signals.on('before-action-move', modifiers.beforeMove);\nInteraction.signals.on('action-end', modifiers.end);\n\nInteractEvent.signals.on('set-xy', modifiers.setXY);\n\nfunction shouldDo(options, preEnd, requireEndOnly) {\n return options && options.enabled && (preEnd || !options.endOnly) && (!requireEndOnly || options.endOnly);\n}\n\nmodule.exports = modifiers;\n\n},{\"../InteractEvent\":3,\"../Interaction\":5,\"../utils/extend\":41}],24:[function(require,module,exports){\n'use strict';\n\nvar modifiers = require('./base');\nvar utils = require('../utils');\nvar defaultOptions = require('../defaultOptions');\n\nvar restrict = {\n defaults: {\n enabled: false,\n endOnly: false,\n restriction: null,\n elementRect: null\n },\n\n setOffset: function setOffset(_ref) {\n var rect = _ref.rect,\n startOffset = _ref.startOffset,\n options = _ref.options;\n\n var elementRect = options && options.elementRect;\n var offset = {};\n\n if (rect && elementRect) {\n offset.left = startOffset.left - rect.width * elementRect.left;\n offset.top = startOffset.top - rect.height * elementRect.top;\n\n offset.right = startOffset.right - rect.width * (1 - elementRect.right);\n offset.bottom = startOffset.bottom - rect.height * (1 - elementRect.bottom);\n } else {\n offset.left = offset.top = offset.right = offset.bottom = 0;\n }\n\n return offset;\n },\n\n set: function set(_ref2) {\n var modifiedCoords = _ref2.modifiedCoords,\n interaction = _ref2.interaction,\n status = _ref2.status,\n options = _ref2.options;\n\n if (!options) {\n return status;\n }\n\n var page = status.useStatusXY ? { x: status.x, y: status.y } : utils.extend({}, modifiedCoords);\n\n var restriction = getRestrictionRect(options.restriction, interaction, page);\n\n if (!restriction) {\n return status;\n }\n\n status.dx = 0;\n status.dy = 0;\n status.locked = false;\n\n var rect = restriction;\n var modifiedX = page.x;\n var modifiedY = page.y;\n\n var offset = interaction.modifierOffsets.restrict;\n\n // object is assumed to have\n // x, y, width, height or\n // left, top, right, bottom\n if ('x' in restriction && 'y' in restriction) {\n modifiedX = Math.max(Math.min(rect.x + rect.width - offset.right, page.x), rect.x + offset.left);\n modifiedY = Math.max(Math.min(rect.y + rect.height - offset.bottom, page.y), rect.y + offset.top);\n } else {\n modifiedX = Math.max(Math.min(rect.right - offset.right, page.x), rect.left + offset.left);\n modifiedY = Math.max(Math.min(rect.bottom - offset.bottom, page.y), rect.top + offset.top);\n }\n\n status.dx = modifiedX - page.x;\n status.dy = modifiedY - page.y;\n\n status.changed = status.modifiedX !== modifiedX || status.modifiedY !== modifiedY;\n status.locked = !!(status.dx || status.dy);\n\n status.modifiedX = modifiedX;\n status.modifiedY = modifiedY;\n },\n\n modifyCoords: function modifyCoords(_ref3) {\n var page = _ref3.page,\n client = _ref3.client,\n status = _ref3.status,\n phase = _ref3.phase,\n options = _ref3.options;\n\n var elementRect = options && options.elementRect;\n\n if (options && options.enabled && !(phase === 'start' && elementRect && status.locked)) {\n\n if (status.locked) {\n page.x += status.dx;\n page.y += status.dy;\n client.x += status.dx;\n client.y += status.dy;\n\n return {\n dx: status.dx,\n dy: status.dy\n };\n }\n }\n },\n\n getRestrictionRect: getRestrictionRect\n};\n\nfunction getRestrictionRect(value, interaction, page) {\n if (utils.is.function(value)) {\n return utils.resolveRectLike(value, interaction.target, interaction.element, [page.x, page.y, interaction]);\n } else {\n return utils.resolveRectLike(value, interaction.target, interaction.element);\n }\n}\n\nmodifiers.restrict = restrict;\nmodifiers.names.push('restrict');\n\ndefaultOptions.perAction.restrict = restrict.defaults;\n\nmodule.exports = restrict;\n\n},{\"../defaultOptions\":18,\"../utils\":44,\"./base\":23}],25:[function(require,module,exports){\n'use strict';\n\n// This module adds the options.resize.restrictEdges setting which sets min and\n// max for the top, left, bottom and right edges of the target being resized.\n//\n// interact(target).resize({\n// edges: { top: true, left: true },\n// restrictEdges: {\n// inner: { top: 200, left: 200, right: 400, bottom: 400 },\n// outer: { top: 0, left: 0, right: 600, bottom: 600 },\n// },\n// });\n\nvar modifiers = require('./base');\nvar utils = require('../utils');\nvar rectUtils = require('../utils/rect');\nvar defaultOptions = require('../defaultOptions');\nvar resize = require('../actions/resize');\n\nvar _require = require('./restrict'),\n getRestrictionRect = _require.getRestrictionRect;\n\nvar noInner = { top: +Infinity, left: +Infinity, bottom: -Infinity, right: -Infinity };\nvar noOuter = { top: -Infinity, left: -Infinity, bottom: +Infinity, right: +Infinity };\n\nvar restrictEdges = {\n defaults: {\n enabled: false,\n endOnly: false,\n min: null,\n max: null,\n offset: null\n },\n\n setOffset: function setOffset(_ref) {\n var interaction = _ref.interaction,\n startOffset = _ref.startOffset,\n options = _ref.options;\n\n if (!options) {\n return utils.extend({}, startOffset);\n }\n\n var offset = getRestrictionRect(options.offset, interaction, interaction.startCoords.page);\n\n if (offset) {\n return {\n top: startOffset.top + offset.y,\n left: startOffset.left + offset.x,\n bottom: startOffset.bottom + offset.y,\n right: startOffset.right + offset.x\n };\n }\n\n return startOffset;\n },\n\n set: function set(_ref2) {\n var modifiedCoords = _ref2.modifiedCoords,\n interaction = _ref2.interaction,\n status = _ref2.status,\n offset = _ref2.offset,\n options = _ref2.options;\n\n var edges = interaction.prepared.linkedEdges || interaction.prepared.edges;\n\n if (!interaction.interacting() || !edges) {\n return;\n }\n\n var page = status.useStatusXY ? { x: status.x, y: status.y } : utils.extend({}, modifiedCoords);\n var inner = rectUtils.xywhToTlbr(getRestrictionRect(options.inner, interaction, page)) || noInner;\n var outer = rectUtils.xywhToTlbr(getRestrictionRect(options.outer, interaction, page)) || noOuter;\n\n var modifiedX = page.x;\n var modifiedY = page.y;\n\n status.dx = 0;\n status.dy = 0;\n status.locked = false;\n\n if (edges.top) {\n modifiedY = Math.min(Math.max(outer.top + offset.top, page.y), inner.top + offset.top);\n } else if (edges.bottom) {\n modifiedY = Math.max(Math.min(outer.bottom - offset.bottom, page.y), inner.bottom - offset.bottom);\n }\n if (edges.left) {\n modifiedX = Math.min(Math.max(outer.left + offset.left, page.x), inner.left + offset.left);\n } else if (edges.right) {\n modifiedX = Math.max(Math.min(outer.right - offset.right, page.x), inner.right - offset.right);\n }\n\n status.dx = modifiedX - page.x;\n status.dy = modifiedY - page.y;\n\n status.changed = status.modifiedX !== modifiedX || status.modifiedY !== modifiedY;\n status.locked = !!(status.dx || status.dy);\n\n status.modifiedX = modifiedX;\n status.modifiedY = modifiedY;\n },\n\n modifyCoords: function modifyCoords(_ref3) {\n var page = _ref3.page,\n client = _ref3.client,\n status = _ref3.status,\n phase = _ref3.phase,\n options = _ref3.options;\n\n if (options && options.enabled && !(phase === 'start' && status.locked)) {\n\n if (status.locked) {\n page.x += status.dx;\n page.y += status.dy;\n client.x += status.dx;\n client.y += status.dy;\n\n return {\n dx: status.dx,\n dy: status.dy\n };\n }\n }\n },\n\n noInner: noInner,\n noOuter: noOuter,\n getRestrictionRect: getRestrictionRect\n};\n\nmodifiers.restrictEdges = restrictEdges;\nmodifiers.names.push('restrictEdges');\n\ndefaultOptions.perAction.restrictEdges = restrictEdges.defaults;\nresize.defaults.restrictEdges = restrictEdges.defaults;\n\nmodule.exports = restrictEdges;\n\n},{\"../actions/resize\":10,\"../defaultOptions\":18,\"../utils\":44,\"../utils/rect\":51,\"./base\":23,\"./restrict\":24}],26:[function(require,module,exports){\n'use strict';\n\n// This module adds the options.resize.restrictSize setting which sets min and\n// max width and height for the target being resized.\n//\n// interact(target).resize({\n// edges: { top: true, left: true },\n// restrictSize: {\n// min: { width: -600, height: -600 },\n// max: { width: 600, height: 600 },\n// },\n// });\n\nvar modifiers = require('./base');\nvar restrictEdges = require('./restrictEdges');\nvar utils = require('../utils');\nvar rectUtils = require('../utils/rect');\nvar defaultOptions = require('../defaultOptions');\nvar resize = require('../actions/resize');\n\nvar noMin = { width: -Infinity, height: -Infinity };\nvar noMax = { width: +Infinity, height: +Infinity };\n\nvar restrictSize = {\n defaults: {\n enabled: false,\n endOnly: false,\n min: null,\n max: null\n },\n\n setOffset: function setOffset(_ref) {\n var interaction = _ref.interaction;\n\n return interaction.startOffset;\n },\n\n set: function set(arg) {\n var interaction = arg.interaction,\n options = arg.options;\n\n var edges = interaction.prepared.linkedEdges || interaction.prepared.edges;\n\n if (!interaction.interacting() || !edges) {\n return;\n }\n\n var rect = rectUtils.xywhToTlbr(interaction.resizeRects.inverted);\n\n var minSize = rectUtils.tlbrToXywh(restrictEdges.getRestrictionRect(options.min, interaction)) || noMin;\n var maxSize = rectUtils.tlbrToXywh(restrictEdges.getRestrictionRect(options.max, interaction)) || noMax;\n\n arg.options = {\n enabled: options.enabled,\n endOnly: options.endOnly,\n inner: utils.extend({}, restrictEdges.noInner),\n outer: utils.extend({}, restrictEdges.noOuter)\n };\n\n if (edges.top) {\n arg.options.inner.top = rect.bottom - minSize.height;\n arg.options.outer.top = rect.bottom - maxSize.height;\n } else if (edges.bottom) {\n arg.options.inner.bottom = rect.top + minSize.height;\n arg.options.outer.bottom = rect.top + maxSize.height;\n }\n if (edges.left) {\n arg.options.inner.left = rect.right - minSize.width;\n arg.options.outer.left = rect.right - maxSize.width;\n } else if (edges.right) {\n arg.options.inner.right = rect.left + minSize.width;\n arg.options.outer.right = rect.left + maxSize.width;\n }\n\n restrictEdges.set(arg);\n },\n\n modifyCoords: restrictEdges.modifyCoords\n};\n\nmodifiers.restrictSize = restrictSize;\nmodifiers.names.push('restrictSize');\n\ndefaultOptions.perAction.restrictSize = restrictSize.defaults;\nresize.defaults.restrictSize = restrictSize.defaults;\n\nmodule.exports = restrictSize;\n\n},{\"../actions/resize\":10,\"../defaultOptions\":18,\"../utils\":44,\"../utils/rect\":51,\"./base\":23,\"./restrictEdges\":25}],27:[function(require,module,exports){\n'use strict';\n\nvar modifiers = require('./base');\nvar interact = require('../interact');\nvar utils = require('../utils');\nvar defaultOptions = require('../defaultOptions');\n\nvar snap = {\n defaults: {\n enabled: false,\n endOnly: false,\n range: Infinity,\n targets: null,\n offsets: null,\n\n relativePoints: null\n },\n\n setOffset: function setOffset(_ref) {\n var interaction = _ref.interaction,\n interactable = _ref.interactable,\n element = _ref.element,\n rect = _ref.rect,\n startOffset = _ref.startOffset,\n options = _ref.options;\n\n var offsets = [];\n var optionsOrigin = utils.rectToXY(utils.resolveRectLike(options.origin));\n var origin = optionsOrigin || utils.getOriginXY(interactable, element, interaction.prepared.name);\n options = options || interactable.options[interaction.prepared.name].snap || {};\n\n var snapOffset = void 0;\n\n if (options.offset === 'startCoords') {\n snapOffset = {\n x: interaction.startCoords.page.x - origin.x,\n y: interaction.startCoords.page.y - origin.y\n };\n } else {\n var offsetRect = utils.resolveRectLike(options.offset, interactable, element, [interaction]);\n\n snapOffset = utils.rectToXY(offsetRect) || { x: 0, y: 0 };\n }\n\n if (rect && options.relativePoints && options.relativePoints.length) {\n for (var _i = 0; _i < options.relativePoints.length; _i++) {\n var _ref3;\n\n _ref3 = options.relativePoints[_i];\n var _ref2 = _ref3;\n var relativeX = _ref2.x;\n var relativeY = _ref2.y;\n\n offsets.push({\n x: startOffset.left - rect.width * relativeX + snapOffset.x,\n y: startOffset.top - rect.height * relativeY + snapOffset.y\n });\n }\n } else {\n offsets.push(snapOffset);\n }\n\n return offsets;\n },\n\n set: function set(_ref4) {\n var interaction = _ref4.interaction,\n modifiedCoords = _ref4.modifiedCoords,\n status = _ref4.status,\n options = _ref4.options,\n offsets = _ref4.offset;\n\n var targets = [];\n var target = void 0;\n var page = void 0;\n var i = void 0;\n\n if (status.useStatusXY) {\n page = { x: status.x, y: status.y };\n } else {\n var origin = utils.getOriginXY(interaction.target, interaction.element, interaction.prepared.name);\n\n page = utils.extend({}, modifiedCoords);\n\n page.x -= origin.x;\n page.y -= origin.y;\n }\n\n status.realX = page.x;\n status.realY = page.y;\n\n var len = options.targets ? options.targets.length : 0;\n\n for (var _i2 = 0; _i2 < offsets.length; _i2++) {\n var _ref6;\n\n _ref6 = offsets[_i2];\n var _ref5 = _ref6;\n var offsetX = _ref5.x;\n var offsetY = _ref5.y;\n\n var relativeX = page.x - offsetX;\n var relativeY = page.y - offsetY;\n\n for (var _i3 = 0; _i3 < (options.targets || []).length; _i3++) {\n var _ref7;\n\n _ref7 = (options.targets || [])[_i3];\n var snapTarget = _ref7;\n\n if (utils.is.function(snapTarget)) {\n target = snapTarget(relativeX, relativeY, interaction);\n } else {\n target = snapTarget;\n }\n\n if (!target) {\n continue;\n }\n\n targets.push({\n x: utils.is.number(target.x) ? target.x + offsetX : relativeX,\n y: utils.is.number(target.y) ? target.y + offsetY : relativeY,\n\n range: utils.is.number(target.range) ? target.range : options.range\n });\n }\n }\n\n var closest = {\n target: null,\n inRange: false,\n distance: 0,\n range: 0,\n dx: 0,\n dy: 0\n };\n\n for (i = 0, len = targets.length; i < len; i++) {\n target = targets[i];\n\n var range = target.range;\n var dx = target.x - page.x;\n var dy = target.y - page.y;\n var distance = utils.hypot(dx, dy);\n var inRange = distance <= range;\n\n // Infinite targets count as being out of range\n // compared to non infinite ones that are in range\n if (range === Infinity && closest.inRange && closest.range !== Infinity) {\n inRange = false;\n }\n\n if (!closest.target || (inRange\n // is the closest target in range?\n ? closest.inRange && range !== Infinity\n // the pointer is relatively deeper in this target\n ? distance / range < closest.distance / closest.range\n // this target has Infinite range and the closest doesn't\n : range === Infinity && closest.range !== Infinity ||\n // OR this target is closer that the previous closest\n distance < closest.distance :\n // The other is not in range and the pointer is closer to this target\n !closest.inRange && distance < closest.distance)) {\n\n closest.target = target;\n closest.distance = distance;\n closest.range = range;\n closest.inRange = inRange;\n closest.dx = dx;\n closest.dy = dy;\n\n status.range = range;\n }\n }\n\n var snapChanged = void 0;\n\n if (closest.target) {\n snapChanged = status.modifiedX !== closest.target.x || status.modifiedY !== closest.target.y;\n\n status.modifiedX = closest.target.x;\n status.modifiedY = closest.target.y;\n } else {\n snapChanged = true;\n\n status.modifiedX = NaN;\n status.modifiedY = NaN;\n }\n\n status.dx = closest.dx;\n status.dy = closest.dy;\n\n status.changed = snapChanged || closest.inRange && !status.locked;\n status.locked = closest.inRange;\n },\n\n modifyCoords: function modifyCoords(_ref8) {\n var page = _ref8.page,\n client = _ref8.client,\n status = _ref8.status,\n phase = _ref8.phase,\n options = _ref8.options;\n\n var relativePoints = options && options.relativePoints;\n\n if (options && options.enabled && !(phase === 'start' && relativePoints && relativePoints.length)) {\n\n if (status.locked) {\n page.x += status.dx;\n page.y += status.dy;\n client.x += status.dx;\n client.y += status.dy;\n }\n\n return {\n range: status.range,\n locked: status.locked,\n x: status.modifiedX,\n y: status.modifiedY,\n realX: status.realX,\n realY: status.realY,\n dx: status.dx,\n dy: status.dy\n };\n }\n }\n};\n\ninteract.createSnapGrid = function (grid) {\n return function (x, y) {\n var limits = grid.limits || {\n left: -Infinity,\n right: Infinity,\n top: -Infinity,\n bottom: Infinity\n };\n var offsetX = 0;\n var offsetY = 0;\n\n if (utils.is.object(grid.offset)) {\n offsetX = grid.offset.x;\n offsetY = grid.offset.y;\n }\n\n var gridx = Math.round((x - offsetX) / grid.x);\n var gridy = Math.round((y - offsetY) / grid.y);\n\n var newX = Math.max(limits.left, Math.min(limits.right, gridx * grid.x + offsetX));\n var newY = Math.max(limits.top, Math.min(limits.bottom, gridy * grid.y + offsetY));\n\n return {\n x: newX,\n y: newY,\n range: grid.range\n };\n };\n};\n\nmodifiers.snap = snap;\nmodifiers.names.push('snap');\n\ndefaultOptions.perAction.snap = snap.defaults;\n\nmodule.exports = snap;\n\n},{\"../defaultOptions\":18,\"../interact\":21,\"../utils\":44,\"./base\":23}],28:[function(require,module,exports){\n'use strict';\n\n// This module allows snapping of the size of targets during resize\n// interactions.\n\nvar modifiers = require('./base');\nvar snap = require('./snap');\nvar defaultOptions = require('../defaultOptions');\nvar resize = require('../actions/resize');\nvar utils = require('../utils/');\n\nvar snapSize = {\n defaults: {\n enabled: false,\n endOnly: false,\n range: Infinity,\n targets: null,\n offsets: null\n },\n\n setOffset: function setOffset(arg) {\n var interaction = arg.interaction,\n options = arg.options;\n\n var edges = interaction.prepared.edges;\n\n if (!edges) {\n return;\n }\n\n arg.options = {\n relativePoints: [{\n x: edges.left ? 0 : 1,\n y: edges.top ? 0 : 1\n }],\n origin: { x: 0, y: 0 },\n offset: 'self',\n range: options.range\n };\n\n var offsets = snap.setOffset(arg);\n arg.options = options;\n\n return offsets;\n },\n\n set: function set(arg) {\n var interaction = arg.interaction,\n options = arg.options,\n offset = arg.offset,\n modifiedCoords = arg.modifiedCoords;\n\n var page = utils.extend({}, modifiedCoords);\n var relativeX = page.x - offset[0].x;\n var relativeY = page.y - offset[0].y;\n\n arg.options = utils.extend({}, options);\n arg.options.targets = [];\n\n for (var _i = 0; _i < (options.targets || []).length; _i++) {\n var _ref;\n\n _ref = (options.targets || [])[_i];\n var snapTarget = _ref;\n\n var target = void 0;\n\n if (utils.is.function(snapTarget)) {\n target = snapTarget(relativeX, relativeY, interaction);\n } else {\n target = snapTarget;\n }\n\n if (!target) {\n continue;\n }\n\n if ('width' in target && 'height' in target) {\n target.x = target.width;\n target.y = target.height;\n }\n\n arg.options.targets.push(target);\n }\n\n snap.set(arg);\n },\n\n modifyCoords: function modifyCoords(arg) {\n var options = arg.options;\n\n\n arg.options = utils.extend({}, options);\n arg.options.enabled = options.enabled;\n arg.options.relativePoints = [null];\n\n snap.modifyCoords(arg);\n }\n};\n\nmodifiers.snapSize = snapSize;\nmodifiers.names.push('snapSize');\n\ndefaultOptions.perAction.snapSize = snapSize.defaults;\nresize.defaults.snapSize = snapSize.defaults;\n\nmodule.exports = snapSize;\n\n},{\"../actions/resize\":10,\"../defaultOptions\":18,\"../utils/\":44,\"./base\":23,\"./snap\":27}],29:[function(require,module,exports){\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar pointerUtils = require('../utils/pointerUtils');\n\nmodule.exports = function () {\n /** */\n function PointerEvent(type, pointer, event, eventTarget, interaction) {\n _classCallCheck(this, PointerEvent);\n\n pointerUtils.pointerExtend(this, event);\n\n if (event !== pointer) {\n pointerUtils.pointerExtend(this, pointer);\n }\n\n this.interaction = interaction;\n\n this.timeStamp = new Date().getTime();\n this.originalEvent = event;\n this.type = type;\n this.pointerId = pointerUtils.getPointerId(pointer);\n this.pointerType = pointerUtils.getPointerType(pointer);\n this.target = eventTarget;\n this.currentTarget = null;\n\n if (type === 'tap') {\n var pointerIndex = interaction.getPointerIndex(pointer);\n this.dt = this.timeStamp - interaction.downTimes[pointerIndex];\n\n var interval = this.timeStamp - interaction.tapTime;\n\n this.double = !!(interaction.prevTap && interaction.prevTap.type !== 'doubletap' && interaction.prevTap.target === this.target && interval < 500);\n } else if (type === 'doubletap') {\n this.dt = pointer.timeStamp - interaction.tapTime;\n }\n }\n\n PointerEvent.prototype.subtractOrigin = function subtractOrigin(_ref) {\n var originX = _ref.x,\n originY = _ref.y;\n\n this.pageX -= originX;\n this.pageY -= originY;\n this.clientX -= originX;\n this.clientY -= originY;\n\n return this;\n };\n\n PointerEvent.prototype.addOrigin = function addOrigin(_ref2) {\n var originX = _ref2.x,\n originY = _ref2.y;\n\n this.pageX += originX;\n this.pageY += originY;\n this.clientX += originX;\n this.clientY += originY;\n\n return this;\n };\n\n /** */\n\n\n PointerEvent.prototype.preventDefault = function preventDefault() {\n this.originalEvent.preventDefault();\n };\n\n /** */\n\n\n PointerEvent.prototype.stopPropagation = function stopPropagation() {\n this.propagationStopped = true;\n };\n\n /** */\n\n\n PointerEvent.prototype.stopImmediatePropagation = function stopImmediatePropagation() {\n this.immediatePropagationStopped = this.propagationStopped = true;\n };\n\n return PointerEvent;\n}();\n\n},{\"../utils/pointerUtils\":49}],30:[function(require,module,exports){\n'use strict';\n\nvar PointerEvent = require('./PointerEvent');\nvar Interaction = require('../Interaction');\nvar utils = require('../utils');\nvar defaults = require('../defaultOptions');\nvar signals = require('../utils/Signals').new();\n\nvar simpleSignals = ['down', 'up', 'cancel'];\nvar simpleEvents = ['down', 'up', 'cancel'];\n\nvar pointerEvents = {\n PointerEvent: PointerEvent,\n fire: fire,\n collectEventTargets: collectEventTargets,\n signals: signals,\n defaults: {\n holdDuration: 600,\n ignoreFrom: null,\n allowFrom: null,\n origin: { x: 0, y: 0 }\n },\n types: ['down', 'move', 'up', 'cancel', 'tap', 'doubletap', 'hold']\n};\n\nfunction fire(arg) {\n var interaction = arg.interaction,\n pointer = arg.pointer,\n event = arg.event,\n eventTarget = arg.eventTarget,\n _arg$type = arg.type,\n type = _arg$type === undefined ? arg.pointerEvent.type : _arg$type,\n _arg$targets = arg.targets,\n targets = _arg$targets === undefined ? collectEventTargets(arg) : _arg$targets,\n _arg$pointerEvent = arg.pointerEvent,\n pointerEvent = _arg$pointerEvent === undefined ? new PointerEvent(type, pointer, event, eventTarget, interaction) : _arg$pointerEvent;\n\n\n var signalArg = {\n interaction: interaction,\n pointer: pointer,\n event: event,\n eventTarget: eventTarget,\n targets: targets,\n type: type,\n pointerEvent: pointerEvent\n };\n\n for (var i = 0; i < targets.length; i++) {\n var target = targets[i];\n\n for (var prop in target.props || {}) {\n pointerEvent[prop] = target.props[prop];\n }\n\n var origin = utils.getOriginXY(target.eventable, target.element);\n\n pointerEvent.subtractOrigin(origin);\n pointerEvent.eventable = target.eventable;\n pointerEvent.currentTarget = target.element;\n\n target.eventable.fire(pointerEvent);\n\n pointerEvent.addOrigin(origin);\n\n if (pointerEvent.immediatePropagationStopped || pointerEvent.propagationStopped && i + 1 < targets.length && targets[i + 1].element !== pointerEvent.currentTarget) {\n break;\n }\n }\n\n signals.fire('fired', signalArg);\n\n if (type === 'tap') {\n // if pointerEvent should make a double tap, create and fire a doubletap\n // PointerEvent and use that as the prevTap\n var prevTap = pointerEvent.double ? fire({\n interaction: interaction, pointer: pointer, event: event, eventTarget: eventTarget,\n type: 'doubletap'\n }) : pointerEvent;\n\n interaction.prevTap = prevTap;\n interaction.tapTime = prevTap.timeStamp;\n }\n\n return pointerEvent;\n}\n\nfunction collectEventTargets(_ref) {\n var interaction = _ref.interaction,\n pointer = _ref.pointer,\n event = _ref.event,\n eventTarget = _ref.eventTarget,\n type = _ref.type;\n\n var pointerIndex = interaction.getPointerIndex(pointer);\n\n // do not fire a tap event if the pointer was moved before being lifted\n if (type === 'tap' && (interaction.pointerWasMoved\n // or if the pointerup target is different to the pointerdown target\n || !(interaction.downTargets[pointerIndex] && interaction.downTargets[pointerIndex] === eventTarget))) {\n return [];\n }\n\n var path = utils.getPath(eventTarget);\n var signalArg = {\n interaction: interaction,\n pointer: pointer,\n event: event,\n eventTarget: eventTarget,\n type: type,\n path: path,\n targets: [],\n element: null\n };\n\n for (var _i = 0; _i < path.length; _i++) {\n var _ref2;\n\n _ref2 = path[_i];\n var element = _ref2;\n\n signalArg.element = element;\n\n signals.fire('collect-targets', signalArg);\n }\n\n if (type === 'hold') {\n signalArg.targets = signalArg.targets.filter(function (target) {\n return target.eventable.options.holdDuration === interaction.holdTimers[pointerIndex].duration;\n });\n }\n\n return signalArg.targets;\n}\n\nInteraction.signals.on('update-pointer-down', function (_ref3) {\n var interaction = _ref3.interaction,\n pointerIndex = _ref3.pointerIndex;\n\n interaction.holdTimers[pointerIndex] = { duration: Infinity, timeout: null };\n});\n\nInteraction.signals.on('remove-pointer', function (_ref4) {\n var interaction = _ref4.interaction,\n pointerIndex = _ref4.pointerIndex;\n\n interaction.holdTimers.splice(pointerIndex, 1);\n});\n\nInteraction.signals.on('move', function (_ref5) {\n var interaction = _ref5.interaction,\n pointer = _ref5.pointer,\n event = _ref5.event,\n eventTarget = _ref5.eventTarget,\n duplicateMove = _ref5.duplicateMove;\n\n var pointerIndex = interaction.getPointerIndex(pointer);\n\n if (!duplicateMove && (!interaction.pointerIsDown || interaction.pointerWasMoved)) {\n if (interaction.pointerIsDown) {\n clearTimeout(interaction.holdTimers[pointerIndex].timeout);\n }\n\n fire({\n interaction: interaction, pointer: pointer, event: event, eventTarget: eventTarget,\n type: 'move'\n });\n }\n});\n\nInteraction.signals.on('down', function (_ref6) {\n var interaction = _ref6.interaction,\n pointer = _ref6.pointer,\n event = _ref6.event,\n eventTarget = _ref6.eventTarget,\n pointerIndex = _ref6.pointerIndex;\n\n var timer = interaction.holdTimers[pointerIndex];\n var path = utils.getPath(eventTarget);\n var signalArg = {\n interaction: interaction,\n pointer: pointer,\n event: event,\n eventTarget: eventTarget,\n type: 'hold',\n targets: [],\n path: path,\n element: null\n };\n\n for (var _i2 = 0; _i2 < path.length; _i2++) {\n var _ref7;\n\n _ref7 = path[_i2];\n var element = _ref7;\n\n signalArg.element = element;\n\n signals.fire('collect-targets', signalArg);\n }\n\n if (!signalArg.targets.length) {\n return;\n }\n\n var minDuration = Infinity;\n\n for (var _i3 = 0; _i3 < signalArg.targets.length; _i3++) {\n var _ref8;\n\n _ref8 = signalArg.targets[_i3];\n var target = _ref8;\n\n var holdDuration = target.eventable.options.holdDuration;\n\n if (holdDuration < minDuration) {\n minDuration = holdDuration;\n }\n }\n\n timer.duration = minDuration;\n timer.timeout = setTimeout(function () {\n fire({\n interaction: interaction,\n eventTarget: eventTarget,\n pointer: pointer,\n event: event,\n type: 'hold'\n });\n }, minDuration);\n});\n\nInteraction.signals.on('up', function (_ref9) {\n var interaction = _ref9.interaction,\n pointer = _ref9.pointer,\n event = _ref9.event,\n eventTarget = _ref9.eventTarget;\n\n if (!interaction.pointerWasMoved) {\n fire({ interaction: interaction, eventTarget: eventTarget, pointer: pointer, event: event, type: 'tap' });\n }\n});\n\nvar _arr = ['up', 'cancel'];\nfor (var _i4 = 0; _i4 < _arr.length; _i4++) {\n var signalName = _arr[_i4];\n Interaction.signals.on(signalName, function (_ref11) {\n var interaction = _ref11.interaction,\n pointerIndex = _ref11.pointerIndex;\n\n if (interaction.holdTimers[pointerIndex]) {\n clearTimeout(interaction.holdTimers[pointerIndex].timeout);\n }\n });\n}\n\nfunction createSignalListener(type) {\n return function (_ref10) {\n var interaction = _ref10.interaction,\n pointer = _ref10.pointer,\n event = _ref10.event,\n eventTarget = _ref10.eventTarget;\n\n fire({ interaction: interaction, eventTarget: eventTarget, pointer: pointer, event: event, type: type });\n };\n}\n\nfor (var i = 0; i < simpleSignals.length; i++) {\n Interaction.signals.on(simpleSignals[i], createSignalListener(simpleEvents[i]));\n}\n\nInteraction.signals.on('new', function (interaction) {\n interaction.prevTap = null; // the most recent tap event on this interaction\n interaction.tapTime = 0; // time of the most recent tap event\n interaction.holdTimers = []; // [{ duration, timeout }]\n});\n\ndefaults.pointerEvents = pointerEvents.defaults;\nmodule.exports = pointerEvents;\n\n},{\"../Interaction\":5,\"../defaultOptions\":18,\"../utils\":44,\"../utils/Signals\":34,\"./PointerEvent\":29}],31:[function(require,module,exports){\n'use strict';\n\nvar pointerEvents = require('./base');\nvar Interaction = require('../Interaction');\n\npointerEvents.signals.on('new', onNew);\npointerEvents.signals.on('fired', onFired);\n\nvar _arr = ['move', 'up', 'cancel', 'endall'];\nfor (var _i = 0; _i < _arr.length; _i++) {\n var signal = _arr[_i];\n Interaction.signals.on(signal, endHoldRepeat);\n}\n\nfunction onNew(_ref) {\n var pointerEvent = _ref.pointerEvent;\n\n if (pointerEvent.type !== 'hold') {\n return;\n }\n\n pointerEvent.count = (pointerEvent.count || 0) + 1;\n}\n\nfunction onFired(_ref2) {\n var interaction = _ref2.interaction,\n pointerEvent = _ref2.pointerEvent,\n eventTarget = _ref2.eventTarget,\n targets = _ref2.targets;\n\n if (pointerEvent.type !== 'hold' || !targets.length) {\n return;\n }\n\n // get the repeat interval from the first eventable\n var interval = targets[0].eventable.options.holdRepeatInterval;\n\n // don't repeat if the interval is 0 or less\n if (interval <= 0) {\n return;\n }\n\n // set a timeout to fire the holdrepeat event\n interaction.holdIntervalHandle = setTimeout(function () {\n pointerEvents.fire({\n interaction: interaction,\n eventTarget: eventTarget,\n type: 'hold',\n pointer: pointerEvent,\n event: pointerEvent\n });\n }, interval);\n}\n\nfunction endHoldRepeat(_ref3) {\n var interaction = _ref3.interaction;\n\n // set the interaction's holdStopTime property\n // to stop further holdRepeat events\n if (interaction.holdIntervalHandle) {\n clearInterval(interaction.holdIntervalHandle);\n interaction.holdIntervalHandle = null;\n }\n}\n\n// don't repeat by default\npointerEvents.defaults.holdRepeatInterval = 0;\npointerEvents.types.push('holdrepeat');\n\nmodule.exports = {\n onNew: onNew,\n onFired: onFired,\n endHoldRepeat: endHoldRepeat\n};\n\n},{\"../Interaction\":5,\"./base\":30}],32:[function(require,module,exports){\n'use strict';\n\nvar pointerEvents = require('./base');\nvar Interactable = require('../Interactable');\nvar is = require('../utils/is');\nvar scope = require('../scope');\nvar extend = require('../utils/extend');\n\nvar _require = require('../utils/arr'),\n merge = _require.merge;\n\npointerEvents.signals.on('collect-targets', function (_ref) {\n var targets = _ref.targets,\n element = _ref.element,\n type = _ref.type,\n eventTarget = _ref.eventTarget;\n\n scope.interactables.forEachMatch(element, function (interactable) {\n var eventable = interactable.events;\n var options = eventable.options;\n\n if (eventable[type] && is.element(element) && interactable.testIgnoreAllow(options, element, eventTarget)) {\n\n targets.push({\n element: element,\n eventable: eventable,\n props: { interactable: interactable }\n });\n }\n });\n});\n\nInteractable.signals.on('new', function (_ref2) {\n var interactable = _ref2.interactable;\n\n interactable.events.getRect = function (element) {\n return interactable.getRect(element);\n };\n});\n\nInteractable.signals.on('set', function (_ref3) {\n var interactable = _ref3.interactable,\n options = _ref3.options;\n\n extend(interactable.events.options, pointerEvents.defaults);\n extend(interactable.events.options, options);\n});\n\nmerge(Interactable.eventTypes, pointerEvents.types);\n\nInteractable.prototype.pointerEvents = function (options) {\n extend(this.events.options, options);\n\n return this;\n};\n\nvar __backCompatOption = Interactable.prototype._backCompatOption;\n\nInteractable.prototype._backCompatOption = function (optionName, newValue) {\n var ret = __backCompatOption.call(this, optionName, newValue);\n\n if (ret === this) {\n this.events.options[optionName] = newValue;\n }\n\n return ret;\n};\n\nInteractable.settingsMethods.push('pointerEvents');\n\n},{\"../Interactable\":4,\"../scope\":33,\"../utils/arr\":35,\"../utils/extend\":41,\"../utils/is\":46,\"./base\":30}],33:[function(require,module,exports){\n'use strict';\n\nvar utils = require('./utils');\nvar events = require('./utils/events');\nvar signals = require('./utils/Signals').new();\n\nvar _require = require('./utils/window'),\n getWindow = _require.getWindow;\n\nvar scope = {\n signals: signals,\n events: events,\n utils: utils,\n\n // main document\n document: require('./utils/domObjects').document,\n // all documents being listened to\n documents: [],\n\n addDocument: function addDocument(doc, win) {\n // do nothing if document is already known\n if (utils.contains(scope.documents, doc)) {\n return false;\n }\n\n win = win || getWindow(doc);\n\n scope.documents.push(doc);\n events.documents.push(doc);\n\n // don't add an unload event for the main document\n // so that the page may be cached in browser history\n if (doc !== scope.document) {\n events.add(win, 'unload', scope.onWindowUnload);\n }\n\n signals.fire('add-document', { doc: doc, win: win });\n },\n\n removeDocument: function removeDocument(doc, win) {\n var index = scope.documents.indexOf(doc);\n\n win = win || getWindow(doc);\n\n events.remove(win, 'unload', scope.onWindowUnload);\n\n scope.documents.splice(index, 1);\n events.documents.splice(index, 1);\n\n signals.fire('remove-document', { win: win, doc: doc });\n },\n\n onWindowUnload: function onWindowUnload() {\n scope.removeDocument(this.document, this);\n }\n};\n\nmodule.exports = scope;\n\n},{\"./utils\":44,\"./utils/Signals\":34,\"./utils/domObjects\":38,\"./utils/events\":40,\"./utils/window\":52}],34:[function(require,module,exports){\n\"use strict\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Signals = function () {\n function Signals() {\n _classCallCheck(this, Signals);\n\n this.listeners = {\n // signalName: [listeners],\n };\n }\n\n Signals.prototype.on = function on(name, listener) {\n if (!this.listeners[name]) {\n this.listeners[name] = [listener];\n return;\n }\n\n this.listeners[name].push(listener);\n };\n\n Signals.prototype.off = function off(name, listener) {\n if (!this.listeners[name]) {\n return;\n }\n\n var index = this.listeners[name].indexOf(listener);\n\n if (index !== -1) {\n this.listeners[name].splice(index, 1);\n }\n };\n\n Signals.prototype.fire = function fire(name, arg) {\n var targetListeners = this.listeners[name];\n\n if (!targetListeners) {\n return;\n }\n\n for (var _i = 0; _i < targetListeners.length; _i++) {\n var _ref;\n\n _ref = targetListeners[_i];\n var listener = _ref;\n\n if (listener(arg, name) === false) {\n return;\n }\n }\n };\n\n return Signals;\n}();\n\nSignals.new = function () {\n return new Signals();\n};\n\nmodule.exports = Signals;\n\n},{}],35:[function(require,module,exports){\n\"use strict\";\n\nfunction contains(array, target) {\n return array.indexOf(target) !== -1;\n}\n\nfunction merge(target, source) {\n for (var _i = 0; _i < source.length; _i++) {\n var _ref;\n\n _ref = source[_i];\n var item = _ref;\n\n target.push(item);\n }\n\n return target;\n}\n\nmodule.exports = {\n contains: contains,\n merge: merge\n};\n\n},{}],36:[function(require,module,exports){\n'use strict';\n\nvar _require = require('./window'),\n window = _require.window;\n\nvar is = require('./is');\nvar domObjects = require('./domObjects');\n\nvar Element = domObjects.Element;\nvar navigator = window.navigator;\n\nvar browser = {\n // Does the browser support touch input?\n supportsTouch: !!('ontouchstart' in window || is.function(window.DocumentTouch) && domObjects.document instanceof window.DocumentTouch),\n\n // Does the browser support PointerEvents\n supportsPointerEvent: !!domObjects.PointerEvent,\n\n isIOS: /iP(hone|od|ad)/.test(navigator.platform),\n\n // scrolling doesn't change the result of getClientRects on iOS 7\n isIOS7: /iP(hone|od|ad)/.test(navigator.platform) && /OS 7[^\\d]/.test(navigator.appVersion),\n\n isIe9: /MSIE 9/.test(navigator.userAgent),\n\n // prefix matchesSelector\n prefixedMatchesSelector: 'matches' in Element.prototype ? 'matches' : 'webkitMatchesSelector' in Element.prototype ? 'webkitMatchesSelector' : 'mozMatchesSelector' in Element.prototype ? 'mozMatchesSelector' : 'oMatchesSelector' in Element.prototype ? 'oMatchesSelector' : 'msMatchesSelector',\n\n pEventTypes: domObjects.PointerEvent ? domObjects.PointerEvent === window.MSPointerEvent ? {\n up: 'MSPointerUp',\n down: 'MSPointerDown',\n over: 'mouseover',\n out: 'mouseout',\n move: 'MSPointerMove',\n cancel: 'MSPointerCancel'\n } : {\n up: 'pointerup',\n down: 'pointerdown',\n over: 'pointerover',\n out: 'pointerout',\n move: 'pointermove',\n cancel: 'pointercancel'\n } : null,\n\n // because Webkit and Opera still use 'mousewheel' event type\n wheelEvent: 'onmousewheel' in domObjects.document ? 'mousewheel' : 'wheel'\n\n};\n\n// Opera Mobile must be handled differently\nbrowser.isOperaMobile = navigator.appName === 'Opera' && browser.supportsTouch && navigator.userAgent.match('Presto');\n\nmodule.exports = browser;\n\n},{\"./domObjects\":38,\"./is\":46,\"./window\":52}],37:[function(require,module,exports){\n'use strict';\n\nvar is = require('./is');\n\nmodule.exports = function clone(source) {\n var dest = {};\n for (var prop in source) {\n if (is.plainObject(source[prop])) {\n dest[prop] = clone(source[prop]);\n } else {\n dest[prop] = source[prop];\n }\n }\n return dest;\n};\n\n},{\"./is\":46}],38:[function(require,module,exports){\n'use strict';\n\nvar domObjects = {};\nvar win = require('./window').window;\n\nfunction blank() {}\n\ndomObjects.document = win.document;\ndomObjects.DocumentFragment = win.DocumentFragment || blank;\ndomObjects.SVGElement = win.SVGElement || blank;\ndomObjects.SVGSVGElement = win.SVGSVGElement || blank;\ndomObjects.SVGElementInstance = win.SVGElementInstance || blank;\ndomObjects.Element = win.Element || blank;\ndomObjects.HTMLElement = win.HTMLElement || domObjects.Element;\n\ndomObjects.Event = win.Event;\ndomObjects.Touch = win.Touch || blank;\ndomObjects.PointerEvent = win.PointerEvent || win.MSPointerEvent;\n\nmodule.exports = domObjects;\n\n},{\"./window\":52}],39:[function(require,module,exports){\n'use strict';\n\nvar win = require('./window');\nvar browser = require('./browser');\nvar is = require('./is');\nvar domObjects = require('./domObjects');\n\nvar domUtils = {\n nodeContains: function nodeContains(parent, child) {\n while (child) {\n if (child === parent) {\n return true;\n }\n\n child = child.parentNode;\n }\n\n return false;\n },\n\n closest: function closest(element, selector) {\n while (is.element(element)) {\n if (domUtils.matchesSelector(element, selector)) {\n return element;\n }\n\n element = domUtils.parentNode(element);\n }\n\n return null;\n },\n\n parentNode: function parentNode(node) {\n var parent = node.parentNode;\n\n if (is.docFrag(parent)) {\n // skip past #shado-root fragments\n while ((parent = parent.host) && is.docFrag(parent)) {\n continue;\n }\n\n return parent;\n }\n\n return parent;\n },\n\n matchesSelector: function matchesSelector(element, selector) {\n // remove /deep/ from selectors if shadowDOM polyfill is used\n if (win.window !== win.realWindow) {\n selector = selector.replace(/\\/deep\\//g, ' ');\n }\n\n return element[browser.prefixedMatchesSelector](selector);\n },\n\n // Test for the element that's \"above\" all other qualifiers\n indexOfDeepestElement: function indexOfDeepestElement(elements) {\n var deepestZoneParents = [];\n var dropzoneParents = [];\n var dropzone = void 0;\n var deepestZone = elements[0];\n var index = deepestZone ? 0 : -1;\n var parent = void 0;\n var child = void 0;\n var i = void 0;\n var n = void 0;\n\n for (i = 1; i < elements.length; i++) {\n dropzone = elements[i];\n\n // an element might belong to multiple selector dropzones\n if (!dropzone || dropzone === deepestZone) {\n continue;\n }\n\n if (!deepestZone) {\n deepestZone = dropzone;\n index = i;\n continue;\n }\n\n // check if the deepest or current are document.documentElement or document.rootElement\n // - if the current dropzone is, do nothing and continue\n if (dropzone.parentNode === dropzone.ownerDocument) {\n continue;\n }\n // - if deepest is, update with the current dropzone and continue to next\n else if (deepestZone.parentNode === dropzone.ownerDocument) {\n deepestZone = dropzone;\n index = i;\n continue;\n }\n\n if (!deepestZoneParents.length) {\n parent = deepestZone;\n while (parent.parentNode && parent.parentNode !== parent.ownerDocument) {\n deepestZoneParents.unshift(parent);\n parent = parent.parentNode;\n }\n }\n\n // if this element is an svg element and the current deepest is\n // an HTMLElement\n if (deepestZone instanceof domObjects.HTMLElement && dropzone instanceof domObjects.SVGElement && !(dropzone instanceof domObjects.SVGSVGElement)) {\n\n if (dropzone === deepestZone.parentNode) {\n continue;\n }\n\n parent = dropzone.ownerSVGElement;\n } else {\n parent = dropzone;\n }\n\n dropzoneParents = [];\n\n while (parent.parentNode !== parent.ownerDocument) {\n dropzoneParents.unshift(parent);\n parent = parent.parentNode;\n }\n\n n = 0;\n\n // get (position of last common ancestor) + 1\n while (dropzoneParents[n] && dropzoneParents[n] === deepestZoneParents[n]) {\n n++;\n }\n\n var parents = [dropzoneParents[n - 1], dropzoneParents[n], deepestZoneParents[n]];\n\n child = parents[0].lastChild;\n\n while (child) {\n if (child === parents[1]) {\n deepestZone = dropzone;\n index = i;\n deepestZoneParents = [];\n\n break;\n } else if (child === parents[2]) {\n break;\n }\n\n child = child.previousSibling;\n }\n }\n\n return index;\n },\n\n matchesUpTo: function matchesUpTo(element, selector, limit) {\n while (is.element(element)) {\n if (domUtils.matchesSelector(element, selector)) {\n return true;\n }\n\n element = domUtils.parentNode(element);\n\n if (element === limit) {\n return domUtils.matchesSelector(element, selector);\n }\n }\n\n return false;\n },\n\n getActualElement: function getActualElement(element) {\n return element instanceof domObjects.SVGElementInstance ? element.correspondingUseElement : element;\n },\n\n getScrollXY: function getScrollXY(relevantWindow) {\n relevantWindow = relevantWindow || win.window;\n return {\n x: relevantWindow.scrollX || relevantWindow.document.documentElement.scrollLeft,\n y: relevantWindow.scrollY || relevantWindow.document.documentElement.scrollTop\n };\n },\n\n getElementClientRect: function getElementClientRect(element) {\n var clientRect = element instanceof domObjects.SVGElement ? element.getBoundingClientRect() : element.getClientRects()[0];\n\n return clientRect && {\n left: clientRect.left,\n right: clientRect.right,\n top: clientRect.top,\n bottom: clientRect.bottom,\n width: clientRect.width || clientRect.right - clientRect.left,\n height: clientRect.height || clientRect.bottom - clientRect.top\n };\n },\n\n getElementRect: function getElementRect(element) {\n var clientRect = domUtils.getElementClientRect(element);\n\n if (!browser.isIOS7 && clientRect) {\n var scroll = domUtils.getScrollXY(win.getWindow(element));\n\n clientRect.left += scroll.x;\n clientRect.right += scroll.x;\n clientRect.top += scroll.y;\n clientRect.bottom += scroll.y;\n }\n\n return clientRect;\n },\n\n getPath: function getPath(element) {\n var path = [];\n\n while (element) {\n path.push(element);\n element = domUtils.parentNode(element);\n }\n\n return path;\n },\n\n trySelector: function trySelector(value) {\n if (!is.string(value)) {\n return false;\n }\n\n // an exception will be raised if it is invalid\n domObjects.document.querySelector(value);\n return true;\n }\n};\n\nmodule.exports = domUtils;\n\n},{\"./browser\":36,\"./domObjects\":38,\"./is\":46,\"./window\":52}],40:[function(require,module,exports){\n'use strict';\n\nvar is = require('./is');\nvar domUtils = require('./domUtils');\nvar pointerUtils = require('./pointerUtils');\nvar pExtend = require('./pointerExtend');\n\nvar _require = require('./window'),\n window = _require.window;\n\nvar _require2 = require('./arr'),\n contains = _require2.contains;\n\nvar elements = [];\nvar targets = [];\n\n// {\n// type: {\n// selectors: ['selector', ...],\n// contexts : [document, ...],\n// listeners: [[listener, capture, passive], ...]\n// }\n// }\nvar delegatedEvents = {};\nvar documents = [];\n\nvar supportsOptions = function () {\n var supported = false;\n\n window.document.createElement('div').addEventListener('test', null, {\n get capture() {\n supported = true;\n }\n });\n\n return supported;\n}();\n\nfunction add(element, type, listener, optionalArg) {\n var options = getOptions(optionalArg);\n var elementIndex = elements.indexOf(element);\n var target = targets[elementIndex];\n\n if (!target) {\n target = {\n events: {},\n typeCount: 0\n };\n\n elementIndex = elements.push(element) - 1;\n targets.push(target);\n }\n\n if (!target.events[type]) {\n target.events[type] = [];\n target.typeCount++;\n }\n\n if (!contains(target.events[type], listener)) {\n element.addEventListener(type, listener, supportsOptions ? options : !!options.capture);\n target.events[type].push(listener);\n }\n}\n\nfunction remove(element, type, listener, optionalArg) {\n var options = getOptions(optionalArg);\n var elementIndex = elements.indexOf(element);\n var target = targets[elementIndex];\n\n if (!target || !target.events) {\n return;\n }\n\n if (type === 'all') {\n for (type in target.events) {\n if (target.events.hasOwnProperty(type)) {\n remove(element, type, 'all');\n }\n }\n return;\n }\n\n if (target.events[type]) {\n var len = target.events[type].length;\n\n if (listener === 'all') {\n for (var i = 0; i < len; i++) {\n remove(element, type, target.events[type][i], options);\n }\n return;\n } else {\n for (var _i = 0; _i < len; _i++) {\n if (target.events[type][_i] === listener) {\n element.removeEventListener('on' + type, listener, supportsOptions ? options : !!options.capture);\n target.events[type].splice(_i, 1);\n\n break;\n }\n }\n }\n\n if (target.events[type] && target.events[type].length === 0) {\n target.events[type] = null;\n target.typeCount--;\n }\n }\n\n if (!target.typeCount) {\n targets.splice(elementIndex, 1);\n elements.splice(elementIndex, 1);\n }\n}\n\nfunction addDelegate(selector, context, type, listener, optionalArg) {\n var options = getOptions(optionalArg);\n if (!delegatedEvents[type]) {\n delegatedEvents[type] = {\n selectors: [],\n contexts: [],\n listeners: []\n };\n\n // add delegate listener functions\n for (var _i2 = 0; _i2 < documents.length; _i2++) {\n var doc = documents[_i2];\n add(doc, type, delegateListener);\n add(doc, type, delegateUseCapture, true);\n }\n }\n\n var delegated = delegatedEvents[type];\n var index = void 0;\n\n for (index = delegated.selectors.length - 1; index >= 0; index--) {\n if (delegated.selectors[index] === selector && delegated.contexts[index] === context) {\n break;\n }\n }\n\n if (index === -1) {\n index = delegated.selectors.length;\n\n delegated.selectors.push(selector);\n delegated.contexts.push(context);\n delegated.listeners.push([]);\n }\n\n // keep listener and capture and passive flags\n delegated.listeners[index].push([listener, !!options.capture, options.passive]);\n}\n\nfunction removeDelegate(selector, context, type, listener, optionalArg) {\n var options = getOptions(optionalArg);\n var delegated = delegatedEvents[type];\n var matchFound = false;\n var index = void 0;\n\n if (!delegated) {\n return;\n }\n\n // count from last index of delegated to 0\n for (index = delegated.selectors.length - 1; index >= 0; index--) {\n // look for matching selector and context Node\n if (delegated.selectors[index] === selector && delegated.contexts[index] === context) {\n\n var listeners = delegated.listeners[index];\n\n // each item of the listeners array is an array: [function, capture, passive]\n for (var i = listeners.length - 1; i >= 0; i--) {\n var _listeners$i = listeners[i],\n fn = _listeners$i[0],\n capture = _listeners$i[1],\n passive = _listeners$i[2];\n\n // check if the listener functions and capture and passive flags match\n\n if (fn === listener && capture === !!options.capture && passive === options.passive) {\n // remove the listener from the array of listeners\n listeners.splice(i, 1);\n\n // if all listeners for this interactable have been removed\n // remove the interactable from the delegated arrays\n if (!listeners.length) {\n delegated.selectors.splice(index, 1);\n delegated.contexts.splice(index, 1);\n delegated.listeners.splice(index, 1);\n\n // remove delegate function from context\n remove(context, type, delegateListener);\n remove(context, type, delegateUseCapture, true);\n\n // remove the arrays if they are empty\n if (!delegated.selectors.length) {\n delegatedEvents[type] = null;\n }\n }\n\n // only remove one listener\n matchFound = true;\n break;\n }\n }\n\n if (matchFound) {\n break;\n }\n }\n }\n}\n\n// bound to the interactable context when a DOM event\n// listener is added to a selector interactable\nfunction delegateListener(event, optionalArg) {\n var options = getOptions(optionalArg);\n var fakeEvent = {};\n var delegated = delegatedEvents[event.type];\n\n var _pointerUtils$getEven = pointerUtils.getEventTargets(event),\n eventTarget = _pointerUtils$getEven[0];\n\n var element = eventTarget;\n\n // duplicate the event so that currentTarget can be changed\n pExtend(fakeEvent, event);\n\n fakeEvent.originalEvent = event;\n fakeEvent.preventDefault = preventOriginalDefault;\n\n // climb up document tree looking for selector matches\n while (is.element(element)) {\n for (var i = 0; i < delegated.selectors.length; i++) {\n var selector = delegated.selectors[i];\n var context = delegated.contexts[i];\n\n if (domUtils.matchesSelector(element, selector) && domUtils.nodeContains(context, eventTarget) && domUtils.nodeContains(context, element)) {\n\n var listeners = delegated.listeners[i];\n\n fakeEvent.currentTarget = element;\n\n for (var j = 0; j < listeners.length; j++) {\n var _listeners$j = listeners[j],\n fn = _listeners$j[0],\n capture = _listeners$j[1],\n passive = _listeners$j[2];\n\n\n if (capture === !!options.capture && passive === options.passive) {\n fn(fakeEvent);\n }\n }\n }\n }\n\n element = domUtils.parentNode(element);\n }\n}\n\nfunction delegateUseCapture(event) {\n return delegateListener.call(this, event, true);\n}\n\nfunction preventOriginalDefault() {\n this.originalEvent.preventDefault();\n}\n\nfunction getOptions(param) {\n return is.object(param) ? param : { capture: param };\n}\n\nmodule.exports = {\n add: add,\n remove: remove,\n\n addDelegate: addDelegate,\n removeDelegate: removeDelegate,\n\n delegateListener: delegateListener,\n delegateUseCapture: delegateUseCapture,\n delegatedEvents: delegatedEvents,\n documents: documents,\n\n supportsOptions: supportsOptions,\n\n _elements: elements,\n _targets: targets\n};\n\n},{\"./arr\":35,\"./domUtils\":39,\"./is\":46,\"./pointerExtend\":48,\"./pointerUtils\":49,\"./window\":52}],41:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = function extend(dest, source) {\n for (var prop in source) {\n dest[prop] = source[prop];\n }\n return dest;\n};\n\n},{}],42:[function(require,module,exports){\n'use strict';\n\nvar _require = require('./rect'),\n resolveRectLike = _require.resolveRectLike,\n rectToXY = _require.rectToXY;\n\nmodule.exports = function (target, element, action) {\n var actionOptions = target.options[action];\n var actionOrigin = actionOptions && actionOptions.origin;\n var origin = actionOrigin || target.options.origin;\n\n var originRect = resolveRectLike(origin, target, element, [target && element]);\n\n return rectToXY(originRect) || { x: 0, y: 0 };\n};\n\n},{\"./rect\":51}],43:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = function (x, y) {\n return Math.sqrt(x * x + y * y);\n};\n\n},{}],44:[function(require,module,exports){\n'use strict';\n\nvar extend = require('./extend');\nvar win = require('./window');\n\nvar utils = {\n warnOnce: function warnOnce(method, message) {\n var warned = false;\n\n return function () {\n if (!warned) {\n win.window.console.warn(message);\n warned = true;\n }\n\n return method.apply(this, arguments);\n };\n },\n\n // http://stackoverflow.com/a/5634528/2280888\n _getQBezierValue: function _getQBezierValue(t, p1, p2, p3) {\n var iT = 1 - t;\n return iT * iT * p1 + 2 * iT * t * p2 + t * t * p3;\n },\n\n getQuadraticCurvePoint: function getQuadraticCurvePoint(startX, startY, cpX, cpY, endX, endY, position) {\n return {\n x: utils._getQBezierValue(position, startX, cpX, endX),\n y: utils._getQBezierValue(position, startY, cpY, endY)\n };\n },\n\n // http://gizma.com/easing/\n easeOutQuad: function easeOutQuad(t, b, c, d) {\n t /= d;\n return -c * t * (t - 2) + b;\n },\n\n copyAction: function copyAction(dest, src) {\n dest.name = src.name;\n dest.axis = src.axis;\n dest.edges = src.edges;\n\n return dest;\n },\n\n is: require('./is'),\n extend: extend,\n hypot: require('./hypot'),\n getOriginXY: require('./getOriginXY')\n};\n\nextend(utils, require('./arr'));\nextend(utils, require('./domUtils'));\nextend(utils, require('./pointerUtils'));\nextend(utils, require('./rect'));\n\nmodule.exports = utils;\n\n},{\"./arr\":35,\"./domUtils\":39,\"./extend\":41,\"./getOriginXY\":42,\"./hypot\":43,\"./is\":46,\"./pointerUtils\":49,\"./rect\":51,\"./window\":52}],45:[function(require,module,exports){\n'use strict';\n\nvar scope = require('../scope');\nvar utils = require('./index');\n\nvar finder = {\n methodOrder: ['simulationResume', 'mouseOrPen', 'hasPointer', 'idle'],\n\n search: function search(pointer, eventType, eventTarget) {\n var pointerType = utils.getPointerType(pointer);\n var pointerId = utils.getPointerId(pointer);\n var details = { pointer: pointer, pointerId: pointerId, pointerType: pointerType, eventType: eventType, eventTarget: eventTarget };\n\n for (var _i = 0; _i < finder.methodOrder.length; _i++) {\n var _ref;\n\n _ref = finder.methodOrder[_i];\n var method = _ref;\n\n var interaction = finder[method](details);\n\n if (interaction) {\n return interaction;\n }\n }\n },\n\n // try to resume simulation with a new pointer\n simulationResume: function simulationResume(_ref2) {\n var pointerType = _ref2.pointerType,\n eventType = _ref2.eventType,\n eventTarget = _ref2.eventTarget;\n\n if (!/down|start/i.test(eventType)) {\n return null;\n }\n\n for (var _i2 = 0; _i2 < scope.interactions.length; _i2++) {\n var _ref3;\n\n _ref3 = scope.interactions[_i2];\n var interaction = _ref3;\n\n var element = eventTarget;\n\n if (interaction.simulation && interaction.simulation.allowResume && interaction.pointerType === pointerType) {\n while (element) {\n // if the element is the interaction element\n if (element === interaction.element) {\n return interaction;\n }\n element = utils.parentNode(element);\n }\n }\n }\n\n return null;\n },\n\n // if it's a mouse or pen interaction\n mouseOrPen: function mouseOrPen(_ref4) {\n var pointerId = _ref4.pointerId,\n pointerType = _ref4.pointerType,\n eventType = _ref4.eventType;\n\n if (pointerType !== 'mouse' && pointerType !== 'pen') {\n return null;\n }\n\n var firstNonActive = void 0;\n\n for (var _i3 = 0; _i3 < scope.interactions.length; _i3++) {\n var _ref5;\n\n _ref5 = scope.interactions[_i3];\n var interaction = _ref5;\n\n if (interaction.pointerType === pointerType) {\n // if it's a down event, skip interactions with running simulations\n if (interaction.simulation && !utils.contains(interaction.pointerIds, pointerId)) {\n continue;\n }\n\n // if the interaction is active, return it immediately\n if (interaction.interacting()) {\n return interaction;\n }\n // otherwise save it and look for another active interaction\n else if (!firstNonActive) {\n firstNonActive = interaction;\n }\n }\n }\n\n // if no active mouse interaction was found use the first inactive mouse\n // interaction\n if (firstNonActive) {\n return firstNonActive;\n }\n\n // find any mouse or pen interaction.\n // ignore the interaction if the eventType is a *down, and a simulation\n // is active\n for (var _i4 = 0; _i4 < scope.interactions.length; _i4++) {\n var _ref6;\n\n _ref6 = scope.interactions[_i4];\n var _interaction = _ref6;\n\n if (_interaction.pointerType === pointerType && !(/down/i.test(eventType) && _interaction.simulation)) {\n return _interaction;\n }\n }\n\n return null;\n },\n\n // get interaction that has this pointer\n hasPointer: function hasPointer(_ref7) {\n var pointerId = _ref7.pointerId;\n\n for (var _i5 = 0; _i5 < scope.interactions.length; _i5++) {\n var _ref8;\n\n _ref8 = scope.interactions[_i5];\n var interaction = _ref8;\n\n if (utils.contains(interaction.pointerIds, pointerId)) {\n return interaction;\n }\n }\n },\n\n // get first idle interaction with a matching pointerType\n idle: function idle(_ref9) {\n var pointerType = _ref9.pointerType;\n\n for (var _i6 = 0; _i6 < scope.interactions.length; _i6++) {\n var _ref10;\n\n _ref10 = scope.interactions[_i6];\n var interaction = _ref10;\n\n // if there's already a pointer held down\n if (interaction.pointerIds.length === 1) {\n var target = interaction.target;\n // don't add this pointer if there is a target interactable and it\n // isn't gesturable\n if (target && !target.options.gesture.enabled) {\n continue;\n }\n }\n // maximum of 2 pointers per interaction\n else if (interaction.pointerIds.length >= 2) {\n continue;\n }\n\n if (!interaction.interacting() && pointerType === interaction.pointerType) {\n return interaction;\n }\n }\n\n return null;\n }\n};\n\nmodule.exports = finder;\n\n},{\"../scope\":33,\"./index\":44}],46:[function(require,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar win = require('./window');\nvar isWindow = require('./isWindow');\n\nvar is = {\n array: function array() {},\n\n window: function window(thing) {\n return thing === win.window || isWindow(thing);\n },\n\n docFrag: function docFrag(thing) {\n return is.object(thing) && thing.nodeType === 11;\n },\n\n object: function object(thing) {\n return !!thing && (typeof thing === 'undefined' ? 'undefined' : _typeof(thing)) === 'object';\n },\n\n function: function _function(thing) {\n return typeof thing === 'function';\n },\n\n number: function number(thing) {\n return typeof thing === 'number';\n },\n\n bool: function bool(thing) {\n return typeof thing === 'boolean';\n },\n\n string: function string(thing) {\n return typeof thing === 'string';\n },\n\n element: function element(thing) {\n if (!thing || (typeof thing === 'undefined' ? 'undefined' : _typeof(thing)) !== 'object') {\n return false;\n }\n\n var _window = win.getWindow(thing) || win.window;\n\n return (/object|function/.test(_typeof(_window.Element)) ? thing instanceof _window.Element //DOM2\n : thing.nodeType === 1 && typeof thing.nodeName === 'string'\n );\n },\n\n plainObject: function plainObject(thing) {\n return is.object(thing) && thing.constructor.name === 'Object';\n }\n};\n\nis.array = function (thing) {\n return is.object(thing) && typeof thing.length !== 'undefined' && is.function(thing.splice);\n};\n\nmodule.exports = is;\n\n},{\"./isWindow\":47,\"./window\":52}],47:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = function (thing) {\n return !!(thing && thing.Window) && thing instanceof thing.Window;\n};\n\n},{}],48:[function(require,module,exports){\n'use strict';\n\nfunction pointerExtend(dest, source) {\n for (var prop in source) {\n var prefixedPropREs = module.exports.prefixedPropREs;\n var deprecated = false;\n\n // skip deprecated prefixed properties\n for (var vendor in prefixedPropREs) {\n if (prop.indexOf(vendor) === 0 && prefixedPropREs[vendor].test(prop)) {\n deprecated = true;\n break;\n }\n }\n\n if (!deprecated && typeof source[prop] !== 'function') {\n dest[prop] = source[prop];\n }\n }\n return dest;\n}\n\npointerExtend.prefixedPropREs = {\n webkit: /(Movement[XY]|Radius[XY]|RotationAngle|Force)$/\n};\n\nmodule.exports = pointerExtend;\n\n},{}],49:[function(require,module,exports){\n'use strict';\n\nvar hypot = require('./hypot');\nvar browser = require('./browser');\nvar dom = require('./domObjects');\nvar domUtils = require('./domUtils');\nvar domObjects = require('./domObjects');\nvar is = require('./is');\nvar pointerExtend = require('./pointerExtend');\n\nvar pointerUtils = {\n copyCoords: function copyCoords(dest, src) {\n dest.page = dest.page || {};\n dest.page.x = src.page.x;\n dest.page.y = src.page.y;\n\n dest.client = dest.client || {};\n dest.client.x = src.client.x;\n dest.client.y = src.client.y;\n\n dest.timeStamp = src.timeStamp;\n },\n\n setCoordDeltas: function setCoordDeltas(targetObj, prev, cur) {\n targetObj.page.x = cur.page.x - prev.page.x;\n targetObj.page.y = cur.page.y - prev.page.y;\n targetObj.client.x = cur.client.x - prev.client.x;\n targetObj.client.y = cur.client.y - prev.client.y;\n targetObj.timeStamp = cur.timeStamp - prev.timeStamp;\n\n // set pointer velocity\n var dt = Math.max(targetObj.timeStamp / 1000, 0.001);\n\n targetObj.page.speed = hypot(targetObj.page.x, targetObj.page.y) / dt;\n targetObj.page.vx = targetObj.page.x / dt;\n targetObj.page.vy = targetObj.page.y / dt;\n\n targetObj.client.speed = hypot(targetObj.client.x, targetObj.page.y) / dt;\n targetObj.client.vx = targetObj.client.x / dt;\n targetObj.client.vy = targetObj.client.y / dt;\n },\n\n isNativePointer: function isNativePointer(pointer) {\n return pointer instanceof dom.Event || pointer instanceof dom.Touch;\n },\n\n // Get specified X/Y coords for mouse or event.touches[0]\n getXY: function getXY(type, pointer, xy) {\n xy = xy || {};\n type = type || 'page';\n\n xy.x = pointer[type + 'X'];\n xy.y = pointer[type + 'Y'];\n\n return xy;\n },\n\n getPageXY: function getPageXY(pointer, page) {\n page = page || {};\n\n // Opera Mobile handles the viewport and scrolling oddly\n if (browser.isOperaMobile && pointerUtils.isNativePointer(pointer)) {\n pointerUtils.getXY('screen', pointer, page);\n\n page.x += window.scrollX;\n page.y += window.scrollY;\n } else {\n pointerUtils.getXY('page', pointer, page);\n }\n\n return page;\n },\n\n getClientXY: function getClientXY(pointer, client) {\n client = client || {};\n\n if (browser.isOperaMobile && pointerUtils.isNativePointer(pointer)) {\n // Opera Mobile handles the viewport and scrolling oddly\n pointerUtils.getXY('screen', pointer, client);\n } else {\n pointerUtils.getXY('client', pointer, client);\n }\n\n return client;\n },\n\n getPointerId: function getPointerId(pointer) {\n return is.number(pointer.pointerId) ? pointer.pointerId : pointer.identifier;\n },\n\n setCoords: function setCoords(targetObj, pointers, timeStamp) {\n var pointer = pointers.length > 1 ? pointerUtils.pointerAverage(pointers) : pointers[0];\n\n var tmpXY = {};\n\n pointerUtils.getPageXY(pointer, tmpXY);\n targetObj.page.x = tmpXY.x;\n targetObj.page.y = tmpXY.y;\n\n pointerUtils.getClientXY(pointer, tmpXY);\n targetObj.client.x = tmpXY.x;\n targetObj.client.y = tmpXY.y;\n\n targetObj.timeStamp = is.number(timeStamp) ? timeStamp : new Date().getTime();\n },\n\n pointerExtend: pointerExtend,\n\n getTouchPair: function getTouchPair(event) {\n var touches = [];\n\n // array of touches is supplied\n if (is.array(event)) {\n touches[0] = event[0];\n touches[1] = event[1];\n }\n // an event\n else {\n if (event.type === 'touchend') {\n if (event.touches.length === 1) {\n touches[0] = event.touches[0];\n touches[1] = event.changedTouches[0];\n } else if (event.touches.length === 0) {\n touches[0] = event.changedTouches[0];\n touches[1] = event.changedTouches[1];\n }\n } else {\n touches[0] = event.touches[0];\n touches[1] = event.touches[1];\n }\n }\n\n return touches;\n },\n\n pointerAverage: function pointerAverage(pointers) {\n var average = {\n pageX: 0,\n pageY: 0,\n clientX: 0,\n clientY: 0,\n screenX: 0,\n screenY: 0\n };\n\n for (var _i = 0; _i < pointers.length; _i++) {\n var _ref;\n\n _ref = pointers[_i];\n var pointer = _ref;\n\n for (var _prop in average) {\n average[_prop] += pointer[_prop];\n }\n }\n for (var prop in average) {\n average[prop] /= pointers.length;\n }\n\n return average;\n },\n\n touchBBox: function touchBBox(event) {\n if (!event.length && !(event.touches && event.touches.length > 1)) {\n return;\n }\n\n var touches = pointerUtils.getTouchPair(event);\n var minX = Math.min(touches[0].pageX, touches[1].pageX);\n var minY = Math.min(touches[0].pageY, touches[1].pageY);\n var maxX = Math.max(touches[0].pageX, touches[1].pageX);\n var maxY = Math.max(touches[0].pageY, touches[1].pageY);\n\n return {\n x: minX,\n y: minY,\n left: minX,\n top: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n },\n\n touchDistance: function touchDistance(event, deltaSource) {\n var sourceX = deltaSource + 'X';\n var sourceY = deltaSource + 'Y';\n var touches = pointerUtils.getTouchPair(event);\n\n var dx = touches[0][sourceX] - touches[1][sourceX];\n var dy = touches[0][sourceY] - touches[1][sourceY];\n\n return hypot(dx, dy);\n },\n\n touchAngle: function touchAngle(event, prevAngle, deltaSource) {\n var sourceX = deltaSource + 'X';\n var sourceY = deltaSource + 'Y';\n var touches = pointerUtils.getTouchPair(event);\n var dx = touches[1][sourceX] - touches[0][sourceX];\n var dy = touches[1][sourceY] - touches[0][sourceY];\n var angle = 180 * Math.atan2(dy, dx) / Math.PI;\n\n return angle;\n },\n\n getPointerType: function getPointerType(pointer) {\n return is.string(pointer.pointerType) ? pointer.pointerType : is.number(pointer.pointerType) ? [undefined, undefined, 'touch', 'pen', 'mouse'][pointer.pointerType]\n // if the PointerEvent API isn't available, then the \"pointer\" must\n // be either a MouseEvent, TouchEvent, or Touch object\n : /touch/.test(pointer.type) || pointer instanceof domObjects.Touch ? 'touch' : 'mouse';\n },\n\n // [ event.target, event.currentTarget ]\n getEventTargets: function getEventTargets(event) {\n var path = is.function(event.composedPath) ? event.composedPath() : event.path;\n\n return [domUtils.getActualElement(path ? path[0] : event.target), domUtils.getActualElement(event.currentTarget)];\n }\n};\n\nmodule.exports = pointerUtils;\n\n},{\"./browser\":36,\"./domObjects\":38,\"./domUtils\":39,\"./hypot\":43,\"./is\":46,\"./pointerExtend\":48}],50:[function(require,module,exports){\n'use strict';\n\nvar _require = require('./window'),\n window = _require.window;\n\nvar vendors = ['ms', 'moz', 'webkit', 'o'];\nvar lastTime = 0;\nvar request = void 0;\nvar cancel = void 0;\n\nfor (var x = 0; x < vendors.length && !window.requestAnimationFrame; x++) {\n request = window[vendors[x] + 'RequestAnimationFrame'];\n cancel = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];\n}\n\nif (!request) {\n request = function request(callback) {\n var currTime = new Date().getTime();\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\n var id = setTimeout(function () {\n callback(currTime + timeToCall);\n }, timeToCall);\n\n lastTime = currTime + timeToCall;\n return id;\n };\n}\n\nif (!cancel) {\n cancel = function cancel(id) {\n clearTimeout(id);\n };\n}\n\nmodule.exports = {\n request: request,\n cancel: cancel\n};\n\n},{\"./window\":52}],51:[function(require,module,exports){\n'use strict';\n\nvar extend = require('./extend');\nvar is = require('./is');\n\nvar _require = require('./domUtils'),\n closest = _require.closest,\n parentNode = _require.parentNode,\n getElementRect = _require.getElementRect;\n\nvar rectUtils = {\n getStringOptionResult: function getStringOptionResult(value, interactable, element) {\n if (!is.string(value)) {\n return null;\n }\n\n if (value === 'parent') {\n value = parentNode(element);\n } else if (value === 'self') {\n value = interactable.getRect(element);\n } else {\n value = closest(element, value);\n }\n\n return value;\n },\n\n resolveRectLike: function resolveRectLike(value, interactable, element, functionArgs) {\n value = rectUtils.getStringOptionResult(value, interactable, element) || value;\n\n if (is.function(value)) {\n value = value.apply(null, functionArgs);\n }\n\n if (is.element(value)) {\n value = getElementRect(value);\n }\n\n return value;\n },\n\n rectToXY: function rectToXY(rect) {\n return rect && {\n x: 'x' in rect ? rect.x : rect.left,\n y: 'y' in rect ? rect.y : rect.top\n };\n },\n\n xywhToTlbr: function xywhToTlbr(rect) {\n if (rect && !('left' in rect && 'top' in rect)) {\n rect = extend({}, rect);\n\n rect.left = rect.x || 0;\n rect.top = rect.y || 0;\n rect.right = rect.right || rect.left + rect.width;\n rect.bottom = rect.bottom || rect.top + rect.height;\n }\n\n return rect;\n },\n\n tlbrToXywh: function tlbrToXywh(rect) {\n if (rect && !('x' in rect && 'y' in rect)) {\n rect = extend({}, rect);\n\n rect.x = rect.left || 0;\n rect.top = rect.top || 0;\n rect.width = rect.width || rect.right - rect.x;\n rect.height = rect.height || rect.bottom - rect.y;\n }\n\n return rect;\n }\n};\n\nmodule.exports = rectUtils;\n\n},{\"./domUtils\":39,\"./extend\":41,\"./is\":46}],52:[function(require,module,exports){\n'use strict';\n\nvar win = module.exports;\nvar isWindow = require('./isWindow');\n\nfunction init(window) {\n // get wrapped window if using Shadow DOM polyfill\n\n win.realWindow = window;\n\n // create a TextNode\n var el = window.document.createTextNode('');\n\n // check if it's wrapped by a polyfill\n if (el.ownerDocument !== window.document && typeof window.wrap === 'function' && window.wrap(el) === el) {\n // use wrapped window\n window = window.wrap(window);\n }\n\n win.window = window;\n}\n\nif (typeof window === 'undefined') {\n win.window = undefined;\n win.realWindow = undefined;\n} else {\n init(window);\n}\n\nwin.getWindow = function getWindow(node) {\n if (isWindow(node)) {\n return node;\n }\n\n var rootNode = node.ownerDocument || node;\n\n return rootNode.defaultView || rootNode.parentWindow || win.window;\n};\n\nwin.init = init;\n\n},{\"./isWindow\":47}]},{},[1])(1)\n});\n\n\n//# sourceMappingURL=interact.js.map\n","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://VueGridLayout/webpack/universalModuleDefinition","webpack://VueGridLayout/webpack/bootstrap","webpack://VueGridLayout/./node_modules/core-js/modules/_iter-define.js","webpack://VueGridLayout/./node_modules/core-js/modules/_string-at.js","webpack://VueGridLayout/./node_modules/core-js/modules/_advance-string-index.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_has.js","webpack://VueGridLayout/./node_modules/core-js/modules/_flags.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-keys.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_to-absolute-index.js","webpack://VueGridLayout/./src/components/GridLayout.vue?43b0","webpack://VueGridLayout/./node_modules/core-js/modules/_object-gopd.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-dps.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_enum-bug-keys.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/detection-strategy/object.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/browser-detector.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/es6.array.is-array.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_to-primitive.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_dom-create.js","webpack://VueGridLayout/./node_modules/core-js/modules/_fix-re-wks.js","webpack://VueGridLayout/./node_modules/core-js/modules/_dom-create.js","webpack://VueGridLayout/./node_modules/css-loader/lib/css-base.js","webpack://VueGridLayout/./node_modules/core-js/modules/_classof.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_to-object.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_defined.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_fails.js","webpack://VueGridLayout/./node_modules/core-js/modules/_redefine.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-create.js","webpack://VueGridLayout/./node_modules/core-js/modules/_wks.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/id-generator.js","webpack://VueGridLayout/./node_modules/core-js/modules/_library.js","webpack://VueGridLayout/./node_modules/core-js/modules/_cof.js","webpack://VueGridLayout/./node_modules/core-js/modules/_strict-method.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/es6.object.keys.js","webpack://VueGridLayout/./node_modules/core-js/modules/_hide.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_iobject.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_hide.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_to-iobject.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-gpo.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_to-integer.js","webpack://VueGridLayout/./node_modules/core-js/modules/_iter-create.js","webpack://VueGridLayout/./node_modules/core-js/modules/_to-integer.js","webpack://VueGridLayout/./node_modules/core-js/modules/_property-desc.js","webpack://VueGridLayout/./node_modules/vue-style-loader/lib/listToStyles.js","webpack://VueGridLayout/./node_modules/vue-style-loader/lib/addStylesClient.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/listener-handler.js","webpack://VueGridLayout/./node_modules/core-js/modules/_to-object.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/id-handler.js","webpack://VueGridLayout/./node_modules/batch-processor/src/utils.js","webpack://VueGridLayout/./node_modules/core-js/modules/_regexp-exec.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-pie.js","webpack://VueGridLayout/./node_modules/core-js/modules/_shared.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_shared-key.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.array.sort.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_core.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_array-includes.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/element-utils.js","webpack://VueGridLayout/./node_modules/core-js/modules/_export.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_parse-int.js","webpack://VueGridLayout/./node_modules/core-js/modules/_inherit-if-required.js","webpack://VueGridLayout/./src/components/GridItem.vue?70f1","webpack://VueGridLayout/./node_modules/core-js/modules/_regexp-exec-abstract.js","webpack://VueGridLayout/./node_modules/core-js/modules/_shared-key.js","webpack://VueGridLayout/./node_modules/core-js/modules/_iobject.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_uid.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_export.js","webpack://VueGridLayout/./node_modules/core-js/modules/_to-iobject.js","webpack://VueGridLayout/./node_modules/core-js/modules/_has.js","webpack://VueGridLayout/./node_modules/core-js/modules/_to-primitive.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_cof.js","webpack://VueGridLayout/./src/components/GridItem.vue?73c4","webpack://VueGridLayout/./node_modules/core-js/library/modules/es6.parse-int.js","webpack://VueGridLayout/./node_modules/core-js/modules/_global.js","webpack://VueGridLayout/./node_modules/core-js/modules/_to-absolute-index.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_ie8-dom-define.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_a-function.js","webpack://VueGridLayout/./node_modules/core-js/modules/_fails.js","webpack://VueGridLayout/./node_modules/core-js/modules/_set-to-string-tag.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.function.name.js","webpack://VueGridLayout/./node_modules/core-js/modules/_core.js","webpack://VueGridLayout/./node_modules/core-js/modules/_iterators.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-dp.js","webpack://VueGridLayout/./node_modules/core-js/library/fn/object/keys.js","webpack://VueGridLayout/./node_modules/core-js/modules/_set-proto.js","webpack://VueGridLayout/external {\"commonjs\":\"vue\",\"commonjs2\":\"vue\",\"root\":\"Vue\"}","webpack://VueGridLayout/./node_modules/core-js/library/modules/_descriptors.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_is-array.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-gopn.js","webpack://VueGridLayout/./node_modules/core-js/modules/_ctx.js","webpack://VueGridLayout/./node_modules/core-js/modules/_add-to-unscopables.js","webpack://VueGridLayout/./src/components/GridItem.vue?b235","webpack://VueGridLayout/./node_modules/core-js/modules/_to-length.js","webpack://VueGridLayout/./node_modules/core-js/modules/_descriptors.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_string-trim.js","webpack://VueGridLayout/./node_modules/core-js/library/fn/json/stringify.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.regexp.replace.js","webpack://VueGridLayout/./node_modules/@babel/runtime-corejs2/core-js/object/keys.js","webpack://VueGridLayout/./node_modules/@babel/runtime-corejs2/core-js/array/is-array.js","webpack://VueGridLayout/./node_modules/core-js/modules/_string-trim.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/reporter.js","webpack://VueGridLayout/./node_modules/core-js/modules/web.dom.iterable.js","webpack://VueGridLayout/./src/components/GridLayout.vue?af6b","webpack://VueGridLayout/./node_modules/core-js/library/modules/_property-desc.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.regexp.exec.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_to-length.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/collection-utils.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_library.js","webpack://VueGridLayout/./node_modules/core-js/library/fn/parse-int.js","webpack://VueGridLayout/./node_modules/core-js/modules/_defined.js","webpack://VueGridLayout/./node_modules/batch-processor/src/batch-processor.js","webpack://VueGridLayout/./node_modules/core-js/modules/_array-includes.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_object-keys.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.number.constructor.js","webpack://VueGridLayout/./node_modules/core-js/modules/_ie8-dom-define.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/detection-strategy/scroll.js","webpack://VueGridLayout/./node_modules/core-js/modules/_uid.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.array.iterator.js","webpack://VueGridLayout/./node_modules/core-js/modules/_an-object.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-keys-internal.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_object-sap.js","webpack://VueGridLayout/./node_modules/core-js/modules/_is-object.js","webpack://VueGridLayout/./node_modules/core-js/modules/_iter-step.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/state-handler.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_ctx.js","webpack://VueGridLayout/./node_modules/core-js/modules/_a-function.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_object-dp.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_shared.js","webpack://VueGridLayout/./node_modules/core-js/modules/_enum-bug-keys.js","webpack://VueGridLayout/./src/components/GridLayout.vue?2bdf","webpack://VueGridLayout/./node_modules/core-js/library/modules/_an-object.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_global.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_string-ws.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_object-keys-internal.js","webpack://VueGridLayout/./node_modules/@babel/runtime-corejs2/core-js/parse-int.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/element-resize-detector.js","webpack://VueGridLayout/./node_modules/core-js/library/fn/array/is-array.js","webpack://VueGridLayout/./node_modules/@babel/runtime-corejs2/core-js/json/stringify.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_is-object.js","webpack://VueGridLayout/./node_modules/core-js/modules/_function-to-string.js","webpack://VueGridLayout/./node_modules/core-js/modules/_html.js","webpack://VueGridLayout/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://VueGridLayout/./src/components/GridItem.vue?d2b9","webpack://VueGridLayout/./src/helpers/utils.js","webpack://VueGridLayout/./src/helpers/draggableUtils.js","webpack://VueGridLayout/./src/helpers/DOM.js","webpack://VueGridLayout/src/components/GridItem.vue","webpack://VueGridLayout/./src/components/GridItem.vue?2537","webpack://VueGridLayout/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://VueGridLayout/./src/components/GridItem.vue","webpack://VueGridLayout/./src/components/GridLayout.vue?972e","webpack://VueGridLayout/./src/helpers/responsiveUtils.js","webpack://VueGridLayout/src/components/GridLayout.vue","webpack://VueGridLayout/./src/components/GridLayout.vue?2dea","webpack://VueGridLayout/./src/components/GridLayout.vue","webpack://VueGridLayout/./src/components/index.js","webpack://VueGridLayout/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js","webpack://VueGridLayout/./node_modules/interactjs/dist/interact.js","webpack://VueGridLayout/./node_modules/core-js/modules/_string-ws.js"],"names":["bottom","layout","max","bottomY","i","len","length","y","h","cloneLayout","newLayout","Array","cloneLayoutItem","layoutItem","JSON","parse","collides","l1","l2","x","w","compact","verticalCompact","compareWith","getStatics","sorted","sortLayoutItemsByRowCol","out","l","static","compactItem","push","indexOf","moved","getFirstCollision","correctBounds","bounds","collidesWith","cols","getLayoutItem","id","getAllCollisions","filter","moveElement","isUserAction","movingUp","reverse","collisions","collision","moveElementAwayFromCollision","itemToMove","fakeItem","Math","undefined","perc","num","setTransform","top","left","width","height","translate","transform","WebkitTransform","MozTransform","msTransform","OTransform","position","setTransformRtl","right","setTopLeft","setTopRight","concat","sort","a","b","validateLayout","contextName","subProps","Error","item","j","autoBindHandlers","el","fns","forEach","key","bind","createMarkup","obj","keys","result","val","hyphenate","addPx","IS_UNITLESS","animationIterationCount","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridColumn","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","stopOpacity","strokeDashoffset","strokeOpacity","strokeWidth","name","value","hyphenateRE","str","replace","toLowerCase","findItemInArray","array","property","findAndRemove","index","splice","getControlPosition","e","offsetXYFromParentOf","evt","offsetParent","target","document","body","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","createCoreData","lastX","lastY","isStart","isNum","deltaX","deltaY","isNaN","currentDir","hasDocument","hasWindow","window","getDocumentDir","direction","dir","getElementsByTagName","getAttribute","setDocumentDir","html","setAttribute","addWindowEventListener","event","callback","addEventListener","removeWindowEventListener","removeEventListener","getBreakpointFromWidth","breakpoints","sortBreakpoints","matching","breakpointName","getColsFromBreakpoint","breakpoint","findOrGenerateResponsiveLayout","orgLayout","layouts","lastBreakpoint","breakpointsSorted","breakpointsAbove","slice","generateResponsiveLayout","VueGridLayout","GridLayout","GridItem","Vue","component"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kDAA0C,gCAAgC;AAC1E;AACA;;AAEA;AACA;AACA;AACA,gEAAwD,kBAAkB;AAC1E;AACA,yDAAiD,cAAc;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAyC,iCAAiC;AAC1E,wHAAgH,mBAAmB,EAAE;AACrI;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;;AAGA;AACA;;;;;;;;;AClFa;AACb,cAAc,mBAAO,CAAC,MAAY;AAClC,cAAc,mBAAO,CAAC,MAAW;AACjC,eAAe,mBAAO,CAAC,MAAa;AACpC,WAAW,mBAAO,CAAC,MAAS;AAC5B,gBAAgB,mBAAO,CAAC,MAAc;AACtC,kBAAkB,mBAAO,CAAC,MAAgB;AAC1C,qBAAqB,mBAAO,CAAC,MAAsB;AACnD,qBAAqB,mBAAO,CAAC,MAAe;AAC5C,eAAe,mBAAO,CAAC,MAAQ;AAC/B,8CAA8C;AAC9C;AACA;AACA;;AAEA,8BAA8B,aAAa;;AAE3C;AACA;AACA;AACA;AACA;AACA,yCAAyC,oCAAoC;AAC7E,6CAA6C,oCAAoC;AACjF,KAAK,4BAA4B,oCAAoC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA,kCAAkC,2BAA2B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;ACpEA,gBAAgB,mBAAO,CAAC,MAAe;AACvC,cAAc,mBAAO,CAAC,MAAY;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBa;AACb,SAAS,mBAAO,CAAC,MAAc;;AAE/B;AACA;AACA;AACA;AACA;;;;;;;;ACPA,uBAAuB;AACvB;AACA;AACA;;;;;;;;;ACHa;AACb;AACA,eAAe,mBAAO,CAAC,MAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AACA,YAAY,mBAAO,CAAC,MAAyB;AAC7C,kBAAkB,mBAAO,CAAC,MAAkB;;AAE5C;AACA;AACA;;;;;;;;ACNA,gBAAgB,mBAAO,CAAC,MAAe;AACvC;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;;AAEA;AACA,cAAc,mBAAO,CAAC,MAAka;AACxb,4CAA4C,QAAS;AACrD;AACA;AACA,UAAU,mBAAO,CAAC,MAA6D;AAC/E,6CAA6C,qCAAqC,E;;;;;;;ACRlF,UAAU,mBAAO,CAAC,MAAe;AACjC,iBAAiB,mBAAO,CAAC,MAAkB;AAC3C,gBAAgB,mBAAO,CAAC,MAAe;AACvC,kBAAkB,mBAAO,CAAC,MAAiB;AAC3C,UAAU,mBAAO,CAAC,MAAQ;AAC1B,qBAAqB,mBAAO,CAAC,MAAmB;AAChD;;AAEA,YAAY,mBAAO,CAAC,MAAgB;AACpC;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;AACA;;;;;;;;ACfA,SAAS,mBAAO,CAAC,MAAc;AAC/B,eAAe,mBAAO,CAAC,MAAc;AACrC,cAAc,mBAAO,CAAC,MAAgB;;AAEtC,iBAAiB,mBAAO,CAAC,MAAgB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AACA;AACA;AACA;;;;;;;;;ACHA;AACA;AACA;AACA;;AAEa;;AAEb,sBAAsB,mBAAO,CAAC,MAAqB;;AAEnD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,+CAA+C,oBAAoB,QAAQ,SAAS,aAAa,cAAc,cAAc,YAAY,WAAW,YAAY,gBAAgB,sBAAsB;;AAEtM;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;;AAE7B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtNa;;AAEb;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;;;;;;;ACtCA;AACA,cAAc,mBAAO,CAAC,MAAW;;AAEjC,6BAA6B,UAAU,mBAAO,CAAC,MAAa,GAAG;;;;;;;;ACH/D;AACA,eAAe,mBAAO,CAAC,MAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA,eAAe,mBAAO,CAAC,MAAc;AACrC,eAAe,mBAAO,CAAC,MAAW;AAClC;AACA;AACA;AACA;AACA;;;;;;;;;ACNa;AACb,mBAAO,CAAC,MAAmB;AAC3B,eAAe,mBAAO,CAAC,MAAa;AACpC,WAAW,mBAAO,CAAC,MAAS;AAC5B,YAAY,mBAAO,CAAC,MAAU;AAC9B,cAAc,mBAAO,CAAC,MAAY;AAClC,UAAU,mBAAO,CAAC,MAAQ;AAC1B,iBAAiB,mBAAO,CAAC,MAAgB;;AAEzC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,yBAAyB,4CAA4C;AACrE;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,UAAU;AACvC;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB,aAAa;AAC3D;AACA;AACA;AACA;AACA,6CAA6C,WAAW;AACxD;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,kBAAkB;AAClB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAAgC,qCAAqC;AACrE;AACA;AACA,2BAA2B,gCAAgC;AAC3D;AACA;AACA;;;;;;;;AC/FA,eAAe,mBAAO,CAAC,MAAc;AACrC,eAAe,mBAAO,CAAC,MAAW;AAClC;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gBAAgB;AACnD,IAAI;AACJ;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AAC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B,mBAAO,CAAC,MAAsB;AACnD;;AAEA;AACA,mBAAO,CAAC,MAAS,qBAAqB,mBAAO,CAAC,MAAQ,4BAA4B,aAAa,EAAE;;AAEjG;AACA,qDAAqD,4BAA4B;AACjF;AACA;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACe;AACf;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,wBAAwB;AAC3D,KAAK;AACL;AACA;AACA;AACA;AACA;;;AC1BA;AAAA;AACA;AACA;AACA;AACA;;AAEyC;;AAEzC;;AAEA;AACA;AACA;AACA;AACA,UAAU,iBAAiB;AAC3B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;;AAEA;;AAEA,eAAe,YAAY;AAC3B;;AAEA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B;AACA,KAAK;AACL;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7Na;;AAEb;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3DA;AACA,cAAc,mBAAO,CAAC,MAAY;AAClC;AACA;AACA;;;;;;;;;ACJa;;AAEb;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,mBAAmB;AACpC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,mBAAmB;AACpC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;AC9Ca;;AAEb;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;ACda;;AAEb,kBAAkB,mBAAO,CAAC,MAAU;;AAEpC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAE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;AAEA;AACA;AACA;;AAEA;AACA,mBAAO,CAAC,MAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;;;;;;;ACrHD,iBAAiB,mBAAO,CAAC,MAAgC,E;;;;;;;ACAzD,iBAAiB,mBAAO,CAAC,MAAmC,E;;;;;;;ACA5D,cAAc,mBAAO,CAAC,MAAW;AACjC,cAAc,mBAAO,CAAC,MAAY;AAClC,YAAY,mBAAO,CAAC,MAAU;AAC9B,aAAa,mBAAO,CAAC,MAAc;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;AC7Ba;;AAEb;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,iBAAiB;AACjB,mCAAmC,sBAAsB;AACzD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,E;;;;;;;AC1CA,iBAAiB,mBAAO,CAAC,MAAsB;AAC/C,cAAc,mBAAO,CAAC,MAAgB;AACtC,eAAe,mBAAO,CAAC,MAAa;AACpC,aAAa,mBAAO,CAAC,MAAW;AAChC,WAAW,mBAAO,CAAC,MAAS;AAC5B,gBAAgB,mBAAO,CAAC,MAAc;AACtC,UAAU,mBAAO,CAAC,MAAQ;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAoD,wBAAwB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA,2BAA2B,mBAAO,CAAC,MAA+C;AAClF;;;AAGA;AACA,cAAc,QAAS,oBAAoB,kBAAkB,mCAAmC,2BAA2B;;AAE3H;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPa;AACb,iBAAiB,mBAAO,CAAC,MAAgB;AACzC,mBAAO,CAAC,MAAW;AACnB;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;;;;;;;;ACRD;AACA,gBAAgB,mBAAO,CAAC,MAAe;AACvC;AACA;AACA,2DAA2D;AAC3D;;;;;;;;;ACLa;;AAEb;;AAEA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,SAAS;AACpB,aAAa,EAAE;AACf;AACA;AACA,kBAAkB,uBAAuB;AACzC;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;;;;;;;;ACAA,mBAAO,CAAC,MAA0B;AAClC,iBAAiB,mBAAO,CAAC,MAAkB;;;;;;;;ACD3C;AACA;AACA;AACA;AACA;;;;;;;;;ACJa;;AAEb,YAAY,mBAAO,CAAC,MAAS;;AAE7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;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,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,mCAAmC,iBAAiB;AACpD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kEAAkE,iBAAiB,YAAY,aAAa,aAAa,kBAAkB,WAAW,YAAY;AAClK;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,2CAA2C,kBAAkB,sBAAsB,wBAAwB;AAC3G;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,8DAA8D,YAAY,kBAAkB,aAAa,oBAAoB,aAAa,cAAc,WAAW,UAAU;AAC7K,8DAA8D,YAAY,kBAAkB,aAAa,oBAAoB;AAC7H,8DAA8D,YAAY,kBAAkB,aAAa,oBAAoB,aAAa,cAAc;AACxJ,8DAA8D,YAAY,kBAAkB,aAAa,oBAAoB,aAAa,cAAc;AACxJ,8DAA8D,SAAS,QAAQ;AAC/E,8DAA8D,aAAa,cAAc;;AAEzF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA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O,CAAC,MAAgC;AACtE,8BAA8B,mBAAO,CAAC,MAAgC;;AAEtE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB;;AAEA;AACA;AACA,UAAU;AACV,cAAc,QAAQ;AACtB;AACA;AACA,cAAc,UAAU;AACxB;AACA,cAAc,SAAS;AACvB;AACA;AACA,cAAc,QAAQ;AACtB;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,qCAAqC,6CAA6C,EAAE;AACpF;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,mFAAmF,qBAAqB;;AAExG;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,kBAAkB;AACjC,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA,8EAA8E;AAC9E;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;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ArBA;AAsBA,2BAtBA;AAwBA,qBAxBA;AAyBA,qBAzBA;AA0BA,qBA1BA;AA2BA,qBA3BA;AA4BA,oBA5BA;AA6BA,oBA7BA;AA8BA,oBA9BA;AA+BA;AA/BA;AAiCA,GAtIA;AAuIA,SAvIA,qBAuIA;AAAA;;AACA,oBADA,CAGA;;AACA;AACA;AACA,KAFA;;AAIA;AACA;AACA,KAFA;;AAIA;AACA;AACA;AACA;AACA,KAJA;;AAMA;AACA;AACA;AACA;AACA,KAJA;;AAMA;AACA;AACA,KAFA;;AAIA;AACA;;AACA;AACA,KAHA;;AAKA;AACA;AACA,KAFA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA,GArLA;AAsLA;AACA,oBADA,CAEA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAVA,CAUA;AACA,GAjMA;AAkMA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA,KAFA,MAEA;AACA;AACA;;AACA;AACA;AACA,KAFA,MAEA;AACA;AACA;;AACA;AACA;AACA,GApNA;AAqNA;AACA;AACA;AACA,KAHA;AAIA;AACA;AACA;AACA,KAPA;AAQA;AACA;AACA,KAVA;AAWA;AACA;AACA,KAbA;AAcA;AACA;AACA,KAhBA;AAiBA;AACA;AACA,KAnBA;AAoBA;AACA;AACA;AACA,KAvBA;AAwBA;AACA;AACA;AACA,KA3BA;AA4BA;AACA;AACA;AACA,KA/BA;AAgCA;AACA;AACA;AACA,KAnCA;AAoCA;AACA;AACA;AACA,KAvCA;AAwCA;AACA;AACA;AACA,KA3CA;AA4CA;AACA;AACA;AACA;AACA;AAhDA,GArNA;AAuQA;AACA,yBADA,mCACA;AACA;AACA,KAHA;AAIA,aAJA,uBAIA;AACA;AACA,KANA;AAOA,aAPA,uBAOA;AACA;AACA,KATA;AAUA,wBAVA,kCAUA;AACA;AACA;AACA,OAFA,MAEA;AACA;AACA;AACA;AAhBA,GAvQA;AAyRA;AACA;AACA;AACA;AACA;AACA,OAHA,MAGA;AACA;AACA;AACA;;AACA;;AAGA;AACA,oCADA,CAEA;;AACA;AACA;AACA,SAFA,MAEA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;AAEA,gBAzBA,CA0BA;;AACA;AACA;AACA;AACA;AACA,SAFA,MAEA;AACA;AACA;AAEA,OARA,MAQA;AAAA;AACA;AACA;AACA;AACA,SAFA,MAEA;AACA;AACA;AACA;;AACA;AAEA,KA9CA;AA+CA;AACA;AACA,+CAFA,CAGA;;AACA,mCAJA,CAIA;;AAJA,UAKA,CALA,GAKA,QALA,CAKA,CALA;AAAA,UAKA,CALA,GAKA,QALA,CAKA,CALA;AAOA;AAAA;AAAA;AAAA;AACA;;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AAAA;AACA;AACA;;AACA;AACA;AACA,aAFA,MAEA;AACA;AACA;;AACA,qEARA,CAUA;;AACA;AACA;AACA;;AACA;AAAA;AACA;AACA;AACA;AACA,wCAJA,CAKA;;AACA;AACA;AACA;AACA;AAlCA,OATA,CA8CA;;;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AAEA;AACA;AACA;;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA,KA7HA;AA8HA,cA9HA,sBA8HA,KA9HA,EA8HA;AACA;AACA;AAEA,+CAJA,CAMA;;AACA,oCAPA,CAOA;;AAPA,UAQA,CARA,GAQA,QARA,CAQA,CARA;AAAA,UAQA,CARA,GAQA,QARA,CAQA,CARA,EAUA;;AACA;AAAA;AAAA;AAAA;;AACA;AACA;AAAA;AACA;AACA;AAEA;AACA;;AACA;AACA;AACA,aAFA,MAEA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;AACA;AAAA;AACA;;AACA;;AACA,mEAHA,CAIA;;;AACA;AACA;AACA,aAFA,MAEA;AACA;AACA;;AACA,gEAVA,CAWA;AACA;;AACA;AACA,oCAdA,CAeA;;AACA;AACA;;AACA;AAAA;AACA,yEADA,CAEA;;AACA;AACA;AACA,aAFA,MAEA;AACA;AACA;;AACA,mEARA,CASA;AACA;AACA;;AACA;AACA;AACA;AAjDA,OAZA,CAgEA;;;AACA;;AACA;AACA;AACA,OAFA,MAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA,KAhNA;AAiNA;AACA,yCADA,CAEA;;AACA;;AACA;AACA;AACA,oEADA;AAEA,wEAFA;AAGA;AACA;AACA;AACA,oGANA;AAOA;AAPA;AASA,OAVA,MAUA;AACA;AACA,mEADA;AAEA,wEAFA;AAGA;AACA;AACA;AACA,oGANA;AAOA;AAPA;AASA;;AAGA;AACA,KA7OA;;AA8OA;;;;;;AAMA;AACA,UArPA,kBAqPA,GArPA,EAqPA,IArPA,EAqPA;AACA,yCADA,CAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA,qFAXA,CAaA;;AACA;AACA;AAEA;AAAA;AAAA;AAAA;AACA,KAvQA;AAwQA;AACA,gBAzQA,0BAyQA;AACA,0FADA,CAEA;;AACA;AACA,KA7QA;;AA+QA;;;;;;AAMA,UArRA,kBAqRA,MArRA,EAqRA,KArRA,EAqRA;AACA,yCADA,CAGA;AACA;AACA;;AACA;AACA,wFAPA,CASA;;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA,KAlSA;AAmSA;AACA;;AACA;AACA;AACA;AACA,KAxSA;AAySA;AACA;AACA,KA3SA;AA4SA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA,yCADA;AAEA;AAFA;AAIA;AACA;;AACA;AACA;AACA;AACA;AACA,WAFA;AAGA;AACA,OAbA,MAaA;AACA;AACA;AADA;AAGA;AACA,KAnUA;AAoUA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA,oEAFA,CAIA;AACA;;AAEA;AACA,mCADA;AAEA;AACA;AACA,uBADA;AAEA,kDAFA;AAGA,mDAHA;AAIA;AAJA,WAHA;AASA,2CATA;AAUA;AACA;AACA,oCADA;AAEA;AAFA,aADA;AAKA;AACA,oCADA;AAEA;AAFA;AALA;AAVA;AAsBA;;AACA;AACA;AACA,2BACA,EADA,CACA,kCADA,EACA;AACA;AACA,WAHA;AAIA;AACA,OArCA,MAqCA;AACA;AACA;AADA;AAGA;AACA,KAnXA;AAoXA;AACA;AACA;AACA;AAEA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AAEA;AACA;AACA;;AACA;AACA;AACA,OAzBA,CA2BA;AACA;;;AAEA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AAzZA;AAzRA,G;;AC/FkU,CAAgB,gHAAG,EAAC,C;;;;;ACAtV;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AC5FuF;AAC3B;AACL;AACa;;;AAGpE;AAC0F;AAC1F,gBAAgB,kBAAU;AAC1B,EAAE,2CAAM;AACR,EAAE,MAAM;AACR,EAAE,eAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEe,8D;;ACnBf,IAAI,8CAAM,gBAAgB,aAAa,0BAA0B,wBAAwB,iBAAiB,iEAAiE,oCAAoC,aAAa,4EAA4E,4CAA4C,+GAA+G;AACnc,IAAI,uDAAe;;;;;;;;ACDnB;AAEA;;;;;;;;AAOA;;;;;;;;;;AAOO,SAASI,sBAAT,CAAgCC;AAAhC;AAAA,EAA0DtH;AAA1D;AAAA;AAAA;AAAqF;AAC1F,MAAMlC,MAAM,GAAGyJ,eAAe,CAACD,WAAD,CAA9B;AACA,MAAIE,QAAQ,GAAG1J,MAAM,CA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1B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;AAGA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA,CAAC,EAAE,wFAAwF;AAC3F;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF;AACjF;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,+BAA+B;AACtD;AACA,aAAa,QAAQ;AACrB,cAAc,OAAO;AACrB;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,8BAA8B;AAC9B,cAAc,kBAAkB;AAChC;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,2BAA2B;AACjD;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,0BAA0B;AACvC,uCAAuC,aAAa;AACpD;AACA;AACA,cAAc,OAAO;AACrB;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,iBAAiB;AACjB,cAAc,gBAAgB;AAC9B;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,KAAK;AACnB;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B;AACA,cAAc,aAAa;AAC3B;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,wBAAwB;AAC/C;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,wBAAwB;AACrC;AACA,aAAa,SAAS;AACtB,aAAa,iBAAiB;AAC9B;AACA,cAAc,OAAO;AACrB;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,wBAAwB;AACrC;AACA,aAAa,SAAS;AACtB,aAAa,iBAAiB;AAC9B;AACA,cAAc,OAAO;AACrB;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,cAAc,OAAO;AACrB;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,qBAAqB,2CAA2C;AAChE;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,2BAA2B,qBAAqB;;AAEhD;;AAEA;AACA,qBAAqB,yCAAyC;AAC9D;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA,iBAAiB,iBAAiB;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,mBAAmB,mBAAmB;AACtC;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,sPAAsP;AACzP;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,uBAAuB;AACvB,wBAAwB;;AAExB,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,aAAa;AAC1B,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,eAAe,aAAa;AAC5B;AACA;;AAEA;AACA;AACA,aAAa,aAAa;AAC1B,eAAe,aAAa;AAC5B;AACA;;AAEA;AACA;AACA,aAAa,qCAAqC;AAClD,eAAe,qCAAqC;AACpD;AACA;;AAEA,0BAA0B;AAC1B;;AAEA;AACA;;AAEA,0BAA0B;;AAE1B;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,8BAA8B,eAAe;AAC7C;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,qBAAqB;AAClE;AACA;AACA,aAAa,OAAO;AACpB,aAAa,aAAa;AAC1B,aAAa,QAAQ;AACrB,cAAc,OAAO;AACrB;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,QAAQ,eAAe;AAChE;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,iBAAiB;;AAEtB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B;;;AAGA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;AAGA;AACA,0BAA0B,oBAAoB;;AAE9C;AACA,mCAAmC,oBAAoB;AACvD,kDAAkD,oBAAoB;AACtE;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED,gBAAgB,yBAAyB;AACzC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB;;AAErB;AACA;;AAEA,uBAAuB,mCAAmC;AAC1D;;AAEA;AACA;;AAEA;AACA;;AAEA,+DAA+D,2BAA2B;AAC1F;AACA,KAAK;AACL;;AAEA;AACA;AACA,uBAAuB,kDAAkD;AACzE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0CAA0C,2BAA2B;AACrE;;AAEA;AACA;AACA;;AAEA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,iCAAiC;AACpD;;AAEA;AACA;;AAEA;AACA,4BAA4B,yCAAyC;AACrE;AACA;;AAEA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,yEAAyE,iBAAiB;AAC1F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,+IAA+I;AAClJ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,wCAAwC;AAC3C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA,kCAAkC,sGAAsG;AACxI,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,mCAAmC;AACnC,mCAAmC;AACnC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA;AACA,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,4GAA4G;AAC/G;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA,kBAAkB,iCAAiC;AACnD;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,qBAAqB,2BAA2B;AAChD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB,kCAAkC;AACnD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,kCAAkC;AACnD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,8CAA8C;AAC/D;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uCAAuC,oBAAoB;;AAE3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,eAAe;;AAEnD;AACA;AACA;AACA;AACA,wCAAwC,uBAAuB;;AAE/D;AACA;AACA;AACA;AACA,0CAA0C,yBAAyB;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA;AACA,gCAAgC;AAChC,iCAAiC;AACjC,oCAAoC;AACpC,qCAAqC;AACrC,gCAAgC;;AAEhC;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,mBAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,2IAA2I;AAC9I;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,cAAc;AACd;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,mCAAmC;AACnC,mCAAmC;AACnC,mCAAmC;AACnC;AACA;AACA,kCAAkC,6BAA6B;AAC/D;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,YAAY,aAAa;;AAEzB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,4GAA4G;AAC/G;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA,8BAA8B;AAC9B;;AAEA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;;AAErC;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B;AAC5B,6BAA6B;AAC7B,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,iCAAiC;AACjC,iCAAiC;AACjC,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,6BAA6B;AACjE;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA;AACA,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,kIAAkI;AACrI;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA;;AAEA,CAAC,EAAE,mHAAmH;AACtH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sBAAsB,mDAAmD;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA,WAAW,wBAAwB;AACnC;AACA,YAAY,0BAA0B;AACtC;AACA;AACA;AACA;AACA,CAAC,6EAA6E,qBAAqB;;AAEnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,WAAW,wBAAwB;AACnC;AACA,YAAY,0BAA0B;AACtC;AACA;AACA;AACA;AACA,CAAC,4EAA4E,oBAAoB;;AAEjG;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA,YAAY,wBAAwB;AACpC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,kBAAkB,2BAA2B;AAC7C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,CAAC,EAAE,8FAA8F;AACjG;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,uCAAuC,SAAS;AAChD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,4BAA4B,2BAA2B;AACvD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB,gCAAgC;AAClD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,gLAAgL;AACnL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,CAAC,EAAE,sFAAsF;AACzF;;AAEA;;AAEA,CAAC,EAAE,mCAAmC;AACtC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,CAAC,EAAE,+BAA+B;AAClC;;AAEA;;AAEA,CAAC,EAAE,mCAAmC;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,aAAa,aAAa;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC,GAAG;AACJ;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,CAAC,EAAE,+eAA+e;AAClf;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB;;AAEhB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B;AAC5B;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,CAAC,EAAE,0FAA0F;AAC7F;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC,WAAW,SAAS;AACpB,WAAW,iBAAiB;AAC5B;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,kBAAkB;AACtC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,kDAAkD,mBAAmB;AACrE;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC;AACA,WAAW,SAAS;AACpB,WAAW,iBAAiB;AAC5B;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,mBAAmB;AACxC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,wGAAwG;AAC3G;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,sBAAsB;AAClC;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,mCAAmC,WAAW;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,iCAAiC;AACpD;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,CAAC,EAAE,iIAAiI;AACpI;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,6BAA6B;AACjD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC;;AAElC,qBAAqB,8BAA8B;AACnD;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA,qBAAqB,8BAA8B;AACnD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8BAA8B;AAC9B;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA,qBAAqB,8BAA8B;AACnD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA,+BAA+B;;AAE/B,mBAAmB,4BAA4B;AAC/C;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B;AAC7B;AACA,2DAA2D;AAC3D;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,6DAA6D;AAChE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qCAAqC,2BAA2B,kBAAkB;;AAElF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,iDAAiD;AACpD;;AAEA;AACA;AACA;AACA;AACA,aAAa,wBAAwB;AACrC;AACA,eAAe,+CAA+C;AAC9D,eAAe,+CAA+C;AAC9D,MAAM;AACN,IAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,eAAe;AACf,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA,4BAA4B;AAC5B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,qCAAqC,2BAA2B,kBAAkB;AAClF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,CAAC,EAAE,2GAA2G;AAC9G;;AAEA;AACA;AACA;AACA;AACA,aAAa,wBAAwB;AACrC;AACA,aAAa,4BAA4B;AACzC,aAAa,4BAA4B;AACzC,MAAM;AACN,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa;AACb,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B;AAC5B,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,CAAC,EAAE,gHAAgH;AACnH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA,kDAAkD;AAClD;;AAEA;AACA,sBAAsB,oCAAoC;AAC1D;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd,KAAK;AACL;;AAEA,4BAA4B;;AAE5B;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,qBAAqB,sBAAsB;AAC3C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,uBAAuB,sCAAsC;AAC7D;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,SAAS;AAC9C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,CAAC,EAAE,kEAAkE;AACrE;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,eAAe,aAAa;AAC5B;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA,8BAA8B;AAC9B;AACA;;AAEA,iCAAiC;AACjC;;AAEA,oBAAoB,qCAAqC;AACzD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;;AAGA,iCAAiC;AACjC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,CAAC,EAAE,qFAAqF;AACxF;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;AAGA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;;AAEA;AACA,CAAC;;AAED,CAAC,EAAE,2BAA2B;AAC9B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,oBAAoB;AACrC;;AAEA,uCAAuC;AACvC;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,kBAAkB;AACpC;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,0CAA0C;AAC1C,CAAC;;AAED;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,mBAAmB;AACtC;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,mBAAmB,gCAAgC;AACnD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,kGAAkG;AAC5G;AACA,CAAC;;AAED;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,iGAAiG;AAC3G;AACA;;AAEA,eAAe,0BAA0B;AACzC;AACA;;AAEA;AACA,6BAA6B;AAC7B,0BAA0B;AAC1B,8BAA8B,MAAM,oBAAoB;AACxD,CAAC;;AAED;AACA;;AAEA,CAAC,EAAE,kGAAkG;AACrG;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,CAAC,EAAE,+BAA+B;AAClC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,gBAAgB;AAChB,OAAO;AACP;AACA,GAAG;AACH,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,CAAC,EAAE,sGAAsG;AACzG;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC,qBAAqB;AACvD,GAAG;;AAEH;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,qCAAqC,qBAAqB;AAC1D,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,kGAAkG;AACrG;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,6BAA6B;AACjD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;;AAEA,CAAC,GAAG;AACJ;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB,oBAAoB;AACtC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,CAAC,GAAG;AACJ;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA,CAAC,EAAE,0CAA0C;AAC7C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA,CAAC,EAAE,UAAU;AACb;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,cAAc;AACjB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,qBAAqB;AACpC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,yDAAyD;AAC5D;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA,KAAK;AACL,sBAAsB,UAAU;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,wBAAwB;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8CAA8C,YAAY;AAC1D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,8CAA8C,YAAY;AAC1D;AACA;;AAEA;;AAEA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,mBAAmB,gCAAgC;AACnD;AACA;;AAEA;;AAEA;;AAEA;;AAEA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qCAAqC;AACrC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,CAAC,EAAE,4FAA4F;AAC/F;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC,GAAG;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,kCAAkC;AAClC;;AAEA,CAAC,EAAE,YAAY;AACf;;AAEA;AACA;AACA;;AAEA,CAAC,GAAG;AACJ;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,iIAAiI;AACpI;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB;;AAEnB,oBAAoB,gCAAgC;AACpD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,iCAAiC;AACtD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,qBAAqB,iCAAiC;AACtD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,iCAAiC;AACtD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA,qBAAqB,iCAAiC;AACtD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA,qBAAqB,iCAAiC;AACtD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,2BAA2B;AAC9B;;AAEA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q;AACA;;AAEA;AACA,4BAA4B;;AAE5B;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,8BAA8B;AACjC;;AAEA;AACA;AACA;;AAEA,CAAC,GAAG;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,GAAG;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,sBAAsB;AAC1C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,6FAA6F;AAChG;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,eAAe,qDAAqD;AACpE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,CAAC,EAAE,cAAc;AACjB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC,EAAE,wCAAwC;AAC3C;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA,CAAC,EAAE,gBAAgB,EAAE,GAAG;AACxB,CAAC;;;AAGD;;;;;;;;ACngOA;AACA","file":"vue-grid-layout.umd.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"vue\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"VueGridLayout\"] = factory(require(\"vue\"));\n\telse\n\t\troot[\"VueGridLayout\"] = factory(root[\"Vue\"]);\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__8bbf__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar at = require('./_string-at')(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// style-loader: Adds some css to the DOM by adding a \r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GridItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GridItem.vue?vue&type=script&lang=js&\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./GridItem.vue?vue&type=template&id=6724f499&\"\nimport script from \"./GridItem.vue?vue&type=script&lang=js&\"\nexport * from \"./GridItem.vue?vue&type=script&lang=js&\"\nimport style0 from \"./GridItem.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"item\",staticClass:\"vue-grid-layout\",style:(_vm.mergedStyle)},[_vm._t(\"default\"),_c('grid-item',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isDragging),expression:\"isDragging\"}],staticClass:\"vue-grid-placeholder\",attrs:{\"x\":_vm.placeholder.x,\"y\":_vm.placeholder.y,\"w\":_vm.placeholder.w,\"h\":_vm.placeholder.h,\"i\":_vm.placeholder.i}})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","// @flow\r\n\r\nimport {cloneLayout, compact, correctBounds} from './utils';\r\n\r\nimport type {Layout} from './utils';\r\nexport type ResponsiveLayout = {lg?: Layout, md?: Layout, sm?: Layout, xs?: Layout, xxs?: Layout};\r\ntype Breakpoint = string;\r\ntype Breakpoints = {lg?: number, md?: number, sm?: number, xs?: number, xxs?: number};\r\n\r\n/**\r\n * Given a width, find the highest breakpoint that matches is valid for it (width > breakpoint).\r\n *\r\n * @param {Object} breakpoints Breakpoints object (e.g. {lg: 1200, md: 960, ...})\r\n * @param {Number} width Screen width.\r\n * @return {String} Highest breakpoint that is less than width.\r\n */\r\nexport function getBreakpointFromWidth(breakpoints: Breakpoints, width: number): Breakpoint {\r\n const sorted = sortBreakpoints(breakpoints);\r\n let matching = sorted[0];\r\n for (let i = 1, len = sorted.length; i < len; i++) {\r\n const breakpointName = sorted[i];\r\n if (width > breakpoints[breakpointName]) matching = breakpointName;\r\n }\r\n return matching;\r\n}\r\n\r\n\r\n/**\r\n * Given a breakpoint, get the # of cols set for it.\r\n * @param {String} breakpoint Breakpoint name.\r\n * @param {Object} cols Map of breakpoints to cols.\r\n * @return {Number} Number of cols.\r\n */\r\nexport function getColsFromBreakpoint(breakpoint: Breakpoint, cols: Breakpoints): number {\r\n if (!cols[breakpoint]) {\r\n throw new Error(\"ResponsiveGridLayout: `cols` entry for breakpoint \" + breakpoint + \" is missing!\");\r\n }\r\n return cols[breakpoint];\r\n}\r\n\r\n/**\r\n * Given existing layouts and a new breakpoint, find or generate a new layout.\r\n *\r\n * This finds the layout above the new one and generates from it, if it exists.\r\n *\r\n * @param {Array} orgLayout Original layout.\r\n * @param {Object} layouts Existing layouts.\r\n * @param {Array} breakpoints All breakpoints.\r\n * @param {String} breakpoint New breakpoint.\r\n * @param {String} breakpoint Last breakpoint (for fallback).\r\n * @param {Number} cols Column count at new breakpoint.\r\n * @param {Boolean} verticalCompact Whether or not to compact the layout\r\n * vertically.\r\n * @return {Array} New layout.\r\n */\r\nexport function findOrGenerateResponsiveLayout(orgLayout: Layout, layouts: ResponsiveLayout, breakpoints: Breakpoints,\r\n breakpoint: Breakpoint, lastBreakpoint: Breakpoint,\r\n cols: number, verticalCompact: boolean): Layout {\r\n // If it already exists, just return it.\r\n if (layouts[breakpoint]) return cloneLayout(layouts[breakpoint]);\r\n // Find or generate the next layout\r\n let layout = orgLayout;\r\n\r\n const breakpointsSorted = sortBreakpoints(breakpoints);\r\n const breakpointsAbove = breakpointsSorted.slice(breakpointsSorted.indexOf(breakpoint));\r\n for (let i = 0, len = breakpointsAbove.length; i < len; i++) {\r\n const b = breakpointsAbove[i];\r\n if (layouts[b]) {\r\n layout = layouts[b];\r\n break;\r\n }\r\n }\r\n layout = cloneLayout(layout || []); // clone layout so we don't modify existing items\r\n return compact(correctBounds(layout, {cols: cols}), verticalCompact);\r\n}\r\n\r\nexport function generateResponsiveLayout(layout: Layout, breakpoints: Breakpoints,\r\n breakpoint: Breakpoint, lastBreakpoint: Breakpoint,\r\n cols: number, verticalCompact: boolean): Layout {\r\n // If it already exists, just return it.\r\n /*if (layouts[breakpoint]) return cloneLayout(layouts[breakpoint]);\r\n // Find or generate the next layout\r\n let layout = layouts[lastBreakpoint];*/\r\n /*const breakpointsSorted = sortBreakpoints(breakpoints);\r\n const breakpointsAbove = breakpointsSorted.slice(breakpointsSorted.indexOf(breakpoint));\r\n for (let i = 0, len = breakpointsAbove.length; i < len; i++) {\r\n const b = breakpointsAbove[i];\r\n if (layouts[b]) {\r\n layout = layouts[b];\r\n break;\r\n }\r\n }*/\r\n layout = cloneLayout(layout || []); // clone layout so we don't modify existing items\r\n return compact(correctBounds(layout, {cols: cols}), verticalCompact);\r\n}\r\n\r\n/**\r\n * Given breakpoints, return an array of breakpoints sorted by width. This is usually\r\n * e.g. ['xxs', 'xs', 'sm', ...]\r\n *\r\n * @param {Object} breakpoints Key/value pair of breakpoint names to widths.\r\n * @return {Array} Sorted breakpoints.\r\n */\r\nexport function sortBreakpoints(breakpoints: Breakpoints): Array {\r\n const keys: Array = Object.keys(breakpoints);\r\n return keys.sort(function(a, b) {\r\n return breakpoints[a] - breakpoints[b];\r\n });\r\n}\r\n","\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GridLayout.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GridLayout.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./GridLayout.vue?vue&type=template&id=16f9e7c6&\"\nimport script from \"./GridLayout.vue?vue&type=script&lang=js&\"\nexport * from \"./GridLayout.vue?vue&type=script&lang=js&\"\nimport style0 from \"./GridLayout.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\";\r\nimport GridItem from './GridItem.vue';\r\nimport GridLayout from './GridLayout.vue';\r\n// import ResponsiveGridLayout from './ResponsiveGridLayout.vue';\r\n\r\n\r\nconst VueGridLayout = {\r\n // ResponsiveGridLayout,\r\n GridLayout,\r\n GridItem\r\n}\r\n\r\n// module.exports = VueGridLayout;\r\n\r\nObject.keys(VueGridLayout).forEach(name => {\r\n Vue.component(name, VueGridLayout[name]);\r\n});\r\n\r\nexport default VueGridLayout;\r\nexport { GridLayout, GridItem };","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n","/**\n * interact.js v1.3.4\n *\n * Copyright (c) 2012-2018 Taye Adeyemi \n * Released under the MIT License.\n * https://raw.github.com/taye/interact.js/master/LICENSE\n */\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.interact = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o 6 && arguments[6] !== undefined ? arguments[6] : false;\n\n _classCallCheck(this, InteractEvent);\n\n var target = interaction.target;\n var deltaSource = (target && target.options || defaults).deltaSource;\n var origin = getOriginXY(target, element, action);\n var starting = phase === 'start';\n var ending = phase === 'end';\n var coords = starting ? interaction.startCoords : interaction.curCoords;\n var prevEvent = interaction.prevEvent;\n\n element = element || interaction.element;\n\n var page = extend({}, coords.page);\n var client = extend({}, coords.client);\n\n page.x -= origin.x;\n page.y -= origin.y;\n\n client.x -= origin.x;\n client.y -= origin.y;\n\n this.ctrlKey = event.ctrlKey;\n this.altKey = event.altKey;\n this.shiftKey = event.shiftKey;\n this.metaKey = event.metaKey;\n this.button = event.button;\n this.buttons = event.buttons;\n this.target = element;\n this.currentTarget = element;\n this.relatedTarget = related || null;\n this.preEnd = preEnd;\n this.type = action + (phase || '');\n this.interaction = interaction;\n this.interactable = target;\n\n this.t0 = starting ? interaction.downTimes[interaction.downTimes.length - 1] : prevEvent.t0;\n\n var signalArg = {\n interaction: interaction,\n event: event,\n action: action,\n phase: phase,\n element: element,\n related: related,\n page: page,\n client: client,\n coords: coords,\n starting: starting,\n ending: ending,\n deltaSource: deltaSource,\n iEvent: this\n };\n\n signals.fire('set-xy', signalArg);\n\n if (ending) {\n // use previous coords when ending\n this.pageX = prevEvent.pageX;\n this.pageY = prevEvent.pageY;\n this.clientX = prevEvent.clientX;\n this.clientY = prevEvent.clientY;\n } else {\n this.pageX = page.x;\n this.pageY = page.y;\n this.clientX = client.x;\n this.clientY = client.y;\n }\n\n this.x0 = interaction.startCoords.page.x - origin.x;\n this.y0 = interaction.startCoords.page.y - origin.y;\n this.clientX0 = interaction.startCoords.client.x - origin.x;\n this.clientY0 = interaction.startCoords.client.y - origin.y;\n\n signals.fire('set-delta', signalArg);\n\n this.timeStamp = coords.timeStamp;\n this.dt = interaction.pointerDelta.timeStamp;\n this.duration = this.timeStamp - this.t0;\n\n // speed and velocity in pixels per second\n this.speed = interaction.pointerDelta[deltaSource].speed;\n this.velocityX = interaction.pointerDelta[deltaSource].vx;\n this.velocityY = interaction.pointerDelta[deltaSource].vy;\n\n this.swipe = ending || phase === 'inertiastart' ? this.getSwipe() : null;\n\n signals.fire('new', signalArg);\n }\n\n InteractEvent.prototype.getSwipe = function getSwipe() {\n var interaction = this.interaction;\n\n if (interaction.prevEvent.speed < 600 || this.timeStamp - interaction.prevEvent.timeStamp > 150) {\n return null;\n }\n\n var angle = 180 * Math.atan2(interaction.prevEvent.velocityY, interaction.prevEvent.velocityX) / Math.PI;\n var overlap = 22.5;\n\n if (angle < 0) {\n angle += 360;\n }\n\n var left = 135 - overlap <= angle && angle < 225 + overlap;\n var up = 225 - overlap <= angle && angle < 315 + overlap;\n\n var right = !left && (315 - overlap <= angle || angle < 45 + overlap);\n var down = !up && 45 - overlap <= angle && angle < 135 + overlap;\n\n return {\n up: up,\n down: down,\n left: left,\n right: right,\n angle: angle,\n speed: interaction.prevEvent.speed,\n velocity: {\n x: interaction.prevEvent.velocityX,\n y: interaction.prevEvent.velocityY\n }\n };\n };\n\n InteractEvent.prototype.preventDefault = function preventDefault() {};\n\n /** */\n\n\n InteractEvent.prototype.stopImmediatePropagation = function stopImmediatePropagation() {\n this.immediatePropagationStopped = this.propagationStopped = true;\n };\n\n /** */\n\n\n InteractEvent.prototype.stopPropagation = function stopPropagation() {\n this.propagationStopped = true;\n };\n\n return InteractEvent;\n}();\n\nsignals.on('set-delta', function (_ref) {\n var iEvent = _ref.iEvent,\n interaction = _ref.interaction,\n starting = _ref.starting,\n deltaSource = _ref.deltaSource;\n\n var prevEvent = starting ? iEvent : interaction.prevEvent;\n\n if (deltaSource === 'client') {\n iEvent.dx = iEvent.clientX - prevEvent.clientX;\n iEvent.dy = iEvent.clientY - prevEvent.clientY;\n } else {\n iEvent.dx = iEvent.pageX - prevEvent.pageX;\n iEvent.dy = iEvent.pageY - prevEvent.pageY;\n }\n});\n\nInteractEvent.signals = signals;\n\nmodule.exports = InteractEvent;\n\n},{\"./defaultOptions\":18,\"./utils/Signals\":34,\"./utils/extend\":41,\"./utils/getOriginXY\":42}],4:[function(require,module,exports){\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar clone = require('./utils/clone');\nvar is = require('./utils/is');\nvar events = require('./utils/events');\nvar extend = require('./utils/extend');\nvar actions = require('./actions/base');\nvar scope = require('./scope');\nvar Eventable = require('./Eventable');\nvar defaults = require('./defaultOptions');\nvar signals = require('./utils/Signals').new();\n\nvar _require = require('./utils/domUtils'),\n getElementRect = _require.getElementRect,\n nodeContains = _require.nodeContains,\n trySelector = _require.trySelector,\n matchesSelector = _require.matchesSelector;\n\nvar _require2 = require('./utils/window'),\n getWindow = _require2.getWindow;\n\nvar _require3 = require('./utils/arr'),\n contains = _require3.contains;\n\nvar _require4 = require('./utils/browser'),\n wheelEvent = _require4.wheelEvent;\n\n// all set interactables\n\n\nscope.interactables = [];\n\nvar Interactable = function () {\n /** */\n function Interactable(target, options) {\n _classCallCheck(this, Interactable);\n\n options = options || {};\n\n this.target = target;\n this.events = new Eventable();\n this._context = options.context || scope.document;\n this._win = getWindow(trySelector(target) ? this._context : target);\n this._doc = this._win.document;\n\n signals.fire('new', {\n target: target,\n options: options,\n interactable: this,\n win: this._win\n });\n\n scope.addDocument(this._doc, this._win);\n\n scope.interactables.push(this);\n\n this.set(options);\n }\n\n Interactable.prototype.setOnEvents = function setOnEvents(action, phases) {\n var onAction = 'on' + action;\n\n if (is.function(phases.onstart)) {\n this.events[onAction + 'start'] = phases.onstart;\n }\n if (is.function(phases.onmove)) {\n this.events[onAction + 'move'] = phases.onmove;\n }\n if (is.function(phases.onend)) {\n this.events[onAction + 'end'] = phases.onend;\n }\n if (is.function(phases.oninertiastart)) {\n this.events[onAction + 'inertiastart'] = phases.oninertiastart;\n }\n\n return this;\n };\n\n Interactable.prototype.setPerAction = function setPerAction(action, options) {\n // for all the default per-action options\n for (var option in options) {\n // if this option exists for this action\n if (option in defaults[action]) {\n // if the option in the options arg is an object value\n if (is.object(options[option])) {\n // duplicate the object and merge\n this.options[action][option] = clone(this.options[action][option] || {});\n extend(this.options[action][option], options[option]);\n\n if (is.object(defaults.perAction[option]) && 'enabled' in defaults.perAction[option]) {\n this.options[action][option].enabled = options[option].enabled === false ? false : true;\n }\n } else if (is.bool(options[option]) && is.object(defaults.perAction[option])) {\n this.options[action][option].enabled = options[option];\n } else if (options[option] !== undefined) {\n // or if it's not undefined, do a plain assignment\n this.options[action][option] = options[option];\n }\n }\n }\n };\n\n /**\n * The default function to get an Interactables bounding rect. Can be\n * overridden using {@link Interactable.rectChecker}.\n *\n * @param {Element} [element] The element to measure.\n * @return {object} The object's bounding rectangle.\n */\n\n\n Interactable.prototype.getRect = function getRect(element) {\n element = element || this.target;\n\n if (is.string(this.target) && !is.element(element)) {\n element = this._context.querySelector(this.target);\n }\n\n return getElementRect(element);\n };\n\n /**\n * Returns or sets the function used to calculate the interactable's\n * element's rectangle\n *\n * @param {function} [checker] A function which returns this Interactable's\n * bounding rectangle. See {@link Interactable.getRect}\n * @return {function | object} The checker function or this Interactable\n */\n\n\n Interactable.prototype.rectChecker = function rectChecker(checker) {\n if (is.function(checker)) {\n this.getRect = checker;\n\n return this;\n }\n\n if (checker === null) {\n delete this.options.getRect;\n\n return this;\n }\n\n return this.getRect;\n };\n\n Interactable.prototype._backCompatOption = function _backCompatOption(optionName, newValue) {\n if (trySelector(newValue) || is.object(newValue)) {\n this.options[optionName] = newValue;\n\n for (var _i = 0; _i < actions.names.length; _i++) {\n var _ref;\n\n _ref = actions.names[_i];\n var action = _ref;\n\n this.options[action][optionName] = newValue;\n }\n\n return this;\n }\n\n return this.options[optionName];\n };\n\n /**\n * Gets or sets the origin of the Interactable's element. The x and y\n * of the origin will be subtracted from action event coordinates.\n *\n * @param {Element | object | string} [origin] An HTML or SVG Element whose\n * rect will be used, an object eg. { x: 0, y: 0 } or string 'parent', 'self'\n * or any CSS selector\n *\n * @return {object} The current origin or this Interactable\n */\n\n\n Interactable.prototype.origin = function origin(newValue) {\n return this._backCompatOption('origin', newValue);\n };\n\n /**\n * Returns or sets the mouse coordinate types used to calculate the\n * movement of the pointer.\n *\n * @param {string} [newValue] Use 'client' if you will be scrolling while\n * interacting; Use 'page' if you want autoScroll to work\n * @return {string | object} The current deltaSource or this Interactable\n */\n\n\n Interactable.prototype.deltaSource = function deltaSource(newValue) {\n if (newValue === 'page' || newValue === 'client') {\n this.options.deltaSource = newValue;\n\n return this;\n }\n\n return this.options.deltaSource;\n };\n\n /**\n * Gets the selector context Node of the Interactable. The default is\n * `window.document`.\n *\n * @return {Node} The context Node of this Interactable\n */\n\n\n Interactable.prototype.context = function context() {\n return this._context;\n };\n\n Interactable.prototype.inContext = function inContext(element) {\n return this._context === element.ownerDocument || nodeContains(this._context, element);\n };\n\n /**\n * Calls listeners for the given InteractEvent type bound globally\n * and directly to this Interactable\n *\n * @param {InteractEvent} iEvent The InteractEvent object to be fired on this\n * Interactable\n * @return {Interactable} this Interactable\n */\n\n\n Interactable.prototype.fire = function fire(iEvent) {\n this.events.fire(iEvent);\n\n return this;\n };\n\n Interactable.prototype._onOffMultiple = function _onOffMultiple(method, eventType, listener, options) {\n if (is.string(eventType) && eventType.search(' ') !== -1) {\n eventType = eventType.trim().split(/ +/);\n }\n\n if (is.array(eventType)) {\n for (var _i2 = 0; _i2 < eventType.length; _i2++) {\n var _ref2;\n\n _ref2 = eventType[_i2];\n var type = _ref2;\n\n this[method](type, listener, options);\n }\n\n return true;\n }\n\n if (is.object(eventType)) {\n for (var prop in eventType) {\n this[method](prop, eventType[prop], listener);\n }\n\n return true;\n }\n };\n\n /**\n * Binds a listener for an InteractEvent, pointerEvent or DOM event.\n *\n * @param {string | array | object} eventType The types of events to listen\n * for\n * @param {function} listener The function event (s)\n * @param {object | boolean} [options] options object or useCapture flag\n * for addEventListener\n * @return {object} This Interactable\n */\n\n\n Interactable.prototype.on = function on(eventType, listener, options) {\n if (this._onOffMultiple('on', eventType, listener, options)) {\n return this;\n }\n\n if (eventType === 'wheel') {\n eventType = wheelEvent;\n }\n\n if (contains(Interactable.eventTypes, eventType)) {\n this.events.on(eventType, listener);\n }\n // delegated event for selector\n else if (is.string(this.target)) {\n events.addDelegate(this.target, this._context, eventType, listener, options);\n } else {\n events.add(this.target, eventType, listener, options);\n }\n\n return this;\n };\n\n /**\n * Removes an InteractEvent, pointerEvent or DOM event listener\n *\n * @param {string | array | object} eventType The types of events that were\n * listened for\n * @param {function} listener The listener function to be removed\n * @param {object | boolean} [options] options object or useCapture flag for\n * removeEventListener\n * @return {object} This Interactable\n */\n\n\n Interactable.prototype.off = function off(eventType, listener, options) {\n if (this._onOffMultiple('off', eventType, listener, options)) {\n return this;\n }\n\n if (eventType === 'wheel') {\n eventType = wheelEvent;\n }\n\n // if it is an action event type\n if (contains(Interactable.eventTypes, eventType)) {\n this.events.off(eventType, listener);\n }\n // delegated event\n else if (is.string(this.target)) {\n events.removeDelegate(this.target, this._context, eventType, listener, options);\n }\n // remove listener from this Interatable's element\n else {\n events.remove(this.target, eventType, listener, options);\n }\n\n return this;\n };\n\n /**\n * Reset the options of this Interactable\n *\n * @param {object} options The new settings to apply\n * @return {object} This Interactable\n */\n\n\n Interactable.prototype.set = function set(options) {\n if (!is.object(options)) {\n options = {};\n }\n\n this.options = clone(defaults.base);\n\n var perActions = clone(defaults.perAction);\n\n for (var actionName in actions.methodDict) {\n var methodName = actions.methodDict[actionName];\n\n this.options[actionName] = clone(defaults[actionName]);\n\n this.setPerAction(actionName, perActions);\n\n this[methodName](options[actionName]);\n }\n\n for (var _i3 = 0; _i3 < Interactable.settingsMethods.length; _i3++) {\n var _ref3;\n\n _ref3 = Interactable.settingsMethods[_i3];\n var setting = _ref3;\n\n this.options[setting] = defaults.base[setting];\n\n if (setting in options) {\n this[setting](options[setting]);\n }\n }\n\n signals.fire('set', {\n options: options,\n interactable: this\n });\n\n return this;\n };\n\n /**\n * Remove this interactable from the list of interactables and remove it's\n * action capabilities and event listeners\n *\n * @return {interact}\n */\n\n\n Interactable.prototype.unset = function unset() {\n events.remove(this.target, 'all');\n\n if (is.string(this.target)) {\n // remove delegated events\n for (var type in events.delegatedEvents) {\n var delegated = events.delegatedEvents[type];\n\n if (delegated.selectors[0] === this.target && delegated.contexts[0] === this._context) {\n\n delegated.selectors.splice(0, 1);\n delegated.contexts.splice(0, 1);\n delegated.listeners.splice(0, 1);\n\n // remove the arrays if they are empty\n if (!delegated.selectors.length) {\n delegated[type] = null;\n }\n }\n\n events.remove(this._context, type, events.delegateListener);\n events.remove(this._context, type, events.delegateUseCapture, true);\n }\n } else {\n events.remove(this, 'all');\n }\n\n signals.fire('unset', { interactable: this });\n\n scope.interactables.splice(scope.interactables.indexOf(this), 1);\n\n // Stop related interactions when an Interactable is unset\n for (var _i4 = 0; _i4 < (scope.interactions || []).length; _i4++) {\n var _ref4;\n\n _ref4 = (scope.interactions || [])[_i4];\n var interaction = _ref4;\n\n if (interaction.target === this && interaction.interacting() && !interaction._ending) {\n interaction.stop();\n }\n }\n\n return scope.interact;\n };\n\n return Interactable;\n}();\n\nscope.interactables.indexOfElement = function indexOfElement(target, context) {\n context = context || scope.document;\n\n for (var i = 0; i < this.length; i++) {\n var interactable = this[i];\n\n if (interactable.target === target && interactable._context === context) {\n return i;\n }\n }\n return -1;\n};\n\nscope.interactables.get = function interactableGet(element, options, dontCheckInContext) {\n var ret = this[this.indexOfElement(element, options && options.context)];\n\n return ret && (is.string(element) || dontCheckInContext || ret.inContext(element)) ? ret : null;\n};\n\nscope.interactables.forEachMatch = function (element, callback) {\n for (var _i5 = 0; _i5 < this.length; _i5++) {\n var _ref5;\n\n _ref5 = this[_i5];\n var interactable = _ref5;\n\n var ret = void 0;\n\n if ((is.string(interactable.target)\n // target is a selector and the element matches\n ? is.element(element) && matchesSelector(element, interactable.target) :\n // target is the element\n element === interactable.target) &&\n // the element is in context\n interactable.inContext(element)) {\n ret = callback(interactable);\n }\n\n if (ret !== undefined) {\n return ret;\n }\n }\n};\n\n// all interact.js eventTypes\nInteractable.eventTypes = scope.eventTypes = [];\n\nInteractable.signals = signals;\n\nInteractable.settingsMethods = ['deltaSource', 'origin', 'preventDefault', 'rectChecker'];\n\nmodule.exports = Interactable;\n\n},{\"./Eventable\":2,\"./actions/base\":6,\"./defaultOptions\":18,\"./scope\":33,\"./utils/Signals\":34,\"./utils/arr\":35,\"./utils/browser\":36,\"./utils/clone\":37,\"./utils/domUtils\":39,\"./utils/events\":40,\"./utils/extend\":41,\"./utils/is\":46,\"./utils/window\":52}],5:[function(require,module,exports){\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar scope = require('./scope');\nvar utils = require('./utils');\nvar events = require('./utils/events');\nvar browser = require('./utils/browser');\nvar domObjects = require('./utils/domObjects');\nvar finder = require('./utils/interactionFinder');\nvar signals = require('./utils/Signals').new();\n\nvar listeners = {};\nvar methodNames = ['pointerDown', 'pointerMove', 'pointerUp', 'updatePointer', 'removePointer'];\n\n// for ignoring browser's simulated mouse events\nvar prevTouchTime = 0;\n\n// all active and idle interactions\nscope.interactions = [];\n\nvar Interaction = function () {\n /** */\n function Interaction(_ref) {\n var pointerType = _ref.pointerType;\n\n _classCallCheck(this, Interaction);\n\n this.target = null; // current interactable being interacted with\n this.element = null; // the target element of the interactable\n\n this.prepared = { // action that's ready to be fired on next move event\n name: null,\n axis: null,\n edges: null\n };\n\n // keep track of added pointers\n this.pointers = [];\n this.pointerIds = [];\n this.downTargets = [];\n this.downTimes = [];\n\n // Previous native pointer move event coordinates\n this.prevCoords = {\n page: { x: 0, y: 0 },\n client: { x: 0, y: 0 },\n timeStamp: 0\n };\n // current native pointer move event coordinates\n this.curCoords = {\n page: { x: 0, y: 0 },\n client: { x: 0, y: 0 },\n timeStamp: 0\n };\n\n // Starting InteractEvent pointer coordinates\n this.startCoords = {\n page: { x: 0, y: 0 },\n client: { x: 0, y: 0 },\n timeStamp: 0\n };\n\n // Change in coordinates and time of the pointer\n this.pointerDelta = {\n page: { x: 0, y: 0, vx: 0, vy: 0, speed: 0 },\n client: { x: 0, y: 0, vx: 0, vy: 0, speed: 0 },\n timeStamp: 0\n };\n\n this.downEvent = null; // pointerdown/mousedown/touchstart event\n this.downPointer = {};\n\n this._eventTarget = null;\n this._curEventTarget = null;\n\n this.prevEvent = null; // previous action event\n\n this.pointerIsDown = false;\n this.pointerWasMoved = false;\n this._interacting = false;\n this._ending = false;\n\n this.pointerType = pointerType;\n\n signals.fire('new', this);\n\n scope.interactions.push(this);\n }\n\n Interaction.prototype.pointerDown = function pointerDown(pointer, event, eventTarget) {\n var pointerIndex = this.updatePointer(pointer, event, true);\n\n signals.fire('down', {\n pointer: pointer,\n event: event,\n eventTarget: eventTarget,\n pointerIndex: pointerIndex,\n interaction: this\n });\n };\n\n /**\n * ```js\n * interact(target)\n * .draggable({\n * // disable the default drag start by down->move\n * manualStart: true\n * })\n * // start dragging after the user holds the pointer down\n * .on('hold', function (event) {\n * var interaction = event.interaction;\n *\n * if (!interaction.interacting()) {\n * interaction.start({ name: 'drag' },\n * event.interactable,\n * event.currentTarget);\n * }\n * });\n * ```\n *\n * Start an action with the given Interactable and Element as tartgets. The\n * action must be enabled for the target Interactable and an appropriate\n * number of pointers must be held down - 1 for drag/resize, 2 for gesture.\n *\n * Use it with `interactable.able({ manualStart: false })` to always\n * [start actions manually](https://github.com/taye/interact.js/issues/114)\n *\n * @param {object} action The action to be performed - drag, resize, etc.\n * @param {Interactable} target The Interactable to target\n * @param {Element} element The DOM Element to target\n * @return {object} interact\n */\n\n\n Interaction.prototype.start = function start(action, target, element) {\n if (this.interacting() || !this.pointerIsDown || this.pointerIds.length < (action.name === 'gesture' ? 2 : 1)) {\n return;\n }\n\n // if this interaction had been removed after stopping\n // add it back\n if (scope.interactions.indexOf(this) === -1) {\n scope.interactions.push(this);\n }\n\n utils.copyAction(this.prepared, action);\n this.target = target;\n this.element = element;\n\n signals.fire('action-start', {\n interaction: this,\n event: this.downEvent\n });\n };\n\n Interaction.prototype.pointerMove = function pointerMove(pointer, event, eventTarget) {\n if (!this.simulation) {\n this.updatePointer(pointer);\n utils.setCoords(this.curCoords, this.pointers);\n }\n\n var duplicateMove = this.curCoords.page.x === this.prevCoords.page.x && this.curCoords.page.y === this.prevCoords.page.y && this.curCoords.client.x === this.prevCoords.client.x && this.curCoords.client.y === this.prevCoords.client.y;\n\n var dx = void 0;\n var dy = void 0;\n\n // register movement greater than pointerMoveTolerance\n if (this.pointerIsDown && !this.pointerWasMoved) {\n dx = this.curCoords.client.x - this.startCoords.client.x;\n dy = this.curCoords.client.y - this.startCoords.client.y;\n\n this.pointerWasMoved = utils.hypot(dx, dy) > Interaction.pointerMoveTolerance;\n }\n\n var signalArg = {\n pointer: pointer,\n pointerIndex: this.getPointerIndex(pointer),\n event: event,\n eventTarget: eventTarget,\n dx: dx,\n dy: dy,\n duplicate: duplicateMove,\n interaction: this,\n interactingBeforeMove: this.interacting()\n };\n\n if (!duplicateMove) {\n // set pointer coordinate, time changes and speeds\n utils.setCoordDeltas(this.pointerDelta, this.prevCoords, this.curCoords);\n }\n\n signals.fire('move', signalArg);\n\n if (!duplicateMove) {\n // if interacting, fire an 'action-move' signal etc\n if (this.interacting()) {\n this.doMove(signalArg);\n }\n\n if (this.pointerWasMoved) {\n utils.copyCoords(this.prevCoords, this.curCoords);\n }\n }\n };\n\n /**\n * ```js\n * interact(target)\n * .draggable(true)\n * .on('dragmove', function (event) {\n * if (someCondition) {\n * // change the snap settings\n * event.interactable.draggable({ snap: { targets: [] }});\n * // fire another move event with re-calculated snap\n * event.interaction.doMove();\n * }\n * });\n * ```\n *\n * Force a move of the current action at the same coordinates. Useful if\n * snap/restrict has been changed and you want a movement with the new\n * settings.\n */\n\n\n Interaction.prototype.doMove = function doMove(signalArg) {\n signalArg = utils.extend({\n pointer: this.pointers[0],\n event: this.prevEvent,\n eventTarget: this._eventTarget,\n interaction: this\n }, signalArg || {});\n\n signals.fire('before-action-move', signalArg);\n\n if (!this._dontFireMove) {\n signals.fire('action-move', signalArg);\n }\n\n this._dontFireMove = false;\n };\n\n // End interact move events and stop auto-scroll unless simulation is running\n\n\n Interaction.prototype.pointerUp = function pointerUp(pointer, event, eventTarget, curEventTarget) {\n var pointerIndex = this.getPointerIndex(pointer);\n\n signals.fire(/cancel$/i.test(event.type) ? 'cancel' : 'up', {\n pointer: pointer,\n pointerIndex: pointerIndex,\n event: event,\n eventTarget: eventTarget,\n curEventTarget: curEventTarget,\n interaction: this\n });\n\n if (!this.simulation) {\n this.end(event);\n }\n\n this.pointerIsDown = false;\n this.removePointer(pointer, event);\n };\n\n /**\n * ```js\n * interact(target)\n * .draggable(true)\n * .on('move', function (event) {\n * if (event.pageX > 1000) {\n * // end the current action\n * event.interaction.end();\n * // stop all further listeners from being called\n * event.stopImmediatePropagation();\n * }\n * });\n * ```\n *\n * Stop the current action and fire an end event. Inertial movement does\n * not happen.\n *\n * @param {PointerEvent} [event]\n */\n\n\n Interaction.prototype.end = function end(event) {\n this._ending = true;\n\n event = event || this.prevEvent;\n\n if (this.interacting()) {\n signals.fire('action-end', {\n event: event,\n interaction: this\n });\n }\n\n this.stop();\n this._ending = false;\n };\n\n Interaction.prototype.currentAction = function currentAction() {\n return this._interacting ? this.prepared.name : null;\n };\n\n Interaction.prototype.interacting = function interacting() {\n return this._interacting;\n };\n\n /** */\n\n\n Interaction.prototype.stop = function stop() {\n signals.fire('stop', { interaction: this });\n\n if (this._interacting) {\n signals.fire('stop-active', { interaction: this });\n signals.fire('stop-' + this.prepared.name, { interaction: this });\n }\n\n this.target = this.element = null;\n\n this._interacting = false;\n this.prepared.name = this.prevEvent = null;\n };\n\n Interaction.prototype.getPointerIndex = function getPointerIndex(pointer) {\n // mouse and pen interactions may have only one pointer\n if (this.pointerType === 'mouse' || this.pointerType === 'pen') {\n return 0;\n }\n\n return this.pointerIds.indexOf(utils.getPointerId(pointer));\n };\n\n Interaction.prototype.updatePointer = function updatePointer(pointer, event) {\n var down = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : event && /(down|start)$/i.test(event.type);\n\n var id = utils.getPointerId(pointer);\n var index = this.getPointerIndex(pointer);\n\n if (index === -1) {\n index = this.pointerIds.length;\n this.pointerIds[index] = id;\n }\n\n if (down) {\n signals.fire('update-pointer-down', {\n pointer: pointer,\n event: event,\n down: down,\n pointerId: id,\n pointerIndex: index,\n interaction: this\n });\n }\n\n this.pointers[index] = pointer;\n\n return index;\n };\n\n Interaction.prototype.removePointer = function removePointer(pointer, event) {\n var index = this.getPointerIndex(pointer);\n\n if (index === -1) {\n return;\n }\n\n signals.fire('remove-pointer', {\n pointer: pointer,\n event: event,\n pointerIndex: index,\n interaction: this\n });\n\n this.pointers.splice(index, 1);\n this.pointerIds.splice(index, 1);\n this.downTargets.splice(index, 1);\n this.downTimes.splice(index, 1);\n };\n\n Interaction.prototype._updateEventTargets = function _updateEventTargets(target, currentTarget) {\n this._eventTarget = target;\n this._curEventTarget = currentTarget;\n };\n\n return Interaction;\n}();\n\nfor (var _i = 0; _i < methodNames.length; _i++) {\n var method = methodNames[_i];\n listeners[method] = doOnInteractions(method);\n}\n\nfunction doOnInteractions(method) {\n return function (event) {\n var pointerType = utils.getPointerType(event);\n\n var _utils$getEventTarget = utils.getEventTargets(event),\n eventTarget = _utils$getEventTarget[0],\n curEventTarget = _utils$getEventTarget[1];\n\n var matches = []; // [ [pointer, interaction], ...]\n\n if (browser.supportsTouch && /touch/.test(event.type)) {\n prevTouchTime = new Date().getTime();\n\n for (var _i2 = 0; _i2 < event.changedTouches.length; _i2++) {\n var _ref2;\n\n _ref2 = event.changedTouches[_i2];\n var changedTouch = _ref2;\n\n var pointer = changedTouch;\n var interaction = finder.search(pointer, event.type, eventTarget);\n\n matches.push([pointer, interaction || new Interaction({ pointerType: pointerType })]);\n }\n } else {\n var invalidPointer = false;\n\n if (!browser.supportsPointerEvent && /mouse/.test(event.type)) {\n // ignore mouse events while touch interactions are active\n for (var i = 0; i < scope.interactions.length && !invalidPointer; i++) {\n invalidPointer = scope.interactions[i].pointerType !== 'mouse' && scope.interactions[i].pointerIsDown;\n }\n\n // try to ignore mouse events that are simulated by the browser\n // after a touch event\n invalidPointer = invalidPointer || new Date().getTime() - prevTouchTime < 500\n // on iOS and Firefox Mobile, MouseEvent.timeStamp is zero if simulated\n || event.timeStamp === 0;\n }\n\n if (!invalidPointer) {\n var _interaction = finder.search(event, event.type, eventTarget);\n\n if (!_interaction) {\n _interaction = new Interaction({ pointerType: pointerType });\n }\n\n matches.push([event, _interaction]);\n }\n }\n\n for (var _i3 = 0; _i3 < matches.length; _i3++) {\n var _ref3 = matches[_i3];\n var _pointer = _ref3[0];\n var _interaction2 = _ref3[1];\n\n _interaction2._updateEventTargets(eventTarget, curEventTarget);\n _interaction2[method](_pointer, event, eventTarget, curEventTarget);\n }\n };\n}\n\nfunction endAll(event) {\n for (var _i4 = 0; _i4 < scope.interactions.length; _i4++) {\n var _ref4;\n\n _ref4 = scope.interactions[_i4];\n var interaction = _ref4;\n\n interaction.end(event);\n signals.fire('endall', { event: event, interaction: interaction });\n }\n}\n\nvar docEvents = {/* 'eventType': listenerFunc */};\nvar pEventTypes = browser.pEventTypes;\n\nif (domObjects.PointerEvent) {\n docEvents[pEventTypes.down] = listeners.pointerDown;\n docEvents[pEventTypes.move] = listeners.pointerMove;\n docEvents[pEventTypes.up] = listeners.pointerUp;\n docEvents[pEventTypes.cancel] = listeners.pointerUp;\n} else {\n docEvents.mousedown = listeners.pointerDown;\n docEvents.mousemove = listeners.pointerMove;\n docEvents.mouseup = listeners.pointerUp;\n\n docEvents.touchstart = listeners.pointerDown;\n docEvents.touchmove = listeners.pointerMove;\n docEvents.touchend = listeners.pointerUp;\n docEvents.touchcancel = listeners.pointerUp;\n}\n\ndocEvents.blur = endAll;\n\nfunction onDocSignal(_ref5, signalName) {\n var doc = _ref5.doc;\n\n var eventMethod = signalName.indexOf('add') === 0 ? events.add : events.remove;\n\n // delegate event listener\n for (var eventType in scope.delegatedEvents) {\n eventMethod(doc, eventType, events.delegateListener);\n eventMethod(doc, eventType, events.delegateUseCapture, true);\n }\n\n for (var _eventType in docEvents) {\n eventMethod(doc, _eventType, docEvents[_eventType], browser.isIOS ? { passive: false } : undefined);\n }\n}\n\nsignals.on('update-pointer-down', function (_ref6) {\n var interaction = _ref6.interaction,\n pointer = _ref6.pointer,\n pointerId = _ref6.pointerId,\n pointerIndex = _ref6.pointerIndex,\n event = _ref6.event,\n eventTarget = _ref6.eventTarget,\n down = _ref6.down;\n\n interaction.pointerIds[pointerIndex] = pointerId;\n interaction.pointers[pointerIndex] = pointer;\n\n if (down) {\n interaction.pointerIsDown = true;\n }\n\n if (!interaction.interacting()) {\n utils.setCoords(interaction.startCoords, interaction.pointers);\n\n utils.copyCoords(interaction.curCoords, interaction.startCoords);\n utils.copyCoords(interaction.prevCoords, interaction.startCoords);\n\n interaction.downEvent = event;\n interaction.downTimes[pointerIndex] = interaction.curCoords.timeStamp;\n interaction.downTargets[pointerIndex] = eventTarget || event && utils.getEventTargets(event)[0];\n interaction.pointerWasMoved = false;\n\n utils.pointerExtend(interaction.downPointer, pointer);\n }\n});\n\nscope.signals.on('add-document', onDocSignal);\nscope.signals.on('remove-document', onDocSignal);\n\nInteraction.pointerMoveTolerance = 1;\nInteraction.doOnInteractions = doOnInteractions;\nInteraction.endAll = endAll;\nInteraction.signals = signals;\nInteraction.docEvents = docEvents;\n\nscope.endAllInteractions = endAll;\n\nmodule.exports = Interaction;\n\n},{\"./scope\":33,\"./utils\":44,\"./utils/Signals\":34,\"./utils/browser\":36,\"./utils/domObjects\":38,\"./utils/events\":40,\"./utils/interactionFinder\":45}],6:[function(require,module,exports){\n'use strict';\n\nvar Interaction = require('../Interaction');\nvar InteractEvent = require('../InteractEvent');\n\nvar actions = {\n firePrepared: firePrepared,\n names: [],\n methodDict: {}\n};\n\nInteraction.signals.on('action-start', function (_ref) {\n var interaction = _ref.interaction,\n event = _ref.event;\n\n interaction._interacting = true;\n firePrepared(interaction, event, 'start');\n});\n\nInteraction.signals.on('action-move', function (_ref2) {\n var interaction = _ref2.interaction,\n event = _ref2.event,\n preEnd = _ref2.preEnd;\n\n firePrepared(interaction, event, 'move', preEnd);\n\n // if the action was ended in a listener\n if (!interaction.interacting()) {\n return false;\n }\n});\n\nInteraction.signals.on('action-end', function (_ref3) {\n var interaction = _ref3.interaction,\n event = _ref3.event;\n\n firePrepared(interaction, event, 'end');\n});\n\nfunction firePrepared(interaction, event, phase, preEnd) {\n var actionName = interaction.prepared.name;\n\n var newEvent = new InteractEvent(interaction, event, actionName, phase, interaction.element, null, preEnd);\n\n interaction.target.fire(newEvent);\n interaction.prevEvent = newEvent;\n}\n\nmodule.exports = actions;\n\n},{\"../InteractEvent\":3,\"../Interaction\":5}],7:[function(require,module,exports){\n'use strict';\n\nvar actions = require('./base');\nvar utils = require('../utils');\nvar InteractEvent = require('../InteractEvent');\n/** @lends Interactable */\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar defaultOptions = require('../defaultOptions');\n\nvar drag = {\n defaults: {\n enabled: false,\n mouseButtons: null,\n\n origin: null,\n snap: null,\n restrict: null,\n inertia: null,\n autoScroll: null,\n\n startAxis: 'xy',\n lockAxis: 'xy'\n },\n\n checker: function checker(pointer, event, interactable) {\n var dragOptions = interactable.options.drag;\n\n return dragOptions.enabled ? { name: 'drag', axis: dragOptions.lockAxis === 'start' ? dragOptions.startAxis : dragOptions.lockAxis } : null;\n },\n\n getCursor: function getCursor() {\n return 'move';\n }\n};\n\nInteraction.signals.on('before-action-move', function (_ref) {\n var interaction = _ref.interaction;\n\n if (interaction.prepared.name !== 'drag') {\n return;\n }\n\n var axis = interaction.prepared.axis;\n\n if (axis === 'x') {\n interaction.curCoords.page.y = interaction.startCoords.page.y;\n interaction.curCoords.client.y = interaction.startCoords.client.y;\n\n interaction.pointerDelta.page.speed = Math.abs(interaction.pointerDelta.page.vx);\n interaction.pointerDelta.client.speed = Math.abs(interaction.pointerDelta.client.vx);\n interaction.pointerDelta.client.vy = 0;\n interaction.pointerDelta.page.vy = 0;\n } else if (axis === 'y') {\n interaction.curCoords.page.x = interaction.startCoords.page.x;\n interaction.curCoords.client.x = interaction.startCoords.client.x;\n\n interaction.pointerDelta.page.speed = Math.abs(interaction.pointerDelta.page.vy);\n interaction.pointerDelta.client.speed = Math.abs(interaction.pointerDelta.client.vy);\n interaction.pointerDelta.client.vx = 0;\n interaction.pointerDelta.page.vx = 0;\n }\n});\n\n// dragmove\nInteractEvent.signals.on('new', function (_ref2) {\n var iEvent = _ref2.iEvent,\n interaction = _ref2.interaction;\n\n if (iEvent.type !== 'dragmove') {\n return;\n }\n\n var axis = interaction.prepared.axis;\n\n if (axis === 'x') {\n iEvent.pageY = interaction.startCoords.page.y;\n iEvent.clientY = interaction.startCoords.client.y;\n iEvent.dy = 0;\n } else if (axis === 'y') {\n iEvent.pageX = interaction.startCoords.page.x;\n iEvent.clientX = interaction.startCoords.client.x;\n iEvent.dx = 0;\n }\n});\n\n/**\n * ```js\n * interact(element).draggable({\n * onstart: function (event) {},\n * onmove : function (event) {},\n * onend : function (event) {},\n *\n * // the axis in which the first movement must be\n * // for the drag sequence to start\n * // 'xy' by default - any direction\n * startAxis: 'x' || 'y' || 'xy',\n *\n * // 'xy' by default - don't restrict to one axis (move in any direction)\n * // 'x' or 'y' to restrict movement to either axis\n * // 'start' to restrict movement to the axis the drag started in\n * lockAxis: 'x' || 'y' || 'xy' || 'start',\n *\n * // max number of drags that can happen concurrently\n * // with elements of this Interactable. Infinity by default\n * max: Infinity,\n *\n * // max number of drags that can target the same element+Interactable\n * // 1 by default\n * maxPerElement: 2\n * });\n *\n * var isDraggable = interact('element').draggable(); // true\n * ```\n *\n * Get or set whether drag actions can be performed on the target\n *\n * @param {boolean | object} [options] true/false or An object with event\n * listeners to be fired on drag events (object makes the Interactable\n * draggable)\n * @return {boolean | Interactable} boolean indicating if this can be the\n * target of drag events, or this Interctable\n */\nInteractable.prototype.draggable = function (options) {\n if (utils.is.object(options)) {\n this.options.drag.enabled = options.enabled === false ? false : true;\n this.setPerAction('drag', options);\n this.setOnEvents('drag', options);\n\n if (/^(xy|x|y|start)$/.test(options.lockAxis)) {\n this.options.drag.lockAxis = options.lockAxis;\n }\n if (/^(xy|x|y)$/.test(options.startAxis)) {\n this.options.drag.startAxis = options.startAxis;\n }\n\n return this;\n }\n\n if (utils.is.bool(options)) {\n this.options.drag.enabled = options;\n\n if (!options) {\n this.ondragstart = this.ondragstart = this.ondragend = null;\n }\n\n return this;\n }\n\n return this.options.drag;\n};\n\nactions.drag = drag;\nactions.names.push('drag');\nutils.merge(Interactable.eventTypes, ['dragstart', 'dragmove', 'draginertiastart', 'draginertiaresume', 'dragend']);\nactions.methodDict.drag = 'draggable';\n\ndefaultOptions.drag = drag.defaults;\n\nmodule.exports = drag;\n\n},{\"../InteractEvent\":3,\"../Interactable\":4,\"../Interaction\":5,\"../defaultOptions\":18,\"../utils\":44,\"./base\":6}],8:[function(require,module,exports){\n'use strict';\n\nvar actions = require('./base');\nvar utils = require('../utils');\nvar scope = require('../scope');\n/** @lends module:interact */\nvar interact = require('../interact');\nvar InteractEvent = require('../InteractEvent');\n/** @lends Interactable */\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar defaultOptions = require('../defaultOptions');\n\nvar drop = {\n defaults: {\n enabled: false,\n accept: null,\n overlap: 'pointer'\n }\n};\n\nvar dynamicDrop = false;\n\nInteraction.signals.on('action-start', function (_ref) {\n var interaction = _ref.interaction,\n event = _ref.event;\n\n if (interaction.prepared.name !== 'drag') {\n return;\n }\n\n // reset active dropzones\n interaction.activeDrops.dropzones = [];\n interaction.activeDrops.elements = [];\n interaction.activeDrops.rects = [];\n\n interaction.dropEvents = null;\n\n if (!interaction.dynamicDrop) {\n setActiveDrops(interaction.activeDrops, interaction.element);\n }\n\n var dragEvent = interaction.prevEvent;\n var dropEvents = getDropEvents(interaction, event, dragEvent);\n\n if (dropEvents.activate) {\n fireActiveDrops(interaction.activeDrops, dropEvents.activate);\n }\n});\n\nInteractEvent.signals.on('new', function (_ref2) {\n var interaction = _ref2.interaction,\n iEvent = _ref2.iEvent,\n event = _ref2.event;\n\n if (iEvent.type !== 'dragmove' && iEvent.type !== 'dragend') {\n return;\n }\n\n var draggableElement = interaction.element;\n var dragEvent = iEvent;\n var dropResult = getDrop(dragEvent, event, draggableElement);\n\n interaction.dropTarget = dropResult.dropzone;\n interaction.dropElement = dropResult.element;\n\n interaction.dropEvents = getDropEvents(interaction, event, dragEvent);\n});\n\nInteraction.signals.on('action-move', function (_ref3) {\n var interaction = _ref3.interaction;\n\n if (interaction.prepared.name !== 'drag') {\n return;\n }\n\n fireDropEvents(interaction, interaction.dropEvents);\n});\n\nInteraction.signals.on('action-end', function (_ref4) {\n var interaction = _ref4.interaction;\n\n if (interaction.prepared.name === 'drag') {\n fireDropEvents(interaction, interaction.dropEvents);\n }\n});\n\nInteraction.signals.on('stop-drag', function (_ref5) {\n var interaction = _ref5.interaction;\n\n interaction.activeDrops = {\n dropzones: null,\n elements: null,\n rects: null\n };\n\n interaction.dropEvents = null;\n});\n\nfunction collectDrops(activeDrops, element) {\n var drops = [];\n var elements = [];\n\n // collect all dropzones and their elements which qualify for a drop\n for (var _i = 0; _i < scope.interactables.length; _i++) {\n var _ref6;\n\n _ref6 = scope.interactables[_i];\n var current = _ref6;\n\n if (!current.options.drop.enabled) {\n continue;\n }\n\n var accept = current.options.drop.accept;\n\n // test the draggable element against the dropzone's accept setting\n if (utils.is.element(accept) && accept !== element || utils.is.string(accept) && !utils.matchesSelector(element, accept)) {\n\n continue;\n }\n\n // query for new elements if necessary\n var dropElements = utils.is.string(current.target) ? current._context.querySelectorAll(current.target) : [current.target];\n\n for (var _i2 = 0; _i2 < dropElements.length; _i2++) {\n var _ref7;\n\n _ref7 = dropElements[_i2];\n var currentElement = _ref7;\n\n if (currentElement !== element) {\n drops.push(current);\n elements.push(currentElement);\n }\n }\n }\n\n return {\n elements: elements,\n dropzones: drops\n };\n}\n\nfunction fireActiveDrops(activeDrops, event) {\n var prevElement = void 0;\n\n // loop through all active dropzones and trigger event\n for (var i = 0; i < activeDrops.dropzones.length; i++) {\n var current = activeDrops.dropzones[i];\n var currentElement = activeDrops.elements[i];\n\n // prevent trigger of duplicate events on same element\n if (currentElement !== prevElement) {\n // set current element as event target\n event.target = currentElement;\n current.fire(event);\n }\n prevElement = currentElement;\n }\n}\n\n// Collect a new set of possible drops and save them in activeDrops.\n// setActiveDrops should always be called when a drag has just started or a\n// drag event happens while dynamicDrop is true\nfunction setActiveDrops(activeDrops, dragElement) {\n // get dropzones and their elements that could receive the draggable\n var possibleDrops = collectDrops(activeDrops, dragElement);\n\n activeDrops.dropzones = possibleDrops.dropzones;\n activeDrops.elements = possibleDrops.elements;\n activeDrops.rects = [];\n\n for (var i = 0; i < activeDrops.dropzones.length; i++) {\n activeDrops.rects[i] = activeDrops.dropzones[i].getRect(activeDrops.elements[i]);\n }\n}\n\nfunction getDrop(dragEvent, event, dragElement) {\n var interaction = dragEvent.interaction;\n var validDrops = [];\n\n if (dynamicDrop) {\n setActiveDrops(interaction.activeDrops, dragElement);\n }\n\n // collect all dropzones and their elements which qualify for a drop\n for (var j = 0; j < interaction.activeDrops.dropzones.length; j++) {\n var current = interaction.activeDrops.dropzones[j];\n var currentElement = interaction.activeDrops.elements[j];\n var rect = interaction.activeDrops.rects[j];\n\n validDrops.push(current.dropCheck(dragEvent, event, interaction.target, dragElement, currentElement, rect) ? currentElement : null);\n }\n\n // get the most appropriate dropzone based on DOM depth and order\n var dropIndex = utils.indexOfDeepestElement(validDrops);\n\n return {\n dropzone: interaction.activeDrops.dropzones[dropIndex] || null,\n element: interaction.activeDrops.elements[dropIndex] || null\n };\n}\n\nfunction getDropEvents(interaction, pointerEvent, dragEvent) {\n var dropEvents = {\n enter: null,\n leave: null,\n activate: null,\n deactivate: null,\n move: null,\n drop: null\n };\n\n var tmpl = {\n dragEvent: dragEvent,\n interaction: interaction,\n target: interaction.dropElement,\n dropzone: interaction.dropTarget,\n relatedTarget: dragEvent.target,\n draggable: dragEvent.interactable,\n timeStamp: dragEvent.timeStamp\n };\n\n if (interaction.dropElement !== interaction.prevDropElement) {\n // if there was a prevDropTarget, create a dragleave event\n if (interaction.prevDropTarget) {\n dropEvents.leave = utils.extend({ type: 'dragleave' }, tmpl);\n\n dragEvent.dragLeave = dropEvents.leave.target = interaction.prevDropElement;\n dragEvent.prevDropzone = dropEvents.leave.dropzone = interaction.prevDropTarget;\n }\n // if the dropTarget is not null, create a dragenter event\n if (interaction.dropTarget) {\n dropEvents.enter = {\n dragEvent: dragEvent,\n interaction: interaction,\n target: interaction.dropElement,\n dropzone: interaction.dropTarget,\n relatedTarget: dragEvent.target,\n draggable: dragEvent.interactable,\n timeStamp: dragEvent.timeStamp,\n type: 'dragenter'\n };\n\n dragEvent.dragEnter = interaction.dropElement;\n dragEvent.dropzone = interaction.dropTarget;\n }\n }\n\n if (dragEvent.type === 'dragend' && interaction.dropTarget) {\n dropEvents.drop = utils.extend({ type: 'drop' }, tmpl);\n\n dragEvent.dropzone = interaction.dropTarget;\n dragEvent.relatedTarget = interaction.dropElement;\n }\n if (dragEvent.type === 'dragstart') {\n dropEvents.activate = utils.extend({ type: 'dropactivate' }, tmpl);\n\n dropEvents.activate.target = null;\n dropEvents.activate.dropzone = null;\n }\n if (dragEvent.type === 'dragend') {\n dropEvents.deactivate = utils.extend({ type: 'dropdeactivate' }, tmpl);\n\n dropEvents.deactivate.target = null;\n dropEvents.deactivate.dropzone = null;\n }\n if (dragEvent.type === 'dragmove' && interaction.dropTarget) {\n dropEvents.move = utils.extend({\n dragmove: dragEvent,\n type: 'dropmove'\n }, tmpl);\n\n dragEvent.dropzone = interaction.dropTarget;\n }\n\n return dropEvents;\n}\n\nfunction fireDropEvents(interaction, dropEvents) {\n var activeDrops = interaction.activeDrops,\n prevDropTarget = interaction.prevDropTarget,\n dropTarget = interaction.dropTarget,\n dropElement = interaction.dropElement;\n\n\n if (dropEvents.leave) {\n prevDropTarget.fire(dropEvents.leave);\n }\n if (dropEvents.move) {\n dropTarget.fire(dropEvents.move);\n }\n if (dropEvents.enter) {\n dropTarget.fire(dropEvents.enter);\n }\n if (dropEvents.drop) {\n dropTarget.fire(dropEvents.drop);\n }\n if (dropEvents.deactivate) {\n fireActiveDrops(activeDrops, dropEvents.deactivate);\n }\n\n interaction.prevDropTarget = dropTarget;\n interaction.prevDropElement = dropElement;\n}\n\n/**\n * ```js\n * interact(target)\n * .dropChecker(function(dragEvent, // related dragmove or dragend event\n * event, // TouchEvent/PointerEvent/MouseEvent\n * dropped, // bool result of the default checker\n * dropzone, // dropzone Interactable\n * dropElement, // dropzone elemnt\n * draggable, // draggable Interactable\n * draggableElement) {// draggable element\n *\n * return dropped && event.target.hasAttribute('allow-drop');\n * }\n * ```\n *\n * ```js\n * interact('.drop').dropzone({\n * accept: '.can-drop' || document.getElementById('single-drop'),\n * overlap: 'pointer' || 'center' || zeroToOne\n * }\n * ```\n *\n * Returns or sets whether draggables can be dropped onto this target to\n * trigger drop events\n *\n * Dropzones can receive the following events:\n * - `dropactivate` and `dropdeactivate` when an acceptable drag starts and ends\n * - `dragenter` and `dragleave` when a draggable enters and leaves the dropzone\n * - `dragmove` when a draggable that has entered the dropzone is moved\n * - `drop` when a draggable is dropped into this dropzone\n *\n * Use the `accept` option to allow only elements that match the given CSS\n * selector or element. The value can be:\n *\n * - **an Element** - only that element can be dropped into this dropzone.\n * - **a string**, - the element being dragged must match it as a CSS selector.\n * - **`null`** - accept options is cleared - it accepts any element.\n *\n * Use the `overlap` option to set how drops are checked for. The allowed\n * values are:\n *\n * - `'pointer'`, the pointer must be over the dropzone (default)\n * - `'center'`, the draggable element's center must be over the dropzone\n * - a number from 0-1 which is the `(intersection area) / (draggable area)`.\n * e.g. `0.5` for drop to happen when half of the area of the draggable is\n * over the dropzone\n *\n * Use the `checker` option to specify a function to check if a dragged element\n * is over this Interactable.\n *\n * @param {boolean | object | null} [options] The new options to be set.\n * @return {boolean | Interactable} The current setting or this Interactable\n */\nInteractable.prototype.dropzone = function (options) {\n if (utils.is.object(options)) {\n this.options.drop.enabled = options.enabled === false ? false : true;\n\n if (utils.is.function(options.ondrop)) {\n this.events.ondrop = options.ondrop;\n }\n if (utils.is.function(options.ondropactivate)) {\n this.events.ondropactivate = options.ondropactivate;\n }\n if (utils.is.function(options.ondropdeactivate)) {\n this.events.ondropdeactivate = options.ondropdeactivate;\n }\n if (utils.is.function(options.ondragenter)) {\n this.events.ondragenter = options.ondragenter;\n }\n if (utils.is.function(options.ondragleave)) {\n this.events.ondragleave = options.ondragleave;\n }\n if (utils.is.function(options.ondropmove)) {\n this.events.ondropmove = options.ondropmove;\n }\n\n if (/^(pointer|center)$/.test(options.overlap)) {\n this.options.drop.overlap = options.overlap;\n } else if (utils.is.number(options.overlap)) {\n this.options.drop.overlap = Math.max(Math.min(1, options.overlap), 0);\n }\n if ('accept' in options) {\n this.options.drop.accept = options.accept;\n }\n if ('checker' in options) {\n this.options.drop.checker = options.checker;\n }\n\n return this;\n }\n\n if (utils.is.bool(options)) {\n this.options.drop.enabled = options;\n\n if (!options) {\n this.ondragenter = this.ondragleave = this.ondrop = this.ondropactivate = this.ondropdeactivate = null;\n }\n\n return this;\n }\n\n return this.options.drop;\n};\n\nInteractable.prototype.dropCheck = function (dragEvent, event, draggable, draggableElement, dropElement, rect) {\n var dropped = false;\n\n // if the dropzone has no rect (eg. display: none)\n // call the custom dropChecker or just return false\n if (!(rect = rect || this.getRect(dropElement))) {\n return this.options.drop.checker ? this.options.drop.checker(dragEvent, event, dropped, this, dropElement, draggable, draggableElement) : false;\n }\n\n var dropOverlap = this.options.drop.overlap;\n\n if (dropOverlap === 'pointer') {\n var origin = utils.getOriginXY(draggable, draggableElement, 'drag');\n var page = utils.getPageXY(dragEvent);\n\n page.x += origin.x;\n page.y += origin.y;\n\n var horizontal = page.x > rect.left && page.x < rect.right;\n var vertical = page.y > rect.top && page.y < rect.bottom;\n\n dropped = horizontal && vertical;\n }\n\n var dragRect = draggable.getRect(draggableElement);\n\n if (dragRect && dropOverlap === 'center') {\n var cx = dragRect.left + dragRect.width / 2;\n var cy = dragRect.top + dragRect.height / 2;\n\n dropped = cx >= rect.left && cx <= rect.right && cy >= rect.top && cy <= rect.bottom;\n }\n\n if (dragRect && utils.is.number(dropOverlap)) {\n var overlapArea = Math.max(0, Math.min(rect.right, dragRect.right) - Math.max(rect.left, dragRect.left)) * Math.max(0, Math.min(rect.bottom, dragRect.bottom) - Math.max(rect.top, dragRect.top));\n\n var overlapRatio = overlapArea / (dragRect.width * dragRect.height);\n\n dropped = overlapRatio >= dropOverlap;\n }\n\n if (this.options.drop.checker) {\n dropped = this.options.drop.checker(dragEvent, event, dropped, this, dropElement, draggable, draggableElement);\n }\n\n return dropped;\n};\n\nInteractable.signals.on('unset', function (_ref8) {\n var interactable = _ref8.interactable;\n\n interactable.dropzone(false);\n});\n\nInteractable.settingsMethods.push('dropChecker');\n\nInteraction.signals.on('new', function (interaction) {\n interaction.dropTarget = null; // the dropzone a drag target might be dropped into\n interaction.dropElement = null; // the element at the time of checking\n interaction.prevDropTarget = null; // the dropzone that was recently dragged away from\n interaction.prevDropElement = null; // the element at the time of checking\n interaction.dropEvents = null; // the dropEvents related to the current drag event\n\n interaction.activeDrops = {\n dropzones: [], // the dropzones that are mentioned below\n elements: [], // elements of dropzones that accept the target draggable\n rects: [] // the rects of the elements mentioned above\n };\n});\n\nInteraction.signals.on('stop', function (_ref9) {\n var interaction = _ref9.interaction;\n\n interaction.dropTarget = interaction.dropElement = interaction.prevDropTarget = interaction.prevDropElement = null;\n});\n\n/**\n * Returns or sets whether the dimensions of dropzone elements are calculated\n * on every dragmove or only on dragstart for the default dropChecker\n *\n * @param {boolean} [newValue] True to check on each move. False to check only\n * before start\n * @return {boolean | interact} The current setting or interact\n */\ninteract.dynamicDrop = function (newValue) {\n if (utils.is.bool(newValue)) {\n //if (dragging && dynamicDrop !== newValue && !newValue) {\n //calcRects(dropzones);\n //}\n\n dynamicDrop = newValue;\n\n return interact;\n }\n return dynamicDrop;\n};\n\nutils.merge(Interactable.eventTypes, ['dragenter', 'dragleave', 'dropactivate', 'dropdeactivate', 'dropmove', 'drop']);\nactions.methodDict.drop = 'dropzone';\n\ndefaultOptions.drop = drop.defaults;\n\nmodule.exports = drop;\n\n},{\"../InteractEvent\":3,\"../Interactable\":4,\"../Interaction\":5,\"../defaultOptions\":18,\"../interact\":21,\"../scope\":33,\"../utils\":44,\"./base\":6}],9:[function(require,module,exports){\n'use strict';\n\nvar actions = require('./base');\nvar utils = require('../utils');\nvar InteractEvent = require('../InteractEvent');\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar defaultOptions = require('../defaultOptions');\n\nvar gesture = {\n defaults: {\n enabled: false,\n origin: null,\n restrict: null\n },\n\n checker: function checker(pointer, event, interactable, element, interaction) {\n if (interaction.pointerIds.length >= 2) {\n return { name: 'gesture' };\n }\n\n return null;\n },\n\n getCursor: function getCursor() {\n return '';\n }\n};\n\nInteractEvent.signals.on('new', function (_ref) {\n var iEvent = _ref.iEvent,\n interaction = _ref.interaction;\n\n if (iEvent.type !== 'gesturestart') {\n return;\n }\n iEvent.ds = 0;\n\n interaction.gesture.startDistance = interaction.gesture.prevDistance = iEvent.distance;\n interaction.gesture.startAngle = interaction.gesture.prevAngle = iEvent.angle;\n interaction.gesture.scale = 1;\n});\n\nInteractEvent.signals.on('new', function (_ref2) {\n var iEvent = _ref2.iEvent,\n interaction = _ref2.interaction;\n\n if (iEvent.type !== 'gesturemove') {\n return;\n }\n\n iEvent.ds = iEvent.scale - interaction.gesture.scale;\n\n interaction.target.fire(iEvent);\n\n interaction.gesture.prevAngle = iEvent.angle;\n interaction.gesture.prevDistance = iEvent.distance;\n\n if (iEvent.scale !== Infinity && iEvent.scale !== null && iEvent.scale !== undefined && !isNaN(iEvent.scale)) {\n\n interaction.gesture.scale = iEvent.scale;\n }\n});\n\n/**\n * ```js\n * interact(element).gesturable({\n * onstart: function (event) {},\n * onmove : function (event) {},\n * onend : function (event) {},\n *\n * // limit multiple gestures.\n * // See the explanation in {@link Interactable.draggable} example\n * max: Infinity,\n * maxPerElement: 1,\n * });\n *\n * var isGestureable = interact(element).gesturable();\n * ```\n *\n * Gets or sets whether multitouch gestures can be performed on the target\n *\n * @param {boolean | object} [options] true/false or An object with event\n * listeners to be fired on gesture events (makes the Interactable gesturable)\n * @return {boolean | Interactable} A boolean indicating if this can be the\n * target of gesture events, or this Interactable\n */\nInteractable.prototype.gesturable = function (options) {\n if (utils.is.object(options)) {\n this.options.gesture.enabled = options.enabled === false ? false : true;\n this.setPerAction('gesture', options);\n this.setOnEvents('gesture', options);\n\n return this;\n }\n\n if (utils.is.bool(options)) {\n this.options.gesture.enabled = options;\n\n if (!options) {\n this.ongesturestart = this.ongesturestart = this.ongestureend = null;\n }\n\n return this;\n }\n\n return this.options.gesture;\n};\n\nInteractEvent.signals.on('set-delta', function (_ref3) {\n var interaction = _ref3.interaction,\n iEvent = _ref3.iEvent,\n action = _ref3.action,\n event = _ref3.event,\n starting = _ref3.starting,\n ending = _ref3.ending,\n deltaSource = _ref3.deltaSource;\n\n if (action !== 'gesture') {\n return;\n }\n\n var pointers = interaction.pointers;\n\n iEvent.touches = [pointers[0], pointers[1]];\n\n if (starting) {\n iEvent.distance = utils.touchDistance(pointers, deltaSource);\n iEvent.box = utils.touchBBox(pointers);\n iEvent.scale = 1;\n iEvent.ds = 0;\n iEvent.angle = utils.touchAngle(pointers, undefined, deltaSource);\n iEvent.da = 0;\n } else if (ending || event instanceof InteractEvent) {\n iEvent.distance = interaction.prevEvent.distance;\n iEvent.box = interaction.prevEvent.box;\n iEvent.scale = interaction.prevEvent.scale;\n iEvent.ds = iEvent.scale - 1;\n iEvent.angle = interaction.prevEvent.angle;\n iEvent.da = iEvent.angle - interaction.gesture.startAngle;\n } else {\n iEvent.distance = utils.touchDistance(pointers, deltaSource);\n iEvent.box = utils.touchBBox(pointers);\n iEvent.scale = iEvent.distance / interaction.gesture.startDistance;\n iEvent.angle = utils.touchAngle(pointers, interaction.gesture.prevAngle, deltaSource);\n\n iEvent.ds = iEvent.scale - interaction.gesture.prevScale;\n iEvent.da = iEvent.angle - interaction.gesture.prevAngle;\n }\n});\n\nInteraction.signals.on('new', function (interaction) {\n interaction.gesture = {\n start: { x: 0, y: 0 },\n\n startDistance: 0, // distance between two touches of touchStart\n prevDistance: 0,\n distance: 0,\n\n scale: 1, // gesture.distance / gesture.startDistance\n\n startAngle: 0, // angle of line joining two touches\n prevAngle: 0 // angle of the previous gesture event\n };\n});\n\nactions.gesture = gesture;\nactions.names.push('gesture');\nutils.merge(Interactable.eventTypes, ['gesturestart', 'gesturemove', 'gestureend']);\nactions.methodDict.gesture = 'gesturable';\n\ndefaultOptions.gesture = gesture.defaults;\n\nmodule.exports = gesture;\n\n},{\"../InteractEvent\":3,\"../Interactable\":4,\"../Interaction\":5,\"../defaultOptions\":18,\"../utils\":44,\"./base\":6}],10:[function(require,module,exports){\n'use strict';\n\nvar actions = require('./base');\nvar utils = require('../utils');\nvar browser = require('../utils/browser');\nvar InteractEvent = require('../InteractEvent');\n/** @lends Interactable */\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar defaultOptions = require('../defaultOptions');\n\n// Less Precision with touch input\nvar defaultMargin = browser.supportsTouch || browser.supportsPointerEvent ? 20 : 10;\n\nvar resize = {\n defaults: {\n enabled: false,\n mouseButtons: null,\n\n origin: null,\n snap: null,\n restrict: null,\n inertia: null,\n autoScroll: null,\n\n square: false,\n preserveAspectRatio: false,\n axis: 'xy',\n\n // use default margin\n margin: NaN,\n\n // object with props left, right, top, bottom which are\n // true/false values to resize when the pointer is over that edge,\n // CSS selectors to match the handles for each direction\n // or the Elements for each handle\n edges: null,\n\n // a value of 'none' will limit the resize rect to a minimum of 0x0\n // 'negate' will alow the rect to have negative width/height\n // 'reposition' will keep the width/height positive by swapping\n // the top and bottom edges and/or swapping the left and right edges\n invert: 'none'\n },\n\n checker: function checker(pointer, event, interactable, element, interaction, rect) {\n if (!rect) {\n return null;\n }\n\n var page = utils.extend({}, interaction.curCoords.page);\n var options = interactable.options;\n\n if (options.resize.enabled) {\n var resizeOptions = options.resize;\n var resizeEdges = { left: false, right: false, top: false, bottom: false };\n\n // if using resize.edges\n if (utils.is.object(resizeOptions.edges)) {\n for (var edge in resizeEdges) {\n resizeEdges[edge] = checkResizeEdge(edge, resizeOptions.edges[edge], page, interaction._eventTarget, element, rect, resizeOptions.margin || defaultMargin);\n }\n\n resizeEdges.left = resizeEdges.left && !resizeEdges.right;\n resizeEdges.top = resizeEdges.top && !resizeEdges.bottom;\n\n if (resizeEdges.left || resizeEdges.right || resizeEdges.top || resizeEdges.bottom) {\n return {\n name: 'resize',\n edges: resizeEdges\n };\n }\n } else {\n var right = options.resize.axis !== 'y' && page.x > rect.right - defaultMargin;\n var bottom = options.resize.axis !== 'x' && page.y > rect.bottom - defaultMargin;\n\n if (right || bottom) {\n return {\n name: 'resize',\n axes: (right ? 'x' : '') + (bottom ? 'y' : '')\n };\n }\n }\n }\n\n return null;\n },\n\n cursors: browser.isIe9 ? {\n x: 'e-resize',\n y: 's-resize',\n xy: 'se-resize',\n\n top: 'n-resize',\n left: 'w-resize',\n bottom: 's-resize',\n right: 'e-resize',\n topleft: 'se-resize',\n bottomright: 'se-resize',\n topright: 'ne-resize',\n bottomleft: 'ne-resize'\n } : {\n x: 'ew-resize',\n y: 'ns-resize',\n xy: 'nwse-resize',\n\n top: 'ns-resize',\n left: 'ew-resize',\n bottom: 'ns-resize',\n right: 'ew-resize',\n topleft: 'nwse-resize',\n bottomright: 'nwse-resize',\n topright: 'nesw-resize',\n bottomleft: 'nesw-resize'\n },\n\n getCursor: function getCursor(action) {\n if (action.axis) {\n return resize.cursors[action.name + action.axis];\n } else if (action.edges) {\n var cursorKey = '';\n var edgeNames = ['top', 'bottom', 'left', 'right'];\n\n for (var i = 0; i < 4; i++) {\n if (action.edges[edgeNames[i]]) {\n cursorKey += edgeNames[i];\n }\n }\n\n return resize.cursors[cursorKey];\n }\n }\n};\n\n// resizestart\nInteractEvent.signals.on('new', function (_ref) {\n var iEvent = _ref.iEvent,\n interaction = _ref.interaction;\n\n if (iEvent.type !== 'resizestart' || !interaction.prepared.edges) {\n return;\n }\n\n var startRect = interaction.target.getRect(interaction.element);\n var resizeOptions = interaction.target.options.resize;\n\n /*\n * When using the `resizable.square` or `resizable.preserveAspectRatio` options, resizing from one edge\n * will affect another. E.g. with `resizable.square`, resizing to make the right edge larger will make\n * the bottom edge larger by the same amount. We call these 'linked' edges. Any linked edges will depend\n * on the active edges and the edge being interacted with.\n */\n if (resizeOptions.square || resizeOptions.preserveAspectRatio) {\n var linkedEdges = utils.extend({}, interaction.prepared.edges);\n\n linkedEdges.top = linkedEdges.top || linkedEdges.left && !linkedEdges.bottom;\n linkedEdges.left = linkedEdges.left || linkedEdges.top && !linkedEdges.right;\n linkedEdges.bottom = linkedEdges.bottom || linkedEdges.right && !linkedEdges.top;\n linkedEdges.right = linkedEdges.right || linkedEdges.bottom && !linkedEdges.left;\n\n interaction.prepared._linkedEdges = linkedEdges;\n } else {\n interaction.prepared._linkedEdges = null;\n }\n\n // if using `resizable.preserveAspectRatio` option, record aspect ratio at the start of the resize\n if (resizeOptions.preserveAspectRatio) {\n interaction.resizeStartAspectRatio = startRect.width / startRect.height;\n }\n\n interaction.resizeRects = {\n start: startRect,\n current: utils.extend({}, startRect),\n inverted: utils.extend({}, startRect),\n previous: utils.extend({}, startRect),\n delta: {\n left: 0, right: 0, width: 0,\n top: 0, bottom: 0, height: 0\n }\n };\n\n iEvent.rect = interaction.resizeRects.inverted;\n iEvent.deltaRect = interaction.resizeRects.delta;\n});\n\n// resizemove\nInteractEvent.signals.on('new', function (_ref2) {\n var iEvent = _ref2.iEvent,\n phase = _ref2.phase,\n interaction = _ref2.interaction;\n\n if (phase !== 'move' || !interaction.prepared.edges) {\n return;\n }\n\n var resizeOptions = interaction.target.options.resize;\n var invert = resizeOptions.invert;\n var invertible = invert === 'reposition' || invert === 'negate';\n\n var edges = interaction.prepared.edges;\n\n var start = interaction.resizeRects.start;\n var current = interaction.resizeRects.current;\n var inverted = interaction.resizeRects.inverted;\n var delta = interaction.resizeRects.delta;\n var previous = utils.extend(interaction.resizeRects.previous, inverted);\n var originalEdges = edges;\n\n var dx = iEvent.dx;\n var dy = iEvent.dy;\n\n if (resizeOptions.preserveAspectRatio || resizeOptions.square) {\n // `resize.preserveAspectRatio` takes precedence over `resize.square`\n var startAspectRatio = resizeOptions.preserveAspectRatio ? interaction.resizeStartAspectRatio : 1;\n\n edges = interaction.prepared._linkedEdges;\n\n if (originalEdges.left && originalEdges.bottom || originalEdges.right && originalEdges.top) {\n dy = -dx / startAspectRatio;\n } else if (originalEdges.left || originalEdges.right) {\n dy = dx / startAspectRatio;\n } else if (originalEdges.top || originalEdges.bottom) {\n dx = dy * startAspectRatio;\n }\n }\n\n // update the 'current' rect without modifications\n if (edges.top) {\n current.top += dy;\n }\n if (edges.bottom) {\n current.bottom += dy;\n }\n if (edges.left) {\n current.left += dx;\n }\n if (edges.right) {\n current.right += dx;\n }\n\n if (invertible) {\n // if invertible, copy the current rect\n utils.extend(inverted, current);\n\n if (invert === 'reposition') {\n // swap edge values if necessary to keep width/height positive\n var swap = void 0;\n\n if (inverted.top > inverted.bottom) {\n swap = inverted.top;\n\n inverted.top = inverted.bottom;\n inverted.bottom = swap;\n }\n if (inverted.left > inverted.right) {\n swap = inverted.left;\n\n inverted.left = inverted.right;\n inverted.right = swap;\n }\n }\n } else {\n // if not invertible, restrict to minimum of 0x0 rect\n inverted.top = Math.min(current.top, start.bottom);\n inverted.bottom = Math.max(current.bottom, start.top);\n inverted.left = Math.min(current.left, start.right);\n inverted.right = Math.max(current.right, start.left);\n }\n\n inverted.width = inverted.right - inverted.left;\n inverted.height = inverted.bottom - inverted.top;\n\n for (var edge in inverted) {\n delta[edge] = inverted[edge] - previous[edge];\n }\n\n iEvent.edges = interaction.prepared.edges;\n iEvent.rect = inverted;\n iEvent.deltaRect = delta;\n});\n\n/**\n * ```js\n * interact(element).resizable({\n * onstart: function (event) {},\n * onmove : function (event) {},\n * onend : function (event) {},\n *\n * edges: {\n * top : true, // Use pointer coords to check for resize.\n * left : false, // Disable resizing from left edge.\n * bottom: '.resize-s',// Resize if pointer target matches selector\n * right : handleEl // Resize if pointer target is the given Element\n * },\n *\n * // Width and height can be adjusted independently. When `true`, width and\n * // height are adjusted at a 1:1 ratio.\n * square: false,\n *\n * // Width and height can be adjusted independently. When `true`, width and\n * // height maintain the aspect ratio they had when resizing started.\n * preserveAspectRatio: false,\n *\n * // a value of 'none' will limit the resize rect to a minimum of 0x0\n * // 'negate' will allow the rect to have negative width/height\n * // 'reposition' will keep the width/height positive by swapping\n * // the top and bottom edges and/or swapping the left and right edges\n * invert: 'none' || 'negate' || 'reposition'\n *\n * // limit multiple resizes.\n * // See the explanation in the {@link Interactable.draggable} example\n * max: Infinity,\n * maxPerElement: 1,\n * });\n *\n * var isResizeable = interact(element).resizable();\n * ```\n *\n * Gets or sets whether resize actions can be performed on the target\n *\n * @param {boolean | object} [options] true/false or An object with event\n * listeners to be fired on resize events (object makes the Interactable\n * resizable)\n * @return {boolean | Interactable} A boolean indicating if this can be the\n * target of resize elements, or this Interactable\n */\nInteractable.prototype.resizable = function (options) {\n if (utils.is.object(options)) {\n this.options.resize.enabled = options.enabled === false ? false : true;\n this.setPerAction('resize', options);\n this.setOnEvents('resize', options);\n\n if (/^x$|^y$|^xy$/.test(options.axis)) {\n this.options.resize.axis = options.axis;\n } else if (options.axis === null) {\n this.options.resize.axis = defaultOptions.resize.axis;\n }\n\n if (utils.is.bool(options.preserveAspectRatio)) {\n this.options.resize.preserveAspectRatio = options.preserveAspectRatio;\n } else if (utils.is.bool(options.square)) {\n this.options.resize.square = options.square;\n }\n\n return this;\n }\n if (utils.is.bool(options)) {\n this.options.resize.enabled = options;\n\n if (!options) {\n this.onresizestart = this.onresizestart = this.onresizeend = null;\n }\n\n return this;\n }\n return this.options.resize;\n};\n\nfunction checkResizeEdge(name, value, page, element, interactableElement, rect, margin) {\n // false, '', undefined, null\n if (!value) {\n return false;\n }\n\n // true value, use pointer coords and element rect\n if (value === true) {\n // if dimensions are negative, \"switch\" edges\n var width = utils.is.number(rect.width) ? rect.width : rect.right - rect.left;\n var height = utils.is.number(rect.height) ? rect.height : rect.bottom - rect.top;\n\n if (width < 0) {\n if (name === 'left') {\n name = 'right';\n } else if (name === 'right') {\n name = 'left';\n }\n }\n if (height < 0) {\n if (name === 'top') {\n name = 'bottom';\n } else if (name === 'bottom') {\n name = 'top';\n }\n }\n\n if (name === 'left') {\n return page.x < (width >= 0 ? rect.left : rect.right) + margin;\n }\n if (name === 'top') {\n return page.y < (height >= 0 ? rect.top : rect.bottom) + margin;\n }\n\n if (name === 'right') {\n return page.x > (width >= 0 ? rect.right : rect.left) - margin;\n }\n if (name === 'bottom') {\n return page.y > (height >= 0 ? rect.bottom : rect.top) - margin;\n }\n }\n\n // the remaining checks require an element\n if (!utils.is.element(element)) {\n return false;\n }\n\n return utils.is.element(value)\n // the value is an element to use as a resize handle\n ? value === element\n // otherwise check if element matches value as selector\n : utils.matchesUpTo(element, value, interactableElement);\n}\n\nInteraction.signals.on('new', function (interaction) {\n interaction.resizeAxes = 'xy';\n});\n\nInteractEvent.signals.on('set-delta', function (_ref3) {\n var interaction = _ref3.interaction,\n iEvent = _ref3.iEvent,\n action = _ref3.action;\n\n if (action !== 'resize' || !interaction.resizeAxes) {\n return;\n }\n\n var options = interaction.target.options;\n\n if (options.resize.square) {\n if (interaction.resizeAxes === 'y') {\n iEvent.dx = iEvent.dy;\n } else {\n iEvent.dy = iEvent.dx;\n }\n iEvent.axes = 'xy';\n } else {\n iEvent.axes = interaction.resizeAxes;\n\n if (interaction.resizeAxes === 'x') {\n iEvent.dy = 0;\n } else if (interaction.resizeAxes === 'y') {\n iEvent.dx = 0;\n }\n }\n});\n\nactions.resize = resize;\nactions.names.push('resize');\nutils.merge(Interactable.eventTypes, ['resizestart', 'resizemove', 'resizeinertiastart', 'resizeinertiaresume', 'resizeend']);\nactions.methodDict.resize = 'resizable';\n\ndefaultOptions.resize = resize.defaults;\n\nmodule.exports = resize;\n\n},{\"../InteractEvent\":3,\"../Interactable\":4,\"../Interaction\":5,\"../defaultOptions\":18,\"../utils\":44,\"../utils/browser\":36,\"./base\":6}],11:[function(require,module,exports){\n'use strict';\n\nvar raf = require('./utils/raf');\nvar getWindow = require('./utils/window').getWindow;\nvar is = require('./utils/is');\nvar domUtils = require('./utils/domUtils');\nvar Interaction = require('./Interaction');\nvar defaultOptions = require('./defaultOptions');\n\nvar autoScroll = {\n defaults: {\n enabled: false,\n container: null, // the item that is scrolled (Window or HTMLElement)\n margin: 60,\n speed: 300 // the scroll speed in pixels per second\n },\n\n interaction: null,\n i: null, // the handle returned by window.setInterval\n x: 0, y: 0, // Direction each pulse is to scroll in\n\n isScrolling: false,\n prevTime: 0,\n\n start: function start(interaction) {\n autoScroll.isScrolling = true;\n raf.cancel(autoScroll.i);\n\n autoScroll.interaction = interaction;\n autoScroll.prevTime = new Date().getTime();\n autoScroll.i = raf.request(autoScroll.scroll);\n },\n\n stop: function stop() {\n autoScroll.isScrolling = false;\n raf.cancel(autoScroll.i);\n },\n\n // scroll the window by the values in scroll.x/y\n scroll: function scroll() {\n var options = autoScroll.interaction.target.options[autoScroll.interaction.prepared.name].autoScroll;\n var container = options.container || getWindow(autoScroll.interaction.element);\n var now = new Date().getTime();\n // change in time in seconds\n var dt = (now - autoScroll.prevTime) / 1000;\n // displacement\n var s = options.speed * dt;\n\n if (s >= 1) {\n if (is.window(container)) {\n container.scrollBy(autoScroll.x * s, autoScroll.y * s);\n } else if (container) {\n container.scrollLeft += autoScroll.x * s;\n container.scrollTop += autoScroll.y * s;\n }\n\n autoScroll.prevTime = now;\n }\n\n if (autoScroll.isScrolling) {\n raf.cancel(autoScroll.i);\n autoScroll.i = raf.request(autoScroll.scroll);\n }\n },\n check: function check(interactable, actionName) {\n var options = interactable.options;\n\n return options[actionName].autoScroll && options[actionName].autoScroll.enabled;\n },\n onInteractionMove: function onInteractionMove(_ref) {\n var interaction = _ref.interaction,\n pointer = _ref.pointer;\n\n if (!(interaction.interacting() && autoScroll.check(interaction.target, interaction.prepared.name))) {\n return;\n }\n\n if (interaction.simulation) {\n autoScroll.x = autoScroll.y = 0;\n return;\n }\n\n var top = void 0;\n var right = void 0;\n var bottom = void 0;\n var left = void 0;\n\n var options = interaction.target.options[interaction.prepared.name].autoScroll;\n var container = options.container || getWindow(interaction.element);\n\n if (is.window(container)) {\n left = pointer.clientX < autoScroll.margin;\n top = pointer.clientY < autoScroll.margin;\n right = pointer.clientX > container.innerWidth - autoScroll.margin;\n bottom = pointer.clientY > container.innerHeight - autoScroll.margin;\n } else {\n var rect = domUtils.getElementClientRect(container);\n\n left = pointer.clientX < rect.left + autoScroll.margin;\n top = pointer.clientY < rect.top + autoScroll.margin;\n right = pointer.clientX > rect.right - autoScroll.margin;\n bottom = pointer.clientY > rect.bottom - autoScroll.margin;\n }\n\n autoScroll.x = right ? 1 : left ? -1 : 0;\n autoScroll.y = bottom ? 1 : top ? -1 : 0;\n\n if (!autoScroll.isScrolling) {\n // set the autoScroll properties to those of the target\n autoScroll.margin = options.margin;\n autoScroll.speed = options.speed;\n\n autoScroll.start(interaction);\n }\n }\n};\n\nInteraction.signals.on('stop-active', function () {\n autoScroll.stop();\n});\n\nInteraction.signals.on('action-move', autoScroll.onInteractionMove);\n\ndefaultOptions.perAction.autoScroll = autoScroll.defaults;\n\nmodule.exports = autoScroll;\n\n},{\"./Interaction\":5,\"./defaultOptions\":18,\"./utils/domUtils\":39,\"./utils/is\":46,\"./utils/raf\":50,\"./utils/window\":52}],12:[function(require,module,exports){\n'use strict';\n\n/** @lends Interactable */\nvar Interactable = require('../Interactable');\nvar actions = require('../actions/base');\nvar is = require('../utils/is');\nvar domUtils = require('../utils/domUtils');\n\nvar _require = require('../utils'),\n warnOnce = _require.warnOnce;\n\nInteractable.prototype.getAction = function (pointer, event, interaction, element) {\n var action = this.defaultActionChecker(pointer, event, interaction, element);\n\n if (this.options.actionChecker) {\n return this.options.actionChecker(pointer, event, action, this, element, interaction);\n }\n\n return action;\n};\n\n/**\n * ```js\n * interact(element, { ignoreFrom: document.getElementById('no-action') });\n * // or\n * interact(element).ignoreFrom('input, textarea, a');\n * ```\n * @deprecated\n * If the target of the `mousedown`, `pointerdown` or `touchstart` event or any\n * of it's parents match the given CSS selector or Element, no\n * drag/resize/gesture is started.\n *\n * Don't use this method. Instead set the `ignoreFrom` option for each action\n * or for `pointerEvents`\n *\n * @example\n * interact(targett)\n * .draggable({\n * ignoreFrom: 'input, textarea, a[href]'',\n * })\n * .pointerEvents({\n * ignoreFrom: '[no-pointer]',\n * });\n *\n * @param {string | Element | null} [newValue] a CSS selector string, an\n * Element or `null` to not ignore any elements\n * @return {string | Element | object} The current ignoreFrom value or this\n * Interactable\n */\nInteractable.prototype.ignoreFrom = warnOnce(function (newValue) {\n return this._backCompatOption('ignoreFrom', newValue);\n}, 'Interactable.ignoreForm() has been deprecated. Use Interactble.draggable({ignoreFrom: newValue}).');\n\n/**\n * ```js\n *\n * @deprecated\n * A drag/resize/gesture is started only If the target of the `mousedown`,\n * `pointerdown` or `touchstart` event or any of it's parents match the given\n * CSS selector or Element.\n *\n * Don't use this method. Instead set the `allowFrom` option for each action\n * or for `pointerEvents`\n *\n * @example\n * interact(targett)\n * .resizable({\n * allowFrom: '.resize-handle',\n * .pointerEvents({\n * allowFrom: '.handle',,\n * });\n *\n * @param {string | Element | null} [newValue] a CSS selector string, an\n * Element or `null` to allow from any element\n * @return {string | Element | object} The current allowFrom value or this\n * Interactable\n */\nInteractable.prototype.allowFrom = warnOnce(function (newValue) {\n return this._backCompatOption('allowFrom', newValue);\n}, 'Interactable.allowForm() has been deprecated. Use Interactble.draggable({allowFrom: newValue}).');\n\nInteractable.prototype.testIgnore = function (ignoreFrom, interactableElement, element) {\n if (!ignoreFrom || !is.element(element)) {\n return false;\n }\n\n if (is.string(ignoreFrom)) {\n return domUtils.matchesUpTo(element, ignoreFrom, interactableElement);\n } else if (is.element(ignoreFrom)) {\n return domUtils.nodeContains(ignoreFrom, element);\n }\n\n return false;\n};\n\nInteractable.prototype.testAllow = function (allowFrom, interactableElement, element) {\n if (!allowFrom) {\n return true;\n }\n\n if (!is.element(element)) {\n return false;\n }\n\n if (is.string(allowFrom)) {\n return domUtils.matchesUpTo(element, allowFrom, interactableElement);\n } else if (is.element(allowFrom)) {\n return domUtils.nodeContains(allowFrom, element);\n }\n\n return false;\n};\n\nInteractable.prototype.testIgnoreAllow = function (options, interactableElement, eventTarget) {\n return !this.testIgnore(options.ignoreFrom, interactableElement, eventTarget) && this.testAllow(options.allowFrom, interactableElement, eventTarget);\n};\n\n/**\n * ```js\n * interact('.resize-drag')\n * .resizable(true)\n * .draggable(true)\n * .actionChecker(function (pointer, event, action, interactable, element, interaction) {\n *\n * if (interact.matchesSelector(event.target, '.drag-handle') {\n * // force drag with handle target\n * action.name = drag;\n * }\n * else {\n * // resize from the top and right edges\n * action.name = 'resize';\n * action.edges = { top: true, right: true };\n * }\n *\n * return action;\n * });\n * ```\n *\n * Gets or sets the function used to check action to be performed on\n * pointerDown\n *\n * @param {function | null} [checker] A function which takes a pointer event,\n * defaultAction string, interactable, element and interaction as parameters\n * and returns an object with name property 'drag' 'resize' or 'gesture' and\n * optionally an `edges` object with boolean 'top', 'left', 'bottom' and right\n * props.\n * @return {Function | Interactable} The checker function or this Interactable\n */\nInteractable.prototype.actionChecker = function (checker) {\n if (is.function(checker)) {\n this.options.actionChecker = checker;\n\n return this;\n }\n\n if (checker === null) {\n delete this.options.actionChecker;\n\n return this;\n }\n\n return this.options.actionChecker;\n};\n\n/**\n * Returns or sets whether the the cursor should be changed depending on the\n * action that would be performed if the mouse were pressed and dragged.\n *\n * @param {boolean} [newValue]\n * @return {boolean | Interactable} The current setting or this Interactable\n */\nInteractable.prototype.styleCursor = function (newValue) {\n if (is.bool(newValue)) {\n this.options.styleCursor = newValue;\n\n return this;\n }\n\n if (newValue === null) {\n delete this.options.styleCursor;\n\n return this;\n }\n\n return this.options.styleCursor;\n};\n\nInteractable.prototype.defaultActionChecker = function (pointer, event, interaction, element) {\n var rect = this.getRect(element);\n var buttons = event.buttons || {\n 0: 1,\n 1: 4,\n 3: 8,\n 4: 16\n }[event.button];\n var action = null;\n\n for (var _i = 0; _i < actions.names.length; _i++) {\n var _ref;\n\n _ref = actions.names[_i];\n var actionName = _ref;\n\n // check mouseButton setting if the pointer is down\n if (interaction.pointerIsDown && /mouse|pointer/.test(interaction.pointerType) && (buttons & this.options[actionName].mouseButtons) === 0) {\n continue;\n }\n\n action = actions[actionName].checker(pointer, event, this, element, interaction, rect);\n\n if (action) {\n return action;\n }\n }\n};\n\n},{\"../Interactable\":4,\"../actions/base\":6,\"../utils\":44,\"../utils/domUtils\":39,\"../utils/is\":46}],13:[function(require,module,exports){\n'use strict';\n\nvar interact = require('../interact');\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar actions = require('../actions/base');\nvar defaultOptions = require('../defaultOptions');\nvar scope = require('../scope');\nvar utils = require('../utils');\nvar signals = require('../utils/Signals').new();\n\nrequire('./InteractableMethods');\n\nvar autoStart = {\n signals: signals,\n withinInteractionLimit: withinInteractionLimit,\n // Allow this many interactions to happen simultaneously\n maxInteractions: Infinity,\n defaults: {\n perAction: {\n manualStart: false,\n max: Infinity,\n maxPerElement: 1,\n allowFrom: null,\n ignoreFrom: null,\n\n // only allow left button by default\n // see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons#Return_value\n mouseButtons: 1\n }\n },\n setActionDefaults: function setActionDefaults(action) {\n utils.extend(action.defaults, autoStart.defaults.perAction);\n },\n validateAction: validateAction\n};\n\n// set cursor style on mousedown\nInteraction.signals.on('down', function (_ref) {\n var interaction = _ref.interaction,\n pointer = _ref.pointer,\n event = _ref.event,\n eventTarget = _ref.eventTarget;\n\n if (interaction.interacting()) {\n return;\n }\n\n var actionInfo = getActionInfo(interaction, pointer, event, eventTarget);\n prepare(interaction, actionInfo);\n});\n\n// set cursor style on mousemove\nInteraction.signals.on('move', function (_ref2) {\n var interaction = _ref2.interaction,\n pointer = _ref2.pointer,\n event = _ref2.event,\n eventTarget = _ref2.eventTarget;\n\n if (interaction.pointerType !== 'mouse' || interaction.pointerIsDown || interaction.interacting()) {\n return;\n }\n\n var actionInfo = getActionInfo(interaction, pointer, event, eventTarget);\n prepare(interaction, actionInfo);\n});\n\nInteraction.signals.on('move', function (arg) {\n var interaction = arg.interaction,\n event = arg.event;\n\n\n if (!interaction.pointerIsDown || interaction.interacting() || !interaction.pointerWasMoved || !interaction.prepared.name) {\n return;\n }\n\n signals.fire('before-start', arg);\n\n var target = interaction.target;\n\n if (interaction.prepared.name && target) {\n // check manualStart and interaction limit\n if (target.options[interaction.prepared.name].manualStart || !withinInteractionLimit(target, interaction.element, interaction.prepared)) {\n interaction.stop(event);\n } else {\n interaction.start(interaction.prepared, target, interaction.element);\n }\n }\n});\n\n// Check if the current target supports the action.\n// If so, return the validated action. Otherwise, return null\nfunction validateAction(action, interactable, element, eventTarget) {\n if (utils.is.object(action) && interactable.testIgnoreAllow(interactable.options[action.name], element, eventTarget) && interactable.options[action.name].enabled && withinInteractionLimit(interactable, element, action)) {\n return action;\n }\n\n return null;\n}\n\nfunction validateSelector(interaction, pointer, event, matches, matchElements, eventTarget) {\n for (var i = 0, len = matches.length; i < len; i++) {\n var match = matches[i];\n var matchElement = matchElements[i];\n var action = validateAction(match.getAction(pointer, event, interaction, matchElement), match, matchElement, eventTarget);\n\n if (action) {\n return {\n action: action,\n target: match,\n element: matchElement\n };\n }\n }\n\n return {};\n}\n\nfunction getActionInfo(interaction, pointer, event, eventTarget) {\n var matches = [];\n var matchElements = [];\n\n var element = eventTarget;\n\n function pushMatches(interactable) {\n matches.push(interactable);\n matchElements.push(element);\n }\n\n while (utils.is.element(element)) {\n matches = [];\n matchElements = [];\n\n scope.interactables.forEachMatch(element, pushMatches);\n\n var actionInfo = validateSelector(interaction, pointer, event, matches, matchElements, eventTarget);\n\n if (actionInfo.action && !actionInfo.target.options[actionInfo.action.name].manualStart) {\n return actionInfo;\n }\n\n element = utils.parentNode(element);\n }\n\n return {};\n}\n\nfunction prepare(interaction, _ref3) {\n var action = _ref3.action,\n target = _ref3.target,\n element = _ref3.element;\n\n action = action || {};\n\n if (interaction.target && interaction.target.options.styleCursor) {\n interaction.target._doc.documentElement.style.cursor = '';\n }\n\n interaction.target = target;\n interaction.element = element;\n utils.copyAction(interaction.prepared, action);\n\n if (target && target.options.styleCursor) {\n var cursor = action ? actions[action.name].getCursor(action) : '';\n interaction.target._doc.documentElement.style.cursor = cursor;\n }\n\n signals.fire('prepared', { interaction: interaction });\n}\n\nInteraction.signals.on('stop', function (_ref4) {\n var interaction = _ref4.interaction;\n\n var target = interaction.target;\n\n if (target && target.options.styleCursor) {\n target._doc.documentElement.style.cursor = '';\n }\n});\n\nfunction withinInteractionLimit(interactable, element, action) {\n var options = interactable.options;\n var maxActions = options[action.name].max;\n var maxPerElement = options[action.name].maxPerElement;\n var activeInteractions = 0;\n var targetCount = 0;\n var targetElementCount = 0;\n\n // no actions if any of these values == 0\n if (!(maxActions && maxPerElement && autoStart.maxInteractions)) {\n return;\n }\n\n for (var _i = 0; _i < scope.interactions.length; _i++) {\n var _ref5;\n\n _ref5 = scope.interactions[_i];\n var interaction = _ref5;\n\n var otherAction = interaction.prepared.name;\n\n if (!interaction.interacting()) {\n continue;\n }\n\n activeInteractions++;\n\n if (activeInteractions >= autoStart.maxInteractions) {\n return false;\n }\n\n if (interaction.target !== interactable) {\n continue;\n }\n\n targetCount += otherAction === action.name | 0;\n\n if (targetCount >= maxActions) {\n return false;\n }\n\n if (interaction.element === element) {\n targetElementCount++;\n\n if (otherAction !== action.name || targetElementCount >= maxPerElement) {\n return false;\n }\n }\n }\n\n return autoStart.maxInteractions > 0;\n}\n\n/**\n * Returns or sets the maximum number of concurrent interactions allowed. By\n * default only 1 interaction is allowed at a time (for backwards\n * compatibility). To allow multiple interactions on the same Interactables and\n * elements, you need to enable it in the draggable, resizable and gesturable\n * `'max'` and `'maxPerElement'` options.\n *\n * @alias module:interact.maxInteractions\n *\n * @param {number} [newValue] Any number. newValue <= 0 means no interactions.\n */\ninteract.maxInteractions = function (newValue) {\n if (utils.is.number(newValue)) {\n autoStart.maxInteractions = newValue;\n\n return interact;\n }\n\n return autoStart.maxInteractions;\n};\n\nInteractable.settingsMethods.push('styleCursor');\nInteractable.settingsMethods.push('actionChecker');\nInteractable.settingsMethods.push('ignoreFrom');\nInteractable.settingsMethods.push('allowFrom');\n\ndefaultOptions.base.actionChecker = null;\ndefaultOptions.base.styleCursor = true;\n\nutils.extend(defaultOptions.perAction, autoStart.defaults.perAction);\n\nmodule.exports = autoStart;\n\n},{\"../Interactable\":4,\"../Interaction\":5,\"../actions/base\":6,\"../defaultOptions\":18,\"../interact\":21,\"../scope\":33,\"../utils\":44,\"../utils/Signals\":34,\"./InteractableMethods\":12}],14:[function(require,module,exports){\n'use strict';\n\nvar autoStart = require('./base');\nvar scope = require('../scope');\nvar is = require('../utils/is');\n\nvar _require = require('../utils/domUtils'),\n parentNode = _require.parentNode;\n\nautoStart.setActionDefaults(require('../actions/drag'));\n\nautoStart.signals.on('before-start', function (_ref) {\n var interaction = _ref.interaction,\n eventTarget = _ref.eventTarget,\n dx = _ref.dx,\n dy = _ref.dy;\n\n if (interaction.prepared.name !== 'drag') {\n return;\n }\n\n // check if a drag is in the correct axis\n var absX = Math.abs(dx);\n var absY = Math.abs(dy);\n var targetOptions = interaction.target.options.drag;\n var startAxis = targetOptions.startAxis;\n var currentAxis = absX > absY ? 'x' : absX < absY ? 'y' : 'xy';\n\n interaction.prepared.axis = targetOptions.lockAxis === 'start' ? currentAxis[0] // always lock to one axis even if currentAxis === 'xy'\n : targetOptions.lockAxis;\n\n // if the movement isn't in the startAxis of the interactable\n if (currentAxis !== 'xy' && startAxis !== 'xy' && startAxis !== currentAxis) {\n // cancel the prepared action\n interaction.prepared.name = null;\n\n // then try to get a drag from another ineractable\n var element = eventTarget;\n\n var getDraggable = function getDraggable(interactable) {\n if (interactable === interaction.target) {\n return;\n }\n\n var options = interaction.target.options.drag;\n\n if (!options.manualStart && interactable.testIgnoreAllow(options, element, eventTarget)) {\n\n var action = interactable.getAction(interaction.downPointer, interaction.downEvent, interaction, element);\n\n if (action && action.name === 'drag' && checkStartAxis(currentAxis, interactable) && autoStart.validateAction(action, interactable, element, eventTarget)) {\n\n return interactable;\n }\n }\n };\n\n // check all interactables\n while (is.element(element)) {\n var interactable = scope.interactables.forEachMatch(element, getDraggable);\n\n if (interactable) {\n interaction.prepared.name = 'drag';\n interaction.target = interactable;\n interaction.element = element;\n break;\n }\n\n element = parentNode(element);\n }\n }\n});\n\nfunction checkStartAxis(startAxis, interactable) {\n if (!interactable) {\n return false;\n }\n\n var thisAxis = interactable.options.drag.startAxis;\n\n return startAxis === 'xy' || thisAxis === 'xy' || thisAxis === startAxis;\n}\n\n},{\"../actions/drag\":7,\"../scope\":33,\"../utils/domUtils\":39,\"../utils/is\":46,\"./base\":13}],15:[function(require,module,exports){\n'use strict';\n\nrequire('./base').setActionDefaults(require('../actions/gesture'));\n\n},{\"../actions/gesture\":9,\"./base\":13}],16:[function(require,module,exports){\n'use strict';\n\nvar autoStart = require('./base');\nvar Interaction = require('../Interaction');\n\nautoStart.defaults.perAction.hold = 0;\nautoStart.defaults.perAction.delay = 0;\n\nInteraction.signals.on('new', function (interaction) {\n interaction.autoStartHoldTimer = null;\n});\n\nautoStart.signals.on('prepared', function (_ref) {\n var interaction = _ref.interaction;\n\n var hold = getHoldDuration(interaction);\n\n if (hold > 0) {\n interaction.autoStartHoldTimer = setTimeout(function () {\n interaction.start(interaction.prepared, interaction.target, interaction.element);\n }, hold);\n }\n});\n\nInteraction.signals.on('move', function (_ref2) {\n var interaction = _ref2.interaction,\n duplicate = _ref2.duplicate;\n\n if (interaction.pointerWasMoved && !duplicate) {\n clearTimeout(interaction.autoStartHoldTimer);\n }\n});\n\n// prevent regular down->move autoStart\nautoStart.signals.on('before-start', function (_ref3) {\n var interaction = _ref3.interaction;\n\n var hold = getHoldDuration(interaction);\n\n if (hold > 0) {\n interaction.prepared.name = null;\n }\n});\n\nfunction getHoldDuration(interaction) {\n var actionName = interaction.prepared && interaction.prepared.name;\n\n if (!actionName) {\n return null;\n }\n\n var options = interaction.target.options;\n\n return options[actionName].hold || options[actionName].delay;\n}\n\nmodule.exports = {\n getHoldDuration: getHoldDuration\n};\n\n},{\"../Interaction\":5,\"./base\":13}],17:[function(require,module,exports){\n'use strict';\n\nrequire('./base').setActionDefaults(require('../actions/resize'));\n\n},{\"../actions/resize\":10,\"./base\":13}],18:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n base: {\n accept: null,\n preventDefault: 'auto',\n deltaSource: 'page'\n },\n\n perAction: {\n origin: { x: 0, y: 0 },\n\n inertia: {\n enabled: false,\n resistance: 10, // the lambda in exponential decay\n minSpeed: 100, // target speed must be above this for inertia to start\n endSpeed: 10, // the speed at which inertia is slow enough to stop\n allowResume: true, // allow resuming an action in inertia phase\n smoothEndDuration: 300 // animate to snap/restrict endOnly if there's no inertia\n }\n }\n};\n\n},{}],19:[function(require,module,exports){\n'use strict';\n\n/* browser entry point */\n\n// inertia\nrequire('./inertia');\n\n// modifiers\nrequire('./modifiers/snap');\nrequire('./modifiers/restrict');\n\n// pointerEvents\nrequire('./pointerEvents/base');\nrequire('./pointerEvents/holdRepeat');\nrequire('./pointerEvents/interactableTargets');\n\n// autoStart hold\nrequire('./autoStart/hold');\n\n// actions\nrequire('./actions/gesture');\nrequire('./actions/resize');\nrequire('./actions/drag');\nrequire('./actions/drop');\n\n// load these modifiers after resize is loaded\nrequire('./modifiers/snapSize');\nrequire('./modifiers/restrictEdges');\nrequire('./modifiers/restrictSize');\n\n// autoStart actions\nrequire('./autoStart/gesture');\nrequire('./autoStart/resize');\nrequire('./autoStart/drag');\n\n// Interactable preventDefault setting\nrequire('./interactablePreventDefault.js');\n\n// autoScroll\nrequire('./autoScroll');\n\n// export interact\nmodule.exports = require('./interact');\n\n},{\"./actions/drag\":7,\"./actions/drop\":8,\"./actions/gesture\":9,\"./actions/resize\":10,\"./autoScroll\":11,\"./autoStart/drag\":14,\"./autoStart/gesture\":15,\"./autoStart/hold\":16,\"./autoStart/resize\":17,\"./inertia\":20,\"./interact\":21,\"./interactablePreventDefault.js\":22,\"./modifiers/restrict\":24,\"./modifiers/restrictEdges\":25,\"./modifiers/restrictSize\":26,\"./modifiers/snap\":27,\"./modifiers/snapSize\":28,\"./pointerEvents/base\":30,\"./pointerEvents/holdRepeat\":31,\"./pointerEvents/interactableTargets\":32}],20:[function(require,module,exports){\n'use strict';\n\nvar InteractEvent = require('./InteractEvent');\nvar Interaction = require('./Interaction');\nvar modifiers = require('./modifiers/base');\nvar utils = require('./utils');\nvar animationFrame = require('./utils/raf');\n\nInteraction.signals.on('new', function (interaction) {\n interaction.inertiaStatus = {\n active: false,\n smoothEnd: false,\n allowResume: false,\n\n startEvent: null,\n upCoords: {},\n\n xe: 0, ye: 0,\n sx: 0, sy: 0,\n\n t0: 0,\n vx0: 0, vys: 0,\n duration: 0,\n\n lambda_v0: 0,\n one_ve_v0: 0,\n i: null\n };\n\n interaction.boundInertiaFrame = function () {\n return inertiaFrame.apply(interaction);\n };\n interaction.boundSmoothEndFrame = function () {\n return smoothEndFrame.apply(interaction);\n };\n});\n\nInteraction.signals.on('down', function (_ref) {\n var interaction = _ref.interaction,\n event = _ref.event,\n pointer = _ref.pointer,\n eventTarget = _ref.eventTarget;\n\n var status = interaction.inertiaStatus;\n\n // Check if the down event hits the current inertia target\n if (status.active) {\n var element = eventTarget;\n\n // climb up the DOM tree from the event target\n while (utils.is.element(element)) {\n\n // if interaction element is the current inertia target element\n if (element === interaction.element) {\n // stop inertia\n animationFrame.cancel(status.i);\n status.active = false;\n interaction.simulation = null;\n\n // update pointers to the down event's coordinates\n interaction.updatePointer(pointer);\n utils.setCoords(interaction.curCoords, interaction.pointers);\n\n // fire appropriate signals\n var signalArg = { interaction: interaction };\n Interaction.signals.fire('before-action-move', signalArg);\n Interaction.signals.fire('action-resume', signalArg);\n\n // fire a reume event\n var resumeEvent = new InteractEvent(interaction, event, interaction.prepared.name, 'inertiaresume', interaction.element);\n\n interaction.target.fire(resumeEvent);\n interaction.prevEvent = resumeEvent;\n modifiers.resetStatuses(interaction.modifierStatuses);\n\n utils.copyCoords(interaction.prevCoords, interaction.curCoords);\n break;\n }\n\n element = utils.parentNode(element);\n }\n }\n});\n\nInteraction.signals.on('up', function (_ref2) {\n var interaction = _ref2.interaction,\n event = _ref2.event;\n\n var status = interaction.inertiaStatus;\n\n if (!interaction.interacting() || status.active) {\n return;\n }\n\n var target = interaction.target;\n var options = target && target.options;\n var inertiaOptions = options && interaction.prepared.name && options[interaction.prepared.name].inertia;\n\n var now = new Date().getTime();\n var statuses = {};\n var page = utils.extend({}, interaction.curCoords.page);\n var pointerSpeed = interaction.pointerDelta.client.speed;\n\n var smoothEnd = false;\n var modifierResult = void 0;\n\n // check if inertia should be started\n var inertiaPossible = inertiaOptions && inertiaOptions.enabled && interaction.prepared.name !== 'gesture' && event !== status.startEvent;\n\n var inertia = inertiaPossible && now - interaction.curCoords.timeStamp < 50 && pointerSpeed > inertiaOptions.minSpeed && pointerSpeed > inertiaOptions.endSpeed;\n\n var modifierArg = {\n interaction: interaction,\n pageCoords: page,\n statuses: statuses,\n preEnd: true,\n requireEndOnly: true\n };\n\n // smoothEnd\n if (inertiaPossible && !inertia) {\n modifiers.resetStatuses(statuses);\n\n modifierResult = modifiers.setAll(modifierArg);\n\n if (modifierResult.shouldMove && modifierResult.locked) {\n smoothEnd = true;\n }\n }\n\n if (!(inertia || smoothEnd)) {\n return;\n }\n\n utils.copyCoords(status.upCoords, interaction.curCoords);\n\n interaction.pointers[0] = status.startEvent = new InteractEvent(interaction, event, interaction.prepared.name, 'inertiastart', interaction.element);\n\n status.t0 = now;\n\n status.active = true;\n status.allowResume = inertiaOptions.allowResume;\n interaction.simulation = status;\n\n target.fire(status.startEvent);\n\n if (inertia) {\n status.vx0 = interaction.pointerDelta.client.vx;\n status.vy0 = interaction.pointerDelta.client.vy;\n status.v0 = pointerSpeed;\n\n calcInertia(interaction, status);\n\n utils.extend(page, interaction.curCoords.page);\n\n page.x += status.xe;\n page.y += status.ye;\n\n modifiers.resetStatuses(statuses);\n\n modifierResult = modifiers.setAll(modifierArg);\n\n status.modifiedXe += modifierResult.dx;\n status.modifiedYe += modifierResult.dy;\n\n status.i = animationFrame.request(interaction.boundInertiaFrame);\n } else {\n status.smoothEnd = true;\n status.xe = modifierResult.dx;\n status.ye = modifierResult.dy;\n\n status.sx = status.sy = 0;\n\n status.i = animationFrame.request(interaction.boundSmoothEndFrame);\n }\n});\n\nInteraction.signals.on('stop-active', function (_ref3) {\n var interaction = _ref3.interaction;\n\n var status = interaction.inertiaStatus;\n\n if (status.active) {\n animationFrame.cancel(status.i);\n status.active = false;\n interaction.simulation = null;\n }\n});\n\nfunction calcInertia(interaction, status) {\n var inertiaOptions = interaction.target.options[interaction.prepared.name].inertia;\n var lambda = inertiaOptions.resistance;\n var inertiaDur = -Math.log(inertiaOptions.endSpeed / status.v0) / lambda;\n\n status.x0 = interaction.prevEvent.pageX;\n status.y0 = interaction.prevEvent.pageY;\n status.t0 = status.startEvent.timeStamp / 1000;\n status.sx = status.sy = 0;\n\n status.modifiedXe = status.xe = (status.vx0 - inertiaDur) / lambda;\n status.modifiedYe = status.ye = (status.vy0 - inertiaDur) / lambda;\n status.te = inertiaDur;\n\n status.lambda_v0 = lambda / status.v0;\n status.one_ve_v0 = 1 - inertiaOptions.endSpeed / status.v0;\n}\n\nfunction inertiaFrame() {\n updateInertiaCoords(this);\n utils.setCoordDeltas(this.pointerDelta, this.prevCoords, this.curCoords);\n\n var status = this.inertiaStatus;\n var options = this.target.options[this.prepared.name].inertia;\n var lambda = options.resistance;\n var t = new Date().getTime() / 1000 - status.t0;\n\n if (t < status.te) {\n\n var progress = 1 - (Math.exp(-lambda * t) - status.lambda_v0) / status.one_ve_v0;\n\n if (status.modifiedXe === status.xe && status.modifiedYe === status.ye) {\n status.sx = status.xe * progress;\n status.sy = status.ye * progress;\n } else {\n var quadPoint = utils.getQuadraticCurvePoint(0, 0, status.xe, status.ye, status.modifiedXe, status.modifiedYe, progress);\n\n status.sx = quadPoint.x;\n status.sy = quadPoint.y;\n }\n\n this.doMove();\n\n status.i = animationFrame.request(this.boundInertiaFrame);\n } else {\n status.sx = status.modifiedXe;\n status.sy = status.modifiedYe;\n\n this.doMove();\n this.end(status.startEvent);\n status.active = false;\n this.simulation = null;\n }\n\n utils.copyCoords(this.prevCoords, this.curCoords);\n}\n\nfunction smoothEndFrame() {\n updateInertiaCoords(this);\n\n var status = this.inertiaStatus;\n var t = new Date().getTime() - status.t0;\n var duration = this.target.options[this.prepared.name].inertia.smoothEndDuration;\n\n if (t < duration) {\n status.sx = utils.easeOutQuad(t, 0, status.xe, duration);\n status.sy = utils.easeOutQuad(t, 0, status.ye, duration);\n\n this.pointerMove(status.startEvent, status.startEvent);\n\n status.i = animationFrame.request(this.boundSmoothEndFrame);\n } else {\n status.sx = status.xe;\n status.sy = status.ye;\n\n this.pointerMove(status.startEvent, status.startEvent);\n this.end(status.startEvent);\n\n status.smoothEnd = status.active = false;\n this.simulation = null;\n }\n}\n\nfunction updateInertiaCoords(interaction) {\n var status = interaction.inertiaStatus;\n\n // return if inertia isn't running\n if (!status.active) {\n return;\n }\n\n var pageUp = status.upCoords.page;\n var clientUp = status.upCoords.client;\n\n utils.setCoords(interaction.curCoords, [{\n pageX: pageUp.x + status.sx,\n pageY: pageUp.y + status.sy,\n clientX: clientUp.x + status.sx,\n clientY: clientUp.y + status.sy\n }]);\n}\n\n},{\"./InteractEvent\":3,\"./Interaction\":5,\"./modifiers/base\":23,\"./utils\":44,\"./utils/raf\":50}],21:[function(require,module,exports){\n'use strict';\n\n/** @module interact */\n\nvar browser = require('./utils/browser');\nvar events = require('./utils/events');\nvar utils = require('./utils');\nvar scope = require('./scope');\nvar Interactable = require('./Interactable');\nvar Interaction = require('./Interaction');\n\nvar globalEvents = {};\n\n/**\n * ```js\n * interact('#draggable').draggable(true);\n *\n * var rectables = interact('rect');\n * rectables\n * .gesturable(true)\n * .on('gesturemove', function (event) {\n * // ...\n * });\n * ```\n *\n * The methods of this variable can be used to set elements as interactables\n * and also to change various default settings.\n *\n * Calling it as a function and passing an element or a valid CSS selector\n * string returns an Interactable object which has various methods to configure\n * it.\n *\n * @global\n *\n * @param {Element | string} element The HTML or SVG Element to interact with\n * or CSS selector\n * @return {Interactable}\n */\nfunction interact(element, options) {\n var interactable = scope.interactables.get(element, options);\n\n if (!interactable) {\n interactable = new Interactable(element, options);\n interactable.events.global = globalEvents;\n }\n\n return interactable;\n}\n\n/**\n * Check if an element or selector has been set with the {@link interact}\n * function\n *\n * @alias module:interact.isSet\n *\n * @param {Element} element The Element being searched for\n * @return {boolean} Indicates if the element or CSS selector was previously\n * passed to interact\n*/\ninteract.isSet = function (element, options) {\n return scope.interactables.indexOfElement(element, options && options.context) !== -1;\n};\n\n/**\n * Add a global listener for an InteractEvent or adds a DOM event to `document`\n *\n * @alias module:interact.on\n *\n * @param {string | array | object} type The types of events to listen for\n * @param {function} listener The function event (s)\n * @param {object | boolean} [options] object or useCapture flag for\n * addEventListener\n * @return {object} interact\n */\ninteract.on = function (type, listener, options) {\n if (utils.is.string(type) && type.search(' ') !== -1) {\n type = type.trim().split(/ +/);\n }\n\n if (utils.is.array(type)) {\n for (var _i = 0; _i < type.length; _i++) {\n var _ref;\n\n _ref = type[_i];\n var eventType = _ref;\n\n interact.on(eventType, listener, options);\n }\n\n return interact;\n }\n\n if (utils.is.object(type)) {\n for (var prop in type) {\n interact.on(prop, type[prop], listener);\n }\n\n return interact;\n }\n\n // if it is an InteractEvent type, add listener to globalEvents\n if (utils.contains(Interactable.eventTypes, type)) {\n // if this type of event was never bound\n if (!globalEvents[type]) {\n globalEvents[type] = [listener];\n } else {\n globalEvents[type].push(listener);\n }\n }\n // If non InteractEvent type, addEventListener to document\n else {\n events.add(scope.document, type, listener, { options: options });\n }\n\n return interact;\n};\n\n/**\n * Removes a global InteractEvent listener or DOM event from `document`\n *\n * @alias module:interact.off\n *\n * @param {string | array | object} type The types of events that were listened\n * for\n * @param {function} listener The listener function to be removed\n * @param {object | boolean} options [options] object or useCapture flag for\n * removeEventListener\n * @return {object} interact\n */\ninteract.off = function (type, listener, options) {\n if (utils.is.string(type) && type.search(' ') !== -1) {\n type = type.trim().split(/ +/);\n }\n\n if (utils.is.array(type)) {\n for (var _i2 = 0; _i2 < type.length; _i2++) {\n var _ref2;\n\n _ref2 = type[_i2];\n var eventType = _ref2;\n\n interact.off(eventType, listener, options);\n }\n\n return interact;\n }\n\n if (utils.is.object(type)) {\n for (var prop in type) {\n interact.off(prop, type[prop], listener);\n }\n\n return interact;\n }\n\n if (!utils.contains(Interactable.eventTypes, type)) {\n events.remove(scope.document, type, listener, options);\n } else {\n var index = void 0;\n\n if (type in globalEvents && (index = globalEvents[type].indexOf(listener)) !== -1) {\n globalEvents[type].splice(index, 1);\n }\n }\n\n return interact;\n};\n\n/**\n * Returns an object which exposes internal data\n\n * @alias module:interact.debug\n *\n * @return {object} An object with properties that outline the current state\n * and expose internal functions and variables\n */\ninteract.debug = function () {\n return scope;\n};\n\n// expose the functions used to calculate multi-touch properties\ninteract.getPointerAverage = utils.pointerAverage;\ninteract.getTouchBBox = utils.touchBBox;\ninteract.getTouchDistance = utils.touchDistance;\ninteract.getTouchAngle = utils.touchAngle;\n\ninteract.getElementRect = utils.getElementRect;\ninteract.getElementClientRect = utils.getElementClientRect;\ninteract.matchesSelector = utils.matchesSelector;\ninteract.closest = utils.closest;\n\n/**\n * @alias module:interact.supportsTouch\n *\n * @return {boolean} Whether or not the browser supports touch input\n */\ninteract.supportsTouch = function () {\n return browser.supportsTouch;\n};\n\n/**\n * @alias module:interact.supportsPointerEvent\n *\n * @return {boolean} Whether or not the browser supports PointerEvents\n */\ninteract.supportsPointerEvent = function () {\n return browser.supportsPointerEvent;\n};\n\n/**\n * Cancels all interactions (end events are not fired)\n *\n * @alias module:interact.stop\n *\n * @param {Event} event An event on which to call preventDefault()\n * @return {object} interact\n */\ninteract.stop = function (event) {\n for (var i = scope.interactions.length - 1; i >= 0; i--) {\n scope.interactions[i].stop(event);\n }\n\n return interact;\n};\n\n/**\n * Returns or sets the distance the pointer must be moved before an action\n * sequence occurs. This also affects tolerance for tap events.\n *\n * @alias module:interact.pointerMoveTolerance\n *\n * @param {number} [newValue] The movement from the start position must be greater than this value\n * @return {interact | number}\n */\ninteract.pointerMoveTolerance = function (newValue) {\n if (utils.is.number(newValue)) {\n Interaction.pointerMoveTolerance = newValue;\n\n return interact;\n }\n\n return Interaction.pointerMoveTolerance;\n};\n\ninteract.addDocument = scope.addDocument;\ninteract.removeDocument = scope.removeDocument;\n\nscope.interact = interact;\n\nmodule.exports = interact;\n\n},{\"./Interactable\":4,\"./Interaction\":5,\"./scope\":33,\"./utils\":44,\"./utils/browser\":36,\"./utils/events\":40}],22:[function(require,module,exports){\n'use strict';\n\nvar Interactable = require('./Interactable');\nvar Interaction = require('./Interaction');\nvar scope = require('./scope');\nvar is = require('./utils/is');\nvar events = require('./utils/events');\nvar browser = require('./utils/browser');\n\nvar _require = require('./utils/domUtils'),\n nodeContains = _require.nodeContains,\n matchesSelector = _require.matchesSelector;\n\n/**\n * Returns or sets whether to prevent the browser's default behaviour in\n * response to pointer events. Can be set to:\n * - `'always'` to always prevent\n * - `'never'` to never prevent\n * - `'auto'` to let interact.js try to determine what would be best\n *\n * @param {string} [newValue] `true`, `false` or `'auto'`\n * @return {string | Interactable} The current setting or this Interactable\n */\n\n\nInteractable.prototype.preventDefault = function (newValue) {\n if (/^(always|never|auto)$/.test(newValue)) {\n this.options.preventDefault = newValue;\n return this;\n }\n\n if (is.bool(newValue)) {\n this.options.preventDefault = newValue ? 'always' : 'never';\n return this;\n }\n\n return this.options.preventDefault;\n};\n\nInteractable.prototype.checkAndPreventDefault = function (event) {\n var setting = this.options.preventDefault;\n\n if (setting === 'never') {\n return;\n }\n\n if (setting === 'always') {\n event.preventDefault();\n return;\n }\n\n // setting === 'auto'\n\n // don't preventDefault of touch{start,move} events if the browser supports passive\n // events listeners. CSS touch-action and user-selecct should be used instead\n if (events.supportsPassive && /^touch(start|move)$/.test(event.type) && !browser.isIOS) {\n return;\n }\n\n // don't preventDefault of pointerdown events\n if (/^(mouse|pointer|touch)*(down|start)/i.test(event.type)) {\n return;\n }\n\n // don't preventDefault on editable elements\n if (is.element(event.target) && matchesSelector(event.target, 'input,select,textarea,[contenteditable=true],[contenteditable=true] *')) {\n return;\n }\n\n event.preventDefault();\n};\n\nfunction onInteractionEvent(_ref) {\n var interaction = _ref.interaction,\n event = _ref.event;\n\n if (interaction.target) {\n interaction.target.checkAndPreventDefault(event);\n }\n}\n\nvar _arr = ['down', 'move', 'up', 'cancel'];\nfor (var _i = 0; _i < _arr.length; _i++) {\n var eventSignal = _arr[_i];\n Interaction.signals.on(eventSignal, onInteractionEvent);\n}\n\n// prevent native HTML5 drag on interact.js target elements\nInteraction.docEvents.dragstart = function preventNativeDrag(event) {\n for (var _i2 = 0; _i2 < scope.interactions.length; _i2++) {\n var _ref2;\n\n _ref2 = scope.interactions[_i2];\n var interaction = _ref2;\n\n\n if (interaction.element && (interaction.element === event.target || nodeContains(interaction.element, event.target))) {\n\n interaction.target.checkAndPreventDefault(event);\n return;\n }\n }\n};\n\n},{\"./Interactable\":4,\"./Interaction\":5,\"./scope\":33,\"./utils/browser\":36,\"./utils/domUtils\":39,\"./utils/events\":40,\"./utils/is\":46}],23:[function(require,module,exports){\n'use strict';\n\nvar InteractEvent = require('../InteractEvent');\nvar Interaction = require('../Interaction');\nvar extend = require('../utils/extend');\n\nvar modifiers = {\n names: [],\n\n setOffsets: function setOffsets(arg) {\n var interaction = arg.interaction,\n page = arg.pageCoords;\n var target = interaction.target,\n element = interaction.element,\n startOffset = interaction.startOffset;\n\n var rect = target.getRect(element);\n\n if (rect) {\n startOffset.left = page.x - rect.left;\n startOffset.top = page.y - rect.top;\n\n startOffset.right = rect.right - page.x;\n startOffset.bottom = rect.bottom - page.y;\n\n if (!('width' in rect)) {\n rect.width = rect.right - rect.left;\n }\n if (!('height' in rect)) {\n rect.height = rect.bottom - rect.top;\n }\n } else {\n startOffset.left = startOffset.top = startOffset.right = startOffset.bottom = 0;\n }\n\n arg.rect = rect;\n arg.interactable = target;\n arg.element = element;\n\n for (var _i = 0; _i < modifiers.names.length; _i++) {\n var _ref;\n\n _ref = modifiers.names[_i];\n var modifierName = _ref;\n\n arg.options = target.options[interaction.prepared.name][modifierName];\n\n if (!arg.options) {\n continue;\n }\n\n interaction.modifierOffsets[modifierName] = modifiers[modifierName].setOffset(arg);\n }\n },\n\n setAll: function setAll(arg) {\n var interaction = arg.interaction,\n statuses = arg.statuses,\n preEnd = arg.preEnd,\n requireEndOnly = arg.requireEndOnly;\n\n var result = {\n dx: 0,\n dy: 0,\n changed: false,\n locked: false,\n shouldMove: true\n };\n\n arg.modifiedCoords = extend({}, arg.pageCoords);\n\n for (var _i2 = 0; _i2 < modifiers.names.length; _i2++) {\n var _ref2;\n\n _ref2 = modifiers.names[_i2];\n var modifierName = _ref2;\n\n var modifier = modifiers[modifierName];\n var options = interaction.target.options[interaction.prepared.name][modifierName];\n\n if (!shouldDo(options, preEnd, requireEndOnly)) {\n continue;\n }\n\n arg.status = arg.status = statuses[modifierName];\n arg.options = options;\n arg.offset = arg.interaction.modifierOffsets[modifierName];\n\n modifier.set(arg);\n\n if (arg.status.locked) {\n arg.modifiedCoords.x += arg.status.dx;\n arg.modifiedCoords.y += arg.status.dy;\n\n result.dx += arg.status.dx;\n result.dy += arg.status.dy;\n\n result.locked = true;\n }\n }\n\n // a move should be fired if:\n // - there are no modifiers enabled,\n // - no modifiers are \"locked\" i.e. have changed the pointer's coordinates, or\n // - the locked coords have changed since the last pointer move\n result.shouldMove = !arg.status || !result.locked || arg.status.changed;\n\n return result;\n },\n\n resetStatuses: function resetStatuses(statuses) {\n for (var _i3 = 0; _i3 < modifiers.names.length; _i3++) {\n var _ref3;\n\n _ref3 = modifiers.names[_i3];\n var modifierName = _ref3;\n\n var status = statuses[modifierName] || {};\n\n status.dx = status.dy = 0;\n status.modifiedX = status.modifiedY = NaN;\n status.locked = false;\n status.changed = true;\n\n statuses[modifierName] = status;\n }\n\n return statuses;\n },\n\n start: function start(_ref4, signalName) {\n var interaction = _ref4.interaction;\n\n var arg = {\n interaction: interaction,\n pageCoords: (signalName === 'action-resume' ? interaction.curCoords : interaction.startCoords).page,\n startOffset: interaction.startOffset,\n statuses: interaction.modifierStatuses,\n preEnd: false,\n requireEndOnly: false\n };\n\n modifiers.setOffsets(arg);\n modifiers.resetStatuses(arg.statuses);\n\n arg.pageCoords = extend({}, interaction.startCoords.page);\n interaction.modifierResult = modifiers.setAll(arg);\n },\n\n beforeMove: function beforeMove(_ref5) {\n var interaction = _ref5.interaction,\n preEnd = _ref5.preEnd,\n interactingBeforeMove = _ref5.interactingBeforeMove;\n\n var modifierResult = modifiers.setAll({\n interaction: interaction,\n preEnd: preEnd,\n pageCoords: interaction.curCoords.page,\n statuses: interaction.modifierStatuses,\n requireEndOnly: false\n });\n\n // don't fire an action move if a modifier would keep the event in the same\n // cordinates as before\n if (!modifierResult.shouldMove && interactingBeforeMove) {\n interaction._dontFireMove = true;\n }\n\n interaction.modifierResult = modifierResult;\n },\n\n end: function end(_ref6) {\n var interaction = _ref6.interaction,\n event = _ref6.event;\n\n for (var _i4 = 0; _i4 < modifiers.names.length; _i4++) {\n var _ref7;\n\n _ref7 = modifiers.names[_i4];\n var modifierName = _ref7;\n\n var options = interaction.target.options[interaction.prepared.name][modifierName];\n\n // if the endOnly option is true for any modifier\n if (shouldDo(options, true, true)) {\n // fire a move event at the modified coordinates\n interaction.doMove({ event: event, preEnd: true });\n break;\n }\n }\n },\n\n setXY: function setXY(arg) {\n var iEvent = arg.iEvent,\n interaction = arg.interaction;\n\n var modifierArg = extend({}, arg);\n\n for (var i = 0; i < modifiers.names.length; i++) {\n var modifierName = modifiers.names[i];\n modifierArg.options = interaction.target.options[interaction.prepared.name][modifierName];\n\n if (!modifierArg.options) {\n continue;\n }\n\n var modifier = modifiers[modifierName];\n\n modifierArg.status = interaction.modifierStatuses[modifierName];\n\n iEvent[modifierName] = modifier.modifyCoords(modifierArg);\n }\n }\n};\n\nInteraction.signals.on('new', function (interaction) {\n interaction.startOffset = { left: 0, right: 0, top: 0, bottom: 0 };\n interaction.modifierOffsets = {};\n interaction.modifierStatuses = modifiers.resetStatuses({});\n interaction.modifierResult = null;\n});\n\nInteraction.signals.on('action-start', modifiers.start);\nInteraction.signals.on('action-resume', modifiers.start);\nInteraction.signals.on('before-action-move', modifiers.beforeMove);\nInteraction.signals.on('action-end', modifiers.end);\n\nInteractEvent.signals.on('set-xy', modifiers.setXY);\n\nfunction shouldDo(options, preEnd, requireEndOnly) {\n return options && options.enabled && (preEnd || !options.endOnly) && (!requireEndOnly || options.endOnly);\n}\n\nmodule.exports = modifiers;\n\n},{\"../InteractEvent\":3,\"../Interaction\":5,\"../utils/extend\":41}],24:[function(require,module,exports){\n'use strict';\n\nvar modifiers = require('./base');\nvar utils = require('../utils');\nvar defaultOptions = require('../defaultOptions');\n\nvar restrict = {\n defaults: {\n enabled: false,\n endOnly: false,\n restriction: null,\n elementRect: null\n },\n\n setOffset: function setOffset(_ref) {\n var rect = _ref.rect,\n startOffset = _ref.startOffset,\n options = _ref.options;\n\n var elementRect = options && options.elementRect;\n var offset = {};\n\n if (rect && elementRect) {\n offset.left = startOffset.left - rect.width * elementRect.left;\n offset.top = startOffset.top - rect.height * elementRect.top;\n\n offset.right = startOffset.right - rect.width * (1 - elementRect.right);\n offset.bottom = startOffset.bottom - rect.height * (1 - elementRect.bottom);\n } else {\n offset.left = offset.top = offset.right = offset.bottom = 0;\n }\n\n return offset;\n },\n\n set: function set(_ref2) {\n var modifiedCoords = _ref2.modifiedCoords,\n interaction = _ref2.interaction,\n status = _ref2.status,\n options = _ref2.options;\n\n if (!options) {\n return status;\n }\n\n var page = status.useStatusXY ? { x: status.x, y: status.y } : utils.extend({}, modifiedCoords);\n\n var restriction = getRestrictionRect(options.restriction, interaction, page);\n\n if (!restriction) {\n return status;\n }\n\n status.dx = 0;\n status.dy = 0;\n status.locked = false;\n\n var rect = restriction;\n var modifiedX = page.x;\n var modifiedY = page.y;\n\n var offset = interaction.modifierOffsets.restrict;\n\n // object is assumed to have\n // x, y, width, height or\n // left, top, right, bottom\n if ('x' in restriction && 'y' in restriction) {\n modifiedX = Math.max(Math.min(rect.x + rect.width - offset.right, page.x), rect.x + offset.left);\n modifiedY = Math.max(Math.min(rect.y + rect.height - offset.bottom, page.y), rect.y + offset.top);\n } else {\n modifiedX = Math.max(Math.min(rect.right - offset.right, page.x), rect.left + offset.left);\n modifiedY = Math.max(Math.min(rect.bottom - offset.bottom, page.y), rect.top + offset.top);\n }\n\n status.dx = modifiedX - page.x;\n status.dy = modifiedY - page.y;\n\n status.changed = status.modifiedX !== modifiedX || status.modifiedY !== modifiedY;\n status.locked = !!(status.dx || status.dy);\n\n status.modifiedX = modifiedX;\n status.modifiedY = modifiedY;\n },\n\n modifyCoords: function modifyCoords(_ref3) {\n var page = _ref3.page,\n client = _ref3.client,\n status = _ref3.status,\n phase = _ref3.phase,\n options = _ref3.options;\n\n var elementRect = options && options.elementRect;\n\n if (options && options.enabled && !(phase === 'start' && elementRect && status.locked)) {\n\n if (status.locked) {\n page.x += status.dx;\n page.y += status.dy;\n client.x += status.dx;\n client.y += status.dy;\n\n return {\n dx: status.dx,\n dy: status.dy\n };\n }\n }\n },\n\n getRestrictionRect: getRestrictionRect\n};\n\nfunction getRestrictionRect(value, interaction, page) {\n if (utils.is.function(value)) {\n return utils.resolveRectLike(value, interaction.target, interaction.element, [page.x, page.y, interaction]);\n } else {\n return utils.resolveRectLike(value, interaction.target, interaction.element);\n }\n}\n\nmodifiers.restrict = restrict;\nmodifiers.names.push('restrict');\n\ndefaultOptions.perAction.restrict = restrict.defaults;\n\nmodule.exports = restrict;\n\n},{\"../defaultOptions\":18,\"../utils\":44,\"./base\":23}],25:[function(require,module,exports){\n'use strict';\n\n// This module adds the options.resize.restrictEdges setting which sets min and\n// max for the top, left, bottom and right edges of the target being resized.\n//\n// interact(target).resize({\n// edges: { top: true, left: true },\n// restrictEdges: {\n// inner: { top: 200, left: 200, right: 400, bottom: 400 },\n// outer: { top: 0, left: 0, right: 600, bottom: 600 },\n// },\n// });\n\nvar modifiers = require('./base');\nvar utils = require('../utils');\nvar rectUtils = require('../utils/rect');\nvar defaultOptions = require('../defaultOptions');\nvar resize = require('../actions/resize');\n\nvar _require = require('./restrict'),\n getRestrictionRect = _require.getRestrictionRect;\n\nvar noInner = { top: +Infinity, left: +Infinity, bottom: -Infinity, right: -Infinity };\nvar noOuter = { top: -Infinity, left: -Infinity, bottom: +Infinity, right: +Infinity };\n\nvar restrictEdges = {\n defaults: {\n enabled: false,\n endOnly: false,\n min: null,\n max: null,\n offset: null\n },\n\n setOffset: function setOffset(_ref) {\n var interaction = _ref.interaction,\n startOffset = _ref.startOffset,\n options = _ref.options;\n\n if (!options) {\n return utils.extend({}, startOffset);\n }\n\n var offset = getRestrictionRect(options.offset, interaction, interaction.startCoords.page);\n\n if (offset) {\n return {\n top: startOffset.top + offset.y,\n left: startOffset.left + offset.x,\n bottom: startOffset.bottom + offset.y,\n right: startOffset.right + offset.x\n };\n }\n\n return startOffset;\n },\n\n set: function set(_ref2) {\n var modifiedCoords = _ref2.modifiedCoords,\n interaction = _ref2.interaction,\n status = _ref2.status,\n offset = _ref2.offset,\n options = _ref2.options;\n\n var edges = interaction.prepared.linkedEdges || interaction.prepared.edges;\n\n if (!interaction.interacting() || !edges) {\n return;\n }\n\n var page = status.useStatusXY ? { x: status.x, y: status.y } : utils.extend({}, modifiedCoords);\n var inner = rectUtils.xywhToTlbr(getRestrictionRect(options.inner, interaction, page)) || noInner;\n var outer = rectUtils.xywhToTlbr(getRestrictionRect(options.outer, interaction, page)) || noOuter;\n\n var modifiedX = page.x;\n var modifiedY = page.y;\n\n status.dx = 0;\n status.dy = 0;\n status.locked = false;\n\n if (edges.top) {\n modifiedY = Math.min(Math.max(outer.top + offset.top, page.y), inner.top + offset.top);\n } else if (edges.bottom) {\n modifiedY = Math.max(Math.min(outer.bottom - offset.bottom, page.y), inner.bottom - offset.bottom);\n }\n if (edges.left) {\n modifiedX = Math.min(Math.max(outer.left + offset.left, page.x), inner.left + offset.left);\n } else if (edges.right) {\n modifiedX = Math.max(Math.min(outer.right - offset.right, page.x), inner.right - offset.right);\n }\n\n status.dx = modifiedX - page.x;\n status.dy = modifiedY - page.y;\n\n status.changed = status.modifiedX !== modifiedX || status.modifiedY !== modifiedY;\n status.locked = !!(status.dx || status.dy);\n\n status.modifiedX = modifiedX;\n status.modifiedY = modifiedY;\n },\n\n modifyCoords: function modifyCoords(_ref3) {\n var page = _ref3.page,\n client = _ref3.client,\n status = _ref3.status,\n phase = _ref3.phase,\n options = _ref3.options;\n\n if (options && options.enabled && !(phase === 'start' && status.locked)) {\n\n if (status.locked) {\n page.x += status.dx;\n page.y += status.dy;\n client.x += status.dx;\n client.y += status.dy;\n\n return {\n dx: status.dx,\n dy: status.dy\n };\n }\n }\n },\n\n noInner: noInner,\n noOuter: noOuter,\n getRestrictionRect: getRestrictionRect\n};\n\nmodifiers.restrictEdges = restrictEdges;\nmodifiers.names.push('restrictEdges');\n\ndefaultOptions.perAction.restrictEdges = restrictEdges.defaults;\nresize.defaults.restrictEdges = restrictEdges.defaults;\n\nmodule.exports = restrictEdges;\n\n},{\"../actions/resize\":10,\"../defaultOptions\":18,\"../utils\":44,\"../utils/rect\":51,\"./base\":23,\"./restrict\":24}],26:[function(require,module,exports){\n'use strict';\n\n// This module adds the options.resize.restrictSize setting which sets min and\n// max width and height for the target being resized.\n//\n// interact(target).resize({\n// edges: { top: true, left: true },\n// restrictSize: {\n// min: { width: -600, height: -600 },\n// max: { width: 600, height: 600 },\n// },\n// });\n\nvar modifiers = require('./base');\nvar restrictEdges = require('./restrictEdges');\nvar utils = require('../utils');\nvar rectUtils = require('../utils/rect');\nvar defaultOptions = require('../defaultOptions');\nvar resize = require('../actions/resize');\n\nvar noMin = { width: -Infinity, height: -Infinity };\nvar noMax = { width: +Infinity, height: +Infinity };\n\nvar restrictSize = {\n defaults: {\n enabled: false,\n endOnly: false,\n min: null,\n max: null\n },\n\n setOffset: function setOffset(_ref) {\n var interaction = _ref.interaction;\n\n return interaction.startOffset;\n },\n\n set: function set(arg) {\n var interaction = arg.interaction,\n options = arg.options;\n\n var edges = interaction.prepared.linkedEdges || interaction.prepared.edges;\n\n if (!interaction.interacting() || !edges) {\n return;\n }\n\n var rect = rectUtils.xywhToTlbr(interaction.resizeRects.inverted);\n\n var minSize = rectUtils.tlbrToXywh(restrictEdges.getRestrictionRect(options.min, interaction)) || noMin;\n var maxSize = rectUtils.tlbrToXywh(restrictEdges.getRestrictionRect(options.max, interaction)) || noMax;\n\n arg.options = {\n enabled: options.enabled,\n endOnly: options.endOnly,\n inner: utils.extend({}, restrictEdges.noInner),\n outer: utils.extend({}, restrictEdges.noOuter)\n };\n\n if (edges.top) {\n arg.options.inner.top = rect.bottom - minSize.height;\n arg.options.outer.top = rect.bottom - maxSize.height;\n } else if (edges.bottom) {\n arg.options.inner.bottom = rect.top + minSize.height;\n arg.options.outer.bottom = rect.top + maxSize.height;\n }\n if (edges.left) {\n arg.options.inner.left = rect.right - minSize.width;\n arg.options.outer.left = rect.right - maxSize.width;\n } else if (edges.right) {\n arg.options.inner.right = rect.left + minSize.width;\n arg.options.outer.right = rect.left + maxSize.width;\n }\n\n restrictEdges.set(arg);\n },\n\n modifyCoords: restrictEdges.modifyCoords\n};\n\nmodifiers.restrictSize = restrictSize;\nmodifiers.names.push('restrictSize');\n\ndefaultOptions.perAction.restrictSize = restrictSize.defaults;\nresize.defaults.restrictSize = restrictSize.defaults;\n\nmodule.exports = restrictSize;\n\n},{\"../actions/resize\":10,\"../defaultOptions\":18,\"../utils\":44,\"../utils/rect\":51,\"./base\":23,\"./restrictEdges\":25}],27:[function(require,module,exports){\n'use strict';\n\nvar modifiers = require('./base');\nvar interact = require('../interact');\nvar utils = require('../utils');\nvar defaultOptions = require('../defaultOptions');\n\nvar snap = {\n defaults: {\n enabled: false,\n endOnly: false,\n range: Infinity,\n targets: null,\n offsets: null,\n\n relativePoints: null\n },\n\n setOffset: function setOffset(_ref) {\n var interaction = _ref.interaction,\n interactable = _ref.interactable,\n element = _ref.element,\n rect = _ref.rect,\n startOffset = _ref.startOffset,\n options = _ref.options;\n\n var offsets = [];\n var optionsOrigin = utils.rectToXY(utils.resolveRectLike(options.origin));\n var origin = optionsOrigin || utils.getOriginXY(interactable, element, interaction.prepared.name);\n options = options || interactable.options[interaction.prepared.name].snap || {};\n\n var snapOffset = void 0;\n\n if (options.offset === 'startCoords') {\n snapOffset = {\n x: interaction.startCoords.page.x - origin.x,\n y: interaction.startCoords.page.y - origin.y\n };\n } else {\n var offsetRect = utils.resolveRectLike(options.offset, interactable, element, [interaction]);\n\n snapOffset = utils.rectToXY(offsetRect) || { x: 0, y: 0 };\n }\n\n if (rect && options.relativePoints && options.relativePoints.length) {\n for (var _i = 0; _i < options.relativePoints.length; _i++) {\n var _ref3;\n\n _ref3 = options.relativePoints[_i];\n var _ref2 = _ref3;\n var relativeX = _ref2.x;\n var relativeY = _ref2.y;\n\n offsets.push({\n x: startOffset.left - rect.width * relativeX + snapOffset.x,\n y: startOffset.top - rect.height * relativeY + snapOffset.y\n });\n }\n } else {\n offsets.push(snapOffset);\n }\n\n return offsets;\n },\n\n set: function set(_ref4) {\n var interaction = _ref4.interaction,\n modifiedCoords = _ref4.modifiedCoords,\n status = _ref4.status,\n options = _ref4.options,\n offsets = _ref4.offset;\n\n var targets = [];\n var target = void 0;\n var page = void 0;\n var i = void 0;\n\n if (status.useStatusXY) {\n page = { x: status.x, y: status.y };\n } else {\n var origin = utils.getOriginXY(interaction.target, interaction.element, interaction.prepared.name);\n\n page = utils.extend({}, modifiedCoords);\n\n page.x -= origin.x;\n page.y -= origin.y;\n }\n\n status.realX = page.x;\n status.realY = page.y;\n\n var len = options.targets ? options.targets.length : 0;\n\n for (var _i2 = 0; _i2 < offsets.length; _i2++) {\n var _ref6;\n\n _ref6 = offsets[_i2];\n var _ref5 = _ref6;\n var offsetX = _ref5.x;\n var offsetY = _ref5.y;\n\n var relativeX = page.x - offsetX;\n var relativeY = page.y - offsetY;\n\n for (var _i3 = 0; _i3 < (options.targets || []).length; _i3++) {\n var _ref7;\n\n _ref7 = (options.targets || [])[_i3];\n var snapTarget = _ref7;\n\n if (utils.is.function(snapTarget)) {\n target = snapTarget(relativeX, relativeY, interaction);\n } else {\n target = snapTarget;\n }\n\n if (!target) {\n continue;\n }\n\n targets.push({\n x: utils.is.number(target.x) ? target.x + offsetX : relativeX,\n y: utils.is.number(target.y) ? target.y + offsetY : relativeY,\n\n range: utils.is.number(target.range) ? target.range : options.range\n });\n }\n }\n\n var closest = {\n target: null,\n inRange: false,\n distance: 0,\n range: 0,\n dx: 0,\n dy: 0\n };\n\n for (i = 0, len = targets.length; i < len; i++) {\n target = targets[i];\n\n var range = target.range;\n var dx = target.x - page.x;\n var dy = target.y - page.y;\n var distance = utils.hypot(dx, dy);\n var inRange = distance <= range;\n\n // Infinite targets count as being out of range\n // compared to non infinite ones that are in range\n if (range === Infinity && closest.inRange && closest.range !== Infinity) {\n inRange = false;\n }\n\n if (!closest.target || (inRange\n // is the closest target in range?\n ? closest.inRange && range !== Infinity\n // the pointer is relatively deeper in this target\n ? distance / range < closest.distance / closest.range\n // this target has Infinite range and the closest doesn't\n : range === Infinity && closest.range !== Infinity ||\n // OR this target is closer that the previous closest\n distance < closest.distance :\n // The other is not in range and the pointer is closer to this target\n !closest.inRange && distance < closest.distance)) {\n\n closest.target = target;\n closest.distance = distance;\n closest.range = range;\n closest.inRange = inRange;\n closest.dx = dx;\n closest.dy = dy;\n\n status.range = range;\n }\n }\n\n var snapChanged = void 0;\n\n if (closest.target) {\n snapChanged = status.modifiedX !== closest.target.x || status.modifiedY !== closest.target.y;\n\n status.modifiedX = closest.target.x;\n status.modifiedY = closest.target.y;\n } else {\n snapChanged = true;\n\n status.modifiedX = NaN;\n status.modifiedY = NaN;\n }\n\n status.dx = closest.dx;\n status.dy = closest.dy;\n\n status.changed = snapChanged || closest.inRange && !status.locked;\n status.locked = closest.inRange;\n },\n\n modifyCoords: function modifyCoords(_ref8) {\n var page = _ref8.page,\n client = _ref8.client,\n status = _ref8.status,\n phase = _ref8.phase,\n options = _ref8.options;\n\n var relativePoints = options && options.relativePoints;\n\n if (options && options.enabled && !(phase === 'start' && relativePoints && relativePoints.length)) {\n\n if (status.locked) {\n page.x += status.dx;\n page.y += status.dy;\n client.x += status.dx;\n client.y += status.dy;\n }\n\n return {\n range: status.range,\n locked: status.locked,\n x: status.modifiedX,\n y: status.modifiedY,\n realX: status.realX,\n realY: status.realY,\n dx: status.dx,\n dy: status.dy\n };\n }\n }\n};\n\ninteract.createSnapGrid = function (grid) {\n return function (x, y) {\n var limits = grid.limits || {\n left: -Infinity,\n right: Infinity,\n top: -Infinity,\n bottom: Infinity\n };\n var offsetX = 0;\n var offsetY = 0;\n\n if (utils.is.object(grid.offset)) {\n offsetX = grid.offset.x;\n offsetY = grid.offset.y;\n }\n\n var gridx = Math.round((x - offsetX) / grid.x);\n var gridy = Math.round((y - offsetY) / grid.y);\n\n var newX = Math.max(limits.left, Math.min(limits.right, gridx * grid.x + offsetX));\n var newY = Math.max(limits.top, Math.min(limits.bottom, gridy * grid.y + offsetY));\n\n return {\n x: newX,\n y: newY,\n range: grid.range\n };\n };\n};\n\nmodifiers.snap = snap;\nmodifiers.names.push('snap');\n\ndefaultOptions.perAction.snap = snap.defaults;\n\nmodule.exports = snap;\n\n},{\"../defaultOptions\":18,\"../interact\":21,\"../utils\":44,\"./base\":23}],28:[function(require,module,exports){\n'use strict';\n\n// This module allows snapping of the size of targets during resize\n// interactions.\n\nvar modifiers = require('./base');\nvar snap = require('./snap');\nvar defaultOptions = require('../defaultOptions');\nvar resize = require('../actions/resize');\nvar utils = require('../utils/');\n\nvar snapSize = {\n defaults: {\n enabled: false,\n endOnly: false,\n range: Infinity,\n targets: null,\n offsets: null\n },\n\n setOffset: function setOffset(arg) {\n var interaction = arg.interaction,\n options = arg.options;\n\n var edges = interaction.prepared.edges;\n\n if (!edges) {\n return;\n }\n\n arg.options = {\n relativePoints: [{\n x: edges.left ? 0 : 1,\n y: edges.top ? 0 : 1\n }],\n origin: { x: 0, y: 0 },\n offset: 'self',\n range: options.range\n };\n\n var offsets = snap.setOffset(arg);\n arg.options = options;\n\n return offsets;\n },\n\n set: function set(arg) {\n var interaction = arg.interaction,\n options = arg.options,\n offset = arg.offset,\n modifiedCoords = arg.modifiedCoords;\n\n var page = utils.extend({}, modifiedCoords);\n var relativeX = page.x - offset[0].x;\n var relativeY = page.y - offset[0].y;\n\n arg.options = utils.extend({}, options);\n arg.options.targets = [];\n\n for (var _i = 0; _i < (options.targets || []).length; _i++) {\n var _ref;\n\n _ref = (options.targets || [])[_i];\n var snapTarget = _ref;\n\n var target = void 0;\n\n if (utils.is.function(snapTarget)) {\n target = snapTarget(relativeX, relativeY, interaction);\n } else {\n target = snapTarget;\n }\n\n if (!target) {\n continue;\n }\n\n if ('width' in target && 'height' in target) {\n target.x = target.width;\n target.y = target.height;\n }\n\n arg.options.targets.push(target);\n }\n\n snap.set(arg);\n },\n\n modifyCoords: function modifyCoords(arg) {\n var options = arg.options;\n\n\n arg.options = utils.extend({}, options);\n arg.options.enabled = options.enabled;\n arg.options.relativePoints = [null];\n\n snap.modifyCoords(arg);\n }\n};\n\nmodifiers.snapSize = snapSize;\nmodifiers.names.push('snapSize');\n\ndefaultOptions.perAction.snapSize = snapSize.defaults;\nresize.defaults.snapSize = snapSize.defaults;\n\nmodule.exports = snapSize;\n\n},{\"../actions/resize\":10,\"../defaultOptions\":18,\"../utils/\":44,\"./base\":23,\"./snap\":27}],29:[function(require,module,exports){\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar pointerUtils = require('../utils/pointerUtils');\n\nmodule.exports = function () {\n /** */\n function PointerEvent(type, pointer, event, eventTarget, interaction) {\n _classCallCheck(this, PointerEvent);\n\n pointerUtils.pointerExtend(this, event);\n\n if (event !== pointer) {\n pointerUtils.pointerExtend(this, pointer);\n }\n\n this.interaction = interaction;\n\n this.timeStamp = new Date().getTime();\n this.originalEvent = event;\n this.type = type;\n this.pointerId = pointerUtils.getPointerId(pointer);\n this.pointerType = pointerUtils.getPointerType(pointer);\n this.target = eventTarget;\n this.currentTarget = null;\n\n if (type === 'tap') {\n var pointerIndex = interaction.getPointerIndex(pointer);\n this.dt = this.timeStamp - interaction.downTimes[pointerIndex];\n\n var interval = this.timeStamp - interaction.tapTime;\n\n this.double = !!(interaction.prevTap && interaction.prevTap.type !== 'doubletap' && interaction.prevTap.target === this.target && interval < 500);\n } else if (type === 'doubletap') {\n this.dt = pointer.timeStamp - interaction.tapTime;\n }\n }\n\n PointerEvent.prototype.subtractOrigin = function subtractOrigin(_ref) {\n var originX = _ref.x,\n originY = _ref.y;\n\n this.pageX -= originX;\n this.pageY -= originY;\n this.clientX -= originX;\n this.clientY -= originY;\n\n return this;\n };\n\n PointerEvent.prototype.addOrigin = function addOrigin(_ref2) {\n var originX = _ref2.x,\n originY = _ref2.y;\n\n this.pageX += originX;\n this.pageY += originY;\n this.clientX += originX;\n this.clientY += originY;\n\n return this;\n };\n\n /** */\n\n\n PointerEvent.prototype.preventDefault = function preventDefault() {\n this.originalEvent.preventDefault();\n };\n\n /** */\n\n\n PointerEvent.prototype.stopPropagation = function stopPropagation() {\n this.propagationStopped = true;\n };\n\n /** */\n\n\n PointerEvent.prototype.stopImmediatePropagation = function stopImmediatePropagation() {\n this.immediatePropagationStopped = this.propagationStopped = true;\n };\n\n return PointerEvent;\n}();\n\n},{\"../utils/pointerUtils\":49}],30:[function(require,module,exports){\n'use strict';\n\nvar PointerEvent = require('./PointerEvent');\nvar Interaction = require('../Interaction');\nvar utils = require('../utils');\nvar defaults = require('../defaultOptions');\nvar signals = require('../utils/Signals').new();\n\nvar simpleSignals = ['down', 'up', 'cancel'];\nvar simpleEvents = ['down', 'up', 'cancel'];\n\nvar pointerEvents = {\n PointerEvent: PointerEvent,\n fire: fire,\n collectEventTargets: collectEventTargets,\n signals: signals,\n defaults: {\n holdDuration: 600,\n ignoreFrom: null,\n allowFrom: null,\n origin: { x: 0, y: 0 }\n },\n types: ['down', 'move', 'up', 'cancel', 'tap', 'doubletap', 'hold']\n};\n\nfunction fire(arg) {\n var interaction = arg.interaction,\n pointer = arg.pointer,\n event = arg.event,\n eventTarget = arg.eventTarget,\n _arg$type = arg.type,\n type = _arg$type === undefined ? arg.pointerEvent.type : _arg$type,\n _arg$targets = arg.targets,\n targets = _arg$targets === undefined ? collectEventTargets(arg) : _arg$targets,\n _arg$pointerEvent = arg.pointerEvent,\n pointerEvent = _arg$pointerEvent === undefined ? new PointerEvent(type, pointer, event, eventTarget, interaction) : _arg$pointerEvent;\n\n\n var signalArg = {\n interaction: interaction,\n pointer: pointer,\n event: event,\n eventTarget: eventTarget,\n targets: targets,\n type: type,\n pointerEvent: pointerEvent\n };\n\n for (var i = 0; i < targets.length; i++) {\n var target = targets[i];\n\n for (var prop in target.props || {}) {\n pointerEvent[prop] = target.props[prop];\n }\n\n var origin = utils.getOriginXY(target.eventable, target.element);\n\n pointerEvent.subtractOrigin(origin);\n pointerEvent.eventable = target.eventable;\n pointerEvent.currentTarget = target.element;\n\n target.eventable.fire(pointerEvent);\n\n pointerEvent.addOrigin(origin);\n\n if (pointerEvent.immediatePropagationStopped || pointerEvent.propagationStopped && i + 1 < targets.length && targets[i + 1].element !== pointerEvent.currentTarget) {\n break;\n }\n }\n\n signals.fire('fired', signalArg);\n\n if (type === 'tap') {\n // if pointerEvent should make a double tap, create and fire a doubletap\n // PointerEvent and use that as the prevTap\n var prevTap = pointerEvent.double ? fire({\n interaction: interaction, pointer: pointer, event: event, eventTarget: eventTarget,\n type: 'doubletap'\n }) : pointerEvent;\n\n interaction.prevTap = prevTap;\n interaction.tapTime = prevTap.timeStamp;\n }\n\n return pointerEvent;\n}\n\nfunction collectEventTargets(_ref) {\n var interaction = _ref.interaction,\n pointer = _ref.pointer,\n event = _ref.event,\n eventTarget = _ref.eventTarget,\n type = _ref.type;\n\n var pointerIndex = interaction.getPointerIndex(pointer);\n\n // do not fire a tap event if the pointer was moved before being lifted\n if (type === 'tap' && (interaction.pointerWasMoved\n // or if the pointerup target is different to the pointerdown target\n || !(interaction.downTargets[pointerIndex] && interaction.downTargets[pointerIndex] === eventTarget))) {\n return [];\n }\n\n var path = utils.getPath(eventTarget);\n var signalArg = {\n interaction: interaction,\n pointer: pointer,\n event: event,\n eventTarget: eventTarget,\n type: type,\n path: path,\n targets: [],\n element: null\n };\n\n for (var _i = 0; _i < path.length; _i++) {\n var _ref2;\n\n _ref2 = path[_i];\n var element = _ref2;\n\n signalArg.element = element;\n\n signals.fire('collect-targets', signalArg);\n }\n\n if (type === 'hold') {\n signalArg.targets = signalArg.targets.filter(function (target) {\n return target.eventable.options.holdDuration === interaction.holdTimers[pointerIndex].duration;\n });\n }\n\n return signalArg.targets;\n}\n\nInteraction.signals.on('update-pointer-down', function (_ref3) {\n var interaction = _ref3.interaction,\n pointerIndex = _ref3.pointerIndex;\n\n interaction.holdTimers[pointerIndex] = { duration: Infinity, timeout: null };\n});\n\nInteraction.signals.on('remove-pointer', function (_ref4) {\n var interaction = _ref4.interaction,\n pointerIndex = _ref4.pointerIndex;\n\n interaction.holdTimers.splice(pointerIndex, 1);\n});\n\nInteraction.signals.on('move', function (_ref5) {\n var interaction = _ref5.interaction,\n pointer = _ref5.pointer,\n event = _ref5.event,\n eventTarget = _ref5.eventTarget,\n duplicateMove = _ref5.duplicateMove;\n\n var pointerIndex = interaction.getPointerIndex(pointer);\n\n if (!duplicateMove && (!interaction.pointerIsDown || interaction.pointerWasMoved)) {\n if (interaction.pointerIsDown) {\n clearTimeout(interaction.holdTimers[pointerIndex].timeout);\n }\n\n fire({\n interaction: interaction, pointer: pointer, event: event, eventTarget: eventTarget,\n type: 'move'\n });\n }\n});\n\nInteraction.signals.on('down', function (_ref6) {\n var interaction = _ref6.interaction,\n pointer = _ref6.pointer,\n event = _ref6.event,\n eventTarget = _ref6.eventTarget,\n pointerIndex = _ref6.pointerIndex;\n\n var timer = interaction.holdTimers[pointerIndex];\n var path = utils.getPath(eventTarget);\n var signalArg = {\n interaction: interaction,\n pointer: pointer,\n event: event,\n eventTarget: eventTarget,\n type: 'hold',\n targets: [],\n path: path,\n element: null\n };\n\n for (var _i2 = 0; _i2 < path.length; _i2++) {\n var _ref7;\n\n _ref7 = path[_i2];\n var element = _ref7;\n\n signalArg.element = element;\n\n signals.fire('collect-targets', signalArg);\n }\n\n if (!signalArg.targets.length) {\n return;\n }\n\n var minDuration = Infinity;\n\n for (var _i3 = 0; _i3 < signalArg.targets.length; _i3++) {\n var _ref8;\n\n _ref8 = signalArg.targets[_i3];\n var target = _ref8;\n\n var holdDuration = target.eventable.options.holdDuration;\n\n if (holdDuration < minDuration) {\n minDuration = holdDuration;\n }\n }\n\n timer.duration = minDuration;\n timer.timeout = setTimeout(function () {\n fire({\n interaction: interaction,\n eventTarget: eventTarget,\n pointer: pointer,\n event: event,\n type: 'hold'\n });\n }, minDuration);\n});\n\nInteraction.signals.on('up', function (_ref9) {\n var interaction = _ref9.interaction,\n pointer = _ref9.pointer,\n event = _ref9.event,\n eventTarget = _ref9.eventTarget;\n\n if (!interaction.pointerWasMoved) {\n fire({ interaction: interaction, eventTarget: eventTarget, pointer: pointer, event: event, type: 'tap' });\n }\n});\n\nvar _arr = ['up', 'cancel'];\nfor (var _i4 = 0; _i4 < _arr.length; _i4++) {\n var signalName = _arr[_i4];\n Interaction.signals.on(signalName, function (_ref11) {\n var interaction = _ref11.interaction,\n pointerIndex = _ref11.pointerIndex;\n\n if (interaction.holdTimers[pointerIndex]) {\n clearTimeout(interaction.holdTimers[pointerIndex].timeout);\n }\n });\n}\n\nfunction createSignalListener(type) {\n return function (_ref10) {\n var interaction = _ref10.interaction,\n pointer = _ref10.pointer,\n event = _ref10.event,\n eventTarget = _ref10.eventTarget;\n\n fire({ interaction: interaction, eventTarget: eventTarget, pointer: pointer, event: event, type: type });\n };\n}\n\nfor (var i = 0; i < simpleSignals.length; i++) {\n Interaction.signals.on(simpleSignals[i], createSignalListener(simpleEvents[i]));\n}\n\nInteraction.signals.on('new', function (interaction) {\n interaction.prevTap = null; // the most recent tap event on this interaction\n interaction.tapTime = 0; // time of the most recent tap event\n interaction.holdTimers = []; // [{ duration, timeout }]\n});\n\ndefaults.pointerEvents = pointerEvents.defaults;\nmodule.exports = pointerEvents;\n\n},{\"../Interaction\":5,\"../defaultOptions\":18,\"../utils\":44,\"../utils/Signals\":34,\"./PointerEvent\":29}],31:[function(require,module,exports){\n'use strict';\n\nvar pointerEvents = require('./base');\nvar Interaction = require('../Interaction');\n\npointerEvents.signals.on('new', onNew);\npointerEvents.signals.on('fired', onFired);\n\nvar _arr = ['move', 'up', 'cancel', 'endall'];\nfor (var _i = 0; _i < _arr.length; _i++) {\n var signal = _arr[_i];\n Interaction.signals.on(signal, endHoldRepeat);\n}\n\nfunction onNew(_ref) {\n var pointerEvent = _ref.pointerEvent;\n\n if (pointerEvent.type !== 'hold') {\n return;\n }\n\n pointerEvent.count = (pointerEvent.count || 0) + 1;\n}\n\nfunction onFired(_ref2) {\n var interaction = _ref2.interaction,\n pointerEvent = _ref2.pointerEvent,\n eventTarget = _ref2.eventTarget,\n targets = _ref2.targets;\n\n if (pointerEvent.type !== 'hold' || !targets.length) {\n return;\n }\n\n // get the repeat interval from the first eventable\n var interval = targets[0].eventable.options.holdRepeatInterval;\n\n // don't repeat if the interval is 0 or less\n if (interval <= 0) {\n return;\n }\n\n // set a timeout to fire the holdrepeat event\n interaction.holdIntervalHandle = setTimeout(function () {\n pointerEvents.fire({\n interaction: interaction,\n eventTarget: eventTarget,\n type: 'hold',\n pointer: pointerEvent,\n event: pointerEvent\n });\n }, interval);\n}\n\nfunction endHoldRepeat(_ref3) {\n var interaction = _ref3.interaction;\n\n // set the interaction's holdStopTime property\n // to stop further holdRepeat events\n if (interaction.holdIntervalHandle) {\n clearInterval(interaction.holdIntervalHandle);\n interaction.holdIntervalHandle = null;\n }\n}\n\n// don't repeat by default\npointerEvents.defaults.holdRepeatInterval = 0;\npointerEvents.types.push('holdrepeat');\n\nmodule.exports = {\n onNew: onNew,\n onFired: onFired,\n endHoldRepeat: endHoldRepeat\n};\n\n},{\"../Interaction\":5,\"./base\":30}],32:[function(require,module,exports){\n'use strict';\n\nvar pointerEvents = require('./base');\nvar Interactable = require('../Interactable');\nvar is = require('../utils/is');\nvar scope = require('../scope');\nvar extend = require('../utils/extend');\n\nvar _require = require('../utils/arr'),\n merge = _require.merge;\n\npointerEvents.signals.on('collect-targets', function (_ref) {\n var targets = _ref.targets,\n element = _ref.element,\n type = _ref.type,\n eventTarget = _ref.eventTarget;\n\n scope.interactables.forEachMatch(element, function (interactable) {\n var eventable = interactable.events;\n var options = eventable.options;\n\n if (eventable[type] && is.element(element) && interactable.testIgnoreAllow(options, element, eventTarget)) {\n\n targets.push({\n element: element,\n eventable: eventable,\n props: { interactable: interactable }\n });\n }\n });\n});\n\nInteractable.signals.on('new', function (_ref2) {\n var interactable = _ref2.interactable;\n\n interactable.events.getRect = function (element) {\n return interactable.getRect(element);\n };\n});\n\nInteractable.signals.on('set', function (_ref3) {\n var interactable = _ref3.interactable,\n options = _ref3.options;\n\n extend(interactable.events.options, pointerEvents.defaults);\n extend(interactable.events.options, options);\n});\n\nmerge(Interactable.eventTypes, pointerEvents.types);\n\nInteractable.prototype.pointerEvents = function (options) {\n extend(this.events.options, options);\n\n return this;\n};\n\nvar __backCompatOption = Interactable.prototype._backCompatOption;\n\nInteractable.prototype._backCompatOption = function (optionName, newValue) {\n var ret = __backCompatOption.call(this, optionName, newValue);\n\n if (ret === this) {\n this.events.options[optionName] = newValue;\n }\n\n return ret;\n};\n\nInteractable.settingsMethods.push('pointerEvents');\n\n},{\"../Interactable\":4,\"../scope\":33,\"../utils/arr\":35,\"../utils/extend\":41,\"../utils/is\":46,\"./base\":30}],33:[function(require,module,exports){\n'use strict';\n\nvar utils = require('./utils');\nvar events = require('./utils/events');\nvar signals = require('./utils/Signals').new();\n\nvar _require = require('./utils/window'),\n getWindow = _require.getWindow;\n\nvar scope = {\n signals: signals,\n events: events,\n utils: utils,\n\n // main document\n document: require('./utils/domObjects').document,\n // all documents being listened to\n documents: [],\n\n addDocument: function addDocument(doc, win) {\n // do nothing if document is already known\n if (utils.contains(scope.documents, doc)) {\n return false;\n }\n\n win = win || getWindow(doc);\n\n scope.documents.push(doc);\n events.documents.push(doc);\n\n // don't add an unload event for the main document\n // so that the page may be cached in browser history\n if (doc !== scope.document) {\n events.add(win, 'unload', scope.onWindowUnload);\n }\n\n signals.fire('add-document', { doc: doc, win: win });\n },\n\n removeDocument: function removeDocument(doc, win) {\n var index = scope.documents.indexOf(doc);\n\n win = win || getWindow(doc);\n\n events.remove(win, 'unload', scope.onWindowUnload);\n\n scope.documents.splice(index, 1);\n events.documents.splice(index, 1);\n\n signals.fire('remove-document', { win: win, doc: doc });\n },\n\n onWindowUnload: function onWindowUnload() {\n scope.removeDocument(this.document, this);\n }\n};\n\nmodule.exports = scope;\n\n},{\"./utils\":44,\"./utils/Signals\":34,\"./utils/domObjects\":38,\"./utils/events\":40,\"./utils/window\":52}],34:[function(require,module,exports){\n\"use strict\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Signals = function () {\n function Signals() {\n _classCallCheck(this, Signals);\n\n this.listeners = {\n // signalName: [listeners],\n };\n }\n\n Signals.prototype.on = function on(name, listener) {\n if (!this.listeners[name]) {\n this.listeners[name] = [listener];\n return;\n }\n\n this.listeners[name].push(listener);\n };\n\n Signals.prototype.off = function off(name, listener) {\n if (!this.listeners[name]) {\n return;\n }\n\n var index = this.listeners[name].indexOf(listener);\n\n if (index !== -1) {\n this.listeners[name].splice(index, 1);\n }\n };\n\n Signals.prototype.fire = function fire(name, arg) {\n var targetListeners = this.listeners[name];\n\n if (!targetListeners) {\n return;\n }\n\n for (var _i = 0; _i < targetListeners.length; _i++) {\n var _ref;\n\n _ref = targetListeners[_i];\n var listener = _ref;\n\n if (listener(arg, name) === false) {\n return;\n }\n }\n };\n\n return Signals;\n}();\n\nSignals.new = function () {\n return new Signals();\n};\n\nmodule.exports = Signals;\n\n},{}],35:[function(require,module,exports){\n\"use strict\";\n\nfunction contains(array, target) {\n return array.indexOf(target) !== -1;\n}\n\nfunction merge(target, source) {\n for (var _i = 0; _i < source.length; _i++) {\n var _ref;\n\n _ref = source[_i];\n var item = _ref;\n\n target.push(item);\n }\n\n return target;\n}\n\nmodule.exports = {\n contains: contains,\n merge: merge\n};\n\n},{}],36:[function(require,module,exports){\n'use strict';\n\nvar _require = require('./window'),\n window = _require.window;\n\nvar is = require('./is');\nvar domObjects = require('./domObjects');\n\nvar Element = domObjects.Element;\nvar navigator = window.navigator;\n\nvar browser = {\n // Does the browser support touch input?\n supportsTouch: !!('ontouchstart' in window || is.function(window.DocumentTouch) && domObjects.document instanceof window.DocumentTouch),\n\n // Does the browser support PointerEvents\n supportsPointerEvent: !!domObjects.PointerEvent,\n\n isIOS: /iP(hone|od|ad)/.test(navigator.platform),\n\n // scrolling doesn't change the result of getClientRects on iOS 7\n isIOS7: /iP(hone|od|ad)/.test(navigator.platform) && /OS 7[^\\d]/.test(navigator.appVersion),\n\n isIe9: /MSIE 9/.test(navigator.userAgent),\n\n // prefix matchesSelector\n prefixedMatchesSelector: 'matches' in Element.prototype ? 'matches' : 'webkitMatchesSelector' in Element.prototype ? 'webkitMatchesSelector' : 'mozMatchesSelector' in Element.prototype ? 'mozMatchesSelector' : 'oMatchesSelector' in Element.prototype ? 'oMatchesSelector' : 'msMatchesSelector',\n\n pEventTypes: domObjects.PointerEvent ? domObjects.PointerEvent === window.MSPointerEvent ? {\n up: 'MSPointerUp',\n down: 'MSPointerDown',\n over: 'mouseover',\n out: 'mouseout',\n move: 'MSPointerMove',\n cancel: 'MSPointerCancel'\n } : {\n up: 'pointerup',\n down: 'pointerdown',\n over: 'pointerover',\n out: 'pointerout',\n move: 'pointermove',\n cancel: 'pointercancel'\n } : null,\n\n // because Webkit and Opera still use 'mousewheel' event type\n wheelEvent: 'onmousewheel' in domObjects.document ? 'mousewheel' : 'wheel'\n\n};\n\n// Opera Mobile must be handled differently\nbrowser.isOperaMobile = navigator.appName === 'Opera' && browser.supportsTouch && navigator.userAgent.match('Presto');\n\nmodule.exports = browser;\n\n},{\"./domObjects\":38,\"./is\":46,\"./window\":52}],37:[function(require,module,exports){\n'use strict';\n\nvar is = require('./is');\n\nmodule.exports = function clone(source) {\n var dest = {};\n for (var prop in source) {\n if (is.plainObject(source[prop])) {\n dest[prop] = clone(source[prop]);\n } else {\n dest[prop] = source[prop];\n }\n }\n return dest;\n};\n\n},{\"./is\":46}],38:[function(require,module,exports){\n'use strict';\n\nvar domObjects = {};\nvar win = require('./window').window;\n\nfunction blank() {}\n\ndomObjects.document = win.document;\ndomObjects.DocumentFragment = win.DocumentFragment || blank;\ndomObjects.SVGElement = win.SVGElement || blank;\ndomObjects.SVGSVGElement = win.SVGSVGElement || blank;\ndomObjects.SVGElementInstance = win.SVGElementInstance || blank;\ndomObjects.Element = win.Element || blank;\ndomObjects.HTMLElement = win.HTMLElement || domObjects.Element;\n\ndomObjects.Event = win.Event;\ndomObjects.Touch = win.Touch || blank;\ndomObjects.PointerEvent = win.PointerEvent || win.MSPointerEvent;\n\nmodule.exports = domObjects;\n\n},{\"./window\":52}],39:[function(require,module,exports){\n'use strict';\n\nvar win = require('./window');\nvar browser = require('./browser');\nvar is = require('./is');\nvar domObjects = require('./domObjects');\n\nvar domUtils = {\n nodeContains: function nodeContains(parent, child) {\n while (child) {\n if (child === parent) {\n return true;\n }\n\n child = child.parentNode;\n }\n\n return false;\n },\n\n closest: function closest(element, selector) {\n while (is.element(element)) {\n if (domUtils.matchesSelector(element, selector)) {\n return element;\n }\n\n element = domUtils.parentNode(element);\n }\n\n return null;\n },\n\n parentNode: function parentNode(node) {\n var parent = node.parentNode;\n\n if (is.docFrag(parent)) {\n // skip past #shado-root fragments\n while ((parent = parent.host) && is.docFrag(parent)) {\n continue;\n }\n\n return parent;\n }\n\n return parent;\n },\n\n matchesSelector: function matchesSelector(element, selector) {\n // remove /deep/ from selectors if shadowDOM polyfill is used\n if (win.window !== win.realWindow) {\n selector = selector.replace(/\\/deep\\//g, ' ');\n }\n\n return element[browser.prefixedMatchesSelector](selector);\n },\n\n // Test for the element that's \"above\" all other qualifiers\n indexOfDeepestElement: function indexOfDeepestElement(elements) {\n var deepestZoneParents = [];\n var dropzoneParents = [];\n var dropzone = void 0;\n var deepestZone = elements[0];\n var index = deepestZone ? 0 : -1;\n var parent = void 0;\n var child = void 0;\n var i = void 0;\n var n = void 0;\n\n for (i = 1; i < elements.length; i++) {\n dropzone = elements[i];\n\n // an element might belong to multiple selector dropzones\n if (!dropzone || dropzone === deepestZone) {\n continue;\n }\n\n if (!deepestZone) {\n deepestZone = dropzone;\n index = i;\n continue;\n }\n\n // check if the deepest or current are document.documentElement or document.rootElement\n // - if the current dropzone is, do nothing and continue\n if (dropzone.parentNode === dropzone.ownerDocument) {\n continue;\n }\n // - if deepest is, update with the current dropzone and continue to next\n else if (deepestZone.parentNode === dropzone.ownerDocument) {\n deepestZone = dropzone;\n index = i;\n continue;\n }\n\n if (!deepestZoneParents.length) {\n parent = deepestZone;\n while (parent.parentNode && parent.parentNode !== parent.ownerDocument) {\n deepestZoneParents.unshift(parent);\n parent = parent.parentNode;\n }\n }\n\n // if this element is an svg element and the current deepest is\n // an HTMLElement\n if (deepestZone instanceof domObjects.HTMLElement && dropzone instanceof domObjects.SVGElement && !(dropzone instanceof domObjects.SVGSVGElement)) {\n\n if (dropzone === deepestZone.parentNode) {\n continue;\n }\n\n parent = dropzone.ownerSVGElement;\n } else {\n parent = dropzone;\n }\n\n dropzoneParents = [];\n\n while (parent.parentNode !== parent.ownerDocument) {\n dropzoneParents.unshift(parent);\n parent = parent.parentNode;\n }\n\n n = 0;\n\n // get (position of last common ancestor) + 1\n while (dropzoneParents[n] && dropzoneParents[n] === deepestZoneParents[n]) {\n n++;\n }\n\n var parents = [dropzoneParents[n - 1], dropzoneParents[n], deepestZoneParents[n]];\n\n child = parents[0].lastChild;\n\n while (child) {\n if (child === parents[1]) {\n deepestZone = dropzone;\n index = i;\n deepestZoneParents = [];\n\n break;\n } else if (child === parents[2]) {\n break;\n }\n\n child = child.previousSibling;\n }\n }\n\n return index;\n },\n\n matchesUpTo: function matchesUpTo(element, selector, limit) {\n while (is.element(element)) {\n if (domUtils.matchesSelector(element, selector)) {\n return true;\n }\n\n element = domUtils.parentNode(element);\n\n if (element === limit) {\n return domUtils.matchesSelector(element, selector);\n }\n }\n\n return false;\n },\n\n getActualElement: function getActualElement(element) {\n return element instanceof domObjects.SVGElementInstance ? element.correspondingUseElement : element;\n },\n\n getScrollXY: function getScrollXY(relevantWindow) {\n relevantWindow = relevantWindow || win.window;\n return {\n x: relevantWindow.scrollX || relevantWindow.document.documentElement.scrollLeft,\n y: relevantWindow.scrollY || relevantWindow.document.documentElement.scrollTop\n };\n },\n\n getElementClientRect: function getElementClientRect(element) {\n var clientRect = element instanceof domObjects.SVGElement ? element.getBoundingClientRect() : element.getClientRects()[0];\n\n return clientRect && {\n left: clientRect.left,\n right: clientRect.right,\n top: clientRect.top,\n bottom: clientRect.bottom,\n width: clientRect.width || clientRect.right - clientRect.left,\n height: clientRect.height || clientRect.bottom - clientRect.top\n };\n },\n\n getElementRect: function getElementRect(element) {\n var clientRect = domUtils.getElementClientRect(element);\n\n if (!browser.isIOS7 && clientRect) {\n var scroll = domUtils.getScrollXY(win.getWindow(element));\n\n clientRect.left += scroll.x;\n clientRect.right += scroll.x;\n clientRect.top += scroll.y;\n clientRect.bottom += scroll.y;\n }\n\n return clientRect;\n },\n\n getPath: function getPath(element) {\n var path = [];\n\n while (element) {\n path.push(element);\n element = domUtils.parentNode(element);\n }\n\n return path;\n },\n\n trySelector: function trySelector(value) {\n if (!is.string(value)) {\n return false;\n }\n\n // an exception will be raised if it is invalid\n domObjects.document.querySelector(value);\n return true;\n }\n};\n\nmodule.exports = domUtils;\n\n},{\"./browser\":36,\"./domObjects\":38,\"./is\":46,\"./window\":52}],40:[function(require,module,exports){\n'use strict';\n\nvar is = require('./is');\nvar domUtils = require('./domUtils');\nvar pointerUtils = require('./pointerUtils');\nvar pExtend = require('./pointerExtend');\n\nvar _require = require('./window'),\n window = _require.window;\n\nvar _require2 = require('./arr'),\n contains = _require2.contains;\n\nvar elements = [];\nvar targets = [];\n\n// {\n// type: {\n// selectors: ['selector', ...],\n// contexts : [document, ...],\n// listeners: [[listener, capture, passive], ...]\n// }\n// }\nvar delegatedEvents = {};\nvar documents = [];\n\nvar supportsOptions = function () {\n var supported = false;\n\n window.document.createElement('div').addEventListener('test', null, {\n get capture() {\n supported = true;\n }\n });\n\n return supported;\n}();\n\nfunction add(element, type, listener, optionalArg) {\n var options = getOptions(optionalArg);\n var elementIndex = elements.indexOf(element);\n var target = targets[elementIndex];\n\n if (!target) {\n target = {\n events: {},\n typeCount: 0\n };\n\n elementIndex = elements.push(element) - 1;\n targets.push(target);\n }\n\n if (!target.events[type]) {\n target.events[type] = [];\n target.typeCount++;\n }\n\n if (!contains(target.events[type], listener)) {\n element.addEventListener(type, listener, supportsOptions ? options : !!options.capture);\n target.events[type].push(listener);\n }\n}\n\nfunction remove(element, type, listener, optionalArg) {\n var options = getOptions(optionalArg);\n var elementIndex = elements.indexOf(element);\n var target = targets[elementIndex];\n\n if (!target || !target.events) {\n return;\n }\n\n if (type === 'all') {\n for (type in target.events) {\n if (target.events.hasOwnProperty(type)) {\n remove(element, type, 'all');\n }\n }\n return;\n }\n\n if (target.events[type]) {\n var len = target.events[type].length;\n\n if (listener === 'all') {\n for (var i = 0; i < len; i++) {\n remove(element, type, target.events[type][i], options);\n }\n return;\n } else {\n for (var _i = 0; _i < len; _i++) {\n if (target.events[type][_i] === listener) {\n element.removeEventListener('on' + type, listener, supportsOptions ? options : !!options.capture);\n target.events[type].splice(_i, 1);\n\n break;\n }\n }\n }\n\n if (target.events[type] && target.events[type].length === 0) {\n target.events[type] = null;\n target.typeCount--;\n }\n }\n\n if (!target.typeCount) {\n targets.splice(elementIndex, 1);\n elements.splice(elementIndex, 1);\n }\n}\n\nfunction addDelegate(selector, context, type, listener, optionalArg) {\n var options = getOptions(optionalArg);\n if (!delegatedEvents[type]) {\n delegatedEvents[type] = {\n selectors: [],\n contexts: [],\n listeners: []\n };\n\n // add delegate listener functions\n for (var _i2 = 0; _i2 < documents.length; _i2++) {\n var doc = documents[_i2];\n add(doc, type, delegateListener);\n add(doc, type, delegateUseCapture, true);\n }\n }\n\n var delegated = delegatedEvents[type];\n var index = void 0;\n\n for (index = delegated.selectors.length - 1; index >= 0; index--) {\n if (delegated.selectors[index] === selector && delegated.contexts[index] === context) {\n break;\n }\n }\n\n if (index === -1) {\n index = delegated.selectors.length;\n\n delegated.selectors.push(selector);\n delegated.contexts.push(context);\n delegated.listeners.push([]);\n }\n\n // keep listener and capture and passive flags\n delegated.listeners[index].push([listener, !!options.capture, options.passive]);\n}\n\nfunction removeDelegate(selector, context, type, listener, optionalArg) {\n var options = getOptions(optionalArg);\n var delegated = delegatedEvents[type];\n var matchFound = false;\n var index = void 0;\n\n if (!delegated) {\n return;\n }\n\n // count from last index of delegated to 0\n for (index = delegated.selectors.length - 1; index >= 0; index--) {\n // look for matching selector and context Node\n if (delegated.selectors[index] === selector && delegated.contexts[index] === context) {\n\n var listeners = delegated.listeners[index];\n\n // each item of the listeners array is an array: [function, capture, passive]\n for (var i = listeners.length - 1; i >= 0; i--) {\n var _listeners$i = listeners[i],\n fn = _listeners$i[0],\n capture = _listeners$i[1],\n passive = _listeners$i[2];\n\n // check if the listener functions and capture and passive flags match\n\n if (fn === listener && capture === !!options.capture && passive === options.passive) {\n // remove the listener from the array of listeners\n listeners.splice(i, 1);\n\n // if all listeners for this interactable have been removed\n // remove the interactable from the delegated arrays\n if (!listeners.length) {\n delegated.selectors.splice(index, 1);\n delegated.contexts.splice(index, 1);\n delegated.listeners.splice(index, 1);\n\n // remove delegate function from context\n remove(context, type, delegateListener);\n remove(context, type, delegateUseCapture, true);\n\n // remove the arrays if they are empty\n if (!delegated.selectors.length) {\n delegatedEvents[type] = null;\n }\n }\n\n // only remove one listener\n matchFound = true;\n break;\n }\n }\n\n if (matchFound) {\n break;\n }\n }\n }\n}\n\n// bound to the interactable context when a DOM event\n// listener is added to a selector interactable\nfunction delegateListener(event, optionalArg) {\n var options = getOptions(optionalArg);\n var fakeEvent = {};\n var delegated = delegatedEvents[event.type];\n\n var _pointerUtils$getEven = pointerUtils.getEventTargets(event),\n eventTarget = _pointerUtils$getEven[0];\n\n var element = eventTarget;\n\n // duplicate the event so that currentTarget can be changed\n pExtend(fakeEvent, event);\n\n fakeEvent.originalEvent = event;\n fakeEvent.preventDefault = preventOriginalDefault;\n\n // climb up document tree looking for selector matches\n while (is.element(element)) {\n for (var i = 0; i < delegated.selectors.length; i++) {\n var selector = delegated.selectors[i];\n var context = delegated.contexts[i];\n\n if (domUtils.matchesSelector(element, selector) && domUtils.nodeContains(context, eventTarget) && domUtils.nodeContains(context, element)) {\n\n var listeners = delegated.listeners[i];\n\n fakeEvent.currentTarget = element;\n\n for (var j = 0; j < listeners.length; j++) {\n var _listeners$j = listeners[j],\n fn = _listeners$j[0],\n capture = _listeners$j[1],\n passive = _listeners$j[2];\n\n\n if (capture === !!options.capture && passive === options.passive) {\n fn(fakeEvent);\n }\n }\n }\n }\n\n element = domUtils.parentNode(element);\n }\n}\n\nfunction delegateUseCapture(event) {\n return delegateListener.call(this, event, true);\n}\n\nfunction preventOriginalDefault() {\n this.originalEvent.preventDefault();\n}\n\nfunction getOptions(param) {\n return is.object(param) ? param : { capture: param };\n}\n\nmodule.exports = {\n add: add,\n remove: remove,\n\n addDelegate: addDelegate,\n removeDelegate: removeDelegate,\n\n delegateListener: delegateListener,\n delegateUseCapture: delegateUseCapture,\n delegatedEvents: delegatedEvents,\n documents: documents,\n\n supportsOptions: supportsOptions,\n\n _elements: elements,\n _targets: targets\n};\n\n},{\"./arr\":35,\"./domUtils\":39,\"./is\":46,\"./pointerExtend\":48,\"./pointerUtils\":49,\"./window\":52}],41:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = function extend(dest, source) {\n for (var prop in source) {\n dest[prop] = source[prop];\n }\n return dest;\n};\n\n},{}],42:[function(require,module,exports){\n'use strict';\n\nvar _require = require('./rect'),\n resolveRectLike = _require.resolveRectLike,\n rectToXY = _require.rectToXY;\n\nmodule.exports = function (target, element, action) {\n var actionOptions = target.options[action];\n var actionOrigin = actionOptions && actionOptions.origin;\n var origin = actionOrigin || target.options.origin;\n\n var originRect = resolveRectLike(origin, target, element, [target && element]);\n\n return rectToXY(originRect) || { x: 0, y: 0 };\n};\n\n},{\"./rect\":51}],43:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = function (x, y) {\n return Math.sqrt(x * x + y * y);\n};\n\n},{}],44:[function(require,module,exports){\n'use strict';\n\nvar extend = require('./extend');\nvar win = require('./window');\n\nvar utils = {\n warnOnce: function warnOnce(method, message) {\n var warned = false;\n\n return function () {\n if (!warned) {\n win.window.console.warn(message);\n warned = true;\n }\n\n return method.apply(this, arguments);\n };\n },\n\n // http://stackoverflow.com/a/5634528/2280888\n _getQBezierValue: function _getQBezierValue(t, p1, p2, p3) {\n var iT = 1 - t;\n return iT * iT * p1 + 2 * iT * t * p2 + t * t * p3;\n },\n\n getQuadraticCurvePoint: function getQuadraticCurvePoint(startX, startY, cpX, cpY, endX, endY, position) {\n return {\n x: utils._getQBezierValue(position, startX, cpX, endX),\n y: utils._getQBezierValue(position, startY, cpY, endY)\n };\n },\n\n // http://gizma.com/easing/\n easeOutQuad: function easeOutQuad(t, b, c, d) {\n t /= d;\n return -c * t * (t - 2) + b;\n },\n\n copyAction: function copyAction(dest, src) {\n dest.name = src.name;\n dest.axis = src.axis;\n dest.edges = src.edges;\n\n return dest;\n },\n\n is: require('./is'),\n extend: extend,\n hypot: require('./hypot'),\n getOriginXY: require('./getOriginXY')\n};\n\nextend(utils, require('./arr'));\nextend(utils, require('./domUtils'));\nextend(utils, require('./pointerUtils'));\nextend(utils, require('./rect'));\n\nmodule.exports = utils;\n\n},{\"./arr\":35,\"./domUtils\":39,\"./extend\":41,\"./getOriginXY\":42,\"./hypot\":43,\"./is\":46,\"./pointerUtils\":49,\"./rect\":51,\"./window\":52}],45:[function(require,module,exports){\n'use strict';\n\nvar scope = require('../scope');\nvar utils = require('./index');\n\nvar finder = {\n methodOrder: ['simulationResume', 'mouseOrPen', 'hasPointer', 'idle'],\n\n search: function search(pointer, eventType, eventTarget) {\n var pointerType = utils.getPointerType(pointer);\n var pointerId = utils.getPointerId(pointer);\n var details = { pointer: pointer, pointerId: pointerId, pointerType: pointerType, eventType: eventType, eventTarget: eventTarget };\n\n for (var _i = 0; _i < finder.methodOrder.length; _i++) {\n var _ref;\n\n _ref = finder.methodOrder[_i];\n var method = _ref;\n\n var interaction = finder[method](details);\n\n if (interaction) {\n return interaction;\n }\n }\n },\n\n // try to resume simulation with a new pointer\n simulationResume: function simulationResume(_ref2) {\n var pointerType = _ref2.pointerType,\n eventType = _ref2.eventType,\n eventTarget = _ref2.eventTarget;\n\n if (!/down|start/i.test(eventType)) {\n return null;\n }\n\n for (var _i2 = 0; _i2 < scope.interactions.length; _i2++) {\n var _ref3;\n\n _ref3 = scope.interactions[_i2];\n var interaction = _ref3;\n\n var element = eventTarget;\n\n if (interaction.simulation && interaction.simulation.allowResume && interaction.pointerType === pointerType) {\n while (element) {\n // if the element is the interaction element\n if (element === interaction.element) {\n return interaction;\n }\n element = utils.parentNode(element);\n }\n }\n }\n\n return null;\n },\n\n // if it's a mouse or pen interaction\n mouseOrPen: function mouseOrPen(_ref4) {\n var pointerId = _ref4.pointerId,\n pointerType = _ref4.pointerType,\n eventType = _ref4.eventType;\n\n if (pointerType !== 'mouse' && pointerType !== 'pen') {\n return null;\n }\n\n var firstNonActive = void 0;\n\n for (var _i3 = 0; _i3 < scope.interactions.length; _i3++) {\n var _ref5;\n\n _ref5 = scope.interactions[_i3];\n var interaction = _ref5;\n\n if (interaction.pointerType === pointerType) {\n // if it's a down event, skip interactions with running simulations\n if (interaction.simulation && !utils.contains(interaction.pointerIds, pointerId)) {\n continue;\n }\n\n // if the interaction is active, return it immediately\n if (interaction.interacting()) {\n return interaction;\n }\n // otherwise save it and look for another active interaction\n else if (!firstNonActive) {\n firstNonActive = interaction;\n }\n }\n }\n\n // if no active mouse interaction was found use the first inactive mouse\n // interaction\n if (firstNonActive) {\n return firstNonActive;\n }\n\n // find any mouse or pen interaction.\n // ignore the interaction if the eventType is a *down, and a simulation\n // is active\n for (var _i4 = 0; _i4 < scope.interactions.length; _i4++) {\n var _ref6;\n\n _ref6 = scope.interactions[_i4];\n var _interaction = _ref6;\n\n if (_interaction.pointerType === pointerType && !(/down/i.test(eventType) && _interaction.simulation)) {\n return _interaction;\n }\n }\n\n return null;\n },\n\n // get interaction that has this pointer\n hasPointer: function hasPointer(_ref7) {\n var pointerId = _ref7.pointerId;\n\n for (var _i5 = 0; _i5 < scope.interactions.length; _i5++) {\n var _ref8;\n\n _ref8 = scope.interactions[_i5];\n var interaction = _ref8;\n\n if (utils.contains(interaction.pointerIds, pointerId)) {\n return interaction;\n }\n }\n },\n\n // get first idle interaction with a matching pointerType\n idle: function idle(_ref9) {\n var pointerType = _ref9.pointerType;\n\n for (var _i6 = 0; _i6 < scope.interactions.length; _i6++) {\n var _ref10;\n\n _ref10 = scope.interactions[_i6];\n var interaction = _ref10;\n\n // if there's already a pointer held down\n if (interaction.pointerIds.length === 1) {\n var target = interaction.target;\n // don't add this pointer if there is a target interactable and it\n // isn't gesturable\n if (target && !target.options.gesture.enabled) {\n continue;\n }\n }\n // maximum of 2 pointers per interaction\n else if (interaction.pointerIds.length >= 2) {\n continue;\n }\n\n if (!interaction.interacting() && pointerType === interaction.pointerType) {\n return interaction;\n }\n }\n\n return null;\n }\n};\n\nmodule.exports = finder;\n\n},{\"../scope\":33,\"./index\":44}],46:[function(require,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar win = require('./window');\nvar isWindow = require('./isWindow');\n\nvar is = {\n array: function array() {},\n\n window: function window(thing) {\n return thing === win.window || isWindow(thing);\n },\n\n docFrag: function docFrag(thing) {\n return is.object(thing) && thing.nodeType === 11;\n },\n\n object: function object(thing) {\n return !!thing && (typeof thing === 'undefined' ? 'undefined' : _typeof(thing)) === 'object';\n },\n\n function: function _function(thing) {\n return typeof thing === 'function';\n },\n\n number: function number(thing) {\n return typeof thing === 'number';\n },\n\n bool: function bool(thing) {\n return typeof thing === 'boolean';\n },\n\n string: function string(thing) {\n return typeof thing === 'string';\n },\n\n element: function element(thing) {\n if (!thing || (typeof thing === 'undefined' ? 'undefined' : _typeof(thing)) !== 'object') {\n return false;\n }\n\n var _window = win.getWindow(thing) || win.window;\n\n return (/object|function/.test(_typeof(_window.Element)) ? thing instanceof _window.Element //DOM2\n : thing.nodeType === 1 && typeof thing.nodeName === 'string'\n );\n },\n\n plainObject: function plainObject(thing) {\n return is.object(thing) && thing.constructor.name === 'Object';\n }\n};\n\nis.array = function (thing) {\n return is.object(thing) && typeof thing.length !== 'undefined' && is.function(thing.splice);\n};\n\nmodule.exports = is;\n\n},{\"./isWindow\":47,\"./window\":52}],47:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = function (thing) {\n return !!(thing && thing.Window) && thing instanceof thing.Window;\n};\n\n},{}],48:[function(require,module,exports){\n'use strict';\n\nfunction pointerExtend(dest, source) {\n for (var prop in source) {\n var prefixedPropREs = module.exports.prefixedPropREs;\n var deprecated = false;\n\n // skip deprecated prefixed properties\n for (var vendor in prefixedPropREs) {\n if (prop.indexOf(vendor) === 0 && prefixedPropREs[vendor].test(prop)) {\n deprecated = true;\n break;\n }\n }\n\n if (!deprecated && typeof source[prop] !== 'function') {\n dest[prop] = source[prop];\n }\n }\n return dest;\n}\n\npointerExtend.prefixedPropREs = {\n webkit: /(Movement[XY]|Radius[XY]|RotationAngle|Force)$/\n};\n\nmodule.exports = pointerExtend;\n\n},{}],49:[function(require,module,exports){\n'use strict';\n\nvar hypot = require('./hypot');\nvar browser = require('./browser');\nvar dom = require('./domObjects');\nvar domUtils = require('./domUtils');\nvar domObjects = require('./domObjects');\nvar is = require('./is');\nvar pointerExtend = require('./pointerExtend');\n\nvar pointerUtils = {\n copyCoords: function copyCoords(dest, src) {\n dest.page = dest.page || {};\n dest.page.x = src.page.x;\n dest.page.y = src.page.y;\n\n dest.client = dest.client || {};\n dest.client.x = src.client.x;\n dest.client.y = src.client.y;\n\n dest.timeStamp = src.timeStamp;\n },\n\n setCoordDeltas: function setCoordDeltas(targetObj, prev, cur) {\n targetObj.page.x = cur.page.x - prev.page.x;\n targetObj.page.y = cur.page.y - prev.page.y;\n targetObj.client.x = cur.client.x - prev.client.x;\n targetObj.client.y = cur.client.y - prev.client.y;\n targetObj.timeStamp = cur.timeStamp - prev.timeStamp;\n\n // set pointer velocity\n var dt = Math.max(targetObj.timeStamp / 1000, 0.001);\n\n targetObj.page.speed = hypot(targetObj.page.x, targetObj.page.y) / dt;\n targetObj.page.vx = targetObj.page.x / dt;\n targetObj.page.vy = targetObj.page.y / dt;\n\n targetObj.client.speed = hypot(targetObj.client.x, targetObj.page.y) / dt;\n targetObj.client.vx = targetObj.client.x / dt;\n targetObj.client.vy = targetObj.client.y / dt;\n },\n\n isNativePointer: function isNativePointer(pointer) {\n return pointer instanceof dom.Event || pointer instanceof dom.Touch;\n },\n\n // Get specified X/Y coords for mouse or event.touches[0]\n getXY: function getXY(type, pointer, xy) {\n xy = xy || {};\n type = type || 'page';\n\n xy.x = pointer[type + 'X'];\n xy.y = pointer[type + 'Y'];\n\n return xy;\n },\n\n getPageXY: function getPageXY(pointer, page) {\n page = page || {};\n\n // Opera Mobile handles the viewport and scrolling oddly\n if (browser.isOperaMobile && pointerUtils.isNativePointer(pointer)) {\n pointerUtils.getXY('screen', pointer, page);\n\n page.x += window.scrollX;\n page.y += window.scrollY;\n } else {\n pointerUtils.getXY('page', pointer, page);\n }\n\n return page;\n },\n\n getClientXY: function getClientXY(pointer, client) {\n client = client || {};\n\n if (browser.isOperaMobile && pointerUtils.isNativePointer(pointer)) {\n // Opera Mobile handles the viewport and scrolling oddly\n pointerUtils.getXY('screen', pointer, client);\n } else {\n pointerUtils.getXY('client', pointer, client);\n }\n\n return client;\n },\n\n getPointerId: function getPointerId(pointer) {\n return is.number(pointer.pointerId) ? pointer.pointerId : pointer.identifier;\n },\n\n setCoords: function setCoords(targetObj, pointers, timeStamp) {\n var pointer = pointers.length > 1 ? pointerUtils.pointerAverage(pointers) : pointers[0];\n\n var tmpXY = {};\n\n pointerUtils.getPageXY(pointer, tmpXY);\n targetObj.page.x = tmpXY.x;\n targetObj.page.y = tmpXY.y;\n\n pointerUtils.getClientXY(pointer, tmpXY);\n targetObj.client.x = tmpXY.x;\n targetObj.client.y = tmpXY.y;\n\n targetObj.timeStamp = is.number(timeStamp) ? timeStamp : new Date().getTime();\n },\n\n pointerExtend: pointerExtend,\n\n getTouchPair: function getTouchPair(event) {\n var touches = [];\n\n // array of touches is supplied\n if (is.array(event)) {\n touches[0] = event[0];\n touches[1] = event[1];\n }\n // an event\n else {\n if (event.type === 'touchend') {\n if (event.touches.length === 1) {\n touches[0] = event.touches[0];\n touches[1] = event.changedTouches[0];\n } else if (event.touches.length === 0) {\n touches[0] = event.changedTouches[0];\n touches[1] = event.changedTouches[1];\n }\n } else {\n touches[0] = event.touches[0];\n touches[1] = event.touches[1];\n }\n }\n\n return touches;\n },\n\n pointerAverage: function pointerAverage(pointers) {\n var average = {\n pageX: 0,\n pageY: 0,\n clientX: 0,\n clientY: 0,\n screenX: 0,\n screenY: 0\n };\n\n for (var _i = 0; _i < pointers.length; _i++) {\n var _ref;\n\n _ref = pointers[_i];\n var pointer = _ref;\n\n for (var _prop in average) {\n average[_prop] += pointer[_prop];\n }\n }\n for (var prop in average) {\n average[prop] /= pointers.length;\n }\n\n return average;\n },\n\n touchBBox: function touchBBox(event) {\n if (!event.length && !(event.touches && event.touches.length > 1)) {\n return;\n }\n\n var touches = pointerUtils.getTouchPair(event);\n var minX = Math.min(touches[0].pageX, touches[1].pageX);\n var minY = Math.min(touches[0].pageY, touches[1].pageY);\n var maxX = Math.max(touches[0].pageX, touches[1].pageX);\n var maxY = Math.max(touches[0].pageY, touches[1].pageY);\n\n return {\n x: minX,\n y: minY,\n left: minX,\n top: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n },\n\n touchDistance: function touchDistance(event, deltaSource) {\n var sourceX = deltaSource + 'X';\n var sourceY = deltaSource + 'Y';\n var touches = pointerUtils.getTouchPair(event);\n\n var dx = touches[0][sourceX] - touches[1][sourceX];\n var dy = touches[0][sourceY] - touches[1][sourceY];\n\n return hypot(dx, dy);\n },\n\n touchAngle: function touchAngle(event, prevAngle, deltaSource) {\n var sourceX = deltaSource + 'X';\n var sourceY = deltaSource + 'Y';\n var touches = pointerUtils.getTouchPair(event);\n var dx = touches[1][sourceX] - touches[0][sourceX];\n var dy = touches[1][sourceY] - touches[0][sourceY];\n var angle = 180 * Math.atan2(dy, dx) / Math.PI;\n\n return angle;\n },\n\n getPointerType: function getPointerType(pointer) {\n return is.string(pointer.pointerType) ? pointer.pointerType : is.number(pointer.pointerType) ? [undefined, undefined, 'touch', 'pen', 'mouse'][pointer.pointerType]\n // if the PointerEvent API isn't available, then the \"pointer\" must\n // be either a MouseEvent, TouchEvent, or Touch object\n : /touch/.test(pointer.type) || pointer instanceof domObjects.Touch ? 'touch' : 'mouse';\n },\n\n // [ event.target, event.currentTarget ]\n getEventTargets: function getEventTargets(event) {\n var path = is.function(event.composedPath) ? event.composedPath() : event.path;\n\n return [domUtils.getActualElement(path ? path[0] : event.target), domUtils.getActualElement(event.currentTarget)];\n }\n};\n\nmodule.exports = pointerUtils;\n\n},{\"./browser\":36,\"./domObjects\":38,\"./domUtils\":39,\"./hypot\":43,\"./is\":46,\"./pointerExtend\":48}],50:[function(require,module,exports){\n'use strict';\n\nvar _require = require('./window'),\n window = _require.window;\n\nvar vendors = ['ms', 'moz', 'webkit', 'o'];\nvar lastTime = 0;\nvar request = void 0;\nvar cancel = void 0;\n\nfor (var x = 0; x < vendors.length && !window.requestAnimationFrame; x++) {\n request = window[vendors[x] + 'RequestAnimationFrame'];\n cancel = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];\n}\n\nif (!request) {\n request = function request(callback) {\n var currTime = new Date().getTime();\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\n var id = setTimeout(function () {\n callback(currTime + timeToCall);\n }, timeToCall);\n\n lastTime = currTime + timeToCall;\n return id;\n };\n}\n\nif (!cancel) {\n cancel = function cancel(id) {\n clearTimeout(id);\n };\n}\n\nmodule.exports = {\n request: request,\n cancel: cancel\n};\n\n},{\"./window\":52}],51:[function(require,module,exports){\n'use strict';\n\nvar extend = require('./extend');\nvar is = require('./is');\n\nvar _require = require('./domUtils'),\n closest = _require.closest,\n parentNode = _require.parentNode,\n getElementRect = _require.getElementRect;\n\nvar rectUtils = {\n getStringOptionResult: function getStringOptionResult(value, interactable, element) {\n if (!is.string(value)) {\n return null;\n }\n\n if (value === 'parent') {\n value = parentNode(element);\n } else if (value === 'self') {\n value = interactable.getRect(element);\n } else {\n value = closest(element, value);\n }\n\n return value;\n },\n\n resolveRectLike: function resolveRectLike(value, interactable, element, functionArgs) {\n value = rectUtils.getStringOptionResult(value, interactable, element) || value;\n\n if (is.function(value)) {\n value = value.apply(null, functionArgs);\n }\n\n if (is.element(value)) {\n value = getElementRect(value);\n }\n\n return value;\n },\n\n rectToXY: function rectToXY(rect) {\n return rect && {\n x: 'x' in rect ? rect.x : rect.left,\n y: 'y' in rect ? rect.y : rect.top\n };\n },\n\n xywhToTlbr: function xywhToTlbr(rect) {\n if (rect && !('left' in rect && 'top' in rect)) {\n rect = extend({}, rect);\n\n rect.left = rect.x || 0;\n rect.top = rect.y || 0;\n rect.right = rect.right || rect.left + rect.width;\n rect.bottom = rect.bottom || rect.top + rect.height;\n }\n\n return rect;\n },\n\n tlbrToXywh: function tlbrToXywh(rect) {\n if (rect && !('x' in rect && 'y' in rect)) {\n rect = extend({}, rect);\n\n rect.x = rect.left || 0;\n rect.top = rect.top || 0;\n rect.width = rect.width || rect.right - rect.x;\n rect.height = rect.height || rect.bottom - rect.y;\n }\n\n return rect;\n }\n};\n\nmodule.exports = rectUtils;\n\n},{\"./domUtils\":39,\"./extend\":41,\"./is\":46}],52:[function(require,module,exports){\n'use strict';\n\nvar win = module.exports;\nvar isWindow = require('./isWindow');\n\nfunction init(window) {\n // get wrapped window if using Shadow DOM polyfill\n\n win.realWindow = window;\n\n // create a TextNode\n var el = window.document.createTextNode('');\n\n // check if it's wrapped by a polyfill\n if (el.ownerDocument !== window.document && typeof window.wrap === 'function' && window.wrap(el) === el) {\n // use wrapped window\n window = window.wrap(window);\n }\n\n win.window = window;\n}\n\nif (typeof window === 'undefined') {\n win.window = undefined;\n win.realWindow = undefined;\n} else {\n init(window);\n}\n\nwin.getWindow = function getWindow(node) {\n if (isWindow(node)) {\n return node;\n }\n\n var rootNode = node.ownerDocument || node;\n\n return rootNode.defaultView || rootNode.parentWindow || win.window;\n};\n\nwin.init = init;\n\n},{\"./isWindow\":47}]},{},[1])(1)\n});\n\n\n//# sourceMappingURL=interact.js.map\n","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/vue-grid-layout.umd.min.js b/dist/vue-grid-layout.umd.min.js index d5e7b884..19bbddc6 100644 --- a/dist/vue-grid-layout.umd.min.js +++ b/dist/vue-grid-layout.umd.min.js @@ -1,2 +1,2 @@ -(function(t,e){"object"===typeof exports&&"object"===typeof module?module.exports=e(require("vue")):"function"===typeof define&&define.amd?define([],e):"object"===typeof exports?exports["VueGridLayout"]=e(require("vue")):t["VueGridLayout"]=e(t["Vue"])})("undefined"!==typeof self?self:this,function(t){return function(t){var e={};function n(i){if(e[i])return e[i].exports;var r=e[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"===typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)n.d(i,r,function(e){return t[e]}.bind(null,r));return i},n.n=function(t){var e=t&&t.__esModule?function(){return t["default"]}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s="fb15")}({"01f9":function(t,e,n){"use strict";var i=n("2d00"),r=n("5ca1"),o=n("2aba"),s=n("32e9"),a=n("84f2"),c=n("41a0"),u=n("7f20"),l=n("38fd"),d=n("2b4c")("iterator"),p=!([].keys&&"next"in[].keys()),f="@@iterator",h="keys",g="values",v=function(){return this};t.exports=function(t,e,n,m,y,b,x){c(n,e,m);var w,E,S,T=function(t){if(!p&&t in O)return O[t];switch(t){case h:return function(){return new n(this,t)};case g:return function(){return new n(this,t)}}return function(){return new n(this,t)}},z=e+" Iterator",C=y==g,I=!1,O=t.prototype,M=O[d]||O[f]||y&&O[y],D=M||T(y),R=y?C?T("entries"):D:void 0,A="Array"==e&&O.entries||M;if(A&&(S=l(A.call(new t)),S!==Object.prototype&&S.next&&(u(S,z,!0),i||"function"==typeof S[d]||s(S,d,v))),C&&M&&M.name!==g&&(I=!0,D=function(){return M.call(this)}),i&&!x||!p&&!I&&O[d]||s(O,d,D),a[e]=D,a[z]=v,y)if(w={values:C?D:T(g),keys:b?D:T(h),entries:R},x)for(E in w)E in O||o(O,E,w[E]);else r(r.P+r.F*(p||I),e,w);return w}},"02f4":function(t,e,n){var i=n("4588"),r=n("be13");t.exports=function(t){return function(e,n){var o,s,a=String(r(e)),c=i(n),u=a.length;return c<0||c>=u?t?"":void 0:(o=a.charCodeAt(c),o<55296||o>56319||c+1===u||(s=a.charCodeAt(c+1))<56320||s>57343?t?a.charAt(c):o:t?a.slice(c,c+2):s-56320+(o-55296<<10)+65536)}}},"0390":function(t,e,n){"use strict";var i=n("02f4")(!0);t.exports=function(t,e,n){return e+(n?i(t,e).length:1)}},"07e3":function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},"0bfb":function(t,e,n){"use strict";var i=n("cb7c");t.exports=function(){var t=i(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},"0d58":function(t,e,n){var i=n("ce10"),r=n("e11e");t.exports=Object.keys||function(t){return i(t,r)}},"0fc9":function(t,e,n){var i=n("3a38"),r=Math.max,o=Math.min;t.exports=function(t,e){return t=i(t),t<0?r(t+e,0):o(t,e)}},1156:function(t,e,n){var i=n("ad20");"string"===typeof i&&(i=[[t.i,i,""]]),i.locals&&(t.exports=i.locals);var r=n("499e").default;r("c1ec597e",i,!0,{sourceMap:!1,shadowMode:!1})},"11e9":function(t,e,n){var i=n("52a7"),r=n("4630"),o=n("6821"),s=n("6a99"),a=n("69a8"),c=n("c69a"),u=Object.getOwnPropertyDescriptor;e.f=n("9e1e")?u:function(t,e){if(t=o(t),e=s(e,!0),c)try{return u(t,e)}catch(n){}if(a(t,e))return r(!i.f.call(t,e),t[e])}},1495:function(t,e,n){var i=n("86cc"),r=n("cb7c"),o=n("0d58");t.exports=n("9e1e")?Object.defineProperties:function(t,e){r(t);var n,s=o(e),a=s.length,c=0;while(a>c)i.f(t,n=s[c++],e[n]);return t}},1691:function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},"18d2":function(t,e,n){"use strict";var i=n("18e9");t.exports=function(t){t=t||{};var e=t.reporter,n=t.batchProcessor,r=t.stateHandler.getState;if(!e)throw new Error("Missing required dependency: reporter.");function o(t,e){if(!a(t))throw new Error("Element is not detectable by this strategy.");function n(){e(t)}if(i.isIE(8))r(t).object={proxy:n},t.attachEvent("onresize",n);else{var o=a(t);o.contentDocument.defaultView.addEventListener("resize",n)}}function s(t,o,s){s||(s=o,o=t,t=null),t=t||{};t.debug;function a(t,o){var s="display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; padding: 0; margin: 0; opacity: 0; z-index: -1000; pointer-events: none;",a=!1,c=window.getComputedStyle(t),u=t.offsetWidth,l=t.offsetHeight;function d(){function n(){if("static"===c.position){t.style.position="relative";var n=function(t,e,n,i){function r(t){return t.replace(/[^-\d\.]/g,"")}var o=n[i];"auto"!==o&&"0"!==r(o)&&(t.warn("An element that is positioned static has style."+i+"="+o+" which is ignored due to the static positioning. The element will need to be positioned relative, so the style."+i+" will be set to 0. Element: ",e),e.style[i]=0)};n(e,t,c,"top"),n(e,t,c,"right"),n(e,t,c,"bottom"),n(e,t,c,"left")}}function u(){function e(t,n){t.contentDocument?n(t.contentDocument):setTimeout(function(){e(t,n)},100)}a||n();var i=this;e(i,function(e){o(t)})}""!==c.position&&(n(c),a=!0);var l=document.createElement("object");l.style.cssText=s,l.tabIndex=-1,l.type="text/html",l.setAttribute("aria-hidden","true"),l.onload=u,i.isIE()||(l.data="about:blank"),t.appendChild(l),r(t).object=l,i.isIE()&&(l.data="about:blank")}r(t).startSize={width:u,height:l},n?n.add(d):d()}i.isIE(8)?s(o):a(o,s)}function a(t){return r(t).object}function c(t){i.isIE(8)?t.detachEvent("onresize",r(t).object.proxy):t.removeChild(a(t)),delete r(t).object}return{makeDetectable:s,addListener:o,uninstall:c}}},"18e9":function(t,e,n){"use strict";var i=t.exports={};i.isIE=function(t){function e(){var t=navigator.userAgent.toLowerCase();return-1!==t.indexOf("msie")||-1!==t.indexOf("trident")||-1!==t.indexOf(" edge/")}if(!e())return!1;if(!t)return!0;var n=function(){var t,e=3,n=document.createElement("div"),i=n.getElementsByTagName("i");do{n.innerHTML="\x3c!--[if gt IE "+ ++e+"]>4?e:t}();return t===n},i.isLegacyOpera=function(){return!!window.opera}},"1af6":function(t,e,n){var i=n("63b6");i(i.S,"Array",{isArray:n("9003")})},"1bc3":function(t,e,n){var i=n("f772");t.exports=function(t,e){if(!i(t))return t;var n,r;if(e&&"function"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;if("function"==typeof(n=t.valueOf)&&!i(r=n.call(t)))return r;if(!e&&"function"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;throw TypeError("Can't convert object to primitive value")}},"1ec9":function(t,e,n){var i=n("f772"),r=n("e53d").document,o=i(r)&&i(r.createElement);t.exports=function(t){return o?r.createElement(t):{}}},"214f":function(t,e,n){"use strict";n("b0c5");var i=n("2aba"),r=n("32e9"),o=n("79e5"),s=n("be13"),a=n("2b4c"),c=n("520a"),u=a("species"),l=!o(function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$")}),d=function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();t.exports=function(t,e,n){var p=a(t),f=!o(function(){var e={};return e[p]=function(){return 7},7!=""[t](e)}),h=f?!o(function(){var e=!1,n=/a/;return n.exec=function(){return e=!0,null},"split"===t&&(n.constructor={},n.constructor[u]=function(){return n}),n[p](""),!e}):void 0;if(!f||!h||"replace"===t&&!l||"split"===t&&!d){var g=/./[p],v=n(s,p,""[t],function(t,e,n,i,r){return e.exec===c?f&&!r?{done:!0,value:g.call(e,n,i)}:{done:!0,value:t.call(n,e,i)}:{done:!1}}),m=v[0],y=v[1];i(String.prototype,t,m),r(RegExp.prototype,p,2==e?function(t,e){return y.call(t,this,e)}:function(t){return y.call(t,this)})}}},"230e":function(t,e,n){var i=n("d3f4"),r=n("7726").document,o=i(r)&&i(r.createElement);t.exports=function(t){return o?r.createElement(t):{}}},2350:function(t,e){function n(t,e){var n=t[1]||"",r=t[3];if(!r)return n;if(e&&"function"===typeof btoa){var o=i(r),s=r.sources.map(function(t){return"/*# sourceURL="+r.sourceRoot+t+" */"});return[n].concat(s).concat([o]).join("\n")}return[n].join("\n")}function i(t){var e=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),n="sourceMappingURL=data:application/json;charset=utf-8;base64,"+e;return"/*# "+n+" */"}t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var i=n(e,t);return e[2]?"@media "+e[2]+"{"+i+"}":i}).join("")},e.i=function(t,n){"string"===typeof t&&(t=[[null,t,""]]);for(var i={},r=0;r";e.style.display="none",n("fab2").appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write(r+"script"+s+"document.F=Object"+r+"/script"+s),t.close(),u=t.F;while(i--)delete u[c][o[i]];return u()};t.exports=Object.create||function(t,e){var n;return null!==t?(a[c]=i(t),n=new a,a[c]=null,n[s]=t):n=u(),void 0===e?n:r(n,e)}},"2b4c":function(t,e,n){var i=n("5537")("wks"),r=n("ca5a"),o=n("7726").Symbol,s="function"==typeof o,a=t.exports=function(t){return i[t]||(i[t]=s&&o[t]||(s?o:r)("Symbol."+t))};a.store=i},"2cef":function(t,e,n){"use strict";t.exports=function(){var t=1;function e(){return t++}return{generate:e}}},"2d00":function(t,e){t.exports=!1},"2d95":function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},"2f21":function(t,e,n){"use strict";var i=n("79e5");t.exports=function(t,e){return!!t&&i(function(){e?t.call(null,function(){},1):t.call(null)})}},"32a6":function(t,e,n){var i=n("241e"),r=n("c3a1");n("ce7e")("keys",function(){return function(t){return r(i(t))}})},"32e9":function(t,e,n){var i=n("86cc"),r=n("4630");t.exports=n("9e1e")?function(t,e,n){return i.f(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},"335c":function(t,e,n){var i=n("6b4c");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==i(t)?t.split(""):Object(t)}},"35e8":function(t,e,n){var i=n("d9f6"),r=n("aebd");t.exports=n("8e60")?function(t,e,n){return i.f(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},"36c3":function(t,e,n){var i=n("335c"),r=n("25eb");t.exports=function(t){return i(r(t))}},"38fd":function(t,e,n){var i=n("69a8"),r=n("4bf8"),o=n("613b")("IE_PROTO"),s=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=r(t),i(t,o)?t[o]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?s:null}},"3a38":function(t,e){var n=Math.ceil,i=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?i:n)(t)}},"41a0":function(t,e,n){"use strict";var i=n("2aeb"),r=n("4630"),o=n("7f20"),s={};n("32e9")(s,n("2b4c")("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=i(s,{next:r(1,n)}),o(t,e+" Iterator")}},4588:function(t,e){var n=Math.ceil,i=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?i:n)(t)}},4630:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},"499e":function(t,e,n){"use strict";function i(t,e){for(var n=[],i={},r=0;rn.parts.length&&(i.parts.length=n.parts.length)}else{var s=[];for(r=0;r1&&o.call(s[0],n,function(){for(l=1;ll)if(a=c[l++],a!=a)return!0}else for(;u>l;l++)if((t||l in c)&&c[l]===n)return t||l||0;return!t&&-1}}},"5be5":function(t,e,n){"use strict";t.exports=function(t){var e=t.stateHandler.getState;function n(t){var n=e(t);return n&&!!n.isDetectable}function i(t){e(t).isDetectable=!0}function r(t){return!!e(t).busy}function o(t,n){e(t).busy=!!n}return{isDetectable:n,markAsDetectable:i,isBusy:r,markBusy:o}}},"5ca1":function(t,e,n){var i=n("7726"),r=n("8378"),o=n("32e9"),s=n("2aba"),a=n("9b43"),c="prototype",u=function(t,e,n){var l,d,p,f,h=t&u.F,g=t&u.G,v=t&u.S,m=t&u.P,y=t&u.B,b=g?i:v?i[e]||(i[e]={}):(i[e]||{})[c],x=g?r:r[e]||(r[e]={}),w=x[c]||(x[c]={});for(l in g&&(n=e),n)d=!h&&b&&void 0!==b[l],p=(d?b:n)[l],f=y&&d?a(p,i):m&&"function"==typeof p?a(Function.call,p):p,b&&s(b,l,p,t&u.U),x[l]!=p&&o(x,l,f),m&&w[l]!=p&&(w[l]=p)};i.core=r,u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},"5d6b":function(t,e,n){var i=n("e53d").parseInt,r=n("a1ce").trim,o=n("e692"),s=/^[-+]?0[xX]/;t.exports=8!==i(o+"08")||22!==i(o+"0x16")?function(t,e){var n=r(String(t),3);return i(n,e>>>0||(s.test(n)?16:10))}:i},"5dbc":function(t,e,n){var i=n("d3f4"),r=n("8b97").set;t.exports=function(t,e,n){var o,s=e.constructor;return s!==n&&"function"==typeof s&&(o=s.prototype)!==n.prototype&&i(o)&&r&&r(t,o),t}},"5ed4":function(t,e,n){"use strict";var i=n("6e21"),r=n.n(i);r.a},"5f1b":function(t,e,n){"use strict";var i=n("23c6"),r=RegExp.prototype.exec;t.exports=function(t,e){var n=t.exec;if("function"===typeof n){var o=n.call(t,e);if("object"!==typeof o)throw new TypeError("RegExp exec method returned something other than an Object or null");return o}if("RegExp"!==i(t))throw new TypeError("RegExp#exec called on incompatible receiver");return r.call(t,e)}},"613b":function(t,e,n){var i=n("5537")("keys"),r=n("ca5a");t.exports=function(t){return i[t]||(i[t]=r(t))}},"626a":function(t,e,n){var i=n("2d95");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==i(t)?t.split(""):Object(t)}},"62a0":function(t,e){var n=0,i=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+i).toString(36))}},"63b6":function(t,e,n){var i=n("e53d"),r=n("584a"),o=n("d864"),s=n("35e8"),a=n("07e3"),c="prototype",u=function(t,e,n){var l,d,p,f=t&u.F,h=t&u.G,g=t&u.S,v=t&u.P,m=t&u.B,y=t&u.W,b=h?r:r[e]||(r[e]={}),x=b[c],w=h?i:g?i[e]:(i[e]||{})[c];for(l in h&&(n=e),n)d=!f&&w&&void 0!==w[l],d&&a(b,l)||(p=d?w[l]:n[l],b[l]=h&&"function"!=typeof w[l]?n[l]:m&&d?o(p,i):y&&w[l]==p?function(t){var e=function(e,n,i){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,i)}return t.apply(this,arguments)};return e[c]=t[c],e}(p):v&&"function"==typeof p?o(Function.call,p):p,v&&((b.virtual||(b.virtual={}))[l]=p,t&u.R&&x&&!x[l]&&s(x,l,p)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},6821:function(t,e,n){var i=n("626a"),r=n("be13");t.exports=function(t){return i(r(t))}},"69a8":function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},"6a99":function(t,e,n){var i=n("d3f4");t.exports=function(t,e){if(!i(t))return t;var n,r;if(e&&"function"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;if("function"==typeof(n=t.valueOf)&&!i(r=n.call(t)))return r;if(!e&&"function"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;throw TypeError("Can't convert object to primitive value")}},"6b4c":function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},"6e21":function(t,e,n){var i=n("9cbe");"string"===typeof i&&(i=[[t.i,i,""]]),i.locals&&(t.exports=i.locals);var r=n("499e").default;r("3cbd0c21",i,!0,{sourceMap:!1,shadowMode:!1})},7445:function(t,e,n){var i=n("63b6"),r=n("5d6b");i(i.G+i.F*(parseInt!=r),{parseInt:r})},7726:function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},"77f1":function(t,e,n){var i=n("4588"),r=Math.max,o=Math.min;t.exports=function(t,e){return t=i(t),t<0?r(t+e,0):o(t,e)}},"794b":function(t,e,n){t.exports=!n("8e60")&&!n("294c")(function(){return 7!=Object.defineProperty(n("1ec9")("div"),"a",{get:function(){return 7}}).a})},"79aa":function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},"79e5":function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},"7f20":function(t,e,n){var i=n("86cc").f,r=n("69a8"),o=n("2b4c")("toStringTag");t.exports=function(t,e,n){t&&!r(t=n?t:t.prototype,o)&&i(t,o,{configurable:!0,value:e})}},"7f7f":function(t,e,n){var i=n("86cc").f,r=Function.prototype,o=/^\s*function ([^ (]*)/,s="name";s in r||n("9e1e")&&i(r,s,{configurable:!0,get:function(){try{return(""+this).match(o)[1]}catch(t){return""}}})},8378:function(t,e){var n=t.exports={version:"2.6.5"};"number"==typeof __e&&(__e=n)},"84f2":function(t,e){t.exports={}},"86cc":function(t,e,n){var i=n("cb7c"),r=n("c69a"),o=n("6a99"),s=Object.defineProperty;e.f=n("9e1e")?Object.defineProperty:function(t,e,n){if(i(t),e=o(e,!0),i(n),r)try{return s(t,e,n)}catch(a){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},"8aae":function(t,e,n){n("32a6"),t.exports=n("584a").Object.keys},"8b97":function(t,e,n){var i=n("d3f4"),r=n("cb7c"),o=function(t,e){if(r(t),!i(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,i){try{i=n("9b43")(Function.call,n("11e9").f(Object.prototype,"__proto__").set,2),i(t,[]),e=!(t instanceof Array)}catch(r){e=!0}return function(t,n){return o(t,n),e?t.__proto__=n:i(t,n),t}}({},!1):void 0),check:o}},"8bbf":function(e,n){e.exports=t},"8e60":function(t,e,n){t.exports=!n("294c")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},9003:function(t,e,n){var i=n("6b4c");t.exports=Array.isArray||function(t){return"Array"==i(t)}},9093:function(t,e,n){var i=n("ce10"),r=n("e11e").concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return i(t,r)}},"9b43":function(t,e,n){var i=n("d8e8");t.exports=function(t,e,n){if(i(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,i){return t.call(e,n,i)};case 3:return function(n,i,r){return t.call(e,n,i,r)}}return function(){return t.apply(e,arguments)}}},"9c6c":function(t,e,n){var i=n("2b4c")("unscopables"),r=Array.prototype;void 0==r[i]&&n("32e9")(r,i,{}),t.exports=function(t){r[i][t]=!0}},"9cbe":function(t,e,n){e=t.exports=n("2350")(!1),e.push([t.i,'.vue-grid-item{-webkit-transition:all .2s ease;transition:all .2s ease;-webkit-transition-property:left,top,right;transition-property:left,top,right}.vue-grid-item.no-touch{-ms-touch-action:none;touch-action:none}.vue-grid-item.cssTransforms{-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;left:0;right:auto}.vue-grid-item.cssTransforms.render-rtl{left:auto;right:0}.vue-grid-item.resizing{opacity:.6;z-index:3}.vue-grid-item.vue-draggable-dragging{-webkit-transition:none;transition:none;z-index:3}.vue-grid-item.vue-grid-placeholder{background:red;opacity:.2;-webkit-transition-duration:.1s;transition-duration:.1s;z-index:2;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.vue-grid-item>.vue-resizable-handle{position:absolute;width:20px;height:20px;bottom:0;right:0;background:url("data:image/svg+xml;base64,PHN2ZyBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjYiIGhlaWdodD0iNiI+PHBhdGggZD0iTTYgNkgwVjQuMmg0LjJWMEg2djZ6IiBvcGFjaXR5PSIuMzAyIi8+PC9zdmc+");background-position:100% 100%;padding:0 3px 3px 0;background-repeat:no-repeat;background-origin:content-box;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:se-resize}.vue-grid-item>.vue-rtl-resizable-handle{bottom:0;left:0;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTS0xLTFoMTJ2MTJILTF6Ii8+PGc+PHBhdGggc3Ryb2tlLWxpbmVjYXA9InVuZGVmaW5lZCIgc3Ryb2tlLWxpbmVqb2luPSJ1bmRlZmluZWQiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2U9IiMwMDAiIGZpbGw9Im5vbmUiIGQ9Ik0xNDQuODIxLTM4LjM5M2wtMjAuMzU3LTMxLjc4NSIvPjxwYXRoIHN0cm9rZT0iIzY2NiIgc3Ryb2tlLWxpbmVjYXA9InVuZGVmaW5lZCIgc3Ryb2tlLWxpbmVqb2luPSJ1bmRlZmluZWQiIHN0cm9rZS13aWR0aD0iMiIgZmlsbD0ibm9uZSIgZD0iTS45NDctLjAxOHY5LjEyNU0tLjY1NiA5aDEwLjczIi8+PC9nPjwvc3ZnPg==);background-position:0 100%;padding-left:3px;background-repeat:no-repeat;background-origin:content-box;cursor:sw-resize;right:auto}.vue-grid-item.disable-userselect{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}',""])},"9def":function(t,e,n){var i=n("4588"),r=Math.min;t.exports=function(t){return t>0?r(i(t),9007199254740991):0}},"9e1e":function(t,e,n){t.exports=!n("79e5")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},a1ce:function(t,e,n){var i=n("63b6"),r=n("25eb"),o=n("294c"),s=n("e692"),a="["+s+"]",c="​…",u=RegExp("^"+a+a+"*"),l=RegExp(a+a+"*$"),d=function(t,e,n){var r={},a=o(function(){return!!s[t]()||c[t]()!=c}),u=r[t]=a?e(p):s[t];n&&(r[n]=u),i(i.P+i.F*a,"String",r)},p=d.trim=function(t,e){return t=String(r(t)),1&e&&(t=t.replace(u,"")),2&e&&(t=t.replace(l,"")),t};t.exports=d},a21f:function(t,e,n){var i=n("584a"),r=i.JSON||(i.JSON={stringify:JSON.stringify});t.exports=function(t){return r.stringify.apply(r,arguments)}},a481:function(t,e,n){"use strict";var i=n("cb7c"),r=n("4bf8"),o=n("9def"),s=n("4588"),a=n("0390"),c=n("5f1b"),u=Math.max,l=Math.min,d=Math.floor,p=/\$([$&`']|\d\d?|<[^>]*>)/g,f=/\$([$&`']|\d\d?)/g,h=function(t){return void 0===t?t:String(t)};n("214f")("replace",2,function(t,e,n,g){return[function(i,r){var o=t(this),s=void 0==i?void 0:i[e];return void 0!==s?s.call(i,o,r):n.call(String(o),i,r)},function(t,e){var r=g(n,t,this,e);if(r.done)return r.value;var d=i(t),p=String(this),f="function"===typeof e;f||(e=String(e));var m=d.global;if(m){var y=d.unicode;d.lastIndex=0}var b=[];while(1){var x=c(d,p);if(null===x)break;if(b.push(x),!m)break;var w=String(x[0]);""===w&&(d.lastIndex=a(p,o(d.lastIndex),y))}for(var E="",S=0,T=0;T=S&&(E+=p.slice(S,C)+R,S=C+z.length)}return E+p.slice(S)}];function v(t,e,i,o,s,a){var c=i+t.length,u=o.length,l=f;return void 0!==s&&(s=r(s),l=p),n.call(a,l,function(n,r){var a;switch(r.charAt(0)){case"$":return"$";case"&":return t;case"`":return e.slice(0,i);case"'":return e.slice(c);case"<":a=s[r.slice(1,-1)];break;default:var l=+r;if(0===l)return n;if(l>u){var p=d(l/10);return 0===p?n:p<=u?void 0===o[p-1]?r.charAt(1):o[p-1]+r.charAt(1):n}a=o[l-1]}return void 0===a?"":a})}})},a4bb:function(t,e,n){t.exports=n("8aae")},a745:function(t,e,n){t.exports=n("f410")},aa77:function(t,e,n){var i=n("5ca1"),r=n("be13"),o=n("79e5"),s=n("fdef"),a="["+s+"]",c="​…",u=RegExp("^"+a+a+"*"),l=RegExp(a+a+"*$"),d=function(t,e,n){var r={},a=o(function(){return!!s[t]()||c[t]()!=c}),u=r[t]=a?e(p):s[t];n&&(r[n]=u),i(i.P+i.F*a,"String",r)},p=d.trim=function(t,e){return t=String(r(t)),1&e&&(t=t.replace(u,"")),2&e&&(t=t.replace(l,"")),t};t.exports=d},abb4:function(t,e,n){"use strict";t.exports=function(t){function e(){}var n={log:e,warn:e,error:e};if(!t&&window.console){var i=function(t,e){t[e]=function(){var t=console[e];if(t.apply)t.apply(console,arguments);else for(var n=0;n0?r(i(t),9007199254740991):0}},b770:function(t,e,n){"use strict";var i=t.exports={};i.forEach=function(t,e){for(var n=0;nn?n=r:rl)if(a=c[l++],a!=a)return!0}else for(;u>l;l++)if((t||l in c)&&c[l]===n)return t||l||0;return!t&&-1}}},c3a1:function(t,e,n){var i=n("e6f3"),r=n("1691");t.exports=Object.keys||function(t){return i(t,r)}},c5f6:function(t,e,n){"use strict";var i=n("7726"),r=n("69a8"),o=n("2d95"),s=n("5dbc"),a=n("6a99"),c=n("79e5"),u=n("9093").f,l=n("11e9").f,d=n("86cc").f,p=n("aa77").trim,f="Number",h=i[f],g=h,v=h.prototype,m=o(n("2aeb")(v))==f,y="trim"in String.prototype,b=function(t){var e=a(t,!1);if("string"==typeof e&&e.length>2){e=y?e.trim():p(e,3);var n,i,r,o=e.charCodeAt(0);if(43===o||45===o){if(n=e.charCodeAt(2),88===n||120===n)return NaN}else if(48===o){switch(e.charCodeAt(1)){case 66:case 98:i=2,r=49;break;case 79:case 111:i=8,r=55;break;default:return+e}for(var s,c=e.slice(2),u=0,l=c.length;ur)return NaN;return parseInt(c,i)}}return+e};if(!h(" 0o1")||!h("0b1")||h("+0x1")){h=function(t){var e=arguments.length<1?0:t,n=this;return n instanceof h&&(m?c(function(){v.valueOf.call(n)}):o(n)!=f)?s(new g(b(e)),n,h):b(e)};for(var x,w=n("9e1e")?u(g):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),E=0;w.length>E;E++)r(g,x=w[E])&&!r(h,x)&&d(h,x,l(g,x));h.prototype=v,v.constructor=h,n("2aba")(i,f,h)}},c69a:function(t,e,n){t.exports=!n("9e1e")&&!n("79e5")(function(){return 7!=Object.defineProperty(n("230e")("div"),"a",{get:function(){return 7}}).a})},c946:function(t,e,n){"use strict";var i=n("b770").forEach;t.exports=function(t){t=t||{};var e=t.reporter,n=t.batchProcessor,r=t.stateHandler.getState,o=(t.stateHandler.hasState,t.idHandler);if(!n)throw new Error("Missing required dependency: batchProcessor");if(!e)throw new Error("Missing required dependency: reporter.");var s=u(),a="erd_scroll_detection_scrollbar_style",c="erd_scroll_detection_container";function u(){var t=500,e=500,n=document.createElement("div");n.style.cssText="position: absolute; width: "+2*t+"px; height: "+2*e+"px; visibility: hidden; margin: 0; padding: 0;";var i=document.createElement("div");i.style.cssText="position: absolute; width: "+t+"px; height: "+e+"px; overflow: scroll; visibility: none; top: "+3*-t+"px; left: "+3*-e+"px; visibility: hidden; margin: 0; padding: 0;",i.appendChild(n),document.body.insertBefore(i,document.body.firstChild);var r=t-i.clientWidth,o=e-i.clientHeight;return document.body.removeChild(i),{width:r,height:o}}function l(t,e){function n(e,n){n=n||function(t){document.head.appendChild(t)};var i=document.createElement("style");return i.innerHTML=e,i.id=t,n(i),i}if(!document.getElementById(t)){var i=e+"_animation",r=e+"_animation_active",o="/* Created by the element-resize-detector library. */\n";o+="."+e+" > div::-webkit-scrollbar { display: none; }\n\n",o+="."+r+" { -webkit-animation-duration: 0.1s; animation-duration: 0.1s; -webkit-animation-name: "+i+"; animation-name: "+i+"; }\n",o+="@-webkit-keyframes "+i+" { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }\n",o+="@keyframes "+i+" { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }",n(o)}}function d(t){t.className+=" "+c+"_animation_active"}function p(t,n,i){if(t.addEventListener)t.addEventListener(n,i);else{if(!t.attachEvent)return e.error("[scroll] Don't know how to add event listeners.");t.attachEvent("on"+n,i)}}function f(t,n,i){if(t.removeEventListener)t.removeEventListener(n,i);else{if(!t.detachEvent)return e.error("[scroll] Don't know how to remove event listeners.");t.detachEvent("on"+n,i)}}function h(t){return r(t).container.childNodes[0].childNodes[0].childNodes[0]}function g(t){return r(t).container.childNodes[0].childNodes[0].childNodes[1]}function v(t,e){var n=r(t).listeners;if(!n.push)throw new Error("Cannot add listener to an element that is not detectable.");r(t).listeners.push(e)}function m(t,a,u){function l(){if(t.debug){var n=Array.prototype.slice.call(arguments);if(n.unshift(o.get(a),"Scroll: "),e.log.apply)e.log.apply(null,n);else for(var i=0;i=t.length?(this._t=void 0,r(1)):r(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])},"values"),o.Arguments=o.Array,i("keys"),i("values"),i("entries")},cb7c:function(t,e,n){var i=n("d3f4");t.exports=function(t){if(!i(t))throw TypeError(t+" is not an object!");return t}},ce10:function(t,e,n){var i=n("69a8"),r=n("6821"),o=n("c366")(!1),s=n("613b")("IE_PROTO");t.exports=function(t,e){var n,a=r(t),c=0,u=[];for(n in a)n!=s&&i(a,n)&&u.push(n);while(e.length>c)i(a,n=e[c++])&&(~o(u,n)||u.push(n));return u}},ce7e:function(t,e,n){var i=n("63b6"),r=n("584a"),o=n("294c");t.exports=function(t,e){var n=(r.Object||{})[t]||Object[t],s={};s[t]=e(n),i(i.S+i.F*o(function(){n(1)}),"Object",s)}},d3f4:function(t,e){t.exports=function(t){return"object"===typeof t?null!==t:"function"===typeof t}},d53b:function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},d6eb:function(t,e,n){"use strict";var i="_erd";function r(t){return t[i]={},o(t)}function o(t){return t[i]}function s(t){delete t[i]}t.exports={initState:r,getState:o,cleanState:s}},d864:function(t,e,n){var i=n("79aa");t.exports=function(t,e,n){if(i(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,i){return t.call(e,n,i)};case 3:return function(n,i,r){return t.call(e,n,i,r)}}return function(){return t.apply(e,arguments)}}},d8e8:function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},d9f6:function(t,e,n){var i=n("e4ae"),r=n("794b"),o=n("1bc3"),s=Object.defineProperty;e.f=n("8e60")?Object.defineProperty:function(t,e,n){if(i(t),e=o(e,!0),i(n),r)try{return s(t,e,n)}catch(a){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},dbdb:function(t,e,n){var i=n("584a"),r=n("e53d"),o="__core-js_shared__",s=r[o]||(r[o]={});(t.exports=function(t,e){return s[t]||(s[t]=void 0!==e?e:{})})("versions",[]).push({version:i.version,mode:n("b8e3")?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},e11e:function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},e279:function(t,e,n){"use strict";var i=n("1156"),r=n.n(i);r.a},e4ae:function(t,e,n){var i=n("f772");t.exports=function(t){if(!i(t))throw TypeError(t+" is not an object!");return t}},e53d:function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},e692:function(t,e){t.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"},e6f3:function(t,e,n){var i=n("07e3"),r=n("36c3"),o=n("5b4e")(!1),s=n("5559")("IE_PROTO");t.exports=function(t,e){var n,a=r(t),c=0,u=[];for(n in a)n!=s&&i(a,n)&&u.push(n);while(e.length>c)i(a,n=e[c++])&&(~o(u,n)||u.push(n));return u}},e814:function(t,e,n){t.exports=n("b9e9")},eec4:function(t,e,n){"use strict";var i=n("b770").forEach,r=n("5be5"),o=n("49ad"),s=n("2cef"),a=n("5058"),c=n("abb4"),u=n("18e9"),l=n("c274"),d=n("d6eb"),p=n("18d2"),f=n("c946");function h(t){return Array.isArray(t)||void 0!==t.length}function g(t){if(Array.isArray(t))return t;var e=[];return i(t,function(t){e.push(t)}),e}function v(t){return t&&1===t.nodeType}function m(t,e,n){var i=t[e];return void 0!==i&&null!==i||void 0===n?i:n}t.exports=function(t){var e;if(t=t||{},t.idHandler)e={get:function(e){return t.idHandler.get(e,!0)},set:t.idHandler.set};else{var n=s(),y=a({idGenerator:n,stateHandler:d});e=y}var b=t.reporter;if(!b){var x=!1===b;b=c(x)}var w=m(t,"batchProcessor",l({reporter:b})),E={};E.callOnAdd=!!m(t,"callOnAdd",!0),E.debug=!!m(t,"debug",!1);var S,T=o(e),z=r({stateHandler:d}),C=m(t,"strategy","object"),I={reporter:b,batchProcessor:w,stateHandler:d,idHandler:e};if("scroll"===C&&(u.isLegacyOpera()?(b.warn("Scroll strategy is not supported on legacy Opera. Changing to object strategy."),C="object"):u.isIE(9)&&(b.warn("Scroll strategy is not supported on IE9. Changing to object strategy."),C="object")),"scroll"===C)S=f(I);else{if("object"!==C)throw new Error("Invalid strategy name: "+C);S=p(I)}var O={};function M(t,n,r){function o(t){var e=T.get(t);i(e,function(e){e(t)})}function s(t,e,n){T.add(e,n),t&&n(e)}if(r||(r=n,n=t,t={}),!n)throw new Error("At least one element required.");if(!r)throw new Error("Listener required.");if(v(n))n=[n];else{if(!h(n))return b.error("Invalid arguments. Must be a DOM element or a collection of DOM elements.");n=g(n)}var a=0,c=m(t,"callOnAdd",E.callOnAdd),u=m(t,"onReady",function(){}),l=m(t,"debug",E.debug);i(n,function(t){d.getState(t)||(d.initState(t),e.set(t));var p=e.get(t);if(l&&b.log("Attaching listener to element",p,t),!z.isDetectable(t))return l&&b.log(p,"Not detectable."),z.isBusy(t)?(l&&b.log(p,"System busy making it detectable"),s(c,t,r),O[p]=O[p]||[],void O[p].push(function(){a++,a===n.length&&u()})):(l&&b.log(p,"Making detectable..."),z.markBusy(t,!0),S.makeDetectable({debug:l},t,function(t){if(l&&b.log(p,"onElementDetectable"),d.getState(t)){z.markAsDetectable(t),z.markBusy(t,!1),S.addListener(t,o),s(c,t,r);var e=d.getState(t);if(e&&e.startSize){var f=t.offsetWidth,h=t.offsetHeight;e.startSize.width===f&&e.startSize.height===h||o(t)}O[p]&&i(O[p],function(t){t()})}else l&&b.log(p,"Element uninstalled before being detectable.");delete O[p],a++,a===n.length&&u()}));l&&b.log(p,"Already detecable, adding listener."),s(c,t,r),a++}),a===n.length&&u()}function D(t){if(!t)return b.error("At least one element is required.");if(v(t))t=[t];else{if(!h(t))return b.error("Invalid arguments. Must be a DOM element or a collection of DOM elements.");t=g(t)}i(t,function(t){T.removeAllListeners(t),S.uninstall(t),d.cleanState(t)})}return{listenTo:M,removeListener:T.removeListener,removeAllListeners:T.removeAllListeners,uninstall:D}}},f410:function(t,e,n){n("1af6"),t.exports=n("584a").Array.isArray},f499:function(t,e,n){t.exports=n("a21f")},f772:function(t,e){t.exports=function(t){return"object"===typeof t?null!==t:"function"===typeof t}},fa5b:function(t,e,n){t.exports=n("5537")("native-function-to-string",Function.toString)},fab2:function(t,e,n){var i=n("7726").document;t.exports=i&&i.documentElement},fb15:function(t,e,n){"use strict";var i;(n.r(e),"undefined"!==typeof window)&&((i=window.document.currentScript)&&(i=i.src.match(/(.+\/)[^\/]+\.js(\?.*)?$/))&&(n.p=i[1]));n("7f7f");var r=n("a4bb"),o=n.n(r),s=(n("ac6a"),n("8bbf")),a=n.n(s),c=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{ref:"item",staticClass:"vue-grid-item",class:{"vue-resizable":t.resizableAndNotStatic,static:t.static,resizing:t.isResizing,"vue-draggable-dragging":t.isDragging,cssTransforms:t.useCssTransforms,"render-rtl":t.renderRtl,"disable-userselect":t.isDragging,"no-touch":t.isAndroid},style:t.style},[t._t("default"),t.resizableAndNotStatic?n("span",{ref:"handle",class:t.resizableHandleClass}):t._e()],2)},u=[],l=n("e814"),d=n.n(l),p=(n("c5f6"),n("a481"),n("a745")),f=n.n(p),h=(n("55dd"),n("f499")),g=n.n(h);function v(t){for(var e,n=0,i=0,r=t.length;in&&(n=e);return n}function m(t){for(var e=Array(t.length),n=0,i=t.length;n=e.x+e.w)&&(!(t.y+t.h<=e.y)&&!(t.y>=e.y+e.h))))}function x(t,e){for(var n=C(t),i=k(t),r=Array(t.length),o=0,s=i.length;o0&&!T(t,e))e.y--;var i;while(i=T(t,e))e.y=i.y+i.h;return e}function E(t,e){for(var n=C(t),i=0,r=t.length;ie.cols&&(o.x=e.cols-o.w),o.x<0&&(o.x=0,o.w=e.cols),o.static)while(T(n,o))o.y++;else n.push(o)}return t}function S(t,e){for(var n=0,i=t.length;ni;"number"===typeof n&&(e.x=n),"number"===typeof i&&(e.y=i),e.moved=!0;var s=k(t);o&&(s=s.reverse());for(var a=z(s,e),c=0,u=a.length;cl.y&&e.y-l.y>l.h/4||(t=l.static?O(t,l,e,r):O(t,e,l,r)))}return t}function O(t,e,n,i){if(i){var r={x:n.x,y:n.y,w:n.w,h:n.h,i:"-1"};if(r.y=Math.max(e.y-n.h,0),!T(t,r))return I(t,n,void 0,r.y)}return I(t,n,void 0,n.y+1)}function M(t,e,n,i){var r="translate3d("+e+"px,"+t+"px, 0)";return{transform:r,WebkitTransform:r,MozTransform:r,msTransform:r,OTransform:r,width:n+"px",height:i+"px",position:"absolute"}}function D(t,e,n,i){var r="translate3d("+-1*e+"px,"+t+"px, 0)";return{transform:r,WebkitTransform:r,MozTransform:r,msTransform:r,OTransform:r,width:n+"px",height:i+"px",position:"absolute"}}function R(t,e,n,i){return{top:t+"px",left:e+"px",width:n+"px",height:i+"px",position:"absolute"}}function A(t,e,n,i){return{top:t+"px",right:e+"px",width:n+"px",height:i+"px",position:"absolute"}}function k(t){return[].concat(t).sort(function(t,e){return t.y>e.y||t.y===e.y&&t.x>e.x?1:-1})}function P(t,e){e=e||"Layout";var n=["x","y","w","h"];if(!f()(t))throw new Error(e+" must be an array!");for(var i=0,r=t.length;ithis.cols?(this.innerX=0,this.innerW=this.w>this.cols?this.cols:this.w):(this.innerX=this.x,this.innerW=this.w);var t,e=this.calcPosition(this.innerX,this.innerY,this.innerW,this.innerH);this.isDragging&&(e.top=this.dragging.top,this.renderRtl?e.right=this.dragging.left:e.left=this.dragging.left),this.isResizing&&(e.width=this.resizing.width,e.height=this.resizing.height),t=this.useCssTransforms?this.renderRtl?D(e.top,e.right,e.width,e.height):M(e.top,e.left,e.width,e.height):this.renderRtl?A(e.top,e.right,e.width,e.height):R(e.top,e.left,e.width,e.height),this.style=t},handleResize:function(t){if(!this.static){var e=_(t);if(null!=e){var n,i=e.x,r=e.y,o={width:0,height:0};switch(t.type){case"resizestart":this.previousW=this.innerW,this.previousH=this.innerH,n=this.calcPosition(this.innerX,this.innerY,this.innerW,this.innerH),o.width=n.width,o.height=n.height,this.resizing=o,this.isResizing=!0;break;case"resizemove":var s=j(this.lastW,this.lastH,i,r);this.renderRtl?o.width=this.resizing.width-s.deltaX:o.width=this.resizing.width+s.deltaX,o.height=this.resizing.height+s.deltaY,this.resizing=o;break;case"resizeend":n=this.calcPosition(this.innerX,this.innerY,this.innerW,this.innerH),o.width=n.width,o.height=n.height,this.resizing=null,this.isResizing=!1;break}n=this.calcWH(o.height,o.width),n.wthis.maxW&&(n.w=this.maxW),n.hthis.maxH&&(n.h=this.maxH),n.h<1&&(n.h=1),n.w<1&&(n.w=1),this.lastW=i,this.lastH=r,this.innerW===n.w&&this.innerH===n.h||this.$emit("resize",this.i,n.h,n.w,o.height,o.width),"resizeend"!==t.type||this.previousW===this.innerW&&this.previousH===this.innerH||this.$emit("resized",this.i,n.h,n.w,o.height,o.width),this.eventBus.$emit("resizeEvent",t.type,this.i,this.innerX,this.innerY,n.h,n.w)}}},handleDrag:function(t){if(!this.static&&!this.isResizing){var e=_(t);if(null!==e){var n,i=e.x,r=e.y,o={top:0,left:0};switch(t.type){case"dragstart":this.previousX=this.innerX,this.previousY=this.innerY;var s=t.target.offsetParent.getBoundingClientRect(),a=t.target.getBoundingClientRect();this.renderRtl?o.left=-1*(a.right-s.right):o.left=a.left-s.left,o.top=a.top-s.top,this.dragging=o,this.isDragging=!0;break;case"dragend":if(!this.isDragging)return;var c=t.target.offsetParent.getBoundingClientRect(),u=t.target.getBoundingClientRect();this.renderRtl?o.left=-1*(u.right-c.right):o.left=u.left-c.left,o.top=u.top-c.top,this.dragging=null,this.isDragging=!1;break;case"dragmove":var l=j(this.lastX,this.lastY,i,r);this.renderRtl?o.left=this.dragging.left-l.deltaX:o.left=this.dragging.left+l.deltaX,o.top=this.dragging.top+l.deltaY,this.dragging=o;break}n=(this.renderRtl,this.calcXY(o.top,o.left)),this.lastX=i,this.lastY=r,this.innerX===n.x&&this.innerY===n.y||this.$emit("move",this.i,n.x,n.y),"dragend"!==t.type||this.previousX===this.innerX&&this.previousY===this.innerY||this.$emit("moved",this.i,n.x,n.y),this.eventBus.$emit("dragEvent",t.type,this.i,n.x,n.y,this.innerH,this.innerW)}}},calcPosition:function(t,e,n,i){var r,o=this.calcColWidth();return r=this.renderRtl?{right:Math.round(o*t+(t+1)*this.margin[0]),top:Math.round(this.rowHeight*e+(e+1)*this.margin[1]),width:n===1/0?n:Math.round(o*n+Math.max(0,n-1)*this.margin[0]),height:i===1/0?i:Math.round(this.rowHeight*i+Math.max(0,i-1)*this.margin[1])}:{left:Math.round(o*t+(t+1)*this.margin[0]),top:Math.round(this.rowHeight*e+(e+1)*this.margin[1]),width:n===1/0?n:Math.round(o*n+Math.max(0,n-1)*this.margin[0]),height:i===1/0?i:Math.round(this.rowHeight*i+Math.max(0,i-1)*this.margin[1])},r},calcXY:function(t,e){var n=this.calcColWidth(),i=Math.round((e-this.margin[0])/(n+this.margin[0])),r=Math.round((t-this.margin[1])/(this.rowHeight+this.margin[1]));return i=Math.max(Math.min(i,this.cols-this.innerW),0),r=Math.max(Math.min(r,this.maxRows-this.innerH),0),{x:i,y:r}},calcColWidth:function(){var t=(this.containerWidth-this.margin[0]*(this.cols+1))/this.cols;return t},calcWH:function(t,e){var n=this.calcColWidth(),i=Math.round((e+this.margin[0])/(n+this.margin[0])),r=Math.round((t+this.margin[1])/(this.rowHeight+this.margin[1]));return i=Math.max(Math.min(i,this.cols-this.innerX),0),r=Math.max(Math.min(r,this.maxRows-this.innerY),0),{w:i,h:r}},updateWidth:function(t,e){this.containerWidth=t,void 0!==e&&null!==e&&(this.cols=e)},compact:function(){this.createStyle()},tryMakeDraggable:function(){var t=this;if(null!==this.interactObj&&void 0!==this.interactObj||(this.interactObj=F(this.$refs.item)),this.draggable&&!this.static){var e={ignoreFrom:this.dragIgnoreFrom,allowFrom:this.dragAllowFrom};this.interactObj.draggable(e),this.dragEventSet||(this.dragEventSet=!0,this.interactObj.on("dragstart dragmove dragend",function(e){t.handleDrag(e)}))}else this.interactObj.draggable({enabled:!1})},tryMakeResizable:function(){var t=this;if(null!==this.interactObj&&void 0!==this.interactObj||(this.interactObj=F(this.$refs.item)),this.resizable&&!this.static){var e=this.calcPosition(0,0,this.maxW,this.maxH),n=this.calcPosition(0,0,this.minW,this.minH),i={preserveAspectRatio:!0,edges:{left:!1,right:"."+this.resizableHandleClass,bottom:"."+this.resizableHandleClass,top:!1},ignoreFrom:this.resizeIgnoreFrom,restrictSize:{min:{height:n.height,width:n.width},max:{height:e.height,width:e.width}}};this.interactObj.resizable(i),this.resizeEventSet||(this.resizeEventSet=!0,this.interactObj.on("resizestart resizemove resizeend",function(e){t.handleResize(e)}))}else this.interactObj.resizable({enabled:!1})},autoSize:function(){this.previousW=this.innerW,this.previousH=this.innerH;var t=this.$slots.default[0].elm.getBoundingClientRect(),e=this.calcWH(t.height,t.width);e.wthis.maxW&&(e.w=this.maxW),e.hthis.maxH&&(e.h=this.maxH),e.h<1&&(e.h=1),e.w<1&&(e.w=1),this.innerW===e.w&&this.innerH===e.h||this.$emit("resize",this.i,e.h,e.w,t.height,t.width),this.previousW===e.w&&this.previousH===e.h||(this.$emit("resized",this.i,e.h,e.w,t.height,t.width),this.eventBus.$emit("resizeEvent","resizeend",this.i,this.innerX,this.innerY,e.h,e.w))}}},G=U;n("5ed4");function q(t,e,n,i,r,o,s,a){var c,u="function"===typeof t?t.options:t;if(e&&(u.render=e,u.staticRenderFns=n,u._compiled=!0),i&&(u.functional=!0),o&&(u._scopeId="data-v-"+o),s?(c=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||"undefined"===typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(s)},u._ssrRegister=c):r&&(c=a?function(){r.call(this,this.$root.$options.shadowRoot)}:r),c)if(u.functional){u._injectStyles=c;var l=u.render;u.render=function(t,e){return c.call(e),l(t,e)}}else{var d=u.beforeCreate;u.beforeCreate=d?[].concat(d,c):[c]}return{exports:t,options:u}}var V=q(G,c,u,!1,null,null,null),Z=V.exports,J=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{ref:"item",staticClass:"vue-grid-layout",style:t.mergedStyle},[t._t("default"),n("grid-item",{directives:[{name:"show",rawName:"v-show",value:t.isDragging,expression:"isDragging"}],staticClass:"vue-grid-placeholder",attrs:{x:t.placeholder.x,y:t.placeholder.y,w:t.placeholder.w,h:t.placeholder.h,i:t.placeholder.i}})],2)},Q=[];function K(t,e){for(var n=nt(t),i=n[0],r=1,o=n.length;rt[s]&&(i=s)}return i}function tt(t,e){if(!e[t])throw new Error("ResponsiveGridLayout: `cols` entry for breakpoint "+t+" is missing!");return e[t]}function et(t,e,n,i,r,o,s){if(e[i])return m(e[i]);for(var a=t,c=nt(n),u=c.slice(c.indexOf(i)),l=0,d=u.length;l0&&(this.layout.length>this.originalLayout.length?this.originalLayout=this.originalLayout.concat(t):this.originalLayout=this.originalLayout.filter(function(e){return!t.some(function(t){return e.i===t.i})})),this.lastLayoutLength=this.layout.length,this.initResponsiveFeatures()}x(this.layout,this.verticalCompact),this.eventBus.$emit("updateWidth",this.width),this.updateHeight()}},updateHeight:function(){this.mergedStyle={height:this.containerHeight()}},onWindowResize:function(){null!==this.$refs&&null!==this.$refs.item&&void 0!==this.$refs.item&&(this.width=this.$refs.item.offsetWidth),this.eventBus.$emit("resizeEvent")},containerHeight:function(){if(this.autoSize)return v(this.layout)*(this.rowHeight+this.margin[1])+this.margin[1]+"px"},dragEvent:function(t,e,n,i,r,o){var s=S(this.layout,e);void 0!==s&&null!==s||(s={x:0,y:0}),"dragmove"===t||"dragstart"===t?(this.placeholder.i=e,this.placeholder.x=s.x,this.placeholder.y=s.y,this.placeholder.w=o,this.placeholder.h=r,this.$nextTick(function(){this.isDragging=!0}),this.eventBus.$emit("updateWidth",this.width)):this.$nextTick(function(){this.isDragging=!1}),s.x=n,s.y=i,this.layout=I(this.layout,s,n,i,!0),x(this.layout,this.verticalCompact),this.eventBus.$emit("compact"),this.updateHeight(),"dragend"===t&&this.$emit("layout-updated",this.layout)},resizeEvent:function(t,e,n,i,r,o){"resizestart"===t||"resizemove"===t?(this.placeholder.i=e,this.placeholder.x=n,this.placeholder.y=i,this.placeholder.w=o,this.placeholder.h=r,this.$nextTick(function(){this.isDragging=!0}),this.eventBus.$emit("updateWidth",this.width)):this.$nextTick(function(){this.isDragging=!1});var s=S(this.layout,e);void 0!==s&&null!==s||(s={h:0,w:0}),s.h=r,s.w=o,this.responsive&&this.responsiveGridLayout(),x(this.layout,this.verticalCompact),this.eventBus.$emit("compact"),this.updateHeight(),"resizeend"===t&&this.$emit("layout-updated",this.layout)},responsiveGridLayout:function(){var t=K(this.breakpoints,this.width),e=tt(t,this.cols);null==this.lastBreakpoint||this.layouts[this.lastBreakpoint]||(this.layouts[this.lastBreakpoint]=m(this.layout));var n=et(this.originalLayout,this.layouts,this.breakpoints,t,this.lastBreakpoint,e,this.verticalCompact);this.layouts[t]=n,this.$emit("update:layout",n),this.lastBreakpoint=t,this.eventBus.$emit("setColNum",tt(t,this.cols))},initResponsiveFeatures:function(){this.layouts={}},findDifference:function(t,e){var n=t.filter(function(t){return!e.some(function(e){return t.i===e.i})}),i=e.filter(function(e){return!t.some(function(t){return e.i===t.i})});return n.concat(i)}}},ot=rt,st=(n("e279"),q(ot,J,Q,!1,null,null,null)),at=st.exports,ct={GridLayout:at,GridItem:Z};o()(ct).forEach(function(t){a.a.component(t,ct[t])});var ut=ct;n.d(e,"GridLayout",function(){return at}),n.d(e,"GridItem",function(){return Z});e["default"]=ut},fb3a:function(t,e,n){var i;(function(e){t.exports=e()})(function(){return function t(e,n,r){function o(a,c){if(!n[a]){if(!e[a]){var u="function"==typeof i&&i;if(!c&&u)return i(a,!0);if(s)return s(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var d=n[a]={exports:{}};e[a][0].call(d.exports,function(t){var n=e[a][1][t];return o(n||t)},d,d.exports,t,e,n,r)}return n[a].exports}for(var s="function"==typeof i&&i,a=0;a6&&void 0!==arguments[6]&&arguments[6];i(this,t);var f=e.target,h=(f&&f.options||s).deltaSource,g=o(f,l,c),v="start"===u,m="end"===u,y=v?e.startCoords:e.curCoords,b=e.prevEvent;l=l||e.element;var x=r({},y.page),w=r({},y.client);x.x-=g.x,x.y-=g.y,w.x-=g.x,w.y-=g.y,this.ctrlKey=n.ctrlKey,this.altKey=n.altKey,this.shiftKey=n.shiftKey,this.metaKey=n.metaKey,this.button=n.button,this.buttons=n.buttons,this.target=l,this.currentTarget=l,this.relatedTarget=d||null,this.preEnd=p,this.type=c+(u||""),this.interaction=e,this.interactable=f,this.t0=v?e.downTimes[e.downTimes.length-1]:b.t0;var E={interaction:e,event:n,action:c,phase:u,element:l,related:d,page:x,client:w,coords:y,starting:v,ending:m,deltaSource:h,iEvent:this};a.fire("set-xy",E),m?(this.pageX=b.pageX,this.pageY=b.pageY,this.clientX=b.clientX,this.clientY=b.clientY):(this.pageX=x.x,this.pageY=x.y,this.clientX=w.x,this.clientY=w.y),this.x0=e.startCoords.page.x-g.x,this.y0=e.startCoords.page.y-g.y,this.clientX0=e.startCoords.client.x-g.x,this.clientY0=e.startCoords.client.y-g.y,a.fire("set-delta",E),this.timeStamp=y.timeStamp,this.dt=e.pointerDelta.timeStamp,this.duration=this.timeStamp-this.t0,this.speed=e.pointerDelta[h].speed,this.velocityX=e.pointerDelta[h].vx,this.velocityY=e.pointerDelta[h].vy,this.swipe=m||"inertiastart"===u?this.getSwipe():null,a.fire("new",E)}return t.prototype.getSwipe=function(){var t=this.interaction;if(t.prevEvent.speed<600||this.timeStamp-t.prevEvent.timeStamp>150)return null;var e=180*Math.atan2(t.prevEvent.velocityY,t.prevEvent.velocityX)/Math.PI,n=22.5;e<0&&(e+=360);var i=135-n<=e&&e<225+n,r=225-n<=e&&e<315+n,o=!i&&(315-n<=e||e<45+n),s=!r&&45-n<=e&&e<135+n;return{up:r,down:s,left:i,right:o,angle:e,speed:t.prevEvent.speed,velocity:{x:t.prevEvent.velocityX,y:t.prevEvent.velocityY}}},t.prototype.preventDefault=function(){},t.prototype.stopImmediatePropagation=function(){this.immediatePropagationStopped=this.propagationStopped=!0},t.prototype.stopPropagation=function(){this.propagationStopped=!0},t}();a.on("set-delta",function(t){var e=t.iEvent,n=t.interaction,i=t.starting,r=t.deltaSource,o=i?e:n.prevEvent;"client"===r?(e.dx=e.clientX-o.clientX,e.dy=e.clientY-o.clientY):(e.dx=e.pageX-o.pageX,e.dy=e.pageY-o.pageY)}),c.signals=a,e.exports=c},{"./defaultOptions":18,"./utils/Signals":34,"./utils/extend":41,"./utils/getOriginXY":42}],4:[function(t,e,n){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var r=t("./utils/clone"),o=t("./utils/is"),s=t("./utils/events"),a=t("./utils/extend"),c=t("./actions/base"),u=t("./scope"),l=t("./Eventable"),d=t("./defaultOptions"),p=t("./utils/Signals").new(),f=t("./utils/domUtils"),h=f.getElementRect,g=f.nodeContains,v=f.trySelector,m=f.matchesSelector,y=t("./utils/window"),b=y.getWindow,x=t("./utils/arr"),w=x.contains,E=t("./utils/browser"),S=E.wheelEvent;u.interactables=[];var T=function(){function t(e,n){i(this,t),n=n||{},this.target=e,this.events=new l,this._context=n.context||u.document,this._win=b(v(e)?this._context:e),this._doc=this._win.document,p.fire("new",{target:e,options:n,interactable:this,win:this._win}),u.addDocument(this._doc,this._win),u.interactables.push(this),this.set(n)}return t.prototype.setOnEvents=function(t,e){var n="on"+t;return o.function(e.onstart)&&(this.events[n+"start"]=e.onstart),o.function(e.onmove)&&(this.events[n+"move"]=e.onmove),o.function(e.onend)&&(this.events[n+"end"]=e.onend),o.function(e.oninertiastart)&&(this.events[n+"inertiastart"]=e.oninertiastart),this},t.prototype.setPerAction=function(t,e){for(var n in e)n in d[t]&&(o.object(e[n])?(this.options[t][n]=r(this.options[t][n]||{}),a(this.options[t][n],e[n]),o.object(d.perAction[n])&&"enabled"in d.perAction[n]&&(this.options[t][n].enabled=!1!==e[n].enabled)):o.bool(e[n])&&o.object(d.perAction[n])?this.options[t][n].enabled=e[n]:void 0!==e[n]&&(this.options[t][n]=e[n]))},t.prototype.getRect=function(t){return t=t||this.target,o.string(this.target)&&!o.element(t)&&(t=this._context.querySelector(this.target)),h(t)},t.prototype.rectChecker=function(t){return o.function(t)?(this.getRect=t,this):null===t?(delete this.options.getRect,this):this.getRect},t.prototype._backCompatOption=function(t,e){if(v(e)||o.object(e)){this.options[t]=e;for(var n=0;nt.pointerMoveTolerance);var c={pointer:e,pointerIndex:this.getPointerIndex(e),event:n,eventTarget:i,dx:s,dy:a,duplicate:r,interaction:this,interactingBeforeMove:this.interacting()};r||o.setCoordDeltas(this.pointerDelta,this.prevCoords,this.curCoords),l.fire("move",c),r||(this.interacting()&&this.doMove(c),this.pointerWasMoved&&o.copyCoords(this.prevCoords,this.curCoords))},t.prototype.doMove=function(t){t=o.extend({pointer:this.pointers[0],event:this.prevEvent,eventTarget:this._eventTarget,interaction:this},t||{}),l.fire("before-action-move",t),this._dontFireMove||l.fire("action-move",t),this._dontFireMove=!1},t.prototype.pointerUp=function(t,e,n,i){var r=this.getPointerIndex(t);l.fire(/cancel$/i.test(e.type)?"cancel":"up",{pointer:t,pointerIndex:r,event:e,eventTarget:n,curEventTarget:i,interaction:this}),this.simulation||this.end(e),this.pointerIsDown=!1,this.removePointer(t,e)},t.prototype.end=function(t){this._ending=!0,t=t||this.prevEvent,this.interacting()&&l.fire("action-end",{event:t,interaction:this}),this.stop(),this._ending=!1},t.prototype.currentAction=function(){return this._interacting?this.prepared.name:null},t.prototype.interacting=function(){return this._interacting},t.prototype.stop=function(){l.fire("stop",{interaction:this}),this._interacting&&(l.fire("stop-active",{interaction:this}),l.fire("stop-"+this.prepared.name,{interaction:this})),this.target=this.element=null,this._interacting=!1,this.prepared.name=this.prevEvent=null},t.prototype.getPointerIndex=function(t){return"mouse"===this.pointerType||"pen"===this.pointerType?0:this.pointerIds.indexOf(o.getPointerId(t))},t.prototype.updatePointer=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e&&/(down|start)$/i.test(e.type),i=o.getPointerId(t),r=this.getPointerIndex(t);return-1===r&&(r=this.pointerIds.length,this.pointerIds[r]=i),n&&l.fire("update-pointer-down",{pointer:t,event:e,down:n,pointerId:i,pointerIndex:r,interaction:this}),this.pointers[r]=t,r},t.prototype.removePointer=function(t,e){var n=this.getPointerIndex(t);-1!==n&&(l.fire("remove-pointer",{pointer:t,event:e,pointerIndex:n,interaction:this}),this.pointers.splice(n,1),this.pointerIds.splice(n,1),this.downTargets.splice(n,1),this.downTimes.splice(n,1))},t.prototype._updateEventTargets=function(t,e){this._eventTarget=t,this._curEventTarget=e},t}(),g=0;gs.left&&l.xs.top&&l.y=s.left&&h<=s.right&&g>=s.top&&g<=s.bottom}if(f&&r.is.number(c)){var v=Math.max(0,Math.min(s.right,f.right)-Math.max(s.left,f.left))*Math.max(0,Math.min(s.bottom,f.bottom)-Math.max(s.top,f.top)),m=v/(f.width*f.height);a=m>=c}return this.options.drop.checker&&(a=this.options.drop.checker(t,e,a,this,o,n,i)),a},c.signals.on("unset",function(t){var e=t.interactable;e.dropzone(!1)}),c.settingsMethods.push("dropChecker"),u.signals.on("new",function(t){t.dropTarget=null,t.dropElement=null,t.prevDropTarget=null,t.prevDropElement=null,t.dropEvents=null,t.activeDrops={dropzones:[],elements:[],rects:[]}}),u.signals.on("stop",function(t){var e=t.interaction;e.dropTarget=e.dropElement=e.prevDropTarget=e.prevDropElement=null}),s.dynamicDrop=function(t){return r.is.bool(t)?(p=t,s):p},r.merge(c.eventTypes,["dragenter","dragleave","dropactivate","dropdeactivate","dropmove","drop"]),i.methodDict.drop="dropzone",l.drop=d.defaults,e.exports=d},{"../InteractEvent":3,"../Interactable":4,"../Interaction":5,"../defaultOptions":18,"../interact":21,"../scope":33,"../utils":44,"./base":6}],9:[function(t,e,n){"use strict";var i=t("./base"),r=t("../utils"),o=t("../InteractEvent"),s=t("../Interactable"),a=t("../Interaction"),c=t("../defaultOptions"),u={defaults:{enabled:!1,origin:null,restrict:null},checker:function(t,e,n,i,r){return r.pointerIds.length>=2?{name:"gesture"}:null},getCursor:function(){return""}};o.signals.on("new",function(t){var e=t.iEvent,n=t.interaction;"gesturestart"===e.type&&(e.ds=0,n.gesture.startDistance=n.gesture.prevDistance=e.distance,n.gesture.startAngle=n.gesture.prevAngle=e.angle,n.gesture.scale=1)}),o.signals.on("new",function(t){var e=t.iEvent,n=t.interaction;"gesturemove"===e.type&&(e.ds=e.scale-n.gesture.scale,n.target.fire(e),n.gesture.prevAngle=e.angle,n.gesture.prevDistance=e.distance,e.scale===1/0||null===e.scale||void 0===e.scale||isNaN(e.scale)||(n.gesture.scale=e.scale))}),s.prototype.gesturable=function(t){return r.is.object(t)?(this.options.gesture.enabled=!1!==t.enabled,this.setPerAction("gesture",t),this.setOnEvents("gesture",t),this):r.is.bool(t)?(this.options.gesture.enabled=t,t||(this.ongesturestart=this.ongesturestart=this.ongestureend=null),this):this.options.gesture},o.signals.on("set-delta",function(t){var e=t.interaction,n=t.iEvent,i=t.action,s=t.event,a=t.starting,c=t.ending,u=t.deltaSource;if("gesture"===i){var l=e.pointers;n.touches=[l[0],l[1]],a?(n.distance=r.touchDistance(l,u),n.box=r.touchBBox(l),n.scale=1,n.ds=0,n.angle=r.touchAngle(l,void 0,u),n.da=0):c||s instanceof o?(n.distance=e.prevEvent.distance,n.box=e.prevEvent.box,n.scale=e.prevEvent.scale,n.ds=n.scale-1,n.angle=e.prevEvent.angle,n.da=n.angle-e.gesture.startAngle):(n.distance=r.touchDistance(l,u),n.box=r.touchBBox(l),n.scale=n.distance/e.gesture.startDistance,n.angle=r.touchAngle(l,e.gesture.prevAngle,u),n.ds=n.scale-e.gesture.prevScale,n.da=n.angle-e.gesture.prevAngle)}}),a.signals.on("new",function(t){t.gesture={start:{x:0,y:0},startDistance:0,prevDistance:0,distance:0,scale:1,startAngle:0,prevAngle:0}}),i.gesture=u,i.names.push("gesture"),r.merge(s.eventTypes,["gesturestart","gesturemove","gestureend"]),i.methodDict.gesture="gesturable",c.gesture=u.defaults,e.exports=u},{"../InteractEvent":3,"../Interactable":4,"../Interaction":5,"../defaultOptions":18,"../utils":44,"./base":6}],10:[function(t,e,n){"use strict";var i=t("./base"),r=t("../utils"),o=t("../utils/browser"),s=t("../InteractEvent"),a=t("../Interactable"),c=t("../Interaction"),u=t("../defaultOptions"),l=o.supportsTouch||o.supportsPointerEvent?20:10,d={defaults:{enabled:!1,mouseButtons:null,origin:null,snap:null,restrict:null,inertia:null,autoScroll:null,square:!1,preserveAspectRatio:!1,axis:"xy",margin:NaN,edges:null,invert:"none"},checker:function(t,e,n,i,o,s){if(!s)return null;var a=r.extend({},o.curCoords.page),c=n.options;if(c.resize.enabled){var u=c.resize,d={left:!1,right:!1,top:!1,bottom:!1};if(r.is.object(u.edges)){for(var f in d)d[f]=p(f,u.edges[f],a,o._eventTarget,i,s,u.margin||l);if(d.left=d.left&&!d.right,d.top=d.top&&!d.bottom,d.left||d.right||d.top||d.bottom)return{name:"resize",edges:d}}else{var h="y"!==c.resize.axis&&a.x>s.right-l,g="x"!==c.resize.axis&&a.y>s.bottom-l;if(h||g)return{name:"resize",axes:(h?"x":"")+(g?"y":"")}}}return null},cursors:o.isIe9?{x:"e-resize",y:"s-resize",xy:"se-resize",top:"n-resize",left:"w-resize",bottom:"s-resize",right:"e-resize",topleft:"se-resize",bottomright:"se-resize",topright:"ne-resize",bottomleft:"ne-resize"}:{x:"ew-resize",y:"ns-resize",xy:"nwse-resize",top:"ns-resize",left:"ew-resize",bottom:"ns-resize",right:"ew-resize",topleft:"nwse-resize",bottomright:"nwse-resize",topright:"nesw-resize",bottomleft:"nesw-resize"},getCursor:function(t){if(t.axis)return d.cursors[t.name+t.axis];if(t.edges){for(var e="",n=["top","bottom","left","right"],i=0;i<4;i++)t.edges[n[i]]&&(e+=n[i]);return d.cursors[e]}}};function p(t,e,n,i,o,s,a){if(!e)return!1;if(!0===e){var c=r.is.number(s.width)?s.width:s.right-s.left,u=r.is.number(s.height)?s.height:s.bottom-s.top;if(c<0&&("left"===t?t="right":"right"===t&&(t="left")),u<0&&("top"===t?t="bottom":"bottom"===t&&(t="top")),"left"===t)return n.x<(c>=0?s.left:s.right)+a;if("top"===t)return n.y<(u>=0?s.top:s.bottom)+a;if("right"===t)return n.x>(c>=0?s.right:s.left)-a;if("bottom"===t)return n.y>(u>=0?s.bottom:s.top)-a}return!!r.is.element(i)&&(r.is.element(e)?e===i:r.matchesUpTo(i,e,o))}s.signals.on("new",function(t){var e=t.iEvent,n=t.interaction;if("resizestart"===e.type&&n.prepared.edges){var i=n.target.getRect(n.element),o=n.target.options.resize;if(o.square||o.preserveAspectRatio){var s=r.extend({},n.prepared.edges);s.top=s.top||s.left&&!s.bottom,s.left=s.left||s.top&&!s.right,s.bottom=s.bottom||s.right&&!s.top,s.right=s.right||s.bottom&&!s.left,n.prepared._linkedEdges=s}else n.prepared._linkedEdges=null;o.preserveAspectRatio&&(n.resizeStartAspectRatio=i.width/i.height),n.resizeRects={start:i,current:r.extend({},i),inverted:r.extend({},i),previous:r.extend({},i),delta:{left:0,right:0,width:0,top:0,bottom:0,height:0}},e.rect=n.resizeRects.inverted,e.deltaRect=n.resizeRects.delta}}),s.signals.on("new",function(t){var e=t.iEvent,n=t.phase,i=t.interaction;if("move"===n&&i.prepared.edges){var o=i.target.options.resize,s=o.invert,a="reposition"===s||"negate"===s,c=i.prepared.edges,u=i.resizeRects.start,l=i.resizeRects.current,d=i.resizeRects.inverted,p=i.resizeRects.delta,f=r.extend(i.resizeRects.previous,d),h=c,g=e.dx,v=e.dy;if(o.preserveAspectRatio||o.square){var m=o.preserveAspectRatio?i.resizeStartAspectRatio:1;c=i.prepared._linkedEdges,h.left&&h.bottom||h.right&&h.top?v=-g/m:h.left||h.right?v=g/m:(h.top||h.bottom)&&(g=v*m)}if(c.top&&(l.top+=v),c.bottom&&(l.bottom+=v),c.left&&(l.left+=g),c.right&&(l.right+=g),a){if(r.extend(d,l),"reposition"===s){var y=void 0;d.top>d.bottom&&(y=d.top,d.top=d.bottom,d.bottom=y),d.left>d.right&&(y=d.left,d.left=d.right,d.right=y)}}else d.top=Math.min(l.top,u.bottom),d.bottom=Math.max(l.bottom,u.top),d.left=Math.min(l.left,u.right),d.right=Math.max(l.right,u.left);for(var b in d.width=d.right-d.left,d.height=d.bottom-d.top,d)p[b]=d[b]-f[b];e.edges=i.prepared.edges,e.rect=d,e.deltaRect=p}}),a.prototype.resizable=function(t){return r.is.object(t)?(this.options.resize.enabled=!1!==t.enabled,this.setPerAction("resize",t),this.setOnEvents("resize",t),/^x$|^y$|^xy$/.test(t.axis)?this.options.resize.axis=t.axis:null===t.axis&&(this.options.resize.axis=u.resize.axis),r.is.bool(t.preserveAspectRatio)?this.options.resize.preserveAspectRatio=t.preserveAspectRatio:r.is.bool(t.square)&&(this.options.resize.square=t.square),this):r.is.bool(t)?(this.options.resize.enabled=t,t||(this.onresizestart=this.onresizestart=this.onresizeend=null),this):this.options.resize},c.signals.on("new",function(t){t.resizeAxes="xy"}),s.signals.on("set-delta",function(t){var e=t.interaction,n=t.iEvent,i=t.action;if("resize"===i&&e.resizeAxes){var r=e.target.options;r.resize.square?("y"===e.resizeAxes?n.dx=n.dy:n.dy=n.dx,n.axes="xy"):(n.axes=e.resizeAxes,"x"===e.resizeAxes?n.dy=0:"y"===e.resizeAxes&&(n.dx=0))}}),i.resize=d,i.names.push("resize"),r.merge(a.eventTypes,["resizestart","resizemove","resizeinertiastart","resizeinertiaresume","resizeend"]),i.methodDict.resize="resizable",u.resize=d.defaults,e.exports=d},{"../InteractEvent":3,"../Interactable":4,"../Interaction":5,"../defaultOptions":18,"../utils":44,"../utils/browser":36,"./base":6}],11:[function(t,e,n){"use strict";var i=t("./utils/raf"),r=t("./utils/window").getWindow,o=t("./utils/is"),s=t("./utils/domUtils"),a=t("./Interaction"),c=t("./defaultOptions"),u={defaults:{enabled:!1,container:null,margin:60,speed:300},interaction:null,i:null,x:0,y:0,isScrolling:!1,prevTime:0,start:function(t){u.isScrolling=!0,i.cancel(u.i),u.interaction=t,u.prevTime=(new Date).getTime(),u.i=i.request(u.scroll)},stop:function(){u.isScrolling=!1,i.cancel(u.i)},scroll:function(){var t=u.interaction.target.options[u.interaction.prepared.name].autoScroll,e=t.container||r(u.interaction.element),n=(new Date).getTime(),s=(n-u.prevTime)/1e3,a=t.speed*s;a>=1&&(o.window(e)?e.scrollBy(u.x*a,u.y*a):e&&(e.scrollLeft+=u.x*a,e.scrollTop+=u.y*a),u.prevTime=n),u.isScrolling&&(i.cancel(u.i),u.i=i.request(u.scroll))},check:function(t,e){var n=t.options;return n[e].autoScroll&&n[e].autoScroll.enabled},onInteractionMove:function(t){var e=t.interaction,n=t.pointer;if(e.interacting()&&u.check(e.target,e.prepared.name))if(e.simulation)u.x=u.y=0;else{var i=void 0,a=void 0,c=void 0,l=void 0,d=e.target.options[e.prepared.name].autoScroll,p=d.container||r(e.element);if(o.window(p))l=n.clientXp.innerWidth-u.margin,c=n.clientY>p.innerHeight-u.margin;else{var f=s.getElementClientRect(p);l=n.clientXf.right-u.margin,c=n.clientY>f.bottom-u.margin}u.x=a?1:l?-1:0,u.y=c?1:i?-1:0,u.isScrolling||(u.margin=d.margin,u.speed=d.speed,u.start(e))}}};a.signals.on("stop-active",function(){u.stop()}),a.signals.on("action-move",u.onInteractionMove),c.perAction.autoScroll=u.defaults,e.exports=u},{"./Interaction":5,"./defaultOptions":18,"./utils/domUtils":39,"./utils/is":46,"./utils/raf":50,"./utils/window":52}],12:[function(t,e,n){"use strict";var i=t("../Interactable"),r=t("../actions/base"),o=t("../utils/is"),s=t("../utils/domUtils"),a=t("../utils"),c=a.warnOnce;i.prototype.getAction=function(t,e,n,i){var r=this.defaultActionChecker(t,e,n,i);return this.options.actionChecker?this.options.actionChecker(t,e,r,this,i,n):r},i.prototype.ignoreFrom=c(function(t){return this._backCompatOption("ignoreFrom",t)},"Interactable.ignoreForm() has been deprecated. Use Interactble.draggable({ignoreFrom: newValue})."),i.prototype.allowFrom=c(function(t){return this._backCompatOption("allowFrom",t)},"Interactable.allowForm() has been deprecated. Use Interactble.draggable({allowFrom: newValue})."),i.prototype.testIgnore=function(t,e,n){return!(!t||!o.element(n))&&(o.string(t)?s.matchesUpTo(n,t,e):!!o.element(t)&&s.nodeContains(t,n))},i.prototype.testAllow=function(t,e,n){return!t||!!o.element(n)&&(o.string(t)?s.matchesUpTo(n,t,e):!!o.element(t)&&s.nodeContains(t,n))},i.prototype.testIgnoreAllow=function(t,e,n){return!this.testIgnore(t.ignoreFrom,e,n)&&this.testAllow(t.allowFrom,e,n)},i.prototype.actionChecker=function(t){return o.function(t)?(this.options.actionChecker=t,this):null===t?(delete this.options.actionChecker,this):this.options.actionChecker},i.prototype.styleCursor=function(t){return o.bool(t)?(this.options.styleCursor=t,this):null===t?(delete this.options.styleCursor,this):this.options.styleCursor},i.prototype.defaultActionChecker=function(t,e,n,i){for(var o=this.getRect(i),s=e.buttons||{0:1,1:4,3:8,4:16}[e.button],a=null,c=0;c=d.maxInteractions)return!1;if(f.target===t){if(a+=h===n.name|0,a>=r)return!1;if(f.element===e&&(u++,h!==n.name||u>=o))return!1}}}return d.maxInteractions>0}}o.signals.on("down",function(t){var e=t.interaction,n=t.pointer,i=t.event,r=t.eventTarget;if(!e.interacting()){var o=h(e,n,i,r);g(e,o)}}),o.signals.on("move",function(t){var e=t.interaction,n=t.pointer,i=t.event,r=t.eventTarget;if("mouse"===e.pointerType&&!e.pointerIsDown&&!e.interacting()){var o=h(e,n,i,r);g(e,o)}}),o.signals.on("move",function(t){var e=t.interaction,n=t.event;if(e.pointerIsDown&&!e.interacting()&&e.pointerWasMoved&&e.prepared.name){l.fire("before-start",t);var i=e.target;e.prepared.name&&i&&(i.options[e.prepared.name].manualStart||!v(i,e.element,e.prepared)?e.stop(n):e.start(e.prepared,i,e.element))}}),o.signals.on("stop",function(t){var e=t.interaction,n=e.target;n&&n.options.styleCursor&&(n._doc.documentElement.style.cursor="")}),i.maxInteractions=function(t){return u.is.number(t)?(d.maxInteractions=t,i):d.maxInteractions},r.settingsMethods.push("styleCursor"),r.settingsMethods.push("actionChecker"),r.settingsMethods.push("ignoreFrom"),r.settingsMethods.push("allowFrom"),a.base.actionChecker=null,a.base.styleCursor=!0,u.extend(a.perAction,d.defaults.perAction),e.exports=d},{"../Interactable":4,"../Interaction":5,"../actions/base":6,"../defaultOptions":18,"../interact":21,"../scope":33,"../utils":44,"../utils/Signals":34,"./InteractableMethods":12}],14:[function(t,e,n){"use strict";var i=t("./base"),r=t("../scope"),o=t("../utils/is"),s=t("../utils/domUtils"),a=s.parentNode;function c(t,e){if(!e)return!1;var n=e.options.drag.startAxis;return"xy"===t||"xy"===n||n===t}i.setActionDefaults(t("../actions/drag")),i.signals.on("before-start",function(t){var e=t.interaction,n=t.eventTarget,s=t.dx,u=t.dy;if("drag"===e.prepared.name){var l=Math.abs(s),d=Math.abs(u),p=e.target.options.drag,f=p.startAxis,h=l>d?"x":l0&&(e.autoStartHoldTimer=setTimeout(function(){e.start(e.prepared,e.target,e.element)},n))}),r.signals.on("move",function(t){var e=t.interaction,n=t.duplicate;e.pointerWasMoved&&!n&&clearTimeout(e.autoStartHoldTimer)}),i.signals.on("before-start",function(t){var e=t.interaction,n=o(e);n>0&&(e.prepared.name=null)}),e.exports={getHoldDuration:o}},{"../Interaction":5,"./base":13}],17:[function(t,e,n){"use strict";t("./base").setActionDefaults(t("../actions/resize"))},{"../actions/resize":10,"./base":13}],18:[function(t,e,n){"use strict";e.exports={base:{accept:null,preventDefault:"auto",deltaSource:"page"},perAction:{origin:{x:0,y:0},inertia:{enabled:!1,resistance:10,minSpeed:100,endSpeed:10,allowResume:!0,smoothEndDuration:300}}}},{}],19:[function(t,e,n){"use strict";t("./inertia"),t("./modifiers/snap"),t("./modifiers/restrict"),t("./pointerEvents/base"),t("./pointerEvents/holdRepeat"),t("./pointerEvents/interactableTargets"),t("./autoStart/hold"),t("./actions/gesture"),t("./actions/resize"),t("./actions/drag"),t("./actions/drop"),t("./modifiers/snapSize"),t("./modifiers/restrictEdges"),t("./modifiers/restrictSize"),t("./autoStart/gesture"),t("./autoStart/resize"),t("./autoStart/drag"),t("./interactablePreventDefault.js"),t("./autoScroll"),e.exports=t("./interact")},{"./actions/drag":7,"./actions/drop":8,"./actions/gesture":9,"./actions/resize":10,"./autoScroll":11,"./autoStart/drag":14,"./autoStart/gesture":15,"./autoStart/hold":16,"./autoStart/resize":17,"./inertia":20,"./interact":21,"./interactablePreventDefault.js":22,"./modifiers/restrict":24,"./modifiers/restrictEdges":25,"./modifiers/restrictSize":26,"./modifiers/snap":27,"./modifiers/snapSize":28,"./pointerEvents/base":30,"./pointerEvents/holdRepeat":31,"./pointerEvents/interactableTargets":32}],20:[function(t,e,n){"use strict";var i=t("./InteractEvent"),r=t("./Interaction"),o=t("./modifiers/base"),s=t("./utils"),a=t("./utils/raf");function c(t,e){var n=t.target.options[t.prepared.name].inertia,i=n.resistance,r=-Math.log(n.endSpeed/e.v0)/i;e.x0=t.prevEvent.pageX,e.y0=t.prevEvent.pageY,e.t0=e.startEvent.timeStamp/1e3,e.sx=e.sy=0,e.modifiedXe=e.xe=(e.vx0-r)/i,e.modifiedYe=e.ye=(e.vy0-r)/i,e.te=r,e.lambda_v0=i/e.v0,e.one_ve_v0=1-n.endSpeed/e.v0}function u(){d(this),s.setCoordDeltas(this.pointerDelta,this.prevCoords,this.curCoords);var t=this.inertiaStatus,e=this.target.options[this.prepared.name].inertia,n=e.resistance,i=(new Date).getTime()/1e3-t.t0;if(id.minSpeed&&g>d.endSpeed,x={interaction:e,pageCoords:h,statuses:f,preEnd:!0,requireEndOnly:!0};y&&!b&&(o.resetStatuses(f),m=o.setAll(x),m.shouldMove&&m.locked&&(v=!0)),(b||v)&&(s.copyCoords(r.upCoords,e.curCoords),e.pointers[0]=r.startEvent=new i(e,n,e.prepared.name,"inertiastart",e.element),r.t0=p,r.active=!0,r.allowResume=d.allowResume,e.simulation=r,u.fire(r.startEvent),b?(r.vx0=e.pointerDelta.client.vx,r.vy0=e.pointerDelta.client.vy,r.v0=g,c(e,r),s.extend(h,e.curCoords.page),h.x+=r.xe,h.y+=r.ye,o.resetStatuses(f),m=o.setAll(x),r.modifiedXe+=m.dx,r.modifiedYe+=m.dy,r.i=a.request(e.boundInertiaFrame)):(r.smoothEnd=!0,r.xe=m.dx,r.ye=m.dy,r.sx=r.sy=0,r.i=a.request(e.boundSmoothEndFrame)))}}),r.signals.on("stop-active",function(t){var e=t.interaction,n=e.inertiaStatus;n.active&&(a.cancel(n.i),n.active=!1,e.simulation=null)})},{"./InteractEvent":3,"./Interaction":5,"./modifiers/base":23,"./utils":44,"./utils/raf":50}],21:[function(t,e,n){"use strict";var i=t("./utils/browser"),r=t("./utils/events"),o=t("./utils"),s=t("./scope"),a=t("./Interactable"),c=t("./Interaction"),u={};function l(t,e){var n=s.interactables.get(t,e);return n||(n=new a(t,e),n.events.global=u),n}l.isSet=function(t,e){return-1!==s.interactables.indexOfElement(t,e&&e.context)},l.on=function(t,e,n){if(o.is.string(t)&&-1!==t.search(" ")&&(t=t.trim().split(/ +/)),o.is.array(t)){for(var i=0;i=0;e--)s.interactions[e].stop(t);return l},l.pointerMoveTolerance=function(t){return o.is.number(t)?(c.pointerMoveTolerance=t,l):c.pointerMoveTolerance},l.addDocument=s.addDocument,l.removeDocument=s.removeDocument,s.interact=l,e.exports=l},{"./Interactable":4,"./Interaction":5,"./scope":33,"./utils":44,"./utils/browser":36,"./utils/events":40}],22:[function(t,e,n){"use strict";var i=t("./Interactable"),r=t("./Interaction"),o=t("./scope"),s=t("./utils/is"),a=t("./utils/events"),c=t("./utils/browser"),u=t("./utils/domUtils"),l=u.nodeContains,d=u.matchesSelector;function p(t){var e=t.interaction,n=t.event;e.target&&e.target.checkAndPreventDefault(n)}i.prototype.preventDefault=function(t){return/^(always|never|auto)$/.test(t)?(this.options.preventDefault=t,this):s.bool(t)?(this.options.preventDefault=t?"always":"never",this):this.options.preventDefault},i.prototype.checkAndPreventDefault=function(t){var e=this.options.preventDefault;"never"!==e&&("always"!==e&&(a.supportsPassive&&/^touch(start|move)$/.test(t.type)&&!c.isIOS||/^(mouse|pointer|touch)*(down|start)/i.test(t.type)||s.element(t.target)&&d(t.target,"input,select,textarea,[contenteditable=true],[contenteditable=true] *"))||t.preventDefault())};for(var f=["down","move","up","cancel"],h=0;h=0;u--)if(c.selectors[u]===t&&c.contexts[u]===e)break;-1===u&&(u=c.selectors.length,c.selectors.push(t),c.contexts.push(e),c.listeners.push([])),c.listeners[u].push([i,!!o.capture,o.passive])}function b(t,e,n,i,r){var o=S(r),s=f[n],a=!1,c=void 0;if(s)for(c=s.selectors.length-1;c>=0;c--)if(s.selectors[c]===t&&s.contexts[c]===e){for(var u=s.listeners[c],l=u.length-1;l>=0;l--){var d=u[l],p=d[0],h=d[1],g=d[2];if(p===i&&h===!!o.capture&&g===o.passive){u.splice(l,1),u.length||(s.selectors.splice(c,1),s.contexts.splice(c,1),s.listeners.splice(c,1),m(e,n,x),m(e,n,w,!0),s.selectors.length||(f[n]=null)),a=!0;break}}if(a)break}}function x(t,e){var n=S(e),a={},c=f[t.type],u=o.getEventTargets(t),l=u[0],d=l;s(a,t),a.originalEvent=t,a.preventDefault=E;while(i.element(d)){for(var p=0;p=2)continue;if(!o.interacting()&&e===o.pointerType)return o}return null}};e.exports=o},{"../scope":33,"./index":44}],46:[function(t,e,n){"use strict";var i="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r=t("./window"),o=t("./isWindow"),s={array:function(){},window:function(t){return t===r.window||o(t)},docFrag:function(t){return s.object(t)&&11===t.nodeType},object:function(t){return!!t&&"object"===("undefined"===typeof t?"undefined":i(t))},function:function(t){return"function"===typeof t},number:function(t){return"number"===typeof t},bool:function(t){return"boolean"===typeof t},string:function(t){return"string"===typeof t},element:function(t){if(!t||"object"!==("undefined"===typeof t?"undefined":i(t)))return!1;var e=r.getWindow(t)||r.window;return/object|function/.test(i(e.Element))?t instanceof e.Element:1===t.nodeType&&"string"===typeof t.nodeName},plainObject:function(t){return s.object(t)&&"Object"===t.constructor.name}};s.array=function(t){return s.object(t)&&"undefined"!==typeof t.length&&s.function(t.splice)},e.exports=s},{"./isWindow":47,"./window":52}],47:[function(t,e,n){"use strict";e.exports=function(t){return!(!t||!t.Window)&&t instanceof t.Window}},{}],48:[function(t,e,n){"use strict";function i(t,n){for(var i in n){var r=e.exports.prefixedPropREs,o=!1;for(var s in r)if(0===i.indexOf(s)&&r[s].test(i)){o=!0;break}o||"function"===typeof n[i]||(t[i]=n[i])}return t}i.prefixedPropREs={webkit:/(Movement[XY]|Radius[XY]|RotationAngle|Force)$/},e.exports=i},{}],49:[function(t,e,n){"use strict";var i=t("./hypot"),r=t("./browser"),o=t("./domObjects"),s=t("./domUtils"),a=t("./domObjects"),c=t("./is"),u=t("./pointerExtend"),l={copyCoords:function(t,e){t.page=t.page||{},t.page.x=e.page.x,t.page.y=e.page.y,t.client=t.client||{},t.client.x=e.client.x,t.client.y=e.client.y,t.timeStamp=e.timeStamp},setCoordDeltas:function(t,e,n){t.page.x=n.page.x-e.page.x,t.page.y=n.page.y-e.page.y,t.client.x=n.client.x-e.client.x,t.client.y=n.client.y-e.client.y,t.timeStamp=n.timeStamp-e.timeStamp;var r=Math.max(t.timeStamp/1e3,.001);t.page.speed=i(t.page.x,t.page.y)/r,t.page.vx=t.page.x/r,t.page.vy=t.page.y/r,t.client.speed=i(t.client.x,t.page.y)/r,t.client.vx=t.client.x/r,t.client.vy=t.client.y/r},isNativePointer:function(t){return t instanceof o.Event||t instanceof o.Touch},getXY:function(t,e,n){return n=n||{},t=t||"page",n.x=e[t+"X"],n.y=e[t+"Y"],n},getPageXY:function(t,e){return e=e||{},r.isOperaMobile&&l.isNativePointer(t)?(l.getXY("screen",t,e),e.x+=window.scrollX,e.y+=window.scrollY):l.getXY("page",t,e),e},getClientXY:function(t,e){return e=e||{},r.isOperaMobile&&l.isNativePointer(t)?l.getXY("screen",t,e):l.getXY("client",t,e),e},getPointerId:function(t){return c.number(t.pointerId)?t.pointerId:t.identifier},setCoords:function(t,e,n){var i=e.length>1?l.pointerAverage(e):e[0],r={};l.getPageXY(i,r),t.page.x=r.x,t.page.y=r.y,l.getClientXY(i,r),t.client.x=r.x,t.client.y=r.y,t.timeStamp=c.number(n)?n:(new Date).getTime()},pointerExtend:u,getTouchPair:function(t){var e=[];return c.array(t)?(e[0]=t[0],e[1]=t[1]):"touchend"===t.type?1===t.touches.length?(e[0]=t.touches[0],e[1]=t.changedTouches[0]):0===t.touches.length&&(e[0]=t.changedTouches[0],e[1]=t.changedTouches[1]):(e[0]=t.touches[0],e[1]=t.touches[1]),e},pointerAverage:function(t){for(var e={pageX:0,pageY:0,clientX:0,clientY:0,screenX:0,screenY:0},n=0;n1){var e=l.getTouchPair(t),n=Math.min(e[0].pageX,e[1].pageX),i=Math.min(e[0].pageY,e[1].pageY),r=Math.max(e[0].pageX,e[1].pageX),o=Math.max(e[0].pageY,e[1].pageY);return{x:n,y:i,left:n,top:i,width:r-n,height:o-i}}},touchDistance:function(t,e){var n=e+"X",r=e+"Y",o=l.getTouchPair(t),s=o[0][n]-o[1][n],a=o[0][r]-o[1][r];return i(s,a)},touchAngle:function(t,e,n){var i=n+"X",r=n+"Y",o=l.getTouchPair(t),s=o[1][i]-o[0][i],a=o[1][r]-o[0][r],c=180*Math.atan2(a,s)/Math.PI;return c},getPointerType:function(t){return c.string(t.pointerType)?t.pointerType:c.number(t.pointerType)?[void 0,void 0,"touch","pen","mouse"][t.pointerType]:/touch/.test(t.type)||t instanceof a.Touch?"touch":"mouse"},getEventTargets:function(t){var e=c.function(t.composedPath)?t.composedPath():t.path;return[s.getActualElement(e?e[0]:t.target),s.getActualElement(t.currentTarget)]}};e.exports=l},{"./browser":36,"./domObjects":38,"./domUtils":39,"./hypot":43,"./is":46,"./pointerExtend":48}],50:[function(t,e,n){"use strict";for(var i=t("./window"),r=i.window,o=["ms","moz","webkit","o"],s=0,a=void 0,c=void 0,u=0;u=u?t?"":void 0:(o=a.charCodeAt(c),o<55296||o>56319||c+1===u||(s=a.charCodeAt(c+1))<56320||s>57343?t?a.charAt(c):o:t?a.slice(c,c+2):s-56320+(o-55296<<10)+65536)}}},"0390":function(t,e,n){"use strict";var i=n("02f4")(!0);t.exports=function(t,e,n){return e+(n?i(t,e).length:1)}},"07e3":function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},"0bfb":function(t,e,n){"use strict";var i=n("cb7c");t.exports=function(){var t=i(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},"0d58":function(t,e,n){var i=n("ce10"),r=n("e11e");t.exports=Object.keys||function(t){return i(t,r)}},"0fc9":function(t,e,n){var i=n("3a38"),r=Math.max,o=Math.min;t.exports=function(t,e){return t=i(t),t<0?r(t+e,0):o(t,e)}},1156:function(t,e,n){var i=n("ad20");"string"===typeof i&&(i=[[t.i,i,""]]),i.locals&&(t.exports=i.locals);var r=n("499e").default;r("c1ec597e",i,!0,{sourceMap:!1,shadowMode:!1})},"11e9":function(t,e,n){var i=n("52a7"),r=n("4630"),o=n("6821"),s=n("6a99"),a=n("69a8"),c=n("c69a"),u=Object.getOwnPropertyDescriptor;e.f=n("9e1e")?u:function(t,e){if(t=o(t),e=s(e,!0),c)try{return u(t,e)}catch(n){}if(a(t,e))return r(!i.f.call(t,e),t[e])}},1495:function(t,e,n){var i=n("86cc"),r=n("cb7c"),o=n("0d58");t.exports=n("9e1e")?Object.defineProperties:function(t,e){r(t);var n,s=o(e),a=s.length,c=0;while(a>c)i.f(t,n=s[c++],e[n]);return t}},1691:function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},"18d2":function(t,e,n){"use strict";var i=n("18e9");t.exports=function(t){t=t||{};var e=t.reporter,n=t.batchProcessor,r=t.stateHandler.getState;if(!e)throw new Error("Missing required dependency: reporter.");function o(t,e){if(!a(t))throw new Error("Element is not detectable by this strategy.");function n(){e(t)}if(i.isIE(8))r(t).object={proxy:n},t.attachEvent("onresize",n);else{var o=a(t);o.contentDocument.defaultView.addEventListener("resize",n)}}function s(t,o,s){s||(s=o,o=t,t=null),t=t||{};t.debug;function a(t,o){var s="display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; padding: 0; margin: 0; opacity: 0; z-index: -1000; pointer-events: none;",a=!1,c=window.getComputedStyle(t),u=t.offsetWidth,l=t.offsetHeight;function d(){function n(){if("static"===c.position){t.style.position="relative";var n=function(t,e,n,i){function r(t){return t.replace(/[^-\d\.]/g,"")}var o=n[i];"auto"!==o&&"0"!==r(o)&&(t.warn("An element that is positioned static has style."+i+"="+o+" which is ignored due to the static positioning. The element will need to be positioned relative, so the style."+i+" will be set to 0. Element: ",e),e.style[i]=0)};n(e,t,c,"top"),n(e,t,c,"right"),n(e,t,c,"bottom"),n(e,t,c,"left")}}function u(){function e(t,n){t.contentDocument?n(t.contentDocument):setTimeout(function(){e(t,n)},100)}a||n();var i=this;e(i,function(e){o(t)})}""!==c.position&&(n(c),a=!0);var l=document.createElement("object");l.style.cssText=s,l.tabIndex=-1,l.type="text/html",l.setAttribute("aria-hidden","true"),l.onload=u,i.isIE()||(l.data="about:blank"),t.appendChild(l),r(t).object=l,i.isIE()&&(l.data="about:blank")}r(t).startSize={width:u,height:l},n?n.add(d):d()}i.isIE(8)?s(o):a(o,s)}function a(t){return r(t).object}function c(t){i.isIE(8)?t.detachEvent("onresize",r(t).object.proxy):t.removeChild(a(t)),delete r(t).object}return{makeDetectable:s,addListener:o,uninstall:c}}},"18e9":function(t,e,n){"use strict";var i=t.exports={};i.isIE=function(t){function e(){var t=navigator.userAgent.toLowerCase();return-1!==t.indexOf("msie")||-1!==t.indexOf("trident")||-1!==t.indexOf(" edge/")}if(!e())return!1;if(!t)return!0;var n=function(){var t,e=3,n=document.createElement("div"),i=n.getElementsByTagName("i");do{n.innerHTML="\x3c!--[if gt IE "+ ++e+"]>4?e:t}();return t===n},i.isLegacyOpera=function(){return!!window.opera}},"1af6":function(t,e,n){var i=n("63b6");i(i.S,"Array",{isArray:n("9003")})},"1bc3":function(t,e,n){var i=n("f772");t.exports=function(t,e){if(!i(t))return t;var n,r;if(e&&"function"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;if("function"==typeof(n=t.valueOf)&&!i(r=n.call(t)))return r;if(!e&&"function"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;throw TypeError("Can't convert object to primitive value")}},"1ec9":function(t,e,n){var i=n("f772"),r=n("e53d").document,o=i(r)&&i(r.createElement);t.exports=function(t){return o?r.createElement(t):{}}},"214f":function(t,e,n){"use strict";n("b0c5");var i=n("2aba"),r=n("32e9"),o=n("79e5"),s=n("be13"),a=n("2b4c"),c=n("520a"),u=a("species"),l=!o(function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$")}),d=function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();t.exports=function(t,e,n){var p=a(t),f=!o(function(){var e={};return e[p]=function(){return 7},7!=""[t](e)}),h=f?!o(function(){var e=!1,n=/a/;return n.exec=function(){return e=!0,null},"split"===t&&(n.constructor={},n.constructor[u]=function(){return n}),n[p](""),!e}):void 0;if(!f||!h||"replace"===t&&!l||"split"===t&&!d){var g=/./[p],v=n(s,p,""[t],function(t,e,n,i,r){return e.exec===c?f&&!r?{done:!0,value:g.call(e,n,i)}:{done:!0,value:t.call(n,e,i)}:{done:!1}}),m=v[0],y=v[1];i(String.prototype,t,m),r(RegExp.prototype,p,2==e?function(t,e){return y.call(t,this,e)}:function(t){return y.call(t,this)})}}},"230e":function(t,e,n){var i=n("d3f4"),r=n("7726").document,o=i(r)&&i(r.createElement);t.exports=function(t){return o?r.createElement(t):{}}},2350:function(t,e){function n(t,e){var n=t[1]||"",r=t[3];if(!r)return n;if(e&&"function"===typeof btoa){var o=i(r),s=r.sources.map(function(t){return"/*# sourceURL="+r.sourceRoot+t+" */"});return[n].concat(s).concat([o]).join("\n")}return[n].join("\n")}function i(t){var e=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),n="sourceMappingURL=data:application/json;charset=utf-8;base64,"+e;return"/*# "+n+" */"}t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var i=n(e,t);return e[2]?"@media "+e[2]+"{"+i+"}":i}).join("")},e.i=function(t,n){"string"===typeof t&&(t=[[null,t,""]]);for(var i={},r=0;r";e.style.display="none",n("fab2").appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write(r+"script"+s+"document.F=Object"+r+"/script"+s),t.close(),u=t.F;while(i--)delete u[c][o[i]];return u()};t.exports=Object.create||function(t,e){var n;return null!==t?(a[c]=i(t),n=new a,a[c]=null,n[s]=t):n=u(),void 0===e?n:r(n,e)}},"2b4c":function(t,e,n){var i=n("5537")("wks"),r=n("ca5a"),o=n("7726").Symbol,s="function"==typeof o,a=t.exports=function(t){return i[t]||(i[t]=s&&o[t]||(s?o:r)("Symbol."+t))};a.store=i},"2cef":function(t,e,n){"use strict";t.exports=function(){var t=1;function e(){return t++}return{generate:e}}},"2d00":function(t,e){t.exports=!1},"2d95":function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},"2f21":function(t,e,n){"use strict";var i=n("79e5");t.exports=function(t,e){return!!t&&i(function(){e?t.call(null,function(){},1):t.call(null)})}},"32a6":function(t,e,n){var i=n("241e"),r=n("c3a1");n("ce7e")("keys",function(){return function(t){return r(i(t))}})},"32e9":function(t,e,n){var i=n("86cc"),r=n("4630");t.exports=n("9e1e")?function(t,e,n){return i.f(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},"335c":function(t,e,n){var i=n("6b4c");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==i(t)?t.split(""):Object(t)}},"35e8":function(t,e,n){var i=n("d9f6"),r=n("aebd");t.exports=n("8e60")?function(t,e,n){return i.f(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},"36c3":function(t,e,n){var i=n("335c"),r=n("25eb");t.exports=function(t){return i(r(t))}},"38fd":function(t,e,n){var i=n("69a8"),r=n("4bf8"),o=n("613b")("IE_PROTO"),s=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=r(t),i(t,o)?t[o]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?s:null}},"3a38":function(t,e){var n=Math.ceil,i=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?i:n)(t)}},"41a0":function(t,e,n){"use strict";var i=n("2aeb"),r=n("4630"),o=n("7f20"),s={};n("32e9")(s,n("2b4c")("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=i(s,{next:r(1,n)}),o(t,e+" Iterator")}},4588:function(t,e){var n=Math.ceil,i=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?i:n)(t)}},4630:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},"499e":function(t,e,n){"use strict";function i(t,e){for(var n=[],i={},r=0;rn.parts.length&&(i.parts.length=n.parts.length)}else{var s=[];for(r=0;r1&&o.call(s[0],n,function(){for(l=1;ll)if(a=c[l++],a!=a)return!0}else for(;u>l;l++)if((t||l in c)&&c[l]===n)return t||l||0;return!t&&-1}}},"5be5":function(t,e,n){"use strict";t.exports=function(t){var e=t.stateHandler.getState;function n(t){var n=e(t);return n&&!!n.isDetectable}function i(t){e(t).isDetectable=!0}function r(t){return!!e(t).busy}function o(t,n){e(t).busy=!!n}return{isDetectable:n,markAsDetectable:i,isBusy:r,markBusy:o}}},"5ca1":function(t,e,n){var i=n("7726"),r=n("8378"),o=n("32e9"),s=n("2aba"),a=n("9b43"),c="prototype",u=function(t,e,n){var l,d,p,f,h=t&u.F,g=t&u.G,v=t&u.S,m=t&u.P,y=t&u.B,b=g?i:v?i[e]||(i[e]={}):(i[e]||{})[c],x=g?r:r[e]||(r[e]={}),w=x[c]||(x[c]={});for(l in g&&(n=e),n)d=!h&&b&&void 0!==b[l],p=(d?b:n)[l],f=y&&d?a(p,i):m&&"function"==typeof p?a(Function.call,p):p,b&&s(b,l,p,t&u.U),x[l]!=p&&o(x,l,f),m&&w[l]!=p&&(w[l]=p)};i.core=r,u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},"5d6b":function(t,e,n){var i=n("e53d").parseInt,r=n("a1ce").trim,o=n("e692"),s=/^[-+]?0[xX]/;t.exports=8!==i(o+"08")||22!==i(o+"0x16")?function(t,e){var n=r(String(t),3);return i(n,e>>>0||(s.test(n)?16:10))}:i},"5dbc":function(t,e,n){var i=n("d3f4"),r=n("8b97").set;t.exports=function(t,e,n){var o,s=e.constructor;return s!==n&&"function"==typeof s&&(o=s.prototype)!==n.prototype&&i(o)&&r&&r(t,o),t}},"5ed4":function(t,e,n){"use strict";var i=n("6e21"),r=n.n(i);r.a},"5f1b":function(t,e,n){"use strict";var i=n("23c6"),r=RegExp.prototype.exec;t.exports=function(t,e){var n=t.exec;if("function"===typeof n){var o=n.call(t,e);if("object"!==typeof o)throw new TypeError("RegExp exec method returned something other than an Object or null");return o}if("RegExp"!==i(t))throw new TypeError("RegExp#exec called on incompatible receiver");return r.call(t,e)}},"613b":function(t,e,n){var i=n("5537")("keys"),r=n("ca5a");t.exports=function(t){return i[t]||(i[t]=r(t))}},"626a":function(t,e,n){var i=n("2d95");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==i(t)?t.split(""):Object(t)}},"62a0":function(t,e){var n=0,i=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+i).toString(36))}},"63b6":function(t,e,n){var i=n("e53d"),r=n("584a"),o=n("d864"),s=n("35e8"),a=n("07e3"),c="prototype",u=function(t,e,n){var l,d,p,f=t&u.F,h=t&u.G,g=t&u.S,v=t&u.P,m=t&u.B,y=t&u.W,b=h?r:r[e]||(r[e]={}),x=b[c],w=h?i:g?i[e]:(i[e]||{})[c];for(l in h&&(n=e),n)d=!f&&w&&void 0!==w[l],d&&a(b,l)||(p=d?w[l]:n[l],b[l]=h&&"function"!=typeof w[l]?n[l]:m&&d?o(p,i):y&&w[l]==p?function(t){var e=function(e,n,i){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,i)}return t.apply(this,arguments)};return e[c]=t[c],e}(p):v&&"function"==typeof p?o(Function.call,p):p,v&&((b.virtual||(b.virtual={}))[l]=p,t&u.R&&x&&!x[l]&&s(x,l,p)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},6821:function(t,e,n){var i=n("626a"),r=n("be13");t.exports=function(t){return i(r(t))}},"69a8":function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},"6a99":function(t,e,n){var i=n("d3f4");t.exports=function(t,e){if(!i(t))return t;var n,r;if(e&&"function"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;if("function"==typeof(n=t.valueOf)&&!i(r=n.call(t)))return r;if(!e&&"function"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;throw TypeError("Can't convert object to primitive value")}},"6b4c":function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},"6e21":function(t,e,n){var i=n("9cbe");"string"===typeof i&&(i=[[t.i,i,""]]),i.locals&&(t.exports=i.locals);var r=n("499e").default;r("3cbd0c21",i,!0,{sourceMap:!1,shadowMode:!1})},7445:function(t,e,n){var i=n("63b6"),r=n("5d6b");i(i.G+i.F*(parseInt!=r),{parseInt:r})},7726:function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},"77f1":function(t,e,n){var i=n("4588"),r=Math.max,o=Math.min;t.exports=function(t,e){return t=i(t),t<0?r(t+e,0):o(t,e)}},"794b":function(t,e,n){t.exports=!n("8e60")&&!n("294c")(function(){return 7!=Object.defineProperty(n("1ec9")("div"),"a",{get:function(){return 7}}).a})},"79aa":function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},"79e5":function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},"7f20":function(t,e,n){var i=n("86cc").f,r=n("69a8"),o=n("2b4c")("toStringTag");t.exports=function(t,e,n){t&&!r(t=n?t:t.prototype,o)&&i(t,o,{configurable:!0,value:e})}},"7f7f":function(t,e,n){var i=n("86cc").f,r=Function.prototype,o=/^\s*function ([^ (]*)/,s="name";s in r||n("9e1e")&&i(r,s,{configurable:!0,get:function(){try{return(""+this).match(o)[1]}catch(t){return""}}})},8378:function(t,e){var n=t.exports={version:"2.6.5"};"number"==typeof __e&&(__e=n)},"84f2":function(t,e){t.exports={}},"86cc":function(t,e,n){var i=n("cb7c"),r=n("c69a"),o=n("6a99"),s=Object.defineProperty;e.f=n("9e1e")?Object.defineProperty:function(t,e,n){if(i(t),e=o(e,!0),i(n),r)try{return s(t,e,n)}catch(a){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},"8aae":function(t,e,n){n("32a6"),t.exports=n("584a").Object.keys},"8b97":function(t,e,n){var i=n("d3f4"),r=n("cb7c"),o=function(t,e){if(r(t),!i(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,i){try{i=n("9b43")(Function.call,n("11e9").f(Object.prototype,"__proto__").set,2),i(t,[]),e=!(t instanceof Array)}catch(r){e=!0}return function(t,n){return o(t,n),e?t.__proto__=n:i(t,n),t}}({},!1):void 0),check:o}},"8bbf":function(e,n){e.exports=t},"8e60":function(t,e,n){t.exports=!n("294c")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},9003:function(t,e,n){var i=n("6b4c");t.exports=Array.isArray||function(t){return"Array"==i(t)}},9093:function(t,e,n){var i=n("ce10"),r=n("e11e").concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return i(t,r)}},"9b43":function(t,e,n){var i=n("d8e8");t.exports=function(t,e,n){if(i(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,i){return t.call(e,n,i)};case 3:return function(n,i,r){return t.call(e,n,i,r)}}return function(){return t.apply(e,arguments)}}},"9c6c":function(t,e,n){var i=n("2b4c")("unscopables"),r=Array.prototype;void 0==r[i]&&n("32e9")(r,i,{}),t.exports=function(t){r[i][t]=!0}},"9cbe":function(t,e,n){e=t.exports=n("2350")(!1),e.push([t.i,'.vue-grid-item{-webkit-transition:all .2s ease;transition:all .2s ease;-webkit-transition-property:left,top,right;transition-property:left,top,right}.vue-grid-item.no-touch{-ms-touch-action:none;touch-action:none}.vue-grid-item.cssTransforms{-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;left:0;right:auto}.vue-grid-item.cssTransforms.render-rtl{left:auto;right:0}.vue-grid-item.resizing{opacity:.6;z-index:3}.vue-grid-item.vue-draggable-dragging{-webkit-transition:none;transition:none;z-index:3}.vue-grid-item.vue-grid-placeholder{background:red;opacity:.2;-webkit-transition-duration:.1s;transition-duration:.1s;z-index:2;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.vue-grid-item>.vue-resizable-handle{position:absolute;width:20px;height:20px;bottom:0;right:0;background:url("data:image/svg+xml;base64,PHN2ZyBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjYiIGhlaWdodD0iNiI+PHBhdGggZD0iTTYgNkgwVjQuMmg0LjJWMEg2djZ6IiBvcGFjaXR5PSIuMzAyIi8+PC9zdmc+");background-position:100% 100%;padding:0 3px 3px 0;background-repeat:no-repeat;background-origin:content-box;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:se-resize}.vue-grid-item>.vue-rtl-resizable-handle{bottom:0;left:0;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTS0xLTFoMTJ2MTJILTF6Ii8+PGc+PHBhdGggc3Ryb2tlLWxpbmVjYXA9InVuZGVmaW5lZCIgc3Ryb2tlLWxpbmVqb2luPSJ1bmRlZmluZWQiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2U9IiMwMDAiIGZpbGw9Im5vbmUiIGQ9Ik0xNDQuODIxLTM4LjM5M2wtMjAuMzU3LTMxLjc4NSIvPjxwYXRoIHN0cm9rZT0iIzY2NiIgc3Ryb2tlLWxpbmVjYXA9InVuZGVmaW5lZCIgc3Ryb2tlLWxpbmVqb2luPSJ1bmRlZmluZWQiIHN0cm9rZS13aWR0aD0iMiIgZmlsbD0ibm9uZSIgZD0iTS45NDctLjAxOHY5LjEyNU0tLjY1NiA5aDEwLjczIi8+PC9nPjwvc3ZnPg==);background-position:0 100%;padding-left:3px;background-repeat:no-repeat;background-origin:content-box;cursor:sw-resize;right:auto}.vue-grid-item.disable-userselect{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}',""])},"9def":function(t,e,n){var i=n("4588"),r=Math.min;t.exports=function(t){return t>0?r(i(t),9007199254740991):0}},"9e1e":function(t,e,n){t.exports=!n("79e5")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},a1ce:function(t,e,n){var i=n("63b6"),r=n("25eb"),o=n("294c"),s=n("e692"),a="["+s+"]",c="​…",u=RegExp("^"+a+a+"*"),l=RegExp(a+a+"*$"),d=function(t,e,n){var r={},a=o(function(){return!!s[t]()||c[t]()!=c}),u=r[t]=a?e(p):s[t];n&&(r[n]=u),i(i.P+i.F*a,"String",r)},p=d.trim=function(t,e){return t=String(r(t)),1&e&&(t=t.replace(u,"")),2&e&&(t=t.replace(l,"")),t};t.exports=d},a21f:function(t,e,n){var i=n("584a"),r=i.JSON||(i.JSON={stringify:JSON.stringify});t.exports=function(t){return r.stringify.apply(r,arguments)}},a481:function(t,e,n){"use strict";var i=n("cb7c"),r=n("4bf8"),o=n("9def"),s=n("4588"),a=n("0390"),c=n("5f1b"),u=Math.max,l=Math.min,d=Math.floor,p=/\$([$&`']|\d\d?|<[^>]*>)/g,f=/\$([$&`']|\d\d?)/g,h=function(t){return void 0===t?t:String(t)};n("214f")("replace",2,function(t,e,n,g){return[function(i,r){var o=t(this),s=void 0==i?void 0:i[e];return void 0!==s?s.call(i,o,r):n.call(String(o),i,r)},function(t,e){var r=g(n,t,this,e);if(r.done)return r.value;var d=i(t),p=String(this),f="function"===typeof e;f||(e=String(e));var m=d.global;if(m){var y=d.unicode;d.lastIndex=0}var b=[];while(1){var x=c(d,p);if(null===x)break;if(b.push(x),!m)break;var w=String(x[0]);""===w&&(d.lastIndex=a(p,o(d.lastIndex),y))}for(var E="",S=0,T=0;T=S&&(E+=p.slice(S,C)+R,S=C+z.length)}return E+p.slice(S)}];function v(t,e,i,o,s,a){var c=i+t.length,u=o.length,l=f;return void 0!==s&&(s=r(s),l=p),n.call(a,l,function(n,r){var a;switch(r.charAt(0)){case"$":return"$";case"&":return t;case"`":return e.slice(0,i);case"'":return e.slice(c);case"<":a=s[r.slice(1,-1)];break;default:var l=+r;if(0===l)return n;if(l>u){var p=d(l/10);return 0===p?n:p<=u?void 0===o[p-1]?r.charAt(1):o[p-1]+r.charAt(1):n}a=o[l-1]}return void 0===a?"":a})}})},a4bb:function(t,e,n){t.exports=n("8aae")},a745:function(t,e,n){t.exports=n("f410")},aa77:function(t,e,n){var i=n("5ca1"),r=n("be13"),o=n("79e5"),s=n("fdef"),a="["+s+"]",c="​…",u=RegExp("^"+a+a+"*"),l=RegExp(a+a+"*$"),d=function(t,e,n){var r={},a=o(function(){return!!s[t]()||c[t]()!=c}),u=r[t]=a?e(p):s[t];n&&(r[n]=u),i(i.P+i.F*a,"String",r)},p=d.trim=function(t,e){return t=String(r(t)),1&e&&(t=t.replace(u,"")),2&e&&(t=t.replace(l,"")),t};t.exports=d},abb4:function(t,e,n){"use strict";t.exports=function(t){function e(){}var n={log:e,warn:e,error:e};if(!t&&window.console){var i=function(t,e){t[e]=function(){var t=console[e];if(t.apply)t.apply(console,arguments);else for(var n=0;n0?r(i(t),9007199254740991):0}},b770:function(t,e,n){"use strict";var i=t.exports={};i.forEach=function(t,e){for(var n=0;nn?n=r:rl)if(a=c[l++],a!=a)return!0}else for(;u>l;l++)if((t||l in c)&&c[l]===n)return t||l||0;return!t&&-1}}},c3a1:function(t,e,n){var i=n("e6f3"),r=n("1691");t.exports=Object.keys||function(t){return i(t,r)}},c5f6:function(t,e,n){"use strict";var i=n("7726"),r=n("69a8"),o=n("2d95"),s=n("5dbc"),a=n("6a99"),c=n("79e5"),u=n("9093").f,l=n("11e9").f,d=n("86cc").f,p=n("aa77").trim,f="Number",h=i[f],g=h,v=h.prototype,m=o(n("2aeb")(v))==f,y="trim"in String.prototype,b=function(t){var e=a(t,!1);if("string"==typeof e&&e.length>2){e=y?e.trim():p(e,3);var n,i,r,o=e.charCodeAt(0);if(43===o||45===o){if(n=e.charCodeAt(2),88===n||120===n)return NaN}else if(48===o){switch(e.charCodeAt(1)){case 66:case 98:i=2,r=49;break;case 79:case 111:i=8,r=55;break;default:return+e}for(var s,c=e.slice(2),u=0,l=c.length;ur)return NaN;return parseInt(c,i)}}return+e};if(!h(" 0o1")||!h("0b1")||h("+0x1")){h=function(t){var e=arguments.length<1?0:t,n=this;return n instanceof h&&(m?c(function(){v.valueOf.call(n)}):o(n)!=f)?s(new g(b(e)),n,h):b(e)};for(var x,w=n("9e1e")?u(g):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),E=0;w.length>E;E++)r(g,x=w[E])&&!r(h,x)&&d(h,x,l(g,x));h.prototype=v,v.constructor=h,n("2aba")(i,f,h)}},c69a:function(t,e,n){t.exports=!n("9e1e")&&!n("79e5")(function(){return 7!=Object.defineProperty(n("230e")("div"),"a",{get:function(){return 7}}).a})},c946:function(t,e,n){"use strict";var i=n("b770").forEach;t.exports=function(t){t=t||{};var e=t.reporter,n=t.batchProcessor,r=t.stateHandler.getState,o=(t.stateHandler.hasState,t.idHandler);if(!n)throw new Error("Missing required dependency: batchProcessor");if(!e)throw new Error("Missing required dependency: reporter.");var s=u(),a="erd_scroll_detection_scrollbar_style",c="erd_scroll_detection_container";function u(){var t=500,e=500,n=document.createElement("div");n.style.cssText="position: absolute; width: "+2*t+"px; height: "+2*e+"px; visibility: hidden; margin: 0; padding: 0;";var i=document.createElement("div");i.style.cssText="position: absolute; width: "+t+"px; height: "+e+"px; overflow: scroll; visibility: none; top: "+3*-t+"px; left: "+3*-e+"px; visibility: hidden; margin: 0; padding: 0;",i.appendChild(n),document.body.insertBefore(i,document.body.firstChild);var r=t-i.clientWidth,o=e-i.clientHeight;return document.body.removeChild(i),{width:r,height:o}}function l(t,e){function n(e,n){n=n||function(t){document.head.appendChild(t)};var i=document.createElement("style");return i.innerHTML=e,i.id=t,n(i),i}if(!document.getElementById(t)){var i=e+"_animation",r=e+"_animation_active",o="/* Created by the element-resize-detector library. */\n";o+="."+e+" > div::-webkit-scrollbar { display: none; }\n\n",o+="."+r+" { -webkit-animation-duration: 0.1s; animation-duration: 0.1s; -webkit-animation-name: "+i+"; animation-name: "+i+"; }\n",o+="@-webkit-keyframes "+i+" { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }\n",o+="@keyframes "+i+" { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }",n(o)}}function d(t){t.className+=" "+c+"_animation_active"}function p(t,n,i){if(t.addEventListener)t.addEventListener(n,i);else{if(!t.attachEvent)return e.error("[scroll] Don't know how to add event listeners.");t.attachEvent("on"+n,i)}}function f(t,n,i){if(t.removeEventListener)t.removeEventListener(n,i);else{if(!t.detachEvent)return e.error("[scroll] Don't know how to remove event listeners.");t.detachEvent("on"+n,i)}}function h(t){return r(t).container.childNodes[0].childNodes[0].childNodes[0]}function g(t){return r(t).container.childNodes[0].childNodes[0].childNodes[1]}function v(t,e){var n=r(t).listeners;if(!n.push)throw new Error("Cannot add listener to an element that is not detectable.");r(t).listeners.push(e)}function m(t,a,u){function l(){if(t.debug){var n=Array.prototype.slice.call(arguments);if(n.unshift(o.get(a),"Scroll: "),e.log.apply)e.log.apply(null,n);else for(var i=0;i=t.length?(this._t=void 0,r(1)):r(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])},"values"),o.Arguments=o.Array,i("keys"),i("values"),i("entries")},cb7c:function(t,e,n){var i=n("d3f4");t.exports=function(t){if(!i(t))throw TypeError(t+" is not an object!");return t}},ce10:function(t,e,n){var i=n("69a8"),r=n("6821"),o=n("c366")(!1),s=n("613b")("IE_PROTO");t.exports=function(t,e){var n,a=r(t),c=0,u=[];for(n in a)n!=s&&i(a,n)&&u.push(n);while(e.length>c)i(a,n=e[c++])&&(~o(u,n)||u.push(n));return u}},ce7e:function(t,e,n){var i=n("63b6"),r=n("584a"),o=n("294c");t.exports=function(t,e){var n=(r.Object||{})[t]||Object[t],s={};s[t]=e(n),i(i.S+i.F*o(function(){n(1)}),"Object",s)}},d3f4:function(t,e){t.exports=function(t){return"object"===typeof t?null!==t:"function"===typeof t}},d53b:function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},d6eb:function(t,e,n){"use strict";var i="_erd";function r(t){return t[i]={},o(t)}function o(t){return t[i]}function s(t){delete t[i]}t.exports={initState:r,getState:o,cleanState:s}},d864:function(t,e,n){var i=n("79aa");t.exports=function(t,e,n){if(i(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,i){return t.call(e,n,i)};case 3:return function(n,i,r){return t.call(e,n,i,r)}}return function(){return t.apply(e,arguments)}}},d8e8:function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},d9f6:function(t,e,n){var i=n("e4ae"),r=n("794b"),o=n("1bc3"),s=Object.defineProperty;e.f=n("8e60")?Object.defineProperty:function(t,e,n){if(i(t),e=o(e,!0),i(n),r)try{return s(t,e,n)}catch(a){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},dbdb:function(t,e,n){var i=n("584a"),r=n("e53d"),o="__core-js_shared__",s=r[o]||(r[o]={});(t.exports=function(t,e){return s[t]||(s[t]=void 0!==e?e:{})})("versions",[]).push({version:i.version,mode:n("b8e3")?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},e11e:function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},e279:function(t,e,n){"use strict";var i=n("1156"),r=n.n(i);r.a},e4ae:function(t,e,n){var i=n("f772");t.exports=function(t){if(!i(t))throw TypeError(t+" is not an object!");return t}},e53d:function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},e692:function(t,e){t.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"},e6f3:function(t,e,n){var i=n("07e3"),r=n("36c3"),o=n("5b4e")(!1),s=n("5559")("IE_PROTO");t.exports=function(t,e){var n,a=r(t),c=0,u=[];for(n in a)n!=s&&i(a,n)&&u.push(n);while(e.length>c)i(a,n=e[c++])&&(~o(u,n)||u.push(n));return u}},e814:function(t,e,n){t.exports=n("b9e9")},eec4:function(t,e,n){"use strict";var i=n("b770").forEach,r=n("5be5"),o=n("49ad"),s=n("2cef"),a=n("5058"),c=n("abb4"),u=n("18e9"),l=n("c274"),d=n("d6eb"),p=n("18d2"),f=n("c946");function h(t){return Array.isArray(t)||void 0!==t.length}function g(t){if(Array.isArray(t))return t;var e=[];return i(t,function(t){e.push(t)}),e}function v(t){return t&&1===t.nodeType}function m(t,e,n){var i=t[e];return void 0!==i&&null!==i||void 0===n?i:n}t.exports=function(t){var e;if(t=t||{},t.idHandler)e={get:function(e){return t.idHandler.get(e,!0)},set:t.idHandler.set};else{var n=s(),y=a({idGenerator:n,stateHandler:d});e=y}var b=t.reporter;if(!b){var x=!1===b;b=c(x)}var w=m(t,"batchProcessor",l({reporter:b})),E={};E.callOnAdd=!!m(t,"callOnAdd",!0),E.debug=!!m(t,"debug",!1);var S,T=o(e),z=r({stateHandler:d}),C=m(t,"strategy","object"),I={reporter:b,batchProcessor:w,stateHandler:d,idHandler:e};if("scroll"===C&&(u.isLegacyOpera()?(b.warn("Scroll strategy is not supported on legacy Opera. Changing to object strategy."),C="object"):u.isIE(9)&&(b.warn("Scroll strategy is not supported on IE9. Changing to object strategy."),C="object")),"scroll"===C)S=f(I);else{if("object"!==C)throw new Error("Invalid strategy name: "+C);S=p(I)}var O={};function M(t,n,r){function o(t){var e=T.get(t);i(e,function(e){e(t)})}function s(t,e,n){T.add(e,n),t&&n(e)}if(r||(r=n,n=t,t={}),!n)throw new Error("At least one element required.");if(!r)throw new Error("Listener required.");if(v(n))n=[n];else{if(!h(n))return b.error("Invalid arguments. Must be a DOM element or a collection of DOM elements.");n=g(n)}var a=0,c=m(t,"callOnAdd",E.callOnAdd),u=m(t,"onReady",function(){}),l=m(t,"debug",E.debug);i(n,function(t){d.getState(t)||(d.initState(t),e.set(t));var p=e.get(t);if(l&&b.log("Attaching listener to element",p,t),!z.isDetectable(t))return l&&b.log(p,"Not detectable."),z.isBusy(t)?(l&&b.log(p,"System busy making it detectable"),s(c,t,r),O[p]=O[p]||[],void O[p].push(function(){a++,a===n.length&&u()})):(l&&b.log(p,"Making detectable..."),z.markBusy(t,!0),S.makeDetectable({debug:l},t,function(t){if(l&&b.log(p,"onElementDetectable"),d.getState(t)){z.markAsDetectable(t),z.markBusy(t,!1),S.addListener(t,o),s(c,t,r);var e=d.getState(t);if(e&&e.startSize){var f=t.offsetWidth,h=t.offsetHeight;e.startSize.width===f&&e.startSize.height===h||o(t)}O[p]&&i(O[p],function(t){t()})}else l&&b.log(p,"Element uninstalled before being detectable.");delete O[p],a++,a===n.length&&u()}));l&&b.log(p,"Already detecable, adding listener."),s(c,t,r),a++}),a===n.length&&u()}function D(t){if(!t)return b.error("At least one element is required.");if(v(t))t=[t];else{if(!h(t))return b.error("Invalid arguments. Must be a DOM element or a collection of DOM elements.");t=g(t)}i(t,function(t){T.removeAllListeners(t),S.uninstall(t),d.cleanState(t)})}return{listenTo:M,removeListener:T.removeListener,removeAllListeners:T.removeAllListeners,uninstall:D}}},f410:function(t,e,n){n("1af6"),t.exports=n("584a").Array.isArray},f499:function(t,e,n){t.exports=n("a21f")},f772:function(t,e){t.exports=function(t){return"object"===typeof t?null!==t:"function"===typeof t}},fa5b:function(t,e,n){t.exports=n("5537")("native-function-to-string",Function.toString)},fab2:function(t,e,n){var i=n("7726").document;t.exports=i&&i.documentElement},fb15:function(t,e,n){"use strict";var i;(n.r(e),"undefined"!==typeof window)&&((i=window.document.currentScript)&&(i=i.src.match(/(.+\/)[^\/]+\.js(\?.*)?$/))&&(n.p=i[1]));n("7f7f");var r=n("a4bb"),o=n.n(r),s=(n("ac6a"),n("8bbf")),a=n.n(s),c=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{ref:"item",staticClass:"vue-grid-item",class:{"vue-resizable":t.resizableAndNotStatic,static:t.static,resizing:t.isResizing,"vue-draggable-dragging":t.isDragging,cssTransforms:t.useCssTransforms,"render-rtl":t.renderRtl,"disable-userselect":t.isDragging,"no-touch":t.isAndroid},style:t.style},[t._t("default"),t.resizableAndNotStatic?n("span",{ref:"handle",class:t.resizableHandleClass}):t._e()],2)},u=[],l=n("e814"),d=n.n(l),p=(n("c5f6"),n("a481"),n("a745")),f=n.n(p),h=(n("55dd"),n("f499")),g=n.n(h);function v(t){for(var e,n=0,i=0,r=t.length;in&&(n=e);return n}function m(t){for(var e=Array(t.length),n=0,i=t.length;n=e.x+e.w)&&(!(t.y+t.h<=e.y)&&!(t.y>=e.y+e.h))))}function x(t,e){for(var n=C(t),i=k(t),r=Array(t.length),o=0,s=i.length;o0&&!T(t,e))e.y--;var i;while(i=T(t,e))e.y=i.y+i.h;return e}function E(t,e){for(var n=C(t),i=0,r=t.length;ie.cols&&(o.x=e.cols-o.w),o.x<0&&(o.x=0,o.w=e.cols),o.static)while(T(n,o))o.y++;else n.push(o)}return t}function S(t,e){for(var n=0,i=t.length;ni;"number"===typeof n&&(e.x=n),"number"===typeof i&&(e.y=i),e.moved=!0;var s=k(t);o&&(s=s.reverse());for(var a=z(s,e),c=0,u=a.length;cl.y&&e.y-l.y>l.h/4||(t=l.static?O(t,l,e,r):O(t,e,l,r)))}return t}function O(t,e,n,i){if(i){var r={x:n.x,y:n.y,w:n.w,h:n.h,i:"-1"};if(r.y=Math.max(e.y-n.h,0),!T(t,r))return I(t,n,void 0,r.y)}return I(t,n,void 0,n.y+1)}function M(t,e,n,i){var r="translate3d("+e+"px,"+t+"px, 0)";return{transform:r,WebkitTransform:r,MozTransform:r,msTransform:r,OTransform:r,width:n+"px",height:i+"px",position:"absolute"}}function D(t,e,n,i){var r="translate3d("+-1*e+"px,"+t+"px, 0)";return{transform:r,WebkitTransform:r,MozTransform:r,msTransform:r,OTransform:r,width:n+"px",height:i+"px",position:"absolute"}}function R(t,e,n,i){return{top:t+"px",left:e+"px",width:n+"px",height:i+"px",position:"absolute"}}function A(t,e,n,i){return{top:t+"px",right:e+"px",width:n+"px",height:i+"px",position:"absolute"}}function k(t){return[].concat(t).sort(function(t,e){return t.y>e.y||t.y===e.y&&t.x>e.x?1:-1})}function P(t,e){e=e||"Layout";var n=["x","y","w","h"];if(!f()(t))throw new Error(e+" must be an array!");for(var i=0,r=t.length;ithis.cols?(this.innerX=0,this.innerW=this.w>this.cols?this.cols:this.w):(this.innerX=this.x,this.innerW=this.w);var t,e=this.calcPosition(this.innerX,this.innerY,this.innerW,this.innerH);this.isDragging&&(e.top=this.dragging.top,this.renderRtl?e.right=this.dragging.left:e.left=this.dragging.left),this.isResizing&&(e.width=this.resizing.width,e.height=this.resizing.height),t=this.useCssTransforms?this.renderRtl?D(e.top,e.right,e.width,e.height):M(e.top,e.left,e.width,e.height):this.renderRtl?A(e.top,e.right,e.width,e.height):R(e.top,e.left,e.width,e.height),this.style=t},handleResize:function(t){if(!this.static){var e=_(t);if(null!=e){var n,i=e.x,r=e.y,o={width:0,height:0};switch(t.type){case"resizestart":this.previousW=this.innerW,this.previousH=this.innerH,n=this.calcPosition(this.innerX,this.innerY,this.innerW,this.innerH),o.width=n.width,o.height=n.height,this.resizing=o,this.isResizing=!0;break;case"resizemove":var s=j(this.lastW,this.lastH,i,r);this.renderRtl?o.width=this.resizing.width-s.deltaX:o.width=this.resizing.width+s.deltaX,o.height=this.resizing.height+s.deltaY,this.resizing=o;break;case"resizeend":n=this.calcPosition(this.innerX,this.innerY,this.innerW,this.innerH),o.width=n.width,o.height=n.height,this.resizing=null,this.isResizing=!1;break}n=this.calcWH(o.height,o.width),n.wthis.maxW&&(n.w=this.maxW),n.hthis.maxH&&(n.h=this.maxH),n.h<1&&(n.h=1),n.w<1&&(n.w=1),this.lastW=i,this.lastH=r,this.innerW===n.w&&this.innerH===n.h||this.$emit("resize",this.i,n.h,n.w,o.height,o.width),"resizeend"!==t.type||this.previousW===this.innerW&&this.previousH===this.innerH||this.$emit("resized",this.i,n.h,n.w,o.height,o.width),this.eventBus.$emit("resizeEvent",t.type,this.i,this.innerX,this.innerY,n.h,n.w)}}},handleDrag:function(t){if(!this.static&&!this.isResizing){var e=_(t);if(null!==e){var n,i=e.x,r=e.y,o={top:0,left:0};switch(t.type){case"dragstart":this.previousX=this.innerX,this.previousY=this.innerY;var s=t.target.offsetParent.getBoundingClientRect(),a=t.target.getBoundingClientRect();this.renderRtl?o.left=-1*(a.right-s.right):o.left=a.left-s.left,o.top=a.top-s.top,this.dragging=o,this.isDragging=!0;break;case"dragend":if(!this.isDragging)return;var c=t.target.offsetParent.getBoundingClientRect(),u=t.target.getBoundingClientRect();this.renderRtl?o.left=-1*(u.right-c.right):o.left=u.left-c.left,o.top=u.top-c.top,this.dragging=null,this.isDragging=!1;break;case"dragmove":var l=j(this.lastX,this.lastY,i,r);this.renderRtl?o.left=this.dragging.left-l.deltaX:o.left=this.dragging.left+l.deltaX,o.top=this.dragging.top+l.deltaY,this.dragging=o;break}n=(this.renderRtl,this.calcXY(o.top,o.left)),this.lastX=i,this.lastY=r,this.innerX===n.x&&this.innerY===n.y||this.$emit("move",this.i,n.x,n.y),"dragend"!==t.type||this.previousX===this.innerX&&this.previousY===this.innerY||this.$emit("moved",this.i,n.x,n.y),this.eventBus.$emit("dragEvent",t.type,this.i,n.x,n.y,this.innerH,this.innerW)}}},calcPosition:function(t,e,n,i){var r,o=this.calcColWidth();return r=this.renderRtl?{right:Math.round(o*t+(t+1)*this.margin[0]),top:Math.round(this.rowHeight*e+(e+1)*this.margin[1]),width:n===1/0?n:Math.round(o*n+Math.max(0,n-1)*this.margin[0]),height:i===1/0?i:Math.round(this.rowHeight*i+Math.max(0,i-1)*this.margin[1])}:{left:Math.round(o*t+(t+1)*this.margin[0]),top:Math.round(this.rowHeight*e+(e+1)*this.margin[1]),width:n===1/0?n:Math.round(o*n+Math.max(0,n-1)*this.margin[0]),height:i===1/0?i:Math.round(this.rowHeight*i+Math.max(0,i-1)*this.margin[1])},r},calcXY:function(t,e){var n=this.calcColWidth(),i=Math.round((e-this.margin[0])/(n+this.margin[0])),r=Math.round((t-this.margin[1])/(this.rowHeight+this.margin[1]));return i=Math.max(Math.min(i,this.cols-this.innerW),0),r=Math.max(Math.min(r,this.maxRows-this.innerH),0),{x:i,y:r}},calcColWidth:function(){var t=(this.containerWidth-this.margin[0]*(this.cols+1))/this.cols;return t},calcWH:function(t,e){var n=this.calcColWidth(),i=Math.round((e+this.margin[0])/(n+this.margin[0])),r=Math.round((t+this.margin[1])/(this.rowHeight+this.margin[1]));return i=Math.max(Math.min(i,this.cols-this.innerX),0),r=Math.max(Math.min(r,this.maxRows-this.innerY),0),{w:i,h:r}},updateWidth:function(t,e){this.containerWidth=t,void 0!==e&&null!==e&&(this.cols=e)},compact:function(){this.createStyle()},tryMakeDraggable:function(){var t=this;if(null!==this.interactObj&&void 0!==this.interactObj||(this.interactObj=F(this.$refs.item)),this.draggable&&!this.static){var e={ignoreFrom:this.dragIgnoreFrom,allowFrom:this.dragAllowFrom};this.interactObj.draggable(e),this.dragEventSet||(this.dragEventSet=!0,this.interactObj.on("dragstart dragmove dragend",function(e){t.handleDrag(e)}))}else this.interactObj.draggable({enabled:!1})},tryMakeResizable:function(){var t=this;if(null!==this.interactObj&&void 0!==this.interactObj||(this.interactObj=F(this.$refs.item)),this.resizable&&!this.static){var e=this.calcPosition(0,0,this.maxW,this.maxH),n=this.calcPosition(0,0,this.minW,this.minH),i={preserveAspectRatio:!0,edges:{left:!1,right:"."+this.resizableHandleClass,bottom:"."+this.resizableHandleClass,top:!1},ignoreFrom:this.resizeIgnoreFrom,restrictSize:{min:{height:n.height,width:n.width},max:{height:e.height,width:e.width}}};this.interactObj.resizable(i),this.resizeEventSet||(this.resizeEventSet=!0,this.interactObj.on("resizestart resizemove resizeend",function(e){t.handleResize(e)}))}else this.interactObj.resizable({enabled:!1})},autoSize:function(){this.previousW=this.innerW,this.previousH=this.innerH;var t=this.$slots.default[0].elm.getBoundingClientRect(),e=this.calcWH(t.height,t.width);e.wthis.maxW&&(e.w=this.maxW),e.hthis.maxH&&(e.h=this.maxH),e.h<1&&(e.h=1),e.w<1&&(e.w=1),this.innerW===e.w&&this.innerH===e.h||this.$emit("resize",this.i,e.h,e.w,t.height,t.width),this.previousW===e.w&&this.previousH===e.h||(this.$emit("resized",this.i,e.h,e.w,t.height,t.width),this.eventBus.$emit("resizeEvent","resizeend",this.i,this.innerX,this.innerY,e.h,e.w))}}},G=U;n("5ed4");function q(t,e,n,i,r,o,s,a){var c,u="function"===typeof t?t.options:t;if(e&&(u.render=e,u.staticRenderFns=n,u._compiled=!0),i&&(u.functional=!0),o&&(u._scopeId="data-v-"+o),s?(c=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||"undefined"===typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(s)},u._ssrRegister=c):r&&(c=a?function(){r.call(this,this.$root.$options.shadowRoot)}:r),c)if(u.functional){u._injectStyles=c;var l=u.render;u.render=function(t,e){return c.call(e),l(t,e)}}else{var d=u.beforeCreate;u.beforeCreate=d?[].concat(d,c):[c]}return{exports:t,options:u}}var V=q(G,c,u,!1,null,null,null),Z=V.exports,J=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{ref:"item",staticClass:"vue-grid-layout",style:t.mergedStyle},[t._t("default"),n("grid-item",{directives:[{name:"show",rawName:"v-show",value:t.isDragging,expression:"isDragging"}],staticClass:"vue-grid-placeholder",attrs:{x:t.placeholder.x,y:t.placeholder.y,w:t.placeholder.w,h:t.placeholder.h,i:t.placeholder.i}})],2)},Q=[];function K(t,e){for(var n=nt(t),i=n[0],r=1,o=n.length;rt[s]&&(i=s)}return i}function tt(t,e){if(!e[t])throw new Error("ResponsiveGridLayout: `cols` entry for breakpoint "+t+" is missing!");return e[t]}function et(t,e,n,i,r,o,s){if(e[i])return m(e[i]);for(var a=t,c=nt(n),u=c.slice(c.indexOf(i)),l=0,d=u.length;l0&&(this.layout.length>this.originalLayout.length?this.originalLayout=this.originalLayout.concat(t):this.originalLayout=this.originalLayout.filter(function(e){return!t.some(function(t){return e.i===t.i})})),this.lastLayoutLength=this.layout.length,this.initResponsiveFeatures()}x(this.layout,this.verticalCompact),this.eventBus.$emit("updateWidth",this.width),this.updateHeight()}},updateHeight:function(){this.mergedStyle={height:this.containerHeight()}},onWindowResize:function(){null!==this.$refs&&null!==this.$refs.item&&void 0!==this.$refs.item&&(this.width=this.$refs.item.offsetWidth),this.eventBus.$emit("resizeEvent")},containerHeight:function(){if(this.autoSize)return v(this.layout)*(this.rowHeight+this.margin[1])+this.margin[1]+"px"},dragEvent:function(t,e,n,i,r,o){var s=S(this.layout,e);void 0!==s&&null!==s||(s={x:0,y:0}),"dragmove"===t||"dragstart"===t?(this.placeholder.i=e,this.placeholder.x=s.x,this.placeholder.y=s.y,this.placeholder.w=o,this.placeholder.h=r,this.$nextTick(function(){this.isDragging=!0}),this.eventBus.$emit("updateWidth",this.width)):this.$nextTick(function(){this.isDragging=!1}),s.x=n,s.y=i,this.layout=I(this.layout,s,n,i,!0),x(this.layout,this.verticalCompact),this.eventBus.$emit("compact"),this.updateHeight(),"dragend"===t&&this.$emit("layout-updated",this.layout)},resizeEvent:function(t,e,n,i,r,o){"resizestart"===t||"resizemove"===t?(this.placeholder.i=e,this.placeholder.x=n,this.placeholder.y=i,this.placeholder.w=o,this.placeholder.h=r,this.$nextTick(function(){this.isDragging=!0}),this.eventBus.$emit("updateWidth",this.width)):this.$nextTick(function(){this.isDragging=!1});var s=S(this.layout,e);void 0!==s&&null!==s||(s={h:0,w:0}),s.h=r,s.w=o,this.responsive&&this.responsiveGridLayout(),x(this.layout,this.verticalCompact),this.eventBus.$emit("compact"),this.updateHeight(),"resizeend"===t&&this.$emit("layout-updated",this.layout)},responsiveGridLayout:function(){var t=K(this.breakpoints,this.width),e=tt(t,this.cols);null==this.lastBreakpoint||this.layouts[this.lastBreakpoint]||(this.layouts[this.lastBreakpoint]=m(this.layout));var n=et(this.originalLayout,this.layouts,this.breakpoints,t,this.lastBreakpoint,e,this.verticalCompact);this.layouts[t]=n,this.$emit("update:layout",n),this.lastBreakpoint=t,this.eventBus.$emit("setColNum",tt(t,this.cols))},initResponsiveFeatures:function(){this.layouts={}},findDifference:function(t,e){var n=t.filter(function(t){return!e.some(function(e){return t.i===e.i})}),i=e.filter(function(e){return!t.some(function(t){return e.i===t.i})});return n.concat(i)}}},ot=rt,st=(n("e279"),q(ot,J,Q,!1,null,null,null)),at=st.exports,ct={GridLayout:at,GridItem:Z};o()(ct).forEach(function(t){a.a.component(t,ct[t])});var ut=ct;n.d(e,"GridLayout",function(){return at}),n.d(e,"GridItem",function(){return Z});e["default"]=ut},fb3a:function(t,e,n){var i;(function(e){t.exports=e()})(function(){return function t(e,n,r){function o(a,c){if(!n[a]){if(!e[a]){var u="function"==typeof i&&i;if(!c&&u)return i(a,!0);if(s)return s(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var d=n[a]={exports:{}};e[a][0].call(d.exports,function(t){var n=e[a][1][t];return o(n||t)},d,d.exports,t,e,n,r)}return n[a].exports}for(var s="function"==typeof i&&i,a=0;a6&&void 0!==arguments[6]&&arguments[6];i(this,t);var f=e.target,h=(f&&f.options||s).deltaSource,g=o(f,l,c),v="start"===u,m="end"===u,y=v?e.startCoords:e.curCoords,b=e.prevEvent;l=l||e.element;var x=r({},y.page),w=r({},y.client);x.x-=g.x,x.y-=g.y,w.x-=g.x,w.y-=g.y,this.ctrlKey=n.ctrlKey,this.altKey=n.altKey,this.shiftKey=n.shiftKey,this.metaKey=n.metaKey,this.button=n.button,this.buttons=n.buttons,this.target=l,this.currentTarget=l,this.relatedTarget=d||null,this.preEnd=p,this.type=c+(u||""),this.interaction=e,this.interactable=f,this.t0=v?e.downTimes[e.downTimes.length-1]:b.t0;var E={interaction:e,event:n,action:c,phase:u,element:l,related:d,page:x,client:w,coords:y,starting:v,ending:m,deltaSource:h,iEvent:this};a.fire("set-xy",E),m?(this.pageX=b.pageX,this.pageY=b.pageY,this.clientX=b.clientX,this.clientY=b.clientY):(this.pageX=x.x,this.pageY=x.y,this.clientX=w.x,this.clientY=w.y),this.x0=e.startCoords.page.x-g.x,this.y0=e.startCoords.page.y-g.y,this.clientX0=e.startCoords.client.x-g.x,this.clientY0=e.startCoords.client.y-g.y,a.fire("set-delta",E),this.timeStamp=y.timeStamp,this.dt=e.pointerDelta.timeStamp,this.duration=this.timeStamp-this.t0,this.speed=e.pointerDelta[h].speed,this.velocityX=e.pointerDelta[h].vx,this.velocityY=e.pointerDelta[h].vy,this.swipe=m||"inertiastart"===u?this.getSwipe():null,a.fire("new",E)}return t.prototype.getSwipe=function(){var t=this.interaction;if(t.prevEvent.speed<600||this.timeStamp-t.prevEvent.timeStamp>150)return null;var e=180*Math.atan2(t.prevEvent.velocityY,t.prevEvent.velocityX)/Math.PI,n=22.5;e<0&&(e+=360);var i=135-n<=e&&e<225+n,r=225-n<=e&&e<315+n,o=!i&&(315-n<=e||e<45+n),s=!r&&45-n<=e&&e<135+n;return{up:r,down:s,left:i,right:o,angle:e,speed:t.prevEvent.speed,velocity:{x:t.prevEvent.velocityX,y:t.prevEvent.velocityY}}},t.prototype.preventDefault=function(){},t.prototype.stopImmediatePropagation=function(){this.immediatePropagationStopped=this.propagationStopped=!0},t.prototype.stopPropagation=function(){this.propagationStopped=!0},t}();a.on("set-delta",function(t){var e=t.iEvent,n=t.interaction,i=t.starting,r=t.deltaSource,o=i?e:n.prevEvent;"client"===r?(e.dx=e.clientX-o.clientX,e.dy=e.clientY-o.clientY):(e.dx=e.pageX-o.pageX,e.dy=e.pageY-o.pageY)}),c.signals=a,e.exports=c},{"./defaultOptions":18,"./utils/Signals":34,"./utils/extend":41,"./utils/getOriginXY":42}],4:[function(t,e,n){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var r=t("./utils/clone"),o=t("./utils/is"),s=t("./utils/events"),a=t("./utils/extend"),c=t("./actions/base"),u=t("./scope"),l=t("./Eventable"),d=t("./defaultOptions"),p=t("./utils/Signals").new(),f=t("./utils/domUtils"),h=f.getElementRect,g=f.nodeContains,v=f.trySelector,m=f.matchesSelector,y=t("./utils/window"),b=y.getWindow,x=t("./utils/arr"),w=x.contains,E=t("./utils/browser"),S=E.wheelEvent;u.interactables=[];var T=function(){function t(e,n){i(this,t),n=n||{},this.target=e,this.events=new l,this._context=n.context||u.document,this._win=b(v(e)?this._context:e),this._doc=this._win.document,p.fire("new",{target:e,options:n,interactable:this,win:this._win}),u.addDocument(this._doc,this._win),u.interactables.push(this),this.set(n)}return t.prototype.setOnEvents=function(t,e){var n="on"+t;return o.function(e.onstart)&&(this.events[n+"start"]=e.onstart),o.function(e.onmove)&&(this.events[n+"move"]=e.onmove),o.function(e.onend)&&(this.events[n+"end"]=e.onend),o.function(e.oninertiastart)&&(this.events[n+"inertiastart"]=e.oninertiastart),this},t.prototype.setPerAction=function(t,e){for(var n in e)n in d[t]&&(o.object(e[n])?(this.options[t][n]=r(this.options[t][n]||{}),a(this.options[t][n],e[n]),o.object(d.perAction[n])&&"enabled"in d.perAction[n]&&(this.options[t][n].enabled=!1!==e[n].enabled)):o.bool(e[n])&&o.object(d.perAction[n])?this.options[t][n].enabled=e[n]:void 0!==e[n]&&(this.options[t][n]=e[n]))},t.prototype.getRect=function(t){return t=t||this.target,o.string(this.target)&&!o.element(t)&&(t=this._context.querySelector(this.target)),h(t)},t.prototype.rectChecker=function(t){return o.function(t)?(this.getRect=t,this):null===t?(delete this.options.getRect,this):this.getRect},t.prototype._backCompatOption=function(t,e){if(v(e)||o.object(e)){this.options[t]=e;for(var n=0;nt.pointerMoveTolerance);var c={pointer:e,pointerIndex:this.getPointerIndex(e),event:n,eventTarget:i,dx:s,dy:a,duplicate:r,interaction:this,interactingBeforeMove:this.interacting()};r||o.setCoordDeltas(this.pointerDelta,this.prevCoords,this.curCoords),l.fire("move",c),r||(this.interacting()&&this.doMove(c),this.pointerWasMoved&&o.copyCoords(this.prevCoords,this.curCoords))},t.prototype.doMove=function(t){t=o.extend({pointer:this.pointers[0],event:this.prevEvent,eventTarget:this._eventTarget,interaction:this},t||{}),l.fire("before-action-move",t),this._dontFireMove||l.fire("action-move",t),this._dontFireMove=!1},t.prototype.pointerUp=function(t,e,n,i){var r=this.getPointerIndex(t);l.fire(/cancel$/i.test(e.type)?"cancel":"up",{pointer:t,pointerIndex:r,event:e,eventTarget:n,curEventTarget:i,interaction:this}),this.simulation||this.end(e),this.pointerIsDown=!1,this.removePointer(t,e)},t.prototype.end=function(t){this._ending=!0,t=t||this.prevEvent,this.interacting()&&l.fire("action-end",{event:t,interaction:this}),this.stop(),this._ending=!1},t.prototype.currentAction=function(){return this._interacting?this.prepared.name:null},t.prototype.interacting=function(){return this._interacting},t.prototype.stop=function(){l.fire("stop",{interaction:this}),this._interacting&&(l.fire("stop-active",{interaction:this}),l.fire("stop-"+this.prepared.name,{interaction:this})),this.target=this.element=null,this._interacting=!1,this.prepared.name=this.prevEvent=null},t.prototype.getPointerIndex=function(t){return"mouse"===this.pointerType||"pen"===this.pointerType?0:this.pointerIds.indexOf(o.getPointerId(t))},t.prototype.updatePointer=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e&&/(down|start)$/i.test(e.type),i=o.getPointerId(t),r=this.getPointerIndex(t);return-1===r&&(r=this.pointerIds.length,this.pointerIds[r]=i),n&&l.fire("update-pointer-down",{pointer:t,event:e,down:n,pointerId:i,pointerIndex:r,interaction:this}),this.pointers[r]=t,r},t.prototype.removePointer=function(t,e){var n=this.getPointerIndex(t);-1!==n&&(l.fire("remove-pointer",{pointer:t,event:e,pointerIndex:n,interaction:this}),this.pointers.splice(n,1),this.pointerIds.splice(n,1),this.downTargets.splice(n,1),this.downTimes.splice(n,1))},t.prototype._updateEventTargets=function(t,e){this._eventTarget=t,this._curEventTarget=e},t}(),g=0;gs.left&&l.xs.top&&l.y=s.left&&h<=s.right&&g>=s.top&&g<=s.bottom}if(f&&r.is.number(c)){var v=Math.max(0,Math.min(s.right,f.right)-Math.max(s.left,f.left))*Math.max(0,Math.min(s.bottom,f.bottom)-Math.max(s.top,f.top)),m=v/(f.width*f.height);a=m>=c}return this.options.drop.checker&&(a=this.options.drop.checker(t,e,a,this,o,n,i)),a},c.signals.on("unset",function(t){var e=t.interactable;e.dropzone(!1)}),c.settingsMethods.push("dropChecker"),u.signals.on("new",function(t){t.dropTarget=null,t.dropElement=null,t.prevDropTarget=null,t.prevDropElement=null,t.dropEvents=null,t.activeDrops={dropzones:[],elements:[],rects:[]}}),u.signals.on("stop",function(t){var e=t.interaction;e.dropTarget=e.dropElement=e.prevDropTarget=e.prevDropElement=null}),s.dynamicDrop=function(t){return r.is.bool(t)?(p=t,s):p},r.merge(c.eventTypes,["dragenter","dragleave","dropactivate","dropdeactivate","dropmove","drop"]),i.methodDict.drop="dropzone",l.drop=d.defaults,e.exports=d},{"../InteractEvent":3,"../Interactable":4,"../Interaction":5,"../defaultOptions":18,"../interact":21,"../scope":33,"../utils":44,"./base":6}],9:[function(t,e,n){"use strict";var i=t("./base"),r=t("../utils"),o=t("../InteractEvent"),s=t("../Interactable"),a=t("../Interaction"),c=t("../defaultOptions"),u={defaults:{enabled:!1,origin:null,restrict:null},checker:function(t,e,n,i,r){return r.pointerIds.length>=2?{name:"gesture"}:null},getCursor:function(){return""}};o.signals.on("new",function(t){var e=t.iEvent,n=t.interaction;"gesturestart"===e.type&&(e.ds=0,n.gesture.startDistance=n.gesture.prevDistance=e.distance,n.gesture.startAngle=n.gesture.prevAngle=e.angle,n.gesture.scale=1)}),o.signals.on("new",function(t){var e=t.iEvent,n=t.interaction;"gesturemove"===e.type&&(e.ds=e.scale-n.gesture.scale,n.target.fire(e),n.gesture.prevAngle=e.angle,n.gesture.prevDistance=e.distance,e.scale===1/0||null===e.scale||void 0===e.scale||isNaN(e.scale)||(n.gesture.scale=e.scale))}),s.prototype.gesturable=function(t){return r.is.object(t)?(this.options.gesture.enabled=!1!==t.enabled,this.setPerAction("gesture",t),this.setOnEvents("gesture",t),this):r.is.bool(t)?(this.options.gesture.enabled=t,t||(this.ongesturestart=this.ongesturestart=this.ongestureend=null),this):this.options.gesture},o.signals.on("set-delta",function(t){var e=t.interaction,n=t.iEvent,i=t.action,s=t.event,a=t.starting,c=t.ending,u=t.deltaSource;if("gesture"===i){var l=e.pointers;n.touches=[l[0],l[1]],a?(n.distance=r.touchDistance(l,u),n.box=r.touchBBox(l),n.scale=1,n.ds=0,n.angle=r.touchAngle(l,void 0,u),n.da=0):c||s instanceof o?(n.distance=e.prevEvent.distance,n.box=e.prevEvent.box,n.scale=e.prevEvent.scale,n.ds=n.scale-1,n.angle=e.prevEvent.angle,n.da=n.angle-e.gesture.startAngle):(n.distance=r.touchDistance(l,u),n.box=r.touchBBox(l),n.scale=n.distance/e.gesture.startDistance,n.angle=r.touchAngle(l,e.gesture.prevAngle,u),n.ds=n.scale-e.gesture.prevScale,n.da=n.angle-e.gesture.prevAngle)}}),a.signals.on("new",function(t){t.gesture={start:{x:0,y:0},startDistance:0,prevDistance:0,distance:0,scale:1,startAngle:0,prevAngle:0}}),i.gesture=u,i.names.push("gesture"),r.merge(s.eventTypes,["gesturestart","gesturemove","gestureend"]),i.methodDict.gesture="gesturable",c.gesture=u.defaults,e.exports=u},{"../InteractEvent":3,"../Interactable":4,"../Interaction":5,"../defaultOptions":18,"../utils":44,"./base":6}],10:[function(t,e,n){"use strict";var i=t("./base"),r=t("../utils"),o=t("../utils/browser"),s=t("../InteractEvent"),a=t("../Interactable"),c=t("../Interaction"),u=t("../defaultOptions"),l=o.supportsTouch||o.supportsPointerEvent?20:10,d={defaults:{enabled:!1,mouseButtons:null,origin:null,snap:null,restrict:null,inertia:null,autoScroll:null,square:!1,preserveAspectRatio:!1,axis:"xy",margin:NaN,edges:null,invert:"none"},checker:function(t,e,n,i,o,s){if(!s)return null;var a=r.extend({},o.curCoords.page),c=n.options;if(c.resize.enabled){var u=c.resize,d={left:!1,right:!1,top:!1,bottom:!1};if(r.is.object(u.edges)){for(var f in d)d[f]=p(f,u.edges[f],a,o._eventTarget,i,s,u.margin||l);if(d.left=d.left&&!d.right,d.top=d.top&&!d.bottom,d.left||d.right||d.top||d.bottom)return{name:"resize",edges:d}}else{var h="y"!==c.resize.axis&&a.x>s.right-l,g="x"!==c.resize.axis&&a.y>s.bottom-l;if(h||g)return{name:"resize",axes:(h?"x":"")+(g?"y":"")}}}return null},cursors:o.isIe9?{x:"e-resize",y:"s-resize",xy:"se-resize",top:"n-resize",left:"w-resize",bottom:"s-resize",right:"e-resize",topleft:"se-resize",bottomright:"se-resize",topright:"ne-resize",bottomleft:"ne-resize"}:{x:"ew-resize",y:"ns-resize",xy:"nwse-resize",top:"ns-resize",left:"ew-resize",bottom:"ns-resize",right:"ew-resize",topleft:"nwse-resize",bottomright:"nwse-resize",topright:"nesw-resize",bottomleft:"nesw-resize"},getCursor:function(t){if(t.axis)return d.cursors[t.name+t.axis];if(t.edges){for(var e="",n=["top","bottom","left","right"],i=0;i<4;i++)t.edges[n[i]]&&(e+=n[i]);return d.cursors[e]}}};function p(t,e,n,i,o,s,a){if(!e)return!1;if(!0===e){var c=r.is.number(s.width)?s.width:s.right-s.left,u=r.is.number(s.height)?s.height:s.bottom-s.top;if(c<0&&("left"===t?t="right":"right"===t&&(t="left")),u<0&&("top"===t?t="bottom":"bottom"===t&&(t="top")),"left"===t)return n.x<(c>=0?s.left:s.right)+a;if("top"===t)return n.y<(u>=0?s.top:s.bottom)+a;if("right"===t)return n.x>(c>=0?s.right:s.left)-a;if("bottom"===t)return n.y>(u>=0?s.bottom:s.top)-a}return!!r.is.element(i)&&(r.is.element(e)?e===i:r.matchesUpTo(i,e,o))}s.signals.on("new",function(t){var e=t.iEvent,n=t.interaction;if("resizestart"===e.type&&n.prepared.edges){var i=n.target.getRect(n.element),o=n.target.options.resize;if(o.square||o.preserveAspectRatio){var s=r.extend({},n.prepared.edges);s.top=s.top||s.left&&!s.bottom,s.left=s.left||s.top&&!s.right,s.bottom=s.bottom||s.right&&!s.top,s.right=s.right||s.bottom&&!s.left,n.prepared._linkedEdges=s}else n.prepared._linkedEdges=null;o.preserveAspectRatio&&(n.resizeStartAspectRatio=i.width/i.height),n.resizeRects={start:i,current:r.extend({},i),inverted:r.extend({},i),previous:r.extend({},i),delta:{left:0,right:0,width:0,top:0,bottom:0,height:0}},e.rect=n.resizeRects.inverted,e.deltaRect=n.resizeRects.delta}}),s.signals.on("new",function(t){var e=t.iEvent,n=t.phase,i=t.interaction;if("move"===n&&i.prepared.edges){var o=i.target.options.resize,s=o.invert,a="reposition"===s||"negate"===s,c=i.prepared.edges,u=i.resizeRects.start,l=i.resizeRects.current,d=i.resizeRects.inverted,p=i.resizeRects.delta,f=r.extend(i.resizeRects.previous,d),h=c,g=e.dx,v=e.dy;if(o.preserveAspectRatio||o.square){var m=o.preserveAspectRatio?i.resizeStartAspectRatio:1;c=i.prepared._linkedEdges,h.left&&h.bottom||h.right&&h.top?v=-g/m:h.left||h.right?v=g/m:(h.top||h.bottom)&&(g=v*m)}if(c.top&&(l.top+=v),c.bottom&&(l.bottom+=v),c.left&&(l.left+=g),c.right&&(l.right+=g),a){if(r.extend(d,l),"reposition"===s){var y=void 0;d.top>d.bottom&&(y=d.top,d.top=d.bottom,d.bottom=y),d.left>d.right&&(y=d.left,d.left=d.right,d.right=y)}}else d.top=Math.min(l.top,u.bottom),d.bottom=Math.max(l.bottom,u.top),d.left=Math.min(l.left,u.right),d.right=Math.max(l.right,u.left);for(var b in d.width=d.right-d.left,d.height=d.bottom-d.top,d)p[b]=d[b]-f[b];e.edges=i.prepared.edges,e.rect=d,e.deltaRect=p}}),a.prototype.resizable=function(t){return r.is.object(t)?(this.options.resize.enabled=!1!==t.enabled,this.setPerAction("resize",t),this.setOnEvents("resize",t),/^x$|^y$|^xy$/.test(t.axis)?this.options.resize.axis=t.axis:null===t.axis&&(this.options.resize.axis=u.resize.axis),r.is.bool(t.preserveAspectRatio)?this.options.resize.preserveAspectRatio=t.preserveAspectRatio:r.is.bool(t.square)&&(this.options.resize.square=t.square),this):r.is.bool(t)?(this.options.resize.enabled=t,t||(this.onresizestart=this.onresizestart=this.onresizeend=null),this):this.options.resize},c.signals.on("new",function(t){t.resizeAxes="xy"}),s.signals.on("set-delta",function(t){var e=t.interaction,n=t.iEvent,i=t.action;if("resize"===i&&e.resizeAxes){var r=e.target.options;r.resize.square?("y"===e.resizeAxes?n.dx=n.dy:n.dy=n.dx,n.axes="xy"):(n.axes=e.resizeAxes,"x"===e.resizeAxes?n.dy=0:"y"===e.resizeAxes&&(n.dx=0))}}),i.resize=d,i.names.push("resize"),r.merge(a.eventTypes,["resizestart","resizemove","resizeinertiastart","resizeinertiaresume","resizeend"]),i.methodDict.resize="resizable",u.resize=d.defaults,e.exports=d},{"../InteractEvent":3,"../Interactable":4,"../Interaction":5,"../defaultOptions":18,"../utils":44,"../utils/browser":36,"./base":6}],11:[function(t,e,n){"use strict";var i=t("./utils/raf"),r=t("./utils/window").getWindow,o=t("./utils/is"),s=t("./utils/domUtils"),a=t("./Interaction"),c=t("./defaultOptions"),u={defaults:{enabled:!1,container:null,margin:60,speed:300},interaction:null,i:null,x:0,y:0,isScrolling:!1,prevTime:0,start:function(t){u.isScrolling=!0,i.cancel(u.i),u.interaction=t,u.prevTime=(new Date).getTime(),u.i=i.request(u.scroll)},stop:function(){u.isScrolling=!1,i.cancel(u.i)},scroll:function(){var t=u.interaction.target.options[u.interaction.prepared.name].autoScroll,e=t.container||r(u.interaction.element),n=(new Date).getTime(),s=(n-u.prevTime)/1e3,a=t.speed*s;a>=1&&(o.window(e)?e.scrollBy(u.x*a,u.y*a):e&&(e.scrollLeft+=u.x*a,e.scrollTop+=u.y*a),u.prevTime=n),u.isScrolling&&(i.cancel(u.i),u.i=i.request(u.scroll))},check:function(t,e){var n=t.options;return n[e].autoScroll&&n[e].autoScroll.enabled},onInteractionMove:function(t){var e=t.interaction,n=t.pointer;if(e.interacting()&&u.check(e.target,e.prepared.name))if(e.simulation)u.x=u.y=0;else{var i=void 0,a=void 0,c=void 0,l=void 0,d=e.target.options[e.prepared.name].autoScroll,p=d.container||r(e.element);if(o.window(p))l=n.clientXp.innerWidth-u.margin,c=n.clientY>p.innerHeight-u.margin;else{var f=s.getElementClientRect(p);l=n.clientXf.right-u.margin,c=n.clientY>f.bottom-u.margin}u.x=a?1:l?-1:0,u.y=c?1:i?-1:0,u.isScrolling||(u.margin=d.margin,u.speed=d.speed,u.start(e))}}};a.signals.on("stop-active",function(){u.stop()}),a.signals.on("action-move",u.onInteractionMove),c.perAction.autoScroll=u.defaults,e.exports=u},{"./Interaction":5,"./defaultOptions":18,"./utils/domUtils":39,"./utils/is":46,"./utils/raf":50,"./utils/window":52}],12:[function(t,e,n){"use strict";var i=t("../Interactable"),r=t("../actions/base"),o=t("../utils/is"),s=t("../utils/domUtils"),a=t("../utils"),c=a.warnOnce;i.prototype.getAction=function(t,e,n,i){var r=this.defaultActionChecker(t,e,n,i);return this.options.actionChecker?this.options.actionChecker(t,e,r,this,i,n):r},i.prototype.ignoreFrom=c(function(t){return this._backCompatOption("ignoreFrom",t)},"Interactable.ignoreForm() has been deprecated. Use Interactble.draggable({ignoreFrom: newValue})."),i.prototype.allowFrom=c(function(t){return this._backCompatOption("allowFrom",t)},"Interactable.allowForm() has been deprecated. Use Interactble.draggable({allowFrom: newValue})."),i.prototype.testIgnore=function(t,e,n){return!(!t||!o.element(n))&&(o.string(t)?s.matchesUpTo(n,t,e):!!o.element(t)&&s.nodeContains(t,n))},i.prototype.testAllow=function(t,e,n){return!t||!!o.element(n)&&(o.string(t)?s.matchesUpTo(n,t,e):!!o.element(t)&&s.nodeContains(t,n))},i.prototype.testIgnoreAllow=function(t,e,n){return!this.testIgnore(t.ignoreFrom,e,n)&&this.testAllow(t.allowFrom,e,n)},i.prototype.actionChecker=function(t){return o.function(t)?(this.options.actionChecker=t,this):null===t?(delete this.options.actionChecker,this):this.options.actionChecker},i.prototype.styleCursor=function(t){return o.bool(t)?(this.options.styleCursor=t,this):null===t?(delete this.options.styleCursor,this):this.options.styleCursor},i.prototype.defaultActionChecker=function(t,e,n,i){for(var o=this.getRect(i),s=e.buttons||{0:1,1:4,3:8,4:16}[e.button],a=null,c=0;c=d.maxInteractions)return!1;if(f.target===t){if(a+=h===n.name|0,a>=r)return!1;if(f.element===e&&(u++,h!==n.name||u>=o))return!1}}}return d.maxInteractions>0}}o.signals.on("down",function(t){var e=t.interaction,n=t.pointer,i=t.event,r=t.eventTarget;if(!e.interacting()){var o=h(e,n,i,r);g(e,o)}}),o.signals.on("move",function(t){var e=t.interaction,n=t.pointer,i=t.event,r=t.eventTarget;if("mouse"===e.pointerType&&!e.pointerIsDown&&!e.interacting()){var o=h(e,n,i,r);g(e,o)}}),o.signals.on("move",function(t){var e=t.interaction,n=t.event;if(e.pointerIsDown&&!e.interacting()&&e.pointerWasMoved&&e.prepared.name){l.fire("before-start",t);var i=e.target;e.prepared.name&&i&&(i.options[e.prepared.name].manualStart||!v(i,e.element,e.prepared)?e.stop(n):e.start(e.prepared,i,e.element))}}),o.signals.on("stop",function(t){var e=t.interaction,n=e.target;n&&n.options.styleCursor&&(n._doc.documentElement.style.cursor="")}),i.maxInteractions=function(t){return u.is.number(t)?(d.maxInteractions=t,i):d.maxInteractions},r.settingsMethods.push("styleCursor"),r.settingsMethods.push("actionChecker"),r.settingsMethods.push("ignoreFrom"),r.settingsMethods.push("allowFrom"),a.base.actionChecker=null,a.base.styleCursor=!0,u.extend(a.perAction,d.defaults.perAction),e.exports=d},{"../Interactable":4,"../Interaction":5,"../actions/base":6,"../defaultOptions":18,"../interact":21,"../scope":33,"../utils":44,"../utils/Signals":34,"./InteractableMethods":12}],14:[function(t,e,n){"use strict";var i=t("./base"),r=t("../scope"),o=t("../utils/is"),s=t("../utils/domUtils"),a=s.parentNode;function c(t,e){if(!e)return!1;var n=e.options.drag.startAxis;return"xy"===t||"xy"===n||n===t}i.setActionDefaults(t("../actions/drag")),i.signals.on("before-start",function(t){var e=t.interaction,n=t.eventTarget,s=t.dx,u=t.dy;if("drag"===e.prepared.name){var l=Math.abs(s),d=Math.abs(u),p=e.target.options.drag,f=p.startAxis,h=l>d?"x":l0&&(e.autoStartHoldTimer=setTimeout(function(){e.start(e.prepared,e.target,e.element)},n))}),r.signals.on("move",function(t){var e=t.interaction,n=t.duplicate;e.pointerWasMoved&&!n&&clearTimeout(e.autoStartHoldTimer)}),i.signals.on("before-start",function(t){var e=t.interaction,n=o(e);n>0&&(e.prepared.name=null)}),e.exports={getHoldDuration:o}},{"../Interaction":5,"./base":13}],17:[function(t,e,n){"use strict";t("./base").setActionDefaults(t("../actions/resize"))},{"../actions/resize":10,"./base":13}],18:[function(t,e,n){"use strict";e.exports={base:{accept:null,preventDefault:"auto",deltaSource:"page"},perAction:{origin:{x:0,y:0},inertia:{enabled:!1,resistance:10,minSpeed:100,endSpeed:10,allowResume:!0,smoothEndDuration:300}}}},{}],19:[function(t,e,n){"use strict";t("./inertia"),t("./modifiers/snap"),t("./modifiers/restrict"),t("./pointerEvents/base"),t("./pointerEvents/holdRepeat"),t("./pointerEvents/interactableTargets"),t("./autoStart/hold"),t("./actions/gesture"),t("./actions/resize"),t("./actions/drag"),t("./actions/drop"),t("./modifiers/snapSize"),t("./modifiers/restrictEdges"),t("./modifiers/restrictSize"),t("./autoStart/gesture"),t("./autoStart/resize"),t("./autoStart/drag"),t("./interactablePreventDefault.js"),t("./autoScroll"),e.exports=t("./interact")},{"./actions/drag":7,"./actions/drop":8,"./actions/gesture":9,"./actions/resize":10,"./autoScroll":11,"./autoStart/drag":14,"./autoStart/gesture":15,"./autoStart/hold":16,"./autoStart/resize":17,"./inertia":20,"./interact":21,"./interactablePreventDefault.js":22,"./modifiers/restrict":24,"./modifiers/restrictEdges":25,"./modifiers/restrictSize":26,"./modifiers/snap":27,"./modifiers/snapSize":28,"./pointerEvents/base":30,"./pointerEvents/holdRepeat":31,"./pointerEvents/interactableTargets":32}],20:[function(t,e,n){"use strict";var i=t("./InteractEvent"),r=t("./Interaction"),o=t("./modifiers/base"),s=t("./utils"),a=t("./utils/raf");function c(t,e){var n=t.target.options[t.prepared.name].inertia,i=n.resistance,r=-Math.log(n.endSpeed/e.v0)/i;e.x0=t.prevEvent.pageX,e.y0=t.prevEvent.pageY,e.t0=e.startEvent.timeStamp/1e3,e.sx=e.sy=0,e.modifiedXe=e.xe=(e.vx0-r)/i,e.modifiedYe=e.ye=(e.vy0-r)/i,e.te=r,e.lambda_v0=i/e.v0,e.one_ve_v0=1-n.endSpeed/e.v0}function u(){d(this),s.setCoordDeltas(this.pointerDelta,this.prevCoords,this.curCoords);var t=this.inertiaStatus,e=this.target.options[this.prepared.name].inertia,n=e.resistance,i=(new Date).getTime()/1e3-t.t0;if(id.minSpeed&&g>d.endSpeed,x={interaction:e,pageCoords:h,statuses:f,preEnd:!0,requireEndOnly:!0};y&&!b&&(o.resetStatuses(f),m=o.setAll(x),m.shouldMove&&m.locked&&(v=!0)),(b||v)&&(s.copyCoords(r.upCoords,e.curCoords),e.pointers[0]=r.startEvent=new i(e,n,e.prepared.name,"inertiastart",e.element),r.t0=p,r.active=!0,r.allowResume=d.allowResume,e.simulation=r,u.fire(r.startEvent),b?(r.vx0=e.pointerDelta.client.vx,r.vy0=e.pointerDelta.client.vy,r.v0=g,c(e,r),s.extend(h,e.curCoords.page),h.x+=r.xe,h.y+=r.ye,o.resetStatuses(f),m=o.setAll(x),r.modifiedXe+=m.dx,r.modifiedYe+=m.dy,r.i=a.request(e.boundInertiaFrame)):(r.smoothEnd=!0,r.xe=m.dx,r.ye=m.dy,r.sx=r.sy=0,r.i=a.request(e.boundSmoothEndFrame)))}}),r.signals.on("stop-active",function(t){var e=t.interaction,n=e.inertiaStatus;n.active&&(a.cancel(n.i),n.active=!1,e.simulation=null)})},{"./InteractEvent":3,"./Interaction":5,"./modifiers/base":23,"./utils":44,"./utils/raf":50}],21:[function(t,e,n){"use strict";var i=t("./utils/browser"),r=t("./utils/events"),o=t("./utils"),s=t("./scope"),a=t("./Interactable"),c=t("./Interaction"),u={};function l(t,e){var n=s.interactables.get(t,e);return n||(n=new a(t,e),n.events.global=u),n}l.isSet=function(t,e){return-1!==s.interactables.indexOfElement(t,e&&e.context)},l.on=function(t,e,n){if(o.is.string(t)&&-1!==t.search(" ")&&(t=t.trim().split(/ +/)),o.is.array(t)){for(var i=0;i=0;e--)s.interactions[e].stop(t);return l},l.pointerMoveTolerance=function(t){return o.is.number(t)?(c.pointerMoveTolerance=t,l):c.pointerMoveTolerance},l.addDocument=s.addDocument,l.removeDocument=s.removeDocument,s.interact=l,e.exports=l},{"./Interactable":4,"./Interaction":5,"./scope":33,"./utils":44,"./utils/browser":36,"./utils/events":40}],22:[function(t,e,n){"use strict";var i=t("./Interactable"),r=t("./Interaction"),o=t("./scope"),s=t("./utils/is"),a=t("./utils/events"),c=t("./utils/browser"),u=t("./utils/domUtils"),l=u.nodeContains,d=u.matchesSelector;function p(t){var e=t.interaction,n=t.event;e.target&&e.target.checkAndPreventDefault(n)}i.prototype.preventDefault=function(t){return/^(always|never|auto)$/.test(t)?(this.options.preventDefault=t,this):s.bool(t)?(this.options.preventDefault=t?"always":"never",this):this.options.preventDefault},i.prototype.checkAndPreventDefault=function(t){var e=this.options.preventDefault;"never"!==e&&("always"!==e&&(a.supportsPassive&&/^touch(start|move)$/.test(t.type)&&!c.isIOS||/^(mouse|pointer|touch)*(down|start)/i.test(t.type)||s.element(t.target)&&d(t.target,"input,select,textarea,[contenteditable=true],[contenteditable=true] *"))||t.preventDefault())};for(var f=["down","move","up","cancel"],h=0;h=0;u--)if(c.selectors[u]===t&&c.contexts[u]===e)break;-1===u&&(u=c.selectors.length,c.selectors.push(t),c.contexts.push(e),c.listeners.push([])),c.listeners[u].push([i,!!o.capture,o.passive])}function b(t,e,n,i,r){var o=S(r),s=f[n],a=!1,c=void 0;if(s)for(c=s.selectors.length-1;c>=0;c--)if(s.selectors[c]===t&&s.contexts[c]===e){for(var u=s.listeners[c],l=u.length-1;l>=0;l--){var d=u[l],p=d[0],h=d[1],g=d[2];if(p===i&&h===!!o.capture&&g===o.passive){u.splice(l,1),u.length||(s.selectors.splice(c,1),s.contexts.splice(c,1),s.listeners.splice(c,1),m(e,n,x),m(e,n,w,!0),s.selectors.length||(f[n]=null)),a=!0;break}}if(a)break}}function x(t,e){var n=S(e),a={},c=f[t.type],u=o.getEventTargets(t),l=u[0],d=l;s(a,t),a.originalEvent=t,a.preventDefault=E;while(i.element(d)){for(var p=0;p=2)continue;if(!o.interacting()&&e===o.pointerType)return o}return null}};e.exports=o},{"../scope":33,"./index":44}],46:[function(t,e,n){"use strict";var i="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r=t("./window"),o=t("./isWindow"),s={array:function(){},window:function(t){return t===r.window||o(t)},docFrag:function(t){return s.object(t)&&11===t.nodeType},object:function(t){return!!t&&"object"===("undefined"===typeof t?"undefined":i(t))},function:function(t){return"function"===typeof t},number:function(t){return"number"===typeof t},bool:function(t){return"boolean"===typeof t},string:function(t){return"string"===typeof t},element:function(t){if(!t||"object"!==("undefined"===typeof t?"undefined":i(t)))return!1;var e=r.getWindow(t)||r.window;return/object|function/.test(i(e.Element))?t instanceof e.Element:1===t.nodeType&&"string"===typeof t.nodeName},plainObject:function(t){return s.object(t)&&"Object"===t.constructor.name}};s.array=function(t){return s.object(t)&&"undefined"!==typeof t.length&&s.function(t.splice)},e.exports=s},{"./isWindow":47,"./window":52}],47:[function(t,e,n){"use strict";e.exports=function(t){return!(!t||!t.Window)&&t instanceof t.Window}},{}],48:[function(t,e,n){"use strict";function i(t,n){for(var i in n){var r=e.exports.prefixedPropREs,o=!1;for(var s in r)if(0===i.indexOf(s)&&r[s].test(i)){o=!0;break}o||"function"===typeof n[i]||(t[i]=n[i])}return t}i.prefixedPropREs={webkit:/(Movement[XY]|Radius[XY]|RotationAngle|Force)$/},e.exports=i},{}],49:[function(t,e,n){"use strict";var i=t("./hypot"),r=t("./browser"),o=t("./domObjects"),s=t("./domUtils"),a=t("./domObjects"),c=t("./is"),u=t("./pointerExtend"),l={copyCoords:function(t,e){t.page=t.page||{},t.page.x=e.page.x,t.page.y=e.page.y,t.client=t.client||{},t.client.x=e.client.x,t.client.y=e.client.y,t.timeStamp=e.timeStamp},setCoordDeltas:function(t,e,n){t.page.x=n.page.x-e.page.x,t.page.y=n.page.y-e.page.y,t.client.x=n.client.x-e.client.x,t.client.y=n.client.y-e.client.y,t.timeStamp=n.timeStamp-e.timeStamp;var r=Math.max(t.timeStamp/1e3,.001);t.page.speed=i(t.page.x,t.page.y)/r,t.page.vx=t.page.x/r,t.page.vy=t.page.y/r,t.client.speed=i(t.client.x,t.page.y)/r,t.client.vx=t.client.x/r,t.client.vy=t.client.y/r},isNativePointer:function(t){return t instanceof o.Event||t instanceof o.Touch},getXY:function(t,e,n){return n=n||{},t=t||"page",n.x=e[t+"X"],n.y=e[t+"Y"],n},getPageXY:function(t,e){return e=e||{},r.isOperaMobile&&l.isNativePointer(t)?(l.getXY("screen",t,e),e.x+=window.scrollX,e.y+=window.scrollY):l.getXY("page",t,e),e},getClientXY:function(t,e){return e=e||{},r.isOperaMobile&&l.isNativePointer(t)?l.getXY("screen",t,e):l.getXY("client",t,e),e},getPointerId:function(t){return c.number(t.pointerId)?t.pointerId:t.identifier},setCoords:function(t,e,n){var i=e.length>1?l.pointerAverage(e):e[0],r={};l.getPageXY(i,r),t.page.x=r.x,t.page.y=r.y,l.getClientXY(i,r),t.client.x=r.x,t.client.y=r.y,t.timeStamp=c.number(n)?n:(new Date).getTime()},pointerExtend:u,getTouchPair:function(t){var e=[];return c.array(t)?(e[0]=t[0],e[1]=t[1]):"touchend"===t.type?1===t.touches.length?(e[0]=t.touches[0],e[1]=t.changedTouches[0]):0===t.touches.length&&(e[0]=t.changedTouches[0],e[1]=t.changedTouches[1]):(e[0]=t.touches[0],e[1]=t.touches[1]),e},pointerAverage:function(t){for(var e={pageX:0,pageY:0,clientX:0,clientY:0,screenX:0,screenY:0},n=0;n1){var e=l.getTouchPair(t),n=Math.min(e[0].pageX,e[1].pageX),i=Math.min(e[0].pageY,e[1].pageY),r=Math.max(e[0].pageX,e[1].pageX),o=Math.max(e[0].pageY,e[1].pageY);return{x:n,y:i,left:n,top:i,width:r-n,height:o-i}}},touchDistance:function(t,e){var n=e+"X",r=e+"Y",o=l.getTouchPair(t),s=o[0][n]-o[1][n],a=o[0][r]-o[1][r];return i(s,a)},touchAngle:function(t,e,n){var i=n+"X",r=n+"Y",o=l.getTouchPair(t),s=o[1][i]-o[0][i],a=o[1][r]-o[0][r],c=180*Math.atan2(a,s)/Math.PI;return c},getPointerType:function(t){return c.string(t.pointerType)?t.pointerType:c.number(t.pointerType)?[void 0,void 0,"touch","pen","mouse"][t.pointerType]:/touch/.test(t.type)||t instanceof a.Touch?"touch":"mouse"},getEventTargets:function(t){var e=c.function(t.composedPath)?t.composedPath():t.path;return[s.getActualElement(e?e[0]:t.target),s.getActualElement(t.currentTarget)]}};e.exports=l},{"./browser":36,"./domObjects":38,"./domUtils":39,"./hypot":43,"./is":46,"./pointerExtend":48}],50:[function(t,e,n){"use strict";for(var i=t("./window"),r=i.window,o=["ms","moz","webkit","o"],s=0,a=void 0,c=void 0,u=0;u String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar at = require('./_string-at')(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// style-loader: Adds some css to the DOM by adding a \r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GridItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GridItem.vue?vue&type=script&lang=js&\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./GridItem.vue?vue&type=template&id=6724f499&\"\nimport script from \"./GridItem.vue?vue&type=script&lang=js&\"\nexport * from \"./GridItem.vue?vue&type=script&lang=js&\"\nimport style0 from \"./GridItem.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"item\",staticClass:\"vue-grid-layout\",style:(_vm.mergedStyle)},[_vm._t(\"default\"),_c('grid-item',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isDragging),expression:\"isDragging\"}],staticClass:\"vue-grid-placeholder\",attrs:{\"x\":_vm.placeholder.x,\"y\":_vm.placeholder.y,\"w\":_vm.placeholder.w,\"h\":_vm.placeholder.h,\"i\":_vm.placeholder.i}})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","// @flow\r\n\r\nimport {cloneLayout, compact, correctBounds} from './utils';\r\n\r\nimport type {Layout} from './utils';\r\nexport type ResponsiveLayout = {lg?: Layout, md?: Layout, sm?: Layout, xs?: Layout, xxs?: Layout};\r\ntype Breakpoint = string;\r\ntype Breakpoints = {lg?: number, md?: number, sm?: number, xs?: number, xxs?: number};\r\n\r\n/**\r\n * Given a width, find the highest breakpoint that matches is valid for it (width > breakpoint).\r\n *\r\n * @param {Object} breakpoints Breakpoints object (e.g. {lg: 1200, md: 960, ...})\r\n * @param {Number} width Screen width.\r\n * @return {String} Highest breakpoint that is less than width.\r\n */\r\nexport function getBreakpointFromWidth(breakpoints: Breakpoints, width: number): Breakpoint {\r\n const sorted = sortBreakpoints(breakpoints);\r\n let matching = sorted[0];\r\n for (let i = 1, len = sorted.length; i < len; i++) {\r\n const breakpointName = sorted[i];\r\n if (width > breakpoints[breakpointName]) matching = breakpointName;\r\n }\r\n return matching;\r\n}\r\n\r\n\r\n/**\r\n * Given a breakpoint, get the # of cols set for it.\r\n * @param {String} breakpoint Breakpoint name.\r\n * @param {Object} cols Map of breakpoints to cols.\r\n * @return {Number} Number of cols.\r\n */\r\nexport function getColsFromBreakpoint(breakpoint: Breakpoint, cols: Breakpoints): number {\r\n if (!cols[breakpoint]) {\r\n throw new Error(\"ResponsiveGridLayout: `cols` entry for breakpoint \" + breakpoint + \" is missing!\");\r\n }\r\n return cols[breakpoint];\r\n}\r\n\r\n/**\r\n * Given existing layouts and a new breakpoint, find or generate a new layout.\r\n *\r\n * This finds the layout above the new one and generates from it, if it exists.\r\n *\r\n * @param {Array} orgLayout Original layout.\r\n * @param {Object} layouts Existing layouts.\r\n * @param {Array} breakpoints All breakpoints.\r\n * @param {String} breakpoint New breakpoint.\r\n * @param {String} breakpoint Last breakpoint (for fallback).\r\n * @param {Number} cols Column count at new breakpoint.\r\n * @param {Boolean} verticalCompact Whether or not to compact the layout\r\n * vertically.\r\n * @return {Array} New layout.\r\n */\r\nexport function findOrGenerateResponsiveLayout(orgLayout: Layout, layouts: ResponsiveLayout, breakpoints: Breakpoints,\r\n breakpoint: Breakpoint, lastBreakpoint: Breakpoint,\r\n cols: number, verticalCompact: boolean): Layout {\r\n // If it already exists, just return it.\r\n if (layouts[breakpoint]) return cloneLayout(layouts[breakpoint]);\r\n // Find or generate the next layout\r\n let layout = orgLayout;\r\n\r\n const breakpointsSorted = sortBreakpoints(breakpoints);\r\n const breakpointsAbove = breakpointsSorted.slice(breakpointsSorted.indexOf(breakpoint));\r\n for (let i = 0, len = breakpointsAbove.length; i < len; i++) {\r\n const b = breakpointsAbove[i];\r\n if (layouts[b]) {\r\n layout = layouts[b];\r\n break;\r\n }\r\n }\r\n layout = cloneLayout(layout || []); // clone layout so we don't modify existing items\r\n return compact(correctBounds(layout, {cols: cols}), verticalCompact);\r\n}\r\n\r\nexport function generateResponsiveLayout(layout: Layout, breakpoints: Breakpoints,\r\n breakpoint: Breakpoint, lastBreakpoint: Breakpoint,\r\n cols: number, verticalCompact: boolean): Layout {\r\n // If it already exists, just return it.\r\n /*if (layouts[breakpoint]) return cloneLayout(layouts[breakpoint]);\r\n // Find or generate the next layout\r\n let layout = layouts[lastBreakpoint];*/\r\n /*const breakpointsSorted = sortBreakpoints(breakpoints);\r\n const breakpointsAbove = breakpointsSorted.slice(breakpointsSorted.indexOf(breakpoint));\r\n for (let i = 0, len = breakpointsAbove.length; i < len; i++) {\r\n const b = breakpointsAbove[i];\r\n if (layouts[b]) {\r\n layout = layouts[b];\r\n break;\r\n }\r\n }*/\r\n layout = cloneLayout(layout || []); // clone layout so we don't modify existing items\r\n return compact(correctBounds(layout, {cols: cols}), verticalCompact);\r\n}\r\n\r\n/**\r\n * Given breakpoints, return an array of breakpoints sorted by width. This is usually\r\n * e.g. ['xxs', 'xs', 'sm', ...]\r\n *\r\n * @param {Object} breakpoints Key/value pair of breakpoint names to widths.\r\n * @return {Array} Sorted breakpoints.\r\n */\r\nexport function sortBreakpoints(breakpoints: Breakpoints): Array {\r\n const keys: Array = Object.keys(breakpoints);\r\n return keys.sort(function(a, b) {\r\n return breakpoints[a] - breakpoints[b];\r\n });\r\n}\r\n","\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GridLayout.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GridLayout.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./GridLayout.vue?vue&type=template&id=ba4fc54e&\"\nimport script from \"./GridLayout.vue?vue&type=script&lang=js&\"\nexport * from \"./GridLayout.vue?vue&type=script&lang=js&\"\nimport style0 from \"./GridLayout.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\";\r\nimport GridItem from './GridItem.vue';\r\nimport GridLayout from './GridLayout.vue';\r\n// import ResponsiveGridLayout from './ResponsiveGridLayout.vue';\r\n\r\n\r\nconst VueGridLayout = {\r\n // ResponsiveGridLayout,\r\n GridLayout,\r\n GridItem\r\n}\r\n\r\n// module.exports = VueGridLayout;\r\n\r\nObject.keys(VueGridLayout).forEach(name => {\r\n Vue.component(name, VueGridLayout[name]);\r\n});\r\n\r\nexport default VueGridLayout;\r\nexport { GridLayout, GridItem };","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n","/**\n * interact.js v1.3.4\n *\n * Copyright (c) 2012-2018 Taye Adeyemi \n * Released under the MIT License.\n * https://raw.github.com/taye/interact.js/master/LICENSE\n */\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.interact = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o 6 && arguments[6] !== undefined ? arguments[6] : false;\n\n _classCallCheck(this, InteractEvent);\n\n var target = interaction.target;\n var deltaSource = (target && target.options || defaults).deltaSource;\n var origin = getOriginXY(target, element, action);\n var starting = phase === 'start';\n var ending = phase === 'end';\n var coords = starting ? interaction.startCoords : interaction.curCoords;\n var prevEvent = interaction.prevEvent;\n\n element = element || interaction.element;\n\n var page = extend({}, coords.page);\n var client = extend({}, coords.client);\n\n page.x -= origin.x;\n page.y -= origin.y;\n\n client.x -= origin.x;\n client.y -= origin.y;\n\n this.ctrlKey = event.ctrlKey;\n this.altKey = event.altKey;\n this.shiftKey = event.shiftKey;\n this.metaKey = event.metaKey;\n this.button = event.button;\n this.buttons = event.buttons;\n this.target = element;\n this.currentTarget = element;\n this.relatedTarget = related || null;\n this.preEnd = preEnd;\n this.type = action + (phase || '');\n this.interaction = interaction;\n this.interactable = target;\n\n this.t0 = starting ? interaction.downTimes[interaction.downTimes.length - 1] : prevEvent.t0;\n\n var signalArg = {\n interaction: interaction,\n event: event,\n action: action,\n phase: phase,\n element: element,\n related: related,\n page: page,\n client: client,\n coords: coords,\n starting: starting,\n ending: ending,\n deltaSource: deltaSource,\n iEvent: this\n };\n\n signals.fire('set-xy', signalArg);\n\n if (ending) {\n // use previous coords when ending\n this.pageX = prevEvent.pageX;\n this.pageY = prevEvent.pageY;\n this.clientX = prevEvent.clientX;\n this.clientY = prevEvent.clientY;\n } else {\n this.pageX = page.x;\n this.pageY = page.y;\n this.clientX = client.x;\n this.clientY = client.y;\n }\n\n this.x0 = interaction.startCoords.page.x - origin.x;\n this.y0 = interaction.startCoords.page.y - origin.y;\n this.clientX0 = interaction.startCoords.client.x - origin.x;\n this.clientY0 = interaction.startCoords.client.y - origin.y;\n\n signals.fire('set-delta', signalArg);\n\n this.timeStamp = coords.timeStamp;\n this.dt = interaction.pointerDelta.timeStamp;\n this.duration = this.timeStamp - this.t0;\n\n // speed and velocity in pixels per second\n this.speed = interaction.pointerDelta[deltaSource].speed;\n this.velocityX = interaction.pointerDelta[deltaSource].vx;\n this.velocityY = interaction.pointerDelta[deltaSource].vy;\n\n this.swipe = ending || phase === 'inertiastart' ? this.getSwipe() : null;\n\n signals.fire('new', signalArg);\n }\n\n InteractEvent.prototype.getSwipe = function getSwipe() {\n var interaction = this.interaction;\n\n if (interaction.prevEvent.speed < 600 || this.timeStamp - interaction.prevEvent.timeStamp > 150) {\n return null;\n }\n\n var angle = 180 * Math.atan2(interaction.prevEvent.velocityY, interaction.prevEvent.velocityX) / Math.PI;\n var overlap = 22.5;\n\n if (angle < 0) {\n angle += 360;\n }\n\n var left = 135 - overlap <= angle && angle < 225 + overlap;\n var up = 225 - overlap <= angle && angle < 315 + overlap;\n\n var right = !left && (315 - overlap <= angle || angle < 45 + overlap);\n var down = !up && 45 - overlap <= angle && angle < 135 + overlap;\n\n return {\n up: up,\n down: down,\n left: left,\n right: right,\n angle: angle,\n speed: interaction.prevEvent.speed,\n velocity: {\n x: interaction.prevEvent.velocityX,\n y: interaction.prevEvent.velocityY\n }\n };\n };\n\n InteractEvent.prototype.preventDefault = function preventDefault() {};\n\n /** */\n\n\n InteractEvent.prototype.stopImmediatePropagation = function stopImmediatePropagation() {\n this.immediatePropagationStopped = this.propagationStopped = true;\n };\n\n /** */\n\n\n InteractEvent.prototype.stopPropagation = function stopPropagation() {\n this.propagationStopped = true;\n };\n\n return InteractEvent;\n}();\n\nsignals.on('set-delta', function (_ref) {\n var iEvent = _ref.iEvent,\n interaction = _ref.interaction,\n starting = _ref.starting,\n deltaSource = _ref.deltaSource;\n\n var prevEvent = starting ? iEvent : interaction.prevEvent;\n\n if (deltaSource === 'client') {\n iEvent.dx = iEvent.clientX - prevEvent.clientX;\n iEvent.dy = iEvent.clientY - prevEvent.clientY;\n } else {\n iEvent.dx = iEvent.pageX - prevEvent.pageX;\n iEvent.dy = iEvent.pageY - prevEvent.pageY;\n }\n});\n\nInteractEvent.signals = signals;\n\nmodule.exports = InteractEvent;\n\n},{\"./defaultOptions\":18,\"./utils/Signals\":34,\"./utils/extend\":41,\"./utils/getOriginXY\":42}],4:[function(require,module,exports){\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar clone = require('./utils/clone');\nvar is = require('./utils/is');\nvar events = require('./utils/events');\nvar extend = require('./utils/extend');\nvar actions = require('./actions/base');\nvar scope = require('./scope');\nvar Eventable = require('./Eventable');\nvar defaults = require('./defaultOptions');\nvar signals = require('./utils/Signals').new();\n\nvar _require = require('./utils/domUtils'),\n getElementRect = _require.getElementRect,\n nodeContains = _require.nodeContains,\n trySelector = _require.trySelector,\n matchesSelector = _require.matchesSelector;\n\nvar _require2 = require('./utils/window'),\n getWindow = _require2.getWindow;\n\nvar _require3 = require('./utils/arr'),\n contains = _require3.contains;\n\nvar _require4 = require('./utils/browser'),\n wheelEvent = _require4.wheelEvent;\n\n// all set interactables\n\n\nscope.interactables = [];\n\nvar Interactable = function () {\n /** */\n function Interactable(target, options) {\n _classCallCheck(this, Interactable);\n\n options = options || {};\n\n this.target = target;\n this.events = new Eventable();\n this._context = options.context || scope.document;\n this._win = getWindow(trySelector(target) ? this._context : target);\n this._doc = this._win.document;\n\n signals.fire('new', {\n target: target,\n options: options,\n interactable: this,\n win: this._win\n });\n\n scope.addDocument(this._doc, this._win);\n\n scope.interactables.push(this);\n\n this.set(options);\n }\n\n Interactable.prototype.setOnEvents = function setOnEvents(action, phases) {\n var onAction = 'on' + action;\n\n if (is.function(phases.onstart)) {\n this.events[onAction + 'start'] = phases.onstart;\n }\n if (is.function(phases.onmove)) {\n this.events[onAction + 'move'] = phases.onmove;\n }\n if (is.function(phases.onend)) {\n this.events[onAction + 'end'] = phases.onend;\n }\n if (is.function(phases.oninertiastart)) {\n this.events[onAction + 'inertiastart'] = phases.oninertiastart;\n }\n\n return this;\n };\n\n Interactable.prototype.setPerAction = function setPerAction(action, options) {\n // for all the default per-action options\n for (var option in options) {\n // if this option exists for this action\n if (option in defaults[action]) {\n // if the option in the options arg is an object value\n if (is.object(options[option])) {\n // duplicate the object and merge\n this.options[action][option] = clone(this.options[action][option] || {});\n extend(this.options[action][option], options[option]);\n\n if (is.object(defaults.perAction[option]) && 'enabled' in defaults.perAction[option]) {\n this.options[action][option].enabled = options[option].enabled === false ? false : true;\n }\n } else if (is.bool(options[option]) && is.object(defaults.perAction[option])) {\n this.options[action][option].enabled = options[option];\n } else if (options[option] !== undefined) {\n // or if it's not undefined, do a plain assignment\n this.options[action][option] = options[option];\n }\n }\n }\n };\n\n /**\n * The default function to get an Interactables bounding rect. Can be\n * overridden using {@link Interactable.rectChecker}.\n *\n * @param {Element} [element] The element to measure.\n * @return {object} The object's bounding rectangle.\n */\n\n\n Interactable.prototype.getRect = function getRect(element) {\n element = element || this.target;\n\n if (is.string(this.target) && !is.element(element)) {\n element = this._context.querySelector(this.target);\n }\n\n return getElementRect(element);\n };\n\n /**\n * Returns or sets the function used to calculate the interactable's\n * element's rectangle\n *\n * @param {function} [checker] A function which returns this Interactable's\n * bounding rectangle. See {@link Interactable.getRect}\n * @return {function | object} The checker function or this Interactable\n */\n\n\n Interactable.prototype.rectChecker = function rectChecker(checker) {\n if (is.function(checker)) {\n this.getRect = checker;\n\n return this;\n }\n\n if (checker === null) {\n delete this.options.getRect;\n\n return this;\n }\n\n return this.getRect;\n };\n\n Interactable.prototype._backCompatOption = function _backCompatOption(optionName, newValue) {\n if (trySelector(newValue) || is.object(newValue)) {\n this.options[optionName] = newValue;\n\n for (var _i = 0; _i < actions.names.length; _i++) {\n var _ref;\n\n _ref = actions.names[_i];\n var action = _ref;\n\n this.options[action][optionName] = newValue;\n }\n\n return this;\n }\n\n return this.options[optionName];\n };\n\n /**\n * Gets or sets the origin of the Interactable's element. The x and y\n * of the origin will be subtracted from action event coordinates.\n *\n * @param {Element | object | string} [origin] An HTML or SVG Element whose\n * rect will be used, an object eg. { x: 0, y: 0 } or string 'parent', 'self'\n * or any CSS selector\n *\n * @return {object} The current origin or this Interactable\n */\n\n\n Interactable.prototype.origin = function origin(newValue) {\n return this._backCompatOption('origin', newValue);\n };\n\n /**\n * Returns or sets the mouse coordinate types used to calculate the\n * movement of the pointer.\n *\n * @param {string} [newValue] Use 'client' if you will be scrolling while\n * interacting; Use 'page' if you want autoScroll to work\n * @return {string | object} The current deltaSource or this Interactable\n */\n\n\n Interactable.prototype.deltaSource = function deltaSource(newValue) {\n if (newValue === 'page' || newValue === 'client') {\n this.options.deltaSource = newValue;\n\n return this;\n }\n\n return this.options.deltaSource;\n };\n\n /**\n * Gets the selector context Node of the Interactable. The default is\n * `window.document`.\n *\n * @return {Node} The context Node of this Interactable\n */\n\n\n Interactable.prototype.context = function context() {\n return this._context;\n };\n\n Interactable.prototype.inContext = function inContext(element) {\n return this._context === element.ownerDocument || nodeContains(this._context, element);\n };\n\n /**\n * Calls listeners for the given InteractEvent type bound globally\n * and directly to this Interactable\n *\n * @param {InteractEvent} iEvent The InteractEvent object to be fired on this\n * Interactable\n * @return {Interactable} this Interactable\n */\n\n\n Interactable.prototype.fire = function fire(iEvent) {\n this.events.fire(iEvent);\n\n return this;\n };\n\n Interactable.prototype._onOffMultiple = function _onOffMultiple(method, eventType, listener, options) {\n if (is.string(eventType) && eventType.search(' ') !== -1) {\n eventType = eventType.trim().split(/ +/);\n }\n\n if (is.array(eventType)) {\n for (var _i2 = 0; _i2 < eventType.length; _i2++) {\n var _ref2;\n\n _ref2 = eventType[_i2];\n var type = _ref2;\n\n this[method](type, listener, options);\n }\n\n return true;\n }\n\n if (is.object(eventType)) {\n for (var prop in eventType) {\n this[method](prop, eventType[prop], listener);\n }\n\n return true;\n }\n };\n\n /**\n * Binds a listener for an InteractEvent, pointerEvent or DOM event.\n *\n * @param {string | array | object} eventType The types of events to listen\n * for\n * @param {function} listener The function event (s)\n * @param {object | boolean} [options] options object or useCapture flag\n * for addEventListener\n * @return {object} This Interactable\n */\n\n\n Interactable.prototype.on = function on(eventType, listener, options) {\n if (this._onOffMultiple('on', eventType, listener, options)) {\n return this;\n }\n\n if (eventType === 'wheel') {\n eventType = wheelEvent;\n }\n\n if (contains(Interactable.eventTypes, eventType)) {\n this.events.on(eventType, listener);\n }\n // delegated event for selector\n else if (is.string(this.target)) {\n events.addDelegate(this.target, this._context, eventType, listener, options);\n } else {\n events.add(this.target, eventType, listener, options);\n }\n\n return this;\n };\n\n /**\n * Removes an InteractEvent, pointerEvent or DOM event listener\n *\n * @param {string | array | object} eventType The types of events that were\n * listened for\n * @param {function} listener The listener function to be removed\n * @param {object | boolean} [options] options object or useCapture flag for\n * removeEventListener\n * @return {object} This Interactable\n */\n\n\n Interactable.prototype.off = function off(eventType, listener, options) {\n if (this._onOffMultiple('off', eventType, listener, options)) {\n return this;\n }\n\n if (eventType === 'wheel') {\n eventType = wheelEvent;\n }\n\n // if it is an action event type\n if (contains(Interactable.eventTypes, eventType)) {\n this.events.off(eventType, listener);\n }\n // delegated event\n else if (is.string(this.target)) {\n events.removeDelegate(this.target, this._context, eventType, listener, options);\n }\n // remove listener from this Interatable's element\n else {\n events.remove(this.target, eventType, listener, options);\n }\n\n return this;\n };\n\n /**\n * Reset the options of this Interactable\n *\n * @param {object} options The new settings to apply\n * @return {object} This Interactable\n */\n\n\n Interactable.prototype.set = function set(options) {\n if (!is.object(options)) {\n options = {};\n }\n\n this.options = clone(defaults.base);\n\n var perActions = clone(defaults.perAction);\n\n for (var actionName in actions.methodDict) {\n var methodName = actions.methodDict[actionName];\n\n this.options[actionName] = clone(defaults[actionName]);\n\n this.setPerAction(actionName, perActions);\n\n this[methodName](options[actionName]);\n }\n\n for (var _i3 = 0; _i3 < Interactable.settingsMethods.length; _i3++) {\n var _ref3;\n\n _ref3 = Interactable.settingsMethods[_i3];\n var setting = _ref3;\n\n this.options[setting] = defaults.base[setting];\n\n if (setting in options) {\n this[setting](options[setting]);\n }\n }\n\n signals.fire('set', {\n options: options,\n interactable: this\n });\n\n return this;\n };\n\n /**\n * Remove this interactable from the list of interactables and remove it's\n * action capabilities and event listeners\n *\n * @return {interact}\n */\n\n\n Interactable.prototype.unset = function unset() {\n events.remove(this.target, 'all');\n\n if (is.string(this.target)) {\n // remove delegated events\n for (var type in events.delegatedEvents) {\n var delegated = events.delegatedEvents[type];\n\n if (delegated.selectors[0] === this.target && delegated.contexts[0] === this._context) {\n\n delegated.selectors.splice(0, 1);\n delegated.contexts.splice(0, 1);\n delegated.listeners.splice(0, 1);\n\n // remove the arrays if they are empty\n if (!delegated.selectors.length) {\n delegated[type] = null;\n }\n }\n\n events.remove(this._context, type, events.delegateListener);\n events.remove(this._context, type, events.delegateUseCapture, true);\n }\n } else {\n events.remove(this, 'all');\n }\n\n signals.fire('unset', { interactable: this });\n\n scope.interactables.splice(scope.interactables.indexOf(this), 1);\n\n // Stop related interactions when an Interactable is unset\n for (var _i4 = 0; _i4 < (scope.interactions || []).length; _i4++) {\n var _ref4;\n\n _ref4 = (scope.interactions || [])[_i4];\n var interaction = _ref4;\n\n if (interaction.target === this && interaction.interacting() && !interaction._ending) {\n interaction.stop();\n }\n }\n\n return scope.interact;\n };\n\n return Interactable;\n}();\n\nscope.interactables.indexOfElement = function indexOfElement(target, context) {\n context = context || scope.document;\n\n for (var i = 0; i < this.length; i++) {\n var interactable = this[i];\n\n if (interactable.target === target && interactable._context === context) {\n return i;\n }\n }\n return -1;\n};\n\nscope.interactables.get = function interactableGet(element, options, dontCheckInContext) {\n var ret = this[this.indexOfElement(element, options && options.context)];\n\n return ret && (is.string(element) || dontCheckInContext || ret.inContext(element)) ? ret : null;\n};\n\nscope.interactables.forEachMatch = function (element, callback) {\n for (var _i5 = 0; _i5 < this.length; _i5++) {\n var _ref5;\n\n _ref5 = this[_i5];\n var interactable = _ref5;\n\n var ret = void 0;\n\n if ((is.string(interactable.target)\n // target is a selector and the element matches\n ? is.element(element) && matchesSelector(element, interactable.target) :\n // target is the element\n element === interactable.target) &&\n // the element is in context\n interactable.inContext(element)) {\n ret = callback(interactable);\n }\n\n if (ret !== undefined) {\n return ret;\n }\n }\n};\n\n// all interact.js eventTypes\nInteractable.eventTypes = scope.eventTypes = [];\n\nInteractable.signals = signals;\n\nInteractable.settingsMethods = ['deltaSource', 'origin', 'preventDefault', 'rectChecker'];\n\nmodule.exports = Interactable;\n\n},{\"./Eventable\":2,\"./actions/base\":6,\"./defaultOptions\":18,\"./scope\":33,\"./utils/Signals\":34,\"./utils/arr\":35,\"./utils/browser\":36,\"./utils/clone\":37,\"./utils/domUtils\":39,\"./utils/events\":40,\"./utils/extend\":41,\"./utils/is\":46,\"./utils/window\":52}],5:[function(require,module,exports){\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar scope = require('./scope');\nvar utils = require('./utils');\nvar events = require('./utils/events');\nvar browser = require('./utils/browser');\nvar domObjects = require('./utils/domObjects');\nvar finder = require('./utils/interactionFinder');\nvar signals = require('./utils/Signals').new();\n\nvar listeners = {};\nvar methodNames = ['pointerDown', 'pointerMove', 'pointerUp', 'updatePointer', 'removePointer'];\n\n// for ignoring browser's simulated mouse events\nvar prevTouchTime = 0;\n\n// all active and idle interactions\nscope.interactions = [];\n\nvar Interaction = function () {\n /** */\n function Interaction(_ref) {\n var pointerType = _ref.pointerType;\n\n _classCallCheck(this, Interaction);\n\n this.target = null; // current interactable being interacted with\n this.element = null; // the target element of the interactable\n\n this.prepared = { // action that's ready to be fired on next move event\n name: null,\n axis: null,\n edges: null\n };\n\n // keep track of added pointers\n this.pointers = [];\n this.pointerIds = [];\n this.downTargets = [];\n this.downTimes = [];\n\n // Previous native pointer move event coordinates\n this.prevCoords = {\n page: { x: 0, y: 0 },\n client: { x: 0, y: 0 },\n timeStamp: 0\n };\n // current native pointer move event coordinates\n this.curCoords = {\n page: { x: 0, y: 0 },\n client: { x: 0, y: 0 },\n timeStamp: 0\n };\n\n // Starting InteractEvent pointer coordinates\n this.startCoords = {\n page: { x: 0, y: 0 },\n client: { x: 0, y: 0 },\n timeStamp: 0\n };\n\n // Change in coordinates and time of the pointer\n this.pointerDelta = {\n page: { x: 0, y: 0, vx: 0, vy: 0, speed: 0 },\n client: { x: 0, y: 0, vx: 0, vy: 0, speed: 0 },\n timeStamp: 0\n };\n\n this.downEvent = null; // pointerdown/mousedown/touchstart event\n this.downPointer = {};\n\n this._eventTarget = null;\n this._curEventTarget = null;\n\n this.prevEvent = null; // previous action event\n\n this.pointerIsDown = false;\n this.pointerWasMoved = false;\n this._interacting = false;\n this._ending = false;\n\n this.pointerType = pointerType;\n\n signals.fire('new', this);\n\n scope.interactions.push(this);\n }\n\n Interaction.prototype.pointerDown = function pointerDown(pointer, event, eventTarget) {\n var pointerIndex = this.updatePointer(pointer, event, true);\n\n signals.fire('down', {\n pointer: pointer,\n event: event,\n eventTarget: eventTarget,\n pointerIndex: pointerIndex,\n interaction: this\n });\n };\n\n /**\n * ```js\n * interact(target)\n * .draggable({\n * // disable the default drag start by down->move\n * manualStart: true\n * })\n * // start dragging after the user holds the pointer down\n * .on('hold', function (event) {\n * var interaction = event.interaction;\n *\n * if (!interaction.interacting()) {\n * interaction.start({ name: 'drag' },\n * event.interactable,\n * event.currentTarget);\n * }\n * });\n * ```\n *\n * Start an action with the given Interactable and Element as tartgets. The\n * action must be enabled for the target Interactable and an appropriate\n * number of pointers must be held down - 1 for drag/resize, 2 for gesture.\n *\n * Use it with `interactable.able({ manualStart: false })` to always\n * [start actions manually](https://github.com/taye/interact.js/issues/114)\n *\n * @param {object} action The action to be performed - drag, resize, etc.\n * @param {Interactable} target The Interactable to target\n * @param {Element} element The DOM Element to target\n * @return {object} interact\n */\n\n\n Interaction.prototype.start = function start(action, target, element) {\n if (this.interacting() || !this.pointerIsDown || this.pointerIds.length < (action.name === 'gesture' ? 2 : 1)) {\n return;\n }\n\n // if this interaction had been removed after stopping\n // add it back\n if (scope.interactions.indexOf(this) === -1) {\n scope.interactions.push(this);\n }\n\n utils.copyAction(this.prepared, action);\n this.target = target;\n this.element = element;\n\n signals.fire('action-start', {\n interaction: this,\n event: this.downEvent\n });\n };\n\n Interaction.prototype.pointerMove = function pointerMove(pointer, event, eventTarget) {\n if (!this.simulation) {\n this.updatePointer(pointer);\n utils.setCoords(this.curCoords, this.pointers);\n }\n\n var duplicateMove = this.curCoords.page.x === this.prevCoords.page.x && this.curCoords.page.y === this.prevCoords.page.y && this.curCoords.client.x === this.prevCoords.client.x && this.curCoords.client.y === this.prevCoords.client.y;\n\n var dx = void 0;\n var dy = void 0;\n\n // register movement greater than pointerMoveTolerance\n if (this.pointerIsDown && !this.pointerWasMoved) {\n dx = this.curCoords.client.x - this.startCoords.client.x;\n dy = this.curCoords.client.y - this.startCoords.client.y;\n\n this.pointerWasMoved = utils.hypot(dx, dy) > Interaction.pointerMoveTolerance;\n }\n\n var signalArg = {\n pointer: pointer,\n pointerIndex: this.getPointerIndex(pointer),\n event: event,\n eventTarget: eventTarget,\n dx: dx,\n dy: dy,\n duplicate: duplicateMove,\n interaction: this,\n interactingBeforeMove: this.interacting()\n };\n\n if (!duplicateMove) {\n // set pointer coordinate, time changes and speeds\n utils.setCoordDeltas(this.pointerDelta, this.prevCoords, this.curCoords);\n }\n\n signals.fire('move', signalArg);\n\n if (!duplicateMove) {\n // if interacting, fire an 'action-move' signal etc\n if (this.interacting()) {\n this.doMove(signalArg);\n }\n\n if (this.pointerWasMoved) {\n utils.copyCoords(this.prevCoords, this.curCoords);\n }\n }\n };\n\n /**\n * ```js\n * interact(target)\n * .draggable(true)\n * .on('dragmove', function (event) {\n * if (someCondition) {\n * // change the snap settings\n * event.interactable.draggable({ snap: { targets: [] }});\n * // fire another move event with re-calculated snap\n * event.interaction.doMove();\n * }\n * });\n * ```\n *\n * Force a move of the current action at the same coordinates. Useful if\n * snap/restrict has been changed and you want a movement with the new\n * settings.\n */\n\n\n Interaction.prototype.doMove = function doMove(signalArg) {\n signalArg = utils.extend({\n pointer: this.pointers[0],\n event: this.prevEvent,\n eventTarget: this._eventTarget,\n interaction: this\n }, signalArg || {});\n\n signals.fire('before-action-move', signalArg);\n\n if (!this._dontFireMove) {\n signals.fire('action-move', signalArg);\n }\n\n this._dontFireMove = false;\n };\n\n // End interact move events and stop auto-scroll unless simulation is running\n\n\n Interaction.prototype.pointerUp = function pointerUp(pointer, event, eventTarget, curEventTarget) {\n var pointerIndex = this.getPointerIndex(pointer);\n\n signals.fire(/cancel$/i.test(event.type) ? 'cancel' : 'up', {\n pointer: pointer,\n pointerIndex: pointerIndex,\n event: event,\n eventTarget: eventTarget,\n curEventTarget: curEventTarget,\n interaction: this\n });\n\n if (!this.simulation) {\n this.end(event);\n }\n\n this.pointerIsDown = false;\n this.removePointer(pointer, event);\n };\n\n /**\n * ```js\n * interact(target)\n * .draggable(true)\n * .on('move', function (event) {\n * if (event.pageX > 1000) {\n * // end the current action\n * event.interaction.end();\n * // stop all further listeners from being called\n * event.stopImmediatePropagation();\n * }\n * });\n * ```\n *\n * Stop the current action and fire an end event. Inertial movement does\n * not happen.\n *\n * @param {PointerEvent} [event]\n */\n\n\n Interaction.prototype.end = function end(event) {\n this._ending = true;\n\n event = event || this.prevEvent;\n\n if (this.interacting()) {\n signals.fire('action-end', {\n event: event,\n interaction: this\n });\n }\n\n this.stop();\n this._ending = false;\n };\n\n Interaction.prototype.currentAction = function currentAction() {\n return this._interacting ? this.prepared.name : null;\n };\n\n Interaction.prototype.interacting = function interacting() {\n return this._interacting;\n };\n\n /** */\n\n\n Interaction.prototype.stop = function stop() {\n signals.fire('stop', { interaction: this });\n\n if (this._interacting) {\n signals.fire('stop-active', { interaction: this });\n signals.fire('stop-' + this.prepared.name, { interaction: this });\n }\n\n this.target = this.element = null;\n\n this._interacting = false;\n this.prepared.name = this.prevEvent = null;\n };\n\n Interaction.prototype.getPointerIndex = function getPointerIndex(pointer) {\n // mouse and pen interactions may have only one pointer\n if (this.pointerType === 'mouse' || this.pointerType === 'pen') {\n return 0;\n }\n\n return this.pointerIds.indexOf(utils.getPointerId(pointer));\n };\n\n Interaction.prototype.updatePointer = function updatePointer(pointer, event) {\n var down = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : event && /(down|start)$/i.test(event.type);\n\n var id = utils.getPointerId(pointer);\n var index = this.getPointerIndex(pointer);\n\n if (index === -1) {\n index = this.pointerIds.length;\n this.pointerIds[index] = id;\n }\n\n if (down) {\n signals.fire('update-pointer-down', {\n pointer: pointer,\n event: event,\n down: down,\n pointerId: id,\n pointerIndex: index,\n interaction: this\n });\n }\n\n this.pointers[index] = pointer;\n\n return index;\n };\n\n Interaction.prototype.removePointer = function removePointer(pointer, event) {\n var index = this.getPointerIndex(pointer);\n\n if (index === -1) {\n return;\n }\n\n signals.fire('remove-pointer', {\n pointer: pointer,\n event: event,\n pointerIndex: index,\n interaction: this\n });\n\n this.pointers.splice(index, 1);\n this.pointerIds.splice(index, 1);\n this.downTargets.splice(index, 1);\n this.downTimes.splice(index, 1);\n };\n\n Interaction.prototype._updateEventTargets = function _updateEventTargets(target, currentTarget) {\n this._eventTarget = target;\n this._curEventTarget = currentTarget;\n };\n\n return Interaction;\n}();\n\nfor (var _i = 0; _i < methodNames.length; _i++) {\n var method = methodNames[_i];\n listeners[method] = doOnInteractions(method);\n}\n\nfunction doOnInteractions(method) {\n return function (event) {\n var pointerType = utils.getPointerType(event);\n\n var _utils$getEventTarget = utils.getEventTargets(event),\n eventTarget = _utils$getEventTarget[0],\n curEventTarget = _utils$getEventTarget[1];\n\n var matches = []; // [ [pointer, interaction], ...]\n\n if (browser.supportsTouch && /touch/.test(event.type)) {\n prevTouchTime = new Date().getTime();\n\n for (var _i2 = 0; _i2 < event.changedTouches.length; _i2++) {\n var _ref2;\n\n _ref2 = event.changedTouches[_i2];\n var changedTouch = _ref2;\n\n var pointer = changedTouch;\n var interaction = finder.search(pointer, event.type, eventTarget);\n\n matches.push([pointer, interaction || new Interaction({ pointerType: pointerType })]);\n }\n } else {\n var invalidPointer = false;\n\n if (!browser.supportsPointerEvent && /mouse/.test(event.type)) {\n // ignore mouse events while touch interactions are active\n for (var i = 0; i < scope.interactions.length && !invalidPointer; i++) {\n invalidPointer = scope.interactions[i].pointerType !== 'mouse' && scope.interactions[i].pointerIsDown;\n }\n\n // try to ignore mouse events that are simulated by the browser\n // after a touch event\n invalidPointer = invalidPointer || new Date().getTime() - prevTouchTime < 500\n // on iOS and Firefox Mobile, MouseEvent.timeStamp is zero if simulated\n || event.timeStamp === 0;\n }\n\n if (!invalidPointer) {\n var _interaction = finder.search(event, event.type, eventTarget);\n\n if (!_interaction) {\n _interaction = new Interaction({ pointerType: pointerType });\n }\n\n matches.push([event, _interaction]);\n }\n }\n\n for (var _i3 = 0; _i3 < matches.length; _i3++) {\n var _ref3 = matches[_i3];\n var _pointer = _ref3[0];\n var _interaction2 = _ref3[1];\n\n _interaction2._updateEventTargets(eventTarget, curEventTarget);\n _interaction2[method](_pointer, event, eventTarget, curEventTarget);\n }\n };\n}\n\nfunction endAll(event) {\n for (var _i4 = 0; _i4 < scope.interactions.length; _i4++) {\n var _ref4;\n\n _ref4 = scope.interactions[_i4];\n var interaction = _ref4;\n\n interaction.end(event);\n signals.fire('endall', { event: event, interaction: interaction });\n }\n}\n\nvar docEvents = {/* 'eventType': listenerFunc */};\nvar pEventTypes = browser.pEventTypes;\n\nif (domObjects.PointerEvent) {\n docEvents[pEventTypes.down] = listeners.pointerDown;\n docEvents[pEventTypes.move] = listeners.pointerMove;\n docEvents[pEventTypes.up] = listeners.pointerUp;\n docEvents[pEventTypes.cancel] = listeners.pointerUp;\n} else {\n docEvents.mousedown = listeners.pointerDown;\n docEvents.mousemove = listeners.pointerMove;\n docEvents.mouseup = listeners.pointerUp;\n\n docEvents.touchstart = listeners.pointerDown;\n docEvents.touchmove = listeners.pointerMove;\n docEvents.touchend = listeners.pointerUp;\n docEvents.touchcancel = listeners.pointerUp;\n}\n\ndocEvents.blur = endAll;\n\nfunction onDocSignal(_ref5, signalName) {\n var doc = _ref5.doc;\n\n var eventMethod = signalName.indexOf('add') === 0 ? events.add : events.remove;\n\n // delegate event listener\n for (var eventType in scope.delegatedEvents) {\n eventMethod(doc, eventType, events.delegateListener);\n eventMethod(doc, eventType, events.delegateUseCapture, true);\n }\n\n for (var _eventType in docEvents) {\n eventMethod(doc, _eventType, docEvents[_eventType], browser.isIOS ? { passive: false } : undefined);\n }\n}\n\nsignals.on('update-pointer-down', function (_ref6) {\n var interaction = _ref6.interaction,\n pointer = _ref6.pointer,\n pointerId = _ref6.pointerId,\n pointerIndex = _ref6.pointerIndex,\n event = _ref6.event,\n eventTarget = _ref6.eventTarget,\n down = _ref6.down;\n\n interaction.pointerIds[pointerIndex] = pointerId;\n interaction.pointers[pointerIndex] = pointer;\n\n if (down) {\n interaction.pointerIsDown = true;\n }\n\n if (!interaction.interacting()) {\n utils.setCoords(interaction.startCoords, interaction.pointers);\n\n utils.copyCoords(interaction.curCoords, interaction.startCoords);\n utils.copyCoords(interaction.prevCoords, interaction.startCoords);\n\n interaction.downEvent = event;\n interaction.downTimes[pointerIndex] = interaction.curCoords.timeStamp;\n interaction.downTargets[pointerIndex] = eventTarget || event && utils.getEventTargets(event)[0];\n interaction.pointerWasMoved = false;\n\n utils.pointerExtend(interaction.downPointer, pointer);\n }\n});\n\nscope.signals.on('add-document', onDocSignal);\nscope.signals.on('remove-document', onDocSignal);\n\nInteraction.pointerMoveTolerance = 1;\nInteraction.doOnInteractions = doOnInteractions;\nInteraction.endAll = endAll;\nInteraction.signals = signals;\nInteraction.docEvents = docEvents;\n\nscope.endAllInteractions = endAll;\n\nmodule.exports = Interaction;\n\n},{\"./scope\":33,\"./utils\":44,\"./utils/Signals\":34,\"./utils/browser\":36,\"./utils/domObjects\":38,\"./utils/events\":40,\"./utils/interactionFinder\":45}],6:[function(require,module,exports){\n'use strict';\n\nvar Interaction = require('../Interaction');\nvar InteractEvent = require('../InteractEvent');\n\nvar actions = {\n firePrepared: firePrepared,\n names: [],\n methodDict: {}\n};\n\nInteraction.signals.on('action-start', function (_ref) {\n var interaction = _ref.interaction,\n event = _ref.event;\n\n interaction._interacting = true;\n firePrepared(interaction, event, 'start');\n});\n\nInteraction.signals.on('action-move', function (_ref2) {\n var interaction = _ref2.interaction,\n event = _ref2.event,\n preEnd = _ref2.preEnd;\n\n firePrepared(interaction, event, 'move', preEnd);\n\n // if the action was ended in a listener\n if (!interaction.interacting()) {\n return false;\n }\n});\n\nInteraction.signals.on('action-end', function (_ref3) {\n var interaction = _ref3.interaction,\n event = _ref3.event;\n\n firePrepared(interaction, event, 'end');\n});\n\nfunction firePrepared(interaction, event, phase, preEnd) {\n var actionName = interaction.prepared.name;\n\n var newEvent = new InteractEvent(interaction, event, actionName, phase, interaction.element, null, preEnd);\n\n interaction.target.fire(newEvent);\n interaction.prevEvent = newEvent;\n}\n\nmodule.exports = actions;\n\n},{\"../InteractEvent\":3,\"../Interaction\":5}],7:[function(require,module,exports){\n'use strict';\n\nvar actions = require('./base');\nvar utils = require('../utils');\nvar InteractEvent = require('../InteractEvent');\n/** @lends Interactable */\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar defaultOptions = require('../defaultOptions');\n\nvar drag = {\n defaults: {\n enabled: false,\n mouseButtons: null,\n\n origin: null,\n snap: null,\n restrict: null,\n inertia: null,\n autoScroll: null,\n\n startAxis: 'xy',\n lockAxis: 'xy'\n },\n\n checker: function checker(pointer, event, interactable) {\n var dragOptions = interactable.options.drag;\n\n return dragOptions.enabled ? { name: 'drag', axis: dragOptions.lockAxis === 'start' ? dragOptions.startAxis : dragOptions.lockAxis } : null;\n },\n\n getCursor: function getCursor() {\n return 'move';\n }\n};\n\nInteraction.signals.on('before-action-move', function (_ref) {\n var interaction = _ref.interaction;\n\n if (interaction.prepared.name !== 'drag') {\n return;\n }\n\n var axis = interaction.prepared.axis;\n\n if (axis === 'x') {\n interaction.curCoords.page.y = interaction.startCoords.page.y;\n interaction.curCoords.client.y = interaction.startCoords.client.y;\n\n interaction.pointerDelta.page.speed = Math.abs(interaction.pointerDelta.page.vx);\n interaction.pointerDelta.client.speed = Math.abs(interaction.pointerDelta.client.vx);\n interaction.pointerDelta.client.vy = 0;\n interaction.pointerDelta.page.vy = 0;\n } else if (axis === 'y') {\n interaction.curCoords.page.x = interaction.startCoords.page.x;\n interaction.curCoords.client.x = interaction.startCoords.client.x;\n\n interaction.pointerDelta.page.speed = Math.abs(interaction.pointerDelta.page.vy);\n interaction.pointerDelta.client.speed = Math.abs(interaction.pointerDelta.client.vy);\n interaction.pointerDelta.client.vx = 0;\n interaction.pointerDelta.page.vx = 0;\n }\n});\n\n// dragmove\nInteractEvent.signals.on('new', function (_ref2) {\n var iEvent = _ref2.iEvent,\n interaction = _ref2.interaction;\n\n if (iEvent.type !== 'dragmove') {\n return;\n }\n\n var axis = interaction.prepared.axis;\n\n if (axis === 'x') {\n iEvent.pageY = interaction.startCoords.page.y;\n iEvent.clientY = interaction.startCoords.client.y;\n iEvent.dy = 0;\n } else if (axis === 'y') {\n iEvent.pageX = interaction.startCoords.page.x;\n iEvent.clientX = interaction.startCoords.client.x;\n iEvent.dx = 0;\n }\n});\n\n/**\n * ```js\n * interact(element).draggable({\n * onstart: function (event) {},\n * onmove : function (event) {},\n * onend : function (event) {},\n *\n * // the axis in which the first movement must be\n * // for the drag sequence to start\n * // 'xy' by default - any direction\n * startAxis: 'x' || 'y' || 'xy',\n *\n * // 'xy' by default - don't restrict to one axis (move in any direction)\n * // 'x' or 'y' to restrict movement to either axis\n * // 'start' to restrict movement to the axis the drag started in\n * lockAxis: 'x' || 'y' || 'xy' || 'start',\n *\n * // max number of drags that can happen concurrently\n * // with elements of this Interactable. Infinity by default\n * max: Infinity,\n *\n * // max number of drags that can target the same element+Interactable\n * // 1 by default\n * maxPerElement: 2\n * });\n *\n * var isDraggable = interact('element').draggable(); // true\n * ```\n *\n * Get or set whether drag actions can be performed on the target\n *\n * @param {boolean | object} [options] true/false or An object with event\n * listeners to be fired on drag events (object makes the Interactable\n * draggable)\n * @return {boolean | Interactable} boolean indicating if this can be the\n * target of drag events, or this Interctable\n */\nInteractable.prototype.draggable = function (options) {\n if (utils.is.object(options)) {\n this.options.drag.enabled = options.enabled === false ? false : true;\n this.setPerAction('drag', options);\n this.setOnEvents('drag', options);\n\n if (/^(xy|x|y|start)$/.test(options.lockAxis)) {\n this.options.drag.lockAxis = options.lockAxis;\n }\n if (/^(xy|x|y)$/.test(options.startAxis)) {\n this.options.drag.startAxis = options.startAxis;\n }\n\n return this;\n }\n\n if (utils.is.bool(options)) {\n this.options.drag.enabled = options;\n\n if (!options) {\n this.ondragstart = this.ondragstart = this.ondragend = null;\n }\n\n return this;\n }\n\n return this.options.drag;\n};\n\nactions.drag = drag;\nactions.names.push('drag');\nutils.merge(Interactable.eventTypes, ['dragstart', 'dragmove', 'draginertiastart', 'draginertiaresume', 'dragend']);\nactions.methodDict.drag = 'draggable';\n\ndefaultOptions.drag = drag.defaults;\n\nmodule.exports = drag;\n\n},{\"../InteractEvent\":3,\"../Interactable\":4,\"../Interaction\":5,\"../defaultOptions\":18,\"../utils\":44,\"./base\":6}],8:[function(require,module,exports){\n'use strict';\n\nvar actions = require('./base');\nvar utils = require('../utils');\nvar scope = require('../scope');\n/** @lends module:interact */\nvar interact = require('../interact');\nvar InteractEvent = require('../InteractEvent');\n/** @lends Interactable */\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar defaultOptions = require('../defaultOptions');\n\nvar drop = {\n defaults: {\n enabled: false,\n accept: null,\n overlap: 'pointer'\n }\n};\n\nvar dynamicDrop = false;\n\nInteraction.signals.on('action-start', function (_ref) {\n var interaction = _ref.interaction,\n event = _ref.event;\n\n if (interaction.prepared.name !== 'drag') {\n return;\n }\n\n // reset active dropzones\n interaction.activeDrops.dropzones = [];\n interaction.activeDrops.elements = [];\n interaction.activeDrops.rects = [];\n\n interaction.dropEvents = null;\n\n if (!interaction.dynamicDrop) {\n setActiveDrops(interaction.activeDrops, interaction.element);\n }\n\n var dragEvent = interaction.prevEvent;\n var dropEvents = getDropEvents(interaction, event, dragEvent);\n\n if (dropEvents.activate) {\n fireActiveDrops(interaction.activeDrops, dropEvents.activate);\n }\n});\n\nInteractEvent.signals.on('new', function (_ref2) {\n var interaction = _ref2.interaction,\n iEvent = _ref2.iEvent,\n event = _ref2.event;\n\n if (iEvent.type !== 'dragmove' && iEvent.type !== 'dragend') {\n return;\n }\n\n var draggableElement = interaction.element;\n var dragEvent = iEvent;\n var dropResult = getDrop(dragEvent, event, draggableElement);\n\n interaction.dropTarget = dropResult.dropzone;\n interaction.dropElement = dropResult.element;\n\n interaction.dropEvents = getDropEvents(interaction, event, dragEvent);\n});\n\nInteraction.signals.on('action-move', function (_ref3) {\n var interaction = _ref3.interaction;\n\n if (interaction.prepared.name !== 'drag') {\n return;\n }\n\n fireDropEvents(interaction, interaction.dropEvents);\n});\n\nInteraction.signals.on('action-end', function (_ref4) {\n var interaction = _ref4.interaction;\n\n if (interaction.prepared.name === 'drag') {\n fireDropEvents(interaction, interaction.dropEvents);\n }\n});\n\nInteraction.signals.on('stop-drag', function (_ref5) {\n var interaction = _ref5.interaction;\n\n interaction.activeDrops = {\n dropzones: null,\n elements: null,\n rects: null\n };\n\n interaction.dropEvents = null;\n});\n\nfunction collectDrops(activeDrops, element) {\n var drops = [];\n var elements = [];\n\n // collect all dropzones and their elements which qualify for a drop\n for (var _i = 0; _i < scope.interactables.length; _i++) {\n var _ref6;\n\n _ref6 = scope.interactables[_i];\n var current = _ref6;\n\n if (!current.options.drop.enabled) {\n continue;\n }\n\n var accept = current.options.drop.accept;\n\n // test the draggable element against the dropzone's accept setting\n if (utils.is.element(accept) && accept !== element || utils.is.string(accept) && !utils.matchesSelector(element, accept)) {\n\n continue;\n }\n\n // query for new elements if necessary\n var dropElements = utils.is.string(current.target) ? current._context.querySelectorAll(current.target) : [current.target];\n\n for (var _i2 = 0; _i2 < dropElements.length; _i2++) {\n var _ref7;\n\n _ref7 = dropElements[_i2];\n var currentElement = _ref7;\n\n if (currentElement !== element) {\n drops.push(current);\n elements.push(currentElement);\n }\n }\n }\n\n return {\n elements: elements,\n dropzones: drops\n };\n}\n\nfunction fireActiveDrops(activeDrops, event) {\n var prevElement = void 0;\n\n // loop through all active dropzones and trigger event\n for (var i = 0; i < activeDrops.dropzones.length; i++) {\n var current = activeDrops.dropzones[i];\n var currentElement = activeDrops.elements[i];\n\n // prevent trigger of duplicate events on same element\n if (currentElement !== prevElement) {\n // set current element as event target\n event.target = currentElement;\n current.fire(event);\n }\n prevElement = currentElement;\n }\n}\n\n// Collect a new set of possible drops and save them in activeDrops.\n// setActiveDrops should always be called when a drag has just started or a\n// drag event happens while dynamicDrop is true\nfunction setActiveDrops(activeDrops, dragElement) {\n // get dropzones and their elements that could receive the draggable\n var possibleDrops = collectDrops(activeDrops, dragElement);\n\n activeDrops.dropzones = possibleDrops.dropzones;\n activeDrops.elements = possibleDrops.elements;\n activeDrops.rects = [];\n\n for (var i = 0; i < activeDrops.dropzones.length; i++) {\n activeDrops.rects[i] = activeDrops.dropzones[i].getRect(activeDrops.elements[i]);\n }\n}\n\nfunction getDrop(dragEvent, event, dragElement) {\n var interaction = dragEvent.interaction;\n var validDrops = [];\n\n if (dynamicDrop) {\n setActiveDrops(interaction.activeDrops, dragElement);\n }\n\n // collect all dropzones and their elements which qualify for a drop\n for (var j = 0; j < interaction.activeDrops.dropzones.length; j++) {\n var current = interaction.activeDrops.dropzones[j];\n var currentElement = interaction.activeDrops.elements[j];\n var rect = interaction.activeDrops.rects[j];\n\n validDrops.push(current.dropCheck(dragEvent, event, interaction.target, dragElement, currentElement, rect) ? currentElement : null);\n }\n\n // get the most appropriate dropzone based on DOM depth and order\n var dropIndex = utils.indexOfDeepestElement(validDrops);\n\n return {\n dropzone: interaction.activeDrops.dropzones[dropIndex] || null,\n element: interaction.activeDrops.elements[dropIndex] || null\n };\n}\n\nfunction getDropEvents(interaction, pointerEvent, dragEvent) {\n var dropEvents = {\n enter: null,\n leave: null,\n activate: null,\n deactivate: null,\n move: null,\n drop: null\n };\n\n var tmpl = {\n dragEvent: dragEvent,\n interaction: interaction,\n target: interaction.dropElement,\n dropzone: interaction.dropTarget,\n relatedTarget: dragEvent.target,\n draggable: dragEvent.interactable,\n timeStamp: dragEvent.timeStamp\n };\n\n if (interaction.dropElement !== interaction.prevDropElement) {\n // if there was a prevDropTarget, create a dragleave event\n if (interaction.prevDropTarget) {\n dropEvents.leave = utils.extend({ type: 'dragleave' }, tmpl);\n\n dragEvent.dragLeave = dropEvents.leave.target = interaction.prevDropElement;\n dragEvent.prevDropzone = dropEvents.leave.dropzone = interaction.prevDropTarget;\n }\n // if the dropTarget is not null, create a dragenter event\n if (interaction.dropTarget) {\n dropEvents.enter = {\n dragEvent: dragEvent,\n interaction: interaction,\n target: interaction.dropElement,\n dropzone: interaction.dropTarget,\n relatedTarget: dragEvent.target,\n draggable: dragEvent.interactable,\n timeStamp: dragEvent.timeStamp,\n type: 'dragenter'\n };\n\n dragEvent.dragEnter = interaction.dropElement;\n dragEvent.dropzone = interaction.dropTarget;\n }\n }\n\n if (dragEvent.type === 'dragend' && interaction.dropTarget) {\n dropEvents.drop = utils.extend({ type: 'drop' }, tmpl);\n\n dragEvent.dropzone = interaction.dropTarget;\n dragEvent.relatedTarget = interaction.dropElement;\n }\n if (dragEvent.type === 'dragstart') {\n dropEvents.activate = utils.extend({ type: 'dropactivate' }, tmpl);\n\n dropEvents.activate.target = null;\n dropEvents.activate.dropzone = null;\n }\n if (dragEvent.type === 'dragend') {\n dropEvents.deactivate = utils.extend({ type: 'dropdeactivate' }, tmpl);\n\n dropEvents.deactivate.target = null;\n dropEvents.deactivate.dropzone = null;\n }\n if (dragEvent.type === 'dragmove' && interaction.dropTarget) {\n dropEvents.move = utils.extend({\n dragmove: dragEvent,\n type: 'dropmove'\n }, tmpl);\n\n dragEvent.dropzone = interaction.dropTarget;\n }\n\n return dropEvents;\n}\n\nfunction fireDropEvents(interaction, dropEvents) {\n var activeDrops = interaction.activeDrops,\n prevDropTarget = interaction.prevDropTarget,\n dropTarget = interaction.dropTarget,\n dropElement = interaction.dropElement;\n\n\n if (dropEvents.leave) {\n prevDropTarget.fire(dropEvents.leave);\n }\n if (dropEvents.move) {\n dropTarget.fire(dropEvents.move);\n }\n if (dropEvents.enter) {\n dropTarget.fire(dropEvents.enter);\n }\n if (dropEvents.drop) {\n dropTarget.fire(dropEvents.drop);\n }\n if (dropEvents.deactivate) {\n fireActiveDrops(activeDrops, dropEvents.deactivate);\n }\n\n interaction.prevDropTarget = dropTarget;\n interaction.prevDropElement = dropElement;\n}\n\n/**\n * ```js\n * interact(target)\n * .dropChecker(function(dragEvent, // related dragmove or dragend event\n * event, // TouchEvent/PointerEvent/MouseEvent\n * dropped, // bool result of the default checker\n * dropzone, // dropzone Interactable\n * dropElement, // dropzone elemnt\n * draggable, // draggable Interactable\n * draggableElement) {// draggable element\n *\n * return dropped && event.target.hasAttribute('allow-drop');\n * }\n * ```\n *\n * ```js\n * interact('.drop').dropzone({\n * accept: '.can-drop' || document.getElementById('single-drop'),\n * overlap: 'pointer' || 'center' || zeroToOne\n * }\n * ```\n *\n * Returns or sets whether draggables can be dropped onto this target to\n * trigger drop events\n *\n * Dropzones can receive the following events:\n * - `dropactivate` and `dropdeactivate` when an acceptable drag starts and ends\n * - `dragenter` and `dragleave` when a draggable enters and leaves the dropzone\n * - `dragmove` when a draggable that has entered the dropzone is moved\n * - `drop` when a draggable is dropped into this dropzone\n *\n * Use the `accept` option to allow only elements that match the given CSS\n * selector or element. The value can be:\n *\n * - **an Element** - only that element can be dropped into this dropzone.\n * - **a string**, - the element being dragged must match it as a CSS selector.\n * - **`null`** - accept options is cleared - it accepts any element.\n *\n * Use the `overlap` option to set how drops are checked for. The allowed\n * values are:\n *\n * - `'pointer'`, the pointer must be over the dropzone (default)\n * - `'center'`, the draggable element's center must be over the dropzone\n * - a number from 0-1 which is the `(intersection area) / (draggable area)`.\n * e.g. `0.5` for drop to happen when half of the area of the draggable is\n * over the dropzone\n *\n * Use the `checker` option to specify a function to check if a dragged element\n * is over this Interactable.\n *\n * @param {boolean | object | null} [options] The new options to be set.\n * @return {boolean | Interactable} The current setting or this Interactable\n */\nInteractable.prototype.dropzone = function (options) {\n if (utils.is.object(options)) {\n this.options.drop.enabled = options.enabled === false ? false : true;\n\n if (utils.is.function(options.ondrop)) {\n this.events.ondrop = options.ondrop;\n }\n if (utils.is.function(options.ondropactivate)) {\n this.events.ondropactivate = options.ondropactivate;\n }\n if (utils.is.function(options.ondropdeactivate)) {\n this.events.ondropdeactivate = options.ondropdeactivate;\n }\n if (utils.is.function(options.ondragenter)) {\n this.events.ondragenter = options.ondragenter;\n }\n if (utils.is.function(options.ondragleave)) {\n this.events.ondragleave = options.ondragleave;\n }\n if (utils.is.function(options.ondropmove)) {\n this.events.ondropmove = options.ondropmove;\n }\n\n if (/^(pointer|center)$/.test(options.overlap)) {\n this.options.drop.overlap = options.overlap;\n } else if (utils.is.number(options.overlap)) {\n this.options.drop.overlap = Math.max(Math.min(1, options.overlap), 0);\n }\n if ('accept' in options) {\n this.options.drop.accept = options.accept;\n }\n if ('checker' in options) {\n this.options.drop.checker = options.checker;\n }\n\n return this;\n }\n\n if (utils.is.bool(options)) {\n this.options.drop.enabled = options;\n\n if (!options) {\n this.ondragenter = this.ondragleave = this.ondrop = this.ondropactivate = this.ondropdeactivate = null;\n }\n\n return this;\n }\n\n return this.options.drop;\n};\n\nInteractable.prototype.dropCheck = function (dragEvent, event, draggable, draggableElement, dropElement, rect) {\n var dropped = false;\n\n // if the dropzone has no rect (eg. display: none)\n // call the custom dropChecker or just return false\n if (!(rect = rect || this.getRect(dropElement))) {\n return this.options.drop.checker ? this.options.drop.checker(dragEvent, event, dropped, this, dropElement, draggable, draggableElement) : false;\n }\n\n var dropOverlap = this.options.drop.overlap;\n\n if (dropOverlap === 'pointer') {\n var origin = utils.getOriginXY(draggable, draggableElement, 'drag');\n var page = utils.getPageXY(dragEvent);\n\n page.x += origin.x;\n page.y += origin.y;\n\n var horizontal = page.x > rect.left && page.x < rect.right;\n var vertical = page.y > rect.top && page.y < rect.bottom;\n\n dropped = horizontal && vertical;\n }\n\n var dragRect = draggable.getRect(draggableElement);\n\n if (dragRect && dropOverlap === 'center') {\n var cx = dragRect.left + dragRect.width / 2;\n var cy = dragRect.top + dragRect.height / 2;\n\n dropped = cx >= rect.left && cx <= rect.right && cy >= rect.top && cy <= rect.bottom;\n }\n\n if (dragRect && utils.is.number(dropOverlap)) {\n var overlapArea = Math.max(0, Math.min(rect.right, dragRect.right) - Math.max(rect.left, dragRect.left)) * Math.max(0, Math.min(rect.bottom, dragRect.bottom) - Math.max(rect.top, dragRect.top));\n\n var overlapRatio = overlapArea / (dragRect.width * dragRect.height);\n\n dropped = overlapRatio >= dropOverlap;\n }\n\n if (this.options.drop.checker) {\n dropped = this.options.drop.checker(dragEvent, event, dropped, this, dropElement, draggable, draggableElement);\n }\n\n return dropped;\n};\n\nInteractable.signals.on('unset', function (_ref8) {\n var interactable = _ref8.interactable;\n\n interactable.dropzone(false);\n});\n\nInteractable.settingsMethods.push('dropChecker');\n\nInteraction.signals.on('new', function (interaction) {\n interaction.dropTarget = null; // the dropzone a drag target might be dropped into\n interaction.dropElement = null; // the element at the time of checking\n interaction.prevDropTarget = null; // the dropzone that was recently dragged away from\n interaction.prevDropElement = null; // the element at the time of checking\n interaction.dropEvents = null; // the dropEvents related to the current drag event\n\n interaction.activeDrops = {\n dropzones: [], // the dropzones that are mentioned below\n elements: [], // elements of dropzones that accept the target draggable\n rects: [] // the rects of the elements mentioned above\n };\n});\n\nInteraction.signals.on('stop', function (_ref9) {\n var interaction = _ref9.interaction;\n\n interaction.dropTarget = interaction.dropElement = interaction.prevDropTarget = interaction.prevDropElement = null;\n});\n\n/**\n * Returns or sets whether the dimensions of dropzone elements are calculated\n * on every dragmove or only on dragstart for the default dropChecker\n *\n * @param {boolean} [newValue] True to check on each move. False to check only\n * before start\n * @return {boolean | interact} The current setting or interact\n */\ninteract.dynamicDrop = function (newValue) {\n if (utils.is.bool(newValue)) {\n //if (dragging && dynamicDrop !== newValue && !newValue) {\n //calcRects(dropzones);\n //}\n\n dynamicDrop = newValue;\n\n return interact;\n }\n return dynamicDrop;\n};\n\nutils.merge(Interactable.eventTypes, ['dragenter', 'dragleave', 'dropactivate', 'dropdeactivate', 'dropmove', 'drop']);\nactions.methodDict.drop = 'dropzone';\n\ndefaultOptions.drop = drop.defaults;\n\nmodule.exports = drop;\n\n},{\"../InteractEvent\":3,\"../Interactable\":4,\"../Interaction\":5,\"../defaultOptions\":18,\"../interact\":21,\"../scope\":33,\"../utils\":44,\"./base\":6}],9:[function(require,module,exports){\n'use strict';\n\nvar actions = require('./base');\nvar utils = require('../utils');\nvar InteractEvent = require('../InteractEvent');\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar defaultOptions = require('../defaultOptions');\n\nvar gesture = {\n defaults: {\n enabled: false,\n origin: null,\n restrict: null\n },\n\n checker: function checker(pointer, event, interactable, element, interaction) {\n if (interaction.pointerIds.length >= 2) {\n return { name: 'gesture' };\n }\n\n return null;\n },\n\n getCursor: function getCursor() {\n return '';\n }\n};\n\nInteractEvent.signals.on('new', function (_ref) {\n var iEvent = _ref.iEvent,\n interaction = _ref.interaction;\n\n if (iEvent.type !== 'gesturestart') {\n return;\n }\n iEvent.ds = 0;\n\n interaction.gesture.startDistance = interaction.gesture.prevDistance = iEvent.distance;\n interaction.gesture.startAngle = interaction.gesture.prevAngle = iEvent.angle;\n interaction.gesture.scale = 1;\n});\n\nInteractEvent.signals.on('new', function (_ref2) {\n var iEvent = _ref2.iEvent,\n interaction = _ref2.interaction;\n\n if (iEvent.type !== 'gesturemove') {\n return;\n }\n\n iEvent.ds = iEvent.scale - interaction.gesture.scale;\n\n interaction.target.fire(iEvent);\n\n interaction.gesture.prevAngle = iEvent.angle;\n interaction.gesture.prevDistance = iEvent.distance;\n\n if (iEvent.scale !== Infinity && iEvent.scale !== null && iEvent.scale !== undefined && !isNaN(iEvent.scale)) {\n\n interaction.gesture.scale = iEvent.scale;\n }\n});\n\n/**\n * ```js\n * interact(element).gesturable({\n * onstart: function (event) {},\n * onmove : function (event) {},\n * onend : function (event) {},\n *\n * // limit multiple gestures.\n * // See the explanation in {@link Interactable.draggable} example\n * max: Infinity,\n * maxPerElement: 1,\n * });\n *\n * var isGestureable = interact(element).gesturable();\n * ```\n *\n * Gets or sets whether multitouch gestures can be performed on the target\n *\n * @param {boolean | object} [options] true/false or An object with event\n * listeners to be fired on gesture events (makes the Interactable gesturable)\n * @return {boolean | Interactable} A boolean indicating if this can be the\n * target of gesture events, or this Interactable\n */\nInteractable.prototype.gesturable = function (options) {\n if (utils.is.object(options)) {\n this.options.gesture.enabled = options.enabled === false ? false : true;\n this.setPerAction('gesture', options);\n this.setOnEvents('gesture', options);\n\n return this;\n }\n\n if (utils.is.bool(options)) {\n this.options.gesture.enabled = options;\n\n if (!options) {\n this.ongesturestart = this.ongesturestart = this.ongestureend = null;\n }\n\n return this;\n }\n\n return this.options.gesture;\n};\n\nInteractEvent.signals.on('set-delta', function (_ref3) {\n var interaction = _ref3.interaction,\n iEvent = _ref3.iEvent,\n action = _ref3.action,\n event = _ref3.event,\n starting = _ref3.starting,\n ending = _ref3.ending,\n deltaSource = _ref3.deltaSource;\n\n if (action !== 'gesture') {\n return;\n }\n\n var pointers = interaction.pointers;\n\n iEvent.touches = [pointers[0], pointers[1]];\n\n if (starting) {\n iEvent.distance = utils.touchDistance(pointers, deltaSource);\n iEvent.box = utils.touchBBox(pointers);\n iEvent.scale = 1;\n iEvent.ds = 0;\n iEvent.angle = utils.touchAngle(pointers, undefined, deltaSource);\n iEvent.da = 0;\n } else if (ending || event instanceof InteractEvent) {\n iEvent.distance = interaction.prevEvent.distance;\n iEvent.box = interaction.prevEvent.box;\n iEvent.scale = interaction.prevEvent.scale;\n iEvent.ds = iEvent.scale - 1;\n iEvent.angle = interaction.prevEvent.angle;\n iEvent.da = iEvent.angle - interaction.gesture.startAngle;\n } else {\n iEvent.distance = utils.touchDistance(pointers, deltaSource);\n iEvent.box = utils.touchBBox(pointers);\n iEvent.scale = iEvent.distance / interaction.gesture.startDistance;\n iEvent.angle = utils.touchAngle(pointers, interaction.gesture.prevAngle, deltaSource);\n\n iEvent.ds = iEvent.scale - interaction.gesture.prevScale;\n iEvent.da = iEvent.angle - interaction.gesture.prevAngle;\n }\n});\n\nInteraction.signals.on('new', function (interaction) {\n interaction.gesture = {\n start: { x: 0, y: 0 },\n\n startDistance: 0, // distance between two touches of touchStart\n prevDistance: 0,\n distance: 0,\n\n scale: 1, // gesture.distance / gesture.startDistance\n\n startAngle: 0, // angle of line joining two touches\n prevAngle: 0 // angle of the previous gesture event\n };\n});\n\nactions.gesture = gesture;\nactions.names.push('gesture');\nutils.merge(Interactable.eventTypes, ['gesturestart', 'gesturemove', 'gestureend']);\nactions.methodDict.gesture = 'gesturable';\n\ndefaultOptions.gesture = gesture.defaults;\n\nmodule.exports = gesture;\n\n},{\"../InteractEvent\":3,\"../Interactable\":4,\"../Interaction\":5,\"../defaultOptions\":18,\"../utils\":44,\"./base\":6}],10:[function(require,module,exports){\n'use strict';\n\nvar actions = require('./base');\nvar utils = require('../utils');\nvar browser = require('../utils/browser');\nvar InteractEvent = require('../InteractEvent');\n/** @lends Interactable */\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar defaultOptions = require('../defaultOptions');\n\n// Less Precision with touch input\nvar defaultMargin = browser.supportsTouch || browser.supportsPointerEvent ? 20 : 10;\n\nvar resize = {\n defaults: {\n enabled: false,\n mouseButtons: null,\n\n origin: null,\n snap: null,\n restrict: null,\n inertia: null,\n autoScroll: null,\n\n square: false,\n preserveAspectRatio: false,\n axis: 'xy',\n\n // use default margin\n margin: NaN,\n\n // object with props left, right, top, bottom which are\n // true/false values to resize when the pointer is over that edge,\n // CSS selectors to match the handles for each direction\n // or the Elements for each handle\n edges: null,\n\n // a value of 'none' will limit the resize rect to a minimum of 0x0\n // 'negate' will alow the rect to have negative width/height\n // 'reposition' will keep the width/height positive by swapping\n // the top and bottom edges and/or swapping the left and right edges\n invert: 'none'\n },\n\n checker: function checker(pointer, event, interactable, element, interaction, rect) {\n if (!rect) {\n return null;\n }\n\n var page = utils.extend({}, interaction.curCoords.page);\n var options = interactable.options;\n\n if (options.resize.enabled) {\n var resizeOptions = options.resize;\n var resizeEdges = { left: false, right: false, top: false, bottom: false };\n\n // if using resize.edges\n if (utils.is.object(resizeOptions.edges)) {\n for (var edge in resizeEdges) {\n resizeEdges[edge] = checkResizeEdge(edge, resizeOptions.edges[edge], page, interaction._eventTarget, element, rect, resizeOptions.margin || defaultMargin);\n }\n\n resizeEdges.left = resizeEdges.left && !resizeEdges.right;\n resizeEdges.top = resizeEdges.top && !resizeEdges.bottom;\n\n if (resizeEdges.left || resizeEdges.right || resizeEdges.top || resizeEdges.bottom) {\n return {\n name: 'resize',\n edges: resizeEdges\n };\n }\n } else {\n var right = options.resize.axis !== 'y' && page.x > rect.right - defaultMargin;\n var bottom = options.resize.axis !== 'x' && page.y > rect.bottom - defaultMargin;\n\n if (right || bottom) {\n return {\n name: 'resize',\n axes: (right ? 'x' : '') + (bottom ? 'y' : '')\n };\n }\n }\n }\n\n return null;\n },\n\n cursors: browser.isIe9 ? {\n x: 'e-resize',\n y: 's-resize',\n xy: 'se-resize',\n\n top: 'n-resize',\n left: 'w-resize',\n bottom: 's-resize',\n right: 'e-resize',\n topleft: 'se-resize',\n bottomright: 'se-resize',\n topright: 'ne-resize',\n bottomleft: 'ne-resize'\n } : {\n x: 'ew-resize',\n y: 'ns-resize',\n xy: 'nwse-resize',\n\n top: 'ns-resize',\n left: 'ew-resize',\n bottom: 'ns-resize',\n right: 'ew-resize',\n topleft: 'nwse-resize',\n bottomright: 'nwse-resize',\n topright: 'nesw-resize',\n bottomleft: 'nesw-resize'\n },\n\n getCursor: function getCursor(action) {\n if (action.axis) {\n return resize.cursors[action.name + action.axis];\n } else if (action.edges) {\n var cursorKey = '';\n var edgeNames = ['top', 'bottom', 'left', 'right'];\n\n for (var i = 0; i < 4; i++) {\n if (action.edges[edgeNames[i]]) {\n cursorKey += edgeNames[i];\n }\n }\n\n return resize.cursors[cursorKey];\n }\n }\n};\n\n// resizestart\nInteractEvent.signals.on('new', function (_ref) {\n var iEvent = _ref.iEvent,\n interaction = _ref.interaction;\n\n if (iEvent.type !== 'resizestart' || !interaction.prepared.edges) {\n return;\n }\n\n var startRect = interaction.target.getRect(interaction.element);\n var resizeOptions = interaction.target.options.resize;\n\n /*\n * When using the `resizable.square` or `resizable.preserveAspectRatio` options, resizing from one edge\n * will affect another. E.g. with `resizable.square`, resizing to make the right edge larger will make\n * the bottom edge larger by the same amount. We call these 'linked' edges. Any linked edges will depend\n * on the active edges and the edge being interacted with.\n */\n if (resizeOptions.square || resizeOptions.preserveAspectRatio) {\n var linkedEdges = utils.extend({}, interaction.prepared.edges);\n\n linkedEdges.top = linkedEdges.top || linkedEdges.left && !linkedEdges.bottom;\n linkedEdges.left = linkedEdges.left || linkedEdges.top && !linkedEdges.right;\n linkedEdges.bottom = linkedEdges.bottom || linkedEdges.right && !linkedEdges.top;\n linkedEdges.right = linkedEdges.right || linkedEdges.bottom && !linkedEdges.left;\n\n interaction.prepared._linkedEdges = linkedEdges;\n } else {\n interaction.prepared._linkedEdges = null;\n }\n\n // if using `resizable.preserveAspectRatio` option, record aspect ratio at the start of the resize\n if (resizeOptions.preserveAspectRatio) {\n interaction.resizeStartAspectRatio = startRect.width / startRect.height;\n }\n\n interaction.resizeRects = {\n start: startRect,\n current: utils.extend({}, startRect),\n inverted: utils.extend({}, startRect),\n previous: utils.extend({}, startRect),\n delta: {\n left: 0, right: 0, width: 0,\n top: 0, bottom: 0, height: 0\n }\n };\n\n iEvent.rect = interaction.resizeRects.inverted;\n iEvent.deltaRect = interaction.resizeRects.delta;\n});\n\n// resizemove\nInteractEvent.signals.on('new', function (_ref2) {\n var iEvent = _ref2.iEvent,\n phase = _ref2.phase,\n interaction = _ref2.interaction;\n\n if (phase !== 'move' || !interaction.prepared.edges) {\n return;\n }\n\n var resizeOptions = interaction.target.options.resize;\n var invert = resizeOptions.invert;\n var invertible = invert === 'reposition' || invert === 'negate';\n\n var edges = interaction.prepared.edges;\n\n var start = interaction.resizeRects.start;\n var current = interaction.resizeRects.current;\n var inverted = interaction.resizeRects.inverted;\n var delta = interaction.resizeRects.delta;\n var previous = utils.extend(interaction.resizeRects.previous, inverted);\n var originalEdges = edges;\n\n var dx = iEvent.dx;\n var dy = iEvent.dy;\n\n if (resizeOptions.preserveAspectRatio || resizeOptions.square) {\n // `resize.preserveAspectRatio` takes precedence over `resize.square`\n var startAspectRatio = resizeOptions.preserveAspectRatio ? interaction.resizeStartAspectRatio : 1;\n\n edges = interaction.prepared._linkedEdges;\n\n if (originalEdges.left && originalEdges.bottom || originalEdges.right && originalEdges.top) {\n dy = -dx / startAspectRatio;\n } else if (originalEdges.left || originalEdges.right) {\n dy = dx / startAspectRatio;\n } else if (originalEdges.top || originalEdges.bottom) {\n dx = dy * startAspectRatio;\n }\n }\n\n // update the 'current' rect without modifications\n if (edges.top) {\n current.top += dy;\n }\n if (edges.bottom) {\n current.bottom += dy;\n }\n if (edges.left) {\n current.left += dx;\n }\n if (edges.right) {\n current.right += dx;\n }\n\n if (invertible) {\n // if invertible, copy the current rect\n utils.extend(inverted, current);\n\n if (invert === 'reposition') {\n // swap edge values if necessary to keep width/height positive\n var swap = void 0;\n\n if (inverted.top > inverted.bottom) {\n swap = inverted.top;\n\n inverted.top = inverted.bottom;\n inverted.bottom = swap;\n }\n if (inverted.left > inverted.right) {\n swap = inverted.left;\n\n inverted.left = inverted.right;\n inverted.right = swap;\n }\n }\n } else {\n // if not invertible, restrict to minimum of 0x0 rect\n inverted.top = Math.min(current.top, start.bottom);\n inverted.bottom = Math.max(current.bottom, start.top);\n inverted.left = Math.min(current.left, start.right);\n inverted.right = Math.max(current.right, start.left);\n }\n\n inverted.width = inverted.right - inverted.left;\n inverted.height = inverted.bottom - inverted.top;\n\n for (var edge in inverted) {\n delta[edge] = inverted[edge] - previous[edge];\n }\n\n iEvent.edges = interaction.prepared.edges;\n iEvent.rect = inverted;\n iEvent.deltaRect = delta;\n});\n\n/**\n * ```js\n * interact(element).resizable({\n * onstart: function (event) {},\n * onmove : function (event) {},\n * onend : function (event) {},\n *\n * edges: {\n * top : true, // Use pointer coords to check for resize.\n * left : false, // Disable resizing from left edge.\n * bottom: '.resize-s',// Resize if pointer target matches selector\n * right : handleEl // Resize if pointer target is the given Element\n * },\n *\n * // Width and height can be adjusted independently. When `true`, width and\n * // height are adjusted at a 1:1 ratio.\n * square: false,\n *\n * // Width and height can be adjusted independently. When `true`, width and\n * // height maintain the aspect ratio they had when resizing started.\n * preserveAspectRatio: false,\n *\n * // a value of 'none' will limit the resize rect to a minimum of 0x0\n * // 'negate' will allow the rect to have negative width/height\n * // 'reposition' will keep the width/height positive by swapping\n * // the top and bottom edges and/or swapping the left and right edges\n * invert: 'none' || 'negate' || 'reposition'\n *\n * // limit multiple resizes.\n * // See the explanation in the {@link Interactable.draggable} example\n * max: Infinity,\n * maxPerElement: 1,\n * });\n *\n * var isResizeable = interact(element).resizable();\n * ```\n *\n * Gets or sets whether resize actions can be performed on the target\n *\n * @param {boolean | object} [options] true/false or An object with event\n * listeners to be fired on resize events (object makes the Interactable\n * resizable)\n * @return {boolean | Interactable} A boolean indicating if this can be the\n * target of resize elements, or this Interactable\n */\nInteractable.prototype.resizable = function (options) {\n if (utils.is.object(options)) {\n this.options.resize.enabled = options.enabled === false ? false : true;\n this.setPerAction('resize', options);\n this.setOnEvents('resize', options);\n\n if (/^x$|^y$|^xy$/.test(options.axis)) {\n this.options.resize.axis = options.axis;\n } else if (options.axis === null) {\n this.options.resize.axis = defaultOptions.resize.axis;\n }\n\n if (utils.is.bool(options.preserveAspectRatio)) {\n this.options.resize.preserveAspectRatio = options.preserveAspectRatio;\n } else if (utils.is.bool(options.square)) {\n this.options.resize.square = options.square;\n }\n\n return this;\n }\n if (utils.is.bool(options)) {\n this.options.resize.enabled = options;\n\n if (!options) {\n this.onresizestart = this.onresizestart = this.onresizeend = null;\n }\n\n return this;\n }\n return this.options.resize;\n};\n\nfunction checkResizeEdge(name, value, page, element, interactableElement, rect, margin) {\n // false, '', undefined, null\n if (!value) {\n return false;\n }\n\n // true value, use pointer coords and element rect\n if (value === true) {\n // if dimensions are negative, \"switch\" edges\n var width = utils.is.number(rect.width) ? rect.width : rect.right - rect.left;\n var height = utils.is.number(rect.height) ? rect.height : rect.bottom - rect.top;\n\n if (width < 0) {\n if (name === 'left') {\n name = 'right';\n } else if (name === 'right') {\n name = 'left';\n }\n }\n if (height < 0) {\n if (name === 'top') {\n name = 'bottom';\n } else if (name === 'bottom') {\n name = 'top';\n }\n }\n\n if (name === 'left') {\n return page.x < (width >= 0 ? rect.left : rect.right) + margin;\n }\n if (name === 'top') {\n return page.y < (height >= 0 ? rect.top : rect.bottom) + margin;\n }\n\n if (name === 'right') {\n return page.x > (width >= 0 ? rect.right : rect.left) - margin;\n }\n if (name === 'bottom') {\n return page.y > (height >= 0 ? rect.bottom : rect.top) - margin;\n }\n }\n\n // the remaining checks require an element\n if (!utils.is.element(element)) {\n return false;\n }\n\n return utils.is.element(value)\n // the value is an element to use as a resize handle\n ? value === element\n // otherwise check if element matches value as selector\n : utils.matchesUpTo(element, value, interactableElement);\n}\n\nInteraction.signals.on('new', function (interaction) {\n interaction.resizeAxes = 'xy';\n});\n\nInteractEvent.signals.on('set-delta', function (_ref3) {\n var interaction = _ref3.interaction,\n iEvent = _ref3.iEvent,\n action = _ref3.action;\n\n if (action !== 'resize' || !interaction.resizeAxes) {\n return;\n }\n\n var options = interaction.target.options;\n\n if (options.resize.square) {\n if (interaction.resizeAxes === 'y') {\n iEvent.dx = iEvent.dy;\n } else {\n iEvent.dy = iEvent.dx;\n }\n iEvent.axes = 'xy';\n } else {\n iEvent.axes = interaction.resizeAxes;\n\n if (interaction.resizeAxes === 'x') {\n iEvent.dy = 0;\n } else if (interaction.resizeAxes === 'y') {\n iEvent.dx = 0;\n }\n }\n});\n\nactions.resize = resize;\nactions.names.push('resize');\nutils.merge(Interactable.eventTypes, ['resizestart', 'resizemove', 'resizeinertiastart', 'resizeinertiaresume', 'resizeend']);\nactions.methodDict.resize = 'resizable';\n\ndefaultOptions.resize = resize.defaults;\n\nmodule.exports = resize;\n\n},{\"../InteractEvent\":3,\"../Interactable\":4,\"../Interaction\":5,\"../defaultOptions\":18,\"../utils\":44,\"../utils/browser\":36,\"./base\":6}],11:[function(require,module,exports){\n'use strict';\n\nvar raf = require('./utils/raf');\nvar getWindow = require('./utils/window').getWindow;\nvar is = require('./utils/is');\nvar domUtils = require('./utils/domUtils');\nvar Interaction = require('./Interaction');\nvar defaultOptions = require('./defaultOptions');\n\nvar autoScroll = {\n defaults: {\n enabled: false,\n container: null, // the item that is scrolled (Window or HTMLElement)\n margin: 60,\n speed: 300 // the scroll speed in pixels per second\n },\n\n interaction: null,\n i: null, // the handle returned by window.setInterval\n x: 0, y: 0, // Direction each pulse is to scroll in\n\n isScrolling: false,\n prevTime: 0,\n\n start: function start(interaction) {\n autoScroll.isScrolling = true;\n raf.cancel(autoScroll.i);\n\n autoScroll.interaction = interaction;\n autoScroll.prevTime = new Date().getTime();\n autoScroll.i = raf.request(autoScroll.scroll);\n },\n\n stop: function stop() {\n autoScroll.isScrolling = false;\n raf.cancel(autoScroll.i);\n },\n\n // scroll the window by the values in scroll.x/y\n scroll: function scroll() {\n var options = autoScroll.interaction.target.options[autoScroll.interaction.prepared.name].autoScroll;\n var container = options.container || getWindow(autoScroll.interaction.element);\n var now = new Date().getTime();\n // change in time in seconds\n var dt = (now - autoScroll.prevTime) / 1000;\n // displacement\n var s = options.speed * dt;\n\n if (s >= 1) {\n if (is.window(container)) {\n container.scrollBy(autoScroll.x * s, autoScroll.y * s);\n } else if (container) {\n container.scrollLeft += autoScroll.x * s;\n container.scrollTop += autoScroll.y * s;\n }\n\n autoScroll.prevTime = now;\n }\n\n if (autoScroll.isScrolling) {\n raf.cancel(autoScroll.i);\n autoScroll.i = raf.request(autoScroll.scroll);\n }\n },\n check: function check(interactable, actionName) {\n var options = interactable.options;\n\n return options[actionName].autoScroll && options[actionName].autoScroll.enabled;\n },\n onInteractionMove: function onInteractionMove(_ref) {\n var interaction = _ref.interaction,\n pointer = _ref.pointer;\n\n if (!(interaction.interacting() && autoScroll.check(interaction.target, interaction.prepared.name))) {\n return;\n }\n\n if (interaction.simulation) {\n autoScroll.x = autoScroll.y = 0;\n return;\n }\n\n var top = void 0;\n var right = void 0;\n var bottom = void 0;\n var left = void 0;\n\n var options = interaction.target.options[interaction.prepared.name].autoScroll;\n var container = options.container || getWindow(interaction.element);\n\n if (is.window(container)) {\n left = pointer.clientX < autoScroll.margin;\n top = pointer.clientY < autoScroll.margin;\n right = pointer.clientX > container.innerWidth - autoScroll.margin;\n bottom = pointer.clientY > container.innerHeight - autoScroll.margin;\n } else {\n var rect = domUtils.getElementClientRect(container);\n\n left = pointer.clientX < rect.left + autoScroll.margin;\n top = pointer.clientY < rect.top + autoScroll.margin;\n right = pointer.clientX > rect.right - autoScroll.margin;\n bottom = pointer.clientY > rect.bottom - autoScroll.margin;\n }\n\n autoScroll.x = right ? 1 : left ? -1 : 0;\n autoScroll.y = bottom ? 1 : top ? -1 : 0;\n\n if (!autoScroll.isScrolling) {\n // set the autoScroll properties to those of the target\n autoScroll.margin = options.margin;\n autoScroll.speed = options.speed;\n\n autoScroll.start(interaction);\n }\n }\n};\n\nInteraction.signals.on('stop-active', function () {\n autoScroll.stop();\n});\n\nInteraction.signals.on('action-move', autoScroll.onInteractionMove);\n\ndefaultOptions.perAction.autoScroll = autoScroll.defaults;\n\nmodule.exports = autoScroll;\n\n},{\"./Interaction\":5,\"./defaultOptions\":18,\"./utils/domUtils\":39,\"./utils/is\":46,\"./utils/raf\":50,\"./utils/window\":52}],12:[function(require,module,exports){\n'use strict';\n\n/** @lends Interactable */\nvar Interactable = require('../Interactable');\nvar actions = require('../actions/base');\nvar is = require('../utils/is');\nvar domUtils = require('../utils/domUtils');\n\nvar _require = require('../utils'),\n warnOnce = _require.warnOnce;\n\nInteractable.prototype.getAction = function (pointer, event, interaction, element) {\n var action = this.defaultActionChecker(pointer, event, interaction, element);\n\n if (this.options.actionChecker) {\n return this.options.actionChecker(pointer, event, action, this, element, interaction);\n }\n\n return action;\n};\n\n/**\n * ```js\n * interact(element, { ignoreFrom: document.getElementById('no-action') });\n * // or\n * interact(element).ignoreFrom('input, textarea, a');\n * ```\n * @deprecated\n * If the target of the `mousedown`, `pointerdown` or `touchstart` event or any\n * of it's parents match the given CSS selector or Element, no\n * drag/resize/gesture is started.\n *\n * Don't use this method. Instead set the `ignoreFrom` option for each action\n * or for `pointerEvents`\n *\n * @example\n * interact(targett)\n * .draggable({\n * ignoreFrom: 'input, textarea, a[href]'',\n * })\n * .pointerEvents({\n * ignoreFrom: '[no-pointer]',\n * });\n *\n * @param {string | Element | null} [newValue] a CSS selector string, an\n * Element or `null` to not ignore any elements\n * @return {string | Element | object} The current ignoreFrom value or this\n * Interactable\n */\nInteractable.prototype.ignoreFrom = warnOnce(function (newValue) {\n return this._backCompatOption('ignoreFrom', newValue);\n}, 'Interactable.ignoreForm() has been deprecated. Use Interactble.draggable({ignoreFrom: newValue}).');\n\n/**\n * ```js\n *\n * @deprecated\n * A drag/resize/gesture is started only If the target of the `mousedown`,\n * `pointerdown` or `touchstart` event or any of it's parents match the given\n * CSS selector or Element.\n *\n * Don't use this method. Instead set the `allowFrom` option for each action\n * or for `pointerEvents`\n *\n * @example\n * interact(targett)\n * .resizable({\n * allowFrom: '.resize-handle',\n * .pointerEvents({\n * allowFrom: '.handle',,\n * });\n *\n * @param {string | Element | null} [newValue] a CSS selector string, an\n * Element or `null` to allow from any element\n * @return {string | Element | object} The current allowFrom value or this\n * Interactable\n */\nInteractable.prototype.allowFrom = warnOnce(function (newValue) {\n return this._backCompatOption('allowFrom', newValue);\n}, 'Interactable.allowForm() has been deprecated. Use Interactble.draggable({allowFrom: newValue}).');\n\nInteractable.prototype.testIgnore = function (ignoreFrom, interactableElement, element) {\n if (!ignoreFrom || !is.element(element)) {\n return false;\n }\n\n if (is.string(ignoreFrom)) {\n return domUtils.matchesUpTo(element, ignoreFrom, interactableElement);\n } else if (is.element(ignoreFrom)) {\n return domUtils.nodeContains(ignoreFrom, element);\n }\n\n return false;\n};\n\nInteractable.prototype.testAllow = function (allowFrom, interactableElement, element) {\n if (!allowFrom) {\n return true;\n }\n\n if (!is.element(element)) {\n return false;\n }\n\n if (is.string(allowFrom)) {\n return domUtils.matchesUpTo(element, allowFrom, interactableElement);\n } else if (is.element(allowFrom)) {\n return domUtils.nodeContains(allowFrom, element);\n }\n\n return false;\n};\n\nInteractable.prototype.testIgnoreAllow = function (options, interactableElement, eventTarget) {\n return !this.testIgnore(options.ignoreFrom, interactableElement, eventTarget) && this.testAllow(options.allowFrom, interactableElement, eventTarget);\n};\n\n/**\n * ```js\n * interact('.resize-drag')\n * .resizable(true)\n * .draggable(true)\n * .actionChecker(function (pointer, event, action, interactable, element, interaction) {\n *\n * if (interact.matchesSelector(event.target, '.drag-handle') {\n * // force drag with handle target\n * action.name = drag;\n * }\n * else {\n * // resize from the top and right edges\n * action.name = 'resize';\n * action.edges = { top: true, right: true };\n * }\n *\n * return action;\n * });\n * ```\n *\n * Gets or sets the function used to check action to be performed on\n * pointerDown\n *\n * @param {function | null} [checker] A function which takes a pointer event,\n * defaultAction string, interactable, element and interaction as parameters\n * and returns an object with name property 'drag' 'resize' or 'gesture' and\n * optionally an `edges` object with boolean 'top', 'left', 'bottom' and right\n * props.\n * @return {Function | Interactable} The checker function or this Interactable\n */\nInteractable.prototype.actionChecker = function (checker) {\n if (is.function(checker)) {\n this.options.actionChecker = checker;\n\n return this;\n }\n\n if (checker === null) {\n delete this.options.actionChecker;\n\n return this;\n }\n\n return this.options.actionChecker;\n};\n\n/**\n * Returns or sets whether the the cursor should be changed depending on the\n * action that would be performed if the mouse were pressed and dragged.\n *\n * @param {boolean} [newValue]\n * @return {boolean | Interactable} The current setting or this Interactable\n */\nInteractable.prototype.styleCursor = function (newValue) {\n if (is.bool(newValue)) {\n this.options.styleCursor = newValue;\n\n return this;\n }\n\n if (newValue === null) {\n delete this.options.styleCursor;\n\n return this;\n }\n\n return this.options.styleCursor;\n};\n\nInteractable.prototype.defaultActionChecker = function (pointer, event, interaction, element) {\n var rect = this.getRect(element);\n var buttons = event.buttons || {\n 0: 1,\n 1: 4,\n 3: 8,\n 4: 16\n }[event.button];\n var action = null;\n\n for (var _i = 0; _i < actions.names.length; _i++) {\n var _ref;\n\n _ref = actions.names[_i];\n var actionName = _ref;\n\n // check mouseButton setting if the pointer is down\n if (interaction.pointerIsDown && /mouse|pointer/.test(interaction.pointerType) && (buttons & this.options[actionName].mouseButtons) === 0) {\n continue;\n }\n\n action = actions[actionName].checker(pointer, event, this, element, interaction, rect);\n\n if (action) {\n return action;\n }\n }\n};\n\n},{\"../Interactable\":4,\"../actions/base\":6,\"../utils\":44,\"../utils/domUtils\":39,\"../utils/is\":46}],13:[function(require,module,exports){\n'use strict';\n\nvar interact = require('../interact');\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar actions = require('../actions/base');\nvar defaultOptions = require('../defaultOptions');\nvar scope = require('../scope');\nvar utils = require('../utils');\nvar signals = require('../utils/Signals').new();\n\nrequire('./InteractableMethods');\n\nvar autoStart = {\n signals: signals,\n withinInteractionLimit: withinInteractionLimit,\n // Allow this many interactions to happen simultaneously\n maxInteractions: Infinity,\n defaults: {\n perAction: {\n manualStart: false,\n max: Infinity,\n maxPerElement: 1,\n allowFrom: null,\n ignoreFrom: null,\n\n // only allow left button by default\n // see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons#Return_value\n mouseButtons: 1\n }\n },\n setActionDefaults: function setActionDefaults(action) {\n utils.extend(action.defaults, autoStart.defaults.perAction);\n },\n validateAction: validateAction\n};\n\n// set cursor style on mousedown\nInteraction.signals.on('down', function (_ref) {\n var interaction = _ref.interaction,\n pointer = _ref.pointer,\n event = _ref.event,\n eventTarget = _ref.eventTarget;\n\n if (interaction.interacting()) {\n return;\n }\n\n var actionInfo = getActionInfo(interaction, pointer, event, eventTarget);\n prepare(interaction, actionInfo);\n});\n\n// set cursor style on mousemove\nInteraction.signals.on('move', function (_ref2) {\n var interaction = _ref2.interaction,\n pointer = _ref2.pointer,\n event = _ref2.event,\n eventTarget = _ref2.eventTarget;\n\n if (interaction.pointerType !== 'mouse' || interaction.pointerIsDown || interaction.interacting()) {\n return;\n }\n\n var actionInfo = getActionInfo(interaction, pointer, event, eventTarget);\n prepare(interaction, actionInfo);\n});\n\nInteraction.signals.on('move', function (arg) {\n var interaction = arg.interaction,\n event = arg.event;\n\n\n if (!interaction.pointerIsDown || interaction.interacting() || !interaction.pointerWasMoved || !interaction.prepared.name) {\n return;\n }\n\n signals.fire('before-start', arg);\n\n var target = interaction.target;\n\n if (interaction.prepared.name && target) {\n // check manualStart and interaction limit\n if (target.options[interaction.prepared.name].manualStart || !withinInteractionLimit(target, interaction.element, interaction.prepared)) {\n interaction.stop(event);\n } else {\n interaction.start(interaction.prepared, target, interaction.element);\n }\n }\n});\n\n// Check if the current target supports the action.\n// If so, return the validated action. Otherwise, return null\nfunction validateAction(action, interactable, element, eventTarget) {\n if (utils.is.object(action) && interactable.testIgnoreAllow(interactable.options[action.name], element, eventTarget) && interactable.options[action.name].enabled && withinInteractionLimit(interactable, element, action)) {\n return action;\n }\n\n return null;\n}\n\nfunction validateSelector(interaction, pointer, event, matches, matchElements, eventTarget) {\n for (var i = 0, len = matches.length; i < len; i++) {\n var match = matches[i];\n var matchElement = matchElements[i];\n var action = validateAction(match.getAction(pointer, event, interaction, matchElement), match, matchElement, eventTarget);\n\n if (action) {\n return {\n action: action,\n target: match,\n element: matchElement\n };\n }\n }\n\n return {};\n}\n\nfunction getActionInfo(interaction, pointer, event, eventTarget) {\n var matches = [];\n var matchElements = [];\n\n var element = eventTarget;\n\n function pushMatches(interactable) {\n matches.push(interactable);\n matchElements.push(element);\n }\n\n while (utils.is.element(element)) {\n matches = [];\n matchElements = [];\n\n scope.interactables.forEachMatch(element, pushMatches);\n\n var actionInfo = validateSelector(interaction, pointer, event, matches, matchElements, eventTarget);\n\n if (actionInfo.action && !actionInfo.target.options[actionInfo.action.name].manualStart) {\n return actionInfo;\n }\n\n element = utils.parentNode(element);\n }\n\n return {};\n}\n\nfunction prepare(interaction, _ref3) {\n var action = _ref3.action,\n target = _ref3.target,\n element = _ref3.element;\n\n action = action || {};\n\n if (interaction.target && interaction.target.options.styleCursor) {\n interaction.target._doc.documentElement.style.cursor = '';\n }\n\n interaction.target = target;\n interaction.element = element;\n utils.copyAction(interaction.prepared, action);\n\n if (target && target.options.styleCursor) {\n var cursor = action ? actions[action.name].getCursor(action) : '';\n interaction.target._doc.documentElement.style.cursor = cursor;\n }\n\n signals.fire('prepared', { interaction: interaction });\n}\n\nInteraction.signals.on('stop', function (_ref4) {\n var interaction = _ref4.interaction;\n\n var target = interaction.target;\n\n if (target && target.options.styleCursor) {\n target._doc.documentElement.style.cursor = '';\n }\n});\n\nfunction withinInteractionLimit(interactable, element, action) {\n var options = interactable.options;\n var maxActions = options[action.name].max;\n var maxPerElement = options[action.name].maxPerElement;\n var activeInteractions = 0;\n var targetCount = 0;\n var targetElementCount = 0;\n\n // no actions if any of these values == 0\n if (!(maxActions && maxPerElement && autoStart.maxInteractions)) {\n return;\n }\n\n for (var _i = 0; _i < scope.interactions.length; _i++) {\n var _ref5;\n\n _ref5 = scope.interactions[_i];\n var interaction = _ref5;\n\n var otherAction = interaction.prepared.name;\n\n if (!interaction.interacting()) {\n continue;\n }\n\n activeInteractions++;\n\n if (activeInteractions >= autoStart.maxInteractions) {\n return false;\n }\n\n if (interaction.target !== interactable) {\n continue;\n }\n\n targetCount += otherAction === action.name | 0;\n\n if (targetCount >= maxActions) {\n return false;\n }\n\n if (interaction.element === element) {\n targetElementCount++;\n\n if (otherAction !== action.name || targetElementCount >= maxPerElement) {\n return false;\n }\n }\n }\n\n return autoStart.maxInteractions > 0;\n}\n\n/**\n * Returns or sets the maximum number of concurrent interactions allowed. By\n * default only 1 interaction is allowed at a time (for backwards\n * compatibility). To allow multiple interactions on the same Interactables and\n * elements, you need to enable it in the draggable, resizable and gesturable\n * `'max'` and `'maxPerElement'` options.\n *\n * @alias module:interact.maxInteractions\n *\n * @param {number} [newValue] Any number. newValue <= 0 means no interactions.\n */\ninteract.maxInteractions = function (newValue) {\n if (utils.is.number(newValue)) {\n autoStart.maxInteractions = newValue;\n\n return interact;\n }\n\n return autoStart.maxInteractions;\n};\n\nInteractable.settingsMethods.push('styleCursor');\nInteractable.settingsMethods.push('actionChecker');\nInteractable.settingsMethods.push('ignoreFrom');\nInteractable.settingsMethods.push('allowFrom');\n\ndefaultOptions.base.actionChecker = null;\ndefaultOptions.base.styleCursor = true;\n\nutils.extend(defaultOptions.perAction, autoStart.defaults.perAction);\n\nmodule.exports = autoStart;\n\n},{\"../Interactable\":4,\"../Interaction\":5,\"../actions/base\":6,\"../defaultOptions\":18,\"../interact\":21,\"../scope\":33,\"../utils\":44,\"../utils/Signals\":34,\"./InteractableMethods\":12}],14:[function(require,module,exports){\n'use strict';\n\nvar autoStart = require('./base');\nvar scope = require('../scope');\nvar is = require('../utils/is');\n\nvar _require = require('../utils/domUtils'),\n parentNode = _require.parentNode;\n\nautoStart.setActionDefaults(require('../actions/drag'));\n\nautoStart.signals.on('before-start', function (_ref) {\n var interaction = _ref.interaction,\n eventTarget = _ref.eventTarget,\n dx = _ref.dx,\n dy = _ref.dy;\n\n if (interaction.prepared.name !== 'drag') {\n return;\n }\n\n // check if a drag is in the correct axis\n var absX = Math.abs(dx);\n var absY = Math.abs(dy);\n var targetOptions = interaction.target.options.drag;\n var startAxis = targetOptions.startAxis;\n var currentAxis = absX > absY ? 'x' : absX < absY ? 'y' : 'xy';\n\n interaction.prepared.axis = targetOptions.lockAxis === 'start' ? currentAxis[0] // always lock to one axis even if currentAxis === 'xy'\n : targetOptions.lockAxis;\n\n // if the movement isn't in the startAxis of the interactable\n if (currentAxis !== 'xy' && startAxis !== 'xy' && startAxis !== currentAxis) {\n // cancel the prepared action\n interaction.prepared.name = null;\n\n // then try to get a drag from another ineractable\n var element = eventTarget;\n\n var getDraggable = function getDraggable(interactable) {\n if (interactable === interaction.target) {\n return;\n }\n\n var options = interaction.target.options.drag;\n\n if (!options.manualStart && interactable.testIgnoreAllow(options, element, eventTarget)) {\n\n var action = interactable.getAction(interaction.downPointer, interaction.downEvent, interaction, element);\n\n if (action && action.name === 'drag' && checkStartAxis(currentAxis, interactable) && autoStart.validateAction(action, interactable, element, eventTarget)) {\n\n return interactable;\n }\n }\n };\n\n // check all interactables\n while (is.element(element)) {\n var interactable = scope.interactables.forEachMatch(element, getDraggable);\n\n if (interactable) {\n interaction.prepared.name = 'drag';\n interaction.target = interactable;\n interaction.element = element;\n break;\n }\n\n element = parentNode(element);\n }\n }\n});\n\nfunction checkStartAxis(startAxis, interactable) {\n if (!interactable) {\n return false;\n }\n\n var thisAxis = interactable.options.drag.startAxis;\n\n return startAxis === 'xy' || thisAxis === 'xy' || thisAxis === startAxis;\n}\n\n},{\"../actions/drag\":7,\"../scope\":33,\"../utils/domUtils\":39,\"../utils/is\":46,\"./base\":13}],15:[function(require,module,exports){\n'use strict';\n\nrequire('./base').setActionDefaults(require('../actions/gesture'));\n\n},{\"../actions/gesture\":9,\"./base\":13}],16:[function(require,module,exports){\n'use strict';\n\nvar autoStart = require('./base');\nvar Interaction = require('../Interaction');\n\nautoStart.defaults.perAction.hold = 0;\nautoStart.defaults.perAction.delay = 0;\n\nInteraction.signals.on('new', function (interaction) {\n interaction.autoStartHoldTimer = null;\n});\n\nautoStart.signals.on('prepared', function (_ref) {\n var interaction = _ref.interaction;\n\n var hold = getHoldDuration(interaction);\n\n if (hold > 0) {\n interaction.autoStartHoldTimer = setTimeout(function () {\n interaction.start(interaction.prepared, interaction.target, interaction.element);\n }, hold);\n }\n});\n\nInteraction.signals.on('move', function (_ref2) {\n var interaction = _ref2.interaction,\n duplicate = _ref2.duplicate;\n\n if (interaction.pointerWasMoved && !duplicate) {\n clearTimeout(interaction.autoStartHoldTimer);\n }\n});\n\n// prevent regular down->move autoStart\nautoStart.signals.on('before-start', function (_ref3) {\n var interaction = _ref3.interaction;\n\n var hold = getHoldDuration(interaction);\n\n if (hold > 0) {\n interaction.prepared.name = null;\n }\n});\n\nfunction getHoldDuration(interaction) {\n var actionName = interaction.prepared && interaction.prepared.name;\n\n if (!actionName) {\n return null;\n }\n\n var options = interaction.target.options;\n\n return options[actionName].hold || options[actionName].delay;\n}\n\nmodule.exports = {\n getHoldDuration: getHoldDuration\n};\n\n},{\"../Interaction\":5,\"./base\":13}],17:[function(require,module,exports){\n'use strict';\n\nrequire('./base').setActionDefaults(require('../actions/resize'));\n\n},{\"../actions/resize\":10,\"./base\":13}],18:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n base: {\n accept: null,\n preventDefault: 'auto',\n deltaSource: 'page'\n },\n\n perAction: {\n origin: { x: 0, y: 0 },\n\n inertia: {\n enabled: false,\n resistance: 10, // the lambda in exponential decay\n minSpeed: 100, // target speed must be above this for inertia to start\n endSpeed: 10, // the speed at which inertia is slow enough to stop\n allowResume: true, // allow resuming an action in inertia phase\n smoothEndDuration: 300 // animate to snap/restrict endOnly if there's no inertia\n }\n }\n};\n\n},{}],19:[function(require,module,exports){\n'use strict';\n\n/* browser entry point */\n\n// inertia\nrequire('./inertia');\n\n// modifiers\nrequire('./modifiers/snap');\nrequire('./modifiers/restrict');\n\n// pointerEvents\nrequire('./pointerEvents/base');\nrequire('./pointerEvents/holdRepeat');\nrequire('./pointerEvents/interactableTargets');\n\n// autoStart hold\nrequire('./autoStart/hold');\n\n// actions\nrequire('./actions/gesture');\nrequire('./actions/resize');\nrequire('./actions/drag');\nrequire('./actions/drop');\n\n// load these modifiers after resize is loaded\nrequire('./modifiers/snapSize');\nrequire('./modifiers/restrictEdges');\nrequire('./modifiers/restrictSize');\n\n// autoStart actions\nrequire('./autoStart/gesture');\nrequire('./autoStart/resize');\nrequire('./autoStart/drag');\n\n// Interactable preventDefault setting\nrequire('./interactablePreventDefault.js');\n\n// autoScroll\nrequire('./autoScroll');\n\n// export interact\nmodule.exports = require('./interact');\n\n},{\"./actions/drag\":7,\"./actions/drop\":8,\"./actions/gesture\":9,\"./actions/resize\":10,\"./autoScroll\":11,\"./autoStart/drag\":14,\"./autoStart/gesture\":15,\"./autoStart/hold\":16,\"./autoStart/resize\":17,\"./inertia\":20,\"./interact\":21,\"./interactablePreventDefault.js\":22,\"./modifiers/restrict\":24,\"./modifiers/restrictEdges\":25,\"./modifiers/restrictSize\":26,\"./modifiers/snap\":27,\"./modifiers/snapSize\":28,\"./pointerEvents/base\":30,\"./pointerEvents/holdRepeat\":31,\"./pointerEvents/interactableTargets\":32}],20:[function(require,module,exports){\n'use strict';\n\nvar InteractEvent = require('./InteractEvent');\nvar Interaction = require('./Interaction');\nvar modifiers = require('./modifiers/base');\nvar utils = require('./utils');\nvar animationFrame = require('./utils/raf');\n\nInteraction.signals.on('new', function (interaction) {\n interaction.inertiaStatus = {\n active: false,\n smoothEnd: false,\n allowResume: false,\n\n startEvent: null,\n upCoords: {},\n\n xe: 0, ye: 0,\n sx: 0, sy: 0,\n\n t0: 0,\n vx0: 0, vys: 0,\n duration: 0,\n\n lambda_v0: 0,\n one_ve_v0: 0,\n i: null\n };\n\n interaction.boundInertiaFrame = function () {\n return inertiaFrame.apply(interaction);\n };\n interaction.boundSmoothEndFrame = function () {\n return smoothEndFrame.apply(interaction);\n };\n});\n\nInteraction.signals.on('down', function (_ref) {\n var interaction = _ref.interaction,\n event = _ref.event,\n pointer = _ref.pointer,\n eventTarget = _ref.eventTarget;\n\n var status = interaction.inertiaStatus;\n\n // Check if the down event hits the current inertia target\n if (status.active) {\n var element = eventTarget;\n\n // climb up the DOM tree from the event target\n while (utils.is.element(element)) {\n\n // if interaction element is the current inertia target element\n if (element === interaction.element) {\n // stop inertia\n animationFrame.cancel(status.i);\n status.active = false;\n interaction.simulation = null;\n\n // update pointers to the down event's coordinates\n interaction.updatePointer(pointer);\n utils.setCoords(interaction.curCoords, interaction.pointers);\n\n // fire appropriate signals\n var signalArg = { interaction: interaction };\n Interaction.signals.fire('before-action-move', signalArg);\n Interaction.signals.fire('action-resume', signalArg);\n\n // fire a reume event\n var resumeEvent = new InteractEvent(interaction, event, interaction.prepared.name, 'inertiaresume', interaction.element);\n\n interaction.target.fire(resumeEvent);\n interaction.prevEvent = resumeEvent;\n modifiers.resetStatuses(interaction.modifierStatuses);\n\n utils.copyCoords(interaction.prevCoords, interaction.curCoords);\n break;\n }\n\n element = utils.parentNode(element);\n }\n }\n});\n\nInteraction.signals.on('up', function (_ref2) {\n var interaction = _ref2.interaction,\n event = _ref2.event;\n\n var status = interaction.inertiaStatus;\n\n if (!interaction.interacting() || status.active) {\n return;\n }\n\n var target = interaction.target;\n var options = target && target.options;\n var inertiaOptions = options && interaction.prepared.name && options[interaction.prepared.name].inertia;\n\n var now = new Date().getTime();\n var statuses = {};\n var page = utils.extend({}, interaction.curCoords.page);\n var pointerSpeed = interaction.pointerDelta.client.speed;\n\n var smoothEnd = false;\n var modifierResult = void 0;\n\n // check if inertia should be started\n var inertiaPossible = inertiaOptions && inertiaOptions.enabled && interaction.prepared.name !== 'gesture' && event !== status.startEvent;\n\n var inertia = inertiaPossible && now - interaction.curCoords.timeStamp < 50 && pointerSpeed > inertiaOptions.minSpeed && pointerSpeed > inertiaOptions.endSpeed;\n\n var modifierArg = {\n interaction: interaction,\n pageCoords: page,\n statuses: statuses,\n preEnd: true,\n requireEndOnly: true\n };\n\n // smoothEnd\n if (inertiaPossible && !inertia) {\n modifiers.resetStatuses(statuses);\n\n modifierResult = modifiers.setAll(modifierArg);\n\n if (modifierResult.shouldMove && modifierResult.locked) {\n smoothEnd = true;\n }\n }\n\n if (!(inertia || smoothEnd)) {\n return;\n }\n\n utils.copyCoords(status.upCoords, interaction.curCoords);\n\n interaction.pointers[0] = status.startEvent = new InteractEvent(interaction, event, interaction.prepared.name, 'inertiastart', interaction.element);\n\n status.t0 = now;\n\n status.active = true;\n status.allowResume = inertiaOptions.allowResume;\n interaction.simulation = status;\n\n target.fire(status.startEvent);\n\n if (inertia) {\n status.vx0 = interaction.pointerDelta.client.vx;\n status.vy0 = interaction.pointerDelta.client.vy;\n status.v0 = pointerSpeed;\n\n calcInertia(interaction, status);\n\n utils.extend(page, interaction.curCoords.page);\n\n page.x += status.xe;\n page.y += status.ye;\n\n modifiers.resetStatuses(statuses);\n\n modifierResult = modifiers.setAll(modifierArg);\n\n status.modifiedXe += modifierResult.dx;\n status.modifiedYe += modifierResult.dy;\n\n status.i = animationFrame.request(interaction.boundInertiaFrame);\n } else {\n status.smoothEnd = true;\n status.xe = modifierResult.dx;\n status.ye = modifierResult.dy;\n\n status.sx = status.sy = 0;\n\n status.i = animationFrame.request(interaction.boundSmoothEndFrame);\n }\n});\n\nInteraction.signals.on('stop-active', function (_ref3) {\n var interaction = _ref3.interaction;\n\n var status = interaction.inertiaStatus;\n\n if (status.active) {\n animationFrame.cancel(status.i);\n status.active = false;\n interaction.simulation = null;\n }\n});\n\nfunction calcInertia(interaction, status) {\n var inertiaOptions = interaction.target.options[interaction.prepared.name].inertia;\n var lambda = inertiaOptions.resistance;\n var inertiaDur = -Math.log(inertiaOptions.endSpeed / status.v0) / lambda;\n\n status.x0 = interaction.prevEvent.pageX;\n status.y0 = interaction.prevEvent.pageY;\n status.t0 = status.startEvent.timeStamp / 1000;\n status.sx = status.sy = 0;\n\n status.modifiedXe = status.xe = (status.vx0 - inertiaDur) / lambda;\n status.modifiedYe = status.ye = (status.vy0 - inertiaDur) / lambda;\n status.te = inertiaDur;\n\n status.lambda_v0 = lambda / status.v0;\n status.one_ve_v0 = 1 - inertiaOptions.endSpeed / status.v0;\n}\n\nfunction inertiaFrame() {\n updateInertiaCoords(this);\n utils.setCoordDeltas(this.pointerDelta, this.prevCoords, this.curCoords);\n\n var status = this.inertiaStatus;\n var options = this.target.options[this.prepared.name].inertia;\n var lambda = options.resistance;\n var t = new Date().getTime() / 1000 - status.t0;\n\n if (t < status.te) {\n\n var progress = 1 - (Math.exp(-lambda * t) - status.lambda_v0) / status.one_ve_v0;\n\n if (status.modifiedXe === status.xe && status.modifiedYe === status.ye) {\n status.sx = status.xe * progress;\n status.sy = status.ye * progress;\n } else {\n var quadPoint = utils.getQuadraticCurvePoint(0, 0, status.xe, status.ye, status.modifiedXe, status.modifiedYe, progress);\n\n status.sx = quadPoint.x;\n status.sy = quadPoint.y;\n }\n\n this.doMove();\n\n status.i = animationFrame.request(this.boundInertiaFrame);\n } else {\n status.sx = status.modifiedXe;\n status.sy = status.modifiedYe;\n\n this.doMove();\n this.end(status.startEvent);\n status.active = false;\n this.simulation = null;\n }\n\n utils.copyCoords(this.prevCoords, this.curCoords);\n}\n\nfunction smoothEndFrame() {\n updateInertiaCoords(this);\n\n var status = this.inertiaStatus;\n var t = new Date().getTime() - status.t0;\n var duration = this.target.options[this.prepared.name].inertia.smoothEndDuration;\n\n if (t < duration) {\n status.sx = utils.easeOutQuad(t, 0, status.xe, duration);\n status.sy = utils.easeOutQuad(t, 0, status.ye, duration);\n\n this.pointerMove(status.startEvent, status.startEvent);\n\n status.i = animationFrame.request(this.boundSmoothEndFrame);\n } else {\n status.sx = status.xe;\n status.sy = status.ye;\n\n this.pointerMove(status.startEvent, status.startEvent);\n this.end(status.startEvent);\n\n status.smoothEnd = status.active = false;\n this.simulation = null;\n }\n}\n\nfunction updateInertiaCoords(interaction) {\n var status = interaction.inertiaStatus;\n\n // return if inertia isn't running\n if (!status.active) {\n return;\n }\n\n var pageUp = status.upCoords.page;\n var clientUp = status.upCoords.client;\n\n utils.setCoords(interaction.curCoords, [{\n pageX: pageUp.x + status.sx,\n pageY: pageUp.y + status.sy,\n clientX: clientUp.x + status.sx,\n clientY: clientUp.y + status.sy\n }]);\n}\n\n},{\"./InteractEvent\":3,\"./Interaction\":5,\"./modifiers/base\":23,\"./utils\":44,\"./utils/raf\":50}],21:[function(require,module,exports){\n'use strict';\n\n/** @module interact */\n\nvar browser = require('./utils/browser');\nvar events = require('./utils/events');\nvar utils = require('./utils');\nvar scope = require('./scope');\nvar Interactable = require('./Interactable');\nvar Interaction = require('./Interaction');\n\nvar globalEvents = {};\n\n/**\n * ```js\n * interact('#draggable').draggable(true);\n *\n * var rectables = interact('rect');\n * rectables\n * .gesturable(true)\n * .on('gesturemove', function (event) {\n * // ...\n * });\n * ```\n *\n * The methods of this variable can be used to set elements as interactables\n * and also to change various default settings.\n *\n * Calling it as a function and passing an element or a valid CSS selector\n * string returns an Interactable object which has various methods to configure\n * it.\n *\n * @global\n *\n * @param {Element | string} element The HTML or SVG Element to interact with\n * or CSS selector\n * @return {Interactable}\n */\nfunction interact(element, options) {\n var interactable = scope.interactables.get(element, options);\n\n if (!interactable) {\n interactable = new Interactable(element, options);\n interactable.events.global = globalEvents;\n }\n\n return interactable;\n}\n\n/**\n * Check if an element or selector has been set with the {@link interact}\n * function\n *\n * @alias module:interact.isSet\n *\n * @param {Element} element The Element being searched for\n * @return {boolean} Indicates if the element or CSS selector was previously\n * passed to interact\n*/\ninteract.isSet = function (element, options) {\n return scope.interactables.indexOfElement(element, options && options.context) !== -1;\n};\n\n/**\n * Add a global listener for an InteractEvent or adds a DOM event to `document`\n *\n * @alias module:interact.on\n *\n * @param {string | array | object} type The types of events to listen for\n * @param {function} listener The function event (s)\n * @param {object | boolean} [options] object or useCapture flag for\n * addEventListener\n * @return {object} interact\n */\ninteract.on = function (type, listener, options) {\n if (utils.is.string(type) && type.search(' ') !== -1) {\n type = type.trim().split(/ +/);\n }\n\n if (utils.is.array(type)) {\n for (var _i = 0; _i < type.length; _i++) {\n var _ref;\n\n _ref = type[_i];\n var eventType = _ref;\n\n interact.on(eventType, listener, options);\n }\n\n return interact;\n }\n\n if (utils.is.object(type)) {\n for (var prop in type) {\n interact.on(prop, type[prop], listener);\n }\n\n return interact;\n }\n\n // if it is an InteractEvent type, add listener to globalEvents\n if (utils.contains(Interactable.eventTypes, type)) {\n // if this type of event was never bound\n if (!globalEvents[type]) {\n globalEvents[type] = [listener];\n } else {\n globalEvents[type].push(listener);\n }\n }\n // If non InteractEvent type, addEventListener to document\n else {\n events.add(scope.document, type, listener, { options: options });\n }\n\n return interact;\n};\n\n/**\n * Removes a global InteractEvent listener or DOM event from `document`\n *\n * @alias module:interact.off\n *\n * @param {string | array | object} type The types of events that were listened\n * for\n * @param {function} listener The listener function to be removed\n * @param {object | boolean} options [options] object or useCapture flag for\n * removeEventListener\n * @return {object} interact\n */\ninteract.off = function (type, listener, options) {\n if (utils.is.string(type) && type.search(' ') !== -1) {\n type = type.trim().split(/ +/);\n }\n\n if (utils.is.array(type)) {\n for (var _i2 = 0; _i2 < type.length; _i2++) {\n var _ref2;\n\n _ref2 = type[_i2];\n var eventType = _ref2;\n\n interact.off(eventType, listener, options);\n }\n\n return interact;\n }\n\n if (utils.is.object(type)) {\n for (var prop in type) {\n interact.off(prop, type[prop], listener);\n }\n\n return interact;\n }\n\n if (!utils.contains(Interactable.eventTypes, type)) {\n events.remove(scope.document, type, listener, options);\n } else {\n var index = void 0;\n\n if (type in globalEvents && (index = globalEvents[type].indexOf(listener)) !== -1) {\n globalEvents[type].splice(index, 1);\n }\n }\n\n return interact;\n};\n\n/**\n * Returns an object which exposes internal data\n\n * @alias module:interact.debug\n *\n * @return {object} An object with properties that outline the current state\n * and expose internal functions and variables\n */\ninteract.debug = function () {\n return scope;\n};\n\n// expose the functions used to calculate multi-touch properties\ninteract.getPointerAverage = utils.pointerAverage;\ninteract.getTouchBBox = utils.touchBBox;\ninteract.getTouchDistance = utils.touchDistance;\ninteract.getTouchAngle = utils.touchAngle;\n\ninteract.getElementRect = utils.getElementRect;\ninteract.getElementClientRect = utils.getElementClientRect;\ninteract.matchesSelector = utils.matchesSelector;\ninteract.closest = utils.closest;\n\n/**\n * @alias module:interact.supportsTouch\n *\n * @return {boolean} Whether or not the browser supports touch input\n */\ninteract.supportsTouch = function () {\n return browser.supportsTouch;\n};\n\n/**\n * @alias module:interact.supportsPointerEvent\n *\n * @return {boolean} Whether or not the browser supports PointerEvents\n */\ninteract.supportsPointerEvent = function () {\n return browser.supportsPointerEvent;\n};\n\n/**\n * Cancels all interactions (end events are not fired)\n *\n * @alias module:interact.stop\n *\n * @param {Event} event An event on which to call preventDefault()\n * @return {object} interact\n */\ninteract.stop = function (event) {\n for (var i = scope.interactions.length - 1; i >= 0; i--) {\n scope.interactions[i].stop(event);\n }\n\n return interact;\n};\n\n/**\n * Returns or sets the distance the pointer must be moved before an action\n * sequence occurs. This also affects tolerance for tap events.\n *\n * @alias module:interact.pointerMoveTolerance\n *\n * @param {number} [newValue] The movement from the start position must be greater than this value\n * @return {interact | number}\n */\ninteract.pointerMoveTolerance = function (newValue) {\n if (utils.is.number(newValue)) {\n Interaction.pointerMoveTolerance = newValue;\n\n return interact;\n }\n\n return Interaction.pointerMoveTolerance;\n};\n\ninteract.addDocument = scope.addDocument;\ninteract.removeDocument = scope.removeDocument;\n\nscope.interact = interact;\n\nmodule.exports = interact;\n\n},{\"./Interactable\":4,\"./Interaction\":5,\"./scope\":33,\"./utils\":44,\"./utils/browser\":36,\"./utils/events\":40}],22:[function(require,module,exports){\n'use strict';\n\nvar Interactable = require('./Interactable');\nvar Interaction = require('./Interaction');\nvar scope = require('./scope');\nvar is = require('./utils/is');\nvar events = require('./utils/events');\nvar browser = require('./utils/browser');\n\nvar _require = require('./utils/domUtils'),\n nodeContains = _require.nodeContains,\n matchesSelector = _require.matchesSelector;\n\n/**\n * Returns or sets whether to prevent the browser's default behaviour in\n * response to pointer events. Can be set to:\n * - `'always'` to always prevent\n * - `'never'` to never prevent\n * - `'auto'` to let interact.js try to determine what would be best\n *\n * @param {string} [newValue] `true`, `false` or `'auto'`\n * @return {string | Interactable} The current setting or this Interactable\n */\n\n\nInteractable.prototype.preventDefault = function (newValue) {\n if (/^(always|never|auto)$/.test(newValue)) {\n this.options.preventDefault = newValue;\n return this;\n }\n\n if (is.bool(newValue)) {\n this.options.preventDefault = newValue ? 'always' : 'never';\n return this;\n }\n\n return this.options.preventDefault;\n};\n\nInteractable.prototype.checkAndPreventDefault = function (event) {\n var setting = this.options.preventDefault;\n\n if (setting === 'never') {\n return;\n }\n\n if (setting === 'always') {\n event.preventDefault();\n return;\n }\n\n // setting === 'auto'\n\n // don't preventDefault of touch{start,move} events if the browser supports passive\n // events listeners. CSS touch-action and user-selecct should be used instead\n if (events.supportsPassive && /^touch(start|move)$/.test(event.type) && !browser.isIOS) {\n return;\n }\n\n // don't preventDefault of pointerdown events\n if (/^(mouse|pointer|touch)*(down|start)/i.test(event.type)) {\n return;\n }\n\n // don't preventDefault on editable elements\n if (is.element(event.target) && matchesSelector(event.target, 'input,select,textarea,[contenteditable=true],[contenteditable=true] *')) {\n return;\n }\n\n event.preventDefault();\n};\n\nfunction onInteractionEvent(_ref) {\n var interaction = _ref.interaction,\n event = _ref.event;\n\n if (interaction.target) {\n interaction.target.checkAndPreventDefault(event);\n }\n}\n\nvar _arr = ['down', 'move', 'up', 'cancel'];\nfor (var _i = 0; _i < _arr.length; _i++) {\n var eventSignal = _arr[_i];\n Interaction.signals.on(eventSignal, onInteractionEvent);\n}\n\n// prevent native HTML5 drag on interact.js target elements\nInteraction.docEvents.dragstart = function preventNativeDrag(event) {\n for (var _i2 = 0; _i2 < scope.interactions.length; _i2++) {\n var _ref2;\n\n _ref2 = scope.interactions[_i2];\n var interaction = _ref2;\n\n\n if (interaction.element && (interaction.element === event.target || nodeContains(interaction.element, event.target))) {\n\n interaction.target.checkAndPreventDefault(event);\n return;\n }\n }\n};\n\n},{\"./Interactable\":4,\"./Interaction\":5,\"./scope\":33,\"./utils/browser\":36,\"./utils/domUtils\":39,\"./utils/events\":40,\"./utils/is\":46}],23:[function(require,module,exports){\n'use strict';\n\nvar InteractEvent = require('../InteractEvent');\nvar Interaction = require('../Interaction');\nvar extend = require('../utils/extend');\n\nvar modifiers = {\n names: [],\n\n setOffsets: function setOffsets(arg) {\n var interaction = arg.interaction,\n page = arg.pageCoords;\n var target = interaction.target,\n element = interaction.element,\n startOffset = interaction.startOffset;\n\n var rect = target.getRect(element);\n\n if (rect) {\n startOffset.left = page.x - rect.left;\n startOffset.top = page.y - rect.top;\n\n startOffset.right = rect.right - page.x;\n startOffset.bottom = rect.bottom - page.y;\n\n if (!('width' in rect)) {\n rect.width = rect.right - rect.left;\n }\n if (!('height' in rect)) {\n rect.height = rect.bottom - rect.top;\n }\n } else {\n startOffset.left = startOffset.top = startOffset.right = startOffset.bottom = 0;\n }\n\n arg.rect = rect;\n arg.interactable = target;\n arg.element = element;\n\n for (var _i = 0; _i < modifiers.names.length; _i++) {\n var _ref;\n\n _ref = modifiers.names[_i];\n var modifierName = _ref;\n\n arg.options = target.options[interaction.prepared.name][modifierName];\n\n if (!arg.options) {\n continue;\n }\n\n interaction.modifierOffsets[modifierName] = modifiers[modifierName].setOffset(arg);\n }\n },\n\n setAll: function setAll(arg) {\n var interaction = arg.interaction,\n statuses = arg.statuses,\n preEnd = arg.preEnd,\n requireEndOnly = arg.requireEndOnly;\n\n var result = {\n dx: 0,\n dy: 0,\n changed: false,\n locked: false,\n shouldMove: true\n };\n\n arg.modifiedCoords = extend({}, arg.pageCoords);\n\n for (var _i2 = 0; _i2 < modifiers.names.length; _i2++) {\n var _ref2;\n\n _ref2 = modifiers.names[_i2];\n var modifierName = _ref2;\n\n var modifier = modifiers[modifierName];\n var options = interaction.target.options[interaction.prepared.name][modifierName];\n\n if (!shouldDo(options, preEnd, requireEndOnly)) {\n continue;\n }\n\n arg.status = arg.status = statuses[modifierName];\n arg.options = options;\n arg.offset = arg.interaction.modifierOffsets[modifierName];\n\n modifier.set(arg);\n\n if (arg.status.locked) {\n arg.modifiedCoords.x += arg.status.dx;\n arg.modifiedCoords.y += arg.status.dy;\n\n result.dx += arg.status.dx;\n result.dy += arg.status.dy;\n\n result.locked = true;\n }\n }\n\n // a move should be fired if:\n // - there are no modifiers enabled,\n // - no modifiers are \"locked\" i.e. have changed the pointer's coordinates, or\n // - the locked coords have changed since the last pointer move\n result.shouldMove = !arg.status || !result.locked || arg.status.changed;\n\n return result;\n },\n\n resetStatuses: function resetStatuses(statuses) {\n for (var _i3 = 0; _i3 < modifiers.names.length; _i3++) {\n var _ref3;\n\n _ref3 = modifiers.names[_i3];\n var modifierName = _ref3;\n\n var status = statuses[modifierName] || {};\n\n status.dx = status.dy = 0;\n status.modifiedX = status.modifiedY = NaN;\n status.locked = false;\n status.changed = true;\n\n statuses[modifierName] = status;\n }\n\n return statuses;\n },\n\n start: function start(_ref4, signalName) {\n var interaction = _ref4.interaction;\n\n var arg = {\n interaction: interaction,\n pageCoords: (signalName === 'action-resume' ? interaction.curCoords : interaction.startCoords).page,\n startOffset: interaction.startOffset,\n statuses: interaction.modifierStatuses,\n preEnd: false,\n requireEndOnly: false\n };\n\n modifiers.setOffsets(arg);\n modifiers.resetStatuses(arg.statuses);\n\n arg.pageCoords = extend({}, interaction.startCoords.page);\n interaction.modifierResult = modifiers.setAll(arg);\n },\n\n beforeMove: function beforeMove(_ref5) {\n var interaction = _ref5.interaction,\n preEnd = _ref5.preEnd,\n interactingBeforeMove = _ref5.interactingBeforeMove;\n\n var modifierResult = modifiers.setAll({\n interaction: interaction,\n preEnd: preEnd,\n pageCoords: interaction.curCoords.page,\n statuses: interaction.modifierStatuses,\n requireEndOnly: false\n });\n\n // don't fire an action move if a modifier would keep the event in the same\n // cordinates as before\n if (!modifierResult.shouldMove && interactingBeforeMove) {\n interaction._dontFireMove = true;\n }\n\n interaction.modifierResult = modifierResult;\n },\n\n end: function end(_ref6) {\n var interaction = _ref6.interaction,\n event = _ref6.event;\n\n for (var _i4 = 0; _i4 < modifiers.names.length; _i4++) {\n var _ref7;\n\n _ref7 = modifiers.names[_i4];\n var modifierName = _ref7;\n\n var options = interaction.target.options[interaction.prepared.name][modifierName];\n\n // if the endOnly option is true for any modifier\n if (shouldDo(options, true, true)) {\n // fire a move event at the modified coordinates\n interaction.doMove({ event: event, preEnd: true });\n break;\n }\n }\n },\n\n setXY: function setXY(arg) {\n var iEvent = arg.iEvent,\n interaction = arg.interaction;\n\n var modifierArg = extend({}, arg);\n\n for (var i = 0; i < modifiers.names.length; i++) {\n var modifierName = modifiers.names[i];\n modifierArg.options = interaction.target.options[interaction.prepared.name][modifierName];\n\n if (!modifierArg.options) {\n continue;\n }\n\n var modifier = modifiers[modifierName];\n\n modifierArg.status = interaction.modifierStatuses[modifierName];\n\n iEvent[modifierName] = modifier.modifyCoords(modifierArg);\n }\n }\n};\n\nInteraction.signals.on('new', function (interaction) {\n interaction.startOffset = { left: 0, right: 0, top: 0, bottom: 0 };\n interaction.modifierOffsets = {};\n interaction.modifierStatuses = modifiers.resetStatuses({});\n interaction.modifierResult = null;\n});\n\nInteraction.signals.on('action-start', modifiers.start);\nInteraction.signals.on('action-resume', modifiers.start);\nInteraction.signals.on('before-action-move', modifiers.beforeMove);\nInteraction.signals.on('action-end', modifiers.end);\n\nInteractEvent.signals.on('set-xy', modifiers.setXY);\n\nfunction shouldDo(options, preEnd, requireEndOnly) {\n return options && options.enabled && (preEnd || !options.endOnly) && (!requireEndOnly || options.endOnly);\n}\n\nmodule.exports = modifiers;\n\n},{\"../InteractEvent\":3,\"../Interaction\":5,\"../utils/extend\":41}],24:[function(require,module,exports){\n'use strict';\n\nvar modifiers = require('./base');\nvar utils = require('../utils');\nvar defaultOptions = require('../defaultOptions');\n\nvar restrict = {\n defaults: {\n enabled: false,\n endOnly: false,\n restriction: null,\n elementRect: null\n },\n\n setOffset: function setOffset(_ref) {\n var rect = _ref.rect,\n startOffset = _ref.startOffset,\n options = _ref.options;\n\n var elementRect = options && options.elementRect;\n var offset = {};\n\n if (rect && elementRect) {\n offset.left = startOffset.left - rect.width * elementRect.left;\n offset.top = startOffset.top - rect.height * elementRect.top;\n\n offset.right = startOffset.right - rect.width * (1 - elementRect.right);\n offset.bottom = startOffset.bottom - rect.height * (1 - elementRect.bottom);\n } else {\n offset.left = offset.top = offset.right = offset.bottom = 0;\n }\n\n return offset;\n },\n\n set: function set(_ref2) {\n var modifiedCoords = _ref2.modifiedCoords,\n interaction = _ref2.interaction,\n status = _ref2.status,\n options = _ref2.options;\n\n if (!options) {\n return status;\n }\n\n var page = status.useStatusXY ? { x: status.x, y: status.y } : utils.extend({}, modifiedCoords);\n\n var restriction = getRestrictionRect(options.restriction, interaction, page);\n\n if (!restriction) {\n return status;\n }\n\n status.dx = 0;\n status.dy = 0;\n status.locked = false;\n\n var rect = restriction;\n var modifiedX = page.x;\n var modifiedY = page.y;\n\n var offset = interaction.modifierOffsets.restrict;\n\n // object is assumed to have\n // x, y, width, height or\n // left, top, right, bottom\n if ('x' in restriction && 'y' in restriction) {\n modifiedX = Math.max(Math.min(rect.x + rect.width - offset.right, page.x), rect.x + offset.left);\n modifiedY = Math.max(Math.min(rect.y + rect.height - offset.bottom, page.y), rect.y + offset.top);\n } else {\n modifiedX = Math.max(Math.min(rect.right - offset.right, page.x), rect.left + offset.left);\n modifiedY = Math.max(Math.min(rect.bottom - offset.bottom, page.y), rect.top + offset.top);\n }\n\n status.dx = modifiedX - page.x;\n status.dy = modifiedY - page.y;\n\n status.changed = status.modifiedX !== modifiedX || status.modifiedY !== modifiedY;\n status.locked = !!(status.dx || status.dy);\n\n status.modifiedX = modifiedX;\n status.modifiedY = modifiedY;\n },\n\n modifyCoords: function modifyCoords(_ref3) {\n var page = _ref3.page,\n client = _ref3.client,\n status = _ref3.status,\n phase = _ref3.phase,\n options = _ref3.options;\n\n var elementRect = options && options.elementRect;\n\n if (options && options.enabled && !(phase === 'start' && elementRect && status.locked)) {\n\n if (status.locked) {\n page.x += status.dx;\n page.y += status.dy;\n client.x += status.dx;\n client.y += status.dy;\n\n return {\n dx: status.dx,\n dy: status.dy\n };\n }\n }\n },\n\n getRestrictionRect: getRestrictionRect\n};\n\nfunction getRestrictionRect(value, interaction, page) {\n if (utils.is.function(value)) {\n return utils.resolveRectLike(value, interaction.target, interaction.element, [page.x, page.y, interaction]);\n } else {\n return utils.resolveRectLike(value, interaction.target, interaction.element);\n }\n}\n\nmodifiers.restrict = restrict;\nmodifiers.names.push('restrict');\n\ndefaultOptions.perAction.restrict = restrict.defaults;\n\nmodule.exports = restrict;\n\n},{\"../defaultOptions\":18,\"../utils\":44,\"./base\":23}],25:[function(require,module,exports){\n'use strict';\n\n// This module adds the options.resize.restrictEdges setting which sets min and\n// max for the top, left, bottom and right edges of the target being resized.\n//\n// interact(target).resize({\n// edges: { top: true, left: true },\n// restrictEdges: {\n// inner: { top: 200, left: 200, right: 400, bottom: 400 },\n// outer: { top: 0, left: 0, right: 600, bottom: 600 },\n// },\n// });\n\nvar modifiers = require('./base');\nvar utils = require('../utils');\nvar rectUtils = require('../utils/rect');\nvar defaultOptions = require('../defaultOptions');\nvar resize = require('../actions/resize');\n\nvar _require = require('./restrict'),\n getRestrictionRect = _require.getRestrictionRect;\n\nvar noInner = { top: +Infinity, left: +Infinity, bottom: -Infinity, right: -Infinity };\nvar noOuter = { top: -Infinity, left: -Infinity, bottom: +Infinity, right: +Infinity };\n\nvar restrictEdges = {\n defaults: {\n enabled: false,\n endOnly: false,\n min: null,\n max: null,\n offset: null\n },\n\n setOffset: function setOffset(_ref) {\n var interaction = _ref.interaction,\n startOffset = _ref.startOffset,\n options = _ref.options;\n\n if (!options) {\n return utils.extend({}, startOffset);\n }\n\n var offset = getRestrictionRect(options.offset, interaction, interaction.startCoords.page);\n\n if (offset) {\n return {\n top: startOffset.top + offset.y,\n left: startOffset.left + offset.x,\n bottom: startOffset.bottom + offset.y,\n right: startOffset.right + offset.x\n };\n }\n\n return startOffset;\n },\n\n set: function set(_ref2) {\n var modifiedCoords = _ref2.modifiedCoords,\n interaction = _ref2.interaction,\n status = _ref2.status,\n offset = _ref2.offset,\n options = _ref2.options;\n\n var edges = interaction.prepared.linkedEdges || interaction.prepared.edges;\n\n if (!interaction.interacting() || !edges) {\n return;\n }\n\n var page = status.useStatusXY ? { x: status.x, y: status.y } : utils.extend({}, modifiedCoords);\n var inner = rectUtils.xywhToTlbr(getRestrictionRect(options.inner, interaction, page)) || noInner;\n var outer = rectUtils.xywhToTlbr(getRestrictionRect(options.outer, interaction, page)) || noOuter;\n\n var modifiedX = page.x;\n var modifiedY = page.y;\n\n status.dx = 0;\n status.dy = 0;\n status.locked = false;\n\n if (edges.top) {\n modifiedY = Math.min(Math.max(outer.top + offset.top, page.y), inner.top + offset.top);\n } else if (edges.bottom) {\n modifiedY = Math.max(Math.min(outer.bottom - offset.bottom, page.y), inner.bottom - offset.bottom);\n }\n if (edges.left) {\n modifiedX = Math.min(Math.max(outer.left + offset.left, page.x), inner.left + offset.left);\n } else if (edges.right) {\n modifiedX = Math.max(Math.min(outer.right - offset.right, page.x), inner.right - offset.right);\n }\n\n status.dx = modifiedX - page.x;\n status.dy = modifiedY - page.y;\n\n status.changed = status.modifiedX !== modifiedX || status.modifiedY !== modifiedY;\n status.locked = !!(status.dx || status.dy);\n\n status.modifiedX = modifiedX;\n status.modifiedY = modifiedY;\n },\n\n modifyCoords: function modifyCoords(_ref3) {\n var page = _ref3.page,\n client = _ref3.client,\n status = _ref3.status,\n phase = _ref3.phase,\n options = _ref3.options;\n\n if (options && options.enabled && !(phase === 'start' && status.locked)) {\n\n if (status.locked) {\n page.x += status.dx;\n page.y += status.dy;\n client.x += status.dx;\n client.y += status.dy;\n\n return {\n dx: status.dx,\n dy: status.dy\n };\n }\n }\n },\n\n noInner: noInner,\n noOuter: noOuter,\n getRestrictionRect: getRestrictionRect\n};\n\nmodifiers.restrictEdges = restrictEdges;\nmodifiers.names.push('restrictEdges');\n\ndefaultOptions.perAction.restrictEdges = restrictEdges.defaults;\nresize.defaults.restrictEdges = restrictEdges.defaults;\n\nmodule.exports = restrictEdges;\n\n},{\"../actions/resize\":10,\"../defaultOptions\":18,\"../utils\":44,\"../utils/rect\":51,\"./base\":23,\"./restrict\":24}],26:[function(require,module,exports){\n'use strict';\n\n// This module adds the options.resize.restrictSize setting which sets min and\n// max width and height for the target being resized.\n//\n// interact(target).resize({\n// edges: { top: true, left: true },\n// restrictSize: {\n// min: { width: -600, height: -600 },\n// max: { width: 600, height: 600 },\n// },\n// });\n\nvar modifiers = require('./base');\nvar restrictEdges = require('./restrictEdges');\nvar utils = require('../utils');\nvar rectUtils = require('../utils/rect');\nvar defaultOptions = require('../defaultOptions');\nvar resize = require('../actions/resize');\n\nvar noMin = { width: -Infinity, height: -Infinity };\nvar noMax = { width: +Infinity, height: +Infinity };\n\nvar restrictSize = {\n defaults: {\n enabled: false,\n endOnly: false,\n min: null,\n max: null\n },\n\n setOffset: function setOffset(_ref) {\n var interaction = _ref.interaction;\n\n return interaction.startOffset;\n },\n\n set: function set(arg) {\n var interaction = arg.interaction,\n options = arg.options;\n\n var edges = interaction.prepared.linkedEdges || interaction.prepared.edges;\n\n if (!interaction.interacting() || !edges) {\n return;\n }\n\n var rect = rectUtils.xywhToTlbr(interaction.resizeRects.inverted);\n\n var minSize = rectUtils.tlbrToXywh(restrictEdges.getRestrictionRect(options.min, interaction)) || noMin;\n var maxSize = rectUtils.tlbrToXywh(restrictEdges.getRestrictionRect(options.max, interaction)) || noMax;\n\n arg.options = {\n enabled: options.enabled,\n endOnly: options.endOnly,\n inner: utils.extend({}, restrictEdges.noInner),\n outer: utils.extend({}, restrictEdges.noOuter)\n };\n\n if (edges.top) {\n arg.options.inner.top = rect.bottom - minSize.height;\n arg.options.outer.top = rect.bottom - maxSize.height;\n } else if (edges.bottom) {\n arg.options.inner.bottom = rect.top + minSize.height;\n arg.options.outer.bottom = rect.top + maxSize.height;\n }\n if (edges.left) {\n arg.options.inner.left = rect.right - minSize.width;\n arg.options.outer.left = rect.right - maxSize.width;\n } else if (edges.right) {\n arg.options.inner.right = rect.left + minSize.width;\n arg.options.outer.right = rect.left + maxSize.width;\n }\n\n restrictEdges.set(arg);\n },\n\n modifyCoords: restrictEdges.modifyCoords\n};\n\nmodifiers.restrictSize = restrictSize;\nmodifiers.names.push('restrictSize');\n\ndefaultOptions.perAction.restrictSize = restrictSize.defaults;\nresize.defaults.restrictSize = restrictSize.defaults;\n\nmodule.exports = restrictSize;\n\n},{\"../actions/resize\":10,\"../defaultOptions\":18,\"../utils\":44,\"../utils/rect\":51,\"./base\":23,\"./restrictEdges\":25}],27:[function(require,module,exports){\n'use strict';\n\nvar modifiers = require('./base');\nvar interact = require('../interact');\nvar utils = require('../utils');\nvar defaultOptions = require('../defaultOptions');\n\nvar snap = {\n defaults: {\n enabled: false,\n endOnly: false,\n range: Infinity,\n targets: null,\n offsets: null,\n\n relativePoints: null\n },\n\n setOffset: function setOffset(_ref) {\n var interaction = _ref.interaction,\n interactable = _ref.interactable,\n element = _ref.element,\n rect = _ref.rect,\n startOffset = _ref.startOffset,\n options = _ref.options;\n\n var offsets = [];\n var optionsOrigin = utils.rectToXY(utils.resolveRectLike(options.origin));\n var origin = optionsOrigin || utils.getOriginXY(interactable, element, interaction.prepared.name);\n options = options || interactable.options[interaction.prepared.name].snap || {};\n\n var snapOffset = void 0;\n\n if (options.offset === 'startCoords') {\n snapOffset = {\n x: interaction.startCoords.page.x - origin.x,\n y: interaction.startCoords.page.y - origin.y\n };\n } else {\n var offsetRect = utils.resolveRectLike(options.offset, interactable, element, [interaction]);\n\n snapOffset = utils.rectToXY(offsetRect) || { x: 0, y: 0 };\n }\n\n if (rect && options.relativePoints && options.relativePoints.length) {\n for (var _i = 0; _i < options.relativePoints.length; _i++) {\n var _ref3;\n\n _ref3 = options.relativePoints[_i];\n var _ref2 = _ref3;\n var relativeX = _ref2.x;\n var relativeY = _ref2.y;\n\n offsets.push({\n x: startOffset.left - rect.width * relativeX + snapOffset.x,\n y: startOffset.top - rect.height * relativeY + snapOffset.y\n });\n }\n } else {\n offsets.push(snapOffset);\n }\n\n return offsets;\n },\n\n set: function set(_ref4) {\n var interaction = _ref4.interaction,\n modifiedCoords = _ref4.modifiedCoords,\n status = _ref4.status,\n options = _ref4.options,\n offsets = _ref4.offset;\n\n var targets = [];\n var target = void 0;\n var page = void 0;\n var i = void 0;\n\n if (status.useStatusXY) {\n page = { x: status.x, y: status.y };\n } else {\n var origin = utils.getOriginXY(interaction.target, interaction.element, interaction.prepared.name);\n\n page = utils.extend({}, modifiedCoords);\n\n page.x -= origin.x;\n page.y -= origin.y;\n }\n\n status.realX = page.x;\n status.realY = page.y;\n\n var len = options.targets ? options.targets.length : 0;\n\n for (var _i2 = 0; _i2 < offsets.length; _i2++) {\n var _ref6;\n\n _ref6 = offsets[_i2];\n var _ref5 = _ref6;\n var offsetX = _ref5.x;\n var offsetY = _ref5.y;\n\n var relativeX = page.x - offsetX;\n var relativeY = page.y - offsetY;\n\n for (var _i3 = 0; _i3 < (options.targets || []).length; _i3++) {\n var _ref7;\n\n _ref7 = (options.targets || [])[_i3];\n var snapTarget = _ref7;\n\n if (utils.is.function(snapTarget)) {\n target = snapTarget(relativeX, relativeY, interaction);\n } else {\n target = snapTarget;\n }\n\n if (!target) {\n continue;\n }\n\n targets.push({\n x: utils.is.number(target.x) ? target.x + offsetX : relativeX,\n y: utils.is.number(target.y) ? target.y + offsetY : relativeY,\n\n range: utils.is.number(target.range) ? target.range : options.range\n });\n }\n }\n\n var closest = {\n target: null,\n inRange: false,\n distance: 0,\n range: 0,\n dx: 0,\n dy: 0\n };\n\n for (i = 0, len = targets.length; i < len; i++) {\n target = targets[i];\n\n var range = target.range;\n var dx = target.x - page.x;\n var dy = target.y - page.y;\n var distance = utils.hypot(dx, dy);\n var inRange = distance <= range;\n\n // Infinite targets count as being out of range\n // compared to non infinite ones that are in range\n if (range === Infinity && closest.inRange && closest.range !== Infinity) {\n inRange = false;\n }\n\n if (!closest.target || (inRange\n // is the closest target in range?\n ? closest.inRange && range !== Infinity\n // the pointer is relatively deeper in this target\n ? distance / range < closest.distance / closest.range\n // this target has Infinite range and the closest doesn't\n : range === Infinity && closest.range !== Infinity ||\n // OR this target is closer that the previous closest\n distance < closest.distance :\n // The other is not in range and the pointer is closer to this target\n !closest.inRange && distance < closest.distance)) {\n\n closest.target = target;\n closest.distance = distance;\n closest.range = range;\n closest.inRange = inRange;\n closest.dx = dx;\n closest.dy = dy;\n\n status.range = range;\n }\n }\n\n var snapChanged = void 0;\n\n if (closest.target) {\n snapChanged = status.modifiedX !== closest.target.x || status.modifiedY !== closest.target.y;\n\n status.modifiedX = closest.target.x;\n status.modifiedY = closest.target.y;\n } else {\n snapChanged = true;\n\n status.modifiedX = NaN;\n status.modifiedY = NaN;\n }\n\n status.dx = closest.dx;\n status.dy = closest.dy;\n\n status.changed = snapChanged || closest.inRange && !status.locked;\n status.locked = closest.inRange;\n },\n\n modifyCoords: function modifyCoords(_ref8) {\n var page = _ref8.page,\n client = _ref8.client,\n status = _ref8.status,\n phase = _ref8.phase,\n options = _ref8.options;\n\n var relativePoints = options && options.relativePoints;\n\n if (options && options.enabled && !(phase === 'start' && relativePoints && relativePoints.length)) {\n\n if (status.locked) {\n page.x += status.dx;\n page.y += status.dy;\n client.x += status.dx;\n client.y += status.dy;\n }\n\n return {\n range: status.range,\n locked: status.locked,\n x: status.modifiedX,\n y: status.modifiedY,\n realX: status.realX,\n realY: status.realY,\n dx: status.dx,\n dy: status.dy\n };\n }\n }\n};\n\ninteract.createSnapGrid = function (grid) {\n return function (x, y) {\n var limits = grid.limits || {\n left: -Infinity,\n right: Infinity,\n top: -Infinity,\n bottom: Infinity\n };\n var offsetX = 0;\n var offsetY = 0;\n\n if (utils.is.object(grid.offset)) {\n offsetX = grid.offset.x;\n offsetY = grid.offset.y;\n }\n\n var gridx = Math.round((x - offsetX) / grid.x);\n var gridy = Math.round((y - offsetY) / grid.y);\n\n var newX = Math.max(limits.left, Math.min(limits.right, gridx * grid.x + offsetX));\n var newY = Math.max(limits.top, Math.min(limits.bottom, gridy * grid.y + offsetY));\n\n return {\n x: newX,\n y: newY,\n range: grid.range\n };\n };\n};\n\nmodifiers.snap = snap;\nmodifiers.names.push('snap');\n\ndefaultOptions.perAction.snap = snap.defaults;\n\nmodule.exports = snap;\n\n},{\"../defaultOptions\":18,\"../interact\":21,\"../utils\":44,\"./base\":23}],28:[function(require,module,exports){\n'use strict';\n\n// This module allows snapping of the size of targets during resize\n// interactions.\n\nvar modifiers = require('./base');\nvar snap = require('./snap');\nvar defaultOptions = require('../defaultOptions');\nvar resize = require('../actions/resize');\nvar utils = require('../utils/');\n\nvar snapSize = {\n defaults: {\n enabled: false,\n endOnly: false,\n range: Infinity,\n targets: null,\n offsets: null\n },\n\n setOffset: function setOffset(arg) {\n var interaction = arg.interaction,\n options = arg.options;\n\n var edges = interaction.prepared.edges;\n\n if (!edges) {\n return;\n }\n\n arg.options = {\n relativePoints: [{\n x: edges.left ? 0 : 1,\n y: edges.top ? 0 : 1\n }],\n origin: { x: 0, y: 0 },\n offset: 'self',\n range: options.range\n };\n\n var offsets = snap.setOffset(arg);\n arg.options = options;\n\n return offsets;\n },\n\n set: function set(arg) {\n var interaction = arg.interaction,\n options = arg.options,\n offset = arg.offset,\n modifiedCoords = arg.modifiedCoords;\n\n var page = utils.extend({}, modifiedCoords);\n var relativeX = page.x - offset[0].x;\n var relativeY = page.y - offset[0].y;\n\n arg.options = utils.extend({}, options);\n arg.options.targets = [];\n\n for (var _i = 0; _i < (options.targets || []).length; _i++) {\n var _ref;\n\n _ref = (options.targets || [])[_i];\n var snapTarget = _ref;\n\n var target = void 0;\n\n if (utils.is.function(snapTarget)) {\n target = snapTarget(relativeX, relativeY, interaction);\n } else {\n target = snapTarget;\n }\n\n if (!target) {\n continue;\n }\n\n if ('width' in target && 'height' in target) {\n target.x = target.width;\n target.y = target.height;\n }\n\n arg.options.targets.push(target);\n }\n\n snap.set(arg);\n },\n\n modifyCoords: function modifyCoords(arg) {\n var options = arg.options;\n\n\n arg.options = utils.extend({}, options);\n arg.options.enabled = options.enabled;\n arg.options.relativePoints = [null];\n\n snap.modifyCoords(arg);\n }\n};\n\nmodifiers.snapSize = snapSize;\nmodifiers.names.push('snapSize');\n\ndefaultOptions.perAction.snapSize = snapSize.defaults;\nresize.defaults.snapSize = snapSize.defaults;\n\nmodule.exports = snapSize;\n\n},{\"../actions/resize\":10,\"../defaultOptions\":18,\"../utils/\":44,\"./base\":23,\"./snap\":27}],29:[function(require,module,exports){\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar pointerUtils = require('../utils/pointerUtils');\n\nmodule.exports = function () {\n /** */\n function PointerEvent(type, pointer, event, eventTarget, interaction) {\n _classCallCheck(this, PointerEvent);\n\n pointerUtils.pointerExtend(this, event);\n\n if (event !== pointer) {\n pointerUtils.pointerExtend(this, pointer);\n }\n\n this.interaction = interaction;\n\n this.timeStamp = new Date().getTime();\n this.originalEvent = event;\n this.type = type;\n this.pointerId = pointerUtils.getPointerId(pointer);\n this.pointerType = pointerUtils.getPointerType(pointer);\n this.target = eventTarget;\n this.currentTarget = null;\n\n if (type === 'tap') {\n var pointerIndex = interaction.getPointerIndex(pointer);\n this.dt = this.timeStamp - interaction.downTimes[pointerIndex];\n\n var interval = this.timeStamp - interaction.tapTime;\n\n this.double = !!(interaction.prevTap && interaction.prevTap.type !== 'doubletap' && interaction.prevTap.target === this.target && interval < 500);\n } else if (type === 'doubletap') {\n this.dt = pointer.timeStamp - interaction.tapTime;\n }\n }\n\n PointerEvent.prototype.subtractOrigin = function subtractOrigin(_ref) {\n var originX = _ref.x,\n originY = _ref.y;\n\n this.pageX -= originX;\n this.pageY -= originY;\n this.clientX -= originX;\n this.clientY -= originY;\n\n return this;\n };\n\n PointerEvent.prototype.addOrigin = function addOrigin(_ref2) {\n var originX = _ref2.x,\n originY = _ref2.y;\n\n this.pageX += originX;\n this.pageY += originY;\n this.clientX += originX;\n this.clientY += originY;\n\n return this;\n };\n\n /** */\n\n\n PointerEvent.prototype.preventDefault = function preventDefault() {\n this.originalEvent.preventDefault();\n };\n\n /** */\n\n\n PointerEvent.prototype.stopPropagation = function stopPropagation() {\n this.propagationStopped = true;\n };\n\n /** */\n\n\n PointerEvent.prototype.stopImmediatePropagation = function stopImmediatePropagation() {\n this.immediatePropagationStopped = this.propagationStopped = true;\n };\n\n return PointerEvent;\n}();\n\n},{\"../utils/pointerUtils\":49}],30:[function(require,module,exports){\n'use strict';\n\nvar PointerEvent = require('./PointerEvent');\nvar Interaction = require('../Interaction');\nvar utils = require('../utils');\nvar defaults = require('../defaultOptions');\nvar signals = require('../utils/Signals').new();\n\nvar simpleSignals = ['down', 'up', 'cancel'];\nvar simpleEvents = ['down', 'up', 'cancel'];\n\nvar pointerEvents = {\n PointerEvent: PointerEvent,\n fire: fire,\n collectEventTargets: collectEventTargets,\n signals: signals,\n defaults: {\n holdDuration: 600,\n ignoreFrom: null,\n allowFrom: null,\n origin: { x: 0, y: 0 }\n },\n types: ['down', 'move', 'up', 'cancel', 'tap', 'doubletap', 'hold']\n};\n\nfunction fire(arg) {\n var interaction = arg.interaction,\n pointer = arg.pointer,\n event = arg.event,\n eventTarget = arg.eventTarget,\n _arg$type = arg.type,\n type = _arg$type === undefined ? arg.pointerEvent.type : _arg$type,\n _arg$targets = arg.targets,\n targets = _arg$targets === undefined ? collectEventTargets(arg) : _arg$targets,\n _arg$pointerEvent = arg.pointerEvent,\n pointerEvent = _arg$pointerEvent === undefined ? new PointerEvent(type, pointer, event, eventTarget, interaction) : _arg$pointerEvent;\n\n\n var signalArg = {\n interaction: interaction,\n pointer: pointer,\n event: event,\n eventTarget: eventTarget,\n targets: targets,\n type: type,\n pointerEvent: pointerEvent\n };\n\n for (var i = 0; i < targets.length; i++) {\n var target = targets[i];\n\n for (var prop in target.props || {}) {\n pointerEvent[prop] = target.props[prop];\n }\n\n var origin = utils.getOriginXY(target.eventable, target.element);\n\n pointerEvent.subtractOrigin(origin);\n pointerEvent.eventable = target.eventable;\n pointerEvent.currentTarget = target.element;\n\n target.eventable.fire(pointerEvent);\n\n pointerEvent.addOrigin(origin);\n\n if (pointerEvent.immediatePropagationStopped || pointerEvent.propagationStopped && i + 1 < targets.length && targets[i + 1].element !== pointerEvent.currentTarget) {\n break;\n }\n }\n\n signals.fire('fired', signalArg);\n\n if (type === 'tap') {\n // if pointerEvent should make a double tap, create and fire a doubletap\n // PointerEvent and use that as the prevTap\n var prevTap = pointerEvent.double ? fire({\n interaction: interaction, pointer: pointer, event: event, eventTarget: eventTarget,\n type: 'doubletap'\n }) : pointerEvent;\n\n interaction.prevTap = prevTap;\n interaction.tapTime = prevTap.timeStamp;\n }\n\n return pointerEvent;\n}\n\nfunction collectEventTargets(_ref) {\n var interaction = _ref.interaction,\n pointer = _ref.pointer,\n event = _ref.event,\n eventTarget = _ref.eventTarget,\n type = _ref.type;\n\n var pointerIndex = interaction.getPointerIndex(pointer);\n\n // do not fire a tap event if the pointer was moved before being lifted\n if (type === 'tap' && (interaction.pointerWasMoved\n // or if the pointerup target is different to the pointerdown target\n || !(interaction.downTargets[pointerIndex] && interaction.downTargets[pointerIndex] === eventTarget))) {\n return [];\n }\n\n var path = utils.getPath(eventTarget);\n var signalArg = {\n interaction: interaction,\n pointer: pointer,\n event: event,\n eventTarget: eventTarget,\n type: type,\n path: path,\n targets: [],\n element: null\n };\n\n for (var _i = 0; _i < path.length; _i++) {\n var _ref2;\n\n _ref2 = path[_i];\n var element = _ref2;\n\n signalArg.element = element;\n\n signals.fire('collect-targets', signalArg);\n }\n\n if (type === 'hold') {\n signalArg.targets = signalArg.targets.filter(function (target) {\n return target.eventable.options.holdDuration === interaction.holdTimers[pointerIndex].duration;\n });\n }\n\n return signalArg.targets;\n}\n\nInteraction.signals.on('update-pointer-down', function (_ref3) {\n var interaction = _ref3.interaction,\n pointerIndex = _ref3.pointerIndex;\n\n interaction.holdTimers[pointerIndex] = { duration: Infinity, timeout: null };\n});\n\nInteraction.signals.on('remove-pointer', function (_ref4) {\n var interaction = _ref4.interaction,\n pointerIndex = _ref4.pointerIndex;\n\n interaction.holdTimers.splice(pointerIndex, 1);\n});\n\nInteraction.signals.on('move', function (_ref5) {\n var interaction = _ref5.interaction,\n pointer = _ref5.pointer,\n event = _ref5.event,\n eventTarget = _ref5.eventTarget,\n duplicateMove = _ref5.duplicateMove;\n\n var pointerIndex = interaction.getPointerIndex(pointer);\n\n if (!duplicateMove && (!interaction.pointerIsDown || interaction.pointerWasMoved)) {\n if (interaction.pointerIsDown) {\n clearTimeout(interaction.holdTimers[pointerIndex].timeout);\n }\n\n fire({\n interaction: interaction, pointer: pointer, event: event, eventTarget: eventTarget,\n type: 'move'\n });\n }\n});\n\nInteraction.signals.on('down', function (_ref6) {\n var interaction = _ref6.interaction,\n pointer = _ref6.pointer,\n event = _ref6.event,\n eventTarget = _ref6.eventTarget,\n pointerIndex = _ref6.pointerIndex;\n\n var timer = interaction.holdTimers[pointerIndex];\n var path = utils.getPath(eventTarget);\n var signalArg = {\n interaction: interaction,\n pointer: pointer,\n event: event,\n eventTarget: eventTarget,\n type: 'hold',\n targets: [],\n path: path,\n element: null\n };\n\n for (var _i2 = 0; _i2 < path.length; _i2++) {\n var _ref7;\n\n _ref7 = path[_i2];\n var element = _ref7;\n\n signalArg.element = element;\n\n signals.fire('collect-targets', signalArg);\n }\n\n if (!signalArg.targets.length) {\n return;\n }\n\n var minDuration = Infinity;\n\n for (var _i3 = 0; _i3 < signalArg.targets.length; _i3++) {\n var _ref8;\n\n _ref8 = signalArg.targets[_i3];\n var target = _ref8;\n\n var holdDuration = target.eventable.options.holdDuration;\n\n if (holdDuration < minDuration) {\n minDuration = holdDuration;\n }\n }\n\n timer.duration = minDuration;\n timer.timeout = setTimeout(function () {\n fire({\n interaction: interaction,\n eventTarget: eventTarget,\n pointer: pointer,\n event: event,\n type: 'hold'\n });\n }, minDuration);\n});\n\nInteraction.signals.on('up', function (_ref9) {\n var interaction = _ref9.interaction,\n pointer = _ref9.pointer,\n event = _ref9.event,\n eventTarget = _ref9.eventTarget;\n\n if (!interaction.pointerWasMoved) {\n fire({ interaction: interaction, eventTarget: eventTarget, pointer: pointer, event: event, type: 'tap' });\n }\n});\n\nvar _arr = ['up', 'cancel'];\nfor (var _i4 = 0; _i4 < _arr.length; _i4++) {\n var signalName = _arr[_i4];\n Interaction.signals.on(signalName, function (_ref11) {\n var interaction = _ref11.interaction,\n pointerIndex = _ref11.pointerIndex;\n\n if (interaction.holdTimers[pointerIndex]) {\n clearTimeout(interaction.holdTimers[pointerIndex].timeout);\n }\n });\n}\n\nfunction createSignalListener(type) {\n return function (_ref10) {\n var interaction = _ref10.interaction,\n pointer = _ref10.pointer,\n event = _ref10.event,\n eventTarget = _ref10.eventTarget;\n\n fire({ interaction: interaction, eventTarget: eventTarget, pointer: pointer, event: event, type: type });\n };\n}\n\nfor (var i = 0; i < simpleSignals.length; i++) {\n Interaction.signals.on(simpleSignals[i], createSignalListener(simpleEvents[i]));\n}\n\nInteraction.signals.on('new', function (interaction) {\n interaction.prevTap = null; // the most recent tap event on this interaction\n interaction.tapTime = 0; // time of the most recent tap event\n interaction.holdTimers = []; // [{ duration, timeout }]\n});\n\ndefaults.pointerEvents = pointerEvents.defaults;\nmodule.exports = pointerEvents;\n\n},{\"../Interaction\":5,\"../defaultOptions\":18,\"../utils\":44,\"../utils/Signals\":34,\"./PointerEvent\":29}],31:[function(require,module,exports){\n'use strict';\n\nvar pointerEvents = require('./base');\nvar Interaction = require('../Interaction');\n\npointerEvents.signals.on('new', onNew);\npointerEvents.signals.on('fired', onFired);\n\nvar _arr = ['move', 'up', 'cancel', 'endall'];\nfor (var _i = 0; _i < _arr.length; _i++) {\n var signal = _arr[_i];\n Interaction.signals.on(signal, endHoldRepeat);\n}\n\nfunction onNew(_ref) {\n var pointerEvent = _ref.pointerEvent;\n\n if (pointerEvent.type !== 'hold') {\n return;\n }\n\n pointerEvent.count = (pointerEvent.count || 0) + 1;\n}\n\nfunction onFired(_ref2) {\n var interaction = _ref2.interaction,\n pointerEvent = _ref2.pointerEvent,\n eventTarget = _ref2.eventTarget,\n targets = _ref2.targets;\n\n if (pointerEvent.type !== 'hold' || !targets.length) {\n return;\n }\n\n // get the repeat interval from the first eventable\n var interval = targets[0].eventable.options.holdRepeatInterval;\n\n // don't repeat if the interval is 0 or less\n if (interval <= 0) {\n return;\n }\n\n // set a timeout to fire the holdrepeat event\n interaction.holdIntervalHandle = setTimeout(function () {\n pointerEvents.fire({\n interaction: interaction,\n eventTarget: eventTarget,\n type: 'hold',\n pointer: pointerEvent,\n event: pointerEvent\n });\n }, interval);\n}\n\nfunction endHoldRepeat(_ref3) {\n var interaction = _ref3.interaction;\n\n // set the interaction's holdStopTime property\n // to stop further holdRepeat events\n if (interaction.holdIntervalHandle) {\n clearInterval(interaction.holdIntervalHandle);\n interaction.holdIntervalHandle = null;\n }\n}\n\n// don't repeat by default\npointerEvents.defaults.holdRepeatInterval = 0;\npointerEvents.types.push('holdrepeat');\n\nmodule.exports = {\n onNew: onNew,\n onFired: onFired,\n endHoldRepeat: endHoldRepeat\n};\n\n},{\"../Interaction\":5,\"./base\":30}],32:[function(require,module,exports){\n'use strict';\n\nvar pointerEvents = require('./base');\nvar Interactable = require('../Interactable');\nvar is = require('../utils/is');\nvar scope = require('../scope');\nvar extend = require('../utils/extend');\n\nvar _require = require('../utils/arr'),\n merge = _require.merge;\n\npointerEvents.signals.on('collect-targets', function (_ref) {\n var targets = _ref.targets,\n element = _ref.element,\n type = _ref.type,\n eventTarget = _ref.eventTarget;\n\n scope.interactables.forEachMatch(element, function (interactable) {\n var eventable = interactable.events;\n var options = eventable.options;\n\n if (eventable[type] && is.element(element) && interactable.testIgnoreAllow(options, element, eventTarget)) {\n\n targets.push({\n element: element,\n eventable: eventable,\n props: { interactable: interactable }\n });\n }\n });\n});\n\nInteractable.signals.on('new', function (_ref2) {\n var interactable = _ref2.interactable;\n\n interactable.events.getRect = function (element) {\n return interactable.getRect(element);\n };\n});\n\nInteractable.signals.on('set', function (_ref3) {\n var interactable = _ref3.interactable,\n options = _ref3.options;\n\n extend(interactable.events.options, pointerEvents.defaults);\n extend(interactable.events.options, options);\n});\n\nmerge(Interactable.eventTypes, pointerEvents.types);\n\nInteractable.prototype.pointerEvents = function (options) {\n extend(this.events.options, options);\n\n return this;\n};\n\nvar __backCompatOption = Interactable.prototype._backCompatOption;\n\nInteractable.prototype._backCompatOption = function (optionName, newValue) {\n var ret = __backCompatOption.call(this, optionName, newValue);\n\n if (ret === this) {\n this.events.options[optionName] = newValue;\n }\n\n return ret;\n};\n\nInteractable.settingsMethods.push('pointerEvents');\n\n},{\"../Interactable\":4,\"../scope\":33,\"../utils/arr\":35,\"../utils/extend\":41,\"../utils/is\":46,\"./base\":30}],33:[function(require,module,exports){\n'use strict';\n\nvar utils = require('./utils');\nvar events = require('./utils/events');\nvar signals = require('./utils/Signals').new();\n\nvar _require = require('./utils/window'),\n getWindow = _require.getWindow;\n\nvar scope = {\n signals: signals,\n events: events,\n utils: utils,\n\n // main document\n document: require('./utils/domObjects').document,\n // all documents being listened to\n documents: [],\n\n addDocument: function addDocument(doc, win) {\n // do nothing if document is already known\n if (utils.contains(scope.documents, doc)) {\n return false;\n }\n\n win = win || getWindow(doc);\n\n scope.documents.push(doc);\n events.documents.push(doc);\n\n // don't add an unload event for the main document\n // so that the page may be cached in browser history\n if (doc !== scope.document) {\n events.add(win, 'unload', scope.onWindowUnload);\n }\n\n signals.fire('add-document', { doc: doc, win: win });\n },\n\n removeDocument: function removeDocument(doc, win) {\n var index = scope.documents.indexOf(doc);\n\n win = win || getWindow(doc);\n\n events.remove(win, 'unload', scope.onWindowUnload);\n\n scope.documents.splice(index, 1);\n events.documents.splice(index, 1);\n\n signals.fire('remove-document', { win: win, doc: doc });\n },\n\n onWindowUnload: function onWindowUnload() {\n scope.removeDocument(this.document, this);\n }\n};\n\nmodule.exports = scope;\n\n},{\"./utils\":44,\"./utils/Signals\":34,\"./utils/domObjects\":38,\"./utils/events\":40,\"./utils/window\":52}],34:[function(require,module,exports){\n\"use strict\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Signals = function () {\n function Signals() {\n _classCallCheck(this, Signals);\n\n this.listeners = {\n // signalName: [listeners],\n };\n }\n\n Signals.prototype.on = function on(name, listener) {\n if (!this.listeners[name]) {\n this.listeners[name] = [listener];\n return;\n }\n\n this.listeners[name].push(listener);\n };\n\n Signals.prototype.off = function off(name, listener) {\n if (!this.listeners[name]) {\n return;\n }\n\n var index = this.listeners[name].indexOf(listener);\n\n if (index !== -1) {\n this.listeners[name].splice(index, 1);\n }\n };\n\n Signals.prototype.fire = function fire(name, arg) {\n var targetListeners = this.listeners[name];\n\n if (!targetListeners) {\n return;\n }\n\n for (var _i = 0; _i < targetListeners.length; _i++) {\n var _ref;\n\n _ref = targetListeners[_i];\n var listener = _ref;\n\n if (listener(arg, name) === false) {\n return;\n }\n }\n };\n\n return Signals;\n}();\n\nSignals.new = function () {\n return new Signals();\n};\n\nmodule.exports = Signals;\n\n},{}],35:[function(require,module,exports){\n\"use strict\";\n\nfunction contains(array, target) {\n return array.indexOf(target) !== -1;\n}\n\nfunction merge(target, source) {\n for (var _i = 0; _i < source.length; _i++) {\n var _ref;\n\n _ref = source[_i];\n var item = _ref;\n\n target.push(item);\n }\n\n return target;\n}\n\nmodule.exports = {\n contains: contains,\n merge: merge\n};\n\n},{}],36:[function(require,module,exports){\n'use strict';\n\nvar _require = require('./window'),\n window = _require.window;\n\nvar is = require('./is');\nvar domObjects = require('./domObjects');\n\nvar Element = domObjects.Element;\nvar navigator = window.navigator;\n\nvar browser = {\n // Does the browser support touch input?\n supportsTouch: !!('ontouchstart' in window || is.function(window.DocumentTouch) && domObjects.document instanceof window.DocumentTouch),\n\n // Does the browser support PointerEvents\n supportsPointerEvent: !!domObjects.PointerEvent,\n\n isIOS: /iP(hone|od|ad)/.test(navigator.platform),\n\n // scrolling doesn't change the result of getClientRects on iOS 7\n isIOS7: /iP(hone|od|ad)/.test(navigator.platform) && /OS 7[^\\d]/.test(navigator.appVersion),\n\n isIe9: /MSIE 9/.test(navigator.userAgent),\n\n // prefix matchesSelector\n prefixedMatchesSelector: 'matches' in Element.prototype ? 'matches' : 'webkitMatchesSelector' in Element.prototype ? 'webkitMatchesSelector' : 'mozMatchesSelector' in Element.prototype ? 'mozMatchesSelector' : 'oMatchesSelector' in Element.prototype ? 'oMatchesSelector' : 'msMatchesSelector',\n\n pEventTypes: domObjects.PointerEvent ? domObjects.PointerEvent === window.MSPointerEvent ? {\n up: 'MSPointerUp',\n down: 'MSPointerDown',\n over: 'mouseover',\n out: 'mouseout',\n move: 'MSPointerMove',\n cancel: 'MSPointerCancel'\n } : {\n up: 'pointerup',\n down: 'pointerdown',\n over: 'pointerover',\n out: 'pointerout',\n move: 'pointermove',\n cancel: 'pointercancel'\n } : null,\n\n // because Webkit and Opera still use 'mousewheel' event type\n wheelEvent: 'onmousewheel' in domObjects.document ? 'mousewheel' : 'wheel'\n\n};\n\n// Opera Mobile must be handled differently\nbrowser.isOperaMobile = navigator.appName === 'Opera' && browser.supportsTouch && navigator.userAgent.match('Presto');\n\nmodule.exports = browser;\n\n},{\"./domObjects\":38,\"./is\":46,\"./window\":52}],37:[function(require,module,exports){\n'use strict';\n\nvar is = require('./is');\n\nmodule.exports = function clone(source) {\n var dest = {};\n for (var prop in source) {\n if (is.plainObject(source[prop])) {\n dest[prop] = clone(source[prop]);\n } else {\n dest[prop] = source[prop];\n }\n }\n return dest;\n};\n\n},{\"./is\":46}],38:[function(require,module,exports){\n'use strict';\n\nvar domObjects = {};\nvar win = require('./window').window;\n\nfunction blank() {}\n\ndomObjects.document = win.document;\ndomObjects.DocumentFragment = win.DocumentFragment || blank;\ndomObjects.SVGElement = win.SVGElement || blank;\ndomObjects.SVGSVGElement = win.SVGSVGElement || blank;\ndomObjects.SVGElementInstance = win.SVGElementInstance || blank;\ndomObjects.Element = win.Element || blank;\ndomObjects.HTMLElement = win.HTMLElement || domObjects.Element;\n\ndomObjects.Event = win.Event;\ndomObjects.Touch = win.Touch || blank;\ndomObjects.PointerEvent = win.PointerEvent || win.MSPointerEvent;\n\nmodule.exports = domObjects;\n\n},{\"./window\":52}],39:[function(require,module,exports){\n'use strict';\n\nvar win = require('./window');\nvar browser = require('./browser');\nvar is = require('./is');\nvar domObjects = require('./domObjects');\n\nvar domUtils = {\n nodeContains: function nodeContains(parent, child) {\n while (child) {\n if (child === parent) {\n return true;\n }\n\n child = child.parentNode;\n }\n\n return false;\n },\n\n closest: function closest(element, selector) {\n while (is.element(element)) {\n if (domUtils.matchesSelector(element, selector)) {\n return element;\n }\n\n element = domUtils.parentNode(element);\n }\n\n return null;\n },\n\n parentNode: function parentNode(node) {\n var parent = node.parentNode;\n\n if (is.docFrag(parent)) {\n // skip past #shado-root fragments\n while ((parent = parent.host) && is.docFrag(parent)) {\n continue;\n }\n\n return parent;\n }\n\n return parent;\n },\n\n matchesSelector: function matchesSelector(element, selector) {\n // remove /deep/ from selectors if shadowDOM polyfill is used\n if (win.window !== win.realWindow) {\n selector = selector.replace(/\\/deep\\//g, ' ');\n }\n\n return element[browser.prefixedMatchesSelector](selector);\n },\n\n // Test for the element that's \"above\" all other qualifiers\n indexOfDeepestElement: function indexOfDeepestElement(elements) {\n var deepestZoneParents = [];\n var dropzoneParents = [];\n var dropzone = void 0;\n var deepestZone = elements[0];\n var index = deepestZone ? 0 : -1;\n var parent = void 0;\n var child = void 0;\n var i = void 0;\n var n = void 0;\n\n for (i = 1; i < elements.length; i++) {\n dropzone = elements[i];\n\n // an element might belong to multiple selector dropzones\n if (!dropzone || dropzone === deepestZone) {\n continue;\n }\n\n if (!deepestZone) {\n deepestZone = dropzone;\n index = i;\n continue;\n }\n\n // check if the deepest or current are document.documentElement or document.rootElement\n // - if the current dropzone is, do nothing and continue\n if (dropzone.parentNode === dropzone.ownerDocument) {\n continue;\n }\n // - if deepest is, update with the current dropzone and continue to next\n else if (deepestZone.parentNode === dropzone.ownerDocument) {\n deepestZone = dropzone;\n index = i;\n continue;\n }\n\n if (!deepestZoneParents.length) {\n parent = deepestZone;\n while (parent.parentNode && parent.parentNode !== parent.ownerDocument) {\n deepestZoneParents.unshift(parent);\n parent = parent.parentNode;\n }\n }\n\n // if this element is an svg element and the current deepest is\n // an HTMLElement\n if (deepestZone instanceof domObjects.HTMLElement && dropzone instanceof domObjects.SVGElement && !(dropzone instanceof domObjects.SVGSVGElement)) {\n\n if (dropzone === deepestZone.parentNode) {\n continue;\n }\n\n parent = dropzone.ownerSVGElement;\n } else {\n parent = dropzone;\n }\n\n dropzoneParents = [];\n\n while (parent.parentNode !== parent.ownerDocument) {\n dropzoneParents.unshift(parent);\n parent = parent.parentNode;\n }\n\n n = 0;\n\n // get (position of last common ancestor) + 1\n while (dropzoneParents[n] && dropzoneParents[n] === deepestZoneParents[n]) {\n n++;\n }\n\n var parents = [dropzoneParents[n - 1], dropzoneParents[n], deepestZoneParents[n]];\n\n child = parents[0].lastChild;\n\n while (child) {\n if (child === parents[1]) {\n deepestZone = dropzone;\n index = i;\n deepestZoneParents = [];\n\n break;\n } else if (child === parents[2]) {\n break;\n }\n\n child = child.previousSibling;\n }\n }\n\n return index;\n },\n\n matchesUpTo: function matchesUpTo(element, selector, limit) {\n while (is.element(element)) {\n if (domUtils.matchesSelector(element, selector)) {\n return true;\n }\n\n element = domUtils.parentNode(element);\n\n if (element === limit) {\n return domUtils.matchesSelector(element, selector);\n }\n }\n\n return false;\n },\n\n getActualElement: function getActualElement(element) {\n return element instanceof domObjects.SVGElementInstance ? element.correspondingUseElement : element;\n },\n\n getScrollXY: function getScrollXY(relevantWindow) {\n relevantWindow = relevantWindow || win.window;\n return {\n x: relevantWindow.scrollX || relevantWindow.document.documentElement.scrollLeft,\n y: relevantWindow.scrollY || relevantWindow.document.documentElement.scrollTop\n };\n },\n\n getElementClientRect: function getElementClientRect(element) {\n var clientRect = element instanceof domObjects.SVGElement ? element.getBoundingClientRect() : element.getClientRects()[0];\n\n return clientRect && {\n left: clientRect.left,\n right: clientRect.right,\n top: clientRect.top,\n bottom: clientRect.bottom,\n width: clientRect.width || clientRect.right - clientRect.left,\n height: clientRect.height || clientRect.bottom - clientRect.top\n };\n },\n\n getElementRect: function getElementRect(element) {\n var clientRect = domUtils.getElementClientRect(element);\n\n if (!browser.isIOS7 && clientRect) {\n var scroll = domUtils.getScrollXY(win.getWindow(element));\n\n clientRect.left += scroll.x;\n clientRect.right += scroll.x;\n clientRect.top += scroll.y;\n clientRect.bottom += scroll.y;\n }\n\n return clientRect;\n },\n\n getPath: function getPath(element) {\n var path = [];\n\n while (element) {\n path.push(element);\n element = domUtils.parentNode(element);\n }\n\n return path;\n },\n\n trySelector: function trySelector(value) {\n if (!is.string(value)) {\n return false;\n }\n\n // an exception will be raised if it is invalid\n domObjects.document.querySelector(value);\n return true;\n }\n};\n\nmodule.exports = domUtils;\n\n},{\"./browser\":36,\"./domObjects\":38,\"./is\":46,\"./window\":52}],40:[function(require,module,exports){\n'use strict';\n\nvar is = require('./is');\nvar domUtils = require('./domUtils');\nvar pointerUtils = require('./pointerUtils');\nvar pExtend = require('./pointerExtend');\n\nvar _require = require('./window'),\n window = _require.window;\n\nvar _require2 = require('./arr'),\n contains = _require2.contains;\n\nvar elements = [];\nvar targets = [];\n\n// {\n// type: {\n// selectors: ['selector', ...],\n// contexts : [document, ...],\n// listeners: [[listener, capture, passive], ...]\n// }\n// }\nvar delegatedEvents = {};\nvar documents = [];\n\nvar supportsOptions = function () {\n var supported = false;\n\n window.document.createElement('div').addEventListener('test', null, {\n get capture() {\n supported = true;\n }\n });\n\n return supported;\n}();\n\nfunction add(element, type, listener, optionalArg) {\n var options = getOptions(optionalArg);\n var elementIndex = elements.indexOf(element);\n var target = targets[elementIndex];\n\n if (!target) {\n target = {\n events: {},\n typeCount: 0\n };\n\n elementIndex = elements.push(element) - 1;\n targets.push(target);\n }\n\n if (!target.events[type]) {\n target.events[type] = [];\n target.typeCount++;\n }\n\n if (!contains(target.events[type], listener)) {\n element.addEventListener(type, listener, supportsOptions ? options : !!options.capture);\n target.events[type].push(listener);\n }\n}\n\nfunction remove(element, type, listener, optionalArg) {\n var options = getOptions(optionalArg);\n var elementIndex = elements.indexOf(element);\n var target = targets[elementIndex];\n\n if (!target || !target.events) {\n return;\n }\n\n if (type === 'all') {\n for (type in target.events) {\n if (target.events.hasOwnProperty(type)) {\n remove(element, type, 'all');\n }\n }\n return;\n }\n\n if (target.events[type]) {\n var len = target.events[type].length;\n\n if (listener === 'all') {\n for (var i = 0; i < len; i++) {\n remove(element, type, target.events[type][i], options);\n }\n return;\n } else {\n for (var _i = 0; _i < len; _i++) {\n if (target.events[type][_i] === listener) {\n element.removeEventListener('on' + type, listener, supportsOptions ? options : !!options.capture);\n target.events[type].splice(_i, 1);\n\n break;\n }\n }\n }\n\n if (target.events[type] && target.events[type].length === 0) {\n target.events[type] = null;\n target.typeCount--;\n }\n }\n\n if (!target.typeCount) {\n targets.splice(elementIndex, 1);\n elements.splice(elementIndex, 1);\n }\n}\n\nfunction addDelegate(selector, context, type, listener, optionalArg) {\n var options = getOptions(optionalArg);\n if (!delegatedEvents[type]) {\n delegatedEvents[type] = {\n selectors: [],\n contexts: [],\n listeners: []\n };\n\n // add delegate listener functions\n for (var _i2 = 0; _i2 < documents.length; _i2++) {\n var doc = documents[_i2];\n add(doc, type, delegateListener);\n add(doc, type, delegateUseCapture, true);\n }\n }\n\n var delegated = delegatedEvents[type];\n var index = void 0;\n\n for (index = delegated.selectors.length - 1; index >= 0; index--) {\n if (delegated.selectors[index] === selector && delegated.contexts[index] === context) {\n break;\n }\n }\n\n if (index === -1) {\n index = delegated.selectors.length;\n\n delegated.selectors.push(selector);\n delegated.contexts.push(context);\n delegated.listeners.push([]);\n }\n\n // keep listener and capture and passive flags\n delegated.listeners[index].push([listener, !!options.capture, options.passive]);\n}\n\nfunction removeDelegate(selector, context, type, listener, optionalArg) {\n var options = getOptions(optionalArg);\n var delegated = delegatedEvents[type];\n var matchFound = false;\n var index = void 0;\n\n if (!delegated) {\n return;\n }\n\n // count from last index of delegated to 0\n for (index = delegated.selectors.length - 1; index >= 0; index--) {\n // look for matching selector and context Node\n if (delegated.selectors[index] === selector && delegated.contexts[index] === context) {\n\n var listeners = delegated.listeners[index];\n\n // each item of the listeners array is an array: [function, capture, passive]\n for (var i = listeners.length - 1; i >= 0; i--) {\n var _listeners$i = listeners[i],\n fn = _listeners$i[0],\n capture = _listeners$i[1],\n passive = _listeners$i[2];\n\n // check if the listener functions and capture and passive flags match\n\n if (fn === listener && capture === !!options.capture && passive === options.passive) {\n // remove the listener from the array of listeners\n listeners.splice(i, 1);\n\n // if all listeners for this interactable have been removed\n // remove the interactable from the delegated arrays\n if (!listeners.length) {\n delegated.selectors.splice(index, 1);\n delegated.contexts.splice(index, 1);\n delegated.listeners.splice(index, 1);\n\n // remove delegate function from context\n remove(context, type, delegateListener);\n remove(context, type, delegateUseCapture, true);\n\n // remove the arrays if they are empty\n if (!delegated.selectors.length) {\n delegatedEvents[type] = null;\n }\n }\n\n // only remove one listener\n matchFound = true;\n break;\n }\n }\n\n if (matchFound) {\n break;\n }\n }\n }\n}\n\n// bound to the interactable context when a DOM event\n// listener is added to a selector interactable\nfunction delegateListener(event, optionalArg) {\n var options = getOptions(optionalArg);\n var fakeEvent = {};\n var delegated = delegatedEvents[event.type];\n\n var _pointerUtils$getEven = pointerUtils.getEventTargets(event),\n eventTarget = _pointerUtils$getEven[0];\n\n var element = eventTarget;\n\n // duplicate the event so that currentTarget can be changed\n pExtend(fakeEvent, event);\n\n fakeEvent.originalEvent = event;\n fakeEvent.preventDefault = preventOriginalDefault;\n\n // climb up document tree looking for selector matches\n while (is.element(element)) {\n for (var i = 0; i < delegated.selectors.length; i++) {\n var selector = delegated.selectors[i];\n var context = delegated.contexts[i];\n\n if (domUtils.matchesSelector(element, selector) && domUtils.nodeContains(context, eventTarget) && domUtils.nodeContains(context, element)) {\n\n var listeners = delegated.listeners[i];\n\n fakeEvent.currentTarget = element;\n\n for (var j = 0; j < listeners.length; j++) {\n var _listeners$j = listeners[j],\n fn = _listeners$j[0],\n capture = _listeners$j[1],\n passive = _listeners$j[2];\n\n\n if (capture === !!options.capture && passive === options.passive) {\n fn(fakeEvent);\n }\n }\n }\n }\n\n element = domUtils.parentNode(element);\n }\n}\n\nfunction delegateUseCapture(event) {\n return delegateListener.call(this, event, true);\n}\n\nfunction preventOriginalDefault() {\n this.originalEvent.preventDefault();\n}\n\nfunction getOptions(param) {\n return is.object(param) ? param : { capture: param };\n}\n\nmodule.exports = {\n add: add,\n remove: remove,\n\n addDelegate: addDelegate,\n removeDelegate: removeDelegate,\n\n delegateListener: delegateListener,\n delegateUseCapture: delegateUseCapture,\n delegatedEvents: delegatedEvents,\n documents: documents,\n\n supportsOptions: supportsOptions,\n\n _elements: elements,\n _targets: targets\n};\n\n},{\"./arr\":35,\"./domUtils\":39,\"./is\":46,\"./pointerExtend\":48,\"./pointerUtils\":49,\"./window\":52}],41:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = function extend(dest, source) {\n for (var prop in source) {\n dest[prop] = source[prop];\n }\n return dest;\n};\n\n},{}],42:[function(require,module,exports){\n'use strict';\n\nvar _require = require('./rect'),\n resolveRectLike = _require.resolveRectLike,\n rectToXY = _require.rectToXY;\n\nmodule.exports = function (target, element, action) {\n var actionOptions = target.options[action];\n var actionOrigin = actionOptions && actionOptions.origin;\n var origin = actionOrigin || target.options.origin;\n\n var originRect = resolveRectLike(origin, target, element, [target && element]);\n\n return rectToXY(originRect) || { x: 0, y: 0 };\n};\n\n},{\"./rect\":51}],43:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = function (x, y) {\n return Math.sqrt(x * x + y * y);\n};\n\n},{}],44:[function(require,module,exports){\n'use strict';\n\nvar extend = require('./extend');\nvar win = require('./window');\n\nvar utils = {\n warnOnce: function warnOnce(method, message) {\n var warned = false;\n\n return function () {\n if (!warned) {\n win.window.console.warn(message);\n warned = true;\n }\n\n return method.apply(this, arguments);\n };\n },\n\n // http://stackoverflow.com/a/5634528/2280888\n _getQBezierValue: function _getQBezierValue(t, p1, p2, p3) {\n var iT = 1 - t;\n return iT * iT * p1 + 2 * iT * t * p2 + t * t * p3;\n },\n\n getQuadraticCurvePoint: function getQuadraticCurvePoint(startX, startY, cpX, cpY, endX, endY, position) {\n return {\n x: utils._getQBezierValue(position, startX, cpX, endX),\n y: utils._getQBezierValue(position, startY, cpY, endY)\n };\n },\n\n // http://gizma.com/easing/\n easeOutQuad: function easeOutQuad(t, b, c, d) {\n t /= d;\n return -c * t * (t - 2) + b;\n },\n\n copyAction: function copyAction(dest, src) {\n dest.name = src.name;\n dest.axis = src.axis;\n dest.edges = src.edges;\n\n return dest;\n },\n\n is: require('./is'),\n extend: extend,\n hypot: require('./hypot'),\n getOriginXY: require('./getOriginXY')\n};\n\nextend(utils, require('./arr'));\nextend(utils, require('./domUtils'));\nextend(utils, require('./pointerUtils'));\nextend(utils, require('./rect'));\n\nmodule.exports = utils;\n\n},{\"./arr\":35,\"./domUtils\":39,\"./extend\":41,\"./getOriginXY\":42,\"./hypot\":43,\"./is\":46,\"./pointerUtils\":49,\"./rect\":51,\"./window\":52}],45:[function(require,module,exports){\n'use strict';\n\nvar scope = require('../scope');\nvar utils = require('./index');\n\nvar finder = {\n methodOrder: ['simulationResume', 'mouseOrPen', 'hasPointer', 'idle'],\n\n search: function search(pointer, eventType, eventTarget) {\n var pointerType = utils.getPointerType(pointer);\n var pointerId = utils.getPointerId(pointer);\n var details = { pointer: pointer, pointerId: pointerId, pointerType: pointerType, eventType: eventType, eventTarget: eventTarget };\n\n for (var _i = 0; _i < finder.methodOrder.length; _i++) {\n var _ref;\n\n _ref = finder.methodOrder[_i];\n var method = _ref;\n\n var interaction = finder[method](details);\n\n if (interaction) {\n return interaction;\n }\n }\n },\n\n // try to resume simulation with a new pointer\n simulationResume: function simulationResume(_ref2) {\n var pointerType = _ref2.pointerType,\n eventType = _ref2.eventType,\n eventTarget = _ref2.eventTarget;\n\n if (!/down|start/i.test(eventType)) {\n return null;\n }\n\n for (var _i2 = 0; _i2 < scope.interactions.length; _i2++) {\n var _ref3;\n\n _ref3 = scope.interactions[_i2];\n var interaction = _ref3;\n\n var element = eventTarget;\n\n if (interaction.simulation && interaction.simulation.allowResume && interaction.pointerType === pointerType) {\n while (element) {\n // if the element is the interaction element\n if (element === interaction.element) {\n return interaction;\n }\n element = utils.parentNode(element);\n }\n }\n }\n\n return null;\n },\n\n // if it's a mouse or pen interaction\n mouseOrPen: function mouseOrPen(_ref4) {\n var pointerId = _ref4.pointerId,\n pointerType = _ref4.pointerType,\n eventType = _ref4.eventType;\n\n if (pointerType !== 'mouse' && pointerType !== 'pen') {\n return null;\n }\n\n var firstNonActive = void 0;\n\n for (var _i3 = 0; _i3 < scope.interactions.length; _i3++) {\n var _ref5;\n\n _ref5 = scope.interactions[_i3];\n var interaction = _ref5;\n\n if (interaction.pointerType === pointerType) {\n // if it's a down event, skip interactions with running simulations\n if (interaction.simulation && !utils.contains(interaction.pointerIds, pointerId)) {\n continue;\n }\n\n // if the interaction is active, return it immediately\n if (interaction.interacting()) {\n return interaction;\n }\n // otherwise save it and look for another active interaction\n else if (!firstNonActive) {\n firstNonActive = interaction;\n }\n }\n }\n\n // if no active mouse interaction was found use the first inactive mouse\n // interaction\n if (firstNonActive) {\n return firstNonActive;\n }\n\n // find any mouse or pen interaction.\n // ignore the interaction if the eventType is a *down, and a simulation\n // is active\n for (var _i4 = 0; _i4 < scope.interactions.length; _i4++) {\n var _ref6;\n\n _ref6 = scope.interactions[_i4];\n var _interaction = _ref6;\n\n if (_interaction.pointerType === pointerType && !(/down/i.test(eventType) && _interaction.simulation)) {\n return _interaction;\n }\n }\n\n return null;\n },\n\n // get interaction that has this pointer\n hasPointer: function hasPointer(_ref7) {\n var pointerId = _ref7.pointerId;\n\n for (var _i5 = 0; _i5 < scope.interactions.length; _i5++) {\n var _ref8;\n\n _ref8 = scope.interactions[_i5];\n var interaction = _ref8;\n\n if (utils.contains(interaction.pointerIds, pointerId)) {\n return interaction;\n }\n }\n },\n\n // get first idle interaction with a matching pointerType\n idle: function idle(_ref9) {\n var pointerType = _ref9.pointerType;\n\n for (var _i6 = 0; _i6 < scope.interactions.length; _i6++) {\n var _ref10;\n\n _ref10 = scope.interactions[_i6];\n var interaction = _ref10;\n\n // if there's already a pointer held down\n if (interaction.pointerIds.length === 1) {\n var target = interaction.target;\n // don't add this pointer if there is a target interactable and it\n // isn't gesturable\n if (target && !target.options.gesture.enabled) {\n continue;\n }\n }\n // maximum of 2 pointers per interaction\n else if (interaction.pointerIds.length >= 2) {\n continue;\n }\n\n if (!interaction.interacting() && pointerType === interaction.pointerType) {\n return interaction;\n }\n }\n\n return null;\n }\n};\n\nmodule.exports = finder;\n\n},{\"../scope\":33,\"./index\":44}],46:[function(require,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar win = require('./window');\nvar isWindow = require('./isWindow');\n\nvar is = {\n array: function array() {},\n\n window: function window(thing) {\n return thing === win.window || isWindow(thing);\n },\n\n docFrag: function docFrag(thing) {\n return is.object(thing) && thing.nodeType === 11;\n },\n\n object: function object(thing) {\n return !!thing && (typeof thing === 'undefined' ? 'undefined' : _typeof(thing)) === 'object';\n },\n\n function: function _function(thing) {\n return typeof thing === 'function';\n },\n\n number: function number(thing) {\n return typeof thing === 'number';\n },\n\n bool: function bool(thing) {\n return typeof thing === 'boolean';\n },\n\n string: function string(thing) {\n return typeof thing === 'string';\n },\n\n element: function element(thing) {\n if (!thing || (typeof thing === 'undefined' ? 'undefined' : _typeof(thing)) !== 'object') {\n return false;\n }\n\n var _window = win.getWindow(thing) || win.window;\n\n return (/object|function/.test(_typeof(_window.Element)) ? thing instanceof _window.Element //DOM2\n : thing.nodeType === 1 && typeof thing.nodeName === 'string'\n );\n },\n\n plainObject: function plainObject(thing) {\n return is.object(thing) && thing.constructor.name === 'Object';\n }\n};\n\nis.array = function (thing) {\n return is.object(thing) && typeof thing.length !== 'undefined' && is.function(thing.splice);\n};\n\nmodule.exports = is;\n\n},{\"./isWindow\":47,\"./window\":52}],47:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = function (thing) {\n return !!(thing && thing.Window) && thing instanceof thing.Window;\n};\n\n},{}],48:[function(require,module,exports){\n'use strict';\n\nfunction pointerExtend(dest, source) {\n for (var prop in source) {\n var prefixedPropREs = module.exports.prefixedPropREs;\n var deprecated = false;\n\n // skip deprecated prefixed properties\n for (var vendor in prefixedPropREs) {\n if (prop.indexOf(vendor) === 0 && prefixedPropREs[vendor].test(prop)) {\n deprecated = true;\n break;\n }\n }\n\n if (!deprecated && typeof source[prop] !== 'function') {\n dest[prop] = source[prop];\n }\n }\n return dest;\n}\n\npointerExtend.prefixedPropREs = {\n webkit: /(Movement[XY]|Radius[XY]|RotationAngle|Force)$/\n};\n\nmodule.exports = pointerExtend;\n\n},{}],49:[function(require,module,exports){\n'use strict';\n\nvar hypot = require('./hypot');\nvar browser = require('./browser');\nvar dom = require('./domObjects');\nvar domUtils = require('./domUtils');\nvar domObjects = require('./domObjects');\nvar is = require('./is');\nvar pointerExtend = require('./pointerExtend');\n\nvar pointerUtils = {\n copyCoords: function copyCoords(dest, src) {\n dest.page = dest.page || {};\n dest.page.x = src.page.x;\n dest.page.y = src.page.y;\n\n dest.client = dest.client || {};\n dest.client.x = src.client.x;\n dest.client.y = src.client.y;\n\n dest.timeStamp = src.timeStamp;\n },\n\n setCoordDeltas: function setCoordDeltas(targetObj, prev, cur) {\n targetObj.page.x = cur.page.x - prev.page.x;\n targetObj.page.y = cur.page.y - prev.page.y;\n targetObj.client.x = cur.client.x - prev.client.x;\n targetObj.client.y = cur.client.y - prev.client.y;\n targetObj.timeStamp = cur.timeStamp - prev.timeStamp;\n\n // set pointer velocity\n var dt = Math.max(targetObj.timeStamp / 1000, 0.001);\n\n targetObj.page.speed = hypot(targetObj.page.x, targetObj.page.y) / dt;\n targetObj.page.vx = targetObj.page.x / dt;\n targetObj.page.vy = targetObj.page.y / dt;\n\n targetObj.client.speed = hypot(targetObj.client.x, targetObj.page.y) / dt;\n targetObj.client.vx = targetObj.client.x / dt;\n targetObj.client.vy = targetObj.client.y / dt;\n },\n\n isNativePointer: function isNativePointer(pointer) {\n return pointer instanceof dom.Event || pointer instanceof dom.Touch;\n },\n\n // Get specified X/Y coords for mouse or event.touches[0]\n getXY: function getXY(type, pointer, xy) {\n xy = xy || {};\n type = type || 'page';\n\n xy.x = pointer[type + 'X'];\n xy.y = pointer[type + 'Y'];\n\n return xy;\n },\n\n getPageXY: function getPageXY(pointer, page) {\n page = page || {};\n\n // Opera Mobile handles the viewport and scrolling oddly\n if (browser.isOperaMobile && pointerUtils.isNativePointer(pointer)) {\n pointerUtils.getXY('screen', pointer, page);\n\n page.x += window.scrollX;\n page.y += window.scrollY;\n } else {\n pointerUtils.getXY('page', pointer, page);\n }\n\n return page;\n },\n\n getClientXY: function getClientXY(pointer, client) {\n client = client || {};\n\n if (browser.isOperaMobile && pointerUtils.isNativePointer(pointer)) {\n // Opera Mobile handles the viewport and scrolling oddly\n pointerUtils.getXY('screen', pointer, client);\n } else {\n pointerUtils.getXY('client', pointer, client);\n }\n\n return client;\n },\n\n getPointerId: function getPointerId(pointer) {\n return is.number(pointer.pointerId) ? pointer.pointerId : pointer.identifier;\n },\n\n setCoords: function setCoords(targetObj, pointers, timeStamp) {\n var pointer = pointers.length > 1 ? pointerUtils.pointerAverage(pointers) : pointers[0];\n\n var tmpXY = {};\n\n pointerUtils.getPageXY(pointer, tmpXY);\n targetObj.page.x = tmpXY.x;\n targetObj.page.y = tmpXY.y;\n\n pointerUtils.getClientXY(pointer, tmpXY);\n targetObj.client.x = tmpXY.x;\n targetObj.client.y = tmpXY.y;\n\n targetObj.timeStamp = is.number(timeStamp) ? timeStamp : new Date().getTime();\n },\n\n pointerExtend: pointerExtend,\n\n getTouchPair: function getTouchPair(event) {\n var touches = [];\n\n // array of touches is supplied\n if (is.array(event)) {\n touches[0] = event[0];\n touches[1] = event[1];\n }\n // an event\n else {\n if (event.type === 'touchend') {\n if (event.touches.length === 1) {\n touches[0] = event.touches[0];\n touches[1] = event.changedTouches[0];\n } else if (event.touches.length === 0) {\n touches[0] = event.changedTouches[0];\n touches[1] = event.changedTouches[1];\n }\n } else {\n touches[0] = event.touches[0];\n touches[1] = event.touches[1];\n }\n }\n\n return touches;\n },\n\n pointerAverage: function pointerAverage(pointers) {\n var average = {\n pageX: 0,\n pageY: 0,\n clientX: 0,\n clientY: 0,\n screenX: 0,\n screenY: 0\n };\n\n for (var _i = 0; _i < pointers.length; _i++) {\n var _ref;\n\n _ref = pointers[_i];\n var pointer = _ref;\n\n for (var _prop in average) {\n average[_prop] += pointer[_prop];\n }\n }\n for (var prop in average) {\n average[prop] /= pointers.length;\n }\n\n return average;\n },\n\n touchBBox: function touchBBox(event) {\n if (!event.length && !(event.touches && event.touches.length > 1)) {\n return;\n }\n\n var touches = pointerUtils.getTouchPair(event);\n var minX = Math.min(touches[0].pageX, touches[1].pageX);\n var minY = Math.min(touches[0].pageY, touches[1].pageY);\n var maxX = Math.max(touches[0].pageX, touches[1].pageX);\n var maxY = Math.max(touches[0].pageY, touches[1].pageY);\n\n return {\n x: minX,\n y: minY,\n left: minX,\n top: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n },\n\n touchDistance: function touchDistance(event, deltaSource) {\n var sourceX = deltaSource + 'X';\n var sourceY = deltaSource + 'Y';\n var touches = pointerUtils.getTouchPair(event);\n\n var dx = touches[0][sourceX] - touches[1][sourceX];\n var dy = touches[0][sourceY] - touches[1][sourceY];\n\n return hypot(dx, dy);\n },\n\n touchAngle: function touchAngle(event, prevAngle, deltaSource) {\n var sourceX = deltaSource + 'X';\n var sourceY = deltaSource + 'Y';\n var touches = pointerUtils.getTouchPair(event);\n var dx = touches[1][sourceX] - touches[0][sourceX];\n var dy = touches[1][sourceY] - touches[0][sourceY];\n var angle = 180 * Math.atan2(dy, dx) / Math.PI;\n\n return angle;\n },\n\n getPointerType: function getPointerType(pointer) {\n return is.string(pointer.pointerType) ? pointer.pointerType : is.number(pointer.pointerType) ? [undefined, undefined, 'touch', 'pen', 'mouse'][pointer.pointerType]\n // if the PointerEvent API isn't available, then the \"pointer\" must\n // be either a MouseEvent, TouchEvent, or Touch object\n : /touch/.test(pointer.type) || pointer instanceof domObjects.Touch ? 'touch' : 'mouse';\n },\n\n // [ event.target, event.currentTarget ]\n getEventTargets: function getEventTargets(event) {\n var path = is.function(event.composedPath) ? event.composedPath() : event.path;\n\n return [domUtils.getActualElement(path ? path[0] : event.target), domUtils.getActualElement(event.currentTarget)];\n }\n};\n\nmodule.exports = pointerUtils;\n\n},{\"./browser\":36,\"./domObjects\":38,\"./domUtils\":39,\"./hypot\":43,\"./is\":46,\"./pointerExtend\":48}],50:[function(require,module,exports){\n'use strict';\n\nvar _require = require('./window'),\n window = _require.window;\n\nvar vendors = ['ms', 'moz', 'webkit', 'o'];\nvar lastTime = 0;\nvar request = void 0;\nvar cancel = void 0;\n\nfor (var x = 0; x < vendors.length && !window.requestAnimationFrame; x++) {\n request = window[vendors[x] + 'RequestAnimationFrame'];\n cancel = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];\n}\n\nif (!request) {\n request = function request(callback) {\n var currTime = new Date().getTime();\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\n var id = setTimeout(function () {\n callback(currTime + timeToCall);\n }, timeToCall);\n\n lastTime = currTime + timeToCall;\n return id;\n };\n}\n\nif (!cancel) {\n cancel = function cancel(id) {\n clearTimeout(id);\n };\n}\n\nmodule.exports = {\n request: request,\n cancel: cancel\n};\n\n},{\"./window\":52}],51:[function(require,module,exports){\n'use strict';\n\nvar extend = require('./extend');\nvar is = require('./is');\n\nvar _require = require('./domUtils'),\n closest = _require.closest,\n parentNode = _require.parentNode,\n getElementRect = _require.getElementRect;\n\nvar rectUtils = {\n getStringOptionResult: function getStringOptionResult(value, interactable, element) {\n if (!is.string(value)) {\n return null;\n }\n\n if (value === 'parent') {\n value = parentNode(element);\n } else if (value === 'self') {\n value = interactable.getRect(element);\n } else {\n value = closest(element, value);\n }\n\n return value;\n },\n\n resolveRectLike: function resolveRectLike(value, interactable, element, functionArgs) {\n value = rectUtils.getStringOptionResult(value, interactable, element) || value;\n\n if (is.function(value)) {\n value = value.apply(null, functionArgs);\n }\n\n if (is.element(value)) {\n value = getElementRect(value);\n }\n\n return value;\n },\n\n rectToXY: function rectToXY(rect) {\n return rect && {\n x: 'x' in rect ? rect.x : rect.left,\n y: 'y' in rect ? rect.y : rect.top\n };\n },\n\n xywhToTlbr: function xywhToTlbr(rect) {\n if (rect && !('left' in rect && 'top' in rect)) {\n rect = extend({}, rect);\n\n rect.left = rect.x || 0;\n rect.top = rect.y || 0;\n rect.right = rect.right || rect.left + rect.width;\n rect.bottom = rect.bottom || rect.top + rect.height;\n }\n\n return rect;\n },\n\n tlbrToXywh: function tlbrToXywh(rect) {\n if (rect && !('x' in rect && 'y' in rect)) {\n rect = extend({}, rect);\n\n rect.x = rect.left || 0;\n rect.top = rect.top || 0;\n rect.width = rect.width || rect.right - rect.x;\n rect.height = rect.height || rect.bottom - rect.y;\n }\n\n return rect;\n }\n};\n\nmodule.exports = rectUtils;\n\n},{\"./domUtils\":39,\"./extend\":41,\"./is\":46}],52:[function(require,module,exports){\n'use strict';\n\nvar win = module.exports;\nvar isWindow = require('./isWindow');\n\nfunction init(window) {\n // get wrapped window if using Shadow DOM polyfill\n\n win.realWindow = window;\n\n // create a TextNode\n var el = window.document.createTextNode('');\n\n // check if it's wrapped by a polyfill\n if (el.ownerDocument !== window.document && typeof window.wrap === 'function' && window.wrap(el) === el) {\n // use wrapped window\n window = window.wrap(window);\n }\n\n win.window = window;\n}\n\nif (typeof window === 'undefined') {\n win.window = undefined;\n win.realWindow = undefined;\n} else {\n init(window);\n}\n\nwin.getWindow = function getWindow(node) {\n if (isWindow(node)) {\n return node;\n }\n\n var rootNode = node.ownerDocument || node;\n\n return rootNode.defaultView || rootNode.parentWindow || win.window;\n};\n\nwin.init = init;\n\n},{\"./isWindow\":47}]},{},[1])(1)\n});\n\n\n//# sourceMappingURL=interact.js.map\n","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://VueGridLayout/webpack/universalModuleDefinition","webpack://VueGridLayout/webpack/bootstrap","webpack://VueGridLayout/./node_modules/core-js/modules/_iter-define.js","webpack://VueGridLayout/./node_modules/core-js/modules/_string-at.js","webpack://VueGridLayout/./node_modules/core-js/modules/_advance-string-index.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_has.js","webpack://VueGridLayout/./node_modules/core-js/modules/_flags.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-keys.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_to-absolute-index.js","webpack://VueGridLayout/./src/components/GridLayout.vue?43b0","webpack://VueGridLayout/./node_modules/core-js/modules/_object-gopd.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-dps.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_enum-bug-keys.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/detection-strategy/object.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/browser-detector.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/es6.array.is-array.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_to-primitive.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_dom-create.js","webpack://VueGridLayout/./node_modules/core-js/modules/_fix-re-wks.js","webpack://VueGridLayout/./node_modules/core-js/modules/_dom-create.js","webpack://VueGridLayout/./node_modules/css-loader/lib/css-base.js","webpack://VueGridLayout/./node_modules/core-js/modules/_classof.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_to-object.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_defined.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_fails.js","webpack://VueGridLayout/./node_modules/core-js/modules/_redefine.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-create.js","webpack://VueGridLayout/./node_modules/core-js/modules/_wks.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/id-generator.js","webpack://VueGridLayout/./node_modules/core-js/modules/_library.js","webpack://VueGridLayout/./node_modules/core-js/modules/_cof.js","webpack://VueGridLayout/./node_modules/core-js/modules/_strict-method.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/es6.object.keys.js","webpack://VueGridLayout/./node_modules/core-js/modules/_hide.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_iobject.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_hide.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_to-iobject.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-gpo.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_to-integer.js","webpack://VueGridLayout/./node_modules/core-js/modules/_iter-create.js","webpack://VueGridLayout/./node_modules/core-js/modules/_to-integer.js","webpack://VueGridLayout/./node_modules/core-js/modules/_property-desc.js","webpack://VueGridLayout/./node_modules/vue-style-loader/lib/listToStyles.js","webpack://VueGridLayout/./node_modules/vue-style-loader/lib/addStylesClient.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/listener-handler.js","webpack://VueGridLayout/./node_modules/core-js/modules/_to-object.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/id-handler.js","webpack://VueGridLayout/./node_modules/batch-processor/src/utils.js","webpack://VueGridLayout/./node_modules/core-js/modules/_regexp-exec.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-pie.js","webpack://VueGridLayout/./node_modules/core-js/modules/_shared.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_shared-key.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.array.sort.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_core.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_array-includes.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/element-utils.js","webpack://VueGridLayout/./node_modules/core-js/modules/_export.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_parse-int.js","webpack://VueGridLayout/./node_modules/core-js/modules/_inherit-if-required.js","webpack://VueGridLayout/./src/components/GridItem.vue?70f1","webpack://VueGridLayout/./node_modules/core-js/modules/_regexp-exec-abstract.js","webpack://VueGridLayout/./node_modules/core-js/modules/_shared-key.js","webpack://VueGridLayout/./node_modules/core-js/modules/_iobject.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_uid.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_export.js","webpack://VueGridLayout/./node_modules/core-js/modules/_to-iobject.js","webpack://VueGridLayout/./node_modules/core-js/modules/_has.js","webpack://VueGridLayout/./node_modules/core-js/modules/_to-primitive.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_cof.js","webpack://VueGridLayout/./src/components/GridItem.vue?73c4","webpack://VueGridLayout/./node_modules/core-js/library/modules/es6.parse-int.js","webpack://VueGridLayout/./node_modules/core-js/modules/_global.js","webpack://VueGridLayout/./node_modules/core-js/modules/_to-absolute-index.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_ie8-dom-define.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_a-function.js","webpack://VueGridLayout/./node_modules/core-js/modules/_fails.js","webpack://VueGridLayout/./node_modules/core-js/modules/_set-to-string-tag.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.function.name.js","webpack://VueGridLayout/./node_modules/core-js/modules/_core.js","webpack://VueGridLayout/./node_modules/core-js/modules/_iterators.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-dp.js","webpack://VueGridLayout/./node_modules/core-js/library/fn/object/keys.js","webpack://VueGridLayout/./node_modules/core-js/modules/_set-proto.js","webpack://VueGridLayout/external {\"commonjs\":\"vue\",\"commonjs2\":\"vue\",\"root\":\"Vue\"}","webpack://VueGridLayout/./node_modules/core-js/library/modules/_descriptors.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_is-array.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-gopn.js","webpack://VueGridLayout/./node_modules/core-js/modules/_ctx.js","webpack://VueGridLayout/./node_modules/core-js/modules/_add-to-unscopables.js","webpack://VueGridLayout/./src/components/GridItem.vue?b235","webpack://VueGridLayout/./node_modules/core-js/modules/_to-length.js","webpack://VueGridLayout/./node_modules/core-js/modules/_descriptors.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_string-trim.js","webpack://VueGridLayout/./node_modules/core-js/library/fn/json/stringify.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.regexp.replace.js","webpack://VueGridLayout/./node_modules/@babel/runtime-corejs2/core-js/object/keys.js","webpack://VueGridLayout/./node_modules/@babel/runtime-corejs2/core-js/array/is-array.js","webpack://VueGridLayout/./node_modules/core-js/modules/_string-trim.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/reporter.js","webpack://VueGridLayout/./node_modules/core-js/modules/web.dom.iterable.js","webpack://VueGridLayout/./src/components/GridLayout.vue?af6b","webpack://VueGridLayout/./node_modules/core-js/library/modules/_property-desc.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.regexp.exec.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_to-length.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/collection-utils.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_library.js","webpack://VueGridLayout/./node_modules/core-js/library/fn/parse-int.js","webpack://VueGridLayout/./node_modules/core-js/modules/_defined.js","webpack://VueGridLayout/./node_modules/batch-processor/src/batch-processor.js","webpack://VueGridLayout/./node_modules/core-js/modules/_array-includes.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_object-keys.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.number.constructor.js","webpack://VueGridLayout/./node_modules/core-js/modules/_ie8-dom-define.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/detection-strategy/scroll.js","webpack://VueGridLayout/./node_modules/core-js/modules/_uid.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.array.iterator.js","webpack://VueGridLayout/./node_modules/core-js/modules/_an-object.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-keys-internal.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_object-sap.js","webpack://VueGridLayout/./node_modules/core-js/modules/_is-object.js","webpack://VueGridLayout/./node_modules/core-js/modules/_iter-step.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/state-handler.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_ctx.js","webpack://VueGridLayout/./node_modules/core-js/modules/_a-function.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_object-dp.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_shared.js","webpack://VueGridLayout/./node_modules/core-js/modules/_enum-bug-keys.js","webpack://VueGridLayout/./src/components/GridLayout.vue?2bdf","webpack://VueGridLayout/./node_modules/core-js/library/modules/_an-object.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_global.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_string-ws.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_object-keys-internal.js","webpack://VueGridLayout/./node_modules/@babel/runtime-corejs2/core-js/parse-int.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/element-resize-detector.js","webpack://VueGridLayout/./node_modules/core-js/library/fn/array/is-array.js","webpack://VueGridLayout/./node_modules/@babel/runtime-corejs2/core-js/json/stringify.js","webpack://VueGridLayout/./node_modules/core-js/library/modules/_is-object.js","webpack://VueGridLayout/./node_modules/core-js/modules/_function-to-string.js","webpack://VueGridLayout/./node_modules/core-js/modules/_html.js","webpack://VueGridLayout/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://VueGridLayout/./src/components/GridItem.vue?d2b9","webpack://VueGridLayout/./src/helpers/utils.js","webpack://VueGridLayout/./src/helpers/draggableUtils.js","webpack://VueGridLayout/./src/helpers/DOM.js","webpack://VueGridLayout/src/components/GridItem.vue","webpack://VueGridLayout/./src/components/GridItem.vue?2537","webpack://VueGridLayout/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://VueGridLayout/./src/components/GridItem.vue","webpack://VueGridLayout/./src/components/GridLayout.vue?972e","webpack://VueGridLayout/./src/helpers/responsiveUtils.js","webpack://VueGridLayout/src/components/GridLayout.vue","webpack://VueGridLayout/./src/components/GridLayout.vue?2dea","webpack://VueGridLayout/./src/components/GridLayout.vue","webpack://VueGridLayout/./src/components/index.js","webpack://VueGridLayout/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js","webpack://VueGridLayout/./node_modules/interactjs/dist/interact.js","webpack://VueGridLayout/./node_modules/core-js/modules/_string-ws.js"],"names":["root","factory","exports","module","require","define","amd","self","this","__WEBPACK_EXTERNAL_MODULE__8bbf__","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","LIBRARY","$export","redefine","hide","Iterators","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","keys","FF_ITERATOR","KEYS","VALUES","returnThis","Base","NAME","Constructor","next","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","kind","proto","TAG","DEF_VALUES","VALUES_BUG","$native","$default","$entries","undefined","$anyNative","entries","values","P","F","toInteger","defined","TO_STRING","that","pos","a","b","String","length","charCodeAt","charAt","slice","at","S","index","unicode","it","anObject","result","global","ignoreCase","multiline","sticky","$keys","enumBugKeys","O","max","Math","min","content","locals","add","default","sourceMap","shadowMode","pIE","createDesc","toIObject","toPrimitive","has","IE8_DOM_DEFINE","gOPD","getOwnPropertyDescriptor","f","e","dP","getKeys","defineProperties","Properties","split","browserDetector","options","reporter","batchProcessor","getState","stateHandler","Error","addListener","element","listener","getObject","listenerProxy","isIE","proxy","attachEvent","contentDocument","defaultView","addEventListener","makeDetectable","callback","debug","injectObject","OBJECT_STYLE","positionCheckPerformed","style","window","getComputedStyle","width","offsetWidth","height","offsetHeight","mutateDom","alterPositionStyles","position","removeRelativeStyles","getNumericalValue","replace","warn","onObjectLoad","getDocument","setTimeout","objectElement","objectDocument","document","createElement","cssText","tabIndex","type","setAttribute","onload","data","appendChild","startSize","uninstall","detachEvent","removeChild","detector","version","isAnyIeVersion","agent","navigator","userAgent","toLowerCase","indexOf","ieVersion","undef","v","div","all","getElementsByTagName","innerHTML","isLegacyOpera","opera","isArray","isObject","fn","val","toString","valueOf","TypeError","is","fails","wks","regexpExec","SPECIES","REPLACE_SUPPORTS_NAMED_GROUPS","re","exec","groups","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","apply","arguments","KEY","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","constructor","nativeRegExpMethod","fns","nativeMethod","regexp","str","arg2","forceStringMethod","done","strfn","rxfn","RegExp","string","arg","cssWithMappingToString","item","useSourceMap","cssMapping","btoa","sourceMapping","toComment","sourceURLs","sources","map","source","sourceRoot","concat","join","base64","unescape","encodeURIComponent","JSON","stringify","list","mediaQuery","alreadyImportedModules","id","push","cof","ARG","tryGet","T","B","callee","SRC","$toString","TPL","inspectSource","safe","isFunction","Function","dPs","IE_PROTO","Empty","PROTOTYPE","createDict","iframeDocument","iframe","lt","gt","display","src","contentWindow","open","write","close","store","uid","USE_SYMBOL","$exports","idCount","generate","method","toObject","propertyIsEnumerable","IObject","ObjectProto","ceil","floor","isNaN","descriptor","bitmap","configurable","writable","listToStyles","parentId","styles","newStyles","css","media","part","parts","__webpack_exports__","addStylesClient","hasDocument","DEBUG","stylesInDom","head","singletonElement","singletonCounter","isProduction","noop","ssrIdKey","isOldIE","test","_isProduction","_options","addStylesToDom","newList","mayRemove","domStyle","refs","j","addStyle","createStyleElement","styleElement","obj","update","remove","querySelector","parentNode","styleIndex","applyToSingletonTag","applyToTag","newObj","replaceText","textStore","replacement","filter","Boolean","styleSheet","cssNode","createTextNode","childNodes","insertBefore","ssrId","firstChild","idHandler","eventListeners","getListeners","removeListener","listeners","len","splice","removeAllListeners","idGenerator","getId","state","setId","set","utils","getOption","defaultValue","regexpFlags","nativeExec","nativeReplace","patchedExec","LAST_INDEX","UPDATES_LAST_INDEX_WRONG","re1","re2","NPCG_INCLUDED","PATCH","lastIndex","reCopy","match","core","SHARED","copyright","shared","aFunction","$sort","sort","comparefn","__e","toLength","toAbsoluteIndex","IS_INCLUDES","$this","el","fromIndex","isDetectable","markAsDetectable","isBusy","busy","markBusy","ctx","own","out","exp","IS_FORCED","IS_GLOBAL","G","IS_STATIC","IS_PROTO","IS_BIND","target","expProto","U","W","R","$parseInt","parseInt","$trim","trim","ws","hex","radix","setPrototypeOf","C","_node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_GridItem_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__","_node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_GridItem_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default","classof","builtinExec","px","random","IS_WRAP","virtual","__g","def","tag","stat","FProto","nameRE","Attributes","check","buggy","Array","__proto__","hiddenKeys","getOwnPropertyNames","UNSCOPABLES","ArrayProto","spaces","space","non","ltrim","rtrim","exporter","ALIAS","FORCE","TYPE","$JSON","advanceStringIndex","regExpExec","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","REPLACE","$replace","maybeCallNative","searchValue","replaceValue","res","rx","functionalReplace","fullUnicode","results","matchStr","accumulatedResult","nextSourcePosition","matched","captures","namedCaptures","replacerArgs","getSubstitution","tailPos","symbols","ch","capture","quiet","log","error","console","attachFunction","$iterators","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","forced","forEach","collection","Batch","batch","size","topLevel","bottomLevel","level","process","getSize","asyncProcess","autoProcess","asyncFrameHandler","isProcessing","addFunction","processBatchAsync","processBatch","processingBatch","forceProcessBatch","localAsyncProcess","cancelFrame","requestFrame","cancel","clearTimeout","raf","force","inheritIfRequired","gOPN","NUMBER","$Number","BROKEN_COF","TRIM","toNumber","argument","third","maxCode","first","NaN","code","digits","hasState","scrollbarSizes","getScrollbarSizes","styleId","detectionContainerClass","child","container","body","widthSize","clientWidth","heightSize","clientHeight","injectScrollStyle","containerClass","injectStyle","getElementById","containerAnimationClass","containerAnimationActiveClass","addAnimationClass","className","addEvent","cb","removeEvent","removeEventListener","getExpandElement","getShrinkElement","args","unshift","isDetached","isInDocument","ownerDocument","contains","isUnrendered","getStyle","elementStyle","top","right","bottom","left","widthCSS","heightCSS","storeStartSize","initListeners","storeStyle","storeCurrentSize","lastWidth","lastHeight","getExpandChildElement","getWidthOffset","getHeightOffset","getExpandWidth","getExpandHeight","getShrinkWidth","getShrinkHeight","positionScrollbars","expand","shrink","expandWidth","expandHeight","shrinkWidth","shrinkHeight","scrollLeft","scrollTop","injectContainerElement","onAnimationStart","onRendered","injectScrollElements","getLeftTopBottomRightCssText","rootContainer","scrollbarWidth","scrollbarHeight","containerContainerStyle","containerStyle","expandStyle","shrinkStyle","expandChildStyle","shrinkChildStyle","containerContainer","expandChild","shrinkChild","dir","onExpandScroll","onShrinkScroll","onExpand","onShrink","registerListenersAndPositionElements","updateChildSizes","updateDetectorElements","areElementsInjected","w","h","notifyListenersIfNeeded","isFirstNotify","lastNotifiedWidth","lastNotifiedHeight","handleRender","handleScroll","finalizeDomMutation","ready","install","addToUnscopables","step","iterated","_t","_i","_k","Arguments","arrayIndexOf","names","prop","initState","cleanState","_node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_GridLayout_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__","_node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_GridLayout_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default","elementUtilsMaker","listenerHandlerMaker","idGeneratorMaker","idHandlerMaker","reporterMaker","batchProcessorMaker","objectStrategyMaker","scrollStrategyMaker","isCollection","toArray","array","isElement","nodeType","defaultIdHandler","globalOptions","callOnAdd","detectionStrategy","eventListenerHandler","elementUtils","desiredStrategy","strategyOptions","onReadyCallbacks","listenTo","elements","onResizeCallback","elementsReady","onReadyCallback","documentElement","setPublicPath_i","currentScript","render","_vm","_h","$createElement","_c","_self","ref","staticClass","class","vue-resizable","resizableAndNotStatic","static","resizing","isResizing","vue-draggable-dragging","isDragging","cssTransforms","useCssTransforms","render-rtl","renderRtl","disable-userselect","no-touch","isAndroid","resizableHandleClass","_e","staticRenderFns","layout","bottomY","y","cloneLayout","newLayout","cloneLayoutItem","layoutItem","parse","stringify_default","collides","l1","l2","x","compact","verticalCompact","compareWith","getStatics","sorted","sortLayoutItemsByRowCol","compactItem","moved","getFirstCollision","correctBounds","bounds","collidesWith","cols","getLayoutItem","getAllCollisions","moveElement","isUserAction","movingUp","reverse","collisions","collision","moveElementAwayFromCollision","itemToMove","fakeItem","setTransform","translate","transform","WebkitTransform","MozTransform","msTransform","OTransform","setTransformRtl","setTopLeft","setTopRight","validateLayout","contextName","subProps","is_array_default","getControlPosition","offsetXYFromParentOf","evt","offsetParent","offsetParentRect","getBoundingClientRect","clientX","clientY","createCoreData","lastX","lastY","isStart","isNum","deltaX","deltaY","num","currentDir","hasWindow","getDocumentDir","direction","getAttribute","addWindowEventListener","event","removeWindowEventListener","interact","GridItemvue_type_script_lang_js_","props","isDraggable","required","isResizable","minH","Number","minW","maxH","Infinity","maxW","dragIgnoreFrom","dragAllowFrom","resizeIgnoreFrom","inject","containerWidth","rowHeight","margin","maxRows","draggable","resizable","dragging","lastW","lastH","rtl","dragEventSet","resizeEventSet","previousW","previousH","previousX","previousY","innerX","innerY","innerW","innerH","created","_this","updateWidthHandler","updateWidth","compactHandler","setDraggableHandler","setResizableHandler","setRowHeightHandler","directionchangeHandler","setColNum","colNum","parse_int_default","eventBus","$on","beforeDestroy","$off","interactObj","unset","mounted","$parent","createStyle","watch","tryMakeDraggable","tryMakeResizable","newVal","computed","isMirrored","calcPosition","handleResize","newSize","coreEvent","calcWH","$emit","handleDrag","newPosition","parentRect","clientRect","_parentRect","_clientRect","calcXY","colWidth","calcColWidth","round","$refs","opts","ignoreFrom","allowFrom","on","enabled","maximum","minimum","preserveAspectRatio","edges","restrictSize","autoSize","$slots","elm","components_GridItemvue_type_script_lang_js_","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","hook","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","existing","beforeCreate","component","GridItem","GridLayoutvue_type_template_id_16f9e7c6_render","directives","rawName","expression","attrs","placeholder","GridLayoutvue_type_template_id_16f9e7c6_staticRenderFns","getBreakpointFromWidth","breakpoints","sortBreakpoints","matching","breakpointName","getColsFromBreakpoint","breakpoint","findOrGenerateResponsiveLayout","orgLayout","layouts","lastBreakpoint","breakpointsSorted","breakpointsAbove","keys_default","elementResizeDetectorMaker","GridLayoutvue_type_script_lang_js_","provide","components","responsive","lg","md","sm","xs","xxs","mergedStyle","lastLayoutLength","originalLayout","resizeEventHandler","eventType","resizeEvent","dragEventHandler","dragEvent","_provided","external_commonjs_vue_commonjs2_vue_root_Vue_default","$destroy","onWindowResize","erd","beforeMount","$nextTick","initResponsiveFeatures","updateHeight","strategy","layoutUpdate","diff","findDifference","some","obj2","containerHeight","eventName","responsiveGridLayout","newBreakpoint","newCols","uniqueResultOne","uniqueResultTwo","components_GridLayoutvue_type_script_lang_js_","GridLayout_component","GridLayout","VueGridLayout","Vue","u","1","init","./src/index","./src/utils/window","2","_classCallCheck","instance","extend","fireUntilImmediateStopped","_ref","immediatePropagationStopped","Eventable","fire","onEvent","propagationStopped","off","eventList","./utils/extend.js","3","getOriginXY","defaults","signals","new","InteractEvent","interaction","action","phase","related","preEnd","deltaSource","origin","starting","ending","coords","startCoords","curCoords","prevEvent","page","client","ctrlKey","altKey","shiftKey","metaKey","button","buttons","currentTarget","relatedTarget","interactable","t0","downTimes","signalArg","iEvent","pageX","pageY","x0","y0","clientX0","clientY0","timeStamp","dt","pointerDelta","duration","speed","velocityX","vx","velocityY","vy","swipe","getSwipe","angle","atan2","PI","overlap","up","down","velocity","preventDefault","stopImmediatePropagation","stopPropagation","dx","dy","./defaultOptions","./utils/Signals","./utils/extend","./utils/getOriginXY","4","clone","events","actions","scope","_require","getElementRect","nodeContains","trySelector","matchesSelector","_require2","getWindow","_require3","_require4","wheelEvent","interactables","Interactable","_context","_win","_doc","win","addDocument","setOnEvents","phases","onAction","function","onstart","onmove","onend","oninertiastart","setPerAction","option","perAction","bool","getRect","rectChecker","checker","_backCompatOption","optionName","newValue","inContext","_onOffMultiple","search","_i2","_ref2","eventTypes","addDelegate","removeDelegate","base","perActions","actionName","methodDict","methodName","_i3","settingsMethods","_ref3","setting","delegatedEvents","delegated","selectors","contexts","delegateListener","delegateUseCapture","_i4","interactions","_ref4","interacting","_ending","stop","indexOfElement","dontCheckInContext","ret","forEachMatch","_i5","_ref5","./Eventable","./actions/base","./scope","./utils/arr","./utils/browser","./utils/clone","./utils/domUtils","./utils/events","./utils/is","./utils/window","5","browser","domObjects","finder","methodNames","prevTouchTime","Interaction","pointerType","prepared","axis","pointers","pointerIds","downTargets","prevCoords","downEvent","downPointer","_eventTarget","_curEventTarget","pointerIsDown","pointerWasMoved","_interacting","pointerDown","pointer","eventTarget","pointerIndex","updatePointer","start","copyAction","pointerMove","simulation","setCoords","duplicateMove","hypot","pointerMoveTolerance","getPointerIndex","duplicate","interactingBeforeMove","setCoordDeltas","doMove","copyCoords","_dontFireMove","pointerUp","curEventTarget","end","removePointer","currentAction","getPointerId","pointerId","_updateEventTargets","doOnInteractions","getPointerType","_utils$getEventTarget","getEventTargets","matches","supportsTouch","Date","getTime","changedTouches","changedTouch","invalidPointer","supportsPointerEvent","_interaction","_pointer","_interaction2","endAll","docEvents","pEventTypes","onDocSignal","signalName","doc","eventMethod","_eventType","isIOS","passive","PointerEvent","move","mousedown","mousemove","mouseup","touchstart","touchmove","touchend","touchcancel","blur","_ref6","pointerExtend","endAllInteractions","./utils","./utils/domObjects","./utils/interactionFinder","6","firePrepared","newEvent","../InteractEvent","../Interaction","7","defaultOptions","drag","mouseButtons","snap","restrict","inertia","autoScroll","startAxis","lockAxis","dragOptions","getCursor","abs","ondragstart","ondragend","merge","../Interactable","../defaultOptions","../utils","./base","8","drop","accept","dynamicDrop","collectDrops","activeDrops","drops","current","dropElements","querySelectorAll","_ref7","currentElement","dropzones","fireActiveDrops","prevElement","setActiveDrops","dragElement","possibleDrops","rects","getDrop","validDrops","rect","dropCheck","dropIndex","indexOfDeepestElement","dropzone","getDropEvents","pointerEvent","dropEvents","enter","leave","activate","deactivate","tmpl","dropElement","dropTarget","prevDropElement","prevDropTarget","dragLeave","prevDropzone","dragEnter","dragmove","fireDropEvents","draggableElement","dropResult","ondrop","ondropactivate","ondropdeactivate","ondragenter","ondragleave","ondropmove","number","dropped","dropOverlap","getPageXY","horizontal","vertical","dragRect","cx","cy","overlapArea","overlapRatio","_ref8","_ref9","../interact","../scope","9","gesture","ds","startDistance","prevDistance","distance","startAngle","prevAngle","scale","gesturable","ongesturestart","ongestureend","touches","touchDistance","box","touchBBox","touchAngle","da","prevScale","10","defaultMargin","resize","square","invert","resizeOptions","resizeEdges","edge","checkResizeEdge","axes","cursors","isIe9","xy","topleft","bottomright","topright","bottomleft","cursorKey","edgeNames","interactableElement","matchesUpTo","startRect","linkedEdges","_linkedEdges","resizeStartAspectRatio","resizeRects","inverted","previous","delta","deltaRect","invertible","originalEdges","startAspectRatio","swap","onresizestart","onresizeend","resizeAxes","../utils/browser","11","domUtils","isScrolling","prevTime","request","scroll","now","scrollBy","onInteractionMove","innerWidth","innerHeight","getElementClientRect","./Interaction","./utils/raf","12","warnOnce","getAction","defaultActionChecker","actionChecker","testIgnore","testAllow","testIgnoreAllow","styleCursor","0","../actions/base","../utils/domUtils","../utils/is","13","autoStart","withinInteractionLimit","maxInteractions","manualStart","maxPerElement","setActionDefaults","validateAction","validateSelector","matchElements","matchElement","getActionInfo","pushMatches","actionInfo","prepare","cursor","maxActions","activeInteractions","targetCount","targetElementCount","otherAction","../utils/Signals","./InteractableMethods","14","checkStartAxis","thisAxis","absX","absY","targetOptions","currentAxis","getDraggable","../actions/drag","15","../actions/gesture","16","getHoldDuration","hold","delay","autoStartHoldTimer","17","../actions/resize","18","resistance","minSpeed","endSpeed","allowResume","smoothEndDuration","19","./actions/drag","./actions/drop","./actions/gesture","./actions/resize","./autoScroll","./autoStart/drag","./autoStart/gesture","./autoStart/hold","./autoStart/resize","./inertia","./interact","./interactablePreventDefault.js","./modifiers/restrict","./modifiers/restrictEdges","./modifiers/restrictSize","./modifiers/snap","./modifiers/snapSize","./pointerEvents/base","./pointerEvents/holdRepeat","./pointerEvents/interactableTargets","20","modifiers","animationFrame","calcInertia","status","inertiaOptions","lambda","inertiaDur","v0","startEvent","sx","sy","modifiedXe","xe","vx0","modifiedYe","ye","vy0","te","lambda_v0","one_ve_v0","inertiaFrame","updateInertiaCoords","inertiaStatus","progress","quadPoint","getQuadraticCurvePoint","boundInertiaFrame","active","smoothEndFrame","easeOutQuad","boundSmoothEndFrame","smoothEnd","pageUp","upCoords","clientUp","vys","resumeEvent","resetStatuses","modifierStatuses","statuses","pointerSpeed","modifierResult","inertiaPossible","modifierArg","pageCoords","requireEndOnly","setAll","shouldMove","locked","./InteractEvent","./modifiers/base","21","globalEvents","isSet","getPointerAverage","pointerAverage","getTouchBBox","getTouchDistance","getTouchAngle","closest","removeDocument","./Interactable","22","onInteractionEvent","checkAndPreventDefault","supportsPassive","_arr","eventSignal","dragstart","23","setOffsets","startOffset","modifierName","modifierOffsets","setOffset","changed","modifiedCoords","modifier","shouldDo","offset","modifiedX","modifiedY","beforeMove","setXY","modifyCoords","endOnly","../utils/extend","24","restriction","elementRect","useStatusXY","getRestrictionRect","resolveRectLike","25","rectUtils","noInner","noOuter","restrictEdges","inner","xywhToTlbr","outer","../utils/rect","./restrict","26","noMin","noMax","minSize","tlbrToXywh","maxSize","./restrictEdges","27","range","targets","offsets","relativePoints","optionsOrigin","rectToXY","snapOffset","offsetRect","relativeX","relativeY","realX","realY","offsetX","offsetY","snapTarget","inRange","snapChanged","createSnapGrid","grid","limits","gridx","gridy","newX","newY","28","snapSize","../utils/","./snap","29","pointerUtils","originalEvent","interval","tapTime","double","prevTap","subtractOrigin","originX","originY","addOrigin","../utils/pointerUtils","30","simpleSignals","simpleEvents","pointerEvents","collectEventTargets","holdDuration","types","_arg$type","_arg$targets","_arg$pointerEvent","eventable","path","getPath","holdTimers","timeout","timer","minDuration","_ref11","createSignalListener","_ref10","./PointerEvent","31","onNew","onFired","signal","endHoldRepeat","count","holdRepeatInterval","holdIntervalHandle","clearInterval","32","__backCompatOption","../utils/arr","33","documents","onWindowUnload","34","Signals","targetListeners","35","36","Element","DocumentTouch","platform","isIOS7","appVersion","prefixedMatchesSelector","MSPointerEvent","over","isOperaMobile","appName","./domObjects","./is","./window","37","dest","plainObject","38","blank","DocumentFragment","SVGElement","SVGSVGElement","SVGElementInstance","HTMLElement","Event","Touch","39","selector","node","docFrag","host","realWindow","deepestZoneParents","dropzoneParents","deepestZone","ownerSVGElement","parents","lastChild","previousSibling","limit","getActualElement","correspondingUseElement","getScrollXY","relevantWindow","scrollX","scrollY","getClientRects","./browser","40","pExtend","supportsOptions","supported","optionalArg","getOptions","elementIndex","typeCount","matchFound","_listeners$i","fakeEvent","_pointerUtils$getEven","preventOriginalDefault","_listeners$j","param","_elements","_targets","./arr","./domUtils","./pointerExtend","./pointerUtils","41","42","actionOptions","actionOrigin","originRect","./rect","43","sqrt","44","message","warned","_getQBezierValue","p1","p2","p3","iT","startX","startY","cpX","cpY","endX","endY","./extend","./getOriginXY","./hypot","45","methodOrder","details","simulationResume","mouseOrPen","firstNonActive","hasPointer","idle","_i6","./index","46","_typeof","iterator","isWindow","thing","_window","nodeName","./isWindow","47","Window","48","prefixedPropREs","deprecated","vendor","webkit","49","dom","targetObj","prev","cur","isNativePointer","getXY","getClientXY","identifier","tmpXY","getTouchPair","average","screenX","screenY","_prop","minX","minY","maxX","maxY","sourceX","sourceY","composedPath","50","vendors","lastTime","requestAnimationFrame","currTime","timeToCall","51","getStringOptionResult","functionArgs","52","wrap","rootNode","parentWindow"],"mappings":"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","file":"vue-grid-layout.umd.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"vue\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"VueGridLayout\"] = factory(require(\"vue\"));\n\telse\n\t\troot[\"VueGridLayout\"] = factory(root[\"Vue\"]);\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__8bbf__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar at = require('./_string-at')(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// style-loader: Adds some css to the DOM by adding a \r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GridItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GridItem.vue?vue&type=script&lang=js&\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./GridItem.vue?vue&type=template&id=6724f499&\"\nimport script from \"./GridItem.vue?vue&type=script&lang=js&\"\nexport * from \"./GridItem.vue?vue&type=script&lang=js&\"\nimport style0 from \"./GridItem.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"item\",staticClass:\"vue-grid-layout\",style:(_vm.mergedStyle)},[_vm._t(\"default\"),_c('grid-item',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isDragging),expression:\"isDragging\"}],staticClass:\"vue-grid-placeholder\",attrs:{\"x\":_vm.placeholder.x,\"y\":_vm.placeholder.y,\"w\":_vm.placeholder.w,\"h\":_vm.placeholder.h,\"i\":_vm.placeholder.i}})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","// @flow\r\n\r\nimport {cloneLayout, compact, correctBounds} from './utils';\r\n\r\nimport type {Layout} from './utils';\r\nexport type ResponsiveLayout = {lg?: Layout, md?: Layout, sm?: Layout, xs?: Layout, xxs?: Layout};\r\ntype Breakpoint = string;\r\ntype Breakpoints = {lg?: number, md?: number, sm?: number, xs?: number, xxs?: number};\r\n\r\n/**\r\n * Given a width, find the highest breakpoint that matches is valid for it (width > breakpoint).\r\n *\r\n * @param {Object} breakpoints Breakpoints object (e.g. {lg: 1200, md: 960, ...})\r\n * @param {Number} width Screen width.\r\n * @return {String} Highest breakpoint that is less than width.\r\n */\r\nexport function getBreakpointFromWidth(breakpoints: Breakpoints, width: number): Breakpoint {\r\n const sorted = sortBreakpoints(breakpoints);\r\n let matching = sorted[0];\r\n for (let i = 1, len = sorted.length; i < len; i++) {\r\n const breakpointName = sorted[i];\r\n if (width > breakpoints[breakpointName]) matching = breakpointName;\r\n }\r\n return matching;\r\n}\r\n\r\n\r\n/**\r\n * Given a breakpoint, get the # of cols set for it.\r\n * @param {String} breakpoint Breakpoint name.\r\n * @param {Object} cols Map of breakpoints to cols.\r\n * @return {Number} Number of cols.\r\n */\r\nexport function getColsFromBreakpoint(breakpoint: Breakpoint, cols: Breakpoints): number {\r\n if (!cols[breakpoint]) {\r\n throw new Error(\"ResponsiveGridLayout: `cols` entry for breakpoint \" + breakpoint + \" is missing!\");\r\n }\r\n return cols[breakpoint];\r\n}\r\n\r\n/**\r\n * Given existing layouts and a new breakpoint, find or generate a new layout.\r\n *\r\n * This finds the layout above the new one and generates from it, if it exists.\r\n *\r\n * @param {Array} orgLayout Original layout.\r\n * @param {Object} layouts Existing layouts.\r\n * @param {Array} breakpoints All breakpoints.\r\n * @param {String} breakpoint New breakpoint.\r\n * @param {String} breakpoint Last breakpoint (for fallback).\r\n * @param {Number} cols Column count at new breakpoint.\r\n * @param {Boolean} verticalCompact Whether or not to compact the layout\r\n * vertically.\r\n * @return {Array} New layout.\r\n */\r\nexport function findOrGenerateResponsiveLayout(orgLayout: Layout, layouts: ResponsiveLayout, breakpoints: Breakpoints,\r\n breakpoint: Breakpoint, lastBreakpoint: Breakpoint,\r\n cols: number, verticalCompact: boolean): Layout {\r\n // If it already exists, just return it.\r\n if (layouts[breakpoint]) return cloneLayout(layouts[breakpoint]);\r\n // Find or generate the next layout\r\n let layout = orgLayout;\r\n\r\n const breakpointsSorted = sortBreakpoints(breakpoints);\r\n const breakpointsAbove = breakpointsSorted.slice(breakpointsSorted.indexOf(breakpoint));\r\n for (let i = 0, len = breakpointsAbove.length; i < len; i++) {\r\n const b = breakpointsAbove[i];\r\n if (layouts[b]) {\r\n layout = layouts[b];\r\n break;\r\n }\r\n }\r\n layout = cloneLayout(layout || []); // clone layout so we don't modify existing items\r\n return compact(correctBounds(layout, {cols: cols}), verticalCompact);\r\n}\r\n\r\nexport function generateResponsiveLayout(layout: Layout, breakpoints: Breakpoints,\r\n breakpoint: Breakpoint, lastBreakpoint: Breakpoint,\r\n cols: number, verticalCompact: boolean): Layout {\r\n // If it already exists, just return it.\r\n /*if (layouts[breakpoint]) return cloneLayout(layouts[breakpoint]);\r\n // Find or generate the next layout\r\n let layout = layouts[lastBreakpoint];*/\r\n /*const breakpointsSorted = sortBreakpoints(breakpoints);\r\n const breakpointsAbove = breakpointsSorted.slice(breakpointsSorted.indexOf(breakpoint));\r\n for (let i = 0, len = breakpointsAbove.length; i < len; i++) {\r\n const b = breakpointsAbove[i];\r\n if (layouts[b]) {\r\n layout = layouts[b];\r\n break;\r\n }\r\n }*/\r\n layout = cloneLayout(layout || []); // clone layout so we don't modify existing items\r\n return compact(correctBounds(layout, {cols: cols}), verticalCompact);\r\n}\r\n\r\n/**\r\n * Given breakpoints, return an array of breakpoints sorted by width. This is usually\r\n * e.g. ['xxs', 'xs', 'sm', ...]\r\n *\r\n * @param {Object} breakpoints Key/value pair of breakpoint names to widths.\r\n * @return {Array} Sorted breakpoints.\r\n */\r\nexport function sortBreakpoints(breakpoints: Breakpoints): Array {\r\n const keys: Array = Object.keys(breakpoints);\r\n return keys.sort(function(a, b) {\r\n return breakpoints[a] - breakpoints[b];\r\n });\r\n}\r\n","\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GridLayout.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GridLayout.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./GridLayout.vue?vue&type=template&id=16f9e7c6&\"\nimport script from \"./GridLayout.vue?vue&type=script&lang=js&\"\nexport * from \"./GridLayout.vue?vue&type=script&lang=js&\"\nimport style0 from \"./GridLayout.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\";\r\nimport GridItem from './GridItem.vue';\r\nimport GridLayout from './GridLayout.vue';\r\n// import ResponsiveGridLayout from './ResponsiveGridLayout.vue';\r\n\r\n\r\nconst VueGridLayout = {\r\n // ResponsiveGridLayout,\r\n GridLayout,\r\n GridItem\r\n}\r\n\r\n// module.exports = VueGridLayout;\r\n\r\nObject.keys(VueGridLayout).forEach(name => {\r\n Vue.component(name, VueGridLayout[name]);\r\n});\r\n\r\nexport default VueGridLayout;\r\nexport { GridLayout, GridItem };","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n","/**\n * interact.js v1.3.4\n *\n * Copyright (c) 2012-2018 Taye Adeyemi \n * Released under the MIT License.\n * https://raw.github.com/taye/interact.js/master/LICENSE\n */\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.interact = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o 6 && arguments[6] !== undefined ? arguments[6] : false;\n\n _classCallCheck(this, InteractEvent);\n\n var target = interaction.target;\n var deltaSource = (target && target.options || defaults).deltaSource;\n var origin = getOriginXY(target, element, action);\n var starting = phase === 'start';\n var ending = phase === 'end';\n var coords = starting ? interaction.startCoords : interaction.curCoords;\n var prevEvent = interaction.prevEvent;\n\n element = element || interaction.element;\n\n var page = extend({}, coords.page);\n var client = extend({}, coords.client);\n\n page.x -= origin.x;\n page.y -= origin.y;\n\n client.x -= origin.x;\n client.y -= origin.y;\n\n this.ctrlKey = event.ctrlKey;\n this.altKey = event.altKey;\n this.shiftKey = event.shiftKey;\n this.metaKey = event.metaKey;\n this.button = event.button;\n this.buttons = event.buttons;\n this.target = element;\n this.currentTarget = element;\n this.relatedTarget = related || null;\n this.preEnd = preEnd;\n this.type = action + (phase || '');\n this.interaction = interaction;\n this.interactable = target;\n\n this.t0 = starting ? interaction.downTimes[interaction.downTimes.length - 1] : prevEvent.t0;\n\n var signalArg = {\n interaction: interaction,\n event: event,\n action: action,\n phase: phase,\n element: element,\n related: related,\n page: page,\n client: client,\n coords: coords,\n starting: starting,\n ending: ending,\n deltaSource: deltaSource,\n iEvent: this\n };\n\n signals.fire('set-xy', signalArg);\n\n if (ending) {\n // use previous coords when ending\n this.pageX = prevEvent.pageX;\n this.pageY = prevEvent.pageY;\n this.clientX = prevEvent.clientX;\n this.clientY = prevEvent.clientY;\n } else {\n this.pageX = page.x;\n this.pageY = page.y;\n this.clientX = client.x;\n this.clientY = client.y;\n }\n\n this.x0 = interaction.startCoords.page.x - origin.x;\n this.y0 = interaction.startCoords.page.y - origin.y;\n this.clientX0 = interaction.startCoords.client.x - origin.x;\n this.clientY0 = interaction.startCoords.client.y - origin.y;\n\n signals.fire('set-delta', signalArg);\n\n this.timeStamp = coords.timeStamp;\n this.dt = interaction.pointerDelta.timeStamp;\n this.duration = this.timeStamp - this.t0;\n\n // speed and velocity in pixels per second\n this.speed = interaction.pointerDelta[deltaSource].speed;\n this.velocityX = interaction.pointerDelta[deltaSource].vx;\n this.velocityY = interaction.pointerDelta[deltaSource].vy;\n\n this.swipe = ending || phase === 'inertiastart' ? this.getSwipe() : null;\n\n signals.fire('new', signalArg);\n }\n\n InteractEvent.prototype.getSwipe = function getSwipe() {\n var interaction = this.interaction;\n\n if (interaction.prevEvent.speed < 600 || this.timeStamp - interaction.prevEvent.timeStamp > 150) {\n return null;\n }\n\n var angle = 180 * Math.atan2(interaction.prevEvent.velocityY, interaction.prevEvent.velocityX) / Math.PI;\n var overlap = 22.5;\n\n if (angle < 0) {\n angle += 360;\n }\n\n var left = 135 - overlap <= angle && angle < 225 + overlap;\n var up = 225 - overlap <= angle && angle < 315 + overlap;\n\n var right = !left && (315 - overlap <= angle || angle < 45 + overlap);\n var down = !up && 45 - overlap <= angle && angle < 135 + overlap;\n\n return {\n up: up,\n down: down,\n left: left,\n right: right,\n angle: angle,\n speed: interaction.prevEvent.speed,\n velocity: {\n x: interaction.prevEvent.velocityX,\n y: interaction.prevEvent.velocityY\n }\n };\n };\n\n InteractEvent.prototype.preventDefault = function preventDefault() {};\n\n /** */\n\n\n InteractEvent.prototype.stopImmediatePropagation = function stopImmediatePropagation() {\n this.immediatePropagationStopped = this.propagationStopped = true;\n };\n\n /** */\n\n\n InteractEvent.prototype.stopPropagation = function stopPropagation() {\n this.propagationStopped = true;\n };\n\n return InteractEvent;\n}();\n\nsignals.on('set-delta', function (_ref) {\n var iEvent = _ref.iEvent,\n interaction = _ref.interaction,\n starting = _ref.starting,\n deltaSource = _ref.deltaSource;\n\n var prevEvent = starting ? iEvent : interaction.prevEvent;\n\n if (deltaSource === 'client') {\n iEvent.dx = iEvent.clientX - prevEvent.clientX;\n iEvent.dy = iEvent.clientY - prevEvent.clientY;\n } else {\n iEvent.dx = iEvent.pageX - prevEvent.pageX;\n iEvent.dy = iEvent.pageY - prevEvent.pageY;\n }\n});\n\nInteractEvent.signals = signals;\n\nmodule.exports = InteractEvent;\n\n},{\"./defaultOptions\":18,\"./utils/Signals\":34,\"./utils/extend\":41,\"./utils/getOriginXY\":42}],4:[function(require,module,exports){\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar clone = require('./utils/clone');\nvar is = require('./utils/is');\nvar events = require('./utils/events');\nvar extend = require('./utils/extend');\nvar actions = require('./actions/base');\nvar scope = require('./scope');\nvar Eventable = require('./Eventable');\nvar defaults = require('./defaultOptions');\nvar signals = require('./utils/Signals').new();\n\nvar _require = require('./utils/domUtils'),\n getElementRect = _require.getElementRect,\n nodeContains = _require.nodeContains,\n trySelector = _require.trySelector,\n matchesSelector = _require.matchesSelector;\n\nvar _require2 = require('./utils/window'),\n getWindow = _require2.getWindow;\n\nvar _require3 = require('./utils/arr'),\n contains = _require3.contains;\n\nvar _require4 = require('./utils/browser'),\n wheelEvent = _require4.wheelEvent;\n\n// all set interactables\n\n\nscope.interactables = [];\n\nvar Interactable = function () {\n /** */\n function Interactable(target, options) {\n _classCallCheck(this, Interactable);\n\n options = options || {};\n\n this.target = target;\n this.events = new Eventable();\n this._context = options.context || scope.document;\n this._win = getWindow(trySelector(target) ? this._context : target);\n this._doc = this._win.document;\n\n signals.fire('new', {\n target: target,\n options: options,\n interactable: this,\n win: this._win\n });\n\n scope.addDocument(this._doc, this._win);\n\n scope.interactables.push(this);\n\n this.set(options);\n }\n\n Interactable.prototype.setOnEvents = function setOnEvents(action, phases) {\n var onAction = 'on' + action;\n\n if (is.function(phases.onstart)) {\n this.events[onAction + 'start'] = phases.onstart;\n }\n if (is.function(phases.onmove)) {\n this.events[onAction + 'move'] = phases.onmove;\n }\n if (is.function(phases.onend)) {\n this.events[onAction + 'end'] = phases.onend;\n }\n if (is.function(phases.oninertiastart)) {\n this.events[onAction + 'inertiastart'] = phases.oninertiastart;\n }\n\n return this;\n };\n\n Interactable.prototype.setPerAction = function setPerAction(action, options) {\n // for all the default per-action options\n for (var option in options) {\n // if this option exists for this action\n if (option in defaults[action]) {\n // if the option in the options arg is an object value\n if (is.object(options[option])) {\n // duplicate the object and merge\n this.options[action][option] = clone(this.options[action][option] || {});\n extend(this.options[action][option], options[option]);\n\n if (is.object(defaults.perAction[option]) && 'enabled' in defaults.perAction[option]) {\n this.options[action][option].enabled = options[option].enabled === false ? false : true;\n }\n } else if (is.bool(options[option]) && is.object(defaults.perAction[option])) {\n this.options[action][option].enabled = options[option];\n } else if (options[option] !== undefined) {\n // or if it's not undefined, do a plain assignment\n this.options[action][option] = options[option];\n }\n }\n }\n };\n\n /**\n * The default function to get an Interactables bounding rect. Can be\n * overridden using {@link Interactable.rectChecker}.\n *\n * @param {Element} [element] The element to measure.\n * @return {object} The object's bounding rectangle.\n */\n\n\n Interactable.prototype.getRect = function getRect(element) {\n element = element || this.target;\n\n if (is.string(this.target) && !is.element(element)) {\n element = this._context.querySelector(this.target);\n }\n\n return getElementRect(element);\n };\n\n /**\n * Returns or sets the function used to calculate the interactable's\n * element's rectangle\n *\n * @param {function} [checker] A function which returns this Interactable's\n * bounding rectangle. See {@link Interactable.getRect}\n * @return {function | object} The checker function or this Interactable\n */\n\n\n Interactable.prototype.rectChecker = function rectChecker(checker) {\n if (is.function(checker)) {\n this.getRect = checker;\n\n return this;\n }\n\n if (checker === null) {\n delete this.options.getRect;\n\n return this;\n }\n\n return this.getRect;\n };\n\n Interactable.prototype._backCompatOption = function _backCompatOption(optionName, newValue) {\n if (trySelector(newValue) || is.object(newValue)) {\n this.options[optionName] = newValue;\n\n for (var _i = 0; _i < actions.names.length; _i++) {\n var _ref;\n\n _ref = actions.names[_i];\n var action = _ref;\n\n this.options[action][optionName] = newValue;\n }\n\n return this;\n }\n\n return this.options[optionName];\n };\n\n /**\n * Gets or sets the origin of the Interactable's element. The x and y\n * of the origin will be subtracted from action event coordinates.\n *\n * @param {Element | object | string} [origin] An HTML or SVG Element whose\n * rect will be used, an object eg. { x: 0, y: 0 } or string 'parent', 'self'\n * or any CSS selector\n *\n * @return {object} The current origin or this Interactable\n */\n\n\n Interactable.prototype.origin = function origin(newValue) {\n return this._backCompatOption('origin', newValue);\n };\n\n /**\n * Returns or sets the mouse coordinate types used to calculate the\n * movement of the pointer.\n *\n * @param {string} [newValue] Use 'client' if you will be scrolling while\n * interacting; Use 'page' if you want autoScroll to work\n * @return {string | object} The current deltaSource or this Interactable\n */\n\n\n Interactable.prototype.deltaSource = function deltaSource(newValue) {\n if (newValue === 'page' || newValue === 'client') {\n this.options.deltaSource = newValue;\n\n return this;\n }\n\n return this.options.deltaSource;\n };\n\n /**\n * Gets the selector context Node of the Interactable. The default is\n * `window.document`.\n *\n * @return {Node} The context Node of this Interactable\n */\n\n\n Interactable.prototype.context = function context() {\n return this._context;\n };\n\n Interactable.prototype.inContext = function inContext(element) {\n return this._context === element.ownerDocument || nodeContains(this._context, element);\n };\n\n /**\n * Calls listeners for the given InteractEvent type bound globally\n * and directly to this Interactable\n *\n * @param {InteractEvent} iEvent The InteractEvent object to be fired on this\n * Interactable\n * @return {Interactable} this Interactable\n */\n\n\n Interactable.prototype.fire = function fire(iEvent) {\n this.events.fire(iEvent);\n\n return this;\n };\n\n Interactable.prototype._onOffMultiple = function _onOffMultiple(method, eventType, listener, options) {\n if (is.string(eventType) && eventType.search(' ') !== -1) {\n eventType = eventType.trim().split(/ +/);\n }\n\n if (is.array(eventType)) {\n for (var _i2 = 0; _i2 < eventType.length; _i2++) {\n var _ref2;\n\n _ref2 = eventType[_i2];\n var type = _ref2;\n\n this[method](type, listener, options);\n }\n\n return true;\n }\n\n if (is.object(eventType)) {\n for (var prop in eventType) {\n this[method](prop, eventType[prop], listener);\n }\n\n return true;\n }\n };\n\n /**\n * Binds a listener for an InteractEvent, pointerEvent or DOM event.\n *\n * @param {string | array | object} eventType The types of events to listen\n * for\n * @param {function} listener The function event (s)\n * @param {object | boolean} [options] options object or useCapture flag\n * for addEventListener\n * @return {object} This Interactable\n */\n\n\n Interactable.prototype.on = function on(eventType, listener, options) {\n if (this._onOffMultiple('on', eventType, listener, options)) {\n return this;\n }\n\n if (eventType === 'wheel') {\n eventType = wheelEvent;\n }\n\n if (contains(Interactable.eventTypes, eventType)) {\n this.events.on(eventType, listener);\n }\n // delegated event for selector\n else if (is.string(this.target)) {\n events.addDelegate(this.target, this._context, eventType, listener, options);\n } else {\n events.add(this.target, eventType, listener, options);\n }\n\n return this;\n };\n\n /**\n * Removes an InteractEvent, pointerEvent or DOM event listener\n *\n * @param {string | array | object} eventType The types of events that were\n * listened for\n * @param {function} listener The listener function to be removed\n * @param {object | boolean} [options] options object or useCapture flag for\n * removeEventListener\n * @return {object} This Interactable\n */\n\n\n Interactable.prototype.off = function off(eventType, listener, options) {\n if (this._onOffMultiple('off', eventType, listener, options)) {\n return this;\n }\n\n if (eventType === 'wheel') {\n eventType = wheelEvent;\n }\n\n // if it is an action event type\n if (contains(Interactable.eventTypes, eventType)) {\n this.events.off(eventType, listener);\n }\n // delegated event\n else if (is.string(this.target)) {\n events.removeDelegate(this.target, this._context, eventType, listener, options);\n }\n // remove listener from this Interatable's element\n else {\n events.remove(this.target, eventType, listener, options);\n }\n\n return this;\n };\n\n /**\n * Reset the options of this Interactable\n *\n * @param {object} options The new settings to apply\n * @return {object} This Interactable\n */\n\n\n Interactable.prototype.set = function set(options) {\n if (!is.object(options)) {\n options = {};\n }\n\n this.options = clone(defaults.base);\n\n var perActions = clone(defaults.perAction);\n\n for (var actionName in actions.methodDict) {\n var methodName = actions.methodDict[actionName];\n\n this.options[actionName] = clone(defaults[actionName]);\n\n this.setPerAction(actionName, perActions);\n\n this[methodName](options[actionName]);\n }\n\n for (var _i3 = 0; _i3 < Interactable.settingsMethods.length; _i3++) {\n var _ref3;\n\n _ref3 = Interactable.settingsMethods[_i3];\n var setting = _ref3;\n\n this.options[setting] = defaults.base[setting];\n\n if (setting in options) {\n this[setting](options[setting]);\n }\n }\n\n signals.fire('set', {\n options: options,\n interactable: this\n });\n\n return this;\n };\n\n /**\n * Remove this interactable from the list of interactables and remove it's\n * action capabilities and event listeners\n *\n * @return {interact}\n */\n\n\n Interactable.prototype.unset = function unset() {\n events.remove(this.target, 'all');\n\n if (is.string(this.target)) {\n // remove delegated events\n for (var type in events.delegatedEvents) {\n var delegated = events.delegatedEvents[type];\n\n if (delegated.selectors[0] === this.target && delegated.contexts[0] === this._context) {\n\n delegated.selectors.splice(0, 1);\n delegated.contexts.splice(0, 1);\n delegated.listeners.splice(0, 1);\n\n // remove the arrays if they are empty\n if (!delegated.selectors.length) {\n delegated[type] = null;\n }\n }\n\n events.remove(this._context, type, events.delegateListener);\n events.remove(this._context, type, events.delegateUseCapture, true);\n }\n } else {\n events.remove(this, 'all');\n }\n\n signals.fire('unset', { interactable: this });\n\n scope.interactables.splice(scope.interactables.indexOf(this), 1);\n\n // Stop related interactions when an Interactable is unset\n for (var _i4 = 0; _i4 < (scope.interactions || []).length; _i4++) {\n var _ref4;\n\n _ref4 = (scope.interactions || [])[_i4];\n var interaction = _ref4;\n\n if (interaction.target === this && interaction.interacting() && !interaction._ending) {\n interaction.stop();\n }\n }\n\n return scope.interact;\n };\n\n return Interactable;\n}();\n\nscope.interactables.indexOfElement = function indexOfElement(target, context) {\n context = context || scope.document;\n\n for (var i = 0; i < this.length; i++) {\n var interactable = this[i];\n\n if (interactable.target === target && interactable._context === context) {\n return i;\n }\n }\n return -1;\n};\n\nscope.interactables.get = function interactableGet(element, options, dontCheckInContext) {\n var ret = this[this.indexOfElement(element, options && options.context)];\n\n return ret && (is.string(element) || dontCheckInContext || ret.inContext(element)) ? ret : null;\n};\n\nscope.interactables.forEachMatch = function (element, callback) {\n for (var _i5 = 0; _i5 < this.length; _i5++) {\n var _ref5;\n\n _ref5 = this[_i5];\n var interactable = _ref5;\n\n var ret = void 0;\n\n if ((is.string(interactable.target)\n // target is a selector and the element matches\n ? is.element(element) && matchesSelector(element, interactable.target) :\n // target is the element\n element === interactable.target) &&\n // the element is in context\n interactable.inContext(element)) {\n ret = callback(interactable);\n }\n\n if (ret !== undefined) {\n return ret;\n }\n }\n};\n\n// all interact.js eventTypes\nInteractable.eventTypes = scope.eventTypes = [];\n\nInteractable.signals = signals;\n\nInteractable.settingsMethods = ['deltaSource', 'origin', 'preventDefault', 'rectChecker'];\n\nmodule.exports = Interactable;\n\n},{\"./Eventable\":2,\"./actions/base\":6,\"./defaultOptions\":18,\"./scope\":33,\"./utils/Signals\":34,\"./utils/arr\":35,\"./utils/browser\":36,\"./utils/clone\":37,\"./utils/domUtils\":39,\"./utils/events\":40,\"./utils/extend\":41,\"./utils/is\":46,\"./utils/window\":52}],5:[function(require,module,exports){\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar scope = require('./scope');\nvar utils = require('./utils');\nvar events = require('./utils/events');\nvar browser = require('./utils/browser');\nvar domObjects = require('./utils/domObjects');\nvar finder = require('./utils/interactionFinder');\nvar signals = require('./utils/Signals').new();\n\nvar listeners = {};\nvar methodNames = ['pointerDown', 'pointerMove', 'pointerUp', 'updatePointer', 'removePointer'];\n\n// for ignoring browser's simulated mouse events\nvar prevTouchTime = 0;\n\n// all active and idle interactions\nscope.interactions = [];\n\nvar Interaction = function () {\n /** */\n function Interaction(_ref) {\n var pointerType = _ref.pointerType;\n\n _classCallCheck(this, Interaction);\n\n this.target = null; // current interactable being interacted with\n this.element = null; // the target element of the interactable\n\n this.prepared = { // action that's ready to be fired on next move event\n name: null,\n axis: null,\n edges: null\n };\n\n // keep track of added pointers\n this.pointers = [];\n this.pointerIds = [];\n this.downTargets = [];\n this.downTimes = [];\n\n // Previous native pointer move event coordinates\n this.prevCoords = {\n page: { x: 0, y: 0 },\n client: { x: 0, y: 0 },\n timeStamp: 0\n };\n // current native pointer move event coordinates\n this.curCoords = {\n page: { x: 0, y: 0 },\n client: { x: 0, y: 0 },\n timeStamp: 0\n };\n\n // Starting InteractEvent pointer coordinates\n this.startCoords = {\n page: { x: 0, y: 0 },\n client: { x: 0, y: 0 },\n timeStamp: 0\n };\n\n // Change in coordinates and time of the pointer\n this.pointerDelta = {\n page: { x: 0, y: 0, vx: 0, vy: 0, speed: 0 },\n client: { x: 0, y: 0, vx: 0, vy: 0, speed: 0 },\n timeStamp: 0\n };\n\n this.downEvent = null; // pointerdown/mousedown/touchstart event\n this.downPointer = {};\n\n this._eventTarget = null;\n this._curEventTarget = null;\n\n this.prevEvent = null; // previous action event\n\n this.pointerIsDown = false;\n this.pointerWasMoved = false;\n this._interacting = false;\n this._ending = false;\n\n this.pointerType = pointerType;\n\n signals.fire('new', this);\n\n scope.interactions.push(this);\n }\n\n Interaction.prototype.pointerDown = function pointerDown(pointer, event, eventTarget) {\n var pointerIndex = this.updatePointer(pointer, event, true);\n\n signals.fire('down', {\n pointer: pointer,\n event: event,\n eventTarget: eventTarget,\n pointerIndex: pointerIndex,\n interaction: this\n });\n };\n\n /**\n * ```js\n * interact(target)\n * .draggable({\n * // disable the default drag start by down->move\n * manualStart: true\n * })\n * // start dragging after the user holds the pointer down\n * .on('hold', function (event) {\n * var interaction = event.interaction;\n *\n * if (!interaction.interacting()) {\n * interaction.start({ name: 'drag' },\n * event.interactable,\n * event.currentTarget);\n * }\n * });\n * ```\n *\n * Start an action with the given Interactable and Element as tartgets. The\n * action must be enabled for the target Interactable and an appropriate\n * number of pointers must be held down - 1 for drag/resize, 2 for gesture.\n *\n * Use it with `interactable.able({ manualStart: false })` to always\n * [start actions manually](https://github.com/taye/interact.js/issues/114)\n *\n * @param {object} action The action to be performed - drag, resize, etc.\n * @param {Interactable} target The Interactable to target\n * @param {Element} element The DOM Element to target\n * @return {object} interact\n */\n\n\n Interaction.prototype.start = function start(action, target, element) {\n if (this.interacting() || !this.pointerIsDown || this.pointerIds.length < (action.name === 'gesture' ? 2 : 1)) {\n return;\n }\n\n // if this interaction had been removed after stopping\n // add it back\n if (scope.interactions.indexOf(this) === -1) {\n scope.interactions.push(this);\n }\n\n utils.copyAction(this.prepared, action);\n this.target = target;\n this.element = element;\n\n signals.fire('action-start', {\n interaction: this,\n event: this.downEvent\n });\n };\n\n Interaction.prototype.pointerMove = function pointerMove(pointer, event, eventTarget) {\n if (!this.simulation) {\n this.updatePointer(pointer);\n utils.setCoords(this.curCoords, this.pointers);\n }\n\n var duplicateMove = this.curCoords.page.x === this.prevCoords.page.x && this.curCoords.page.y === this.prevCoords.page.y && this.curCoords.client.x === this.prevCoords.client.x && this.curCoords.client.y === this.prevCoords.client.y;\n\n var dx = void 0;\n var dy = void 0;\n\n // register movement greater than pointerMoveTolerance\n if (this.pointerIsDown && !this.pointerWasMoved) {\n dx = this.curCoords.client.x - this.startCoords.client.x;\n dy = this.curCoords.client.y - this.startCoords.client.y;\n\n this.pointerWasMoved = utils.hypot(dx, dy) > Interaction.pointerMoveTolerance;\n }\n\n var signalArg = {\n pointer: pointer,\n pointerIndex: this.getPointerIndex(pointer),\n event: event,\n eventTarget: eventTarget,\n dx: dx,\n dy: dy,\n duplicate: duplicateMove,\n interaction: this,\n interactingBeforeMove: this.interacting()\n };\n\n if (!duplicateMove) {\n // set pointer coordinate, time changes and speeds\n utils.setCoordDeltas(this.pointerDelta, this.prevCoords, this.curCoords);\n }\n\n signals.fire('move', signalArg);\n\n if (!duplicateMove) {\n // if interacting, fire an 'action-move' signal etc\n if (this.interacting()) {\n this.doMove(signalArg);\n }\n\n if (this.pointerWasMoved) {\n utils.copyCoords(this.prevCoords, this.curCoords);\n }\n }\n };\n\n /**\n * ```js\n * interact(target)\n * .draggable(true)\n * .on('dragmove', function (event) {\n * if (someCondition) {\n * // change the snap settings\n * event.interactable.draggable({ snap: { targets: [] }});\n * // fire another move event with re-calculated snap\n * event.interaction.doMove();\n * }\n * });\n * ```\n *\n * Force a move of the current action at the same coordinates. Useful if\n * snap/restrict has been changed and you want a movement with the new\n * settings.\n */\n\n\n Interaction.prototype.doMove = function doMove(signalArg) {\n signalArg = utils.extend({\n pointer: this.pointers[0],\n event: this.prevEvent,\n eventTarget: this._eventTarget,\n interaction: this\n }, signalArg || {});\n\n signals.fire('before-action-move', signalArg);\n\n if (!this._dontFireMove) {\n signals.fire('action-move', signalArg);\n }\n\n this._dontFireMove = false;\n };\n\n // End interact move events and stop auto-scroll unless simulation is running\n\n\n Interaction.prototype.pointerUp = function pointerUp(pointer, event, eventTarget, curEventTarget) {\n var pointerIndex = this.getPointerIndex(pointer);\n\n signals.fire(/cancel$/i.test(event.type) ? 'cancel' : 'up', {\n pointer: pointer,\n pointerIndex: pointerIndex,\n event: event,\n eventTarget: eventTarget,\n curEventTarget: curEventTarget,\n interaction: this\n });\n\n if (!this.simulation) {\n this.end(event);\n }\n\n this.pointerIsDown = false;\n this.removePointer(pointer, event);\n };\n\n /**\n * ```js\n * interact(target)\n * .draggable(true)\n * .on('move', function (event) {\n * if (event.pageX > 1000) {\n * // end the current action\n * event.interaction.end();\n * // stop all further listeners from being called\n * event.stopImmediatePropagation();\n * }\n * });\n * ```\n *\n * Stop the current action and fire an end event. Inertial movement does\n * not happen.\n *\n * @param {PointerEvent} [event]\n */\n\n\n Interaction.prototype.end = function end(event) {\n this._ending = true;\n\n event = event || this.prevEvent;\n\n if (this.interacting()) {\n signals.fire('action-end', {\n event: event,\n interaction: this\n });\n }\n\n this.stop();\n this._ending = false;\n };\n\n Interaction.prototype.currentAction = function currentAction() {\n return this._interacting ? this.prepared.name : null;\n };\n\n Interaction.prototype.interacting = function interacting() {\n return this._interacting;\n };\n\n /** */\n\n\n Interaction.prototype.stop = function stop() {\n signals.fire('stop', { interaction: this });\n\n if (this._interacting) {\n signals.fire('stop-active', { interaction: this });\n signals.fire('stop-' + this.prepared.name, { interaction: this });\n }\n\n this.target = this.element = null;\n\n this._interacting = false;\n this.prepared.name = this.prevEvent = null;\n };\n\n Interaction.prototype.getPointerIndex = function getPointerIndex(pointer) {\n // mouse and pen interactions may have only one pointer\n if (this.pointerType === 'mouse' || this.pointerType === 'pen') {\n return 0;\n }\n\n return this.pointerIds.indexOf(utils.getPointerId(pointer));\n };\n\n Interaction.prototype.updatePointer = function updatePointer(pointer, event) {\n var down = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : event && /(down|start)$/i.test(event.type);\n\n var id = utils.getPointerId(pointer);\n var index = this.getPointerIndex(pointer);\n\n if (index === -1) {\n index = this.pointerIds.length;\n this.pointerIds[index] = id;\n }\n\n if (down) {\n signals.fire('update-pointer-down', {\n pointer: pointer,\n event: event,\n down: down,\n pointerId: id,\n pointerIndex: index,\n interaction: this\n });\n }\n\n this.pointers[index] = pointer;\n\n return index;\n };\n\n Interaction.prototype.removePointer = function removePointer(pointer, event) {\n var index = this.getPointerIndex(pointer);\n\n if (index === -1) {\n return;\n }\n\n signals.fire('remove-pointer', {\n pointer: pointer,\n event: event,\n pointerIndex: index,\n interaction: this\n });\n\n this.pointers.splice(index, 1);\n this.pointerIds.splice(index, 1);\n this.downTargets.splice(index, 1);\n this.downTimes.splice(index, 1);\n };\n\n Interaction.prototype._updateEventTargets = function _updateEventTargets(target, currentTarget) {\n this._eventTarget = target;\n this._curEventTarget = currentTarget;\n };\n\n return Interaction;\n}();\n\nfor (var _i = 0; _i < methodNames.length; _i++) {\n var method = methodNames[_i];\n listeners[method] = doOnInteractions(method);\n}\n\nfunction doOnInteractions(method) {\n return function (event) {\n var pointerType = utils.getPointerType(event);\n\n var _utils$getEventTarget = utils.getEventTargets(event),\n eventTarget = _utils$getEventTarget[0],\n curEventTarget = _utils$getEventTarget[1];\n\n var matches = []; // [ [pointer, interaction], ...]\n\n if (browser.supportsTouch && /touch/.test(event.type)) {\n prevTouchTime = new Date().getTime();\n\n for (var _i2 = 0; _i2 < event.changedTouches.length; _i2++) {\n var _ref2;\n\n _ref2 = event.changedTouches[_i2];\n var changedTouch = _ref2;\n\n var pointer = changedTouch;\n var interaction = finder.search(pointer, event.type, eventTarget);\n\n matches.push([pointer, interaction || new Interaction({ pointerType: pointerType })]);\n }\n } else {\n var invalidPointer = false;\n\n if (!browser.supportsPointerEvent && /mouse/.test(event.type)) {\n // ignore mouse events while touch interactions are active\n for (var i = 0; i < scope.interactions.length && !invalidPointer; i++) {\n invalidPointer = scope.interactions[i].pointerType !== 'mouse' && scope.interactions[i].pointerIsDown;\n }\n\n // try to ignore mouse events that are simulated by the browser\n // after a touch event\n invalidPointer = invalidPointer || new Date().getTime() - prevTouchTime < 500\n // on iOS and Firefox Mobile, MouseEvent.timeStamp is zero if simulated\n || event.timeStamp === 0;\n }\n\n if (!invalidPointer) {\n var _interaction = finder.search(event, event.type, eventTarget);\n\n if (!_interaction) {\n _interaction = new Interaction({ pointerType: pointerType });\n }\n\n matches.push([event, _interaction]);\n }\n }\n\n for (var _i3 = 0; _i3 < matches.length; _i3++) {\n var _ref3 = matches[_i3];\n var _pointer = _ref3[0];\n var _interaction2 = _ref3[1];\n\n _interaction2._updateEventTargets(eventTarget, curEventTarget);\n _interaction2[method](_pointer, event, eventTarget, curEventTarget);\n }\n };\n}\n\nfunction endAll(event) {\n for (var _i4 = 0; _i4 < scope.interactions.length; _i4++) {\n var _ref4;\n\n _ref4 = scope.interactions[_i4];\n var interaction = _ref4;\n\n interaction.end(event);\n signals.fire('endall', { event: event, interaction: interaction });\n }\n}\n\nvar docEvents = {/* 'eventType': listenerFunc */};\nvar pEventTypes = browser.pEventTypes;\n\nif (domObjects.PointerEvent) {\n docEvents[pEventTypes.down] = listeners.pointerDown;\n docEvents[pEventTypes.move] = listeners.pointerMove;\n docEvents[pEventTypes.up] = listeners.pointerUp;\n docEvents[pEventTypes.cancel] = listeners.pointerUp;\n} else {\n docEvents.mousedown = listeners.pointerDown;\n docEvents.mousemove = listeners.pointerMove;\n docEvents.mouseup = listeners.pointerUp;\n\n docEvents.touchstart = listeners.pointerDown;\n docEvents.touchmove = listeners.pointerMove;\n docEvents.touchend = listeners.pointerUp;\n docEvents.touchcancel = listeners.pointerUp;\n}\n\ndocEvents.blur = endAll;\n\nfunction onDocSignal(_ref5, signalName) {\n var doc = _ref5.doc;\n\n var eventMethod = signalName.indexOf('add') === 0 ? events.add : events.remove;\n\n // delegate event listener\n for (var eventType in scope.delegatedEvents) {\n eventMethod(doc, eventType, events.delegateListener);\n eventMethod(doc, eventType, events.delegateUseCapture, true);\n }\n\n for (var _eventType in docEvents) {\n eventMethod(doc, _eventType, docEvents[_eventType], browser.isIOS ? { passive: false } : undefined);\n }\n}\n\nsignals.on('update-pointer-down', function (_ref6) {\n var interaction = _ref6.interaction,\n pointer = _ref6.pointer,\n pointerId = _ref6.pointerId,\n pointerIndex = _ref6.pointerIndex,\n event = _ref6.event,\n eventTarget = _ref6.eventTarget,\n down = _ref6.down;\n\n interaction.pointerIds[pointerIndex] = pointerId;\n interaction.pointers[pointerIndex] = pointer;\n\n if (down) {\n interaction.pointerIsDown = true;\n }\n\n if (!interaction.interacting()) {\n utils.setCoords(interaction.startCoords, interaction.pointers);\n\n utils.copyCoords(interaction.curCoords, interaction.startCoords);\n utils.copyCoords(interaction.prevCoords, interaction.startCoords);\n\n interaction.downEvent = event;\n interaction.downTimes[pointerIndex] = interaction.curCoords.timeStamp;\n interaction.downTargets[pointerIndex] = eventTarget || event && utils.getEventTargets(event)[0];\n interaction.pointerWasMoved = false;\n\n utils.pointerExtend(interaction.downPointer, pointer);\n }\n});\n\nscope.signals.on('add-document', onDocSignal);\nscope.signals.on('remove-document', onDocSignal);\n\nInteraction.pointerMoveTolerance = 1;\nInteraction.doOnInteractions = doOnInteractions;\nInteraction.endAll = endAll;\nInteraction.signals = signals;\nInteraction.docEvents = docEvents;\n\nscope.endAllInteractions = endAll;\n\nmodule.exports = Interaction;\n\n},{\"./scope\":33,\"./utils\":44,\"./utils/Signals\":34,\"./utils/browser\":36,\"./utils/domObjects\":38,\"./utils/events\":40,\"./utils/interactionFinder\":45}],6:[function(require,module,exports){\n'use strict';\n\nvar Interaction = require('../Interaction');\nvar InteractEvent = require('../InteractEvent');\n\nvar actions = {\n firePrepared: firePrepared,\n names: [],\n methodDict: {}\n};\n\nInteraction.signals.on('action-start', function (_ref) {\n var interaction = _ref.interaction,\n event = _ref.event;\n\n interaction._interacting = true;\n firePrepared(interaction, event, 'start');\n});\n\nInteraction.signals.on('action-move', function (_ref2) {\n var interaction = _ref2.interaction,\n event = _ref2.event,\n preEnd = _ref2.preEnd;\n\n firePrepared(interaction, event, 'move', preEnd);\n\n // if the action was ended in a listener\n if (!interaction.interacting()) {\n return false;\n }\n});\n\nInteraction.signals.on('action-end', function (_ref3) {\n var interaction = _ref3.interaction,\n event = _ref3.event;\n\n firePrepared(interaction, event, 'end');\n});\n\nfunction firePrepared(interaction, event, phase, preEnd) {\n var actionName = interaction.prepared.name;\n\n var newEvent = new InteractEvent(interaction, event, actionName, phase, interaction.element, null, preEnd);\n\n interaction.target.fire(newEvent);\n interaction.prevEvent = newEvent;\n}\n\nmodule.exports = actions;\n\n},{\"../InteractEvent\":3,\"../Interaction\":5}],7:[function(require,module,exports){\n'use strict';\n\nvar actions = require('./base');\nvar utils = require('../utils');\nvar InteractEvent = require('../InteractEvent');\n/** @lends Interactable */\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar defaultOptions = require('../defaultOptions');\n\nvar drag = {\n defaults: {\n enabled: false,\n mouseButtons: null,\n\n origin: null,\n snap: null,\n restrict: null,\n inertia: null,\n autoScroll: null,\n\n startAxis: 'xy',\n lockAxis: 'xy'\n },\n\n checker: function checker(pointer, event, interactable) {\n var dragOptions = interactable.options.drag;\n\n return dragOptions.enabled ? { name: 'drag', axis: dragOptions.lockAxis === 'start' ? dragOptions.startAxis : dragOptions.lockAxis } : null;\n },\n\n getCursor: function getCursor() {\n return 'move';\n }\n};\n\nInteraction.signals.on('before-action-move', function (_ref) {\n var interaction = _ref.interaction;\n\n if (interaction.prepared.name !== 'drag') {\n return;\n }\n\n var axis = interaction.prepared.axis;\n\n if (axis === 'x') {\n interaction.curCoords.page.y = interaction.startCoords.page.y;\n interaction.curCoords.client.y = interaction.startCoords.client.y;\n\n interaction.pointerDelta.page.speed = Math.abs(interaction.pointerDelta.page.vx);\n interaction.pointerDelta.client.speed = Math.abs(interaction.pointerDelta.client.vx);\n interaction.pointerDelta.client.vy = 0;\n interaction.pointerDelta.page.vy = 0;\n } else if (axis === 'y') {\n interaction.curCoords.page.x = interaction.startCoords.page.x;\n interaction.curCoords.client.x = interaction.startCoords.client.x;\n\n interaction.pointerDelta.page.speed = Math.abs(interaction.pointerDelta.page.vy);\n interaction.pointerDelta.client.speed = Math.abs(interaction.pointerDelta.client.vy);\n interaction.pointerDelta.client.vx = 0;\n interaction.pointerDelta.page.vx = 0;\n }\n});\n\n// dragmove\nInteractEvent.signals.on('new', function (_ref2) {\n var iEvent = _ref2.iEvent,\n interaction = _ref2.interaction;\n\n if (iEvent.type !== 'dragmove') {\n return;\n }\n\n var axis = interaction.prepared.axis;\n\n if (axis === 'x') {\n iEvent.pageY = interaction.startCoords.page.y;\n iEvent.clientY = interaction.startCoords.client.y;\n iEvent.dy = 0;\n } else if (axis === 'y') {\n iEvent.pageX = interaction.startCoords.page.x;\n iEvent.clientX = interaction.startCoords.client.x;\n iEvent.dx = 0;\n }\n});\n\n/**\n * ```js\n * interact(element).draggable({\n * onstart: function (event) {},\n * onmove : function (event) {},\n * onend : function (event) {},\n *\n * // the axis in which the first movement must be\n * // for the drag sequence to start\n * // 'xy' by default - any direction\n * startAxis: 'x' || 'y' || 'xy',\n *\n * // 'xy' by default - don't restrict to one axis (move in any direction)\n * // 'x' or 'y' to restrict movement to either axis\n * // 'start' to restrict movement to the axis the drag started in\n * lockAxis: 'x' || 'y' || 'xy' || 'start',\n *\n * // max number of drags that can happen concurrently\n * // with elements of this Interactable. Infinity by default\n * max: Infinity,\n *\n * // max number of drags that can target the same element+Interactable\n * // 1 by default\n * maxPerElement: 2\n * });\n *\n * var isDraggable = interact('element').draggable(); // true\n * ```\n *\n * Get or set whether drag actions can be performed on the target\n *\n * @param {boolean | object} [options] true/false or An object with event\n * listeners to be fired on drag events (object makes the Interactable\n * draggable)\n * @return {boolean | Interactable} boolean indicating if this can be the\n * target of drag events, or this Interctable\n */\nInteractable.prototype.draggable = function (options) {\n if (utils.is.object(options)) {\n this.options.drag.enabled = options.enabled === false ? false : true;\n this.setPerAction('drag', options);\n this.setOnEvents('drag', options);\n\n if (/^(xy|x|y|start)$/.test(options.lockAxis)) {\n this.options.drag.lockAxis = options.lockAxis;\n }\n if (/^(xy|x|y)$/.test(options.startAxis)) {\n this.options.drag.startAxis = options.startAxis;\n }\n\n return this;\n }\n\n if (utils.is.bool(options)) {\n this.options.drag.enabled = options;\n\n if (!options) {\n this.ondragstart = this.ondragstart = this.ondragend = null;\n }\n\n return this;\n }\n\n return this.options.drag;\n};\n\nactions.drag = drag;\nactions.names.push('drag');\nutils.merge(Interactable.eventTypes, ['dragstart', 'dragmove', 'draginertiastart', 'draginertiaresume', 'dragend']);\nactions.methodDict.drag = 'draggable';\n\ndefaultOptions.drag = drag.defaults;\n\nmodule.exports = drag;\n\n},{\"../InteractEvent\":3,\"../Interactable\":4,\"../Interaction\":5,\"../defaultOptions\":18,\"../utils\":44,\"./base\":6}],8:[function(require,module,exports){\n'use strict';\n\nvar actions = require('./base');\nvar utils = require('../utils');\nvar scope = require('../scope');\n/** @lends module:interact */\nvar interact = require('../interact');\nvar InteractEvent = require('../InteractEvent');\n/** @lends Interactable */\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar defaultOptions = require('../defaultOptions');\n\nvar drop = {\n defaults: {\n enabled: false,\n accept: null,\n overlap: 'pointer'\n }\n};\n\nvar dynamicDrop = false;\n\nInteraction.signals.on('action-start', function (_ref) {\n var interaction = _ref.interaction,\n event = _ref.event;\n\n if (interaction.prepared.name !== 'drag') {\n return;\n }\n\n // reset active dropzones\n interaction.activeDrops.dropzones = [];\n interaction.activeDrops.elements = [];\n interaction.activeDrops.rects = [];\n\n interaction.dropEvents = null;\n\n if (!interaction.dynamicDrop) {\n setActiveDrops(interaction.activeDrops, interaction.element);\n }\n\n var dragEvent = interaction.prevEvent;\n var dropEvents = getDropEvents(interaction, event, dragEvent);\n\n if (dropEvents.activate) {\n fireActiveDrops(interaction.activeDrops, dropEvents.activate);\n }\n});\n\nInteractEvent.signals.on('new', function (_ref2) {\n var interaction = _ref2.interaction,\n iEvent = _ref2.iEvent,\n event = _ref2.event;\n\n if (iEvent.type !== 'dragmove' && iEvent.type !== 'dragend') {\n return;\n }\n\n var draggableElement = interaction.element;\n var dragEvent = iEvent;\n var dropResult = getDrop(dragEvent, event, draggableElement);\n\n interaction.dropTarget = dropResult.dropzone;\n interaction.dropElement = dropResult.element;\n\n interaction.dropEvents = getDropEvents(interaction, event, dragEvent);\n});\n\nInteraction.signals.on('action-move', function (_ref3) {\n var interaction = _ref3.interaction;\n\n if (interaction.prepared.name !== 'drag') {\n return;\n }\n\n fireDropEvents(interaction, interaction.dropEvents);\n});\n\nInteraction.signals.on('action-end', function (_ref4) {\n var interaction = _ref4.interaction;\n\n if (interaction.prepared.name === 'drag') {\n fireDropEvents(interaction, interaction.dropEvents);\n }\n});\n\nInteraction.signals.on('stop-drag', function (_ref5) {\n var interaction = _ref5.interaction;\n\n interaction.activeDrops = {\n dropzones: null,\n elements: null,\n rects: null\n };\n\n interaction.dropEvents = null;\n});\n\nfunction collectDrops(activeDrops, element) {\n var drops = [];\n var elements = [];\n\n // collect all dropzones and their elements which qualify for a drop\n for (var _i = 0; _i < scope.interactables.length; _i++) {\n var _ref6;\n\n _ref6 = scope.interactables[_i];\n var current = _ref6;\n\n if (!current.options.drop.enabled) {\n continue;\n }\n\n var accept = current.options.drop.accept;\n\n // test the draggable element against the dropzone's accept setting\n if (utils.is.element(accept) && accept !== element || utils.is.string(accept) && !utils.matchesSelector(element, accept)) {\n\n continue;\n }\n\n // query for new elements if necessary\n var dropElements = utils.is.string(current.target) ? current._context.querySelectorAll(current.target) : [current.target];\n\n for (var _i2 = 0; _i2 < dropElements.length; _i2++) {\n var _ref7;\n\n _ref7 = dropElements[_i2];\n var currentElement = _ref7;\n\n if (currentElement !== element) {\n drops.push(current);\n elements.push(currentElement);\n }\n }\n }\n\n return {\n elements: elements,\n dropzones: drops\n };\n}\n\nfunction fireActiveDrops(activeDrops, event) {\n var prevElement = void 0;\n\n // loop through all active dropzones and trigger event\n for (var i = 0; i < activeDrops.dropzones.length; i++) {\n var current = activeDrops.dropzones[i];\n var currentElement = activeDrops.elements[i];\n\n // prevent trigger of duplicate events on same element\n if (currentElement !== prevElement) {\n // set current element as event target\n event.target = currentElement;\n current.fire(event);\n }\n prevElement = currentElement;\n }\n}\n\n// Collect a new set of possible drops and save them in activeDrops.\n// setActiveDrops should always be called when a drag has just started or a\n// drag event happens while dynamicDrop is true\nfunction setActiveDrops(activeDrops, dragElement) {\n // get dropzones and their elements that could receive the draggable\n var possibleDrops = collectDrops(activeDrops, dragElement);\n\n activeDrops.dropzones = possibleDrops.dropzones;\n activeDrops.elements = possibleDrops.elements;\n activeDrops.rects = [];\n\n for (var i = 0; i < activeDrops.dropzones.length; i++) {\n activeDrops.rects[i] = activeDrops.dropzones[i].getRect(activeDrops.elements[i]);\n }\n}\n\nfunction getDrop(dragEvent, event, dragElement) {\n var interaction = dragEvent.interaction;\n var validDrops = [];\n\n if (dynamicDrop) {\n setActiveDrops(interaction.activeDrops, dragElement);\n }\n\n // collect all dropzones and their elements which qualify for a drop\n for (var j = 0; j < interaction.activeDrops.dropzones.length; j++) {\n var current = interaction.activeDrops.dropzones[j];\n var currentElement = interaction.activeDrops.elements[j];\n var rect = interaction.activeDrops.rects[j];\n\n validDrops.push(current.dropCheck(dragEvent, event, interaction.target, dragElement, currentElement, rect) ? currentElement : null);\n }\n\n // get the most appropriate dropzone based on DOM depth and order\n var dropIndex = utils.indexOfDeepestElement(validDrops);\n\n return {\n dropzone: interaction.activeDrops.dropzones[dropIndex] || null,\n element: interaction.activeDrops.elements[dropIndex] || null\n };\n}\n\nfunction getDropEvents(interaction, pointerEvent, dragEvent) {\n var dropEvents = {\n enter: null,\n leave: null,\n activate: null,\n deactivate: null,\n move: null,\n drop: null\n };\n\n var tmpl = {\n dragEvent: dragEvent,\n interaction: interaction,\n target: interaction.dropElement,\n dropzone: interaction.dropTarget,\n relatedTarget: dragEvent.target,\n draggable: dragEvent.interactable,\n timeStamp: dragEvent.timeStamp\n };\n\n if (interaction.dropElement !== interaction.prevDropElement) {\n // if there was a prevDropTarget, create a dragleave event\n if (interaction.prevDropTarget) {\n dropEvents.leave = utils.extend({ type: 'dragleave' }, tmpl);\n\n dragEvent.dragLeave = dropEvents.leave.target = interaction.prevDropElement;\n dragEvent.prevDropzone = dropEvents.leave.dropzone = interaction.prevDropTarget;\n }\n // if the dropTarget is not null, create a dragenter event\n if (interaction.dropTarget) {\n dropEvents.enter = {\n dragEvent: dragEvent,\n interaction: interaction,\n target: interaction.dropElement,\n dropzone: interaction.dropTarget,\n relatedTarget: dragEvent.target,\n draggable: dragEvent.interactable,\n timeStamp: dragEvent.timeStamp,\n type: 'dragenter'\n };\n\n dragEvent.dragEnter = interaction.dropElement;\n dragEvent.dropzone = interaction.dropTarget;\n }\n }\n\n if (dragEvent.type === 'dragend' && interaction.dropTarget) {\n dropEvents.drop = utils.extend({ type: 'drop' }, tmpl);\n\n dragEvent.dropzone = interaction.dropTarget;\n dragEvent.relatedTarget = interaction.dropElement;\n }\n if (dragEvent.type === 'dragstart') {\n dropEvents.activate = utils.extend({ type: 'dropactivate' }, tmpl);\n\n dropEvents.activate.target = null;\n dropEvents.activate.dropzone = null;\n }\n if (dragEvent.type === 'dragend') {\n dropEvents.deactivate = utils.extend({ type: 'dropdeactivate' }, tmpl);\n\n dropEvents.deactivate.target = null;\n dropEvents.deactivate.dropzone = null;\n }\n if (dragEvent.type === 'dragmove' && interaction.dropTarget) {\n dropEvents.move = utils.extend({\n dragmove: dragEvent,\n type: 'dropmove'\n }, tmpl);\n\n dragEvent.dropzone = interaction.dropTarget;\n }\n\n return dropEvents;\n}\n\nfunction fireDropEvents(interaction, dropEvents) {\n var activeDrops = interaction.activeDrops,\n prevDropTarget = interaction.prevDropTarget,\n dropTarget = interaction.dropTarget,\n dropElement = interaction.dropElement;\n\n\n if (dropEvents.leave) {\n prevDropTarget.fire(dropEvents.leave);\n }\n if (dropEvents.move) {\n dropTarget.fire(dropEvents.move);\n }\n if (dropEvents.enter) {\n dropTarget.fire(dropEvents.enter);\n }\n if (dropEvents.drop) {\n dropTarget.fire(dropEvents.drop);\n }\n if (dropEvents.deactivate) {\n fireActiveDrops(activeDrops, dropEvents.deactivate);\n }\n\n interaction.prevDropTarget = dropTarget;\n interaction.prevDropElement = dropElement;\n}\n\n/**\n * ```js\n * interact(target)\n * .dropChecker(function(dragEvent, // related dragmove or dragend event\n * event, // TouchEvent/PointerEvent/MouseEvent\n * dropped, // bool result of the default checker\n * dropzone, // dropzone Interactable\n * dropElement, // dropzone elemnt\n * draggable, // draggable Interactable\n * draggableElement) {// draggable element\n *\n * return dropped && event.target.hasAttribute('allow-drop');\n * }\n * ```\n *\n * ```js\n * interact('.drop').dropzone({\n * accept: '.can-drop' || document.getElementById('single-drop'),\n * overlap: 'pointer' || 'center' || zeroToOne\n * }\n * ```\n *\n * Returns or sets whether draggables can be dropped onto this target to\n * trigger drop events\n *\n * Dropzones can receive the following events:\n * - `dropactivate` and `dropdeactivate` when an acceptable drag starts and ends\n * - `dragenter` and `dragleave` when a draggable enters and leaves the dropzone\n * - `dragmove` when a draggable that has entered the dropzone is moved\n * - `drop` when a draggable is dropped into this dropzone\n *\n * Use the `accept` option to allow only elements that match the given CSS\n * selector or element. The value can be:\n *\n * - **an Element** - only that element can be dropped into this dropzone.\n * - **a string**, - the element being dragged must match it as a CSS selector.\n * - **`null`** - accept options is cleared - it accepts any element.\n *\n * Use the `overlap` option to set how drops are checked for. The allowed\n * values are:\n *\n * - `'pointer'`, the pointer must be over the dropzone (default)\n * - `'center'`, the draggable element's center must be over the dropzone\n * - a number from 0-1 which is the `(intersection area) / (draggable area)`.\n * e.g. `0.5` for drop to happen when half of the area of the draggable is\n * over the dropzone\n *\n * Use the `checker` option to specify a function to check if a dragged element\n * is over this Interactable.\n *\n * @param {boolean | object | null} [options] The new options to be set.\n * @return {boolean | Interactable} The current setting or this Interactable\n */\nInteractable.prototype.dropzone = function (options) {\n if (utils.is.object(options)) {\n this.options.drop.enabled = options.enabled === false ? false : true;\n\n if (utils.is.function(options.ondrop)) {\n this.events.ondrop = options.ondrop;\n }\n if (utils.is.function(options.ondropactivate)) {\n this.events.ondropactivate = options.ondropactivate;\n }\n if (utils.is.function(options.ondropdeactivate)) {\n this.events.ondropdeactivate = options.ondropdeactivate;\n }\n if (utils.is.function(options.ondragenter)) {\n this.events.ondragenter = options.ondragenter;\n }\n if (utils.is.function(options.ondragleave)) {\n this.events.ondragleave = options.ondragleave;\n }\n if (utils.is.function(options.ondropmove)) {\n this.events.ondropmove = options.ondropmove;\n }\n\n if (/^(pointer|center)$/.test(options.overlap)) {\n this.options.drop.overlap = options.overlap;\n } else if (utils.is.number(options.overlap)) {\n this.options.drop.overlap = Math.max(Math.min(1, options.overlap), 0);\n }\n if ('accept' in options) {\n this.options.drop.accept = options.accept;\n }\n if ('checker' in options) {\n this.options.drop.checker = options.checker;\n }\n\n return this;\n }\n\n if (utils.is.bool(options)) {\n this.options.drop.enabled = options;\n\n if (!options) {\n this.ondragenter = this.ondragleave = this.ondrop = this.ondropactivate = this.ondropdeactivate = null;\n }\n\n return this;\n }\n\n return this.options.drop;\n};\n\nInteractable.prototype.dropCheck = function (dragEvent, event, draggable, draggableElement, dropElement, rect) {\n var dropped = false;\n\n // if the dropzone has no rect (eg. display: none)\n // call the custom dropChecker or just return false\n if (!(rect = rect || this.getRect(dropElement))) {\n return this.options.drop.checker ? this.options.drop.checker(dragEvent, event, dropped, this, dropElement, draggable, draggableElement) : false;\n }\n\n var dropOverlap = this.options.drop.overlap;\n\n if (dropOverlap === 'pointer') {\n var origin = utils.getOriginXY(draggable, draggableElement, 'drag');\n var page = utils.getPageXY(dragEvent);\n\n page.x += origin.x;\n page.y += origin.y;\n\n var horizontal = page.x > rect.left && page.x < rect.right;\n var vertical = page.y > rect.top && page.y < rect.bottom;\n\n dropped = horizontal && vertical;\n }\n\n var dragRect = draggable.getRect(draggableElement);\n\n if (dragRect && dropOverlap === 'center') {\n var cx = dragRect.left + dragRect.width / 2;\n var cy = dragRect.top + dragRect.height / 2;\n\n dropped = cx >= rect.left && cx <= rect.right && cy >= rect.top && cy <= rect.bottom;\n }\n\n if (dragRect && utils.is.number(dropOverlap)) {\n var overlapArea = Math.max(0, Math.min(rect.right, dragRect.right) - Math.max(rect.left, dragRect.left)) * Math.max(0, Math.min(rect.bottom, dragRect.bottom) - Math.max(rect.top, dragRect.top));\n\n var overlapRatio = overlapArea / (dragRect.width * dragRect.height);\n\n dropped = overlapRatio >= dropOverlap;\n }\n\n if (this.options.drop.checker) {\n dropped = this.options.drop.checker(dragEvent, event, dropped, this, dropElement, draggable, draggableElement);\n }\n\n return dropped;\n};\n\nInteractable.signals.on('unset', function (_ref8) {\n var interactable = _ref8.interactable;\n\n interactable.dropzone(false);\n});\n\nInteractable.settingsMethods.push('dropChecker');\n\nInteraction.signals.on('new', function (interaction) {\n interaction.dropTarget = null; // the dropzone a drag target might be dropped into\n interaction.dropElement = null; // the element at the time of checking\n interaction.prevDropTarget = null; // the dropzone that was recently dragged away from\n interaction.prevDropElement = null; // the element at the time of checking\n interaction.dropEvents = null; // the dropEvents related to the current drag event\n\n interaction.activeDrops = {\n dropzones: [], // the dropzones that are mentioned below\n elements: [], // elements of dropzones that accept the target draggable\n rects: [] // the rects of the elements mentioned above\n };\n});\n\nInteraction.signals.on('stop', function (_ref9) {\n var interaction = _ref9.interaction;\n\n interaction.dropTarget = interaction.dropElement = interaction.prevDropTarget = interaction.prevDropElement = null;\n});\n\n/**\n * Returns or sets whether the dimensions of dropzone elements are calculated\n * on every dragmove or only on dragstart for the default dropChecker\n *\n * @param {boolean} [newValue] True to check on each move. False to check only\n * before start\n * @return {boolean | interact} The current setting or interact\n */\ninteract.dynamicDrop = function (newValue) {\n if (utils.is.bool(newValue)) {\n //if (dragging && dynamicDrop !== newValue && !newValue) {\n //calcRects(dropzones);\n //}\n\n dynamicDrop = newValue;\n\n return interact;\n }\n return dynamicDrop;\n};\n\nutils.merge(Interactable.eventTypes, ['dragenter', 'dragleave', 'dropactivate', 'dropdeactivate', 'dropmove', 'drop']);\nactions.methodDict.drop = 'dropzone';\n\ndefaultOptions.drop = drop.defaults;\n\nmodule.exports = drop;\n\n},{\"../InteractEvent\":3,\"../Interactable\":4,\"../Interaction\":5,\"../defaultOptions\":18,\"../interact\":21,\"../scope\":33,\"../utils\":44,\"./base\":6}],9:[function(require,module,exports){\n'use strict';\n\nvar actions = require('./base');\nvar utils = require('../utils');\nvar InteractEvent = require('../InteractEvent');\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar defaultOptions = require('../defaultOptions');\n\nvar gesture = {\n defaults: {\n enabled: false,\n origin: null,\n restrict: null\n },\n\n checker: function checker(pointer, event, interactable, element, interaction) {\n if (interaction.pointerIds.length >= 2) {\n return { name: 'gesture' };\n }\n\n return null;\n },\n\n getCursor: function getCursor() {\n return '';\n }\n};\n\nInteractEvent.signals.on('new', function (_ref) {\n var iEvent = _ref.iEvent,\n interaction = _ref.interaction;\n\n if (iEvent.type !== 'gesturestart') {\n return;\n }\n iEvent.ds = 0;\n\n interaction.gesture.startDistance = interaction.gesture.prevDistance = iEvent.distance;\n interaction.gesture.startAngle = interaction.gesture.prevAngle = iEvent.angle;\n interaction.gesture.scale = 1;\n});\n\nInteractEvent.signals.on('new', function (_ref2) {\n var iEvent = _ref2.iEvent,\n interaction = _ref2.interaction;\n\n if (iEvent.type !== 'gesturemove') {\n return;\n }\n\n iEvent.ds = iEvent.scale - interaction.gesture.scale;\n\n interaction.target.fire(iEvent);\n\n interaction.gesture.prevAngle = iEvent.angle;\n interaction.gesture.prevDistance = iEvent.distance;\n\n if (iEvent.scale !== Infinity && iEvent.scale !== null && iEvent.scale !== undefined && !isNaN(iEvent.scale)) {\n\n interaction.gesture.scale = iEvent.scale;\n }\n});\n\n/**\n * ```js\n * interact(element).gesturable({\n * onstart: function (event) {},\n * onmove : function (event) {},\n * onend : function (event) {},\n *\n * // limit multiple gestures.\n * // See the explanation in {@link Interactable.draggable} example\n * max: Infinity,\n * maxPerElement: 1,\n * });\n *\n * var isGestureable = interact(element).gesturable();\n * ```\n *\n * Gets or sets whether multitouch gestures can be performed on the target\n *\n * @param {boolean | object} [options] true/false or An object with event\n * listeners to be fired on gesture events (makes the Interactable gesturable)\n * @return {boolean | Interactable} A boolean indicating if this can be the\n * target of gesture events, or this Interactable\n */\nInteractable.prototype.gesturable = function (options) {\n if (utils.is.object(options)) {\n this.options.gesture.enabled = options.enabled === false ? false : true;\n this.setPerAction('gesture', options);\n this.setOnEvents('gesture', options);\n\n return this;\n }\n\n if (utils.is.bool(options)) {\n this.options.gesture.enabled = options;\n\n if (!options) {\n this.ongesturestart = this.ongesturestart = this.ongestureend = null;\n }\n\n return this;\n }\n\n return this.options.gesture;\n};\n\nInteractEvent.signals.on('set-delta', function (_ref3) {\n var interaction = _ref3.interaction,\n iEvent = _ref3.iEvent,\n action = _ref3.action,\n event = _ref3.event,\n starting = _ref3.starting,\n ending = _ref3.ending,\n deltaSource = _ref3.deltaSource;\n\n if (action !== 'gesture') {\n return;\n }\n\n var pointers = interaction.pointers;\n\n iEvent.touches = [pointers[0], pointers[1]];\n\n if (starting) {\n iEvent.distance = utils.touchDistance(pointers, deltaSource);\n iEvent.box = utils.touchBBox(pointers);\n iEvent.scale = 1;\n iEvent.ds = 0;\n iEvent.angle = utils.touchAngle(pointers, undefined, deltaSource);\n iEvent.da = 0;\n } else if (ending || event instanceof InteractEvent) {\n iEvent.distance = interaction.prevEvent.distance;\n iEvent.box = interaction.prevEvent.box;\n iEvent.scale = interaction.prevEvent.scale;\n iEvent.ds = iEvent.scale - 1;\n iEvent.angle = interaction.prevEvent.angle;\n iEvent.da = iEvent.angle - interaction.gesture.startAngle;\n } else {\n iEvent.distance = utils.touchDistance(pointers, deltaSource);\n iEvent.box = utils.touchBBox(pointers);\n iEvent.scale = iEvent.distance / interaction.gesture.startDistance;\n iEvent.angle = utils.touchAngle(pointers, interaction.gesture.prevAngle, deltaSource);\n\n iEvent.ds = iEvent.scale - interaction.gesture.prevScale;\n iEvent.da = iEvent.angle - interaction.gesture.prevAngle;\n }\n});\n\nInteraction.signals.on('new', function (interaction) {\n interaction.gesture = {\n start: { x: 0, y: 0 },\n\n startDistance: 0, // distance between two touches of touchStart\n prevDistance: 0,\n distance: 0,\n\n scale: 1, // gesture.distance / gesture.startDistance\n\n startAngle: 0, // angle of line joining two touches\n prevAngle: 0 // angle of the previous gesture event\n };\n});\n\nactions.gesture = gesture;\nactions.names.push('gesture');\nutils.merge(Interactable.eventTypes, ['gesturestart', 'gesturemove', 'gestureend']);\nactions.methodDict.gesture = 'gesturable';\n\ndefaultOptions.gesture = gesture.defaults;\n\nmodule.exports = gesture;\n\n},{\"../InteractEvent\":3,\"../Interactable\":4,\"../Interaction\":5,\"../defaultOptions\":18,\"../utils\":44,\"./base\":6}],10:[function(require,module,exports){\n'use strict';\n\nvar actions = require('./base');\nvar utils = require('../utils');\nvar browser = require('../utils/browser');\nvar InteractEvent = require('../InteractEvent');\n/** @lends Interactable */\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar defaultOptions = require('../defaultOptions');\n\n// Less Precision with touch input\nvar defaultMargin = browser.supportsTouch || browser.supportsPointerEvent ? 20 : 10;\n\nvar resize = {\n defaults: {\n enabled: false,\n mouseButtons: null,\n\n origin: null,\n snap: null,\n restrict: null,\n inertia: null,\n autoScroll: null,\n\n square: false,\n preserveAspectRatio: false,\n axis: 'xy',\n\n // use default margin\n margin: NaN,\n\n // object with props left, right, top, bottom which are\n // true/false values to resize when the pointer is over that edge,\n // CSS selectors to match the handles for each direction\n // or the Elements for each handle\n edges: null,\n\n // a value of 'none' will limit the resize rect to a minimum of 0x0\n // 'negate' will alow the rect to have negative width/height\n // 'reposition' will keep the width/height positive by swapping\n // the top and bottom edges and/or swapping the left and right edges\n invert: 'none'\n },\n\n checker: function checker(pointer, event, interactable, element, interaction, rect) {\n if (!rect) {\n return null;\n }\n\n var page = utils.extend({}, interaction.curCoords.page);\n var options = interactable.options;\n\n if (options.resize.enabled) {\n var resizeOptions = options.resize;\n var resizeEdges = { left: false, right: false, top: false, bottom: false };\n\n // if using resize.edges\n if (utils.is.object(resizeOptions.edges)) {\n for (var edge in resizeEdges) {\n resizeEdges[edge] = checkResizeEdge(edge, resizeOptions.edges[edge], page, interaction._eventTarget, element, rect, resizeOptions.margin || defaultMargin);\n }\n\n resizeEdges.left = resizeEdges.left && !resizeEdges.right;\n resizeEdges.top = resizeEdges.top && !resizeEdges.bottom;\n\n if (resizeEdges.left || resizeEdges.right || resizeEdges.top || resizeEdges.bottom) {\n return {\n name: 'resize',\n edges: resizeEdges\n };\n }\n } else {\n var right = options.resize.axis !== 'y' && page.x > rect.right - defaultMargin;\n var bottom = options.resize.axis !== 'x' && page.y > rect.bottom - defaultMargin;\n\n if (right || bottom) {\n return {\n name: 'resize',\n axes: (right ? 'x' : '') + (bottom ? 'y' : '')\n };\n }\n }\n }\n\n return null;\n },\n\n cursors: browser.isIe9 ? {\n x: 'e-resize',\n y: 's-resize',\n xy: 'se-resize',\n\n top: 'n-resize',\n left: 'w-resize',\n bottom: 's-resize',\n right: 'e-resize',\n topleft: 'se-resize',\n bottomright: 'se-resize',\n topright: 'ne-resize',\n bottomleft: 'ne-resize'\n } : {\n x: 'ew-resize',\n y: 'ns-resize',\n xy: 'nwse-resize',\n\n top: 'ns-resize',\n left: 'ew-resize',\n bottom: 'ns-resize',\n right: 'ew-resize',\n topleft: 'nwse-resize',\n bottomright: 'nwse-resize',\n topright: 'nesw-resize',\n bottomleft: 'nesw-resize'\n },\n\n getCursor: function getCursor(action) {\n if (action.axis) {\n return resize.cursors[action.name + action.axis];\n } else if (action.edges) {\n var cursorKey = '';\n var edgeNames = ['top', 'bottom', 'left', 'right'];\n\n for (var i = 0; i < 4; i++) {\n if (action.edges[edgeNames[i]]) {\n cursorKey += edgeNames[i];\n }\n }\n\n return resize.cursors[cursorKey];\n }\n }\n};\n\n// resizestart\nInteractEvent.signals.on('new', function (_ref) {\n var iEvent = _ref.iEvent,\n interaction = _ref.interaction;\n\n if (iEvent.type !== 'resizestart' || !interaction.prepared.edges) {\n return;\n }\n\n var startRect = interaction.target.getRect(interaction.element);\n var resizeOptions = interaction.target.options.resize;\n\n /*\n * When using the `resizable.square` or `resizable.preserveAspectRatio` options, resizing from one edge\n * will affect another. E.g. with `resizable.square`, resizing to make the right edge larger will make\n * the bottom edge larger by the same amount. We call these 'linked' edges. Any linked edges will depend\n * on the active edges and the edge being interacted with.\n */\n if (resizeOptions.square || resizeOptions.preserveAspectRatio) {\n var linkedEdges = utils.extend({}, interaction.prepared.edges);\n\n linkedEdges.top = linkedEdges.top || linkedEdges.left && !linkedEdges.bottom;\n linkedEdges.left = linkedEdges.left || linkedEdges.top && !linkedEdges.right;\n linkedEdges.bottom = linkedEdges.bottom || linkedEdges.right && !linkedEdges.top;\n linkedEdges.right = linkedEdges.right || linkedEdges.bottom && !linkedEdges.left;\n\n interaction.prepared._linkedEdges = linkedEdges;\n } else {\n interaction.prepared._linkedEdges = null;\n }\n\n // if using `resizable.preserveAspectRatio` option, record aspect ratio at the start of the resize\n if (resizeOptions.preserveAspectRatio) {\n interaction.resizeStartAspectRatio = startRect.width / startRect.height;\n }\n\n interaction.resizeRects = {\n start: startRect,\n current: utils.extend({}, startRect),\n inverted: utils.extend({}, startRect),\n previous: utils.extend({}, startRect),\n delta: {\n left: 0, right: 0, width: 0,\n top: 0, bottom: 0, height: 0\n }\n };\n\n iEvent.rect = interaction.resizeRects.inverted;\n iEvent.deltaRect = interaction.resizeRects.delta;\n});\n\n// resizemove\nInteractEvent.signals.on('new', function (_ref2) {\n var iEvent = _ref2.iEvent,\n phase = _ref2.phase,\n interaction = _ref2.interaction;\n\n if (phase !== 'move' || !interaction.prepared.edges) {\n return;\n }\n\n var resizeOptions = interaction.target.options.resize;\n var invert = resizeOptions.invert;\n var invertible = invert === 'reposition' || invert === 'negate';\n\n var edges = interaction.prepared.edges;\n\n var start = interaction.resizeRects.start;\n var current = interaction.resizeRects.current;\n var inverted = interaction.resizeRects.inverted;\n var delta = interaction.resizeRects.delta;\n var previous = utils.extend(interaction.resizeRects.previous, inverted);\n var originalEdges = edges;\n\n var dx = iEvent.dx;\n var dy = iEvent.dy;\n\n if (resizeOptions.preserveAspectRatio || resizeOptions.square) {\n // `resize.preserveAspectRatio` takes precedence over `resize.square`\n var startAspectRatio = resizeOptions.preserveAspectRatio ? interaction.resizeStartAspectRatio : 1;\n\n edges = interaction.prepared._linkedEdges;\n\n if (originalEdges.left && originalEdges.bottom || originalEdges.right && originalEdges.top) {\n dy = -dx / startAspectRatio;\n } else if (originalEdges.left || originalEdges.right) {\n dy = dx / startAspectRatio;\n } else if (originalEdges.top || originalEdges.bottom) {\n dx = dy * startAspectRatio;\n }\n }\n\n // update the 'current' rect without modifications\n if (edges.top) {\n current.top += dy;\n }\n if (edges.bottom) {\n current.bottom += dy;\n }\n if (edges.left) {\n current.left += dx;\n }\n if (edges.right) {\n current.right += dx;\n }\n\n if (invertible) {\n // if invertible, copy the current rect\n utils.extend(inverted, current);\n\n if (invert === 'reposition') {\n // swap edge values if necessary to keep width/height positive\n var swap = void 0;\n\n if (inverted.top > inverted.bottom) {\n swap = inverted.top;\n\n inverted.top = inverted.bottom;\n inverted.bottom = swap;\n }\n if (inverted.left > inverted.right) {\n swap = inverted.left;\n\n inverted.left = inverted.right;\n inverted.right = swap;\n }\n }\n } else {\n // if not invertible, restrict to minimum of 0x0 rect\n inverted.top = Math.min(current.top, start.bottom);\n inverted.bottom = Math.max(current.bottom, start.top);\n inverted.left = Math.min(current.left, start.right);\n inverted.right = Math.max(current.right, start.left);\n }\n\n inverted.width = inverted.right - inverted.left;\n inverted.height = inverted.bottom - inverted.top;\n\n for (var edge in inverted) {\n delta[edge] = inverted[edge] - previous[edge];\n }\n\n iEvent.edges = interaction.prepared.edges;\n iEvent.rect = inverted;\n iEvent.deltaRect = delta;\n});\n\n/**\n * ```js\n * interact(element).resizable({\n * onstart: function (event) {},\n * onmove : function (event) {},\n * onend : function (event) {},\n *\n * edges: {\n * top : true, // Use pointer coords to check for resize.\n * left : false, // Disable resizing from left edge.\n * bottom: '.resize-s',// Resize if pointer target matches selector\n * right : handleEl // Resize if pointer target is the given Element\n * },\n *\n * // Width and height can be adjusted independently. When `true`, width and\n * // height are adjusted at a 1:1 ratio.\n * square: false,\n *\n * // Width and height can be adjusted independently. When `true`, width and\n * // height maintain the aspect ratio they had when resizing started.\n * preserveAspectRatio: false,\n *\n * // a value of 'none' will limit the resize rect to a minimum of 0x0\n * // 'negate' will allow the rect to have negative width/height\n * // 'reposition' will keep the width/height positive by swapping\n * // the top and bottom edges and/or swapping the left and right edges\n * invert: 'none' || 'negate' || 'reposition'\n *\n * // limit multiple resizes.\n * // See the explanation in the {@link Interactable.draggable} example\n * max: Infinity,\n * maxPerElement: 1,\n * });\n *\n * var isResizeable = interact(element).resizable();\n * ```\n *\n * Gets or sets whether resize actions can be performed on the target\n *\n * @param {boolean | object} [options] true/false or An object with event\n * listeners to be fired on resize events (object makes the Interactable\n * resizable)\n * @return {boolean | Interactable} A boolean indicating if this can be the\n * target of resize elements, or this Interactable\n */\nInteractable.prototype.resizable = function (options) {\n if (utils.is.object(options)) {\n this.options.resize.enabled = options.enabled === false ? false : true;\n this.setPerAction('resize', options);\n this.setOnEvents('resize', options);\n\n if (/^x$|^y$|^xy$/.test(options.axis)) {\n this.options.resize.axis = options.axis;\n } else if (options.axis === null) {\n this.options.resize.axis = defaultOptions.resize.axis;\n }\n\n if (utils.is.bool(options.preserveAspectRatio)) {\n this.options.resize.preserveAspectRatio = options.preserveAspectRatio;\n } else if (utils.is.bool(options.square)) {\n this.options.resize.square = options.square;\n }\n\n return this;\n }\n if (utils.is.bool(options)) {\n this.options.resize.enabled = options;\n\n if (!options) {\n this.onresizestart = this.onresizestart = this.onresizeend = null;\n }\n\n return this;\n }\n return this.options.resize;\n};\n\nfunction checkResizeEdge(name, value, page, element, interactableElement, rect, margin) {\n // false, '', undefined, null\n if (!value) {\n return false;\n }\n\n // true value, use pointer coords and element rect\n if (value === true) {\n // if dimensions are negative, \"switch\" edges\n var width = utils.is.number(rect.width) ? rect.width : rect.right - rect.left;\n var height = utils.is.number(rect.height) ? rect.height : rect.bottom - rect.top;\n\n if (width < 0) {\n if (name === 'left') {\n name = 'right';\n } else if (name === 'right') {\n name = 'left';\n }\n }\n if (height < 0) {\n if (name === 'top') {\n name = 'bottom';\n } else if (name === 'bottom') {\n name = 'top';\n }\n }\n\n if (name === 'left') {\n return page.x < (width >= 0 ? rect.left : rect.right) + margin;\n }\n if (name === 'top') {\n return page.y < (height >= 0 ? rect.top : rect.bottom) + margin;\n }\n\n if (name === 'right') {\n return page.x > (width >= 0 ? rect.right : rect.left) - margin;\n }\n if (name === 'bottom') {\n return page.y > (height >= 0 ? rect.bottom : rect.top) - margin;\n }\n }\n\n // the remaining checks require an element\n if (!utils.is.element(element)) {\n return false;\n }\n\n return utils.is.element(value)\n // the value is an element to use as a resize handle\n ? value === element\n // otherwise check if element matches value as selector\n : utils.matchesUpTo(element, value, interactableElement);\n}\n\nInteraction.signals.on('new', function (interaction) {\n interaction.resizeAxes = 'xy';\n});\n\nInteractEvent.signals.on('set-delta', function (_ref3) {\n var interaction = _ref3.interaction,\n iEvent = _ref3.iEvent,\n action = _ref3.action;\n\n if (action !== 'resize' || !interaction.resizeAxes) {\n return;\n }\n\n var options = interaction.target.options;\n\n if (options.resize.square) {\n if (interaction.resizeAxes === 'y') {\n iEvent.dx = iEvent.dy;\n } else {\n iEvent.dy = iEvent.dx;\n }\n iEvent.axes = 'xy';\n } else {\n iEvent.axes = interaction.resizeAxes;\n\n if (interaction.resizeAxes === 'x') {\n iEvent.dy = 0;\n } else if (interaction.resizeAxes === 'y') {\n iEvent.dx = 0;\n }\n }\n});\n\nactions.resize = resize;\nactions.names.push('resize');\nutils.merge(Interactable.eventTypes, ['resizestart', 'resizemove', 'resizeinertiastart', 'resizeinertiaresume', 'resizeend']);\nactions.methodDict.resize = 'resizable';\n\ndefaultOptions.resize = resize.defaults;\n\nmodule.exports = resize;\n\n},{\"../InteractEvent\":3,\"../Interactable\":4,\"../Interaction\":5,\"../defaultOptions\":18,\"../utils\":44,\"../utils/browser\":36,\"./base\":6}],11:[function(require,module,exports){\n'use strict';\n\nvar raf = require('./utils/raf');\nvar getWindow = require('./utils/window').getWindow;\nvar is = require('./utils/is');\nvar domUtils = require('./utils/domUtils');\nvar Interaction = require('./Interaction');\nvar defaultOptions = require('./defaultOptions');\n\nvar autoScroll = {\n defaults: {\n enabled: false,\n container: null, // the item that is scrolled (Window or HTMLElement)\n margin: 60,\n speed: 300 // the scroll speed in pixels per second\n },\n\n interaction: null,\n i: null, // the handle returned by window.setInterval\n x: 0, y: 0, // Direction each pulse is to scroll in\n\n isScrolling: false,\n prevTime: 0,\n\n start: function start(interaction) {\n autoScroll.isScrolling = true;\n raf.cancel(autoScroll.i);\n\n autoScroll.interaction = interaction;\n autoScroll.prevTime = new Date().getTime();\n autoScroll.i = raf.request(autoScroll.scroll);\n },\n\n stop: function stop() {\n autoScroll.isScrolling = false;\n raf.cancel(autoScroll.i);\n },\n\n // scroll the window by the values in scroll.x/y\n scroll: function scroll() {\n var options = autoScroll.interaction.target.options[autoScroll.interaction.prepared.name].autoScroll;\n var container = options.container || getWindow(autoScroll.interaction.element);\n var now = new Date().getTime();\n // change in time in seconds\n var dt = (now - autoScroll.prevTime) / 1000;\n // displacement\n var s = options.speed * dt;\n\n if (s >= 1) {\n if (is.window(container)) {\n container.scrollBy(autoScroll.x * s, autoScroll.y * s);\n } else if (container) {\n container.scrollLeft += autoScroll.x * s;\n container.scrollTop += autoScroll.y * s;\n }\n\n autoScroll.prevTime = now;\n }\n\n if (autoScroll.isScrolling) {\n raf.cancel(autoScroll.i);\n autoScroll.i = raf.request(autoScroll.scroll);\n }\n },\n check: function check(interactable, actionName) {\n var options = interactable.options;\n\n return options[actionName].autoScroll && options[actionName].autoScroll.enabled;\n },\n onInteractionMove: function onInteractionMove(_ref) {\n var interaction = _ref.interaction,\n pointer = _ref.pointer;\n\n if (!(interaction.interacting() && autoScroll.check(interaction.target, interaction.prepared.name))) {\n return;\n }\n\n if (interaction.simulation) {\n autoScroll.x = autoScroll.y = 0;\n return;\n }\n\n var top = void 0;\n var right = void 0;\n var bottom = void 0;\n var left = void 0;\n\n var options = interaction.target.options[interaction.prepared.name].autoScroll;\n var container = options.container || getWindow(interaction.element);\n\n if (is.window(container)) {\n left = pointer.clientX < autoScroll.margin;\n top = pointer.clientY < autoScroll.margin;\n right = pointer.clientX > container.innerWidth - autoScroll.margin;\n bottom = pointer.clientY > container.innerHeight - autoScroll.margin;\n } else {\n var rect = domUtils.getElementClientRect(container);\n\n left = pointer.clientX < rect.left + autoScroll.margin;\n top = pointer.clientY < rect.top + autoScroll.margin;\n right = pointer.clientX > rect.right - autoScroll.margin;\n bottom = pointer.clientY > rect.bottom - autoScroll.margin;\n }\n\n autoScroll.x = right ? 1 : left ? -1 : 0;\n autoScroll.y = bottom ? 1 : top ? -1 : 0;\n\n if (!autoScroll.isScrolling) {\n // set the autoScroll properties to those of the target\n autoScroll.margin = options.margin;\n autoScroll.speed = options.speed;\n\n autoScroll.start(interaction);\n }\n }\n};\n\nInteraction.signals.on('stop-active', function () {\n autoScroll.stop();\n});\n\nInteraction.signals.on('action-move', autoScroll.onInteractionMove);\n\ndefaultOptions.perAction.autoScroll = autoScroll.defaults;\n\nmodule.exports = autoScroll;\n\n},{\"./Interaction\":5,\"./defaultOptions\":18,\"./utils/domUtils\":39,\"./utils/is\":46,\"./utils/raf\":50,\"./utils/window\":52}],12:[function(require,module,exports){\n'use strict';\n\n/** @lends Interactable */\nvar Interactable = require('../Interactable');\nvar actions = require('../actions/base');\nvar is = require('../utils/is');\nvar domUtils = require('../utils/domUtils');\n\nvar _require = require('../utils'),\n warnOnce = _require.warnOnce;\n\nInteractable.prototype.getAction = function (pointer, event, interaction, element) {\n var action = this.defaultActionChecker(pointer, event, interaction, element);\n\n if (this.options.actionChecker) {\n return this.options.actionChecker(pointer, event, action, this, element, interaction);\n }\n\n return action;\n};\n\n/**\n * ```js\n * interact(element, { ignoreFrom: document.getElementById('no-action') });\n * // or\n * interact(element).ignoreFrom('input, textarea, a');\n * ```\n * @deprecated\n * If the target of the `mousedown`, `pointerdown` or `touchstart` event or any\n * of it's parents match the given CSS selector or Element, no\n * drag/resize/gesture is started.\n *\n * Don't use this method. Instead set the `ignoreFrom` option for each action\n * or for `pointerEvents`\n *\n * @example\n * interact(targett)\n * .draggable({\n * ignoreFrom: 'input, textarea, a[href]'',\n * })\n * .pointerEvents({\n * ignoreFrom: '[no-pointer]',\n * });\n *\n * @param {string | Element | null} [newValue] a CSS selector string, an\n * Element or `null` to not ignore any elements\n * @return {string | Element | object} The current ignoreFrom value or this\n * Interactable\n */\nInteractable.prototype.ignoreFrom = warnOnce(function (newValue) {\n return this._backCompatOption('ignoreFrom', newValue);\n}, 'Interactable.ignoreForm() has been deprecated. Use Interactble.draggable({ignoreFrom: newValue}).');\n\n/**\n * ```js\n *\n * @deprecated\n * A drag/resize/gesture is started only If the target of the `mousedown`,\n * `pointerdown` or `touchstart` event or any of it's parents match the given\n * CSS selector or Element.\n *\n * Don't use this method. Instead set the `allowFrom` option for each action\n * or for `pointerEvents`\n *\n * @example\n * interact(targett)\n * .resizable({\n * allowFrom: '.resize-handle',\n * .pointerEvents({\n * allowFrom: '.handle',,\n * });\n *\n * @param {string | Element | null} [newValue] a CSS selector string, an\n * Element or `null` to allow from any element\n * @return {string | Element | object} The current allowFrom value or this\n * Interactable\n */\nInteractable.prototype.allowFrom = warnOnce(function (newValue) {\n return this._backCompatOption('allowFrom', newValue);\n}, 'Interactable.allowForm() has been deprecated. Use Interactble.draggable({allowFrom: newValue}).');\n\nInteractable.prototype.testIgnore = function (ignoreFrom, interactableElement, element) {\n if (!ignoreFrom || !is.element(element)) {\n return false;\n }\n\n if (is.string(ignoreFrom)) {\n return domUtils.matchesUpTo(element, ignoreFrom, interactableElement);\n } else if (is.element(ignoreFrom)) {\n return domUtils.nodeContains(ignoreFrom, element);\n }\n\n return false;\n};\n\nInteractable.prototype.testAllow = function (allowFrom, interactableElement, element) {\n if (!allowFrom) {\n return true;\n }\n\n if (!is.element(element)) {\n return false;\n }\n\n if (is.string(allowFrom)) {\n return domUtils.matchesUpTo(element, allowFrom, interactableElement);\n } else if (is.element(allowFrom)) {\n return domUtils.nodeContains(allowFrom, element);\n }\n\n return false;\n};\n\nInteractable.prototype.testIgnoreAllow = function (options, interactableElement, eventTarget) {\n return !this.testIgnore(options.ignoreFrom, interactableElement, eventTarget) && this.testAllow(options.allowFrom, interactableElement, eventTarget);\n};\n\n/**\n * ```js\n * interact('.resize-drag')\n * .resizable(true)\n * .draggable(true)\n * .actionChecker(function (pointer, event, action, interactable, element, interaction) {\n *\n * if (interact.matchesSelector(event.target, '.drag-handle') {\n * // force drag with handle target\n * action.name = drag;\n * }\n * else {\n * // resize from the top and right edges\n * action.name = 'resize';\n * action.edges = { top: true, right: true };\n * }\n *\n * return action;\n * });\n * ```\n *\n * Gets or sets the function used to check action to be performed on\n * pointerDown\n *\n * @param {function | null} [checker] A function which takes a pointer event,\n * defaultAction string, interactable, element and interaction as parameters\n * and returns an object with name property 'drag' 'resize' or 'gesture' and\n * optionally an `edges` object with boolean 'top', 'left', 'bottom' and right\n * props.\n * @return {Function | Interactable} The checker function or this Interactable\n */\nInteractable.prototype.actionChecker = function (checker) {\n if (is.function(checker)) {\n this.options.actionChecker = checker;\n\n return this;\n }\n\n if (checker === null) {\n delete this.options.actionChecker;\n\n return this;\n }\n\n return this.options.actionChecker;\n};\n\n/**\n * Returns or sets whether the the cursor should be changed depending on the\n * action that would be performed if the mouse were pressed and dragged.\n *\n * @param {boolean} [newValue]\n * @return {boolean | Interactable} The current setting or this Interactable\n */\nInteractable.prototype.styleCursor = function (newValue) {\n if (is.bool(newValue)) {\n this.options.styleCursor = newValue;\n\n return this;\n }\n\n if (newValue === null) {\n delete this.options.styleCursor;\n\n return this;\n }\n\n return this.options.styleCursor;\n};\n\nInteractable.prototype.defaultActionChecker = function (pointer, event, interaction, element) {\n var rect = this.getRect(element);\n var buttons = event.buttons || {\n 0: 1,\n 1: 4,\n 3: 8,\n 4: 16\n }[event.button];\n var action = null;\n\n for (var _i = 0; _i < actions.names.length; _i++) {\n var _ref;\n\n _ref = actions.names[_i];\n var actionName = _ref;\n\n // check mouseButton setting if the pointer is down\n if (interaction.pointerIsDown && /mouse|pointer/.test(interaction.pointerType) && (buttons & this.options[actionName].mouseButtons) === 0) {\n continue;\n }\n\n action = actions[actionName].checker(pointer, event, this, element, interaction, rect);\n\n if (action) {\n return action;\n }\n }\n};\n\n},{\"../Interactable\":4,\"../actions/base\":6,\"../utils\":44,\"../utils/domUtils\":39,\"../utils/is\":46}],13:[function(require,module,exports){\n'use strict';\n\nvar interact = require('../interact');\nvar Interactable = require('../Interactable');\nvar Interaction = require('../Interaction');\nvar actions = require('../actions/base');\nvar defaultOptions = require('../defaultOptions');\nvar scope = require('../scope');\nvar utils = require('../utils');\nvar signals = require('../utils/Signals').new();\n\nrequire('./InteractableMethods');\n\nvar autoStart = {\n signals: signals,\n withinInteractionLimit: withinInteractionLimit,\n // Allow this many interactions to happen simultaneously\n maxInteractions: Infinity,\n defaults: {\n perAction: {\n manualStart: false,\n max: Infinity,\n maxPerElement: 1,\n allowFrom: null,\n ignoreFrom: null,\n\n // only allow left button by default\n // see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons#Return_value\n mouseButtons: 1\n }\n },\n setActionDefaults: function setActionDefaults(action) {\n utils.extend(action.defaults, autoStart.defaults.perAction);\n },\n validateAction: validateAction\n};\n\n// set cursor style on mousedown\nInteraction.signals.on('down', function (_ref) {\n var interaction = _ref.interaction,\n pointer = _ref.pointer,\n event = _ref.event,\n eventTarget = _ref.eventTarget;\n\n if (interaction.interacting()) {\n return;\n }\n\n var actionInfo = getActionInfo(interaction, pointer, event, eventTarget);\n prepare(interaction, actionInfo);\n});\n\n// set cursor style on mousemove\nInteraction.signals.on('move', function (_ref2) {\n var interaction = _ref2.interaction,\n pointer = _ref2.pointer,\n event = _ref2.event,\n eventTarget = _ref2.eventTarget;\n\n if (interaction.pointerType !== 'mouse' || interaction.pointerIsDown || interaction.interacting()) {\n return;\n }\n\n var actionInfo = getActionInfo(interaction, pointer, event, eventTarget);\n prepare(interaction, actionInfo);\n});\n\nInteraction.signals.on('move', function (arg) {\n var interaction = arg.interaction,\n event = arg.event;\n\n\n if (!interaction.pointerIsDown || interaction.interacting() || !interaction.pointerWasMoved || !interaction.prepared.name) {\n return;\n }\n\n signals.fire('before-start', arg);\n\n var target = interaction.target;\n\n if (interaction.prepared.name && target) {\n // check manualStart and interaction limit\n if (target.options[interaction.prepared.name].manualStart || !withinInteractionLimit(target, interaction.element, interaction.prepared)) {\n interaction.stop(event);\n } else {\n interaction.start(interaction.prepared, target, interaction.element);\n }\n }\n});\n\n// Check if the current target supports the action.\n// If so, return the validated action. Otherwise, return null\nfunction validateAction(action, interactable, element, eventTarget) {\n if (utils.is.object(action) && interactable.testIgnoreAllow(interactable.options[action.name], element, eventTarget) && interactable.options[action.name].enabled && withinInteractionLimit(interactable, element, action)) {\n return action;\n }\n\n return null;\n}\n\nfunction validateSelector(interaction, pointer, event, matches, matchElements, eventTarget) {\n for (var i = 0, len = matches.length; i < len; i++) {\n var match = matches[i];\n var matchElement = matchElements[i];\n var action = validateAction(match.getAction(pointer, event, interaction, matchElement), match, matchElement, eventTarget);\n\n if (action) {\n return {\n action: action,\n target: match,\n element: matchElement\n };\n }\n }\n\n return {};\n}\n\nfunction getActionInfo(interaction, pointer, event, eventTarget) {\n var matches = [];\n var matchElements = [];\n\n var element = eventTarget;\n\n function pushMatches(interactable) {\n matches.push(interactable);\n matchElements.push(element);\n }\n\n while (utils.is.element(element)) {\n matches = [];\n matchElements = [];\n\n scope.interactables.forEachMatch(element, pushMatches);\n\n var actionInfo = validateSelector(interaction, pointer, event, matches, matchElements, eventTarget);\n\n if (actionInfo.action && !actionInfo.target.options[actionInfo.action.name].manualStart) {\n return actionInfo;\n }\n\n element = utils.parentNode(element);\n }\n\n return {};\n}\n\nfunction prepare(interaction, _ref3) {\n var action = _ref3.action,\n target = _ref3.target,\n element = _ref3.element;\n\n action = action || {};\n\n if (interaction.target && interaction.target.options.styleCursor) {\n interaction.target._doc.documentElement.style.cursor = '';\n }\n\n interaction.target = target;\n interaction.element = element;\n utils.copyAction(interaction.prepared, action);\n\n if (target && target.options.styleCursor) {\n var cursor = action ? actions[action.name].getCursor(action) : '';\n interaction.target._doc.documentElement.style.cursor = cursor;\n }\n\n signals.fire('prepared', { interaction: interaction });\n}\n\nInteraction.signals.on('stop', function (_ref4) {\n var interaction = _ref4.interaction;\n\n var target = interaction.target;\n\n if (target && target.options.styleCursor) {\n target._doc.documentElement.style.cursor = '';\n }\n});\n\nfunction withinInteractionLimit(interactable, element, action) {\n var options = interactable.options;\n var maxActions = options[action.name].max;\n var maxPerElement = options[action.name].maxPerElement;\n var activeInteractions = 0;\n var targetCount = 0;\n var targetElementCount = 0;\n\n // no actions if any of these values == 0\n if (!(maxActions && maxPerElement && autoStart.maxInteractions)) {\n return;\n }\n\n for (var _i = 0; _i < scope.interactions.length; _i++) {\n var _ref5;\n\n _ref5 = scope.interactions[_i];\n var interaction = _ref5;\n\n var otherAction = interaction.prepared.name;\n\n if (!interaction.interacting()) {\n continue;\n }\n\n activeInteractions++;\n\n if (activeInteractions >= autoStart.maxInteractions) {\n return false;\n }\n\n if (interaction.target !== interactable) {\n continue;\n }\n\n targetCount += otherAction === action.name | 0;\n\n if (targetCount >= maxActions) {\n return false;\n }\n\n if (interaction.element === element) {\n targetElementCount++;\n\n if (otherAction !== action.name || targetElementCount >= maxPerElement) {\n return false;\n }\n }\n }\n\n return autoStart.maxInteractions > 0;\n}\n\n/**\n * Returns or sets the maximum number of concurrent interactions allowed. By\n * default only 1 interaction is allowed at a time (for backwards\n * compatibility). To allow multiple interactions on the same Interactables and\n * elements, you need to enable it in the draggable, resizable and gesturable\n * `'max'` and `'maxPerElement'` options.\n *\n * @alias module:interact.maxInteractions\n *\n * @param {number} [newValue] Any number. newValue <= 0 means no interactions.\n */\ninteract.maxInteractions = function (newValue) {\n if (utils.is.number(newValue)) {\n autoStart.maxInteractions = newValue;\n\n return interact;\n }\n\n return autoStart.maxInteractions;\n};\n\nInteractable.settingsMethods.push('styleCursor');\nInteractable.settingsMethods.push('actionChecker');\nInteractable.settingsMethods.push('ignoreFrom');\nInteractable.settingsMethods.push('allowFrom');\n\ndefaultOptions.base.actionChecker = null;\ndefaultOptions.base.styleCursor = true;\n\nutils.extend(defaultOptions.perAction, autoStart.defaults.perAction);\n\nmodule.exports = autoStart;\n\n},{\"../Interactable\":4,\"../Interaction\":5,\"../actions/base\":6,\"../defaultOptions\":18,\"../interact\":21,\"../scope\":33,\"../utils\":44,\"../utils/Signals\":34,\"./InteractableMethods\":12}],14:[function(require,module,exports){\n'use strict';\n\nvar autoStart = require('./base');\nvar scope = require('../scope');\nvar is = require('../utils/is');\n\nvar _require = require('../utils/domUtils'),\n parentNode = _require.parentNode;\n\nautoStart.setActionDefaults(require('../actions/drag'));\n\nautoStart.signals.on('before-start', function (_ref) {\n var interaction = _ref.interaction,\n eventTarget = _ref.eventTarget,\n dx = _ref.dx,\n dy = _ref.dy;\n\n if (interaction.prepared.name !== 'drag') {\n return;\n }\n\n // check if a drag is in the correct axis\n var absX = Math.abs(dx);\n var absY = Math.abs(dy);\n var targetOptions = interaction.target.options.drag;\n var startAxis = targetOptions.startAxis;\n var currentAxis = absX > absY ? 'x' : absX < absY ? 'y' : 'xy';\n\n interaction.prepared.axis = targetOptions.lockAxis === 'start' ? currentAxis[0] // always lock to one axis even if currentAxis === 'xy'\n : targetOptions.lockAxis;\n\n // if the movement isn't in the startAxis of the interactable\n if (currentAxis !== 'xy' && startAxis !== 'xy' && startAxis !== currentAxis) {\n // cancel the prepared action\n interaction.prepared.name = null;\n\n // then try to get a drag from another ineractable\n var element = eventTarget;\n\n var getDraggable = function getDraggable(interactable) {\n if (interactable === interaction.target) {\n return;\n }\n\n var options = interaction.target.options.drag;\n\n if (!options.manualStart && interactable.testIgnoreAllow(options, element, eventTarget)) {\n\n var action = interactable.getAction(interaction.downPointer, interaction.downEvent, interaction, element);\n\n if (action && action.name === 'drag' && checkStartAxis(currentAxis, interactable) && autoStart.validateAction(action, interactable, element, eventTarget)) {\n\n return interactable;\n }\n }\n };\n\n // check all interactables\n while (is.element(element)) {\n var interactable = scope.interactables.forEachMatch(element, getDraggable);\n\n if (interactable) {\n interaction.prepared.name = 'drag';\n interaction.target = interactable;\n interaction.element = element;\n break;\n }\n\n element = parentNode(element);\n }\n }\n});\n\nfunction checkStartAxis(startAxis, interactable) {\n if (!interactable) {\n return false;\n }\n\n var thisAxis = interactable.options.drag.startAxis;\n\n return startAxis === 'xy' || thisAxis === 'xy' || thisAxis === startAxis;\n}\n\n},{\"../actions/drag\":7,\"../scope\":33,\"../utils/domUtils\":39,\"../utils/is\":46,\"./base\":13}],15:[function(require,module,exports){\n'use strict';\n\nrequire('./base').setActionDefaults(require('../actions/gesture'));\n\n},{\"../actions/gesture\":9,\"./base\":13}],16:[function(require,module,exports){\n'use strict';\n\nvar autoStart = require('./base');\nvar Interaction = require('../Interaction');\n\nautoStart.defaults.perAction.hold = 0;\nautoStart.defaults.perAction.delay = 0;\n\nInteraction.signals.on('new', function (interaction) {\n interaction.autoStartHoldTimer = null;\n});\n\nautoStart.signals.on('prepared', function (_ref) {\n var interaction = _ref.interaction;\n\n var hold = getHoldDuration(interaction);\n\n if (hold > 0) {\n interaction.autoStartHoldTimer = setTimeout(function () {\n interaction.start(interaction.prepared, interaction.target, interaction.element);\n }, hold);\n }\n});\n\nInteraction.signals.on('move', function (_ref2) {\n var interaction = _ref2.interaction,\n duplicate = _ref2.duplicate;\n\n if (interaction.pointerWasMoved && !duplicate) {\n clearTimeout(interaction.autoStartHoldTimer);\n }\n});\n\n// prevent regular down->move autoStart\nautoStart.signals.on('before-start', function (_ref3) {\n var interaction = _ref3.interaction;\n\n var hold = getHoldDuration(interaction);\n\n if (hold > 0) {\n interaction.prepared.name = null;\n }\n});\n\nfunction getHoldDuration(interaction) {\n var actionName = interaction.prepared && interaction.prepared.name;\n\n if (!actionName) {\n return null;\n }\n\n var options = interaction.target.options;\n\n return options[actionName].hold || options[actionName].delay;\n}\n\nmodule.exports = {\n getHoldDuration: getHoldDuration\n};\n\n},{\"../Interaction\":5,\"./base\":13}],17:[function(require,module,exports){\n'use strict';\n\nrequire('./base').setActionDefaults(require('../actions/resize'));\n\n},{\"../actions/resize\":10,\"./base\":13}],18:[function(require,module,exports){\n'use strict';\n\nmodule.exports = {\n base: {\n accept: null,\n preventDefault: 'auto',\n deltaSource: 'page'\n },\n\n perAction: {\n origin: { x: 0, y: 0 },\n\n inertia: {\n enabled: false,\n resistance: 10, // the lambda in exponential decay\n minSpeed: 100, // target speed must be above this for inertia to start\n endSpeed: 10, // the speed at which inertia is slow enough to stop\n allowResume: true, // allow resuming an action in inertia phase\n smoothEndDuration: 300 // animate to snap/restrict endOnly if there's no inertia\n }\n }\n};\n\n},{}],19:[function(require,module,exports){\n'use strict';\n\n/* browser entry point */\n\n// inertia\nrequire('./inertia');\n\n// modifiers\nrequire('./modifiers/snap');\nrequire('./modifiers/restrict');\n\n// pointerEvents\nrequire('./pointerEvents/base');\nrequire('./pointerEvents/holdRepeat');\nrequire('./pointerEvents/interactableTargets');\n\n// autoStart hold\nrequire('./autoStart/hold');\n\n// actions\nrequire('./actions/gesture');\nrequire('./actions/resize');\nrequire('./actions/drag');\nrequire('./actions/drop');\n\n// load these modifiers after resize is loaded\nrequire('./modifiers/snapSize');\nrequire('./modifiers/restrictEdges');\nrequire('./modifiers/restrictSize');\n\n// autoStart actions\nrequire('./autoStart/gesture');\nrequire('./autoStart/resize');\nrequire('./autoStart/drag');\n\n// Interactable preventDefault setting\nrequire('./interactablePreventDefault.js');\n\n// autoScroll\nrequire('./autoScroll');\n\n// export interact\nmodule.exports = require('./interact');\n\n},{\"./actions/drag\":7,\"./actions/drop\":8,\"./actions/gesture\":9,\"./actions/resize\":10,\"./autoScroll\":11,\"./autoStart/drag\":14,\"./autoStart/gesture\":15,\"./autoStart/hold\":16,\"./autoStart/resize\":17,\"./inertia\":20,\"./interact\":21,\"./interactablePreventDefault.js\":22,\"./modifiers/restrict\":24,\"./modifiers/restrictEdges\":25,\"./modifiers/restrictSize\":26,\"./modifiers/snap\":27,\"./modifiers/snapSize\":28,\"./pointerEvents/base\":30,\"./pointerEvents/holdRepeat\":31,\"./pointerEvents/interactableTargets\":32}],20:[function(require,module,exports){\n'use strict';\n\nvar InteractEvent = require('./InteractEvent');\nvar Interaction = require('./Interaction');\nvar modifiers = require('./modifiers/base');\nvar utils = require('./utils');\nvar animationFrame = require('./utils/raf');\n\nInteraction.signals.on('new', function (interaction) {\n interaction.inertiaStatus = {\n active: false,\n smoothEnd: false,\n allowResume: false,\n\n startEvent: null,\n upCoords: {},\n\n xe: 0, ye: 0,\n sx: 0, sy: 0,\n\n t0: 0,\n vx0: 0, vys: 0,\n duration: 0,\n\n lambda_v0: 0,\n one_ve_v0: 0,\n i: null\n };\n\n interaction.boundInertiaFrame = function () {\n return inertiaFrame.apply(interaction);\n };\n interaction.boundSmoothEndFrame = function () {\n return smoothEndFrame.apply(interaction);\n };\n});\n\nInteraction.signals.on('down', function (_ref) {\n var interaction = _ref.interaction,\n event = _ref.event,\n pointer = _ref.pointer,\n eventTarget = _ref.eventTarget;\n\n var status = interaction.inertiaStatus;\n\n // Check if the down event hits the current inertia target\n if (status.active) {\n var element = eventTarget;\n\n // climb up the DOM tree from the event target\n while (utils.is.element(element)) {\n\n // if interaction element is the current inertia target element\n if (element === interaction.element) {\n // stop inertia\n animationFrame.cancel(status.i);\n status.active = false;\n interaction.simulation = null;\n\n // update pointers to the down event's coordinates\n interaction.updatePointer(pointer);\n utils.setCoords(interaction.curCoords, interaction.pointers);\n\n // fire appropriate signals\n var signalArg = { interaction: interaction };\n Interaction.signals.fire('before-action-move', signalArg);\n Interaction.signals.fire('action-resume', signalArg);\n\n // fire a reume event\n var resumeEvent = new InteractEvent(interaction, event, interaction.prepared.name, 'inertiaresume', interaction.element);\n\n interaction.target.fire(resumeEvent);\n interaction.prevEvent = resumeEvent;\n modifiers.resetStatuses(interaction.modifierStatuses);\n\n utils.copyCoords(interaction.prevCoords, interaction.curCoords);\n break;\n }\n\n element = utils.parentNode(element);\n }\n }\n});\n\nInteraction.signals.on('up', function (_ref2) {\n var interaction = _ref2.interaction,\n event = _ref2.event;\n\n var status = interaction.inertiaStatus;\n\n if (!interaction.interacting() || status.active) {\n return;\n }\n\n var target = interaction.target;\n var options = target && target.options;\n var inertiaOptions = options && interaction.prepared.name && options[interaction.prepared.name].inertia;\n\n var now = new Date().getTime();\n var statuses = {};\n var page = utils.extend({}, interaction.curCoords.page);\n var pointerSpeed = interaction.pointerDelta.client.speed;\n\n var smoothEnd = false;\n var modifierResult = void 0;\n\n // check if inertia should be started\n var inertiaPossible = inertiaOptions && inertiaOptions.enabled && interaction.prepared.name !== 'gesture' && event !== status.startEvent;\n\n var inertia = inertiaPossible && now - interaction.curCoords.timeStamp < 50 && pointerSpeed > inertiaOptions.minSpeed && pointerSpeed > inertiaOptions.endSpeed;\n\n var modifierArg = {\n interaction: interaction,\n pageCoords: page,\n statuses: statuses,\n preEnd: true,\n requireEndOnly: true\n };\n\n // smoothEnd\n if (inertiaPossible && !inertia) {\n modifiers.resetStatuses(statuses);\n\n modifierResult = modifiers.setAll(modifierArg);\n\n if (modifierResult.shouldMove && modifierResult.locked) {\n smoothEnd = true;\n }\n }\n\n if (!(inertia || smoothEnd)) {\n return;\n }\n\n utils.copyCoords(status.upCoords, interaction.curCoords);\n\n interaction.pointers[0] = status.startEvent = new InteractEvent(interaction, event, interaction.prepared.name, 'inertiastart', interaction.element);\n\n status.t0 = now;\n\n status.active = true;\n status.allowResume = inertiaOptions.allowResume;\n interaction.simulation = status;\n\n target.fire(status.startEvent);\n\n if (inertia) {\n status.vx0 = interaction.pointerDelta.client.vx;\n status.vy0 = interaction.pointerDelta.client.vy;\n status.v0 = pointerSpeed;\n\n calcInertia(interaction, status);\n\n utils.extend(page, interaction.curCoords.page);\n\n page.x += status.xe;\n page.y += status.ye;\n\n modifiers.resetStatuses(statuses);\n\n modifierResult = modifiers.setAll(modifierArg);\n\n status.modifiedXe += modifierResult.dx;\n status.modifiedYe += modifierResult.dy;\n\n status.i = animationFrame.request(interaction.boundInertiaFrame);\n } else {\n status.smoothEnd = true;\n status.xe = modifierResult.dx;\n status.ye = modifierResult.dy;\n\n status.sx = status.sy = 0;\n\n status.i = animationFrame.request(interaction.boundSmoothEndFrame);\n }\n});\n\nInteraction.signals.on('stop-active', function (_ref3) {\n var interaction = _ref3.interaction;\n\n var status = interaction.inertiaStatus;\n\n if (status.active) {\n animationFrame.cancel(status.i);\n status.active = false;\n interaction.simulation = null;\n }\n});\n\nfunction calcInertia(interaction, status) {\n var inertiaOptions = interaction.target.options[interaction.prepared.name].inertia;\n var lambda = inertiaOptions.resistance;\n var inertiaDur = -Math.log(inertiaOptions.endSpeed / status.v0) / lambda;\n\n status.x0 = interaction.prevEvent.pageX;\n status.y0 = interaction.prevEvent.pageY;\n status.t0 = status.startEvent.timeStamp / 1000;\n status.sx = status.sy = 0;\n\n status.modifiedXe = status.xe = (status.vx0 - inertiaDur) / lambda;\n status.modifiedYe = status.ye = (status.vy0 - inertiaDur) / lambda;\n status.te = inertiaDur;\n\n status.lambda_v0 = lambda / status.v0;\n status.one_ve_v0 = 1 - inertiaOptions.endSpeed / status.v0;\n}\n\nfunction inertiaFrame() {\n updateInertiaCoords(this);\n utils.setCoordDeltas(this.pointerDelta, this.prevCoords, this.curCoords);\n\n var status = this.inertiaStatus;\n var options = this.target.options[this.prepared.name].inertia;\n var lambda = options.resistance;\n var t = new Date().getTime() / 1000 - status.t0;\n\n if (t < status.te) {\n\n var progress = 1 - (Math.exp(-lambda * t) - status.lambda_v0) / status.one_ve_v0;\n\n if (status.modifiedXe === status.xe && status.modifiedYe === status.ye) {\n status.sx = status.xe * progress;\n status.sy = status.ye * progress;\n } else {\n var quadPoint = utils.getQuadraticCurvePoint(0, 0, status.xe, status.ye, status.modifiedXe, status.modifiedYe, progress);\n\n status.sx = quadPoint.x;\n status.sy = quadPoint.y;\n }\n\n this.doMove();\n\n status.i = animationFrame.request(this.boundInertiaFrame);\n } else {\n status.sx = status.modifiedXe;\n status.sy = status.modifiedYe;\n\n this.doMove();\n this.end(status.startEvent);\n status.active = false;\n this.simulation = null;\n }\n\n utils.copyCoords(this.prevCoords, this.curCoords);\n}\n\nfunction smoothEndFrame() {\n updateInertiaCoords(this);\n\n var status = this.inertiaStatus;\n var t = new Date().getTime() - status.t0;\n var duration = this.target.options[this.prepared.name].inertia.smoothEndDuration;\n\n if (t < duration) {\n status.sx = utils.easeOutQuad(t, 0, status.xe, duration);\n status.sy = utils.easeOutQuad(t, 0, status.ye, duration);\n\n this.pointerMove(status.startEvent, status.startEvent);\n\n status.i = animationFrame.request(this.boundSmoothEndFrame);\n } else {\n status.sx = status.xe;\n status.sy = status.ye;\n\n this.pointerMove(status.startEvent, status.startEvent);\n this.end(status.startEvent);\n\n status.smoothEnd = status.active = false;\n this.simulation = null;\n }\n}\n\nfunction updateInertiaCoords(interaction) {\n var status = interaction.inertiaStatus;\n\n // return if inertia isn't running\n if (!status.active) {\n return;\n }\n\n var pageUp = status.upCoords.page;\n var clientUp = status.upCoords.client;\n\n utils.setCoords(interaction.curCoords, [{\n pageX: pageUp.x + status.sx,\n pageY: pageUp.y + status.sy,\n clientX: clientUp.x + status.sx,\n clientY: clientUp.y + status.sy\n }]);\n}\n\n},{\"./InteractEvent\":3,\"./Interaction\":5,\"./modifiers/base\":23,\"./utils\":44,\"./utils/raf\":50}],21:[function(require,module,exports){\n'use strict';\n\n/** @module interact */\n\nvar browser = require('./utils/browser');\nvar events = require('./utils/events');\nvar utils = require('./utils');\nvar scope = require('./scope');\nvar Interactable = require('./Interactable');\nvar Interaction = require('./Interaction');\n\nvar globalEvents = {};\n\n/**\n * ```js\n * interact('#draggable').draggable(true);\n *\n * var rectables = interact('rect');\n * rectables\n * .gesturable(true)\n * .on('gesturemove', function (event) {\n * // ...\n * });\n * ```\n *\n * The methods of this variable can be used to set elements as interactables\n * and also to change various default settings.\n *\n * Calling it as a function and passing an element or a valid CSS selector\n * string returns an Interactable object which has various methods to configure\n * it.\n *\n * @global\n *\n * @param {Element | string} element The HTML or SVG Element to interact with\n * or CSS selector\n * @return {Interactable}\n */\nfunction interact(element, options) {\n var interactable = scope.interactables.get(element, options);\n\n if (!interactable) {\n interactable = new Interactable(element, options);\n interactable.events.global = globalEvents;\n }\n\n return interactable;\n}\n\n/**\n * Check if an element or selector has been set with the {@link interact}\n * function\n *\n * @alias module:interact.isSet\n *\n * @param {Element} element The Element being searched for\n * @return {boolean} Indicates if the element or CSS selector was previously\n * passed to interact\n*/\ninteract.isSet = function (element, options) {\n return scope.interactables.indexOfElement(element, options && options.context) !== -1;\n};\n\n/**\n * Add a global listener for an InteractEvent or adds a DOM event to `document`\n *\n * @alias module:interact.on\n *\n * @param {string | array | object} type The types of events to listen for\n * @param {function} listener The function event (s)\n * @param {object | boolean} [options] object or useCapture flag for\n * addEventListener\n * @return {object} interact\n */\ninteract.on = function (type, listener, options) {\n if (utils.is.string(type) && type.search(' ') !== -1) {\n type = type.trim().split(/ +/);\n }\n\n if (utils.is.array(type)) {\n for (var _i = 0; _i < type.length; _i++) {\n var _ref;\n\n _ref = type[_i];\n var eventType = _ref;\n\n interact.on(eventType, listener, options);\n }\n\n return interact;\n }\n\n if (utils.is.object(type)) {\n for (var prop in type) {\n interact.on(prop, type[prop], listener);\n }\n\n return interact;\n }\n\n // if it is an InteractEvent type, add listener to globalEvents\n if (utils.contains(Interactable.eventTypes, type)) {\n // if this type of event was never bound\n if (!globalEvents[type]) {\n globalEvents[type] = [listener];\n } else {\n globalEvents[type].push(listener);\n }\n }\n // If non InteractEvent type, addEventListener to document\n else {\n events.add(scope.document, type, listener, { options: options });\n }\n\n return interact;\n};\n\n/**\n * Removes a global InteractEvent listener or DOM event from `document`\n *\n * @alias module:interact.off\n *\n * @param {string | array | object} type The types of events that were listened\n * for\n * @param {function} listener The listener function to be removed\n * @param {object | boolean} options [options] object or useCapture flag for\n * removeEventListener\n * @return {object} interact\n */\ninteract.off = function (type, listener, options) {\n if (utils.is.string(type) && type.search(' ') !== -1) {\n type = type.trim().split(/ +/);\n }\n\n if (utils.is.array(type)) {\n for (var _i2 = 0; _i2 < type.length; _i2++) {\n var _ref2;\n\n _ref2 = type[_i2];\n var eventType = _ref2;\n\n interact.off(eventType, listener, options);\n }\n\n return interact;\n }\n\n if (utils.is.object(type)) {\n for (var prop in type) {\n interact.off(prop, type[prop], listener);\n }\n\n return interact;\n }\n\n if (!utils.contains(Interactable.eventTypes, type)) {\n events.remove(scope.document, type, listener, options);\n } else {\n var index = void 0;\n\n if (type in globalEvents && (index = globalEvents[type].indexOf(listener)) !== -1) {\n globalEvents[type].splice(index, 1);\n }\n }\n\n return interact;\n};\n\n/**\n * Returns an object which exposes internal data\n\n * @alias module:interact.debug\n *\n * @return {object} An object with properties that outline the current state\n * and expose internal functions and variables\n */\ninteract.debug = function () {\n return scope;\n};\n\n// expose the functions used to calculate multi-touch properties\ninteract.getPointerAverage = utils.pointerAverage;\ninteract.getTouchBBox = utils.touchBBox;\ninteract.getTouchDistance = utils.touchDistance;\ninteract.getTouchAngle = utils.touchAngle;\n\ninteract.getElementRect = utils.getElementRect;\ninteract.getElementClientRect = utils.getElementClientRect;\ninteract.matchesSelector = utils.matchesSelector;\ninteract.closest = utils.closest;\n\n/**\n * @alias module:interact.supportsTouch\n *\n * @return {boolean} Whether or not the browser supports touch input\n */\ninteract.supportsTouch = function () {\n return browser.supportsTouch;\n};\n\n/**\n * @alias module:interact.supportsPointerEvent\n *\n * @return {boolean} Whether or not the browser supports PointerEvents\n */\ninteract.supportsPointerEvent = function () {\n return browser.supportsPointerEvent;\n};\n\n/**\n * Cancels all interactions (end events are not fired)\n *\n * @alias module:interact.stop\n *\n * @param {Event} event An event on which to call preventDefault()\n * @return {object} interact\n */\ninteract.stop = function (event) {\n for (var i = scope.interactions.length - 1; i >= 0; i--) {\n scope.interactions[i].stop(event);\n }\n\n return interact;\n};\n\n/**\n * Returns or sets the distance the pointer must be moved before an action\n * sequence occurs. This also affects tolerance for tap events.\n *\n * @alias module:interact.pointerMoveTolerance\n *\n * @param {number} [newValue] The movement from the start position must be greater than this value\n * @return {interact | number}\n */\ninteract.pointerMoveTolerance = function (newValue) {\n if (utils.is.number(newValue)) {\n Interaction.pointerMoveTolerance = newValue;\n\n return interact;\n }\n\n return Interaction.pointerMoveTolerance;\n};\n\ninteract.addDocument = scope.addDocument;\ninteract.removeDocument = scope.removeDocument;\n\nscope.interact = interact;\n\nmodule.exports = interact;\n\n},{\"./Interactable\":4,\"./Interaction\":5,\"./scope\":33,\"./utils\":44,\"./utils/browser\":36,\"./utils/events\":40}],22:[function(require,module,exports){\n'use strict';\n\nvar Interactable = require('./Interactable');\nvar Interaction = require('./Interaction');\nvar scope = require('./scope');\nvar is = require('./utils/is');\nvar events = require('./utils/events');\nvar browser = require('./utils/browser');\n\nvar _require = require('./utils/domUtils'),\n nodeContains = _require.nodeContains,\n matchesSelector = _require.matchesSelector;\n\n/**\n * Returns or sets whether to prevent the browser's default behaviour in\n * response to pointer events. Can be set to:\n * - `'always'` to always prevent\n * - `'never'` to never prevent\n * - `'auto'` to let interact.js try to determine what would be best\n *\n * @param {string} [newValue] `true`, `false` or `'auto'`\n * @return {string | Interactable} The current setting or this Interactable\n */\n\n\nInteractable.prototype.preventDefault = function (newValue) {\n if (/^(always|never|auto)$/.test(newValue)) {\n this.options.preventDefault = newValue;\n return this;\n }\n\n if (is.bool(newValue)) {\n this.options.preventDefault = newValue ? 'always' : 'never';\n return this;\n }\n\n return this.options.preventDefault;\n};\n\nInteractable.prototype.checkAndPreventDefault = function (event) {\n var setting = this.options.preventDefault;\n\n if (setting === 'never') {\n return;\n }\n\n if (setting === 'always') {\n event.preventDefault();\n return;\n }\n\n // setting === 'auto'\n\n // don't preventDefault of touch{start,move} events if the browser supports passive\n // events listeners. CSS touch-action and user-selecct should be used instead\n if (events.supportsPassive && /^touch(start|move)$/.test(event.type) && !browser.isIOS) {\n return;\n }\n\n // don't preventDefault of pointerdown events\n if (/^(mouse|pointer|touch)*(down|start)/i.test(event.type)) {\n return;\n }\n\n // don't preventDefault on editable elements\n if (is.element(event.target) && matchesSelector(event.target, 'input,select,textarea,[contenteditable=true],[contenteditable=true] *')) {\n return;\n }\n\n event.preventDefault();\n};\n\nfunction onInteractionEvent(_ref) {\n var interaction = _ref.interaction,\n event = _ref.event;\n\n if (interaction.target) {\n interaction.target.checkAndPreventDefault(event);\n }\n}\n\nvar _arr = ['down', 'move', 'up', 'cancel'];\nfor (var _i = 0; _i < _arr.length; _i++) {\n var eventSignal = _arr[_i];\n Interaction.signals.on(eventSignal, onInteractionEvent);\n}\n\n// prevent native HTML5 drag on interact.js target elements\nInteraction.docEvents.dragstart = function preventNativeDrag(event) {\n for (var _i2 = 0; _i2 < scope.interactions.length; _i2++) {\n var _ref2;\n\n _ref2 = scope.interactions[_i2];\n var interaction = _ref2;\n\n\n if (interaction.element && (interaction.element === event.target || nodeContains(interaction.element, event.target))) {\n\n interaction.target.checkAndPreventDefault(event);\n return;\n }\n }\n};\n\n},{\"./Interactable\":4,\"./Interaction\":5,\"./scope\":33,\"./utils/browser\":36,\"./utils/domUtils\":39,\"./utils/events\":40,\"./utils/is\":46}],23:[function(require,module,exports){\n'use strict';\n\nvar InteractEvent = require('../InteractEvent');\nvar Interaction = require('../Interaction');\nvar extend = require('../utils/extend');\n\nvar modifiers = {\n names: [],\n\n setOffsets: function setOffsets(arg) {\n var interaction = arg.interaction,\n page = arg.pageCoords;\n var target = interaction.target,\n element = interaction.element,\n startOffset = interaction.startOffset;\n\n var rect = target.getRect(element);\n\n if (rect) {\n startOffset.left = page.x - rect.left;\n startOffset.top = page.y - rect.top;\n\n startOffset.right = rect.right - page.x;\n startOffset.bottom = rect.bottom - page.y;\n\n if (!('width' in rect)) {\n rect.width = rect.right - rect.left;\n }\n if (!('height' in rect)) {\n rect.height = rect.bottom - rect.top;\n }\n } else {\n startOffset.left = startOffset.top = startOffset.right = startOffset.bottom = 0;\n }\n\n arg.rect = rect;\n arg.interactable = target;\n arg.element = element;\n\n for (var _i = 0; _i < modifiers.names.length; _i++) {\n var _ref;\n\n _ref = modifiers.names[_i];\n var modifierName = _ref;\n\n arg.options = target.options[interaction.prepared.name][modifierName];\n\n if (!arg.options) {\n continue;\n }\n\n interaction.modifierOffsets[modifierName] = modifiers[modifierName].setOffset(arg);\n }\n },\n\n setAll: function setAll(arg) {\n var interaction = arg.interaction,\n statuses = arg.statuses,\n preEnd = arg.preEnd,\n requireEndOnly = arg.requireEndOnly;\n\n var result = {\n dx: 0,\n dy: 0,\n changed: false,\n locked: false,\n shouldMove: true\n };\n\n arg.modifiedCoords = extend({}, arg.pageCoords);\n\n for (var _i2 = 0; _i2 < modifiers.names.length; _i2++) {\n var _ref2;\n\n _ref2 = modifiers.names[_i2];\n var modifierName = _ref2;\n\n var modifier = modifiers[modifierName];\n var options = interaction.target.options[interaction.prepared.name][modifierName];\n\n if (!shouldDo(options, preEnd, requireEndOnly)) {\n continue;\n }\n\n arg.status = arg.status = statuses[modifierName];\n arg.options = options;\n arg.offset = arg.interaction.modifierOffsets[modifierName];\n\n modifier.set(arg);\n\n if (arg.status.locked) {\n arg.modifiedCoords.x += arg.status.dx;\n arg.modifiedCoords.y += arg.status.dy;\n\n result.dx += arg.status.dx;\n result.dy += arg.status.dy;\n\n result.locked = true;\n }\n }\n\n // a move should be fired if:\n // - there are no modifiers enabled,\n // - no modifiers are \"locked\" i.e. have changed the pointer's coordinates, or\n // - the locked coords have changed since the last pointer move\n result.shouldMove = !arg.status || !result.locked || arg.status.changed;\n\n return result;\n },\n\n resetStatuses: function resetStatuses(statuses) {\n for (var _i3 = 0; _i3 < modifiers.names.length; _i3++) {\n var _ref3;\n\n _ref3 = modifiers.names[_i3];\n var modifierName = _ref3;\n\n var status = statuses[modifierName] || {};\n\n status.dx = status.dy = 0;\n status.modifiedX = status.modifiedY = NaN;\n status.locked = false;\n status.changed = true;\n\n statuses[modifierName] = status;\n }\n\n return statuses;\n },\n\n start: function start(_ref4, signalName) {\n var interaction = _ref4.interaction;\n\n var arg = {\n interaction: interaction,\n pageCoords: (signalName === 'action-resume' ? interaction.curCoords : interaction.startCoords).page,\n startOffset: interaction.startOffset,\n statuses: interaction.modifierStatuses,\n preEnd: false,\n requireEndOnly: false\n };\n\n modifiers.setOffsets(arg);\n modifiers.resetStatuses(arg.statuses);\n\n arg.pageCoords = extend({}, interaction.startCoords.page);\n interaction.modifierResult = modifiers.setAll(arg);\n },\n\n beforeMove: function beforeMove(_ref5) {\n var interaction = _ref5.interaction,\n preEnd = _ref5.preEnd,\n interactingBeforeMove = _ref5.interactingBeforeMove;\n\n var modifierResult = modifiers.setAll({\n interaction: interaction,\n preEnd: preEnd,\n pageCoords: interaction.curCoords.page,\n statuses: interaction.modifierStatuses,\n requireEndOnly: false\n });\n\n // don't fire an action move if a modifier would keep the event in the same\n // cordinates as before\n if (!modifierResult.shouldMove && interactingBeforeMove) {\n interaction._dontFireMove = true;\n }\n\n interaction.modifierResult = modifierResult;\n },\n\n end: function end(_ref6) {\n var interaction = _ref6.interaction,\n event = _ref6.event;\n\n for (var _i4 = 0; _i4 < modifiers.names.length; _i4++) {\n var _ref7;\n\n _ref7 = modifiers.names[_i4];\n var modifierName = _ref7;\n\n var options = interaction.target.options[interaction.prepared.name][modifierName];\n\n // if the endOnly option is true for any modifier\n if (shouldDo(options, true, true)) {\n // fire a move event at the modified coordinates\n interaction.doMove({ event: event, preEnd: true });\n break;\n }\n }\n },\n\n setXY: function setXY(arg) {\n var iEvent = arg.iEvent,\n interaction = arg.interaction;\n\n var modifierArg = extend({}, arg);\n\n for (var i = 0; i < modifiers.names.length; i++) {\n var modifierName = modifiers.names[i];\n modifierArg.options = interaction.target.options[interaction.prepared.name][modifierName];\n\n if (!modifierArg.options) {\n continue;\n }\n\n var modifier = modifiers[modifierName];\n\n modifierArg.status = interaction.modifierStatuses[modifierName];\n\n iEvent[modifierName] = modifier.modifyCoords(modifierArg);\n }\n }\n};\n\nInteraction.signals.on('new', function (interaction) {\n interaction.startOffset = { left: 0, right: 0, top: 0, bottom: 0 };\n interaction.modifierOffsets = {};\n interaction.modifierStatuses = modifiers.resetStatuses({});\n interaction.modifierResult = null;\n});\n\nInteraction.signals.on('action-start', modifiers.start);\nInteraction.signals.on('action-resume', modifiers.start);\nInteraction.signals.on('before-action-move', modifiers.beforeMove);\nInteraction.signals.on('action-end', modifiers.end);\n\nInteractEvent.signals.on('set-xy', modifiers.setXY);\n\nfunction shouldDo(options, preEnd, requireEndOnly) {\n return options && options.enabled && (preEnd || !options.endOnly) && (!requireEndOnly || options.endOnly);\n}\n\nmodule.exports = modifiers;\n\n},{\"../InteractEvent\":3,\"../Interaction\":5,\"../utils/extend\":41}],24:[function(require,module,exports){\n'use strict';\n\nvar modifiers = require('./base');\nvar utils = require('../utils');\nvar defaultOptions = require('../defaultOptions');\n\nvar restrict = {\n defaults: {\n enabled: false,\n endOnly: false,\n restriction: null,\n elementRect: null\n },\n\n setOffset: function setOffset(_ref) {\n var rect = _ref.rect,\n startOffset = _ref.startOffset,\n options = _ref.options;\n\n var elementRect = options && options.elementRect;\n var offset = {};\n\n if (rect && elementRect) {\n offset.left = startOffset.left - rect.width * elementRect.left;\n offset.top = startOffset.top - rect.height * elementRect.top;\n\n offset.right = startOffset.right - rect.width * (1 - elementRect.right);\n offset.bottom = startOffset.bottom - rect.height * (1 - elementRect.bottom);\n } else {\n offset.left = offset.top = offset.right = offset.bottom = 0;\n }\n\n return offset;\n },\n\n set: function set(_ref2) {\n var modifiedCoords = _ref2.modifiedCoords,\n interaction = _ref2.interaction,\n status = _ref2.status,\n options = _ref2.options;\n\n if (!options) {\n return status;\n }\n\n var page = status.useStatusXY ? { x: status.x, y: status.y } : utils.extend({}, modifiedCoords);\n\n var restriction = getRestrictionRect(options.restriction, interaction, page);\n\n if (!restriction) {\n return status;\n }\n\n status.dx = 0;\n status.dy = 0;\n status.locked = false;\n\n var rect = restriction;\n var modifiedX = page.x;\n var modifiedY = page.y;\n\n var offset = interaction.modifierOffsets.restrict;\n\n // object is assumed to have\n // x, y, width, height or\n // left, top, right, bottom\n if ('x' in restriction && 'y' in restriction) {\n modifiedX = Math.max(Math.min(rect.x + rect.width - offset.right, page.x), rect.x + offset.left);\n modifiedY = Math.max(Math.min(rect.y + rect.height - offset.bottom, page.y), rect.y + offset.top);\n } else {\n modifiedX = Math.max(Math.min(rect.right - offset.right, page.x), rect.left + offset.left);\n modifiedY = Math.max(Math.min(rect.bottom - offset.bottom, page.y), rect.top + offset.top);\n }\n\n status.dx = modifiedX - page.x;\n status.dy = modifiedY - page.y;\n\n status.changed = status.modifiedX !== modifiedX || status.modifiedY !== modifiedY;\n status.locked = !!(status.dx || status.dy);\n\n status.modifiedX = modifiedX;\n status.modifiedY = modifiedY;\n },\n\n modifyCoords: function modifyCoords(_ref3) {\n var page = _ref3.page,\n client = _ref3.client,\n status = _ref3.status,\n phase = _ref3.phase,\n options = _ref3.options;\n\n var elementRect = options && options.elementRect;\n\n if (options && options.enabled && !(phase === 'start' && elementRect && status.locked)) {\n\n if (status.locked) {\n page.x += status.dx;\n page.y += status.dy;\n client.x += status.dx;\n client.y += status.dy;\n\n return {\n dx: status.dx,\n dy: status.dy\n };\n }\n }\n },\n\n getRestrictionRect: getRestrictionRect\n};\n\nfunction getRestrictionRect(value, interaction, page) {\n if (utils.is.function(value)) {\n return utils.resolveRectLike(value, interaction.target, interaction.element, [page.x, page.y, interaction]);\n } else {\n return utils.resolveRectLike(value, interaction.target, interaction.element);\n }\n}\n\nmodifiers.restrict = restrict;\nmodifiers.names.push('restrict');\n\ndefaultOptions.perAction.restrict = restrict.defaults;\n\nmodule.exports = restrict;\n\n},{\"../defaultOptions\":18,\"../utils\":44,\"./base\":23}],25:[function(require,module,exports){\n'use strict';\n\n// This module adds the options.resize.restrictEdges setting which sets min and\n// max for the top, left, bottom and right edges of the target being resized.\n//\n// interact(target).resize({\n// edges: { top: true, left: true },\n// restrictEdges: {\n// inner: { top: 200, left: 200, right: 400, bottom: 400 },\n// outer: { top: 0, left: 0, right: 600, bottom: 600 },\n// },\n// });\n\nvar modifiers = require('./base');\nvar utils = require('../utils');\nvar rectUtils = require('../utils/rect');\nvar defaultOptions = require('../defaultOptions');\nvar resize = require('../actions/resize');\n\nvar _require = require('./restrict'),\n getRestrictionRect = _require.getRestrictionRect;\n\nvar noInner = { top: +Infinity, left: +Infinity, bottom: -Infinity, right: -Infinity };\nvar noOuter = { top: -Infinity, left: -Infinity, bottom: +Infinity, right: +Infinity };\n\nvar restrictEdges = {\n defaults: {\n enabled: false,\n endOnly: false,\n min: null,\n max: null,\n offset: null\n },\n\n setOffset: function setOffset(_ref) {\n var interaction = _ref.interaction,\n startOffset = _ref.startOffset,\n options = _ref.options;\n\n if (!options) {\n return utils.extend({}, startOffset);\n }\n\n var offset = getRestrictionRect(options.offset, interaction, interaction.startCoords.page);\n\n if (offset) {\n return {\n top: startOffset.top + offset.y,\n left: startOffset.left + offset.x,\n bottom: startOffset.bottom + offset.y,\n right: startOffset.right + offset.x\n };\n }\n\n return startOffset;\n },\n\n set: function set(_ref2) {\n var modifiedCoords = _ref2.modifiedCoords,\n interaction = _ref2.interaction,\n status = _ref2.status,\n offset = _ref2.offset,\n options = _ref2.options;\n\n var edges = interaction.prepared.linkedEdges || interaction.prepared.edges;\n\n if (!interaction.interacting() || !edges) {\n return;\n }\n\n var page = status.useStatusXY ? { x: status.x, y: status.y } : utils.extend({}, modifiedCoords);\n var inner = rectUtils.xywhToTlbr(getRestrictionRect(options.inner, interaction, page)) || noInner;\n var outer = rectUtils.xywhToTlbr(getRestrictionRect(options.outer, interaction, page)) || noOuter;\n\n var modifiedX = page.x;\n var modifiedY = page.y;\n\n status.dx = 0;\n status.dy = 0;\n status.locked = false;\n\n if (edges.top) {\n modifiedY = Math.min(Math.max(outer.top + offset.top, page.y), inner.top + offset.top);\n } else if (edges.bottom) {\n modifiedY = Math.max(Math.min(outer.bottom - offset.bottom, page.y), inner.bottom - offset.bottom);\n }\n if (edges.left) {\n modifiedX = Math.min(Math.max(outer.left + offset.left, page.x), inner.left + offset.left);\n } else if (edges.right) {\n modifiedX = Math.max(Math.min(outer.right - offset.right, page.x), inner.right - offset.right);\n }\n\n status.dx = modifiedX - page.x;\n status.dy = modifiedY - page.y;\n\n status.changed = status.modifiedX !== modifiedX || status.modifiedY !== modifiedY;\n status.locked = !!(status.dx || status.dy);\n\n status.modifiedX = modifiedX;\n status.modifiedY = modifiedY;\n },\n\n modifyCoords: function modifyCoords(_ref3) {\n var page = _ref3.page,\n client = _ref3.client,\n status = _ref3.status,\n phase = _ref3.phase,\n options = _ref3.options;\n\n if (options && options.enabled && !(phase === 'start' && status.locked)) {\n\n if (status.locked) {\n page.x += status.dx;\n page.y += status.dy;\n client.x += status.dx;\n client.y += status.dy;\n\n return {\n dx: status.dx,\n dy: status.dy\n };\n }\n }\n },\n\n noInner: noInner,\n noOuter: noOuter,\n getRestrictionRect: getRestrictionRect\n};\n\nmodifiers.restrictEdges = restrictEdges;\nmodifiers.names.push('restrictEdges');\n\ndefaultOptions.perAction.restrictEdges = restrictEdges.defaults;\nresize.defaults.restrictEdges = restrictEdges.defaults;\n\nmodule.exports = restrictEdges;\n\n},{\"../actions/resize\":10,\"../defaultOptions\":18,\"../utils\":44,\"../utils/rect\":51,\"./base\":23,\"./restrict\":24}],26:[function(require,module,exports){\n'use strict';\n\n// This module adds the options.resize.restrictSize setting which sets min and\n// max width and height for the target being resized.\n//\n// interact(target).resize({\n// edges: { top: true, left: true },\n// restrictSize: {\n// min: { width: -600, height: -600 },\n// max: { width: 600, height: 600 },\n// },\n// });\n\nvar modifiers = require('./base');\nvar restrictEdges = require('./restrictEdges');\nvar utils = require('../utils');\nvar rectUtils = require('../utils/rect');\nvar defaultOptions = require('../defaultOptions');\nvar resize = require('../actions/resize');\n\nvar noMin = { width: -Infinity, height: -Infinity };\nvar noMax = { width: +Infinity, height: +Infinity };\n\nvar restrictSize = {\n defaults: {\n enabled: false,\n endOnly: false,\n min: null,\n max: null\n },\n\n setOffset: function setOffset(_ref) {\n var interaction = _ref.interaction;\n\n return interaction.startOffset;\n },\n\n set: function set(arg) {\n var interaction = arg.interaction,\n options = arg.options;\n\n var edges = interaction.prepared.linkedEdges || interaction.prepared.edges;\n\n if (!interaction.interacting() || !edges) {\n return;\n }\n\n var rect = rectUtils.xywhToTlbr(interaction.resizeRects.inverted);\n\n var minSize = rectUtils.tlbrToXywh(restrictEdges.getRestrictionRect(options.min, interaction)) || noMin;\n var maxSize = rectUtils.tlbrToXywh(restrictEdges.getRestrictionRect(options.max, interaction)) || noMax;\n\n arg.options = {\n enabled: options.enabled,\n endOnly: options.endOnly,\n inner: utils.extend({}, restrictEdges.noInner),\n outer: utils.extend({}, restrictEdges.noOuter)\n };\n\n if (edges.top) {\n arg.options.inner.top = rect.bottom - minSize.height;\n arg.options.outer.top = rect.bottom - maxSize.height;\n } else if (edges.bottom) {\n arg.options.inner.bottom = rect.top + minSize.height;\n arg.options.outer.bottom = rect.top + maxSize.height;\n }\n if (edges.left) {\n arg.options.inner.left = rect.right - minSize.width;\n arg.options.outer.left = rect.right - maxSize.width;\n } else if (edges.right) {\n arg.options.inner.right = rect.left + minSize.width;\n arg.options.outer.right = rect.left + maxSize.width;\n }\n\n restrictEdges.set(arg);\n },\n\n modifyCoords: restrictEdges.modifyCoords\n};\n\nmodifiers.restrictSize = restrictSize;\nmodifiers.names.push('restrictSize');\n\ndefaultOptions.perAction.restrictSize = restrictSize.defaults;\nresize.defaults.restrictSize = restrictSize.defaults;\n\nmodule.exports = restrictSize;\n\n},{\"../actions/resize\":10,\"../defaultOptions\":18,\"../utils\":44,\"../utils/rect\":51,\"./base\":23,\"./restrictEdges\":25}],27:[function(require,module,exports){\n'use strict';\n\nvar modifiers = require('./base');\nvar interact = require('../interact');\nvar utils = require('../utils');\nvar defaultOptions = require('../defaultOptions');\n\nvar snap = {\n defaults: {\n enabled: false,\n endOnly: false,\n range: Infinity,\n targets: null,\n offsets: null,\n\n relativePoints: null\n },\n\n setOffset: function setOffset(_ref) {\n var interaction = _ref.interaction,\n interactable = _ref.interactable,\n element = _ref.element,\n rect = _ref.rect,\n startOffset = _ref.startOffset,\n options = _ref.options;\n\n var offsets = [];\n var optionsOrigin = utils.rectToXY(utils.resolveRectLike(options.origin));\n var origin = optionsOrigin || utils.getOriginXY(interactable, element, interaction.prepared.name);\n options = options || interactable.options[interaction.prepared.name].snap || {};\n\n var snapOffset = void 0;\n\n if (options.offset === 'startCoords') {\n snapOffset = {\n x: interaction.startCoords.page.x - origin.x,\n y: interaction.startCoords.page.y - origin.y\n };\n } else {\n var offsetRect = utils.resolveRectLike(options.offset, interactable, element, [interaction]);\n\n snapOffset = utils.rectToXY(offsetRect) || { x: 0, y: 0 };\n }\n\n if (rect && options.relativePoints && options.relativePoints.length) {\n for (var _i = 0; _i < options.relativePoints.length; _i++) {\n var _ref3;\n\n _ref3 = options.relativePoints[_i];\n var _ref2 = _ref3;\n var relativeX = _ref2.x;\n var relativeY = _ref2.y;\n\n offsets.push({\n x: startOffset.left - rect.width * relativeX + snapOffset.x,\n y: startOffset.top - rect.height * relativeY + snapOffset.y\n });\n }\n } else {\n offsets.push(snapOffset);\n }\n\n return offsets;\n },\n\n set: function set(_ref4) {\n var interaction = _ref4.interaction,\n modifiedCoords = _ref4.modifiedCoords,\n status = _ref4.status,\n options = _ref4.options,\n offsets = _ref4.offset;\n\n var targets = [];\n var target = void 0;\n var page = void 0;\n var i = void 0;\n\n if (status.useStatusXY) {\n page = { x: status.x, y: status.y };\n } else {\n var origin = utils.getOriginXY(interaction.target, interaction.element, interaction.prepared.name);\n\n page = utils.extend({}, modifiedCoords);\n\n page.x -= origin.x;\n page.y -= origin.y;\n }\n\n status.realX = page.x;\n status.realY = page.y;\n\n var len = options.targets ? options.targets.length : 0;\n\n for (var _i2 = 0; _i2 < offsets.length; _i2++) {\n var _ref6;\n\n _ref6 = offsets[_i2];\n var _ref5 = _ref6;\n var offsetX = _ref5.x;\n var offsetY = _ref5.y;\n\n var relativeX = page.x - offsetX;\n var relativeY = page.y - offsetY;\n\n for (var _i3 = 0; _i3 < (options.targets || []).length; _i3++) {\n var _ref7;\n\n _ref7 = (options.targets || [])[_i3];\n var snapTarget = _ref7;\n\n if (utils.is.function(snapTarget)) {\n target = snapTarget(relativeX, relativeY, interaction);\n } else {\n target = snapTarget;\n }\n\n if (!target) {\n continue;\n }\n\n targets.push({\n x: utils.is.number(target.x) ? target.x + offsetX : relativeX,\n y: utils.is.number(target.y) ? target.y + offsetY : relativeY,\n\n range: utils.is.number(target.range) ? target.range : options.range\n });\n }\n }\n\n var closest = {\n target: null,\n inRange: false,\n distance: 0,\n range: 0,\n dx: 0,\n dy: 0\n };\n\n for (i = 0, len = targets.length; i < len; i++) {\n target = targets[i];\n\n var range = target.range;\n var dx = target.x - page.x;\n var dy = target.y - page.y;\n var distance = utils.hypot(dx, dy);\n var inRange = distance <= range;\n\n // Infinite targets count as being out of range\n // compared to non infinite ones that are in range\n if (range === Infinity && closest.inRange && closest.range !== Infinity) {\n inRange = false;\n }\n\n if (!closest.target || (inRange\n // is the closest target in range?\n ? closest.inRange && range !== Infinity\n // the pointer is relatively deeper in this target\n ? distance / range < closest.distance / closest.range\n // this target has Infinite range and the closest doesn't\n : range === Infinity && closest.range !== Infinity ||\n // OR this target is closer that the previous closest\n distance < closest.distance :\n // The other is not in range and the pointer is closer to this target\n !closest.inRange && distance < closest.distance)) {\n\n closest.target = target;\n closest.distance = distance;\n closest.range = range;\n closest.inRange = inRange;\n closest.dx = dx;\n closest.dy = dy;\n\n status.range = range;\n }\n }\n\n var snapChanged = void 0;\n\n if (closest.target) {\n snapChanged = status.modifiedX !== closest.target.x || status.modifiedY !== closest.target.y;\n\n status.modifiedX = closest.target.x;\n status.modifiedY = closest.target.y;\n } else {\n snapChanged = true;\n\n status.modifiedX = NaN;\n status.modifiedY = NaN;\n }\n\n status.dx = closest.dx;\n status.dy = closest.dy;\n\n status.changed = snapChanged || closest.inRange && !status.locked;\n status.locked = closest.inRange;\n },\n\n modifyCoords: function modifyCoords(_ref8) {\n var page = _ref8.page,\n client = _ref8.client,\n status = _ref8.status,\n phase = _ref8.phase,\n options = _ref8.options;\n\n var relativePoints = options && options.relativePoints;\n\n if (options && options.enabled && !(phase === 'start' && relativePoints && relativePoints.length)) {\n\n if (status.locked) {\n page.x += status.dx;\n page.y += status.dy;\n client.x += status.dx;\n client.y += status.dy;\n }\n\n return {\n range: status.range,\n locked: status.locked,\n x: status.modifiedX,\n y: status.modifiedY,\n realX: status.realX,\n realY: status.realY,\n dx: status.dx,\n dy: status.dy\n };\n }\n }\n};\n\ninteract.createSnapGrid = function (grid) {\n return function (x, y) {\n var limits = grid.limits || {\n left: -Infinity,\n right: Infinity,\n top: -Infinity,\n bottom: Infinity\n };\n var offsetX = 0;\n var offsetY = 0;\n\n if (utils.is.object(grid.offset)) {\n offsetX = grid.offset.x;\n offsetY = grid.offset.y;\n }\n\n var gridx = Math.round((x - offsetX) / grid.x);\n var gridy = Math.round((y - offsetY) / grid.y);\n\n var newX = Math.max(limits.left, Math.min(limits.right, gridx * grid.x + offsetX));\n var newY = Math.max(limits.top, Math.min(limits.bottom, gridy * grid.y + offsetY));\n\n return {\n x: newX,\n y: newY,\n range: grid.range\n };\n };\n};\n\nmodifiers.snap = snap;\nmodifiers.names.push('snap');\n\ndefaultOptions.perAction.snap = snap.defaults;\n\nmodule.exports = snap;\n\n},{\"../defaultOptions\":18,\"../interact\":21,\"../utils\":44,\"./base\":23}],28:[function(require,module,exports){\n'use strict';\n\n// This module allows snapping of the size of targets during resize\n// interactions.\n\nvar modifiers = require('./base');\nvar snap = require('./snap');\nvar defaultOptions = require('../defaultOptions');\nvar resize = require('../actions/resize');\nvar utils = require('../utils/');\n\nvar snapSize = {\n defaults: {\n enabled: false,\n endOnly: false,\n range: Infinity,\n targets: null,\n offsets: null\n },\n\n setOffset: function setOffset(arg) {\n var interaction = arg.interaction,\n options = arg.options;\n\n var edges = interaction.prepared.edges;\n\n if (!edges) {\n return;\n }\n\n arg.options = {\n relativePoints: [{\n x: edges.left ? 0 : 1,\n y: edges.top ? 0 : 1\n }],\n origin: { x: 0, y: 0 },\n offset: 'self',\n range: options.range\n };\n\n var offsets = snap.setOffset(arg);\n arg.options = options;\n\n return offsets;\n },\n\n set: function set(arg) {\n var interaction = arg.interaction,\n options = arg.options,\n offset = arg.offset,\n modifiedCoords = arg.modifiedCoords;\n\n var page = utils.extend({}, modifiedCoords);\n var relativeX = page.x - offset[0].x;\n var relativeY = page.y - offset[0].y;\n\n arg.options = utils.extend({}, options);\n arg.options.targets = [];\n\n for (var _i = 0; _i < (options.targets || []).length; _i++) {\n var _ref;\n\n _ref = (options.targets || [])[_i];\n var snapTarget = _ref;\n\n var target = void 0;\n\n if (utils.is.function(snapTarget)) {\n target = snapTarget(relativeX, relativeY, interaction);\n } else {\n target = snapTarget;\n }\n\n if (!target) {\n continue;\n }\n\n if ('width' in target && 'height' in target) {\n target.x = target.width;\n target.y = target.height;\n }\n\n arg.options.targets.push(target);\n }\n\n snap.set(arg);\n },\n\n modifyCoords: function modifyCoords(arg) {\n var options = arg.options;\n\n\n arg.options = utils.extend({}, options);\n arg.options.enabled = options.enabled;\n arg.options.relativePoints = [null];\n\n snap.modifyCoords(arg);\n }\n};\n\nmodifiers.snapSize = snapSize;\nmodifiers.names.push('snapSize');\n\ndefaultOptions.perAction.snapSize = snapSize.defaults;\nresize.defaults.snapSize = snapSize.defaults;\n\nmodule.exports = snapSize;\n\n},{\"../actions/resize\":10,\"../defaultOptions\":18,\"../utils/\":44,\"./base\":23,\"./snap\":27}],29:[function(require,module,exports){\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar pointerUtils = require('../utils/pointerUtils');\n\nmodule.exports = function () {\n /** */\n function PointerEvent(type, pointer, event, eventTarget, interaction) {\n _classCallCheck(this, PointerEvent);\n\n pointerUtils.pointerExtend(this, event);\n\n if (event !== pointer) {\n pointerUtils.pointerExtend(this, pointer);\n }\n\n this.interaction = interaction;\n\n this.timeStamp = new Date().getTime();\n this.originalEvent = event;\n this.type = type;\n this.pointerId = pointerUtils.getPointerId(pointer);\n this.pointerType = pointerUtils.getPointerType(pointer);\n this.target = eventTarget;\n this.currentTarget = null;\n\n if (type === 'tap') {\n var pointerIndex = interaction.getPointerIndex(pointer);\n this.dt = this.timeStamp - interaction.downTimes[pointerIndex];\n\n var interval = this.timeStamp - interaction.tapTime;\n\n this.double = !!(interaction.prevTap && interaction.prevTap.type !== 'doubletap' && interaction.prevTap.target === this.target && interval < 500);\n } else if (type === 'doubletap') {\n this.dt = pointer.timeStamp - interaction.tapTime;\n }\n }\n\n PointerEvent.prototype.subtractOrigin = function subtractOrigin(_ref) {\n var originX = _ref.x,\n originY = _ref.y;\n\n this.pageX -= originX;\n this.pageY -= originY;\n this.clientX -= originX;\n this.clientY -= originY;\n\n return this;\n };\n\n PointerEvent.prototype.addOrigin = function addOrigin(_ref2) {\n var originX = _ref2.x,\n originY = _ref2.y;\n\n this.pageX += originX;\n this.pageY += originY;\n this.clientX += originX;\n this.clientY += originY;\n\n return this;\n };\n\n /** */\n\n\n PointerEvent.prototype.preventDefault = function preventDefault() {\n this.originalEvent.preventDefault();\n };\n\n /** */\n\n\n PointerEvent.prototype.stopPropagation = function stopPropagation() {\n this.propagationStopped = true;\n };\n\n /** */\n\n\n PointerEvent.prototype.stopImmediatePropagation = function stopImmediatePropagation() {\n this.immediatePropagationStopped = this.propagationStopped = true;\n };\n\n return PointerEvent;\n}();\n\n},{\"../utils/pointerUtils\":49}],30:[function(require,module,exports){\n'use strict';\n\nvar PointerEvent = require('./PointerEvent');\nvar Interaction = require('../Interaction');\nvar utils = require('../utils');\nvar defaults = require('../defaultOptions');\nvar signals = require('../utils/Signals').new();\n\nvar simpleSignals = ['down', 'up', 'cancel'];\nvar simpleEvents = ['down', 'up', 'cancel'];\n\nvar pointerEvents = {\n PointerEvent: PointerEvent,\n fire: fire,\n collectEventTargets: collectEventTargets,\n signals: signals,\n defaults: {\n holdDuration: 600,\n ignoreFrom: null,\n allowFrom: null,\n origin: { x: 0, y: 0 }\n },\n types: ['down', 'move', 'up', 'cancel', 'tap', 'doubletap', 'hold']\n};\n\nfunction fire(arg) {\n var interaction = arg.interaction,\n pointer = arg.pointer,\n event = arg.event,\n eventTarget = arg.eventTarget,\n _arg$type = arg.type,\n type = _arg$type === undefined ? arg.pointerEvent.type : _arg$type,\n _arg$targets = arg.targets,\n targets = _arg$targets === undefined ? collectEventTargets(arg) : _arg$targets,\n _arg$pointerEvent = arg.pointerEvent,\n pointerEvent = _arg$pointerEvent === undefined ? new PointerEvent(type, pointer, event, eventTarget, interaction) : _arg$pointerEvent;\n\n\n var signalArg = {\n interaction: interaction,\n pointer: pointer,\n event: event,\n eventTarget: eventTarget,\n targets: targets,\n type: type,\n pointerEvent: pointerEvent\n };\n\n for (var i = 0; i < targets.length; i++) {\n var target = targets[i];\n\n for (var prop in target.props || {}) {\n pointerEvent[prop] = target.props[prop];\n }\n\n var origin = utils.getOriginXY(target.eventable, target.element);\n\n pointerEvent.subtractOrigin(origin);\n pointerEvent.eventable = target.eventable;\n pointerEvent.currentTarget = target.element;\n\n target.eventable.fire(pointerEvent);\n\n pointerEvent.addOrigin(origin);\n\n if (pointerEvent.immediatePropagationStopped || pointerEvent.propagationStopped && i + 1 < targets.length && targets[i + 1].element !== pointerEvent.currentTarget) {\n break;\n }\n }\n\n signals.fire('fired', signalArg);\n\n if (type === 'tap') {\n // if pointerEvent should make a double tap, create and fire a doubletap\n // PointerEvent and use that as the prevTap\n var prevTap = pointerEvent.double ? fire({\n interaction: interaction, pointer: pointer, event: event, eventTarget: eventTarget,\n type: 'doubletap'\n }) : pointerEvent;\n\n interaction.prevTap = prevTap;\n interaction.tapTime = prevTap.timeStamp;\n }\n\n return pointerEvent;\n}\n\nfunction collectEventTargets(_ref) {\n var interaction = _ref.interaction,\n pointer = _ref.pointer,\n event = _ref.event,\n eventTarget = _ref.eventTarget,\n type = _ref.type;\n\n var pointerIndex = interaction.getPointerIndex(pointer);\n\n // do not fire a tap event if the pointer was moved before being lifted\n if (type === 'tap' && (interaction.pointerWasMoved\n // or if the pointerup target is different to the pointerdown target\n || !(interaction.downTargets[pointerIndex] && interaction.downTargets[pointerIndex] === eventTarget))) {\n return [];\n }\n\n var path = utils.getPath(eventTarget);\n var signalArg = {\n interaction: interaction,\n pointer: pointer,\n event: event,\n eventTarget: eventTarget,\n type: type,\n path: path,\n targets: [],\n element: null\n };\n\n for (var _i = 0; _i < path.length; _i++) {\n var _ref2;\n\n _ref2 = path[_i];\n var element = _ref2;\n\n signalArg.element = element;\n\n signals.fire('collect-targets', signalArg);\n }\n\n if (type === 'hold') {\n signalArg.targets = signalArg.targets.filter(function (target) {\n return target.eventable.options.holdDuration === interaction.holdTimers[pointerIndex].duration;\n });\n }\n\n return signalArg.targets;\n}\n\nInteraction.signals.on('update-pointer-down', function (_ref3) {\n var interaction = _ref3.interaction,\n pointerIndex = _ref3.pointerIndex;\n\n interaction.holdTimers[pointerIndex] = { duration: Infinity, timeout: null };\n});\n\nInteraction.signals.on('remove-pointer', function (_ref4) {\n var interaction = _ref4.interaction,\n pointerIndex = _ref4.pointerIndex;\n\n interaction.holdTimers.splice(pointerIndex, 1);\n});\n\nInteraction.signals.on('move', function (_ref5) {\n var interaction = _ref5.interaction,\n pointer = _ref5.pointer,\n event = _ref5.event,\n eventTarget = _ref5.eventTarget,\n duplicateMove = _ref5.duplicateMove;\n\n var pointerIndex = interaction.getPointerIndex(pointer);\n\n if (!duplicateMove && (!interaction.pointerIsDown || interaction.pointerWasMoved)) {\n if (interaction.pointerIsDown) {\n clearTimeout(interaction.holdTimers[pointerIndex].timeout);\n }\n\n fire({\n interaction: interaction, pointer: pointer, event: event, eventTarget: eventTarget,\n type: 'move'\n });\n }\n});\n\nInteraction.signals.on('down', function (_ref6) {\n var interaction = _ref6.interaction,\n pointer = _ref6.pointer,\n event = _ref6.event,\n eventTarget = _ref6.eventTarget,\n pointerIndex = _ref6.pointerIndex;\n\n var timer = interaction.holdTimers[pointerIndex];\n var path = utils.getPath(eventTarget);\n var signalArg = {\n interaction: interaction,\n pointer: pointer,\n event: event,\n eventTarget: eventTarget,\n type: 'hold',\n targets: [],\n path: path,\n element: null\n };\n\n for (var _i2 = 0; _i2 < path.length; _i2++) {\n var _ref7;\n\n _ref7 = path[_i2];\n var element = _ref7;\n\n signalArg.element = element;\n\n signals.fire('collect-targets', signalArg);\n }\n\n if (!signalArg.targets.length) {\n return;\n }\n\n var minDuration = Infinity;\n\n for (var _i3 = 0; _i3 < signalArg.targets.length; _i3++) {\n var _ref8;\n\n _ref8 = signalArg.targets[_i3];\n var target = _ref8;\n\n var holdDuration = target.eventable.options.holdDuration;\n\n if (holdDuration < minDuration) {\n minDuration = holdDuration;\n }\n }\n\n timer.duration = minDuration;\n timer.timeout = setTimeout(function () {\n fire({\n interaction: interaction,\n eventTarget: eventTarget,\n pointer: pointer,\n event: event,\n type: 'hold'\n });\n }, minDuration);\n});\n\nInteraction.signals.on('up', function (_ref9) {\n var interaction = _ref9.interaction,\n pointer = _ref9.pointer,\n event = _ref9.event,\n eventTarget = _ref9.eventTarget;\n\n if (!interaction.pointerWasMoved) {\n fire({ interaction: interaction, eventTarget: eventTarget, pointer: pointer, event: event, type: 'tap' });\n }\n});\n\nvar _arr = ['up', 'cancel'];\nfor (var _i4 = 0; _i4 < _arr.length; _i4++) {\n var signalName = _arr[_i4];\n Interaction.signals.on(signalName, function (_ref11) {\n var interaction = _ref11.interaction,\n pointerIndex = _ref11.pointerIndex;\n\n if (interaction.holdTimers[pointerIndex]) {\n clearTimeout(interaction.holdTimers[pointerIndex].timeout);\n }\n });\n}\n\nfunction createSignalListener(type) {\n return function (_ref10) {\n var interaction = _ref10.interaction,\n pointer = _ref10.pointer,\n event = _ref10.event,\n eventTarget = _ref10.eventTarget;\n\n fire({ interaction: interaction, eventTarget: eventTarget, pointer: pointer, event: event, type: type });\n };\n}\n\nfor (var i = 0; i < simpleSignals.length; i++) {\n Interaction.signals.on(simpleSignals[i], createSignalListener(simpleEvents[i]));\n}\n\nInteraction.signals.on('new', function (interaction) {\n interaction.prevTap = null; // the most recent tap event on this interaction\n interaction.tapTime = 0; // time of the most recent tap event\n interaction.holdTimers = []; // [{ duration, timeout }]\n});\n\ndefaults.pointerEvents = pointerEvents.defaults;\nmodule.exports = pointerEvents;\n\n},{\"../Interaction\":5,\"../defaultOptions\":18,\"../utils\":44,\"../utils/Signals\":34,\"./PointerEvent\":29}],31:[function(require,module,exports){\n'use strict';\n\nvar pointerEvents = require('./base');\nvar Interaction = require('../Interaction');\n\npointerEvents.signals.on('new', onNew);\npointerEvents.signals.on('fired', onFired);\n\nvar _arr = ['move', 'up', 'cancel', 'endall'];\nfor (var _i = 0; _i < _arr.length; _i++) {\n var signal = _arr[_i];\n Interaction.signals.on(signal, endHoldRepeat);\n}\n\nfunction onNew(_ref) {\n var pointerEvent = _ref.pointerEvent;\n\n if (pointerEvent.type !== 'hold') {\n return;\n }\n\n pointerEvent.count = (pointerEvent.count || 0) + 1;\n}\n\nfunction onFired(_ref2) {\n var interaction = _ref2.interaction,\n pointerEvent = _ref2.pointerEvent,\n eventTarget = _ref2.eventTarget,\n targets = _ref2.targets;\n\n if (pointerEvent.type !== 'hold' || !targets.length) {\n return;\n }\n\n // get the repeat interval from the first eventable\n var interval = targets[0].eventable.options.holdRepeatInterval;\n\n // don't repeat if the interval is 0 or less\n if (interval <= 0) {\n return;\n }\n\n // set a timeout to fire the holdrepeat event\n interaction.holdIntervalHandle = setTimeout(function () {\n pointerEvents.fire({\n interaction: interaction,\n eventTarget: eventTarget,\n type: 'hold',\n pointer: pointerEvent,\n event: pointerEvent\n });\n }, interval);\n}\n\nfunction endHoldRepeat(_ref3) {\n var interaction = _ref3.interaction;\n\n // set the interaction's holdStopTime property\n // to stop further holdRepeat events\n if (interaction.holdIntervalHandle) {\n clearInterval(interaction.holdIntervalHandle);\n interaction.holdIntervalHandle = null;\n }\n}\n\n// don't repeat by default\npointerEvents.defaults.holdRepeatInterval = 0;\npointerEvents.types.push('holdrepeat');\n\nmodule.exports = {\n onNew: onNew,\n onFired: onFired,\n endHoldRepeat: endHoldRepeat\n};\n\n},{\"../Interaction\":5,\"./base\":30}],32:[function(require,module,exports){\n'use strict';\n\nvar pointerEvents = require('./base');\nvar Interactable = require('../Interactable');\nvar is = require('../utils/is');\nvar scope = require('../scope');\nvar extend = require('../utils/extend');\n\nvar _require = require('../utils/arr'),\n merge = _require.merge;\n\npointerEvents.signals.on('collect-targets', function (_ref) {\n var targets = _ref.targets,\n element = _ref.element,\n type = _ref.type,\n eventTarget = _ref.eventTarget;\n\n scope.interactables.forEachMatch(element, function (interactable) {\n var eventable = interactable.events;\n var options = eventable.options;\n\n if (eventable[type] && is.element(element) && interactable.testIgnoreAllow(options, element, eventTarget)) {\n\n targets.push({\n element: element,\n eventable: eventable,\n props: { interactable: interactable }\n });\n }\n });\n});\n\nInteractable.signals.on('new', function (_ref2) {\n var interactable = _ref2.interactable;\n\n interactable.events.getRect = function (element) {\n return interactable.getRect(element);\n };\n});\n\nInteractable.signals.on('set', function (_ref3) {\n var interactable = _ref3.interactable,\n options = _ref3.options;\n\n extend(interactable.events.options, pointerEvents.defaults);\n extend(interactable.events.options, options);\n});\n\nmerge(Interactable.eventTypes, pointerEvents.types);\n\nInteractable.prototype.pointerEvents = function (options) {\n extend(this.events.options, options);\n\n return this;\n};\n\nvar __backCompatOption = Interactable.prototype._backCompatOption;\n\nInteractable.prototype._backCompatOption = function (optionName, newValue) {\n var ret = __backCompatOption.call(this, optionName, newValue);\n\n if (ret === this) {\n this.events.options[optionName] = newValue;\n }\n\n return ret;\n};\n\nInteractable.settingsMethods.push('pointerEvents');\n\n},{\"../Interactable\":4,\"../scope\":33,\"../utils/arr\":35,\"../utils/extend\":41,\"../utils/is\":46,\"./base\":30}],33:[function(require,module,exports){\n'use strict';\n\nvar utils = require('./utils');\nvar events = require('./utils/events');\nvar signals = require('./utils/Signals').new();\n\nvar _require = require('./utils/window'),\n getWindow = _require.getWindow;\n\nvar scope = {\n signals: signals,\n events: events,\n utils: utils,\n\n // main document\n document: require('./utils/domObjects').document,\n // all documents being listened to\n documents: [],\n\n addDocument: function addDocument(doc, win) {\n // do nothing if document is already known\n if (utils.contains(scope.documents, doc)) {\n return false;\n }\n\n win = win || getWindow(doc);\n\n scope.documents.push(doc);\n events.documents.push(doc);\n\n // don't add an unload event for the main document\n // so that the page may be cached in browser history\n if (doc !== scope.document) {\n events.add(win, 'unload', scope.onWindowUnload);\n }\n\n signals.fire('add-document', { doc: doc, win: win });\n },\n\n removeDocument: function removeDocument(doc, win) {\n var index = scope.documents.indexOf(doc);\n\n win = win || getWindow(doc);\n\n events.remove(win, 'unload', scope.onWindowUnload);\n\n scope.documents.splice(index, 1);\n events.documents.splice(index, 1);\n\n signals.fire('remove-document', { win: win, doc: doc });\n },\n\n onWindowUnload: function onWindowUnload() {\n scope.removeDocument(this.document, this);\n }\n};\n\nmodule.exports = scope;\n\n},{\"./utils\":44,\"./utils/Signals\":34,\"./utils/domObjects\":38,\"./utils/events\":40,\"./utils/window\":52}],34:[function(require,module,exports){\n\"use strict\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Signals = function () {\n function Signals() {\n _classCallCheck(this, Signals);\n\n this.listeners = {\n // signalName: [listeners],\n };\n }\n\n Signals.prototype.on = function on(name, listener) {\n if (!this.listeners[name]) {\n this.listeners[name] = [listener];\n return;\n }\n\n this.listeners[name].push(listener);\n };\n\n Signals.prototype.off = function off(name, listener) {\n if (!this.listeners[name]) {\n return;\n }\n\n var index = this.listeners[name].indexOf(listener);\n\n if (index !== -1) {\n this.listeners[name].splice(index, 1);\n }\n };\n\n Signals.prototype.fire = function fire(name, arg) {\n var targetListeners = this.listeners[name];\n\n if (!targetListeners) {\n return;\n }\n\n for (var _i = 0; _i < targetListeners.length; _i++) {\n var _ref;\n\n _ref = targetListeners[_i];\n var listener = _ref;\n\n if (listener(arg, name) === false) {\n return;\n }\n }\n };\n\n return Signals;\n}();\n\nSignals.new = function () {\n return new Signals();\n};\n\nmodule.exports = Signals;\n\n},{}],35:[function(require,module,exports){\n\"use strict\";\n\nfunction contains(array, target) {\n return array.indexOf(target) !== -1;\n}\n\nfunction merge(target, source) {\n for (var _i = 0; _i < source.length; _i++) {\n var _ref;\n\n _ref = source[_i];\n var item = _ref;\n\n target.push(item);\n }\n\n return target;\n}\n\nmodule.exports = {\n contains: contains,\n merge: merge\n};\n\n},{}],36:[function(require,module,exports){\n'use strict';\n\nvar _require = require('./window'),\n window = _require.window;\n\nvar is = require('./is');\nvar domObjects = require('./domObjects');\n\nvar Element = domObjects.Element;\nvar navigator = window.navigator;\n\nvar browser = {\n // Does the browser support touch input?\n supportsTouch: !!('ontouchstart' in window || is.function(window.DocumentTouch) && domObjects.document instanceof window.DocumentTouch),\n\n // Does the browser support PointerEvents\n supportsPointerEvent: !!domObjects.PointerEvent,\n\n isIOS: /iP(hone|od|ad)/.test(navigator.platform),\n\n // scrolling doesn't change the result of getClientRects on iOS 7\n isIOS7: /iP(hone|od|ad)/.test(navigator.platform) && /OS 7[^\\d]/.test(navigator.appVersion),\n\n isIe9: /MSIE 9/.test(navigator.userAgent),\n\n // prefix matchesSelector\n prefixedMatchesSelector: 'matches' in Element.prototype ? 'matches' : 'webkitMatchesSelector' in Element.prototype ? 'webkitMatchesSelector' : 'mozMatchesSelector' in Element.prototype ? 'mozMatchesSelector' : 'oMatchesSelector' in Element.prototype ? 'oMatchesSelector' : 'msMatchesSelector',\n\n pEventTypes: domObjects.PointerEvent ? domObjects.PointerEvent === window.MSPointerEvent ? {\n up: 'MSPointerUp',\n down: 'MSPointerDown',\n over: 'mouseover',\n out: 'mouseout',\n move: 'MSPointerMove',\n cancel: 'MSPointerCancel'\n } : {\n up: 'pointerup',\n down: 'pointerdown',\n over: 'pointerover',\n out: 'pointerout',\n move: 'pointermove',\n cancel: 'pointercancel'\n } : null,\n\n // because Webkit and Opera still use 'mousewheel' event type\n wheelEvent: 'onmousewheel' in domObjects.document ? 'mousewheel' : 'wheel'\n\n};\n\n// Opera Mobile must be handled differently\nbrowser.isOperaMobile = navigator.appName === 'Opera' && browser.supportsTouch && navigator.userAgent.match('Presto');\n\nmodule.exports = browser;\n\n},{\"./domObjects\":38,\"./is\":46,\"./window\":52}],37:[function(require,module,exports){\n'use strict';\n\nvar is = require('./is');\n\nmodule.exports = function clone(source) {\n var dest = {};\n for (var prop in source) {\n if (is.plainObject(source[prop])) {\n dest[prop] = clone(source[prop]);\n } else {\n dest[prop] = source[prop];\n }\n }\n return dest;\n};\n\n},{\"./is\":46}],38:[function(require,module,exports){\n'use strict';\n\nvar domObjects = {};\nvar win = require('./window').window;\n\nfunction blank() {}\n\ndomObjects.document = win.document;\ndomObjects.DocumentFragment = win.DocumentFragment || blank;\ndomObjects.SVGElement = win.SVGElement || blank;\ndomObjects.SVGSVGElement = win.SVGSVGElement || blank;\ndomObjects.SVGElementInstance = win.SVGElementInstance || blank;\ndomObjects.Element = win.Element || blank;\ndomObjects.HTMLElement = win.HTMLElement || domObjects.Element;\n\ndomObjects.Event = win.Event;\ndomObjects.Touch = win.Touch || blank;\ndomObjects.PointerEvent = win.PointerEvent || win.MSPointerEvent;\n\nmodule.exports = domObjects;\n\n},{\"./window\":52}],39:[function(require,module,exports){\n'use strict';\n\nvar win = require('./window');\nvar browser = require('./browser');\nvar is = require('./is');\nvar domObjects = require('./domObjects');\n\nvar domUtils = {\n nodeContains: function nodeContains(parent, child) {\n while (child) {\n if (child === parent) {\n return true;\n }\n\n child = child.parentNode;\n }\n\n return false;\n },\n\n closest: function closest(element, selector) {\n while (is.element(element)) {\n if (domUtils.matchesSelector(element, selector)) {\n return element;\n }\n\n element = domUtils.parentNode(element);\n }\n\n return null;\n },\n\n parentNode: function parentNode(node) {\n var parent = node.parentNode;\n\n if (is.docFrag(parent)) {\n // skip past #shado-root fragments\n while ((parent = parent.host) && is.docFrag(parent)) {\n continue;\n }\n\n return parent;\n }\n\n return parent;\n },\n\n matchesSelector: function matchesSelector(element, selector) {\n // remove /deep/ from selectors if shadowDOM polyfill is used\n if (win.window !== win.realWindow) {\n selector = selector.replace(/\\/deep\\//g, ' ');\n }\n\n return element[browser.prefixedMatchesSelector](selector);\n },\n\n // Test for the element that's \"above\" all other qualifiers\n indexOfDeepestElement: function indexOfDeepestElement(elements) {\n var deepestZoneParents = [];\n var dropzoneParents = [];\n var dropzone = void 0;\n var deepestZone = elements[0];\n var index = deepestZone ? 0 : -1;\n var parent = void 0;\n var child = void 0;\n var i = void 0;\n var n = void 0;\n\n for (i = 1; i < elements.length; i++) {\n dropzone = elements[i];\n\n // an element might belong to multiple selector dropzones\n if (!dropzone || dropzone === deepestZone) {\n continue;\n }\n\n if (!deepestZone) {\n deepestZone = dropzone;\n index = i;\n continue;\n }\n\n // check if the deepest or current are document.documentElement or document.rootElement\n // - if the current dropzone is, do nothing and continue\n if (dropzone.parentNode === dropzone.ownerDocument) {\n continue;\n }\n // - if deepest is, update with the current dropzone and continue to next\n else if (deepestZone.parentNode === dropzone.ownerDocument) {\n deepestZone = dropzone;\n index = i;\n continue;\n }\n\n if (!deepestZoneParents.length) {\n parent = deepestZone;\n while (parent.parentNode && parent.parentNode !== parent.ownerDocument) {\n deepestZoneParents.unshift(parent);\n parent = parent.parentNode;\n }\n }\n\n // if this element is an svg element and the current deepest is\n // an HTMLElement\n if (deepestZone instanceof domObjects.HTMLElement && dropzone instanceof domObjects.SVGElement && !(dropzone instanceof domObjects.SVGSVGElement)) {\n\n if (dropzone === deepestZone.parentNode) {\n continue;\n }\n\n parent = dropzone.ownerSVGElement;\n } else {\n parent = dropzone;\n }\n\n dropzoneParents = [];\n\n while (parent.parentNode !== parent.ownerDocument) {\n dropzoneParents.unshift(parent);\n parent = parent.parentNode;\n }\n\n n = 0;\n\n // get (position of last common ancestor) + 1\n while (dropzoneParents[n] && dropzoneParents[n] === deepestZoneParents[n]) {\n n++;\n }\n\n var parents = [dropzoneParents[n - 1], dropzoneParents[n], deepestZoneParents[n]];\n\n child = parents[0].lastChild;\n\n while (child) {\n if (child === parents[1]) {\n deepestZone = dropzone;\n index = i;\n deepestZoneParents = [];\n\n break;\n } else if (child === parents[2]) {\n break;\n }\n\n child = child.previousSibling;\n }\n }\n\n return index;\n },\n\n matchesUpTo: function matchesUpTo(element, selector, limit) {\n while (is.element(element)) {\n if (domUtils.matchesSelector(element, selector)) {\n return true;\n }\n\n element = domUtils.parentNode(element);\n\n if (element === limit) {\n return domUtils.matchesSelector(element, selector);\n }\n }\n\n return false;\n },\n\n getActualElement: function getActualElement(element) {\n return element instanceof domObjects.SVGElementInstance ? element.correspondingUseElement : element;\n },\n\n getScrollXY: function getScrollXY(relevantWindow) {\n relevantWindow = relevantWindow || win.window;\n return {\n x: relevantWindow.scrollX || relevantWindow.document.documentElement.scrollLeft,\n y: relevantWindow.scrollY || relevantWindow.document.documentElement.scrollTop\n };\n },\n\n getElementClientRect: function getElementClientRect(element) {\n var clientRect = element instanceof domObjects.SVGElement ? element.getBoundingClientRect() : element.getClientRects()[0];\n\n return clientRect && {\n left: clientRect.left,\n right: clientRect.right,\n top: clientRect.top,\n bottom: clientRect.bottom,\n width: clientRect.width || clientRect.right - clientRect.left,\n height: clientRect.height || clientRect.bottom - clientRect.top\n };\n },\n\n getElementRect: function getElementRect(element) {\n var clientRect = domUtils.getElementClientRect(element);\n\n if (!browser.isIOS7 && clientRect) {\n var scroll = domUtils.getScrollXY(win.getWindow(element));\n\n clientRect.left += scroll.x;\n clientRect.right += scroll.x;\n clientRect.top += scroll.y;\n clientRect.bottom += scroll.y;\n }\n\n return clientRect;\n },\n\n getPath: function getPath(element) {\n var path = [];\n\n while (element) {\n path.push(element);\n element = domUtils.parentNode(element);\n }\n\n return path;\n },\n\n trySelector: function trySelector(value) {\n if (!is.string(value)) {\n return false;\n }\n\n // an exception will be raised if it is invalid\n domObjects.document.querySelector(value);\n return true;\n }\n};\n\nmodule.exports = domUtils;\n\n},{\"./browser\":36,\"./domObjects\":38,\"./is\":46,\"./window\":52}],40:[function(require,module,exports){\n'use strict';\n\nvar is = require('./is');\nvar domUtils = require('./domUtils');\nvar pointerUtils = require('./pointerUtils');\nvar pExtend = require('./pointerExtend');\n\nvar _require = require('./window'),\n window = _require.window;\n\nvar _require2 = require('./arr'),\n contains = _require2.contains;\n\nvar elements = [];\nvar targets = [];\n\n// {\n// type: {\n// selectors: ['selector', ...],\n// contexts : [document, ...],\n// listeners: [[listener, capture, passive], ...]\n// }\n// }\nvar delegatedEvents = {};\nvar documents = [];\n\nvar supportsOptions = function () {\n var supported = false;\n\n window.document.createElement('div').addEventListener('test', null, {\n get capture() {\n supported = true;\n }\n });\n\n return supported;\n}();\n\nfunction add(element, type, listener, optionalArg) {\n var options = getOptions(optionalArg);\n var elementIndex = elements.indexOf(element);\n var target = targets[elementIndex];\n\n if (!target) {\n target = {\n events: {},\n typeCount: 0\n };\n\n elementIndex = elements.push(element) - 1;\n targets.push(target);\n }\n\n if (!target.events[type]) {\n target.events[type] = [];\n target.typeCount++;\n }\n\n if (!contains(target.events[type], listener)) {\n element.addEventListener(type, listener, supportsOptions ? options : !!options.capture);\n target.events[type].push(listener);\n }\n}\n\nfunction remove(element, type, listener, optionalArg) {\n var options = getOptions(optionalArg);\n var elementIndex = elements.indexOf(element);\n var target = targets[elementIndex];\n\n if (!target || !target.events) {\n return;\n }\n\n if (type === 'all') {\n for (type in target.events) {\n if (target.events.hasOwnProperty(type)) {\n remove(element, type, 'all');\n }\n }\n return;\n }\n\n if (target.events[type]) {\n var len = target.events[type].length;\n\n if (listener === 'all') {\n for (var i = 0; i < len; i++) {\n remove(element, type, target.events[type][i], options);\n }\n return;\n } else {\n for (var _i = 0; _i < len; _i++) {\n if (target.events[type][_i] === listener) {\n element.removeEventListener('on' + type, listener, supportsOptions ? options : !!options.capture);\n target.events[type].splice(_i, 1);\n\n break;\n }\n }\n }\n\n if (target.events[type] && target.events[type].length === 0) {\n target.events[type] = null;\n target.typeCount--;\n }\n }\n\n if (!target.typeCount) {\n targets.splice(elementIndex, 1);\n elements.splice(elementIndex, 1);\n }\n}\n\nfunction addDelegate(selector, context, type, listener, optionalArg) {\n var options = getOptions(optionalArg);\n if (!delegatedEvents[type]) {\n delegatedEvents[type] = {\n selectors: [],\n contexts: [],\n listeners: []\n };\n\n // add delegate listener functions\n for (var _i2 = 0; _i2 < documents.length; _i2++) {\n var doc = documents[_i2];\n add(doc, type, delegateListener);\n add(doc, type, delegateUseCapture, true);\n }\n }\n\n var delegated = delegatedEvents[type];\n var index = void 0;\n\n for (index = delegated.selectors.length - 1; index >= 0; index--) {\n if (delegated.selectors[index] === selector && delegated.contexts[index] === context) {\n break;\n }\n }\n\n if (index === -1) {\n index = delegated.selectors.length;\n\n delegated.selectors.push(selector);\n delegated.contexts.push(context);\n delegated.listeners.push([]);\n }\n\n // keep listener and capture and passive flags\n delegated.listeners[index].push([listener, !!options.capture, options.passive]);\n}\n\nfunction removeDelegate(selector, context, type, listener, optionalArg) {\n var options = getOptions(optionalArg);\n var delegated = delegatedEvents[type];\n var matchFound = false;\n var index = void 0;\n\n if (!delegated) {\n return;\n }\n\n // count from last index of delegated to 0\n for (index = delegated.selectors.length - 1; index >= 0; index--) {\n // look for matching selector and context Node\n if (delegated.selectors[index] === selector && delegated.contexts[index] === context) {\n\n var listeners = delegated.listeners[index];\n\n // each item of the listeners array is an array: [function, capture, passive]\n for (var i = listeners.length - 1; i >= 0; i--) {\n var _listeners$i = listeners[i],\n fn = _listeners$i[0],\n capture = _listeners$i[1],\n passive = _listeners$i[2];\n\n // check if the listener functions and capture and passive flags match\n\n if (fn === listener && capture === !!options.capture && passive === options.passive) {\n // remove the listener from the array of listeners\n listeners.splice(i, 1);\n\n // if all listeners for this interactable have been removed\n // remove the interactable from the delegated arrays\n if (!listeners.length) {\n delegated.selectors.splice(index, 1);\n delegated.contexts.splice(index, 1);\n delegated.listeners.splice(index, 1);\n\n // remove delegate function from context\n remove(context, type, delegateListener);\n remove(context, type, delegateUseCapture, true);\n\n // remove the arrays if they are empty\n if (!delegated.selectors.length) {\n delegatedEvents[type] = null;\n }\n }\n\n // only remove one listener\n matchFound = true;\n break;\n }\n }\n\n if (matchFound) {\n break;\n }\n }\n }\n}\n\n// bound to the interactable context when a DOM event\n// listener is added to a selector interactable\nfunction delegateListener(event, optionalArg) {\n var options = getOptions(optionalArg);\n var fakeEvent = {};\n var delegated = delegatedEvents[event.type];\n\n var _pointerUtils$getEven = pointerUtils.getEventTargets(event),\n eventTarget = _pointerUtils$getEven[0];\n\n var element = eventTarget;\n\n // duplicate the event so that currentTarget can be changed\n pExtend(fakeEvent, event);\n\n fakeEvent.originalEvent = event;\n fakeEvent.preventDefault = preventOriginalDefault;\n\n // climb up document tree looking for selector matches\n while (is.element(element)) {\n for (var i = 0; i < delegated.selectors.length; i++) {\n var selector = delegated.selectors[i];\n var context = delegated.contexts[i];\n\n if (domUtils.matchesSelector(element, selector) && domUtils.nodeContains(context, eventTarget) && domUtils.nodeContains(context, element)) {\n\n var listeners = delegated.listeners[i];\n\n fakeEvent.currentTarget = element;\n\n for (var j = 0; j < listeners.length; j++) {\n var _listeners$j = listeners[j],\n fn = _listeners$j[0],\n capture = _listeners$j[1],\n passive = _listeners$j[2];\n\n\n if (capture === !!options.capture && passive === options.passive) {\n fn(fakeEvent);\n }\n }\n }\n }\n\n element = domUtils.parentNode(element);\n }\n}\n\nfunction delegateUseCapture(event) {\n return delegateListener.call(this, event, true);\n}\n\nfunction preventOriginalDefault() {\n this.originalEvent.preventDefault();\n}\n\nfunction getOptions(param) {\n return is.object(param) ? param : { capture: param };\n}\n\nmodule.exports = {\n add: add,\n remove: remove,\n\n addDelegate: addDelegate,\n removeDelegate: removeDelegate,\n\n delegateListener: delegateListener,\n delegateUseCapture: delegateUseCapture,\n delegatedEvents: delegatedEvents,\n documents: documents,\n\n supportsOptions: supportsOptions,\n\n _elements: elements,\n _targets: targets\n};\n\n},{\"./arr\":35,\"./domUtils\":39,\"./is\":46,\"./pointerExtend\":48,\"./pointerUtils\":49,\"./window\":52}],41:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = function extend(dest, source) {\n for (var prop in source) {\n dest[prop] = source[prop];\n }\n return dest;\n};\n\n},{}],42:[function(require,module,exports){\n'use strict';\n\nvar _require = require('./rect'),\n resolveRectLike = _require.resolveRectLike,\n rectToXY = _require.rectToXY;\n\nmodule.exports = function (target, element, action) {\n var actionOptions = target.options[action];\n var actionOrigin = actionOptions && actionOptions.origin;\n var origin = actionOrigin || target.options.origin;\n\n var originRect = resolveRectLike(origin, target, element, [target && element]);\n\n return rectToXY(originRect) || { x: 0, y: 0 };\n};\n\n},{\"./rect\":51}],43:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = function (x, y) {\n return Math.sqrt(x * x + y * y);\n};\n\n},{}],44:[function(require,module,exports){\n'use strict';\n\nvar extend = require('./extend');\nvar win = require('./window');\n\nvar utils = {\n warnOnce: function warnOnce(method, message) {\n var warned = false;\n\n return function () {\n if (!warned) {\n win.window.console.warn(message);\n warned = true;\n }\n\n return method.apply(this, arguments);\n };\n },\n\n // http://stackoverflow.com/a/5634528/2280888\n _getQBezierValue: function _getQBezierValue(t, p1, p2, p3) {\n var iT = 1 - t;\n return iT * iT * p1 + 2 * iT * t * p2 + t * t * p3;\n },\n\n getQuadraticCurvePoint: function getQuadraticCurvePoint(startX, startY, cpX, cpY, endX, endY, position) {\n return {\n x: utils._getQBezierValue(position, startX, cpX, endX),\n y: utils._getQBezierValue(position, startY, cpY, endY)\n };\n },\n\n // http://gizma.com/easing/\n easeOutQuad: function easeOutQuad(t, b, c, d) {\n t /= d;\n return -c * t * (t - 2) + b;\n },\n\n copyAction: function copyAction(dest, src) {\n dest.name = src.name;\n dest.axis = src.axis;\n dest.edges = src.edges;\n\n return dest;\n },\n\n is: require('./is'),\n extend: extend,\n hypot: require('./hypot'),\n getOriginXY: require('./getOriginXY')\n};\n\nextend(utils, require('./arr'));\nextend(utils, require('./domUtils'));\nextend(utils, require('./pointerUtils'));\nextend(utils, require('./rect'));\n\nmodule.exports = utils;\n\n},{\"./arr\":35,\"./domUtils\":39,\"./extend\":41,\"./getOriginXY\":42,\"./hypot\":43,\"./is\":46,\"./pointerUtils\":49,\"./rect\":51,\"./window\":52}],45:[function(require,module,exports){\n'use strict';\n\nvar scope = require('../scope');\nvar utils = require('./index');\n\nvar finder = {\n methodOrder: ['simulationResume', 'mouseOrPen', 'hasPointer', 'idle'],\n\n search: function search(pointer, eventType, eventTarget) {\n var pointerType = utils.getPointerType(pointer);\n var pointerId = utils.getPointerId(pointer);\n var details = { pointer: pointer, pointerId: pointerId, pointerType: pointerType, eventType: eventType, eventTarget: eventTarget };\n\n for (var _i = 0; _i < finder.methodOrder.length; _i++) {\n var _ref;\n\n _ref = finder.methodOrder[_i];\n var method = _ref;\n\n var interaction = finder[method](details);\n\n if (interaction) {\n return interaction;\n }\n }\n },\n\n // try to resume simulation with a new pointer\n simulationResume: function simulationResume(_ref2) {\n var pointerType = _ref2.pointerType,\n eventType = _ref2.eventType,\n eventTarget = _ref2.eventTarget;\n\n if (!/down|start/i.test(eventType)) {\n return null;\n }\n\n for (var _i2 = 0; _i2 < scope.interactions.length; _i2++) {\n var _ref3;\n\n _ref3 = scope.interactions[_i2];\n var interaction = _ref3;\n\n var element = eventTarget;\n\n if (interaction.simulation && interaction.simulation.allowResume && interaction.pointerType === pointerType) {\n while (element) {\n // if the element is the interaction element\n if (element === interaction.element) {\n return interaction;\n }\n element = utils.parentNode(element);\n }\n }\n }\n\n return null;\n },\n\n // if it's a mouse or pen interaction\n mouseOrPen: function mouseOrPen(_ref4) {\n var pointerId = _ref4.pointerId,\n pointerType = _ref4.pointerType,\n eventType = _ref4.eventType;\n\n if (pointerType !== 'mouse' && pointerType !== 'pen') {\n return null;\n }\n\n var firstNonActive = void 0;\n\n for (var _i3 = 0; _i3 < scope.interactions.length; _i3++) {\n var _ref5;\n\n _ref5 = scope.interactions[_i3];\n var interaction = _ref5;\n\n if (interaction.pointerType === pointerType) {\n // if it's a down event, skip interactions with running simulations\n if (interaction.simulation && !utils.contains(interaction.pointerIds, pointerId)) {\n continue;\n }\n\n // if the interaction is active, return it immediately\n if (interaction.interacting()) {\n return interaction;\n }\n // otherwise save it and look for another active interaction\n else if (!firstNonActive) {\n firstNonActive = interaction;\n }\n }\n }\n\n // if no active mouse interaction was found use the first inactive mouse\n // interaction\n if (firstNonActive) {\n return firstNonActive;\n }\n\n // find any mouse or pen interaction.\n // ignore the interaction if the eventType is a *down, and a simulation\n // is active\n for (var _i4 = 0; _i4 < scope.interactions.length; _i4++) {\n var _ref6;\n\n _ref6 = scope.interactions[_i4];\n var _interaction = _ref6;\n\n if (_interaction.pointerType === pointerType && !(/down/i.test(eventType) && _interaction.simulation)) {\n return _interaction;\n }\n }\n\n return null;\n },\n\n // get interaction that has this pointer\n hasPointer: function hasPointer(_ref7) {\n var pointerId = _ref7.pointerId;\n\n for (var _i5 = 0; _i5 < scope.interactions.length; _i5++) {\n var _ref8;\n\n _ref8 = scope.interactions[_i5];\n var interaction = _ref8;\n\n if (utils.contains(interaction.pointerIds, pointerId)) {\n return interaction;\n }\n }\n },\n\n // get first idle interaction with a matching pointerType\n idle: function idle(_ref9) {\n var pointerType = _ref9.pointerType;\n\n for (var _i6 = 0; _i6 < scope.interactions.length; _i6++) {\n var _ref10;\n\n _ref10 = scope.interactions[_i6];\n var interaction = _ref10;\n\n // if there's already a pointer held down\n if (interaction.pointerIds.length === 1) {\n var target = interaction.target;\n // don't add this pointer if there is a target interactable and it\n // isn't gesturable\n if (target && !target.options.gesture.enabled) {\n continue;\n }\n }\n // maximum of 2 pointers per interaction\n else if (interaction.pointerIds.length >= 2) {\n continue;\n }\n\n if (!interaction.interacting() && pointerType === interaction.pointerType) {\n return interaction;\n }\n }\n\n return null;\n }\n};\n\nmodule.exports = finder;\n\n},{\"../scope\":33,\"./index\":44}],46:[function(require,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar win = require('./window');\nvar isWindow = require('./isWindow');\n\nvar is = {\n array: function array() {},\n\n window: function window(thing) {\n return thing === win.window || isWindow(thing);\n },\n\n docFrag: function docFrag(thing) {\n return is.object(thing) && thing.nodeType === 11;\n },\n\n object: function object(thing) {\n return !!thing && (typeof thing === 'undefined' ? 'undefined' : _typeof(thing)) === 'object';\n },\n\n function: function _function(thing) {\n return typeof thing === 'function';\n },\n\n number: function number(thing) {\n return typeof thing === 'number';\n },\n\n bool: function bool(thing) {\n return typeof thing === 'boolean';\n },\n\n string: function string(thing) {\n return typeof thing === 'string';\n },\n\n element: function element(thing) {\n if (!thing || (typeof thing === 'undefined' ? 'undefined' : _typeof(thing)) !== 'object') {\n return false;\n }\n\n var _window = win.getWindow(thing) || win.window;\n\n return (/object|function/.test(_typeof(_window.Element)) ? thing instanceof _window.Element //DOM2\n : thing.nodeType === 1 && typeof thing.nodeName === 'string'\n );\n },\n\n plainObject: function plainObject(thing) {\n return is.object(thing) && thing.constructor.name === 'Object';\n }\n};\n\nis.array = function (thing) {\n return is.object(thing) && typeof thing.length !== 'undefined' && is.function(thing.splice);\n};\n\nmodule.exports = is;\n\n},{\"./isWindow\":47,\"./window\":52}],47:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = function (thing) {\n return !!(thing && thing.Window) && thing instanceof thing.Window;\n};\n\n},{}],48:[function(require,module,exports){\n'use strict';\n\nfunction pointerExtend(dest, source) {\n for (var prop in source) {\n var prefixedPropREs = module.exports.prefixedPropREs;\n var deprecated = false;\n\n // skip deprecated prefixed properties\n for (var vendor in prefixedPropREs) {\n if (prop.indexOf(vendor) === 0 && prefixedPropREs[vendor].test(prop)) {\n deprecated = true;\n break;\n }\n }\n\n if (!deprecated && typeof source[prop] !== 'function') {\n dest[prop] = source[prop];\n }\n }\n return dest;\n}\n\npointerExtend.prefixedPropREs = {\n webkit: /(Movement[XY]|Radius[XY]|RotationAngle|Force)$/\n};\n\nmodule.exports = pointerExtend;\n\n},{}],49:[function(require,module,exports){\n'use strict';\n\nvar hypot = require('./hypot');\nvar browser = require('./browser');\nvar dom = require('./domObjects');\nvar domUtils = require('./domUtils');\nvar domObjects = require('./domObjects');\nvar is = require('./is');\nvar pointerExtend = require('./pointerExtend');\n\nvar pointerUtils = {\n copyCoords: function copyCoords(dest, src) {\n dest.page = dest.page || {};\n dest.page.x = src.page.x;\n dest.page.y = src.page.y;\n\n dest.client = dest.client || {};\n dest.client.x = src.client.x;\n dest.client.y = src.client.y;\n\n dest.timeStamp = src.timeStamp;\n },\n\n setCoordDeltas: function setCoordDeltas(targetObj, prev, cur) {\n targetObj.page.x = cur.page.x - prev.page.x;\n targetObj.page.y = cur.page.y - prev.page.y;\n targetObj.client.x = cur.client.x - prev.client.x;\n targetObj.client.y = cur.client.y - prev.client.y;\n targetObj.timeStamp = cur.timeStamp - prev.timeStamp;\n\n // set pointer velocity\n var dt = Math.max(targetObj.timeStamp / 1000, 0.001);\n\n targetObj.page.speed = hypot(targetObj.page.x, targetObj.page.y) / dt;\n targetObj.page.vx = targetObj.page.x / dt;\n targetObj.page.vy = targetObj.page.y / dt;\n\n targetObj.client.speed = hypot(targetObj.client.x, targetObj.page.y) / dt;\n targetObj.client.vx = targetObj.client.x / dt;\n targetObj.client.vy = targetObj.client.y / dt;\n },\n\n isNativePointer: function isNativePointer(pointer) {\n return pointer instanceof dom.Event || pointer instanceof dom.Touch;\n },\n\n // Get specified X/Y coords for mouse or event.touches[0]\n getXY: function getXY(type, pointer, xy) {\n xy = xy || {};\n type = type || 'page';\n\n xy.x = pointer[type + 'X'];\n xy.y = pointer[type + 'Y'];\n\n return xy;\n },\n\n getPageXY: function getPageXY(pointer, page) {\n page = page || {};\n\n // Opera Mobile handles the viewport and scrolling oddly\n if (browser.isOperaMobile && pointerUtils.isNativePointer(pointer)) {\n pointerUtils.getXY('screen', pointer, page);\n\n page.x += window.scrollX;\n page.y += window.scrollY;\n } else {\n pointerUtils.getXY('page', pointer, page);\n }\n\n return page;\n },\n\n getClientXY: function getClientXY(pointer, client) {\n client = client || {};\n\n if (browser.isOperaMobile && pointerUtils.isNativePointer(pointer)) {\n // Opera Mobile handles the viewport and scrolling oddly\n pointerUtils.getXY('screen', pointer, client);\n } else {\n pointerUtils.getXY('client', pointer, client);\n }\n\n return client;\n },\n\n getPointerId: function getPointerId(pointer) {\n return is.number(pointer.pointerId) ? pointer.pointerId : pointer.identifier;\n },\n\n setCoords: function setCoords(targetObj, pointers, timeStamp) {\n var pointer = pointers.length > 1 ? pointerUtils.pointerAverage(pointers) : pointers[0];\n\n var tmpXY = {};\n\n pointerUtils.getPageXY(pointer, tmpXY);\n targetObj.page.x = tmpXY.x;\n targetObj.page.y = tmpXY.y;\n\n pointerUtils.getClientXY(pointer, tmpXY);\n targetObj.client.x = tmpXY.x;\n targetObj.client.y = tmpXY.y;\n\n targetObj.timeStamp = is.number(timeStamp) ? timeStamp : new Date().getTime();\n },\n\n pointerExtend: pointerExtend,\n\n getTouchPair: function getTouchPair(event) {\n var touches = [];\n\n // array of touches is supplied\n if (is.array(event)) {\n touches[0] = event[0];\n touches[1] = event[1];\n }\n // an event\n else {\n if (event.type === 'touchend') {\n if (event.touches.length === 1) {\n touches[0] = event.touches[0];\n touches[1] = event.changedTouches[0];\n } else if (event.touches.length === 0) {\n touches[0] = event.changedTouches[0];\n touches[1] = event.changedTouches[1];\n }\n } else {\n touches[0] = event.touches[0];\n touches[1] = event.touches[1];\n }\n }\n\n return touches;\n },\n\n pointerAverage: function pointerAverage(pointers) {\n var average = {\n pageX: 0,\n pageY: 0,\n clientX: 0,\n clientY: 0,\n screenX: 0,\n screenY: 0\n };\n\n for (var _i = 0; _i < pointers.length; _i++) {\n var _ref;\n\n _ref = pointers[_i];\n var pointer = _ref;\n\n for (var _prop in average) {\n average[_prop] += pointer[_prop];\n }\n }\n for (var prop in average) {\n average[prop] /= pointers.length;\n }\n\n return average;\n },\n\n touchBBox: function touchBBox(event) {\n if (!event.length && !(event.touches && event.touches.length > 1)) {\n return;\n }\n\n var touches = pointerUtils.getTouchPair(event);\n var minX = Math.min(touches[0].pageX, touches[1].pageX);\n var minY = Math.min(touches[0].pageY, touches[1].pageY);\n var maxX = Math.max(touches[0].pageX, touches[1].pageX);\n var maxY = Math.max(touches[0].pageY, touches[1].pageY);\n\n return {\n x: minX,\n y: minY,\n left: minX,\n top: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n },\n\n touchDistance: function touchDistance(event, deltaSource) {\n var sourceX = deltaSource + 'X';\n var sourceY = deltaSource + 'Y';\n var touches = pointerUtils.getTouchPair(event);\n\n var dx = touches[0][sourceX] - touches[1][sourceX];\n var dy = touches[0][sourceY] - touches[1][sourceY];\n\n return hypot(dx, dy);\n },\n\n touchAngle: function touchAngle(event, prevAngle, deltaSource) {\n var sourceX = deltaSource + 'X';\n var sourceY = deltaSource + 'Y';\n var touches = pointerUtils.getTouchPair(event);\n var dx = touches[1][sourceX] - touches[0][sourceX];\n var dy = touches[1][sourceY] - touches[0][sourceY];\n var angle = 180 * Math.atan2(dy, dx) / Math.PI;\n\n return angle;\n },\n\n getPointerType: function getPointerType(pointer) {\n return is.string(pointer.pointerType) ? pointer.pointerType : is.number(pointer.pointerType) ? [undefined, undefined, 'touch', 'pen', 'mouse'][pointer.pointerType]\n // if the PointerEvent API isn't available, then the \"pointer\" must\n // be either a MouseEvent, TouchEvent, or Touch object\n : /touch/.test(pointer.type) || pointer instanceof domObjects.Touch ? 'touch' : 'mouse';\n },\n\n // [ event.target, event.currentTarget ]\n getEventTargets: function getEventTargets(event) {\n var path = is.function(event.composedPath) ? event.composedPath() : event.path;\n\n return [domUtils.getActualElement(path ? path[0] : event.target), domUtils.getActualElement(event.currentTarget)];\n }\n};\n\nmodule.exports = pointerUtils;\n\n},{\"./browser\":36,\"./domObjects\":38,\"./domUtils\":39,\"./hypot\":43,\"./is\":46,\"./pointerExtend\":48}],50:[function(require,module,exports){\n'use strict';\n\nvar _require = require('./window'),\n window = _require.window;\n\nvar vendors = ['ms', 'moz', 'webkit', 'o'];\nvar lastTime = 0;\nvar request = void 0;\nvar cancel = void 0;\n\nfor (var x = 0; x < vendors.length && !window.requestAnimationFrame; x++) {\n request = window[vendors[x] + 'RequestAnimationFrame'];\n cancel = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];\n}\n\nif (!request) {\n request = function request(callback) {\n var currTime = new Date().getTime();\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\n var id = setTimeout(function () {\n callback(currTime + timeToCall);\n }, timeToCall);\n\n lastTime = currTime + timeToCall;\n return id;\n };\n}\n\nif (!cancel) {\n cancel = function cancel(id) {\n clearTimeout(id);\n };\n}\n\nmodule.exports = {\n request: request,\n cancel: cancel\n};\n\n},{\"./window\":52}],51:[function(require,module,exports){\n'use strict';\n\nvar extend = require('./extend');\nvar is = require('./is');\n\nvar _require = require('./domUtils'),\n closest = _require.closest,\n parentNode = _require.parentNode,\n getElementRect = _require.getElementRect;\n\nvar rectUtils = {\n getStringOptionResult: function getStringOptionResult(value, interactable, element) {\n if (!is.string(value)) {\n return null;\n }\n\n if (value === 'parent') {\n value = parentNode(element);\n } else if (value === 'self') {\n value = interactable.getRect(element);\n } else {\n value = closest(element, value);\n }\n\n return value;\n },\n\n resolveRectLike: function resolveRectLike(value, interactable, element, functionArgs) {\n value = rectUtils.getStringOptionResult(value, interactable, element) || value;\n\n if (is.function(value)) {\n value = value.apply(null, functionArgs);\n }\n\n if (is.element(value)) {\n value = getElementRect(value);\n }\n\n return value;\n },\n\n rectToXY: function rectToXY(rect) {\n return rect && {\n x: 'x' in rect ? rect.x : rect.left,\n y: 'y' in rect ? rect.y : rect.top\n };\n },\n\n xywhToTlbr: function xywhToTlbr(rect) {\n if (rect && !('left' in rect && 'top' in rect)) {\n rect = extend({}, rect);\n\n rect.left = rect.x || 0;\n rect.top = rect.y || 0;\n rect.right = rect.right || rect.left + rect.width;\n rect.bottom = rect.bottom || rect.top + rect.height;\n }\n\n return rect;\n },\n\n tlbrToXywh: function tlbrToXywh(rect) {\n if (rect && !('x' in rect && 'y' in rect)) {\n rect = extend({}, rect);\n\n rect.x = rect.left || 0;\n rect.top = rect.top || 0;\n rect.width = rect.width || rect.right - rect.x;\n rect.height = rect.height || rect.bottom - rect.y;\n }\n\n return rect;\n }\n};\n\nmodule.exports = rectUtils;\n\n},{\"./domUtils\":39,\"./extend\":41,\"./is\":46}],52:[function(require,module,exports){\n'use strict';\n\nvar win = module.exports;\nvar isWindow = require('./isWindow');\n\nfunction init(window) {\n // get wrapped window if using Shadow DOM polyfill\n\n win.realWindow = window;\n\n // create a TextNode\n var el = window.document.createTextNode('');\n\n // check if it's wrapped by a polyfill\n if (el.ownerDocument !== window.document && typeof window.wrap === 'function' && window.wrap(el) === el) {\n // use wrapped window\n window = window.wrap(window);\n }\n\n win.window = window;\n}\n\nif (typeof window === 'undefined') {\n win.window = undefined;\n win.realWindow = undefined;\n} else {\n init(window);\n}\n\nwin.getWindow = function getWindow(node) {\n if (isWindow(node)) {\n return node;\n }\n\n var rootNode = node.ownerDocument || node;\n\n return rootNode.defaultView || rootNode.parentWindow || win.window;\n};\n\nwin.init = init;\n\n},{\"./isWindow\":47}]},{},[1])(1)\n});\n\n\n//# sourceMappingURL=interact.js.map\n","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n"],"sourceRoot":""} \ No newline at end of file diff --git a/examples/02-events.html b/examples/02-events.html index e084a343..e083a215 100644 --- a/examples/02-events.html +++ b/examples/02-events.html @@ -45,6 +45,11 @@

Vue Grid Layout Example 2 - Move and resize events

:is-resizable="true" :vertical-compact="true" :use-css-transforms="true" + @layout-created="layoutCreatedEvent" + @layout-before-mount="layoutBeforeMountEvent" + @layout-mounted="layoutMountedEvent" + @layout-ready="layoutReadyEvent" + @layout-updated="layoutUpdatedEvent" > Vue Grid Layout Example 2 - Move and resize events - \ No newline at end of file + diff --git a/examples/02-events.js b/examples/02-events.js index 38637327..230daadd 100644 --- a/examples/02-events.js +++ b/examples/02-events.js @@ -72,6 +72,27 @@ new Vue({ this.eventLog.push(msg); console.log(msg); }, + + layoutCreatedEvent: function(newLayout){ + this.eventLog.push("Created layout"); + console.log("Created layout: ", newLayout) + }, + layoutBeforeMountEvent: function(newLayout){ + this.eventLog.push("beforeMount layout"); + console.log("beforeMount layout: ", newLayout) + }, + layoutMountedEvent: function(newLayout){ + this.eventLog.push("Mounted layout"); + console.log("Mounted layout: ", newLayout) + }, + layoutReadyEvent: function(newLayout){ + this.eventLog.push("Ready layout"); + console.log("Ready layout: ", newLayout) + }, + layoutUpdatedEvent: function(newLayout){ + this.eventLog.push("Updated layout"); + console.log("Updated layout: ", newLayout) + }, } }); diff --git a/src/App.vue b/src/App.vue index e0bdfbf7..910bc3a7 100644 --- a/src/App.vue +++ b/src/App.vue @@ -43,6 +43,11 @@ :vertical-compact="true" :use-css-transforms="true" :responsive="responsive" + @layout-created="layoutCreatedEvent" + @layout-before-mount="layoutBeforeMountEvent" + @layout-mounted="layoutMountedEvent" + @layout-ready="layoutReadyEvent" + @layout-updated="layoutUpdatedEvent" > diff --git a/src/components/GridLayout.vue b/src/components/GridLayout.vue index 6e7c27dc..e19792fc 100644 --- a/src/components/GridLayout.vue +++ b/src/components/GridLayout.vue @@ -132,6 +132,7 @@ self.eventBus = self._provided.eventBus; self.eventBus.$on('resizeEvent', self.resizeEventHandler); self.eventBus.$on('dragEvent', self.dragEventHandler); + self.$emit('layout-created', self.layout); }, beforeDestroy: function(){ //Remove listeners @@ -141,7 +142,11 @@ removeWindowEventListener("resize", this.onWindowResize); this.erd.uninstall(this.$refs.item); }, + beforeMount: function() { + this.$emit('layout-before-mount', this.layout); + }, mounted: function() { + this.$emit('layout-mounted', this.layout); this.$nextTick(function () { validateLayout(this.layout); @@ -167,6 +172,8 @@ self.onWindowResize(); }); }); + + self.$emit('layout-ready', self.layout); }); }); }, @@ -252,7 +259,7 @@ if (l === undefined || l === null){ l = {x:0, y:0} } - + if (eventName === "dragmove" || eventName === "dragstart") { this.placeholder.i = id; this.placeholder.x = l.x; @@ -269,7 +276,7 @@ this.isDragging = false; }); } - + // set layout element coordinates to dragged position l.x = x; l.y = y; @@ -306,16 +313,16 @@ } l.h = h; l.w = w; - + if (this.responsive) this.responsiveGridLayout(); - + compact(this.layout, this.verticalCompact); this.eventBus.$emit("compact"); this.updateHeight(); if (eventName === 'resizeend') this.$emit('layout-updated', this.layout); }, - + // finds or generates new layouts for set breakpoints responsiveGridLayout(){ @@ -326,8 +333,8 @@ if(this.lastBreakpoint != null && !this.layouts[this.lastBreakpoint]) this.layouts[this.lastBreakpoint] = cloneLayout(this.layout); - // Find or generate a new layout. - let layout = findOrGenerateResponsiveLayout( + // Find or generate a new layout. + let layout = findOrGenerateResponsiveLayout( this.originalLayout, this.layouts, this.breakpoints, @@ -336,7 +343,7 @@ newCols, this.verticalCompact ); - + // Store the new layout. this.layouts[newBreakpoint] = layout; @@ -353,7 +360,7 @@ this.layouts = {}; }, - // find difference in layouts + // find difference in layouts findDifference(layout, originalLayout){ //Find values that are in result1 but not in result2