@dialpad/dialtone-vue 3.160.0 → 3.161.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/README.md +0 -18
  2. package/dist/common/emoji.cjs +1 -1
  3. package/dist/common/emoji.cjs.map +1 -1
  4. package/dist/common/emoji.js +1 -1
  5. package/dist/common/emoji.js.map +1 -1
  6. package/dist/component-documentation.json +1 -1
  7. package/dist/components/item_layout/item_layout.vue.cjs +7 -7
  8. package/dist/components/item_layout/item_layout.vue.cjs.map +1 -1
  9. package/dist/components/item_layout/item_layout.vue.js +7 -7
  10. package/dist/components/item_layout/item_layout.vue.js.map +1 -1
  11. package/dist/components/rich_text_editor/rich_text_editor.vue.cjs +41 -22
  12. package/dist/components/rich_text_editor/rich_text_editor.vue.cjs.map +1 -1
  13. package/dist/components/rich_text_editor/rich_text_editor.vue.js +41 -22
  14. package/dist/components/rich_text_editor/rich_text_editor.vue.js.map +1 -1
  15. package/dist/recipes/buttons/callbar_button/callbar_button.vue.cjs +35 -8
  16. package/dist/recipes/buttons/callbar_button/callbar_button.vue.cjs.map +1 -1
  17. package/dist/recipes/buttons/callbar_button/callbar_button.vue.js +36 -9
  18. package/dist/recipes/buttons/callbar_button/callbar_button.vue.js.map +1 -1
  19. package/dist/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.cjs +35 -9
  20. package/dist/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.cjs.map +1 -1
  21. package/dist/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.js +35 -9
  22. package/dist/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.js.map +1 -1
  23. package/dist/recipes/cards/ivr_node/ivr_node.vue.cjs +7 -8
  24. package/dist/recipes/cards/ivr_node/ivr_node.vue.cjs.map +1 -1
  25. package/dist/recipes/cards/ivr_node/ivr_node.vue.js +7 -8
  26. package/dist/recipes/cards/ivr_node/ivr_node.vue.js.map +1 -1
  27. package/dist/recipes/chips/grouped_chip/grouped_chip.vue.cjs +3 -4
  28. package/dist/recipes/chips/grouped_chip/grouped_chip.vue.cjs.map +1 -1
  29. package/dist/recipes/chips/grouped_chip/grouped_chip.vue.js +3 -4
  30. package/dist/recipes/chips/grouped_chip/grouped_chip.vue.js.map +1 -1
  31. package/dist/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.cjs +13 -11
  32. package/dist/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.cjs.map +1 -1
  33. package/dist/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.js +13 -11
  34. package/dist/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.js.map +1 -1
  35. package/dist/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.cjs +4 -5
  36. package/dist/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.cjs.map +1 -1
  37. package/dist/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.js +4 -5
  38. package/dist/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.js.map +1 -1
  39. package/dist/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.cjs +5 -6
  40. package/dist/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.cjs.map +1 -1
  41. package/dist/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.js +5 -6
  42. package/dist/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.js.map +1 -1
  43. package/dist/recipes/conversation_view/attachment_carousel/media_components/progress_bar.vue.cjs +3 -4
  44. package/dist/recipes/conversation_view/attachment_carousel/media_components/progress_bar.vue.cjs.map +1 -1
  45. package/dist/recipes/conversation_view/attachment_carousel/media_components/progress_bar.vue.js +3 -4
  46. package/dist/recipes/conversation_view/attachment_carousel/media_components/progress_bar.vue.js.map +1 -1
  47. package/dist/recipes/conversation_view/editor/editor.vue.cjs +23 -23
  48. package/dist/recipes/conversation_view/editor/editor.vue.cjs.map +1 -1
  49. package/dist/recipes/conversation_view/editor/editor.vue.js +23 -23
  50. package/dist/recipes/conversation_view/editor/editor.vue.js.map +1 -1
  51. package/dist/recipes/conversation_view/emoji_row/emoji_row.vue.cjs +8 -6
  52. package/dist/recipes/conversation_view/emoji_row/emoji_row.vue.cjs.map +1 -1
  53. package/dist/recipes/conversation_view/emoji_row/emoji_row.vue.js +8 -6
  54. package/dist/recipes/conversation_view/emoji_row/emoji_row.vue.js.map +1 -1
  55. package/dist/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.cjs +14 -15
  56. package/dist/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.cjs.map +1 -1
  57. package/dist/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.js +14 -15
  58. package/dist/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.js.map +1 -1
  59. package/dist/recipes/conversation_view/feed_item_pill/feed_item_pill_constants.cjs +3 -3
  60. package/dist/recipes/conversation_view/feed_item_pill/feed_item_pill_constants.cjs.map +1 -1
  61. package/dist/recipes/conversation_view/feed_item_pill/feed_item_pill_constants.js +3 -3
  62. package/dist/recipes/conversation_view/feed_item_pill/feed_item_pill_constants.js.map +1 -1
  63. package/dist/recipes/conversation_view/feed_item_row/feed_item_row.vue.cjs +28 -29
  64. package/dist/recipes/conversation_view/feed_item_row/feed_item_row.vue.cjs.map +1 -1
  65. package/dist/recipes/conversation_view/feed_item_row/feed_item_row.vue.js +28 -29
  66. package/dist/recipes/conversation_view/feed_item_row/feed_item_row.vue.js.map +1 -1
  67. package/dist/recipes/conversation_view/feed_item_row/feed_item_row_constants.cjs +2 -2
  68. package/dist/recipes/conversation_view/feed_item_row/feed_item_row_constants.cjs.map +1 -1
  69. package/dist/recipes/conversation_view/feed_item_row/feed_item_row_constants.js +2 -2
  70. package/dist/recipes/conversation_view/feed_item_row/feed_item_row_constants.js.map +1 -1
  71. package/dist/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.cjs +4 -5
  72. package/dist/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.cjs.map +1 -1
  73. package/dist/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.js +4 -5
  74. package/dist/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.js.map +1 -1
  75. package/dist/recipes/conversation_view/message_input/message_input.vue.cjs +21 -22
  76. package/dist/recipes/conversation_view/message_input/message_input.vue.cjs.map +1 -1
  77. package/dist/recipes/conversation_view/message_input/message_input.vue.js +21 -22
  78. package/dist/recipes/conversation_view/message_input/message_input.vue.js.map +1 -1
  79. package/dist/recipes/conversation_view/time_pill/time_pill.vue.cjs +2 -3
  80. package/dist/recipes/conversation_view/time_pill/time_pill.vue.cjs.map +1 -1
  81. package/dist/recipes/conversation_view/time_pill/time_pill.vue.js +2 -3
  82. package/dist/recipes/conversation_view/time_pill/time_pill.vue.js.map +1 -1
  83. package/dist/recipes/header/settings_menu_button/settings_menu_button.vue.cjs +4 -5
  84. package/dist/recipes/header/settings_menu_button/settings_menu_button.vue.cjs.map +1 -1
  85. package/dist/recipes/header/settings_menu_button/settings_menu_button.vue.js +4 -5
  86. package/dist/recipes/header/settings_menu_button/settings_menu_button.vue.js.map +1 -1
  87. package/dist/recipes/item_layout/contact_info/contact_info.vue.cjs +10 -11
  88. package/dist/recipes/item_layout/contact_info/contact_info.vue.cjs.map +1 -1
  89. package/dist/recipes/item_layout/contact_info/contact_info.vue.js +10 -11
  90. package/dist/recipes/item_layout/contact_info/contact_info.vue.js.map +1 -1
  91. package/dist/recipes/leftbar/callbox/callbox.vue.cjs +24 -25
  92. package/dist/recipes/leftbar/callbox/callbox.vue.cjs.map +1 -1
  93. package/dist/recipes/leftbar/callbox/callbox.vue.js +24 -25
  94. package/dist/recipes/leftbar/callbox/callbox.vue.js.map +1 -1
  95. package/dist/recipes/leftbar/callbox/callbox_constants.cjs +4 -4
  96. package/dist/recipes/leftbar/callbox/callbox_constants.cjs.map +1 -1
  97. package/dist/recipes/leftbar/callbox/callbox_constants.js +4 -4
  98. package/dist/recipes/leftbar/callbox/callbox_constants.js.map +1 -1
  99. package/dist/recipes/leftbar/contact_centers_row/contact_centers_row.vue.cjs +26 -27
  100. package/dist/recipes/leftbar/contact_centers_row/contact_centers_row.vue.cjs.map +1 -1
  101. package/dist/recipes/leftbar/contact_centers_row/contact_centers_row.vue.js +26 -27
  102. package/dist/recipes/leftbar/contact_centers_row/contact_centers_row.vue.js.map +1 -1
  103. package/dist/recipes/leftbar/contact_row/contact_row.vue.cjs +7 -7
  104. package/dist/recipes/leftbar/contact_row/contact_row.vue.cjs.map +1 -1
  105. package/dist/recipes/leftbar/contact_row/contact_row.vue.js +7 -7
  106. package/dist/recipes/leftbar/contact_row/contact_row.vue.js.map +1 -1
  107. package/dist/recipes/leftbar/general_row/general_row.vue.cjs +41 -43
  108. package/dist/recipes/leftbar/general_row/general_row.vue.cjs.map +1 -1
  109. package/dist/recipes/leftbar/general_row/general_row.vue.js +42 -44
  110. package/dist/recipes/leftbar/general_row/general_row.vue.js.map +1 -1
  111. package/dist/recipes/leftbar/general_row/leftbar_general_row_icon.vue.cjs +1 -1
  112. package/dist/recipes/leftbar/general_row/leftbar_general_row_icon.vue.cjs.map +1 -1
  113. package/dist/recipes/leftbar/general_row/leftbar_general_row_icon.vue.js +1 -1
  114. package/dist/recipes/leftbar/general_row/leftbar_general_row_icon.vue.js.map +1 -1
  115. package/dist/recipes/leftbar/unread_pill/unread_pill.vue.cjs +3 -4
  116. package/dist/recipes/leftbar/unread_pill/unread_pill.vue.cjs.map +1 -1
  117. package/dist/recipes/leftbar/unread_pill/unread_pill.vue.js +3 -4
  118. package/dist/recipes/leftbar/unread_pill/unread_pill.vue.js.map +1 -1
  119. package/dist/recipes/notices/top_banner_info/top_banner_info.vue.cjs +4 -5
  120. package/dist/recipes/notices/top_banner_info/top_banner_info.vue.cjs.map +1 -1
  121. package/dist/recipes/notices/top_banner_info/top_banner_info.vue.js +4 -5
  122. package/dist/recipes/notices/top_banner_info/top_banner_info.vue.js.map +1 -1
  123. package/dist/types/common/emoji/index.d.ts +1905 -17
  124. package/dist/types/common/emoji/index.d.ts.map +1 -1
  125. package/dist/types/components/rich_text_editor/rich_text_editor.vue.d.ts +11 -1
  126. package/dist/types/components/rich_text_editor/rich_text_editor.vue.d.ts.map +1 -1
  127. package/dist/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts +27 -0
  128. package/dist/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts.map +1 -1
  129. package/dist/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +27 -0
  130. package/dist/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts.map +1 -1
  131. package/dist/types/recipes/chips/grouped_chip/grouped_chip.vue.d.ts.map +1 -1
  132. package/dist/types/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.d.ts.map +1 -1
  133. package/dist/types/recipes/conversation_view/editor/editor.vue.d.ts.map +1 -1
  134. package/dist/types/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts.map +1 -1
  135. package/dist/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +4 -4
  136. package/dist/types/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts +2 -2
  137. package/dist/types/recipes/leftbar/general_row/general_row.vue.d.ts +6 -6
  138. package/dist/types/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
  139. package/package.json +6 -6
  140. package/dist/style.css +0 -1427
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
- ;/* empty css */
5
4
  const _pluginVue_exportHelper = require("../../../../_virtual/_plugin-vue_export-helper.cjs");
6
5
  const _sfc_main = {
7
6
  name: "DtProgressBar",
@@ -36,13 +35,13 @@ const _hoisted_2 = {
36
35
  r: "8",
37
36
  cx: "12",
38
37
  cy: "12",
39
- class: "progress-bar__circle"
38
+ class: "d-recipe-attachment-carousel__progress-bar-circle"
40
39
  };
41
40
  const _hoisted_3 = /* @__PURE__ */ vue.createElementVNode("circle", {
42
41
  r: "8",
43
42
  cx: "12",
44
43
  cy: "12",
45
- class: "progress-bar__circle"
44
+ class: "d-recipe-attachment-carousel__progress-bar-circle"
46
45
  }, null, -1);
47
46
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
48
47
  return vue.openBlock(), vue.createElementBlock("div", {
@@ -54,7 +53,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
54
53
  "aria-valuemax": "100"
55
54
  }, [
56
55
  (vue.openBlock(), vue.createElementBlock("svg", {
57
- class: "progress-bar",
56
+ class: "d-recipe-attachment-carousel__progress-bar",
58
57
  style: vue.normalizeStyle($options.cssVars)
59
58
  }, [
60
59
  vue.createElementVNode("circle", _hoisted_2, null, 512),
@@ -1 +1 @@
1
- {"version":3,"file":"progress_bar.vue.cjs","sources":["../../../../../recipes/conversation_view/attachment_carousel/media_components/progress_bar.vue"],"sourcesContent":["<script>\nexport default {\n name: 'DtProgressBar',\n props: {\n progressbarAriaLabel: {\n type: String,\n required: true,\n },\n\n progress: {\n type: Number,\n default: 20,\n },\n },\n\n data: () => ({\n circleCircumference: 50,\n }),\n\n computed: {\n cssVars () {\n return {\n '--stroke-dashoffset':\n (this.circleCircumference - (this.circleCircumference * this.progress / 100)),\n\n '--stroke-dasharray': this.circleCircumference,\n };\n },\n },\n\n mounted () {\n this.circleCircumference = this.$refs.progressbarCircle.getTotalLength();\n },\n};\n</script>\n\n<template>\n <div\n role=\"progressbar\"\n :aria-label=\"progressbarAriaLabel\"\n tabindex=\"-1\"\n :aria-valuenow=\"progress\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n >\n <svg\n class=\"progress-bar\"\n :style=\"cssVars\"\n >\n <circle\n ref=\"progressbarCircle\"\n r=\"8\"\n cx=\"12\"\n cy=\"12\"\n class=\"progress-bar__circle\"\n />\n <circle\n r=\"8\"\n cx=\"12\"\n cy=\"12\"\n class=\"progress-bar__circle\"\n />\n </svg>\n </div>\n</template>\n\n<style lang=\"less\">\n.progress-bar {\n width: var(--dt-size-550);\n height: var(--dt-size-550);\n}\n\n.progress-bar__circle {\n fill: none;\n stroke-width: 2;\n stroke-dasharray: var(--stroke-dasharray);\n}\n\n.progress-bar__circle:nth-child(1) {\n stroke-dashoffset: 0;\n stroke: var(--dt-color-black-100);\n}\n\n.progress-bar__circle:nth-child(2) {\n stroke-dashoffset: var(--stroke-dashoffset);\n stroke: var(--dt-color-purple-500);\n transition: stroke-dashoffset 500ms linear;\n}\n</style>\n"],"names":["_createElementVNode","_createElementBlock","_normalizeStyle"],"mappings":";;;;;AACA,MAAK,YAAU;AAAA,EACb,MAAM;AAAA,EACN,OAAO;AAAA,IACL,sBAAsB;AAAA,MACpB,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,IAED,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA,EACF;AAAA,EAED,MAAM,OAAO;AAAA,IACX,qBAAqB;AAAA,EACvB;AAAA,EAEA,UAAU;AAAA,IACR,UAAW;AACT,aAAO;AAAA,QACL,uBACG,KAAK,sBAAuB,KAAK,sBAAsB,KAAK,WAAW;AAAA,QAE1E,sBAAsB,KAAK;AAAA;IAE9B;AAAA,EACF;AAAA,EAED,UAAW;AACT,SAAK,sBAAsB,KAAK,MAAM,kBAAkB,eAAc;AAAA,EACvE;AACH;AAjCA,MAAA,aAAA,CAAA,cAAA,eAAA;;EAkDQ,KAAI;AAAA,EACJ,GAAE;AAAA,EACF,IAAG;AAAA,EACH,IAAG;AAAA,EACH,OAAM;;mBAERA,oBAKE,mBAAA,UAAA;AAAA,EAJA,GAAE;AAAA,EACF,IAAG;AAAA,EACH,IAAG;AAAA,EACH,OAAM;;;0BAvBZC,IA0BM,mBAAA,OAAA;AAAA,IAzBJ,MAAK;AAAA,IACJ,cAAY,OAAoB;AAAA,IACjC,UAAS;AAAA,IACR,iBAAe,OAAQ;AAAA,IACxB,iBAAc;AAAA,IACd,iBAAc;AAAA;sBAEdA,IAiBM,mBAAA,OAAA;AAAA,MAhBJ,OAAM;AAAA,MACL,OA/CPC,IAAAA,eA+Cc,SAAO,OAAA;AAAA;MAEfF,IAAAA,mBAME,UANF,YAME,MAAA,GAAA;AAAA,MACF;AAAA;EAxDN,GAAA,GAAA,UAAA;;;;"}
1
+ {"version":3,"file":"progress_bar.vue.cjs","sources":["../../../../../recipes/conversation_view/attachment_carousel/media_components/progress_bar.vue"],"sourcesContent":["<script>\nexport default {\n name: 'DtProgressBar',\n props: {\n progressbarAriaLabel: {\n type: String,\n required: true,\n },\n\n progress: {\n type: Number,\n default: 20,\n },\n },\n\n data: () => ({\n circleCircumference: 50,\n }),\n\n computed: {\n cssVars () {\n return {\n '--stroke-dashoffset':\n (this.circleCircumference - (this.circleCircumference * this.progress / 100)),\n\n '--stroke-dasharray': this.circleCircumference,\n };\n },\n },\n\n mounted () {\n this.circleCircumference = this.$refs.progressbarCircle.getTotalLength();\n },\n};\n</script>\n\n<template>\n <div\n role=\"progressbar\"\n :aria-label=\"progressbarAriaLabel\"\n tabindex=\"-1\"\n :aria-valuenow=\"progress\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n >\n <svg\n class=\"d-recipe-attachment-carousel__progress-bar\"\n :style=\"cssVars\"\n >\n <circle\n ref=\"progressbarCircle\"\n r=\"8\"\n cx=\"12\"\n cy=\"12\"\n class=\"d-recipe-attachment-carousel__progress-bar-circle\"\n />\n <circle\n r=\"8\"\n cx=\"12\"\n cy=\"12\"\n class=\"d-recipe-attachment-carousel__progress-bar-circle\"\n />\n </svg>\n </div>\n</template>\n"],"names":["_createElementVNode","_createElementBlock","_normalizeStyle"],"mappings":";;;;AACA,MAAK,YAAU;AAAA,EACb,MAAM;AAAA,EACN,OAAO;AAAA,IACL,sBAAsB;AAAA,MACpB,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,IAED,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA,EACF;AAAA,EAED,MAAM,OAAO;AAAA,IACX,qBAAqB;AAAA,EACvB;AAAA,EAEA,UAAU;AAAA,IACR,UAAW;AACT,aAAO;AAAA,QACL,uBACG,KAAK,sBAAuB,KAAK,sBAAsB,KAAK,WAAW;AAAA,QAE1E,sBAAsB,KAAK;AAAA;IAE9B;AAAA,EACF;AAAA,EAED,UAAW;AACT,SAAK,sBAAsB,KAAK,MAAM,kBAAkB,eAAc;AAAA,EACvE;AACH;AAjCA,MAAA,aAAA,CAAA,cAAA,eAAA;;EAkDQ,KAAI;AAAA,EACJ,GAAE;AAAA,EACF,IAAG;AAAA,EACH,IAAG;AAAA,EACH,OAAM;;mBAERA,oBAKE,mBAAA,UAAA;AAAA,EAJA,GAAE;AAAA,EACF,IAAG;AAAA,EACH,IAAG;AAAA,EACH,OAAM;;;0BAvBZC,IA0BM,mBAAA,OAAA;AAAA,IAzBJ,MAAK;AAAA,IACJ,cAAY,OAAoB;AAAA,IACjC,UAAS;AAAA,IACR,iBAAe,OAAQ;AAAA,IACxB,iBAAc;AAAA,IACd,iBAAc;AAAA;sBAEdA,IAiBM,mBAAA,OAAA;AAAA,MAhBJ,OAAM;AAAA,MACL,OA/CPC,IAAAA,eA+Cc,SAAO,OAAA;AAAA;MAEfF,IAAAA,mBAME,UANF,YAME,MAAA,GAAA;AAAA,MACF;AAAA;EAxDN,GAAA,GAAA,UAAA;;;;"}
@@ -1,5 +1,4 @@
1
1
  import { openBlock, createElementBlock, normalizeStyle, createElementVNode } from "vue";
2
- /* empty css */
3
2
  import _export_sfc from "../../../../_virtual/_plugin-vue_export-helper.js";
4
3
  const _sfc_main = {
5
4
  name: "DtProgressBar",
@@ -34,13 +33,13 @@ const _hoisted_2 = {
34
33
  r: "8",
35
34
  cx: "12",
36
35
  cy: "12",
37
- class: "progress-bar__circle"
36
+ class: "d-recipe-attachment-carousel__progress-bar-circle"
38
37
  };
39
38
  const _hoisted_3 = /* @__PURE__ */ createElementVNode("circle", {
40
39
  r: "8",
41
40
  cx: "12",
42
41
  cy: "12",
43
- class: "progress-bar__circle"
42
+ class: "d-recipe-attachment-carousel__progress-bar-circle"
44
43
  }, null, -1);
45
44
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
46
45
  return openBlock(), createElementBlock("div", {
@@ -52,7 +51,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
52
51
  "aria-valuemax": "100"
53
52
  }, [
54
53
  (openBlock(), createElementBlock("svg", {
55
- class: "progress-bar",
54
+ class: "d-recipe-attachment-carousel__progress-bar",
56
55
  style: normalizeStyle($options.cssVars)
57
56
  }, [
58
57
  createElementVNode("circle", _hoisted_2, null, 512),
@@ -1 +1 @@
1
- {"version":3,"file":"progress_bar.vue.js","sources":["../../../../../recipes/conversation_view/attachment_carousel/media_components/progress_bar.vue"],"sourcesContent":["<script>\nexport default {\n name: 'DtProgressBar',\n props: {\n progressbarAriaLabel: {\n type: String,\n required: true,\n },\n\n progress: {\n type: Number,\n default: 20,\n },\n },\n\n data: () => ({\n circleCircumference: 50,\n }),\n\n computed: {\n cssVars () {\n return {\n '--stroke-dashoffset':\n (this.circleCircumference - (this.circleCircumference * this.progress / 100)),\n\n '--stroke-dasharray': this.circleCircumference,\n };\n },\n },\n\n mounted () {\n this.circleCircumference = this.$refs.progressbarCircle.getTotalLength();\n },\n};\n</script>\n\n<template>\n <div\n role=\"progressbar\"\n :aria-label=\"progressbarAriaLabel\"\n tabindex=\"-1\"\n :aria-valuenow=\"progress\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n >\n <svg\n class=\"progress-bar\"\n :style=\"cssVars\"\n >\n <circle\n ref=\"progressbarCircle\"\n r=\"8\"\n cx=\"12\"\n cy=\"12\"\n class=\"progress-bar__circle\"\n />\n <circle\n r=\"8\"\n cx=\"12\"\n cy=\"12\"\n class=\"progress-bar__circle\"\n />\n </svg>\n </div>\n</template>\n\n<style lang=\"less\">\n.progress-bar {\n width: var(--dt-size-550);\n height: var(--dt-size-550);\n}\n\n.progress-bar__circle {\n fill: none;\n stroke-width: 2;\n stroke-dasharray: var(--stroke-dasharray);\n}\n\n.progress-bar__circle:nth-child(1) {\n stroke-dashoffset: 0;\n stroke: var(--dt-color-black-100);\n}\n\n.progress-bar__circle:nth-child(2) {\n stroke-dashoffset: var(--stroke-dashoffset);\n stroke: var(--dt-color-purple-500);\n transition: stroke-dashoffset 500ms linear;\n}\n</style>\n"],"names":["_createElementVNode","_createElementBlock","_normalizeStyle"],"mappings":";;;AACA,MAAK,YAAU;AAAA,EACb,MAAM;AAAA,EACN,OAAO;AAAA,IACL,sBAAsB;AAAA,MACpB,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,IAED,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA,EACF;AAAA,EAED,MAAM,OAAO;AAAA,IACX,qBAAqB;AAAA,EACvB;AAAA,EAEA,UAAU;AAAA,IACR,UAAW;AACT,aAAO;AAAA,QACL,uBACG,KAAK,sBAAuB,KAAK,sBAAsB,KAAK,WAAW;AAAA,QAE1E,sBAAsB,KAAK;AAAA;IAE9B;AAAA,EACF;AAAA,EAED,UAAW;AACT,SAAK,sBAAsB,KAAK,MAAM,kBAAkB,eAAc;AAAA,EACvE;AACH;AAjCA,MAAA,aAAA,CAAA,cAAA,eAAA;;EAkDQ,KAAI;AAAA,EACJ,GAAE;AAAA,EACF,IAAG;AAAA,EACH,IAAG;AAAA,EACH,OAAM;;mBAERA,mCAKE,UAAA;AAAA,EAJA,GAAE;AAAA,EACF,IAAG;AAAA,EACH,IAAG;AAAA,EACH,OAAM;;;sBAvBZC,mBA0BM,OAAA;AAAA,IAzBJ,MAAK;AAAA,IACJ,cAAY,OAAoB;AAAA,IACjC,UAAS;AAAA,IACR,iBAAe,OAAQ;AAAA,IACxB,iBAAc;AAAA,IACd,iBAAc;AAAA;kBAEdA,mBAiBM,OAAA;AAAA,MAhBJ,OAAM;AAAA,MACL,OA/CPC,eA+Cc,SAAO,OAAA;AAAA;MAEfF,mBAME,UANF,YAME,MAAA,GAAA;AAAA,MACF;AAAA;EAxDN,GAAA,GAAA,UAAA;;;"}
1
+ {"version":3,"file":"progress_bar.vue.js","sources":["../../../../../recipes/conversation_view/attachment_carousel/media_components/progress_bar.vue"],"sourcesContent":["<script>\nexport default {\n name: 'DtProgressBar',\n props: {\n progressbarAriaLabel: {\n type: String,\n required: true,\n },\n\n progress: {\n type: Number,\n default: 20,\n },\n },\n\n data: () => ({\n circleCircumference: 50,\n }),\n\n computed: {\n cssVars () {\n return {\n '--stroke-dashoffset':\n (this.circleCircumference - (this.circleCircumference * this.progress / 100)),\n\n '--stroke-dasharray': this.circleCircumference,\n };\n },\n },\n\n mounted () {\n this.circleCircumference = this.$refs.progressbarCircle.getTotalLength();\n },\n};\n</script>\n\n<template>\n <div\n role=\"progressbar\"\n :aria-label=\"progressbarAriaLabel\"\n tabindex=\"-1\"\n :aria-valuenow=\"progress\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n >\n <svg\n class=\"d-recipe-attachment-carousel__progress-bar\"\n :style=\"cssVars\"\n >\n <circle\n ref=\"progressbarCircle\"\n r=\"8\"\n cx=\"12\"\n cy=\"12\"\n class=\"d-recipe-attachment-carousel__progress-bar-circle\"\n />\n <circle\n r=\"8\"\n cx=\"12\"\n cy=\"12\"\n class=\"d-recipe-attachment-carousel__progress-bar-circle\"\n />\n </svg>\n </div>\n</template>\n"],"names":["_createElementVNode","_createElementBlock","_normalizeStyle"],"mappings":";;AACA,MAAK,YAAU;AAAA,EACb,MAAM;AAAA,EACN,OAAO;AAAA,IACL,sBAAsB;AAAA,MACpB,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,IAED,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA,EACF;AAAA,EAED,MAAM,OAAO;AAAA,IACX,qBAAqB;AAAA,EACvB;AAAA,EAEA,UAAU;AAAA,IACR,UAAW;AACT,aAAO;AAAA,QACL,uBACG,KAAK,sBAAuB,KAAK,sBAAsB,KAAK,WAAW;AAAA,QAE1E,sBAAsB,KAAK;AAAA;IAE9B;AAAA,EACF;AAAA,EAED,UAAW;AACT,SAAK,sBAAsB,KAAK,MAAM,kBAAkB,eAAc;AAAA,EACvE;AACH;AAjCA,MAAA,aAAA,CAAA,cAAA,eAAA;;EAkDQ,KAAI;AAAA,EACJ,GAAE;AAAA,EACF,IAAG;AAAA,EACH,IAAG;AAAA,EACH,OAAM;;mBAERA,mCAKE,UAAA;AAAA,EAJA,GAAE;AAAA,EACF,IAAG;AAAA,EACH,IAAG;AAAA,EACH,OAAM;;;sBAvBZC,mBA0BM,OAAA;AAAA,IAzBJ,MAAK;AAAA,IACJ,cAAY,OAAoB;AAAA,IACjC,UAAS;AAAA,IACR,iBAAe,OAAQ;AAAA,IACxB,iBAAc;AAAA,IACd,iBAAc;AAAA;kBAEdA,mBAiBM,OAAA;AAAA,MAhBJ,OAAM;AAAA,MACL,OA/CPC,eA+Cc,SAAO,OAAA;AAAA;MAEfF,mBAME,UANF,YAME,MAAA,GAAA;AAAA,MACF;AAAA;EAxDN,GAAA,GAAA,UAAA;;;"}
@@ -3,7 +3,6 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const editor_constants = require("./editor_constants.cjs");
4
4
  const vue3 = require("@dialpad/dialtone-icons/vue3");
5
5
  const vue = require("vue");
6
- ;/* empty css */
7
6
  const _pluginVue_exportHelper = require("../../../_virtual/_plugin-vue_export-helper.cjs");
8
7
  const rich_text_editor = require("../../../components/rich_text_editor/rich_text_editor.vue.cjs");
9
8
  const button = require("../../../components/button/button.vue.cjs");
@@ -314,7 +313,7 @@ const _sfc_main = {
314
313
  label: "Quick reply",
315
314
  selector: "quickReplies",
316
315
  icon: vue3.DtIconLightningBolt,
317
- dataQA: "dt-editor-quick-replies-btn",
316
+ dataQA: "dt-recipe-editor-quick-replies-btn",
318
317
  tooltipMessage: "Quick Reply",
319
318
  onClick: this.onQuickRepliesClick
320
319
  }
@@ -326,7 +325,7 @@ const _sfc_main = {
326
325
  showBtn: this.showBoldButton,
327
326
  selector: "bold",
328
327
  icon: vue3.DtIconBold,
329
- dataQA: "dt-editor-bold-btn",
328
+ dataQA: "dt-recipe-editor-bold-btn",
330
329
  tooltipMessage: "Bold",
331
330
  onClick: this.onBoldTextToggle
332
331
  },
@@ -334,7 +333,7 @@ const _sfc_main = {
334
333
  showBtn: this.showItalicsButton,
335
334
  selector: "italic",
336
335
  icon: vue3.DtIconItalic,
337
- dataQA: "dt-editor-italics-btn",
336
+ dataQA: "dt-recipe-editor-italics-btn",
338
337
  tooltipMessage: "Italics",
339
338
  onClick: this.onItalicTextToggle
340
339
  },
@@ -342,7 +341,7 @@ const _sfc_main = {
342
341
  showBtn: this.showUnderlineButton,
343
342
  selector: "underline",
344
343
  icon: vue3.DtIconUnderline,
345
- dataQA: "dt-editor-underline-btn",
344
+ dataQA: "dt-recipe-editor-underline-btn",
346
345
  tooltipMessage: "Underline",
347
346
  onClick: this.onUnderlineTextToggle
348
347
  },
@@ -350,7 +349,7 @@ const _sfc_main = {
350
349
  showBtn: this.showStrikeButton,
351
350
  selector: "strike",
352
351
  icon: vue3.DtIconStrikethrough,
353
- dataQA: "dt-editor-strike-btn",
352
+ dataQA: "dt-recipe-editor-strike-btn",
354
353
  tooltipMessage: "Strike",
355
354
  onClick: this.onStrikethroughTextToggle
356
355
  }
@@ -362,7 +361,7 @@ const _sfc_main = {
362
361
  showBtn: this.showAlignLeftButton,
363
362
  selector: { textAlign: "left" },
364
363
  icon: vue3.DtIconAlignLeft,
365
- dataQA: "dt-editor-align-left-btn",
364
+ dataQA: "dt-recipe-editor-align-left-btn",
366
365
  tooltipMessage: "Align Left",
367
366
  onClick: () => this.onTextAlign("left")
368
367
  },
@@ -370,7 +369,7 @@ const _sfc_main = {
370
369
  showBtn: this.showAlignCenterButton,
371
370
  selector: { textAlign: "center" },
372
371
  icon: vue3.DtIconAlignCenter,
373
- dataQA: "dt-editor-align-center-btn",
372
+ dataQA: "dt-recipe-editor-align-center-btn",
374
373
  tooltipMessage: "Align Center",
375
374
  onClick: () => this.onTextAlign("center")
376
375
  },
@@ -378,7 +377,7 @@ const _sfc_main = {
378
377
  showBtn: this.showAlignRightButton,
379
378
  selector: { textAlign: "right" },
380
379
  icon: vue3.DtIconAlignRight,
381
- dataQA: "dt-editor-align-right-btn",
380
+ dataQA: "dt-recipe-editor-align-right-btn",
382
381
  tooltipMessage: "Align Right",
383
382
  onClick: () => this.onTextAlign("right")
384
383
  },
@@ -386,7 +385,7 @@ const _sfc_main = {
386
385
  showBtn: this.showAlignJustifyButton,
387
386
  selector: { textAlign: "justify" },
388
387
  icon: vue3.DtIconAlignJustify,
389
- dataQA: "dt-editor-align-justify-btn",
388
+ dataQA: "dt-recipe-editor-align-justify-btn",
390
389
  tooltipMessage: "Align Justify",
391
390
  onClick: () => this.onTextAlign("justify")
392
391
  }
@@ -398,7 +397,7 @@ const _sfc_main = {
398
397
  showBtn: this.showListItemsButton,
399
398
  selector: "bulletList",
400
399
  icon: vue3.DtIconListBullet,
401
- dataQA: "dt-editor-list-items-btn",
400
+ dataQA: "dt-recipe-editor-list-items-btn",
402
401
  tooltipMessage: "Bullet List",
403
402
  onClick: this.onBulletListToggle
404
403
  },
@@ -406,7 +405,7 @@ const _sfc_main = {
406
405
  showBtn: this.showOrderedListButton,
407
406
  selector: "orderedList",
408
407
  icon: vue3.DtIconListOrdered,
409
- dataQA: "dt-editor-ordered-list-items-btn",
408
+ dataQA: "dt-recipe-editor-ordered-list-items-btn",
410
409
  tooltipMessage: "Ordered List",
411
410
  onClick: this.onOrderedListToggle
412
411
  }
@@ -418,7 +417,7 @@ const _sfc_main = {
418
417
  showBtn: this.showQuoteButton,
419
418
  selector: "blockquote",
420
419
  icon: vue3.DtIconQuote,
421
- dataQA: "dt-editor-blockquote-btn",
420
+ dataQA: "dt-recipe-editor-blockquote-btn",
422
421
  tooltipMessage: "Quote",
423
422
  onClick: this.onBlockquoteToggle
424
423
  },
@@ -426,7 +425,7 @@ const _sfc_main = {
426
425
  showBtn: this.showCodeBlockButton,
427
426
  selector: "codeBlock",
428
427
  icon: vue3.DtIconCodeBlock,
429
- dataQA: "dt-editor-code-block-btn",
428
+ dataQA: "dt-recipe-editor-code-block-btn",
430
429
  tooltipMessage: "Code",
431
430
  onClick: this.onCodeBlockToggle
432
431
  }
@@ -437,7 +436,7 @@ const _sfc_main = {
437
436
  showBtn: this.showAddLink.showAddLinkButton,
438
437
  selector: "link",
439
438
  icon: vue3.DtIconLink2,
440
- dataQA: "dt-editor-add-link-btn",
439
+ dataQA: "dt-recipe-editor-add-link-btn",
441
440
  tooltipMessage: "Link",
442
441
  onClick: this.openLinkInput
443
442
  };
@@ -554,7 +553,7 @@ const _sfc_main = {
554
553
  }
555
554
  }
556
555
  };
557
- const _hoisted_1 = /* @__PURE__ */ vue.createElementVNode("div", { class: "dt-editor--button-group-divider" }, null, -1);
556
+ const _hoisted_1 = /* @__PURE__ */ vue.createElementVNode("div", { class: "d-recipe-editor__button-group-divider" }, null, -1);
558
557
  const _hoisted_2 = { key: 0 };
559
558
  const _hoisted_3 = { class: "d-ml8 d-mr12" };
560
559
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
@@ -565,7 +564,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
565
564
  const _component_dt_popover = vue.resolveComponent("dt-popover");
566
565
  const _component_dt_rich_text_editor = vue.resolveComponent("dt-rich-text-editor");
567
566
  return vue.openBlock(), vue.createElementBlock("div", {
568
- "data-qa": "dt-editor",
567
+ "data-qa": "dt-recipe-editor",
569
568
  role: "presentation",
570
569
  class: "d-d-flex d-fd-column",
571
570
  onClick: _cache[4] || (_cache[4] = ($event) => _ctx.$refs.richTextEditor.focusEditor())
@@ -573,7 +572,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
573
572
  vue.createVNode(_component_dt_stack, {
574
573
  direction: "row",
575
574
  gap: "450",
576
- class: "d-p8 dt-editor--top-bar-background"
575
+ class: "d-p8 d-recipe-editor__top-bar-background"
577
576
  }, {
578
577
  default: vue.withCtx(() => [
579
578
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList($options.buttonGroups, (buttonGroup) => {
@@ -631,7 +630,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
631
630
  placement: "bottom-start",
632
631
  "visually-hidden-close": true,
633
632
  "visually-hidden-close-label": "Close link input popover",
634
- "data-qa": "dt-editor-link-input-popover",
633
+ "data-qa": "dt-recipe-editor-link-input-popover",
635
634
  "show-close-button": false,
636
635
  onClick: [
637
636
  $options.onInputFocus,
@@ -677,7 +676,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
677
676
  modelValue: $data.linkInput,
678
677
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $data.linkInput = $event),
679
678
  "input-aria-label": $props.showAddLink.setLinkInputAriaLabel,
680
- "data-qa": "dt-editor-link-input",
679
+ "data-qa": "dt-recipe-editor-link-input",
681
680
  placeholder: $props.setLinkPlaceholder,
682
681
  "input-wrapper-class": "d-bgc-secondary d-mt6 d-bar5 d-ba d-baw1 d-bc-default d-py2 d-ol-none",
683
682
  onClick: [
@@ -696,7 +695,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
696
695
  importance: "clear",
697
696
  kind: "muted",
698
697
  size: "sm",
699
- "data-qa": "dt-editor-remove-link-btn",
698
+ "data-qa": "dt-recipe-editor-remove-link-btn",
700
699
  onClick: $options.removeLink
701
700
  }, {
702
701
  default: vue.withCtx(() => [
@@ -710,7 +709,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
710
709
  importance: "clear",
711
710
  kind: "muted",
712
711
  size: "sm",
713
- "data-qa": "dt-editor-set-link-cancel-btn",
712
+ "data-qa": "dt-recipe-editor-set-link-cancel-btn",
714
713
  onClick: $options.closeLinkInput
715
714
  }, {
716
715
  default: vue.withCtx(() => [
@@ -722,7 +721,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
722
721
  class: "d-mx2",
723
722
  size: "sm",
724
723
  "aria-label": $props.confirmSetLinkButton.ariaLabel,
725
- "data-qa": "dt-editor-set-link-confirm-btn",
724
+ "data-qa": "dt-recipe-editor-set-link-confirm-btn",
726
725
  onClick: $options.setLink
727
726
  }, {
728
727
  default: vue.withCtx(() => [
@@ -756,6 +755,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
756
755
  "auto-focus": $props.autoFocus,
757
756
  placeholder: $props.placeholder,
758
757
  "allow-line-breaks": true,
758
+ "allow-inline-images": true,
759
759
  link: true
760
760
  }, _ctx.$attrs, {
761
761
  onFocus: $options.onFocus,
@@ -1 +1 @@
1
- {"version":3,"file":"editor.vue.cjs","sources":["../../../../recipes/conversation_view/editor/editor.vue"],"sourcesContent":["<!-- eslint-disable vue/no-restricted-class -->\n<template>\n <div\n data-qa=\"dt-editor\"\n role=\"presentation\"\n class=\"d-d-flex d-fd-column\"\n @click=\"$refs.richTextEditor.focusEditor()\"\n >\n <!-- Section for the top UI -->\n <dt-stack\n direction=\"row\"\n gap=\"450\"\n class=\"d-p8 dt-editor--top-bar-background\"\n >\n <dt-stack\n v-for=\"buttonGroup in buttonGroups\"\n :key=\"buttonGroup.key\"\n direction=\"row\"\n gap=\"300\"\n >\n <dt-tooltip\n v-for=\"button in buttonGroup.buttonGroup\"\n :key=\"`${buttonGroup.key}-${JSON.stringify(button.selector)}`\"\n :message=\"button.tooltipMessage\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n :data-qa=\"button.dataQA\"\n importance=\"clear\"\n kind=\"muted\"\n :active=\"$refs.richTextEditor?.editor?.isActive(button.selector)\"\n size=\"xs\"\n :aria-label=\"button.tooltipMessage\"\n :class=\"{ 'd-btn--icon-only': !button.label }\"\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=\"dt-editor--button-group-divider\" />\n </dt-stack>\n <dt-stack\n v-if=\"linkButton.showBtn\"\n direction=\"row\"\n gap=\"300\"\n >\n <dt-popover\n :open=\"showLinkInput\"\n placement=\"bottom-start\"\n :visually-hidden-close=\"true\"\n :visually-hidden-close-label=\"'Close link input popover'\"\n data-qa=\"dt-editor-link-input-popover\"\n :show-close-button=\"false\"\n @click=\"onInputFocus\"\n @click.stop=\"onInputFocus\"\n @opened=\"updateInput\"\n >\n <template #anchor>\n <dt-tooltip\n :key=\"linkButton.key\"\n :message=\"linkButton.tooltipMessage\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n :data-qa=\"linkButton.dataQA\"\n importance=\"clear\"\n kind=\"muted\"\n class=\"d-ol-none\"\n :active=\"\n $refs.richTextEditor?.editor?.isActive(linkButton.selector)\n \"\n size=\"xs\"\n :aria-label=\"linkButton.tooltipMessage\"\n @click=\"linkButton.onClick()\"\n >\n <template #icon>\n <component\n :is=\"linkButton.icon\"\n size=\"200\"\n class=\"d-fw-bold\"\n />\n </template>\n </dt-button>\n </template>\n </dt-tooltip>\n </template>\n\n <template #content>\n <span v-if=\"showAddLink.setLinkTitle.length > 0\">\n {{ showAddLink.setLinkTitle }}\n </span>\n <dt-input\n v-model=\"linkInput\"\n :input-aria-label=\"showAddLink.setLinkInputAriaLabel\"\n data-qa=\"dt-editor-link-input\"\n :placeholder=\"setLinkPlaceholder\"\n input-wrapper-class=\"d-bgc-secondary d-mt6 d-bar5 d-ba d-baw1 d-bc-default d-py2 d-ol-none\"\n @click=\"onInputFocus\"\n @click.stop=\"onInputFocus\"\n @focus=\"onInputFocus\"\n @keydown.enter=\"setLink\"\n />\n </template>\n <template #footerContent>\n <div class=\"d-ml8 d-mr12\">\n <dt-button\n class=\"d-mx2\"\n :aria-label=\"removeLinkButton.ariaLabel\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"sm\"\n data-qa=\"dt-editor-remove-link-btn\"\n @click=\"removeLink\"\n >\n {{ removeLinkButton.label }}\n </dt-button>\n <dt-button\n class=\"d-mx2\"\n :aria-label=\"cancelSetLinkButton.ariaLabel\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"sm\"\n data-qa=\"dt-editor-set-link-cancel-btn\"\n @click=\"closeLinkInput\"\n >\n {{ cancelSetLinkButton.label }}\n </dt-button>\n <dt-button\n class=\"d-mx2\"\n size=\"sm\"\n :aria-label=\"confirmSetLinkButton.ariaLabel\"\n data-qa=\"dt-editor-set-link-confirm-btn\"\n @click=\"setLink\"\n >\n {{ confirmSetLinkButton.label }}\n </dt-button>\n </div>\n </template>\n </dt-popover>\n </dt-stack>\n </dt-stack>\n\n <!-- Some wrapper to restrict the height and show the scrollbar -->\n <div\n class=\"d-of-auto d-mx12 d-mt12 d-mb16 d-c-text\"\n :style=\"{ 'max-height': maxHeight }\"\n >\n <dt-rich-text-editor\n ref=\"richTextEditor\"\n v-model=\"internalInputValue\"\n data-qa=\"dt-rich-text-editor\"\n :editable=\"editable\"\n :input-aria-label=\"inputAriaLabel\"\n :input-class=\"`d-ml16 d-ol-none d-my6 ${inputClass}`\"\n :output-format=\"htmlOutputFormat\"\n :auto-focus=\"autoFocus\"\n :placeholder=\"placeholder\"\n :allow-line-breaks=\"true\"\n :link=\"true\"\n v-bind=\"$attrs\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @input=\"onInput($event)\"\n />\n </div>\n </div>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport {\n DtRichTextEditor,\n RICH_TEXT_EDITOR_OUTPUT_FORMATS,\n RICH_TEXT_EDITOR_AUTOFOCUS_TYPES,\n} from '@/components/rich_text_editor';\nimport {\n EDITOR_SUPPORTED_LINK_PROTOCOLS,\n EDITOR_DEFAULT_LINK_PREFIX,\n} from './editor_constants.js';\nimport { 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 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-link d-c-text d-d-inline-block',\n },\n\n showLinkInput: false,\n linkInput: '',\n };\n },\n\n computed: {\n inputLength () {\n return this.internalInputValue.length;\n },\n\n htmlOutputFormat () {\n return RICH_TEXT_EDITOR_OUTPUT_FORMATS[2];\n },\n\n showingTextFormatButtons () {\n return (\n this.showBoldButton ||\n this.showItalicsButton ||\n this.showStrikeButton ||\n this.showUnderlineButton\n );\n },\n\n showingAlignmentButtons () {\n return (\n this.showAlignLeftButton ||\n this.showAlignCenterButton ||\n this.showAlignRightButton ||\n this.showAlignJustifyButton\n );\n },\n\n showingListButtons () {\n return this.showListItemsButton || this.showOrderedListButton;\n },\n\n buttonGroups () {\n const individualButtonStacks = this.individualButtons.map(\n (buttonData) => ({\n key: buttonData.selector,\n buttonGroup: [buttonData],\n }),\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-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-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-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-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-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-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-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-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-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-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-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-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-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-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) =>\n prefixRegex.test(this.linkInput),\n );\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 =\n 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 (\n this.$refs.richTextEditor?.editor?.isActive({ textAlign: alignment })\n ) {\n // If this alignment type is already set here, unset it\n return this.$refs.richTextEditor?.editor\n .chain()\n .focus()\n .unsetTextAlign()\n .run();\n }\n this.$refs.richTextEditor?.editor\n .chain()\n .focus()\n .setTextAlign(alignment)\n .run();\n },\n\n onBulletListToggle () {\n this.$refs.richTextEditor?.editor\n .chain()\n .focus()\n .toggleBulletList()\n .run();\n },\n\n onOrderedListToggle () {\n this.$refs.richTextEditor?.editor\n .chain()\n .focus()\n .toggleOrderedList()\n .run();\n },\n\n onCodeBlockToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleCodeBlock().run();\n },\n\n onQuickRepliesClick () {\n this.$emit('quick-replies-click');\n },\n\n onBlockquoteToggle () {\n this.$refs.richTextEditor?.editor\n .chain()\n .focus()\n .toggleBlockquote()\n .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</script>\n\n<style lang=\"less\">\n.dt-editor--top-bar-background {\n background-color: var(--dt-color-surface-secondary);\n}\n\n.dt-editor--button-group-divider {\n margin-left: var(--dt-space-400);\n height: calc(var(--dt-size-550) + var(--dt-size-300));\n width: var(--dt-size-100);\n background: var(--dt-color-border-subtle);\n}\n</style>\n"],"names":["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","_normalizeClass","_resolveDynamicComponent","_createTextVNode","_toDisplayString","_withModifiers","_createCommentVNode","_withKeys","_normalizeStyle","_mergeProps"],"mappings":"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"}
1
+ {"version":3,"file":"editor.vue.cjs","sources":["../../../../recipes/conversation_view/editor/editor.vue"],"sourcesContent":["<!-- eslint-disable vue/no-restricted-class -->\n<template>\n <div\n data-qa=\"dt-recipe-editor\"\n role=\"presentation\"\n class=\"d-d-flex d-fd-column\"\n @click=\"$refs.richTextEditor.focusEditor()\"\n >\n <!-- Section for the top UI -->\n <dt-stack\n direction=\"row\"\n gap=\"450\"\n class=\"d-p8 d-recipe-editor__top-bar-background\"\n >\n <dt-stack\n v-for=\"buttonGroup in buttonGroups\"\n :key=\"buttonGroup.key\"\n direction=\"row\"\n gap=\"300\"\n >\n <dt-tooltip\n v-for=\"button in buttonGroup.buttonGroup\"\n :key=\"`${buttonGroup.key}-${JSON.stringify(button.selector)}`\"\n :message=\"button.tooltipMessage\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n :data-qa=\"button.dataQA\"\n importance=\"clear\"\n kind=\"muted\"\n :active=\"$refs.richTextEditor?.editor?.isActive(button.selector)\"\n size=\"xs\"\n :aria-label=\"button.tooltipMessage\"\n :class=\"{ 'd-btn--icon-only': !button.label }\"\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 placement=\"bottom-start\"\n :visually-hidden-close=\"true\"\n :visually-hidden-close-label=\"'Close link input popover'\"\n data-qa=\"dt-recipe-editor-link-input-popover\"\n :show-close-button=\"false\"\n @click=\"onInputFocus\"\n @click.stop=\"onInputFocus\"\n @opened=\"updateInput\"\n >\n <template #anchor>\n <dt-tooltip\n :key=\"linkButton.key\"\n :message=\"linkButton.tooltipMessage\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n :data-qa=\"linkButton.dataQA\"\n importance=\"clear\"\n kind=\"muted\"\n class=\"d-ol-none\"\n :active=\"\n $refs.richTextEditor?.editor?.isActive(linkButton.selector)\n \"\n size=\"xs\"\n :aria-label=\"linkButton.tooltipMessage\"\n @click=\"linkButton.onClick()\"\n >\n <template #icon>\n <component\n :is=\"linkButton.icon\"\n size=\"200\"\n class=\"d-fw-bold\"\n />\n </template>\n </dt-button>\n </template>\n </dt-tooltip>\n </template>\n\n <template #content>\n <span v-if=\"showAddLink.setLinkTitle.length > 0\">\n {{ showAddLink.setLinkTitle }}\n </span>\n <dt-input\n v-model=\"linkInput\"\n :input-aria-label=\"showAddLink.setLinkInputAriaLabel\"\n data-qa=\"dt-recipe-editor-link-input\"\n :placeholder=\"setLinkPlaceholder\"\n input-wrapper-class=\"d-bgc-secondary d-mt6 d-bar5 d-ba d-baw1 d-bc-default d-py2 d-ol-none\"\n @click=\"onInputFocus\"\n @click.stop=\"onInputFocus\"\n @focus=\"onInputFocus\"\n @keydown.enter=\"setLink\"\n />\n </template>\n <template #footerContent>\n <div class=\"d-ml8 d-mr12\">\n <dt-button\n class=\"d-mx2\"\n :aria-label=\"removeLinkButton.ariaLabel\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"sm\"\n data-qa=\"dt-recipe-editor-remove-link-btn\"\n @click=\"removeLink\"\n >\n {{ removeLinkButton.label }}\n </dt-button>\n <dt-button\n class=\"d-mx2\"\n :aria-label=\"cancelSetLinkButton.ariaLabel\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"sm\"\n data-qa=\"dt-recipe-editor-set-link-cancel-btn\"\n @click=\"closeLinkInput\"\n >\n {{ cancelSetLinkButton.label }}\n </dt-button>\n <dt-button\n class=\"d-mx2\"\n size=\"sm\"\n :aria-label=\"confirmSetLinkButton.ariaLabel\"\n data-qa=\"dt-recipe-editor-set-link-confirm-btn\"\n @click=\"setLink\"\n >\n {{ confirmSetLinkButton.label }}\n </dt-button>\n </div>\n </template>\n </dt-popover>\n </dt-stack>\n </dt-stack>\n\n <!-- Some wrapper to restrict the height and show the scrollbar -->\n <div\n class=\"d-of-auto d-mx12 d-mt12 d-mb16 d-c-text\"\n :style=\"{ 'max-height': maxHeight }\"\n >\n <dt-rich-text-editor\n ref=\"richTextEditor\"\n v-model=\"internalInputValue\"\n data-qa=\"dt-rich-text-editor\"\n :editable=\"editable\"\n :input-aria-label=\"inputAriaLabel\"\n :input-class=\"`d-ml16 d-ol-none d-my6 ${inputClass}`\"\n :output-format=\"htmlOutputFormat\"\n :auto-focus=\"autoFocus\"\n :placeholder=\"placeholder\"\n :allow-line-breaks=\"true\"\n :allow-inline-images=\"true\"\n :link=\"true\"\n v-bind=\"$attrs\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @input=\"onInput($event)\"\n />\n </div>\n </div>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport {\n DtRichTextEditor,\n RICH_TEXT_EDITOR_OUTPUT_FORMATS,\n RICH_TEXT_EDITOR_AUTOFOCUS_TYPES,\n} from '@/components/rich_text_editor';\nimport {\n EDITOR_SUPPORTED_LINK_PROTOCOLS,\n EDITOR_DEFAULT_LINK_PREFIX,\n} from './editor_constants.js';\nimport { 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 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-link d-c-text d-d-inline-block',\n },\n\n showLinkInput: false,\n linkInput: '',\n };\n },\n\n computed: {\n inputLength () {\n return this.internalInputValue.length;\n },\n\n htmlOutputFormat () {\n return RICH_TEXT_EDITOR_OUTPUT_FORMATS[2];\n },\n\n showingTextFormatButtons () {\n return (\n this.showBoldButton ||\n this.showItalicsButton ||\n this.showStrikeButton ||\n this.showUnderlineButton\n );\n },\n\n showingAlignmentButtons () {\n return (\n this.showAlignLeftButton ||\n this.showAlignCenterButton ||\n this.showAlignRightButton ||\n this.showAlignJustifyButton\n );\n },\n\n showingListButtons () {\n return this.showListItemsButton || this.showOrderedListButton;\n },\n\n buttonGroups () {\n const individualButtonStacks = this.individualButtons.map(\n (buttonData) => ({\n key: buttonData.selector,\n buttonGroup: [buttonData],\n }),\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) =>\n prefixRegex.test(this.linkInput),\n );\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 =\n 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 (\n this.$refs.richTextEditor?.editor?.isActive({ textAlign: alignment })\n ) {\n // If this alignment type is already set here, unset it\n return this.$refs.richTextEditor?.editor\n .chain()\n .focus()\n .unsetTextAlign()\n .run();\n }\n this.$refs.richTextEditor?.editor\n .chain()\n .focus()\n .setTextAlign(alignment)\n .run();\n },\n\n onBulletListToggle () {\n this.$refs.richTextEditor?.editor\n .chain()\n .focus()\n .toggleBulletList()\n .run();\n },\n\n onOrderedListToggle () {\n this.$refs.richTextEditor?.editor\n .chain()\n .focus()\n .toggleOrderedList()\n .run();\n },\n\n onCodeBlockToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleCodeBlock().run();\n },\n\n onQuickRepliesClick () {\n this.$emit('quick-replies-click');\n },\n\n onBlockquoteToggle () {\n this.$refs.richTextEditor?.editor\n .chain()\n .focus()\n .toggleBlockquote()\n .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</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","_normalizeClass","_resolveDynamicComponent","_createTextVNode","_toDisplayString","_withModifiers","_createCommentVNode","_withKeys","_normalizeStyle","_mergeProps"],"mappings":"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"}