diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 00000000..c2925fb8 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +github: jbaysolutions diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 00000000..45af7344 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,35 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: '' +assignees: '' + +--- + +**Software version (please complete the following information):** + - Browser [e.g. chrome, safari] + - Vue Version [e.g. 2.5.7] + - vue-grid-layout Version: [e.g. 2.3.3] + +**Describe the bug** +A clear and concise description of what the bug is. + +Please use the [CodeSandbox Template](https://codesandbox.io/s/5wy3rz5z1x?module=%2Fsrc%2FShowcaseLayout.js) to demonstrate your bug. It is much easier for us to help you if you do. + + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 00000000..2672375c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,22 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: '' +assignees: '' + +--- + +## If you have a feature request, please try to implement it before requesting it.
This is free software and the author is busy with other projects. + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml new file mode 100644 index 00000000..a6d9d440 --- /dev/null +++ b/.github/workflows/build-test.yml @@ -0,0 +1,32 @@ +name: Build and Test + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [10.x, 12.x, 14.x, 15.x] + # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ + + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - name: Install dependency + run: yarn + - name: Lint check + run: yarn lint + - name: Build + run: yarn build + - name: Unit test + run: yarn test:unit diff --git a/.github/workflows/vuepress-deploy.yml b/.github/workflows/vuepress-deploy.yml new file mode 100644 index 00000000..a936b2b7 --- /dev/null +++ b/.github/workflows/vuepress-deploy.yml @@ -0,0 +1,24 @@ +name: Deploy vuepress website +on: + push: + branches: + - master +jobs: + build-and-deploy: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@master + + - uses: actions/setup-node@v2 + with: + node-version: '16' + + - name: vuepress-deploy + uses: jenkey2011/vuepress-deploy@master + env: + ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }} + TARGET_REPO: jbaysolutions/vue-grid-layout + TARGET_BRANCH: gh-pages + BUILD_SCRIPT: cd website && yarn && yarn build + BUILD_DIR: public diff --git a/.gitignore b/.gitignore index 76571c9f..83dfe282 100644 --- a/.gitignore +++ b/.gitignore @@ -21,5 +21,6 @@ yarn-error.log* *.sln *.sw* -yarn.lock -yarn-error.log \ No newline at end of file +yarn-error.log + +website/docs/dist diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 15a6a7a9..00000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,103 +0,0 @@ -# Changelog - -## 2.3.3 (Dec 26, 2018) - -* Reverted adding vue as external, which caused problems loading umd. - -## 2.3.2 (Dec 13, 2018) - -* Added vue as externals webpack config to fix startup problems (thanks [Micene9](https://github.com/Micene09)) - -## 2.3.1 (Nov 6, 2018) - -* Previous fix for touch dragging on Android broke dragging on other mobile browsers (thanks [onx2](https://github.com/onx2)) - - -## 2.3.0 (Oct 26, 2018) - -* Responsive layout support (thanks [shpfive](https://github.com/shpfive)) -* Fix for touch dragging on Android (thanks [pbabey](https://github.com/pbabey)) - -## 2.2.0 (Sep 10, 2018) - -* changed project structure and build using Vue CLI -* GridItem new autosize method. For now, need to be called from child component with this.$parent.autoSize() (thanks[mech01nc01](https://github.com/mech01nc01)) -* Abstract DOM related calls for initial SSR Support (thanks[Kukks](https://github.com/Kukks)) -* GridItem.i can now be a number or a string (thanks[xch1029](https://github.com/xch1029)) -* Use interactjs size restrictions to limit resizing (thanks[LuisCarreras](https://github.com/LuisCarreras)) -* Fixed interactjs instance leak on instance release (thanks[zzuligy](https://github.com/zzuligy)) - -## 2.1.13 (May 2, 2018) - -* Resize event now also emits dimensions in pixels (thanks [buremba](https://github.com/buremba)) -* Support for dynamic col-num (#121) (thanks [ittus](https://github.com/ittus)) - -## 2.1.12 (Fev 27, 2018) - -* Updated interact.js to 1.3.3 (#144) - -## 2.1.11 (Jan 5, 2018) - -* Fixed issue with multiple grids on same vm (#134) (thanks [Suen](https://github.com/sunzongzheng)) -* Fixed issue with layout update on reassignment (#130) (thanks [daizengyu](https://github.com/daizengyu123)) - -## 2.1.10 (Dec 15, 2017) - -* Fixed possible bug related with #119 -* Changed css translate to translate3d (#96) -* Added is-mirrored config, allowing the grid items to be rendered from right to left (horizontal flip) (thanks [kweij](https://github.com/kweij)) -* Added grid updated event for easier integration with vuex (thanks [SergeyKhval](https://github.com/SergeyKhval)) - -## 2.1.9 (Aug 17, 2017) - -* Fixed local module reference to interact.js - -## 2.1.8 (Aug 17, 2017) - -* Fixed #61 and #37 -* Fixed #82 -* Fixed #87 - -## 2.1.7 (Aug 17, 2017) - -* Fixed #59 -* Fixed #83 -* Implemented support for dragAllowFrom and dragIgnoreFrom props on GridItem (thanks [ThePlastic](https://github.com/ThePlastic)) - -## 2.1.6 (Apr 6, 2017) - -* Fixed #43, configurable drag elements ignore on grid item contents (thanks [neithere](https://github.com/neithere)) -* Fix for getLayoutItem, sometimes returns null elements (thanks [pbabey](https://github.com/pbabey)) - -## 2.1.5 (Mar 24, 2017) - -* Really fixed #22 #32, multiple grid instances were not working properly in 2.1.4 -* resizedEvent now also returns item width and height in pixels (implements #34) - - -## 2.1.4 (Mar 20, 2017) - -* Implemented #32, support for multiple grid instances on the same page - -## 2.1.3 (Mar 9, 2017) - -* Fixed #27, props mutation warnings - - -## 2.1.2 (Fev 16, 2017) - -* Implemented #12, buttons on GridItems would trigger drag on mobile -* Implemented #24, listeners removal beforeDestroy (thanks [pbabey](https://github.com/pbabey)) - - -## 2.1.1 (Fev 9, 2017) - -* Implemented #13, dynamic row height update support -* Implemented #23, dynamic enable/disable dragging and resizing support -* Implemented #21, moved and resized events - - -## 2.1.0 (Fev 6, 2017) - -* RTL support (thanks [easteregg](https://github.com/easteregg)) -* Move and resize events (thanks [ThePlastic](https://github.com/ThePlastic)) \ No newline at end of file diff --git a/OLD/.babelrc b/OLD/.babelrc deleted file mode 100644 index 75b86286..00000000 --- a/OLD/.babelrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "presets": [ - "es2015-loose", - "stage-1" - ], - "plugins": [ - "transform-flow-comments" - ] -} diff --git a/OLD/index.html b/OLD/index.html deleted file mode 100644 index ffeb5b3b..00000000 --- a/OLD/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - Vue Grid Layout - - - - -
- - - diff --git a/OLD/package.json b/OLD/package.json deleted file mode 100644 index 456b7b50..00000000 --- a/OLD/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "vue-grid-layout", - "version": "2.1.13", - "description": "A draggable and resizable grid layout, as a Vue component.", - "keywords": [ - "grid", - "vuejs", - "drag", - "draggable", - "resize", - "resizable", - "fluid", - "responsive" - ], - "main": "dist/vue-grid-layout.min.js", - "scripts": { - "dev": "cross-env NODE_ENV=development webpack-dev-server --open --inline --hot", - "build": "cross-env NODE_ENV=production webpack --progress --hide-modules", - "dist": "webpack --progress --hide-modules --config webpack.build.js && cross-env NODE_ENV=production webpack --progress --hide-modules --config webpack.build.min.js" - }, - "repository": { - "type": "git", - "url": "https://github.com/jbaysolutions/vue-grid-layout.git" - }, - "author": "Gustavo Santos (JBay Solutions) (http://www.jbaysolutions.com)", - "dependencies": { - "element-resize-detector": "^1.1.10", - "interactjs": "^1.3.3" - }, - "devDependencies": { - "babel-core": "^6.26.0", - "babel-loader": "^7.1.2", - "babel-plugin-transform-flow-comments": "^6.7.0", - "babel-plugin-transform-runtime": "^6.0.0", - "babel-preset-es2015": "^6.0.0", - "babel-preset-es2015-loose": "^7.0.0", - "babel-preset-stage-1": "^6.5.0", - "cross-env": "^3.0.0", - "css-loader": "^0.25.0", - "file-loader": "^0.9.0", - "vue": "^2.2.6", - "vue-loader": "^11.1.4", - "vue-template-compiler": "^2.2.6", - "webpack": "^3.5.6", - "webpack-dev-server": "^2.7.0" - }, - "license": "MIT" -} diff --git a/OLD/src/App.vue b/OLD/src/App.vue deleted file mode 100644 index 29be9229..00000000 --- a/OLD/src/App.vue +++ /dev/null @@ -1,228 +0,0 @@ - - - - - diff --git a/OLD/src/app.js b/OLD/src/app.js deleted file mode 100644 index cd8e6f49..00000000 --- a/OLD/src/app.js +++ /dev/null @@ -1,94 +0,0 @@ -var testLayout = [ - {"x":0,"y":0,"w":2,"h":2,"i":"0"}, - {"x":2,"y":0,"w":2,"h":4,"i":"1"}, - {"x":4,"y":0,"w":2,"h":5,"i":"2"}, - {"x":6,"y":0,"w":2,"h":3,"i":"3"}, - {"x":8,"y":0,"w":2,"h":3,"i":"4"}, - {"x":10,"y":0,"w":2,"h":3,"i":"5"}, - {"x":0,"y":5,"w":2,"h":5,"i":"6"}, - {"x":2,"y":5,"w":2,"h":5,"i":"7"}, - {"x":4,"y":5,"w":2,"h":5,"i":"8"}, - {"x":6,"y":4,"w":2,"h":4,"i":"9"}, - {"x":8,"y":4,"w":2,"h":4,"i":"10"}, - {"x":10,"y":4,"w":2,"h":4,"i":"11"}, - {"x":0,"y":10,"w":2,"h":5,"i":"12"}, - {"x":2,"y":10,"w":2,"h":5,"i":"13"}, - {"x":4,"y":8,"w":2,"h":4,"i":"14"}, - {"x":6,"y":8,"w":2,"h":4,"i":"15"}, - {"x":8,"y":10,"w":2,"h":5,"i":"16"}, - {"x":10,"y":4,"w":2,"h":2,"i":"17"}, - {"x":0,"y":9,"w":2,"h":3,"i":"18"}, - {"x":2,"y":6,"w":2,"h":2,"i":"19"} -]; - - -//Vue.config.devtools = true; - -import GridItem from './GridItem.vue'; -import GridLayout from './GridLayout.vue'; -//import ResponsiveGridLayout from './ResponsiveGridLayout.vue'; -import TestElement from './TestElement.vue'; -import CustomDragElement from './CustomDragElement.vue'; - -new Vue({ - el: '#app', - components: { - //ResponsiveGridLayout, - GridLayout, - GridItem, - TestElement, - CustomDragElement, - }, - data: { - layout: JSON.parse(JSON.stringify(testLayout)), - colNum: 0, - index: 0 - }, - mounted: function () { - this.index = this.layout.length; - }, - watch: { - }, - methods: { - increaseWidth: function(item) { - var width = document.getElementById("content").offsetWidth; - width += 20; - document.getElementById("content").style.width = width+"px"; - }, - decreaseWidth: function(item) { - - var width = document.getElementById("content").offsetWidth; - width -= 20; - document.getElementById("content").style.width = width+"px"; - }, - removeItem: function(item) { - //console.log("### REMOVE " + item.i); - this.layout.splice(this.layout.indexOf(item), 1); - }, - addItem: function() { - var self = this; - //console.log("### LENGTH: " + this.layout.length); - var item = {"x":0,"y":0,"w":2,"h":2,"i":this.index+"", whatever: "bbb"}; - this.index++; - this.layout.push(item); - } - }, -}); - - -/*function generateLayout() { - return _.map(_.range(0, 25), function (item, i) { - var y = Math.ceil(Math.random() * 4) + 1; - return { - x: _.random(0, 5) * 2 % 12, - y: Math.floor(i / 6) * y, - w: 2, - h: y, - i: i.toString(), - static: Math.random() < 0.05 - }; - }); -}*/ - - - diff --git a/OLD/src/index.js b/OLD/src/index.js deleted file mode 100644 index 3c950324..00000000 --- a/OLD/src/index.js +++ /dev/null @@ -1,11 +0,0 @@ -import GridItem from './GridItem.vue'; -import GridLayout from './GridLayout.vue'; -import ResponsiveGridLayout from './ResponsiveGridLayout.vue'; - -const VueGridLayout = { - ResponsiveGridLayout, - GridLayout, - GridItem -} - -module.exports = VueGridLayout; diff --git a/OLD/src/main.js b/OLD/src/main.js deleted file mode 100644 index 385fcfe8..00000000 --- a/OLD/src/main.js +++ /dev/null @@ -1,7 +0,0 @@ -import Vue from 'vue' -import App from './App.vue' - -new Vue({ - el: '#app', - render: h => h(App) -}) diff --git a/OLD/webpack.build.js b/OLD/webpack.build.js deleted file mode 100644 index 6706acc8..00000000 --- a/OLD/webpack.build.js +++ /dev/null @@ -1,14 +0,0 @@ -var config = require('./webpack.config.js') - -config.entry = { - 'vue-grid-layout': './src/index.js', -} - -config.output = { - filename: './dist/[name].js', - library: 'VueGridLayout', - libraryTarget: 'umd' -} - - -module.exports = config diff --git a/OLD/webpack.build.min.js b/OLD/webpack.build.min.js deleted file mode 100644 index f3a2a371..00000000 --- a/OLD/webpack.build.min.js +++ /dev/null @@ -1,46 +0,0 @@ -var config = require('./webpack.build.js') -var webpack = require('webpack') - - -config.output.filename = config.output.filename.replace(/\.js$/, '.min.js') - -delete config.devtool - -/* -config.plugins = [ - new webpack.DefinePlugin({ - 'process.env': { - NODE_ENV: '"production"' - } - }), - new webpack.optimize.UglifyJsPlugin({ - sourceMap: false, - compress: { - warnings: false - } - }), - new webpack.optimize.OccurenceOrderPlugin() -] - */ -module.exports = config - - - -module.exports.devtool = '#source-map' -// http://vue-loader.vuejs.org/en/workflow/production.html -module.exports.plugins = (module.exports.plugins || []).concat([ - new webpack.DefinePlugin({ - 'process.env': { - NODE_ENV: '"production"' - } - }), - new webpack.optimize.UglifyJsPlugin({ - sourceMap: true, - compress: { - warnings: false - } - }), - new webpack.LoaderOptionsPlugin({ - minimize: true - }), -]) \ No newline at end of file diff --git a/OLD/webpack.config.js b/OLD/webpack.config.js deleted file mode 100644 index 5cdaae0a..00000000 --- a/OLD/webpack.config.js +++ /dev/null @@ -1,84 +0,0 @@ -var path = require('path') -var webpack = require('webpack') - -module.exports = { - entry: './src/main.js', - output: { - path: path.resolve(__dirname, './dist'), - publicPath: '/dist/', - filename: 'build.js' - }, - module: { - rules: [ - { - test: /\.vue$/, - loader: 'vue-loader', - options: { - loaders: { - // Since sass-loader (weirdly) has SCSS as its default parse mode, we map - // the "scss" and "sass" values for the lang attribute to the right configs here. - // other preprocessors should work out of the box, no loader config like this nessessary. - 'scss': 'vue-style-loader!css-loader!sass-loader', - 'sass': 'vue-style-loader!css-loader!sass-loader?indentedSyntax' - } - // other vue-loader options go here - } - }, - { - test: /\.js$/, - loader: 'babel-loader', - query: { - presets: ['es2015'] - }, - exclude: /node_modules/ - }, - { - test: /\.(png|jpg|gif|svg)$/, - loader: 'file-loader', - options: { - name: '[name].[ext]?[hash]' - } - } - ] - }, - resolve: { - alias: { - 'vue$': 'vue/dist/vue.common.js' - } - }, - devServer: { - historyApiFallback: true, - noInfo: true - }, - performance: { - hints: false - }, - devtool: '#eval-source-map', - plugins: [ - new webpack.HotModuleReplacementPlugin() - ] -} - - -/* -if (process.env.NODE_ENV === 'production') { - module.exports.devtool = '#source-map' - // http://vue-loader.vuejs.org/en/workflow/production.html - module.exports.plugins = (module.exports.plugins || []).concat([ - new webpack.DefinePlugin({ - 'process.env': { - NODE_ENV: '"production"' - } - }), - new webpack.optimize.UglifyJsPlugin({ - sourceMap: true, - compress: { - warnings: false - } - }), - new webpack.LoaderOptionsPlugin({ - minimize: true - }) - ]) -} -*/ diff --git a/README-zh_CN.md b/README-zh_CN.md new file mode 100644 index 00000000..e940b464 --- /dev/null +++ b/README-zh_CN.md @@ -0,0 +1,592 @@ +

vue-grid-layout

+ +

+ +

+ +vue-grid-layout是一个类似于[Gridster](http://dsmorse.github.io/gridster.js/)的栅格布局系统, 适用于Vue.js。 **灵感源自于 [React-Grid-Layout](https://github.com/STRML/react-grid-layout)** + +### **当前版本:** 2.4.0 (支持 Vue 2.2+) + +### **Vue 2.1.10 及以下请使用 [2.1.3](https://github.com/jbaysolutions/vue-grid-layout/tree/2.1.3)** +### **Vue 1 请使用 [1.0.3](https://github.com/jbaysolutions/vue-grid-layout/tree/1.0.3)** + +
+ +[**[在线演示](https://jbaysolutions.github.io/vue-grid-layout/examples/01-basic.html) | [更新日志](/CHANGELOG.md)**] + +[English](./README.md) | 简体中文 + + + +#### 成功案例 + +- [DocsFold](https://www.docsfold.com/?utm_source=github&utm_medium=web&utm_campaign=vue-grid-layout) +- [Draxed](https://www.draxed.com/?utm_source=github&utm_medium=web&utm_campaign=vue-grid-layout) +- [Data Providers](https://www.dataproviders.io/?utm_source=github&utm_medium=web&utm_campaign=vue-grid-layout) +- [Cataholic](https://cataholic.glitch.me/) + +*您还知悉其他项目? 请创建一个PR,谢谢!* + +## 特性 + +* 可拖拽 +* 可调整大小 +* 静态部件(不可拖拽、调整大小) +* 拖拽和调整大小时进行边界检查 +* 增减部件时避免重建栅格 +* 可序列化和还原的布局 +* 自动化 RTL 支持 +* 响应式 + + +## 入门指南 + +### 安装 + +#### npm + + # 使用 npm + npm install vue-grid-layout --save + + # 使用 yarn + yarn add vue-grid-layout + + +引入 + +```javascript + import VueGridLayout from 'vue-grid-layout'; +``` + +加入到 Vue 组件 + + ```javascript + export default { + components: { + GridLayout: VueGridLayout.GridLayout, + GridItem: VueGridLayout.GridItem + }, + // ... data, methods, mounted (), etc. + } + +``` + +#### 浏览器 + +在页面中使用已打包好的 [文件](https://github.com/jbaysolutions/vue-grid-layout/releases)。 此时组件已为可用状态。 + +```html + +``` + +### 使用 + +```javascript + var testLayout = [ + {"x":0,"y":0,"w":2,"h":2,"i":"0"}, + {"x":2,"y":0,"w":2,"h":4,"i":"1"}, + {"x":4,"y":0,"w":2,"h":5,"i":"2"}, + {"x":6,"y":0,"w":2,"h":3,"i":"3"}, + {"x":8,"y":0,"w":2,"h":3,"i":"4"}, + {"x":10,"y":0,"w":2,"h":3,"i":"5"}, + {"x":0,"y":5,"w":2,"h":5,"i":"6"}, + {"x":2,"y":5,"w":2,"h":5,"i":"7"}, + {"x":4,"y":5,"w":2,"h":5,"i":"8"}, + {"x":6,"y":3,"w":2,"h":4,"i":"9"}, + {"x":8,"y":4,"w":2,"h":4,"i":"10"}, + {"x":10,"y":4,"w":2,"h":4,"i":"11"}, + {"x":0,"y":10,"w":2,"h":5,"i":"12"}, + {"x":2,"y":10,"w":2,"h":5,"i":"13"}, + {"x":4,"y":8,"w":2,"h":4,"i":"14"}, + {"x":6,"y":8,"w":2,"h":4,"i":"15"}, + {"x":8,"y":10,"w":2,"h":5,"i":"16"}, + {"x":10,"y":4,"w":2,"h":2,"i":"17"}, + {"x":0,"y":9,"w":2,"h":3,"i":"18"}, + {"x":2,"y":6,"w":2,"h":2,"i":"19"} + ]; + + new Vue({ + el: '#app', + data: { + layout: testLayout, + }, + }); +``` + + +```html + + + + + {{item.i}} + + +``` + + +### 文档 + +#### 属性 + +##### GridLayout + +* **layout** + + * type: `Array` + * required: `true` + + 数据源。值必须为 `Array`,其数据项为 `Object`。 每条数据项必须有 `i`, `x`, `y`, `w` 和 `h` 属性。 请参考下面的 `GridItem`。 + +* **responsiveLayouts** + + * type: `Object` + * required: `false` + * default: `{}` + + 如果 `responsive` 设置为 `true`,该配置将作为栅格中每个断点的初始布局。键值是断点名称,每项的值都是类似 `layout` 属性定义的数据结构,值必须为 `Array`,其数据项为 `Object`。例如: `{lg: [layout items], md: [layout items]}`。需要注意的是,在创建栅格布局后设置该属性无效。 + +* **colNum** + + * type: `Number` + * required: `false` + * default: `12` + + 定义栅格系统的列数,其值需为自然数。 + +* **rowHeight** + + * type: `Number` + * required: `false` + * default: `150` + + 每行的高度,单位像素。 + +* **maxRows** + + * type: `Number` + * required: `false` + * default: `Infinity` + + 定义最大行数。 + +* **margin** + + * type: `Array` + * required: `false` + * default: `[10, 10]` + + 定义栅格中的元素边距。 + + 值必须是包含两个 `Number`的数组,数组中第一个元素表示水平边距,第二个表示垂直边距,单位为像素。 + +* **isDraggable** + + * type: `Boolean` + * required: `false` + * default: `true` + + 标识栅格中的元素是否可拖拽。 + +* **isResizable** + + * type: `Boolean` + * required: `false` + * default: `true` + + 标识栅格中的元素是否可调整大小。 + +* **isMirrored** + + * type: `Boolean` + * required: `false` + * default: `false` + + 标识栅格中的元素是否可镜像反转。 + +* **autoSize** + + * type: `Boolean` + * required: `false` + * default: `true` + + 标识容器是否自动调整大小。 + +* **verticalCompact** + + * type: `Boolean` + * required: `false` + * default: `true` + + 标识布局是否垂直压缩。 + +* **useCssTransforms** + + * type: `Boolean` + * required: `false` + * default: `true` + + 标识是否使用CSS属性 `transition-property: transform;`。 + +* **responsive** + + * type: `Boolean` + * required: `false` + * default: `false` + + 标识布局是否为响应式。 + +* **breakpoints** + + * type: `Object` + * required: `false` + * default: { lg: 1200, md: 996, sm: 768, xs: 480, xxs: 0 } + + 为响应式布局设置断点,其中参数代表不同设备的宽度:lg(large),md(medium),sm(small),xs(extra small)。 + +* **cols** + + * type: `Object` + * required: `false` + * default: { lg: 12, md: 10, sm: 6, xs: 4, xxs: 2 } + + 设置每个断点对应的列数。 + +* **useStyleCursor** + + * type: `Boolean` + * required: `false` + * default: `true` + + 标识是否使用动态鼠标指针样式。当拖动出现卡顿时,将此值设为 `false`也许可以缓解布局问题。 + + * **preventCollision** + + * type: `Boolean` + * default: `false` + + 值设置为ture时,栅格只能拖动至空白处。 + +##### GridItem + +* **i** + + * type: `String` + * required: `true` + + 栅格中元素的ID。 + +* **x** + + * type: `Number` + * required: `true` + + 标识栅格元素位于第几列,需为自然数。 + +* **y** + + * type: `Number` + * required: `true` + + 标识栅格元素位于第几行,需为自然数。 + +* **w** + + * type: `Number` + * required: `true` + + 标识栅格元素的初始宽度,值为`colWidth`的倍数。 + +* **h** + + * type: `Number` + * required: `true` + + 标识栅格元素的初始高度,值为`rowHeight`的倍数。 + +* **minW** + + * type: `Number` + * required: `false` + * default: `1` + + 栅格元素的最小宽度,值为`colWidth`的倍数。 + + 如果`w`小于`minW`,则`minW`的值会被`w`覆盖。 + +* **minH** + + * type: `Number` + * required: `false` + * default: `1` + + 栅格元素的最小高度,值为`rowHeight`的倍数。 + + 如果`h`小于`minH`,则`minH`的值会被`h`覆盖。 + +* **maxW** + + * type: `Number` + * required: `false` + * default: `Infinity` + + 栅格元素的最大宽度,值为`colWidth`的倍数。 + + 如果`w`大于`maxW`,则`maxW`的值会被`w`覆盖。 + +* **maxH** + + * type: `Number` + * required: `false` + * default: `Infinity` + + 栅格元素的最大高度,值为`rowHeight`的倍数。 + + 如果`h`大于`maxH`,则`maxH`的值会被`h`覆盖。 + +* **isDraggable** + + * type: `Boolean` + * required: `false` + * default: `null` + + 标识栅格元素是否可拖拽。如果值为`null`则取决于父容器。 + +* **isResizable** + + * type: `Boolean` + * required: `false` + * default: `null` + + 标识栅格元素是否可调整大小。如果值为`null`则取决于父容器。 + +* **static** + + * type: `Boolean` + * required: `false` + * default: `false` + + 标识栅格元素是否为静态的(无法拖拽、调整大小或被其他元素移动)。 + +* **dragIgnoreFrom** + + * type: `String` + * required: `false` + * default: `'a, button'` + + 标识栅格元素中哪些子元素无法触发拖拽事件,值为`css-like`选择器。 + + 请参考 [interact.js docs](http://interactjs.io/docs/#ignorable-selectors)中的`ignoreFrom`。 + +* **dragAllowFrom** + + * type: `String` + * required: `false` + * default: `null` + + 标识栅格元素中哪些子元素可以触发拖拽事件,值为`css-like`选择器。 + + 如果值为`null`则表示所有子元素(`dragIgnoreFrom`的除外)。 + + 请参考 [interact.js docs](http://interactjs.io/docs/#ignorable-selectors)中的`allowFrom`。 + +* **resizeIgnoreFrom** + + * type: `String` + * required: `false` + * default: `'a, button'` + + 标识栅格元素中哪些子元素无法触发调整大小的事件,值为`css-like`选择器。 + + 请参考 [interact.js docs](http://interactjs.io/docs/#ignorable-selectors)中的`ignoreFrom`。 + + + +#### 事件 + +每一个栅格元素`grid-item`上都可以添加监听器,用于监听移动和调整大小事件,这样父级Vue对象就可以收到通知。 + + [示例](https://jbaysolutions.github.io/vue-grid-layout/examples/02-events.html) + +````html + + + + + {{item.i}} + + +```` + +* **layoutCreatedEvent** + + 对应Vue生命周期的`created` + +```javascript + layoutCreatedEvent: function(newLayout){ + console.log("Created layout: ", newLayout) + } +``` + +* **layoutBeforeMountEvent** + + 对应Vue生命周期的`beforeMount` + +```javascript + layoutBeforeMountEvent: function(newLayout){ + console.log("beforeMount layout: ", newLayout) + } +``` + +* **layoutMountedEvent** + + 对应Vue生命周期的`mounted` + +```javascript + layoutMountedEvent: function(newLayout){ + console.log("Mounted layout: ", newLayout) + } +``` + +* **layoutReadyEvent** + + 当完成mount中的所有操作时生成的事件 + +```javascript + layoutReadyEvent: function(newLayout){ + console.log("Ready layout: ", newLayout) + } +``` + +* **layoutUpdatedEvent** + + 更新事件(布局更新或栅格元素的位置重新计算) + +```javascript + layoutUpdatedEvent: function(newLayout){ + console.log("Updated layout: ", newLayout) + } +``` + +* **moveEvent** + + 移动时的事件 + +```javascript + moveEvent: function(i, newX, newY){ + console.log("MOVE i=" + i + ", X=" + newX + ", Y=" + newY); + }, +``` + +* **resizeEvent** + + 调整大小时的事件 + +```javascript + resizeEvent: function(i, newH, newW, newHPx, newWPx){ + console.log("RESIZE i=" + i + ", H=" + newH + ", W=" + newW + ", H(px)=" + newHPx + ", W(px)=" + newWPx); + }, +``` + +* **movedEvent** + + 移动后的事件 + +```javascript + movedEvent: function(i, newX, newY){ + console.log("MOVED i=" + i + ", X=" + newX + ", Y=" + newY); + }, +``` + +* **resizedEvent** + + 调整大小后的事件 + +```javascript + /** + * + * @param i the item id/index + * @param newH new height in grid rows + * @param newW new width in grid columns + * @param newHPx new height in pixels + * @param newWPx new width in pixels + * + */ + resizedEvent: function(i, newH, newW, newHPx, newWPx){ + console.log("RESIZED i=" + i + ", H=" + newH + ", W=" + newW + ", H(px)=" + newHPx + ", W(px)=" + newWPx); + }, +``` + + +## 如何贡献 + +请提交issue或PR。 + + +## 待办事项 + +- [x] 基础栅格布局 +- [x] 响应式 +- [x] 可拖拽的栅格元素 +- [x] 可调整大小的栅格元素 +- [x] 静态元素 +- [x] 每个元素的Min/max w/h diff --git a/README.md b/README.md index 19daa5a5..540b2231 100644 --- a/README.md +++ b/README.md @@ -1,531 +1,60 @@ +

Vue Grid Layout

+

vue-grid-layout

- + + + + + + + +

+

+Documentation Website +

-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+) - -### **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)** - -
- -[**[Demo](https://jbaysolutions.github.io/vue-grid-layout/examples/01-basic.html) | [Changelog](/CHANGELOG.md)**] - - - -#### Projects using vue-grid-layout - -- [Draxed](https://www.draxed.com/?utm_source=github&utm_medium=web&utm_campaign=vue-grid-layout) - -*Know of others? Create a PR to let me know!* +vue-grid-layout is a grid layout system, like [Gridster](http://dsmorse.github.io/gridster.js/), for Vue.js. **Heavily inspired by [React-Grid-Layout](https://github.com/STRML/react-grid-layout)** ## Features * Draggable widgets * Resizable widgets +* Static widgets * Bounds checking for dragging and resizing * Widgets may be added or removed without rebuilding grid * Layout can be serialized and restored * Automatic RTL support (resizing not working with RTL on 2.2.0) * Responsive +## **Current version:** 2.4.0 (Supports Vue 2.2+) -## Getting Started - -### Installation - -#### npm - - # install with npm - npm install vue-grid-layout --save - - # install with yarn - yarn add vue-grid-layout - - -Import the library - -```javascript - import VueGridLayout from 'vue-grid-layout'; -``` - -Add to other Vue components - - ```javascript - export default { - components: { - GridLayout: VueGridLayout.GridLayout, - GridItem: VueGridLayout.GridItem - }, - // ... data, methods, mounted (), etc. - } - -``` - -#### browser - -Include the browser-ready bundle (download from [releases](https://github.com/jbaysolutions/vue-grid-layout/releases)) in your page. The components will be automatically available. - -```html - -``` - -### Usage - -```javascript - var testLayout = [ - {"x":0,"y":0,"w":2,"h":2,"i":"0"}, - {"x":2,"y":0,"w":2,"h":4,"i":"1"}, - {"x":4,"y":0,"w":2,"h":5,"i":"2"}, - {"x":6,"y":0,"w":2,"h":3,"i":"3"}, - {"x":8,"y":0,"w":2,"h":3,"i":"4"}, - {"x":10,"y":0,"w":2,"h":3,"i":"5"}, - {"x":0,"y":5,"w":2,"h":5,"i":"6"}, - {"x":2,"y":5,"w":2,"h":5,"i":"7"}, - {"x":4,"y":5,"w":2,"h":5,"i":"8"}, - {"x":6,"y":4,"w":2,"h":4,"i":"9"}, - {"x":8,"y":4,"w":2,"h":4,"i":"10"}, - {"x":10,"y":4,"w":2,"h":4,"i":"11"}, - {"x":0,"y":10,"w":2,"h":5,"i":"12"}, - {"x":2,"y":10,"w":2,"h":5,"i":"13"}, - {"x":4,"y":8,"w":2,"h":4,"i":"14"}, - {"x":6,"y":8,"w":2,"h":4,"i":"15"}, - {"x":8,"y":10,"w":2,"h":5,"i":"16"}, - {"x":10,"y":4,"w":2,"h":2,"i":"17"}, - {"x":0,"y":9,"w":2,"h":3,"i":"18"}, - {"x":2,"y":6,"w":2,"h":2,"i":"19"} - ]; - - new Vue({ - el: '#app', - data: { - layout: testLayout, - }, - }); -``` - - -```html - - - - - {{item.i}} - - -``` - - -### Documentation - -#### Properties - -##### GridLayout - -* **layout** - - * type: `Array` - * required: `true` - - This is the initial layout of the grid. - - The value must be an `Array` of `Object` items. Each item must have `i`, `x`, `y`, `w` and `h` properties. Please refer to `GridItem` documentation below for more informations. - -* **colNum** - - * type: `Number` - * required: `false` - * default: `12` - - Says how many columns the grid has. - - The value should be a _natural number_. - -* **rowHeight** - - * type: `Number` - * required: `false` - * default: `150` - - Says what is a height of a single row in pixels. - -* **maxRows** - - * type: `Number` - * required: `false` - * default: `Infinity` - - Says what is a maximal number of rows in the grid. - -* **margin** - - * type: `Array` - * required: `false` - * default: `[10, 10]` - - Says what are the margins of elements inside the grid. - - The value must be a two-element `Array` of `Number`. Each value is expressed in pixels. The first element is a margin horizontally, the second element is a vertical margin. - -* **isDraggable** - - * type: `Boolean` - * required: `false` - * default: `true` - - Says if the grids items are draggable. - -* **isResizable** - - * type: `Boolean` - * required: `false` - * default: `true` - - Says if the grids items are resizable. - -* **isMirrored** - - * type: `Boolean` - * required: `false` - * default: `false` - - Says if the RTL/LTR should be reversed. - -* **autoSize** - - * type: `Boolean` - * required: `false` - * default: `true` - - Says if the container height should swells and contracts to fit contents. - -* **verticalCompact** - - * type: `Boolean` - * required: `false` - * default: `true` - - Says if the layout should be compact vertically. - -* **useCssTransforms** - - * type: `Boolean` - * required: `false` - * default: `true` - - Says if the CSS `transition-property: transform;` should be used. - -* **responsive** - - * type: `Boolean` - * required: `false` - * default: `false` - - Says if the layout should be responsive to window width - -* **breakpoints** - - * type: `Object` - * required: `false` - * default: { lg: 1200, md: 996, sm: 768, xs: 480, xxs: 0 } - - Breakpoints defined for responsive layout. Sets widths on wich column number changes - -* **cols** - - * type: `Object` - * required: `false` - * default: { lg: 12, md: 10, sm: 6, xs: 4, xxs: 2 } - - Defines number of columns for each breakpoint +#### **For legacy browsers**, like IE11, use version [2.3.12-legacy](https://github.com/jbaysolutions/vue-grid-layout/tree/legacy) +#### **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)** +## Documentation -##### GridItem +Check out the Documentation Website -* **i** - - * type: `String` - * required: `true` - - This is the unique identifier of the item. - -* **x** - - * type: `Number` - * required: `true` - - Says what is a initial horizontal position of the item (in which column it should be placed). - - The value must be a _whole number_. - -* **y** - - * type: `Number` - * required: `true` - - Says what is a initial vertical position of the item (in which row it should be placed). - - The value must be a _whole number_. - -* **w** - - * type: `Number` - * required: `true` - - Says what is a initial width of the item. - - The value is a number that is multiplied by `colWidth`. - -* **h** - - * type: `Number` - * required: `true` - - Says what is a initial height of the item. - - The value is a number that is multiplied by `rowHeight`. - -* **minW** - - * type: `Number` - * required: `false` - * default: `1` - - Says what is a minimal width of the item. If `w` will be smaller then `minW` then `w` will be set to `minW`. - - The value is a number that is multiplied by `colWidth`. - -* **minH** - - * type: `Number` - * required: `false` - * default: `1` - - Says what is a minimal hieght of the item. If `h` will be smaller then `minH` then `h` will be set to `minH`. - - The value is a number that is multiplied by `rowHeight`. - -* **maxW** - - * type: `Number` - * required: `false` - * default: `Infinity` - - Says what is a maximal width of the item. If `w` will be bigger then `maxW` then `w` will be set to `maxW`. - - The value is a number that is multiplied by `colWidth`. - -* **maxH** - - * type: `Number` - * required: `false` - * default: `Infinity` - - Says what is a maximal height of the item. If `h` will be bigger then `maxH` then `h` will be set to `maxH`. - - The value is a number that is multiplied by `rowHeight` - -* **isDraggable** - - * type: `Boolean` - * required: `false` - * default: `null` - - Says if item is draggable. - - If default value is `null` then it's inherited from parent. - -* **isResizable** - - * type: `Boolean` - * required: `false` - * default: `null` - - Says if item is resizable. - - If default value is `null` then it's inherited from parent. - -* **dragIgnoreFrom** - - * type: `String` - * required: `false` - * default: `'a, button'` - - Says which elements of the item shouldn't trigger drag event of the item. - - The value is `css-like` selector string. - - For more info please refer to `ignoreFrom` in [interact.js docs](http://interactjs.io/docs/#ignorable-selectors). - -* **dragAllowFrom** - - * type: `String` - * required: `false` - * default: `null` - - Says which elements of the item should trigger drag event of the item. - - The value is `css-like` selector string. - - If `null` then one can drag by any (excluding `dragIgnoreFrom`) element of the item. - - For more info please refer to `allowFrom` in [interact.js docs](http://interactjs.io/docs/#ignorable-selectors). - -* **resizeIgnoreFrom** - - * type: `String` - * required: `false` - * default: `'a, button'` - - Says which elements of the item shouldn't trigger resize event of the item. - - The value is `css-like` selector string. - - For more info please refer to `ignoreFrom` in [interact.js docs](http://interactjs.io/docs/#ignorable-selectors). - - - -#### Events - -Move and resize event listeners can be added to each grid-item, so that the parent Vue can be notified when a grid element is being moved or resized. -Moved and resized event listeners can be added, if the only notification needed is when an item is finished moving or resizing. - -Working example [here](https://jbaysolutions.github.io/vue-grid-layout/examples/02-events.html) - -````html - - - - - {{item.i}} - - -```` - -* **layoutUpdatedEvent** - - Layout updated event - - Every time the layout has finished updating and positions of all grid-items are recalculated - -```javascript - layoutUpdatedEvent: function(newLayout){ - console.log("Updated layout: ", newLayout) - } -``` - -* **moveEvent** - - Move event - - Every time an item is being moved and changes position - -```javascript - moveEvent: function(i, newX, newY){ - console.log("MOVE i=" + i + ", X=" + newX + ", Y=" + newY); - }, -``` - -* **resizeEvent** - - Resize event - - Every time an item is being resized and changes size - -```javascript - resizeEvent: function(i, newH, newW, newHPx, newWPx){ - console.log("RESIZE i=" + i + ", H=" + newH + ", W=" + newW + ", H(px)=" + newHPx + ", W(px)=" + newWPx); - }, -``` - -* **movedEvent** - - Moved event - - Every time an item is finished being moved and changes position - -```javascript - movedEvent: function(i, newX, newY){ - console.log("MOVED i=" + i + ", X=" + newX + ", Y=" + newY); - }, -``` + -* **resizedEvent** +#### Projects using vue-grid-layout - Resized event +- [DocsFold](https://www.docsfold.com/?utm_source=github&utm_medium=web&utm_campaign=vue-grid-layout) +- [Draxed](https://www.draxed.com/?utm_source=github&utm_medium=web&utm_campaign=vue-grid-layout) +- [Data Providers](https://www.dataproviders.io/?utm_source=github&utm_medium=web&utm_campaign=vue-grid-layout) +- [Cataholic](https://cataholic.glitch.me/) - Every time an item is finished being resized and changes size - -```javascript - /** - * - * @param i the item id/index - * @param newH new height in grid rows - * @param newW new width in grid columns - * @param newHPx new height in pixels - * @param newWPx new width in pixels - * - */ - resizedEvent: function(i, newH, newW, newHPx, newWPx){ - console.log("RESIZED i=" + i + ", H=" + newH + ", W=" + newW + ", H(px)=" + newHPx + ", W(px)=" + newWPx); - }, -``` +*Know of others? Create a PR to let me know!* ## Contribute @@ -533,11 +62,4 @@ Working example [here](https://jbaysolutions.github.io/vue-grid-layout/examples/ If you have a feature request, please add it as an issue or make a pull request. -## TODO List - -- [x] Basic grid layout -- [x] Responsive -- [x] Draggable grid items -- [x] Resizable grid items -- [ ] Static elements -- [x] Min/max w/h per item +Developed by JBay Solutions diff --git a/babel.config.js b/babel.config.js index 1ccbc654..4fc4adba 100644 --- a/babel.config.js +++ b/babel.config.js @@ -1,6 +1,7 @@ module.exports = { presets: [ - '@vue/app' + '@vue/app', + '@babel/preset-env' ], "plugins": [ "transform-flow-comments" diff --git a/dist/vue-grid-layout.common.js b/dist/vue-grid-layout.common.js index 33a1ea3e..39ae33d2 100644 --- a/dist/vue-grid-layout.common.js +++ b/dist/vue-grid-layout.common.js @@ -1,3 +1,4 @@ +/*! vue-grid-layout - 2.4.0 | (c) 2015, 2022 Gustavo Santos (JBay Solutions) (http://www.jbaysolutions.com) | https://github.com/jbaysolutions/vue-grid-layout */ module.exports = /******/ (function(modules) { // webpackBootstrap /******/ // The module cache @@ -87,21 +88,6 @@ module.exports = /************************************************************************/ /******/ ({ -/***/ "00c2": -/***/ (function(module, exports, __webpack_require__) { - -// 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/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/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=b1033d08&\"\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\ncomponent.options.__file = \"GridItem.vue\"\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/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/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=672425fa&\"\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\ncomponent.options.__file = \"GridLayout.vue\"\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/modules/_flags.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-keys.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/element-resize-detector/src/detection-strategy/object.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/browser-detector.js","webpack://VueGridLayout/./src/helpers/DOM.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/modules/_object-gops.js","webpack://VueGridLayout/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://VueGridLayout/./node_modules/core-js/modules/_redefine.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-create.js","webpack://VueGridLayout/./src/components/index.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/modules/_hide.js","webpack://VueGridLayout/./src/components/GridLayout.vue?9453","webpack://VueGridLayout/src/components/GridLayout.vue","webpack://VueGridLayout/./src/components/GridLayout.vue?2dea","webpack://VueGridLayout/./src/components/GridLayout.vue","webpack://VueGridLayout/./node_modules/core-js/modules/_object-gpo.js","webpack://VueGridLayout/./node_modules/core-js/modules/_iter-create.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.object.keys.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/core-js/modules/es6.regexp.match.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/modules/es6.array.sort.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/modules/_inherit-if-required.js","webpack://VueGridLayout/./src/components/GridItem.vue?70f1","webpack://VueGridLayout/./node_modules/core-js/modules/_object-sap.js","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/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/./src/components/GridItem.vue?73c4","webpack://VueGridLayout/./node_modules/core-js/modules/_object-assign.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/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/modules/_set-proto.js","webpack://VueGridLayout/external {\"commonjs\":\"vue\",\"commonjs2\":\"vue\",\"root\":\"Vue\"}","webpack://VueGridLayout/./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-gopn.js","webpack://VueGridLayout/./src/helpers/responsiveUtils.js","webpack://VueGridLayout/./node_modules/core-js/modules/_own-keys.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/./src/helpers/utils.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.regexp.replace.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/@babel/runtime/helpers/esm/defineProperty.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.regexp.exec.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/collection-utils.js","webpack://VueGridLayout/./src/components/GridItem.vue?f637","webpack://VueGridLayout/./src/helpers/draggableUtils.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/domObjects.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/isWindow.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/window.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/is.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/browser.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/arr.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/clone.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/extend.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/raf.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/normalizeListeners.js","webpack://VueGridLayout/./node_modules/@interactjs/core/Eventable.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/domUtils.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/rect.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/getOriginXY.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/hypot.js","webpack://VueGridLayout/./node_modules/@interactjs/core/BaseEvent.js","webpack://VueGridLayout/./node_modules/@interactjs/core/defaultOptions.js","webpack://VueGridLayout/./node_modules/@interactjs/core/InteractEvent.js","webpack://VueGridLayout/./node_modules/@interactjs/core/isNonNativeEvent.js","webpack://VueGridLayout/./node_modules/@interactjs/core/Interactable.js","webpack://VueGridLayout/./node_modules/@interactjs/core/InteractableSet.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/pointerExtend.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/pointerUtils.js","webpack://VueGridLayout/./node_modules/@interactjs/core/events.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/misc.js","webpack://VueGridLayout/./node_modules/@interactjs/core/interactStatic.js","webpack://VueGridLayout/./node_modules/@interactjs/core/PointerInfo.js","webpack://VueGridLayout/./node_modules/@interactjs/core/Interaction.js","webpack://VueGridLayout/./node_modules/@interactjs/core/interactablePreventDefault.js","webpack://VueGridLayout/./node_modules/@interactjs/core/interactionFinder.js","webpack://VueGridLayout/./node_modules/@interactjs/core/interactions.js","webpack://VueGridLayout/./node_modules/@interactjs/core/scope.js","webpack://VueGridLayout/./node_modules/@interactjs/interact/index.js","webpack://VueGridLayout/./node_modules/@interactjs/auto-start/InteractableMethods.js","webpack://VueGridLayout/./node_modules/@interactjs/auto-start/base.js","webpack://VueGridLayout/./node_modules/@interactjs/auto-start/dragAxis.js","webpack://VueGridLayout/./node_modules/@interactjs/auto-start/hold.js","webpack://VueGridLayout/./node_modules/@interactjs/auto-start/plugin.js","webpack://VueGridLayout/./node_modules/@interactjs/auto-start/index.js","webpack://VueGridLayout/./node_modules/@interactjs/auto-scroll/plugin.js","webpack://VueGridLayout/./node_modules/@interactjs/auto-scroll/index.js","webpack://VueGridLayout/./node_modules/@interactjs/actions/drag/plugin.js","webpack://VueGridLayout/./node_modules/@interactjs/actions/drag/index.js","webpack://VueGridLayout/./node_modules/@interactjs/actions/resize/plugin.js","webpack://VueGridLayout/./node_modules/@interactjs/actions/resize/index.js","webpack://VueGridLayout/./node_modules/@interactjs/snappers/edgeTarget.js","webpack://VueGridLayout/./node_modules/@interactjs/snappers/elements.js","webpack://VueGridLayout/./node_modules/@interactjs/snappers/grid.js","webpack://VueGridLayout/./node_modules/@interactjs/snappers/all.js","webpack://VueGridLayout/./node_modules/@interactjs/snappers/plugin.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/Modification.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/base.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/aspectRatio.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/noop.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/restrict/pointer.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/restrict/edges.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/restrict/rect.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/restrict/size.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/snap/pointer.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/snap/size.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/snap/edges.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/all.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/plugin.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/index.js","webpack://VueGridLayout/./node_modules/@interactjs/dev-tools/plugin.js","webpack://VueGridLayout/./node_modules/@interactjs/dev-tools/index.js","webpack://VueGridLayout/src/components/GridItem.vue","webpack://VueGridLayout/./src/components/GridItem.vue?2537","webpack://VueGridLayout/./src/components/GridItem.vue","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/modules/es6.number.constructor.js","webpack://VueGridLayout/./node_modules/core-js/modules/_ie8-dom-define.js","webpack://VueGridLayout/(webpack)/buildin/global.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/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/modules/_a-function.js","webpack://VueGridLayout/./node_modules/core-js/modules/_enum-bug-keys.js","webpack://VueGridLayout/./src/components/GridLayout.vue?2bdf","webpack://VueGridLayout/./node_modules/element-resize-detector/src/element-resize-detector.js","webpack://VueGridLayout/./node_modules/core-js/modules/_create-property.js","webpack://VueGridLayout/./node_modules/current-script-polyfill/currentScript.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.object.assign.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/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.number.is-finite.js","webpack://VueGridLayout/./node_modules/core-js/modules/_string-ws.js"],"names":["currentDir","hasDocument","document","hasWindow","window","getDocumentDir","direction","dir","getElementsByTagName","getAttribute","setDocumentDir","html","setAttribute","addWindowEventListener","event","callback","addEventListener","removeWindowEventListener","removeEventListener","VueGridLayout","GridLayout","GridItem","install","Vue","installed","Object","keys","forEach","name","component","plugin","GlobalVue","global","use","getBreakpointFromWidth","breakpoints","width","sorted","sortBreakpoints","matching","i","len","length","breakpointName","getColsFromBreakpoint","breakpoint","cols","Error","findOrGenerateResponsiveLayout","orgLayout","layouts","lastBreakpoint","verticalCompact","cloneLayout","layout","breakpointsSorted","breakpointsAbove","slice","indexOf","b","compact","correctBounds","generateResponsiveLayout","sort","a","bottom","max","bottomY","y","h","newLayout","Array","cloneLayoutItem","layoutItem","JSON","parse","stringify","collides","l1","l2","x","w","minPositions","compareWith","getStatics","sortLayoutItemsByRowCol","out","l","static","compactItem","push","moved","getFirstCollision","minY","bounds","collidesWith","getLayoutItem","id","getAllCollisions","filter","moveElement","isUserAction","preventCollision","oldX","oldY","movingUp","reverse","collisions","collision","moveElementAwayFromCollision","itemToMove","fakeItem","Math","undefined","perc","num","setTransform","top","left","height","translate","transform","WebkitTransform","MozTransform","msTransform","OTransform","position","setTransformRtl","right","setTopLeft","setTopRight","concat","validateLayout","contextName","subProps","keyArr","isArray","item","j","autoBindHandlers","el","fns","key","bind","createMarkup","obj","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","value","hyphenateRE","str","replace","toLowerCase","findItemInArray","array","property","findAndRemove","index","splice","getControlPosition","e","offsetXYFromParentOf","evt","offsetParent","target","body","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","createCoreData","lastX","lastY","isStart","isNum","deltaX","deltaY","isNaN"],"mappings":"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AAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;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;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;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;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtPa;;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;AAAA;AAAA;AAAA;AAAA,IAAIA;AAAkC;AAAA,EAAI,MAA1C,C,CACA;;AAEA,SAASC,WAAT,GAAsB;AAClB,SAAQ,OAAOC,QAAP,KAAoB,WAA5B;AACH;;AAED,SAASC,SAAT,GAAoB;AAChB,SAAQ,OAAOC,MAAP,KAAkB,WAA1B;AACH;;AAEM,SAASC,cAAT,GAAyB;AAC5B,MAAG,CAACJ,WAAW,EAAf,EAAkB;AACd,WAAOD,UAAP;AACH;;AACD,MAAMM,SAAS,GAAI,OAAOJ,QAAQ,CAACK,GAAhB,KAAwB,WAAzB,GACdL,QAAQ,CAACK,GADK,GAEdL,QAAQ,CAACM,oBAAT,CAA8B,MAA9B,EAAsC,CAAtC,EAAyCC,YAAzC,CAAsD,KAAtD,CAFJ;AAGA,SAAOH,SAAP;AACH;AAEM,SAASI,cAAT,CAAwBH;AAAxB;AAAA,EAAoD;AAC3D;AACI,MAAG,CAACN,WAAJ,EAAgB;AACZD,cAAU,GAAGO,GAAb;AACA;AACH;;AAED,MAAMI,IAAI,GAAGT,QAAQ,CAACM,oBAAT,CAA8B,MAA9B,EAAsC,CAAtC,CAAb;AACAG,MAAI,CAACC,YAAL,CAAkB,KAAlB,EAAyBL,GAAzB;AACH;AAEM,SAASM,sBAAT,CAAgCC;AAAhC;AAAA,EAA8CC;AAA9C;AAAA,EAAoE;AACvE,MAAG,CAACZ,SAAJ,EAAc;AAEVY,YAAQ;AACR;AACH;;AACDX,QAAM,CAACY,gBAAP,CAAwBF,KAAxB,EAA+BC,QAA/B;AACH;AAEM,SAASE,yBAAT,CAAmCH;AAAnC;AAAA,EAAiDC;AAAjD;AAAA,EAAuE;AAC1E,MAAG,CAACZ,SAAJ,EAAc;AACV;AACH;;AACDC,QAAM,CAACc,mBAAP,CAA2BJ,KAA3B,EAAkCC,QAAlC;AACH,C;;;;;;;;AC9CY;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;;;;;;;;;ACAA;AAAA;;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;AACA;AACA;AACA;AACA;AACA;AACA;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;;;;;;;;ACjGA,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;CAEA;;AAEA,IAAMI,aAAa,GAAG;AAClB;AACAC,YAAU,EAAVA,+DAFkB;AAGlBC,UAAQ,EAARA,6DAAQA;AAHU,CAAtB;AAMO,SAAS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AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA,GA/IA;AAgJA;AACA;AACA,GAlJA;AAmJA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA,8BAHA,CAMA;;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA,8BADA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA,WAFA;AAGA,SATA;AAUA,OAxBA;AAyBA,KA9BA;AA+BA,GApLA;AAqLA;AACA;AACA;AACA;AAAA;;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAGA;AACA;AACA,WAFA;AAGA;;AACA;AACA,OA7BA;AA8BA,KAjCA;AAkCA;AACA;AACA,KApCA;AAqCA;AACA;AACA,KAvCA;AAwCA;AACA;AACA,KA1CA;AA2CA;AACA;AACA,KA7CA;AA8CA;AACA;AACA,KAhDA;AAiDA;AACA;AACA,KAnDA;AAoDA;AACA;AACA,KAtDA;AAuDA,cAvDA,wBAuDA;AACA;AACA;AACA;AACA;;AACA;AACA,KA7DA;AA8DA;AACA;AACA,KAhEA;AAiEA,UAjEA,oBAiEA;AACA;AACA;AAnEA,GArLA;AA0PA;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;AAEA;AACA;AACA,KA9BA;AA+BA;AACA;AACA;AADA;AAGA,KAnCA;AAoCA;AACA;AACA;AACA;;AACA;AACA,KAzCA;AA0CA;AACA,iCADA,CAEA;AACA;;AACA;AACA;AACA,KAhDA;AAiDA;AACA;AACA,sEAFA,CAGA;;AACA;AACA;AAAA;AAAA;AAAA;AACA;;AAEA;AACA;AAAA;AAAA;AAAA;AAAA,iDACA,MADA,qDAEA,CAFA,EAEA;AAAA;AAAA;AAAA,WAFA;AAAA,WAGA,EAHA;AAIA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAFA,EANA,CASA;;AACA;AACA,OAXA,MAWA;AACA;AACA;AACA,SAFA;AAGA,OA9BA,CAgCA;;;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OANA,MAMA;AACA;AACA,OA3CA,CA6CA;;;AACA;AACA;;AACA;AACA;AACA;AACA;AACA,KArGA;AAsGA;AACA,sEADA,CAEA;;AACA;AACA;AAAA;AAAA;AAAA;AACA;;AAEA;;AACA;AACA;AAAA;AAAA;AAAA,mBACA;AAAA;AAAA,SADA;AAGA,8CAJA,CAMA;;AACA;AACA;AACA;AAAA,cACA,iBADA;AAEA;AACA;AACA;AACA,WAHA;AAKA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAFA,EANA,CASA;;AACA;AAEA,OAZA,MAYA;AACA;AACA;AACA,SAFA;AAGA;;AAEA;AAEA;AACA;AACA;AAEA;AACA,KAlKA;AAoKA;AACA,wBArKA,kCAqKA;AACA;AACA,uGAFA,CAIA;;AACA,6EACA,sFANA,CAQA;;AACA,qFACA,mBADA,EAEA,YAFA,EAGA,gBAHA,EAIA,aAJA,EAKA,mBALA,EAMA,OANA,EAOA,oBAPA,EATA,CAmBA;;AACA;;AAEA;AACA;AACA,OAxBA,CA0BA;;;AACA;AAEA;AACA;AACA,KApMA;AAsMA;AACA,0BAvMA,oCAuMA;AACA;AACA;AACA,KA1MA;AA4MA;AACA,kBA7MA,0BA6MA,MA7MA,EA6MA,cA7MA,EA6MA;AAEA;AACA;AACA;AACA;AACA,SAFA;AAGA,OAJA,EAHA,CASA;;AACA;AACA;AACA;AACA,SAFA;AAGA,OAJA,EAVA,CAgBA;;AACA;AACA;AA/NA;AA1PA,G;;AC7BoU,CAAgB,oHAAG,EAAC,C;;;;;;;;ACA/P;AAC3B;AACL;AACa;;;AAGtE;AAC0F;AAC1F,gBAAgB,8CAAU;AAC1B,EAAE,6CAAM;AACR,EAAE,MAAM;AACR,EAAE,eAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEe,2F;;;;;;;ACnBf;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;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,eAAe,mBAAO,CAAC,MAAc;AACrC,YAAY,mBAAO,CAAC,MAAgB;;AAEpC,mBAAO,CAAC,MAAe;AACvB;AACA;AACA;AACA,CAAC;;;;;;;;ACRD;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPa;;AAEb,eAAe,mBAAO,CAAC,MAAc;AACrC,eAAe,mBAAO,CAAC,MAAc;AACrC,yBAAyB,mBAAO,CAAC,MAAyB;AAC1D,iBAAiB,mBAAO,CAAC,MAAyB;;AAElD;AACA,mBAAO,CAAC,MAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;ACvCD;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;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,SAA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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,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,a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EA;AACA,0BAA0B,OAAO;AACjC,yBAAyB,OAAO,oCAAoC,OAAO;AAC3E;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iEAAiE;;AAEjE;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA,MAAM;AACN,CAAC,EAAC;AACF,+B;;ACzCiC;AACR;AACV;AACf;;AAEA,MAAM,EAAE;AACR;AACA;;AAEA,MAAM,EAAE;AACR,mCAAmC,MAAM;AACzC,GAAG,MAAM,WAAW,WAAW,WAAW;;;AAG1C,MAAM,EAAE;AACR;AACA;AACA;;AAEA,MAAM,EAAE;AACR;AACA;AACA,GAAG,UAAU,EAAE;AACf;AACA;AACA;AACA,GAAG,UAAU,EAAE;AACf;AACA,sDAAsD,KAAK,EAAE,EAAE;AAC/D;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,8C;;ACvCuC;AACC;AACe;;AAEvD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEO,MAAM,mBAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,MAAM,GAAG,eAAe;AAC3C;;AAEA;AACA;AACA,+BAA+B;AAC/B;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,SAAS;;AAE/B;AACA,yBAAyB,KAAS;AAClC;AACA;;AAEA;AACA,sBAAsB,SAAS;;AAE/B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qC;;ACxEmC;AACM;AAChB;AACU;AAC5B;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACO,SAAS,gBAAO;AACvB,SAAS,EAAE;AACX;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACO;AACP;;AAEA,MAAM,EAAE;AACR;AACA;AACA,qCAAqC,EAAE;AACvC;AACA;;AAEA;AACA;;AAEA;AACA;AACO;AACP;AACA,MAAM,GAAU,KAAK,UAAc;AACnC;AACA;;AAEA,iBAAiB,aAAO;AACxB;;AAEA,iDAAiD;;;AAG1C;AACP;AACA;;AAEA,iBAAiB,qBAAqB;AACtC;AACA,mDAAmD;;AAEnD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,qDAAqD;AACrD;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;AACA;;AAEA;AACA,KAAK;;;AAGL;AACA,sBAAsB;;AAEtB,+BAA+B,gBAAU,uCAAuC,gBAAU,wCAAwC,gBAAU;AAC5I;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA;AACA,wBAAwB;;AAExB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,+BAA+B,SAAa;AAC5C,8BAA8B,SAAa;AAC3C;AACA;;AAEO;AACP,SAAS,EAAE;AACX;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACO;AACP;AACA;AACO;AACP,qCAAqC,GAAU;AAC/C;AACA;AACA;AACA;AACA;AACO;AACP,wCAAwC,gBAAU;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;;AAEA,OAAO,aAAO;AACd,+BAA+B,SAAa;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACO;AACP,OAAO,EAAE;AACT;AACA,GAAG;;;AAGH,EAAE,gBAAU;AACZ;AACA;AACA,oC;;AC/NoE;AACnC;AACR;AAClB;AACP;AACA,WAAW,UAAU;AACrB;;AAEA;AACA;AACA;;AAEA,SAAS,gBAAO;AAChB;AACO;AACP;;AAEA,MAAM,EAAE;AACR;AACA,GAAG,UAAU,EAAE;AACf;AACA;;AAEA,MAAM,EAAE;AACR,kBAAkB,cAAc;AAChC;;AAEA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA,WAAW,MAAM,GAAG;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACO;AACP;AACA,WAAW,MAAM,GAAG;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,gC;;AC7EsD;AACvC;AACf;AACA;AACA;AACA,qBAAqB,eAAe;AACpC,SAAS,QAAQ;AACjB;AACA;AACA;AACA,CAAC;AACD,uC;;ACXgB,4EAAkC,EAAE;AACpD,iC;;ACDO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA,CAAC;AACD,qC;;AC5CA;AACA;AACO,MAAM,uBAAQ;AACrB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,0C;;AChBwC;AACU;AACZ;AACK;AACI;AACxC,MAAM,2BAAa,SAAS,SAAS;AAC5C;;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;AACA,qDAAqD,uBAAQ;AAC7D,mBAAmB,WAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gBAAgB,MAAM,GAAG;AACzB,kBAAkB,MAAM,GAAG;AAC3B,gBAAgB,MAAM,GAAG;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C;;AAE7C,oBAAoB,MAAM,GAAG;AAC7B,iBAAiB,KAAK;AACtB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA,CAAC;AACD;;AAEA,wBAAwB,2BAAa;AACrC;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA,CAAC;AACD,yC;;AC3Oe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4C;;ACbA;AACuC;AACG;AACJ;AACwD;AACtD;AACR;AACgC;AACjB;AACJ;AACU;;AAErD;AACO,MAAM,yBAAY;AACzB;AACA;AACA;AACA,cAAc;AACd,mBAAmB;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,mBAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS,CAAC,WAAW;AACrC;AACA;AACA;AACA;;AAEA;AACA,QAAQ,EAAE;AACV,iBAAiB,WAAW;AAC5B;;AAEA,QAAQ,EAAE;AACV,iBAAiB,WAAW;AAC5B;;AAEA,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CA;;AAEA;AACA,wC;;AC/YuC;AACU;AACT;AACR;AACzB,MAAM,+BAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT,+BAA+B,EAAE;AACjC,4BAA4B,SAAa;;AAEzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA,cAAc,MAAM,cAAc;AAClC;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,EAAE;AACV;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,uBAAuB,EAAE;AACzB;;AAEA;AACA;AACA;;AAEA,kBAAkB,IAAQ;AAC1B;AACA;;AAEA;AACA;AACA;;AAEA,WAAW,EAAE;AACb,QAAQ,EAAE,kBAAkB,eAAwB;AACpD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2C;;ACtGA;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACe,qEAAa,EAAC;AAC7B,yC;;ACzBmC;AACD;AACQ;AACX;AACN;AACsB;AACxC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP,4BAA4B,gBAAG,6BAA6B,gBAAG;AAC/D,CAAC;;AAEM;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,IAAI;;AAEJ,MAAM,aAAO;AACb;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACO;AACP;;AAEA,MAAM,aAAO;AACb;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACO;AACP,SAAS,EAAE;AACX;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP,qBAAqB;;AAErB,MAAM,EAAE;AACR;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,SAAS,KAAK;AACd;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,SAAS,EAAE,qDAAqD,EAAE;AAClE;AACA,qDAAqD,gBAAG;AACxD,CAAC;;AAEM;AACP,eAAe,EAAE;AACjB,UAAU,gBAAyB,iCAAiC,gBAAyB;AAC7F;AACO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACO;AACP;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACyB;AACzB,wC;;ACzPmC;AACI;AACU;AACT;AACR;AACgB;AACS;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA,GAAG;AACH;;AAEA;AACA;AACA,iBAAiB,IAAQ;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,yCAAyC,QAAY;AACrD;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,SAAa;AACrC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,8CAA8C,QAAQ;AACtD;AACA;;AAEA;AACA,OAAO;AACP,uBAAuB,0BAA0B;AACjD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,IAAQ;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL,sCAAsC,YAAY;AAClD,mCAAmC;;AAEnC;AACA;AACA;AACA,SAAS,OAAO;;AAEhB,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA,WAAW,iBAAiB;;AAE5B;AACA;AACA,mCAAmC;AACnC;;AAEA;AACA,yCAAyC;;AAEzC;AACA;AACA,aAAa;;;AAGb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA,0BAA0B,gBAAS;AACnC;AACA,0BAA0B,eAA4B;AACtD,8BAA8B;;AAE9B,WAAW,EAAE;AACb,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA,SAAS;;AAET,YAAY,eAAwB,uBAAuB,YAAqB,0BAA0B,YAAqB;AAC/H;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,UAAmB;AACnC;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH;AACA;;AAEA,MAAM,gBAAS;AACf;AACA;AACA;AACA;AACA,uCAAuC;;AAEvC,IAAI,mBAAO;AACX;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,OAAO,EAAE;AACT;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,MAAM,GAAG;AAC3B;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA,CAAC,EAAC;AACF,kC;;ACpRqC;AAC9B;AACP;AACA;AACA;AACA,MAAM,GAAM;AACZ;AACA;;AAEA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,gC;;AClBA;AAC0C;AACO;AACjB;AACyB;AACb;AACS;AAC9C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;;;AAGJ,+BAA+B,cAA2B;AAC1D,0BAA0B,SAAsB;AAChD,8BAA8B,aAA0B;AACxD,2BAA2B,UAAuB;AAClD,4BAA4B,cAAuB;AACnD,kCAAkC,oBAA6B;AAC/D,6BAA6B,eAAwB;AACrD,qBAAqB,gBAAgB;AACrC,6BAA6B;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,cAAc,QAAQ;AACtB;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wBAAwB;AACrC,aAAa,SAAS;AACtB,aAAa,iBAAiB;AAC9B;AACA,cAAc,OAAO;AACrB;;;AAGA,gBAAgB,QAAQ;AACxB,QAAQ,EAAE;AACV;AACA;;AAEA,QAAQ,EAAE;AACV;AACA;AACA;;AAEA;AACA;;AAEA,QAAQ,EAAE;AACV;AACA;AACA;;AAEA;AACA,KAAK;;;AAGL,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wBAAwB;AACrC;AACA,aAAa,SAAS;AACtB,aAAa,iBAAiB;AAC9B;AACA,cAAc,OAAO;AACrB;;AAEA,iBAAiB,QAAQ;AACzB,QAAQ,EAAE;AACV;AACA;;AAEA,QAAQ,EAAE;AACV;AACA;AACA;;AAEA;AACA;;AAEA,QAAQ,EAAE;AACV;AACA;AACA;;AAEA;AACA;;AAEA,QAAQ,gBAAgB;AACxB;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;;;AAGA;AACA,WAAW,aAAO;AAClB;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;;;AAGA;AACA,WAAW,aAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,cAAc;AACd;;;AAGA;AACA,QAAQ,EAAE;AACV;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,0C;;AC7PO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uC;;ACfuC;AACC;AACF;AACkB;AACC;AACX;AACK;AACJ;AACxC;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;;AAE9B;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sCAAsC;;AAEvC;AACO,MAAM,uBAAW;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,GAAG;AACH;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,kBAAkB,QAAQ;AAC1B;AACA,KAAK;AACL;AACA;AACA,aAAa,SAAsB;AACnC;AACA,YAAY,SAAsB;AAClC;AACA,WAAW,SAAsB;AACjC;AACA,aAAa,SAAsB;AACnC;AACA,gBAAgB,SAAsB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,OAAO;AACP;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;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,QAAQ;AACtB;;;AAGA;AACA;AACA;AACA;;AAEA,IAAI,UAAU;AACd;AACA;AACA;AACA,uCAAuC,MAAM,GAAG;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA,6BAA6B,KAAK;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,gBAA6B;AACnC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,UAAuB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,QAAQ,eAAe;AAChE;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,MAAM,aAA0B;AAChC;;AAEA,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA,KAAK,iBAAiB;AACtB;;AAEA;AACA,GAAG;;;AAGH;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,oCAAoC,KAAK;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,aAAa,aAAa;AAC1B;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,YAAyB,UAAU;;AAEzD,mGAAmG,SAAa;AAChH;;AAEA;AACA;AACA;;AAEA;AACA,eAAe,YAAyB;AACxC;AACA;AACA;;AAEA;AACA,wBAAwB,WAAW;AACnC;AACA;AACA,KAAK;AACL;AACA;;AAEA,IAAI,SAAsB;AAC1B,IAAI,cAA2B;;AAE/B;AACA;AACA;AACA;AACA,MAAM,mBAA0B;;AAEhC;AACA,QAAQ,UAAuB;AAC/B,QAAQ,UAAuB;AAC/B;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,2BAAa;AAC5B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA,MAAM,QAAkB;AACxB;AACA;AACA;;AAEA,uEAAuE,MAAM;;AAE7E;AACA;AACA;;AAEA;;AAEA,2CAA2C,MAAM;;AAEjD;AACA;AACA;;AAEA;;AAEA,iDAAiD,MAAM;;AAEvD;AACA;;AAEA;AACA;AACA;;AAEA;AACe,4EAAW,EAAC;AACJ;AACvB,uC;;ACxgBiD;AACoB;AACrC;AACe;;AAE/C;AACA;AACA;AACA;AACA;;AAEA,MAAM,EAAE;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,mCAAmC,WAAW;AAC9C;;;AAGA;AACA,gBAAgB,SAAS;AACzB;;AAEA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA,GAAG;;;AAGH,MAAM,EAAE,0BAA0B,eAAe;AACjD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEO,SAAS,kCAAO;AACvB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,cAAc,sBAAsB;AACpC;;AAEA;;AAEA;AACA;AACA,IAAI;;;AAGJ;AACA;;AAEA;AACA;AACA,4EAA4E,YAAY;AACxF;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACe;AACf;AACA,SAAS;AACT;AACA,wBAAwB,UAAU;AAClC;AACA,GAAG,IAAI;AACP,CAAC,EAAC;AACF,sD;;AC/G4C;AAC5C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,UAAc;AAClC;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;AACA,KAAK;AACL;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,gDAAgD;AAChD;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEe,4DAAM,EAAC;AACtB,6C;;AC/I+C;AACL;AACM;AACI;AACK;AACV;AAC0B;AAC7B;AAC5C;;AAEA,SAAS,oBAAO;AAChB;;AAEA;AACA;AACA;;AAEA,sBAAsB,aAAO;AAC7B;;AAEA,MAAM,gBAAU;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,GAAG,EAAE;;AAEL;AACA,oCAAoC,gBAAe;AACnD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;AACA,SAAS,KAAK,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,0BAA0B;AAC5C;;AAEA;AACA;AACA;AACA,wBAAwB,cAA2B;AACnD,0CAA0C,eAA4B;AACtE,uBAAuB;;AAEvB;AACA,wCAAwC;;AAExC;AACA;AACA,0BAA0B,YAAyB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA,WAAW,aAAO;AAClB;AACA,uBAAuB,4CAA4C;AACnE;AACA,SAAS;AACT;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,YAAyB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,2BAA2B,iBAAM;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,MAAM,yBAAY;AAClB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,sDAAsD,QAAQ;AAC9D;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACe,+EAAY,EAAC;AAC5B,wC;;ACrR0C;AACJ;AACU;AACR;AACN;AACQ;AACC;AACQ;AACkB;AACd;AACR;AACd;AAC0B;AACd;AACtC,MAAM,WAAK;AAClB;AACA;AACA;AACA;AACA;AACA,kCAAkC,gCAAgC;AAClE;AACA;AACA,mBAAmB,aAAO;AAC1B,oBAAoB,KAAK,CAAC,uBAAQ;AAClC,qBAAqB,mBAAS;AAC9B;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,OAAO;AACP,oBAAoB;AACpB;AACA;AACA,0BAA0B,oBAAoB;AAC9C,yBAAyB,2BAAa;AACtC;AACA,6BAA6B,+BAAe;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,sCAAsC,yBAAgB;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAI;;AAEX,YAAY,aAAa;AACzB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,SAAa;AAChC,wBAAwB,MAAM,GAAG;AACjC;AACA;AACA;AACA,KAAK;AACL,oCAAoC;AACpC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,mBAAmB,SAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACO;AACP;AACA,EAAE,WAAQ;AACV,EAAE,gBAAU;AACZ,EAAE,aAAO;AACT,EAAE,GAAG;AACL;AACA;AACA,kBAAkB,iBAAY;AAC9B,kBAAkB,MAAM;AACxB;AACA;;AAEA;AACA;AACA;AACA,iC;;ACxOyC;AACzC,MAAM,cAAK,OAAO,WAAK;AACvB,MAAM,iBAAQ,GAAG,cAAK;AACP,0EAAQ,EAAC;AACjB,MAAM,aAAI,UAAU,cAAK;;AAEhC;AACA,EAAE,aAAI;AACN;AACA,iC;;ACTuD;AACvB;AACY;;AAE5C,SAAS,2BAAO;AAChB;AACA;AACA;;AAEA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA,aAAa,wBAAwB;AACrC;AACA,cAAc,0BAA0B;AACxC;AACA;;;AAGA,sCAAsC,QAAQ;AAC9C;AACA,GAAG,6EAA6E,qBAAqB;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,aAAa,wBAAwB;AACrC;AACA,cAAc,0BAA0B;AACxC;AACA;;AAEA,qCAAqC,QAAQ;AAC7C;AACA,GAAG,4EAA4E,oBAAoB;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;AACA,cAAc,wBAAwB;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc,uBAAuB;AACrC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,EAAE;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,MAAM,EAAE;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEe;AACf;AACA,SAAS;AACT,CAAC,EAAC;AACF,+C;;AC7KqD;AACJ;AACT;AACR;AACc;AACa;;AAE3D,SAAS,YAAO;AAChB;AACA;AACA;AACA,GAAG;AACH,kBAAkB,mBAAmB;AACrC;AACA;AACA,EAAE,MAAM;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,CAAC;AACD;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,uCAAuC,SAAS;AAChD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS,EAAE;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,cAAc,UAAmB;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,EAAE,UAAU;AACZ;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;;AAEA;AACA;;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,MAAM,EAAE;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,QAAQ,EAAE;AACV;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACe,kDAAS,EAAC;AACzB,gC;;AC9TkD;AAClB;AACE;;AAElC;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA,qCAAqC;;AAErC;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,6FAA6F,IAAS;AACtG;AACA;AACA;AACA,MAAM;;;AAGN,WAAW,EAAE;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,UAAU;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA,CAAC,EAAC;AACF,oC;;AC5EiD;AACd;;AAEnC,SAAS,YAAO;AAChB;AACA;AACA,GAAG;AACH,kBAAkB,IAAU;AAC5B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACe,wDAAI,EAAC;AACpB,gC;;AClEkC;AACG;AACR;AACd;AACf;;AAEA;AACA,oBAAoB,IAAS;AAC7B,oBAAoB,eAAI;AACxB,oBAAoB,QAAQ;AAC5B;;AAEA,CAAC,EAAC;AACF,kC;;ACbA;AACsD;AACrB;;AAEjC;AACA,EAAE,aAAI;AACN;;AAEA,oBAAQ,KAAK,iBAAM;AACnB,iC;;ACTiD;AACA;AACjB;AACE;AACuB;AACV;;AAE/C,SAAS,cAAO;AAChB;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI,GAAG;AACP;AACA;AACA;AACA,mBAAmB,GAAG;AACtB,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA,IAAI,GAAG;AACP,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,iCAAiC;;AAEjC,kDAAkD;;AAElD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,YAAY,EAAE;AACd;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;;AAEA;AACA,MAAM,GAAG;AACT,qBAAqB,GAAG;AACxB;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,QAAQ,EAAE;AACV;AACA;AACA;AACA;AACA,KAAK;AACL,mBAAmB,oBAA6B;AAChD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP,UAAU,EAAE,iBAAiB,qBAAqB,2CAA2C,SAAS;AACtG;AACO;AACP,MAAM,EAAE;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA;AACO;AACP,MAAM,EAAE;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACe,uEAAgB,EAAC;AAChC,kC;;ACxPA;AACsD;AACrB;;AAEjC;AACA,EAAE,aAAI;AACN;;AAEA,oBAAQ,KAAK,kBAAM;AACnB,iC;;ACT0D;AACvB;;AAEnC,SAAS,mBAAO;AAChB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA;AACA,YAAY,uBAAuB;AACnC;AACA;;;AAGA,MAAM,gBAAS;AACf,MAAM,EAAE;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,MAAM,EAAE;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACe,oDAAI,EAAC;AACpB,kC;;AClKA;AACyD;AACxB;;AAEjC;AACA,EAAE,aAAI;AACN;;AAEA,oBAAQ,KAAK,WAAM;AACnB,iC;;ACT0D;AACF;AACT;AACJ;AACR;;AAEnC,SAAS,qBAAO;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG,SAAS;;AAEZ;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,mCAAmC;AACnC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,6BAA6B;AACnE;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA,cAAc,uBAAuB;AACrC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA,eAAe,MAAM,GAAG;AACxB;;AAEA;AACA;AACA;AACA,GAAG;;;AAGH,MAAM,EAAE;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,MAAM,EAAE;AACR;AACA;AACA;;AAEA,QAAQ,EAAE;AACV;AACA,KAAK;AACL;AACA;;AAEA,QAAQ,EAAE;AACV;AACA,KAAK,UAAU,EAAE;AACjB;AACA;;AAEA;AACA;;AAEA,MAAM,EAAE;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA,kBAAkB,EAAE;AACpB,mBAAmB,EAAE,4DAA4D;;AAEjF;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;;AAGH,OAAO,EAAE;AACT;AACA;;AAEA,SAAS,EAAE;AACX;AACA,IAAI,WAAe;AACnB;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,MAAM,GAAG;AACpB,eAAe,MAAM,GAAG;AACxB,cAAc,MAAM,GAAG;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,WAAI;AACb;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE,MAAM;;AAER;AACA;AACA,IAAI,MAAM;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,MAAM,WAAI;AACV;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACe,wDAAM,EAAC;AACtB,kC;;ACjcA;AACyD;AACxB;;AAEjC;AACA,EAAE,aAAI;AACN;;AAEA,oBAAQ,KAAK,aAAM;AACnB,iC;;ACTgB,uDAAQ,EAAE;AAC1B,sC;;ACDgB,8DAAQ,EAAE;AAC1B,oC;;ACDgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,CAAC,EAAE;AACH,gC;;ACtCwD;AACJ;AACR;AAC5C,+B;;ACHwC;AACA;AACxC;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,wBAAwB,MAAM,wBAAwB,EAAE,mBAAW;AACnE;AACA;;AAEA;AACe,kEAAc,EAAC;AAC9B,kC;;ACfsC;AACE;AACM;AAC/B,MAAM,yBAAY;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA,iBAAiB,MAAM,GAAG;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,iBAAiB,MAAM,GAAG;AAC1B,eAAe,MAAM,GAAG;AACxB;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,iCAAiC,MAAM,GAAG;AAC1C;;AAEA;AACA;AACA;AACA,QAAQ,QAAkB;AAC1B;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,MAAM,MAAM;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL,yBAAyB;AACzB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA,wBAAwB,MAAM;AAC9B;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,uBAAuB,6BAA6B;AACpD;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,wCAAwC,KAAK;AAC7C,+BAA+B,MAAM,GAAG,wBAAwB,MAAM,GAAG;AACzE;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,wC;;ACvYyD;AACR;AACJ;AACtC;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gDAAgD;;AAEhD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL,qCAAqC,yBAAY;AACjD,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,gEAAa,EAAC;AAC7B,gC;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,eAAe;AAC3D,QAAQ;AACR,6BAA6B,oBAAoB;AACjD;AACA,IAAI;AACJ;AACA;AACwC;AACI;AACC;AACJ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA,wBAAwB,MAAM,GAAG;AACjC,sBAAsB,MAAM,GAAG;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,IAAI,MAAM;;AAEV;AACA;AACA;;AAEA,gCAAgC,yBAAY;AAC5C;AACA;AACA;AACA,8BAA8B;AAC9B,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,0BAA0B,MAAM,GAAG;AACnC;AACA;;AAEA;AACA;AACA;;AAEA,0BAA0B,MAAM,GAAG;AACnC,IAAI,QAAQ;AACZ;AACA;AACA,KAAK;AACL,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA,oEAAoE;;AAEpE;AACA,MAAM,MAAM;AACZ;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEe,sEAAY,4BAA4B,EAAC;AACjC;AACvB,uC;;ACtJA;;AAEA;AACe,uDAAI,EAAC;AACpB,gC;;ACJ2C;AACR;AACc;AACP;;AAE1C,SAAS,aAAK;AACd;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA,GAAG,sBAAsB;;AAEzB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA,eAAe,UAAoB;AACnC;AACA;AACA;;AAEO;AACP,MAAM,EAAE;AACR,WAAW,eAAyB;AACpC,GAAG;AACH,WAAW,eAAyB;AACpC;AACA;AACA,MAAM,gBAAQ;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,UAAU;AACV;AACe,iEAAY,sBAAsB,EAAC;AAC9B;AACpB,mC;;AC7FA;AACA;AACA;AACA;AACA,aAAa,wBAAwB;AACrC;AACA,eAAe,+CAA+C;AAC9D,eAAe,+CAA+C;AAC9D,MAAM;AACN,IAAI;AACuC;AACM;AACP;AACQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,WAAK;AACd;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,GAAG;AACH;;AAEA;AACA,uBAAuB,kBAAkB;AACzC,aAAa,QAAkB;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,SAAG;AACZ;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA,eAAe,MAAM,GAAG;AACxB,gBAAgB,kBAAkB;AAClC,gBAAgB,kBAAkB;AAClC;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,MAAM,cAAQ;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,UAAU;AACV;AACe,+DAAY,gCAAgC,EAAC;AACnC;AACzB,iC;;AClH2C;AACD;AACF;AACxC,MAAM,aAAQ,GAAG,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA,CAAC,EAAE,QAAQ;AACX;AACA,SAAS,QAAQ;AACjB,OAAO,QAAQ;AACf,UAAU;AACV;AACe,8DAAY,8BAA8B,EAAC;AAClC;AACxB,gC;;ACvB2C;AACM;AACP;AACC;AACO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,UAAK;AACd,SAAS,aAAa;AACtB;;AAEA,SAAS,QAAG;AACZ;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA,kBAAkB,UAAoB,CAAC,kBAAkB;AACzD,kBAAkB,UAAoB,CAAC,kBAAkB;AACzD;AACA;AACA,WAAW,MAAM,GAAG,EAAE,aAAa;AACnC,WAAW,MAAM,GAAG,EAAE,aAAa;AACnC;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,EAAE,aAAa;AACf;AACA;;AAEA,MAAM,aAAQ;AACd;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,UAAU;AACV;AACe,qDAAY,8BAA8B,EAAC;AAClC;AACxB,gC;;AC1E2C;AACU;AACZ;AACN;AAC6B;AACtB;;AAE1C,SAAS,kBAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,uBAAuB,eAAe;AACtC,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG,MAAM,MAAM;AACf;AACA;AACA,GAAG;AACH;;AAEA,SAAS,WAAG;AACZ;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH,iBAAiB,WAAW;AAC5B,eAAe,MAAM,GAAG;AACxB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qDAAqD,aAAa;AAClE;AACA;;AAEA,UAAU,EAAE;AACZ;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY,EAAE;AACd,YAAY,EAAE;AACd,eAAe,EAAE;AACjB;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,KAAK;AAC1B,oCAAoC;AACpC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH,wBAAwB,QAAQ,CAAC,eAAe;AAChD,kCAAkC,WAAW;AAC7C;AACA;;AAEA,MAAM,qBAAQ;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,UAAU;AACV;AACe,6DAAY,cAAc,EAAC;AAC1B;AAChB,mC;;AC/KA;AACA;AAC2C;AACR;AACO;AACN;;AAEpC,SAAS,eAAK;AACd;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,EAAE,IAAI;AACN;AACA;AACA;;AAEA,SAAS,aAAG;AACZ;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,kBAAkB,MAAM,GAAG;AAC3B;;AAEA;AACA;;AAEA,QAAQ,EAAE;AACV;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,IAAI;AAC1B;AACA;AACA;;AAEA,MAAM,kBAAQ;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,UAAU;AACV;AACe,0DAAY,sBAAsB,EAAC;AAC9B;AACpB,gC;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,gBAAgB;AACzD,MAAM;AACN,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,MAAM;AACN,IAAI;AACJ;AACA;AACyC;AACE;AACD;AACL;;AAErC,SAAS,gBAAK;AACd;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA,SAAS,QAAQ;AACjB;;AAEA;AA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+BADA,CACA;AACA;AACA,GA7OA;AA8OA;AACA;AACA;AACA,KAFA,MAEA;AACA;AACA;;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAFA,MAEA;AACA;AACA;;AACA;AACA;AACA,KAFA,MAEA;AACA;AACA;;AACA;AACA;AACA,KAFA,MAEA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA,GA5QA;AA6QA;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;AACA,KA5BA;AA6BA;AACA;AACA;AACA;AACA,KAjCA;AAkCA;AACA;AACA;AACA,KArCA;AAsCA;AACA;AACA;AACA,KAzCA;AA0CA;AACA;AACA,yBAFA,CAGA;AACA,KA9CA;AA+CA;AACA;AACA,yBAFA,CAGA;AACA,KAnDA;AAoDA;AACA;AACA;AACA;AACA,KAxDA;AAyDA;AACA;AACA,KA3DA;AA4DA;AACA;AACA,KA9DA;AA+DA;AACA;AACA,KAjEA;AAkEA;AACA;AACA,KApEA;AAqEA;AACA;AACA;AACA;;AACA;AAAA;AAAA;AACA;AACA;AACA;AA5EA,GA7QA;AA2VA;AACA,YADA,sBACA;AACA;AACA,mDADA;AAEA,6BAFA;AAGA,mCAHA;AAIA,iDAJA;AAKA,8CALA;AAMA,oCANA;AAOA,6CAPA;AAQA;AARA;AAUA,KAZA;AAaA,yBAbA,mCAaA;AACA;AACA,KAfA;AAgBA,oCAhBA,8CAgBA;AACA;AACA,KAlBA;AAmBA,aAnBA,uBAmBA;AACA;AACA,KArBA;AAsBA,aAtBA,uBAsBA;AACA;AACA,KAxBA;AAyBA,wBAzBA,kCAyBA;AACA;AACA;AACA,OAFA,MAEA;AACA;AACA;AACA;AA/BA,GA3VA;AA4XA;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;AACA,KA7CA;AA8CA,wBA9CA,kCA8CA;AACA;AACA;AACA;;AACA;AAAA;AACA;AACA;AACA,sBACA;AACA;AACA;;AACA;AACA,KA1DA;AA2DA;AACA;AACA,+CAFA,CAGA;;AACA,mCAJA,CAIA;;AACA;AAAA;AAEA;AAAA;AAAA;AAAA;AACA;;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AAAA;AACA;AACA;;AACA;AACA;AACA,aAFA,MAEA;AACA;AACA;;AACA,2FARA,CAUA;;AACA;AACA;AACA;;AACA;AAAA;AACA;AACA;AACA;AACA,wCAJA,CAKA;;AACA;AACA;AACA;AACA;AAnCA,OATA,CA+CA;;;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,KA1IA;AA2IA,cA3IA,sBA2IA,KA3IA,EA2IA;AACA;AACA;AAEA,+CAJA,CAMA;;AACA,oCAPA,CAOA;;AACA;AAAA,yBARA,CAUA;;AACA;AAAA;AAAA;AAAA;;AACA;AACA;AAAA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAFA,MAEA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;AACA;AAAA;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA,8DAVA,CAYA;;;AACA;AACA;AACA,aAFA,MAEA;AACA;AACA;;AACA,4CAlBA,CAmBA;AACA;;AACA;AACA,oCAtBA,CAuBA;;AACA;AACA;;AACA;AAAA;AACA,yEADA,CAEA;;AACA;AACA;AACA,aAFA,MAEA;AACA;AACA;;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAfA,CAgBA;AACA;AACA;;;AACA;AACA;AACA;AAxEA,OAZA,CAuFA;;;AACA;;AACA;AACA;AACA,OAFA,MAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA,KApPA;AAqPA;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,KAjRA;;AAkRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAzRA,kBAyRA,GAzRA,EAyRA,IAzRA,EAyRA;AACA,yCADA,CAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA,qFAXA,CAaA;;AACA;AACA;AAEA;AAAA;AAAA;AAAA;AACA,KA3SA;AA4SA;AACA,gBA7SA,0BA6SA;AACA,0FADA,CAEA;;AACA;AACA,KAjTA;AAkTA;AACA;AACA;AACA;AACA,oBAtTA,4BAsTA,SAtTA,EAsTA,YAtTA,EAsTA,QAtTA,EAsTA;AACA;AACA;AACA,wBACA,gEADA;AAGA,KA5TA;AA8TA;AACA,SA/TA,iBA+TA,GA/TA,EA+TA,UA/TA,EA+TA,UA/TA,EA+TA;AACA;AACA,KAjUA;;AAmUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UA1UA,kBA0UA,MA1UA,EA0UA,KA1UA,EA0UA;AAAA;AACA,yCADA,CAGA;AACA;AACA;;AACA;AACA;;AACA;AACA;AACA,OAFA,MAEA;AACA;AACA,OAZA,CAcA;;;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA,KA5VA;AA6VA;AACA;;AACA;AACA;AACA;AACA,KAlWA;AAmWA;AACA;AACA,KArWA;AAsWA;AACA;;AACA;AACA;;AACA;AACA;AACA;AACA;;AACA;AACA;AACA,yCADA;AAEA;AAFA,WAGA,eAHA;;AAKA;AACA;;AACA;AACA;AACA;AACA;AACA,WAFA;AAGA;AACA,OAdA,MAcA;AACA;AACA;AADA;AAGA;AACA,KAjYA;AAkYA;AACA;;AACA;AACA;;AACA;AACA;AACA;AACA;;AACA;AACA;AACA,oEAFA,CAIA;AACA;;AAEA;AACA;AACA;AACA,uBADA;AAEA,2EAFA;AAGA,4EAHA;AAIA;AAJA,WAFA;AAQA,2CARA;AASA;AACA;AACA,0DADA;AAEA;AAFA,aADA;AAKA;AACA,0DADA;AAEA;AAFA;AALA;AATA,WAmBA,iBAnBA;;AAsBA;AACA,4BACA;AACA;AADA,YADA;AAKA;;AAEA;;AACA;AACA;AACA,2BACA,EADA,CACA,kCADA,EACA;AACA;AACA,WAHA;AAIA;AACA,OA7CA,MA6CA;AACA;AACA;AADA;AAGA;AACA,KA5bA;AA6bA;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;AAleA;AA5XA,G;;ACtGkU,CAAgB,gHAAG,EAAC,C;;;;;;;;ACA/P;AAC3B;AACL;AACa;;;AAGpE;AAC0F;AAC1F,gBAAgB,8CAAU;AAC1B,EAAE,2CAAM;AACR,EAAE,MAAM;AACR,EAAE,eAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEe,yF;;;;;;;ACnBf;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,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ACxB;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;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;AACA;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;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;;AAEA;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;;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;AACA;;;;;;;;AC/pBA;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;AACA;;;;;;;;ACFA;AACA,UAAU;AACV;;;;;;;;;ACFa;;AAEb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;AACA;;;;;;;;ACHA;AACA;AACA;AACA;;;;;;;;;ACHA;AAAA;AAAA;;;;;;;;;ACAa;;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;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,6CAA6C;AACtG;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;ACvUa;AACb,sBAAsB,mBAAO,CAAC,MAAc;AAC5C,iBAAiB,mBAAO,CAAC,MAAkB;;AAE3C;AACA;AACA;AACA;;;;;;;;ACPA;;AAEA;;AAEA;AACA;AACA,wDAAwD;;AAExD;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,mBAAmB;AAChC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;;;;;;;ACnCD;AACA,cAAc,mBAAO,CAAC,MAAW;;AAEjC,0CAA0C,SAAS,mBAAO,CAAC,MAAkB,GAAG;;;;;;;;ACHhF,iBAAiB,mBAAO,CAAC,MAAW;;;;;;;;ACApC,eAAe,mBAAO,CAAC,MAAW;AAClC;;;;;;;;;;;;;;;;;;ACDA;;AAEA;AACA,MAAM,IAAuC;AAC7C,IAAI,mBAAO,CAAC,MAAyB;AACrC;;AAEA;AACA;AACA,IAAI,qBAAuB;AAC3B;AACA;;AAEA;AACe,sDAAI;;;;;;ACdK;AACA;AACT,4GAAG;AACI;;;;;;;;ACHtB;AACA,cAAc,mBAAO,CAAC,MAAW;AACjC,gBAAgB,mBAAO,CAAC,MAAW;;AAEnC;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACRD;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","'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","// 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!./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=361da5e4&\"\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","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@match logic\nrequire('./_fix-re-wks')('match', 1, function (defined, MATCH, $match, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[MATCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative($match, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n if (!rx.global) return regExpExec(rx, S);\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n","/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nimport listToStyles from './listToStyles'\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of \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&\"","import { render, staticRenderFns } from \"./GridItem.vue?vue&type=template&id=e7489122&\"\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","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","\"use strict\";\n\nvar utils = require(\"./utils\");\n\nmodule.exports = function batchProcessorMaker(options) {\n options = options || {};\n var reporter = options.reporter;\n var asyncProcess = utils.getOption(options, \"async\", true);\n var autoProcess = utils.getOption(options, \"auto\", true);\n\n if(autoProcess && !asyncProcess) {\n reporter && reporter.warn(\"Invalid options combination. auto=true and async=false is invalid. Setting async=true.\");\n asyncProcess = true;\n }\n\n var batch = Batch();\n var asyncFrameHandler;\n var isProcessing = false;\n\n function addFunction(level, fn) {\n if(!isProcessing && autoProcess && asyncProcess && batch.size() === 0) {\n // Since this is async, it is guaranteed to be executed after that the fn is added to the batch.\n // This needs to be done before, since we're checking the size of the batch to be 0.\n processBatchAsync();\n }\n\n batch.add(level, fn);\n }\n\n function processBatch() {\n // Save the current batch, and create a new batch so that incoming functions are not added into the currently processing batch.\n // Continue processing until the top-level batch is empty (functions may be added to the new batch while processing, and so on).\n isProcessing = true;\n while (batch.size()) {\n var processingBatch = batch;\n batch = Batch();\n processingBatch.process();\n }\n isProcessing = false;\n }\n\n function forceProcessBatch(localAsyncProcess) {\n if (isProcessing) {\n return;\n }\n\n if(localAsyncProcess === undefined) {\n localAsyncProcess = asyncProcess;\n }\n\n if(asyncFrameHandler) {\n cancelFrame(asyncFrameHandler);\n asyncFrameHandler = null;\n }\n\n if(localAsyncProcess) {\n processBatchAsync();\n } else {\n processBatch();\n }\n }\n\n function processBatchAsync() {\n asyncFrameHandler = requestFrame(processBatch);\n }\n\n function clearBatch() {\n batch = {};\n batchSize = 0;\n topLevel = 0;\n bottomLevel = 0;\n }\n\n function cancelFrame(listener) {\n // var cancel = window.cancelAnimationFrame || window.mozCancelAnimationFrame || window.webkitCancelAnimationFrame || window.clearTimeout;\n var cancel = clearTimeout;\n return cancel(listener);\n }\n\n function requestFrame(callback) {\n // var raf = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function(fn) { return window.setTimeout(fn, 20); };\n var raf = function(fn) { return setTimeout(fn, 0); };\n return raf(callback);\n }\n\n return {\n add: addFunction,\n force: forceProcessBatch\n };\n};\n\nfunction Batch() {\n var batch = {};\n var size = 0;\n var topLevel = 0;\n var bottomLevel = 0;\n\n function add(level, fn) {\n if(!fn) {\n fn = level;\n level = 0;\n }\n\n if(level > topLevel) {\n topLevel = level;\n } else if(level < bottomLevel) {\n bottomLevel = level;\n }\n\n if(!batch[level]) {\n batch[level] = [];\n }\n\n batch[level].push(fn);\n size++;\n }\n\n function process() {\n for(var level = bottomLevel; level <= topLevel; level++) {\n var fns = batch[level];\n\n for(var i = 0; i < fns.length; i++) {\n var fn = fns[i];\n fn();\n }\n }\n }\n\n function getSize() {\n return size;\n }\n\n return {\n add: add,\n process: process,\n size: getSize\n };\n}\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","'use strict';\nvar global = require('./_global');\nvar has = require('./_has');\nvar cof = require('./_cof');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar toPrimitive = require('./_to-primitive');\nvar fails = require('./_fails');\nvar gOPN = require('./_object-gopn').f;\nvar gOPD = require('./_object-gopd').f;\nvar dP = require('./_object-dp').f;\nvar $trim = require('./_string-trim').trim;\nvar NUMBER = 'Number';\nvar $Number = global[NUMBER];\nvar Base = $Number;\nvar proto = $Number.prototype;\n// Opera ~12 has broken Object#toString\nvar BROKEN_COF = cof(require('./_object-create')(proto)) == NUMBER;\nvar TRIM = 'trim' in String.prototype;\n\n// 7.1.3 ToNumber(argument)\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n if (typeof it == 'string' && it.length > 2) {\n it = TRIM ? it.trim() : $trim(it, 3);\n var first = it.charCodeAt(0);\n var third, radix, maxCode;\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i\n default: return +it;\n }\n for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {\n code = digits.charCodeAt(i);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nif (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {\n $Number = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var that = this;\n return that instanceof $Number\n // check on 1..constructor(foo) case\n && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)\n ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);\n };\n for (var keys = require('./_descriptors') ? gOPN(Base) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES6 (in case, if modules with ES6 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(Base, key = keys[j]) && !has($Number, key)) {\n dP($Number, key, gOPD(Base, key));\n }\n }\n $Number.prototype = proto;\n proto.constructor = $Number;\n require('./_redefine')(global, NUMBER, $Number);\n}\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/**\n * Resize detection strategy that injects divs to elements in order to detect resize events on scroll events.\n * Heavily inspired by: https://github.com/marcj/css-element-queries/blob/master/src/ResizeSensor.js\n */\n\n\"use strict\";\n\nvar forEach = require(\"../collection-utils\").forEach;\n\nmodule.exports = function(options) {\n options = options || {};\n var reporter = options.reporter;\n var batchProcessor = options.batchProcessor;\n var getState = options.stateHandler.getState;\n var hasState = options.stateHandler.hasState;\n var idHandler = options.idHandler;\n\n if (!batchProcessor) {\n throw new Error(\"Missing required dependency: batchProcessor\");\n }\n\n if (!reporter) {\n throw new Error(\"Missing required dependency: reporter.\");\n }\n\n //TODO: Could this perhaps be done at installation time?\n var scrollbarSizes = getScrollbarSizes();\n\n var styleId = \"erd_scroll_detection_scrollbar_style\";\n var detectionContainerClass = \"erd_scroll_detection_container\";\n\n function initDocument(targetDocument) {\n // Inject the scrollbar styling that prevents them from appearing sometimes in Chrome.\n // The injected container needs to have a class, so that it may be styled with CSS (pseudo elements).\n injectScrollStyle(targetDocument, styleId, detectionContainerClass);\n }\n\n initDocument(window.document);\n\n function buildCssTextString(rules) {\n var seperator = options.important ? \" !important; \" : \"; \";\n\n return (rules.join(seperator) + seperator).trim();\n }\n\n function getScrollbarSizes() {\n var width = 500;\n var height = 500;\n\n var child = document.createElement(\"div\");\n child.style.cssText = buildCssTextString([\"position: absolute\", \"width: \" + width*2 + \"px\", \"height: \" + height*2 + \"px\", \"visibility: hidden\", \"margin: 0\", \"padding: 0\"]);\n\n var container = document.createElement(\"div\");\n container.style.cssText = buildCssTextString([\"position: absolute\", \"width: \" + width + \"px\", \"height: \" + height + \"px\", \"overflow: scroll\", \"visibility: none\", \"top: \" + -width*3 + \"px\", \"left: \" + -height*3 + \"px\", \"visibility: hidden\", \"margin: 0\", \"padding: 0\"]);\n\n container.appendChild(child);\n\n document.body.insertBefore(container, document.body.firstChild);\n\n var widthSize = width - container.clientWidth;\n var heightSize = height - container.clientHeight;\n\n document.body.removeChild(container);\n\n return {\n width: widthSize,\n height: heightSize\n };\n }\n\n function injectScrollStyle(targetDocument, styleId, containerClass) {\n function injectStyle(style, method) {\n method = method || function (element) {\n targetDocument.head.appendChild(element);\n };\n\n var styleElement = targetDocument.createElement(\"style\");\n styleElement.innerHTML = style;\n styleElement.id = styleId;\n method(styleElement);\n return styleElement;\n }\n\n if (!targetDocument.getElementById(styleId)) {\n var containerAnimationClass = containerClass + \"_animation\";\n var containerAnimationActiveClass = containerClass + \"_animation_active\";\n var style = \"/* Created by the element-resize-detector library. */\\n\";\n style += \".\" + containerClass + \" > div::-webkit-scrollbar { \" + buildCssTextString([\"display: none\"]) + \" }\\n\\n\";\n style += \".\" + containerAnimationActiveClass + \" { \" + buildCssTextString([\"-webkit-animation-duration: 0.1s\", \"animation-duration: 0.1s\", \"-webkit-animation-name: \" + containerAnimationClass, \"animation-name: \" + containerAnimationClass]) + \" }\\n\";\n style += \"@-webkit-keyframes \" + containerAnimationClass + \" { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }\\n\";\n style += \"@keyframes \" + containerAnimationClass + \" { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }\";\n injectStyle(style);\n }\n }\n\n function addAnimationClass(element) {\n element.className += \" \" + detectionContainerClass + \"_animation_active\";\n }\n\n function addEvent(el, name, cb) {\n if (el.addEventListener) {\n el.addEventListener(name, cb);\n } else if(el.attachEvent) {\n el.attachEvent(\"on\" + name, cb);\n } else {\n return reporter.error(\"[scroll] Don't know how to add event listeners.\");\n }\n }\n\n function removeEvent(el, name, cb) {\n if (el.removeEventListener) {\n el.removeEventListener(name, cb);\n } else if(el.detachEvent) {\n el.detachEvent(\"on\" + name, cb);\n } else {\n return reporter.error(\"[scroll] Don't know how to remove event listeners.\");\n }\n }\n\n function getExpandElement(element) {\n return getState(element).container.childNodes[0].childNodes[0].childNodes[0];\n }\n\n function getShrinkElement(element) {\n return getState(element).container.childNodes[0].childNodes[0].childNodes[1];\n }\n\n /**\n * Adds a resize event listener to the element.\n * @public\n * @param {element} element The element that should have the listener added.\n * @param {function} listener The listener callback to be called for each resize event of the element. The element will be given as a parameter to the listener callback.\n */\n function addListener(element, listener) {\n var listeners = getState(element).listeners;\n\n if (!listeners.push) {\n throw new Error(\"Cannot add listener to an element that is not detectable.\");\n }\n\n getState(element).listeners.push(listener);\n }\n\n /**\n * Makes an element detectable and ready to be listened for resize events. Will call the callback when the element is ready to be listened for resize changes.\n * @private\n * @param {object} options Optional options object.\n * @param {element} element The element to make detectable\n * @param {function} callback The callback to be called when the element is ready to be listened for resize changes. Will be called with the element as first parameter.\n */\n function makeDetectable(options, element, callback) {\n if (!callback) {\n callback = element;\n element = options;\n options = null;\n }\n\n options = options || {};\n\n function debug() {\n if (options.debug) {\n var args = Array.prototype.slice.call(arguments);\n args.unshift(idHandler.get(element), \"Scroll: \");\n if (reporter.log.apply) {\n reporter.log.apply(null, args);\n } else {\n for (var i = 0; i < args.length; i++) {\n reporter.log(args[i]);\n }\n }\n }\n }\n\n function isDetached(element) {\n function isInDocument(element) {\n var isInShadowRoot = element.getRootNode && element.getRootNode().contains(element);\n return element === element.ownerDocument.body || element.ownerDocument.body.contains(element) || isInShadowRoot;\n }\n\n if (!isInDocument(element)) {\n return true;\n }\n\n // FireFox returns null style in hidden iframes. See https://github.com/wnr/element-resize-detector/issues/68 and https://bugzilla.mozilla.org/show_bug.cgi?id=795520\n if (window.getComputedStyle(element) === null) {\n return true;\n }\n\n return false;\n }\n\n function isUnrendered(element) {\n // Check the absolute positioned container since the top level container is display: inline.\n var container = getState(element).container.childNodes[0];\n var style = window.getComputedStyle(container);\n return !style.width || style.width.indexOf(\"px\") === -1; //Can only compute pixel value when rendered.\n }\n\n function getStyle() {\n // Some browsers only force layouts when actually reading the style properties of the style object, so make sure that they are all read here,\n // so that the user of the function can be sure that it will perform the layout here, instead of later (important for batching).\n var elementStyle = window.getComputedStyle(element);\n var style = {};\n style.position = elementStyle.position;\n style.width = element.offsetWidth;\n style.height = element.offsetHeight;\n style.top = elementStyle.top;\n style.right = elementStyle.right;\n style.bottom = elementStyle.bottom;\n style.left = elementStyle.left;\n style.widthCSS = elementStyle.width;\n style.heightCSS = elementStyle.height;\n return style;\n }\n\n function storeStartSize() {\n var style = getStyle();\n getState(element).startSize = {\n width: style.width,\n height: style.height\n };\n debug(\"Element start size\", getState(element).startSize);\n }\n\n function initListeners() {\n getState(element).listeners = [];\n }\n\n function storeStyle() {\n debug(\"storeStyle invoked.\");\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n var style = getStyle();\n getState(element).style = style;\n }\n\n function storeCurrentSize(element, width, height) {\n getState(element).lastWidth = width;\n getState(element).lastHeight = height;\n }\n\n function getExpandChildElement(element) {\n return getExpandElement(element).childNodes[0];\n }\n\n function getWidthOffset() {\n return 2 * scrollbarSizes.width + 1;\n }\n\n function getHeightOffset() {\n return 2 * scrollbarSizes.height + 1;\n }\n\n function getExpandWidth(width) {\n return width + 10 + getWidthOffset();\n }\n\n function getExpandHeight(height) {\n return height + 10 + getHeightOffset();\n }\n\n function getShrinkWidth(width) {\n return width * 2 + getWidthOffset();\n }\n\n function getShrinkHeight(height) {\n return height * 2 + getHeightOffset();\n }\n\n function positionScrollbars(element, width, height) {\n var expand = getExpandElement(element);\n var shrink = getShrinkElement(element);\n var expandWidth = getExpandWidth(width);\n var expandHeight = getExpandHeight(height);\n var shrinkWidth = getShrinkWidth(width);\n var shrinkHeight = getShrinkHeight(height);\n expand.scrollLeft = expandWidth;\n expand.scrollTop = expandHeight;\n shrink.scrollLeft = shrinkWidth;\n shrink.scrollTop = shrinkHeight;\n }\n\n function injectContainerElement() {\n var container = getState(element).container;\n\n if (!container) {\n container = document.createElement(\"div\");\n container.className = detectionContainerClass;\n container.style.cssText = buildCssTextString([\"visibility: hidden\", \"display: inline\", \"width: 0px\", \"height: 0px\", \"z-index: -1\", \"overflow: hidden\", \"margin: 0\", \"padding: 0\"]);\n getState(element).container = container;\n addAnimationClass(container);\n element.appendChild(container);\n\n var onAnimationStart = function () {\n getState(element).onRendered && getState(element).onRendered();\n };\n\n addEvent(container, \"animationstart\", onAnimationStart);\n\n // Store the event handler here so that they may be removed when uninstall is called.\n // See uninstall function for an explanation why it is needed.\n getState(element).onAnimationStart = onAnimationStart;\n }\n\n return container;\n }\n\n function injectScrollElements() {\n function alterPositionStyles() {\n var style = getState(element).style;\n\n if(style.position === \"static\") {\n element.style.setProperty(\"position\", \"relative\",options.important ? \"important\" : \"\");\n\n var removeRelativeStyles = function(reporter, element, style, property) {\n function getNumericalValue(value) {\n return value.replace(/[^-\\d\\.]/g, \"\");\n }\n\n var value = style[property];\n\n if(value !== \"auto\" && getNumericalValue(value) !== \"0\") {\n reporter.warn(\"An element that is positioned static has style.\" + property + \"=\" + value + \" which is ignored due to the static positioning. The element will need to be positioned relative, so the style.\" + property + \" will be set to 0. Element: \", element);\n element.style[property] = 0;\n }\n };\n\n //Check so that there are no accidental styles that will make the element styled differently now that is is relative.\n //If there are any, set them to 0 (this should be okay with the user since the style properties did nothing before [since the element was positioned static] anyway).\n removeRelativeStyles(reporter, element, style, \"top\");\n removeRelativeStyles(reporter, element, style, \"right\");\n removeRelativeStyles(reporter, element, style, \"bottom\");\n removeRelativeStyles(reporter, element, style, \"left\");\n }\n }\n\n function getLeftTopBottomRightCssText(left, top, bottom, right) {\n left = (!left ? \"0\" : (left + \"px\"));\n top = (!top ? \"0\" : (top + \"px\"));\n bottom = (!bottom ? \"0\" : (bottom + \"px\"));\n right = (!right ? \"0\" : (right + \"px\"));\n\n return [\"left: \" + left, \"top: \" + top, \"right: \" + right, \"bottom: \" + bottom];\n }\n\n debug(\"Injecting elements\");\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n alterPositionStyles();\n\n var rootContainer = getState(element).container;\n\n if (!rootContainer) {\n rootContainer = injectContainerElement();\n }\n\n // Due to this WebKit bug https://bugs.webkit.org/show_bug.cgi?id=80808 (currently fixed in Blink, but still present in WebKit browsers such as Safari),\n // we need to inject two containers, one that is width/height 100% and another that is left/top -1px so that the final container always is 1x1 pixels bigger than\n // the targeted element.\n // When the bug is resolved, \"containerContainer\" may be removed.\n\n // The outer container can occasionally be less wide than the targeted when inside inline elements element in WebKit (see https://bugs.webkit.org/show_bug.cgi?id=152980).\n // This should be no problem since the inner container either way makes sure the injected scroll elements are at least 1x1 px.\n\n var scrollbarWidth = scrollbarSizes.width;\n var scrollbarHeight = scrollbarSizes.height;\n var containerContainerStyle = buildCssTextString([\"position: absolute\", \"flex: none\", \"overflow: hidden\", \"z-index: -1\", \"visibility: hidden\", \"width: 100%\", \"height: 100%\", \"left: 0px\", \"top: 0px\"]);\n var containerStyle = buildCssTextString([\"position: absolute\", \"flex: none\", \"overflow: hidden\", \"z-index: -1\", \"visibility: hidden\"].concat(getLeftTopBottomRightCssText(-(1 + scrollbarWidth), -(1 + scrollbarHeight), -scrollbarHeight, -scrollbarWidth)));\n var expandStyle = buildCssTextString([\"position: absolute\", \"flex: none\", \"overflow: scroll\", \"z-index: -1\", \"visibility: hidden\", \"width: 100%\", \"height: 100%\"]);\n var shrinkStyle = buildCssTextString([\"position: absolute\", \"flex: none\", \"overflow: scroll\", \"z-index: -1\", \"visibility: hidden\", \"width: 100%\", \"height: 100%\"]);\n var expandChildStyle = buildCssTextString([\"position: absolute\", \"left: 0\", \"top: 0\"]);\n var shrinkChildStyle = buildCssTextString([\"position: absolute\", \"width: 200%\", \"height: 200%\"]);\n\n var containerContainer = document.createElement(\"div\");\n var container = document.createElement(\"div\");\n var expand = document.createElement(\"div\");\n var expandChild = document.createElement(\"div\");\n var shrink = document.createElement(\"div\");\n var shrinkChild = document.createElement(\"div\");\n\n // Some browsers choke on the resize system being rtl, so force it to ltr. https://github.com/wnr/element-resize-detector/issues/56\n // However, dir should not be set on the top level container as it alters the dimensions of the target element in some browsers.\n containerContainer.dir = \"ltr\";\n\n containerContainer.style.cssText = containerContainerStyle;\n containerContainer.className = detectionContainerClass;\n container.className = detectionContainerClass;\n container.style.cssText = containerStyle;\n expand.style.cssText = expandStyle;\n expandChild.style.cssText = expandChildStyle;\n shrink.style.cssText = shrinkStyle;\n shrinkChild.style.cssText = shrinkChildStyle;\n\n expand.appendChild(expandChild);\n shrink.appendChild(shrinkChild);\n container.appendChild(expand);\n container.appendChild(shrink);\n containerContainer.appendChild(container);\n rootContainer.appendChild(containerContainer);\n\n function onExpandScroll() {\n var state = getState(element);\n if (state && state.onExpand) {\n state.onExpand();\n } else {\n debug(\"Aborting expand scroll handler: element has been uninstalled\");\n }\n }\n\n function onShrinkScroll() {\n var state = getState(element);\n if (state && state.onShrink) {\n state.onShrink();\n } else {\n debug(\"Aborting shrink scroll handler: element has been uninstalled\");\n }\n }\n\n addEvent(expand, \"scroll\", onExpandScroll);\n addEvent(shrink, \"scroll\", onShrinkScroll);\n\n // Store the event handlers here so that they may be removed when uninstall is called.\n // See uninstall function for an explanation why it is needed.\n getState(element).onExpandScroll = onExpandScroll;\n getState(element).onShrinkScroll = onShrinkScroll;\n }\n\n function registerListenersAndPositionElements() {\n function updateChildSizes(element, width, height) {\n var expandChild = getExpandChildElement(element);\n var expandWidth = getExpandWidth(width);\n var expandHeight = getExpandHeight(height);\n expandChild.style.setProperty(\"width\", expandWidth + \"px\", options.important ? \"important\" : \"\");\n expandChild.style.setProperty(\"height\", expandHeight + \"px\", options.important ? \"important\" : \"\");\n }\n\n function updateDetectorElements(done) {\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n // Check whether the size has actually changed since last time the algorithm ran. If not, some steps may be skipped.\n var sizeChanged = width !== getState(element).lastWidth || height !== getState(element).lastHeight;\n\n debug(\"Storing current size\", width, height);\n\n // Store the size of the element sync here, so that multiple scroll events may be ignored in the event listeners.\n // Otherwise the if-check in handleScroll is useless.\n storeCurrentSize(element, width, height);\n\n // Since we delay the processing of the batch, there is a risk that uninstall has been called before the batch gets to execute.\n // Since there is no way to cancel the fn executions, we need to add an uninstall guard to all fns of the batch.\n\n batchProcessor.add(0, function performUpdateChildSizes() {\n if (!sizeChanged) {\n return;\n }\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n if (!areElementsInjected()) {\n debug(\"Aborting because element container has not been initialized\");\n return;\n }\n\n if (options.debug) {\n var w = element.offsetWidth;\n var h = element.offsetHeight;\n\n if (w !== width || h !== height) {\n reporter.warn(idHandler.get(element), \"Scroll: Size changed before updating detector elements.\");\n }\n }\n\n updateChildSizes(element, width, height);\n });\n\n batchProcessor.add(1, function updateScrollbars() {\n // This function needs to be invoked event though the size is unchanged. The element could have been resized very quickly and then\n // been restored to the original size, which will have changed the scrollbar positions.\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n if (!areElementsInjected()) {\n debug(\"Aborting because element container has not been initialized\");\n return;\n }\n\n positionScrollbars(element, width, height);\n });\n\n if (sizeChanged && done) {\n batchProcessor.add(2, function () {\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n if (!areElementsInjected()) {\n debug(\"Aborting because element container has not been initialized\");\n return;\n }\n\n done();\n });\n }\n }\n\n function areElementsInjected() {\n return !!getState(element).container;\n }\n\n function notifyListenersIfNeeded() {\n function isFirstNotify() {\n return getState(element).lastNotifiedWidth === undefined;\n }\n\n debug(\"notifyListenersIfNeeded invoked\");\n\n var state = getState(element);\n\n // Don't notify if the current size is the start size, and this is the first notification.\n if (isFirstNotify() && state.lastWidth === state.startSize.width && state.lastHeight === state.startSize.height) {\n return debug(\"Not notifying: Size is the same as the start size, and there has been no notification yet.\");\n }\n\n // Don't notify if the size already has been notified.\n if (state.lastWidth === state.lastNotifiedWidth && state.lastHeight === state.lastNotifiedHeight) {\n return debug(\"Not notifying: Size already notified\");\n }\n\n\n debug(\"Current size not notified, notifying...\");\n state.lastNotifiedWidth = state.lastWidth;\n state.lastNotifiedHeight = state.lastHeight;\n forEach(getState(element).listeners, function (listener) {\n listener(element);\n });\n }\n\n function handleRender() {\n debug(\"startanimation triggered.\");\n\n if (isUnrendered(element)) {\n debug(\"Ignoring since element is still unrendered...\");\n return;\n }\n\n debug(\"Element rendered.\");\n var expand = getExpandElement(element);\n var shrink = getShrinkElement(element);\n if (expand.scrollLeft === 0 || expand.scrollTop === 0 || shrink.scrollLeft === 0 || shrink.scrollTop === 0) {\n debug(\"Scrollbars out of sync. Updating detector elements...\");\n updateDetectorElements(notifyListenersIfNeeded);\n }\n }\n\n function handleScroll() {\n debug(\"Scroll detected.\");\n\n if (isUnrendered(element)) {\n // Element is still unrendered. Skip this scroll event.\n debug(\"Scroll event fired while unrendered. Ignoring...\");\n return;\n }\n\n updateDetectorElements(notifyListenersIfNeeded);\n }\n\n debug(\"registerListenersAndPositionElements invoked.\");\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n getState(element).onRendered = handleRender;\n getState(element).onExpand = handleScroll;\n getState(element).onShrink = handleScroll;\n\n var style = getState(element).style;\n updateChildSizes(element, style.width, style.height);\n }\n\n function finalizeDomMutation() {\n debug(\"finalizeDomMutation invoked.\");\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n var style = getState(element).style;\n storeCurrentSize(element, style.width, style.height);\n positionScrollbars(element, style.width, style.height);\n }\n\n function ready() {\n callback(element);\n }\n\n function install() {\n debug(\"Installing...\");\n initListeners();\n storeStartSize();\n\n batchProcessor.add(0, storeStyle);\n batchProcessor.add(1, injectScrollElements);\n batchProcessor.add(2, registerListenersAndPositionElements);\n batchProcessor.add(3, finalizeDomMutation);\n batchProcessor.add(4, ready);\n }\n\n debug(\"Making detectable...\");\n\n if (isDetached(element)) {\n debug(\"Element is detached\");\n\n injectContainerElement();\n\n debug(\"Waiting until element is attached...\");\n\n getState(element).onRendered = function () {\n debug(\"Element is now attached\");\n install();\n };\n } else {\n install();\n }\n }\n\n function uninstall(element) {\n var state = getState(element);\n\n if (!state) {\n // Uninstall has been called on a non-erd element.\n return;\n }\n\n // Uninstall may have been called in the following scenarios:\n // (1) Right between the sync code and async batch (here state.busy = true, but nothing have been registered or injected).\n // (2) In the ready callback of the last level of the batch by another element (here, state.busy = true, but all the stuff has been injected).\n // (3) After the installation process (here, state.busy = false and all the stuff has been injected).\n // So to be on the safe side, let's check for each thing before removing.\n\n // We need to remove the event listeners, because otherwise the event might fire on an uninstall element which results in an error when trying to get the state of the element.\n state.onExpandScroll && removeEvent(getExpandElement(element), \"scroll\", state.onExpandScroll);\n state.onShrinkScroll && removeEvent(getShrinkElement(element), \"scroll\", state.onShrinkScroll);\n state.onAnimationStart && removeEvent(state.container, \"animationstart\", state.onAnimationStart);\n\n state.container && element.removeChild(state.container);\n }\n\n return {\n makeDetectable: makeDetectable,\n addListener: addListener,\n uninstall: uninstall,\n initDocument: initDocument\n };\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","\"use strict\";\n\nvar prop = \"_erd\";\n\nfunction initState(element) {\n element[prop] = {};\n return getState(element);\n}\n\nfunction getState(element) {\n return element[prop];\n}\n\nfunction cleanState(element) {\n delete element[prop];\n}\n\nmodule.exports = {\n initState: initState,\n getState: getState,\n cleanState: cleanState\n};\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","export * from \"-!../../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&\"","\"use strict\";\n\nvar forEach = require(\"./collection-utils\").forEach;\nvar elementUtilsMaker = require(\"./element-utils\");\nvar listenerHandlerMaker = require(\"./listener-handler\");\nvar idGeneratorMaker = require(\"./id-generator\");\nvar idHandlerMaker = require(\"./id-handler\");\nvar reporterMaker = require(\"./reporter\");\nvar browserDetector = require(\"./browser-detector\");\nvar batchProcessorMaker = require(\"batch-processor\");\nvar stateHandler = require(\"./state-handler\");\n\n//Detection strategies.\nvar objectStrategyMaker = require(\"./detection-strategy/object.js\");\nvar scrollStrategyMaker = require(\"./detection-strategy/scroll.js\");\n\nfunction isCollection(obj) {\n return Array.isArray(obj) || obj.length !== undefined;\n}\n\nfunction toArray(collection) {\n if (!Array.isArray(collection)) {\n var array = [];\n forEach(collection, function (obj) {\n array.push(obj);\n });\n return array;\n } else {\n return collection;\n }\n}\n\nfunction isElement(obj) {\n return obj && obj.nodeType === 1;\n}\n\n/**\n * @typedef idHandler\n * @type {object}\n * @property {function} get Gets the resize detector id of the element.\n * @property {function} set Generate and sets the resize detector id of the element.\n */\n\n/**\n * @typedef Options\n * @type {object}\n * @property {boolean} callOnAdd Determines if listeners should be called when they are getting added.\n Default is true. If true, the listener is guaranteed to be called when it has been added.\n If false, the listener will not be guarenteed to be called when it has been added (does not prevent it from being called).\n * @property {idHandler} idHandler A custom id handler that is responsible for generating, setting and retrieving id's for elements.\n If not provided, a default id handler will be used.\n * @property {reporter} reporter A custom reporter that handles reporting logs, warnings and errors.\n If not provided, a default id handler will be used.\n If set to false, then nothing will be reported.\n * @property {boolean} debug If set to true, the the system will report debug messages as default for the listenTo method.\n */\n\n/**\n * Creates an element resize detector instance.\n * @public\n * @param {Options?} options Optional global options object that will decide how this instance will work.\n */\nmodule.exports = function(options) {\n options = options || {};\n\n //idHandler is currently not an option to the listenTo function, so it should not be added to globalOptions.\n var idHandler;\n\n if (options.idHandler) {\n // To maintain compatability with idHandler.get(element, readonly), make sure to wrap the given idHandler\n // so that readonly flag always is true when it's used here. This may be removed next major version bump.\n idHandler = {\n get: function (element) { return options.idHandler.get(element, true); },\n set: options.idHandler.set\n };\n } else {\n var idGenerator = idGeneratorMaker();\n var defaultIdHandler = idHandlerMaker({\n idGenerator: idGenerator,\n stateHandler: stateHandler\n });\n idHandler = defaultIdHandler;\n }\n\n //reporter is currently not an option to the listenTo function, so it should not be added to globalOptions.\n var reporter = options.reporter;\n\n if(!reporter) {\n //If options.reporter is false, then the reporter should be quiet.\n var quiet = reporter === false;\n reporter = reporterMaker(quiet);\n }\n\n //batchProcessor is currently not an option to the listenTo function, so it should not be added to globalOptions.\n var batchProcessor = getOption(options, \"batchProcessor\", batchProcessorMaker({ reporter: reporter }));\n\n //Options to be used as default for the listenTo function.\n var globalOptions = {};\n globalOptions.callOnAdd = !!getOption(options, \"callOnAdd\", true);\n globalOptions.debug = !!getOption(options, \"debug\", false);\n\n var eventListenerHandler = listenerHandlerMaker(idHandler);\n var elementUtils = elementUtilsMaker({\n stateHandler: stateHandler\n });\n\n //The detection strategy to be used.\n var detectionStrategy;\n var desiredStrategy = getOption(options, \"strategy\", \"object\");\n var importantCssRules = getOption(options, \"important\", false);\n var strategyOptions = {\n reporter: reporter,\n batchProcessor: batchProcessor,\n stateHandler: stateHandler,\n idHandler: idHandler,\n important: importantCssRules\n };\n\n if(desiredStrategy === \"scroll\") {\n if (browserDetector.isLegacyOpera()) {\n reporter.warn(\"Scroll strategy is not supported on legacy Opera. Changing to object strategy.\");\n desiredStrategy = \"object\";\n } else if (browserDetector.isIE(9)) {\n reporter.warn(\"Scroll strategy is not supported on IE9. Changing to object strategy.\");\n desiredStrategy = \"object\";\n }\n }\n\n if(desiredStrategy === \"scroll\") {\n detectionStrategy = scrollStrategyMaker(strategyOptions);\n } else if(desiredStrategy === \"object\") {\n detectionStrategy = objectStrategyMaker(strategyOptions);\n } else {\n throw new Error(\"Invalid strategy name: \" + desiredStrategy);\n }\n\n //Calls can be made to listenTo with elements that are still being installed.\n //Also, same elements can occur in the elements list in the listenTo function.\n //With this map, the ready callbacks can be synchronized between the calls\n //so that the ready callback can always be called when an element is ready - even if\n //it wasn't installed from the function itself.\n var onReadyCallbacks = {};\n\n /**\n * Makes the given elements resize-detectable and starts listening to resize events on the elements. Calls the event callback for each event for each element.\n * @public\n * @param {Options?} options Optional options object. These options will override the global options. Some options may not be overriden, such as idHandler.\n * @param {element[]|element} elements The given array of elements to detect resize events of. Single element is also valid.\n * @param {function} listener The callback to be executed for each resize event for each element.\n */\n function listenTo(options, elements, listener) {\n function onResizeCallback(element) {\n var listeners = eventListenerHandler.get(element);\n forEach(listeners, function callListenerProxy(listener) {\n listener(element);\n });\n }\n\n function addListener(callOnAdd, element, listener) {\n eventListenerHandler.add(element, listener);\n\n if(callOnAdd) {\n listener(element);\n }\n }\n\n //Options object may be omitted.\n if(!listener) {\n listener = elements;\n elements = options;\n options = {};\n }\n\n if(!elements) {\n throw new Error(\"At least one element required.\");\n }\n\n if(!listener) {\n throw new Error(\"Listener required.\");\n }\n\n if (isElement(elements)) {\n // A single element has been passed in.\n elements = [elements];\n } else if (isCollection(elements)) {\n // Convert collection to array for plugins.\n // TODO: May want to check so that all the elements in the collection are valid elements.\n elements = toArray(elements);\n } else {\n return reporter.error(\"Invalid arguments. Must be a DOM element or a collection of DOM elements.\");\n }\n\n var elementsReady = 0;\n\n var callOnAdd = getOption(options, \"callOnAdd\", globalOptions.callOnAdd);\n var onReadyCallback = getOption(options, \"onReady\", function noop() {});\n var debug = getOption(options, \"debug\", globalOptions.debug);\n\n forEach(elements, function attachListenerToElement(element) {\n if (!stateHandler.getState(element)) {\n stateHandler.initState(element);\n idHandler.set(element);\n }\n\n var id = idHandler.get(element);\n\n debug && reporter.log(\"Attaching listener to element\", id, element);\n\n if(!elementUtils.isDetectable(element)) {\n debug && reporter.log(id, \"Not detectable.\");\n if(elementUtils.isBusy(element)) {\n debug && reporter.log(id, \"System busy making it detectable\");\n\n //The element is being prepared to be detectable. Do not make it detectable.\n //Just add the listener, because the element will soon be detectable.\n addListener(callOnAdd, element, listener);\n onReadyCallbacks[id] = onReadyCallbacks[id] || [];\n onReadyCallbacks[id].push(function onReady() {\n elementsReady++;\n\n if(elementsReady === elements.length) {\n onReadyCallback();\n }\n });\n return;\n }\n\n debug && reporter.log(id, \"Making detectable...\");\n //The element is not prepared to be detectable, so do prepare it and add a listener to it.\n elementUtils.markBusy(element, true);\n return detectionStrategy.makeDetectable({ debug: debug, important: importantCssRules }, element, function onElementDetectable(element) {\n debug && reporter.log(id, \"onElementDetectable\");\n\n if (stateHandler.getState(element)) {\n elementUtils.markAsDetectable(element);\n elementUtils.markBusy(element, false);\n detectionStrategy.addListener(element, onResizeCallback);\n addListener(callOnAdd, element, listener);\n\n // Since the element size might have changed since the call to \"listenTo\", we need to check for this change,\n // so that a resize event may be emitted.\n // Having the startSize object is optional (since it does not make sense in some cases such as unrendered elements), so check for its existance before.\n // Also, check the state existance before since the element may have been uninstalled in the installation process.\n var state = stateHandler.getState(element);\n if (state && state.startSize) {\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n if (state.startSize.width !== width || state.startSize.height !== height) {\n onResizeCallback(element);\n }\n }\n\n if(onReadyCallbacks[id]) {\n forEach(onReadyCallbacks[id], function(callback) {\n callback();\n });\n }\n } else {\n // The element has been unisntalled before being detectable.\n debug && reporter.log(id, \"Element uninstalled before being detectable.\");\n }\n\n delete onReadyCallbacks[id];\n\n elementsReady++;\n if(elementsReady === elements.length) {\n onReadyCallback();\n }\n });\n }\n\n debug && reporter.log(id, \"Already detecable, adding listener.\");\n\n //The element has been prepared to be detectable and is ready to be listened to.\n addListener(callOnAdd, element, listener);\n elementsReady++;\n });\n\n if(elementsReady === elements.length) {\n onReadyCallback();\n }\n }\n\n function uninstall(elements) {\n if(!elements) {\n return reporter.error(\"At least one element is required.\");\n }\n\n if (isElement(elements)) {\n // A single element has been passed in.\n elements = [elements];\n } else if (isCollection(elements)) {\n // Convert collection to array for plugins.\n // TODO: May want to check so that all the elements in the collection are valid elements.\n elements = toArray(elements);\n } else {\n return reporter.error(\"Invalid arguments. Must be a DOM element or a collection of DOM elements.\");\n }\n\n forEach(elements, function (element) {\n eventListenerHandler.removeAllListeners(element);\n detectionStrategy.uninstall(element);\n stateHandler.cleanState(element);\n });\n }\n\n function initDocument(targetDocument) {\n detectionStrategy.initDocument && detectionStrategy.initDocument(targetDocument);\n }\n\n return {\n listenTo: listenTo,\n removeListener: eventListenerHandler.removeListener,\n removeAllListeners: eventListenerHandler.removeAllListeners,\n uninstall: uninstall,\n initDocument: initDocument\n };\n};\n\nfunction getOption(options, name, defaultValue) {\n var value = options[name];\n\n if((value === undefined || value === null) && defaultValue !== undefined) {\n return defaultValue;\n }\n\n return value;\n}\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","// document.currentScript polyfill by Adam Miller\n\n// MIT license\n\n(function(document){\n var currentScript = \"currentScript\",\n scripts = document.getElementsByTagName('script'); // Live NodeList collection\n\n // If browser needs currentScript polyfill, add get currentScript() to the document object\n if (!(currentScript in document)) {\n Object.defineProperty(document, currentScript, {\n get: function(){\n\n // IE 6-10 supports script readyState\n // IE 10+ support stack trace\n try { throw new Error(); }\n catch (err) {\n\n // Find the second match for the \"at\" string to get file src url from stack.\n // Specifically works with the format of stack traces in IE.\n var i, res = ((/.*at [^\\(]*\\((.*):.+:.+\\)$/ig).exec(err.stack) || [false])[1];\n\n // For all scripts on the page, if src matches or if ready state is interactive, return the script tag\n for(i in scripts){\n if(scripts[i].src == res || scripts[i].readyState == \"interactive\"){\n return scripts[i];\n }\n }\n\n // If no match, return null\n return null;\n }\n }\n });\n }\n})(document);\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","module.exports = require('./_shared')('native-function-to-string', Function.toString);\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n require('current-script-polyfill')\n }\n\n var i\n if ((i = window.document.currentScript) && (i = i.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/))) {\n __webpack_public_path__ = i[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n","// 20.1.2.2 Number.isFinite(number)\nvar $export = require('./_export');\nvar _isFinite = require('./_global').isFinite;\n\n$export($export.S, 'Number', {\n isFinite: function isFinite(it) {\n return typeof it == 'number' && _isFinite(it);\n }\n});\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 8cb50d77..217b40e3 100644 --- a/dist/vue-grid-layout.umd.js +++ b/dist/vue-grid-layout.umd.js @@ -1,3 +1,4 @@ +/*! vue-grid-layout - 2.4.0 | (c) 2015, 2022 Gustavo Santos (JBay Solutions) (http://www.jbaysolutions.com) | https://github.com/jbaysolutions/vue-grid-layout */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("vue")); @@ -96,21 +97,6 @@ return /******/ (function(modules) { // webpackBootstrap /************************************************************************/ /******/ ({ -/***/ "00c2": -/***/ (function(module, exports, __webpack_require__) { - -// 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/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/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=b1033d08&\"\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\ncomponent.options.__file = \"GridItem.vue\"\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/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/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=672425fa&\"\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\ncomponent.options.__file = \"GridLayout.vue\"\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/modules/_flags.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-keys.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/element-resize-detector/src/detection-strategy/object.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/browser-detector.js","webpack://VueGridLayout/./src/helpers/DOM.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/modules/_object-gops.js","webpack://VueGridLayout/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://VueGridLayout/./node_modules/core-js/modules/_redefine.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-create.js","webpack://VueGridLayout/./src/components/index.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/modules/_hide.js","webpack://VueGridLayout/./src/components/GridLayout.vue?9453","webpack://VueGridLayout/src/components/GridLayout.vue","webpack://VueGridLayout/./src/components/GridLayout.vue?2dea","webpack://VueGridLayout/./src/components/GridLayout.vue","webpack://VueGridLayout/./node_modules/core-js/modules/_object-gpo.js","webpack://VueGridLayout/./node_modules/core-js/modules/_iter-create.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.object.keys.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/core-js/modules/es6.regexp.match.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/modules/es6.array.sort.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/modules/_inherit-if-required.js","webpack://VueGridLayout/./src/components/GridItem.vue?70f1","webpack://VueGridLayout/./node_modules/core-js/modules/_object-sap.js","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/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/./src/components/GridItem.vue?73c4","webpack://VueGridLayout/./node_modules/core-js/modules/_object-assign.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/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/modules/_set-proto.js","webpack://VueGridLayout/external {\"commonjs\":\"vue\",\"commonjs2\":\"vue\",\"root\":\"Vue\"}","webpack://VueGridLayout/./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-gopn.js","webpack://VueGridLayout/./src/helpers/responsiveUtils.js","webpack://VueGridLayout/./node_modules/core-js/modules/_own-keys.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/./src/helpers/utils.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.regexp.replace.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/@babel/runtime/helpers/esm/defineProperty.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.regexp.exec.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/collection-utils.js","webpack://VueGridLayout/./src/components/GridItem.vue?f637","webpack://VueGridLayout/./src/helpers/draggableUtils.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/domObjects.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/isWindow.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/window.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/is.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/browser.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/arr.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/clone.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/extend.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/raf.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/normalizeListeners.js","webpack://VueGridLayout/./node_modules/@interactjs/core/Eventable.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/domUtils.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/rect.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/getOriginXY.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/hypot.js","webpack://VueGridLayout/./node_modules/@interactjs/core/BaseEvent.js","webpack://VueGridLayout/./node_modules/@interactjs/core/defaultOptions.js","webpack://VueGridLayout/./node_modules/@interactjs/core/InteractEvent.js","webpack://VueGridLayout/./node_modules/@interactjs/core/isNonNativeEvent.js","webpack://VueGridLayout/./node_modules/@interactjs/core/Interactable.js","webpack://VueGridLayout/./node_modules/@interactjs/core/InteractableSet.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/pointerExtend.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/pointerUtils.js","webpack://VueGridLayout/./node_modules/@interactjs/core/events.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/misc.js","webpack://VueGridLayout/./node_modules/@interactjs/core/interactStatic.js","webpack://VueGridLayout/./node_modules/@interactjs/core/PointerInfo.js","webpack://VueGridLayout/./node_modules/@interactjs/core/Interaction.js","webpack://VueGridLayout/./node_modules/@interactjs/core/interactablePreventDefault.js","webpack://VueGridLayout/./node_modules/@interactjs/core/interactionFinder.js","webpack://VueGridLayout/./node_modules/@interactjs/core/interactions.js","webpack://VueGridLayout/./node_modules/@interactjs/core/scope.js","webpack://VueGridLayout/./node_modules/@interactjs/interact/index.js","webpack://VueGridLayout/./node_modules/@interactjs/auto-start/InteractableMethods.js","webpack://VueGridLayout/./node_modules/@interactjs/auto-start/base.js","webpack://VueGridLayout/./node_modules/@interactjs/auto-start/dragAxis.js","webpack://VueGridLayout/./node_modules/@interactjs/auto-start/hold.js","webpack://VueGridLayout/./node_modules/@interactjs/auto-start/plugin.js","webpack://VueGridLayout/./node_modules/@interactjs/auto-start/index.js","webpack://VueGridLayout/./node_modules/@interactjs/auto-scroll/plugin.js","webpack://VueGridLayout/./node_modules/@interactjs/auto-scroll/index.js","webpack://VueGridLayout/./node_modules/@interactjs/actions/drag/plugin.js","webpack://VueGridLayout/./node_modules/@interactjs/actions/drag/index.js","webpack://VueGridLayout/./node_modules/@interactjs/actions/resize/plugin.js","webpack://VueGridLayout/./node_modules/@interactjs/actions/resize/index.js","webpack://VueGridLayout/./node_modules/@interactjs/snappers/edgeTarget.js","webpack://VueGridLayout/./node_modules/@interactjs/snappers/elements.js","webpack://VueGridLayout/./node_modules/@interactjs/snappers/grid.js","webpack://VueGridLayout/./node_modules/@interactjs/snappers/all.js","webpack://VueGridLayout/./node_modules/@interactjs/snappers/plugin.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/Modification.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/base.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/aspectRatio.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/noop.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/restrict/pointer.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/restrict/edges.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/restrict/rect.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/restrict/size.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/snap/pointer.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/snap/size.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/snap/edges.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/all.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/plugin.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/index.js","webpack://VueGridLayout/./node_modules/@interactjs/dev-tools/plugin.js","webpack://VueGridLayout/./node_modules/@interactjs/dev-tools/index.js","webpack://VueGridLayout/src/components/GridItem.vue","webpack://VueGridLayout/./src/components/GridItem.vue?2537","webpack://VueGridLayout/./src/components/GridItem.vue","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/modules/es6.number.constructor.js","webpack://VueGridLayout/./node_modules/core-js/modules/_ie8-dom-define.js","webpack://VueGridLayout/(webpack)/buildin/global.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/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/modules/_a-function.js","webpack://VueGridLayout/./node_modules/core-js/modules/_enum-bug-keys.js","webpack://VueGridLayout/./src/components/GridLayout.vue?2bdf","webpack://VueGridLayout/./node_modules/element-resize-detector/src/element-resize-detector.js","webpack://VueGridLayout/./node_modules/core-js/modules/_create-property.js","webpack://VueGridLayout/./node_modules/current-script-polyfill/currentScript.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.object.assign.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/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.number.is-finite.js","webpack://VueGridLayout/./node_modules/core-js/modules/_string-ws.js"],"names":["currentDir","hasDocument","document","hasWindow","window","getDocumentDir","direction","dir","getElementsByTagName","getAttribute","setDocumentDir","html","setAttribute","addWindowEventListener","event","callback","addEventListener","removeWindowEventListener","removeEventListener","VueGridLayout","GridLayout","GridItem","install","Vue","installed","Object","keys","forEach","name","component","plugin","GlobalVue","global","use","getBreakpointFromWidth","breakpoints","width","sorted","sortBreakpoints","matching","i","len","length","breakpointName","getColsFromBreakpoint","breakpoint","cols","Error","findOrGenerateResponsiveLayout","orgLayout","layouts","lastBreakpoint","verticalCompact","cloneLayout","layout","breakpointsSorted","breakpointsAbove","slice","indexOf","b","compact","correctBounds","generateResponsiveLayout","sort","a","bottom","max","bottomY","y","h","newLayout","Array","cloneLayoutItem","layoutItem","JSON","parse","stringify","collides","l1","l2","x","w","minPositions","compareWith","getStatics","sortLayoutItemsByRowCol","out","l","static","compactItem","push","moved","getFirstCollision","minY","bounds","collidesWith","getLayoutItem","id","getAllCollisions","filter","moveElement","isUserAction","preventCollision","oldX","oldY","movingUp","reverse","collisions","collision","moveElementAwayFromCollision","itemToMove","fakeItem","Math","undefined","perc","num","setTransform","top","left","height","translate","transform","WebkitTransform","MozTransform","msTransform","OTransform","position","setTransformRtl","right","setTopLeft","setTopRight","concat","validateLayout","contextName","subProps","keyArr","isArray","item","j","autoBindHandlers","el","fns","key","bind","createMarkup","obj","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","value","hyphenateRE","str","replace","toLowerCase","findItemInArray","array","property","findAndRemove","index","splice","getControlPosition","e","offsetXYFromParentOf","evt","offsetParent","target","body","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","createCoreData","lastX","lastY","isStart","isNum","deltaX","deltaY","isNaN"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;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;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;;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;;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;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yDAAyD,OAAO;;AAEhE;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;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;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;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;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtPa;;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;AAAA;AAAA;AAAA;AAAA,IAAIA;AAAkC;AAAA,EAAI,MAA1C,C,CACA;;AAEA,SAASC,WAAT,GAAsB;AAClB,SAAQ,OAAOC,QAAP,KAAoB,WAA5B;AACH;;AAED,SAASC,SAAT,GAAoB;AAChB,SAAQ,OAAOC,MAAP,KAAkB,WAA1B;AACH;;AAEM,SAASC,cAAT,GAAyB;AAC5B,MAAG,CAACJ,WAAW,EAAf,EAAkB;AACd,WAAOD,UAAP;AACH;;AACD,MAAMM,SAAS,GAAI,OAAOJ,QAAQ,CAACK,GAAhB,KAAwB,WAAzB,GACdL,QAAQ,CAACK,GADK,GAEdL,QAAQ,CAACM,oBAAT,CAA8B,MAA9B,EAAsC,CAAtC,EAAyCC,YAAzC,CAAsD,KAAtD,CAFJ;AAGA,SAAOH,SAAP;AACH;AAEM,SAASI,cAAT,CAAwBH;AAAxB;AAAA,EAAoD;AAC3D;AACI,MAAG,CAACN,WAAJ,EAAgB;AACZD,cAAU,GAAGO,GAAb;AACA;AACH;;AAED,MAAMI,IAAI,GAAGT,QAAQ,CAACM,oBAAT,CAA8B,MAA9B,EAAsC,CAAtC,CAAb;AACAG,MAAI,CAACC,YAAL,CAAkB,KAAlB,EAAyBL,GAAzB;AACH;AAEM,SAASM,sBAAT,CAAgCC;AAAhC;AAAA,EAA8CC;AAA9C;AAAA,EAAoE;AACvE,MAAG,CAACZ,SAAJ,EAAc;AAEVY,YAAQ;AACR;AACH;;AACDX,QAAM,CAACY,gBAAP,CAAwBF,KAAxB,EAA+BC,QAA/B;AACH;AAEM,SAASE,yBAAT,CAAmCH;AAAnC;AAAA,EAAiDC;AAAjD;AAAA,EAAuE;AAC1E,MAAG,CAACZ,SAAJ,EAAc;AACV;AACH;;AACDC,QAAM,CAACc,mBAAP,CAA2BJ,KAA3B,EAAkCC,QAAlC;AACH,C;;;;;;;;AC9CY;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;;;;;;;;;ACAA;AAAA;;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;AACA;AACA;AACA;AACA;AACA;AACA;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;;;;;;;;ACjGA,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;CAEA;;AAEA,IAAMI,aAAa,GAAG;AAClB;AACAC,YAA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A;AACA;AACA,KAFA;;AAIA;AACA;AACA;AACA;AACA;AACA,GArIA;AAsIA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA,GA/IA;AAgJA;AACA;AACA,GAlJA;AAmJA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA,8BAHA,CAMA;;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA,8BADA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA,WAFA;AAGA,SATA;AAUA,OAxBA;AAyBA,KA9BA;AA+BA,GApLA;AAqLA;AACA;AACA;AACA;AAAA;;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAGA;AACA;AACA,WAFA;AAGA;;AACA;AACA,OA7BA;AA8BA,KAjCA;AAkCA;AACA;AACA,KApCA;AAqCA;AACA;AACA,KAvCA;AAwCA;AACA;AACA,KA1CA;AA2CA;AACA;AACA,KA7CA;AA8CA;AACA;AACA,KAhDA;AAiDA;AACA;AACA,KAnDA;AAoDA;AACA;AACA,KAtDA;AAuDA,cAvDA,wBAuDA;AACA;AACA;AACA;AACA;;AACA;AACA,KA7DA;AA8DA;AACA;AACA,KAhEA;AAiEA,UAjEA,oBAiEA;AACA;AACA;AAnEA,GArLA;AA0PA;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;AAEA;AACA;AACA,KA9BA;AA+BA;AACA;AACA;AADA;AAGA,KAnCA;AAoCA;AACA;AACA;AACA;;AACA;AACA,KAzCA;AA0CA;AACA,iCADA,CAEA;AACA;;AACA;AACA;AACA,KAhDA;AAiDA;AACA;AACA,sEAFA,CAGA;;AACA;AACA;AAAA;AAAA;AAAA;AACA;;AAEA;AACA;AAAA;AAAA;AAAA;AAAA,iDACA,MADA,qDAEA,CAFA,EAEA;AAAA;AAAA;AAAA,WAFA;AAAA,WAGA,EAHA;AAIA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAFA,EANA,CASA;;AACA;AACA,OAXA,MAWA;AACA;AACA;AACA,SAFA;AAGA,OA9BA,CAgCA;;;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OANA,MAMA;AACA;AACA,OA3CA,CA6CA;;;AACA;AACA;;AACA;AACA;AACA;AACA;AACA,KArGA;AAsGA;AACA,sEADA,CAEA;;AACA;AACA;AAAA;AAAA;AAAA;AACA;;AAEA;;AACA;AACA;AAAA;AAAA;AAAA,mBACA;AAAA;AAAA,SADA;AAGA,8CAJA,CAMA;;AACA;AACA;AACA;AAAA,cACA,iBADA;AAEA;AACA;AACA;AACA,WAHA;AAKA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAFA,EANA,CASA;;AACA;AAEA,OAZA,MAYA;AACA;AACA;AACA,SAFA;AAGA;;AAEA;AAEA;AACA;AACA;AAEA;AACA,KAlKA;AAoKA;AACA,wBArKA,kCAqKA;AACA;AACA,uGAFA,CAIA;;AACA,6EACA,sFANA,CAQA;;AACA,qFACA,mBADA,EAEA,YAFA,EAGA,gBAHA,EAIA,aAJA,EAKA,mBALA,EAMA,OANA,EAOA,oBAPA,EATA,CAmBA;;AACA;;AAEA;AACA;AACA,OAxBA,CA0BA;;;AACA;AAEA;AACA;AACA,KApMA;AAsMA;AACA,0BAvMA,oCAuMA;AACA;AACA;AACA,KA1MA;AA4MA;AACA,kBA7MA,0BA6MA,MA7MA,EA6MA,cA7MA,EA6MA;AAEA;AACA;AACA;AACA;AACA,SAFA;AAGA,OAJA,EAHA,CASA;;AACA;AACA;AACA;AACA,SAFA;AAGA,OAJA,EAVA,CAgBA;;AACA;AACA;AA/NA;AA1PA,G;;AC7BoU,CAAgB,oHAAG,EAAC,C;;;;;;;;ACA/P;AAC3B;AACL;AACa;;;AAGtE;AAC0F;AAC1F,gBAAgB,8CAAU;AAC1B,EAAE,6CAAM;AACR,EAAE,MAAM;AACR,EAAE,eAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEe,2F;;;;;;;ACnBf;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;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,eAAe,mBAAO,CAAC,MAAc;AACrC,YAAY,mBAAO,CAAC,MAAgB;;AAEpC,mBAAO,CAAC,MAAe;AACvB;AACA;AACA;AACA,CAAC;;;;;;;;ACRD;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPa;;AAEb,eAAe,mBAAO,CAAC,MAAc;AACrC,eAAe,mBAAO,CAAC,MAAc;AACrC,yBAAyB,mBAAO,CAAC,MAAyB;AAC1D,iBAAiB,mBAAO,CAAC,MAAyB;;AAElD;AACA,mBAAO,CAAC,MAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;ACvCD;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;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;A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,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,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;AA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,kC;;ACRA;AACA;AACA;;AAEA,SAAS,QAAI;AACb;AACA;;AAEA;AACA;;AAEA;AACA,0BAA0B,OAAO;AACjC,yBAAyB,OAAO,oCAAoC,OAAO;AAC3E;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iEAAiE;;AAEjE;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA,MAAM;AACN,CAAC,EAAC;AACF,+B;;ACzCiC;AACR;AACV;AACf;;AAEA,MAAM,EAAE;AACR;AACA;;AAEA,MAAM,EAAE;AACR,mCAAmC,MAAM;AACzC,GAAG,MAAM,WAAW,WAAW,WAAW;;;AAG1C,MAAM,EAAE;AACR;AACA;AACA;;AAEA,MAAM,EAAE;AACR;AACA;AACA,GAAG,UAAU,EAAE;AACf;AACA;AACA;AACA,GAAG,UAAU,EAAE;AACf;AACA,sDAAsD,KAAK,EAAE,EAAE;AAC/D;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,8C;;ACvCuC;AACC;AACe;;AAEvD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEO,MAAM,mBAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,MAAM,GAAG,eAAe;AAC3C;;AAEA;AACA;AACA,+BAA+B;AAC/B;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,SAAS;;AAE/B;AACA,yBAAyB,KAAS;AAClC;AACA;;AAEA;AACA,sBAAsB,SAAS;;AAE/B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qC;;ACxEmC;AACM;AAChB;AACU;AAC5B;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACO,SAAS,gBAAO;AACvB,SAAS,EAAE;AACX;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACO;AACP;;AAEA,MAAM,EAAE;AACR;AACA;AACA,qCAAqC,EAAE;AACvC;AACA;;AAEA;AACA;;AAEA;AACA;AACO;AACP;AACA,MAAM,GAAU,KAAK,UAAc;AACnC;AACA;;AAEA,iBAAiB,aAAO;AACxB;;AAEA,iDAAiD;;;AAG1C;AACP;AACA;;AAEA,iBAAiB,qBAAqB;AACtC;AACA,mDAAmD;;AAEnD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,qDAAqD;AACrD;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;AACA;;AAEA;AACA,KAAK;;;AAGL;AACA,sBAAsB;;AAEtB,+BAA+B,gBAAU,uCAAuC,gBAAU,wCAAwC,gBAAU;AAC5I;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA;AACA,wBAAwB;;AAExB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,+BAA+B,SAAa;AAC5C,8BAA8B,SAAa;AAC3C;AACA;;AAEO;AACP,SAAS,EAAE;AACX;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACO;AACP;AACA;AACO;AACP,qCAAqC,GAAU;AAC/C;AACA;AACA;AACA;AACA;AACO;AACP,wCAAwC,gBAAU;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;;AAEA,OAAO,aAAO;AACd,+BAA+B,SAAa;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACO;AACP,OAAO,EAAE;AACT;AACA,GAAG;;;AAGH,EAAE,gBAAU;AACZ;AACA;AACA,oC;;AC/NoE;AACnC;AACR;AAClB;AACP;AACA,WAAW,UAAU;AACrB;;AAEA;AACA;AACA;;AAEA,SAAS,gBAAO;AAChB;AACO;AACP;;AAEA,MAAM,EAAE;AACR;AACA,GAAG,UAAU,EAAE;AACf;AACA;;AAEA,MAAM,EAAE;AACR,kBAAkB,cAAc;AAChC;;AAEA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA,WAAW,MAAM,GAAG;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACO;AACP;AACA,WAAW,MAAM,GAAG;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,gC;;AC7EsD;AACvC;AACf;AACA;AACA;AACA,qBAAqB,eAAe;AACpC,SAAS,QAAQ;AACjB;AACA;AACA;AACA,CAAC;AACD,uC;;ACXgB,4EAAkC,EAAE;AACpD,iC;;ACDO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA,CAAC;AACD,qC;;AC5CA;AACA;AACO,MAAM,uBAAQ;AACrB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,0C;;AChBwC;AACU;AACZ;AACK;AACI;AACxC,MAAM,2BAAa,SAAS,SAAS;AAC5C;;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;AACA,qDAAqD,uBAAQ;AAC7D,mBAAmB,WAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gBAAgB,MAAM,GAAG;AACzB,kBAAkB,MAAM,GAAG;AAC3B,gBAAgB,MAAM,GAAG;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C;;AAE7C,oBAAoB,MAAM,GAAG;AAC7B,iBAAiB,KAAK;AACtB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA,CAAC;AACD;;AAEA,wBAAwB,2BAAa;AACrC;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA,CAAC;AACD,yC;;AC3Oe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4C;;ACbA;AACuC;AACG;AACJ;AACwD;AACtD;AACR;AACgC;AACjB;AACJ;AACU;;AAErD;AACO,MAAM,yBAAY;AACzB;AACA;AACA;AACA,cAAc;AACd,mBAAmB;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,mBAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS,CAAC,WAAW;AACrC;AACA;AACA;AACA;;AAEA;AACA,QAAQ,EAAE;AACV,iBA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AAEA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,wC;;AC/YuC;AACU;AACT;AACR;AACzB,MAAM,+BAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT,+BAA+B,EAAE;AACjC,4BAA4B,SAAa;;AAEzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA,cAAc,MAAM,cAAc;AAClC;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,EAAE;AACV;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,uBAAuB,EAAE;AACzB;;AAEA;AACA;AACA;;AAEA,kBAAkB,IAAQ;AAC1B;AACA;;AAEA;AACA;AACA;;AAEA,WAAW,EAAE;AACb,QAAQ,EAAE,kBAAkB,eAAwB;AACpD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2C;;ACtGA;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACe,qEAAa,EAAC;AAC7B,yC;;ACzBmC;AACD;AACQ;AACX;AACN;AACsB;AACxC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP,4BAA4B,gBAAG,6BAA6B,gBAAG;AAC/D,CAAC;;AAEM;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,IAAI;;AAEJ,MAAM,aAAO;AACb;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACO;AACP;;AAEA,MAAM,aAAO;AACb;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACO;AACP,SAAS,EAAE;AACX;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP,qBAAqB;;AAErB,MAAM,EAAE;AACR;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,SAAS,KAAK;AACd;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,SAAS,EAAE,qDAAqD,EAAE;AAClE;AACA,qDAAqD,gBAAG;AACxD,CAAC;;AAEM;AACP,eAAe,EAAE;AACjB,UAAU,gBAAyB,iCAAiC,gBAAyB;AAC7F;AACO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACO;AACP;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACyB;AACzB,wC;;ACzPmC;AACI;AACU;AACT;AACR;AACgB;AACS;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA,GAAG;AACH;;AAEA;AACA;AACA,iBAAiB,IAAQ;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,yCAAyC,QAAY;AACrD;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,SAAa;AACrC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,8CAA8C,QAAQ;AACtD;AACA;;AAEA;AACA,OAAO;AACP,uBAAuB,0BAA0B;AACjD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,IAAQ;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL,sCAAsC,YAAY;AAClD,mCAAmC;;AAEnC;AACA;AACA;AACA,SAAS,OAAO;;AAEhB,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA,WAAW,iBAAiB;;AAE5B;AACA;AACA,mCAAmC;AACnC;;AAEA;AACA,yCAAyC;;AAEzC;AACA;AACA,aAAa;;;AAGb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA,0BAA0B,gBAAS;AACnC;AACA,0BAA0B,eAA4B;AACtD,8BAA8B;;AAE9B,WAAW,EAAE;AACb,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA,SAAS;;AAET,YAAY,eAAwB,uBAAuB,YAAqB,0BAA0B,YAAqB;AAC/H;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,UAAmB;AACnC;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH;AACA;;AAEA,MAAM,gBAAS;AACf;AACA;AACA;AACA;AACA,uCAAuC;;AAEvC,IAAI,mBAAO;AACX;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,OAAO,EAAE;AACT;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,MAAM,GAAG;AAC3B;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA,CAAC,EAAC;AACF,kC;;ACpRqC;AAC9B;AACP;AACA;AACA;AACA,MAAM,GAAM;AACZ;AACA;;AAEA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,gC;;AClBA;AAC0C;AACO;AACjB;AACyB;AACb;AACS;AAC9C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;;;AAGJ,+BAA+B,cAA2B;AAC1D,0BAA0B,SAAsB;AAChD,8BAA8B,aAA0B;AACxD,2BAA2B,UAAuB;AAClD,4BAA4B,cAAuB;AACnD,kCAAkC,oBAA6B;AAC/D,6BAA6B,eAAwB;AACrD,qBAAqB,gBAAgB;AACrC,6BAA6B;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,cAAc,QAAQ;AACtB;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wBAAwB;AACrC,aAAa,SAAS;AACtB,aAAa,iBAAiB;AAC9B;AACA,cAAc,OAAO;AACrB;;;AAGA,gBAAgB,QAAQ;AACxB,QAAQ,EAAE;AACV;AACA;;AAEA,QAAQ,EAAE;AACV;AACA;AACA;;AAEA;AACA;;AAEA,QAAQ,EAAE;AACV;AACA;AACA;;AAEA;AACA,KAAK;;;AAGL,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wBAAwB;AACrC;AACA,aAAa,SAAS;AACtB,aAAa,iBAAiB;AAC9B;AACA,cAAc,OAAO;AACrB;;AAEA,iBAAiB,QAAQ;AACzB,QAAQ,EAAE;AACV;AACA;;AAEA,QAAQ,EAAE;AACV;AACA;AACA;;AAEA;AACA;;AAEA,QAAQ,EAAE;AACV;AACA;AACA;;AAEA;AACA;;AAEA,QAAQ,gBAAgB;AACxB;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;;;AAGA;AACA,WAAW,aAAO;AAClB;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;;;AAGA;AACA,WAAW,aAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,cAAc;AACd;;;AAGA;AACA,QAAQ,EAAE;AACV;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,0C;;AC7PO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uC;;ACfuC;AACC;AACF;AACkB;AACC;AACX;AACK;AACJ;AACxC;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;;AAE9B;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sCAAsC;;AAEvC;AACO,MAAM,uBAAW;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,GAAG;AACH;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,kBAAkB,QAAQ;AAC1B;AACA,KAAK;AACL;AACA;AACA,aAAa,SAAsB;AACnC;AACA,YAAY,SAAsB;AAClC;AACA,WAAW,SAAsB;AACjC;AACA,aAAa,SAAsB;AACnC;AACA,gBAAgB,SAAsB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,OAAO;AACP;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;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,QAAQ;AACtB;;;AAGA;AACA;AACA;AACA;;AAEA,IAAI,UAAU;AACd;AACA;AACA;AACA,uCAAuC,MAAM,GAAG;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA,6BAA6B,KAAK;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,gBAA6B;AACnC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,UAAuB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,QAAQ,eAAe;AAChE;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,MAAM,aAA0B;AAChC;;AAEA,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA,KAAK,iBAAiB;AACtB;;AAEA;AACA,GAAG;;;AAGH;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,oCAAoC,KAAK;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,aAAa,aAAa;AAC1B;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,YAAyB,UAAU;;AAEzD,mGAAmG,SAAa;AAChH;;AAEA;AACA;AACA;;AAEA;AACA,eAAe,YAAyB;AACxC;AACA;AACA;;AAEA;AACA,wBAAwB,WAAW;AACnC;AACA;AACA,KAAK;AACL;AACA;;AAEA,IAAI,SAAsB;AAC1B,IAAI,cAA2B;;AAE/B;AACA;AACA;AACA;AACA,MAAM,mBAA0B;;AAEhC;AACA,QAAQ,UAAuB;AAC/B,QAAQ,UAAuB;AAC/B;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,2BAAa;AAC5B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA,MAAM,QAAkB;AACxB;AACA;AACA;;AAEA,uEAAuE,MAAM;;AAE7E;AACA;AACA;;AAEA;;AAEA,2CAA2C,MAAM;;AAEjD;AACA;AACA;;AAEA;;AAEA,iDAAiD,MAAM;;AAEvD;AACA;;AAEA;AACA;AACA;;AAEA;AACe,4EAAW,EAAC;AACJ;AACvB,uC;;ACxgBiD;AACoB;AACrC;AACe;;AAE/C;AACA;AACA;AACA;AACA;;AAEA,MAAM,EAAE;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,mCAAmC,WAAW;AAC9C;;;AAGA;AACA,gBAAgB,SAAS;AACzB;;AAEA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA,GAAG;;;AAGH,MAAM,EAAE,0BAA0B,eAAe;AACjD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEO,SAAS,kCAAO;AACvB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,cAAc,sBAAsB;AACpC;;AAEA;;AAEA;AACA;AACA,IAAI;;;AAGJ;AACA;;AAEA;AACA;AACA,4EAA4E,YAAY;AACxF;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACe;AACf;AACA,SAAS;AACT;AACA,wBAAwB,UAAU;AAClC;AACA,GAAG,IAAI;AACP,CAAC,EAAC;AACF,sD;;AC/G4C;AAC5C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,UAAc;AAClC;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;AACA,KAAK;AACL;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,gDAAgD;AAChD;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEe,4DAAM,EAAC;AACtB,6C;;AC/I+C;AACL;AACM;AACI;AACK;AACV;AAC0B;AAC7B;AAC5C;;AAEA,SAAS,oBAAO;AAChB;;AAEA;AACA;AACA;;AAEA,sBAAsB,aAAO;AAC7B;;AAEA,MAAM,gBAAU;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,GAAG,EAAE;;AAEL;AACA,oCAAoC,gBAAe;AACnD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;AACA,SAAS,KAAK,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,0BAA0B;AAC5C;;AAEA;AACA;AACA;AACA,wBAAwB,cAA2B;AACnD,0CAA0C,eAA4B;AACtE,uBAAuB;;AAEvB;AACA,wCAAwC;;AAExC;AACA;AACA,0BAA0B,YAAyB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA,WAAW,aAAO;AAClB;AACA,uBAAuB,4CAA4C;AACnE;AACA,SAAS;AACT;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,YAAyB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,2BAA2B,iBAAM;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,MAAM,yBAAY;AAClB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,sDAAsD,QAAQ;AAC9D;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACe,+EAAY,EAAC;AAC5B,wC;;ACrR0C;AACJ;AACU;AACR;AACN;AACQ;AACC;AACQ;AACkB;AACd;AACR;AACd;AAC0B;AACd;AACtC,MAAM,WAAK;AAClB;AACA;AACA;AACA;AACA;AACA,kCAAkC,gCAAgC;AAClE;AACA;AACA,mBAAmB,aAAO;AAC1B,oBAAoB,KAAK,CAAC,uBAAQ;AAClC,qBAAqB,mBAAS;AAC9B;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,OAAO;AACP,oBAAoB;AACpB;AACA;AACA,0BAA0B,oBAAoB;AAC9C,yBAAyB,2BAAa;AACtC;AACA,6BAA6B,+BAAe;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,sCAAsC,yBAAgB;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAI;;AAEX,YAAY,aAAa;AACzB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,SAAa;AAChC,wBAAwB,MAAM,GAAG;AACjC;AACA;AACA;AACA,KAAK;AACL,oCAAoC;AACpC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,mBAAmB,SAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACO;AACP;AACA,EAAE,WAAQ;AACV,EAAE,gBAAU;AACZ,EAAE,aAAO;AACT,EAAE,GAAG;AACL;AACA;AACA,kBAAkB,iBAAY;AAC9B,kBAAkB,MAAM;AACxB;AACA;;AAEA;AACA;AACA;AACA,iC;;ACxOyC;AACzC,MAAM,cAAK,OAAO,WAAK;AACvB,MAAM,iBAAQ,GAAG,cAAK;AACP,0EAAQ,EAAC;AACjB,MAAM,aAAI,UAAU,cAAK;;AAEhC;AACA,EAAE,aAAI;AACN;AACA,iC;;ACTuD;AACvB;AACY;;AAE5C,SAAS,2BAAO;AAChB;AACA;AACA;;AAEA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA,aAAa,wBAAwB;AACrC;AACA,cAAc,0BAA0B;AACxC;AACA;;;AAGA,sCAAsC,QAAQ;AAC9C;AACA,GAAG,6EAA6E,qBAAqB;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,aAAa,wBAAwB;AACrC;AACA,cAAc,0BAA0B;AACxC;AACA;;AAEA,qCAAqC,QAAQ;AAC7C;AACA,GAAG,4EAA4E,oBAAoB;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;AACA,cAAc,wBAAwB;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc,uBAAuB;AACrC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,EAAE;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,MAAM,EAAE;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEe;AACf;AACA,SAAS;AACT,CAAC,EAAC;AACF,+C;;AC7KqD;AACJ;AACT;AACR;AACc;AACa;;AAE3D,SAAS,YAAO;AAChB;AACA;AACA;AACA,GAAG;AACH,kBAAkB,mBAAmB;AACrC;AACA;AACA,EAAE,MAAM;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,CAAC;AACD;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,uCAAuC,SAAS;AAChD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS,EAAE;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,cAAc,UAAmB;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,EAAE,UAAU;AACZ;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;;AAEA;AACA;;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,MAAM,EAAE;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,QAAQ,EAAE;AACV;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACe,kDAAS,EAAC;AACzB,gC;;AC9TkD;AAClB;AACE;;AAElC;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA,qCAAqC;;AAErC;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,6FAA6F,IAAS;AACtG;AACA;AACA;AACA,MAAM;;;AAGN,WAAW,EAAE;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,UAAU;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA,CAAC,EAAC;AACF,oC;;AC5EiD;AACd;;AAEnC,SAAS,YAAO;AAChB;AACA;AACA,GAAG;AACH,kBAAkB,IAAU;AAC5B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACe,wDAAI,EAAC;AACpB,gC;;AClEkC;AACG;AACR;AACd;AACf;;AAEA;AACA,oBAAoB,IAAS;AAC7B,oBAAoB,eAAI;AACxB,oBAAoB,QAAQ;AAC5B;;AAEA,CAAC,EAAC;AACF,kC;;ACbA;AACsD;AACrB;;AAEjC;AACA,EAAE,aAAI;AACN;;AAEA,oBAAQ,KAAK,iBAAM;AACnB,iC;;ACTiD;AACA;AACjB;AACE;AACuB;AACV;;AAE/C,SAAS,cAAO;AAChB;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI,GAAG;AACP;AACA;AACA;AACA,mBAAmB,GAAG;AACtB,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA,IAAI,GAAG;AACP,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,iCAAiC;;AAEjC,kDAAkD;;AAElD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,YAAY,EAAE;AACd;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;;AAEA;AACA,MAAM,GAAG;AACT,qBAAqB,GAAG;AACxB;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,QAAQ,EAAE;AACV;AACA;AACA;AACA;AACA,KAAK;AACL,mBAAmB,oBAA6B;AAChD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP,UAAU,EAAE,iBAAiB,qBAAqB,2CAA2C,SAAS;AACtG;AACO;AACP,MAAM,EAAE;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA;AACO;AACP,MAAM,EAAE;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACe,uEAAgB,EAAC;AAChC,kC;;ACxPA;AACsD;AACrB;;AAEjC;AACA,EAAE,aAAI;AACN;;AAEA,oBAAQ,KAAK,kBAAM;AACnB,iC;;ACT0D;AACvB;;AAEnC,SAAS,mBAAO;AAChB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA;AACA,YAAY,uBAAuB;AACnC;AACA;;;AAGA,MAAM,gBAAS;AACf,MAAM,EAAE;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,MAAM,EAAE;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACe,oDAAI,EAAC;AACpB,kC;;AClKA;AACyD;AACxB;;AAEjC;AACA,EAAE,aAAI;AACN;;AAEA,oBAAQ,KAAK,WAAM;AACnB,iC;;ACT0D;AACF;AACT;AACJ;AACR;;AAEnC,SAAS,qBAAO;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG,SAAS;;AAEZ;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,mCAAmC;AACnC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,6BAA6B;AACnE;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA,cAAc,uBAAuB;AACrC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA,eAAe,MAAM,GAAG;AACxB;;AAEA;AACA;AACA;AACA,GAAG;;;AAGH,MAAM,EAAE;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,MAAM,EAAE;AACR;AACA;AACA;;AAEA,QAAQ,EAAE;AACV;AACA,KAAK;AACL;AACA;;AAEA,QAAQ,EAAE;AACV;AACA,KAAK,UAAU,EAAE;AACjB;AACA;;AAEA;AACA;;AAEA,MAAM,EAAE;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA,kBAAkB,EAAE;AACpB,mBAAmB,EAAE,4DAA4D;;AAEjF;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;;AAGH,OAAO,EAAE;AACT;AACA;;AAEA,SAAS,EAAE;AACX;AACA,IAAI,WAAe;AACnB;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,MAAM,GAAG;AACpB,eAAe,MAAM,GAAG;AACxB,cAAc,MAAM,GAAG;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,WAAI;AACb;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE,MAAM;;AAER;AACA;AACA,IAAI,MAAM;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,MAAM,WAAI;AACV;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACe,wDAAM,EAAC;AACtB,kC;;ACjcA;AACyD;AACxB;;AAEjC;AACA,EAAE,aAAI;AACN;;AAEA,oBAAQ,KAAK,aAAM;AACnB,iC;;ACTgB,uDAAQ,EAAE;AAC1B,sC;;ACDgB,8DAAQ,EAAE;AAC1B,oC;;ACDgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,CAAC,EAAE;AACH,gC;;ACtCwD;AACJ;AACR;AAC5C,+B;;ACHwC;AACA;AACxC;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,wBAAwB,MAAM,wBAAwB,EAAE,mBAAW;AACnE;AACA;;AAEA;AACe,kEAAc,EAAC;AAC9B,kC;;ACfsC;AACE;AACM;AAC/B,MAAM,yBAAY;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA,iBAAiB,MAAM,GAAG;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,iBAAiB,MAAM,GAAG;AAC1B,eAAe,MAAM,GAAG;AACxB;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,iCAAiC,MAAM,GAAG;AAC1C;;AAEA;AACA;AACA;AACA,QAAQ,QAAkB;AAC1B;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,MAAM,MAAM;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL,yBAAyB;AACzB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA,wBAAwB,MAAM;AAC9B;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,uBAAuB,6BAA6B;AACpD;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,wCAAwC,KAAK;AAC7C,+BAA+B,MAAM,GAAG,wBAAwB,MAAM,GAAG;AACzE;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,wC;;ACvYyD;AACR;AACJ;AACtC;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gDAAgD;;AAEhD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL,qCAAqC,yBAAY;AACjD,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,gEAAa,EAAC;AAC7B,gC;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,eAAe;AAC3D,QAAQ;AACR,6BAA6B,oBAAoB;AACjD;AACA,IAAI;AACJ;AACA;AACwC;AACI;AACC;AACJ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA,wBAAwB,MAAM,GAAG;AACjC,sBAAsB,MAAM,GAAG;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,IAAI,MAAM;;AAEV;AACA;AACA;;AAEA,gCAAgC,yBAAY;AAC5C;AACA;AACA;AACA,8BAA8B;AAC9B,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,0BAA0B,MAAM,GAAG;AACnC;AACA;;AAEA;AACA;AACA;;AAEA,0BAA0B,MAAM,GAAG;AACnC,IAAI,QAAQ;AACZ;AACA;AACA,KAAK;AACL,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA,oEAAoE;;AAEpE;AACA,MAAM,MAAM;AACZ;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEe,sEAAY,4BAA4B,EAAC;AACjC;AACvB,uC;;ACtJA;;AAEA;AACe,uDAAI,EAAC;AACpB,gC;;ACJ2C;AACR;AACc;AACP;;AAE1C,SAAS,aAAK;AACd;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA,GAAG,sBAAsB;;AAEzB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA,eAAe,UAAoB;AACnC;AACA;AACA;;AAEO;AACP,MAAM,EAAE;AACR,WAAW,eAAyB;AACpC,GAAG;AACH,WAAW,eAAyB;AACpC;AACA;AACA,MAAM,gBAAQ;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,UAAU;AACV;AACe,iEAAY,sBAAsB,EAAC;AAC9B;AACpB,mC;;AC7FA;AACA;AACA;AACA;AACA,aAAa,wBAAwB;AACrC;AACA,eAAe,+CAA+C;AAC9D,eAAe,+CAA+C;AAC9D,MAAM;AACN,IAAI;AACuC;AACM;AACP;AACQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,WAAK;AACd;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,GAAG;AACH;;AAEA;AACA,uBAAuB,kBAAkB;AACzC,aAAa,QAAkB;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,SAAG;AACZ;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA,eAAe,MAAM,GAAG;AACxB,gBAAgB,kBAAkB;AAClC,gBAAgB,kBAAkB;AAClC;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,MAAM,cAAQ;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,UAAU;AACV;AACe,+DAAY,gCAAgC,EAAC;AACnC;AACzB,iC;;AClH2C;AACD;AACF;AACxC,MAAM,aAAQ,GAAG,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA,CAAC,EAAE,QAAQ;AACX;AACA,SAAS,QAAQ;AACjB,OAAO,QAAQ;AACf,UAAU;AACV;AACe,8DAAY,8BAA8B,EAAC;AAClC;AACxB,gC;;ACvB2C;AACM;AACP;AACC;AACO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,UAAK;AACd,SAAS,aAAa;AACtB;;AAEA,SAAS,QAAG;AACZ;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA,kBAAkB,UAAoB,CAAC,kBAAkB;AACzD,kBAAkB,UAAoB,CAAC,kBAAkB;AACzD;AACA;AACA,WAAW,MAAM,GAAG,EAAE,aAAa;AACnC,WAAW,MAAM,GAAG,EAAE,aAAa;AACnC;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,EAAE,aAAa;AACf;AACA;;AAEA,MAAM,aAAQ;AACd;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,UAAU;AACV;AACe,qDAAY,8BAA8B,EAAC;AAClC;AACxB,gC;;AC1E2C;AACU;AACZ;AACN;AAC6B;AACtB;;AAE1C,SAAS,kBAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,uBAAuB,eAAe;AACtC,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG,MAAM,MAAM;AACf;AACA;AACA,GAAG;AACH;;AAEA,SAAS,WAAG;AACZ;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH,iBAAiB,WAAW;AAC5B,eAAe,MAAM,GAAG;AACxB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qDAAqD,aAAa;AAClE;AACA;;AAEA,UAAU,EAAE;AACZ;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY,EAAE;AACd,YAAY,EAAE;AACd,eAAe,EAAE;AACjB;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,KAAK;AAC1B,oCAAoC;AACpC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH,wBAAwB,QAAQ,CAAC,eAAe;AAChD,kCAAkC,WAAW;AAC7C;AACA;;AAEA,MAAM,qBAAQ;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,UAAU;AACV;AACe,6DAAY,cAAc,EAAC;AAC1B;AAChB,mC;;AC/KA;AACA;AAC2C;AACR;AACO;AACN;;AAEpC,SAAS,eAAK;AACd;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,EAAE,IAAI;AACN;AACA;AACA;;AAEA,SAAS,aAAG;AACZ;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,kBAAkB,MAAM,GAAG;AAC3B;;AAEA;AACA;;AAEA,QAAQ,EAAE;AACV;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,IAAI;AAC1B;AACA;AACA;;AAEA,MAAM,kBAAQ;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,UAAU;AACV;AACe,0DAAY,sBAAsB,EAAC;AAC9B;AACpB,gC;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,gBAAgB;AACzD,MAAM;AACN,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,MAAM;AACN,IAAI;AACJ;AACA;AACyC;AACE;AACD;AACL;;AAErC,SAAS,gBAAK;AACd;AACA;A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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA,+BADA,CACA;AACA;AACA,GA7OA;AA8OA;AACA;AACA;AACA,KAFA,MAEA;AACA;AACA;;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAFA,MAEA;AACA;AACA;;AACA;AACA;AACA,KAFA,MAEA;AACA;AACA;;AACA;AACA;AACA,KAFA,MAEA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA,GA5QA;AA6QA;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;AACA,KA5BA;AA6BA;AACA;AACA;AACA;AACA,KAjCA;AAkCA;AACA;AACA;AACA,KArCA;AAsCA;AACA;AACA;AACA,KAzCA;AA0CA;AACA;AACA,yBAFA,CAGA;AACA,KA9CA;AA+CA;AACA;AACA,yBAFA,CAGA;AACA,KAnDA;AAoDA;AACA;AACA;AACA;AACA,KAxDA;AAyDA;AACA;AACA,KA3DA;AA4DA;AACA;AACA,KA9DA;AA+DA;AACA;AACA,KAjEA;AAkEA;AACA;AACA,KApEA;AAqEA;AACA;AACA;AACA;;AACA;AAAA;AAAA;AACA;AACA;AACA;AA5EA,GA7QA;AA2VA;AACA,YADA,sBACA;AACA;AACA,mDADA;AAEA,6BAFA;AAGA,mCAHA;AAIA,iDAJA;AAKA,8CALA;AAMA,oCANA;AAOA,6CAPA;AAQA;AARA;AAUA,KAZA;AAaA,yBAbA,mCAaA;AACA;AACA,KAfA;AAgBA,oCAhBA,8CAgBA;AACA;AACA,KAlBA;AAmBA,aAnBA,uBAmBA;AACA;AACA,KArBA;AAsBA,aAtBA,uBAsBA;AACA;AACA,KAxBA;AAyBA,wBAzBA,kCAyBA;AACA;AACA;AACA,OAFA,MAEA;AACA;AACA;AACA;AA/BA,GA3VA;AA4XA;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;AACA,KA7CA;AA8CA,wBA9CA,kCA8CA;AACA;AACA;AACA;;AACA;AAAA;AACA;AACA;AACA,sBACA;AACA;AACA;;AACA;AACA,KA1DA;AA2DA;AACA;AACA,+CAFA,CAGA;;AACA,mCAJA,CAIA;;AACA;AAAA;AAEA;AAAA;AAAA;AAAA;AACA;;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AAAA;AACA;AACA;;AACA;AACA;AACA,aAFA,MAEA;AACA;AACA;;AACA,2FARA,CAUA;;AACA;AACA;AACA;;AACA;AAAA;AACA;AACA;AACA;AACA,wCAJA,CAKA;;AACA;AACA;AACA;AACA;AAnCA,OATA,CA+CA;;;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,KA1IA;AA2IA,cA3IA,sBA2IA,KA3IA,EA2IA;AACA;AACA;AAEA,+CAJA,CAMA;;AACA,oCAPA,CAOA;;AACA;AAAA,yBARA,CAUA;;AACA;AAAA;AAAA;AAAA;;AACA;AACA;AAAA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAFA,MAEA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;AACA;AAAA;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA,8DAVA,CAYA;;;AACA;AACA;AACA,aAFA,MAEA;AACA;AACA;;AACA,4CAlBA,CAmBA;AACA;;AACA;AACA,oCAtBA,CAuBA;;AACA;AACA;;AACA;AAAA;AACA,yEADA,CAEA;;AACA;AACA;AACA,aAFA,MAEA;AACA;AACA;;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAfA,CAgBA;AACA;AACA;;;AACA;AACA;AACA;AAxEA,OAZA,CAuFA;;;AACA;;AACA;AACA;AACA,OAFA,MAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA,KApPA;AAqPA;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,KAjRA;;AAkRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAzRA,kBAyRA,GAzRA,EAyRA,IAzRA,EAyRA;AACA,yCADA,CAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA,qFAXA,CAaA;;AACA;AACA;AAEA;AAAA;AAAA;AAAA;AACA,KA3SA;AA4SA;AACA,gBA7SA,0BA6SA;AACA,0FADA,CAEA;;AACA;AACA,KAjTA;AAkTA;AACA;AACA;AACA;AACA,oBAtTA,4BAsTA,SAtTA,EAsTA,YAtTA,EAsTA,QAtTA,EAsTA;AACA;AACA;AACA,wBACA,gEADA;AAGA,KA5TA;AA8TA;AACA,SA/TA,iBA+TA,GA/TA,EA+TA,UA/TA,EA+TA,UA/TA,EA+TA;AACA;AACA,KAjUA;;AAmUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UA1UA,kBA0UA,MA1UA,EA0UA,KA1UA,EA0UA;AAAA;AACA,yCADA,CAGA;AACA;AACA;;AACA;AACA;;AACA;AACA;AACA,OAFA,MAEA;AACA;AACA,OAZA,CAcA;;;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA,KA5VA;AA6VA;AACA;;AACA;AACA;AACA;AACA,KAlWA;AAmWA;AACA;AACA,KArWA;AAsWA;AACA;;AACA;AACA;;AACA;AACA;AACA;AACA;;AACA;AACA;AACA,yCADA;AAEA;AAFA,WAGA,eAHA;;AAKA;AACA;;AACA;AACA;AACA;AACA;AACA,WAFA;AAGA;AACA,OAdA,MAcA;AACA;AACA;AADA;AAGA;AACA,KAjYA;AAkYA;AACA;;AACA;AACA;;AACA;AACA;AACA;AACA;;AACA;AACA;AACA,oEAFA,CAIA;AACA;;AAEA;AACA;AACA;AACA,uBADA;AAEA,2EAFA;AAGA,4EAHA;AAIA;AAJA,WAFA;AAQA,2CARA;AASA;AACA;AACA,0DADA;AAEA;AAFA,aADA;AAKA;AACA,0DADA;AAEA;AAFA;AALA;AATA,WAmBA,iBAnBA;;AAsBA;AACA,4BACA;AACA;AADA,YADA;AAKA;;AAEA;;AACA;AACA;AACA,2BACA,EADA,CACA,kCADA,EACA;AACA;AACA,WAHA;AAIA;AACA,OA7CA,MA6CA;AACA;AACA;AADA;AAGA;AACA,KA5bA;AA6bA;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;AAleA;AA5XA,G;;ACtGkU,CAAgB,gHAAG,EAAC,C;;;;;;;;ACA/P;AAC3B;AACL;AACa;;;AAGpE;AAC0F;AAC1F,gBAAgB,8CAAU;AAC1B,EAAE,2CAAM;AACR,EAAE,MAAM;AACR,EAAE,eAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEe,yF;;;;;;;ACnBf;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;AAC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A;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;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;AACA;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;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;;AAEA;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;;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;AACA;;;;;;;;AC/pBA;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;AACA;;;;;;;;ACFA;AACA,UAAU;AACV;;;;;;;;;ACFa;;AAEb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;AACA;;;;;;;;ACHA;AACA;AACA;AACA;;;;;;;;;ACHA;AAAA;AAAA;;;;;;;;;ACAa;;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;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,6CAA6C;AACtG;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;ACvUa;AACb,sBAAsB,mBAAO,CAAC,MAAc;AAC5C,iBAAiB,mBAAO,CAAC,MAAkB;;AAE3C;AACA;AACA;AACA;;;;;;;;ACPA;;AAEA;;AAEA;AACA;AACA,wDAAwD;;AAExD;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,mBAAmB;AAChC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;;;;;;;ACnCD;AACA,cAAc,mBAAO,CAAC,MAAW;;AAEjC,0CAA0C,SAAS,mBAAO,CAAC,MAAkB,GAAG;;;;;;;;ACHhF,iBAAiB,mBAAO,CAAC,MAAW;;;;;;;;ACApC,eAAe,mBAAO,CAAC,MAAW;AAClC;;;;;;;;;;;;;;;;;;ACDA;;AAEA;AACA,MAAM,IAAuC;AAC7C,IAAI,mBAAO,CAAC,MAAyB;AACrC;;AAEA;AACA;AACA,IAAI,qBAAuB;AAC3B;AACA;;AAEA;AACe,sDAAI;;;;;;ACdK;AACA;AACT,4GAAG;AACI;;;;;;;;ACHtB;AACA,cAAc,mBAAO,CAAC,MAAW;AACjC,gBAAgB,mBAAO,CAAC,MAAW;;AAEnC;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACRD;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","'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","// 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!./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=361da5e4&\"\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","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@match logic\nrequire('./_fix-re-wks')('match', 1, function (defined, MATCH, $match, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[MATCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative($match, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n if (!rx.global) return regExpExec(rx, S);\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n","/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nimport listToStyles from './listToStyles'\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of \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&\"","import { render, staticRenderFns } from \"./GridItem.vue?vue&type=template&id=e7489122&\"\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","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","\"use strict\";\n\nvar utils = require(\"./utils\");\n\nmodule.exports = function batchProcessorMaker(options) {\n options = options || {};\n var reporter = options.reporter;\n var asyncProcess = utils.getOption(options, \"async\", true);\n var autoProcess = utils.getOption(options, \"auto\", true);\n\n if(autoProcess && !asyncProcess) {\n reporter && reporter.warn(\"Invalid options combination. auto=true and async=false is invalid. Setting async=true.\");\n asyncProcess = true;\n }\n\n var batch = Batch();\n var asyncFrameHandler;\n var isProcessing = false;\n\n function addFunction(level, fn) {\n if(!isProcessing && autoProcess && asyncProcess && batch.size() === 0) {\n // Since this is async, it is guaranteed to be executed after that the fn is added to the batch.\n // This needs to be done before, since we're checking the size of the batch to be 0.\n processBatchAsync();\n }\n\n batch.add(level, fn);\n }\n\n function processBatch() {\n // Save the current batch, and create a new batch so that incoming functions are not added into the currently processing batch.\n // Continue processing until the top-level batch is empty (functions may be added to the new batch while processing, and so on).\n isProcessing = true;\n while (batch.size()) {\n var processingBatch = batch;\n batch = Batch();\n processingBatch.process();\n }\n isProcessing = false;\n }\n\n function forceProcessBatch(localAsyncProcess) {\n if (isProcessing) {\n return;\n }\n\n if(localAsyncProcess === undefined) {\n localAsyncProcess = asyncProcess;\n }\n\n if(asyncFrameHandler) {\n cancelFrame(asyncFrameHandler);\n asyncFrameHandler = null;\n }\n\n if(localAsyncProcess) {\n processBatchAsync();\n } else {\n processBatch();\n }\n }\n\n function processBatchAsync() {\n asyncFrameHandler = requestFrame(processBatch);\n }\n\n function clearBatch() {\n batch = {};\n batchSize = 0;\n topLevel = 0;\n bottomLevel = 0;\n }\n\n function cancelFrame(listener) {\n // var cancel = window.cancelAnimationFrame || window.mozCancelAnimationFrame || window.webkitCancelAnimationFrame || window.clearTimeout;\n var cancel = clearTimeout;\n return cancel(listener);\n }\n\n function requestFrame(callback) {\n // var raf = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function(fn) { return window.setTimeout(fn, 20); };\n var raf = function(fn) { return setTimeout(fn, 0); };\n return raf(callback);\n }\n\n return {\n add: addFunction,\n force: forceProcessBatch\n };\n};\n\nfunction Batch() {\n var batch = {};\n var size = 0;\n var topLevel = 0;\n var bottomLevel = 0;\n\n function add(level, fn) {\n if(!fn) {\n fn = level;\n level = 0;\n }\n\n if(level > topLevel) {\n topLevel = level;\n } else if(level < bottomLevel) {\n bottomLevel = level;\n }\n\n if(!batch[level]) {\n batch[level] = [];\n }\n\n batch[level].push(fn);\n size++;\n }\n\n function process() {\n for(var level = bottomLevel; level <= topLevel; level++) {\n var fns = batch[level];\n\n for(var i = 0; i < fns.length; i++) {\n var fn = fns[i];\n fn();\n }\n }\n }\n\n function getSize() {\n return size;\n }\n\n return {\n add: add,\n process: process,\n size: getSize\n };\n}\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","'use strict';\nvar global = require('./_global');\nvar has = require('./_has');\nvar cof = require('./_cof');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar toPrimitive = require('./_to-primitive');\nvar fails = require('./_fails');\nvar gOPN = require('./_object-gopn').f;\nvar gOPD = require('./_object-gopd').f;\nvar dP = require('./_object-dp').f;\nvar $trim = require('./_string-trim').trim;\nvar NUMBER = 'Number';\nvar $Number = global[NUMBER];\nvar Base = $Number;\nvar proto = $Number.prototype;\n// Opera ~12 has broken Object#toString\nvar BROKEN_COF = cof(require('./_object-create')(proto)) == NUMBER;\nvar TRIM = 'trim' in String.prototype;\n\n// 7.1.3 ToNumber(argument)\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n if (typeof it == 'string' && it.length > 2) {\n it = TRIM ? it.trim() : $trim(it, 3);\n var first = it.charCodeAt(0);\n var third, radix, maxCode;\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i\n default: return +it;\n }\n for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {\n code = digits.charCodeAt(i);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nif (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {\n $Number = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var that = this;\n return that instanceof $Number\n // check on 1..constructor(foo) case\n && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)\n ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);\n };\n for (var keys = require('./_descriptors') ? gOPN(Base) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES6 (in case, if modules with ES6 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(Base, key = keys[j]) && !has($Number, key)) {\n dP($Number, key, gOPD(Base, key));\n }\n }\n $Number.prototype = proto;\n proto.constructor = $Number;\n require('./_redefine')(global, NUMBER, $Number);\n}\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/**\n * Resize detection strategy that injects divs to elements in order to detect resize events on scroll events.\n * Heavily inspired by: https://github.com/marcj/css-element-queries/blob/master/src/ResizeSensor.js\n */\n\n\"use strict\";\n\nvar forEach = require(\"../collection-utils\").forEach;\n\nmodule.exports = function(options) {\n options = options || {};\n var reporter = options.reporter;\n var batchProcessor = options.batchProcessor;\n var getState = options.stateHandler.getState;\n var hasState = options.stateHandler.hasState;\n var idHandler = options.idHandler;\n\n if (!batchProcessor) {\n throw new Error(\"Missing required dependency: batchProcessor\");\n }\n\n if (!reporter) {\n throw new Error(\"Missing required dependency: reporter.\");\n }\n\n //TODO: Could this perhaps be done at installation time?\n var scrollbarSizes = getScrollbarSizes();\n\n var styleId = \"erd_scroll_detection_scrollbar_style\";\n var detectionContainerClass = \"erd_scroll_detection_container\";\n\n function initDocument(targetDocument) {\n // Inject the scrollbar styling that prevents them from appearing sometimes in Chrome.\n // The injected container needs to have a class, so that it may be styled with CSS (pseudo elements).\n injectScrollStyle(targetDocument, styleId, detectionContainerClass);\n }\n\n initDocument(window.document);\n\n function buildCssTextString(rules) {\n var seperator = options.important ? \" !important; \" : \"; \";\n\n return (rules.join(seperator) + seperator).trim();\n }\n\n function getScrollbarSizes() {\n var width = 500;\n var height = 500;\n\n var child = document.createElement(\"div\");\n child.style.cssText = buildCssTextString([\"position: absolute\", \"width: \" + width*2 + \"px\", \"height: \" + height*2 + \"px\", \"visibility: hidden\", \"margin: 0\", \"padding: 0\"]);\n\n var container = document.createElement(\"div\");\n container.style.cssText = buildCssTextString([\"position: absolute\", \"width: \" + width + \"px\", \"height: \" + height + \"px\", \"overflow: scroll\", \"visibility: none\", \"top: \" + -width*3 + \"px\", \"left: \" + -height*3 + \"px\", \"visibility: hidden\", \"margin: 0\", \"padding: 0\"]);\n\n container.appendChild(child);\n\n document.body.insertBefore(container, document.body.firstChild);\n\n var widthSize = width - container.clientWidth;\n var heightSize = height - container.clientHeight;\n\n document.body.removeChild(container);\n\n return {\n width: widthSize,\n height: heightSize\n };\n }\n\n function injectScrollStyle(targetDocument, styleId, containerClass) {\n function injectStyle(style, method) {\n method = method || function (element) {\n targetDocument.head.appendChild(element);\n };\n\n var styleElement = targetDocument.createElement(\"style\");\n styleElement.innerHTML = style;\n styleElement.id = styleId;\n method(styleElement);\n return styleElement;\n }\n\n if (!targetDocument.getElementById(styleId)) {\n var containerAnimationClass = containerClass + \"_animation\";\n var containerAnimationActiveClass = containerClass + \"_animation_active\";\n var style = \"/* Created by the element-resize-detector library. */\\n\";\n style += \".\" + containerClass + \" > div::-webkit-scrollbar { \" + buildCssTextString([\"display: none\"]) + \" }\\n\\n\";\n style += \".\" + containerAnimationActiveClass + \" { \" + buildCssTextString([\"-webkit-animation-duration: 0.1s\", \"animation-duration: 0.1s\", \"-webkit-animation-name: \" + containerAnimationClass, \"animation-name: \" + containerAnimationClass]) + \" }\\n\";\n style += \"@-webkit-keyframes \" + containerAnimationClass + \" { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }\\n\";\n style += \"@keyframes \" + containerAnimationClass + \" { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }\";\n injectStyle(style);\n }\n }\n\n function addAnimationClass(element) {\n element.className += \" \" + detectionContainerClass + \"_animation_active\";\n }\n\n function addEvent(el, name, cb) {\n if (el.addEventListener) {\n el.addEventListener(name, cb);\n } else if(el.attachEvent) {\n el.attachEvent(\"on\" + name, cb);\n } else {\n return reporter.error(\"[scroll] Don't know how to add event listeners.\");\n }\n }\n\n function removeEvent(el, name, cb) {\n if (el.removeEventListener) {\n el.removeEventListener(name, cb);\n } else if(el.detachEvent) {\n el.detachEvent(\"on\" + name, cb);\n } else {\n return reporter.error(\"[scroll] Don't know how to remove event listeners.\");\n }\n }\n\n function getExpandElement(element) {\n return getState(element).container.childNodes[0].childNodes[0].childNodes[0];\n }\n\n function getShrinkElement(element) {\n return getState(element).container.childNodes[0].childNodes[0].childNodes[1];\n }\n\n /**\n * Adds a resize event listener to the element.\n * @public\n * @param {element} element The element that should have the listener added.\n * @param {function} listener The listener callback to be called for each resize event of the element. The element will be given as a parameter to the listener callback.\n */\n function addListener(element, listener) {\n var listeners = getState(element).listeners;\n\n if (!listeners.push) {\n throw new Error(\"Cannot add listener to an element that is not detectable.\");\n }\n\n getState(element).listeners.push(listener);\n }\n\n /**\n * Makes an element detectable and ready to be listened for resize events. Will call the callback when the element is ready to be listened for resize changes.\n * @private\n * @param {object} options Optional options object.\n * @param {element} element The element to make detectable\n * @param {function} callback The callback to be called when the element is ready to be listened for resize changes. Will be called with the element as first parameter.\n */\n function makeDetectable(options, element, callback) {\n if (!callback) {\n callback = element;\n element = options;\n options = null;\n }\n\n options = options || {};\n\n function debug() {\n if (options.debug) {\n var args = Array.prototype.slice.call(arguments);\n args.unshift(idHandler.get(element), \"Scroll: \");\n if (reporter.log.apply) {\n reporter.log.apply(null, args);\n } else {\n for (var i = 0; i < args.length; i++) {\n reporter.log(args[i]);\n }\n }\n }\n }\n\n function isDetached(element) {\n function isInDocument(element) {\n var isInShadowRoot = element.getRootNode && element.getRootNode().contains(element);\n return element === element.ownerDocument.body || element.ownerDocument.body.contains(element) || isInShadowRoot;\n }\n\n if (!isInDocument(element)) {\n return true;\n }\n\n // FireFox returns null style in hidden iframes. See https://github.com/wnr/element-resize-detector/issues/68 and https://bugzilla.mozilla.org/show_bug.cgi?id=795520\n if (window.getComputedStyle(element) === null) {\n return true;\n }\n\n return false;\n }\n\n function isUnrendered(element) {\n // Check the absolute positioned container since the top level container is display: inline.\n var container = getState(element).container.childNodes[0];\n var style = window.getComputedStyle(container);\n return !style.width || style.width.indexOf(\"px\") === -1; //Can only compute pixel value when rendered.\n }\n\n function getStyle() {\n // Some browsers only force layouts when actually reading the style properties of the style object, so make sure that they are all read here,\n // so that the user of the function can be sure that it will perform the layout here, instead of later (important for batching).\n var elementStyle = window.getComputedStyle(element);\n var style = {};\n style.position = elementStyle.position;\n style.width = element.offsetWidth;\n style.height = element.offsetHeight;\n style.top = elementStyle.top;\n style.right = elementStyle.right;\n style.bottom = elementStyle.bottom;\n style.left = elementStyle.left;\n style.widthCSS = elementStyle.width;\n style.heightCSS = elementStyle.height;\n return style;\n }\n\n function storeStartSize() {\n var style = getStyle();\n getState(element).startSize = {\n width: style.width,\n height: style.height\n };\n debug(\"Element start size\", getState(element).startSize);\n }\n\n function initListeners() {\n getState(element).listeners = [];\n }\n\n function storeStyle() {\n debug(\"storeStyle invoked.\");\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n var style = getStyle();\n getState(element).style = style;\n }\n\n function storeCurrentSize(element, width, height) {\n getState(element).lastWidth = width;\n getState(element).lastHeight = height;\n }\n\n function getExpandChildElement(element) {\n return getExpandElement(element).childNodes[0];\n }\n\n function getWidthOffset() {\n return 2 * scrollbarSizes.width + 1;\n }\n\n function getHeightOffset() {\n return 2 * scrollbarSizes.height + 1;\n }\n\n function getExpandWidth(width) {\n return width + 10 + getWidthOffset();\n }\n\n function getExpandHeight(height) {\n return height + 10 + getHeightOffset();\n }\n\n function getShrinkWidth(width) {\n return width * 2 + getWidthOffset();\n }\n\n function getShrinkHeight(height) {\n return height * 2 + getHeightOffset();\n }\n\n function positionScrollbars(element, width, height) {\n var expand = getExpandElement(element);\n var shrink = getShrinkElement(element);\n var expandWidth = getExpandWidth(width);\n var expandHeight = getExpandHeight(height);\n var shrinkWidth = getShrinkWidth(width);\n var shrinkHeight = getShrinkHeight(height);\n expand.scrollLeft = expandWidth;\n expand.scrollTop = expandHeight;\n shrink.scrollLeft = shrinkWidth;\n shrink.scrollTop = shrinkHeight;\n }\n\n function injectContainerElement() {\n var container = getState(element).container;\n\n if (!container) {\n container = document.createElement(\"div\");\n container.className = detectionContainerClass;\n container.style.cssText = buildCssTextString([\"visibility: hidden\", \"display: inline\", \"width: 0px\", \"height: 0px\", \"z-index: -1\", \"overflow: hidden\", \"margin: 0\", \"padding: 0\"]);\n getState(element).container = container;\n addAnimationClass(container);\n element.appendChild(container);\n\n var onAnimationStart = function () {\n getState(element).onRendered && getState(element).onRendered();\n };\n\n addEvent(container, \"animationstart\", onAnimationStart);\n\n // Store the event handler here so that they may be removed when uninstall is called.\n // See uninstall function for an explanation why it is needed.\n getState(element).onAnimationStart = onAnimationStart;\n }\n\n return container;\n }\n\n function injectScrollElements() {\n function alterPositionStyles() {\n var style = getState(element).style;\n\n if(style.position === \"static\") {\n element.style.setProperty(\"position\", \"relative\",options.important ? \"important\" : \"\");\n\n var removeRelativeStyles = function(reporter, element, style, property) {\n function getNumericalValue(value) {\n return value.replace(/[^-\\d\\.]/g, \"\");\n }\n\n var value = style[property];\n\n if(value !== \"auto\" && getNumericalValue(value) !== \"0\") {\n reporter.warn(\"An element that is positioned static has style.\" + property + \"=\" + value + \" which is ignored due to the static positioning. The element will need to be positioned relative, so the style.\" + property + \" will be set to 0. Element: \", element);\n element.style[property] = 0;\n }\n };\n\n //Check so that there are no accidental styles that will make the element styled differently now that is is relative.\n //If there are any, set them to 0 (this should be okay with the user since the style properties did nothing before [since the element was positioned static] anyway).\n removeRelativeStyles(reporter, element, style, \"top\");\n removeRelativeStyles(reporter, element, style, \"right\");\n removeRelativeStyles(reporter, element, style, \"bottom\");\n removeRelativeStyles(reporter, element, style, \"left\");\n }\n }\n\n function getLeftTopBottomRightCssText(left, top, bottom, right) {\n left = (!left ? \"0\" : (left + \"px\"));\n top = (!top ? \"0\" : (top + \"px\"));\n bottom = (!bottom ? \"0\" : (bottom + \"px\"));\n right = (!right ? \"0\" : (right + \"px\"));\n\n return [\"left: \" + left, \"top: \" + top, \"right: \" + right, \"bottom: \" + bottom];\n }\n\n debug(\"Injecting elements\");\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n alterPositionStyles();\n\n var rootContainer = getState(element).container;\n\n if (!rootContainer) {\n rootContainer = injectContainerElement();\n }\n\n // Due to this WebKit bug https://bugs.webkit.org/show_bug.cgi?id=80808 (currently fixed in Blink, but still present in WebKit browsers such as Safari),\n // we need to inject two containers, one that is width/height 100% and another that is left/top -1px so that the final container always is 1x1 pixels bigger than\n // the targeted element.\n // When the bug is resolved, \"containerContainer\" may be removed.\n\n // The outer container can occasionally be less wide than the targeted when inside inline elements element in WebKit (see https://bugs.webkit.org/show_bug.cgi?id=152980).\n // This should be no problem since the inner container either way makes sure the injected scroll elements are at least 1x1 px.\n\n var scrollbarWidth = scrollbarSizes.width;\n var scrollbarHeight = scrollbarSizes.height;\n var containerContainerStyle = buildCssTextString([\"position: absolute\", \"flex: none\", \"overflow: hidden\", \"z-index: -1\", \"visibility: hidden\", \"width: 100%\", \"height: 100%\", \"left: 0px\", \"top: 0px\"]);\n var containerStyle = buildCssTextString([\"position: absolute\", \"flex: none\", \"overflow: hidden\", \"z-index: -1\", \"visibility: hidden\"].concat(getLeftTopBottomRightCssText(-(1 + scrollbarWidth), -(1 + scrollbarHeight), -scrollbarHeight, -scrollbarWidth)));\n var expandStyle = buildCssTextString([\"position: absolute\", \"flex: none\", \"overflow: scroll\", \"z-index: -1\", \"visibility: hidden\", \"width: 100%\", \"height: 100%\"]);\n var shrinkStyle = buildCssTextString([\"position: absolute\", \"flex: none\", \"overflow: scroll\", \"z-index: -1\", \"visibility: hidden\", \"width: 100%\", \"height: 100%\"]);\n var expandChildStyle = buildCssTextString([\"position: absolute\", \"left: 0\", \"top: 0\"]);\n var shrinkChildStyle = buildCssTextString([\"position: absolute\", \"width: 200%\", \"height: 200%\"]);\n\n var containerContainer = document.createElement(\"div\");\n var container = document.createElement(\"div\");\n var expand = document.createElement(\"div\");\n var expandChild = document.createElement(\"div\");\n var shrink = document.createElement(\"div\");\n var shrinkChild = document.createElement(\"div\");\n\n // Some browsers choke on the resize system being rtl, so force it to ltr. https://github.com/wnr/element-resize-detector/issues/56\n // However, dir should not be set on the top level container as it alters the dimensions of the target element in some browsers.\n containerContainer.dir = \"ltr\";\n\n containerContainer.style.cssText = containerContainerStyle;\n containerContainer.className = detectionContainerClass;\n container.className = detectionContainerClass;\n container.style.cssText = containerStyle;\n expand.style.cssText = expandStyle;\n expandChild.style.cssText = expandChildStyle;\n shrink.style.cssText = shrinkStyle;\n shrinkChild.style.cssText = shrinkChildStyle;\n\n expand.appendChild(expandChild);\n shrink.appendChild(shrinkChild);\n container.appendChild(expand);\n container.appendChild(shrink);\n containerContainer.appendChild(container);\n rootContainer.appendChild(containerContainer);\n\n function onExpandScroll() {\n var state = getState(element);\n if (state && state.onExpand) {\n state.onExpand();\n } else {\n debug(\"Aborting expand scroll handler: element has been uninstalled\");\n }\n }\n\n function onShrinkScroll() {\n var state = getState(element);\n if (state && state.onShrink) {\n state.onShrink();\n } else {\n debug(\"Aborting shrink scroll handler: element has been uninstalled\");\n }\n }\n\n addEvent(expand, \"scroll\", onExpandScroll);\n addEvent(shrink, \"scroll\", onShrinkScroll);\n\n // Store the event handlers here so that they may be removed when uninstall is called.\n // See uninstall function for an explanation why it is needed.\n getState(element).onExpandScroll = onExpandScroll;\n getState(element).onShrinkScroll = onShrinkScroll;\n }\n\n function registerListenersAndPositionElements() {\n function updateChildSizes(element, width, height) {\n var expandChild = getExpandChildElement(element);\n var expandWidth = getExpandWidth(width);\n var expandHeight = getExpandHeight(height);\n expandChild.style.setProperty(\"width\", expandWidth + \"px\", options.important ? \"important\" : \"\");\n expandChild.style.setProperty(\"height\", expandHeight + \"px\", options.important ? \"important\" : \"\");\n }\n\n function updateDetectorElements(done) {\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n // Check whether the size has actually changed since last time the algorithm ran. If not, some steps may be skipped.\n var sizeChanged = width !== getState(element).lastWidth || height !== getState(element).lastHeight;\n\n debug(\"Storing current size\", width, height);\n\n // Store the size of the element sync here, so that multiple scroll events may be ignored in the event listeners.\n // Otherwise the if-check in handleScroll is useless.\n storeCurrentSize(element, width, height);\n\n // Since we delay the processing of the batch, there is a risk that uninstall has been called before the batch gets to execute.\n // Since there is no way to cancel the fn executions, we need to add an uninstall guard to all fns of the batch.\n\n batchProcessor.add(0, function performUpdateChildSizes() {\n if (!sizeChanged) {\n return;\n }\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n if (!areElementsInjected()) {\n debug(\"Aborting because element container has not been initialized\");\n return;\n }\n\n if (options.debug) {\n var w = element.offsetWidth;\n var h = element.offsetHeight;\n\n if (w !== width || h !== height) {\n reporter.warn(idHandler.get(element), \"Scroll: Size changed before updating detector elements.\");\n }\n }\n\n updateChildSizes(element, width, height);\n });\n\n batchProcessor.add(1, function updateScrollbars() {\n // This function needs to be invoked event though the size is unchanged. The element could have been resized very quickly and then\n // been restored to the original size, which will have changed the scrollbar positions.\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n if (!areElementsInjected()) {\n debug(\"Aborting because element container has not been initialized\");\n return;\n }\n\n positionScrollbars(element, width, height);\n });\n\n if (sizeChanged && done) {\n batchProcessor.add(2, function () {\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n if (!areElementsInjected()) {\n debug(\"Aborting because element container has not been initialized\");\n return;\n }\n\n done();\n });\n }\n }\n\n function areElementsInjected() {\n return !!getState(element).container;\n }\n\n function notifyListenersIfNeeded() {\n function isFirstNotify() {\n return getState(element).lastNotifiedWidth === undefined;\n }\n\n debug(\"notifyListenersIfNeeded invoked\");\n\n var state = getState(element);\n\n // Don't notify if the current size is the start size, and this is the first notification.\n if (isFirstNotify() && state.lastWidth === state.startSize.width && state.lastHeight === state.startSize.height) {\n return debug(\"Not notifying: Size is the same as the start size, and there has been no notification yet.\");\n }\n\n // Don't notify if the size already has been notified.\n if (state.lastWidth === state.lastNotifiedWidth && state.lastHeight === state.lastNotifiedHeight) {\n return debug(\"Not notifying: Size already notified\");\n }\n\n\n debug(\"Current size not notified, notifying...\");\n state.lastNotifiedWidth = state.lastWidth;\n state.lastNotifiedHeight = state.lastHeight;\n forEach(getState(element).listeners, function (listener) {\n listener(element);\n });\n }\n\n function handleRender() {\n debug(\"startanimation triggered.\");\n\n if (isUnrendered(element)) {\n debug(\"Ignoring since element is still unrendered...\");\n return;\n }\n\n debug(\"Element rendered.\");\n var expand = getExpandElement(element);\n var shrink = getShrinkElement(element);\n if (expand.scrollLeft === 0 || expand.scrollTop === 0 || shrink.scrollLeft === 0 || shrink.scrollTop === 0) {\n debug(\"Scrollbars out of sync. Updating detector elements...\");\n updateDetectorElements(notifyListenersIfNeeded);\n }\n }\n\n function handleScroll() {\n debug(\"Scroll detected.\");\n\n if (isUnrendered(element)) {\n // Element is still unrendered. Skip this scroll event.\n debug(\"Scroll event fired while unrendered. Ignoring...\");\n return;\n }\n\n updateDetectorElements(notifyListenersIfNeeded);\n }\n\n debug(\"registerListenersAndPositionElements invoked.\");\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n getState(element).onRendered = handleRender;\n getState(element).onExpand = handleScroll;\n getState(element).onShrink = handleScroll;\n\n var style = getState(element).style;\n updateChildSizes(element, style.width, style.height);\n }\n\n function finalizeDomMutation() {\n debug(\"finalizeDomMutation invoked.\");\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n var style = getState(element).style;\n storeCurrentSize(element, style.width, style.height);\n positionScrollbars(element, style.width, style.height);\n }\n\n function ready() {\n callback(element);\n }\n\n function install() {\n debug(\"Installing...\");\n initListeners();\n storeStartSize();\n\n batchProcessor.add(0, storeStyle);\n batchProcessor.add(1, injectScrollElements);\n batchProcessor.add(2, registerListenersAndPositionElements);\n batchProcessor.add(3, finalizeDomMutation);\n batchProcessor.add(4, ready);\n }\n\n debug(\"Making detectable...\");\n\n if (isDetached(element)) {\n debug(\"Element is detached\");\n\n injectContainerElement();\n\n debug(\"Waiting until element is attached...\");\n\n getState(element).onRendered = function () {\n debug(\"Element is now attached\");\n install();\n };\n } else {\n install();\n }\n }\n\n function uninstall(element) {\n var state = getState(element);\n\n if (!state) {\n // Uninstall has been called on a non-erd element.\n return;\n }\n\n // Uninstall may have been called in the following scenarios:\n // (1) Right between the sync code and async batch (here state.busy = true, but nothing have been registered or injected).\n // (2) In the ready callback of the last level of the batch by another element (here, state.busy = true, but all the stuff has been injected).\n // (3) After the installation process (here, state.busy = false and all the stuff has been injected).\n // So to be on the safe side, let's check for each thing before removing.\n\n // We need to remove the event listeners, because otherwise the event might fire on an uninstall element which results in an error when trying to get the state of the element.\n state.onExpandScroll && removeEvent(getExpandElement(element), \"scroll\", state.onExpandScroll);\n state.onShrinkScroll && removeEvent(getShrinkElement(element), \"scroll\", state.onShrinkScroll);\n state.onAnimationStart && removeEvent(state.container, \"animationstart\", state.onAnimationStart);\n\n state.container && element.removeChild(state.container);\n }\n\n return {\n makeDetectable: makeDetectable,\n addListener: addListener,\n uninstall: uninstall,\n initDocument: initDocument\n };\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","\"use strict\";\n\nvar prop = \"_erd\";\n\nfunction initState(element) {\n element[prop] = {};\n return getState(element);\n}\n\nfunction getState(element) {\n return element[prop];\n}\n\nfunction cleanState(element) {\n delete element[prop];\n}\n\nmodule.exports = {\n initState: initState,\n getState: getState,\n cleanState: cleanState\n};\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","export * from \"-!../../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&\"","\"use strict\";\n\nvar forEach = require(\"./collection-utils\").forEach;\nvar elementUtilsMaker = require(\"./element-utils\");\nvar listenerHandlerMaker = require(\"./listener-handler\");\nvar idGeneratorMaker = require(\"./id-generator\");\nvar idHandlerMaker = require(\"./id-handler\");\nvar reporterMaker = require(\"./reporter\");\nvar browserDetector = require(\"./browser-detector\");\nvar batchProcessorMaker = require(\"batch-processor\");\nvar stateHandler = require(\"./state-handler\");\n\n//Detection strategies.\nvar objectStrategyMaker = require(\"./detection-strategy/object.js\");\nvar scrollStrategyMaker = require(\"./detection-strategy/scroll.js\");\n\nfunction isCollection(obj) {\n return Array.isArray(obj) || obj.length !== undefined;\n}\n\nfunction toArray(collection) {\n if (!Array.isArray(collection)) {\n var array = [];\n forEach(collection, function (obj) {\n array.push(obj);\n });\n return array;\n } else {\n return collection;\n }\n}\n\nfunction isElement(obj) {\n return obj && obj.nodeType === 1;\n}\n\n/**\n * @typedef idHandler\n * @type {object}\n * @property {function} get Gets the resize detector id of the element.\n * @property {function} set Generate and sets the resize detector id of the element.\n */\n\n/**\n * @typedef Options\n * @type {object}\n * @property {boolean} callOnAdd Determines if listeners should be called when they are getting added.\n Default is true. If true, the listener is guaranteed to be called when it has been added.\n If false, the listener will not be guarenteed to be called when it has been added (does not prevent it from being called).\n * @property {idHandler} idHandler A custom id handler that is responsible for generating, setting and retrieving id's for elements.\n If not provided, a default id handler will be used.\n * @property {reporter} reporter A custom reporter that handles reporting logs, warnings and errors.\n If not provided, a default id handler will be used.\n If set to false, then nothing will be reported.\n * @property {boolean} debug If set to true, the the system will report debug messages as default for the listenTo method.\n */\n\n/**\n * Creates an element resize detector instance.\n * @public\n * @param {Options?} options Optional global options object that will decide how this instance will work.\n */\nmodule.exports = function(options) {\n options = options || {};\n\n //idHandler is currently not an option to the listenTo function, so it should not be added to globalOptions.\n var idHandler;\n\n if (options.idHandler) {\n // To maintain compatability with idHandler.get(element, readonly), make sure to wrap the given idHandler\n // so that readonly flag always is true when it's used here. This may be removed next major version bump.\n idHandler = {\n get: function (element) { return options.idHandler.get(element, true); },\n set: options.idHandler.set\n };\n } else {\n var idGenerator = idGeneratorMaker();\n var defaultIdHandler = idHandlerMaker({\n idGenerator: idGenerator,\n stateHandler: stateHandler\n });\n idHandler = defaultIdHandler;\n }\n\n //reporter is currently not an option to the listenTo function, so it should not be added to globalOptions.\n var reporter = options.reporter;\n\n if(!reporter) {\n //If options.reporter is false, then the reporter should be quiet.\n var quiet = reporter === false;\n reporter = reporterMaker(quiet);\n }\n\n //batchProcessor is currently not an option to the listenTo function, so it should not be added to globalOptions.\n var batchProcessor = getOption(options, \"batchProcessor\", batchProcessorMaker({ reporter: reporter }));\n\n //Options to be used as default for the listenTo function.\n var globalOptions = {};\n globalOptions.callOnAdd = !!getOption(options, \"callOnAdd\", true);\n globalOptions.debug = !!getOption(options, \"debug\", false);\n\n var eventListenerHandler = listenerHandlerMaker(idHandler);\n var elementUtils = elementUtilsMaker({\n stateHandler: stateHandler\n });\n\n //The detection strategy to be used.\n var detectionStrategy;\n var desiredStrategy = getOption(options, \"strategy\", \"object\");\n var importantCssRules = getOption(options, \"important\", false);\n var strategyOptions = {\n reporter: reporter,\n batchProcessor: batchProcessor,\n stateHandler: stateHandler,\n idHandler: idHandler,\n important: importantCssRules\n };\n\n if(desiredStrategy === \"scroll\") {\n if (browserDetector.isLegacyOpera()) {\n reporter.warn(\"Scroll strategy is not supported on legacy Opera. Changing to object strategy.\");\n desiredStrategy = \"object\";\n } else if (browserDetector.isIE(9)) {\n reporter.warn(\"Scroll strategy is not supported on IE9. Changing to object strategy.\");\n desiredStrategy = \"object\";\n }\n }\n\n if(desiredStrategy === \"scroll\") {\n detectionStrategy = scrollStrategyMaker(strategyOptions);\n } else if(desiredStrategy === \"object\") {\n detectionStrategy = objectStrategyMaker(strategyOptions);\n } else {\n throw new Error(\"Invalid strategy name: \" + desiredStrategy);\n }\n\n //Calls can be made to listenTo with elements that are still being installed.\n //Also, same elements can occur in the elements list in the listenTo function.\n //With this map, the ready callbacks can be synchronized between the calls\n //so that the ready callback can always be called when an element is ready - even if\n //it wasn't installed from the function itself.\n var onReadyCallbacks = {};\n\n /**\n * Makes the given elements resize-detectable and starts listening to resize events on the elements. Calls the event callback for each event for each element.\n * @public\n * @param {Options?} options Optional options object. These options will override the global options. Some options may not be overriden, such as idHandler.\n * @param {element[]|element} elements The given array of elements to detect resize events of. Single element is also valid.\n * @param {function} listener The callback to be executed for each resize event for each element.\n */\n function listenTo(options, elements, listener) {\n function onResizeCallback(element) {\n var listeners = eventListenerHandler.get(element);\n forEach(listeners, function callListenerProxy(listener) {\n listener(element);\n });\n }\n\n function addListener(callOnAdd, element, listener) {\n eventListenerHandler.add(element, listener);\n\n if(callOnAdd) {\n listener(element);\n }\n }\n\n //Options object may be omitted.\n if(!listener) {\n listener = elements;\n elements = options;\n options = {};\n }\n\n if(!elements) {\n throw new Error(\"At least one element required.\");\n }\n\n if(!listener) {\n throw new Error(\"Listener required.\");\n }\n\n if (isElement(elements)) {\n // A single element has been passed in.\n elements = [elements];\n } else if (isCollection(elements)) {\n // Convert collection to array for plugins.\n // TODO: May want to check so that all the elements in the collection are valid elements.\n elements = toArray(elements);\n } else {\n return reporter.error(\"Invalid arguments. Must be a DOM element or a collection of DOM elements.\");\n }\n\n var elementsReady = 0;\n\n var callOnAdd = getOption(options, \"callOnAdd\", globalOptions.callOnAdd);\n var onReadyCallback = getOption(options, \"onReady\", function noop() {});\n var debug = getOption(options, \"debug\", globalOptions.debug);\n\n forEach(elements, function attachListenerToElement(element) {\n if (!stateHandler.getState(element)) {\n stateHandler.initState(element);\n idHandler.set(element);\n }\n\n var id = idHandler.get(element);\n\n debug && reporter.log(\"Attaching listener to element\", id, element);\n\n if(!elementUtils.isDetectable(element)) {\n debug && reporter.log(id, \"Not detectable.\");\n if(elementUtils.isBusy(element)) {\n debug && reporter.log(id, \"System busy making it detectable\");\n\n //The element is being prepared to be detectable. Do not make it detectable.\n //Just add the listener, because the element will soon be detectable.\n addListener(callOnAdd, element, listener);\n onReadyCallbacks[id] = onReadyCallbacks[id] || [];\n onReadyCallbacks[id].push(function onReady() {\n elementsReady++;\n\n if(elementsReady === elements.length) {\n onReadyCallback();\n }\n });\n return;\n }\n\n debug && reporter.log(id, \"Making detectable...\");\n //The element is not prepared to be detectable, so do prepare it and add a listener to it.\n elementUtils.markBusy(element, true);\n return detectionStrategy.makeDetectable({ debug: debug, important: importantCssRules }, element, function onElementDetectable(element) {\n debug && reporter.log(id, \"onElementDetectable\");\n\n if (stateHandler.getState(element)) {\n elementUtils.markAsDetectable(element);\n elementUtils.markBusy(element, false);\n detectionStrategy.addListener(element, onResizeCallback);\n addListener(callOnAdd, element, listener);\n\n // Since the element size might have changed since the call to \"listenTo\", we need to check for this change,\n // so that a resize event may be emitted.\n // Having the startSize object is optional (since it does not make sense in some cases such as unrendered elements), so check for its existance before.\n // Also, check the state existance before since the element may have been uninstalled in the installation process.\n var state = stateHandler.getState(element);\n if (state && state.startSize) {\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n if (state.startSize.width !== width || state.startSize.height !== height) {\n onResizeCallback(element);\n }\n }\n\n if(onReadyCallbacks[id]) {\n forEach(onReadyCallbacks[id], function(callback) {\n callback();\n });\n }\n } else {\n // The element has been unisntalled before being detectable.\n debug && reporter.log(id, \"Element uninstalled before being detectable.\");\n }\n\n delete onReadyCallbacks[id];\n\n elementsReady++;\n if(elementsReady === elements.length) {\n onReadyCallback();\n }\n });\n }\n\n debug && reporter.log(id, \"Already detecable, adding listener.\");\n\n //The element has been prepared to be detectable and is ready to be listened to.\n addListener(callOnAdd, element, listener);\n elementsReady++;\n });\n\n if(elementsReady === elements.length) {\n onReadyCallback();\n }\n }\n\n function uninstall(elements) {\n if(!elements) {\n return reporter.error(\"At least one element is required.\");\n }\n\n if (isElement(elements)) {\n // A single element has been passed in.\n elements = [elements];\n } else if (isCollection(elements)) {\n // Convert collection to array for plugins.\n // TODO: May want to check so that all the elements in the collection are valid elements.\n elements = toArray(elements);\n } else {\n return reporter.error(\"Invalid arguments. Must be a DOM element or a collection of DOM elements.\");\n }\n\n forEach(elements, function (element) {\n eventListenerHandler.removeAllListeners(element);\n detectionStrategy.uninstall(element);\n stateHandler.cleanState(element);\n });\n }\n\n function initDocument(targetDocument) {\n detectionStrategy.initDocument && detectionStrategy.initDocument(targetDocument);\n }\n\n return {\n listenTo: listenTo,\n removeListener: eventListenerHandler.removeListener,\n removeAllListeners: eventListenerHandler.removeAllListeners,\n uninstall: uninstall,\n initDocument: initDocument\n };\n};\n\nfunction getOption(options, name, defaultValue) {\n var value = options[name];\n\n if((value === undefined || value === null) && defaultValue !== undefined) {\n return defaultValue;\n }\n\n return value;\n}\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","// document.currentScript polyfill by Adam Miller\n\n// MIT license\n\n(function(document){\n var currentScript = \"currentScript\",\n scripts = document.getElementsByTagName('script'); // Live NodeList collection\n\n // If browser needs currentScript polyfill, add get currentScript() to the document object\n if (!(currentScript in document)) {\n Object.defineProperty(document, currentScript, {\n get: function(){\n\n // IE 6-10 supports script readyState\n // IE 10+ support stack trace\n try { throw new Error(); }\n catch (err) {\n\n // Find the second match for the \"at\" string to get file src url from stack.\n // Specifically works with the format of stack traces in IE.\n var i, res = ((/.*at [^\\(]*\\((.*):.+:.+\\)$/ig).exec(err.stack) || [false])[1];\n\n // For all scripts on the page, if src matches or if ready state is interactive, return the script tag\n for(i in scripts){\n if(scripts[i].src == res || scripts[i].readyState == \"interactive\"){\n return scripts[i];\n }\n }\n\n // If no match, return null\n return null;\n }\n }\n });\n }\n})(document);\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","module.exports = require('./_shared')('native-function-to-string', Function.toString);\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n require('current-script-polyfill')\n }\n\n var i\n if ((i = window.document.currentScript) && (i = i.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/))) {\n __webpack_public_path__ = i[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n","// 20.1.2.2 Number.isFinite(number)\nvar $export = require('./_export');\nvar _isFinite = require('./_global').isFinite;\n\n$export($export.S, 'Number', {\n isFinite: function isFinite(it) {\n return typeof it == 'number' && _isFinite(it);\n }\n});\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 d25271f3..5c785db8 100644 --- a/dist/vue-grid-layout.umd.min.js +++ b/dist/vue-grid-layout.umd.min.js @@ -1,2 +1,3 @@ -(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")}({"00c2":function(t,e,n){var i=n("07e2");"string"===typeof i&&(i=[[t.i,i,""]]),i.locals&&(t.exports=i.locals);var r=n("499e").default;r("214147f1",i,!0,{sourceMap:!1,shadowMode:!1})},"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"),l=n("7f20"),u=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=u(A.call(new t)),S!==Object.prototype&&S.next&&(l(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}},"07e2":function(t,e,n){e=t.exports=n("2350")(!1),e.push([t.i,"\n.vue-grid-layout{position:relative;transition:height .2s ease\n}",""])},"0d58":function(t,e,n){var i=n("ce10"),r=n("e11e");t.exports=Object.keys||function(t){return i(t,r)}},"11e9":function(t,e,n){var i=n("52a7"),r=n("4630"),o=n("6821"),s=n("6a99"),a=n("69a8"),c=n("c69a"),l=Object.getOwnPropertyDescriptor;e.f=n("9e1e")?l:function(t,e){if(t=o(t),e=s(e,!0),c)try{return l(t,e)}catch(t){}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}},"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),l=t.offsetWidth,u=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 l(){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 u=document.createElement("object");u.style.cssText=s,u.tabIndex=-1,u.type="text/html",u.onload=l,i.isIE()||(u.data="about:blank"),t.appendChild(u),r(t).object=u,i.isIE()&&(u.data="about:blank")}r(t).startSize={width:l,height:u},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}},"1eb2":function(t,e,n){var i;"undefined"!==typeof window&&((i=window.document.currentScript)&&(i=i.src.match(/(.+\/)[^/]+\.js$/))&&(n.p=i[1]))},"1fb2":function(t,e,n){e=t.exports=n("2350")(!1),e.push([t.i,'\n.vue-grid-item{transition:all .2s ease;transition-property:left,top,right\n}\n.vue-grid-item.no-touch{-ms-touch-action:none;touch-action:none\n}\n.vue-grid-item.cssTransforms{left:0;right:auto;transition-property:transform\n}\n.vue-grid-item.cssTransforms.render-rtl{left:auto;right:0\n}\n.vue-grid-item.resizing{opacity:.6;z-index:3\n}\n.vue-grid-item.vue-draggable-dragging{transition:none;z-index:3\n}\n.vue-grid-item.vue-grid-placeholder{-moz-user-select:none;-ms-user-select:none;-o-user-select:none;-webkit-user-select:none;background:red;opacity:.2;transition-duration:.1s;user-select:none;z-index:2\n}\n.vue-grid-item>.vue-resizable-handle{background:url("data:image/svg+xml;base64,PHN2ZyBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjYiIGhlaWdodD0iNiI+PHBhdGggZD0iTTYgNkgwVjQuMmg0LjJWMEg2djZ6IiBvcGFjaXR5PSIuMzAyIi8+PC9zdmc+");background-origin:content-box;background-position:100% 100%;background-repeat:no-repeat;bottom:0;box-sizing:border-box;cursor:se-resize;height:20px;padding:0 3px 3px 0;position:absolute;right:0;width:20px\n}\n.vue-grid-item>.vue-rtl-resizable-handle{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTS0xLTFoMTJ2MTJILTF6Ii8+PGc+PHBhdGggc3Ryb2tlLWxpbmVjYXA9InVuZGVmaW5lZCIgc3Ryb2tlLWxpbmVqb2luPSJ1bmRlZmluZWQiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2U9IiMwMDAiIGZpbGw9Im5vbmUiIGQ9Ik0xNDQuODIxLTM4LjM5M2wtMjAuMzU3LTMxLjc4NSIvPjxwYXRoIHN0cm9rZT0iIzY2NiIgc3Ryb2tlLWxpbmVjYXA9InVuZGVmaW5lZCIgc3Ryb2tlLWxpbmVqb2luPSJ1bmRlZmluZWQiIHN0cm9rZS13aWR0aD0iMiIgZmlsbD0ibm9uZSIgZD0iTS45NDctLjAxOHY5LjEyNU0tLjY1NiA5aDEwLjczIi8+PC9nPjwvc3ZnPg==);background-origin:content-box;background-position:0 100%;background-repeat:no-repeat;bottom:0;cursor:sw-resize;left:0;padding-left:3px;right:auto\n}\n.vue-grid-item.disable-userselect{user-select:none\n}',""])},"214f":function(t,e,n){"use strict";var i=n("32e9"),r=n("2aba"),o=n("79e5"),s=n("be13"),a=n("2b4c");t.exports=function(t,e,n){var c=a(t),l=n(s,c,""[t]),u=l[0],d=l[1];o(function(){var e={};return e[c]=function(){return 7},7!=""[t](e)})&&(r(String.prototype,t,u),i(RegExp.prototype,c,2==e?function(t,e){return d.call(t,this,e)}:function(t){return d.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(),l=t.F;while(i--)delete l[c][o[i]];return l()};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=l(),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)})}},"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}},"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}},"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")}},"456d":function(t,e,n){var i=n("4bf8"),r=n("0d58");n("5eda")("keys",function(){return function(t){return r(i(t))}})},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;r0?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})},a481:function(t,e,n){n("214f")("replace",2,function(t,e,n){return[function(i,r){"use strict";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)},n]})},aa77:function(t,e,n){var i=n("5ca1"),r=n("be13"),o=n("79e5"),s=n("fdef"),a="["+s+"]",c="​…",l=RegExp("^"+a+a+"*"),u=RegExp(a+a+"*$"),d=function(t,e,n){var r={},a=o(function(){return!!s[t]()||c[t]()!=c}),l=r[t]=a?e(p):s[t];n&&(r[n]=l),i(i.P+i.F*a,"String",r)},p=d.trim=function(t,e){return t=String(r(t)),1&e&&(t=t.replace(l,"")),2&e&&(t=t.replace(u,"")),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;nn?n=r:ru)if(a=c[u++],a!=a)return!0}else for(;l>u;u++)if((t||u in c)&&c[u]===n)return t||u||0;return!t&&-1}}},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"),l=n("9093").f,u=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),l=0,u=c.length;lr)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")?l(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,u(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=l(),a="erd_scroll_detection_scrollbar_style",c="erd_scroll_detection_container";function l(){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 u(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,l){function u(){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,l=[];for(n in a)n!=s&&i(a,n)&&l.push(n);while(e.length>c)i(a,n=e[c++])&&(~o(l,n)||l.push(n));return l}},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}},d8e8:function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},e11e:function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},e279:function(t,e,n){"use strict";var i=n("00c2"),r=n.n(i);r.a},e8cd:function(t,e,n){var i=n("1fb2");"string"===typeof i&&(i=[[t.i,i,""]]),i.locals&&(t.exports=i.locals);var r=n("499e").default;r("54ca58d1",i,!0,{sourceMap:!1,shadowMode:!1})},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"),l=n("18e9"),u=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",u({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&&(l.isLegacyOpera()?(b.warn("Scroll strategy is not supported on legacy Opera. Changing to object strategy."),C="object"):l.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),l=m(t,"onReady",function(){}),u=m(t,"debug",E.debug);i(n,function(t){d.getState(t)||(d.initState(t),e.set(t));var p=e.get(t);if(u&&b.log("Attaching listener to element",p,t),!z.isDetectable(t))return u&&b.log(p,"Not detectable."),z.isBusy(t)?(u&&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&&l()})):(u&&b.log(p,"Making detectable..."),z.markBusy(t,!0),S.makeDetectable({debug:u},t,function(t){if(u&&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 u&&b.log(p,"Element uninstalled before being detectable.");delete O[p],a++,a===n.length&&l()}));u&&b.log(p,"Already detecable, adding listener."),s(c,t,r),a++}),a===n.length&&l()}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}}},fab2:function(t,e,n){var i=n("7726").document;t.exports=i&&i.documentElement},fb15:function(t,e,n){"use strict";n.r(e);n("1eb2"),n("7f7f"),n("cadf"),n("456d"),n("ac6a");var i=n("8bbf"),r=n.n(i),o=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.resizable,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.resizable?n("span",{ref:"handle",class:t.resizableHandleClass}):t._e()],2)},s=[];n("c5f6"),n("a481"),n("55dd");function a(t){for(var e,n=0,i=0,r=t.length;in&&(n=e);return n}function c(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 d(t,e){for(var n=m(t),i=T(t),r=Array(t.length),o=0,s=i.length;o0&&!g(t,e))e.y--;var i;while(i=g(t,e))e.y=i.y+i.h;return e}function f(t,e){for(var n=m(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(g(n,o))o.y++;else n.push(o)}return t}function h(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=T(t);o&&(s=s.reverse());for(var a=v(s,e),c=0,l=a.length;cu.y&&e.y-u.y>u.h/4||(t=u.static?b(t,u,e,r):b(t,e,u,r)))}return t}function b(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),!g(t,r))return y(t,n,void 0,r.y)}return y(t,n,void 0,n.y+1)}function x(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 w(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 E(t,e,n,i){return{top:t+"px",left:e+"px",width:n+"px",height:i+"px",position:"absolute"}}function S(t,e,n,i){return{top:t+"px",right:e+"px",width:n+"px",height:i+"px",position:"absolute"}}function T(t){return[].concat(t).sort(function(t,e){return t.y>e.y||t.y===e.y&&t.x>e.x?1:-1})}function z(t,e){e=e||"Layout";var n=["x","y","w","h"];if(!Array.isArray(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?w(e.top,e.right,e.width,e.height):x(e.top,e.left,e.width,e.height):this.renderRtl?S(e.top,e.right,e.width,e.height):E(e.top,e.left,e.width,e.height),this.style=t},handleResize:function(t){var e=C(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=O(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.isResizing){var e=C(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(),l=t.target.getBoundingClientRect();this.renderRtl?o.left=-1*(l.right-c.right):o.left=l.left-c.left,o.top=l.top-c.top,this.dragging=null,this.isDragging=!1;break;case"dragmove":var u=O(this.lastX,this.lastY,i,r);this.renderRtl?o.left=this.dragging.left-u.deltaX:o.left=this.dragging.left+u.deltaX,o.top=this.dragging.top+u.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()},tryMakeResizable:function(){var t=this;if(null!==this.interactObj&&void 0!==this.interactObj||(this.interactObj=H(this.$refs.item)),this.resizable){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))}}},j=N;n("5ed4");function L(t,e,n,i,r,o,s,a){var c,l="function"===typeof t?t.options:t;if(e&&(l.render=e,l.staticRenderFns=n,l._compiled=!0),i&&(l.functional=!0),o&&(l._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)},l._ssrRegister=c):r&&(c=a?function(){r.call(this,this.$root.$options.shadowRoot)}:r),c)if(l.functional){l._injectStyles=c;var u=l.render;l.render=function(t,e){return c.call(e),u(t,e)}}else{var d=l.beforeCreate;l.beforeCreate=d?[].concat(d,c):[c]}return{exports:t,options:l}}var W=L(j,o,s,!1,null,null,null);W.options.__file="GridItem.vue";var X=W.exports,Y=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)},B=[];function $(t,e){for(var n=G(t),i=n[0],r=1,o=n.length;rt[s]&&(i=s)}return i}function F(t,e){if(!e[t])throw new Error("ResponsiveGridLayout: `cols` entry for breakpoint "+t+" is missing!");return e[t]}function U(t,e,n,i,r,o,s){if(e[i])return c(e[i]);for(var a=t,l=G(n),u=l.slice(l.indexOf(i)),p=0,h=u.length;p0&&(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()}d(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 a(this.layout)*(this.rowHeight+this.margin[1])+this.margin[1]+"px"},dragEvent:function(t,e,n,i,r,o){"dragmove"===t||"dragstart"===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=h(this.layout,e);void 0!==s&&null!==s||(s={x:0,y:0}),s.x=n,s.y=i,this.layout=y(this.layout,s,n,i,!0),d(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=h(this.layout,e);void 0!==s&&null!==s||(s={h:0,w:0}),s.h=r,s.w=o,this.responsive?this.responsiveGridLayout():(d(this.layout,this.verticalCompact),this.eventBus.$emit("compact"),this.updateHeight()),"resizeend"===t&&this.$emit("layout-updated",this.layout)},responsiveGridLayout:function(){var t=$(this.breakpoints,this.width),e=F(t,this.cols);null==this.lastBreakpoint||this.layouts[this.lastBreakpoint]||(this.layouts[this.lastBreakpoint]=c(this.layout));var n=U(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",F(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)}}},Z=V,Q=(n("e279"),L(Z,Y,B,!1,null,null,null));Q.options.__file="GridLayout.vue";var J=Q.exports,K={GridLayout:J,GridItem:X};Object.keys(K).forEach(function(t){r.a.component(t,K[t])});var tt=K;n.d(e,"GridLayout",function(){return J}),n.d(e,"GridItem",function(){return X});e["default"]=tt},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 l="function"==typeof i&&i;if(!c&&l)return i(a,!0);if(s)return s(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}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,u,c),v="start"===l,m="end"===l,y=v?e.startCoords:e.curCoords,b=e.prevEvent;u=u||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=u,this.currentTarget=u,this.relatedTarget=d||null,this.preEnd=p,this.type=c+(l||""),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:l,element:u,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"===l?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"),l=t("./scope"),u=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;l.interactables=[];var T=function(){function t(e,n){i(this,t),n=n||{},this.target=e,this.events=new u,this._context=n.context||l.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}),l.addDocument(this._doc,this._win),l.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),u.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||{}),u.fire("before-action-move",t),this._dontFireMove||u.fire("action-move",t),this._dontFireMove=!1},t.prototype.pointerUp=function(t,e,n,i){var r=this.getPointerIndex(t);u.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()&&u.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(){u.fire("stop",{interaction:this}),this._interacting&&(u.fire("stop-active",{interaction:this}),u.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&&u.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&&(u.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&&u.xs.top&&u.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"),l.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:[]}}),l.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",u.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"),l={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,l=t.deltaSource;if("gesture"===i){var u=e.pointers;n.touches=[u[0],u[1]],a?(n.distance=r.touchDistance(u,l),n.box=r.touchBBox(u),n.scale=1,n.ds=0,n.angle=r.touchAngle(u,void 0,l),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(u,l),n.box=r.touchBBox(u),n.scale=n.distance/e.gesture.startDistance,n.angle=r.touchAngle(u,e.gesture.prevAngle,l),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=l,i.names.push("gesture"),r.merge(s.eventTypes,["gesturestart","gesturemove","gestureend"]),i.methodDict.gesture="gesturable",c.gesture=l.defaults,e.exports=l},{"../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"),l=t("../defaultOptions"),u=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 l=c.resize,d={left:!1,right:!1,top:!1,bottom:!1};if(r.is.object(l.edges)){for(var f in d)d[f]=p(f,l.edges[f],a,o._eventTarget,i,s,l.margin||u);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-u,g="x"!==c.resize.axis&&a.y>s.bottom-u;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,l=r.is.number(s.height)?s.height:s.bottom-s.top;if(c<0&&("left"===t?t="right":"right"===t&&(t="left")),l<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<(l>=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>(l>=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,l=i.resizeRects.start,u=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&&(u.top+=v),c.bottom&&(u.bottom+=v),c.left&&(u.left+=g),c.right&&(u.right+=g),a){if(r.extend(d,u),"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(u.top,l.bottom),d.bottom=Math.max(u.bottom,l.top),d.left=Math.min(u.left,l.right),d.right=Math.max(u.right,l.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=l.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",l.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"),l={defaults:{enabled:!1,container:null,margin:60,speed:300},interaction:null,i:null,x:0,y:0,isScrolling:!1,prevTime:0,start:function(t){l.isScrolling=!0,i.cancel(l.i),l.interaction=t,l.prevTime=(new Date).getTime(),l.i=i.request(l.scroll)},stop:function(){l.isScrolling=!1,i.cancel(l.i)},scroll:function(){var t=l.interaction.target.options[l.interaction.prepared.name].autoScroll,e=t.container||r(l.interaction.element),n=(new Date).getTime(),s=(n-l.prevTime)/1e3,a=t.speed*s;a>=1&&(o.window(e)?e.scrollBy(l.x*a,l.y*a):e&&(e.scrollLeft+=l.x*a,e.scrollTop+=l.y*a),l.prevTime=n),l.isScrolling&&(i.cancel(l.i),l.i=i.request(l.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()&&l.check(e.target,e.prepared.name))if(e.simulation)l.x=l.y=0;else{var i=void 0,a=void 0,c=void 0,u=void 0,d=e.target.options[e.prepared.name].autoScroll,p=d.container||r(e.element);if(o.window(p))u=n.clientXp.innerWidth-l.margin,c=n.clientY>p.innerHeight-l.margin;else{var f=s.getElementClientRect(p);u=n.clientXf.right-l.margin,c=n.clientY>f.bottom-l.margin}l.x=a?1:u?-1:0,l.y=c?1:i?-1:0,l.isScrolling||(l.margin=d.margin,l.speed=d.speed,l.start(e))}}};a.signals.on("stop-active",function(){l.stop()}),a.signals.on("action-move",l.onInteractionMove),c.perAction.autoScroll=l.defaults,e.exports=l},{"./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&&(l++,h!==n.name||l>=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){u.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 l.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,l.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,l=t.dy;if("drag"===e.prepared.name){var u=Math.abs(s),d=Math.abs(l),p=e.target.options.drag,f=p.startAxis,h=u>d?"x":u0&&(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 l(){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,l.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"),l={};function u(t,e){var n=s.interactables.get(t,e);return n||(n=new a(t,e),n.events.global=l),n}u.isSet=function(t,e){return-1!==s.interactables.indexOfElement(t,e&&e.context)},u.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 u},u.pointerMoveTolerance=function(t){return o.is.number(t)?(c.pointerMoveTolerance=t,u):c.pointerMoveTolerance},u.addDocument=s.addDocument,u.removeDocument=s.removeDocument,s.interact=u,e.exports=u},{"./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"),l=t("./utils/domUtils"),u=l.nodeContains,d=l.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;l--)if(c.selectors[l]===t&&c.contexts[l]===e)break;-1===l&&(l=c.selectors.length,c.selectors.push(t),c.contexts.push(e),c.listeners.push([])),c.listeners[l].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 l=s.listeners[c],u=l.length-1;u>=0;u--){var d=l[u],p=d[0],h=d[1],g=d[2];if(p===i&&h===!!o.capture&&g===o.passive){l.splice(u,1),l.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],l=o.getEventTargets(t),u=l[0],d=u;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"),l=t("./pointerExtend"),u={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&&u.isNativePointer(t)?(u.getXY("screen",t,e),e.x+=window.scrollX,e.y+=window.scrollY):u.getXY("page",t,e),e},getClientXY:function(t,e){return e=e||{},r.isOperaMobile&&u.isNativePointer(t)?u.getXY("screen",t,e):u.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?u.pointerAverage(e):e[0],r={};u.getPageXY(i,r),t.page.x=r.x,t.page.y=r.y,u.getClientXY(i,r),t.client.x=r.x,t.client.y=r.y,t.timeStamp=c.number(n)?n:(new Date).getTime()},pointerExtend:l,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=u.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=u.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=u.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=u},{"./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,l=0;l (http://www.jbaysolutions.com) | https://github.com/jbaysolutions/vue-grid-layout */ +(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"),l=n("7f20"),u=n("38fd"),h=n("2b4c")("iterator"),d=!([].keys&&"next"in[].keys()),f="@@iterator",p="keys",g="values",m=function(){return this};t.exports=function(t,e,n,v,b,y,x){c(n,e,v);var w,S,E,O=function(t){if(!d&&t in _)return _[t];switch(t){case p:return function(){return new n(this,t)};case g:return function(){return new n(this,t)}}return function(){return new n(this,t)}},T=e+" Iterator",z=b==g,M=!1,_=t.prototype,P=_[h]||_[f]||b&&_[b],I=P||O(b),j=b?z?O("entries"):I:void 0,D="Array"==e&&_.entries||P;if(D&&(E=u(D.call(new t)),E!==Object.prototype&&E.next&&(l(E,T,!0),i||"function"==typeof E[h]||s(E,h,m))),z&&P&&P.name!==g&&(M=!0,I=function(){return P.call(this)}),i&&!x||!d&&!M&&_[h]||s(_,h,I),a[e]=I,a[T]=m,b)if(w={values:z?I:O(g),keys:y?I:O(p),entries:j},x)for(S in w)S in _||o(_,S,w[S]);else r(r.P+r.F*(d||M),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),l=a.length;return c<0||c>=l?t?"":void 0:(o=a.charCodeAt(c),o<55296||o>56319||c+1===l||(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)}},"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)}},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"),l=Object.getOwnPropertyDescriptor;e.f=n("9e1e")?l:function(t,e){if(t=o(t),e=s(e,!0),c)try{return l(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}},"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){function n(){e(t)}if(i.isIE(8))r(t).object={proxy:n},t.attachEvent("onresize",n);else{var o=c(t);if(!o)throw new Error("Element is not detectable by this strategy.");o.contentDocument.defaultView.addEventListener("resize",n)}}function s(e){var n=t.important?" !important; ":"; ";return(e.join(n)+n).trim()}function a(t,o,a){a||(a=o,o=t,t=null),t=t||{};t.debug;function c(o,a){var c=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"]),l=!1,u=window.getComputedStyle(o),h=o.offsetWidth,d=o.offsetHeight;function f(){function n(){if("static"===u.position){o.style.setProperty("position","relative",t.important?"important":"");var n=function(e,n,i,r){function o(t){return t.replace(/[^-\d\.]/g,"")}var s=i[r];"auto"!==s&&"0"!==o(s)&&(e.warn("An element that is positioned static has style."+r+"="+s+" which is ignored due to the static positioning. The element will need to be positioned relative, so the style."+r+" will be set to 0. Element: ",n),n.style.setProperty(r,"0",t.important?"important":""))};n(e,o,u,"top"),n(e,o,u,"right"),n(e,o,u,"bottom"),n(e,o,u,"left")}}function s(){function t(e,n){if(!e.contentDocument){var i=r(e);return i.checkForObjectDocumentTimeoutId&&window.clearTimeout(i.checkForObjectDocumentTimeoutId),void(i.checkForObjectDocumentTimeoutId=setTimeout((function(){i.checkForObjectDocumentTimeoutId=0,t(e,n)}),100))}n(e.contentDocument)}l||n();var e=this;t(e,(function(t){a(o)}))}""!==u.position&&(n(u),l=!0);var h=document.createElement("object");h.style.cssText=c,h.tabIndex=-1,h.type="text/html",h.setAttribute("aria-hidden","true"),h.onload=s,i.isIE()||(h.data="about:blank"),r(o)&&(o.appendChild(h),r(o).object=h,i.isIE()&&(h.data="about:blank"))}r(o).startSize={width:h,height:d},n?n.add(f):f()}i.isIE(8)?a(o):c(o,a)}function c(t){return r(t).object}function l(t){if(r(t)){var e=c(t);e&&(i.isIE(8)?t.detachEvent("onresize",e.proxy):t.removeChild(e),r(t).checkForObjectDocumentTimeoutId&&window.clearTimeout(r(t).checkForObjectDocumentTimeoutId),delete r(t).object)}}return{makeDetectable:a,addListener:o,uninstall:l}}},"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}},"1ca7":function(t,e,n){"use strict";n.d(e,"b",(function(){return s})),n.d(e,"a",(function(){return a})),n.d(e,"c",(function(){return c}));var i="auto";function r(){return"undefined"!==typeof document}function o(){return"undefined"!==typeof window}function s(){if(!r())return i;var t="undefined"!==typeof document.dir?document.dir:document.getElementsByTagName("html")[0].getAttribute("dir");return t}function a(t,e){o?window.addEventListener(t,e):e()}function c(t,e){o&&window.removeEventListener(t,e)}},"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"),l=a("species"),u=!o((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$")})),h=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 d=a(t),f=!o((function(){var e={};return e[d]=function(){return 7},7!=""[t](e)})),p=f?!o((function(){var e=!1,n=/a/;return n.exec=function(){return e=!0,null},"split"===t&&(n.constructor={},n.constructor[l]=function(){return n}),n[d](""),!e})):void 0;if(!f||!p||"replace"===t&&!u||"split"===t&&!h){var g=/./[d],m=n(s,d,""[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}})),v=m[0],b=m[1];i(String.prototype,t,v),r(RegExp.prototype,d,2==e?function(t,e){return b.call(t,this,e)}:function(t){return b.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(),l=t.F;while(i--)delete l[c][o[i]];return l()};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=l(),void 0===e?n:r(n,e)}},"2af9":function(t,e,n){"use strict";(function(t){n.d(e,"d",(function(){return s}));n("7f7f"),n("cadf"),n("456d"),n("ac6a");var i=n("bc21");n.d(e,"a",(function(){return i["a"]}));var r=n("37c8");n.d(e,"b",(function(){return r["a"]}));var o={GridLayout:r["a"],GridItem:i["a"]};function s(t){s.installed||(s.installed=!0,Object.keys(o).forEach((function(e){t.component(e,o[e])})))}var a={install:s},c=null;"undefined"!==typeof window?c=window.Vue:"undefined"!==typeof t&&(c=t.Vue),c&&c.use(a),e["c"]=o}).call(this,n("c8ba"))},"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)}))}},"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}},"37c8":function(t,e,n){"use strict";var i=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)},r=[],o=(n("8e6e"),n("cadf"),n("456d"),n("f751"),n("fca0"),n("ac6a"),n("ade3")),s=(n("c5f6"),n("8bbf")),a=n.n(s),c=n("a2b6"),l=n("97a7"),u=n("bc21"),h=n("1ca7");function d(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function f(t){for(var e=1;e0&&(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()}Object(c["c"])(this.layout,this.verticalCompact),this.eventBus.$emit("updateWidth",this.width),this.updateHeight(),this.$emit("layout-updated",this.layout)}},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){var t=Object(c["a"])(this.layout)*(this.rowHeight+this.margin[1])+this.margin[1]+"px";return t}},dragEvent:function(t,e,n,i,r,s){var a=Object(c["f"])(this.layout,e);void 0!==a&&null!==a||(a={x:0,y:0}),"dragstart"!==t||this.verticalCompact||(this.positionsBeforeDrag=this.layout.reduce((function(t,e){var n=e.i,i=e.x,r=e.y;return f(f({},t),{},Object(o["a"])({},n,{x:i,y:r}))}),{})),"dragmove"===t||"dragstart"===t?(this.placeholder.i=e,this.placeholder.x=a.x,this.placeholder.y=a.y,this.placeholder.w=s,this.placeholder.h=r,this.$nextTick((function(){this.isDragging=!0})),this.eventBus.$emit("updateWidth",this.width)):this.$nextTick((function(){this.isDragging=!1})),this.layout=Object(c["g"])(this.layout,a,n,i,!0,this.preventCollision),this.restoreOnDrag?(a.static=!0,Object(c["c"])(this.layout,this.verticalCompact,this.positionsBeforeDrag),a.static=!1):Object(c["c"])(this.layout,this.verticalCompact),this.eventBus.$emit("compact"),this.updateHeight(),"dragend"===t&&(delete this.positionsBeforeDrag,this.$emit("layout-updated",this.layout))},resizeEvent:function(t,e,n,i,r,o){var s,a=Object(c["f"])(this.layout,e);if(void 0!==a&&null!==a||(a={h:0,w:0}),this.preventCollision){var l=Object(c["e"])(this.layout,f(f({},a),{},{w:o,h:r})).filter((function(t){return t.i!==a.i}));if(s=l.length>0,s){var u=1/0,h=1/0;l.forEach((function(t){t.x>a.x&&(u=Math.min(u,t.x)),t.y>a.y&&(h=Math.min(h,t.y))})),Number.isFinite(u)&&(a.w=u-a.x),Number.isFinite(h)&&(a.h=h-a.y)}}s||(a.w=o,a.h=r),"resizestart"===t||"resizemove"===t?(this.placeholder.i=e,this.placeholder.x=n,this.placeholder.y=i,this.placeholder.w=a.w,this.placeholder.h=a.h,this.$nextTick((function(){this.isDragging=!0})),this.eventBus.$emit("updateWidth",this.width)):this.$nextTick((function(){this.isDragging=!1})),this.responsive&&this.responsiveGridLayout(),Object(c["c"])(this.layout,this.verticalCompact),this.eventBus.$emit("compact"),this.updateHeight(),"resizeend"===t&&this.$emit("layout-updated",this.layout)},responsiveGridLayout:function(){var t=Object(l["b"])(this.breakpoints,this.width),e=Object(l["c"])(t,this.cols);null==this.lastBreakpoint||this.layouts[this.lastBreakpoint]||(this.layouts[this.lastBreakpoint]=Object(c["b"])(this.layout));var n=Object(l["a"])(this.originalLayout,this.layouts,this.breakpoints,t,this.lastBreakpoint,e,this.verticalCompact);this.layouts[t]=n,this.lastBreakpoint!==t&&this.$emit("breakpoint-changed",t,n),this.$emit("update:layout",n),this.lastBreakpoint=t,this.eventBus.$emit("setColNum",Object(l["c"])(t,this.cols))},initResponsiveFeatures:function(){this.layouts=Object.assign({},this.responsiveLayouts)},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)}}},m=g,v=(n("e279"),n("2877")),b=Object(v["a"])(m,i,r,!1,null,null,null);e["a"]=b.exports},"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}},"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")}},"456d":function(t,e,n){var i=n("4bf8"),r=n("0d58");n("5eda")("keys",(function(){return function(t){return r(i(t))}}))},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}}},4917:function(t,e,n){"use strict";var i=n("cb7c"),r=n("9def"),o=n("0390"),s=n("5f1b");n("214f")("match",1,(function(t,e,n,a){return[function(n){var i=t(this),r=void 0==n?void 0:n[e];return void 0!==r?r.call(n,i):new RegExp(n)[e](String(i))},function(t){var e=a(n,t,this);if(e.done)return e.value;var c=i(t),l=String(this);if(!c.global)return s(c,l);var u=c.unicode;c.lastIndex=0;var h,d=[],f=0;while(null!==(h=s(c,l))){var p=String(h[0]);d[f]=p,""===p&&(c.lastIndex=o(l,r(c.lastIndex),u)),f++}return 0===f?null:d}]}))},"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(u=1;uu){var f,p=c(arguments[u++]),g=h?r(p).concat(h(p)):r(p),m=g.length,v=0;while(m>v)f=g[v++],i&&!d.call(p,f)||(n[f]=p[f])}return n}:l},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)}},"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.12"};"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}},"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},"8e6e":function(t,e,n){var i=n("5ca1"),r=n("990b"),o=n("6821"),s=n("11e9"),a=n("f1ae");i(i.S,"Object",{getOwnPropertyDescriptors:function(t){var e,n,i=o(t),c=s.f,l=r(i),u={},h=0;while(l.length>h)n=c(i,e=l[h++]),void 0!==n&&a(u,e,n);return u}})},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)}},"97a7":function(t,e,n){"use strict";n.d(e,"b",(function(){return r})),n.d(e,"c",(function(){return o})),n.d(e,"a",(function(){return s}));n("55dd"),n("ac6a"),n("cadf"),n("456d");var i=n("a2b6");function r(t,e){for(var n=a(t),i=n[0],r=1,o=n.length;rt[s]&&(i=s)}return i}function o(t,e){if(!e[t])throw new Error("ResponsiveGridLayout: `cols` entry for breakpoint "+t+" is missing!");return e[t]}function s(t,e,n,r,o,s,c){if(e[r])return Object(i["b"])(e[r]);for(var l=t,u=a(n),h=u.slice(u.indexOf(r)),d=0,f=h.length;d.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}))},a2b6:function(t,e,n){"use strict";n.d(e,"a",(function(){return i})),n.d(e,"b",(function(){return r})),n.d(e,"c",(function(){return a})),n.d(e,"d",(function(){return l})),n.d(e,"f",(function(){return u})),n.d(e,"e",(function(){return d})),n.d(e,"g",(function(){return p})),n.d(e,"j",(function(){return m})),n.d(e,"k",(function(){return v})),n.d(e,"h",(function(){return b})),n.d(e,"i",(function(){return y})),n.d(e,"l",(function(){return w}));n("a481"),n("cadf"),n("456d"),n("ac6a"),n("55dd");function i(t){for(var e,n=0,i=0,r=t.length;in&&(n=e);return n}function r(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 a(t,e,n){for(var i=f(t),r=x(t),o=Array(t.length),s=0,a=r.length;s0&&!h(t,e))e.y--;else if(i){var r=i[e.i].y;while(e.y>r&&!h(t,e))e.y--}var o;while(o=h(t,e))e.y=o.y+o.h;return e}function l(t,e){for(var n=f(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(h(n,o))o.y++;else n.push(o)}return t}function u(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 l=x(t);c&&(l=l.reverse());var u=d(l,e);if(o&&u.length)return e.x=s,e.y=a,e.moved=!1,t;for(var h=0,f=u.length;hp.y&&e.y-p.y>p.h/4||(t=p.static?g(t,p,e,r):g(t,e,p,r)))}return t}function g(t,e,n,i){var r=!1;if(i){var o={x:n.x,y:n.y,w:n.w,h:n.h,i:"-1"};if(o.y=Math.max(e.y-n.h,0),!h(t,o))return p(t,n,void 0,o.y,r)}return p(t,n,void 0,n.y+1,r)}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 v(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 b(t,e,n,i){return{top:t+"px",left:e+"px",width:n+"px",height:i+"px",position:"absolute"}}function y(t,e,n,i){return{top:t+"px",right:e+"px",width:n+"px",height:i+"px",position:"absolute"}}function x(t){return[].concat(t).sort((function(t,e){return t.y===e.y&&t.x===e.x?0:t.y>e.y||t.y===e.y&&t.x>e.x?1:-1}))}function w(t,e){e=e||"Layout";var n=["x","y","w","h"],i=[];if(!Array.isArray(t))throw new Error(e+" must be an array!");for(var r=0,o=t.length;r=0)throw new Error("VueGridLayout: "+e+"["+r+"].i must be unique!");if(i.push(s.i),void 0!==s.static&&"boolean"!==typeof s.static)throw new Error("VueGridLayout: "+e+"["+r+"].static must be a boolean!")}}},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"),l=Math.max,u=Math.min,h=Math.floor,d=/\$([$&`']|\d\d?|<[^>]*>)/g,f=/\$([$&`']|\d\d?)/g,p=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 h=i(t),d=String(this),f="function"===typeof e;f||(e=String(e));var v=h.global;if(v){var b=h.unicode;h.lastIndex=0}var y=[];while(1){var x=c(h,d);if(null===x)break;if(y.push(x),!v)break;var w=String(x[0]);""===w&&(h.lastIndex=a(d,o(h.lastIndex),b))}for(var S="",E=0,O=0;O=E&&(S+=d.slice(E,z)+j,E=z+T.length)}return S+d.slice(E)}];function m(t,e,i,o,s,a){var c=i+t.length,l=o.length,u=f;return void 0!==s&&(s=r(s),u=d),n.call(a,u,(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 u=+r;if(0===u)return n;if(u>l){var d=h(u/10);return 0===d?n:d<=l?void 0===o[d-1]?r.charAt(1):o[d-1]+r.charAt(1):n}a=o[u-1]}return void 0===a?"":a}))}}))},aa77:function(t,e,n){var i=n("5ca1"),r=n("be13"),o=n("79e5"),s=n("fdef"),a="["+s+"]",c="​…",l=RegExp("^"+a+a+"*"),u=RegExp(a+a+"*$"),h=function(t,e,n){var r={},a=o((function(){return!!s[t]()||c[t]()!=c})),l=r[t]=a?e(d):s[t];n&&(r[n]=l),i(i.P+i.F*a,"String",r)},d=h.trim=function(t,e){return t=String(r(t)),1&e&&(t=t.replace(l,"")),2&e&&(t=t.replace(u,"")),t};t.exports=h},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;n!(!t||!t.Window)&&t instanceof t.Window;let y=void 0,x=void 0;function w(t){y=t;const e=t.document.createTextNode("");e.ownerDocument!==t.document&&"function"===typeof t.wrap&&t.wrap(e)===e&&(t=t.wrap(t)),x=t}function S(t){if(b(t))return t;const e=t.ownerDocument||t;return e.defaultView||x.window}"undefined"!==typeof window&&window&&w(window);const E=t=>t===x||b(t),O=t=>T(t)&&11===t.nodeType,T=t=>!!t&&"object"===typeof t,z=t=>"function"===typeof t,M=t=>"number"===typeof t,_=t=>"boolean"===typeof t,P=t=>"string"===typeof t,I=t=>{if(!t||"object"!==typeof t)return!1;const e=S(t)||x;return/object|function/.test(typeof e.Element)?t instanceof e.Element:1===t.nodeType&&"string"===typeof t.nodeName},j=t=>T(t)&&!!t.constructor&&/function Object\b/.test(t.constructor.toString()),D=t=>T(t)&&"undefined"!==typeof t.length&&z(t.splice);var R={window:E,docFrag:O,object:T,func:z,number:M,bool:_,string:P,element:I,plainObject:j,array:D};const k={init:A,supportsTouch:null,supportsPointerEvent:null,isIOS7:null,isIOS:null,isIe9:null,isOperaMobile:null,prefixedMatchesSelector:null,pEventTypes:null,wheelEvent:null};function A(t){const e=m.Element,n=x.navigator;k.supportsTouch="ontouchstart"in t||R.func(t.DocumentTouch)&&m.document instanceof t.DocumentTouch,k.supportsPointerEvent=!1!==n.pointerEnabled&&!!m.PointerEvent,k.isIOS=/iP(hone|od|ad)/.test(n.platform),k.isIOS7=/iP(hone|od|ad)/.test(n.platform)&&/OS 7[^\d]/.test(n.appVersion),k.isIe9=/MSIE 9/.test(n.userAgent),k.isOperaMobile="Opera"===n.appName&&k.supportsTouch&&/Presto/.test(n.userAgent),k.prefixedMatchesSelector="matches"in e.prototype?"matches":"webkitMatchesSelector"in e.prototype?"webkitMatchesSelector":"mozMatchesSelector"in e.prototype?"mozMatchesSelector":"oMatchesSelector"in e.prototype?"oMatchesSelector":"msMatchesSelector",k.pEventTypes=k.supportsPointerEvent?m.PointerEvent===t.MSPointerEvent?{up:"MSPointerUp",down:"MSPointerDown",over:"mouseover",out:"mouseout",move:"MSPointerMove",cancel:"MSPointerCancel"}:{up:"pointerup",down:"pointerdown",over:"pointerover",out:"pointerout",move:"pointermove",cancel:"pointercancel"}:null,k.wheelEvent="onmousewheel"in m.document?"mousewheel":"wheel"}var C=k;const H=(t,e)=>-1!==t.indexOf(e),L=(t,e)=>{for(const n of e)t.push(n);return t},B=t=>L([],t),N=(t,e)=>{for(let n=0;nt[N(t,e)];function $(t){const e={};for(const n in t){const i=t[n];R.plainObject(i)?e[n]=$(i):R.array(i)?e[n]=B(i):e[n]=i}return e}function F(t,e){for(const i in e)t[i]=e[i];const n=t;return n}let G,X,Y=0;function q(t){if(G=t.requestAnimationFrame,X=t.cancelAnimationFrame,!G){const e=["ms","moz","webkit","o"];for(const n of e)G=t[n+"RequestAnimationFrame"],X=t[n+"CancelAnimationFrame"]||t[n+"CancelRequestAnimationFrame"]}G=G&&G.bind(t),X=X&&X.bind(t),G||(G=e=>{const n=Date.now(),i=Math.max(0,16-(n-Y)),r=t.setTimeout(()=>{e(n+i)},i);return Y=n+i,r},X=t=>clearTimeout(t))}var V={request:t=>G(t),cancel:t=>X(t),init:q};function U(t,e,n){if(n=n||{},R.string(t)&&-1!==t.search(" ")&&(t=Z(t)),R.array(t))return t.reduce((t,i)=>F(t,U(i,e,n)),n);if(R.object(t)&&(e=t,t=""),R.func(e))n[t]=n[t]||[],n[t].push(e);else if(R.array(e))for(const i of e)U(t,i,n);else if(R.object(e))for(const i in e){const r=Z(i).map(e=>`${t}${e}`);U(r,e[i],n)}return n}function Z(t){return t.trim().split(/ +/)}function K(t,e){for(const n of e){if(t.immediatePropagationStopped)break;n(t)}}class J{constructor(t){this.options=void 0,this.types={},this.propagationStopped=!1,this.immediatePropagationStopped=!1,this.global=void 0,this.options=F({},t||{})}fire(t){let e;const n=this.global;(e=this.types[t.type])&&K(t,e),!t.propagationStopped&&n&&(e=n[t.type])&&K(t,e)}on(t,e){const n=U(t,e);for(t in n)this.types[t]=L(this.types[t]||[],n[t])}off(t,e){const n=U(t,e);for(t in n){const e=this.types[t];if(e&&e.length)for(const i of n[t]){const t=e.indexOf(i);-1!==t&&e.splice(t,1)}}}getRect(t){return null}}function Q(t,e){if(t.contains)return t.contains(e);while(e){if(e===t)return!0;e=e.parentNode}return!1}function tt(t,e){while(R.element(t)){if(nt(t,e))return t;t=et(t)}return null}function et(t){let e=t.parentNode;if(R.docFrag(e)){while((e=e.host)&&R.docFrag(e));return e}return e}function nt(t,e){return x!==y&&(e=e.replace(/\/deep\//g," ")),t[C.prefixedMatchesSelector](e)}function it(t,e,n){while(R.element(t)){if(nt(t,e))return!0;if(t=et(t),t===n)return nt(t,e)}return!1}function rt(t){return t.correspondingUseElement||t}function ot(t){return t=t||x,{x:t.scrollX||t.document.documentElement.scrollLeft,y:t.scrollY||t.document.documentElement.scrollTop}}function st(t){const e=t instanceof m.SVGElement?t.getBoundingClientRect():t.getClientRects()[0];return e&&{left:e.left,right:e.right,top:e.top,bottom:e.bottom,width:e.width||e.right-e.left,height:e.height||e.bottom-e.top}}function at(t){const e=st(t);if(!C.isIOS7&&e){const n=ot(S(t));e.left+=n.x,e.right+=n.x,e.top+=n.y,e.bottom+=n.y}return e}function ct(t){return!!R.string(t)&&(m.document.querySelector(t),!0)}function lt(t,e,n){return"parent"===t?et(n):"self"===t?e.getRect(n):tt(n,t)}function ut(t,e,n,i){let r=t;return R.string(r)?r=lt(r,e,n):R.func(r)&&(r=r(...i)),R.element(r)&&(r=at(r)),r}function ht(t){return t&&{x:"x"in t?t.x:t.left,y:"y"in t?t.y:t.top}}function dt(t){return!t||"left"in t&&"top"in t||(t=F({},t),t.left=t.x||0,t.top=t.y||0,t.right=t.right||t.left+t.width,t.bottom=t.bottom||t.top+t.height),t}function ft(t){return!t||"x"in t&&"y"in t||(t=F({},t),t.x=t.left||0,t.y=t.top||0,t.width=t.width||(t.right||0)-t.x,t.height=t.height||(t.bottom||0)-t.y),t}function pt(t,e,n){t.left&&(e.left+=n.x),t.right&&(e.right+=n.x),t.top&&(e.top+=n.y),t.bottom&&(e.bottom+=n.y),e.width=e.right-e.left,e.height=e.bottom-e.top}var gt=function(t,e,n){const i=t.options[n],r=i&&i.origin,o=r||t.options.origin,s=ut(o,t,e,[t&&e]);return ht(s)||{x:0,y:0}},mt=(t,e)=>Math.sqrt(t*t+e*e);class vt{constructor(t){this.type=void 0,this.target=void 0,this.currentTarget=void 0,this.interactable=void 0,this._interaction=void 0,this.timeStamp=void 0,this.immediatePropagationStopped=!1,this.propagationStopped=!1,this._interaction=t}preventDefault(){}stopPropagation(){this.propagationStopped=!0}stopImmediatePropagation(){this.immediatePropagationStopped=this.propagationStopped=!0}}Object.defineProperty(vt.prototype,"interaction",{get(){return this._interaction._proxy},set(){}});const bt={base:{preventDefault:"auto",deltaSource:"page"},perAction:{enabled:!1,origin:{x:0,y:0}},actions:{}};class yt extends vt{constructor(t,e,n,i,r,o,s){super(t),this.target=void 0,this.currentTarget=void 0,this.relatedTarget=null,this.screenX=void 0,this.screenY=void 0,this.button=void 0,this.buttons=void 0,this.ctrlKey=void 0,this.shiftKey=void 0,this.altKey=void 0,this.metaKey=void 0,this.page=void 0,this.client=void 0,this.delta=void 0,this.rect=void 0,this.x0=void 0,this.y0=void 0,this.t0=void 0,this.dt=void 0,this.duration=void 0,this.clientX0=void 0,this.clientY0=void 0,this.velocity=void 0,this.speed=void 0,this.swipe=void 0,this.timeStamp=void 0,this.axes=void 0,this.preEnd=void 0,r=r||t.element;const a=t.interactable,c=(a&&a.options||bt).deltaSource,l=gt(a,r,n),u="start"===i,h="end"===i,d=u?this:t.prevEvent,f=u?t.coords.start:h?{page:d.page,client:d.client,timeStamp:t.coords.cur.timeStamp}:t.coords.cur;this.page=F({},f.page),this.client=F({},f.client),this.rect=F({},t.rect),this.timeStamp=f.timeStamp,h||(this.page.x-=l.x,this.page.y-=l.y,this.client.x-=l.x,this.client.y-=l.y),this.ctrlKey=e.ctrlKey,this.altKey=e.altKey,this.shiftKey=e.shiftKey,this.metaKey=e.metaKey,this.button=e.button,this.buttons=e.buttons,this.target=r,this.currentTarget=r,this.preEnd=o,this.type=s||n+(i||""),this.interactable=a,this.t0=u?t.pointers[t.pointers.length-1].downTime:d.t0,this.x0=t.coords.start.page.x-l.x,this.y0=t.coords.start.page.y-l.y,this.clientX0=t.coords.start.client.x-l.x,this.clientY0=t.coords.start.client.y-l.y,this.delta=u||h?{x:0,y:0}:{x:this[c].x-d[c].x,y:this[c].y-d[c].y},this.dt=t.coords.delta.timeStamp,this.duration=this.timeStamp-this.t0,this.velocity=F({},t.coords.velocity[c]),this.speed=mt(this.velocity.x,this.velocity.y),this.swipe=h||"inertiastart"===i?this.getSwipe():null}getSwipe(){const t=this._interaction;if(t.prevEvent.speed<600||this.timeStamp-t.prevEvent.timeStamp>150)return null;let e=180*Math.atan2(t.prevEvent.velocityY,t.prevEvent.velocityX)/Math.PI;const n=22.5;e<0&&(e+=360);const 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}}}preventDefault(){}stopImmediatePropagation(){this.immediatePropagationStopped=this.propagationStopped=!0}stopPropagation(){this.propagationStopped=!0}}function xt(t,e){if(e.phaselessTypes[t])return!0;for(const n in e.map)if(0===t.indexOf(n)&&t.substr(n.length)in e.phases)return!0;return!1}Object.defineProperties(yt.prototype,{pageX:{get(){return this.page.x},set(t){this.page.x=t}},pageY:{get(){return this.page.y},set(t){this.page.y=t}},clientX:{get(){return this.client.x},set(t){this.client.x=t}},clientY:{get(){return this.client.y},set(t){this.client.y=t}},dx:{get(){return this.delta.x},set(t){this.delta.x=t}},dy:{get(){return this.delta.y},set(t){this.delta.y=t}},velocityX:{get(){return this.velocity.x},set(t){this.velocity.x=t}},velocityY:{get(){return this.velocity.y},set(t){this.velocity.y=t}}});class wt{get _defaults(){return{base:{},perAction:{},actions:{}}}constructor(t,e,n,i){this.options=void 0,this._actions=void 0,this.target=void 0,this.events=new J,this._context=void 0,this._win=void 0,this._doc=void 0,this._scopeEvents=void 0,this._rectChecker=void 0,this._actions=e.actions,this.target=t,this._context=e.context||n,this._win=S(ct(t)?this._context:t),this._doc=this._win.document,this._scopeEvents=i,this.set(e)}setOnEvents(t,e){return R.func(e.onstart)&&this.on(t+"start",e.onstart),R.func(e.onmove)&&this.on(t+"move",e.onmove),R.func(e.onend)&&this.on(t+"end",e.onend),R.func(e.oninertiastart)&&this.on(t+"inertiastart",e.oninertiastart),this}updatePerActionListeners(t,e,n){(R.array(e)||R.object(e))&&this.off(t,e),(R.array(n)||R.object(n))&&this.on(t,n)}setPerAction(t,e){const n=this._defaults;for(const i in e){const r=i,o=this.options[t],s=e[r];"listeners"===r&&this.updatePerActionListeners(t,o.listeners,s),R.array(s)?o[r]=B(s):R.plainObject(s)?(o[r]=F(o[r]||{},$(s)),R.object(n.perAction[r])&&"enabled"in n.perAction[r]&&(o[r].enabled=!1!==s.enabled)):R.bool(s)&&R.object(n.perAction[r])?o[r].enabled=s:o[r]=s}}getRect(t){return t=t||(R.element(this.target)?this.target:null),R.string(this.target)&&(t=t||this._context.querySelector(this.target)),at(t)}rectChecker(t){return R.func(t)?(this._rectChecker=t,this.getRect=t=>{const e=F({},this._rectChecker(t));return"width"in e||(e.width=e.right-e.left,e.height=e.bottom-e.top),e},this):null===t?(delete this.getRect,delete this._rectChecker,this):this.getRect}_backCompatOption(t,e){if(ct(e)||R.object(e)){this.options[t]=e;for(const n in this._actions.map)this.options[n][t]=e;return this}return this.options[t]}origin(t){return this._backCompatOption("origin",t)}deltaSource(t){return"page"===t||"client"===t?(this.options.deltaSource=t,this):this.options.deltaSource}context(){return this._context}inContext(t){return this._context===t.ownerDocument||Q(this._context,t)}testIgnoreAllow(t,e,n){return!this.testIgnore(t.ignoreFrom,e,n)&&this.testAllow(t.allowFrom,e,n)}testAllow(t,e,n){return!t||!!R.element(n)&&(R.string(t)?it(n,t,e):!!R.element(t)&&Q(t,n))}testIgnore(t,e,n){return!(!t||!R.element(n))&&(R.string(t)?it(n,t,e):!!R.element(t)&&Q(t,n))}fire(t){return this.events.fire(t),this}_onOff(t,e,n,i){R.object(e)&&!R.array(e)&&(i=n,n=null);const r="on"===t?"add":"remove",o=U(e,n);for(let s in o){"wheel"===s&&(s=C.wheelEvent);for(const e of o[s])xt(s,this._actions)?this.events[t](s,e):R.string(this.target)?this._scopeEvents[r+"Delegate"](this.target,this._context,s,e,i):this._scopeEvents[r](this.target,s,e,i)}return this}on(t,e,n){return this._onOff("on",t,e,n)}off(t,e,n){return this._onOff("off",t,e,n)}set(t){const e=this._defaults;R.object(t)||(t={}),this.options=$(e.base);for(const n in this._actions.methodDict){const i=n,r=this._actions.methodDict[i];this.options[i]={},this.setPerAction(i,F(F({},e.perAction),e.actions[i])),this[r](t[i])}for(const n in t)R.func(this[n])&&this[n](t[n]);return this}unset(){if(R.string(this.target))for(const t in this._scopeEvents.delegatedEvents){const e=this._scopeEvents.delegatedEvents[t];for(let n=e.length-1;n>=0;n--){const{selector:i,context:r,listeners:o}=e[n];i===this.target&&r===this._context&&e.splice(n,1);for(let e=o.length-1;e>=0;e--)this._scopeEvents.removeDelegate(this.target,this._context,t,o[e][0],o[e][1])}}else this._scopeEvents.remove(this.target,"all")}}class St{constructor(t){this.list=[],this.selectorMap={},this.scope=void 0,this.scope=t,t.addListeners({"interactable:unset":({interactable:t})=>{const{target:e,_context:n}=t,i=R.string(e)?this.selectorMap[e]:e[this.scope.id],r=N(i,t=>t.context===n);i[r]&&(i[r].context=null,i[r].interactable=null),i.splice(r,1)}})}new(t,e){e=F(e||{},{actions:this.scope.actions});const n=new this.scope.Interactable(t,e,this.scope.document,this.scope.events),i={context:n._context,interactable:n};return this.scope.addDocument(n._doc),this.list.push(n),R.string(t)?(this.selectorMap[t]||(this.selectorMap[t]=[]),this.selectorMap[t].push(i)):(n.target[this.scope.id]||Object.defineProperty(t,this.scope.id,{value:[],configurable:!0}),t[this.scope.id].push(i)),this.scope.fire("interactable:new",{target:t,options:e,interactable:n,win:this.scope._win}),n}get(t,e){const n=e&&e.context||this.scope.document,i=R.string(t),r=i?this.selectorMap[t]:t[this.scope.id];if(!r)return null;const o=W(r,e=>e.context===n&&(i||e.interactable.inContext(t)));return o&&o.interactable}forEachMatch(t,e){for(const n of this.list){let i;if((R.string(n.target)?R.element(t)&&nt(t,n.target):t===n.target)&&n.inContext(t)&&(i=e(n)),void 0!==i)return i}}}function Et(t,e){for(const n in e){const i=Et.prefixedPropREs;let r=!1;for(const t in i)if(0===n.indexOf(t)&&i[t].test(n)){r=!0;break}r||"function"===typeof e[n]||(t[n]=e[n])}return t}Et.prefixedPropREs={webkit:/(Movement[XY]|Radius[XY]|RotationAngle|Force)$/,moz:/(Pressure)$/};var Ot=Et;function Tt(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}function zt(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}function Mt(t,e){const n=Math.max(e.timeStamp/1e3,.001);t.page.x=e.page.x/n,t.page.y=e.page.y/n,t.client.x=e.client.x/n,t.client.y=e.client.y/n,t.timeStamp=n}function _t(t){t.page.x=0,t.page.y=0,t.client.x=0,t.client.y=0}function Pt(t){return t instanceof m.Event||t instanceof m.Touch}function It(t,e,n){return n=n||{},t=t||"page",n.x=e[t+"X"],n.y=e[t+"Y"],n}function jt(t,e){return e=e||{x:0,y:0},C.isOperaMobile&&Pt(t)?(It("screen",t,e),e.x+=window.scrollX,e.y+=window.scrollY):It("page",t,e),e}function Dt(t,e){return e=e||{},C.isOperaMobile&&Pt(t)?It("screen",t,e):It("client",t,e),e}function Rt(t){return R.number(t.pointerId)?t.pointerId:t.identifier}function kt(t,e,n){const i=e.length>1?Ct(e):e[0];jt(i,t.page),Dt(i,t.client),t.timeStamp=n}function At(t){const e=[];return R.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}function Ct(t){const e={pageX:0,pageY:0,clientX:0,clientY:0,screenX:0,screenY:0};for(const n of t)for(const t in e)e[t]+=n[t];for(const n in e)e[n]/=t.length;return e}function Ht(t){if(!t.length)return null;const e=At(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,right:r,bottom:o,width:r-n,height:o-i}}function Lt(t,e){const n=e+"X",i=e+"Y",r=At(t),o=r[0][n]-r[1][n],s=r[0][i]-r[1][i];return mt(o,s)}function Bt(t,e){const n=e+"X",i=e+"Y",r=At(t),o=r[1][n]-r[0][n],s=r[1][i]-r[0][i],a=180*Math.atan2(s,o)/Math.PI;return a}function Nt(t){return R.string(t.pointerType)?t.pointerType:R.number(t.pointerType)?[void 0,void 0,"touch","pen","mouse"][t.pointerType]:/touch/.test(t.type)||t instanceof m.Touch?"touch":"mouse"}function Wt(t){const e=R.func(t.composedPath)?t.composedPath():t.path;return[rt(e?e[0]:t.target),rt(t.currentTarget)]}function $t(){return{page:{x:0,y:0},client:{x:0,y:0},timeStamp:0}}function Ft(t){const e=[],n={},i=[],r={add:o,remove:s,addDelegate:a,removeDelegate:c,delegateListener:l,delegateUseCapture:u,delegatedEvents:n,documents:i,targets:e,supportsOptions:!1,supportsPassive:!1};function o(t,n,i,o){const s=Xt(o);let a=W(e,e=>e.eventTarget===t);a||(a={eventTarget:t,events:{}},e.push(a)),a.events[n]||(a.events[n]=[]),t.addEventListener&&!H(a.events[n],i)&&(t.addEventListener(n,i,r.supportsOptions?s:s.capture),a.events[n].push(i))}function s(t,n,i,o){const a=Xt(o),c=N(e,e=>e.eventTarget===t),l=e[c];if(!l||!l.events)return;if("all"===n){for(n in l.events)l.events.hasOwnProperty(n)&&s(t,n,"all");return}let u=!1;const h=l.events[n];if(h){if("all"===i){for(let e=h.length-1;e>=0;e--)s(t,n,h[e],a);return}for(let e=0;en.selector===t&&n.context===e);d||(d={selector:t,context:e,listeners:[]},h.push(d)),d.listeners.push([s,c])}function c(t,e,i,r,o){const a=Xt(o),c=n[i];let h,d=!1;if(c)for(h=c.length-1;h>=0;h--){const n=c[h];if(n.selector===t&&n.context===e){const{listeners:t}=n;for(let n=t.length-1;n>=0;n--){const[o,{capture:f,passive:p}]=t[n];if(o===r&&f===a.capture&&p===a.passive){t.splice(n,1),t.length||(c.splice(h,1),s(e,i,l),s(e,i,u,!0)),d=!0;break}}if(d)break}}}function l(t,e){const i=Xt(e),r=new Gt(t),o=n[t.type],[s]=Wt(t);let a=s;while(R.element(a)){for(let t=0;t{let r=t.interactables.get(n,i);return r||(r=t.interactables.new(n,i),r.events.global=e.globalEvents),r};return e.getPointerAverage=Ct,e.getTouchBBox=Ht,e.getTouchDistance=Lt,e.getTouchAngle=Bt,e.getElementRect=at,e.getElementClientRect=st,e.matchesSelector=nt,e.closest=tt,e.globalEvents={},e.version="1.10.2",e.scope=t,e.use=function(t,e){return this.scope.usePlugin(t,e),this},e.isSet=function(t,e){return!!this.scope.interactables.get(t,e&&e.context)},e.on=qt((function(t,e,n){if(R.string(t)&&-1!==t.search(" ")&&(t=t.trim().split(/ +/)),R.array(t)){for(const i of t)this.on(i,e,n);return this}if(R.object(t)){for(const n in t)this.on(n,t[n],e);return this}return xt(t,this.scope.actions)?this.globalEvents[t]?this.globalEvents[t].push(e):this.globalEvents[t]=[e]:this.scope.events.add(this.scope.document,t,e,{options:n}),this}),"The interact.on() method is being deprecated"),e.off=qt((function(t,e,n){if(R.string(t)&&-1!==t.search(" ")&&(t=t.trim().split(/ +/)),R.array(t)){for(const i of t)this.off(i,e,n);return this}if(R.object(t)){for(const n in t)this.off(n,t[n],e);return this}if(xt(t,this.scope.actions)){let n;t in this.globalEvents&&-1!==(n=this.globalEvents[t].indexOf(e))&&this.globalEvents[t].splice(n,1)}else this.scope.events.remove(this.scope.document,t,e,n);return this}),"The interact.off() method is being deprecated"),e.debug=function(){return this.scope},e.supportsTouch=function(){return C.supportsTouch},e.supportsPointerEvent=function(){return C.supportsPointerEvent},e.stop=function(){for(const t of this.scope.interactions.list)t.stop();return this},e.pointerMoveTolerance=function(t){return R.number(t)?(this.scope.interactions.pointerMoveTolerance=t,this):this.scope.interactions.pointerMoveTolerance},e.addDocument=function(t,e){this.scope.addDocument(t,e)},e.removeDocument=function(t){this.scope.removeDocument(t)},e}class Zt{constructor(t,e,n,i,r){this.id=void 0,this.pointer=void 0,this.event=void 0,this.downTime=void 0,this.downTarget=void 0,this.id=t,this.pointer=e,this.event=n,this.downTime=i,this.downTarget=r}}let Kt,Jt;(function(t){t["interactable"]="",t["element"]="",t["prepared"]="",t["pointerIsDown"]="",t["pointerWasMoved"]="",t["_proxy"]=""})(Kt||(Kt={})),function(t){t["start"]="",t["move"]="",t["end"]="",t["stop"]="",t["interacting"]=""}(Jt||(Jt={}));let Qt=0;class te{get pointerMoveTolerance(){return 1}constructor({pointerType:t,scopeFire:e}){this.interactable=null,this.element=null,this.rect=void 0,this._rects=void 0,this.edges=void 0,this._scopeFire=void 0,this.prepared={name:null,axis:null,edges:null},this.pointerType=void 0,this.pointers=[],this.downEvent=null,this.downPointer={},this._latestPointer={pointer:null,event:null,eventTarget:null},this.prevEvent=null,this.pointerIsDown=!1,this.pointerWasMoved=!1,this._interacting=!1,this._ending=!1,this._stopped=!0,this._proxy=null,this.simulation=null,this.doMove=qt((function(t){this.move(t)}),"The interaction.doMove() method has been renamed to interaction.move()"),this.coords={start:$t(),prev:$t(),cur:$t(),delta:$t(),velocity:$t()},this._id=Qt++,this._scopeFire=e,this.pointerType=t;const n=this;this._proxy={};for(const i in Kt)Object.defineProperty(this._proxy,i,{get(){return n[i]}});for(const i in Jt)Object.defineProperty(this._proxy,i,{value:(...t)=>n[i](...t)});this._scopeFire("interactions:new",{interaction:this})}pointerDown(t,e,n){const i=this.updatePointer(t,e,n,!0),r=this.pointers[i];this._scopeFire("interactions:down",{pointer:t,event:e,eventTarget:n,pointerIndex:i,pointerInfo:r,type:"down",interaction:this})}start(t,e,n){return!(this.interacting()||!this.pointerIsDown||this.pointers.length<("gesture"===t.name?2:1)||!e.options[t.name].enabled)&&(Vt(this.prepared,t),this.interactable=e,this.element=n,this.rect=e.getRect(n),this.edges=this.prepared.edges?F({},this.prepared.edges):{left:!0,right:!0,top:!0,bottom:!0},this._stopped=!1,this._interacting=this._doPhase({interaction:this,event:this.downEvent,phase:"start"})&&!this._stopped,this._interacting)}pointerMove(t,e,n){this.simulation||this.modification&&this.modification.endResult||this.updatePointer(t,e,n,!1);const i=this.coords.cur.page.x===this.coords.prev.page.x&&this.coords.cur.page.y===this.coords.prev.page.y&&this.coords.cur.client.x===this.coords.prev.client.x&&this.coords.cur.client.y===this.coords.prev.client.y;let r,o;this.pointerIsDown&&!this.pointerWasMoved&&(r=this.coords.cur.client.x-this.coords.start.client.x,o=this.coords.cur.client.y-this.coords.start.client.y,this.pointerWasMoved=mt(r,o)>this.pointerMoveTolerance);const s=this.getPointerIndex(t),a={pointer:t,pointerIndex:s,pointerInfo:this.pointers[s],event:e,type:"move",eventTarget:n,dx:r,dy:o,duplicate:i,interaction:this};i||Mt(this.coords.velocity,this.coords.delta),this._scopeFire("interactions:move",a),i||this.simulation||(this.interacting()&&(a.type=null,this.move(a)),this.pointerWasMoved&&Tt(this.coords.prev,this.coords.cur))}move(t){t&&t.event||_t(this.coords.delta),t=F({pointer:this._latestPointer.pointer,event:this._latestPointer.event,eventTarget:this._latestPointer.eventTarget,interaction:this},t||{}),t.phase="move",this._doPhase(t)}pointerUp(t,e,n,i){let r=this.getPointerIndex(t);-1===r&&(r=this.updatePointer(t,e,n,!1));const o=/cancel$/i.test(e.type)?"cancel":"up";this._scopeFire("interactions:"+o,{pointer:t,pointerIndex:r,pointerInfo:this.pointers[r],event:e,eventTarget:n,type:o,curEventTarget:i,interaction:this}),this.simulation||this.end(e),this.removePointer(t,e)}documentBlur(t){this.end(t),this._scopeFire("interactions:blur",{event:t,type:"blur",interaction:this})}end(t){let e;this._ending=!0,t=t||this._latestPointer.event,this.interacting()&&(e=this._doPhase({event:t,interaction:this,phase:"end"})),this._ending=!1,!0===e&&this.stop()}currentAction(){return this._interacting?this.prepared.name:null}interacting(){return this._interacting}stop(){this._scopeFire("interactions:stop",{interaction:this}),this.interactable=this.element=null,this._interacting=!1,this._stopped=!0,this.prepared.name=this.prevEvent=null}getPointerIndex(t){const e=Rt(t);return"mouse"===this.pointerType||"pen"===this.pointerType?this.pointers.length-1:N(this.pointers,t=>t.id===e)}getPointerInfo(t){return this.pointers[this.getPointerIndex(t)]}updatePointer(t,e,n,i){const r=Rt(t);let o=this.getPointerIndex(t),s=this.pointers[o];return i=!1!==i&&(i||/(down|start)$/i.test(e.type)),s?s.pointer=t:(s=new Zt(r,t,e,null,null),o=this.pointers.length,this.pointers.push(s)),kt(this.coords.cur,this.pointers.map(t=>t.pointer),this._now()),zt(this.coords.delta,this.coords.prev,this.coords.cur),i&&(this.pointerIsDown=!0,s.downTime=this.coords.cur.timeStamp,s.downTarget=n,Ot(this.downPointer,t),this.interacting()||(Tt(this.coords.start,this.coords.cur),Tt(this.coords.prev,this.coords.cur),this.downEvent=e,this.pointerWasMoved=!1)),this._updateLatestPointer(t,e,n),this._scopeFire("interactions:update-pointer",{pointer:t,event:e,eventTarget:n,down:i,pointerInfo:s,pointerIndex:o,interaction:this}),o}removePointer(t,e){const n=this.getPointerIndex(t);if(-1===n)return;const i=this.pointers[n];this._scopeFire("interactions:remove-pointer",{pointer:t,event:e,eventTarget:null,pointerIndex:n,pointerInfo:i,interaction:this}),this.pointers.splice(n,1),this.pointerIsDown=!1}_updateLatestPointer(t,e,n){this._latestPointer.pointer=t,this._latestPointer.event=e,this._latestPointer.eventTarget=n}destroy(){this._latestPointer.pointer=null,this._latestPointer.event=null,this._latestPointer.eventTarget=null}_createPreparedEvent(t,e,n,i){return new yt(this,t,this.prepared.name,e,this.element,n,i)}_fireEvent(t){this.interactable.fire(t),(!this.prevEvent||t.timeStamp>=this.prevEvent.timeStamp)&&(this.prevEvent=t)}_doPhase(t){const{event:e,phase:n,preEnd:i,type:r}=t,{rect:o}=this;o&&"move"===n&&(pt(this.edges,o,this.coords.delta[this.interactable.options.deltaSource]),o.width=o.right-o.left,o.height=o.bottom-o.top);const s=this._scopeFire("interactions:before-action-"+n,t);if(!1===s)return!1;const a=t.iEvent=this._createPreparedEvent(e,n,i,r);return this._scopeFire("interactions:action-"+n,t),"start"===n&&(this.prevEvent=a),this._fireEvent(a),this._scopeFire("interactions:after-action-"+n,t),!0}_now(){return Date.now()}}var ee=te;function ne(t){return/^(always|never|auto)$/.test(t)?(this.options.preventDefault=t,this):R.bool(t)?(this.options.preventDefault=t?"always":"never",this):this.options.preventDefault}function ie(t,e,n){const i=t.options.preventDefault;if("never"!==i)if("always"!==i){if(e.events.supportsPassive&&/^touch(start|move)$/.test(n.type)){const t=S(n.target).document,i=e.getDocOptions(t);if(!i||!i.events||!1!==i.events.passive)return}/^(mouse|pointer|touch)*(down|start)/i.test(n.type)||R.element(n.target)&&nt(n.target,"input,select,textarea,[contenteditable=true],[contenteditable=true] *")||n.preventDefault()}else n.preventDefault()}function re({interaction:t,event:e}){t.interactable&&t.interactable.checkAndPreventDefault(e)}function oe(t){const{Interactable:e}=t;e.prototype.preventDefault=ne,e.prototype.checkAndPreventDefault=function(e){return ie(this,t,e)},t.interactions.docEvents.push({type:"dragstart",listener(e){for(const n of t.interactions.list)if(n.element&&(n.element===e.target||Q(n.element,e.target)))return void n.interactable.checkAndPreventDefault(e)}})}var se={id:"core/interactablePreventDefault",install:oe,listeners:["down","move","up","cancel"].reduce((t,e)=>(t["interactions:"+e]=re,t),{})};const ae={methodOrder:["simulationResume","mouseOrPen","hasPointer","idle"],search(t){for(const e of ae.methodOrder){const n=ae[e](t);if(n)return n}return null},simulationResume({pointerType:t,eventType:e,eventTarget:n,scope:i}){if(!/down|start/i.test(e))return null;for(const r of i.interactions.list){let e=n;if(r.simulation&&r.simulation.allowResume&&r.pointerType===t)while(e){if(e===r.element)return r;e=et(e)}}return null},mouseOrPen({pointerId:t,pointerType:e,eventType:n,scope:i}){if("mouse"!==e&&"pen"!==e)return null;let r;for(const o of i.interactions.list)if(o.pointerType===e){if(o.simulation&&!ce(o,t))continue;if(o.interacting())return o;r||(r=o)}if(r)return r;for(const o of i.interactions.list)if(o.pointerType===e&&(!/down/i.test(n)||!o.simulation))return o;return null},hasPointer({pointerId:t,scope:e}){for(const n of e.interactions.list)if(ce(n,t))return n;return null},idle({pointerType:t,scope:e}){for(const n of e.interactions.list){if(1===n.pointers.length){const t=n.interactable;if(t&&(!t.options.gesture||!t.options.gesture.enabled))continue}else if(n.pointers.length>=2)continue;if(!n.interacting()&&t===n.pointerType)return n}return null}};function ce(t,e){return t.pointers.some(({id:t})=>t===e)}var le=ae;const ue=["pointerDown","pointerMove","pointerUp","updatePointer","removePointer","windowBlur"];function he(t){const e={};for(const o of ue)e[o]=de(o,t);const n=C.pEventTypes;let i;function r(){for(const e of t.interactions.list)if(e.pointerIsDown&&"touch"===e.pointerType&&!e._interacting)for(const n of e.pointers)t.documents.some(({doc:t})=>Q(t,n.downTarget))||e.removePointer(n.pointer,n.event)}i=m.PointerEvent?[{type:n.down,listener:r},{type:n.down,listener:e.pointerDown},{type:n.move,listener:e.pointerMove},{type:n.up,listener:e.pointerUp},{type:n.cancel,listener:e.pointerUp}]:[{type:"mousedown",listener:e.pointerDown},{type:"mousemove",listener:e.pointerMove},{type:"mouseup",listener:e.pointerUp},{type:"touchstart",listener:r},{type:"touchstart",listener:e.pointerDown},{type:"touchmove",listener:e.pointerMove},{type:"touchend",listener:e.pointerUp},{type:"touchcancel",listener:e.pointerUp}],i.push({type:"blur",listener(e){for(const n of t.interactions.list)n.documentBlur(e)}}),t.prevTouchTime=0,t.Interaction=class extends ee{get pointerMoveTolerance(){return t.interactions.pointerMoveTolerance}set pointerMoveTolerance(e){t.interactions.pointerMoveTolerance=e}_now(){return t.now()}},t.interactions={list:[],new(e){e.scopeFire=(e,n)=>t.fire(e,n);const n=new t.Interaction(e);return t.interactions.list.push(n),n},listeners:e,docEvents:i,pointerMoveTolerance:1},t.usePlugin(se)}function de(t,e){return function(n){const i=e.interactions.list,r=Nt(n),[o,s]=Wt(n),a=[];if(/^touch/.test(n.type)){e.prevTouchTime=e.now();for(const t of n.changedTouches){const i=t,c=Rt(i),l={pointer:i,pointerId:c,pointerType:r,eventType:n.type,eventTarget:o,curEventTarget:s,scope:e},u=fe(l);a.push([l.pointer,l.eventTarget,l.curEventTarget,u])}}else{let t=!1;if(!C.supportsPointerEvent&&/mouse/.test(n.type)){for(let e=0;epe(t,"add"),"scope:remove-document":t=>pe(t,"remove"),"interactable:unset":({interactable:t},e)=>{for(let n=e.interactions.list.length-1;n>=0;n--){const i=e.interactions.list[n];i.interactable===t&&(i.stop(),e.fire("interactions:destroy",{interaction:i}),i.destroy(),e.interactions.list.length>2&&e.interactions.list.splice(n,1))}}},onDocSignal:pe,doOnInteractions:de,methodNames:ue};var me=ge;class ve{constructor(){this.id="__interact_scope_"+Math.floor(100*Math.random()),this.isInitialized=!1,this.listenerMaps=[],this.browser=C,this.defaults=$(bt),this.Eventable=J,this.actions={map:{},phases:{start:!0,move:!0,end:!0},methodDict:{},phaselessTypes:{}},this.interactStatic=Ut(this),this.InteractEvent=yt,this.Interactable=void 0,this.interactables=new St(this),this._win=void 0,this.document=void 0,this.window=void 0,this.documents=[],this._plugins={list:[],map:{}},this.onWindowUnload=t=>this.removeDocument(t.target);const t=this;this.Interactable=class extends wt{get _defaults(){return t.defaults}set(e){return super.set(e),t.fire("interactable:set",{options:e,interactable:this}),this}unset(){super.unset(),t.interactables.list.splice(t.interactables.list.indexOf(this),1),t.fire("interactable:unset",{interactable:this})}}}addListeners(t,e){this.listenerMaps.push({id:e,map:t})}fire(t,e){for(const{map:{[t]:n}}of this.listenerMaps)if(n&&!1===n(e,this,t))return!1}init(t){return this.isInitialized?this:be(this,t)}pluginIsInstalled(t){return this._plugins.map[t.id]||-1!==this._plugins.list.indexOf(t)}usePlugin(t,e){if(!this.isInitialized)return this;if(this.pluginIsInstalled(t))return this;if(t.id&&(this._plugins.map[t.id]=t),this._plugins.list.push(t),t.install&&t.install(this,e),t.listeners&&t.before){let e=0;const n=this.listenerMaps.length,i=t.before.reduce((t,e)=>(t[e]=!0,t[ye(e)]=!0,t),{});for(;exe.init(t);function Oe(t){const{Interactable:e}=t;e.prototype.getAction=function(e,n,i,r){const o=Te(this,n,i,r,t);return this.options.actionChecker?this.options.actionChecker(e,n,o,this,r,i):o},e.prototype.ignoreFrom=qt((function(t){return this._backCompatOption("ignoreFrom",t)}),"Interactable.ignoreFrom() has been deprecated. Use Interactble.draggable({ignoreFrom: newValue})."),e.prototype.allowFrom=qt((function(t){return this._backCompatOption("allowFrom",t)}),"Interactable.allowFrom() has been deprecated. Use Interactble.draggable({allowFrom: newValue})."),e.prototype.actionChecker=Me,e.prototype.styleCursor=ze}function Te(t,e,n,i,r){const o=t.getRect(i),s=e.buttons||{0:1,1:4,3:8,4:16}[e.button],a={action:null,interactable:t,interaction:n,element:i,rect:o,buttons:s};return r.fire("auto-start:check",a),a.action}function ze(t){return R.bool(t)?(this.options.styleCursor=t,this):null===t?(delete this.options.styleCursor,this):this.options.styleCursor}function Me(t){return R.func(t)?(this.options.actionChecker=t,this):null===t?(delete this.options.actionChecker,this):this.options.actionChecker}"object"===typeof window&&window&&Ee(window);var _e={id:"auto-start/interactableMethods",install:Oe};function Pe(t){const{interactStatic:e,defaults:n}=t;t.usePlugin(_e),n.base.actionChecker=null,n.base.styleCursor=!0,F(n.perAction,{manualStart:!1,max:1/0,maxPerElement:1,allowFrom:null,ignoreFrom:null,mouseButtons:1}),e.maxInteractions=e=>Be(e,t),t.autoStart={maxInteractions:1/0,withinInteractionLimit:Le,cursorElement:null}}function Ie({interaction:t,pointer:e,event:n,eventTarget:i},r){if(t.interacting())return;const o=Ce(t,e,n,i,r);He(t,o,r)}function je({interaction:t,pointer:e,event:n,eventTarget:i},r){if("mouse"!==t.pointerType||t.pointerIsDown||t.interacting())return;const o=Ce(t,e,n,i,r);He(t,o,r)}function De(t,e){const{interaction:n}=t;if(!n.pointerIsDown||n.interacting()||!n.pointerWasMoved||!n.prepared.name)return;e.fire("autoStart:before-start",t);const{interactable:i}=n,r=n.prepared.name;r&&i&&(i.options[r].manualStart||!Le(i,n.element,n.prepared,e)?n.stop():(n.start(n.prepared,i,n.element),We(n,e)))}function Re({interaction:t},e){const{interactable:n}=t;n&&n.options.styleCursor&&Ne(t.element,"",e)}function ke(t,e,n,i,r){return e.testIgnoreAllow(e.options[t.name],n,i)&&e.options[t.name].enabled&&Le(e,n,t,r)?t:null}function Ae(t,e,n,i,r,o,s){for(let a=0,c=i.length;a=a)return!1;if(h.interactable===t){if(l+=i===n.name?1:0,l>=o)return!1;if(h.element===e&&(u++,i===n.name&&u>=s))return!1}}}return a>0}function Be(t,e){return R.number(t)?(e.autoStart.maxInteractions=t,this):e.autoStart.maxInteractions}function Ne(t,e,n){const{cursorElement:i}=n.autoStart;i&&i!==t&&(i.style.cursor=""),t.ownerDocument.documentElement.style.cursor=e,t.style.cursor=e,n.autoStart.cursorElement=e?t:null}function We(t,e){const{interactable:n,element:i,prepared:r}=t;if("mouse"!==t.pointerType||!n||!n.options.styleCursor)return void(e.autoStart.cursorElement&&Ne(e.autoStart.cursorElement,"",e));let o="";if(r.name){const s=n.options[r.name].cursorChecker;o=R.func(s)?s(r,n,i,t._interacting):e.actions.map[r.name].getCursor(r)}Ne(t.element,o||"",e)}const $e={id:"auto-start/base",before:["actions"],install:Pe,listeners:{"interactions:down":Ie,"interactions:move":(t,e)=>{je(t,e),De(t,e)},"interactions:stop":Re},maxInteractions:Be,withinInteractionLimit:Le,validateAction:ke};var Fe=$e;function Ge({interaction:t,eventTarget:e,dx:n,dy:i},r){if("drag"!==t.prepared.name)return;const o=Math.abs(n),s=Math.abs(i),a=t.interactable.options.drag,c=a.startAxis,l=o>s?"x":o{t.autoStartHoldTimer=null},"autoStart:prepared":({interaction:t})=>{const e=Ve(t);e>0&&(t.autoStartHoldTimer=setTimeout(()=>{t.start(t.prepared,t.interactable,t.element)},e))},"interactions:move":({interaction:t,duplicate:e})=>{t.autoStartHoldTimer&&t.pointerWasMoved&&!e&&(clearTimeout(t.autoStartHoldTimer),t.autoStartHoldTimer=null)},"autoStart:before-start":({interaction:t})=>{const e=Ve(t);e>0&&(t.prepared.name=null)}},getHoldDuration:Ve};var Ze=Ue,Ke={id:"auto-start",install(t){t.usePlugin(Fe),t.usePlugin(Ze),t.usePlugin(Ye)}};function Je(t){const{defaults:e,actions:n}=t;t.autoScroll=Qe,Qe.now=()=>t.now(),n.phaselessTypes.autoscroll=!0,e.perAction.autoScroll=Qe.defaults}"object"===typeof window&&window&&Ee(window),Se.use(Ke);const Qe={defaults:{enabled:!1,margin:60,container:null,speed:300},now:Date.now,interaction:null,i:0,x:0,y:0,isScrolling:!1,prevTime:0,margin:0,speed:0,start(t){Qe.isScrolling=!0,V.cancel(Qe.i),t.autoScroll=Qe,Qe.interaction=t,Qe.prevTime=Qe.now(),Qe.i=V.request(Qe.scroll)},stop(){Qe.isScrolling=!1,Qe.interaction&&(Qe.interaction.autoScroll=null),V.cancel(Qe.i)},scroll(){const{interaction:t}=Qe,{interactable:e,element:n}=t,i=t.prepared.name,r=e.options[i].autoScroll,o=tn(r.container,e,n),s=Qe.now(),a=(s-Qe.prevTime)/1e3,c=r.speed*a;if(c>=1){const i={x:Qe.x*c,y:Qe.y*c};if(i.x||i.y){const r=en(o);R.window(o)?o.scrollBy(i.x,i.y):o&&(o.scrollLeft+=i.x,o.scrollTop+=i.y);const s=en(o),a={x:s.x-r.x,y:s.y-r.y};(a.x||a.y)&&e.fire({type:"autoscroll",target:n,interactable:e,delta:a,interaction:t,container:o})}Qe.prevTime=s}Qe.isScrolling&&(V.cancel(Qe.i),Qe.i=V.request(Qe.scroll))},check(t,e){var n;const i=t.options;return null==(n=i[e].autoScroll)?void 0:n.enabled},onInteractionMove({interaction:t,pointer:e}){if(!t.interacting()||!Qe.check(t.interactable,t.prepared.name))return;if(t.simulation)return void(Qe.x=Qe.y=0);let n,i,r,o;const{interactable:s,element:a}=t,c=t.prepared.name,l=s.options[c].autoScroll,u=tn(l.container,s,a);if(R.window(u))o=e.clientXu.innerWidth-Qe.margin,r=e.clientY>u.innerHeight-Qe.margin;else{const t=st(u);o=e.clientXt.right-Qe.margin,r=e.clientY>t.bottom-Qe.margin}Qe.x=i?1:o?-1:0,Qe.y=r?1:n?-1:0,Qe.isScrolling||(Qe.margin=l.margin,Qe.speed=l.speed,Qe.start(t))}};function tn(t,e,n){return(R.string(t)?lt(t,e,n):t)||S(n)}function en(t){return R.window(t)&&(t=window.document.body),{x:t.scrollLeft,y:t.scrollTop}}const nn={id:"auto-scroll",install:Je,listeners:{"interactions:new":({interaction:t})=>{t.autoScroll=null},"interactions:destroy":({interaction:t})=>{t.autoScroll=null,Qe.stop(),Qe.interaction&&(Qe.interaction=null)},"interactions:stop":Qe.stop,"interactions:action-move":t=>Qe.onInteractionMove(t)}};var rn=nn;function on(t){const{actions:e,Interactable:n,defaults:i}=t;n.prototype.draggable=ln.draggable,e.map.drag=ln,e.methodDict.drag="draggable",i.actions.drag=ln.defaults}function sn({interaction:t}){if("drag"!==t.prepared.name)return;const e=t.prepared.axis;"x"===e?(t.coords.cur.page.y=t.coords.start.page.y,t.coords.cur.client.y=t.coords.start.client.y,t.coords.velocity.client.y=0,t.coords.velocity.page.y=0):"y"===e&&(t.coords.cur.page.x=t.coords.start.page.x,t.coords.cur.client.x=t.coords.start.client.x,t.coords.velocity.client.x=0,t.coords.velocity.page.x=0)}function an({iEvent:t,interaction:e}){if("drag"!==e.prepared.name)return;const n=e.prepared.axis;if("x"===n||"y"===n){const i="x"===n?"y":"x";t.page[i]=e.coords.start.page[i],t.client[i]=e.coords.start.client[i],t.delta[i]=0}}"object"===typeof window&&window&&Ee(window),Se.use(rn);const cn=function(t){return R.object(t)?(this.options.drag.enabled=!1!==t.enabled,this.setPerAction("drag",t),this.setOnEvents("drag",t),/^(xy|x|y|start)$/.test(t.lockAxis)&&(this.options.drag.lockAxis=t.lockAxis),/^(xy|x|y)$/.test(t.startAxis)&&(this.options.drag.startAxis=t.startAxis),this):R.bool(t)?(this.options.drag.enabled=t,this):this.options.drag},ln={id:"actions/drag",install:on,listeners:{"interactions:before-action-move":sn,"interactions:action-resume":sn,"interactions:action-move":an,"auto-start:check":t=>{const{interaction:e,interactable:n,buttons:i}=t,r=n.options.drag;if(r&&r.enabled&&(!e.pointerIsDown||!/mouse|pointer/.test(e.pointerType)||0!==(i&n.options.drag.mouseButtons)))return t.action={name:"drag",axis:"start"===r.lockAxis?r.startAxis:r.lockAxis},!1}},draggable:cn,beforeMove:sn,move:an,defaults:{startAxis:"xy",lockAxis:"xy"},getCursor(){return"move"}};var un=ln;function hn(t){const{actions:e,browser:n,Interactable:i,defaults:r}=t;xn.cursors=gn(n),xn.defaultMargin=n.supportsTouch||n.supportsPointerEvent?20:10,i.prototype.resizable=function(e){return fn(this,e,t)},e.map.resize=xn,e.methodDict.resize="resizable",r.actions.resize=xn.defaults}function dn(t){const{interaction:e,interactable:n,element:i,rect:r,buttons:o}=t;if(!r)return;const s=F({},e.coords.cur.page),a=n.options.resize;if(a&&a.enabled&&(!e.pointerIsDown||!/mouse|pointer/.test(e.pointerType)||0!==(o&a.mouseButtons))){if(R.object(a.edges)){const n={left:!1,right:!1,top:!1,bottom:!1};for(const t in n)n[t]=pn(t,a.edges[t],s,e._latestPointer.eventTarget,i,r,a.margin||xn.defaultMargin);n.left=n.left&&!n.right,n.top=n.top&&!n.bottom,(n.left||n.right||n.top||n.bottom)&&(t.action={name:"resize",edges:n})}else{const e="y"!==a.axis&&s.x>r.right-xn.defaultMargin,n="x"!==a.axis&&s.y>r.bottom-xn.defaultMargin;(e||n)&&(t.action={name:"resize",axes:(e?"x":"")+(n?"y":"")})}return!t.action&&void 0}}function fn(t,e,n){return R.object(e)?(t.options.resize.enabled=!1!==e.enabled,t.setPerAction("resize",e),t.setOnEvents("resize",e),R.string(e.axis)&&/^x$|^y$|^xy$/.test(e.axis)?t.options.resize.axis=e.axis:null===e.axis&&(t.options.resize.axis=n.defaults.actions.resize.axis),R.bool(e.preserveAspectRatio)?t.options.resize.preserveAspectRatio=e.preserveAspectRatio:R.bool(e.square)&&(t.options.resize.square=e.square),t):R.bool(e)?(t.options.resize.enabled=e,t):t.options.resize}function pn(t,e,n,i,r,o,s){if(!e)return!1;if(!0===e){const e=R.number(o.width)?o.width:o.right-o.left,i=R.number(o.height)?o.height:o.bottom-o.top;if(s=Math.min(s,Math.abs(("left"===t||"right"===t?e:i)/2)),e<0&&("left"===t?t="right":"right"===t&&(t="left")),i<0&&("top"===t?t="bottom":"bottom"===t&&(t="top")),"left"===t)return n.x<(e>=0?o.left:o.right)+s;if("top"===t)return n.y<(i>=0?o.top:o.bottom)+s;if("right"===t)return n.x>(e>=0?o.right:o.left)-s;if("bottom"===t)return n.y>(i>=0?o.bottom:o.top)-s}return!!R.element(i)&&(R.element(e)?e===i:it(i,e,r))}function gn(t){return t.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"}}function mn({iEvent:t,interaction:e}){if("resize"!==e.prepared.name||!e.prepared.edges)return;const n=t,i=e.rect;e._rects={start:F({},i),corrected:F({},i),previous:F({},i),delta:{left:0,right:0,width:0,top:0,bottom:0,height:0}},n.edges=e.prepared.edges,n.rect=e._rects.corrected,n.deltaRect=e._rects.delta}function vn({iEvent:t,interaction:e}){if("resize"!==e.prepared.name||!e.prepared.edges)return;const n=t,i=e.interactable.options.resize,r=i.invert,o="reposition"===r||"negate"===r,s=e.rect,{start:a,corrected:c,delta:l,previous:u}=e._rects;if(F(u,c),o){if(F(c,s),"reposition"===r){if(c.top>c.bottom){const t=c.top;c.top=c.bottom,c.bottom=t}if(c.left>c.right){const t=c.left;c.left=c.right,c.right=t}}}else c.top=Math.min(s.top,a.bottom),c.bottom=Math.max(s.bottom,a.top),c.left=Math.min(s.left,a.right),c.right=Math.max(s.right,a.left);c.width=c.right-c.left,c.height=c.bottom-c.top;for(const h in c)l[h]=c[h]-u[h];n.edges=e.prepared.edges,n.rect=c,n.deltaRect=l}function bn({iEvent:t,interaction:e}){if("resize"!==e.prepared.name||!e.prepared.edges)return;const n=t;n.edges=e.prepared.edges,n.rect=e._rects.corrected,n.deltaRect=e._rects.delta}function yn({iEvent:t,interaction:e}){if("resize"!==e.prepared.name||!e.resizeAxes)return;const n=e.interactable.options,i=t;n.resize.square?("y"===e.resizeAxes?i.delta.x=i.delta.y:i.delta.y=i.delta.x,i.axes="xy"):(i.axes=e.resizeAxes,"x"===e.resizeAxes?i.delta.y=0:"y"===e.resizeAxes&&(i.delta.x=0))}"object"===typeof window&&window&&Ee(window),Se.use(un);const xn={id:"actions/resize",before:["actions/drag"],install:hn,listeners:{"interactions:new":({interaction:t})=>{t.resizeAxes="xy"},"interactions:action-start":t=>{mn(t),yn(t)},"interactions:action-move":t=>{vn(t),yn(t)},"interactions:action-end":bn,"auto-start:check":dn},defaults:{square:!1,preserveAspectRatio:!1,axis:"xy",margin:NaN,edges:null,invert:"none"},cursors:null,getCursor({edges:t,axis:e,name:n}){const i=xn.cursors;let r=null;if(e)r=i[n+e];else if(t){let e="";for(const n of["top","bottom","left","right"])t[n]&&(e+=n);r=i[e]}return r},defaultMargin:null};var wn=xn;"object"===typeof window&&window&&Ee(window),Se.use(wn);var Sn=()=>{},En=()=>{},On=t=>{const e=[["x","y"],["left","top"],["right","bottom"],["width","height"]].filter(([e,n])=>e in t||n in t),n=(n,i)=>{const{range:r,limits:o={left:-1/0,right:1/0,top:-1/0,bottom:1/0},offset:s={x:0,y:0}}=t,a={range:r,grid:t,x:null,y:null};for(const[c,l]of e){const e=Math.round((n-s.x)/t[c]),r=Math.round((i-s.y)/t[l]);a[c]=Math.max(o.left,Math.min(o.right,e*t[c]+s.x)),a[l]=Math.max(o.top,Math.min(o.bottom,r*t[l]+s.y))}return a};return n.grid=t,n.coordFields=e,n};const Tn={id:"snappers",install(t){const{interactStatic:e}=t;e.snappers=F(e.snappers||{},i),e.createSnapGrid=e.snappers.grid}};var zn=Tn;class Mn{constructor(t){this.states=[],this.startOffset={left:0,right:0,top:0,bottom:0},this.startDelta=null,this.result=null,this.endResult=null,this.edges=void 0,this.interaction=void 0,this.interaction=t,this.result=_n()}start({phase:t},e){const{interaction:n}=this,i=Pn(n);this.prepareStates(i),this.edges=F({},n.edges),this.startOffset=In(n.rect,e),this.startDelta={x:0,y:0};const r={phase:t,pageCoords:e,preEnd:!1};this.result=_n(),this.startAll(r);const o=this.result=this.setAll(r);return o}fillArg(t){const{interaction:e}=this;t.interaction=e,t.interactable=e.interactable,t.element=e.element,t.rect=t.rect||e.rect,t.edges=this.edges,t.startOffset=this.startOffset}startAll(t){this.fillArg(t);for(const e of this.states)e.methods.start&&(t.state=e,e.methods.start(t))}setAll(t){this.fillArg(t);const{phase:e,preEnd:n,skipModifiers:i,rect:r}=t;t.coords=F({},t.pageCoords),t.rect=F({},r);const o=i?this.states.slice(i):this.states,s=_n(t.coords,t.rect);for(const l of o){const{options:i}=l,r=F({},t.coords);let o=null;l.methods.set&&this.shouldDo(i,n,e)&&(t.state=l,o=l.methods.set(t),pt(this.interaction.edges,t.rect,{x:t.coords.x-r.x,y:t.coords.y-r.y})),s.eventProps.push(o)}s.delta.x=t.coords.x-t.pageCoords.x,s.delta.y=t.coords.y-t.pageCoords.y,s.rectDelta.left=t.rect.left-r.left,s.rectDelta.right=t.rect.right-r.right,s.rectDelta.top=t.rect.top-r.top,s.rectDelta.bottom=t.rect.bottom-r.bottom;const a=this.result.coords,c=this.result.rect;if(a&&c){const t=s.rect.left!==c.left||s.rect.right!==c.right||s.rect.top!==c.top||s.rect.bottom!==c.bottom;s.changed=t||a.x!==s.coords.x||a.y!==s.coords.y}return s}applyToInteraction(t){const{interaction:e}=this,{phase:n}=t,i=e.coords.cur,r=e.coords.start,{result:o,startDelta:s}=this,a=o.delta;"start"===n&&F(this.startDelta,o.delta);for(const[u,h]of[[r,s],[i,a]])u.page.x+=h.x,u.page.y+=h.y,u.client.x+=h.x,u.client.y+=h.y;const{rectDelta:c}=this.result,l=t.rect||e.rect;l.left+=c.left,l.right+=c.right,l.top+=c.top,l.bottom+=c.bottom,l.width=l.right-l.left,l.height=l.bottom-l.top}setAndApply(t){const{interaction:e}=this,{phase:n,preEnd:i,skipModifiers:r}=t,o=this.setAll({preEnd:i,phase:n,pageCoords:t.modifiedCoords||e.coords.cur.page});if(this.result=o,!o.changed&&(!r||r$(t)),this.result=_n(F({},t.result.coords),F({},t.result.rect))}destroy(){for(const t in this)this[t]=null}}function _n(t,e){return{rect:e,coords:t,delta:{x:0,y:0},rectDelta:{left:0,right:0,top:0,bottom:0},eventProps:[],changed:!0}}function Pn(t){const e=t.interactable.options[t.prepared.name],n=e.modifiers;return n&&n.length?n:["snap","snapSize","snapEdges","restrict","restrictEdges","restrictSize"].map(t=>{const n=e[t];return n&&n.enabled&&{options:n,methods:n._methods}}).filter(t=>!!t)}function In(t,e){return t?{left:e.x-t.left,top:e.y-t.top,right:t.right-e.x,bottom:t.bottom-e.y}:{left:0,top:0,right:0,bottom:0}}function jn(t,e){const{defaults:n}=t,i={start:t.start,set:t.set,beforeEnd:t.beforeEnd,stop:t.stop},r=t=>{const r=t||{};r.enabled=!1!==r.enabled;for(const e in n)e in r||(r[e]=n[e]);const o={options:r,methods:i,name:e,enable:()=>(r.enabled=!0,o),disable:()=>(r.enabled=!1,o)};return o};return e&&"string"===typeof e&&(r._defaults=n,r._methods=i),r}function Dn({iEvent:t,interaction:{modification:{result:e}}}){e&&(t.modifiers=e.eventProps)}const Rn={id:"modifiers/base",before:["actions"],install:t=>{t.defaults.perAction.modifiers=[]},listeners:{"interactions:new":({interaction:t})=>{t.modification=new Mn(t)},"interactions:before-action-start":t=>{const{modification:e}=t.interaction;e.start(t,t.interaction.coords.start.page),t.interaction.edges=e.edges,e.applyToInteraction(t)},"interactions:before-action-move":t=>t.interaction.modification.setAndApply(t),"interactions:before-action-end":t=>t.interaction.modification.beforeEnd(t),"interactions:action-start":Dn,"interactions:action-move":Dn,"interactions:action-end":Dn,"interactions:after-action-start":t=>t.interaction.modification.restoreInteractionCoords(t),"interactions:after-action-move":t=>t.interaction.modification.restoreInteractionCoords(t),"interactions:stop":t=>t.interaction.modification.stop(t)}};var kn=Rn;const An={start(t){const{state:e,rect:n,edges:i,pageCoords:r}=t;let{ratio:o}=e.options;const{equalDelta:s,modifiers:a}=e.options;"preserve"===o&&(o=n.width/n.height),e.startCoords=F({},r),e.startRect=F({},n),e.ratio=o,e.equalDelta=s;const c=e.linkedEdges={top:i.top||i.left&&!i.bottom,left:i.left||i.top&&!i.right,bottom:i.bottom||i.right&&!i.top,right:i.right||i.bottom&&!i.left};if(e.xIsPrimaryAxis=!(!i.left&&!i.right),e.equalDelta)e.edgeSign=(c.left?1:-1)*(c.top?1:-1);else{const t=e.xIsPrimaryAxis?c.top:c.left;e.edgeSign=t?-1:1}if(F(t.edges,c),!a||!a.length)return;const l=new Mn(t.interaction);l.copyFrom(t.interaction.modification),l.prepareStates(a),e.subModification=l,l.startAll({...t})},set(t){const{state:e,rect:n,coords:i}=t,r=F({},i),o=e.equalDelta?Cn:Hn;if(o(e,e.xIsPrimaryAxis,i,n),!e.subModification)return null;const s=F({},n);pt(e.linkedEdges,s,{x:i.x-r.x,y:i.y-r.y});const a=e.subModification.setAll({...t,rect:s,edges:e.linkedEdges,pageCoords:i,prevCoords:i,prevRect:s}),{delta:c}=a;if(a.changed){const t=Math.abs(c.x)>Math.abs(c.y);o(e,t,a.coords,a.rect),F(i,a.coords)}return a.eventProps},defaults:{ratio:"preserve",equalDelta:!1,modifiers:[],enabled:!1}};function Cn({startCoords:t,edgeSign:e},n,i){n?i.y=t.y+(i.x-t.x)*e:i.x=t.x+(i.y-t.y)*e}function Hn({startRect:t,startCoords:e,ratio:n,edgeSign:i},r,o,s){if(r){const r=s.width/n;o.y=e.y+(r-t.height)*i}else{const r=s.height*n;o.x=e.x+(r-t.width)*i}}var Ln=jn(An,"aspectRatio");const Bn=()=>{};Bn._defaults={};var Nn=Bn;function Wn({rect:t,startOffset:e,state:n,interaction:i,pageCoords:r}){const{options:o}=n,{elementRect:s}=o,a=F({left:0,top:0,right:0,bottom:0},o.offset||{});if(t&&s){const n=Fn(o.restriction,i,r);if(n){const e=n.right-n.left-t.width,i=n.bottom-n.top-t.height;e<0&&(a.left+=e,a.right+=e),i<0&&(a.top+=i,a.bottom+=i)}a.left+=e.left-t.width*s.left,a.top+=e.top-t.height*s.top,a.right+=e.right-t.width*(1-s.right),a.bottom+=e.bottom-t.height*(1-s.bottom)}n.offset=a}function $n({coords:t,interaction:e,state:n}){const{options:i,offset:r}=n,o=Fn(i.restriction,e,t);if(!o)return;const s=dt(o);t.x=Math.max(Math.min(s.right-r.right,t.x),s.left+r.left),t.y=Math.max(Math.min(s.bottom-r.bottom,t.y),s.top+r.top)}function Fn(t,e,n){return R.func(t)?ut(t,e.interactable,e.element,[n.x,n.y,e]):ut(t,e.interactable,e.element)}const Gn={restriction:null,elementRect:null,offset:null,endOnly:!1,enabled:!1},Xn={start:Wn,set:$n,defaults:Gn};var Yn=jn(Xn,"restrict");const qn={top:1/0,left:1/0,bottom:-1/0,right:-1/0},Vn={top:-1/0,left:-1/0,bottom:1/0,right:1/0};function Un({interaction:t,startOffset:e,state:n}){const{options:i}=n;let r;if(i){const e=Fn(i.offset,t,t.coords.start.page);r=ht(e)}r=r||{x:0,y:0},n.offset={top:r.y+e.top,left:r.x+e.left,bottom:r.y-e.bottom,right:r.x-e.right}}function Zn({coords:t,edges:e,interaction:n,state:i}){const{offset:r,options:o}=i;if(!e)return;const s=F({},t),a=Fn(o.inner,n,s)||{},c=Fn(o.outer,n,s)||{};Kn(a,qn),Kn(c,Vn),e.top?t.y=Math.min(Math.max(c.top+r.top,s.y),a.top+r.top):e.bottom&&(t.y=Math.max(Math.min(c.bottom+r.bottom,s.y),a.bottom+r.bottom)),e.left?t.x=Math.min(Math.max(c.left+r.left,s.x),a.left+r.left):e.right&&(t.x=Math.max(Math.min(c.right+r.right,s.x),a.right+r.right))}function Kn(t,e){for(const n of["top","left","bottom","right"])n in t||(t[n]=e[n]);return t}const Jn={inner:null,outer:null,offset:null,endOnly:!1,enabled:!1},Qn={noInner:qn,noOuter:Vn,start:Un,set:Zn,defaults:Jn};var ti=jn(Qn,"restrictEdges");const ei=F({get elementRect(){return{top:0,left:0,bottom:1,right:1}},set elementRect(t){}},Xn.defaults),ni={start:Xn.start,set:Xn.set,defaults:ei};var ii=jn(ni,"restrictRect");const ri={width:-1/0,height:-1/0},oi={width:1/0,height:1/0};function si(t){return Qn.start(t)}function ai(t){const{interaction:e,state:n,rect:i,edges:r}=t,{options:o}=n;if(!r)return;const s=ft(Fn(o.min,e,t.coords))||ri,a=ft(Fn(o.max,e,t.coords))||oi;n.options={endOnly:o.endOnly,inner:F({},Qn.noInner),outer:F({},Qn.noOuter)},r.top?(n.options.inner.top=i.bottom-s.height,n.options.outer.top=i.bottom-a.height):r.bottom&&(n.options.inner.bottom=i.top+s.height,n.options.outer.bottom=i.top+a.height),r.left?(n.options.inner.left=i.right-s.width,n.options.outer.left=i.right-a.width):r.right&&(n.options.inner.right=i.left+s.width,n.options.outer.right=i.left+a.width),Qn.set(t),n.options=o}const ci={min:null,max:null,endOnly:!1,enabled:!1},li={start:si,set:ai,defaults:ci};var ui=jn(li,"restrictSize");function hi(t){const{interaction:e,interactable:n,element:i,rect:r,state:o,startOffset:s}=t,{options:a}=o,c=a.offsetWithOrigin?fi(t):{x:0,y:0};let l;if("startCoords"===a.offset)l={x:e.coords.start.page.x,y:e.coords.start.page.y};else{const t=ut(a.offset,n,i,[e]);l=ht(t)||{x:0,y:0},l.x+=c.x,l.y+=c.y}const{relativePoints:u}=a;o.offsets=r&&u&&u.length?u.map((t,e)=>({index:e,relativePoint:t,x:s.left-r.width*t.x+l.x,y:s.top-r.height*t.y+l.y})):[F({index:0,relativePoint:null},l)]}function di(t){const{interaction:e,coords:n,state:i}=t,{options:r,offsets:o}=i,s=gt(e.interactable,e.element,e.prepared.name),a=F({},n),c=[];r.offsetWithOrigin||(a.x-=s.x,a.y-=s.y);for(const u of o){const t=a.x-u.x,n=a.y-u.y;for(let i=0,o=r.targets.length;i{}}:{id:Ci,install:Di,listeners:{"interactions:action-start":({interaction:t},e)=>{for(const n of Ri){const i=t.interactable&&t.interactable.options;i&&i.devTools&&i.devTools.ignore[n.name]||!n.perform(t)||e.logger.warn(Pi+n.text,...n.getInfo(t))}}},checks:Ri,CheckName:Mi,links:Ii,prefix:Pi};var Li=Hi;function Bi(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function Ni(t){for(var e=1;ethis.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?Object(a["k"])(e.top,e.right,e.width,e.height):Object(a["j"])(e.top,e.left,e.width,e.height):this.renderRtl?Object(a["i"])(e.top,e.right,e.width,e.height):Object(a["h"])(e.top,e.left,e.width,e.height),this.style=t},emitContainerResized:function(){for(var t={},e=0,n=["width","height"];ethis.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=c(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(),l=a.left/this.transformScale,h=s.left/this.transformScale,d=a.right/this.transformScale,f=s.right/this.transformScale,p=a.top/this.transformScale,g=s.top/this.transformScale;this.renderRtl?o.left=-1*(d-f):o.left=l-h,o.top=p-g,this.dragging=o,this.isDragging=!0;break;case"dragend":if(!this.isDragging)return;var m=t.target.offsetParent.getBoundingClientRect(),v=t.target.getBoundingClientRect(),b=v.left/this.transformScale,y=m.left/this.transformScale,x=v.right/this.transformScale,w=m.right/this.transformScale,S=v.top/this.transformScale,E=m.top/this.transformScale;this.renderRtl?o.left=-1*(x-w):o.left=b-y,o.top=S-E,this.dragging=null,this.isDragging=!1;break;case"dragmove":var O=u(this.lastX,this.lastY,i,r);if(this.renderRtl?o.left=this.dragging.left-O.deltaX/this.transformScale:o.left=this.dragging.left+O.deltaX/this.transformScale,o.top=this.dragging.top+O.deltaY/this.transformScale,this.bounded){var T=t.target.offsetParent.clientHeight-this.calcGridItemWHPx(this.h,this.rowHeight,this.margin[1]);o.top=this.clamp(o.top,0,T);var z=this.calcColWidth(),M=this.containerWidth-this.calcGridItemWHPx(this.w,z,this.margin[0]);o.left=this.clamp(o.left,0,M)}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},calcGridItemWHPx:function(t,e,n){return Number.isFinite(t)?Math.round(e*t+Math.max(0,t-1)*n):t},clamp:function(t,e,n){return Math.max(Math.min(t,n),e)},calcWH:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=this.calcColWidth(),r=Math.round((e+this.margin[0])/(i+this.margin[0])),o=0;return o=n?Math.ceil((t+this.margin[1])/(this.rowHeight+this.margin[1])):Math.round((t+this.margin[1])/(this.rowHeight+this.margin[1])),r=Math.max(Math.min(r,this.cols-this.innerX),0),o=Math.max(Math.min(o,this.maxRows-this.innerY),0),{w:r,h:o}},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=Se(this.$refs.item),this.useStyleCursor||this.interactObj.styleCursor(!1)),this.draggable&&!this.static){var e=Ni({ignoreFrom:this.dragIgnoreFrom,allowFrom:this.dragAllowFrom},this.dragOption);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=Se(this.$refs.item),this.useStyleCursor||this.interactObj.styleCursor(!1)),this.resizable&&!this.static){var e=this.calcPosition(0,0,this.maxW,this.maxH),n=this.calcPosition(0,0,this.minW,this.minH),i=Ni({edges:{left:!1,right:"."+this.resizableHandleClass.trim().replace(" ","."),bottom:"."+this.resizableHandleClass.trim().replace(" ","."),top:!1},ignoreFrom:this.resizeIgnoreFrom,restrictSize:{min:{height:n.height*this.transformScale,width:n.width*this.transformScale},max:{height:e.height*this.transformScale,width:e.width*this.transformScale}}},this.resizeOption);this.preserveAspectRatio&&(i.modifiers=[Se.modifiers.aspectRatio({ratio:"preserve"})]),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,!0);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))}}},$i=Wi,Fi=(n("5ed4"),n("2877")),Gi=Object(Fi["a"])($i,r,o,!1,null,null,null);e["a"]=Gi.exports},be13:function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},c274:function(t,e,n){"use strict";var i=n("50bf");function r(){var t={},e=0,n=0,i=0;function r(r,o){o||(o=r,r=0),r>n?n=r:ru)if(a=c[u++],a!=a)return!0}else for(;l>u;u++)if((t||u in c)&&c[u]===n)return t||u||0;return!t&&-1}}},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"),l=n("9093").f,u=n("11e9").f,h=n("86cc").f,d=n("aa77").trim,f="Number",p=i[f],g=p,m=p.prototype,v=o(n("2aeb")(m))==f,b="trim"in String.prototype,y=function(t){var e=a(t,!1);if("string"==typeof e&&e.length>2){e=b?e.trim():d(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),l=0,u=c.length;lr)return NaN;return parseInt(c,i)}}return+e};if(!p(" 0o1")||!p("0b1")||p("+0x1")){p=function(t){var e=arguments.length<1?0:t,n=this;return n instanceof p&&(v?c((function(){m.valueOf.call(n)})):o(n)!=f)?s(new g(y(e)),n,p):y(e)};for(var x,w=n("9e1e")?l(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(","),S=0;w.length>S;S++)r(g,x=w[S])&&!r(p,x)&&h(p,x,u(g,x));p.prototype=m,m.constructor=p,n("2aba")(i,f,p)}},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}))},c8ba:function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(i){"object"===typeof window&&(n=window)}t.exports=n},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=h(),a="erd_scroll_detection_scrollbar_style",c="erd_scroll_detection_container";function l(t){d(t,a,c)}function u(e){var n=t.important?" !important; ":"; ";return(e.join(n)+n).trim()}function h(){var t=500,e=500,n=document.createElement("div");n.style.cssText=u(["position: absolute","width: "+2*t+"px","height: "+2*e+"px","visibility: hidden","margin: 0","padding: 0"]);var i=document.createElement("div");i.style.cssText=u(["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 d(t,e,n){function i(n,i){i=i||function(e){t.head.appendChild(e)};var r=t.createElement("style");return r.innerHTML=n,r.id=e,i(r),r}if(!t.getElementById(e)){var r=n+"_animation",o=n+"_animation_active",s="/* Created by the element-resize-detector library. */\n";s+="."+n+" > div::-webkit-scrollbar { "+u(["display: none"])+" }\n\n",s+="."+o+" { "+u(["-webkit-animation-duration: 0.1s","animation-duration: 0.1s","-webkit-animation-name: "+r,"animation-name: "+r])+" }\n",s+="@-webkit-keyframes "+r+" { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }\n",s+="@keyframes "+r+" { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }",i(s)}}function f(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 g(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 m(t){return r(t).container.childNodes[0].childNodes[0].childNodes[0]}function v(t){return r(t).container.childNodes[0].childNodes[0].childNodes[1]}function b(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 y(t,a,l){function h(){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,l=[];for(n in a)n!=s&&i(a,n)&&l.push(n);while(e.length>c)i(a,n=e[c++])&&(~o(l,n)||l.push(n));return l}},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}},d8e8:function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},e11e:function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},e279:function(t,e,n){"use strict";n("1156")},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"),l=n("18e9"),u=n("c274"),h=n("d6eb"),d=n("18d2"),f=n("c946");function p(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 m(t){return t&&1===t.nodeType}function v(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(),b=a({idGenerator:n,stateHandler:h});e=b}var y=t.reporter;if(!y){var x=!1===y;y=c(x)}var w=v(t,"batchProcessor",u({reporter:y})),S={};S.callOnAdd=!!v(t,"callOnAdd",!0),S.debug=!!v(t,"debug",!1);var E,O=o(e),T=r({stateHandler:h}),z=v(t,"strategy","object"),M=v(t,"important",!1),_={reporter:y,batchProcessor:w,stateHandler:h,idHandler:e,important:M};if("scroll"===z&&(l.isLegacyOpera()?(y.warn("Scroll strategy is not supported on legacy Opera. Changing to object strategy."),z="object"):l.isIE(9)&&(y.warn("Scroll strategy is not supported on IE9. Changing to object strategy."),z="object")),"scroll"===z)E=f(_);else{if("object"!==z)throw new Error("Invalid strategy name: "+z);E=d(_)}var P={};function I(t,n,r){function o(t){var e=O.get(t);i(e,(function(e){e(t)}))}function s(t,e,n){O.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(m(n))n=[n];else{if(!p(n))return y.error("Invalid arguments. Must be a DOM element or a collection of DOM elements.");n=g(n)}var a=0,c=v(t,"callOnAdd",S.callOnAdd),l=v(t,"onReady",(function(){})),u=v(t,"debug",S.debug);i(n,(function(t){h.getState(t)||(h.initState(t),e.set(t));var d=e.get(t);if(u&&y.log("Attaching listener to element",d,t),!T.isDetectable(t))return u&&y.log(d,"Not detectable."),T.isBusy(t)?(u&&y.log(d,"System busy making it detectable"),s(c,t,r),P[d]=P[d]||[],void P[d].push((function(){a++,a===n.length&&l()}))):(u&&y.log(d,"Making detectable..."),T.markBusy(t,!0),E.makeDetectable({debug:u,important:M},t,(function(t){if(u&&y.log(d,"onElementDetectable"),h.getState(t)){T.markAsDetectable(t),T.markBusy(t,!1),E.addListener(t,o),s(c,t,r);var e=h.getState(t);if(e&&e.startSize){var f=t.offsetWidth,p=t.offsetHeight;e.startSize.width===f&&e.startSize.height===p||o(t)}P[d]&&i(P[d],(function(t){t()}))}else u&&y.log(d,"Element uninstalled before being detectable.");delete P[d],a++,a===n.length&&l()})));u&&y.log(d,"Already detecable, adding listener."),s(c,t,r),a++})),a===n.length&&l()}function j(t){if(!t)return y.error("At least one element is required.");if(m(t))t=[t];else{if(!p(t))return y.error("Invalid arguments. Must be a DOM element or a collection of DOM elements.");t=g(t)}i(t,(function(t){O.removeAllListeners(t),E.uninstall(t),h.cleanState(t)}))}function D(t){E.initDocument&&E.initDocument(t)}return{listenTo:I,removeListener:O.removeListener,removeAllListeners:O.removeAllListeners,uninstall:j,initDocument:D}}},f1ae:function(t,e,n){"use strict";var i=n("86cc"),r=n("4630");t.exports=function(t,e,n){e in t?i.f(t,e,r(0,n)):t[e]=n}},f6fd:function(t,e){(function(t){var e="currentScript",n=t.getElementsByTagName("script");e in t||Object.defineProperty(t,e,{get:function(){try{throw new Error}catch(i){var t,e=(/.*at [^\(]*\((.*):.+:.+\)$/gi.exec(i.stack)||[!1])[1];for(t in n)if(n[t].src==e||"interactive"==n[t].readyState)return n[t];return null}}})})(document)},f751:function(t,e,n){var i=n("5ca1");i(i.S+i.F,"Object",{assign:n("7333")})},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),n.d(e,"install",(function(){return r["d"]})),n.d(e,"GridLayout",(function(){return r["b"]})),n.d(e,"GridItem",(function(){return r["a"]})),"undefined"!==typeof window)&&(n("f6fd"),(i=window.document.currentScript)&&(i=i.src.match(/(.+\/)[^/]+\.js(\?.*)?$/))&&(n.p=i[1]));var r=n("2af9");e["default"]=r["c"]},fca0:function(t,e,n){var i=n("5ca1"),r=n("7726").isFinite;i(i.S,"Number",{isFinite:function(t){return"number"==typeof t&&r(t)}})},fdef:function(t,e){t.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"}})["default"]})); //# sourceMappingURL=vue-grid-layout.umd.min.js.map \ No newline at end of file diff --git a/dist/vue-grid-layout.umd.min.js.map b/dist/vue-grid-layout.umd.min.js.map index 7bc4f445..65b9588d 100644 --- a/dist/vue-grid-layout.umd.min.js.map +++ b/dist/vue-grid-layout.umd.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://VueGridLayout/webpack/universalModuleDefinition","webpack://VueGridLayout/webpack/bootstrap","webpack://VueGridLayout/./src/components/GridLayout.vue?aaa4","webpack://VueGridLayout/./node_modules/core-js/modules/_iter-define.js","webpack://VueGridLayout/./src/components/GridLayout.vue?0f2c","webpack://VueGridLayout/./node_modules/core-js/modules/_object-keys.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-gopd.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-dps.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/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://VueGridLayout/./src/components/GridItem.vue?2cea","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/_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/modules/_hide.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-gpo.js","webpack://VueGridLayout/./node_modules/core-js/modules/_iter-create.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.object.keys.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/_object-pie.js","webpack://VueGridLayout/./node_modules/core-js/modules/_shared.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.array.sort.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/modules/_inherit-if-required.js","webpack://VueGridLayout/./src/components/GridItem.vue?a4ac","webpack://VueGridLayout/./node_modules/core-js/modules/_object-sap.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/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/modules/_global.js","webpack://VueGridLayout/./node_modules/core-js/modules/_to-absolute-index.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/modules/_set-proto.js","webpack://VueGridLayout/external {\"commonjs\":\"vue\",\"commonjs2\":\"vue\",\"root\":\"Vue\"}","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/./node_modules/core-js/modules/_to-length.js","webpack://VueGridLayout/./node_modules/core-js/modules/_descriptors.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.regexp.replace.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/./node_modules/element-resize-detector/src/collection-utils.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/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/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/modules/_a-function.js","webpack://VueGridLayout/./node_modules/core-js/modules/_enum-bug-keys.js","webpack://VueGridLayout/./src/components/GridLayout.vue?0af8","webpack://VueGridLayout/./src/components/GridItem.vue?539b","webpack://VueGridLayout/./node_modules/element-resize-detector/src/element-resize-detector.js","webpack://VueGridLayout/./node_modules/core-js/modules/_html.js","webpack://VueGridLayout/./src/components/GridItem.vue?cdf9","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?8f9d","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","content","locals","add","default","sourceMap","shadowMode","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","push","$keys","enumBugKeys","O","pIE","createDesc","toIObject","toPrimitive","has","IE8_DOM_DEFINE","gOPD","getOwnPropertyDescriptor","f","e","dP","anObject","getKeys","defineProperties","Properties","length","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","onload","data","appendChild","startSize","uninstall","detachEvent","removeChild","detector","version","isAnyIeVersion","agent","navigator","userAgent","toLowerCase","indexOf","ieVersion","undef","v","div","all","getElementsByTagName","innerHTML","isLegacyOpera","opera","currentScript","src","match","fails","defined","wks","KEY","exec","SYMBOL","fns","strfn","rxfn","String","RegExp","string","arg","isObject","is","it","cssWithMappingToString","item","useSourceMap","cssMapping","btoa","sourceMapping","toComment","sourceURLs","sources","map","source","sourceRoot","concat","join","base64","unescape","encodeURIComponent","JSON","stringify","list","toString","mediaQuery","alreadyImportedModules","id","global","SRC","TO_STRING","$toString","Function","TPL","split","inspectSource","val","safe","isFunction","dPs","IE_PROTO","Empty","PROTOTYPE","createDict","iframeDocument","iframe","lt","gt","display","contentWindow","open","write","close","result","store","uid","USE_SYMBOL","$exports","idCount","generate","slice","method","toObject","ObjectProto","constructor","descriptor","ceil","Math","floor","isNaN","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","index","replacement","filter","Boolean","styleSheet","cssNode","createTextNode","childNodes","insertBefore","setAttribute","ssrId","firstChild","idHandler","eventListeners","getListeners","removeListener","listeners","len","splice","removeAllListeners","idGenerator","getId","state","setId","set","utils","getOption","defaultValue","propertyIsEnumerable","core","SHARED","copyright","aFunction","$sort","sort","comparefn","isDetectable","markAsDetectable","isBusy","busy","markBusy","ctx","own","out","exp","IS_FORCED","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","IS_BIND","B","target","expProto","U","W","R","setPrototypeOf","that","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_lib_index_js_ref_6_oneOf_1_2_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_lib_index_js_ref_6_oneOf_1_2_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","fn","shared","cof","IObject","valueOf","TypeError","__g","toInteger","max","min","def","tag","stat","FProto","nameRE","__e","Attributes","check","buggy","Array","__proto__","hiddenKeys","getOwnPropertyNames","a","b","apply","arguments","UNSCOPABLES","ArrayProto","REPLACE","$replace","searchValue","replaceValue","spaces","space","non","ltrim","rtrim","exporter","ALIAS","FORCE","trim","TYPE","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","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","toLength","toAbsoluteIndex","IS_INCLUDES","$this","el","fromIndex","inheritIfRequired","gOPN","$trim","NUMBER","$Number","BROKEN_COF","TRIM","toNumber","argument","third","radix","maxCode","first","charCodeAt","NaN","code","digits","parseInt","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","done","areElementsInjected","w","h","notifyListenersIfNeeded","isFirstNotify","lastNotifiedWidth","lastNotifiedHeight","handleRender","handleScroll","finalizeDomMutation","ready","install","px","random","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_lib_index_js_ref_6_oneOf_1_2_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_lib_index_js_ref_6_oneOf_1_2_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","isArray","toArray","array","isElement","nodeType","defaultIdHandler","globalOptions","callOnAdd","detectionStrategy","eventListenerHandler","elementUtils","desiredStrategy","strategyOptions","onReadyCallbacks","listenTo","elements","onResizeCallback","elementsReady","onReadyCallback","documentElement","render","_vm","_h","$createElement","_c","_self","ref","staticClass","class","vue-resizable","resizable","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","collides","l1","l2","x","compact","verticalCompact","compareWith","getStatics","sorted","sortLayoutItemsByRowCol","static","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","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","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","eventBus","$on","beforeDestroy","$off","interactObj","unset","mounted","$parent","createStyle","watch","$refs","opts","ignoreFrom","allowFrom","on","handleDrag","enabled","tryMakeResizable","newVal","computed","isMirrored","pos","calcPosition","handleResize","newSize","coreEvent","calcWH","$emit","newPosition","parentRect","clientRect","_parentRect","_clientRect","calcXY","colWidth","calcColWidth","round","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","__file","GridItem","GridLayoutvue_type_template_id_672425fa_render","directives","rawName","expression","attrs","placeholder","GridLayoutvue_type_template_id_672425fa_staticRenderFns","getBreakpointFromWidth","breakpoints","sortBreakpoints","matching","breakpointName","getColsFromBreakpoint","breakpoint","findOrGenerateResponsiveLayout","orgLayout","layouts","lastBreakpoint","breakpointsSorted","breakpointsAbove","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","onWindowResize","$nextTick","initResponsiveFeatures","updateHeight","erd","strategy","onWindowLoad","layoutUpdate","diff","findDifference","some","obj2","containerHeight","eventName","responsiveGridLayout","newBreakpoint","newCols","uniqueResultOne","uniqueResultTwo","components_GridLayoutvue_type_script_lang_js_","GridLayout_component","GridLayout","VueGridLayout","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","capture","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","// 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/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/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=b1033d08&\"\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\ncomponent.options.__file = \"GridItem.vue\"\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/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/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=672425fa&\"\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\ncomponent.options.__file = \"GridLayout.vue\"\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/modules/_flags.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-keys.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/element-resize-detector/src/detection-strategy/object.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/browser-detector.js","webpack://VueGridLayout/./src/helpers/DOM.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/modules/_object-gops.js","webpack://VueGridLayout/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://VueGridLayout/./node_modules/core-js/modules/_redefine.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-create.js","webpack://VueGridLayout/./src/components/index.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/modules/_hide.js","webpack://VueGridLayout/./src/components/GridLayout.vue?9453","webpack://VueGridLayout/src/components/GridLayout.vue","webpack://VueGridLayout/./src/components/GridLayout.vue?2dea","webpack://VueGridLayout/./src/components/GridLayout.vue","webpack://VueGridLayout/./node_modules/core-js/modules/_object-gpo.js","webpack://VueGridLayout/./node_modules/core-js/modules/_iter-create.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.object.keys.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/core-js/modules/es6.regexp.match.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/modules/es6.array.sort.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/modules/_inherit-if-required.js","webpack://VueGridLayout/./src/components/GridItem.vue?70f1","webpack://VueGridLayout/./node_modules/core-js/modules/_object-sap.js","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/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/./src/components/GridItem.vue?73c4","webpack://VueGridLayout/./node_modules/core-js/modules/_object-assign.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/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/modules/_set-proto.js","webpack://VueGridLayout/external {\"commonjs\":\"vue\",\"commonjs2\":\"vue\",\"root\":\"Vue\"}","webpack://VueGridLayout/./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js","webpack://VueGridLayout/./node_modules/core-js/modules/_object-gopn.js","webpack://VueGridLayout/./src/helpers/responsiveUtils.js","webpack://VueGridLayout/./node_modules/core-js/modules/_own-keys.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/./src/helpers/utils.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.regexp.replace.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/@babel/runtime/helpers/esm/defineProperty.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.regexp.exec.js","webpack://VueGridLayout/./node_modules/element-resize-detector/src/collection-utils.js","webpack://VueGridLayout/./src/components/GridItem.vue?f637","webpack://VueGridLayout/./src/helpers/draggableUtils.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/domObjects.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/isWindow.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/window.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/is.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/browser.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/arr.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/clone.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/extend.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/raf.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/normalizeListeners.js","webpack://VueGridLayout/./node_modules/@interactjs/core/Eventable.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/domUtils.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/rect.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/getOriginXY.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/hypot.js","webpack://VueGridLayout/./node_modules/@interactjs/core/BaseEvent.js","webpack://VueGridLayout/./node_modules/@interactjs/core/defaultOptions.js","webpack://VueGridLayout/./node_modules/@interactjs/core/InteractEvent.js","webpack://VueGridLayout/./node_modules/@interactjs/core/isNonNativeEvent.js","webpack://VueGridLayout/./node_modules/@interactjs/core/Interactable.js","webpack://VueGridLayout/./node_modules/@interactjs/core/InteractableSet.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/pointerExtend.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/pointerUtils.js","webpack://VueGridLayout/./node_modules/@interactjs/core/events.js","webpack://VueGridLayout/./node_modules/@interactjs/utils/misc.js","webpack://VueGridLayout/./node_modules/@interactjs/core/interactStatic.js","webpack://VueGridLayout/./node_modules/@interactjs/core/PointerInfo.js","webpack://VueGridLayout/./node_modules/@interactjs/core/Interaction.js","webpack://VueGridLayout/./node_modules/@interactjs/core/interactablePreventDefault.js","webpack://VueGridLayout/./node_modules/@interactjs/core/interactionFinder.js","webpack://VueGridLayout/./node_modules/@interactjs/core/interactions.js","webpack://VueGridLayout/./node_modules/@interactjs/core/scope.js","webpack://VueGridLayout/./node_modules/@interactjs/interact/index.js","webpack://VueGridLayout/./node_modules/@interactjs/auto-start/InteractableMethods.js","webpack://VueGridLayout/./node_modules/@interactjs/auto-start/base.js","webpack://VueGridLayout/./node_modules/@interactjs/auto-start/dragAxis.js","webpack://VueGridLayout/./node_modules/@interactjs/auto-start/hold.js","webpack://VueGridLayout/./node_modules/@interactjs/auto-start/plugin.js","webpack://VueGridLayout/./node_modules/@interactjs/auto-scroll/plugin.js","webpack://VueGridLayout/./node_modules/@interactjs/auto-start/index.js","webpack://VueGridLayout/./node_modules/@interactjs/actions/drag/plugin.js","webpack://VueGridLayout/./node_modules/@interactjs/auto-scroll/index.js","webpack://VueGridLayout/./node_modules/@interactjs/actions/resize/plugin.js","webpack://VueGridLayout/./node_modules/@interactjs/actions/drag/index.js","webpack://VueGridLayout/./node_modules/@interactjs/actions/resize/index.js","webpack://VueGridLayout/./node_modules/@interactjs/snappers/edgeTarget.js","webpack://VueGridLayout/./node_modules/@interactjs/snappers/elements.js","webpack://VueGridLayout/./node_modules/@interactjs/snappers/grid.js","webpack://VueGridLayout/./node_modules/@interactjs/snappers/plugin.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/Modification.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/base.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/aspectRatio.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/noop.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/restrict/pointer.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/restrict/edges.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/restrict/rect.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/restrict/size.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/snap/pointer.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/snap/size.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/snap/edges.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/all.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/plugin.js","webpack://VueGridLayout/./node_modules/@interactjs/dev-tools/plugin.js","webpack://VueGridLayout/./node_modules/@interactjs/modifiers/index.js","webpack://VueGridLayout/./node_modules/@interactjs/dev-tools/index.js","webpack://VueGridLayout/src/components/GridItem.vue","webpack://VueGridLayout/./src/components/GridItem.vue?2537","webpack://VueGridLayout/./src/components/GridItem.vue","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/modules/es6.number.constructor.js","webpack://VueGridLayout/./node_modules/core-js/modules/_ie8-dom-define.js","webpack://VueGridLayout/(webpack)/buildin/global.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/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/modules/_a-function.js","webpack://VueGridLayout/./node_modules/core-js/modules/_enum-bug-keys.js","webpack://VueGridLayout/./src/components/GridLayout.vue?2bdf","webpack://VueGridLayout/./node_modules/element-resize-detector/src/element-resize-detector.js","webpack://VueGridLayout/./node_modules/core-js/modules/_create-property.js","webpack://VueGridLayout/./node_modules/current-script-polyfill/currentScript.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.object.assign.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/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js","webpack://VueGridLayout/./node_modules/core-js/modules/es6.number.is-finite.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","anObject","result","global","ignoreCase","multiline","sticky","$keys","enumBugKeys","O","content","locals","add","default","pIE","createDesc","toIObject","toPrimitive","has","IE8_DOM_DEFINE","gOPD","getOwnPropertyDescriptor","f","e","dP","getKeys","defineProperties","Properties","browserDetector","options","reporter","batchProcessor","getState","stateHandler","Error","addListener","element","listener","listenerProxy","isIE","proxy","attachEvent","getObject","contentDocument","defaultView","addEventListener","buildCssTextString","rules","seperator","important","join","trim","makeDetectable","callback","debug","injectObject","OBJECT_STYLE","positionCheckPerformed","style","window","getComputedStyle","width","offsetWidth","height","offsetHeight","mutateDom","alterPositionStyles","position","setProperty","removeRelativeStyles","getNumericalValue","replace","warn","onObjectLoad","getDocument","state","checkForObjectDocumentTimeoutId","clearTimeout","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","currentDir","hasDocument","hasWindow","getDocumentDir","direction","dir","getAttribute","addWindowEventListener","event","removeWindowEventListener","removeEventListener","fails","wks","regexpExec","SPECIES","REPLACE_SUPPORTS_NAMED_GROUPS","re","exec","groups","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","apply","arguments","split","KEY","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","constructor","nativeRegExpMethod","fns","nativeMethod","regexp","str","arg2","forceStringMethod","done","strfn","rxfn","RegExp","string","arg","isObject","is","it","cssWithMappingToString","item","useSourceMap","cssMapping","btoa","sourceMapping","toComment","sourceURLs","sources","map","source","sourceRoot","concat","sourceMap","base64","unescape","encodeURIComponent","JSON","stringify","list","toString","mediaQuery","alreadyImportedModules","id","push","cof","ARG","tryGet","T","B","callee","getOwnPropertySymbols","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","SRC","$toString","TPL","inspectSource","val","safe","isFunction","Function","dPs","IE_PROTO","Empty","PROTOTYPE","createDict","iframeDocument","iframe","lt","gt","display","src","contentWindow","open","write","close","VueGridLayout","GridLayout","GridItem","install","Vue","installed","forEach","component","plugin","GlobalVue","use","store","uid","USE_SYMBOL","$exports","idCount","generate","method","_vm","_h","$createElement","_c","_self","ref","staticClass","_t","directives","rawName","expression","attrs","placeholder","x","y","w","toObject","ObjectProto","descriptor","ceil","Math","floor","isNaN","bitmap","configurable","writable","toLength","advanceStringIndex","regExpExec","MATCH","$match","maybeCallNative","fn","res","rx","fullUnicode","lastIndex","A","matchStr","listToStyles","parentId","styles","newStyles","css","media","part","parts","DEBUG","stylesInDom","head","singletonElement","singletonCounter","isProduction","noop","ssrIdKey","isOldIE","test","addStylesClient","_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","setId","set","utils","getOption","defaultValue","regexpFlags","nativeExec","nativeReplace","patchedExec","LAST_INDEX","UPDATES_LAST_INDEX_WRONG","re1","re2","NPCG_INCLUDED","PATCH","reCopy","match","propertyIsEnumerable","core","SHARED","copyright","aFunction","$sort","sort","comparefn","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","setPrototypeOf","C","classof","builtinExec","TypeError","shared","IObject","valueOf","DESCRIPTORS","gOPS","$assign","assign","K","k","aLen","getSymbols","isEnum","__g","max","min","def","tag","stat","FProto","nameRE","__e","Attributes","check","buggy","Array","__proto__","ownKeys","createProperty","getOwnPropertyDescriptors","desc","getDesc","hiddenKeys","getOwnPropertyNames","getBreakpointFromWidth","breakpoints","sorted","sortBreakpoints","matching","breakpointName","getColsFromBreakpoint","breakpoint","cols","findOrGenerateResponsiveLayout","orgLayout","layouts","lastBreakpoint","verticalCompact","cloneLayout","layout","breakpointsSorted","breakpointsAbove","compact","correctBounds","gOPN","Reflect","UNSCOPABLES","ArrayProto","bottom","bottomY","newLayout","cloneLayoutItem","layoutItem","parse","collides","l1","l2","minPositions","compareWith","getStatics","sortLayoutItemsByRowCol","static","compactItem","moved","getFirstCollision","minY","bounds","collidesWith","getLayoutItem","getAllCollisions","moveElement","isUserAction","preventCollision","oldX","oldY","movingUp","reverse","collisions","collision","moveElementAwayFromCollision","itemToMove","fakeItem","setTransform","top","left","translate","transform","WebkitTransform","MozTransform","msTransform","OTransform","setTransformRtl","right","setTopLeft","setTopRight","validateLayout","contextName","subProps","keyArr","isArray","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","REPLACE","$replace","searchValue","replaceValue","functionalReplace","results","accumulatedResult","nextSourcePosition","matched","captures","namedCaptures","replacerArgs","getSubstitution","tailPos","symbols","ch","capture","spaces","space","non","ltrim","rtrim","exporter","ALIAS","FORCE","TYPE","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","_defineProperty","forced","collection","class","classObj","resizableHandleClass","_e","getControlPosition","offsetXYFromParentOf","evt","offsetParent","body","offsetParentRect","getBoundingClientRect","clientX","scrollLeft","clientY","scrollTop","createCoreData","lastX","lastY","isStart","isNum","deltaX","deltaY","num","domObjects","init","DocumentFragment","SVGElement","SVGSVGElement","SVGElementInstance","Element","HTMLElement","Event","Touch","PointerEvent","blank","win","MSPointerEvent","thing","realWindow","el","ownerDocument","wrap","getWindow","node","isWindow","rootNode","docFrag","nodeType","func","number","bool","_window","nodeName","plainObject","array","browser","supportsTouch","supportsPointerEvent","isIOS7","isIOS","isIe9","isOperaMobile","prefixedMatchesSelector","pEventTypes","wheelEvent","DocumentTouch","pointerEnabled","platform","appVersion","appName","up","down","over","move","cancel","contains","merge","from","findIndex","find","clone","dest","prop","extend","ret","request","lastTime","requestAnimationFrame","cancelAnimationFrame","vendors","vendor","currTime","Date","now","timeToCall","token","normalize","search","reduce","acc","prefix","combinedTypes","fireUntilImmediateStopped","immediatePropagationStopped","types","propagationStopped","eventList","subListener","_element","nodeContains","child","selector","matchesSelector","host","matchesUpTo","limit","getActualElement","correspondingUseElement","getScrollXY","relevantWindow","scrollX","documentElement","scrollY","getElementClientRect","clientRect","getClientRects","getElementRect","scroll","trySelector","getStringOptionResult","getRect","resolveRectLike","functionArgs","returnValue","rectToXY","rect","xywhToTlbr","tlbrToXywh","addEdges","edges","delta","actionOptions","actionName","actionOrigin","origin","originRect","BaseEvent","interaction","currentTarget","interactable","_interaction","timeStamp","_proxy","base","preventDefault","deltaSource","perAction","enabled","actions","phase","preEnd","super","relatedTarget","screenX","screenY","button","buttons","ctrlKey","shiftKey","altKey","metaKey","page","client","x0","y0","t0","dt","duration","clientX0","clientY0","velocity","speed","swipe","axes","getOriginXY","starting","ending","prevEvent","coords","start","cur","pointers","downTime","hypot","getSwipe","angle","atan2","velocityY","velocityX","PI","overlap","isNonNativeEvent","phaselessTypes","substr","phases","pageX","pageY","dx","dy","defaultContext","scopeEvents","_actions","events","_context","_win","_doc","_scopeEvents","_rectChecker","onstart","on","onmove","onend","oninertiastart","prev","off","defaults","_defaults","optionName_","optionName","optionValue","updatePerActionListeners","checker","newValue","action","_backCompatOption","targetNode","eventTarget","testIgnore","ignoreFrom","testAllow","allowFrom","iEvent","fire","typeArg","listenerArg","addRemove","_onOff","actionName_","methodDict","methodName","setPerAction","setting","delegatedEvents","delegated","removeDelegate","scope","selectorMap","addListeners","targetMappings","targetIndex","Interactable","mappingInfo","addDocument","isSelector","found","inContext","pointerExtend","prefixedPropREs","deprecated","webkit","moz","copyCoords","setCoordDeltas","targetObj","setCoordVelocity","setZeroCoords","isNativePointer","pointer","getXY","xy","getPageXY","getClientXY","getPointerId","pointerId","identifier","setCoords","pointerAverage","getTouchPair","touches","changedTouches","average","touchBBox","minX","maxX","maxY","touchDistance","sourceX","sourceY","touchAngle","getPointerType","pointerType","getEventTargets","path","composedPath","newCoords","targets","documents","eventsMethods","addDelegate","delegateListener","delegateUseCapture","supportsOptions","supportsPassive","optionalArg","getOptions","typeIsEmpty","typeListeners","doc","delegates","delegate","matchFound","passive","fakeEvent","originalEvent","stopPropagation","stopImmediatePropagation","param","warnOnce","message","warned","copyAction","axis","createInteractStatic","interact","interactables","new","globalEvents","getPointerAverage","getTouchBBox","getTouchDistance","getTouchAngle","closest","usePlugin","isSet","eventType","stop","interactions","pointerMoveTolerance","removeDocument","PointerInfo","downTarget","_ProxyValues","_ProxyMethods","idCounter","scopeFire","_rects","_scopeFire","prepared","downEvent","downPointer","_latestPointer","pointerIsDown","pointerWasMoved","_interacting","_ending","_stopped","simulation","doMove","signalArg","_id","args","pointerIndex","updatePointer","pointerInfo","interacting","_doPhase","modification","endResult","duplicateMove","getPointerIndex","duplicate","curEventTarget","end","removePointer","endPhaseResult","curPointer","_now","_updateLatestPointer","beforeResult","_createPreparedEvent","_fireEvent","checkAndPreventDefault","docOptions","getDocOptions","onInteractionEvent","docEvents","finder","methodOrder","details","allowResume","firstNonActive","hasPointerId","gesture","some","methodNames","doOnInteractions","releasePointersOnRemovedEls","pointerDown","pointerMove","pointerUp","documentBlur","prevTouchTime","Interaction","interactablePreventDefault","matches","changedTouch","searchDetails","getInteraction","invalidPointer","foundInteraction","onDocSignal","eventMethodName","eventMethod","eventOptions","destroy","random","isInitialized","listenerMaps","Eventable","interactStatic","InteractEvent","_plugins","onWindowUnload","unset","initScope","pluginIsInstalled","before","pluginIdRoot","otherId","getDocIndex","docIndex","raf","getAction","defaultActionChecker","actionChecker","styleCursor","0","1","3","4","InteractableMethods","manualStart","Infinity","maxPerElement","mouseButtons","maxInteractions","autoStart","withinInteractionLimit","cursorElement","prepareOnDown","actionInfo","getActionInfo","prepare","prepareOnMove","startOnMove","setInteractionCursor","clearCursorOnStop","setCursor","validateAction","testIgnoreAllow","validateMatches","matchElements","matchElement","matchAction","pushMatches","forEachMatch","maxActions","autoStartMax","activeInteractions","interactableCount","elementCount","otherAction","cursor","prevCursorElement","cursorChecker","getCursor","beforeStart","absX","abs","absY","targetOptions","drag","startAxis","currentAxis","lockAxis","getDraggable","checkStartAxis","thisAxis","hold","delay","getHoldDuration","autoStartHoldTimer","holdDuration","dragAxis","autoScroll","autoscroll","margin","container","isScrolling","prevTime","getContainer","scrollBy","prevScroll","getScroll","curScroll","_options$actionName$a","innerWidth","innerHeight","autoScrollPlugin","onInteractionMove","draggable","beforeMove","opposite","setOnEvents","dragOptions","resize","cursors","initCursors","defaultMargin","resizable","resizeChecker","resizeOptions","resizeEdges","edge","checkResizeEdge","preserveAspectRatio","square","interactableElement","topleft","bottomright","topright","bottomleft","resizeEvent","corrected","previous","deltaRect","invert","invertible","current","startRect","swap","updateEventAxes","resizeAxes","NaN","cursorKey","grid","coordFields","xField","yField","gridFunc","range","limits","offset","gridx","round","gridy","snappersPlugin","snappers","createSnapGrid","states","startOffset","startDelta","createResult","pageCoords","modifierList","getModifierList","prepareStates","getRectOffset","startAll","setAll","fillArg","skipModifiers","unmodifiedRect","newResult","lastModifierCoords","shouldDo","eventProps","rectDelta","prevCoords","prevRect","rectChanged","changed","curCoords","startCoords","curDelta","coordsSet","modifiedCoords","adjustment","applyToInteraction","doPreend","endPosition","beforeEnd","modifierArg","coordsAndDeltas","requireEndOnly","endOnly","setStart","other","actionModifiers","modifiers","_methods","makeModifier","modifier","enable","disable","addEventModifiers","modifiersBase","setAndApply","restoreInteractionCoords","aspectRatio","originalEdges","ratio","equalDelta","linkedEdges","xIsPrimaryAxis","edgeSign","negativeSecondaryEdge","subModification","copyFrom","initialCoords","aspectMethod","setEqualDelta","setRatio","correctedRect","xIsCriticalAxis","newHeight","newWidth","elementRect","restriction","getRestrictionRect","widthDiff","heightDiff","restrict","noInner","noOuter","offsetRect","inner","outer","fixRect","restrictEdges","_","restrictRect","noMin","noMax","minSize","maxSize","restrictSize","offsetWithOrigin","getOrigin","snapOffset","relativePoints","offsets","relativePoint","relativeX","relativeY","snapTarget","inRange","distance","optionsOrigin","snap","targetFields","relative","snapSize","snapEdges","spring","avoid","rubberband","CheckName","links","touchAction","boxSizing","logger","devTools","ignore","checks","parentHasStyle","text","hasStyle","noListeners","moveListeners","styleRe","defaultExport","perform","getInfo","Batch","batch","size","topLevel","bottomLevel","level","process","getSize","asyncProcess","autoProcess","asyncFrameHandler","isProcessing","addFunction","processBatchAsync","processBatch","processingBatch","forceProcessBatch","localAsyncProcess","cancelFrame","requestFrame","force","toAbsoluteIndex","IS_INCLUDES","$this","fromIndex","inheritIfRequired","$trim","NUMBER","$Number","BROKEN_COF","TRIM","toNumber","argument","third","radix","maxCode","first","code","digits","parseInt","g","hasState","scrollbarSizes","getScrollbarSizes","styleId","detectionContainerClass","initDocument","targetDocument","injectScrollStyle","widthSize","clientWidth","heightSize","clientHeight","containerClass","injectStyle","getElementById","containerAnimationClass","containerAnimationActiveClass","addAnimationClass","className","addEvent","cb","removeEvent","getExpandElement","getShrinkElement","unshift","isDetached","isInDocument","isInShadowRoot","getRootNode","isUnrendered","getStyle","elementStyle","widthCSS","heightCSS","storeStartSize","initListeners","storeStyle","storeCurrentSize","lastWidth","lastHeight","getExpandChildElement","getWidthOffset","getHeightOffset","getExpandWidth","getExpandHeight","getShrinkWidth","getShrinkHeight","positionScrollbars","expand","shrink","expandWidth","expandHeight","shrinkWidth","shrinkHeight","injectContainerElement","onAnimationStart","onRendered","injectScrollElements","getLeftTopBottomRightCssText","rootContainer","scrollbarWidth","scrollbarHeight","containerContainerStyle","containerStyle","expandStyle","shrinkStyle","expandChildStyle","shrinkChildStyle","containerContainer","expandChild","shrinkChild","onExpandScroll","onShrinkScroll","onExpand","onShrink","registerListenersAndPositionElements","updateChildSizes","updateDetectorElements","sizeChanged","areElementsInjected","notifyListenersIfNeeded","isFirstNotify","lastNotifiedWidth","lastNotifiedHeight","handleRender","handleScroll","finalizeDomMutation","ready","px","addToUnscopables","step","iterated","_i","_k","Arguments","arrayIndexOf","names","initState","cleanState","elementUtilsMaker","listenerHandlerMaker","idGeneratorMaker","idHandlerMaker","reporterMaker","batchProcessorMaker","objectStrategyMaker","scrollStrategyMaker","isCollection","toArray","isElement","defaultIdHandler","globalOptions","callOnAdd","detectionStrategy","eventListenerHandler","elementUtils","desiredStrategy","importantCssRules","strategyOptions","onReadyCallbacks","listenTo","elements","onResizeCallback","elementsReady","onReadyCallback","$defineProperty","currentScript","scripts","err","stack","readyState","_isFinite","isFinite"],"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","'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","// 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!./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=361da5e4&\"\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","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@match logic\nrequire('./_fix-re-wks')('match', 1, function (defined, MATCH, $match, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[MATCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative($match, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n if (!rx.global) return regExpExec(rx, S);\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n","/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nimport listToStyles from './listToStyles'\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of \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&\"","import { render, staticRenderFns } from \"./GridItem.vue?vue&type=template&id=e7489122&\"\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","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","\"use strict\";\n\nvar utils = require(\"./utils\");\n\nmodule.exports = function batchProcessorMaker(options) {\n options = options || {};\n var reporter = options.reporter;\n var asyncProcess = utils.getOption(options, \"async\", true);\n var autoProcess = utils.getOption(options, \"auto\", true);\n\n if(autoProcess && !asyncProcess) {\n reporter && reporter.warn(\"Invalid options combination. auto=true and async=false is invalid. Setting async=true.\");\n asyncProcess = true;\n }\n\n var batch = Batch();\n var asyncFrameHandler;\n var isProcessing = false;\n\n function addFunction(level, fn) {\n if(!isProcessing && autoProcess && asyncProcess && batch.size() === 0) {\n // Since this is async, it is guaranteed to be executed after that the fn is added to the batch.\n // This needs to be done before, since we're checking the size of the batch to be 0.\n processBatchAsync();\n }\n\n batch.add(level, fn);\n }\n\n function processBatch() {\n // Save the current batch, and create a new batch so that incoming functions are not added into the currently processing batch.\n // Continue processing until the top-level batch is empty (functions may be added to the new batch while processing, and so on).\n isProcessing = true;\n while (batch.size()) {\n var processingBatch = batch;\n batch = Batch();\n processingBatch.process();\n }\n isProcessing = false;\n }\n\n function forceProcessBatch(localAsyncProcess) {\n if (isProcessing) {\n return;\n }\n\n if(localAsyncProcess === undefined) {\n localAsyncProcess = asyncProcess;\n }\n\n if(asyncFrameHandler) {\n cancelFrame(asyncFrameHandler);\n asyncFrameHandler = null;\n }\n\n if(localAsyncProcess) {\n processBatchAsync();\n } else {\n processBatch();\n }\n }\n\n function processBatchAsync() {\n asyncFrameHandler = requestFrame(processBatch);\n }\n\n function clearBatch() {\n batch = {};\n batchSize = 0;\n topLevel = 0;\n bottomLevel = 0;\n }\n\n function cancelFrame(listener) {\n // var cancel = window.cancelAnimationFrame || window.mozCancelAnimationFrame || window.webkitCancelAnimationFrame || window.clearTimeout;\n var cancel = clearTimeout;\n return cancel(listener);\n }\n\n function requestFrame(callback) {\n // var raf = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function(fn) { return window.setTimeout(fn, 20); };\n var raf = function(fn) { return setTimeout(fn, 0); };\n return raf(callback);\n }\n\n return {\n add: addFunction,\n force: forceProcessBatch\n };\n};\n\nfunction Batch() {\n var batch = {};\n var size = 0;\n var topLevel = 0;\n var bottomLevel = 0;\n\n function add(level, fn) {\n if(!fn) {\n fn = level;\n level = 0;\n }\n\n if(level > topLevel) {\n topLevel = level;\n } else if(level < bottomLevel) {\n bottomLevel = level;\n }\n\n if(!batch[level]) {\n batch[level] = [];\n }\n\n batch[level].push(fn);\n size++;\n }\n\n function process() {\n for(var level = bottomLevel; level <= topLevel; level++) {\n var fns = batch[level];\n\n for(var i = 0; i < fns.length; i++) {\n var fn = fns[i];\n fn();\n }\n }\n }\n\n function getSize() {\n return size;\n }\n\n return {\n add: add,\n process: process,\n size: getSize\n };\n}\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","'use strict';\nvar global = require('./_global');\nvar has = require('./_has');\nvar cof = require('./_cof');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar toPrimitive = require('./_to-primitive');\nvar fails = require('./_fails');\nvar gOPN = require('./_object-gopn').f;\nvar gOPD = require('./_object-gopd').f;\nvar dP = require('./_object-dp').f;\nvar $trim = require('./_string-trim').trim;\nvar NUMBER = 'Number';\nvar $Number = global[NUMBER];\nvar Base = $Number;\nvar proto = $Number.prototype;\n// Opera ~12 has broken Object#toString\nvar BROKEN_COF = cof(require('./_object-create')(proto)) == NUMBER;\nvar TRIM = 'trim' in String.prototype;\n\n// 7.1.3 ToNumber(argument)\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n if (typeof it == 'string' && it.length > 2) {\n it = TRIM ? it.trim() : $trim(it, 3);\n var first = it.charCodeAt(0);\n var third, radix, maxCode;\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i\n default: return +it;\n }\n for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {\n code = digits.charCodeAt(i);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nif (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {\n $Number = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var that = this;\n return that instanceof $Number\n // check on 1..constructor(foo) case\n && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)\n ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);\n };\n for (var keys = require('./_descriptors') ? gOPN(Base) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES6 (in case, if modules with ES6 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(Base, key = keys[j]) && !has($Number, key)) {\n dP($Number, key, gOPD(Base, key));\n }\n }\n $Number.prototype = proto;\n proto.constructor = $Number;\n require('./_redefine')(global, NUMBER, $Number);\n}\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/**\n * Resize detection strategy that injects divs to elements in order to detect resize events on scroll events.\n * Heavily inspired by: https://github.com/marcj/css-element-queries/blob/master/src/ResizeSensor.js\n */\n\n\"use strict\";\n\nvar forEach = require(\"../collection-utils\").forEach;\n\nmodule.exports = function(options) {\n options = options || {};\n var reporter = options.reporter;\n var batchProcessor = options.batchProcessor;\n var getState = options.stateHandler.getState;\n var hasState = options.stateHandler.hasState;\n var idHandler = options.idHandler;\n\n if (!batchProcessor) {\n throw new Error(\"Missing required dependency: batchProcessor\");\n }\n\n if (!reporter) {\n throw new Error(\"Missing required dependency: reporter.\");\n }\n\n //TODO: Could this perhaps be done at installation time?\n var scrollbarSizes = getScrollbarSizes();\n\n var styleId = \"erd_scroll_detection_scrollbar_style\";\n var detectionContainerClass = \"erd_scroll_detection_container\";\n\n function initDocument(targetDocument) {\n // Inject the scrollbar styling that prevents them from appearing sometimes in Chrome.\n // The injected container needs to have a class, so that it may be styled with CSS (pseudo elements).\n injectScrollStyle(targetDocument, styleId, detectionContainerClass);\n }\n\n initDocument(window.document);\n\n function buildCssTextString(rules) {\n var seperator = options.important ? \" !important; \" : \"; \";\n\n return (rules.join(seperator) + seperator).trim();\n }\n\n function getScrollbarSizes() {\n var width = 500;\n var height = 500;\n\n var child = document.createElement(\"div\");\n child.style.cssText = buildCssTextString([\"position: absolute\", \"width: \" + width*2 + \"px\", \"height: \" + height*2 + \"px\", \"visibility: hidden\", \"margin: 0\", \"padding: 0\"]);\n\n var container = document.createElement(\"div\");\n container.style.cssText = buildCssTextString([\"position: absolute\", \"width: \" + width + \"px\", \"height: \" + height + \"px\", \"overflow: scroll\", \"visibility: none\", \"top: \" + -width*3 + \"px\", \"left: \" + -height*3 + \"px\", \"visibility: hidden\", \"margin: 0\", \"padding: 0\"]);\n\n container.appendChild(child);\n\n document.body.insertBefore(container, document.body.firstChild);\n\n var widthSize = width - container.clientWidth;\n var heightSize = height - container.clientHeight;\n\n document.body.removeChild(container);\n\n return {\n width: widthSize,\n height: heightSize\n };\n }\n\n function injectScrollStyle(targetDocument, styleId, containerClass) {\n function injectStyle(style, method) {\n method = method || function (element) {\n targetDocument.head.appendChild(element);\n };\n\n var styleElement = targetDocument.createElement(\"style\");\n styleElement.innerHTML = style;\n styleElement.id = styleId;\n method(styleElement);\n return styleElement;\n }\n\n if (!targetDocument.getElementById(styleId)) {\n var containerAnimationClass = containerClass + \"_animation\";\n var containerAnimationActiveClass = containerClass + \"_animation_active\";\n var style = \"/* Created by the element-resize-detector library. */\\n\";\n style += \".\" + containerClass + \" > div::-webkit-scrollbar { \" + buildCssTextString([\"display: none\"]) + \" }\\n\\n\";\n style += \".\" + containerAnimationActiveClass + \" { \" + buildCssTextString([\"-webkit-animation-duration: 0.1s\", \"animation-duration: 0.1s\", \"-webkit-animation-name: \" + containerAnimationClass, \"animation-name: \" + containerAnimationClass]) + \" }\\n\";\n style += \"@-webkit-keyframes \" + containerAnimationClass + \" { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }\\n\";\n style += \"@keyframes \" + containerAnimationClass + \" { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }\";\n injectStyle(style);\n }\n }\n\n function addAnimationClass(element) {\n element.className += \" \" + detectionContainerClass + \"_animation_active\";\n }\n\n function addEvent(el, name, cb) {\n if (el.addEventListener) {\n el.addEventListener(name, cb);\n } else if(el.attachEvent) {\n el.attachEvent(\"on\" + name, cb);\n } else {\n return reporter.error(\"[scroll] Don't know how to add event listeners.\");\n }\n }\n\n function removeEvent(el, name, cb) {\n if (el.removeEventListener) {\n el.removeEventListener(name, cb);\n } else if(el.detachEvent) {\n el.detachEvent(\"on\" + name, cb);\n } else {\n return reporter.error(\"[scroll] Don't know how to remove event listeners.\");\n }\n }\n\n function getExpandElement(element) {\n return getState(element).container.childNodes[0].childNodes[0].childNodes[0];\n }\n\n function getShrinkElement(element) {\n return getState(element).container.childNodes[0].childNodes[0].childNodes[1];\n }\n\n /**\n * Adds a resize event listener to the element.\n * @public\n * @param {element} element The element that should have the listener added.\n * @param {function} listener The listener callback to be called for each resize event of the element. The element will be given as a parameter to the listener callback.\n */\n function addListener(element, listener) {\n var listeners = getState(element).listeners;\n\n if (!listeners.push) {\n throw new Error(\"Cannot add listener to an element that is not detectable.\");\n }\n\n getState(element).listeners.push(listener);\n }\n\n /**\n * Makes an element detectable and ready to be listened for resize events. Will call the callback when the element is ready to be listened for resize changes.\n * @private\n * @param {object} options Optional options object.\n * @param {element} element The element to make detectable\n * @param {function} callback The callback to be called when the element is ready to be listened for resize changes. Will be called with the element as first parameter.\n */\n function makeDetectable(options, element, callback) {\n if (!callback) {\n callback = element;\n element = options;\n options = null;\n }\n\n options = options || {};\n\n function debug() {\n if (options.debug) {\n var args = Array.prototype.slice.call(arguments);\n args.unshift(idHandler.get(element), \"Scroll: \");\n if (reporter.log.apply) {\n reporter.log.apply(null, args);\n } else {\n for (var i = 0; i < args.length; i++) {\n reporter.log(args[i]);\n }\n }\n }\n }\n\n function isDetached(element) {\n function isInDocument(element) {\n var isInShadowRoot = element.getRootNode && element.getRootNode().contains(element);\n return element === element.ownerDocument.body || element.ownerDocument.body.contains(element) || isInShadowRoot;\n }\n\n if (!isInDocument(element)) {\n return true;\n }\n\n // FireFox returns null style in hidden iframes. See https://github.com/wnr/element-resize-detector/issues/68 and https://bugzilla.mozilla.org/show_bug.cgi?id=795520\n if (window.getComputedStyle(element) === null) {\n return true;\n }\n\n return false;\n }\n\n function isUnrendered(element) {\n // Check the absolute positioned container since the top level container is display: inline.\n var container = getState(element).container.childNodes[0];\n var style = window.getComputedStyle(container);\n return !style.width || style.width.indexOf(\"px\") === -1; //Can only compute pixel value when rendered.\n }\n\n function getStyle() {\n // Some browsers only force layouts when actually reading the style properties of the style object, so make sure that they are all read here,\n // so that the user of the function can be sure that it will perform the layout here, instead of later (important for batching).\n var elementStyle = window.getComputedStyle(element);\n var style = {};\n style.position = elementStyle.position;\n style.width = element.offsetWidth;\n style.height = element.offsetHeight;\n style.top = elementStyle.top;\n style.right = elementStyle.right;\n style.bottom = elementStyle.bottom;\n style.left = elementStyle.left;\n style.widthCSS = elementStyle.width;\n style.heightCSS = elementStyle.height;\n return style;\n }\n\n function storeStartSize() {\n var style = getStyle();\n getState(element).startSize = {\n width: style.width,\n height: style.height\n };\n debug(\"Element start size\", getState(element).startSize);\n }\n\n function initListeners() {\n getState(element).listeners = [];\n }\n\n function storeStyle() {\n debug(\"storeStyle invoked.\");\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n var style = getStyle();\n getState(element).style = style;\n }\n\n function storeCurrentSize(element, width, height) {\n getState(element).lastWidth = width;\n getState(element).lastHeight = height;\n }\n\n function getExpandChildElement(element) {\n return getExpandElement(element).childNodes[0];\n }\n\n function getWidthOffset() {\n return 2 * scrollbarSizes.width + 1;\n }\n\n function getHeightOffset() {\n return 2 * scrollbarSizes.height + 1;\n }\n\n function getExpandWidth(width) {\n return width + 10 + getWidthOffset();\n }\n\n function getExpandHeight(height) {\n return height + 10 + getHeightOffset();\n }\n\n function getShrinkWidth(width) {\n return width * 2 + getWidthOffset();\n }\n\n function getShrinkHeight(height) {\n return height * 2 + getHeightOffset();\n }\n\n function positionScrollbars(element, width, height) {\n var expand = getExpandElement(element);\n var shrink = getShrinkElement(element);\n var expandWidth = getExpandWidth(width);\n var expandHeight = getExpandHeight(height);\n var shrinkWidth = getShrinkWidth(width);\n var shrinkHeight = getShrinkHeight(height);\n expand.scrollLeft = expandWidth;\n expand.scrollTop = expandHeight;\n shrink.scrollLeft = shrinkWidth;\n shrink.scrollTop = shrinkHeight;\n }\n\n function injectContainerElement() {\n var container = getState(element).container;\n\n if (!container) {\n container = document.createElement(\"div\");\n container.className = detectionContainerClass;\n container.style.cssText = buildCssTextString([\"visibility: hidden\", \"display: inline\", \"width: 0px\", \"height: 0px\", \"z-index: -1\", \"overflow: hidden\", \"margin: 0\", \"padding: 0\"]);\n getState(element).container = container;\n addAnimationClass(container);\n element.appendChild(container);\n\n var onAnimationStart = function () {\n getState(element).onRendered && getState(element).onRendered();\n };\n\n addEvent(container, \"animationstart\", onAnimationStart);\n\n // Store the event handler here so that they may be removed when uninstall is called.\n // See uninstall function for an explanation why it is needed.\n getState(element).onAnimationStart = onAnimationStart;\n }\n\n return container;\n }\n\n function injectScrollElements() {\n function alterPositionStyles() {\n var style = getState(element).style;\n\n if(style.position === \"static\") {\n element.style.setProperty(\"position\", \"relative\",options.important ? \"important\" : \"\");\n\n var removeRelativeStyles = function(reporter, element, style, property) {\n function getNumericalValue(value) {\n return value.replace(/[^-\\d\\.]/g, \"\");\n }\n\n var value = style[property];\n\n if(value !== \"auto\" && getNumericalValue(value) !== \"0\") {\n reporter.warn(\"An element that is positioned static has style.\" + property + \"=\" + value + \" which is ignored due to the static positioning. The element will need to be positioned relative, so the style.\" + property + \" will be set to 0. Element: \", element);\n element.style[property] = 0;\n }\n };\n\n //Check so that there are no accidental styles that will make the element styled differently now that is is relative.\n //If there are any, set them to 0 (this should be okay with the user since the style properties did nothing before [since the element was positioned static] anyway).\n removeRelativeStyles(reporter, element, style, \"top\");\n removeRelativeStyles(reporter, element, style, \"right\");\n removeRelativeStyles(reporter, element, style, \"bottom\");\n removeRelativeStyles(reporter, element, style, \"left\");\n }\n }\n\n function getLeftTopBottomRightCssText(left, top, bottom, right) {\n left = (!left ? \"0\" : (left + \"px\"));\n top = (!top ? \"0\" : (top + \"px\"));\n bottom = (!bottom ? \"0\" : (bottom + \"px\"));\n right = (!right ? \"0\" : (right + \"px\"));\n\n return [\"left: \" + left, \"top: \" + top, \"right: \" + right, \"bottom: \" + bottom];\n }\n\n debug(\"Injecting elements\");\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n alterPositionStyles();\n\n var rootContainer = getState(element).container;\n\n if (!rootContainer) {\n rootContainer = injectContainerElement();\n }\n\n // Due to this WebKit bug https://bugs.webkit.org/show_bug.cgi?id=80808 (currently fixed in Blink, but still present in WebKit browsers such as Safari),\n // we need to inject two containers, one that is width/height 100% and another that is left/top -1px so that the final container always is 1x1 pixels bigger than\n // the targeted element.\n // When the bug is resolved, \"containerContainer\" may be removed.\n\n // The outer container can occasionally be less wide than the targeted when inside inline elements element in WebKit (see https://bugs.webkit.org/show_bug.cgi?id=152980).\n // This should be no problem since the inner container either way makes sure the injected scroll elements are at least 1x1 px.\n\n var scrollbarWidth = scrollbarSizes.width;\n var scrollbarHeight = scrollbarSizes.height;\n var containerContainerStyle = buildCssTextString([\"position: absolute\", \"flex: none\", \"overflow: hidden\", \"z-index: -1\", \"visibility: hidden\", \"width: 100%\", \"height: 100%\", \"left: 0px\", \"top: 0px\"]);\n var containerStyle = buildCssTextString([\"position: absolute\", \"flex: none\", \"overflow: hidden\", \"z-index: -1\", \"visibility: hidden\"].concat(getLeftTopBottomRightCssText(-(1 + scrollbarWidth), -(1 + scrollbarHeight), -scrollbarHeight, -scrollbarWidth)));\n var expandStyle = buildCssTextString([\"position: absolute\", \"flex: none\", \"overflow: scroll\", \"z-index: -1\", \"visibility: hidden\", \"width: 100%\", \"height: 100%\"]);\n var shrinkStyle = buildCssTextString([\"position: absolute\", \"flex: none\", \"overflow: scroll\", \"z-index: -1\", \"visibility: hidden\", \"width: 100%\", \"height: 100%\"]);\n var expandChildStyle = buildCssTextString([\"position: absolute\", \"left: 0\", \"top: 0\"]);\n var shrinkChildStyle = buildCssTextString([\"position: absolute\", \"width: 200%\", \"height: 200%\"]);\n\n var containerContainer = document.createElement(\"div\");\n var container = document.createElement(\"div\");\n var expand = document.createElement(\"div\");\n var expandChild = document.createElement(\"div\");\n var shrink = document.createElement(\"div\");\n var shrinkChild = document.createElement(\"div\");\n\n // Some browsers choke on the resize system being rtl, so force it to ltr. https://github.com/wnr/element-resize-detector/issues/56\n // However, dir should not be set on the top level container as it alters the dimensions of the target element in some browsers.\n containerContainer.dir = \"ltr\";\n\n containerContainer.style.cssText = containerContainerStyle;\n containerContainer.className = detectionContainerClass;\n container.className = detectionContainerClass;\n container.style.cssText = containerStyle;\n expand.style.cssText = expandStyle;\n expandChild.style.cssText = expandChildStyle;\n shrink.style.cssText = shrinkStyle;\n shrinkChild.style.cssText = shrinkChildStyle;\n\n expand.appendChild(expandChild);\n shrink.appendChild(shrinkChild);\n container.appendChild(expand);\n container.appendChild(shrink);\n containerContainer.appendChild(container);\n rootContainer.appendChild(containerContainer);\n\n function onExpandScroll() {\n var state = getState(element);\n if (state && state.onExpand) {\n state.onExpand();\n } else {\n debug(\"Aborting expand scroll handler: element has been uninstalled\");\n }\n }\n\n function onShrinkScroll() {\n var state = getState(element);\n if (state && state.onShrink) {\n state.onShrink();\n } else {\n debug(\"Aborting shrink scroll handler: element has been uninstalled\");\n }\n }\n\n addEvent(expand, \"scroll\", onExpandScroll);\n addEvent(shrink, \"scroll\", onShrinkScroll);\n\n // Store the event handlers here so that they may be removed when uninstall is called.\n // See uninstall function for an explanation why it is needed.\n getState(element).onExpandScroll = onExpandScroll;\n getState(element).onShrinkScroll = onShrinkScroll;\n }\n\n function registerListenersAndPositionElements() {\n function updateChildSizes(element, width, height) {\n var expandChild = getExpandChildElement(element);\n var expandWidth = getExpandWidth(width);\n var expandHeight = getExpandHeight(height);\n expandChild.style.setProperty(\"width\", expandWidth + \"px\", options.important ? \"important\" : \"\");\n expandChild.style.setProperty(\"height\", expandHeight + \"px\", options.important ? \"important\" : \"\");\n }\n\n function updateDetectorElements(done) {\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n // Check whether the size has actually changed since last time the algorithm ran. If not, some steps may be skipped.\n var sizeChanged = width !== getState(element).lastWidth || height !== getState(element).lastHeight;\n\n debug(\"Storing current size\", width, height);\n\n // Store the size of the element sync here, so that multiple scroll events may be ignored in the event listeners.\n // Otherwise the if-check in handleScroll is useless.\n storeCurrentSize(element, width, height);\n\n // Since we delay the processing of the batch, there is a risk that uninstall has been called before the batch gets to execute.\n // Since there is no way to cancel the fn executions, we need to add an uninstall guard to all fns of the batch.\n\n batchProcessor.add(0, function performUpdateChildSizes() {\n if (!sizeChanged) {\n return;\n }\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n if (!areElementsInjected()) {\n debug(\"Aborting because element container has not been initialized\");\n return;\n }\n\n if (options.debug) {\n var w = element.offsetWidth;\n var h = element.offsetHeight;\n\n if (w !== width || h !== height) {\n reporter.warn(idHandler.get(element), \"Scroll: Size changed before updating detector elements.\");\n }\n }\n\n updateChildSizes(element, width, height);\n });\n\n batchProcessor.add(1, function updateScrollbars() {\n // This function needs to be invoked event though the size is unchanged. The element could have been resized very quickly and then\n // been restored to the original size, which will have changed the scrollbar positions.\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n if (!areElementsInjected()) {\n debug(\"Aborting because element container has not been initialized\");\n return;\n }\n\n positionScrollbars(element, width, height);\n });\n\n if (sizeChanged && done) {\n batchProcessor.add(2, function () {\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n if (!areElementsInjected()) {\n debug(\"Aborting because element container has not been initialized\");\n return;\n }\n\n done();\n });\n }\n }\n\n function areElementsInjected() {\n return !!getState(element).container;\n }\n\n function notifyListenersIfNeeded() {\n function isFirstNotify() {\n return getState(element).lastNotifiedWidth === undefined;\n }\n\n debug(\"notifyListenersIfNeeded invoked\");\n\n var state = getState(element);\n\n // Don't notify if the current size is the start size, and this is the first notification.\n if (isFirstNotify() && state.lastWidth === state.startSize.width && state.lastHeight === state.startSize.height) {\n return debug(\"Not notifying: Size is the same as the start size, and there has been no notification yet.\");\n }\n\n // Don't notify if the size already has been notified.\n if (state.lastWidth === state.lastNotifiedWidth && state.lastHeight === state.lastNotifiedHeight) {\n return debug(\"Not notifying: Size already notified\");\n }\n\n\n debug(\"Current size not notified, notifying...\");\n state.lastNotifiedWidth = state.lastWidth;\n state.lastNotifiedHeight = state.lastHeight;\n forEach(getState(element).listeners, function (listener) {\n listener(element);\n });\n }\n\n function handleRender() {\n debug(\"startanimation triggered.\");\n\n if (isUnrendered(element)) {\n debug(\"Ignoring since element is still unrendered...\");\n return;\n }\n\n debug(\"Element rendered.\");\n var expand = getExpandElement(element);\n var shrink = getShrinkElement(element);\n if (expand.scrollLeft === 0 || expand.scrollTop === 0 || shrink.scrollLeft === 0 || shrink.scrollTop === 0) {\n debug(\"Scrollbars out of sync. Updating detector elements...\");\n updateDetectorElements(notifyListenersIfNeeded);\n }\n }\n\n function handleScroll() {\n debug(\"Scroll detected.\");\n\n if (isUnrendered(element)) {\n // Element is still unrendered. Skip this scroll event.\n debug(\"Scroll event fired while unrendered. Ignoring...\");\n return;\n }\n\n updateDetectorElements(notifyListenersIfNeeded);\n }\n\n debug(\"registerListenersAndPositionElements invoked.\");\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n getState(element).onRendered = handleRender;\n getState(element).onExpand = handleScroll;\n getState(element).onShrink = handleScroll;\n\n var style = getState(element).style;\n updateChildSizes(element, style.width, style.height);\n }\n\n function finalizeDomMutation() {\n debug(\"finalizeDomMutation invoked.\");\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n var style = getState(element).style;\n storeCurrentSize(element, style.width, style.height);\n positionScrollbars(element, style.width, style.height);\n }\n\n function ready() {\n callback(element);\n }\n\n function install() {\n debug(\"Installing...\");\n initListeners();\n storeStartSize();\n\n batchProcessor.add(0, storeStyle);\n batchProcessor.add(1, injectScrollElements);\n batchProcessor.add(2, registerListenersAndPositionElements);\n batchProcessor.add(3, finalizeDomMutation);\n batchProcessor.add(4, ready);\n }\n\n debug(\"Making detectable...\");\n\n if (isDetached(element)) {\n debug(\"Element is detached\");\n\n injectContainerElement();\n\n debug(\"Waiting until element is attached...\");\n\n getState(element).onRendered = function () {\n debug(\"Element is now attached\");\n install();\n };\n } else {\n install();\n }\n }\n\n function uninstall(element) {\n var state = getState(element);\n\n if (!state) {\n // Uninstall has been called on a non-erd element.\n return;\n }\n\n // Uninstall may have been called in the following scenarios:\n // (1) Right between the sync code and async batch (here state.busy = true, but nothing have been registered or injected).\n // (2) In the ready callback of the last level of the batch by another element (here, state.busy = true, but all the stuff has been injected).\n // (3) After the installation process (here, state.busy = false and all the stuff has been injected).\n // So to be on the safe side, let's check for each thing before removing.\n\n // We need to remove the event listeners, because otherwise the event might fire on an uninstall element which results in an error when trying to get the state of the element.\n state.onExpandScroll && removeEvent(getExpandElement(element), \"scroll\", state.onExpandScroll);\n state.onShrinkScroll && removeEvent(getShrinkElement(element), \"scroll\", state.onShrinkScroll);\n state.onAnimationStart && removeEvent(state.container, \"animationstart\", state.onAnimationStart);\n\n state.container && element.removeChild(state.container);\n }\n\n return {\n makeDetectable: makeDetectable,\n addListener: addListener,\n uninstall: uninstall,\n initDocument: initDocument\n };\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","\"use strict\";\n\nvar prop = \"_erd\";\n\nfunction initState(element) {\n element[prop] = {};\n return getState(element);\n}\n\nfunction getState(element) {\n return element[prop];\n}\n\nfunction cleanState(element) {\n delete element[prop];\n}\n\nmodule.exports = {\n initState: initState,\n getState: getState,\n cleanState: cleanState\n};\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","export * from \"-!../../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&\"","\"use strict\";\n\nvar forEach = require(\"./collection-utils\").forEach;\nvar elementUtilsMaker = require(\"./element-utils\");\nvar listenerHandlerMaker = require(\"./listener-handler\");\nvar idGeneratorMaker = require(\"./id-generator\");\nvar idHandlerMaker = require(\"./id-handler\");\nvar reporterMaker = require(\"./reporter\");\nvar browserDetector = require(\"./browser-detector\");\nvar batchProcessorMaker = require(\"batch-processor\");\nvar stateHandler = require(\"./state-handler\");\n\n//Detection strategies.\nvar objectStrategyMaker = require(\"./detection-strategy/object.js\");\nvar scrollStrategyMaker = require(\"./detection-strategy/scroll.js\");\n\nfunction isCollection(obj) {\n return Array.isArray(obj) || obj.length !== undefined;\n}\n\nfunction toArray(collection) {\n if (!Array.isArray(collection)) {\n var array = [];\n forEach(collection, function (obj) {\n array.push(obj);\n });\n return array;\n } else {\n return collection;\n }\n}\n\nfunction isElement(obj) {\n return obj && obj.nodeType === 1;\n}\n\n/**\n * @typedef idHandler\n * @type {object}\n * @property {function} get Gets the resize detector id of the element.\n * @property {function} set Generate and sets the resize detector id of the element.\n */\n\n/**\n * @typedef Options\n * @type {object}\n * @property {boolean} callOnAdd Determines if listeners should be called when they are getting added.\n Default is true. If true, the listener is guaranteed to be called when it has been added.\n If false, the listener will not be guarenteed to be called when it has been added (does not prevent it from being called).\n * @property {idHandler} idHandler A custom id handler that is responsible for generating, setting and retrieving id's for elements.\n If not provided, a default id handler will be used.\n * @property {reporter} reporter A custom reporter that handles reporting logs, warnings and errors.\n If not provided, a default id handler will be used.\n If set to false, then nothing will be reported.\n * @property {boolean} debug If set to true, the the system will report debug messages as default for the listenTo method.\n */\n\n/**\n * Creates an element resize detector instance.\n * @public\n * @param {Options?} options Optional global options object that will decide how this instance will work.\n */\nmodule.exports = function(options) {\n options = options || {};\n\n //idHandler is currently not an option to the listenTo function, so it should not be added to globalOptions.\n var idHandler;\n\n if (options.idHandler) {\n // To maintain compatability with idHandler.get(element, readonly), make sure to wrap the given idHandler\n // so that readonly flag always is true when it's used here. This may be removed next major version bump.\n idHandler = {\n get: function (element) { return options.idHandler.get(element, true); },\n set: options.idHandler.set\n };\n } else {\n var idGenerator = idGeneratorMaker();\n var defaultIdHandler = idHandlerMaker({\n idGenerator: idGenerator,\n stateHandler: stateHandler\n });\n idHandler = defaultIdHandler;\n }\n\n //reporter is currently not an option to the listenTo function, so it should not be added to globalOptions.\n var reporter = options.reporter;\n\n if(!reporter) {\n //If options.reporter is false, then the reporter should be quiet.\n var quiet = reporter === false;\n reporter = reporterMaker(quiet);\n }\n\n //batchProcessor is currently not an option to the listenTo function, so it should not be added to globalOptions.\n var batchProcessor = getOption(options, \"batchProcessor\", batchProcessorMaker({ reporter: reporter }));\n\n //Options to be used as default for the listenTo function.\n var globalOptions = {};\n globalOptions.callOnAdd = !!getOption(options, \"callOnAdd\", true);\n globalOptions.debug = !!getOption(options, \"debug\", false);\n\n var eventListenerHandler = listenerHandlerMaker(idHandler);\n var elementUtils = elementUtilsMaker({\n stateHandler: stateHandler\n });\n\n //The detection strategy to be used.\n var detectionStrategy;\n var desiredStrategy = getOption(options, \"strategy\", \"object\");\n var importantCssRules = getOption(options, \"important\", false);\n var strategyOptions = {\n reporter: reporter,\n batchProcessor: batchProcessor,\n stateHandler: stateHandler,\n idHandler: idHandler,\n important: importantCssRules\n };\n\n if(desiredStrategy === \"scroll\") {\n if (browserDetector.isLegacyOpera()) {\n reporter.warn(\"Scroll strategy is not supported on legacy Opera. Changing to object strategy.\");\n desiredStrategy = \"object\";\n } else if (browserDetector.isIE(9)) {\n reporter.warn(\"Scroll strategy is not supported on IE9. Changing to object strategy.\");\n desiredStrategy = \"object\";\n }\n }\n\n if(desiredStrategy === \"scroll\") {\n detectionStrategy = scrollStrategyMaker(strategyOptions);\n } else if(desiredStrategy === \"object\") {\n detectionStrategy = objectStrategyMaker(strategyOptions);\n } else {\n throw new Error(\"Invalid strategy name: \" + desiredStrategy);\n }\n\n //Calls can be made to listenTo with elements that are still being installed.\n //Also, same elements can occur in the elements list in the listenTo function.\n //With this map, the ready callbacks can be synchronized between the calls\n //so that the ready callback can always be called when an element is ready - even if\n //it wasn't installed from the function itself.\n var onReadyCallbacks = {};\n\n /**\n * Makes the given elements resize-detectable and starts listening to resize events on the elements. Calls the event callback for each event for each element.\n * @public\n * @param {Options?} options Optional options object. These options will override the global options. Some options may not be overriden, such as idHandler.\n * @param {element[]|element} elements The given array of elements to detect resize events of. Single element is also valid.\n * @param {function} listener The callback to be executed for each resize event for each element.\n */\n function listenTo(options, elements, listener) {\n function onResizeCallback(element) {\n var listeners = eventListenerHandler.get(element);\n forEach(listeners, function callListenerProxy(listener) {\n listener(element);\n });\n }\n\n function addListener(callOnAdd, element, listener) {\n eventListenerHandler.add(element, listener);\n\n if(callOnAdd) {\n listener(element);\n }\n }\n\n //Options object may be omitted.\n if(!listener) {\n listener = elements;\n elements = options;\n options = {};\n }\n\n if(!elements) {\n throw new Error(\"At least one element required.\");\n }\n\n if(!listener) {\n throw new Error(\"Listener required.\");\n }\n\n if (isElement(elements)) {\n // A single element has been passed in.\n elements = [elements];\n } else if (isCollection(elements)) {\n // Convert collection to array for plugins.\n // TODO: May want to check so that all the elements in the collection are valid elements.\n elements = toArray(elements);\n } else {\n return reporter.error(\"Invalid arguments. Must be a DOM element or a collection of DOM elements.\");\n }\n\n var elementsReady = 0;\n\n var callOnAdd = getOption(options, \"callOnAdd\", globalOptions.callOnAdd);\n var onReadyCallback = getOption(options, \"onReady\", function noop() {});\n var debug = getOption(options, \"debug\", globalOptions.debug);\n\n forEach(elements, function attachListenerToElement(element) {\n if (!stateHandler.getState(element)) {\n stateHandler.initState(element);\n idHandler.set(element);\n }\n\n var id = idHandler.get(element);\n\n debug && reporter.log(\"Attaching listener to element\", id, element);\n\n if(!elementUtils.isDetectable(element)) {\n debug && reporter.log(id, \"Not detectable.\");\n if(elementUtils.isBusy(element)) {\n debug && reporter.log(id, \"System busy making it detectable\");\n\n //The element is being prepared to be detectable. Do not make it detectable.\n //Just add the listener, because the element will soon be detectable.\n addListener(callOnAdd, element, listener);\n onReadyCallbacks[id] = onReadyCallbacks[id] || [];\n onReadyCallbacks[id].push(function onReady() {\n elementsReady++;\n\n if(elementsReady === elements.length) {\n onReadyCallback();\n }\n });\n return;\n }\n\n debug && reporter.log(id, \"Making detectable...\");\n //The element is not prepared to be detectable, so do prepare it and add a listener to it.\n elementUtils.markBusy(element, true);\n return detectionStrategy.makeDetectable({ debug: debug, important: importantCssRules }, element, function onElementDetectable(element) {\n debug && reporter.log(id, \"onElementDetectable\");\n\n if (stateHandler.getState(element)) {\n elementUtils.markAsDetectable(element);\n elementUtils.markBusy(element, false);\n detectionStrategy.addListener(element, onResizeCallback);\n addListener(callOnAdd, element, listener);\n\n // Since the element size might have changed since the call to \"listenTo\", we need to check for this change,\n // so that a resize event may be emitted.\n // Having the startSize object is optional (since it does not make sense in some cases such as unrendered elements), so check for its existance before.\n // Also, check the state existance before since the element may have been uninstalled in the installation process.\n var state = stateHandler.getState(element);\n if (state && state.startSize) {\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n if (state.startSize.width !== width || state.startSize.height !== height) {\n onResizeCallback(element);\n }\n }\n\n if(onReadyCallbacks[id]) {\n forEach(onReadyCallbacks[id], function(callback) {\n callback();\n });\n }\n } else {\n // The element has been unisntalled before being detectable.\n debug && reporter.log(id, \"Element uninstalled before being detectable.\");\n }\n\n delete onReadyCallbacks[id];\n\n elementsReady++;\n if(elementsReady === elements.length) {\n onReadyCallback();\n }\n });\n }\n\n debug && reporter.log(id, \"Already detecable, adding listener.\");\n\n //The element has been prepared to be detectable and is ready to be listened to.\n addListener(callOnAdd, element, listener);\n elementsReady++;\n });\n\n if(elementsReady === elements.length) {\n onReadyCallback();\n }\n }\n\n function uninstall(elements) {\n if(!elements) {\n return reporter.error(\"At least one element is required.\");\n }\n\n if (isElement(elements)) {\n // A single element has been passed in.\n elements = [elements];\n } else if (isCollection(elements)) {\n // Convert collection to array for plugins.\n // TODO: May want to check so that all the elements in the collection are valid elements.\n elements = toArray(elements);\n } else {\n return reporter.error(\"Invalid arguments. Must be a DOM element or a collection of DOM elements.\");\n }\n\n forEach(elements, function (element) {\n eventListenerHandler.removeAllListeners(element);\n detectionStrategy.uninstall(element);\n stateHandler.cleanState(element);\n });\n }\n\n function initDocument(targetDocument) {\n detectionStrategy.initDocument && detectionStrategy.initDocument(targetDocument);\n }\n\n return {\n listenTo: listenTo,\n removeListener: eventListenerHandler.removeListener,\n removeAllListeners: eventListenerHandler.removeAllListeners,\n uninstall: uninstall,\n initDocument: initDocument\n };\n};\n\nfunction getOption(options, name, defaultValue) {\n var value = options[name];\n\n if((value === undefined || value === null) && defaultValue !== undefined) {\n return defaultValue;\n }\n\n return value;\n}\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","// document.currentScript polyfill by Adam Miller\n\n// MIT license\n\n(function(document){\n var currentScript = \"currentScript\",\n scripts = document.getElementsByTagName('script'); // Live NodeList collection\n\n // If browser needs currentScript polyfill, add get currentScript() to the document object\n if (!(currentScript in document)) {\n Object.defineProperty(document, currentScript, {\n get: function(){\n\n // IE 6-10 supports script readyState\n // IE 10+ support stack trace\n try { throw new Error(); }\n catch (err) {\n\n // Find the second match for the \"at\" string to get file src url from stack.\n // Specifically works with the format of stack traces in IE.\n var i, res = ((/.*at [^\\(]*\\((.*):.+:.+\\)$/ig).exec(err.stack) || [false])[1];\n\n // For all scripts on the page, if src matches or if ready state is interactive, return the script tag\n for(i in scripts){\n if(scripts[i].src == res || scripts[i].readyState == \"interactive\"){\n return scripts[i];\n }\n }\n\n // If no match, return null\n return null;\n }\n }\n });\n }\n})(document);\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","module.exports = require('./_shared')('native-function-to-string', Function.toString);\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n require('current-script-polyfill')\n }\n\n var i\n if ((i = window.document.currentScript) && (i = i.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/))) {\n __webpack_public_path__ = i[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n","// 20.1.2.2 Number.isFinite(number)\nvar $export = require('./_export');\nvar _isFinite = require('./_global').isFinite;\n\n$export($export.S, 'Number', {\n isFinite: function isFinite(it) {\n return typeof it == 'number' && _isFinite(it);\n }\n});\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/docs/README.md b/docs/README.md deleted file mode 100644 index 5e331b84..00000000 --- a/docs/README.md +++ /dev/null @@ -1 +0,0 @@ -# vue-grid-layout \ No newline at end of file diff --git a/examples/vue.js b/examples/vue.js deleted file mode 100644 index ef171b97..00000000 --- a/examples/vue.js +++ /dev/null @@ -1,10947 +0,0 @@ -/*! - * Vue.js v2.5.17 - * (c) 2014-2018 Evan You - * Released under the MIT License. - */ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global.Vue = factory()); -}(this, (function () { 'use strict'; - -/* */ - -var emptyObject = Object.freeze({}); - -// these helpers produces better vm code in JS engines due to their -// explicitness and function inlining -function isUndef (v) { - return v === undefined || v === null -} - -function isDef (v) { - return v !== undefined && v !== null -} - -function isTrue (v) { - return v === true -} - -function isFalse (v) { - return v === false -} - -/** - * Check if value is primitive - */ -function isPrimitive (value) { - return ( - typeof value === 'string' || - typeof value === 'number' || - // $flow-disable-line - typeof value === 'symbol' || - typeof value === 'boolean' - ) -} - -/** - * Quick object check - this is primarily used to tell - * Objects from primitive values when we know the value - * is a JSON-compliant type. - */ -function isObject (obj) { - return obj !== null && typeof obj === 'object' -} - -/** - * Get the raw type string of a value e.g. [object Object] - */ -var _toString = Object.prototype.toString; - -function toRawType (value) { - return _toString.call(value).slice(8, -1) -} - -/** - * Strict object type check. Only returns true - * for plain JavaScript objects. - */ -function isPlainObject (obj) { - return _toString.call(obj) === '[object Object]' -} - -function isRegExp (v) { - return _toString.call(v) === '[object RegExp]' -} - -/** - * Check if val is a valid array index. - */ -function isValidArrayIndex (val) { - var n = parseFloat(String(val)); - return n >= 0 && Math.floor(n) === n && isFinite(val) -} - -/** - * Convert a value to a string that is actually rendered. - */ -function toString (val) { - return val == null - ? '' - : typeof val === 'object' - ? JSON.stringify(val, null, 2) - : String(val) -} - -/** - * Convert a input value to a number for persistence. - * If the conversion fails, return original string. - */ -function toNumber (val) { - var n = parseFloat(val); - return isNaN(n) ? val : n -} - -/** - * Make a map and return a function for checking if a key - * is in that map. - */ -function makeMap ( - str, - expectsLowerCase -) { - var map = Object.create(null); - var list = str.split(','); - for (var i = 0; i < list.length; i++) { - map[list[i]] = true; - } - return expectsLowerCase - ? function (val) { return map[val.toLowerCase()]; } - : function (val) { return map[val]; } -} - -/** - * Check if a tag is a built-in tag. - */ -var isBuiltInTag = makeMap('slot,component', true); - -/** - * Check if a attribute is a reserved attribute. - */ -var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is'); - -/** - * Remove an item from an array - */ -function remove (arr, item) { - if (arr.length) { - var index = arr.indexOf(item); - if (index > -1) { - return arr.splice(index, 1) - } - } -} - -/** - * Check whether the object has the property. - */ -var hasOwnProperty = Object.prototype.hasOwnProperty; -function hasOwn (obj, key) { - return hasOwnProperty.call(obj, key) -} - -/** - * Create a cached version of a pure function. - */ -function cached (fn) { - var cache = Object.create(null); - return (function cachedFn (str) { - var hit = cache[str]; - return hit || (cache[str] = fn(str)) - }) -} - -/** - * Camelize a hyphen-delimited string. - */ -var camelizeRE = /-(\w)/g; -var camelize = cached(function (str) { - return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; }) -}); - -/** - * Capitalize a string. - */ -var capitalize = cached(function (str) { - return str.charAt(0).toUpperCase() + str.slice(1) -}); - -/** - * Hyphenate a camelCase string. - */ -var hyphenateRE = /\B([A-Z])/g; -var hyphenate = cached(function (str) { - return str.replace(hyphenateRE, '-$1').toLowerCase() -}); - -/** - * Simple bind polyfill for environments that do not support it... e.g. - * PhantomJS 1.x. Technically we don't need this anymore since native bind is - * now more performant in most browsers, but removing it would be breaking for - * code that was able to run in PhantomJS 1.x, so this must be kept for - * backwards compatibility. - */ - -/* istanbul ignore next */ -function polyfillBind (fn, ctx) { - function boundFn (a) { - var l = arguments.length; - return l - ? l > 1 - ? fn.apply(ctx, arguments) - : fn.call(ctx, a) - : fn.call(ctx) - } - - boundFn._length = fn.length; - return boundFn -} - -function nativeBind (fn, ctx) { - return fn.bind(ctx) -} - -var bind = Function.prototype.bind - ? nativeBind - : polyfillBind; - -/** - * Convert an Array-like object to a real Array. - */ -function toArray (list, start) { - start = start || 0; - var i = list.length - start; - var ret = new Array(i); - while (i--) { - ret[i] = list[i + start]; - } - return ret -} - -/** - * Mix properties into target object. - */ -function extend (to, _from) { - for (var key in _from) { - to[key] = _from[key]; - } - return to -} - -/** - * Merge an Array of Objects into a single Object. - */ -function toObject (arr) { - var res = {}; - for (var i = 0; i < arr.length; i++) { - if (arr[i]) { - extend(res, arr[i]); - } - } - return res -} - -/** - * Perform no operation. - * Stubbing args to make Flow happy without leaving useless transpiled code - * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/) - */ -function noop (a, b, c) {} - -/** - * Always return false. - */ -var no = function (a, b, c) { return false; }; - -/** - * Return same value - */ -var identity = function (_) { return _; }; - -/** - * Generate a static keys string from compiler modules. - */ -function genStaticKeys (modules) { - return modules.reduce(function (keys, m) { - return keys.concat(m.staticKeys || []) - }, []).join(',') -} - -/** - * Check if two values are loosely equal - that is, - * if they are plain objects, do they have the same shape? - */ -function looseEqual (a, b) { - if (a === b) { return true } - var isObjectA = isObject(a); - var isObjectB = isObject(b); - if (isObjectA && isObjectB) { - try { - var isArrayA = Array.isArray(a); - var isArrayB = Array.isArray(b); - if (isArrayA && isArrayB) { - return a.length === b.length && a.every(function (e, i) { - return looseEqual(e, b[i]) - }) - } else if (!isArrayA && !isArrayB) { - var keysA = Object.keys(a); - var keysB = Object.keys(b); - return keysA.length === keysB.length && keysA.every(function (key) { - return looseEqual(a[key], b[key]) - }) - } else { - /* istanbul ignore next */ - return false - } - } catch (e) { - /* istanbul ignore next */ - return false - } - } else if (!isObjectA && !isObjectB) { - return String(a) === String(b) - } else { - return false - } -} - -function looseIndexOf (arr, val) { - for (var i = 0; i < arr.length; i++) { - if (looseEqual(arr[i], val)) { return i } - } - return -1 -} - -/** - * Ensure a function is called only once. - */ -function once (fn) { - var called = false; - return function () { - if (!called) { - called = true; - fn.apply(this, arguments); - } - } -} - -var SSR_ATTR = 'data-server-rendered'; - -var ASSET_TYPES = [ - 'component', - 'directive', - 'filter' -]; - -var LIFECYCLE_HOOKS = [ - 'beforeCreate', - 'created', - 'beforeMount', - 'mounted', - 'beforeUpdate', - 'updated', - 'beforeDestroy', - 'destroyed', - 'activated', - 'deactivated', - 'errorCaptured' -]; - -/* */ - -var config = ({ - /** - * Option merge strategies (used in core/util/options) - */ - // $flow-disable-line - optionMergeStrategies: Object.create(null), - - /** - * Whether to suppress warnings. - */ - silent: false, - - /** - * Show production mode tip message on boot? - */ - productionTip: "development" !== 'production', - - /** - * Whether to enable devtools - */ - devtools: "development" !== 'production', - - /** - * Whether to record perf - */ - performance: false, - - /** - * Error handler for watcher errors - */ - errorHandler: null, - - /** - * Warn handler for watcher warns - */ - warnHandler: null, - - /** - * Ignore certain custom elements - */ - ignoredElements: [], - - /** - * Custom user key aliases for v-on - */ - // $flow-disable-line - keyCodes: Object.create(null), - - /** - * Check if a tag is reserved so that it cannot be registered as a - * component. This is platform-dependent and may be overwritten. - */ - isReservedTag: no, - - /** - * Check if an attribute is reserved so that it cannot be used as a component - * prop. This is platform-dependent and may be overwritten. - */ - isReservedAttr: no, - - /** - * Check if a tag is an unknown element. - * Platform-dependent. - */ - isUnknownElement: no, - - /** - * Get the namespace of an element - */ - getTagNamespace: noop, - - /** - * Parse the real tag name for the specific platform. - */ - parsePlatformTagName: identity, - - /** - * Check if an attribute must be bound using property, e.g. value - * Platform-dependent. - */ - mustUseProp: no, - - /** - * Exposed for legacy reasons - */ - _lifecycleHooks: LIFECYCLE_HOOKS -}) - -/* */ - -/** - * Check if a string starts with $ or _ - */ -function isReserved (str) { - var c = (str + '').charCodeAt(0); - return c === 0x24 || c === 0x5F -} - -/** - * Define a property. - */ -function def (obj, key, val, enumerable) { - Object.defineProperty(obj, key, { - value: val, - enumerable: !!enumerable, - writable: true, - configurable: true - }); -} - -/** - * Parse simple path. - */ -var bailRE = /[^\w.$]/; -function parsePath (path) { - if (bailRE.test(path)) { - return - } - var segments = path.split('.'); - return function (obj) { - for (var i = 0; i < segments.length; i++) { - if (!obj) { return } - obj = obj[segments[i]]; - } - return obj - } -} - -/* */ - -// can we use __proto__? -var hasProto = '__proto__' in {}; - -// Browser environment sniffing -var inBrowser = typeof window !== 'undefined'; -var inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform; -var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase(); -var UA = inBrowser && window.navigator.userAgent.toLowerCase(); -var isIE = UA && /msie|trident/.test(UA); -var isIE9 = UA && UA.indexOf('msie 9.0') > 0; -var isEdge = UA && UA.indexOf('edge/') > 0; -var isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android'); -var isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios'); -var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge; - -// Firefox has a "watch" function on Object.prototype... -var nativeWatch = ({}).watch; - -var supportsPassive = false; -if (inBrowser) { - try { - var opts = {}; - Object.defineProperty(opts, 'passive', ({ - get: function get () { - /* istanbul ignore next */ - supportsPassive = true; - } - })); // https://github.com/facebook/flow/issues/285 - window.addEventListener('test-passive', null, opts); - } catch (e) {} -} - -// this needs to be lazy-evaled because vue may be required before -// vue-server-renderer can set VUE_ENV -var _isServer; -var isServerRendering = function () { - if (_isServer === undefined) { - /* istanbul ignore if */ - if (!inBrowser && !inWeex && typeof global !== 'undefined') { - // detect presence of vue-server-renderer and avoid - // Webpack shimming the process - _isServer = global['process'].env.VUE_ENV === 'server'; - } else { - _isServer = false; - } - } - return _isServer -}; - -// detect devtools -var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__; - -/* istanbul ignore next */ -function isNative (Ctor) { - return typeof Ctor === 'function' && /native code/.test(Ctor.toString()) -} - -var hasSymbol = - typeof Symbol !== 'undefined' && isNative(Symbol) && - typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys); - -var _Set; -/* istanbul ignore if */ // $flow-disable-line -if (typeof Set !== 'undefined' && isNative(Set)) { - // use native Set when available. - _Set = Set; -} else { - // a non-standard Set polyfill that only works with primitive keys. - _Set = (function () { - function Set () { - this.set = Object.create(null); - } - Set.prototype.has = function has (key) { - return this.set[key] === true - }; - Set.prototype.add = function add (key) { - this.set[key] = true; - }; - Set.prototype.clear = function clear () { - this.set = Object.create(null); - }; - - return Set; - }()); -} - -/* */ - -var warn = noop; -var tip = noop; -var generateComponentTrace = (noop); // work around flow check -var formatComponentName = (noop); - -{ - var hasConsole = typeof console !== 'undefined'; - var classifyRE = /(?:^|[-_])(\w)/g; - var classify = function (str) { return str - .replace(classifyRE, function (c) { return c.toUpperCase(); }) - .replace(/[-_]/g, ''); }; - - warn = function (msg, vm) { - var trace = vm ? generateComponentTrace(vm) : ''; - - if (config.warnHandler) { - config.warnHandler.call(null, msg, vm, trace); - } else if (hasConsole && (!config.silent)) { - console.error(("[Vue warn]: " + msg + trace)); - } - }; - - tip = function (msg, vm) { - if (hasConsole && (!config.silent)) { - console.warn("[Vue tip]: " + msg + ( - vm ? generateComponentTrace(vm) : '' - )); - } - }; - - formatComponentName = function (vm, includeFile) { - if (vm.$root === vm) { - return '' - } - var options = typeof vm === 'function' && vm.cid != null - ? vm.options - : vm._isVue - ? vm.$options || vm.constructor.options - : vm || {}; - var name = options.name || options._componentTag; - var file = options.__file; - if (!name && file) { - var match = file.match(/([^/\\]+)\.vue$/); - name = match && match[1]; - } - - return ( - (name ? ("<" + (classify(name)) + ">") : "") + - (file && includeFile !== false ? (" at " + file) : '') - ) - }; - - var repeat = function (str, n) { - var res = ''; - while (n) { - if (n % 2 === 1) { res += str; } - if (n > 1) { str += str; } - n >>= 1; - } - return res - }; - - generateComponentTrace = function (vm) { - if (vm._isVue && vm.$parent) { - var tree = []; - var currentRecursiveSequence = 0; - while (vm) { - if (tree.length > 0) { - var last = tree[tree.length - 1]; - if (last.constructor === vm.constructor) { - currentRecursiveSequence++; - vm = vm.$parent; - continue - } else if (currentRecursiveSequence > 0) { - tree[tree.length - 1] = [last, currentRecursiveSequence]; - currentRecursiveSequence = 0; - } - } - tree.push(vm); - vm = vm.$parent; - } - return '\n\nfound in\n\n' + tree - .map(function (vm, i) { return ("" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm) - ? ((formatComponentName(vm[0])) + "... (" + (vm[1]) + " recursive calls)") - : formatComponentName(vm))); }) - .join('\n') - } else { - return ("\n\n(found in " + (formatComponentName(vm)) + ")") - } - }; -} - -/* */ - - -var uid = 0; - -/** - * A dep is an observable that can have multiple - * directives subscribing to it. - */ -var Dep = function Dep () { - this.id = uid++; - this.subs = []; -}; - -Dep.prototype.addSub = function addSub (sub) { - this.subs.push(sub); -}; - -Dep.prototype.removeSub = function removeSub (sub) { - remove(this.subs, sub); -}; - -Dep.prototype.depend = function depend () { - if (Dep.target) { - Dep.target.addDep(this); - } -}; - -Dep.prototype.notify = function notify () { - // stabilize the subscriber list first - var subs = this.subs.slice(); - for (var i = 0, l = subs.length; i < l; i++) { - subs[i].update(); - } -}; - -// the current target watcher being evaluated. -// this is globally unique because there could be only one -// watcher being evaluated at any time. -Dep.target = null; -var targetStack = []; - -function pushTarget (_target) { - if (Dep.target) { targetStack.push(Dep.target); } - Dep.target = _target; -} - -function popTarget () { - Dep.target = targetStack.pop(); -} - -/* */ - -var VNode = function VNode ( - tag, - data, - children, - text, - elm, - context, - componentOptions, - asyncFactory -) { - this.tag = tag; - this.data = data; - this.children = children; - this.text = text; - this.elm = elm; - this.ns = undefined; - this.context = context; - this.fnContext = undefined; - this.fnOptions = undefined; - this.fnScopeId = undefined; - this.key = data && data.key; - this.componentOptions = componentOptions; - this.componentInstance = undefined; - this.parent = undefined; - this.raw = false; - this.isStatic = false; - this.isRootInsert = true; - this.isComment = false; - this.isCloned = false; - this.isOnce = false; - this.asyncFactory = asyncFactory; - this.asyncMeta = undefined; - this.isAsyncPlaceholder = false; -}; - -var prototypeAccessors = { child: { configurable: true } }; - -// DEPRECATED: alias for componentInstance for backwards compat. -/* istanbul ignore next */ -prototypeAccessors.child.get = function () { - return this.componentInstance -}; - -Object.defineProperties( VNode.prototype, prototypeAccessors ); - -var createEmptyVNode = function (text) { - if ( text === void 0 ) text = ''; - - var node = new VNode(); - node.text = text; - node.isComment = true; - return node -}; - -function createTextVNode (val) { - return new VNode(undefined, undefined, undefined, String(val)) -} - -// optimized shallow clone -// used for static nodes and slot nodes because they may be reused across -// multiple renders, cloning them avoids errors when DOM manipulations rely -// on their elm reference. -function cloneVNode (vnode) { - var cloned = new VNode( - vnode.tag, - vnode.data, - vnode.children, - vnode.text, - vnode.elm, - vnode.context, - vnode.componentOptions, - vnode.asyncFactory - ); - cloned.ns = vnode.ns; - cloned.isStatic = vnode.isStatic; - cloned.key = vnode.key; - cloned.isComment = vnode.isComment; - cloned.fnContext = vnode.fnContext; - cloned.fnOptions = vnode.fnOptions; - cloned.fnScopeId = vnode.fnScopeId; - cloned.isCloned = true; - return cloned -} - -/* - * not type checking this file because flow doesn't play well with - * dynamically accessing methods on Array prototype - */ - -var arrayProto = Array.prototype; -var arrayMethods = Object.create(arrayProto); - -var methodsToPatch = [ - 'push', - 'pop', - 'shift', - 'unshift', - 'splice', - 'sort', - 'reverse' -]; - -/** - * Intercept mutating methods and emit events - */ -methodsToPatch.forEach(function (method) { - // cache original method - var original = arrayProto[method]; - def(arrayMethods, method, function mutator () { - var args = [], len = arguments.length; - while ( len-- ) args[ len ] = arguments[ len ]; - - var result = original.apply(this, args); - var ob = this.__ob__; - var inserted; - switch (method) { - case 'push': - case 'unshift': - inserted = args; - break - case 'splice': - inserted = args.slice(2); - break - } - if (inserted) { ob.observeArray(inserted); } - // notify change - ob.dep.notify(); - return result - }); -}); - -/* */ - -var arrayKeys = Object.getOwnPropertyNames(arrayMethods); - -/** - * In some cases we may want to disable observation inside a component's - * update computation. - */ -var shouldObserve = true; - -function toggleObserving (value) { - shouldObserve = value; -} - -/** - * Observer class that is attached to each observed - * object. Once attached, the observer converts the target - * object's property keys into getter/setters that - * collect dependencies and dispatch updates. - */ -var Observer = function Observer (value) { - this.value = value; - this.dep = new Dep(); - this.vmCount = 0; - def(value, '__ob__', this); - if (Array.isArray(value)) { - var augment = hasProto - ? protoAugment - : copyAugment; - augment(value, arrayMethods, arrayKeys); - this.observeArray(value); - } else { - this.walk(value); - } -}; - -/** - * Walk through each property and convert them into - * getter/setters. This method should only be called when - * value type is Object. - */ -Observer.prototype.walk = function walk (obj) { - var keys = Object.keys(obj); - for (var i = 0; i < keys.length; i++) { - defineReactive(obj, keys[i]); - } -}; - -/** - * Observe a list of Array items. - */ -Observer.prototype.observeArray = function observeArray (items) { - for (var i = 0, l = items.length; i < l; i++) { - observe(items[i]); - } -}; - -// helpers - -/** - * Augment an target Object or Array by intercepting - * the prototype chain using __proto__ - */ -function protoAugment (target, src, keys) { - /* eslint-disable no-proto */ - target.__proto__ = src; - /* eslint-enable no-proto */ -} - -/** - * Augment an target Object or Array by defining - * hidden properties. - */ -/* istanbul ignore next */ -function copyAugment (target, src, keys) { - for (var i = 0, l = keys.length; i < l; i++) { - var key = keys[i]; - def(target, key, src[key]); - } -} - -/** - * Attempt to create an observer instance for a value, - * returns the new observer if successfully observed, - * or the existing observer if the value already has one. - */ -function observe (value, asRootData) { - if (!isObject(value) || value instanceof VNode) { - return - } - var ob; - if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) { - ob = value.__ob__; - } else if ( - shouldObserve && - !isServerRendering() && - (Array.isArray(value) || isPlainObject(value)) && - Object.isExtensible(value) && - !value._isVue - ) { - ob = new Observer(value); - } - if (asRootData && ob) { - ob.vmCount++; - } - return ob -} - -/** - * Define a reactive property on an Object. - */ -function defineReactive ( - obj, - key, - val, - customSetter, - shallow -) { - var dep = new Dep(); - - var property = Object.getOwnPropertyDescriptor(obj, key); - if (property && property.configurable === false) { - return - } - - // cater for pre-defined getter/setters - var getter = property && property.get; - if (!getter && arguments.length === 2) { - val = obj[key]; - } - var setter = property && property.set; - - var childOb = !shallow && observe(val); - Object.defineProperty(obj, key, { - enumerable: true, - configurable: true, - get: function reactiveGetter () { - var value = getter ? getter.call(obj) : val; - if (Dep.target) { - dep.depend(); - if (childOb) { - childOb.dep.depend(); - if (Array.isArray(value)) { - dependArray(value); - } - } - } - return value - }, - set: function reactiveSetter (newVal) { - var value = getter ? getter.call(obj) : val; - /* eslint-disable no-self-compare */ - if (newVal === value || (newVal !== newVal && value !== value)) { - return - } - /* eslint-enable no-self-compare */ - if ("development" !== 'production' && customSetter) { - customSetter(); - } - if (setter) { - setter.call(obj, newVal); - } else { - val = newVal; - } - childOb = !shallow && observe(newVal); - dep.notify(); - } - }); -} - -/** - * Set a property on an object. Adds the new property and - * triggers change notification if the property doesn't - * already exist. - */ -function set (target, key, val) { - if ("development" !== 'production' && - (isUndef(target) || isPrimitive(target)) - ) { - warn(("Cannot set reactive property on undefined, null, or primitive value: " + ((target)))); - } - if (Array.isArray(target) && isValidArrayIndex(key)) { - target.length = Math.max(target.length, key); - target.splice(key, 1, val); - return val - } - if (key in target && !(key in Object.prototype)) { - target[key] = val; - return val - } - var ob = (target).__ob__; - if (target._isVue || (ob && ob.vmCount)) { - "development" !== 'production' && warn( - 'Avoid adding reactive properties to a Vue instance or its root $data ' + - 'at runtime - declare it upfront in the data option.' - ); - return val - } - if (!ob) { - target[key] = val; - return val - } - defineReactive(ob.value, key, val); - ob.dep.notify(); - return val -} - -/** - * Delete a property and trigger change if necessary. - */ -function del (target, key) { - if ("development" !== 'production' && - (isUndef(target) || isPrimitive(target)) - ) { - warn(("Cannot delete reactive property on undefined, null, or primitive value: " + ((target)))); - } - if (Array.isArray(target) && isValidArrayIndex(key)) { - target.splice(key, 1); - return - } - var ob = (target).__ob__; - if (target._isVue || (ob && ob.vmCount)) { - "development" !== 'production' && warn( - 'Avoid deleting properties on a Vue instance or its root $data ' + - '- just set it to null.' - ); - return - } - if (!hasOwn(target, key)) { - return - } - delete target[key]; - if (!ob) { - return - } - ob.dep.notify(); -} - -/** - * Collect dependencies on array elements when the array is touched, since - * we cannot intercept array element access like property getters. - */ -function dependArray (value) { - for (var e = (void 0), i = 0, l = value.length; i < l; i++) { - e = value[i]; - e && e.__ob__ && e.__ob__.dep.depend(); - if (Array.isArray(e)) { - dependArray(e); - } - } -} - -/* */ - -/** - * Option overwriting strategies are functions that handle - * how to merge a parent option value and a child option - * value into the final value. - */ -var strats = config.optionMergeStrategies; - -/** - * Options with restrictions - */ -{ - strats.el = strats.propsData = function (parent, child, vm, key) { - if (!vm) { - warn( - "option \"" + key + "\" can only be used during instance " + - 'creation with the `new` keyword.' - ); - } - return defaultStrat(parent, child) - }; -} - -/** - * Helper that recursively merges two data objects together. - */ -function mergeData (to, from) { - if (!from) { return to } - var key, toVal, fromVal; - var keys = Object.keys(from); - for (var i = 0; i < keys.length; i++) { - key = keys[i]; - toVal = to[key]; - fromVal = from[key]; - if (!hasOwn(to, key)) { - set(to, key, fromVal); - } else if (isPlainObject(toVal) && isPlainObject(fromVal)) { - mergeData(toVal, fromVal); - } - } - return to -} - -/** - * Data - */ -function mergeDataOrFn ( - parentVal, - childVal, - vm -) { - if (!vm) { - // in a Vue.extend merge, both should be functions - if (!childVal) { - return parentVal - } - if (!parentVal) { - return childVal - } - // when parentVal & childVal are both present, - // we need to return a function that returns the - // merged result of both functions... no need to - // check if parentVal is a function here because - // it has to be a function to pass previous merges. - return function mergedDataFn () { - return mergeData( - typeof childVal === 'function' ? childVal.call(this, this) : childVal, - typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal - ) - } - } else { - return function mergedInstanceDataFn () { - // instance merge - var instanceData = typeof childVal === 'function' - ? childVal.call(vm, vm) - : childVal; - var defaultData = typeof parentVal === 'function' - ? parentVal.call(vm, vm) - : parentVal; - if (instanceData) { - return mergeData(instanceData, defaultData) - } else { - return defaultData - } - } - } -} - -strats.data = function ( - parentVal, - childVal, - vm -) { - if (!vm) { - if (childVal && typeof childVal !== 'function') { - "development" !== 'production' && warn( - 'The "data" option should be a function ' + - 'that returns a per-instance value in component ' + - 'definitions.', - vm - ); - - return parentVal - } - return mergeDataOrFn(parentVal, childVal) - } - - return mergeDataOrFn(parentVal, childVal, vm) -}; - -/** - * Hooks and props are merged as arrays. - */ -function mergeHook ( - parentVal, - childVal -) { - return childVal - ? parentVal - ? parentVal.concat(childVal) - : Array.isArray(childVal) - ? childVal - : [childVal] - : parentVal -} - -LIFECYCLE_HOOKS.forEach(function (hook) { - strats[hook] = mergeHook; -}); - -/** - * Assets - * - * When a vm is present (instance creation), we need to do - * a three-way merge between constructor options, instance - * options and parent options. - */ -function mergeAssets ( - parentVal, - childVal, - vm, - key -) { - var res = Object.create(parentVal || null); - if (childVal) { - "development" !== 'production' && assertObjectType(key, childVal, vm); - return extend(res, childVal) - } else { - return res - } -} - -ASSET_TYPES.forEach(function (type) { - strats[type + 's'] = mergeAssets; -}); - -/** - * Watchers. - * - * Watchers hashes should not overwrite one - * another, so we merge them as arrays. - */ -strats.watch = function ( - parentVal, - childVal, - vm, - key -) { - // work around Firefox's Object.prototype.watch... - if (parentVal === nativeWatch) { parentVal = undefined; } - if (childVal === nativeWatch) { childVal = undefined; } - /* istanbul ignore if */ - if (!childVal) { return Object.create(parentVal || null) } - { - assertObjectType(key, childVal, vm); - } - if (!parentVal) { return childVal } - var ret = {}; - extend(ret, parentVal); - for (var key$1 in childVal) { - var parent = ret[key$1]; - var child = childVal[key$1]; - if (parent && !Array.isArray(parent)) { - parent = [parent]; - } - ret[key$1] = parent - ? parent.concat(child) - : Array.isArray(child) ? child : [child]; - } - return ret -}; - -/** - * Other object hashes. - */ -strats.props = -strats.methods = -strats.inject = -strats.computed = function ( - parentVal, - childVal, - vm, - key -) { - if (childVal && "development" !== 'production') { - assertObjectType(key, childVal, vm); - } - if (!parentVal) { return childVal } - var ret = Object.create(null); - extend(ret, parentVal); - if (childVal) { extend(ret, childVal); } - return ret -}; -strats.provide = mergeDataOrFn; - -/** - * Default strategy. - */ -var defaultStrat = function (parentVal, childVal) { - return childVal === undefined - ? parentVal - : childVal -}; - -/** - * Validate component names - */ -function checkComponents (options) { - for (var key in options.components) { - validateComponentName(key); - } -} - -function validateComponentName (name) { - if (!/^[a-zA-Z][\w-]*$/.test(name)) { - warn( - 'Invalid component name: "' + name + '". Component names ' + - 'can only contain alphanumeric characters and the hyphen, ' + - 'and must start with a letter.' - ); - } - if (isBuiltInTag(name) || config.isReservedTag(name)) { - warn( - 'Do not use built-in or reserved HTML elements as component ' + - 'id: ' + name - ); - } -} - -/** - * Ensure all props option syntax are normalized into the - * Object-based format. - */ -function normalizeProps (options, vm) { - var props = options.props; - if (!props) { return } - var res = {}; - var i, val, name; - if (Array.isArray(props)) { - i = props.length; - while (i--) { - val = props[i]; - if (typeof val === 'string') { - name = camelize(val); - res[name] = { type: null }; - } else { - warn('props must be strings when using array syntax.'); - } - } - } else if (isPlainObject(props)) { - for (var key in props) { - val = props[key]; - name = camelize(key); - res[name] = isPlainObject(val) - ? val - : { type: val }; - } - } else { - warn( - "Invalid value for option \"props\": expected an Array or an Object, " + - "but got " + (toRawType(props)) + ".", - vm - ); - } - options.props = res; -} - -/** - * Normalize all injections into Object-based format - */ -function normalizeInject (options, vm) { - var inject = options.inject; - if (!inject) { return } - var normalized = options.inject = {}; - if (Array.isArray(inject)) { - for (var i = 0; i < inject.length; i++) { - normalized[inject[i]] = { from: inject[i] }; - } - } else if (isPlainObject(inject)) { - for (var key in inject) { - var val = inject[key]; - normalized[key] = isPlainObject(val) - ? extend({ from: key }, val) - : { from: val }; - } - } else { - warn( - "Invalid value for option \"inject\": expected an Array or an Object, " + - "but got " + (toRawType(inject)) + ".", - vm - ); - } -} - -/** - * Normalize raw function directives into object format. - */ -function normalizeDirectives (options) { - var dirs = options.directives; - if (dirs) { - for (var key in dirs) { - var def = dirs[key]; - if (typeof def === 'function') { - dirs[key] = { bind: def, update: def }; - } - } - } -} - -function assertObjectType (name, value, vm) { - if (!isPlainObject(value)) { - warn( - "Invalid value for option \"" + name + "\": expected an Object, " + - "but got " + (toRawType(value)) + ".", - vm - ); - } -} - -/** - * Merge two option objects into a new one. - * Core utility used in both instantiation and inheritance. - */ -function mergeOptions ( - parent, - child, - vm -) { - { - checkComponents(child); - } - - if (typeof child === 'function') { - child = child.options; - } - - normalizeProps(child, vm); - normalizeInject(child, vm); - normalizeDirectives(child); - var extendsFrom = child.extends; - if (extendsFrom) { - parent = mergeOptions(parent, extendsFrom, vm); - } - if (child.mixins) { - for (var i = 0, l = child.mixins.length; i < l; i++) { - parent = mergeOptions(parent, child.mixins[i], vm); - } - } - var options = {}; - var key; - for (key in parent) { - mergeField(key); - } - for (key in child) { - if (!hasOwn(parent, key)) { - mergeField(key); - } - } - function mergeField (key) { - var strat = strats[key] || defaultStrat; - options[key] = strat(parent[key], child[key], vm, key); - } - return options -} - -/** - * Resolve an asset. - * This function is used because child instances need access - * to assets defined in its ancestor chain. - */ -function resolveAsset ( - options, - type, - id, - warnMissing -) { - /* istanbul ignore if */ - if (typeof id !== 'string') { - return - } - var assets = options[type]; - // check local registration variations first - if (hasOwn(assets, id)) { return assets[id] } - var camelizedId = camelize(id); - if (hasOwn(assets, camelizedId)) { return assets[camelizedId] } - var PascalCaseId = capitalize(camelizedId); - if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] } - // fallback to prototype chain - var res = assets[id] || assets[camelizedId] || assets[PascalCaseId]; - if ("development" !== 'production' && warnMissing && !res) { - warn( - 'Failed to resolve ' + type.slice(0, -1) + ': ' + id, - options - ); - } - return res -} - -/* */ - -function validateProp ( - key, - propOptions, - propsData, - vm -) { - var prop = propOptions[key]; - var absent = !hasOwn(propsData, key); - var value = propsData[key]; - // boolean casting - var booleanIndex = getTypeIndex(Boolean, prop.type); - if (booleanIndex > -1) { - if (absent && !hasOwn(prop, 'default')) { - value = false; - } else if (value === '' || value === hyphenate(key)) { - // only cast empty string / same name to boolean if - // boolean has higher priority - var stringIndex = getTypeIndex(String, prop.type); - if (stringIndex < 0 || booleanIndex < stringIndex) { - value = true; - } - } - } - // check default value - if (value === undefined) { - value = getPropDefaultValue(vm, prop, key); - // since the default value is a fresh copy, - // make sure to observe it. - var prevShouldObserve = shouldObserve; - toggleObserving(true); - observe(value); - toggleObserving(prevShouldObserve); - } - { - assertProp(prop, key, value, vm, absent); - } - return value -} - -/** - * Get the default value of a prop. - */ -function getPropDefaultValue (vm, prop, key) { - // no default, return undefined - if (!hasOwn(prop, 'default')) { - return undefined - } - var def = prop.default; - // warn against non-factory defaults for Object & Array - if ("development" !== 'production' && isObject(def)) { - warn( - 'Invalid default value for prop "' + key + '": ' + - 'Props with type Object/Array must use a factory function ' + - 'to return the default value.', - vm - ); - } - // the raw prop value was also undefined from previous render, - // return previous default value to avoid unnecessary watcher trigger - if (vm && vm.$options.propsData && - vm.$options.propsData[key] === undefined && - vm._props[key] !== undefined - ) { - return vm._props[key] - } - // call factory function for non-Function types - // a value is Function if its prototype is function even across different execution context - return typeof def === 'function' && getType(prop.type) !== 'Function' - ? def.call(vm) - : def -} - -/** - * Assert whether a prop is valid. - */ -function assertProp ( - prop, - name, - value, - vm, - absent -) { - if (prop.required && absent) { - warn( - 'Missing required prop: "' + name + '"', - vm - ); - return - } - if (value == null && !prop.required) { - return - } - var type = prop.type; - var valid = !type || type === true; - var expectedTypes = []; - if (type) { - if (!Array.isArray(type)) { - type = [type]; - } - for (var i = 0; i < type.length && !valid; i++) { - var assertedType = assertType(value, type[i]); - expectedTypes.push(assertedType.expectedType || ''); - valid = assertedType.valid; - } - } - if (!valid) { - warn( - "Invalid prop: type check failed for prop \"" + name + "\"." + - " Expected " + (expectedTypes.map(capitalize).join(', ')) + - ", got " + (toRawType(value)) + ".", - vm - ); - return - } - var validator = prop.validator; - if (validator) { - if (!validator(value)) { - warn( - 'Invalid prop: custom validator check failed for prop "' + name + '".', - vm - ); - } - } -} - -var simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/; - -function assertType (value, type) { - var valid; - var expectedType = getType(type); - if (simpleCheckRE.test(expectedType)) { - var t = typeof value; - valid = t === expectedType.toLowerCase(); - // for primitive wrapper objects - if (!valid && t === 'object') { - valid = value instanceof type; - } - } else if (expectedType === 'Object') { - valid = isPlainObject(value); - } else if (expectedType === 'Array') { - valid = Array.isArray(value); - } else { - valid = value instanceof type; - } - return { - valid: valid, - expectedType: expectedType - } -} - -/** - * Use function string name to check built-in types, - * because a simple equality check will fail when running - * across different vms / iframes. - */ -function getType (fn) { - var match = fn && fn.toString().match(/^\s*function (\w+)/); - return match ? match[1] : '' -} - -function isSameType (a, b) { - return getType(a) === getType(b) -} - -function getTypeIndex (type, expectedTypes) { - if (!Array.isArray(expectedTypes)) { - return isSameType(expectedTypes, type) ? 0 : -1 - } - for (var i = 0, len = expectedTypes.length; i < len; i++) { - if (isSameType(expectedTypes[i], type)) { - return i - } - } - return -1 -} - -/* */ - -function handleError (err, vm, info) { - if (vm) { - var cur = vm; - while ((cur = cur.$parent)) { - var hooks = cur.$options.errorCaptured; - if (hooks) { - for (var i = 0; i < hooks.length; i++) { - try { - var capture = hooks[i].call(cur, err, vm, info) === false; - if (capture) { return } - } catch (e) { - globalHandleError(e, cur, 'errorCaptured hook'); - } - } - } - } - } - globalHandleError(err, vm, info); -} - -function globalHandleError (err, vm, info) { - if (config.errorHandler) { - try { - return config.errorHandler.call(null, err, vm, info) - } catch (e) { - logError(e, null, 'config.errorHandler'); - } - } - logError(err, vm, info); -} - -function logError (err, vm, info) { - { - warn(("Error in " + info + ": \"" + (err.toString()) + "\""), vm); - } - /* istanbul ignore else */ - if ((inBrowser || inWeex) && typeof console !== 'undefined') { - console.error(err); - } else { - throw err - } -} - -/* */ -/* globals MessageChannel */ - -var callbacks = []; -var pending = false; - -function flushCallbacks () { - pending = false; - var copies = callbacks.slice(0); - callbacks.length = 0; - for (var i = 0; i < copies.length; i++) { - copies[i](); - } -} - -// Here we have async deferring wrappers using both microtasks and (macro) tasks. -// In < 2.4 we used microtasks everywhere, but there are some scenarios where -// microtasks have too high a priority and fire in between supposedly -// sequential events (e.g. #4521, #6690) or even between bubbling of the same -// event (#6566). However, using (macro) tasks everywhere also has subtle problems -// when state is changed right before repaint (e.g. #6813, out-in transitions). -// Here we use microtask by default, but expose a way to force (macro) task when -// needed (e.g. in event handlers attached by v-on). -var microTimerFunc; -var macroTimerFunc; -var useMacroTask = false; - -// Determine (macro) task defer implementation. -// Technically setImmediate should be the ideal choice, but it's only available -// in IE. The only polyfill that consistently queues the callback after all DOM -// events triggered in the same loop is by using MessageChannel. -/* istanbul ignore if */ -if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) { - macroTimerFunc = function () { - setImmediate(flushCallbacks); - }; -} else if (typeof MessageChannel !== 'undefined' && ( - isNative(MessageChannel) || - // PhantomJS - MessageChannel.toString() === '[object MessageChannelConstructor]' -)) { - var channel = new MessageChannel(); - var port = channel.port2; - channel.port1.onmessage = flushCallbacks; - macroTimerFunc = function () { - port.postMessage(1); - }; -} else { - /* istanbul ignore next */ - macroTimerFunc = function () { - setTimeout(flushCallbacks, 0); - }; -} - -// Determine microtask defer implementation. -/* istanbul ignore next, $flow-disable-line */ -if (typeof Promise !== 'undefined' && isNative(Promise)) { - var p = Promise.resolve(); - microTimerFunc = function () { - p.then(flushCallbacks); - // in problematic UIWebViews, Promise.then doesn't completely break, but - // it can get stuck in a weird state where callbacks are pushed into the - // microtask queue but the queue isn't being flushed, until the browser - // needs to do some other work, e.g. handle a timer. Therefore we can - // "force" the microtask queue to be flushed by adding an empty timer. - if (isIOS) { setTimeout(noop); } - }; -} else { - // fallback to macro - microTimerFunc = macroTimerFunc; -} - -/** - * Wrap a function so that if any code inside triggers state change, - * the changes are queued using a (macro) task instead of a microtask. - */ -function withMacroTask (fn) { - return fn._withTask || (fn._withTask = function () { - useMacroTask = true; - var res = fn.apply(null, arguments); - useMacroTask = false; - return res - }) -} - -function nextTick (cb, ctx) { - var _resolve; - callbacks.push(function () { - if (cb) { - try { - cb.call(ctx); - } catch (e) { - handleError(e, ctx, 'nextTick'); - } - } else if (_resolve) { - _resolve(ctx); - } - }); - if (!pending) { - pending = true; - if (useMacroTask) { - macroTimerFunc(); - } else { - microTimerFunc(); - } - } - // $flow-disable-line - if (!cb && typeof Promise !== 'undefined') { - return new Promise(function (resolve) { - _resolve = resolve; - }) - } -} - -/* */ - -var mark; -var measure; - -{ - var perf = inBrowser && window.performance; - /* istanbul ignore if */ - if ( - perf && - perf.mark && - perf.measure && - perf.clearMarks && - perf.clearMeasures - ) { - mark = function (tag) { return perf.mark(tag); }; - measure = function (name, startTag, endTag) { - perf.measure(name, startTag, endTag); - perf.clearMarks(startTag); - perf.clearMarks(endTag); - perf.clearMeasures(name); - }; - } -} - -/* not type checking this file because flow doesn't play well with Proxy */ - -var initProxy; - -{ - var allowedGlobals = makeMap( - 'Infinity,undefined,NaN,isFinite,isNaN,' + - 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' + - 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' + - 'require' // for Webpack/Browserify - ); - - var warnNonPresent = function (target, key) { - warn( - "Property or method \"" + key + "\" is not defined on the instance but " + - 'referenced during render. Make sure that this property is reactive, ' + - 'either in the data option, or for class-based components, by ' + - 'initializing the property. ' + - 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.', - target - ); - }; - - var hasProxy = - typeof Proxy !== 'undefined' && isNative(Proxy); - - if (hasProxy) { - var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact'); - config.keyCodes = new Proxy(config.keyCodes, { - set: function set (target, key, value) { - if (isBuiltInModifier(key)) { - warn(("Avoid overwriting built-in modifier in config.keyCodes: ." + key)); - return false - } else { - target[key] = value; - return true - } - } - }); - } - - var hasHandler = { - has: function has (target, key) { - var has = key in target; - var isAllowed = allowedGlobals(key) || key.charAt(0) === '_'; - if (!has && !isAllowed) { - warnNonPresent(target, key); - } - return has || !isAllowed - } - }; - - var getHandler = { - get: function get (target, key) { - if (typeof key === 'string' && !(key in target)) { - warnNonPresent(target, key); - } - return target[key] - } - }; - - initProxy = function initProxy (vm) { - if (hasProxy) { - // determine which proxy handler to use - var options = vm.$options; - var handlers = options.render && options.render._withStripped - ? getHandler - : hasHandler; - vm._renderProxy = new Proxy(vm, handlers); - } else { - vm._renderProxy = vm; - } - }; -} - -/* */ - -var seenObjects = new _Set(); - -/** - * Recursively traverse an object to evoke all converted - * getters, so that every nested property inside the object - * is collected as a "deep" dependency. - */ -function traverse (val) { - _traverse(val, seenObjects); - seenObjects.clear(); -} - -function _traverse (val, seen) { - var i, keys; - var isA = Array.isArray(val); - if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) { - return - } - if (val.__ob__) { - var depId = val.__ob__.dep.id; - if (seen.has(depId)) { - return - } - seen.add(depId); - } - if (isA) { - i = val.length; - while (i--) { _traverse(val[i], seen); } - } else { - keys = Object.keys(val); - i = keys.length; - while (i--) { _traverse(val[keys[i]], seen); } - } -} - -/* */ - -var normalizeEvent = cached(function (name) { - var passive = name.charAt(0) === '&'; - name = passive ? name.slice(1) : name; - var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first - name = once$$1 ? name.slice(1) : name; - var capture = name.charAt(0) === '!'; - name = capture ? name.slice(1) : name; - return { - name: name, - once: once$$1, - capture: capture, - passive: passive - } -}); - -function createFnInvoker (fns) { - function invoker () { - var arguments$1 = arguments; - - var fns = invoker.fns; - if (Array.isArray(fns)) { - var cloned = fns.slice(); - for (var i = 0; i < cloned.length; i++) { - cloned[i].apply(null, arguments$1); - } - } else { - // return handler return value for single handlers - return fns.apply(null, arguments) - } - } - invoker.fns = fns; - return invoker -} - -function updateListeners ( - on, - oldOn, - add, - remove$$1, - vm -) { - var name, def, cur, old, event; - for (name in on) { - def = cur = on[name]; - old = oldOn[name]; - event = normalizeEvent(name); - /* istanbul ignore if */ - if (isUndef(cur)) { - "development" !== 'production' && warn( - "Invalid handler for event \"" + (event.name) + "\": got " + String(cur), - vm - ); - } else if (isUndef(old)) { - if (isUndef(cur.fns)) { - cur = on[name] = createFnInvoker(cur); - } - add(event.name, cur, event.once, event.capture, event.passive, event.params); - } else if (cur !== old) { - old.fns = cur; - on[name] = old; - } - } - for (name in oldOn) { - if (isUndef(on[name])) { - event = normalizeEvent(name); - remove$$1(event.name, oldOn[name], event.capture); - } - } -} - -/* */ - -function mergeVNodeHook (def, hookKey, hook) { - if (def instanceof VNode) { - def = def.data.hook || (def.data.hook = {}); - } - var invoker; - var oldHook = def[hookKey]; - - function wrappedHook () { - hook.apply(this, arguments); - // important: remove merged hook to ensure it's called only once - // and prevent memory leak - remove(invoker.fns, wrappedHook); - } - - if (isUndef(oldHook)) { - // no existing hook - invoker = createFnInvoker([wrappedHook]); - } else { - /* istanbul ignore if */ - if (isDef(oldHook.fns) && isTrue(oldHook.merged)) { - // already a merged invoker - invoker = oldHook; - invoker.fns.push(wrappedHook); - } else { - // existing plain hook - invoker = createFnInvoker([oldHook, wrappedHook]); - } - } - - invoker.merged = true; - def[hookKey] = invoker; -} - -/* */ - -function extractPropsFromVNodeData ( - data, - Ctor, - tag -) { - // we are only extracting raw values here. - // validation and default values are handled in the child - // component itself. - var propOptions = Ctor.options.props; - if (isUndef(propOptions)) { - return - } - var res = {}; - var attrs = data.attrs; - var props = data.props; - if (isDef(attrs) || isDef(props)) { - for (var key in propOptions) { - var altKey = hyphenate(key); - { - var keyInLowerCase = key.toLowerCase(); - if ( - key !== keyInLowerCase && - attrs && hasOwn(attrs, keyInLowerCase) - ) { - tip( - "Prop \"" + keyInLowerCase + "\" is passed to component " + - (formatComponentName(tag || Ctor)) + ", but the declared prop name is" + - " \"" + key + "\". " + - "Note that HTML attributes are case-insensitive and camelCased " + - "props need to use their kebab-case equivalents when using in-DOM " + - "templates. You should probably use \"" + altKey + "\" instead of \"" + key + "\"." - ); - } - } - checkProp(res, props, key, altKey, true) || - checkProp(res, attrs, key, altKey, false); - } - } - return res -} - -function checkProp ( - res, - hash, - key, - altKey, - preserve -) { - if (isDef(hash)) { - if (hasOwn(hash, key)) { - res[key] = hash[key]; - if (!preserve) { - delete hash[key]; - } - return true - } else if (hasOwn(hash, altKey)) { - res[key] = hash[altKey]; - if (!preserve) { - delete hash[altKey]; - } - return true - } - } - return false -} - -/* */ - -// The template compiler attempts to minimize the need for normalization by -// statically analyzing the template at compile time. -// -// For plain HTML markup, normalization can be completely skipped because the -// generated render function is guaranteed to return Array. There are -// two cases where extra normalization is needed: - -// 1. When the children contains components - because a functional component -// may return an Array instead of a single root. In this case, just a simple -// normalization is needed - if any child is an Array, we flatten the whole -// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep -// because functional components already normalize their own children. -function simpleNormalizeChildren (children) { - for (var i = 0; i < children.length; i++) { - if (Array.isArray(children[i])) { - return Array.prototype.concat.apply([], children) - } - } - return children -} - -// 2. When the children contains constructs that always generated nested Arrays, -// e.g. + + + + diff --git a/website/docs/.vuepress/config.js b/website/docs/.vuepress/config.js new file mode 100644 index 00000000..96243a04 --- /dev/null +++ b/website/docs/.vuepress/config.js @@ -0,0 +1,173 @@ +const description = 'A draggable and resizable grid layout, as a Vue component.' +const title = 'Vue Grid Layout - ️A grid layout system for Vue.js' + +module.exports = { + base: "/vue-grid-layout/", + locales: { + '/': { + lang: 'en-US', + title: 'Vue Grid Layout - ️A grid layout system for Vue.js', + description: 'A draggable and resizable grid layout, as a Vue component.' + }, + '/zh/': { + lang: 'zh-CN', + title: 'Vue Grid Layout -️ 适用Vue.js的栅格布局系统', + description: '可拖动和可调整大小栅格布局的Vue组件。' + } + }, + head: [ + ['link', { rel: 'icon', href: `/favicon.ico` }], + ['link', { rel: "apple-touch-icon", sizes: "180x180", href: "https://jbaysolutions.github.io/vue-grid-layout/assets/favicon/apple-touch-icon.png"}], + // ['script', { src: 'https://cdn.jsdelivr.net/npm/vue-grid-layout@2.3.9/dist/vue-grid-layout.umd.min.js' }] + [ + 'script', + { + async: true, + src: 'https://www.googletagmanager.com/gtag/js?id=G-9JZJJHRV8R', + }, + ], + [ + 'script', + {}, + [ + "window.dataLayer = window.dataLayer || [];\nfunction gtag(){dataLayer.push(arguments);}\ngtag('js', new Date());\ngtag('config', 'G-9JZJJHRV8R');", + ], + ], + ], + port: 8081, + theme: '@vuepress/vue', + themeConfig: { + smoothScroll: true, + logo: '/assets/img/logo.png', + repo: 'jbaysolutions/vue-grid-layout', + docsDir: 'website/docs', + editLinks: true, + algolia: { + apiKey: '2f143d1edd24605564065dd02bf0a22b', + indexName: 'vue_grid_layout' + }, + locales: { + '/': { + selectText: 'Languages', + label: 'English', + ariaLabel: 'Select language', + sidebar: { + '/guide/': [ + { + title: "Guide", + collapsable: false, + children: [ + '', + 'usage', + 'properties', + 'events', + 'styling', + ] + }, + { + title: "Examples", + collapsable: false, + children: [ + '01-basic', + '02-events', + '03-multiple-grids', + '04-allow-ignore', + '05-mirrored', + '06-responsive', + '07-prevent-collision', + '08-responsive-predefined-layouts', + '09-dynamic-add-remove', + '10-drag-from-outside', + '11-bounded', + ] + } + ] + }, + nav: [ + {text: 'Home', link: '/'}, + {text: 'Guide', link: '/guide/'}, + {text: 'Changelog', link: '/changelog/'} + ], + searchPlaceholder: 'Search...', + editLinkText: 'Help improve this page!', + lastUpdated: 'Last Updated' + }, + '/zh/': { + selectText: '选择语言', + label: '简体中文', + ariaLabel: '选择语言', + sidebar: { + '/zh/guide/': [ + { + title: "首页", + collapsable: false, + children: [ + '', + 'usage', + 'properties', + 'events', + 'styling', + ] + }, + { + title: "例子", + collapsable: false, + children: [ + '01-basic', + '02-events', + '03-multiple-grids', + '04-allow-ignore', + '05-mirrored', + '06-responsive', + '07-prevent-collision', + '08-responsive-predefined-layouts', + '09-dynamic-add-remove', + '10-drag-from-outside', + '11-bounded', + ] + } + ] + }, + nav: [ + {text: '首页', link: '/zh/'}, + {text: '指南', link: '/zh/guide/'}, + {text: '更新日志', link: '/zh/changelog/'} + ], + searchPlaceholder: '搜索...', + editLinkText: '帮助改善此页面!', + lastUpdated: '最后更新时间' + } + } + }, + plugins: [ + '@vuepress/back-to-top', + /*['@vuepress/google-analytics', { + ga: 'UA-37288388-24' // UA-00000000-0 + }],*/ + ['seo', { + title: $page => `${$page.title} — Vue Grid Layout`, + // image: () => 'https://jbaysolutions.github.io/vue-grid-layout/assets/img/og.jpg', + siteTitle: (_, $site) => $site.title, + description: $page => $page.frontmatter.description || description, + author: (_, $site) => $site.themeConfig.author, + tags: $page => $page.frontmatter.tags, + twitterCard: _ => 'summary_large_image', + type: () => 'article', + url: (_, $site, path) => ($site.themeConfig.domain || '') + path, + publishedAt: $page => $page.frontmatter.date && new Date($page.frontmatter.date), + modifiedAt: $page => $page.lastUpdated && new Date($page.lastUpdated), + }], + ['vuepress-plugin-serve', { + port: 8080, + staticOptions: { + dotfiles: 'allow', + }, + /*beforeServer(app, server) { + app.get('/path/to/my/custom', function(req, res) { + res.json({ custom: 'response' }) + }) + },*/ + }], + ], + dest: 'public', +} diff --git a/website/docs/.vuepress/enhanceApp.js b/website/docs/.vuepress/enhanceApp.js new file mode 100644 index 00000000..5d373fd5 --- /dev/null +++ b/website/docs/.vuepress/enhanceApp.js @@ -0,0 +1,31 @@ +/** + * App level enhancements. Read more here: + * https://vuepress.vuejs.org/guide/basic-config.html#app-level-enhancements + */ +// import pageComponents from '@internal/page-components' +import Autocomplete from './Autocomplete' +// import ArticleCard from './components/ArticleCard' +// import GithubButton from 'vue-github-button' +// import VTooltip from 'v-tooltip' + +// import '../../node_modules/@braid/vue-formulate/themes/snow/snow.scss' + +export default ({ Vue }) => { + /*Vue.prototype.$gridlayout = { + async load () { + await import('vue-grid-layout'); + console.log("LOADED!") + }, + };*/ + /*Vue.use(VueFormulate, { + plugins: [ Autocomplete ] + })*/ + + // Vue.use(VTooltip) + + // for (const [name, component] of Object.entries(pageComponents)) { + // Vue.component(name, component) + // } + // Vue.component('github-button', GithubButton) + // Vue.component('ArticleCard', ArticleCard) +} diff --git a/website/docs/.vuepress/public/assets/favicon/apple-touch-icon.png b/website/docs/.vuepress/public/assets/favicon/apple-touch-icon.png new file mode 100644 index 00000000..95100f18 Binary files /dev/null and b/website/docs/.vuepress/public/assets/favicon/apple-touch-icon.png differ diff --git a/website/docs/.vuepress/public/assets/img/docsfold-logo-sm.png b/website/docs/.vuepress/public/assets/img/docsfold-logo-sm.png new file mode 100644 index 00000000..de1e938c Binary files /dev/null and b/website/docs/.vuepress/public/assets/img/docsfold-logo-sm.png differ diff --git a/website/docs/.vuepress/public/assets/img/logo-jbay.png b/website/docs/.vuepress/public/assets/img/logo-jbay.png new file mode 100644 index 00000000..a78f9140 Binary files /dev/null and b/website/docs/.vuepress/public/assets/img/logo-jbay.png differ diff --git a/website/docs/.vuepress/public/assets/img/logo.png b/website/docs/.vuepress/public/assets/img/logo.png new file mode 100644 index 00000000..159fda76 Binary files /dev/null and b/website/docs/.vuepress/public/assets/img/logo.png differ diff --git a/examples/01-basic.html b/website/docs/.vuepress/public/examples/01-basic.html similarity index 94% rename from examples/01-basic.html rename to website/docs/.vuepress/public/examples/01-basic.html index 718a0de4..0aa58aa7 100644 --- a/examples/01-basic.html +++ b/website/docs/.vuepress/public/examples/01-basic.html @@ -42,13 +42,14 @@

Vue Grid Layout Example 1 - Basic

:use-css-transforms="true" > - {{item.i}} + {{itemTitle(item)}} @@ -58,4 +59,4 @@

Vue Grid Layout Example 1 - Basic

- \ No newline at end of file + diff --git a/examples/01-basic.js b/website/docs/.vuepress/public/examples/01-basic.js similarity index 57% rename from examples/01-basic.js rename to website/docs/.vuepress/public/examples/01-basic.js index 8ba1dbf3..6d938f7c 100644 --- a/examples/01-basic.js +++ b/website/docs/.vuepress/public/examples/01-basic.js @@ -1,24 +1,24 @@ var testLayout = [ - {"x":0,"y":0,"w":2,"h":2,"i":"0"}, - {"x":2,"y":0,"w":2,"h":4,"i":"1"}, - {"x":4,"y":0,"w":2,"h":5,"i":"2"}, - {"x":6,"y":0,"w":2,"h":3,"i":"3"}, - {"x":8,"y":0,"w":2,"h":3,"i":"4"}, - {"x":10,"y":0,"w":2,"h":3,"i":"5"}, - {"x":0,"y":5,"w":2,"h":5,"i":"6"}, - {"x":2,"y":5,"w":2,"h":5,"i":"7"}, - {"x":4,"y":5,"w":2,"h":5,"i":"8"}, - {"x":6,"y":4,"w":2,"h":4,"i":"9"}, - {"x":8,"y":4,"w":2,"h":4,"i":"10"}, - {"x":10,"y":4,"w":2,"h":4,"i":"11"}, - {"x":0,"y":10,"w":2,"h":5,"i":"12"}, - {"x":2,"y":10,"w":2,"h":5,"i":"13"}, - {"x":4,"y":8,"w":2,"h":4,"i":"14"}, - {"x":6,"y":8,"w":2,"h":4,"i":"15"}, - {"x":8,"y":10,"w":2,"h":5,"i":"16"}, - {"x":10,"y":4,"w":2,"h":2,"i":"17"}, - {"x":0,"y":9,"w":2,"h":3,"i":"18"}, - {"x":2,"y":6,"w":2,"h":2,"i":"19"} + {"x":0,"y":0,"w":2,"h":2,"i":"0", static: false}, + {"x":2,"y":0,"w":2,"h":4,"i":"1", static: true}, + {"x":4,"y":0,"w":2,"h":5,"i":"2", static: false}, + {"x":6,"y":0,"w":2,"h":3,"i":"3", static: false}, + {"x":8,"y":0,"w":2,"h":3,"i":"4", static: false}, + {"x":10,"y":0,"w":2,"h":3,"i":"5", static: false}, + {"x":0,"y":5,"w":2,"h":5,"i":"6", static: false}, + {"x":2,"y":5,"w":2,"h":5,"i":"7", static: false}, + {"x":4,"y":5,"w":2,"h":5,"i":"8", static: false}, + {"x":6,"y":3,"w":2,"h":4,"i":"9", static: true}, + {"x":8,"y":4,"w":2,"h":4,"i":"10", static: false}, + {"x":10,"y":4,"w":2,"h":4,"i":"11", static: false}, + {"x":0,"y":10,"w":2,"h":5,"i":"12", static: false}, + {"x":2,"y":10,"w":2,"h":5,"i":"13", static: false}, + {"x":4,"y":8,"w":2,"h":4,"i":"14", static: false}, + {"x":6,"y":8,"w":2,"h":4,"i":"15", static: false}, + {"x":8,"y":10,"w":2,"h":5,"i":"16", static: false}, + {"x":10,"y":4,"w":2,"h":2,"i":"17", static: false}, + {"x":0,"y":9,"w":2,"h":3,"i":"18", static: false}, + {"x":2,"y":6,"w":2,"h":2,"i":"19", static: false} ]; // var GridLayout = VueGridLayout.GridLayout; @@ -36,11 +36,21 @@ new Vue({ resizable: true, index: 0 }, + /* mounted: function () { this.index = this.layout.length; }, + */ methods: { + itemTitle(item) { + var result = item.i; + if (item.static) { + result += " - Static"; + } + return result; + } +/* increaseWidth: function(item) { var width = document.getElementById("content").offsetWidth; width += 20; @@ -63,8 +73,8 @@ new Vue({ this.index++; this.layout.push(item); } - } */ + } }); /* diff --git a/examples/02-events.html b/website/docs/.vuepress/public/examples/02-events.html similarity index 87% rename from examples/02-events.html rename to website/docs/.vuepress/public/examples/02-events.html index e084a343..95116cdb 100644 --- a/examples/02-events.html +++ b/website/docs/.vuepress/public/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 @resize="resizeEvent" @move="moveEvent" @resized="resizedEvent" + @container-resized="containerResizedEvent" @moved="movedEvent" > {{item.i}} @@ -68,4 +74,4 @@

Vue Grid Layout Example 2 - Move and resize events

- \ No newline at end of file + diff --git a/examples/02-events.js b/website/docs/.vuepress/public/examples/02-events.js similarity index 69% rename from examples/02-events.js rename to website/docs/.vuepress/public/examples/02-events.js index 38637327..15f50522 100644 --- a/examples/02-events.js +++ b/website/docs/.vuepress/public/examples/02-events.js @@ -58,6 +58,11 @@ new Vue({ console.log(msg); }, + containerResizedEvent: function(i, newH, newW, newHPx, newWPx){ + var msg = "CONTAINER RESIZED i=" + i + ", H=" + newH + ", W=" + newW + ", H(px)=" + newHPx + ", W(px)=" + newWPx; + this.eventLog.push(msg); + console.log(msg); + }, /** * * @param i the item id/index @@ -72,6 +77,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/examples/03-multiple-grids.html b/website/docs/.vuepress/public/examples/03-multiple-grids.html similarity index 100% rename from examples/03-multiple-grids.html rename to website/docs/.vuepress/public/examples/03-multiple-grids.html diff --git a/examples/04-allow-ignore.html b/website/docs/.vuepress/public/examples/04-allow-ignore.html similarity index 100% rename from examples/04-allow-ignore.html rename to website/docs/.vuepress/public/examples/04-allow-ignore.html diff --git a/examples/05-mirrored.html b/website/docs/.vuepress/public/examples/05-mirrored.html similarity index 98% rename from examples/05-mirrored.html rename to website/docs/.vuepress/public/examples/05-mirrored.html index 3e66e470..ea5eee08 100644 --- a/examples/05-mirrored.html +++ b/website/docs/.vuepress/public/examples/05-mirrored.html @@ -45,7 +45,6 @@

Vue Grid Layout Example 5 - Mirrored grid layout

:is-mirrored="mirrored" :vertical-compact="true" :use-css-transforms="true" - :right-to-left="true" > Vue Grid Layout Example 5 - Mirrored grid layout }); - \ No newline at end of file + diff --git a/examples/06-responsive.html b/website/docs/.vuepress/public/examples/06-responsive.html similarity index 84% rename from examples/06-responsive.html rename to website/docs/.vuepress/public/examples/06-responsive.html index 5813baf2..6bf12792 100644 --- a/examples/06-responsive.html +++ b/website/docs/.vuepress/public/examples/06-responsive.html @@ -8,12 +8,6 @@ -

Vue Grid Layout Example 6 - Responsive

- -
View project on Github -
- Previous example: Mirrored grid layout -
@@ -34,7 +28,8 @@

Vue Grid Layout Example 6 - Responsive

Resizable Responsive
- Vue Grid Layout Example 6 - Responsive
- - + + - \ No newline at end of file + diff --git a/examples/06-responsive.js b/website/docs/.vuepress/public/examples/06-responsive.js similarity index 94% rename from examples/06-responsive.js rename to website/docs/.vuepress/public/examples/06-responsive.js index d5e6dc80..5f1cc02b 100644 --- a/examples/06-responsive.js +++ b/website/docs/.vuepress/public/examples/06-responsive.js @@ -35,13 +35,16 @@ new Vue({ draggable: true, resizable: true, responsive: true, - index: 0 + index: 0, + show: false, }, -/* mounted: function () { this.index = this.layout.length; + this.$nextTick(function () { + this.show = true; + }) }, - methods: { +/* methods: { increaseWidth: function(item) { var width = document.getElementById("content").offsetWidth; width += 20; diff --git a/website/docs/.vuepress/public/examples/07-prevent-collision.html b/website/docs/.vuepress/public/examples/07-prevent-collision.html new file mode 100644 index 00000000..e0eb0e94 --- /dev/null +++ b/website/docs/.vuepress/public/examples/07-prevent-collision.html @@ -0,0 +1,57 @@ + + + + + + Vue Grid Layout Example 7 - Prevent Collision + + + + + + +
+ +
+
+ Displayed as [x, y, w, h]: +
+
+ {{item.i}}: [{{item.x}}, {{item.y}}, {{item.w}}, {{item.h}}] +
+
+
+
+
+ +
+ + + {{item.i}} + + +
+ +
+ + + + + + diff --git a/website/docs/.vuepress/public/examples/07-prevent-collision.js b/website/docs/.vuepress/public/examples/07-prevent-collision.js new file mode 100644 index 00000000..40e398bf --- /dev/null +++ b/website/docs/.vuepress/public/examples/07-prevent-collision.js @@ -0,0 +1,56 @@ +var testLayout = [ + {"x":0,"y":0,"w":2,"h":5,"i":"0", static: false}, + {"x":2,"y":0,"w":2,"h":2,"i":"1", static: false}, + {"x":4,"y":0,"w":2,"h":5,"i":"2", static: false}, + {"x":6,"y":0,"w":2,"h":3,"i":"3", static: false}, + {"x":8,"y":0,"w":2,"h":3,"i":"4", static: false}, + {"x":10,"y":0,"w":2,"h":3,"i":"5", static: false}, + {"x":0,"y":5,"w":2,"h":5,"i":"6", static: false}, + {"x":2,"y":5,"w":2,"h":5,"i":"7", static: false}, + {"x":4,"y":5,"w":2,"h":5,"i":"8", static: false}, + {"x":6,"y":3,"w":2,"h":4,"i":"9", static: false}, + {"x":8,"y":4,"w":2,"h":4,"i":"10", static: false}, + {"x":10,"y":4,"w":2,"h":4,"i":"11", static: false}, + {"x":0,"y":10,"w":2,"h":5,"i":"12", static: false}, + {"x":2,"y":10,"w":2,"h":5,"i":"13", static: false}, + {"x":4,"y":8,"w":2,"h":4,"i":"14", static: false}, + {"x":6,"y":8,"w":2,"h":4,"i":"15", static: false}, + {"x":8,"y":10,"w":2,"h":5,"i":"16", static: false}, + {"x":10,"y":4,"w":2,"h":2,"i":"17", static: false}, + {"x":0,"y":9,"w":2,"h":3,"i":"18", static: false}, + {"x":2,"y":6,"w":2,"h":2,"i":"19", static: false} +]; + +// var GridLayout = VueGridLayout.GridLayout; +// var GridItem = VueGridLayout.GridItem; + +new Vue({ + el: '#app', + // components: { + // "GridLayout": GridLayout, + // "GridItem": GridItem + // }, + data: { + layout: testLayout, + draggable: true, + resizable: true, + index: 0 + }, + +/* + mounted: function () { + this.index = this.layout.length; + }, + */ + methods: { + itemTitle(item) { + var result = item.i; + if (item.static) { + result += " - Static"; + } + return result; + } + } +}); + + diff --git a/website/docs/.vuepress/public/examples/08-responsive-predefined-layouts.html b/website/docs/.vuepress/public/examples/08-responsive-predefined-layouts.html new file mode 100644 index 00000000..b9cda1e5 --- /dev/null +++ b/website/docs/.vuepress/public/examples/08-responsive-predefined-layouts.html @@ -0,0 +1,70 @@ + + + + + + Vue Grid Layout Example 8 - Responsive with predefined layouts + + + + + + +

Vue Grid Layout Example 8 - Responsive with predefined layouts

+ + View project on Github +
+ Previous example: Prevent collision +
+ Next example: Dynamic Add/Remove + +
+ +
+
+ Displayed as [x, y, w, h]: +
+
+ {{item.i}}: [{{item.x}}, {{item.y}}, {{item.w}}, {{item.h}}] +
+
+
+
+
+ + Draggable + Resizable + Responsive +
+ + + {{item.i}} + + +
+ +
+ + + + + + diff --git a/website/docs/.vuepress/public/examples/08-responsive-predefined-layouts.js b/website/docs/.vuepress/public/examples/08-responsive-predefined-layouts.js new file mode 100644 index 00000000..7f6d4070 --- /dev/null +++ b/website/docs/.vuepress/public/examples/08-responsive-predefined-layouts.js @@ -0,0 +1,76 @@ +var testLayouts = { + md: [ + {"x":0, "y":0, "w":2, "h":2, "i":"0"}, + {"x":2, "y":0, "w":2, "h":4, "i":"1"}, + {"x":4, "y":0, "w":2, "h":5, "i":"2"}, + {"x":6, "y":0, "w":2, "h":3, "i":"3"}, + {"x":2, "y":4, "w":2, "h":3, "i":"4"}, + {"x":4, "y":5, "w":2, "h":3, "i":"5"}, + {"x":0, "y":2, "w":2, "h":5, "i":"6"}, + {"x":2, "y":7, "w":2, "h":5, "i":"7"}, + {"x":4, "y":8, "w":2, "h":5, "i":"8"}, + {"x":6, "y":3, "w":2, "h":4, "i":"9"}, + {"x":0, "y":7, "w":2, "h":4, "i":"10"}, + {"x":2, "y":19, "w":2, "h":4, "i":"11"}, + {"x":0, "y":14, "w":2, "h":5, "i":"12"}, + {"x":2, "y":14, "w":2, "h":5, "i":"13"}, + {"x":4, "y":13, "w":2, "h":4, "i":"14"}, + {"x":6, "y":7, "w":2, "h":4, "i":"15"}, + {"x":0, "y":19, "w":2, "h":5, "i":"16"}, + {"x":8, "y":0, "w":2, "h":2, "i":"17"}, + {"x":0, "y":11, "w":2, "h":3, "i":"18"}, + {"x":2, "y":12, "w":2, "h":2, "i":"19"} + ], + lg: [ + {"x":0,"y":0,"w":2,"h":2,"i":"0"}, + {"x":2,"y":0,"w":2,"h":4,"i":"1"}, + {"x":4,"y":0,"w":2,"h":5,"i":"2"}, + {"x":6,"y":0,"w":2,"h":3,"i":"3"}, + {"x":8,"y":0,"w":2,"h":3,"i":"4"}, + {"x":10,"y":0,"w":2,"h":3,"i":"5"}, + {"x":0,"y":5,"w":2,"h":5,"i":"6"}, + {"x":2,"y":5,"w":2,"h":5,"i":"7"}, + {"x":4,"y":5,"w":2,"h":5,"i":"8"}, + {"x":6,"y":4,"w":2,"h":4,"i":"9"}, + {"x":8,"y":4,"w":2,"h":4,"i":"10"}, + {"x":10,"y":4,"w":2,"h":4,"i":"11"}, + {"x":0,"y":10,"w":2,"h":5,"i":"12"}, + {"x":2,"y":10,"w":2,"h":5,"i":"13"}, + {"x":4,"y":8,"w":2,"h":4,"i":"14"}, + {"x":6,"y":8,"w":2,"h":4,"i":"15"}, + {"x":8,"y":10,"w":2,"h":5,"i":"16"}, + {"x":10,"y":4,"w":2,"h":2,"i":"17"}, + {"x":0,"y":9,"w":2,"h":3,"i":"18"}, + {"x":2,"y":6,"w":2,"h":2,"i":"19"} + ], +}; + +// var GridLayout = VueGridLayout.GridLayout; +// var GridItem = VueGridLayout.GridItem; + +new Vue({ + el: '#app', + // components: { + // "GridLayout": GridLayout, + // "GridItem": GridItem + // }, + data: { + layouts: testLayouts, + layout: testLayouts["lg"], + draggable: true, + resizable: true, + responsive: true, + index: 0 + }, + mounted: function () { + // this.index = this.layout.length; + }, + methods: { + breakpointChangedEvent: function(newBreakpoint, newLayout){ + console.log("BREAKPOINT CHANGED breakpoint=", newBreakpoint, ", layout: ", newLayout ); + } + } +}); + + + diff --git a/website/docs/.vuepress/public/examples/09-dynamic-add-remove.html b/website/docs/.vuepress/public/examples/09-dynamic-add-remove.html new file mode 100644 index 00000000..6d390aff --- /dev/null +++ b/website/docs/.vuepress/public/examples/09-dynamic-add-remove.html @@ -0,0 +1,72 @@ + + + + + + Vue Grid Layout Example 9 - Dynamic Add/Remove + + + + + + + + + +
+ +
+
+ Displayed as [x, y, w, h]: +
+
+ {{item.i}}: [{{item.x}}, {{item.y}}, {{item.w}}, + {{item.h}}] +
+
+
+
+
+ + Draggable + Resizable +
+ + + {{item.i}} + x + + +
+
+ + + + + + diff --git a/website/docs/.vuepress/public/examples/09-dynamic-add-remove.js b/website/docs/.vuepress/public/examples/09-dynamic-add-remove.js new file mode 100644 index 00000000..3001a9be --- /dev/null +++ b/website/docs/.vuepress/public/examples/09-dynamic-add-remove.js @@ -0,0 +1,47 @@ +var testLayout = [ + { x: 0, y: 0, w: 2, h: 2, i: "0" }, + { x: 2, y: 0, w: 2, h: 2, i: "1" }, + { x: 4, y: 0, w: 2, h: 2, i: "2" }, + { x: 6, y: 0, w: 2, h: 2, i: "3" }, + { x: 8, y: 0, w: 2, h: 2, i: "4" }, +]; + +// var GridLayout = VueGridLayout.GridLayout; +// var GridItem = VueGridLayout.GridItem; + +new Vue({ + el: "#app", + // components: { + // "GridLayout": GridLayout, + // "GridItem": GridItem + // }, + data: { + layout: testLayout, + draggable: true, + resizable: true, + responsive: true, + colNum: 12, + index: 0, + }, + mounted: function () { + this.index = this.layout.length; + }, + methods: { + addItem: function () { + // Add a new item. It must have a unique key! + this.layout.push({ + x: (this.layout.length * 2) % (this.colNum || 12), + y: this.layout.length + (this.colNum || 12), // puts it at the bottom + w: 2, + h: 2, + i: this.index, + }); + // Increment the counter to ensure key is always unique. + this.index++; + }, + removeItem: function (val) { + const index = this.layout.map(item => item.i).indexOf(val); + this.layout.splice(index, 1); + }, + }, +}); diff --git a/website/docs/.vuepress/public/examples/10-drag-from-outside.html b/website/docs/.vuepress/public/examples/10-drag-from-outside.html new file mode 100644 index 00000000..5ccedf00 --- /dev/null +++ b/website/docs/.vuepress/public/examples/10-drag-from-outside.html @@ -0,0 +1,78 @@ + + + + + Vue Grid Layout Example 10 - Drag From Outside + + + + + + + +

Vue Grid Layout Example 09 - Drag From Outside

+ + View project on Github +
+ Previous example: Dynamic Add/Remove +
+ Next example: Bounded + +
+ This demo shows what happens when an item is added from outside of the grid. +
+
+ Once you drop the item within the grid you'll get its coordinates/properties and can perform actions with it accordingly. +
+
+ +
+ +
+
+ Displayed as [x, y, w, h]: +
+
+ {{item.i}}: [{{item.x}}, {{item.y}}, {{item.w}}, {{item.h}}] +
+
+
+
+
+
Droppable Element (Drag me!)
+
+ + + {{item.i}} + + +
+
+ + + + + diff --git a/website/docs/.vuepress/public/examples/10-drag-from-outside.js b/website/docs/.vuepress/public/examples/10-drag-from-outside.js new file mode 100644 index 00000000..386eec3e --- /dev/null +++ b/website/docs/.vuepress/public/examples/10-drag-from-outside.js @@ -0,0 +1,92 @@ +var testLayout = [ + {"x":0,"y":0,"w":2,"h":2,"i":"0"}, + {"x":2,"y":0,"w":2,"h":4,"i":"1"}, + {"x":4,"y":0,"w":2,"h":5,"i":"2"}, + {"x":6,"y":0,"w":2,"h":3,"i":"3"}, + {"x":8,"y":0,"w":2,"h":3,"i":"4"}, + {"x":10,"y":0,"w":2,"h":3,"i":"5"}, + {"x":0,"y":5,"w":2,"h":5,"i":"6"}, + {"x":2,"y":5,"w":2,"h":5,"i":"7"}, + {"x":4,"y":5,"w":2,"h":5,"i":"8"}, + {"x":5,"y":10,"w":4,"h":3,"i":"9"}, +]; +var mouseXY={"x":null,"y":null}; +var DragPos = {"x":null,"y":null,"w":1,"h":1,"i":null}; + +document.addEventListener("dragover", function(e) { + mouseXY.x=e.clientX; + mouseXY.y=e.clientY; +}, false); + +new Vue({ + el: '#app', + data: { + layout: testLayout, + }, + methods: { + drag:function(e){ + let parentRect = document.getElementById('content').getBoundingClientRect(); + let mouseInGrid=false; + if (((mouseXY.x>parentRect.left) && (mouseXY.xparentRect.top) && (mouseXY.y item.i === 'drop')) == -1){ + this.layout.push({ + x: (this.layout.length * 2) % (this.colNum || 12), + y: this.layout.length + (this.colNum || 12), // puts it at the bottom + w: 1, + h: 1, + i: 'drop', + }); + } + let index=this.layout.findIndex(item => item.i === 'drop'); + if (index!=-1){ + try { + this.$refs.gridLayout.$children[this.layout.length].$refs.item.style.display="none"; + } catch { + } + let el=this.$refs.gridLayout.$children[index]; + el.dragging={"top":mouseXY.y-parentRect.top,"left":mouseXY.x-parentRect.left}; + let new_pos=el.calcXY(mouseXY.y-parentRect.top, mouseXY.x-parentRect.left); + + if (mouseInGrid==true){ + this.$refs.gridLayout.dragEvent('dragstart', 'drop', new_pos.x,new_pos.y,1,1); + DragPos.i=String(index); DragPos.x=this.layout[index].x; DragPos.y=this.layout[index].y; + } + if (mouseInGrid==false){ + this.$refs.gridLayout.dragEvent('dragend', 'drop', new_pos.x,new_pos.y,1,1); + this.layout = this.layout.filter(obj => obj.i !=='drop'); + } + } + }, + dragend:function(e){ + let parentRect = document.getElementById('content').getBoundingClientRect(); + let mouseInGrid=false; + if (((mouseXY.x>parentRect.left) && (mouseXY.xparentRect.top) && (mouseXY.y obj.i !=='drop'); + + // UNCOMMENT below if you want to add a grid-item + /* + this.layout.push({ + x: DragPos.x, + y: DragPos.y, + w: 1, + h: 1, + i: DragPos.i, + }); + this.$refs.gridLayout.dragEvent('dragend', DragPos.i, DragPos.x,DragPos.y,1,1); + try { + this.$refs.gridLayout.$children[this.layout.length].$refs.item.style.display="block"; + } catch { + } + */ + } + }, + }, +}); + diff --git a/website/docs/.vuepress/public/examples/11-bounded.html b/website/docs/.vuepress/public/examples/11-bounded.html new file mode 100644 index 00000000..e5bb1eef --- /dev/null +++ b/website/docs/.vuepress/public/examples/11-bounded.html @@ -0,0 +1,64 @@ + + + + + + Vue Grid Layout Example 11 - Bounded + + + + + + +

Vue Grid Layout Example 11 - Bounded

+ + View project on Github +
+ Previous example: Drag From Outside +
+ + +
+ +
+
+ Displayed as [x, y, w, h]: +
+
+ {{item.i}}: [{{item.x}}, {{item.y}}, {{item.w}}, {{item.h}}] +
+
+
+
+
+ Draggable + Resizable + Bounded +
+ + + {{item.i}} + + +
+
+ + + + + + diff --git a/website/docs/.vuepress/public/examples/11-bounded.js b/website/docs/.vuepress/public/examples/11-bounded.js new file mode 100644 index 00000000..9828336b --- /dev/null +++ b/website/docs/.vuepress/public/examples/11-bounded.js @@ -0,0 +1,35 @@ +var testLayout = [ + {"x":0,"y":0,"w":2,"h":2,"i":"0"}, + {"x":2,"y":0,"w":2,"h":4,"i":"1"}, + {"x":4,"y":0,"w":2,"h":5,"i":"2"}, + {"x":6,"y":0,"w":2,"h":3,"i":"3"}, + {"x":8,"y":0,"w":2,"h":3,"i":"4"}, + {"x":10,"y":0,"w":2,"h":3,"i":"5"}, + {"x":0,"y":5,"w":2,"h":5,"i":"6"}, + {"x":2,"y":5,"w":2,"h":5,"i":"7"}, + {"x":4,"y":5,"w":2,"h":5,"i":"8"}, + {"x":6,"y":4,"w":2,"h":4,"i":"9"}, + {"x":8,"y":4,"w":2,"h":4,"i":"10"}, + {"x":10,"y":4,"w":2,"h":4,"i":"11"}, + {"x":0,"y":10,"w":2,"h":5,"i":"12"}, + {"x":2,"y":10,"w":2,"h":5,"i":"13"}, + {"x":4,"y":8,"w":2,"h":4,"i":"14"}, + {"x":6,"y":8,"w":2,"h":4,"i":"15"}, + {"x":8,"y":10,"w":2,"h":5,"i":"16"}, + {"x":10,"y":4,"w":2,"h":2,"i":"17"}, + {"x":0,"y":9,"w":2,"h":3,"i":"18"}, + {"x":2,"y":6,"w":2,"h":2,"i":"19"} +]; + +new Vue({ + el: '#app', + data: { + layout: testLayout, + draggable: true, + resizable: true, + bounded: true + } +}); + + + diff --git a/examples/app.css b/website/docs/.vuepress/public/examples/app.css similarity index 99% rename from examples/app.css rename to website/docs/.vuepress/public/examples/app.css index b79ad73a..40d7cfc0 100644 --- a/examples/app.css +++ b/website/docs/.vuepress/public/examples/app.css @@ -99,4 +99,4 @@ background-origin: content-box; box-sizing: border-box; cursor: pointer; -} \ No newline at end of file +} diff --git a/website/docs/.vuepress/public/examples/vue.js b/website/docs/.vuepress/public/examples/vue.js new file mode 100644 index 00000000..838cf920 --- /dev/null +++ b/website/docs/.vuepress/public/examples/vue.js @@ -0,0 +1,11907 @@ +/*! + * Vue.js v2.6.7 + * (c) 2014-2019 Evan You + * Released under the MIT License. + */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = global || self, global.Vue = factory()); +}(this, function () { 'use strict'; + + /* */ + + var emptyObject = Object.freeze({}); + + // These helpers produce better VM code in JS engines due to their + // explicitness and function inlining. + function isUndef (v) { + return v === undefined || v === null + } + + function isDef (v) { + return v !== undefined && v !== null + } + + function isTrue (v) { + return v === true + } + + function isFalse (v) { + return v === false + } + + /** + * Check if value is primitive. + */ + function isPrimitive (value) { + return ( + typeof value === 'string' || + typeof value === 'number' || + // $flow-disable-line + typeof value === 'symbol' || + typeof value === 'boolean' + ) + } + + /** + * Quick object check - this is primarily used to tell + * Objects from primitive values when we know the value + * is a JSON-compliant type. + */ + function isObject (obj) { + return obj !== null && typeof obj === 'object' + } + + /** + * Get the raw type string of a value, e.g., [object Object]. + */ + var _toString = Object.prototype.toString; + + function toRawType (value) { + return _toString.call(value).slice(8, -1) + } + + /** + * Strict object type check. Only returns true + * for plain JavaScript objects. + */ + function isPlainObject (obj) { + return _toString.call(obj) === '[object Object]' + } + + function isRegExp (v) { + return _toString.call(v) === '[object RegExp]' + } + + /** + * Check if val is a valid array index. + */ + function isValidArrayIndex (val) { + var n = parseFloat(String(val)); + return n >= 0 && Math.floor(n) === n && isFinite(val) + } + + function isPromise (val) { + return ( + isDef(val) && + typeof val.then === 'function' && + typeof val.catch === 'function' + ) + } + + /** + * Convert a value to a string that is actually rendered. + */ + function toString (val) { + return val == null + ? '' + : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString) + ? JSON.stringify(val, null, 2) + : String(val) + } + + /** + * Convert an input value to a number for persistence. + * If the conversion fails, return original string. + */ + function toNumber (val) { + var n = parseFloat(val); + return isNaN(n) ? val : n + } + + /** + * Make a map and return a function for checking if a key + * is in that map. + */ + function makeMap ( + str, + expectsLowerCase + ) { + var map = Object.create(null); + var list = str.split(','); + for (var i = 0; i < list.length; i++) { + map[list[i]] = true; + } + return expectsLowerCase + ? function (val) { return map[val.toLowerCase()]; } + : function (val) { return map[val]; } + } + + /** + * Check if a tag is a built-in tag. + */ + var isBuiltInTag = makeMap('slot,component', true); + + /** + * Check if an attribute is a reserved attribute. + */ + var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is'); + + /** + * Remove an item from an array. + */ + function remove (arr, item) { + if (arr.length) { + var index = arr.indexOf(item); + if (index > -1) { + return arr.splice(index, 1) + } + } + } + + /** + * Check whether an object has the property. + */ + var hasOwnProperty = Object.prototype.hasOwnProperty; + function hasOwn (obj, key) { + return hasOwnProperty.call(obj, key) + } + + /** + * Create a cached version of a pure function. + */ + function cached (fn) { + var cache = Object.create(null); + return (function cachedFn (str) { + var hit = cache[str]; + return hit || (cache[str] = fn(str)) + }) + } + + /** + * Camelize a hyphen-delimited string. + */ + var camelizeRE = /-(\w)/g; + var camelize = cached(function (str) { + return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; }) + }); + + /** + * Capitalize a string. + */ + var capitalize = cached(function (str) { + return str.charAt(0).toUpperCase() + str.slice(1) + }); + + /** + * Hyphenate a camelCase string. + */ + var hyphenateRE = /\B([A-Z])/g; + var hyphenate = cached(function (str) { + return str.replace(hyphenateRE, '-$1').toLowerCase() + }); + + /** + * Simple bind polyfill for environments that do not support it, + * e.g., PhantomJS 1.x. Technically, we don't need this anymore + * since native bind is now performant enough in most browsers. + * But removing it would mean breaking code that was able to run in + * PhantomJS 1.x, so this must be kept for backward compatibility. + */ + + /* istanbul ignore next */ + function polyfillBind (fn, ctx) { + function boundFn (a) { + var l = arguments.length; + return l + ? l > 1 + ? fn.apply(ctx, arguments) + : fn.call(ctx, a) + : fn.call(ctx) + } + + boundFn._length = fn.length; + return boundFn + } + + function nativeBind (fn, ctx) { + return fn.bind(ctx) + } + + var bind = Function.prototype.bind + ? nativeBind + : polyfillBind; + + /** + * Convert an Array-like object to a real Array. + */ + function toArray (list, start) { + start = start || 0; + var i = list.length - start; + var ret = new Array(i); + while (i--) { + ret[i] = list[i + start]; + } + return ret + } + + /** + * Mix properties into target object. + */ + function extend (to, _from) { + for (var key in _from) { + to[key] = _from[key]; + } + return to + } + + /** + * Merge an Array of Objects into a single Object. + */ + function toObject (arr) { + var res = {}; + for (var i = 0; i < arr.length; i++) { + if (arr[i]) { + extend(res, arr[i]); + } + } + return res + } + + /* eslint-disable no-unused-vars */ + + /** + * Perform no operation. + * Stubbing args to make Flow happy without leaving useless transpiled code + * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/). + */ + function noop (a, b, c) {} + + /** + * Always return false. + */ + var no = function (a, b, c) { return false; }; + + /* eslint-enable no-unused-vars */ + + /** + * Return the same value. + */ + var identity = function (_) { return _; }; + + /** + * Generate a string containing static keys from compiler modules. + */ + function genStaticKeys (modules) { + return modules.reduce(function (keys, m) { + return keys.concat(m.staticKeys || []) + }, []).join(',') + } + + /** + * Check if two values are loosely equal - that is, + * if they are plain objects, do they have the same shape? + */ + function looseEqual (a, b) { + if (a === b) { return true } + var isObjectA = isObject(a); + var isObjectB = isObject(b); + if (isObjectA && isObjectB) { + try { + var isArrayA = Array.isArray(a); + var isArrayB = Array.isArray(b); + if (isArrayA && isArrayB) { + return a.length === b.length && a.every(function (e, i) { + return looseEqual(e, b[i]) + }) + } else if (a instanceof Date && b instanceof Date) { + return a.getTime() === b.getTime() + } else if (!isArrayA && !isArrayB) { + var keysA = Object.keys(a); + var keysB = Object.keys(b); + return keysA.length === keysB.length && keysA.every(function (key) { + return looseEqual(a[key], b[key]) + }) + } else { + /* istanbul ignore next */ + return false + } + } catch (e) { + /* istanbul ignore next */ + return false + } + } else if (!isObjectA && !isObjectB) { + return String(a) === String(b) + } else { + return false + } + } + + /** + * Return the first index at which a loosely equal value can be + * found in the array (if value is a plain object, the array must + * contain an object of the same shape), or -1 if it is not present. + */ + function looseIndexOf (arr, val) { + for (var i = 0; i < arr.length; i++) { + if (looseEqual(arr[i], val)) { return i } + } + return -1 + } + + /** + * Ensure a function is called only once. + */ + function once (fn) { + var called = false; + return function () { + if (!called) { + called = true; + fn.apply(this, arguments); + } + } + } + + var SSR_ATTR = 'data-server-rendered'; + + var ASSET_TYPES = [ + 'component', + 'directive', + 'filter' + ]; + + var LIFECYCLE_HOOKS = [ + 'beforeCreate', + 'created', + 'beforeMount', + 'mounted', + 'beforeUpdate', + 'updated', + 'beforeDestroy', + 'destroyed', + 'activated', + 'deactivated', + 'errorCaptured', + 'serverPrefetch' + ]; + + /* */ + + + + var config = ({ + /** + * Option merge strategies (used in core/util/options) + */ + // $flow-disable-line + optionMergeStrategies: Object.create(null), + + /** + * Whether to suppress warnings. + */ + silent: false, + + /** + * Show production mode tip message on boot? + */ + productionTip: "development" !== 'production', + + /** + * Whether to enable devtools + */ + devtools: "development" !== 'production', + + /** + * Whether to record perf + */ + performance: false, + + /** + * Error handler for watcher errors + */ + errorHandler: null, + + /** + * Warn handler for watcher warns + */ + warnHandler: null, + + /** + * Ignore certain custom elements + */ + ignoredElements: [], + + /** + * Custom user key aliases for v-on + */ + // $flow-disable-line + keyCodes: Object.create(null), + + /** + * Check if a tag is reserved so that it cannot be registered as a + * component. This is platform-dependent and may be overwritten. + */ + isReservedTag: no, + + /** + * Check if an attribute is reserved so that it cannot be used as a component + * prop. This is platform-dependent and may be overwritten. + */ + isReservedAttr: no, + + /** + * Check if a tag is an unknown element. + * Platform-dependent. + */ + isUnknownElement: no, + + /** + * Get the namespace of an element + */ + getTagNamespace: noop, + + /** + * Parse the real tag name for the specific platform. + */ + parsePlatformTagName: identity, + + /** + * Check if an attribute must be bound using property, e.g. value + * Platform-dependent. + */ + mustUseProp: no, + + /** + * Perform updates asynchronously. Intended to be used by Vue Test Utils + * This will significantly reduce performance if set to false. + */ + async: true, + + /** + * Exposed for legacy reasons + */ + _lifecycleHooks: LIFECYCLE_HOOKS + }); + + /* */ + + /** + * unicode letters used for parsing html tags, component names and property paths. + * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname + * skipping \u10000-\uEFFFF due to it freezing up PhantomJS + */ + var unicodeLetters = 'a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD'; + + /** + * Check if a string starts with $ or _ + */ + function isReserved (str) { + var c = (str + '').charCodeAt(0); + return c === 0x24 || c === 0x5F + } + + /** + * Define a property. + */ + function def (obj, key, val, enumerable) { + Object.defineProperty(obj, key, { + value: val, + enumerable: !!enumerable, + writable: true, + configurable: true + }); + } + + /** + * Parse simple path. + */ + var bailRE = new RegExp(("[^" + unicodeLetters + ".$_\\d]")); + function parsePath (path) { + if (bailRE.test(path)) { + return + } + var segments = path.split('.'); + return function (obj) { + for (var i = 0; i < segments.length; i++) { + if (!obj) { return } + obj = obj[segments[i]]; + } + return obj + } + } + + /* */ + + // can we use __proto__? + var hasProto = '__proto__' in {}; + + // Browser environment sniffing + var inBrowser = typeof window !== 'undefined'; + var inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform; + var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase(); + var UA = inBrowser && window.navigator.userAgent.toLowerCase(); + var isIE = UA && /msie|trident/.test(UA); + var isIE9 = UA && UA.indexOf('msie 9.0') > 0; + var isEdge = UA && UA.indexOf('edge/') > 0; + var isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android'); + var isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios'); + var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge; + var isPhantomJS = UA && /phantomjs/.test(UA); + var isFF = UA && UA.match(/firefox\/(\d+)/); + + // Firefox has a "watch" function on Object.prototype... + var nativeWatch = ({}).watch; + + var supportsPassive = false; + if (inBrowser) { + try { + var opts = {}; + Object.defineProperty(opts, 'passive', ({ + get: function get () { + /* istanbul ignore next */ + supportsPassive = true; + } + })); // https://github.com/facebook/flow/issues/285 + window.addEventListener('test-passive', null, opts); + } catch (e) {} + } + + // this needs to be lazy-evaled because vue may be required before + // vue-server-renderer can set VUE_ENV + var _isServer; + var isServerRendering = function () { + if (_isServer === undefined) { + /* istanbul ignore if */ + if (!inBrowser && !inWeex && typeof global !== 'undefined') { + // detect presence of vue-server-renderer and avoid + // Webpack shimming the process + _isServer = global['process'] && global['process'].env.VUE_ENV === 'server'; + } else { + _isServer = false; + } + } + return _isServer + }; + + // detect devtools + var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__; + + /* istanbul ignore next */ + function isNative (Ctor) { + return typeof Ctor === 'function' && /native code/.test(Ctor.toString()) + } + + var hasSymbol = + typeof Symbol !== 'undefined' && isNative(Symbol) && + typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys); + + var _Set; + /* istanbul ignore if */ // $flow-disable-line + if (typeof Set !== 'undefined' && isNative(Set)) { + // use native Set when available. + _Set = Set; + } else { + // a non-standard Set polyfill that only works with primitive keys. + _Set = /*@__PURE__*/(function () { + function Set () { + this.set = Object.create(null); + } + Set.prototype.has = function has (key) { + return this.set[key] === true + }; + Set.prototype.add = function add (key) { + this.set[key] = true; + }; + Set.prototype.clear = function clear () { + this.set = Object.create(null); + }; + + return Set; + }()); + } + + /* */ + + var warn = noop; + var tip = noop; + var generateComponentTrace = (noop); // work around flow check + var formatComponentName = (noop); + + { + var hasConsole = typeof console !== 'undefined'; + var classifyRE = /(?:^|[-_])(\w)/g; + var classify = function (str) { return str + .replace(classifyRE, function (c) { return c.toUpperCase(); }) + .replace(/[-_]/g, ''); }; + + warn = function (msg, vm) { + var trace = vm ? generateComponentTrace(vm) : ''; + + if (config.warnHandler) { + config.warnHandler.call(null, msg, vm, trace); + } else if (hasConsole && (!config.silent)) { + console.error(("[Vue warn]: " + msg + trace)); + } + }; + + tip = function (msg, vm) { + if (hasConsole && (!config.silent)) { + console.warn("[Vue tip]: " + msg + ( + vm ? generateComponentTrace(vm) : '' + )); + } + }; + + formatComponentName = function (vm, includeFile) { + if (vm.$root === vm) { + return '' + } + var options = typeof vm === 'function' && vm.cid != null + ? vm.options + : vm._isVue + ? vm.$options || vm.constructor.options + : vm; + var name = options.name || options._componentTag; + var file = options.__file; + if (!name && file) { + var match = file.match(/([^/\\]+)\.vue$/); + name = match && match[1]; + } + + return ( + (name ? ("<" + (classify(name)) + ">") : "") + + (file && includeFile !== false ? (" at " + file) : '') + ) + }; + + var repeat = function (str, n) { + var res = ''; + while (n) { + if (n % 2 === 1) { res += str; } + if (n > 1) { str += str; } + n >>= 1; + } + return res + }; + + generateComponentTrace = function (vm) { + if (vm._isVue && vm.$parent) { + var tree = []; + var currentRecursiveSequence = 0; + while (vm) { + if (tree.length > 0) { + var last = tree[tree.length - 1]; + if (last.constructor === vm.constructor) { + currentRecursiveSequence++; + vm = vm.$parent; + continue + } else if (currentRecursiveSequence > 0) { + tree[tree.length - 1] = [last, currentRecursiveSequence]; + currentRecursiveSequence = 0; + } + } + tree.push(vm); + vm = vm.$parent; + } + return '\n\nfound in\n\n' + tree + .map(function (vm, i) { return ("" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm) + ? ((formatComponentName(vm[0])) + "... (" + (vm[1]) + " recursive calls)") + : formatComponentName(vm))); }) + .join('\n') + } else { + return ("\n\n(found in " + (formatComponentName(vm)) + ")") + } + }; + } + + /* */ + + var uid = 0; + + /** + * A dep is an observable that can have multiple + * directives subscribing to it. + */ + var Dep = function Dep () { + this.id = uid++; + this.subs = []; + }; + + Dep.prototype.addSub = function addSub (sub) { + this.subs.push(sub); + }; + + Dep.prototype.removeSub = function removeSub (sub) { + remove(this.subs, sub); + }; + + Dep.prototype.depend = function depend () { + if (Dep.target) { + Dep.target.addDep(this); + } + }; + + Dep.prototype.notify = function notify () { + // stabilize the subscriber list first + var subs = this.subs.slice(); + if (!config.async) { + // subs aren't sorted in scheduler if not running async + // we need to sort them now to make sure they fire in correct + // order + subs.sort(function (a, b) { return a.id - b.id; }); + } + for (var i = 0, l = subs.length; i < l; i++) { + subs[i].update(); + } + }; + + // The current target watcher being evaluated. + // This is globally unique because only one watcher + // can be evaluated at a time. + Dep.target = null; + var targetStack = []; + + function pushTarget (target) { + targetStack.push(target); + Dep.target = target; + } + + function popTarget () { + targetStack.pop(); + Dep.target = targetStack[targetStack.length - 1]; + } + + /* */ + + var VNode = function VNode ( + tag, + data, + children, + text, + elm, + context, + componentOptions, + asyncFactory + ) { + this.tag = tag; + this.data = data; + this.children = children; + this.text = text; + this.elm = elm; + this.ns = undefined; + this.context = context; + this.fnContext = undefined; + this.fnOptions = undefined; + this.fnScopeId = undefined; + this.key = data && data.key; + this.componentOptions = componentOptions; + this.componentInstance = undefined; + this.parent = undefined; + this.raw = false; + this.isStatic = false; + this.isRootInsert = true; + this.isComment = false; + this.isCloned = false; + this.isOnce = false; + this.asyncFactory = asyncFactory; + this.asyncMeta = undefined; + this.isAsyncPlaceholder = false; + }; + + var prototypeAccessors = { child: { configurable: true } }; + + // DEPRECATED: alias for componentInstance for backwards compat. + /* istanbul ignore next */ + prototypeAccessors.child.get = function () { + return this.componentInstance + }; + + Object.defineProperties( VNode.prototype, prototypeAccessors ); + + var createEmptyVNode = function (text) { + if ( text === void 0 ) text = ''; + + var node = new VNode(); + node.text = text; + node.isComment = true; + return node + }; + + function createTextVNode (val) { + return new VNode(undefined, undefined, undefined, String(val)) + } + + // optimized shallow clone + // used for static nodes and slot nodes because they may be reused across + // multiple renders, cloning them avoids errors when DOM manipulations rely + // on their elm reference. + function cloneVNode (vnode) { + var cloned = new VNode( + vnode.tag, + vnode.data, + // #7975 + // clone children array to avoid mutating original in case of cloning + // a child. + vnode.children && vnode.children.slice(), + vnode.text, + vnode.elm, + vnode.context, + vnode.componentOptions, + vnode.asyncFactory + ); + cloned.ns = vnode.ns; + cloned.isStatic = vnode.isStatic; + cloned.key = vnode.key; + cloned.isComment = vnode.isComment; + cloned.fnContext = vnode.fnContext; + cloned.fnOptions = vnode.fnOptions; + cloned.fnScopeId = vnode.fnScopeId; + cloned.asyncMeta = vnode.asyncMeta; + cloned.isCloned = true; + return cloned + } + + /* + * not type checking this file because flow doesn't play well with + * dynamically accessing methods on Array prototype + */ + + var arrayProto = Array.prototype; + var arrayMethods = Object.create(arrayProto); + + var methodsToPatch = [ + 'push', + 'pop', + 'shift', + 'unshift', + 'splice', + 'sort', + 'reverse' + ]; + + /** + * Intercept mutating methods and emit events + */ + methodsToPatch.forEach(function (method) { + // cache original method + var original = arrayProto[method]; + def(arrayMethods, method, function mutator () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var result = original.apply(this, args); + var ob = this.__ob__; + var inserted; + switch (method) { + case 'push': + case 'unshift': + inserted = args; + break + case 'splice': + inserted = args.slice(2); + break + } + if (inserted) { ob.observeArray(inserted); } + // notify change + ob.dep.notify(); + return result + }); + }); + + /* */ + + var arrayKeys = Object.getOwnPropertyNames(arrayMethods); + + /** + * In some cases we may want to disable observation inside a component's + * update computation. + */ + var shouldObserve = true; + + function toggleObserving (value) { + shouldObserve = value; + } + + /** + * Observer class that is attached to each observed + * object. Once attached, the observer converts the target + * object's property keys into getter/setters that + * collect dependencies and dispatch updates. + */ + var Observer = function Observer (value) { + this.value = value; + this.dep = new Dep(); + this.vmCount = 0; + def(value, '__ob__', this); + if (Array.isArray(value)) { + if (hasProto) { + protoAugment(value, arrayMethods); + } else { + copyAugment(value, arrayMethods, arrayKeys); + } + this.observeArray(value); + } else { + this.walk(value); + } + }; + + /** + * Walk through all properties and convert them into + * getter/setters. This method should only be called when + * value type is Object. + */ + Observer.prototype.walk = function walk (obj) { + var keys = Object.keys(obj); + for (var i = 0; i < keys.length; i++) { + defineReactive$$1(obj, keys[i]); + } + }; + + /** + * Observe a list of Array items. + */ + Observer.prototype.observeArray = function observeArray (items) { + for (var i = 0, l = items.length; i < l; i++) { + observe(items[i]); + } + }; + + // helpers + + /** + * Augment a target Object or Array by intercepting + * the prototype chain using __proto__ + */ + function protoAugment (target, src) { + /* eslint-disable no-proto */ + target.__proto__ = src; + /* eslint-enable no-proto */ + } + + /** + * Augment a target Object or Array by defining + * hidden properties. + */ + /* istanbul ignore next */ + function copyAugment (target, src, keys) { + for (var i = 0, l = keys.length; i < l; i++) { + var key = keys[i]; + def(target, key, src[key]); + } + } + + /** + * Attempt to create an observer instance for a value, + * returns the new observer if successfully observed, + * or the existing observer if the value already has one. + */ + function observe (value, asRootData) { + if (!isObject(value) || value instanceof VNode) { + return + } + var ob; + if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) { + ob = value.__ob__; + } else if ( + shouldObserve && + !isServerRendering() && + (Array.isArray(value) || isPlainObject(value)) && + Object.isExtensible(value) && + !value._isVue + ) { + ob = new Observer(value); + } + if (asRootData && ob) { + ob.vmCount++; + } + return ob + } + + /** + * Define a reactive property on an Object. + */ + function defineReactive$$1 ( + obj, + key, + val, + customSetter, + shallow + ) { + var dep = new Dep(); + + var property = Object.getOwnPropertyDescriptor(obj, key); + if (property && property.configurable === false) { + return + } + + // cater for pre-defined getter/setters + var getter = property && property.get; + var setter = property && property.set; + if ((!getter || setter) && arguments.length === 2) { + val = obj[key]; + } + + var childOb = !shallow && observe(val); + Object.defineProperty(obj, key, { + enumerable: true, + configurable: true, + get: function reactiveGetter () { + var value = getter ? getter.call(obj) : val; + if (Dep.target) { + dep.depend(); + if (childOb) { + childOb.dep.depend(); + if (Array.isArray(value)) { + dependArray(value); + } + } + } + return value + }, + set: function reactiveSetter (newVal) { + var value = getter ? getter.call(obj) : val; + /* eslint-disable no-self-compare */ + if (newVal === value || (newVal !== newVal && value !== value)) { + return + } + /* eslint-enable no-self-compare */ + if (customSetter) { + customSetter(); + } + // #7981: for accessor properties without setter + if (getter && !setter) { return } + if (setter) { + setter.call(obj, newVal); + } else { + val = newVal; + } + childOb = !shallow && observe(newVal); + dep.notify(); + } + }); + } + + /** + * Set a property on an object. Adds the new property and + * triggers change notification if the property doesn't + * already exist. + */ + function set (target, key, val) { + if (isUndef(target) || isPrimitive(target) + ) { + warn(("Cannot set reactive property on undefined, null, or primitive value: " + ((target)))); + } + if (Array.isArray(target) && isValidArrayIndex(key)) { + target.length = Math.max(target.length, key); + target.splice(key, 1, val); + return val + } + if (key in target && !(key in Object.prototype)) { + target[key] = val; + return val + } + var ob = (target).__ob__; + if (target._isVue || (ob && ob.vmCount)) { + warn( + 'Avoid adding reactive properties to a Vue instance or its root $data ' + + 'at runtime - declare it upfront in the data option.' + ); + return val + } + if (!ob) { + target[key] = val; + return val + } + defineReactive$$1(ob.value, key, val); + ob.dep.notify(); + return val + } + + /** + * Delete a property and trigger change if necessary. + */ + function del (target, key) { + if (isUndef(target) || isPrimitive(target) + ) { + warn(("Cannot delete reactive property on undefined, null, or primitive value: " + ((target)))); + } + if (Array.isArray(target) && isValidArrayIndex(key)) { + target.splice(key, 1); + return + } + var ob = (target).__ob__; + if (target._isVue || (ob && ob.vmCount)) { + warn( + 'Avoid deleting properties on a Vue instance or its root $data ' + + '- just set it to null.' + ); + return + } + if (!hasOwn(target, key)) { + return + } + delete target[key]; + if (!ob) { + return + } + ob.dep.notify(); + } + + /** + * Collect dependencies on array elements when the array is touched, since + * we cannot intercept array element access like property getters. + */ + function dependArray (value) { + for (var e = (void 0), i = 0, l = value.length; i < l; i++) { + e = value[i]; + e && e.__ob__ && e.__ob__.dep.depend(); + if (Array.isArray(e)) { + dependArray(e); + } + } + } + + /* */ + + /** + * Option overwriting strategies are functions that handle + * how to merge a parent option value and a child option + * value into the final value. + */ + var strats = config.optionMergeStrategies; + + /** + * Options with restrictions + */ + { + strats.el = strats.propsData = function (parent, child, vm, key) { + if (!vm) { + warn( + "option \"" + key + "\" can only be used during instance " + + 'creation with the `new` keyword.' + ); + } + return defaultStrat(parent, child) + }; + } + + /** + * Helper that recursively merges two data objects together. + */ + function mergeData (to, from) { + if (!from) { return to } + var key, toVal, fromVal; + + var keys = hasSymbol + ? Reflect.ownKeys(from) + : Object.keys(from); + + for (var i = 0; i < keys.length; i++) { + key = keys[i]; + // in case the object is already observed... + if (key === '__ob__') { continue } + toVal = to[key]; + fromVal = from[key]; + if (!hasOwn(to, key)) { + set(to, key, fromVal); + } else if ( + toVal !== fromVal && + isPlainObject(toVal) && + isPlainObject(fromVal) + ) { + mergeData(toVal, fromVal); + } + } + return to + } + + /** + * Data + */ + function mergeDataOrFn ( + parentVal, + childVal, + vm + ) { + if (!vm) { + // in a Vue.extend merge, both should be functions + if (!childVal) { + return parentVal + } + if (!parentVal) { + return childVal + } + // when parentVal & childVal are both present, + // we need to return a function that returns the + // merged result of both functions... no need to + // check if parentVal is a function here because + // it has to be a function to pass previous merges. + return function mergedDataFn () { + return mergeData( + typeof childVal === 'function' ? childVal.call(this, this) : childVal, + typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal + ) + } + } else { + return function mergedInstanceDataFn () { + // instance merge + var instanceData = typeof childVal === 'function' + ? childVal.call(vm, vm) + : childVal; + var defaultData = typeof parentVal === 'function' + ? parentVal.call(vm, vm) + : parentVal; + if (instanceData) { + return mergeData(instanceData, defaultData) + } else { + return defaultData + } + } + } + } + + strats.data = function ( + parentVal, + childVal, + vm + ) { + if (!vm) { + if (childVal && typeof childVal !== 'function') { + warn( + 'The "data" option should be a function ' + + 'that returns a per-instance value in component ' + + 'definitions.', + vm + ); + + return parentVal + } + return mergeDataOrFn(parentVal, childVal) + } + + return mergeDataOrFn(parentVal, childVal, vm) + }; + + /** + * Hooks and props are merged as arrays. + */ + function mergeHook ( + parentVal, + childVal + ) { + var res = childVal + ? parentVal + ? parentVal.concat(childVal) + : Array.isArray(childVal) + ? childVal + : [childVal] + : parentVal; + return res + ? dedupeHooks(res) + : res + } + + function dedupeHooks (hooks) { + var res = []; + for (var i = 0; i < hooks.length; i++) { + if (res.indexOf(hooks[i]) === -1) { + res.push(hooks[i]); + } + } + return res + } + + LIFECYCLE_HOOKS.forEach(function (hook) { + strats[hook] = mergeHook; + }); + + /** + * Assets + * + * When a vm is present (instance creation), we need to do + * a three-way merge between constructor options, instance + * options and parent options. + */ + function mergeAssets ( + parentVal, + childVal, + vm, + key + ) { + var res = Object.create(parentVal || null); + if (childVal) { + assertObjectType(key, childVal, vm); + return extend(res, childVal) + } else { + return res + } + } + + ASSET_TYPES.forEach(function (type) { + strats[type + 's'] = mergeAssets; + }); + + /** + * Watchers. + * + * Watchers hashes should not overwrite one + * another, so we merge them as arrays. + */ + strats.watch = function ( + parentVal, + childVal, + vm, + key + ) { + // work around Firefox's Object.prototype.watch... + if (parentVal === nativeWatch) { parentVal = undefined; } + if (childVal === nativeWatch) { childVal = undefined; } + /* istanbul ignore if */ + if (!childVal) { return Object.create(parentVal || null) } + { + assertObjectType(key, childVal, vm); + } + if (!parentVal) { return childVal } + var ret = {}; + extend(ret, parentVal); + for (var key$1 in childVal) { + var parent = ret[key$1]; + var child = childVal[key$1]; + if (parent && !Array.isArray(parent)) { + parent = [parent]; + } + ret[key$1] = parent + ? parent.concat(child) + : Array.isArray(child) ? child : [child]; + } + return ret + }; + + /** + * Other object hashes. + */ + strats.props = + strats.methods = + strats.inject = + strats.computed = function ( + parentVal, + childVal, + vm, + key + ) { + if (childVal && "development" !== 'production') { + assertObjectType(key, childVal, vm); + } + if (!parentVal) { return childVal } + var ret = Object.create(null); + extend(ret, parentVal); + if (childVal) { extend(ret, childVal); } + return ret + }; + strats.provide = mergeDataOrFn; + + /** + * Default strategy. + */ + var defaultStrat = function (parentVal, childVal) { + return childVal === undefined + ? parentVal + : childVal + }; + + /** + * Validate component names + */ + function checkComponents (options) { + for (var key in options.components) { + validateComponentName(key); + } + } + + function validateComponentName (name) { + if (!new RegExp(("^[a-zA-Z][\\-\\.0-9_" + unicodeLetters + "]*$")).test(name)) { + warn( + 'Invalid component name: "' + name + '". Component names ' + + 'should conform to valid custom element name in html5 specification.' + ); + } + if (isBuiltInTag(name) || config.isReservedTag(name)) { + warn( + 'Do not use built-in or reserved HTML elements as component ' + + 'id: ' + name + ); + } + } + + /** + * Ensure all props option syntax are normalized into the + * Object-based format. + */ + function normalizeProps (options, vm) { + var props = options.props; + if (!props) { return } + var res = {}; + var i, val, name; + if (Array.isArray(props)) { + i = props.length; + while (i--) { + val = props[i]; + if (typeof val === 'string') { + name = camelize(val); + res[name] = { type: null }; + } else { + warn('props must be strings when using array syntax.'); + } + } + } else if (isPlainObject(props)) { + for (var key in props) { + val = props[key]; + name = camelize(key); + res[name] = isPlainObject(val) + ? val + : { type: val }; + } + } else { + warn( + "Invalid value for option \"props\": expected an Array or an Object, " + + "but got " + (toRawType(props)) + ".", + vm + ); + } + options.props = res; + } + + /** + * Normalize all injections into Object-based format + */ + function normalizeInject (options, vm) { + var inject = options.inject; + if (!inject) { return } + var normalized = options.inject = {}; + if (Array.isArray(inject)) { + for (var i = 0; i < inject.length; i++) { + normalized[inject[i]] = { from: inject[i] }; + } + } else if (isPlainObject(inject)) { + for (var key in inject) { + var val = inject[key]; + normalized[key] = isPlainObject(val) + ? extend({ from: key }, val) + : { from: val }; + } + } else { + warn( + "Invalid value for option \"inject\": expected an Array or an Object, " + + "but got " + (toRawType(inject)) + ".", + vm + ); + } + } + + /** + * Normalize raw function directives into object format. + */ + function normalizeDirectives (options) { + var dirs = options.directives; + if (dirs) { + for (var key in dirs) { + var def$$1 = dirs[key]; + if (typeof def$$1 === 'function') { + dirs[key] = { bind: def$$1, update: def$$1 }; + } + } + } + } + + function assertObjectType (name, value, vm) { + if (!isPlainObject(value)) { + warn( + "Invalid value for option \"" + name + "\": expected an Object, " + + "but got " + (toRawType(value)) + ".", + vm + ); + } + } + + /** + * Merge two option objects into a new one. + * Core utility used in both instantiation and inheritance. + */ + function mergeOptions ( + parent, + child, + vm + ) { + { + checkComponents(child); + } + + if (typeof child === 'function') { + child = child.options; + } + + normalizeProps(child, vm); + normalizeInject(child, vm); + normalizeDirectives(child); + + // Apply extends and mixins on the child options, + // but only if it is a raw options object that isn't + // the result of another mergeOptions call. + // Only merged options has the _base property. + if (!child._base) { + if (child.extends) { + parent = mergeOptions(parent, child.extends, vm); + } + if (child.mixins) { + for (var i = 0, l = child.mixins.length; i < l; i++) { + parent = mergeOptions(parent, child.mixins[i], vm); + } + } + } + + var options = {}; + var key; + for (key in parent) { + mergeField(key); + } + for (key in child) { + if (!hasOwn(parent, key)) { + mergeField(key); + } + } + function mergeField (key) { + var strat = strats[key] || defaultStrat; + options[key] = strat(parent[key], child[key], vm, key); + } + return options + } + + /** + * Resolve an asset. + * This function is used because child instances need access + * to assets defined in its ancestor chain. + */ + function resolveAsset ( + options, + type, + id, + warnMissing + ) { + /* istanbul ignore if */ + if (typeof id !== 'string') { + return + } + var assets = options[type]; + // check local registration variations first + if (hasOwn(assets, id)) { return assets[id] } + var camelizedId = camelize(id); + if (hasOwn(assets, camelizedId)) { return assets[camelizedId] } + var PascalCaseId = capitalize(camelizedId); + if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] } + // fallback to prototype chain + var res = assets[id] || assets[camelizedId] || assets[PascalCaseId]; + if (warnMissing && !res) { + warn( + 'Failed to resolve ' + type.slice(0, -1) + ': ' + id, + options + ); + } + return res + } + + /* */ + + + + function validateProp ( + key, + propOptions, + propsData, + vm + ) { + var prop = propOptions[key]; + var absent = !hasOwn(propsData, key); + var value = propsData[key]; + // boolean casting + var booleanIndex = getTypeIndex(Boolean, prop.type); + if (booleanIndex > -1) { + if (absent && !hasOwn(prop, 'default')) { + value = false; + } else if (value === '' || value === hyphenate(key)) { + // only cast empty string / same name to boolean if + // boolean has higher priority + var stringIndex = getTypeIndex(String, prop.type); + if (stringIndex < 0 || booleanIndex < stringIndex) { + value = true; + } + } + } + // check default value + if (value === undefined) { + value = getPropDefaultValue(vm, prop, key); + // since the default value is a fresh copy, + // make sure to observe it. + var prevShouldObserve = shouldObserve; + toggleObserving(true); + observe(value); + toggleObserving(prevShouldObserve); + } + { + assertProp(prop, key, value, vm, absent); + } + return value + } + + /** + * Get the default value of a prop. + */ + function getPropDefaultValue (vm, prop, key) { + // no default, return undefined + if (!hasOwn(prop, 'default')) { + return undefined + } + var def = prop.default; + // warn against non-factory defaults for Object & Array + if (isObject(def)) { + warn( + 'Invalid default value for prop "' + key + '": ' + + 'Props with type Object/Array must use a factory function ' + + 'to return the default value.', + vm + ); + } + // the raw prop value was also undefined from previous render, + // return previous default value to avoid unnecessary watcher trigger + if (vm && vm.$options.propsData && + vm.$options.propsData[key] === undefined && + vm._props[key] !== undefined + ) { + return vm._props[key] + } + // call factory function for non-Function types + // a value is Function if its prototype is function even across different execution context + return typeof def === 'function' && getType(prop.type) !== 'Function' + ? def.call(vm) + : def + } + + /** + * Assert whether a prop is valid. + */ + function assertProp ( + prop, + name, + value, + vm, + absent + ) { + if (prop.required && absent) { + warn( + 'Missing required prop: "' + name + '"', + vm + ); + return + } + if (value == null && !prop.required) { + return + } + var type = prop.type; + var valid = !type || type === true; + var expectedTypes = []; + if (type) { + if (!Array.isArray(type)) { + type = [type]; + } + for (var i = 0; i < type.length && !valid; i++) { + var assertedType = assertType(value, type[i]); + expectedTypes.push(assertedType.expectedType || ''); + valid = assertedType.valid; + } + } + + if (!valid) { + warn( + getInvalidTypeMessage(name, value, expectedTypes), + vm + ); + return + } + var validator = prop.validator; + if (validator) { + if (!validator(value)) { + warn( + 'Invalid prop: custom validator check failed for prop "' + name + '".', + vm + ); + } + } + } + + var simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/; + + function assertType (value, type) { + var valid; + var expectedType = getType(type); + if (simpleCheckRE.test(expectedType)) { + var t = typeof value; + valid = t === expectedType.toLowerCase(); + // for primitive wrapper objects + if (!valid && t === 'object') { + valid = value instanceof type; + } + } else if (expectedType === 'Object') { + valid = isPlainObject(value); + } else if (expectedType === 'Array') { + valid = Array.isArray(value); + } else { + valid = value instanceof type; + } + return { + valid: valid, + expectedType: expectedType + } + } + + /** + * Use function string name to check built-in types, + * because a simple equality check will fail when running + * across different vms / iframes. + */ + function getType (fn) { + var match = fn && fn.toString().match(/^\s*function (\w+)/); + return match ? match[1] : '' + } + + function isSameType (a, b) { + return getType(a) === getType(b) + } + + function getTypeIndex (type, expectedTypes) { + if (!Array.isArray(expectedTypes)) { + return isSameType(expectedTypes, type) ? 0 : -1 + } + for (var i = 0, len = expectedTypes.length; i < len; i++) { + if (isSameType(expectedTypes[i], type)) { + return i + } + } + return -1 + } + + function getInvalidTypeMessage (name, value, expectedTypes) { + var message = "Invalid prop: type check failed for prop \"" + name + "\"." + + " Expected " + (expectedTypes.map(capitalize).join(', ')); + var expectedType = expectedTypes[0]; + var receivedType = toRawType(value); + var expectedValue = styleValue(value, expectedType); + var receivedValue = styleValue(value, receivedType); + // check if we need to specify expected value + if (expectedTypes.length === 1 && + isExplicable(expectedType) && + !isBoolean(expectedType, receivedType)) { + message += " with value " + expectedValue; + } + message += ", got " + receivedType + " "; + // check if we need to specify received value + if (isExplicable(receivedType)) { + message += "with value " + receivedValue + "."; + } + return message + } + + function styleValue (value, type) { + if (type === 'String') { + return ("\"" + value + "\"") + } else if (type === 'Number') { + return ("" + (Number(value))) + } else { + return ("" + value) + } + } + + function isExplicable (value) { + var explicitTypes = ['string', 'number', 'boolean']; + return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; }) + } + + function isBoolean () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; }) + } + + /* */ + + function handleError (err, vm, info) { + // Deactivate deps tracking while processing error handler to avoid possible infinite rendering. + // See: https://github.com/vuejs/vuex/issues/1505 + pushTarget(); + try { + if (vm) { + var cur = vm; + while ((cur = cur.$parent)) { + var hooks = cur.$options.errorCaptured; + if (hooks) { + for (var i = 0; i < hooks.length; i++) { + try { + var capture = hooks[i].call(cur, err, vm, info) === false; + if (capture) { return } + } catch (e) { + globalHandleError(e, cur, 'errorCaptured hook'); + } + } + } + } + } + globalHandleError(err, vm, info); + } finally { + popTarget(); + } + } + + function invokeWithErrorHandling ( + handler, + context, + args, + vm, + info + ) { + var res; + try { + res = args ? handler.apply(context, args) : handler.call(context); + if (res && !res._isVue && isPromise(res)) { + // issue #9511 + // reassign to res to avoid catch triggering multiple times when nested calls + res = res.catch(function (e) { return handleError(e, vm, info + " (Promise/async)"); }); + } + } catch (e) { + handleError(e, vm, info); + } + return res + } + + function globalHandleError (err, vm, info) { + if (config.errorHandler) { + try { + return config.errorHandler.call(null, err, vm, info) + } catch (e) { + // if the user intentionally throws the original error in the handler, + // do not log it twice + if (e !== err) { + logError(e, null, 'config.errorHandler'); + } + } + } + logError(err, vm, info); + } + + function logError (err, vm, info) { + { + warn(("Error in " + info + ": \"" + (err.toString()) + "\""), vm); + } + /* istanbul ignore else */ + if ((inBrowser || inWeex) && typeof console !== 'undefined') { + console.error(err); + } else { + throw err + } + } + + /* */ + + var isUsingMicroTask = false; + + var callbacks = []; + var pending = false; + + function flushCallbacks () { + pending = false; + var copies = callbacks.slice(0); + callbacks.length = 0; + for (var i = 0; i < copies.length; i++) { + copies[i](); + } + } + + // Here we have async deferring wrappers using microtasks. + // In 2.5 we used (macro) tasks (in combination with microtasks). + // However, it has subtle problems when state is changed right before repaint + // (e.g. #6813, out-in transitions). + // Also, using (macro) tasks in event handler would cause some weird behaviors + // that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109). + // So we now use microtasks everywhere, again. + // A major drawback of this tradeoff is that there are some scenarios + // where microtasks have too high a priority and fire in between supposedly + // sequential events (e.g. #4521, #6690, which have workarounds) + // or even between bubbling of the same event (#6566). + var timerFunc; + + // The nextTick behavior leverages the microtask queue, which can be accessed + // via either native Promise.then or MutationObserver. + // MutationObserver has wider support, however it is seriously bugged in + // UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It + // completely stops working after triggering a few times... so, if native + // Promise is available, we will use it: + /* istanbul ignore next, $flow-disable-line */ + if (typeof Promise !== 'undefined' && isNative(Promise)) { + var p = Promise.resolve(); + timerFunc = function () { + p.then(flushCallbacks); + // In problematic UIWebViews, Promise.then doesn't completely break, but + // it can get stuck in a weird state where callbacks are pushed into the + // microtask queue but the queue isn't being flushed, until the browser + // needs to do some other work, e.g. handle a timer. Therefore we can + // "force" the microtask queue to be flushed by adding an empty timer. + if (isIOS) { setTimeout(noop); } + }; + isUsingMicroTask = true; + } else if (!isIE && typeof MutationObserver !== 'undefined' && ( + isNative(MutationObserver) || + // PhantomJS and iOS 7.x + MutationObserver.toString() === '[object MutationObserverConstructor]' + )) { + // Use MutationObserver where native Promise is not available, + // e.g. PhantomJS, iOS7, Android 4.4 + // (#6466 MutationObserver is unreliable in IE11) + var counter = 1; + var observer = new MutationObserver(flushCallbacks); + var textNode = document.createTextNode(String(counter)); + observer.observe(textNode, { + characterData: true + }); + timerFunc = function () { + counter = (counter + 1) % 2; + textNode.data = String(counter); + }; + isUsingMicroTask = true; + } else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) { + // Fallback to setImmediate. + // Techinically it leverages the (macro) task queue, + // but it is still a better choice than setTimeout. + timerFunc = function () { + setImmediate(flushCallbacks); + }; + } else { + // Fallback to setTimeout. + timerFunc = function () { + setTimeout(flushCallbacks, 0); + }; + } + + function nextTick (cb, ctx) { + var _resolve; + callbacks.push(function () { + if (cb) { + try { + cb.call(ctx); + } catch (e) { + handleError(e, ctx, 'nextTick'); + } + } else if (_resolve) { + _resolve(ctx); + } + }); + if (!pending) { + pending = true; + timerFunc(); + } + // $flow-disable-line + if (!cb && typeof Promise !== 'undefined') { + return new Promise(function (resolve) { + _resolve = resolve; + }) + } + } + + /* */ + + var mark; + var measure; + + { + var perf = inBrowser && window.performance; + /* istanbul ignore if */ + if ( + perf && + perf.mark && + perf.measure && + perf.clearMarks && + perf.clearMeasures + ) { + mark = function (tag) { return perf.mark(tag); }; + measure = function (name, startTag, endTag) { + perf.measure(name, startTag, endTag); + perf.clearMarks(startTag); + perf.clearMarks(endTag); + // perf.clearMeasures(name) + }; + } + } + + /* not type checking this file because flow doesn't play well with Proxy */ + + var initProxy; + + { + var allowedGlobals = makeMap( + 'Infinity,undefined,NaN,isFinite,isNaN,' + + 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' + + 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' + + 'require' // for Webpack/Browserify + ); + + var warnNonPresent = function (target, key) { + warn( + "Property or method \"" + key + "\" is not defined on the instance but " + + 'referenced during render. Make sure that this property is reactive, ' + + 'either in the data option, or for class-based components, by ' + + 'initializing the property. ' + + 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.', + target + ); + }; + + var warnReservedPrefix = function (target, key) { + warn( + "Property \"" + key + "\" must be accessed with \"$data." + key + "\" because " + + 'properties starting with "$" or "_" are not proxied in the Vue instance to ' + + 'prevent conflicts with Vue internals' + + 'See: https://vuejs.org/v2/api/#data', + target + ); + }; + + var hasProxy = + typeof Proxy !== 'undefined' && isNative(Proxy); + + if (hasProxy) { + var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact'); + config.keyCodes = new Proxy(config.keyCodes, { + set: function set (target, key, value) { + if (isBuiltInModifier(key)) { + warn(("Avoid overwriting built-in modifier in config.keyCodes: ." + key)); + return false + } else { + target[key] = value; + return true + } + } + }); + } + + var hasHandler = { + has: function has (target, key) { + var has = key in target; + var isAllowed = allowedGlobals(key) || + (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data)); + if (!has && !isAllowed) { + if (key in target.$data) { warnReservedPrefix(target, key); } + else { warnNonPresent(target, key); } + } + return has || !isAllowed + } + }; + + var getHandler = { + get: function get (target, key) { + if (typeof key === 'string' && !(key in target)) { + if (key in target.$data) { warnReservedPrefix(target, key); } + else { warnNonPresent(target, key); } + } + return target[key] + } + }; + + initProxy = function initProxy (vm) { + if (hasProxy) { + // determine which proxy handler to use + var options = vm.$options; + var handlers = options.render && options.render._withStripped + ? getHandler + : hasHandler; + vm._renderProxy = new Proxy(vm, handlers); + } else { + vm._renderProxy = vm; + } + }; + } + + /* */ + + var seenObjects = new _Set(); + + /** + * Recursively traverse an object to evoke all converted + * getters, so that every nested property inside the object + * is collected as a "deep" dependency. + */ + function traverse (val) { + _traverse(val, seenObjects); + seenObjects.clear(); + } + + function _traverse (val, seen) { + var i, keys; + var isA = Array.isArray(val); + if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) { + return + } + if (val.__ob__) { + var depId = val.__ob__.dep.id; + if (seen.has(depId)) { + return + } + seen.add(depId); + } + if (isA) { + i = val.length; + while (i--) { _traverse(val[i], seen); } + } else { + keys = Object.keys(val); + i = keys.length; + while (i--) { _traverse(val[keys[i]], seen); } + } + } + + /* */ + + var normalizeEvent = cached(function (name) { + var passive = name.charAt(0) === '&'; + name = passive ? name.slice(1) : name; + var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first + name = once$$1 ? name.slice(1) : name; + var capture = name.charAt(0) === '!'; + name = capture ? name.slice(1) : name; + return { + name: name, + once: once$$1, + capture: capture, + passive: passive + } + }); + + function createFnInvoker (fns, vm) { + function invoker () { + var arguments$1 = arguments; + + var fns = invoker.fns; + if (Array.isArray(fns)) { + var cloned = fns.slice(); + for (var i = 0; i < cloned.length; i++) { + invokeWithErrorHandling(cloned[i], null, arguments$1, vm, "v-on handler"); + } + } else { + // return handler return value for single handlers + return invokeWithErrorHandling(fns, null, arguments, vm, "v-on handler") + } + } + invoker.fns = fns; + return invoker + } + + function updateListeners ( + on, + oldOn, + add, + remove$$1, + createOnceHandler, + vm + ) { + var name, def$$1, cur, old, event; + for (name in on) { + def$$1 = cur = on[name]; + old = oldOn[name]; + event = normalizeEvent(name); + if (isUndef(cur)) { + warn( + "Invalid handler for event \"" + (event.name) + "\": got " + String(cur), + vm + ); + } else if (isUndef(old)) { + if (isUndef(cur.fns)) { + cur = on[name] = createFnInvoker(cur, vm); + } + if (isTrue(event.once)) { + cur = on[name] = createOnceHandler(event.name, cur, event.capture); + } + add(event.name, cur, event.capture, event.passive, event.params); + } else if (cur !== old) { + old.fns = cur; + on[name] = old; + } + } + for (name in oldOn) { + if (isUndef(on[name])) { + event = normalizeEvent(name); + remove$$1(event.name, oldOn[name], event.capture); + } + } + } + + /* */ + + function mergeVNodeHook (def, hookKey, hook) { + if (def instanceof VNode) { + def = def.data.hook || (def.data.hook = {}); + } + var invoker; + var oldHook = def[hookKey]; + + function wrappedHook () { + hook.apply(this, arguments); + // important: remove merged hook to ensure it's called only once + // and prevent memory leak + remove(invoker.fns, wrappedHook); + } + + if (isUndef(oldHook)) { + // no existing hook + invoker = createFnInvoker([wrappedHook]); + } else { + /* istanbul ignore if */ + if (isDef(oldHook.fns) && isTrue(oldHook.merged)) { + // already a merged invoker + invoker = oldHook; + invoker.fns.push(wrappedHook); + } else { + // existing plain hook + invoker = createFnInvoker([oldHook, wrappedHook]); + } + } + + invoker.merged = true; + def[hookKey] = invoker; + } + + /* */ + + function extractPropsFromVNodeData ( + data, + Ctor, + tag + ) { + // we are only extracting raw values here. + // validation and default values are handled in the child + // component itself. + var propOptions = Ctor.options.props; + if (isUndef(propOptions)) { + return + } + var res = {}; + var attrs = data.attrs; + var props = data.props; + if (isDef(attrs) || isDef(props)) { + for (var key in propOptions) { + var altKey = hyphenate(key); + { + var keyInLowerCase = key.toLowerCase(); + if ( + key !== keyInLowerCase && + attrs && hasOwn(attrs, keyInLowerCase) + ) { + tip( + "Prop \"" + keyInLowerCase + "\" is passed to component " + + (formatComponentName(tag || Ctor)) + ", but the declared prop name is" + + " \"" + key + "\". " + + "Note that HTML attributes are case-insensitive and camelCased " + + "props need to use their kebab-case equivalents when using in-DOM " + + "templates. You should probably use \"" + altKey + "\" instead of \"" + key + "\"." + ); + } + } + checkProp(res, props, key, altKey, true) || + checkProp(res, attrs, key, altKey, false); + } + } + return res + } + + function checkProp ( + res, + hash, + key, + altKey, + preserve + ) { + if (isDef(hash)) { + if (hasOwn(hash, key)) { + res[key] = hash[key]; + if (!preserve) { + delete hash[key]; + } + return true + } else if (hasOwn(hash, altKey)) { + res[key] = hash[altKey]; + if (!preserve) { + delete hash[altKey]; + } + return true + } + } + return false + } + + /* */ + + // The template compiler attempts to minimize the need for normalization by + // statically analyzing the template at compile time. + // + // For plain HTML markup, normalization can be completely skipped because the + // generated render function is guaranteed to return Array. There are + // two cases where extra normalization is needed: + + // 1. When the children contains components - because a functional component + // may return an Array instead of a single root. In this case, just a simple + // normalization is needed - if any child is an Array, we flatten the whole + // thing with Array.prototype.concat. It is guaranteed to be only 1-level deep + // because functional components already normalize their own children. + function simpleNormalizeChildren (children) { + for (var i = 0; i < children.length; i++) { + if (Array.isArray(children[i])) { + return Array.prototype.concat.apply([], children) + } + } + return children + } + + // 2. When the children contains constructs that always generated nested Arrays, + // e.g.