@dialpad/dialtone-vue 2.125.0 → 2.125.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/chunks/_plugin-vue2_normalizer-u6G_3nkj.js +33 -0
- package/dist/chunks/_plugin-vue2_normalizer-u6G_3nkj.js.map +1 -0
- package/dist/chunks/dropdown-SMWaTWyF.js +357 -0
- package/dist/chunks/dropdown-SMWaTWyF.js.map +1 -0
- package/dist/chunks/dropdown_constants-EUcDxBrX.js +9 -0
- package/dist/chunks/dropdown_constants-EUcDxBrX.js.map +1 -0
- package/dist/chunks/icon_constants-OpYAAKwF.js +16 -0
- package/dist/chunks/icon_constants-OpYAAKwF.js.map +1 -0
- package/dist/chunks/index-nIyl_PL6.js +372 -0
- package/dist/chunks/index-nIyl_PL6.js.map +1 -0
- package/dist/chunks/index-o4OMWMuv.js +244 -0
- package/dist/chunks/index-o4OMWMuv.js.map +1 -0
- package/dist/chunks/input-1tm09l_-.js +273 -0
- package/dist/chunks/input-1tm09l_-.js.map +1 -0
- package/dist/chunks/input_group-zcAq3DQl.js +141 -0
- package/dist/chunks/input_group-zcAq3DQl.js.map +1 -0
- package/dist/chunks/keyboard_list_navigation-F0O8nht0.js +197 -0
- package/dist/chunks/keyboard_list_navigation-F0O8nht0.js.map +1 -0
- package/dist/chunks/link_constants-vIUB92L4.js +16 -0
- package/dist/chunks/link_constants-vIUB92L4.js.map +1 -0
- package/dist/chunks/list_item_constants-LTUc74pD.js +13 -0
- package/dist/chunks/list_item_constants-LTUc74pD.js.map +1 -0
- package/dist/chunks/modal-VuMFkZFH.js +82 -0
- package/dist/chunks/modal-VuMFkZFH.js.map +1 -0
- package/dist/chunks/notice_action-9NmtQRai.js +182 -0
- package/dist/chunks/notice_action-9NmtQRai.js.map +1 -0
- package/dist/chunks/notice_constants-c--hBFQw.js +6 -0
- package/dist/chunks/notice_constants-c--hBFQw.js.map +1 -0
- package/dist/chunks/popover_constants-qjlEkroB.js +114 -0
- package/dist/chunks/popover_constants-qjlEkroB.js.map +1 -0
- package/dist/chunks/sr_only_close_button-JGole5Xi.js +86 -0
- package/dist/chunks/sr_only_close_button-JGole5Xi.js.map +1 -0
- package/dist/chunks/stack_constants-u7tNqGtc.js +13 -0
- package/dist/chunks/stack_constants-u7tNqGtc.js.map +1 -0
- package/dist/chunks/tab-Qm9LVkYj.js +346 -0
- package/dist/chunks/tab-Qm9LVkYj.js.map +1 -0
- package/dist/component-documentation.json +1 -1
- package/dist/dialtone-vue.js +354 -10368
- package/dist/dialtone-vue.js.map +1 -1
- package/dist/lib/attachment-carousel.js +250 -0
- package/dist/lib/attachment-carousel.js.map +1 -0
- package/dist/lib/avatar.js +369 -0
- package/dist/lib/avatar.js.map +1 -0
- package/dist/lib/badge.js +169 -0
- package/dist/lib/badge.js.map +1 -0
- package/dist/lib/banner.js +200 -0
- package/dist/lib/banner.js.map +1 -0
- package/dist/lib/breadcrumbs.js +138 -0
- package/dist/lib/breadcrumbs.js.map +1 -0
- package/dist/lib/button-group.js +45 -0
- package/dist/lib/button-group.js.map +1 -0
- package/dist/lib/button.js +328 -0
- package/dist/lib/button.js.map +1 -0
- package/dist/lib/callbar-button-with-popover.js +235 -0
- package/dist/lib/callbar-button-with-popover.js.map +1 -0
- package/dist/lib/callbar-button.js +175 -0
- package/dist/lib/callbar-button.js.map +1 -0
- package/dist/lib/callbox.js +142 -0
- package/dist/lib/callbox.js.map +1 -0
- package/dist/lib/card.js +72 -0
- package/dist/lib/card.js.map +1 -0
- package/dist/lib/checkbox-group.js +117 -0
- package/dist/lib/checkbox-group.js.map +1 -0
- package/dist/lib/checkbox.js +117 -0
- package/dist/lib/checkbox.js.map +1 -0
- package/dist/lib/chip.js +186 -0
- package/dist/lib/chip.js.map +1 -0
- package/dist/lib/codeblock.js +29 -0
- package/dist/lib/codeblock.js.map +1 -0
- package/dist/lib/collapsible.js +313 -0
- package/dist/lib/collapsible.js.map +1 -0
- package/dist/lib/combobox-multi-select.js +433 -0
- package/dist/lib/combobox-multi-select.js.map +1 -0
- package/dist/lib/combobox-with-popover.js +341 -0
- package/dist/lib/combobox-with-popover.js.map +1 -0
- package/dist/lib/combobox.js +19 -0
- package/dist/lib/combobox.js.map +1 -0
- package/dist/lib/constants.js +53 -0
- package/dist/lib/constants.js.map +1 -0
- package/dist/lib/contact-info.js +145 -0
- package/dist/lib/contact-info.js.map +1 -0
- package/dist/lib/contact-row.js +203 -0
- package/dist/lib/contact-row.js.map +1 -0
- package/dist/lib/datepicker.js +552 -0
- package/dist/lib/datepicker.js.map +1 -0
- package/dist/lib/dates.js +57 -0
- package/dist/lib/dates.js.map +1 -0
- package/dist/lib/description-list.js +83 -0
- package/dist/lib/description-list.js.map +1 -0
- package/dist/lib/dropdown.js +45 -0
- package/dist/lib/dropdown.js.map +1 -0
- package/dist/lib/editor.js +527 -0
- package/dist/lib/editor.js.map +1 -0
- package/dist/{emoji_picker-kiTOKaq8.js → lib/emoji-picker.js} +30 -12
- package/dist/lib/emoji-picker.js.map +1 -0
- package/dist/lib/emoji-row.js +83 -0
- package/dist/lib/emoji-row.js.map +1 -0
- package/dist/{emoji_text_wrapper-48ClwKvf.js → lib/emoji-text-wrapper.js} +19 -14
- package/dist/lib/emoji-text-wrapper.js.map +1 -0
- package/dist/lib/emoji.js +11 -0
- package/dist/{emoji.js.map → lib/emoji.js.map} +1 -1
- package/dist/lib/feed-item-row.js +207 -0
- package/dist/lib/feed-item-row.js.map +1 -0
- package/dist/lib/feed-pill.js +142 -0
- package/dist/lib/feed-pill.js.map +1 -0
- package/dist/lib/general-row.js +379 -0
- package/dist/lib/general-row.js.map +1 -0
- package/dist/lib/group-row.js +115 -0
- package/dist/lib/group-row.js.map +1 -0
- package/dist/lib/grouped-chip.js +45 -0
- package/dist/lib/grouped-chip.js.map +1 -0
- package/dist/lib/hovercard.js +194 -0
- package/dist/lib/hovercard.js.map +1 -0
- package/dist/lib/icon.js +82 -0
- package/dist/lib/icon.js.map +1 -0
- package/dist/lib/image-viewer.js +171 -0
- package/dist/lib/image-viewer.js.map +1 -0
- package/dist/lib/input-group.js +90 -0
- package/dist/lib/input-group.js.map +1 -0
- package/dist/lib/input.js +455 -0
- package/dist/lib/input.js.map +1 -0
- package/dist/lib/item-layout.js +39 -0
- package/dist/lib/item-layout.js.map +1 -0
- package/dist/lib/ivr-node.js +195 -0
- package/dist/lib/ivr-node.js.map +1 -0
- package/dist/lib/keyboard-shortcut.js +100 -0
- package/dist/lib/keyboard-shortcut.js.map +1 -0
- package/dist/lib/lazy-show.js +77 -0
- package/dist/lib/lazy-show.js.map +1 -0
- package/dist/lib/link.js +69 -0
- package/dist/lib/link.js.map +1 -0
- package/dist/lib/list-item-group.js +59 -0
- package/dist/lib/list-item-group.js.map +1 -0
- package/dist/lib/list-item.js +195 -0
- package/dist/lib/list-item.js.map +1 -0
- package/dist/{message_input.js → lib/message-input.js} +107 -56
- package/dist/lib/message-input.js.map +1 -0
- package/dist/lib/mixins.js +17 -0
- package/dist/lib/mixins.js.map +1 -0
- package/dist/lib/modal.js +324 -0
- package/dist/lib/modal.js.map +1 -0
- package/dist/lib/notice.js +158 -0
- package/dist/lib/notice.js.map +1 -0
- package/dist/lib/pagination.js +142 -0
- package/dist/lib/pagination.js.map +1 -0
- package/dist/lib/popover.js +779 -0
- package/dist/lib/popover.js.map +1 -0
- package/dist/lib/presence.js +60 -0
- package/dist/lib/presence.js.map +1 -0
- package/dist/lib/radio-group.js +97 -0
- package/dist/lib/radio-group.js.map +1 -0
- package/dist/lib/radio.js +111 -0
- package/dist/lib/radio.js.map +1 -0
- package/dist/lib/rich-text-editor.js +920 -0
- package/dist/lib/rich-text-editor.js.map +1 -0
- package/dist/lib/root-layout.js +127 -0
- package/dist/lib/root-layout.js.map +1 -0
- package/dist/lib/select-menu.js +243 -0
- package/dist/lib/select-menu.js.map +1 -0
- package/dist/lib/settings-menu-button.js +65 -0
- package/dist/lib/settings-menu-button.js.map +1 -0
- package/dist/lib/skeleton.js +574 -0
- package/dist/lib/skeleton.js.map +1 -0
- package/dist/lib/stack.js +118 -0
- package/dist/lib/stack.js.map +1 -0
- package/dist/lib/tabs.js +93 -0
- package/dist/lib/tabs.js.map +1 -0
- package/dist/lib/time-pill.js +43 -0
- package/dist/lib/time-pill.js.map +1 -0
- package/dist/lib/toast.js +226 -0
- package/dist/lib/toast.js.map +1 -0
- package/dist/lib/toggle.js +169 -0
- package/dist/lib/toggle.js.map +1 -0
- package/dist/{directives.js → lib/tooltip-directive.js} +24 -18
- package/dist/lib/tooltip-directive.js.map +1 -0
- package/dist/lib/tooltip.js +376 -0
- package/dist/lib/tooltip.js.map +1 -0
- package/dist/lib/top-banner-info.js +60 -0
- package/dist/lib/top-banner-info.js.map +1 -0
- package/dist/lib/unread-pill.js +61 -0
- package/dist/lib/unread-pill.js.map +1 -0
- package/dist/lib/utils.js +175 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/lib/validation-messages.js +83 -0
- package/dist/lib/validation-messages.js.map +1 -0
- package/dist/lib/validators.js +12 -0
- package/dist/lib/validators.js.map +1 -0
- package/dist/style.css +1 -1
- package/dist/types/common/{constants.d.ts → constants/index.d.ts} +1 -1
- package/dist/types/common/constants/index.d.ts.map +1 -0
- package/dist/types/common/{dates.d.ts → dates/index.d.ts} +1 -1
- package/dist/types/common/dates/index.d.ts.map +1 -0
- package/dist/types/common/{emoji.d.ts → emoji/index.d.ts} +1 -1
- package/dist/types/common/{emoji.d.ts.map → emoji/index.d.ts.map} +1 -1
- package/dist/types/common/{utils.d.ts → utils/index.d.ts} +1 -1
- package/dist/types/common/utils/index.d.ts.map +1 -0
- package/dist/types/common/{validators.d.ts → validators/index.d.ts} +1 -1
- package/dist/types/common/validators/index.d.ts.map +1 -0
- package/dist/types/components/avatar/avatar.vue.d.ts +1 -1
- package/dist/types/components/button/button.vue.d.ts +2 -2
- package/dist/types/components/card/card.vue.d.ts +1 -1
- package/dist/types/components/checkbox/checkbox.vue.d.ts +7 -7
- package/dist/types/components/checkbox/checkbox.vue.d.ts.map +1 -1
- package/dist/types/components/chip/chip.vue.d.ts +2 -2
- package/dist/types/components/collapsible/collapsible.vue.d.ts +3 -3
- package/dist/types/components/combobox/combobox.vue.d.ts +7 -8
- package/dist/types/components/combobox/combobox.vue.d.ts.map +1 -1
- package/dist/types/components/dropdown/dropdown.vue.d.ts +1 -1
- package/dist/types/components/emoji/emoji.vue.d.ts +1 -1
- package/dist/types/components/emoji_picker/modules/emoji_selector.vue.d.ts +1 -219
- package/dist/types/components/icon/icon.vue.d.ts +20 -16
- package/dist/types/components/icon/icon.vue.d.ts.map +1 -1
- package/dist/types/components/icon/icon_constants.d.ts +2 -0
- package/dist/types/components/icon/icon_constants.d.ts.map +1 -1
- package/dist/types/components/icon/index.d.ts +1 -1
- package/dist/types/components/input_group/input_group.vue.d.ts +15 -6
- package/dist/types/components/input_group/input_group.vue.d.ts.map +1 -1
- package/dist/types/components/list_item_group/list_item_group.vue.d.ts +1 -1
- package/dist/types/components/modal/modal.vue.d.ts +7 -2
- package/dist/types/components/modal/modal.vue.d.ts.map +1 -1
- package/dist/types/components/notice/notice_action.vue.d.ts +3 -1
- package/dist/types/components/notice/notice_action.vue.d.ts.map +1 -1
- package/dist/types/components/popover/popover_header_footer.vue.d.ts +1 -1
- package/dist/types/components/radio/radio.vue.d.ts +2 -12
- package/dist/types/components/radio/radio.vue.d.ts.map +1 -1
- package/dist/types/components/skeleton/skeleton-list-item.vue.d.ts +1 -1
- package/dist/types/components/skeleton/skeleton-paragraph.vue.d.ts +3 -3
- package/dist/types/components/skeleton/skeleton-shape.vue.d.ts +2 -2
- package/dist/types/components/skeleton/skeleton-text.vue.d.ts +8 -3
- package/dist/types/components/skeleton/skeleton-text.vue.d.ts.map +1 -1
- package/dist/types/components/skeleton/skeleton.vue.d.ts +1 -1
- package/dist/types/components/toggle/toggle.vue.d.ts +1 -1
- package/dist/types/components/tooltip/tooltip.vue.d.ts +2 -2
- package/dist/types/index.d.ts +36 -29
- package/dist/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts +1 -1
- package/dist/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +2 -2
- package/dist/types/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.d.ts +1 -1
- package/dist/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts +2 -2
- package/package.json +18 -58
- package/CHANGELOG.json +0 -1
- package/CHANGELOG.md +0 -2904
- package/dist/dialtone-vue.cjs +0 -6
- package/dist/dialtone-vue.cjs.map +0 -1
- package/dist/directives.cjs +0 -2
- package/dist/directives.cjs.map +0 -1
- package/dist/directives.js.map +0 -1
- package/dist/emoji.cjs +0 -2
- package/dist/emoji.cjs.map +0 -1
- package/dist/emoji.js +0 -36
- package/dist/emoji_picker-kiTOKaq8.js.map +0 -1
- package/dist/emoji_picker-njWWAm6V.cjs +0 -2
- package/dist/emoji_picker-njWWAm6V.cjs.map +0 -1
- package/dist/emoji_text_wrapper-48ClwKvf.js.map +0 -1
- package/dist/emoji_text_wrapper-ZlynvHnd.cjs +0 -2
- package/dist/emoji_text_wrapper-ZlynvHnd.cjs.map +0 -1
- package/dist/index-OF94C6nQ.js +0 -142834
- package/dist/index-OF94C6nQ.js.map +0 -1
- package/dist/index-Wx7Jagcr.cjs +0 -2
- package/dist/index-Wx7Jagcr.cjs.map +0 -1
- package/dist/message_input.cjs +0 -2
- package/dist/message_input.cjs.map +0 -1
- package/dist/message_input.js.map +0 -1
- package/dist/rich_text_editor-RVMsCB8N.cjs +0 -98
- package/dist/rich_text_editor-RVMsCB8N.cjs.map +0 -1
- package/dist/rich_text_editor-eMvTs_Gp.js +0 -16479
- package/dist/rich_text_editor-eMvTs_Gp.js.map +0 -1
- package/dist/tooltip-88U5vFMA.js +0 -2517
- package/dist/tooltip-88U5vFMA.js.map +0 -1
- package/dist/tooltip-i2wxFIIi.cjs +0 -22
- package/dist/tooltip-i2wxFIIi.cjs.map +0 -1
- package/dist/types/common/constants.d.ts.map +0 -1
- package/dist/types/common/dates.d.ts.map +0 -1
- package/dist/types/common/utils.d.ts.map +0 -1
- package/dist/types/common/validators.d.ts.map +0 -1
- package/dist/types/components/emoji_picker/emojis/index.d.ts +0 -50
- package/dist/types/components/emoji_picker/emojis/index.d.ts.map +0 -1
- package/dist/types/directives.d.ts +0 -2
- package/dist/types/directives.d.ts.map +0 -1
- package/dist/types/emoji.d.ts +0 -5
- package/dist/types/emoji.d.ts.map +0 -1
- package/dist/types/message_input.d.ts +0 -3
- package/dist/types/message_input.d.ts.map +0 -1
|
@@ -0,0 +1,527 @@
|
|
|
1
|
+
import { n as a } from "../chunks/_plugin-vue2_normalizer-u6G_3nkj.js";
|
|
2
|
+
import { DtRichTextEditor as u, RICH_TEXT_EDITOR_AUTOFOCUS_TYPES as c, RICH_TEXT_EDITOR_OUTPUT_FORMATS as d } from "./rich-text-editor.js";
|
|
3
|
+
import { DtButton as p } from "./button.js";
|
|
4
|
+
import { DtIcon as h } from "./icon.js";
|
|
5
|
+
import { DtPopover as k } from "./popover.js";
|
|
6
|
+
import { DtStack as f } from "./stack.js";
|
|
7
|
+
import { DtInput as m } from "./input.js";
|
|
8
|
+
import { DtTooltip as g } from "./tooltip.js";
|
|
9
|
+
import "@tiptap/vue-2";
|
|
10
|
+
import "@tiptap/extension-blockquote";
|
|
11
|
+
import "@tiptap/extension-code-block";
|
|
12
|
+
import "@tiptap/extension-document";
|
|
13
|
+
import "@tiptap/extension-hard-break";
|
|
14
|
+
import "@tiptap/extension-paragraph";
|
|
15
|
+
import "@tiptap/extension-placeholder";
|
|
16
|
+
import "@tiptap/extension-bold";
|
|
17
|
+
import "@tiptap/extension-bullet-list";
|
|
18
|
+
import "@tiptap/extension-italic";
|
|
19
|
+
import "@tiptap/extension-link";
|
|
20
|
+
import "@tiptap/extension-list-item";
|
|
21
|
+
import "@tiptap/extension-ordered-list";
|
|
22
|
+
import "@tiptap/extension-strike";
|
|
23
|
+
import "@tiptap/extension-underline";
|
|
24
|
+
import "@tiptap/extension-text";
|
|
25
|
+
import "@tiptap/extension-text-align";
|
|
26
|
+
import "@tiptap/core";
|
|
27
|
+
import "../chunks/index-o4OMWMuv.js";
|
|
28
|
+
import "emoji-regex";
|
|
29
|
+
import "emoji-toolkit/emoji_strategy.json";
|
|
30
|
+
import "./skeleton.js";
|
|
31
|
+
import "../chunks/icon_constants-OpYAAKwF.js";
|
|
32
|
+
import "@dialpad/dialtone-icons/icons.json";
|
|
33
|
+
import "@tiptap/pm/state";
|
|
34
|
+
import "@tiptap/suggestion";
|
|
35
|
+
import "@dialpad/dialtone-emojis";
|
|
36
|
+
import "./list-item.js";
|
|
37
|
+
import "../chunks/list_item_constants-LTUc74pD.js";
|
|
38
|
+
import "./utils.js";
|
|
39
|
+
import "./constants.js";
|
|
40
|
+
import "vue";
|
|
41
|
+
import "./item-layout.js";
|
|
42
|
+
import "@dialpad/dialtone-icons/vue2";
|
|
43
|
+
import "tippy.js";
|
|
44
|
+
import "@tiptap/extension-mention";
|
|
45
|
+
import "./link.js";
|
|
46
|
+
import "../chunks/link_constants-vIUB92L4.js";
|
|
47
|
+
import "./avatar.js";
|
|
48
|
+
import "./presence.js";
|
|
49
|
+
import "../chunks/stack_constants-u7tNqGtc.js";
|
|
50
|
+
import "../chunks/popover_constants-qjlEkroB.js";
|
|
51
|
+
import "@linusborg/vue-simple-portal";
|
|
52
|
+
import "../chunks/modal-VuMFkZFH.js";
|
|
53
|
+
import "../chunks/sr_only_close_button-JGole5Xi.js";
|
|
54
|
+
import "./lazy-show.js";
|
|
55
|
+
import "../chunks/input-1tm09l_-.js";
|
|
56
|
+
import "./validators.js";
|
|
57
|
+
import "./validation-messages.js";
|
|
58
|
+
const B = [
|
|
59
|
+
/^https?:\/\//,
|
|
60
|
+
/^http?:\/\//,
|
|
61
|
+
/^ftp?:\/\//,
|
|
62
|
+
/^ftps?:\/\//,
|
|
63
|
+
/^ftps?:\/\//,
|
|
64
|
+
/mailto:([^?]*)/
|
|
65
|
+
], b = "https://", w = {
|
|
66
|
+
name: "DtRecipeEditor",
|
|
67
|
+
components: {
|
|
68
|
+
DtRichTextEditor: u,
|
|
69
|
+
DtButton: p,
|
|
70
|
+
DtIcon: h,
|
|
71
|
+
DtPopover: k,
|
|
72
|
+
DtStack: f,
|
|
73
|
+
DtInput: m,
|
|
74
|
+
DtTooltip: g
|
|
75
|
+
},
|
|
76
|
+
inheritAttrs: !1,
|
|
77
|
+
props: {
|
|
78
|
+
/**
|
|
79
|
+
* Value of the input. The object format should match TipTap's JSON
|
|
80
|
+
* document structure: https://tiptap.dev/guide/output#option-1-json
|
|
81
|
+
*/
|
|
82
|
+
value: {
|
|
83
|
+
type: [Object, String],
|
|
84
|
+
default: ""
|
|
85
|
+
},
|
|
86
|
+
/**
|
|
87
|
+
* Whether the input is editable
|
|
88
|
+
*/
|
|
89
|
+
editable: {
|
|
90
|
+
type: Boolean,
|
|
91
|
+
default: !0
|
|
92
|
+
},
|
|
93
|
+
/**
|
|
94
|
+
* Descriptive label for the input element
|
|
95
|
+
*/
|
|
96
|
+
inputAriaLabel: {
|
|
97
|
+
type: String,
|
|
98
|
+
required: !0,
|
|
99
|
+
default: ""
|
|
100
|
+
},
|
|
101
|
+
/**
|
|
102
|
+
* Additional class name for the input element. Only accepts a String value
|
|
103
|
+
* because this is passed to the editor via options. For multiple classes,
|
|
104
|
+
* join them into one string, e.g. "d-p8 d-hmx96"
|
|
105
|
+
*/
|
|
106
|
+
inputClass: {
|
|
107
|
+
type: String,
|
|
108
|
+
default: ""
|
|
109
|
+
},
|
|
110
|
+
/**
|
|
111
|
+
* Whether the input should receive focus after the component has been
|
|
112
|
+
* mounted. Either one of `start`, `end`, `all` or a Boolean or a Number.
|
|
113
|
+
* - `start` Sets the focus to the beginning of the input
|
|
114
|
+
* - `end` Sets the focus to the end of the input
|
|
115
|
+
* - `all` Selects the whole contents of the input
|
|
116
|
+
* - `Number` Sets the focus to a specific position in the input
|
|
117
|
+
* - `true` Defaults to `start`
|
|
118
|
+
* - `false` Disables autofocus
|
|
119
|
+
* @values true, false, start, end, all, number
|
|
120
|
+
*/
|
|
121
|
+
autoFocus: {
|
|
122
|
+
type: [Boolean, String, Number],
|
|
123
|
+
default: !1,
|
|
124
|
+
validator(e) {
|
|
125
|
+
return typeof e == "string" ? c.includes(e) : !0;
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
/**
|
|
129
|
+
* Placeholder text
|
|
130
|
+
*/
|
|
131
|
+
placeholder: {
|
|
132
|
+
type: String,
|
|
133
|
+
default: ""
|
|
134
|
+
},
|
|
135
|
+
/**
|
|
136
|
+
* Content area needs to dynamically adjust height based on the conversation area height.
|
|
137
|
+
* can be vh|px|rem|em|%
|
|
138
|
+
*/
|
|
139
|
+
maxHeight: {
|
|
140
|
+
type: String,
|
|
141
|
+
default: "unset"
|
|
142
|
+
},
|
|
143
|
+
/**
|
|
144
|
+
* Confirm set link button defaults.
|
|
145
|
+
*/
|
|
146
|
+
confirmSetLinkButton: {
|
|
147
|
+
type: Object,
|
|
148
|
+
default: () => ({ label: "Confirm", ariaLabel: "Confirm set link" })
|
|
149
|
+
},
|
|
150
|
+
/**
|
|
151
|
+
* Remove link button defaults.
|
|
152
|
+
*/
|
|
153
|
+
removeLinkButton: {
|
|
154
|
+
type: Object,
|
|
155
|
+
default: () => ({ label: "Remove", ariaLabel: "Remove link" })
|
|
156
|
+
},
|
|
157
|
+
/**
|
|
158
|
+
* Cancel set link button defaults.
|
|
159
|
+
*/
|
|
160
|
+
cancelSetLinkButton: {
|
|
161
|
+
type: Object,
|
|
162
|
+
default: () => ({ label: "Cancel", ariaLabel: "Cancel set link" })
|
|
163
|
+
},
|
|
164
|
+
/**
|
|
165
|
+
* Placeholder text for the set link input field
|
|
166
|
+
*/
|
|
167
|
+
setLinkPlaceholder: {
|
|
168
|
+
type: String,
|
|
169
|
+
default: ""
|
|
170
|
+
},
|
|
171
|
+
/**
|
|
172
|
+
* Show button to render text as bold
|
|
173
|
+
*/
|
|
174
|
+
showBoldButton: {
|
|
175
|
+
type: Boolean,
|
|
176
|
+
default: !0
|
|
177
|
+
},
|
|
178
|
+
/**
|
|
179
|
+
* Show button to render text in italics
|
|
180
|
+
*/
|
|
181
|
+
showItalicsButton: {
|
|
182
|
+
type: Boolean,
|
|
183
|
+
default: !0
|
|
184
|
+
},
|
|
185
|
+
/**
|
|
186
|
+
* Show button to underline text
|
|
187
|
+
*/
|
|
188
|
+
showUnderlineButton: {
|
|
189
|
+
type: Boolean,
|
|
190
|
+
default: !0
|
|
191
|
+
},
|
|
192
|
+
/**
|
|
193
|
+
* Show button to strike text
|
|
194
|
+
*/
|
|
195
|
+
showStrikeButton: {
|
|
196
|
+
type: Boolean,
|
|
197
|
+
default: !0
|
|
198
|
+
},
|
|
199
|
+
/**
|
|
200
|
+
* Show button to render list items
|
|
201
|
+
*/
|
|
202
|
+
showListItemsButton: {
|
|
203
|
+
type: Boolean,
|
|
204
|
+
default: !0
|
|
205
|
+
},
|
|
206
|
+
/**
|
|
207
|
+
* Show button to render ordered list items
|
|
208
|
+
*/
|
|
209
|
+
showOrderedListButton: {
|
|
210
|
+
type: Boolean,
|
|
211
|
+
default: !0
|
|
212
|
+
},
|
|
213
|
+
/**
|
|
214
|
+
* Show button to align text to the left
|
|
215
|
+
*/
|
|
216
|
+
showAlignLeftButton: {
|
|
217
|
+
type: Boolean,
|
|
218
|
+
default: !0
|
|
219
|
+
},
|
|
220
|
+
/**
|
|
221
|
+
* Show button to align text to the center
|
|
222
|
+
*/
|
|
223
|
+
showAlignCenterButton: {
|
|
224
|
+
type: Boolean,
|
|
225
|
+
default: !0
|
|
226
|
+
},
|
|
227
|
+
/**
|
|
228
|
+
* Show button to align text to the right
|
|
229
|
+
*/
|
|
230
|
+
showAlignRightButton: {
|
|
231
|
+
type: Boolean,
|
|
232
|
+
default: !0
|
|
233
|
+
},
|
|
234
|
+
/**
|
|
235
|
+
* Show button to justify text
|
|
236
|
+
*/
|
|
237
|
+
showAlignJustifyButton: {
|
|
238
|
+
type: Boolean,
|
|
239
|
+
default: !0
|
|
240
|
+
},
|
|
241
|
+
/**
|
|
242
|
+
* Show button to add quote format to text
|
|
243
|
+
*/
|
|
244
|
+
showQuoteButton: {
|
|
245
|
+
type: Boolean,
|
|
246
|
+
default: !0
|
|
247
|
+
},
|
|
248
|
+
/**
|
|
249
|
+
* Show button to add code block
|
|
250
|
+
*/
|
|
251
|
+
showCodeBlockButton: {
|
|
252
|
+
type: Boolean,
|
|
253
|
+
default: !0
|
|
254
|
+
},
|
|
255
|
+
/**
|
|
256
|
+
* Show button to handle quick replies
|
|
257
|
+
*/
|
|
258
|
+
showQuickRepliesButton: {
|
|
259
|
+
type: Boolean,
|
|
260
|
+
default: !0
|
|
261
|
+
},
|
|
262
|
+
/**
|
|
263
|
+
* Show add link default config.
|
|
264
|
+
*/
|
|
265
|
+
showAddLink: {
|
|
266
|
+
type: Object,
|
|
267
|
+
default: () => ({
|
|
268
|
+
showAddLinkButton: !0,
|
|
269
|
+
setLinkTitle: "Add a link",
|
|
270
|
+
setLinkInputAriaLabel: "Input field to add link"
|
|
271
|
+
})
|
|
272
|
+
}
|
|
273
|
+
},
|
|
274
|
+
emits: [
|
|
275
|
+
/**
|
|
276
|
+
* Native focus event
|
|
277
|
+
* @event input
|
|
278
|
+
* @type {String|JSON}
|
|
279
|
+
*/
|
|
280
|
+
"focus",
|
|
281
|
+
/**
|
|
282
|
+
* Native blur event
|
|
283
|
+
* @event input
|
|
284
|
+
* @type {String|JSON}
|
|
285
|
+
*/
|
|
286
|
+
"blur",
|
|
287
|
+
/**
|
|
288
|
+
* Native input event
|
|
289
|
+
* @event input
|
|
290
|
+
* @type {String|JSON}
|
|
291
|
+
*/
|
|
292
|
+
"input",
|
|
293
|
+
/**
|
|
294
|
+
* Quick replies button
|
|
295
|
+
* pressed event
|
|
296
|
+
* @event quick-replies-click
|
|
297
|
+
*/
|
|
298
|
+
"quick-replies-click"
|
|
299
|
+
],
|
|
300
|
+
data() {
|
|
301
|
+
return {
|
|
302
|
+
internalInputValue: this.value,
|
|
303
|
+
// internal input content
|
|
304
|
+
hasFocus: !1,
|
|
305
|
+
linkOptions: {
|
|
306
|
+
class: "d-link d-c-text d-d-inline-block"
|
|
307
|
+
},
|
|
308
|
+
showLinkInput: !1,
|
|
309
|
+
linkInput: ""
|
|
310
|
+
};
|
|
311
|
+
},
|
|
312
|
+
computed: {
|
|
313
|
+
inputLength() {
|
|
314
|
+
return this.internalInputValue.length;
|
|
315
|
+
},
|
|
316
|
+
htmlOutputFormat() {
|
|
317
|
+
return d[2];
|
|
318
|
+
},
|
|
319
|
+
showingTextFormatButtons() {
|
|
320
|
+
return this.showBoldButton || this.showItalicsButton || this.showStrikeButton || this.showUnderlineButton;
|
|
321
|
+
},
|
|
322
|
+
showingAlignmentButtons() {
|
|
323
|
+
return this.showAlignLeftButton || this.showAlignCenterButton || this.showAlignRightButton || this.showAlignJustifyButton;
|
|
324
|
+
},
|
|
325
|
+
showingListButtons() {
|
|
326
|
+
return this.showListItemsButton || this.showOrderedListButton;
|
|
327
|
+
},
|
|
328
|
+
buttonGroups() {
|
|
329
|
+
const e = this.individualButtons.map((t) => ({
|
|
330
|
+
key: t.selector,
|
|
331
|
+
buttonGroup: [t]
|
|
332
|
+
}));
|
|
333
|
+
return [
|
|
334
|
+
{ key: "new", buttonGroup: this.newButtons },
|
|
335
|
+
{ key: "format", buttonGroup: this.textFormatButtons },
|
|
336
|
+
{ key: "alignment", buttonGroup: this.alignmentButtons },
|
|
337
|
+
{ key: "list", buttonGroup: this.listButtons },
|
|
338
|
+
...e
|
|
339
|
+
].filter((t) => t.buttonGroup.length > 0);
|
|
340
|
+
},
|
|
341
|
+
newButtons() {
|
|
342
|
+
return [
|
|
343
|
+
{ showBtn: this.showQuickRepliesButton, label: "Quick reply", selector: "quickReplies", iconName: "lightning-bolt", dataQA: "dt-editor-quick-replies-btn", tooltipMessage: "Quick Reply", onClick: this.onQuickRepliesClick }
|
|
344
|
+
].filter((e) => e.showBtn);
|
|
345
|
+
},
|
|
346
|
+
textFormatButtons() {
|
|
347
|
+
return [
|
|
348
|
+
{ showBtn: this.showBoldButton, selector: "bold", iconName: "bold", dataQA: "dt-editor-bold-btn", tooltipMessage: "Bold", onClick: this.onBoldTextToggle },
|
|
349
|
+
{ showBtn: this.showItalicsButton, selector: "italic", iconName: "italic", dataQA: "dt-editor-italics-btn", tooltipMessage: "Italics", onClick: this.onItalicTextToggle },
|
|
350
|
+
{ showBtn: this.showUnderlineButton, selector: "underline", iconName: "underline", dataQA: "dt-editor-underline-btn", tooltipMessage: "Underline", onClick: this.onUnderlineTextToggle },
|
|
351
|
+
{ showBtn: this.showStrikeButton, selector: "strike", iconName: "strikethrough", dataQA: "dt-editor-strike-btn", tooltipMessage: "Strike", onClick: this.onStrikethroughTextToggle }
|
|
352
|
+
].filter((e) => e.showBtn);
|
|
353
|
+
},
|
|
354
|
+
alignmentButtons() {
|
|
355
|
+
return [
|
|
356
|
+
{ showBtn: this.showAlignLeftButton, selector: { textAlign: "left" }, iconName: "align-left", dataQA: "dt-editor-align-left-btn", tooltipMessage: "Align Left", onClick: () => this.onTextAlign("left") },
|
|
357
|
+
{ showBtn: this.showAlignCenterButton, selector: { textAlign: "center" }, iconName: "align-center", dataQA: "dt-editor-align-center-btn", tooltipMessage: "Align Center", onClick: () => this.onTextAlign("center") },
|
|
358
|
+
{ showBtn: this.showAlignRightButton, selector: { textAlign: "right" }, iconName: "align-right", dataQA: "dt-editor-align-right-btn", tooltipMessage: "Align Right", onClick: () => this.onTextAlign("right") },
|
|
359
|
+
{ showBtn: this.showAlignJustifyButton, selector: { textAlign: "justify" }, iconName: "align-justify", dataQA: "dt-editor-align-justify-btn", tooltipMessage: "Align Justify", onClick: () => this.onTextAlign("justify") }
|
|
360
|
+
].filter((e) => e.showBtn);
|
|
361
|
+
},
|
|
362
|
+
listButtons() {
|
|
363
|
+
return [
|
|
364
|
+
{ showBtn: this.showListItemsButton, selector: "bulletList", iconName: "list-bullet", dataQA: "dt-editor-list-items-btn", tooltipMessage: "Bullet List", onClick: this.onBulletListToggle },
|
|
365
|
+
{ showBtn: this.showOrderedListButton, selector: "orderedList", iconName: "list-ordered", dataQA: "dt-editor-ordered-list-items-btn", tooltipMessage: "Ordered List", onClick: this.onOrderedListToggle }
|
|
366
|
+
].filter((e) => e.showBtn);
|
|
367
|
+
},
|
|
368
|
+
individualButtons() {
|
|
369
|
+
return [
|
|
370
|
+
{ showBtn: this.showQuoteButton, selector: "blockquote", iconName: "quote", dataQA: "dt-editor-blockquote-btn", tooltipMessage: "Quote", onClick: this.onBlockquoteToggle },
|
|
371
|
+
{ showBtn: this.showCodeBlockButton, selector: "codeBlock", iconName: "code-block", dataQA: "dt-editor-code-block-btn", tooltipMessage: "Code", onClick: this.onCodeBlockToggle }
|
|
372
|
+
].filter((e) => e.showBtn);
|
|
373
|
+
},
|
|
374
|
+
linkButton() {
|
|
375
|
+
return { showBtn: this.showAddLink.showAddLinkButton, selector: "link", iconName: "link-2", dataQA: "dt-editor-add-link-btn", tooltipMessage: "Link", onClick: this.openLinkInput };
|
|
376
|
+
}
|
|
377
|
+
},
|
|
378
|
+
watch: {
|
|
379
|
+
value(e) {
|
|
380
|
+
this.internalInputValue = e;
|
|
381
|
+
}
|
|
382
|
+
},
|
|
383
|
+
methods: {
|
|
384
|
+
onInputFocus(e) {
|
|
385
|
+
e == null || e.stopPropagation();
|
|
386
|
+
},
|
|
387
|
+
removeLink() {
|
|
388
|
+
var e, t, i, o, n;
|
|
389
|
+
(n = (o = (i = (t = (e = this.$refs.richTextEditor) == null ? void 0 : e.editor) == null ? void 0 : t.chain()) == null ? void 0 : i.focus()) == null ? void 0 : o.unsetLink()) == null || n.run(), this.closeLinkInput();
|
|
390
|
+
},
|
|
391
|
+
setLink(e) {
|
|
392
|
+
var n, r, s;
|
|
393
|
+
const t = (n = this.$refs.richTextEditor) == null ? void 0 : n.editor;
|
|
394
|
+
if (e == null || e.preventDefault(), e == null || e.stopPropagation(), !this.linkInput) {
|
|
395
|
+
this.removeLink();
|
|
396
|
+
return;
|
|
397
|
+
}
|
|
398
|
+
B.find((l) => l.test(this.linkInput)) || (this.linkInput = `${b}${this.linkInput}`);
|
|
399
|
+
const o = (s = (r = t == null ? void 0 : t.view) == null ? void 0 : r.state) == null ? void 0 : s.selection;
|
|
400
|
+
o.anchor === o.head ? t.chain().focus().insertContentAt(
|
|
401
|
+
o.anchor,
|
|
402
|
+
`<a class="${this.linkOptions.class}" href=${this.linkInput}>${this.linkInput}</a>`
|
|
403
|
+
).run() : t.chain().focus().extendMarkRange("link").setLink({ href: this.linkInput, class: this.linkOptions.class }).run(), this.closeLinkInput();
|
|
404
|
+
},
|
|
405
|
+
openLinkInput() {
|
|
406
|
+
this.showLinkInput = !0;
|
|
407
|
+
},
|
|
408
|
+
updateInput(e) {
|
|
409
|
+
var t, i, o;
|
|
410
|
+
if (!e)
|
|
411
|
+
return this.closeLinkInput();
|
|
412
|
+
this.linkInput = (o = (i = (t = this.$refs.richTextEditor) == null ? void 0 : t.editor) == null ? void 0 : i.getAttributes("link")) == null ? void 0 : o.href;
|
|
413
|
+
},
|
|
414
|
+
closeLinkInput() {
|
|
415
|
+
var e;
|
|
416
|
+
this.showLinkInput = !1, this.linkInput = "", (e = this.$refs.richTextEditor.editor) == null || e.chain().focus();
|
|
417
|
+
},
|
|
418
|
+
onBoldTextToggle() {
|
|
419
|
+
var e, t;
|
|
420
|
+
(t = (e = this.$refs.richTextEditor) == null ? void 0 : e.editor) == null || t.chain().focus().toggleBold().run();
|
|
421
|
+
},
|
|
422
|
+
onItalicTextToggle() {
|
|
423
|
+
var e;
|
|
424
|
+
(e = this.$refs.richTextEditor) == null || e.editor.chain().focus().toggleItalic().run();
|
|
425
|
+
},
|
|
426
|
+
onUnderlineTextToggle() {
|
|
427
|
+
var e;
|
|
428
|
+
(e = this.$refs.richTextEditor) == null || e.editor.chain().focus().toggleUnderline().run();
|
|
429
|
+
},
|
|
430
|
+
onStrikethroughTextToggle() {
|
|
431
|
+
var e;
|
|
432
|
+
(e = this.$refs.richTextEditor) == null || e.editor.chain().focus().toggleStrike().run();
|
|
433
|
+
},
|
|
434
|
+
onTextAlign(e) {
|
|
435
|
+
var t, i, o, n;
|
|
436
|
+
if ((i = (t = this.$refs.richTextEditor) == null ? void 0 : t.editor) != null && i.isActive({ textAlign: e }))
|
|
437
|
+
return (o = this.$refs.richTextEditor) == null ? void 0 : o.editor.chain().focus().unsetTextAlign().run();
|
|
438
|
+
(n = this.$refs.richTextEditor) == null || n.editor.chain().focus().setTextAlign(e).run();
|
|
439
|
+
},
|
|
440
|
+
onBulletListToggle() {
|
|
441
|
+
var e;
|
|
442
|
+
(e = this.$refs.richTextEditor) == null || e.editor.chain().focus().toggleBulletList().run();
|
|
443
|
+
},
|
|
444
|
+
onOrderedListToggle() {
|
|
445
|
+
var e;
|
|
446
|
+
(e = this.$refs.richTextEditor) == null || e.editor.chain().focus().toggleOrderedList().run();
|
|
447
|
+
},
|
|
448
|
+
onCodeBlockToggle() {
|
|
449
|
+
var e;
|
|
450
|
+
(e = this.$refs.richTextEditor) == null || e.editor.chain().focus().toggleCodeBlock().run();
|
|
451
|
+
},
|
|
452
|
+
onQuickRepliesClick() {
|
|
453
|
+
this.$emit("quick-replies-click");
|
|
454
|
+
},
|
|
455
|
+
onBlockquoteToggle() {
|
|
456
|
+
var e;
|
|
457
|
+
(e = this.$refs.richTextEditor) == null || e.editor.chain().focus().toggleBlockquote().run();
|
|
458
|
+
},
|
|
459
|
+
onFocus(e) {
|
|
460
|
+
this.hasFocus = !0, this.$emit("focus", e);
|
|
461
|
+
},
|
|
462
|
+
onBlur(e) {
|
|
463
|
+
this.hasFocus = !1, this.$emit("blur", e);
|
|
464
|
+
},
|
|
465
|
+
onInput(e) {
|
|
466
|
+
this.$emit("input", e);
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
};
|
|
470
|
+
var L = function() {
|
|
471
|
+
var t = this, i = t._self._c;
|
|
472
|
+
return i("div", { staticClass: "d-d-flex d-fd-column", attrs: { "data-qa": "dt-editor", role: "presentation" }, on: { click: function(o) {
|
|
473
|
+
return t.$refs.richTextEditor.focusEditor();
|
|
474
|
+
} } }, [i("dt-stack", { staticClass: "d-p8 dt-editor--top-bar-background", attrs: { direction: "row", gap: "450" } }, [t._l(t.buttonGroups, function(o) {
|
|
475
|
+
return i("dt-stack", { key: o.key, attrs: { direction: "row", gap: "300" } }, [t._l(o.buttonGroup, function(n) {
|
|
476
|
+
return i("dt-tooltip", { key: `${o.key}-${JSON.stringify(n.selector)}`, attrs: { message: n.tooltipMessage, placement: "top" }, scopedSlots: t._u([{ key: "anchor", fn: function() {
|
|
477
|
+
var r, s;
|
|
478
|
+
return [i("dt-button", { attrs: { "data-qa": n.dataQA, importance: "clear", kind: "muted", active: (s = (r = t.$refs.richTextEditor) == null ? void 0 : r.editor) == null ? void 0 : s.isActive(n.selector), size: "xs", "aria-label": n.tooltipMessage }, on: { click: function(l) {
|
|
479
|
+
return n.onClick();
|
|
480
|
+
} }, scopedSlots: t._u([{ key: "icon", fn: function() {
|
|
481
|
+
return [i("dt-icon", { attrs: { name: n.iconName, size: "200" } })];
|
|
482
|
+
}, proxy: !0 }], null, !0) }, [n.label ? i("span", [t._v(t._s(n.label))]) : t._e()])];
|
|
483
|
+
}, proxy: !0 }], null, !0) });
|
|
484
|
+
}), i("div", { staticClass: "dt-editor--button-group-divider" })], 2);
|
|
485
|
+
}), t.linkButton.showBtn ? i("dt-stack", { attrs: { direction: "row", gap: "300" } }, [i("dt-popover", { attrs: { open: t.showLinkInput, placement: "bottom-start", "visually-hidden-close": !0, "visually-hidden-close-label": "Close link input popover", "data-qa": "dt-editor-link-input-popover", "show-close-button": !1 }, on: { "update:open": function(o) {
|
|
486
|
+
t.showLinkInput = o;
|
|
487
|
+
}, click: t.onInputFocus, opened: t.updateInput }, nativeOn: { click: function(o) {
|
|
488
|
+
return o.stopPropagation(), t.onInputFocus.apply(null, arguments);
|
|
489
|
+
} }, scopedSlots: t._u([{ key: "anchor", fn: function() {
|
|
490
|
+
return [i("dt-tooltip", { key: t.linkButton.key, attrs: { message: t.linkButton.tooltipMessage, placement: "top" }, scopedSlots: t._u([{ key: "anchor", fn: function() {
|
|
491
|
+
var o, n;
|
|
492
|
+
return [i("dt-button", { staticClass: "d-ol-none", attrs: { "data-qa": t.linkButton.dataQA, importance: "clear", kind: "muted", active: (n = (o = t.$refs.richTextEditor) == null ? void 0 : o.editor) == null ? void 0 : n.isActive(t.linkButton.selector), size: "xs", "aria-label": t.linkButton.tooltipMessage }, on: { click: function(r) {
|
|
493
|
+
return t.linkButton.onClick();
|
|
494
|
+
} }, scopedSlots: t._u([{ key: "icon", fn: function() {
|
|
495
|
+
return [i("dt-icon", { staticClass: "d-fw-bold", attrs: { name: t.linkButton.iconName, size: "200" } })];
|
|
496
|
+
}, proxy: !0 }], null, !1, 540616731) })];
|
|
497
|
+
}, proxy: !0 }], null, !1, 2091397100) })];
|
|
498
|
+
}, proxy: !0 }, { key: "content", fn: function() {
|
|
499
|
+
return [t.showAddLink.setLinkTitle.length > 0 ? i("span", [t._v(" " + t._s(t.showAddLink.setLinkTitle) + " ")]) : t._e(), i("dt-input", { attrs: { "input-aria-label": t.showAddLink.setLinkInputAriaLabel, "data-qa": "dt-editor-link-input", placeholder: t.setLinkPlaceholder, "input-wrapper-class": "d-bgc-black-100 d-mt6 d-bar5 d-ba d-baw1 d-bc-black-300 d-py2 d-ol-none" }, on: { click: t.onInputFocus, focus: t.onInputFocus, keydown: function(o) {
|
|
500
|
+
return !o.type.indexOf("key") && t._k(o.keyCode, "enter", 13, o.key, "Enter") ? null : t.setLink.apply(null, arguments);
|
|
501
|
+
} }, nativeOn: { click: function(o) {
|
|
502
|
+
return o.stopPropagation(), t.onInputFocus.apply(null, arguments);
|
|
503
|
+
} }, model: { value: t.linkInput, callback: function(o) {
|
|
504
|
+
t.linkInput = o;
|
|
505
|
+
}, expression: "linkInput" } })];
|
|
506
|
+
}, proxy: !0 }, { key: "footerContent", fn: function() {
|
|
507
|
+
return [i("div", { staticClass: "d-ml8 d-mr12" }, [i("dt-button", { staticClass: "d-mx2", attrs: { "aria-label": t.removeLinkButton.ariaLabel, importance: "clear", kind: "muted", size: "sm", "data-qa": "dt-editor-remove-link-btn" }, on: { click: t.removeLink } }, [t._v(" " + t._s(t.removeLinkButton.label) + " ")]), i("dt-button", { staticClass: "d-mx2", attrs: { "aria-label": t.cancelSetLinkButton.ariaLabel, importance: "clear", kind: "muted", size: "sm", "data-qa": "dt-editor-set-link-cancel-btn" }, on: { click: t.closeLinkInput } }, [t._v(" " + t._s(t.cancelSetLinkButton.label) + " ")]), i("dt-button", { staticClass: "d-mx2", attrs: { size: "sm", "aria-label": t.confirmSetLinkButton.ariaLabel, "data-qa": "dt-editor-set-link-confirm-btn" }, on: { click: t.setLink } }, [t._v(" " + t._s(t.confirmSetLinkButton.label) + " ")])], 1)];
|
|
508
|
+
}, proxy: !0 }], null, !1, 1792797475) })], 1) : t._e()], 2), i("div", { staticClass: "d-of-auto d-mx16 d-mt8 d-mb16 d-c-text", style: { "max-height": t.maxHeight } }, [i("dt-rich-text-editor", t._b({ ref: "richTextEditor", attrs: { "data-qa": "dt-rich-text-editor", editable: t.editable, "input-aria-label": t.inputAriaLabel, "input-class": `d-ml16 d-ol-none d-my6 ${t.inputClass}`, "output-format": t.htmlOutputFormat, "auto-focus": t.autoFocus, placeholder: t.placeholder, "allow-line-breaks": !0, link: !1 }, on: { focus: t.onFocus, blur: t.onBlur, input: function(o) {
|
|
509
|
+
return t.onInput(o);
|
|
510
|
+
} }, model: { value: t.internalInputValue, callback: function(o) {
|
|
511
|
+
t.internalInputValue = o;
|
|
512
|
+
}, expression: "internalInputValue" } }, "dt-rich-text-editor", t.$attrs, !1))], 1)], 1);
|
|
513
|
+
}, y = [], x = /* @__PURE__ */ a(
|
|
514
|
+
w,
|
|
515
|
+
L,
|
|
516
|
+
y,
|
|
517
|
+
!1,
|
|
518
|
+
null,
|
|
519
|
+
null,
|
|
520
|
+
null,
|
|
521
|
+
null
|
|
522
|
+
);
|
|
523
|
+
const Ct = x.exports;
|
|
524
|
+
export {
|
|
525
|
+
Ct as DtRecipeEditor
|
|
526
|
+
};
|
|
527
|
+
//# sourceMappingURL=editor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editor.js","sources":["../../recipes/conversation_view/editor/editor_constants.js","../../recipes/conversation_view/editor/editor.vue"],"sourcesContent":["export const EDITOR_SUPPORTED_LINK_PROTOCOLS = [\n /^https?:\\/\\//,\n /^http?:\\/\\//,\n /^ftp?:\\/\\//,\n /^ftps?:\\/\\//,\n /^ftps?:\\/\\//,\n /mailto:([^?]*)/,\n];\n\nexport const EDITOR_DEFAULT_LINK_PREFIX = 'https://';\n\nexport default {\n EDITOR_SUPPORTED_LINK_PROTOCOLS,\n EDITOR_DEFAULT_LINK_PREFIX,\n};\n","<!-- eslint-disable vue/no-restricted-class -->\n<template>\n <div\n data-qa=\"dt-editor\"\n role=\"presentation\"\n class=\"d-d-flex d-fd-column\"\n @click=\"$refs.richTextEditor.focusEditor()\"\n >\n <!-- Section for the top UI -->\n <dt-stack\n direction=\"row\"\n gap=\"450\"\n class=\"d-p8 dt-editor--top-bar-background\"\n >\n <dt-stack\n v-for=\"buttonGroup in buttonGroups\"\n :key=\"buttonGroup.key\"\n direction=\"row\"\n gap=\"300\"\n >\n <dt-tooltip\n v-for=\"button in buttonGroup.buttonGroup\"\n :key=\"`${buttonGroup.key}-${JSON.stringify(button.selector)}`\"\n :message=\"button.tooltipMessage\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n :data-qa=\"button.dataQA\"\n importance=\"clear\"\n kind=\"muted\"\n :active=\"$refs.richTextEditor?.editor?.isActive(button.selector)\"\n size=\"xs\"\n :aria-label=\"button.tooltipMessage\"\n @click=\"button.onClick()\"\n >\n <template #icon>\n <dt-icon\n :name=\"button.iconName\"\n size=\"200\"\n />\n </template>\n <span v-if=\"button.label\">{{ button.label }}</span>\n </dt-button>\n </template>\n </dt-tooltip>\n <div class=\"dt-editor--button-group-divider\" />\n </dt-stack>\n <dt-stack\n v-if=\"linkButton.showBtn\"\n direction=\"row\"\n gap=\"300\"\n >\n <dt-popover\n :open.sync=\"showLinkInput\"\n placement=\"bottom-start\"\n :visually-hidden-close=\"true\"\n :visually-hidden-close-label=\"'Close link input popover'\"\n data-qa=\"dt-editor-link-input-popover\"\n :show-close-button=\"false\"\n @click=\"onInputFocus\"\n @click.native.stop=\"onInputFocus\"\n @opened=\"updateInput\"\n >\n <template #anchor>\n <dt-tooltip\n :key=\"linkButton.key\"\n :message=\"linkButton.tooltipMessage\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n :data-qa=\"linkButton.dataQA\"\n importance=\"clear\"\n kind=\"muted\"\n class=\"d-ol-none\"\n :active=\"$refs.richTextEditor?.editor?.isActive(linkButton.selector)\"\n size=\"xs\"\n :aria-label=\"linkButton.tooltipMessage\"\n @click=\"linkButton.onClick()\"\n >\n <template #icon>\n <dt-icon\n :name=\"linkButton.iconName\"\n size=\"200\"\n class=\"d-fw-bold\"\n />\n </template>\n </dt-button>\n </template>\n </dt-tooltip>\n </template>\n\n <template #content>\n <span\n v-if=\"showAddLink.setLinkTitle.length > 0\"\n >\n {{ showAddLink.setLinkTitle }}\n </span>\n <dt-input\n v-model=\"linkInput\"\n :input-aria-label=\"showAddLink.setLinkInputAriaLabel\"\n data-qa=\"dt-editor-link-input\"\n :placeholder=\"setLinkPlaceholder\"\n input-wrapper-class=\"d-bgc-black-100 d-mt6 d-bar5 d-ba d-baw1 d-bc-black-300 d-py2 d-ol-none\"\n @click=\"onInputFocus\"\n @click.native.stop=\"onInputFocus\"\n @focus=\"onInputFocus\"\n @keydown.enter=\"setLink\"\n />\n </template>\n <template #footerContent>\n <div class=\"d-ml8 d-mr12\">\n <dt-button\n class=\"d-mx2\"\n :aria-label=\"removeLinkButton.ariaLabel\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"sm\"\n data-qa=\"dt-editor-remove-link-btn\"\n @click=\"removeLink\"\n >\n {{ removeLinkButton.label }}\n </dt-button>\n <dt-button\n class=\"d-mx2\"\n :aria-label=\"cancelSetLinkButton.ariaLabel\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"sm\"\n data-qa=\"dt-editor-set-link-cancel-btn\"\n @click=\"closeLinkInput\"\n >\n {{ cancelSetLinkButton.label }}\n </dt-button>\n <dt-button\n class=\"d-mx2\"\n size=\"sm\"\n :aria-label=\"confirmSetLinkButton.ariaLabel\"\n data-qa=\"dt-editor-set-link-confirm-btn\"\n @click=\"setLink\"\n >\n {{ confirmSetLinkButton.label }}\n </dt-button>\n </div>\n </template>\n </dt-popover>\n </dt-stack>\n </dt-stack>\n\n <!-- Some wrapper to restrict the height and show the scrollbar -->\n <div\n class=\"d-of-auto d-mx16 d-mt8 d-mb16 d-c-text\"\n :style=\"{ 'max-height': maxHeight }\"\n >\n <dt-rich-text-editor\n ref=\"richTextEditor\"\n v-model=\"internalInputValue\"\n data-qa=\"dt-rich-text-editor\"\n :editable=\"editable\"\n :input-aria-label=\"inputAriaLabel\"\n :input-class=\"`d-ml16 d-ol-none d-my6 ${inputClass}`\"\n :output-format=\"htmlOutputFormat\"\n :auto-focus=\"autoFocus\"\n :placeholder=\"placeholder\"\n :allow-line-breaks=\"true\"\n :link=\"false\"\n v-bind=\"$attrs\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @input=\"onInput($event)\"\n />\n </div>\n </div>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport {\n DtRichTextEditor,\n RICH_TEXT_EDITOR_OUTPUT_FORMATS,\n RICH_TEXT_EDITOR_AUTOFOCUS_TYPES,\n} from '@/components/rich_text_editor';\nimport {\n EDITOR_SUPPORTED_LINK_PROTOCOLS,\n EDITOR_DEFAULT_LINK_PREFIX,\n} from './editor_constants.js';\nimport { DtIcon } from '@/components/icon';\nimport { DtButton } from '@/components/button';\nimport { DtPopover } from '@/components/popover';\nimport { DtStack } from '@/components/stack';\nimport { DtInput } from '@/components/input';\nimport { DtTooltip } from '@/components/tooltip';\n\nexport default {\n name: 'DtRecipeEditor',\n\n components: {\n DtRichTextEditor,\n DtButton,\n DtIcon,\n DtPopover,\n DtStack,\n DtInput,\n DtTooltip,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Value of the input. The object format should match TipTap's JSON\n * document structure: https://tiptap.dev/guide/output#option-1-json\n */\n value: {\n type: [Object, String],\n default: '',\n },\n\n /**\n * Whether the input is editable\n */\n editable: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Descriptive label for the input element\n */\n inputAriaLabel: {\n type: String,\n required: true,\n default: '',\n },\n\n /**\n * Additional class name for the input element. Only accepts a String value\n * because this is passed to the editor via options. For multiple classes,\n * join them into one string, e.g. \"d-p8 d-hmx96\"\n */\n inputClass: {\n type: String,\n default: '',\n },\n\n /**\n * Whether the input should receive focus after the component has been\n * mounted. Either one of `start`, `end`, `all` or a Boolean or a Number.\n * - `start` Sets the focus to the beginning of the input\n * - `end` Sets the focus to the end of the input\n * - `all` Selects the whole contents of the input\n * - `Number` Sets the focus to a specific position in the input\n * - `true` Defaults to `start`\n * - `false` Disables autofocus\n * @values true, false, start, end, all, number\n */\n autoFocus: {\n type: [Boolean, String, Number],\n default: false,\n validator (autoFocus) {\n if (typeof autoFocus === 'string') {\n return RICH_TEXT_EDITOR_AUTOFOCUS_TYPES.includes(autoFocus);\n }\n return true;\n },\n },\n\n /**\n * Placeholder text\n */\n placeholder: {\n type: String,\n default: '',\n },\n\n /**\n * Content area needs to dynamically adjust height based on the conversation area height.\n * can be vh|px|rem|em|%\n */\n maxHeight: {\n type: String,\n default: 'unset',\n },\n\n /**\n * Confirm set link button defaults.\n */\n confirmSetLinkButton: {\n type: Object,\n default: () => ({ label: 'Confirm', ariaLabel: 'Confirm set link' }),\n },\n\n /**\n * Remove link button defaults.\n */\n removeLinkButton: {\n type: Object,\n default: () => ({ label: 'Remove', ariaLabel: 'Remove link' }),\n },\n\n /**\n * Cancel set link button defaults.\n */\n cancelSetLinkButton: {\n type: Object,\n default: () => ({ label: 'Cancel', ariaLabel: 'Cancel set link' }),\n },\n\n /**\n * Placeholder text for the set link input field\n */\n setLinkPlaceholder: {\n type: String,\n default: '',\n },\n\n /**\n * Show button to render text as bold\n */\n showBoldButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to render text in italics\n */\n showItalicsButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to underline text\n */\n showUnderlineButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to strike text\n */\n showStrikeButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to render list items\n */\n showListItemsButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to render ordered list items\n */\n showOrderedListButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to align text to the left\n */\n showAlignLeftButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to align text to the center\n */\n showAlignCenterButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to align text to the right\n */\n showAlignRightButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to justify text\n */\n showAlignJustifyButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to add quote format to text\n */\n showQuoteButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to add code block\n */\n showCodeBlockButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to handle quick replies\n */\n showQuickRepliesButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show add link default config.\n */\n showAddLink: {\n type: Object,\n default: () => ({\n showAddLinkButton: true,\n setLinkTitle: 'Add a link',\n setLinkInputAriaLabel: 'Input field to add link',\n }),\n },\n },\n\n emits: [\n /**\n * Native focus event\n * @event input\n * @type {String|JSON}\n */\n 'focus',\n\n /**\n * Native blur event\n * @event input\n * @type {String|JSON}\n */\n 'blur',\n\n /**\n * Native input event\n * @event input\n * @type {String|JSON}\n */\n 'input',\n\n /**\n * Quick replies button\n * pressed event\n * @event quick-replies-click\n */\n 'quick-replies-click',\n ],\n\n data () {\n return {\n internalInputValue: this.value, // internal input content\n hasFocus: false,\n\n linkOptions: {\n class: 'd-link d-c-text d-d-inline-block',\n },\n\n showLinkInput: false,\n linkInput: '',\n };\n },\n\n computed: {\n inputLength () {\n return this.internalInputValue.length;\n },\n\n htmlOutputFormat () {\n return RICH_TEXT_EDITOR_OUTPUT_FORMATS[2];\n },\n\n showingTextFormatButtons () {\n return this.showBoldButton || this.showItalicsButton || this.showStrikeButton || this.showUnderlineButton;\n },\n\n showingAlignmentButtons () {\n return this.showAlignLeftButton || this.showAlignCenterButton ||\n this.showAlignRightButton || this.showAlignJustifyButton;\n },\n\n showingListButtons () {\n return this.showListItemsButton || this.showOrderedListButton;\n },\n\n buttonGroups () {\n const individualButtonStacks = this.individualButtons.map(buttonData => ({\n key: buttonData.selector,\n buttonGroup: [buttonData],\n }));\n return [\n { key: 'new', buttonGroup: this.newButtons },\n { key: 'format', buttonGroup: this.textFormatButtons },\n { key: 'alignment', buttonGroup: this.alignmentButtons },\n { key: 'list', buttonGroup: this.listButtons },\n ...individualButtonStacks,\n ].filter(buttonGroupData => buttonGroupData.buttonGroup.length > 0);\n },\n\n newButtons () {\n return [\n { showBtn: this.showQuickRepliesButton, label: 'Quick reply', selector: 'quickReplies', iconName: 'lightning-bolt', dataQA: 'dt-editor-quick-replies-btn', tooltipMessage: 'Quick Reply', onClick: this.onQuickRepliesClick },\n ].filter(button => button.showBtn);\n },\n\n textFormatButtons () {\n return [\n { showBtn: this.showBoldButton, selector: 'bold', iconName: 'bold', dataQA: 'dt-editor-bold-btn', tooltipMessage: 'Bold', onClick: this.onBoldTextToggle },\n { showBtn: this.showItalicsButton, selector: 'italic', iconName: 'italic', dataQA: 'dt-editor-italics-btn', tooltipMessage: 'Italics', onClick: this.onItalicTextToggle },\n { showBtn: this.showUnderlineButton, selector: 'underline', iconName: 'underline', dataQA: 'dt-editor-underline-btn', tooltipMessage: 'Underline', onClick: this.onUnderlineTextToggle },\n { showBtn: this.showStrikeButton, selector: 'strike', iconName: 'strikethrough', dataQA: 'dt-editor-strike-btn', tooltipMessage: 'Strike', onClick: this.onStrikethroughTextToggle },\n ].filter(button => button.showBtn);\n },\n\n alignmentButtons () {\n return [\n { showBtn: this.showAlignLeftButton, selector: { textAlign: 'left' }, iconName: 'align-left', dataQA: 'dt-editor-align-left-btn', tooltipMessage: 'Align Left', onClick: () => this.onTextAlign('left') },\n { showBtn: this.showAlignCenterButton, selector: { textAlign: 'center' }, iconName: 'align-center', dataQA: 'dt-editor-align-center-btn', tooltipMessage: 'Align Center', onClick: () => this.onTextAlign('center') },\n { showBtn: this.showAlignRightButton, selector: { textAlign: 'right' }, iconName: 'align-right', dataQA: 'dt-editor-align-right-btn', tooltipMessage: 'Align Right', onClick: () => this.onTextAlign('right') },\n { showBtn: this.showAlignJustifyButton, selector: { textAlign: 'justify' }, iconName: 'align-justify', dataQA: 'dt-editor-align-justify-btn', tooltipMessage: 'Align Justify', onClick: () => this.onTextAlign('justify') },\n ].filter(button => button.showBtn);\n },\n\n listButtons () {\n return [\n { showBtn: this.showListItemsButton, selector: 'bulletList', iconName: 'list-bullet', dataQA: 'dt-editor-list-items-btn', tooltipMessage: 'Bullet List', onClick: this.onBulletListToggle },\n { showBtn: this.showOrderedListButton, selector: 'orderedList', iconName: 'list-ordered', dataQA: 'dt-editor-ordered-list-items-btn', tooltipMessage: 'Ordered List', onClick: this.onOrderedListToggle },\n ].filter(button => button.showBtn);\n },\n\n individualButtons () {\n return [\n { showBtn: this.showQuoteButton, selector: 'blockquote', iconName: 'quote', dataQA: 'dt-editor-blockquote-btn', tooltipMessage: 'Quote', onClick: this.onBlockquoteToggle },\n { showBtn: this.showCodeBlockButton, selector: 'codeBlock', iconName: 'code-block', dataQA: 'dt-editor-code-block-btn', tooltipMessage: 'Code', onClick: this.onCodeBlockToggle },\n ].filter(button => button.showBtn);\n },\n\n linkButton () {\n return { showBtn: this.showAddLink.showAddLinkButton, selector: 'link', iconName: 'link-2', dataQA: 'dt-editor-add-link-btn', tooltipMessage: 'Link', onClick: this.openLinkInput };\n },\n },\n\n watch: {\n value (newValue) {\n this.internalInputValue = newValue;\n },\n },\n\n methods: {\n onInputFocus (event) {\n event?.stopPropagation();\n },\n\n removeLink () {\n this.$refs.richTextEditor?.editor?.chain()?.focus()?.unsetLink()?.run();\n this.closeLinkInput();\n },\n\n setLink (event) {\n const editor = this.$refs.richTextEditor?.editor;\n event?.preventDefault();\n event?.stopPropagation();\n\n if (!this.linkInput) {\n // If link text is set to empty string,\n // remove any existing links.\n this.removeLink();\n return;\n }\n\n // Check if input matches any of the supported link formats\n const prefix = EDITOR_SUPPORTED_LINK_PROTOCOLS.find(prefixRegex => prefixRegex.test(this.linkInput));\n\n if (!prefix) {\n // If no matching pattern is found, prepend default prefix\n this.linkInput = `${EDITOR_DEFAULT_LINK_PREFIX}${this.linkInput}`;\n }\n\n const selection = editor?.view?.state?.selection;\n\n if (selection.anchor === selection.head) {\n // If no text has been selected, manually insert the link text.\n // Do not rely on link options set through DtRichTextEditor\n // component, because they clash with these and cause issues.\n editor\n .chain()\n .focus()\n .insertContentAt(\n selection.anchor,\n `<a class=\"${this.linkOptions.class}\" href=${this.linkInput}>${this.linkInput}</a>`,\n )\n .run();\n } else {\n // Set or edit the link\n editor\n .chain()\n .focus()\n .extendMarkRange('link')\n .setLink({ href: this.linkInput, class: this.linkOptions.class })\n .run();\n }\n\n this.closeLinkInput();\n },\n\n openLinkInput () {\n this.showLinkInput = true;\n },\n\n updateInput (openedInput) {\n if (!openedInput) {\n return this.closeLinkInput();\n }\n this.linkInput = this.$refs.richTextEditor?.editor?.getAttributes('link')?.href;\n },\n\n closeLinkInput () {\n this.showLinkInput = false;\n this.linkInput = '';\n this.$refs.richTextEditor.editor?.chain().focus();\n },\n\n onBoldTextToggle () {\n this.$refs.richTextEditor?.editor?.chain().focus().toggleBold().run();\n },\n\n onItalicTextToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleItalic().run();\n },\n\n onUnderlineTextToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleUnderline().run();\n },\n\n onStrikethroughTextToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleStrike().run();\n },\n\n onTextAlign (alignment) {\n if (this.$refs.richTextEditor?.editor?.isActive({ textAlign: alignment })) {\n // If this alignment type is already set here, unset it\n return this.$refs.richTextEditor?.editor.chain().focus().unsetTextAlign().run();\n }\n this.$refs.richTextEditor?.editor.chain().focus().setTextAlign(alignment).run();\n },\n\n onBulletListToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleBulletList().run();\n },\n\n onOrderedListToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleOrderedList().run();\n },\n\n onCodeBlockToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleCodeBlock().run();\n },\n\n onQuickRepliesClick () {\n this.$emit('quick-replies-click');\n },\n\n onBlockquoteToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleBlockquote().run();\n },\n\n onFocus (event) {\n this.hasFocus = true;\n this.$emit('focus', event);\n },\n\n onBlur (event) {\n this.hasFocus = false;\n this.$emit('blur', event);\n },\n\n onInput (event) {\n this.$emit('input', event);\n },\n\n },\n};\n</script>\n\n<style lang=\"less\">\n.dt-editor--top-bar-background {\n background-color: var(--dt-color-surface-secondary);\n}\n\n.dt-editor--button-group-divider {\n margin-left: var(--dt-space-400);\n height: calc(var(--dt-size-550) + var(--dt-size-300));\n width: var(--dt-size-100);\n background: var(--dt-color-border-subtle);\n}\n</style>\n"],"names":["EDITOR_SUPPORTED_LINK_PROTOCOLS","EDITOR_DEFAULT_LINK_PREFIX","_sfc_main","DtRichTextEditor","DtButton","DtIcon","DtPopover","DtStack","DtInput","DtTooltip","autoFocus","RICH_TEXT_EDITOR_AUTOFOCUS_TYPES","RICH_TEXT_EDITOR_OUTPUT_FORMATS","individualButtonStacks","buttonData","buttonGroupData","button","newValue","event","_e","_d","_c","_b","_a","editor","prefixRegex","selection","openedInput","alignment"],"mappings":"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"}
|