{"version":3,"sources":["jsdelivr-header.js","webpack://vue-at/node_modules/.pnpm/vue-loader@17.4.2_@vue+compiler-sfc@3.5.17_vue@3.5.17_webpack@5.100.2/node_modules/vue-loader/dist/exportHelper.js","webpack://vue-at/node_modules/.pnpm/vue-style-loader@4.1.3/node_modules/vue-style-loader/lib/listToStyles.js","webpack://vue-at/node_modules/.pnpm/vue-style-loader@4.1.3/node_modules/vue-style-loader/lib/addStylesClient.js","webpack://vue-at/node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/runtime/noSourceMaps.js","webpack://vue-at/src/At.scss?fa23","webpack://vue-at/src/At.scss","webpack://vue-at/node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/runtime/api.js","webpack://vue-at/webpack/bootstrap","/npm/vue-at@3.0.0-alpha.3/dist/webpack:/vue-at/webpack/runtime/compat get default export","/npm/vue-at@3.0.0-alpha.3/dist/webpack:/vue-at/webpack/runtime/define property getters","/npm/vue-at@3.0.0-alpha.3/dist/webpack:/vue-at/webpack/runtime/hasOwnProperty shorthand","/npm/vue-at@3.0.0-alpha.3/dist/webpack:/vue-at/webpack/runtime/make namespace object","webpack://vue-at/webpack/runtime/publicPath","webpack://vue-at/node_modules/.pnpm/@vue+cli-service@5.0.8_@vue+compiler-sfc@3.5.17_lodash@4.17.21_sass-loader@13.3.3_sass@_0bb98e6b6d9a938580bb8c4d4068b1d0/node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://vue-at/src/util.js","/npm/vue-at@3.0.0-alpha.3/dist/webpack:/vue-at/external commonjs2 {\"commonjs\":\"vue\",\"commonjs2\":\"vue\",\"root\":\"Vue\"}","webpack://vue-at/src/AtTemplate.vue","webpack://vue-at/src/AtTemplate.vue?699a","webpack://vue-at/node_modules/.pnpm/@vue+cli-service@5.0.8_@vue+compiler-sfc@3.5.17_lodash@4.17.21_sass-loader@13.3.3_sass@_0bb98e6b6d9a938580bb8c4d4068b1d0/node_modules/@vue/cli-service/lib/commands/build/entry-lib.js","webpack://vue-at/src/At.vue"],"names":[],"mappings":"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","file":"/npm/vue-at@3.0.0-alpha.3/dist/vue-at.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/vue-at@3.0.0-alpha.3/dist/vue-at.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// runtime helper for setting properties on components\n// in a tree-shakable way\nexports.default = (sfc, props) => {\n    const target = sfc.__vccOpts || sfc;\n    for (const [key, val] of props) {\n        target[key] = val;\n    }\n    return target;\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<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 () {}\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 <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nexport default function addStylesClient (parentId, list, _isProduction, _options) {\n  isProduction = _isProduction\n\n  options = _options || {}\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 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[' + ssrIdKey + '~=\"' + obj.id + '\"]')\n\n  if (styleElement) {\n    if (isProduction) {\n      // has SSR styles and in production mode.\n      // simply do nothing.\n      return noop\n    } else {\n      // has SSR styles but in dev mode.\n      // for some reason Chrome can't handle source map in server-rendered\n      // style tags - source maps in <style> only works if the style tag is\n      // created and inserted dynamically. So we remove the server rendered\n      // styles and inject new ones.\n      styleElement.parentNode.removeChild(styleElement)\n    }\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 = createStyleElement()\n    update = applyToTag.bind(null, styleElement)\n    remove = function () {\n      styleElement.parentNode.removeChild(styleElement)\n    }\n  }\n\n  update(obj)\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  if (options.ssrId) {\n    styleElement.setAttribute(ssrIdKey, obj.id)\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","\"use strict\";\n\nmodule.exports = function (i) {\n  return i[1];\n};","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!../node_modules/.pnpm/vue-loader@17.4.2_@vue+compiler-sfc@3.5.17_vue@3.5.17_webpack@5.100.2/node_modules/vue-loader/dist/stylePostLoader.js!../node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.100.2/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!../node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.100.2/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!../node_modules/.pnpm/sass-loader@13.3.3_sass@1.89.2_webpack@5.100.2/node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!./At.scss?vue&type=style&index=0&lang=scss&external\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../node_modules/.pnpm/vue-style-loader@4.1.3/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"63f4e38b\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.atwho-view{color:#000;border-radius:3px;box-shadow:0 0 5px rgba(0,0,0,.1);min-width:120px;z-index:11110!important}.atwho-ul{list-style:none}.atwho-li{display:block}.atwho-view{border-radius:6px;box-shadow:0 0 10px 0 hsla(211,9%,44%,.5)}.atwho-ul{max-height:135px;padding:0;margin:0}.atwho-li{box-sizing:border-box;height:27px;padding:0 12px;white-space:nowrap;display:flex;align-items:center}.atwho-li span{overflow:hidden;text-overflow:ellipsis}.atwho-cur{background:#5bb8ff;color:#fff}.atwho-wrap{position:relative}.atwho-panel{position:absolute}.atwho-inner{position:relative}.atwho-view{position:absolute;bottom:0;left:-.8em;cursor:default;background-color:hsla(0,0%,100%,.94);min-width:140px;max-width:180px;max-height:200px;overflow-y:auto}.atwho-view::-webkit-scrollbar{width:11px;height:11px}.atwho-view::-webkit-scrollbar-track{background-color:#f5f5f5}.atwho-view::-webkit-scrollbar-thumb{min-height:36px;border:2px solid transparent;border-top:3px solid transparent;border-bottom:3px solid transparent;background-clip:padding-box;border-radius:7px;background-color:#c4c4c4}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n  MIT License http://www.opensource.org/licenses/mit-license.php\n  Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n  var list = [];\n\n  // return the list of modules as css string\n  list.toString = function toString() {\n    return this.map(function (item) {\n      var content = \"\";\n      var needLayer = typeof item[5] !== \"undefined\";\n      if (item[4]) {\n        content += \"@supports (\".concat(item[4], \") {\");\n      }\n      if (item[2]) {\n        content += \"@media \".concat(item[2], \" {\");\n      }\n      if (needLayer) {\n        content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n      }\n      content += cssWithMappingToString(item);\n      if (needLayer) {\n        content += \"}\";\n      }\n      if (item[2]) {\n        content += \"}\";\n      }\n      if (item[4]) {\n        content += \"}\";\n      }\n      return content;\n    }).join(\"\");\n  };\n\n  // import a list of modules into the list\n  list.i = function i(modules, media, dedupe, supports, layer) {\n    if (typeof modules === \"string\") {\n      modules = [[null, modules, undefined]];\n    }\n    var alreadyImportedModules = {};\n    if (dedupe) {\n      for (var k = 0; k < this.length; k++) {\n        var id = this[k][0];\n        if (id != null) {\n          alreadyImportedModules[id] = true;\n        }\n      }\n    }\n    for (var _k = 0; _k < modules.length; _k++) {\n      var item = [].concat(modules[_k]);\n      if (dedupe && alreadyImportedModules[item[0]]) {\n        continue;\n      }\n      if (typeof layer !== \"undefined\") {\n        if (typeof item[5] === \"undefined\") {\n          item[5] = layer;\n        } else {\n          item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n          item[5] = layer;\n        }\n      }\n      if (media) {\n        if (!item[2]) {\n          item[2] = media;\n        } else {\n          item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n          item[2] = media;\n        }\n      }\n      if (supports) {\n        if (!item[4]) {\n          item[4] = \"\".concat(supports);\n        } else {\n          item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n          item[4] = supports;\n        }\n      }\n      list.push(item);\n    }\n  };\n  return list;\n};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n",null,null,null,null,"__webpack_require__.p = \"\";","/* eslint-disable no-var */\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n  var currentScript = window.document.currentScript\n  if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n    var getCurrentScript = require('@soda/get-current-script')\n    currentScript = getCurrentScript()\n\n    // for backward compatibility, because previously we directly included the polyfill\n    if (!('currentScript' in document)) {\n      Object.defineProperty(document, 'currentScript', { get: getCurrentScript })\n    }\n  }\n\n  var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n  if (src) {\n    __webpack_public_path__ = src[1] // eslint-disable-line\n  }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","// Scrolling The Selection Into View\n// http://roysharon.com/blog/37\nexport function scrollIntoView (t, scrollParent) {\n  if (typeof (t) !== 'object') return\n\n  if (t.getRangeAt) {\n    // we have a Selection object\n    if (t.rangeCount === 0) return\n    t = t.getRangeAt(0)\n  }\n\n  if (t.cloneRange) {\n    // we have a Range object\n    let r = t.cloneRange() // do not modify the source range\n    r.collapse(true) // collapse to start\n    t = r.startContainer\n    // if start is an element, then startOffset is the child number\n    // in which the range starts\n    if (t.nodeType === 1) t = t.childNodes[r.startOffset]\n  }\n  if (!t) return\n\n  // if t is not an element node, then we need to skip back until we find the\n  // previous element with which we can call scrollIntoView()\n  let o = t\n  while (o && o.nodeType !== 1) o = o.previousSibling\n  t = o || t.parentNode\n  if (t) scrollIntoViewElement(t, scrollParent)\n}\n\n// bug report: https://github.com/vuejs/awesome-vue/pull/1028\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoViewIfNeeded\nexport function scrollIntoViewElement (el, scrollParent) {\n  if (el.scrollIntoViewIfNeeded) {\n    el.scrollIntoViewIfNeeded(false) // alignToCenter=false\n  } else {\n    // should not use `el.scrollIntoView(false)` // alignToTop=false\n    // bug report: https://stackoverflow.com/questions/11039885/scrollintoview-causing-the-whole-page-to-move\n    scrollParent = scrollParent || el.parentElement\n    const diff = el.offsetTop - scrollParent.scrollTop\n    if (diff < 0 || diff > scrollParent.offsetHeight - el.offsetHeight) {\n      scrollParent.scrollTop = el.offsetTop\n    }\n  }\n}\n\nexport function applyRange (range) {\n  const selection = window.getSelection()\n  if (selection) { // 容错\n    selection.removeAllRanges()\n    selection.addRange(range)\n  }\n}\nexport function getRange () {\n  const selection = window.getSelection()\n  if (selection && selection.rangeCount > 0) {\n    return selection.getRangeAt(0)\n  }\n}\n\nexport function getAtAndIndex (text, ats) {\n  return ats.map((at) => {\n    return { at, index: text.lastIndexOf(at) }\n  }).reduce((a, b) => {\n    return a.index > b.index ? a : b\n  })\n}\n\n/* eslint-disable */\n// http://stackoverflow.com/questions/26747240/plain-javascript-replication-to-offset-and-position\nexport function getOffset(element, target) {\n    // var element = document.getElementById(element),\n    //     target  = target ? document.getElementById(target) : window;\n    target = target || window\n    var offset = {top: element.offsetTop, left: element.offsetLeft},\n        parent = element.offsetParent;\n    while (parent != null && parent != target) {\n       offset.left += parent.offsetLeft;\n       offset.top  += parent.offsetTop;\n       parent = parent.offsetParent;\n    }\n    return offset;\n}\n// http://stackoverflow.com/questions/3972014/get-caret-position-in-contenteditable-div\nexport function closest (el, predicate) {\n  /* eslint-disable */\n  do if (predicate(el)) return el;\n  while (el = el && el.parentNode);\n}\n// http://stackoverflow.com/questions/15157435/get-last-character-before-caret-position-in-javascript\n// 修复 \"空格+表情+空格+@\" range报错 应设(endContainer, 0)\n// stackoverflow上的这段代码有bug\nexport function getPrecedingRange() {\n  const r = getRange()\n  if (r) {\n    const range = r.cloneRange()\n    range.collapse(true)\n    // var el = closest(range.endContainer, d => d.contentEditable)\n    // range.setStart(el, 0)\n    range.setStart(range.endContainer, 0)\n    return range\n  }\n}\n/* eslint-enable */\n",null,"<template>\n  <div\n    ref=\"wrap\"\n    class=\"atwho-wrap\"\n    @compositionstart=\"handleCompositionStart\"\n    @compositionend=\"handleCompositionEnd\"\n    @input=\"handleInput()\"\n    @keydown.capture=\"handleKeyDown\"\n  >\n    <div\n      v-if=\"atwho\"\n      class=\"atwho-panel\"\n      :style=\"style\"\n    >\n      <div class=\"atwho-inner\">\n        <div class=\"atwho-view\">\n          <ul class=\"atwho-ul\">\n            <li\n              v-for=\"(item, index) in atwho.list\"\n              class=\"atwho-li\"\n              :key=\"index\"\n              :class=\"isCur(index) && 'atwho-cur'\"\n              :data-index=\"index\"\n              @mouseenter=\"handleItemHover\"\n              @click=\"handleItemClick\"\n            >\n              <slot\n                name=\"item\"\n                :item=\"item\"\n              >\n                <span v-text=\"itemName(item)\" />\n              </slot>\n            </li>\n          </ul>\n        </div>\n      </div>\n    </div>\n    <span\n      v-show=\"false\"\n      ref=\"embeddedItem\"\n    >\n      <slot\n        name=\"embeddedItem\"\n        :current=\"currentItem\"\n      />\n    </span>\n    <slot />\n  </div>\n</template>\n\n<style lang=\"scss\" src=\"./At.scss\"></style>\n","import { render } from \"./AtTemplate.vue?vue&type=template&id=e31ae89a\"\nconst script = {}\n\nimport \"./At.scss?vue&type=style&index=0&lang=scss&external\"\n\nimport exportComponent from \"../node_modules/.pnpm/vue-loader@17.4.2_@vue+compiler-sfc@3.5.17_vue@3.5.17_webpack@5.100.2/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n","<script>\nimport {\n  closest, getOffset, getPrecedingRange,\n  getRange, applyRange,\n  scrollIntoView, getAtAndIndex\n} from './util'\nimport AtTemplate from './AtTemplate.vue'\n\nexport default {\n  name: 'VueAt',\n  mixins: [AtTemplate],\n  emits: ['update:value', 'at', 'insert'],\n  props: {\n    value: {\n      type: String, // value not required\n      default: null\n    },\n    at: {\n      type: String,\n      default: null\n    },\n    ats: {\n      type: Array,\n      default: () => ['@']\n    },\n    suffix: {\n      type: String,\n      default: ' '\n    },\n    loop: {\n      type: Boolean,\n      default: true\n    },\n    allowSpaces: {\n      type: Boolean,\n      default: true\n    },\n    tabSelect: {\n      type: Boolean,\n      default: false\n    },\n    avoidEmail: {\n      type: Boolean,\n      default: true\n    },\n    showUnique: {\n      type: Boolean,\n      default: true\n    },\n    hoverSelect: {\n      type: Boolean,\n      default: true\n    },\n    members: {\n      type: Array,\n      default: () => []\n    },\n    nameKey: {\n      type: String,\n      default: ''\n    },\n    filterMatch: {\n      type: Function,\n      default: (name, chunk, at) => {\n        // match at lower-case\n        return name.toLowerCase()\n          .indexOf(chunk.toLowerCase()) > -1\n      }\n    },\n    deleteMatch: {\n      type: Function,\n      default: (name, chunk, suffix) => {\n        return chunk === name + suffix\n      }\n    },\n    scrollRef: {\n      type: String,\n      default: ''\n    }\n  },\n\n  data () {\n    return {\n      // at[v-model] mode should be on only when\n      // initial :value/v-model is present (not nil)\n      bindsValue: this.value != null,\n      customsEmbedded: false,\n      hasComposition: false,\n      atwho: null\n    }\n  },\n  computed: {\n    atItems () {\n      return this.at ? [this.at] : this.ats\n    },\n\n    currentItem () {\n      if (this.atwho) {\n        return this.atwho.list[this.atwho.cur]\n      }\n      return ''\n    },\n\n    style () {\n      if (this.atwho) {\n        const { list, cur, x, y } = this.atwho\n        const { wrap } = this.$refs\n        if (wrap) {\n          const offset = getOffset(wrap)\n          const scrollLeft = this.scrollRef ? document.querySelector(this.scrollRef).scrollLeft : 0\n          const scrollTop = this.scrollRef ? document.querySelector(this.scrollRef).scrollTop : 0\n          const left = x + scrollLeft + window.pageXOffset - offset.left + 'px'\n          const top = y + scrollTop + window.pageYOffset - offset.top + 'px'\n          return { left, top }\n        }\n      }\n      return null\n    }\n  },\n  watch: {\n    'atwho.cur' (index) {\n      if (index != null) { // cur index exists\n        this.$nextTick(() => {\n          this.scrollToCur()\n        })\n      }\n    },\n    members () {\n      this.handleInput(true)\n    },\n    value (value, oldValue) {\n      if (this.bindsValue) {\n        this.handleValueUpdate(value)\n      }\n    }\n  },\n  mounted () {\n    // vue3 migration.5\n    // [Vue warn]: (deprecation INSTANCE_SCOPED_SLOTS) vm.$scopedSlots has been removed. Use vm.$slots instead.\n    // Details: https://v3-migration.vuejs.org/breaking-changes/slots-unification.html\n    if (this.$slots.embeddedItem) {\n      this.customsEmbedded = true\n    }\n    if (this.bindsValue) {\n      this.handleValueUpdate(this.value)\n    }\n  },\n\n  methods: {\n    itemName (v) {\n      const { nameKey } = this\n      return nameKey ? v[nameKey] : v\n    },\n    isCur (index) {\n      return index === this.atwho.cur\n    },\n    handleValueUpdate (value) {\n      const el = this.$el.querySelector('[contenteditable]')\n      if (value !== el.innerHTML) { // avoid range reset\n        el.innerHTML = value\n        this.dispatchInput()\n      }\n    },\n    dispatchInput () {\n      let el = this.$el.querySelector('[contenteditable]')\n      let ev = new Event('input', { bubbles: true })\n      el.dispatchEvent(ev)\n    },\n\n    handleItemHover (e) {\n      if (this.hoverSelect) {\n        this.selectByMouse(e)\n      }\n    },\n    handleItemClick (e) {\n      this.selectByMouse(e)\n      this.insertItem()\n    },\n    handleDelete (e) {\n      const range = getPrecedingRange()\n      if (range) {\n        // fixme: Very bad code from me\n        if (this.customsEmbedded && range.endOffset >= 1) {\n          let a = range.endContainer.childNodes[range.endOffset] ||\n            range.endContainer.childNodes[range.endOffset - 1]\n          if (!a || a.nodeType === Node.TEXT_NODE && !/^\\s?$/.test(a.data)) {\n            return\n          } else if (a.nodeType === Node.TEXT_NODE) {\n            if (a.previousSibling) a = a.previousSibling\n          } else {\n            if (a.previousElementSibling) a = a.previousElementSibling\n          }\n          let ch = [].slice.call(a.childNodes)\n          ch = [].reverse.call(ch)\n          ch.unshift(a)\n          let last\n          ;[].some.call(ch, c => {\n            if (c.getAttribute && c.getAttribute('data-at-embedded') != null) {\n              last = c\n              return true\n            }\n          })\n          if (last) {\n            e.preventDefault()\n            e.stopPropagation()\n            const r = getRange()\n            if (r) {\n              r.setStartBefore(last)\n              r.deleteContents()\n              applyRange(r)\n              this.handleInput()\n            }\n          }\n          return\n        }\n\n        const { atItems, members, suffix, deleteMatch, itemName } = this\n        const text = range.toString()\n        const { at, index } = getAtAndIndex(text, atItems)\n\n        if (index > -1) {\n          const chunk = text.slice(index + at.length)\n          const has = members.some(v => {\n            const name = itemName(v)\n            return deleteMatch(name, chunk, suffix)\n          })\n          if (has) {\n            e.preventDefault()\n            e.stopPropagation()\n            const r = getRange()\n            if (r) {\n              r.setStart(r.endContainer, index)\n              r.deleteContents()\n              applyRange(r)\n              this.handleInput()\n            }\n          }\n        }\n      }\n    },\n    handleKeyDown (e) {\n      const { atwho } = this\n      if (atwho) {\n        if (e.keyCode === 38 || e.keyCode === 40) { // ↑/↓\n          if (!(e.metaKey || e.ctrlKey)) {\n            e.preventDefault()\n            e.stopPropagation()\n            this.selectByKeyboard(e)\n          }\n          return\n        }\n        if (e.keyCode === 13 || (this.tabSelect && e.keyCode === 9)) { // enter or tab\n          e.preventDefault()\n          e.stopPropagation()\n          this.insertItem()\n          return\n        }\n        if (e.keyCode === 27) { // esc\n          this.closePanel()\n          return\n        }\n      }\n\n      // 为了兼容ie ie9~11 editable无input事件 只能靠keydown触发 textarea正常\n      // 另 ie9 textarea的delete不触发input\n      const isValid = e.keyCode >= 48 && e.keyCode <= 90 || e.keyCode === 8\n      if (isValid) {\n        setTimeout(() => {\n          this.handleInput()\n        }, 50)\n      }\n\n      if (e.keyCode === 8) {\n        this.handleDelete(e)\n      }\n    },\n\n    // compositionStart -> input -> compositionEnd\n    handleCompositionStart () {\n      this.hasComposition = true\n    },\n    handleCompositionEnd () {\n      this.hasComposition = false\n      this.handleInput()\n    },\n    handleInput (keep) {\n      if (this.hasComposition) return\n      const el = this.$el.querySelector('[contenteditable]')\n\n      // vue3 migration.2.1\n      // https://vuejs.org/guide/components/events.html#usage-with-v-model\n      // https://laracasts.com/discuss/channels/vue/how-do-emit-to-v-model-in-vue-3\n      // this.$emit('input', el.innerHTML)\n      this.$emit('update:value', el.innerHTML)\n\n      const range = getPrecedingRange()\n      if (range) {\n        const { atItems, avoidEmail, allowSpaces, showUnique } = this\n\n        let show = true\n        const text = range.toString()\n\n        const { at, index } = getAtAndIndex(text, atItems)\n\n        if (index < 0) show = false\n        const prev = text[index - 1]\n\n        const chunk = text.slice(index + at.length, text.length)\n\n        if (avoidEmail) {\n          // 上一个字符不能为字母数字 避免与邮箱冲突\n          // 微信则是避免 所有字母数字及半角符号\n          if (/^[a-z0-9]$/i.test(prev)) show = false\n        }\n\n        if (!allowSpaces && /\\s/.test(chunk)) {\n          show = false\n        }\n\n        // chunk以空白字符开头不匹配 避免`@ `也匹配\n        if (/^\\s/.test(chunk)) show = false\n\n        if (!show) {\n          this.closePanel()\n        } else {\n          const { members, filterMatch, itemName } = this\n          if (!keep && chunk) { // fixme: should be consistent with AtTextarea.vue\n            this.$emit('at', chunk)\n          }\n          const matched = members.filter(v => {\n            const name = itemName(v)\n            return filterMatch(name, chunk, at, v)\n          })\n\n          show = false\n          if (matched.length) {\n            show = true\n            if (!showUnique) {\n              let item = matched[0]\n              if (chunk === itemName(item)) {\n                show = false\n              }\n            }\n          }\n\n          if (show) {\n            this.openPanel(matched, range, index, at)\n          } else {\n            this.closePanel()\n          }\n        }\n      }\n    },\n\n    closePanel () {\n      if (this.atwho) {\n        this.atwho = null\n      }\n    },\n    openPanel (list, range, offset, at) {\n      const fn = () => {\n        const r = range.cloneRange()\n        r.setStart(r.endContainer, offset + at.length) // 从@后第一位开始\n        // todo: 根据窗口空间 判断向上或是向下展开\n        const rect = r.getClientRects()[0]\n        this.atwho = {\n          range,\n          offset,\n          list,\n          x: rect.left,\n          y: rect.top - 4,\n          cur: 0 // todo: 尽可能记录\n        }\n      }\n      if (this.atwho) {\n        fn()\n      } else { // 焦点超出了显示区域 需要提供延时以移动指针 再计算位置\n        setTimeout(fn, 10)\n      }\n    },\n\n    scrollToCur () {\n      // vue3 migration.6\n      // fix: [Vue warn]: Missing ref owner context. ref cannot be used on hoisted vnodes.\n      // A vnode with ref must be created inside the render function.\n      // at selectByMouse\n      // at handleItemHover\n      // const curEl = this.$refs.cur[0]\n      let { wrap } = this.$refs\n      let { cur } = this.atwho\n      const curEl = wrap.querySelector(`.atwho-li[data-index=\"${cur}\"]`)\n\n      const scrollParent = curEl.parentElement.parentElement // .atwho-view\n      scrollIntoView(curEl, scrollParent)\n    },\n    selectByMouse (e) {\n      const el = closest(e.target, d => {\n        return d.getAttribute('data-index')\n      })\n      const cur = +el.getAttribute('data-index')\n      this.atwho = {\n        ...this.atwho,\n        cur\n      }\n    },\n    selectByKeyboard (e) {\n      const offset = e.keyCode === 38 ? -1 : 1\n      const { cur, list } = this.atwho\n      const nextCur = this.loop\n        ? (cur + offset + list.length) % list.length\n        : Math.max(0, Math.min(cur + offset, list.length - 1))\n      this.atwho = {\n        ...this.atwho,\n        cur: nextCur\n      }\n    },\n\n    // todo: 抽离成库并测试\n    insertText (text, r) {\n      r.deleteContents()\n      const node = r.endContainer\n      if (node.nodeType === Node.TEXT_NODE) {\n        const cut = r.endOffset\n        node.data = node.data.slice(0, cut) +\n          text + node.data.slice(cut)\n        r.setEnd(node, cut + text.length)\n      } else {\n        const t = document.createTextNode(text)\n        r.insertNode(t)\n        r.setEndAfter(t)\n      }\n      r.collapse(false) // 参数在IE下必传\n      applyRange(r)\n      this.dispatchInput()\n    },\n\n    insertHtml (html, r) {\n      r.deleteContents()\n      const node = r.endContainer\n      const newElement = document.createElement('span')\n\n      // Seems `contentediable=false` should includes spaces,\n      // otherwise, caret can't be placed well across them\n      newElement.appendChild(document.createTextNode(' '))\n      newElement.appendChild(this.htmlToElement(html))\n      newElement.appendChild(document.createTextNode(' '))\n      newElement.setAttribute('data-at-embedded', '')\n      newElement.setAttribute('contenteditable', false)\n\n      if (node.nodeType === Node.TEXT_NODE) {\n        const cut = r.endOffset\n        let secondPart = node.splitText(cut)\n        node.parentNode.insertBefore(newElement, secondPart)\n        r.setEndBefore(secondPart)\n      } else {\n        const t = document.createTextNode(this.suffix)\n        r.insertNode(newElement)\n        r.setEndAfter(newElement)\n        r.insertNode(t)\n        r.setEndAfter(t)\n      }\n      r.collapse(false) // 参数在IE下必传\n      applyRange(r)\n    },\n\n    insertItem () {\n      const { range, offset, list, cur } = this.atwho\n      const { suffix, atItems, itemName, customsEmbedded } = this\n      const r = range.cloneRange()\n      const text = range.toString()\n      const { at, index } = getAtAndIndex(text, atItems)\n\n      // Leading `@` is automatically dropped as `customsEmbedded=true`\n      // You can fully custom the output inside the embedded slot\n      const start = customsEmbedded ? index : index + at.length\n      r.setStart(r.endContainer, start)\n\n      // hack: 连续两次 可以确保click后 focus回来 range真正生效\n      applyRange(r)\n      applyRange(r)\n      const curItem = list[cur]\n\n      if (customsEmbedded) {\n        // `suffix` is ignored as `customsEmbedded=true` has to be\n        // wrapped around by spaces\n\n        // vue3 migration.7\n        // fix: Uncaught TypeError: Cannot read properties of undefined (reading 'innerHTML')\n        // at Proxy.insertItem (At.vue?075e:490:1)\n        // at Proxy.handleItemClick (At.vue?075e:184:1)\n        // const html = this.$refs.embeddedItem.firstChild.innerHTML\n        const html = this.$refs.embeddedItem.firstElementChild.innerHTML\n\n        this.insertHtml(html, r)\n      } else {\n        const t = itemName(curItem) + suffix\n        this.insertText(t, r)\n      }\n      scrollIntoView(window.getSelection())\n\n      this.$emit('insert', curItem)\n      this.handleInput()\n\n      // fix safari: use `r` instead of `window.getSelection()`\n      // scrollIntoView(window.getSelection())\n      scrollIntoView(r)\n    },\n    htmlToElement (html) {\n      const template = document.createElement('template')\n      html = html.trim() // Never return a text node of whitespace as the result\n      template.innerHTML = html\n      return template.content.firstChild\n    }\n  }\n}\n</script>\n"]}