@dialpad/dialtone 9.71.0-beta.2 → 9.72.0
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/css/dialtone-default-theme.css +518 -369
- package/dist/css/dialtone-default-theme.min.css +1 -1
- package/dist/css/dialtone.css +430 -361
- package/dist/css/dialtone.min.css +1 -1
- package/dist/css/tokens/tokens-base-dark.css +1 -0
- package/dist/css/tokens/tokens-base-light.css +1 -0
- package/dist/css/tokens/tokens-dp-dark.css +87 -8
- package/dist/css/tokens/tokens-dp-light.css +87 -8
- package/dist/css/tokens/tokens-expressive-dark.css +41 -7
- package/dist/css/tokens/tokens-expressive-light.css +41 -7
- package/dist/css/tokens/tokens-expressive-sm-dark.css +41 -7
- package/dist/css/tokens/tokens-expressive-sm-light.css +41 -7
- package/dist/css/tokens/tokens-tmo-dark.css +42 -8
- package/dist/css/tokens/tokens-tmo-light.css +42 -8
- package/dist/tokens/css/tokens-base-dark.css +1 -0
- package/dist/tokens/css/tokens-base-light.css +1 -0
- package/dist/tokens/css/tokens-dp-dark.css +87 -8
- package/dist/tokens/css/tokens-dp-light.css +87 -8
- package/dist/tokens/css/tokens-expressive-dark.css +41 -7
- package/dist/tokens/css/tokens-expressive-light.css +41 -7
- package/dist/tokens/css/tokens-expressive-sm-dark.css +41 -7
- package/dist/tokens/css/tokens-expressive-sm-light.css +41 -7
- package/dist/tokens/css/tokens-tmo-dark.css +42 -8
- package/dist/tokens/css/tokens-tmo-light.css +42 -8
- package/dist/tokens/doc.json +28982 -19944
- package/dist/tokens/less/tokens-base-dark.less +1 -0
- package/dist/tokens/less/tokens-base-light.less +1 -0
- package/dist/tokens/less/tokens-dp-dark.less +75 -6
- package/dist/tokens/less/tokens-dp-light.less +75 -6
- package/dist/tokens/less/tokens-expressive-dark.less +34 -5
- package/dist/tokens/less/tokens-expressive-light.less +34 -5
- package/dist/tokens/less/tokens-expressive-sm-dark.less +34 -5
- package/dist/tokens/less/tokens-expressive-sm-light.less +34 -5
- package/dist/tokens/less/tokens-tmo-dark.less +35 -6
- package/dist/tokens/less/tokens-tmo-light.less +35 -6
- package/dist/tokens/themes/chunks/tokens-base-dark-BEsKKfTV.js +4 -0
- package/dist/tokens/themes/chunks/tokens-base-dark-Bxzti7ig.js +1 -0
- package/dist/tokens/themes/chunks/tokens-base-light-DV0xl0Dv.js +1 -0
- package/dist/tokens/themes/chunks/tokens-base-light-jdZ77WhZ.js +4 -0
- package/dist/tokens/themes/dp-dark.cjs +1 -1
- package/dist/tokens/themes/dp-dark.js +5 -5
- package/dist/tokens/themes/dp-light.cjs +1 -1
- package/dist/tokens/themes/dp-light.js +5 -5
- package/dist/tokens/themes/expressive-dark.cjs +1 -1
- package/dist/tokens/themes/expressive-dark.js +2 -2
- package/dist/tokens/themes/expressive-light.cjs +1 -1
- package/dist/tokens/themes/expressive-light.js +4 -4
- package/dist/tokens/themes/expressive-sm-dark.cjs +1 -1
- package/dist/tokens/themes/expressive-sm-dark.js +2 -2
- package/dist/tokens/themes/expressive-sm-light.cjs +1 -1
- package/dist/tokens/themes/expressive-sm-light.js +4 -4
- package/dist/tokens/themes/tmo-dark.cjs +1 -1
- package/dist/tokens/themes/tmo-dark.js +4 -4
- package/dist/tokens/themes/tmo-light.cjs +1 -1
- package/dist/tokens/themes/tmo-light.js +4 -4
- package/dist/tokens/tokens-base-dark.json +1 -0
- package/dist/tokens/tokens-base-light.json +1 -0
- package/dist/tokens/tokens-dp-dark.json +70 -1
- package/dist/tokens/tokens-dp-light.json +70 -1
- package/dist/tokens/tokens-expressive-dark.json +30 -1
- package/dist/tokens/tokens-expressive-light.json +30 -1
- package/dist/tokens/tokens-expressive-sm-dark.json +30 -1
- package/dist/tokens/tokens-expressive-sm-light.json +30 -1
- package/dist/tokens/tokens-tmo-dark.json +30 -1
- package/dist/tokens/tokens-tmo-light.json +30 -1
- package/dist/vue2/components/emoji_picker/modules/emoji_search.vue.cjs +3 -3
- package/dist/vue2/components/emoji_picker/modules/emoji_search.vue.cjs.map +1 -1
- package/dist/vue2/components/emoji_picker/modules/emoji_search.vue.js +3 -3
- package/dist/vue2/components/emoji_picker/modules/emoji_search.vue.js.map +1 -1
- package/dist/vue2/components/emoji_picker/modules/emoji_tabset.vue.cjs +1 -1
- package/dist/vue2/components/emoji_picker/modules/emoji_tabset.vue.cjs.map +1 -1
- package/dist/vue2/components/emoji_picker/modules/emoji_tabset.vue.js +1 -1
- package/dist/vue2/components/emoji_picker/modules/emoji_tabset.vue.js.map +1 -1
- package/dist/vue3/common/sr_only_close_button.vue.cjs +4 -4
- package/dist/vue3/common/sr_only_close_button.vue.cjs.map +1 -1
- package/dist/vue3/common/sr_only_close_button.vue.js +4 -4
- package/dist/vue3/common/sr_only_close_button.vue.js.map +1 -1
- package/dist/vue3/common/storybook_utils.cjs +8 -0
- package/dist/vue3/common/storybook_utils.cjs.map +1 -0
- package/dist/vue3/common/storybook_utils.js +8 -0
- package/dist/vue3/common/storybook_utils.js.map +1 -0
- package/dist/vue3/component-documentation.json +1 -1
- package/dist/vue3/components/avatar/avatar.vue.cjs +41 -30
- package/dist/vue3/components/avatar/avatar.vue.cjs.map +1 -1
- package/dist/vue3/components/avatar/avatar.vue.js +43 -32
- package/dist/vue3/components/avatar/avatar.vue.js.map +1 -1
- package/dist/vue3/components/chip/chip.vue.cjs +7 -4
- package/dist/vue3/components/chip/chip.vue.cjs.map +1 -1
- package/dist/vue3/components/chip/chip.vue.js +7 -4
- package/dist/vue3/components/chip/chip.vue.js.map +1 -1
- package/dist/vue3/components/collapsible/collapsible.vue.cjs +6 -12
- package/dist/vue3/components/collapsible/collapsible.vue.cjs.map +1 -1
- package/dist/vue3/components/collapsible/collapsible.vue.js +6 -12
- package/dist/vue3/components/collapsible/collapsible.vue.js.map +1 -1
- package/dist/vue3/components/datepicker/modules/month-year-picker.vue.cjs +17 -5
- package/dist/vue3/components/datepicker/modules/month-year-picker.vue.cjs.map +1 -1
- package/dist/vue3/components/datepicker/modules/month-year-picker.vue.js +17 -5
- package/dist/vue3/components/datepicker/modules/month-year-picker.vue.js.map +1 -1
- package/dist/vue3/components/emoji_picker/modules/emoji_search.vue.cjs +12 -3
- package/dist/vue3/components/emoji_picker/modules/emoji_search.vue.cjs.map +1 -1
- package/dist/vue3/components/emoji_picker/modules/emoji_search.vue.js +12 -3
- package/dist/vue3/components/emoji_picker/modules/emoji_search.vue.js.map +1 -1
- package/dist/vue3/components/emoji_picker/modules/emoji_tabset.vue.cjs +1 -0
- package/dist/vue3/components/emoji_picker/modules/emoji_tabset.vue.cjs.map +1 -1
- package/dist/vue3/components/emoji_picker/modules/emoji_tabset.vue.js +1 -0
- package/dist/vue3/components/emoji_picker/modules/emoji_tabset.vue.js.map +1 -1
- package/dist/vue3/components/image_viewer/image_viewer.vue.cjs +5 -4
- package/dist/vue3/components/image_viewer/image_viewer.vue.cjs.map +1 -1
- package/dist/vue3/components/image_viewer/image_viewer.vue.js +5 -4
- package/dist/vue3/components/image_viewer/image_viewer.vue.js.map +1 -1
- package/dist/vue3/components/list_item/list_item.vue.cjs +5 -4
- package/dist/vue3/components/list_item/list_item.vue.cjs.map +1 -1
- package/dist/vue3/components/list_item/list_item.vue.js +5 -4
- package/dist/vue3/components/list_item/list_item.vue.js.map +1 -1
- package/dist/vue3/components/modal/modal.vue.cjs +7 -4
- package/dist/vue3/components/modal/modal.vue.cjs.map +1 -1
- package/dist/vue3/components/modal/modal.vue.js +7 -4
- package/dist/vue3/components/modal/modal.vue.js.map +1 -1
- package/dist/vue3/components/notice/notice_action.vue.cjs +7 -4
- package/dist/vue3/components/notice/notice_action.vue.cjs.map +1 -1
- package/dist/vue3/components/notice/notice_action.vue.js +7 -4
- package/dist/vue3/components/notice/notice_action.vue.js.map +1 -1
- package/dist/vue3/components/pagination/pagination.vue.cjs +15 -10
- package/dist/vue3/components/pagination/pagination.vue.cjs.map +1 -1
- package/dist/vue3/components/pagination/pagination.vue.js +15 -10
- package/dist/vue3/components/pagination/pagination.vue.js.map +1 -1
- package/dist/vue3/components/popover/popover_header_footer.vue.cjs +7 -4
- package/dist/vue3/components/popover/popover_header_footer.vue.cjs.map +1 -1
- package/dist/vue3/components/popover/popover_header_footer.vue.js +7 -4
- package/dist/vue3/components/popover/popover_header_footer.vue.js.map +1 -1
- package/dist/vue3/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.cjs +5 -4
- package/dist/vue3/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.cjs.map +1 -1
- package/dist/vue3/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.js +5 -4
- package/dist/vue3/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.js.map +1 -1
- package/dist/vue3/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.cjs +11 -7
- package/dist/vue3/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.cjs.map +1 -1
- package/dist/vue3/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.js +11 -7
- package/dist/vue3/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.js.map +1 -1
- package/dist/vue3/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.cjs +7 -4
- package/dist/vue3/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.cjs.map +1 -1
- package/dist/vue3/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.js +7 -4
- package/dist/vue3/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.js.map +1 -1
- package/dist/vue3/recipes/conversation_view/feed_item_row/feed_item_row.vue.cjs +7 -14
- package/dist/vue3/recipes/conversation_view/feed_item_row/feed_item_row.vue.cjs.map +1 -1
- package/dist/vue3/recipes/conversation_view/feed_item_row/feed_item_row.vue.js +8 -15
- package/dist/vue3/recipes/conversation_view/feed_item_row/feed_item_row.vue.js.map +1 -1
- package/dist/vue3/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.cjs +6 -4
- package/dist/vue3/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.cjs.map +1 -1
- package/dist/vue3/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.js +6 -4
- package/dist/vue3/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.js.map +1 -1
- package/dist/vue3/recipes/header/settings_menu_button/settings_menu_button.vue.cjs +12 -6
- package/dist/vue3/recipes/header/settings_menu_button/settings_menu_button.vue.cjs.map +1 -1
- package/dist/vue3/recipes/header/settings_menu_button/settings_menu_button.vue.js +12 -6
- package/dist/vue3/recipes/header/settings_menu_button/settings_menu_button.vue.js.map +1 -1
- package/dist/vue3/recipes/item_layout/contact_info/contact_info.vue.cjs +7 -27
- package/dist/vue3/recipes/item_layout/contact_info/contact_info.vue.cjs.map +1 -1
- package/dist/vue3/recipes/item_layout/contact_info/contact_info.vue.js +8 -28
- package/dist/vue3/recipes/item_layout/contact_info/contact_info.vue.js.map +1 -1
- package/dist/vue3/recipes/leftbar/callbox/callbox.vue.cjs +4 -13
- package/dist/vue3/recipes/leftbar/callbox/callbox.vue.cjs.map +1 -1
- package/dist/vue3/recipes/leftbar/callbox/callbox.vue.js +5 -14
- package/dist/vue3/recipes/leftbar/callbox/callbox.vue.js.map +1 -1
- package/dist/vue3/recipes/leftbar/contact_row/contact_row.vue.cjs +7 -13
- package/dist/vue3/recipes/leftbar/contact_row/contact_row.vue.cjs.map +1 -1
- package/dist/vue3/recipes/leftbar/contact_row/contact_row.vue.js +8 -14
- package/dist/vue3/recipes/leftbar/contact_row/contact_row.vue.js.map +1 -1
- package/dist/vue3/recipes/leftbar/general_row/general_row.vue.cjs +13 -9
- package/dist/vue3/recipes/leftbar/general_row/general_row.vue.cjs.map +1 -1
- package/dist/vue3/recipes/leftbar/general_row/general_row.vue.js +13 -9
- package/dist/vue3/recipes/leftbar/general_row/general_row.vue.js.map +1 -1
- package/dist/vue3/recipes/leftbar/general_row/leftbar_general_row_icon.vue.cjs +5 -4
- package/dist/vue3/recipes/leftbar/general_row/leftbar_general_row_icon.vue.cjs.map +1 -1
- package/dist/vue3/recipes/leftbar/general_row/leftbar_general_row_icon.vue.js +5 -4
- package/dist/vue3/recipes/leftbar/general_row/leftbar_general_row_icon.vue.js.map +1 -1
- package/dist/vue3/recipes/leftbar/group_row/group_row.vue.cjs +7 -4
- package/dist/vue3/recipes/leftbar/group_row/group_row.vue.cjs.map +1 -1
- package/dist/vue3/recipes/leftbar/group_row/group_row.vue.js +7 -4
- package/dist/vue3/recipes/leftbar/group_row/group_row.vue.js.map +1 -1
- package/dist/vue3/style.css +111 -111
- package/dist/vue3/types/common/storybook_utils.d.ts +25 -0
- package/dist/vue3/types/common/storybook_utils.d.ts.map +1 -0
- package/dist/vue3/types/components/avatar/avatar.vue.d.ts +34 -6
- package/dist/vue3/types/components/avatar/avatar.vue.d.ts.map +1 -1
- package/dist/vue3/types/components/chip/chip.vue.d.ts +1 -1
- package/dist/vue3/types/components/collapsible/collapsible.vue.d.ts +1 -1
- package/dist/vue3/types/components/collapsible/collapsible.vue.d.ts.map +1 -1
- package/dist/vue3/types/components/image_viewer/image_viewer.vue.d.ts.map +1 -1
- package/dist/vue3/types/components/list_item/list_item.vue.d.ts +8 -2
- package/dist/vue3/types/components/list_item/list_item.vue.d.ts.map +1 -1
- package/dist/vue3/types/components/notice/notice_action.vue.d.ts +4 -5
- package/dist/vue3/types/components/notice/notice_action.vue.d.ts.map +1 -1
- package/dist/vue3/types/components/pagination/pagination.vue.d.ts.map +1 -1
- package/dist/vue3/types/components/split_button/split_button-omega.vue.d.ts +1 -1
- package/dist/vue3/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts +1 -1
- package/dist/vue3/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +1 -1
- package/dist/vue3/types/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts.map +1 -1
- package/dist/vue3/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +1 -0
- package/dist/vue3/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts.map +1 -1
- package/dist/vue3/types/recipes/item_layout/contact_info/contact_info.vue.d.ts +3 -3
- package/dist/vue3/types/recipes/leftbar/callbox/callbox.vue.d.ts.map +1 -1
- package/dist/vue3/types/recipes/leftbar/contact_row/contact_row.vue.d.ts +1 -0
- package/dist/vue3/types/recipes/leftbar/contact_row/contact_row.vue.d.ts.map +1 -1
- package/dist/vue3/types/recipes/leftbar/general_row/general_row.vue.d.ts +1 -1
- package/dist/vue3/types/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
- package/package.json +4 -4
- package/dist/tokens/themes/chunks/tokens-base-dark-C_VClg5s.js +0 -4
- package/dist/tokens/themes/chunks/tokens-base-dark-CsflOADh.js +0 -1
- package/dist/tokens/themes/chunks/tokens-base-light-9TN2mC0P.js +0 -4
- package/dist/tokens/themes/chunks/tokens-base-light-Bg9yNmR_.js +0 -1
|
@@ -56,7 +56,7 @@ const _sfc_main = {
|
|
|
56
56
|
* Avatar icon to display if `avatarSrc` is empty.
|
|
57
57
|
*/
|
|
58
58
|
avatarIcon: {
|
|
59
|
-
type:
|
|
59
|
+
type: String,
|
|
60
60
|
default: null
|
|
61
61
|
},
|
|
62
62
|
/**
|
|
@@ -161,24 +161,11 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
161
161
|
"full-name": avatar2.fullName,
|
|
162
162
|
"image-src": avatar2.src,
|
|
163
163
|
"image-alt": "",
|
|
164
|
+
"icon-name": $props.avatarIcon,
|
|
165
|
+
"overlay-icon": avatar2.icon,
|
|
164
166
|
"overlay-text": avatar2.text,
|
|
165
167
|
"avatar-class": [{ "d-mln24": index > 0, "d-bc-brand": !!avatar2.halo }]
|
|
166
|
-
},
|
|
167
|
-
$props.avatarIcon ? {
|
|
168
|
-
name: "icon",
|
|
169
|
-
fn: vue.withCtx(({ iconSize }) => [
|
|
170
|
-
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent($props.avatarIcon), { size: iconSize }, null, 8, ["size"]))
|
|
171
|
-
]),
|
|
172
|
-
key: "0"
|
|
173
|
-
} : void 0,
|
|
174
|
-
avatar2.icon ? {
|
|
175
|
-
name: "overlayIcon",
|
|
176
|
-
fn: vue.withCtx(() => [
|
|
177
|
-
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(avatar2.icon)))
|
|
178
|
-
]),
|
|
179
|
-
key: "1"
|
|
180
|
-
} : void 0
|
|
181
|
-
]), 1032, ["size", "seed", "full-name", "image-src", "overlay-text", "avatar-class"]);
|
|
168
|
+
}, null, 8, ["size", "seed", "full-name", "image-src", "icon-name", "overlay-icon", "overlay-text", "avatar-class"]);
|
|
182
169
|
}), 128))
|
|
183
170
|
])) : (vue.openBlock(), vue.createBlock(_component_dt_avatar, {
|
|
184
171
|
key: 1,
|
|
@@ -186,18 +173,11 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
186
173
|
"full-name": $props.avatarFullName,
|
|
187
174
|
"image-src": $props.avatarSrc,
|
|
188
175
|
"image-alt": "",
|
|
176
|
+
"icon-name": $props.avatarIcon,
|
|
189
177
|
seed: $props.avatarSeed,
|
|
190
178
|
color: $props.avatarColor,
|
|
191
179
|
presence: $props.presence
|
|
192
|
-
},
|
|
193
|
-
$props.avatarIcon ? {
|
|
194
|
-
name: "icon",
|
|
195
|
-
fn: vue.withCtx(({ iconSize }) => [
|
|
196
|
-
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent($props.avatarIcon), { size: iconSize }, null, 8, ["size"]))
|
|
197
|
-
]),
|
|
198
|
-
key: "0"
|
|
199
|
-
} : void 0
|
|
200
|
-
]), 1032, ["size", "full-name", "image-src", "seed", "color", "presence"]))
|
|
180
|
+
}, null, 8, ["size", "full-name", "image-src", "icon-name", "seed", "color", "presence"]))
|
|
201
181
|
], 8, _hoisted_1)
|
|
202
182
|
]),
|
|
203
183
|
key: "0"
|
|
@@ -222,6 +202,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
222
202
|
} : void 0
|
|
223
203
|
]), 1032, ["role"]);
|
|
224
204
|
}
|
|
225
|
-
const contact_info = /* @__PURE__ */ _pluginVue_exportHelper(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-
|
|
205
|
+
const contact_info = /* @__PURE__ */ _pluginVue_exportHelper(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-7b60b2d6"]]);
|
|
226
206
|
module.exports = contact_info;
|
|
227
207
|
//# sourceMappingURL=contact_info.vue.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contact_info.vue.cjs","sources":["../../../../recipes/item_layout/contact_info/contact_info.vue"],"sourcesContent":["<template>\n <dt-item-layout\n :role=\"role\"\n data-qa=\"contact-info\"\n class=\"dt-contact-info\"\n >\n <template\n v-if=\"showAvatar\"\n #left\n >\n <button\n class=\"dt-contact-info__left\"\n data-qa=\"contact-info-left\"\n :aria-labelledby=\"avatarLabelledBy\"\n @click=\"avatarClick\"\n >\n <span\n v-if=\"avatarList\"\n class=\"dt-contact-info--avatars\"\n >\n <dt-avatar\n v-for=\"(avatar, index) in avatarList\"\n :key=\"index\"\n :size=\"avatarSize\"\n :seed=\"avatar.seed\"\n :full-name=\"avatar.fullName\"\n :image-src=\"avatar.src\"\n image-alt=\"\"\n :overlay-text=\"avatar.text\"\n :avatar-class=\"[{ 'd-mln24': index > 0, 'd-bc-brand': !!avatar.halo }]\"\n >\n <template\n v-if=\"avatarIcon\"\n #icon=\"{ iconSize }\"\n >\n <component\n :is=\"avatarIcon\"\n :size=\"iconSize\"\n />\n </template>\n <template\n v-if=\"avatar.icon\"\n #overlayIcon\n >\n <component :is=\"avatar.icon\" />\n </template>\n </dt-avatar>\n </span>\n <dt-avatar\n v-else\n :size=\"avatarSize\"\n :full-name=\"avatarFullName\"\n :image-src=\"avatarSrc\"\n image-alt=\"\"\n :seed=\"avatarSeed\"\n :color=\"avatarColor\"\n :presence=\"presence\"\n >\n <template\n v-if=\"avatarIcon\"\n #icon=\"{ iconSize }\"\n >\n <component\n :is=\"avatarIcon\"\n :size=\"iconSize\"\n />\n </template>\n </dt-avatar>\n </button>\n </template>\n <template #default>\n <div data-qa=\"contact-info-header\">\n <!-- @slot Slot for header information -->\n <slot name=\"header\" />\n </div>\n </template>\n\n <template #subtitle>\n <div data-qa=\"contact-info-subtitle\">\n <!-- @slot Slot for subtitle information -->\n <slot name=\"subtitle\" />\n </div>\n </template>\n\n <template\n v-if=\"$slots.bottom\"\n #bottom\n >\n <div data-qa=\"contact-info-bottom\">\n <!-- @slot Slot for information at the bottom -->\n <slot name=\"bottom\" />\n </div>\n </template>\n\n <template\n v-if=\"$slots.right\"\n #right\n >\n <div data-qa=\"contact-info-right\">\n <!-- @slot Slot for the right content -->\n <slot name=\"right\" />\n </div>\n </template>\n </dt-item-layout>\n</template>\n\n<script>\nimport DtItemLayout from '@/components/item_layout/item_layout.vue';\nimport DtAvatar from '@/components/avatar/avatar.vue';\n\nexport default {\n name: 'DtRecipeContactInfo',\n\n components: {\n DtAvatar,\n DtItemLayout,\n },\n\n /* inheritAttrs: false is generally an option we want to set on library\n components. This allows any attributes passed in that are not recognized\n as props to be passed down to another element or component using v-bind:$attrs\n more info: https://vuejs.org/v2/api/#inheritAttrs */\n // inheritAttrs: false,\n\n props: {\n /**\n * String to use for the item's role.\n */\n role: {\n type: String,\n default: '',\n },\n\n /**\n * Display avatar if `showAvatar` property is true.\n */\n showAvatar: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Optional avatar image url.\n */\n avatarSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar seed, set this to the user's ID to get the same avatar background gradient each time it is displayed.\n */\n avatarSeed: {\n type: String,\n default: null,\n },\n\n /**\n * Avatar's full name, used to extract initials\n * to display in avatar if `avatarSrc` and `avatarIcon` are empty.\n */\n avatarFullName: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar icon to display if `avatarSrc` is empty.\n */\n avatarIcon: {\n type: Object,\n default: null,\n },\n\n /**\n * The size of the avatar\n * @values xs, sm, md, lg, xl\n */\n avatarSize: {\n type: String,\n default: 'lg',\n },\n\n /**\n * The aria-labelledby of the button containing avatars\n */\n avatarLabelledBy: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar color to display if `avatarSrc` is empty.\n */\n avatarColor: {\n type: String,\n default: null,\n },\n\n /**\n * Determines whether to show the presence indicator for\n * Avatar - accepts PRESENCE_STATES values: 'busy', 'away', 'offline',\n * or 'active'. By default, it's null and nothing is shown.\n * @values null, busy, away, offline, active\n */\n presence: {\n type: String,\n default: null,\n },\n\n /**\n * Showing multiple avatars in contact info.\n * The props of array items are: <br>\n * `src` - avatar image url (optional) <br>\n * `fullName` - full name, used to extract initials to display in avatar<br>\n * if `avatarSrc` and `avatarIcon` are empty<br>\n * `seed` - determines uniqueness of avatar background <br>\n * `text` - text that overlays the avatar (optional) <br>\n * `icon` - icon that overlays the avatar (optional) <br>\n * `halo` - halo highlight around the avatar. boolean true/false\n */\n avatarList: {\n type: Array,\n default: null,\n },\n },\n\n emits: ['avatar-click'],\n\n methods: {\n avatarClick () {\n this.$emit('avatar-click');\n },\n },\n};\n</script>\n\n<style lang=\"less\" scoped>\n.dt-contact-info {\n --contact-info-avatar-border-color: var(--dt-color-surface-primary);\n\n display: flex;\n\n &:deep(.dt-item-layout) {\n flex: 1 1 0;\n }\n\n &:deep(.dt-item-layout--content) {\n /*\n DP-74536: Add `min-width` to make the width of \"contact info\" adjustable.\n */\n min-width: var(--dt-space-825);\n }\n\n &:deep(.dt-item-layout--left) {\n /*\n DP-74536: To make 'Avatar' in fixed position when resizing the window.\n */\n min-width: var(--dt-space-650);\n justify-content: flex-start;\n align-items: center;\n }\n\n &:deep(.dt-item-layout--right) {\n /*\n DP-74536: Remove `min-width` which cause extra unused empty space on the right of \"contact info\".\n */\n min-width: 0;\n align-items: center;\n }\n\n &__left {\n position: relative;\n background-color: transparent;\n background-image: none;\n border-width: 0;\n cursor: pointer;\n }\n\n &--avatars {\n margin-right: var(--dt-space-300-negative);\n display: flex;\n flex-direction: row;\n\n .d-avatar {\n border-radius: var(--dt-size-radius-pill);\n border: var(--dt-size-300) solid var(--contact-info-avatar-border-color);\n box-sizing: unset;\n }\n }\n}\n</style>\n"],"names":["DtAvatar","DtItemLayout","_createBlock","_createElementVNode","_renderSlot","_openBlock","_createElementBlock","_Fragment","_renderList","avatar","_withCtx","_resolveDynamicComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"contact_info.vue.cjs","sources":["../../../../recipes/item_layout/contact_info/contact_info.vue"],"sourcesContent":["<template>\n <dt-item-layout\n :role=\"role\"\n data-qa=\"contact-info\"\n class=\"dt-contact-info\"\n >\n <template\n v-if=\"showAvatar\"\n #left\n >\n <button\n class=\"dt-contact-info__left\"\n data-qa=\"contact-info-left\"\n :aria-labelledby=\"avatarLabelledBy\"\n @click=\"avatarClick\"\n >\n <span\n v-if=\"avatarList\"\n class=\"dt-contact-info--avatars\"\n >\n <dt-avatar\n v-for=\"(avatar, index) in avatarList\"\n :key=\"index\"\n :size=\"avatarSize\"\n :seed=\"avatar.seed\"\n :full-name=\"avatar.fullName\"\n :image-src=\"avatar.src\"\n image-alt=\"\"\n :icon-name=\"avatarIcon\"\n :overlay-icon=\"avatar.icon\"\n :overlay-text=\"avatar.text\"\n :avatar-class=\"[{ 'd-mln24': index > 0, 'd-bc-brand': !!avatar.halo }]\"\n />\n </span>\n <dt-avatar\n v-else\n :size=\"avatarSize\"\n :full-name=\"avatarFullName\"\n :image-src=\"avatarSrc\"\n image-alt=\"\"\n :icon-name=\"avatarIcon\"\n :seed=\"avatarSeed\"\n :color=\"avatarColor\"\n :presence=\"presence\"\n />\n </button>\n </template>\n <template #default>\n <div data-qa=\"contact-info-header\">\n <!-- @slot Slot for header information -->\n <slot name=\"header\" />\n </div>\n </template>\n\n <template #subtitle>\n <div data-qa=\"contact-info-subtitle\">\n <!-- @slot Slot for subtitle information -->\n <slot name=\"subtitle\" />\n </div>\n </template>\n\n <template\n v-if=\"$slots.bottom\"\n #bottom\n >\n <div data-qa=\"contact-info-bottom\">\n <!-- @slot Slot for information at the bottom -->\n <slot name=\"bottom\" />\n </div>\n </template>\n\n <template\n v-if=\"$slots.right\"\n #right\n >\n <div data-qa=\"contact-info-right\">\n <!-- @slot Slot for the right content -->\n <slot name=\"right\" />\n </div>\n </template>\n </dt-item-layout>\n</template>\n\n<script>\nimport DtItemLayout from '@/components/item_layout/item_layout.vue';\nimport DtAvatar from '@/components/avatar/avatar.vue';\n\nexport default {\n name: 'DtRecipeContactInfo',\n\n components: {\n DtAvatar,\n DtItemLayout,\n },\n\n /* inheritAttrs: false is generally an option we want to set on library\n components. This allows any attributes passed in that are not recognized\n as props to be passed down to another element or component using v-bind:$attrs\n more info: https://vuejs.org/v2/api/#inheritAttrs */\n // inheritAttrs: false,\n\n props: {\n /**\n * String to use for the item's role.\n */\n role: {\n type: String,\n default: '',\n },\n\n /**\n * Display avatar if `showAvatar` property is true.\n */\n showAvatar: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Optional avatar image url.\n */\n avatarSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar seed, set this to the user's ID to get the same avatar background gradient each time it is displayed.\n */\n avatarSeed: {\n type: String,\n default: null,\n },\n\n /**\n * Avatar's full name, used to extract initials\n * to display in avatar if `avatarSrc` and `avatarIcon` are empty.\n */\n avatarFullName: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar icon to display if `avatarSrc` is empty.\n */\n avatarIcon: {\n type: String,\n default: null,\n },\n\n /**\n * The size of the avatar\n * @values xs, sm, md, lg, xl\n */\n avatarSize: {\n type: String,\n default: 'lg',\n },\n\n /**\n * The aria-labelledby of the button containing avatars\n */\n avatarLabelledBy: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar color to display if `avatarSrc` is empty.\n */\n avatarColor: {\n type: String,\n default: null,\n },\n\n /**\n * Determines whether to show the presence indicator for\n * Avatar - accepts PRESENCE_STATES values: 'busy', 'away', 'offline',\n * or 'active'. By default, it's null and nothing is shown.\n * @values null, busy, away, offline, active\n */\n presence: {\n type: String,\n default: null,\n },\n\n /**\n * Showing multiple avatars in contact info.\n * The props of array items are: <br>\n * `src` - avatar image url (optional) <br>\n * `fullName` - full name, used to extract initials to display in avatar<br>\n * if `avatarSrc` and `avatarIcon` are empty<br>\n * `seed` - determines uniqueness of avatar background <br>\n * `text` - text that overlays the avatar (optional) <br>\n * `icon` - icon that overlays the avatar (optional) <br>\n * `halo` - halo highlight around the avatar. boolean true/false\n */\n avatarList: {\n type: Array,\n default: null,\n },\n },\n\n emits: ['avatar-click'],\n\n methods: {\n avatarClick () {\n this.$emit('avatar-click');\n },\n },\n};\n</script>\n\n<style lang=\"less\" scoped>\n.dt-contact-info {\n --contact-info-avatar-border-color: var(--dt-color-surface-primary);\n\n display: flex;\n\n &:deep(.dt-item-layout) {\n flex: 1 1 0;\n }\n\n &:deep(.dt-item-layout--content) {\n /*\n DP-74536: Add `min-width` to make the width of \"contact info\" adjustable.\n */\n min-width: var(--dt-space-825);\n }\n\n &:deep(.dt-item-layout--left) {\n /*\n DP-74536: To make 'Avatar' in fixed position when resizing the window.\n */\n min-width: var(--dt-space-650);\n justify-content: flex-start;\n align-items: center;\n }\n\n &:deep(.dt-item-layout--right) {\n /*\n DP-74536: Remove `min-width` which cause extra unused empty space on the right of \"contact info\".\n */\n min-width: 0;\n align-items: center;\n }\n\n &__left {\n position: relative;\n background-color: transparent;\n background-image: none;\n border-width: 0;\n cursor: pointer;\n }\n\n &--avatars {\n margin-right: var(--dt-space-300-negative);\n display: flex;\n flex-direction: row;\n\n .d-avatar {\n border-radius: var(--dt-size-radius-pill);\n border: var(--dt-size-300) solid var(--contact-info-avatar-border-color);\n box-sizing: unset;\n }\n }\n}\n</style>\n"],"names":["DtAvatar","DtItemLayout","_createBlock","_createElementVNode","_renderSlot","_openBlock","_createElementBlock","_Fragment","_renderList","avatar"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import DtItemLayout from "../../../components/item_layout/item_layout.vue.js";
|
|
2
2
|
import DtAvatar from "../../../components/avatar/avatar.vue.js";
|
|
3
|
-
import { resolveComponent, openBlock, createBlock, createSlots, withCtx, createElementVNode, renderSlot, createElementBlock, Fragment, renderList
|
|
3
|
+
import { resolveComponent, openBlock, createBlock, createSlots, withCtx, createElementVNode, renderSlot, createElementBlock, Fragment, renderList } from "vue";
|
|
4
4
|
/* empty css */
|
|
5
5
|
import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.js";
|
|
6
6
|
const _sfc_main = {
|
|
@@ -55,7 +55,7 @@ const _sfc_main = {
|
|
|
55
55
|
* Avatar icon to display if `avatarSrc` is empty.
|
|
56
56
|
*/
|
|
57
57
|
avatarIcon: {
|
|
58
|
-
type:
|
|
58
|
+
type: String,
|
|
59
59
|
default: null
|
|
60
60
|
},
|
|
61
61
|
/**
|
|
@@ -160,24 +160,11 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
160
160
|
"full-name": avatar.fullName,
|
|
161
161
|
"image-src": avatar.src,
|
|
162
162
|
"image-alt": "",
|
|
163
|
+
"icon-name": $props.avatarIcon,
|
|
164
|
+
"overlay-icon": avatar.icon,
|
|
163
165
|
"overlay-text": avatar.text,
|
|
164
166
|
"avatar-class": [{ "d-mln24": index > 0, "d-bc-brand": !!avatar.halo }]
|
|
165
|
-
},
|
|
166
|
-
$props.avatarIcon ? {
|
|
167
|
-
name: "icon",
|
|
168
|
-
fn: withCtx(({ iconSize }) => [
|
|
169
|
-
(openBlock(), createBlock(resolveDynamicComponent($props.avatarIcon), { size: iconSize }, null, 8, ["size"]))
|
|
170
|
-
]),
|
|
171
|
-
key: "0"
|
|
172
|
-
} : void 0,
|
|
173
|
-
avatar.icon ? {
|
|
174
|
-
name: "overlayIcon",
|
|
175
|
-
fn: withCtx(() => [
|
|
176
|
-
(openBlock(), createBlock(resolveDynamicComponent(avatar.icon)))
|
|
177
|
-
]),
|
|
178
|
-
key: "1"
|
|
179
|
-
} : void 0
|
|
180
|
-
]), 1032, ["size", "seed", "full-name", "image-src", "overlay-text", "avatar-class"]);
|
|
167
|
+
}, null, 8, ["size", "seed", "full-name", "image-src", "icon-name", "overlay-icon", "overlay-text", "avatar-class"]);
|
|
181
168
|
}), 128))
|
|
182
169
|
])) : (openBlock(), createBlock(_component_dt_avatar, {
|
|
183
170
|
key: 1,
|
|
@@ -185,18 +172,11 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
185
172
|
"full-name": $props.avatarFullName,
|
|
186
173
|
"image-src": $props.avatarSrc,
|
|
187
174
|
"image-alt": "",
|
|
175
|
+
"icon-name": $props.avatarIcon,
|
|
188
176
|
seed: $props.avatarSeed,
|
|
189
177
|
color: $props.avatarColor,
|
|
190
178
|
presence: $props.presence
|
|
191
|
-
},
|
|
192
|
-
$props.avatarIcon ? {
|
|
193
|
-
name: "icon",
|
|
194
|
-
fn: withCtx(({ iconSize }) => [
|
|
195
|
-
(openBlock(), createBlock(resolveDynamicComponent($props.avatarIcon), { size: iconSize }, null, 8, ["size"]))
|
|
196
|
-
]),
|
|
197
|
-
key: "0"
|
|
198
|
-
} : void 0
|
|
199
|
-
]), 1032, ["size", "full-name", "image-src", "seed", "color", "presence"]))
|
|
179
|
+
}, null, 8, ["size", "full-name", "image-src", "icon-name", "seed", "color", "presence"]))
|
|
200
180
|
], 8, _hoisted_1)
|
|
201
181
|
]),
|
|
202
182
|
key: "0"
|
|
@@ -221,7 +201,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
221
201
|
} : void 0
|
|
222
202
|
]), 1032, ["role"]);
|
|
223
203
|
}
|
|
224
|
-
const contact_info = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-
|
|
204
|
+
const contact_info = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-7b60b2d6"]]);
|
|
225
205
|
export {
|
|
226
206
|
contact_info as default
|
|
227
207
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contact_info.vue.js","sources":["../../../../recipes/item_layout/contact_info/contact_info.vue"],"sourcesContent":["<template>\n <dt-item-layout\n :role=\"role\"\n data-qa=\"contact-info\"\n class=\"dt-contact-info\"\n >\n <template\n v-if=\"showAvatar\"\n #left\n >\n <button\n class=\"dt-contact-info__left\"\n data-qa=\"contact-info-left\"\n :aria-labelledby=\"avatarLabelledBy\"\n @click=\"avatarClick\"\n >\n <span\n v-if=\"avatarList\"\n class=\"dt-contact-info--avatars\"\n >\n <dt-avatar\n v-for=\"(avatar, index) in avatarList\"\n :key=\"index\"\n :size=\"avatarSize\"\n :seed=\"avatar.seed\"\n :full-name=\"avatar.fullName\"\n :image-src=\"avatar.src\"\n image-alt=\"\"\n :overlay-text=\"avatar.text\"\n :avatar-class=\"[{ 'd-mln24': index > 0, 'd-bc-brand': !!avatar.halo }]\"\n >\n <template\n v-if=\"avatarIcon\"\n #icon=\"{ iconSize }\"\n >\n <component\n :is=\"avatarIcon\"\n :size=\"iconSize\"\n />\n </template>\n <template\n v-if=\"avatar.icon\"\n #overlayIcon\n >\n <component :is=\"avatar.icon\" />\n </template>\n </dt-avatar>\n </span>\n <dt-avatar\n v-else\n :size=\"avatarSize\"\n :full-name=\"avatarFullName\"\n :image-src=\"avatarSrc\"\n image-alt=\"\"\n :seed=\"avatarSeed\"\n :color=\"avatarColor\"\n :presence=\"presence\"\n >\n <template\n v-if=\"avatarIcon\"\n #icon=\"{ iconSize }\"\n >\n <component\n :is=\"avatarIcon\"\n :size=\"iconSize\"\n />\n </template>\n </dt-avatar>\n </button>\n </template>\n <template #default>\n <div data-qa=\"contact-info-header\">\n <!-- @slot Slot for header information -->\n <slot name=\"header\" />\n </div>\n </template>\n\n <template #subtitle>\n <div data-qa=\"contact-info-subtitle\">\n <!-- @slot Slot for subtitle information -->\n <slot name=\"subtitle\" />\n </div>\n </template>\n\n <template\n v-if=\"$slots.bottom\"\n #bottom\n >\n <div data-qa=\"contact-info-bottom\">\n <!-- @slot Slot for information at the bottom -->\n <slot name=\"bottom\" />\n </div>\n </template>\n\n <template\n v-if=\"$slots.right\"\n #right\n >\n <div data-qa=\"contact-info-right\">\n <!-- @slot Slot for the right content -->\n <slot name=\"right\" />\n </div>\n </template>\n </dt-item-layout>\n</template>\n\n<script>\nimport DtItemLayout from '@/components/item_layout/item_layout.vue';\nimport DtAvatar from '@/components/avatar/avatar.vue';\n\nexport default {\n name: 'DtRecipeContactInfo',\n\n components: {\n DtAvatar,\n DtItemLayout,\n },\n\n /* inheritAttrs: false is generally an option we want to set on library\n components. This allows any attributes passed in that are not recognized\n as props to be passed down to another element or component using v-bind:$attrs\n more info: https://vuejs.org/v2/api/#inheritAttrs */\n // inheritAttrs: false,\n\n props: {\n /**\n * String to use for the item's role.\n */\n role: {\n type: String,\n default: '',\n },\n\n /**\n * Display avatar if `showAvatar` property is true.\n */\n showAvatar: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Optional avatar image url.\n */\n avatarSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar seed, set this to the user's ID to get the same avatar background gradient each time it is displayed.\n */\n avatarSeed: {\n type: String,\n default: null,\n },\n\n /**\n * Avatar's full name, used to extract initials\n * to display in avatar if `avatarSrc` and `avatarIcon` are empty.\n */\n avatarFullName: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar icon to display if `avatarSrc` is empty.\n */\n avatarIcon: {\n type: Object,\n default: null,\n },\n\n /**\n * The size of the avatar\n * @values xs, sm, md, lg, xl\n */\n avatarSize: {\n type: String,\n default: 'lg',\n },\n\n /**\n * The aria-labelledby of the button containing avatars\n */\n avatarLabelledBy: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar color to display if `avatarSrc` is empty.\n */\n avatarColor: {\n type: String,\n default: null,\n },\n\n /**\n * Determines whether to show the presence indicator for\n * Avatar - accepts PRESENCE_STATES values: 'busy', 'away', 'offline',\n * or 'active'. By default, it's null and nothing is shown.\n * @values null, busy, away, offline, active\n */\n presence: {\n type: String,\n default: null,\n },\n\n /**\n * Showing multiple avatars in contact info.\n * The props of array items are: <br>\n * `src` - avatar image url (optional) <br>\n * `fullName` - full name, used to extract initials to display in avatar<br>\n * if `avatarSrc` and `avatarIcon` are empty<br>\n * `seed` - determines uniqueness of avatar background <br>\n * `text` - text that overlays the avatar (optional) <br>\n * `icon` - icon that overlays the avatar (optional) <br>\n * `halo` - halo highlight around the avatar. boolean true/false\n */\n avatarList: {\n type: Array,\n default: null,\n },\n },\n\n emits: ['avatar-click'],\n\n methods: {\n avatarClick () {\n this.$emit('avatar-click');\n },\n },\n};\n</script>\n\n<style lang=\"less\" scoped>\n.dt-contact-info {\n --contact-info-avatar-border-color: var(--dt-color-surface-primary);\n\n display: flex;\n\n &:deep(.dt-item-layout) {\n flex: 1 1 0;\n }\n\n &:deep(.dt-item-layout--content) {\n /*\n DP-74536: Add `min-width` to make the width of \"contact info\" adjustable.\n */\n min-width: var(--dt-space-825);\n }\n\n &:deep(.dt-item-layout--left) {\n /*\n DP-74536: To make 'Avatar' in fixed position when resizing the window.\n */\n min-width: var(--dt-space-650);\n justify-content: flex-start;\n align-items: center;\n }\n\n &:deep(.dt-item-layout--right) {\n /*\n DP-74536: Remove `min-width` which cause extra unused empty space on the right of \"contact info\".\n */\n min-width: 0;\n align-items: center;\n }\n\n &__left {\n position: relative;\n background-color: transparent;\n background-image: none;\n border-width: 0;\n cursor: pointer;\n }\n\n &--avatars {\n margin-right: var(--dt-space-300-negative);\n display: flex;\n flex-direction: row;\n\n .d-avatar {\n border-radius: var(--dt-size-radius-pill);\n border: var(--dt-size-300) solid var(--contact-info-avatar-border-color);\n box-sizing: unset;\n }\n }\n}\n</style>\n"],"names":["_createBlock","_createElementVNode","_renderSlot","_openBlock","_createElementBlock","_Fragment","_renderList","_withCtx","_resolveDynamicComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"contact_info.vue.js","sources":["../../../../recipes/item_layout/contact_info/contact_info.vue"],"sourcesContent":["<template>\n <dt-item-layout\n :role=\"role\"\n data-qa=\"contact-info\"\n class=\"dt-contact-info\"\n >\n <template\n v-if=\"showAvatar\"\n #left\n >\n <button\n class=\"dt-contact-info__left\"\n data-qa=\"contact-info-left\"\n :aria-labelledby=\"avatarLabelledBy\"\n @click=\"avatarClick\"\n >\n <span\n v-if=\"avatarList\"\n class=\"dt-contact-info--avatars\"\n >\n <dt-avatar\n v-for=\"(avatar, index) in avatarList\"\n :key=\"index\"\n :size=\"avatarSize\"\n :seed=\"avatar.seed\"\n :full-name=\"avatar.fullName\"\n :image-src=\"avatar.src\"\n image-alt=\"\"\n :icon-name=\"avatarIcon\"\n :overlay-icon=\"avatar.icon\"\n :overlay-text=\"avatar.text\"\n :avatar-class=\"[{ 'd-mln24': index > 0, 'd-bc-brand': !!avatar.halo }]\"\n />\n </span>\n <dt-avatar\n v-else\n :size=\"avatarSize\"\n :full-name=\"avatarFullName\"\n :image-src=\"avatarSrc\"\n image-alt=\"\"\n :icon-name=\"avatarIcon\"\n :seed=\"avatarSeed\"\n :color=\"avatarColor\"\n :presence=\"presence\"\n />\n </button>\n </template>\n <template #default>\n <div data-qa=\"contact-info-header\">\n <!-- @slot Slot for header information -->\n <slot name=\"header\" />\n </div>\n </template>\n\n <template #subtitle>\n <div data-qa=\"contact-info-subtitle\">\n <!-- @slot Slot for subtitle information -->\n <slot name=\"subtitle\" />\n </div>\n </template>\n\n <template\n v-if=\"$slots.bottom\"\n #bottom\n >\n <div data-qa=\"contact-info-bottom\">\n <!-- @slot Slot for information at the bottom -->\n <slot name=\"bottom\" />\n </div>\n </template>\n\n <template\n v-if=\"$slots.right\"\n #right\n >\n <div data-qa=\"contact-info-right\">\n <!-- @slot Slot for the right content -->\n <slot name=\"right\" />\n </div>\n </template>\n </dt-item-layout>\n</template>\n\n<script>\nimport DtItemLayout from '@/components/item_layout/item_layout.vue';\nimport DtAvatar from '@/components/avatar/avatar.vue';\n\nexport default {\n name: 'DtRecipeContactInfo',\n\n components: {\n DtAvatar,\n DtItemLayout,\n },\n\n /* inheritAttrs: false is generally an option we want to set on library\n components. This allows any attributes passed in that are not recognized\n as props to be passed down to another element or component using v-bind:$attrs\n more info: https://vuejs.org/v2/api/#inheritAttrs */\n // inheritAttrs: false,\n\n props: {\n /**\n * String to use for the item's role.\n */\n role: {\n type: String,\n default: '',\n },\n\n /**\n * Display avatar if `showAvatar` property is true.\n */\n showAvatar: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Optional avatar image url.\n */\n avatarSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar seed, set this to the user's ID to get the same avatar background gradient each time it is displayed.\n */\n avatarSeed: {\n type: String,\n default: null,\n },\n\n /**\n * Avatar's full name, used to extract initials\n * to display in avatar if `avatarSrc` and `avatarIcon` are empty.\n */\n avatarFullName: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar icon to display if `avatarSrc` is empty.\n */\n avatarIcon: {\n type: String,\n default: null,\n },\n\n /**\n * The size of the avatar\n * @values xs, sm, md, lg, xl\n */\n avatarSize: {\n type: String,\n default: 'lg',\n },\n\n /**\n * The aria-labelledby of the button containing avatars\n */\n avatarLabelledBy: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar color to display if `avatarSrc` is empty.\n */\n avatarColor: {\n type: String,\n default: null,\n },\n\n /**\n * Determines whether to show the presence indicator for\n * Avatar - accepts PRESENCE_STATES values: 'busy', 'away', 'offline',\n * or 'active'. By default, it's null and nothing is shown.\n * @values null, busy, away, offline, active\n */\n presence: {\n type: String,\n default: null,\n },\n\n /**\n * Showing multiple avatars in contact info.\n * The props of array items are: <br>\n * `src` - avatar image url (optional) <br>\n * `fullName` - full name, used to extract initials to display in avatar<br>\n * if `avatarSrc` and `avatarIcon` are empty<br>\n * `seed` - determines uniqueness of avatar background <br>\n * `text` - text that overlays the avatar (optional) <br>\n * `icon` - icon that overlays the avatar (optional) <br>\n * `halo` - halo highlight around the avatar. boolean true/false\n */\n avatarList: {\n type: Array,\n default: null,\n },\n },\n\n emits: ['avatar-click'],\n\n methods: {\n avatarClick () {\n this.$emit('avatar-click');\n },\n },\n};\n</script>\n\n<style lang=\"less\" scoped>\n.dt-contact-info {\n --contact-info-avatar-border-color: var(--dt-color-surface-primary);\n\n display: flex;\n\n &:deep(.dt-item-layout) {\n flex: 1 1 0;\n }\n\n &:deep(.dt-item-layout--content) {\n /*\n DP-74536: Add `min-width` to make the width of \"contact info\" adjustable.\n */\n min-width: var(--dt-space-825);\n }\n\n &:deep(.dt-item-layout--left) {\n /*\n DP-74536: To make 'Avatar' in fixed position when resizing the window.\n */\n min-width: var(--dt-space-650);\n justify-content: flex-start;\n align-items: center;\n }\n\n &:deep(.dt-item-layout--right) {\n /*\n DP-74536: Remove `min-width` which cause extra unused empty space on the right of \"contact info\".\n */\n min-width: 0;\n align-items: center;\n }\n\n &__left {\n position: relative;\n background-color: transparent;\n background-image: none;\n border-width: 0;\n cursor: pointer;\n }\n\n &--avatars {\n margin-right: var(--dt-space-300-negative);\n display: flex;\n flex-direction: row;\n\n .d-avatar {\n border-radius: var(--dt-size-radius-pill);\n border: var(--dt-size-300) solid var(--contact-info-avatar-border-color);\n box-sizing: unset;\n }\n }\n}\n</style>\n"],"names":["_createBlock","_createElementVNode","_renderSlot","_openBlock","_createElementBlock","_Fragment","_renderList"],"mappings":"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"}
|
|
@@ -2,13 +2,12 @@
|
|
|
2
2
|
const callbox_constants = require("./callbox_constants.cjs");
|
|
3
3
|
const avatar = require("../../../components/avatar/avatar.vue.cjs");
|
|
4
4
|
const badge = require("../../../components/badge/badge.vue.cjs");
|
|
5
|
-
const vue3 = require("@dialpad/dialtone-icons/vue3");
|
|
6
5
|
const vue = require("vue");
|
|
7
6
|
;/* empty css */
|
|
8
7
|
const _pluginVue_exportHelper = require("../../../_virtual/_plugin-vue_export-helper.cjs");
|
|
9
8
|
const _sfc_main = {
|
|
10
9
|
name: "DtRecipeCallbox",
|
|
11
|
-
components: { DtBadge: badge, DtAvatar: avatar
|
|
10
|
+
components: { DtBadge: badge, DtAvatar: avatar },
|
|
12
11
|
inheritAttrs: false,
|
|
13
12
|
props: {
|
|
14
13
|
/**
|
|
@@ -141,7 +140,6 @@ const _hoisted_8 = {
|
|
|
141
140
|
class: "dt-recipe-callbox--main-content-bottom"
|
|
142
141
|
};
|
|
143
142
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
144
|
-
const _component_dt_icon_pause = vue.resolveComponent("dt-icon-pause");
|
|
145
143
|
const _component_dt_avatar = vue.resolveComponent("dt-avatar");
|
|
146
144
|
const _component_dt_badge = vue.resolveComponent("dt-badge");
|
|
147
145
|
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
|
|
@@ -161,17 +159,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
161
159
|
"full-name": $props.avatarFullName,
|
|
162
160
|
seed: $props.avatarSeed,
|
|
163
161
|
clickable: $props.clickable,
|
|
162
|
+
"overlay-icon": $props.isOnHold ? "pause" : null,
|
|
164
163
|
size: "sm",
|
|
165
164
|
onClick: $options.handleClick
|
|
166
|
-
}, vue.
|
|
167
|
-
$props.isOnHold ? {
|
|
168
|
-
name: "overlayIcon",
|
|
169
|
-
fn: vue.withCtx(() => [
|
|
170
|
-
vue.createVNode(_component_dt_icon_pause)
|
|
171
|
-
]),
|
|
172
|
-
key: "0"
|
|
173
|
-
} : void 0
|
|
174
|
-
]), 1032, ["image-src", "full-name", "seed", "clickable", "onClick"])) : vue.createCommentVNode("", true),
|
|
165
|
+
}, null, 8, ["image-src", "full-name", "seed", "clickable", "overlay-icon", "onClick"])) : vue.createCommentVNode("", true),
|
|
175
166
|
vue.createElementVNode("div", _hoisted_4, [
|
|
176
167
|
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent($props.clickable ? "button" : "span"), {
|
|
177
168
|
"data-qa": "dt-recipe-callbox--title",
|
|
@@ -205,6 +196,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
205
196
|
], 2)
|
|
206
197
|
]);
|
|
207
198
|
}
|
|
208
|
-
const callbox = /* @__PURE__ */ _pluginVue_exportHelper(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-
|
|
199
|
+
const callbox = /* @__PURE__ */ _pluginVue_exportHelper(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-ef08f46e"]]);
|
|
209
200
|
module.exports = callbox;
|
|
210
201
|
//# sourceMappingURL=callbox.vue.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callbox.vue.cjs","sources":["../../../../recipes/leftbar/callbox/callbox.vue"],"sourcesContent":["<template>\n <div\n data-qa=\"dt-recipe-callbox\"\n class=\"dt-recipe-callbox\"\n >\n <div\n v-if=\"$slots.video\"\n data-qa=\"dt-recipe-callbox--video-wrapper\"\n class=\"dt-recipe-callbox--video\"\n >\n <!-- @slot Slot for video stream -->\n <slot name=\"video\" />\n </div>\n <div\n data-qa=\"dt-recipe-callbox--main-content\"\n :class=\"['dt-recipe-callbox--main-content', borderClass, { 'dt-recipe-callbox--clickable': clickable }]\"\n >\n <div\n class=\"dt-recipe-callbox--main-content-top\"\n >\n <dt-avatar\n v-if=\"shouldShowAvatar\"\n avatar-class=\"dt-recipe-callbox--avatar\"\n :image-src=\"avatarSrc\"\n image-alt=\"\"\n :full-name=\"avatarFullName\"\n :seed=\"avatarSeed\"\n :clickable=\"clickable\"\n size=\"sm\"\n @click=\"handleClick\"\n >\n <template\n v-if=\"isOnHold\"\n #overlayIcon\n >\n <dt-icon-pause />\n </template>\n </dt-avatar>\n <div class=\"dt-recipe-callbox--content\">\n <component\n :is=\"clickable ? 'button' : 'span'\"\n data-qa=\"dt-recipe-callbox--title\"\n class=\"dt-recipe-callbox--content-title\"\n @click=\"handleClick\"\n >\n {{ title }}\n </component>\n <div\n v-if=\"$slots.badge || badgeText\"\n data-qa=\"dt-recipe-callbox--badge-wrapper\"\n class=\"dt-recipe-callbox--content-badge\"\n >\n <!-- @slot Slot for call center badge -->\n <slot name=\"badge\">\n <dt-badge\n :class=\"badgeClass\"\n :text=\"badgeText\"\n />\n </slot>\n </div>\n <div\n v-if=\"$slots.subtitle\"\n data-qa=\"dt-recipe-callbox--subtitle-wrapper\"\n class=\"dt-recipe-callbox--content-subtitle\"\n >\n <!-- @slot Slot for subtitle -->\n <slot name=\"subtitle\" />\n </div>\n </div>\n <div\n v-if=\"$slots.right\"\n data-qa=\"dt-recipe-callbox--right-wrapper\"\n class=\"dt-recipe-callbox--right\"\n >\n <!-- @slot Slot for right icons -->\n <slot name=\"right\" />\n </div>\n </div>\n <div\n v-if=\"$slots.bottom\"\n data-qa=\"dt-recipe-callbox--bottom-wrapper\"\n class=\"dt-recipe-callbox--main-content-bottom\"\n >\n <slot name=\"bottom\" />\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { CALLBOX_BADGE_COLORS, CALLBOX_BORDER_COLORS } from './callbox_constants';\nimport DtAvatar from '@/components/avatar/avatar.vue';\nimport DtBadge from '@/components/badge/badge.vue';\nimport { DtIconPause } from '@dialpad/dialtone-icons/vue3';\n\nexport default {\n name: 'DtRecipeCallbox',\n\n components: { DtBadge, DtAvatar, DtIconPause },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Text for the badge element\n */\n badgeText: {\n type: String,\n default: '',\n },\n\n /**\n * Color for the badge element\n * @values null, warning\n */\n badgeColor: {\n type: String,\n default: null,\n validator: (color) => color === null || Object.keys(CALLBOX_BADGE_COLORS).includes(color),\n },\n\n /**\n * Optional avatar image url.\n * If not provided it will use the initial of the name.\n */\n avatarSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar's full name, used to extract initials\n * to display if `avatarSrc` is empty.\n */\n avatarFullName: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar seed, set this to the user's ID to get the same avatar background gradient each time it is displayed.\n */\n avatarSeed: {\n type: String,\n default: '',\n },\n\n /**\n * Callbox title\n */\n title: {\n type: String,\n default: '',\n },\n\n /**\n * Callbox border color\n * @values default, ai, critical\n */\n borderColor: {\n type: String,\n default: 'default',\n validator: (color) => Object.keys(CALLBOX_BORDER_COLORS).includes(color),\n },\n\n /**\n * Makes the callbox avatar and title clickable,\n * emits a click event when clicked.\n */\n clickable: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Controls the avatars overlay icon\n */\n isOnHold: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Callbox click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n ],\n\n computed: {\n shouldShowAvatar () {\n return this.avatarFullName || this.avatarSrc;\n },\n\n badgeClass () {\n return CALLBOX_BADGE_COLORS[this.badgeColor];\n },\n\n borderClass () {\n return CALLBOX_BORDER_COLORS[this.borderColor];\n },\n },\n\n methods: {\n handleClick (e) {\n if (!this.clickable) return;\n this.$emit('click', e);\n },\n },\n};\n</script>\n\n<style lang=\"less\" scoped>\n.dt-recipe-callbox {\n padding: 0;\n color: var(--dt-color-foreground-primary);\n background-color: var(--dt-color-surface-primary);\n border-radius: var(--dt-size-radius-300);\n\n &--video {\n display: flex;\n border-radius: var(--dt-size-radius-200) var(--dt-size-radius-200) 0 0;\n overflow: clip;\n margin-bottom: var(--dt-space-300-negative);\n }\n\n &--main-content {\n padding: 0;\n border-radius: var(--dt-size-radius-300);\n border: var(--dt-size-border-100) solid transparent;\n align-items: stretch;\n\n &.dt-recipe-callbox--border-default {\n border-color: var(--dt-color-border-default);\n }\n\n &.dt-recipe-callbox--border-ai {\n background:\n linear-gradient(var(--dt-color-surface-primary), var(--dt-color-surface-primary)) padding-box,\n linear-gradient(135deg, var(--dt-color-border-accent), var(--dt-color-border-brand)) border-box;\n }\n\n &.dt-recipe-callbox--border-critical {\n background:\n radial-gradient(var(--dt-color-surface-primary), var(--dt-color-surface-primary)) padding-box,\n radial-gradient(circle, #E7301D, #F78B23) border-box;\n }\n\n &-top {\n display: flex;\n align-items: center;\n padding: var(--dt-space-350) var(--dt-space-400);\n }\n\n &-bottom {\n border-top: 1px solid var(--dt-color-border-subtle);\n }\n }\n\n &--avatar {\n margin-right: var(--dt-space-400);\n }\n\n &--content {\n display: flex;\n flex-direction: column;\n flex: 1 0 auto;\n min-width: 0;\n\n &-title {\n overflow: clip;\n white-space: nowrap;\n text-overflow: ellipsis;\n color: var(--dt-color-foreground-primary);\n background-color: var(--dt-color-surface-primary);\n font-weight: var(--dt-font-weight-bold);\n border: none;\n padding: 0;\n width: 0;\n min-width: 100%;\n text-align: left;\n user-select: text;\n line-height: normal;\n }\n\n &-badge {\n line-height: normal;\n }\n\n &-subtitle {\n padding: 0;\n font-size: var(--dt-font-size-100);\n color: var(--dt-color-foreground-tertiary);\n line-height: normal;\n overflow: hidden;\n width: 0;\n min-width: 100%;\n }\n }\n\n &--right {\n display: flex;\n justify-content: right;\n }\n\n &--clickable {\n .dt-recipe-callbox--content-title {\n cursor: pointer;\n user-select: none;\n border-radius: var(--dt-size-100);\n\n &:focus-visible {\n outline: none;\n box-shadow: var(--dt-shadow-focus);\n }\n\n &:hover, &:active {\n text-decoration: underline;\n }\n }\n }\n\n .dt-recipe-callbox-badge--warning {\n background-color: var(--dt-color-surface-warning);\n }\n}\n</style>\n"],"names":["DtBadge","DtAvatar","DtIconPause","CALLBOX_BADGE_COLORS","CALLBOX_BORDER_COLORS","_openBlock","_createElementBlock","_renderSlot","_createElementVNode","_normalizeClass","_createBlock","_createVNode","_resolveDynamicComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"callbox.vue.cjs","sources":["../../../../recipes/leftbar/callbox/callbox.vue"],"sourcesContent":["<template>\n <div\n data-qa=\"dt-recipe-callbox\"\n class=\"dt-recipe-callbox\"\n >\n <div\n v-if=\"$slots.video\"\n data-qa=\"dt-recipe-callbox--video-wrapper\"\n class=\"dt-recipe-callbox--video\"\n >\n <!-- @slot Slot for video stream -->\n <slot name=\"video\" />\n </div>\n <div\n data-qa=\"dt-recipe-callbox--main-content\"\n :class=\"['dt-recipe-callbox--main-content', borderClass, { 'dt-recipe-callbox--clickable': clickable }]\"\n >\n <div\n class=\"dt-recipe-callbox--main-content-top\"\n >\n <dt-avatar\n v-if=\"shouldShowAvatar\"\n avatar-class=\"dt-recipe-callbox--avatar\"\n :image-src=\"avatarSrc\"\n image-alt=\"\"\n :full-name=\"avatarFullName\"\n :seed=\"avatarSeed\"\n :clickable=\"clickable\"\n :overlay-icon=\"isOnHold ? 'pause' : null\"\n size=\"sm\"\n @click=\"handleClick\"\n />\n <div class=\"dt-recipe-callbox--content\">\n <component\n :is=\"clickable ? 'button' : 'span'\"\n data-qa=\"dt-recipe-callbox--title\"\n class=\"dt-recipe-callbox--content-title\"\n @click=\"handleClick\"\n >\n {{ title }}\n </component>\n <div\n v-if=\"$slots.badge || badgeText\"\n data-qa=\"dt-recipe-callbox--badge-wrapper\"\n class=\"dt-recipe-callbox--content-badge\"\n >\n <!-- @slot Slot for call center badge -->\n <slot name=\"badge\">\n <dt-badge\n :class=\"badgeClass\"\n :text=\"badgeText\"\n />\n </slot>\n </div>\n <div\n v-if=\"$slots.subtitle\"\n data-qa=\"dt-recipe-callbox--subtitle-wrapper\"\n class=\"dt-recipe-callbox--content-subtitle\"\n >\n <!-- @slot Slot for subtitle -->\n <slot name=\"subtitle\" />\n </div>\n </div>\n <div\n v-if=\"$slots.right\"\n data-qa=\"dt-recipe-callbox--right-wrapper\"\n class=\"dt-recipe-callbox--right\"\n >\n <!-- @slot Slot for right icons -->\n <slot name=\"right\" />\n </div>\n </div>\n <div\n v-if=\"$slots.bottom\"\n data-qa=\"dt-recipe-callbox--bottom-wrapper\"\n class=\"dt-recipe-callbox--main-content-bottom\"\n >\n <slot name=\"bottom\" />\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { CALLBOX_BADGE_COLORS, CALLBOX_BORDER_COLORS } from './callbox_constants';\nimport DtAvatar from '@/components/avatar/avatar.vue';\nimport DtBadge from '@/components/badge/badge.vue';\n\nexport default {\n name: 'DtRecipeCallbox',\n\n components: { DtBadge, DtAvatar },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Text for the badge element\n */\n badgeText: {\n type: String,\n default: '',\n },\n\n /**\n * Color for the badge element\n * @values null, warning\n */\n badgeColor: {\n type: String,\n default: null,\n validator: (color) => color === null || Object.keys(CALLBOX_BADGE_COLORS).includes(color),\n },\n\n /**\n * Optional avatar image url.\n * If not provided it will use the initial of the name.\n */\n avatarSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar's full name, used to extract initials\n * to display if `avatarSrc` is empty.\n */\n avatarFullName: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar seed, set this to the user's ID to get the same avatar background gradient each time it is displayed.\n */\n avatarSeed: {\n type: String,\n default: '',\n },\n\n /**\n * Callbox title\n */\n title: {\n type: String,\n default: '',\n },\n\n /**\n * Callbox border color\n * @values default, ai, critical\n */\n borderColor: {\n type: String,\n default: 'default',\n validator: (color) => Object.keys(CALLBOX_BORDER_COLORS).includes(color),\n },\n\n /**\n * Makes the callbox avatar and title clickable,\n * emits a click event when clicked.\n */\n clickable: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Controls the avatars overlay icon\n */\n isOnHold: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Callbox click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n ],\n\n computed: {\n shouldShowAvatar () {\n return this.avatarFullName || this.avatarSrc;\n },\n\n badgeClass () {\n return CALLBOX_BADGE_COLORS[this.badgeColor];\n },\n\n borderClass () {\n return CALLBOX_BORDER_COLORS[this.borderColor];\n },\n },\n\n methods: {\n handleClick (e) {\n if (!this.clickable) return;\n this.$emit('click', e);\n },\n },\n};\n</script>\n\n<style lang=\"less\" scoped>\n.dt-recipe-callbox {\n padding: 0;\n color: var(--dt-color-foreground-primary);\n background-color: var(--dt-color-surface-primary);\n border-radius: var(--dt-size-radius-300);\n\n &--video {\n display: flex;\n border-radius: var(--dt-size-radius-200) var(--dt-size-radius-200) 0 0;\n overflow: clip;\n margin-bottom: var(--dt-space-300-negative);\n }\n\n &--main-content {\n padding: 0;\n border-radius: var(--dt-size-radius-300);\n border: var(--dt-size-border-100) solid transparent;\n align-items: stretch;\n\n &.dt-recipe-callbox--border-default {\n border-color: var(--dt-color-border-default);\n }\n\n &.dt-recipe-callbox--border-ai {\n background:\n linear-gradient(var(--dt-color-surface-primary), var(--dt-color-surface-primary)) padding-box,\n linear-gradient(135deg, var(--dt-color-border-accent), var(--dt-color-border-brand)) border-box;\n }\n\n &.dt-recipe-callbox--border-critical {\n background:\n radial-gradient(var(--dt-color-surface-primary), var(--dt-color-surface-primary)) padding-box,\n radial-gradient(circle, #E7301D, #F78B23) border-box;\n }\n\n &-top {\n display: flex;\n align-items: center;\n padding: var(--dt-space-350) var(--dt-space-400);\n }\n\n &-bottom {\n border-top: 1px solid var(--dt-color-border-subtle);\n }\n }\n\n &--avatar {\n margin-right: var(--dt-space-400);\n }\n\n &--content {\n display: flex;\n flex-direction: column;\n flex: 1 0 auto;\n min-width: 0;\n\n &-title {\n overflow: clip;\n white-space: nowrap;\n text-overflow: ellipsis;\n color: var(--dt-color-foreground-primary);\n background-color: var(--dt-color-surface-primary);\n font-weight: var(--dt-font-weight-bold);\n border: none;\n padding: 0;\n width: 0;\n min-width: 100%;\n text-align: left;\n user-select: text;\n line-height: normal;\n }\n\n &-badge {\n line-height: normal;\n }\n\n &-subtitle {\n padding: 0;\n font-size: var(--dt-font-size-100);\n color: var(--dt-color-foreground-tertiary);\n line-height: normal;\n overflow: hidden;\n width: 0;\n min-width: 100%;\n }\n }\n\n &--right {\n display: flex;\n justify-content: right;\n }\n\n &--clickable {\n .dt-recipe-callbox--content-title {\n cursor: pointer;\n user-select: none;\n border-radius: var(--dt-size-100);\n\n &:focus-visible {\n outline: none;\n box-shadow: var(--dt-shadow-focus);\n }\n\n &:hover, &:active {\n text-decoration: underline;\n }\n }\n }\n\n .dt-recipe-callbox-badge--warning {\n background-color: var(--dt-color-surface-warning);\n }\n}\n</style>\n"],"names":["DtBadge","DtAvatar","CALLBOX_BADGE_COLORS","CALLBOX_BORDER_COLORS","_openBlock","_createElementBlock","_renderSlot","_createElementVNode","_normalizeClass","_createBlock","_resolveDynamicComponent","_createVNode"],"mappings":"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"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { CALLBOX_BADGE_COLORS, CALLBOX_BORDER_COLORS } from "./callbox_constants.js";
|
|
2
2
|
import DtAvatar from "../../../components/avatar/avatar.vue.js";
|
|
3
3
|
import DtBadge from "../../../components/badge/badge.vue.js";
|
|
4
|
-
import {
|
|
5
|
-
import { resolveComponent, openBlock, createElementBlock, renderSlot, createCommentVNode, createElementVNode, normalizeClass, createBlock, createSlots, withCtx, createVNode, resolveDynamicComponent, createTextVNode, toDisplayString } from "vue";
|
|
4
|
+
import { resolveComponent, openBlock, createElementBlock, renderSlot, createCommentVNode, createElementVNode, normalizeClass, createBlock, resolveDynamicComponent, withCtx, createTextVNode, toDisplayString, createVNode } from "vue";
|
|
6
5
|
/* empty css */
|
|
7
6
|
import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.js";
|
|
8
7
|
const _sfc_main = {
|
|
9
8
|
name: "DtRecipeCallbox",
|
|
10
|
-
components: { DtBadge, DtAvatar
|
|
9
|
+
components: { DtBadge, DtAvatar },
|
|
11
10
|
inheritAttrs: false,
|
|
12
11
|
props: {
|
|
13
12
|
/**
|
|
@@ -140,7 +139,6 @@ const _hoisted_8 = {
|
|
|
140
139
|
class: "dt-recipe-callbox--main-content-bottom"
|
|
141
140
|
};
|
|
142
141
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
143
|
-
const _component_dt_icon_pause = resolveComponent("dt-icon-pause");
|
|
144
142
|
const _component_dt_avatar = resolveComponent("dt-avatar");
|
|
145
143
|
const _component_dt_badge = resolveComponent("dt-badge");
|
|
146
144
|
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
@@ -160,17 +158,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
160
158
|
"full-name": $props.avatarFullName,
|
|
161
159
|
seed: $props.avatarSeed,
|
|
162
160
|
clickable: $props.clickable,
|
|
161
|
+
"overlay-icon": $props.isOnHold ? "pause" : null,
|
|
163
162
|
size: "sm",
|
|
164
163
|
onClick: $options.handleClick
|
|
165
|
-
},
|
|
166
|
-
$props.isOnHold ? {
|
|
167
|
-
name: "overlayIcon",
|
|
168
|
-
fn: withCtx(() => [
|
|
169
|
-
createVNode(_component_dt_icon_pause)
|
|
170
|
-
]),
|
|
171
|
-
key: "0"
|
|
172
|
-
} : void 0
|
|
173
|
-
]), 1032, ["image-src", "full-name", "seed", "clickable", "onClick"])) : createCommentVNode("", true),
|
|
164
|
+
}, null, 8, ["image-src", "full-name", "seed", "clickable", "overlay-icon", "onClick"])) : createCommentVNode("", true),
|
|
174
165
|
createElementVNode("div", _hoisted_4, [
|
|
175
166
|
(openBlock(), createBlock(resolveDynamicComponent($props.clickable ? "button" : "span"), {
|
|
176
167
|
"data-qa": "dt-recipe-callbox--title",
|
|
@@ -204,7 +195,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
204
195
|
], 2)
|
|
205
196
|
]);
|
|
206
197
|
}
|
|
207
|
-
const callbox = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-
|
|
198
|
+
const callbox = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-ef08f46e"]]);
|
|
208
199
|
export {
|
|
209
200
|
callbox as default
|
|
210
201
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callbox.vue.js","sources":["../../../../recipes/leftbar/callbox/callbox.vue"],"sourcesContent":["<template>\n <div\n data-qa=\"dt-recipe-callbox\"\n class=\"dt-recipe-callbox\"\n >\n <div\n v-if=\"$slots.video\"\n data-qa=\"dt-recipe-callbox--video-wrapper\"\n class=\"dt-recipe-callbox--video\"\n >\n <!-- @slot Slot for video stream -->\n <slot name=\"video\" />\n </div>\n <div\n data-qa=\"dt-recipe-callbox--main-content\"\n :class=\"['dt-recipe-callbox--main-content', borderClass, { 'dt-recipe-callbox--clickable': clickable }]\"\n >\n <div\n class=\"dt-recipe-callbox--main-content-top\"\n >\n <dt-avatar\n v-if=\"shouldShowAvatar\"\n avatar-class=\"dt-recipe-callbox--avatar\"\n :image-src=\"avatarSrc\"\n image-alt=\"\"\n :full-name=\"avatarFullName\"\n :seed=\"avatarSeed\"\n :clickable=\"clickable\"\n size=\"sm\"\n @click=\"handleClick\"\n >\n <template\n v-if=\"isOnHold\"\n #overlayIcon\n >\n <dt-icon-pause />\n </template>\n </dt-avatar>\n <div class=\"dt-recipe-callbox--content\">\n <component\n :is=\"clickable ? 'button' : 'span'\"\n data-qa=\"dt-recipe-callbox--title\"\n class=\"dt-recipe-callbox--content-title\"\n @click=\"handleClick\"\n >\n {{ title }}\n </component>\n <div\n v-if=\"$slots.badge || badgeText\"\n data-qa=\"dt-recipe-callbox--badge-wrapper\"\n class=\"dt-recipe-callbox--content-badge\"\n >\n <!-- @slot Slot for call center badge -->\n <slot name=\"badge\">\n <dt-badge\n :class=\"badgeClass\"\n :text=\"badgeText\"\n />\n </slot>\n </div>\n <div\n v-if=\"$slots.subtitle\"\n data-qa=\"dt-recipe-callbox--subtitle-wrapper\"\n class=\"dt-recipe-callbox--content-subtitle\"\n >\n <!-- @slot Slot for subtitle -->\n <slot name=\"subtitle\" />\n </div>\n </div>\n <div\n v-if=\"$slots.right\"\n data-qa=\"dt-recipe-callbox--right-wrapper\"\n class=\"dt-recipe-callbox--right\"\n >\n <!-- @slot Slot for right icons -->\n <slot name=\"right\" />\n </div>\n </div>\n <div\n v-if=\"$slots.bottom\"\n data-qa=\"dt-recipe-callbox--bottom-wrapper\"\n class=\"dt-recipe-callbox--main-content-bottom\"\n >\n <slot name=\"bottom\" />\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { CALLBOX_BADGE_COLORS, CALLBOX_BORDER_COLORS } from './callbox_constants';\nimport DtAvatar from '@/components/avatar/avatar.vue';\nimport DtBadge from '@/components/badge/badge.vue';\nimport { DtIconPause } from '@dialpad/dialtone-icons/vue3';\n\nexport default {\n name: 'DtRecipeCallbox',\n\n components: { DtBadge, DtAvatar, DtIconPause },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Text for the badge element\n */\n badgeText: {\n type: String,\n default: '',\n },\n\n /**\n * Color for the badge element\n * @values null, warning\n */\n badgeColor: {\n type: String,\n default: null,\n validator: (color) => color === null || Object.keys(CALLBOX_BADGE_COLORS).includes(color),\n },\n\n /**\n * Optional avatar image url.\n * If not provided it will use the initial of the name.\n */\n avatarSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar's full name, used to extract initials\n * to display if `avatarSrc` is empty.\n */\n avatarFullName: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar seed, set this to the user's ID to get the same avatar background gradient each time it is displayed.\n */\n avatarSeed: {\n type: String,\n default: '',\n },\n\n /**\n * Callbox title\n */\n title: {\n type: String,\n default: '',\n },\n\n /**\n * Callbox border color\n * @values default, ai, critical\n */\n borderColor: {\n type: String,\n default: 'default',\n validator: (color) => Object.keys(CALLBOX_BORDER_COLORS).includes(color),\n },\n\n /**\n * Makes the callbox avatar and title clickable,\n * emits a click event when clicked.\n */\n clickable: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Controls the avatars overlay icon\n */\n isOnHold: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Callbox click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n ],\n\n computed: {\n shouldShowAvatar () {\n return this.avatarFullName || this.avatarSrc;\n },\n\n badgeClass () {\n return CALLBOX_BADGE_COLORS[this.badgeColor];\n },\n\n borderClass () {\n return CALLBOX_BORDER_COLORS[this.borderColor];\n },\n },\n\n methods: {\n handleClick (e) {\n if (!this.clickable) return;\n this.$emit('click', e);\n },\n },\n};\n</script>\n\n<style lang=\"less\" scoped>\n.dt-recipe-callbox {\n padding: 0;\n color: var(--dt-color-foreground-primary);\n background-color: var(--dt-color-surface-primary);\n border-radius: var(--dt-size-radius-300);\n\n &--video {\n display: flex;\n border-radius: var(--dt-size-radius-200) var(--dt-size-radius-200) 0 0;\n overflow: clip;\n margin-bottom: var(--dt-space-300-negative);\n }\n\n &--main-content {\n padding: 0;\n border-radius: var(--dt-size-radius-300);\n border: var(--dt-size-border-100) solid transparent;\n align-items: stretch;\n\n &.dt-recipe-callbox--border-default {\n border-color: var(--dt-color-border-default);\n }\n\n &.dt-recipe-callbox--border-ai {\n background:\n linear-gradient(var(--dt-color-surface-primary), var(--dt-color-surface-primary)) padding-box,\n linear-gradient(135deg, var(--dt-color-border-accent), var(--dt-color-border-brand)) border-box;\n }\n\n &.dt-recipe-callbox--border-critical {\n background:\n radial-gradient(var(--dt-color-surface-primary), var(--dt-color-surface-primary)) padding-box,\n radial-gradient(circle, #E7301D, #F78B23) border-box;\n }\n\n &-top {\n display: flex;\n align-items: center;\n padding: var(--dt-space-350) var(--dt-space-400);\n }\n\n &-bottom {\n border-top: 1px solid var(--dt-color-border-subtle);\n }\n }\n\n &--avatar {\n margin-right: var(--dt-space-400);\n }\n\n &--content {\n display: flex;\n flex-direction: column;\n flex: 1 0 auto;\n min-width: 0;\n\n &-title {\n overflow: clip;\n white-space: nowrap;\n text-overflow: ellipsis;\n color: var(--dt-color-foreground-primary);\n background-color: var(--dt-color-surface-primary);\n font-weight: var(--dt-font-weight-bold);\n border: none;\n padding: 0;\n width: 0;\n min-width: 100%;\n text-align: left;\n user-select: text;\n line-height: normal;\n }\n\n &-badge {\n line-height: normal;\n }\n\n &-subtitle {\n padding: 0;\n font-size: var(--dt-font-size-100);\n color: var(--dt-color-foreground-tertiary);\n line-height: normal;\n overflow: hidden;\n width: 0;\n min-width: 100%;\n }\n }\n\n &--right {\n display: flex;\n justify-content: right;\n }\n\n &--clickable {\n .dt-recipe-callbox--content-title {\n cursor: pointer;\n user-select: none;\n border-radius: var(--dt-size-100);\n\n &:focus-visible {\n outline: none;\n box-shadow: var(--dt-shadow-focus);\n }\n\n &:hover, &:active {\n text-decoration: underline;\n }\n }\n }\n\n .dt-recipe-callbox-badge--warning {\n background-color: var(--dt-color-surface-warning);\n }\n}\n</style>\n"],"names":["_openBlock","_createElementBlock","_renderSlot","_createElementVNode","_normalizeClass","_createBlock","_createVNode","_resolveDynamicComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"callbox.vue.js","sources":["../../../../recipes/leftbar/callbox/callbox.vue"],"sourcesContent":["<template>\n <div\n data-qa=\"dt-recipe-callbox\"\n class=\"dt-recipe-callbox\"\n >\n <div\n v-if=\"$slots.video\"\n data-qa=\"dt-recipe-callbox--video-wrapper\"\n class=\"dt-recipe-callbox--video\"\n >\n <!-- @slot Slot for video stream -->\n <slot name=\"video\" />\n </div>\n <div\n data-qa=\"dt-recipe-callbox--main-content\"\n :class=\"['dt-recipe-callbox--main-content', borderClass, { 'dt-recipe-callbox--clickable': clickable }]\"\n >\n <div\n class=\"dt-recipe-callbox--main-content-top\"\n >\n <dt-avatar\n v-if=\"shouldShowAvatar\"\n avatar-class=\"dt-recipe-callbox--avatar\"\n :image-src=\"avatarSrc\"\n image-alt=\"\"\n :full-name=\"avatarFullName\"\n :seed=\"avatarSeed\"\n :clickable=\"clickable\"\n :overlay-icon=\"isOnHold ? 'pause' : null\"\n size=\"sm\"\n @click=\"handleClick\"\n />\n <div class=\"dt-recipe-callbox--content\">\n <component\n :is=\"clickable ? 'button' : 'span'\"\n data-qa=\"dt-recipe-callbox--title\"\n class=\"dt-recipe-callbox--content-title\"\n @click=\"handleClick\"\n >\n {{ title }}\n </component>\n <div\n v-if=\"$slots.badge || badgeText\"\n data-qa=\"dt-recipe-callbox--badge-wrapper\"\n class=\"dt-recipe-callbox--content-badge\"\n >\n <!-- @slot Slot for call center badge -->\n <slot name=\"badge\">\n <dt-badge\n :class=\"badgeClass\"\n :text=\"badgeText\"\n />\n </slot>\n </div>\n <div\n v-if=\"$slots.subtitle\"\n data-qa=\"dt-recipe-callbox--subtitle-wrapper\"\n class=\"dt-recipe-callbox--content-subtitle\"\n >\n <!-- @slot Slot for subtitle -->\n <slot name=\"subtitle\" />\n </div>\n </div>\n <div\n v-if=\"$slots.right\"\n data-qa=\"dt-recipe-callbox--right-wrapper\"\n class=\"dt-recipe-callbox--right\"\n >\n <!-- @slot Slot for right icons -->\n <slot name=\"right\" />\n </div>\n </div>\n <div\n v-if=\"$slots.bottom\"\n data-qa=\"dt-recipe-callbox--bottom-wrapper\"\n class=\"dt-recipe-callbox--main-content-bottom\"\n >\n <slot name=\"bottom\" />\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { CALLBOX_BADGE_COLORS, CALLBOX_BORDER_COLORS } from './callbox_constants';\nimport DtAvatar from '@/components/avatar/avatar.vue';\nimport DtBadge from '@/components/badge/badge.vue';\n\nexport default {\n name: 'DtRecipeCallbox',\n\n components: { DtBadge, DtAvatar },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Text for the badge element\n */\n badgeText: {\n type: String,\n default: '',\n },\n\n /**\n * Color for the badge element\n * @values null, warning\n */\n badgeColor: {\n type: String,\n default: null,\n validator: (color) => color === null || Object.keys(CALLBOX_BADGE_COLORS).includes(color),\n },\n\n /**\n * Optional avatar image url.\n * If not provided it will use the initial of the name.\n */\n avatarSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar's full name, used to extract initials\n * to display if `avatarSrc` is empty.\n */\n avatarFullName: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar seed, set this to the user's ID to get the same avatar background gradient each time it is displayed.\n */\n avatarSeed: {\n type: String,\n default: '',\n },\n\n /**\n * Callbox title\n */\n title: {\n type: String,\n default: '',\n },\n\n /**\n * Callbox border color\n * @values default, ai, critical\n */\n borderColor: {\n type: String,\n default: 'default',\n validator: (color) => Object.keys(CALLBOX_BORDER_COLORS).includes(color),\n },\n\n /**\n * Makes the callbox avatar and title clickable,\n * emits a click event when clicked.\n */\n clickable: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Controls the avatars overlay icon\n */\n isOnHold: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Callbox click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n ],\n\n computed: {\n shouldShowAvatar () {\n return this.avatarFullName || this.avatarSrc;\n },\n\n badgeClass () {\n return CALLBOX_BADGE_COLORS[this.badgeColor];\n },\n\n borderClass () {\n return CALLBOX_BORDER_COLORS[this.borderColor];\n },\n },\n\n methods: {\n handleClick (e) {\n if (!this.clickable) return;\n this.$emit('click', e);\n },\n },\n};\n</script>\n\n<style lang=\"less\" scoped>\n.dt-recipe-callbox {\n padding: 0;\n color: var(--dt-color-foreground-primary);\n background-color: var(--dt-color-surface-primary);\n border-radius: var(--dt-size-radius-300);\n\n &--video {\n display: flex;\n border-radius: var(--dt-size-radius-200) var(--dt-size-radius-200) 0 0;\n overflow: clip;\n margin-bottom: var(--dt-space-300-negative);\n }\n\n &--main-content {\n padding: 0;\n border-radius: var(--dt-size-radius-300);\n border: var(--dt-size-border-100) solid transparent;\n align-items: stretch;\n\n &.dt-recipe-callbox--border-default {\n border-color: var(--dt-color-border-default);\n }\n\n &.dt-recipe-callbox--border-ai {\n background:\n linear-gradient(var(--dt-color-surface-primary), var(--dt-color-surface-primary)) padding-box,\n linear-gradient(135deg, var(--dt-color-border-accent), var(--dt-color-border-brand)) border-box;\n }\n\n &.dt-recipe-callbox--border-critical {\n background:\n radial-gradient(var(--dt-color-surface-primary), var(--dt-color-surface-primary)) padding-box,\n radial-gradient(circle, #E7301D, #F78B23) border-box;\n }\n\n &-top {\n display: flex;\n align-items: center;\n padding: var(--dt-space-350) var(--dt-space-400);\n }\n\n &-bottom {\n border-top: 1px solid var(--dt-color-border-subtle);\n }\n }\n\n &--avatar {\n margin-right: var(--dt-space-400);\n }\n\n &--content {\n display: flex;\n flex-direction: column;\n flex: 1 0 auto;\n min-width: 0;\n\n &-title {\n overflow: clip;\n white-space: nowrap;\n text-overflow: ellipsis;\n color: var(--dt-color-foreground-primary);\n background-color: var(--dt-color-surface-primary);\n font-weight: var(--dt-font-weight-bold);\n border: none;\n padding: 0;\n width: 0;\n min-width: 100%;\n text-align: left;\n user-select: text;\n line-height: normal;\n }\n\n &-badge {\n line-height: normal;\n }\n\n &-subtitle {\n padding: 0;\n font-size: var(--dt-font-size-100);\n color: var(--dt-color-foreground-tertiary);\n line-height: normal;\n overflow: hidden;\n width: 0;\n min-width: 100%;\n }\n }\n\n &--right {\n display: flex;\n justify-content: right;\n }\n\n &--clickable {\n .dt-recipe-callbox--content-title {\n cursor: pointer;\n user-select: none;\n border-radius: var(--dt-size-100);\n\n &:focus-visible {\n outline: none;\n box-shadow: var(--dt-shadow-focus);\n }\n\n &:hover, &:active {\n text-decoration: underline;\n }\n }\n }\n\n .dt-recipe-callbox-badge--warning {\n background-color: var(--dt-color-surface-warning);\n }\n}\n</style>\n"],"names":["_openBlock","_createElementBlock","_renderSlot","_createElementVNode","_normalizeClass","_createBlock","_resolveDynamicComponent","_createVNode"],"mappings":"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"}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
const emoji_text_wrapper = require("../../../components/emoji_text_wrapper/emoji_text_wrapper.vue.cjs");
|
|
3
3
|
const avatar = require("../../../components/avatar/avatar.vue.cjs");
|
|
4
4
|
const common_utils = require("../../../common/utils.cjs");
|
|
5
|
-
const vue3 = require("@dialpad/dialtone-icons/vue3");
|
|
6
5
|
const vue = require("vue");
|
|
7
6
|
const _pluginVue_exportHelper = require("../../../_virtual/_plugin-vue_export-helper.cjs");
|
|
8
7
|
const general_row = require("../general_row/general_row.vue.cjs");
|
|
@@ -11,8 +10,7 @@ const _sfc_main = {
|
|
|
11
10
|
components: {
|
|
12
11
|
DtAvatar: avatar,
|
|
13
12
|
DtRecipeGeneralRow: general_row,
|
|
14
|
-
DtEmojiTextWrapper: emoji_text_wrapper
|
|
15
|
-
DtIconUser: vue3.DtIconUser
|
|
13
|
+
DtEmojiTextWrapper: emoji_text_wrapper
|
|
16
14
|
},
|
|
17
15
|
inheritAttrs: false,
|
|
18
16
|
props: {
|
|
@@ -162,12 +160,14 @@ const _sfc_main = {
|
|
|
162
160
|
},
|
|
163
161
|
contactDescription() {
|
|
164
162
|
return common_utils.safeConcatStrings([this.name, this.presenceText, this.userStatus]);
|
|
163
|
+
},
|
|
164
|
+
iconName() {
|
|
165
|
+
return this.noInitials ? "user" : null;
|
|
165
166
|
}
|
|
166
167
|
}
|
|
167
168
|
};
|
|
168
169
|
const _hoisted_1 = { class: "dt-leftbar-row__status" };
|
|
169
170
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
170
|
-
const _component_dt_icon_user = vue.resolveComponent("dt-icon-user");
|
|
171
171
|
const _component_dt_avatar = vue.resolveComponent("dt-avatar");
|
|
172
172
|
const _component_dt_emoji_text_wrapper = vue.resolveComponent("dt-emoji-text-wrapper");
|
|
173
173
|
const _component_dt_recipe_general_row = vue.resolveComponent("dt-recipe-general-row");
|
|
@@ -190,18 +190,12 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
190
190
|
"image-src": $props.avatarSrc,
|
|
191
191
|
color: $props.avatarColor,
|
|
192
192
|
"image-alt": "",
|
|
193
|
+
"icon-name": $options.iconName,
|
|
194
|
+
"icon-size": "200",
|
|
193
195
|
size: "sm",
|
|
194
196
|
seed: $props.avatarSeed,
|
|
195
197
|
presence: $props.avatarPresence
|
|
196
|
-
},
|
|
197
|
-
$props.noInitials ? {
|
|
198
|
-
name: "icon",
|
|
199
|
-
fn: vue.withCtx(() => [
|
|
200
|
-
vue.createVNode(_component_dt_icon_user, { size: 200 })
|
|
201
|
-
]),
|
|
202
|
-
key: "0"
|
|
203
|
-
} : void 0
|
|
204
|
-
]), 1032, ["full-name", "image-src", "color", "seed", "presence"])
|
|
198
|
+
}, null, 8, ["full-name", "image-src", "color", "icon-name", "seed", "presence"])
|
|
205
199
|
]),
|
|
206
200
|
label: vue.withCtx(() => [
|
|
207
201
|
vue.createVNode(_component_dt_emoji_text_wrapper, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contact_row.vue.cjs","sources":["../../../../recipes/leftbar/contact_row/contact_row.vue"],"sourcesContent":["<template>\n <dt-recipe-general-row\n :unread-count=\"unreadCount\"\n :description=\"contactDescription\"\n :has-unreads=\"hasUnreads\"\n :selected=\"selected\"\n :has-call-button=\"hasCallButton\"\n :muted=\"muted\"\n :is-typing=\"isTyping\"\n :call-button-tooltip=\"callButtonTooltip\"\n :unread-count-tooltip=\"unreadCountTooltip\"\n v-bind=\"$attrs\"\n data-qa=\"contact-row\"\n v-on=\"contactRowListeners\"\n @call=\"$emit('call', $event)\"\n >\n <template #left>\n <dt-avatar\n :full-name=\"name\"\n :image-src=\"avatarSrc\"\n :color=\"avatarColor\"\n image-alt=\"\"\n
|
|
1
|
+
{"version":3,"file":"contact_row.vue.cjs","sources":["../../../../recipes/leftbar/contact_row/contact_row.vue"],"sourcesContent":["<template>\n <dt-recipe-general-row\n :unread-count=\"unreadCount\"\n :description=\"contactDescription\"\n :has-unreads=\"hasUnreads\"\n :selected=\"selected\"\n :has-call-button=\"hasCallButton\"\n :muted=\"muted\"\n :is-typing=\"isTyping\"\n :call-button-tooltip=\"callButtonTooltip\"\n :unread-count-tooltip=\"unreadCountTooltip\"\n v-bind=\"$attrs\"\n data-qa=\"contact-row\"\n v-on=\"contactRowListeners\"\n @call=\"$emit('call', $event)\"\n >\n <template #left>\n <dt-avatar\n :full-name=\"name\"\n :image-src=\"avatarSrc\"\n :color=\"avatarColor\"\n image-alt=\"\"\n :icon-name=\"iconName\"\n icon-size=\"200\"\n size=\"sm\"\n :seed=\"avatarSeed\"\n :presence=\"avatarPresence\"\n />\n </template>\n <template #label>\n <dt-emoji-text-wrapper\n class=\"dt-leftbar-row__description\"\n data-qa=\"dt-leftbar-row-description\"\n size=\"200\"\n >\n {{ name }}\n </dt-emoji-text-wrapper>\n <div class=\"dt-leftbar-row__status\">\n <span\n v-if=\"presenceText\"\n data-qa=\"dt-leftbar-row-presence-text\"\n :class=\"['dt-leftbar-row__meta-context', presenceColorClass]\"\n >\n {{ presenceText }}\n </span>\n <dt-emoji-text-wrapper\n v-if=\"userStatus\"\n size=\"100\"\n element-type=\"span\"\n data-qa=\"dt-leftbar-row-user-status\"\n class=\"dt-leftbar-row__meta-custom\"\n >\n {{ userStatus }}\n </dt-emoji-text-wrapper>\n </div>\n </template>\n </dt-recipe-general-row>\n</template>\n\n<script>\nimport { DtRecipeGeneralRow } from '@/recipes/leftbar/general_row';\nimport DtEmojiTextWrapper from '@/components/emoji_text_wrapper/emoji_text_wrapper.vue';\nimport DtAvatar from '@/components/avatar/avatar.vue';\nimport { extractVueListeners, safeConcatStrings } from '@/common/utils';\n\nexport default {\n name: 'DtRecipeContactRow',\n\n components: {\n DtAvatar,\n DtRecipeGeneralRow,\n DtEmojiTextWrapper,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Optional avatar image url.\n * If not provided it will use the initial of the name.\n */\n avatarSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Determines whether to show the presence indicator for\n * Avatar - accepts PRESENCE_STATES values: 'busy', 'away', 'offline',\n * or 'active'. By default, it's null and nothing is shown.\n * defer validation to avatar component.\n * @values null, busy, away, offline, active\n */\n avatarPresence: {\n type: String,\n default: null,\n },\n\n /**\n * Avatar seed, set this to the user's ID to get the same avatar background gradient each time it is displayed.\n */\n avatarSeed: {\n type: String,\n default: null,\n },\n\n /**\n * Avatar color to display if `avatarSrc` is empty.\n */\n avatarColor: {\n type: String,\n default: null,\n },\n\n /**\n * Text describing the user's presence, such as \"in a meeting\"\n */\n presenceText: {\n type: String,\n default: '',\n },\n\n /**\n * Name of the contact\n */\n name: {\n type: String,\n required: true,\n },\n\n /**\n * Status as set by the user.\n */\n userStatus: {\n type: String,\n default: '',\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 * Number of unread messages\n */\n unreadCount: {\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 * Determines if the row is selected\n */\n selected: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Initials will never be shown. Instead it will show a \"User\" icon.\n */\n noInitials: {\n type: Boolean,\n default: false,\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 * Whether the contact row should display a call button when hovered.\n */\n hasCallButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Text shown when the call button is hovered.\n */\n callButtonTooltip: {\n type: String,\n default: '',\n },\n\n /**\n * Text shown when the unread count is hovered.\n */\n unreadCountTooltip: {\n type: String,\n default: '',\n },\n },\n\n emits: [\n /**\n * Call button clicked\n *\n * @event call\n * @type {PointerEvent | KeyboardEvent}\n */\n 'call',\n ],\n\n computed: {\n presenceColorClass () {\n switch (this.avatarPresence) {\n case 'active':\n return 'd-fc-success';\n case 'busy':\n return 'd-fc-critical';\n case 'away':\n return 'd-fc-warning';\n default:\n return undefined;\n }\n },\n\n contactRowListeners () {\n return extractVueListeners(this.$attrs);\n },\n\n contactDescription () {\n return safeConcatStrings([this.name, this.presenceText, this.userStatus]);\n },\n\n iconName () {\n return this.noInitials ? 'user' : null;\n },\n },\n};\n</script>\n"],"names":["DtAvatar","DtRecipeGeneralRow","DtEmojiTextWrapper","extractVueListeners","safeConcatStrings","_openBlock","_createBlock","_mergeProps","_toHandlers","_createVNode","_createElementVNode","_createElementBlock"],"mappings":"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"}
|