@dialpad/dialtone 9.156.1 → 9.158.0
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/css/dialtone-default-theme.css +7 -0
- package/dist/css/dialtone-default-theme.min.css +1 -1
- package/dist/css/dialtone.css +7 -0
- package/dist/css/dialtone.min.css +1 -1
- package/dist/tokens/doc.json +76215 -76215
- package/dist/vue3/common/dates/index.js +4 -4
- package/dist/vue3/common/utils/index.js +3 -3
- package/dist/vue3/component-documentation.json +1 -1
- package/dist/vue3/dialtone-vue.cjs +1 -1
- package/dist/vue3/dialtone-vue.js +349 -349
- package/dist/vue3/lib/attachment-carousel/attachment-carousel.js +1 -1
- package/dist/vue3/lib/avatar/avatar.js +10 -10
- package/dist/vue3/lib/badge/badge.js +5 -5
- package/dist/vue3/lib/banner/banner.js +1 -1
- package/dist/vue3/lib/breadcrumbs/breadcrumb-item.js +2 -2
- package/dist/vue3/lib/breadcrumbs/breadcrumbs.js +1 -1
- package/dist/vue3/lib/button/button.js +14 -14
- package/dist/vue3/lib/button-group/button-group.js +2 -2
- package/dist/vue3/lib/button-group/buttons-decorator.js +2 -2
- package/dist/vue3/lib/callbar-button/callbar-button.js +2 -2
- package/dist/vue3/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs +1 -1
- package/dist/vue3/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js +9 -9
- package/dist/vue3/lib/callbar-button-with-popover/callbar-button-with-popover.cjs +1 -1
- package/dist/vue3/lib/callbar-button-with-popover/callbar-button-with-popover.js +9 -9
- package/dist/vue3/lib/callbox/callbox.js +1 -1
- package/dist/vue3/lib/card/card.js +4 -4
- package/dist/vue3/lib/checkbox/checkbox.js +5 -5
- package/dist/vue3/lib/checkbox-group/checkboxes-decorator.js +1 -1
- package/dist/vue3/lib/chip/chip.js +7 -7
- package/dist/vue3/lib/codeblock/codeblock.js +2 -2
- package/dist/vue3/lib/collapsible/collapsible-lazy-show.js +3 -3
- package/dist/vue3/lib/collapsible/collapsible.js +8 -8
- package/dist/vue3/lib/combobox/combobox-empty-list.js +2 -2
- package/dist/vue3/lib/combobox/combobox-loading-list.js +3 -3
- package/dist/vue3/lib/combobox/combobox.cjs +1 -1
- package/dist/vue3/lib/combobox/combobox.js +8 -8
- package/dist/vue3/lib/combobox-multi-select/combobox-multi-select.js +1 -1
- package/dist/vue3/lib/combobox-with-popover/combobox-with-popover.cjs +1 -1
- package/dist/vue3/lib/combobox-with-popover/combobox-with-popover.js +10 -10
- package/dist/vue3/lib/contact-centers-row/contact-centers-row.js +7 -7
- package/dist/vue3/lib/contact-info/contact-info.js +1 -1
- package/dist/vue3/lib/contact-row/contact-row.js +1 -1
- package/dist/vue3/lib/datepicker/datepicker.js +1 -1
- package/dist/vue3/lib/datepicker/utils.js +4 -4
- package/dist/vue3/lib/description-list/description-list.js +3 -3
- package/dist/vue3/lib/dropdown/dropdown-list.js +4 -4
- package/dist/vue3/lib/dropdown/dropdown-separator.js +2 -2
- package/dist/vue3/lib/dropdown/dropdown.js +2 -2
- package/dist/vue3/lib/editor/editor.cjs +1 -1
- package/dist/vue3/lib/editor/editor.cjs.map +1 -1
- package/dist/vue3/lib/editor/editor.js +59 -51
- package/dist/vue3/lib/editor/editor.js.map +1 -1
- package/dist/vue3/lib/emoji/emoji.js +2 -2
- package/dist/vue3/lib/emoji-picker/emoji-picker.js +1 -1
- package/dist/vue3/lib/emoji-row/emoji-row.js +6 -6
- package/dist/vue3/lib/empty-state/empty-state.js +7 -7
- package/dist/vue3/lib/feed-item-pill/feed-item-pill.js +1 -1
- package/dist/vue3/lib/feed-item-row/feed-item-row.js +15 -15
- package/dist/vue3/lib/general-row/general-row.js +13 -13
- package/dist/vue3/lib/general-row/leftbar-general-row-icon.js +5 -5
- package/dist/vue3/lib/group-row/group-row.js +2 -2
- package/dist/vue3/lib/grouped-chip/grouped-chip.js +14 -14
- package/dist/vue3/lib/hovercard/hovercard.js +2 -2
- package/dist/vue3/lib/icon/icon.js +3 -3
- package/dist/vue3/lib/illustration/illustration.js +3 -3
- package/dist/vue3/lib/image-viewer/image-viewer.js +12 -12
- package/dist/vue3/lib/input/input.js +10 -10
- package/dist/vue3/lib/input-group/input-group.js +8 -8
- package/dist/vue3/lib/item-layout/item-layout.js +13 -13
- package/dist/vue3/lib/ivr-node/ivr-node.js +9 -9
- package/dist/vue3/lib/keyboard-shortcut/keyboard-shortcut.js +3 -3
- package/dist/vue3/lib/lazy-show/lazy-show.js +2 -2
- package/dist/vue3/lib/link/link.js +2 -2
- package/dist/vue3/lib/list-item/list-item.js +3 -3
- package/dist/vue3/lib/list-item-group/list-item-group.js +5 -5
- package/dist/vue3/lib/loader/loader.js +2 -2
- package/dist/vue3/lib/message-input/message-input-button.js +5 -5
- package/dist/vue3/lib/message-input/message-input-link.js +2 -2
- package/dist/vue3/lib/message-input/message-input-topbar.js +2 -2
- package/dist/vue3/lib/message-input/message-input.js +1 -1
- package/dist/vue3/lib/modal/modal.js +1 -1
- package/dist/vue3/lib/motion-text/motion-text.js +5 -5
- package/dist/vue3/lib/notice/notice-action.js +1 -1
- package/dist/vue3/lib/notice/notice-content.js +6 -6
- package/dist/vue3/lib/notice/notice-icon.js +4 -4
- package/dist/vue3/lib/notice/notice.js +1 -1
- package/dist/vue3/lib/pagination/pagination.js +1 -1
- package/dist/vue3/lib/popover/popover-constants.js +3 -3
- package/dist/vue3/lib/popover/popover-header-footer.js +6 -6
- package/dist/vue3/lib/popover/popover.js +7 -7
- package/dist/vue3/lib/presence/presence.js +4 -4
- package/dist/vue3/lib/radio/radio.js +10 -10
- package/dist/vue3/lib/radio-group/radios-decorator.js +1 -1
- package/dist/vue3/lib/rich-text-editor/rich-text-editor.cjs +4 -4
- package/dist/vue3/lib/rich-text-editor/rich-text-editor.cjs.map +1 -1
- package/dist/vue3/lib/rich-text-editor/rich-text-editor.js +161 -149
- package/dist/vue3/lib/rich-text-editor/rich-text-editor.js.map +1 -1
- package/dist/vue3/lib/root-layout/root-layout.js +3 -3
- package/dist/vue3/lib/scroller/scroller.js +1 -1
- package/dist/vue3/lib/select-menu/select-menu.js +12 -12
- package/dist/vue3/lib/settings-menu-button/settings-menu-button.js +3 -3
- package/dist/vue3/lib/skeleton/skeleton-list-item.js +2 -2
- package/dist/vue3/lib/skeleton/skeleton-paragraph.js +1 -1
- package/dist/vue3/lib/skeleton/skeleton-shape.js +2 -2
- package/dist/vue3/lib/skeleton/skeleton-text.js +4 -4
- package/dist/vue3/lib/skeleton/skeleton.js +1 -1
- package/dist/vue3/lib/split-button/split-button-alpha.js +2 -2
- package/dist/vue3/lib/split-button/split-button-omega.js +2 -2
- package/dist/vue3/lib/split-button/split-button.js +13 -13
- package/dist/vue3/lib/stack/stack.js +2 -2
- package/dist/vue3/lib/stack/utils.js +5 -5
- package/dist/vue3/lib/stack/validators.js +7 -7
- package/dist/vue3/lib/tab/tab-group.js +2 -2
- package/dist/vue3/lib/tab/tab-panel.js +2 -2
- package/dist/vue3/lib/tab/tab.js +2 -2
- package/dist/vue3/lib/time-pill/time-pill.js +2 -2
- package/dist/vue3/lib/toast/toast.js +1 -1
- package/dist/vue3/lib/toggle/toggle.js +7 -7
- package/dist/vue3/lib/tooltip/tooltip.js +5 -5
- package/dist/vue3/lib/top-banner-info/top-banner-info.js +2 -2
- package/dist/vue3/lib/unread-pill/unread-pill.js +1 -1
- package/dist/vue3/lib/validation-messages/validation-messages.js +6 -6
- package/dist/vue3/node_modules/@tiptap/vue-3.cjs.map +1 -1
- package/dist/vue3/node_modules/@tiptap/vue-3.js.map +1 -1
- package/dist/vue3/shared/sr_only_close_button.js +2 -2
- package/dist/vue3/types/components/rich_text_editor/rich_text_editor.vue.d.ts +9 -0
- package/dist/vue3/types/components/rich_text_editor/rich_text_editor.vue.d.ts.map +1 -1
- package/dist/vue3/types/recipes/conversation_view/editor/editor.vue.d.ts +18 -0
- package/dist/vue3/types/recipes/conversation_view/editor/editor.vue.d.ts.map +1 -1
- package/dist/vue3/types/recipes/conversation_view/message_input/message_input.vue.d.ts +9 -0
- package/dist/vue3/types/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
- package/package.json +9 -15
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { MOTION_TEXT_TIMING_PRESETS as y, MOTION_TEXT_SPEEDS as M, MOTION_TEXT_ANIMATION_MODES as w } from "./motion-text-constants.js";
|
|
2
|
+
import { openBlock as s, createElementBlock as h, normalizeStyle as u, normalizeClass as A, toDisplayString as f, createCommentVNode as l, Fragment as p, createTextVNode as W, renderSlot as T, renderList as g, createBlock as C, Transition as _, withCtx as x } from "vue";
|
|
3
3
|
import { _ as v } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
|
|
4
4
|
const S = {
|
|
5
5
|
compatConfig: { MODE: 3 },
|
|
@@ -21,7 +21,7 @@ const S = {
|
|
|
21
21
|
animationMode: {
|
|
22
22
|
type: String,
|
|
23
23
|
default: "gradient-in",
|
|
24
|
-
validator: (t) =>
|
|
24
|
+
validator: (t) => w.includes(t)
|
|
25
25
|
},
|
|
26
26
|
/**
|
|
27
27
|
* Animation speed using t-shirt sizing.
|
|
@@ -30,7 +30,7 @@ const S = {
|
|
|
30
30
|
speed: {
|
|
31
31
|
type: String,
|
|
32
32
|
default: "md",
|
|
33
|
-
validator: (t) =>
|
|
33
|
+
validator: (t) => M.includes(t)
|
|
34
34
|
},
|
|
35
35
|
/**
|
|
36
36
|
* Whether to start animation automatically when component is mounted.
|
|
@@ -112,7 +112,7 @@ const S = {
|
|
|
112
112
|
* Get timing preset based on speed prop
|
|
113
113
|
*/
|
|
114
114
|
timing() {
|
|
115
|
-
return
|
|
115
|
+
return y[this.speed];
|
|
116
116
|
},
|
|
117
117
|
/**
|
|
118
118
|
* Computed styles with timing CSS variables
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DtIconClose as r } from "@dialpad/dialtone-icons/vue3";
|
|
2
2
|
import m from "../../shared/sr_only_close_button.js";
|
|
3
3
|
import { DialtoneLocalization as d } from "../../localization/index.js";
|
|
4
|
-
import { resolveComponent as o,
|
|
4
|
+
import { resolveComponent as o, openBlock as n, createElementBlock as u, renderSlot as _, createCommentVNode as f, createBlock as l, withCtx as p, createVNode as h } from "vue";
|
|
5
5
|
import { _ as C } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
|
|
6
6
|
import B from "../button/button.js";
|
|
7
7
|
const b = {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { hasSlotContent as a } from "../../common/utils/index.js";
|
|
2
|
-
import {
|
|
2
|
+
import { openBlock as n, createElementBlock as o, renderSlot as i, createTextVNode as c, toDisplayString as s, createCommentVNode as r, createElementVNode as l } from "vue";
|
|
3
3
|
import { _ } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
|
|
4
4
|
const f = {
|
|
5
5
|
compatConfig: { MODE: 3 },
|
|
@@ -39,18 +39,18 @@ const f = {
|
|
|
39
39
|
"data-qa": "notice-content"
|
|
40
40
|
}, u = ["id"], p = ["id"];
|
|
41
41
|
function g(e, S, t, h, d, C) {
|
|
42
|
-
return
|
|
43
|
-
t.title || d.hasSlotContent(e.$slots.titleOverride) ? (
|
|
42
|
+
return n(), o("div", m, [
|
|
43
|
+
t.title || d.hasSlotContent(e.$slots.titleOverride) ? (n(), o("p", {
|
|
44
44
|
key: 0,
|
|
45
45
|
id: t.titleId,
|
|
46
46
|
class: "d-notice__title",
|
|
47
47
|
"data-qa": "notice-content-title"
|
|
48
48
|
}, [
|
|
49
49
|
i(e.$slots, "titleOverride", {}, () => [
|
|
50
|
-
|
|
50
|
+
c(s(t.title), 1)
|
|
51
51
|
])
|
|
52
|
-
], 8, u)) :
|
|
53
|
-
|
|
52
|
+
], 8, u)) : r("", !0),
|
|
53
|
+
l("p", {
|
|
54
54
|
id: t.contentId,
|
|
55
55
|
class: "d-notice__message",
|
|
56
56
|
"data-qa": "notice-content-message"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DtIconBell as n, DtIconAlertCircle as r, DtIconAlertTriangle as c, DtIconCheckCircle as a, DtIconInfo as s } from "@dialpad/dialtone-icons/vue3";
|
|
2
2
|
import { NOTICE_KINDS as l } from "./notice-constants.js";
|
|
3
3
|
import { hasSlotContent as d } from "../../common/utils/index.js";
|
|
4
|
-
import {
|
|
4
|
+
import { openBlock as o, createElementBlock as m, renderSlot as f, createBlock as p, resolveDynamicComponent as u, createCommentVNode as I } from "vue";
|
|
5
5
|
import { _ } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
|
|
6
6
|
const D = /* @__PURE__ */ new Map([
|
|
7
7
|
["info", s],
|
|
@@ -49,10 +49,10 @@ const D = /* @__PURE__ */ new Map([
|
|
|
49
49
|
};
|
|
50
50
|
function h(e, g, N, S, i, t) {
|
|
51
51
|
return t.defaultIcon || i.hasSlotContent(e.$slots.default) ? (o(), m("div", k, [
|
|
52
|
-
|
|
53
|
-
(o(), u(
|
|
52
|
+
f(e.$slots, "default", {}, () => [
|
|
53
|
+
(o(), p(u(t.defaultIcon), { size: "400" }))
|
|
54
54
|
])
|
|
55
|
-
])) :
|
|
55
|
+
])) : I("", !0);
|
|
56
56
|
}
|
|
57
57
|
const $ = /* @__PURE__ */ _(C, [["render", h]]);
|
|
58
58
|
export {
|
|
@@ -2,7 +2,7 @@ import u from "./notice-icon.js";
|
|
|
2
2
|
import m from "./notice-content.js";
|
|
3
3
|
import _ from "./notice-action.js";
|
|
4
4
|
import { NOTICE_KINDS as p, NOTICE_ROLES as h } from "./notice-constants.js";
|
|
5
|
-
import { resolveComponent as i,
|
|
5
|
+
import { resolveComponent as i, openBlock as d, createElementBlock as C, normalizeClass as y, createBlock as k, withCtx as n, renderSlot as o, createCommentVNode as I, createVNode as l } from "vue";
|
|
6
6
|
import { _ as N } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
|
|
7
7
|
const g = {
|
|
8
8
|
compatConfig: { MODE: 3 },
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DtIconMoreHorizontal as b, DtIconChevronRight as p, DtIconChevronLeft as N } from "@dialpad/dialtone-icons/vue3";
|
|
2
2
|
import { DialtoneLocalization as A } from "../../localization/index.js";
|
|
3
|
-
import { resolveComponent as g, withDirectives as f,
|
|
3
|
+
import { resolveComponent as g, withDirectives as f, openBlock as l, createElementBlock as u, createVNode as c, withCtx as d, Fragment as I, renderList as E, normalizeClass as v, createBlock as L, createTextVNode as T, toDisplayString as x, vShow as D } from "vue";
|
|
4
4
|
import { _ as k } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
|
|
5
5
|
import O from "../button/button.js";
|
|
6
6
|
const G = {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BASE_TIPPY_DIRECTIONS as o, TIPPY_STICKY_VALUES as n } from "./tippy-utils.js";
|
|
2
2
|
const O = {
|
|
3
3
|
none: void 0,
|
|
4
4
|
small: "d-p4",
|
|
@@ -10,9 +10,9 @@ const O = {
|
|
|
10
10
|
medium: "d-pl8",
|
|
11
11
|
large: "d-pl16"
|
|
12
12
|
}, _ = ["dialog", "menu", "listbox", "tree", "grid"], E = ["", "anchor"], t = ["none", "dialog", "first"], S = ["parent", "body", "root"], e = [
|
|
13
|
-
...o
|
|
14
|
-
], d = [
|
|
15
13
|
...n
|
|
14
|
+
], d = [
|
|
15
|
+
...o
|
|
16
16
|
], I = {
|
|
17
17
|
POPOVER_PADDING_CLASSES: O,
|
|
18
18
|
POPOVER_HEADER_FOOTER_PADDING_CLASSES: P,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DtIconClose as _ } from "@dialpad/dialtone-icons/vue3";
|
|
2
|
-
import {
|
|
2
|
+
import { hasSlotContent as u, returnFirstEl as f } from "../../common/utils/index.js";
|
|
3
3
|
import { DialtoneLocalization as m } from "../../localization/index.js";
|
|
4
|
-
import { resolveComponent as l,
|
|
4
|
+
import { resolveComponent as l, openBlock as n, createElementBlock as s, normalizeClass as r, renderSlot as v, createCommentVNode as c, createBlock as h, withCtx as C, createVNode as y } from "vue";
|
|
5
5
|
import { _ as B } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
|
|
6
6
|
import b from "../button/button.js";
|
|
7
7
|
const k = {
|
|
@@ -46,7 +46,7 @@ const k = {
|
|
|
46
46
|
],
|
|
47
47
|
data() {
|
|
48
48
|
return {
|
|
49
|
-
hasSlotContent:
|
|
49
|
+
hasSlotContent: u,
|
|
50
50
|
i18n: new m()
|
|
51
51
|
};
|
|
52
52
|
},
|
|
@@ -58,7 +58,7 @@ const k = {
|
|
|
58
58
|
methods: {
|
|
59
59
|
focusCloseButton() {
|
|
60
60
|
var o;
|
|
61
|
-
const e =
|
|
61
|
+
const e = f((o = this.$refs["popover__close-button"]) == null ? void 0 : o.$el);
|
|
62
62
|
e == null || e.focus();
|
|
63
63
|
}
|
|
64
64
|
}
|
|
@@ -80,9 +80,9 @@ function S(e, o, t, T, d, a) {
|
|
|
80
80
|
"d-popover__footer__content": t.type === "footer"
|
|
81
81
|
}, t.contentClass])
|
|
82
82
|
}, [
|
|
83
|
-
|
|
83
|
+
v(e.$slots, "content")
|
|
84
84
|
], 2)) : c("", !0),
|
|
85
|
-
t.showCloseButton ? (n(),
|
|
85
|
+
t.showCloseButton ? (n(), h(p, {
|
|
86
86
|
key: 1,
|
|
87
87
|
ref: "popover__close-button",
|
|
88
88
|
"data-qa": "dt-popover-close",
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { POPOVER_HEADER_FOOTER_PADDING_CLASSES as w, POPOVER_PADDING_CLASSES as O, POPOVER_APPEND_TO_VALUES as P, POPOVER_INITIAL_FOCUS_STRINGS as S, POPOVER_STICKY_VALUES as A, POPOVER_CONTENT_WIDTHS as _, POPOVER_ROLES as L } from "./popover-constants.js";
|
|
2
2
|
import { returnFirstEl as l, enableRootScrolling as T, disableRootScrolling as k, isOutOfViewPort as M, warnIfUnmounted as x, getUniqueString as b, hasSlotContent as I } from "../../common/utils/index.js";
|
|
3
3
|
import B from "../../common/mixins/modal.js";
|
|
4
4
|
import { createTippyPopover as N, getPopperOptions as V } from "./tippy-utils.js";
|
|
5
5
|
import D from "./popover-header-footer.js";
|
|
6
6
|
import q from "../../shared/sr_only_close_button.js";
|
|
7
|
-
import { resolveComponent as y,
|
|
7
|
+
import { resolveComponent as y, openBlock as a, createElementBlock as F, createBlock as h, Teleport as H, createElementVNode as E, withModifiers as g, createCommentVNode as c, resolveDynamicComponent as W, normalizeClass as f, withCtx as m, withKeys as p, renderSlot as v, createVNode as z, mergeProps as K, toHandlers as G } from "vue";
|
|
8
8
|
import { _ as U } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
|
|
9
9
|
import j from "../lazy-show/lazy-show.js";
|
|
10
10
|
const R = {
|
|
@@ -106,7 +106,7 @@ const R = {
|
|
|
106
106
|
contentWidth: {
|
|
107
107
|
type: String,
|
|
108
108
|
default: "",
|
|
109
|
-
validator: (e) =>
|
|
109
|
+
validator: (e) => _.includes(e)
|
|
110
110
|
},
|
|
111
111
|
/**
|
|
112
112
|
* Whether to apply transition on initial render in the content lazy show component.
|
|
@@ -240,7 +240,7 @@ const R = {
|
|
|
240
240
|
sticky: {
|
|
241
241
|
type: [Boolean, String],
|
|
242
242
|
default: !1,
|
|
243
|
-
validator: (e) =>
|
|
243
|
+
validator: (e) => A.includes(e)
|
|
244
244
|
},
|
|
245
245
|
/**
|
|
246
246
|
* Determines maximum height for the popover before overflow.
|
|
@@ -298,7 +298,7 @@ const R = {
|
|
|
298
298
|
initialFocusElement: {
|
|
299
299
|
type: [String, HTMLElement],
|
|
300
300
|
default: "first",
|
|
301
|
-
validator: (e) =>
|
|
301
|
+
validator: (e) => S.includes(e) || e instanceof HTMLElement || e.startsWith("#")
|
|
302
302
|
},
|
|
303
303
|
/**
|
|
304
304
|
* If the popover should open pressing up or down arrow key on the anchor element.
|
|
@@ -319,7 +319,7 @@ const R = {
|
|
|
319
319
|
appendTo: {
|
|
320
320
|
type: [HTMLElement, String],
|
|
321
321
|
default: "body",
|
|
322
|
-
validator: (e) =>
|
|
322
|
+
validator: (e) => P.includes(e) || e instanceof HTMLElement
|
|
323
323
|
}
|
|
324
324
|
},
|
|
325
325
|
emits: [
|
|
@@ -370,7 +370,7 @@ const R = {
|
|
|
370
370
|
data() {
|
|
371
371
|
return {
|
|
372
372
|
POPOVER_PADDING_CLASSES: O,
|
|
373
|
-
POPOVER_HEADER_FOOTER_PADDING_CLASSES:
|
|
373
|
+
POPOVER_HEADER_FOOTER_PADDING_CLASSES: w,
|
|
374
374
|
intersectionObserver: null,
|
|
375
375
|
mutationObserver: null,
|
|
376
376
|
isOutsideViewport: !1,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PRESENCE_STATES as s, PRESENCE_STATES_LIST as a } from "./presence-constants.js";
|
|
2
|
-
import {
|
|
2
|
+
import { openBlock as t, createElementBlock as r, toDisplayString as c, createCommentVNode as i, createElementVNode as o, normalizeClass as l } from "vue";
|
|
3
3
|
import { _ } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
|
|
4
4
|
const d = {
|
|
5
5
|
compatConfig: { MODE: 3 },
|
|
@@ -31,14 +31,14 @@ const d = {
|
|
|
31
31
|
class: "sr-only"
|
|
32
32
|
};
|
|
33
33
|
function m(n, u, e, E, S, y) {
|
|
34
|
-
return
|
|
34
|
+
return t(), r("div", {
|
|
35
35
|
class: "d-presence",
|
|
36
36
|
"data-qa": "dt-presence",
|
|
37
37
|
role: "status",
|
|
38
38
|
"aria-live": n.$attrs.ariaLive || "off"
|
|
39
39
|
}, [
|
|
40
|
-
e.srText ? (
|
|
41
|
-
|
|
40
|
+
e.srText ? (t(), r("span", f, c(e.srText), 1)) : i("", !0),
|
|
41
|
+
o("div", {
|
|
42
42
|
class: l(["d-presence__inner", {
|
|
43
43
|
"d-presence__inner--active": e.presence === "active",
|
|
44
44
|
"d-presence__inner--away": e.presence === "away",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { InputMixin as p, CheckableMixin as h, GroupableMixin as c, MessagesMixin as g } from "../../common/mixins/input.js";
|
|
2
2
|
import { RADIO_INPUT_VALIDATION_CLASSES as f } from "./radio-constants.js";
|
|
3
3
|
import { addClassStyleAttrs as C, removeClassStyleAttrs as V, hasSlotContent as v } from "../../common/utils/index.js";
|
|
4
|
-
import { resolveComponent as b,
|
|
4
|
+
import { resolveComponent as b, openBlock as i, createElementBlock as o, mergeProps as a, createElementVNode as t, normalizeClass as M, toHandlers as S, renderSlot as r, createTextVNode as d, toDisplayString as l, createCommentVNode as n, createVNode as y } from "vue";
|
|
5
5
|
import { _ as k } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
|
|
6
6
|
import A from "../validation-messages/validation-messages.js";
|
|
7
7
|
const D = {
|
|
@@ -109,7 +109,7 @@ const D = {
|
|
|
109
109
|
};
|
|
110
110
|
function _(e, w, u, I, P, s) {
|
|
111
111
|
const m = b("dt-validation-messages");
|
|
112
|
-
return
|
|
112
|
+
return i(), o("div", a({ class: e.rootClass }, s.addClassStyleAttrs(e.$attrs)), [
|
|
113
113
|
t("label", {
|
|
114
114
|
class: M(["d-radio-group", { "d-radio-group--disabled": e.internalDisabled }])
|
|
115
115
|
}, [
|
|
@@ -126,26 +126,26 @@ function _(e, w, u, I, P, s) {
|
|
|
126
126
|
t("div", a({
|
|
127
127
|
class: [e.labelClass, "d-radio__copy d-radio__label"]
|
|
128
128
|
}, e.labelChildProps, { "data-qa": "radio-label" }), [
|
|
129
|
-
|
|
130
|
-
l(
|
|
129
|
+
r(e.$slots, "default", {}, () => [
|
|
130
|
+
d(l(e.label), 1)
|
|
131
131
|
])
|
|
132
132
|
], 16)
|
|
133
133
|
], 2),
|
|
134
|
-
e.$slots.description || e.description || s.hasMessages ? (
|
|
135
|
-
e.$slots.description || e.description ? (
|
|
134
|
+
e.$slots.description || e.description || s.hasMessages ? (i(), o("div", G, [
|
|
135
|
+
e.$slots.description || e.description ? (i(), o("div", a({
|
|
136
136
|
key: 0,
|
|
137
137
|
class: ["d-description", e.descriptionClass]
|
|
138
138
|
}, e.descriptionChildProps, { "data-qa": "radio-description" }), [
|
|
139
|
-
|
|
140
|
-
l(
|
|
139
|
+
r(e.$slots, "description", {}, () => [
|
|
140
|
+
d(l(e.description), 1)
|
|
141
141
|
])
|
|
142
|
-
], 16)) :
|
|
142
|
+
], 16)) : n("", !0),
|
|
143
143
|
y(m, a({
|
|
144
144
|
"validation-messages": e.formattedMessages,
|
|
145
145
|
"show-messages": e.showMessages,
|
|
146
146
|
class: e.messagesClass
|
|
147
147
|
}, e.messagesChildProps, { "data-qa": "dt-radio-validation-messages" }), null, 16, ["validation-messages", "show-messages", "class"])
|
|
148
|
-
])) :
|
|
148
|
+
])) : n("", !0)
|
|
149
149
|
], 16);
|
|
150
150
|
}
|
|
151
151
|
const B = /* @__PURE__ */ k(D, [["render", _]]);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { resolveComponent as n,
|
|
1
|
+
import { resolveComponent as n, openBlock as a, createElementBlock as t, Fragment as l, renderList as c, createBlock as s, withCtx as p, createElementVNode as i, toDisplayString as d } from "vue";
|
|
2
2
|
import { _ as u } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
|
|
3
3
|
import m from "../radio/radio.js";
|
|
4
4
|
const _ = {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const d=require("../../node_modules/@tiptap/vue-3.cjs"),u=require("@tiptap/core"),O=require("@tiptap/extension-blockquote"),P=require("@tiptap/extension-code-block"),V=require("@tiptap/extension-code"),A=require("@tiptap/extension-document"),j=require("@tiptap/extension-hard-break"),$=require("@tiptap/extension-paragraph"),q=require("@tiptap/extension-placeholder"),H=require("@tiptap/extension-bold"),K=require("@tiptap/extension-bullet-list"),W=require("@tiptap/extension-italic"),F=require("@tiptap/extension-link"),U=require("@tiptap/extension-list-item"),z=require("@tiptap/extension-ordered-list"),X=require("@tiptap/extension-strike"),J=require("@tiptap/extension-underline"),Y=require("@tiptap/extension-text"),G=require("@tiptap/extension-text-align"),Q=require("@tiptap/extension-history"),Z=require("@tiptap/extension-text-style"),ee=require("@tiptap/extension-color"),te=require("@tiptap/extension-font-family"),g=require("@tiptap/pm/state"),ne=require("@tiptap/suggestion"),R=require("regex-combined-emojis"),o=require("vue"),h=require("../../_plugin-vue_export-helper-BRilXfQE.cjs"),D=require("../emoji/emoji.cjs"),f=require("../../common/emoji/index.cjs"),oe=require("../list-item/list-item.cjs"),w=require("../stack/stack.cjs"),b=require("tippy.js"),_=require("../../common/utils/index.cjs"),re=require("@tiptap/extension-image"),B=require("@tiptap/extension-mention"),I=require("../link/link.cjs"),se=require("@dialpad/dialtone-icons/vue3"),x=require("./rich-text-editor-constants.cjs"),ie=require("../avatar/avatar.cjs"),ae=require("@dialpad/dialtone-icons/vue3/hash"),ce=require("@dialpad/dialtone-icons/vue3/lock"),le=require("deep-equal"),de=require("../../localization/index.cjs"),ue=require("../button/button.cjs"),me={compatConfig:{MODE:3},name:"EmojiComponent",components:{NodeViewWrapper:d.NodeViewWrapper,DtEmoji:D.default},props:d.nodeViewProps};function he(e,t,r,n,s,i){const a=o.resolveComponent("dt-emoji"),c=o.resolveComponent("node-view-wrapper");return o.openBlock(),o.createBlock(c,{class:"d-d-inline-block d-va-bottom d-lh0"},{default:o.withCtx(()=>[o.createVNode(a,{size:"500",code:e.node.attrs.code},null,8,["code"])]),_:1})}const pe=h._(me,[["render",he]]),fe={compatConfig:{MODE:3},name:"SuggestionList",components:{DtListItem:oe.default},props:{items:{type:Array,required:!0},command:{type:Function,required:!0},itemComponent:{type:Object,required:!0},itemType:{type:String,required:!0}},data(){return{selectedIndex:0}},watch:{items(){this.selectedIndex=0}},methods:{onKeyDown({event:e}){return e.key==="ArrowUp"?(this.upHandler(),!0):e.key==="ArrowDown"?(this.downHandler(),!0):e.key==="Enter"||e.key==="Tab"?(this.selectHandler(),!0):!1},upHandler(){this.selectedIndex=(this.selectedIndex+this.items.length-1)%this.items.length,this.scrollActiveElementIntoView()},downHandler(){this.selectedIndex=(this.selectedIndex+1)%this.items.length,this.scrollActiveElementIntoView()},async scrollActiveElementIntoView(){await this.$nextTick();const e=this.$refs.suggestionList.querySelector(".d-list-item--highlighted");e&&e.scrollIntoView({behaviour:"smooth",block:"center"})},selectHandler(){this.selectItem(this.selectedIndex)},selectItem(e){const t=this.items[e];switch(this.itemType){case"emoji":this.command(t);return;case"mention":this.command({name:t.name,id:t.id,avatarSrc:t.avatarSrc,contactKey:t.contactKey});break;case"channel":this.command({name:t.name,id:t.id,locked:t.locked,channelKey:t.channelKey});break;case"slash-command":this.command({command:t.command});break}}}},ge={class:"d-popover__dialog d-suggestion-list__container"},ke={ref:"suggestionList",class:"d-suggestion-list"};function _e(e,t,r,n,s,i){const a=o.resolveComponent("dt-list-item");return o.openBlock(),o.createElementBlock("div",ge,[o.withDirectives(o.createElementVNode("ul",ke,[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(r.items,(c,l)=>(o.openBlock(),o.createBlock(a,{key:c.id,class:o.normalizeClass(["d-suggestion-list__item",{"d-list-item--highlighted":l===s.selectedIndex}]),"navigation-type":"arrow-keys",onClick:m=>i.selectItem(l),onKeydown:o.withModifiers(i.onKeyDown,["prevent"])},{default:o.withCtx(()=>[(o.openBlock(),o.createBlock(o.resolveDynamicComponent(r.itemComponent),{item:c},null,8,["item"]))]),_:2},1032,["class","onClick","onKeydown"]))),128))],512),[[o.vShow,r.items.length]])])}const T=h._(fe,[["render",_e]]),we={compatConfig:{MODE:3},name:"EmojiSuggestion",components:{DtEmoji:D.default,DtStack:w.default},props:{item:{type:Object,required:!0}}};function ye(e,t,r,n,s,i){const a=o.resolveComponent("dt-emoji"),c=o.resolveComponent("dt-stack");return o.openBlock(),o.createBlock(c,{direction:"row",gap:"400"},{default:o.withCtx(()=>[o.createVNode(a,{size:"200",code:r.item.code},null,8,["code"]),o.createTextVNode(" "+o.toDisplayString(r.item.code),1)]),_:1})}const Ce=h._(we,[["render",ye]]),E={name:"hideOnEsc",defaultValue:!0,fn({hide:e}){function t(r){r.keyCode===27&&e()}return{onShow(){document.addEventListener("keydown",t)},onHide(){document.removeEventListener("keydown",t)}}}},xe=20,be=(e,t,r)=>{var c,l;const n=(c=e.shortname)==null?void 0:c.replaceAll(":",""),s=(l=t.shortname)==null?void 0:l.replaceAll(":",""),i=n.startsWith(r),a=s.startsWith(r);return i&&!a?-1:!i&&a?1:n.localeCompare(s)},Te={items:({query:e})=>{if(e.length<2)return[];const t=Object.values(f.getEmojiData());return e=e.toLowerCase(),t.filter(n=>{var s;return[n.name,(s=n.shortname)==null?void 0:s.replaceAll(":",""),...n.keywords||[]].some(i=>i&&i.startsWith(e))}).splice(0,xe).sort((n,s)=>be(n,s,e)).map(n=>({code:n.shortname}))},command:({editor:e,range:t,props:r})=>{var i,a;const n=e.view.state.selection.$to.nodeAfter;((i=n==null?void 0:n.text)==null?void 0:i.startsWith(" "))&&(t.to+=1),e.chain().focus().insertContentAt(t,[{type:"emoji",attrs:r}]).run(),(a=window.getSelection())==null||a.collapseToEnd()},render:()=>{let e,t,r=!1;return{onStart:n=>{e=new d.VueRenderer(T,{props:{itemComponent:o.markRaw(Ce),itemType:"emoji",...n},editor:n.editor}),n.clientRect&&(t=b("body",{getReferenceClientRect:n.clientRect,appendTo:()=>document.body,content:e.element,showOnCreate:!1,onShow:()=>{r=!0},onHidden:()=>{r=!1},interactive:!0,trigger:"manual",placement:"top-start",zIndex:650,plugins:[E]}),n.items.length>0&&(t==null||t[0].show()))},onUpdate(n){e==null||e.updateProps(n),n.items.length>0?t==null||t[0].show():t==null||t[0].hide(),t==null||t[0].setProps({getReferenceClientRect:n.clientRect})},onKeyDown(n){var s;if(r)return(s=e==null?void 0:e.ref)==null?void 0:s.onKeyDown(n)},onExit(){t==null||t[0].destroy(),t=null,e==null||e.destroy(),e=null}}}},Ee=/(:\w+:)$/,Se=new RegExp(R.emojiPattern+"$"),ve=e=>{if(e&&f.codeToEmojiData(e[0]))return{text:e[2]||e[0]}},Be=e=>[...e.matchAll(f.emojiShortCodeRegex)].filter(r=>f.codeToEmojiData(r[0])).map(r=>({index:r.index,text:r[0],match:r})),Ne=u.Node.create({name:"emoji",addOptions(){return{HTMLAttributes:{}}},group:"inline",inline:!0,selectable:!1,atom:!0,addNodeView(){return d.VueNodeViewRenderer(pe)},addAttributes(){return{code:{default:null}}},parseHTML(){return[{tag:"emoji-component"}]},renderText({node:e}){return f.stringToUnicode(f.codeToEmojiData(e.attrs.code).unicode_output)},renderHTML({HTMLAttributes:e}){return["emoji-component",u.mergeAttributes(this.options.HTMLAttributes,e)]},addInputRules(){return[new u.InputRule({find:e=>{const t=e.match(Ee)||e.match(Se);if(t)return ve(t)},handler:({state:e,range:t,match:r})=>{const{tr:n}=e,s=t.from,i=t.to;n.replaceWith(s,i,this.type.create({code:r[0]}))}})]},addPasteRules(){return[u.nodePasteRule({find:Be,type:this.type,getAttributes(e){return{code:e[0]}}}),u.nodePasteRule({find:f.emojiRegex,type:this.type,getAttributes(e){return{code:e[0]}}})]},addProseMirrorPlugins(){return[ne({char:":",pluginKey:new g.PluginKey("emoji"),editor:this.editor,...this.options.suggestion,...Te})]},addKeyboardShortcuts(){return{Backspace:()=>this.editor.commands.command(({tr:e,state:t})=>{let r=!1;const{selection:n}=t,{empty:s,anchor:i}=n;return s?(t.doc.nodesBetween(i-1,i,(a,c)=>{if(a.type.name===this.name)return r=!0,e.insertText("",c,c+a.nodeSize),!1}),r):!1})}}});function Le(e,t,r=()=>!0){const n=[];t.lastIndex=0;let s;for(;s=t.exec(e);)r(e,s)&&n.push(s);return n}function $e(e,t){return!["#","@"].includes(e.charAt(t.index))&&!["#","@"].includes(e.charAt(t.index-1))}function Re(e){const t=new RegExp("(?:"+[`[!?.,:;'"]`,"(?:&|&)(?:lt|gt|quot|apos|raquo|laquo|rsaquo|lsaquo);)+$"].join("|"),"g");return e.replace(t,"")}function De(e,t){const r=e.slice(0,t+1).search(/\S+\s*$/),n=e.slice(t).search(/\s/);if(n<0){const s=e.slice(r);return{text:s,from:r,to:r+s.length}}return{text:e.slice(r,n+t),from:r,to:n+t}}function v(e,t,r,n){const s=De(e,t);if(n.lastIndex=0,!n.test(s.text))return s;const i=r==="left"?s.from-1:s.to+1;return i<=0||i>=e.length||i===t?s:v(e,i,r,n)}function Ie(e,t,r,n){const s=Math.max(e.from-1,0),i=Math.min(e.to+1,t.content.size),a=u.getMarksBetween(s,i,t);for(const c of a)c.mark.type===n&&r.removeMark(c.from,c.to,n)}const N=_.getPhoneNumberRegex(1,15);function L(e,t,r,n,s,i){if(!e)return;let a=r-t-1;a=a<0?0:a;const c=n-t,l=v(e,a,"left",N),m=v(e,c,"right",N),p=e.slice(l.from,m.to);Le(p,_.linkRegex,$e).forEach(S=>{const k=Re(S[0]),C=t+l.from+S.index+1,M=C+k.length;s.addMark(C,M,i.create())})}function Me(e){let t=!1;return new g.Plugin({key:new g.PluginKey("autolink"),appendTransaction:(r,n,s)=>{const i=r.some(p=>p.docChanged)&&!n.doc.eq(s.doc);if(t&&!i)return;const{tr:a}=s,{textContent:c}=s.doc;t||L(c,0,0,c.length,a,e.type),t=!0;const l=u.combineTransactionSteps(n.doc,[...r]);return u.getChangedRanges(l).forEach(({oldRange:p,newRange:y})=>{Ie(y,s.doc,a,e.type),u.findChildrenInRange(s.doc,y,k=>k.isTextblock).forEach(({node:k,pos:C})=>{L(k.textContent,C,p.from,y.to,a,e.type)})}),a}})}const Oe={class:"d-link d-c-text d-d-inline-block d-wb-break-all",rel:"noopener noreferrer nofollow"},Pe=u.Mark.create({name:"CustomLink",renderHTML({HTMLAttributes:e}){return["a",u.mergeAttributes(this.options.HTMLAttributes,e,Oe)]},renderText({node:e}){return e.attrs.text},addProseMirrorPlugins(){return[Me({type:this.type})]}}),Ve=re.extend({name:"ConfigurableImage",addAttributes(){return{src:{default:""},alt:{default:void 0},title:{default:void 0},width:{default:void 0},height:{default:void 0},style:{default:void 0}}}}).configure({inline:!0,allowBase64:!0}),Ae=$.extend({parseHTML(){return[{tag:"div"}]},renderHTML({HTMLAttributes:e}){return["div",u.mergeAttributes(this.options.HTMLAttributes,e),0]}}),je={compatConfig:{MODE:3},name:"MentionComponent",components:{NodeViewWrapper:d.NodeViewWrapper,DtLink:I.default},props:d.nodeViewProps,computed:{text(){return"@"+this.$props.node.attrs.name}},methods:{handleClick(){const e={name:this.$props.node.attrs.name,id:this.$props.node.attrs.id,avatarSrc:this.$props.node.attrs.avatarSrc,contactKey:this.$props.node.attrs.contactKey};this.$props.editor.emit("mention-click",e)}}};function qe(e,t,r,n,s,i){const a=o.resolveComponent("dt-link"),c=o.resolveComponent("node-view-wrapper");return o.openBlock(),o.createBlock(c,{class:"d-d-inline-block"},{default:o.withCtx(()=>[o.createVNode(a,{kind:"mention",onClick:o.withModifiers(i.handleClick,["prevent"])},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(i.text),1)]),_:1},8,["onClick"])]),_:1})}const He=h._(je,[["render",qe]]),Ke=B.extend({addNodeView(){return d.VueNodeViewRenderer(He)},parseHTML(){return[{tag:"mention-component"}]},addAttributes(){return{name:{default:""},avatarSrc:{default:""},id:{default:""},contactKey:{default:""}}},renderText({node:e}){return`@${e.attrs.id}`},renderHTML({HTMLAttributes:e}){return["mention-component",u.mergeAttributes(this.options.HTMLAttributes,e)]}}).configure({suggestion:{char:"@",pluginKey:new g.PluginKey("mentionSuggestion")}}),We={compatConfig:{MODE:3},name:"ChannelComponent",components:{NodeViewWrapper:d.NodeViewWrapper,DtLink:I.default,DtIconLock:se.DtIconLock,DtStack:w.default},props:d.nodeViewProps,computed:{text(){return this.$props.node.attrs.locked?this.$props.node.attrs.name:"#"+this.$props.node.attrs.name}},methods:{handleClick(){const e={name:this.$props.node.attrs.name,id:this.$props.node.attrs.id,locked:this.$props.node.attrs.locked,channelKey:this.$props.node.attrs.channelKey};this.$props.editor.emit("channel-click",e)}}};function Fe(e,t,r,n,s,i){const a=o.resolveComponent("dt-icon-lock"),c=o.resolveComponent("dt-stack"),l=o.resolveComponent("dt-link"),m=o.resolveComponent("node-view-wrapper");return o.openBlock(),o.createBlock(m,{class:"d-d-inline-block"},{default:o.withCtx(()=>[o.createVNode(l,{kind:"mention",onClick:o.withModifiers(i.handleClick,["prevent"])},{default:o.withCtx(()=>[o.createVNode(c,{direction:"row",gap:"0"},{default:o.withCtx(()=>[e.$props.node.attrs.locked?(o.openBlock(),o.createBlock(a,{key:0,size:"200"})):o.createCommentVNode("",!0),o.createElementVNode("span",null,o.toDisplayString(i.text),1)]),_:1})]),_:1},8,["onClick"])]),_:1})}const Ue=h._(We,[["render",Fe]]),ze=B.extend({name:"channel",addNodeView(){return d.VueNodeViewRenderer(Ue)},parseHTML(){return[{tag:"channel-component"}]},addAttributes(){return{name:{default:""},id:{default:""},locked:{default:!1},channelKey:{default:""}}},renderText({node:e}){return`#${e.attrs.id}`},renderHTML({HTMLAttributes:e}){return["channel-component",u.mergeAttributes(this.options.HTMLAttributes,e)]}}).configure({suggestion:{char:"#",pluginKey:new g.PluginKey("channelSuggestion")}}),Xe={compatConfig:{MODE:3},name:"SlashCommandsComponent",components:{NodeViewWrapper:d.NodeViewWrapper},props:{...d.nodeViewProps},emits:["selected-command"],computed:{text(){return"/"+this.$props.node.attrs.command}},created(){var r,n,s;const e=this.$props.node.attrs.command;this.$emit("selected-command",e);const t=(s=(n=(r=this.editor)==null?void 0:r.storage)==null?void 0:n["slash-commands"])==null?void 0:s.onSelectedCommand;t&&typeof t=="function"&&t(e)}};function Je(e,t,r,n,s,i){const a=o.resolveComponent("node-view-wrapper");return o.openBlock(),o.createBlock(a,{class:"d-d-inline-block"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(i.text),1)]),_:1})}const Ye=h._(Xe,[["render",Je]]),Ge=(e,t)=>[...e.matchAll(t)].map(n=>{let s=n[2];return s.endsWith(" ")||(s+=" "),{index:n.index,text:s,match:n}}),Qe=B.extend({name:"slash-commands",group:"inline",inline:!0,addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),onSelectedCommand:null}},addStorage(){return{onSelectedCommand:this.options.onSelectedCommand}},addNodeView(){return d.VueNodeViewRenderer(Ye)},parseHTML(){return[{tag:"command-component"}]},addAttributes(){return{command:{default:""},parametersExample:{default:""},description:{default:""}}},renderText({node:e}){return`/${e.attrs.command}`},renderHTML({HTMLAttributes:e}){return["command-component",u.mergeAttributes(this.options.HTMLAttributes,e)]},addInputRules(){var r;const e=(r=this.options.suggestion)==null?void 0:r.items({query:""}).map(n=>n.command),t=new RegExp(`^((?:\\/)(${e.join("|")})) $`);return[u.nodeInputRule({find:t,type:this.type,getAttributes(n){return{command:n[2]}}})]},addPasteRules(){var r;const e=(r=this.options.suggestion)==null?void 0:r.items({query:""}).map(n=>n.command),t=new RegExp(`^((?:\\/)(${e.join("|")})) ?$`,"g");return[u.nodePasteRule({find:n=>Ge(n,t),type:this.type,getAttributes(n){return{command:n[0].trim()}}})]}}).configure({suggestion:{char:"/",pluginKey:new g.PluginKey("slashCommandSuggestion")}}),Ze={compatConfig:{MODE:3},name:"MentionSuggestion",components:{DtAvatar:ie.default,DtStack:w.default},props:{item:{type:Object,required:!0}},computed:{name(){return this.item.name},avatarSrc(){return this.item.avatarSrc},presence(){return this.item.presence},status(){return this.item.status},presenceText(){return this.item.presenceText},presenceFontColorClass(){return{active:"d-recipe-contact-row--active",busy:"d-recipe-contact-row--busy",away:"d-recipe-contact-row--away",offline:"d-recipe-contact-row--busy"}[this.presence]},showDetails(){return this.item.showDetails}}},et={class:"d-mention-suggestion__name"},tt={key:1,class:"d-mention-suggestion__divider"},nt={key:2,class:"d-mention-suggestion__status"};function ot(e,t,r,n,s,i){const a=o.resolveComponent("dt-avatar"),c=o.resolveComponent("dt-stack");return o.openBlock(),o.createBlock(c,{direction:"row",class:"d-mention-suggestion__container",gap:"400"},{default:o.withCtx(()=>[o.createVNode(a,{"full-name":i.name,"image-src":i.avatarSrc,"image-alt":i.name,"show-presence":i.showDetails,presence:i.presence,size:"sm"},null,8,["full-name","image-src","image-alt","show-presence","presence"]),o.createVNode(c,{class:"d-mention-suggestion__details-container",gap:"100"},{default:o.withCtx(()=>[o.createElementVNode("span",et,o.toDisplayString(i.name),1),i.showDetails?(o.openBlock(),o.createBlock(c,{key:0,direction:"row",gap:"300",class:"d-label--sm-plain"},{default:o.withCtx(()=>[i.presenceText?(o.openBlock(),o.createElementBlock("span",{key:0,class:o.normalizeClass(["d-mention-suggestion__presence",[i.presenceFontColorClass]])},o.toDisplayString(i.presenceText),3)):o.createCommentVNode("",!0),i.status&&i.presenceText?(o.openBlock(),o.createElementBlock("div",tt," • ")):o.createCommentVNode("",!0),i.status?(o.openBlock(),o.createElementBlock("div",nt,o.toDisplayString(i.status),1)):o.createCommentVNode("",!0)]),_:1})):o.createCommentVNode("",!0)]),_:1})]),_:1})}const rt=h._(Ze,[["render",ot]]),st={allowSpaces:!0,render:()=>{let e,t,r=!1;return{onStart:n=>{e=new d.VueRenderer(T,{props:{itemComponent:o.markRaw(rt),itemType:"mention",...n},editor:n.editor}),n.clientRect&&(t=b("body",{getReferenceClientRect:n.clientRect,appendTo:()=>document.body,content:e.element,showOnCreate:!1,onShow:()=>{r=!0},onHidden:()=>{r=!1},interactive:!0,trigger:"manual",placement:"top-start",zIndex:650,plugins:[E]}),n.items.length>0&&(t==null||t[0].show()))},onUpdate(n){e==null||e.updateProps(n),n.items.length>0?t==null||t[0].show():t==null||t[0].hide(),n.clientRect&&(t==null||t[0].setProps({getReferenceClientRect:n.clientRect}))},onKeyDown(n){var s;if(r)return(s=e==null?void 0:e.ref)==null?void 0:s.onKeyDown(n)},onExit(){t==null||t[0].destroy(),t=null,e==null||e.destroy(),e=null}}}},it={compatConfig:{MODE:3},name:"ChannelSuggestion",components:{DtStack:w.default,DtIconHash:ae,DtIconLock:ce},props:{item:{type:Object,required:!0}},computed:{name(){return this.item.name}}};function at(e,t,r,n,s,i){const a=o.resolveComponent("dt-icon-hash"),c=o.resolveComponent("dt-icon-lock"),l=o.resolveComponent("dt-stack");return o.openBlock(),o.createBlock(l,{direction:"row",gap:"400"},{default:o.withCtx(()=>[r.item.locked?(o.openBlock(),o.createBlock(c,{key:1,size:"300"})):(o.openBlock(),o.createBlock(a,{key:0,size:"300"})),o.createElementVNode("span",null,o.toDisplayString(i.name),1)]),_:1})}const ct=h._(it,[["render",at]]),lt={allowSpaces:!0,render:()=>{let e,t,r=!1;return{onStart:n=>{e=new d.VueRenderer(T,{props:{itemComponent:o.markRaw(ct),itemType:"channel",...n},editor:n.editor}),n.clientRect&&(t=b("body",{getReferenceClientRect:n.clientRect,appendTo:()=>document.body,content:e.element,showOnCreate:!1,onShow:()=>{r=!0},onHidden:()=>{r=!1},interactive:!0,trigger:"manual",placement:"top-start",zIndex:650,plugins:[E]}),n.items.length>0&&(t==null||t[0].show()))},onUpdate(n){e==null||e.updateProps(n),n.items.length>0?t==null||t[0].show():t==null||t[0].hide(),n.clientRect&&(t==null||t[0].setProps({getReferenceClientRect:n.clientRect}))},onKeyDown(n){var s;if(r)return(s=e==null?void 0:e.ref)==null?void 0:s.onKeyDown(n)},onExit(){t==null||t[0].destroy(),t=null,e==null||e.destroy(),e=null}}}},dt={compatConfig:{MODE:3},name:"SlashCommandSuggestion",props:{item:{type:Object,required:!0}},computed:{command(){return this.item.command},description(){return this.item.description},parametersExample(){return this.item.parametersExample}}},ut={class:"d-body--md-compact"},mt={key:0},ht={class:"d-body--sm d-fc-tertiary"};function pt(e,t,r,n,s,i){return o.openBlock(),o.createElementBlock("div",null,[o.createElementVNode("div",ut,[o.createElementVNode("span",null,"/"+o.toDisplayString(i.command),1),i.parametersExample?(o.openBlock(),o.createElementBlock("span",mt,o.toDisplayString(i.parametersExample),1)):o.createCommentVNode("",!0)]),o.createElementVNode("div",ht,o.toDisplayString(i.description),1)])}const ft=h._(dt,[["render",pt]]),gt={allowSpaces:!0,startOfLine:!0,render:()=>{let e,t,r=!1;return{onStart:n=>{e=new d.VueRenderer(T,{parent:void 0,props:{itemComponent:o.markRaw(ft),itemType:"slash-command",...n},editor:n.editor}),n.clientRect&&(t=b("body",{getReferenceClientRect:n.clientRect,appendTo:()=>document.body,content:e.element,showOnCreate:!1,onShow:()=>{r=!0},onHidden:()=>{r=!1},interactive:!0,trigger:"manual",placement:"top-start",zIndex:650,plugins:[E]}),n.items.length>0&&(t==null||t[0].show()))},onUpdate(n){e==null||e.updateProps(n),n.items.length>0?t==null||t[0].show():t==null||t[0].hide(),n.clientRect&&(t==null||t[0].setProps({getReferenceClientRect:n.clientRect}))},onKeyDown(n){var s;if(r)return(s=e==null?void 0:e.ref)==null?void 0:s.onKeyDown(n)},onExit(){t==null||t[0].destroy(),t=null,e==null||e.destroy(),e=null}}}},kt={compatConfig:{MODE:3},name:"DtRichTextEditor",components:{EditorContent:d.EditorContent,BubbleMenu:d.BubbleMenu,DtButton:ue.default,DtStack:w.default},props:{modelValue:{type:[Object,String],default:""},editable:{type:Boolean,default:!0},preventTyping:{type:Boolean,default:!1},pasteRichText:{type:Boolean,default:!0},allowLineBreaks:{type:Boolean,default:!1},inputAriaLabel:{type:String,required:!0},inputClass:{type:String,default:""},autoFocus:{type:[Boolean,String,Number],default:!1,validator(e){return typeof e=="string"?x.RICH_TEXT_EDITOR_AUTOFOCUS_TYPES.includes(e):!0}},outputFormat:{type:String,default:"html",validator(e){return x.RICH_TEXT_EDITOR_OUTPUT_FORMATS.includes(e)}},placeholder:{type:String,default:""},link:{type:[Boolean,Object],default:!1},customLink:{type:[Boolean,Object],default:!1},mentionSuggestion:{type:Object,default:null},channelSuggestion:{type:Object,default:null},slashCommandSuggestion:{type:Object,default:null},allowBlockquote:{type:Boolean,default:!0},allowBold:{type:Boolean,default:!0},allowBulletList:{type:Boolean,default:!0},allowItalic:{type:Boolean,default:!0},allowStrike:{type:Boolean,default:!0},allowUnderline:{type:Boolean,default:!0},allowCode:{type:Boolean,default:!0},allowCodeblock:{type:Boolean,default:!0},allowInlineImages:{type:Boolean,default:!1},allowFontColor:{type:Boolean,default:!1},allowFontFamily:{type:Boolean,default:!1},additionalExtensions:{type:Array,default:()=>[]},hideLinkBubbleMenu:{type:Boolean,default:!1},useDivTags:{type:Boolean,default:!1}},emits:["input","json-input","html-input","text-input","markdown-input","update:modelValue","blur","focus","enter","edit-link","selected","selected-command","mention-click","channel-click"],data(){return{editor:null,tippyOptions:{appendTo:()=>{var e;return(e=_.returnFirstEl(this.$refs.editor.$el).getRootNode())==null?void 0:e.querySelector("body")},placement:"top-start"},i18n:new de.DialtoneLocalization,jsonToMarkdownConverter:{convertToMarkdown(e){return this.processNode(e)},processNodeContent(e){return e.content?e.content.map(t=>this.processNode(t)).join(""):""},processNode(e){if(!e)return"";const r={doc:n=>this.processDocNode(n),paragraph:n=>this.processParagraphNode(n),text:n=>this.processTextNode(n),hardBreak:()=>this.processHardBreakNode(),blockquote:n=>this.processBlockquoteNode(n),bulletList:n=>this.processBulletListNode(n),orderedList:n=>this.processOrderedListNode(n),listItem:n=>this.processListItemNode(n),codeBlock:n=>this.processCodeBlockNode(n),mention:n=>this.processMentionNode(n),channel:n=>this.processChannelNode(n),"slash-commands":n=>this.processSlashCommandsNode(n),emoji:n=>this.processEmojiNode(n)}[e.type];return r?r(e):this.processUnknownNode(e)},processDocNode(e){return this.processNodeContent(e)},processParagraphNode(e){const t=this.processNodeContent(e);return t?t+`
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const d=require("../../node_modules/@tiptap/vue-3.cjs"),u=require("@tiptap/core"),O=require("@tiptap/extension-blockquote"),P=require("@tiptap/extension-code-block"),q=require("@tiptap/extension-code"),V=require("@tiptap/extension-document"),A=require("@tiptap/extension-gapcursor"),j=require("@tiptap/extension-hard-break"),R=require("@tiptap/extension-paragraph"),H=require("@tiptap/extension-placeholder"),K=require("@tiptap/extension-bold"),W=require("@tiptap/extension-bullet-list"),F=require("@tiptap/extension-italic"),U=require("@tiptap/extension-link"),z=require("@tiptap/extension-list-item"),X=require("@tiptap/extension-ordered-list"),J=require("@tiptap/extension-strike"),G=require("@tiptap/extension-underline"),Y=require("@tiptap/extension-text"),Q=require("@tiptap/extension-text-align"),Z=require("@tiptap/extension-history"),ee=require("@tiptap/extension-table"),te=require("@tiptap/extension-table-cell"),ne=require("@tiptap/extension-table-header"),oe=require("@tiptap/extension-table-row"),re=require("@tiptap/extension-text-style"),se=require("@tiptap/extension-color"),ie=require("@tiptap/extension-font-family"),g=require("@tiptap/pm/state"),ae=require("@tiptap/suggestion"),$=require("regex-combined-emojis"),o=require("vue"),h=require("../../_plugin-vue_export-helper-BRilXfQE.cjs"),D=require("../emoji/emoji.cjs"),f=require("../../common/emoji/index.cjs"),ce=require("../list-item/list-item.cjs"),w=require("../stack/stack.cjs"),x=require("tippy.js"),_=require("../../common/utils/index.cjs"),le=require("@tiptap/extension-image"),v=require("@tiptap/extension-mention"),I=require("../link/link.cjs"),de=require("@dialpad/dialtone-icons/vue3"),b=require("./rich-text-editor-constants.cjs"),ue=require("../avatar/avatar.cjs"),me=require("@dialpad/dialtone-icons/vue3/hash"),he=require("@dialpad/dialtone-icons/vue3/lock"),pe=require("deep-equal"),fe=require("../../localization/index.cjs"),ge=require("../button/button.cjs"),ke={compatConfig:{MODE:3},name:"EmojiComponent",components:{NodeViewWrapper:d.NodeViewWrapper,DtEmoji:D.default},props:d.nodeViewProps};function _e(e,t,r,n,s,i){const a=o.resolveComponent("dt-emoji"),c=o.resolveComponent("node-view-wrapper");return o.openBlock(),o.createBlock(c,{class:"d-d-inline-block d-va-bottom d-lh0"},{default:o.withCtx(()=>[o.createVNode(a,{size:"500",code:e.node.attrs.code},null,8,["code"])]),_:1})}const we=h._(ke,[["render",_e]]),ye={compatConfig:{MODE:3},name:"SuggestionList",components:{DtListItem:ce.default},props:{items:{type:Array,required:!0},command:{type:Function,required:!0},itemComponent:{type:Object,required:!0},itemType:{type:String,required:!0}},data(){return{selectedIndex:0}},watch:{items(){this.selectedIndex=0}},methods:{onKeyDown({event:e}){return e.key==="ArrowUp"?(this.upHandler(),!0):e.key==="ArrowDown"?(this.downHandler(),!0):e.key==="Enter"||e.key==="Tab"?(this.selectHandler(),!0):!1},upHandler(){this.selectedIndex=(this.selectedIndex+this.items.length-1)%this.items.length,this.scrollActiveElementIntoView()},downHandler(){this.selectedIndex=(this.selectedIndex+1)%this.items.length,this.scrollActiveElementIntoView()},async scrollActiveElementIntoView(){await this.$nextTick();const e=this.$refs.suggestionList.querySelector(".d-list-item--highlighted");e&&e.scrollIntoView({behaviour:"smooth",block:"center"})},selectHandler(){this.selectItem(this.selectedIndex)},selectItem(e){const t=this.items[e];switch(this.itemType){case"emoji":this.command(t);return;case"mention":this.command({name:t.name,id:t.id,avatarSrc:t.avatarSrc,contactKey:t.contactKey});break;case"channel":this.command({name:t.name,id:t.id,locked:t.locked,channelKey:t.channelKey});break;case"slash-command":this.command({command:t.command});break}}}},Ce={class:"d-popover__dialog d-suggestion-list__container"},be={ref:"suggestionList",class:"d-suggestion-list"};function xe(e,t,r,n,s,i){const a=o.resolveComponent("dt-list-item");return o.openBlock(),o.createElementBlock("div",Ce,[o.withDirectives(o.createElementVNode("ul",be,[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(r.items,(c,l)=>(o.openBlock(),o.createBlock(a,{key:c.id,class:o.normalizeClass(["d-suggestion-list__item",{"d-list-item--highlighted":l===s.selectedIndex}]),"navigation-type":"arrow-keys",onClick:m=>i.selectItem(l),onKeydown:o.withModifiers(i.onKeyDown,["prevent"])},{default:o.withCtx(()=>[(o.openBlock(),o.createBlock(o.resolveDynamicComponent(r.itemComponent),{item:c},null,8,["item"]))]),_:2},1032,["class","onClick","onKeydown"]))),128))],512),[[o.vShow,r.items.length]])])}const T=h._(ye,[["render",xe]]),Te={compatConfig:{MODE:3},name:"EmojiSuggestion",components:{DtEmoji:D.default,DtStack:w.default},props:{item:{type:Object,required:!0}}};function Ee(e,t,r,n,s,i){const a=o.resolveComponent("dt-emoji"),c=o.resolveComponent("dt-stack");return o.openBlock(),o.createBlock(c,{direction:"row",gap:"400"},{default:o.withCtx(()=>[o.createVNode(a,{size:"200",code:r.item.code},null,8,["code"]),o.createTextVNode(" "+o.toDisplayString(r.item.code),1)]),_:1})}const Se=h._(Te,[["render",Ee]]),E={name:"hideOnEsc",defaultValue:!0,fn({hide:e}){function t(r){r.keyCode===27&&e()}return{onShow(){document.addEventListener("keydown",t)},onHide(){document.removeEventListener("keydown",t)}}}},Be=20,ve=(e,t,r)=>{var c,l;const n=(c=e.shortname)==null?void 0:c.replaceAll(":",""),s=(l=t.shortname)==null?void 0:l.replaceAll(":",""),i=n.startsWith(r),a=s.startsWith(r);return i&&!a?-1:!i&&a?1:n.localeCompare(s)},Ne={items:({query:e})=>{if(e.length<2)return[];const t=Object.values(f.getEmojiData());return e=e.toLowerCase(),t.filter(n=>{var s;return[n.name,(s=n.shortname)==null?void 0:s.replaceAll(":",""),...n.keywords||[]].some(i=>i&&i.startsWith(e))}).splice(0,Be).sort((n,s)=>ve(n,s,e)).map(n=>({code:n.shortname}))},command:({editor:e,range:t,props:r})=>{var i,a;const n=e.view.state.selection.$to.nodeAfter;((i=n==null?void 0:n.text)==null?void 0:i.startsWith(" "))&&(t.to+=1),e.chain().focus().insertContentAt(t,[{type:"emoji",attrs:r}]).run(),(a=window.getSelection())==null||a.collapseToEnd()},render:()=>{let e,t,r=!1;return{onStart:n=>{e=new d.VueRenderer(T,{props:{itemComponent:o.markRaw(Se),itemType:"emoji",...n},editor:n.editor}),n.clientRect&&(t=x("body",{getReferenceClientRect:n.clientRect,appendTo:()=>document.body,content:e.element,showOnCreate:!1,onShow:()=>{r=!0},onHidden:()=>{r=!1},interactive:!0,trigger:"manual",placement:"top-start",zIndex:650,plugins:[E]}),n.items.length>0&&(t==null||t[0].show()))},onUpdate(n){e==null||e.updateProps(n),n.items.length>0?t==null||t[0].show():t==null||t[0].hide(),t==null||t[0].setProps({getReferenceClientRect:n.clientRect})},onKeyDown(n){var s;if(r)return(s=e==null?void 0:e.ref)==null?void 0:s.onKeyDown(n)},onExit(){t==null||t[0].destroy(),t=null,e==null||e.destroy(),e=null}}}},Le=/(:\w+:)$/,Re=new RegExp($.emojiPattern+"$"),$e=e=>{if(e&&f.codeToEmojiData(e[0]))return{text:e[2]||e[0]}},De=e=>[...e.matchAll(f.emojiShortCodeRegex)].filter(r=>f.codeToEmojiData(r[0])).map(r=>({index:r.index,text:r[0],match:r})),Ie=u.Node.create({name:"emoji",addOptions(){return{HTMLAttributes:{}}},group:"inline",inline:!0,selectable:!1,atom:!0,addNodeView(){return d.VueNodeViewRenderer(we)},addAttributes(){return{code:{default:null}}},parseHTML(){return[{tag:"emoji-component"}]},renderText({node:e}){return f.stringToUnicode(f.codeToEmojiData(e.attrs.code).unicode_output)},renderHTML({HTMLAttributes:e}){return["emoji-component",u.mergeAttributes(this.options.HTMLAttributes,e)]},addInputRules(){return[new u.InputRule({find:e=>{const t=e.match(Le)||e.match(Re);if(t)return $e(t)},handler:({state:e,range:t,match:r})=>{const{tr:n}=e,s=t.from,i=t.to;n.replaceWith(s,i,this.type.create({code:r[0]}))}})]},addPasteRules(){return[u.nodePasteRule({find:De,type:this.type,getAttributes(e){return{code:e[0]}}}),u.nodePasteRule({find:f.emojiRegex,type:this.type,getAttributes(e){return{code:e[0]}}})]},addProseMirrorPlugins(){return[ae({char:":",pluginKey:new g.PluginKey("emoji"),editor:this.editor,...this.options.suggestion,...Ne})]},addKeyboardShortcuts(){return{Backspace:()=>this.editor.commands.command(({tr:e,state:t})=>{let r=!1;const{selection:n}=t,{empty:s,anchor:i}=n;return s?(t.doc.nodesBetween(i-1,i,(a,c)=>{if(a.type.name===this.name)return r=!0,e.insertText("",c,c+a.nodeSize),!1}),r):!1})}}});function Me(e,t,r=()=>!0){const n=[];t.lastIndex=0;let s;for(;s=t.exec(e);)r(e,s)&&n.push(s);return n}function Oe(e,t){return!["#","@"].includes(e.charAt(t.index))&&!["#","@"].includes(e.charAt(t.index-1))}function Pe(e){const t=new RegExp("(?:"+[`[!?.,:;'"]`,"(?:&|&)(?:lt|gt|quot|apos|raquo|laquo|rsaquo|lsaquo);)+$"].join("|"),"g");return e.replace(t,"")}function qe(e,t){const r=e.slice(0,t+1).search(/\S+\s*$/),n=e.slice(t).search(/\s/);if(n<0){const s=e.slice(r);return{text:s,from:r,to:r+s.length}}return{text:e.slice(r,n+t),from:r,to:n+t}}function B(e,t,r,n){const s=qe(e,t);if(n.lastIndex=0,!n.test(s.text))return s;const i=r==="left"?s.from-1:s.to+1;return i<=0||i>=e.length||i===t?s:B(e,i,r,n)}function Ve(e,t,r,n){const s=Math.max(e.from-1,0),i=Math.min(e.to+1,t.content.size),a=u.getMarksBetween(s,i,t);for(const c of a)c.mark.type===n&&r.removeMark(c.from,c.to,n)}const N=_.getPhoneNumberRegex(1,15);function L(e,t,r,n,s,i){if(!e)return;let a=r-t-1;a=a<0?0:a;const c=n-t,l=B(e,a,"left",N),m=B(e,c,"right",N),p=e.slice(l.from,m.to);Me(p,_.linkRegex,Oe).forEach(S=>{const k=Pe(S[0]),C=t+l.from+S.index+1,M=C+k.length;s.addMark(C,M,i.create())})}function Ae(e){let t=!1;return new g.Plugin({key:new g.PluginKey("autolink"),appendTransaction:(r,n,s)=>{const i=r.some(p=>p.docChanged)&&!n.doc.eq(s.doc);if(t&&!i)return;const{tr:a}=s,{textContent:c}=s.doc;t||L(c,0,0,c.length,a,e.type),t=!0;const l=u.combineTransactionSteps(n.doc,[...r]);return u.getChangedRanges(l).forEach(({oldRange:p,newRange:y})=>{Ve(y,s.doc,a,e.type),u.findChildrenInRange(s.doc,y,k=>k.isTextblock).forEach(({node:k,pos:C})=>{L(k.textContent,C,p.from,y.to,a,e.type)})}),a}})}const je={class:"d-link d-c-text d-d-inline-block d-wb-break-all",rel:"noopener noreferrer nofollow"},He=u.Mark.create({name:"CustomLink",renderHTML({HTMLAttributes:e}){return["a",u.mergeAttributes(this.options.HTMLAttributes,e,je)]},renderText({node:e}){return e.attrs.text},addProseMirrorPlugins(){return[Ae({type:this.type})]}}),Ke=le.extend({name:"ConfigurableImage",addAttributes(){return{src:{default:""},alt:{default:void 0},title:{default:void 0},width:{default:void 0},height:{default:void 0},style:{default:void 0}}}}).configure({inline:!0,allowBase64:!0}),We=R.extend({parseHTML(){return[{tag:"div"}]},renderHTML({HTMLAttributes:e}){return["div",u.mergeAttributes(this.options.HTMLAttributes,e),0]}}),Fe={compatConfig:{MODE:3},name:"MentionComponent",components:{NodeViewWrapper:d.NodeViewWrapper,DtLink:I.default},props:d.nodeViewProps,computed:{text(){return"@"+this.$props.node.attrs.name}},methods:{handleClick(){const e={name:this.$props.node.attrs.name,id:this.$props.node.attrs.id,avatarSrc:this.$props.node.attrs.avatarSrc,contactKey:this.$props.node.attrs.contactKey};this.$props.editor.emit("mention-click",e)}}};function Ue(e,t,r,n,s,i){const a=o.resolveComponent("dt-link"),c=o.resolveComponent("node-view-wrapper");return o.openBlock(),o.createBlock(c,{class:"d-d-inline-block"},{default:o.withCtx(()=>[o.createVNode(a,{kind:"mention",onClick:o.withModifiers(i.handleClick,["prevent"])},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(i.text),1)]),_:1},8,["onClick"])]),_:1})}const ze=h._(Fe,[["render",Ue]]),Xe=v.extend({addNodeView(){return d.VueNodeViewRenderer(ze)},parseHTML(){return[{tag:"mention-component"}]},addAttributes(){return{name:{default:""},avatarSrc:{default:""},id:{default:""},contactKey:{default:""}}},renderText({node:e}){return`@${e.attrs.id}`},renderHTML({HTMLAttributes:e}){return["mention-component",u.mergeAttributes(this.options.HTMLAttributes,e)]}}).configure({suggestion:{char:"@",pluginKey:new g.PluginKey("mentionSuggestion")}}),Je={compatConfig:{MODE:3},name:"ChannelComponent",components:{NodeViewWrapper:d.NodeViewWrapper,DtLink:I.default,DtIconLock:de.DtIconLock,DtStack:w.default},props:d.nodeViewProps,computed:{text(){return this.$props.node.attrs.locked?this.$props.node.attrs.name:"#"+this.$props.node.attrs.name}},methods:{handleClick(){const e={name:this.$props.node.attrs.name,id:this.$props.node.attrs.id,locked:this.$props.node.attrs.locked,channelKey:this.$props.node.attrs.channelKey};this.$props.editor.emit("channel-click",e)}}};function Ge(e,t,r,n,s,i){const a=o.resolveComponent("dt-icon-lock"),c=o.resolveComponent("dt-stack"),l=o.resolveComponent("dt-link"),m=o.resolveComponent("node-view-wrapper");return o.openBlock(),o.createBlock(m,{class:"d-d-inline-block"},{default:o.withCtx(()=>[o.createVNode(l,{kind:"mention",onClick:o.withModifiers(i.handleClick,["prevent"])},{default:o.withCtx(()=>[o.createVNode(c,{direction:"row",gap:"0"},{default:o.withCtx(()=>[e.$props.node.attrs.locked?(o.openBlock(),o.createBlock(a,{key:0,size:"200"})):o.createCommentVNode("",!0),o.createElementVNode("span",null,o.toDisplayString(i.text),1)]),_:1})]),_:1},8,["onClick"])]),_:1})}const Ye=h._(Je,[["render",Ge]]),Qe=v.extend({name:"channel",addNodeView(){return d.VueNodeViewRenderer(Ye)},parseHTML(){return[{tag:"channel-component"}]},addAttributes(){return{name:{default:""},id:{default:""},locked:{default:!1},channelKey:{default:""}}},renderText({node:e}){return`#${e.attrs.id}`},renderHTML({HTMLAttributes:e}){return["channel-component",u.mergeAttributes(this.options.HTMLAttributes,e)]}}).configure({suggestion:{char:"#",pluginKey:new g.PluginKey("channelSuggestion")}}),Ze={compatConfig:{MODE:3},name:"SlashCommandsComponent",components:{NodeViewWrapper:d.NodeViewWrapper},props:{...d.nodeViewProps},emits:["selected-command"],computed:{text(){return"/"+this.$props.node.attrs.command}},created(){var r,n,s;const e=this.$props.node.attrs.command;this.$emit("selected-command",e);const t=(s=(n=(r=this.editor)==null?void 0:r.storage)==null?void 0:n["slash-commands"])==null?void 0:s.onSelectedCommand;t&&typeof t=="function"&&t(e)}};function et(e,t,r,n,s,i){const a=o.resolveComponent("node-view-wrapper");return o.openBlock(),o.createBlock(a,{class:"d-d-inline-block"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(i.text),1)]),_:1})}const tt=h._(Ze,[["render",et]]),nt=(e,t)=>[...e.matchAll(t)].map(n=>{let s=n[2];return s.endsWith(" ")||(s+=" "),{index:n.index,text:s,match:n}}),ot=v.extend({name:"slash-commands",group:"inline",inline:!0,addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),onSelectedCommand:null}},addStorage(){return{onSelectedCommand:this.options.onSelectedCommand}},addNodeView(){return d.VueNodeViewRenderer(tt)},parseHTML(){return[{tag:"command-component"}]},addAttributes(){return{command:{default:""},parametersExample:{default:""},description:{default:""}}},renderText({node:e}){return`/${e.attrs.command}`},renderHTML({HTMLAttributes:e}){return["command-component",u.mergeAttributes(this.options.HTMLAttributes,e)]},addInputRules(){var r;const e=(r=this.options.suggestion)==null?void 0:r.items({query:""}).map(n=>n.command),t=new RegExp(`^((?:\\/)(${e.join("|")})) $`);return[u.nodeInputRule({find:t,type:this.type,getAttributes(n){return{command:n[2]}}})]},addPasteRules(){var r;const e=(r=this.options.suggestion)==null?void 0:r.items({query:""}).map(n=>n.command),t=new RegExp(`^((?:\\/)(${e.join("|")})) ?$`,"g");return[u.nodePasteRule({find:n=>nt(n,t),type:this.type,getAttributes(n){return{command:n[0].trim()}}})]}}).configure({suggestion:{char:"/",pluginKey:new g.PluginKey("slashCommandSuggestion")}}),rt={compatConfig:{MODE:3},name:"MentionSuggestion",components:{DtAvatar:ue.default,DtStack:w.default},props:{item:{type:Object,required:!0}},computed:{name(){return this.item.name},avatarSrc(){return this.item.avatarSrc},presence(){return this.item.presence},status(){return this.item.status},presenceText(){return this.item.presenceText},presenceFontColorClass(){return{active:"d-recipe-contact-row--active",busy:"d-recipe-contact-row--busy",away:"d-recipe-contact-row--away",offline:"d-recipe-contact-row--busy"}[this.presence]},showDetails(){return this.item.showDetails}}},st={class:"d-mention-suggestion__name"},it={key:1,class:"d-mention-suggestion__divider"},at={key:2,class:"d-mention-suggestion__status"};function ct(e,t,r,n,s,i){const a=o.resolveComponent("dt-avatar"),c=o.resolveComponent("dt-stack");return o.openBlock(),o.createBlock(c,{direction:"row",class:"d-mention-suggestion__container",gap:"400"},{default:o.withCtx(()=>[o.createVNode(a,{"full-name":i.name,"image-src":i.avatarSrc,"image-alt":i.name,"show-presence":i.showDetails,presence:i.presence,size:"sm"},null,8,["full-name","image-src","image-alt","show-presence","presence"]),o.createVNode(c,{class:"d-mention-suggestion__details-container",gap:"100"},{default:o.withCtx(()=>[o.createElementVNode("span",st,o.toDisplayString(i.name),1),i.showDetails?(o.openBlock(),o.createBlock(c,{key:0,direction:"row",gap:"300",class:"d-label--sm-plain"},{default:o.withCtx(()=>[i.presenceText?(o.openBlock(),o.createElementBlock("span",{key:0,class:o.normalizeClass(["d-mention-suggestion__presence",[i.presenceFontColorClass]])},o.toDisplayString(i.presenceText),3)):o.createCommentVNode("",!0),i.status&&i.presenceText?(o.openBlock(),o.createElementBlock("div",it," • ")):o.createCommentVNode("",!0),i.status?(o.openBlock(),o.createElementBlock("div",at,o.toDisplayString(i.status),1)):o.createCommentVNode("",!0)]),_:1})):o.createCommentVNode("",!0)]),_:1})]),_:1})}const lt=h._(rt,[["render",ct]]),dt={allowSpaces:!0,render:()=>{let e,t,r=!1;return{onStart:n=>{e=new d.VueRenderer(T,{props:{itemComponent:o.markRaw(lt),itemType:"mention",...n},editor:n.editor}),n.clientRect&&(t=x("body",{getReferenceClientRect:n.clientRect,appendTo:()=>document.body,content:e.element,showOnCreate:!1,onShow:()=>{r=!0},onHidden:()=>{r=!1},interactive:!0,trigger:"manual",placement:"top-start",zIndex:650,plugins:[E]}),n.items.length>0&&(t==null||t[0].show()))},onUpdate(n){e==null||e.updateProps(n),n.items.length>0?t==null||t[0].show():t==null||t[0].hide(),n.clientRect&&(t==null||t[0].setProps({getReferenceClientRect:n.clientRect}))},onKeyDown(n){var s;if(r)return(s=e==null?void 0:e.ref)==null?void 0:s.onKeyDown(n)},onExit(){t==null||t[0].destroy(),t=null,e==null||e.destroy(),e=null}}}},ut={compatConfig:{MODE:3},name:"ChannelSuggestion",components:{DtStack:w.default,DtIconHash:me,DtIconLock:he},props:{item:{type:Object,required:!0}},computed:{name(){return this.item.name}}};function mt(e,t,r,n,s,i){const a=o.resolveComponent("dt-icon-hash"),c=o.resolveComponent("dt-icon-lock"),l=o.resolveComponent("dt-stack");return o.openBlock(),o.createBlock(l,{direction:"row",gap:"400"},{default:o.withCtx(()=>[r.item.locked?(o.openBlock(),o.createBlock(c,{key:1,size:"300"})):(o.openBlock(),o.createBlock(a,{key:0,size:"300"})),o.createElementVNode("span",null,o.toDisplayString(i.name),1)]),_:1})}const ht=h._(ut,[["render",mt]]),pt={allowSpaces:!0,render:()=>{let e,t,r=!1;return{onStart:n=>{e=new d.VueRenderer(T,{props:{itemComponent:o.markRaw(ht),itemType:"channel",...n},editor:n.editor}),n.clientRect&&(t=x("body",{getReferenceClientRect:n.clientRect,appendTo:()=>document.body,content:e.element,showOnCreate:!1,onShow:()=>{r=!0},onHidden:()=>{r=!1},interactive:!0,trigger:"manual",placement:"top-start",zIndex:650,plugins:[E]}),n.items.length>0&&(t==null||t[0].show()))},onUpdate(n){e==null||e.updateProps(n),n.items.length>0?t==null||t[0].show():t==null||t[0].hide(),n.clientRect&&(t==null||t[0].setProps({getReferenceClientRect:n.clientRect}))},onKeyDown(n){var s;if(r)return(s=e==null?void 0:e.ref)==null?void 0:s.onKeyDown(n)},onExit(){t==null||t[0].destroy(),t=null,e==null||e.destroy(),e=null}}}},ft={compatConfig:{MODE:3},name:"SlashCommandSuggestion",props:{item:{type:Object,required:!0}},computed:{command(){return this.item.command},description(){return this.item.description},parametersExample(){return this.item.parametersExample}}},gt={class:"d-body--md-compact"},kt={key:0},_t={class:"d-body--sm d-fc-tertiary"};function wt(e,t,r,n,s,i){return o.openBlock(),o.createElementBlock("div",null,[o.createElementVNode("div",gt,[o.createElementVNode("span",null,"/"+o.toDisplayString(i.command),1),i.parametersExample?(o.openBlock(),o.createElementBlock("span",kt,o.toDisplayString(i.parametersExample),1)):o.createCommentVNode("",!0)]),o.createElementVNode("div",_t,o.toDisplayString(i.description),1)])}const yt=h._(ft,[["render",wt]]),Ct={allowSpaces:!0,startOfLine:!0,render:()=>{let e,t,r=!1;return{onStart:n=>{e=new d.VueRenderer(T,{parent:void 0,props:{itemComponent:o.markRaw(yt),itemType:"slash-command",...n},editor:n.editor}),n.clientRect&&(t=x("body",{getReferenceClientRect:n.clientRect,appendTo:()=>document.body,content:e.element,showOnCreate:!1,onShow:()=>{r=!0},onHidden:()=>{r=!1},interactive:!0,trigger:"manual",placement:"top-start",zIndex:650,plugins:[E]}),n.items.length>0&&(t==null||t[0].show()))},onUpdate(n){e==null||e.updateProps(n),n.items.length>0?t==null||t[0].show():t==null||t[0].hide(),n.clientRect&&(t==null||t[0].setProps({getReferenceClientRect:n.clientRect}))},onKeyDown(n){var s;if(r)return(s=e==null?void 0:e.ref)==null?void 0:s.onKeyDown(n)},onExit(){t==null||t[0].destroy(),t=null,e==null||e.destroy(),e=null}}}},bt={compatConfig:{MODE:3},name:"DtRichTextEditor",components:{EditorContent:d.EditorContent,BubbleMenu:d.BubbleMenu,DtButton:ge.default,DtStack:w.default},props:{modelValue:{type:[Object,String],default:""},editable:{type:Boolean,default:!0},preventTyping:{type:Boolean,default:!1},pasteRichText:{type:Boolean,default:!0},allowLineBreaks:{type:Boolean,default:!1},inputAriaLabel:{type:String,required:!0},inputClass:{type:String,default:""},autoFocus:{type:[Boolean,String,Number],default:!1,validator(e){return typeof e=="string"?b.RICH_TEXT_EDITOR_AUTOFOCUS_TYPES.includes(e):!0}},outputFormat:{type:String,default:"html",validator(e){return b.RICH_TEXT_EDITOR_OUTPUT_FORMATS.includes(e)}},placeholder:{type:String,default:""},link:{type:[Boolean,Object],default:!1},customLink:{type:[Boolean,Object],default:!1},mentionSuggestion:{type:Object,default:null},channelSuggestion:{type:Object,default:null},slashCommandSuggestion:{type:Object,default:null},allowBlockquote:{type:Boolean,default:!0},allowBold:{type:Boolean,default:!0},allowBulletList:{type:Boolean,default:!0},allowItalic:{type:Boolean,default:!0},allowStrike:{type:Boolean,default:!0},allowUnderline:{type:Boolean,default:!0},allowCode:{type:Boolean,default:!0},allowCodeblock:{type:Boolean,default:!0},allowInlineImages:{type:Boolean,default:!1},allowFontColor:{type:Boolean,default:!1},allowFontFamily:{type:Boolean,default:!1},additionalExtensions:{type:Array,default:()=>[]},hideLinkBubbleMenu:{type:Boolean,default:!1},useDivTags:{type:Boolean,default:!1},allowTables:{type:Boolean,default:!1}},emits:["input","json-input","html-input","text-input","markdown-input","update:modelValue","blur","focus","enter","edit-link","selected","selected-command","mention-click","channel-click"],data(){return{editor:null,tippyOptions:{appendTo:()=>{var e;return(e=_.returnFirstEl(this.$refs.editor.$el).getRootNode())==null?void 0:e.querySelector("body")},placement:"top-start"},i18n:new fe.DialtoneLocalization,jsonToMarkdownConverter:{convertToMarkdown(e){return this.processNode(e)},processNodeContent(e){return e.content?e.content.map(t=>this.processNode(t)).join(""):""},processNode(e){if(!e)return"";const r={doc:n=>this.processDocNode(n),paragraph:n=>this.processParagraphNode(n),text:n=>this.processTextNode(n),hardBreak:()=>this.processHardBreakNode(),blockquote:n=>this.processBlockquoteNode(n),bulletList:n=>this.processBulletListNode(n),orderedList:n=>this.processOrderedListNode(n),listItem:n=>this.processListItemNode(n),codeBlock:n=>this.processCodeBlockNode(n),mention:n=>this.processMentionNode(n),channel:n=>this.processChannelNode(n),"slash-commands":n=>this.processSlashCommandsNode(n),emoji:n=>this.processEmojiNode(n)}[e.type];return r?r(e):this.processUnknownNode(e)},processDocNode(e){return this.processNodeContent(e)},processParagraphNode(e){const t=this.processNodeContent(e);return t?t+`
|
|
2
2
|
`:`
|
|
3
3
|
`},processTextNode(e){let t=e.text||"";return e.marks&&(t=this.applyMarks(t,e.marks)),t},processHardBreakNode(){return`
|
|
4
4
|
`},processBlockquoteNode(e){return this.processNodeContent(e).split(`
|
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
`},processBulletListNode(e){return this.processNodeContent(e)},processOrderedListNode(e){return e.content?e.content.map((t,r)=>this.processNode(t).replace(/^- /,`${r+1}. `)).join(""):""},processListItemNode(e){const t=this.processNodeContent(e);return t?`- ${t.replace(/\n$/,"")}
|
|
8
8
|
`:""},processCodeBlockNode(e){return`\`\`\`
|
|
9
9
|
${this.processNodeContent(e)}
|
|
10
|
-
\`\`\``},processMentionNode(e){var s,i,a;const t=((s=e.attrs)==null?void 0:s.name)||"",r=((i=e.attrs)==null?void 0:i.id)||"",n=((a=e.attrs)==null?void 0:a.contactKey)||"";return`<!-- @mention: {"id": "${r}", "contactKey": "${n}", "name": "${t}"} -->`},processChannelNode(e){var i,a,c,l;const t=((i=e.attrs)==null?void 0:i.name)||"",r=((a=e.attrs)==null?void 0:a.id)||"",n=((c=e.attrs)==null?void 0:c.locked.toString())||"",s=((l=e.attrs)==null?void 0:l.channelKey)||"";return`<!-- @channel: {"id": "${r}", "channelKey": "${s}", "name": "${t}", "locked": "${n}"} -->`},processSlashCommandsNode(e){var n,s;const t=((n=e.attrs)==null?void 0:n.command)||"",r=((s=e.attrs)==null?void 0:s.parameters)||"";return`/${t}${r?` ${r}`:""}`},processEmojiNode(e){var t;return((t=e.attrs)==null?void 0:t.code)||""},processUnknownNode(e){return this.processNodeContent(e)},applyMarks(e,t){let r=e;return[...t].sort((s,i)=>{const a={link:0,bold:1,italic:2,strike:3,code:4};return(a[s.type]||5)-(a[i.type]||5)}).forEach(s=>{var i;switch(s.type){case"bold":r=`**${r}**`;break;case"italic":r=`*${r}*`;break;case"strike":r=`~~${r}~~`;break;case"code":r=`\`${r}\``;break;case"link":{const a=((i=s.attrs)==null?void 0:i.href)||"";r=`[${r}](${a})`;break}}}),r}}}},computed:{attrs(){return{...this.$attrs,onInput:()=>{},onFocus:()=>{},onBlur:()=>{}}},extensions(){const e=[
|
|
10
|
+
\`\`\``},processMentionNode(e){var s,i,a;const t=((s=e.attrs)==null?void 0:s.name)||"",r=((i=e.attrs)==null?void 0:i.id)||"",n=((a=e.attrs)==null?void 0:a.contactKey)||"";return`<!-- @mention: {"id": "${r}", "contactKey": "${n}", "name": "${t}"} -->`},processChannelNode(e){var i,a,c,l;const t=((i=e.attrs)==null?void 0:i.name)||"",r=((a=e.attrs)==null?void 0:a.id)||"",n=((c=e.attrs)==null?void 0:c.locked.toString())||"",s=((l=e.attrs)==null?void 0:l.channelKey)||"";return`<!-- @channel: {"id": "${r}", "channelKey": "${s}", "name": "${t}", "locked": "${n}"} -->`},processSlashCommandsNode(e){var n,s;const t=((n=e.attrs)==null?void 0:n.command)||"",r=((s=e.attrs)==null?void 0:s.parameters)||"";return`/${t}${r?` ${r}`:""}`},processEmojiNode(e){var t;return((t=e.attrs)==null?void 0:t.code)||""},processUnknownNode(e){return this.processNodeContent(e)},applyMarks(e,t){let r=e;return[...t].sort((s,i)=>{const a={link:0,bold:1,italic:2,strike:3,code:4};return(a[s.type]||5)-(a[i.type]||5)}).forEach(s=>{var i;switch(s.type){case"bold":r=`**${r}**`;break;case"italic":r=`*${r}*`;break;case"strike":r=`~~${r}~~`;break;case"code":r=`\`${r}\``;break;case"link":{const a=((i=s.attrs)==null?void 0:i.href)||"";r=`[${r}](${a})`;break}}}),r}}}},computed:{attrs(){return{...this.$attrs,onInput:()=>{},onFocus:()=>{},onBlur:()=>{}}},extensions(){const e=[V,Y,Z,j];e.push(this.useDivTags?We:R),this.allowBold&&e.push(K),this.allowBlockquote&&e.push(O),this.allowBulletList&&(e.push(W),e.push(z.extend({renderText({node:n}){return n.textContent}})),e.push(X)),this.allowItalic&&e.push(F),this.allowStrike&&e.push(J),this.allowUnderline&&e.push(G),this.placeholder&&e.push(H.configure({placeholder:this.placeholder}));const t=this,r=u.Extension.create({addKeyboardShortcuts(){return{"Shift-Enter":({editor:n})=>t.allowLineBreaks?!1:(n.commands.first(({commands:s})=>[()=>s.newlineInCode(),()=>t.allowBulletList&&s.splitListItem("listItem"),()=>s.createParagraphNear(),()=>s.liftEmptyBlock(),()=>s.splitBlock()]),!0),Enter:()=>t.allowLineBreaks?!1:(t.$emit("enter"),!0)}}});if(e.push(r),this.link&&e.push(U.extend({inclusive:!1,addKeyboardShortcuts(){return{"Mod-k":()=>(t.$emit("edit-link"),!0)}}}).configure({HTMLAttributes:{class:"d-link d-wb-break-all"},openOnClick:!1,autolink:!0,protocols:b.RICH_TEXT_EDITOR_SUPPORTED_LINK_PROTOCOLS})),this.customLink&&e.push(this.getExtension(He,this.customLink)),this.mentionSuggestion){const n={...this.mentionSuggestion,...dt};e.push(Xe.configure({suggestion:n}))}if(this.channelSuggestion){const n={...this.channelSuggestion,...pt};e.push(Qe.configure({suggestion:n}))}if(this.slashCommandSuggestion){const n={...this.slashCommandSuggestion,...Ct};e.push(ot.configure({suggestion:n,onSelectedCommand:s=>{this.$emit("selected-command",s)}}))}return e.push(Ie),e.push(Q.configure({types:["paragraph"]})),this.allowCode&&e.push(q),this.allowCodeblock&&e.push(P.extend({renderText({node:n}){return`\`\`\`
|
|
11
11
|
${n.textContent}
|
|
12
|
-
\`\`\``}}).configure({HTMLAttributes:{class:"d-rich-text-editor__code-block"}})),this.allowInlineImages&&e.push(
|
|
12
|
+
\`\`\``}}).configure({HTMLAttributes:{class:"d-rich-text-editor__code-block"}})),this.allowInlineImages&&e.push(Ke),(this.allowFontFamily||this.allowFontColor)&&(e.push(re),this.allowFontColor&&e.push(se),this.allowFontFamily&&e.push(ie)),this.additionalExtensions.length&&e.push(...this.additionalExtensions),this.allowTables&&e.push(ee.configure({resizable:!0}),oe,ne,te,A),e},inputAttrs(){const e={"aria-label":this.inputAriaLabel,"aria-multiline":!0,role:"textbox"};return this.editable||(e["aria-readonly"]=!0),e}},watch:{editable(e){this.editor.setEditable(e),this.updateEditorAttributes({"aria-readonly":!e})},inputClass(e){this.updateEditorAttributes({class:e})},inputAriaLabel(e){this.updateEditorAttributes({"aria-label":e})},extensions(){this.destroyEditor(),this.createEditor()},modelValue(e){this.processValue(e)}},created(){this.createEditor()},beforeUnmount(){this.destroyEditor()},mounted(){_.warnIfUnmounted(_.returnFirstEl(this.$el),this.$options.name),this.processValue(this.modelValue,!1)},methods:{createEditor(){this.editor=new d.Editor({autofocus:this.autoFocus,content:this.modelValue,editable:this.editable,extensions:this.extensions,parseOptions:{preserveWhitespace:"full"},editorProps:{attributes:{...this.inputAttrs,class:this.inputClass},handleKeyDown:(e,t)=>{if(!this.preventTyping)return!1;const r=["Backspace"];return!this.allowLineBreaks&&!t.shiftKey&&r.push("Enter"),!r.includes(t.key)},handlePaste:(e,t)=>{const r=t.clipboardData||window.clipboardData,n=r.getData("text/plain"),s=r.getData("text/html");return this.processPasteData(e,n,s)},transformPastedHTML(e){return e.replace(/(<\/\w+>)((<br \/>)+)/g,"$2$3$1")}}}),this.addEditorListeners()},bubbleMenuShouldShow({editor:e}){return e.isActive("link")},getSelectedLinkText(e){var c,l,m;const{view:t,state:r}=e,{from:n,to:s}=t.state.selection,i=r.doc.textBetween(n,s,""),a=this.editor.state.doc.nodeAt(n);return a&&((m=(l=(c=a.marks)==null?void 0:c.at(0))==null?void 0:l.type)==null?void 0:m.name)==="link"?a.textContent:i},editLink(){const e=this.getSelectedLinkText(this.editor),t={href:this.editor.getAttributes("link").href,text:e};this.$emit("edit-link",t)},removeLink(){var e,t,r,n;(n=(r=(t=(e=this.editor)==null?void 0:e.chain())==null?void 0:t.focus())==null?void 0:r.unsetLink())==null||n.run()},openLink(){var t,r;(r=(t=this.editor)==null?void 0:t.chain())==null||r.focus();const e=this.editor.getAttributes("link").href;window.open(e,"_blank")},setLink(e,t,r,n=b.RICH_TEXT_EDITOR_SUPPORTED_LINK_PROTOCOLS,s){var c,l,m;if(!e){this.removeLink();return}n.find(p=>p.test(e))||(e=`${s}${e}`),this.editor.chain().focus().extendMarkRange("link").run();const a=(m=(l=(c=this.editor)==null?void 0:c.view)==null?void 0:l.state)==null?void 0:m.selection;this.editor.chain().focus().insertContent(t).setTextSelection({from:a.from,to:a.from+t.length}).setLink({href:e,class:r.class}).run()},processValue(e,t=!0){const r=this.getOutput();if(!(t&&pe(e,r))){if(typeof e=="string"&&this.outputFormat==="text"){const n=new RegExp(`(${$.emojiPattern})`,"g");e=e==null?void 0:e.replace(n,'<emoji-component code="$1"></emoji-component>')}this.editor.commands.setContent(e,!1,{preserveWhitespace:"full"})}},destroyEditor(){this.editor.destroy()},insertPlainTextWithHardBreaks(e,t){const s=(this.pasteRichText?t:t.replace(/\r\n/g,`
|
|
13
13
|
`).replace(/\n\n/g,`
|
|
14
14
|
`)).replace(/[\r\n]+$/,"").split(/\r?\n/),i=[];for(let a=0;a<s.length;a++)a>0&&i.push({type:"hardBreak"}),s[a]&&i.push({type:"text",text:s[a]});this.editor.chain().focus().insertContent(i).run()},shouldPreserveLineBreaks(e,t){return this.pasteRichText?!t&&e&&this.hasBlankLines(e):!!e},processPasteData(e,t,r){if(this.shouldPreserveLineBreaks(t,r))return this.insertPlainTextWithHardBreaks(e,t),!0;if(this.shouldHandlePreformattedHTML(r)){const n=this.extractPreformattedText(r);if(n&&n.includes(`
|
|
15
15
|
`))return this.insertPlainTextWithHardBreaks(e,n),!0}return!1},shouldHandlePreformattedHTML(e){return this.pasteRichText&&e&&this.containsPreformattedContent(e)},containsPreformattedContent(e){const t=document.createElement("div");t.innerHTML=e;const r=t.querySelectorAll("*");for(const n of r)if(this.hasPreWhitespace(n)&&this.hasLineBreaks(n))return!0;return!1},hasPreWhitespace(e){const t=e.getAttribute("style")||"",r=e.style.whiteSpace||"",n=r==="pre"||r==="pre-wrap",s=t.includes("white-space: pre");return n||s},hasLineBreaks(e){return e.textContent&&e.textContent.includes(`
|
|
@@ -17,5 +17,5 @@ ${n.textContent}
|
|
|
17
17
|
|
|
18
18
|
`)||/\n\s*\n/.test(e)},extractPreformattedText(e){const t=document.createElement("div");return t.innerHTML=e,this.walkAndExtractText(t)},walkAndExtractText(e){let t="";if(e.nodeType===Node.TEXT_NODE)t+=e.textContent;else if(e.nodeType===Node.ELEMENT_NODE)if(this.hasPreWhitespace(e))t+=e.textContent;else for(const r of e.childNodes)t+=this.walkAndExtractText(r);return t},triggerInputChangeEvents(){const e=this.getOutput();this.$emit("input",e),this.$emit("update:modelValue",e);const t=this.editor.getJSON();this.$emit("json-input",t);const r=this.editor.getHTML();this.$emit("html-input",r);const n=this.editor.getText({blockSeparator:`
|
|
19
19
|
`});this.$emit("text-input",n);const s=this.jsonToMarkdownConverter.convertToMarkdown(t);this.$emit("markdown-input",s)},addEditorListeners(){this.editor.on("create",()=>{this.triggerInputChangeEvents()}),this.editor.on("update",()=>{this.triggerInputChangeEvents()}),this.editor.on("selectionUpdate",({editor:e})=>{this.$emit("selected",this.getSelectedLinkText(e))}),this.editor.on("focus",({event:e})=>{this.$emit("focus",e)}),this.editor.on("blur",({event:e})=>{this.$emit("blur",e)}),this.editor.on("mention-click",e=>{this.$emit("mention-click",e)}),this.editor.on("channel-click",e=>{this.$emit("channel-click",e)})},getOutput(){switch(this.outputFormat){case"json":return this.editor.getJSON();case"html":return this.editor.getHTML();case"markdown":return this.jsonToMarkdownConverter.convertToMarkdown(this.editor.getJSON());case"text":default:return this.editor.getText({blockSeparator:`
|
|
20
|
-
`})}},getExtension(e,t){var r;return typeof t=="boolean"?e:(r=e.configure)==null?void 0:r.call(e,t)},updateEditorAttributes(e){this.editor.setOptions({editorProps:{attributes:{...this.inputAttrs,class:this.inputClass,...e}}})},focusEditor(){this.editor.commands.focus()}}},
|
|
20
|
+
`})}},getExtension(e,t){var r;return typeof t=="boolean"?e:(r=e.configure)==null?void 0:r.call(e,t)},updateEditorAttributes(e){this.editor.setOptions({editorProps:{attributes:{...this.inputAttrs,class:this.inputClass,...e}}})},focusEditor(){this.editor.commands.focus()}}},xt={class:"d-popover__dialog"};function Tt(e,t,r,n,s,i){const a=o.resolveComponent("dt-button"),c=o.resolveComponent("dt-stack"),l=o.resolveComponent("bubble-menu"),m=o.resolveComponent("editor-content");return o.openBlock(),o.createElementBlock("div",null,[s.editor&&r.link&&!r.hideLinkBubbleMenu?(o.openBlock(),o.createBlock(l,{key:0,editor:s.editor,"should-show":i.bubbleMenuShouldShow,"tippy-options":s.tippyOptions,style:{visibility:"visible"}},{default:o.withCtx(()=>[o.createElementVNode("div",xt,[o.createVNode(c,{direction:"row",class:"d-rich-text-editor-bubble-menu__button-stack",gap:"0"},{default:o.withCtx(()=>[o.createVNode(a,{kind:"muted",importance:"clear",onClick:i.editLink},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(s.i18n.$t("DIALTONE_RICH_TEXT_EDITOR_EDIT_BUTTON_LABEL")),1)]),_:1},8,["onClick"]),o.createVNode(a,{kind:"muted",importance:"clear",onClick:i.openLink},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(s.i18n.$t("DIALTONE_RICH_TEXT_EDITOR_OPEN_LINK_BUTTON_LABEL")),1)]),_:1},8,["onClick"]),o.createVNode(a,{kind:"danger",importance:"clear",onClick:i.removeLink},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(s.i18n.$t("DIALTONE_RICH_TEXT_EDITOR_REMOVE_BUTTON_LABEL")),1)]),_:1},8,["onClick"])]),_:1})])]),_:1},8,["editor","should-show","tippy-options"])):o.createCommentVNode("",!0),o.createVNode(m,o.mergeProps({ref:"editor",editor:s.editor,class:"d-rich-text-editor","data-qa":"dt-rich-text-editor"},i.attrs),null,16,["editor"])])}const Et=h._(bt,[["render",Tt]]);exports.default=Et;
|
|
21
21
|
//# sourceMappingURL=rich-text-editor.cjs.map
|