@dialpad/dialtone 9.165.0 → 9.166.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/tokens/doc.json +127450 -127450
- package/dist/vue3/component-documentation.json +1 -1
- package/dist/vue3/lib/editor/editor.cjs +1 -1
- package/dist/vue3/lib/editor/editor.cjs.map +1 -1
- package/dist/vue3/lib/editor/editor.js +13 -12
- package/dist/vue3/lib/editor/editor.js.map +1 -1
- package/dist/vue3/lib/message-input/message-input.cjs +1 -1
- package/dist/vue3/lib/message-input/message-input.cjs.map +1 -1
- package/dist/vue3/lib/message-input/message-input.js +19 -18
- package/dist/vue3/lib/message-input/message-input.js.map +1 -1
- package/dist/vue3/lib/rich-text-editor/rich-text-editor.cjs +2 -2
- package/dist/vue3/lib/rich-text-editor/rich-text-editor.cjs.map +1 -1
- package/dist/vue3/lib/rich-text-editor/rich-text-editor.js +115 -97
- package/dist/vue3/lib/rich-text-editor/rich-text-editor.js.map +1 -1
- package/dist/vue3/types/components/rich_text_editor/extensions/variable/VariableComponent.vue.d.ts +1 -0
- package/dist/vue3/types/components/rich_text_editor/extensions/variable/VariableComponent.vue.d.ts.map +1 -1
- package/dist/vue3/types/components/rich_text_editor/extensions/variable/variable.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor.js","sources":["../../../recipes/conversation_view/editor/editor.vue"],"sourcesContent":["<template>\n <div\n class=\"d-recipe-editor\"\n v-bind=\"addClassStyleAttrs($attrs)\"\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 <template v-for=\"button in buttonGroup.buttonGroup\">\n <!-- Font Style Popover -->\n <editor-toolbar-popover-button\n v-if=\"button.buttonType === 'popover' && button.selector === 'fontStyle'\"\n :key=\"getButtonKey(buttonGroup.key, button.selector)\"\n :ref=\"getButtonRef(buttonGroup.key, button.selector)\"\n :is-active=\"$refs.richTextEditor?.editor?.isActive(button.selector)\"\n :tooltip-message=\"button.tooltipMessage\"\n :data-qa=\"button.dataQA\"\n :popover-data-qa=\"'dt-recipe-editor-font-style-input-popover'\"\n :tabindex=\"canFocus(getButtonRef(buttonGroup.key, button.selector)) ? 0 : -1\"\n :icon=\"button.icon\"\n @shift-focus-right=\"shiftActionBarFocusRight\"\n @shift-focus-left=\"shiftActionBarFocusLeft\"\n >\n <template #content=\"{ close }\">\n <dt-combobox\n label=\"\"\n :label-visible=\"false\"\n :show-list=\"true\"\n :click-on-select=\"true\"\n @escape=\"close()\"\n >\n <template #input=\"{ inputProps }\">\n <dt-input\n v-bind=\"inputProps\"\n v-model=\"fontStyleSearch\"\n root-class=\"d-p8 d-pb4 d-w216\"\n type=\"search\"\n :placeholder=\"i18n.$t('DIALTONE_EDITOR_FONT_STYLE_SEARCH_PLACEHOLDER')\"\n size=\"sm\"\n role=\"menuitem\"\n >\n <template #leftIcon=\"{ iconSize }\">\n <dt-icon-search :size=\"iconSize\" />\n </template>\n </dt-input>\n </template>\n <template #list=\"{ listProps }\">\n <ul\n v-bind=\"listProps\"\n >\n <dt-list-item\n v-for=\"fontStyle in filteredFontStyles\"\n :key=\"fontStyle.name\"\n :selected=\"isCurrentFontFamily(fontStyle.value)\"\n :style=\"{ fontFamily: fontStyle.value || 'inherit' }\"\n role=\"option\"\n navigation-type=\"arrow-keys\"\n @click=\"\n close();\n onFontStyleSelect(fontStyle.value)\n \"\n >\n {{ fontStyle.name }}\n </dt-list-item>\n </ul>\n </template>\n </dt-combobox>\n </template>\n </editor-toolbar-popover-button>\n\n <!-- Font Size Dropdown -->\n <editor-toolbar-dropdown-button\n v-else-if=\"button.buttonType === 'popover' && button.selector === 'fontSize'\"\n :key=\"getButtonKey(buttonGroup.key, button.selector)\"\n :ref=\"getButtonRef(buttonGroup.key, button.selector)\"\n :is-active=\"$refs.richTextEditor?.editor?.isActive(button.selector)\"\n :tooltip-message=\"button.tooltipMessage\"\n :data-qa=\"button.dataQA\"\n :dropdown-data-qa=\"'dt-recipe-editor-font-size-input-popover'\"\n :tabindex=\"canFocus(getButtonRef(buttonGroup.key, button.selector)) ? 0 : -1\"\n :icon=\"button.icon\"\n @shift-focus-right=\"shiftActionBarFocusRight\"\n @shift-focus-left=\"shiftActionBarFocusLeft\"\n >\n <template #list=\"{ close }\">\n <dt-list-item\n v-for=\"fontSize in fontSizes\"\n :key=\"fontSize.name\"\n :selected=\"isCurrentFontSize(fontSize.value)\"\n role=\"menuitem\"\n navigation-type=\"arrow-keys\"\n @click=\"\n close();\n onFontSizeSelect(fontSize.value, $event)\n \"\n >\n <span :style=\"{ fontSize: fontSize.value }\">{{ fontSize.name }}</span>\n </dt-list-item>\n </template>\n </editor-toolbar-dropdown-button>\n\n <!-- Font Color Button -->\n <dt-button\n v-else-if=\"button.buttonType === 'custom' && button.selector === 'fontColor'\"\n :key=\"getButtonKey(buttonGroup.key, button.selector)\"\n :ref=\"getButtonRef(buttonGroup.key, button.selector)\"\n v-dt-tooltip=\"{ message: button.tooltipMessage, placement: 'top' }\"\n kind=\"muted\"\n importance=\"clear\"\n size=\"xs\"\n :active=\"$refs.richTextEditor?.editor?.isActive(button.selector)\"\n :tabindex=\"canFocus(getButtonRef(buttonGroup.key, button.selector)) ? 0 : -1\"\n :aria-label=\"button.tooltipMessage\"\n :data-qa=\"button.dataQA\"\n @keydown.right.stop=\"shiftActionBarFocusRight\"\n @keydown.left.stop=\"shiftActionBarFocusLeft\"\n @click=\"button.onClick()\"\n >\n <template #icon>\n <component\n :is=\"button.icon\"\n size=\"200\"\n :style=\"!isDefaultFontColor ? { color: currentFontColor } : {}\"\n />\n <dt-input\n :value=\"currentFontColor\"\n root-class=\"d-w0 d-h0 d-of-hidden\"\n input-class=\"colorPickerInput d-w0 d-h0 d-p0 d-bar0\"\n input-wrapper-class=\"d-w0 d-h0 d-ba-none\"\n size=\"sm\"\n type=\"color\"\n @input=\"onColorPickerInput\"\n @click.stop\n />\n </template>\n </dt-button>\n\n <!-- Variable Popover -->\n <editor-toolbar-popover-button\n v-else-if=\"button.buttonType === 'popover' && button.selector === 'variable'\"\n :key=\"getButtonKey(buttonGroup.key, button.selector)\"\n :ref=\"getButtonRef(buttonGroup.key, button.selector)\"\n :is-active=\"false\"\n :tooltip-message=\"button.tooltipMessage\"\n :data-qa=\"button.dataQA\"\n :popover-data-qa=\"'dt-recipe-editor-variable-popover'\"\n :tabindex=\"canFocus(getButtonRef(buttonGroup.key, button.selector)) ? 0 : -1\"\n :icon=\"button.icon\"\n @shift-focus-right=\"shiftActionBarFocusRight\"\n @shift-focus-left=\"shiftActionBarFocusLeft\"\n >\n <template #content=\"{ close }\">\n <dt-combobox\n label=\"\"\n :label-visible=\"false\"\n :show-list=\"true\"\n :click-on-select=\"true\"\n @escape=\"close()\"\n >\n <template #input=\"{ inputProps }\">\n <dt-input\n v-bind=\"inputProps\"\n v-model=\"variableSearchValue\"\n root-class=\"d-p8 d-pb4 d-w264\"\n type=\"search\"\n :placeholder=\"i18n.$t('DIALTONE_EDITOR_VARIABLE_POPOVER_SEARCH_PLACEHOLDER')\"\n size=\"md\"\n role=\"menuitem\"\n >\n <template #leftIcon=\"{ iconSize }\">\n <dt-icon-search :size=\"iconSize\" />\n </template>\n </dt-input>\n </template>\n <template #list=\"{ listProps }\">\n <div v-bind=\"listProps\">\n <dt-list-item-group\n v-for=\"(category, index) in filteredCategories\"\n :key=\"category.name\"\n :heading=\"category.name\"\n heading-class=\"d-headline--sm-compact d-p8\"\n >\n <dt-list-item\n v-for=\"item in getFilteredItemsForCategory(category)\"\n :key=\"category.name + item.name\"\n role=\"option\"\n navigation-type=\"arrow-keys\"\n @click=\"\n insertVariable(category.name, item);\n close();\n \"\n >\n {{ item.name }}\n </dt-list-item>\n <dt-dropdown-separator\n v-if=\"index < filteredCategories.length - 1\"\n />\n </dt-list-item-group>\n </div>\n </template>\n </dt-combobox>\n </template>\n </editor-toolbar-popover-button>\n\n <!-- Regular Toolbar Button -->\n <editor-toolbar-button\n v-else-if=\"button.buttonType === 'button'\"\n :key=\"getButtonKey(buttonGroup.key, button.selector)\"\n :ref=\"getButtonRef(buttonGroup.key, button.selector)\"\n :is-active=\"$refs.richTextEditor?.editor?.isActive(button.selector)\"\n :tooltip-message=\"button.tooltipMessage\"\n :data-qa=\"button.dataQA\"\n :tabindex=\"canFocus(getButtonRef(buttonGroup.key, button.selector)) ? 0 : -1\"\n :icon=\"button.icon\"\n :label=\"button.label\"\n :on-click=\"button.onClick\"\n @shift-focus-right=\"shiftActionBarFocusRight\"\n @shift-focus-left=\"shiftActionBarFocusLeft\"\n />\n </template>\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 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 :ref=\"getButtonRef('custom', 'link')\"\n :active=\"$refs.richTextEditor?.editor?.isActive(linkButton.selector)\"\n :aria-label=\"linkButton.tooltipMessage\"\n :data-qa=\"linkButton.dataQA\"\n :tabindex=\"canFocus(getButtonRef('custom', 'link')) ? 0 : -1\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"xs\"\n @click=\"linkButton.onClick()\"\n @keydown.right.stop=\"shiftActionBarFocusRight\"\n @keydown.left.stop=\"shiftActionBarFocusLeft\"\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 {{ showAddLinkButtonLabels.title }}\n </span>\n <dt-input\n v-model=\"linkInput\"\n :input-aria-label=\"showAddLinkButtonLabels['aria-label']\"\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 data-qa=\"dt-recipe-editor-remove-link-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"sm\"\n v-bind=\"removeLinkButtonLabels\"\n @click=\"removeLink\"\n >\n {{ removeLinkButtonLabels.title }}\n </dt-button>\n <dt-button\n data-qa=\"dt-recipe-editor-set-link-cancel-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"sm\"\n v-bind=\"cancelSetLinkButtonLabels\"\n @click=\"closeLinkInput\"\n >\n {{ cancelSetLinkButtonLabels.title }}\n </dt-button>\n <dt-button\n data-qa=\"dt-recipe-editor-set-link-confirm-btn\"\n size=\"sm\"\n v-bind=\"confirmSetLinkButtonLabels\"\n @click=\"setLink\"\n >\n {{ confirmSetLinkButtonLabels.title }}\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', { 'd-recipe-editor__content-image-resize': allowImageResize }]\"\n >\n <dt-rich-text-editor\n ref=\"richTextEditor\"\n v-model=\"internalInputValue\"\n :allow-font-color=\"true\"\n :allow-font-family=\"true\"\n :allow-inline-images=\"true\"\n :allow-line-breaks=\"true\"\n :allow-variable=\"true\"\n :allow-font-size=\"showFontSizeButton\"\n :variable-items=\"flattenedVariableItems\"\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 :allow-tables=\"allowTables\"\n :allow-image-resize=\"allowImageResize\"\n data-qa=\"dt-rich-text-editor\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n @text-input=\"onTextInput\"\n @blur=\"onBlur\"\n @focus=\"onFocus\"\n @input=\"onInput($event)\"\n @selected=\"onSelected\"\n />\n </div>\n </div>\n</template>\n\n<script>\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 EDITOR_DEFAULT_FONT_COLOR,\n} from './editor_constants.js';\nimport { removeClassStyleAttrs, addClassStyleAttrs } from '@/common/utils';\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 { DtListItem } from '@/components/list_item';\nimport { DtCombobox } from '@/components/combobox';\n\nimport { DtDropdownSeparator } from '@/components/dropdown/index.js';\nimport { DtListItemGroup } from '@/components/list_item_group/index.js';\nimport EditorToolbarButton from './EditorToolbarButton.vue';\nimport EditorToolbarDropdownButton from './EditorToolbarDropdownButton.vue';\nimport EditorToolbarPopoverButton from './EditorToolbarPopoverButton.vue';\nimport {\n DtIconAlignCenter,\n DtIconAlignJustify,\n DtIconAlignLeft,\n DtIconAlignRight,\n DtIconBold,\n DtIconCodeBlock,\n DtIconImage,\n DtIconItalic,\n DtIconQuickReply,\n DtIconLink2,\n DtIconListBullet,\n DtIconListOrdered,\n DtIconQuote,\n DtIconStrikethrough,\n DtIconUnderline,\n DtIconType,\n DtIconBraces,\n DtIconSearch,\n DtIconChevronDown,\n DtIconFontSize,\n DtIconStopFilled,\n} from '@dialpad/dialtone-icons/vue3';\nimport { DialtoneLocalization } from '@/localization';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeEditor',\n\n components: {\n DtListItemGroup,\n DtDropdownSeparator,\n DtListItem,\n DtRichTextEditor,\n DtButton,\n DtPopover,\n DtStack,\n DtInput,\n DtTooltip,\n DtCombobox,\n EditorToolbarButton,\n EditorToolbarDropdownButton,\n EditorToolbarPopoverButton,\n DtIconQuickReply,\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 DtIconImage,\n DtIconSearch,\n DtIconType,\n DtIconBraces,\n DtIconChevronDown,\n DtIconFontSize,\n DtIconStopFilled,\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 modelValue: {\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 * 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 button to add an inline image\n */\n showInlineImageButton: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Show button to add a variable\n */\n showVariableButton: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Variable categories to display when variable button is clicked\n */\n variableCategories: {\n type: Array,\n default: () => [],\n },\n\n /**\n * Show add link default config.\n */\n showAddLink: {\n type: Object,\n default: () => ({\n showAddLinkButton: true,\n }),\n },\n\n /**\n * Show font style button.\n */\n showFontStyleButton: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Show font size button.\n */\n showFontSizeButton: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Show font color button.\n */\n showFontColorButton: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Available font styles for the font style dropdown.\n */\n fontStyles: {\n type: Array,\n default: () => [\n { name: 'Arial', value: null }, // arial is the default font\n { name: 'Georgia', value: 'Georgia' },\n { name: 'Helvetica', value: 'Helvetica' },\n { name: 'Verdana', value: 'Verdana'},\n { name: 'Times New Roman', value: 'Times New Roman' },\n ],\n },\n\n fontSizes : {\n type: Array,\n default: () => [\n { name: 'Small', value: '12px'},\n { name: 'Normal', value: '15px'},\n { name: 'Large', value: '24px'},\n { name: 'Huge', value: '36px'},\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 * Allow Tables to be used in to the editor\n */\n allowTables: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Allow image resizing\n */\n allowImageResize: {\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 * Event fired to sync the modelValue prop with the parent component\n * @event input\n * @type {String|JSON}\n */\n 'update:modelValue',\n\n /**\n * Quick replies button\n * pressed event\n * @event quick-replies-click\n */\n 'quick-replies-click',\n\n /**\n * Emit when inline image button is clicked\n * @event inline-image-click\n */\n 'inline-image-click',\n\n /**\n * Emit when text input is changed\n * @event text-input\n * @type {String}\n */\n 'text-input',\n ],\n\n data () {\n return {\n internalInputValue: this.modelValue, // internal input content\n hasFocus: false,\n\n linkOptions: {\n class: 'd-recipe-editor__link',\n },\n\n currentFontColor: undefined,\n showLinkInput: false,\n fontStyleSearch: '',\n linkInput: '',\n currentButtonRefIndex: 0,\n variableSearchValue: '',\n i18n: new DialtoneLocalization(),\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 flattenedVariableItems () {\n if (!this.variableCategories) return [];\n return this.variableCategories.reduce((acc, category) => {\n return acc.concat(category.items || []);\n }, []);\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 orderedRefs () {\n const refs = this.buttonGroups.reduce(function (acc, buttonData) {\n buttonData.buttonGroup.forEach(button => {\n acc.push(this.getButtonRef(buttonData.key, button.selector));\n }, this);\n return acc;\n }.bind(this), []);\n refs.push(this.getButtonRef('custom', 'link'));\n return refs;\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 buttonType: 'button',\n label: this.i18n.$t('DIALTONE_EDITOR_QUICK_REPLY_BUTTON_LABEL'),\n selector: 'quickReplies',\n icon: DtIconQuickReply,\n dataQA: 'dt-recipe-editor-quick-replies-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_QUICK_REPLY_BUTTON_LABEL'),\n onClick: this.onQuickRepliesClick,\n },\n ].filter(button => button.showBtn);\n },\n\n textFormatButtons () {\n return [\n {\n showBtn: this.showFontStyleButton,\n buttonType: 'popover',\n selector: 'fontStyle',\n icon: DtIconType,\n dataQA: 'dt-recipe-editor-font-style-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_FONT_STYLE_BUTTON_LABEL'),\n },\n {\n showBtn: this.showFontSizeButton,\n buttonType: 'popover',\n selector: 'fontSize',\n icon: DtIconFontSize,\n dataQA: 'dt-recipe-editor-font-size-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_FONT_SIZE_BUTTON_LABEL'),\n },\n {\n showBtn: this.showFontColorButton,\n buttonType: 'custom',\n selector: 'fontColor',\n icon: DtIconStopFilled,\n dataQA: 'dt-recipe-editor-font-color-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_FONT_COLOR_BUTTON_LABEL'),\n onClick: this.onColorPickerButtonClick,\n },\n {\n showBtn: this.showBoldButton,\n buttonType: 'button',\n selector: 'bold',\n icon: DtIconBold,\n dataQA: 'dt-recipe-editor-bold-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_BOLD_BUTTON_LABEL'),\n onClick: this.onBoldTextToggle,\n },\n {\n showBtn: this.showItalicsButton,\n buttonType: 'button',\n selector: 'italic',\n icon: DtIconItalic,\n dataQA: 'dt-recipe-editor-italics-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ITALICS_BUTTON_LABEL'),\n onClick: this.onItalicTextToggle,\n },\n {\n showBtn: this.showUnderlineButton,\n buttonType: 'button',\n selector: 'underline',\n icon: DtIconUnderline,\n dataQA: 'dt-recipe-editor-underline-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_UNDERLINE_BUTTON_LABEL'),\n onClick: this.onUnderlineTextToggle,\n },\n {\n showBtn: this.showStrikeButton,\n buttonType: 'button',\n selector: 'strike',\n icon: DtIconStrikethrough,\n dataQA: 'dt-recipe-editor-strike-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_STRIKE_BUTTON_LABEL'),\n onClick: this.onStrikethroughTextToggle,\n },\n ].filter(button => button.showBtn);\n },\n\n alignmentButtons () {\n return [\n {\n showBtn: this.showAlignLeftButton,\n buttonType: 'button',\n selector: { textAlign: 'left' },\n icon: DtIconAlignLeft,\n dataQA: 'dt-recipe-editor-align-left-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ALIGN_LEFT_BUTTON_LABEL'),\n onClick: () => this.onTextAlign('left'),\n },\n {\n showBtn: this.showAlignCenterButton,\n buttonType: 'button',\n selector: { textAlign: 'center' },\n icon: DtIconAlignCenter,\n dataQA: 'dt-recipe-editor-align-center-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ALIGN_CENTER_BUTTON_LABEL'),\n onClick: () => this.onTextAlign('center'),\n },\n {\n showBtn: this.showAlignRightButton,\n buttonType: 'button',\n selector: { textAlign: 'right' },\n icon: DtIconAlignRight,\n dataQA: 'dt-recipe-editor-align-right-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ALIGN_RIGHT_BUTTON_LABEL'),\n onClick: () => this.onTextAlign('right'),\n },\n {\n showBtn: this.showAlignJustifyButton,\n buttonType: 'button',\n selector: { textAlign: 'justify' },\n icon: DtIconAlignJustify,\n dataQA: 'dt-recipe-editor-align-justify-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ALIGN_JUSTIFY_BUTTON_LABEL'),\n onClick: () => this.onTextAlign('justify'),\n },\n ].filter(button => button.showBtn);\n },\n\n listButtons () {\n return [\n {\n showBtn: this.showListItemsButton,\n buttonType: 'button',\n selector: 'bulletList',\n icon: DtIconListBullet,\n dataQA: 'dt-recipe-editor-list-items-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_BULLET_LIST_BUTTON_LABEL'),\n onClick: this.onBulletListToggle,\n },\n {\n showBtn: this.showOrderedListButton,\n buttonType: 'button',\n selector: 'orderedList',\n icon: DtIconListOrdered,\n dataQA: 'dt-recipe-editor-ordered-list-items-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ORDERED_LIST_BUTTON_LABEL'),\n onClick: this.onOrderedListToggle,\n },\n ].filter(button => button.showBtn);\n },\n\n individualButtons () {\n return [\n {\n showBtn: this.showQuoteButton,\n buttonType: 'button',\n selector: 'blockquote',\n icon: DtIconQuote,\n dataQA: 'dt-recipe-editor-blockquote-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_QUOTE_BUTTON_LABEL'),\n onClick: this.onBlockquoteToggle,\n },\n {\n showBtn: this.showCodeBlockButton,\n buttonType: 'button',\n selector: 'codeBlock',\n icon: DtIconCodeBlock,\n dataQA: 'dt-recipe-editor-code-block-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_CODE_BUTTON_LABEL'),\n onClick: this.onCodeBlockToggle,\n },\n {\n showBtn: this.showInlineImageButton,\n buttonType: 'button',\n selector: 'image',\n icon: DtIconImage,\n dataQA: 'dt-recipe-editor-inline-image-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_IMAGE_BUTTON_LABEL'),\n // Handle getting image\n onClick: this.onInsertInlineImageClick,\n },\n {\n showBtn: this.showVariableButton,\n buttonType: 'popover',\n selector: 'variable',\n icon: DtIconBraces,\n dataQA: 'dt-recipe-editor-variable-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_VARIABLE_BUTTON_LABEL'),\n },\n ].filter(button => button.showBtn);\n },\n\n linkButton () {\n return {\n showBtn: this.showAddLink.showAddLinkButton,\n buttonType: 'custom',\n selector: 'link',\n icon: DtIconLink2,\n dataQA: 'dt-recipe-editor-add-link-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_LINK_BUTTON_LABEL'),\n onClick: this.openLinkInput,\n };\n },\n\n confirmSetLinkButtonLabels () {\n return this.i18n.$ta('DIALTONE_EDITOR_CONFIRM_SET_LINK_BUTTON');\n },\n\n cancelSetLinkButtonLabels () {\n return this.i18n.$ta('DIALTONE_EDITOR_CANCEL_SET_LINK_BUTTON');\n },\n\n removeLinkButtonLabels () {\n return this.i18n.$ta('DIALTONE_EDITOR_REMOVE_LINK_BUTTON');\n },\n\n showAddLinkButtonLabels () {\n return this.i18n.$ta('DIALTONE_EDITOR_ADD_LINK_BUTTON');\n },\n\n filteredFontStyles () {\n const searchValue = this.fontStyleSearch.toLowerCase();\n return this.fontStyles.filter((item) =>\n item.name.toLowerCase().includes(searchValue),\n );\n },\n\n filteredCategories() {\n return this.variableCategories.filter(\n (category) => this.getFilteredItemsForCategory(category).length,\n );\n },\n\n colorPickerInput() {\n return document.querySelector('.colorPickerInput');\n },\n\n isDefaultFontColor() {\n return this.currentFontColor === EDITOR_DEFAULT_FONT_COLOR;\n },\n\n actionBarBtn () {\n const ref = this.$refs[this.orderedRefs[this.currentButtonRefIndex]][0]?.$refs?.buttonRef // get nested ref\n || this.$refs[this.orderedRefs[this.currentButtonRefIndex]];\n return Array.isArray(ref) ? ref[0] : ref;\n },\n\n },\n\n watch: {\n modelValue (newValue) {\n this.internalInputValue = newValue;\n },\n },\n\n methods: {\n removeClassStyleAttrs,\n addClassStyleAttrs,\n\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 onInsertInlineImageClick () {\n this.$emit('inline-image-click');\n },\n\n insertVariable (categoryName, variableData) {\n // Insert a variable using the custom command from the Variable extension\n this.$refs.richTextEditor?.editor.chain().focus().insertVariable({\n id: variableData.id,\n placeholder: variableData.placeholder || '',\n altText: '',\n }).run();\n },\n\n insertInlineImage (imageUrl) {\n this.$refs.richTextEditor?.editor.chain().focus().setImage({ src: imageUrl }).run();\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 onTextInput (input) {\n this.$emit('text-input', input);\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 this.$emit('update:modelValue', event);\n },\n\n onSelected() {\n this.updateFontColorInput();\n },\n\n getButtonKey (key, selector) {\n return `${key}-${JSON.stringify(selector)}`;\n },\n\n // Unique Button Ref Key to identify ref\n getButtonRef (key, selector) {\n return `${this.getButtonKey(key, selector)}-ref`;\n },\n\n /**\n * Determines if an element in the action bar button list is focusable with tab key\n * @param {string} refKey - unique identifier for the ref element in DOM\n */\n canFocus (refKey) {\n return refKey === this.orderedRefs[this.currentButtonRefIndex];\n },\n\n shiftActionBarFocusRight () {\n this.shiftButtonRefIndex(1);\n },\n\n shiftActionBarFocusLeft () {\n this.shiftButtonRefIndex(-1);\n },\n\n shiftButtonRefIndex (shiftAmount) {\n const previousActionBarBtn = this.actionBarBtn;\n const index = (this.currentButtonRefIndex + shiftAmount) % this.orderedRefs.length;\n this.currentButtonRefIndex = index >= 0 ? index : this.orderedRefs.length + index;\n const currentActionBarBtn = this.actionBarBtn;\n\n previousActionBarBtn.$el.blur();\n currentActionBarBtn.$el.focus();\n },\n\n onFontStyleSelect (fontFamily) {\n if (fontFamily) {\n this.$refs.richTextEditor?.editor?.chain().focus().setFontFamily(fontFamily).run();\n } else {\n this.$refs.richTextEditor?.editor?.chain().focus().unsetFontFamily().run();\n }\n this.$refs.richTextEditor?.editor?.commands.focus();\n },\n\n isCurrentFontFamily (fontFamily) {\n if (!fontFamily) {\n return !this.$refs.richTextEditor?.editor?.getAttributes('textStyle')?.fontFamily;\n }\n return this.$refs.richTextEditor?.editor?.isActive('textStyle', { fontFamily });\n },\n\n onFontSizeSelect (fontSize) {\n this.$refs.richTextEditor?.editor?.chain().focus().setFontSize(fontSize).run();\n this.$refs.richTextEditor?.editor?.commands.focus();\n },\n\n isCurrentFontSize (fontSize) {\n if (!fontSize) {\n return !this.$refs.richTextEditor?.editor?.getAttributes('textStyle')?.fontSize;\n }\n return this.$refs.richTextEditor?.editor?.isActive('textStyle', { fontSize });\n },\n\n getFilteredItemsForCategory(category) {\n const searchValue = this.variableSearchValue.toLowerCase();\n if (category.name.toLowerCase().includes(searchValue)) {\n return category.items;\n }\n return category.items.filter((item) =>\n item.name.toLowerCase().includes(searchValue),\n );\n },\n\n updateFontColorInput() {\n this.currentFontColor = this.$refs.richTextEditor?.editor?.getAttributes('textStyle')?.color || EDITOR_DEFAULT_FONT_COLOR;\n },\n\n onColorPickerButtonClick () {\n this.colorPickerInput?.click();\n },\n\n onColorPickerInput (fontColor) {\n this.$refs.richTextEditor?.editor?.chain().focus().setColor(fontColor).run();\n this.$refs.richTextEditor?.editor?.commands.focus();\n this.updateFontColorInput();\n },\n },\n};\n</script>\n\n<style>\n/* Image resizing classes - only active when allowImageResize is true */\n\n/* Image border */\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-wrapper] {\n outline: 1px solid var(--dt-color-chart-info-selected);\n line-height: 0 !important;\n}\n\n/* Corner handles */\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle] {\n position: absolute;\n background: var(--dt-color-chart-info-selected);\n z-index: 10;\n}\n\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle='top-left'],\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle='top-right'],\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle='bottom-left'],\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle='bottom-right'] {\n width: 8px;\n height: 8px;\n}\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle='top-left'] {\n cursor: nwse-resize;\n transform: translate(-50%, -50%);\n}\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle='top-right'] {\n cursor: nesw-resize;\n transform: translate(50%, -50%);\n}\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle='bottom-left'] {\n cursor: nesw-resize;\n transform: translate(-50%, 50%);\n}\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle='bottom-right'] {\n cursor: nwse-resize;\n transform: translate(50%, 50%);\n}\n</style>\n"],"names":["_sfc_main","DtListItemGroup","DtDropdownSeparator","DtListItem","DtRichTextEditor","DtButton","DtPopover","DtStack","DtInput","DtTooltip","DtCombobox","EditorToolbarButton","EditorToolbarDropdownButton","EditorToolbarPopoverButton","DtIconQuickReply","DtIconBold","DtIconItalic","DtIconUnderline","DtIconStrikethrough","DtIconListBullet","DtIconListOrdered","DtIconAlignLeft","DtIconAlignCenter","DtIconAlignRight","DtIconAlignJustify","DtIconQuote","DtIconCodeBlock","DtIconLink2","DtIconImage","DtIconSearch","DtIconType","DtIconBraces","DtIconChevronDown","DtIconFontSize","DtIconStopFilled","autoFocus","RICH_TEXT_EDITOR_AUTOFOCUS_TYPES","DialtoneLocalization","RICH_TEXT_EDITOR_OUTPUT_FORMATS","acc","category","refs","buttonData","button","individualButtonStacks","buttonGroupData","searchValue","item","EDITOR_DEFAULT_FONT_COLOR","ref","_b","_a","newValue","removeClassStyleAttrs","addClassStyleAttrs","event","_e","_d","_c","editor","EDITOR_SUPPORTED_LINK_PROTOCOLS","prefixRegex","EDITOR_DEFAULT_LINK_PREFIX","selection","openedInput","alignment","categoryName","variableData","imageUrl","messageContent","position","input","key","selector","refKey","shiftAmount","previousActionBarBtn","index","currentActionBarBtn","fontFamily","_f","fontSize","fontColor","_hoisted_1","_createElementBlock","_mergeProps","$options","_ctx","_cache","$event","_createVNode","_component_dt_stack","_Fragment","_renderList","buttonGroup","_createBlock","_openBlock","_component_editor_toolbar_popover_button","_withCtx","close","_component_dt_combobox","inputProps","_component_dt_input","$data","iconSize","_component_dt_icon_search","listProps","_createElementVNode","fontStyle","_component_dt_list_item","_normalizeStyle","_createTextVNode","_toDisplayString","_component_editor_toolbar_dropdown_button","$props","_component_dt_button","_resolveDynamicComponent","_directive_dt_tooltip","_component_dt_list_item_group","_component_dt_dropdown_separator","_component_editor_toolbar_button","_h","_g","_component_dt_popover","_component_dt_tooltip","_component_dt_rich_text_editor"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"editor.js","sources":["../../../recipes/conversation_view/editor/editor.vue"],"sourcesContent":["<template>\n <div\n class=\"d-recipe-editor\"\n v-bind=\"addClassStyleAttrs($attrs)\"\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 <template v-for=\"button in buttonGroup.buttonGroup\">\n <!-- Font Style Popover -->\n <editor-toolbar-popover-button\n v-if=\"button.buttonType === 'popover' && button.selector === 'fontStyle'\"\n :key=\"getButtonKey(buttonGroup.key, button.selector)\"\n :ref=\"getButtonRef(buttonGroup.key, button.selector)\"\n :is-active=\"$refs.richTextEditor?.editor?.isActive(button.selector)\"\n :tooltip-message=\"button.tooltipMessage\"\n :data-qa=\"button.dataQA\"\n :popover-data-qa=\"'dt-recipe-editor-font-style-input-popover'\"\n :tabindex=\"canFocus(getButtonRef(buttonGroup.key, button.selector)) ? 0 : -1\"\n :icon=\"button.icon\"\n @shift-focus-right=\"shiftActionBarFocusRight\"\n @shift-focus-left=\"shiftActionBarFocusLeft\"\n >\n <template #content=\"{ close }\">\n <dt-combobox\n label=\"\"\n :label-visible=\"false\"\n :show-list=\"true\"\n :click-on-select=\"true\"\n @escape=\"close()\"\n >\n <template #input=\"{ inputProps }\">\n <dt-input\n v-bind=\"inputProps\"\n v-model=\"fontStyleSearch\"\n root-class=\"d-p8 d-pb4 d-w216\"\n type=\"search\"\n :placeholder=\"i18n.$t('DIALTONE_EDITOR_FONT_STYLE_SEARCH_PLACEHOLDER')\"\n size=\"sm\"\n role=\"menuitem\"\n >\n <template #leftIcon=\"{ iconSize }\">\n <dt-icon-search :size=\"iconSize\" />\n </template>\n </dt-input>\n </template>\n <template #list=\"{ listProps }\">\n <ul\n v-bind=\"listProps\"\n >\n <dt-list-item\n v-for=\"fontStyle in filteredFontStyles\"\n :key=\"fontStyle.name\"\n :selected=\"isCurrentFontFamily(fontStyle.value)\"\n :style=\"{ fontFamily: fontStyle.value || 'inherit' }\"\n role=\"option\"\n navigation-type=\"arrow-keys\"\n @click=\"\n close();\n onFontStyleSelect(fontStyle.value)\n \"\n >\n {{ fontStyle.name }}\n </dt-list-item>\n </ul>\n </template>\n </dt-combobox>\n </template>\n </editor-toolbar-popover-button>\n\n <!-- Font Size Dropdown -->\n <editor-toolbar-dropdown-button\n v-else-if=\"button.buttonType === 'popover' && button.selector === 'fontSize'\"\n :key=\"getButtonKey(buttonGroup.key, button.selector)\"\n :ref=\"getButtonRef(buttonGroup.key, button.selector)\"\n :is-active=\"$refs.richTextEditor?.editor?.isActive(button.selector)\"\n :tooltip-message=\"button.tooltipMessage\"\n :data-qa=\"button.dataQA\"\n :dropdown-data-qa=\"'dt-recipe-editor-font-size-input-popover'\"\n :tabindex=\"canFocus(getButtonRef(buttonGroup.key, button.selector)) ? 0 : -1\"\n :icon=\"button.icon\"\n @shift-focus-right=\"shiftActionBarFocusRight\"\n @shift-focus-left=\"shiftActionBarFocusLeft\"\n >\n <template #list=\"{ close }\">\n <dt-list-item\n v-for=\"fontSize in fontSizes\"\n :key=\"fontSize.name\"\n :selected=\"isCurrentFontSize(fontSize.value)\"\n role=\"menuitem\"\n navigation-type=\"arrow-keys\"\n @click=\"\n close();\n onFontSizeSelect(fontSize.value, $event)\n \"\n >\n <span :style=\"{ fontSize: fontSize.value }\">{{ fontSize.name }}</span>\n </dt-list-item>\n </template>\n </editor-toolbar-dropdown-button>\n\n <!-- Font Color Button -->\n <dt-button\n v-else-if=\"button.buttonType === 'custom' && button.selector === 'fontColor'\"\n :key=\"getButtonKey(buttonGroup.key, button.selector)\"\n :ref=\"getButtonRef(buttonGroup.key, button.selector)\"\n v-dt-tooltip=\"{ message: button.tooltipMessage, placement: 'top' }\"\n kind=\"muted\"\n importance=\"clear\"\n size=\"xs\"\n :active=\"$refs.richTextEditor?.editor?.isActive(button.selector)\"\n :tabindex=\"canFocus(getButtonRef(buttonGroup.key, button.selector)) ? 0 : -1\"\n :aria-label=\"button.tooltipMessage\"\n :data-qa=\"button.dataQA\"\n @keydown.right.stop=\"shiftActionBarFocusRight\"\n @keydown.left.stop=\"shiftActionBarFocusLeft\"\n @click=\"button.onClick()\"\n >\n <template #icon>\n <component\n :is=\"button.icon\"\n size=\"200\"\n :style=\"!isDefaultFontColor ? { color: currentFontColor } : {}\"\n />\n <dt-input\n :value=\"currentFontColor\"\n root-class=\"d-w0 d-h0 d-of-hidden\"\n input-class=\"colorPickerInput d-w0 d-h0 d-p0 d-bar0\"\n input-wrapper-class=\"d-w0 d-h0 d-ba-none\"\n size=\"sm\"\n type=\"color\"\n @input=\"onColorPickerInput\"\n @click.stop\n />\n </template>\n </dt-button>\n\n <!-- Variable Popover -->\n <editor-toolbar-popover-button\n v-else-if=\"button.buttonType === 'popover' && button.selector === 'variable'\"\n :key=\"getButtonKey(buttonGroup.key, button.selector)\"\n :ref=\"getButtonRef(buttonGroup.key, button.selector)\"\n :is-active=\"false\"\n :tooltip-message=\"button.tooltipMessage\"\n :data-qa=\"button.dataQA\"\n :popover-data-qa=\"'dt-recipe-editor-variable-popover'\"\n :tabindex=\"canFocus(getButtonRef(buttonGroup.key, button.selector)) ? 0 : -1\"\n :icon=\"button.icon\"\n @shift-focus-right=\"shiftActionBarFocusRight\"\n @shift-focus-left=\"shiftActionBarFocusLeft\"\n >\n <template #content=\"{ close }\">\n <dt-combobox\n label=\"\"\n :label-visible=\"false\"\n :show-list=\"true\"\n :click-on-select=\"true\"\n @escape=\"close()\"\n >\n <template #input=\"{ inputProps }\">\n <dt-input\n v-bind=\"inputProps\"\n v-model=\"variableSearchValue\"\n root-class=\"d-p8 d-pb4 d-w264\"\n type=\"search\"\n :placeholder=\"i18n.$t('DIALTONE_EDITOR_VARIABLE_POPOVER_SEARCH_PLACEHOLDER')\"\n size=\"md\"\n role=\"menuitem\"\n >\n <template #leftIcon=\"{ iconSize }\">\n <dt-icon-search :size=\"iconSize\" />\n </template>\n </dt-input>\n </template>\n <template #list=\"{ listProps }\">\n <div v-bind=\"listProps\">\n <dt-list-item-group\n v-for=\"(category, index) in filteredCategories\"\n :key=\"category.name\"\n :heading=\"category.name\"\n heading-class=\"d-headline--sm-compact d-p8\"\n >\n <dt-list-item\n v-for=\"item in getFilteredItemsForCategory(category)\"\n :key=\"category.name + item.name\"\n role=\"option\"\n navigation-type=\"arrow-keys\"\n @click=\"\n insertVariable(category.name, item);\n close();\n \"\n >\n {{ item.name }}\n </dt-list-item>\n <dt-dropdown-separator\n v-if=\"index < filteredCategories.length - 1\"\n />\n </dt-list-item-group>\n </div>\n </template>\n </dt-combobox>\n </template>\n </editor-toolbar-popover-button>\n\n <!-- Regular Toolbar Button -->\n <editor-toolbar-button\n v-else-if=\"button.buttonType === 'button'\"\n :key=\"getButtonKey(buttonGroup.key, button.selector)\"\n :ref=\"getButtonRef(buttonGroup.key, button.selector)\"\n :is-active=\"$refs.richTextEditor?.editor?.isActive(button.selector)\"\n :tooltip-message=\"button.tooltipMessage\"\n :data-qa=\"button.dataQA\"\n :tabindex=\"canFocus(getButtonRef(buttonGroup.key, button.selector)) ? 0 : -1\"\n :icon=\"button.icon\"\n :label=\"button.label\"\n :on-click=\"button.onClick\"\n @shift-focus-right=\"shiftActionBarFocusRight\"\n @shift-focus-left=\"shiftActionBarFocusLeft\"\n />\n </template>\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 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 :ref=\"getButtonRef('custom', 'link')\"\n :active=\"$refs.richTextEditor?.editor?.isActive(linkButton.selector)\"\n :aria-label=\"linkButton.tooltipMessage\"\n :data-qa=\"linkButton.dataQA\"\n :tabindex=\"canFocus(getButtonRef('custom', 'link')) ? 0 : -1\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"xs\"\n @click=\"linkButton.onClick()\"\n @keydown.right.stop=\"shiftActionBarFocusRight\"\n @keydown.left.stop=\"shiftActionBarFocusLeft\"\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 {{ showAddLinkButtonLabels.title }}\n </span>\n <dt-input\n v-model=\"linkInput\"\n :input-aria-label=\"showAddLinkButtonLabels['aria-label']\"\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 data-qa=\"dt-recipe-editor-remove-link-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"sm\"\n v-bind=\"removeLinkButtonLabels\"\n @click=\"removeLink\"\n >\n {{ removeLinkButtonLabels.title }}\n </dt-button>\n <dt-button\n data-qa=\"dt-recipe-editor-set-link-cancel-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"sm\"\n v-bind=\"cancelSetLinkButtonLabels\"\n @click=\"closeLinkInput\"\n >\n {{ cancelSetLinkButtonLabels.title }}\n </dt-button>\n <dt-button\n data-qa=\"dt-recipe-editor-set-link-confirm-btn\"\n size=\"sm\"\n v-bind=\"confirmSetLinkButtonLabels\"\n @click=\"setLink\"\n >\n {{ confirmSetLinkButtonLabels.title }}\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', { 'd-recipe-editor__content-image-resize': allowImageResize }]\"\n >\n <dt-rich-text-editor\n ref=\"richTextEditor\"\n v-model=\"internalInputValue\"\n :allow-font-color=\"true\"\n :allow-font-family=\"true\"\n :allow-inline-images=\"true\"\n :allow-line-breaks=\"true\"\n :allow-variable=\"true\"\n :allow-font-size=\"showFontSizeButton\"\n :variable-items=\"flattenedVariableItems\"\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 :allow-tables=\"allowTables\"\n :allow-image-resize=\"allowImageResize\"\n data-qa=\"dt-rich-text-editor\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n @text-input=\"onTextInput\"\n @blur=\"onBlur\"\n @focus=\"onFocus\"\n @input=\"onInput($event)\"\n @selected=\"onSelected\"\n />\n </div>\n </div>\n</template>\n\n<script>\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 EDITOR_DEFAULT_FONT_COLOR,\n} from './editor_constants.js';\nimport { removeClassStyleAttrs, addClassStyleAttrs } from '@/common/utils';\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 { DtListItem } from '@/components/list_item';\nimport { DtCombobox } from '@/components/combobox';\n\nimport { DtDropdownSeparator } from '@/components/dropdown/index.js';\nimport { DtListItemGroup } from '@/components/list_item_group/index.js';\nimport EditorToolbarButton from './EditorToolbarButton.vue';\nimport EditorToolbarDropdownButton from './EditorToolbarDropdownButton.vue';\nimport EditorToolbarPopoverButton from './EditorToolbarPopoverButton.vue';\nimport {\n DtIconAlignCenter,\n DtIconAlignJustify,\n DtIconAlignLeft,\n DtIconAlignRight,\n DtIconBold,\n DtIconCodeBlock,\n DtIconImage,\n DtIconItalic,\n DtIconQuickReply,\n DtIconLink2,\n DtIconListBullet,\n DtIconListOrdered,\n DtIconQuote,\n DtIconStrikethrough,\n DtIconUnderline,\n DtIconType,\n DtIconBraces,\n DtIconSearch,\n DtIconChevronDown,\n DtIconFontSize,\n DtIconStopFilled,\n} from '@dialpad/dialtone-icons/vue3';\nimport { DialtoneLocalization } from '@/localization';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeEditor',\n\n components: {\n DtListItemGroup,\n DtDropdownSeparator,\n DtListItem,\n DtRichTextEditor,\n DtButton,\n DtPopover,\n DtStack,\n DtInput,\n DtTooltip,\n DtCombobox,\n EditorToolbarButton,\n EditorToolbarDropdownButton,\n EditorToolbarPopoverButton,\n DtIconQuickReply,\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 DtIconImage,\n DtIconSearch,\n DtIconType,\n DtIconBraces,\n DtIconChevronDown,\n DtIconFontSize,\n DtIconStopFilled,\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 modelValue: {\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 * 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 button to add an inline image\n */\n showInlineImageButton: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Show button to add a variable\n */\n showVariableButton: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Variable categories to display when variable button is clicked\n */\n variableCategories: {\n type: Array,\n default: () => [],\n },\n\n /**\n * Show add link default config.\n */\n showAddLink: {\n type: Object,\n default: () => ({\n showAddLinkButton: true,\n }),\n },\n\n /**\n * Show font style button.\n */\n showFontStyleButton: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Show font size button.\n */\n showFontSizeButton: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Show font color button.\n */\n showFontColorButton: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Available font styles for the font style dropdown.\n */\n fontStyles: {\n type: Array,\n default: () => [\n { name: 'Arial', value: null }, // arial is the default font\n { name: 'Georgia', value: 'Georgia' },\n { name: 'Helvetica', value: 'Helvetica' },\n { name: 'Verdana', value: 'Verdana'},\n { name: 'Times New Roman', value: 'Times New Roman' },\n ],\n },\n\n fontSizes : {\n type: Array,\n default: () => [\n { name: 'Small', value: '12px'},\n { name: 'Normal', value: '15px'},\n { name: 'Large', value: '24px'},\n { name: 'Huge', value: '36px'},\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 * Allow Tables to be used in to the editor\n */\n allowTables: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Allow image resizing\n */\n allowImageResize: {\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 * Event fired to sync the modelValue prop with the parent component\n * @event input\n * @type {String|JSON}\n */\n 'update:modelValue',\n\n /**\n * Quick replies button\n * pressed event\n * @event quick-replies-click\n */\n 'quick-replies-click',\n\n /**\n * Emit when inline image button is clicked\n * @event inline-image-click\n */\n 'inline-image-click',\n\n /**\n * Emit when text input is changed\n * @event text-input\n * @type {String}\n */\n 'text-input',\n ],\n\n data () {\n return {\n internalInputValue: this.modelValue, // internal input content\n hasFocus: false,\n\n linkOptions: {\n class: 'd-recipe-editor__link',\n },\n\n currentFontColor: undefined,\n showLinkInput: false,\n fontStyleSearch: '',\n linkInput: '',\n currentButtonRefIndex: 0,\n variableSearchValue: '',\n i18n: new DialtoneLocalization(),\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 flattenedVariableItems () {\n if (!this.variableCategories) return [];\n return this.variableCategories.reduce((acc, category) => {\n return acc.concat(category.items || []);\n }, []);\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 orderedRefs () {\n const refs = this.buttonGroups.reduce(function (acc, buttonData) {\n buttonData.buttonGroup.forEach(button => {\n acc.push(this.getButtonRef(buttonData.key, button.selector));\n }, this);\n return acc;\n }.bind(this), []);\n refs.push(this.getButtonRef('custom', 'link'));\n return refs;\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 buttonType: 'button',\n label: this.i18n.$t('DIALTONE_EDITOR_QUICK_REPLY_BUTTON_LABEL'),\n selector: 'quickReplies',\n icon: DtIconQuickReply,\n dataQA: 'dt-recipe-editor-quick-replies-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_QUICK_REPLY_BUTTON_LABEL'),\n onClick: this.onQuickRepliesClick,\n },\n ].filter(button => button.showBtn);\n },\n\n textFormatButtons () {\n return [\n {\n showBtn: this.showFontStyleButton,\n buttonType: 'popover',\n selector: 'fontStyle',\n icon: DtIconType,\n dataQA: 'dt-recipe-editor-font-style-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_FONT_STYLE_BUTTON_LABEL'),\n },\n {\n showBtn: this.showFontSizeButton,\n buttonType: 'popover',\n selector: 'fontSize',\n icon: DtIconFontSize,\n dataQA: 'dt-recipe-editor-font-size-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_FONT_SIZE_BUTTON_LABEL'),\n },\n {\n showBtn: this.showFontColorButton,\n buttonType: 'custom',\n selector: 'fontColor',\n icon: DtIconStopFilled,\n dataQA: 'dt-recipe-editor-font-color-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_FONT_COLOR_BUTTON_LABEL'),\n onClick: this.onColorPickerButtonClick,\n },\n {\n showBtn: this.showBoldButton,\n buttonType: 'button',\n selector: 'bold',\n icon: DtIconBold,\n dataQA: 'dt-recipe-editor-bold-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_BOLD_BUTTON_LABEL'),\n onClick: this.onBoldTextToggle,\n },\n {\n showBtn: this.showItalicsButton,\n buttonType: 'button',\n selector: 'italic',\n icon: DtIconItalic,\n dataQA: 'dt-recipe-editor-italics-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ITALICS_BUTTON_LABEL'),\n onClick: this.onItalicTextToggle,\n },\n {\n showBtn: this.showUnderlineButton,\n buttonType: 'button',\n selector: 'underline',\n icon: DtIconUnderline,\n dataQA: 'dt-recipe-editor-underline-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_UNDERLINE_BUTTON_LABEL'),\n onClick: this.onUnderlineTextToggle,\n },\n {\n showBtn: this.showStrikeButton,\n buttonType: 'button',\n selector: 'strike',\n icon: DtIconStrikethrough,\n dataQA: 'dt-recipe-editor-strike-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_STRIKE_BUTTON_LABEL'),\n onClick: this.onStrikethroughTextToggle,\n },\n ].filter(button => button.showBtn);\n },\n\n alignmentButtons () {\n return [\n {\n showBtn: this.showAlignLeftButton,\n buttonType: 'button',\n selector: { textAlign: 'left' },\n icon: DtIconAlignLeft,\n dataQA: 'dt-recipe-editor-align-left-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ALIGN_LEFT_BUTTON_LABEL'),\n onClick: () => this.onTextAlign('left'),\n },\n {\n showBtn: this.showAlignCenterButton,\n buttonType: 'button',\n selector: { textAlign: 'center' },\n icon: DtIconAlignCenter,\n dataQA: 'dt-recipe-editor-align-center-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ALIGN_CENTER_BUTTON_LABEL'),\n onClick: () => this.onTextAlign('center'),\n },\n {\n showBtn: this.showAlignRightButton,\n buttonType: 'button',\n selector: { textAlign: 'right' },\n icon: DtIconAlignRight,\n dataQA: 'dt-recipe-editor-align-right-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ALIGN_RIGHT_BUTTON_LABEL'),\n onClick: () => this.onTextAlign('right'),\n },\n {\n showBtn: this.showAlignJustifyButton,\n buttonType: 'button',\n selector: { textAlign: 'justify' },\n icon: DtIconAlignJustify,\n dataQA: 'dt-recipe-editor-align-justify-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ALIGN_JUSTIFY_BUTTON_LABEL'),\n onClick: () => this.onTextAlign('justify'),\n },\n ].filter(button => button.showBtn);\n },\n\n listButtons () {\n return [\n {\n showBtn: this.showListItemsButton,\n buttonType: 'button',\n selector: 'bulletList',\n icon: DtIconListBullet,\n dataQA: 'dt-recipe-editor-list-items-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_BULLET_LIST_BUTTON_LABEL'),\n onClick: this.onBulletListToggle,\n },\n {\n showBtn: this.showOrderedListButton,\n buttonType: 'button',\n selector: 'orderedList',\n icon: DtIconListOrdered,\n dataQA: 'dt-recipe-editor-ordered-list-items-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ORDERED_LIST_BUTTON_LABEL'),\n onClick: this.onOrderedListToggle,\n },\n ].filter(button => button.showBtn);\n },\n\n individualButtons () {\n return [\n {\n showBtn: this.showQuoteButton,\n buttonType: 'button',\n selector: 'blockquote',\n icon: DtIconQuote,\n dataQA: 'dt-recipe-editor-blockquote-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_QUOTE_BUTTON_LABEL'),\n onClick: this.onBlockquoteToggle,\n },\n {\n showBtn: this.showCodeBlockButton,\n buttonType: 'button',\n selector: 'codeBlock',\n icon: DtIconCodeBlock,\n dataQA: 'dt-recipe-editor-code-block-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_CODE_BUTTON_LABEL'),\n onClick: this.onCodeBlockToggle,\n },\n {\n showBtn: this.showInlineImageButton,\n buttonType: 'button',\n selector: 'image',\n icon: DtIconImage,\n dataQA: 'dt-recipe-editor-inline-image-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_IMAGE_BUTTON_LABEL'),\n // Handle getting image\n onClick: this.onInsertInlineImageClick,\n },\n {\n showBtn: this.showVariableButton,\n buttonType: 'popover',\n selector: 'variable',\n icon: DtIconBraces,\n dataQA: 'dt-recipe-editor-variable-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_VARIABLE_BUTTON_LABEL'),\n },\n ].filter(button => button.showBtn);\n },\n\n linkButton () {\n return {\n showBtn: this.showAddLink.showAddLinkButton,\n buttonType: 'custom',\n selector: 'link',\n icon: DtIconLink2,\n dataQA: 'dt-recipe-editor-add-link-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_LINK_BUTTON_LABEL'),\n onClick: this.openLinkInput,\n };\n },\n\n confirmSetLinkButtonLabels () {\n return this.i18n.$ta('DIALTONE_EDITOR_CONFIRM_SET_LINK_BUTTON');\n },\n\n cancelSetLinkButtonLabels () {\n return this.i18n.$ta('DIALTONE_EDITOR_CANCEL_SET_LINK_BUTTON');\n },\n\n removeLinkButtonLabels () {\n return this.i18n.$ta('DIALTONE_EDITOR_REMOVE_LINK_BUTTON');\n },\n\n showAddLinkButtonLabels () {\n return this.i18n.$ta('DIALTONE_EDITOR_ADD_LINK_BUTTON');\n },\n\n filteredFontStyles () {\n const searchValue = this.fontStyleSearch.toLowerCase();\n return this.fontStyles.filter((item) =>\n item.name.toLowerCase().includes(searchValue),\n );\n },\n\n filteredCategories() {\n return this.variableCategories.filter(\n (category) => this.getFilteredItemsForCategory(category).length,\n );\n },\n\n colorPickerInput() {\n return document.querySelector('.colorPickerInput');\n },\n\n isDefaultFontColor() {\n return this.currentFontColor === EDITOR_DEFAULT_FONT_COLOR;\n },\n\n actionBarBtn () {\n const ref = this.$refs[this.orderedRefs[this.currentButtonRefIndex]][0]?.$refs?.buttonRef // get nested ref\n || this.$refs[this.orderedRefs[this.currentButtonRefIndex]];\n return Array.isArray(ref) ? ref[0] : ref;\n },\n\n },\n\n watch: {\n modelValue (newValue) {\n this.internalInputValue = newValue;\n },\n },\n\n methods: {\n removeClassStyleAttrs,\n addClassStyleAttrs,\n\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 onInsertInlineImageClick () {\n this.$emit('inline-image-click');\n },\n\n insertVariable (categoryName, variableData) {\n // Insert a variable using the custom command from the Variable extension\n this.$refs.richTextEditor?.editor.chain().focus().insertVariable({\n id: variableData.id,\n placeholder: variableData.placeholder || '',\n altText: '',\n enableAltText: variableData.enableAltText,\n }).run();\n },\n\n insertInlineImage (imageUrl) {\n this.$refs.richTextEditor?.editor.chain().focus().setImage({ src: imageUrl }).run();\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 onTextInput (input) {\n this.$emit('text-input', input);\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 this.$emit('update:modelValue', event);\n },\n\n onSelected() {\n this.updateFontColorInput();\n },\n\n getButtonKey (key, selector) {\n return `${key}-${JSON.stringify(selector)}`;\n },\n\n // Unique Button Ref Key to identify ref\n getButtonRef (key, selector) {\n return `${this.getButtonKey(key, selector)}-ref`;\n },\n\n /**\n * Determines if an element in the action bar button list is focusable with tab key\n * @param {string} refKey - unique identifier for the ref element in DOM\n */\n canFocus (refKey) {\n return refKey === this.orderedRefs[this.currentButtonRefIndex];\n },\n\n shiftActionBarFocusRight () {\n this.shiftButtonRefIndex(1);\n },\n\n shiftActionBarFocusLeft () {\n this.shiftButtonRefIndex(-1);\n },\n\n shiftButtonRefIndex (shiftAmount) {\n const previousActionBarBtn = this.actionBarBtn;\n const index = (this.currentButtonRefIndex + shiftAmount) % this.orderedRefs.length;\n this.currentButtonRefIndex = index >= 0 ? index : this.orderedRefs.length + index;\n const currentActionBarBtn = this.actionBarBtn;\n\n previousActionBarBtn.$el.blur();\n currentActionBarBtn.$el.focus();\n },\n\n onFontStyleSelect (fontFamily) {\n if (fontFamily) {\n this.$refs.richTextEditor?.editor?.chain().focus().setFontFamily(fontFamily).run();\n } else {\n this.$refs.richTextEditor?.editor?.chain().focus().unsetFontFamily().run();\n }\n this.$refs.richTextEditor?.editor?.commands.focus();\n },\n\n isCurrentFontFamily (fontFamily) {\n if (!fontFamily) {\n return !this.$refs.richTextEditor?.editor?.getAttributes('textStyle')?.fontFamily;\n }\n return this.$refs.richTextEditor?.editor?.isActive('textStyle', { fontFamily });\n },\n\n onFontSizeSelect (fontSize) {\n this.$refs.richTextEditor?.editor?.chain().focus().setFontSize(fontSize).run();\n this.$refs.richTextEditor?.editor?.commands.focus();\n },\n\n isCurrentFontSize (fontSize) {\n if (!fontSize) {\n return !this.$refs.richTextEditor?.editor?.getAttributes('textStyle')?.fontSize;\n }\n return this.$refs.richTextEditor?.editor?.isActive('textStyle', { fontSize });\n },\n\n getFilteredItemsForCategory(category) {\n const searchValue = this.variableSearchValue.toLowerCase();\n if (category.name.toLowerCase().includes(searchValue)) {\n return category.items;\n }\n return category.items.filter((item) =>\n item.name.toLowerCase().includes(searchValue),\n );\n },\n\n updateFontColorInput() {\n this.currentFontColor = this.$refs.richTextEditor?.editor?.getAttributes('textStyle')?.color || EDITOR_DEFAULT_FONT_COLOR;\n },\n\n onColorPickerButtonClick () {\n this.colorPickerInput?.click();\n },\n\n onColorPickerInput (fontColor) {\n this.$refs.richTextEditor?.editor?.chain().focus().setColor(fontColor).run();\n this.$refs.richTextEditor?.editor?.commands.focus();\n this.updateFontColorInput();\n },\n },\n};\n</script>\n\n<style>\n/* Image resizing classes - only active when allowImageResize is true */\n\n/* Image border */\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-wrapper] {\n outline: 1px solid var(--dt-color-chart-info-selected);\n line-height: 0 !important;\n}\n\n/* Corner handles */\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle] {\n position: absolute;\n background: var(--dt-color-chart-info-selected);\n z-index: 10;\n}\n\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle='top-left'],\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle='top-right'],\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle='bottom-left'],\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle='bottom-right'] {\n width: 8px;\n height: 8px;\n}\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle='top-left'] {\n cursor: nwse-resize;\n transform: translate(-50%, -50%);\n}\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle='top-right'] {\n cursor: nesw-resize;\n transform: translate(50%, -50%);\n}\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle='bottom-left'] {\n cursor: nesw-resize;\n transform: translate(-50%, 50%);\n}\n.d-recipe-editor__content-image-resize .tiptap .ProseMirror-selectednode [data-resize-handle='bottom-right'] {\n cursor: nwse-resize;\n transform: translate(50%, 50%);\n}\n</style>\n"],"names":["_sfc_main","DtListItemGroup","DtDropdownSeparator","DtListItem","DtRichTextEditor","DtButton","DtPopover","DtStack","DtInput","DtTooltip","DtCombobox","EditorToolbarButton","EditorToolbarDropdownButton","EditorToolbarPopoverButton","DtIconQuickReply","DtIconBold","DtIconItalic","DtIconUnderline","DtIconStrikethrough","DtIconListBullet","DtIconListOrdered","DtIconAlignLeft","DtIconAlignCenter","DtIconAlignRight","DtIconAlignJustify","DtIconQuote","DtIconCodeBlock","DtIconLink2","DtIconImage","DtIconSearch","DtIconType","DtIconBraces","DtIconChevronDown","DtIconFontSize","DtIconStopFilled","autoFocus","RICH_TEXT_EDITOR_AUTOFOCUS_TYPES","DialtoneLocalization","RICH_TEXT_EDITOR_OUTPUT_FORMATS","acc","category","refs","buttonData","button","individualButtonStacks","buttonGroupData","searchValue","item","EDITOR_DEFAULT_FONT_COLOR","ref","_b","_a","newValue","removeClassStyleAttrs","addClassStyleAttrs","event","_e","_d","_c","editor","EDITOR_SUPPORTED_LINK_PROTOCOLS","prefixRegex","EDITOR_DEFAULT_LINK_PREFIX","selection","openedInput","alignment","categoryName","variableData","imageUrl","messageContent","position","input","key","selector","refKey","shiftAmount","previousActionBarBtn","index","currentActionBarBtn","fontFamily","_f","fontSize","fontColor","_hoisted_1","_createElementBlock","_mergeProps","$options","_ctx","_cache","$event","_createVNode","_component_dt_stack","_Fragment","_renderList","buttonGroup","_createBlock","_openBlock","_component_editor_toolbar_popover_button","_withCtx","close","_component_dt_combobox","inputProps","_component_dt_input","$data","iconSize","_component_dt_icon_search","listProps","_createElementVNode","fontStyle","_component_dt_list_item","_normalizeStyle","_createTextVNode","_toDisplayString","_component_editor_toolbar_dropdown_button","$props","_component_dt_button","_resolveDynamicComponent","_directive_dt_tooltip","_component_dt_list_item_group","_component_dt_dropdown_separator","_component_editor_toolbar_button","_h","_g","_component_dt_popover","_component_dt_tooltip","_component_dt_rich_text_editor"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const P=require("./last-active-nodes.cjs"),k=require("../../common/utils/index.cjs"),f=require("@tiptap/core"),b=require("../../node_modules/@tiptap/vue-3.cjs"),d=require("@dialpad/dialtone-icons/vue3"),T=require("../../localization/index.cjs"),e=require("vue"),v=require("../../_plugin-vue_export-helper-BRilXfQE.cjs"),B=require("../button/button.cjs"),j=require("../item-layout/item-layout.cjs"),V=require("./message-input-topbar.cjs"),N=require("./message-input-link.cjs"),S=require("../editor/editor-constants.cjs"),A=require("../stack/stack.cjs"),M=require("../tooltip/tooltip.cjs"),q=require("../rich-text-editor/rich-text-editor.cjs"),F=require("../popover/popover.cjs"),R=require("../input/input.cjs"),U=require("../emoji-picker/emoji-picker.cjs"),C=require("../rich-text-editor/rich-text-editor-constants.cjs"),z={name:"MeetingPill",components:{NodeViewWrapper:b.NodeViewWrapper,DtItemLayout:j.default,DtIconClose:d.DtIconClose,DtButton:B.default,DtIconVideo:d.DtIconVideo},props:b.nodeViewProps,emits:["meeting-pill-close"],data(){return{i18n:new T.DialtoneLocalization}},computed:{closeButtonTitle(){return this.i18n.$t("DIALTONE_CLOSE_BUTTON")}},methods:{close(i){var o,r,l;const t=(l=(r=(o=this.editor)==null?void 0:o.storage)==null?void 0:r.meetingPill)==null?void 0:l.onClose;t&&typeof t=="function"&&t(i)}}},H={class:"d-recipe-message-input-meeting-pill__icon"},G={class:"d-recipe-message-input-meeting-pill__close"};function W(i,t,o,r,l,n){const m=e.resolveComponent("dt-icon-video"),p=e.resolveComponent("dt-icon-close"),h=e.resolveComponent("dt-button"),g=e.resolveComponent("dt-item-layout"),c=e.resolveComponent("node-view-wrapper");return e.openBlock(),e.createBlock(c,{class:"d-recipe-message-input-meeting-pill"},{default:e.withCtx(()=>[e.createVNode(g,{class:"d-recipe-message-input-meeting-pill__layout",unstyled:""},{left:e.withCtx(()=>[e.createElementVNode("div",H,[e.createVNode(m,{size:"400"})])]),right:e.withCtx(()=>[e.createElementVNode("div",G,[e.createVNode(h,{circle:"",importance:"clear",size:"xs","aria-label":n.closeButtonTitle,title:n.closeButtonTitle,onClick:n.close},{icon:e.withCtx(()=>[e.createVNode(p,{size:"300"})]),_:1},8,["aria-label","title","onClick"])])]),default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(i.node.attrs.text)+" ",1)]),_:1})]),_:1})}const K=v._(z,[["render",W]]),X=f.Node.create({name:"meetingPill",atom:!0,group:"inline",inline:!0,addOptions(){return{onClose:()=>{}}},addStorage(){return{onClose:this.options.onClose}},addNodeView(){return b.VueNodeViewRenderer(K)},addAttributes(){return{text:{default:'Please pass in "text" attribute'}}},parseHTML(){return[{tag:"meeting-pill"}]},renderText(){return"/dpm"},renderHTML({HTMLAttributes:i}){return["meeting-pill",f.mergeAttributes(i)]}}),Q={compatConfig:{MODE:3},name:"DtRecipeMessageInput",components:{DtButton:B.default,DtEmojiPicker:U.default,DtInput:R.default,DtPopover:F.default,DtRecipeMessageInputTopbar:V.default,DtRecipeMessageInputLink:N.default,DtRichTextEditor:q.default,DtTooltip:M.default,DtStack:A.default,DtIconImage:d.DtIconImage,DtIconVerySatisfied:d.DtIconVerySatisfied,DtIconSatisfied:d.DtIconSatisfied,DtIconSend:d.DtIconSend},inheritAttrs:!1,props:{richText:{type:Boolean,default:!0},modelValue:{type:[Object,String],default:""},editable:{type:Boolean,default:!0},inputAriaLabel:{type:String,required:!0,default:""},preventTyping:{type:Boolean,default:!1},inputClass:{type:String,default:""},autoFocus:{type:[Boolean,String,Number],default:!1,validator(i){return typeof i=="string"?C.RICH_TEXT_EDITOR_AUTOFOCUS_TYPES.includes(i):!0}},outputFormat:{type:String,default:"json",validator(i){return C.RICH_TEXT_EDITOR_OUTPUT_FORMATS.includes(i)}},placeholder:{type:String,default:""},disableSend:{type:Boolean,default:!1},maxHeight:{type:String,default:"unset"},showEmojiPicker:{type:Boolean,default:!0},emojiPickerProps:{type:Object,default:()=>({})},showCharacterLimit:{type:[Boolean,Object],default:()=>({count:1500,warning:500,message:""})},showImagePicker:{type:[Boolean,Object],default:()=>({})},showSend:{type:[Boolean,Object],default:()=>({})},showCancel:{type:[Boolean,Object],default:()=>({})},mentionSuggestion:{type:Object,default:null},channelSuggestion:{type:Object,default:null},slashCommandSuggestion:{type:Object,default:null},boldButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + B"})},italicButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + I"})},strikeButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + Shift + S"})},linkButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + K",linkPlaceholder:"e.g. https://www.dialpad.com"})},bulletListButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + Shift + 8"})},orderedListButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + Shift + 7"})},blockQuoteButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + Shift + B"})},codeButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + E"})},codeBlockButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + Alt + C"})}},emits:["submit","select-media","add-media","paste-media","cancel","skin-tone","selected-emoji","selected-command","meeting-pill-close","update:modelValue","text-input","markdown-input","add-emoji","emoji-scroll-bottom-reached"],data(){return{lastActiveNodes:P.default,additionalExtensions:[X.configure({onClose:i=>{this.$emit("meeting-pill-close",i)}})],internalInputValue:this.modelValue,imagePickerFocus:!1,emojiPickerFocus:!1,emojiPickerOpened:!1,isFocused:!1,linkOptions:{class:"d-link d-c-text d-d-inline-block"},linkDialogOpen:!1,selectedText:"",text:"",hideLinkBubbleMenu:!1,i18n:new T.DialtoneLocalization}},computed:{showSendIcon(){return!this.showSend.text},inputLength(){return this.text.length},displayCharacterLimitWarning(){return!!this.showCharacterLimit&&this.showCharacterLimit.count-this.inputLength<=this.showCharacterLimit.warning},characterLimitTooltipEnabled(){return this.showCharacterLimit.message&&this.showCharacterLimit.count-this.inputLength<0},isSendDisabled(){return this.disableSend||this.showCharacterLimit&&this.inputLength>this.showCharacterLimit.count},emojiPickerHovered(){return this.emojiPickerFocus||this.emojiPickerOpened},sendIconSize(){return"300"},sendButtonLabel(){return this.i18n.$t("DIALTONE_MESSAGE_INPUT_SEND_BUTTON_ARIA_LABEL")},imagePickerButtonLabel(){return this.i18n.$t("DIALTONE_MESSAGE_INPUT_IMAGE_PICKER_BUTTON_ARIA_LABEL")},emojiPickerButtonLabel(){return this.i18n.$t("DIALTONE_MESSAGE_INPUT_EMOJI_PICKER_BUTTON_ARIA_LABEL")},cancelButtonLabel(){return this.i18n.$t("DIALTONE_MESSAGE_INPUT_CANCEL_BUTTON_ARIA_LABEL")}},watch:{modelValue(i){this.internalInputValue=i},emojiPickerOpened(i){var t;i||(t=this.$refs.richTextEditor)==null||t.focusEditor()}},created(){this.modelValue&&this.outputFormat==="text"?this.internalInputValue=this.modelValue.replace(/\n/g,"<br>"):this.internalInputValue=this.modelValue},methods:{removeClassStyleAttrs:k.removeClassStyleAttrs,addClassStyleAttrs:k.addClassStyleAttrs,linkDialogOpened(i){var t;this.linkDialogOpen=i,i===!0?this.initLinkDialog():(this.hideLinkBubbleMenu=!1,(t=this.$refs.richTextEditor)==null||t.focusEditor())},handleTopbarClick(i){var r;const t=(r=this.$refs.richTextEditor)==null?void 0:r.editor,o={bold:()=>t==null?void 0:t.chain().focus().toggleBold().run(),italic:()=>t==null?void 0:t.chain().focus().toggleItalic().run(),strike:()=>t==null?void 0:t.chain().focus().toggleStrike().run(),bulletList:()=>t==null?void 0:t.chain().focus().toggleBulletList().run(),orderedList:()=>t==null?void 0:t.chain().focus().toggleOrderedList().run(),blockquote:()=>t==null?void 0:t.chain().focus().toggleBlockquote().run(),code:()=>t==null?void 0:t.chain().focus().toggleCode().run(),codeBlock:()=>t==null?void 0:t.chain().focus().toggleCodeBlock().run()};t&&o[i]&&o[i]()},isSelectionActive(i){var t,o,r,l;return["bulletList","orderedList"].includes(i)?this.richText?this.lastActiveNodes((o=(t=this.$refs.richTextEditor)==null?void 0:t.editor)==null?void 0:o.state,[{type:"bulletList"},{type:"orderedList"}]).includes(i)&&this.isFocused:!1:((l=(r=this.$refs.richTextEditor)==null?void 0:r.editor)==null?void 0:l.isActive(i))&&this.isFocused},initLinkDialog(){var i,t,o;this.$refs.link.setInitialValues(this.selectedText,(o=(t=(i=this.$refs.richTextEditor)==null?void 0:i.editor)==null?void 0:t.getAttributes("link"))==null?void 0:o.href),this.hideLinkBubbleMenu=!0,this.linkDialogOpen=!0},removeLink(){var i;(i=this.$refs.richTextEditor)==null||i.removeLink(),this.linkDialogOpen=!1},setLink(i,t){this.$refs.richTextEditor.setLink(t,i,this.linkOptions,S.EDITOR_SUPPORTED_LINK_PROTOCOLS,S.EDITOR_DEFAULT_LINK_PREFIX),this.linkDialogOpen=!1},onMousedown(i){k.returnFirstEl(this.$refs.richTextEditor.$el).querySelector(".tiptap").contains(i.target)||(i.preventDefault(),this.$refs.richTextEditor.focusEditor())},onDrop(i){const t=i.dataTransfer,o=Array.from(t.files);this.$emit("add-media",o)},onPaste(i){if(i.clipboardData.files.length){i.stopPropagation(),i.preventDefault();const t=[...i.clipboardData.files];this.$emit("paste-media",t)}},onSkinTone(i){this.$emit("skin-tone",i)},onSelectEmoji(i,t){i&&(i.shift_key||t(),this.$refs.richTextEditor.editor.commands.insertContent({type:"emoji",attrs:{code:i.shortname,image:i.image,name:i.name}}),this.$emit("selected-emoji",i))},onSelectImage(){this.$refs.messageInputImageUpload.$refs.input.click()},onImageUpload(){this.$emit("select-media",this.$refs.messageInputImageUpload.$refs.input.files)},toggleEmojiPicker(){this.emojiPickerOpened=!this.emojiPickerOpened},onSend(){this.isSendDisabled||this.$emit("submit",this.internalInputValue)},onCancel(){this.$emit("cancel")},onInput(i){this.$emit("update:modelValue",i)},onTextInput(i){this.text=i,this.$emit("text-input",i)},onMarkdownInput(i){this.$emit("markdown-input",i)}}},J={class:"d-recipe-message-input__bottom-section"},Y={class:"d-recipe-message-input__bottom-section-left"},Z={class:"d-recipe-message-input__bottom-section-right"},$={class:"d-recipe-message-input__schedule-message"},ee={class:"d-recipe-message-input__sms-count"},te={key:0};function ie(i,t,o,r,l,n){const m=e.resolveComponent("dt-recipe-message-input-link"),p=e.resolveComponent("dt-recipe-message-input-topbar"),h=e.resolveComponent("dt-rich-text-editor"),g=e.resolveComponent("dt-icon-image"),c=e.resolveComponent("dt-button"),I=e.resolveComponent("dt-input"),w=e.resolveComponent("dt-icon-very-satisfied"),L=e.resolveComponent("dt-icon-satisfied"),y=e.resolveComponent("dt-emoji-picker"),E=e.resolveComponent("dt-popover"),_=e.resolveComponent("dt-stack"),O=e.resolveComponent("dt-tooltip"),x=e.resolveComponent("dt-icon-send"),D=e.resolveDirective("dt-scrollbar"),u=e.resolveDirective("dt-tooltip");return e.openBlock(),e.createElementBlock("div",e.mergeProps({"data-qa":"dt-recipe-message-input",role:"presentation",class:"d-recipe-message-input"},n.addClassStyleAttrs(i.$attrs),{onDragover:t[16]||(t[16]=e.withModifiers(()=>{},["prevent"])),onDrop:t[17]||(t[17]=e.withModifiers((...s)=>n.onDrop&&n.onDrop(...s),["prevent"])),onPaste:t[18]||(t[18]=(...s)=>n.onPaste&&n.onPaste(...s)),onMousedown:t[19]||(t[19]=(...s)=>n.onMousedown&&n.onMousedown(...s))}),[e.renderSlot(i.$slots,"top"),o.richText?(e.openBlock(),e.createBlock(p,{key:l.selectedText,"bold-button-options":o.boldButtonOptions,"italic-button-options":o.italicButtonOptions,"strike-button-options":o.strikeButtonOptions,"bullet-list-button-options":o.bulletListButtonOptions,"ordered-list-button-options":o.orderedListButtonOptions,"block-quote-button-options":o.blockQuoteButtonOptions,"code-button-options":o.codeButtonOptions,"code-block-button-options":o.codeBlockButtonOptions,"is-selection-active":n.isSelectionActive,onClick:n.handleTopbarClick},{link:e.withCtx(()=>[e.createVNode(m,{ref:"link",open:l.linkDialogOpen,"link-button-options":o.linkButtonOptions,"is-selection-active":n.isSelectionActive,onOpened:n.linkDialogOpened,onSetLink:n.setLink,onRemoveLink:n.removeLink},null,8,["open","link-button-options","is-selection-active","onOpened","onSetLink","onRemoveLink"])]),_:1},8,["bold-button-options","italic-button-options","strike-button-options","bullet-list-button-options","ordered-list-button-options","block-quote-button-options","code-button-options","code-block-button-options","is-selection-active","onClick"])):e.createCommentVNode("",!0),e.withDirectives((e.openBlock(),e.createElementBlock("div",{class:"d-recipe-message-input__editor-wrapper",style:e.normalizeStyle({"max-height":o.maxHeight})},[e.createVNode(h,e.mergeProps({ref:"richTextEditor",modelValue:l.internalInputValue,"onUpdate:modelValue":t[0]||(t[0]=s=>l.internalInputValue=s),"allow-blockquote":o.richText,"allow-bold":o.richText,"allow-bullet-list":o.richText,"allow-code":o.richText,"allow-codeblock":o.richText,"allow-italic":o.richText,"allow-strike":o.richText,"allow-underline":o.richText,"paste-rich-text":o.richText,editable:o.editable,"input-aria-label":o.inputAriaLabel,"input-class":o.inputClass,"output-format":o.outputFormat,"auto-focus":o.autoFocus,link:o.richText,placeholder:o.placeholder,"prevent-typing":o.preventTyping,"mention-suggestion":o.mentionSuggestion,"channel-suggestion":o.channelSuggestion,"slash-command-suggestion":o.slashCommandSuggestion,"additional-extensions":l.additionalExtensions,"hide-link-bubble-menu":l.hideLinkBubbleMenu},n.removeClassStyleAttrs(i.$attrs),{onInput:n.onInput,onTextInput:n.onTextInput,onMarkdownInput:n.onMarkdownInput,onEnter:n.onSend,onSelected:t[1]||(t[1]=s=>l.selectedText=s),onSelectedCommand:t[2]||(t[2]=s=>i.$emit("selected-command",s)),onEditLink:n.initLinkDialog,onFocus:t[3]||(t[3]=s=>l.isFocused=!0),onBlur:t[4]||(t[4]=s=>l.isFocused=!1)}),null,16,["modelValue","allow-blockquote","allow-bold","allow-bullet-list","allow-code","allow-codeblock","allow-italic","allow-strike","allow-underline","paste-rich-text","editable","input-aria-label","input-class","output-format","auto-focus","link","placeholder","prevent-typing","mention-suggestion","channel-suggestion","slash-command-suggestion","additional-extensions","hide-link-bubble-menu","onInput","onTextInput","onMarkdownInput","onEnter","onEditLink"])],4)),[[D]]),e.renderSlot(i.$slots,"middle"),e.createElementVNode("section",J,[e.createElementVNode("div",Y,[e.createVNode(_,{gap:"200",direction:"row"},{default:e.withCtx(()=>[o.showImagePicker?e.withDirectives((e.openBlock(),e.createBlock(c,{key:0,"data-qa":"dt-recipe-message-input-image-btn",size:"sm",class:"d-recipe-message-input__button",kind:"muted",importance:"clear","aria-label":n.imagePickerButtonLabel,onClick:n.onSelectImage,onMouseenter:t[5]||(t[5]=s=>l.imagePickerFocus=!0),onMouseleave:t[6]||(t[6]=s=>l.imagePickerFocus=!1),onFocus:t[7]||(t[7]=s=>l.imagePickerFocus=!0),onBlur:t[8]||(t[8]=s=>l.imagePickerFocus=!1)},{icon:e.withCtx(()=>[e.createVNode(g,{size:"300"})]),_:1},8,["aria-label","onClick"])),[[u,n.imagePickerButtonLabel,"top-start"]]):e.createCommentVNode("",!0),e.createVNode(I,{ref:"messageInputImageUpload","data-qa":"dt-recipe-message-input-image-input",accept:"image/*, video/*",type:"file",class:"d-recipe-message-input__image-input",multiple:"",hidden:"",onInput:n.onImageUpload},null,8,["onInput"]),o.showEmojiPicker?(e.openBlock(),e.createBlock(E,{key:1,open:l.emojiPickerOpened,"onUpdate:open":t[15]||(t[15]=s=>l.emojiPickerOpened=s),"data-qa":"dt-recipe-message-input-emoji-picker-popover","initial-focus-element":"#searchInput",padding:"none"},{anchor:e.withCtx(({attrs:s})=>[e.withDirectives((e.openBlock(),e.createBlock(c,e.mergeProps(s,{"data-qa":"dt-recipe-message-input-emoji-picker-btn",size:"sm",class:"d-recipe-message-input__button",kind:"muted",importance:"clear","aria-label":n.emojiPickerButtonLabel,onClick:n.toggleEmojiPicker,onMouseenter:t[9]||(t[9]=a=>l.emojiPickerFocus=!0),onMouseleave:t[10]||(t[10]=a=>l.emojiPickerFocus=!1),onFocus:t[11]||(t[11]=a=>l.emojiPickerFocus=!0),onBlur:t[12]||(t[12]=a=>l.emojiPickerFocus=!1)}),{icon:e.withCtx(()=>[n.emojiPickerHovered?(e.openBlock(),e.createBlock(w,{key:0,size:"300"})):(e.openBlock(),e.createBlock(L,{key:1,size:"300"}))]),_:1},16,["aria-label","onClick"])),[[u,n.emojiPickerButtonLabel]])]),content:e.withCtx(({close:s})=>[e.createVNode(y,e.mergeProps(o.emojiPickerProps,{onAddEmoji:t[13]||(t[13]=a=>i.$emit("add-emoji")),onSkinTone:n.onSkinTone,onSelectedEmoji:a=>n.onSelectEmoji(a,s),onScrollBottomReached:t[14]||(t[14]=a=>i.$emit("emoji-scroll-bottom-reached"))}),null,16,["onSkinTone","onSelectedEmoji"])]),_:1},8,["open"])):e.createCommentVNode("",!0),e.renderSlot(i.$slots,"emojiGiphyPicker"),e.renderSlot(i.$slots,"customActionIcons")]),_:3})]),e.createElementVNode("div",Z,[e.createVNode(_,{direction:"row",gap:"300"},{default:e.withCtx(()=>[e.createElementVNode("div",$,[e.renderSlot(i.$slots,"scheduleMessage")]),e.createElementVNode("div",ee,[e.renderSlot(i.$slots,"smsCount")]),o.showCharacterLimit?(e.openBlock(),e.createBlock(O,{key:0,class:"d-recipe-message-input__remaining-char-tooltip",placement:"top-end",enabled:n.characterLimitTooltipEnabled,message:o.showCharacterLimit.message,offset:[10,8]},{anchor:e.withCtx(()=>[e.withDirectives(e.createElementVNode("p",{class:"d-recipe-message-input__remaining-char","data-qa":"dt-recipe-message-input-character-limit"},e.toDisplayString(o.showCharacterLimit.count-n.inputLength),513),[[e.vShow,n.displayCharacterLimitWarning]])]),_:1},8,["enabled","message"])):e.createCommentVNode("",!0),o.showCancel?e.withDirectives((e.openBlock(),e.createBlock(c,{key:1,"data-qa":"dt-recipe-message-input-cancel-button",class:"d-recipe-message-input__button d-recipe-message-input__cancel-button",size:"sm",kind:"muted",importance:"clear","aria-label":n.cancelButtonLabel,onClick:n.onCancel},{default:e.withCtx(()=>[e.createElementVNode("p",null,e.toDisplayString(n.cancelButtonLabel),1)]),_:1},8,["aria-label","onClick"])),[[u,n.cancelButtonLabel]]):e.createCommentVNode("",!0),e.renderSlot(i.$slots,"sendButton",{},()=>[o.showSend?e.withDirectives((e.openBlock(),e.createBlock(c,{key:0,"data-qa":"dt-recipe-message-input-send-btn",size:"sm",kind:"default",importance:"primary",class:e.normalizeClass(["d-recipe-message-input__button d-recipe-message-input__send-button",{"d-recipe-message-input__send-button--disabled":n.isSendDisabled,"d-btn--icon-only":n.showSendIcon}]),"aria-label":n.sendButtonLabel,"aria-disabled":n.isSendDisabled,onClick:n.onSend},e.createSlots({default:e.withCtx(()=>[o.showSend.text?(e.openBlock(),e.createElementBlock("p",te,e.toDisplayString(o.showSend.text),1)):e.createCommentVNode("",!0)]),_:2},[n.showSendIcon?{name:"icon",fn:e.withCtx(()=>[e.renderSlot(i.$slots,"sendIcon",{iconSize:n.sendIconSize},()=>[e.createVNode(x,{size:n.sendIconSize},null,8,["size"])])]),key:"0"}:void 0]),1032,["class","aria-label","aria-disabled","onClick"])),[[u,n.sendButtonLabel,"top-end"]]):e.createCommentVNode("",!0)])]),_:3})])])],16)}const oe=v._(Q,[["render",ie]]);exports.default=oe;
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const P=require("./last-active-nodes.cjs"),k=require("../../common/utils/index.cjs"),f=require("@tiptap/core"),b=require("../../node_modules/@tiptap/vue-3.cjs"),d=require("@dialpad/dialtone-icons/vue3"),T=require("../../localization/index.cjs"),e=require("vue"),v=require("../../_plugin-vue_export-helper-BRilXfQE.cjs"),B=require("../button/button.cjs"),j=require("../item-layout/item-layout.cjs"),V=require("./message-input-topbar.cjs"),N=require("./message-input-link.cjs"),S=require("../editor/editor-constants.cjs"),A=require("../stack/stack.cjs"),M=require("../tooltip/tooltip.cjs"),q=require("../rich-text-editor/rich-text-editor.cjs"),F=require("../popover/popover.cjs"),R=require("../input/input.cjs"),U=require("../emoji-picker/emoji-picker.cjs"),C=require("../rich-text-editor/rich-text-editor-constants.cjs"),z={name:"MeetingPill",components:{NodeViewWrapper:b.NodeViewWrapper,DtItemLayout:j.default,DtIconClose:d.DtIconClose,DtButton:B.default,DtIconVideo:d.DtIconVideo},props:b.nodeViewProps,emits:["meeting-pill-close"],data(){return{i18n:new T.DialtoneLocalization}},computed:{closeButtonTitle(){return this.i18n.$t("DIALTONE_CLOSE_BUTTON")}},methods:{close(i){var o,r,l;const t=(l=(r=(o=this.editor)==null?void 0:o.storage)==null?void 0:r.meetingPill)==null?void 0:l.onClose;t&&typeof t=="function"&&t(i)}}},H={class:"d-recipe-message-input-meeting-pill__icon"},G={class:"d-recipe-message-input-meeting-pill__close"};function W(i,t,o,r,l,n){const m=e.resolveComponent("dt-icon-video"),p=e.resolveComponent("dt-icon-close"),h=e.resolveComponent("dt-button"),g=e.resolveComponent("dt-item-layout"),c=e.resolveComponent("node-view-wrapper");return e.openBlock(),e.createBlock(c,{class:"d-recipe-message-input-meeting-pill"},{default:e.withCtx(()=>[e.createVNode(g,{class:"d-recipe-message-input-meeting-pill__layout",unstyled:""},{left:e.withCtx(()=>[e.createElementVNode("div",H,[e.createVNode(m,{size:"400"})])]),right:e.withCtx(()=>[e.createElementVNode("div",G,[e.createVNode(h,{circle:"",importance:"clear",size:"xs","aria-label":n.closeButtonTitle,title:n.closeButtonTitle,onClick:n.close},{icon:e.withCtx(()=>[e.createVNode(p,{size:"300"})]),_:1},8,["aria-label","title","onClick"])])]),default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(i.node.attrs.text)+" ",1)]),_:1})]),_:1})}const K=v._(z,[["render",W]]),X=f.Node.create({name:"meetingPill",atom:!0,group:"inline",inline:!0,addOptions(){return{onClose:()=>{}}},addStorage(){return{onClose:this.options.onClose}},addNodeView(){return b.VueNodeViewRenderer(K)},addAttributes(){return{text:{default:'Please pass in "text" attribute'}}},parseHTML(){return[{tag:"meeting-pill"}]},renderText(){return"/dpm"},renderHTML({HTMLAttributes:i}){return["meeting-pill",f.mergeAttributes(i)]}}),Q={compatConfig:{MODE:3},name:"DtRecipeMessageInput",components:{DtButton:B.default,DtEmojiPicker:U.default,DtInput:R.default,DtPopover:F.default,DtRecipeMessageInputTopbar:V.default,DtRecipeMessageInputLink:N.default,DtRichTextEditor:q.default,DtTooltip:M.default,DtStack:A.default,DtIconImage:d.DtIconImage,DtIconVerySatisfied:d.DtIconVerySatisfied,DtIconSatisfied:d.DtIconSatisfied,DtIconSend:d.DtIconSend},inheritAttrs:!1,props:{richText:{type:Boolean,default:!0},modelValue:{type:[Object,String],default:""},editable:{type:Boolean,default:!0},inputAriaLabel:{type:String,required:!0,default:""},preventTyping:{type:Boolean,default:!1},inputClass:{type:String,default:""},autoFocus:{type:[Boolean,String,Number],default:!1,validator(i){return typeof i=="string"?C.RICH_TEXT_EDITOR_AUTOFOCUS_TYPES.includes(i):!0}},outputFormat:{type:String,default:"json",validator(i){return C.RICH_TEXT_EDITOR_OUTPUT_FORMATS.includes(i)}},placeholder:{type:String,default:""},disableSend:{type:Boolean,default:!1},maxHeight:{type:String,default:"unset"},showEmojiPicker:{type:Boolean,default:!0},emojiPickerProps:{type:Object,default:()=>({})},showCharacterLimit:{type:[Boolean,Object],default:()=>({count:1500,warning:500,message:""})},showImagePicker:{type:[Boolean,Object],default:()=>({})},showSend:{type:[Boolean,Object],default:()=>({})},showCancel:{type:[Boolean,Object],default:()=>({})},mentionSuggestion:{type:Object,default:null},channelSuggestion:{type:Object,default:null},slashCommandSuggestion:{type:Object,default:null},boldButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + B"})},italicButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + I"})},strikeButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + Shift + S"})},linkButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + K",linkPlaceholder:"e.g. https://www.dialpad.com"})},bulletListButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + Shift + 8"})},orderedListButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + Shift + 7"})},blockQuoteButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + Shift + B"})},codeButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + E"})},codeBlockButtonOptions:{type:Object,default:()=>({keyboardShortcutText:"Mod + Alt + C"})}},emits:["submit","select-media","add-media","paste-media","cancel","skin-tone","selected-emoji","selected-command","meeting-pill-close","update:modelValue","text-input","markdown-input","add-emoji","emoji-scroll-bottom-reached"],data(){return{lastActiveNodes:P.default,additionalExtensions:[X.configure({onClose:i=>{this.$emit("meeting-pill-close",i)}})],internalInputValue:this.modelValue,imagePickerFocus:!1,emojiPickerFocus:!1,emojiPickerOpened:!1,isFocused:!1,linkOptions:{class:"d-link d-c-text d-d-inline-block"},linkDialogOpen:!1,selectedText:"",text:"",hideLinkBubbleMenu:!1,i18n:new T.DialtoneLocalization}},computed:{showSendIcon(){return!this.showSend.text},inputLength(){return this.text.length},displayCharacterLimitWarning(){return!!this.showCharacterLimit&&this.showCharacterLimit.count-this.inputLength<=this.showCharacterLimit.warning},characterLimitTooltipEnabled(){return this.showCharacterLimit.message&&this.showCharacterLimit.count-this.inputLength<0},isSendDisabled(){return this.disableSend||this.showCharacterLimit&&this.inputLength>this.showCharacterLimit.count},emojiPickerHovered(){return this.emojiPickerFocus||this.emojiPickerOpened},sendIconSize(){return"300"},sendButtonLabel(){return this.i18n.$t("DIALTONE_MESSAGE_INPUT_SEND_BUTTON_ARIA_LABEL")},imagePickerButtonLabel(){return this.i18n.$t("DIALTONE_MESSAGE_INPUT_IMAGE_PICKER_BUTTON_ARIA_LABEL")},emojiPickerButtonLabel(){return this.i18n.$t("DIALTONE_MESSAGE_INPUT_EMOJI_PICKER_BUTTON_ARIA_LABEL")},cancelButtonLabel(){return this.i18n.$t("DIALTONE_MESSAGE_INPUT_CANCEL_BUTTON_ARIA_LABEL")}},watch:{modelValue(i){this.internalInputValue=i},emojiPickerOpened(i){var t;i||(t=this.$refs.richTextEditor)==null||t.focusEditor()}},created(){this.modelValue&&this.outputFormat==="text"?this.internalInputValue=this.modelValue.replace(/\n/g,"<br>"):this.internalInputValue=this.modelValue},methods:{removeClassStyleAttrs:k.removeClassStyleAttrs,addClassStyleAttrs:k.addClassStyleAttrs,linkDialogOpened(i){var t;this.linkDialogOpen=i,i===!0?this.initLinkDialog():(this.hideLinkBubbleMenu=!1,(t=this.$refs.richTextEditor)==null||t.focusEditor())},handleTopbarClick(i){var r;const t=(r=this.$refs.richTextEditor)==null?void 0:r.editor,o={bold:()=>t==null?void 0:t.chain().focus().toggleBold().run(),italic:()=>t==null?void 0:t.chain().focus().toggleItalic().run(),strike:()=>t==null?void 0:t.chain().focus().toggleStrike().run(),bulletList:()=>t==null?void 0:t.chain().focus().toggleBulletList().run(),orderedList:()=>t==null?void 0:t.chain().focus().toggleOrderedList().run(),blockquote:()=>t==null?void 0:t.chain().focus().toggleBlockquote().run(),code:()=>t==null?void 0:t.chain().focus().toggleCode().run(),codeBlock:()=>t==null?void 0:t.chain().focus().toggleCodeBlock().run()};t&&o[i]&&o[i]()},isSelectionActive(i){var t,o,r,l;return["bulletList","orderedList"].includes(i)?this.richText?this.lastActiveNodes((o=(t=this.$refs.richTextEditor)==null?void 0:t.editor)==null?void 0:o.state,[{type:"bulletList"},{type:"orderedList"}]).includes(i)&&this.isFocused:!1:((l=(r=this.$refs.richTextEditor)==null?void 0:r.editor)==null?void 0:l.isActive(i))&&this.isFocused},initLinkDialog(){var i,t,o;this.$refs.link.setInitialValues(this.selectedText,(o=(t=(i=this.$refs.richTextEditor)==null?void 0:i.editor)==null?void 0:t.getAttributes("link"))==null?void 0:o.href),this.hideLinkBubbleMenu=!0,this.linkDialogOpen=!0},removeLink(){var i;(i=this.$refs.richTextEditor)==null||i.removeLink(),this.linkDialogOpen=!1},setLink(i,t){this.$refs.richTextEditor.setLink(t,i,this.linkOptions,S.EDITOR_SUPPORTED_LINK_PROTOCOLS,S.EDITOR_DEFAULT_LINK_PREFIX),this.linkDialogOpen=!1},onMousedown(i){k.returnFirstEl(this.$refs.richTextEditor.$el).querySelector(".tiptap").contains(i.target)||(i.preventDefault(),this.$refs.richTextEditor.focusEditor())},onDrop(i){const t=i.dataTransfer,o=Array.from(t.files);this.$emit("add-media",o)},onPaste(i){if(i.clipboardData.files.length){i.stopPropagation(),i.preventDefault();const t=[...i.clipboardData.files];this.$emit("paste-media",t)}},onSkinTone(i){this.$emit("skin-tone",i)},onSelectEmoji(i,t){i&&(i.shift_key||t(),this.$refs.richTextEditor.editor.commands.insertContent({type:"emoji",attrs:{code:i.shortname,image:i.image,name:i.name}}),this.$emit("selected-emoji",i))},onSelectImage(){this.$refs.messageInputImageUpload.$refs.input.click()},onImageUpload(){this.$emit("select-media",this.$refs.messageInputImageUpload.$refs.input.files)},toggleEmojiPicker(){this.emojiPickerOpened=!this.emojiPickerOpened},onSend(){this.isSendDisabled||this.$emit("submit",this.internalInputValue)},onCancel(){this.$emit("cancel")},onInput(i){this.$emit("update:modelValue",i)},onTextInput(i){this.text=i,this.$emit("text-input",i)},onMarkdownInput(i){this.$emit("markdown-input",i)}}},J={class:"d-recipe-message-input__bottom-section"},Y={class:"d-recipe-message-input__bottom-section-left"},Z={class:"d-recipe-message-input__bottom-section-right"},$={class:"d-recipe-message-input__schedule-message"},ee={class:"d-recipe-message-input__sms-count"},te={key:0};function ie(i,t,o,r,l,n){const m=e.resolveComponent("dt-recipe-message-input-link"),p=e.resolveComponent("dt-recipe-message-input-topbar"),h=e.resolveComponent("dt-rich-text-editor"),g=e.resolveComponent("dt-icon-image"),c=e.resolveComponent("dt-button"),I=e.resolveComponent("dt-input"),w=e.resolveComponent("dt-icon-very-satisfied"),L=e.resolveComponent("dt-icon-satisfied"),y=e.resolveComponent("dt-emoji-picker"),E=e.resolveComponent("dt-popover"),_=e.resolveComponent("dt-stack"),O=e.resolveComponent("dt-tooltip"),x=e.resolveComponent("dt-icon-send"),D=e.resolveDirective("dt-scrollbar"),u=e.resolveDirective("dt-tooltip");return e.openBlock(),e.createElementBlock("div",e.mergeProps({"data-qa":"dt-recipe-message-input",role:"presentation",class:"d-recipe-message-input"},n.addClassStyleAttrs(i.$attrs),{onDragover:t[16]||(t[16]=e.withModifiers(()=>{},["prevent"])),onDrop:t[17]||(t[17]=e.withModifiers((...s)=>n.onDrop&&n.onDrop(...s),["prevent"])),onPaste:t[18]||(t[18]=(...s)=>n.onPaste&&n.onPaste(...s)),onMousedown:t[19]||(t[19]=(...s)=>n.onMousedown&&n.onMousedown(...s))}),[e.renderSlot(i.$slots,"top"),o.richText?(e.openBlock(),e.createBlock(p,{key:l.selectedText,"bold-button-options":o.boldButtonOptions,"italic-button-options":o.italicButtonOptions,"strike-button-options":o.strikeButtonOptions,"bullet-list-button-options":o.bulletListButtonOptions,"ordered-list-button-options":o.orderedListButtonOptions,"block-quote-button-options":o.blockQuoteButtonOptions,"code-button-options":o.codeButtonOptions,"code-block-button-options":o.codeBlockButtonOptions,"is-selection-active":n.isSelectionActive,onClick:n.handleTopbarClick},{link:e.withCtx(()=>[e.createVNode(m,{ref:"link",open:l.linkDialogOpen,"link-button-options":o.linkButtonOptions,"is-selection-active":n.isSelectionActive,onOpened:n.linkDialogOpened,onSetLink:n.setLink,onRemoveLink:n.removeLink},null,8,["open","link-button-options","is-selection-active","onOpened","onSetLink","onRemoveLink"])]),_:1},8,["bold-button-options","italic-button-options","strike-button-options","bullet-list-button-options","ordered-list-button-options","block-quote-button-options","code-button-options","code-block-button-options","is-selection-active","onClick"])):e.createCommentVNode("",!0),e.withDirectives((e.openBlock(),e.createElementBlock("div",{class:"d-recipe-message-input__editor-wrapper",style:e.normalizeStyle({"max-height":o.maxHeight})},[e.createVNode(h,e.mergeProps({ref:"richTextEditor",modelValue:l.internalInputValue,"onUpdate:modelValue":t[0]||(t[0]=s=>l.internalInputValue=s),"allow-blockquote":o.richText,"allow-bold":o.richText,"allow-bullet-list":o.richText,"allow-code":o.richText,"allow-codeblock":o.richText,"allow-italic":o.richText,"allow-strike":o.richText,"allow-underline":o.richText,"paste-rich-text":o.richText,editable:o.editable,"input-aria-label":o.inputAriaLabel,"input-class":o.inputClass,"output-format":o.outputFormat,"auto-focus":o.autoFocus,link:o.richText,placeholder:o.placeholder,"prevent-typing":o.preventTyping,"mention-suggestion":o.mentionSuggestion,"channel-suggestion":o.channelSuggestion,"slash-command-suggestion":o.slashCommandSuggestion,"additional-extensions":l.additionalExtensions,"hide-link-bubble-menu":l.hideLinkBubbleMenu},n.removeClassStyleAttrs(i.$attrs),{onInput:n.onInput,onTextInput:n.onTextInput,onMarkdownInput:n.onMarkdownInput,onEnter:n.onSend,onSelected:t[1]||(t[1]=s=>l.selectedText=s),onSelectedCommand:t[2]||(t[2]=s=>i.$emit("selected-command",s)),onEditLink:n.initLinkDialog,onFocus:t[3]||(t[3]=s=>l.isFocused=!0),onBlur:t[4]||(t[4]=s=>l.isFocused=!1)}),null,16,["modelValue","allow-blockquote","allow-bold","allow-bullet-list","allow-code","allow-codeblock","allow-italic","allow-strike","allow-underline","paste-rich-text","editable","input-aria-label","input-class","output-format","auto-focus","link","placeholder","prevent-typing","mention-suggestion","channel-suggestion","slash-command-suggestion","additional-extensions","hide-link-bubble-menu","onInput","onTextInput","onMarkdownInput","onEnter","onEditLink"])],4)),[[D]]),e.renderSlot(i.$slots,"middle"),e.createElementVNode("section",J,[e.createElementVNode("div",Y,[e.createVNode(_,{gap:"200",direction:"row"},{default:e.withCtx(()=>[o.showImagePicker?e.withDirectives((e.openBlock(),e.createBlock(c,{key:0,"data-qa":"dt-recipe-message-input-image-btn",size:"sm",class:"d-recipe-message-input__button",kind:"muted",importance:"clear","aria-label":n.imagePickerButtonLabel,onClick:n.onSelectImage,onMouseenter:t[5]||(t[5]=s=>l.imagePickerFocus=!0),onMouseleave:t[6]||(t[6]=s=>l.imagePickerFocus=!1),onFocus:t[7]||(t[7]=s=>l.imagePickerFocus=!0),onBlur:t[8]||(t[8]=s=>l.imagePickerFocus=!1)},{icon:e.withCtx(()=>[e.createVNode(g,{size:"300"})]),_:1},8,["aria-label","onClick"])),[[u,n.imagePickerButtonLabel,"top-start"]]):e.createCommentVNode("",!0),e.createVNode(I,{ref:"messageInputImageUpload","data-qa":"dt-recipe-message-input-image-input",accept:"image/*, video/*",type:"file",class:"d-recipe-message-input__image-input",multiple:"",hidden:"",onInput:n.onImageUpload},null,8,["onInput"]),o.showEmojiPicker?(e.openBlock(),e.createBlock(E,{key:1,open:l.emojiPickerOpened,"onUpdate:open":t[15]||(t[15]=s=>l.emojiPickerOpened=s),"data-qa":"dt-recipe-message-input-emoji-picker-popover","initial-focus-element":"#searchInput",padding:"none"},{anchor:e.withCtx(({attrs:s})=>[e.withDirectives((e.openBlock(),e.createBlock(c,e.mergeProps(s,{"data-qa":"dt-recipe-message-input-emoji-picker-btn",size:"sm",class:"d-recipe-message-input__button",kind:"muted",importance:"clear","aria-label":n.emojiPickerButtonLabel,onClick:n.toggleEmojiPicker,onMouseenter:t[9]||(t[9]=a=>l.emojiPickerFocus=!0),onMouseleave:t[10]||(t[10]=a=>l.emojiPickerFocus=!1),onFocus:t[11]||(t[11]=a=>l.emojiPickerFocus=!0),onBlur:t[12]||(t[12]=a=>l.emojiPickerFocus=!1)}),{icon:e.withCtx(()=>[n.emojiPickerHovered?(e.openBlock(),e.createBlock(w,{key:0,size:"300"})):(e.openBlock(),e.createBlock(L,{key:1,size:"300"}))]),_:1},16,["aria-label","onClick"])),[[u,n.emojiPickerButtonLabel]])]),content:e.withCtx(({close:s})=>[e.createVNode(y,e.mergeProps(o.emojiPickerProps,{onAddEmoji:t[13]||(t[13]=a=>i.$emit("add-emoji")),onSkinTone:n.onSkinTone,onSelectedEmoji:a=>n.onSelectEmoji(a,s),onScrollBottomReached:t[14]||(t[14]=a=>i.$emit("emoji-scroll-bottom-reached"))}),null,16,["onSkinTone","onSelectedEmoji"])]),_:1},8,["open"])):e.createCommentVNode("",!0),e.renderSlot(i.$slots,"emojiGiphyPicker"),e.renderSlot(i.$slots,"customActionIcons"),e.renderSlot(i.$slots,"messagePolish")]),_:3})]),e.createElementVNode("div",Z,[e.createVNode(_,{direction:"row",gap:"300"},{default:e.withCtx(()=>[e.createElementVNode("div",$,[e.renderSlot(i.$slots,"scheduleMessage")]),e.createElementVNode("div",ee,[e.renderSlot(i.$slots,"smsCount")]),o.showCharacterLimit?(e.openBlock(),e.createBlock(O,{key:0,class:"d-recipe-message-input__remaining-char-tooltip",placement:"top-end",enabled:n.characterLimitTooltipEnabled,message:o.showCharacterLimit.message,offset:[10,8]},{anchor:e.withCtx(()=>[e.withDirectives(e.createElementVNode("p",{class:"d-recipe-message-input__remaining-char","data-qa":"dt-recipe-message-input-character-limit"},e.toDisplayString(o.showCharacterLimit.count-n.inputLength),513),[[e.vShow,n.displayCharacterLimitWarning]])]),_:1},8,["enabled","message"])):e.createCommentVNode("",!0),o.showCancel?e.withDirectives((e.openBlock(),e.createBlock(c,{key:1,"data-qa":"dt-recipe-message-input-cancel-button",class:"d-recipe-message-input__button d-recipe-message-input__cancel-button",size:"sm",kind:"muted",importance:"clear","aria-label":n.cancelButtonLabel,onClick:n.onCancel},{default:e.withCtx(()=>[e.createElementVNode("p",null,e.toDisplayString(n.cancelButtonLabel),1)]),_:1},8,["aria-label","onClick"])),[[u,n.cancelButtonLabel]]):e.createCommentVNode("",!0),e.renderSlot(i.$slots,"sendButton",{},()=>[o.showSend?e.withDirectives((e.openBlock(),e.createBlock(c,{key:0,"data-qa":"dt-recipe-message-input-send-btn",size:"sm",kind:"default",importance:"primary",class:e.normalizeClass(["d-recipe-message-input__button d-recipe-message-input__send-button",{"d-recipe-message-input__send-button--disabled":n.isSendDisabled,"d-btn--icon-only":n.showSendIcon}]),"aria-label":n.sendButtonLabel,"aria-disabled":n.isSendDisabled,onClick:n.onSend},e.createSlots({default:e.withCtx(()=>[o.showSend.text?(e.openBlock(),e.createElementBlock("p",te,e.toDisplayString(o.showSend.text),1)):e.createCommentVNode("",!0)]),_:2},[n.showSendIcon?{name:"icon",fn:e.withCtx(()=>[e.renderSlot(i.$slots,"sendIcon",{iconSize:n.sendIconSize},()=>[e.createVNode(x,{size:n.sendIconSize},null,8,["size"])])]),key:"0"}:void 0]),1032,["class","aria-label","aria-disabled","onClick"])),[[u,n.sendButtonLabel,"top-end"]]):e.createCommentVNode("",!0)])]),_:3})])])],16)}const oe=v._(Q,[["render",ie]]);exports.default=oe;
|
|
2
2
|
//# sourceMappingURL=message-input.cjs.map
|