UNPKG

@dialpad/dialtone-vue

Version:

Vue component library for Dialpad's design system Dialtone

3 lines (2 loc) 17 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const m=require("./last-active-nodes.cjs"),r=require("@tiptap/core"),a=require("../../node_modules/@tiptap/vue-2.cjs"),s=require("@dialpad/dialtone-icons/vue2"),u=require("../../localization/index.cjs"),d=require("../../_plugin-vue2_normalizer-e_CkxkSV.cjs"),p=require("../button/button.cjs"),h=require("../item-layout/item-layout.cjs"),f=require("./message-input-topbar.cjs"),g=require("./message-input-link.cjs"),l=require("../editor/editor-constants.cjs"),_=require("../stack/stack.cjs"),b=require("../tooltip/tooltip.cjs"),k=require("../rich-text-editor/rich-text-editor.cjs"),T=require("../popover/popover.cjs"),v=require("../input/input.cjs"),L=require("../emoji-picker/emoji-picker.cjs"),c=require("../rich-text-editor/rich-text-editor-constants.cjs"),S={name:"MeetingPill",components:{NodeViewWrapper:a.NodeViewWrapper,DtItemLayout:h.default,DtIconClose:s.DtIconClose,DtButton:p.default,DtIconVideo:s.DtIconVideo},props:a.nodeViewProps,emits:["meeting-pill-close"],data(){return{i18n:new u.DialtoneLocalization}},computed:{closeButtonTitle(){return this.i18n.$t("DIALTONE_CLOSE_BUTTON")}},methods:{close(t){var i,n,o;const e=(o=(n=(i=this.editor)==null?void 0:i.storage)==null?void 0:n.meetingPill)==null?void 0:o.onClose;e&&typeof e=="function"&&e(t)}}};var I=function(){var e=this,i=e._self._c;return i("node-view-wrapper",{staticClass:"d-recipe-message-input-meeting-pill"},[i("dt-item-layout",{staticClass:"d-recipe-message-input-meeting-pill__layout",attrs:{unstyled:""},scopedSlots:e._u([{key:"left",fn:function(){return[i("div",{staticClass:"d-recipe-message-input-meeting-pill__icon"},[i("dt-icon-video",{attrs:{size:"400"}})],1)]},proxy:!0},{key:"right",fn:function(){return[i("div",{staticClass:"d-recipe-message-input-meeting-pill__close"},[i("dt-button",{attrs:{circle:"",importance:"clear",size:"xs","aria-label":e.closeButtonTitle,title:e.closeButtonTitle},on:{click:e.close},scopedSlots:e._u([{key:"icon",fn:function(){return[i("dt-icon-close",{attrs:{size:"300"}})]},proxy:!0}])})],1)]},proxy:!0}])},[e._v(" "+e._s(e.node.attrs.text)+" ")])],1)},x=[],y=d.n(S,I,x);const O=y.exports,B=r.Node.create({name:"meetingPill",atom:!0,group:"inline",inline:!0,addOptions(){return{onClose:()=>{}}},addStorage(){return{onClose:this.options.onClose}},addNodeView(){return a.VueNodeViewRenderer(O)},addAttributes(){return{text:{default:'Please pass in "text" attribute'}}},parseHTML(){return[{tag:"meeting-pill"}]},renderText(){return"/dpm"},renderHTML({HTMLAttributes:t}){return["meeting-pill",r.mergeAttributes(t)]}}),w={name:"DtRecipeMessageInput",components:{DtButton:p.default,DtEmojiPicker:L.default,DtInput:v.default,DtPopover:T.default,DtRecipeMessageInputTopbar:f.default,DtRecipeMessageInputLink:g.default,DtRichTextEditor:k.default,DtTooltip:b.default,DtStack:_.default,DtIconImage:s.DtIconImage,DtIconVerySatisfied:s.DtIconVerySatisfied,DtIconSatisfied:s.DtIconSatisfied,DtIconSend:s.DtIconSend},inheritAttrs:!1,props:{richText:{type:Boolean,default:!0},value:{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(t){return typeof t=="string"?c.RICH_TEXT_EDITOR_AUTOFOCUS_TYPES.includes(t):!0}},outputFormat:{type:String,default:"json",validator(t){return c.RICH_TEXT_EDITOR_OUTPUT_FORMATS.includes(t)}},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:value","text-input","markdown-input","add-emoji","emoji-scroll-bottom-reached"],data(){return{lastActiveNodes:m.default,additionalExtensions:[B.configure({onClose:t=>{this.$emit("meeting-pill-close",t)}})],internalInputValue:this.value,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 u.DialtoneLocalization}},computed:{showSendIcon(){return!this.showSend.text},inputLength(){return this.text.length},displayCharacterLimitWarning(){return!!this.showCharacterLimit&&this.showCharacterLimit.count-this.inputLength<=this.showCharacterLimit.warning},characterLimitTooltipEnabled(){return this.showCharacterLimit.message&&this.showCharacterLimit.count-this.inputLength<0},isSendDisabled(){return this.disableSend||this.showCharacterLimit&&this.inputLength>this.showCharacterLimit.count},emojiPickerHovered(){return this.emojiPickerFocus||this.emojiPickerOpened},sendIconSize(){return"300"},sendButtonLabel(){return this.i18n.$t("DIALTONE_MESSAGE_INPUT_SEND_BUTTON_ARIA_LABEL")},imagePickerButtonLabel(){return this.i18n.$t("DIALTONE_MESSAGE_INPUT_IMAGE_PICKER_BUTTON_ARIA_LABEL")},emojiPickerButtonLabel(){return this.i18n.$t("DIALTONE_MESSAGE_INPUT_EMOJI_PICKER_BUTTON_ARIA_LABEL")},cancelButtonLabel(){return this.i18n.$t("DIALTONE_MESSAGE_INPUT_CANCEL_BUTTON_ARIA_LABEL")}},watch:{value(t){this.internalInputValue=t},emojiPickerOpened(t){var e;t||(e=this.$refs.richTextEditor)==null||e.focusEditor()}},created(){this.value&&this.outputFormat==="text"?this.internalInputValue=this.value.replace(/\n/g,"<br>"):this.internalInputValue=this.value},methods:{linkDialogOpened(t){var e;this.linkDialogOpen=t,t===!0?this.initLinkDialog():(this.hideLinkBubbleMenu=!1,(e=this.$refs.richTextEditor)==null||e.focusEditor())},handleTopbarClick(t){var n;const e=(n=this.$refs.richTextEditor)==null?void 0:n.editor,i={bold:()=>e==null?void 0:e.chain().focus().toggleBold().run(),italic:()=>e==null?void 0:e.chain().focus().toggleItalic().run(),strike:()=>e==null?void 0:e.chain().focus().toggleStrike().run(),bulletList:()=>e==null?void 0:e.chain().focus().toggleBulletList().run(),orderedList:()=>e==null?void 0:e.chain().focus().toggleOrderedList().run(),blockquote:()=>e==null?void 0:e.chain().focus().toggleBlockquote().run(),code:()=>e==null?void 0:e.chain().focus().toggleCode().run(),codeBlock:()=>e==null?void 0:e.chain().focus().toggleCodeBlock().run()};e&&i[t]&&i[t]()},isSelectionActive(t){var e,i,n,o;return["bulletList","orderedList"].includes(t)?this.lastActiveNodes((i=(e=this.$refs.richTextEditor)==null?void 0:e.editor)==null?void 0:i.state,[{type:"bulletList"},{type:"orderedList"}]).includes(t)&&this.isFocused:((o=(n=this.$refs.richTextEditor)==null?void 0:n.editor)==null?void 0:o.isActive(t))&&this.isFocused},initLinkDialog(){var t,e,i;this.$refs.link.setInitialValues(this.selectedText,(i=(e=(t=this.$refs.richTextEditor)==null?void 0:t.editor)==null?void 0:e.getAttributes("link"))==null?void 0:i.href),this.hideLinkBubbleMenu=!0,this.linkDialogOpen=!0},removeLink(){var t;(t=this.$refs.richTextEditor)==null||t.removeLink(),this.linkDialogOpen=!1},setLink(t,e){this.$refs.richTextEditor.setLink(e,t,this.linkOptions,l.EDITOR_SUPPORTED_LINK_PROTOCOLS,l.EDITOR_DEFAULT_LINK_PREFIX),this.linkDialogOpen=!1},onMousedown(t){this.$refs.richTextEditor.$el.querySelector(".tiptap").contains(t.target)||(t.preventDefault(),this.$refs.richTextEditor.focusEditor())},onDrop(t){const e=t.dataTransfer,i=Array.from(e.files);this.$emit("add-media",i)},onPaste(t){if(t.clipboardData.files.length){t.stopPropagation(),t.preventDefault();const e=[...t.clipboardData.files];this.$emit("paste-media",e)}},onSkinTone(t){this.$emit("skin-tone",t)},onSelectEmoji(t,e){t&&(t.shift_key||e(),this.$refs.richTextEditor.editor.commands.insertContent({type:"emoji",attrs:{code:t.shortname,image:t.image,name:t.name}}),this.$emit("selected-emoji",t))},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(t){this.$emit("update:value",t)},onTextInput(t){this.text=t,this.$emit("text-input",t)},onMarkdownInput(t){this.$emit("markdown-input",t)}}};var C=function(){var e=this,i=e._self._c;return i("div",{staticClass:"d-recipe-message-input",attrs:{"data-qa":"dt-recipe-message-input",role:"presentation"},on:{dragover:function(n){n.preventDefault()},drop:function(n){return n.preventDefault(),e.onDrop.apply(null,arguments)},paste:e.onPaste,mousedown:e.onMousedown}},[e._t("top"),e.richText?i("dt-recipe-message-input-topbar",{key:e.selectedText,attrs:{"bold-button-options":e.boldButtonOptions,"italic-button-options":e.italicButtonOptions,"strike-button-options":e.strikeButtonOptions,"bullet-list-button-options":e.bulletListButtonOptions,"ordered-list-button-options":e.orderedListButtonOptions,"block-quote-button-options":e.blockQuoteButtonOptions,"code-button-options":e.codeButtonOptions,"code-block-button-options":e.codeBlockButtonOptions,"is-selection-active":e.isSelectionActive},on:{click:e.handleTopbarClick},scopedSlots:e._u([{key:"link",fn:function(){return[i("dt-recipe-message-input-link",{ref:"link",attrs:{open:e.linkDialogOpen,"link-button-options":e.linkButtonOptions,"is-selection-active":e.isSelectionActive},on:{opened:e.linkDialogOpened,"set-link":e.setLink,"remove-link":e.removeLink}})]},proxy:!0}],null,!1,1527282285)}):e._e(),i("div",{directives:[{name:"dt-scrollbar",rawName:"v-dt-scrollbar"}],staticClass:"d-recipe-message-input__editor-wrapper",style:{"max-height":e.maxHeight}},[i("dt-rich-text-editor",e._g(e._b({ref:"richTextEditor",attrs:{editable:e.editable,"input-aria-label":e.inputAriaLabel,"input-class":e.inputClass,"output-format":e.outputFormat,"auto-focus":e.autoFocus,link:e.richText,placeholder:e.placeholder,"prevent-typing":e.preventTyping,"mention-suggestion":e.mentionSuggestion,"channel-suggestion":e.channelSuggestion,"slash-command-suggestion":e.slashCommandSuggestion,"paste-rich-text":e.richText,"allow-blockquote":e.richText,"allow-bold":e.richText,"allow-bullet-list":e.richText,"allow-code":e.richText,"allow-codeblock":e.richText,"allow-italic":e.richText,"allow-strike":e.richText,"allow-underline":e.richText,"additional-extensions":e.additionalExtensions,"hide-link-bubble-menu":e.hideLinkBubbleMenu},on:{input:e.onInput,"text-input":e.onTextInput,"markdown-input":e.onMarkdownInput,enter:e.onSend,selected:function(n){e.selectedText=n},"selected-command":function(n){return e.$emit("selected-command",n)},"edit-link":e.initLinkDialog,focus:function(n){e.isFocused=!0},blur:function(n){e.isFocused=!1}},model:{value:e.internalInputValue,callback:function(n){e.internalInputValue=n},expression:"internalInputValue"}},"dt-rich-text-editor",e.$attrs,!1),e.$listeners))],1),e._t("middle"),i("section",{staticClass:"d-recipe-message-input__bottom-section"},[i("div",{staticClass:"d-recipe-message-input__bottom-section-left"},[i("dt-stack",{attrs:{direction:"row",gap:"200"}},[e.showImagePicker?i("dt-button",{directives:[{name:"dt-tooltip",rawName:"v-dt-tooltip:top-start",value:e.imagePickerButtonLabel,expression:"imagePickerButtonLabel",arg:"top-start"}],staticClass:"d-recipe-message-input__button",attrs:{"data-qa":"dt-recipe-message-input-image-btn",size:"sm",kind:"muted",importance:"clear","aria-label":e.imagePickerButtonLabel},on:{click:e.onSelectImage,mouseenter:function(n){e.imagePickerFocus=!0},mouseleave:function(n){e.imagePickerFocus=!1},focus:function(n){e.imagePickerFocus=!0},blur:function(n){e.imagePickerFocus=!1}},scopedSlots:e._u([{key:"icon",fn:function(){return[i("dt-icon-image",{attrs:{size:"300"}})]},proxy:!0}],null,!1,4195307205)}):e._e(),i("dt-input",{ref:"messageInputImageUpload",staticClass:"d-recipe-message-input__image-input",attrs:{"data-qa":"dt-recipe-message-input-image-input",accept:"image/*, video/*",type:"file",multiple:"",hidden:""},on:{input:e.onImageUpload}}),e.showEmojiPicker?i("dt-popover",{attrs:{"open.sync":"emojiPickerOpened","data-qa":"dt-recipe-message-input-emoji-picker-popover","initial-focus-element":"#searchInput",padding:"none"},scopedSlots:e._u([{key:"anchor",fn:function({attrs:n}){return[i("dt-button",e._b({directives:[{name:"dt-tooltip",rawName:"v-dt-tooltip",value:e.emojiPickerButtonLabel,expression:"emojiPickerButtonLabel"}],staticClass:"d-recipe-message-input__button",attrs:{"data-qa":"dt-recipe-message-input-emoji-picker-btn",size:"sm",kind:"muted",importance:"clear","aria-label":e.emojiPickerButtonLabel},on:{click:e.toggleEmojiPicker,mouseenter:function(o){e.emojiPickerFocus=!0},mouseleave:function(o){e.emojiPickerFocus=!1},focus:function(o){e.emojiPickerFocus=!0},blur:function(o){e.emojiPickerFocus=!1}},scopedSlots:e._u([{key:"icon",fn:function(){return[e.emojiPickerHovered?i("dt-icon-very-satisfied",{attrs:{size:"300"}}):i("dt-icon-satisfied",{attrs:{size:"300"}})]},proxy:!0}],null,!0)},"dt-button",n,!1))]}},{key:"content",fn:function({close:n}){return[i("dt-emoji-picker",e._b({on:{"add-emoji":function(o){return e.$emit("add-emoji")},"skin-tone":e.onSkinTone,"selected-emoji":o=>e.onSelectEmoji(o,n),"scroll-bottom-reached":function(o){return e.$emit("emoji-scroll-bottom-reached")}}},"dt-emoji-picker",e.emojiPickerProps,!1))]}}],null,!1,2616934230)}):e._e(),e._t("emojiGiphyPicker"),e._t("customActionIcons")],2)],1),i("div",{staticClass:"d-recipe-message-input__bottom-section-right"},[i("dt-stack",{attrs:{direction:"row",gap:"300"}},[i("div",{staticClass:"d-recipe-message-input__schedule-message"},[e._t("scheduleMessage")],2),i("div",{staticClass:"d-recipe-message-input__sms-count"},[e._t("smsCount")],2),e.showCharacterLimit?i("dt-tooltip",{staticClass:"d-recipe-message-input__remaining-char-tooltip",attrs:{placement:"top-end",enabled:e.characterLimitTooltipEnabled,message:e.showCharacterLimit.message,offset:[10,8]},scopedSlots:e._u([{key:"anchor",fn:function(){return[i("p",{directives:[{name:"show",rawName:"v-show",value:e.displayCharacterLimitWarning,expression:"displayCharacterLimitWarning"}],staticClass:"d-recipe-message-input__remaining-char",attrs:{"data-qa":"dt-recipe-message-input-character-limit"}},[e._v(" "+e._s(e.showCharacterLimit.count-e.inputLength)+" ")])]},proxy:!0}],null,!1,1021505058)}):e._e(),e.showCancel?i("dt-button",{directives:[{name:"dt-tooltip",rawName:"v-dt-tooltip",value:e.cancelButtonLabel,expression:"cancelButtonLabel"}],staticClass:"d-recipe-message-input__button d-recipe-message-input__cancel-button",attrs:{"data-qa":"dt-recipe-message-input-cancel-button",size:"sm",kind:"muted",importance:"clear","aria-label":e.cancelButtonLabel},on:{click:e.onCancel}},[i("p",[e._v(e._s(e.cancelButtonLabel))])]):e._e(),e._t("sendButton",function(){return[e.showSend?i("dt-button",{directives:[{name:"dt-tooltip",rawName:"v-dt-tooltip:top-end",value:e.sendButtonLabel,expression:"sendButtonLabel",arg:"top-end"}],class:["d-recipe-message-input__button d-recipe-message-input__send-button",{"d-recipe-message-input__send-button--disabled":e.isSendDisabled,"d-btn--icon-only":e.showSendIcon}],attrs:{"data-qa":"dt-recipe-message-input-send-btn",size:"sm",kind:"default",importance:"primary","aria-label":e.sendButtonLabel,"aria-disabled":e.isSendDisabled},on:{click:e.onSend},scopedSlots:e._u([e.showSendIcon?{key:"icon",fn:function(){return[e._t("sendIcon",function(){return[i("dt-icon-send",{attrs:{size:e.sendIconSize}})]},{iconSize:e.sendIconSize})]},proxy:!0}:null],null,!0)},[e.showSend.text?[i("p",[e._v(e._s(e.showSend.text))])]:e._e()],2):e._e()]})],2)],1)])],2)},E=[],P=d.n(w,C,E);const D=P.exports;exports.default=D; //# sourceMappingURL=message-input.cjs.map