@dialpad/dialtone-vue 3.222.2 → 3.222.3
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/component-documentation.json +1 -1
- package/dist/components/combobox_with_popover/combobox_with_popover.vue.d.ts +18 -1
- package/dist/components/combobox_with_popover/combobox_with_popover.vue.d.ts.map +1 -1
- package/dist/components/dropdown/dropdown.vue.d.ts +18 -1
- package/dist/components/dropdown/dropdown.vue.d.ts.map +1 -1
- package/dist/components/hovercard/hovercard.vue.d.ts +40 -4
- package/dist/components/hovercard/hovercard.vue.d.ts.map +1 -1
- package/dist/components/popover/popover.vue.d.ts +18 -1
- package/dist/components/popover/popover.vue.d.ts.map +1 -1
- package/dist/components/popover/popover_constants.d.ts +2 -0
- package/dist/components/popover/popover_constants.d.ts.map +1 -1
- package/dist/components/popover/tippy_utils.d.ts +1 -1
- package/dist/components/popover/tippy_utils.d.ts.map +1 -1
- package/dist/components/rich_text_editor/extensions/variable/VariableComponent.vue.d.ts +18 -1
- package/dist/components/rich_text_editor/extensions/variable/VariableComponent.vue.d.ts.map +1 -1
- package/dist/components/split_button/split_button.vue.d.ts +18 -1
- package/dist/components/split_button/split_button.vue.d.ts.map +1 -1
- package/dist/components/tooltip/tooltip.vue.d.ts +2 -2
- package/dist/dialtone-vue.cjs +1 -1
- package/dist/dialtone-vue.js +2 -2
- package/dist/lib/editor/editor.cjs +1 -1
- package/dist/lib/editor/editor.js +1 -1
- package/dist/lib/message-input/index.cjs +1 -1
- package/dist/lib/message-input/index.js +1 -1
- package/dist/lib/message-input/message-input.cjs +1 -1
- package/dist/lib/message-input/message-input.js +1 -1
- package/dist/lib/popover/popover-constants.cjs +1 -1
- package/dist/lib/popover/popover-constants.cjs.map +1 -1
- package/dist/lib/popover/popover-constants.js +14 -9
- package/dist/lib/popover/popover-constants.js.map +1 -1
- package/dist/lib/popover/popover.cjs +1 -1
- package/dist/lib/popover/popover.cjs.map +1 -1
- package/dist/lib/popover/popover.js +55 -46
- package/dist/lib/popover/popover.js.map +1 -1
- package/dist/lib/popover/tippy-utils.cjs +1 -1
- package/dist/lib/popover/tippy-utils.cjs.map +1 -1
- package/dist/lib/popover/tippy-utils.js +2 -1
- package/dist/lib/popover/tippy-utils.js.map +1 -1
- package/dist/lib/rich-text-editor/index.cjs +1 -1
- package/dist/lib/rich-text-editor/index.js +1 -1
- package/dist/lib/rich-text-editor/markdownRenderer.js +1 -1
- package/dist/lib/rich-text-editor/rich-text-editor.cjs +1 -1
- package/dist/lib/rich-text-editor/rich-text-editor.js +1 -1
- package/dist/markdownRenderer-DCgGQseq.cjs.map +1 -1
- package/dist/{markdownRenderer-D_P94RyM.js → markdownRenderer-vnndXQhE.js} +2 -2
- package/dist/{markdownRenderer-D_P94RyM.js.map → markdownRenderer-vnndXQhE.js.map} +1 -1
- package/dist/{message_input-DmLi63dh.cjs → message_input-B45NFtUx.cjs} +2 -2
- package/dist/{message_input-DmLi63dh.cjs.map → message_input-B45NFtUx.cjs.map} +1 -1
- package/dist/{message_input-B2fppje7.js → message_input-DQQ3d8vG.js} +2 -2
- package/dist/{message_input-B2fppje7.js.map → message_input-DQQ3d8vG.js.map} +1 -1
- package/dist/node_modules/@tiptap/vue-3.cjs.map +1 -1
- package/dist/node_modules/@tiptap/vue-3.js +1 -1
- package/dist/node_modules/@tiptap/vue-3.js.map +1 -1
- package/dist/recipes/buttons/callbar_button/callbar_button.vue.d.ts +2 -2
- package/dist/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts +20 -3
- package/dist/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts.map +1 -1
- package/dist/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +20 -3
- package/dist/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts.map +1 -1
- package/dist/recipes/cards/ivr_node/ivr_node.vue.d.ts +18 -1
- package/dist/recipes/cards/ivr_node/ivr_node.vue.d.ts.map +1 -1
- package/dist/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts +18 -1
- package/dist/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts.map +1 -1
- package/dist/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts +18 -1
- package/dist/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts.map +1 -1
- package/dist/recipes/conversation_view/editor/editor.vue.d.ts +56 -5
- package/dist/recipes/conversation_view/editor/editor.vue.d.ts.map +1 -1
- package/dist/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts +2 -2
- package/dist/recipes/conversation_view/message_input/message_input.vue.d.ts +42 -8
- package/dist/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
- package/dist/recipes/conversation_view/message_input/message_input_button.vue.d.ts +2 -2
- package/dist/recipes/conversation_view/message_input/message_input_link.vue.d.ts +20 -3
- package/dist/recipes/conversation_view/message_input/message_input_link.vue.d.ts.map +1 -1
- package/dist/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts +2 -2
- package/dist/recipes/leftbar/contact_row/contact_row.vue.d.ts +2 -2
- package/dist/recipes/leftbar/general_row/general_row.vue.d.ts +2 -2
- package/dist/recipes/leftbar/group_row/group_row.vue.d.ts +2 -2
- package/dist/{rich_text_editor-BhUKyR0E.js → rich_text_editor-COc4LaIk.js} +4 -3
- package/dist/{rich_text_editor-BhUKyR0E.js.map → rich_text_editor-COc4LaIk.js.map} +1 -1
- package/dist/{rich_text_editor-wvONcbYd.cjs → rich_text_editor-DWrdKcza.cjs} +2 -2
- package/dist/{rich_text_editor-wvONcbYd.cjs.map → rich_text_editor-DWrdKcza.cjs.map} +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdownRenderer-DCgGQseq.cjs","names":["Node"],"sources":["../../../node_modules/.pnpm/@tiptap+static-renderer@3.19.0_@tiptap+core@3.19.0_@tiptap+pm@3.19.0__@tiptap+pm@3.19.0_react_4n7lapq7bmfej5hsrzhdkukr6e/node_modules/@tiptap/static-renderer/dist/pm/markdown/index.js","../components/rich_text_editor/markdownRenderer.js"],"sourcesContent":["// src/pm/extensionRenderer.ts\nimport {\n getAttributesFromExtensions,\n getExtensionField,\n getSchemaByResolvedExtensions,\n resolveExtensions,\n splitExtensions\n} from \"@tiptap/core\";\nimport { Node } from \"@tiptap/pm/model\";\n\n// src/helpers.ts\nimport { mergeAttributes } from \"@tiptap/core\";\nfunction getAttributes(nodeOrMark, extensionAttributes, onlyRenderedAttributes) {\n const nodeOrMarkAttributes = nodeOrMark.attrs;\n if (!nodeOrMarkAttributes) {\n return {};\n }\n return extensionAttributes.filter((item) => {\n if (item.type !== (typeof nodeOrMark.type === \"string\" ? nodeOrMark.type : nodeOrMark.type.name)) {\n return false;\n }\n if (onlyRenderedAttributes) {\n return item.attribute.rendered;\n }\n return true;\n }).map((item) => {\n if (!item.attribute.renderHTML) {\n return {\n [item.name]: item.name in nodeOrMarkAttributes ? nodeOrMarkAttributes[item.name] : item.attribute.default\n };\n }\n return item.attribute.renderHTML(nodeOrMarkAttributes) || {\n [item.name]: item.name in nodeOrMarkAttributes ? nodeOrMarkAttributes[item.name] : item.attribute.default\n };\n }).reduce((attributes, attribute) => mergeAttributes(attributes, attribute), {});\n}\nfunction getHTMLAttributes(nodeOrMark, extensionAttributes) {\n return getAttributes(nodeOrMark, extensionAttributes, true);\n}\n\n// src/pm/extensionRenderer.ts\nfunction mapNodeExtensionToReactNode(domOutputSpecToElement, extension, extensionAttributes, options) {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n parent: extension.parent\n };\n const renderToHTML = getExtensionField(extension, \"renderHTML\", context);\n if (!renderToHTML) {\n if (options == null ? void 0 : options.unhandledNode) {\n return [extension.name, options.unhandledNode];\n }\n return [\n extension.name,\n () => {\n throw new Error(\n `[tiptap error]: Node ${extension.name} cannot be rendered, it is missing a \"renderToHTML\" method, please implement it or override the corresponding \"nodeMapping\" method to have a custom rendering`\n );\n }\n ];\n }\n return [\n extension.name,\n ({ node, children }) => {\n try {\n return domOutputSpecToElement(\n renderToHTML({\n node,\n HTMLAttributes: getHTMLAttributes(node, extensionAttributes)\n })\n )(children);\n } catch (e) {\n throw new Error(\n `[tiptap error]: Node ${extension.name} cannot be rendered, it's \"renderToHTML\" method threw an error: ${e.message}`,\n { cause: e }\n );\n }\n }\n ];\n}\nfunction mapMarkExtensionToReactNode(domOutputSpecToElement, extension, extensionAttributes, options) {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n parent: extension.parent\n };\n const renderToHTML = getExtensionField(extension, \"renderHTML\", context);\n if (!renderToHTML) {\n if (options == null ? void 0 : options.unhandledMark) {\n return [extension.name, options.unhandledMark];\n }\n return [\n extension.name,\n () => {\n throw new Error(`Node ${extension.name} cannot be rendered, it is missing a \"renderToHTML\" method`);\n }\n ];\n }\n return [\n extension.name,\n ({ mark, children }) => {\n try {\n return domOutputSpecToElement(\n renderToHTML({\n mark,\n HTMLAttributes: getHTMLAttributes(mark, extensionAttributes)\n })\n )(children);\n } catch (e) {\n throw new Error(\n `[tiptap error]: Mark ${extension.name} cannot be rendered, it's \"renderToHTML\" method threw an error: ${e.message}`,\n { cause: e }\n );\n }\n }\n ];\n}\nfunction renderToElement({\n renderer,\n domOutputSpecToElement,\n mapDefinedTypes,\n content,\n extensions,\n options\n}) {\n extensions = resolveExtensions(extensions);\n const extensionAttributes = getAttributesFromExtensions(extensions);\n const { nodeExtensions, markExtensions } = splitExtensions(extensions);\n if (!(content instanceof Node)) {\n content = Node.fromJSON(getSchemaByResolvedExtensions(extensions), content);\n }\n return renderer({\n ...options,\n nodeMapping: {\n ...Object.fromEntries(\n nodeExtensions.filter((e) => {\n if (e.name in mapDefinedTypes) {\n return false;\n }\n if (options == null ? void 0 : options.nodeMapping) {\n return !(e.name in options.nodeMapping);\n }\n return true;\n }).map(\n (nodeExtension) => mapNodeExtensionToReactNode(domOutputSpecToElement, nodeExtension, extensionAttributes, options)\n )\n ),\n ...mapDefinedTypes,\n ...options == null ? void 0 : options.nodeMapping\n },\n markMapping: {\n ...Object.fromEntries(\n markExtensions.filter((e) => {\n if (options == null ? void 0 : options.markMapping) {\n return !(e.name in options.markMapping);\n }\n return true;\n }).map((mark) => mapMarkExtensionToReactNode(domOutputSpecToElement, mark, extensionAttributes, options))\n ),\n ...options == null ? void 0 : options.markMapping\n }\n })({ content });\n}\n\n// src/json/renderer.ts\nfunction TiptapStaticRenderer(renderComponent, {\n nodeMapping,\n markMapping,\n unhandledNode,\n unhandledMark\n}) {\n return function renderContent({\n content,\n parent\n }) {\n var _a;\n const nodeType = typeof content.type === \"string\" ? content.type : content.type.name;\n const NodeHandler = (_a = nodeMapping[nodeType]) != null ? _a : unhandledNode;\n if (!NodeHandler) {\n throw new Error(`missing handler for node type ${nodeType}`);\n }\n const nodeContent = renderComponent({\n component: NodeHandler,\n props: {\n node: content,\n parent,\n renderElement: renderContent,\n // Lazily compute the children to avoid unnecessary recursion\n get children() {\n const children = [];\n if (content.content) {\n content.content.forEach((child) => {\n children.push(\n renderContent({\n content: child,\n parent: content\n })\n );\n });\n }\n return children;\n }\n }\n });\n const markedContent = content.marks ? content.marks.reduce((acc, mark) => {\n var _a2;\n const markType = typeof mark.type === \"string\" ? mark.type : mark.type.name;\n const MarkHandler = (_a2 = markMapping[markType]) != null ? _a2 : unhandledMark;\n if (!MarkHandler) {\n throw new Error(`missing handler for mark type ${markType}`);\n }\n return renderComponent({\n component: MarkHandler,\n props: {\n mark,\n parent,\n node: content,\n children: acc\n }\n });\n }, nodeContent) : nodeContent;\n return markedContent;\n };\n}\n\n// src/json/html-string/string.ts\nfunction renderJSONContentToString(options) {\n return TiptapStaticRenderer((ctx) => {\n return ctx.component(ctx.props);\n }, options);\n}\nfunction serializeAttrsToHTMLString(attrs) {\n const output = Object.entries(attrs || {}).map(([key, value]) => `${key.split(\" \").at(-1)}=${JSON.stringify(value)}`).join(\" \");\n return output ? ` ${output}` : \"\";\n}\nfunction serializeChildrenToHTMLString(children) {\n return [].concat(children || \"\").filter(Boolean).join(\"\");\n}\n\n// src/pm/html-string/html-string.ts\nvar NON_SELF_CLOSING_TAGS = /* @__PURE__ */ new Set([\"iframe\", \"script\", \"style\", \"title\", \"textarea\", \"div\", \"span\", \"a\", \"button\"]);\nfunction domOutputSpecToHTMLString(content) {\n if (typeof content === \"string\") {\n return () => content;\n }\n if (typeof content === \"object\" && \"length\" in content) {\n const [_tag, attrs, children, ...rest] = content;\n let tag = _tag;\n const parts = tag.split(\" \");\n if (parts.length > 1) {\n tag = `${parts[1]} xmlns=\"${parts[0]}\"`;\n }\n if (attrs === void 0) {\n return () => `<${tag}/>`;\n }\n if (attrs === 0) {\n return (child) => `<${tag}>${serializeChildrenToHTMLString(child)}</${tag}>`;\n }\n if (typeof attrs === \"object\") {\n if (Array.isArray(attrs)) {\n if (children === void 0) {\n return (child) => `<${tag}>${domOutputSpecToHTMLString(attrs)(child)}</${tag}>`;\n }\n if (children === 0) {\n return (child) => `<${tag}>${domOutputSpecToHTMLString(attrs)(child)}</${tag}>`;\n }\n return (child) => `<${tag}>${domOutputSpecToHTMLString(attrs)(child)}${[children].concat(rest).map((a) => domOutputSpecToHTMLString(a)(child))}</${tag}>`;\n }\n if (children === void 0) {\n if (NON_SELF_CLOSING_TAGS.has(tag)) {\n return () => `<${tag}${serializeAttrsToHTMLString(attrs)}></${tag}>`;\n }\n return () => `<${tag}${serializeAttrsToHTMLString(attrs)}/>`;\n }\n if (children === 0) {\n return (child) => `<${tag}${serializeAttrsToHTMLString(attrs)}>${serializeChildrenToHTMLString(child)}</${tag}>`;\n }\n return (child) => `<${tag}${serializeAttrsToHTMLString(attrs)}>${[children].concat(rest).map((a) => domOutputSpecToHTMLString(a)(child)).join(\"\")}</${tag}>`;\n }\n }\n throw new Error(\n \"[tiptap error]: Unsupported DomOutputSpec type, check the `renderHTML` method output or implement a node mapping\",\n {\n cause: content\n }\n );\n}\nfunction renderToHTMLString({\n content,\n extensions,\n options\n}) {\n return renderToElement({\n renderer: renderJSONContentToString,\n domOutputSpecToElement: domOutputSpecToHTMLString,\n mapDefinedTypes: {\n // Map a doc node to concatenated children\n doc: ({ children }) => serializeChildrenToHTMLString(children),\n // Map a text node to its text content\n text: ({ node }) => {\n var _a;\n return (_a = node.text) != null ? _a : \"\";\n }\n },\n content,\n extensions,\n options\n });\n}\n\n// src/pm/markdown/markdown.ts\nfunction renderToMarkdown({\n content,\n extensions,\n options\n}) {\n return renderToHTMLString({\n content,\n extensions,\n options: {\n ...options,\n nodeMapping: {\n bulletList({ children }) {\n return `\n${serializeChildrenToHTMLString(children)}`;\n },\n orderedList({ children }) {\n return `\n${serializeChildrenToHTMLString(children)}`;\n },\n listItem({ node, children, parent }) {\n if ((parent == null ? void 0 : parent.type.name) === \"bulletList\") {\n return `- ${serializeChildrenToHTMLString(children).trim()}\n`;\n }\n if ((parent == null ? void 0 : parent.type.name) === \"orderedList\") {\n let number = parent.attrs.start || 1;\n parent.forEach((parentChild, _offset, index) => {\n if (node === parentChild) {\n number = index + 1;\n }\n });\n return `${number}. ${serializeChildrenToHTMLString(children).trim()}\n`;\n }\n return serializeChildrenToHTMLString(children);\n },\n paragraph({ children }) {\n return `\n${serializeChildrenToHTMLString(children)}\n`;\n },\n heading({ node, children }) {\n const level = node.attrs.level;\n return `${new Array(level).fill(\"#\").join(\"\")} ${children}\n`;\n },\n codeBlock({ node, children }) {\n return `\n\\`\\`\\`${node.attrs.language}\n${serializeChildrenToHTMLString(children)}\n\\`\\`\\`\n`;\n },\n blockquote({ children }) {\n return `\n${serializeChildrenToHTMLString(children).trim().split(\"\\n\").map((a) => `> ${a}`).join(\"\\n\")}`;\n },\n image({ node }) {\n return ``;\n },\n hardBreak() {\n return \"\\n\";\n },\n horizontalRule() {\n return \"\\n---\\n\";\n },\n table({ children, node }) {\n if (!Array.isArray(children)) {\n return `\n${serializeChildrenToHTMLString(children)}\n`;\n }\n const columnCount = node.children[0].childCount;\n return `\n${serializeChildrenToHTMLString(children[0])}| ${new Array(columnCount).fill(\"---\").join(\" | \")} |\n${serializeChildrenToHTMLString(children.slice(1))}\n`;\n },\n tableRow({ children }) {\n if (Array.isArray(children)) {\n return `| ${children.join(\" | \")} |\n`;\n }\n return `${serializeChildrenToHTMLString(children)}\n`;\n },\n tableHeader({ children }) {\n return serializeChildrenToHTMLString(children).trim();\n },\n tableCell({ children }) {\n return serializeChildrenToHTMLString(children).trim();\n },\n ...options == null ? void 0 : options.nodeMapping\n },\n markMapping: {\n bold({ children }) {\n return `**${serializeChildrenToHTMLString(children)}**`;\n },\n italic({ children, node }) {\n let isBoldToo = false;\n if (node == null ? void 0 : node.marks.some((m) => m.type.name === \"bold\")) {\n isBoldToo = true;\n }\n if (isBoldToo) {\n return `*${serializeChildrenToHTMLString(children)}*`;\n }\n return `_${serializeChildrenToHTMLString(children)}_`;\n },\n code({ children }) {\n return `\\`${serializeChildrenToHTMLString(children)}\\``;\n },\n strike({ children }) {\n return `~~${serializeChildrenToHTMLString(children)}~~`;\n },\n underline({ children }) {\n return `<u>${serializeChildrenToHTMLString(children)}</u>`;\n },\n subscript({ children }) {\n return `<sub>${serializeChildrenToHTMLString(children)}</sub>`;\n },\n superscript({ children }) {\n return `<sup>${serializeChildrenToHTMLString(children)}</sup>`;\n },\n link({ mark, children }) {\n return `[${serializeChildrenToHTMLString(children)}](${mark.attrs.href})`;\n },\n highlight({ children }) {\n return `==${serializeChildrenToHTMLString(children)}==`;\n },\n ...options == null ? void 0 : options.markMapping\n }\n }\n });\n}\nexport {\n mapMarkExtensionToReactNode,\n mapNodeExtensionToReactNode,\n renderToElement,\n renderToMarkdown\n};\n//# sourceMappingURL=index.js.map","import { renderToMarkdown } from '@tiptap/static-renderer/pm/markdown';\n\n// The pm/markdown renderer passes children as string[] (one entry per child node),\n// not as a pre-joined string. Normalize to a string before processing.\nconst joinChildren = (children) => Array.isArray(children) ? children.join('') : (children || '');\n\n// Move leading/trailing spaces outside mark delimiters so parsers like CommonMark\n// don't reject them (e.g. \"** bold **\" → \" **bold** \").\nconst wrapMark = (text, open, close) => {\n const trimmed = text.trim();\n if (!trimmed) return text;\n const leading = text.slice(0, text.length - text.trimStart().length);\n const trailing = text.slice(text.trimEnd().length);\n return `${leading}${open}${trimmed}${close}${trailing}`;\n};\n\n/**\n * Renders a TipTap/ProseMirror JSON document to a markdown string.\n *\n * Uses @tiptap/static-renderer with custom mappings to preserve the output\n * format of the legacy jsonToMarkdownConverter, including Dialtone-specific\n * node types (mention, channel, emoji, variable, slash-commands).\n *\n * @param {import('@tiptap/core').JSONContent} jsonContent - TipTap JSON document\n * @param {import('@tiptap/core').Extensions} extensions - Active editor extensions\n * @returns {string}\n */\nexport function renderEditorToMarkdown (jsonContent, extensions) {\n const output = renderToMarkdown({\n extensions,\n content: jsonContent,\n options: {\n nodeMapping: {\n // Override blockquote: built-in omits trailing newline (causes lazy continuation).\n // Since we replace the built-in entirely, we must add the '> ' prefix ourselves.\n blockquote ({ children }) {\n const text = joinChildren(children).trim();\n const quoted = text\n .split('\\n')\n .map(line => line ? `> ${line}` : '>')\n .join('\\n');\n return quoted + '\\n';\n },\n\n // Override codeBlock: built-in passes null language through literally\n codeBlock ({ node, children }) {\n const lang = node.attrs?.language || '';\n return `\\`\\`\\`${lang}\\n${joinChildren(children)}\\n\\`\\`\\`\\n`;\n },\n\n // Custom Dialtone node types\n mention ({ node }) {\n const id = node.attrs?.id || '';\n const contactKey = node.attrs?.contactKey || '';\n const name = node.attrs?.name || '';\n return `<!-- @mention: {\"id\": \"${id}\", \"contactKey\": \"${contactKey}\", \"name\": \"${name}\"} -->`;\n },\n\n channel ({ node }) {\n const id = node.attrs?.id || '';\n const channelKey = node.attrs?.channelKey || '';\n const name = node.attrs?.name || '';\n const locked = String(node.attrs?.locked ?? '');\n return `<!-- @channel: {\"id\": \"${id}\", \"channelKey\": \"${channelKey}\", \"name\": \"${name}\", \"locked\": \"${locked}\"} -->`;\n },\n\n 'slash-commands' ({ node }) {\n return `/${node.attrs?.command || ''}`;\n },\n\n emoji ({ node }) {\n return node.attrs?.code || '';\n },\n\n variable ({ node }) {\n const id = node.attrs?.id || '';\n const altText = node.attrs?.altText || '';\n return `{{${id}=${altText}}}`;\n },\n },\n\n markMapping: {\n bold ({ children }) {\n return wrapMark(joinChildren(children), '**', '**');\n },\n\n // Override italic: use * instead of built-in _ and fix boundary spaces\n italic ({ children }) {\n return wrapMark(joinChildren(children), '*', '*');\n },\n\n strike ({ children }) {\n return wrapMark(joinChildren(children), '~~', '~~');\n },\n\n code ({ children }) {\n return wrapMark(joinChildren(children), '`', '`');\n },\n\n link ({ mark, children }) {\n const text = joinChildren(children);\n const href = mark.attrs?.href || '';\n const trimmed = text.trim();\n const leading = text.slice(0, text.length - text.trimStart().length);\n const trailing = text.slice(text.trimEnd().length);\n return `${leading}[${trimmed}](${href})${trailing}`;\n },\n\n // Override underline: pass-through (no markdown equivalent, matches legacy no-op)\n underline ({ children }) {\n return joinChildren(children);\n },\n },\n },\n });\n // Collapse 3+ consecutive newlines to 2 (CommonMark ignores extra blank\n // lines between blocks), and strip the leading newline that the built-in\n // paragraph renderer always prepends to the first node.\n return output.replace(/\\n{3,}/g, '\\n\\n').replace(/^\\n+|\\n+$/g, '');\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"markdownRenderer-DCgGQseq.cjs","names":["Node"],"sources":["../../../node_modules/.pnpm/@tiptap+static-renderer@3.19.0_@tiptap+core@3.19.0_@tiptap+pm@3.19.0__@tiptap+pm@3.19.0_9606d4b01b88c88c850636a0b274a958/node_modules/@tiptap/static-renderer/dist/pm/markdown/index.js","../components/rich_text_editor/markdownRenderer.js"],"sourcesContent":["// src/pm/extensionRenderer.ts\nimport {\n getAttributesFromExtensions,\n getExtensionField,\n getSchemaByResolvedExtensions,\n resolveExtensions,\n splitExtensions\n} from \"@tiptap/core\";\nimport { Node } from \"@tiptap/pm/model\";\n\n// src/helpers.ts\nimport { mergeAttributes } from \"@tiptap/core\";\nfunction getAttributes(nodeOrMark, extensionAttributes, onlyRenderedAttributes) {\n const nodeOrMarkAttributes = nodeOrMark.attrs;\n if (!nodeOrMarkAttributes) {\n return {};\n }\n return extensionAttributes.filter((item) => {\n if (item.type !== (typeof nodeOrMark.type === \"string\" ? nodeOrMark.type : nodeOrMark.type.name)) {\n return false;\n }\n if (onlyRenderedAttributes) {\n return item.attribute.rendered;\n }\n return true;\n }).map((item) => {\n if (!item.attribute.renderHTML) {\n return {\n [item.name]: item.name in nodeOrMarkAttributes ? nodeOrMarkAttributes[item.name] : item.attribute.default\n };\n }\n return item.attribute.renderHTML(nodeOrMarkAttributes) || {\n [item.name]: item.name in nodeOrMarkAttributes ? nodeOrMarkAttributes[item.name] : item.attribute.default\n };\n }).reduce((attributes, attribute) => mergeAttributes(attributes, attribute), {});\n}\nfunction getHTMLAttributes(nodeOrMark, extensionAttributes) {\n return getAttributes(nodeOrMark, extensionAttributes, true);\n}\n\n// src/pm/extensionRenderer.ts\nfunction mapNodeExtensionToReactNode(domOutputSpecToElement, extension, extensionAttributes, options) {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n parent: extension.parent\n };\n const renderToHTML = getExtensionField(extension, \"renderHTML\", context);\n if (!renderToHTML) {\n if (options == null ? void 0 : options.unhandledNode) {\n return [extension.name, options.unhandledNode];\n }\n return [\n extension.name,\n () => {\n throw new Error(\n `[tiptap error]: Node ${extension.name} cannot be rendered, it is missing a \"renderToHTML\" method, please implement it or override the corresponding \"nodeMapping\" method to have a custom rendering`\n );\n }\n ];\n }\n return [\n extension.name,\n ({ node, children }) => {\n try {\n return domOutputSpecToElement(\n renderToHTML({\n node,\n HTMLAttributes: getHTMLAttributes(node, extensionAttributes)\n })\n )(children);\n } catch (e) {\n throw new Error(\n `[tiptap error]: Node ${extension.name} cannot be rendered, it's \"renderToHTML\" method threw an error: ${e.message}`,\n { cause: e }\n );\n }\n }\n ];\n}\nfunction mapMarkExtensionToReactNode(domOutputSpecToElement, extension, extensionAttributes, options) {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n parent: extension.parent\n };\n const renderToHTML = getExtensionField(extension, \"renderHTML\", context);\n if (!renderToHTML) {\n if (options == null ? void 0 : options.unhandledMark) {\n return [extension.name, options.unhandledMark];\n }\n return [\n extension.name,\n () => {\n throw new Error(`Node ${extension.name} cannot be rendered, it is missing a \"renderToHTML\" method`);\n }\n ];\n }\n return [\n extension.name,\n ({ mark, children }) => {\n try {\n return domOutputSpecToElement(\n renderToHTML({\n mark,\n HTMLAttributes: getHTMLAttributes(mark, extensionAttributes)\n })\n )(children);\n } catch (e) {\n throw new Error(\n `[tiptap error]: Mark ${extension.name} cannot be rendered, it's \"renderToHTML\" method threw an error: ${e.message}`,\n { cause: e }\n );\n }\n }\n ];\n}\nfunction renderToElement({\n renderer,\n domOutputSpecToElement,\n mapDefinedTypes,\n content,\n extensions,\n options\n}) {\n extensions = resolveExtensions(extensions);\n const extensionAttributes = getAttributesFromExtensions(extensions);\n const { nodeExtensions, markExtensions } = splitExtensions(extensions);\n if (!(content instanceof Node)) {\n content = Node.fromJSON(getSchemaByResolvedExtensions(extensions), content);\n }\n return renderer({\n ...options,\n nodeMapping: {\n ...Object.fromEntries(\n nodeExtensions.filter((e) => {\n if (e.name in mapDefinedTypes) {\n return false;\n }\n if (options == null ? void 0 : options.nodeMapping) {\n return !(e.name in options.nodeMapping);\n }\n return true;\n }).map(\n (nodeExtension) => mapNodeExtensionToReactNode(domOutputSpecToElement, nodeExtension, extensionAttributes, options)\n )\n ),\n ...mapDefinedTypes,\n ...options == null ? void 0 : options.nodeMapping\n },\n markMapping: {\n ...Object.fromEntries(\n markExtensions.filter((e) => {\n if (options == null ? void 0 : options.markMapping) {\n return !(e.name in options.markMapping);\n }\n return true;\n }).map((mark) => mapMarkExtensionToReactNode(domOutputSpecToElement, mark, extensionAttributes, options))\n ),\n ...options == null ? void 0 : options.markMapping\n }\n })({ content });\n}\n\n// src/json/renderer.ts\nfunction TiptapStaticRenderer(renderComponent, {\n nodeMapping,\n markMapping,\n unhandledNode,\n unhandledMark\n}) {\n return function renderContent({\n content,\n parent\n }) {\n var _a;\n const nodeType = typeof content.type === \"string\" ? content.type : content.type.name;\n const NodeHandler = (_a = nodeMapping[nodeType]) != null ? _a : unhandledNode;\n if (!NodeHandler) {\n throw new Error(`missing handler for node type ${nodeType}`);\n }\n const nodeContent = renderComponent({\n component: NodeHandler,\n props: {\n node: content,\n parent,\n renderElement: renderContent,\n // Lazily compute the children to avoid unnecessary recursion\n get children() {\n const children = [];\n if (content.content) {\n content.content.forEach((child) => {\n children.push(\n renderContent({\n content: child,\n parent: content\n })\n );\n });\n }\n return children;\n }\n }\n });\n const markedContent = content.marks ? content.marks.reduce((acc, mark) => {\n var _a2;\n const markType = typeof mark.type === \"string\" ? mark.type : mark.type.name;\n const MarkHandler = (_a2 = markMapping[markType]) != null ? _a2 : unhandledMark;\n if (!MarkHandler) {\n throw new Error(`missing handler for mark type ${markType}`);\n }\n return renderComponent({\n component: MarkHandler,\n props: {\n mark,\n parent,\n node: content,\n children: acc\n }\n });\n }, nodeContent) : nodeContent;\n return markedContent;\n };\n}\n\n// src/json/html-string/string.ts\nfunction renderJSONContentToString(options) {\n return TiptapStaticRenderer((ctx) => {\n return ctx.component(ctx.props);\n }, options);\n}\nfunction serializeAttrsToHTMLString(attrs) {\n const output = Object.entries(attrs || {}).map(([key, value]) => `${key.split(\" \").at(-1)}=${JSON.stringify(value)}`).join(\" \");\n return output ? ` ${output}` : \"\";\n}\nfunction serializeChildrenToHTMLString(children) {\n return [].concat(children || \"\").filter(Boolean).join(\"\");\n}\n\n// src/pm/html-string/html-string.ts\nvar NON_SELF_CLOSING_TAGS = /* @__PURE__ */ new Set([\"iframe\", \"script\", \"style\", \"title\", \"textarea\", \"div\", \"span\", \"a\", \"button\"]);\nfunction domOutputSpecToHTMLString(content) {\n if (typeof content === \"string\") {\n return () => content;\n }\n if (typeof content === \"object\" && \"length\" in content) {\n const [_tag, attrs, children, ...rest] = content;\n let tag = _tag;\n const parts = tag.split(\" \");\n if (parts.length > 1) {\n tag = `${parts[1]} xmlns=\"${parts[0]}\"`;\n }\n if (attrs === void 0) {\n return () => `<${tag}/>`;\n }\n if (attrs === 0) {\n return (child) => `<${tag}>${serializeChildrenToHTMLString(child)}</${tag}>`;\n }\n if (typeof attrs === \"object\") {\n if (Array.isArray(attrs)) {\n if (children === void 0) {\n return (child) => `<${tag}>${domOutputSpecToHTMLString(attrs)(child)}</${tag}>`;\n }\n if (children === 0) {\n return (child) => `<${tag}>${domOutputSpecToHTMLString(attrs)(child)}</${tag}>`;\n }\n return (child) => `<${tag}>${domOutputSpecToHTMLString(attrs)(child)}${[children].concat(rest).map((a) => domOutputSpecToHTMLString(a)(child))}</${tag}>`;\n }\n if (children === void 0) {\n if (NON_SELF_CLOSING_TAGS.has(tag)) {\n return () => `<${tag}${serializeAttrsToHTMLString(attrs)}></${tag}>`;\n }\n return () => `<${tag}${serializeAttrsToHTMLString(attrs)}/>`;\n }\n if (children === 0) {\n return (child) => `<${tag}${serializeAttrsToHTMLString(attrs)}>${serializeChildrenToHTMLString(child)}</${tag}>`;\n }\n return (child) => `<${tag}${serializeAttrsToHTMLString(attrs)}>${[children].concat(rest).map((a) => domOutputSpecToHTMLString(a)(child)).join(\"\")}</${tag}>`;\n }\n }\n throw new Error(\n \"[tiptap error]: Unsupported DomOutputSpec type, check the `renderHTML` method output or implement a node mapping\",\n {\n cause: content\n }\n );\n}\nfunction renderToHTMLString({\n content,\n extensions,\n options\n}) {\n return renderToElement({\n renderer: renderJSONContentToString,\n domOutputSpecToElement: domOutputSpecToHTMLString,\n mapDefinedTypes: {\n // Map a doc node to concatenated children\n doc: ({ children }) => serializeChildrenToHTMLString(children),\n // Map a text node to its text content\n text: ({ node }) => {\n var _a;\n return (_a = node.text) != null ? _a : \"\";\n }\n },\n content,\n extensions,\n options\n });\n}\n\n// src/pm/markdown/markdown.ts\nfunction renderToMarkdown({\n content,\n extensions,\n options\n}) {\n return renderToHTMLString({\n content,\n extensions,\n options: {\n ...options,\n nodeMapping: {\n bulletList({ children }) {\n return `\n${serializeChildrenToHTMLString(children)}`;\n },\n orderedList({ children }) {\n return `\n${serializeChildrenToHTMLString(children)}`;\n },\n listItem({ node, children, parent }) {\n if ((parent == null ? void 0 : parent.type.name) === \"bulletList\") {\n return `- ${serializeChildrenToHTMLString(children).trim()}\n`;\n }\n if ((parent == null ? void 0 : parent.type.name) === \"orderedList\") {\n let number = parent.attrs.start || 1;\n parent.forEach((parentChild, _offset, index) => {\n if (node === parentChild) {\n number = index + 1;\n }\n });\n return `${number}. ${serializeChildrenToHTMLString(children).trim()}\n`;\n }\n return serializeChildrenToHTMLString(children);\n },\n paragraph({ children }) {\n return `\n${serializeChildrenToHTMLString(children)}\n`;\n },\n heading({ node, children }) {\n const level = node.attrs.level;\n return `${new Array(level).fill(\"#\").join(\"\")} ${children}\n`;\n },\n codeBlock({ node, children }) {\n return `\n\\`\\`\\`${node.attrs.language}\n${serializeChildrenToHTMLString(children)}\n\\`\\`\\`\n`;\n },\n blockquote({ children }) {\n return `\n${serializeChildrenToHTMLString(children).trim().split(\"\\n\").map((a) => `> ${a}`).join(\"\\n\")}`;\n },\n image({ node }) {\n return ``;\n },\n hardBreak() {\n return \"\\n\";\n },\n horizontalRule() {\n return \"\\n---\\n\";\n },\n table({ children, node }) {\n if (!Array.isArray(children)) {\n return `\n${serializeChildrenToHTMLString(children)}\n`;\n }\n const columnCount = node.children[0].childCount;\n return `\n${serializeChildrenToHTMLString(children[0])}| ${new Array(columnCount).fill(\"---\").join(\" | \")} |\n${serializeChildrenToHTMLString(children.slice(1))}\n`;\n },\n tableRow({ children }) {\n if (Array.isArray(children)) {\n return `| ${children.join(\" | \")} |\n`;\n }\n return `${serializeChildrenToHTMLString(children)}\n`;\n },\n tableHeader({ children }) {\n return serializeChildrenToHTMLString(children).trim();\n },\n tableCell({ children }) {\n return serializeChildrenToHTMLString(children).trim();\n },\n ...options == null ? void 0 : options.nodeMapping\n },\n markMapping: {\n bold({ children }) {\n return `**${serializeChildrenToHTMLString(children)}**`;\n },\n italic({ children, node }) {\n let isBoldToo = false;\n if (node == null ? void 0 : node.marks.some((m) => m.type.name === \"bold\")) {\n isBoldToo = true;\n }\n if (isBoldToo) {\n return `*${serializeChildrenToHTMLString(children)}*`;\n }\n return `_${serializeChildrenToHTMLString(children)}_`;\n },\n code({ children }) {\n return `\\`${serializeChildrenToHTMLString(children)}\\``;\n },\n strike({ children }) {\n return `~~${serializeChildrenToHTMLString(children)}~~`;\n },\n underline({ children }) {\n return `<u>${serializeChildrenToHTMLString(children)}</u>`;\n },\n subscript({ children }) {\n return `<sub>${serializeChildrenToHTMLString(children)}</sub>`;\n },\n superscript({ children }) {\n return `<sup>${serializeChildrenToHTMLString(children)}</sup>`;\n },\n link({ mark, children }) {\n return `[${serializeChildrenToHTMLString(children)}](${mark.attrs.href})`;\n },\n highlight({ children }) {\n return `==${serializeChildrenToHTMLString(children)}==`;\n },\n ...options == null ? void 0 : options.markMapping\n }\n }\n });\n}\nexport {\n mapMarkExtensionToReactNode,\n mapNodeExtensionToReactNode,\n renderToElement,\n renderToMarkdown\n};\n//# sourceMappingURL=index.js.map","import { renderToMarkdown } from '@tiptap/static-renderer/pm/markdown';\n\n// The pm/markdown renderer passes children as string[] (one entry per child node),\n// not as a pre-joined string. Normalize to a string before processing.\nconst joinChildren = (children) => Array.isArray(children) ? children.join('') : (children || '');\n\n// Move leading/trailing spaces outside mark delimiters so parsers like CommonMark\n// don't reject them (e.g. \"** bold **\" → \" **bold** \").\nconst wrapMark = (text, open, close) => {\n const trimmed = text.trim();\n if (!trimmed) return text;\n const leading = text.slice(0, text.length - text.trimStart().length);\n const trailing = text.slice(text.trimEnd().length);\n return `${leading}${open}${trimmed}${close}${trailing}`;\n};\n\n/**\n * Renders a TipTap/ProseMirror JSON document to a markdown string.\n *\n * Uses @tiptap/static-renderer with custom mappings to preserve the output\n * format of the legacy jsonToMarkdownConverter, including Dialtone-specific\n * node types (mention, channel, emoji, variable, slash-commands).\n *\n * @param {import('@tiptap/core').JSONContent} jsonContent - TipTap JSON document\n * @param {import('@tiptap/core').Extensions} extensions - Active editor extensions\n * @returns {string}\n */\nexport function renderEditorToMarkdown (jsonContent, extensions) {\n const output = renderToMarkdown({\n extensions,\n content: jsonContent,\n options: {\n nodeMapping: {\n // Override blockquote: built-in omits trailing newline (causes lazy continuation).\n // Since we replace the built-in entirely, we must add the '> ' prefix ourselves.\n blockquote ({ children }) {\n const text = joinChildren(children).trim();\n const quoted = text\n .split('\\n')\n .map(line => line ? `> ${line}` : '>')\n .join('\\n');\n return quoted + '\\n';\n },\n\n // Override codeBlock: built-in passes null language through literally\n codeBlock ({ node, children }) {\n const lang = node.attrs?.language || '';\n return `\\`\\`\\`${lang}\\n${joinChildren(children)}\\n\\`\\`\\`\\n`;\n },\n\n // Custom Dialtone node types\n mention ({ node }) {\n const id = node.attrs?.id || '';\n const contactKey = node.attrs?.contactKey || '';\n const name = node.attrs?.name || '';\n return `<!-- @mention: {\"id\": \"${id}\", \"contactKey\": \"${contactKey}\", \"name\": \"${name}\"} -->`;\n },\n\n channel ({ node }) {\n const id = node.attrs?.id || '';\n const channelKey = node.attrs?.channelKey || '';\n const name = node.attrs?.name || '';\n const locked = String(node.attrs?.locked ?? '');\n return `<!-- @channel: {\"id\": \"${id}\", \"channelKey\": \"${channelKey}\", \"name\": \"${name}\", \"locked\": \"${locked}\"} -->`;\n },\n\n 'slash-commands' ({ node }) {\n return `/${node.attrs?.command || ''}`;\n },\n\n emoji ({ node }) {\n return node.attrs?.code || '';\n },\n\n variable ({ node }) {\n const id = node.attrs?.id || '';\n const altText = node.attrs?.altText || '';\n return `{{${id}=${altText}}}`;\n },\n },\n\n markMapping: {\n bold ({ children }) {\n return wrapMark(joinChildren(children), '**', '**');\n },\n\n // Override italic: use * instead of built-in _ and fix boundary spaces\n italic ({ children }) {\n return wrapMark(joinChildren(children), '*', '*');\n },\n\n strike ({ children }) {\n return wrapMark(joinChildren(children), '~~', '~~');\n },\n\n code ({ children }) {\n return wrapMark(joinChildren(children), '`', '`');\n },\n\n link ({ mark, children }) {\n const text = joinChildren(children);\n const href = mark.attrs?.href || '';\n const trimmed = text.trim();\n const leading = text.slice(0, text.length - text.trimStart().length);\n const trailing = text.slice(text.trimEnd().length);\n return `${leading}[${trimmed}](${href})${trailing}`;\n },\n\n // Override underline: pass-through (no markdown equivalent, matches legacy no-op)\n underline ({ children }) {\n return joinChildren(children);\n },\n },\n },\n });\n // Collapse 3+ consecutive newlines to 2 (CommonMark ignores extra blank\n // lines between blocks), and strip the leading newline that the built-in\n // paragraph renderer always prepends to the first node.\n return output.replace(/\\n{3,}/g, '\\n\\n').replace(/^\\n+|\\n+$/g, '');\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { getAttributesFromExtensions as e, getExtensionField as t, getSchemaByResolvedExtensions as n, mergeAttributes as r, resolveExtensions as i, splitExtensions as a } from "@tiptap/core";
|
|
2
2
|
import { Node as o } from "@tiptap/pm/model";
|
|
3
|
-
//#region ../../node_modules/.pnpm/@tiptap+static-renderer@3.19.0_@tiptap+core@3.19.0_@tiptap+pm@3.19.0__@tiptap+pm@3.19.
|
|
3
|
+
//#region ../../node_modules/.pnpm/@tiptap+static-renderer@3.19.0_@tiptap+core@3.19.0_@tiptap+pm@3.19.0__@tiptap+pm@3.19.0_9606d4b01b88c88c850636a0b274a958/node_modules/@tiptap/static-renderer/dist/pm/markdown/index.js
|
|
4
4
|
function s(e, t, n) {
|
|
5
5
|
let i = e.attrs;
|
|
6
6
|
return i ? t.filter((t) => t.type === (typeof e.type == "string" ? e.type : e.type.name) ? n ? t.attribute.rendered : !0 : !1).map((e) => e.attribute.renderHTML && e.attribute.renderHTML(i) || { [e.name]: e.name in i ? i[e.name] : e.attribute.default }).reduce((e, t) => r(e, t), {}) : {};
|
|
@@ -319,4 +319,4 @@ function S(e, t) {
|
|
|
319
319
|
//#endregion
|
|
320
320
|
export { S as t };
|
|
321
321
|
|
|
322
|
-
//# sourceMappingURL=markdownRenderer-
|
|
322
|
+
//# sourceMappingURL=markdownRenderer-vnndXQhE.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdownRenderer-D_P94RyM.js","names":["Node"],"sources":["../../../node_modules/.pnpm/@tiptap+static-renderer@3.19.0_@tiptap+core@3.19.0_@tiptap+pm@3.19.0__@tiptap+pm@3.19.0_react_4n7lapq7bmfej5hsrzhdkukr6e/node_modules/@tiptap/static-renderer/dist/pm/markdown/index.js","../components/rich_text_editor/markdownRenderer.js"],"sourcesContent":["// src/pm/extensionRenderer.ts\nimport {\n getAttributesFromExtensions,\n getExtensionField,\n getSchemaByResolvedExtensions,\n resolveExtensions,\n splitExtensions\n} from \"@tiptap/core\";\nimport { Node } from \"@tiptap/pm/model\";\n\n// src/helpers.ts\nimport { mergeAttributes } from \"@tiptap/core\";\nfunction getAttributes(nodeOrMark, extensionAttributes, onlyRenderedAttributes) {\n const nodeOrMarkAttributes = nodeOrMark.attrs;\n if (!nodeOrMarkAttributes) {\n return {};\n }\n return extensionAttributes.filter((item) => {\n if (item.type !== (typeof nodeOrMark.type === \"string\" ? nodeOrMark.type : nodeOrMark.type.name)) {\n return false;\n }\n if (onlyRenderedAttributes) {\n return item.attribute.rendered;\n }\n return true;\n }).map((item) => {\n if (!item.attribute.renderHTML) {\n return {\n [item.name]: item.name in nodeOrMarkAttributes ? nodeOrMarkAttributes[item.name] : item.attribute.default\n };\n }\n return item.attribute.renderHTML(nodeOrMarkAttributes) || {\n [item.name]: item.name in nodeOrMarkAttributes ? nodeOrMarkAttributes[item.name] : item.attribute.default\n };\n }).reduce((attributes, attribute) => mergeAttributes(attributes, attribute), {});\n}\nfunction getHTMLAttributes(nodeOrMark, extensionAttributes) {\n return getAttributes(nodeOrMark, extensionAttributes, true);\n}\n\n// src/pm/extensionRenderer.ts\nfunction mapNodeExtensionToReactNode(domOutputSpecToElement, extension, extensionAttributes, options) {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n parent: extension.parent\n };\n const renderToHTML = getExtensionField(extension, \"renderHTML\", context);\n if (!renderToHTML) {\n if (options == null ? void 0 : options.unhandledNode) {\n return [extension.name, options.unhandledNode];\n }\n return [\n extension.name,\n () => {\n throw new Error(\n `[tiptap error]: Node ${extension.name} cannot be rendered, it is missing a \"renderToHTML\" method, please implement it or override the corresponding \"nodeMapping\" method to have a custom rendering`\n );\n }\n ];\n }\n return [\n extension.name,\n ({ node, children }) => {\n try {\n return domOutputSpecToElement(\n renderToHTML({\n node,\n HTMLAttributes: getHTMLAttributes(node, extensionAttributes)\n })\n )(children);\n } catch (e) {\n throw new Error(\n `[tiptap error]: Node ${extension.name} cannot be rendered, it's \"renderToHTML\" method threw an error: ${e.message}`,\n { cause: e }\n );\n }\n }\n ];\n}\nfunction mapMarkExtensionToReactNode(domOutputSpecToElement, extension, extensionAttributes, options) {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n parent: extension.parent\n };\n const renderToHTML = getExtensionField(extension, \"renderHTML\", context);\n if (!renderToHTML) {\n if (options == null ? void 0 : options.unhandledMark) {\n return [extension.name, options.unhandledMark];\n }\n return [\n extension.name,\n () => {\n throw new Error(`Node ${extension.name} cannot be rendered, it is missing a \"renderToHTML\" method`);\n }\n ];\n }\n return [\n extension.name,\n ({ mark, children }) => {\n try {\n return domOutputSpecToElement(\n renderToHTML({\n mark,\n HTMLAttributes: getHTMLAttributes(mark, extensionAttributes)\n })\n )(children);\n } catch (e) {\n throw new Error(\n `[tiptap error]: Mark ${extension.name} cannot be rendered, it's \"renderToHTML\" method threw an error: ${e.message}`,\n { cause: e }\n );\n }\n }\n ];\n}\nfunction renderToElement({\n renderer,\n domOutputSpecToElement,\n mapDefinedTypes,\n content,\n extensions,\n options\n}) {\n extensions = resolveExtensions(extensions);\n const extensionAttributes = getAttributesFromExtensions(extensions);\n const { nodeExtensions, markExtensions } = splitExtensions(extensions);\n if (!(content instanceof Node)) {\n content = Node.fromJSON(getSchemaByResolvedExtensions(extensions), content);\n }\n return renderer({\n ...options,\n nodeMapping: {\n ...Object.fromEntries(\n nodeExtensions.filter((e) => {\n if (e.name in mapDefinedTypes) {\n return false;\n }\n if (options == null ? void 0 : options.nodeMapping) {\n return !(e.name in options.nodeMapping);\n }\n return true;\n }).map(\n (nodeExtension) => mapNodeExtensionToReactNode(domOutputSpecToElement, nodeExtension, extensionAttributes, options)\n )\n ),\n ...mapDefinedTypes,\n ...options == null ? void 0 : options.nodeMapping\n },\n markMapping: {\n ...Object.fromEntries(\n markExtensions.filter((e) => {\n if (options == null ? void 0 : options.markMapping) {\n return !(e.name in options.markMapping);\n }\n return true;\n }).map((mark) => mapMarkExtensionToReactNode(domOutputSpecToElement, mark, extensionAttributes, options))\n ),\n ...options == null ? void 0 : options.markMapping\n }\n })({ content });\n}\n\n// src/json/renderer.ts\nfunction TiptapStaticRenderer(renderComponent, {\n nodeMapping,\n markMapping,\n unhandledNode,\n unhandledMark\n}) {\n return function renderContent({\n content,\n parent\n }) {\n var _a;\n const nodeType = typeof content.type === \"string\" ? content.type : content.type.name;\n const NodeHandler = (_a = nodeMapping[nodeType]) != null ? _a : unhandledNode;\n if (!NodeHandler) {\n throw new Error(`missing handler for node type ${nodeType}`);\n }\n const nodeContent = renderComponent({\n component: NodeHandler,\n props: {\n node: content,\n parent,\n renderElement: renderContent,\n // Lazily compute the children to avoid unnecessary recursion\n get children() {\n const children = [];\n if (content.content) {\n content.content.forEach((child) => {\n children.push(\n renderContent({\n content: child,\n parent: content\n })\n );\n });\n }\n return children;\n }\n }\n });\n const markedContent = content.marks ? content.marks.reduce((acc, mark) => {\n var _a2;\n const markType = typeof mark.type === \"string\" ? mark.type : mark.type.name;\n const MarkHandler = (_a2 = markMapping[markType]) != null ? _a2 : unhandledMark;\n if (!MarkHandler) {\n throw new Error(`missing handler for mark type ${markType}`);\n }\n return renderComponent({\n component: MarkHandler,\n props: {\n mark,\n parent,\n node: content,\n children: acc\n }\n });\n }, nodeContent) : nodeContent;\n return markedContent;\n };\n}\n\n// src/json/html-string/string.ts\nfunction renderJSONContentToString(options) {\n return TiptapStaticRenderer((ctx) => {\n return ctx.component(ctx.props);\n }, options);\n}\nfunction serializeAttrsToHTMLString(attrs) {\n const output = Object.entries(attrs || {}).map(([key, value]) => `${key.split(\" \").at(-1)}=${JSON.stringify(value)}`).join(\" \");\n return output ? ` ${output}` : \"\";\n}\nfunction serializeChildrenToHTMLString(children) {\n return [].concat(children || \"\").filter(Boolean).join(\"\");\n}\n\n// src/pm/html-string/html-string.ts\nvar NON_SELF_CLOSING_TAGS = /* @__PURE__ */ new Set([\"iframe\", \"script\", \"style\", \"title\", \"textarea\", \"div\", \"span\", \"a\", \"button\"]);\nfunction domOutputSpecToHTMLString(content) {\n if (typeof content === \"string\") {\n return () => content;\n }\n if (typeof content === \"object\" && \"length\" in content) {\n const [_tag, attrs, children, ...rest] = content;\n let tag = _tag;\n const parts = tag.split(\" \");\n if (parts.length > 1) {\n tag = `${parts[1]} xmlns=\"${parts[0]}\"`;\n }\n if (attrs === void 0) {\n return () => `<${tag}/>`;\n }\n if (attrs === 0) {\n return (child) => `<${tag}>${serializeChildrenToHTMLString(child)}</${tag}>`;\n }\n if (typeof attrs === \"object\") {\n if (Array.isArray(attrs)) {\n if (children === void 0) {\n return (child) => `<${tag}>${domOutputSpecToHTMLString(attrs)(child)}</${tag}>`;\n }\n if (children === 0) {\n return (child) => `<${tag}>${domOutputSpecToHTMLString(attrs)(child)}</${tag}>`;\n }\n return (child) => `<${tag}>${domOutputSpecToHTMLString(attrs)(child)}${[children].concat(rest).map((a) => domOutputSpecToHTMLString(a)(child))}</${tag}>`;\n }\n if (children === void 0) {\n if (NON_SELF_CLOSING_TAGS.has(tag)) {\n return () => `<${tag}${serializeAttrsToHTMLString(attrs)}></${tag}>`;\n }\n return () => `<${tag}${serializeAttrsToHTMLString(attrs)}/>`;\n }\n if (children === 0) {\n return (child) => `<${tag}${serializeAttrsToHTMLString(attrs)}>${serializeChildrenToHTMLString(child)}</${tag}>`;\n }\n return (child) => `<${tag}${serializeAttrsToHTMLString(attrs)}>${[children].concat(rest).map((a) => domOutputSpecToHTMLString(a)(child)).join(\"\")}</${tag}>`;\n }\n }\n throw new Error(\n \"[tiptap error]: Unsupported DomOutputSpec type, check the `renderHTML` method output or implement a node mapping\",\n {\n cause: content\n }\n );\n}\nfunction renderToHTMLString({\n content,\n extensions,\n options\n}) {\n return renderToElement({\n renderer: renderJSONContentToString,\n domOutputSpecToElement: domOutputSpecToHTMLString,\n mapDefinedTypes: {\n // Map a doc node to concatenated children\n doc: ({ children }) => serializeChildrenToHTMLString(children),\n // Map a text node to its text content\n text: ({ node }) => {\n var _a;\n return (_a = node.text) != null ? _a : \"\";\n }\n },\n content,\n extensions,\n options\n });\n}\n\n// src/pm/markdown/markdown.ts\nfunction renderToMarkdown({\n content,\n extensions,\n options\n}) {\n return renderToHTMLString({\n content,\n extensions,\n options: {\n ...options,\n nodeMapping: {\n bulletList({ children }) {\n return `\n${serializeChildrenToHTMLString(children)}`;\n },\n orderedList({ children }) {\n return `\n${serializeChildrenToHTMLString(children)}`;\n },\n listItem({ node, children, parent }) {\n if ((parent == null ? void 0 : parent.type.name) === \"bulletList\") {\n return `- ${serializeChildrenToHTMLString(children).trim()}\n`;\n }\n if ((parent == null ? void 0 : parent.type.name) === \"orderedList\") {\n let number = parent.attrs.start || 1;\n parent.forEach((parentChild, _offset, index) => {\n if (node === parentChild) {\n number = index + 1;\n }\n });\n return `${number}. ${serializeChildrenToHTMLString(children).trim()}\n`;\n }\n return serializeChildrenToHTMLString(children);\n },\n paragraph({ children }) {\n return `\n${serializeChildrenToHTMLString(children)}\n`;\n },\n heading({ node, children }) {\n const level = node.attrs.level;\n return `${new Array(level).fill(\"#\").join(\"\")} ${children}\n`;\n },\n codeBlock({ node, children }) {\n return `\n\\`\\`\\`${node.attrs.language}\n${serializeChildrenToHTMLString(children)}\n\\`\\`\\`\n`;\n },\n blockquote({ children }) {\n return `\n${serializeChildrenToHTMLString(children).trim().split(\"\\n\").map((a) => `> ${a}`).join(\"\\n\")}`;\n },\n image({ node }) {\n return ``;\n },\n hardBreak() {\n return \"\\n\";\n },\n horizontalRule() {\n return \"\\n---\\n\";\n },\n table({ children, node }) {\n if (!Array.isArray(children)) {\n return `\n${serializeChildrenToHTMLString(children)}\n`;\n }\n const columnCount = node.children[0].childCount;\n return `\n${serializeChildrenToHTMLString(children[0])}| ${new Array(columnCount).fill(\"---\").join(\" | \")} |\n${serializeChildrenToHTMLString(children.slice(1))}\n`;\n },\n tableRow({ children }) {\n if (Array.isArray(children)) {\n return `| ${children.join(\" | \")} |\n`;\n }\n return `${serializeChildrenToHTMLString(children)}\n`;\n },\n tableHeader({ children }) {\n return serializeChildrenToHTMLString(children).trim();\n },\n tableCell({ children }) {\n return serializeChildrenToHTMLString(children).trim();\n },\n ...options == null ? void 0 : options.nodeMapping\n },\n markMapping: {\n bold({ children }) {\n return `**${serializeChildrenToHTMLString(children)}**`;\n },\n italic({ children, node }) {\n let isBoldToo = false;\n if (node == null ? void 0 : node.marks.some((m) => m.type.name === \"bold\")) {\n isBoldToo = true;\n }\n if (isBoldToo) {\n return `*${serializeChildrenToHTMLString(children)}*`;\n }\n return `_${serializeChildrenToHTMLString(children)}_`;\n },\n code({ children }) {\n return `\\`${serializeChildrenToHTMLString(children)}\\``;\n },\n strike({ children }) {\n return `~~${serializeChildrenToHTMLString(children)}~~`;\n },\n underline({ children }) {\n return `<u>${serializeChildrenToHTMLString(children)}</u>`;\n },\n subscript({ children }) {\n return `<sub>${serializeChildrenToHTMLString(children)}</sub>`;\n },\n superscript({ children }) {\n return `<sup>${serializeChildrenToHTMLString(children)}</sup>`;\n },\n link({ mark, children }) {\n return `[${serializeChildrenToHTMLString(children)}](${mark.attrs.href})`;\n },\n highlight({ children }) {\n return `==${serializeChildrenToHTMLString(children)}==`;\n },\n ...options == null ? void 0 : options.markMapping\n }\n }\n });\n}\nexport {\n mapMarkExtensionToReactNode,\n mapNodeExtensionToReactNode,\n renderToElement,\n renderToMarkdown\n};\n//# sourceMappingURL=index.js.map","import { renderToMarkdown } from '@tiptap/static-renderer/pm/markdown';\n\n// The pm/markdown renderer passes children as string[] (one entry per child node),\n// not as a pre-joined string. Normalize to a string before processing.\nconst joinChildren = (children) => Array.isArray(children) ? children.join('') : (children || '');\n\n// Move leading/trailing spaces outside mark delimiters so parsers like CommonMark\n// don't reject them (e.g. \"** bold **\" → \" **bold** \").\nconst wrapMark = (text, open, close) => {\n const trimmed = text.trim();\n if (!trimmed) return text;\n const leading = text.slice(0, text.length - text.trimStart().length);\n const trailing = text.slice(text.trimEnd().length);\n return `${leading}${open}${trimmed}${close}${trailing}`;\n};\n\n/**\n * Renders a TipTap/ProseMirror JSON document to a markdown string.\n *\n * Uses @tiptap/static-renderer with custom mappings to preserve the output\n * format of the legacy jsonToMarkdownConverter, including Dialtone-specific\n * node types (mention, channel, emoji, variable, slash-commands).\n *\n * @param {import('@tiptap/core').JSONContent} jsonContent - TipTap JSON document\n * @param {import('@tiptap/core').Extensions} extensions - Active editor extensions\n * @returns {string}\n */\nexport function renderEditorToMarkdown (jsonContent, extensions) {\n const output = renderToMarkdown({\n extensions,\n content: jsonContent,\n options: {\n nodeMapping: {\n // Override blockquote: built-in omits trailing newline (causes lazy continuation).\n // Since we replace the built-in entirely, we must add the '> ' prefix ourselves.\n blockquote ({ children }) {\n const text = joinChildren(children).trim();\n const quoted = text\n .split('\\n')\n .map(line => line ? `> ${line}` : '>')\n .join('\\n');\n return quoted + '\\n';\n },\n\n // Override codeBlock: built-in passes null language through literally\n codeBlock ({ node, children }) {\n const lang = node.attrs?.language || '';\n return `\\`\\`\\`${lang}\\n${joinChildren(children)}\\n\\`\\`\\`\\n`;\n },\n\n // Custom Dialtone node types\n mention ({ node }) {\n const id = node.attrs?.id || '';\n const contactKey = node.attrs?.contactKey || '';\n const name = node.attrs?.name || '';\n return `<!-- @mention: {\"id\": \"${id}\", \"contactKey\": \"${contactKey}\", \"name\": \"${name}\"} -->`;\n },\n\n channel ({ node }) {\n const id = node.attrs?.id || '';\n const channelKey = node.attrs?.channelKey || '';\n const name = node.attrs?.name || '';\n const locked = String(node.attrs?.locked ?? '');\n return `<!-- @channel: {\"id\": \"${id}\", \"channelKey\": \"${channelKey}\", \"name\": \"${name}\", \"locked\": \"${locked}\"} -->`;\n },\n\n 'slash-commands' ({ node }) {\n return `/${node.attrs?.command || ''}`;\n },\n\n emoji ({ node }) {\n return node.attrs?.code || '';\n },\n\n variable ({ node }) {\n const id = node.attrs?.id || '';\n const altText = node.attrs?.altText || '';\n return `{{${id}=${altText}}}`;\n },\n },\n\n markMapping: {\n bold ({ children }) {\n return wrapMark(joinChildren(children), '**', '**');\n },\n\n // Override italic: use * instead of built-in _ and fix boundary spaces\n italic ({ children }) {\n return wrapMark(joinChildren(children), '*', '*');\n },\n\n strike ({ children }) {\n return wrapMark(joinChildren(children), '~~', '~~');\n },\n\n code ({ children }) {\n return wrapMark(joinChildren(children), '`', '`');\n },\n\n link ({ mark, children }) {\n const text = joinChildren(children);\n const href = mark.attrs?.href || '';\n const trimmed = text.trim();\n const leading = text.slice(0, text.length - text.trimStart().length);\n const trailing = text.slice(text.trimEnd().length);\n return `${leading}[${trimmed}](${href})${trailing}`;\n },\n\n // Override underline: pass-through (no markdown equivalent, matches legacy no-op)\n underline ({ children }) {\n return joinChildren(children);\n },\n },\n },\n });\n // Collapse 3+ consecutive newlines to 2 (CommonMark ignores extra blank\n // lines between blocks), and strip the leading newline that the built-in\n // paragraph renderer always prepends to the first node.\n return output.replace(/\\n{3,}/g, '\\n\\n').replace(/^\\n+|\\n+$/g, '');\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"markdownRenderer-vnndXQhE.js","names":["Node"],"sources":["../../../node_modules/.pnpm/@tiptap+static-renderer@3.19.0_@tiptap+core@3.19.0_@tiptap+pm@3.19.0__@tiptap+pm@3.19.0_9606d4b01b88c88c850636a0b274a958/node_modules/@tiptap/static-renderer/dist/pm/markdown/index.js","../components/rich_text_editor/markdownRenderer.js"],"sourcesContent":["// src/pm/extensionRenderer.ts\nimport {\n getAttributesFromExtensions,\n getExtensionField,\n getSchemaByResolvedExtensions,\n resolveExtensions,\n splitExtensions\n} from \"@tiptap/core\";\nimport { Node } from \"@tiptap/pm/model\";\n\n// src/helpers.ts\nimport { mergeAttributes } from \"@tiptap/core\";\nfunction getAttributes(nodeOrMark, extensionAttributes, onlyRenderedAttributes) {\n const nodeOrMarkAttributes = nodeOrMark.attrs;\n if (!nodeOrMarkAttributes) {\n return {};\n }\n return extensionAttributes.filter((item) => {\n if (item.type !== (typeof nodeOrMark.type === \"string\" ? nodeOrMark.type : nodeOrMark.type.name)) {\n return false;\n }\n if (onlyRenderedAttributes) {\n return item.attribute.rendered;\n }\n return true;\n }).map((item) => {\n if (!item.attribute.renderHTML) {\n return {\n [item.name]: item.name in nodeOrMarkAttributes ? nodeOrMarkAttributes[item.name] : item.attribute.default\n };\n }\n return item.attribute.renderHTML(nodeOrMarkAttributes) || {\n [item.name]: item.name in nodeOrMarkAttributes ? nodeOrMarkAttributes[item.name] : item.attribute.default\n };\n }).reduce((attributes, attribute) => mergeAttributes(attributes, attribute), {});\n}\nfunction getHTMLAttributes(nodeOrMark, extensionAttributes) {\n return getAttributes(nodeOrMark, extensionAttributes, true);\n}\n\n// src/pm/extensionRenderer.ts\nfunction mapNodeExtensionToReactNode(domOutputSpecToElement, extension, extensionAttributes, options) {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n parent: extension.parent\n };\n const renderToHTML = getExtensionField(extension, \"renderHTML\", context);\n if (!renderToHTML) {\n if (options == null ? void 0 : options.unhandledNode) {\n return [extension.name, options.unhandledNode];\n }\n return [\n extension.name,\n () => {\n throw new Error(\n `[tiptap error]: Node ${extension.name} cannot be rendered, it is missing a \"renderToHTML\" method, please implement it or override the corresponding \"nodeMapping\" method to have a custom rendering`\n );\n }\n ];\n }\n return [\n extension.name,\n ({ node, children }) => {\n try {\n return domOutputSpecToElement(\n renderToHTML({\n node,\n HTMLAttributes: getHTMLAttributes(node, extensionAttributes)\n })\n )(children);\n } catch (e) {\n throw new Error(\n `[tiptap error]: Node ${extension.name} cannot be rendered, it's \"renderToHTML\" method threw an error: ${e.message}`,\n { cause: e }\n );\n }\n }\n ];\n}\nfunction mapMarkExtensionToReactNode(domOutputSpecToElement, extension, extensionAttributes, options) {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n parent: extension.parent\n };\n const renderToHTML = getExtensionField(extension, \"renderHTML\", context);\n if (!renderToHTML) {\n if (options == null ? void 0 : options.unhandledMark) {\n return [extension.name, options.unhandledMark];\n }\n return [\n extension.name,\n () => {\n throw new Error(`Node ${extension.name} cannot be rendered, it is missing a \"renderToHTML\" method`);\n }\n ];\n }\n return [\n extension.name,\n ({ mark, children }) => {\n try {\n return domOutputSpecToElement(\n renderToHTML({\n mark,\n HTMLAttributes: getHTMLAttributes(mark, extensionAttributes)\n })\n )(children);\n } catch (e) {\n throw new Error(\n `[tiptap error]: Mark ${extension.name} cannot be rendered, it's \"renderToHTML\" method threw an error: ${e.message}`,\n { cause: e }\n );\n }\n }\n ];\n}\nfunction renderToElement({\n renderer,\n domOutputSpecToElement,\n mapDefinedTypes,\n content,\n extensions,\n options\n}) {\n extensions = resolveExtensions(extensions);\n const extensionAttributes = getAttributesFromExtensions(extensions);\n const { nodeExtensions, markExtensions } = splitExtensions(extensions);\n if (!(content instanceof Node)) {\n content = Node.fromJSON(getSchemaByResolvedExtensions(extensions), content);\n }\n return renderer({\n ...options,\n nodeMapping: {\n ...Object.fromEntries(\n nodeExtensions.filter((e) => {\n if (e.name in mapDefinedTypes) {\n return false;\n }\n if (options == null ? void 0 : options.nodeMapping) {\n return !(e.name in options.nodeMapping);\n }\n return true;\n }).map(\n (nodeExtension) => mapNodeExtensionToReactNode(domOutputSpecToElement, nodeExtension, extensionAttributes, options)\n )\n ),\n ...mapDefinedTypes,\n ...options == null ? void 0 : options.nodeMapping\n },\n markMapping: {\n ...Object.fromEntries(\n markExtensions.filter((e) => {\n if (options == null ? void 0 : options.markMapping) {\n return !(e.name in options.markMapping);\n }\n return true;\n }).map((mark) => mapMarkExtensionToReactNode(domOutputSpecToElement, mark, extensionAttributes, options))\n ),\n ...options == null ? void 0 : options.markMapping\n }\n })({ content });\n}\n\n// src/json/renderer.ts\nfunction TiptapStaticRenderer(renderComponent, {\n nodeMapping,\n markMapping,\n unhandledNode,\n unhandledMark\n}) {\n return function renderContent({\n content,\n parent\n }) {\n var _a;\n const nodeType = typeof content.type === \"string\" ? content.type : content.type.name;\n const NodeHandler = (_a = nodeMapping[nodeType]) != null ? _a : unhandledNode;\n if (!NodeHandler) {\n throw new Error(`missing handler for node type ${nodeType}`);\n }\n const nodeContent = renderComponent({\n component: NodeHandler,\n props: {\n node: content,\n parent,\n renderElement: renderContent,\n // Lazily compute the children to avoid unnecessary recursion\n get children() {\n const children = [];\n if (content.content) {\n content.content.forEach((child) => {\n children.push(\n renderContent({\n content: child,\n parent: content\n })\n );\n });\n }\n return children;\n }\n }\n });\n const markedContent = content.marks ? content.marks.reduce((acc, mark) => {\n var _a2;\n const markType = typeof mark.type === \"string\" ? mark.type : mark.type.name;\n const MarkHandler = (_a2 = markMapping[markType]) != null ? _a2 : unhandledMark;\n if (!MarkHandler) {\n throw new Error(`missing handler for mark type ${markType}`);\n }\n return renderComponent({\n component: MarkHandler,\n props: {\n mark,\n parent,\n node: content,\n children: acc\n }\n });\n }, nodeContent) : nodeContent;\n return markedContent;\n };\n}\n\n// src/json/html-string/string.ts\nfunction renderJSONContentToString(options) {\n return TiptapStaticRenderer((ctx) => {\n return ctx.component(ctx.props);\n }, options);\n}\nfunction serializeAttrsToHTMLString(attrs) {\n const output = Object.entries(attrs || {}).map(([key, value]) => `${key.split(\" \").at(-1)}=${JSON.stringify(value)}`).join(\" \");\n return output ? ` ${output}` : \"\";\n}\nfunction serializeChildrenToHTMLString(children) {\n return [].concat(children || \"\").filter(Boolean).join(\"\");\n}\n\n// src/pm/html-string/html-string.ts\nvar NON_SELF_CLOSING_TAGS = /* @__PURE__ */ new Set([\"iframe\", \"script\", \"style\", \"title\", \"textarea\", \"div\", \"span\", \"a\", \"button\"]);\nfunction domOutputSpecToHTMLString(content) {\n if (typeof content === \"string\") {\n return () => content;\n }\n if (typeof content === \"object\" && \"length\" in content) {\n const [_tag, attrs, children, ...rest] = content;\n let tag = _tag;\n const parts = tag.split(\" \");\n if (parts.length > 1) {\n tag = `${parts[1]} xmlns=\"${parts[0]}\"`;\n }\n if (attrs === void 0) {\n return () => `<${tag}/>`;\n }\n if (attrs === 0) {\n return (child) => `<${tag}>${serializeChildrenToHTMLString(child)}</${tag}>`;\n }\n if (typeof attrs === \"object\") {\n if (Array.isArray(attrs)) {\n if (children === void 0) {\n return (child) => `<${tag}>${domOutputSpecToHTMLString(attrs)(child)}</${tag}>`;\n }\n if (children === 0) {\n return (child) => `<${tag}>${domOutputSpecToHTMLString(attrs)(child)}</${tag}>`;\n }\n return (child) => `<${tag}>${domOutputSpecToHTMLString(attrs)(child)}${[children].concat(rest).map((a) => domOutputSpecToHTMLString(a)(child))}</${tag}>`;\n }\n if (children === void 0) {\n if (NON_SELF_CLOSING_TAGS.has(tag)) {\n return () => `<${tag}${serializeAttrsToHTMLString(attrs)}></${tag}>`;\n }\n return () => `<${tag}${serializeAttrsToHTMLString(attrs)}/>`;\n }\n if (children === 0) {\n return (child) => `<${tag}${serializeAttrsToHTMLString(attrs)}>${serializeChildrenToHTMLString(child)}</${tag}>`;\n }\n return (child) => `<${tag}${serializeAttrsToHTMLString(attrs)}>${[children].concat(rest).map((a) => domOutputSpecToHTMLString(a)(child)).join(\"\")}</${tag}>`;\n }\n }\n throw new Error(\n \"[tiptap error]: Unsupported DomOutputSpec type, check the `renderHTML` method output or implement a node mapping\",\n {\n cause: content\n }\n );\n}\nfunction renderToHTMLString({\n content,\n extensions,\n options\n}) {\n return renderToElement({\n renderer: renderJSONContentToString,\n domOutputSpecToElement: domOutputSpecToHTMLString,\n mapDefinedTypes: {\n // Map a doc node to concatenated children\n doc: ({ children }) => serializeChildrenToHTMLString(children),\n // Map a text node to its text content\n text: ({ node }) => {\n var _a;\n return (_a = node.text) != null ? _a : \"\";\n }\n },\n content,\n extensions,\n options\n });\n}\n\n// src/pm/markdown/markdown.ts\nfunction renderToMarkdown({\n content,\n extensions,\n options\n}) {\n return renderToHTMLString({\n content,\n extensions,\n options: {\n ...options,\n nodeMapping: {\n bulletList({ children }) {\n return `\n${serializeChildrenToHTMLString(children)}`;\n },\n orderedList({ children }) {\n return `\n${serializeChildrenToHTMLString(children)}`;\n },\n listItem({ node, children, parent }) {\n if ((parent == null ? void 0 : parent.type.name) === \"bulletList\") {\n return `- ${serializeChildrenToHTMLString(children).trim()}\n`;\n }\n if ((parent == null ? void 0 : parent.type.name) === \"orderedList\") {\n let number = parent.attrs.start || 1;\n parent.forEach((parentChild, _offset, index) => {\n if (node === parentChild) {\n number = index + 1;\n }\n });\n return `${number}. ${serializeChildrenToHTMLString(children).trim()}\n`;\n }\n return serializeChildrenToHTMLString(children);\n },\n paragraph({ children }) {\n return `\n${serializeChildrenToHTMLString(children)}\n`;\n },\n heading({ node, children }) {\n const level = node.attrs.level;\n return `${new Array(level).fill(\"#\").join(\"\")} ${children}\n`;\n },\n codeBlock({ node, children }) {\n return `\n\\`\\`\\`${node.attrs.language}\n${serializeChildrenToHTMLString(children)}\n\\`\\`\\`\n`;\n },\n blockquote({ children }) {\n return `\n${serializeChildrenToHTMLString(children).trim().split(\"\\n\").map((a) => `> ${a}`).join(\"\\n\")}`;\n },\n image({ node }) {\n return ``;\n },\n hardBreak() {\n return \"\\n\";\n },\n horizontalRule() {\n return \"\\n---\\n\";\n },\n table({ children, node }) {\n if (!Array.isArray(children)) {\n return `\n${serializeChildrenToHTMLString(children)}\n`;\n }\n const columnCount = node.children[0].childCount;\n return `\n${serializeChildrenToHTMLString(children[0])}| ${new Array(columnCount).fill(\"---\").join(\" | \")} |\n${serializeChildrenToHTMLString(children.slice(1))}\n`;\n },\n tableRow({ children }) {\n if (Array.isArray(children)) {\n return `| ${children.join(\" | \")} |\n`;\n }\n return `${serializeChildrenToHTMLString(children)}\n`;\n },\n tableHeader({ children }) {\n return serializeChildrenToHTMLString(children).trim();\n },\n tableCell({ children }) {\n return serializeChildrenToHTMLString(children).trim();\n },\n ...options == null ? void 0 : options.nodeMapping\n },\n markMapping: {\n bold({ children }) {\n return `**${serializeChildrenToHTMLString(children)}**`;\n },\n italic({ children, node }) {\n let isBoldToo = false;\n if (node == null ? void 0 : node.marks.some((m) => m.type.name === \"bold\")) {\n isBoldToo = true;\n }\n if (isBoldToo) {\n return `*${serializeChildrenToHTMLString(children)}*`;\n }\n return `_${serializeChildrenToHTMLString(children)}_`;\n },\n code({ children }) {\n return `\\`${serializeChildrenToHTMLString(children)}\\``;\n },\n strike({ children }) {\n return `~~${serializeChildrenToHTMLString(children)}~~`;\n },\n underline({ children }) {\n return `<u>${serializeChildrenToHTMLString(children)}</u>`;\n },\n subscript({ children }) {\n return `<sub>${serializeChildrenToHTMLString(children)}</sub>`;\n },\n superscript({ children }) {\n return `<sup>${serializeChildrenToHTMLString(children)}</sup>`;\n },\n link({ mark, children }) {\n return `[${serializeChildrenToHTMLString(children)}](${mark.attrs.href})`;\n },\n highlight({ children }) {\n return `==${serializeChildrenToHTMLString(children)}==`;\n },\n ...options == null ? void 0 : options.markMapping\n }\n }\n });\n}\nexport {\n mapMarkExtensionToReactNode,\n mapNodeExtensionToReactNode,\n renderToElement,\n renderToMarkdown\n};\n//# sourceMappingURL=index.js.map","import { renderToMarkdown } from '@tiptap/static-renderer/pm/markdown';\n\n// The pm/markdown renderer passes children as string[] (one entry per child node),\n// not as a pre-joined string. Normalize to a string before processing.\nconst joinChildren = (children) => Array.isArray(children) ? children.join('') : (children || '');\n\n// Move leading/trailing spaces outside mark delimiters so parsers like CommonMark\n// don't reject them (e.g. \"** bold **\" → \" **bold** \").\nconst wrapMark = (text, open, close) => {\n const trimmed = text.trim();\n if (!trimmed) return text;\n const leading = text.slice(0, text.length - text.trimStart().length);\n const trailing = text.slice(text.trimEnd().length);\n return `${leading}${open}${trimmed}${close}${trailing}`;\n};\n\n/**\n * Renders a TipTap/ProseMirror JSON document to a markdown string.\n *\n * Uses @tiptap/static-renderer with custom mappings to preserve the output\n * format of the legacy jsonToMarkdownConverter, including Dialtone-specific\n * node types (mention, channel, emoji, variable, slash-commands).\n *\n * @param {import('@tiptap/core').JSONContent} jsonContent - TipTap JSON document\n * @param {import('@tiptap/core').Extensions} extensions - Active editor extensions\n * @returns {string}\n */\nexport function renderEditorToMarkdown (jsonContent, extensions) {\n const output = renderToMarkdown({\n extensions,\n content: jsonContent,\n options: {\n nodeMapping: {\n // Override blockquote: built-in omits trailing newline (causes lazy continuation).\n // Since we replace the built-in entirely, we must add the '> ' prefix ourselves.\n blockquote ({ children }) {\n const text = joinChildren(children).trim();\n const quoted = text\n .split('\\n')\n .map(line => line ? `> ${line}` : '>')\n .join('\\n');\n return quoted + '\\n';\n },\n\n // Override codeBlock: built-in passes null language through literally\n codeBlock ({ node, children }) {\n const lang = node.attrs?.language || '';\n return `\\`\\`\\`${lang}\\n${joinChildren(children)}\\n\\`\\`\\`\\n`;\n },\n\n // Custom Dialtone node types\n mention ({ node }) {\n const id = node.attrs?.id || '';\n const contactKey = node.attrs?.contactKey || '';\n const name = node.attrs?.name || '';\n return `<!-- @mention: {\"id\": \"${id}\", \"contactKey\": \"${contactKey}\", \"name\": \"${name}\"} -->`;\n },\n\n channel ({ node }) {\n const id = node.attrs?.id || '';\n const channelKey = node.attrs?.channelKey || '';\n const name = node.attrs?.name || '';\n const locked = String(node.attrs?.locked ?? '');\n return `<!-- @channel: {\"id\": \"${id}\", \"channelKey\": \"${channelKey}\", \"name\": \"${name}\", \"locked\": \"${locked}\"} -->`;\n },\n\n 'slash-commands' ({ node }) {\n return `/${node.attrs?.command || ''}`;\n },\n\n emoji ({ node }) {\n return node.attrs?.code || '';\n },\n\n variable ({ node }) {\n const id = node.attrs?.id || '';\n const altText = node.attrs?.altText || '';\n return `{{${id}=${altText}}}`;\n },\n },\n\n markMapping: {\n bold ({ children }) {\n return wrapMark(joinChildren(children), '**', '**');\n },\n\n // Override italic: use * instead of built-in _ and fix boundary spaces\n italic ({ children }) {\n return wrapMark(joinChildren(children), '*', '*');\n },\n\n strike ({ children }) {\n return wrapMark(joinChildren(children), '~~', '~~');\n },\n\n code ({ children }) {\n return wrapMark(joinChildren(children), '`', '`');\n },\n\n link ({ mark, children }) {\n const text = joinChildren(children);\n const href = mark.attrs?.href || '';\n const trimmed = text.trim();\n const leading = text.slice(0, text.length - text.trimStart().length);\n const trailing = text.slice(text.trimEnd().length);\n return `${leading}[${trimmed}](${href})${trailing}`;\n },\n\n // Override underline: pass-through (no markdown equivalent, matches legacy no-op)\n underline ({ children }) {\n return joinChildren(children);\n },\n },\n },\n });\n // Collapse 3+ consecutive newlines to 2 (CommonMark ignores extra blank\n // lines between blocks), and strip the leading newline that the built-in\n // paragraph renderer always prepends to the first node.\n return output.replace(/\\n{3,}/g, '\\n\\n').replace(/^\\n+|\\n+$/g, '');\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
require(`./chunk-Bmb41Sf3.cjs`);const e=require(`./common/utils/index.cjs`),t=require(`./_plugin-vue_export-helper-D8jCH6HB.cjs`),n=require(`./localization/index.cjs`),r=require(`./lib/button/button.cjs`),i=require(`./lib/item-layout/item-layout.cjs`),a=require(`./lib/stack/stack.cjs`),o=require(`./lib/tooltip/tooltip.cjs`),s=require(`./lib/popover/popover.cjs`),c=require(`./lib/input/input.cjs`),l=require(`./emoji_picker-Cl-T4BXK.cjs`),u=require(`./node_modules/@tiptap/vue-3.cjs`),d=require(`./rich_text_editor-wvONcbYd.cjs`),f=require(`./lib/rich-text-editor/rich-text-editor-constants.cjs`),p=require(`./lib/editor/editor-constants.cjs`),m=require(`./lib/message-input/last-active-nodes.cjs`),h=require(`./lib/message-input/message-input-topbar.cjs`),g=require(`./lib/message-input/message-input-link.cjs`);let _=require(`vue`),v=require(`@dialpad/dialtone-icons/vue3`),y=require(`@tiptap/core`);var b={name:`MeetingPill`,components:{NodeViewWrapper:u.NodeViewWrapper,DtItemLayout:i.default,DtIconClose:v.DtIconClose,DtButton:r.default,DtIconVideo:v.DtIconVideo},props:u.nodeViewProps,emits:[`meeting-pill-close`],data(){return{i18n:new n.DialtoneLocalization}},computed:{closeButtonTitle(){return this.i18n.$t(`DIALTONE_CLOSE_BUTTON`)}},methods:{close(e){let t=this.editor?.storage?.meetingPill?.onClose;t&&typeof t==`function`&&t(e)}}},x={class:`d-recipe-message-input-meeting-pill__icon`},S={class:`d-recipe-message-input-meeting-pill__close`};function C(e,t,n,r,i,a){let o=(0,_.resolveComponent)(`dt-icon-video`),s=(0,_.resolveComponent)(`dt-icon-close`),c=(0,_.resolveComponent)(`dt-button`),l=(0,_.resolveComponent)(`dt-item-layout`),u=(0,_.resolveComponent)(`node-view-wrapper`);return(0,_.openBlock)(),(0,_.createBlock)(u,{class:`d-recipe-message-input-meeting-pill`},{default:(0,_.withCtx)(()=>[(0,_.createVNode)(l,{class:`d-recipe-message-input-meeting-pill__layout`,unstyled:``},{left:(0,_.withCtx)(()=>[(0,_.createElementVNode)(`div`,x,[(0,_.createVNode)(o,{size:`400`})])]),right:(0,_.withCtx)(()=>[(0,_.createElementVNode)(`div`,S,[(0,_.createVNode)(c,{circle:``,importance:`clear`,size:`xs`,"aria-label":a.closeButtonTitle,title:a.closeButtonTitle,onClick:a.close},{icon:(0,_.withCtx)(()=>[(0,_.createVNode)(s,{size:`300`})]),_:1},8,[`aria-label`,`title`,`onClick`])])]),default:(0,_.withCtx)(()=>[(0,_.createTextVNode)(` `+(0,_.toDisplayString)(e.node.attrs.text)+` `,1)]),_:1})]),_:1})}var w=t.t(b,[[`render`,C]]),T=y.Node.create({name:`meetingPill`,atom:!0,group:`inline`,inline:!0,addOptions(){return{onClose:()=>{}}},addStorage(){return{onClose:this.options.onClose}},addNodeView(){return u.VueNodeViewRenderer(w)},addAttributes(){return{text:{default:`Please pass in "text" attribute`}}},parseHTML(){return[{tag:`meeting-pill`}]},renderText(){return`/dpm`},renderHTML({HTMLAttributes:e}){return[`meeting-pill`,(0,y.mergeAttributes)(e)]}}),E={compatConfig:{MODE:3},name:`DtRecipeMessageInput`,components:{DtButton:r.default,DtEmojiPicker:l.t,DtInput:c.default,DtPopover:s.default,DtRecipeMessageInputTopbar:h.default,DtRecipeMessageInputLink:g.default,DtRichTextEditor:d.t,DtTooltip:o.default,DtStack:a.default,DtIconImage:v.DtIconImage,DtIconVerySatisfied:v.DtIconVerySatisfied,DtIconSatisfied:v.DtIconSatisfied,DtIconSend:v.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(e){return typeof e==`string`?f.RICH_TEXT_EDITOR_AUTOFOCUS_TYPES.includes(e):!0}},outputFormat:{type:String,default:`json`,validator(e){return f.RICH_TEXT_EDITOR_OUTPUT_FORMATS.includes(e)}},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:m.default,additionalExtensions:[T.configure({onClose:e=>{this.$emit(`meeting-pill-close`,e)}})],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 n.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},isSelectionActive(){return this.selectedText,e=>[`bulletList`,`orderedList`].includes(e)?this.richText?this.lastActiveNodes(this.$refs.richTextEditor?.editor?.state,[{type:`bulletList`},{type:`orderedList`}]).includes(e)&&this.isFocused:!1:this.$refs.richTextEditor?.editor?.isActive(e)&&this.isFocused},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(e){this.internalInputValue=e},emojiPickerOpened(e){e||this.$refs.richTextEditor?.focusEditor()}},created(){this.modelValue&&this.outputFormat===`text`?this.internalInputValue=this.modelValue.replace(/\n/g,`<br>`):this.internalInputValue=this.modelValue},methods:{removeClassStyleAttrs:e.removeClassStyleAttrs,addClassStyleAttrs:e.addClassStyleAttrs,linkDialogOpened(e){this.linkDialogOpen=e,e===!0?this.initLinkDialog():(this.hideLinkBubbleMenu=!1,this.$refs.richTextEditor?.focusEditor())},handleTopbarClick(e){let t=this.$refs.richTextEditor?.editor,n={bold:()=>t?.chain().focus().toggleBold().run(),italic:()=>t?.chain().focus().toggleItalic().run(),strike:()=>t?.chain().focus().toggleStrike().run(),bulletList:()=>t?.chain().focus().toggleBulletList().run(),orderedList:()=>t?.chain().focus().toggleOrderedList().run(),blockquote:()=>t?.chain().focus().toggleBlockquote().run(),code:()=>t?.chain().focus().toggleCode().run(),codeBlock:()=>t?.chain().focus().toggleCodeBlock().run()};t&&n[e]&&n[e]()},initLinkDialog(){this.$refs.link.setInitialValues(this.selectedText,this.$refs.richTextEditor?.editor?.getAttributes(`link`)?.href),this.hideLinkBubbleMenu=!0,this.linkDialogOpen=!0},removeLink(){this.$refs.richTextEditor?.removeLink(),this.linkDialogOpen=!1},setLink(e,t){this.$refs.richTextEditor.setLink(t,e,this.linkOptions,p.EDITOR_SUPPORTED_LINK_PROTOCOLS,p.EDITOR_DEFAULT_LINK_PREFIX),this.linkDialogOpen=!1},onMousedown(t){e.returnFirstEl(this.$refs.richTextEditor.$el).querySelector(`.tiptap`).contains(t.target)||(t.preventDefault(),this.$refs.richTextEditor.focusEditor())},onDrop(e){let t=e.dataTransfer,n=Array.from(t.files);this.$emit(`add-media`,n)},onPaste(e){if(e.clipboardData.files.length){e.stopPropagation(),e.preventDefault();let t=[...e.clipboardData.files];this.$emit(`paste-media`,t)}},onSkinTone(e){this.$emit(`skin-tone`,e)},onSelectEmoji(e,t){e&&(e.shift_key||t(),this.$refs.richTextEditor.editor.commands.insertContent({type:`emoji`,attrs:{code:e.shortname,image:e.image,name:e.name}}),this.$emit(`selected-emoji`,e))},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(e){this.$emit(`update:modelValue`,e)},onTextInput(e){this.text=e,this.$emit(`text-input`,e)},onMarkdownInput(e){this.$emit(`markdown-input`,e)}}},D={class:`d-recipe-message-input__bottom-section`},O={class:`d-recipe-message-input__bottom-section-left`},k={class:`d-recipe-message-input__bottom-section-right`},A={class:`d-recipe-message-input__schedule-message`},j={class:`d-recipe-message-input__sms-count`},M={key:0};function N(e,t,n,r,i,a){let o=(0,_.resolveComponent)(`dt-recipe-message-input-link`),s=(0,_.resolveComponent)(`dt-recipe-message-input-topbar`),c=(0,_.resolveComponent)(`dt-rich-text-editor`),l=(0,_.resolveComponent)(`dt-icon-image`),u=(0,_.resolveComponent)(`dt-button`),d=(0,_.resolveComponent)(`dt-input`),f=(0,_.resolveComponent)(`dt-icon-very-satisfied`),p=(0,_.resolveComponent)(`dt-icon-satisfied`),m=(0,_.resolveComponent)(`dt-emoji-picker`),h=(0,_.resolveComponent)(`dt-popover`),g=(0,_.resolveComponent)(`dt-stack`),v=(0,_.resolveComponent)(`dt-tooltip`),y=(0,_.resolveComponent)(`dt-icon-send`),b=(0,_.resolveDirective)(`dt-scrollbar`),x=(0,_.resolveDirective)(`dt-tooltip`);return(0,_.openBlock)(),(0,_.createElementBlock)(`div`,(0,_.mergeProps)({"data-qa":`dt-recipe-message-input`,role:`presentation`,class:`d-recipe-message-input`},a.addClassStyleAttrs(e.$attrs),{onDragover:t[16]||(t[16]=(0,_.withModifiers)(()=>{},[`prevent`])),onDrop:t[17]||(t[17]=(0,_.withModifiers)((...e)=>a.onDrop&&a.onDrop(...e),[`prevent`])),onPaste:t[18]||(t[18]=(...e)=>a.onPaste&&a.onPaste(...e)),onMousedown:t[19]||(t[19]=(...e)=>a.onMousedown&&a.onMousedown(...e))}),[(0,_.renderSlot)(e.$slots,`top`),n.richText?((0,_.openBlock)(),(0,_.createBlock)(s,{key:0,"bold-button-options":n.boldButtonOptions,"italic-button-options":n.italicButtonOptions,"strike-button-options":n.strikeButtonOptions,"bullet-list-button-options":n.bulletListButtonOptions,"ordered-list-button-options":n.orderedListButtonOptions,"block-quote-button-options":n.blockQuoteButtonOptions,"code-button-options":n.codeButtonOptions,"code-block-button-options":n.codeBlockButtonOptions,"is-selection-active":a.isSelectionActive,onClick:a.handleTopbarClick},{link:(0,_.withCtx)(()=>[(0,_.createVNode)(o,{ref:`link`,open:i.linkDialogOpen,"link-button-options":n.linkButtonOptions,"is-selection-active":a.isSelectionActive,onOpened:a.linkDialogOpened,onSetLink:a.setLink,onRemoveLink:a.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`])):(0,_.createCommentVNode)(``,!0),(0,_.withDirectives)(((0,_.openBlock)(),(0,_.createElementBlock)(`div`,{class:`d-recipe-message-input__editor-wrapper`,style:(0,_.normalizeStyle)({"max-height":n.maxHeight})},[(0,_.createVNode)(c,(0,_.mergeProps)({ref:`richTextEditor`,modelValue:i.internalInputValue,"onUpdate:modelValue":t[0]||(t[0]=e=>i.internalInputValue=e),"allow-blockquote":n.richText,"allow-bold":n.richText,"allow-bullet-list":n.richText,"allow-code":n.richText,"allow-codeblock":n.richText,"allow-italic":n.richText,"allow-strike":n.richText,"allow-underline":n.richText,"paste-rich-text":n.richText,editable:n.editable,"input-aria-label":n.inputAriaLabel,"input-class":n.inputClass,"output-format":n.outputFormat,"auto-focus":n.autoFocus,link:n.richText,placeholder:n.placeholder,"prevent-typing":n.preventTyping,"mention-suggestion":n.mentionSuggestion,"channel-suggestion":n.channelSuggestion,"slash-command-suggestion":n.slashCommandSuggestion,"additional-extensions":i.additionalExtensions,"hide-link-bubble-menu":i.hideLinkBubbleMenu},a.removeClassStyleAttrs(e.$attrs),{onInput:a.onInput,onTextInput:a.onTextInput,onMarkdownInput:a.onMarkdownInput,onEnter:a.onSend,onSelected:t[1]||(t[1]=e=>i.selectedText=e),onSelectedCommand:t[2]||(t[2]=t=>e.$emit(`selected-command`,t)),onEditLink:a.initLinkDialog,onFocus:t[3]||(t[3]=e=>i.isFocused=!0),onBlur:t[4]||(t[4]=e=>i.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`.split(`.`))],4)),[[b]]),(0,_.renderSlot)(e.$slots,`middle`),(0,_.createElementVNode)(`section`,D,[(0,_.createElementVNode)(`div`,O,[(0,_.createVNode)(g,{gap:`200`,direction:`row`,class:`d-recipe-message-input__bottom-section-left-stack`},{default:(0,_.withCtx)(()=>[n.showImagePicker?(0,_.withDirectives)(((0,_.openBlock)(),(0,_.createBlock)(u,{key:0,"data-qa":`dt-recipe-message-input-image-btn`,size:`sm`,class:`d-recipe-message-input__button`,kind:`muted`,importance:`clear`,"aria-label":a.imagePickerButtonLabel,onClick:a.onSelectImage,onMouseenter:t[5]||(t[5]=e=>i.imagePickerFocus=!0),onMouseleave:t[6]||(t[6]=e=>i.imagePickerFocus=!1),onFocus:t[7]||(t[7]=e=>i.imagePickerFocus=!0),onBlur:t[8]||(t[8]=e=>i.imagePickerFocus=!1)},{icon:(0,_.withCtx)(()=>[(0,_.createVNode)(l,{size:`300`})]),_:1},8,[`aria-label`,`onClick`])),[[x,a.imagePickerButtonLabel,`top-start`]]):(0,_.createCommentVNode)(``,!0),(0,_.createVNode)(d,{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:a.onImageUpload},null,8,[`onInput`]),n.showEmojiPicker?((0,_.openBlock)(),(0,_.createBlock)(h,{key:1,open:i.emojiPickerOpened,"onUpdate:open":t[15]||(t[15]=e=>i.emojiPickerOpened=e),"data-qa":`dt-recipe-message-input-emoji-picker-popover`,"initial-focus-element":`#searchInput`,padding:`none`},{anchor:(0,_.withCtx)(({attrs:e})=>[(0,_.withDirectives)(((0,_.openBlock)(),(0,_.createBlock)(u,(0,_.mergeProps)(e,{"data-qa":`dt-recipe-message-input-emoji-picker-btn`,size:`sm`,class:`d-recipe-message-input__button`,kind:`muted`,importance:`clear`,"aria-label":a.emojiPickerButtonLabel,onClick:a.toggleEmojiPicker,onMouseenter:t[9]||(t[9]=e=>i.emojiPickerFocus=!0),onMouseleave:t[10]||(t[10]=e=>i.emojiPickerFocus=!1),onFocus:t[11]||(t[11]=e=>i.emojiPickerFocus=!0),onBlur:t[12]||(t[12]=e=>i.emojiPickerFocus=!1)}),{icon:(0,_.withCtx)(()=>[a.emojiPickerHovered?((0,_.openBlock)(),(0,_.createBlock)(f,{key:0,size:`300`})):((0,_.openBlock)(),(0,_.createBlock)(p,{key:1,size:`300`}))]),_:1},16,[`aria-label`,`onClick`])),[[x,a.emojiPickerButtonLabel]])]),content:(0,_.withCtx)(({close:r})=>[(0,_.createVNode)(m,(0,_.mergeProps)(n.emojiPickerProps,{onAddEmoji:t[13]||(t[13]=t=>e.$emit(`add-emoji`)),onSkinTone:a.onSkinTone,onSelectedEmoji:e=>a.onSelectEmoji(e,r),onScrollBottomReached:t[14]||(t[14]=t=>e.$emit(`emoji-scroll-bottom-reached`))}),null,16,[`onSkinTone`,`onSelectedEmoji`])]),_:1},8,[`open`])):(0,_.createCommentVNode)(``,!0),(0,_.renderSlot)(e.$slots,`emojiGiphyPicker`),(0,_.renderSlot)(e.$slots,`customActionIcons`),(0,_.renderSlot)(e.$slots,`messagePolish`)]),_:3})]),(0,_.createElementVNode)(`div`,k,[(0,_.createVNode)(g,{direction:`row`,gap:`300`},{default:(0,_.withCtx)(()=>[(0,_.createElementVNode)(`div`,A,[(0,_.renderSlot)(e.$slots,`scheduleMessage`)]),(0,_.createElementVNode)(`div`,j,[(0,_.renderSlot)(e.$slots,`smsCount`)]),n.showCharacterLimit?((0,_.openBlock)(),(0,_.createBlock)(v,{key:0,class:`d-recipe-message-input__remaining-char-tooltip`,placement:`top-end`,enabled:a.characterLimitTooltipEnabled,message:n.showCharacterLimit.message,offset:[10,8]},{anchor:(0,_.withCtx)(()=>[(0,_.withDirectives)((0,_.createElementVNode)(`p`,{class:`d-recipe-message-input__remaining-char`,"data-qa":`dt-recipe-message-input-character-limit`},(0,_.toDisplayString)(n.showCharacterLimit.count-a.inputLength),513),[[_.vShow,a.displayCharacterLimitWarning]])]),_:1},8,[`enabled`,`message`])):(0,_.createCommentVNode)(``,!0),n.showCancel?(0,_.withDirectives)(((0,_.openBlock)(),(0,_.createBlock)(u,{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":a.cancelButtonLabel,onClick:a.onCancel},{default:(0,_.withCtx)(()=>[(0,_.createElementVNode)(`p`,null,(0,_.toDisplayString)(a.cancelButtonLabel),1)]),_:1},8,[`aria-label`,`onClick`])),[[x,a.cancelButtonLabel]]):(0,_.createCommentVNode)(``,!0),(0,_.renderSlot)(e.$slots,`sendButton`,{},()=>[n.showSend?(0,_.withDirectives)(((0,_.openBlock)(),(0,_.createBlock)(u,{key:0,"data-qa":`dt-recipe-message-input-send-btn`,size:`sm`,kind:`default`,importance:`primary`,class:(0,_.normalizeClass)([`d-recipe-message-input__button d-recipe-message-input__send-button`,{"d-recipe-message-input__send-button--disabled":a.isSendDisabled,"d-btn--icon-only":a.showSendIcon}]),"aria-label":a.sendButtonLabel,"aria-disabled":a.isSendDisabled,onClick:a.onSend},(0,_.createSlots)({default:(0,_.withCtx)(()=>[n.showSend.text?((0,_.openBlock)(),(0,_.createElementBlock)(`p`,M,(0,_.toDisplayString)(n.showSend.text),1)):(0,_.createCommentVNode)(``,!0)]),_:2},[a.showSendIcon?{name:`icon`,fn:(0,_.withCtx)(()=>[(0,_.renderSlot)(e.$slots,`sendIcon`,{iconSize:a.sendIconSize},()=>[(0,_.createVNode)(y,{size:a.sendIconSize},null,8,[`size`])])]),key:`0`}:void 0]),1032,[`class`,`aria-label`,`aria-disabled`,`onClick`])),[[x,a.sendButtonLabel,`top-end`]]):(0,_.createCommentVNode)(``,!0)])]),_:3})])])],16)}var P=t.t(E,[[`render`,N]]);Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return P}});
|
|
2
|
-
//# sourceMappingURL=message_input-
|
|
1
|
+
require(`./chunk-Bmb41Sf3.cjs`);const e=require(`./common/utils/index.cjs`),t=require(`./_plugin-vue_export-helper-D8jCH6HB.cjs`),n=require(`./localization/index.cjs`),r=require(`./lib/button/button.cjs`),i=require(`./lib/item-layout/item-layout.cjs`),a=require(`./lib/stack/stack.cjs`),o=require(`./lib/tooltip/tooltip.cjs`),s=require(`./lib/popover/popover.cjs`),c=require(`./lib/input/input.cjs`),l=require(`./emoji_picker-Cl-T4BXK.cjs`),u=require(`./node_modules/@tiptap/vue-3.cjs`),d=require(`./rich_text_editor-DWrdKcza.cjs`),f=require(`./lib/rich-text-editor/rich-text-editor-constants.cjs`),p=require(`./lib/editor/editor-constants.cjs`),m=require(`./lib/message-input/last-active-nodes.cjs`),h=require(`./lib/message-input/message-input-topbar.cjs`),g=require(`./lib/message-input/message-input-link.cjs`);let _=require(`vue`),v=require(`@dialpad/dialtone-icons/vue3`),y=require(`@tiptap/core`);var b={name:`MeetingPill`,components:{NodeViewWrapper:u.NodeViewWrapper,DtItemLayout:i.default,DtIconClose:v.DtIconClose,DtButton:r.default,DtIconVideo:v.DtIconVideo},props:u.nodeViewProps,emits:[`meeting-pill-close`],data(){return{i18n:new n.DialtoneLocalization}},computed:{closeButtonTitle(){return this.i18n.$t(`DIALTONE_CLOSE_BUTTON`)}},methods:{close(e){let t=this.editor?.storage?.meetingPill?.onClose;t&&typeof t==`function`&&t(e)}}},x={class:`d-recipe-message-input-meeting-pill__icon`},S={class:`d-recipe-message-input-meeting-pill__close`};function C(e,t,n,r,i,a){let o=(0,_.resolveComponent)(`dt-icon-video`),s=(0,_.resolveComponent)(`dt-icon-close`),c=(0,_.resolveComponent)(`dt-button`),l=(0,_.resolveComponent)(`dt-item-layout`),u=(0,_.resolveComponent)(`node-view-wrapper`);return(0,_.openBlock)(),(0,_.createBlock)(u,{class:`d-recipe-message-input-meeting-pill`},{default:(0,_.withCtx)(()=>[(0,_.createVNode)(l,{class:`d-recipe-message-input-meeting-pill__layout`,unstyled:``},{left:(0,_.withCtx)(()=>[(0,_.createElementVNode)(`div`,x,[(0,_.createVNode)(o,{size:`400`})])]),right:(0,_.withCtx)(()=>[(0,_.createElementVNode)(`div`,S,[(0,_.createVNode)(c,{circle:``,importance:`clear`,size:`xs`,"aria-label":a.closeButtonTitle,title:a.closeButtonTitle,onClick:a.close},{icon:(0,_.withCtx)(()=>[(0,_.createVNode)(s,{size:`300`})]),_:1},8,[`aria-label`,`title`,`onClick`])])]),default:(0,_.withCtx)(()=>[(0,_.createTextVNode)(` `+(0,_.toDisplayString)(e.node.attrs.text)+` `,1)]),_:1})]),_:1})}var w=t.t(b,[[`render`,C]]),T=y.Node.create({name:`meetingPill`,atom:!0,group:`inline`,inline:!0,addOptions(){return{onClose:()=>{}}},addStorage(){return{onClose:this.options.onClose}},addNodeView(){return u.VueNodeViewRenderer(w)},addAttributes(){return{text:{default:`Please pass in "text" attribute`}}},parseHTML(){return[{tag:`meeting-pill`}]},renderText(){return`/dpm`},renderHTML({HTMLAttributes:e}){return[`meeting-pill`,(0,y.mergeAttributes)(e)]}}),E={compatConfig:{MODE:3},name:`DtRecipeMessageInput`,components:{DtButton:r.default,DtEmojiPicker:l.t,DtInput:c.default,DtPopover:s.default,DtRecipeMessageInputTopbar:h.default,DtRecipeMessageInputLink:g.default,DtRichTextEditor:d.t,DtTooltip:o.default,DtStack:a.default,DtIconImage:v.DtIconImage,DtIconVerySatisfied:v.DtIconVerySatisfied,DtIconSatisfied:v.DtIconSatisfied,DtIconSend:v.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(e){return typeof e==`string`?f.RICH_TEXT_EDITOR_AUTOFOCUS_TYPES.includes(e):!0}},outputFormat:{type:String,default:`json`,validator(e){return f.RICH_TEXT_EDITOR_OUTPUT_FORMATS.includes(e)}},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:m.default,additionalExtensions:[T.configure({onClose:e=>{this.$emit(`meeting-pill-close`,e)}})],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 n.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},isSelectionActive(){return this.selectedText,e=>[`bulletList`,`orderedList`].includes(e)?this.richText?this.lastActiveNodes(this.$refs.richTextEditor?.editor?.state,[{type:`bulletList`},{type:`orderedList`}]).includes(e)&&this.isFocused:!1:this.$refs.richTextEditor?.editor?.isActive(e)&&this.isFocused},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(e){this.internalInputValue=e},emojiPickerOpened(e){e||this.$refs.richTextEditor?.focusEditor()}},created(){this.modelValue&&this.outputFormat===`text`?this.internalInputValue=this.modelValue.replace(/\n/g,`<br>`):this.internalInputValue=this.modelValue},methods:{removeClassStyleAttrs:e.removeClassStyleAttrs,addClassStyleAttrs:e.addClassStyleAttrs,linkDialogOpened(e){this.linkDialogOpen=e,e===!0?this.initLinkDialog():(this.hideLinkBubbleMenu=!1,this.$refs.richTextEditor?.focusEditor())},handleTopbarClick(e){let t=this.$refs.richTextEditor?.editor,n={bold:()=>t?.chain().focus().toggleBold().run(),italic:()=>t?.chain().focus().toggleItalic().run(),strike:()=>t?.chain().focus().toggleStrike().run(),bulletList:()=>t?.chain().focus().toggleBulletList().run(),orderedList:()=>t?.chain().focus().toggleOrderedList().run(),blockquote:()=>t?.chain().focus().toggleBlockquote().run(),code:()=>t?.chain().focus().toggleCode().run(),codeBlock:()=>t?.chain().focus().toggleCodeBlock().run()};t&&n[e]&&n[e]()},initLinkDialog(){this.$refs.link.setInitialValues(this.selectedText,this.$refs.richTextEditor?.editor?.getAttributes(`link`)?.href),this.hideLinkBubbleMenu=!0,this.linkDialogOpen=!0},removeLink(){this.$refs.richTextEditor?.removeLink(),this.linkDialogOpen=!1},setLink(e,t){this.$refs.richTextEditor.setLink(t,e,this.linkOptions,p.EDITOR_SUPPORTED_LINK_PROTOCOLS,p.EDITOR_DEFAULT_LINK_PREFIX),this.linkDialogOpen=!1},onMousedown(t){e.returnFirstEl(this.$refs.richTextEditor.$el).querySelector(`.tiptap`).contains(t.target)||(t.preventDefault(),this.$refs.richTextEditor.focusEditor())},onDrop(e){let t=e.dataTransfer,n=Array.from(t.files);this.$emit(`add-media`,n)},onPaste(e){if(e.clipboardData.files.length){e.stopPropagation(),e.preventDefault();let t=[...e.clipboardData.files];this.$emit(`paste-media`,t)}},onSkinTone(e){this.$emit(`skin-tone`,e)},onSelectEmoji(e,t){e&&(e.shift_key||t(),this.$refs.richTextEditor.editor.commands.insertContent({type:`emoji`,attrs:{code:e.shortname,image:e.image,name:e.name}}),this.$emit(`selected-emoji`,e))},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(e){this.$emit(`update:modelValue`,e)},onTextInput(e){this.text=e,this.$emit(`text-input`,e)},onMarkdownInput(e){this.$emit(`markdown-input`,e)}}},D={class:`d-recipe-message-input__bottom-section`},O={class:`d-recipe-message-input__bottom-section-left`},k={class:`d-recipe-message-input__bottom-section-right`},A={class:`d-recipe-message-input__schedule-message`},j={class:`d-recipe-message-input__sms-count`},M={key:0};function N(e,t,n,r,i,a){let o=(0,_.resolveComponent)(`dt-recipe-message-input-link`),s=(0,_.resolveComponent)(`dt-recipe-message-input-topbar`),c=(0,_.resolveComponent)(`dt-rich-text-editor`),l=(0,_.resolveComponent)(`dt-icon-image`),u=(0,_.resolveComponent)(`dt-button`),d=(0,_.resolveComponent)(`dt-input`),f=(0,_.resolveComponent)(`dt-icon-very-satisfied`),p=(0,_.resolveComponent)(`dt-icon-satisfied`),m=(0,_.resolveComponent)(`dt-emoji-picker`),h=(0,_.resolveComponent)(`dt-popover`),g=(0,_.resolveComponent)(`dt-stack`),v=(0,_.resolveComponent)(`dt-tooltip`),y=(0,_.resolveComponent)(`dt-icon-send`),b=(0,_.resolveDirective)(`dt-scrollbar`),x=(0,_.resolveDirective)(`dt-tooltip`);return(0,_.openBlock)(),(0,_.createElementBlock)(`div`,(0,_.mergeProps)({"data-qa":`dt-recipe-message-input`,role:`presentation`,class:`d-recipe-message-input`},a.addClassStyleAttrs(e.$attrs),{onDragover:t[16]||(t[16]=(0,_.withModifiers)(()=>{},[`prevent`])),onDrop:t[17]||(t[17]=(0,_.withModifiers)((...e)=>a.onDrop&&a.onDrop(...e),[`prevent`])),onPaste:t[18]||(t[18]=(...e)=>a.onPaste&&a.onPaste(...e)),onMousedown:t[19]||(t[19]=(...e)=>a.onMousedown&&a.onMousedown(...e))}),[(0,_.renderSlot)(e.$slots,`top`),n.richText?((0,_.openBlock)(),(0,_.createBlock)(s,{key:0,"bold-button-options":n.boldButtonOptions,"italic-button-options":n.italicButtonOptions,"strike-button-options":n.strikeButtonOptions,"bullet-list-button-options":n.bulletListButtonOptions,"ordered-list-button-options":n.orderedListButtonOptions,"block-quote-button-options":n.blockQuoteButtonOptions,"code-button-options":n.codeButtonOptions,"code-block-button-options":n.codeBlockButtonOptions,"is-selection-active":a.isSelectionActive,onClick:a.handleTopbarClick},{link:(0,_.withCtx)(()=>[(0,_.createVNode)(o,{ref:`link`,open:i.linkDialogOpen,"link-button-options":n.linkButtonOptions,"is-selection-active":a.isSelectionActive,onOpened:a.linkDialogOpened,onSetLink:a.setLink,onRemoveLink:a.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`])):(0,_.createCommentVNode)(``,!0),(0,_.withDirectives)(((0,_.openBlock)(),(0,_.createElementBlock)(`div`,{class:`d-recipe-message-input__editor-wrapper`,style:(0,_.normalizeStyle)({"max-height":n.maxHeight})},[(0,_.createVNode)(c,(0,_.mergeProps)({ref:`richTextEditor`,modelValue:i.internalInputValue,"onUpdate:modelValue":t[0]||(t[0]=e=>i.internalInputValue=e),"allow-blockquote":n.richText,"allow-bold":n.richText,"allow-bullet-list":n.richText,"allow-code":n.richText,"allow-codeblock":n.richText,"allow-italic":n.richText,"allow-strike":n.richText,"allow-underline":n.richText,"paste-rich-text":n.richText,editable:n.editable,"input-aria-label":n.inputAriaLabel,"input-class":n.inputClass,"output-format":n.outputFormat,"auto-focus":n.autoFocus,link:n.richText,placeholder:n.placeholder,"prevent-typing":n.preventTyping,"mention-suggestion":n.mentionSuggestion,"channel-suggestion":n.channelSuggestion,"slash-command-suggestion":n.slashCommandSuggestion,"additional-extensions":i.additionalExtensions,"hide-link-bubble-menu":i.hideLinkBubbleMenu},a.removeClassStyleAttrs(e.$attrs),{onInput:a.onInput,onTextInput:a.onTextInput,onMarkdownInput:a.onMarkdownInput,onEnter:a.onSend,onSelected:t[1]||(t[1]=e=>i.selectedText=e),onSelectedCommand:t[2]||(t[2]=t=>e.$emit(`selected-command`,t)),onEditLink:a.initLinkDialog,onFocus:t[3]||(t[3]=e=>i.isFocused=!0),onBlur:t[4]||(t[4]=e=>i.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`.split(`.`))],4)),[[b]]),(0,_.renderSlot)(e.$slots,`middle`),(0,_.createElementVNode)(`section`,D,[(0,_.createElementVNode)(`div`,O,[(0,_.createVNode)(g,{gap:`200`,direction:`row`,class:`d-recipe-message-input__bottom-section-left-stack`},{default:(0,_.withCtx)(()=>[n.showImagePicker?(0,_.withDirectives)(((0,_.openBlock)(),(0,_.createBlock)(u,{key:0,"data-qa":`dt-recipe-message-input-image-btn`,size:`sm`,class:`d-recipe-message-input__button`,kind:`muted`,importance:`clear`,"aria-label":a.imagePickerButtonLabel,onClick:a.onSelectImage,onMouseenter:t[5]||(t[5]=e=>i.imagePickerFocus=!0),onMouseleave:t[6]||(t[6]=e=>i.imagePickerFocus=!1),onFocus:t[7]||(t[7]=e=>i.imagePickerFocus=!0),onBlur:t[8]||(t[8]=e=>i.imagePickerFocus=!1)},{icon:(0,_.withCtx)(()=>[(0,_.createVNode)(l,{size:`300`})]),_:1},8,[`aria-label`,`onClick`])),[[x,a.imagePickerButtonLabel,`top-start`]]):(0,_.createCommentVNode)(``,!0),(0,_.createVNode)(d,{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:a.onImageUpload},null,8,[`onInput`]),n.showEmojiPicker?((0,_.openBlock)(),(0,_.createBlock)(h,{key:1,open:i.emojiPickerOpened,"onUpdate:open":t[15]||(t[15]=e=>i.emojiPickerOpened=e),"data-qa":`dt-recipe-message-input-emoji-picker-popover`,"initial-focus-element":`#searchInput`,padding:`none`},{anchor:(0,_.withCtx)(({attrs:e})=>[(0,_.withDirectives)(((0,_.openBlock)(),(0,_.createBlock)(u,(0,_.mergeProps)(e,{"data-qa":`dt-recipe-message-input-emoji-picker-btn`,size:`sm`,class:`d-recipe-message-input__button`,kind:`muted`,importance:`clear`,"aria-label":a.emojiPickerButtonLabel,onClick:a.toggleEmojiPicker,onMouseenter:t[9]||(t[9]=e=>i.emojiPickerFocus=!0),onMouseleave:t[10]||(t[10]=e=>i.emojiPickerFocus=!1),onFocus:t[11]||(t[11]=e=>i.emojiPickerFocus=!0),onBlur:t[12]||(t[12]=e=>i.emojiPickerFocus=!1)}),{icon:(0,_.withCtx)(()=>[a.emojiPickerHovered?((0,_.openBlock)(),(0,_.createBlock)(f,{key:0,size:`300`})):((0,_.openBlock)(),(0,_.createBlock)(p,{key:1,size:`300`}))]),_:1},16,[`aria-label`,`onClick`])),[[x,a.emojiPickerButtonLabel]])]),content:(0,_.withCtx)(({close:r})=>[(0,_.createVNode)(m,(0,_.mergeProps)(n.emojiPickerProps,{onAddEmoji:t[13]||(t[13]=t=>e.$emit(`add-emoji`)),onSkinTone:a.onSkinTone,onSelectedEmoji:e=>a.onSelectEmoji(e,r),onScrollBottomReached:t[14]||(t[14]=t=>e.$emit(`emoji-scroll-bottom-reached`))}),null,16,[`onSkinTone`,`onSelectedEmoji`])]),_:1},8,[`open`])):(0,_.createCommentVNode)(``,!0),(0,_.renderSlot)(e.$slots,`emojiGiphyPicker`),(0,_.renderSlot)(e.$slots,`customActionIcons`),(0,_.renderSlot)(e.$slots,`messagePolish`)]),_:3})]),(0,_.createElementVNode)(`div`,k,[(0,_.createVNode)(g,{direction:`row`,gap:`300`},{default:(0,_.withCtx)(()=>[(0,_.createElementVNode)(`div`,A,[(0,_.renderSlot)(e.$slots,`scheduleMessage`)]),(0,_.createElementVNode)(`div`,j,[(0,_.renderSlot)(e.$slots,`smsCount`)]),n.showCharacterLimit?((0,_.openBlock)(),(0,_.createBlock)(v,{key:0,class:`d-recipe-message-input__remaining-char-tooltip`,placement:`top-end`,enabled:a.characterLimitTooltipEnabled,message:n.showCharacterLimit.message,offset:[10,8]},{anchor:(0,_.withCtx)(()=>[(0,_.withDirectives)((0,_.createElementVNode)(`p`,{class:`d-recipe-message-input__remaining-char`,"data-qa":`dt-recipe-message-input-character-limit`},(0,_.toDisplayString)(n.showCharacterLimit.count-a.inputLength),513),[[_.vShow,a.displayCharacterLimitWarning]])]),_:1},8,[`enabled`,`message`])):(0,_.createCommentVNode)(``,!0),n.showCancel?(0,_.withDirectives)(((0,_.openBlock)(),(0,_.createBlock)(u,{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":a.cancelButtonLabel,onClick:a.onCancel},{default:(0,_.withCtx)(()=>[(0,_.createElementVNode)(`p`,null,(0,_.toDisplayString)(a.cancelButtonLabel),1)]),_:1},8,[`aria-label`,`onClick`])),[[x,a.cancelButtonLabel]]):(0,_.createCommentVNode)(``,!0),(0,_.renderSlot)(e.$slots,`sendButton`,{},()=>[n.showSend?(0,_.withDirectives)(((0,_.openBlock)(),(0,_.createBlock)(u,{key:0,"data-qa":`dt-recipe-message-input-send-btn`,size:`sm`,kind:`default`,importance:`primary`,class:(0,_.normalizeClass)([`d-recipe-message-input__button d-recipe-message-input__send-button`,{"d-recipe-message-input__send-button--disabled":a.isSendDisabled,"d-btn--icon-only":a.showSendIcon}]),"aria-label":a.sendButtonLabel,"aria-disabled":a.isSendDisabled,onClick:a.onSend},(0,_.createSlots)({default:(0,_.withCtx)(()=>[n.showSend.text?((0,_.openBlock)(),(0,_.createElementBlock)(`p`,M,(0,_.toDisplayString)(n.showSend.text),1)):(0,_.createCommentVNode)(``,!0)]),_:2},[a.showSendIcon?{name:`icon`,fn:(0,_.withCtx)(()=>[(0,_.renderSlot)(e.$slots,`sendIcon`,{iconSize:a.sendIconSize},()=>[(0,_.createVNode)(y,{size:a.sendIconSize},null,8,[`size`])])]),key:`0`}:void 0]),1032,[`class`,`aria-label`,`aria-disabled`,`onClick`])),[[x,a.sendButtonLabel,`top-end`]]):(0,_.createCommentVNode)(``,!0)])]),_:3})])])],16)}var P=t.t(E,[[`render`,N]]);Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return P}});
|
|
2
|
+
//# sourceMappingURL=message_input-B45NFtUx.cjs.map
|