UNPKG

@dialpad/dialtone-vue

Version:

Vue component library for Dialpad's design system Dialtone

1 lines 6.75 kB
{"version":3,"file":"message-input-link.cjs","sources":["../../../recipes/conversation_view/message_input/message_input_link.vue"],"sourcesContent":["<template>\n <dt-popover\n :open=\"isOpen\"\n placement=\"bottom-start\"\n content-class=\"d-recipe-message-input__link-popover\"\n data-qa=\"dt-message-input-link-popover\"\n :show-close-button=\"false\"\n @opened=\"$emit('opened', $event)\"\n >\n <template #anchor>\n <dt-recipe-message-input-button\n :aria-label=\"anchorButtonLabel['aria-label']\"\n :tooltip-text=\"anchorButtonLabel['tooltip-text']\"\n :keyboard-shortcut-text=\"linkButtonOptions.keyboardShortcutText\"\n data-qa=\"message-input-link-btn\"\n :is-active=\"isSelectionActive('link')\"\n @click=\"isOpen = true\"\n >\n <template #icon>\n <dt-icon-link2\n class=\"d-recipe-message-input__button-stack-icon\"\n size=\"200\"\n />\n </template>\n </dt-recipe-message-input-button>\n </template>\n\n <template #content>\n <dt-stack gap=\"500\">\n <div\n class=\"d-recipe-message-input__link-dialog-title\"\n >\n {{ i18n.$t('DIALTONE_MESSAGE_INPUT_LINK_DIALOG_TITLE') }}\n </div>\n <dt-input\n v-model=\"linkText\"\n :input-aria-label=\"textInputLabel\"\n size=\"xs\"\n data-qa=\"dt-message-input-link-text-input\"\n :label=\"textInputLabel\"\n input-wrapper-class=\"d-recipe-message-input__link-input\"\n @click.stop\n @click.native.stop\n @focus.stop\n @keydown.enter=\"$emit('set-link', linkText, linkInput)\"\n />\n <dt-input\n v-model=\"linkInput\"\n :input-aria-label=\"linkInputLabel\"\n size=\"xs\"\n data-qa=\"dt-message-input-link-input\"\n :placeholder=\"linkInputPlaceHolder\"\n :label=\"linkInputLabel\"\n input-wrapper-class=\"d-recipe-message-input__link-input\"\n @click.stop\n @click.native.stop\n @focus.stop\n @keydown.enter=\"$emit('set-link', linkText, linkInput)\"\n />\n <dt-stack\n direction=\"row\"\n class=\"d-recipe-message-input__link-dialog-buttons\"\n >\n <dt-button\n :aria-label=\"removeButtonLabel\"\n :title=\"removeButtonLabel\"\n importance=\"clear\"\n kind=\"danger\"\n size=\"md\"\n data-qa=\"dt-message-input-link-remove-btn\"\n @click=\"$emit('remove-link', linkText, linkInput)\"\n >\n {{ removeButtonLabel }}\n </dt-button>\n <dt-stack\n direction=\"row\"\n gap=\"400\"\n >\n <dt-button\n :aria-label=\"cancelButtonLabel\"\n :title=\"cancelButtonLabel\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"md\"\n data-qa=\"dt-message-input-link-cancel-btn\"\n @click=\"isOpen = false\"\n >\n {{ cancelButtonLabel }}\n </dt-button>\n <dt-button\n size=\"md\"\n :aria-label=\"confirmButtonLabel\"\n :title=\"confirmButtonLabel\"\n data-qa=\"dt-message-input-link-confirm-btn\"\n @click=\"$emit('set-link', linkText, linkInput)\"\n >\n {{ confirmButtonLabel }}\n </dt-button>\n </dt-stack>\n </dt-stack>\n </dt-stack>\n </template>\n </dt-popover>\n</template>\n\n<script>\nimport { DtPopover } from '@/components/popover';\nimport { DtInput } from '@/components/input';\nimport { DtButton } from '@/components/button';\nimport { DtStack } from '@/components/stack';\nimport { DtIconLink2 } from '@dialpad/dialtone-icons/vue2';\nimport DtRecipeMessageInputButton from './message_input_button.vue';\nimport { DialtoneLocalization } from '@/localization';\n\nexport default {\n name: 'MessageInputLink',\n\n components: {\n DtPopover,\n DtInput,\n DtButton,\n DtStack,\n DtIconLink2,\n DtRecipeMessageInputButton,\n },\n\n props: {\n open: {\n type: Boolean,\n default: false,\n },\n\n linkButtonOptions: {\n type: Object,\n required: true,\n },\n\n isSelectionActive: {\n type: Function,\n default: () => {},\n },\n },\n\n emits: ['set-link', 'remove-link', 'opened'],\n\n data () {\n return {\n linkText: '',\n linkInput: '',\n isOpen: false,\n i18n: new DialtoneLocalization(),\n };\n },\n\n computed: {\n anchorButtonLabel () { return this.i18n.$ta('DIALTONE_MESSAGE_INPUT_LINK_BUTTON_LABEL'); },\n textInputLabel () { return this.i18n.$t('DIALTONE_MESSAGE_INPUT_LINK_TEXT_LABEL'); },\n linkInputLabel () { return this.i18n.$t('DIALTONE_MESSAGE_INPUT_LINK_LINK_LABEL'); },\n linkInputPlaceHolder () { return this.i18n.$t('DIALTONE_MESSAGE_INPUT_LINK_LINK_PLACEHOLDER'); },\n removeButtonLabel () { return this.i18n.$t('DIALTONE_MESSAGE_INPUT_LINK_REMOVE_LABEL'); },\n cancelButtonLabel () { return this.i18n.$t('DIALTONE_MESSAGE_INPUT_LINK_CANCEL_LABEL'); },\n confirmButtonLabel () { return this.i18n.$t('DIALTONE_MESSAGE_INPUT_LINK_CONFIRM_LABEL'); },\n },\n\n watch: {\n open: {\n immediate: true,\n handler (value) {\n this.isOpen = value;\n },\n },\n },\n\n methods: {\n setInitialValues (linkText, linkInput) {\n this.linkText = linkText;\n this.linkInput = linkInput;\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtPopover","DtInput","DtButton","DtStack","DtIconLink2","DtRecipeMessageInputButton","DialtoneLocalization","value","linkText","linkInput"],"mappings":"4aAkHAA,EAAA,CACA,KAAA,mBAEA,WAAA,CACA,UAAAC,EAAAA,QACA,QAAAC,EAAAA,QACA,SAAAC,EAAAA,QACA,QAAAC,EAAAA,QACA,YAAAC,EAAAA,YACA,2BAAAC,EAAAA,OACA,EAEA,MAAA,CACA,KAAA,CACA,KAAA,QACA,QAAA,EACA,EAEA,kBAAA,CACA,KAAA,OACA,SAAA,EACA,EAEA,kBAAA,CACA,KAAA,SACA,QAAA,IAAA,CAAA,CACA,CACA,EAEA,MAAA,CAAA,WAAA,cAAA,QAAA,EAEA,MAAA,CACA,MAAA,CACA,SAAA,GACA,UAAA,GACA,OAAA,GACA,KAAA,IAAAC,EAAAA,oBACA,CACA,EAEA,SAAA,CACA,mBAAA,CAAA,OAAA,KAAA,KAAA,IAAA,0CAAA,CAAA,EACA,gBAAA,CAAA,OAAA,KAAA,KAAA,GAAA,wCAAA,CAAA,EACA,gBAAA,CAAA,OAAA,KAAA,KAAA,GAAA,wCAAA,CAAA,EACA,sBAAA,CAAA,OAAA,KAAA,KAAA,GAAA,8CAAA,CAAA,EACA,mBAAA,CAAA,OAAA,KAAA,KAAA,GAAA,0CAAA,CAAA,EACA,mBAAA,CAAA,OAAA,KAAA,KAAA,GAAA,0CAAA,CAAA,EACA,oBAAA,CAAA,OAAA,KAAA,KAAA,GAAA,2CAAA,CAAA,CACA,EAEA,MAAA,CACA,KAAA,CACA,UAAA,GACA,QAAAC,EAAA,CACA,KAAA,OAAAA,CACA,CACA,CACA,EAEA,QAAA,CACA,iBAAAC,EAAAC,EAAA,CACA,KAAA,SAAAD,EACA,KAAA,UAAAC,CACA,CACA,CACA"}