vue-element-ui-x 0.2.2 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/Attachments/index.js +18 -18
- package/lib/components/Bubble/index.js +145 -155
- package/lib/components/BubbleList/index.js +180 -207
- package/lib/components/Conversations/index.js +14370 -14370
- package/lib/components/FilesCard/index.js +5 -5
- package/lib/components/Prompts/index.js +25 -25
- package/lib/components/Sender/index.js +1606 -1459
- package/lib/components/Thinking/index.js +157 -23
- package/lib/components/ThoughtChain/index.js +143 -144
- package/lib/components/Typewriter/index.js +124 -125
- package/lib/components/Welcome/index.js +5 -5
- package/lib/index.common.js +1 -1
- package/lib/index.esm.js +1 -1
- package/lib/index.js +817 -389
- package/lib/index.umd.js +1 -1
- package/lib/locale/index.js +97 -0
- package/lib/locale/lang/ar-SA.js +18 -0
- package/lib/locale/lang/ar-SA.umd.js +26 -0
- package/lib/locale/lang/ar.js +18 -0
- package/lib/locale/lang/ar.umd.js +26 -0
- package/lib/locale/lang/de-DE.js +18 -0
- package/lib/locale/lang/de-DE.umd.js +26 -0
- package/lib/locale/lang/de.js +18 -0
- package/lib/locale/lang/de.umd.js +26 -0
- package/lib/locale/lang/en.js +18 -0
- package/lib/locale/lang/en.umd.js +26 -0
- package/lib/locale/lang/es-ES.js +18 -0
- package/lib/locale/lang/es-ES.umd.js +26 -0
- package/lib/locale/lang/es.js +18 -0
- package/lib/locale/lang/es.umd.js +26 -0
- package/lib/locale/lang/fr-FR.js +18 -0
- package/lib/locale/lang/fr-FR.umd.js +26 -0
- package/lib/locale/lang/fr.js +18 -0
- package/lib/locale/lang/fr.umd.js +26 -0
- package/lib/locale/lang/index.js +50 -0
- package/lib/locale/lang/it-IT.js +18 -0
- package/lib/locale/lang/it-IT.umd.js +26 -0
- package/lib/locale/lang/it.js +18 -0
- package/lib/locale/lang/it.umd.js +26 -0
- package/lib/locale/lang/ja-JP.js +18 -0
- package/lib/locale/lang/ja-JP.umd.js +26 -0
- package/lib/locale/lang/ja.js +18 -0
- package/lib/locale/lang/ja.umd.js +26 -0
- package/lib/locale/lang/ko-KR.js +18 -0
- package/lib/locale/lang/ko-KR.umd.js +26 -0
- package/lib/locale/lang/ko.js +18 -0
- package/lib/locale/lang/ko.umd.js +26 -0
- package/lib/locale/lang/pt-BR.js +18 -0
- package/lib/locale/lang/pt-BR.umd.js +26 -0
- package/lib/locale/lang/ru-RU.js +18 -0
- package/lib/locale/lang/ru-RU.umd.js +26 -0
- package/lib/locale/lang/zh-CN.js +18 -0
- package/lib/locale/lang/zh-CN.umd.js +26 -0
- package/lib/locale/lang/zh-TW.js +18 -0
- package/lib/locale/lang/zh-TW.umd.js +26 -0
- package/lib/locale/mixin.js +9 -0
- package/package.json +15 -10
- package/src/components/Attachments/src/main.vue +2 -10
- package/src/components/Bubble/src/main.vue +288 -299
- package/src/components/BubbleList/src/main.vue +2 -19
- package/src/components/Conversations/src/main.vue +0 -41
- package/src/components/Prompts/src/main.vue +248 -248
- package/src/components/Sender/src/components/LoadingButton.vue +37 -39
- package/src/components/Sender/src/components/SpeechLoadingButton.vue +41 -43
- package/src/components/Sender/src/main.vue +13 -3
- package/src/components/Thinking/src/main.vue +13 -9
- package/src/components/ThoughtChain/src/main.vue +1 -3
- package/src/components/Typewriter/src/main.vue +3 -7
- package/src/components/Welcome/src/main.vue +151 -151
- package/src/index.js +23 -6
- package/src/locale/index.js +97 -0
- package/src/locale/lang/ar.js +18 -0
- package/src/locale/lang/de.js +18 -0
- package/src/locale/lang/en.js +18 -0
- package/src/locale/lang/es.js +18 -0
- package/src/locale/lang/fr.js +18 -0
- package/src/locale/lang/index.js +62 -0
- package/src/locale/lang/it.js +18 -0
- package/src/locale/lang/ja.js +18 -0
- package/src/locale/lang/ko.js +18 -0
- package/src/locale/lang/pt-br.js +18 -0
- package/src/locale/lang/ru-RU.js +18 -0
- package/src/locale/lang/zh-CN.js +18 -0
- package/src/locale/lang/zh-TW.js +18 -0
- package/src/locale/mixin.js +9 -0
- package/src/styles/Attachments.scss +236 -236
- package/src/styles/Bubble.scss +5 -4
- package/src/styles/BubbleList.scss +148 -148
- package/src/styles/Conversations.scss +260 -260
- package/src/styles/FilesCard.scss +222 -221
- package/src/styles/Prompts.scss +197 -195
- package/src/styles/Sender.scss +207 -199
- package/src/styles/Thinking.scss +36 -6
- package/src/styles/ThoughtChain.scss +113 -113
- package/src/styles/Typewriter.scss +66 -66
- package/src/styles/var.scss +4 -5
- package/src/theme/var.scss +183 -72
|
@@ -82,7 +82,7 @@ module.exports =
|
|
|
82
82
|
/******/
|
|
83
83
|
/******/
|
|
84
84
|
/******/ // Load entry module and return exports
|
|
85
|
-
/******/ return __webpack_require__(__webpack_require__.s =
|
|
85
|
+
/******/ return __webpack_require__(__webpack_require__.s = 100);
|
|
86
86
|
/******/ })
|
|
87
87
|
/************************************************************************/
|
|
88
88
|
/******/ ({
|
|
@@ -192,658 +192,1276 @@ function normalizeComponent(
|
|
|
192
192
|
|
|
193
193
|
/***/ }),
|
|
194
194
|
|
|
195
|
-
/***/
|
|
196
|
-
/***/ (function(module,
|
|
195
|
+
/***/ 100:
|
|
196
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
197
197
|
|
|
198
198
|
"use strict";
|
|
199
|
+
// ESM COMPAT FLAG
|
|
200
|
+
__webpack_require__.r(__webpack_exports__);
|
|
199
201
|
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
202
|
+
// 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=1822655c&scoped=true
|
|
203
|
+
var render = function render() {
|
|
204
|
+
var _vm = this,
|
|
205
|
+
_c = _vm._self._c;
|
|
206
|
+
return _c("div", {
|
|
207
|
+
staticClass: "el-x-sender-wrap",
|
|
208
|
+
style: {
|
|
209
|
+
display: "block",
|
|
210
|
+
cursor: _vm.disabled ? "not-allowed" : "default",
|
|
211
|
+
"--el-x-sender-trigger-popover-width": _vm.triggerPopoverWidth,
|
|
212
|
+
"--el-x-sender-trigger-popover-left": _vm.triggerPopoverLeft
|
|
213
|
+
}
|
|
214
|
+
}, [_c("div", {
|
|
215
|
+
ref: "senderRef",
|
|
216
|
+
staticClass: "el-x-sender",
|
|
217
|
+
class: {
|
|
218
|
+
"el-x-sender-disabled": _vm.disabled
|
|
219
|
+
},
|
|
220
|
+
style: {
|
|
221
|
+
"--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)",
|
|
222
|
+
"--el-x-sender-input-font-size": "14px",
|
|
223
|
+
"--el-x-sender-header-animation-duration": `${_vm.headerAnimationTimer}ms`
|
|
224
|
+
}
|
|
225
|
+
}, [_c("transition", {
|
|
226
|
+
attrs: {
|
|
227
|
+
name: "slide"
|
|
228
|
+
}
|
|
229
|
+
}, [_vm.visiableHeader ? _c("div", {
|
|
230
|
+
staticClass: "el-x-sender-header-wrap"
|
|
231
|
+
}, [_vm.$slots.header ? _c("div", {
|
|
232
|
+
staticClass: "el-x-sender-header"
|
|
233
|
+
}, [_vm._t("header")], 2) : _vm._e()]) : _vm._e()]), _vm._v(" "), _c("div", {
|
|
234
|
+
staticClass: "el-x-sender-content",
|
|
235
|
+
class: {
|
|
236
|
+
"content-variant-updown": _vm.variant === "updown"
|
|
237
|
+
},
|
|
238
|
+
on: {
|
|
239
|
+
mousedown: _vm.onContentMouseDown
|
|
240
|
+
}
|
|
241
|
+
}, [_vm.$slots.prefix && _vm.variant === "default" ? _c("div", {
|
|
242
|
+
staticClass: "el-x-sender-prefix"
|
|
243
|
+
}, [_vm._t("prefix")], 2) : _vm._e(), _vm._v(" "), _c("el-input", {
|
|
244
|
+
ref: "inputRef",
|
|
245
|
+
staticClass: "el-x-sender-input",
|
|
246
|
+
attrs: {
|
|
247
|
+
rows: 1,
|
|
248
|
+
autosize: _vm.computedAutoSize,
|
|
249
|
+
type: "textarea",
|
|
250
|
+
"validate-event": false,
|
|
251
|
+
placeholder: _vm.computedPlaceholder,
|
|
252
|
+
readonly: _vm.readOnly || _vm.disabled,
|
|
253
|
+
disabled: _vm.disabled
|
|
254
|
+
},
|
|
255
|
+
on: {
|
|
256
|
+
compositionstart: _vm.handleCompositionStart,
|
|
257
|
+
compositionend: _vm.handleCompositionEnd
|
|
258
|
+
},
|
|
259
|
+
nativeOn: {
|
|
260
|
+
keydown: function ($event) {
|
|
261
|
+
return _vm.handleKeyDown.apply(null, arguments);
|
|
216
262
|
}
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
list.i = function (modules, mediaQuery, dedupe) {
|
|
225
|
-
if (typeof modules === "string") {
|
|
226
|
-
// eslint-disable-next-line no-param-reassign
|
|
227
|
-
modules = [[null, modules, ""]];
|
|
263
|
+
},
|
|
264
|
+
model: {
|
|
265
|
+
value: _vm.internalValue,
|
|
266
|
+
callback: function ($$v) {
|
|
267
|
+
_vm.internalValue = $$v;
|
|
268
|
+
},
|
|
269
|
+
expression: "internalValue"
|
|
228
270
|
}
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
271
|
+
}), _vm._v(" "), _vm.variant === "default" ? _c("div", {
|
|
272
|
+
staticClass: "el-x-sender-action-list"
|
|
273
|
+
}, [_vm._t("action-list", function () {
|
|
274
|
+
return [_c("div", {
|
|
275
|
+
staticClass: "el-x-sender-action-list-presets"
|
|
276
|
+
}, [!_vm.loading ? _c("send-button", {
|
|
277
|
+
attrs: {
|
|
278
|
+
disabled: _vm.isSubmitDisabled
|
|
279
|
+
},
|
|
280
|
+
on: {
|
|
281
|
+
submit: _vm.submit
|
|
282
|
+
}
|
|
283
|
+
}) : _vm._e(), _vm._v(" "), _vm.loading ? _c("loading-button", {
|
|
284
|
+
on: {
|
|
285
|
+
cancel: _vm.cancel
|
|
286
|
+
}
|
|
287
|
+
}) : _vm._e(), _vm._v(" "), !_vm.speechLoading && _vm.allowSpeech ? _c("speech-button", {
|
|
288
|
+
on: {
|
|
289
|
+
click: _vm.startRecognition
|
|
290
|
+
}
|
|
291
|
+
}) : _vm._e(), _vm._v(" "), _vm.speechLoading && _vm.allowSpeech ? _c("speech-loading-button", {
|
|
292
|
+
on: {
|
|
293
|
+
click: _vm.stopRecognition
|
|
294
|
+
}
|
|
295
|
+
}) : _vm._e(), _vm._v(" "), _vm.clearable ? _c("clear-button", {
|
|
296
|
+
on: {
|
|
297
|
+
clear: _vm.clear
|
|
298
|
+
}
|
|
299
|
+
}) : _vm._e()], 1)];
|
|
300
|
+
})], 2) : _vm._e(), _vm._v(" "), _vm.variant === "updown" && _vm.showUpdown ? _c("div", {
|
|
301
|
+
staticClass: "el-x-sender-updown-wrap"
|
|
302
|
+
}, [_vm.$slots.prefix ? _c("div", {
|
|
303
|
+
staticClass: "el-x-sender-prefix"
|
|
304
|
+
}, [_vm._t("prefix")], 2) : _vm._e(), _vm._v(" "), _c("div", {
|
|
305
|
+
staticClass: "el-x-sender-action-list"
|
|
306
|
+
}, [_vm._t("action-list", function () {
|
|
307
|
+
return [_c("div", {
|
|
308
|
+
staticClass: "el-x-sender-action-list-presets"
|
|
309
|
+
}, [!_vm.loading ? _c("send-button", {
|
|
310
|
+
attrs: {
|
|
311
|
+
disabled: _vm.isSubmitDisabled
|
|
312
|
+
},
|
|
313
|
+
on: {
|
|
314
|
+
submit: _vm.submit
|
|
315
|
+
}
|
|
316
|
+
}) : _vm._e(), _vm._v(" "), _vm.loading ? _c("loading-button", {
|
|
317
|
+
on: {
|
|
318
|
+
cancel: _vm.cancel
|
|
319
|
+
}
|
|
320
|
+
}) : _vm._e(), _vm._v(" "), !_vm.speechLoading && _vm.allowSpeech ? _c("speech-button", {
|
|
321
|
+
on: {
|
|
322
|
+
click: _vm.startRecognition
|
|
323
|
+
}
|
|
324
|
+
}) : _vm._e(), _vm._v(" "), _vm.speechLoading && _vm.allowSpeech ? _c("speech-loading-button", {
|
|
325
|
+
on: {
|
|
326
|
+
click: _vm.stopRecognition
|
|
327
|
+
}
|
|
328
|
+
}) : _vm._e(), _vm._v(" "), _vm.clearable ? _c("clear-button", {
|
|
329
|
+
on: {
|
|
330
|
+
clear: _vm.clear
|
|
240
331
|
}
|
|
332
|
+
}) : _vm._e()], 1)];
|
|
333
|
+
})], 2)]) : _vm._e()], 1), _vm._v(" "), _c("transition", {
|
|
334
|
+
attrs: {
|
|
335
|
+
name: "slide"
|
|
336
|
+
}
|
|
337
|
+
}, [_vm.$slots.footer ? _c("div", {
|
|
338
|
+
staticClass: "el-x-sender-footer"
|
|
339
|
+
}, [_vm._t("footer")], 2) : _vm._e()]), _vm._v(" "), _c("el-popover", {
|
|
340
|
+
ref: "popoverRef",
|
|
341
|
+
attrs: {
|
|
342
|
+
disabled: _vm.disabled,
|
|
343
|
+
"visible-arrow": false,
|
|
344
|
+
appendToBody: false,
|
|
345
|
+
placement: _vm.triggerPopoverPlacement,
|
|
346
|
+
offset: _vm.triggerPopoverOffset,
|
|
347
|
+
"popper-class": "el-x-sender-trigger-popover",
|
|
348
|
+
trigger: "manual"
|
|
349
|
+
},
|
|
350
|
+
on: {
|
|
351
|
+
show: _vm.onPopoverShow
|
|
352
|
+
},
|
|
353
|
+
model: {
|
|
354
|
+
value: _vm.popoverVisible,
|
|
355
|
+
callback: function ($$v) {
|
|
356
|
+
_vm.popoverVisible = $$v;
|
|
357
|
+
},
|
|
358
|
+
expression: "popoverVisible"
|
|
241
359
|
}
|
|
360
|
+
}, [_c("template", {
|
|
361
|
+
slot: "default"
|
|
362
|
+
}, [_vm._t("trigger-popover", function () {
|
|
363
|
+
return [_vm._v("\n 当前触发的字符为:" + _vm._s(`${_vm.triggerString}`) + " 在这里定义的内容,但注意这里的回车事件将会被\n 输入框 覆盖\n ")];
|
|
364
|
+
}, {
|
|
365
|
+
triggerString: _vm.triggerString,
|
|
366
|
+
readonly: _vm.readOnly
|
|
367
|
+
})], 2)], 2)], 1)]);
|
|
368
|
+
};
|
|
369
|
+
var staticRenderFns = [];
|
|
370
|
+
render._withStripped = true;
|
|
242
371
|
|
|
243
|
-
|
|
244
|
-
var item = [].concat(modules[_i]);
|
|
372
|
+
// CONCATENATED MODULE: ./src/components/Sender/src/main.vue?vue&type=template&id=1822655c&scoped=true
|
|
245
373
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
continue;
|
|
249
|
-
}
|
|
374
|
+
// EXTERNAL MODULE: ./src/locale/mixin.js
|
|
375
|
+
var mixin = __webpack_require__(31);
|
|
250
376
|
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
377
|
+
// 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
|
|
378
|
+
var ClearButtonvue_type_template_id_74c70621_scoped_true_render = function render() {
|
|
379
|
+
var _vm = this,
|
|
380
|
+
_c = _vm._self._c;
|
|
381
|
+
return _c("div", {
|
|
382
|
+
staticClass: "el-x-send-button"
|
|
383
|
+
}, [_c("el-button", {
|
|
384
|
+
attrs: {
|
|
385
|
+
circle: "",
|
|
386
|
+
size: "small"
|
|
387
|
+
},
|
|
388
|
+
on: {
|
|
389
|
+
click: function ($event) {
|
|
390
|
+
return _vm.$emit("clear");
|
|
257
391
|
}
|
|
258
|
-
|
|
259
|
-
list.push(item);
|
|
260
392
|
}
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
|
|
393
|
+
}, [_c("i", {
|
|
394
|
+
staticClass: "el-icon-brush"
|
|
395
|
+
})])], 1);
|
|
264
396
|
};
|
|
397
|
+
var ClearButtonvue_type_template_id_74c70621_scoped_true_staticRenderFns = [];
|
|
398
|
+
ClearButtonvue_type_template_id_74c70621_scoped_true_render._withStripped = true;
|
|
265
399
|
|
|
266
|
-
|
|
400
|
+
// CONCATENATED MODULE: ./src/components/Sender/src/components/ClearButton.vue?vue&type=template&id=74c70621&scoped=true
|
|
267
401
|
|
|
268
|
-
|
|
269
|
-
|
|
402
|
+
// 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
|
|
403
|
+
/* harmony default export */ var ClearButtonvue_type_script_lang_js = ({
|
|
404
|
+
name: 'ClearButton'
|
|
405
|
+
});
|
|
406
|
+
// CONCATENATED MODULE: ./src/components/Sender/src/components/ClearButton.vue?vue&type=script&lang=js
|
|
407
|
+
/* harmony default export */ var components_ClearButtonvue_type_script_lang_js = (ClearButtonvue_type_script_lang_js);
|
|
408
|
+
// EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js
|
|
409
|
+
var injectStylesIntoStyleTag = __webpack_require__(3);
|
|
410
|
+
var injectStylesIntoStyleTag_default = /*#__PURE__*/__webpack_require__.n(injectStylesIntoStyleTag);
|
|
270
411
|
|
|
271
|
-
|
|
412
|
+
// 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
|
|
413
|
+
var ClearButtonvue_type_style_index_0_id_74c70621_prod_scoped_true_lang_scss = __webpack_require__(92);
|
|
272
414
|
|
|
415
|
+
// 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
|
|
273
416
|
|
|
274
|
-
|
|
275
|
-
var memo;
|
|
276
|
-
return function memorize() {
|
|
277
|
-
if (typeof memo === 'undefined') {
|
|
278
|
-
// Test for IE <= 9 as proposed by Browserhacks
|
|
279
|
-
// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805
|
|
280
|
-
// Tests for existence of standard globals is to allow style-loader
|
|
281
|
-
// to operate correctly into non-standard environments
|
|
282
|
-
// @see https://github.com/webpack-contrib/style-loader/issues/177
|
|
283
|
-
memo = Boolean(window && document && document.all && !window.atob);
|
|
284
|
-
}
|
|
417
|
+
|
|
285
418
|
|
|
286
|
-
|
|
287
|
-
};
|
|
288
|
-
}();
|
|
419
|
+
var options = {};
|
|
289
420
|
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
return function memorize(target) {
|
|
293
|
-
if (typeof memo[target] === 'undefined') {
|
|
294
|
-
var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself
|
|
421
|
+
options.insert = "head";
|
|
422
|
+
options.singleton = false;
|
|
295
423
|
|
|
296
|
-
|
|
297
|
-
try {
|
|
298
|
-
// This will throw an exception if access to iframe is blocked
|
|
299
|
-
// due to cross-origin restrictions
|
|
300
|
-
styleTarget = styleTarget.contentDocument.head;
|
|
301
|
-
} catch (e) {
|
|
302
|
-
// istanbul ignore next
|
|
303
|
-
styleTarget = null;
|
|
304
|
-
}
|
|
305
|
-
}
|
|
424
|
+
var update = injectStylesIntoStyleTag_default()(ClearButtonvue_type_style_index_0_id_74c70621_prod_scoped_true_lang_scss["a" /* default */], options);
|
|
306
425
|
|
|
307
|
-
memo[target] = styleTarget;
|
|
308
|
-
}
|
|
309
426
|
|
|
310
|
-
return memo[target];
|
|
311
|
-
};
|
|
312
|
-
}();
|
|
313
427
|
|
|
314
|
-
var
|
|
428
|
+
/* 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 || {});
|
|
429
|
+
// CONCATENATED MODULE: ./src/components/Sender/src/components/ClearButton.vue?vue&type=style&index=0&id=74c70621&prod&scoped=true&lang=scss
|
|
315
430
|
|
|
316
|
-
|
|
317
|
-
|
|
431
|
+
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
|
|
432
|
+
var componentNormalizer = __webpack_require__(0);
|
|
318
433
|
|
|
319
|
-
|
|
320
|
-
if (stylesInDom[i].identifier === identifier) {
|
|
321
|
-
result = i;
|
|
322
|
-
break;
|
|
323
|
-
}
|
|
324
|
-
}
|
|
434
|
+
// CONCATENATED MODULE: ./src/components/Sender/src/components/ClearButton.vue
|
|
325
435
|
|
|
326
|
-
return result;
|
|
327
|
-
}
|
|
328
436
|
|
|
329
|
-
function modulesToDom(list, options) {
|
|
330
|
-
var idCountMap = {};
|
|
331
|
-
var identifiers = [];
|
|
332
437
|
|
|
333
|
-
for (var i = 0; i < list.length; i++) {
|
|
334
|
-
var item = list[i];
|
|
335
|
-
var id = options.base ? item[0] + options.base : item[0];
|
|
336
|
-
var count = idCountMap[id] || 0;
|
|
337
|
-
var identifier = "".concat(id, " ").concat(count);
|
|
338
|
-
idCountMap[id] = count + 1;
|
|
339
|
-
var index = getIndexByIdentifier(identifier);
|
|
340
|
-
var obj = {
|
|
341
|
-
css: item[1],
|
|
342
|
-
media: item[2],
|
|
343
|
-
sourceMap: item[3]
|
|
344
|
-
};
|
|
345
438
|
|
|
346
|
-
if (index !== -1) {
|
|
347
|
-
stylesInDom[index].references++;
|
|
348
|
-
stylesInDom[index].updater(obj);
|
|
349
|
-
} else {
|
|
350
|
-
stylesInDom.push({
|
|
351
|
-
identifier: identifier,
|
|
352
|
-
updater: addStyle(obj, options),
|
|
353
|
-
references: 1
|
|
354
|
-
});
|
|
355
|
-
}
|
|
356
439
|
|
|
357
|
-
identifiers.push(identifier);
|
|
358
|
-
}
|
|
359
440
|
|
|
360
|
-
|
|
361
|
-
}
|
|
441
|
+
/* normalize component */
|
|
362
442
|
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
443
|
+
var component = Object(componentNormalizer["a" /* default */])(
|
|
444
|
+
components_ClearButtonvue_type_script_lang_js,
|
|
445
|
+
ClearButtonvue_type_template_id_74c70621_scoped_true_render,
|
|
446
|
+
ClearButtonvue_type_template_id_74c70621_scoped_true_staticRenderFns,
|
|
447
|
+
false,
|
|
448
|
+
null,
|
|
449
|
+
"74c70621",
|
|
450
|
+
null
|
|
451
|
+
|
|
452
|
+
)
|
|
366
453
|
|
|
367
|
-
|
|
368
|
-
|
|
454
|
+
/* harmony default export */ var ClearButton = (component.exports);
|
|
455
|
+
// 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=46826223&scoped=true
|
|
456
|
+
var LoadingButtonvue_type_template_id_46826223_scoped_true_render = function render() {
|
|
457
|
+
var _vm = this,
|
|
458
|
+
_c = _vm._self._c;
|
|
459
|
+
return _c("div", {
|
|
460
|
+
staticClass: "el-x-send-button"
|
|
461
|
+
}, [_c("el-button", {
|
|
462
|
+
attrs: {
|
|
463
|
+
circle: "",
|
|
464
|
+
size: "small"
|
|
465
|
+
},
|
|
466
|
+
on: {
|
|
467
|
+
click: function ($event) {
|
|
468
|
+
return _vm.$emit("cancel");
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
}, [_c("loading", {
|
|
472
|
+
staticClass: "loading-svg"
|
|
473
|
+
})], 1)], 1);
|
|
474
|
+
};
|
|
475
|
+
var LoadingButtonvue_type_template_id_46826223_scoped_true_staticRenderFns = [];
|
|
476
|
+
LoadingButtonvue_type_template_id_46826223_scoped_true_render._withStripped = true;
|
|
369
477
|
|
|
370
|
-
|
|
371
|
-
|
|
478
|
+
// CONCATENATED MODULE: ./src/components/Sender/src/components/LoadingButton.vue?vue&type=template&id=46826223&scoped=true
|
|
479
|
+
|
|
480
|
+
// 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
|
|
481
|
+
var Loadingvue_type_template_id_1f0f8c14_scoped_true_render = function render() {
|
|
482
|
+
var _vm = this,
|
|
483
|
+
_c = _vm._self._c;
|
|
484
|
+
return _c("svg", {
|
|
485
|
+
attrs: {
|
|
486
|
+
viewBox: "0 0 1000 1000",
|
|
487
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
488
|
+
"xmlns:xlink": "http://www.w3.org/1999/xlink"
|
|
372
489
|
}
|
|
373
|
-
}
|
|
490
|
+
}, [_c("title", [_vm._v("Loading")]), _vm._v(" "), _c("rect", {
|
|
491
|
+
attrs: {
|
|
492
|
+
fill: "currentColor",
|
|
493
|
+
height: "250",
|
|
494
|
+
rx: "24",
|
|
495
|
+
ry: "24",
|
|
496
|
+
width: "250",
|
|
497
|
+
x: "375",
|
|
498
|
+
y: "375"
|
|
499
|
+
}
|
|
500
|
+
}), _vm._v(" "), _c("circle", {
|
|
501
|
+
attrs: {
|
|
502
|
+
cx: "500",
|
|
503
|
+
cy: "500",
|
|
504
|
+
fill: "none",
|
|
505
|
+
r: "450",
|
|
506
|
+
stroke: "currentColor",
|
|
507
|
+
"stroke-width": "100",
|
|
508
|
+
opacity: "0.45"
|
|
509
|
+
}
|
|
510
|
+
}), _vm._v(" "), _c("circle", {
|
|
511
|
+
attrs: {
|
|
512
|
+
cx: "500",
|
|
513
|
+
cy: "500",
|
|
514
|
+
fill: "none",
|
|
515
|
+
r: "450",
|
|
516
|
+
stroke: "currentColor",
|
|
517
|
+
"stroke-width": "100",
|
|
518
|
+
"stroke-dasharray": "600 9999999"
|
|
519
|
+
}
|
|
520
|
+
}, [_c("animateTransform", {
|
|
521
|
+
attrs: {
|
|
522
|
+
attributeName: "transform",
|
|
523
|
+
dur: "1s",
|
|
524
|
+
from: "0 500 500",
|
|
525
|
+
repeatCount: "indefinite",
|
|
526
|
+
to: "360 500 500",
|
|
527
|
+
type: "rotate"
|
|
528
|
+
}
|
|
529
|
+
})], 1)]);
|
|
530
|
+
};
|
|
531
|
+
var Loadingvue_type_template_id_1f0f8c14_scoped_true_staticRenderFns = [];
|
|
532
|
+
Loadingvue_type_template_id_1f0f8c14_scoped_true_render._withStripped = true;
|
|
374
533
|
|
|
375
|
-
|
|
376
|
-
style.setAttribute(key, attributes[key]);
|
|
377
|
-
});
|
|
534
|
+
// CONCATENATED MODULE: ./src/components/Sender/src/components/Loading.vue?vue&type=template&id=1f0f8c14&scoped=true
|
|
378
535
|
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
536
|
+
// 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
|
|
537
|
+
/* harmony default export */ var Loadingvue_type_script_lang_js = ({
|
|
538
|
+
name: 'Loading'
|
|
539
|
+
});
|
|
540
|
+
// CONCATENATED MODULE: ./src/components/Sender/src/components/Loading.vue?vue&type=script&lang=js
|
|
541
|
+
/* harmony default export */ var components_Loadingvue_type_script_lang_js = (Loadingvue_type_script_lang_js);
|
|
542
|
+
// CONCATENATED MODULE: ./src/components/Sender/src/components/Loading.vue
|
|
383
543
|
|
|
384
|
-
if (!target) {
|
|
385
|
-
throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");
|
|
386
|
-
}
|
|
387
544
|
|
|
388
|
-
target.appendChild(style);
|
|
389
|
-
}
|
|
390
545
|
|
|
391
|
-
return style;
|
|
392
|
-
}
|
|
393
546
|
|
|
394
|
-
function removeStyleElement(style) {
|
|
395
|
-
// istanbul ignore if
|
|
396
|
-
if (style.parentNode === null) {
|
|
397
|
-
return false;
|
|
398
|
-
}
|
|
399
547
|
|
|
400
|
-
|
|
401
|
-
}
|
|
402
|
-
/* istanbul ignore next */
|
|
548
|
+
/* normalize component */
|
|
403
549
|
|
|
550
|
+
var Loading_component = Object(componentNormalizer["a" /* default */])(
|
|
551
|
+
components_Loadingvue_type_script_lang_js,
|
|
552
|
+
Loadingvue_type_template_id_1f0f8c14_scoped_true_render,
|
|
553
|
+
Loadingvue_type_template_id_1f0f8c14_scoped_true_staticRenderFns,
|
|
554
|
+
false,
|
|
555
|
+
null,
|
|
556
|
+
"1f0f8c14",
|
|
557
|
+
null
|
|
558
|
+
|
|
559
|
+
)
|
|
404
560
|
|
|
405
|
-
var
|
|
406
|
-
|
|
407
|
-
return function replace(index, replacement) {
|
|
408
|
-
textStore[index] = replacement;
|
|
409
|
-
return textStore.filter(Boolean).join('\n');
|
|
410
|
-
};
|
|
411
|
-
}();
|
|
561
|
+
/* harmony default export */ var Loading = (Loading_component.exports);
|
|
562
|
+
// 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
|
|
412
563
|
|
|
413
|
-
|
|
414
|
-
|
|
564
|
+
/* harmony default export */ var LoadingButtonvue_type_script_lang_js = ({
|
|
565
|
+
name: 'LoadingButton',
|
|
566
|
+
components: {
|
|
567
|
+
Loading: Loading
|
|
568
|
+
}
|
|
569
|
+
});
|
|
570
|
+
// CONCATENATED MODULE: ./src/components/Sender/src/components/LoadingButton.vue?vue&type=script&lang=js
|
|
571
|
+
/* harmony default export */ var components_LoadingButtonvue_type_script_lang_js = (LoadingButtonvue_type_script_lang_js);
|
|
572
|
+
// 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=46826223&prod&scoped=true&lang=scss
|
|
573
|
+
var LoadingButtonvue_type_style_index_0_id_46826223_prod_scoped_true_lang_scss = __webpack_require__(93);
|
|
415
574
|
|
|
416
|
-
|
|
575
|
+
// 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=46826223&prod&scoped=true&lang=scss
|
|
417
576
|
|
|
418
|
-
|
|
419
|
-
style.styleSheet.cssText = replaceText(index, css);
|
|
420
|
-
} else {
|
|
421
|
-
var cssNode = document.createTextNode(css);
|
|
422
|
-
var childNodes = style.childNodes;
|
|
577
|
+
|
|
423
578
|
|
|
424
|
-
|
|
425
|
-
style.removeChild(childNodes[index]);
|
|
426
|
-
}
|
|
579
|
+
var LoadingButtonvue_type_style_index_0_id_46826223_prod_scoped_true_lang_scss_options = {};
|
|
427
580
|
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
} else {
|
|
431
|
-
style.appendChild(cssNode);
|
|
432
|
-
}
|
|
433
|
-
}
|
|
434
|
-
}
|
|
581
|
+
LoadingButtonvue_type_style_index_0_id_46826223_prod_scoped_true_lang_scss_options.insert = "head";
|
|
582
|
+
LoadingButtonvue_type_style_index_0_id_46826223_prod_scoped_true_lang_scss_options.singleton = false;
|
|
435
583
|
|
|
436
|
-
|
|
437
|
-
var css = obj.css;
|
|
438
|
-
var media = obj.media;
|
|
439
|
-
var sourceMap = obj.sourceMap;
|
|
584
|
+
var LoadingButtonvue_type_style_index_0_id_46826223_prod_scoped_true_lang_scss_update = injectStylesIntoStyleTag_default()(LoadingButtonvue_type_style_index_0_id_46826223_prod_scoped_true_lang_scss["a" /* default */], LoadingButtonvue_type_style_index_0_id_46826223_prod_scoped_true_lang_scss_options);
|
|
440
585
|
|
|
441
|
-
if (media) {
|
|
442
|
-
style.setAttribute('media', media);
|
|
443
|
-
} else {
|
|
444
|
-
style.removeAttribute('media');
|
|
445
|
-
}
|
|
446
586
|
|
|
447
|
-
if (sourceMap && typeof btoa !== 'undefined') {
|
|
448
|
-
css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");
|
|
449
|
-
} // For old IE
|
|
450
587
|
|
|
451
|
-
|
|
588
|
+
/* harmony default export */ var components_LoadingButtonvue_type_style_index_0_id_46826223_prod_scoped_true_lang_scss = (LoadingButtonvue_type_style_index_0_id_46826223_prod_scoped_true_lang_scss["a" /* default */].locals || {});
|
|
589
|
+
// CONCATENATED MODULE: ./src/components/Sender/src/components/LoadingButton.vue?vue&type=style&index=0&id=46826223&prod&scoped=true&lang=scss
|
|
452
590
|
|
|
591
|
+
// CONCATENATED MODULE: ./src/components/Sender/src/components/LoadingButton.vue
|
|
453
592
|
|
|
454
|
-
if (style.styleSheet) {
|
|
455
|
-
style.styleSheet.cssText = css;
|
|
456
|
-
} else {
|
|
457
|
-
while (style.firstChild) {
|
|
458
|
-
style.removeChild(style.firstChild);
|
|
459
|
-
}
|
|
460
593
|
|
|
461
|
-
style.appendChild(document.createTextNode(css));
|
|
462
|
-
}
|
|
463
|
-
}
|
|
464
594
|
|
|
465
|
-
var singleton = null;
|
|
466
|
-
var singletonCounter = 0;
|
|
467
595
|
|
|
468
|
-
function addStyle(obj, options) {
|
|
469
|
-
var style;
|
|
470
|
-
var update;
|
|
471
|
-
var remove;
|
|
472
596
|
|
|
473
|
-
if (options.singleton) {
|
|
474
|
-
var styleIndex = singletonCounter++;
|
|
475
|
-
style = singleton || (singleton = insertStyleElement(options));
|
|
476
|
-
update = applyToSingletonTag.bind(null, style, styleIndex, false);
|
|
477
|
-
remove = applyToSingletonTag.bind(null, style, styleIndex, true);
|
|
478
|
-
} else {
|
|
479
|
-
style = insertStyleElement(options);
|
|
480
|
-
update = applyToTag.bind(null, style, options);
|
|
481
597
|
|
|
482
|
-
|
|
483
|
-
removeStyleElement(style);
|
|
484
|
-
};
|
|
485
|
-
}
|
|
598
|
+
/* normalize component */
|
|
486
599
|
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
600
|
+
var LoadingButton_component = Object(componentNormalizer["a" /* default */])(
|
|
601
|
+
components_LoadingButtonvue_type_script_lang_js,
|
|
602
|
+
LoadingButtonvue_type_template_id_46826223_scoped_true_render,
|
|
603
|
+
LoadingButtonvue_type_template_id_46826223_scoped_true_staticRenderFns,
|
|
604
|
+
false,
|
|
605
|
+
null,
|
|
606
|
+
"46826223",
|
|
607
|
+
null
|
|
608
|
+
|
|
609
|
+
)
|
|
493
610
|
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
611
|
+
/* harmony default export */ var LoadingButton = (LoadingButton_component.exports);
|
|
612
|
+
// 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
|
|
613
|
+
var SendButtonvue_type_template_id_671e6570_scoped_true_render = function render() {
|
|
614
|
+
var _vm = this,
|
|
615
|
+
_c = _vm._self._c;
|
|
616
|
+
return _c("div", {
|
|
617
|
+
staticClass: "el-x-send-button"
|
|
618
|
+
}, [_c("el-button", {
|
|
619
|
+
attrs: {
|
|
620
|
+
circle: "",
|
|
621
|
+
disabled: _vm.disabled,
|
|
622
|
+
size: "small"
|
|
623
|
+
},
|
|
624
|
+
on: {
|
|
625
|
+
click: function ($event) {
|
|
626
|
+
return _vm.$emit("submit");
|
|
627
|
+
}
|
|
497
628
|
}
|
|
498
|
-
}
|
|
499
|
-
|
|
629
|
+
}, [_c("i", {
|
|
630
|
+
staticClass: "el-icon-top"
|
|
631
|
+
})])], 1);
|
|
632
|
+
};
|
|
633
|
+
var SendButtonvue_type_template_id_671e6570_scoped_true_staticRenderFns = [];
|
|
634
|
+
SendButtonvue_type_template_id_671e6570_scoped_true_render._withStripped = true;
|
|
500
635
|
|
|
501
|
-
|
|
502
|
-
options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
|
|
503
|
-
// tags it will allow on a page
|
|
636
|
+
// CONCATENATED MODULE: ./src/components/Sender/src/components/SendButton.vue?vue&type=template&id=671e6570&scoped=true
|
|
504
637
|
|
|
505
|
-
|
|
506
|
-
|
|
638
|
+
// 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
|
|
639
|
+
/* harmony default export */ var SendButtonvue_type_script_lang_js = ({
|
|
640
|
+
name: 'SendButton',
|
|
641
|
+
props: {
|
|
642
|
+
disabled: {
|
|
643
|
+
type: Boolean,
|
|
644
|
+
default: false
|
|
645
|
+
}
|
|
507
646
|
}
|
|
647
|
+
});
|
|
648
|
+
// CONCATENATED MODULE: ./src/components/Sender/src/components/SendButton.vue?vue&type=script&lang=js
|
|
649
|
+
/* harmony default export */ var components_SendButtonvue_type_script_lang_js = (SendButtonvue_type_script_lang_js);
|
|
650
|
+
// CONCATENATED MODULE: ./src/components/Sender/src/components/SendButton.vue
|
|
508
651
|
|
|
509
|
-
list = list || [];
|
|
510
|
-
var lastIdentifiers = modulesToDom(list, options);
|
|
511
|
-
return function update(newList) {
|
|
512
|
-
newList = newList || [];
|
|
513
|
-
|
|
514
|
-
if (Object.prototype.toString.call(newList) !== '[object Array]') {
|
|
515
|
-
return;
|
|
516
|
-
}
|
|
517
652
|
|
|
518
|
-
for (var i = 0; i < lastIdentifiers.length; i++) {
|
|
519
|
-
var identifier = lastIdentifiers[i];
|
|
520
|
-
var index = getIndexByIdentifier(identifier);
|
|
521
|
-
stylesInDom[index].references--;
|
|
522
|
-
}
|
|
523
653
|
|
|
524
|
-
var newLastIdentifiers = modulesToDom(newList, options);
|
|
525
654
|
|
|
526
|
-
for (var _i = 0; _i < lastIdentifiers.length; _i++) {
|
|
527
|
-
var _identifier = lastIdentifiers[_i];
|
|
528
655
|
|
|
529
|
-
|
|
656
|
+
/* normalize component */
|
|
530
657
|
|
|
531
|
-
|
|
532
|
-
|
|
658
|
+
var SendButton_component = Object(componentNormalizer["a" /* default */])(
|
|
659
|
+
components_SendButtonvue_type_script_lang_js,
|
|
660
|
+
SendButtonvue_type_template_id_671e6570_scoped_true_render,
|
|
661
|
+
SendButtonvue_type_template_id_671e6570_scoped_true_staticRenderFns,
|
|
662
|
+
false,
|
|
663
|
+
null,
|
|
664
|
+
"671e6570",
|
|
665
|
+
null
|
|
666
|
+
|
|
667
|
+
)
|
|
533
668
|
|
|
534
|
-
|
|
535
|
-
|
|
669
|
+
/* harmony default export */ var SendButton = (SendButton_component.exports);
|
|
670
|
+
// 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
|
|
671
|
+
var SpeechButtonvue_type_template_id_7e5519b2_scoped_true_render = function render() {
|
|
672
|
+
var _vm = this,
|
|
673
|
+
_c = _vm._self._c;
|
|
674
|
+
return _c("div", {
|
|
675
|
+
staticClass: "el-x-send-button"
|
|
676
|
+
}, [_c("el-button", {
|
|
677
|
+
attrs: {
|
|
678
|
+
circle: "",
|
|
679
|
+
size: "small"
|
|
680
|
+
},
|
|
681
|
+
on: {
|
|
682
|
+
click: _vm.onClick
|
|
536
683
|
}
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
};
|
|
684
|
+
}, [_c("i", {
|
|
685
|
+
staticClass: "el-icon-microphone"
|
|
686
|
+
})])], 1);
|
|
540
687
|
};
|
|
688
|
+
var SpeechButtonvue_type_template_id_7e5519b2_scoped_true_staticRenderFns = [];
|
|
689
|
+
SpeechButtonvue_type_template_id_7e5519b2_scoped_true_render._withStripped = true;
|
|
541
690
|
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
/***/ 89:
|
|
545
|
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
546
|
-
|
|
547
|
-
"use strict";
|
|
548
|
-
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
|
|
549
|
-
/* 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__);
|
|
550
|
-
// Imports
|
|
551
|
-
|
|
552
|
-
var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
|
|
553
|
-
// Module
|
|
554
|
-
___CSS_LOADER_EXPORT___.push([module.i, ".el-x-send-button .el-button .el-icon-brush[data-v-74c70621]{transform:rotate(180deg)}", ""]);
|
|
555
|
-
// Exports
|
|
556
|
-
/* harmony default export */ __webpack_exports__["a"] = (___CSS_LOADER_EXPORT___);
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
/***/ }),
|
|
560
|
-
|
|
561
|
-
/***/ 90:
|
|
562
|
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
563
|
-
|
|
564
|
-
"use strict";
|
|
565
|
-
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
|
|
566
|
-
/* 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__);
|
|
567
|
-
// Imports
|
|
568
|
-
|
|
569
|
-
var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
|
|
570
|
-
// Module
|
|
571
|
-
___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%}", ""]);
|
|
572
|
-
// Exports
|
|
573
|
-
/* harmony default export */ __webpack_exports__["a"] = (___CSS_LOADER_EXPORT___);
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
/***/ }),
|
|
577
|
-
|
|
578
|
-
/***/ 91:
|
|
579
|
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
580
|
-
|
|
581
|
-
"use strict";
|
|
582
|
-
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
|
|
583
|
-
/* 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__);
|
|
584
|
-
// Imports
|
|
585
|
-
|
|
586
|
-
var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
|
|
587
|
-
// Module
|
|
588
|
-
___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}", ""]);
|
|
589
|
-
// Exports
|
|
590
|
-
/* harmony default export */ __webpack_exports__["a"] = (___CSS_LOADER_EXPORT___);
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
/***/ }),
|
|
691
|
+
// CONCATENATED MODULE: ./src/components/Sender/src/components/SpeechButton.vue?vue&type=template&id=7e5519b2&scoped=true
|
|
594
692
|
|
|
595
|
-
|
|
596
|
-
|
|
693
|
+
// 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
|
|
694
|
+
/* harmony default export */ var SpeechButtonvue_type_script_lang_js = ({
|
|
695
|
+
name: 'SpeechButton',
|
|
696
|
+
methods: {
|
|
697
|
+
onClick() {
|
|
698
|
+
this.$emit('click');
|
|
699
|
+
}
|
|
700
|
+
}
|
|
701
|
+
});
|
|
702
|
+
// CONCATENATED MODULE: ./src/components/Sender/src/components/SpeechButton.vue?vue&type=script&lang=js
|
|
703
|
+
/* harmony default export */ var components_SpeechButtonvue_type_script_lang_js = (SpeechButtonvue_type_script_lang_js);
|
|
704
|
+
// CONCATENATED MODULE: ./src/components/Sender/src/components/SpeechButton.vue
|
|
597
705
|
|
|
598
|
-
"use strict";
|
|
599
|
-
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
|
|
600
|
-
/* 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__);
|
|
601
|
-
// Imports
|
|
602
706
|
|
|
603
|
-
var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
|
|
604
|
-
// Module
|
|
605
|
-
___CSS_LOADER_EXPORT___.push([module.i, "[data-v-32628228]:root{--color-primary: #409EFF;--color-success: #67C23A;--color-warning: #E6A23C;--color-danger: #F56C6C;--color-info: #909399}[data-v-32628228]:root{--el-x-sender-trigger-popover-width: fit-content;--el-x-sender-trigger-popover-left: 0px}.el-x-sender[data-v-32628228]{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-32628228]: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-32628228]: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-32628228]:focus-within::after{border-width:2px}.el-x-sender .el-x-sender-header-wrap[data-v-32628228]{display:flex;flex-direction:column;gap:8px;width:100%;margin:0;padding:0}.el-x-sender .slide-enter-active[data-v-32628228],.el-x-sender .slide-leave-active[data-v-32628228]{transition:height 300ms,opacity 300ms,border 300ms;overflow:hidden}.el-x-sender .slide-enter[data-v-32628228],.el-x-sender .slide-leave-to[data-v-32628228]{height:0;opacity:0}.el-x-sender .el-x-sender-header[data-v-32628228]{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#dcdfe6}.el-x-sender .el-x-sender-content[data-v-32628228]{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-32628228]{flex:none}.el-x-sender .el-x-sender-content .el-x-sender-input[data-v-32628228]{height:100%;display:flex;align-items:center;align-self:center}.el-x-sender .el-x-sender-content .el-x-sender-input[data-v-32628228] .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-32628228]{display:flex;gap:8px;flex-direction:row-reverse}.el-x-sender .content-variant-updown[data-v-32628228]{display:flex;flex-direction:column;align-items:initial}.el-x-sender .content-variant-updown .el-x-sender-updown-wrap[data-v-32628228]{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-32628228]{flex:initial}.el-x-sender .content-variant-updown .el-x-sender-updown-wrap .el-x-sender-action-list[data-v-32628228]{margin-left:auto}.el-x-sender .el-x-sender-footer[data-v-32628228]{border-top-width:1px;border-top-style:solid;border-top-color:#dcdfe6}.el-x-sender-disabled[data-v-32628228]{background-color:#f5f7fa;pointer-events:none}.el-x-sender-trigger-popover[data-v-32628228]{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}", ""]);
|
|
606
|
-
// Exports
|
|
607
|
-
/* harmony default export */ __webpack_exports__["a"] = (___CSS_LOADER_EXPORT___);
|
|
608
707
|
|
|
609
708
|
|
|
610
|
-
/***/ }),
|
|
611
709
|
|
|
612
|
-
|
|
613
|
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
710
|
+
/* normalize component */
|
|
614
711
|
|
|
615
|
-
"
|
|
616
|
-
|
|
617
|
-
|
|
712
|
+
var SpeechButton_component = Object(componentNormalizer["a" /* default */])(
|
|
713
|
+
components_SpeechButtonvue_type_script_lang_js,
|
|
714
|
+
SpeechButtonvue_type_template_id_7e5519b2_scoped_true_render,
|
|
715
|
+
SpeechButtonvue_type_template_id_7e5519b2_scoped_true_staticRenderFns,
|
|
716
|
+
false,
|
|
717
|
+
null,
|
|
718
|
+
"7e5519b2",
|
|
719
|
+
null
|
|
720
|
+
|
|
721
|
+
)
|
|
618
722
|
|
|
619
|
-
|
|
620
|
-
|
|
723
|
+
/* harmony default export */ var SpeechButton = (SpeechButton_component.exports);
|
|
724
|
+
// 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=26ea2934&scoped=true
|
|
725
|
+
var SpeechLoadingButtonvue_type_template_id_26ea2934_scoped_true_render = function render() {
|
|
621
726
|
var _vm = this,
|
|
622
727
|
_c = _vm._self._c;
|
|
623
728
|
return _c("div", {
|
|
624
|
-
staticClass: "el-x-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
"
|
|
628
|
-
"
|
|
629
|
-
}
|
|
630
|
-
}, [_c("div", {
|
|
631
|
-
ref: "senderRef",
|
|
632
|
-
staticClass: "el-x-sender",
|
|
633
|
-
class: {
|
|
634
|
-
"el-x-sender-disabled": _vm.disabled
|
|
635
|
-
},
|
|
636
|
-
style: {
|
|
637
|
-
"--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)",
|
|
638
|
-
"--el-x-sender-input-font-size": "14px",
|
|
639
|
-
"--el-x-sender-header-animation-duration": `${_vm.headerAnimationTimer}ms`
|
|
640
|
-
}
|
|
641
|
-
}, [_c("transition", {
|
|
642
|
-
attrs: {
|
|
643
|
-
name: "slide"
|
|
644
|
-
}
|
|
645
|
-
}, [_vm.visiableHeader ? _c("div", {
|
|
646
|
-
staticClass: "el-x-sender-header-wrap"
|
|
647
|
-
}, [_vm.$slots.header ? _c("div", {
|
|
648
|
-
staticClass: "el-x-sender-header"
|
|
649
|
-
}, [_vm._t("header")], 2) : _vm._e()]) : _vm._e()]), _vm._v(" "), _c("div", {
|
|
650
|
-
staticClass: "el-x-sender-content",
|
|
651
|
-
class: {
|
|
652
|
-
"content-variant-updown": _vm.variant === "updown"
|
|
729
|
+
staticClass: "el-x-send-button"
|
|
730
|
+
}, [_c("el-button", {
|
|
731
|
+
attrs: {
|
|
732
|
+
circle: "",
|
|
733
|
+
size: "small"
|
|
653
734
|
},
|
|
654
735
|
on: {
|
|
655
|
-
|
|
736
|
+
click: _vm.onClick
|
|
656
737
|
}
|
|
657
|
-
}, [
|
|
658
|
-
staticClass: "
|
|
659
|
-
}
|
|
660
|
-
|
|
661
|
-
|
|
738
|
+
}, [_c("speech-loading", {
|
|
739
|
+
staticClass: "loading-svg"
|
|
740
|
+
})], 1)], 1);
|
|
741
|
+
};
|
|
742
|
+
var SpeechLoadingButtonvue_type_template_id_26ea2934_scoped_true_staticRenderFns = [];
|
|
743
|
+
SpeechLoadingButtonvue_type_template_id_26ea2934_scoped_true_render._withStripped = true;
|
|
744
|
+
|
|
745
|
+
// CONCATENATED MODULE: ./src/components/Sender/src/components/SpeechLoadingButton.vue?vue&type=template&id=26ea2934&scoped=true
|
|
746
|
+
|
|
747
|
+
// 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
|
|
748
|
+
var SpeechLoadingvue_type_template_id_5cab3032_scoped_true_render = function render() {
|
|
749
|
+
var _vm = this,
|
|
750
|
+
_c = _vm._self._c;
|
|
751
|
+
return _c("svg", {
|
|
752
|
+
class: _vm.className,
|
|
662
753
|
attrs: {
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
"
|
|
667
|
-
placeholder: _vm.placeholder,
|
|
668
|
-
readonly: _vm.readOnly || _vm.disabled,
|
|
669
|
-
disabled: _vm.disabled
|
|
670
|
-
},
|
|
671
|
-
on: {
|
|
672
|
-
compositionstart: _vm.handleCompositionStart,
|
|
673
|
-
compositionend: _vm.handleCompositionEnd
|
|
674
|
-
},
|
|
675
|
-
nativeOn: {
|
|
676
|
-
keydown: function ($event) {
|
|
677
|
-
return _vm.handleKeyDown.apply(null, arguments);
|
|
678
|
-
}
|
|
679
|
-
},
|
|
680
|
-
model: {
|
|
681
|
-
value: _vm.internalValue,
|
|
682
|
-
callback: function ($$v) {
|
|
683
|
-
_vm.internalValue = $$v;
|
|
684
|
-
},
|
|
685
|
-
expression: "internalValue"
|
|
754
|
+
color: "currentColor",
|
|
755
|
+
viewBox: `0 0 ${_vm.SIZE} ${_vm.SIZE}`,
|
|
756
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
757
|
+
"xmlns:xlink": "http://www.w3.org/1999/xlink"
|
|
686
758
|
}
|
|
687
|
-
}
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
return [_c("div", {
|
|
691
|
-
staticClass: "el-x-sender-action-list-presets"
|
|
692
|
-
}, [!_vm.loading ? _c("send-button", {
|
|
759
|
+
}, [_c("title", [_vm._v("Speech Recording")]), _vm._v(" "), _vm._l(_vm.rects, function (item, index) {
|
|
760
|
+
return _c("rect", {
|
|
761
|
+
key: index,
|
|
693
762
|
attrs: {
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
cancel: _vm.cancel
|
|
702
|
-
}
|
|
703
|
-
}) : _vm._e(), _vm._v(" "), !_vm.speechLoading && _vm.allowSpeech ? _c("speech-button", {
|
|
704
|
-
on: {
|
|
705
|
-
click: _vm.startRecognition
|
|
706
|
-
}
|
|
707
|
-
}) : _vm._e(), _vm._v(" "), _vm.speechLoading && _vm.allowSpeech ? _c("speech-loading-button", {
|
|
708
|
-
on: {
|
|
709
|
-
click: _vm.stopRecognition
|
|
710
|
-
}
|
|
711
|
-
}) : _vm._e(), _vm._v(" "), _vm.clearable ? _c("clear-button", {
|
|
712
|
-
on: {
|
|
713
|
-
clear: _vm.clear
|
|
763
|
+
fill: "currentColor",
|
|
764
|
+
rx: _vm.RECT_RADIUS,
|
|
765
|
+
ry: _vm.RECT_RADIUS,
|
|
766
|
+
height: _vm.RECT_HEIGHT_MIN,
|
|
767
|
+
width: _vm.RECT_WIDTH,
|
|
768
|
+
x: item.x,
|
|
769
|
+
y: item.yMin
|
|
714
770
|
}
|
|
715
|
-
}
|
|
716
|
-
})], 2) : _vm._e(), _vm._v(" "), _vm.variant === "updown" && _vm.showUpdown ? _c("div", {
|
|
717
|
-
staticClass: "el-x-sender-updown-wrap"
|
|
718
|
-
}, [_vm.$slots.prefix ? _c("div", {
|
|
719
|
-
staticClass: "el-x-sender-prefix"
|
|
720
|
-
}, [_vm._t("prefix")], 2) : _vm._e(), _vm._v(" "), _c("div", {
|
|
721
|
-
staticClass: "el-x-sender-action-list"
|
|
722
|
-
}, [_vm._t("action-list", function () {
|
|
723
|
-
return [_c("div", {
|
|
724
|
-
staticClass: "el-x-sender-action-list-presets"
|
|
725
|
-
}, [!_vm.loading ? _c("send-button", {
|
|
771
|
+
}, [_c("animate", {
|
|
726
772
|
attrs: {
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
on: {
|
|
734
|
-
cancel: _vm.cancel
|
|
735
|
-
}
|
|
736
|
-
}) : _vm._e(), _vm._v(" "), !_vm.speechLoading && _vm.allowSpeech ? _c("speech-button", {
|
|
737
|
-
on: {
|
|
738
|
-
click: _vm.startRecognition
|
|
739
|
-
}
|
|
740
|
-
}) : _vm._e(), _vm._v(" "), _vm.speechLoading && _vm.allowSpeech ? _c("speech-loading-button", {
|
|
741
|
-
on: {
|
|
742
|
-
click: _vm.stopRecognition
|
|
773
|
+
attributeName: "height",
|
|
774
|
+
values: `${_vm.RECT_HEIGHT_MIN}; ${_vm.RECT_HEIGHT_MAX}; ${_vm.RECT_HEIGHT_MIN}`,
|
|
775
|
+
keyTimes: "0; 0.5; 1",
|
|
776
|
+
dur: `${_vm.DURATION}s`,
|
|
777
|
+
begin: `${_vm.DURATION / _vm.COUNT * index}s`,
|
|
778
|
+
repeatCount: "indefinite"
|
|
743
779
|
}
|
|
744
|
-
})
|
|
745
|
-
|
|
746
|
-
|
|
780
|
+
}), _vm._v(" "), _c("animate", {
|
|
781
|
+
attrs: {
|
|
782
|
+
attributeName: "y",
|
|
783
|
+
values: `${item.yMin}; ${item.yMax}; ${item.yMin}`,
|
|
784
|
+
keyTimes: "0; 0.5; 1",
|
|
785
|
+
dur: `${_vm.DURATION}s`,
|
|
786
|
+
begin: `${_vm.DURATION / _vm.COUNT * index}s`,
|
|
787
|
+
repeatCount: "indefinite"
|
|
747
788
|
}
|
|
748
|
-
})
|
|
749
|
-
})], 2)
|
|
750
|
-
attrs: {
|
|
751
|
-
name: "slide"
|
|
752
|
-
}
|
|
753
|
-
}, [_vm.$slots.footer ? _c("div", {
|
|
754
|
-
staticClass: "el-x-sender-footer"
|
|
755
|
-
}, [_vm._t("footer")], 2) : _vm._e()]), _vm._v(" "), _c("el-popover", {
|
|
756
|
-
ref: "popoverRef",
|
|
757
|
-
attrs: {
|
|
758
|
-
disabled: _vm.disabled,
|
|
759
|
-
"visible-arrow": false,
|
|
760
|
-
placement: _vm.triggerPopoverPlacement,
|
|
761
|
-
offset: _vm.triggerPopoverOffset,
|
|
762
|
-
"popper-class": "el-x-sender-trigger-popover",
|
|
763
|
-
trigger: "manual"
|
|
764
|
-
},
|
|
765
|
-
on: {
|
|
766
|
-
show: _vm.onPopoverShow
|
|
767
|
-
},
|
|
768
|
-
model: {
|
|
769
|
-
value: _vm.popoverVisible,
|
|
770
|
-
callback: function ($$v) {
|
|
771
|
-
_vm.popoverVisible = $$v;
|
|
772
|
-
},
|
|
773
|
-
expression: "popoverVisible"
|
|
774
|
-
}
|
|
775
|
-
}, [_c("template", {
|
|
776
|
-
slot: "default"
|
|
777
|
-
}, [_vm._t("trigger-popover", function () {
|
|
778
|
-
return [_vm._v("\n 当前触发的字符为:" + _vm._s(`${_vm.triggerString}`) + " 在这里定义的内容,但注意这里的回车事件将会被\n 输入框 覆盖\n ")];
|
|
779
|
-
}, {
|
|
780
|
-
triggerString: _vm.triggerString,
|
|
781
|
-
readonly: _vm.readOnly
|
|
782
|
-
})], 2)], 2)], 1)]);
|
|
789
|
+
})]);
|
|
790
|
+
})], 2);
|
|
783
791
|
};
|
|
784
|
-
var
|
|
785
|
-
|
|
792
|
+
var SpeechLoadingvue_type_template_id_5cab3032_scoped_true_staticRenderFns = [];
|
|
793
|
+
SpeechLoadingvue_type_template_id_5cab3032_scoped_true_render._withStripped = true;
|
|
786
794
|
|
|
787
|
-
// CONCATENATED MODULE: ./src/components/Sender/src/
|
|
795
|
+
// CONCATENATED MODULE: ./src/components/Sender/src/components/SpeechLoading.vue?vue&type=template&id=5cab3032&scoped=true
|
|
788
796
|
|
|
789
|
-
// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib
|
|
790
|
-
var
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
attrs: {
|
|
797
|
-
circle: "",
|
|
798
|
-
size: "small"
|
|
799
|
-
},
|
|
800
|
-
on: {
|
|
801
|
-
click: function ($event) {
|
|
802
|
-
return _vm.$emit("clear");
|
|
803
|
-
}
|
|
797
|
+
// 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
|
|
798
|
+
/* harmony default export */ var SpeechLoadingvue_type_script_lang_js = ({
|
|
799
|
+
name: 'SpeechLoading',
|
|
800
|
+
props: {
|
|
801
|
+
className: {
|
|
802
|
+
type: String,
|
|
803
|
+
default: ''
|
|
804
804
|
}
|
|
805
|
-
},
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
805
|
+
},
|
|
806
|
+
data() {
|
|
807
|
+
return {
|
|
808
|
+
// 定义常量
|
|
809
|
+
SIZE: 1000,
|
|
810
|
+
COUNT: 4,
|
|
811
|
+
RECT_WIDTH: 140,
|
|
812
|
+
RECT_RADIUS: 70,
|
|
813
|
+
// RECT_WIDTH / 2
|
|
814
|
+
RECT_HEIGHT_MIN: 250,
|
|
815
|
+
RECT_HEIGHT_MAX: 500,
|
|
816
|
+
DURATION: 0.8
|
|
817
|
+
};
|
|
818
|
+
},
|
|
819
|
+
computed: {
|
|
820
|
+
// 计算矩形的位置和高度范围
|
|
821
|
+
rects() {
|
|
822
|
+
const dest = (this.SIZE - this.RECT_WIDTH * this.COUNT) / (this.COUNT - 1);
|
|
823
|
+
return Array.from({
|
|
824
|
+
length: this.COUNT
|
|
825
|
+
}).map((_, index) => {
|
|
826
|
+
const x = index * (dest + this.RECT_WIDTH);
|
|
827
|
+
const yMin = this.SIZE / 2 - this.RECT_HEIGHT_MIN / 2;
|
|
828
|
+
const yMax = this.SIZE / 2 - this.RECT_HEIGHT_MAX / 2;
|
|
829
|
+
return {
|
|
830
|
+
x,
|
|
831
|
+
yMin,
|
|
832
|
+
yMax
|
|
833
|
+
};
|
|
834
|
+
});
|
|
835
|
+
}
|
|
836
|
+
}
|
|
837
|
+
});
|
|
838
|
+
// CONCATENATED MODULE: ./src/components/Sender/src/components/SpeechLoading.vue?vue&type=script&lang=js
|
|
839
|
+
/* harmony default export */ var components_SpeechLoadingvue_type_script_lang_js = (SpeechLoadingvue_type_script_lang_js);
|
|
840
|
+
// CONCATENATED MODULE: ./src/components/Sender/src/components/SpeechLoading.vue
|
|
811
841
|
|
|
812
|
-
// CONCATENATED MODULE: ./src/components/Sender/src/components/ClearButton.vue?vue&type=template&id=74c70621&scoped=true
|
|
813
842
|
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
843
|
+
|
|
844
|
+
|
|
845
|
+
|
|
846
|
+
/* normalize component */
|
|
847
|
+
|
|
848
|
+
var SpeechLoading_component = Object(componentNormalizer["a" /* default */])(
|
|
849
|
+
components_SpeechLoadingvue_type_script_lang_js,
|
|
850
|
+
SpeechLoadingvue_type_template_id_5cab3032_scoped_true_render,
|
|
851
|
+
SpeechLoadingvue_type_template_id_5cab3032_scoped_true_staticRenderFns,
|
|
852
|
+
false,
|
|
853
|
+
null,
|
|
854
|
+
"5cab3032",
|
|
855
|
+
null
|
|
856
|
+
|
|
857
|
+
)
|
|
858
|
+
|
|
859
|
+
/* harmony default export */ var SpeechLoading = (SpeechLoading_component.exports);
|
|
860
|
+
// 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
|
|
861
|
+
|
|
862
|
+
/* harmony default export */ var SpeechLoadingButtonvue_type_script_lang_js = ({
|
|
863
|
+
name: 'SpeechLoadingButton',
|
|
864
|
+
components: {
|
|
865
|
+
SpeechLoading: SpeechLoading
|
|
866
|
+
},
|
|
867
|
+
methods: {
|
|
868
|
+
onClick() {
|
|
869
|
+
this.$emit('click');
|
|
870
|
+
}
|
|
871
|
+
}
|
|
872
|
+
});
|
|
873
|
+
// CONCATENATED MODULE: ./src/components/Sender/src/components/SpeechLoadingButton.vue?vue&type=script&lang=js
|
|
874
|
+
/* harmony default export */ var components_SpeechLoadingButtonvue_type_script_lang_js = (SpeechLoadingButtonvue_type_script_lang_js);
|
|
875
|
+
// 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=26ea2934&prod&scoped=true&lang=scss
|
|
876
|
+
var SpeechLoadingButtonvue_type_style_index_0_id_26ea2934_prod_scoped_true_lang_scss = __webpack_require__(94);
|
|
877
|
+
|
|
878
|
+
// 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=26ea2934&prod&scoped=true&lang=scss
|
|
879
|
+
|
|
880
|
+
|
|
881
|
+
|
|
882
|
+
var SpeechLoadingButtonvue_type_style_index_0_id_26ea2934_prod_scoped_true_lang_scss_options = {};
|
|
883
|
+
|
|
884
|
+
SpeechLoadingButtonvue_type_style_index_0_id_26ea2934_prod_scoped_true_lang_scss_options.insert = "head";
|
|
885
|
+
SpeechLoadingButtonvue_type_style_index_0_id_26ea2934_prod_scoped_true_lang_scss_options.singleton = false;
|
|
886
|
+
|
|
887
|
+
var SpeechLoadingButtonvue_type_style_index_0_id_26ea2934_prod_scoped_true_lang_scss_update = injectStylesIntoStyleTag_default()(SpeechLoadingButtonvue_type_style_index_0_id_26ea2934_prod_scoped_true_lang_scss["a" /* default */], SpeechLoadingButtonvue_type_style_index_0_id_26ea2934_prod_scoped_true_lang_scss_options);
|
|
888
|
+
|
|
889
|
+
|
|
890
|
+
|
|
891
|
+
/* harmony default export */ var components_SpeechLoadingButtonvue_type_style_index_0_id_26ea2934_prod_scoped_true_lang_scss = (SpeechLoadingButtonvue_type_style_index_0_id_26ea2934_prod_scoped_true_lang_scss["a" /* default */].locals || {});
|
|
892
|
+
// CONCATENATED MODULE: ./src/components/Sender/src/components/SpeechLoadingButton.vue?vue&type=style&index=0&id=26ea2934&prod&scoped=true&lang=scss
|
|
893
|
+
|
|
894
|
+
// CONCATENATED MODULE: ./src/components/Sender/src/components/SpeechLoadingButton.vue
|
|
895
|
+
|
|
896
|
+
|
|
897
|
+
|
|
898
|
+
|
|
899
|
+
|
|
900
|
+
|
|
901
|
+
/* normalize component */
|
|
902
|
+
|
|
903
|
+
var SpeechLoadingButton_component = Object(componentNormalizer["a" /* default */])(
|
|
904
|
+
components_SpeechLoadingButtonvue_type_script_lang_js,
|
|
905
|
+
SpeechLoadingButtonvue_type_template_id_26ea2934_scoped_true_render,
|
|
906
|
+
SpeechLoadingButtonvue_type_template_id_26ea2934_scoped_true_staticRenderFns,
|
|
907
|
+
false,
|
|
908
|
+
null,
|
|
909
|
+
"26ea2934",
|
|
910
|
+
null
|
|
911
|
+
|
|
912
|
+
)
|
|
913
|
+
|
|
914
|
+
/* harmony default export */ var SpeechLoadingButton = (SpeechLoadingButton_component.exports);
|
|
915
|
+
// 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
|
|
916
|
+
|
|
917
|
+
|
|
918
|
+
|
|
919
|
+
|
|
920
|
+
|
|
921
|
+
|
|
922
|
+
/* harmony default export */ var mainvue_type_script_lang_js = ({
|
|
923
|
+
name: 'ElXSender',
|
|
924
|
+
mixins: [mixin["a" /* default */]],
|
|
925
|
+
components: {
|
|
926
|
+
ClearButton: ClearButton,
|
|
927
|
+
LoadingButton: LoadingButton,
|
|
928
|
+
SendButton: SendButton,
|
|
929
|
+
SpeechButton: SpeechButton,
|
|
930
|
+
SpeechLoadingButton: SpeechLoadingButton
|
|
931
|
+
},
|
|
932
|
+
props: {
|
|
933
|
+
value: {
|
|
934
|
+
type: String,
|
|
935
|
+
default: ''
|
|
936
|
+
},
|
|
937
|
+
placeholder: {
|
|
938
|
+
type: String,
|
|
939
|
+
default: ''
|
|
940
|
+
},
|
|
941
|
+
autoSize: {
|
|
942
|
+
type: Object,
|
|
943
|
+
default: () => ({
|
|
944
|
+
minRows: 1,
|
|
945
|
+
maxRows: 6
|
|
946
|
+
})
|
|
947
|
+
},
|
|
948
|
+
readOnly: Boolean,
|
|
949
|
+
disabled: Boolean,
|
|
950
|
+
loading: Boolean,
|
|
951
|
+
clearable: Boolean,
|
|
952
|
+
allowSpeech: Boolean,
|
|
953
|
+
submitType: {
|
|
954
|
+
type: String,
|
|
955
|
+
default: 'enter',
|
|
956
|
+
validator: value => ['enter', 'shiftEnter'].includes(value)
|
|
957
|
+
},
|
|
958
|
+
headerAnimationTimer: {
|
|
959
|
+
type: Number,
|
|
960
|
+
default: 300
|
|
961
|
+
},
|
|
962
|
+
inputWidth: {
|
|
963
|
+
type: String,
|
|
964
|
+
default: '100%'
|
|
965
|
+
},
|
|
966
|
+
// 变体属性
|
|
967
|
+
variant: {
|
|
968
|
+
type: String,
|
|
969
|
+
default: 'default',
|
|
970
|
+
validator: value => ['default', 'updown'].includes(value)
|
|
971
|
+
},
|
|
972
|
+
showUpdown: {
|
|
973
|
+
type: Boolean,
|
|
974
|
+
default: true
|
|
975
|
+
},
|
|
976
|
+
submitBtnDisabled: Boolean,
|
|
977
|
+
inputStyle: {
|
|
978
|
+
type: Object,
|
|
979
|
+
default: () => ({})
|
|
980
|
+
},
|
|
981
|
+
// 新增 el-popover 样式透传
|
|
982
|
+
triggerStrings: {
|
|
983
|
+
type: Array,
|
|
984
|
+
default: () => []
|
|
985
|
+
},
|
|
986
|
+
triggerPopoverVisible: {
|
|
987
|
+
type: Boolean,
|
|
988
|
+
default: false
|
|
989
|
+
},
|
|
990
|
+
triggerPopoverWidth: {
|
|
991
|
+
type: String,
|
|
992
|
+
default: 'fit-content'
|
|
993
|
+
},
|
|
994
|
+
triggerPopoverLeft: {
|
|
995
|
+
type: String,
|
|
996
|
+
default: '0px'
|
|
997
|
+
},
|
|
998
|
+
triggerPopoverOffset: {
|
|
999
|
+
type: Number,
|
|
1000
|
+
default: 0
|
|
1001
|
+
},
|
|
1002
|
+
triggerPopoverPlacement: {
|
|
1003
|
+
type: String,
|
|
1004
|
+
default: 'top-start',
|
|
1005
|
+
validator: value => ['top', 'top-start', 'top-end', 'bottom', 'bottom-start', 'bottom-end', 'left', 'left-start', 'left-end', 'right', 'right-start', 'right-end'].includes(value)
|
|
1006
|
+
}
|
|
1007
|
+
},
|
|
1008
|
+
data() {
|
|
1009
|
+
return {
|
|
1010
|
+
senderRef: null,
|
|
1011
|
+
inputRef: null,
|
|
1012
|
+
popoverVisible: this.triggerPopoverVisible,
|
|
1013
|
+
internalValue: this.value,
|
|
1014
|
+
isComposing: false,
|
|
1015
|
+
popoverRef: null,
|
|
1016
|
+
triggerString: '',
|
|
1017
|
+
visiableHeader: false,
|
|
1018
|
+
recognition: null,
|
|
1019
|
+
speechLoading: false,
|
|
1020
|
+
triggerDebounce: false
|
|
1021
|
+
};
|
|
1022
|
+
},
|
|
1023
|
+
computed: {
|
|
1024
|
+
// 判断是否存在 recordingChange 监听器
|
|
1025
|
+
hasOnRecordingChangeListener() {
|
|
1026
|
+
return !!(this.$listeners && this.$listeners.recordingChange);
|
|
1027
|
+
},
|
|
1028
|
+
// 判断是否存在 trigger 监听器
|
|
1029
|
+
hasOnTriggerListener() {
|
|
1030
|
+
return !!(this.$listeners && this.$listeners.trigger);
|
|
1031
|
+
},
|
|
1032
|
+
// 计算提交按钮禁用状态
|
|
1033
|
+
isSubmitDisabled() {
|
|
1034
|
+
// 用户显式设置了 submitBtnDisabled 时优先使用
|
|
1035
|
+
if (typeof this.submitBtnDisabled === 'boolean') {
|
|
1036
|
+
return this.submitBtnDisabled;
|
|
1037
|
+
}
|
|
1038
|
+
// 否则保持默认逻辑:无内容时禁用
|
|
1039
|
+
return !this.internalValue;
|
|
1040
|
+
},
|
|
1041
|
+
// 根据字体大小动态计算 autoSize
|
|
1042
|
+
computedAutoSize() {
|
|
1043
|
+
// 如果用户提供了autoSize,则优先使用
|
|
1044
|
+
if (this.autoSize) return this.autoSize;
|
|
1045
|
+
|
|
1046
|
+
// 否则返回默认值
|
|
1047
|
+
return {
|
|
1048
|
+
minRows: 1,
|
|
1049
|
+
maxRows: 6
|
|
1050
|
+
};
|
|
1051
|
+
},
|
|
1052
|
+
// 计算 placeholder
|
|
1053
|
+
computedPlaceholder() {
|
|
1054
|
+
return this.placeholder || this.elXt('el_x.sender.placeholder');
|
|
1055
|
+
}
|
|
1056
|
+
},
|
|
1057
|
+
watch: {
|
|
1058
|
+
value(val) {
|
|
1059
|
+
this.internalValue = val;
|
|
1060
|
+
},
|
|
1061
|
+
// 监听样式变化
|
|
1062
|
+
inputStyle: {
|
|
1063
|
+
handler() {
|
|
1064
|
+
this.$nextTick(() => {
|
|
1065
|
+
this.applyInputStyles();
|
|
1066
|
+
});
|
|
1067
|
+
},
|
|
1068
|
+
deep: true
|
|
1069
|
+
},
|
|
1070
|
+
inputWidth() {
|
|
1071
|
+
this.$nextTick(() => {
|
|
1072
|
+
this.applyInputStyles();
|
|
1073
|
+
});
|
|
1074
|
+
},
|
|
1075
|
+
// 监听外部传入的 triggerPopoverVisible 变化
|
|
1076
|
+
triggerPopoverVisible(val) {
|
|
1077
|
+
// 仅在值不同时更新,避免循环触发
|
|
1078
|
+
if (this.popoverVisible !== val) {
|
|
1079
|
+
this.popoverVisible = val;
|
|
1080
|
+
}
|
|
1081
|
+
},
|
|
1082
|
+
// 监听内部 popoverVisible 变化,向外同步
|
|
1083
|
+
popoverVisible(val) {
|
|
1084
|
+
if (val !== this.triggerPopoverVisible) {
|
|
1085
|
+
this.$emit('update:triggerPopoverVisible', val);
|
|
1086
|
+
}
|
|
1087
|
+
|
|
1088
|
+
// 新增:当弹窗关闭时,设置短时间内的防抖状态
|
|
1089
|
+
if (val === false) {
|
|
1090
|
+
this.triggerDebounce = true;
|
|
1091
|
+
setTimeout(() => {
|
|
1092
|
+
this.triggerDebounce = false;
|
|
1093
|
+
}, 300); // 300ms 防抖时间,防止频繁触发
|
|
1094
|
+
}
|
|
1095
|
+
},
|
|
1096
|
+
internalValue(newVal, oldVal) {
|
|
1097
|
+
this.$emit('input', newVal);
|
|
1098
|
+
|
|
1099
|
+
// 当内容变化时,修复高度问题
|
|
1100
|
+
|
|
1101
|
+
if (this.isComposing) return;
|
|
1102
|
+
// 新增:如果处于防抖状态,则不进行触发检测
|
|
1103
|
+
if (this.triggerDebounce) return;
|
|
1104
|
+
|
|
1105
|
+
// 触发逻辑:检测输入内容中是否出现了触发字符
|
|
1106
|
+
const triggerStrings = this.triggerStrings || []; // 如果为 undefined,就使用空数组
|
|
1107
|
+
|
|
1108
|
+
// 新的检测逻辑:检查是否在当前光标位置前有触发字符
|
|
1109
|
+
if (this.inputRef && triggerStrings.length > 0) {
|
|
1110
|
+
const textArea = this.inputRef.$el.querySelector('textarea');
|
|
1111
|
+
if (textArea) {
|
|
1112
|
+
const cursorPosition = textArea.selectionStart;
|
|
1113
|
+
// 检查光标前是否有新增的触发字符
|
|
1114
|
+
if (cursorPosition > 0 && newVal.length > oldVal.length) {
|
|
1115
|
+
const lastChar = newVal.charAt(cursorPosition - 1);
|
|
1116
|
+
if (triggerStrings.includes(lastChar)) {
|
|
1117
|
+
this.triggerString = lastChar;
|
|
1118
|
+
if (this.hasOnTriggerListener) {
|
|
1119
|
+
this.$emit('trigger', {
|
|
1120
|
+
oldValue: oldVal,
|
|
1121
|
+
newValue: newVal,
|
|
1122
|
+
triggerString: lastChar,
|
|
1123
|
+
isOpen: true,
|
|
1124
|
+
cursorPosition: cursorPosition
|
|
1125
|
+
});
|
|
1126
|
+
}
|
|
1127
|
+
this.popoverVisible = true;
|
|
1128
|
+
return;
|
|
1129
|
+
}
|
|
1130
|
+
}
|
|
1131
|
+
}
|
|
1132
|
+
}
|
|
1133
|
+
|
|
1134
|
+
// 原有的处理逻辑,用于向后兼容
|
|
1135
|
+
const validOldVal = typeof oldVal === 'string' ? oldVal : '';
|
|
1136
|
+
const wasOldValTrigger = triggerStrings.includes(validOldVal);
|
|
1137
|
+
const isNewValTrigger = triggerStrings.includes(newVal);
|
|
1138
|
+
|
|
1139
|
+
// 触发显示:从空变为触发字符
|
|
1140
|
+
if (oldVal === '' && isNewValTrigger) {
|
|
1141
|
+
this.triggerString = newVal;
|
|
1142
|
+
if (this.hasOnTriggerListener) {
|
|
1143
|
+
this.$emit('trigger', {
|
|
1144
|
+
oldValue: oldVal,
|
|
1145
|
+
newValue: newVal,
|
|
1146
|
+
triggerString: newVal,
|
|
1147
|
+
isOpen: true
|
|
1148
|
+
});
|
|
1149
|
+
}
|
|
1150
|
+
this.popoverVisible = true;
|
|
1151
|
+
}
|
|
1152
|
+
// 关闭:从触发字符变为非触发字符
|
|
1153
|
+
else if (!isNewValTrigger && wasOldValTrigger) {
|
|
1154
|
+
if (this.hasOnTriggerListener) {
|
|
1155
|
+
this.$emit('trigger', {
|
|
1156
|
+
oldValue: oldVal,
|
|
1157
|
+
newValue: newVal,
|
|
1158
|
+
triggerString: undefined,
|
|
1159
|
+
isOpen: false
|
|
1160
|
+
});
|
|
1161
|
+
}
|
|
1162
|
+
this.popoverVisible = false;
|
|
1163
|
+
}
|
|
1164
|
+
// 触发显示:从非空且非触发字符变为触发字符
|
|
1165
|
+
else if (oldVal !== '' && isNewValTrigger && !wasOldValTrigger) {
|
|
1166
|
+
this.triggerString = newVal;
|
|
1167
|
+
if (this.hasOnTriggerListener) {
|
|
1168
|
+
this.$emit('trigger', {
|
|
1169
|
+
oldValue: oldVal,
|
|
1170
|
+
newValue: newVal,
|
|
1171
|
+
triggerString: newVal,
|
|
1172
|
+
isOpen: true
|
|
1173
|
+
});
|
|
1174
|
+
}
|
|
1175
|
+
this.popoverVisible = true;
|
|
1176
|
+
}
|
|
1177
|
+
}
|
|
1178
|
+
},
|
|
1179
|
+
methods: {
|
|
1180
|
+
/* 直接应用输入框样式 */
|
|
1181
|
+
applyInputStyles() {
|
|
1182
|
+
if (!this.inputRef) return;
|
|
1183
|
+
const textareaEl = this.inputRef.$el.querySelector('textarea');
|
|
1184
|
+
if (!textareaEl) return;
|
|
1185
|
+
|
|
1186
|
+
// 设置默认基础样式
|
|
1187
|
+
const defaultStyles = {
|
|
1188
|
+
width: this.inputWidth || '100%',
|
|
1189
|
+
height: '24px',
|
|
1190
|
+
maxHeight: '176px',
|
|
1191
|
+
boxSizing: 'border-box'
|
|
1192
|
+
};
|
|
1193
|
+
|
|
1194
|
+
// 应用默认样式
|
|
1195
|
+
Object.keys(defaultStyles).forEach(key => {
|
|
1196
|
+
textareaEl.style[key] = defaultStyles[key];
|
|
1197
|
+
});
|
|
1198
|
+
|
|
1199
|
+
// 如果用户传入了样式对象,则应用覆盖默认样式
|
|
1200
|
+
if (this.inputStyle && typeof this.inputStyle === 'object') {
|
|
1201
|
+
Object.keys(this.inputStyle).forEach(key => {
|
|
1202
|
+
textareaEl.style[key] = this.inputStyle[key];
|
|
1203
|
+
});
|
|
1204
|
+
|
|
1205
|
+
// 如果用户设置了字体大小,需要调整高度
|
|
1206
|
+
if (this.inputStyle.fontSize) {
|
|
1207
|
+
// 确保高度能完全容纳当前字体大小
|
|
1208
|
+
const computedFontSize = window.getComputedStyle(textareaEl).fontSize;
|
|
1209
|
+
const fontSize = parseInt(computedFontSize);
|
|
1210
|
+
const minHeight = Math.max(fontSize * 1.5, 24) + 'px';
|
|
1211
|
+
textareaEl.style.minHeight = minHeight;
|
|
1212
|
+
|
|
1213
|
+
// 重新触发 autosize
|
|
1214
|
+
this.$nextTick(() => {
|
|
1215
|
+
// 在某些情况下需要手动触发Element UI的autosize更新
|
|
1216
|
+
const event = document.createEvent('Event');
|
|
1217
|
+
event.initEvent('autosize:update', true, false);
|
|
1218
|
+
textareaEl.dispatchEvent(event);
|
|
1219
|
+
});
|
|
1220
|
+
}
|
|
1221
|
+
}
|
|
1222
|
+
},
|
|
1223
|
+
/* 手动更新 popover 位置 */
|
|
1224
|
+
onPopoverShow() {
|
|
1225
|
+
if (this.$refs.popoverRef) {
|
|
1226
|
+
this.$nextTick(() => {
|
|
1227
|
+
this.$refs.popoverRef.referenceElm = this.$refs.senderRef;
|
|
1228
|
+
this.$refs.popoverRef.doDestroy();
|
|
1229
|
+
this.$refs.popoverRef.updatePopper();
|
|
1230
|
+
});
|
|
1231
|
+
}
|
|
1232
|
+
},
|
|
1233
|
+
/* 内容容器聚焦 开始 */
|
|
1234
|
+
onContentMouseDown(e) {
|
|
1235
|
+
// 点击容器后设置输入框的聚焦,会触发 &:focus-within 样式
|
|
1236
|
+
if (e.target !== this.$el.querySelector(`.el-textarea__inner`)) {
|
|
1237
|
+
e.preventDefault();
|
|
1238
|
+
}
|
|
1239
|
+
this.inputRef.focus();
|
|
1240
|
+
},
|
|
1241
|
+
/* 内容容器聚焦 结束 */
|
|
1242
|
+
|
|
1243
|
+
/* 头部显示隐藏 开始 */
|
|
1244
|
+
openHeader() {
|
|
1245
|
+
if (!this.$slots.header) return false;
|
|
1246
|
+
if (this.readOnly) return false;
|
|
1247
|
+
this.visiableHeader = true;
|
|
1248
|
+
},
|
|
1249
|
+
closeHeader() {
|
|
1250
|
+
if (!this.$slots.header) return;
|
|
1251
|
+
if (this.readOnly) return;
|
|
1252
|
+
this.visiableHeader = false;
|
|
1253
|
+
},
|
|
1254
|
+
/* 头部显示隐藏 结束 */
|
|
1255
|
+
|
|
1256
|
+
/* 使用浏览器自带的语音转文字功能 开始 */
|
|
1257
|
+
startRecognition() {
|
|
1258
|
+
if (this.readOnly || this.disabled) return; // 直接返回,不执行后续逻辑
|
|
1259
|
+
|
|
1260
|
+
if (this.hasOnRecordingChangeListener) {
|
|
1261
|
+
this.speechLoading = true;
|
|
1262
|
+
this.$emit('recording-change', true);
|
|
1263
|
+
return;
|
|
1264
|
+
}
|
|
1265
|
+
|
|
1266
|
+
// 检查浏览器支持的 SpeechRecognition API
|
|
1267
|
+
const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition || window.mozSpeechRecognition || window.msSpeechRecognition;
|
|
1268
|
+
if (SpeechRecognition) {
|
|
1269
|
+
try {
|
|
1270
|
+
this.recognition = new SpeechRecognition();
|
|
1271
|
+
this.recognition.continuous = true;
|
|
1272
|
+
this.recognition.interimResults = true;
|
|
1273
|
+
this.recognition.lang = 'zh-CN';
|
|
1274
|
+
this.recognition.onresult = event => {
|
|
1275
|
+
let results = '';
|
|
1276
|
+
for (let i = 0; i <= event.resultIndex; i++) {
|
|
1277
|
+
results += event.results[i][0].transcript;
|
|
1278
|
+
}
|
|
1279
|
+
if (!this.readOnly) {
|
|
1280
|
+
this.internalValue = results;
|
|
1281
|
+
}
|
|
1282
|
+
};
|
|
1283
|
+
this.recognition.onstart = () => {
|
|
1284
|
+
this.speechLoading = true;
|
|
1285
|
+
console.log('语音识别已启动');
|
|
1286
|
+
};
|
|
1287
|
+
this.recognition.onend = () => {
|
|
1288
|
+
this.speechLoading = false;
|
|
1289
|
+
console.log('语音识别已结束');
|
|
1290
|
+
};
|
|
1291
|
+
this.recognition.onerror = event => {
|
|
1292
|
+
console.error('语音识别出错:', event.error);
|
|
1293
|
+
this.speechLoading = false;
|
|
1294
|
+
// 可以添加用户友好提示
|
|
1295
|
+
if (event.error === 'not-allowed') {
|
|
1296
|
+
console.error('用户拒绝了麦克风访问权限');
|
|
1297
|
+
// 这里可以显示提示
|
|
1298
|
+
}
|
|
1299
|
+
};
|
|
1300
|
+
this.recognition.start();
|
|
1301
|
+
} catch (error) {
|
|
1302
|
+
console.error('启动语音识别失败:', error);
|
|
1303
|
+
this.speechLoading = false;
|
|
1304
|
+
}
|
|
1305
|
+
} else {
|
|
1306
|
+
console.error('浏览器不支持 Web Speech API');
|
|
1307
|
+
this.speechLoading = false;
|
|
1308
|
+
}
|
|
1309
|
+
},
|
|
1310
|
+
stopRecognition() {
|
|
1311
|
+
// 如果有自定义处理函数
|
|
1312
|
+
if (this.hasOnRecordingChangeListener) {
|
|
1313
|
+
this.speechLoading = false;
|
|
1314
|
+
this.$emit('recordingChange', false);
|
|
1315
|
+
return;
|
|
1316
|
+
}
|
|
1317
|
+
if (this.recognition) {
|
|
1318
|
+
this.recognition.stop();
|
|
1319
|
+
this.speechLoading = false;
|
|
1320
|
+
}
|
|
1321
|
+
},
|
|
1322
|
+
/* 使用浏览器自带的语音转文字功能 结束 */
|
|
1323
|
+
|
|
1324
|
+
/* 输入框事件 开始 */
|
|
1325
|
+
submit() {
|
|
1326
|
+
if (this.readOnly || this.loading || this.disabled || this.isSubmitDisabled) return;
|
|
1327
|
+
this.$emit('submit', this.internalValue);
|
|
1328
|
+
},
|
|
1329
|
+
// 取消按钮
|
|
1330
|
+
cancel() {
|
|
1331
|
+
if (this.readOnly) return;
|
|
1332
|
+
this.$emit('cancel', this.internalValue);
|
|
1333
|
+
},
|
|
1334
|
+
clear() {
|
|
1335
|
+
if (this.readOnly) return; // 直接返回,不执行后续逻辑
|
|
1336
|
+
this.inputRef.clear();
|
|
1337
|
+
this.internalValue = '';
|
|
1338
|
+
},
|
|
1339
|
+
// 在这判断组合键的回车键 (目前支持两种模式)
|
|
1340
|
+
handleKeyDown(e) {
|
|
1341
|
+
if (this.readOnly) return; // 直接返回,不执行后续逻辑
|
|
1342
|
+
|
|
1343
|
+
if (this.submitType === 'enter') {
|
|
1344
|
+
// 判断是否按下了 Shift + 回车键
|
|
1345
|
+
if (e.shiftKey && e.keyCode === 13) {
|
|
1346
|
+
e.preventDefault();
|
|
1347
|
+
const cursorPosition = e.target.selectionStart; // 获取光标位置
|
|
1348
|
+
const textBeforeCursor = this.internalValue.slice(0, cursorPosition); // 光标前的文本
|
|
1349
|
+
const textAfterCursor = this.internalValue.slice(cursorPosition); // 光标后的文本
|
|
1350
|
+
this.internalValue = `${textBeforeCursor}\n${textAfterCursor}`; // 插入换行符
|
|
1351
|
+
this.$nextTick(() => {
|
|
1352
|
+
e.target.setSelectionRange(cursorPosition + 1, cursorPosition + 1); // 更新光标位置
|
|
1353
|
+
});
|
|
1354
|
+
} else if (e.keyCode === 13 && !e.shiftKey) {
|
|
1355
|
+
// 阻止掉 Enter 的默认换行行为
|
|
1356
|
+
e.preventDefault();
|
|
1357
|
+
// 触发提交功能
|
|
1358
|
+
this.submit();
|
|
1359
|
+
}
|
|
1360
|
+
} else if (this.submitType === 'shiftEnter') {
|
|
1361
|
+
// 判断是否按下了 Shift + 回车键
|
|
1362
|
+
if (e.shiftKey && e.keyCode === 13) {
|
|
1363
|
+
// 阻止掉 Enter 的默认换行行为
|
|
1364
|
+
e.preventDefault();
|
|
1365
|
+
// 触发提交功能
|
|
1366
|
+
this.submit();
|
|
1367
|
+
} else if (e.keyCode === 13 && !e.shiftKey) {
|
|
1368
|
+
e.preventDefault();
|
|
1369
|
+
const cursorPosition = e.target.selectionStart; // 获取光标位置
|
|
1370
|
+
const textBeforeCursor = this.internalValue.slice(0, cursorPosition); // 光标前的文本
|
|
1371
|
+
const textAfterCursor = this.internalValue.slice(cursorPosition); // 光标后的文本
|
|
1372
|
+
this.internalValue = `${textBeforeCursor}\n${textAfterCursor}`; // 插入换行符
|
|
1373
|
+
this.$nextTick(() => {
|
|
1374
|
+
e.target.setSelectionRange(cursorPosition + 1, cursorPosition + 1); // 更新光标位置
|
|
1375
|
+
});
|
|
1376
|
+
}
|
|
1377
|
+
}
|
|
1378
|
+
},
|
|
1379
|
+
/* 输入框事件 结束 */
|
|
1380
|
+
|
|
1381
|
+
/* 焦点 事件 开始 */
|
|
1382
|
+
blur() {
|
|
1383
|
+
if (this.readOnly) return false;
|
|
1384
|
+
this.inputRef.blur();
|
|
1385
|
+
},
|
|
1386
|
+
focus(type = 'all') {
|
|
1387
|
+
if (this.readOnly) return false;
|
|
1388
|
+
if (type === 'all') {
|
|
1389
|
+
this.inputRef.select();
|
|
1390
|
+
} else if (type === 'start') {
|
|
1391
|
+
this.focusToStart();
|
|
1392
|
+
} else if (type === 'end') {
|
|
1393
|
+
this.focusToEnd();
|
|
1394
|
+
}
|
|
1395
|
+
},
|
|
1396
|
+
// 聚焦到文本最前方
|
|
1397
|
+
focusToStart() {
|
|
1398
|
+
if (this.inputRef) {
|
|
1399
|
+
// 获取底层的 textarea DOM 元素
|
|
1400
|
+
const textarea = this.inputRef.$el.querySelector('textarea');
|
|
1401
|
+
if (textarea) {
|
|
1402
|
+
textarea.focus(); // 聚焦到输入框
|
|
1403
|
+
textarea.setSelectionRange(0, 0); // 设置光标到最前方
|
|
1404
|
+
}
|
|
1405
|
+
}
|
|
1406
|
+
},
|
|
1407
|
+
// 聚焦到文本最后方
|
|
1408
|
+
focusToEnd() {
|
|
1409
|
+
if (this.inputRef) {
|
|
1410
|
+
// 获取底层的 textarea DOM 元素
|
|
1411
|
+
const textarea = this.inputRef.$el.querySelector('textarea');
|
|
1412
|
+
if (textarea) {
|
|
1413
|
+
textarea.focus(); // 聚焦到输入框
|
|
1414
|
+
textarea.setSelectionRange(this.internalValue.length, this.internalValue.length); // 设置光标到最后方
|
|
1415
|
+
}
|
|
1416
|
+
}
|
|
1417
|
+
},
|
|
1418
|
+
/* 焦点 事件 结束 */
|
|
1419
|
+
|
|
1420
|
+
// 处理输入法开始/结束 (此方法是拼音输入法的时候用)
|
|
1421
|
+
handleCompositionStart() {
|
|
1422
|
+
this.isComposing = true;
|
|
1423
|
+
},
|
|
1424
|
+
handleCompositionEnd() {
|
|
1425
|
+
this.isComposing = false;
|
|
1426
|
+
}
|
|
1427
|
+
},
|
|
1428
|
+
mounted() {
|
|
1429
|
+
// 应用样式
|
|
1430
|
+
this.$nextTick(() => {
|
|
1431
|
+
// 获取组件引用
|
|
1432
|
+
this.senderRef = this.$refs.senderRef;
|
|
1433
|
+
this.inputRef = this.$refs.inputRef;
|
|
1434
|
+
this.popoverRef = this.$refs.popoverRef;
|
|
1435
|
+
this.applyInputStyles();
|
|
1436
|
+
});
|
|
1437
|
+
},
|
|
1438
|
+
updated() {
|
|
1439
|
+
// 确保在组件更新后重新应用样式
|
|
1440
|
+
this.applyInputStyles();
|
|
1441
|
+
}
|
|
817
1442
|
});
|
|
818
|
-
// CONCATENATED MODULE: ./src/components/Sender/src/
|
|
819
|
-
/* harmony default export */ var
|
|
820
|
-
// EXTERNAL MODULE: ./node_modules/
|
|
821
|
-
var
|
|
822
|
-
var injectStylesIntoStyleTag_default = /*#__PURE__*/__webpack_require__.n(injectStylesIntoStyleTag);
|
|
823
|
-
|
|
824
|
-
// 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
|
|
825
|
-
var ClearButtonvue_type_style_index_0_id_74c70621_prod_scoped_true_lang_scss = __webpack_require__(89);
|
|
1443
|
+
// CONCATENATED MODULE: ./src/components/Sender/src/main.vue?vue&type=script&lang=js
|
|
1444
|
+
/* harmony default export */ var src_mainvue_type_script_lang_js = (mainvue_type_script_lang_js);
|
|
1445
|
+
// 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=1822655c&prod&lang=scss&scoped=true
|
|
1446
|
+
var mainvue_type_style_index_0_id_1822655c_prod_lang_scss_scoped_true = __webpack_require__(95);
|
|
826
1447
|
|
|
827
|
-
// 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/
|
|
1448
|
+
// 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=1822655c&prod&lang=scss&scoped=true
|
|
828
1449
|
|
|
829
1450
|
|
|
830
1451
|
|
|
831
|
-
var
|
|
832
|
-
|
|
833
|
-
options.insert = "head";
|
|
834
|
-
options.singleton = false;
|
|
1452
|
+
var mainvue_type_style_index_0_id_1822655c_prod_lang_scss_scoped_true_options = {};
|
|
835
1453
|
|
|
836
|
-
|
|
1454
|
+
mainvue_type_style_index_0_id_1822655c_prod_lang_scss_scoped_true_options.insert = "head";
|
|
1455
|
+
mainvue_type_style_index_0_id_1822655c_prod_lang_scss_scoped_true_options.singleton = false;
|
|
837
1456
|
|
|
1457
|
+
var mainvue_type_style_index_0_id_1822655c_prod_lang_scss_scoped_true_update = injectStylesIntoStyleTag_default()(mainvue_type_style_index_0_id_1822655c_prod_lang_scss_scoped_true["a" /* default */], mainvue_type_style_index_0_id_1822655c_prod_lang_scss_scoped_true_options);
|
|
838
1458
|
|
|
839
1459
|
|
|
840
|
-
/* 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 || {});
|
|
841
|
-
// CONCATENATED MODULE: ./src/components/Sender/src/components/ClearButton.vue?vue&type=style&index=0&id=74c70621&prod&scoped=true&lang=scss
|
|
842
1460
|
|
|
843
|
-
|
|
844
|
-
|
|
1461
|
+
/* harmony default export */ var src_mainvue_type_style_index_0_id_1822655c_prod_lang_scss_scoped_true = (mainvue_type_style_index_0_id_1822655c_prod_lang_scss_scoped_true["a" /* default */].locals || {});
|
|
1462
|
+
// CONCATENATED MODULE: ./src/components/Sender/src/main.vue?vue&type=style&index=0&id=1822655c&prod&lang=scss&scoped=true
|
|
845
1463
|
|
|
846
|
-
// CONCATENATED MODULE: ./src/components/Sender/src/
|
|
1464
|
+
// CONCATENATED MODULE: ./src/components/Sender/src/main.vue
|
|
847
1465
|
|
|
848
1466
|
|
|
849
1467
|
|
|
@@ -852,1049 +1470,578 @@ var componentNormalizer = __webpack_require__(0);
|
|
|
852
1470
|
|
|
853
1471
|
/* normalize component */
|
|
854
1472
|
|
|
855
|
-
var
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
1473
|
+
var main_component = Object(componentNormalizer["a" /* default */])(
|
|
1474
|
+
src_mainvue_type_script_lang_js,
|
|
1475
|
+
render,
|
|
1476
|
+
staticRenderFns,
|
|
859
1477
|
false,
|
|
860
1478
|
null,
|
|
861
|
-
"
|
|
1479
|
+
"1822655c",
|
|
862
1480
|
null
|
|
863
1481
|
|
|
864
1482
|
)
|
|
865
1483
|
|
|
866
|
-
/* harmony default export */ var
|
|
867
|
-
// CONCATENATED MODULE: ./
|
|
868
|
-
var LoadingButtonvue_type_template_id_4d4a8cac_scoped_true_render = function render() {
|
|
869
|
-
var _vm = this,
|
|
870
|
-
_c = _vm._self._c;
|
|
871
|
-
return _c("div", {
|
|
872
|
-
staticClass: "el-x-send-button"
|
|
873
|
-
}, [_c("el-button", {
|
|
874
|
-
attrs: {
|
|
875
|
-
circle: "",
|
|
876
|
-
size: "small"
|
|
877
|
-
},
|
|
878
|
-
on: {
|
|
879
|
-
click: function ($event) {
|
|
880
|
-
return _vm.$emit("cancel");
|
|
881
|
-
}
|
|
882
|
-
}
|
|
883
|
-
}, [_c("loading", {
|
|
884
|
-
staticClass: "loading-svg"
|
|
885
|
-
})], 1)], 1);
|
|
886
|
-
};
|
|
887
|
-
var LoadingButtonvue_type_template_id_4d4a8cac_scoped_true_staticRenderFns = [];
|
|
888
|
-
LoadingButtonvue_type_template_id_4d4a8cac_scoped_true_render._withStripped = true;
|
|
1484
|
+
/* harmony default export */ var main = (main_component.exports);
|
|
1485
|
+
// CONCATENATED MODULE: ./src/components/Sender/index.js
|
|
889
1486
|
|
|
890
|
-
// CONCATENATED MODULE: ./src/components/Sender/src/components/LoadingButton.vue?vue&type=template&id=4d4a8cac&scoped=true
|
|
891
1487
|
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
_c = _vm._self._c;
|
|
896
|
-
return _c("svg", {
|
|
897
|
-
attrs: {
|
|
898
|
-
viewBox: "0 0 1000 1000",
|
|
899
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
900
|
-
"xmlns:xlink": "http://www.w3.org/1999/xlink"
|
|
901
|
-
}
|
|
902
|
-
}, [_c("title", [_vm._v("Loading")]), _vm._v(" "), _c("rect", {
|
|
903
|
-
attrs: {
|
|
904
|
-
fill: "currentColor",
|
|
905
|
-
height: "250",
|
|
906
|
-
rx: "24",
|
|
907
|
-
ry: "24",
|
|
908
|
-
width: "250",
|
|
909
|
-
x: "375",
|
|
910
|
-
y: "375"
|
|
911
|
-
}
|
|
912
|
-
}), _vm._v(" "), _c("circle", {
|
|
913
|
-
attrs: {
|
|
914
|
-
cx: "500",
|
|
915
|
-
cy: "500",
|
|
916
|
-
fill: "none",
|
|
917
|
-
r: "450",
|
|
918
|
-
stroke: "currentColor",
|
|
919
|
-
"stroke-width": "100",
|
|
920
|
-
opacity: "0.45"
|
|
921
|
-
}
|
|
922
|
-
}), _vm._v(" "), _c("circle", {
|
|
923
|
-
attrs: {
|
|
924
|
-
cx: "500",
|
|
925
|
-
cy: "500",
|
|
926
|
-
fill: "none",
|
|
927
|
-
r: "450",
|
|
928
|
-
stroke: "currentColor",
|
|
929
|
-
"stroke-width": "100",
|
|
930
|
-
"stroke-dasharray": "600 9999999"
|
|
931
|
-
}
|
|
932
|
-
}, [_c("animateTransform", {
|
|
933
|
-
attrs: {
|
|
934
|
-
attributeName: "transform",
|
|
935
|
-
dur: "1s",
|
|
936
|
-
from: "0 500 500",
|
|
937
|
-
repeatCount: "indefinite",
|
|
938
|
-
to: "360 500 500",
|
|
939
|
-
type: "rotate"
|
|
940
|
-
}
|
|
941
|
-
})], 1)]);
|
|
1488
|
+
/* istanbul ignore next */
|
|
1489
|
+
main.install = function (Vue) {
|
|
1490
|
+
Vue.component(main.name, main);
|
|
942
1491
|
};
|
|
943
|
-
var
|
|
944
|
-
Loadingvue_type_template_id_1f0f8c14_scoped_true_render._withStripped = true;
|
|
945
|
-
|
|
946
|
-
// CONCATENATED MODULE: ./src/components/Sender/src/components/Loading.vue?vue&type=template&id=1f0f8c14&scoped=true
|
|
947
|
-
|
|
948
|
-
// 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
|
|
949
|
-
/* harmony default export */ var Loadingvue_type_script_lang_js = ({
|
|
950
|
-
name: 'Loading'
|
|
951
|
-
});
|
|
952
|
-
// CONCATENATED MODULE: ./src/components/Sender/src/components/Loading.vue?vue&type=script&lang=js
|
|
953
|
-
/* harmony default export */ var components_Loadingvue_type_script_lang_js = (Loadingvue_type_script_lang_js);
|
|
954
|
-
// CONCATENATED MODULE: ./src/components/Sender/src/components/Loading.vue
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
/* normalize component */
|
|
961
|
-
|
|
962
|
-
var Loading_component = Object(componentNormalizer["a" /* default */])(
|
|
963
|
-
components_Loadingvue_type_script_lang_js,
|
|
964
|
-
Loadingvue_type_template_id_1f0f8c14_scoped_true_render,
|
|
965
|
-
Loadingvue_type_template_id_1f0f8c14_scoped_true_staticRenderFns,
|
|
966
|
-
false,
|
|
967
|
-
null,
|
|
968
|
-
"1f0f8c14",
|
|
969
|
-
null
|
|
970
|
-
|
|
971
|
-
)
|
|
972
|
-
|
|
973
|
-
/* harmony default export */ var Loading = (Loading_component.exports);
|
|
974
|
-
// 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
|
|
975
|
-
|
|
976
|
-
/* harmony default export */ var LoadingButtonvue_type_script_lang_js = ({
|
|
977
|
-
name: 'LoadingButton',
|
|
978
|
-
components: {
|
|
979
|
-
Loading: Loading
|
|
980
|
-
}
|
|
981
|
-
});
|
|
982
|
-
// CONCATENATED MODULE: ./src/components/Sender/src/components/LoadingButton.vue?vue&type=script&lang=js
|
|
983
|
-
/* harmony default export */ var components_LoadingButtonvue_type_script_lang_js = (LoadingButtonvue_type_script_lang_js);
|
|
984
|
-
// 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
|
|
985
|
-
var LoadingButtonvue_type_style_index_0_id_4d4a8cac_prod_scoped_true_lang_scss = __webpack_require__(90);
|
|
986
|
-
|
|
987
|
-
// 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
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
var LoadingButtonvue_type_style_index_0_id_4d4a8cac_prod_scoped_true_lang_scss_options = {};
|
|
992
|
-
|
|
993
|
-
LoadingButtonvue_type_style_index_0_id_4d4a8cac_prod_scoped_true_lang_scss_options.insert = "head";
|
|
994
|
-
LoadingButtonvue_type_style_index_0_id_4d4a8cac_prod_scoped_true_lang_scss_options.singleton = false;
|
|
995
|
-
|
|
996
|
-
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);
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
/* 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 || {});
|
|
1001
|
-
// CONCATENATED MODULE: ./src/components/Sender/src/components/LoadingButton.vue?vue&type=style&index=0&id=4d4a8cac&prod&scoped=true&lang=scss
|
|
1002
|
-
|
|
1003
|
-
// CONCATENATED MODULE: ./src/components/Sender/src/components/LoadingButton.vue
|
|
1004
|
-
|
|
1492
|
+
/* harmony default export */ var Sender = __webpack_exports__["default"] = (main);
|
|
1005
1493
|
|
|
1494
|
+
/***/ }),
|
|
1006
1495
|
|
|
1496
|
+
/***/ 2:
|
|
1497
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
1007
1498
|
|
|
1499
|
+
"use strict";
|
|
1008
1500
|
|
|
1009
1501
|
|
|
1010
|
-
/*
|
|
1502
|
+
/*
|
|
1503
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
1504
|
+
Author Tobias Koppers @sokra
|
|
1505
|
+
*/
|
|
1506
|
+
// css base code, injected by the css-loader
|
|
1507
|
+
// eslint-disable-next-line func-names
|
|
1508
|
+
module.exports = function (cssWithMappingToString) {
|
|
1509
|
+
var list = []; // return the list of modules as css string
|
|
1011
1510
|
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
LoadingButtonvue_type_template_id_4d4a8cac_scoped_true_staticRenderFns,
|
|
1016
|
-
false,
|
|
1017
|
-
null,
|
|
1018
|
-
"4d4a8cac",
|
|
1019
|
-
null
|
|
1020
|
-
|
|
1021
|
-
)
|
|
1511
|
+
list.toString = function toString() {
|
|
1512
|
+
return this.map(function (item) {
|
|
1513
|
+
var content = cssWithMappingToString(item);
|
|
1022
1514
|
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
var SendButtonvue_type_template_id_671e6570_scoped_true_render = function render() {
|
|
1026
|
-
var _vm = this,
|
|
1027
|
-
_c = _vm._self._c;
|
|
1028
|
-
return _c("div", {
|
|
1029
|
-
staticClass: "el-x-send-button"
|
|
1030
|
-
}, [_c("el-button", {
|
|
1031
|
-
attrs: {
|
|
1032
|
-
circle: "",
|
|
1033
|
-
disabled: _vm.disabled,
|
|
1034
|
-
size: "small"
|
|
1035
|
-
},
|
|
1036
|
-
on: {
|
|
1037
|
-
click: function ($event) {
|
|
1038
|
-
return _vm.$emit("submit");
|
|
1515
|
+
if (item[2]) {
|
|
1516
|
+
return "@media ".concat(item[2], " {").concat(content, "}");
|
|
1039
1517
|
}
|
|
1040
|
-
}
|
|
1041
|
-
}, [_c("i", {
|
|
1042
|
-
staticClass: "el-icon-top"
|
|
1043
|
-
})])], 1);
|
|
1044
|
-
};
|
|
1045
|
-
var SendButtonvue_type_template_id_671e6570_scoped_true_staticRenderFns = [];
|
|
1046
|
-
SendButtonvue_type_template_id_671e6570_scoped_true_render._withStripped = true;
|
|
1047
1518
|
|
|
1048
|
-
|
|
1519
|
+
return content;
|
|
1520
|
+
}).join("");
|
|
1521
|
+
}; // import a list of modules into the list
|
|
1522
|
+
// eslint-disable-next-line func-names
|
|
1049
1523
|
|
|
1050
|
-
// 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
|
|
1051
|
-
/* harmony default export */ var SendButtonvue_type_script_lang_js = ({
|
|
1052
|
-
name: 'SendButton',
|
|
1053
|
-
props: {
|
|
1054
|
-
disabled: {
|
|
1055
|
-
type: Boolean,
|
|
1056
|
-
default: false
|
|
1057
|
-
}
|
|
1058
|
-
}
|
|
1059
|
-
});
|
|
1060
|
-
// CONCATENATED MODULE: ./src/components/Sender/src/components/SendButton.vue?vue&type=script&lang=js
|
|
1061
|
-
/* harmony default export */ var components_SendButtonvue_type_script_lang_js = (SendButtonvue_type_script_lang_js);
|
|
1062
|
-
// CONCATENATED MODULE: ./src/components/Sender/src/components/SendButton.vue
|
|
1063
1524
|
|
|
1525
|
+
list.i = function (modules, mediaQuery, dedupe) {
|
|
1526
|
+
if (typeof modules === "string") {
|
|
1527
|
+
// eslint-disable-next-line no-param-reassign
|
|
1528
|
+
modules = [[null, modules, ""]];
|
|
1529
|
+
}
|
|
1530
|
+
|
|
1531
|
+
var alreadyImportedModules = {};
|
|
1064
1532
|
|
|
1533
|
+
if (dedupe) {
|
|
1534
|
+
for (var i = 0; i < this.length; i++) {
|
|
1535
|
+
// eslint-disable-next-line prefer-destructuring
|
|
1536
|
+
var id = this[i][0];
|
|
1065
1537
|
|
|
1538
|
+
if (id != null) {
|
|
1539
|
+
alreadyImportedModules[id] = true;
|
|
1540
|
+
}
|
|
1541
|
+
}
|
|
1542
|
+
}
|
|
1066
1543
|
|
|
1544
|
+
for (var _i = 0; _i < modules.length; _i++) {
|
|
1545
|
+
var item = [].concat(modules[_i]);
|
|
1067
1546
|
|
|
1068
|
-
|
|
1547
|
+
if (dedupe && alreadyImportedModules[item[0]]) {
|
|
1548
|
+
// eslint-disable-next-line no-continue
|
|
1549
|
+
continue;
|
|
1550
|
+
}
|
|
1069
1551
|
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
null
|
|
1078
|
-
|
|
1079
|
-
)
|
|
1552
|
+
if (mediaQuery) {
|
|
1553
|
+
if (!item[2]) {
|
|
1554
|
+
item[2] = mediaQuery;
|
|
1555
|
+
} else {
|
|
1556
|
+
item[2] = "".concat(mediaQuery, " and ").concat(item[2]);
|
|
1557
|
+
}
|
|
1558
|
+
}
|
|
1080
1559
|
|
|
1081
|
-
|
|
1082
|
-
// 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
|
|
1083
|
-
var SpeechButtonvue_type_template_id_7e5519b2_scoped_true_render = function render() {
|
|
1084
|
-
var _vm = this,
|
|
1085
|
-
_c = _vm._self._c;
|
|
1086
|
-
return _c("div", {
|
|
1087
|
-
staticClass: "el-x-send-button"
|
|
1088
|
-
}, [_c("el-button", {
|
|
1089
|
-
attrs: {
|
|
1090
|
-
circle: "",
|
|
1091
|
-
size: "small"
|
|
1092
|
-
},
|
|
1093
|
-
on: {
|
|
1094
|
-
click: _vm.onClick
|
|
1560
|
+
list.push(item);
|
|
1095
1561
|
}
|
|
1096
|
-
}
|
|
1097
|
-
|
|
1098
|
-
|
|
1562
|
+
};
|
|
1563
|
+
|
|
1564
|
+
return list;
|
|
1099
1565
|
};
|
|
1100
|
-
var SpeechButtonvue_type_template_id_7e5519b2_scoped_true_staticRenderFns = [];
|
|
1101
|
-
SpeechButtonvue_type_template_id_7e5519b2_scoped_true_render._withStripped = true;
|
|
1102
1566
|
|
|
1103
|
-
|
|
1567
|
+
/***/ }),
|
|
1104
1568
|
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1569
|
+
/***/ 25:
|
|
1570
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1571
|
+
|
|
1572
|
+
"use strict";
|
|
1573
|
+
/* harmony import */ var _lang_zh_CN__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);
|
|
1574
|
+
|
|
1575
|
+
let lang = _lang_zh_CN__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"];
|
|
1576
|
+
let merged = false;
|
|
1577
|
+
let i18nHandler = function () {
|
|
1578
|
+
// 检查是否存在 vue-i18n@5.x (Vue.locale)
|
|
1579
|
+
if (typeof window !== 'undefined' && window.Vue && window.Vue.locale) {
|
|
1580
|
+
const vuei18n = window.Vue.locale;
|
|
1581
|
+
if (typeof vuei18n === 'function') {
|
|
1582
|
+
if (!merged) {
|
|
1583
|
+
merged = true;
|
|
1584
|
+
window.Vue.locale(window.Vue.config.lang, deepMerge(lang, window.Vue.locale(window.Vue.config.lang) || {}, {
|
|
1585
|
+
clone: true
|
|
1586
|
+
}));
|
|
1587
|
+
}
|
|
1588
|
+
return vuei18n.apply(this, arguments);
|
|
1111
1589
|
}
|
|
1112
1590
|
}
|
|
1113
|
-
});
|
|
1114
|
-
// CONCATENATED MODULE: ./src/components/Sender/src/components/SpeechButton.vue?vue&type=script&lang=js
|
|
1115
|
-
/* harmony default export */ var components_SpeechButtonvue_type_script_lang_js = (SpeechButtonvue_type_script_lang_js);
|
|
1116
|
-
// CONCATENATED MODULE: ./src/components/Sender/src/components/SpeechButton.vue
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
1591
|
|
|
1592
|
+
// 检查是否存在 vue-i18n@6.x+ (this.$t)
|
|
1593
|
+
if (this && this.$t && typeof this.$t === 'function') {
|
|
1594
|
+
try {
|
|
1595
|
+
return this.$t.apply(this, arguments);
|
|
1596
|
+
} catch (e) {
|
|
1597
|
+
// 如果出错,回退到内置翻译
|
|
1598
|
+
}
|
|
1599
|
+
}
|
|
1600
|
+
};
|
|
1601
|
+
const deepMerge = function (target, source, options) {
|
|
1602
|
+
options = options || {};
|
|
1603
|
+
const clone = options.clone !== false;
|
|
1604
|
+
const mergedTarget = clone ? {
|
|
1605
|
+
...target
|
|
1606
|
+
} : target;
|
|
1607
|
+
for (const key in source) {
|
|
1608
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
1609
|
+
const value = source[key];
|
|
1610
|
+
if (value !== null && typeof value === 'object' && !Array.isArray(value)) {
|
|
1611
|
+
mergedTarget[key] = deepMerge(mergedTarget[key] || {}, value, options);
|
|
1612
|
+
} else {
|
|
1613
|
+
mergedTarget[key] = value;
|
|
1614
|
+
}
|
|
1615
|
+
}
|
|
1616
|
+
}
|
|
1617
|
+
return mergedTarget;
|
|
1618
|
+
};
|
|
1619
|
+
const t = function (path, options) {
|
|
1620
|
+
let value = i18nHandler.apply(this, arguments);
|
|
1621
|
+
if (value !== null && value !== undefined) return value;
|
|
1622
|
+
const array = path.split('.');
|
|
1623
|
+
let current = lang;
|
|
1624
|
+
for (let i = 0, j = array.length; i < j; i++) {
|
|
1625
|
+
const property = array[i];
|
|
1626
|
+
value = current[property];
|
|
1627
|
+
if (i === j - 1) return format(value, options);
|
|
1628
|
+
if (!value) return '';
|
|
1629
|
+
current = value;
|
|
1630
|
+
}
|
|
1631
|
+
return '';
|
|
1632
|
+
};
|
|
1633
|
+
const format = function (template, ...args) {
|
|
1634
|
+
if (typeof template === 'function') {
|
|
1635
|
+
return template(...args);
|
|
1636
|
+
}
|
|
1637
|
+
if (typeof template !== 'string') {
|
|
1638
|
+
return template;
|
|
1639
|
+
}
|
|
1640
|
+
const [options] = args;
|
|
1641
|
+
if (!options) return template;
|
|
1642
|
+
return template.replace(/\{(\w+)\}/g, (match, key) => {
|
|
1643
|
+
return options[key] !== undefined ? options[key] : match;
|
|
1644
|
+
});
|
|
1645
|
+
};
|
|
1646
|
+
const use = function (l) {
|
|
1647
|
+
lang = l || lang;
|
|
1648
|
+
merged = false;
|
|
1649
|
+
};
|
|
1650
|
+
const i18n = function (fn) {
|
|
1651
|
+
i18nHandler = fn || i18nHandler;
|
|
1652
|
+
};
|
|
1653
|
+
/* harmony default export */ __webpack_exports__["a"] = ({
|
|
1654
|
+
use,
|
|
1655
|
+
t,
|
|
1656
|
+
i18n
|
|
1657
|
+
});
|
|
1121
1658
|
|
|
1122
|
-
|
|
1659
|
+
/***/ }),
|
|
1123
1660
|
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
SpeechButtonvue_type_template_id_7e5519b2_scoped_true_render,
|
|
1127
|
-
SpeechButtonvue_type_template_id_7e5519b2_scoped_true_staticRenderFns,
|
|
1128
|
-
false,
|
|
1129
|
-
null,
|
|
1130
|
-
"7e5519b2",
|
|
1131
|
-
null
|
|
1132
|
-
|
|
1133
|
-
)
|
|
1661
|
+
/***/ 26:
|
|
1662
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1134
1663
|
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
circle: "",
|
|
1145
|
-
size: "small"
|
|
1664
|
+
"use strict";
|
|
1665
|
+
/* harmony default export */ __webpack_exports__["a"] = ({
|
|
1666
|
+
el_x: {
|
|
1667
|
+
thinking: {
|
|
1668
|
+
start: '开始思考',
|
|
1669
|
+
processing: '思考中...',
|
|
1670
|
+
completed: '思考完成',
|
|
1671
|
+
error: '思考遇到问题',
|
|
1672
|
+
errorContent: '思考过程中出现错误'
|
|
1146
1673
|
},
|
|
1147
|
-
|
|
1148
|
-
|
|
1674
|
+
sender: {
|
|
1675
|
+
placeholder: '请输入内容'
|
|
1676
|
+
},
|
|
1677
|
+
common: {
|
|
1678
|
+
loading: '加载中...',
|
|
1679
|
+
success: '成功',
|
|
1680
|
+
error: '错误',
|
|
1681
|
+
warning: '警告'
|
|
1149
1682
|
}
|
|
1150
|
-
}
|
|
1151
|
-
|
|
1152
|
-
})], 1)], 1);
|
|
1153
|
-
};
|
|
1154
|
-
var SpeechLoadingButtonvue_type_template_id_1d4ab0c1_scoped_true_staticRenderFns = [];
|
|
1155
|
-
SpeechLoadingButtonvue_type_template_id_1d4ab0c1_scoped_true_render._withStripped = true;
|
|
1683
|
+
}
|
|
1684
|
+
});
|
|
1156
1685
|
|
|
1157
|
-
|
|
1686
|
+
/***/ }),
|
|
1158
1687
|
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
var _vm = this,
|
|
1162
|
-
_c = _vm._self._c;
|
|
1163
|
-
return _c("svg", {
|
|
1164
|
-
class: _vm.className,
|
|
1165
|
-
attrs: {
|
|
1166
|
-
color: "currentColor",
|
|
1167
|
-
viewBox: `0 0 ${_vm.SIZE} ${_vm.SIZE}`,
|
|
1168
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
1169
|
-
"xmlns:xlink": "http://www.w3.org/1999/xlink"
|
|
1170
|
-
}
|
|
1171
|
-
}, [_c("title", [_vm._v("Speech Recording")]), _vm._v(" "), _vm._l(_vm.rects, function (item, index) {
|
|
1172
|
-
return _c("rect", {
|
|
1173
|
-
key: index,
|
|
1174
|
-
attrs: {
|
|
1175
|
-
fill: "currentColor",
|
|
1176
|
-
rx: _vm.RECT_RADIUS,
|
|
1177
|
-
ry: _vm.RECT_RADIUS,
|
|
1178
|
-
height: _vm.RECT_HEIGHT_MIN,
|
|
1179
|
-
width: _vm.RECT_WIDTH,
|
|
1180
|
-
x: item.x,
|
|
1181
|
-
y: item.yMin
|
|
1182
|
-
}
|
|
1183
|
-
}, [_c("animate", {
|
|
1184
|
-
attrs: {
|
|
1185
|
-
attributeName: "height",
|
|
1186
|
-
values: `${_vm.RECT_HEIGHT_MIN}; ${_vm.RECT_HEIGHT_MAX}; ${_vm.RECT_HEIGHT_MIN}`,
|
|
1187
|
-
keyTimes: "0; 0.5; 1",
|
|
1188
|
-
dur: `${_vm.DURATION}s`,
|
|
1189
|
-
begin: `${_vm.DURATION / _vm.COUNT * index}s`,
|
|
1190
|
-
repeatCount: "indefinite"
|
|
1191
|
-
}
|
|
1192
|
-
}), _vm._v(" "), _c("animate", {
|
|
1193
|
-
attrs: {
|
|
1194
|
-
attributeName: "y",
|
|
1195
|
-
values: `${item.yMin}; ${item.yMax}; ${item.yMin}`,
|
|
1196
|
-
keyTimes: "0; 0.5; 1",
|
|
1197
|
-
dur: `${_vm.DURATION}s`,
|
|
1198
|
-
begin: `${_vm.DURATION / _vm.COUNT * index}s`,
|
|
1199
|
-
repeatCount: "indefinite"
|
|
1200
|
-
}
|
|
1201
|
-
})]);
|
|
1202
|
-
})], 2);
|
|
1203
|
-
};
|
|
1204
|
-
var SpeechLoadingvue_type_template_id_5cab3032_scoped_true_staticRenderFns = [];
|
|
1205
|
-
SpeechLoadingvue_type_template_id_5cab3032_scoped_true_render._withStripped = true;
|
|
1688
|
+
/***/ 3:
|
|
1689
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
1206
1690
|
|
|
1207
|
-
|
|
1691
|
+
"use strict";
|
|
1208
1692
|
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
// 定义常量
|
|
1221
|
-
SIZE: 1000,
|
|
1222
|
-
COUNT: 4,
|
|
1223
|
-
RECT_WIDTH: 140,
|
|
1224
|
-
RECT_RADIUS: 70,
|
|
1225
|
-
// RECT_WIDTH / 2
|
|
1226
|
-
RECT_HEIGHT_MIN: 250,
|
|
1227
|
-
RECT_HEIGHT_MAX: 500,
|
|
1228
|
-
DURATION: 0.8
|
|
1229
|
-
};
|
|
1230
|
-
},
|
|
1231
|
-
computed: {
|
|
1232
|
-
// 计算矩形的位置和高度范围
|
|
1233
|
-
rects() {
|
|
1234
|
-
const dest = (this.SIZE - this.RECT_WIDTH * this.COUNT) / (this.COUNT - 1);
|
|
1235
|
-
return Array.from({
|
|
1236
|
-
length: this.COUNT
|
|
1237
|
-
}).map((_, index) => {
|
|
1238
|
-
const x = index * (dest + this.RECT_WIDTH);
|
|
1239
|
-
const yMin = this.SIZE / 2 - this.RECT_HEIGHT_MIN / 2;
|
|
1240
|
-
const yMax = this.SIZE / 2 - this.RECT_HEIGHT_MAX / 2;
|
|
1241
|
-
return {
|
|
1242
|
-
x,
|
|
1243
|
-
yMin,
|
|
1244
|
-
yMax
|
|
1245
|
-
};
|
|
1246
|
-
});
|
|
1693
|
+
|
|
1694
|
+
var isOldIE = function isOldIE() {
|
|
1695
|
+
var memo;
|
|
1696
|
+
return function memorize() {
|
|
1697
|
+
if (typeof memo === 'undefined') {
|
|
1698
|
+
// Test for IE <= 9 as proposed by Browserhacks
|
|
1699
|
+
// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805
|
|
1700
|
+
// Tests for existence of standard globals is to allow style-loader
|
|
1701
|
+
// to operate correctly into non-standard environments
|
|
1702
|
+
// @see https://github.com/webpack-contrib/style-loader/issues/177
|
|
1703
|
+
memo = Boolean(window && document && document.all && !window.atob);
|
|
1247
1704
|
}
|
|
1248
|
-
}
|
|
1249
|
-
});
|
|
1250
|
-
// CONCATENATED MODULE: ./src/components/Sender/src/components/SpeechLoading.vue?vue&type=script&lang=js
|
|
1251
|
-
/* harmony default export */ var components_SpeechLoadingvue_type_script_lang_js = (SpeechLoadingvue_type_script_lang_js);
|
|
1252
|
-
// CONCATENATED MODULE: ./src/components/Sender/src/components/SpeechLoading.vue
|
|
1253
1705
|
|
|
1706
|
+
return memo;
|
|
1707
|
+
};
|
|
1708
|
+
}();
|
|
1254
1709
|
|
|
1710
|
+
var getTarget = function getTarget() {
|
|
1711
|
+
var memo = {};
|
|
1712
|
+
return function memorize(target) {
|
|
1713
|
+
if (typeof memo[target] === 'undefined') {
|
|
1714
|
+
var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself
|
|
1255
1715
|
|
|
1716
|
+
if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
|
|
1717
|
+
try {
|
|
1718
|
+
// This will throw an exception if access to iframe is blocked
|
|
1719
|
+
// due to cross-origin restrictions
|
|
1720
|
+
styleTarget = styleTarget.contentDocument.head;
|
|
1721
|
+
} catch (e) {
|
|
1722
|
+
// istanbul ignore next
|
|
1723
|
+
styleTarget = null;
|
|
1724
|
+
}
|
|
1725
|
+
}
|
|
1256
1726
|
|
|
1727
|
+
memo[target] = styleTarget;
|
|
1728
|
+
}
|
|
1257
1729
|
|
|
1258
|
-
|
|
1730
|
+
return memo[target];
|
|
1731
|
+
};
|
|
1732
|
+
}();
|
|
1259
1733
|
|
|
1260
|
-
var
|
|
1261
|
-
components_SpeechLoadingvue_type_script_lang_js,
|
|
1262
|
-
SpeechLoadingvue_type_template_id_5cab3032_scoped_true_render,
|
|
1263
|
-
SpeechLoadingvue_type_template_id_5cab3032_scoped_true_staticRenderFns,
|
|
1264
|
-
false,
|
|
1265
|
-
null,
|
|
1266
|
-
"5cab3032",
|
|
1267
|
-
null
|
|
1268
|
-
|
|
1269
|
-
)
|
|
1734
|
+
var stylesInDom = [];
|
|
1270
1735
|
|
|
1271
|
-
|
|
1272
|
-
|
|
1736
|
+
function getIndexByIdentifier(identifier) {
|
|
1737
|
+
var result = -1;
|
|
1273
1738
|
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
},
|
|
1279
|
-
methods: {
|
|
1280
|
-
onClick() {
|
|
1281
|
-
this.$emit('click');
|
|
1739
|
+
for (var i = 0; i < stylesInDom.length; i++) {
|
|
1740
|
+
if (stylesInDom[i].identifier === identifier) {
|
|
1741
|
+
result = i;
|
|
1742
|
+
break;
|
|
1282
1743
|
}
|
|
1283
1744
|
}
|
|
1284
|
-
});
|
|
1285
|
-
// CONCATENATED MODULE: ./src/components/Sender/src/components/SpeechLoadingButton.vue?vue&type=script&lang=js
|
|
1286
|
-
/* harmony default export */ var components_SpeechLoadingButtonvue_type_script_lang_js = (SpeechLoadingButtonvue_type_script_lang_js);
|
|
1287
|
-
// 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
|
|
1288
|
-
var SpeechLoadingButtonvue_type_style_index_0_id_1d4ab0c1_prod_scoped_true_lang_scss = __webpack_require__(91);
|
|
1289
1745
|
|
|
1290
|
-
|
|
1746
|
+
return result;
|
|
1747
|
+
}
|
|
1291
1748
|
|
|
1292
|
-
|
|
1749
|
+
function modulesToDom(list, options) {
|
|
1750
|
+
var idCountMap = {};
|
|
1751
|
+
var identifiers = [];
|
|
1293
1752
|
|
|
1294
|
-
var
|
|
1753
|
+
for (var i = 0; i < list.length; i++) {
|
|
1754
|
+
var item = list[i];
|
|
1755
|
+
var id = options.base ? item[0] + options.base : item[0];
|
|
1756
|
+
var count = idCountMap[id] || 0;
|
|
1757
|
+
var identifier = "".concat(id, " ").concat(count);
|
|
1758
|
+
idCountMap[id] = count + 1;
|
|
1759
|
+
var index = getIndexByIdentifier(identifier);
|
|
1760
|
+
var obj = {
|
|
1761
|
+
css: item[1],
|
|
1762
|
+
media: item[2],
|
|
1763
|
+
sourceMap: item[3]
|
|
1764
|
+
};
|
|
1295
1765
|
|
|
1296
|
-
|
|
1297
|
-
|
|
1766
|
+
if (index !== -1) {
|
|
1767
|
+
stylesInDom[index].references++;
|
|
1768
|
+
stylesInDom[index].updater(obj);
|
|
1769
|
+
} else {
|
|
1770
|
+
stylesInDom.push({
|
|
1771
|
+
identifier: identifier,
|
|
1772
|
+
updater: addStyle(obj, options),
|
|
1773
|
+
references: 1
|
|
1774
|
+
});
|
|
1775
|
+
}
|
|
1298
1776
|
|
|
1299
|
-
|
|
1777
|
+
identifiers.push(identifier);
|
|
1778
|
+
}
|
|
1300
1779
|
|
|
1780
|
+
return identifiers;
|
|
1781
|
+
}
|
|
1301
1782
|
|
|
1783
|
+
function insertStyleElement(options) {
|
|
1784
|
+
var style = document.createElement('style');
|
|
1785
|
+
var attributes = options.attributes || {};
|
|
1302
1786
|
|
|
1303
|
-
|
|
1304
|
-
|
|
1787
|
+
if (typeof attributes.nonce === 'undefined') {
|
|
1788
|
+
var nonce = true ? __webpack_require__.nc : undefined;
|
|
1305
1789
|
|
|
1306
|
-
|
|
1790
|
+
if (nonce) {
|
|
1791
|
+
attributes.nonce = nonce;
|
|
1792
|
+
}
|
|
1793
|
+
}
|
|
1307
1794
|
|
|
1795
|
+
Object.keys(attributes).forEach(function (key) {
|
|
1796
|
+
style.setAttribute(key, attributes[key]);
|
|
1797
|
+
});
|
|
1308
1798
|
|
|
1799
|
+
if (typeof options.insert === 'function') {
|
|
1800
|
+
options.insert(style);
|
|
1801
|
+
} else {
|
|
1802
|
+
var target = getTarget(options.insert || 'head');
|
|
1309
1803
|
|
|
1804
|
+
if (!target) {
|
|
1805
|
+
throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");
|
|
1806
|
+
}
|
|
1310
1807
|
|
|
1808
|
+
target.appendChild(style);
|
|
1809
|
+
}
|
|
1311
1810
|
|
|
1811
|
+
return style;
|
|
1812
|
+
}
|
|
1312
1813
|
|
|
1313
|
-
|
|
1814
|
+
function removeStyleElement(style) {
|
|
1815
|
+
// istanbul ignore if
|
|
1816
|
+
if (style.parentNode === null) {
|
|
1817
|
+
return false;
|
|
1818
|
+
}
|
|
1314
1819
|
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
SpeechLoadingButtonvue_type_template_id_1d4ab0c1_scoped_true_staticRenderFns,
|
|
1319
|
-
false,
|
|
1320
|
-
null,
|
|
1321
|
-
"1d4ab0c1",
|
|
1322
|
-
null
|
|
1323
|
-
|
|
1324
|
-
)
|
|
1820
|
+
style.parentNode.removeChild(style);
|
|
1821
|
+
}
|
|
1822
|
+
/* istanbul ignore next */
|
|
1325
1823
|
|
|
1326
|
-
/* harmony default export */ var SpeechLoadingButton = (SpeechLoadingButton_component.exports);
|
|
1327
|
-
// 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
|
|
1328
1824
|
|
|
1825
|
+
var replaceText = function replaceText() {
|
|
1826
|
+
var textStore = [];
|
|
1827
|
+
return function replace(index, replacement) {
|
|
1828
|
+
textStore[index] = replacement;
|
|
1829
|
+
return textStore.filter(Boolean).join('\n');
|
|
1830
|
+
};
|
|
1831
|
+
}();
|
|
1329
1832
|
|
|
1833
|
+
function applyToSingletonTag(style, index, remove, obj) {
|
|
1834
|
+
var css = remove ? '' : obj.media ? "@media ".concat(obj.media, " {").concat(obj.css, "}") : obj.css; // For old IE
|
|
1330
1835
|
|
|
1836
|
+
/* istanbul ignore if */
|
|
1331
1837
|
|
|
1838
|
+
if (style.styleSheet) {
|
|
1839
|
+
style.styleSheet.cssText = replaceText(index, css);
|
|
1840
|
+
} else {
|
|
1841
|
+
var cssNode = document.createTextNode(css);
|
|
1842
|
+
var childNodes = style.childNodes;
|
|
1332
1843
|
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
components: {
|
|
1336
|
-
ClearButton: ClearButton,
|
|
1337
|
-
LoadingButton: LoadingButton,
|
|
1338
|
-
SendButton: SendButton,
|
|
1339
|
-
SpeechButton: SpeechButton,
|
|
1340
|
-
SpeechLoadingButton: SpeechLoadingButton
|
|
1341
|
-
},
|
|
1342
|
-
props: {
|
|
1343
|
-
value: {
|
|
1344
|
-
type: String,
|
|
1345
|
-
default: ''
|
|
1346
|
-
},
|
|
1347
|
-
placeholder: {
|
|
1348
|
-
type: String,
|
|
1349
|
-
default: '请输入内容'
|
|
1350
|
-
},
|
|
1351
|
-
autoSize: {
|
|
1352
|
-
type: Object,
|
|
1353
|
-
default: () => ({
|
|
1354
|
-
minRows: 1,
|
|
1355
|
-
maxRows: 6
|
|
1356
|
-
})
|
|
1357
|
-
},
|
|
1358
|
-
readOnly: Boolean,
|
|
1359
|
-
disabled: Boolean,
|
|
1360
|
-
loading: Boolean,
|
|
1361
|
-
clearable: Boolean,
|
|
1362
|
-
allowSpeech: Boolean,
|
|
1363
|
-
submitType: {
|
|
1364
|
-
type: String,
|
|
1365
|
-
default: 'enter',
|
|
1366
|
-
validator: value => ['enter', 'shiftEnter'].includes(value)
|
|
1367
|
-
},
|
|
1368
|
-
headerAnimationTimer: {
|
|
1369
|
-
type: Number,
|
|
1370
|
-
default: 300
|
|
1371
|
-
},
|
|
1372
|
-
inputWidth: {
|
|
1373
|
-
type: String,
|
|
1374
|
-
default: '100%'
|
|
1375
|
-
},
|
|
1376
|
-
// 变体属性
|
|
1377
|
-
variant: {
|
|
1378
|
-
type: String,
|
|
1379
|
-
default: 'default',
|
|
1380
|
-
validator: value => ['default', 'updown'].includes(value)
|
|
1381
|
-
},
|
|
1382
|
-
showUpdown: {
|
|
1383
|
-
type: Boolean,
|
|
1384
|
-
default: true
|
|
1385
|
-
},
|
|
1386
|
-
submitBtnDisabled: Boolean,
|
|
1387
|
-
inputStyle: {
|
|
1388
|
-
type: Object,
|
|
1389
|
-
default: () => ({})
|
|
1390
|
-
},
|
|
1391
|
-
// 新增 el-popover 样式透传
|
|
1392
|
-
triggerStrings: {
|
|
1393
|
-
type: Array,
|
|
1394
|
-
default: () => []
|
|
1395
|
-
},
|
|
1396
|
-
triggerPopoverVisible: {
|
|
1397
|
-
type: Boolean,
|
|
1398
|
-
default: false
|
|
1399
|
-
},
|
|
1400
|
-
triggerPopoverWidth: {
|
|
1401
|
-
type: String,
|
|
1402
|
-
default: 'fit-content'
|
|
1403
|
-
},
|
|
1404
|
-
triggerPopoverLeft: {
|
|
1405
|
-
type: String,
|
|
1406
|
-
default: '0px'
|
|
1407
|
-
},
|
|
1408
|
-
triggerPopoverOffset: {
|
|
1409
|
-
type: Number,
|
|
1410
|
-
default: 0
|
|
1411
|
-
},
|
|
1412
|
-
triggerPopoverPlacement: {
|
|
1413
|
-
type: String,
|
|
1414
|
-
default: 'top-start',
|
|
1415
|
-
validator: value => ['top', 'top-start', 'top-end', 'bottom', 'bottom-start', 'bottom-end', 'left', 'left-start', 'left-end', 'right', 'right-start', 'right-end'].includes(value)
|
|
1844
|
+
if (childNodes[index]) {
|
|
1845
|
+
style.removeChild(childNodes[index]);
|
|
1416
1846
|
}
|
|
1417
|
-
},
|
|
1418
|
-
data() {
|
|
1419
|
-
return {
|
|
1420
|
-
senderRef: null,
|
|
1421
|
-
inputRef: null,
|
|
1422
|
-
popoverVisible: this.triggerPopoverVisible,
|
|
1423
|
-
internalValue: this.value,
|
|
1424
|
-
isComposing: false,
|
|
1425
|
-
popoverRef: null,
|
|
1426
|
-
triggerString: '',
|
|
1427
|
-
visiableHeader: false,
|
|
1428
|
-
recognition: null,
|
|
1429
|
-
speechLoading: false,
|
|
1430
|
-
triggerDebounce: false
|
|
1431
|
-
};
|
|
1432
|
-
},
|
|
1433
|
-
computed: {
|
|
1434
|
-
// 判断是否存在 recordingChange 监听器
|
|
1435
|
-
hasOnRecordingChangeListener() {
|
|
1436
|
-
return !!(this.$listeners && this.$listeners.recordingChange);
|
|
1437
|
-
},
|
|
1438
|
-
// 判断是否存在 trigger 监听器
|
|
1439
|
-
hasOnTriggerListener() {
|
|
1440
|
-
return !!(this.$listeners && this.$listeners.trigger);
|
|
1441
|
-
},
|
|
1442
|
-
// 计算提交按钮禁用状态
|
|
1443
|
-
isSubmitDisabled() {
|
|
1444
|
-
// 用户显式设置了 submitBtnDisabled 时优先使用
|
|
1445
|
-
if (typeof this.submitBtnDisabled === 'boolean') {
|
|
1446
|
-
return this.submitBtnDisabled;
|
|
1447
|
-
}
|
|
1448
|
-
// 否则保持默认逻辑:无内容时禁用
|
|
1449
|
-
return !this.internalValue;
|
|
1450
|
-
},
|
|
1451
|
-
// 根据字体大小动态计算 autoSize
|
|
1452
|
-
computedAutoSize() {
|
|
1453
|
-
// 如果用户提供了autoSize,则优先使用
|
|
1454
|
-
if (this.autoSize) return this.autoSize;
|
|
1455
1847
|
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
this.applyInputStyles();
|
|
1479
|
-
});
|
|
1480
|
-
},
|
|
1481
|
-
// 监听外部传入的 triggerPopoverVisible 变化
|
|
1482
|
-
triggerPopoverVisible(val) {
|
|
1483
|
-
// 仅在值不同时更新,避免循环触发
|
|
1484
|
-
if (this.popoverVisible !== val) {
|
|
1485
|
-
this.popoverVisible = val;
|
|
1486
|
-
}
|
|
1487
|
-
},
|
|
1488
|
-
// 监听内部 popoverVisible 变化,向外同步
|
|
1489
|
-
popoverVisible(val) {
|
|
1490
|
-
if (val !== this.triggerPopoverVisible) {
|
|
1491
|
-
this.$emit('update:triggerPopoverVisible', val);
|
|
1492
|
-
}
|
|
1848
|
+
if (childNodes.length) {
|
|
1849
|
+
style.insertBefore(cssNode, childNodes[index]);
|
|
1850
|
+
} else {
|
|
1851
|
+
style.appendChild(cssNode);
|
|
1852
|
+
}
|
|
1853
|
+
}
|
|
1854
|
+
}
|
|
1855
|
+
|
|
1856
|
+
function applyToTag(style, options, obj) {
|
|
1857
|
+
var css = obj.css;
|
|
1858
|
+
var media = obj.media;
|
|
1859
|
+
var sourceMap = obj.sourceMap;
|
|
1860
|
+
|
|
1861
|
+
if (media) {
|
|
1862
|
+
style.setAttribute('media', media);
|
|
1863
|
+
} else {
|
|
1864
|
+
style.removeAttribute('media');
|
|
1865
|
+
}
|
|
1866
|
+
|
|
1867
|
+
if (sourceMap && typeof btoa !== 'undefined') {
|
|
1868
|
+
css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");
|
|
1869
|
+
} // For old IE
|
|
1493
1870
|
|
|
1494
|
-
|
|
1495
|
-
if (val === false) {
|
|
1496
|
-
this.triggerDebounce = true;
|
|
1497
|
-
setTimeout(() => {
|
|
1498
|
-
this.triggerDebounce = false;
|
|
1499
|
-
}, 300); // 300ms 防抖时间,防止频繁触发
|
|
1500
|
-
}
|
|
1501
|
-
},
|
|
1502
|
-
internalValue(newVal, oldVal) {
|
|
1503
|
-
this.$emit('input', newVal);
|
|
1871
|
+
/* istanbul ignore if */
|
|
1504
1872
|
|
|
1505
|
-
// 当内容变化时,修复高度问题
|
|
1506
1873
|
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1874
|
+
if (style.styleSheet) {
|
|
1875
|
+
style.styleSheet.cssText = css;
|
|
1876
|
+
} else {
|
|
1877
|
+
while (style.firstChild) {
|
|
1878
|
+
style.removeChild(style.firstChild);
|
|
1879
|
+
}
|
|
1510
1880
|
|
|
1511
|
-
|
|
1512
|
-
|
|
1881
|
+
style.appendChild(document.createTextNode(css));
|
|
1882
|
+
}
|
|
1883
|
+
}
|
|
1513
1884
|
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
const textArea = this.inputRef.$el.querySelector('textarea');
|
|
1517
|
-
if (textArea) {
|
|
1518
|
-
const cursorPosition = textArea.selectionStart;
|
|
1519
|
-
// 检查光标前是否有新增的触发字符
|
|
1520
|
-
if (cursorPosition > 0 && newVal.length > oldVal.length) {
|
|
1521
|
-
const lastChar = newVal.charAt(cursorPosition - 1);
|
|
1522
|
-
if (triggerStrings.includes(lastChar)) {
|
|
1523
|
-
this.triggerString = lastChar;
|
|
1524
|
-
if (this.hasOnTriggerListener) {
|
|
1525
|
-
this.$emit('trigger', {
|
|
1526
|
-
oldValue: oldVal,
|
|
1527
|
-
newValue: newVal,
|
|
1528
|
-
triggerString: lastChar,
|
|
1529
|
-
isOpen: true,
|
|
1530
|
-
cursorPosition: cursorPosition
|
|
1531
|
-
});
|
|
1532
|
-
}
|
|
1533
|
-
this.popoverVisible = true;
|
|
1534
|
-
return;
|
|
1535
|
-
}
|
|
1536
|
-
}
|
|
1537
|
-
}
|
|
1538
|
-
}
|
|
1885
|
+
var singleton = null;
|
|
1886
|
+
var singletonCounter = 0;
|
|
1539
1887
|
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1888
|
+
function addStyle(obj, options) {
|
|
1889
|
+
var style;
|
|
1890
|
+
var update;
|
|
1891
|
+
var remove;
|
|
1544
1892
|
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
triggerString: undefined,
|
|
1565
|
-
isOpen: false
|
|
1566
|
-
});
|
|
1567
|
-
}
|
|
1568
|
-
this.popoverVisible = false;
|
|
1569
|
-
}
|
|
1570
|
-
// 触发显示:从非空且非触发字符变为触发字符
|
|
1571
|
-
else if (oldVal !== '' && isNewValTrigger && !wasOldValTrigger) {
|
|
1572
|
-
this.triggerString = newVal;
|
|
1573
|
-
if (this.hasOnTriggerListener) {
|
|
1574
|
-
this.$emit('trigger', {
|
|
1575
|
-
oldValue: oldVal,
|
|
1576
|
-
newValue: newVal,
|
|
1577
|
-
triggerString: newVal,
|
|
1578
|
-
isOpen: true
|
|
1579
|
-
});
|
|
1580
|
-
}
|
|
1581
|
-
this.popoverVisible = true;
|
|
1893
|
+
if (options.singleton) {
|
|
1894
|
+
var styleIndex = singletonCounter++;
|
|
1895
|
+
style = singleton || (singleton = insertStyleElement(options));
|
|
1896
|
+
update = applyToSingletonTag.bind(null, style, styleIndex, false);
|
|
1897
|
+
remove = applyToSingletonTag.bind(null, style, styleIndex, true);
|
|
1898
|
+
} else {
|
|
1899
|
+
style = insertStyleElement(options);
|
|
1900
|
+
update = applyToTag.bind(null, style, options);
|
|
1901
|
+
|
|
1902
|
+
remove = function remove() {
|
|
1903
|
+
removeStyleElement(style);
|
|
1904
|
+
};
|
|
1905
|
+
}
|
|
1906
|
+
|
|
1907
|
+
update(obj);
|
|
1908
|
+
return function updateStyle(newObj) {
|
|
1909
|
+
if (newObj) {
|
|
1910
|
+
if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {
|
|
1911
|
+
return;
|
|
1582
1912
|
}
|
|
1913
|
+
|
|
1914
|
+
update(obj = newObj);
|
|
1915
|
+
} else {
|
|
1916
|
+
remove();
|
|
1583
1917
|
}
|
|
1584
|
-
}
|
|
1585
|
-
|
|
1586
|
-
/* 直接应用输入框样式 */
|
|
1587
|
-
applyInputStyles() {
|
|
1588
|
-
if (!this.inputRef) return;
|
|
1589
|
-
const textareaEl = this.inputRef.$el.querySelector('textarea');
|
|
1590
|
-
if (!textareaEl) return;
|
|
1918
|
+
};
|
|
1919
|
+
}
|
|
1591
1920
|
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
maxWidth: this.inputWidth || '100%',
|
|
1596
|
-
boxSizing: 'border-box'
|
|
1597
|
-
};
|
|
1921
|
+
module.exports = function (list, options) {
|
|
1922
|
+
options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
|
|
1923
|
+
// tags it will allow on a page
|
|
1598
1924
|
|
|
1599
|
-
|
|
1600
|
-
|
|
1601
|
-
|
|
1602
|
-
});
|
|
1925
|
+
if (!options.singleton && typeof options.singleton !== 'boolean') {
|
|
1926
|
+
options.singleton = isOldIE();
|
|
1927
|
+
}
|
|
1603
1928
|
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
-
|
|
1608
|
-
});
|
|
1929
|
+
list = list || [];
|
|
1930
|
+
var lastIdentifiers = modulesToDom(list, options);
|
|
1931
|
+
return function update(newList) {
|
|
1932
|
+
newList = newList || [];
|
|
1609
1933
|
|
|
1610
|
-
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
const computedFontSize = window.getComputedStyle(textareaEl).fontSize;
|
|
1614
|
-
const fontSize = parseInt(computedFontSize);
|
|
1615
|
-
const minHeight = Math.max(fontSize * 1.5, 24) + 'px';
|
|
1616
|
-
textareaEl.style.minHeight = minHeight;
|
|
1934
|
+
if (Object.prototype.toString.call(newList) !== '[object Array]') {
|
|
1935
|
+
return;
|
|
1936
|
+
}
|
|
1617
1937
|
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
textareaEl.dispatchEvent(event);
|
|
1624
|
-
});
|
|
1625
|
-
}
|
|
1626
|
-
}
|
|
1627
|
-
},
|
|
1628
|
-
/* 手动更新 popover 位置 */
|
|
1629
|
-
onPopoverShow() {
|
|
1630
|
-
if (this.$refs.popoverRef) {
|
|
1631
|
-
this.$nextTick(() => {
|
|
1632
|
-
this.$refs.popoverRef.referenceElm = this.$refs.senderRef;
|
|
1633
|
-
this.$refs.popoverRef.doDestroy();
|
|
1634
|
-
this.$refs.popoverRef.updatePopper();
|
|
1635
|
-
});
|
|
1636
|
-
}
|
|
1637
|
-
},
|
|
1638
|
-
/* 内容容器聚焦 开始 */
|
|
1639
|
-
onContentMouseDown(e) {
|
|
1640
|
-
// 点击容器后设置输入框的聚焦,会触发 &:focus-within 样式
|
|
1641
|
-
if (e.target !== this.$el.querySelector(`.el-textarea__inner`)) {
|
|
1642
|
-
e.preventDefault();
|
|
1643
|
-
}
|
|
1644
|
-
this.inputRef.focus();
|
|
1645
|
-
},
|
|
1646
|
-
/* 内容容器聚焦 结束 */
|
|
1938
|
+
for (var i = 0; i < lastIdentifiers.length; i++) {
|
|
1939
|
+
var identifier = lastIdentifiers[i];
|
|
1940
|
+
var index = getIndexByIdentifier(identifier);
|
|
1941
|
+
stylesInDom[index].references--;
|
|
1942
|
+
}
|
|
1647
1943
|
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
|
|
1652
|
-
this.visiableHeader = true;
|
|
1653
|
-
},
|
|
1654
|
-
closeHeader() {
|
|
1655
|
-
if (!this.$slots.header) return;
|
|
1656
|
-
if (this.readOnly) return;
|
|
1657
|
-
this.visiableHeader = false;
|
|
1658
|
-
},
|
|
1659
|
-
/* 头部显示隐藏 结束 */
|
|
1944
|
+
var newLastIdentifiers = modulesToDom(newList, options);
|
|
1945
|
+
|
|
1946
|
+
for (var _i = 0; _i < lastIdentifiers.length; _i++) {
|
|
1947
|
+
var _identifier = lastIdentifiers[_i];
|
|
1660
1948
|
|
|
1661
|
-
|
|
1662
|
-
startRecognition() {
|
|
1663
|
-
if (this.readOnly || this.disabled) return; // 直接返回,不执行后续逻辑
|
|
1949
|
+
var _index = getIndexByIdentifier(_identifier);
|
|
1664
1950
|
|
|
1665
|
-
if (
|
|
1666
|
-
|
|
1667
|
-
this.$emit('recording-change', true);
|
|
1668
|
-
return;
|
|
1669
|
-
}
|
|
1951
|
+
if (stylesInDom[_index].references === 0) {
|
|
1952
|
+
stylesInDom[_index].updater();
|
|
1670
1953
|
|
|
1671
|
-
|
|
1672
|
-
const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition || window.mozSpeechRecognition || window.msSpeechRecognition;
|
|
1673
|
-
if (SpeechRecognition) {
|
|
1674
|
-
try {
|
|
1675
|
-
this.recognition = new SpeechRecognition();
|
|
1676
|
-
this.recognition.continuous = true;
|
|
1677
|
-
this.recognition.interimResults = true;
|
|
1678
|
-
this.recognition.lang = 'zh-CN';
|
|
1679
|
-
this.recognition.onresult = event => {
|
|
1680
|
-
let results = '';
|
|
1681
|
-
for (let i = 0; i <= event.resultIndex; i++) {
|
|
1682
|
-
results += event.results[i][0].transcript;
|
|
1683
|
-
}
|
|
1684
|
-
if (!this.readOnly) {
|
|
1685
|
-
this.internalValue = results;
|
|
1686
|
-
}
|
|
1687
|
-
};
|
|
1688
|
-
this.recognition.onstart = () => {
|
|
1689
|
-
this.speechLoading = true;
|
|
1690
|
-
console.log('语音识别已启动');
|
|
1691
|
-
};
|
|
1692
|
-
this.recognition.onend = () => {
|
|
1693
|
-
this.speechLoading = false;
|
|
1694
|
-
console.log('语音识别已结束');
|
|
1695
|
-
};
|
|
1696
|
-
this.recognition.onerror = event => {
|
|
1697
|
-
console.error('语音识别出错:', event.error);
|
|
1698
|
-
this.speechLoading = false;
|
|
1699
|
-
// 可以添加用户友好提示
|
|
1700
|
-
if (event.error === 'not-allowed') {
|
|
1701
|
-
console.error('用户拒绝了麦克风访问权限');
|
|
1702
|
-
// 这里可以显示提示
|
|
1703
|
-
}
|
|
1704
|
-
};
|
|
1705
|
-
this.recognition.start();
|
|
1706
|
-
} catch (error) {
|
|
1707
|
-
console.error('启动语音识别失败:', error);
|
|
1708
|
-
this.speechLoading = false;
|
|
1709
|
-
}
|
|
1710
|
-
} else {
|
|
1711
|
-
console.error('浏览器不支持 Web Speech API');
|
|
1712
|
-
this.speechLoading = false;
|
|
1713
|
-
}
|
|
1714
|
-
},
|
|
1715
|
-
stopRecognition() {
|
|
1716
|
-
// 如果有自定义处理函数
|
|
1717
|
-
if (this.hasOnRecordingChangeListener) {
|
|
1718
|
-
this.speechLoading = false;
|
|
1719
|
-
this.$emit('recordingChange', false);
|
|
1720
|
-
return;
|
|
1721
|
-
}
|
|
1722
|
-
if (this.recognition) {
|
|
1723
|
-
this.recognition.stop();
|
|
1724
|
-
this.speechLoading = false;
|
|
1954
|
+
stylesInDom.splice(_index, 1);
|
|
1725
1955
|
}
|
|
1726
|
-
}
|
|
1727
|
-
/* 使用浏览器自带的语音转文字功能 结束 */
|
|
1956
|
+
}
|
|
1728
1957
|
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
this.$emit('submit', this.internalValue);
|
|
1733
|
-
},
|
|
1734
|
-
// 取消按钮
|
|
1735
|
-
cancel() {
|
|
1736
|
-
if (this.readOnly) return;
|
|
1737
|
-
this.$emit('cancel', this.internalValue);
|
|
1738
|
-
},
|
|
1739
|
-
clear() {
|
|
1740
|
-
if (this.readOnly) return; // 直接返回,不执行后续逻辑
|
|
1741
|
-
this.inputRef.clear();
|
|
1742
|
-
this.internalValue = '';
|
|
1743
|
-
},
|
|
1744
|
-
// 在这判断组合键的回车键 (目前支持两种模式)
|
|
1745
|
-
handleKeyDown(e) {
|
|
1746
|
-
if (this.readOnly) return; // 直接返回,不执行后续逻辑
|
|
1958
|
+
lastIdentifiers = newLastIdentifiers;
|
|
1959
|
+
};
|
|
1960
|
+
};
|
|
1747
1961
|
|
|
1748
|
-
|
|
1749
|
-
// 判断是否按下了 Shift + 回车键
|
|
1750
|
-
if (e.shiftKey && e.keyCode === 13) {
|
|
1751
|
-
e.preventDefault();
|
|
1752
|
-
const cursorPosition = e.target.selectionStart; // 获取光标位置
|
|
1753
|
-
const textBeforeCursor = this.internalValue.slice(0, cursorPosition); // 光标前的文本
|
|
1754
|
-
const textAfterCursor = this.internalValue.slice(cursorPosition); // 光标后的文本
|
|
1755
|
-
this.internalValue = `${textBeforeCursor}\n${textAfterCursor}`; // 插入换行符
|
|
1756
|
-
this.$nextTick(() => {
|
|
1757
|
-
e.target.setSelectionRange(cursorPosition + 1, cursorPosition + 1); // 更新光标位置
|
|
1758
|
-
});
|
|
1759
|
-
} else if (e.keyCode === 13 && !e.shiftKey) {
|
|
1760
|
-
// 阻止掉 Enter 的默认换行行为
|
|
1761
|
-
e.preventDefault();
|
|
1762
|
-
// 触发提交功能
|
|
1763
|
-
this.submit();
|
|
1764
|
-
}
|
|
1765
|
-
} else if (this.submitType === 'shiftEnter') {
|
|
1766
|
-
// 判断是否按下了 Shift + 回车键
|
|
1767
|
-
if (e.shiftKey && e.keyCode === 13) {
|
|
1768
|
-
// 阻止掉 Enter 的默认换行行为
|
|
1769
|
-
e.preventDefault();
|
|
1770
|
-
// 触发提交功能
|
|
1771
|
-
this.submit();
|
|
1772
|
-
} else if (e.keyCode === 13 && !e.shiftKey) {
|
|
1773
|
-
e.preventDefault();
|
|
1774
|
-
const cursorPosition = e.target.selectionStart; // 获取光标位置
|
|
1775
|
-
const textBeforeCursor = this.internalValue.slice(0, cursorPosition); // 光标前的文本
|
|
1776
|
-
const textAfterCursor = this.internalValue.slice(cursorPosition); // 光标后的文本
|
|
1777
|
-
this.internalValue = `${textBeforeCursor}\n${textAfterCursor}`; // 插入换行符
|
|
1778
|
-
this.$nextTick(() => {
|
|
1779
|
-
e.target.setSelectionRange(cursorPosition + 1, cursorPosition + 1); // 更新光标位置
|
|
1780
|
-
});
|
|
1781
|
-
}
|
|
1782
|
-
}
|
|
1783
|
-
},
|
|
1784
|
-
/* 输入框事件 结束 */
|
|
1962
|
+
/***/ }),
|
|
1785
1963
|
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
if (this.readOnly) return false;
|
|
1789
|
-
this.inputRef.blur();
|
|
1790
|
-
},
|
|
1791
|
-
focus(type = 'all') {
|
|
1792
|
-
if (this.readOnly) return false;
|
|
1793
|
-
if (type === 'all') {
|
|
1794
|
-
this.inputRef.select();
|
|
1795
|
-
} else if (type === 'start') {
|
|
1796
|
-
this.focusToStart();
|
|
1797
|
-
} else if (type === 'end') {
|
|
1798
|
-
this.focusToEnd();
|
|
1799
|
-
}
|
|
1800
|
-
},
|
|
1801
|
-
// 聚焦到文本最前方
|
|
1802
|
-
focusToStart() {
|
|
1803
|
-
if (this.inputRef) {
|
|
1804
|
-
// 获取底层的 textarea DOM 元素
|
|
1805
|
-
const textarea = this.inputRef.$el.querySelector('textarea');
|
|
1806
|
-
if (textarea) {
|
|
1807
|
-
textarea.focus(); // 聚焦到输入框
|
|
1808
|
-
textarea.setSelectionRange(0, 0); // 设置光标到最前方
|
|
1809
|
-
}
|
|
1810
|
-
}
|
|
1811
|
-
},
|
|
1812
|
-
// 聚焦到文本最后方
|
|
1813
|
-
focusToEnd() {
|
|
1814
|
-
if (this.inputRef) {
|
|
1815
|
-
// 获取底层的 textarea DOM 元素
|
|
1816
|
-
const textarea = this.inputRef.$el.querySelector('textarea');
|
|
1817
|
-
if (textarea) {
|
|
1818
|
-
textarea.focus(); // 聚焦到输入框
|
|
1819
|
-
textarea.setSelectionRange(this.internalValue.length, this.internalValue.length); // 设置光标到最后方
|
|
1820
|
-
}
|
|
1821
|
-
}
|
|
1822
|
-
},
|
|
1823
|
-
/* 焦点 事件 结束 */
|
|
1964
|
+
/***/ 31:
|
|
1965
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1824
1966
|
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
|
|
1967
|
+
"use strict";
|
|
1968
|
+
/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25);
|
|
1969
|
+
|
|
1970
|
+
/* harmony default export */ __webpack_exports__["a"] = ({
|
|
1971
|
+
methods: {
|
|
1972
|
+
elXt(...args) {
|
|
1973
|
+
return _index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].t.apply(this, args);
|
|
1831
1974
|
}
|
|
1832
|
-
},
|
|
1833
|
-
mounted() {
|
|
1834
|
-
// 应用样式
|
|
1835
|
-
this.$nextTick(() => {
|
|
1836
|
-
// 获取组件引用
|
|
1837
|
-
this.senderRef = this.$refs.senderRef;
|
|
1838
|
-
this.inputRef = this.$refs.inputRef;
|
|
1839
|
-
this.popoverRef = this.$refs.popoverRef;
|
|
1840
|
-
this.applyInputStyles();
|
|
1841
|
-
});
|
|
1842
|
-
},
|
|
1843
|
-
updated() {
|
|
1844
|
-
// 确保在组件更新后重新应用样式
|
|
1845
|
-
this.applyInputStyles();
|
|
1846
1975
|
}
|
|
1847
1976
|
});
|
|
1848
|
-
// CONCATENATED MODULE: ./src/components/Sender/src/main.vue?vue&type=script&lang=js
|
|
1849
|
-
/* harmony default export */ var src_mainvue_type_script_lang_js = (mainvue_type_script_lang_js);
|
|
1850
|
-
// 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=32628228&prod&lang=scss&scoped=true
|
|
1851
|
-
var mainvue_type_style_index_0_id_32628228_prod_lang_scss_scoped_true = __webpack_require__(92);
|
|
1852
1977
|
|
|
1853
|
-
|
|
1978
|
+
/***/ }),
|
|
1854
1979
|
|
|
1855
|
-
|
|
1980
|
+
/***/ 92:
|
|
1981
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1982
|
+
|
|
1983
|
+
"use strict";
|
|
1984
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
|
|
1985
|
+
/* 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__);
|
|
1986
|
+
// Imports
|
|
1856
1987
|
|
|
1857
|
-
var
|
|
1988
|
+
var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
|
|
1989
|
+
// Module
|
|
1990
|
+
___CSS_LOADER_EXPORT___.push([module.i, ".el-x-send-button .el-button .el-icon-brush[data-v-74c70621]{transform:rotate(180deg)}", ""]);
|
|
1991
|
+
// Exports
|
|
1992
|
+
/* harmony default export */ __webpack_exports__["a"] = (___CSS_LOADER_EXPORT___);
|
|
1858
1993
|
|
|
1859
|
-
mainvue_type_style_index_0_id_32628228_prod_lang_scss_scoped_true_options.insert = "head";
|
|
1860
|
-
mainvue_type_style_index_0_id_32628228_prod_lang_scss_scoped_true_options.singleton = false;
|
|
1861
1994
|
|
|
1862
|
-
|
|
1995
|
+
/***/ }),
|
|
1863
1996
|
|
|
1997
|
+
/***/ 93:
|
|
1998
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1864
1999
|
|
|
2000
|
+
"use strict";
|
|
2001
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
|
|
2002
|
+
/* 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__);
|
|
2003
|
+
// Imports
|
|
1865
2004
|
|
|
1866
|
-
|
|
1867
|
-
//
|
|
2005
|
+
var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
|
|
2006
|
+
// Module
|
|
2007
|
+
___CSS_LOADER_EXPORT___.push([module.i, "[data-v-46826223]:root{--color-primary: #409eff;--color-success: #67c23a;--color-warning: #e6a23c;--color-danger: #f56c6c;--color-info: #909399}.el-x-send-button[data-v-46826223]{height:32px}.el-x-send-button .el-button[data-v-46826223]{padding:0;width:32px;height:32px}.el-x-send-button .loading-svg[data-v-46826223]{color:#409eff;width:100%}", ""]);
|
|
2008
|
+
// Exports
|
|
2009
|
+
/* harmony default export */ __webpack_exports__["a"] = (___CSS_LOADER_EXPORT___);
|
|
1868
2010
|
|
|
1869
|
-
// CONCATENATED MODULE: ./src/components/Sender/src/main.vue
|
|
1870
2011
|
|
|
2012
|
+
/***/ }),
|
|
1871
2013
|
|
|
2014
|
+
/***/ 94:
|
|
2015
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1872
2016
|
|
|
2017
|
+
"use strict";
|
|
2018
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
|
|
2019
|
+
/* 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__);
|
|
2020
|
+
// Imports
|
|
1873
2021
|
|
|
2022
|
+
var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
|
|
2023
|
+
// Module
|
|
2024
|
+
___CSS_LOADER_EXPORT___.push([module.i, "[data-v-26ea2934]:root{--color-primary: #409eff;--color-success: #67c23a;--color-warning: #e6a23c;--color-danger: #f56c6c;--color-info: #909399}.el-x-send-button .el-button[data-v-26ea2934]{padding:0;width:32px;height:32px}.el-x-send-button .loading-svg[data-v-26ea2934]{color:#409eff;width:16px}", ""]);
|
|
2025
|
+
// Exports
|
|
2026
|
+
/* harmony default export */ __webpack_exports__["a"] = (___CSS_LOADER_EXPORT___);
|
|
1874
2027
|
|
|
1875
2028
|
|
|
1876
|
-
|
|
2029
|
+
/***/ }),
|
|
1877
2030
|
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
render,
|
|
1881
|
-
staticRenderFns,
|
|
1882
|
-
false,
|
|
1883
|
-
null,
|
|
1884
|
-
"32628228",
|
|
1885
|
-
null
|
|
1886
|
-
|
|
1887
|
-
)
|
|
2031
|
+
/***/ 95:
|
|
2032
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1888
2033
|
|
|
1889
|
-
|
|
1890
|
-
|
|
2034
|
+
"use strict";
|
|
2035
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
|
|
2036
|
+
/* 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__);
|
|
2037
|
+
// Imports
|
|
1891
2038
|
|
|
2039
|
+
var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
|
|
2040
|
+
// Module
|
|
2041
|
+
___CSS_LOADER_EXPORT___.push([module.i, "[data-v-1822655c]:root{--color-primary: #409eff;--color-success: #67c23a;--color-warning: #e6a23c;--color-danger: #f56c6c;--color-info: #909399}.el-x-sender[data-v-1822655c]{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 var(--el-x-sender-header-animation-duration)}.el-x-sender[data-v-1822655c]: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-1822655c]: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-1822655c]:focus-within::after{border-width:2px}.el-x-sender .el-x-sender-header-wrap[data-v-1822655c]{display:flex;flex-direction:column;gap:8px;width:100%;margin:0;padding:0}.el-x-sender .slide-enter-active[data-v-1822655c],.el-x-sender .slide-leave-active[data-v-1822655c]{height:calc-size(max-content, size);opacity:1;transition:height var(--el-x-sender-header-animation-duration),opacity var(--el-x-sender-header-animation-duration),border var(--el-x-sender-header-animation-duration);overflow:hidden}.el-x-sender .slide-enter[data-v-1822655c],.el-x-sender .slide-leave-to[data-v-1822655c]{height:0;opacity:0 !important}.el-x-sender .slide-enter-to[data-v-1822655c],.el-x-sender .slide-leave[data-v-1822655c]{height:calc-size(max-content, size);opacity:1}.el-x-sender .slide-enter-active .el-x-sender-header-wrap[data-v-1822655c],.el-x-sender .slide-leave-active .el-x-sender-header-wrap[data-v-1822655c]{min-height:0;overflow:hidden}.el-x-sender .el-x-sender-header[data-v-1822655c]{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#dcdfe6}.el-x-sender .el-x-sender-content[data-v-1822655c]{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-1822655c]{flex:none}.el-x-sender .el-x-sender-content .el-x-sender-input[data-v-1822655c]{height:100%;display:flex;align-items:center;align-self:center}.el-x-sender .el-x-sender-content .el-x-sender-input[data-v-1822655c] .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:transparent;transition:all .3s,height 0s;box-shadow:none !important}.el-x-sender .el-x-sender-content .el-x-sender-action-list-presets[data-v-1822655c]{display:flex;gap:8px;flex-direction:row-reverse}.el-x-sender .content-variant-updown[data-v-1822655c]{display:flex;flex-direction:column;align-items:initial}.el-x-sender .content-variant-updown .el-x-sender-updown-wrap[data-v-1822655c]{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-1822655c]{flex:initial}.el-x-sender .content-variant-updown .el-x-sender-updown-wrap .el-x-sender-action-list[data-v-1822655c]{margin-left:auto}.el-x-sender .el-x-sender-footer[data-v-1822655c]{border-top-width:1px;border-top-style:solid;border-top-color:#dcdfe6}.el-x-sender-disabled[data-v-1822655c]{background-color:#f5f7fa;pointer-events:none}[data-v-1822655c] .el-x-sender-trigger-popover{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}", ""]);
|
|
2042
|
+
// Exports
|
|
2043
|
+
/* harmony default export */ __webpack_exports__["a"] = (___CSS_LOADER_EXPORT___);
|
|
1892
2044
|
|
|
1893
|
-
/* istanbul ignore next */
|
|
1894
|
-
main.install = function (Vue) {
|
|
1895
|
-
Vue.component(main.name, main);
|
|
1896
|
-
};
|
|
1897
|
-
/* harmony default export */ var Sender = __webpack_exports__["default"] = (main);
|
|
1898
2045
|
|
|
1899
2046
|
/***/ })
|
|
1900
2047
|
|