@dialpad/dialtone-vue 3.131.0 → 3.132.1
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/dist/component-documentation.json +1 -1
- package/dist/lib/hovercard.cjs +9 -1
- package/dist/lib/hovercard.cjs.map +1 -1
- package/dist/lib/hovercard.js +9 -1
- package/dist/lib/hovercard.js.map +1 -1
- package/dist/lib/input.cjs +2 -0
- package/dist/lib/input.cjs.map +1 -1
- package/dist/lib/input.js +2 -0
- package/dist/lib/input.js.map +1 -1
- package/dist/lib/message-input.cjs +205 -146
- package/dist/lib/message-input.cjs.map +1 -1
- package/dist/lib/message-input.js +208 -149
- package/dist/lib/message-input.js.map +1 -1
- package/dist/lib/rich-text-editor.cjs +40 -19
- package/dist/lib/rich-text-editor.cjs.map +1 -1
- package/dist/lib/rich-text-editor.js +42 -21
- package/dist/lib/rich-text-editor.js.map +1 -1
- package/dist/style.css +64 -6
- package/dist/types/components/hovercard/hovercard.vue.d.ts.map +1 -1
- package/dist/types/components/rich_text_editor/extensions/emoji/emoji.d.ts.map +1 -1
- package/dist/types/components/rich_text_editor/rich_text_editor.vue.d.ts +38 -5
- package/dist/types/components/rich_text_editor/rich_text_editor.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.d.ts +73 -0
- package/dist/types/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.d.ts.map +1 -0
- package/dist/types/recipes/conversation_view/message_input/meeting_pill/meeting_pill.d.ts +4 -0
- package/dist/types/recipes/conversation_view/message_input/meeting_pill/meeting_pill.d.ts.map +1 -0
- package/dist/types/recipes/conversation_view/message_input/message_input.vue.d.ts +18 -6
- package/dist/types/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -1,29 +1,31 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Node, mergeAttributes } from "@tiptap/core";
|
|
2
|
+
import { NodeViewWrapper, nodeViewProps, VueNodeViewRenderer } from "@tiptap/vue-3";
|
|
3
|
+
import { resolveComponent, openBlock, createBlock, withCtx, createVNode, createElementVNode, createTextVNode, toDisplayString, resolveDirective, createElementBlock, normalizeClass, withKeys, withModifiers, normalizeStyle, mergeProps, renderSlot, withDirectives, createCommentVNode, vShow, createSlots } from "vue";
|
|
2
4
|
import { _export_sfc } from "../chunks/_plugin-vue_export-helper-caHeSgYY.js";
|
|
3
|
-
import {
|
|
4
|
-
import { DtEmojiPicker as _sfc_main$1 } from "./emoji-picker.js";
|
|
5
|
+
import { DtItemLayout } from "./item-layout.js";
|
|
5
6
|
import { DtIcon } from "./icon.js";
|
|
7
|
+
import { DtButton } from "./button.js";
|
|
8
|
+
import { DtEmojiPicker as _sfc_main$2 } from "./emoji-picker.js";
|
|
6
9
|
import { DtInput } from "./input.js";
|
|
7
10
|
import { DtPopover } from "./popover.js";
|
|
8
11
|
import { DtRichTextEditor, RICH_TEXT_EDITOR_AUTOFOCUS_TYPES, RICH_TEXT_EDITOR_OUTPUT_FORMATS } from "./rich-text-editor.js";
|
|
9
12
|
import { DtTooltip } from "./tooltip.js";
|
|
10
13
|
import "../common/utils.js";
|
|
11
14
|
import "../common/constants.js";
|
|
15
|
+
import "@dialpad/dialtone-icons/vue3";
|
|
16
|
+
import "../chunks/icon_constants-Dy4MEUJL.js";
|
|
17
|
+
import "@dialpad/dialtone-icons/icons.json";
|
|
12
18
|
import "../chunks/link_constants-AfTWrr-n.js";
|
|
13
19
|
import "../chunks/tab-RTDgnD9-.js";
|
|
14
20
|
import "@dialpad/dialtone-emojis";
|
|
15
21
|
import "../chunks/input-NmYDD5bn.js";
|
|
16
22
|
import "../common/validators.js";
|
|
17
23
|
import "./validation-messages.js";
|
|
18
|
-
import "@dialpad/dialtone-icons/vue3";
|
|
19
|
-
import "../chunks/icon_constants-Dy4MEUJL.js";
|
|
20
|
-
import "@dialpad/dialtone-icons/icons.json";
|
|
21
24
|
import "../chunks/popover_constants-kQaX7G4a.js";
|
|
22
25
|
import "tippy.js";
|
|
23
26
|
import "../chunks/modal-XOr4kiNZ.js";
|
|
24
27
|
import "../chunks/sr_only_close_button-3EdsV-dH.js";
|
|
25
28
|
import "./lazy-show.js";
|
|
26
|
-
import "@tiptap/vue-3";
|
|
27
29
|
import "@tiptap/extension-blockquote";
|
|
28
30
|
import "@tiptap/extension-code-block";
|
|
29
31
|
import "@tiptap/extension-document";
|
|
@@ -40,7 +42,6 @@ import "@tiptap/extension-strike";
|
|
|
40
42
|
import "@tiptap/extension-underline";
|
|
41
43
|
import "@tiptap/extension-text";
|
|
42
44
|
import "@tiptap/extension-text-align";
|
|
43
|
-
import "@tiptap/core";
|
|
44
45
|
import "./emoji.js";
|
|
45
46
|
import "../chunks/index-GVD15GIB.js";
|
|
46
47
|
import "./skeleton.js";
|
|
@@ -48,7 +49,6 @@ import "@tiptap/pm/state";
|
|
|
48
49
|
import "@tiptap/suggestion";
|
|
49
50
|
import "./list-item.js";
|
|
50
51
|
import "../chunks/list_item_constants-u1xcN9Dd.js";
|
|
51
|
-
import "./item-layout.js";
|
|
52
52
|
import "./stack.js";
|
|
53
53
|
import "../chunks/stack_constants-HraCekPm.js";
|
|
54
54
|
import "@tiptap/extension-mention";
|
|
@@ -57,11 +57,106 @@ import "./avatar.js";
|
|
|
57
57
|
import "./presence.js";
|
|
58
58
|
import "@dialpad/dialtone-icons/vue3/hash";
|
|
59
59
|
import "@dialpad/dialtone-icons/vue3/lock";
|
|
60
|
+
const _sfc_main$1 = {
|
|
61
|
+
name: "MeetingPill",
|
|
62
|
+
components: {
|
|
63
|
+
NodeViewWrapper,
|
|
64
|
+
DtItemLayout,
|
|
65
|
+
DtIcon,
|
|
66
|
+
DtButton
|
|
67
|
+
},
|
|
68
|
+
props: nodeViewProps,
|
|
69
|
+
emits: ["meeting-pill-close"],
|
|
70
|
+
methods: {
|
|
71
|
+
close(e) {
|
|
72
|
+
this.$parent.$emit("meeting-pill-close", e);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
const _hoisted_1$1 = { class: "dt-message-input-meeting-pill__icon" };
|
|
77
|
+
const _hoisted_2$1 = { class: "dt-message-input-meeting-pill__close" };
|
|
78
|
+
function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
79
|
+
const _component_dt_icon = resolveComponent("dt-icon");
|
|
80
|
+
const _component_dt_button = resolveComponent("dt-button");
|
|
81
|
+
const _component_dt_item_layout = resolveComponent("dt-item-layout");
|
|
82
|
+
const _component_node_view_wrapper = resolveComponent("node-view-wrapper");
|
|
83
|
+
return openBlock(), createBlock(_component_node_view_wrapper, { class: "dt-message-input-meeting-pill" }, {
|
|
84
|
+
default: withCtx(() => [
|
|
85
|
+
createVNode(_component_dt_item_layout, {
|
|
86
|
+
class: "dt-message-input-meeting-pill__layout",
|
|
87
|
+
unstyled: ""
|
|
88
|
+
}, {
|
|
89
|
+
left: withCtx(() => [
|
|
90
|
+
createElementVNode("div", _hoisted_1$1, [
|
|
91
|
+
createVNode(_component_dt_icon, {
|
|
92
|
+
name: "video",
|
|
93
|
+
size: "400"
|
|
94
|
+
})
|
|
95
|
+
])
|
|
96
|
+
]),
|
|
97
|
+
right: withCtx(() => [
|
|
98
|
+
createElementVNode("div", _hoisted_2$1, [
|
|
99
|
+
createVNode(_component_dt_button, {
|
|
100
|
+
circle: "",
|
|
101
|
+
"aria-label": _ctx.node.attrs["close-button-aria-label"],
|
|
102
|
+
size: "xs",
|
|
103
|
+
importance: "clear",
|
|
104
|
+
onClick: $options.close
|
|
105
|
+
}, {
|
|
106
|
+
icon: withCtx(() => [
|
|
107
|
+
createVNode(_component_dt_icon, {
|
|
108
|
+
name: "close",
|
|
109
|
+
size: "300"
|
|
110
|
+
})
|
|
111
|
+
]),
|
|
112
|
+
_: 1
|
|
113
|
+
}, 8, ["aria-label", "onClick"])
|
|
114
|
+
])
|
|
115
|
+
]),
|
|
116
|
+
default: withCtx(() => [
|
|
117
|
+
createTextVNode(" " + toDisplayString(_ctx.node.attrs.text) + " ", 1)
|
|
118
|
+
]),
|
|
119
|
+
_: 1
|
|
120
|
+
})
|
|
121
|
+
]),
|
|
122
|
+
_: 1
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
const MeetingPill = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1]]);
|
|
126
|
+
const meetingPill = Node.create({
|
|
127
|
+
atom: true,
|
|
128
|
+
group: "inline",
|
|
129
|
+
inline: true,
|
|
130
|
+
addNodeView() {
|
|
131
|
+
return VueNodeViewRenderer(MeetingPill);
|
|
132
|
+
},
|
|
133
|
+
addAttributes() {
|
|
134
|
+
return {
|
|
135
|
+
text: {
|
|
136
|
+
default: 'Please pass in "text" attribute'
|
|
137
|
+
},
|
|
138
|
+
"close-button-aria-label": {}
|
|
139
|
+
};
|
|
140
|
+
},
|
|
141
|
+
parseHTML() {
|
|
142
|
+
return [
|
|
143
|
+
{
|
|
144
|
+
tag: "meeting-pill"
|
|
145
|
+
}
|
|
146
|
+
];
|
|
147
|
+
},
|
|
148
|
+
renderText({ node }) {
|
|
149
|
+
return "/dpm";
|
|
150
|
+
},
|
|
151
|
+
renderHTML({ HTMLAttributes }) {
|
|
152
|
+
return ["meeting-pill", mergeAttributes(HTMLAttributes)];
|
|
153
|
+
}
|
|
154
|
+
});
|
|
60
155
|
const _sfc_main = {
|
|
61
156
|
name: "DtRecipeMessageInput",
|
|
62
157
|
components: {
|
|
63
158
|
DtButton,
|
|
64
|
-
DtEmojiPicker: _sfc_main$
|
|
159
|
+
DtEmojiPicker: _sfc_main$2,
|
|
65
160
|
DtIcon,
|
|
66
161
|
DtInput,
|
|
67
162
|
DtPopover,
|
|
@@ -94,6 +189,13 @@ const _sfc_main = {
|
|
|
94
189
|
required: true,
|
|
95
190
|
default: ""
|
|
96
191
|
},
|
|
192
|
+
/**
|
|
193
|
+
* Prevents the user from typing any further. Deleting text will still work.
|
|
194
|
+
*/
|
|
195
|
+
preventTyping: {
|
|
196
|
+
type: Boolean,
|
|
197
|
+
default: false
|
|
198
|
+
},
|
|
97
199
|
/**
|
|
98
200
|
* Additional class name for the input element. Only accepts a String value
|
|
99
201
|
* because this is passed to the editor via options. For multiple classes,
|
|
@@ -382,23 +484,12 @@ const _sfc_main = {
|
|
|
382
484
|
*/
|
|
383
485
|
"selected-command",
|
|
384
486
|
/**
|
|
385
|
-
*
|
|
386
|
-
*
|
|
387
|
-
* @
|
|
388
|
-
|
|
389
|
-
"focus",
|
|
390
|
-
/**
|
|
391
|
-
* Native blur event
|
|
392
|
-
* @event input
|
|
393
|
-
* @type {String|JSON}
|
|
394
|
-
*/
|
|
395
|
-
"blur",
|
|
396
|
-
/**
|
|
397
|
-
* Native input event
|
|
398
|
-
* @event input
|
|
399
|
-
* @type {String|JSON}
|
|
487
|
+
* Fires when meeting pill is closed
|
|
488
|
+
*
|
|
489
|
+
* @event meeting-pill-close
|
|
490
|
+
* @type {String}
|
|
400
491
|
*/
|
|
401
|
-
"
|
|
492
|
+
"meeting-pill-close",
|
|
402
493
|
/**
|
|
403
494
|
* Event to sync the value with the parent
|
|
404
495
|
* @event update:modelValue
|
|
@@ -408,12 +499,12 @@ const _sfc_main = {
|
|
|
408
499
|
],
|
|
409
500
|
data() {
|
|
410
501
|
return {
|
|
502
|
+
additionalExtensions: [meetingPill],
|
|
411
503
|
internalInputValue: this.modelValue,
|
|
412
504
|
// internal input content
|
|
413
505
|
hasFocus: false,
|
|
414
506
|
imagePickerFocus: false,
|
|
415
507
|
emojiPickerFocus: false,
|
|
416
|
-
sendButtonFocus: false,
|
|
417
508
|
emojiPickerOpened: false
|
|
418
509
|
};
|
|
419
510
|
},
|
|
@@ -485,9 +576,6 @@ const _sfc_main = {
|
|
|
485
576
|
});
|
|
486
577
|
this.$emit("selected-emoji", emoji);
|
|
487
578
|
},
|
|
488
|
-
onSelectedCommand(command) {
|
|
489
|
-
this.$emit("selected-command", command);
|
|
490
|
-
},
|
|
491
579
|
onSelectImage() {
|
|
492
580
|
this.$refs.messageInputImageUpload.$refs.input.click();
|
|
493
581
|
},
|
|
@@ -510,55 +598,45 @@ const _sfc_main = {
|
|
|
510
598
|
var _a;
|
|
511
599
|
this.hasFocus = true;
|
|
512
600
|
(_a = this.$refs.richTextEditor) == null ? void 0 : _a.focusEditor();
|
|
513
|
-
this.$emit("focus", event);
|
|
514
601
|
},
|
|
515
602
|
onBlur(event) {
|
|
516
603
|
this.hasFocus = false;
|
|
517
|
-
this.$emit("blur", event);
|
|
518
604
|
},
|
|
519
605
|
onInput(event) {
|
|
520
|
-
this.$emit("input", event);
|
|
521
606
|
this.$emit("update:modelValue", event);
|
|
522
607
|
}
|
|
523
608
|
}
|
|
524
609
|
};
|
|
525
|
-
const _hoisted_1 = { class: "
|
|
526
|
-
const _hoisted_2 = { class: "
|
|
527
|
-
const _hoisted_3 = { class: "
|
|
610
|
+
const _hoisted_1 = { class: "dt-message-input__bottom-section" };
|
|
611
|
+
const _hoisted_2 = { class: "dt-message-input__bottom-section-left" };
|
|
612
|
+
const _hoisted_3 = { class: "dt-message-input__bottom-section-right" };
|
|
528
613
|
const _hoisted_4 = { key: 0 };
|
|
529
614
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
615
|
+
var _a, _b;
|
|
530
616
|
const _component_dt_rich_text_editor = resolveComponent("dt-rich-text-editor");
|
|
531
617
|
const _component_dt_icon = resolveComponent("dt-icon");
|
|
532
618
|
const _component_dt_button = resolveComponent("dt-button");
|
|
533
619
|
const _component_dt_input = resolveComponent("dt-input");
|
|
534
|
-
const _component_dt_tooltip = resolveComponent("dt-tooltip");
|
|
535
620
|
const _component_dt_emoji_picker = resolveComponent("dt-emoji-picker");
|
|
536
621
|
const _component_dt_popover = resolveComponent("dt-popover");
|
|
622
|
+
const _component_dt_tooltip = resolveComponent("dt-tooltip");
|
|
537
623
|
const _directive_dt_tooltip = resolveDirective("dt-tooltip");
|
|
538
624
|
return openBlock(), createElementBlock("div", {
|
|
539
625
|
"data-qa": "dt-message-input",
|
|
540
626
|
role: "presentation",
|
|
541
|
-
class: normalizeClass([
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
"d-baw1",
|
|
546
|
-
"d-ba",
|
|
547
|
-
"d-c-text",
|
|
548
|
-
{ "d-bc-bold d-bs-sm": $data.hasFocus, "d-bc-default": !$data.hasFocus }
|
|
549
|
-
]),
|
|
550
|
-
onClick: _cache[15] || (_cache[15] = ($event) => {
|
|
551
|
-
var _a;
|
|
552
|
-
return (_a = _ctx.$refs.richTextEditor) == null ? void 0 : _a.focusEditor();
|
|
627
|
+
class: normalizeClass(["dt-message-input", { "dt-message-input--focused": $data.hasFocus }]),
|
|
628
|
+
onClick: _cache[10] || (_cache[10] = ($event) => {
|
|
629
|
+
var _a2;
|
|
630
|
+
return (_a2 = _ctx.$refs.richTextEditor) == null ? void 0 : _a2.focusEditor();
|
|
553
631
|
}),
|
|
554
|
-
onDragEnter: _cache[
|
|
555
|
-
onDragOver: _cache[
|
|
556
|
-
onDrop: _cache[
|
|
557
|
-
onKeydown: _cache[
|
|
558
|
-
onPaste: _cache[
|
|
632
|
+
onDragEnter: _cache[11] || (_cache[11] = (...args) => $options.onDrag && $options.onDrag(...args)),
|
|
633
|
+
onDragOver: _cache[12] || (_cache[12] = (...args) => $options.onDrag && $options.onDrag(...args)),
|
|
634
|
+
onDrop: _cache[13] || (_cache[13] = (...args) => $options.onDrop && $options.onDrop(...args)),
|
|
635
|
+
onKeydown: _cache[14] || (_cache[14] = withKeys(withModifiers((...args) => $options.onSend && $options.onSend(...args), ["exact"]), ["enter"])),
|
|
636
|
+
onPaste: _cache[15] || (_cache[15] = (...args) => $options.onPaste && $options.onPaste(...args))
|
|
559
637
|
}, [
|
|
560
638
|
createElementVNode("div", {
|
|
561
|
-
class: "
|
|
639
|
+
class: "dt-message-input__editor-wrapper",
|
|
562
640
|
style: normalizeStyle({ "max-height": $props.maxHeight })
|
|
563
641
|
}, [
|
|
564
642
|
createVNode(_component_dt_rich_text_editor, mergeProps({
|
|
@@ -579,64 +657,58 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
579
657
|
"auto-focus": $props.autoFocus,
|
|
580
658
|
link: $props.link,
|
|
581
659
|
placeholder: $props.placeholder,
|
|
660
|
+
"prevent-typing": $props.preventTyping,
|
|
582
661
|
"mention-suggestion": $props.mentionSuggestion,
|
|
583
662
|
"channel-suggestion": $props.channelSuggestion,
|
|
584
|
-
"slash-command-suggestion": $props.slashCommandSuggestion
|
|
663
|
+
"slash-command-suggestion": $props.slashCommandSuggestion,
|
|
664
|
+
"additional-extensions": $data.additionalExtensions
|
|
585
665
|
}, _ctx.$attrs, {
|
|
586
666
|
onFocus: $options.onFocus,
|
|
587
667
|
onBlur: $options.onBlur,
|
|
588
|
-
onInput:
|
|
589
|
-
|
|
590
|
-
}), null, 16, ["modelValue", "allow-blockquote", "allow-bold", "allow-bullet-list", "allow-codeblock", "allow-italic", "allow-strike", "allow-underline", "editable", "input-aria-label", "input-class", "output-format", "auto-focus", "link", "placeholder", "mention-suggestion", "channel-suggestion", "slash-command-suggestion", "onFocus", "onBlur", "onSelectedCommand"])
|
|
668
|
+
onInput: $options.onInput
|
|
669
|
+
}), null, 16, ["modelValue", "allow-blockquote", "allow-bold", "allow-bullet-list", "allow-codeblock", "allow-italic", "allow-strike", "allow-underline", "editable", "input-aria-label", "input-class", "output-format", "auto-focus", "link", "placeholder", "prevent-typing", "mention-suggestion", "channel-suggestion", "slash-command-suggestion", "additional-extensions", "onFocus", "onBlur", "onInput"])
|
|
591
670
|
], 4),
|
|
592
671
|
renderSlot(_ctx.$slots, "middle"),
|
|
593
672
|
createElementVNode("section", _hoisted_1, [
|
|
594
673
|
createElementVNode("div", _hoisted_2, [
|
|
595
|
-
$props.showImagePicker ? (openBlock(), createBlock(
|
|
674
|
+
$props.showImagePicker ? withDirectives((openBlock(), createBlock(_component_dt_button, {
|
|
596
675
|
key: 0,
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
676
|
+
"data-qa": "dt-message-input-image-btn",
|
|
677
|
+
size: "sm",
|
|
678
|
+
circle: "",
|
|
679
|
+
kind: $data.imagePickerFocus ? "default" : "muted",
|
|
680
|
+
importance: "clear",
|
|
681
|
+
"aria-label": $props.showImagePicker.ariaLabel,
|
|
682
|
+
onClick: $options.onSelectImage,
|
|
683
|
+
onMouseenter: _cache[1] || (_cache[1] = ($event) => $data.imagePickerFocus = true),
|
|
684
|
+
onMouseleave: _cache[2] || (_cache[2] = ($event) => $data.imagePickerFocus = false),
|
|
685
|
+
onFocus: _cache[3] || (_cache[3] = ($event) => $data.imagePickerFocus = true),
|
|
686
|
+
onBlur: _cache[4] || (_cache[4] = ($event) => $data.imagePickerFocus = false)
|
|
600
687
|
}, {
|
|
601
|
-
|
|
602
|
-
createVNode(
|
|
603
|
-
|
|
604
|
-
size: "
|
|
605
|
-
|
|
606
|
-
kind: $data.imagePickerFocus ? "default" : "muted",
|
|
607
|
-
importance: "clear",
|
|
608
|
-
"aria-label": $props.showImagePicker.ariaLabel,
|
|
609
|
-
onClick: $options.onSelectImage,
|
|
610
|
-
onMouseenter: _cache[2] || (_cache[2] = ($event) => $data.imagePickerFocus = true),
|
|
611
|
-
onMouseleave: _cache[3] || (_cache[3] = ($event) => $data.imagePickerFocus = false),
|
|
612
|
-
onFocus: _cache[4] || (_cache[4] = ($event) => $data.imagePickerFocus = true),
|
|
613
|
-
onBlur: _cache[5] || (_cache[5] = ($event) => $data.imagePickerFocus = false)
|
|
614
|
-
}, {
|
|
615
|
-
icon: withCtx(() => [
|
|
616
|
-
createVNode(_component_dt_icon, {
|
|
617
|
-
name: "image",
|
|
618
|
-
size: "300"
|
|
619
|
-
})
|
|
620
|
-
]),
|
|
621
|
-
_: 1
|
|
622
|
-
}, 8, ["kind", "aria-label", "onClick"]),
|
|
623
|
-
createVNode(_component_dt_input, {
|
|
624
|
-
ref: "messageInputImageUpload",
|
|
625
|
-
"data-qa": "dt-message-input-image-input",
|
|
626
|
-
accept: "image/*, video/*",
|
|
627
|
-
type: "file",
|
|
628
|
-
class: "d-ps-absolute",
|
|
629
|
-
multiple: "",
|
|
630
|
-
hidden: "",
|
|
631
|
-
onInput: $options.onImageUpload
|
|
632
|
-
}, null, 8, ["onInput"])
|
|
688
|
+
icon: withCtx(() => [
|
|
689
|
+
createVNode(_component_dt_icon, {
|
|
690
|
+
name: "image",
|
|
691
|
+
size: "300"
|
|
692
|
+
})
|
|
633
693
|
]),
|
|
634
694
|
_: 1
|
|
635
|
-
}, 8, ["
|
|
695
|
+
}, 8, ["kind", "aria-label", "onClick"])), [
|
|
696
|
+
[_directive_dt_tooltip, (_a = $props.showImagePicker) == null ? void 0 : _a.tooltipLabel, "top-start"]
|
|
697
|
+
]) : createCommentVNode("", true),
|
|
698
|
+
createVNode(_component_dt_input, {
|
|
699
|
+
ref: "messageInputImageUpload",
|
|
700
|
+
"data-qa": "dt-message-input-image-input",
|
|
701
|
+
accept: "image/*, video/*",
|
|
702
|
+
type: "file",
|
|
703
|
+
class: "dt-message-input__image-input",
|
|
704
|
+
multiple: "",
|
|
705
|
+
hidden: "",
|
|
706
|
+
onInput: $options.onImageUpload
|
|
707
|
+
}, null, 8, ["onInput"]),
|
|
636
708
|
$props.showEmojiPicker ? (openBlock(), createBlock(_component_dt_popover, {
|
|
637
709
|
key: 1,
|
|
638
710
|
open: $data.emojiPickerOpened,
|
|
639
|
-
"onUpdate:open": _cache[
|
|
711
|
+
"onUpdate:open": _cache[9] || (_cache[9] = ($event) => $data.emojiPickerOpened = $event),
|
|
640
712
|
"data-qa": "dt-message-input-emoji-picker-popover",
|
|
641
713
|
"initial-focus-element": "#searchInput",
|
|
642
714
|
padding: "none"
|
|
@@ -650,10 +722,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
650
722
|
importance: "clear",
|
|
651
723
|
"aria-label": $props.emojiButtonAriaLabel,
|
|
652
724
|
onClick: $options.toggleEmojiPicker,
|
|
653
|
-
onMouseenter: _cache[
|
|
654
|
-
onMouseleave: _cache[
|
|
655
|
-
onFocus: _cache[
|
|
656
|
-
onBlur: _cache[
|
|
725
|
+
onMouseenter: _cache[5] || (_cache[5] = ($event) => $data.emojiPickerFocus = true),
|
|
726
|
+
onMouseleave: _cache[6] || (_cache[6] = ($event) => $data.emojiPickerFocus = false),
|
|
727
|
+
onFocus: _cache[7] || (_cache[7] = ($event) => $data.emojiPickerFocus = true),
|
|
728
|
+
onBlur: _cache[8] || (_cache[8] = ($event) => $data.emojiPickerFocus = false)
|
|
657
729
|
}), {
|
|
658
730
|
icon: withCtx(() => [
|
|
659
731
|
createVNode(_component_dt_icon, {
|
|
@@ -682,7 +754,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
682
754
|
createElementVNode("div", _hoisted_3, [
|
|
683
755
|
Boolean($props.showCharacterLimit) ? (openBlock(), createBlock(_component_dt_tooltip, {
|
|
684
756
|
key: 0,
|
|
685
|
-
class: "dt-message-
|
|
757
|
+
class: "dt-message-input__remaining-char-tooltip",
|
|
686
758
|
placement: "top-end",
|
|
687
759
|
enabled: $options.characterLimitTooltipEnabled,
|
|
688
760
|
message: $props.showCharacterLimit.message,
|
|
@@ -690,7 +762,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
690
762
|
}, {
|
|
691
763
|
anchor: withCtx(() => [
|
|
692
764
|
withDirectives(createElementVNode("p", {
|
|
693
|
-
class: "
|
|
765
|
+
class: "dt-message-input__remaining-char",
|
|
694
766
|
"data-qa": "dt-message-input-character-limit"
|
|
695
767
|
}, toDisplayString($props.showCharacterLimit.count - $options.inputLength), 513), [
|
|
696
768
|
[vShow, $options.displayCharacterLimitWarning]
|
|
@@ -701,7 +773,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
701
773
|
$props.showCancel ? (openBlock(), createBlock(_component_dt_button, {
|
|
702
774
|
key: 1,
|
|
703
775
|
"data-qa": "dt-message-input-cancel-button",
|
|
704
|
-
class: "dt-message-
|
|
776
|
+
class: "dt-message-input__cancel-button",
|
|
705
777
|
size: "sm",
|
|
706
778
|
kind: "muted",
|
|
707
779
|
importance: "clear",
|
|
@@ -713,53 +785,40 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
713
785
|
]),
|
|
714
786
|
_: 1
|
|
715
787
|
}, 8, ["aria-label", "onClick"])) : createCommentVNode("", true),
|
|
716
|
-
$props.showSend ? (openBlock(), createBlock(
|
|
788
|
+
$props.showSend ? withDirectives((openBlock(), createBlock(_component_dt_button, {
|
|
717
789
|
key: 2,
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
size: "sm",
|
|
728
|
-
kind: "default",
|
|
729
|
-
importance: "primary",
|
|
730
|
-
class: normalizeClass([
|
|
731
|
-
{
|
|
732
|
-
"message-input-button__disabled d-fc-muted": $options.isSendDisabled,
|
|
733
|
-
"d-btn--circle": $props.showSend.icon
|
|
734
|
-
}
|
|
735
|
-
]),
|
|
736
|
-
"aria-label": $props.showSend.ariaLabel,
|
|
737
|
-
"aria-disabled": $options.isSendDisabled,
|
|
738
|
-
onClick: $options.onSend,
|
|
739
|
-
onMouseenter: _cache[11] || (_cache[11] = ($event) => $data.sendButtonFocus = true),
|
|
740
|
-
onMouseleave: _cache[12] || (_cache[12] = ($event) => $data.sendButtonFocus = false),
|
|
741
|
-
onFocus: _cache[13] || (_cache[13] = ($event) => $data.sendButtonFocus = true),
|
|
742
|
-
onBlur: _cache[14] || (_cache[14] = ($event) => $data.sendButtonFocus = false)
|
|
743
|
-
}, createSlots({
|
|
744
|
-
default: withCtx(() => [
|
|
745
|
-
$props.showSend.text ? (openBlock(), createElementBlock("p", _hoisted_4, toDisplayString($props.showSend.text), 1)) : createCommentVNode("", true)
|
|
746
|
-
]),
|
|
747
|
-
_: 2
|
|
748
|
-
}, [
|
|
749
|
-
$props.showSend.icon ? {
|
|
750
|
-
name: "icon",
|
|
751
|
-
fn: withCtx(() => [
|
|
752
|
-
createVNode(_component_dt_icon, {
|
|
753
|
-
name: $props.showSend.icon,
|
|
754
|
-
size: "300"
|
|
755
|
-
}, null, 8, ["name"])
|
|
756
|
-
]),
|
|
757
|
-
key: "0"
|
|
758
|
-
} : void 0
|
|
759
|
-
]), 1032, ["class", "aria-label", "aria-disabled", "onClick"])
|
|
790
|
+
"data-qa": "dt-message-input-send-btn",
|
|
791
|
+
size: "sm",
|
|
792
|
+
kind: "default",
|
|
793
|
+
importance: "primary",
|
|
794
|
+
class: normalizeClass([
|
|
795
|
+
{
|
|
796
|
+
"dt-message-input__send-button--disabled": $options.isSendDisabled,
|
|
797
|
+
"d-btn--circle": $props.showSend.icon
|
|
798
|
+
}
|
|
760
799
|
]),
|
|
761
|
-
|
|
762
|
-
|
|
800
|
+
"aria-label": $props.showSend.ariaLabel,
|
|
801
|
+
"aria-disabled": $options.isSendDisabled,
|
|
802
|
+
onClick: $options.onSend
|
|
803
|
+
}, createSlots({
|
|
804
|
+
default: withCtx(() => [
|
|
805
|
+
$props.showSend.text ? (openBlock(), createElementBlock("p", _hoisted_4, toDisplayString($props.showSend.text), 1)) : createCommentVNode("", true)
|
|
806
|
+
]),
|
|
807
|
+
_: 2
|
|
808
|
+
}, [
|
|
809
|
+
$props.showSend.icon ? {
|
|
810
|
+
name: "icon",
|
|
811
|
+
fn: withCtx(() => [
|
|
812
|
+
createVNode(_component_dt_icon, {
|
|
813
|
+
name: $props.showSend.icon,
|
|
814
|
+
size: "300"
|
|
815
|
+
}, null, 8, ["name"])
|
|
816
|
+
]),
|
|
817
|
+
key: "0"
|
|
818
|
+
} : void 0
|
|
819
|
+
]), 1032, ["class", "aria-label", "aria-disabled", "onClick"])), [
|
|
820
|
+
[_directive_dt_tooltip, (_b = $props.showSend) == null ? void 0 : _b.tooltipLabel, "top-end"]
|
|
821
|
+
]) : createCommentVNode("", true)
|
|
763
822
|
])
|
|
764
823
|
])
|
|
765
824
|
], 34);
|