@dialpad/dialtone
Version:
Dialpad's Dialtone design system monorepo
107 lines (106 loc) • 3.19 kB
JavaScript
"use strict";
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
const vue3 = require("@dialpad/dialtone-icons/vue3");
const common_utils = require("../../../common/utils.cjs");
const vue = require("vue");
const _pluginVue_exportHelper = require("../../../_virtual/_plugin-vue_export-helper.cjs");
const general_row = require("../general_row/general_row.vue.cjs");
const _sfc_main = {
compatConfig: { MODE: 3 },
name: "DtRecipeGroupRow",
components: {
DtIconUsers: vue3.DtIconUsers,
DtRecipeGeneralRow: general_row.default
},
inheritAttrs: false,
props: {
/**
* Screen reader will read out the number of users in the group using this text. Ex: "2 users"
*/
groupCountText: {
type: String,
default: ""
},
/**
* Names of the group members
*/
names: {
type: String,
required: true
},
/**
* Number of unread messages
*/
unreadCount: {
type: String,
default: null
},
/**
* Number of unread mention messages
*/
unreadMentionCount: {
type: String,
default: null
},
/**
* Text shown when the unread count is hovered.
*/
unreadCountTooltip: {
type: String,
default: null
},
/**
* Styles the row with an increased font weight to convey it has unreads. This must be true to see
* the unread count badge.
*/
hasUnreads: {
type: Boolean,
default: false
},
/**
* Determines if the row is selected
*/
selected: {
type: Boolean,
default: false
},
/**
* Shows an "is typing" animation over the avatar when true.
*/
isTyping: {
type: Boolean,
default: false
}
},
emits: [],
computed: {
ariaLabel() {
return common_utils.safeConcatStrings([this.groupCountText, this.names]);
},
contactRowListeners() {
return common_utils.extractVueListeners(this.$attrs);
}
}
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_dt_icon_users = vue.resolveComponent("dt-icon-users");
const _component_dt_recipe_general_row = vue.resolveComponent("dt-recipe-general-row");
return vue.openBlock(), vue.createBlock(_component_dt_recipe_general_row, vue.mergeProps({
description: $props.names,
"aria-label": $options.ariaLabel,
"unread-count": $props.unreadCount,
"has-unreads": $props.hasUnreads,
"unread-mention-count": $props.unreadMentionCount,
"unread-count-tooltip": $props.unreadCountTooltip,
selected: $props.selected,
"is-typing": $props.isTyping
}, _ctx.$attrs, vue.toHandlers($options.contactRowListeners)), {
left: vue.withCtx(() => [
vue.createVNode(_component_dt_icon_users, { size: "300" })
]),
_: 1
}, 16, ["description", "aria-label", "unread-count", "has-unreads", "unread-mention-count", "unread-count-tooltip", "selected", "is-typing"]);
}
const group_row = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["render", _sfc_render]]);
exports.default = group_row;
//# sourceMappingURL=group_row.vue.cjs.map