@dialpad/dialtone 9.107.0 → 9.107.2

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.
Files changed (189) hide show
  1. package/dist/css/dialtone-default-theme.css +1 -0
  2. package/dist/css/dialtone-default-theme.min.css +1 -1
  3. package/dist/css/dialtone.css +1 -0
  4. package/dist/css/dialtone.min.css +1 -1
  5. package/dist/tokens/doc.json +16848 -16848
  6. package/dist/vue3/common/config.cjs +8 -0
  7. package/dist/vue3/common/config.cjs.map +1 -0
  8. package/dist/vue3/common/config.js +9 -0
  9. package/dist/vue3/common/config.js.map +1 -0
  10. package/dist/vue3/common/mixins/keyboard_list_navigation.cjs +2 -1
  11. package/dist/vue3/common/mixins/keyboard_list_navigation.cjs.map +1 -1
  12. package/dist/vue3/common/mixins/keyboard_list_navigation.js +2 -1
  13. package/dist/vue3/common/mixins/keyboard_list_navigation.js.map +1 -1
  14. package/dist/vue3/common/mixins/modal.cjs +4 -2
  15. package/dist/vue3/common/mixins/modal.cjs.map +1 -1
  16. package/dist/vue3/common/mixins/modal.js +4 -2
  17. package/dist/vue3/common/mixins/modal.js.map +1 -1
  18. package/dist/vue3/common/utils.cjs +28 -0
  19. package/dist/vue3/common/utils.cjs.map +1 -1
  20. package/dist/vue3/common/utils.js +28 -0
  21. package/dist/vue3/common/utils.js.map +1 -1
  22. package/dist/vue3/components/avatar/avatar.vue.cjs +3 -1
  23. package/dist/vue3/components/avatar/avatar.vue.cjs.map +1 -1
  24. package/dist/vue3/components/avatar/avatar.vue.js +4 -2
  25. package/dist/vue3/components/avatar/avatar.vue.js.map +1 -1
  26. package/dist/vue3/components/breadcrumbs/breadcrumb_item.vue.cjs +11 -6
  27. package/dist/vue3/components/breadcrumbs/breadcrumb_item.vue.cjs.map +1 -1
  28. package/dist/vue3/components/breadcrumbs/breadcrumb_item.vue.js +12 -7
  29. package/dist/vue3/components/breadcrumbs/breadcrumb_item.vue.js.map +1 -1
  30. package/dist/vue3/components/checkbox/checkbox.vue.cjs +6 -3
  31. package/dist/vue3/components/checkbox/checkbox.vue.cjs.map +1 -1
  32. package/dist/vue3/components/checkbox/checkbox.vue.js +7 -4
  33. package/dist/vue3/components/checkbox/checkbox.vue.js.map +1 -1
  34. package/dist/vue3/components/datepicker/composables/useCalendar.cjs +9 -8
  35. package/dist/vue3/components/datepicker/composables/useCalendar.cjs.map +1 -1
  36. package/dist/vue3/components/datepicker/composables/useCalendar.js +9 -8
  37. package/dist/vue3/components/datepicker/composables/useCalendar.js.map +1 -1
  38. package/dist/vue3/components/datepicker/composables/useMonthYearPicker.cjs +6 -5
  39. package/dist/vue3/components/datepicker/composables/useMonthYearPicker.cjs.map +1 -1
  40. package/dist/vue3/components/datepicker/composables/useMonthYearPicker.js +6 -5
  41. package/dist/vue3/components/datepicker/composables/useMonthYearPicker.js.map +1 -1
  42. package/dist/vue3/components/datepicker/datepicker.vue.cjs +2 -2
  43. package/dist/vue3/components/datepicker/datepicker.vue.cjs.map +1 -1
  44. package/dist/vue3/components/datepicker/datepicker.vue.js +2 -2
  45. package/dist/vue3/components/datepicker/datepicker.vue.js.map +1 -1
  46. package/dist/vue3/components/emoji_picker/modules/emoji_tabset.vue.cjs +2 -1
  47. package/dist/vue3/components/emoji_picker/modules/emoji_tabset.vue.cjs.map +1 -1
  48. package/dist/vue3/components/emoji_picker/modules/emoji_tabset.vue.js +2 -1
  49. package/dist/vue3/components/emoji_picker/modules/emoji_tabset.vue.js.map +1 -1
  50. package/dist/vue3/components/emoji_text_wrapper/emoji_text_wrapper.vue.cjs +2 -0
  51. package/dist/vue3/components/emoji_text_wrapper/emoji_text_wrapper.vue.cjs.map +1 -1
  52. package/dist/vue3/components/emoji_text_wrapper/emoji_text_wrapper.vue.js +3 -1
  53. package/dist/vue3/components/emoji_text_wrapper/emoji_text_wrapper.vue.js.map +1 -1
  54. package/dist/vue3/components/image_viewer/image_viewer.vue.cjs +3 -2
  55. package/dist/vue3/components/image_viewer/image_viewer.vue.cjs.map +1 -1
  56. package/dist/vue3/components/image_viewer/image_viewer.vue.js +3 -2
  57. package/dist/vue3/components/image_viewer/image_viewer.vue.js.map +1 -1
  58. package/dist/vue3/components/input/input.vue.cjs +8 -7
  59. package/dist/vue3/components/input/input.vue.cjs.map +1 -1
  60. package/dist/vue3/components/input/input.vue.js +10 -9
  61. package/dist/vue3/components/input/input.vue.js.map +1 -1
  62. package/dist/vue3/components/modal/modal.vue.cjs +2 -2
  63. package/dist/vue3/components/modal/modal.vue.cjs.map +1 -1
  64. package/dist/vue3/components/modal/modal.vue.js +3 -3
  65. package/dist/vue3/components/modal/modal.vue.js.map +1 -1
  66. package/dist/vue3/components/popover/popover.vue.cjs +7 -7
  67. package/dist/vue3/components/popover/popover.vue.cjs.map +1 -1
  68. package/dist/vue3/components/popover/popover.vue.js +8 -8
  69. package/dist/vue3/components/popover/popover.vue.js.map +1 -1
  70. package/dist/vue3/components/popover/popover_header_footer.vue.cjs +1 -1
  71. package/dist/vue3/components/popover/popover_header_footer.vue.cjs.map +1 -1
  72. package/dist/vue3/components/popover/popover_header_footer.vue.js +2 -2
  73. package/dist/vue3/components/popover/popover_header_footer.vue.js.map +1 -1
  74. package/dist/vue3/components/radio/radio.vue.cjs +5 -3
  75. package/dist/vue3/components/radio/radio.vue.cjs.map +1 -1
  76. package/dist/vue3/components/radio/radio.vue.js +7 -5
  77. package/dist/vue3/components/radio/radio.vue.js.map +1 -1
  78. package/dist/vue3/components/rich_text_editor/rich_text_editor.vue.cjs +2 -2
  79. package/dist/vue3/components/rich_text_editor/rich_text_editor.vue.cjs.map +1 -1
  80. package/dist/vue3/components/rich_text_editor/rich_text_editor.vue.js +3 -3
  81. package/dist/vue3/components/rich_text_editor/rich_text_editor.vue.js.map +1 -1
  82. package/dist/vue3/components/scroller/modules/dynamic_scroller.vue.cjs +4 -3
  83. package/dist/vue3/components/scroller/modules/dynamic_scroller.vue.cjs.map +1 -1
  84. package/dist/vue3/components/scroller/modules/dynamic_scroller.vue.js +4 -3
  85. package/dist/vue3/components/scroller/modules/dynamic_scroller.vue.js.map +1 -1
  86. package/dist/vue3/components/scroller/modules/scroller_item.vue.cjs +6 -5
  87. package/dist/vue3/components/scroller/modules/scroller_item.vue.cjs.map +1 -1
  88. package/dist/vue3/components/scroller/modules/scroller_item.vue.js +6 -5
  89. package/dist/vue3/components/scroller/modules/scroller_item.vue.js.map +1 -1
  90. package/dist/vue3/components/select_menu/select_menu.vue.cjs +5 -3
  91. package/dist/vue3/components/select_menu/select_menu.vue.cjs.map +1 -1
  92. package/dist/vue3/components/select_menu/select_menu.vue.js +7 -5
  93. package/dist/vue3/components/select_menu/select_menu.vue.js.map +1 -1
  94. package/dist/vue3/components/split_button/split_button.vue.cjs +5 -3
  95. package/dist/vue3/components/split_button/split_button.vue.cjs.map +1 -1
  96. package/dist/vue3/components/split_button/split_button.vue.js +6 -4
  97. package/dist/vue3/components/split_button/split_button.vue.js.map +1 -1
  98. package/dist/vue3/components/tab/tab_panel.vue.cjs +3 -2
  99. package/dist/vue3/components/tab/tab_panel.vue.cjs.map +1 -1
  100. package/dist/vue3/components/tab/tab_panel.vue.js +3 -2
  101. package/dist/vue3/components/tab/tab_panel.vue.js.map +1 -1
  102. package/dist/vue3/components/toggle/toggle.vue.cjs +10 -10
  103. package/dist/vue3/components/toggle/toggle.vue.cjs.map +1 -1
  104. package/dist/vue3/components/toggle/toggle.vue.js +11 -11
  105. package/dist/vue3/components/toggle/toggle.vue.js.map +1 -1
  106. package/dist/vue3/components/tooltip/tooltip.vue.cjs +3 -3
  107. package/dist/vue3/components/tooltip/tooltip.vue.cjs.map +1 -1
  108. package/dist/vue3/components/tooltip/tooltip.vue.js +4 -4
  109. package/dist/vue3/components/tooltip/tooltip.vue.js.map +1 -1
  110. package/dist/vue3/recipes/buttons/callbar_button/callbar_button.vue.cjs +10 -5
  111. package/dist/vue3/recipes/buttons/callbar_button/callbar_button.vue.cjs.map +1 -1
  112. package/dist/vue3/recipes/buttons/callbar_button/callbar_button.vue.js +12 -7
  113. package/dist/vue3/recipes/buttons/callbar_button/callbar_button.vue.js.map +1 -1
  114. package/dist/vue3/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.cjs +6 -5
  115. package/dist/vue3/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.cjs.map +1 -1
  116. package/dist/vue3/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.js +8 -7
  117. package/dist/vue3/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.js.map +1 -1
  118. package/dist/vue3/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.cjs +6 -5
  119. package/dist/vue3/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.cjs.map +1 -1
  120. package/dist/vue3/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.js +8 -7
  121. package/dist/vue3/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.js.map +1 -1
  122. package/dist/vue3/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.cjs +2 -2
  123. package/dist/vue3/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.cjs.map +1 -1
  124. package/dist/vue3/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.js +3 -3
  125. package/dist/vue3/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.js.map +1 -1
  126. package/dist/vue3/recipes/conversation_view/editor/editor.vue.cjs +7 -5
  127. package/dist/vue3/recipes/conversation_view/editor/editor.vue.cjs.map +1 -1
  128. package/dist/vue3/recipes/conversation_view/editor/editor.vue.js +8 -6
  129. package/dist/vue3/recipes/conversation_view/editor/editor.vue.js.map +1 -1
  130. package/dist/vue3/recipes/conversation_view/message_input/message_input.vue.cjs +10 -6
  131. package/dist/vue3/recipes/conversation_view/message_input/message_input.vue.cjs.map +1 -1
  132. package/dist/vue3/recipes/conversation_view/message_input/message_input.vue.js +11 -7
  133. package/dist/vue3/recipes/conversation_view/message_input/message_input.vue.js.map +1 -1
  134. package/dist/vue3/recipes/leftbar/callbox/callbox.vue.cjs +19 -19
  135. package/dist/vue3/recipes/leftbar/callbox/callbox.vue.cjs.map +1 -1
  136. package/dist/vue3/recipes/leftbar/callbox/callbox.vue.js +20 -20
  137. package/dist/vue3/recipes/leftbar/callbox/callbox.vue.js.map +1 -1
  138. package/dist/vue3/recipes/leftbar/contact_centers_row/contact_centers_row.vue.cjs +12 -10
  139. package/dist/vue3/recipes/leftbar/contact_centers_row/contact_centers_row.vue.cjs.map +1 -1
  140. package/dist/vue3/recipes/leftbar/contact_centers_row/contact_centers_row.vue.js +14 -12
  141. package/dist/vue3/recipes/leftbar/contact_centers_row/contact_centers_row.vue.js.map +1 -1
  142. package/dist/vue3/recipes/leftbar/general_row/general_row.vue.cjs +9 -10
  143. package/dist/vue3/recipes/leftbar/general_row/general_row.vue.cjs.map +1 -1
  144. package/dist/vue3/recipes/leftbar/general_row/general_row.vue.js +11 -12
  145. package/dist/vue3/recipes/leftbar/general_row/general_row.vue.js.map +1 -1
  146. package/dist/vue3/types/common/config/index.d.ts +3 -0
  147. package/dist/vue3/types/common/config/index.d.ts.map +1 -0
  148. package/dist/vue3/types/common/mixins/keyboard_list_navigation.d.ts.map +1 -1
  149. package/dist/vue3/types/common/mixins/modal.d.ts.map +1 -1
  150. package/dist/vue3/types/common/utils/index.d.ts +12 -0
  151. package/dist/vue3/types/common/utils/index.d.ts.map +1 -1
  152. package/dist/vue3/types/components/avatar/avatar.vue.d.ts.map +1 -1
  153. package/dist/vue3/types/components/breadcrumbs/breadcrumb_item.vue.d.ts +5 -1
  154. package/dist/vue3/types/components/breadcrumbs/breadcrumb_item.vue.d.ts.map +1 -1
  155. package/dist/vue3/types/components/checkbox/checkbox.vue.d.ts +3 -0
  156. package/dist/vue3/types/components/checkbox/checkbox.vue.d.ts.map +1 -1
  157. package/dist/vue3/types/components/datepicker/composables/useCalendar.d.ts.map +1 -1
  158. package/dist/vue3/types/components/datepicker/composables/useMonthYearPicker.d.ts.map +1 -1
  159. package/dist/vue3/types/components/emoji_picker/modules/emoji_tabset.vue.d.ts.map +1 -1
  160. package/dist/vue3/types/components/emoji_text_wrapper/emoji_text_wrapper.vue.d.ts.map +1 -1
  161. package/dist/vue3/types/components/input/input.vue.d.ts +3 -1
  162. package/dist/vue3/types/components/input/input.vue.d.ts.map +1 -1
  163. package/dist/vue3/types/components/modal/modal.vue.d.ts.map +1 -1
  164. package/dist/vue3/types/components/popover/popover.vue.d.ts.map +1 -1
  165. package/dist/vue3/types/components/popover/popover_header_footer.vue.d.ts.map +1 -1
  166. package/dist/vue3/types/components/radio/radio.vue.d.ts +3 -1
  167. package/dist/vue3/types/components/radio/radio.vue.d.ts.map +1 -1
  168. package/dist/vue3/types/components/select_menu/select_menu.vue.d.ts +3 -1
  169. package/dist/vue3/types/components/select_menu/select_menu.vue.d.ts.map +1 -1
  170. package/dist/vue3/types/components/split_button/split_button.vue.d.ts +2 -0
  171. package/dist/vue3/types/components/toggle/toggle.vue.d.ts +3 -4
  172. package/dist/vue3/types/components/toggle/toggle.vue.d.ts.map +1 -1
  173. package/dist/vue3/types/components/tooltip/tooltip.vue.d.ts.map +1 -1
  174. package/dist/vue3/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts +5 -1
  175. package/dist/vue3/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts.map +1 -1
  176. package/dist/vue3/types/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts +3 -0
  177. package/dist/vue3/types/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts.map +1 -1
  178. package/dist/vue3/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +3 -0
  179. package/dist/vue3/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts.map +1 -1
  180. package/dist/vue3/types/recipes/conversation_view/editor/editor.vue.d.ts +3 -0
  181. package/dist/vue3/types/recipes/conversation_view/editor/editor.vue.d.ts.map +1 -1
  182. package/dist/vue3/types/recipes/conversation_view/message_input/message_input.vue.d.ts +3 -0
  183. package/dist/vue3/types/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
  184. package/dist/vue3/types/recipes/leftbar/callbox/callbox.vue.d.ts.map +1 -1
  185. package/dist/vue3/types/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts +3 -0
  186. package/dist/vue3/types/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts.map +1 -1
  187. package/dist/vue3/types/recipes/leftbar/general_row/general_row.vue.d.ts +3 -0
  188. package/dist/vue3/types/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
  189. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"contact_centers_row.vue.cjs","sources":["../../../../recipes/leftbar/contact_centers_row/contact_centers_row.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n 'd-recipe-leftbar-row__container',\n { 'd-recipe-leftbar-row__container--off-duty': $slots.timer },\n ]\"\n >\n <div\n :class=\"leftbarContactCentersRowClasses\"\n data-qa=\"dt-recipe-contact-centers-row\"\n >\n <a\n class=\"d-recipe-leftbar-row__primary\"\n :data-qa=\"$attrs['data-qa'] ?? 'd-recipe-leftbar-row-link'\"\n :aria-label=\"getAriaLabel\"\n :title=\"description\"\n :href=\"$attrs.href ?? 'javascript:void(0)'\"\n v-bind=\"$attrs\"\n v-on=\"contactRowListeners\"\n @click=\"$emit('click', $event)\"\n >\n <div class=\"d-recipe-leftbar-row__alpha\">\n <dt-icon-headphones\n size=\"300\"\n data-qa=\"dt-recipe-leftbar-row-icon\"\n />\n </div>\n <div\n class=\"d-recipe-leftbar-row__label\"\n :style=\"`flex-basis: ${labelWidth}`\"\n >\n <dt-emoji-text-wrapper\n class=\"d-recipe-leftbar-row__description\"\n data-qa=\"dt-recipe-leftbar-row-description\"\n size=\"200\"\n >\n {{ description }}\n </dt-emoji-text-wrapper>\n </div>\n </a>\n <div\n v-if=\"!hideActions\"\n class=\"d-recipe-leftbar-row__omega\"\n >\n <slot name=\"right\" />\n <div class=\"d-recipe-leftbar-row__action-container\">\n <dt-badge\n v-if=\"showUnreadCount\"\n class=\"d-recipe-leftbar-row__unread-badge\"\n data-qa=\"dt-recipe-leftbar-row-unread-badge\"\n kind=\"count\"\n type=\"bulletin\"\n >\n {{ unreadCount }}\n </dt-badge>\n <dt-button\n class=\"d-recipe-leftbar-row__action\"\n data-qa=\"dt-recipe-leftbar-row-action-button\"\n :aria-label=\"menuButtonAriaLabel\"\n importance=\"clear\"\n size=\"xs\"\n circle\n @click.stop=\"$emit('click-menu', $event)\"\n >\n <template #icon>\n <dt-icon-chevron-down size=\"100\" />\n </template>\n </dt-button>\n </div>\n </div>\n </div>\n <div class=\"d-recipe-leftbar-row__bottom\">\n <slot name=\"timer\" />\n </div>\n </div>\n</template>\n\n<script>\nimport { extractVueListeners, safeConcatStrings } from '@/common/utils';\nimport { DtBadge } from '@/components/badge';\nimport { DtButton } from '@/components/button';\nimport DtEmojiTextWrapper from '@/components/emoji_text_wrapper/emoji_text_wrapper.vue';\nimport DtIconChevronDown from '@dialpad/dialtone-icons/vue3/chevron-down';\nimport DtIconHeadphones from '@dialpad/dialtone-icons/vue3/headphones';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeContactCentersRow',\n\n components: {\n DtButton,\n DtBadge,\n DtEmojiTextWrapper,\n DtIconHeadphones,\n DtIconChevronDown,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Will be read out by a screen reader upon focus of this row. If not defined \"description\" will be read.\n */\n ariaLabel: {\n type: String,\n default: '',\n },\n\n /**\n * Text displayed next to the icon. Required.\n */\n description: {\n type: String,\n required: true,\n },\n\n /**\n * Determines if the row is selected\n */\n selected: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Making this true will hide the unread count badge, the chevron button, and the right slot\n */\n hideActions: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Number of unread messages, could be a string to support '99+'\n */\n unreadCount: {\n type: String,\n default: null,\n },\n\n /**\n * Aria label for the menu button.\n */\n menuButtonAriaLabel: {\n type: String,\n required: true,\n },\n },\n\n emits: [\n /**\n * Native click event on the row itself\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n\n /**\n * Menu button clicked\n *\n * @event call\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click-menu',\n ],\n\n data () {\n return {\n labelWidth: 'auto',\n };\n },\n\n computed: {\n leftbarContactCentersRowClasses () {\n return [\n 'd-recipe-leftbar-row',\n 'd-recipe-leftbar-row--contact-centers',\n {\n 'd-recipe-leftbar-row__unread-count': this.showUnreadCount,\n 'd-recipe-leftbar-row--selected': this.selected,\n },\n ];\n },\n\n getAriaLabel () {\n return this.ariaLabel\n ? this.ariaLabel\n : safeConcatStrings([this.description, this.unreadCountTooltip]);\n },\n\n contactRowListeners () {\n return extractVueListeners(this.$attrs);\n },\n\n showUnreadCount () {\n return !!this.unreadCount;\n },\n },\n\n watch: {\n $props: {\n deep: true,\n async handler () {\n await this.$nextTick();\n this.adjustLabelWidth();\n },\n },\n },\n\n mounted () {\n this.resizeObserver = new ResizeObserver(this.adjustLabelWidth);\n this.resizeObserver.observe(this.$el);\n this.adjustLabelWidth();\n },\n\n beforeUnmount: function () {\n this.resizeObserver.disconnect();\n },\n\n methods: {\n adjustLabelWidth () {\n const labelWidth = this.$el?.querySelector('.d-recipe-leftbar-row__primary')?.clientWidth || 0;\n const omegaWidth = this.$el?.querySelector('.d-recipe-leftbar-row__omega')?.clientWidth || 0;\n const alphaWidth = this.$el?.querySelector('.d-recipe-leftbar-row__alpha')?.clientWidth || 0;\n const paddings = 12;\n this.labelWidth = labelWidth - (omegaWidth + alphaWidth + paddings) + 'px';\n },\n },\n};\n</script>\n"],"names":["DtButton","DtBadge","DtEmojiTextWrapper","safeConcatStrings","extractVueListeners","_createElementBlock","_normalizeClass","_createElementVNode","_mergeProps","_toHandlers","_createVNode","_normalizeStyle","_withCtx","_createTextVNode","_toDisplayString","_openBlock","_renderSlot","_createBlock","_createCommentVNode","_withModifiers"],"mappings":"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"}
1
+ {"version":3,"file":"contact_centers_row.vue.cjs","sources":["../../../../recipes/leftbar/contact_centers_row/contact_centers_row.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n 'd-recipe-leftbar-row__container',\n { 'd-recipe-leftbar-row__container--off-duty': $slots.timer },\n ]\"\n v-bind=\"addClassStyleAttrs($attrs)\"\n >\n <div\n :class=\"leftbarContactCentersRowClasses\"\n data-qa=\"dt-recipe-contact-centers-row\"\n >\n <a\n class=\"d-recipe-leftbar-row__primary\"\n :data-qa=\"$attrs['data-qa'] ?? 'd-recipe-leftbar-row-link'\"\n :aria-label=\"getAriaLabel\"\n :title=\"description\"\n :href=\"$attrs.href ?? 'javascript:void(0)'\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n v-on=\"contactRowListeners\"\n @click=\"$emit('click', $event)\"\n >\n <div class=\"d-recipe-leftbar-row__alpha\">\n <dt-icon-headphones\n size=\"300\"\n data-qa=\"dt-recipe-leftbar-row-icon\"\n />\n </div>\n <div\n class=\"d-recipe-leftbar-row__label\"\n :style=\"`flex-basis: ${labelWidth}`\"\n >\n <dt-emoji-text-wrapper\n class=\"d-recipe-leftbar-row__description\"\n data-qa=\"dt-recipe-leftbar-row-description\"\n size=\"200\"\n >\n {{ description }}\n </dt-emoji-text-wrapper>\n </div>\n </a>\n <div\n v-if=\"!hideActions\"\n class=\"d-recipe-leftbar-row__omega\"\n >\n <slot name=\"right\" />\n <div class=\"d-recipe-leftbar-row__action-container\">\n <dt-badge\n v-if=\"showUnreadCount\"\n class=\"d-recipe-leftbar-row__unread-badge\"\n data-qa=\"dt-recipe-leftbar-row-unread-badge\"\n kind=\"count\"\n type=\"bulletin\"\n >\n {{ unreadCount }}\n </dt-badge>\n <dt-button\n class=\"d-recipe-leftbar-row__action\"\n data-qa=\"dt-recipe-leftbar-row-action-button\"\n :aria-label=\"menuButtonAriaLabel\"\n importance=\"clear\"\n size=\"xs\"\n circle\n @click.stop=\"$emit('click-menu', $event)\"\n >\n <template #icon>\n <dt-icon-chevron-down size=\"100\" />\n </template>\n </dt-button>\n </div>\n </div>\n </div>\n <div class=\"d-recipe-leftbar-row__bottom\">\n <slot name=\"timer\" />\n </div>\n </div>\n</template>\n\n<script>\nimport { extractVueListeners, safeConcatStrings, removeClassStyleAttrs, returnFirstEl, addClassStyleAttrs } from '@/common/utils';\nimport { DtBadge } from '@/components/badge';\nimport { DtButton } from '@/components/button';\nimport DtEmojiTextWrapper from '@/components/emoji_text_wrapper/emoji_text_wrapper.vue';\nimport DtIconChevronDown from '@dialpad/dialtone-icons/vue3/chevron-down';\nimport DtIconHeadphones from '@dialpad/dialtone-icons/vue3/headphones';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeContactCentersRow',\n\n components: {\n DtButton,\n DtBadge,\n DtEmojiTextWrapper,\n DtIconHeadphones,\n DtIconChevronDown,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Will be read out by a screen reader upon focus of this row. If not defined \"description\" will be read.\n */\n ariaLabel: {\n type: String,\n default: '',\n },\n\n /**\n * Text displayed next to the icon. Required.\n */\n description: {\n type: String,\n required: true,\n },\n\n /**\n * Determines if the row is selected\n */\n selected: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Making this true will hide the unread count badge, the chevron button, and the right slot\n */\n hideActions: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Number of unread messages, could be a string to support '99+'\n */\n unreadCount: {\n type: String,\n default: null,\n },\n\n /**\n * Aria label for the menu button.\n */\n menuButtonAriaLabel: {\n type: String,\n required: true,\n },\n },\n\n emits: [\n /**\n * Native click event on the row itself\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n\n /**\n * Menu button clicked\n *\n * @event call\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click-menu',\n ],\n\n data () {\n return {\n labelWidth: 'auto',\n };\n },\n\n computed: {\n leftbarContactCentersRowClasses () {\n return [\n 'd-recipe-leftbar-row',\n 'd-recipe-leftbar-row--contact-centers',\n {\n 'd-recipe-leftbar-row__unread-count': this.showUnreadCount,\n 'd-recipe-leftbar-row--selected': this.selected,\n },\n ];\n },\n\n getAriaLabel () {\n return this.ariaLabel\n ? this.ariaLabel\n : safeConcatStrings([this.description, this.unreadCountTooltip]);\n },\n\n contactRowListeners () {\n return extractVueListeners(this.$attrs);\n },\n\n showUnreadCount () {\n return !!this.unreadCount;\n },\n },\n\n watch: {\n $props: {\n deep: true,\n async handler () {\n await this.$nextTick();\n this.adjustLabelWidth();\n },\n },\n },\n\n mounted () {\n this.resizeObserver = new ResizeObserver(this.adjustLabelWidth);\n this.resizeObserver.observe(returnFirstEl(this.$el));\n this.adjustLabelWidth();\n },\n\n beforeUnmount: function () {\n this.resizeObserver.disconnect();\n },\n\n methods: {\n removeClassStyleAttrs,\n addClassStyleAttrs,\n\n adjustLabelWidth () {\n const labelWidth = returnFirstEl(this.$el)?.querySelector('.d-recipe-leftbar-row__primary')?.clientWidth || 0;\n const omegaWidth = returnFirstEl(this.$el)?.querySelector('.d-recipe-leftbar-row__omega')?.clientWidth || 0;\n const alphaWidth = returnFirstEl(this.$el)?.querySelector('.d-recipe-leftbar-row__alpha')?.clientWidth || 0;\n const paddings = 12;\n this.labelWidth = labelWidth - (omegaWidth + alphaWidth + paddings) + 'px';\n },\n },\n};\n</script>\n"],"names":["DtButton","DtBadge","DtEmojiTextWrapper","safeConcatStrings","extractVueListeners","returnFirstEl","removeClassStyleAttrs","addClassStyleAttrs","_openBlock","_createElementBlock","_mergeProps","_createElementVNode","_normalizeClass","_toHandlers","_createVNode","_normalizeStyle","_withCtx","_createTextVNode","_toDisplayString","_renderSlot","_createBlock","_createCommentVNode","_withModifiers"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { safeConcatStrings, extractVueListeners } from "../../../common/utils.js";
1
+ import { safeConcatStrings, extractVueListeners, returnFirstEl, removeClassStyleAttrs, addClassStyleAttrs } from "../../../common/utils.js";
2
2
  import DtEmojiTextWrapper from "../../../components/emoji_text_wrapper/emoji_text_wrapper.vue.js";
3
3
  import DtIconChevronDown from "@dialpad/dialtone-icons/vue3/chevron-down";
4
4
  import DtIconHeadphones from "@dialpad/dialtone-icons/vue3/headphones";
5
- import { resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, mergeProps, toHandlers, createVNode, normalizeStyle, withCtx, createTextVNode, toDisplayString, renderSlot, createBlock, createCommentVNode, withModifiers } from "vue";
5
+ import { resolveComponent, openBlock, createElementBlock, mergeProps, createElementVNode, normalizeClass, toHandlers, createVNode, normalizeStyle, withCtx, createTextVNode, toDisplayString, renderSlot, createBlock, createCommentVNode, withModifiers } from "vue";
6
6
  import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.js";
7
7
  import DtButton from "../../../components/button/button.vue.js";
8
8
  import DtBadge from "../../../components/badge/badge.vue.js";
@@ -114,18 +114,20 @@ const _sfc_main = {
114
114
  },
115
115
  mounted() {
116
116
  this.resizeObserver = new ResizeObserver(this.adjustLabelWidth);
117
- this.resizeObserver.observe(this.$el);
117
+ this.resizeObserver.observe(returnFirstEl(this.$el));
118
118
  this.adjustLabelWidth();
119
119
  },
120
120
  beforeUnmount: function() {
121
121
  this.resizeObserver.disconnect();
122
122
  },
123
123
  methods: {
124
+ removeClassStyleAttrs,
125
+ addClassStyleAttrs,
124
126
  adjustLabelWidth() {
125
127
  var _a, _b, _c, _d, _e, _f;
126
- const labelWidth = ((_b = (_a = this.$el) == null ? void 0 : _a.querySelector(".d-recipe-leftbar-row__primary")) == null ? void 0 : _b.clientWidth) || 0;
127
- const omegaWidth = ((_d = (_c = this.$el) == null ? void 0 : _c.querySelector(".d-recipe-leftbar-row__omega")) == null ? void 0 : _d.clientWidth) || 0;
128
- const alphaWidth = ((_f = (_e = this.$el) == null ? void 0 : _e.querySelector(".d-recipe-leftbar-row__alpha")) == null ? void 0 : _f.clientWidth) || 0;
128
+ const labelWidth = ((_b = (_a = returnFirstEl(this.$el)) == null ? void 0 : _a.querySelector(".d-recipe-leftbar-row__primary")) == null ? void 0 : _b.clientWidth) || 0;
129
+ const omegaWidth = ((_d = (_c = returnFirstEl(this.$el)) == null ? void 0 : _c.querySelector(".d-recipe-leftbar-row__omega")) == null ? void 0 : _d.clientWidth) || 0;
130
+ const alphaWidth = ((_f = (_e = returnFirstEl(this.$el)) == null ? void 0 : _e.querySelector(".d-recipe-leftbar-row__alpha")) == null ? void 0 : _f.clientWidth) || 0;
129
131
  const paddings = 12;
130
132
  this.labelWidth = labelWidth - (omegaWidth + alphaWidth + paddings) + "px";
131
133
  }
@@ -145,12 +147,12 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
145
147
  const _component_dt_badge = resolveComponent("dt-badge");
146
148
  const _component_dt_icon_chevron_down = resolveComponent("dt-icon-chevron-down");
147
149
  const _component_dt_button = resolveComponent("dt-button");
148
- return openBlock(), createElementBlock("div", {
149
- class: normalizeClass([
150
+ return openBlock(), createElementBlock("div", mergeProps({
151
+ class: [
150
152
  "d-recipe-leftbar-row__container",
151
153
  { "d-recipe-leftbar-row__container--off-duty": _ctx.$slots.timer }
152
- ])
153
- }, [
154
+ ]
155
+ }, $options.addClassStyleAttrs(_ctx.$attrs)), [
154
156
  createElementVNode("div", {
155
157
  class: normalizeClass($options.leftbarContactCentersRowClasses),
156
158
  "data-qa": "dt-recipe-contact-centers-row"
@@ -161,7 +163,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
161
163
  "aria-label": $options.getAriaLabel,
162
164
  title: $props.description,
163
165
  href: _ctx.$attrs.href ?? "javascript:void(0)"
164
- }, _ctx.$attrs, toHandlers($options.contactRowListeners, true), {
166
+ }, $options.removeClassStyleAttrs(_ctx.$attrs), toHandlers($options.contactRowListeners, true), {
165
167
  onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("click", $event))
166
168
  }), [
167
169
  createElementVNode("div", _hoisted_2, [
@@ -221,7 +223,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
221
223
  createElementVNode("div", _hoisted_5, [
222
224
  renderSlot(_ctx.$slots, "timer")
223
225
  ])
224
- ], 2);
226
+ ], 16);
225
227
  }
226
228
  const contact_centers_row = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
227
229
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"contact_centers_row.vue.js","sources":["../../../../recipes/leftbar/contact_centers_row/contact_centers_row.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n 'd-recipe-leftbar-row__container',\n { 'd-recipe-leftbar-row__container--off-duty': $slots.timer },\n ]\"\n >\n <div\n :class=\"leftbarContactCentersRowClasses\"\n data-qa=\"dt-recipe-contact-centers-row\"\n >\n <a\n class=\"d-recipe-leftbar-row__primary\"\n :data-qa=\"$attrs['data-qa'] ?? 'd-recipe-leftbar-row-link'\"\n :aria-label=\"getAriaLabel\"\n :title=\"description\"\n :href=\"$attrs.href ?? 'javascript:void(0)'\"\n v-bind=\"$attrs\"\n v-on=\"contactRowListeners\"\n @click=\"$emit('click', $event)\"\n >\n <div class=\"d-recipe-leftbar-row__alpha\">\n <dt-icon-headphones\n size=\"300\"\n data-qa=\"dt-recipe-leftbar-row-icon\"\n />\n </div>\n <div\n class=\"d-recipe-leftbar-row__label\"\n :style=\"`flex-basis: ${labelWidth}`\"\n >\n <dt-emoji-text-wrapper\n class=\"d-recipe-leftbar-row__description\"\n data-qa=\"dt-recipe-leftbar-row-description\"\n size=\"200\"\n >\n {{ description }}\n </dt-emoji-text-wrapper>\n </div>\n </a>\n <div\n v-if=\"!hideActions\"\n class=\"d-recipe-leftbar-row__omega\"\n >\n <slot name=\"right\" />\n <div class=\"d-recipe-leftbar-row__action-container\">\n <dt-badge\n v-if=\"showUnreadCount\"\n class=\"d-recipe-leftbar-row__unread-badge\"\n data-qa=\"dt-recipe-leftbar-row-unread-badge\"\n kind=\"count\"\n type=\"bulletin\"\n >\n {{ unreadCount }}\n </dt-badge>\n <dt-button\n class=\"d-recipe-leftbar-row__action\"\n data-qa=\"dt-recipe-leftbar-row-action-button\"\n :aria-label=\"menuButtonAriaLabel\"\n importance=\"clear\"\n size=\"xs\"\n circle\n @click.stop=\"$emit('click-menu', $event)\"\n >\n <template #icon>\n <dt-icon-chevron-down size=\"100\" />\n </template>\n </dt-button>\n </div>\n </div>\n </div>\n <div class=\"d-recipe-leftbar-row__bottom\">\n <slot name=\"timer\" />\n </div>\n </div>\n</template>\n\n<script>\nimport { extractVueListeners, safeConcatStrings } from '@/common/utils';\nimport { DtBadge } from '@/components/badge';\nimport { DtButton } from '@/components/button';\nimport DtEmojiTextWrapper from '@/components/emoji_text_wrapper/emoji_text_wrapper.vue';\nimport DtIconChevronDown from '@dialpad/dialtone-icons/vue3/chevron-down';\nimport DtIconHeadphones from '@dialpad/dialtone-icons/vue3/headphones';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeContactCentersRow',\n\n components: {\n DtButton,\n DtBadge,\n DtEmojiTextWrapper,\n DtIconHeadphones,\n DtIconChevronDown,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Will be read out by a screen reader upon focus of this row. If not defined \"description\" will be read.\n */\n ariaLabel: {\n type: String,\n default: '',\n },\n\n /**\n * Text displayed next to the icon. Required.\n */\n description: {\n type: String,\n required: true,\n },\n\n /**\n * Determines if the row is selected\n */\n selected: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Making this true will hide the unread count badge, the chevron button, and the right slot\n */\n hideActions: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Number of unread messages, could be a string to support '99+'\n */\n unreadCount: {\n type: String,\n default: null,\n },\n\n /**\n * Aria label for the menu button.\n */\n menuButtonAriaLabel: {\n type: String,\n required: true,\n },\n },\n\n emits: [\n /**\n * Native click event on the row itself\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n\n /**\n * Menu button clicked\n *\n * @event call\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click-menu',\n ],\n\n data () {\n return {\n labelWidth: 'auto',\n };\n },\n\n computed: {\n leftbarContactCentersRowClasses () {\n return [\n 'd-recipe-leftbar-row',\n 'd-recipe-leftbar-row--contact-centers',\n {\n 'd-recipe-leftbar-row__unread-count': this.showUnreadCount,\n 'd-recipe-leftbar-row--selected': this.selected,\n },\n ];\n },\n\n getAriaLabel () {\n return this.ariaLabel\n ? this.ariaLabel\n : safeConcatStrings([this.description, this.unreadCountTooltip]);\n },\n\n contactRowListeners () {\n return extractVueListeners(this.$attrs);\n },\n\n showUnreadCount () {\n return !!this.unreadCount;\n },\n },\n\n watch: {\n $props: {\n deep: true,\n async handler () {\n await this.$nextTick();\n this.adjustLabelWidth();\n },\n },\n },\n\n mounted () {\n this.resizeObserver = new ResizeObserver(this.adjustLabelWidth);\n this.resizeObserver.observe(this.$el);\n this.adjustLabelWidth();\n },\n\n beforeUnmount: function () {\n this.resizeObserver.disconnect();\n },\n\n methods: {\n adjustLabelWidth () {\n const labelWidth = this.$el?.querySelector('.d-recipe-leftbar-row__primary')?.clientWidth || 0;\n const omegaWidth = this.$el?.querySelector('.d-recipe-leftbar-row__omega')?.clientWidth || 0;\n const alphaWidth = this.$el?.querySelector('.d-recipe-leftbar-row__alpha')?.clientWidth || 0;\n const paddings = 12;\n this.labelWidth = labelWidth - (omegaWidth + alphaWidth + paddings) + 'px';\n },\n },\n};\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_createElementVNode","_mergeProps","_toHandlers","_createVNode","_normalizeStyle","_withCtx","_createTextVNode","_toDisplayString","_openBlock","_renderSlot","_createBlock","_createCommentVNode","_withModifiers"],"mappings":"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"}
1
+ {"version":3,"file":"contact_centers_row.vue.js","sources":["../../../../recipes/leftbar/contact_centers_row/contact_centers_row.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n 'd-recipe-leftbar-row__container',\n { 'd-recipe-leftbar-row__container--off-duty': $slots.timer },\n ]\"\n v-bind=\"addClassStyleAttrs($attrs)\"\n >\n <div\n :class=\"leftbarContactCentersRowClasses\"\n data-qa=\"dt-recipe-contact-centers-row\"\n >\n <a\n class=\"d-recipe-leftbar-row__primary\"\n :data-qa=\"$attrs['data-qa'] ?? 'd-recipe-leftbar-row-link'\"\n :aria-label=\"getAriaLabel\"\n :title=\"description\"\n :href=\"$attrs.href ?? 'javascript:void(0)'\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n v-on=\"contactRowListeners\"\n @click=\"$emit('click', $event)\"\n >\n <div class=\"d-recipe-leftbar-row__alpha\">\n <dt-icon-headphones\n size=\"300\"\n data-qa=\"dt-recipe-leftbar-row-icon\"\n />\n </div>\n <div\n class=\"d-recipe-leftbar-row__label\"\n :style=\"`flex-basis: ${labelWidth}`\"\n >\n <dt-emoji-text-wrapper\n class=\"d-recipe-leftbar-row__description\"\n data-qa=\"dt-recipe-leftbar-row-description\"\n size=\"200\"\n >\n {{ description }}\n </dt-emoji-text-wrapper>\n </div>\n </a>\n <div\n v-if=\"!hideActions\"\n class=\"d-recipe-leftbar-row__omega\"\n >\n <slot name=\"right\" />\n <div class=\"d-recipe-leftbar-row__action-container\">\n <dt-badge\n v-if=\"showUnreadCount\"\n class=\"d-recipe-leftbar-row__unread-badge\"\n data-qa=\"dt-recipe-leftbar-row-unread-badge\"\n kind=\"count\"\n type=\"bulletin\"\n >\n {{ unreadCount }}\n </dt-badge>\n <dt-button\n class=\"d-recipe-leftbar-row__action\"\n data-qa=\"dt-recipe-leftbar-row-action-button\"\n :aria-label=\"menuButtonAriaLabel\"\n importance=\"clear\"\n size=\"xs\"\n circle\n @click.stop=\"$emit('click-menu', $event)\"\n >\n <template #icon>\n <dt-icon-chevron-down size=\"100\" />\n </template>\n </dt-button>\n </div>\n </div>\n </div>\n <div class=\"d-recipe-leftbar-row__bottom\">\n <slot name=\"timer\" />\n </div>\n </div>\n</template>\n\n<script>\nimport { extractVueListeners, safeConcatStrings, removeClassStyleAttrs, returnFirstEl, addClassStyleAttrs } from '@/common/utils';\nimport { DtBadge } from '@/components/badge';\nimport { DtButton } from '@/components/button';\nimport DtEmojiTextWrapper from '@/components/emoji_text_wrapper/emoji_text_wrapper.vue';\nimport DtIconChevronDown from '@dialpad/dialtone-icons/vue3/chevron-down';\nimport DtIconHeadphones from '@dialpad/dialtone-icons/vue3/headphones';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeContactCentersRow',\n\n components: {\n DtButton,\n DtBadge,\n DtEmojiTextWrapper,\n DtIconHeadphones,\n DtIconChevronDown,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Will be read out by a screen reader upon focus of this row. If not defined \"description\" will be read.\n */\n ariaLabel: {\n type: String,\n default: '',\n },\n\n /**\n * Text displayed next to the icon. Required.\n */\n description: {\n type: String,\n required: true,\n },\n\n /**\n * Determines if the row is selected\n */\n selected: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Making this true will hide the unread count badge, the chevron button, and the right slot\n */\n hideActions: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Number of unread messages, could be a string to support '99+'\n */\n unreadCount: {\n type: String,\n default: null,\n },\n\n /**\n * Aria label for the menu button.\n */\n menuButtonAriaLabel: {\n type: String,\n required: true,\n },\n },\n\n emits: [\n /**\n * Native click event on the row itself\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n\n /**\n * Menu button clicked\n *\n * @event call\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click-menu',\n ],\n\n data () {\n return {\n labelWidth: 'auto',\n };\n },\n\n computed: {\n leftbarContactCentersRowClasses () {\n return [\n 'd-recipe-leftbar-row',\n 'd-recipe-leftbar-row--contact-centers',\n {\n 'd-recipe-leftbar-row__unread-count': this.showUnreadCount,\n 'd-recipe-leftbar-row--selected': this.selected,\n },\n ];\n },\n\n getAriaLabel () {\n return this.ariaLabel\n ? this.ariaLabel\n : safeConcatStrings([this.description, this.unreadCountTooltip]);\n },\n\n contactRowListeners () {\n return extractVueListeners(this.$attrs);\n },\n\n showUnreadCount () {\n return !!this.unreadCount;\n },\n },\n\n watch: {\n $props: {\n deep: true,\n async handler () {\n await this.$nextTick();\n this.adjustLabelWidth();\n },\n },\n },\n\n mounted () {\n this.resizeObserver = new ResizeObserver(this.adjustLabelWidth);\n this.resizeObserver.observe(returnFirstEl(this.$el));\n this.adjustLabelWidth();\n },\n\n beforeUnmount: function () {\n this.resizeObserver.disconnect();\n },\n\n methods: {\n removeClassStyleAttrs,\n addClassStyleAttrs,\n\n adjustLabelWidth () {\n const labelWidth = returnFirstEl(this.$el)?.querySelector('.d-recipe-leftbar-row__primary')?.clientWidth || 0;\n const omegaWidth = returnFirstEl(this.$el)?.querySelector('.d-recipe-leftbar-row__omega')?.clientWidth || 0;\n const alphaWidth = returnFirstEl(this.$el)?.querySelector('.d-recipe-leftbar-row__alpha')?.clientWidth || 0;\n const paddings = 12;\n this.labelWidth = labelWidth - (omegaWidth + alphaWidth + paddings) + 'px';\n },\n },\n};\n</script>\n"],"names":["_openBlock","_createElementBlock","_mergeProps","_createElementVNode","_normalizeClass","_toHandlers","_createVNode","_normalizeStyle","_withCtx","_createTextVNode","_toDisplayString","_renderSlot","_createBlock","_createCommentVNode","_withModifiers"],"mappings":"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"}
@@ -251,13 +251,15 @@ const _sfc_main = {
251
251
  },
252
252
  mounted() {
253
253
  this.resizeObserver = new ResizeObserver(this.adjustLabelWidth);
254
- this.resizeObserver.observe(this.$el);
254
+ this.resizeObserver.observe(common_utils.returnFirstEl(this.$el));
255
255
  this.adjustLabelWidth();
256
256
  },
257
257
  beforeUnmount: function() {
258
258
  this.resizeObserver.disconnect();
259
259
  },
260
260
  methods: {
261
+ removeClassStyleAttrs: common_utils.removeClassStyleAttrs,
262
+ addClassStyleAttrs: common_utils.addClassStyleAttrs,
261
263
  validateProps() {
262
264
  if (this.type === general_row_constants.LEFTBAR_GENERAL_ROW_TYPES.CONTACT_CENTER && !Object.keys(general_row_constants.LEFTBAR_GENERAL_ROW_CONTACT_CENTER_COLORS).includes(this.color)) {
263
265
  console.error(general_row_constants.LEFTBAR_GENERAL_ROW_CONTACT_CENTER_VALIDATION_ERROR);
@@ -265,9 +267,9 @@ const _sfc_main = {
265
267
  },
266
268
  adjustLabelWidth() {
267
269
  var _a, _b, _c, _d, _e, _f;
268
- const labelWidth = ((_b = (_a = this.$el) == null ? void 0 : _a.querySelector(".d-recipe-leftbar-row__primary")) == null ? void 0 : _b.clientWidth) || 0;
269
- const omegaWidth = ((_d = (_c = this.$el) == null ? void 0 : _c.querySelector(".d-recipe-leftbar-row__omega")) == null ? void 0 : _d.clientWidth) || 0;
270
- const alphaWidth = ((_f = (_e = this.$el) == null ? void 0 : _e.querySelector(".d-recipe-leftbar-row__alpha")) == null ? void 0 : _f.clientWidth) || 0;
270
+ const labelWidth = ((_b = (_a = common_utils.returnFirstEl(this.$el)) == null ? void 0 : _a.querySelector(".d-recipe-leftbar-row__primary")) == null ? void 0 : _b.clientWidth) || 0;
271
+ const omegaWidth = ((_d = (_c = common_utils.returnFirstEl(this.$el)) == null ? void 0 : _c.querySelector(".d-recipe-leftbar-row__omega")) == null ? void 0 : _d.clientWidth) || 0;
272
+ const alphaWidth = ((_f = (_e = common_utils.returnFirstEl(this.$el)) == null ? void 0 : _e.querySelector(".d-recipe-leftbar-row__alpha")) == null ? void 0 : _f.clientWidth) || 0;
271
273
  const paddings = 16;
272
274
  this.labelWidth = labelWidth - (omegaWidth + alphaWidth + paddings) + "px";
273
275
  }
@@ -308,17 +310,14 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
308
310
  const _component_dt_badge = vue.resolveComponent("dt-badge");
309
311
  const _component_dt_icon_phone = vue.resolveComponent("dt-icon-phone");
310
312
  const _component_dt_button = vue.resolveComponent("dt-button");
311
- return vue.openBlock(), vue.createElementBlock("div", {
312
- class: vue.normalizeClass($options.leftbarGeneralRowClasses),
313
- "data-qa": "dt-recipe-leftbar-row"
314
- }, [
313
+ return vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({ class: $options.leftbarGeneralRowClasses }, $options.addClassStyleAttrs(_ctx.$attrs), { "data-qa": "dt-recipe-leftbar-row" }), [
315
314
  vue.createElementVNode("a", vue.mergeProps({
316
315
  class: "d-recipe-leftbar-row__primary",
317
316
  "data-qa": "data-qa" in _ctx.$attrs ? _ctx.$attrs["data-qa"] : "d-recipe-leftbar-row-link",
318
317
  "aria-label": $options.getAriaLabel,
319
318
  title: $props.description,
320
319
  href: "href" in _ctx.$attrs ? _ctx.$attrs.href : "javascript:void(0)"
321
- }, _ctx.$attrs, vue.toHandlers($options.generalRowListeners, true)), [
320
+ }, $options.removeClassStyleAttrs(_ctx.$attrs), vue.toHandlers($options.generalRowListeners, true)), [
322
321
  vue.createElementVNode("div", _hoisted_2, [
323
322
  $props.isTyping ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3, _hoisted_7)) : vue.renderSlot(_ctx.$slots, "left", { key: 1 }, () => [
324
323
  vue.createVNode(_component_dt_recipe_leftbar_general_row_icon, {
@@ -430,7 +429,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
430
429
  }, 8, ["message"])
431
430
  ])) : vue.createCommentVNode("", true)
432
431
  ])) : vue.createCommentVNode("", true)
433
- ], 2);
432
+ ], 16);
434
433
  }
435
434
  const DtRecipeGeneralRow = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["render", _sfc_render]]);
436
435
  exports.default = DtRecipeGeneralRow;
@@ -1 +1 @@
1
- {"version":3,"file":"general_row.vue.cjs","sources":["../../../../recipes/leftbar/general_row/general_row.vue"],"sourcesContent":["<template>\n <div\n :class=\"leftbarGeneralRowClasses\"\n data-qa=\"dt-recipe-leftbar-row\"\n >\n <a\n class=\"d-recipe-leftbar-row__primary\"\n :data-qa=\"'data-qa' in $attrs ? $attrs['data-qa'] : 'd-recipe-leftbar-row-link'\"\n :aria-label=\"getAriaLabel\"\n :title=\"description\"\n :href=\"'href' in $attrs ? $attrs.href : 'javascript:void(0)'\"\n v-bind=\"$attrs\"\n v-on=\"generalRowListeners\"\n >\n <div\n class=\"d-recipe-leftbar-row__alpha\"\n >\n <div\n v-if=\"isTyping\"\n class=\"d-recipe-leftbar-row__is-typing\"\n >\n <span /><span /><span />\n </div>\n <slot\n v-else\n name=\"left\"\n >\n <dt-recipe-leftbar-general-row-icon\n :type=\"getIcon\"\n :color=\"color\"\n :icon-size=\"iconSize\"\n data-qa=\"dt-recipe-leftbar-row-icon\"\n />\n </slot>\n </div>\n <div\n class=\"d-recipe-leftbar-row__label\"\n :style=\"`flex-basis: ${labelWidth}`\"\n >\n <slot name=\"label\">\n <dt-emoji-text-wrapper\n class=\"d-recipe-leftbar-row__description\"\n data-qa=\"dt-recipe-leftbar-row-description\"\n size=\"200\"\n >\n {{ description }}\n </dt-emoji-text-wrapper>\n </slot>\n </div>\n </a>\n <div\n v-if=\"hasActions\"\n class=\"d-recipe-leftbar-row__omega\"\n >\n <dt-tooltip\n v-if=\"dndText\"\n placement=\"top\"\n :message=\"dndTextTooltip\"\n >\n <template #anchor>\n <div\n ref=\"d-recipe-leftbar-row-dnd\"\n class=\"d-recipe-leftbar-row__dnd\"\n data-qa=\"dt-recipe-leftbar-row-dnd\"\n >\n {{ dndText }}\n </div>\n </template>\n </dt-tooltip>\n <div\n v-if=\"activeVoiceChat\"\n class=\"d-recipe-leftbar-row__active-voice\"\n >\n <dt-icon-waveform\n size=\"300\"\n />\n </div>\n <dt-tooltip\n v-else-if=\"showUnreadCount || showUnreadMentionCount\"\n :message=\"unreadCountTooltip\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-badge\n v-if=\"showUnreadCount\"\n kind=\"count\"\n type=\"bulletin\"\n data-qa=\"dt-recipe-leftbar-row-unread-badge\"\n :class=\"['d-recipe-leftbar-row__unread-badge', {\n 'd-recipe-leftbar-row__unread-count-badge':\n shouldApplyCustomStyleForCountBadge,\n }]\"\n >\n {{ unreadCount }}\n </dt-badge>\n <dt-badge\n v-if=\"showUnreadMentionCount\"\n kind=\"count\"\n type=\"bulletin\"\n data-qa=\"dt-recipe-leftbar-row-unread-mention-badge\"\n :class=\"['d-recipe-leftbar-row__unread-badge',\n { 'd-recipe-leftbar-row__unread-mention-count-badge': shouldApplyCustomStyleForCountBadge },\n { 'd-recipe-leftbar-row__unread-mention-only-count-badge': shouldApplyCustomStyleForMentionOnly },\n ]\"\n >\n {{ unreadMentionCount }}\n </dt-badge>\n </template>\n </dt-tooltip>\n <div\n v-if=\"hasCallButton\"\n class=\"d-recipe-leftbar-row__action\"\n data-qa=\"dt-recipe-leftbar-row-action\"\n >\n <dt-tooltip\n :message=\"callButtonTooltip\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n class=\"d-recipe-leftbar-row__action-button\"\n data-qa=\"dt-recipe-leftbar-row-action-call-button\"\n :circle=\"true\"\n size=\"xs\"\n kind=\"inverted\"\n :aria-label=\"callButtonTooltip\"\n @focus=\"actionFocused = true\"\n @blur=\"actionFocused = false\"\n @click.stop=\"$emit('call', $event)\"\n >\n <template #icon>\n <dt-icon-phone\n size=\"200\"\n />\n </template>\n </dt-button>\n </template>\n </dt-tooltip>\n </div>\n </div>\n </div>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport {\n LEFTBAR_GENERAL_ROW_TYPES,\n LEFTBAR_GENERAL_ROW_CONTACT_CENTER_COLORS,\n LEFTBAR_GENERAL_ROW_CONTACT_CENTER_VALIDATION_ERROR,\n LEFTBAR_GENERAL_ROW_ICON_SIZES,\n} from './general_row_constants';\nimport { DtBadge } from '@/components/badge';\nimport { DtIconPhone, DtIconWaveform } from '@dialpad/dialtone-icons/vue3';\nimport { DtButton } from '@/components/button';\nimport { DtTooltip } from '@/components/tooltip';\nimport DtEmojiTextWrapper from '@/components/emoji_text_wrapper/emoji_text_wrapper.vue';\nimport DtRecipeLeftbarGeneralRowIcon from './leftbar_general_row_icon.vue';\nimport { extractVueListeners, safeConcatStrings } from '@/common/utils';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeGeneralRow',\n\n components: {\n DtEmojiTextWrapper,\n DtBadge,\n DtButton,\n DtTooltip,\n DtIconPhone,\n DtIconWaveform,\n DtRecipeLeftbarGeneralRowIcon,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Determines the icon to show.\n * If type is contact center, the color prop must be provided and will determine the color of the icon\n */\n type: {\n type: String,\n default: 'inbox',\n validator: (type) => {\n return Object.values(LEFTBAR_GENERAL_ROW_TYPES).includes(type);\n },\n },\n\n /**\n * Will be read out by a screen reader upon focus of this row. If not defined \"description\" will be read.\n */\n ariaLabel: {\n type: String,\n default: '',\n },\n\n /**\n * Text displayed next to the icon. Required. Even if you are overriding this field using the label slot\n * you still must input this as it will be displayed as the \"title\" attribute for the row.\n */\n description: {\n type: String,\n required: true,\n },\n\n /**\n * Determines the color of the contact center icon\n */\n color: {\n type: String,\n default: null,\n validator: (color) => {\n return Object.keys(LEFTBAR_GENERAL_ROW_CONTACT_CENTER_COLORS).includes(color);\n },\n },\n\n /**\n * The channel setting, either 'mention' or 'always'.\n * @values 'mention', 'always', null.\n */\n channelSetting: {\n type: String,\n default: null,\n },\n\n /**\n * Styles the row with an increased font weight to convey it has unreads. This must be true to see\n * the unread count badge.\n */\n hasUnreads: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Number of unread messages\n */\n unreadCount: {\n type: String,\n default: null,\n },\n\n /**\n * Number of unread mention messages\n */\n unreadMentionCount: {\n type: String,\n default: null,\n },\n\n /**\n * Text shown when the unread count is hovered.\n */\n unreadCountTooltip: {\n type: String,\n default: '',\n },\n\n /**\n * Determines if the row is selected\n */\n selected: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Gives a faded style to be used when muted\n */\n muted: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Shows styling to represent an active voice chat. This will display over unreadCount.\n */\n activeVoiceChat: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Acronym used to represent \"Do not Disturb\" state. If entered will display the entered text alongside\n * unreadCount.\n */\n dndText: {\n type: String,\n default: '',\n },\n\n /**\n * Text shown in tooltip when you hover the dndText\n */\n dndTextTooltip: {\n type: String,\n default: '',\n },\n\n /**\n * Whether the row should have a call button. Usually only applicable to individual contact rows.\n */\n hasCallButton: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Text shown when the call button is hovered.\n */\n callButtonTooltip: {\n type: String,\n default: '',\n },\n\n /**\n * Shows an \"is typing\" animation over the avatar when true.\n */\n isTyping: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Sets the size of the icon.\n */\n iconSize: {\n type: String,\n default: '300',\n validator: (size) => {\n return LEFTBAR_GENERAL_ROW_ICON_SIZES.includes(size);\n },\n },\n },\n\n emits: [\n /**\n * Call button clicked\n *\n * @event call\n * @type {PointerEvent | KeyboardEvent}\n */\n 'call',\n ],\n\n data () {\n return {\n actionFocused: false,\n labelWidth: '100%',\n };\n },\n\n computed: {\n leftbarGeneralRowClasses () {\n return [\n 'd-recipe-leftbar-row',\n {\n 'd-recipe-leftbar-row--no-action': !this.hasCallButton,\n 'd-recipe-leftbar-row--has-unread': this.hasUnreads,\n 'd-recipe-leftbar-row__unread-count': this.showUnreadCount || this.showUnreadMentionCount,\n 'd-recipe-leftbar-row--selected': this.selected,\n 'd-recipe-leftbar-row--muted': this.muted,\n 'd-recipe-leftbar-row--action-focused': this.actionFocused,\n },\n ];\n },\n\n getIcon () {\n switch (this.type) {\n case LEFTBAR_GENERAL_ROW_TYPES.CHANNELS:\n if (this.hasUnreads) return 'channel unread';\n break;\n case LEFTBAR_GENERAL_ROW_TYPES.LOCKED_CHANNEL:\n if (this.hasUnreads) return 'locked channel unread';\n break;\n }\n return this.type;\n },\n\n generalRowListeners () {\n return extractVueListeners(this.$attrs);\n },\n\n getAriaLabel () {\n return this.ariaLabel\n ? this.ariaLabel\n : safeConcatStrings([this.description, this.unreadCountTooltip, this.dndTextTooltip]);\n },\n\n hasActions () {\n return this.dndText || this.activeVoiceChat || this.showUnreadCount || this.hasCallButton ||\n this.showUnreadMentionCount;\n },\n\n showUnreadCount () {\n return !!this.unreadCount && this.hasUnreads;\n },\n\n showUnreadMentionCount () {\n return !!this.unreadMentionCount && this.hasUnreads;\n },\n\n hasUnreadCount () {\n return this.unreadCount !== null;\n },\n\n hasUnreadMentionCount () {\n return this.unreadMentionCount !== null;\n },\n\n shouldApplyCustomStyleForCountBadge () {\n return this.hasUnreadCount && this.hasUnreadMentionCount;\n },\n\n /**\n * When a channel in 'always' setting, meaning the user should see both unread count and unread mention count,\n * if there are only mention messages, we should apply the theme design tokens var(--dt-theme-mention-color-[background||foreground]-strong).\n * @returns {boolean}\n */\n shouldApplyCustomStyleForMentionOnly () {\n return this.channelSetting === 'always' && !this.hasUnreadCount && this.hasUnreadMentionCount;\n },\n },\n\n watch: {\n $props: {\n immediate: true,\n deep: true,\n async handler () {\n this.validateProps();\n await this.$nextTick();\n this.adjustLabelWidth();\n },\n },\n },\n\n mounted () {\n this.resizeObserver = new ResizeObserver(this.adjustLabelWidth);\n this.resizeObserver.observe(this.$el);\n this.adjustLabelWidth();\n },\n\n beforeUnmount: function () {\n this.resizeObserver.disconnect();\n },\n\n methods: {\n validateProps () {\n if (this.type === LEFTBAR_GENERAL_ROW_TYPES.CONTACT_CENTER &&\n !Object.keys(LEFTBAR_GENERAL_ROW_CONTACT_CENTER_COLORS).includes(this.color)) {\n console.error(LEFTBAR_GENERAL_ROW_CONTACT_CENTER_VALIDATION_ERROR);\n }\n },\n\n adjustLabelWidth () {\n const labelWidth = this.$el?.querySelector('.d-recipe-leftbar-row__primary')?.clientWidth || 0;\n const omegaWidth = this.$el?.querySelector('.d-recipe-leftbar-row__omega')?.clientWidth || 0;\n const alphaWidth = this.$el?.querySelector('.d-recipe-leftbar-row__alpha')?.clientWidth || 0;\n const paddings = 16;\n this.labelWidth = labelWidth - (omegaWidth + alphaWidth + paddings) + 'px';\n },\n },\n};\n</script>\n"],"names":["DtEmojiTextWrapper","DtBadge","DtButton","DtTooltip","DtIconPhone","DtIconWaveform","DtRecipeLeftbarGeneralRowIcon","LEFTBAR_GENERAL_ROW_TYPES","LEFTBAR_GENERAL_ROW_CONTACT_CENTER_COLORS","LEFTBAR_GENERAL_ROW_ICON_SIZES","extractVueListeners","safeConcatStrings","LEFTBAR_GENERAL_ROW_CONTACT_CENTER_VALIDATION_ERROR","_createElementVNode","_createElementBlock","_normalizeClass","_mergeProps","_toHandlers","_renderSlot","_createVNode","_normalizeStyle","_withCtx","_createTextVNode","_toDisplayString","_openBlock","_createBlock","_createCommentVNode","_withModifiers"],"mappings":"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"}
1
+ {"version":3,"file":"general_row.vue.cjs","sources":["../../../../recipes/leftbar/general_row/general_row.vue"],"sourcesContent":["<template>\n <div\n :class=\"leftbarGeneralRowClasses\"\n v-bind=\"addClassStyleAttrs($attrs)\"\n data-qa=\"dt-recipe-leftbar-row\"\n >\n <a\n class=\"d-recipe-leftbar-row__primary\"\n :data-qa=\"'data-qa' in $attrs ? $attrs['data-qa'] : 'd-recipe-leftbar-row-link'\"\n :aria-label=\"getAriaLabel\"\n :title=\"description\"\n :href=\"'href' in $attrs ? $attrs.href : 'javascript:void(0)'\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n v-on=\"generalRowListeners\"\n >\n <div\n class=\"d-recipe-leftbar-row__alpha\"\n >\n <div\n v-if=\"isTyping\"\n class=\"d-recipe-leftbar-row__is-typing\"\n >\n <span /><span /><span />\n </div>\n <slot\n v-else\n name=\"left\"\n >\n <dt-recipe-leftbar-general-row-icon\n :type=\"getIcon\"\n :color=\"color\"\n :icon-size=\"iconSize\"\n data-qa=\"dt-recipe-leftbar-row-icon\"\n />\n </slot>\n </div>\n <div\n class=\"d-recipe-leftbar-row__label\"\n :style=\"`flex-basis: ${labelWidth}`\"\n >\n <slot name=\"label\">\n <dt-emoji-text-wrapper\n class=\"d-recipe-leftbar-row__description\"\n data-qa=\"dt-recipe-leftbar-row-description\"\n size=\"200\"\n >\n {{ description }}\n </dt-emoji-text-wrapper>\n </slot>\n </div>\n </a>\n <div\n v-if=\"hasActions\"\n class=\"d-recipe-leftbar-row__omega\"\n >\n <dt-tooltip\n v-if=\"dndText\"\n placement=\"top\"\n :message=\"dndTextTooltip\"\n >\n <template #anchor>\n <div\n ref=\"d-recipe-leftbar-row-dnd\"\n class=\"d-recipe-leftbar-row__dnd\"\n data-qa=\"dt-recipe-leftbar-row-dnd\"\n >\n {{ dndText }}\n </div>\n </template>\n </dt-tooltip>\n <div\n v-if=\"activeVoiceChat\"\n class=\"d-recipe-leftbar-row__active-voice\"\n >\n <dt-icon-waveform\n size=\"300\"\n />\n </div>\n <dt-tooltip\n v-else-if=\"showUnreadCount || showUnreadMentionCount\"\n :message=\"unreadCountTooltip\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-badge\n v-if=\"showUnreadCount\"\n kind=\"count\"\n type=\"bulletin\"\n data-qa=\"dt-recipe-leftbar-row-unread-badge\"\n :class=\"['d-recipe-leftbar-row__unread-badge', {\n 'd-recipe-leftbar-row__unread-count-badge':\n shouldApplyCustomStyleForCountBadge,\n }]\"\n >\n {{ unreadCount }}\n </dt-badge>\n <dt-badge\n v-if=\"showUnreadMentionCount\"\n kind=\"count\"\n type=\"bulletin\"\n data-qa=\"dt-recipe-leftbar-row-unread-mention-badge\"\n :class=\"['d-recipe-leftbar-row__unread-badge',\n { 'd-recipe-leftbar-row__unread-mention-count-badge': shouldApplyCustomStyleForCountBadge },\n { 'd-recipe-leftbar-row__unread-mention-only-count-badge': shouldApplyCustomStyleForMentionOnly },\n ]\"\n >\n {{ unreadMentionCount }}\n </dt-badge>\n </template>\n </dt-tooltip>\n <div\n v-if=\"hasCallButton\"\n class=\"d-recipe-leftbar-row__action\"\n data-qa=\"dt-recipe-leftbar-row-action\"\n >\n <dt-tooltip\n :message=\"callButtonTooltip\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n class=\"d-recipe-leftbar-row__action-button\"\n data-qa=\"dt-recipe-leftbar-row-action-call-button\"\n :circle=\"true\"\n size=\"xs\"\n kind=\"inverted\"\n :aria-label=\"callButtonTooltip\"\n @focus=\"actionFocused = true\"\n @blur=\"actionFocused = false\"\n @click.stop=\"$emit('call', $event)\"\n >\n <template #icon>\n <dt-icon-phone\n size=\"200\"\n />\n </template>\n </dt-button>\n </template>\n </dt-tooltip>\n </div>\n </div>\n </div>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport {\n LEFTBAR_GENERAL_ROW_TYPES,\n LEFTBAR_GENERAL_ROW_CONTACT_CENTER_COLORS,\n LEFTBAR_GENERAL_ROW_CONTACT_CENTER_VALIDATION_ERROR,\n LEFTBAR_GENERAL_ROW_ICON_SIZES,\n} from './general_row_constants';\nimport { DtBadge } from '@/components/badge';\nimport { DtIconPhone, DtIconWaveform } from '@dialpad/dialtone-icons/vue3';\nimport { DtButton } from '@/components/button';\nimport { DtTooltip } from '@/components/tooltip';\nimport DtEmojiTextWrapper from '@/components/emoji_text_wrapper/emoji_text_wrapper.vue';\nimport DtRecipeLeftbarGeneralRowIcon from './leftbar_general_row_icon.vue';\nimport { extractVueListeners, safeConcatStrings, removeClassStyleAttrs, returnFirstEl, addClassStyleAttrs } from '@/common/utils';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeGeneralRow',\n\n components: {\n DtEmojiTextWrapper,\n DtBadge,\n DtButton,\n DtTooltip,\n DtIconPhone,\n DtIconWaveform,\n DtRecipeLeftbarGeneralRowIcon,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Determines the icon to show.\n * If type is contact center, the color prop must be provided and will determine the color of the icon\n */\n type: {\n type: String,\n default: 'inbox',\n validator: (type) => {\n return Object.values(LEFTBAR_GENERAL_ROW_TYPES).includes(type);\n },\n },\n\n /**\n * Will be read out by a screen reader upon focus of this row. If not defined \"description\" will be read.\n */\n ariaLabel: {\n type: String,\n default: '',\n },\n\n /**\n * Text displayed next to the icon. Required. Even if you are overriding this field using the label slot\n * you still must input this as it will be displayed as the \"title\" attribute for the row.\n */\n description: {\n type: String,\n required: true,\n },\n\n /**\n * Determines the color of the contact center icon\n */\n color: {\n type: String,\n default: null,\n validator: (color) => {\n return Object.keys(LEFTBAR_GENERAL_ROW_CONTACT_CENTER_COLORS).includes(color);\n },\n },\n\n /**\n * The channel setting, either 'mention' or 'always'.\n * @values 'mention', 'always', null.\n */\n channelSetting: {\n type: String,\n default: null,\n },\n\n /**\n * Styles the row with an increased font weight to convey it has unreads. This must be true to see\n * the unread count badge.\n */\n hasUnreads: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Number of unread messages\n */\n unreadCount: {\n type: String,\n default: null,\n },\n\n /**\n * Number of unread mention messages\n */\n unreadMentionCount: {\n type: String,\n default: null,\n },\n\n /**\n * Text shown when the unread count is hovered.\n */\n unreadCountTooltip: {\n type: String,\n default: '',\n },\n\n /**\n * Determines if the row is selected\n */\n selected: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Gives a faded style to be used when muted\n */\n muted: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Shows styling to represent an active voice chat. This will display over unreadCount.\n */\n activeVoiceChat: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Acronym used to represent \"Do not Disturb\" state. If entered will display the entered text alongside\n * unreadCount.\n */\n dndText: {\n type: String,\n default: '',\n },\n\n /**\n * Text shown in tooltip when you hover the dndText\n */\n dndTextTooltip: {\n type: String,\n default: '',\n },\n\n /**\n * Whether the row should have a call button. Usually only applicable to individual contact rows.\n */\n hasCallButton: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Text shown when the call button is hovered.\n */\n callButtonTooltip: {\n type: String,\n default: '',\n },\n\n /**\n * Shows an \"is typing\" animation over the avatar when true.\n */\n isTyping: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Sets the size of the icon.\n */\n iconSize: {\n type: String,\n default: '300',\n validator: (size) => {\n return LEFTBAR_GENERAL_ROW_ICON_SIZES.includes(size);\n },\n },\n },\n\n emits: [\n /**\n * Call button clicked\n *\n * @event call\n * @type {PointerEvent | KeyboardEvent}\n */\n 'call',\n ],\n\n data () {\n return {\n actionFocused: false,\n labelWidth: '100%',\n };\n },\n\n computed: {\n leftbarGeneralRowClasses () {\n return [\n 'd-recipe-leftbar-row',\n {\n 'd-recipe-leftbar-row--no-action': !this.hasCallButton,\n 'd-recipe-leftbar-row--has-unread': this.hasUnreads,\n 'd-recipe-leftbar-row__unread-count': this.showUnreadCount || this.showUnreadMentionCount,\n 'd-recipe-leftbar-row--selected': this.selected,\n 'd-recipe-leftbar-row--muted': this.muted,\n 'd-recipe-leftbar-row--action-focused': this.actionFocused,\n },\n ];\n },\n\n getIcon () {\n switch (this.type) {\n case LEFTBAR_GENERAL_ROW_TYPES.CHANNELS:\n if (this.hasUnreads) return 'channel unread';\n break;\n case LEFTBAR_GENERAL_ROW_TYPES.LOCKED_CHANNEL:\n if (this.hasUnreads) return 'locked channel unread';\n break;\n }\n return this.type;\n },\n\n generalRowListeners () {\n return extractVueListeners(this.$attrs);\n },\n\n getAriaLabel () {\n return this.ariaLabel\n ? this.ariaLabel\n : safeConcatStrings([this.description, this.unreadCountTooltip, this.dndTextTooltip]);\n },\n\n hasActions () {\n return this.dndText || this.activeVoiceChat || this.showUnreadCount || this.hasCallButton ||\n this.showUnreadMentionCount;\n },\n\n showUnreadCount () {\n return !!this.unreadCount && this.hasUnreads;\n },\n\n showUnreadMentionCount () {\n return !!this.unreadMentionCount && this.hasUnreads;\n },\n\n hasUnreadCount () {\n return this.unreadCount !== null;\n },\n\n hasUnreadMentionCount () {\n return this.unreadMentionCount !== null;\n },\n\n shouldApplyCustomStyleForCountBadge () {\n return this.hasUnreadCount && this.hasUnreadMentionCount;\n },\n\n /**\n * When a channel in 'always' setting, meaning the user should see both unread count and unread mention count,\n * if there are only mention messages, we should apply the theme design tokens var(--dt-theme-mention-color-[background||foreground]-strong).\n * @returns {boolean}\n */\n shouldApplyCustomStyleForMentionOnly () {\n return this.channelSetting === 'always' && !this.hasUnreadCount && this.hasUnreadMentionCount;\n },\n },\n\n watch: {\n $props: {\n immediate: true,\n deep: true,\n async handler () {\n this.validateProps();\n await this.$nextTick();\n this.adjustLabelWidth();\n },\n },\n },\n\n mounted () {\n this.resizeObserver = new ResizeObserver(this.adjustLabelWidth);\n this.resizeObserver.observe(returnFirstEl(this.$el));\n this.adjustLabelWidth();\n },\n\n beforeUnmount: function () {\n this.resizeObserver.disconnect();\n },\n\n methods: {\n removeClassStyleAttrs,\n addClassStyleAttrs,\n\n validateProps () {\n if (this.type === LEFTBAR_GENERAL_ROW_TYPES.CONTACT_CENTER &&\n !Object.keys(LEFTBAR_GENERAL_ROW_CONTACT_CENTER_COLORS).includes(this.color)) {\n console.error(LEFTBAR_GENERAL_ROW_CONTACT_CENTER_VALIDATION_ERROR);\n }\n },\n\n adjustLabelWidth () {\n const labelWidth = returnFirstEl(this.$el)?.querySelector('.d-recipe-leftbar-row__primary')?.clientWidth || 0;\n const omegaWidth = returnFirstEl(this.$el)?.querySelector('.d-recipe-leftbar-row__omega')?.clientWidth || 0;\n const alphaWidth = returnFirstEl(this.$el)?.querySelector('.d-recipe-leftbar-row__alpha')?.clientWidth || 0;\n const paddings = 16;\n this.labelWidth = labelWidth - (omegaWidth + alphaWidth + paddings) + 'px';\n },\n },\n};\n</script>\n"],"names":["DtEmojiTextWrapper","DtBadge","DtButton","DtTooltip","DtIconPhone","DtIconWaveform","DtRecipeLeftbarGeneralRowIcon","LEFTBAR_GENERAL_ROW_TYPES","LEFTBAR_GENERAL_ROW_CONTACT_CENTER_COLORS","LEFTBAR_GENERAL_ROW_ICON_SIZES","extractVueListeners","safeConcatStrings","returnFirstEl","removeClassStyleAttrs","addClassStyleAttrs","LEFTBAR_GENERAL_ROW_CONTACT_CENTER_VALIDATION_ERROR","_createElementVNode","_openBlock","_createElementBlock","_mergeProps","_toHandlers","_renderSlot","_createVNode","_normalizeStyle","_withCtx","_createTextVNode","_toDisplayString","_createBlock","_createCommentVNode","_normalizeClass","_withModifiers"],"mappings":"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"}
@@ -2,8 +2,8 @@ import { LEFTBAR_GENERAL_ROW_TYPES, LEFTBAR_GENERAL_ROW_CONTACT_CENTER_COLORS, L
2
2
  import { DtIconPhone, DtIconWaveform } from "@dialpad/dialtone-icons/vue3";
3
3
  import DtEmojiTextWrapper from "../../../components/emoji_text_wrapper/emoji_text_wrapper.vue.js";
4
4
  import DtRecipeLeftbarGeneralRowIcon from "./leftbar_general_row_icon.vue.js";
5
- import { extractVueListeners, safeConcatStrings } from "../../../common/utils.js";
6
- import { resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, mergeProps, toHandlers, renderSlot, createVNode, normalizeStyle, withCtx, createTextVNode, toDisplayString, createBlock, createCommentVNode, withModifiers } from "vue";
5
+ import { extractVueListeners, safeConcatStrings, returnFirstEl, removeClassStyleAttrs, addClassStyleAttrs } from "../../../common/utils.js";
6
+ import { resolveComponent, openBlock, createElementBlock, mergeProps, createElementVNode, toHandlers, renderSlot, createVNode, normalizeStyle, withCtx, createTextVNode, toDisplayString, createBlock, createCommentVNode, normalizeClass, withModifiers } from "vue";
7
7
  import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.js";
8
8
  import DtBadge from "../../../components/badge/badge.vue.js";
9
9
  import DtButton from "../../../components/button/button.vue.js";
@@ -249,13 +249,15 @@ const _sfc_main = {
249
249
  },
250
250
  mounted() {
251
251
  this.resizeObserver = new ResizeObserver(this.adjustLabelWidth);
252
- this.resizeObserver.observe(this.$el);
252
+ this.resizeObserver.observe(returnFirstEl(this.$el));
253
253
  this.adjustLabelWidth();
254
254
  },
255
255
  beforeUnmount: function() {
256
256
  this.resizeObserver.disconnect();
257
257
  },
258
258
  methods: {
259
+ removeClassStyleAttrs,
260
+ addClassStyleAttrs,
259
261
  validateProps() {
260
262
  if (this.type === LEFTBAR_GENERAL_ROW_TYPES.CONTACT_CENTER && !Object.keys(LEFTBAR_GENERAL_ROW_CONTACT_CENTER_COLORS).includes(this.color)) {
261
263
  console.error(LEFTBAR_GENERAL_ROW_CONTACT_CENTER_VALIDATION_ERROR);
@@ -263,9 +265,9 @@ const _sfc_main = {
263
265
  },
264
266
  adjustLabelWidth() {
265
267
  var _a, _b, _c, _d, _e, _f;
266
- const labelWidth = ((_b = (_a = this.$el) == null ? void 0 : _a.querySelector(".d-recipe-leftbar-row__primary")) == null ? void 0 : _b.clientWidth) || 0;
267
- const omegaWidth = ((_d = (_c = this.$el) == null ? void 0 : _c.querySelector(".d-recipe-leftbar-row__omega")) == null ? void 0 : _d.clientWidth) || 0;
268
- const alphaWidth = ((_f = (_e = this.$el) == null ? void 0 : _e.querySelector(".d-recipe-leftbar-row__alpha")) == null ? void 0 : _f.clientWidth) || 0;
268
+ const labelWidth = ((_b = (_a = returnFirstEl(this.$el)) == null ? void 0 : _a.querySelector(".d-recipe-leftbar-row__primary")) == null ? void 0 : _b.clientWidth) || 0;
269
+ const omegaWidth = ((_d = (_c = returnFirstEl(this.$el)) == null ? void 0 : _c.querySelector(".d-recipe-leftbar-row__omega")) == null ? void 0 : _d.clientWidth) || 0;
270
+ const alphaWidth = ((_f = (_e = returnFirstEl(this.$el)) == null ? void 0 : _e.querySelector(".d-recipe-leftbar-row__alpha")) == null ? void 0 : _f.clientWidth) || 0;
269
271
  const paddings = 16;
270
272
  this.labelWidth = labelWidth - (omegaWidth + alphaWidth + paddings) + "px";
271
273
  }
@@ -306,17 +308,14 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
306
308
  const _component_dt_badge = resolveComponent("dt-badge");
307
309
  const _component_dt_icon_phone = resolveComponent("dt-icon-phone");
308
310
  const _component_dt_button = resolveComponent("dt-button");
309
- return openBlock(), createElementBlock("div", {
310
- class: normalizeClass($options.leftbarGeneralRowClasses),
311
- "data-qa": "dt-recipe-leftbar-row"
312
- }, [
311
+ return openBlock(), createElementBlock("div", mergeProps({ class: $options.leftbarGeneralRowClasses }, $options.addClassStyleAttrs(_ctx.$attrs), { "data-qa": "dt-recipe-leftbar-row" }), [
313
312
  createElementVNode("a", mergeProps({
314
313
  class: "d-recipe-leftbar-row__primary",
315
314
  "data-qa": "data-qa" in _ctx.$attrs ? _ctx.$attrs["data-qa"] : "d-recipe-leftbar-row-link",
316
315
  "aria-label": $options.getAriaLabel,
317
316
  title: $props.description,
318
317
  href: "href" in _ctx.$attrs ? _ctx.$attrs.href : "javascript:void(0)"
319
- }, _ctx.$attrs, toHandlers($options.generalRowListeners, true)), [
318
+ }, $options.removeClassStyleAttrs(_ctx.$attrs), toHandlers($options.generalRowListeners, true)), [
320
319
  createElementVNode("div", _hoisted_2, [
321
320
  $props.isTyping ? (openBlock(), createElementBlock("div", _hoisted_3, _hoisted_7)) : renderSlot(_ctx.$slots, "left", { key: 1 }, () => [
322
321
  createVNode(_component_dt_recipe_leftbar_general_row_icon, {
@@ -428,7 +427,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
428
427
  }, 8, ["message"])
429
428
  ])) : createCommentVNode("", true)
430
429
  ])) : createCommentVNode("", true)
431
- ], 2);
430
+ ], 16);
432
431
  }
433
432
  const DtRecipeGeneralRow = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
434
433
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"general_row.vue.js","sources":["../../../../recipes/leftbar/general_row/general_row.vue"],"sourcesContent":["<template>\n <div\n :class=\"leftbarGeneralRowClasses\"\n data-qa=\"dt-recipe-leftbar-row\"\n >\n <a\n class=\"d-recipe-leftbar-row__primary\"\n :data-qa=\"'data-qa' in $attrs ? $attrs['data-qa'] : 'd-recipe-leftbar-row-link'\"\n :aria-label=\"getAriaLabel\"\n :title=\"description\"\n :href=\"'href' in $attrs ? $attrs.href : 'javascript:void(0)'\"\n v-bind=\"$attrs\"\n v-on=\"generalRowListeners\"\n >\n <div\n class=\"d-recipe-leftbar-row__alpha\"\n >\n <div\n v-if=\"isTyping\"\n class=\"d-recipe-leftbar-row__is-typing\"\n >\n <span /><span /><span />\n </div>\n <slot\n v-else\n name=\"left\"\n >\n <dt-recipe-leftbar-general-row-icon\n :type=\"getIcon\"\n :color=\"color\"\n :icon-size=\"iconSize\"\n data-qa=\"dt-recipe-leftbar-row-icon\"\n />\n </slot>\n </div>\n <div\n class=\"d-recipe-leftbar-row__label\"\n :style=\"`flex-basis: ${labelWidth}`\"\n >\n <slot name=\"label\">\n <dt-emoji-text-wrapper\n class=\"d-recipe-leftbar-row__description\"\n data-qa=\"dt-recipe-leftbar-row-description\"\n size=\"200\"\n >\n {{ description }}\n </dt-emoji-text-wrapper>\n </slot>\n </div>\n </a>\n <div\n v-if=\"hasActions\"\n class=\"d-recipe-leftbar-row__omega\"\n >\n <dt-tooltip\n v-if=\"dndText\"\n placement=\"top\"\n :message=\"dndTextTooltip\"\n >\n <template #anchor>\n <div\n ref=\"d-recipe-leftbar-row-dnd\"\n class=\"d-recipe-leftbar-row__dnd\"\n data-qa=\"dt-recipe-leftbar-row-dnd\"\n >\n {{ dndText }}\n </div>\n </template>\n </dt-tooltip>\n <div\n v-if=\"activeVoiceChat\"\n class=\"d-recipe-leftbar-row__active-voice\"\n >\n <dt-icon-waveform\n size=\"300\"\n />\n </div>\n <dt-tooltip\n v-else-if=\"showUnreadCount || showUnreadMentionCount\"\n :message=\"unreadCountTooltip\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-badge\n v-if=\"showUnreadCount\"\n kind=\"count\"\n type=\"bulletin\"\n data-qa=\"dt-recipe-leftbar-row-unread-badge\"\n :class=\"['d-recipe-leftbar-row__unread-badge', {\n 'd-recipe-leftbar-row__unread-count-badge':\n shouldApplyCustomStyleForCountBadge,\n }]\"\n >\n {{ unreadCount }}\n </dt-badge>\n <dt-badge\n v-if=\"showUnreadMentionCount\"\n kind=\"count\"\n type=\"bulletin\"\n data-qa=\"dt-recipe-leftbar-row-unread-mention-badge\"\n :class=\"['d-recipe-leftbar-row__unread-badge',\n { 'd-recipe-leftbar-row__unread-mention-count-badge': shouldApplyCustomStyleForCountBadge },\n { 'd-recipe-leftbar-row__unread-mention-only-count-badge': shouldApplyCustomStyleForMentionOnly },\n ]\"\n >\n {{ unreadMentionCount }}\n </dt-badge>\n </template>\n </dt-tooltip>\n <div\n v-if=\"hasCallButton\"\n class=\"d-recipe-leftbar-row__action\"\n data-qa=\"dt-recipe-leftbar-row-action\"\n >\n <dt-tooltip\n :message=\"callButtonTooltip\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n class=\"d-recipe-leftbar-row__action-button\"\n data-qa=\"dt-recipe-leftbar-row-action-call-button\"\n :circle=\"true\"\n size=\"xs\"\n kind=\"inverted\"\n :aria-label=\"callButtonTooltip\"\n @focus=\"actionFocused = true\"\n @blur=\"actionFocused = false\"\n @click.stop=\"$emit('call', $event)\"\n >\n <template #icon>\n <dt-icon-phone\n size=\"200\"\n />\n </template>\n </dt-button>\n </template>\n </dt-tooltip>\n </div>\n </div>\n </div>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport {\n LEFTBAR_GENERAL_ROW_TYPES,\n LEFTBAR_GENERAL_ROW_CONTACT_CENTER_COLORS,\n LEFTBAR_GENERAL_ROW_CONTACT_CENTER_VALIDATION_ERROR,\n LEFTBAR_GENERAL_ROW_ICON_SIZES,\n} from './general_row_constants';\nimport { DtBadge } from '@/components/badge';\nimport { DtIconPhone, DtIconWaveform } from '@dialpad/dialtone-icons/vue3';\nimport { DtButton } from '@/components/button';\nimport { DtTooltip } from '@/components/tooltip';\nimport DtEmojiTextWrapper from '@/components/emoji_text_wrapper/emoji_text_wrapper.vue';\nimport DtRecipeLeftbarGeneralRowIcon from './leftbar_general_row_icon.vue';\nimport { extractVueListeners, safeConcatStrings } from '@/common/utils';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeGeneralRow',\n\n components: {\n DtEmojiTextWrapper,\n DtBadge,\n DtButton,\n DtTooltip,\n DtIconPhone,\n DtIconWaveform,\n DtRecipeLeftbarGeneralRowIcon,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Determines the icon to show.\n * If type is contact center, the color prop must be provided and will determine the color of the icon\n */\n type: {\n type: String,\n default: 'inbox',\n validator: (type) => {\n return Object.values(LEFTBAR_GENERAL_ROW_TYPES).includes(type);\n },\n },\n\n /**\n * Will be read out by a screen reader upon focus of this row. If not defined \"description\" will be read.\n */\n ariaLabel: {\n type: String,\n default: '',\n },\n\n /**\n * Text displayed next to the icon. Required. Even if you are overriding this field using the label slot\n * you still must input this as it will be displayed as the \"title\" attribute for the row.\n */\n description: {\n type: String,\n required: true,\n },\n\n /**\n * Determines the color of the contact center icon\n */\n color: {\n type: String,\n default: null,\n validator: (color) => {\n return Object.keys(LEFTBAR_GENERAL_ROW_CONTACT_CENTER_COLORS).includes(color);\n },\n },\n\n /**\n * The channel setting, either 'mention' or 'always'.\n * @values 'mention', 'always', null.\n */\n channelSetting: {\n type: String,\n default: null,\n },\n\n /**\n * Styles the row with an increased font weight to convey it has unreads. This must be true to see\n * the unread count badge.\n */\n hasUnreads: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Number of unread messages\n */\n unreadCount: {\n type: String,\n default: null,\n },\n\n /**\n * Number of unread mention messages\n */\n unreadMentionCount: {\n type: String,\n default: null,\n },\n\n /**\n * Text shown when the unread count is hovered.\n */\n unreadCountTooltip: {\n type: String,\n default: '',\n },\n\n /**\n * Determines if the row is selected\n */\n selected: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Gives a faded style to be used when muted\n */\n muted: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Shows styling to represent an active voice chat. This will display over unreadCount.\n */\n activeVoiceChat: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Acronym used to represent \"Do not Disturb\" state. If entered will display the entered text alongside\n * unreadCount.\n */\n dndText: {\n type: String,\n default: '',\n },\n\n /**\n * Text shown in tooltip when you hover the dndText\n */\n dndTextTooltip: {\n type: String,\n default: '',\n },\n\n /**\n * Whether the row should have a call button. Usually only applicable to individual contact rows.\n */\n hasCallButton: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Text shown when the call button is hovered.\n */\n callButtonTooltip: {\n type: String,\n default: '',\n },\n\n /**\n * Shows an \"is typing\" animation over the avatar when true.\n */\n isTyping: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Sets the size of the icon.\n */\n iconSize: {\n type: String,\n default: '300',\n validator: (size) => {\n return LEFTBAR_GENERAL_ROW_ICON_SIZES.includes(size);\n },\n },\n },\n\n emits: [\n /**\n * Call button clicked\n *\n * @event call\n * @type {PointerEvent | KeyboardEvent}\n */\n 'call',\n ],\n\n data () {\n return {\n actionFocused: false,\n labelWidth: '100%',\n };\n },\n\n computed: {\n leftbarGeneralRowClasses () {\n return [\n 'd-recipe-leftbar-row',\n {\n 'd-recipe-leftbar-row--no-action': !this.hasCallButton,\n 'd-recipe-leftbar-row--has-unread': this.hasUnreads,\n 'd-recipe-leftbar-row__unread-count': this.showUnreadCount || this.showUnreadMentionCount,\n 'd-recipe-leftbar-row--selected': this.selected,\n 'd-recipe-leftbar-row--muted': this.muted,\n 'd-recipe-leftbar-row--action-focused': this.actionFocused,\n },\n ];\n },\n\n getIcon () {\n switch (this.type) {\n case LEFTBAR_GENERAL_ROW_TYPES.CHANNELS:\n if (this.hasUnreads) return 'channel unread';\n break;\n case LEFTBAR_GENERAL_ROW_TYPES.LOCKED_CHANNEL:\n if (this.hasUnreads) return 'locked channel unread';\n break;\n }\n return this.type;\n },\n\n generalRowListeners () {\n return extractVueListeners(this.$attrs);\n },\n\n getAriaLabel () {\n return this.ariaLabel\n ? this.ariaLabel\n : safeConcatStrings([this.description, this.unreadCountTooltip, this.dndTextTooltip]);\n },\n\n hasActions () {\n return this.dndText || this.activeVoiceChat || this.showUnreadCount || this.hasCallButton ||\n this.showUnreadMentionCount;\n },\n\n showUnreadCount () {\n return !!this.unreadCount && this.hasUnreads;\n },\n\n showUnreadMentionCount () {\n return !!this.unreadMentionCount && this.hasUnreads;\n },\n\n hasUnreadCount () {\n return this.unreadCount !== null;\n },\n\n hasUnreadMentionCount () {\n return this.unreadMentionCount !== null;\n },\n\n shouldApplyCustomStyleForCountBadge () {\n return this.hasUnreadCount && this.hasUnreadMentionCount;\n },\n\n /**\n * When a channel in 'always' setting, meaning the user should see both unread count and unread mention count,\n * if there are only mention messages, we should apply the theme design tokens var(--dt-theme-mention-color-[background||foreground]-strong).\n * @returns {boolean}\n */\n shouldApplyCustomStyleForMentionOnly () {\n return this.channelSetting === 'always' && !this.hasUnreadCount && this.hasUnreadMentionCount;\n },\n },\n\n watch: {\n $props: {\n immediate: true,\n deep: true,\n async handler () {\n this.validateProps();\n await this.$nextTick();\n this.adjustLabelWidth();\n },\n },\n },\n\n mounted () {\n this.resizeObserver = new ResizeObserver(this.adjustLabelWidth);\n this.resizeObserver.observe(this.$el);\n this.adjustLabelWidth();\n },\n\n beforeUnmount: function () {\n this.resizeObserver.disconnect();\n },\n\n methods: {\n validateProps () {\n if (this.type === LEFTBAR_GENERAL_ROW_TYPES.CONTACT_CENTER &&\n !Object.keys(LEFTBAR_GENERAL_ROW_CONTACT_CENTER_COLORS).includes(this.color)) {\n console.error(LEFTBAR_GENERAL_ROW_CONTACT_CENTER_VALIDATION_ERROR);\n }\n },\n\n adjustLabelWidth () {\n const labelWidth = this.$el?.querySelector('.d-recipe-leftbar-row__primary')?.clientWidth || 0;\n const omegaWidth = this.$el?.querySelector('.d-recipe-leftbar-row__omega')?.clientWidth || 0;\n const alphaWidth = this.$el?.querySelector('.d-recipe-leftbar-row__alpha')?.clientWidth || 0;\n const paddings = 16;\n this.labelWidth = labelWidth - (omegaWidth + alphaWidth + paddings) + 'px';\n },\n },\n};\n</script>\n"],"names":["_createElementVNode","_createElementBlock","_normalizeClass","_mergeProps","_toHandlers","_renderSlot","_createVNode","_normalizeStyle","_withCtx","_createTextVNode","_toDisplayString","_openBlock","_createBlock","_createCommentVNode","_withModifiers"],"mappings":"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"}
1
+ {"version":3,"file":"general_row.vue.js","sources":["../../../../recipes/leftbar/general_row/general_row.vue"],"sourcesContent":["<template>\n <div\n :class=\"leftbarGeneralRowClasses\"\n v-bind=\"addClassStyleAttrs($attrs)\"\n data-qa=\"dt-recipe-leftbar-row\"\n >\n <a\n class=\"d-recipe-leftbar-row__primary\"\n :data-qa=\"'data-qa' in $attrs ? $attrs['data-qa'] : 'd-recipe-leftbar-row-link'\"\n :aria-label=\"getAriaLabel\"\n :title=\"description\"\n :href=\"'href' in $attrs ? $attrs.href : 'javascript:void(0)'\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n v-on=\"generalRowListeners\"\n >\n <div\n class=\"d-recipe-leftbar-row__alpha\"\n >\n <div\n v-if=\"isTyping\"\n class=\"d-recipe-leftbar-row__is-typing\"\n >\n <span /><span /><span />\n </div>\n <slot\n v-else\n name=\"left\"\n >\n <dt-recipe-leftbar-general-row-icon\n :type=\"getIcon\"\n :color=\"color\"\n :icon-size=\"iconSize\"\n data-qa=\"dt-recipe-leftbar-row-icon\"\n />\n </slot>\n </div>\n <div\n class=\"d-recipe-leftbar-row__label\"\n :style=\"`flex-basis: ${labelWidth}`\"\n >\n <slot name=\"label\">\n <dt-emoji-text-wrapper\n class=\"d-recipe-leftbar-row__description\"\n data-qa=\"dt-recipe-leftbar-row-description\"\n size=\"200\"\n >\n {{ description }}\n </dt-emoji-text-wrapper>\n </slot>\n </div>\n </a>\n <div\n v-if=\"hasActions\"\n class=\"d-recipe-leftbar-row__omega\"\n >\n <dt-tooltip\n v-if=\"dndText\"\n placement=\"top\"\n :message=\"dndTextTooltip\"\n >\n <template #anchor>\n <div\n ref=\"d-recipe-leftbar-row-dnd\"\n class=\"d-recipe-leftbar-row__dnd\"\n data-qa=\"dt-recipe-leftbar-row-dnd\"\n >\n {{ dndText }}\n </div>\n </template>\n </dt-tooltip>\n <div\n v-if=\"activeVoiceChat\"\n class=\"d-recipe-leftbar-row__active-voice\"\n >\n <dt-icon-waveform\n size=\"300\"\n />\n </div>\n <dt-tooltip\n v-else-if=\"showUnreadCount || showUnreadMentionCount\"\n :message=\"unreadCountTooltip\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-badge\n v-if=\"showUnreadCount\"\n kind=\"count\"\n type=\"bulletin\"\n data-qa=\"dt-recipe-leftbar-row-unread-badge\"\n :class=\"['d-recipe-leftbar-row__unread-badge', {\n 'd-recipe-leftbar-row__unread-count-badge':\n shouldApplyCustomStyleForCountBadge,\n }]\"\n >\n {{ unreadCount }}\n </dt-badge>\n <dt-badge\n v-if=\"showUnreadMentionCount\"\n kind=\"count\"\n type=\"bulletin\"\n data-qa=\"dt-recipe-leftbar-row-unread-mention-badge\"\n :class=\"['d-recipe-leftbar-row__unread-badge',\n { 'd-recipe-leftbar-row__unread-mention-count-badge': shouldApplyCustomStyleForCountBadge },\n { 'd-recipe-leftbar-row__unread-mention-only-count-badge': shouldApplyCustomStyleForMentionOnly },\n ]\"\n >\n {{ unreadMentionCount }}\n </dt-badge>\n </template>\n </dt-tooltip>\n <div\n v-if=\"hasCallButton\"\n class=\"d-recipe-leftbar-row__action\"\n data-qa=\"dt-recipe-leftbar-row-action\"\n >\n <dt-tooltip\n :message=\"callButtonTooltip\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n class=\"d-recipe-leftbar-row__action-button\"\n data-qa=\"dt-recipe-leftbar-row-action-call-button\"\n :circle=\"true\"\n size=\"xs\"\n kind=\"inverted\"\n :aria-label=\"callButtonTooltip\"\n @focus=\"actionFocused = true\"\n @blur=\"actionFocused = false\"\n @click.stop=\"$emit('call', $event)\"\n >\n <template #icon>\n <dt-icon-phone\n size=\"200\"\n />\n </template>\n </dt-button>\n </template>\n </dt-tooltip>\n </div>\n </div>\n </div>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport {\n LEFTBAR_GENERAL_ROW_TYPES,\n LEFTBAR_GENERAL_ROW_CONTACT_CENTER_COLORS,\n LEFTBAR_GENERAL_ROW_CONTACT_CENTER_VALIDATION_ERROR,\n LEFTBAR_GENERAL_ROW_ICON_SIZES,\n} from './general_row_constants';\nimport { DtBadge } from '@/components/badge';\nimport { DtIconPhone, DtIconWaveform } from '@dialpad/dialtone-icons/vue3';\nimport { DtButton } from '@/components/button';\nimport { DtTooltip } from '@/components/tooltip';\nimport DtEmojiTextWrapper from '@/components/emoji_text_wrapper/emoji_text_wrapper.vue';\nimport DtRecipeLeftbarGeneralRowIcon from './leftbar_general_row_icon.vue';\nimport { extractVueListeners, safeConcatStrings, removeClassStyleAttrs, returnFirstEl, addClassStyleAttrs } from '@/common/utils';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeGeneralRow',\n\n components: {\n DtEmojiTextWrapper,\n DtBadge,\n DtButton,\n DtTooltip,\n DtIconPhone,\n DtIconWaveform,\n DtRecipeLeftbarGeneralRowIcon,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Determines the icon to show.\n * If type is contact center, the color prop must be provided and will determine the color of the icon\n */\n type: {\n type: String,\n default: 'inbox',\n validator: (type) => {\n return Object.values(LEFTBAR_GENERAL_ROW_TYPES).includes(type);\n },\n },\n\n /**\n * Will be read out by a screen reader upon focus of this row. If not defined \"description\" will be read.\n */\n ariaLabel: {\n type: String,\n default: '',\n },\n\n /**\n * Text displayed next to the icon. Required. Even if you are overriding this field using the label slot\n * you still must input this as it will be displayed as the \"title\" attribute for the row.\n */\n description: {\n type: String,\n required: true,\n },\n\n /**\n * Determines the color of the contact center icon\n */\n color: {\n type: String,\n default: null,\n validator: (color) => {\n return Object.keys(LEFTBAR_GENERAL_ROW_CONTACT_CENTER_COLORS).includes(color);\n },\n },\n\n /**\n * The channel setting, either 'mention' or 'always'.\n * @values 'mention', 'always', null.\n */\n channelSetting: {\n type: String,\n default: null,\n },\n\n /**\n * Styles the row with an increased font weight to convey it has unreads. This must be true to see\n * the unread count badge.\n */\n hasUnreads: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Number of unread messages\n */\n unreadCount: {\n type: String,\n default: null,\n },\n\n /**\n * Number of unread mention messages\n */\n unreadMentionCount: {\n type: String,\n default: null,\n },\n\n /**\n * Text shown when the unread count is hovered.\n */\n unreadCountTooltip: {\n type: String,\n default: '',\n },\n\n /**\n * Determines if the row is selected\n */\n selected: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Gives a faded style to be used when muted\n */\n muted: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Shows styling to represent an active voice chat. This will display over unreadCount.\n */\n activeVoiceChat: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Acronym used to represent \"Do not Disturb\" state. If entered will display the entered text alongside\n * unreadCount.\n */\n dndText: {\n type: String,\n default: '',\n },\n\n /**\n * Text shown in tooltip when you hover the dndText\n */\n dndTextTooltip: {\n type: String,\n default: '',\n },\n\n /**\n * Whether the row should have a call button. Usually only applicable to individual contact rows.\n */\n hasCallButton: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Text shown when the call button is hovered.\n */\n callButtonTooltip: {\n type: String,\n default: '',\n },\n\n /**\n * Shows an \"is typing\" animation over the avatar when true.\n */\n isTyping: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Sets the size of the icon.\n */\n iconSize: {\n type: String,\n default: '300',\n validator: (size) => {\n return LEFTBAR_GENERAL_ROW_ICON_SIZES.includes(size);\n },\n },\n },\n\n emits: [\n /**\n * Call button clicked\n *\n * @event call\n * @type {PointerEvent | KeyboardEvent}\n */\n 'call',\n ],\n\n data () {\n return {\n actionFocused: false,\n labelWidth: '100%',\n };\n },\n\n computed: {\n leftbarGeneralRowClasses () {\n return [\n 'd-recipe-leftbar-row',\n {\n 'd-recipe-leftbar-row--no-action': !this.hasCallButton,\n 'd-recipe-leftbar-row--has-unread': this.hasUnreads,\n 'd-recipe-leftbar-row__unread-count': this.showUnreadCount || this.showUnreadMentionCount,\n 'd-recipe-leftbar-row--selected': this.selected,\n 'd-recipe-leftbar-row--muted': this.muted,\n 'd-recipe-leftbar-row--action-focused': this.actionFocused,\n },\n ];\n },\n\n getIcon () {\n switch (this.type) {\n case LEFTBAR_GENERAL_ROW_TYPES.CHANNELS:\n if (this.hasUnreads) return 'channel unread';\n break;\n case LEFTBAR_GENERAL_ROW_TYPES.LOCKED_CHANNEL:\n if (this.hasUnreads) return 'locked channel unread';\n break;\n }\n return this.type;\n },\n\n generalRowListeners () {\n return extractVueListeners(this.$attrs);\n },\n\n getAriaLabel () {\n return this.ariaLabel\n ? this.ariaLabel\n : safeConcatStrings([this.description, this.unreadCountTooltip, this.dndTextTooltip]);\n },\n\n hasActions () {\n return this.dndText || this.activeVoiceChat || this.showUnreadCount || this.hasCallButton ||\n this.showUnreadMentionCount;\n },\n\n showUnreadCount () {\n return !!this.unreadCount && this.hasUnreads;\n },\n\n showUnreadMentionCount () {\n return !!this.unreadMentionCount && this.hasUnreads;\n },\n\n hasUnreadCount () {\n return this.unreadCount !== null;\n },\n\n hasUnreadMentionCount () {\n return this.unreadMentionCount !== null;\n },\n\n shouldApplyCustomStyleForCountBadge () {\n return this.hasUnreadCount && this.hasUnreadMentionCount;\n },\n\n /**\n * When a channel in 'always' setting, meaning the user should see both unread count and unread mention count,\n * if there are only mention messages, we should apply the theme design tokens var(--dt-theme-mention-color-[background||foreground]-strong).\n * @returns {boolean}\n */\n shouldApplyCustomStyleForMentionOnly () {\n return this.channelSetting === 'always' && !this.hasUnreadCount && this.hasUnreadMentionCount;\n },\n },\n\n watch: {\n $props: {\n immediate: true,\n deep: true,\n async handler () {\n this.validateProps();\n await this.$nextTick();\n this.adjustLabelWidth();\n },\n },\n },\n\n mounted () {\n this.resizeObserver = new ResizeObserver(this.adjustLabelWidth);\n this.resizeObserver.observe(returnFirstEl(this.$el));\n this.adjustLabelWidth();\n },\n\n beforeUnmount: function () {\n this.resizeObserver.disconnect();\n },\n\n methods: {\n removeClassStyleAttrs,\n addClassStyleAttrs,\n\n validateProps () {\n if (this.type === LEFTBAR_GENERAL_ROW_TYPES.CONTACT_CENTER &&\n !Object.keys(LEFTBAR_GENERAL_ROW_CONTACT_CENTER_COLORS).includes(this.color)) {\n console.error(LEFTBAR_GENERAL_ROW_CONTACT_CENTER_VALIDATION_ERROR);\n }\n },\n\n adjustLabelWidth () {\n const labelWidth = returnFirstEl(this.$el)?.querySelector('.d-recipe-leftbar-row__primary')?.clientWidth || 0;\n const omegaWidth = returnFirstEl(this.$el)?.querySelector('.d-recipe-leftbar-row__omega')?.clientWidth || 0;\n const alphaWidth = returnFirstEl(this.$el)?.querySelector('.d-recipe-leftbar-row__alpha')?.clientWidth || 0;\n const paddings = 16;\n this.labelWidth = labelWidth - (omegaWidth + alphaWidth + paddings) + 'px';\n },\n },\n};\n</script>\n"],"names":["_createElementVNode","_openBlock","_createElementBlock","_mergeProps","_toHandlers","_renderSlot","_createVNode","_normalizeStyle","_withCtx","_createTextVNode","_toDisplayString","_createBlock","_createCommentVNode","_normalizeClass","_withModifiers"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export function enableVue2StyleClassAttrs(): void;
2
+ export let configVue2StyleClassAttrs: boolean;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../common/config/index.js"],"names":[],"mappings":"AAEA,kDAEC;AAJD,8CAA6C"}
@@ -1 +1 @@
1
- {"version":3,"file":"keyboard_list_navigation.d.ts","sourceRoot":"","sources":["../../../../common/mixins/keyboard_list_navigation.js"],"names":[],"mappings":"AA6Be;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuNb"}
1
+ {"version":3,"file":"keyboard_list_navigation.d.ts","sourceRoot":"","sources":["../../../../common/mixins/keyboard_list_navigation.js"],"names":[],"mappings":"AA8Be;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuNb"}
@@ -1 +1 @@
1
- {"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../../../common/mixins/modal.js"],"names":[],"mappings":";;QA0BI,4DAIC;QAOD,uDAGC;QAED,yDAYC;QASD,4DAUC;QAWD,mFASC;QAQD,2DA2BC"}
1
+ {"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../../../common/mixins/modal.js"],"names":[],"mappings":";;QA4BI,4DAIC;QAOD,uDAGC;QAED,yDAYC;QASD,4DAUC;QAWD,mFAUC;QAQD,2DA2BC"}
@@ -8,6 +8,14 @@ export function getValidationState(formattedMessages: any): string | null;
8
8
  export function hasFormattedMessageOfType(formattedMessages: any, messageType: any): any;
9
9
  export function findFirstFocusableNode(element: any): any;
10
10
  export function hasSlotContent(slot: any, slotProps?: {}): any;
11
+ export function removeClassStyleAttrs(attrs: any): any;
12
+ export function addClassStyleAttrs(attrs: any): {
13
+ class?: undefined;
14
+ style?: undefined;
15
+ } | {
16
+ class: any;
17
+ style: any;
18
+ };
11
19
  export function debounce(func: any, timeout?: number): void;
12
20
  export function isOutOfViewPort(element: HTMLElement): Object;
13
21
  export function getPhoneNumberRegex(minLength?: number, maxLength?: number): RegExp;
@@ -28,6 +36,7 @@ export function pascalCaseToKebabCase(string: any): string;
28
36
  export function extractVueListeners(attrs: any): {
29
37
  [k: string]: any;
30
38
  };
39
+ export function returnFirstEl(el: any): HTMLElement;
31
40
  export const linkRegex: RegExp;
32
41
  declare namespace _default {
33
42
  export { getUniqueString };
@@ -41,6 +50,9 @@ declare namespace _default {
41
50
  export { flushPromises };
42
51
  export { kebabCaseToPascalCase };
43
52
  export { extractVueListeners };
53
+ export { removeClassStyleAttrs };
54
+ export { addClassStyleAttrs };
55
+ export { returnFirstEl };
44
56
  export { debounce };
45
57
  export { isOutOfViewPort };
46
58
  export { getPhoneNumberRegex };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../common/utils/index.js"],"names":[],"mappings":"AAyBA,yDAEC;AASD,mDAJW,MAAM,OAWhB;AAiBD,kCAHW,MAAM,GACL,MAAM,CASjB;AAOD,kCAHW,MAAM,GACJ,MAAM,CAIlB;AAED,mDAeC;AAED,qEAQC;AAOD,0EAgBC;AAED,yFAMC;AAED,0DAEC;AAqBD,+DAcC;AAoCD,4DAGC;AASD,yCAJY,WAAW,GACX,MAAM,CAejB;AA0ED,gDAJW,MAAM,cACN,MAAM,GACJ,MAAM,CAuBlB;AAoBD,qCAHW,MAAM,GAAC,MAAM,GACX,OAAO,CAMnB;AAOD,6BAHW,MAAM,GACJ,OAAO,CAMnB;AAOD,sCAHW,MAAM,GACJ,OAAO,CAKnB;AAQD,2DAEC;AAQD,2CAJW,MAAM,WACN,MAAM,UAKhB;AAQD,8CAJW,WAAW,iBACX,MAAM,QAUhB;AAkBD,mDAFuB,WAAW,QAQjC;AAMD,kDAFuB,WAAW,QAQjC;AA5SM;;GAEN;AAEM,8CAIN;AA4BM,oDAFM,MAAM,CAOlB;AAOM,oDAFM,MAAM,CAMlB;AAEM;;EAIN;AAmID,+BAQE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../common/utils/index.js"],"names":[],"mappings":"AA4BA,yDAEC;AASD,mDAJW,MAAM,OAWhB;AAiBD,kCAHW,MAAM,GACL,MAAM,CASjB;AAOD,kCAHW,MAAM,GACJ,MAAM,CAIlB;AAED,mDAeC;AAED,qEAQC;AAOD,0EAgBC;AAED,yFAMC;AAED,0DAEC;AAqBD,+DAcC;AA6DD,uDAKC;AAOD;;;;;;EAMC;AAOD,4DAGC;AASD,yCAJY,WAAW,GACX,MAAM,CAejB;AA0ED,gDAJW,MAAM,cACN,MAAM,GACJ,MAAM,CAuBlB;AAoBD,qCAHW,MAAM,GAAC,MAAM,GACX,OAAO,CAMnB;AAOD,6BAHW,MAAM,GACJ,OAAO,CAMnB;AAOD,sCAHW,MAAM,GACJ,OAAO,CAKnB;AAQD,2DAEC;AAQD,2CAJW,MAAM,WACN,MAAM,UAKhB;AAQD,8CAJW,WAAW,iBACX,MAAM,QAUhB;AAkBD,mDAFuB,WAAW,QAQjC;AAMD,kDAFuB,WAAW,QAQjC;AA9VM;;GAEN;AAEM,8CAIN;AA4BM,oDAFM,MAAM,CAOlB;AAOM,oDAFM,MAAM,CAMlB;AAEM;;EAIN;AASM,wCAFM,WAAW,CAUvB;AAoKD,+BAQE"}
@@ -1 +1 @@
1
- {"version":3,"file":"avatar.vue.d.ts","sourceRoot":"","sources":["../../../../components/avatar/avatar.vue"],"names":[],"mappings":"AA6EA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BA+akE,gBAAgB"}
1
+ {"version":3,"file":"avatar.vue.d.ts","sourceRoot":"","sources":["../../../../components/avatar/avatar.vue"],"names":[],"mappings":"AA8EA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAibkE,gBAAgB"}