module.exports =
/******/ (function(modules) { // webpackBootstrap
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/
/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId]) {
/******/ 			return installedModules[moduleId].exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			i: moduleId,
/******/ 			l: false,
/******/ 			exports: {}
/******/ 		};
/******/
/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ 		// Flag the module as loaded
/******/ 		module.l = true;
/******/
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/
/******/
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;
/******/
/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;
/******/
/******/ 	// define getter function for harmony exports
/******/ 	__webpack_require__.d = function(exports, name, getter) {
/******/ 		if(!__webpack_require__.o(exports, name)) {
/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ 		}
/******/ 	};
/******/
/******/ 	// define __esModule on exports
/******/ 	__webpack_require__.r = function(exports) {
/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 		}
/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
/******/ 	};
/******/
/******/ 	// create a fake namespace object
/******/ 	// mode & 1: value is a module id, require it
/******/ 	// mode & 2: merge all properties of value into the ns
/******/ 	// mode & 4: return value when already ns object
/******/ 	// mode & 8|1: behave like require
/******/ 	__webpack_require__.t = function(value, mode) {
/******/ 		if(mode & 1) value = __webpack_require__(value);
/******/ 		if(mode & 8) return value;
/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ 		var ns = Object.create(null);
/******/ 		__webpack_require__.r(ns);
/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ 		return ns;
/******/ 	};
/******/
/******/ 	// getDefaultExport function for compatibility with non-harmony modules
/******/ 	__webpack_require__.n = function(module) {
/******/ 		var getter = module && module.__esModule ?
/******/ 			function getDefault() { return module['default']; } :
/******/ 			function getModuleExports() { return module; };
/******/ 		__webpack_require__.d(getter, 'a', getter);
/******/ 		return getter;
/******/ 	};
/******/
/******/ 	// Object.prototype.hasOwnProperty.call
/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "";
/******/
/******/
/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(__webpack_require__.s = 98);
/******/ })
/************************************************************************/
/******/ ({

/***/ 0:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalizeComponent; });
/* globals __VUE_SSR_CONTEXT__ */

// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
// This module is a runtime utility for cleaner component module output and will
// be included in the final webpack user bundle.

function normalizeComponent(
  scriptExports,
  render,
  staticRenderFns,
  functionalTemplate,
  injectStyles,
  scopeId,
  moduleIdentifier /* server only */,
  shadowMode /* vue-cli only */
) {
  // Vue.extend constructor export interop
  var options =
    typeof scriptExports === 'function' ? scriptExports.options : scriptExports

  // render functions
  if (render) {
    options.render = render
    options.staticRenderFns = staticRenderFns
    options._compiled = true
  }

  // functional template
  if (functionalTemplate) {
    options.functional = true
  }

  // scopedId
  if (scopeId) {
    options._scopeId = 'data-v-' + scopeId
  }

  var hook
  if (moduleIdentifier) {
    // server build
    hook = function (context) {
      // 2.3 injection
      context =
        context || // cached call
        (this.$vnode && this.$vnode.ssrContext) || // stateful
        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
      // 2.2 with runInNewContext: true
      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
        context = __VUE_SSR_CONTEXT__
      }
      // inject component styles
      if (injectStyles) {
        injectStyles.call(this, context)
      }
      // register component module identifier for async chunk inferrence
      if (context && context._registeredComponents) {
        context._registeredComponents.add(moduleIdentifier)
      }
    }
    // used by ssr in case component is cached and beforeCreate
    // never gets called
    options._ssrRegister = hook
  } else if (injectStyles) {
    hook = shadowMode
      ? function () {
          injectStyles.call(
            this,
            (options.functional ? this.parent : this).$root.$options.shadowRoot
          )
        }
      : injectStyles
  }

  if (hook) {
    if (options.functional) {
      // for template-only hot-reload because in that case the render fn doesn't
      // go through the normalizer
      options._injectStyles = hook
      // register for functional component in vue file
      var originalRender = options.render
      options.render = function renderWithStyleInjection(h, context) {
        hook.call(context)
        return originalRender(h, context)
      }
    } else {
      // inject component registration as beforeCreate hook
      var existing = options.beforeCreate
      options.beforeCreate = existing ? [].concat(existing, hook) : [hook]
    }
  }

  return {
    exports: scriptExports,
    options: options
  }
}


/***/ }),

/***/ 2:
/***/ (function(module, exports, __webpack_require__) {

"use strict";


/*
  MIT License http://www.opensource.org/licenses/mit-license.php
  Author Tobias Koppers @sokra
*/
// css base code, injected by the css-loader
// eslint-disable-next-line func-names
module.exports = function (cssWithMappingToString) {
  var list = []; // return the list of modules as css string

  list.toString = function toString() {
    return this.map(function (item) {
      var content = cssWithMappingToString(item);

      if (item[2]) {
        return "@media ".concat(item[2], " {").concat(content, "}");
      }

      return content;
    }).join("");
  }; // import a list of modules into the list
  // eslint-disable-next-line func-names


  list.i = function (modules, mediaQuery, dedupe) {
    if (typeof modules === "string") {
      // eslint-disable-next-line no-param-reassign
      modules = [[null, modules, ""]];
    }

    var alreadyImportedModules = {};

    if (dedupe) {
      for (var i = 0; i < this.length; i++) {
        // eslint-disable-next-line prefer-destructuring
        var id = this[i][0];

        if (id != null) {
          alreadyImportedModules[id] = true;
        }
      }
    }

    for (var _i = 0; _i < modules.length; _i++) {
      var item = [].concat(modules[_i]);

      if (dedupe && alreadyImportedModules[item[0]]) {
        // eslint-disable-next-line no-continue
        continue;
      }

      if (mediaQuery) {
        if (!item[2]) {
          item[2] = mediaQuery;
        } else {
          item[2] = "".concat(mediaQuery, " and ").concat(item[2]);
        }
      }

      list.push(item);
    }
  };

  return list;
};

/***/ }),

/***/ 3:
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var isOldIE = function isOldIE() {
  var memo;
  return function memorize() {
    if (typeof memo === 'undefined') {
      // Test for IE <= 9 as proposed by Browserhacks
      // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805
      // Tests for existence of standard globals is to allow style-loader
      // to operate correctly into non-standard environments
      // @see https://github.com/webpack-contrib/style-loader/issues/177
      memo = Boolean(window && document && document.all && !window.atob);
    }

    return memo;
  };
}();

var getTarget = function getTarget() {
  var memo = {};
  return function memorize(target) {
    if (typeof memo[target] === 'undefined') {
      var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself

      if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
        try {
          // This will throw an exception if access to iframe is blocked
          // due to cross-origin restrictions
          styleTarget = styleTarget.contentDocument.head;
        } catch (e) {
          // istanbul ignore next
          styleTarget = null;
        }
      }

      memo[target] = styleTarget;
    }

    return memo[target];
  };
}();

var stylesInDom = [];

function getIndexByIdentifier(identifier) {
  var result = -1;

  for (var i = 0; i < stylesInDom.length; i++) {
    if (stylesInDom[i].identifier === identifier) {
      result = i;
      break;
    }
  }

  return result;
}

function modulesToDom(list, options) {
  var idCountMap = {};
  var identifiers = [];

  for (var i = 0; i < list.length; i++) {
    var item = list[i];
    var id = options.base ? item[0] + options.base : item[0];
    var count = idCountMap[id] || 0;
    var identifier = "".concat(id, " ").concat(count);
    idCountMap[id] = count + 1;
    var index = getIndexByIdentifier(identifier);
    var obj = {
      css: item[1],
      media: item[2],
      sourceMap: item[3]
    };

    if (index !== -1) {
      stylesInDom[index].references++;
      stylesInDom[index].updater(obj);
    } else {
      stylesInDom.push({
        identifier: identifier,
        updater: addStyle(obj, options),
        references: 1
      });
    }

    identifiers.push(identifier);
  }

  return identifiers;
}

function insertStyleElement(options) {
  var style = document.createElement('style');
  var attributes = options.attributes || {};

  if (typeof attributes.nonce === 'undefined') {
    var nonce =  true ? __webpack_require__.nc : undefined;

    if (nonce) {
      attributes.nonce = nonce;
    }
  }

  Object.keys(attributes).forEach(function (key) {
    style.setAttribute(key, attributes[key]);
  });

  if (typeof options.insert === 'function') {
    options.insert(style);
  } else {
    var target = getTarget(options.insert || 'head');

    if (!target) {
      throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");
    }

    target.appendChild(style);
  }

  return style;
}

function removeStyleElement(style) {
  // istanbul ignore if
  if (style.parentNode === null) {
    return false;
  }

  style.parentNode.removeChild(style);
}
/* istanbul ignore next  */


var replaceText = function replaceText() {
  var textStore = [];
  return function replace(index, replacement) {
    textStore[index] = replacement;
    return textStore.filter(Boolean).join('\n');
  };
}();

function applyToSingletonTag(style, index, remove, obj) {
  var css = remove ? '' : obj.media ? "@media ".concat(obj.media, " {").concat(obj.css, "}") : obj.css; // For old IE

  /* istanbul ignore if  */

  if (style.styleSheet) {
    style.styleSheet.cssText = replaceText(index, css);
  } else {
    var cssNode = document.createTextNode(css);
    var childNodes = style.childNodes;

    if (childNodes[index]) {
      style.removeChild(childNodes[index]);
    }

    if (childNodes.length) {
      style.insertBefore(cssNode, childNodes[index]);
    } else {
      style.appendChild(cssNode);
    }
  }
}

function applyToTag(style, options, obj) {
  var css = obj.css;
  var media = obj.media;
  var sourceMap = obj.sourceMap;

  if (media) {
    style.setAttribute('media', media);
  } else {
    style.removeAttribute('media');
  }

  if (sourceMap && typeof btoa !== 'undefined') {
    css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");
  } // For old IE

  /* istanbul ignore if  */


  if (style.styleSheet) {
    style.styleSheet.cssText = css;
  } else {
    while (style.firstChild) {
      style.removeChild(style.firstChild);
    }

    style.appendChild(document.createTextNode(css));
  }
}

var singleton = null;
var singletonCounter = 0;

function addStyle(obj, options) {
  var style;
  var update;
  var remove;

  if (options.singleton) {
    var styleIndex = singletonCounter++;
    style = singleton || (singleton = insertStyleElement(options));
    update = applyToSingletonTag.bind(null, style, styleIndex, false);
    remove = applyToSingletonTag.bind(null, style, styleIndex, true);
  } else {
    style = insertStyleElement(options);
    update = applyToTag.bind(null, style, options);

    remove = function remove() {
      removeStyleElement(style);
    };
  }

  update(obj);
  return function updateStyle(newObj) {
    if (newObj) {
      if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {
        return;
      }

      update(obj = newObj);
    } else {
      remove();
    }
  };
}

module.exports = function (list, options) {
  options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
  // tags it will allow on a page

  if (!options.singleton && typeof options.singleton !== 'boolean') {
    options.singleton = isOldIE();
  }

  list = list || [];
  var lastIdentifiers = modulesToDom(list, options);
  return function update(newList) {
    newList = newList || [];

    if (Object.prototype.toString.call(newList) !== '[object Array]') {
      return;
    }

    for (var i = 0; i < lastIdentifiers.length; i++) {
      var identifier = lastIdentifiers[i];
      var index = getIndexByIdentifier(identifier);
      stylesInDom[index].references--;
    }

    var newLastIdentifiers = modulesToDom(newList, options);

    for (var _i = 0; _i < lastIdentifiers.length; _i++) {
      var _identifier = lastIdentifiers[_i];

      var _index = getIndexByIdentifier(_identifier);

      if (stylesInDom[_index].references === 0) {
        stylesInDom[_index].updater();

        stylesInDom.splice(_index, 1);
      }
    }

    lastIdentifiers = newLastIdentifiers;
  };
};

/***/ }),

/***/ 89:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
// Imports

var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.i, ".el-x-send-button .el-button .el-icon-brush[data-v-74c70621]{transform:rotate(180deg)}", ""]);
// Exports
/* harmony default export */ __webpack_exports__["a"] = (___CSS_LOADER_EXPORT___);


/***/ }),

/***/ 90:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
// Imports

var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.i, ".el-x-send-button[data-v-4d4a8cac]{height:32px}.el-x-send-button .el-button[data-v-4d4a8cac]{padding:0;width:32px;height:32px}.el-x-send-button .loading-svg[data-v-4d4a8cac]{color:#409eff;width:100%}", ""]);
// Exports
/* harmony default export */ __webpack_exports__["a"] = (___CSS_LOADER_EXPORT___);


/***/ }),

/***/ 91:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
// Imports

var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.i, ".el-x-send-button .el-button[data-v-1d4ab0c1]{padding:0;width:32px;height:32px}.el-x-send-button .loading-svg[data-v-1d4ab0c1]{color:#409eff;width:16px}", ""]);
// Exports
/* harmony default export */ __webpack_exports__["a"] = (___CSS_LOADER_EXPORT___);


/***/ }),

/***/ 92:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
// Imports

var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.i, "[data-v-34a8749b]:root{--color-primary: #409EFF;--color-success: #67C23A;--color-warning: #E6A23C;--color-danger: #F56C6C;--color-info: #909399}[data-v-34a8749b]:root{--el-x-sender-trigger-popover-width: fit-content;--el-x-sender-trigger-popover-left: 0px}.el-x-sender[data-v-34a8749b]{width:100%;display:flex;flex-direction:column;position:relative;box-sizing:border-box;box-shadow:0 1px 2px 0 rgba(0,0,0,.03),0 1px 6px -1px rgba(0,0,0,.02),0 2px 4px 0 rgba(0,0,0,.02);transition:background .3s;border-radius:calc(4px*2);border-color:#dcdfe6;border-width:0;border-style:solid;transition:width 300ms}.el-x-sender[data-v-34a8749b]:after{content:\"\";position:absolute;inset:0;pointer-events:none;transition:border-color .3s;border-radius:inherit;border-style:inherit;border-color:inherit;border-width:1px}.el-x-sender[data-v-34a8749b]:focus-within{box-shadow:0 2px 4px rgba(0,0,0,.12),0 0 6px rgba(0,0,0,.04);border-color:#409eff}.el-x-sender[data-v-34a8749b]:focus-within::after{border-width:2px}.el-x-sender .el-x-sender-header-wrap[data-v-34a8749b]{display:flex;flex-direction:column;gap:8px;width:100%;margin:0;padding:0}.el-x-sender .slide-enter-active[data-v-34a8749b],.el-x-sender .slide-leave-active[data-v-34a8749b]{transition:height 300ms,opacity 300ms,border 300ms;overflow:hidden}.el-x-sender .slide-enter[data-v-34a8749b],.el-x-sender .slide-leave-to[data-v-34a8749b]{height:0;opacity:0}.el-x-sender .el-x-sender-header[data-v-34a8749b]{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#dcdfe6}.el-x-sender .el-x-sender-content[data-v-34a8749b]{display:flex;gap:8px;width:100%;padding-block:12px;padding-inline-start:16px;padding-inline-end:12px;box-sizing:border-box;align-items:flex-end}.el-x-sender .el-x-sender-content .el-x-sender-prefix[data-v-34a8749b]{flex:none}.el-x-sender .el-x-sender-content .el-x-sender-input[data-v-34a8749b]{height:100%;display:flex;align-items:center;align-self:center}.el-x-sender .el-x-sender-content .el-x-sender-input[data-v-34a8749b] .el-textarea__inner{padding:0;margin:0;color:#303133;font-size:14px;line-height:24px;list-style:none;position:relative;display:inline-block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;height:auto;min-height:auto !important;border-radius:0;border:none;flex:auto;align-self:center;vertical-align:bottom;resize:none;background-color:rgba(0,0,0,0);transition:all .3s,height 0s;box-shadow:none !important}.el-x-sender .el-x-sender-content .el-x-sender-action-list-presets[data-v-34a8749b]{display:flex;gap:8px;flex-direction:row-reverse}.el-x-sender .content-variant-updown[data-v-34a8749b]{display:flex;flex-direction:column;align-items:initial}.el-x-sender .content-variant-updown .el-x-sender-updown-wrap[data-v-34a8749b]{display:flex;justify-content:space-between;gap:8px}.el-x-sender .content-variant-updown .el-x-sender-updown-wrap .el-x-sender-prefix[data-v-34a8749b]{flex:initial}.el-x-sender .content-variant-updown .el-x-sender-updown-wrap .el-x-sender-action-list[data-v-34a8749b]{margin-left:auto}.el-x-sender .el-x-sender-footer[data-v-34a8749b]{border-top-width:1px;border-top-style:solid;border-top-color:#dcdfe6}.el-x-sender-disabled[data-v-34a8749b]{background-color:#f5f7fa;pointer-events:none}.el-x-sender-trigger-popover[data-v-34a8749b]{width:fit-content !important;margin-left:0px !important;max-width:calc(100% - 54px) !important;width:var(--el-x-sender-trigger-popover-width) !important;margin-left:var(--el-x-sender-trigger-popover-left) !important}", ""]);
// Exports
/* harmony default export */ __webpack_exports__["a"] = (___CSS_LOADER_EXPORT___);


/***/ }),

/***/ 98:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Sender/src/main.vue?vue&type=template&id=34a8749b&scoped=true
var render = function render() {
  var _vm = this,
    _c = _vm._self._c;
  return _c("div", {
    staticClass: "el-x-sender-wrap",
    style: {
      cursor: _vm.disabled ? "not-allowed" : "default",
      "--el-x-sender-trigger-popover-width": _vm.triggerPopoverWidth,
      "--el-x-sender-trigger-popover-left": _vm.triggerPopoverLeft
    }
  }, [_c("div", {
    ref: "senderRef",
    staticClass: "el-x-sender",
    class: {
      "el-x-sender-disabled": _vm.disabled
    },
    style: {
      "--el-x-sender-box-shadow-tertiary": "0 1px 2px 0 rgba(0, 0, 0, 0.03), 0 1px 6px -1px rgba(0, 0, 0, 0.02), 0 2px 4px 0 rgba(0, 0, 0, 0.02)",
      "--el-x-sender-input-font-size": "14px",
      "--el-x-sender-header-animation-duration": `${_vm.headerAnimationTimer}ms`
    }
  }, [_c("transition", {
    attrs: {
      name: "slide"
    }
  }, [_vm.visiableHeader ? _c("div", {
    staticClass: "el-x-sender-header-wrap"
  }, [_vm.$slots.header ? _c("div", {
    staticClass: "el-x-sender-header"
  }, [_vm._t("header")], 2) : _vm._e()]) : _vm._e()]), _vm._v(" "), _c("div", {
    staticClass: "el-x-sender-content",
    class: {
      "content-variant-updown": _vm.variant === "updown"
    },
    on: {
      mousedown: _vm.onContentMouseDown
    }
  }, [_vm.$slots.prefix && _vm.variant === "default" ? _c("div", {
    staticClass: "el-x-sender-prefix"
  }, [_vm._t("prefix")], 2) : _vm._e(), _vm._v(" "), _c("el-input", {
    ref: "inputRef",
    staticClass: "el-x-sender-input",
    attrs: {
      rows: 1,
      autosize: _vm.computedAutoSize,
      type: "textarea",
      "validate-event": false,
      placeholder: _vm.placeholder,
      readonly: _vm.readOnly || _vm.disabled,
      disabled: _vm.disabled
    },
    on: {
      compositionstart: _vm.handleCompositionStart,
      compositionend: _vm.handleCompositionEnd
    },
    nativeOn: {
      keydown: function ($event) {
        return _vm.handleKeyDown.apply(null, arguments);
      }
    },
    model: {
      value: _vm.internalValue,
      callback: function ($$v) {
        _vm.internalValue = $$v;
      },
      expression: "internalValue"
    }
  }), _vm._v(" "), _vm.variant === "default" ? _c("div", {
    staticClass: "el-x-sender-action-list"
  }, [_vm._t("action-list", function () {
    return [_c("div", {
      staticClass: "el-x-sender-action-list-presets"
    }, [!_vm.loading ? _c("send-button", {
      attrs: {
        disabled: _vm.isSubmitDisabled
      },
      on: {
        submit: _vm.submit
      }
    }) : _vm._e(), _vm._v(" "), _vm.loading ? _c("loading-button", {
      on: {
        cancel: _vm.cancel
      }
    }) : _vm._e(), _vm._v(" "), !_vm.speechLoading && _vm.allowSpeech ? _c("speech-button", {
      on: {
        click: _vm.startRecognition
      }
    }) : _vm._e(), _vm._v(" "), _vm.speechLoading && _vm.allowSpeech ? _c("speech-loading-button", {
      on: {
        click: _vm.stopRecognition
      }
    }) : _vm._e(), _vm._v(" "), _vm.clearable ? _c("clear-button", {
      on: {
        clear: _vm.clear
      }
    }) : _vm._e()], 1)];
  })], 2) : _vm._e(), _vm._v(" "), _vm.variant === "updown" && _vm.showUpdown ? _c("div", {
    staticClass: "el-x-sender-updown-wrap"
  }, [_vm.$slots.prefix ? _c("div", {
    staticClass: "el-x-sender-prefix"
  }, [_vm._t("prefix")], 2) : _vm._e(), _vm._v(" "), _c("div", {
    staticClass: "el-x-sender-action-list"
  }, [_vm._t("action-list", function () {
    return [_c("div", {
      staticClass: "el-x-sender-action-list-presets"
    }, [!_vm.loading ? _c("send-button", {
      attrs: {
        disabled: _vm.isSubmitDisabled
      },
      on: {
        submit: _vm.submit
      }
    }) : _vm._e(), _vm._v(" "), _vm.loading ? _c("loading-button", {
      on: {
        cancel: _vm.cancel
      }
    }) : _vm._e(), _vm._v(" "), !_vm.speechLoading && _vm.allowSpeech ? _c("speech-button", {
      on: {
        click: _vm.startRecognition
      }
    }) : _vm._e(), _vm._v(" "), _vm.speechLoading && _vm.allowSpeech ? _c("speech-loading-button", {
      on: {
        click: _vm.stopRecognition
      }
    }) : _vm._e(), _vm._v(" "), _vm.clearable ? _c("clear-button", {
      on: {
        clear: _vm.clear
      }
    }) : _vm._e()], 1)];
  })], 2)]) : _vm._e()], 1), _vm._v(" "), _c("transition", {
    attrs: {
      name: "slide"
    }
  }, [_vm.$slots.footer ? _c("div", {
    staticClass: "el-x-sender-footer"
  }, [_vm._t("footer")], 2) : _vm._e()]), _vm._v(" "), _c("el-popover", {
    ref: "popoverRef",
    attrs: {
      disabled: _vm.disabled,
      "visible-arrow": false,
      placement: _vm.triggerPopoverPlacement,
      offset: _vm.triggerPopoverOffset,
      "popper-class": "el-x-sender-trigger-popover",
      trigger: "manual"
    },
    on: {
      show: _vm.onPopoverShow
    },
    model: {
      value: _vm.popoverVisible,
      callback: function ($$v) {
        _vm.popoverVisible = $$v;
      },
      expression: "popoverVisible"
    }
  }, [_c("template", {
    slot: "default"
  }, [_vm._t("trigger-popover", function () {
    return [_vm._v("当前触发的字符为：" + _vm._s(`${_vm.triggerString}`) + " 在这里定义的内容，但注意这里的回车事件将会被\n          输入框 覆盖")];
  }, {
    triggerString: _vm.triggerString,
    readonly: _vm.readOnly
  })], 2)], 2)], 1)]);
};
var staticRenderFns = [];
render._withStripped = true;

// CONCATENATED MODULE: ./src/components/Sender/src/main.vue?vue&type=template&id=34a8749b&scoped=true

// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Sender/src/components/ClearButton.vue?vue&type=template&id=74c70621&scoped=true
var ClearButtonvue_type_template_id_74c70621_scoped_true_render = function render() {
  var _vm = this,
    _c = _vm._self._c;
  return _c("div", {
    staticClass: "el-x-send-button"
  }, [_c("el-button", {
    attrs: {
      circle: "",
      size: "small"
    },
    on: {
      click: function ($event) {
        return _vm.$emit("clear");
      }
    }
  }, [_c("i", {
    staticClass: "el-icon-brush"
  })])], 1);
};
var ClearButtonvue_type_template_id_74c70621_scoped_true_staticRenderFns = [];
ClearButtonvue_type_template_id_74c70621_scoped_true_render._withStripped = true;

// CONCATENATED MODULE: ./src/components/Sender/src/components/ClearButton.vue?vue&type=template&id=74c70621&scoped=true

// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Sender/src/components/ClearButton.vue?vue&type=script&lang=js
/* harmony default export */ var ClearButtonvue_type_script_lang_js = ({
  name: 'ClearButton'
});
// CONCATENATED MODULE: ./src/components/Sender/src/components/ClearButton.vue?vue&type=script&lang=js
 /* harmony default export */ var components_ClearButtonvue_type_script_lang_js = (ClearButtonvue_type_script_lang_js); 
// EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js
var injectStylesIntoStyleTag = __webpack_require__(3);
var injectStylesIntoStyleTag_default = /*#__PURE__*/__webpack_require__.n(injectStylesIntoStyleTag);

// EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Sender/src/components/ClearButton.vue?vue&type=style&index=0&id=74c70621&prod&scoped=true&lang=scss
var ClearButtonvue_type_style_index_0_id_74c70621_prod_scoped_true_lang_scss = __webpack_require__(89);

// CONCATENATED MODULE: ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Sender/src/components/ClearButton.vue?vue&type=style&index=0&id=74c70621&prod&scoped=true&lang=scss

            

var options = {};

options.insert = "head";
options.singleton = false;

var update = injectStylesIntoStyleTag_default()(ClearButtonvue_type_style_index_0_id_74c70621_prod_scoped_true_lang_scss["a" /* default */], options);



/* harmony default export */ var components_ClearButtonvue_type_style_index_0_id_74c70621_prod_scoped_true_lang_scss = (ClearButtonvue_type_style_index_0_id_74c70621_prod_scoped_true_lang_scss["a" /* default */].locals || {});
// CONCATENATED MODULE: ./src/components/Sender/src/components/ClearButton.vue?vue&type=style&index=0&id=74c70621&prod&scoped=true&lang=scss

// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(0);

// CONCATENATED MODULE: ./src/components/Sender/src/components/ClearButton.vue






/* normalize component */

var component = Object(componentNormalizer["a" /* default */])(
  components_ClearButtonvue_type_script_lang_js,
  ClearButtonvue_type_template_id_74c70621_scoped_true_render,
  ClearButtonvue_type_template_id_74c70621_scoped_true_staticRenderFns,
  false,
  null,
  "74c70621",
  null
  
)

/* harmony default export */ var ClearButton = (component.exports);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Sender/src/components/LoadingButton.vue?vue&type=template&id=4d4a8cac&scoped=true
var LoadingButtonvue_type_template_id_4d4a8cac_scoped_true_render = function render() {
  var _vm = this,
    _c = _vm._self._c;
  return _c("div", {
    staticClass: "el-x-send-button"
  }, [_c("el-button", {
    attrs: {
      circle: "",
      size: "small"
    },
    on: {
      click: function ($event) {
        return _vm.$emit("cancel");
      }
    }
  }, [_c("loading", {
    staticClass: "loading-svg"
  })], 1)], 1);
};
var LoadingButtonvue_type_template_id_4d4a8cac_scoped_true_staticRenderFns = [];
LoadingButtonvue_type_template_id_4d4a8cac_scoped_true_render._withStripped = true;

// CONCATENATED MODULE: ./src/components/Sender/src/components/LoadingButton.vue?vue&type=template&id=4d4a8cac&scoped=true

// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Sender/src/components/Loading.vue?vue&type=template&id=1f0f8c14&scoped=true
var Loadingvue_type_template_id_1f0f8c14_scoped_true_render = function render() {
  var _vm = this,
    _c = _vm._self._c;
  return _c("svg", {
    attrs: {
      viewBox: "0 0 1000 1000",
      xmlns: "http://www.w3.org/2000/svg",
      "xmlns:xlink": "http://www.w3.org/1999/xlink"
    }
  }, [_c("title", [_vm._v("Loading")]), _vm._v(" "), _c("rect", {
    attrs: {
      fill: "currentColor",
      height: "250",
      rx: "24",
      ry: "24",
      width: "250",
      x: "375",
      y: "375"
    }
  }), _vm._v(" "), _c("circle", {
    attrs: {
      cx: "500",
      cy: "500",
      fill: "none",
      r: "450",
      stroke: "currentColor",
      "stroke-width": "100",
      opacity: "0.45"
    }
  }), _vm._v(" "), _c("circle", {
    attrs: {
      cx: "500",
      cy: "500",
      fill: "none",
      r: "450",
      stroke: "currentColor",
      "stroke-width": "100",
      "stroke-dasharray": "600 9999999"
    }
  }, [_c("animateTransform", {
    attrs: {
      attributeName: "transform",
      dur: "1s",
      from: "0 500 500",
      repeatCount: "indefinite",
      to: "360 500 500",
      type: "rotate"
    }
  })], 1)]);
};
var Loadingvue_type_template_id_1f0f8c14_scoped_true_staticRenderFns = [];
Loadingvue_type_template_id_1f0f8c14_scoped_true_render._withStripped = true;

// CONCATENATED MODULE: ./src/components/Sender/src/components/Loading.vue?vue&type=template&id=1f0f8c14&scoped=true

// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Sender/src/components/Loading.vue?vue&type=script&lang=js
/* harmony default export */ var Loadingvue_type_script_lang_js = ({
  name: 'Loading'
});
// CONCATENATED MODULE: ./src/components/Sender/src/components/Loading.vue?vue&type=script&lang=js
 /* harmony default export */ var components_Loadingvue_type_script_lang_js = (Loadingvue_type_script_lang_js); 
// CONCATENATED MODULE: ./src/components/Sender/src/components/Loading.vue





/* normalize component */

var Loading_component = Object(componentNormalizer["a" /* default */])(
  components_Loadingvue_type_script_lang_js,
  Loadingvue_type_template_id_1f0f8c14_scoped_true_render,
  Loadingvue_type_template_id_1f0f8c14_scoped_true_staticRenderFns,
  false,
  null,
  "1f0f8c14",
  null
  
)

/* harmony default export */ var Loading = (Loading_component.exports);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Sender/src/components/LoadingButton.vue?vue&type=script&lang=js

/* harmony default export */ var LoadingButtonvue_type_script_lang_js = ({
  name: 'LoadingButton',
  components: {
    Loading: Loading
  }
});
// CONCATENATED MODULE: ./src/components/Sender/src/components/LoadingButton.vue?vue&type=script&lang=js
 /* harmony default export */ var components_LoadingButtonvue_type_script_lang_js = (LoadingButtonvue_type_script_lang_js); 
// EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Sender/src/components/LoadingButton.vue?vue&type=style&index=0&id=4d4a8cac&prod&scoped=true&lang=scss
var LoadingButtonvue_type_style_index_0_id_4d4a8cac_prod_scoped_true_lang_scss = __webpack_require__(90);

// CONCATENATED MODULE: ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Sender/src/components/LoadingButton.vue?vue&type=style&index=0&id=4d4a8cac&prod&scoped=true&lang=scss

            

var LoadingButtonvue_type_style_index_0_id_4d4a8cac_prod_scoped_true_lang_scss_options = {};

LoadingButtonvue_type_style_index_0_id_4d4a8cac_prod_scoped_true_lang_scss_options.insert = "head";
LoadingButtonvue_type_style_index_0_id_4d4a8cac_prod_scoped_true_lang_scss_options.singleton = false;

var LoadingButtonvue_type_style_index_0_id_4d4a8cac_prod_scoped_true_lang_scss_update = injectStylesIntoStyleTag_default()(LoadingButtonvue_type_style_index_0_id_4d4a8cac_prod_scoped_true_lang_scss["a" /* default */], LoadingButtonvue_type_style_index_0_id_4d4a8cac_prod_scoped_true_lang_scss_options);



/* harmony default export */ var components_LoadingButtonvue_type_style_index_0_id_4d4a8cac_prod_scoped_true_lang_scss = (LoadingButtonvue_type_style_index_0_id_4d4a8cac_prod_scoped_true_lang_scss["a" /* default */].locals || {});
// CONCATENATED MODULE: ./src/components/Sender/src/components/LoadingButton.vue?vue&type=style&index=0&id=4d4a8cac&prod&scoped=true&lang=scss

// CONCATENATED MODULE: ./src/components/Sender/src/components/LoadingButton.vue






/* normalize component */

var LoadingButton_component = Object(componentNormalizer["a" /* default */])(
  components_LoadingButtonvue_type_script_lang_js,
  LoadingButtonvue_type_template_id_4d4a8cac_scoped_true_render,
  LoadingButtonvue_type_template_id_4d4a8cac_scoped_true_staticRenderFns,
  false,
  null,
  "4d4a8cac",
  null
  
)

/* harmony default export */ var LoadingButton = (LoadingButton_component.exports);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Sender/src/components/SendButton.vue?vue&type=template&id=671e6570&scoped=true
var SendButtonvue_type_template_id_671e6570_scoped_true_render = function render() {
  var _vm = this,
    _c = _vm._self._c;
  return _c("div", {
    staticClass: "el-x-send-button"
  }, [_c("el-button", {
    attrs: {
      circle: "",
      disabled: _vm.disabled,
      size: "small"
    },
    on: {
      click: function ($event) {
        return _vm.$emit("submit");
      }
    }
  }, [_c("i", {
    staticClass: "el-icon-top"
  })])], 1);
};
var SendButtonvue_type_template_id_671e6570_scoped_true_staticRenderFns = [];
SendButtonvue_type_template_id_671e6570_scoped_true_render._withStripped = true;

// CONCATENATED MODULE: ./src/components/Sender/src/components/SendButton.vue?vue&type=template&id=671e6570&scoped=true

// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Sender/src/components/SendButton.vue?vue&type=script&lang=js
/* harmony default export */ var SendButtonvue_type_script_lang_js = ({
  name: 'SendButton',
  props: {
    disabled: {
      type: Boolean,
      default: false
    }
  }
});
// CONCATENATED MODULE: ./src/components/Sender/src/components/SendButton.vue?vue&type=script&lang=js
 /* harmony default export */ var components_SendButtonvue_type_script_lang_js = (SendButtonvue_type_script_lang_js); 
// CONCATENATED MODULE: ./src/components/Sender/src/components/SendButton.vue





/* normalize component */

var SendButton_component = Object(componentNormalizer["a" /* default */])(
  components_SendButtonvue_type_script_lang_js,
  SendButtonvue_type_template_id_671e6570_scoped_true_render,
  SendButtonvue_type_template_id_671e6570_scoped_true_staticRenderFns,
  false,
  null,
  "671e6570",
  null
  
)

/* harmony default export */ var SendButton = (SendButton_component.exports);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Sender/src/components/SpeechButton.vue?vue&type=template&id=7e5519b2&scoped=true
var SpeechButtonvue_type_template_id_7e5519b2_scoped_true_render = function render() {
  var _vm = this,
    _c = _vm._self._c;
  return _c("div", {
    staticClass: "el-x-send-button"
  }, [_c("el-button", {
    attrs: {
      circle: "",
      size: "small"
    },
    on: {
      click: _vm.onClick
    }
  }, [_c("i", {
    staticClass: "el-icon-microphone"
  })])], 1);
};
var SpeechButtonvue_type_template_id_7e5519b2_scoped_true_staticRenderFns = [];
SpeechButtonvue_type_template_id_7e5519b2_scoped_true_render._withStripped = true;

// CONCATENATED MODULE: ./src/components/Sender/src/components/SpeechButton.vue?vue&type=template&id=7e5519b2&scoped=true

// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Sender/src/components/SpeechButton.vue?vue&type=script&lang=js
/* harmony default export */ var SpeechButtonvue_type_script_lang_js = ({
  name: 'SpeechButton',
  methods: {
    onClick() {
      this.$emit('click');
    }
  }
});
// CONCATENATED MODULE: ./src/components/Sender/src/components/SpeechButton.vue?vue&type=script&lang=js
 /* harmony default export */ var components_SpeechButtonvue_type_script_lang_js = (SpeechButtonvue_type_script_lang_js); 
// CONCATENATED MODULE: ./src/components/Sender/src/components/SpeechButton.vue





/* normalize component */

var SpeechButton_component = Object(componentNormalizer["a" /* default */])(
  components_SpeechButtonvue_type_script_lang_js,
  SpeechButtonvue_type_template_id_7e5519b2_scoped_true_render,
  SpeechButtonvue_type_template_id_7e5519b2_scoped_true_staticRenderFns,
  false,
  null,
  "7e5519b2",
  null
  
)

/* harmony default export */ var SpeechButton = (SpeechButton_component.exports);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Sender/src/components/SpeechLoadingButton.vue?vue&type=template&id=1d4ab0c1&scoped=true
var SpeechLoadingButtonvue_type_template_id_1d4ab0c1_scoped_true_render = function render() {
  var _vm = this,
    _c = _vm._self._c;
  return _c("div", {
    staticClass: "el-x-send-button"
  }, [_c("el-button", {
    attrs: {
      circle: "",
      size: "small"
    },
    on: {
      click: _vm.onClick
    }
  }, [_c("speech-loading", {
    staticClass: "loading-svg"
  })], 1)], 1);
};
var SpeechLoadingButtonvue_type_template_id_1d4ab0c1_scoped_true_staticRenderFns = [];
SpeechLoadingButtonvue_type_template_id_1d4ab0c1_scoped_true_render._withStripped = true;

// CONCATENATED MODULE: ./src/components/Sender/src/components/SpeechLoadingButton.vue?vue&type=template&id=1d4ab0c1&scoped=true

// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Sender/src/components/SpeechLoading.vue?vue&type=template&id=5cab3032&scoped=true
var SpeechLoadingvue_type_template_id_5cab3032_scoped_true_render = function render() {
  var _vm = this,
    _c = _vm._self._c;
  return _c("svg", {
    class: _vm.className,
    attrs: {
      color: "currentColor",
      viewBox: `0 0 ${_vm.SIZE} ${_vm.SIZE}`,
      xmlns: "http://www.w3.org/2000/svg",
      "xmlns:xlink": "http://www.w3.org/1999/xlink"
    }
  }, [_c("title", [_vm._v("Speech Recording")]), _vm._v(" "), _vm._l(_vm.rects, function (item, index) {
    return _c("rect", {
      key: index,
      attrs: {
        fill: "currentColor",
        rx: _vm.RECT_RADIUS,
        ry: _vm.RECT_RADIUS,
        height: _vm.RECT_HEIGHT_MIN,
        width: _vm.RECT_WIDTH,
        x: item.x,
        y: item.yMin
      }
    }, [_c("animate", {
      attrs: {
        attributeName: "height",
        values: `${_vm.RECT_HEIGHT_MIN}; ${_vm.RECT_HEIGHT_MAX}; ${_vm.RECT_HEIGHT_MIN}`,
        keyTimes: "0; 0.5; 1",
        dur: `${_vm.DURATION}s`,
        begin: `${_vm.DURATION / _vm.COUNT * index}s`,
        repeatCount: "indefinite"
      }
    }), _vm._v(" "), _c("animate", {
      attrs: {
        attributeName: "y",
        values: `${item.yMin}; ${item.yMax}; ${item.yMin}`,
        keyTimes: "0; 0.5; 1",
        dur: `${_vm.DURATION}s`,
        begin: `${_vm.DURATION / _vm.COUNT * index}s`,
        repeatCount: "indefinite"
      }
    })]);
  })], 2);
};
var SpeechLoadingvue_type_template_id_5cab3032_scoped_true_staticRenderFns = [];
SpeechLoadingvue_type_template_id_5cab3032_scoped_true_render._withStripped = true;

// CONCATENATED MODULE: ./src/components/Sender/src/components/SpeechLoading.vue?vue&type=template&id=5cab3032&scoped=true

// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Sender/src/components/SpeechLoading.vue?vue&type=script&lang=js
/* harmony default export */ var SpeechLoadingvue_type_script_lang_js = ({
  name: 'SpeechLoading',
  props: {
    className: {
      type: String,
      default: ''
    }
  },
  data() {
    return {
      // 定义常量
      SIZE: 1000,
      COUNT: 4,
      RECT_WIDTH: 140,
      RECT_RADIUS: 70,
      // RECT_WIDTH / 2
      RECT_HEIGHT_MIN: 250,
      RECT_HEIGHT_MAX: 500,
      DURATION: 0.8
    };
  },
  computed: {
    // 计算矩形的位置和高度范围
    rects() {
      const dest = (this.SIZE - this.RECT_WIDTH * this.COUNT) / (this.COUNT - 1);
      return Array.from({
        length: this.COUNT
      }).map((_, index) => {
        const x = index * (dest + this.RECT_WIDTH);
        const yMin = this.SIZE / 2 - this.RECT_HEIGHT_MIN / 2;
        const yMax = this.SIZE / 2 - this.RECT_HEIGHT_MAX / 2;
        return {
          x,
          yMin,
          yMax
        };
      });
    }
  }
});
// CONCATENATED MODULE: ./src/components/Sender/src/components/SpeechLoading.vue?vue&type=script&lang=js
 /* harmony default export */ var components_SpeechLoadingvue_type_script_lang_js = (SpeechLoadingvue_type_script_lang_js); 
// CONCATENATED MODULE: ./src/components/Sender/src/components/SpeechLoading.vue





/* normalize component */

var SpeechLoading_component = Object(componentNormalizer["a" /* default */])(
  components_SpeechLoadingvue_type_script_lang_js,
  SpeechLoadingvue_type_template_id_5cab3032_scoped_true_render,
  SpeechLoadingvue_type_template_id_5cab3032_scoped_true_staticRenderFns,
  false,
  null,
  "5cab3032",
  null
  
)

/* harmony default export */ var SpeechLoading = (SpeechLoading_component.exports);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Sender/src/components/SpeechLoadingButton.vue?vue&type=script&lang=js

/* harmony default export */ var SpeechLoadingButtonvue_type_script_lang_js = ({
  name: 'SpeechLoadingButton',
  components: {
    SpeechLoading: SpeechLoading
  },
  methods: {
    onClick() {
      this.$emit('click');
    }
  }
});
// CONCATENATED MODULE: ./src/components/Sender/src/components/SpeechLoadingButton.vue?vue&type=script&lang=js
 /* harmony default export */ var components_SpeechLoadingButtonvue_type_script_lang_js = (SpeechLoadingButtonvue_type_script_lang_js); 
// EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Sender/src/components/SpeechLoadingButton.vue?vue&type=style&index=0&id=1d4ab0c1&prod&scoped=true&lang=scss
var SpeechLoadingButtonvue_type_style_index_0_id_1d4ab0c1_prod_scoped_true_lang_scss = __webpack_require__(91);

// CONCATENATED MODULE: ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Sender/src/components/SpeechLoadingButton.vue?vue&type=style&index=0&id=1d4ab0c1&prod&scoped=true&lang=scss

            

var SpeechLoadingButtonvue_type_style_index_0_id_1d4ab0c1_prod_scoped_true_lang_scss_options = {};

SpeechLoadingButtonvue_type_style_index_0_id_1d4ab0c1_prod_scoped_true_lang_scss_options.insert = "head";
SpeechLoadingButtonvue_type_style_index_0_id_1d4ab0c1_prod_scoped_true_lang_scss_options.singleton = false;

var SpeechLoadingButtonvue_type_style_index_0_id_1d4ab0c1_prod_scoped_true_lang_scss_update = injectStylesIntoStyleTag_default()(SpeechLoadingButtonvue_type_style_index_0_id_1d4ab0c1_prod_scoped_true_lang_scss["a" /* default */], SpeechLoadingButtonvue_type_style_index_0_id_1d4ab0c1_prod_scoped_true_lang_scss_options);



/* harmony default export */ var components_SpeechLoadingButtonvue_type_style_index_0_id_1d4ab0c1_prod_scoped_true_lang_scss = (SpeechLoadingButtonvue_type_style_index_0_id_1d4ab0c1_prod_scoped_true_lang_scss["a" /* default */].locals || {});
// CONCATENATED MODULE: ./src/components/Sender/src/components/SpeechLoadingButton.vue?vue&type=style&index=0&id=1d4ab0c1&prod&scoped=true&lang=scss

// CONCATENATED MODULE: ./src/components/Sender/src/components/SpeechLoadingButton.vue






/* normalize component */

var SpeechLoadingButton_component = Object(componentNormalizer["a" /* default */])(
  components_SpeechLoadingButtonvue_type_script_lang_js,
  SpeechLoadingButtonvue_type_template_id_1d4ab0c1_scoped_true_render,
  SpeechLoadingButtonvue_type_template_id_1d4ab0c1_scoped_true_staticRenderFns,
  false,
  null,
  "1d4ab0c1",
  null
  
)

/* harmony default export */ var SpeechLoadingButton = (SpeechLoadingButton_component.exports);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Sender/src/main.vue?vue&type=script&lang=js





/* harmony default export */ var mainvue_type_script_lang_js = ({
  name: 'ElXSender',
  components: {
    ClearButton: ClearButton,
    LoadingButton: LoadingButton,
    SendButton: SendButton,
    SpeechButton: SpeechButton,
    SpeechLoadingButton: SpeechLoadingButton
  },
  props: {
    value: {
      type: String,
      default: ''
    },
    placeholder: {
      type: String,
      default: '请输入内容'
    },
    autoSize: {
      type: Object,
      default: () => ({
        minRows: 1,
        maxRows: 6
      })
    },
    readOnly: Boolean,
    disabled: Boolean,
    loading: Boolean,
    clearable: Boolean,
    allowSpeech: Boolean,
    submitType: {
      type: String,
      default: 'enter',
      validator: value => ['enter', 'shiftEnter'].includes(value)
    },
    headerAnimationTimer: {
      type: Number,
      default: 300
    },
    inputWidth: {
      type: String,
      default: '100%'
    },
    // 变体属性
    variant: {
      type: String,
      default: 'default',
      validator: value => ['default', 'updown'].includes(value)
    },
    showUpdown: {
      type: Boolean,
      default: true
    },
    submitBtnDisabled: Boolean,
    inputStyle: {
      type: Object,
      default: () => ({})
    },
    // 新增 el-popover 样式透传
    triggerStrings: {
      type: Array,
      default: () => []
    },
    triggerPopoverVisible: {
      type: Boolean,
      default: false
    },
    triggerPopoverWidth: {
      type: String,
      default: 'fit-content'
    },
    triggerPopoverLeft: {
      type: String,
      default: '0px'
    },
    triggerPopoverOffset: {
      type: Number,
      default: 0
    },
    triggerPopoverPlacement: {
      type: String,
      default: 'top-start',
      validator: value => ['top', 'top-start', 'top-end', 'bottom', 'bottom-start', 'bottom-end', 'left', 'left-start', 'left-end', 'right', 'right-start', 'right-end'].includes(value)
    }
  },
  data() {
    return {
      senderRef: null,
      inputRef: null,
      popoverVisible: this.triggerPopoverVisible,
      internalValue: this.value,
      isComposing: false,
      popoverRef: null,
      triggerString: '',
      visiableHeader: false,
      recognition: null,
      speechLoading: false,
      triggerDebounce: false
    };
  },
  computed: {
    // 判断是否存在 recordingChange 监听器
    hasOnRecordingChangeListener() {
      return !!(this.$listeners && this.$listeners.recordingChange);
    },
    // 判断是否存在 trigger 监听器
    hasOnTriggerListener() {
      return !!(this.$listeners && this.$listeners.trigger);
    },
    // 计算提交按钮禁用状态
    isSubmitDisabled() {
      // 用户显式设置了 submitBtnDisabled 时优先使用
      if (typeof this.submitBtnDisabled === 'boolean') {
        return this.submitBtnDisabled;
      }
      // 否则保持默认逻辑：无内容时禁用
      return !this.internalValue;
    },
    // 根据字体大小动态计算 autoSize
    computedAutoSize() {
      // 如果用户提供了autoSize，则优先使用
      if (this.autoSize) return this.autoSize;

      // 否则返回默认值
      return {
        minRows: 1,
        maxRows: 6
      };
    }
  },
  watch: {
    value(val) {
      this.internalValue = val;
    },
    // 监听样式变化
    inputStyle: {
      handler() {
        this.$nextTick(() => {
          this.applyInputStyles();
        });
      },
      deep: true
    },
    inputWidth() {
      this.$nextTick(() => {
        this.applyInputStyles();
      });
    },
    // 监听外部传入的 triggerPopoverVisible 变化
    triggerPopoverVisible(val) {
      // 仅在值不同时更新，避免循环触发
      if (this.popoverVisible !== val) {
        this.popoverVisible = val;
      }
    },
    // 监听内部 popoverVisible 变化，向外同步
    popoverVisible(val) {
      if (val !== this.triggerPopoverVisible) {
        this.$emit('update:triggerPopoverVisible', val);
      }

      // 新增：当弹窗关闭时，设置短时间内的防抖状态
      if (val === false) {
        this.triggerDebounce = true;
        setTimeout(() => {
          this.triggerDebounce = false;
        }, 300); // 300ms 防抖时间，防止频繁触发
      }
    },
    internalValue(newVal, oldVal) {
      this.$emit('input', newVal);

      // 当内容变化时，修复高度问题

      if (this.isComposing) return;
      // 新增：如果处于防抖状态，则不进行触发检测
      if (this.triggerDebounce) return;

      // 触发逻辑：检测输入内容中是否出现了触发字符
      const triggerStrings = this.triggerStrings || []; // 如果为 undefined，就使用空数组

      // 新的检测逻辑：检查是否在当前光标位置前有触发字符
      if (this.inputRef && triggerStrings.length > 0) {
        const textArea = this.inputRef.$el.querySelector('textarea');
        if (textArea) {
          const cursorPosition = textArea.selectionStart;
          // 检查光标前是否有新增的触发字符
          if (cursorPosition > 0 && newVal.length > oldVal.length) {
            const lastChar = newVal.charAt(cursorPosition - 1);
            if (triggerStrings.includes(lastChar)) {
              this.triggerString = lastChar;
              if (this.hasOnTriggerListener) {
                this.$emit('trigger', {
                  oldValue: oldVal,
                  newValue: newVal,
                  triggerString: lastChar,
                  isOpen: true,
                  cursorPosition: cursorPosition
                });
              }
              this.popoverVisible = true;
              return;
            }
          }
        }
      }

      // 原有的处理逻辑，用于向后兼容
      const validOldVal = typeof oldVal === 'string' ? oldVal : '';
      const wasOldValTrigger = triggerStrings.includes(validOldVal);
      const isNewValTrigger = triggerStrings.includes(newVal);

      // 触发显示：从空变为触发字符
      if (oldVal === '' && isNewValTrigger) {
        this.triggerString = newVal;
        if (this.hasOnTriggerListener) {
          this.$emit('trigger', {
            oldValue: oldVal,
            newValue: newVal,
            triggerString: newVal,
            isOpen: true
          });
        }
        this.popoverVisible = true;
      }
      // 关闭：从触发字符变为非触发字符
      else if (!isNewValTrigger && wasOldValTrigger) {
        if (this.hasOnTriggerListener) {
          this.$emit('trigger', {
            oldValue: oldVal,
            newValue: newVal,
            triggerString: undefined,
            isOpen: false
          });
        }
        this.popoverVisible = false;
      }
      // 触发显示：从非空且非触发字符变为触发字符
      else if (oldVal !== '' && isNewValTrigger && !wasOldValTrigger) {
        this.triggerString = newVal;
        if (this.hasOnTriggerListener) {
          this.$emit('trigger', {
            oldValue: oldVal,
            newValue: newVal,
            triggerString: newVal,
            isOpen: true
          });
        }
        this.popoverVisible = true;
      }
    }
  },
  methods: {
    /* 直接应用输入框样式 */
    applyInputStyles() {
      if (!this.inputRef) return;
      const textareaEl = this.inputRef.$el.querySelector('textarea');
      if (!textareaEl) return;

      // 设置默认基础样式
      const defaultStyles = {
        maxHeight: '176px',
        maxWidth: this.inputWidth || '100%',
        boxSizing: 'border-box'
      };

      // 应用默认样式
      Object.keys(defaultStyles).forEach(key => {
        textareaEl.style[key] = defaultStyles[key];
      });

      // 如果用户传入了样式对象，则应用覆盖默认样式
      if (this.inputStyle && typeof this.inputStyle === 'object') {
        Object.keys(this.inputStyle).forEach(key => {
          textareaEl.style[key] = this.inputStyle[key];
        });

        // 如果用户设置了字体大小，需要调整高度
        if (this.inputStyle.fontSize) {
          // 确保高度能完全容纳当前字体大小
          const computedFontSize = window.getComputedStyle(textareaEl).fontSize;
          const fontSize = parseInt(computedFontSize);
          const minHeight = Math.max(fontSize * 1.5, 24) + 'px';
          textareaEl.style.minHeight = minHeight;

          // 重新触发 autosize
          this.$nextTick(() => {
            // 在某些情况下需要手动触发Element UI的autosize更新
            const event = document.createEvent('Event');
            event.initEvent('autosize:update', true, false);
            textareaEl.dispatchEvent(event);
          });
        }
      }
    },
    /* 手动更新 popover 位置 */
    onPopoverShow() {
      if (this.$refs.popoverRef) {
        this.$nextTick(() => {
          this.$refs.popoverRef.referenceElm = this.$refs.senderRef;
          this.$refs.popoverRef.doDestroy();
          this.$refs.popoverRef.updatePopper();
        });
      }
    },
    /* 内容容器聚焦 开始 */
    onContentMouseDown(e) {
      // 点击容器后设置输入框的聚焦，会触发 &:focus-within 样式
      if (e.target !== this.$el.querySelector(`.el-textarea__inner`)) {
        e.preventDefault();
      }
      this.inputRef.focus();
    },
    /* 内容容器聚焦 结束 */

    /* 头部显示隐藏 开始 */
    openHeader() {
      if (!this.$slots.header) return false;
      if (this.readOnly) return false;
      this.visiableHeader = true;
    },
    closeHeader() {
      if (!this.$slots.header) return;
      if (this.readOnly) return;
      this.visiableHeader = false;
    },
    /* 头部显示隐藏 结束 */

    /* 使用浏览器自带的语音转文字功能 开始 */
    startRecognition() {
      if (this.readOnly || this.disabled) return; // 直接返回，不执行后续逻辑

      if (this.hasOnRecordingChangeListener) {
        this.speechLoading = true;
        this.$emit('recordingChange', true);
        return;
      }

      // 检查浏览器支持的 SpeechRecognition API
      const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition || window.mozSpeechRecognition || window.msSpeechRecognition;
      if (SpeechRecognition) {
        try {
          this.recognition = new SpeechRecognition();
          this.recognition.continuous = true;
          this.recognition.interimResults = true;
          this.recognition.lang = 'zh-CN';
          this.recognition.onresult = event => {
            let results = '';
            for (let i = 0; i <= event.resultIndex; i++) {
              results += event.results[i][0].transcript;
            }
            if (!this.readOnly) {
              this.internalValue = results;
            }
          };
          this.recognition.onstart = () => {
            this.speechLoading = true;
            console.log('语音识别已启动');
          };
          this.recognition.onend = () => {
            this.speechLoading = false;
            console.log('语音识别已结束');
          };
          this.recognition.onerror = event => {
            console.error('语音识别出错:', event.error);
            this.speechLoading = false;
            // 可以添加用户友好提示
            if (event.error === 'not-allowed') {
              console.error('用户拒绝了麦克风访问权限');
              // 这里可以显示提示
            }
          };
          this.recognition.start();
        } catch (error) {
          console.error('启动语音识别失败:', error);
          this.speechLoading = false;
        }
      } else {
        console.error('浏览器不支持 Web Speech API');
        this.speechLoading = false;
      }
    },
    stopRecognition() {
      // 如果有自定义处理函数
      if (this.hasOnRecordingChangeListener) {
        this.speechLoading = false;
        this.$emit('recordingChange', false);
        return;
      }
      if (this.recognition) {
        this.recognition.stop();
        this.speechLoading = false;
      }
    },
    /* 使用浏览器自带的语音转文字功能 结束 */

    /* 输入框事件 开始 */
    submit() {
      if (this.readOnly || this.loading || this.disabled || this.isSubmitDisabled) return;
      this.$emit('submit', this.internalValue);
    },
    // 取消按钮
    cancel() {
      if (this.readOnly) return;
      this.$emit('cancel', this.internalValue);
    },
    clear() {
      if (this.readOnly) return; // 直接返回，不执行后续逻辑
      this.inputRef.clear();
      this.internalValue = '';
    },
    // 在这判断组合键的回车键 (目前支持两种模式)
    handleKeyDown(e) {
      if (this.readOnly) return; // 直接返回，不执行后续逻辑

      if (this.submitType === 'enter') {
        // 判断是否按下了 Shift + 回车键
        if (e.shiftKey && e.keyCode === 13) {
          e.preventDefault();
          const cursorPosition = e.target.selectionStart; // 获取光标位置
          const textBeforeCursor = this.internalValue.slice(0, cursorPosition); // 光标前的文本
          const textAfterCursor = this.internalValue.slice(cursorPosition); // 光标后的文本
          this.internalValue = `${textBeforeCursor}\n${textAfterCursor}`; // 插入换行符
          this.$nextTick(() => {
            e.target.setSelectionRange(cursorPosition + 1, cursorPosition + 1); // 更新光标位置
          });
        } else if (e.keyCode === 13 && !e.shiftKey) {
          // 阻止掉 Enter 的默认换行行为
          e.preventDefault();
          // 触发提交功能
          this.submit();
        }
      } else if (this.submitType === 'shiftEnter') {
        // 判断是否按下了 Shift + 回车键
        if (e.shiftKey && e.keyCode === 13) {
          // 阻止掉 Enter 的默认换行行为
          e.preventDefault();
          // 触发提交功能
          this.submit();
        } else if (e.keyCode === 13 && !e.shiftKey) {
          e.preventDefault();
          const cursorPosition = e.target.selectionStart; // 获取光标位置
          const textBeforeCursor = this.internalValue.slice(0, cursorPosition); // 光标前的文本
          const textAfterCursor = this.internalValue.slice(cursorPosition); // 光标后的文本
          this.internalValue = `${textBeforeCursor}\n${textAfterCursor}`; // 插入换行符
          this.$nextTick(() => {
            e.target.setSelectionRange(cursorPosition + 1, cursorPosition + 1); // 更新光标位置
          });
        }
      }
    },
    /* 输入框事件 结束 */

    /* 焦点 事件 开始 */
    blur() {
      if (this.readOnly) return false;
      this.inputRef.blur();
    },
    focus(type = 'all') {
      if (this.readOnly) return false;
      if (type === 'all') {
        this.inputRef.select();
      } else if (type === 'start') {
        this.focusToStart();
      } else if (type === 'end') {
        this.focusToEnd();
      }
    },
    // 聚焦到文本最前方
    focusToStart() {
      if (this.inputRef) {
        // 获取底层的 textarea DOM 元素
        const textarea = this.inputRef.$el.querySelector('textarea');
        if (textarea) {
          textarea.focus(); // 聚焦到输入框
          textarea.setSelectionRange(0, 0); // 设置光标到最前方
        }
      }
    },
    // 聚焦到文本最后方
    focusToEnd() {
      if (this.inputRef) {
        // 获取底层的 textarea DOM 元素
        const textarea = this.inputRef.$el.querySelector('textarea');
        if (textarea) {
          textarea.focus(); // 聚焦到输入框
          textarea.setSelectionRange(this.internalValue.length, this.internalValue.length); // 设置光标到最后方
        }
      }
    },
    /* 焦点 事件 结束 */

    // 处理输入法开始/结束 (此方法是拼音输入法的时候用)
    handleCompositionStart() {
      this.isComposing = true;
    },
    handleCompositionEnd() {
      this.isComposing = false;
    }
  },
  mounted() {
    // 应用样式
    this.$nextTick(() => {
      // 获取组件引用
      this.senderRef = this.$refs.senderRef;
      this.inputRef = this.$refs.inputRef;
      this.popoverRef = this.$refs.popoverRef;
      this.applyInputStyles();
    });
  },
  updated() {
    // 确保在组件更新后重新应用样式
    this.applyInputStyles();
  }
});
// CONCATENATED MODULE: ./src/components/Sender/src/main.vue?vue&type=script&lang=js
 /* harmony default export */ var src_mainvue_type_script_lang_js = (mainvue_type_script_lang_js); 
// EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Sender/src/main.vue?vue&type=style&index=0&id=34a8749b&prod&lang=scss&scoped=true
var mainvue_type_style_index_0_id_34a8749b_prod_lang_scss_scoped_true = __webpack_require__(92);

// CONCATENATED MODULE: ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Sender/src/main.vue?vue&type=style&index=0&id=34a8749b&prod&lang=scss&scoped=true

            

var mainvue_type_style_index_0_id_34a8749b_prod_lang_scss_scoped_true_options = {};

mainvue_type_style_index_0_id_34a8749b_prod_lang_scss_scoped_true_options.insert = "head";
mainvue_type_style_index_0_id_34a8749b_prod_lang_scss_scoped_true_options.singleton = false;

var mainvue_type_style_index_0_id_34a8749b_prod_lang_scss_scoped_true_update = injectStylesIntoStyleTag_default()(mainvue_type_style_index_0_id_34a8749b_prod_lang_scss_scoped_true["a" /* default */], mainvue_type_style_index_0_id_34a8749b_prod_lang_scss_scoped_true_options);



/* harmony default export */ var src_mainvue_type_style_index_0_id_34a8749b_prod_lang_scss_scoped_true = (mainvue_type_style_index_0_id_34a8749b_prod_lang_scss_scoped_true["a" /* default */].locals || {});
// CONCATENATED MODULE: ./src/components/Sender/src/main.vue?vue&type=style&index=0&id=34a8749b&prod&lang=scss&scoped=true

// CONCATENATED MODULE: ./src/components/Sender/src/main.vue






/* normalize component */

var main_component = Object(componentNormalizer["a" /* default */])(
  src_mainvue_type_script_lang_js,
  render,
  staticRenderFns,
  false,
  null,
  "34a8749b",
  null
  
)

/* harmony default export */ var main = (main_component.exports);
// CONCATENATED MODULE: ./src/components/Sender/index.js


/* istanbul ignore next */
main.install = function (Vue) {
  Vue.component(main.name, main);
};
/* harmony default export */ var Sender = __webpack_exports__["default"] = (main);

/***/ })

/******/ });