@dialpad/dialtone-vue 3.199.0 → 3.199.1

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 (456) hide show
  1. package/README.md +15 -14
  2. package/dist/component-documentation.json +1 -1
  3. package/dist/lib/attachment-carousel/attachment-carousel.cjs +1 -1
  4. package/dist/lib/attachment-carousel/attachment-carousel.cjs.map +1 -1
  5. package/dist/lib/attachment-carousel/attachment-carousel.js +28 -28
  6. package/dist/lib/attachment-carousel/attachment-carousel.js.map +1 -1
  7. package/dist/lib/avatar/avatar.cjs.map +1 -1
  8. package/dist/lib/avatar/avatar.js.map +1 -1
  9. package/dist/lib/badge/badge.cjs.map +1 -1
  10. package/dist/lib/badge/badge.js.map +1 -1
  11. package/dist/lib/banner/banner.cjs.map +1 -1
  12. package/dist/lib/banner/banner.js.map +1 -1
  13. package/dist/lib/breadcrumbs/breadcrumb-item.cjs.map +1 -1
  14. package/dist/lib/breadcrumbs/breadcrumb-item.js.map +1 -1
  15. package/dist/lib/breadcrumbs/breadcrumbs.cjs +1 -1
  16. package/dist/lib/breadcrumbs/breadcrumbs.cjs.map +1 -1
  17. package/dist/lib/breadcrumbs/breadcrumbs.js +5 -5
  18. package/dist/lib/breadcrumbs/breadcrumbs.js.map +1 -1
  19. package/dist/lib/button/button.cjs.map +1 -1
  20. package/dist/lib/button/button.js.map +1 -1
  21. package/dist/lib/button-group/button-group.cjs.map +1 -1
  22. package/dist/lib/button-group/button-group.js.map +1 -1
  23. package/dist/lib/button-group/buttons-decorator.cjs +1 -1
  24. package/dist/lib/button-group/buttons-decorator.cjs.map +1 -1
  25. package/dist/lib/button-group/buttons-decorator.js +17 -17
  26. package/dist/lib/button-group/buttons-decorator.js.map +1 -1
  27. package/dist/lib/callbar-button/callbar-button.cjs.map +1 -1
  28. package/dist/lib/callbar-button/callbar-button.js.map +1 -1
  29. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs.map +1 -1
  30. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js +0 -1
  31. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js.map +1 -1
  32. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.cjs.map +1 -1
  33. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.js +0 -1
  34. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.js.map +1 -1
  35. package/dist/lib/callbox/callbox.cjs.map +1 -1
  36. package/dist/lib/callbox/callbox.js.map +1 -1
  37. package/dist/lib/card/card.cjs.map +1 -1
  38. package/dist/lib/card/card.js.map +1 -1
  39. package/dist/lib/checkbox/checkbox.cjs.map +1 -1
  40. package/dist/lib/checkbox/checkbox.js.map +1 -1
  41. package/dist/lib/checkbox-group/checkboxes-decorator.cjs.map +1 -1
  42. package/dist/lib/checkbox-group/checkboxes-decorator.js.map +1 -1
  43. package/dist/lib/chip/chip.cjs.map +1 -1
  44. package/dist/lib/chip/chip.js.map +1 -1
  45. package/dist/lib/codeblock/codeblock.cjs +2 -2
  46. package/dist/lib/codeblock/codeblock.cjs.map +1 -1
  47. package/dist/lib/codeblock/codeblock.js +11 -11
  48. package/dist/lib/codeblock/codeblock.js.map +1 -1
  49. package/dist/lib/collapsible/collapsible-lazy-show.cjs.map +1 -1
  50. package/dist/lib/collapsible/collapsible-lazy-show.js.map +1 -1
  51. package/dist/lib/collapsible/collapsible.cjs.map +1 -1
  52. package/dist/lib/collapsible/collapsible.js.map +1 -1
  53. package/dist/lib/combobox/combobox-empty-list.cjs.map +1 -1
  54. package/dist/lib/combobox/combobox-empty-list.js.map +1 -1
  55. package/dist/lib/combobox/combobox-loading-list.cjs +1 -1
  56. package/dist/lib/combobox/combobox-loading-list.cjs.map +1 -1
  57. package/dist/lib/combobox/combobox-loading-list.js +2 -2
  58. package/dist/lib/combobox/combobox-loading-list.js.map +1 -1
  59. package/dist/lib/combobox/combobox.cjs.map +1 -1
  60. package/dist/lib/combobox/combobox.js.map +1 -1
  61. package/dist/lib/combobox-multi-select/combobox-multi-select.cjs.map +1 -1
  62. package/dist/lib/combobox-multi-select/combobox-multi-select.js.map +1 -1
  63. package/dist/lib/combobox-with-popover/combobox-with-popover.cjs.map +1 -1
  64. package/dist/lib/combobox-with-popover/combobox-with-popover.js.map +1 -1
  65. package/dist/lib/contact-centers-row/contact-centers-row.cjs.map +1 -1
  66. package/dist/lib/contact-centers-row/contact-centers-row.js.map +1 -1
  67. package/dist/lib/contact-info/contact-info.cjs.map +1 -1
  68. package/dist/lib/contact-info/contact-info.js.map +1 -1
  69. package/dist/lib/contact-row/contact-row.cjs.map +1 -1
  70. package/dist/lib/contact-row/contact-row.js.map +1 -1
  71. package/dist/lib/datepicker/datepicker.cjs.map +1 -1
  72. package/dist/lib/datepicker/datepicker.js.map +1 -1
  73. package/dist/lib/description-list/description-list.cjs.map +1 -1
  74. package/dist/lib/description-list/description-list.js.map +1 -1
  75. package/dist/lib/dropdown/dropdown-list.cjs.map +1 -1
  76. package/dist/lib/dropdown/dropdown-list.js.map +1 -1
  77. package/dist/lib/dropdown/dropdown.cjs.map +1 -1
  78. package/dist/lib/dropdown/dropdown.js.map +1 -1
  79. package/dist/lib/editor/editor.cjs +1 -1
  80. package/dist/lib/editor/editor.cjs.map +1 -1
  81. package/dist/lib/editor/editor.js +14 -14
  82. package/dist/lib/editor/editor.js.map +1 -1
  83. package/dist/lib/emoji/emoji.cjs.map +1 -1
  84. package/dist/lib/emoji/emoji.js.map +1 -1
  85. package/dist/lib/emoji-picker/emoji-picker.cjs.map +1 -1
  86. package/dist/lib/emoji-picker/emoji-picker.js.map +1 -1
  87. package/dist/lib/emoji-row/emoji-row.cjs +1 -1
  88. package/dist/lib/emoji-row/emoji-row.cjs.map +1 -1
  89. package/dist/lib/emoji-row/emoji-row.js +20 -20
  90. package/dist/lib/emoji-row/emoji-row.js.map +1 -1
  91. package/dist/lib/empty-state/empty-state.cjs.map +1 -1
  92. package/dist/lib/empty-state/empty-state.js.map +1 -1
  93. package/dist/lib/feed-item-pill/feed-item-pill.cjs.map +1 -1
  94. package/dist/lib/feed-item-pill/feed-item-pill.js.map +1 -1
  95. package/dist/lib/feed-item-row/feed-item-row.cjs +1 -1
  96. package/dist/lib/feed-item-row/feed-item-row.cjs.map +1 -1
  97. package/dist/lib/feed-item-row/feed-item-row.js +52 -48
  98. package/dist/lib/feed-item-row/feed-item-row.js.map +1 -1
  99. package/dist/lib/general-row/general-row.cjs +1 -1
  100. package/dist/lib/general-row/general-row.cjs.map +1 -1
  101. package/dist/lib/general-row/general-row.js +43 -43
  102. package/dist/lib/general-row/general-row.js.map +1 -1
  103. package/dist/lib/general-row/leftbar-general-row-icon.cjs.map +1 -1
  104. package/dist/lib/general-row/leftbar-general-row-icon.js.map +1 -1
  105. package/dist/lib/group-row/group-row.cjs.map +1 -1
  106. package/dist/lib/group-row/group-row.js.map +1 -1
  107. package/dist/lib/grouped-chip/grouped-chip.cjs.map +1 -1
  108. package/dist/lib/grouped-chip/grouped-chip.js.map +1 -1
  109. package/dist/lib/hovercard/hovercard.cjs.map +1 -1
  110. package/dist/lib/hovercard/hovercard.js.map +1 -1
  111. package/dist/lib/icon/icon.cjs.map +1 -1
  112. package/dist/lib/icon/icon.js.map +1 -1
  113. package/dist/lib/illustration/illustration.cjs.map +1 -1
  114. package/dist/lib/illustration/illustration.js.map +1 -1
  115. package/dist/lib/image-viewer/image-viewer.cjs.map +1 -1
  116. package/dist/lib/image-viewer/image-viewer.js.map +1 -1
  117. package/dist/lib/input/input.cjs +1 -1
  118. package/dist/lib/input/input.cjs.map +1 -1
  119. package/dist/lib/input/input.js +11 -9
  120. package/dist/lib/input/input.js.map +1 -1
  121. package/dist/lib/input-group/input-group.cjs.map +1 -1
  122. package/dist/lib/input-group/input-group.js.map +1 -1
  123. package/dist/lib/item-layout/item-layout.cjs.map +1 -1
  124. package/dist/lib/item-layout/item-layout.js.map +1 -1
  125. package/dist/lib/ivr-node/ivr-node.cjs.map +1 -1
  126. package/dist/lib/ivr-node/ivr-node.js.map +1 -1
  127. package/dist/lib/keyboard-shortcut/keyboard-shortcut.cjs.map +1 -1
  128. package/dist/lib/keyboard-shortcut/keyboard-shortcut.js.map +1 -1
  129. package/dist/lib/lazy-show/lazy-show.cjs.map +1 -1
  130. package/dist/lib/lazy-show/lazy-show.js.map +1 -1
  131. package/dist/lib/link/link.cjs.map +1 -1
  132. package/dist/lib/link/link.js.map +1 -1
  133. package/dist/lib/list-item/list-item.cjs.map +1 -1
  134. package/dist/lib/list-item/list-item.js.map +1 -1
  135. package/dist/lib/list-item-group/list-item-group.cjs.map +1 -1
  136. package/dist/lib/list-item-group/list-item-group.js.map +1 -1
  137. package/dist/lib/loader/loader.cjs.map +1 -1
  138. package/dist/lib/loader/loader.js.map +1 -1
  139. package/dist/lib/message-input/last-active-nodes.cjs.map +1 -1
  140. package/dist/lib/message-input/last-active-nodes.js.map +1 -1
  141. package/dist/lib/message-input/message-input-button.cjs.map +1 -1
  142. package/dist/lib/message-input/message-input-button.js.map +1 -1
  143. package/dist/lib/message-input/message-input-link.cjs.map +1 -1
  144. package/dist/lib/message-input/message-input-link.js.map +1 -1
  145. package/dist/lib/message-input/message-input-topbar.cjs +1 -1
  146. package/dist/lib/message-input/message-input-topbar.cjs.map +1 -1
  147. package/dist/lib/message-input/message-input-topbar.js +25 -25
  148. package/dist/lib/message-input/message-input-topbar.js.map +1 -1
  149. package/dist/lib/message-input/message-input.cjs +1 -1
  150. package/dist/lib/message-input/message-input.cjs.map +1 -1
  151. package/dist/lib/message-input/message-input.js +2 -2
  152. package/dist/lib/message-input/message-input.js.map +1 -1
  153. package/dist/lib/modal/modal.cjs.map +1 -1
  154. package/dist/lib/modal/modal.js.map +1 -1
  155. package/dist/lib/motion-text/motion-text.cjs.map +1 -1
  156. package/dist/lib/motion-text/motion-text.js.map +1 -1
  157. package/dist/lib/notice/notice-action.cjs.map +1 -1
  158. package/dist/lib/notice/notice-action.js.map +1 -1
  159. package/dist/lib/notice/notice-content.cjs.map +1 -1
  160. package/dist/lib/notice/notice-content.js.map +1 -1
  161. package/dist/lib/notice/notice-icon.cjs.map +1 -1
  162. package/dist/lib/notice/notice-icon.js.map +1 -1
  163. package/dist/lib/notice/notice.cjs.map +1 -1
  164. package/dist/lib/notice/notice.js.map +1 -1
  165. package/dist/lib/pagination/pagination.cjs.map +1 -1
  166. package/dist/lib/pagination/pagination.js.map +1 -1
  167. package/dist/lib/popover/popover-header-footer.cjs.map +1 -1
  168. package/dist/lib/popover/popover-header-footer.js.map +1 -1
  169. package/dist/lib/popover/popover.cjs.map +1 -1
  170. package/dist/lib/popover/popover.js.map +1 -1
  171. package/dist/lib/presence/presence.cjs.map +1 -1
  172. package/dist/lib/presence/presence.js.map +1 -1
  173. package/dist/lib/radio/radio.cjs.map +1 -1
  174. package/dist/lib/radio/radio.js.map +1 -1
  175. package/dist/lib/radio-group/radios-decorator.cjs.map +1 -1
  176. package/dist/lib/radio-group/radios-decorator.js.map +1 -1
  177. package/dist/lib/rich-text-editor/channel-suggestion.cjs +1 -1
  178. package/dist/lib/rich-text-editor/channel-suggestion.cjs.map +1 -1
  179. package/dist/lib/rich-text-editor/channel-suggestion.js +12 -8
  180. package/dist/lib/rich-text-editor/channel-suggestion.js.map +1 -1
  181. package/dist/lib/rich-text-editor/rich-text-editor.cjs +10 -8
  182. package/dist/lib/rich-text-editor/rich-text-editor.cjs.map +1 -1
  183. package/dist/lib/rich-text-editor/rich-text-editor.js +58 -55
  184. package/dist/lib/rich-text-editor/rich-text-editor.js.map +1 -1
  185. package/dist/lib/root-layout/root-layout.cjs.map +1 -1
  186. package/dist/lib/root-layout/root-layout.js.map +1 -1
  187. package/dist/lib/scroller/scroller.cjs.map +1 -1
  188. package/dist/lib/scroller/scroller.js.map +1 -1
  189. package/dist/lib/select-menu/select-menu.cjs +1 -1
  190. package/dist/lib/select-menu/select-menu.cjs.map +1 -1
  191. package/dist/lib/select-menu/select-menu.js +8 -8
  192. package/dist/lib/select-menu/select-menu.js.map +1 -1
  193. package/dist/lib/settings-menu-button/settings-menu-button.cjs.map +1 -1
  194. package/dist/lib/settings-menu-button/settings-menu-button.js.map +1 -1
  195. package/dist/lib/skeleton/skeleton-list-item.cjs.map +1 -1
  196. package/dist/lib/skeleton/skeleton-list-item.js.map +1 -1
  197. package/dist/lib/skeleton/skeleton-paragraph.cjs.map +1 -1
  198. package/dist/lib/skeleton/skeleton-paragraph.js.map +1 -1
  199. package/dist/lib/skeleton/skeleton-shape.cjs.map +1 -1
  200. package/dist/lib/skeleton/skeleton-shape.js.map +1 -1
  201. package/dist/lib/skeleton/skeleton-text.cjs.map +1 -1
  202. package/dist/lib/skeleton/skeleton-text.js.map +1 -1
  203. package/dist/lib/skeleton/skeleton.cjs.map +1 -1
  204. package/dist/lib/skeleton/skeleton.js.map +1 -1
  205. package/dist/lib/split-button/split-button-alpha.cjs.map +1 -1
  206. package/dist/lib/split-button/split-button-alpha.js.map +1 -1
  207. package/dist/lib/split-button/split-button-omega.cjs.map +1 -1
  208. package/dist/lib/split-button/split-button-omega.js.map +1 -1
  209. package/dist/lib/split-button/split-button.cjs +1 -1
  210. package/dist/lib/split-button/split-button.cjs.map +1 -1
  211. package/dist/lib/split-button/split-button.js +44 -21
  212. package/dist/lib/split-button/split-button.js.map +1 -1
  213. package/dist/lib/stack/stack.cjs.map +1 -1
  214. package/dist/lib/stack/stack.js.map +1 -1
  215. package/dist/lib/tab/tab-group.cjs.map +1 -1
  216. package/dist/lib/tab/tab-group.js.map +1 -1
  217. package/dist/lib/tab/tab-panel.cjs.map +1 -1
  218. package/dist/lib/tab/tab-panel.js.map +1 -1
  219. package/dist/lib/tab/tab.cjs.map +1 -1
  220. package/dist/lib/tab/tab.js.map +1 -1
  221. package/dist/lib/time-pill/time-pill.cjs.map +1 -1
  222. package/dist/lib/time-pill/time-pill.js.map +1 -1
  223. package/dist/lib/toast/toast.cjs.map +1 -1
  224. package/dist/lib/toast/toast.js.map +1 -1
  225. package/dist/lib/toggle/toggle.cjs.map +1 -1
  226. package/dist/lib/toggle/toggle.js.map +1 -1
  227. package/dist/lib/tooltip/tooltip.cjs.map +1 -1
  228. package/dist/lib/tooltip/tooltip.js.map +1 -1
  229. package/dist/lib/top-banner-info/top-banner-info.cjs.map +1 -1
  230. package/dist/lib/top-banner-info/top-banner-info.js.map +1 -1
  231. package/dist/lib/unread-pill/unread-pill.cjs.map +1 -1
  232. package/dist/lib/unread-pill/unread-pill.js.map +1 -1
  233. package/dist/lib/validation-messages/validation-messages.cjs.map +1 -1
  234. package/dist/lib/validation-messages/validation-messages.js.map +1 -1
  235. package/dist/localization/de-DE.cjs.map +1 -1
  236. package/dist/localization/de-DE.js.map +1 -1
  237. package/dist/localization/en-US.cjs.map +1 -1
  238. package/dist/localization/en-US.js.map +1 -1
  239. package/dist/localization/es-LA.cjs.map +1 -1
  240. package/dist/localization/es-LA.js.map +1 -1
  241. package/dist/localization/fr-FR.cjs.map +1 -1
  242. package/dist/localization/fr-FR.js.map +1 -1
  243. package/dist/localization/it-IT.cjs.map +1 -1
  244. package/dist/localization/it-IT.js.map +1 -1
  245. package/dist/localization/ja-JP.cjs.map +1 -1
  246. package/dist/localization/ja-JP.js.map +1 -1
  247. package/dist/localization/nl-NL.cjs.map +1 -1
  248. package/dist/localization/nl-NL.js.map +1 -1
  249. package/dist/localization/pt-BR.cjs.map +1 -1
  250. package/dist/localization/pt-BR.js.map +1 -1
  251. package/dist/localization/ru-RU.cjs.map +1 -1
  252. package/dist/localization/ru-RU.js.map +1 -1
  253. package/dist/localization/zh-CN.cjs.map +1 -1
  254. package/dist/localization/zh-CN.js.map +1 -1
  255. package/dist/node_modules/@tiptap/vue-3.cjs.map +1 -1
  256. package/dist/node_modules/@tiptap/vue-3.js.map +1 -1
  257. package/dist/shared/sr_only_close_button.cjs.map +1 -1
  258. package/dist/shared/sr_only_close_button.js.map +1 -1
  259. package/dist/types/common/sr_only_close_button.vue.d.ts +210 -2
  260. package/dist/types/common/sr_only_close_button.vue.d.ts.map +1 -1
  261. package/dist/types/components/avatar/avatar.vue.d.ts +38 -13
  262. package/dist/types/components/avatar/avatar.vue.d.ts.map +1 -1
  263. package/dist/types/components/badge/badge.vue.d.ts +4 -4
  264. package/dist/types/components/banner/banner.vue.d.ts +693 -5
  265. package/dist/types/components/banner/banner.vue.d.ts.map +1 -1
  266. package/dist/types/components/breadcrumbs/breadcrumb_item.vue.d.ts +40 -4
  267. package/dist/types/components/breadcrumbs/breadcrumb_item.vue.d.ts.map +1 -1
  268. package/dist/types/components/breadcrumbs/breadcrumbs.vue.d.ts +90 -4
  269. package/dist/types/components/button/button.vue.d.ts +6 -6
  270. package/dist/types/components/button_group/button_group.vue.d.ts +4 -4
  271. package/dist/types/components/card/card.vue.d.ts +4 -4
  272. package/dist/types/components/checkbox/checkbox.vue.d.ts +43 -2
  273. package/dist/types/components/checkbox/checkbox.vue.d.ts.map +1 -1
  274. package/dist/types/components/checkbox_group/checkbox_group.vue.d.ts +55 -14
  275. package/dist/types/components/chip/chip.vue.d.ts +213 -5
  276. package/dist/types/components/chip/chip.vue.d.ts.map +1 -1
  277. package/dist/types/components/codeblock/codeblock.vue.d.ts +3 -3
  278. package/dist/types/components/collapsible/collapsible.vue.d.ts +322 -6
  279. package/dist/types/components/collapsible/collapsible.vue.d.ts.map +1 -1
  280. package/dist/types/components/collapsible/collapsible_lazy_show.vue.d.ts +4 -4
  281. package/dist/types/components/combobox/combobox.vue.d.ts +1273 -20
  282. package/dist/types/components/combobox/combobox.vue.d.ts.map +1 -1
  283. package/dist/types/components/combobox/combobox_empty-list.vue.d.ts +218 -4
  284. package/dist/types/components/combobox/combobox_empty-list.vue.d.ts.map +1 -1
  285. package/dist/types/components/combobox/combobox_loading-list.vue.d.ts +1017 -1
  286. package/dist/types/components/combobox/combobox_loading-list.vue.d.ts.map +1 -1
  287. package/dist/types/components/datepicker/composables/useCalendar.d.ts +1 -1
  288. package/dist/types/components/datepicker/composables/useMonthYearPicker.d.ts +2 -2
  289. package/dist/types/components/datepicker/datepicker.vue.d.ts +50 -1
  290. package/dist/types/components/datepicker/modules/calendar.vue.d.ts +1 -1
  291. package/dist/types/components/datepicker/modules/month-year-picker.vue.d.ts +1 -1
  292. package/dist/types/components/description_list/description_list.vue.d.ts +6 -6
  293. package/dist/types/components/dropdown/dropdown.vue.d.ts +910 -11
  294. package/dist/types/components/dropdown/dropdown.vue.d.ts.map +1 -1
  295. package/dist/types/components/dropdown/dropdown_separator.vue.d.ts +1 -1
  296. package/dist/types/components/emoji/emoji.vue.d.ts +807 -4
  297. package/dist/types/components/emoji_picker/composables/useKeyboardNavigation.d.ts +3 -3
  298. package/dist/types/components/emoji_picker/emoji_picker.vue.d.ts +473 -1
  299. package/dist/types/components/emoji_picker/modules/emoji_description.vue.d.ts +1 -1
  300. package/dist/types/components/emoji_picker/modules/emoji_search.vue.d.ts +379 -1
  301. package/dist/types/components/emoji_picker/modules/emoji_search.vue.d.ts.map +1 -1
  302. package/dist/types/components/emoji_picker/modules/emoji_selector.vue.d.ts +4 -1
  303. package/dist/types/components/emoji_picker/modules/emoji_selector.vue.d.ts.map +1 -1
  304. package/dist/types/components/emoji_picker/modules/emoji_skin_selector.vue.d.ts +3 -1
  305. package/dist/types/components/emoji_picker/modules/emoji_skin_selector.vue.d.ts.map +1 -1
  306. package/dist/types/components/emoji_picker/modules/emoji_tabset.vue.d.ts +1 -1
  307. package/dist/types/components/emoji_text_wrapper/emoji_text_wrapper.vue.d.ts +871 -4
  308. package/dist/types/components/empty_state/empty_state.vue.d.ts +1 -1
  309. package/dist/types/components/empty_state/empty_state.vue.d.ts.map +1 -1
  310. package/dist/types/components/hovercard/hovercard.vue.d.ts +1558 -156
  311. package/dist/types/components/hovercard/hovercard.vue.d.ts.map +1 -1
  312. package/dist/types/components/icon/icon.vue.d.ts +5 -5
  313. package/dist/types/components/illustration/illustration.vue.d.ts +1 -1
  314. package/dist/types/components/image_viewer/image_viewer.vue.d.ts +430 -5
  315. package/dist/types/components/image_viewer/image_viewer.vue.d.ts.map +1 -1
  316. package/dist/types/components/input/input.vue.d.ts +51 -10
  317. package/dist/types/components/input/input.vue.d.ts.map +1 -1
  318. package/dist/types/components/input_group/input_group.vue.d.ts +49 -8
  319. package/dist/types/components/input_group/input_group.vue.d.ts.map +1 -1
  320. package/dist/types/components/item_layout/item_layout.vue.d.ts +5 -5
  321. package/dist/types/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts +489 -16
  322. package/dist/types/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts.map +1 -1
  323. package/dist/types/components/lazy_show/lazy_show.vue.d.ts +4 -4
  324. package/dist/types/components/link/link.vue.d.ts +4 -4
  325. package/dist/types/components/list_item/list_item.vue.d.ts +124 -5
  326. package/dist/types/components/list_item/list_item.vue.d.ts.map +1 -1
  327. package/dist/types/components/list_item_group/list_item_group.vue.d.ts +4 -4
  328. package/dist/types/components/loader/loader.vue.d.ts +35 -4
  329. package/dist/types/components/loader/loader.vue.d.ts.map +1 -1
  330. package/dist/types/components/modal/modal.vue.d.ts +466 -6
  331. package/dist/types/components/modal/modal.vue.d.ts.map +1 -1
  332. package/dist/types/components/notice/notice.vue.d.ts +693 -5
  333. package/dist/types/components/notice/notice.vue.d.ts.map +1 -1
  334. package/dist/types/components/notice/notice_action.vue.d.ts +430 -5
  335. package/dist/types/components/notice/notice_action.vue.d.ts.map +1 -1
  336. package/dist/types/components/notice/notice_content.vue.d.ts +4 -4
  337. package/dist/types/components/notice/notice_icon.vue.d.ts +185 -5
  338. package/dist/types/components/notice/notice_icon.vue.d.ts.map +1 -1
  339. package/dist/types/components/pagination/pagination.vue.d.ts +273 -5
  340. package/dist/types/components/pagination/pagination.vue.d.ts.map +1 -1
  341. package/dist/types/components/popover/popover.vue.d.ts +509 -9
  342. package/dist/types/components/popover/popover.vue.d.ts.map +1 -1
  343. package/dist/types/components/popover/popover_header_footer.vue.d.ts +213 -5
  344. package/dist/types/components/popover/popover_header_footer.vue.d.ts.map +1 -1
  345. package/dist/types/components/presence/presence.vue.d.ts +4 -4
  346. package/dist/types/components/radio/radio.vue.d.ts +46 -5
  347. package/dist/types/components/radio/radio.vue.d.ts.map +1 -1
  348. package/dist/types/components/radio_group/radio_group.vue.d.ts +55 -14
  349. package/dist/types/components/rich_text_editor/channel_suggestion.d.ts +2 -0
  350. package/dist/types/components/rich_text_editor/channel_suggestion.d.ts.map +1 -1
  351. package/dist/types/components/rich_text_editor/extensions/channels/ChannelComponent.vue.d.ts +150 -3
  352. package/dist/types/components/rich_text_editor/extensions/channels/ChannelComponent.vue.d.ts.map +1 -1
  353. package/dist/types/components/rich_text_editor/extensions/channels/ChannelSuggestion.vue.d.ts +132 -3
  354. package/dist/types/components/rich_text_editor/extensions/channels/ChannelSuggestion.vue.d.ts.map +1 -1
  355. package/dist/types/components/rich_text_editor/extensions/channels/channel.d.ts.map +1 -1
  356. package/dist/types/components/rich_text_editor/extensions/emoji/EmojiComponent.vue.d.ts +883 -3
  357. package/dist/types/components/rich_text_editor/extensions/emoji/EmojiSuggestion.vue.d.ts +938 -3
  358. package/dist/types/components/rich_text_editor/extensions/mentions/MentionComponent.vue.d.ts +52 -3
  359. package/dist/types/components/rich_text_editor/extensions/mentions/MentionSuggestion.vue.d.ts +319 -3
  360. package/dist/types/components/rich_text_editor/extensions/slash_command/SlashCommandComponent.vue.d.ts +18 -4
  361. package/dist/types/components/rich_text_editor/extensions/slash_command/SlashCommandSuggestion.vue.d.ts +3 -3
  362. package/dist/types/components/rich_text_editor/extensions/suggestion/SuggestionList.vue.d.ts +217 -3
  363. package/dist/types/components/rich_text_editor/extensions/suggestion/SuggestionList.vue.d.ts.map +1 -1
  364. package/dist/types/components/rich_text_editor/rich_text_editor.vue.d.ts +327 -7
  365. package/dist/types/components/rich_text_editor/rich_text_editor.vue.d.ts.map +1 -1
  366. package/dist/types/components/root_layout/root_layout.vue.d.ts +4 -4
  367. package/dist/types/components/scroller/modules/core_scroller.vue.d.ts +4 -1
  368. package/dist/types/components/scroller/modules/core_scroller.vue.d.ts.map +1 -1
  369. package/dist/types/components/scroller/modules/dynamic_scroller.vue.d.ts +503 -7
  370. package/dist/types/components/scroller/modules/scroller_item.vue.d.ts +4 -4
  371. package/dist/types/components/scroller/scroller.vue.d.ts +634 -123
  372. package/dist/types/components/scroller/scroller.vue.d.ts.map +1 -1
  373. package/dist/types/components/select_menu/select_menu.vue.d.ts +47 -6
  374. package/dist/types/components/select_menu/select_menu.vue.d.ts.map +1 -1
  375. package/dist/types/components/skeleton/skeleton-list-item.vue.d.ts +278 -4
  376. package/dist/types/components/skeleton/skeleton-paragraph.vue.d.ts +91 -5
  377. package/dist/types/components/skeleton/skeleton-shape.vue.d.ts +5 -5
  378. package/dist/types/components/skeleton/skeleton-text.vue.d.ts +4 -4
  379. package/dist/types/components/skeleton/skeleton.vue.d.ts +725 -8
  380. package/dist/types/components/split_button/split_button-alpha.vue.d.ts +184 -6
  381. package/dist/types/components/split_button/split_button-omega.vue.d.ts +213 -5
  382. package/dist/types/components/split_button/split_button-omega.vue.d.ts.map +1 -1
  383. package/dist/types/components/split_button/split_button.vue.d.ts +1804 -24
  384. package/dist/types/components/split_button/split_button.vue.d.ts.map +1 -1
  385. package/dist/types/components/stack/stack.vue.d.ts +4 -4
  386. package/dist/types/components/tab/tab.vue.d.ts +183 -5
  387. package/dist/types/components/tab/tab_group.vue.d.ts +11 -5
  388. package/dist/types/components/tab/tab_panel.vue.d.ts +5 -5
  389. package/dist/types/components/toast/layouts/toast_layout_alternate.vue.d.ts +671 -4
  390. package/dist/types/components/toast/layouts/toast_layout_alternate.vue.d.ts.map +1 -1
  391. package/dist/types/components/toast/layouts/toast_layout_alternate_icon.vue.d.ts +155 -5
  392. package/dist/types/components/toast/layouts/toast_layout_alternate_icon.vue.d.ts.map +1 -1
  393. package/dist/types/components/toast/layouts/toast_layout_default.vue.d.ts +693 -5
  394. package/dist/types/components/toast/layouts/toast_layout_default.vue.d.ts.map +1 -1
  395. package/dist/types/components/toast/toast.vue.d.ts +2928 -13
  396. package/dist/types/components/toast/toast.vue.d.ts.map +1 -1
  397. package/dist/types/components/toggle/toggle.vue.d.ts +5 -5
  398. package/dist/types/components/tooltip/tooltip.vue.d.ts +9 -9
  399. package/dist/types/components/validation_messages/validation_messages.vue.d.ts +4 -4
  400. package/dist/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts +442 -9
  401. package/dist/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts.map +1 -1
  402. package/dist/types/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts +1975 -6
  403. package/dist/types/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts.map +1 -1
  404. package/dist/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +1701 -6
  405. package/dist/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts.map +1 -1
  406. package/dist/types/recipes/cards/ivr_node/ivr_node.vue.d.ts +1768 -6
  407. package/dist/types/recipes/cards/ivr_node/ivr_node.vue.d.ts.map +1 -1
  408. package/dist/types/recipes/chips/grouped_chip/grouped_chip.vue.d.ts +309 -1
  409. package/dist/types/recipes/chips/grouped_chip/grouped_chip.vue.d.ts.map +1 -1
  410. package/dist/types/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.d.ts +1 -1
  411. package/dist/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts +3634 -11
  412. package/dist/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts.map +1 -1
  413. package/dist/types/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts +1014 -4
  414. package/dist/types/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts.map +1 -1
  415. package/dist/types/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts +749 -4
  416. package/dist/types/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts.map +1 -1
  417. package/dist/types/recipes/conversation_view/attachment_carousel/media_components/progress_bar.vue.d.ts +4 -4
  418. package/dist/types/recipes/conversation_view/editor/editor.vue.d.ts +3051 -24
  419. package/dist/types/recipes/conversation_view/editor/editor.vue.d.ts.map +1 -1
  420. package/dist/types/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts +2202 -5
  421. package/dist/types/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts.map +1 -1
  422. package/dist/types/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts +556 -6
  423. package/dist/types/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts.map +1 -1
  424. package/dist/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +665 -13
  425. package/dist/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts.map +1 -1
  426. package/dist/types/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts +343 -4
  427. package/dist/types/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts.map +1 -1
  428. package/dist/types/recipes/conversation_view/message_input/message_input.vue.d.ts +6995 -7
  429. package/dist/types/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
  430. package/dist/types/recipes/conversation_view/message_input/message_input_button.vue.d.ts +1026 -5
  431. package/dist/types/recipes/conversation_view/message_input/message_input_button.vue.d.ts.map +1 -1
  432. package/dist/types/recipes/conversation_view/message_input/message_input_link.vue.d.ts +2525 -5
  433. package/dist/types/recipes/conversation_view/message_input/message_input_link.vue.d.ts.map +1 -1
  434. package/dist/types/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts +1383 -5
  435. package/dist/types/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts.map +1 -1
  436. package/dist/types/recipes/conversation_view/time_pill/time_pill.vue.d.ts +3 -3
  437. package/dist/types/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts +212 -4
  438. package/dist/types/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts.map +1 -1
  439. package/dist/types/recipes/item_layout/contact_info/contact_info.vue.d.ts +341 -5
  440. package/dist/types/recipes/leftbar/callbox/callbox.vue.d.ts +414 -6
  441. package/dist/types/recipes/leftbar/callbox/callbox.vue.d.ts.map +1 -1
  442. package/dist/types/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts +1273 -7
  443. package/dist/types/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts.map +1 -1
  444. package/dist/types/recipes/leftbar/contact_row/contact_row.vue.d.ts +3400 -5
  445. package/dist/types/recipes/leftbar/contact_row/contact_row.vue.d.ts.map +1 -1
  446. package/dist/types/recipes/leftbar/general_row/general_row.vue.d.ts +2054 -16
  447. package/dist/types/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
  448. package/dist/types/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts +485 -5
  449. package/dist/types/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts.map +1 -1
  450. package/dist/types/recipes/leftbar/group_row/group_row.vue.d.ts +2257 -7
  451. package/dist/types/recipes/leftbar/group_row/group_row.vue.d.ts.map +1 -1
  452. package/dist/types/recipes/leftbar/unread_pill/unread_pill.vue.d.ts +65 -4
  453. package/dist/types/recipes/leftbar/unread_pill/unread_pill.vue.d.ts.map +1 -1
  454. package/dist/types/recipes/motion/motion_text/motion_text.vue.d.ts +1 -1
  455. package/dist/types/recipes/notices/top_banner_info/top_banner_info.vue.d.ts +4 -4
  456. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"combobox-with-popover.js","sources":["../../../recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue"],"sourcesContent":["<template>\n <dt-combobox\n ref=\"combobox\"\n :loading=\"loading\"\n :label=\"label\"\n :label-visible=\"labelVisible\"\n :size=\"size\"\n :description=\"description\"\n :empty-list=\"emptyList\"\n :empty-state-message=\"emptyStateMessage\"\n :show-list=\"isListShown\"\n :on-beginning-of-list=\"onBeginningOfList\"\n :on-end-of-list=\"onEndOfList\"\n :list-rendered-outside=\"true\"\n :list-id=\"listId\"\n data-qa=\"dt-combobox\"\n v-bind=\"comboboxListeners\"\n >\n <template\n #input=\"{ inputProps }\"\n >\n <!-- eslint-disable-next-line vuejs-accessibility/no-static-element-interactions -->\n <div\n :id=\"externalAnchor\"\n ref=\"input\"\n @focusin=\"onFocusIn\"\n @keydown.up=\"openOnArrowKeyPress($event)\"\n @keydown.down=\"openOnArrowKeyPress($event)\"\n >\n <slot\n name=\"input\"\n :input-props=\"inputProps\"\n :on-input=\"handleDisplayList\"\n />\n </div>\n </template>\n <template #list=\"{ opened, listProps, clearHighlightIndex }\">\n <dt-popover\n ref=\"popover\"\n v-model:open=\"isListShown\"\n :hide-on-click=\"false\"\n :max-height=\"maxHeight\"\n :max-width=\"maxWidth\"\n :offset=\"popoverOffset\"\n :sticky=\"popoverSticky\"\n placement=\"bottom-start\"\n initial-focus-element=\"none\"\n padding=\"none\"\n role=\"listbox\"\n :external-anchor=\"externalAnchor\"\n :content-width=\"contentWidth\"\n :content-appear=\"true\"\n :content-tabindex=\"null\"\n :modal=\"false\"\n :auto-focus=\"false\"\n :append-to=\"appendTo\"\n :transition=\"transition\"\n @opened=\"opened\"\n >\n <template\n v-if=\"hasSlotContent($slots.header)\"\n #headerContent\n >\n <div\n ref=\"header\"\n >\n <slot name=\"header\" />\n </div>\n </template>\n\n <template #content>\n <!-- eslint-disable-next-line vuejs-accessibility/no-static-element-interactions -->\n <div\n ref=\"listWrapper\"\n :class=\"[\n 'd-recipe-combobox-with-popover__list',\n DROPDOWN_PADDING_CLASSES[padding],\n listClass,\n ]\"\n @mouseleave=\"clearHighlightIndex\"\n @focusout=\"clearHighlightIndex\"\n >\n <combobox-loading-list\n v-if=\"loading\"\n v-bind=\"listProps\"\n />\n <combobox-empty-list\n v-else-if=\"emptyList && emptyStateMessage\"\n v-bind=\"listProps\"\n :message=\"emptyStateMessage\"\n />\n <slot\n v-else\n name=\"list\"\n :list-props=\"listProps\"\n />\n </div>\n </template>\n\n <template\n v-if=\"hasSlotContent($slots.footer)\"\n #footerContent\n >\n <div\n ref=\"footer\"\n >\n <slot name=\"footer\" />\n </div>\n </template>\n </dt-popover>\n </template>\n </dt-combobox>\n</template>\n\n<script>\nimport ComboboxLoadingList from '@/components/combobox/combobox_loading-list.vue';\nimport ComboboxEmptyList from '@/components/combobox/combobox_empty-list.vue';\nimport { DtCombobox, COMBOBOX_LABEL_SIZES } from '@/components/combobox';\nimport { DtPopover, POPOVER_APPEND_TO_VALUES, POPOVER_CONTENT_WIDTHS } from '@/components/popover';\nimport { getUniqueString, hasSlotContent } from '@/common/utils';\nimport { DROPDOWN_PADDING_CLASSES } from '@/components/dropdown';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeComboboxWithPopover',\n\n components: {\n DtCombobox,\n DtPopover,\n ComboboxLoadingList,\n ComboboxEmptyList,\n },\n\n props: {\n /**\n * String to use for the input label.\n */\n label: {\n type: String,\n required: true,\n },\n\n /**\n * Determines visibility of input label.\n * @values true, false\n */\n labelVisible: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Size of the input, one of `xs`, `sm`, `md`, `lg`, `xl`\n * @values null, xs, sm, md, lg, xl\n */\n size: {\n type: String,\n default: null,\n validator: (t) => Object.values(COMBOBOX_LABEL_SIZES).includes(t),\n },\n\n /**\n * Description for the input\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Determines when to show the list element and also controls the aria-expanded attribute.\n * Leaving this null will have the combobox trigger on input focus by default.\n * If you set this value, the default trigger behavior will be disabled and you can\n * control it as you need.\n */\n showList: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Sets an ID on the list element of the component. Used by several aria attributes\n * as well as when deriving the IDs for each item.\n */\n listId: {\n type: String,\n default () { return getUniqueString(); },\n },\n\n /**\n * Additional class for the wrapper list element.\n */\n listClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * A method that will be called when the selection goes past the beginning of the list.\n */\n onBeginningOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * A method that will be called when the selection goes past the end of the list.\n */\n onEndOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * Determines maximum height for the popover before overflow.\n * Possible units rem|px|em\n */\n maxHeight: {\n type: String,\n default: '',\n },\n\n /**\n * Determines maximum width for the popover before overflow.\n * Possible units rem|px|%|em\n */\n maxWidth: {\n type: String,\n default: '',\n },\n\n /**\n * Vertical padding size around the list element.\n */\n padding: {\n type: String,\n default: 'small',\n validator: (padding) => {\n return Object.keys(DROPDOWN_PADDING_CLASSES).some((item) => item === padding);\n },\n },\n\n /**\n * Width configuration for the popover content. When its value is 'anchor',\n * the popover content will have the same width as the anchor.\n */\n contentWidth: {\n type: String,\n default: null,\n validator: contentWidth => POPOVER_CONTENT_WIDTHS.includes(contentWidth),\n },\n\n /**\n * If the list should be shown by pressing up or down arrow key on the input element.\n * This can be set when not passing showList prop.\n */\n openWithArrowKeys: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Displaces the popover content box from its anchor element\n * by the specified number of pixels.\n */\n popoverOffset: {\n type: Array,\n default: () => [0, 4],\n },\n\n /**\n * If the popover sticks to the input.\n */\n popoverSticky: {\n type: [Boolean, String],\n default: false,\n },\n\n /**\n * Displays the list when the combobox is focused, before the user has typed anything.\n * When this is enabled the list will not close after selection.\n */\n hasSuggestionList: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Determines when to show the skeletons and also controls aria-busy attribute.\n */\n loading: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Sets the list to an empty state, and displays the message from prop `emptyStateMessage`.\n */\n emptyList: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Message to show when the list is empty\n */\n emptyStateMessage: {\n type: String,\n default: '',\n },\n\n /**\n * Sets the element to which the popover is going to append to.\n * 'body' will append to the nearest body (supports shadow DOM).\n * @values 'body', 'parent', HTMLElement,\n */\n appendTo: {\n type: [HTMLElement, String],\n default: 'body',\n validator: appendTo => {\n return POPOVER_APPEND_TO_VALUES.includes(appendTo) ||\n (appendTo instanceof HTMLElement);\n },\n },\n\n /**\n * Named transition when the content display is toggled.\n * @see DtLazyShow\n */\n transition: {\n type: String,\n default: 'fade',\n },\n },\n\n emits: [\n /**\n * Event fired when item selected\n *\n * @event select\n * @type {Number}\n */\n 'select',\n\n /**\n * Event fired when 'escape' key is pressed\n *\n * @event escape\n */\n 'escape',\n\n /**\n * Event fired when an item is highlighted\n *\n * @event highlight\n * @type {Number}\n */\n 'highlight',\n\n /**\n * Emitted when items are shown or hidden\n *\n * @event opened\n * @type {Boolean | Array}\n */\n 'opened',\n ],\n\n data () {\n return {\n DROPDOWN_PADDING_CLASSES,\n isListShown: false,\n isInputFocused: false,\n isListFocused: false,\n externalAnchor: getUniqueString(),\n hasSlotContent,\n };\n },\n\n computed: {\n comboboxListeners () {\n return {\n ...this.$attrs,\n\n onSelect: this.onSelect,\n\n onEscape: this.onEscape,\n\n onHighlight: this.onHighlight,\n };\n },\n },\n\n watch: {\n showList: {\n handler: function (show) {\n if (show !== null) {\n this.isListShown = show;\n }\n },\n\n immediate: true,\n },\n\n isListShown (val) {\n if (val) {\n window.addEventListener('mousedown', this.onFocusOut);\n } else {\n window.removeEventListener('mousedown', this.onFocusOut);\n }\n this.onOpened(val);\n },\n },\n\n methods: {\n handleDisplayList (value) {\n if (!this.hasSuggestionList && value) { this.showComboboxList(); }\n if (!this.hasSuggestionList && !value) { this.closeComboboxList(); }\n },\n\n showComboboxList () {\n if (this.showList != null) { return; }\n this.isListShown = true;\n },\n\n closeComboboxList () {\n if (this.showList != null) { return; }\n this.isListShown = false;\n },\n\n onSelect (highlightIndex) {\n if (this.loading) return;\n\n this.$emit('select', highlightIndex);\n if (!this.hasSuggestionList) {\n // we don't display the list before the user has typed anything\n this.closeComboboxList();\n }\n },\n\n onEscape () {\n this.$emit('escape');\n this.closeComboboxList();\n },\n\n onHighlight (highlightIndex) {\n if (this.loading) return;\n\n this.$emit('highlight', highlightIndex);\n },\n\n onOpened (opened) {\n this.$emit('opened', opened);\n },\n\n onFocusIn (e) {\n if (this.hasSuggestionList && e && this.$refs.input?.querySelector('input') === e.target) {\n // only trigger if we show suggestion list when focused, and\n // it's the input specifically that was focused\n this.showComboboxList();\n }\n },\n\n onFocusOut (e) {\n // Check if the focus change was to another target within the combobox component\n const popoverEl = this.$refs.popover?.tip?.popper;\n const comboboxEl = this.$refs.input;\n\n if (e.composedPath()?.some(el => [popoverEl, comboboxEl].includes(el))) return;\n\n // If outside the combobox then close\n this.closeComboboxList();\n },\n\n openOnArrowKeyPress () {\n if (this.showList !== null || this.isListShown || !this.openWithArrowKeys) { return; }\n\n this.showComboboxList();\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtCombobox","DtPopover","ComboboxLoadingList","ComboboxEmptyList","COMBOBOX_LABEL_SIZES","getUniqueString","padding","DROPDOWN_PADDING_CLASSES","item","contentWidth","POPOVER_CONTENT_WIDTHS","appendTo","POPOVER_APPEND_TO_VALUES","hasSlotContent","show","val","value","highlightIndex","opened","e","_a","popoverEl","_b","comboboxEl","_c","el","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_openBlock","_createBlock","_component_dt_combobox","_mergeProps","$props","$data","$options","_withCtx","inputProps","_createElementVNode","args","_withKeys","$event","_renderSlot","_ctx","listProps","clearHighlightIndex","_createVNode","_component_dt_popover","_cache","_createSlots","_normalizeClass","_component_combobox_loading_list","_normalizeProps","_component_combobox_empty_list"],"mappings":"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"}
1
+ {"version":3,"file":"combobox-with-popover.js","sources":["../../../recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue"],"sourcesContent":["<template>\n <dt-combobox\n ref=\"combobox\"\n :loading=\"loading\"\n :label=\"label\"\n :label-visible=\"labelVisible\"\n :size=\"size\"\n :description=\"description\"\n :empty-list=\"emptyList\"\n :empty-state-message=\"emptyStateMessage\"\n :show-list=\"isListShown\"\n :on-beginning-of-list=\"onBeginningOfList\"\n :on-end-of-list=\"onEndOfList\"\n :list-rendered-outside=\"true\"\n :list-id=\"listId\"\n data-qa=\"dt-combobox\"\n v-bind=\"comboboxListeners\"\n >\n <template\n #input=\"{ inputProps }\"\n >\n <!-- eslint-disable-next-line vuejs-accessibility/no-static-element-interactions -->\n <div\n :id=\"externalAnchor\"\n ref=\"input\"\n @focusin=\"onFocusIn\"\n @keydown.up=\"openOnArrowKeyPress($event)\"\n @keydown.down=\"openOnArrowKeyPress($event)\"\n >\n <slot\n name=\"input\"\n :input-props=\"inputProps\"\n :on-input=\"handleDisplayList\"\n />\n </div>\n </template>\n <template #list=\"{ opened, listProps, clearHighlightIndex }\">\n <dt-popover\n ref=\"popover\"\n v-model:open=\"isListShown\"\n :hide-on-click=\"false\"\n :max-height=\"maxHeight\"\n :max-width=\"maxWidth\"\n :offset=\"popoverOffset\"\n :sticky=\"popoverSticky\"\n placement=\"bottom-start\"\n initial-focus-element=\"none\"\n padding=\"none\"\n role=\"listbox\"\n :external-anchor=\"externalAnchor\"\n :content-width=\"contentWidth\"\n :content-appear=\"true\"\n :content-tabindex=\"null\"\n :modal=\"false\"\n :auto-focus=\"false\"\n :append-to=\"appendTo\"\n :transition=\"transition\"\n @opened=\"opened\"\n >\n <template\n v-if=\"hasSlotContent($slots.header)\"\n #headerContent\n >\n <div\n ref=\"header\"\n >\n <slot name=\"header\" />\n </div>\n </template>\n\n <template #content>\n <!-- eslint-disable-next-line vuejs-accessibility/no-static-element-interactions -->\n <div\n ref=\"listWrapper\"\n :class=\"[\n 'd-recipe-combobox-with-popover__list',\n DROPDOWN_PADDING_CLASSES[padding],\n listClass,\n ]\"\n @mouseleave=\"clearHighlightIndex\"\n @focusout=\"clearHighlightIndex\"\n >\n <combobox-loading-list\n v-if=\"loading\"\n v-bind=\"listProps\"\n />\n <combobox-empty-list\n v-else-if=\"emptyList && emptyStateMessage\"\n v-bind=\"listProps\"\n :message=\"emptyStateMessage\"\n />\n <slot\n v-else\n name=\"list\"\n :list-props=\"listProps\"\n />\n </div>\n </template>\n\n <template\n v-if=\"hasSlotContent($slots.footer)\"\n #footerContent\n >\n <div\n ref=\"footer\"\n >\n <slot name=\"footer\" />\n </div>\n </template>\n </dt-popover>\n </template>\n </dt-combobox>\n</template>\n\n<script>\nimport ComboboxLoadingList from '@/components/combobox/combobox_loading-list.vue';\nimport ComboboxEmptyList from '@/components/combobox/combobox_empty-list.vue';\nimport { DtCombobox, COMBOBOX_LABEL_SIZES } from '@/components/combobox';\nimport { DtPopover, POPOVER_APPEND_TO_VALUES, POPOVER_CONTENT_WIDTHS } from '@/components/popover';\nimport { getUniqueString, hasSlotContent } from '@/common/utils';\nimport { DROPDOWN_PADDING_CLASSES } from '@/components/dropdown';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeComboboxWithPopover',\n\n components: {\n DtCombobox,\n DtPopover,\n ComboboxLoadingList,\n ComboboxEmptyList,\n },\n\n props: {\n /**\n * String to use for the input label.\n */\n label: {\n type: String,\n required: true,\n },\n\n /**\n * Determines visibility of input label.\n * @values true, false\n */\n labelVisible: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Size of the input, one of `xs`, `sm`, `md`, `lg`, `xl`\n * @values null, xs, sm, md, lg, xl\n */\n size: {\n type: String,\n default: null,\n validator: (t) => Object.values(COMBOBOX_LABEL_SIZES).includes(t),\n },\n\n /**\n * Description for the input\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Determines when to show the list element and also controls the aria-expanded attribute.\n * Leaving this null will have the combobox trigger on input focus by default.\n * If you set this value, the default trigger behavior will be disabled and you can\n * control it as you need.\n */\n showList: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Sets an ID on the list element of the component. Used by several aria attributes\n * as well as when deriving the IDs for each item.\n */\n listId: {\n type: String,\n default () { return getUniqueString(); },\n },\n\n /**\n * Additional class for the wrapper list element.\n */\n listClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * A method that will be called when the selection goes past the beginning of the list.\n */\n onBeginningOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * A method that will be called when the selection goes past the end of the list.\n */\n onEndOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * Determines maximum height for the popover before overflow.\n * Possible units rem|px|em\n */\n maxHeight: {\n type: String,\n default: '',\n },\n\n /**\n * Determines maximum width for the popover before overflow.\n * Possible units rem|px|%|em\n */\n maxWidth: {\n type: String,\n default: '',\n },\n\n /**\n * Vertical padding size around the list element.\n */\n padding: {\n type: String,\n default: 'small',\n validator: (padding) => {\n return Object.keys(DROPDOWN_PADDING_CLASSES).some((item) => item === padding);\n },\n },\n\n /**\n * Width configuration for the popover content. When its value is 'anchor',\n * the popover content will have the same width as the anchor.\n */\n contentWidth: {\n type: String,\n default: null,\n validator: contentWidth => POPOVER_CONTENT_WIDTHS.includes(contentWidth),\n },\n\n /**\n * If the list should be shown by pressing up or down arrow key on the input element.\n * This can be set when not passing showList prop.\n */\n openWithArrowKeys: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Displaces the popover content box from its anchor element\n * by the specified number of pixels.\n */\n popoverOffset: {\n type: Array,\n default: () => [0, 4],\n },\n\n /**\n * If the popover sticks to the input.\n */\n popoverSticky: {\n type: [Boolean, String],\n default: false,\n },\n\n /**\n * Displays the list when the combobox is focused, before the user has typed anything.\n * When this is enabled the list will not close after selection.\n */\n hasSuggestionList: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Determines when to show the skeletons and also controls aria-busy attribute.\n */\n loading: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Sets the list to an empty state, and displays the message from prop `emptyStateMessage`.\n */\n emptyList: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Message to show when the list is empty\n */\n emptyStateMessage: {\n type: String,\n default: '',\n },\n\n /**\n * Sets the element to which the popover is going to append to.\n * 'body' will append to the nearest body (supports shadow DOM).\n * @values 'body', 'parent', HTMLElement,\n */\n appendTo: {\n type: [HTMLElement, String],\n default: 'body',\n validator: appendTo => {\n return POPOVER_APPEND_TO_VALUES.includes(appendTo) ||\n (appendTo instanceof HTMLElement);\n },\n },\n\n /**\n * Named transition when the content display is toggled.\n * @see DtLazyShow\n */\n transition: {\n type: String,\n default: 'fade',\n },\n },\n\n emits: [\n /**\n * Event fired when item selected\n *\n * @event select\n * @type {Number}\n */\n 'select',\n\n /**\n * Event fired when 'escape' key is pressed\n *\n * @event escape\n */\n 'escape',\n\n /**\n * Event fired when an item is highlighted\n *\n * @event highlight\n * @type {Number}\n */\n 'highlight',\n\n /**\n * Emitted when items are shown or hidden\n *\n * @event opened\n * @type {Boolean | Array}\n */\n 'opened',\n ],\n\n data () {\n return {\n DROPDOWN_PADDING_CLASSES,\n isListShown: false,\n isInputFocused: false,\n isListFocused: false,\n externalAnchor: getUniqueString(),\n hasSlotContent,\n };\n },\n\n computed: {\n comboboxListeners () {\n return {\n ...this.$attrs,\n\n onSelect: this.onSelect,\n\n onEscape: this.onEscape,\n\n onHighlight: this.onHighlight,\n };\n },\n },\n\n watch: {\n showList: {\n handler: function (show) {\n if (show !== null) {\n this.isListShown = show;\n }\n },\n\n immediate: true,\n },\n\n isListShown (val) {\n if (val) {\n window.addEventListener('mousedown', this.onFocusOut);\n } else {\n window.removeEventListener('mousedown', this.onFocusOut);\n }\n this.onOpened(val);\n },\n },\n\n methods: {\n handleDisplayList (value) {\n if (!this.hasSuggestionList && value) { this.showComboboxList(); }\n if (!this.hasSuggestionList && !value) { this.closeComboboxList(); }\n },\n\n showComboboxList () {\n if (this.showList != null) { return; }\n this.isListShown = true;\n },\n\n closeComboboxList () {\n if (this.showList != null) { return; }\n this.isListShown = false;\n },\n\n onSelect (highlightIndex) {\n if (this.loading) return;\n\n this.$emit('select', highlightIndex);\n if (!this.hasSuggestionList) {\n // we don't display the list before the user has typed anything\n this.closeComboboxList();\n }\n },\n\n onEscape () {\n this.$emit('escape');\n this.closeComboboxList();\n },\n\n onHighlight (highlightIndex) {\n if (this.loading) return;\n\n this.$emit('highlight', highlightIndex);\n },\n\n onOpened (opened) {\n this.$emit('opened', opened);\n },\n\n onFocusIn (e) {\n if (this.hasSuggestionList && e && this.$refs.input?.querySelector('input') === e.target) {\n // only trigger if we show suggestion list when focused, and\n // it's the input specifically that was focused\n this.showComboboxList();\n }\n },\n\n onFocusOut (e) {\n // Check if the focus change was to another target within the combobox component\n const popoverEl = this.$refs.popover?.tip?.popper;\n const comboboxEl = this.$refs.input;\n\n if (e.composedPath()?.some(el => [popoverEl, comboboxEl].includes(el))) return;\n\n // If outside the combobox then close\n this.closeComboboxList();\n },\n\n openOnArrowKeyPress () {\n if (this.showList !== null || this.isListShown || !this.openWithArrowKeys) { return; }\n\n this.showComboboxList();\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtCombobox","DtPopover","ComboboxLoadingList","ComboboxEmptyList","COMBOBOX_LABEL_SIZES","getUniqueString","padding","DROPDOWN_PADDING_CLASSES","item","contentWidth","POPOVER_CONTENT_WIDTHS","appendTo","POPOVER_APPEND_TO_VALUES","hasSlotContent","show","val","value","highlightIndex","opened","e","_a","popoverEl","_b","comboboxEl","_c","el","_hoisted_2","_hoisted_4","_openBlock","_createBlock","_component_dt_combobox","_mergeProps","$props","$data","$options","_withCtx","inputProps","_createElementVNode","args","_cache","_withKeys","$event","_renderSlot","_ctx","listProps","clearHighlightIndex","_createVNode","_component_dt_popover","_normalizeClass","_component_combobox_loading_list","_component_combobox_empty_list"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"contact-centers-row.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=\"menuButtonLabel\"\n :title=\"menuButtonLabel\"\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';\nimport { DtIconChevronDown, DtIconHeadphones } from '@dialpad/dialtone-icons/vue3';\nimport { DialtoneLocalization } from '@/localization';\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 validator (value) {\n if (!value) return true;\n return /^\\d+\\+?$/.test(value);\n },\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 i18n: new DialtoneLocalization(),\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 const count = isNaN(this.unreadCount) ? this.unreadCount : Number(this.unreadCount);\n return this.ariaLabel\n ? this.ariaLabel\n : safeConcatStrings([\n this.description,\n this.i18n.$t('DIALTONE_UNREAD_MESSAGE_COUNT_TEXT', { unreadCount: count }),\n ]);\n },\n\n contactRowListeners () {\n return extractVueListeners(this.$attrs);\n },\n\n showUnreadCount () {\n return !!this.unreadCount;\n },\n\n menuButtonLabel () {\n return this.i18n.$t('DIALTONE_CONTACT_CENTERS_ROW_MENU_BUTTON_LABEL');\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":["_sfc_main","DtButton","DtBadge","DtEmojiTextWrapper","DtIconHeadphones","DtIconChevronDown","value","DialtoneLocalization","count","safeConcatStrings","extractVueListeners","returnFirstEl","removeClassStyleAttrs","addClassStyleAttrs","labelWidth","omegaWidth","alphaWidth","paddings","_hoisted_1","_hoisted_2","_hoisted_4","_hoisted_5","_openBlock","_createElementBlock","_mergeProps","_ctx","$options","_createElementVNode","_normalizeClass","$props","_toHandlers","_cache","$event","_createVNode","_component_dt_icon_headphones","_normalizeStyle","$data","_component_dt_emoji_text_wrapper","_withCtx","_createTextVNode","_toDisplayString","_createCommentVNode","_hoisted_3","_renderSlot","_createBlock","_component_dt_badge","_component_dt_button","_withModifiers","_component_dt_icon_chevron_down"],"mappings":"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"}
1
+ {"version":3,"file":"contact-centers-row.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=\"menuButtonLabel\"\n :title=\"menuButtonLabel\"\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';\nimport { DtIconChevronDown, DtIconHeadphones } from '@dialpad/dialtone-icons/vue3';\nimport { DialtoneLocalization } from '@/localization';\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 validator (value) {\n if (!value) return true;\n return /^\\d+\\+?$/.test(value);\n },\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 i18n: new DialtoneLocalization(),\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 const count = isNaN(this.unreadCount) ? this.unreadCount : Number(this.unreadCount);\n return this.ariaLabel\n ? this.ariaLabel\n : safeConcatStrings([\n this.description,\n this.i18n.$t('DIALTONE_UNREAD_MESSAGE_COUNT_TEXT', { unreadCount: count }),\n ]);\n },\n\n contactRowListeners () {\n return extractVueListeners(this.$attrs);\n },\n\n showUnreadCount () {\n return !!this.unreadCount;\n },\n\n menuButtonLabel () {\n return this.i18n.$t('DIALTONE_CONTACT_CENTERS_ROW_MENU_BUTTON_LABEL');\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":["_sfc_main","DtButton","DtBadge","DtEmojiTextWrapper","DtIconHeadphones","DtIconChevronDown","value","DialtoneLocalization","count","safeConcatStrings","extractVueListeners","returnFirstEl","removeClassStyleAttrs","addClassStyleAttrs","labelWidth","omegaWidth","alphaWidth","paddings","_hoisted_2","_hoisted_4","_hoisted_5","_openBlock","_createElementBlock","_mergeProps","_ctx","$options","_createElementVNode","$props","_toHandlers","_cache","$event","_createVNode","_component_dt_icon_headphones","$data","_component_dt_emoji_text_wrapper","_hoisted_3","_renderSlot","_createBlock","_component_dt_badge","_component_dt_button","_withModifiers","_component_dt_icon_chevron_down"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"contact-centers-row.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=\"menuButtonLabel\"\n :title=\"menuButtonLabel\"\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';\nimport { DtIconChevronDown, DtIconHeadphones } from '@dialpad/dialtone-icons/vue3';\nimport { DialtoneLocalization } from '@/localization';\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 validator (value) {\n if (!value) return true;\n return /^\\d+\\+?$/.test(value);\n },\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 i18n: new DialtoneLocalization(),\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 const count = isNaN(this.unreadCount) ? this.unreadCount : Number(this.unreadCount);\n return this.ariaLabel\n ? this.ariaLabel\n : safeConcatStrings([\n this.description,\n this.i18n.$t('DIALTONE_UNREAD_MESSAGE_COUNT_TEXT', { unreadCount: count }),\n ]);\n },\n\n contactRowListeners () {\n return extractVueListeners(this.$attrs);\n },\n\n showUnreadCount () {\n return !!this.unreadCount;\n },\n\n menuButtonLabel () {\n return this.i18n.$t('DIALTONE_CONTACT_CENTERS_ROW_MENU_BUTTON_LABEL');\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":["_sfc_main","DtButton","DtBadge","DtEmojiTextWrapper","DtIconHeadphones","DtIconChevronDown","value","DialtoneLocalization","count","safeConcatStrings","extractVueListeners","returnFirstEl","removeClassStyleAttrs","addClassStyleAttrs","labelWidth","_b","_a","omegaWidth","_d","_c","alphaWidth","_f","_e","paddings","_hoisted_1","_hoisted_2","_hoisted_4","_hoisted_5","_openBlock","_createElementBlock","_mergeProps","_ctx","$options","_createElementVNode","_normalizeClass","$props","_toHandlers","_cache","$event","_createVNode","_component_dt_icon_headphones","_normalizeStyle","$data","_component_dt_emoji_text_wrapper","_withCtx","_createTextVNode","_toDisplayString","_createCommentVNode","_hoisted_3","_renderSlot","_createBlock","_component_dt_badge","_component_dt_button","_withModifiers","_component_dt_icon_chevron_down"],"mappings":"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"}
1
+ {"version":3,"file":"contact-centers-row.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=\"menuButtonLabel\"\n :title=\"menuButtonLabel\"\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';\nimport { DtIconChevronDown, DtIconHeadphones } from '@dialpad/dialtone-icons/vue3';\nimport { DialtoneLocalization } from '@/localization';\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 validator (value) {\n if (!value) return true;\n return /^\\d+\\+?$/.test(value);\n },\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 i18n: new DialtoneLocalization(),\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 const count = isNaN(this.unreadCount) ? this.unreadCount : Number(this.unreadCount);\n return this.ariaLabel\n ? this.ariaLabel\n : safeConcatStrings([\n this.description,\n this.i18n.$t('DIALTONE_UNREAD_MESSAGE_COUNT_TEXT', { unreadCount: count }),\n ]);\n },\n\n contactRowListeners () {\n return extractVueListeners(this.$attrs);\n },\n\n showUnreadCount () {\n return !!this.unreadCount;\n },\n\n menuButtonLabel () {\n return this.i18n.$t('DIALTONE_CONTACT_CENTERS_ROW_MENU_BUTTON_LABEL');\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":["_sfc_main","DtButton","DtBadge","DtEmojiTextWrapper","DtIconHeadphones","DtIconChevronDown","value","DialtoneLocalization","count","safeConcatStrings","extractVueListeners","returnFirstEl","removeClassStyleAttrs","addClassStyleAttrs","labelWidth","_b","_a","omegaWidth","_d","_c","alphaWidth","_f","_e","paddings","_hoisted_2","_hoisted_4","_hoisted_5","_openBlock","_createElementBlock","_mergeProps","_ctx","$options","_createElementVNode","$props","_toHandlers","_cache","$event","_createVNode","_component_dt_icon_headphones","$data","_component_dt_emoji_text_wrapper","_hoisted_3","_renderSlot","_createBlock","_component_dt_badge","_component_dt_button","_withModifiers","_component_dt_icon_chevron_down"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"contact-info.cjs","sources":["../../../recipes/item_layout/contact_info/contact_info.vue"],"sourcesContent":["<template>\n <dt-item-layout\n :role=\"role\"\n data-qa=\"contact-info\"\n class=\"d-recipe-contact-info\"\n content-class=\"d-recipe-contact-info__content\"\n right-class=\"d-recipe-contact-info__right\"\n unstyled\n >\n <template\n v-if=\"showAvatar\"\n #left\n >\n <button\n class=\"d-recipe-contact-info__left\"\n data-qa=\"contact-info-left\"\n :aria-labelledby=\"avatarLabelledBy\"\n @click=\"avatarClick\"\n >\n <span\n v-if=\"avatarList\"\n class=\"d-recipe-contact-info__avatars\"\n >\n <dt-avatar\n v-for=\"(avatar, index) in avatarList\"\n :key=\"index\"\n :size=\"avatarSize\"\n :seed=\"avatar.seed\"\n :full-name=\"avatar.fullName\"\n :image-src=\"avatar.src\"\n image-alt=\"\"\n :overlay-text=\"avatar.text\"\n :avatar-class=\"[\n {\n 'd-recipe-contact-info__avatar-stacked': index > 0,\n 'd-recipe-contact-info__avatar-halo': !!avatar.halo,\n },\n ]\"\n >\n <template #icon=\"{ iconSize }\">\n <!-- @slot Slot for avatar icon in a list -->\n <slot\n name=\"avatarIcon\"\n :icon-size=\"iconSize\"\n />\n </template>\n <template\n v-if=\"avatar.icon\"\n #overlayIcon\n >\n <component :is=\"avatar.icon\" />\n </template>\n </dt-avatar>\n </span>\n <dt-avatar\n v-else\n :size=\"avatarSize\"\n :full-name=\"avatarFullName\"\n :image-src=\"avatarSrc\"\n image-alt=\"\"\n :seed=\"avatarSeed\"\n :color=\"avatarColor\"\n :presence=\"presence\"\n >\n <template #icon=\"{ iconSize }\">\n <!-- @slot Slot for avatar icon in a list -->\n <slot\n name=\"avatarIcon\"\n :icon-size=\"iconSize\"\n />\n </template>\n </dt-avatar>\n </button>\n </template>\n <template #default>\n <div\n class=\"d-recipe-contact-info__header\"\n data-qa=\"contact-info-header\"\n >\n <!-- @slot Slot for header information -->\n <slot name=\"header\" />\n </div>\n </template>\n\n <template #subtitle>\n <div\n class=\"d-recipe-contact-info__subtitle\"\n data-qa=\"contact-info-subtitle\"\n >\n <!-- @slot Slot for subtitle information -->\n <slot name=\"subtitle\" />\n </div>\n </template>\n\n <template\n v-if=\"$slots.bottom\"\n #bottom\n >\n <div\n class=\"d-recipe-contact-info__bottom\"\n data-qa=\"contact-info-bottom\"\n >\n <!-- @slot Slot for information at the bottom -->\n <slot name=\"bottom\" />\n </div>\n </template>\n\n <template\n v-if=\"$slots.right\"\n #right\n >\n <div data-qa=\"contact-info-right\">\n <!-- @slot Slot for the right content -->\n <slot name=\"right\" />\n </div>\n </template>\n </dt-item-layout>\n</template>\n\n<script>\nimport DtItemLayout from '@/components/item_layout/item_layout.vue';\nimport DtAvatar from '@/components/avatar/avatar.vue';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeContactInfo',\n\n components: {\n DtAvatar,\n DtItemLayout,\n },\n\n /* inheritAttrs: false is generally an option we want to set on library\n components. This allows any attributes passed in that are not recognized\n as props to be passed down to another element or component using v-bind:$attrs\n more info: https://vuejs.org/v2/api/#inheritAttrs */\n // inheritAttrs: false,\n\n props: {\n /**\n * String to use for the item's role.\n */\n role: {\n type: String,\n default: '',\n },\n\n /**\n * Display avatar if `showAvatar` property is true.\n */\n showAvatar: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Optional avatar image url.\n */\n avatarSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar seed, set this to the user's ID to get the same avatar background gradient each time it is displayed.\n */\n avatarSeed: {\n type: String,\n default: null,\n },\n\n /**\n * Avatar's full name, used to extract initials\n * to display in avatar if `avatarSrc` and `avatarIcon` are empty.\n */\n avatarFullName: {\n type: String,\n default: '',\n },\n\n /**\n * The size of the avatar\n * @values xs, sm, md, lg, xl\n */\n avatarSize: {\n type: String,\n default: 'lg',\n },\n\n /**\n * The aria-labelledby of the button containing avatars\n */\n avatarLabelledBy: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar color to display if `avatarSrc` is empty.\n */\n avatarColor: {\n type: String,\n default: null,\n },\n\n /**\n * Determines whether to show the presence indicator for\n * Avatar - accepts PRESENCE_STATES values: 'busy', 'away', 'offline',\n * or 'active'. By default, it's null and nothing is shown.\n * @values null, busy, away, offline, active\n */\n presence: {\n type: String,\n default: null,\n },\n\n /**\n * Showing multiple avatars in contact info.\n * The props of array items are: <br>\n * `src` - avatar image url (optional) <br>\n * `fullName` - full name, used to extract initials to display in avatar<br>\n * if `avatarSrc` and `avatarIcon` are empty<br>\n * `seed` - determines uniqueness of avatar background <br>\n * `text` - text that overlays the avatar (optional) <br>\n * `icon` - icon that overlays the avatar (optional) <br>\n * `halo` - halo highlight around the avatar. boolean true/false\n */\n avatarList: {\n type: Array,\n default: null,\n },\n },\n\n emits: ['avatar-click'],\n\n methods: {\n avatarClick () {\n this.$emit('avatar-click');\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtAvatar","DtItemLayout","_hoisted_1","_hoisted_6","_createBlock","_component_dt_item_layout","$props","_createSlots","_createElementVNode","_hoisted_3","_renderSlot","_ctx","_hoisted_4","_withCtx","$options","args","_openBlock","_createElementBlock","_hoisted_2","_Fragment","_renderList","avatar","index","_component_dt_avatar","iconSize","_resolveDynamicComponent","_hoisted_5"],"mappings":"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"}
1
+ {"version":3,"file":"contact-info.cjs","sources":["../../../recipes/item_layout/contact_info/contact_info.vue"],"sourcesContent":["<template>\n <dt-item-layout\n :role=\"role\"\n data-qa=\"contact-info\"\n class=\"d-recipe-contact-info\"\n content-class=\"d-recipe-contact-info__content\"\n right-class=\"d-recipe-contact-info__right\"\n unstyled\n >\n <template\n v-if=\"showAvatar\"\n #left\n >\n <button\n class=\"d-recipe-contact-info__left\"\n data-qa=\"contact-info-left\"\n :aria-labelledby=\"avatarLabelledBy\"\n @click=\"avatarClick\"\n >\n <span\n v-if=\"avatarList\"\n class=\"d-recipe-contact-info__avatars\"\n >\n <dt-avatar\n v-for=\"(avatar, index) in avatarList\"\n :key=\"index\"\n :size=\"avatarSize\"\n :seed=\"avatar.seed\"\n :full-name=\"avatar.fullName\"\n :image-src=\"avatar.src\"\n image-alt=\"\"\n :overlay-text=\"avatar.text\"\n :avatar-class=\"[\n {\n 'd-recipe-contact-info__avatar-stacked': index > 0,\n 'd-recipe-contact-info__avatar-halo': !!avatar.halo,\n },\n ]\"\n >\n <template #icon=\"{ iconSize }\">\n <!-- @slot Slot for avatar icon in a list -->\n <slot\n name=\"avatarIcon\"\n :icon-size=\"iconSize\"\n />\n </template>\n <template\n v-if=\"avatar.icon\"\n #overlayIcon\n >\n <component :is=\"avatar.icon\" />\n </template>\n </dt-avatar>\n </span>\n <dt-avatar\n v-else\n :size=\"avatarSize\"\n :full-name=\"avatarFullName\"\n :image-src=\"avatarSrc\"\n image-alt=\"\"\n :seed=\"avatarSeed\"\n :color=\"avatarColor\"\n :presence=\"presence\"\n >\n <template #icon=\"{ iconSize }\">\n <!-- @slot Slot for avatar icon in a list -->\n <slot\n name=\"avatarIcon\"\n :icon-size=\"iconSize\"\n />\n </template>\n </dt-avatar>\n </button>\n </template>\n <template #default>\n <div\n class=\"d-recipe-contact-info__header\"\n data-qa=\"contact-info-header\"\n >\n <!-- @slot Slot for header information -->\n <slot name=\"header\" />\n </div>\n </template>\n\n <template #subtitle>\n <div\n class=\"d-recipe-contact-info__subtitle\"\n data-qa=\"contact-info-subtitle\"\n >\n <!-- @slot Slot for subtitle information -->\n <slot name=\"subtitle\" />\n </div>\n </template>\n\n <template\n v-if=\"$slots.bottom\"\n #bottom\n >\n <div\n class=\"d-recipe-contact-info__bottom\"\n data-qa=\"contact-info-bottom\"\n >\n <!-- @slot Slot for information at the bottom -->\n <slot name=\"bottom\" />\n </div>\n </template>\n\n <template\n v-if=\"$slots.right\"\n #right\n >\n <div data-qa=\"contact-info-right\">\n <!-- @slot Slot for the right content -->\n <slot name=\"right\" />\n </div>\n </template>\n </dt-item-layout>\n</template>\n\n<script>\nimport DtItemLayout from '@/components/item_layout/item_layout.vue';\nimport DtAvatar from '@/components/avatar/avatar.vue';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeContactInfo',\n\n components: {\n DtAvatar,\n DtItemLayout,\n },\n\n /* inheritAttrs: false is generally an option we want to set on library\n components. This allows any attributes passed in that are not recognized\n as props to be passed down to another element or component using v-bind:$attrs\n more info: https://vuejs.org/v2/api/#inheritAttrs */\n // inheritAttrs: false,\n\n props: {\n /**\n * String to use for the item's role.\n */\n role: {\n type: String,\n default: '',\n },\n\n /**\n * Display avatar if `showAvatar` property is true.\n */\n showAvatar: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Optional avatar image url.\n */\n avatarSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar seed, set this to the user's ID to get the same avatar background gradient each time it is displayed.\n */\n avatarSeed: {\n type: String,\n default: null,\n },\n\n /**\n * Avatar's full name, used to extract initials\n * to display in avatar if `avatarSrc` and `avatarIcon` are empty.\n */\n avatarFullName: {\n type: String,\n default: '',\n },\n\n /**\n * The size of the avatar\n * @values xs, sm, md, lg, xl\n */\n avatarSize: {\n type: String,\n default: 'lg',\n },\n\n /**\n * The aria-labelledby of the button containing avatars\n */\n avatarLabelledBy: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar color to display if `avatarSrc` is empty.\n */\n avatarColor: {\n type: String,\n default: null,\n },\n\n /**\n * Determines whether to show the presence indicator for\n * Avatar - accepts PRESENCE_STATES values: 'busy', 'away', 'offline',\n * or 'active'. By default, it's null and nothing is shown.\n * @values null, busy, away, offline, active\n */\n presence: {\n type: String,\n default: null,\n },\n\n /**\n * Showing multiple avatars in contact info.\n * The props of array items are: <br>\n * `src` - avatar image url (optional) <br>\n * `fullName` - full name, used to extract initials to display in avatar<br>\n * if `avatarSrc` and `avatarIcon` are empty<br>\n * `seed` - determines uniqueness of avatar background <br>\n * `text` - text that overlays the avatar (optional) <br>\n * `icon` - icon that overlays the avatar (optional) <br>\n * `halo` - halo highlight around the avatar. boolean true/false\n */\n avatarList: {\n type: Array,\n default: null,\n },\n },\n\n emits: ['avatar-click'],\n\n methods: {\n avatarClick () {\n this.$emit('avatar-click');\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtAvatar","DtItemLayout","_hoisted_6","_createBlock","_component_dt_item_layout","$props","_createElementVNode","_hoisted_3","_renderSlot","_ctx","_hoisted_4","$options","args","_openBlock","_createElementBlock","_hoisted_2","_Fragment","_renderList","avatar","index","_component_dt_avatar","_withCtx","iconSize","_resolveDynamicComponent","_hoisted_5"],"mappings":"2QA2HKA,EAAU,CACb,aAAc,CAAE,KAAM,GACtB,KAAM,sBAEN,WAAY,CACV,SAAAC,EAAAA,qBACAC,EAAAA,SASF,MAAO,CAIL,KAAM,CACJ,KAAM,OACN,QAAS,IAMX,WAAY,CACV,KAAM,QACN,QAAS,IAMX,UAAW,CACT,KAAM,OACN,QAAS,IAMX,WAAY,CACV,KAAM,OACN,QAAS,MAOX,eAAgB,CACd,KAAM,OACN,QAAS,IAOX,WAAY,CACV,KAAM,OACN,QAAS,MAMX,iBAAkB,CAChB,KAAM,OACN,QAAS,IAMX,YAAa,CACX,KAAM,OACN,QAAS,MASX,SAAU,CACR,KAAM,OACN,QAAS,MAcX,WAAY,CACV,KAAM,MACN,QAAS,OAIb,MAAO,CAAC,cAAc,EAEtB,QAAS,CACP,aAAe,CACb,KAAK,MAAM,cAAc,CAC3B,EAEJ,iCA3NU,MAAM,qCAuDR,MAAM,gCACN,UAAQ,0BASR,MAAM,kCACN,UAAQ,4BAYR,MAAM,gCACN,UAAQ,uBAWLC,EAAA,CAAA,UAAQ,oBAAoB,8HA9GrCC,EAAAA,YAmHiBC,EAAA,CAlHd,KAAMC,EAAA,KACP,UAAQ,eACR,MAAM,wBACN,gBAAc,iCACd,cAAY,+BACZ,SAAA,mBAmEW,kBACT,IAMM,CANNC,EAAAA,mBAMM,MANNC,EAMM,CADJC,aAAsBC,EAAA,OAAA,QAAA,MAIf,mBACT,IAMM,CANNH,EAAAA,mBAMM,MANNI,EAMM,CADJF,aAAwBC,EAAA,OAAA,UAAA,YAhFpBJ,EAAA,iBACL,oBAED,IA2DS,CA3DTC,EAAAA,mBA2DS,SAAA,CA1DP,MAAM,8BACN,UAAQ,oBACP,kBAAiBD,EAAA,iBACjB,4BAAOM,EAAA,aAAAA,EAAA,YAAA,GAAAC,CAAA,KAGAP,EAAA,YADRQ,EAAAA,YAAAC,EAAAA,mBAkCO,OAlCPC,EAkCO,EA9BLF,EAAAA,UAAA,EAAA,EAAAC,EAAAA,mBA6BYE,WAAA,KAAAC,EAAAA,WA5BgBZ,EAAA,WAAU,CAA5Ba,EAAQC,mBADlBhB,EAAAA,YA6BYiB,EAAA,CA3BT,IAAKD,EACL,KAAMd,EAAA,WACN,KAAMa,EAAO,KACb,YAAWA,EAAO,SAClB,YAAWA,EAAO,IACnB,YAAU,GACT,eAAcA,EAAO,KACrB,eAAY,0CAA6EC,EAAK,EAA8D,qCAAA,CAAA,CAAAD,EAAO,uBAOzJ,KAAIG,EAAAA,QAEb,CAGE,CALe,SAAAC,KAAQ,CAEzBd,EAAAA,WAGEC,EAAA,OAAA,aAAA,CADC,SAAWa,CAAQ,CAAA,UAIhBJ,EAAO,WACZ,2BAED,IAA+B,gBAA/Bf,EAAAA,YAA+BoB,EAAAA,wBAAfL,EAAO,IAAI,CAAA,6HAIjCf,EAAAA,YAiBYiB,EAAA,OAfT,KAAMf,EAAA,WACN,YAAWA,EAAA,eACX,YAAWA,EAAA,UACZ,YAAU,GACT,KAAMA,EAAA,WACN,MAAOA,EAAA,YACP,SAAUA,EAAA,WAEA,KAAIgB,EAAAA,QAEb,CAGE,CALe,SAAAC,KAAQ,CAEzBd,EAAAA,WAGEC,EAAA,OAAA,aAAA,CADC,SAAWa,CAAQ,CAAA,gGA2BtBb,EAAA,OAAO,aACZ,sBAED,IAMM,CANNH,EAAAA,mBAMM,MANNkB,EAMM,CADJhB,aAAsBC,EAAA,OAAA,QAAA,sBAKlBA,EAAA,OAAO,YACZ,qBAED,IAGM,CAHNH,EAAAA,mBAGM,MAHNJ,EAGM,CADJM,aAAqBC,EAAA,OAAA,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"contact-info.js","sources":["../../../recipes/item_layout/contact_info/contact_info.vue"],"sourcesContent":["<template>\n <dt-item-layout\n :role=\"role\"\n data-qa=\"contact-info\"\n class=\"d-recipe-contact-info\"\n content-class=\"d-recipe-contact-info__content\"\n right-class=\"d-recipe-contact-info__right\"\n unstyled\n >\n <template\n v-if=\"showAvatar\"\n #left\n >\n <button\n class=\"d-recipe-contact-info__left\"\n data-qa=\"contact-info-left\"\n :aria-labelledby=\"avatarLabelledBy\"\n @click=\"avatarClick\"\n >\n <span\n v-if=\"avatarList\"\n class=\"d-recipe-contact-info__avatars\"\n >\n <dt-avatar\n v-for=\"(avatar, index) in avatarList\"\n :key=\"index\"\n :size=\"avatarSize\"\n :seed=\"avatar.seed\"\n :full-name=\"avatar.fullName\"\n :image-src=\"avatar.src\"\n image-alt=\"\"\n :overlay-text=\"avatar.text\"\n :avatar-class=\"[\n {\n 'd-recipe-contact-info__avatar-stacked': index > 0,\n 'd-recipe-contact-info__avatar-halo': !!avatar.halo,\n },\n ]\"\n >\n <template #icon=\"{ iconSize }\">\n <!-- @slot Slot for avatar icon in a list -->\n <slot\n name=\"avatarIcon\"\n :icon-size=\"iconSize\"\n />\n </template>\n <template\n v-if=\"avatar.icon\"\n #overlayIcon\n >\n <component :is=\"avatar.icon\" />\n </template>\n </dt-avatar>\n </span>\n <dt-avatar\n v-else\n :size=\"avatarSize\"\n :full-name=\"avatarFullName\"\n :image-src=\"avatarSrc\"\n image-alt=\"\"\n :seed=\"avatarSeed\"\n :color=\"avatarColor\"\n :presence=\"presence\"\n >\n <template #icon=\"{ iconSize }\">\n <!-- @slot Slot for avatar icon in a list -->\n <slot\n name=\"avatarIcon\"\n :icon-size=\"iconSize\"\n />\n </template>\n </dt-avatar>\n </button>\n </template>\n <template #default>\n <div\n class=\"d-recipe-contact-info__header\"\n data-qa=\"contact-info-header\"\n >\n <!-- @slot Slot for header information -->\n <slot name=\"header\" />\n </div>\n </template>\n\n <template #subtitle>\n <div\n class=\"d-recipe-contact-info__subtitle\"\n data-qa=\"contact-info-subtitle\"\n >\n <!-- @slot Slot for subtitle information -->\n <slot name=\"subtitle\" />\n </div>\n </template>\n\n <template\n v-if=\"$slots.bottom\"\n #bottom\n >\n <div\n class=\"d-recipe-contact-info__bottom\"\n data-qa=\"contact-info-bottom\"\n >\n <!-- @slot Slot for information at the bottom -->\n <slot name=\"bottom\" />\n </div>\n </template>\n\n <template\n v-if=\"$slots.right\"\n #right\n >\n <div data-qa=\"contact-info-right\">\n <!-- @slot Slot for the right content -->\n <slot name=\"right\" />\n </div>\n </template>\n </dt-item-layout>\n</template>\n\n<script>\nimport DtItemLayout from '@/components/item_layout/item_layout.vue';\nimport DtAvatar from '@/components/avatar/avatar.vue';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeContactInfo',\n\n components: {\n DtAvatar,\n DtItemLayout,\n },\n\n /* inheritAttrs: false is generally an option we want to set on library\n components. This allows any attributes passed in that are not recognized\n as props to be passed down to another element or component using v-bind:$attrs\n more info: https://vuejs.org/v2/api/#inheritAttrs */\n // inheritAttrs: false,\n\n props: {\n /**\n * String to use for the item's role.\n */\n role: {\n type: String,\n default: '',\n },\n\n /**\n * Display avatar if `showAvatar` property is true.\n */\n showAvatar: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Optional avatar image url.\n */\n avatarSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar seed, set this to the user's ID to get the same avatar background gradient each time it is displayed.\n */\n avatarSeed: {\n type: String,\n default: null,\n },\n\n /**\n * Avatar's full name, used to extract initials\n * to display in avatar if `avatarSrc` and `avatarIcon` are empty.\n */\n avatarFullName: {\n type: String,\n default: '',\n },\n\n /**\n * The size of the avatar\n * @values xs, sm, md, lg, xl\n */\n avatarSize: {\n type: String,\n default: 'lg',\n },\n\n /**\n * The aria-labelledby of the button containing avatars\n */\n avatarLabelledBy: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar color to display if `avatarSrc` is empty.\n */\n avatarColor: {\n type: String,\n default: null,\n },\n\n /**\n * Determines whether to show the presence indicator for\n * Avatar - accepts PRESENCE_STATES values: 'busy', 'away', 'offline',\n * or 'active'. By default, it's null and nothing is shown.\n * @values null, busy, away, offline, active\n */\n presence: {\n type: String,\n default: null,\n },\n\n /**\n * Showing multiple avatars in contact info.\n * The props of array items are: <br>\n * `src` - avatar image url (optional) <br>\n * `fullName` - full name, used to extract initials to display in avatar<br>\n * if `avatarSrc` and `avatarIcon` are empty<br>\n * `seed` - determines uniqueness of avatar background <br>\n * `text` - text that overlays the avatar (optional) <br>\n * `icon` - icon that overlays the avatar (optional) <br>\n * `halo` - halo highlight around the avatar. boolean true/false\n */\n avatarList: {\n type: Array,\n default: null,\n },\n },\n\n emits: ['avatar-click'],\n\n methods: {\n avatarClick () {\n this.$emit('avatar-click');\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtAvatar","DtItemLayout","_hoisted_1","_hoisted_6","_createBlock","_component_dt_item_layout","$props","_createSlots","_createElementVNode","_hoisted_3","_renderSlot","_ctx","_hoisted_4","_withCtx","$options","args","_openBlock","_createElementBlock","_hoisted_2","_Fragment","_renderList","avatar","index","_component_dt_avatar","iconSize","_resolveDynamicComponent","_hoisted_5"],"mappings":"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"}
1
+ {"version":3,"file":"contact-info.js","sources":["../../../recipes/item_layout/contact_info/contact_info.vue"],"sourcesContent":["<template>\n <dt-item-layout\n :role=\"role\"\n data-qa=\"contact-info\"\n class=\"d-recipe-contact-info\"\n content-class=\"d-recipe-contact-info__content\"\n right-class=\"d-recipe-contact-info__right\"\n unstyled\n >\n <template\n v-if=\"showAvatar\"\n #left\n >\n <button\n class=\"d-recipe-contact-info__left\"\n data-qa=\"contact-info-left\"\n :aria-labelledby=\"avatarLabelledBy\"\n @click=\"avatarClick\"\n >\n <span\n v-if=\"avatarList\"\n class=\"d-recipe-contact-info__avatars\"\n >\n <dt-avatar\n v-for=\"(avatar, index) in avatarList\"\n :key=\"index\"\n :size=\"avatarSize\"\n :seed=\"avatar.seed\"\n :full-name=\"avatar.fullName\"\n :image-src=\"avatar.src\"\n image-alt=\"\"\n :overlay-text=\"avatar.text\"\n :avatar-class=\"[\n {\n 'd-recipe-contact-info__avatar-stacked': index > 0,\n 'd-recipe-contact-info__avatar-halo': !!avatar.halo,\n },\n ]\"\n >\n <template #icon=\"{ iconSize }\">\n <!-- @slot Slot for avatar icon in a list -->\n <slot\n name=\"avatarIcon\"\n :icon-size=\"iconSize\"\n />\n </template>\n <template\n v-if=\"avatar.icon\"\n #overlayIcon\n >\n <component :is=\"avatar.icon\" />\n </template>\n </dt-avatar>\n </span>\n <dt-avatar\n v-else\n :size=\"avatarSize\"\n :full-name=\"avatarFullName\"\n :image-src=\"avatarSrc\"\n image-alt=\"\"\n :seed=\"avatarSeed\"\n :color=\"avatarColor\"\n :presence=\"presence\"\n >\n <template #icon=\"{ iconSize }\">\n <!-- @slot Slot for avatar icon in a list -->\n <slot\n name=\"avatarIcon\"\n :icon-size=\"iconSize\"\n />\n </template>\n </dt-avatar>\n </button>\n </template>\n <template #default>\n <div\n class=\"d-recipe-contact-info__header\"\n data-qa=\"contact-info-header\"\n >\n <!-- @slot Slot for header information -->\n <slot name=\"header\" />\n </div>\n </template>\n\n <template #subtitle>\n <div\n class=\"d-recipe-contact-info__subtitle\"\n data-qa=\"contact-info-subtitle\"\n >\n <!-- @slot Slot for subtitle information -->\n <slot name=\"subtitle\" />\n </div>\n </template>\n\n <template\n v-if=\"$slots.bottom\"\n #bottom\n >\n <div\n class=\"d-recipe-contact-info__bottom\"\n data-qa=\"contact-info-bottom\"\n >\n <!-- @slot Slot for information at the bottom -->\n <slot name=\"bottom\" />\n </div>\n </template>\n\n <template\n v-if=\"$slots.right\"\n #right\n >\n <div data-qa=\"contact-info-right\">\n <!-- @slot Slot for the right content -->\n <slot name=\"right\" />\n </div>\n </template>\n </dt-item-layout>\n</template>\n\n<script>\nimport DtItemLayout from '@/components/item_layout/item_layout.vue';\nimport DtAvatar from '@/components/avatar/avatar.vue';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeContactInfo',\n\n components: {\n DtAvatar,\n DtItemLayout,\n },\n\n /* inheritAttrs: false is generally an option we want to set on library\n components. This allows any attributes passed in that are not recognized\n as props to be passed down to another element or component using v-bind:$attrs\n more info: https://vuejs.org/v2/api/#inheritAttrs */\n // inheritAttrs: false,\n\n props: {\n /**\n * String to use for the item's role.\n */\n role: {\n type: String,\n default: '',\n },\n\n /**\n * Display avatar if `showAvatar` property is true.\n */\n showAvatar: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Optional avatar image url.\n */\n avatarSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar seed, set this to the user's ID to get the same avatar background gradient each time it is displayed.\n */\n avatarSeed: {\n type: String,\n default: null,\n },\n\n /**\n * Avatar's full name, used to extract initials\n * to display in avatar if `avatarSrc` and `avatarIcon` are empty.\n */\n avatarFullName: {\n type: String,\n default: '',\n },\n\n /**\n * The size of the avatar\n * @values xs, sm, md, lg, xl\n */\n avatarSize: {\n type: String,\n default: 'lg',\n },\n\n /**\n * The aria-labelledby of the button containing avatars\n */\n avatarLabelledBy: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar color to display if `avatarSrc` is empty.\n */\n avatarColor: {\n type: String,\n default: null,\n },\n\n /**\n * Determines whether to show the presence indicator for\n * Avatar - accepts PRESENCE_STATES values: 'busy', 'away', 'offline',\n * or 'active'. By default, it's null and nothing is shown.\n * @values null, busy, away, offline, active\n */\n presence: {\n type: String,\n default: null,\n },\n\n /**\n * Showing multiple avatars in contact info.\n * The props of array items are: <br>\n * `src` - avatar image url (optional) <br>\n * `fullName` - full name, used to extract initials to display in avatar<br>\n * if `avatarSrc` and `avatarIcon` are empty<br>\n * `seed` - determines uniqueness of avatar background <br>\n * `text` - text that overlays the avatar (optional) <br>\n * `icon` - icon that overlays the avatar (optional) <br>\n * `halo` - halo highlight around the avatar. boolean true/false\n */\n avatarList: {\n type: Array,\n default: null,\n },\n },\n\n emits: ['avatar-click'],\n\n methods: {\n avatarClick () {\n this.$emit('avatar-click');\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtAvatar","DtItemLayout","_hoisted_6","_createBlock","_component_dt_item_layout","$props","_createElementVNode","_hoisted_3","_renderSlot","_ctx","_hoisted_4","$options","args","_openBlock","_createElementBlock","_hoisted_2","_Fragment","_renderList","avatar","index","_component_dt_avatar","_withCtx","iconSize","_resolveDynamicComponent","_hoisted_5"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"contact-row.cjs","sources":["../../../recipes/leftbar/contact_row/contact_row.vue"],"sourcesContent":["<template>\n <dt-recipe-general-row\n :unread-count=\"unreadCount\"\n :description=\"contactDescription\"\n :has-unreads=\"hasUnreads\"\n :selected=\"selected\"\n :has-call-button=\"hasCallButton\"\n :muted=\"muted\"\n :is-typing=\"isTyping\"\n v-bind=\"$attrs\"\n data-qa=\"contact-row\"\n v-on=\"contactRowListeners\"\n @call=\"$emit('call', $event)\"\n >\n <template #left>\n <dt-avatar\n :full-name=\"name\"\n :image-src=\"avatarSrc\"\n :color=\"avatarColor\"\n image-alt=\"\"\n size=\"sm\"\n :seed=\"avatarSeed\"\n :presence=\"avatarPresence\"\n >\n <template\n v-if=\"noInitials\"\n #icon\n >\n <dt-icon-user\n size=\"200\"\n />\n </template>\n </dt-avatar>\n </template>\n <template #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 {{ name }}\n </dt-emoji-text-wrapper>\n <div class=\"d-recipe-leftbar-row__status\">\n <span\n v-if=\"presenceText\"\n data-qa=\"dt-recipe-leftbar-row-presence-text\"\n :class=\"['d-recipe-leftbar-row__meta-context', presenceFontColorClass]\"\n >\n {{ presenceText }}\n </span>\n <dt-emoji-text-wrapper\n v-if=\"userStatus\"\n size=\"100\"\n element-type=\"span\"\n data-qa=\"dt-recipe-leftbar-row-user-status\"\n class=\"d-recipe-leftbar-row__meta-custom\"\n >\n {{ userStatus }}\n </dt-emoji-text-wrapper>\n </div>\n </template>\n </dt-recipe-general-row>\n</template>\n\n<script>\nimport { DtRecipeGeneralRow } from '@/recipes/leftbar/general_row';\nimport { DtEmojiTextWrapper } from '@/components/emoji_text_wrapper';\nimport { DtAvatar } from '@/components/avatar';\nimport { extractVueListeners, safeConcatStrings } from '@/common/utils';\nimport { DtIconUser } from '@dialpad/dialtone-icons/vue3';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeContactRow',\n\n components: {\n DtAvatar,\n DtRecipeGeneralRow,\n DtEmojiTextWrapper,\n DtIconUser,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Optional avatar image url.\n * If not provided it will use the initial of the name.\n */\n avatarSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Determines whether to show the presence indicator for\n * Avatar - accepts PRESENCE_STATES values: 'busy', 'away', 'offline',\n * or 'active'. By default, it's null and nothing is shown.\n * defer validation to avatar component.\n * @values null, busy, away, offline, active\n */\n avatarPresence: {\n type: String,\n default: null,\n },\n\n /**\n * Avatar seed, set this to the user's ID to get the same avatar background gradient each time it is displayed.\n */\n avatarSeed: {\n type: String,\n default: null,\n },\n\n /**\n * Avatar color to display if `avatarSrc` is empty.\n */\n avatarColor: {\n type: String,\n default: null,\n },\n\n /**\n * Text describing the user's presence, such as \"in a meeting\"\n */\n presenceText: {\n type: String,\n default: '',\n },\n\n /**\n * Name of the contact\n */\n name: {\n type: String,\n required: true,\n },\n\n /**\n * Status as set by the user.\n */\n userStatus: {\n type: String,\n default: '',\n },\n\n /**\n * Gives a faded style to be used when muted\n */\n muted: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Number of unread messages\n */\n unreadCount: {\n type: String,\n default: null,\n },\n\n /**\n * Styles the row with an increased font weight to convey it has unreads. This must be true to see\n * the unread count badge.\n */\n hasUnreads: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines if the row is selected\n */\n selected: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Initials will never be shown. Instead it will show a \"User\" icon.\n */\n noInitials: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Shows an \"is typing\" animation over the avatar when true.\n */\n isTyping: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Whether the contact row should display a call button when hovered.\n */\n hasCallButton: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: [\n /**\n * Call button clicked\n *\n * @event call\n * @type {PointerEvent | KeyboardEvent}\n */\n 'call',\n ],\n\n computed: {\n presenceFontColorClass () {\n const presenceFontColors = {\n active: 'd-recipe-contact-row--active',\n busy: 'd-recipe-contact-row--busy',\n away: 'd-recipe-contact-row--away',\n };\n\n return presenceFontColors[this.avatarPresence];\n },\n\n contactRowListeners () {\n return extractVueListeners(this.$attrs);\n },\n\n contactDescription () {\n return safeConcatStrings([this.name, this.presenceText, this.userStatus]);\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtAvatar","DtRecipeGeneralRow","DtEmojiTextWrapper","DtIconUser","extractVueListeners","safeConcatStrings","_hoisted_1","_openBlock","_createBlock","_component_dt_recipe_general_row","_mergeProps","$props","$options","_ctx","_toHandlers","_cache","$event","_createVNode","_component_dt_avatar","_createSlots","_withCtx","_component_dt_icon_user","_component_dt_emoji_text_wrapper","_createTextVNode","_toDisplayString","_createElementVNode","_createElementBlock","_normalizeClass","_createCommentVNode"],"mappings":"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"}
1
+ {"version":3,"file":"contact-row.cjs","sources":["../../../recipes/leftbar/contact_row/contact_row.vue"],"sourcesContent":["<template>\n <dt-recipe-general-row\n :unread-count=\"unreadCount\"\n :description=\"contactDescription\"\n :has-unreads=\"hasUnreads\"\n :selected=\"selected\"\n :has-call-button=\"hasCallButton\"\n :muted=\"muted\"\n :is-typing=\"isTyping\"\n v-bind=\"$attrs\"\n data-qa=\"contact-row\"\n v-on=\"contactRowListeners\"\n @call=\"$emit('call', $event)\"\n >\n <template #left>\n <dt-avatar\n :full-name=\"name\"\n :image-src=\"avatarSrc\"\n :color=\"avatarColor\"\n image-alt=\"\"\n size=\"sm\"\n :seed=\"avatarSeed\"\n :presence=\"avatarPresence\"\n >\n <template\n v-if=\"noInitials\"\n #icon\n >\n <dt-icon-user\n size=\"200\"\n />\n </template>\n </dt-avatar>\n </template>\n <template #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 {{ name }}\n </dt-emoji-text-wrapper>\n <div class=\"d-recipe-leftbar-row__status\">\n <span\n v-if=\"presenceText\"\n data-qa=\"dt-recipe-leftbar-row-presence-text\"\n :class=\"['d-recipe-leftbar-row__meta-context', presenceFontColorClass]\"\n >\n {{ presenceText }}\n </span>\n <dt-emoji-text-wrapper\n v-if=\"userStatus\"\n size=\"100\"\n element-type=\"span\"\n data-qa=\"dt-recipe-leftbar-row-user-status\"\n class=\"d-recipe-leftbar-row__meta-custom\"\n >\n {{ userStatus }}\n </dt-emoji-text-wrapper>\n </div>\n </template>\n </dt-recipe-general-row>\n</template>\n\n<script>\nimport { DtRecipeGeneralRow } from '@/recipes/leftbar/general_row';\nimport { DtEmojiTextWrapper } from '@/components/emoji_text_wrapper';\nimport { DtAvatar } from '@/components/avatar';\nimport { extractVueListeners, safeConcatStrings } from '@/common/utils';\nimport { DtIconUser } from '@dialpad/dialtone-icons/vue3';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeContactRow',\n\n components: {\n DtAvatar,\n DtRecipeGeneralRow,\n DtEmojiTextWrapper,\n DtIconUser,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Optional avatar image url.\n * If not provided it will use the initial of the name.\n */\n avatarSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Determines whether to show the presence indicator for\n * Avatar - accepts PRESENCE_STATES values: 'busy', 'away', 'offline',\n * or 'active'. By default, it's null and nothing is shown.\n * defer validation to avatar component.\n * @values null, busy, away, offline, active\n */\n avatarPresence: {\n type: String,\n default: null,\n },\n\n /**\n * Avatar seed, set this to the user's ID to get the same avatar background gradient each time it is displayed.\n */\n avatarSeed: {\n type: String,\n default: null,\n },\n\n /**\n * Avatar color to display if `avatarSrc` is empty.\n */\n avatarColor: {\n type: String,\n default: null,\n },\n\n /**\n * Text describing the user's presence, such as \"in a meeting\"\n */\n presenceText: {\n type: String,\n default: '',\n },\n\n /**\n * Name of the contact\n */\n name: {\n type: String,\n required: true,\n },\n\n /**\n * Status as set by the user.\n */\n userStatus: {\n type: String,\n default: '',\n },\n\n /**\n * Gives a faded style to be used when muted\n */\n muted: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Number of unread messages\n */\n unreadCount: {\n type: String,\n default: null,\n },\n\n /**\n * Styles the row with an increased font weight to convey it has unreads. This must be true to see\n * the unread count badge.\n */\n hasUnreads: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines if the row is selected\n */\n selected: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Initials will never be shown. Instead it will show a \"User\" icon.\n */\n noInitials: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Shows an \"is typing\" animation over the avatar when true.\n */\n isTyping: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Whether the contact row should display a call button when hovered.\n */\n hasCallButton: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: [\n /**\n * Call button clicked\n *\n * @event call\n * @type {PointerEvent | KeyboardEvent}\n */\n 'call',\n ],\n\n computed: {\n presenceFontColorClass () {\n const presenceFontColors = {\n active: 'd-recipe-contact-row--active',\n busy: 'd-recipe-contact-row--busy',\n away: 'd-recipe-contact-row--away',\n };\n\n return presenceFontColors[this.avatarPresence];\n },\n\n contactRowListeners () {\n return extractVueListeners(this.$attrs);\n },\n\n contactDescription () {\n return safeConcatStrings([this.name, this.presenceText, this.userStatus]);\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtAvatar","DtRecipeGeneralRow","DtEmojiTextWrapper","DtIconUser","extractVueListeners","safeConcatStrings","_hoisted_1","_openBlock","_createBlock","_component_dt_recipe_general_row","_mergeProps","$props","$options","_ctx","_toHandlers","_cache","$event","_createVNode","_component_dt_avatar","_component_dt_icon_user","_component_dt_emoji_text_wrapper","_createElementVNode","_createElementBlock"],"mappings":"yZAuEKA,EAAU,CACb,aAAc,CAAE,KAAM,GACtB,KAAM,qBAEN,WAAY,CACV,SAAAC,EAAAA,QACA,mBAAAC,EAAAA,QACA,mBAAAC,EAAAA,mBACAC,EAAAA,YAGF,aAAc,GAEd,MAAO,CAKL,UAAW,CACT,KAAM,OACN,QAAS,IAUX,eAAgB,CACd,KAAM,OACN,QAAS,MAMX,WAAY,CACV,KAAM,OACN,QAAS,MAMX,YAAa,CACX,KAAM,OACN,QAAS,MAMX,aAAc,CACZ,KAAM,OACN,QAAS,IAMX,KAAM,CACJ,KAAM,OACN,SAAU,IAMZ,WAAY,CACV,KAAM,OACN,QAAS,IAMX,MAAO,CACL,KAAM,QACN,QAAS,IAMX,YAAa,CACX,KAAM,OACN,QAAS,MAOX,WAAY,CACV,KAAM,QACN,QAAS,IAMX,SAAU,CACR,KAAM,QACN,QAAS,IAMX,WAAY,CACV,KAAM,QACN,QAAS,IAMX,SAAU,CACR,KAAM,QACN,QAAS,IAMX,cAAe,CACb,KAAM,QACN,QAAS,KAIb,MAAO,CAOL,QAGF,SAAU,CACR,wBAA0B,CAOxB,MAN2B,CACzB,OAAQ,+BACR,KAAM,6BACN,KAAM,8BAGkB,KAAK,cAAc,CAC/C,EAEA,qBAAuB,CACrB,OAAOC,EAAAA,oBAAoB,KAAK,MAAM,CACxC,EAEA,oBAAsB,CACpB,OAAOC,EAAAA,kBAAkB,CAAC,KAAK,KAAM,KAAK,aAAc,KAAK,UAAU,CAAC,CAC1E,EAEJ,EA/LWC,EAAA,CAAA,MAAM,8BAA8B,mMAzC7C,OAAAC,YAAA,EAAAC,cA4DwBC,EA5DxBC,EAAAA,WA4DwB,CA3DrB,eAAcC,EAAA,YACd,YAAaC,EAAA,mBACb,cAAaD,EAAA,WACb,SAAUA,EAAA,SACV,kBAAiBA,EAAA,cACjB,MAAOA,EAAA,MACP,YAAWA,EAAA,QACJ,EAAAE,EAAA,QACR,UAAQ,aAAa,EACrBC,EAAAA,WAA0BF,EAApB,mBAAmB,EAAA,CACxB,OAAIG,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAEH,EAAA,MAAK,OAASG,CAAM,MAEhB,eACT,IAiBY,CAjBZC,EAAAA,YAiBYC,EAAA,CAhBT,YAAWP,EAAA,KACX,YAAWA,EAAA,UACX,MAAOA,EAAA,YACR,YAAU,GACV,KAAK,KACJ,KAAMA,EAAA,WACN,SAAUA,EAAA,qCAGHA,EAAA,iBACL,oBAED,IAEE,CAFFM,EAAAA,YAEEE,EAAA,CADA,KAAK,KAAK,CAAA,kFAKP,gBACT,IAMwB,CANxBF,EAAAA,YAMwBG,EAAA,CALtB,MAAM,oCACN,UAAQ,oCACR,KAAK,0BAEL,IAAU,qCAAPT,EAAA,IAAI,EAAA,CAAA,UAETU,EAAAA,mBAiBM,MAjBNf,EAiBM,CAfIK,EAAA,4BADRW,EAAAA,mBAMO,OAAA,OAJL,UAAQ,sCACP,6DAA8CV,EAAA,sBAAsB,CAAA,qBAElED,EAAA,YAAY,EAAA,CAAA,+BAGTA,EAAA,0BADRH,EAAAA,YAQwBY,EAAA,OANtB,KAAK,MACL,eAAa,OACb,UAAQ,oCACR,MAAM,wDAEN,IAAgB,qCAAbT,EAAA,UAAU,EAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"contact-row.js","sources":["../../../recipes/leftbar/contact_row/contact_row.vue"],"sourcesContent":["<template>\n <dt-recipe-general-row\n :unread-count=\"unreadCount\"\n :description=\"contactDescription\"\n :has-unreads=\"hasUnreads\"\n :selected=\"selected\"\n :has-call-button=\"hasCallButton\"\n :muted=\"muted\"\n :is-typing=\"isTyping\"\n v-bind=\"$attrs\"\n data-qa=\"contact-row\"\n v-on=\"contactRowListeners\"\n @call=\"$emit('call', $event)\"\n >\n <template #left>\n <dt-avatar\n :full-name=\"name\"\n :image-src=\"avatarSrc\"\n :color=\"avatarColor\"\n image-alt=\"\"\n size=\"sm\"\n :seed=\"avatarSeed\"\n :presence=\"avatarPresence\"\n >\n <template\n v-if=\"noInitials\"\n #icon\n >\n <dt-icon-user\n size=\"200\"\n />\n </template>\n </dt-avatar>\n </template>\n <template #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 {{ name }}\n </dt-emoji-text-wrapper>\n <div class=\"d-recipe-leftbar-row__status\">\n <span\n v-if=\"presenceText\"\n data-qa=\"dt-recipe-leftbar-row-presence-text\"\n :class=\"['d-recipe-leftbar-row__meta-context', presenceFontColorClass]\"\n >\n {{ presenceText }}\n </span>\n <dt-emoji-text-wrapper\n v-if=\"userStatus\"\n size=\"100\"\n element-type=\"span\"\n data-qa=\"dt-recipe-leftbar-row-user-status\"\n class=\"d-recipe-leftbar-row__meta-custom\"\n >\n {{ userStatus }}\n </dt-emoji-text-wrapper>\n </div>\n </template>\n </dt-recipe-general-row>\n</template>\n\n<script>\nimport { DtRecipeGeneralRow } from '@/recipes/leftbar/general_row';\nimport { DtEmojiTextWrapper } from '@/components/emoji_text_wrapper';\nimport { DtAvatar } from '@/components/avatar';\nimport { extractVueListeners, safeConcatStrings } from '@/common/utils';\nimport { DtIconUser } from '@dialpad/dialtone-icons/vue3';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeContactRow',\n\n components: {\n DtAvatar,\n DtRecipeGeneralRow,\n DtEmojiTextWrapper,\n DtIconUser,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Optional avatar image url.\n * If not provided it will use the initial of the name.\n */\n avatarSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Determines whether to show the presence indicator for\n * Avatar - accepts PRESENCE_STATES values: 'busy', 'away', 'offline',\n * or 'active'. By default, it's null and nothing is shown.\n * defer validation to avatar component.\n * @values null, busy, away, offline, active\n */\n avatarPresence: {\n type: String,\n default: null,\n },\n\n /**\n * Avatar seed, set this to the user's ID to get the same avatar background gradient each time it is displayed.\n */\n avatarSeed: {\n type: String,\n default: null,\n },\n\n /**\n * Avatar color to display if `avatarSrc` is empty.\n */\n avatarColor: {\n type: String,\n default: null,\n },\n\n /**\n * Text describing the user's presence, such as \"in a meeting\"\n */\n presenceText: {\n type: String,\n default: '',\n },\n\n /**\n * Name of the contact\n */\n name: {\n type: String,\n required: true,\n },\n\n /**\n * Status as set by the user.\n */\n userStatus: {\n type: String,\n default: '',\n },\n\n /**\n * Gives a faded style to be used when muted\n */\n muted: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Number of unread messages\n */\n unreadCount: {\n type: String,\n default: null,\n },\n\n /**\n * Styles the row with an increased font weight to convey it has unreads. This must be true to see\n * the unread count badge.\n */\n hasUnreads: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines if the row is selected\n */\n selected: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Initials will never be shown. Instead it will show a \"User\" icon.\n */\n noInitials: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Shows an \"is typing\" animation over the avatar when true.\n */\n isTyping: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Whether the contact row should display a call button when hovered.\n */\n hasCallButton: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: [\n /**\n * Call button clicked\n *\n * @event call\n * @type {PointerEvent | KeyboardEvent}\n */\n 'call',\n ],\n\n computed: {\n presenceFontColorClass () {\n const presenceFontColors = {\n active: 'd-recipe-contact-row--active',\n busy: 'd-recipe-contact-row--busy',\n away: 'd-recipe-contact-row--away',\n };\n\n return presenceFontColors[this.avatarPresence];\n },\n\n contactRowListeners () {\n return extractVueListeners(this.$attrs);\n },\n\n contactDescription () {\n return safeConcatStrings([this.name, this.presenceText, this.userStatus]);\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtAvatar","DtRecipeGeneralRow","DtEmojiTextWrapper","DtIconUser","extractVueListeners","safeConcatStrings","_hoisted_1","_openBlock","_createBlock","_component_dt_recipe_general_row","_mergeProps","$props","$options","_ctx","_toHandlers","_cache","$event","_createVNode","_component_dt_avatar","_createSlots","_withCtx","_component_dt_icon_user","_component_dt_emoji_text_wrapper","_createTextVNode","_toDisplayString","_createElementVNode","_createElementBlock","_normalizeClass","_createCommentVNode"],"mappings":";;;;;;;AAuEA,MAAKA,IAAU;AAAA,EACb,cAAc,EAAE,MAAM;EACtB,MAAM;AAAA,EAEN,YAAY;AAAA,IACV,UAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,oBAAAC;AAAAA,IACA,YAAAC;AAAA;EAGF,cAAc;AAAA,EAEd,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,IAKL,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA;;;;;;;;IAUX,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,SAAS;AAAA;;;;IAMX,YAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA;;;;IAMX,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA;;;;IAMX,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,SAAS;AAAA;;;;IAMX,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,UAAU;AAAA;;;;IAMZ,YAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA;;;;IAMX,OAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA;;;;IAMX,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA;;;;;IAOX,YAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA;;;;IAMX,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA;;;;IAMX,YAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA;;;;IAMX,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA;;;;IAMX,eAAe;AAAA,MACb,MAAM;AAAA,MACN,SAAS;AAAA;;EAIb,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOL;AAAA;EAGF,UAAU;AAAA,IACR,yBAA0B;AAOxB,aAN2B;AAAA,QACzB,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,MAAM;AAAA,QAGkB,KAAK,cAAc;AAAA,IAC/C;AAAA,IAEA,sBAAuB;AACrB,aAAOC,EAAoB,KAAK,MAAM;AAAA,IACxC;AAAA,IAEA,qBAAsB;AACpB,aAAOC,EAAkB,CAAC,KAAK,MAAM,KAAK,cAAc,KAAK,UAAU,CAAC;AAAA,IAC1E;AAAA;AAEJ,GA/LWC,IAAA,EAAA,OAAM,+BAA8B;;;AAzC7C,SAAAC,EAAA,GAAAC,EA4DwBC,GA5DxBC,EA4DwB;AAAA,IA3DrB,gBAAcC,EAAA;AAAA,IACd,aAAaC,EAAA;AAAA,IACb,eAAaD,EAAA;AAAA,IACb,UAAUA,EAAA;AAAA,IACV,mBAAiBA,EAAA;AAAA,IACjB,OAAOA,EAAA;AAAA,IACP,aAAWA,EAAA;AAAA,EACJ,GAAAE,EAAA,UACR,WAAQ,cAAa,GACrBC,EAA0BF,EAApB,mBAAmB,GAAA;AAAA,IACxB,QAAIG,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAEH,EAAA,MAAK,QAASG,CAAM;AAAA;IAEhB,QACT,MAiBY;AAAA,MAjBZC,EAiBYC,GAAA;AAAA,QAhBT,aAAWP,EAAA;AAAA,QACX,aAAWA,EAAA;AAAA,QACX,OAAOA,EAAA;AAAA,QACR,aAAU;AAAA,QACV,MAAK;AAAA,QACJ,MAAMA,EAAA;AAAA,QACN,UAAUA,EAAA;AAAA,MAtBnB,GAAAQ,EAAA,EAAA,GAAA,KAAA;AAAA,QAyBgBR,EAAA;UAzBhB,MA0BW;AAAA,UA1BX,IAAAS,EA4BU,MAEE;AAAA,YAFFH,EAEEI,GAAA,EADA,MAAK,MAAK,CAAA;AAAA;UA7BtB,KAAA;AAAA,YAAA;AAAA;;IAkCe,SACT,MAMwB;AAAA,MANxBJ,EAMwBK,GAAA;AAAA,QALtB,OAAM;AAAA,QACN,WAAQ;AAAA,QACR,MAAK;AAAA;QAtCb,SAAAF,EAwCQ,MAAU;AAAA,UAxClBG,EAAAC,EAwCWb,EAAA,IAAI,GAAA,CAAA;AAAA;QAxCf,GAAA;AAAA;MA0CMc,EAiBM,OAjBNnB,GAiBM;AAAA,QAfIK,EAAA,qBADRe,EAMO,QAAA;AAAA,UAjDf,KAAA;AAAA,UA6CU,WAAQ;AAAA,UACP,OA9CXC,yCA8CyDf,EAAA,sBAAsB,CAAA;AAAA,aAElED,EAAA,YAAY,GAAA,CAAA,KAhDzBiB,EAAA,IAAA,EAAA;AAAA,QAmDgBjB,EAAA,mBADRH,EAQwBc,GAAA;AAAA,UA1DhC,KAAA;AAAA,UAoDU,MAAK;AAAA,UACL,gBAAa;AAAA,UACb,WAAQ;AAAA,UACR,OAAM;AAAA;UAvDhB,SAAAF,EAyDU,MAAgB;AAAA,YAzD1BG,EAAAC,EAyDab,EAAA,UAAU,GAAA,CAAA;AAAA;UAzDvB,GAAA;AAAA,cAAAiB,EAAA,IAAA,EAAA;AAAA;;IAAA,GAAA;AAAA;;;"}
1
+ {"version":3,"file":"contact-row.js","sources":["../../../recipes/leftbar/contact_row/contact_row.vue"],"sourcesContent":["<template>\n <dt-recipe-general-row\n :unread-count=\"unreadCount\"\n :description=\"contactDescription\"\n :has-unreads=\"hasUnreads\"\n :selected=\"selected\"\n :has-call-button=\"hasCallButton\"\n :muted=\"muted\"\n :is-typing=\"isTyping\"\n v-bind=\"$attrs\"\n data-qa=\"contact-row\"\n v-on=\"contactRowListeners\"\n @call=\"$emit('call', $event)\"\n >\n <template #left>\n <dt-avatar\n :full-name=\"name\"\n :image-src=\"avatarSrc\"\n :color=\"avatarColor\"\n image-alt=\"\"\n size=\"sm\"\n :seed=\"avatarSeed\"\n :presence=\"avatarPresence\"\n >\n <template\n v-if=\"noInitials\"\n #icon\n >\n <dt-icon-user\n size=\"200\"\n />\n </template>\n </dt-avatar>\n </template>\n <template #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 {{ name }}\n </dt-emoji-text-wrapper>\n <div class=\"d-recipe-leftbar-row__status\">\n <span\n v-if=\"presenceText\"\n data-qa=\"dt-recipe-leftbar-row-presence-text\"\n :class=\"['d-recipe-leftbar-row__meta-context', presenceFontColorClass]\"\n >\n {{ presenceText }}\n </span>\n <dt-emoji-text-wrapper\n v-if=\"userStatus\"\n size=\"100\"\n element-type=\"span\"\n data-qa=\"dt-recipe-leftbar-row-user-status\"\n class=\"d-recipe-leftbar-row__meta-custom\"\n >\n {{ userStatus }}\n </dt-emoji-text-wrapper>\n </div>\n </template>\n </dt-recipe-general-row>\n</template>\n\n<script>\nimport { DtRecipeGeneralRow } from '@/recipes/leftbar/general_row';\nimport { DtEmojiTextWrapper } from '@/components/emoji_text_wrapper';\nimport { DtAvatar } from '@/components/avatar';\nimport { extractVueListeners, safeConcatStrings } from '@/common/utils';\nimport { DtIconUser } from '@dialpad/dialtone-icons/vue3';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeContactRow',\n\n components: {\n DtAvatar,\n DtRecipeGeneralRow,\n DtEmojiTextWrapper,\n DtIconUser,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Optional avatar image url.\n * If not provided it will use the initial of the name.\n */\n avatarSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Determines whether to show the presence indicator for\n * Avatar - accepts PRESENCE_STATES values: 'busy', 'away', 'offline',\n * or 'active'. By default, it's null and nothing is shown.\n * defer validation to avatar component.\n * @values null, busy, away, offline, active\n */\n avatarPresence: {\n type: String,\n default: null,\n },\n\n /**\n * Avatar seed, set this to the user's ID to get the same avatar background gradient each time it is displayed.\n */\n avatarSeed: {\n type: String,\n default: null,\n },\n\n /**\n * Avatar color to display if `avatarSrc` is empty.\n */\n avatarColor: {\n type: String,\n default: null,\n },\n\n /**\n * Text describing the user's presence, such as \"in a meeting\"\n */\n presenceText: {\n type: String,\n default: '',\n },\n\n /**\n * Name of the contact\n */\n name: {\n type: String,\n required: true,\n },\n\n /**\n * Status as set by the user.\n */\n userStatus: {\n type: String,\n default: '',\n },\n\n /**\n * Gives a faded style to be used when muted\n */\n muted: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Number of unread messages\n */\n unreadCount: {\n type: String,\n default: null,\n },\n\n /**\n * Styles the row with an increased font weight to convey it has unreads. This must be true to see\n * the unread count badge.\n */\n hasUnreads: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines if the row is selected\n */\n selected: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Initials will never be shown. Instead it will show a \"User\" icon.\n */\n noInitials: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Shows an \"is typing\" animation over the avatar when true.\n */\n isTyping: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Whether the contact row should display a call button when hovered.\n */\n hasCallButton: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: [\n /**\n * Call button clicked\n *\n * @event call\n * @type {PointerEvent | KeyboardEvent}\n */\n 'call',\n ],\n\n computed: {\n presenceFontColorClass () {\n const presenceFontColors = {\n active: 'd-recipe-contact-row--active',\n busy: 'd-recipe-contact-row--busy',\n away: 'd-recipe-contact-row--away',\n };\n\n return presenceFontColors[this.avatarPresence];\n },\n\n contactRowListeners () {\n return extractVueListeners(this.$attrs);\n },\n\n contactDescription () {\n return safeConcatStrings([this.name, this.presenceText, this.userStatus]);\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtAvatar","DtRecipeGeneralRow","DtEmojiTextWrapper","DtIconUser","extractVueListeners","safeConcatStrings","_hoisted_1","_openBlock","_createBlock","_component_dt_recipe_general_row","_mergeProps","$props","$options","_ctx","_toHandlers","_cache","$event","_createVNode","_component_dt_avatar","_component_dt_icon_user","_component_dt_emoji_text_wrapper","_createElementVNode","_createElementBlock"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"datepicker.cjs","sources":["../../../components/datepicker/composables/useMonthYearPicker.js","../../../components/datepicker/modules/month-year-picker.vue","../../../components/datepicker/composables/useCalendar.js","../../../components/datepicker/modules/calendar.vue","../../../components/datepicker/datepicker.vue"],"sourcesContent":["import { computed, ref, watch } from 'vue';\nimport { addMonths, getDate, getMonth, getYear, set, subMonths } from 'date-fns';\nimport { formatMonth, getCalendarDays } from '../utils.js';\nimport { INTL_MONTH_FORMAT } from '../datepicker_constants';\nimport { returnFirstEl } from '@/common/utils';\nimport { DialtoneLocalization } from '@/localization';\n\nexport function useMonthYearPicker (props, emits) {\n const selectMonth = ref(getMonth(props.selectedDate));\n const selectYear = ref(getYear(props.selectedDate));\n const highlightedDay = ref(null);\n const focusPicker = ref(0);\n const focusRefs = ref([]);\n const i18n = new DialtoneLocalization();\n\n const calendarDays = computed(() => {\n return getCalendarDays(selectMonth.value, selectYear.value, highlightedDay.value);\n });\n\n watch(selectMonth, () => {\n highlightDay();\n emits('calendar-days', calendarDays.value);\n }, { immediate: true });\n\n watch(selectYear, () => {\n highlightDay();\n emits('calendar-days', calendarDays.value);\n }, { immediate: true });\n\n function formattedMonth (month) {\n return formatMonth(month, INTL_MONTH_FORMAT, i18n.currentLocale);\n }\n\n function setDayRef (el) {\n if (!focusRefs.value.includes(el)) {\n focusRefs.value.push(el);\n }\n }\n\n function focusMonthYearPicker () {\n returnFirstEl(focusRefs.value[0].$el).focus();\n }\n\n function handleKeyDown (event) {\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault();\n if (focusPicker.value === 0) {\n focusPicker.value = 3;\n returnFirstEl(focusRefs.value[focusPicker.value].$el).focus();\n } else {\n focusPicker.value--;\n returnFirstEl(focusRefs.value[focusPicker.value].$el).focus();\n }\n break;\n\n case 'ArrowRight':\n event.preventDefault();\n if (focusPicker.value === 3) {\n focusPicker.value = 0;\n returnFirstEl(focusRefs.value[focusPicker.value].$el).focus();\n } else {\n focusPicker.value++;\n returnFirstEl(focusRefs.value[focusPicker.value].$el).focus();\n }\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n emits('focus-first-day');\n break;\n\n case 'Tab':\n event.preventDefault();\n emits('focus-first-day');\n break;\n\n case 'Escape':\n emits('close-datepicker');\n break;\n }\n }\n\n function highlightDay () {\n const year = getYear(props.selectedDate);\n const month = getMonth(props.selectedDate);\n\n if (year !== selectYear.value || month !== selectMonth.value) {\n highlightedDay.value = null;\n } else {\n highlightedDay.value = getDate(props.selectedDate);\n }\n }\n\n function changeMonth (value) {\n // Adjust year when changing from January to December or vice versa\n if ((selectMonth.value === 0 && value === -1) || (selectMonth.value === 11 && value === 1)) {\n selectYear.value += value;\n }\n\n // Calculate the new date by adding or subtracting months\n const initialDate = set(props.selectedDate, { month: selectMonth.value, year: selectYear.value });\n const newDate = value === 1 ? addMonths(initialDate, 1) : subMonths(initialDate, 1);\n\n // Update the selected month\n selectMonth.value = getMonth(newDate);\n }\n\n function changeYear (value) {\n selectYear.value = selectYear.value + value;\n }\n\n function goToNextMonth () {\n changeMonth(1);\n }\n\n function goToPrevMonth () {\n changeMonth(-1);\n }\n\n function previousYearAriaLabel () {\n return `${i18n.$t('DIALTONE_DATEPICKER_CHANGE_TO')} ${i18n.$t('DIALTONE_DATEPICKER_PREVIOUS_YEAR')} ${selectYear.value - 1}`;\n }\n\n function previousMonthAriaLabel () {\n return `${i18n.$t('DIALTONE_DATEPICKER_CHANGE_TO')} ${i18n.$t('DIALTONE_DATEPICKER_PREVIOUS_MONTH')} ${formattedMonth(selectMonth.value - 1)}`;\n }\n\n function nextYearAriaLabel () {\n return `${i18n.$t('DIALTONE_DATEPICKER_CHANGE_TO')} ${i18n.$t('DIALTONE_DATEPICKER_NEXT_YEAR')} ${selectYear.value + 1}`;\n }\n\n function nextMonthAriaLabel () {\n return `${i18n.$t('DIALTONE_DATEPICKER_CHANGE_TO')} ${i18n.$t('DIALTONE_DATEPICKER_NEXT_MONTH')} ${formattedMonth(selectMonth.value + 1)}`;\n }\n\n return {\n selectMonth,\n selectYear,\n formattedMonth,\n setDayRef,\n focusMonthYearPicker,\n handleKeyDown,\n changeMonth,\n changeYear,\n goToNextMonth,\n goToPrevMonth,\n previousYearAriaLabel,\n previousMonthAriaLabel,\n nextYearAriaLabel,\n nextMonthAriaLabel,\n };\n}\n","<template>\n <dt-stack\n class=\"d-datepicker__month-year\"\n direction=\"row\"\n gap=\"300\"\n >\n <dt-stack\n as=\"nav\"\n class=\"d-datepicker__nav\"\n direction=\"row\"\n gap=\"200\"\n >\n <dt-tooltip\n :fallback-placements=\"['top-start', 'auto']\"\n :message=\"i18n.$t('DIALTONE_DATEPICKER_PREVIOUS_YEAR')\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n id=\"prevYearButton\"\n :ref=\"el => { if (el) setDayRef(el) }\"\n :aria-label=\"previousYearAriaLabel()\"\n :circle=\"true\"\n class=\"d-datepicker__nav-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"xs\"\n type=\"button\"\n @click=\"changeYear(-1)\"\n @keydown=\"handleKeyDown($event)\"\n >\n <dt-icon-chevrons-left\n size=\"200\"\n />\n </dt-button>\n </template>\n </dt-tooltip>\n <dt-tooltip\n :fallback-placements=\"['top-start', 'auto']\"\n :message=\"i18n.$t('DIALTONE_DATEPICKER_PREVIOUS_MONTH')\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n id=\"prevMonthButton\"\n :ref=\"el => { if (el) setDayRef(el) }\"\n :aria-label=\"previousMonthAriaLabel()\"\n :circle=\"true\"\n class=\"d-datepicker__nav-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"xs\"\n type=\"button\"\n @click=\"changeMonth(-1)\"\n @keydown=\"handleKeyDown($event)\"\n >\n <dt-icon-chevron-left\n size=\"200\"\n />\n </dt-button>\n </template>\n </dt-tooltip>\n </dt-stack>\n <div\n id=\"calendar-heading\"\n class=\"d-datepicker__month-year-title\"\n >\n {{ formattedMonth(selectMonth) }}\n\n {{ selectYear }}\n </div>\n <dt-stack\n as=\"nav\"\n class=\"d-datepicker__nav\"\n direction=\"row\"\n gap=\"200\"\n >\n <dt-tooltip\n :fallback-placements=\"['top-end', 'auto']\"\n :message=\"i18n.$t('DIALTONE_DATEPICKER_NEXT_MONTH')\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n id=\"nextMonthButton\"\n :ref=\"el => { if (el) setDayRef(el) }\"\n :aria-label=\"nextMonthAriaLabel()\"\n :circle=\"true\"\n class=\"d-datepicker__nav-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"xs\"\n type=\"button\"\n @click=\"changeMonth(1)\"\n @keydown=\"handleKeyDown($event)\"\n >\n <dt-icon-chevron-right\n size=\"200\"\n />\n </dt-button>\n </template>\n </dt-tooltip>\n <dt-tooltip\n :fallback-placements=\"['top-end', 'auto']\"\n :message=\"i18n.$t('DIALTONE_DATEPICKER_NEXT_YEAR')\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n id=\"nextYearButton\"\n :ref=\"el => { if (el) setDayRef(el) }\"\n :aria-label=\"nextYearAriaLabel()\"\n :circle=\"true\"\n class=\"d-datepicker__nav-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"xs\"\n type=\"button\"\n @click=\"changeYear(1)\"\n @keydown=\"handleKeyDown($event)\"\n >\n <dt-icon-chevrons-right\n size=\"200\"\n />\n </dt-button>\n </template>\n </dt-tooltip>\n </dt-stack>\n </dt-stack>\n</template>\n\n<script setup>\nimport {\n DtIconChevronLeft,\n DtIconChevronsLeft,\n DtIconChevronRight,\n DtIconChevronsRight,\n} from '@dialpad/dialtone-icons/vue3';\nimport { DtStack } from '@/components/stack';\nimport { DtButton } from '@/components/button';\nimport { DtTooltip } from '@/components/tooltip';\nimport { onMounted } from 'vue';\nimport { useMonthYearPicker } from '../composables/useMonthYearPicker.js';\nimport { DialtoneLocalization } from '@/localization';\n\nconst props = defineProps({\n selectedDate: {\n type: Date,\n required: true,\n },\n});\n\nconst emits = defineEmits([\n /**\n * Will retrieve the calendar days of the given date\n *\n * @event calendar-days\n * @type {Array}\n */\n 'calendar-days',\n\n /**\n * Will focus first day in calendar\n *\n * @event focus-first-day\n */\n 'focus-first-day',\n\n /**\n * Will focus last day in calendar\n *\n * @event focus-last-day\n */\n 'focus-last-day',\n\n /**\n * Will close the datepicker\n *\n * @event close-datepicker\n */\n 'close-datepicker',\n]);\n\nconst i18n = new DialtoneLocalization();\n\nconst {\n selectMonth,\n selectYear,\n formattedMonth,\n setDayRef,\n focusMonthYearPicker,\n handleKeyDown,\n changeMonth,\n changeYear,\n goToNextMonth,\n goToPrevMonth,\n previousYearAriaLabel,\n previousMonthAriaLabel,\n nextMonthAriaLabel,\n nextYearAriaLabel,\n} = useMonthYearPicker(props, emits);\n\nonMounted(() => {\n focusMonthYearPicker();\n});\n\ndefineExpose({\n focusMonthYearPicker,\n goToNextMonth,\n goToPrevMonth,\n});\n</script>\n","import { computed, ref, watch, nextTick } from 'vue';\nimport { getWeekDayNames, calculateNextFocusDate, calculatePrevFocusDate, formatDate } from '../utils.js';\nimport { INTL_MONTH_FORMAT, WEEK_START } from '../datepicker_constants.js';\nimport { returnFirstEl } from '@/common/utils';\nimport { DialtoneLocalization } from '@/localization';\n\nexport function useCalendar (props, emits) {\n const selectedDay = ref(null);\n const focusDay = ref(0);\n const daysRef = ref([]);\n const i18n = new DialtoneLocalization();\n\n const weekDays = computed(() => {\n return getWeekDayNames(props.locale, WEEK_START);\n });\n\n watch(() => props.calendarDays, () => {\n focusDay.value = 0;\n daysRef.value = [];\n selectedDay.value = null;\n });\n\n function dayAriaLabel (day) {\n return i18n.$t('DIALTONE_DATEPICKER_SELECT_DAY') + ` ${formatDate(day.value, INTL_MONTH_FORMAT, i18n.currentLocale)}`;\n }\n\n function setDayRef (el, day) {\n if (!daysRef.value.some(day => day.el === el) && day.currentMonth) {\n daysRef.value.push({ el, day });\n }\n }\n\n function handleKeyDown (event) {\n switch (event.key) {\n case 'ArrowUp':\n event.preventDefault();\n focusDay.value -= 7;\n try {\n returnFirstEl(daysRef.value[focusDay.value].el.$el).focus();\n } catch {\n const prevFocusDate = calculatePrevFocusDate(daysRef.value[focusDay.value + 7].day.value);\n emits('go-to-prev-month');\n\n nextTick(() => {\n returnFirstEl(daysRef.value[prevFocusDate - 1].el.$el).focus();\n focusDay.value += prevFocusDate - 1;\n });\n }\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n focusDay.value += 7;\n try {\n returnFirstEl(daysRef.value[focusDay.value].el.$el).focus();\n } catch {\n const nextFocusDate = calculateNextFocusDate(daysRef.value[focusDay.value - 7].day.value);\n emits('go-to-next-month');\n\n nextTick(() => {\n returnFirstEl(daysRef.value[nextFocusDate - 1].el.$el).focus();\n focusDay.value += nextFocusDate - 1;\n });\n }\n break;\n\n case 'ArrowLeft':\n event.preventDefault();\n if (focusDay.value > 0) {\n focusDay.value -= 1;\n returnFirstEl(daysRef.value[focusDay.value].el.$el).focus();\n } else {\n // if we are on month first day, jump to last day of prev month\n emits('go-to-prev-month');\n focusLastDay();\n }\n break;\n\n case 'ArrowRight':\n event.preventDefault();\n if (focusDay.value < daysRef.value.length - 1) {\n focusDay.value += 1;\n returnFirstEl(daysRef.value[focusDay.value].el.$el).focus();\n } else {\n // if we are on month last day, jump to first day of next month\n emits('go-to-next-month');\n\n focusFirstDay();\n }\n break;\n\n case 'Tab':\n event.preventDefault();\n emits('focus-month-year-picker');\n break;\n\n case 'Escape':\n emits('close-datepicker');\n break;\n }\n }\n\n function focusFirstDay () {\n focusDay.value = 0;\n\n nextTick(() => {\n returnFirstEl(daysRef.value[focusDay.value].el.$el).focus();\n });\n }\n\n function focusLastDay () {\n nextTick(() => {\n focusDay.value = daysRef.value.length - 1;\n returnFirstEl(daysRef.value[focusDay.value].el.$el).focus();\n });\n }\n\n function selectDay (day) {\n if (!day.currentMonth) { return; }\n\n // local selectedDay is updated when a day is selected\n selectedDay.value = day.text;\n emits('select-date', day.value);\n }\n\n return {\n selectedDay,\n weekDays,\n dayAriaLabel,\n setDayRef,\n handleKeyDown,\n focusFirstDay,\n selectDay,\n };\n}\n","<template>\n <table\n class=\"d-datepicker__calendar\"\n aria-labelledby=\"calendar-heading\"\n >\n <thead>\n <tr>\n <th\n v-for=\"day in weekDays\"\n :key=\"day\"\n scope=\"col\"\n class=\"d-datepicker__cell d-datepicker__cell--header\"\n >\n <span\n class=\"d-datepicker__weekday\"\n :title=\"day\"\n :aria-label=\"day\"\n > {{ day }}</span>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n v-for=\"(week, indexWeek) in calendarDays\"\n :key=\"indexWeek\"\n >\n <td\n v-for=\"(day, indexDays) in week.days\"\n :key=\"indexWeek + indexDays\"\n class=\"d-datepicker__cell\"\n role=\"listbox\"\n >\n <dt-button\n :ref=\"el => { if (el) setDayRef(el, day) }\"\n class=\"d-datepicker__day\"\n :circle=\"true\"\n size=\"sm\"\n importance=\"clear\"\n :disabled=\"!day.currentMonth\"\n :class=\"{\n 'd-datepicker__day--disabled': !day.currentMonth,\n 'd-datepicker__day--selected': selectedDay\n ? ((day.text === selectedDay) && day.currentMonth)\n : day.selected,\n }\"\n type=\"button\"\n :aria-selected=\"!!selectedDay ? ((day.text === selectedDay) && day.currentMonth) : day.selected\"\n :aria-label=\"dayAriaLabel(day)\"\n role=\"option\"\n @click=\"selectDay(day)\"\n @keydown=\"handleKeyDown($event)\"\n >\n {{ day.text }}\n </dt-button>\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script setup>\nimport { useCalendar } from '../composables/useCalendar.js';\nimport { DtButton } from '@/components/button';\n\nconst props = defineProps({\n calendarDays: {\n type: Array,\n required: true,\n },\n});\n\nconst emits = defineEmits([\n /**\n * Event fired when a date is selected\n *\n * @event select-date\n * @type {Date}\n */\n 'select-date',\n\n /**\n * Will focus the month and year picker\n *\n * @event focus-month-year-picker\n */\n 'focus-month-year-picker',\n\n /**\n * Will close the datepicker\n *\n * @event close-datepicker\n */\n 'close-datepicker',\n\n /**\n * Will go to the next month\n *\n * @event go-to-next-month\n */\n 'go-to-next-month',\n\n /**\n * Will go to the previous month\n *\n * @event go-to-prev-month\n */\n 'go-to-prev-month',\n]);\n\nconst {\n selectedDay,\n weekDays,\n dayAriaLabel,\n setDayRef,\n handleKeyDown,\n focusFirstDay,\n selectDay,\n} = useCalendar(props, emits);\n\ndefineExpose({\n focusFirstDay,\n});\n</script>\n","<!-- eslint-disable vue/multi-word-component-names -->\n<template>\n <dt-stack\n class=\"d-datepicker\"\n gap=\"400\"\n >\n <div class=\"d-datepicker__hd\">\n <month-year-picker\n ref=\"monthYearPicker\"\n :selected-date=\"selectedDate\"\n @calendar-days=\"updateCalendarDays\"\n @focus-first-day=\"$refs.calendar.focusFirstDay()\"\n @focus-last-day=\"$refs.calendar.focusLastDay()\"\n @close-datepicker=\"$emit('close-datepicker')\"\n />\n </div>\n <div class=\"d-datepicker__bd\">\n <calendar\n ref=\"calendar\"\n :calendar-days=\"calendarDays\"\n @select-date=\"$emit('selected-date', $event)\"\n @focus-month-year-picker=\"$refs.monthYearPicker.focusMonthYearPicker()\"\n @close-datepicker=\"$emit('close-datepicker')\"\n @go-to-next-month=\"$refs.monthYearPicker.goToNextMonth()\"\n @go-to-prev-month=\"$refs.monthYearPicker.goToPrevMonth()\"\n />\n </div>\n </dt-stack>\n</template>\n\n<script setup>\nimport MonthYearPicker from './modules/month-year-picker.vue';\nimport Calendar from './modules/calendar.vue';\nimport { DtStack } from '@/components/stack';\nimport { returnFirstEl, warnIfUnmounted } from '@/common/utils';\nimport { onMounted, ref, getCurrentInstance } from 'vue';\n\ndefineProps({\n /**\n * Selected date\n *\n * @type {Date}\n */\n selectedDate: {\n type: Date,\n default: () => (new Date()),\n },\n});\n\ndefineEmits([\n /**\n * Event fired when a date is selected\n *\n * @event selected-date\n * @type {Date}\n */\n 'selected-date',\n\n /**\n * Event fired when user presses the esc key\n *\n * @event close-datepicker\n */\n 'close-datepicker',\n]);\n\nconst calendarDays = ref([]);\n\nfunction updateCalendarDays (days) {\n calendarDays.value = days;\n}\n\nonMounted(() => {\n const instance = getCurrentInstance();\n warnIfUnmounted(returnFirstEl(instance.proxy.$el), 'datepicker');\n});\n</script>\n"],"names":["useMonthYearPicker","props","emits","selectMonth","ref","getMonth","selectYear","getYear","highlightedDay","focusPicker","focusRefs","i18n","DialtoneLocalization","calendarDays","computed","getCalendarDays","watch","highlightDay","formattedMonth","month","formatMonth","INTL_MONTH_FORMAT","setDayRef","el","focusMonthYearPicker","returnFirstEl","handleKeyDown","event","year","getDate","changeMonth","value","initialDate","set","newDate","addMonths","subMonths","changeYear","goToNextMonth","goToPrevMonth","previousYearAriaLabel","previousMonthAriaLabel","nextYearAriaLabel","nextMonthAriaLabel","__props","__emit","onMounted","__expose","useCalendar","selectedDay","focusDay","daysRef","weekDays","getWeekDayNames","WEEK_START","dayAriaLabel","day","formatDate","prevFocusDate","calculatePrevFocusDate","nextTick","nextFocusDate","calculateNextFocusDate","focusLastDay","focusFirstDay","selectDay","updateCalendarDays","days","instance","getCurrentInstance","warnIfUnmounted"],"mappings":"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"}
1
+ {"version":3,"file":"datepicker.cjs","sources":["../../../components/datepicker/composables/useMonthYearPicker.js","../../../components/datepicker/modules/month-year-picker.vue","../../../components/datepicker/composables/useCalendar.js","../../../components/datepicker/modules/calendar.vue","../../../components/datepicker/datepicker.vue"],"sourcesContent":["import { computed, ref, watch } from 'vue';\nimport { addMonths, getDate, getMonth, getYear, set, subMonths } from 'date-fns';\nimport { formatMonth, getCalendarDays } from '../utils.js';\nimport { INTL_MONTH_FORMAT } from '../datepicker_constants';\nimport { returnFirstEl } from '@/common/utils';\nimport { DialtoneLocalization } from '@/localization';\n\nexport function useMonthYearPicker (props, emits) {\n const selectMonth = ref(getMonth(props.selectedDate));\n const selectYear = ref(getYear(props.selectedDate));\n const highlightedDay = ref(null);\n const focusPicker = ref(0);\n const focusRefs = ref([]);\n const i18n = new DialtoneLocalization();\n\n const calendarDays = computed(() => {\n return getCalendarDays(selectMonth.value, selectYear.value, highlightedDay.value);\n });\n\n watch(selectMonth, () => {\n highlightDay();\n emits('calendar-days', calendarDays.value);\n }, { immediate: true });\n\n watch(selectYear, () => {\n highlightDay();\n emits('calendar-days', calendarDays.value);\n }, { immediate: true });\n\n function formattedMonth (month) {\n return formatMonth(month, INTL_MONTH_FORMAT, i18n.currentLocale);\n }\n\n function setDayRef (el) {\n if (!focusRefs.value.includes(el)) {\n focusRefs.value.push(el);\n }\n }\n\n function focusMonthYearPicker () {\n returnFirstEl(focusRefs.value[0].$el).focus();\n }\n\n function handleKeyDown (event) {\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault();\n if (focusPicker.value === 0) {\n focusPicker.value = 3;\n returnFirstEl(focusRefs.value[focusPicker.value].$el).focus();\n } else {\n focusPicker.value--;\n returnFirstEl(focusRefs.value[focusPicker.value].$el).focus();\n }\n break;\n\n case 'ArrowRight':\n event.preventDefault();\n if (focusPicker.value === 3) {\n focusPicker.value = 0;\n returnFirstEl(focusRefs.value[focusPicker.value].$el).focus();\n } else {\n focusPicker.value++;\n returnFirstEl(focusRefs.value[focusPicker.value].$el).focus();\n }\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n emits('focus-first-day');\n break;\n\n case 'Tab':\n event.preventDefault();\n emits('focus-first-day');\n break;\n\n case 'Escape':\n emits('close-datepicker');\n break;\n }\n }\n\n function highlightDay () {\n const year = getYear(props.selectedDate);\n const month = getMonth(props.selectedDate);\n\n if (year !== selectYear.value || month !== selectMonth.value) {\n highlightedDay.value = null;\n } else {\n highlightedDay.value = getDate(props.selectedDate);\n }\n }\n\n function changeMonth (value) {\n // Adjust year when changing from January to December or vice versa\n if ((selectMonth.value === 0 && value === -1) || (selectMonth.value === 11 && value === 1)) {\n selectYear.value += value;\n }\n\n // Calculate the new date by adding or subtracting months\n const initialDate = set(props.selectedDate, { month: selectMonth.value, year: selectYear.value });\n const newDate = value === 1 ? addMonths(initialDate, 1) : subMonths(initialDate, 1);\n\n // Update the selected month\n selectMonth.value = getMonth(newDate);\n }\n\n function changeYear (value) {\n selectYear.value = selectYear.value + value;\n }\n\n function goToNextMonth () {\n changeMonth(1);\n }\n\n function goToPrevMonth () {\n changeMonth(-1);\n }\n\n function previousYearAriaLabel () {\n return `${i18n.$t('DIALTONE_DATEPICKER_CHANGE_TO')} ${i18n.$t('DIALTONE_DATEPICKER_PREVIOUS_YEAR')} ${selectYear.value - 1}`;\n }\n\n function previousMonthAriaLabel () {\n return `${i18n.$t('DIALTONE_DATEPICKER_CHANGE_TO')} ${i18n.$t('DIALTONE_DATEPICKER_PREVIOUS_MONTH')} ${formattedMonth(selectMonth.value - 1)}`;\n }\n\n function nextYearAriaLabel () {\n return `${i18n.$t('DIALTONE_DATEPICKER_CHANGE_TO')} ${i18n.$t('DIALTONE_DATEPICKER_NEXT_YEAR')} ${selectYear.value + 1}`;\n }\n\n function nextMonthAriaLabel () {\n return `${i18n.$t('DIALTONE_DATEPICKER_CHANGE_TO')} ${i18n.$t('DIALTONE_DATEPICKER_NEXT_MONTH')} ${formattedMonth(selectMonth.value + 1)}`;\n }\n\n return {\n selectMonth,\n selectYear,\n formattedMonth,\n setDayRef,\n focusMonthYearPicker,\n handleKeyDown,\n changeMonth,\n changeYear,\n goToNextMonth,\n goToPrevMonth,\n previousYearAriaLabel,\n previousMonthAriaLabel,\n nextYearAriaLabel,\n nextMonthAriaLabel,\n };\n}\n","<template>\n <dt-stack\n class=\"d-datepicker__month-year\"\n direction=\"row\"\n gap=\"300\"\n >\n <dt-stack\n as=\"nav\"\n class=\"d-datepicker__nav\"\n direction=\"row\"\n gap=\"200\"\n >\n <dt-tooltip\n :fallback-placements=\"['top-start', 'auto']\"\n :message=\"i18n.$t('DIALTONE_DATEPICKER_PREVIOUS_YEAR')\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n id=\"prevYearButton\"\n :ref=\"el => { if (el) setDayRef(el) }\"\n :aria-label=\"previousYearAriaLabel()\"\n :circle=\"true\"\n class=\"d-datepicker__nav-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"xs\"\n type=\"button\"\n @click=\"changeYear(-1)\"\n @keydown=\"handleKeyDown($event)\"\n >\n <dt-icon-chevrons-left\n size=\"200\"\n />\n </dt-button>\n </template>\n </dt-tooltip>\n <dt-tooltip\n :fallback-placements=\"['top-start', 'auto']\"\n :message=\"i18n.$t('DIALTONE_DATEPICKER_PREVIOUS_MONTH')\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n id=\"prevMonthButton\"\n :ref=\"el => { if (el) setDayRef(el) }\"\n :aria-label=\"previousMonthAriaLabel()\"\n :circle=\"true\"\n class=\"d-datepicker__nav-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"xs\"\n type=\"button\"\n @click=\"changeMonth(-1)\"\n @keydown=\"handleKeyDown($event)\"\n >\n <dt-icon-chevron-left\n size=\"200\"\n />\n </dt-button>\n </template>\n </dt-tooltip>\n </dt-stack>\n <div\n id=\"calendar-heading\"\n class=\"d-datepicker__month-year-title\"\n >\n {{ formattedMonth(selectMonth) }}\n\n {{ selectYear }}\n </div>\n <dt-stack\n as=\"nav\"\n class=\"d-datepicker__nav\"\n direction=\"row\"\n gap=\"200\"\n >\n <dt-tooltip\n :fallback-placements=\"['top-end', 'auto']\"\n :message=\"i18n.$t('DIALTONE_DATEPICKER_NEXT_MONTH')\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n id=\"nextMonthButton\"\n :ref=\"el => { if (el) setDayRef(el) }\"\n :aria-label=\"nextMonthAriaLabel()\"\n :circle=\"true\"\n class=\"d-datepicker__nav-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"xs\"\n type=\"button\"\n @click=\"changeMonth(1)\"\n @keydown=\"handleKeyDown($event)\"\n >\n <dt-icon-chevron-right\n size=\"200\"\n />\n </dt-button>\n </template>\n </dt-tooltip>\n <dt-tooltip\n :fallback-placements=\"['top-end', 'auto']\"\n :message=\"i18n.$t('DIALTONE_DATEPICKER_NEXT_YEAR')\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n id=\"nextYearButton\"\n :ref=\"el => { if (el) setDayRef(el) }\"\n :aria-label=\"nextYearAriaLabel()\"\n :circle=\"true\"\n class=\"d-datepicker__nav-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"xs\"\n type=\"button\"\n @click=\"changeYear(1)\"\n @keydown=\"handleKeyDown($event)\"\n >\n <dt-icon-chevrons-right\n size=\"200\"\n />\n </dt-button>\n </template>\n </dt-tooltip>\n </dt-stack>\n </dt-stack>\n</template>\n\n<script setup>\nimport {\n DtIconChevronLeft,\n DtIconChevronsLeft,\n DtIconChevronRight,\n DtIconChevronsRight,\n} from '@dialpad/dialtone-icons/vue3';\nimport { DtStack } from '@/components/stack';\nimport { DtButton } from '@/components/button';\nimport { DtTooltip } from '@/components/tooltip';\nimport { onMounted } from 'vue';\nimport { useMonthYearPicker } from '../composables/useMonthYearPicker.js';\nimport { DialtoneLocalization } from '@/localization';\n\nconst props = defineProps({\n selectedDate: {\n type: Date,\n required: true,\n },\n});\n\nconst emits = defineEmits([\n /**\n * Will retrieve the calendar days of the given date\n *\n * @event calendar-days\n * @type {Array}\n */\n 'calendar-days',\n\n /**\n * Will focus first day in calendar\n *\n * @event focus-first-day\n */\n 'focus-first-day',\n\n /**\n * Will focus last day in calendar\n *\n * @event focus-last-day\n */\n 'focus-last-day',\n\n /**\n * Will close the datepicker\n *\n * @event close-datepicker\n */\n 'close-datepicker',\n]);\n\nconst i18n = new DialtoneLocalization();\n\nconst {\n selectMonth,\n selectYear,\n formattedMonth,\n setDayRef,\n focusMonthYearPicker,\n handleKeyDown,\n changeMonth,\n changeYear,\n goToNextMonth,\n goToPrevMonth,\n previousYearAriaLabel,\n previousMonthAriaLabel,\n nextMonthAriaLabel,\n nextYearAriaLabel,\n} = useMonthYearPicker(props, emits);\n\nonMounted(() => {\n focusMonthYearPicker();\n});\n\ndefineExpose({\n focusMonthYearPicker,\n goToNextMonth,\n goToPrevMonth,\n});\n</script>\n","import { computed, ref, watch, nextTick } from 'vue';\nimport { getWeekDayNames, calculateNextFocusDate, calculatePrevFocusDate, formatDate } from '../utils.js';\nimport { INTL_MONTH_FORMAT, WEEK_START } from '../datepicker_constants.js';\nimport { returnFirstEl } from '@/common/utils';\nimport { DialtoneLocalization } from '@/localization';\n\nexport function useCalendar (props, emits) {\n const selectedDay = ref(null);\n const focusDay = ref(0);\n const daysRef = ref([]);\n const i18n = new DialtoneLocalization();\n\n const weekDays = computed(() => {\n return getWeekDayNames(props.locale, WEEK_START);\n });\n\n watch(() => props.calendarDays, () => {\n focusDay.value = 0;\n daysRef.value = [];\n selectedDay.value = null;\n });\n\n function dayAriaLabel (day) {\n return i18n.$t('DIALTONE_DATEPICKER_SELECT_DAY') + ` ${formatDate(day.value, INTL_MONTH_FORMAT, i18n.currentLocale)}`;\n }\n\n function setDayRef (el, day) {\n if (!daysRef.value.some(day => day.el === el) && day.currentMonth) {\n daysRef.value.push({ el, day });\n }\n }\n\n function handleKeyDown (event) {\n switch (event.key) {\n case 'ArrowUp':\n event.preventDefault();\n focusDay.value -= 7;\n try {\n returnFirstEl(daysRef.value[focusDay.value].el.$el).focus();\n } catch {\n const prevFocusDate = calculatePrevFocusDate(daysRef.value[focusDay.value + 7].day.value);\n emits('go-to-prev-month');\n\n nextTick(() => {\n returnFirstEl(daysRef.value[prevFocusDate - 1].el.$el).focus();\n focusDay.value += prevFocusDate - 1;\n });\n }\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n focusDay.value += 7;\n try {\n returnFirstEl(daysRef.value[focusDay.value].el.$el).focus();\n } catch {\n const nextFocusDate = calculateNextFocusDate(daysRef.value[focusDay.value - 7].day.value);\n emits('go-to-next-month');\n\n nextTick(() => {\n returnFirstEl(daysRef.value[nextFocusDate - 1].el.$el).focus();\n focusDay.value += nextFocusDate - 1;\n });\n }\n break;\n\n case 'ArrowLeft':\n event.preventDefault();\n if (focusDay.value > 0) {\n focusDay.value -= 1;\n returnFirstEl(daysRef.value[focusDay.value].el.$el).focus();\n } else {\n // if we are on month first day, jump to last day of prev month\n emits('go-to-prev-month');\n focusLastDay();\n }\n break;\n\n case 'ArrowRight':\n event.preventDefault();\n if (focusDay.value < daysRef.value.length - 1) {\n focusDay.value += 1;\n returnFirstEl(daysRef.value[focusDay.value].el.$el).focus();\n } else {\n // if we are on month last day, jump to first day of next month\n emits('go-to-next-month');\n\n focusFirstDay();\n }\n break;\n\n case 'Tab':\n event.preventDefault();\n emits('focus-month-year-picker');\n break;\n\n case 'Escape':\n emits('close-datepicker');\n break;\n }\n }\n\n function focusFirstDay () {\n focusDay.value = 0;\n\n nextTick(() => {\n returnFirstEl(daysRef.value[focusDay.value].el.$el).focus();\n });\n }\n\n function focusLastDay () {\n nextTick(() => {\n focusDay.value = daysRef.value.length - 1;\n returnFirstEl(daysRef.value[focusDay.value].el.$el).focus();\n });\n }\n\n function selectDay (day) {\n if (!day.currentMonth) { return; }\n\n // local selectedDay is updated when a day is selected\n selectedDay.value = day.text;\n emits('select-date', day.value);\n }\n\n return {\n selectedDay,\n weekDays,\n dayAriaLabel,\n setDayRef,\n handleKeyDown,\n focusFirstDay,\n selectDay,\n };\n}\n","<template>\n <table\n class=\"d-datepicker__calendar\"\n aria-labelledby=\"calendar-heading\"\n >\n <thead>\n <tr>\n <th\n v-for=\"day in weekDays\"\n :key=\"day\"\n scope=\"col\"\n class=\"d-datepicker__cell d-datepicker__cell--header\"\n >\n <span\n class=\"d-datepicker__weekday\"\n :title=\"day\"\n :aria-label=\"day\"\n > {{ day }}</span>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n v-for=\"(week, indexWeek) in calendarDays\"\n :key=\"indexWeek\"\n >\n <td\n v-for=\"(day, indexDays) in week.days\"\n :key=\"indexWeek + indexDays\"\n class=\"d-datepicker__cell\"\n role=\"listbox\"\n >\n <dt-button\n :ref=\"el => { if (el) setDayRef(el, day) }\"\n class=\"d-datepicker__day\"\n :circle=\"true\"\n size=\"sm\"\n importance=\"clear\"\n :disabled=\"!day.currentMonth\"\n :class=\"{\n 'd-datepicker__day--disabled': !day.currentMonth,\n 'd-datepicker__day--selected': selectedDay\n ? ((day.text === selectedDay) && day.currentMonth)\n : day.selected,\n }\"\n type=\"button\"\n :aria-selected=\"!!selectedDay ? ((day.text === selectedDay) && day.currentMonth) : day.selected\"\n :aria-label=\"dayAriaLabel(day)\"\n role=\"option\"\n @click=\"selectDay(day)\"\n @keydown=\"handleKeyDown($event)\"\n >\n {{ day.text }}\n </dt-button>\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script setup>\nimport { useCalendar } from '../composables/useCalendar.js';\nimport { DtButton } from '@/components/button';\n\nconst props = defineProps({\n calendarDays: {\n type: Array,\n required: true,\n },\n});\n\nconst emits = defineEmits([\n /**\n * Event fired when a date is selected\n *\n * @event select-date\n * @type {Date}\n */\n 'select-date',\n\n /**\n * Will focus the month and year picker\n *\n * @event focus-month-year-picker\n */\n 'focus-month-year-picker',\n\n /**\n * Will close the datepicker\n *\n * @event close-datepicker\n */\n 'close-datepicker',\n\n /**\n * Will go to the next month\n *\n * @event go-to-next-month\n */\n 'go-to-next-month',\n\n /**\n * Will go to the previous month\n *\n * @event go-to-prev-month\n */\n 'go-to-prev-month',\n]);\n\nconst {\n selectedDay,\n weekDays,\n dayAriaLabel,\n setDayRef,\n handleKeyDown,\n focusFirstDay,\n selectDay,\n} = useCalendar(props, emits);\n\ndefineExpose({\n focusFirstDay,\n});\n</script>\n","<!-- eslint-disable vue/multi-word-component-names -->\n<template>\n <dt-stack\n class=\"d-datepicker\"\n gap=\"400\"\n >\n <div class=\"d-datepicker__hd\">\n <month-year-picker\n ref=\"monthYearPicker\"\n :selected-date=\"selectedDate\"\n @calendar-days=\"updateCalendarDays\"\n @focus-first-day=\"$refs.calendar.focusFirstDay()\"\n @focus-last-day=\"$refs.calendar.focusLastDay()\"\n @close-datepicker=\"$emit('close-datepicker')\"\n />\n </div>\n <div class=\"d-datepicker__bd\">\n <calendar\n ref=\"calendar\"\n :calendar-days=\"calendarDays\"\n @select-date=\"$emit('selected-date', $event)\"\n @focus-month-year-picker=\"$refs.monthYearPicker.focusMonthYearPicker()\"\n @close-datepicker=\"$emit('close-datepicker')\"\n @go-to-next-month=\"$refs.monthYearPicker.goToNextMonth()\"\n @go-to-prev-month=\"$refs.monthYearPicker.goToPrevMonth()\"\n />\n </div>\n </dt-stack>\n</template>\n\n<script setup>\nimport MonthYearPicker from './modules/month-year-picker.vue';\nimport Calendar from './modules/calendar.vue';\nimport { DtStack } from '@/components/stack';\nimport { returnFirstEl, warnIfUnmounted } from '@/common/utils';\nimport { onMounted, ref, getCurrentInstance } from 'vue';\n\ndefineProps({\n /**\n * Selected date\n *\n * @type {Date}\n */\n selectedDate: {\n type: Date,\n default: () => (new Date()),\n },\n});\n\ndefineEmits([\n /**\n * Event fired when a date is selected\n *\n * @event selected-date\n * @type {Date}\n */\n 'selected-date',\n\n /**\n * Event fired when user presses the esc key\n *\n * @event close-datepicker\n */\n 'close-datepicker',\n]);\n\nconst calendarDays = ref([]);\n\nfunction updateCalendarDays (days) {\n calendarDays.value = days;\n}\n\nonMounted(() => {\n const instance = getCurrentInstance();\n warnIfUnmounted(returnFirstEl(instance.proxy.$el), 'datepicker');\n});\n</script>\n"],"names":["useMonthYearPicker","props","emits","selectMonth","ref","getMonth","selectYear","getYear","highlightedDay","focusPicker","focusRefs","i18n","DialtoneLocalization","calendarDays","computed","getCalendarDays","watch","highlightDay","formattedMonth","month","formatMonth","INTL_MONTH_FORMAT","setDayRef","el","focusMonthYearPicker","returnFirstEl","handleKeyDown","event","year","getDate","changeMonth","value","initialDate","set","newDate","addMonths","subMonths","changeYear","goToNextMonth","goToPrevMonth","previousYearAriaLabel","previousMonthAriaLabel","nextYearAriaLabel","nextMonthAriaLabel","__props","__emit","onMounted","__expose","_createBlock","_unref","DtStack","_createVNode","DtTooltip","DtButton","_cache","$event","DtIconChevronsLeft","DtIconChevronLeft","_createElementVNode","_hoisted_1","_toDisplayString","DtIconChevronRight","DtIconChevronsRight","useCalendar","selectedDay","focusDay","daysRef","weekDays","getWeekDayNames","WEEK_START","dayAriaLabel","day","formatDate","prevFocusDate","calculatePrevFocusDate","nextTick","nextFocusDate","calculateNextFocusDate","focusLastDay","focusFirstDay","selectDay","_openBlock","_createElementBlock","_Fragment","_renderList","_hoisted_2","week","indexWeek","indexDays","_createTextVNode","updateCalendarDays","days","instance","getCurrentInstance","warnIfUnmounted","MonthYearPicker","$refs","$emit","Calendar"],"mappings":"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"}