{
  "errors": [],
  "warnings": [],
  "version": "2.2.1",
  "hash": "584918919c95ca3c4be9",
  "time": 2133,
  "publicPath": ".",
  "assetsByChunkName": {
    "main": "vue-context-menu.js"
  },
  "assets": [
    {
      "name": "vue-context-menu.js",
      "size": 8629,
      "chunks": [
        0
      ],
      "chunkNames": [
        "main"
      ],
      "emitted": true
    }
  ],
  "entrypoints": {
    "main": {
      "chunks": [
        0
      ],
      "assets": [
        "vue-context-menu.js"
      ]
    }
  },
  "chunks": [
    {
      "id": 0,
      "rendered": true,
      "initial": true,
      "entry": true,
      "extraAsync": false,
      "size": 17511,
      "names": [
        "main"
      ],
      "files": [
        "vue-context-menu.js"
      ],
      "hash": "0f0334153172afd75c99",
      "parents": [],
      "modules": [
        {
          "id": 0,
          "identifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/index.js!/Users/vin/@vmaimone/vue-context-menu/src/index.vue",
          "name": "./src/index.vue",
          "index": 1,
          "index2": 9,
          "size": 618,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/vin/@vmaimone/vue-context-menu/node_modules/babel-loader/lib/index.js!/Users/vin/@vmaimone/vue-context-menu/src/index.js",
          "issuerId": 10,
          "issuerName": "./src/index.js",
          "profile": {
            "factory": 10,
            "building": 63
          },
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 10,
              "moduleIdentifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/babel-loader/lib/index.js!/Users/vin/@vmaimone/vue-context-menu/src/index.js",
              "module": "./src/index.js",
              "moduleName": "./src/index.js",
              "type": "cjs require",
              "userRequest": "./index.vue",
              "loc": "3:21-43"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "depth": 1,
          "source": "\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!./../node_modules/vue-loader/lib/style-rewriter?{\\\"id\\\":\\\"data-v-2e783b6c\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!./ctx-menu.css\")\n\nvar Component = require(\"!./../node_modules/vue-loader/lib/component-normalizer\")(\n  /* script */\n  require(\"!!babel-loader!./ctx-menu.js\"),\n  /* template */\n  require(\"!!./../node_modules/vue-loader/lib/template-compiler?{\\\"id\\\":\\\"data-v-2e783b6c\\\"}!./../node_modules/vue-loader/lib/selector?type=template&index=0!./index.vue\"),\n  /* scopeId */\n  null,\n  /* cssModules */\n  null\n)\n\nmodule.exports = Component.exports\n"
        },
        {
          "id": 1,
          "identifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/babel-loader/lib/index.js!/Users/vin/@vmaimone/vue-context-menu/src/body-click-listener.js",
          "name": "./src/body-click-listener.js",
          "index": 9,
          "index2": 6,
          "size": 827,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/vin/@vmaimone/vue-context-menu/node_modules/babel-loader/lib/index.js!/Users/vin/@vmaimone/vue-context-menu/src/ctx-menu.js",
          "issuerId": 2,
          "issuerName": "./~/babel-loader/lib!./src/ctx-menu.js",
          "profile": {
            "factory": 9,
            "building": 600
          },
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 2,
              "moduleIdentifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/babel-loader/lib/index.js!/Users/vin/@vmaimone/vue-context-menu/src/ctx-menu.js",
              "module": "./~/babel-loader/lib!./src/ctx-menu.js",
              "moduleName": "./~/babel-loader/lib!./src/ctx-menu.js",
              "type": "cjs require",
              "userRequest": "./body-click-listener",
              "loc": "7:25-57"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "depth": 3,
          "source": "'use strict';\n\nmodule.exports = function createBodyClickListener(fn) {\n  var isListening = false;\n\n  return {\n    get isListening() {\n      return isListening;\n    },\n\n    start: function start(cb) {\n      window.addEventListener('click', _onclick, true);\n      window.addEventListener('keyup', _onescape, true);\n      isListening = true;\n      if (typeof cb === 'function') cb();\n    },\n    stop: function stop(cb) {\n      window.removeEventListener('click', _onclick, true);\n      window.removeEventListener('keyup', _onescape, true);\n      isListening = false;\n      if (typeof cb === 'function') cb();\n    }\n  };\n\n  function _onclick(e) {\n    e.preventDefault();\n    if (typeof fn === 'function') fn(e);\n    try {\n      stop();\n    } catch (e) {}\n  }\n\n  function _onescape(e) {\n    if (e.keyCode === 27) _onclick(e);\n  }\n};"
        },
        {
          "id": 2,
          "identifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/babel-loader/lib/index.js!/Users/vin/@vmaimone/vue-context-menu/src/ctx-menu.js",
          "name": "./~/babel-loader/lib!./src/ctx-menu.js",
          "index": 8,
          "index2": 7,
          "size": 2172,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/index.js!/Users/vin/@vmaimone/vue-context-menu/src/index.vue",
          "issuerId": 0,
          "issuerName": "./src/index.vue",
          "profile": {
            "factory": 7,
            "building": 225
          },
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 0,
              "moduleIdentifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/index.js!/Users/vin/@vmaimone/vue-context-menu/src/index.vue",
              "module": "./src/index.vue",
              "moduleName": "./src/index.vue",
              "type": "cjs require",
              "userRequest": "!!babel-loader!./ctx-menu.js",
              "loc": "7:2-41"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "depth": 2,
          "source": "'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _bodyClickListener = require('./body-click-listener');\n\nvar _bodyClickListener2 = _interopRequireDefault(_bodyClickListener);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'context-menu',\n  props: {\n    id: {\n      type: String,\n      default: 'default-ctx'\n    }\n  },\n  data: function data() {\n    var _this = this;\n\n    return {\n      locals: {},\n      align: 'left',\n      ctxTop: 0,\n      ctxLeft: 0,\n      ctxVisible: false,\n      bodyClickListener: (0, _bodyClickListener2.default)(function (e) {\n        var isOpen = !!_this.ctxVisible;\n        var outsideClick = isOpen && !_this.$el.contains(e.target);\n\n        if (outsideClick) {\n          if (e.which !== 1) {\n            e.preventDefault();\n            e.stopPropagation();\n            return false;\n          } else {\n\n            _this.ctxVisible = false;\n            _this.$emit('ctx-cancel', _this.locals);\n            e.stopPropagation();\n          }\n        } else {\n          _this.ctxVisible = false;\n          _this.$emit('ctx-close', _this.locals);\n        }\n      })\n    };\n  },\n\n  methods: {\n    setPositionFromEvent: function setPositionFromEvent(e) {\n      var pageX = e.pageX,\n          pageY = e.pageY;\n\n      this.ctxTop = pageY - document.body.scrollTop;\n      this.ctxLeft = pageX;\n    },\n    open: function open(e, data) {\n      if (this.ctxVisible) this.ctxVisible = false;\n      this.ctxVisible = true;\n      this.$emit('ctx-open', this.locals = data || {});\n      this.setPositionFromEvent(e);\n      this.$el.setAttribute('tab-index', -1);\n      this.bodyClickListener.start();\n      return this;\n    }\n  },\n  watch: {\n    ctxVisible: function ctxVisible(newVal, oldVal) {\n      if (oldVal === true && newVal === false) {\n        this.bodyClickListener.stop(function (e) {});\n      }\n    }\n  },\n  computed: {\n    ctxStyle: function ctxStyle() {\n      return {\n        'display': this.ctxVisible ? 'block' : 'none',\n        'top': (this.ctxTop || 0) + 'px',\n        'left': (this.ctxLeft || 0) + 'px'\n      };\n    }\n  }\n};"
        },
        {
          "id": 3,
          "identifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/css-loader/index.js?minimize!/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!/Users/vin/@vmaimone/vue-context-menu/src/ctx-menu.css",
          "name": "./~/css-loader?minimize!./~/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!./src/ctx-menu.css",
          "index": 3,
          "index2": 1,
          "size": 1888,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-style-loader/index.js!/Users/vin/@vmaimone/vue-context-menu/node_modules/css-loader/index.js?minimize!/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!/Users/vin/@vmaimone/vue-context-menu/src/ctx-menu.css",
          "issuerId": 7,
          "issuerName": "./~/vue-style-loader!./~/css-loader?minimize!./~/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!./src/ctx-menu.css",
          "profile": {
            "factory": 3,
            "building": 834
          },
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 7,
              "moduleIdentifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-style-loader/index.js!/Users/vin/@vmaimone/vue-context-menu/node_modules/css-loader/index.js?minimize!/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!/Users/vin/@vmaimone/vue-context-menu/src/ctx-menu.css",
              "module": "./~/vue-style-loader!./~/css-loader?minimize!./~/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!./src/ctx-menu.css",
              "moduleName": "./~/vue-style-loader!./~/css-loader?minimize!./~/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!./src/ctx-menu.css",
              "type": "cjs require",
              "userRequest": "!!./../node_modules/css-loader/index.js?minimize!./../node_modules/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!./ctx-menu.css",
              "loc": "4:14-211"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "depth": 3,
          "source": "exports = module.exports = require(\"./../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \".ctx{position:relative}.ctx-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:.9rem;color:#373a3c;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem;-moz-box-shadow:0 0 5px #ccc;-webkit-box-shadow:0 0 5px #ccc;box-shadow:0 0 5px #ccc}.ctx-divider{height:1px;margin:.5rem 0;overflow:hidden;background-color:#e5e5e5}.ctx-item{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.5;color:#373a3c;text-align:inherit;white-space:nowrap;background:none;border:0;cursor:default}.ctx-item:focus,.ctx-item:hover{color:#2b2d2f;text-decoration:none;background-color:#f5f5f5;cursor:normal}.ctx-item.active,.ctx-item.active:focus,.ctx-item.active:hover{color:#fff;text-decoration:none;background-color:#0275d8;outline:0}.ctx-item.disabled,.ctx-item.disabled:focus,.ctx-item.disabled:hover{color:#818a91}.ctx-item.disabled:focus,.ctx-item.disabled:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:\\\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\\\"}.open>.ctx-menu{display:block}.open>a{outline:0}.ctx-menu-right{right:0;left:auto}.ctx-menu-left{right:auto;left:0}.ctx-header{display:block;padding:3px 20px;font-size:.9rem;line-height:1.5;color:#818a91;white-space:nowrap}.ctx-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.ctx-menu{right:0;left:auto}.ctx-menu-container{position:fixed;padding:0;border:1px solid #bbb;background-color:#f5f5f5;z-index:99999;box-shadow:0 5px 11px 0 rgba(0,0,0,.18),0 4px 15px 0 rgba(0,0,0,.15)}\", \"\"]);\n\n// exports\n"
        },
        {
          "id": 4,
          "identifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/css-loader/lib/css-base.js",
          "name": "./~/css-loader/lib/css-base.js",
          "index": 4,
          "index2": 0,
          "size": 1506,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/vin/@vmaimone/vue-context-menu/node_modules/css-loader/index.js?minimize!/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!/Users/vin/@vmaimone/vue-context-menu/src/ctx-menu.css",
          "issuerId": 3,
          "issuerName": "./~/css-loader?minimize!./~/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!./src/ctx-menu.css",
          "profile": {
            "factory": 1,
            "building": 7
          },
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 3,
              "moduleIdentifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/css-loader/index.js?minimize!/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!/Users/vin/@vmaimone/vue-context-menu/src/ctx-menu.css",
              "module": "./~/css-loader?minimize!./~/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!./src/ctx-menu.css",
              "moduleName": "./~/css-loader?minimize!./~/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!./src/ctx-menu.css",
              "type": "cjs require",
              "userRequest": "./../node_modules/css-loader/lib/css-base.js",
              "loc": "1:27-82"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "depth": 4,
          "source": "/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\n// css base code, injected by the css-loader\r\nmodule.exports = function() {\r\n\tvar list = [];\r\n\r\n\t// return the list of modules as css string\r\n\tlist.toString = function toString() {\r\n\t\tvar result = [];\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar item = this[i];\r\n\t\t\tif(item[2]) {\r\n\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\r\n\t\t\t} else {\r\n\t\t\t\tresult.push(item[1]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result.join(\"\");\r\n\t};\r\n\r\n\t// import a list of modules into the list\r\n\tlist.i = function(modules, mediaQuery) {\r\n\t\tif(typeof modules === \"string\")\r\n\t\t\tmodules = [[null, modules, \"\"]];\r\n\t\tvar alreadyImportedModules = {};\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar id = this[i][0];\r\n\t\t\tif(typeof id === \"number\")\r\n\t\t\t\talreadyImportedModules[id] = true;\r\n\t\t}\r\n\t\tfor(i = 0; i < modules.length; i++) {\r\n\t\t\tvar item = modules[i];\r\n\t\t\t// skip already imported module\r\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\r\n\t\t\t//  when a module is imported multiple times with different media queries.\r\n\t\t\t//  I hope this will never occur (Hey this way we have smaller bundles)\r\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\r\n\t\t\t\tif(mediaQuery && !item[2]) {\r\n\t\t\t\t\titem[2] = mediaQuery;\r\n\t\t\t\t} else if(mediaQuery) {\r\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\r\n\t\t\t\t}\r\n\t\t\t\tlist.push(item);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\treturn list;\r\n};\r\n"
        },
        {
          "id": 5,
          "identifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/lib/component-normalizer.js",
          "name": "./~/vue-loader/lib/component-normalizer.js",
          "index": 7,
          "index2": 5,
          "size": 1117,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/index.js!/Users/vin/@vmaimone/vue-context-menu/src/index.vue",
          "issuerId": 0,
          "issuerName": "./src/index.vue",
          "profile": {
            "factory": 8,
            "building": 116
          },
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 0,
              "moduleIdentifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/index.js!/Users/vin/@vmaimone/vue-context-menu/src/index.vue",
              "module": "./src/index.vue",
              "moduleName": "./src/index.vue",
              "type": "cjs require",
              "userRequest": "!./../node_modules/vue-loader/lib/component-normalizer",
              "loc": "5:16-81"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "depth": 2,
          "source": "module.exports = function normalizeComponent (\n  rawScriptExports,\n  compiledTemplate,\n  scopeId,\n  cssModules\n) {\n  var esModule\n  var scriptExports = rawScriptExports = rawScriptExports || {}\n\n  // ES6 modules interop\n  var type = typeof rawScriptExports.default\n  if (type === 'object' || type === 'function') {\n    esModule = rawScriptExports\n    scriptExports = rawScriptExports.default\n  }\n\n  // Vue.extend constructor export interop\n  var options = typeof scriptExports === 'function'\n    ? scriptExports.options\n    : scriptExports\n\n  // render functions\n  if (compiledTemplate) {\n    options.render = compiledTemplate.render\n    options.staticRenderFns = compiledTemplate.staticRenderFns\n  }\n\n  // scopedId\n  if (scopeId) {\n    options._scopeId = scopeId\n  }\n\n  // inject cssModules\n  if (cssModules) {\n    var computed = options.computed || (options.computed = {})\n    Object.keys(cssModules).forEach(function (key) {\n      var module = cssModules[key]\n      computed[key] = function () { return module }\n    })\n  }\n\n  return {\n    esModule: esModule,\n    exports: scriptExports,\n    options: options\n  }\n}\n"
        },
        {
          "id": 6,
          "identifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/lib/template-compiler.js?{\"id\":\"data-v-2e783b6c\"}!/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/lib/selector.js?type=template&index=0!/Users/vin/@vmaimone/vue-context-menu/src/index.vue",
          "name": "./~/vue-loader/lib/template-compiler.js?{\"id\":\"data-v-2e783b6c\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/index.vue",
          "index": 10,
          "index2": 8,
          "size": 790,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/index.js!/Users/vin/@vmaimone/vue-context-menu/src/index.vue",
          "issuerId": 0,
          "issuerName": "./src/index.vue",
          "profile": {
            "factory": 9,
            "building": 106
          },
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 0,
              "moduleIdentifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/index.js!/Users/vin/@vmaimone/vue-context-menu/src/index.vue",
              "module": "./src/index.vue",
              "moduleName": "./src/index.vue",
              "type": "cjs require",
              "userRequest": "!!./../node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-2e783b6c\"}!./../node_modules/vue-loader/lib/selector?type=template&index=0!./index.vue",
              "loc": "9:2-170"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "depth": 2,
          "source": "module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n  return _c('div', {\n    ref: \"contextMenu\",\n    staticClass: \"ctx-menu-container\",\n    style: (_vm.ctxStyle),\n    attrs: {\n      \"id\": _vm.id\n    },\n    on: {\n      \"click\": function($event) {\n        $event.stopPropagation();\n      },\n      \"contextmenu\": function($event) {\n        $event.stopPropagation();\n      }\n    }\n  }, [_c('div', {\n    staticClass: \"ctx open\",\n    staticStyle: {\n      \"background-color\": \"transparent\"\n    }\n  }, [_c('ul', {\n    staticClass: \"ctx-menu\",\n    class: {\n      'ctx-menu-right': _vm.align === 'right',\n        'ctx-menu-left': _vm.align === 'left'\n    },\n    attrs: {\n      \"role\": \"menu\"\n    }\n  }, [_vm._t(\"default\")], 2)])])\n},staticRenderFns: []}"
        },
        {
          "id": 7,
          "identifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-style-loader/index.js!/Users/vin/@vmaimone/vue-context-menu/node_modules/css-loader/index.js?minimize!/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!/Users/vin/@vmaimone/vue-context-menu/src/ctx-menu.css",
          "name": "./~/vue-style-loader!./~/css-loader?minimize!./~/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!./src/ctx-menu.css",
          "index": 2,
          "index2": 4,
          "size": 1348,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/index.js!/Users/vin/@vmaimone/vue-context-menu/src/index.vue",
          "issuerId": 0,
          "issuerName": "./src/index.vue",
          "profile": {
            "factory": 234,
            "building": 5
          },
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 0,
              "moduleIdentifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/index.js!/Users/vin/@vmaimone/vue-context-menu/src/index.vue",
              "module": "./src/index.vue",
              "moduleName": "./src/index.vue",
              "type": "cjs require",
              "userRequest": "!!vue-style-loader!css-loader?minimize!./../node_modules/vue-loader/lib/style-rewriter?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!./ctx-menu.css",
              "loc": "3:0-184"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "depth": 2,
          "source": "// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!./../node_modules/css-loader/index.js?minimize!./../node_modules/vue-loader/lib/style-rewriter.js?{\\\"id\\\":\\\"data-v-2e783b6c\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!./ctx-menu.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar update = require(\"!./../node_modules/vue-style-loader/lib/addStylesClient.js\")(\"0df30a58\", content, true);\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!./../node_modules/css-loader/index.js?minimize!./../node_modules/vue-loader/lib/style-rewriter.js?{\\\"id\\\":\\\"data-v-2e783b6c\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!./ctx-menu.css\", function() {\n     var newContent = require(\"!!./../node_modules/css-loader/index.js?minimize!./../node_modules/vue-loader/lib/style-rewriter.js?{\\\"id\\\":\\\"data-v-2e783b6c\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!./ctx-menu.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}"
        },
        {
          "id": 8,
          "identifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-style-loader/lib/addStylesClient.js",
          "name": "./~/vue-style-loader/lib/addStylesClient.js",
          "index": 5,
          "index2": 3,
          "size": 6309,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-style-loader/index.js!/Users/vin/@vmaimone/vue-context-menu/node_modules/css-loader/index.js?minimize!/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!/Users/vin/@vmaimone/vue-context-menu/src/ctx-menu.css",
          "issuerId": 7,
          "issuerName": "./~/vue-style-loader!./~/css-loader?minimize!./~/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!./src/ctx-menu.css",
          "profile": {
            "factory": 575,
            "building": 43
          },
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 7,
              "moduleIdentifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-style-loader/index.js!/Users/vin/@vmaimone/vue-context-menu/node_modules/css-loader/index.js?minimize!/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!/Users/vin/@vmaimone/vue-context-menu/src/ctx-menu.css",
              "module": "./~/vue-style-loader!./~/css-loader?minimize!./~/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!./src/ctx-menu.css",
              "moduleName": "./~/vue-style-loader!./~/css-loader?minimize!./~/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!./src/ctx-menu.css",
              "type": "cjs require",
              "userRequest": "!./../node_modules/vue-style-loader/lib/addStylesClient.js",
              "loc": "8:13-82"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "depth": 3,
          "source": "/*\n  MIT License http://www.opensource.org/licenses/mit-license.php\n  Author Tobias Koppers @sokra\n  Modified by Evan You @yyx990803\n*/\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\nvar listToStyles = require('./listToStyles')\n\n/*\ntype StyleObject = {\n  id: number;\n  parts: Array<StyleObjectPart>\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 () {}\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nmodule.exports = function (parentId, list, _isProduction) {\n  isProduction = _isProduction\n\n  var styles = listToStyles(parentId, list)\n  addStylesToDom(styles)\n\n  return function update (newList) {\n    var mayRemove = []\n    for (var i = 0; i < styles.length; i++) {\n      var item = styles[i]\n      var domStyle = stylesInDom[item.id]\n      domStyle.refs--\n      mayRemove.push(domStyle)\n    }\n    if (newList) {\n      styles = listToStyles(parentId, newList)\n      addStylesToDom(styles)\n    } else {\n      styles = []\n    }\n    for (var i = 0; i < mayRemove.length; i++) {\n      var domStyle = mayRemove[i]\n      if (domStyle.refs === 0) {\n        for (var j = 0; j < domStyle.parts.length; j++) {\n          domStyle.parts[j]()\n        }\n        delete stylesInDom[domStyle.id]\n      }\n    }\n  }\n}\n\nfunction addStylesToDom (styles /* Array<StyleObject> */) {\n  for (var i = 0; i < styles.length; i++) {\n    var item = styles[i]\n    var domStyle = stylesInDom[item.id]\n    if (domStyle) {\n      domStyle.refs++\n      for (var j = 0; j < domStyle.parts.length; j++) {\n        domStyle.parts[j](item.parts[j])\n      }\n      for (; j < item.parts.length; j++) {\n        domStyle.parts.push(addStyle(item.parts[j]))\n      }\n      if (domStyle.parts.length > item.parts.length) {\n        domStyle.parts.length = item.parts.length\n      }\n    } else {\n      var parts = []\n      for (var j = 0; j < item.parts.length; j++) {\n        parts.push(addStyle(item.parts[j]))\n      }\n      stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }\n    }\n  }\n}\n\nfunction 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 = { css: css, media: media, sourceMap: sourceMap }\n    if (!newStyles[id]) {\n      part.id = parentId + ':0'\n      styles.push(newStyles[id] = { id: id, parts: [part] })\n    } else {\n      part.id = parentId + ':' + newStyles[id].parts.length\n      newStyles[id].parts.push(part)\n    }\n  }\n  return styles\n}\n\nfunction createStyleElement () {\n  var styleElement = document.createElement('style')\n  styleElement.type = 'text/css'\n  head.appendChild(styleElement)\n  return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */) {\n  var update, remove\n  var styleElement = document.querySelector('style[data-vue-ssr-id~=\"' + obj.id + '\"]')\n  var hasSSR = styleElement != null\n\n  // if in production mode and style is already provided by SSR,\n  // simply do nothing.\n  if (hasSSR && isProduction) {\n    return noop\n  }\n\n  if (isOldIE) {\n    // use singleton mode for IE9.\n    var styleIndex = singletonCounter++\n    styleElement = singletonElement || (singletonElement = createStyleElement())\n    update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)\n    remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)\n  } else {\n    // use multi-style-tag mode in all other cases\n    styleElement = styleElement || createStyleElement()\n    update = applyToTag.bind(null, styleElement)\n    remove = function () {\n      styleElement.parentNode.removeChild(styleElement)\n    }\n  }\n\n  if (!hasSSR) {\n    update(obj)\n  }\n\n  return function updateStyle (newObj /* StyleObjectPart */) {\n    if (newObj) {\n      if (newObj.css === obj.css &&\n          newObj.media === obj.media &&\n          newObj.sourceMap === obj.sourceMap) {\n        return\n      }\n      update(obj = newObj)\n    } else {\n      remove()\n    }\n  }\n}\n\nvar replaceText = (function () {\n  var textStore = []\n\n  return function (index, replacement) {\n    textStore[index] = replacement\n    return textStore.filter(Boolean).join('\\n')\n  }\n})()\n\nfunction applyToSingletonTag (styleElement, index, remove, obj) {\n  var css = remove ? '' : obj.css\n\n  if (styleElement.styleSheet) {\n    styleElement.styleSheet.cssText = replaceText(index, css)\n  } else {\n    var cssNode = document.createTextNode(css)\n    var childNodes = styleElement.childNodes\n    if (childNodes[index]) styleElement.removeChild(childNodes[index])\n    if (childNodes.length) {\n      styleElement.insertBefore(cssNode, childNodes[index])\n    } else {\n      styleElement.appendChild(cssNode)\n    }\n  }\n}\n\nfunction applyToTag (styleElement, obj) {\n  var css = obj.css\n  var media = obj.media\n  var sourceMap = obj.sourceMap\n\n  if (media) {\n    styleElement.setAttribute('media', media)\n  }\n\n  if (sourceMap) {\n    // https://developer.chrome.com/devtools/docs/javascript-debugging\n    // this makes source maps inside style tags work properly in Chrome\n    css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n    // http://stackoverflow.com/a/26603875\n    css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n  }\n\n  if (styleElement.styleSheet) {\n    styleElement.styleSheet.cssText = css\n  } else {\n    while (styleElement.firstChild) {\n      styleElement.removeChild(styleElement.firstChild)\n    }\n    styleElement.appendChild(document.createTextNode(css))\n  }\n}\n"
        },
        {
          "id": 9,
          "identifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-style-loader/lib/listToStyles.js",
          "name": "./~/vue-style-loader/lib/listToStyles.js",
          "index": 6,
          "index2": 2,
          "size": 639,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-style-loader/lib/addStylesClient.js",
          "issuerId": 8,
          "issuerName": "./~/vue-style-loader/lib/addStylesClient.js",
          "profile": {
            "factory": 1,
            "building": 5
          },
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 8,
              "moduleIdentifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-style-loader/lib/addStylesClient.js",
              "module": "./~/vue-style-loader/lib/addStylesClient.js",
              "moduleName": "./~/vue-style-loader/lib/addStylesClient.js",
              "type": "cjs require",
              "userRequest": "./listToStyles",
              "loc": "17:19-44"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "depth": 4,
          "source": "/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nmodule.exports = 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"
        },
        {
          "id": 10,
          "identifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/babel-loader/lib/index.js!/Users/vin/@vmaimone/vue-context-menu/src/index.js",
          "name": "./src/index.js",
          "index": 0,
          "index2": 10,
          "size": 297,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": null,
          "issuerId": null,
          "issuerName": null,
          "profile": {
            "factory": 45,
            "building": 633
          },
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [],
          "usedExports": true,
          "providedExports": null,
          "depth": 0,
          "source": "'use strict';\n\nvar VueContextMenu = require('./index.vue');\n\nVueContextMenu.install = function install(Vue) {\n  var component = Vue.component('context-menu', VueContextMenu);\n  return component;\n};\n\nwindow.VueContextMenu = VueContextMenu;\n\nmodule.exports = module.exports.default = VueContextMenu;"
        }
      ],
      "filteredModules": 0,
      "origins": [
        {
          "moduleId": 10,
          "module": "/Users/vin/@vmaimone/vue-context-menu/node_modules/babel-loader/lib/index.js!/Users/vin/@vmaimone/vue-context-menu/src/index.js",
          "moduleIdentifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/babel-loader/lib/index.js!/Users/vin/@vmaimone/vue-context-menu/src/index.js",
          "moduleName": "./src/index.js",
          "loc": "",
          "name": "main",
          "reasons": []
        }
      ]
    }
  ],
  "modules": [
    {
      "id": 0,
      "identifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/index.js!/Users/vin/@vmaimone/vue-context-menu/src/index.vue",
      "name": "./src/index.vue",
      "index": 1,
      "index2": 9,
      "size": 618,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/vin/@vmaimone/vue-context-menu/node_modules/babel-loader/lib/index.js!/Users/vin/@vmaimone/vue-context-menu/src/index.js",
      "issuerId": 10,
      "issuerName": "./src/index.js",
      "profile": {
        "factory": 10,
        "building": 63
      },
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 10,
          "moduleIdentifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/babel-loader/lib/index.js!/Users/vin/@vmaimone/vue-context-menu/src/index.js",
          "module": "./src/index.js",
          "moduleName": "./src/index.js",
          "type": "cjs require",
          "userRequest": "./index.vue",
          "loc": "3:21-43"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "depth": 1,
      "source": "\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!./../node_modules/vue-loader/lib/style-rewriter?{\\\"id\\\":\\\"data-v-2e783b6c\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!./ctx-menu.css\")\n\nvar Component = require(\"!./../node_modules/vue-loader/lib/component-normalizer\")(\n  /* script */\n  require(\"!!babel-loader!./ctx-menu.js\"),\n  /* template */\n  require(\"!!./../node_modules/vue-loader/lib/template-compiler?{\\\"id\\\":\\\"data-v-2e783b6c\\\"}!./../node_modules/vue-loader/lib/selector?type=template&index=0!./index.vue\"),\n  /* scopeId */\n  null,\n  /* cssModules */\n  null\n)\n\nmodule.exports = Component.exports\n"
    },
    {
      "id": 1,
      "identifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/babel-loader/lib/index.js!/Users/vin/@vmaimone/vue-context-menu/src/body-click-listener.js",
      "name": "./src/body-click-listener.js",
      "index": 9,
      "index2": 6,
      "size": 827,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/vin/@vmaimone/vue-context-menu/node_modules/babel-loader/lib/index.js!/Users/vin/@vmaimone/vue-context-menu/src/ctx-menu.js",
      "issuerId": 2,
      "issuerName": "./~/babel-loader/lib!./src/ctx-menu.js",
      "profile": {
        "factory": 9,
        "building": 600
      },
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 2,
          "moduleIdentifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/babel-loader/lib/index.js!/Users/vin/@vmaimone/vue-context-menu/src/ctx-menu.js",
          "module": "./~/babel-loader/lib!./src/ctx-menu.js",
          "moduleName": "./~/babel-loader/lib!./src/ctx-menu.js",
          "type": "cjs require",
          "userRequest": "./body-click-listener",
          "loc": "7:25-57"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "depth": 3,
      "source": "'use strict';\n\nmodule.exports = function createBodyClickListener(fn) {\n  var isListening = false;\n\n  return {\n    get isListening() {\n      return isListening;\n    },\n\n    start: function start(cb) {\n      window.addEventListener('click', _onclick, true);\n      window.addEventListener('keyup', _onescape, true);\n      isListening = true;\n      if (typeof cb === 'function') cb();\n    },\n    stop: function stop(cb) {\n      window.removeEventListener('click', _onclick, true);\n      window.removeEventListener('keyup', _onescape, true);\n      isListening = false;\n      if (typeof cb === 'function') cb();\n    }\n  };\n\n  function _onclick(e) {\n    e.preventDefault();\n    if (typeof fn === 'function') fn(e);\n    try {\n      stop();\n    } catch (e) {}\n  }\n\n  function _onescape(e) {\n    if (e.keyCode === 27) _onclick(e);\n  }\n};"
    },
    {
      "id": 2,
      "identifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/babel-loader/lib/index.js!/Users/vin/@vmaimone/vue-context-menu/src/ctx-menu.js",
      "name": "./~/babel-loader/lib!./src/ctx-menu.js",
      "index": 8,
      "index2": 7,
      "size": 2172,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/index.js!/Users/vin/@vmaimone/vue-context-menu/src/index.vue",
      "issuerId": 0,
      "issuerName": "./src/index.vue",
      "profile": {
        "factory": 7,
        "building": 225
      },
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 0,
          "moduleIdentifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/index.js!/Users/vin/@vmaimone/vue-context-menu/src/index.vue",
          "module": "./src/index.vue",
          "moduleName": "./src/index.vue",
          "type": "cjs require",
          "userRequest": "!!babel-loader!./ctx-menu.js",
          "loc": "7:2-41"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "depth": 2,
      "source": "'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _bodyClickListener = require('./body-click-listener');\n\nvar _bodyClickListener2 = _interopRequireDefault(_bodyClickListener);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'context-menu',\n  props: {\n    id: {\n      type: String,\n      default: 'default-ctx'\n    }\n  },\n  data: function data() {\n    var _this = this;\n\n    return {\n      locals: {},\n      align: 'left',\n      ctxTop: 0,\n      ctxLeft: 0,\n      ctxVisible: false,\n      bodyClickListener: (0, _bodyClickListener2.default)(function (e) {\n        var isOpen = !!_this.ctxVisible;\n        var outsideClick = isOpen && !_this.$el.contains(e.target);\n\n        if (outsideClick) {\n          if (e.which !== 1) {\n            e.preventDefault();\n            e.stopPropagation();\n            return false;\n          } else {\n\n            _this.ctxVisible = false;\n            _this.$emit('ctx-cancel', _this.locals);\n            e.stopPropagation();\n          }\n        } else {\n          _this.ctxVisible = false;\n          _this.$emit('ctx-close', _this.locals);\n        }\n      })\n    };\n  },\n\n  methods: {\n    setPositionFromEvent: function setPositionFromEvent(e) {\n      var pageX = e.pageX,\n          pageY = e.pageY;\n\n      this.ctxTop = pageY - document.body.scrollTop;\n      this.ctxLeft = pageX;\n    },\n    open: function open(e, data) {\n      if (this.ctxVisible) this.ctxVisible = false;\n      this.ctxVisible = true;\n      this.$emit('ctx-open', this.locals = data || {});\n      this.setPositionFromEvent(e);\n      this.$el.setAttribute('tab-index', -1);\n      this.bodyClickListener.start();\n      return this;\n    }\n  },\n  watch: {\n    ctxVisible: function ctxVisible(newVal, oldVal) {\n      if (oldVal === true && newVal === false) {\n        this.bodyClickListener.stop(function (e) {});\n      }\n    }\n  },\n  computed: {\n    ctxStyle: function ctxStyle() {\n      return {\n        'display': this.ctxVisible ? 'block' : 'none',\n        'top': (this.ctxTop || 0) + 'px',\n        'left': (this.ctxLeft || 0) + 'px'\n      };\n    }\n  }\n};"
    },
    {
      "id": 3,
      "identifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/css-loader/index.js?minimize!/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!/Users/vin/@vmaimone/vue-context-menu/src/ctx-menu.css",
      "name": "./~/css-loader?minimize!./~/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!./src/ctx-menu.css",
      "index": 3,
      "index2": 1,
      "size": 1888,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-style-loader/index.js!/Users/vin/@vmaimone/vue-context-menu/node_modules/css-loader/index.js?minimize!/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!/Users/vin/@vmaimone/vue-context-menu/src/ctx-menu.css",
      "issuerId": 7,
      "issuerName": "./~/vue-style-loader!./~/css-loader?minimize!./~/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!./src/ctx-menu.css",
      "profile": {
        "factory": 3,
        "building": 834
      },
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 7,
          "moduleIdentifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-style-loader/index.js!/Users/vin/@vmaimone/vue-context-menu/node_modules/css-loader/index.js?minimize!/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!/Users/vin/@vmaimone/vue-context-menu/src/ctx-menu.css",
          "module": "./~/vue-style-loader!./~/css-loader?minimize!./~/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!./src/ctx-menu.css",
          "moduleName": "./~/vue-style-loader!./~/css-loader?minimize!./~/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!./src/ctx-menu.css",
          "type": "cjs require",
          "userRequest": "!!./../node_modules/css-loader/index.js?minimize!./../node_modules/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!./ctx-menu.css",
          "loc": "4:14-211"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "depth": 3,
      "source": "exports = module.exports = require(\"./../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \".ctx{position:relative}.ctx-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:.9rem;color:#373a3c;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem;-moz-box-shadow:0 0 5px #ccc;-webkit-box-shadow:0 0 5px #ccc;box-shadow:0 0 5px #ccc}.ctx-divider{height:1px;margin:.5rem 0;overflow:hidden;background-color:#e5e5e5}.ctx-item{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.5;color:#373a3c;text-align:inherit;white-space:nowrap;background:none;border:0;cursor:default}.ctx-item:focus,.ctx-item:hover{color:#2b2d2f;text-decoration:none;background-color:#f5f5f5;cursor:normal}.ctx-item.active,.ctx-item.active:focus,.ctx-item.active:hover{color:#fff;text-decoration:none;background-color:#0275d8;outline:0}.ctx-item.disabled,.ctx-item.disabled:focus,.ctx-item.disabled:hover{color:#818a91}.ctx-item.disabled:focus,.ctx-item.disabled:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:\\\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\\\"}.open>.ctx-menu{display:block}.open>a{outline:0}.ctx-menu-right{right:0;left:auto}.ctx-menu-left{right:auto;left:0}.ctx-header{display:block;padding:3px 20px;font-size:.9rem;line-height:1.5;color:#818a91;white-space:nowrap}.ctx-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.ctx-menu{right:0;left:auto}.ctx-menu-container{position:fixed;padding:0;border:1px solid #bbb;background-color:#f5f5f5;z-index:99999;box-shadow:0 5px 11px 0 rgba(0,0,0,.18),0 4px 15px 0 rgba(0,0,0,.15)}\", \"\"]);\n\n// exports\n"
    },
    {
      "id": 4,
      "identifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/css-loader/lib/css-base.js",
      "name": "./~/css-loader/lib/css-base.js",
      "index": 4,
      "index2": 0,
      "size": 1506,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/vin/@vmaimone/vue-context-menu/node_modules/css-loader/index.js?minimize!/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!/Users/vin/@vmaimone/vue-context-menu/src/ctx-menu.css",
      "issuerId": 3,
      "issuerName": "./~/css-loader?minimize!./~/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!./src/ctx-menu.css",
      "profile": {
        "factory": 1,
        "building": 7
      },
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 3,
          "moduleIdentifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/css-loader/index.js?minimize!/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!/Users/vin/@vmaimone/vue-context-menu/src/ctx-menu.css",
          "module": "./~/css-loader?minimize!./~/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!./src/ctx-menu.css",
          "moduleName": "./~/css-loader?minimize!./~/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!./src/ctx-menu.css",
          "type": "cjs require",
          "userRequest": "./../node_modules/css-loader/lib/css-base.js",
          "loc": "1:27-82"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "depth": 4,
      "source": "/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\n// css base code, injected by the css-loader\r\nmodule.exports = function() {\r\n\tvar list = [];\r\n\r\n\t// return the list of modules as css string\r\n\tlist.toString = function toString() {\r\n\t\tvar result = [];\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar item = this[i];\r\n\t\t\tif(item[2]) {\r\n\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\r\n\t\t\t} else {\r\n\t\t\t\tresult.push(item[1]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result.join(\"\");\r\n\t};\r\n\r\n\t// import a list of modules into the list\r\n\tlist.i = function(modules, mediaQuery) {\r\n\t\tif(typeof modules === \"string\")\r\n\t\t\tmodules = [[null, modules, \"\"]];\r\n\t\tvar alreadyImportedModules = {};\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar id = this[i][0];\r\n\t\t\tif(typeof id === \"number\")\r\n\t\t\t\talreadyImportedModules[id] = true;\r\n\t\t}\r\n\t\tfor(i = 0; i < modules.length; i++) {\r\n\t\t\tvar item = modules[i];\r\n\t\t\t// skip already imported module\r\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\r\n\t\t\t//  when a module is imported multiple times with different media queries.\r\n\t\t\t//  I hope this will never occur (Hey this way we have smaller bundles)\r\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\r\n\t\t\t\tif(mediaQuery && !item[2]) {\r\n\t\t\t\t\titem[2] = mediaQuery;\r\n\t\t\t\t} else if(mediaQuery) {\r\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\r\n\t\t\t\t}\r\n\t\t\t\tlist.push(item);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\treturn list;\r\n};\r\n"
    },
    {
      "id": 5,
      "identifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/lib/component-normalizer.js",
      "name": "./~/vue-loader/lib/component-normalizer.js",
      "index": 7,
      "index2": 5,
      "size": 1117,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/index.js!/Users/vin/@vmaimone/vue-context-menu/src/index.vue",
      "issuerId": 0,
      "issuerName": "./src/index.vue",
      "profile": {
        "factory": 8,
        "building": 116
      },
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 0,
          "moduleIdentifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/index.js!/Users/vin/@vmaimone/vue-context-menu/src/index.vue",
          "module": "./src/index.vue",
          "moduleName": "./src/index.vue",
          "type": "cjs require",
          "userRequest": "!./../node_modules/vue-loader/lib/component-normalizer",
          "loc": "5:16-81"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "depth": 2,
      "source": "module.exports = function normalizeComponent (\n  rawScriptExports,\n  compiledTemplate,\n  scopeId,\n  cssModules\n) {\n  var esModule\n  var scriptExports = rawScriptExports = rawScriptExports || {}\n\n  // ES6 modules interop\n  var type = typeof rawScriptExports.default\n  if (type === 'object' || type === 'function') {\n    esModule = rawScriptExports\n    scriptExports = rawScriptExports.default\n  }\n\n  // Vue.extend constructor export interop\n  var options = typeof scriptExports === 'function'\n    ? scriptExports.options\n    : scriptExports\n\n  // render functions\n  if (compiledTemplate) {\n    options.render = compiledTemplate.render\n    options.staticRenderFns = compiledTemplate.staticRenderFns\n  }\n\n  // scopedId\n  if (scopeId) {\n    options._scopeId = scopeId\n  }\n\n  // inject cssModules\n  if (cssModules) {\n    var computed = options.computed || (options.computed = {})\n    Object.keys(cssModules).forEach(function (key) {\n      var module = cssModules[key]\n      computed[key] = function () { return module }\n    })\n  }\n\n  return {\n    esModule: esModule,\n    exports: scriptExports,\n    options: options\n  }\n}\n"
    },
    {
      "id": 6,
      "identifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/lib/template-compiler.js?{\"id\":\"data-v-2e783b6c\"}!/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/lib/selector.js?type=template&index=0!/Users/vin/@vmaimone/vue-context-menu/src/index.vue",
      "name": "./~/vue-loader/lib/template-compiler.js?{\"id\":\"data-v-2e783b6c\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/index.vue",
      "index": 10,
      "index2": 8,
      "size": 790,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/index.js!/Users/vin/@vmaimone/vue-context-menu/src/index.vue",
      "issuerId": 0,
      "issuerName": "./src/index.vue",
      "profile": {
        "factory": 9,
        "building": 106
      },
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 0,
          "moduleIdentifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/index.js!/Users/vin/@vmaimone/vue-context-menu/src/index.vue",
          "module": "./src/index.vue",
          "moduleName": "./src/index.vue",
          "type": "cjs require",
          "userRequest": "!!./../node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-2e783b6c\"}!./../node_modules/vue-loader/lib/selector?type=template&index=0!./index.vue",
          "loc": "9:2-170"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "depth": 2,
      "source": "module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n  return _c('div', {\n    ref: \"contextMenu\",\n    staticClass: \"ctx-menu-container\",\n    style: (_vm.ctxStyle),\n    attrs: {\n      \"id\": _vm.id\n    },\n    on: {\n      \"click\": function($event) {\n        $event.stopPropagation();\n      },\n      \"contextmenu\": function($event) {\n        $event.stopPropagation();\n      }\n    }\n  }, [_c('div', {\n    staticClass: \"ctx open\",\n    staticStyle: {\n      \"background-color\": \"transparent\"\n    }\n  }, [_c('ul', {\n    staticClass: \"ctx-menu\",\n    class: {\n      'ctx-menu-right': _vm.align === 'right',\n        'ctx-menu-left': _vm.align === 'left'\n    },\n    attrs: {\n      \"role\": \"menu\"\n    }\n  }, [_vm._t(\"default\")], 2)])])\n},staticRenderFns: []}"
    },
    {
      "id": 7,
      "identifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-style-loader/index.js!/Users/vin/@vmaimone/vue-context-menu/node_modules/css-loader/index.js?minimize!/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!/Users/vin/@vmaimone/vue-context-menu/src/ctx-menu.css",
      "name": "./~/vue-style-loader!./~/css-loader?minimize!./~/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!./src/ctx-menu.css",
      "index": 2,
      "index2": 4,
      "size": 1348,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/index.js!/Users/vin/@vmaimone/vue-context-menu/src/index.vue",
      "issuerId": 0,
      "issuerName": "./src/index.vue",
      "profile": {
        "factory": 234,
        "building": 5
      },
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 0,
          "moduleIdentifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/index.js!/Users/vin/@vmaimone/vue-context-menu/src/index.vue",
          "module": "./src/index.vue",
          "moduleName": "./src/index.vue",
          "type": "cjs require",
          "userRequest": "!!vue-style-loader!css-loader?minimize!./../node_modules/vue-loader/lib/style-rewriter?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!./ctx-menu.css",
          "loc": "3:0-184"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "depth": 2,
      "source": "// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!./../node_modules/css-loader/index.js?minimize!./../node_modules/vue-loader/lib/style-rewriter.js?{\\\"id\\\":\\\"data-v-2e783b6c\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!./ctx-menu.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar update = require(\"!./../node_modules/vue-style-loader/lib/addStylesClient.js\")(\"0df30a58\", content, true);\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!./../node_modules/css-loader/index.js?minimize!./../node_modules/vue-loader/lib/style-rewriter.js?{\\\"id\\\":\\\"data-v-2e783b6c\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!./ctx-menu.css\", function() {\n     var newContent = require(\"!!./../node_modules/css-loader/index.js?minimize!./../node_modules/vue-loader/lib/style-rewriter.js?{\\\"id\\\":\\\"data-v-2e783b6c\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!./ctx-menu.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}"
    },
    {
      "id": 8,
      "identifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-style-loader/lib/addStylesClient.js",
      "name": "./~/vue-style-loader/lib/addStylesClient.js",
      "index": 5,
      "index2": 3,
      "size": 6309,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-style-loader/index.js!/Users/vin/@vmaimone/vue-context-menu/node_modules/css-loader/index.js?minimize!/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!/Users/vin/@vmaimone/vue-context-menu/src/ctx-menu.css",
      "issuerId": 7,
      "issuerName": "./~/vue-style-loader!./~/css-loader?minimize!./~/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!./src/ctx-menu.css",
      "profile": {
        "factory": 575,
        "building": 43
      },
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 7,
          "moduleIdentifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-style-loader/index.js!/Users/vin/@vmaimone/vue-context-menu/node_modules/css-loader/index.js?minimize!/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!/Users/vin/@vmaimone/vue-context-menu/src/ctx-menu.css",
          "module": "./~/vue-style-loader!./~/css-loader?minimize!./~/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!./src/ctx-menu.css",
          "moduleName": "./~/vue-style-loader!./~/css-loader?minimize!./~/vue-loader/lib/style-rewriter.js?{\"id\":\"data-v-2e783b6c\",\"scoped\":false,\"hasInlineConfig\":false}!./src/ctx-menu.css",
          "type": "cjs require",
          "userRequest": "!./../node_modules/vue-style-loader/lib/addStylesClient.js",
          "loc": "8:13-82"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "depth": 3,
      "source": "/*\n  MIT License http://www.opensource.org/licenses/mit-license.php\n  Author Tobias Koppers @sokra\n  Modified by Evan You @yyx990803\n*/\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\nvar listToStyles = require('./listToStyles')\n\n/*\ntype StyleObject = {\n  id: number;\n  parts: Array<StyleObjectPart>\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 () {}\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nmodule.exports = function (parentId, list, _isProduction) {\n  isProduction = _isProduction\n\n  var styles = listToStyles(parentId, list)\n  addStylesToDom(styles)\n\n  return function update (newList) {\n    var mayRemove = []\n    for (var i = 0; i < styles.length; i++) {\n      var item = styles[i]\n      var domStyle = stylesInDom[item.id]\n      domStyle.refs--\n      mayRemove.push(domStyle)\n    }\n    if (newList) {\n      styles = listToStyles(parentId, newList)\n      addStylesToDom(styles)\n    } else {\n      styles = []\n    }\n    for (var i = 0; i < mayRemove.length; i++) {\n      var domStyle = mayRemove[i]\n      if (domStyle.refs === 0) {\n        for (var j = 0; j < domStyle.parts.length; j++) {\n          domStyle.parts[j]()\n        }\n        delete stylesInDom[domStyle.id]\n      }\n    }\n  }\n}\n\nfunction addStylesToDom (styles /* Array<StyleObject> */) {\n  for (var i = 0; i < styles.length; i++) {\n    var item = styles[i]\n    var domStyle = stylesInDom[item.id]\n    if (domStyle) {\n      domStyle.refs++\n      for (var j = 0; j < domStyle.parts.length; j++) {\n        domStyle.parts[j](item.parts[j])\n      }\n      for (; j < item.parts.length; j++) {\n        domStyle.parts.push(addStyle(item.parts[j]))\n      }\n      if (domStyle.parts.length > item.parts.length) {\n        domStyle.parts.length = item.parts.length\n      }\n    } else {\n      var parts = []\n      for (var j = 0; j < item.parts.length; j++) {\n        parts.push(addStyle(item.parts[j]))\n      }\n      stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }\n    }\n  }\n}\n\nfunction 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 = { css: css, media: media, sourceMap: sourceMap }\n    if (!newStyles[id]) {\n      part.id = parentId + ':0'\n      styles.push(newStyles[id] = { id: id, parts: [part] })\n    } else {\n      part.id = parentId + ':' + newStyles[id].parts.length\n      newStyles[id].parts.push(part)\n    }\n  }\n  return styles\n}\n\nfunction createStyleElement () {\n  var styleElement = document.createElement('style')\n  styleElement.type = 'text/css'\n  head.appendChild(styleElement)\n  return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */) {\n  var update, remove\n  var styleElement = document.querySelector('style[data-vue-ssr-id~=\"' + obj.id + '\"]')\n  var hasSSR = styleElement != null\n\n  // if in production mode and style is already provided by SSR,\n  // simply do nothing.\n  if (hasSSR && isProduction) {\n    return noop\n  }\n\n  if (isOldIE) {\n    // use singleton mode for IE9.\n    var styleIndex = singletonCounter++\n    styleElement = singletonElement || (singletonElement = createStyleElement())\n    update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)\n    remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)\n  } else {\n    // use multi-style-tag mode in all other cases\n    styleElement = styleElement || createStyleElement()\n    update = applyToTag.bind(null, styleElement)\n    remove = function () {\n      styleElement.parentNode.removeChild(styleElement)\n    }\n  }\n\n  if (!hasSSR) {\n    update(obj)\n  }\n\n  return function updateStyle (newObj /* StyleObjectPart */) {\n    if (newObj) {\n      if (newObj.css === obj.css &&\n          newObj.media === obj.media &&\n          newObj.sourceMap === obj.sourceMap) {\n        return\n      }\n      update(obj = newObj)\n    } else {\n      remove()\n    }\n  }\n}\n\nvar replaceText = (function () {\n  var textStore = []\n\n  return function (index, replacement) {\n    textStore[index] = replacement\n    return textStore.filter(Boolean).join('\\n')\n  }\n})()\n\nfunction applyToSingletonTag (styleElement, index, remove, obj) {\n  var css = remove ? '' : obj.css\n\n  if (styleElement.styleSheet) {\n    styleElement.styleSheet.cssText = replaceText(index, css)\n  } else {\n    var cssNode = document.createTextNode(css)\n    var childNodes = styleElement.childNodes\n    if (childNodes[index]) styleElement.removeChild(childNodes[index])\n    if (childNodes.length) {\n      styleElement.insertBefore(cssNode, childNodes[index])\n    } else {\n      styleElement.appendChild(cssNode)\n    }\n  }\n}\n\nfunction applyToTag (styleElement, obj) {\n  var css = obj.css\n  var media = obj.media\n  var sourceMap = obj.sourceMap\n\n  if (media) {\n    styleElement.setAttribute('media', media)\n  }\n\n  if (sourceMap) {\n    // https://developer.chrome.com/devtools/docs/javascript-debugging\n    // this makes source maps inside style tags work properly in Chrome\n    css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n    // http://stackoverflow.com/a/26603875\n    css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n  }\n\n  if (styleElement.styleSheet) {\n    styleElement.styleSheet.cssText = css\n  } else {\n    while (styleElement.firstChild) {\n      styleElement.removeChild(styleElement.firstChild)\n    }\n    styleElement.appendChild(document.createTextNode(css))\n  }\n}\n"
    },
    {
      "id": 9,
      "identifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-style-loader/lib/listToStyles.js",
      "name": "./~/vue-style-loader/lib/listToStyles.js",
      "index": 6,
      "index2": 2,
      "size": 639,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-style-loader/lib/addStylesClient.js",
      "issuerId": 8,
      "issuerName": "./~/vue-style-loader/lib/addStylesClient.js",
      "profile": {
        "factory": 1,
        "building": 5
      },
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 8,
          "moduleIdentifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/vue-style-loader/lib/addStylesClient.js",
          "module": "./~/vue-style-loader/lib/addStylesClient.js",
          "moduleName": "./~/vue-style-loader/lib/addStylesClient.js",
          "type": "cjs require",
          "userRequest": "./listToStyles",
          "loc": "17:19-44"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "depth": 4,
      "source": "/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nmodule.exports = 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"
    },
    {
      "id": 10,
      "identifier": "/Users/vin/@vmaimone/vue-context-menu/node_modules/babel-loader/lib/index.js!/Users/vin/@vmaimone/vue-context-menu/src/index.js",
      "name": "./src/index.js",
      "index": 0,
      "index2": 10,
      "size": 297,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": null,
      "issuerId": null,
      "issuerName": null,
      "profile": {
        "factory": 45,
        "building": 633
      },
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [],
      "usedExports": true,
      "providedExports": null,
      "depth": 0,
      "source": "'use strict';\n\nvar VueContextMenu = require('./index.vue');\n\nVueContextMenu.install = function install(Vue) {\n  var component = Vue.component('context-menu', VueContextMenu);\n  return component;\n};\n\nwindow.VueContextMenu = VueContextMenu;\n\nmodule.exports = module.exports.default = VueContextMenu;"
    }
  ],
  "filteredModules": 0,
  "children": []
}
