@dialpad/dialtone-vue 2.127.0 → 2.127.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (422) hide show
  1. package/dist/chunks/_plugin-vue2_normalizer-1aBeR4AK.js +59 -0
  2. package/dist/chunks/_plugin-vue2_normalizer-1aBeR4AK.js.map +1 -0
  3. package/dist/chunks/_plugin-vue2_normalizer-sOSkiPF3.js +60 -0
  4. package/dist/chunks/_plugin-vue2_normalizer-sOSkiPF3.js.map +1 -0
  5. package/dist/chunks/{dropdown-SMWaTWyF.js → dropdown-DTtcQEFC.js} +131 -84
  6. package/dist/chunks/{dropdown-SMWaTWyF.js.map → dropdown-DTtcQEFC.js.map} +1 -1
  7. package/dist/chunks/dropdown-IaLNHmVd.js +403 -0
  8. package/dist/chunks/{dropdown-zhMEz3bn.js.map → dropdown-IaLNHmVd.js.map} +1 -1
  9. package/dist/chunks/dropdown_constants-2pGCXy7m.js +8 -0
  10. package/dist/chunks/dropdown_constants-2pGCXy7m.js.map +1 -0
  11. package/dist/chunks/dropdown_constants-w1MXGC3Z.js +9 -0
  12. package/dist/chunks/dropdown_constants-w1MXGC3Z.js.map +1 -0
  13. package/dist/chunks/{icon_constants-OpYAAKwF.js → icon_constants-Dy4MEUJL.js} +7 -6
  14. package/dist/chunks/{icon_constants-2S_OSQ1t.js.map → icon_constants-Dy4MEUJL.js.map} +1 -1
  15. package/dist/chunks/icon_constants-QYpmdE0R.js +16 -0
  16. package/dist/chunks/{icon_constants-OpYAAKwF.js.map → icon_constants-QYpmdE0R.js.map} +1 -1
  17. package/dist/chunks/index-eJ-WWRdf.js +442 -0
  18. package/dist/chunks/{index-2jPosQBn.js.map → index-eJ-WWRdf.js.map} +1 -1
  19. package/dist/chunks/index-gj1jEXP4.js +441 -0
  20. package/dist/chunks/{index-nIyl_PL6.js.map → index-gj1jEXP4.js.map} +1 -1
  21. package/dist/chunks/{input-1tm09l_-.js → input-6kbd8Pju.js} +83 -60
  22. package/dist/chunks/{input-o-fc1X4b.js.map → input-6kbd8Pju.js.map} +1 -1
  23. package/dist/chunks/input-Axw-wFj2.js +295 -0
  24. package/dist/chunks/{input-1tm09l_-.js.map → input-Axw-wFj2.js.map} +1 -1
  25. package/dist/chunks/input_group-m3cWYUfI.js +143 -0
  26. package/dist/chunks/{input_group-zcAq3DQl.js.map → input_group-m3cWYUfI.js.map} +1 -1
  27. package/dist/chunks/{input_group-zcAq3DQl.js → input_group-qVZaS5Bb.js} +27 -24
  28. package/dist/chunks/{input_group-j2gTtc1C.js.map → input_group-qVZaS5Bb.js.map} +1 -1
  29. package/dist/chunks/keyboard_list_navigation-ScXhrxya.js +284 -0
  30. package/dist/chunks/{keyboard_list_navigation-N74Bpdq7.js.map → keyboard_list_navigation-ScXhrxya.js.map} +1 -1
  31. package/dist/chunks/keyboard_list_navigation-fJnl_Iox.js +283 -0
  32. package/dist/chunks/{keyboard_list_navigation-F0O8nht0.js.map → keyboard_list_navigation-fJnl_Iox.js.map} +1 -1
  33. package/dist/chunks/link_constants-Huj7D_hm.js +22 -0
  34. package/dist/chunks/{link_constants-Kn6kP4i1.js.map → link_constants-Huj7D_hm.js.map} +1 -1
  35. package/dist/chunks/link_constants-nWVlXQBs.js +23 -0
  36. package/dist/chunks/{link_constants-vIUB92L4.js.map → link_constants-nWVlXQBs.js.map} +1 -1
  37. package/dist/chunks/list_item_constants-EiqkqZvP.js +13 -0
  38. package/dist/chunks/{list_item_constants-Tsz5CO1m.js.map → list_item_constants-EiqkqZvP.js.map} +1 -1
  39. package/dist/chunks/list_item_constants-u1xcN9Dd.js +14 -0
  40. package/dist/chunks/{list_item_constants-LTUc74pD.js.map → list_item_constants-u1xcN9Dd.js.map} +1 -1
  41. package/dist/chunks/modal-VgxXAQFP.js +105 -0
  42. package/dist/chunks/{modal-qEzlo0Sj.js.map → modal-VgxXAQFP.js.map} +1 -1
  43. package/dist/chunks/modal-XOr4kiNZ.js +106 -0
  44. package/dist/chunks/{modal-VuMFkZFH.js.map → modal-XOr4kiNZ.js.map} +1 -1
  45. package/dist/chunks/notice_action-IRUoLX2d.js +196 -0
  46. package/dist/chunks/{notice_action-u3ZKIhit.js.map → notice_action-IRUoLX2d.js.map} +1 -1
  47. package/dist/chunks/notice_action-P6uDyE9x.js +195 -0
  48. package/dist/chunks/{notice_action-9NmtQRai.js.map → notice_action-P6uDyE9x.js.map} +1 -1
  49. package/dist/chunks/notice_constants-7Qt2CQEY.js +7 -0
  50. package/dist/chunks/{notice_constants-mC6al2Dm.js.map → notice_constants-7Qt2CQEY.js.map} +1 -1
  51. package/dist/chunks/notice_constants-UXo9e3bS.js +6 -0
  52. package/dist/chunks/{notice_constants-c--hBFQw.js.map → notice_constants-UXo9e3bS.js.map} +1 -1
  53. package/dist/chunks/popover_constants-JwBF9h1Z.js +143 -0
  54. package/dist/chunks/{popover_constants-hOEhklvr.js.map → popover_constants-JwBF9h1Z.js.map} +1 -1
  55. package/dist/chunks/popover_constants-Qkpb0yh2.js +144 -0
  56. package/dist/chunks/{popover_constants-qjlEkroB.js.map → popover_constants-Qkpb0yh2.js.map} +1 -1
  57. package/dist/chunks/sr_only_close_button-81bHIpPu.js +95 -0
  58. package/dist/chunks/{sr_only_close_button-ErijKGYR.js.map → sr_only_close_button-81bHIpPu.js.map} +1 -1
  59. package/dist/chunks/sr_only_close_button-ZaGdAHz7.js +94 -0
  60. package/dist/chunks/{sr_only_close_button-JGole5Xi.js.map → sr_only_close_button-ZaGdAHz7.js.map} +1 -1
  61. package/dist/chunks/stack_constants-HraCekPm.js +15 -0
  62. package/dist/chunks/{stack_constants-m9Ickqw0.js.map → stack_constants-HraCekPm.js.map} +1 -1
  63. package/dist/chunks/stack_constants-SMzMWnAQ.js +14 -0
  64. package/dist/chunks/{stack_constants-u7tNqGtc.js.map → stack_constants-SMzMWnAQ.js.map} +1 -1
  65. package/dist/chunks/tab-FcsV5VmK.js +386 -0
  66. package/dist/chunks/{tab-7hJQSLFx.js.map → tab-FcsV5VmK.js.map} +1 -1
  67. package/dist/chunks/tab-V4cb44Ry.js +387 -0
  68. package/dist/chunks/{tab-Qm9LVkYj.js.map → tab-V4cb44Ry.js.map} +1 -1
  69. package/dist/common/constants.cjs +60 -0
  70. package/dist/{lib → common}/constants.cjs.map +1 -1
  71. package/dist/{lib → common}/constants.js +25 -18
  72. package/dist/{lib → common}/constants.js.map +1 -1
  73. package/dist/common/dates.cjs +72 -0
  74. package/dist/{lib → common}/dates.cjs.map +1 -1
  75. package/dist/common/dates.js +72 -0
  76. package/dist/{lib → common}/dates.js.map +1 -1
  77. package/dist/common/emoji.cjs +163 -0
  78. package/dist/common/emoji.cjs.map +1 -0
  79. package/dist/common/emoji.js +168 -0
  80. package/dist/common/emoji.js.map +1 -0
  81. package/dist/common/mixins.cjs +17 -0
  82. package/dist/{lib → common}/mixins.cjs.map +1 -1
  83. package/dist/common/mixins.js +17 -0
  84. package/dist/common/utils.cjs +237 -0
  85. package/dist/{lib → common}/utils.cjs.map +1 -1
  86. package/dist/common/utils.js +237 -0
  87. package/dist/{lib → common}/utils.js.map +1 -1
  88. package/dist/common/validators.cjs +23 -0
  89. package/dist/{lib → common}/validators.cjs.map +1 -1
  90. package/dist/common/validators.js +23 -0
  91. package/dist/{lib → common}/validators.js.map +1 -1
  92. package/dist/dialtone-vue.cjs +372 -1
  93. package/dist/dialtone-vue.cjs.map +1 -1
  94. package/dist/dialtone-vue.js +325 -324
  95. package/dist/dialtone-vue.js.map +1 -1
  96. package/dist/lib/attachment-carousel.cjs +260 -1
  97. package/dist/lib/attachment-carousel.cjs.map +1 -1
  98. package/dist/lib/attachment-carousel.js +96 -84
  99. package/dist/lib/attachment-carousel.js.map +1 -1
  100. package/dist/lib/avatar.cjs +399 -1
  101. package/dist/lib/avatar.cjs.map +1 -1
  102. package/dist/lib/avatar.js +111 -79
  103. package/dist/lib/avatar.js.map +1 -1
  104. package/dist/lib/badge.cjs +182 -1
  105. package/dist/lib/badge.cjs.map +1 -1
  106. package/dist/lib/badge.js +53 -38
  107. package/dist/lib/badge.js.map +1 -1
  108. package/dist/lib/banner.cjs +209 -2
  109. package/dist/lib/banner.cjs.map +1 -1
  110. package/dist/lib/banner.js +58 -47
  111. package/dist/lib/banner.js.map +1 -1
  112. package/dist/lib/breadcrumbs.cjs +146 -1
  113. package/dist/lib/breadcrumbs.cjs.map +1 -1
  114. package/dist/lib/breadcrumbs.js +57 -48
  115. package/dist/lib/breadcrumbs.js.map +1 -1
  116. package/dist/lib/button-group.cjs +47 -1
  117. package/dist/lib/button-group.cjs.map +1 -1
  118. package/dist/lib/button-group.js +21 -18
  119. package/dist/lib/button-group.js.map +1 -1
  120. package/dist/lib/button.cjs +349 -1
  121. package/dist/lib/button.cjs.map +1 -1
  122. package/dist/lib/button.js +98 -76
  123. package/dist/lib/button.js.map +1 -1
  124. package/dist/lib/callbar-button-with-popover.cjs +249 -1
  125. package/dist/lib/callbar-button-with-popover.cjs.map +1 -1
  126. package/dist/lib/callbar-button-with-popover.js +66 -50
  127. package/dist/lib/callbar-button-with-popover.js.map +1 -1
  128. package/dist/lib/callbar-button.cjs +182 -1
  129. package/dist/lib/callbar-button.cjs.map +1 -1
  130. package/dist/lib/callbar-button.js +42 -34
  131. package/dist/lib/callbar-button.js.map +1 -1
  132. package/dist/lib/callbox.cjs +146 -1
  133. package/dist/lib/callbox.cjs.map +1 -1
  134. package/dist/lib/callbox.js +38 -32
  135. package/dist/lib/callbox.js.map +1 -1
  136. package/dist/lib/card.cjs +73 -1
  137. package/dist/lib/card.cjs.map +1 -1
  138. package/dist/lib/card.js +22 -20
  139. package/dist/lib/card.js.map +1 -1
  140. package/dist/lib/checkbox-group.cjs +129 -1
  141. package/dist/lib/checkbox-group.cjs.map +1 -1
  142. package/dist/lib/checkbox-group.js +42 -29
  143. package/dist/lib/checkbox-group.js.map +1 -1
  144. package/dist/lib/checkbox.cjs +127 -1
  145. package/dist/lib/checkbox.cjs.map +1 -1
  146. package/dist/lib/checkbox.js +46 -35
  147. package/dist/lib/checkbox.js.map +1 -1
  148. package/dist/lib/chip.cjs +198 -1
  149. package/dist/lib/chip.cjs.map +1 -1
  150. package/dist/lib/chip.js +59 -45
  151. package/dist/lib/chip.js.map +1 -1
  152. package/dist/lib/codeblock.cjs +29 -2
  153. package/dist/lib/codeblock.cjs.map +1 -1
  154. package/dist/lib/codeblock.js +15 -14
  155. package/dist/lib/codeblock.js.map +1 -1
  156. package/dist/lib/collapsible.cjs +334 -1
  157. package/dist/lib/collapsible.cjs.map +1 -1
  158. package/dist/lib/collapsible.js +91 -68
  159. package/dist/lib/collapsible.js.map +1 -1
  160. package/dist/lib/combobox-multi-select.cjs +519 -1
  161. package/dist/lib/combobox-multi-select.cjs.map +1 -1
  162. package/dist/lib/combobox-multi-select.js +223 -136
  163. package/dist/lib/combobox-multi-select.js.map +1 -1
  164. package/dist/lib/combobox-with-popover.cjs +384 -1
  165. package/dist/lib/combobox-with-popover.cjs.map +1 -1
  166. package/dist/lib/combobox-with-popover.js +130 -86
  167. package/dist/lib/combobox-with-popover.js.map +1 -1
  168. package/dist/lib/combobox.cjs +18 -1
  169. package/dist/lib/combobox.cjs.map +1 -1
  170. package/dist/lib/combobox.js +9 -9
  171. package/dist/lib/contact-info.cjs +145 -1
  172. package/dist/lib/contact-info.cjs.map +1 -1
  173. package/dist/lib/contact-info.js +34 -32
  174. package/dist/lib/contact-info.js.map +1 -1
  175. package/dist/lib/contact-row.cjs +205 -1
  176. package/dist/lib/contact-row.cjs.map +1 -1
  177. package/dist/lib/contact-row.js +42 -39
  178. package/dist/lib/contact-row.js.map +1 -1
  179. package/dist/lib/datepicker.cjs +662 -1
  180. package/dist/lib/datepicker.cjs.map +1 -1
  181. package/dist/lib/datepicker.js +330 -218
  182. package/dist/lib/datepicker.js.map +1 -1
  183. package/dist/lib/description-list.cjs +114 -1
  184. package/dist/lib/description-list.cjs.map +1 -1
  185. package/dist/lib/description-list.js +51 -19
  186. package/dist/lib/description-list.js.map +1 -1
  187. package/dist/lib/dropdown.cjs +45 -1
  188. package/dist/lib/dropdown.cjs.map +1 -1
  189. package/dist/lib/dropdown.js +27 -25
  190. package/dist/lib/dropdown.js.map +1 -1
  191. package/dist/lib/editor.cjs +555 -1
  192. package/dist/lib/editor.cjs.map +1 -1
  193. package/dist/lib/editor.js +191 -162
  194. package/dist/lib/editor.js.map +1 -1
  195. package/dist/lib/emoji-picker.cjs +1063 -1
  196. package/dist/lib/emoji-picker.cjs.map +1 -1
  197. package/dist/lib/emoji-picker.js +638 -374
  198. package/dist/lib/emoji-picker.js.map +1 -1
  199. package/dist/lib/emoji-row.cjs +88 -1
  200. package/dist/lib/emoji-row.cjs.map +1 -1
  201. package/dist/lib/emoji-row.js +46 -40
  202. package/dist/lib/emoji-row.js.map +1 -1
  203. package/dist/lib/emoji-text-wrapper.cjs +109 -1
  204. package/dist/lib/emoji-text-wrapper.cjs.map +1 -1
  205. package/dist/lib/emoji-text-wrapper.js +49 -35
  206. package/dist/lib/emoji-text-wrapper.js.map +1 -1
  207. package/dist/lib/emoji.cjs +145 -1
  208. package/dist/lib/emoji.cjs.map +1 -1
  209. package/dist/lib/emoji.js +140 -5
  210. package/dist/lib/emoji.js.map +1 -1
  211. package/dist/lib/feed-item-row.cjs +213 -1
  212. package/dist/lib/feed-item-row.cjs.map +1 -1
  213. package/dist/lib/feed-item-row.js +71 -63
  214. package/dist/lib/feed-item-row.js.map +1 -1
  215. package/dist/lib/feed-pill.cjs +149 -1
  216. package/dist/lib/feed-pill.cjs.map +1 -1
  217. package/dist/lib/feed-pill.js +60 -51
  218. package/dist/lib/feed-pill.js.map +1 -1
  219. package/dist/lib/general-row.cjs +405 -1
  220. package/dist/lib/general-row.cjs.map +1 -1
  221. package/dist/lib/general-row.js +133 -106
  222. package/dist/lib/general-row.js.map +1 -1
  223. package/dist/lib/group-row.cjs +117 -1
  224. package/dist/lib/group-row.cjs.map +1 -1
  225. package/dist/lib/group-row.js +33 -30
  226. package/dist/lib/group-row.js.map +1 -1
  227. package/dist/lib/grouped-chip.cjs +45 -1
  228. package/dist/lib/grouped-chip.cjs.map +1 -1
  229. package/dist/lib/grouped-chip.js +28 -26
  230. package/dist/lib/grouped-chip.js.map +1 -1
  231. package/dist/lib/hovercard.cjs +227 -1
  232. package/dist/lib/hovercard.cjs.map +1 -1
  233. package/dist/lib/hovercard.js +98 -63
  234. package/dist/lib/hovercard.js.map +1 -1
  235. package/dist/lib/icon.cjs +59 -1
  236. package/dist/lib/icon.cjs.map +1 -1
  237. package/dist/lib/icon.js +22 -20
  238. package/dist/lib/icon.js.map +1 -1
  239. package/dist/lib/image-viewer.cjs +190 -1
  240. package/dist/lib/image-viewer.cjs.map +1 -1
  241. package/dist/lib/image-viewer.js +83 -62
  242. package/dist/lib/image-viewer.js.map +1 -1
  243. package/dist/lib/input-group.cjs +91 -1
  244. package/dist/lib/input-group.cjs.map +1 -1
  245. package/dist/lib/input-group.js +29 -27
  246. package/dist/lib/input-group.js.map +1 -1
  247. package/dist/lib/input.cjs +492 -1
  248. package/dist/lib/input.cjs.map +1 -1
  249. package/dist/lib/input.js +127 -89
  250. package/dist/lib/input.js.map +1 -1
  251. package/dist/lib/item-layout.cjs +40 -1
  252. package/dist/lib/item-layout.cjs.map +1 -1
  253. package/dist/lib/item-layout.js +15 -13
  254. package/dist/lib/item-layout.js.map +1 -1
  255. package/dist/lib/ivr-node.cjs +209 -1
  256. package/dist/lib/ivr-node.cjs.map +1 -1
  257. package/dist/lib/ivr-node.js +115 -99
  258. package/dist/lib/ivr-node.js.map +1 -1
  259. package/dist/lib/keyboard-shortcut.cjs +106 -1
  260. package/dist/lib/keyboard-shortcut.cjs.map +1 -1
  261. package/dist/lib/keyboard-shortcut.js +42 -34
  262. package/dist/lib/keyboard-shortcut.js.map +1 -1
  263. package/dist/lib/lazy-show.cjs +80 -1
  264. package/dist/lib/lazy-show.cjs.map +1 -1
  265. package/dist/lib/lazy-show.js +20 -16
  266. package/dist/lib/lazy-show.js.map +1 -1
  267. package/dist/lib/link.cjs +70 -1
  268. package/dist/lib/link.cjs.map +1 -1
  269. package/dist/lib/link.js +22 -20
  270. package/dist/lib/link.js.map +1 -1
  271. package/dist/lib/list-item-group.cjs +60 -1
  272. package/dist/lib/list-item-group.cjs.map +1 -1
  273. package/dist/lib/list-item-group.js +19 -17
  274. package/dist/lib/list-item-group.js.map +1 -1
  275. package/dist/lib/list-item.cjs +204 -1
  276. package/dist/lib/list-item.cjs.map +1 -1
  277. package/dist/lib/list-item.js +67 -56
  278. package/dist/lib/list-item.js.map +1 -1
  279. package/dist/lib/message-input.cjs +554 -1
  280. package/dist/lib/message-input.cjs.map +1 -1
  281. package/dist/lib/message-input.js +174 -152
  282. package/dist/lib/message-input.js.map +1 -1
  283. package/dist/lib/modal.cjs +350 -2
  284. package/dist/lib/modal.cjs.map +1 -1
  285. package/dist/lib/modal.js +118 -90
  286. package/dist/lib/modal.js.map +1 -1
  287. package/dist/lib/notice.cjs +159 -1
  288. package/dist/lib/notice.cjs.map +1 -1
  289. package/dist/lib/notice.js +46 -43
  290. package/dist/lib/notice.js.map +1 -1
  291. package/dist/lib/pagination.cjs +152 -1
  292. package/dist/lib/pagination.cjs.map +1 -1
  293. package/dist/lib/pagination.js +60 -48
  294. package/dist/lib/pagination.js.map +1 -1
  295. package/dist/lib/popover.cjs +956 -1
  296. package/dist/lib/popover.cjs.map +1 -1
  297. package/dist/lib/popover.js +401 -221
  298. package/dist/lib/popover.js.map +1 -1
  299. package/dist/lib/presence.cjs +65 -1
  300. package/dist/lib/presence.cjs.map +1 -1
  301. package/dist/lib/presence.js +32 -26
  302. package/dist/lib/presence.js.map +1 -1
  303. package/dist/lib/radio-group.cjs +98 -1
  304. package/dist/lib/radio-group.cjs.map +1 -1
  305. package/dist/lib/radio-group.js +24 -22
  306. package/dist/lib/radio-group.js.map +1 -1
  307. package/dist/lib/radio.cjs +118 -1
  308. package/dist/lib/radio.cjs.map +1 -1
  309. package/dist/lib/radio.js +43 -35
  310. package/dist/lib/radio.js.map +1 -1
  311. package/dist/lib/rich-text-editor.cjs +1138 -1
  312. package/dist/lib/rich-text-editor.cjs.map +1 -1
  313. package/dist/lib/rich-text-editor.js +574 -387
  314. package/dist/lib/rich-text-editor.js.map +1 -1
  315. package/dist/lib/root-layout.cjs +130 -1
  316. package/dist/lib/root-layout.cjs.map +1 -1
  317. package/dist/lib/root-layout.js +28 -24
  318. package/dist/lib/root-layout.js.map +1 -1
  319. package/dist/lib/select-menu.cjs +282 -1
  320. package/dist/lib/select-menu.cjs.map +1 -1
  321. package/dist/lib/select-menu.js +101 -61
  322. package/dist/lib/select-menu.js.map +1 -1
  323. package/dist/lib/settings-menu-button.cjs +65 -1
  324. package/dist/lib/settings-menu-button.cjs.map +1 -1
  325. package/dist/lib/settings-menu-button.js +26 -24
  326. package/dist/lib/settings-menu-button.js.map +1 -1
  327. package/dist/lib/skeleton.cjs +612 -1
  328. package/dist/lib/skeleton.cjs.map +1 -1
  329. package/dist/lib/skeleton.js +174 -135
  330. package/dist/lib/skeleton.js.map +1 -1
  331. package/dist/lib/stack.cjs +127 -1
  332. package/dist/lib/stack.cjs.map +1 -1
  333. package/dist/lib/stack.js +66 -56
  334. package/dist/lib/stack.js.map +1 -1
  335. package/dist/lib/tabs.cjs +99 -1
  336. package/dist/lib/tabs.cjs.map +1 -1
  337. package/dist/lib/tabs.js +42 -35
  338. package/dist/lib/tabs.js.map +1 -1
  339. package/dist/lib/time-pill.cjs +47 -1
  340. package/dist/lib/time-pill.cjs.map +1 -1
  341. package/dist/lib/time-pill.js +21 -16
  342. package/dist/lib/time-pill.js.map +1 -1
  343. package/dist/lib/toast.cjs +247 -1
  344. package/dist/lib/toast.cjs.map +1 -1
  345. package/dist/lib/toast.js +78 -55
  346. package/dist/lib/toast.js.map +1 -1
  347. package/dist/lib/toggle.cjs +177 -1
  348. package/dist/lib/toggle.cjs.map +1 -1
  349. package/dist/lib/toggle.js +46 -37
  350. package/dist/lib/toggle.js.map +1 -1
  351. package/dist/lib/tooltip-directive.cjs +87 -1
  352. package/dist/lib/tooltip-directive.cjs.map +1 -1
  353. package/dist/lib/tooltip-directive.js +55 -41
  354. package/dist/lib/tooltip-directive.js.map +1 -1
  355. package/dist/lib/tooltip.cjs +436 -1
  356. package/dist/lib/tooltip.cjs.map +1 -1
  357. package/dist/lib/tooltip.js +152 -90
  358. package/dist/lib/tooltip.js.map +1 -1
  359. package/dist/lib/top-banner-info.cjs +63 -1
  360. package/dist/lib/top-banner-info.cjs.map +1 -1
  361. package/dist/lib/top-banner-info.js +22 -18
  362. package/dist/lib/top-banner-info.js.map +1 -1
  363. package/dist/lib/unread-pill.cjs +63 -1
  364. package/dist/lib/unread-pill.cjs.map +1 -1
  365. package/dist/lib/unread-pill.js +25 -21
  366. package/dist/lib/unread-pill.js.map +1 -1
  367. package/dist/lib/validation-messages.cjs +85 -1
  368. package/dist/lib/validation-messages.cjs.map +1 -1
  369. package/dist/lib/validation-messages.js +32 -29
  370. package/dist/lib/validation-messages.js.map +1 -1
  371. package/dist/style.css +1214 -1
  372. package/dist/types/components/rich_text_editor/extensions/emoji/EmojiComponent.vue.d.ts +2 -2
  373. package/dist/types/components/rich_text_editor/extensions/mentions/MentionComponent.vue.d.ts +2 -2
  374. package/package.json +31 -30
  375. package/dist/chunks/_plugin-vue2_normalizer-ZK80B3OL.js +0 -2
  376. package/dist/chunks/_plugin-vue2_normalizer-ZK80B3OL.js.map +0 -1
  377. package/dist/chunks/_plugin-vue2_normalizer-u6G_3nkj.js +0 -33
  378. package/dist/chunks/_plugin-vue2_normalizer-u6G_3nkj.js.map +0 -1
  379. package/dist/chunks/dropdown-zhMEz3bn.js +0 -2
  380. package/dist/chunks/dropdown_constants-EUcDxBrX.js +0 -9
  381. package/dist/chunks/dropdown_constants-EUcDxBrX.js.map +0 -1
  382. package/dist/chunks/dropdown_constants-KHFvVI2L.js +0 -2
  383. package/dist/chunks/dropdown_constants-KHFvVI2L.js.map +0 -1
  384. package/dist/chunks/icon_constants-2S_OSQ1t.js +0 -2
  385. package/dist/chunks/index-2jPosQBn.js +0 -3
  386. package/dist/chunks/index-YkSDT8-g.js +0 -244
  387. package/dist/chunks/index-YkSDT8-g.js.map +0 -1
  388. package/dist/chunks/index-nIyl_PL6.js +0 -372
  389. package/dist/chunks/index-sdfB7Aok.js +0 -2
  390. package/dist/chunks/index-sdfB7Aok.js.map +0 -1
  391. package/dist/chunks/input-o-fc1X4b.js +0 -2
  392. package/dist/chunks/input_group-j2gTtc1C.js +0 -2
  393. package/dist/chunks/keyboard_list_navigation-F0O8nht0.js +0 -197
  394. package/dist/chunks/keyboard_list_navigation-N74Bpdq7.js +0 -2
  395. package/dist/chunks/link_constants-Kn6kP4i1.js +0 -2
  396. package/dist/chunks/link_constants-vIUB92L4.js +0 -16
  397. package/dist/chunks/list_item_constants-LTUc74pD.js +0 -13
  398. package/dist/chunks/list_item_constants-Tsz5CO1m.js +0 -2
  399. package/dist/chunks/modal-VuMFkZFH.js +0 -82
  400. package/dist/chunks/modal-qEzlo0Sj.js +0 -2
  401. package/dist/chunks/notice_action-9NmtQRai.js +0 -182
  402. package/dist/chunks/notice_action-u3ZKIhit.js +0 -2
  403. package/dist/chunks/notice_constants-c--hBFQw.js +0 -6
  404. package/dist/chunks/notice_constants-mC6al2Dm.js +0 -2
  405. package/dist/chunks/popover_constants-hOEhklvr.js +0 -2
  406. package/dist/chunks/popover_constants-qjlEkroB.js +0 -114
  407. package/dist/chunks/sr_only_close_button-ErijKGYR.js +0 -3
  408. package/dist/chunks/sr_only_close_button-JGole5Xi.js +0 -86
  409. package/dist/chunks/stack_constants-m9Ickqw0.js +0 -2
  410. package/dist/chunks/stack_constants-u7tNqGtc.js +0 -13
  411. package/dist/chunks/tab-7hJQSLFx.js +0 -2
  412. package/dist/chunks/tab-Qm9LVkYj.js +0 -346
  413. package/dist/lib/constants.cjs +0 -2
  414. package/dist/lib/dates.cjs +0 -2
  415. package/dist/lib/dates.js +0 -57
  416. package/dist/lib/mixins.cjs +0 -2
  417. package/dist/lib/mixins.js +0 -17
  418. package/dist/lib/utils.cjs +0 -2
  419. package/dist/lib/utils.js +0 -175
  420. package/dist/lib/validators.cjs +0 -2
  421. package/dist/lib/validators.js +0 -12
  422. /package/dist/{lib → common}/mixins.js.map +0 -0
@@ -1,2 +1,493 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./constants.cjs"),c=require("./utils.cjs"),g=require("../chunks/input-o-fc1X4b.js"),f=require("../chunks/_plugin-vue2_normalizer-ZK80B3OL.js"),m=require("./validation-messages.cjs");require("vue");require("./validators.cjs");const a={TEXT:"text",TEXTAREA:"textarea",PASSWORD:"password",EMAIL:"email",NUMBER:"number",DATE:"date",TIME:"time",FILE:"file"},s={EXTRA_SMALL:"xs",SMALL:"sm",DEFAULT:"md",LARGE:"lg",EXTRA_LARGE:"xl"},_={name:"DtInput",components:{DtValidationMessages:m.DtValidationMessages},mixins:[g.M],inheritAttrs:!1,props:{name:{type:String,default:""},type:{type:String,default:a.TEXT,validator:e=>Object.values(a).includes(e)},value:{type:[String,Number],default:""},disabled:{type:Boolean,default:!1},label:{type:String,default:""},labelVisible:{type:Boolean,default:!0},description:{type:String,default:""},size:{type:String,default:null,validator:e=>Object.values(s).includes(e)},iconSize:{type:String,default:null,validator:e=>Object.values(s).includes(e)},inputClass:{type:[String,Object,Array],default:""},inputWrapperClass:{type:[String,Object,Array],default:""},currentLength:{type:Number,default:null},retainWarning:{type:Boolean,default:!1},validate:{type:Object,default:null},hidden:{type:Boolean,default:!1}},emits:["input","blur","clear","focus","focusin","focusout","update:length","update:invalid"],data(){return{descriptionSizeClasses:{lg:"d-description--lg",xl:"d-description--xl"},labelSizeClasses:{xs:"d-label--xs",sm:"d-label--sm",md:"d-label--md",lg:"d-label--lg",xl:"d-label--xl"},isInputFocused:!1,isInvalid:!1,defaultLength:0}},computed:{isTextarea(){return this.type===a.TEXTAREA},isDefaultSize(){return this.size===s.DEFAULT},isDefaultIconSize(){return this.iconSizeComputed===s.DEFAULT},iconSizeComputed(){return this.iconSize?this.iconSize:this.size},isValidSize(){return Object.values(s).includes(this.size)},isValidDescriptionSize(){return Object.values(n.DESCRIPTION_SIZE_TYPES).includes(this.size)},inputComponent(){return this.isTextarea?"textarea":"input"},inputListeners(){return{...this.$listeners,input:e=>this.$emit("input",e.target.value),focus:e=>{this.isInputFocused=!0,this.$emit("focus",e)},blur:e=>{this.isInputFocused=!1,this.onBlur(e)}}},descriptionKey(){return`input-description-${c.getUniqueString()}`},inputState(){return c.getValidationState(this.validationMessages)},defaultLengthCalculation(){return this.calculateLength(this.value)},validationProps(){var e,t,i,l,r,u,d,o,p,h;return{length:{description:(t=(e=this==null?void 0:this.validate)==null?void 0:e.length)==null?void 0:t.description,max:(l=(i=this==null?void 0:this.validate)==null?void 0:i.length)==null?void 0:l.max,warn:(u=(r=this==null?void 0:this.validate)==null?void 0:r.length)==null?void 0:u.warn,message:(o=(d=this==null?void 0:this.validate)==null?void 0:d.length)==null?void 0:o.message,limitMaxLength:(h=(p=this==null?void 0:this.validate)==null?void 0:p.length)!=null&&h.limitMaxLength?this.validate.length.limitMaxLength:!1}}},validationMessages(){return this.showLengthLimitValidation?this.formattedMessages.concat([this.inputLengthErrorMessage()]):this.formattedMessages},showInputState(){return this.showMessages&&this.inputState},inputLength(){return this.currentLength?this.currentLength:this.defaultLengthCalculation},inputLengthState(){return this.inputLength<this.validationProps.length.warn?null:this.inputLength<=this.validationProps.length.max?this.validationProps.length.warn?n.VALIDATION_MESSAGE_TYPES.WARNING:null:n.VALIDATION_MESSAGE_TYPES.ERROR},shouldValidateLength(){return!!(this.validationProps.length.description&&this.validationProps.length.max)},shouldLimitMaxLength(){return this.shouldValidateLength&&this.validationProps.length.limitMaxLength},showLengthLimitValidation(){return this.shouldValidateLength&&this.inputLengthState!==null&&this.validationProps.length.message&&(this.retainWarning||this.isInputFocused||this.isInvalid)},sizeModifierClass(){return this.isDefaultSize||!this.isValidSize?"":{input:{xs:"d-input--xs",sm:"d-input--sm",lg:"d-input--lg",xl:"d-input--xl"},textarea:{xs:"d-textarea--xs",sm:"d-textarea--sm",lg:"d-textarea--lg",xl:"d-textarea--xl"}}[this.inputComponent][this.size]},stateClass(){return[{input:{error:"d-input--error base-input__input--error",warning:"d-input--warning base-input__input--warning",success:"d-input--success base-input__input--success"},textarea:{error:"d-textarea--error base-input__input--error",warning:"d-textarea--warning base-input__input--warning",success:"d-textarea--success base-input__input--success"}}[this.inputComponent][this.inputState]]}},watch:{isInvalid(e){this.$emit("update:invalid",e)},value:{immediate:!0,handler(e){this.shouldValidateLength&&this.validateLength(this.inputLength),this.currentLength==null&&this.$emit("update:length",this.calculateLength(e))}}},methods:{inputClasses(){return["base-input__input",this.inputComponent==="input"?"d-input":"d-textarea",{[this.stateClass]:this.showInputState,"d-input-icon--left":this.$slots.leftIcon,"d-input-icon--right":this.$slots.rightIcon},this.sizeModifierClass,this.inputClass]},inputWrapperClasses(){return this.hidden?[]:["d-input__wrapper",{[this.stateClass]:this.showInputState},this.inputWrapperClass]},calculateLength(e){return typeof e!="string"?0:[...e].length},inputLengthErrorMessage(){return{message:this.validationProps.length.message,type:this.inputLengthState}},inputIconClasses(e){const t={xs:"d-input-icon--xs",sm:"d-input-icon--sm",lg:"d-input-icon--lg",xl:"d-input-icon--xl"};return[{left:"base-input__icon--left d-input-icon--left",right:"base-input__icon--right d-input-icon--right"}[e],"d-input-icon",{[t[this.iconSizeComputed]]:!this.isDefaultIconSize},this.sizeModifierClass]},onBlur(e){var t;(t=this.$refs.container)!=null&&t.contains(e.relatedTarget)||this.$emit("blur",e)},clear(){this.$emit("input",""),this.$emit("clear")},blur(){this.$refs.input.blur()},focus(){this.$refs.input.focus()},select(){this.$refs.input.select()},getMessageKey(e,t){return`message-${e}-${t}`},validateLength(e){this.isInvalid=e>this.validationProps.length.max}}};var v=function(){var t=this,i=t._self._c;return i("div",{ref:"container",class:["base-input",{"d-vi-hidden":t.hidden}],attrs:{"data-qa":"dt-input"}},[i("label",{staticClass:"base-input__label",attrs:{"aria-details":t.$slots.description||t.description?t.descriptionKey:void 0,"data-qa":"dt-input-label-wrapper"}},[t._t("labelSlot",function(){return[t.labelVisible&&t.label?i("div",{ref:"label",class:["base-input__label-text","d-label",t.labelSizeClasses[t.size]],attrs:{"data-qa":"dt-input-label"}},[t._v(" "+t._s(t.label)+" ")]):t._e()]}),t.$slots.description||t.description||t.shouldValidateLength?i("div",{ref:"description",class:["base-input__description","d-description",t.descriptionSizeClasses[t.size]],attrs:{id:t.descriptionKey,"data-qa":"dt-input-description"}},[t.$slots.description||t.description?i("div",[t._t("description",function(){return[t._v(t._s(t.description))]})],2):t._e(),t.shouldValidateLength?i("div",{staticClass:"d-input__length-description",attrs:{"data-qa":"dt-input-length-description"}},[t._v(" "+t._s(t.validationProps.length.description)+" ")]):t._e()]):t._e(),i("div",{class:t.inputWrapperClasses(),attrs:{"read-only":t.disabled}},[t.$slots.leftIcon?i("span",{class:t.inputIconClasses("left"),attrs:{"data-qa":"dt-input-left-icon-wrapper"},on:{focusout:t.onBlur}},[t._t("leftIcon")],2):t._e(),t.isTextarea?i("textarea",t._g(t._b({ref:"input",class:t.inputClasses(),attrs:{name:t.name,disabled:t.disabled,maxlength:t.shouldLimitMaxLength?t.validationProps.length.max:null,"data-qa":t.$attrs["data-qa"]??"dt-input-input"},domProps:{value:t.value}},"textarea",t.$attrs,!1),t.inputListeners)):i("input",t._g(t._b({ref:"input",class:t.inputClasses(),attrs:{name:t.name,type:t.type,disabled:t.disabled,maxlength:t.shouldLimitMaxLength?t.validationProps.length.max:null,"data-qa":t.$attrs["data-qa"]??"dt-input-input"},domProps:{value:t.value}},"input",t.$attrs,!1),t.inputListeners)),t.$slots.rightIcon?i("span",{class:t.inputIconClasses("right"),attrs:{"data-qa":"dt-input-right-icon-wrapper"},on:{focusout:t.onBlur}},[t._t("rightIcon")],2):t._e()])],2),i("dt-validation-messages",t._b({class:t.messagesClass,attrs:{"validation-messages":t.validationMessages,"show-messages":t.showMessages,"data-qa":"dt-input-messages"}},"dt-validation-messages",t.messagesChildProps,!1))],1)},b=[],S=f.n(_,v,b,!1,null,null,null,null);const x=S.exports;exports.DtInput=x;exports.INPUT_SIZES=s;exports.INPUT_TYPES=a;
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const common_constants = require("../common/constants.cjs");
4
+ const common_utils = require("../common/utils.cjs");
5
+ const input = require("../chunks/input-Axw-wFj2.js");
6
+ const _pluginVue2_normalizer = require("../chunks/_plugin-vue2_normalizer-1aBeR4AK.js");
7
+ const lib_validationMessages = require("./validation-messages.cjs");
8
+ require("vue");
9
+ require("../common/validators.cjs");
10
+ const INPUT_TYPES = {
11
+ TEXT: "text",
12
+ TEXTAREA: "textarea",
13
+ PASSWORD: "password",
14
+ EMAIL: "email",
15
+ NUMBER: "number",
16
+ DATE: "date",
17
+ TIME: "time",
18
+ FILE: "file"
19
+ };
20
+ const INPUT_SIZES = {
21
+ EXTRA_SMALL: "xs",
22
+ SMALL: "sm",
23
+ DEFAULT: "md",
24
+ LARGE: "lg",
25
+ EXTRA_LARGE: "xl"
26
+ };
27
+ const _sfc_main = {
28
+ name: "DtInput",
29
+ components: { DtValidationMessages: lib_validationMessages.DtValidationMessages },
30
+ mixins: [input.MessagesMixin],
31
+ inheritAttrs: false,
32
+ props: {
33
+ /**
34
+ * Name property of the input element
35
+ */
36
+ name: {
37
+ type: String,
38
+ default: ""
39
+ },
40
+ /**
41
+ * Type of the input, one of: `text`, `password`, `email`, `number`, `textarea`, 'date', 'time'.
42
+ * When `textarea` a `<textarea>` element will be rendered instead of an `<input>` element.
43
+ * @values text, password, email, number, textarea, date, time
44
+ */
45
+ type: {
46
+ type: String,
47
+ default: INPUT_TYPES.TEXT,
48
+ validator: (t) => Object.values(INPUT_TYPES).includes(t)
49
+ },
50
+ /**
51
+ * Value of the input
52
+ */
53
+ value: {
54
+ type: [String, Number],
55
+ default: ""
56
+ },
57
+ /**
58
+ * Disables the input
59
+ * @values true, false
60
+ */
61
+ disabled: {
62
+ type: Boolean,
63
+ default: false
64
+ },
65
+ /**
66
+ * Label for the input
67
+ */
68
+ label: {
69
+ type: String,
70
+ default: ""
71
+ },
72
+ /**
73
+ * Determines visibility of input label.
74
+ * @values true, false
75
+ */
76
+ labelVisible: {
77
+ type: Boolean,
78
+ default: true
79
+ },
80
+ /**
81
+ * Description for the input
82
+ */
83
+ description: {
84
+ type: String,
85
+ default: ""
86
+ },
87
+ /**
88
+ * Size of the input, one of `xs`, `sm`, `md`, `lg`, `xl`
89
+ * @values null, xs, sm, md, lg, xl
90
+ */
91
+ size: {
92
+ type: String,
93
+ default: null,
94
+ validator: (t) => Object.values(INPUT_SIZES).includes(t)
95
+ },
96
+ /**
97
+ * Size of the icon. One of `xs`, `sm`, `md`, `lg`, `xl`. If you do not set this the icon will size relative
98
+ * to the input size
99
+ * @values null, xs, sm, md, lg, xl
100
+ */
101
+ iconSize: {
102
+ type: String,
103
+ default: null,
104
+ validator: (t) => Object.values(INPUT_SIZES).includes(t)
105
+ },
106
+ /**
107
+ * Additional class name for the input element.
108
+ * Can accept String, Object, and Array, i.e. has the
109
+ * same API as Vue's built-in handling of the class attribute.
110
+ */
111
+ inputClass: {
112
+ type: [String, Object, Array],
113
+ default: ""
114
+ },
115
+ /**
116
+ * Additional class name for the input wrapper element.
117
+ * Can accept all of String, Object, and Array, i.e. has the
118
+ * same api as Vue's built-in handling of the class attribute.
119
+ */
120
+ inputWrapperClass: {
121
+ type: [String, Object, Array],
122
+ default: ""
123
+ },
124
+ /**
125
+ * The current character length that the user has entered into the input.
126
+ * This will only need to be used if you are using `validate.length` and
127
+ * the string contains abnormal characters.
128
+ * For example, an emoji could take up many characters in the input, but should only count as 1 character.
129
+ * If no number is provided, a built-in length calculation will be used for the length validation.
130
+ */
131
+ currentLength: {
132
+ type: Number,
133
+ default: null
134
+ },
135
+ /**
136
+ * Whether the input will continue to display a warning validation message even if the input has lost focus.
137
+ */
138
+ retainWarning: {
139
+ type: Boolean,
140
+ default: false
141
+ },
142
+ /**
143
+ * Validation for the input. Supports maximum length validation with the structure:
144
+ * `{ "length": {"description": string, "max": number, "warn": number, "message": string,
145
+ * "limitMaxLength": boolean }}`
146
+ */
147
+ validate: {
148
+ type: Object,
149
+ default: null
150
+ },
151
+ /**
152
+ * hidden allows to use input without the element visually present in DOM
153
+ */
154
+ hidden: {
155
+ type: Boolean,
156
+ default: false
157
+ }
158
+ },
159
+ emits: [
160
+ /**
161
+ * Native input event
162
+ *
163
+ * @event input
164
+ * @type {String}
165
+ */
166
+ "input",
167
+ /**
168
+ * Native input blur event
169
+ *
170
+ * @event blur
171
+ * @type {FocusEvent}
172
+ */
173
+ "blur",
174
+ /**
175
+ * Input clear event
176
+ *
177
+ * @event clear
178
+ */
179
+ "clear",
180
+ /**
181
+ * Native input focus event
182
+ *
183
+ * @event focus
184
+ * @type {FocusEvent}
185
+ */
186
+ "focus",
187
+ /**
188
+ * Native input focusin event
189
+ *
190
+ * @event focusin
191
+ * @type {FocusEvent}
192
+ */
193
+ "focusin",
194
+ /**
195
+ * Native input focusout event
196
+ *
197
+ * @event focusout
198
+ * @type {FocusEvent}
199
+ */
200
+ "focusout",
201
+ /**
202
+ * Length of the input when currentLength prop is not passed
203
+ *
204
+ * @event update:length
205
+ * @type {Number}
206
+ */
207
+ "update:length",
208
+ /**
209
+ * Result of the input validation
210
+ *
211
+ * @event update:invalid
212
+ * @type {Boolean}
213
+ */
214
+ "update:invalid"
215
+ ],
216
+ data() {
217
+ return {
218
+ descriptionSizeClasses: {
219
+ lg: "d-description--lg",
220
+ xl: "d-description--xl"
221
+ },
222
+ labelSizeClasses: {
223
+ xs: "d-label--xs",
224
+ sm: "d-label--sm",
225
+ md: "d-label--md",
226
+ lg: "d-label--lg",
227
+ xl: "d-label--xl"
228
+ },
229
+ isInputFocused: false,
230
+ isInvalid: false,
231
+ defaultLength: 0
232
+ };
233
+ },
234
+ computed: {
235
+ isTextarea() {
236
+ return this.type === INPUT_TYPES.TEXTAREA;
237
+ },
238
+ isDefaultSize() {
239
+ return this.size === INPUT_SIZES.DEFAULT;
240
+ },
241
+ isDefaultIconSize() {
242
+ return this.iconSizeComputed === INPUT_SIZES.DEFAULT;
243
+ },
244
+ iconSizeComputed() {
245
+ return this.iconSize ? this.iconSize : this.size;
246
+ },
247
+ isValidSize() {
248
+ return Object.values(INPUT_SIZES).includes(this.size);
249
+ },
250
+ isValidDescriptionSize() {
251
+ return Object.values(common_constants.DESCRIPTION_SIZE_TYPES).includes(this.size);
252
+ },
253
+ inputComponent() {
254
+ if (this.isTextarea) {
255
+ return "textarea";
256
+ }
257
+ return "input";
258
+ },
259
+ inputListeners() {
260
+ return {
261
+ /* TODO
262
+ Check if any usages of this component leverage $listeners and either remove if unused or scope the removal
263
+ and migration prior to upgrading to Vue 3.x
264
+ */
265
+ ...this.$listeners,
266
+ input: (event) => this.$emit("input", event.target.value),
267
+ focus: (event) => {
268
+ this.isInputFocused = true;
269
+ this.$emit("focus", event);
270
+ },
271
+ blur: (event) => {
272
+ this.isInputFocused = false;
273
+ this.onBlur(event);
274
+ }
275
+ };
276
+ },
277
+ descriptionKey() {
278
+ return `input-description-${common_utils.getUniqueString()}`;
279
+ },
280
+ inputState() {
281
+ return common_utils.getValidationState(this.validationMessages);
282
+ },
283
+ defaultLengthCalculation() {
284
+ return this.calculateLength(this.value);
285
+ },
286
+ validationProps() {
287
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
288
+ return {
289
+ length: {
290
+ description: (_b = (_a = this == null ? void 0 : this.validate) == null ? void 0 : _a.length) == null ? void 0 : _b.description,
291
+ max: (_d = (_c = this == null ? void 0 : this.validate) == null ? void 0 : _c.length) == null ? void 0 : _d.max,
292
+ warn: (_f = (_e = this == null ? void 0 : this.validate) == null ? void 0 : _e.length) == null ? void 0 : _f.warn,
293
+ message: (_h = (_g = this == null ? void 0 : this.validate) == null ? void 0 : _g.length) == null ? void 0 : _h.message,
294
+ limitMaxLength: ((_j = (_i = this == null ? void 0 : this.validate) == null ? void 0 : _i.length) == null ? void 0 : _j.limitMaxLength) ? this.validate.length.limitMaxLength : false
295
+ }
296
+ };
297
+ },
298
+ validationMessages() {
299
+ if (this.showLengthLimitValidation) {
300
+ return this.formattedMessages.concat([this.inputLengthErrorMessage()]);
301
+ }
302
+ return this.formattedMessages;
303
+ },
304
+ showInputState() {
305
+ return this.showMessages && this.inputState;
306
+ },
307
+ inputLength() {
308
+ return this.currentLength ? this.currentLength : this.defaultLengthCalculation;
309
+ },
310
+ inputLengthState() {
311
+ if (this.inputLength < this.validationProps.length.warn) {
312
+ return null;
313
+ } else if (this.inputLength <= this.validationProps.length.max) {
314
+ return this.validationProps.length.warn ? common_constants.VALIDATION_MESSAGE_TYPES.WARNING : null;
315
+ } else {
316
+ return common_constants.VALIDATION_MESSAGE_TYPES.ERROR;
317
+ }
318
+ },
319
+ shouldValidateLength() {
320
+ return !!(this.validationProps.length.description && this.validationProps.length.max);
321
+ },
322
+ shouldLimitMaxLength() {
323
+ return this.shouldValidateLength && this.validationProps.length.limitMaxLength;
324
+ },
325
+ // eslint-disable-next-line complexity
326
+ showLengthLimitValidation() {
327
+ return this.shouldValidateLength && this.inputLengthState !== null && this.validationProps.length.message && (this.retainWarning || this.isInputFocused || this.isInvalid);
328
+ },
329
+ sizeModifierClass() {
330
+ if (this.isDefaultSize || !this.isValidSize) {
331
+ return "";
332
+ }
333
+ const sizeClasses = {
334
+ input: {
335
+ xs: "d-input--xs",
336
+ sm: "d-input--sm",
337
+ lg: "d-input--lg",
338
+ xl: "d-input--xl"
339
+ },
340
+ textarea: {
341
+ xs: "d-textarea--xs",
342
+ sm: "d-textarea--sm",
343
+ lg: "d-textarea--lg",
344
+ xl: "d-textarea--xl"
345
+ }
346
+ };
347
+ return sizeClasses[this.inputComponent][this.size];
348
+ },
349
+ stateClass() {
350
+ const inputStateClasses = {
351
+ input: {
352
+ error: "d-input--error base-input__input--error",
353
+ warning: "d-input--warning base-input__input--warning",
354
+ success: "d-input--success base-input__input--success"
355
+ },
356
+ textarea: {
357
+ error: "d-textarea--error base-input__input--error",
358
+ warning: "d-textarea--warning base-input__input--warning",
359
+ success: "d-textarea--success base-input__input--success"
360
+ }
361
+ };
362
+ return [inputStateClasses[this.inputComponent][this.inputState]];
363
+ }
364
+ },
365
+ watch: {
366
+ isInvalid(val) {
367
+ this.$emit("update:invalid", val);
368
+ },
369
+ value: {
370
+ immediate: true,
371
+ handler(newValue) {
372
+ if (this.shouldValidateLength) {
373
+ this.validateLength(this.inputLength);
374
+ }
375
+ if (this.currentLength == null) {
376
+ this.$emit("update:length", this.calculateLength(newValue));
377
+ }
378
+ }
379
+ }
380
+ },
381
+ methods: {
382
+ inputClasses() {
383
+ return [
384
+ "base-input__input",
385
+ this.inputComponent === "input" ? "d-input" : "d-textarea",
386
+ {
387
+ [this.stateClass]: this.showInputState,
388
+ "d-input-icon--left": this.$slots.leftIcon,
389
+ "d-input-icon--right": this.$slots.rightIcon
390
+ },
391
+ this.sizeModifierClass,
392
+ this.inputClass
393
+ ];
394
+ },
395
+ inputWrapperClasses() {
396
+ if (this.hidden) {
397
+ return [];
398
+ }
399
+ return [
400
+ "d-input__wrapper",
401
+ { [this.stateClass]: this.showInputState },
402
+ this.inputWrapperClass
403
+ ];
404
+ },
405
+ calculateLength(value) {
406
+ if (typeof value !== "string") {
407
+ return 0;
408
+ }
409
+ return [...value].length;
410
+ },
411
+ inputLengthErrorMessage() {
412
+ return {
413
+ message: this.validationProps.length.message,
414
+ type: this.inputLengthState
415
+ };
416
+ },
417
+ inputIconClasses(side) {
418
+ const iconSizeClasses = {
419
+ xs: "d-input-icon--xs",
420
+ sm: "d-input-icon--sm",
421
+ lg: "d-input-icon--lg",
422
+ xl: "d-input-icon--xl"
423
+ };
424
+ const iconOrientationClasses = {
425
+ left: "base-input__icon--left d-input-icon--left",
426
+ right: "base-input__icon--right d-input-icon--right"
427
+ };
428
+ return [
429
+ iconOrientationClasses[side],
430
+ "d-input-icon",
431
+ { [iconSizeClasses[this.iconSizeComputed]]: !this.isDefaultIconSize },
432
+ this.sizeModifierClass
433
+ ];
434
+ },
435
+ onBlur(e) {
436
+ var _a;
437
+ if (!((_a = this.$refs.container) == null ? void 0 : _a.contains(e.relatedTarget))) {
438
+ this.$emit("blur", e);
439
+ }
440
+ },
441
+ clear() {
442
+ this.$emit("input", "");
443
+ this.$emit("clear");
444
+ },
445
+ blur() {
446
+ this.$refs.input.blur();
447
+ },
448
+ focus() {
449
+ this.$refs.input.focus();
450
+ },
451
+ select() {
452
+ this.$refs.input.select();
453
+ },
454
+ getMessageKey(type, index) {
455
+ return `message-${type}-${index}`;
456
+ },
457
+ validateLength(length) {
458
+ this.isInvalid = length > this.validationProps.length.max;
459
+ }
460
+ }
461
+ };
462
+ var _sfc_render = function render() {
463
+ var _vm = this, _c = _vm._self._c;
464
+ return _c("div", { ref: "container", class: ["base-input", { "d-vi-hidden": _vm.hidden }], attrs: { "data-qa": "dt-input" } }, [_c("label", { staticClass: "base-input__label", attrs: { "aria-details": _vm.$slots.description || _vm.description ? _vm.descriptionKey : void 0, "data-qa": "dt-input-label-wrapper" } }, [_vm._t("labelSlot", function() {
465
+ return [_vm.labelVisible && _vm.label ? _c("div", { ref: "label", class: [
466
+ "base-input__label-text",
467
+ "d-label",
468
+ _vm.labelSizeClasses[_vm.size]
469
+ ], attrs: { "data-qa": "dt-input-label" } }, [_vm._v(" " + _vm._s(_vm.label) + " ")]) : _vm._e()];
470
+ }), _vm.$slots.description || _vm.description || _vm.shouldValidateLength ? _c("div", { ref: "description", class: [
471
+ "base-input__description",
472
+ "d-description",
473
+ _vm.descriptionSizeClasses[_vm.size]
474
+ ], attrs: { "id": _vm.descriptionKey, "data-qa": "dt-input-description" } }, [_vm.$slots.description || _vm.description ? _c("div", [_vm._t("description", function() {
475
+ return [_vm._v(_vm._s(_vm.description))];
476
+ })], 2) : _vm._e(), _vm.shouldValidateLength ? _c("div", { staticClass: "d-input__length-description", attrs: { "data-qa": "dt-input-length-description" } }, [_vm._v(" " + _vm._s(_vm.validationProps.length.description) + " ")]) : _vm._e()]) : _vm._e(), _c("div", { class: _vm.inputWrapperClasses(), attrs: { "read-only": _vm.disabled } }, [_vm.$slots.leftIcon ? _c("span", { class: _vm.inputIconClasses("left"), attrs: { "data-qa": "dt-input-left-icon-wrapper" }, on: { "focusout": _vm.onBlur } }, [_vm._t("leftIcon")], 2) : _vm._e(), _vm.isTextarea ? _c("textarea", _vm._g(_vm._b({ ref: "input", class: _vm.inputClasses(), attrs: { "name": _vm.name, "disabled": _vm.disabled, "maxlength": _vm.shouldLimitMaxLength ? _vm.validationProps.length.max : null, "data-qa": _vm.$attrs["data-qa"] ?? "dt-input-input" }, domProps: { "value": _vm.value } }, "textarea", _vm.$attrs, false), _vm.inputListeners)) : _c("input", _vm._g(_vm._b({ ref: "input", class: _vm.inputClasses(), attrs: { "name": _vm.name, "type": _vm.type, "disabled": _vm.disabled, "maxlength": _vm.shouldLimitMaxLength ? _vm.validationProps.length.max : null, "data-qa": _vm.$attrs["data-qa"] ?? "dt-input-input" }, domProps: { "value": _vm.value } }, "input", _vm.$attrs, false), _vm.inputListeners)), _vm.$slots.rightIcon ? _c("span", { class: _vm.inputIconClasses("right"), attrs: { "data-qa": "dt-input-right-icon-wrapper" }, on: { "focusout": _vm.onBlur } }, [_vm._t("rightIcon")], 2) : _vm._e()])], 2), _c("dt-validation-messages", _vm._b({ class: _vm.messagesClass, attrs: { "validation-messages": _vm.validationMessages, "show-messages": _vm.showMessages, "data-qa": "dt-input-messages" } }, "dt-validation-messages", _vm.messagesChildProps, false))], 1);
477
+ };
478
+ var _sfc_staticRenderFns = [];
479
+ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
480
+ _sfc_main,
481
+ _sfc_render,
482
+ _sfc_staticRenderFns,
483
+ false,
484
+ null,
485
+ null,
486
+ null,
487
+ null
488
+ );
489
+ const DtInput = __component__.exports;
490
+ exports.DtInput = DtInput;
491
+ exports.INPUT_SIZES = INPUT_SIZES;
492
+ exports.INPUT_TYPES = INPUT_TYPES;
2
493
  //# sourceMappingURL=input.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"input.cjs","sources":["../../components/input/input_constants.js","../../components/input/input.vue"],"sourcesContent":["// Valid input types, any other input types (for example: 'radio' or 'checkbox') should\n// use the respective base vue components (radio.vue and checkout.vue).\nexport const INPUT_TYPES = {\n TEXT: 'text',\n TEXTAREA: 'textarea',\n PASSWORD: 'password',\n EMAIL: 'email',\n NUMBER: 'number',\n DATE: 'date',\n TIME: 'time',\n FILE: 'file',\n};\n\nexport const INPUT_SIZES = {\n EXTRA_SMALL: 'xs',\n SMALL: 'sm',\n DEFAULT: 'md',\n LARGE: 'lg',\n EXTRA_LARGE: 'xl',\n};\n\nexport default {\n INPUT_TYPES,\n INPUT_SIZES,\n};\n","<!-- eslint-disable vue/no-restricted-class -->\n<template>\n <div\n ref=\"container\"\n :class=\"['base-input', { 'd-vi-hidden': hidden }]\"\n data-qa=\"dt-input\"\n >\n <label\n class=\"base-input__label\"\n :aria-details=\"$slots.description || description ? descriptionKey : undefined\"\n data-qa=\"dt-input-label-wrapper\"\n >\n <!-- @slot slot for label, defaults to label prop -->\n <slot name=\"labelSlot\">\n <div\n v-if=\"labelVisible && label\"\n ref=\"label\"\n data-qa=\"dt-input-label\"\n :class=\"[\n 'base-input__label-text',\n 'd-label',\n labelSizeClasses[size],\n ]\"\n >\n {{ label }}\n </div>\n </slot>\n <div\n v-if=\"$slots.description || description || shouldValidateLength\"\n :id=\"descriptionKey\"\n ref=\"description\"\n :class=\"[\n 'base-input__description',\n 'd-description',\n descriptionSizeClasses[size],\n ]\"\n data-qa=\"dt-input-description\"\n >\n <div\n v-if=\"$slots.description || description\"\n >\n <!-- @slot slot for description, defaults to description prop -->\n <slot name=\"description\">{{ description }}</slot>\n </div>\n <div\n v-if=\"shouldValidateLength\"\n data-qa=\"dt-input-length-description\"\n class=\"d-input__length-description\"\n >\n {{ validationProps.length.description }}\n </div>\n </div>\n <div\n :class=\"inputWrapperClasses()\"\n :read-only=\"disabled\"\n >\n <span\n v-if=\"$slots.leftIcon\"\n :class=\"inputIconClasses('left')\"\n data-qa=\"dt-input-left-icon-wrapper\"\n @focusout=\"onBlur\"\n >\n <!-- @slot Slot for left icon -->\n <slot name=\"leftIcon\" />\n </span>\n <textarea\n v-if=\"isTextarea\"\n ref=\"input\"\n :value=\"value\"\n :name=\"name\"\n :disabled=\"disabled\"\n :class=\"inputClasses()\"\n :maxlength=\"shouldLimitMaxLength ? validationProps.length.max : null\"\n :data-qa=\"$attrs['data-qa'] ?? 'dt-input-input'\"\n v-bind=\"$attrs\"\n v-on=\"inputListeners\"\n />\n <input\n v-else\n ref=\"input\"\n :value=\"value\"\n :name=\"name\"\n :type=\"type\"\n :disabled=\"disabled\"\n :class=\"inputClasses()\"\n :maxlength=\"shouldLimitMaxLength ? validationProps.length.max : null\"\n :data-qa=\"$attrs['data-qa'] ?? 'dt-input-input'\"\n v-bind=\"$attrs\"\n v-on=\"inputListeners\"\n >\n <span\n v-if=\"$slots.rightIcon\"\n :class=\"inputIconClasses('right')\"\n data-qa=\"dt-input-right-icon-wrapper\"\n @focusout=\"onBlur\"\n >\n <!-- @slot Slot for right icon -->\n <slot name=\"rightIcon\" />\n </span>\n </div>\n </label>\n <dt-validation-messages\n :validation-messages=\"validationMessages\"\n :show-messages=\"showMessages\"\n :class=\"messagesClass\"\n v-bind=\"messagesChildProps\"\n data-qa=\"dt-input-messages\"\n />\n </div>\n</template>\n\n<script>\nimport { DESCRIPTION_SIZE_TYPES, VALIDATION_MESSAGE_TYPES } from '@/common/constants';\nimport { INPUT_TYPES, INPUT_SIZES } from './input_constants';\nimport {\n getUniqueString,\n getValidationState,\n} from '@/common/utils';\nimport { DtValidationMessages } from '@/components/validation_messages';\nimport { MessagesMixin } from '@/common/mixins/input';\n\n/**\n * An input field is an input control that allows users to enter alphanumeric information.\n * It can have a range of options and supports single line and multi-line lengths,\n * as well as varying formats, including numbers, masked passwords, etc.\n * @property {Boolean} placeholder attribute\n * @see https://dialtone.dialpad.com/components/input.html\n */\nexport default {\n name: 'DtInput',\n\n components: { DtValidationMessages },\n\n mixins: [MessagesMixin],\n\n inheritAttrs: false,\n\n props: {\n /**\n * Name property of the input element\n */\n name: {\n type: String,\n default: '',\n },\n\n /**\n * Type of the input, one of: `text`, `password`, `email`, `number`, `textarea`, 'date', 'time'.\n * When `textarea` a `<textarea>` element will be rendered instead of an `<input>` element.\n * @values text, password, email, number, textarea, date, time\n */\n type: {\n type: String,\n default: INPUT_TYPES.TEXT,\n validator: (t) => Object.values(INPUT_TYPES).includes(t),\n },\n\n /**\n * Value of the input\n */\n value: {\n type: [String, Number],\n default: '',\n },\n\n /**\n * Disables the input\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Label for the input\n */\n label: {\n type: String,\n default: '',\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 * Description for the input\n */\n description: {\n type: String,\n default: '',\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(INPUT_SIZES).includes(t),\n },\n\n /**\n * Size of the icon. One of `xs`, `sm`, `md`, `lg`, `xl`. If you do not set this the icon will size relative\n * to the input size\n * @values null, xs, sm, md, lg, xl\n */\n iconSize: {\n type: String,\n default: null,\n validator: (t) => Object.values(INPUT_SIZES).includes(t),\n },\n\n /**\n * Additional class name for the input element.\n * Can accept String, Object, and Array, i.e. has the\n * same API as Vue's built-in handling of the class attribute.\n */\n inputClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Additional class name for the input wrapper element.\n * Can accept all of String, Object, and Array, i.e. has the\n * same api as Vue's built-in handling of the class attribute.\n */\n inputWrapperClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * The current character length that the user has entered into the input.\n * This will only need to be used if you are using `validate.length` and\n * the string contains abnormal characters.\n * For example, an emoji could take up many characters in the input, but should only count as 1 character.\n * If no number is provided, a built-in length calculation will be used for the length validation.\n */\n currentLength: {\n type: Number,\n default: null,\n },\n\n /**\n * Whether the input will continue to display a warning validation message even if the input has lost focus.\n */\n retainWarning: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Validation for the input. Supports maximum length validation with the structure:\n * `{ \"length\": {\"description\": string, \"max\": number, \"warn\": number, \"message\": string,\n * \"limitMaxLength\": boolean }}`\n */\n validate: {\n type: Object,\n default: null,\n },\n\n /**\n * hidden allows to use input without the element visually present in DOM\n */\n hidden: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Native input event\n *\n * @event input\n * @type {String}\n */\n 'input',\n\n /**\n * Native input blur event\n *\n * @event blur\n * @type {FocusEvent}\n */\n 'blur',\n\n /**\n * Input clear event\n *\n * @event clear\n */\n 'clear',\n\n /**\n * Native input focus event\n *\n * @event focus\n * @type {FocusEvent}\n */\n 'focus',\n\n /**\n * Native input focusin event\n *\n * @event focusin\n * @type {FocusEvent}\n */\n 'focusin',\n\n /**\n * Native input focusout event\n *\n * @event focusout\n * @type {FocusEvent}\n */\n 'focusout',\n\n /**\n * Length of the input when currentLength prop is not passed\n *\n * @event update:length\n * @type {Number}\n */\n 'update:length',\n\n /**\n * Result of the input validation\n *\n * @event update:invalid\n * @type {Boolean}\n */\n 'update:invalid',\n ],\n\n data () {\n return {\n descriptionSizeClasses: {\n lg: 'd-description--lg',\n xl: 'd-description--xl',\n },\n\n labelSizeClasses: {\n xs: 'd-label--xs',\n sm: 'd-label--sm',\n md: 'd-label--md',\n lg: 'd-label--lg',\n xl: 'd-label--xl',\n },\n\n isInputFocused: false,\n isInvalid: false,\n defaultLength: 0,\n };\n },\n\n computed: {\n\n isTextarea () {\n return this.type === INPUT_TYPES.TEXTAREA;\n },\n\n isDefaultSize () {\n return this.size === INPUT_SIZES.DEFAULT;\n },\n\n isDefaultIconSize () {\n return this.iconSizeComputed === INPUT_SIZES.DEFAULT;\n },\n\n iconSizeComputed () {\n return this.iconSize ? this.iconSize : this.size;\n },\n\n isValidSize () {\n return Object.values(INPUT_SIZES).includes(this.size);\n },\n\n isValidDescriptionSize () {\n return Object.values(DESCRIPTION_SIZE_TYPES).includes(this.size);\n },\n\n inputComponent () {\n if (this.isTextarea) {\n return 'textarea';\n }\n\n return 'input';\n },\n\n inputListeners () {\n return {\n /* TODO\n Check if any usages of this component leverage $listeners and either remove if unused or scope the removal\n and migration prior to upgrading to Vue 3.x\n */\n ...this.$listeners,\n input: event => this.$emit('input', event.target.value),\n focus: event => {\n this.isInputFocused = true;\n this.$emit('focus', event);\n },\n\n blur: event => {\n this.isInputFocused = false;\n this.onBlur(event);\n },\n };\n },\n\n descriptionKey () {\n return `input-description-${getUniqueString()}`;\n },\n\n inputState () {\n return getValidationState(this.validationMessages);\n },\n\n defaultLengthCalculation () {\n return this.calculateLength(this.value);\n },\n\n validationProps () {\n return {\n length: {\n description: this?.validate?.length?.description,\n max: this?.validate?.length?.max,\n warn: this?.validate?.length?.warn,\n message: this?.validate?.length?.message,\n limitMaxLength: this?.validate?.length?.limitMaxLength ? this.validate.length.limitMaxLength : false,\n },\n };\n },\n\n validationMessages () {\n // Add length validation message if exists\n if (this.showLengthLimitValidation) {\n return this.formattedMessages.concat([this.inputLengthErrorMessage()]);\n }\n\n return this.formattedMessages;\n },\n\n showInputState () {\n return this.showMessages && this.inputState;\n },\n\n inputLength () {\n return this.currentLength ? this.currentLength : this.defaultLengthCalculation;\n },\n\n inputLengthState () {\n if (this.inputLength < this.validationProps.length.warn) {\n return null;\n } else if (this.inputLength <= this.validationProps.length.max) {\n return this.validationProps.length.warn ? VALIDATION_MESSAGE_TYPES.WARNING : null;\n } else {\n return VALIDATION_MESSAGE_TYPES.ERROR;\n }\n },\n\n shouldValidateLength () {\n return !!(\n this.validationProps.length.description &&\n this.validationProps.length.max\n );\n },\n\n shouldLimitMaxLength () {\n return this.shouldValidateLength && this.validationProps.length.limitMaxLength;\n },\n\n // eslint-disable-next-line complexity\n showLengthLimitValidation () {\n return (\n this.shouldValidateLength &&\n this.inputLengthState !== null &&\n this.validationProps.length.message &&\n (this.retainWarning || this.isInputFocused || this.isInvalid)\n );\n },\n\n sizeModifierClass () {\n if (this.isDefaultSize || !this.isValidSize) {\n return '';\n }\n\n const sizeClasses = {\n input: {\n xs: 'd-input--xs',\n sm: 'd-input--sm',\n lg: 'd-input--lg',\n xl: 'd-input--xl',\n },\n\n textarea: {\n xs: 'd-textarea--xs',\n sm: 'd-textarea--sm',\n lg: 'd-textarea--lg',\n xl: 'd-textarea--xl',\n },\n };\n\n return sizeClasses[this.inputComponent][this.size];\n },\n\n stateClass () {\n const inputStateClasses = {\n input: {\n error: 'd-input--error base-input__input--error',\n warning: 'd-input--warning base-input__input--warning',\n success: 'd-input--success base-input__input--success',\n },\n\n textarea: {\n error: 'd-textarea--error base-input__input--error',\n warning: 'd-textarea--warning base-input__input--warning',\n success: 'd-textarea--success base-input__input--success',\n },\n };\n return [inputStateClasses[this.inputComponent][this.inputState]];\n },\n },\n\n watch: {\n isInvalid (val) {\n this.$emit('update:invalid', val);\n },\n\n value: {\n immediate: true,\n handler (newValue) {\n if (this.shouldValidateLength) {\n this.validateLength(this.inputLength);\n }\n\n if (this.currentLength == null) {\n this.$emit('update:length', this.calculateLength(newValue));\n }\n },\n },\n },\n\n methods: {\n inputClasses () {\n return [\n 'base-input__input',\n this.inputComponent === 'input' ? 'd-input' : 'd-textarea',\n {\n [this.stateClass]: this.showInputState,\n 'd-input-icon--left': this.$slots.leftIcon,\n 'd-input-icon--right': this.$slots.rightIcon,\n },\n this.sizeModifierClass,\n this.inputClass,\n ];\n },\n\n inputWrapperClasses () {\n if (this.hidden) {\n return [];\n }\n return [\n 'd-input__wrapper',\n { [this.stateClass]: this.showInputState },\n this.inputWrapperClass,\n ];\n },\n\n calculateLength (value) {\n if (typeof value !== 'string') {\n return 0;\n }\n\n return [...value].length;\n },\n\n inputLengthErrorMessage () {\n return {\n message: this.validationProps.length.message,\n type: this.inputLengthState,\n };\n },\n\n inputIconClasses (side) {\n const iconSizeClasses = {\n xs: 'd-input-icon--xs',\n sm: 'd-input-icon--sm',\n lg: 'd-input-icon--lg',\n xl: 'd-input-icon--xl',\n };\n const iconOrientationClasses = {\n left: 'base-input__icon--left d-input-icon--left',\n right: 'base-input__icon--right d-input-icon--right',\n };\n\n return [\n iconOrientationClasses[side],\n 'd-input-icon',\n { [iconSizeClasses[this.iconSizeComputed]]: !this.isDefaultIconSize },\n this.sizeModifierClass,\n ];\n },\n\n onBlur (e) {\n // Do not emit a blur event if the target element is a child of this component\n if (!this.$refs.container?.contains(e.relatedTarget)) {\n this.$emit('blur', e);\n }\n },\n\n clear () {\n this.$emit('input', '');\n this.$emit('clear');\n },\n\n blur () {\n this.$refs.input.blur();\n },\n\n focus () {\n this.$refs.input.focus();\n },\n\n select () {\n this.$refs.input.select();\n },\n\n getMessageKey (type, index) {\n return `message-${type}-${index}`;\n },\n\n validateLength (length) {\n this.isInvalid = (length > this.validationProps.length.max);\n },\n },\n};\n</script>\n"],"names":["INPUT_TYPES","INPUT_SIZES","_sfc_main","DtValidationMessages","MessagesMixin","t","DESCRIPTION_SIZE_TYPES","event","getUniqueString","getValidationState","_b","_a","_d","_c","_f","_e","_h","_g","_j","_i","VALIDATION_MESSAGE_TYPES","val","newValue","value","side","iconSizeClasses","type","index","length"],"mappings":"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"}
1
+ {"version":3,"file":"input.cjs","sources":["../../components/input/input_constants.js","../../components/input/input.vue"],"sourcesContent":["// Valid input types, any other input types (for example: 'radio' or 'checkbox') should\n// use the respective base vue components (radio.vue and checkout.vue).\nexport const INPUT_TYPES = {\n TEXT: 'text',\n TEXTAREA: 'textarea',\n PASSWORD: 'password',\n EMAIL: 'email',\n NUMBER: 'number',\n DATE: 'date',\n TIME: 'time',\n FILE: 'file',\n};\n\nexport const INPUT_SIZES = {\n EXTRA_SMALL: 'xs',\n SMALL: 'sm',\n DEFAULT: 'md',\n LARGE: 'lg',\n EXTRA_LARGE: 'xl',\n};\n\nexport default {\n INPUT_TYPES,\n INPUT_SIZES,\n};\n","<!-- eslint-disable vue/no-restricted-class -->\n<template>\n <div\n ref=\"container\"\n :class=\"['base-input', { 'd-vi-hidden': hidden }]\"\n data-qa=\"dt-input\"\n >\n <label\n class=\"base-input__label\"\n :aria-details=\"$slots.description || description ? descriptionKey : undefined\"\n data-qa=\"dt-input-label-wrapper\"\n >\n <!-- @slot slot for label, defaults to label prop -->\n <slot name=\"labelSlot\">\n <div\n v-if=\"labelVisible && label\"\n ref=\"label\"\n data-qa=\"dt-input-label\"\n :class=\"[\n 'base-input__label-text',\n 'd-label',\n labelSizeClasses[size],\n ]\"\n >\n {{ label }}\n </div>\n </slot>\n <div\n v-if=\"$slots.description || description || shouldValidateLength\"\n :id=\"descriptionKey\"\n ref=\"description\"\n :class=\"[\n 'base-input__description',\n 'd-description',\n descriptionSizeClasses[size],\n ]\"\n data-qa=\"dt-input-description\"\n >\n <div\n v-if=\"$slots.description || description\"\n >\n <!-- @slot slot for description, defaults to description prop -->\n <slot name=\"description\">{{ description }}</slot>\n </div>\n <div\n v-if=\"shouldValidateLength\"\n data-qa=\"dt-input-length-description\"\n class=\"d-input__length-description\"\n >\n {{ validationProps.length.description }}\n </div>\n </div>\n <div\n :class=\"inputWrapperClasses()\"\n :read-only=\"disabled\"\n >\n <span\n v-if=\"$slots.leftIcon\"\n :class=\"inputIconClasses('left')\"\n data-qa=\"dt-input-left-icon-wrapper\"\n @focusout=\"onBlur\"\n >\n <!-- @slot Slot for left icon -->\n <slot name=\"leftIcon\" />\n </span>\n <textarea\n v-if=\"isTextarea\"\n ref=\"input\"\n :value=\"value\"\n :name=\"name\"\n :disabled=\"disabled\"\n :class=\"inputClasses()\"\n :maxlength=\"shouldLimitMaxLength ? validationProps.length.max : null\"\n :data-qa=\"$attrs['data-qa'] ?? 'dt-input-input'\"\n v-bind=\"$attrs\"\n v-on=\"inputListeners\"\n />\n <input\n v-else\n ref=\"input\"\n :value=\"value\"\n :name=\"name\"\n :type=\"type\"\n :disabled=\"disabled\"\n :class=\"inputClasses()\"\n :maxlength=\"shouldLimitMaxLength ? validationProps.length.max : null\"\n :data-qa=\"$attrs['data-qa'] ?? 'dt-input-input'\"\n v-bind=\"$attrs\"\n v-on=\"inputListeners\"\n >\n <span\n v-if=\"$slots.rightIcon\"\n :class=\"inputIconClasses('right')\"\n data-qa=\"dt-input-right-icon-wrapper\"\n @focusout=\"onBlur\"\n >\n <!-- @slot Slot for right icon -->\n <slot name=\"rightIcon\" />\n </span>\n </div>\n </label>\n <dt-validation-messages\n :validation-messages=\"validationMessages\"\n :show-messages=\"showMessages\"\n :class=\"messagesClass\"\n v-bind=\"messagesChildProps\"\n data-qa=\"dt-input-messages\"\n />\n </div>\n</template>\n\n<script>\nimport { DESCRIPTION_SIZE_TYPES, VALIDATION_MESSAGE_TYPES } from '@/common/constants';\nimport { INPUT_TYPES, INPUT_SIZES } from './input_constants';\nimport {\n getUniqueString,\n getValidationState,\n} from '@/common/utils';\nimport { DtValidationMessages } from '@/components/validation_messages';\nimport { MessagesMixin } from '@/common/mixins/input';\n\n/**\n * An input field is an input control that allows users to enter alphanumeric information.\n * It can have a range of options and supports single line and multi-line lengths,\n * as well as varying formats, including numbers, masked passwords, etc.\n * @property {Boolean} placeholder attribute\n * @see https://dialtone.dialpad.com/components/input.html\n */\nexport default {\n name: 'DtInput',\n\n components: { DtValidationMessages },\n\n mixins: [MessagesMixin],\n\n inheritAttrs: false,\n\n props: {\n /**\n * Name property of the input element\n */\n name: {\n type: String,\n default: '',\n },\n\n /**\n * Type of the input, one of: `text`, `password`, `email`, `number`, `textarea`, 'date', 'time'.\n * When `textarea` a `<textarea>` element will be rendered instead of an `<input>` element.\n * @values text, password, email, number, textarea, date, time\n */\n type: {\n type: String,\n default: INPUT_TYPES.TEXT,\n validator: (t) => Object.values(INPUT_TYPES).includes(t),\n },\n\n /**\n * Value of the input\n */\n value: {\n type: [String, Number],\n default: '',\n },\n\n /**\n * Disables the input\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Label for the input\n */\n label: {\n type: String,\n default: '',\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 * Description for the input\n */\n description: {\n type: String,\n default: '',\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(INPUT_SIZES).includes(t),\n },\n\n /**\n * Size of the icon. One of `xs`, `sm`, `md`, `lg`, `xl`. If you do not set this the icon will size relative\n * to the input size\n * @values null, xs, sm, md, lg, xl\n */\n iconSize: {\n type: String,\n default: null,\n validator: (t) => Object.values(INPUT_SIZES).includes(t),\n },\n\n /**\n * Additional class name for the input element.\n * Can accept String, Object, and Array, i.e. has the\n * same API as Vue's built-in handling of the class attribute.\n */\n inputClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Additional class name for the input wrapper element.\n * Can accept all of String, Object, and Array, i.e. has the\n * same api as Vue's built-in handling of the class attribute.\n */\n inputWrapperClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * The current character length that the user has entered into the input.\n * This will only need to be used if you are using `validate.length` and\n * the string contains abnormal characters.\n * For example, an emoji could take up many characters in the input, but should only count as 1 character.\n * If no number is provided, a built-in length calculation will be used for the length validation.\n */\n currentLength: {\n type: Number,\n default: null,\n },\n\n /**\n * Whether the input will continue to display a warning validation message even if the input has lost focus.\n */\n retainWarning: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Validation for the input. Supports maximum length validation with the structure:\n * `{ \"length\": {\"description\": string, \"max\": number, \"warn\": number, \"message\": string,\n * \"limitMaxLength\": boolean }}`\n */\n validate: {\n type: Object,\n default: null,\n },\n\n /**\n * hidden allows to use input without the element visually present in DOM\n */\n hidden: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Native input event\n *\n * @event input\n * @type {String}\n */\n 'input',\n\n /**\n * Native input blur event\n *\n * @event blur\n * @type {FocusEvent}\n */\n 'blur',\n\n /**\n * Input clear event\n *\n * @event clear\n */\n 'clear',\n\n /**\n * Native input focus event\n *\n * @event focus\n * @type {FocusEvent}\n */\n 'focus',\n\n /**\n * Native input focusin event\n *\n * @event focusin\n * @type {FocusEvent}\n */\n 'focusin',\n\n /**\n * Native input focusout event\n *\n * @event focusout\n * @type {FocusEvent}\n */\n 'focusout',\n\n /**\n * Length of the input when currentLength prop is not passed\n *\n * @event update:length\n * @type {Number}\n */\n 'update:length',\n\n /**\n * Result of the input validation\n *\n * @event update:invalid\n * @type {Boolean}\n */\n 'update:invalid',\n ],\n\n data () {\n return {\n descriptionSizeClasses: {\n lg: 'd-description--lg',\n xl: 'd-description--xl',\n },\n\n labelSizeClasses: {\n xs: 'd-label--xs',\n sm: 'd-label--sm',\n md: 'd-label--md',\n lg: 'd-label--lg',\n xl: 'd-label--xl',\n },\n\n isInputFocused: false,\n isInvalid: false,\n defaultLength: 0,\n };\n },\n\n computed: {\n\n isTextarea () {\n return this.type === INPUT_TYPES.TEXTAREA;\n },\n\n isDefaultSize () {\n return this.size === INPUT_SIZES.DEFAULT;\n },\n\n isDefaultIconSize () {\n return this.iconSizeComputed === INPUT_SIZES.DEFAULT;\n },\n\n iconSizeComputed () {\n return this.iconSize ? this.iconSize : this.size;\n },\n\n isValidSize () {\n return Object.values(INPUT_SIZES).includes(this.size);\n },\n\n isValidDescriptionSize () {\n return Object.values(DESCRIPTION_SIZE_TYPES).includes(this.size);\n },\n\n inputComponent () {\n if (this.isTextarea) {\n return 'textarea';\n }\n\n return 'input';\n },\n\n inputListeners () {\n return {\n /* TODO\n Check if any usages of this component leverage $listeners and either remove if unused or scope the removal\n and migration prior to upgrading to Vue 3.x\n */\n ...this.$listeners,\n input: event => this.$emit('input', event.target.value),\n focus: event => {\n this.isInputFocused = true;\n this.$emit('focus', event);\n },\n\n blur: event => {\n this.isInputFocused = false;\n this.onBlur(event);\n },\n };\n },\n\n descriptionKey () {\n return `input-description-${getUniqueString()}`;\n },\n\n inputState () {\n return getValidationState(this.validationMessages);\n },\n\n defaultLengthCalculation () {\n return this.calculateLength(this.value);\n },\n\n validationProps () {\n return {\n length: {\n description: this?.validate?.length?.description,\n max: this?.validate?.length?.max,\n warn: this?.validate?.length?.warn,\n message: this?.validate?.length?.message,\n limitMaxLength: this?.validate?.length?.limitMaxLength ? this.validate.length.limitMaxLength : false,\n },\n };\n },\n\n validationMessages () {\n // Add length validation message if exists\n if (this.showLengthLimitValidation) {\n return this.formattedMessages.concat([this.inputLengthErrorMessage()]);\n }\n\n return this.formattedMessages;\n },\n\n showInputState () {\n return this.showMessages && this.inputState;\n },\n\n inputLength () {\n return this.currentLength ? this.currentLength : this.defaultLengthCalculation;\n },\n\n inputLengthState () {\n if (this.inputLength < this.validationProps.length.warn) {\n return null;\n } else if (this.inputLength <= this.validationProps.length.max) {\n return this.validationProps.length.warn ? VALIDATION_MESSAGE_TYPES.WARNING : null;\n } else {\n return VALIDATION_MESSAGE_TYPES.ERROR;\n }\n },\n\n shouldValidateLength () {\n return !!(\n this.validationProps.length.description &&\n this.validationProps.length.max\n );\n },\n\n shouldLimitMaxLength () {\n return this.shouldValidateLength && this.validationProps.length.limitMaxLength;\n },\n\n // eslint-disable-next-line complexity\n showLengthLimitValidation () {\n return (\n this.shouldValidateLength &&\n this.inputLengthState !== null &&\n this.validationProps.length.message &&\n (this.retainWarning || this.isInputFocused || this.isInvalid)\n );\n },\n\n sizeModifierClass () {\n if (this.isDefaultSize || !this.isValidSize) {\n return '';\n }\n\n const sizeClasses = {\n input: {\n xs: 'd-input--xs',\n sm: 'd-input--sm',\n lg: 'd-input--lg',\n xl: 'd-input--xl',\n },\n\n textarea: {\n xs: 'd-textarea--xs',\n sm: 'd-textarea--sm',\n lg: 'd-textarea--lg',\n xl: 'd-textarea--xl',\n },\n };\n\n return sizeClasses[this.inputComponent][this.size];\n },\n\n stateClass () {\n const inputStateClasses = {\n input: {\n error: 'd-input--error base-input__input--error',\n warning: 'd-input--warning base-input__input--warning',\n success: 'd-input--success base-input__input--success',\n },\n\n textarea: {\n error: 'd-textarea--error base-input__input--error',\n warning: 'd-textarea--warning base-input__input--warning',\n success: 'd-textarea--success base-input__input--success',\n },\n };\n return [inputStateClasses[this.inputComponent][this.inputState]];\n },\n },\n\n watch: {\n isInvalid (val) {\n this.$emit('update:invalid', val);\n },\n\n value: {\n immediate: true,\n handler (newValue) {\n if (this.shouldValidateLength) {\n this.validateLength(this.inputLength);\n }\n\n if (this.currentLength == null) {\n this.$emit('update:length', this.calculateLength(newValue));\n }\n },\n },\n },\n\n methods: {\n inputClasses () {\n return [\n 'base-input__input',\n this.inputComponent === 'input' ? 'd-input' : 'd-textarea',\n {\n [this.stateClass]: this.showInputState,\n 'd-input-icon--left': this.$slots.leftIcon,\n 'd-input-icon--right': this.$slots.rightIcon,\n },\n this.sizeModifierClass,\n this.inputClass,\n ];\n },\n\n inputWrapperClasses () {\n if (this.hidden) {\n return [];\n }\n return [\n 'd-input__wrapper',\n { [this.stateClass]: this.showInputState },\n this.inputWrapperClass,\n ];\n },\n\n calculateLength (value) {\n if (typeof value !== 'string') {\n return 0;\n }\n\n return [...value].length;\n },\n\n inputLengthErrorMessage () {\n return {\n message: this.validationProps.length.message,\n type: this.inputLengthState,\n };\n },\n\n inputIconClasses (side) {\n const iconSizeClasses = {\n xs: 'd-input-icon--xs',\n sm: 'd-input-icon--sm',\n lg: 'd-input-icon--lg',\n xl: 'd-input-icon--xl',\n };\n const iconOrientationClasses = {\n left: 'base-input__icon--left d-input-icon--left',\n right: 'base-input__icon--right d-input-icon--right',\n };\n\n return [\n iconOrientationClasses[side],\n 'd-input-icon',\n { [iconSizeClasses[this.iconSizeComputed]]: !this.isDefaultIconSize },\n this.sizeModifierClass,\n ];\n },\n\n onBlur (e) {\n // Do not emit a blur event if the target element is a child of this component\n if (!this.$refs.container?.contains(e.relatedTarget)) {\n this.$emit('blur', e);\n }\n },\n\n clear () {\n this.$emit('input', '');\n this.$emit('clear');\n },\n\n blur () {\n this.$refs.input.blur();\n },\n\n focus () {\n this.$refs.input.focus();\n },\n\n select () {\n this.$refs.input.select();\n },\n\n getMessageKey (type, index) {\n return `message-${type}-${index}`;\n },\n\n validateLength (length) {\n this.isInvalid = (length > this.validationProps.length.max);\n },\n },\n};\n</script>\n"],"names":["DtValidationMessages","MessagesMixin","DESCRIPTION_SIZE_TYPES","getUniqueString","getValidationState","VALIDATION_MESSAGE_TYPES"],"mappings":"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"}