@dialpad/dialtone-vue 3.172.0 → 3.173.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.
Files changed (41) hide show
  1. package/dist/component-documentation.json +1 -1
  2. package/dist/components/emoji_text_wrapper/emoji_text_wrapper.vue.cjs +2 -0
  3. package/dist/components/emoji_text_wrapper/emoji_text_wrapper.vue.cjs.map +1 -1
  4. package/dist/components/emoji_text_wrapper/emoji_text_wrapper.vue.js +3 -1
  5. package/dist/components/emoji_text_wrapper/emoji_text_wrapper.vue.js.map +1 -1
  6. package/dist/components/pagination/pagination.vue.cjs +7 -8
  7. package/dist/components/pagination/pagination.vue.cjs.map +1 -1
  8. package/dist/components/pagination/pagination.vue.js +8 -9
  9. package/dist/components/pagination/pagination.vue.js.map +1 -1
  10. package/dist/components/rich_text_editor/extensions/div/div.cjs +14 -0
  11. package/dist/components/rich_text_editor/extensions/div/div.cjs.map +1 -0
  12. package/dist/components/rich_text_editor/extensions/div/div.js +14 -0
  13. package/dist/components/rich_text_editor/extensions/div/div.js.map +1 -0
  14. package/dist/components/rich_text_editor/extensions/div/index.cjs +5 -0
  15. package/dist/components/rich_text_editor/extensions/div/index.cjs.map +1 -0
  16. package/dist/components/rich_text_editor/extensions/div/index.js +5 -0
  17. package/dist/components/rich_text_editor/extensions/div/index.js.map +1 -0
  18. package/dist/components/rich_text_editor/rich_text_editor.vue.cjs +10 -1
  19. package/dist/components/rich_text_editor/rich_text_editor.vue.cjs.map +1 -1
  20. package/dist/components/rich_text_editor/rich_text_editor.vue.js +10 -1
  21. package/dist/components/rich_text_editor/rich_text_editor.vue.js.map +1 -1
  22. package/dist/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.cjs +22 -22
  23. package/dist/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.cjs.map +1 -1
  24. package/dist/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.js +22 -22
  25. package/dist/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.js.map +1 -1
  26. package/dist/recipes/conversation_view/editor/editor.vue.cjs +9 -1
  27. package/dist/recipes/conversation_view/editor/editor.vue.cjs.map +1 -1
  28. package/dist/recipes/conversation_view/editor/editor.vue.js +9 -1
  29. package/dist/recipes/conversation_view/editor/editor.vue.js.map +1 -1
  30. package/dist/types/components/emoji_text_wrapper/emoji_text_wrapper.vue.d.ts.map +1 -1
  31. package/dist/types/components/pagination/pagination.vue.d.ts.map +1 -1
  32. package/dist/types/components/rich_text_editor/extensions/div/div.d.ts +2 -0
  33. package/dist/types/components/rich_text_editor/extensions/div/div.d.ts.map +1 -0
  34. package/dist/types/components/rich_text_editor/extensions/div/index.d.ts +3 -0
  35. package/dist/types/components/rich_text_editor/extensions/div/index.d.ts.map +1 -0
  36. package/dist/types/components/rich_text_editor/rich_text_editor.vue.d.ts +9 -0
  37. package/dist/types/components/rich_text_editor/rich_text_editor.vue.d.ts.map +1 -1
  38. package/dist/types/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts.map +1 -1
  39. package/dist/types/recipes/conversation_view/editor/editor.vue.d.ts +9 -0
  40. package/dist/types/recipes/conversation_view/editor/editor.vue.d.ts.map +1 -1
  41. package/package.json +5 -5
@@ -10,9 +10,9 @@ const _sfc_main = {
10
10
  name: "DtRecipeCallbarButtonWithDropdown",
11
11
  components: { DtRecipeCallbarButton, DtDropdown, DtButton, DtIconChevronUp },
12
12
  /* inheritAttrs: false is generally an option we want to set on library
13
- components. This allows any attributes passed in that are not recognized
14
- as props to be passed down to another element or component using v-bind:$attrs
15
- more info: https://vuejs.org/v2/api/#inheritAttrs */
13
+ components. This allows any attributes passed in that are not recognized
14
+ as props to be passed down to another element or component using v-bind:$attrs
15
+ more info: https://vuejs.org/v2/api/#inheritAttrs */
16
16
  inheritAttrs: false,
17
17
  props: {
18
18
  /**
@@ -117,7 +117,7 @@ const _sfc_main = {
117
117
  * This makes it impossible from the regular declaration (emits: ['click']) to check whether
118
118
  * we actually have a click handler or not.
119
119
  * We're hacking it by adding an onClick prop: https://github.com/vuejs/core/issues/5220
120
- */
120
+ */
121
121
  /* eslint-disable-next-line vue/no-unused-properties */
122
122
  onClick: {
123
123
  type: Function,
@@ -250,17 +250,17 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
250
250
  const _component_dt_dropdown = resolveComponent("dt-dropdown");
251
251
  return openBlock(), createElementBlock("div", _hoisted_1, [
252
252
  createVNode(_component_dt_recipe_callbar_button, {
253
- "aria-label": $props.ariaLabel,
254
- disabled: $props.disabled,
255
253
  active: $props.active,
256
- danger: $props.danger,
254
+ "aria-label": $props.ariaLabel,
257
255
  "button-class": $props.buttonClass,
258
256
  "button-width-size": $props.buttonWidthSize,
259
- "text-class": $props.textClass,
257
+ danger: $props.danger,
258
+ disabled: $props.disabled,
260
259
  "inverted-tooltip": $props.invertedTooltip,
261
260
  "show-tooltip": $props.showTooltip,
262
- "tooltip-text": $props.tooltipText,
261
+ "text-class": $props.textClass,
263
262
  "tooltip-delay": $props.tooltipDelay,
263
+ "tooltip-text": $props.tooltipText,
264
264
  class: "dt-recipe--callbar-button-with-dropdown--main-button",
265
265
  onClick: $options.buttonClick
266
266
  }, {
@@ -274,28 +274,28 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
274
274
  renderSlot(_ctx.$slots, "default")
275
275
  ]),
276
276
  _: 3
277
- }, 8, ["aria-label", "disabled", "active", "danger", "button-class", "button-width-size", "text-class", "inverted-tooltip", "show-tooltip", "tooltip-text", "tooltip-delay", "onClick"]),
277
+ }, 8, ["active", "aria-label", "button-class", "button-width-size", "danger", "disabled", "inverted-tooltip", "show-tooltip", "text-class", "tooltip-delay", "tooltip-text", "onClick"]),
278
278
  $options.showArrowButton ? (openBlock(), createBlock(_component_dt_dropdown, mergeProps({
279
279
  key: 0,
280
280
  id: $props.id,
281
+ "fallback-placements": $props.fallbackPlacements,
281
282
  open: $data.open,
282
283
  placement: $props.placement,
283
- "fallback-placements": $props.fallbackPlacements,
284
- padding: "none",
285
- class: "dt-recipe--callbar-button-with-dropdown--dropdown-wrapper"
284
+ class: "dt-recipe--callbar-button-with-dropdown--dropdown-wrapper",
285
+ padding: "none"
286
286
  }, _ctx.$attrs, { onOpened: $options.onModalIsOpened }), {
287
287
  anchor: withCtx(() => [
288
288
  createVNode(_component_dt_button, {
289
- circle: "",
290
- importance: "clear",
291
- size: "lg",
289
+ active: $data.open,
290
+ "aria-label": $props.arrowButtonLabel,
292
291
  class: normalizeClass([
293
292
  "dt-recipe--callbar-button-with-dropdown--arrow",
294
293
  { "dt-recipe--callbar-button-with-dropdown--arrow--large": !$options.isCompactMode }
295
294
  ]),
295
+ circle: "",
296
+ importance: "clear",
297
+ size: "lg",
296
298
  width: "2rem",
297
- "aria-label": $props.arrowButtonLabel,
298
- active: $data.open,
299
299
  onClick: $options.arrowClick
300
300
  }, {
301
301
  icon: withCtx(() => [
@@ -305,13 +305,13 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
305
305
  })
306
306
  ]),
307
307
  _: 1
308
- }, 8, ["class", "aria-label", "active", "onClick"])
308
+ }, 8, ["active", "aria-label", "class", "onClick"])
309
309
  ]),
310
- list: withCtx(() => [
311
- renderSlot(_ctx.$slots, "list")
310
+ list: withCtx(({ close }) => [
311
+ renderSlot(_ctx.$slots, "list", { close })
312
312
  ]),
313
313
  _: 3
314
- }, 16, ["id", "open", "placement", "fallback-placements", "onOpened"])) : createCommentVNode("", true)
314
+ }, 16, ["id", "fallback-placements", "open", "placement", "onOpened"])) : createCommentVNode("", true)
315
315
  ]);
316
316
  }
317
317
  const callbar_button_with_dropdown = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
@@ -1 +1 @@
1
- {"version":3,"file":"callbar_button_with_dropdown.vue.js","sources":["../../../../recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue"],"sourcesContent":["<template>\n <div\n class=\"dt-recipe--callbar-button-with-dropdown\"\n >\n <dt-recipe-callbar-button\n :aria-label=\"ariaLabel\"\n :disabled=\"disabled\"\n :active=\"active\"\n :danger=\"danger\"\n :button-class=\"buttonClass\"\n :button-width-size=\"buttonWidthSize\"\n :text-class=\"textClass\"\n :inverted-tooltip=\"invertedTooltip\"\n :show-tooltip=\"showTooltip\"\n :tooltip-text=\"tooltipText\"\n :tooltip-delay=\"tooltipDelay\"\n class=\"dt-recipe--callbar-button-with-dropdown--main-button\"\n @click=\"buttonClick\"\n >\n <template #icon>\n <slot name=\"icon\" />\n </template>\n <template #tooltip>\n <slot name=\"tooltip\" />\n </template>\n <slot />\n </dt-recipe-callbar-button>\n <dt-dropdown\n v-if=\"showArrowButton\"\n :id=\"id\"\n :open=\"open\"\n :placement=\"placement\"\n :fallback-placements=\"fallbackPlacements\"\n padding=\"none\"\n class=\"dt-recipe--callbar-button-with-dropdown--dropdown-wrapper\"\n v-bind=\"$attrs\"\n @opened=\"onModalIsOpened\"\n >\n <template #anchor>\n <dt-button\n circle\n importance=\"clear\"\n size=\"lg\"\n :class=\"['dt-recipe--callbar-button-with-dropdown--arrow',\n { 'dt-recipe--callbar-button-with-dropdown--arrow--large': !isCompactMode }]\"\n width=\"2rem\"\n :aria-label=\"arrowButtonLabel\"\n :active=\"open\"\n @click=\"arrowClick\"\n >\n <template #icon>\n <dt-icon-chevron-up\n class=\"dt-recipe--callbar-button-with-dropdown--arrow__icon\"\n size=\"200\"\n />\n </template>\n </dt-button>\n </template>\n <template #list>\n <slot name=\"list\" />\n </template>\n </dt-dropdown>\n </div>\n</template>\n\n<script>\nimport { DtButton } from '@/components/button';\nimport { DtDropdown } from '@/components/dropdown';\nimport { DtIconChevronUp } from '@dialpad/dialtone-icons/vue3';\nimport { DtRecipeCallbarButton, CALLBAR_BUTTON_VALID_WIDTH_SIZE } from '../callbar_button';\nimport utils, { warnIfUnmounted } from '@/common/utils';\n\nexport default {\n name: 'DtRecipeCallbarButtonWithDropdown',\n\n components: { DtRecipeCallbarButton, DtDropdown, DtButton, DtIconChevronUp },\n\n /* inheritAttrs: false is generally an option we want to set on library\n components. This allows any attributes passed in that are not recognized\n as props to be passed down to another element or component using v-bind:$attrs\n more info: https://vuejs.org/v2/api/#inheritAttrs */\n inheritAttrs: false,\n\n props: {\n /**\n * Id for the item.\n */\n id: {\n type: String,\n default () {\n return utils.getUniqueString();\n },\n },\n\n /**\n * Aria label for the button. If empty, it takes its value from the default slot.\n */\n ariaLabel: {\n type: String,\n default: null,\n validator: (label) => {\n return label || this.$slots.default;\n },\n },\n\n /**\n * Aria label for the arrow. Cannot be empty.\n */\n arrowButtonLabel: {\n type: String,\n required: true,\n validator: (label) => {\n return !!label;\n },\n },\n\n /**\n * The direction the dropdown displays relative to the anchor.\n * @values 'bottom', 'bottom-start', 'bottom-end',\n * 'right', 'right-start', 'right-end',\n * 'left', 'left-start', 'left-end',\n * 'top', 'top-start', 'top-end'\n * @default 'top'\n */\n placement: {\n type: String,\n default: 'top',\n },\n\n /**\n * If the dropdown does not fit in the direction described by \"placement\",\n * it will attempt to change it's direction to the \"fallbackPlacements\".\n *\n * @values top, top-start, top-end,\n * right, right-start, right-end,\n * left, left-start, left-end,\n * bottom, bottom-start, bottom-end,\n * auto, auto-start, auto-end\n * */\n fallbackPlacements: {\n type: Array,\n default: () => {\n return ['auto'];\n },\n },\n\n /**\n * Determines whether the button should be disabled\n * default is false.\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Forces showing the arrow, even if the button is disabled.\n * default is false\n * @values true, false\n */\n forceShowArrow: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines whether the button should have active styling\n * default is false.\n * @values true, false\n * @see https://dialtone.dialpad.com/components/button/\n */\n active: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines whether the button should have danger styling\n * default is false.\n * @values true, false\n * @see https://dialtone.dialpad.com/components/button/\n */\n danger: {\n type: Boolean,\n default: false,\n },\n\n /**\n * We need this declaration because of how Vue3 informs the component about a listener.\n * Spoiler alert: it doesn't.\n * Vue3 intends to work as a real pub-sub, meaning the publisher has not a clue of who the subscribers are.\n * This makes it impossible from the regular declaration (emits: ['click']) to check whether\n * we actually have a click handler or not.\n * We're hacking it by adding an onClick prop: https://github.com/vuejs/core/issues/5220\n */\n /* eslint-disable-next-line vue/no-unused-properties */\n onClick: {\n type: Function,\n default: null,\n },\n\n /**\n * Additional class name for the button wrapper element.\n */\n buttonClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional class name for the button text.\n */\n textClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /*\n * Width size. Valid values are: 'xl', 'lg', 'md' and 'sm'.\n */\n buttonWidthSize: {\n type: String,\n default: 'xl',\n validator: size => CALLBAR_BUTTON_VALID_WIDTH_SIZE.includes(size),\n },\n\n /**\n * Whether the tooltip has an inverted background color.\n * @values true, false\n */\n invertedTooltip: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Use this if you would like to manually override the logic for when the tooltip shows.\n * Otherwise it will just show on hover/focus.\n * @values null, true, false\n */\n showTooltip: {\n type: Boolean,\n default: null,\n },\n\n /**\n * The message that displays in the tooltip. This will be overridden by the tooltip slot.\n */\n tooltipText: {\n type: String,\n default: undefined,\n },\n\n /**\n * Whether there is a delay before the tooltip shows on hover/focus.\n * @values true, false\n */\n tooltipDelay: {\n type: Boolean,\n default: undefined,\n },\n },\n\n emits: [\n /**\n * Emitted when the arrow is clicked\n */\n 'arrow-click',\n\n /**\n * Native click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n\n /**\n * Emitted when modal dropdown is opened or closed.\n */\n 'opened',\n ],\n\n data () {\n return {\n open: false,\n };\n },\n\n computed: {\n showArrowButton () {\n return this.forceShowArrow || !this.disabled;\n },\n\n isCompactMode () {\n return this.buttonWidthSize === 'sm' || this.buttonWidthSize === 'md';\n },\n\n showDropdown () {\n if (!this.openDropdown || this.open) {\n this.syncOpenState();\n return false;\n }\n\n return this.toggleOpen();\n },\n },\n\n mounted () {\n warnIfUnmounted(this.$el, this.$options.name);\n },\n\n methods: {\n arrowClick (ev) {\n this.$emit('arrow-click', ev);\n return this.toggleOpen();\n },\n\n toggleOpen () {\n return (this.open = !this.open);\n },\n\n syncOpenState () {\n this.open = this.openDropdown;\n },\n\n buttonClick (ev) {\n // If no listener for the click event, the button click opens the dropdown\n // the same as if the arrow was clicked.\n if (!this.$props.onClick) {\n this.arrowClick(ev);\n } else {\n this.$emit('click', ev);\n }\n },\n\n onModalIsOpened (isOpened) {\n this.open = isOpened;\n this.$emit('opened', isOpened);\n },\n },\n\n};\n</script>\n"],"names":["this","_openBlock","_createElementBlock","_createVNode","_renderSlot","_withCtx","_createBlock","_mergeProps","_normalizeClass","_createCommentVNode"],"mappings":"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"}
1
+ {"version":3,"file":"callbar_button_with_dropdown.vue.js","sources":["../../../../recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue"],"sourcesContent":["<template>\n <div\n class=\"dt-recipe--callbar-button-with-dropdown\"\n >\n <dt-recipe-callbar-button\n :active=\"active\"\n :aria-label=\"ariaLabel\"\n :button-class=\"buttonClass\"\n :button-width-size=\"buttonWidthSize\"\n :danger=\"danger\"\n :disabled=\"disabled\"\n :inverted-tooltip=\"invertedTooltip\"\n :show-tooltip=\"showTooltip\"\n :text-class=\"textClass\"\n :tooltip-delay=\"tooltipDelay\"\n :tooltip-text=\"tooltipText\"\n class=\"dt-recipe--callbar-button-with-dropdown--main-button\"\n @click=\"buttonClick\"\n >\n <template #icon>\n <slot name=\"icon\" />\n </template>\n <template #tooltip>\n <slot name=\"tooltip\" />\n </template>\n <slot />\n </dt-recipe-callbar-button>\n <dt-dropdown\n v-if=\"showArrowButton\"\n :id=\"id\"\n :fallback-placements=\"fallbackPlacements\"\n :open=\"open\"\n :placement=\"placement\"\n class=\"dt-recipe--callbar-button-with-dropdown--dropdown-wrapper\"\n padding=\"none\"\n v-bind=\"$attrs\"\n @opened=\"onModalIsOpened\"\n >\n <template #anchor>\n <dt-button\n :active=\"open\"\n :aria-label=\"arrowButtonLabel\"\n :class=\"['dt-recipe--callbar-button-with-dropdown--arrow',\n { 'dt-recipe--callbar-button-with-dropdown--arrow--large': !isCompactMode }]\"\n circle\n importance=\"clear\"\n size=\"lg\"\n width=\"2rem\"\n @click=\"arrowClick\"\n >\n <template #icon>\n <dt-icon-chevron-up\n class=\"dt-recipe--callbar-button-with-dropdown--arrow__icon\"\n size=\"200\"\n />\n </template>\n </dt-button>\n </template>\n <template #list=\"{ close }\">\n <slot\n :close=\"close\"\n name=\"list\"\n />\n </template>\n </dt-dropdown>\n </div>\n</template>\n\n<script>\nimport { DtButton } from '@/components/button';\nimport { DtDropdown } from '@/components/dropdown';\nimport { DtIconChevronUp } from '@dialpad/dialtone-icons/vue3';\nimport { DtRecipeCallbarButton, CALLBAR_BUTTON_VALID_WIDTH_SIZE } from '../callbar_button';\nimport utils, { warnIfUnmounted } from '@/common/utils';\n\nexport default {\n name: 'DtRecipeCallbarButtonWithDropdown',\n\n components: { DtRecipeCallbarButton, DtDropdown, DtButton, DtIconChevronUp },\n\n /* inheritAttrs: false is generally an option we want to set on library\n components. This allows any attributes passed in that are not recognized\n as props to be passed down to another element or component using v-bind:$attrs\n more info: https://vuejs.org/v2/api/#inheritAttrs */\n inheritAttrs: false,\n\n props: {\n /**\n * Id for the item.\n */\n id: {\n type: String,\n default () {\n return utils.getUniqueString();\n },\n },\n\n /**\n * Aria label for the button. If empty, it takes its value from the default slot.\n */\n ariaLabel: {\n type: String,\n default: null,\n validator: (label) => {\n return label || this.$slots.default;\n },\n },\n\n /**\n * Aria label for the arrow. Cannot be empty.\n */\n arrowButtonLabel: {\n type: String,\n required: true,\n validator: (label) => {\n return !!label;\n },\n },\n\n /**\n * The direction the dropdown displays relative to the anchor.\n * @values 'bottom', 'bottom-start', 'bottom-end',\n * 'right', 'right-start', 'right-end',\n * 'left', 'left-start', 'left-end',\n * 'top', 'top-start', 'top-end'\n * @default 'top'\n */\n placement: {\n type: String,\n default: 'top',\n },\n\n /**\n * If the dropdown does not fit in the direction described by \"placement\",\n * it will attempt to change it's direction to the \"fallbackPlacements\".\n *\n * @values top, top-start, top-end,\n * right, right-start, right-end,\n * left, left-start, left-end,\n * bottom, bottom-start, bottom-end,\n * auto, auto-start, auto-end\n * */\n fallbackPlacements: {\n type: Array,\n default: () => {\n return ['auto'];\n },\n },\n\n /**\n * Determines whether the button should be disabled\n * default is false.\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Forces showing the arrow, even if the button is disabled.\n * default is false\n * @values true, false\n */\n forceShowArrow: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines whether the button should have active styling\n * default is false.\n * @values true, false\n * @see https://dialtone.dialpad.com/components/button/\n */\n active: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines whether the button should have danger styling\n * default is false.\n * @values true, false\n * @see https://dialtone.dialpad.com/components/button/\n */\n danger: {\n type: Boolean,\n default: false,\n },\n\n /**\n * We need this declaration because of how Vue3 informs the component about a listener.\n * Spoiler alert: it doesn't.\n * Vue3 intends to work as a real pub-sub, meaning the publisher has not a clue of who the subscribers are.\n * This makes it impossible from the regular declaration (emits: ['click']) to check whether\n * we actually have a click handler or not.\n * We're hacking it by adding an onClick prop: https://github.com/vuejs/core/issues/5220\n */\n /* eslint-disable-next-line vue/no-unused-properties */\n onClick: {\n type: Function,\n default: null,\n },\n\n /**\n * Additional class name for the button wrapper element.\n */\n buttonClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional class name for the button text.\n */\n textClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /*\n * Width size. Valid values are: 'xl', 'lg', 'md' and 'sm'.\n */\n buttonWidthSize: {\n type: String,\n default: 'xl',\n validator: size => CALLBAR_BUTTON_VALID_WIDTH_SIZE.includes(size),\n },\n\n /**\n * Whether the tooltip has an inverted background color.\n * @values true, false\n */\n invertedTooltip: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Use this if you would like to manually override the logic for when the tooltip shows.\n * Otherwise it will just show on hover/focus.\n * @values null, true, false\n */\n showTooltip: {\n type: Boolean,\n default: null,\n },\n\n /**\n * The message that displays in the tooltip. This will be overridden by the tooltip slot.\n */\n tooltipText: {\n type: String,\n default: undefined,\n },\n\n /**\n * Whether there is a delay before the tooltip shows on hover/focus.\n * @values true, false\n */\n tooltipDelay: {\n type: Boolean,\n default: undefined,\n },\n },\n\n emits: [\n /**\n * Emitted when the arrow is clicked\n */\n 'arrow-click',\n\n /**\n * Native click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n\n /**\n * Emitted when modal dropdown is opened or closed.\n */\n 'opened',\n ],\n\n data () {\n return {\n open: false,\n };\n },\n\n computed: {\n showArrowButton () {\n return this.forceShowArrow || !this.disabled;\n },\n\n isCompactMode () {\n return this.buttonWidthSize === 'sm' || this.buttonWidthSize === 'md';\n },\n\n showDropdown () {\n if (!this.openDropdown || this.open) {\n this.syncOpenState();\n return false;\n }\n\n return this.toggleOpen();\n },\n },\n\n mounted () {\n warnIfUnmounted(this.$el, this.$options.name);\n },\n\n methods: {\n arrowClick (ev) {\n this.$emit('arrow-click', ev);\n return this.toggleOpen();\n },\n\n toggleOpen () {\n return (this.open = !this.open);\n },\n\n syncOpenState () {\n this.open = this.openDropdown;\n },\n\n buttonClick (ev) {\n // If no listener for the click event, the button click opens the dropdown\n // the same as if the arrow was clicked.\n if (!this.$props.onClick) {\n this.arrowClick(ev);\n } else {\n this.$emit('click', ev);\n }\n },\n\n onModalIsOpened (isOpened) {\n this.open = isOpened;\n this.$emit('opened', isOpened);\n },\n },\n\n};\n</script>\n"],"names":["this","_openBlock","_createElementBlock","_createVNode","_renderSlot","_withCtx","_createBlock","_mergeProps","_normalizeClass","_createCommentVNode"],"mappings":"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"}
@@ -236,6 +236,13 @@ const _sfc_main = {
236
236
  setLinkTitle: "Add a link",
237
237
  setLinkInputAriaLabel: "Input field to add link"
238
238
  })
239
+ },
240
+ /**
241
+ * Use div tags instead of paragraph tags to show text
242
+ */
243
+ useDivTags: {
244
+ type: Boolean,
245
+ default: false
239
246
  }
240
247
  },
241
248
  emits: [
@@ -764,12 +771,13 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
764
771
  link: true,
765
772
  "output-format": $options.htmlOutputFormat,
766
773
  placeholder: $props.placeholder,
774
+ "use-div-tags": $props.useDivTags,
767
775
  "data-qa": "dt-rich-text-editor"
768
776
  }, _ctx.$attrs, {
769
777
  onBlur: $options.onBlur,
770
778
  onFocus: $options.onFocus,
771
779
  onInput: _cache[3] || (_cache[3] = ($event) => $options.onInput($event))
772
- }), null, 16, ["modelValue", "auto-focus", "editable", "input-aria-label", "input-class", "output-format", "placeholder", "onBlur", "onFocus"])
780
+ }), null, 16, ["modelValue", "auto-focus", "editable", "input-aria-label", "input-class", "output-format", "placeholder", "use-div-tags", "onBlur", "onFocus"])
773
781
  ], 4)
774
782
  ]);
775
783
  }
@@ -1 +1 @@
1
- {"version":3,"file":"editor.vue.cjs","sources":["../../../../recipes/conversation_view/editor/editor.vue"],"sourcesContent":["<template>\n <div\n\n class=\"d-recipe-editor\"\n data-qa=\"dt-recipe-editor\"\n role=\"presentation\"\n @click=\"$refs.richTextEditor.focusEditor()\"\n >\n <!-- Section for the top UI -->\n <dt-stack\n class=\"d-recipe-editor__top-bar\"\n direction=\"row\"\n gap=\"450\"\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 :active=\"$refs.richTextEditor?.editor?.isActive(button.selector)\"\n :aria-label=\"button.tooltipMessage\"\n :data-qa=\"button.dataQA\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"xs\"\n @click=\"button.onClick()\"\n >\n <template #icon>\n <component\n :is=\"button.icon\"\n size=\"200\"\n />\n </template>\n {{ button?.label }}\n </dt-button>\n </template>\n </dt-tooltip>\n <div class=\"d-recipe-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=\"showLinkInput\"\n :show-close-button=\"false\"\n :visually-hidden-close=\"true\"\n :visually-hidden-close-label=\"'Close link input popover'\"\n data-qa=\"dt-recipe-editor-link-input-popover\"\n padding=\"none\"\n placement=\"bottom-start\"\n @click=\"onInputFocus\"\n @opened=\"updateInput\"\n @click.stop=\"onInputFocus\"\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 :active=\"$refs.richTextEditor?.editor?.isActive(linkButton.selector)\"\n :aria-label=\"linkButton.tooltipMessage\"\n :data-qa=\"linkButton.dataQA\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"xs\"\n @click=\"linkButton.onClick()\"\n >\n <template #icon>\n <component\n :is=\"linkButton.icon\"\n size=\"200\"\n />\n </template>\n </dt-button>\n </template>\n </dt-tooltip>\n </template>\n\n <template #content>\n <div class=\"d-recipe-editor__popover-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 :placeholder=\"setLinkPlaceholder\"\n data-qa=\"dt-recipe-editor-link-input\"\n input-wrapper-class=\"d-recipe-editor-link__input-wrapper\"\n @click=\"onInputFocus\"\n @focus=\"onInputFocus\"\n @click.stop=\"onInputFocus\"\n @keydown.enter=\"setLink\"\n />\n </div>\n </template>\n <template #footerContent>\n <dt-stack\n direction=\"row\"\n gap=\"300\"\n class=\"d-recipe-editor__popover-footer\"\n >\n <dt-button\n :aria-label=\"removeLinkButton.ariaLabel\"\n data-qa=\"dt-recipe-editor-remove-link-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"sm\"\n @click=\"removeLink\"\n >\n {{ removeLinkButton.label }}\n </dt-button>\n <dt-button\n :aria-label=\"cancelSetLinkButton.ariaLabel\"\n data-qa=\"dt-recipe-editor-set-link-cancel-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"sm\"\n @click=\"closeLinkInput\"\n >\n {{ cancelSetLinkButton.label }}\n </dt-button>\n <dt-button\n :aria-label=\"confirmSetLinkButton.ariaLabel\"\n data-qa=\"dt-recipe-editor-set-link-confirm-btn\"\n size=\"sm\"\n @click=\"setLink\"\n >\n {{ confirmSetLinkButton.label }}\n </dt-button>\n </dt-stack>\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 :style=\"{ 'max-height': maxHeight }\"\n class=\"d-recipe-editor__content\"\n >\n <dt-rich-text-editor\n ref=\"richTextEditor\"\n v-model=\"internalInputValue\"\n :allow-inline-images=\"true\"\n :allow-line-breaks=\"true\"\n :hide-link-bubble-menu=\"true\"\n :auto-focus=\"autoFocus\"\n :editable=\"editable\"\n :input-aria-label=\"inputAriaLabel\"\n :input-class=\"`d-recipe-editor__content-input ${inputClass}`\"\n :link=\"true\"\n :output-format=\"htmlOutputFormat\"\n :placeholder=\"placeholder\"\n data-qa=\"dt-rich-text-editor\"\n v-bind=\"$attrs\"\n @blur=\"onBlur\"\n @focus=\"onFocus\"\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 { DtButton } from '@/components/button';\nimport { DtPopover } from '@/components/popover';\nimport { DtStack } from '@/components/stack';\nimport { DtInput } from '@/components/input';\nimport { DtTooltip } from '@/components/tooltip';\nimport {\n DtIconAlignCenter,\n DtIconAlignJustify,\n DtIconAlignLeft,\n DtIconAlignRight,\n DtIconBold,\n DtIconCodeBlock,\n DtIconItalic,\n DtIconLightningBolt,\n DtIconLink2,\n DtIconListBullet,\n DtIconListOrdered,\n DtIconQuote,\n DtIconStrikethrough,\n DtIconUnderline,\n} from '@dialpad/dialtone-icons/vue3';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeEditor',\n\n components: {\n DtRichTextEditor,\n DtButton,\n DtPopover,\n DtStack,\n DtInput,\n DtTooltip,\n DtIconLightningBolt,\n DtIconBold,\n DtIconItalic,\n DtIconUnderline,\n DtIconStrikethrough,\n DtIconListBullet,\n DtIconListOrdered,\n DtIconAlignLeft,\n DtIconAlignCenter,\n DtIconAlignRight,\n DtIconAlignJustify,\n DtIconQuote,\n DtIconCodeBlock,\n DtIconLink2,\n },\n\n mixins: [],\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-recipe-editor__link',\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 {\n showBtn: this.showQuickRepliesButton,\n label: 'Quick reply',\n selector: 'quickReplies',\n icon: DtIconLightningBolt,\n dataQA: 'dt-recipe-editor-quick-replies-btn',\n tooltipMessage: 'Quick Reply',\n onClick: this.onQuickRepliesClick,\n },\n ].filter(button => button.showBtn);\n },\n\n textFormatButtons () {\n return [\n {\n showBtn: this.showBoldButton,\n selector: 'bold',\n icon: DtIconBold,\n dataQA: 'dt-recipe-editor-bold-btn',\n tooltipMessage: 'Bold',\n onClick: this.onBoldTextToggle,\n },\n {\n showBtn: this.showItalicsButton,\n selector: 'italic',\n icon: DtIconItalic,\n dataQA: 'dt-recipe-editor-italics-btn',\n tooltipMessage: 'Italics',\n onClick: this.onItalicTextToggle,\n },\n {\n showBtn: this.showUnderlineButton,\n selector: 'underline',\n icon: DtIconUnderline,\n dataQA: 'dt-recipe-editor-underline-btn',\n tooltipMessage: 'Underline',\n onClick: this.onUnderlineTextToggle,\n },\n {\n showBtn: this.showStrikeButton,\n selector: 'strike',\n icon: DtIconStrikethrough,\n dataQA: 'dt-recipe-editor-strike-btn',\n tooltipMessage: 'Strike',\n onClick: this.onStrikethroughTextToggle,\n },\n ].filter(button => button.showBtn);\n },\n\n alignmentButtons () {\n return [\n {\n showBtn: this.showAlignLeftButton,\n selector: { textAlign: 'left' },\n icon: DtIconAlignLeft,\n dataQA: 'dt-recipe-editor-align-left-btn',\n tooltipMessage: 'Align Left',\n onClick: () => this.onTextAlign('left'),\n },\n {\n showBtn: this.showAlignCenterButton,\n selector: { textAlign: 'center' },\n icon: DtIconAlignCenter,\n dataQA: 'dt-recipe-editor-align-center-btn',\n tooltipMessage: 'Align Center',\n onClick: () => this.onTextAlign('center'),\n },\n {\n showBtn: this.showAlignRightButton,\n selector: { textAlign: 'right' },\n icon: DtIconAlignRight,\n dataQA: 'dt-recipe-editor-align-right-btn',\n tooltipMessage: 'Align Right',\n onClick: () => this.onTextAlign('right'),\n },\n {\n showBtn: this.showAlignJustifyButton,\n selector: { textAlign: 'justify' },\n icon: DtIconAlignJustify,\n dataQA: 'dt-recipe-editor-align-justify-btn',\n tooltipMessage: 'Align Justify',\n onClick: () => this.onTextAlign('justify'),\n },\n ].filter(button => button.showBtn);\n },\n\n listButtons () {\n return [\n {\n showBtn: this.showListItemsButton,\n selector: 'bulletList',\n icon: DtIconListBullet,\n dataQA: 'dt-recipe-editor-list-items-btn',\n tooltipMessage: 'Bullet List',\n onClick: this.onBulletListToggle,\n },\n {\n showBtn: this.showOrderedListButton,\n selector: 'orderedList',\n icon: DtIconListOrdered,\n dataQA: 'dt-recipe-editor-ordered-list-items-btn',\n tooltipMessage: 'Ordered List',\n onClick: this.onOrderedListToggle,\n },\n ].filter(button => button.showBtn);\n },\n\n individualButtons () {\n return [\n {\n showBtn: this.showQuoteButton,\n selector: 'blockquote',\n icon: DtIconQuote,\n dataQA: 'dt-recipe-editor-blockquote-btn',\n tooltipMessage: 'Quote',\n onClick: this.onBlockquoteToggle,\n },\n {\n showBtn: this.showCodeBlockButton,\n selector: 'codeBlock',\n icon: DtIconCodeBlock,\n dataQA: 'dt-recipe-editor-code-block-btn',\n tooltipMessage: 'Code',\n onClick: this.onCodeBlockToggle,\n },\n ].filter(button => button.showBtn);\n },\n\n linkButton () {\n return {\n showBtn: this.showAddLink.showAddLinkButton,\n selector: 'link',\n icon: DtIconLink2,\n dataQA: 'dt-recipe-editor-add-link-btn',\n tooltipMessage: 'Link',\n onClick: this.openLinkInput,\n };\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 insertInMessageBody (messageContent) {\n this.$refs.richTextEditor?.editor.chain().focus().insertContent(messageContent).run();\n },\n\n setCursorPosition (position = null) {\n this.$refs.richTextEditor?.editor.chain().focus(position).run();\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"],"names":["DtRichTextEditor","DtButton","DtPopover","DtStack","DtInput","DtTooltip","DtIconLightningBolt","DtIconBold","DtIconItalic","DtIconUnderline","DtIconStrikethrough","DtIconListBullet","DtIconListOrdered","DtIconAlignLeft","DtIconAlignCenter","DtIconAlignRight","DtIconAlignJustify","DtIconQuote","DtIconCodeBlock","DtIconLink2","RICH_TEXT_EDITOR_AUTOFOCUS_TYPES","RICH_TEXT_EDITOR_OUTPUT_FORMATS","button","editor","EDITOR_SUPPORTED_LINK_PROTOCOLS","EDITOR_DEFAULT_LINK_PREFIX","_createElementVNode","_createElementBlock","_createVNode","_withCtx","_openBlock","_Fragment","_renderList","_createBlock","_resolveDynamicComponent","_createTextVNode","_toDisplayString","_withModifiers","_createCommentVNode","_withKeys","_normalizeStyle","_mergeProps"],"mappings":";;;;;;;;;;;;;AAqNA,MAAK,YAAU;AAAA,EACb,cAAc,EAAE,MAAM,EAAG;AAAA,EACzB,MAAM;AAAA,EAEN,YAAY;AAAA,IACV,kBAAAA,iBAAgB;AAAA,IAChB,UAAAC,OAAQ;AAAA,IACR,WAAAC,QAAS;AAAA,IACT,SAAAC,MAAO;AAAA,IACP,SAAAC,MAAO;AAAA,IACP,WAAAC,QAAS;AAAA,IACT,qBAAAC,KAAmB;AAAA,gBACnBC,KAAU;AAAA,kBACVC,KAAY;AAAA,IACZ,iBAAAC,KAAe;AAAA,IACf,qBAAAC,KAAmB;AAAA,IACnB,kBAAAC,KAAgB;AAAA,IAChB,mBAAAC,KAAiB;AAAA,IACjB,iBAAAC,KAAe;AAAA,IACf,mBAAAC,KAAiB;AAAA,IACjB,kBAAAC,KAAgB;AAAA,IAChB,oBAAAC,KAAkB;AAAA,iBAClBC,KAAW;AAAA,IACX,iBAAAC,KAAe;AAAA,iBACfC,KAAW;AAAA,EACZ;AAAA,EAED,QAAQ,CAAE;AAAA,EAEV,cAAc;AAAA,EAEd,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,IAKL,OAAO;AAAA,MACL,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAaD,WAAW;AAAA,MACT,MAAM,CAAC,SAAS,QAAQ,MAAM;AAAA,MAC9B,SAAS;AAAA,MACT,UAAW,WAAW;AACpB,YAAI,OAAO,cAAc,UAAU;AACjC,iBAAOC,2BAAgC,iCAAC,SAAS,SAAS;AAAA,QAC5D;AACA,eAAO;AAAA,MACR;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,sBAAsB;AAAA,MACpB,MAAM;AAAA,MACN,SAAS,OAAO,EAAE,OAAO,WAAW,WAAW,mBAAmB;AAAA,IACnE;AAAA;AAAA;AAAA;AAAA,IAKD,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,SAAS,OAAO,EAAE,OAAO,UAAU,WAAW,cAAc;AAAA,IAC7D;AAAA;AAAA;AAAA;AAAA,IAKD,qBAAqB;AAAA,MACnB,MAAM;AAAA,MACN,SAAS,OAAO,EAAE,OAAO,UAAU,WAAW,kBAAkB;AAAA,IACjE;AAAA;AAAA;AAAA;AAAA,IAKD,oBAAoB;AAAA,MAClB,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,mBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,qBAAqB;AAAA,MACnB,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,qBAAqB;AAAA,MACnB,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,uBAAuB;AAAA,MACrB,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,qBAAqB;AAAA,MACnB,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,uBAAuB;AAAA,MACrB,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,sBAAsB;AAAA,MACpB,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,wBAAwB;AAAA,MACtB,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,qBAAqB;AAAA,MACnB,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,wBAAwB;AAAA,MACtB,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS,OAAO;AAAA,QACd,mBAAmB;AAAA,QACnB,cAAc;AAAA,QACd,uBAAuB;AAAA,MACzB;AAAA,IACD;AAAA,EACF;AAAA,EAED,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAML;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA;AAAA,EACD;AAAA,EAED,OAAQ;AACN,WAAO;AAAA,MACL,oBAAoB,KAAK;AAAA;AAAA,MACzB,UAAU;AAAA,MAEV,aAAa;AAAA,QACX,OAAO;AAAA,MACR;AAAA,MAED,eAAe;AAAA,MACf,WAAW;AAAA;EAEd;AAAA,EAED,UAAU;AAAA,IACR,cAAe;AACb,aAAO,KAAK,mBAAmB;AAAA,IAChC;AAAA,IAED,mBAAoB;AAClB,aAAOC,2BAAAA,gCAAgC,CAAC;AAAA,IACzC;AAAA,IAED,2BAA4B;AAC1B,aAAO,KAAK,kBAAkB,KAAK,qBAAqB,KAAK,oBAAoB,KAAK;AAAA,IACvF;AAAA,IAED,0BAA2B;AACzB,aAAO,KAAK,uBAAuB,KAAK,yBACtC,KAAK,wBAAwB,KAAK;AAAA,IACrC;AAAA,IAED,qBAAsB;AACpB,aAAO,KAAK,uBAAuB,KAAK;AAAA,IACzC;AAAA,IAED,eAAgB;AACd,YAAM,yBAAyB,KAAK,kBAAkB,IAAI,iBAAe;AAAA,QACvE,KAAK,WAAW;AAAA,QAChB,aAAa,CAAC,UAAU;AAAA,MACzB,EAAC;AACF,aAAO;AAAA,QACL,EAAE,KAAK,OAAO,aAAa,KAAK,WAAY;AAAA,QAC5C,EAAE,KAAK,UAAU,aAAa,KAAK,kBAAmB;AAAA,QACtD,EAAE,KAAK,aAAa,aAAa,KAAK,iBAAkB;AAAA,QACxD,EAAE,KAAK,QAAQ,aAAa,KAAK,YAAa;AAAA,QAC9C,GAAG;AAAA,MACL,EAAE,OAAO,qBAAmB,gBAAgB,YAAY,SAAS,CAAC;AAAA,IACnE;AAAA,IAED,aAAc;AACZ,aAAO;AAAA,QACL;AAAA,UACE,SAAS,KAAK;AAAA,UACd,OAAO;AAAA,UACP,UAAU;AAAA,UACV,MAAMf,KAAmB;AAAA,UACzB,QAAQ;AAAA,UACR,gBAAgB;AAAA,UAChB,SAAS,KAAK;AAAA,QACf;AAAA,MACF,EAAC,OAAO,CAAAgB,YAAUA,QAAO,OAAO;AAAA,IAClC;AAAA,IAED,oBAAqB;AACnB,aAAO;AAAA,QACL;AAAA,UACE,SAAS,KAAK;AAAA,UACd,UAAU;AAAA,UACV,MAAMf,KAAU;AAAA,UAChB,QAAQ;AAAA,UACR,gBAAgB;AAAA,UAChB,SAAS,KAAK;AAAA,QACf;AAAA,QACD;AAAA,UACE,SAAS,KAAK;AAAA,UACd,UAAU;AAAA,UACV,MAAMC,KAAY;AAAA,UAClB,QAAQ;AAAA,UACR,gBAAgB;AAAA,UAChB,SAAS,KAAK;AAAA,QACf;AAAA,QACD;AAAA,UACE,SAAS,KAAK;AAAA,UACd,UAAU;AAAA,UACV,MAAMC,KAAe;AAAA,UACrB,QAAQ;AAAA,UACR,gBAAgB;AAAA,UAChB,SAAS,KAAK;AAAA,QACf;AAAA,QACD;AAAA,UACE,SAAS,KAAK;AAAA,UACd,UAAU;AAAA,UACV,MAAMC,KAAmB;AAAA,UACzB,QAAQ;AAAA,UACR,gBAAgB;AAAA,UAChB,SAAS,KAAK;AAAA,QACf;AAAA,MACF,EAAC,OAAO,CAAAY,YAAUA,QAAO,OAAO;AAAA,IAClC;AAAA,IAED,mBAAoB;AAClB,aAAO;AAAA,QACL;AAAA,UACE,SAAS,KAAK;AAAA,UACd,UAAU,EAAE,WAAW,OAAQ;AAAA,UAC/B,MAAMT,KAAe;AAAA,UACrB,QAAQ;AAAA,UACR,gBAAgB;AAAA,UAChB,SAAS,MAAM,KAAK,YAAY,MAAM;AAAA,QACvC;AAAA,QACD;AAAA,UACE,SAAS,KAAK;AAAA,UACd,UAAU,EAAE,WAAW,SAAU;AAAA,UACjC,MAAMC,KAAiB;AAAA,UACvB,QAAQ;AAAA,UACR,gBAAgB;AAAA,UAChB,SAAS,MAAM,KAAK,YAAY,QAAQ;AAAA,QACzC;AAAA,QACD;AAAA,UACE,SAAS,KAAK;AAAA,UACd,UAAU,EAAE,WAAW,QAAS;AAAA,UAChC,MAAMC,KAAgB;AAAA,UACtB,QAAQ;AAAA,UACR,gBAAgB;AAAA,UAChB,SAAS,MAAM,KAAK,YAAY,OAAO;AAAA,QACxC;AAAA,QACD;AAAA,UACE,SAAS,KAAK;AAAA,UACd,UAAU,EAAE,WAAW,UAAW;AAAA,UAClC,MAAMC,KAAkB;AAAA,UACxB,QAAQ;AAAA,UACR,gBAAgB;AAAA,UAChB,SAAS,MAAM,KAAK,YAAY,SAAS;AAAA,QAC1C;AAAA,MACF,EAAC,OAAO,CAAAM,YAAUA,QAAO,OAAO;AAAA,IAClC;AAAA,IAED,cAAe;AACb,aAAO;AAAA,QACL;AAAA,UACE,SAAS,KAAK;AAAA,UACd,UAAU;AAAA,UACV,MAAMX,KAAgB;AAAA,UACtB,QAAQ;AAAA,UACR,gBAAgB;AAAA,UAChB,SAAS,KAAK;AAAA,QACf;AAAA,QACD;AAAA,UACE,SAAS,KAAK;AAAA,UACd,UAAU;AAAA,UACV,MAAMC,KAAiB;AAAA,UACvB,QAAQ;AAAA,UACR,gBAAgB;AAAA,UAChB,SAAS,KAAK;AAAA,QACf;AAAA,MACF,EAAC,OAAO,CAAAU,YAAUA,QAAO,OAAO;AAAA,IAClC;AAAA,IAED,oBAAqB;AACnB,aAAO;AAAA,QACL;AAAA,UACE,SAAS,KAAK;AAAA,UACd,UAAU;AAAA,UACV,MAAML,KAAW;AAAA,UACjB,QAAQ;AAAA,UACR,gBAAgB;AAAA,UAChB,SAAS,KAAK;AAAA,QACf;AAAA,QACD;AAAA,UACE,SAAS,KAAK;AAAA,UACd,UAAU;AAAA,UACV,MAAMC,KAAe;AAAA,UACrB,QAAQ;AAAA,UACR,gBAAgB;AAAA,UAChB,SAAS,KAAK;AAAA,QACf;AAAA,MACF,EAAC,OAAO,CAAAI,YAAUA,QAAO,OAAO;AAAA,IAClC;AAAA,IAED,aAAc;AACZ,aAAO;AAAA,QACL,SAAS,KAAK,YAAY;AAAA,QAC1B,UAAU;AAAA,QACV,MAAMH,KAAW;AAAA,QACjB,QAAQ;AAAA,QACR,gBAAgB;AAAA,QAChB,SAAS,KAAK;AAAA;IAEjB;AAAA,EACF;AAAA,EAED,OAAO;AAAA,IACL,MAAO,UAAU;AACf,WAAK,qBAAqB;AAAA,IAC3B;AAAA,EACF;AAAA,EAED,SAAS;AAAA,IACP,aAAc,OAAO;AACnB,qCAAO;AAAA,IACR;AAAA,IAED,aAAc;;AACZ,yCAAK,MAAM,mBAAX,mBAA2B,WAA3B,mBAAmC,YAAnC,mBAA4C,YAA5C,mBAAqD,gBAArD,mBAAkE;AAClE,WAAK,eAAc;AAAA,IACpB;AAAA,IAED,QAAS,OAAO;;AACd,YAAMI,WAAS,UAAK,MAAM,mBAAX,mBAA2B;AAC1C,qCAAO;AACP,qCAAO;AAEP,UAAI,CAAC,KAAK,WAAW;AAGnB,aAAK,WAAU;AACf;AAAA,MACF;AAGA,YAAM,SAASC,iDAAgC,KAAK,iBAAe,YAAY,KAAK,KAAK,SAAS,CAAC;AAEnG,UAAI,CAAC,QAAQ;AAEX,aAAK,YAAY,GAAGC,iBAAAA,0BAA0B,GAAG,KAAK,SAAS;AAAA,MACjE;AAEA,YAAM,aAAY,WAAAF,WAAA,gBAAAA,QAAQ,SAAR,mBAAc,UAAd,mBAAqB;AAEvC,UAAI,UAAU,WAAW,UAAU,MAAM;AAIvC,QAAAA,QACG,MAAM,EACN,MAAM,EACN;AAAA,UACC,UAAU;AAAA,UACZ,aAAa,KAAK,YAAY,KAAK,UAAU,KAAK,SAAS,IAAI,KAAK,SAAS;AAAA,QAC7E,EACC;aACE;AAEL,QAAAA,QACG,MAAM,EACN,MAAM,EACN,gBAAgB,MAAM,EACtB,QAAQ,EAAE,MAAM,KAAK,WAAW,OAAO,KAAK,YAAY,OAAO,EAC/D;MACL;AAEA,WAAK,eAAc;AAAA,IACpB;AAAA,IAED,gBAAiB;AACf,WAAK,gBAAgB;AAAA,IACtB;AAAA,IAED,YAAa,aAAa;;AACxB,UAAI,CAAC,aAAa;AAChB,eAAO,KAAK;MACd;AACA,WAAK,aAAY,sBAAK,MAAM,mBAAX,mBAA2B,WAA3B,mBAAmC,cAAc,YAAjD,mBAA0D;AAAA,IAC5E;AAAA,IAED,iBAAkB;;AAChB,WAAK,gBAAgB;AACrB,WAAK,YAAY;AACjB,iBAAK,MAAM,eAAe,WAA1B,mBAAkC,QAAQ;AAAA,IAC3C;AAAA,IAED,mBAAoB;;AAClB,uBAAK,MAAM,mBAAX,mBAA2B,WAA3B,mBAAmC,QAAQ,QAAQ,aAAa;AAAA,IACjE;AAAA,IAED,qBAAsB;;AACpB,iBAAK,MAAM,mBAAX,mBAA2B,OAAO,QAAQ,QAAQ,eAAe;AAAA,IAClE;AAAA,IAED,wBAAyB;;AACvB,iBAAK,MAAM,mBAAX,mBAA2B,OAAO,QAAQ,QAAQ,kBAAkB;AAAA,IACrE;AAAA,IAED,4BAA6B;;AAC3B,iBAAK,MAAM,mBAAX,mBAA2B,OAAO,QAAQ,QAAQ,eAAe;AAAA,IAClE;AAAA,IAED,YAAa,WAAW;;AACtB,WAAI,gBAAK,MAAM,mBAAX,mBAA2B,WAA3B,mBAAmC,SAAS,EAAE,WAAW,UAAU,IAAI;AAEzE,gBAAO,UAAK,MAAM,mBAAX,mBAA2B,OAAO,QAAQ,QAAQ,iBAAiB;AAAA,MAC5E;AACA,iBAAK,MAAM,mBAAX,mBAA2B,OAAO,QAAQ,QAAQ,aAAa,WAAW;AAAA,IAC3E;AAAA,IAED,qBAAsB;;AACpB,iBAAK,MAAM,mBAAX,mBAA2B,OAAO,QAAQ,QAAQ,mBAAmB;AAAA,IACtE;AAAA,IAED,sBAAuB;;AACrB,iBAAK,MAAM,mBAAX,mBAA2B,OAAO,QAAQ,QAAQ,oBAAoB;AAAA,IACvE;AAAA,IAED,oBAAqB;;AACnB,iBAAK,MAAM,mBAAX,mBAA2B,OAAO,QAAQ,QAAQ,kBAAkB;AAAA,IACrE;AAAA,IAED,sBAAuB;AACrB,WAAK,MAAM,qBAAqB;AAAA,IACjC;AAAA,IAED,oBAAqB,gBAAgB;;AACnC,iBAAK,MAAM,mBAAX,mBAA2B,OAAO,QAAQ,QAAQ,cAAc,gBAAgB;AAAA,IACjF;AAAA,IAED,kBAAmB,WAAW,MAAM;;AAClC,iBAAK,MAAM,mBAAX,mBAA2B,OAAO,QAAQ,MAAM,UAAU;AAAA,IAC3D;AAAA,IAED,qBAAsB;;AACpB,iBAAK,MAAM,mBAAX,mBAA2B,OAAO,QAAQ,QAAQ,mBAAmB;AAAA,IACtE;AAAA,IAED,QAAS,OAAO;AACd,WAAK,WAAW;AAChB,WAAK,MAAM,SAAS,KAAK;AAAA,IAC1B;AAAA,IAED,OAAQ,OAAO;AACb,WAAK,WAAW;AAChB,WAAK,MAAM,QAAQ,KAAK;AAAA,IACzB;AAAA,IAED,QAAS,OAAO;AACd,WAAK,MAAM,SAAS,KAAK;AAAA,IAC1B;AAAA,EAEF;AACH;mBAxxBQG,oBAAAA,mBAAqD,OAAA,EAAhD,OAAM,2CAAuC,MAAA,EAAA;AA+CzC,MAAA,aAAA,EAAA,OAAM,mCAAkC;qBA7FzD,KAAA,EAAA;;;;;;;;0BACEC,IAgLM,mBAAA,OAAA;AAAA,IA9KJ,OAAM;AAAA,IACN,WAAQ;AAAA,IACR,MAAK;AAAA,IACJ,SAAO,OAAA,CAAA,MAAA,OAAA,CAAA,IAAA,YAAA,KAAA,MAAM,eAAe,YAAW;AAAA;IAGxCC,IAAAA,YA6IW,qBAAA;AAAA,MA5IT,OAAM;AAAA,MACN,WAAU;AAAA,MACV,KAAI;AAAA;MAZV,SAAAC,IAAA,QAeQ,MAAmC;AAAA,SADrCC,cAAA,IAAA,GAAAH,IAAAA,mBAiCWI,IA/CjB,UAAA,MAAAC,IAAAA,WAe8B,SAAY,cAf1C,CAee,gBAAW;kCADpBC,IAiCW,YAAA,qBAAA;AAAA,YA/BR,KAAK,YAAY;AAAA,YAClB,WAAU;AAAA,YACV,KAAI;AAAA;YAlBZ,SAAAJ,IAAA,QAqBU,MAAyC;AAAA,eAD3CC,cAAA,IAAA,GAAAH,IAAAA,mBAyBaI,oBA7CrBC,IAAAA,WAqB2B,YAAY,aArBvC,CAqBiBV,YAAM;wCADfW,IAyBa,YAAA,uBAAA;AAAA,kBAvBV,KAAG,GAAK,YAAY,GAAG,IAAI,KAAK,UAAUX,QAAO,QAAQ,CAAA;AAAA,kBACzD,SAASA,QAAO;AAAA,kBACjB,WAAU;AAAA;kBAEC,oBACT,MAgBY;;AAAA;AAAA,sBAhBZM,IAAAA,YAgBY,sBAAA;AAAA,wBAfT,SAAQ,gBAAK,MAAC,mBAAN,mBAAsB,WAAtB,mBAA8B,SAASN,QAAO;AAAA,wBACtD,cAAYA,QAAO;AAAA,wBACnB,WAASA,QAAO;AAAA,wBACjB,YAAW;AAAA,wBACX,MAAK;AAAA,wBACL,MAAK;AAAA,wBACJ,SAAK,YAAEA,QAAO;;wBAEJ,kBACT,MAGE;AAAA,4CAHFW,IAGE,YAxClBC,4BAsCuBZ,QAAO,IAAI,GAChB,EAAA,MAAK,OAAK;AAAA;wBAvC5B,SAAAO,IAAA,QAyCyB,MACX;AAAA,0BA1CdM,IAAA,gBAyCyB,MACXC,IAAA,gBAAGd,WAAA,gBAAAA,QAAQ,KAAK,GAAA,CAAA;AAAA;wBA1C9B,GAAA;AAAA;;;kBAAA,GAAA;AAAA;;cA8CQ;AAAA;YA9CR,GAAA;AAAA;;QAiDc,SAAA,WAAW,4BADnBW,IAqGW,YAAA,qBAAA;AAAA,UArJjB,KAAA;AAAA,UAkDQ,WAAU;AAAA,UACV,KAAI;AAAA;UAnDZ,SAAAJ,IAAA,QAqDQ,MA+Fa;AAAA,YA/FbD,IAAAA,YA+Fa,uBAAA;AAAA,cA9FV,MAAM,MAAa;AAAA,cACnB,qBAAmB;AAAA,cACnB,yBAAuB;AAAA,cACvB,+BAA6B;AAAA,cAC9B,WAAQ;AAAA,cACR,SAAQ;AAAA,cACR,WAAU;AAAA,cACT,SAAK;AAAA,gBAAE,SAAY;AAAA,gBA7D9BS,IAAAA,cA+DuB,SAAY,cAAA,CAAA,MAAA,CAAA;AAAA;cADxB,UAAQ,SAAW;AAAA;cAGT,oBACT,MAuBa;AAAA,kCAvBbJ,IAuBa,YAAA,uBAAA;AAAA,kBAtBV,KAAK,SAAU,WAAC;AAAA,kBAChB,SAAS,SAAU,WAAC;AAAA,kBACrB,WAAU;AAAA;kBAEC,oBACT,MAeY;;AAAA;AAAA,sBAfZL,IAAAA,YAeY,sBAAA;AAAA,wBAdT,SAAQ,gBAAK,MAAC,mBAAN,mBAAsB,WAAtB,mBAA8B,SAAS,SAAU,WAAC;AAAA,wBAC1D,cAAY,SAAU,WAAC;AAAA,wBACvB,WAAS,SAAU,WAAC;AAAA,wBACrB,YAAW;AAAA,wBACX,MAAK;AAAA,wBACL,MAAK;AAAA,wBACJ,SAAK,OAAA,CAAA,MAAA,OAAA,CAAA,IAAA,YAAE,SAAU,WAAC,QAAO;AAAA;wBAEf,kBACT,MAGE;AAAA,4CAHFK,gBAlFpBC,IAAAA,wBAmF2B,SAAU,WAAC,IAAI,GACpB,EAAA,MAAK,OAAK;AAAA;wBApFhC,GAAA;AAAA;;;kBAAA,GAAA;AAAA;;cA4FqB,qBACT,MAiBM;AAAA,gBAjBNR,IAAA,mBAiBM,OAjBN,YAiBM;AAAA,kBAfI,OAAW,YAAC,aAAa,SAAM,KADvCI,cAAA,GAAAH,uBAIO,QAlGrB,YAAAS,oBAiGmB,OAAW,YAAC,YAAY,GAAA,CAAA,KAjG3CE,IAAA,mBAAA,IAAA,IAAA;AAAA,kBAmGcV,IAAAA,YAUE,qBAAA;AAAA,oBA7GhB,YAoGyB,MAAS;AAAA,oBApGlC,uBAAA,OAAA,CAAA,MAAA,OAAA,CAAA,IAAA,YAoGyB,MAAS,YAAA;AAAA,oBACjB,oBAAkB,OAAW,YAAC;AAAA,oBAC9B,aAAa,OAAkB;AAAA,oBAChC,WAAQ;AAAA,oBACR,uBAAoB;AAAA,oBACnB,SAAK;AAAA,sBAAE,SAAY;AAAA,sBAzGpCS,IAAAA,cA2G6B,SAAY,cAAA,CAAA,MAAA,CAAA;AAAA;oBADxB,SAAO,SAAY;AAAA,oBAEnB,WA5GjBE,IAAAA,SA4GgC,SAAO,SAAA,CAAA,OAAA,CAAA;AAAA;;;cAIlB,2BACT,MAiCW;AAAA,gBAjCXX,IAAAA,YAiCW,qBAAA;AAAA,kBAhCT,WAAU;AAAA,kBACV,KAAI;AAAA,kBACJ,OAAM;AAAA;kBApHpB,SAAAC,IAAA,QAsHc,MASY;AAAA,oBATZD,IAAAA,YASY,sBAAA;AAAA,sBART,cAAY,OAAgB,iBAAC;AAAA,sBAC9B,WAAQ;AAAA,sBACR,YAAW;AAAA,sBACX,MAAK;AAAA,sBACL,MAAK;AAAA,sBACJ,SAAO,SAAU;AAAA;sBA5HlC,SAAAC,IAAA,QA8HgB,MAA4B;AAAA,wBA9H5CM,IA8HmB,gBAAAC,IAAA,gBAAA,OAAA,iBAAiB,KAAK,GAAA,CAAA;AAAA;sBA9HzC,GAAA;AAAA;oBAgIcR,IAAAA,YASY,sBAAA;AAAA,sBART,cAAY,OAAmB,oBAAC;AAAA,sBACjC,WAAQ;AAAA,sBACR,YAAW;AAAA,sBACX,MAAK;AAAA,sBACL,MAAK;AAAA,sBACJ,SAAO,SAAc;AAAA;sBAtItC,SAAAC,IAAA,QAwIgB,MAA+B;AAAA,wBAxI/CM,IAwImB,gBAAAC,IAAA,gBAAA,OAAA,oBAAoB,KAAK,GAAA,CAAA;AAAA;sBAxI5C,GAAA;AAAA;oBA0IcR,IAAAA,YAOY,sBAAA;AAAA,sBANT,cAAY,OAAoB,qBAAC;AAAA,sBAClC,WAAQ;AAAA,sBACR,MAAK;AAAA,sBACJ,SAAO,SAAO;AAAA;sBA9I/B,SAAAC,IAAA,QAgJgB,MAAgC;AAAA,wBAhJhDM,IAgJmB,gBAAAC,IAAA,gBAAA,OAAA,qBAAqB,KAAK,GAAA,CAAA;AAAA;sBAhJ7C,GAAA;AAAA;;kBAAA,GAAA;AAAA;;cAAA,GAAA;AAAA;;UAAA,GAAA;AAAA,cAAAE,IAAA,mBAAA,IAAA,IAAA;AAAA;MAAA,GAAA;AAAA;IAyJIZ,IAAAA,mBAuBM,OAAA;AAAA,MAtBH,OA1JPc,IAAAA,+BA0J8B,OAAS,UAAA,CAAA;AAAA,MACjC,OAAM;AAAA;MAENZ,IAAA,YAkBE,gCAlBFa,eAkBE;AAAA,QAjBA,KAAI;AAAA,QA9JZ,YA+JiB,MAAkB;AAAA,QA/JnC,uBAAA,OAAA,CAAA,MAAA,OAAA,CAAA,IAAA,YA+JiB,MAAkB,qBAAA;AAAA,QAC1B,uBAAqB;AAAA,QACrB,qBAAmB;AAAA,QACnB,yBAAuB;AAAA,QACvB,cAAY,OAAS;AAAA,QACrB,UAAU,OAAQ;AAAA,QAClB,oBAAkB,OAAc;AAAA,QAChC,iDAA+C,OAAU,UAAA;AAAA,QACzD,MAAM;AAAA,QACN,iBAAe,SAAgB;AAAA,QAC/B,aAAa,OAAW;AAAA,QACzB,WAAQ;AAAA,SACA,KAAM,QAAA;AAAA,QACb,QAAM,SAAM;AAAA,QACZ,SAAO,SAAO;AAAA,QACd,SAAK,OAAA,CAAA,MAAA,OAAA,CAAA,IAAA,YAAE,SAAO,QAAC,MAAM;AAAA;;;;;;"}
1
+ {"version":3,"file":"editor.vue.cjs","sources":["../../../../recipes/conversation_view/editor/editor.vue"],"sourcesContent":["<template>\n <div\n\n class=\"d-recipe-editor\"\n data-qa=\"dt-recipe-editor\"\n role=\"presentation\"\n @click=\"$refs.richTextEditor.focusEditor()\"\n >\n <!-- Section for the top UI -->\n <dt-stack\n class=\"d-recipe-editor__top-bar\"\n direction=\"row\"\n gap=\"450\"\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 :active=\"$refs.richTextEditor?.editor?.isActive(button.selector)\"\n :aria-label=\"button.tooltipMessage\"\n :data-qa=\"button.dataQA\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"xs\"\n @click=\"button.onClick()\"\n >\n <template #icon>\n <component\n :is=\"button.icon\"\n size=\"200\"\n />\n </template>\n {{ button?.label }}\n </dt-button>\n </template>\n </dt-tooltip>\n <div class=\"d-recipe-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=\"showLinkInput\"\n :show-close-button=\"false\"\n :visually-hidden-close=\"true\"\n :visually-hidden-close-label=\"'Close link input popover'\"\n data-qa=\"dt-recipe-editor-link-input-popover\"\n padding=\"none\"\n placement=\"bottom-start\"\n @click=\"onInputFocus\"\n @opened=\"updateInput\"\n @click.stop=\"onInputFocus\"\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 :active=\"$refs.richTextEditor?.editor?.isActive(linkButton.selector)\"\n :aria-label=\"linkButton.tooltipMessage\"\n :data-qa=\"linkButton.dataQA\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"xs\"\n @click=\"linkButton.onClick()\"\n >\n <template #icon>\n <component\n :is=\"linkButton.icon\"\n size=\"200\"\n />\n </template>\n </dt-button>\n </template>\n </dt-tooltip>\n </template>\n\n <template #content>\n <div class=\"d-recipe-editor__popover-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 :placeholder=\"setLinkPlaceholder\"\n data-qa=\"dt-recipe-editor-link-input\"\n input-wrapper-class=\"d-recipe-editor-link__input-wrapper\"\n @click=\"onInputFocus\"\n @focus=\"onInputFocus\"\n @click.stop=\"onInputFocus\"\n @keydown.enter=\"setLink\"\n />\n </div>\n </template>\n <template #footerContent>\n <dt-stack\n direction=\"row\"\n gap=\"300\"\n class=\"d-recipe-editor__popover-footer\"\n >\n <dt-button\n :aria-label=\"removeLinkButton.ariaLabel\"\n data-qa=\"dt-recipe-editor-remove-link-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"sm\"\n @click=\"removeLink\"\n >\n {{ removeLinkButton.label }}\n </dt-button>\n <dt-button\n :aria-label=\"cancelSetLinkButton.ariaLabel\"\n data-qa=\"dt-recipe-editor-set-link-cancel-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"sm\"\n @click=\"closeLinkInput\"\n >\n {{ cancelSetLinkButton.label }}\n </dt-button>\n <dt-button\n :aria-label=\"confirmSetLinkButton.ariaLabel\"\n data-qa=\"dt-recipe-editor-set-link-confirm-btn\"\n size=\"sm\"\n @click=\"setLink\"\n >\n {{ confirmSetLinkButton.label }}\n </dt-button>\n </dt-stack>\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 :style=\"{ 'max-height': maxHeight }\"\n class=\"d-recipe-editor__content\"\n >\n <dt-rich-text-editor\n ref=\"richTextEditor\"\n v-model=\"internalInputValue\"\n :allow-inline-images=\"true\"\n :allow-line-breaks=\"true\"\n :hide-link-bubble-menu=\"true\"\n :auto-focus=\"autoFocus\"\n :editable=\"editable\"\n :input-aria-label=\"inputAriaLabel\"\n :input-class=\"`d-recipe-editor__content-input ${inputClass}`\"\n :link=\"true\"\n :output-format=\"htmlOutputFormat\"\n :placeholder=\"placeholder\"\n :use-div-tags=\"useDivTags\"\n data-qa=\"dt-rich-text-editor\"\n v-bind=\"$attrs\"\n @blur=\"onBlur\"\n @focus=\"onFocus\"\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 { DtButton } from '@/components/button';\nimport { DtPopover } from '@/components/popover';\nimport { DtStack } from '@/components/stack';\nimport { DtInput } from '@/components/input';\nimport { DtTooltip } from '@/components/tooltip';\nimport {\n DtIconAlignCenter,\n DtIconAlignJustify,\n DtIconAlignLeft,\n DtIconAlignRight,\n DtIconBold,\n DtIconCodeBlock,\n DtIconItalic,\n DtIconLightningBolt,\n DtIconLink2,\n DtIconListBullet,\n DtIconListOrdered,\n DtIconQuote,\n DtIconStrikethrough,\n DtIconUnderline,\n} from '@dialpad/dialtone-icons/vue3';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeEditor',\n\n components: {\n DtRichTextEditor,\n DtButton,\n DtPopover,\n DtStack,\n DtInput,\n DtTooltip,\n DtIconLightningBolt,\n DtIconBold,\n DtIconItalic,\n DtIconUnderline,\n DtIconStrikethrough,\n DtIconListBullet,\n DtIconListOrdered,\n DtIconAlignLeft,\n DtIconAlignCenter,\n DtIconAlignRight,\n DtIconAlignJustify,\n DtIconQuote,\n DtIconCodeBlock,\n DtIconLink2,\n },\n\n mixins: [],\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 * Use div tags instead of paragraph tags to show text\n */\n useDivTags: {\n type: Boolean,\n default: false,\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-recipe-editor__link',\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 {\n showBtn: this.showQuickRepliesButton,\n label: 'Quick reply',\n selector: 'quickReplies',\n icon: DtIconLightningBolt,\n dataQA: 'dt-recipe-editor-quick-replies-btn',\n tooltipMessage: 'Quick Reply',\n onClick: this.onQuickRepliesClick,\n },\n ].filter(button => button.showBtn);\n },\n\n textFormatButtons () {\n return [\n {\n showBtn: this.showBoldButton,\n selector: 'bold',\n icon: DtIconBold,\n dataQA: 'dt-recipe-editor-bold-btn',\n tooltipMessage: 'Bold',\n onClick: this.onBoldTextToggle,\n },\n {\n showBtn: this.showItalicsButton,\n selector: 'italic',\n icon: DtIconItalic,\n dataQA: 'dt-recipe-editor-italics-btn',\n tooltipMessage: 'Italics',\n onClick: this.onItalicTextToggle,\n },\n {\n showBtn: this.showUnderlineButton,\n selector: 'underline',\n icon: DtIconUnderline,\n dataQA: 'dt-recipe-editor-underline-btn',\n tooltipMessage: 'Underline',\n onClick: this.onUnderlineTextToggle,\n },\n {\n showBtn: this.showStrikeButton,\n selector: 'strike',\n icon: DtIconStrikethrough,\n dataQA: 'dt-recipe-editor-strike-btn',\n tooltipMessage: 'Strike',\n onClick: this.onStrikethroughTextToggle,\n },\n ].filter(button => button.showBtn);\n },\n\n alignmentButtons () {\n return [\n {\n showBtn: this.showAlignLeftButton,\n selector: { textAlign: 'left' },\n icon: DtIconAlignLeft,\n dataQA: 'dt-recipe-editor-align-left-btn',\n tooltipMessage: 'Align Left',\n onClick: () => this.onTextAlign('left'),\n },\n {\n showBtn: this.showAlignCenterButton,\n selector: { textAlign: 'center' },\n icon: DtIconAlignCenter,\n dataQA: 'dt-recipe-editor-align-center-btn',\n tooltipMessage: 'Align Center',\n onClick: () => this.onTextAlign('center'),\n },\n {\n showBtn: this.showAlignRightButton,\n selector: { textAlign: 'right' },\n icon: DtIconAlignRight,\n dataQA: 'dt-recipe-editor-align-right-btn',\n tooltipMessage: 'Align Right',\n onClick: () => this.onTextAlign('right'),\n },\n {\n showBtn: this.showAlignJustifyButton,\n selector: { textAlign: 'justify' },\n icon: DtIconAlignJustify,\n dataQA: 'dt-recipe-editor-align-justify-btn',\n tooltipMessage: 'Align Justify',\n onClick: () => this.onTextAlign('justify'),\n },\n ].filter(button => button.showBtn);\n },\n\n listButtons () {\n return [\n {\n showBtn: this.showListItemsButton,\n selector: 'bulletList',\n icon: DtIconListBullet,\n dataQA: 'dt-recipe-editor-list-items-btn',\n tooltipMessage: 'Bullet List',\n onClick: this.onBulletListToggle,\n },\n {\n showBtn: this.showOrderedListButton,\n selector: 'orderedList',\n icon: DtIconListOrdered,\n dataQA: 'dt-recipe-editor-ordered-list-items-btn',\n tooltipMessage: 'Ordered List',\n onClick: this.onOrderedListToggle,\n },\n ].filter(button => button.showBtn);\n },\n\n individualButtons () {\n return [\n {\n showBtn: this.showQuoteButton,\n selector: 'blockquote',\n icon: DtIconQuote,\n dataQA: 'dt-recipe-editor-blockquote-btn',\n tooltipMessage: 'Quote',\n onClick: this.onBlockquoteToggle,\n },\n {\n showBtn: this.showCodeBlockButton,\n selector: 'codeBlock',\n icon: DtIconCodeBlock,\n dataQA: 'dt-recipe-editor-code-block-btn',\n tooltipMessage: 'Code',\n onClick: this.onCodeBlockToggle,\n },\n ].filter(button => button.showBtn);\n },\n\n linkButton () {\n return {\n showBtn: this.showAddLink.showAddLinkButton,\n selector: 'link',\n icon: DtIconLink2,\n dataQA: 'dt-recipe-editor-add-link-btn',\n tooltipMessage: 'Link',\n onClick: this.openLinkInput,\n };\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 insertInMessageBody (messageContent) {\n this.$refs.richTextEditor?.editor.chain().focus().insertContent(messageContent).run();\n },\n\n setCursorPosition (position = null) {\n this.$refs.richTextEditor?.editor.chain().focus(position).run();\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"],"names":["DtRichTextEditor","DtButton","DtPopover","DtStack","DtInput","DtTooltip","DtIconLightningBolt","DtIconBold","DtIconItalic","DtIconUnderline","DtIconStrikethrough","DtIconListBullet","DtIconListOrdered","DtIconAlignLeft","DtIconAlignCenter","DtIconAlignRight","DtIconAlignJustify","DtIconQuote","DtIconCodeBlock","DtIconLink2","RICH_TEXT_EDITOR_AUTOFOCUS_TYPES","RICH_TEXT_EDITOR_OUTPUT_FORMATS","button","editor","EDITOR_SUPPORTED_LINK_PROTOCOLS","EDITOR_DEFAULT_LINK_PREFIX","_createElementVNode","_createElementBlock","_createVNode","_withCtx","_openBlock","_Fragment","_renderList","_createBlock","_resolveDynamicComponent","_createTextVNode","_toDisplayString","_withModifiers","_createCommentVNode","_withKeys","_normalizeStyle","_mergeProps"],"mappings":";;;;;;;;;;;;;AAsNA,MAAK,YAAU;AAAA,EACb,cAAc,EAAE,MAAM,EAAG;AAAA,EACzB,MAAM;AAAA,EAEN,YAAY;AAAA,IACV,kBAAAA,iBAAgB;AAAA,IAChB,UAAAC,OAAQ;AAAA,IACR,WAAAC,QAAS;AAAA,IACT,SAAAC,MAAO;AAAA,IACP,SAAAC,MAAO;AAAA,IACP,WAAAC,QAAS;AAAA,IACT,qBAAAC,KAAmB;AAAA,gBACnBC,KAAU;AAAA,kBACVC,KAAY;AAAA,IACZ,iBAAAC,KAAe;AAAA,IACf,qBAAAC,KAAmB;AAAA,IACnB,kBAAAC,KAAgB;AAAA,IAChB,mBAAAC,KAAiB;AAAA,IACjB,iBAAAC,KAAe;AAAA,IACf,mBAAAC,KAAiB;AAAA,IACjB,kBAAAC,KAAgB;AAAA,IAChB,oBAAAC,KAAkB;AAAA,iBAClBC,KAAW;AAAA,IACX,iBAAAC,KAAe;AAAA,iBACfC,KAAW;AAAA,EACZ;AAAA,EAED,QAAQ,CAAE;AAAA,EAEV,cAAc;AAAA,EAEd,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,IAKL,OAAO;AAAA,MACL,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAaD,WAAW;AAAA,MACT,MAAM,CAAC,SAAS,QAAQ,MAAM;AAAA,MAC9B,SAAS;AAAA,MACT,UAAW,WAAW;AACpB,YAAI,OAAO,cAAc,UAAU;AACjC,iBAAOC,2BAAgC,iCAAC,SAAS,SAAS;AAAA,QAC5D;AACA,eAAO;AAAA,MACR;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,sBAAsB;AAAA,MACpB,MAAM;AAAA,MACN,SAAS,OAAO,EAAE,OAAO,WAAW,WAAW,mBAAmB;AAAA,IACnE;AAAA;AAAA;AAAA;AAAA,IAKD,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,SAAS,OAAO,EAAE,OAAO,UAAU,WAAW,cAAc;AAAA,IAC7D;AAAA;AAAA;AAAA;AAAA,IAKD,qBAAqB;AAAA,MACnB,MAAM;AAAA,MACN,SAAS,OAAO,EAAE,OAAO,UAAU,WAAW,kBAAkB;AAAA,IACjE;AAAA;AAAA;AAAA;AAAA,IAKD,oBAAoB;AAAA,MAClB,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,mBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,qBAAqB;AAAA,MACnB,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,qBAAqB;AAAA,MACnB,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,uBAAuB;AAAA,MACrB,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,qBAAqB;AAAA,MACnB,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,uBAAuB;AAAA,MACrB,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,sBAAsB;AAAA,MACpB,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,wBAAwB;AAAA,MACtB,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,qBAAqB;AAAA,MACnB,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,wBAAwB;AAAA,MACtB,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS,OAAO;AAAA,QACd,mBAAmB;AAAA,QACnB,cAAc;AAAA,QACd,uBAAuB;AAAA,MACzB;AAAA,IACD;AAAA;AAAA;AAAA;AAAA,IAKD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA,EACF;AAAA,EAED,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAML;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA;AAAA,EACD;AAAA,EAED,OAAQ;AACN,WAAO;AAAA,MACL,oBAAoB,KAAK;AAAA;AAAA,MACzB,UAAU;AAAA,MAEV,aAAa;AAAA,QACX,OAAO;AAAA,MACR;AAAA,MAED,eAAe;AAAA,MACf,WAAW;AAAA;EAEd;AAAA,EAED,UAAU;AAAA,IACR,cAAe;AACb,aAAO,KAAK,mBAAmB;AAAA,IAChC;AAAA,IAED,mBAAoB;AAClB,aAAOC,2BAAAA,gCAAgC,CAAC;AAAA,IACzC;AAAA,IAED,2BAA4B;AAC1B,aAAO,KAAK,kBAAkB,KAAK,qBAAqB,KAAK,oBAAoB,KAAK;AAAA,IACvF;AAAA,IAED,0BAA2B;AACzB,aAAO,KAAK,uBAAuB,KAAK,yBACtC,KAAK,wBAAwB,KAAK;AAAA,IACrC;AAAA,IAED,qBAAsB;AACpB,aAAO,KAAK,uBAAuB,KAAK;AAAA,IACzC;AAAA,IAED,eAAgB;AACd,YAAM,yBAAyB,KAAK,kBAAkB,IAAI,iBAAe;AAAA,QACvE,KAAK,WAAW;AAAA,QAChB,aAAa,CAAC,UAAU;AAAA,MACzB,EAAC;AACF,aAAO;AAAA,QACL,EAAE,KAAK,OAAO,aAAa,KAAK,WAAY;AAAA,QAC5C,EAAE,KAAK,UAAU,aAAa,KAAK,kBAAmB;AAAA,QACtD,EAAE,KAAK,aAAa,aAAa,KAAK,iBAAkB;AAAA,QACxD,EAAE,KAAK,QAAQ,aAAa,KAAK,YAAa;AAAA,QAC9C,GAAG;AAAA,MACL,EAAE,OAAO,qBAAmB,gBAAgB,YAAY,SAAS,CAAC;AAAA,IACnE;AAAA,IAED,aAAc;AACZ,aAAO;AAAA,QACL;AAAA,UACE,SAAS,KAAK;AAAA,UACd,OAAO;AAAA,UACP,UAAU;AAAA,UACV,MAAMf,KAAmB;AAAA,UACzB,QAAQ;AAAA,UACR,gBAAgB;AAAA,UAChB,SAAS,KAAK;AAAA,QACf;AAAA,MACF,EAAC,OAAO,CAAAgB,YAAUA,QAAO,OAAO;AAAA,IAClC;AAAA,IAED,oBAAqB;AACnB,aAAO;AAAA,QACL;AAAA,UACE,SAAS,KAAK;AAAA,UACd,UAAU;AAAA,UACV,MAAMf,KAAU;AAAA,UAChB,QAAQ;AAAA,UACR,gBAAgB;AAAA,UAChB,SAAS,KAAK;AAAA,QACf;AAAA,QACD;AAAA,UACE,SAAS,KAAK;AAAA,UACd,UAAU;AAAA,UACV,MAAMC,KAAY;AAAA,UAClB,QAAQ;AAAA,UACR,gBAAgB;AAAA,UAChB,SAAS,KAAK;AAAA,QACf;AAAA,QACD;AAAA,UACE,SAAS,KAAK;AAAA,UACd,UAAU;AAAA,UACV,MAAMC,KAAe;AAAA,UACrB,QAAQ;AAAA,UACR,gBAAgB;AAAA,UAChB,SAAS,KAAK;AAAA,QACf;AAAA,QACD;AAAA,UACE,SAAS,KAAK;AAAA,UACd,UAAU;AAAA,UACV,MAAMC,KAAmB;AAAA,UACzB,QAAQ;AAAA,UACR,gBAAgB;AAAA,UAChB,SAAS,KAAK;AAAA,QACf;AAAA,MACF,EAAC,OAAO,CAAAY,YAAUA,QAAO,OAAO;AAAA,IAClC;AAAA,IAED,mBAAoB;AAClB,aAAO;AAAA,QACL;AAAA,UACE,SAAS,KAAK;AAAA,UACd,UAAU,EAAE,WAAW,OAAQ;AAAA,UAC/B,MAAMT,KAAe;AAAA,UACrB,QAAQ;AAAA,UACR,gBAAgB;AAAA,UAChB,SAAS,MAAM,KAAK,YAAY,MAAM;AAAA,QACvC;AAAA,QACD;AAAA,UACE,SAAS,KAAK;AAAA,UACd,UAAU,EAAE,WAAW,SAAU;AAAA,UACjC,MAAMC,KAAiB;AAAA,UACvB,QAAQ;AAAA,UACR,gBAAgB;AAAA,UAChB,SAAS,MAAM,KAAK,YAAY,QAAQ;AAAA,QACzC;AAAA,QACD;AAAA,UACE,SAAS,KAAK;AAAA,UACd,UAAU,EAAE,WAAW,QAAS;AAAA,UAChC,MAAMC,KAAgB;AAAA,UACtB,QAAQ;AAAA,UACR,gBAAgB;AAAA,UAChB,SAAS,MAAM,KAAK,YAAY,OAAO;AAAA,QACxC;AAAA,QACD;AAAA,UACE,SAAS,KAAK;AAAA,UACd,UAAU,EAAE,WAAW,UAAW;AAAA,UAClC,MAAMC,KAAkB;AAAA,UACxB,QAAQ;AAAA,UACR,gBAAgB;AAAA,UAChB,SAAS,MAAM,KAAK,YAAY,SAAS;AAAA,QAC1C;AAAA,MACF,EAAC,OAAO,CAAAM,YAAUA,QAAO,OAAO;AAAA,IAClC;AAAA,IAED,cAAe;AACb,aAAO;AAAA,QACL;AAAA,UACE,SAAS,KAAK;AAAA,UACd,UAAU;AAAA,UACV,MAAMX,KAAgB;AAAA,UACtB,QAAQ;AAAA,UACR,gBAAgB;AAAA,UAChB,SAAS,KAAK;AAAA,QACf;AAAA,QACD;AAAA,UACE,SAAS,KAAK;AAAA,UACd,UAAU;AAAA,UACV,MAAMC,KAAiB;AAAA,UACvB,QAAQ;AAAA,UACR,gBAAgB;AAAA,UAChB,SAAS,KAAK;AAAA,QACf;AAAA,MACF,EAAC,OAAO,CAAAU,YAAUA,QAAO,OAAO;AAAA,IAClC;AAAA,IAED,oBAAqB;AACnB,aAAO;AAAA,QACL;AAAA,UACE,SAAS,KAAK;AAAA,UACd,UAAU;AAAA,UACV,MAAML,KAAW;AAAA,UACjB,QAAQ;AAAA,UACR,gBAAgB;AAAA,UAChB,SAAS,KAAK;AAAA,QACf;AAAA,QACD;AAAA,UACE,SAAS,KAAK;AAAA,UACd,UAAU;AAAA,UACV,MAAMC,KAAe;AAAA,UACrB,QAAQ;AAAA,UACR,gBAAgB;AAAA,UAChB,SAAS,KAAK;AAAA,QACf;AAAA,MACF,EAAC,OAAO,CAAAI,YAAUA,QAAO,OAAO;AAAA,IAClC;AAAA,IAED,aAAc;AACZ,aAAO;AAAA,QACL,SAAS,KAAK,YAAY;AAAA,QAC1B,UAAU;AAAA,QACV,MAAMH,KAAW;AAAA,QACjB,QAAQ;AAAA,QACR,gBAAgB;AAAA,QAChB,SAAS,KAAK;AAAA;IAEjB;AAAA,EACF;AAAA,EAED,OAAO;AAAA,IACL,MAAO,UAAU;AACf,WAAK,qBAAqB;AAAA,IAC3B;AAAA,EACF;AAAA,EAED,SAAS;AAAA,IACP,aAAc,OAAO;AACnB,qCAAO;AAAA,IACR;AAAA,IAED,aAAc;;AACZ,yCAAK,MAAM,mBAAX,mBAA2B,WAA3B,mBAAmC,YAAnC,mBAA4C,YAA5C,mBAAqD,gBAArD,mBAAkE;AAClE,WAAK,eAAc;AAAA,IACpB;AAAA,IAED,QAAS,OAAO;;AACd,YAAMI,WAAS,UAAK,MAAM,mBAAX,mBAA2B;AAC1C,qCAAO;AACP,qCAAO;AAEP,UAAI,CAAC,KAAK,WAAW;AAGnB,aAAK,WAAU;AACf;AAAA,MACF;AAGA,YAAM,SAASC,iDAAgC,KAAK,iBAAe,YAAY,KAAK,KAAK,SAAS,CAAC;AAEnG,UAAI,CAAC,QAAQ;AAEX,aAAK,YAAY,GAAGC,iBAAAA,0BAA0B,GAAG,KAAK,SAAS;AAAA,MACjE;AAEA,YAAM,aAAY,WAAAF,WAAA,gBAAAA,QAAQ,SAAR,mBAAc,UAAd,mBAAqB;AAEvC,UAAI,UAAU,WAAW,UAAU,MAAM;AAIvC,QAAAA,QACG,MAAM,EACN,MAAM,EACN;AAAA,UACC,UAAU;AAAA,UACZ,aAAa,KAAK,YAAY,KAAK,UAAU,KAAK,SAAS,IAAI,KAAK,SAAS;AAAA,QAC7E,EACC;aACE;AAEL,QAAAA,QACG,MAAM,EACN,MAAM,EACN,gBAAgB,MAAM,EACtB,QAAQ,EAAE,MAAM,KAAK,WAAW,OAAO,KAAK,YAAY,OAAO,EAC/D;MACL;AAEA,WAAK,eAAc;AAAA,IACpB;AAAA,IAED,gBAAiB;AACf,WAAK,gBAAgB;AAAA,IACtB;AAAA,IAED,YAAa,aAAa;;AACxB,UAAI,CAAC,aAAa;AAChB,eAAO,KAAK;MACd;AACA,WAAK,aAAY,sBAAK,MAAM,mBAAX,mBAA2B,WAA3B,mBAAmC,cAAc,YAAjD,mBAA0D;AAAA,IAC5E;AAAA,IAED,iBAAkB;;AAChB,WAAK,gBAAgB;AACrB,WAAK,YAAY;AACjB,iBAAK,MAAM,eAAe,WAA1B,mBAAkC,QAAQ;AAAA,IAC3C;AAAA,IAED,mBAAoB;;AAClB,uBAAK,MAAM,mBAAX,mBAA2B,WAA3B,mBAAmC,QAAQ,QAAQ,aAAa;AAAA,IACjE;AAAA,IAED,qBAAsB;;AACpB,iBAAK,MAAM,mBAAX,mBAA2B,OAAO,QAAQ,QAAQ,eAAe;AAAA,IAClE;AAAA,IAED,wBAAyB;;AACvB,iBAAK,MAAM,mBAAX,mBAA2B,OAAO,QAAQ,QAAQ,kBAAkB;AAAA,IACrE;AAAA,IAED,4BAA6B;;AAC3B,iBAAK,MAAM,mBAAX,mBAA2B,OAAO,QAAQ,QAAQ,eAAe;AAAA,IAClE;AAAA,IAED,YAAa,WAAW;;AACtB,WAAI,gBAAK,MAAM,mBAAX,mBAA2B,WAA3B,mBAAmC,SAAS,EAAE,WAAW,UAAU,IAAI;AAEzE,gBAAO,UAAK,MAAM,mBAAX,mBAA2B,OAAO,QAAQ,QAAQ,iBAAiB;AAAA,MAC5E;AACA,iBAAK,MAAM,mBAAX,mBAA2B,OAAO,QAAQ,QAAQ,aAAa,WAAW;AAAA,IAC3E;AAAA,IAED,qBAAsB;;AACpB,iBAAK,MAAM,mBAAX,mBAA2B,OAAO,QAAQ,QAAQ,mBAAmB;AAAA,IACtE;AAAA,IAED,sBAAuB;;AACrB,iBAAK,MAAM,mBAAX,mBAA2B,OAAO,QAAQ,QAAQ,oBAAoB;AAAA,IACvE;AAAA,IAED,oBAAqB;;AACnB,iBAAK,MAAM,mBAAX,mBAA2B,OAAO,QAAQ,QAAQ,kBAAkB;AAAA,IACrE;AAAA,IAED,sBAAuB;AACrB,WAAK,MAAM,qBAAqB;AAAA,IACjC;AAAA,IAED,oBAAqB,gBAAgB;;AACnC,iBAAK,MAAM,mBAAX,mBAA2B,OAAO,QAAQ,QAAQ,cAAc,gBAAgB;AAAA,IACjF;AAAA,IAED,kBAAmB,WAAW,MAAM;;AAClC,iBAAK,MAAM,mBAAX,mBAA2B,OAAO,QAAQ,MAAM,UAAU;AAAA,IAC3D;AAAA,IAED,qBAAsB;;AACpB,iBAAK,MAAM,mBAAX,mBAA2B,OAAO,QAAQ,QAAQ,mBAAmB;AAAA,IACtE;AAAA,IAED,QAAS,OAAO;AACd,WAAK,WAAW;AAChB,WAAK,MAAM,SAAS,KAAK;AAAA,IAC1B;AAAA,IAED,OAAQ,OAAO;AACb,WAAK,WAAW;AAChB,WAAK,MAAM,QAAQ,KAAK;AAAA,IACzB;AAAA,IAED,QAAS,OAAO;AACd,WAAK,MAAM,SAAS,KAAK;AAAA,IAC1B;AAAA,EAEF;AACH;mBAjyBQG,oBAAAA,mBAAqD,OAAA,EAAhD,OAAM,2CAAuC,MAAA,EAAA;AA+CzC,MAAA,aAAA,EAAA,OAAM,mCAAkC;qBA7FzD,KAAA,EAAA;;;;;;;;0BACEC,IAiLM,mBAAA,OAAA;AAAA,IA/KJ,OAAM;AAAA,IACN,WAAQ;AAAA,IACR,MAAK;AAAA,IACJ,SAAO,OAAA,CAAA,MAAA,OAAA,CAAA,IAAA,YAAA,KAAA,MAAM,eAAe,YAAW;AAAA;IAGxCC,IAAAA,YA6IW,qBAAA;AAAA,MA5IT,OAAM;AAAA,MACN,WAAU;AAAA,MACV,KAAI;AAAA;MAZV,SAAAC,IAAA,QAeQ,MAAmC;AAAA,SADrCC,cAAA,IAAA,GAAAH,IAAAA,mBAiCWI,IA/CjB,UAAA,MAAAC,IAAAA,WAe8B,SAAY,cAf1C,CAee,gBAAW;kCADpBC,IAiCW,YAAA,qBAAA;AAAA,YA/BR,KAAK,YAAY;AAAA,YAClB,WAAU;AAAA,YACV,KAAI;AAAA;YAlBZ,SAAAJ,IAAA,QAqBU,MAAyC;AAAA,eAD3CC,cAAA,IAAA,GAAAH,IAAAA,mBAyBaI,oBA7CrBC,IAAAA,WAqB2B,YAAY,aArBvC,CAqBiBV,YAAM;wCADfW,IAyBa,YAAA,uBAAA;AAAA,kBAvBV,KAAG,GAAK,YAAY,GAAG,IAAI,KAAK,UAAUX,QAAO,QAAQ,CAAA;AAAA,kBACzD,SAASA,QAAO;AAAA,kBACjB,WAAU;AAAA;kBAEC,oBACT,MAgBY;;AAAA;AAAA,sBAhBZM,IAAAA,YAgBY,sBAAA;AAAA,wBAfT,SAAQ,gBAAK,MAAC,mBAAN,mBAAsB,WAAtB,mBAA8B,SAASN,QAAO;AAAA,wBACtD,cAAYA,QAAO;AAAA,wBACnB,WAASA,QAAO;AAAA,wBACjB,YAAW;AAAA,wBACX,MAAK;AAAA,wBACL,MAAK;AAAA,wBACJ,SAAK,YAAEA,QAAO;;wBAEJ,kBACT,MAGE;AAAA,4CAHFW,IAGE,YAxClBC,4BAsCuBZ,QAAO,IAAI,GAChB,EAAA,MAAK,OAAK;AAAA;wBAvC5B,SAAAO,IAAA,QAyCyB,MACX;AAAA,0BA1CdM,IAAA,gBAyCyB,MACXC,IAAA,gBAAGd,WAAA,gBAAAA,QAAQ,KAAK,GAAA,CAAA;AAAA;wBA1C9B,GAAA;AAAA;;;kBAAA,GAAA;AAAA;;cA8CQ;AAAA;YA9CR,GAAA;AAAA;;QAiDc,SAAA,WAAW,4BADnBW,IAqGW,YAAA,qBAAA;AAAA,UArJjB,KAAA;AAAA,UAkDQ,WAAU;AAAA,UACV,KAAI;AAAA;UAnDZ,SAAAJ,IAAA,QAqDQ,MA+Fa;AAAA,YA/FbD,IAAAA,YA+Fa,uBAAA;AAAA,cA9FV,MAAM,MAAa;AAAA,cACnB,qBAAmB;AAAA,cACnB,yBAAuB;AAAA,cACvB,+BAA6B;AAAA,cAC9B,WAAQ;AAAA,cACR,SAAQ;AAAA,cACR,WAAU;AAAA,cACT,SAAK;AAAA,gBAAE,SAAY;AAAA,gBA7D9BS,IAAAA,cA+DuB,SAAY,cAAA,CAAA,MAAA,CAAA;AAAA;cADxB,UAAQ,SAAW;AAAA;cAGT,oBACT,MAuBa;AAAA,kCAvBbJ,IAuBa,YAAA,uBAAA;AAAA,kBAtBV,KAAK,SAAU,WAAC;AAAA,kBAChB,SAAS,SAAU,WAAC;AAAA,kBACrB,WAAU;AAAA;kBAEC,oBACT,MAeY;;AAAA;AAAA,sBAfZL,IAAAA,YAeY,sBAAA;AAAA,wBAdT,SAAQ,gBAAK,MAAC,mBAAN,mBAAsB,WAAtB,mBAA8B,SAAS,SAAU,WAAC;AAAA,wBAC1D,cAAY,SAAU,WAAC;AAAA,wBACvB,WAAS,SAAU,WAAC;AAAA,wBACrB,YAAW;AAAA,wBACX,MAAK;AAAA,wBACL,MAAK;AAAA,wBACJ,SAAK,OAAA,CAAA,MAAA,OAAA,CAAA,IAAA,YAAE,SAAU,WAAC,QAAO;AAAA;wBAEf,kBACT,MAGE;AAAA,4CAHFK,gBAlFpBC,IAAAA,wBAmF2B,SAAU,WAAC,IAAI,GACpB,EAAA,MAAK,OAAK;AAAA;wBApFhC,GAAA;AAAA;;;kBAAA,GAAA;AAAA;;cA4FqB,qBACT,MAiBM;AAAA,gBAjBNR,IAAA,mBAiBM,OAjBN,YAiBM;AAAA,kBAfI,OAAW,YAAC,aAAa,SAAM,KADvCI,cAAA,GAAAH,uBAIO,QAlGrB,YAAAS,oBAiGmB,OAAW,YAAC,YAAY,GAAA,CAAA,KAjG3CE,IAAA,mBAAA,IAAA,IAAA;AAAA,kBAmGcV,IAAAA,YAUE,qBAAA;AAAA,oBA7GhB,YAoGyB,MAAS;AAAA,oBApGlC,uBAAA,OAAA,CAAA,MAAA,OAAA,CAAA,IAAA,YAoGyB,MAAS,YAAA;AAAA,oBACjB,oBAAkB,OAAW,YAAC;AAAA,oBAC9B,aAAa,OAAkB;AAAA,oBAChC,WAAQ;AAAA,oBACR,uBAAoB;AAAA,oBACnB,SAAK;AAAA,sBAAE,SAAY;AAAA,sBAzGpCS,IAAAA,cA2G6B,SAAY,cAAA,CAAA,MAAA,CAAA;AAAA;oBADxB,SAAO,SAAY;AAAA,oBAEnB,WA5GjBE,IAAAA,SA4GgC,SAAO,SAAA,CAAA,OAAA,CAAA;AAAA;;;cAIlB,2BACT,MAiCW;AAAA,gBAjCXX,IAAAA,YAiCW,qBAAA;AAAA,kBAhCT,WAAU;AAAA,kBACV,KAAI;AAAA,kBACJ,OAAM;AAAA;kBApHpB,SAAAC,IAAA,QAsHc,MASY;AAAA,oBATZD,IAAAA,YASY,sBAAA;AAAA,sBART,cAAY,OAAgB,iBAAC;AAAA,sBAC9B,WAAQ;AAAA,sBACR,YAAW;AAAA,sBACX,MAAK;AAAA,sBACL,MAAK;AAAA,sBACJ,SAAO,SAAU;AAAA;sBA5HlC,SAAAC,IAAA,QA8HgB,MAA4B;AAAA,wBA9H5CM,IA8HmB,gBAAAC,IAAA,gBAAA,OAAA,iBAAiB,KAAK,GAAA,CAAA;AAAA;sBA9HzC,GAAA;AAAA;oBAgIcR,IAAAA,YASY,sBAAA;AAAA,sBART,cAAY,OAAmB,oBAAC;AAAA,sBACjC,WAAQ;AAAA,sBACR,YAAW;AAAA,sBACX,MAAK;AAAA,sBACL,MAAK;AAAA,sBACJ,SAAO,SAAc;AAAA;sBAtItC,SAAAC,IAAA,QAwIgB,MAA+B;AAAA,wBAxI/CM,IAwImB,gBAAAC,IAAA,gBAAA,OAAA,oBAAoB,KAAK,GAAA,CAAA;AAAA;sBAxI5C,GAAA;AAAA;oBA0IcR,IAAAA,YAOY,sBAAA;AAAA,sBANT,cAAY,OAAoB,qBAAC;AAAA,sBAClC,WAAQ;AAAA,sBACR,MAAK;AAAA,sBACJ,SAAO,SAAO;AAAA;sBA9I/B,SAAAC,IAAA,QAgJgB,MAAgC;AAAA,wBAhJhDM,IAgJmB,gBAAAC,IAAA,gBAAA,OAAA,qBAAqB,KAAK,GAAA,CAAA;AAAA;sBAhJ7C,GAAA;AAAA;;kBAAA,GAAA;AAAA;;cAAA,GAAA;AAAA;;UAAA,GAAA;AAAA,cAAAE,IAAA,mBAAA,IAAA,IAAA;AAAA;MAAA,GAAA;AAAA;IAyJIZ,IAAAA,mBAwBM,OAAA;AAAA,MAvBH,OA1JPc,IAAAA,+BA0J8B,OAAS,UAAA,CAAA;AAAA,MACjC,OAAM;AAAA;MAENZ,IAAA,YAmBE,gCAnBFa,eAmBE;AAAA,QAlBA,KAAI;AAAA,QA9JZ,YA+JiB,MAAkB;AAAA,QA/JnC,uBAAA,OAAA,CAAA,MAAA,OAAA,CAAA,IAAA,YA+JiB,MAAkB,qBAAA;AAAA,QAC1B,uBAAqB;AAAA,QACrB,qBAAmB;AAAA,QACnB,yBAAuB;AAAA,QACvB,cAAY,OAAS;AAAA,QACrB,UAAU,OAAQ;AAAA,QAClB,oBAAkB,OAAc;AAAA,QAChC,iDAA+C,OAAU,UAAA;AAAA,QACzD,MAAM;AAAA,QACN,iBAAe,SAAgB;AAAA,QAC/B,aAAa,OAAW;AAAA,QACxB,gBAAc,OAAU;AAAA,QACzB,WAAQ;AAAA,SACA,KAAM,QAAA;AAAA,QACb,QAAM,SAAM;AAAA,QACZ,SAAO,SAAO;AAAA,QACd,SAAK,OAAA,CAAA,MAAA,OAAA,CAAA,IAAA,YAAE,SAAO,QAAC,MAAM;AAAA;;;;;;"}
@@ -234,6 +234,13 @@ const _sfc_main = {
234
234
  setLinkTitle: "Add a link",
235
235
  setLinkInputAriaLabel: "Input field to add link"
236
236
  })
237
+ },
238
+ /**
239
+ * Use div tags instead of paragraph tags to show text
240
+ */
241
+ useDivTags: {
242
+ type: Boolean,
243
+ default: false
237
244
  }
238
245
  },
239
246
  emits: [
@@ -762,12 +769,13 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
762
769
  link: true,
763
770
  "output-format": $options.htmlOutputFormat,
764
771
  placeholder: $props.placeholder,
772
+ "use-div-tags": $props.useDivTags,
765
773
  "data-qa": "dt-rich-text-editor"
766
774
  }, _ctx.$attrs, {
767
775
  onBlur: $options.onBlur,
768
776
  onFocus: $options.onFocus,
769
777
  onInput: _cache[3] || (_cache[3] = ($event) => $options.onInput($event))
770
- }), null, 16, ["modelValue", "auto-focus", "editable", "input-aria-label", "input-class", "output-format", "placeholder", "onBlur", "onFocus"])
778
+ }), null, 16, ["modelValue", "auto-focus", "editable", "input-aria-label", "input-class", "output-format", "placeholder", "use-div-tags", "onBlur", "onFocus"])
771
779
  ], 4)
772
780
  ]);
773
781
  }
@@ -1 +1 @@
1
- {"version":3,"file":"editor.vue.js","sources":["../../../../recipes/conversation_view/editor/editor.vue"],"sourcesContent":["<template>\n <div\n\n class=\"d-recipe-editor\"\n data-qa=\"dt-recipe-editor\"\n role=\"presentation\"\n @click=\"$refs.richTextEditor.focusEditor()\"\n >\n <!-- Section for the top UI -->\n <dt-stack\n class=\"d-recipe-editor__top-bar\"\n direction=\"row\"\n gap=\"450\"\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 :active=\"$refs.richTextEditor?.editor?.isActive(button.selector)\"\n :aria-label=\"button.tooltipMessage\"\n :data-qa=\"button.dataQA\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"xs\"\n @click=\"button.onClick()\"\n >\n <template #icon>\n <component\n :is=\"button.icon\"\n size=\"200\"\n />\n </template>\n {{ button?.label }}\n </dt-button>\n </template>\n </dt-tooltip>\n <div class=\"d-recipe-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=\"showLinkInput\"\n :show-close-button=\"false\"\n :visually-hidden-close=\"true\"\n :visually-hidden-close-label=\"'Close link input popover'\"\n data-qa=\"dt-recipe-editor-link-input-popover\"\n padding=\"none\"\n placement=\"bottom-start\"\n @click=\"onInputFocus\"\n @opened=\"updateInput\"\n @click.stop=\"onInputFocus\"\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 :active=\"$refs.richTextEditor?.editor?.isActive(linkButton.selector)\"\n :aria-label=\"linkButton.tooltipMessage\"\n :data-qa=\"linkButton.dataQA\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"xs\"\n @click=\"linkButton.onClick()\"\n >\n <template #icon>\n <component\n :is=\"linkButton.icon\"\n size=\"200\"\n />\n </template>\n </dt-button>\n </template>\n </dt-tooltip>\n </template>\n\n <template #content>\n <div class=\"d-recipe-editor__popover-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 :placeholder=\"setLinkPlaceholder\"\n data-qa=\"dt-recipe-editor-link-input\"\n input-wrapper-class=\"d-recipe-editor-link__input-wrapper\"\n @click=\"onInputFocus\"\n @focus=\"onInputFocus\"\n @click.stop=\"onInputFocus\"\n @keydown.enter=\"setLink\"\n />\n </div>\n </template>\n <template #footerContent>\n <dt-stack\n direction=\"row\"\n gap=\"300\"\n class=\"d-recipe-editor__popover-footer\"\n >\n <dt-button\n :aria-label=\"removeLinkButton.ariaLabel\"\n data-qa=\"dt-recipe-editor-remove-link-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"sm\"\n @click=\"removeLink\"\n >\n {{ removeLinkButton.label }}\n </dt-button>\n <dt-button\n :aria-label=\"cancelSetLinkButton.ariaLabel\"\n data-qa=\"dt-recipe-editor-set-link-cancel-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"sm\"\n @click=\"closeLinkInput\"\n >\n {{ cancelSetLinkButton.label }}\n </dt-button>\n <dt-button\n :aria-label=\"confirmSetLinkButton.ariaLabel\"\n data-qa=\"dt-recipe-editor-set-link-confirm-btn\"\n size=\"sm\"\n @click=\"setLink\"\n >\n {{ confirmSetLinkButton.label }}\n </dt-button>\n </dt-stack>\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 :style=\"{ 'max-height': maxHeight }\"\n class=\"d-recipe-editor__content\"\n >\n <dt-rich-text-editor\n ref=\"richTextEditor\"\n v-model=\"internalInputValue\"\n :allow-inline-images=\"true\"\n :allow-line-breaks=\"true\"\n :hide-link-bubble-menu=\"true\"\n :auto-focus=\"autoFocus\"\n :editable=\"editable\"\n :input-aria-label=\"inputAriaLabel\"\n :input-class=\"`d-recipe-editor__content-input ${inputClass}`\"\n :link=\"true\"\n :output-format=\"htmlOutputFormat\"\n :placeholder=\"placeholder\"\n data-qa=\"dt-rich-text-editor\"\n v-bind=\"$attrs\"\n @blur=\"onBlur\"\n @focus=\"onFocus\"\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 { DtButton } from '@/components/button';\nimport { DtPopover } from '@/components/popover';\nimport { DtStack } from '@/components/stack';\nimport { DtInput } from '@/components/input';\nimport { DtTooltip } from '@/components/tooltip';\nimport {\n DtIconAlignCenter,\n DtIconAlignJustify,\n DtIconAlignLeft,\n DtIconAlignRight,\n DtIconBold,\n DtIconCodeBlock,\n DtIconItalic,\n DtIconLightningBolt,\n DtIconLink2,\n DtIconListBullet,\n DtIconListOrdered,\n DtIconQuote,\n DtIconStrikethrough,\n DtIconUnderline,\n} from '@dialpad/dialtone-icons/vue3';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeEditor',\n\n components: {\n DtRichTextEditor,\n DtButton,\n DtPopover,\n DtStack,\n DtInput,\n DtTooltip,\n DtIconLightningBolt,\n DtIconBold,\n DtIconItalic,\n DtIconUnderline,\n DtIconStrikethrough,\n DtIconListBullet,\n DtIconListOrdered,\n DtIconAlignLeft,\n DtIconAlignCenter,\n DtIconAlignRight,\n DtIconAlignJustify,\n DtIconQuote,\n DtIconCodeBlock,\n DtIconLink2,\n },\n\n mixins: [],\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-recipe-editor__link',\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 {\n showBtn: this.showQuickRepliesButton,\n label: 'Quick reply',\n selector: 'quickReplies',\n icon: DtIconLightningBolt,\n dataQA: 'dt-recipe-editor-quick-replies-btn',\n tooltipMessage: 'Quick Reply',\n onClick: this.onQuickRepliesClick,\n },\n ].filter(button => button.showBtn);\n },\n\n textFormatButtons () {\n return [\n {\n showBtn: this.showBoldButton,\n selector: 'bold',\n icon: DtIconBold,\n dataQA: 'dt-recipe-editor-bold-btn',\n tooltipMessage: 'Bold',\n onClick: this.onBoldTextToggle,\n },\n {\n showBtn: this.showItalicsButton,\n selector: 'italic',\n icon: DtIconItalic,\n dataQA: 'dt-recipe-editor-italics-btn',\n tooltipMessage: 'Italics',\n onClick: this.onItalicTextToggle,\n },\n {\n showBtn: this.showUnderlineButton,\n selector: 'underline',\n icon: DtIconUnderline,\n dataQA: 'dt-recipe-editor-underline-btn',\n tooltipMessage: 'Underline',\n onClick: this.onUnderlineTextToggle,\n },\n {\n showBtn: this.showStrikeButton,\n selector: 'strike',\n icon: DtIconStrikethrough,\n dataQA: 'dt-recipe-editor-strike-btn',\n tooltipMessage: 'Strike',\n onClick: this.onStrikethroughTextToggle,\n },\n ].filter(button => button.showBtn);\n },\n\n alignmentButtons () {\n return [\n {\n showBtn: this.showAlignLeftButton,\n selector: { textAlign: 'left' },\n icon: DtIconAlignLeft,\n dataQA: 'dt-recipe-editor-align-left-btn',\n tooltipMessage: 'Align Left',\n onClick: () => this.onTextAlign('left'),\n },\n {\n showBtn: this.showAlignCenterButton,\n selector: { textAlign: 'center' },\n icon: DtIconAlignCenter,\n dataQA: 'dt-recipe-editor-align-center-btn',\n tooltipMessage: 'Align Center',\n onClick: () => this.onTextAlign('center'),\n },\n {\n showBtn: this.showAlignRightButton,\n selector: { textAlign: 'right' },\n icon: DtIconAlignRight,\n dataQA: 'dt-recipe-editor-align-right-btn',\n tooltipMessage: 'Align Right',\n onClick: () => this.onTextAlign('right'),\n },\n {\n showBtn: this.showAlignJustifyButton,\n selector: { textAlign: 'justify' },\n icon: DtIconAlignJustify,\n dataQA: 'dt-recipe-editor-align-justify-btn',\n tooltipMessage: 'Align Justify',\n onClick: () => this.onTextAlign('justify'),\n },\n ].filter(button => button.showBtn);\n },\n\n listButtons () {\n return [\n {\n showBtn: this.showListItemsButton,\n selector: 'bulletList',\n icon: DtIconListBullet,\n dataQA: 'dt-recipe-editor-list-items-btn',\n tooltipMessage: 'Bullet List',\n onClick: this.onBulletListToggle,\n },\n {\n showBtn: this.showOrderedListButton,\n selector: 'orderedList',\n icon: DtIconListOrdered,\n dataQA: 'dt-recipe-editor-ordered-list-items-btn',\n tooltipMessage: 'Ordered List',\n onClick: this.onOrderedListToggle,\n },\n ].filter(button => button.showBtn);\n },\n\n individualButtons () {\n return [\n {\n showBtn: this.showQuoteButton,\n selector: 'blockquote',\n icon: DtIconQuote,\n dataQA: 'dt-recipe-editor-blockquote-btn',\n tooltipMessage: 'Quote',\n onClick: this.onBlockquoteToggle,\n },\n {\n showBtn: this.showCodeBlockButton,\n selector: 'codeBlock',\n icon: DtIconCodeBlock,\n dataQA: 'dt-recipe-editor-code-block-btn',\n tooltipMessage: 'Code',\n onClick: this.onCodeBlockToggle,\n },\n ].filter(button => button.showBtn);\n },\n\n linkButton () {\n return {\n showBtn: this.showAddLink.showAddLinkButton,\n selector: 'link',\n icon: DtIconLink2,\n dataQA: 'dt-recipe-editor-add-link-btn',\n tooltipMessage: 'Link',\n onClick: this.openLinkInput,\n };\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 insertInMessageBody (messageContent) {\n this.$refs.richTextEditor?.editor.chain().focus().insertContent(messageContent).run();\n },\n\n setCursorPosition (position = null) {\n this.$refs.richTextEditor?.editor.chain().focus(position).run();\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"],"names":["editor","_createElementVNode","_createElementBlock","_createVNode","_withCtx","_openBlock","_Fragment","_renderList","_createBlock","_resolveDynamicComponent","_createTextVNode","_toDisplayString","_withModifiers","_createCommentVNode","_withKeys","_normalizeStyle","_mergeProps"],"mappings":"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"}
1
+ {"version":3,"file":"editor.vue.js","sources":["../../../../recipes/conversation_view/editor/editor.vue"],"sourcesContent":["<template>\n <div\n\n class=\"d-recipe-editor\"\n data-qa=\"dt-recipe-editor\"\n role=\"presentation\"\n @click=\"$refs.richTextEditor.focusEditor()\"\n >\n <!-- Section for the top UI -->\n <dt-stack\n class=\"d-recipe-editor__top-bar\"\n direction=\"row\"\n gap=\"450\"\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 :active=\"$refs.richTextEditor?.editor?.isActive(button.selector)\"\n :aria-label=\"button.tooltipMessage\"\n :data-qa=\"button.dataQA\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"xs\"\n @click=\"button.onClick()\"\n >\n <template #icon>\n <component\n :is=\"button.icon\"\n size=\"200\"\n />\n </template>\n {{ button?.label }}\n </dt-button>\n </template>\n </dt-tooltip>\n <div class=\"d-recipe-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=\"showLinkInput\"\n :show-close-button=\"false\"\n :visually-hidden-close=\"true\"\n :visually-hidden-close-label=\"'Close link input popover'\"\n data-qa=\"dt-recipe-editor-link-input-popover\"\n padding=\"none\"\n placement=\"bottom-start\"\n @click=\"onInputFocus\"\n @opened=\"updateInput\"\n @click.stop=\"onInputFocus\"\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 :active=\"$refs.richTextEditor?.editor?.isActive(linkButton.selector)\"\n :aria-label=\"linkButton.tooltipMessage\"\n :data-qa=\"linkButton.dataQA\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"xs\"\n @click=\"linkButton.onClick()\"\n >\n <template #icon>\n <component\n :is=\"linkButton.icon\"\n size=\"200\"\n />\n </template>\n </dt-button>\n </template>\n </dt-tooltip>\n </template>\n\n <template #content>\n <div class=\"d-recipe-editor__popover-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 :placeholder=\"setLinkPlaceholder\"\n data-qa=\"dt-recipe-editor-link-input\"\n input-wrapper-class=\"d-recipe-editor-link__input-wrapper\"\n @click=\"onInputFocus\"\n @focus=\"onInputFocus\"\n @click.stop=\"onInputFocus\"\n @keydown.enter=\"setLink\"\n />\n </div>\n </template>\n <template #footerContent>\n <dt-stack\n direction=\"row\"\n gap=\"300\"\n class=\"d-recipe-editor__popover-footer\"\n >\n <dt-button\n :aria-label=\"removeLinkButton.ariaLabel\"\n data-qa=\"dt-recipe-editor-remove-link-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"sm\"\n @click=\"removeLink\"\n >\n {{ removeLinkButton.label }}\n </dt-button>\n <dt-button\n :aria-label=\"cancelSetLinkButton.ariaLabel\"\n data-qa=\"dt-recipe-editor-set-link-cancel-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"sm\"\n @click=\"closeLinkInput\"\n >\n {{ cancelSetLinkButton.label }}\n </dt-button>\n <dt-button\n :aria-label=\"confirmSetLinkButton.ariaLabel\"\n data-qa=\"dt-recipe-editor-set-link-confirm-btn\"\n size=\"sm\"\n @click=\"setLink\"\n >\n {{ confirmSetLinkButton.label }}\n </dt-button>\n </dt-stack>\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 :style=\"{ 'max-height': maxHeight }\"\n class=\"d-recipe-editor__content\"\n >\n <dt-rich-text-editor\n ref=\"richTextEditor\"\n v-model=\"internalInputValue\"\n :allow-inline-images=\"true\"\n :allow-line-breaks=\"true\"\n :hide-link-bubble-menu=\"true\"\n :auto-focus=\"autoFocus\"\n :editable=\"editable\"\n :input-aria-label=\"inputAriaLabel\"\n :input-class=\"`d-recipe-editor__content-input ${inputClass}`\"\n :link=\"true\"\n :output-format=\"htmlOutputFormat\"\n :placeholder=\"placeholder\"\n :use-div-tags=\"useDivTags\"\n data-qa=\"dt-rich-text-editor\"\n v-bind=\"$attrs\"\n @blur=\"onBlur\"\n @focus=\"onFocus\"\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 { DtButton } from '@/components/button';\nimport { DtPopover } from '@/components/popover';\nimport { DtStack } from '@/components/stack';\nimport { DtInput } from '@/components/input';\nimport { DtTooltip } from '@/components/tooltip';\nimport {\n DtIconAlignCenter,\n DtIconAlignJustify,\n DtIconAlignLeft,\n DtIconAlignRight,\n DtIconBold,\n DtIconCodeBlock,\n DtIconItalic,\n DtIconLightningBolt,\n DtIconLink2,\n DtIconListBullet,\n DtIconListOrdered,\n DtIconQuote,\n DtIconStrikethrough,\n DtIconUnderline,\n} from '@dialpad/dialtone-icons/vue3';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeEditor',\n\n components: {\n DtRichTextEditor,\n DtButton,\n DtPopover,\n DtStack,\n DtInput,\n DtTooltip,\n DtIconLightningBolt,\n DtIconBold,\n DtIconItalic,\n DtIconUnderline,\n DtIconStrikethrough,\n DtIconListBullet,\n DtIconListOrdered,\n DtIconAlignLeft,\n DtIconAlignCenter,\n DtIconAlignRight,\n DtIconAlignJustify,\n DtIconQuote,\n DtIconCodeBlock,\n DtIconLink2,\n },\n\n mixins: [],\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 * Use div tags instead of paragraph tags to show text\n */\n useDivTags: {\n type: Boolean,\n default: false,\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-recipe-editor__link',\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 {\n showBtn: this.showQuickRepliesButton,\n label: 'Quick reply',\n selector: 'quickReplies',\n icon: DtIconLightningBolt,\n dataQA: 'dt-recipe-editor-quick-replies-btn',\n tooltipMessage: 'Quick Reply',\n onClick: this.onQuickRepliesClick,\n },\n ].filter(button => button.showBtn);\n },\n\n textFormatButtons () {\n return [\n {\n showBtn: this.showBoldButton,\n selector: 'bold',\n icon: DtIconBold,\n dataQA: 'dt-recipe-editor-bold-btn',\n tooltipMessage: 'Bold',\n onClick: this.onBoldTextToggle,\n },\n {\n showBtn: this.showItalicsButton,\n selector: 'italic',\n icon: DtIconItalic,\n dataQA: 'dt-recipe-editor-italics-btn',\n tooltipMessage: 'Italics',\n onClick: this.onItalicTextToggle,\n },\n {\n showBtn: this.showUnderlineButton,\n selector: 'underline',\n icon: DtIconUnderline,\n dataQA: 'dt-recipe-editor-underline-btn',\n tooltipMessage: 'Underline',\n onClick: this.onUnderlineTextToggle,\n },\n {\n showBtn: this.showStrikeButton,\n selector: 'strike',\n icon: DtIconStrikethrough,\n dataQA: 'dt-recipe-editor-strike-btn',\n tooltipMessage: 'Strike',\n onClick: this.onStrikethroughTextToggle,\n },\n ].filter(button => button.showBtn);\n },\n\n alignmentButtons () {\n return [\n {\n showBtn: this.showAlignLeftButton,\n selector: { textAlign: 'left' },\n icon: DtIconAlignLeft,\n dataQA: 'dt-recipe-editor-align-left-btn',\n tooltipMessage: 'Align Left',\n onClick: () => this.onTextAlign('left'),\n },\n {\n showBtn: this.showAlignCenterButton,\n selector: { textAlign: 'center' },\n icon: DtIconAlignCenter,\n dataQA: 'dt-recipe-editor-align-center-btn',\n tooltipMessage: 'Align Center',\n onClick: () => this.onTextAlign('center'),\n },\n {\n showBtn: this.showAlignRightButton,\n selector: { textAlign: 'right' },\n icon: DtIconAlignRight,\n dataQA: 'dt-recipe-editor-align-right-btn',\n tooltipMessage: 'Align Right',\n onClick: () => this.onTextAlign('right'),\n },\n {\n showBtn: this.showAlignJustifyButton,\n selector: { textAlign: 'justify' },\n icon: DtIconAlignJustify,\n dataQA: 'dt-recipe-editor-align-justify-btn',\n tooltipMessage: 'Align Justify',\n onClick: () => this.onTextAlign('justify'),\n },\n ].filter(button => button.showBtn);\n },\n\n listButtons () {\n return [\n {\n showBtn: this.showListItemsButton,\n selector: 'bulletList',\n icon: DtIconListBullet,\n dataQA: 'dt-recipe-editor-list-items-btn',\n tooltipMessage: 'Bullet List',\n onClick: this.onBulletListToggle,\n },\n {\n showBtn: this.showOrderedListButton,\n selector: 'orderedList',\n icon: DtIconListOrdered,\n dataQA: 'dt-recipe-editor-ordered-list-items-btn',\n tooltipMessage: 'Ordered List',\n onClick: this.onOrderedListToggle,\n },\n ].filter(button => button.showBtn);\n },\n\n individualButtons () {\n return [\n {\n showBtn: this.showQuoteButton,\n selector: 'blockquote',\n icon: DtIconQuote,\n dataQA: 'dt-recipe-editor-blockquote-btn',\n tooltipMessage: 'Quote',\n onClick: this.onBlockquoteToggle,\n },\n {\n showBtn: this.showCodeBlockButton,\n selector: 'codeBlock',\n icon: DtIconCodeBlock,\n dataQA: 'dt-recipe-editor-code-block-btn',\n tooltipMessage: 'Code',\n onClick: this.onCodeBlockToggle,\n },\n ].filter(button => button.showBtn);\n },\n\n linkButton () {\n return {\n showBtn: this.showAddLink.showAddLinkButton,\n selector: 'link',\n icon: DtIconLink2,\n dataQA: 'dt-recipe-editor-add-link-btn',\n tooltipMessage: 'Link',\n onClick: this.openLinkInput,\n };\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 insertInMessageBody (messageContent) {\n this.$refs.richTextEditor?.editor.chain().focus().insertContent(messageContent).run();\n },\n\n setCursorPosition (position = null) {\n this.$refs.richTextEditor?.editor.chain().focus(position).run();\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"],"names":["editor","_createElementVNode","_createElementBlock","_createVNode","_withCtx","_openBlock","_Fragment","_renderList","_createBlock","_resolveDynamicComponent","_createTextVNode","_toDisplayString","_withModifiers","_createCommentVNode","_withKeys","_normalizeStyle","_mergeProps"],"mappings":"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"}