UNPKG

@dialpad/dialtone

Version:

Dialpad's Dialtone design system monorepo

1 lines 20.9 kB
{"version":3,"file":"general_row.vue.cjs","sources":["../../../../recipes/leftbar/general_row/general_row.vue"],"sourcesContent":["<template>\n <div\n :class=\"leftbarGeneralRowClasses\"\n v-bind=\"addClassStyleAttrs($attrs)\"\n data-qa=\"dt-recipe-leftbar-row\"\n >\n <a\n class=\"d-recipe-leftbar-row__primary\"\n :data-qa=\"'data-qa' in $attrs ? $attrs['data-qa'] : 'd-recipe-leftbar-row-link'\"\n :aria-label=\"getAriaLabel\"\n :title=\"description\"\n :href=\"'href' in $attrs ? $attrs.href : 'javascript:void(0)'\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n v-on=\"generalRowListeners\"\n >\n <div\n class=\"d-recipe-leftbar-row__alpha\"\n >\n <div\n v-if=\"isTyping\"\n class=\"d-recipe-leftbar-row__is-typing\"\n >\n <span /><span /><span />\n </div>\n <slot\n v-else\n name=\"left\"\n >\n <dt-recipe-leftbar-general-row-icon\n :type=\"getIcon\"\n :color=\"color\"\n :icon-size=\"iconSize\"\n data-qa=\"dt-recipe-leftbar-row-icon\"\n />\n </slot>\n </div>\n <div\n class=\"d-recipe-leftbar-row__label\"\n :style=\"`flex-basis: ${labelWidth}`\"\n >\n <slot name=\"label\">\n <dt-emoji-text-wrapper\n class=\"d-recipe-leftbar-row__description\"\n data-qa=\"dt-recipe-leftbar-row-description\"\n size=\"200\"\n >\n {{ description }}\n </dt-emoji-text-wrapper>\n </slot>\n </div>\n </a>\n <div\n v-if=\"hasActions\"\n class=\"d-recipe-leftbar-row__omega\"\n >\n <dt-tooltip\n v-if=\"dndText\"\n placement=\"top\"\n :message=\"dndTextTooltip\"\n >\n <template #anchor>\n <div\n ref=\"d-recipe-leftbar-row-dnd\"\n class=\"d-recipe-leftbar-row__dnd\"\n data-qa=\"dt-recipe-leftbar-row-dnd\"\n >\n {{ dndText }}\n </div>\n </template>\n </dt-tooltip>\n <div\n v-if=\"activeVoiceChat\"\n class=\"d-recipe-leftbar-row__active-voice\"\n >\n <dt-icon-waveform\n size=\"300\"\n />\n </div>\n <dt-tooltip\n v-else-if=\"showUnreadCount || showUnreadMentionCount\"\n :message=\"unreadCountTooltip\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-badge\n v-if=\"showUnreadCount\"\n kind=\"count\"\n type=\"bulletin\"\n data-qa=\"dt-recipe-leftbar-row-unread-badge\"\n :class=\"['d-recipe-leftbar-row__unread-badge', {\n 'd-recipe-leftbar-row__unread-count-badge':\n shouldApplyCustomStyleForCountBadge,\n }]\"\n >\n {{ unreadCount }}\n </dt-badge>\n <dt-badge\n v-if=\"showUnreadMentionCount\"\n kind=\"count\"\n type=\"bulletin\"\n data-qa=\"dt-recipe-leftbar-row-unread-mention-badge\"\n :class=\"['d-recipe-leftbar-row__unread-badge',\n { 'd-recipe-leftbar-row__unread-mention-count-badge': shouldApplyCustomStyleForCountBadge },\n { 'd-recipe-leftbar-row__unread-mention-only-count-badge': shouldApplyCustomStyleForMentionOnly },\n ]\"\n >\n {{ unreadMentionCount }}\n </dt-badge>\n </template>\n </dt-tooltip>\n <div\n v-if=\"hasCallButton\"\n class=\"d-recipe-leftbar-row__action\"\n data-qa=\"dt-recipe-leftbar-row-action\"\n >\n <dt-tooltip\n :message=\"callButtonTooltip\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n class=\"d-recipe-leftbar-row__action-button\"\n data-qa=\"dt-recipe-leftbar-row-action-call-button\"\n :circle=\"true\"\n size=\"xs\"\n kind=\"inverted\"\n :aria-label=\"callButtonTooltip\"\n @focus=\"actionFocused = true\"\n @blur=\"actionFocused = false\"\n @click.stop=\"$emit('call', $event)\"\n >\n <template #icon>\n <dt-icon-phone\n size=\"200\"\n />\n </template>\n </dt-button>\n </template>\n </dt-tooltip>\n </div>\n </div>\n </div>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport {\n LEFTBAR_GENERAL_ROW_TYPES,\n LEFTBAR_GENERAL_ROW_CONTACT_CENTER_COLORS,\n LEFTBAR_GENERAL_ROW_CONTACT_CENTER_VALIDATION_ERROR,\n LEFTBAR_GENERAL_ROW_ICON_SIZES,\n} from './general_row_constants';\nimport { DtBadge } from '@/components/badge';\nimport { DtIconPhone, DtIconWaveform } from '@dialpad/dialtone-icons/vue3';\nimport { DtButton } from '@/components/button';\nimport { DtTooltip } from '@/components/tooltip';\nimport DtEmojiTextWrapper from '@/components/emoji_text_wrapper/emoji_text_wrapper.vue';\nimport DtRecipeLeftbarGeneralRowIcon from './leftbar_general_row_icon.vue';\nimport { extractVueListeners, safeConcatStrings, removeClassStyleAttrs, returnFirstEl, addClassStyleAttrs } from '@/common/utils';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeGeneralRow',\n\n components: {\n DtEmojiTextWrapper,\n DtBadge,\n DtButton,\n DtTooltip,\n DtIconPhone,\n DtIconWaveform,\n DtRecipeLeftbarGeneralRowIcon,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Determines the icon to show.\n * If type is contact center, the color prop must be provided and will determine the color of the icon\n */\n type: {\n type: String,\n default: 'inbox',\n validator: (type) => {\n return Object.values(LEFTBAR_GENERAL_ROW_TYPES).includes(type);\n },\n },\n\n /**\n * Will be read out by a screen reader upon focus of this row. If not defined \"description\" will be read.\n */\n ariaLabel: {\n type: String,\n default: '',\n },\n\n /**\n * Text displayed next to the icon. Required. Even if you are overriding this field using the label slot\n * you still must input this as it will be displayed as the \"title\" attribute for the row.\n */\n description: {\n type: String,\n required: true,\n },\n\n /**\n * Determines the color of the contact center icon\n */\n color: {\n type: String,\n default: null,\n validator: (color) => {\n return Object.keys(LEFTBAR_GENERAL_ROW_CONTACT_CENTER_COLORS).includes(color);\n },\n },\n\n /**\n * The channel setting, either 'mention' or 'always'.\n * @values 'mention', 'always', null.\n */\n channelSetting: {\n type: String,\n default: null,\n },\n\n /**\n * Styles the row with an increased font weight to convey it has unreads. This must be true to see\n * the unread count badge.\n */\n hasUnreads: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Number of unread messages\n */\n unreadCount: {\n type: String,\n default: null,\n },\n\n /**\n * Number of unread mention messages\n */\n unreadMentionCount: {\n type: String,\n default: null,\n },\n\n /**\n * Text shown when the unread count is hovered.\n */\n unreadCountTooltip: {\n type: String,\n default: '',\n },\n\n /**\n * Determines if the row is selected\n */\n selected: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Gives a faded style to be used when muted\n */\n muted: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Shows styling to represent an active voice chat. This will display over unreadCount.\n */\n activeVoiceChat: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Acronym used to represent \"Do not Disturb\" state. If entered will display the entered text alongside\n * unreadCount.\n */\n dndText: {\n type: String,\n default: '',\n },\n\n /**\n * Text shown in tooltip when you hover the dndText\n */\n dndTextTooltip: {\n type: String,\n default: '',\n },\n\n /**\n * Whether the row should have a call button. Usually only applicable to individual contact rows.\n */\n hasCallButton: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Text shown when the call button is hovered.\n */\n callButtonTooltip: {\n type: String,\n default: '',\n },\n\n /**\n * Shows an \"is typing\" animation over the avatar when true.\n */\n isTyping: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Sets the size of the icon.\n */\n iconSize: {\n type: String,\n default: '300',\n validator: (size) => {\n return LEFTBAR_GENERAL_ROW_ICON_SIZES.includes(size);\n },\n },\n },\n\n emits: [\n /**\n * Call button clicked\n *\n * @event call\n * @type {PointerEvent | KeyboardEvent}\n */\n 'call',\n ],\n\n data () {\n return {\n actionFocused: false,\n labelWidth: '100%',\n };\n },\n\n computed: {\n leftbarGeneralRowClasses () {\n return [\n 'd-recipe-leftbar-row',\n {\n 'd-recipe-leftbar-row--no-action': !this.hasCallButton,\n 'd-recipe-leftbar-row--has-unread': this.hasUnreads,\n 'd-recipe-leftbar-row__unread-count': this.showUnreadCount || this.showUnreadMentionCount,\n 'd-recipe-leftbar-row--selected': this.selected,\n 'd-recipe-leftbar-row--muted': this.muted,\n 'd-recipe-leftbar-row--action-focused': this.actionFocused,\n },\n ];\n },\n\n getIcon () {\n switch (this.type) {\n case LEFTBAR_GENERAL_ROW_TYPES.CHANNELS:\n if (this.hasUnreads) return 'channel unread';\n break;\n case LEFTBAR_GENERAL_ROW_TYPES.LOCKED_CHANNEL:\n if (this.hasUnreads) return 'locked channel unread';\n break;\n }\n return this.type;\n },\n\n generalRowListeners () {\n return extractVueListeners(this.$attrs);\n },\n\n getAriaLabel () {\n return this.ariaLabel\n ? this.ariaLabel\n : safeConcatStrings([this.description, this.unreadCountTooltip, this.dndTextTooltip]);\n },\n\n hasActions () {\n return this.dndText || this.activeVoiceChat || this.showUnreadCount || this.hasCallButton ||\n this.showUnreadMentionCount;\n },\n\n showUnreadCount () {\n return !!this.unreadCount && this.hasUnreads;\n },\n\n showUnreadMentionCount () {\n return !!this.unreadMentionCount && this.hasUnreads;\n },\n\n hasUnreadCount () {\n return this.unreadCount !== null;\n },\n\n hasUnreadMentionCount () {\n return this.unreadMentionCount !== null;\n },\n\n shouldApplyCustomStyleForCountBadge () {\n return this.hasUnreadCount && this.hasUnreadMentionCount;\n },\n\n /**\n * When a channel in 'always' setting, meaning the user should see both unread count and unread mention count,\n * if there are only mention messages, we should apply the theme design tokens var(--dt-theme-mention-color-[background||foreground]-strong).\n * @returns {boolean}\n */\n shouldApplyCustomStyleForMentionOnly () {\n return this.channelSetting === 'always' && !this.hasUnreadCount && this.hasUnreadMentionCount;\n },\n },\n\n watch: {\n $props: {\n immediate: true,\n deep: true,\n async handler () {\n this.validateProps();\n await this.$nextTick();\n this.adjustLabelWidth();\n },\n },\n },\n\n mounted () {\n this.resizeObserver = new ResizeObserver(this.adjustLabelWidth);\n this.resizeObserver.observe(returnFirstEl(this.$el));\n this.adjustLabelWidth();\n },\n\n beforeUnmount: function () {\n this.resizeObserver.disconnect();\n },\n\n methods: {\n removeClassStyleAttrs,\n addClassStyleAttrs,\n\n validateProps () {\n if (this.type === LEFTBAR_GENERAL_ROW_TYPES.CONTACT_CENTER &&\n !Object.keys(LEFTBAR_GENERAL_ROW_CONTACT_CENTER_COLORS).includes(this.color)) {\n console.error(LEFTBAR_GENERAL_ROW_CONTACT_CENTER_VALIDATION_ERROR);\n }\n },\n\n adjustLabelWidth () {\n const labelWidth = returnFirstEl(this.$el)?.querySelector('.d-recipe-leftbar-row__primary')?.clientWidth || 0;\n const omegaWidth = returnFirstEl(this.$el)?.querySelector('.d-recipe-leftbar-row__omega')?.clientWidth || 0;\n const alphaWidth = returnFirstEl(this.$el)?.querySelector('.d-recipe-leftbar-row__alpha')?.clientWidth || 0;\n const paddings = 16;\n this.labelWidth = labelWidth - (omegaWidth + alphaWidth + paddings) + 'px';\n },\n },\n};\n</script>\n"],"names":["DtEmojiTextWrapper","DtBadge","DtButton","DtTooltip","DtIconPhone","DtIconWaveform","DtRecipeLeftbarGeneralRowIcon","LEFTBAR_GENERAL_ROW_TYPES","LEFTBAR_GENERAL_ROW_CONTACT_CENTER_COLORS","LEFTBAR_GENERAL_ROW_ICON_SIZES","extractVueListeners","safeConcatStrings","returnFirstEl","removeClassStyleAttrs","addClassStyleAttrs","LEFTBAR_GENERAL_ROW_CONTACT_CENTER_VALIDATION_ERROR","_createElementVNode","_openBlock","_createElementBlock","_mergeProps","_toHandlers","_renderSlot","_createVNode","_normalizeStyle","_withCtx","_createTextVNode","_toDisplayString","_createBlock","_createCommentVNode","_normalizeClass","_withModifiers"],"mappings":"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"}